ECC RAM im NAS?

Von Nasselbau

Der Arbeitsspeicher (RAM) wird in einem Rechner (PC, NAS, Server, Mac, Spielekonsole, Smartphone, Tablet, etc.) dazu verwendet, die gerade ausgeführten Programme, Programmteile und ihre benötigten Daten zu speichern. Die meisten Rechner, die wir heute verwenden sind nach der Von-Neumann-Architektur aufgebaut und können daher ohne einen Arbeitsspeicher nicht funktionieren. Der Arbeitsspeicher ist also eine sehr wichtige Komponente in einem Rechner.

Technischer Aufbau

PCs, Server, NAS-Systeme, Laptops benutzen momentan überwiegend DDR-SDRAM (Double Data Rate Sychronous Dynamic Random Access Memory). Dieser speichert seine Daten in Form von Ladezuständen in Kondensatoren (jedes Bit ein Kondensator). Allerdings verlieren diese Kondensatoren ihre Ladungen immer wieder, selbst dann, wenn die Betriebsspannung aufrecht erhalten wird (darauf weißt das "Dynamic" im Namen hin). Aus diesem Grund müssen die Kondensatoren immer wieder aufgefrischt werden (worüber die "Refresh Rate" im BIOS Auskunft gibt).

Arten von Fehlern

Beim Umgang mit diesen Speicherzellen treten zwei verschiedene Arten von Fehlern auf:

  • Hard Errors: Sind Probleme mit einzelnen Speicherzellen, die in diesen Zellen eventuell auch vermehrt auftreten - z.B.: "Ein Kondensator ist kaputt".
  • Soft Errors: Sind Probleme die völlig zufällig bei beliebigen Speicherzellen auftreten können und dann Bits kippen lassen. Solche Fehler treten durch elektromagnetische Störstrahlung - oder auch durch kosmische Hintergrundstrahlung in Form von Neutronen auf

Laut einer großangelegten Studie der Universität von Toronto und der Firma Google aus dem Jahr 2009 treten dabei die Hard Errors sehr viel öfter auf als die Soft Errors. Konkret traten bei der Studie bei 8% aller Speichermodule (DIMMs) ein Fehler pro Jahr auf (bei einer DIMM-Größe von 1-4 GByte). Wird der Speicher größer, wird die Fehlerwahrscheinlichkeit auch natürlich auch höher.

Konsequenzen von Fehlern

Was kann passieren, wenn ein Bit im Arbeitsspeicher "umkippt"?

  • Im besten Fall: Nichts. Wenn in dem Teil des Speichers gerade keine Daten waren, dann ist der Zustand eines Bits auch völlig egal und es passiert nichts.
  • Fehler im Programmspeicher: Bei einem Fehler in einem von einem Programm genutzten Speicher kann das dazu führen, dass das Programm abstürzt
  • Fehler im Datenspeicher: Tritt ein Fehler in einem von Daten genutzten Speicher auf, so kann es passieren, dass die Daten verändert werden. Das könnte in einem ganz blöden Fall zum Beispiel das Vorzeichen einer Bilanz in einer Excel-Tabelle sein.
  • Fehler im Betriebssystemspeicher: Ein Fehler in diesem Speicherbereich kann dazu führen, dass das Betriebssystem in einen unkontrollierten Zustand übergeht und damit abstürzt.

Was macht ECC?

ECC steht für Error Correction Code und funktioniert im Prinzip so, dass für eine Zelle von 64 Bit Speicher eine Prüfziffer von 8 Bit gespeichert wird. Daher muss ein ECC-Modul auch mehr Speicher besitzen als ein normales Speichermodul (1/8 mehr) und wird damit auch teuerer. Tritt nun ein Fehler in einem der 64 Bits Nutzdaten auf, so kann dieser dank der 8 zusätzlichen Bits korrigiert werden (daher der Name ECC - Error Correction Code). Sind in den Nutzdaten 2 Bit falsch, kann das zwar erkannt, aber nicht korrigiert werden. Und ab 3 falschen Bits kann auch ECC nichts mehr ausrichten.

Warum ECC-Speicher?

Die Wahrscheinlichkeit für dramatische Fehler ist zugegeben nicht besonders hoch - und auch wenn ich in meinem Arbeitsrechner (siehe Dell Poweredge T20 als Desktop PC) ECC-Speicher einsetze, so würde ich sagen: Für einen Desktop-PC ist das nicht unbedingt notwendig. Nebenbei bemerkt: Microsoft empfiehlt seit Windows Vista, ECC-RAM im Desktop einzusetzen.
Bei einem NAS oder Server sieht die Sache anders aus: Diese Geräte laufen oft rund um die Uhr und sie verarbeiten sehr viel mehr Daten als Desktop-PCs. Wenn dort auch der Arbeitsspeicher-Ausbau großzügig gehandhabt wird, dann ist die Wahrscheinlichkeit für einen Fehler hier höher. Daher empfehle ich, für den Einsatz im selbstgebauten Server oder NAS, ECC-Speicher zu verwenden. Gerade im Hinblick darauf, dass in den Kisten immer mehr RAM steckt und die physikalischen Strukturen der Speicherzellen immer kleiner werden.

Wichtig ist auch, zu beachteten, dass nicht nur der Speicher die ECC-Mechanismen beherrscht. Auch das Mainboard und der Prozessor müssen das Ansteuern von ECC-RAM beherrschen. Das können aktuell nur dir Server- Chipsätze und Prozessoren von Intel. Diese sind (List nicht vollständig):

  • Intel Xeon Prozessoren
  • Intel Core i3 Prozessoren
  • Intel Pentium Prozessoren

...und die Chipsätze C222, C224 und C226.