Tenho um notebook aqui que suspeito que tenha um módulo de memória com defeito. Por isso baixeiMemtest86+e deixe-o funcionar.
Observe que a captura de tela não é minha, é fornecida por memtest86+
Como interpreto os números na tela? Deixei funcionar por cerca de quatro horas e agora estou na passagem 7.
Especialmente, o que
- o número do teste
- a contagem de erros
- a contagem de erros ECC
indicar? Quais são os valores sensatos para erros de memória? Em que ponto devo considerar a substituição da memória?
Responder1
DR
O número mais importante primeiro:A contagem de erros para memória íntegra deve ser 0. Qualquer número acima de 0 pode indicar setores danificados/defeituosos.
Explicação da tela
Memtest86+ v1.00 | Progress of the entire pass (test series)
CPU MODEL and clock speed | Progress of individual, current test
Level 1 cache size & speed | Test type that is currently running
Level 2 cache size & speed | Part of the RAM (sector) that is being tested
RAM size and testing speed | Pattern that is being written to the sector
Information about the chipset that your mainboard uses
Information about your RAM set-up, clock speed, channel settings, etc.
WallTime Cached RsvdMem MemMap Cache ECC Test Pass Errors ECC Errs
--------- ------ ------- -------- ----- --- ---- ---- ------ --------
Elapsed Amount Amount Mapping on on Test # of # of # of ECC
time of RAM of used or or type pass errors errors
cached reserved off off done found found
RAM, not
tested
Explicação de dados/teste
MemTest executa vários testes, grava padrões específicos em cada setor da memória e os recupera. Se os dados recuperados diferirem dos dados originalmente armazenados, o MemTest registra um erro e aumenta ocontagem de errospor um. Os erros geralmente são sinais de faixas de RAM defeituosas.
Como a memória não é apenas um bloco de notas que contém informações, mas possui funções avançadas como cache, vários testes diferentes são feitos. Isto é o queTest #
indica. MemTest executa vários testes diferentes para verificar se ocorrem erros.
Alguns exemplos de teste (simplificados):
- Teste os setores nesta ordem: A, B, C, D, E, F. (Serial)
- Teste os setores nesta ordem: A, C, E, B, D, F. (Movimento)
- Preencha todos os setores com padrão: aaaaaaaa
- Preencha todos os setores com um padrão aleatório.
Descrição mais detalhada de todos os testes de:https://www.memtest86.com/technical.htm#detailed
Teste 0 [Teste de endereço, ambulantes, sem cache]
Testa todos os bits de endereço em todos os bancos de memória usando um padrão de endereço ambulante.
Teste 1 [Teste de endereço, endereço próprio, Sequencial]
Cada endereço é escrito com seu próprio endereço e depois verificado quanto à consistência. Em teoria, os testes anteriores deveriam ter detectado quaisquer problemas de endereçamento de memória. Este teste deve detectar quaisquer erros de endereçamento que de alguma forma não tenham sido detectados anteriormente. Este teste é feito sequencialmente com cada CPU disponível.
Teste 2 [Teste de endereço, endereço próprio, Paralelo]
Igual ao teste 1, mas o teste é feito em paralelo usando todas as CPUs e endereços sobrepostos.
Teste 3 [Inversões móveis, uns e zeros, Sequencial]
Este teste usa o algoritmo de inversões móveis com padrões de uns e zeros. O cache está ativado mesmo que interfira até certo ponto no algoritmo de teste. Com o cache ativado, esse teste não demora muito e deve encontrar rapidamente todos os erros "graves" e alguns erros mais sutis. Este teste é apenas uma verificação rápida. Este teste é feito sequencialmente com cada CPU disponível.
Teste 4 [Movendo inversões, uns e zeros, Paralelo]
Igual ao teste 3, mas o teste é feito em paralelo usando todas as CPUs.
Teste 5 [Inversões móveis, padrão de 8 bits]
É igual ao teste 4, mas usa um padrão de uns e zeros "ambulantes" de 8 bits. Este teste detectará melhor erros sutis em chips de memória "largos".
Teste 6 [Inversões móveis, padrão aleatório]
O teste 6 usa o mesmo algoritmo do teste 4, mas o padrão de dados é um número aleatório e seu complemento. Este teste é particularmente eficaz para encontrar erros sensíveis aos dados difíceis de detectar. A sequência de números aleatórios é diferente a cada passagem, portanto, múltiplas passagens aumentam a eficácia.
Teste 7 [movimento de bloco, 64 movimentos]
Este teste sobrecarrega a memória usando instruções de movimentação de bloco (movsl) e é baseado no teste burnBX de Robert Redelmeier. A memória é inicializada com padrões de mudança que são invertidos a cada 8 bytes. Em seguida, blocos de 4 MB de memória são movidos usando a instrução movsl. Após a conclusão das movimentações, os padrões de dados são verificados. Como os dados são verificados somente após a conclusão das movimentações de memória, não é possível saber onde ocorreu o erro. Os endereços informados são apenas para onde o padrão incorreto foi encontrado. Como as movimentações são restritas a um segmento de memória de 8 MB, o endereço com falha estará sempre a menos de 8 MB do endereço relatado. Os erros deste teste não são usados para calcular padrões BadRAM.
Teste 8 [Inversões móveis, padrão de 32 bits]
Esta é uma variação do algoritmo de inversão móvel que desloca o padrão de dados um bit para a esquerda para cada endereço sucessivo. A posição inicial do bit é deslocada para a esquerda para cada passagem. Para usar todos os padrões de dados possíveis, são necessárias 32 passagens. Este teste é bastante eficaz na detecção de erros sensíveis aos dados, mas o tempo de execução é longo.
Teste 9 [sequência numérica aleatória]
Este teste grava uma série de números aleatórios na memória. Ao redefinir a semente para o número aleatório, a mesma sequência de números pode ser criada para uma referência. O padrão inicial é verificado e depois complementado e verificado novamente na próxima passagem. No entanto, ao contrário das inversões móveis, a escrita e a verificação do teste só podem ser feitas na direção direta.
Teste 10 [Módulo 20, uns e zeros]
O uso do algoritmo Módulo-X deve revelar erros que não são detectados pela movimentação de inversões devido à interferência de cache e buffer com o algoritmo. Tal como acontece com o teste um, apenas uns e zeros são usados para padrões de dados.
Teste 11 [Teste de desvanecimento de bits, 90 min, 2 padrões]
O teste de desvanecimento de bits inicializa toda a memória com um padrão e depois dorme por 5 minutos. Em seguida, a memória é examinada para ver se algum bit de memória foi alterado. Todos os padrões uns e todos os zeros são usados.
Como setores defeituosos às vezes podem funcionar e não funcionar em outras ocasiões, recomendo deixar o MemTest executar algumas passagens. Um cheiopassaré uma série de testes concluída que passou. (A série de testes 1 a 11 acima) Quanto mais aprovações você obtiver sem erros, mais precisa será a execução do MemTest. Normalmente executo cerca de 5 passes para ter certeza.
A contagem de errospara memória saudável deve ser 0. Qualquer número acima de 0 pode indicar setores danificados/defeituosos.
Contagem de erros ECCsó deve ser levado em consideração quando ECC
estiver definido como off
. ECC significa memória de código de correção de erros e é um mecanismo para detectar e corrigir bits errados em um estado de memória. Pode ser ligeiramente comparado às verificações de paridade feitas em RAID ou mídia óptica. Esta tecnologia é bastante cara e provavelmente só será encontrada em configurações de servidores. A contagem ECC conta quantos erros foram corrigidos pelo mecanismo ECC da memória. O ECC não deveria ser invocado para RAM íntegra, portanto, uma contagem de erros ECC acima de 0 também pode indicar memória ruim.
Explicação do erro
Exemplo de Memtest que encontrou erros. Mostra qual setor/endereço falhou.
A primeira coluna (Teste) mostra qual teste falhou, o número corresponde ao número do teste da lista já mencionada acima. A segunda coluna (Passar) mostra se esse testetempassado. No caso do exemplo, o teste 7 não foi aprovado.
A terceira coluna (Endereço com falha) mostra exatamente qual parte da memória apresenta erros. Essa parte possui um endereço, semelhante a um endereço IP, que é exclusivo para aquela parte do armazenamento de dados. Ele mostra qual endereço falhou e qual é o tamanho do bloco de dados. (0,8 MB no exemplo)
O quarto (Bom) e quinto (Ruim) colunas mostram os dados que foram gravados e o que foi recuperado, respectivamente. Ambas as colunas devem ser iguais na memória sem falhas (obviamente).
A sexta coluna (Err-bits) mostra a posição exata dos bits que estão falhando.
A sétima coluna (Contar) mostra o número de erros consecutivos com o mesmo endereço e bits com falha.
Finalmente, a última coluna sete (Chan) mostra o canal (se vários canais forem usados no sistema) em que a faixa de memória está.
Se encontrar erros
Se o MemTest descobrir algum erro, o melhor método para determinar qual módulo está com defeito é abordado emesta pergunta do superusuárioe sua resposta aceita:
Use o processo de eliminação - remova metade dos módulos e execute o teste novamente...
Se não houver falhas, você sabe que esses dois módulos são bons, então deixe-os de lado e teste novamente.
Se houver falhas, reduza para metade novamente (agora para um dos quatro módulos de memória) e teste novamente.
Mas, só porque um falhou em um teste, não presuma que o outro não falhou (você pode ter dois módulos de memória com falha) - onde você detectou uma falha com dois módulos de memória, teste cada um deles separadamente depois .
Nota importante: Com recursos como intercalação de memória e esquemas de numeração de soquete de módulo de memória inadequados por parte de alguns fornecedores de placas-mãe, pode ser difícil saber qual módulo é representado por um determinado endereço.
Responder2
Número do teste: o número do teste específico que o memtest está executando atualmente. Existem muitos deles.
Contagem de erros: o número de erros de memória encontrados
Erros ECC: Número de erros corrigidos pelo ECC. Seu chipset/memória não possui ECC, então esse número não importa.
Se sua memória tiver qualquer número de erros acima de 0, você vai querer substituí-la.
EDIT: Os testes são os diferentes padrões que o memtest grava na memória. Ele grava padrões diferentes na memória e os lê de volta para verificar se há erros, e usa padrões diferentes para poder testar todos os estados de todos os bits.
A contagem indica o número de vezes que o resultado lido no memtest não corresponde ao que foi gravado na memória, significando que há um erro no pedaço de memória que está sendo testado.
ECC é uma tecnologia de correção de erros integrada em chips de memória para servidores e estações de trabalho. A maioria dos dekstops não suporta módulos de memória com ECC integrado. Quase todos os servidores/estações de trabalho têm suporte para isso e geralmente exigem isso. O número de erros corrigidos pelo ECC é o número de erros que o chip ECC corrigiu com sucesso.
Responder3
Número de erros
Ao passar pelos testes, se a memória falhar em algum dos testes, aumentará o número de erros. Se bem me lembro, ele conta o número de endereços que falharam no teste.
Número de erros ECC
Memória ECCé um tipo especial de chip de memória usado para evitar que os dados sejam corrompidos. Sua ECC Errs
coluna conta quantos problemas foram corrigidos pelo ECC.
(ECC é lento e caro e é basicamente para sistemas de missão crítica que não se dão ao trabalho de trocar a RAM.)
Número do teste
O Memtest faz diferentes tipos de testes em sua memória, que são descritos noMemtest86local na rede Internet. Apenas como uma tradução rápida e simples para o inglês:
Teste 0: Teste de endereço para quem anda
O Memtest escreverá 00000001
no primeiro local da memória, 00000010
no próximo e assim por diante, repetindo esse padrão a cada 8 bytes. Depois ele lê a memória e garante que o valor não mudou. (Fonte)
Testes 1 e 2: Teste de endereço próprio
O Memtest grava cada local da memória com seu próprio endereço e verifica se o valor não mudou.
O teste 1 é sequencial e o teste 2 é paralelo (ou seja, usa simultaneidade).
Teste 3 e 4Teste de inversões móveis
Em essência, este teste carrega 0s na memória e depois
- pega cada local de memória (começando do primeiro/mais baixo local),
- e escreve o inverso do padrão (eu acredito que é um NOT bit a bit, mas não consegui encontrar nenhuma documentação sobre isso).
O objetivo aqui é tentar testar cada bit e seus bits adjacentes "todas as combinações possíveis de 0s e 1s".
O teste 3 não usa simultaneidade, enquanto o teste 4 usa.
Teste 5: Inversões móveis, Pat de 8 bits
Isso executa o método de inversão móvel novamente, mas desta vez com os 1s caminhando do teste 0 em blocos de 8 bits.
Teste 6: Inversões Móveis, Padrão Aleatório
Memtest usa números aleatórios em vez de todos os 0s ou 1s ambulantes.
Teste 7: Movimento de bloco
Este é divertido. Ele carrega padrões na memória, move-os em blocos de 4 MB e os verifica.
Teste 8: Inversão Móvel, Pat de 32 bits
Igual ao teste 5, mas usa blocos de 32 bits. Na verdade, este carrega todos os valores possíveis de 32 bits em todos os locais.
Teste 9: Números Aleatórios
Este carrega números pseudo-aleatórios na memória e verifica. O legal do gerador de números pseudo-aleatórios é que ele não é muito aleatório (se você já executou printf("%d", rand());
um programa C sem propagar e obteve o tão aleatório 41, você sabe o que quero dizer). Portanto, ele verifica redefinindo o semeador de números aleatórios e executando o gerador novamente.
Teste 10: Módulo-X
A cada 20 locais, ele escreve um padrão (todos 0s ou todos 1s) e escreve o complemento em todos os outros locais, depois verifica.
Teste 11: Teste de desbotamento de bits
Este carrega a RAM com todos os 1s (e novamente com todos os 0s), espera 5 minutos e vê se algum dos valores muda.