Woran erkenne ich, ob mein Speicher ECC oder Nicht-ECC ist?

46

Ich muss den Speicher in meinem System austauschen und bin nicht sicher, wie ich feststellen soll, ob es sich um einen ECC- oder einen Nicht-ECC-Speicher handelt. Wie bestimme ich das?

James Mertz
quelle
2
Befindet sich etwas im Handbuch Ihres PCs? In der Regel ist es dort angegeben. Andernfalls laden Sie Speccy herunter und installieren Sie es . Dieses Programm sagt Ihnen genau, welche Hardware Sie in Ihrem PC haben, dann können Sie es überprüfen.
Wernfried Domscheit
Schlagen Sie im Motherboard-Handbuch oder im Systemhandbuch Ihres Systems nach, und finden Sie heraus, was für Ihre Hardware erforderlich ist. Verwenden Sie die Speichervorschlagstools auf den Websites der verschiedenen RAM-Anbieter?
Zoredache
2
@WannabeCoder "Sie sollten Nicht-ECC verwenden" [Zitieren erforderlich] [unzureichende Erklärung]
ein CVn
1
@ MichaelKjörling Die Datenintegrität auf dieser Ebene ist bei Heimanwendungen nicht kritisch. Übergeordnete Anwendungen (oder das Betriebssystem) können dies problemlos verarbeiten, und der ECC-Speicher ist mit einem geringen Leistungsaufwand verbunden. Darüber hinaus unterstützen praktisch alle Consumer-CPUs keinen ECC-Speicher (daher das "Sollte").
WannabeCoder

Antworten:

58

Unter Windows 7 können Sie den folgenden Befehl in der Eingabeaufforderung ausführen:

wmic MEMORYCHIP get DataWidth,TotalWidth

Wenn der TotalWidth-Wert größer als der DataWidth-Wert ist, haben Sie ECC-Speicher.

Beispielausgabe:

//ECC Memory
DataWidth  TotalWidth
64         72

//Non-ECC Memory
DataWidth  TotalWidth
64         64

Eine bessere Methode zur Ermittlung ist der folgende Befehl:

wmic memphysical get memoryerrorcorrection

Dies gibt einen Code zurück, der auf dem Typ des installierten Speichers basiert :

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
James Mertz
quelle
Ich bin memoryphysisch - Alias ​​nicht gefunden. auf Windows 7 Enterprise SP 1
3
@ kristianp Der 2. Befehl enthielt zwei Tippfehler: wmic memphysical get memoryerrorcorrection(hat bei mir in 8.1 funktioniert)
Dan Neely
@DanNeely Mein System (von dem ich weiß, dass es 8 Streifen mit 4 GB ECC enthält) gibt aus diesem Befehl 2 Werte aus: 6 und 3 in einer zweiten Ausgabezeile. Der andere Befehl zeigt 8 Zeilen mit 64 und 72 (wie erwartet) und 1 zusätzliche Zeile mit 2 und 2. Ich habe das noch nie gesehen. Irgendeine Idee was das bedeutet? Für die Aufzeichnung: Es ist eine HP XW8600 Workstation (Intel 5400/6311 Server Motherboard.)
Tonny
@Tonny welchen Befehl benutzt du?
James Mertz
Was bedeutet Code 3 (keiner)? Ich habe keinen Speicher installiert?
Setzen Sie Monica am
40

Für FreeBSD (und wahrscheinlich die meisten Unix-ähnlichen Plattformen):

dmidecode -t 17

Beispielausgabe:

# dmidecode 2.12
SMBIOS 2.5 vorhanden.

Behandeln Sie 0x1100, DMI-Typ 17, 28 Byte
Speichergerät
        Array-Handle: 0x1000
        Fehlerinformationshandle: Nicht bereitgestellt
        Gesamtbreite: 72 Bits
        Datenbreite: 64 Bit
        Größe: 2048 MB
        Formfaktor: DIMM
        Set 1
        Locator: DIMM1
        Bank Locator: Nicht angegeben
        Typ: DDR2
        Typendetail: Synchron
        Geschwindigkeit: 667 MHz
        Hersteller: AD00000000000000
        Seriennummer: 00002062
        Objekt-Tag: 010839
        Teilenummer: HYMP125P72CP8-Y5
        Rang: 2

Das Total Width: 72 bitsist der Teil, den Sie suchen.


Weitere Informationen zur Erkennung dieses Problems unter Linux finden Sie hier auf unserer Schwestersite unix.stackexchange.com.

Weitere Informationen zur Funktionsweise des Fehlerkorrekturcodes finden Sie in diesem einfachen Beitrag, in dem ich gezeigt habe, wie Sie zusätzliche Bits zum Erkennen und Korrigieren von Fehlern verwenden können. Aus diesem Grund haben wir DIMMs mit einer Breite von 64 Bit (8 Byte Datenbreite) oder 72 Bit (64 Daten plus zusätzliche Bits zum Speichern redundanter Informationen).

Hennes
quelle
3
dmidecode ist auch unter Linux Standard. Ich denke, dass die Fehlerkorrektur standardmäßig mit installiertem ECC-RAM durchgeführt wird. Wenn Ihr Kernel jedoch den Speichercontroller überwacht, um die Speicherfehlerrate zu verfolgen, ist dies eine weitere Bestätigung dafür, dass Sie über ECC-RAM verfügen. (Überprüfen Sie das Kernel-Protokoll.)
Peter Cordes
Wie überprüfen Sie, ob der Speichercontroller dies verfolgt? mcelog?
Hennes
Ich habe keinen Zugriff mehr auf mit ECC ausgestattete Server, suche aber nach einer Kernel-Protokollmeldung. Vielleicht gibt es keinen. Es gibt einen Link zu etwas auf buttersideup.com (bester Domainname für ein Projekt, IMO).
Peter Cordes
1
Ich denke , Sie sollten in Ihrer Antwort erklären , was über ECC zu schließen , wenn Total Widthist 72 bitsoder 64 bits.
AL
1
"Die Gesamtbreite: 72 Bit ist der Teil, den Sie suchen." Und was mache ich, nachdem ich es gefunden habe?
Endolith
19

Wenn Sie sich das physische Speichermodul ansehen, hat der ECC normalerweise 9 (manchmal mehr) Chips. Nicht-ECC hat nur 8 (oder selten 8x2 = 16) .

ECC gegen Nicht-ECC (Mit freundlicher Genehmigung von Puget Systems )

BlueRaja - Danny Pflughoeft
quelle
9 Chips für die 10 Bits pro Byte auf dem ECC-Modul?
Hennes
5
@ Hennes: Sie können 10 haben, aber 9 ist weitaus häufiger. Der Speicher ist typischerweise in Blöcke von 72 Bits (8 Bits, die auf einmal von jedem von 9 Datenchips gelesen werden) aufgeteilt , wobei jeder Block 64 Datenbits + 8 Fehlerkorrekturbits enthält. Sehen Sie hier für weitere technische Informationen.
BlueRaja - Danny Pflughoeft
1
In der Regel ist das Modul ECC, wenn die Anzahl der Speicherchips durch 3 teilbar ist.
James Mertz
Beim Kopieren von Inhalten (einschließlich Bildern) müssen Sie eine Namensnennung vornehmen.
Mokubai
1
@endolith seit der Gründung der Website und gemäß der Hilfe: So verweisen Sie auf Material, das von anderen geschrieben wurde .
Mokubai
8

Auf einem Mac können Sie in der Systeminformationsanwendung den ECC-Status des Computers und der einzelnen RAM-Module ermitteln.

/Applications/Utilities/System Information

Wählen Sie im rechten Bereich unter "Hardware" die Option "Speicher".

Dann mit der Liste "Memory Slots" ausgewählt. Das folgende Fenster sollte einen ECC-Status anzeigen.

Siehe bild unten:

Fenster der Systeminformations-App

Auch als FYI hat jeder RAM-Steckplatz ein Statusfeld. Wenn in einem RAM-Modul ein Problem festgestellt wird, hat der Status einen anderen Wert als "OK".

MrDaniel
quelle
Bedeutet "Deaktiviert", dass der RAM nicht ECC ist? Es ist nicht ganz klar aus Ihrer Antwort
mounaim
Das ist richtig, ein Status von "Aktiviert" würde bedeuten, dass der RAM ECC ist.
MrDaniel
6

inxi kann das:

$ 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

...

Hier werden nicht ECC-RAM-Module verwendet EC: None

Jonas Stein
quelle
Ist das 4 EC: Noneder Wert, den ich suchen sollte?
James Mertz
Nur die EC: None. Das 4ist Teil des vorherigen Feldes ( devices: 4).
Duskwuff
0

Sie können auch eine kostenlose App wie Belarc ausprobieren . Gibt auch ein paar weitere Informationen über Ihr System ...

Ich habe die Software einige Male benutzt. Ich bin mit dieser Software nicht verbunden, aber ich weiß, dass sie von einigen Universitäten verwendet wird.

Ich kann keinen Screenshot der Ergebnisse bereitstellen, da er vertrauliche Daten enthält. Die Website sollte jedoch einige Beispiele enthalten. Es ist ziemlich einfach (und schnell), lade die Datei herunter, starte sie und die Ergebnisse werden präsentiert.

htm11h
quelle
Bitte machen Sie nähere Angaben zur Funktionsweise. Zum Nachschlagen siehe diesen Meta-Post
James Mertz