Existem inúmeros programas para fazer o teste dos módulos, um dos melhores é
o memtest86, ele é um Freeware disponível aqui:
Memtest para Linux: http://www.memtest86.com/memtest86-3.4.tar.gz
Memtest para Windows: http://www.memtest86.com/memtest34a.zip ( Necessário Driver De Disquete )
Memtest ISO: http://www.memtest86.com/memtest86-3.4a.iso.zip
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, 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 em compensação muito demorados.
Os 8 testes são executados automaticamente, mas o nono (veja detalhes abaixo)
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 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 da 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
de boot no menu de boot. Você pode utilizar também o CD de uma versão recente do
Knoppix ou do Kurumin, utilizando a opção "memtest" na tela 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 seqüências de dados de 8 bits, repetindo o
teste 20 vezes com seqüências diferentes.
• Teste 4 (Moving inversions, random pattern): Este teste é similar ao teste número 3,
mas desta 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 esta "insistência" e uso de diversas seqüê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. Isto 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 um para o outro. 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
seqüê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 desapercebido pelos testes anteriores por ter sido mascarado
pelos caches L1 e L2 ou mesmo pelos registradores do processador.
• 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 seqüência de valores pré-definidos.
O programa aguarda 90 minutos e verifica os dados gravados, anteriormente. Estes
dados são produzidos usando seqüê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 seqüê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).
erros extremamente raros, eliminando qualquer dúvida sobre a saúde dos módulos. Eles foram
criados realmente como um exercício de perfeccionismo.
Ao detectar um erro, a primeira providencia é 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 na Tyan Tiger MPX que testei em 2001. A placa só ficou completamente
estável com o terceiro pente 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 esta placa utiliza 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 pente com erros antes de testá-lo em outra placa mãe
diferente, pois ele pode estar bom.
Experimente também baixar a freqüência de operação da memória, ou do FSB para testar
o pente em freqüências mais baixas que as nominais. Muitas vezes um pente danificado
por estática ou por variações nas tensões fornecidas pela fonte pode deixar de funcionar
estavelmente na freqüência máxima, mas continuar suportando freqüê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 nota de real (com exceção das de R$ 10, que
são de plástico) 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. Neste 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 ser que eles começam a partir do 433° MB:
No caso de módulos onde 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 este 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. Isto é 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 Knoppix você digitaria
"knoppix mem=384M" na tela de boot, no Kurumin seria "kurumin mem=384M". No Ubuntu
é preciso pressionar a tecla "F6? e em seguida adicionar o "mem=384M" (sem mexer nas
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 do 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. Esta 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 estes módulos defeituosos (ou o micro onde eles forem instalados),
indicando a partir de qual MB foram identificados endereços defeituosos.
Além do memtest86 e outros softwares, também existem testadores de memória dedicados, que
executam uma seqüência de testes automatizados, que além de detectar defeitos, identificam
as características do módulo, como a freqüê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
seqüencia 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 neste segmento são a MemoryTest e
a SimmTester, onde você pode se informar sobre os preços e
modelos disponíveis.
Fonte: MillerFilmes
0 comentários:
Postar um comentário