Como posso saber se minha memória é ECC ou não ECC?


46

Preciso substituir a memória do meu sistema e não tenho certeza de como determinar se a memória é ECC ou Não-ECC. Como eu determino isso?


2
Existe alguma coisa no manual do seu PC, geralmente é especificado lá. Caso contrário, faça o download e instale o Speccy . Este programa informa exatamente qual hardware você possui no seu PC, e você pode verificá-lo.
Wernfried Domscheit 24/03

Consulte o manual da placa-mãe ou o manual do sistema e veja o que é necessário para o seu hardware? Use as ferramentas de sugestão de memória nos vários sites dos fornecedores de RAM?
Zoredache


2
@WannabeCoder "você deveria estar usando não-ECC" [citação necessário] [explicação insuficiente]
um CVn

1
@ MichaelKjörling A integridade dos dados nesse nível não é crítica em aplicativos de uso doméstico. Os aplicativos pai (ou o SO) podem lidar com isso facilmente, e a memória ECC vem com uma pequena sobrecarga de desempenho. Além disso, praticamente todas as CPUs de consumidor não suportam memória ECC (portanto, o "deveria").
WannabeCoder

Respostas:


58

No Windows 7, você pode executar o seguinte comando no prompt de comando:

wmic MEMORYCHIP get DataWidth,TotalWidth

Se o valor TotalWidth for maior que o valor DataWidth, você terá memória ECC.

Exemplo de saída:

//ECC Memory
DataWidth  TotalWidth
64         72

//Non-ECC Memory
DataWidth  TotalWidth
64         64

Uma maneira melhor de determinar é através do seguinte comando:

wmic memphysical get memoryerrorcorrection

Isso retornará um código com base no tipo de memória instalada:

Value Meaning 
0 (0x0) Reserved 

1 (0x1) Other 

2 (0x2) Unknown 

3 (0x3) None 

4 (0x4) Parity 

5 (0x5) Single-bit ECC 

6 (0x6) Multi-bit ECC 

7 (0x7) CRC

Eu fico com memória física - Alias ​​não encontrado. no windows 7 Enterprise SP 1

3
@kristianp O segundo comando teve dois erros na mesma, deveria ter sido: wmic memphysical get memoryerrorcorrection(trabalhou para mim em 8.1)
Dan Neely

@ DanNeely Meu sistema (que eu sei que possui 8 tiras de 4 GB de ECC) fornece 2 valores desse comando: 6 e 3 em uma segunda linha de saída. O outro comando mostra 8 linhas com 64 e 72 (conforme o esperado) e 1 linha extra mostrando 2 e 2. Eu nunca vi isso antes. Alguma idéia do que isso significa? Para constar: É uma estação de trabalho HP XW8600 (placa-mãe para servidor Intel 5400/6311).
Tonny

@ Tonny qual comando você está usando?
precisa

O que significa o código 3 (nenhum)? Não tenho memória instalada?
Reintegrar Monica

40

Para o FreeBSD (e provavelmente a maioria das plataformas tipo unix):

dmidecode -t 17

Exemplo de saída:

# dmidecode 2.12
SMBIOS 2.5 presente.

Identificador 0x1100, tipo DMI 17, 28 bytes
Dispositivo de memória
        Alça da matriz: 0x1000
        Identificador de informações de erro: não fornecido
        Largura total: 72 bits
        Largura de dados: 64 bits
        Tamanho: 2048 MB
        Fator de forma: DIMM
        Conjunto: 1
        Localizador: DIMM1
        Localizador de bancos: não especificado
        Tipo: DDR2
        Detalhe do tipo: Síncrono
        Velocidade: 667 MHz
        Fabricante: AD00000000000000
        Número de série: 00002062
        Etiqueta de ativo: 010839
        Número da peça: HYMP125P72CP8-Y5
        Posição: 2

A Total Width: 72 bitsé a parte que você está procurando.


Mais informações sobre como detectar isso no Linux podem ser encontradas aqui no site irmão unix.stackexchange.com.

Mais informações sobre como o código de correção de erros funciona podem ser encontradas neste post simples, onde mostrei como você pode usar bits extras para detectar e corrigir erros. É por isso que temos DIMMs com 64 bits de largura (8 bytes de dados) ou 72 bits (64 dados mais bits extras para armazenar informações redundantes).


3
O dmidecode também é padrão no Linux. Eu acho que a correção de erros ocorrerá por padrão com a RAM do ECC instalada, mas se o seu kernel estiver monitorando o controlador de memória para rastrear a taxa de erro de memória, isso seria outra confirmação de que você tem RAM do ECC. (verificar o log do kernel.)
Peter Cordes

Como você verifica se o controlador de memória está rastreando isso? mcelog?
Hennes 25/03

Não tenho mais acesso a nenhum servidor equipado com ECC, mas procuraria uma mensagem de log do kernel sobre isso. Talvez não exista. Há um link para algo sobre isso no buttersideup.com (o melhor nome de domínio já feito para um projeto, IMO).
Peter Cordes

1
Eu acho que você deveria explicar em sua resposta o que concluir sobre o ECC se Total Widthé 72 bitsou não 64 bits.
AL

1
"A largura total: 72 bits é a parte que você está procurando." E o que faço depois de encontrá-lo?
Endolith

19

Se você observar o módulo de memória física, o ECC geralmente terá 9 (às vezes mais) chips. Os não-ECC terão apenas 8 (ou raramente, 8x2 = 16) .

ECC vs não-ECC (Imagem cortesia de Puget Systems )


9 chips para os 10 bits por byte no módulo ECC?
Hennes 25/03

5
@Hennes: Você pode ter 10, mas 9 é muito mais comum. A memória é tipicamente dividida em pedaços de 72 bits (8 bits lidos de cada vez de 9 chips de dados) , com 64 bits de dados + 8 bits de correção de erros em cada pedaço. Veja aqui para mais informações técnicas.
BlueRaja - Danny Pflughoeft 25/03

1
Como regra mais geral, se o número de chips de memória é divisível por 3, o módulo é ECC.
James Mertz 26/03

Ao copiar qualquer conteúdo (incluindo imagens), você deve fornecer a atribuição.
Mokubai

1
@endolith desde o início dos sites e de acordo com o centro de ajuda: Como fazer referência a material escrito por outras pessoas .
Mokubai

8

Em um Mac, você pode procurar no aplicativo Informações do sistema para determinar o status ECC do computador e de cada módulo de RAM.

/Applications/Utilities/System Information

Selecione Memória no painel direito, na seção hardware.

Em seguida, com a lista "Slots de memória" selecionada. A janela abaixo deve mostrar um status de ECC.

Veja a imagem abaixo:

Janela Aplicativo de informações do sistema

Além disso, como FYI, cada slot de RAM terá um campo Status, se houver um problema detectado em um módulo de RAM, o status será um valor diferente de "OK"


"Desativado" significa que a ram não é ECC? ele não está muito claro a partir de sua resposta
mounaim

Correto, o status "Ativado" significa que a RAM é ECC.
MrDaniel

6

A inxi pode fazer isso:

$ sudo inxi -m -xxx
Memory:    Array-1 capacity: 32 GB devices: 4 EC: None
           Device-1: ChannelA-DIMM0 size: 4 GB speed: 1333 MHz type: DDR3 (Synchronous)
           bus width: 64 bits manufacturer: Kingston part: KHX1600C9D3/4GX serial: B7ED5A53

...

Aqui são utilizados módulos não ECC-RAM EC: None


É o 4 EC: Nonevalor que eu deveria estar procurando?
James Mertz 25/03

Apenas o EC: None. O 4faz parte do campo anterior ( devices: 4).
duskwuff

0

Você também pode experimentar um aplicativo gratuito como o Belarc . Também fornece mais informações sobre o seu sistema ...

Eu usei o software algumas vezes. Não tenho afiliação com este software, mas sei que ele é usado por algumas universidades.

Não posso fornecer uma captura de tela dos resultados porque ela contém dados confidenciais, mas o site deve fornecer alguns exemplos. É bem simples (e rápido), faça o download do arquivo, execute-o e os resultados são apresentados.


Por favor, forneça mais detalhes sobre como isso funciona. Para referência, consulte esta meta post
James Mertz 26/03
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.