Se o Windows reinicia sozinho ou de vez em quando seu trabalho é interrompido pela famosa tela azul do sistema operacional de Bill Gates, talvez o problema esteja na memória RAM de seu PC, vários erros gerados pelo Windows são causados por defeitos na memória RAM. Veja como testar a memória RAM de seu computador.

Publicidade
Para verificar se memória RAM você precisará usar um programa específico para teste de memória, no Windows 98, 2000 e XP é necessário usar uma ferramenta externa, já o Windows Vista tem uma ferramenta de teste de memória nativa.
Como testar a memória no Windows 98, 2000 e XP
Para testar a memória no Windows 98, 2000 e XP vamos usar o programa freeware Memtest86, uma excelente ferramenta que testa a memória de muitas formas.Baixe o Memtest86, descompacte o ZIP e grave o arquivo ISO em CD.
Reinicie o computador dando boot pelo CD, para que o Memtest86 seja carregado.
Os teste serão iniciados automaticamente, do lado esquerdo da tela você verá informações como processador, quantidade e velocidade de memória cache e RAM, chip set e frequência FSB. O lado direito tem informações sobre o teste como porcentagem total (Pass), porcentagem do teste atual, tipo de teste que está sendo realizado e quantidade de memória utilizada no teste.
Serão realizados 8 testes, ao final será exibido a mensagem Pass complete, número de erros, press Esc to exit.
Em seguida o Memtest86 recomeça os testes, pressione ESC para sair do programa e reiniciar o computador, remova o CD e retorne o boot para o disco rígido.
Notas: Esteja ciente que nem todos os erros reportados pelo Memtest86 são exclusivos da memória RAM,os erros também podem estar relacionados ao processador, memória cache e placa mãe, porém como a maioria das falhas são causadas por defeito na memória RAM, ao ser apresentado algum erro, faça os testes nos pentes de memória individualmente para verificar em qual pente de memória está o erro, outra dica é trocar as memórias de slot, para verificar se a falha está no slot.
Como usar a ferramenta de diagnóstico da memória no Vista
- Abra o menu iniciar e na caixa de pesquisa digite Memory e clique em OK
- Selecione a opção Restart now and check for problems (Reiniciar agora e procurar por problemas)
- Ao reiniciar o computador, o diagnóstico da memória será realizado.
Memória RAM
Identificando módulos de memória defeituosos
Apesar
da complexidade, não é muito comum que um processador venha com defeito
de fábrica, geralmente eles são testados antes do encapsulamento e os
que não funcionam são simplesmente descartados. O problema mais comum
com relação a eles são os casos de superaquecimento, que podem ser
resolvidos com a limpeza do cooler ou uma ventilação adequada.
Mas,
não podemos dizer o mesmo dos módulos de memória, onde os defeitos são
muito mais comuns e infelizmente mais difíceis de detectar. Um agravante
é que existem muitos fabricantes diferentes de memórias, todos
trabalhando com margens muito baixas, por isso existe sempre a tentação
de colocar no mercado módulos que não foram adequadamente testados em
fábrica.
A
placa-mãe também pode ser responsável por vários erros, já que ela é a
encarregada de transportar os dados dos módulos de memória até o
processador. Se a placa-mãe corromper os dados pelo caminho você terá
travamentos e outros sintomas semelhantes aos causados por um módulo de
memória com defeito. Esses erros são cruéis, pois são muitas vezes
difíceis de perceber. Eles muitas vezes são confundidos com problemas do
sistema operacional.
Seja
qual for a causa, erros de memória podem causar muita dor de cabeça,
então a melhor forma de lidar com o problema é rodar um teste completo
sempre que você montar um PC ou instalar um novo módulo de memória.
Existem inúmeros programas desse tipo, um dos melhores é o Memtest86, disponível no:
http://www.memtest86.com/
http://www.memtest86.com/
A
grande vantagem do memtest86 sobre outros testes de memória é que além
de pequeno, gratuito e de código aberto, ele é quase automático. Você
precisa apenas gravar um CD (ou disquete) e dar boot para que o teste
seja iniciado automaticamente. Ele fica num loop eterno, repetindo os
testes e indicando os erros que encontrar até que você se sinta
satisfeito.
Existem
duas opções de download. O mais prático é baixar uma imagem ISO, que
pode ser usada para fazer um CD bootável. O arquivo tem apenas 64 kb
compactado e 1.6 MB depois de descompactado. No site você vai encontrar
também os programas para gerar o disquete de boot no Windows e Linux.
Tanto faz usar o CD ou o disquete, o programa é exatamente o mesmo.
É
necessário dar boot diretamente no Memtest para que ele possa testar
realmente toda a memória do sistema. Se ele rodasse como um programa
sobre o Linux ou Windows, não teria como acessar áreas utilizadas pelo
sistema e programas, e o teste não seria confiável.
O
Memtest86 realiza um total de 9 testes. Os 5 primeiros são
relativamente rápidos, mas os 4 testes finais são muito mais rigorosos,
capazes de encontrar erros não detectados pelos testes iniciais, mas são
em contrapartida muito demorados. Os 8 testes são executados
automaticamente, mas o nono (veja detalhes a seguir) precisa ser ativado
manualmente, já que é muito demorado. O ideal é deixar o teste correndo
em loop durante a madrugada e olhar os resultados no outro dia de
manhã.
Se, por acaso, a tabela inicial do Memtest86 informar incorretamente a quantidade de memória, acesse a opção "3" (memory sizing) e, dentro dela, a opção "3"
(probe). Isso fará com que o Memtest86 detecte a memória, desprezando
as informações do BIOS. Na tela principal, pressione a tecla 5 para ter
um sumário com todos os erros encontrados em cada teste:

Basicamente é isto, não existe muita configuração a fazer. A alma do negócio é ter paciência e deixar ele fazer seu trabalho, se possível por tempo suficiente para realizar o teste longo.
O
tempo necessário varia de acordo com o desempenho e principalmente com a
quantidade de memória instalada. Dobrar a quantidade de memória dobra o
tempo do teste. Usar um processador mais rápido tem pouca influência,
pois o gargalo é a velocidade de acesso à memória, não o processamento.
O
Memtest86 já vem pré-instalado em muitas distribuições, aparecendo como
uma opção no menu de boot. Vamos entender o que faz cada um dos testes:
Teste 0
(Address test, walking ones, no cache): Simplesmente testa o acesso a
todos os endereços da memória, algo semelhante com o que o BIOS faz na
contagem de memória durante o boot. Ele é o teste mais rápido e serve
basicamente para checar a quantidade de memória disponível.
Teste 1
(Address test, own address): Este teste é semelhante ao 0, mas adota
uma estratégia diferente, checando endereços e não apenas realizando uma
contagem rápida. Isso permite detectar problemas de endereçamento no
módulo. Outra diferença é que este teste é feito sem utilizar os caches
do processador, para evitar que ele mascare defeitos nos módulos.
Teste 2 (Moving inversions,
ones&zeros): Escreve bits 1 e depois bits 0 em todos os endereços da
memória. Este algoritmo também utiliza os caches L1 e L2 do
processador. É um teste rápido que identifica os erros mais grosseiros,
onde algumas células do módulo estão realmente queimadas.
Teste 3 (Moving inversions, 8 bit
pat): É aqui que os testes para detectar erros mais complexos começam. O
terceiro teste escreve sequências de dados de 8 bits, repetindo o teste
20 vezes com sequências diferentes.
Teste 4 (Moving inversions, random
pattern): Este teste é similar ao teste número 3, mas dessa vez usando
uma seqüência randômica de acessos, que é repetida um total de 60 vezes.
Parece um grande exagero, já que este teste é destinado a identificar
os mesmos erros que o teste 3, mas é justamente essa "insistência" e o
uso de diversas sequências diferentes de operações que torna o memtest
tão confiável na detecção de erros, capaz de detectar erros raros ou
transitórios, que não aparecem em outros testes.
Teste 5 (Block move, 64 moves): É
um pouco mais rigoroso que o teste 4. Continua movendo dados de um
endereço para outro da memória, mas agora são movidos blocos de 4
megabits de cada vez. Este teste é repetido 64 vezes.
Teste 6 (Moving inversions, 32 bit
pat): Os dados gravados em cada bit de memória são lidos e movidos para o
endereço adjacente. É mais ou menos uma combinação dos três testes
anteriores, pois testa o endereçamento, leitura e escrita de dados. A
operação é repetida 32 vezes no total, para testar todas as combinações
possíveis.
Este teste detecta um tipo de erro muito
comum que é a "contaminação" de endereços. Isso ocorre quando, por um
defeito de fabricação, o isolamento elétrico entre duas ou mais células
de memória fica muito fino, permitindo que os elétrons saltem de uma
para outra. Isso faz com que ao gravar um dos bits o outro também seja
gravado com o mesmo valor. Esse tipo de problema pode ser bastante
intermitente, acontecendo apenas quando o segundo bit estiver com um
valor zero, ou apenas esporadicamente, daí a necessidade de tantas
repetições.
Teste 7 (Random number sequence):
Para eliminar qualquer dúvida, são agora escritas sequências de números
randômicos, preenchendo todos os endereços da memória. Os números são
conferidos em pequenos blocos e o teste é repetido diversas vezes.
Teste 8 (Modulo 20,
ones&zeros): Este teste é basicamente uma repetição do teste 7, mas
agora utilizando um algoritmo diferente, chamado "Modulo-X", que elimina
a possibilidade de qualquer defeito ter passado despercebido pelos
testes anteriores por ter sido mascarado pelos caches L1 e L2 ou mesmo
pelos registradores do processador.
Note que tanto o teste 7 quanto o 8 são bastante demorados e servem apenas para detectar erros extremamente raros, eliminando qualquer dúvida sobre a saúde dos módulos. Eles foram criados realmente como um exercício de perfeccionismo.
Note que tanto o teste 7 quanto o 8 são bastante demorados e servem apenas para detectar erros extremamente raros, eliminando qualquer dúvida sobre a saúde dos módulos. Eles foram criados realmente como um exercício de perfeccionismo.
Teste 9 (Bit fade test, 90 min, 2
patterns): Este é um teste final, que permite detectar erros raros
relacionados com os circuitos de refresh, ou soft-erros causados por
fatores diversos, que alterem os dados armazenados.
No teste, todos os endereços são
preenchidos usando uma sequência de valores predefinidos. O programa
aguarda 90 minutos e verifica os dados gravados, anteriormente. Esses
dados são produzidos usando sequências matemáticas, de forma que o
programa só precisa repetir as mesmas operações na hora de verificar,
sem precisar guardar uma cópia de tudo que gravou em algum lugar.
Em seguida, a mesma sequência é gravada
novamente, mas desta vez com os dígitos invertidos (o que era 1 vira 0 e
o que era 0 vira 1). O programa aguarda mais 90 minutos e checa
novamente.
Este teste demora mais de três horas, por
isso não é executado automaticamente junto com os outros 8. Pense nele
como um último refúgio para os paranóicos. Para executá-lo, pressione "C", depois "1" (Test Selection) e em seguida "3" (Select Test). Na opção "Test Number [1-9]" pressione "9" e em seguida "0" (Continue).
Ao detectar um erro, a primeira
providência é trocar o módulo de memória e refazer o teste. Em alguns
casos o problema pode não ser no módulo, mas sim na placa-mãe. Em alguns
casos mais raros pode ser até mesmo que tanto o módulo quanto a placa
estejam bons, e o problema seja apenas algum tipo de incompatibilidade
entre eles. Eu observei isso, por exemplo, em uma Tyan Tiger MPX que
testei em 2001. A placa só ficou completamente estável com o terceiro
módulo de memória que testei, sendo que os dois primeiros não tinham
defeitos e passaram no teste do memtest86 depois de instalados em outros
micros.
Um dos motivos era que essa placa
utilizava um valor CAS de 2.5 ciclos (valor fixo), uma configuração
incomum para a época. Assim como ela, muitas outras placas utilizam
configurações incomuns, que podem causar incompatibilidades com memórias
de algumas marcas. Jamais jogue fora um módulo com erros antes de
testá-lo em outra placa-mãe diferente, pois ele pode estar bom.
Experimente também baixar a frequência de
operação da memória, ou do FSB para testar o módulo em frequências mais
baixas que as nominais. Muitas vezes um módulo danificado por estática
ou por variações nas tensões fornecidas pela fonte, pode deixar de
funcionar estavelmente na frequência máxima, mas continuar suportando
frequências mais baixas.
Outra dica é limpar cuidadosamente o
módulo, removendo a poeira acumulada e limpando os contatos usando uma
borracha de vinil (as borrachas de escola, do tipo que não esfarela). Na
falta de uma, você também pode usar uma cédula em bom estado. O papel
moeda é abrasivo e realmente limpa os contatos na medida certa.
Aqui temos um módulo de 512 MB danificado
por estática, flagrado pelo teste. Veja que foram identificados
diversos endereços defeituosos. A lista mostra apenas os primeiros
erros, mas pressionando a tecla "C" e depois "4" (error
summary), é possível ver o número total. Nesse caso, o módulo tinha nada
menos do que 222 endereços defeituosos. Além de identificar os erros, o
memtest mostra a partir de qual MB do módulo eles começam. Pelo
screenshot, você pode ver que eles começam a partir do 433° MB:

No caso de módulos em que os erros
aparecem logo nos primeiros endereços, não existe o que fazer, pois eles
farão com que o sistema trave logo no início do boot. Módulos onde os
defeitos se concentram no final (como esse do exemplo) ainda podem ser
usados para testes, pois o sistema acessa sempre a memória a partir do
começo, deixando os últimos endereços do módulo por último. Enquanto
você estiver rodando aplicativos leves e o sistema não acessar os
endereços defeituosos do módulo, tudo funciona normalmente.
No Linux é possível orientar o sistema a
utilizar apenas o começo do módulo, ignorando os endereços a partir da
onde começam os erros. Isso é feito passando a opção "mem=384M" (onde o
"384" é a quantidade de memória que deve ser usada) para o Kernel na
tela de boot.
Isso varia um pouco de distribuição para
distribuição. No Ubuntu, por exemplo, é preciso pressionar a tecla "F6" e
em seguida adicionar o "mem=384M" (sem mexer nas demais opções da
linha):

No caso do Windows XP, é possível usar a
opção "/maxmem=". Adicione a linha no arquivo "boot.ini", especificando a
quantidade de memória que deve ser utilizada (em MB), como em
"/maxmem=384". Esta alteração pode ser feita também através do msconfig,
através da aba "Boot.ini > Opções Avançadas".
Depois de concluído o boot, você pode
confirmar usando o comando "free", que reporta o uso de memória. Você
verá que independentemente da capacidade real do módulo, o sistema usa a
memória apenas até o MB especificado na opção. Essa dica permite
aproveitar a parte "boa" do módulo em algum micro usado para aplicações
leves, ao invés de ter que jogá-lo fora.
Não se esqueça de etiquetar os módulos
defeituosos (ou o PC onde eles forem instalados), indicando a partir de
qual MB foram identificados endereços defeituosos. Assim você evita ter
de executar o teste novamente cada vez que precisar reinstalar o
sistema, ou instalar os módulos em outro micro.
Além do memtest86 e outros softwares,
também existem testadores de memória dedicados, que executam uma
sequência de testes automatizados, que, além de detectar defeitos,
identificam as características do módulo, como a frequência suportada,
CAS latency e assim por diante. Estes testadores são caros e, para ser
sincero, o teste não é tão confiável quanto a sequência do memtest. A
vantagem é que eles permitem testar um grande número de módulos em pouco
tempo, de forma prática, por isso podem ser interessantes para
distribuidores e lojas.
Duas das maiores empresas nesse segmento são a http://www.memorytest.com/ e a http://www.simmtester.com/, onde você pode se informar sobre os preços e os modelos disponíveis.
Nenhum comentário:
Postar um comentário