www.pcwissen.eu
Navigation
Hardware
Praxis
Sonstiges
 
 
abstandhalter


ECC: Fehlerkorrekturfunktionen für den Arbeitsspeicher

ECC ist die Abkürzung für Error-Correcting Code und ist ein Fehlerkorrekturverfahren bei x86-Computern. Ziel ist der Schutz des Hauptspeichers vor Datenfehler. Die Funktionsweise von ECC kann man mit RAID 5 vergleichen, so werden auch zusätzlichem redundante Informationen erzeugt, z.B. durch Hamming Codes. Zwar kommt ECC nicht nur bei Arbeitsspeicher, sondern auch bei Prozessoren, Flash-Speicherchips und Festplatten zur Anwendung, in diesem Artikel steht die Fehlerkorrekturfunktionen für den Arbeitsspeicher aber im Mittelpunkt.

Eingesetzt werden ECC-Speicher vor allem bei Servern und Workstationen. Der Einsatz bei PCs ist eher unüblich und meist auch wenig sinnvoll. Als Faustregel lässt sich grob sagen, umso länger der Computer/Server läuft und umso mehr Benutzer darauf zugreifen, umso eher lohnt es sich auf ECC-Arbeitsspeicher zu setzten. Allerdings muss darauf geachtet werden, dass das verwendetet System ECC auch unterstützt. Weiter unten im Artikel findet man dazu die Voraussetzungen.

Ein ECC-Speichermodul ist „breiter“ als ein normales Speichermodul, da zu dem 8-Byte-Datenwort noch ein weiteres Byte mit redundanten Informationen „angehängt“ wird. Nun kann ein Algorithmus beim Lesen überprüfen, ob sich etwas an den 8 Byte Nutzdaten etwas verändert hat. Das Wiederum bringt mit sich, dass ein ECC-DIMM 12,5 Prozent mehr Speicherplatz und acht zusätzliche Datenleitungen benötigt.

Der Fehlerschutz selbst kann je nach ECC-Speichermodul variieren. Auf einem einzelnen Speicherkanal mit 64 Bit Nutzdaten wird aber immer die SECDED, also die Single Error Correction, Double Error Detection, sichergestellt. Das bedeutet, dass Einzelbitfehler (Soft Error) korrigiert, während Veränderungen von zwei Bits nur erkannt und protokolliert werden können. Bei manchen Speicher-Controllern werden bei letzteren 2-Bit-Fehlern dann ein Warnsignal abgegeben, sodass das Betriebssystem zum Beispiel angehalten werden kann. So werden die Fehler zwar nicht korrigiert, schlimmste Schäden werden aber vermieden oder abgemildert.
Nun stellt sich natürlich die Frage, wie es mit 3-Bit-Fehlern aussieht. An 3-Bit-Fehler scheitert SECDEC-ECC, sollen solche Fälle abgefangen werden, muss man zu anderen Speicherschutzverfahren greifen, wie z.B. die Chipkill-Technik von IBM, die von anderen Herstellern Single Device Data Correction (SDDC) genannt wird. Das Chipkill-Verfahren kann den Ausfall eines kompletten Speicherchips kompensieren (Voraussetzung ist aber de Betrieb von mindestens zwei parallelen Speicherkanälen).
Noch einen Schritt weiter könnte man übrigens mit einem Memory RAID gehen. So können manche Server eine Art RAID 5 über vier Speicherkanälen aufspannen, sodass sogar Hot-Swapping, also der Austausch von Speicherkarten mitten im Betrieb, möglich ist.



Damit das mit dem ECC-Speicherschutz funktioniert, benötigt das System Speicher-Controller die den ECC-Algorithmus mit sich bringen, Speichermodule mit 12,5 Prozent höherer Speicherkapazität, die Speicherbusse des Mainboards müssen je 72 Datenleitungen besitzen und das BIOS muss die ECC-Funktion des Speicher-Controllers auch einschalten können.

Gerade das BIOS von Serverboards bietet teilweise eine Funktionsvielfalt in Sachen Fehlerkorrekturfunktionen für den Arbeitsspeicher. So kann dort je nach BIOS beispielsweise der „kontrollierte Absturz“ bei nicht behebbaren (Multibit-)fehlern eingestellt werden. Auch ein Fehlerprotokoll im System Event Log ist hier (de)aktivierbar. Teilweise findet man dort auch Spezialfunktionen wie das Scrubbing (Schrubben), mit den durch das ständige „Abklappern“ der Speicheradressen durch den Speicher-Controllers verhindert werden kann, dass aus einem Einzelbitfehler ein Multibitfehler entstehen kann.

Quellen:
  • c't Magazin Ausgabe 8 vom 29.3.2010
  • tecchannel.de
Artikel vom 05.05.2011



abstandhalter