Error Checking and Correcting
Error Checking and Correcting
Fehlererkennung (ECC)
Speichermodule können je nach Bestückung verwendet werden
- ohne Fehlererkennung
- mit Fehlererkennung (Parität)
- mit Fehlerkorrektur (ECC)
- Paritäts-Bit
Für die einfache Fehlererkennung mittels Paritätsbit wird je 8 bit Wortbreite ein weiteres Bit benötigt, die Module sind folglich 9 bit (einfaches SIMM), 36 bit (PS/2-SIMM) oder 72 bit breit (übliche DIMMs) organisiert
- Ein einzelnes DIMM bietet damit auch genügend Bit-Breite für die Nutzung der Fehlerkorrektur (siehe unten), während hierzu mehrere gleichartige PS/2-Module parallel geschaltet werden müssen
- Chipsatz und BIOS
Die Fehlerkorrektur muss außerdem von der Hauptplatine (Chipsatz und BIOS) unterstützt werden, die zusätzlichen Bits auf den Modulen schaffen nur die Möglichkeit zur Ablage der benötigten Information
- Erkennungsverfahren
Zur Erkennung von Hauptspeicherfehlern gibt es mehrere Verfahren
- Eines dieser Verfahren stammt vom US-Mathematiker Richard Hamming: Der Error Correction Code (ECC) ist eine Art Hashwert über die 64 Bits jeder Speicherzeile
- Diese redundanten Informationen werden vom Speichercontroller berechnet und in acht weiteren Bits abgelegt (bei 32-bit-Speicherzeilen sind es sieben weitere Bits), weshalb ECC-Speicher 72 Bits pro Zeile hat
- Das Verfahren selbst heißt Error Checking and Correcting
ECC kann alle 1-bit-Fehler korrigieren und alle 2-bit-Fehler sowie manche Mehr-bit-Fehler erkennen
- ECC-Speicher kommt in Desktop-PCs kaum zum Einsatz
- Weitere Techniken zur Fehlererkennung
- Chipkill
- Active Memory
- Memory Resiliency
- Memory RAID
- Ursache von Speicherfehlern
Die Hauptursache von Speicherfehlern ist nicht ionisierende Strahlung (wie früher vermutet), sondern eher Probleme einzelner Speicherzellen (zum Beispiel durch Alterung oder Fertigungsprobleme)
Anwendung
Message from syslogd@mx10 at Nov 20 21:01:33 ...
kernel:[376047.608409] [Hardware Error]: Corrected error, no action required.
Message from syslogd@mx10 at Nov 20 21:01:33 ...
kernel:[376047.608537] [Hardware Error]: CPU:0 (17:71:0) MC17_STATUS[-|CE|MiscV|AddrV|-|-|SyndV|CECC|-|-|Scrub]: 0x9c2041000000011b
Message from syslogd@mx10 at Nov 20 21:01:33 ...
kernel:[376047.608722] [Hardware Error]: Error Addr: 0x000000045d982340
Message from syslogd@mx10 at Nov 20 21:01:33 ...
kernel:[376047.608846] [Hardware Error]: IPID: 0x0000009600050f00, Syndrome: 0xcf8600040a800a01
Message from syslogd@mx10 at Nov 20 21:01:33 ...
kernel:[376047.609009] [Hardware Error]: Unified Memory Controller Ext. Error Code: 0, DRAM ECC error.
Message from syslogd@mx10 at Nov 20 21:01:33 ...
kernel:[376047.609366] [Hardware Error]: cache level: L3/GEN, tx: GEN, mem-tx: RD