Speichermodule: Parity und ECC

ECC

Neben der einfachen Fehlererkennung gibt es in der Elektronik eine Vielzahl von Fehlerkorrektur-Algorithmen. Ein Beispiel ist die Fehlerkorrektur bei CD-ROM-Laufwerken. Diese Algorithmen haben eines gemeinsam: Sie fordern eine zusätzliche Anzahl von Bits, die zu den eigentlichen Daten dazugehören. Die Bits dienen nur der Überprüfung und Korrektur der Daten, bevor diese zur Weiterverarbeitung ihrem Ziel zugeführt werden. Ein Algorithmus, der sich speziell für das Überprüfen und Korrigieren von Ein-Bit Soft-Errors in großen Speicherfeldern eignet, ist der Hamming-Code. Der Code kann zudem Zwei-Bit-Fehler erkennen, aber nicht korrigieren. Dieses ECC-Verfahren benötigt bei 32-Bit-breiten Daten zusätzliche sieben Check-Bits. Bei 64-Bit-breiten DIMMs sind für die Fehlerkorrektur acht Bits nötig. ECC-fähige DIMMs besitzen deshalb eine Datenbreite von insgesamt 72 Bit. Der Datenbus zwischen DIMM und Chipsatz ist ebenfalls 72 Bit breit.

Wenn der Prozessor eines 64-Bit-Rechnersystems seine Daten in das DRAM schreibt, berechnet der ECC-Controller der Speichersteuerung acht ECC-Bits und hängt diese an die Daten an. Das nunmehr 72-Bit-breite Datum wird im DIMM abgespeichert. Während eines Lesevorgangs berechnet der Chipsatz die ECC-Bits von den eingelesenen 64 Datenbits neu. Der Controller vergleicht dann den neu berechneten Code mit den ebenfalls eingelesenen Fehlercode, der beim Schreiben generiert wurde. Bei Übereinstimmung der Codes ist das 64-Bit-Datenwort korrekt. Unterscheiden sich die Codes, lässt sich die Stelle, an der ein Bit gekippt ist, genau lokalisieren. Die Speichersteuerung ändert dann wieder das Attribut des gekippten Bit zu seinem ursprünglichen Wert.

Nach Studien sind zirka 98 Prozent aller Speicherfehler Ein-Bit-Fehler. So eignet sich das ECC-Verfahren besonders gut für Bereiche, die eine hohe Datenintegrität erfordern. Zum Vergleich: Innerhalb von drei Jahren produziert ein 32-Mbyte-Paritäts-Speicher die gleiche Fehleranzahl wie ein 1-Gbyte-großer ECC-Speicher.

Das gegenüber normalen Speicher teurere ECC-DRAM findet hauptsächlich in Servern und Workstations seinen Einsatz, wo die Ausfallkosten bei einem Speicherfehler teurer wiegen als die erhöhten Anschaffungskosten. (cvi)