ECC - Error Correcting Code
ECC ist ein Fehlerkorrektur-Verfahren für Speicher, bei dem redundante Informationen erzeugt werden, um Datenfehler erkennen und korrigieren zu können. Das Ziel ist, die statistische Bitfehlerrate zu senken. ECC kann 1-Bit-Fehler sofort korrigieren. 2-Bit-Fehler werden erkannt, aber nicht korrigiert. 3-Bit-Fehler können nicht alle erkannt werden. Dafür gibt es Speicherschutz-Verfahren, die deutlich mehr können.
ECC-Speicher ist eine technische Maßnahme, um die Zuverlässigkeit (Reliability), Verfügbarkeit (Availability) und Wartbarkeit (Serviceability) zu erhöhen (kurz RAS). Doch nur mit einem ECC-Speicher wird ein handelsüblicher PC noch nicht zu einer hochverfügbaren Maschine.
Typischer Weise kommt ECC-Speicher in Servern und Workstations vor. Eher selten in PCs.
ECC-Speicher
Man dürfte kaum annehmen, dass in einem geschlossenen System, wie in einem Computer ein Datenfehler auftreten kann. Warum sollte ECC-Speicher hier Sinn machen? Doch tatsächlich erweisen sich manche Speichermodule und Motherboards als besonders anfällig für Datenfehler. Die Wahrscheinlichkeit von Datenfehlern in Speichern wächst mit der Größe des Speichers, aber auch mit dessen mittlerer Auslastung. Fehler im Speicher können Daten verfälschen. Fehlerhafte Daten und Berechnungen, sowie Abstürze können die Folge sein.
Obwohl ECC-Speicher vor Datenfehlern schützt, macht dessen Einsatz in einem privat genutzten Computer wenig Sinn. Wenn der physische Speicher nur zu einem Bruchteil genutzt wird und das System nur wenige Stunden am Tag läuft, dann wird dort nur selten ein Datenfehler auftreten. Ganz anders sieht es in Servern und Workstations aus. Hier ist der Arbeitsspeicher erheblich größer und wird intensiver genutzt.
ECC-Speicherschutz
Ein funktionierender ECC-Speicherschutz bedarf der Zusammenarbeit von 4 Komponenten. Der Speichercontroller muss den jeweiligen ECC-Algorithmus beherrschen. Zum Einsatz kommen spezielle ECC-Speichermodule, die natürlich auch teurer sind, als normale Speichermodule. Das Motherboard muss 72 Datenleitungen je Speicherkanal bereitstellen. 8 mehr als normale Speicherkanäle. Und das BIOS muss den ECC-Speicherschutz des Speichercontrollers einschalten.
Der ECC-Speicherschutz besteht darin, dass der Speichercontroller vor dem Schreiben zu jedem 8-Byte-Datenwort ein zusätzliches Byte an redundante Daten erzeugt. Dabei entsteht ein 9-Byte-Datenwort. Das bedeutet, dass ein ECC-Speichermodul breiter sei muss, um die zusätzlichen Daten speichern zu können. Ein ECC-Speichermodul (DIMM) hat 12,5 Prozent mehr Speicherplatz und zusätzlich 8 Datenleitungen. Normale DIMM-Speichermodule haben 64 Datenleitungen. Bei ECC-DIMMs sind es 72 Datenleitungen.
ECC-Algorithmus
Es gibt nicht einen ECC-Algorithmus. Es gibt unterschiedliche und patentierte Algorithmen mit verschiedenen Eigenschaften. Der ECC-Algorithmus ist fest in den Speichercontroller verdrahtet, um einen Geschwindigkeitsverlust zu vermeiden. Bei Lesezugriffen prüft der ECC-Algorithmus anhand der redundanten Daten, ob sich die Nutzdaten verändert haben. Einzelbitfehler kann der Speichercontroller sicher erkennen und korrigieren. Das System läuft dabei normal weiter. 2-Bit-Fehler werden erkannt, aber nicht korrigiert. 3-Bit-Fehler können nicht alle erkannt werden. Dafür gibt es Speicherschutz-Verfahren, die deutlich mehr können.
Anwendungen von ECC
- Arbeitsspeicher bei PCs und Servern
- Prozessor-Caches
- Flash-Speicher
- Festplatten
Weitere verwandte Themen:
- Speichermodule
- DIMM - Dual Inline Memory Module
- R-DIMM und FB-DIMM
- DDR-SDRAM (DDR1 / DDR2 / DDR3)
- PCxxxx-Spezifikation




