ECC RAM

Die Sicherheit hat bei der Verarbeitung von Daten in vielen Branchen allerhöchste Priorität. Unternehmen wickeln wichtige Geschäftsprozesse ab und sind dabei gleichermaßen auf die Stabilität der Daten angewiesen wie ein Hosting-Dienst, der Inhalte seiner Kunden speichert. Treten schwerwiegende Speicherfehler auf, drohen nicht nur finanzielle Verluste, sondern im ungünstigsten Fall auch eine erhebliche Schwächung der Marktposition. Die Tendenz zu immer mehr Arbeitsspeicher ist in diesem Zusammenhang kritisch zu bewerten, da mit der Speicherkapazität auch die Fehlerrate steigt. Deshalb wird in Arbeits- und Serverumgebungen, die eine hohe Datenintegrität erfordern, großer Wert auf einen umfassenden Schutz der Daten gelegt. Um beispielsweise dauerhaft vor Einzelbitfehlern geschützt zu sein, wird sogenannter ECC-RAM anstelle von gewöhnlichem Arbeitsspeicher verwendet.

ECC-RAM: Hintergrund und Definition

Random-Access Memory (RAM) – deutsch: „Speicher mit wahlfreiem Zugriff“ – ist ein Speichermedium, das in Computersystemen als Arbeitsspeicher verwendet wird. Auch als Hauptspeicher bekannt, ist er für die Ausführung der Programme inklusive anfallender Nutzdaten verantwortlich. Die flüchtigen Inhalte des Hauptspeichers sind dabei als Binärcode gespeichert, also einzig aus Nullen und Einsen bestehend, damit der Computer sie verarbeiten kann. Eine einzelne Binärstelle wird als Bit bezeichnet. Aufgrund verschiedener Ursachen wie

  • Spannungsschwankungen,
  • Übertaktung,
  • defekten und alten Speichermodulen,
  • oder energiereicher Strahlung

kann es zu einem sogenannten Bitfehler kommen, durch den ein Speichereintrag verändert wird. Dies wird auch Bitkipper genannt, da ein Bit den falschen Wert annimmt, also „1“ statt „0“ bzw. umgekehrt. Das hat bei vielen Anwendungen kaum spürbare Konsequenzen: Tritt ein Bitfehler z. B. bei der Arbeit mit einem Bildbearbeitungsprogramm auf, erhält ein Pixel möglicherweise eine andere Farbe, was dem menschlichen Betrachter nicht weiter auffallen wird. Ganz anders sieht es hingegen bei komplexen Datenbank- oder Kalkulationsanwendungen aus, wo ein einzelner Bitfehler fatale Folgen nach sich ziehen kann. Außerdem kann ein Bitfehler zu Systemabstürzen führen, wenn er in einem Teil des Speichers auftritt, der vom Betriebssystem genutzt wird.

Die einfache Lösung des Problems lautet Error Correcting Code (ECC). Dabei handelt es sich um einen Datencode, der die Fähigkeit besitzt, Einzelbitfehler zu erkennen und zu korrigieren. Zusätzlich kann ECC die sehr selten auftretenden Zweibitfehler feststellen. Um von diesem Fehlerkorrekturverfahren zu profitieren, werden gewöhnliche RAM-Module durch einen ECC-Speicherchip erweitert, weshalb man auch von ECC-RAM spricht.

So funktioniert das Fehlerkorrekturverfahren

Das Fehlerkorrekturverfahren für Einzelbitfehler, das für RAM-Module verwendet wird, wurde bereits 1950 durch den Mathematiker Richard Hamming entwickelt, weshalb der zugrundeliegende Code auch Hamming-Code heißt. Die Besonderheit dieses Codes ist die Verwendung mehrerer sogenannter Paritätsbits, die auch Kontrollbits genannt werden und unterschiedliche Prüfgruppen mit den eigentlichen Nutzbits bilden. Voraussetzung, um den Hamming-Code zur Einzelbitfehler-Korrektur zu nutzen, ist ein mindestens siebenstelliger Binärcode, bestehend aus drei Paritätsbits (P), vier Nutzbits (N) und drei Prüfgruppen. Die Paritätsbits werden dabei an die Codewortstellen gesetzt, deren Nummer eine Potenz von 2 ist, in diesem Beispiel also 1, 2 und 4:

Die Prüfgruppen der Paritätsbits empfangener Bitfolgen werden mit den gespeicherten verglichen, wobei ein Fehler immer dann vorliegt, wenn die Gesamtzahl an Bits mit dem Wert 1 ungerade ist.

Angewandt auf die beispielhafte Bitfolge 0001001 ermittelt der Hamming-Code den Fehler folgendermaßen:

  • Die Prüfgruppe von Paritätsbit 1 (1, 3, 5, 7) enthält ein Bit mit dem Wert 1 und ist daher falsch.
  • Die Prüfgruppe von Paritätsbit 2 (2, 3, 5, 7) enthält ein Bit mit dem Wert 1 und ist daher falsch.
  • Die Prüfgruppe von Paritätsbit 3 (4, 5, 6, 7) enthält zwei Bits mit dem Wert 1 und ist daher korrekt.

Da Codewortstelle 3 den ersten beiden falschen Prüfgruppen gemeinsam ist, liegt hier der Fehler vor. Die korrekte Bitfolge lautet also 0011001.

ECC-RAM – auch für den privaten Gebrauch geeignet?

ECC schützt den Hauptspeicher umfassend vor Einzelbitfehlern und verhindert dadurch einen Großteil möglicher Datenspeicherverfälschungen. Eng damit verknüpft ist die Verringerung von Systemabstürzen, was besonders für Dienste bzw. Anwendungen, die eine hohe Verfügbarkeit garantieren und eine Vielzahl von Nutzern bedienen müssen, eine große Bedeutung hat. Diese ECC-RAM-Vorteile sorgen dafür, dass die speziellen Speichermodule besonders als Server-RAM-Lösung gefragt sind und in Hochleistungszentren zum Pflichtprogramm gehören.

ECC-RAM bringt jedoch auch kleinere Nachteile gegenüber Non-ECC-RAM mit sich: Zum einen sind die fehlerkorrigierenden Speichermodule etwas teurer als die gewöhnlichen Arbeitsspeichermodule, zum anderen führt der Prozess der Fehlererkennung dazu, dass die Systemperformance im Schnitt um etwa zwei Prozent verringert wird. Zudem wird ECC-RAM nicht von allen Mainboards unterstützt. Wenn Sie also überlegen, ECC-RAM auf einem normalen Board zu verwenden, sollten Sie die Kompatibilität überprüfen und den Nutzen abwägen. Eine Kombination von ECC-RAM und Non-ECC-RAM ist nicht möglich. Standardmäßig sind Sie mit einem gewöhnlichen Arbeitsspeichermodul ohne Fehlerkorrektur für Ihren privaten Rechner oder Server bestens versorgt.