Come faccio a sapere se la mia memoria è ECC o non ECC?


46

Devo sostituire la memoria nel mio sistema e non sono del tutto sicuro di come determinare se la memoria è ECC o Non ECC. Come posso determinarlo?


2
C'è qualcosa nel manuale del tuo PC, di solito è specificato lì. Altrimenti scarica e installa Speccy . Questo programma ti dice esattamente quale hardware hai nel tuo PC, quindi puoi controllarlo.
Wernfried Domscheit,

Consulta il manuale della scheda madre o il manuale di sistema per il tuo sistema e vedi cosa è necessario per il tuo hardware? Utilizzare gli strumenti di suggerimento di memoria sui vari siti Web dei fornitori di RAM?
Zoredache,


2
@WannabeCoder "dovresti usare non-ECC" [citazione necessaria] [spiegazione insufficiente]
un CVn

1
@ MichaelKjörling L'integrità dei dati a quel livello non è fondamentale nelle applicazioni per uso domestico. Le applicazioni padre (o il sistema operativo) possono gestirlo facilmente e la memoria ECC ha un sovraccarico di prestazioni ridotto. Inoltre, praticamente tutte le CPU consumer non supportano la memoria ECC (quindi il "dovrebbe").
WannabeCoder,

Risposte:


58

Per Windows 7 è possibile eseguire il comando seguente nel prompt dei comandi:

wmic MEMORYCHIP get DataWidth,TotalWidth

Se il valore TotalWidth è maggiore del valore DataWidth, si dispone di memoria ECC.

Esempio di output:

//ECC Memory
DataWidth  TotalWidth
64         72

//Non-ECC Memory
DataWidth  TotalWidth
64         64

Un modo migliore per determinare è tramite il seguente comando:

wmic memphysical get memoryerrorcorrection

Ciò restituirà un codice basato sul tipo di memoria installata:

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

Ottengo memoria fisica - Alias ​​non trovato. su Windows 7 Enterprise SP 1

3
@kristianp Il 2o comando aveva due errori di battitura, avrebbe dovuto essere: wmic memphysical get memoryerrorcorrection(ha funzionato per me in 8.1)
Dan Neely

@DanNeely Il mio sistema (che conosco ha 8 strisce da 4 GB ECC) fornisce 2 valori da quel comando: 6 e 3 su una seconda riga di output. L'altro comando mostra 8 righe con 64 e 72 (come previsto) e 1 riga aggiuntiva che mostra 2 e 2. Non l'ho mai visto prima. Qualche idea su cosa significhi? Per la cronaca: è una workstation HP XW8600 (scheda madre del server Intel 5400/6311).
Tonny

@Tonny quale comando stai usando?
James Mertz,

Cosa significa il codice 3 (nessuno)? Non ho memoria installata?
Ripristina Monica il

40

Per FreeBSD (e probabilmente la maggior parte delle piattaforme come unix):

dmidecode -t 17

Esempio di output:

# dmidecode 2.12
SMBIOS 2.5 presente.

Gestire 0x1100, tipo DMI 17, 28 byte
Dispositivo di memoria
        Maniglia di array: 0x1000
        Gestione delle informazioni sull'errore: non fornita
        Larghezza totale: 72 bit
        Larghezza dati: 64 bit
        Dimensione: 2048 MB
        Fattore di forma: DIMM
        Set: 1
        Localizzatore: DIMM1
        Localizzatore di banca: non specificato
        Tipo: DDR2
        Tipo di dettaglio: sincrono
        Velocità: 667 MHz
        Produttore: AD00000000000000
        Numero di serie: 00002062
        Etichetta del bene: 010839
        Codice: HYMP125P72CP8-Y5
        Rango: 2

Questa Total Width: 72 bitsè la parte che stai cercando.


Maggiori informazioni su come rilevarlo in Linux sono disponibili qui sul nostro sito affiliato unix.stackexchange.com.

Ulteriori informazioni su come funziona il codice di correzione degli errori sono disponibili in questo semplice post in cui ho mostrato come utilizzare bit extra per rilevare e correggere errori. Questo è il motivo per cui abbiamo moduli DIMM di 64 bit di larghezza (8 byte di dati di larghezza) o 72 bit di larghezza (64 dati più bit extra per memorizzare informazioni ridondanti).


3
dmidecode è standard anche su Linux. Penso che la correzione degli errori accadrà di default con la RAM ECC installata, ma se il tuo kernel sta monitorando il controller di memoria per tracciare il tasso di errore della memoria, sarebbe un'altra conferma che hai la RAM ECC. (controlla il registro del kernel.)
Peter Cordes,

Come si controlla se il controller di memoria lo sta seguendo? mcelog?
Hennes,

Non ho più accesso a nessun server dotato di ECC, ma cercherò un messaggio di registro del kernel a riguardo. Forse non ce n'è uno. C'è un link a qualcosa al riguardo su buttersideup.com (miglior nome di dominio di sempre per un progetto, IMO).
Peter Cordes,

1
Penso che dovresti spiegare nella tua risposta cosa concludere su ECC se Total Widthè 72 bitso 64 bits.
AL

1
"La larghezza totale: 72 bit è la parte che stai cercando." E cosa devo fare dopo averlo trovato?
endolith,

19

Se guardi il modulo di memoria fisica, ECC di solito avrà 9 (a volte più) chip. Non ECC ne avrà solo 8 (o raramente, 8x2 = 16) .

ECC vs non ECC (Immagine gentilmente concessa da Puget Systems )


9 chip per i 10 bit per byte sul modulo ECC?
Hennes,

5
@Hennes: puoi averne 10, ma 9 è molto più comune. La memoria viene in genere suddivisa in blocchi di 72 bit (8 bit letti contemporaneamente da ciascuno dei 9 chip di dati) , con 64 bit di dati + 8 bit di correzione degli errori in ciascun blocco. Vedi qui per maggiori informazioni tecniche.
BlueRaja - Danny Pflughoeft il

1
Come regola più generale, se il numero di chip di memoria è divisibile per 3, il modulo è ECC.
James Mertz,

Quando si copia qualsiasi contenuto (comprese le immagini) è necessario fornire l'attribuzione.
Mokubai

1
@endolith sin dall'inizio dei siti e secondo il centro assistenza: come fare riferimento al materiale scritto da altri .
Mokubai

8

Su un Mac è possibile consultare l' applicazione Informazioni di sistema per determinare lo stato ECC del computer e di ciascun modulo RAM.

/Applications/Utilities/System Information

Seleziona Memoria nel riquadro a destra, nella sezione hardware.

Quindi con l'elenco "Memory Slots" selezionato. La finestra in basso dovrebbe mostrare uno stato ECC.

Vedi l'immagine sotto:

Finestra dell'app Informazioni di sistema

Inoltre, in quanto FYI, ogni slot RAM avrà un campo Stato se viene rilevato un problema in un modulo RAM, lo stato sarà un valore diverso da "OK"


"Disabilitato" significa che il ram non è ECC? non è del tutto chiaro dalla tua risposta
mounaim,

È corretto che uno stato di "Abilitato" significherebbe che la sua RAM è ECC.
MrDaniel,

6

Inxi può farlo:

$ 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

...

Qui vengono utilizzati moduli non ECC-RAM EC: None


È il 4 EC: Nonevalore che dovrei cercare?
James Mertz,

Solo il EC: None. Fa 4parte del campo precedente ( devices: 4).
duskwuff,

0

Potresti anche provare un'app gratuita come Belarc . Fornisce anche molte altre informazioni sul tuo sistema ...

Ho usato il software alcune volte. Non ho alcuna affiliazione con questo software, ma so che è utilizzato da alcune università.

Non posso fornire una schermata dei risultati perché contiene dati riservati, ma il sito Web dovrebbe fornire alcuni esempi. È piuttosto semplice (e veloce), scarica il file, eseguilo e vengono presentati i risultati.


Si prega di fornire maggiori dettagli su come funziona. Per riferimento vedere questo meta post
James Mertz,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.