Die Si­cher­heit hat bei der Ver­ar­bei­tung von Daten in vielen Branchen al­ler­höchs­te Priorität. Un­ter­neh­men wickeln wichtige Ge­schäfts­pro­zes­se ab und sind dabei glei­cher­ma­ßen auf die Sta­bi­li­tät der Daten an­ge­wie­sen wie ein Hosting-Dienst, der Inhalte seiner Kunden speichert. Treten schwer­wie­gen­de Spei­cher­feh­ler auf, drohen nicht nur fi­nan­zi­el­le Verluste, sondern im un­güns­tigs­ten Fall auch eine er­heb­li­che Schwä­chung der Markt­po­si­ti­on. Die Tendenz zu immer mehr Ar­beits­spei­cher ist in diesem Zu­sam­men­hang kritisch zu bewerten, da mit der Spei­cher­ka­pa­zi­tät auch die Feh­ler­ra­te steigt. Deshalb wird in Arbeits- und Ser­ver­um­ge­bun­gen, die eine hohe Da­ten­in­te­gri­tät erfordern, großer Wert auf einen um­fas­sen­den Schutz der Daten gelegt. Um bei­spiels­wei­se dauerhaft vor Ein­zel­bit­feh­lern geschützt zu sein, wird so­ge­nann­ter ECC-RAM anstelle von ge­wöhn­li­chem Ar­beits­spei­cher verwendet.

ECC-RAM: Hin­ter­grund und De­fi­ni­ti­on

Random-Access Memory (RAM) – deutsch: „Speicher mit wahl­frei­em Zugriff“ – ist ein Spei­cher­me­di­um, das in Com­pu­ter­sys­te­men als Ar­beits­spei­cher verwendet wird. Auch als Haupt­spei­cher bekannt, ist er für die Aus­füh­rung der Programme inklusive an­fal­len­der Nutzdaten ver­ant­wort­lich. Die flüch­ti­gen Inhalte des Haupt­spei­chers sind dabei als Binärcode ge­spei­chert, also einzig aus Nullen und Einsen bestehend, damit der Computer sie ver­ar­bei­ten kann. Eine einzelne Bi­närs­tel­le wird als Bit be­zeich­net. Aufgrund ver­schie­de­ner Ursachen wie

  • Span­nungs­schwan­kun­gen,
  • Über­tak­tung,
  • defekten und alten Spei­cher­mo­du­len,
  • oder en­er­gie­rei­cher Strahlung

kann es zu einem so­ge­nann­ten Bitfehler kommen, durch den ein Spei­cher­ein­trag 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 An­wen­dun­gen kaum spürbare Kon­se­quen­zen: Tritt ein Bitfehler z. B. bei der Arbeit mit einem Bild­be­ar­bei­tungs­pro­gramm auf, erhält ein Pixel mög­li­cher­wei­se eine andere Farbe, was dem mensch­li­chen Be­trach­ter nicht weiter auffallen wird. Ganz anders sieht es hingegen bei komplexen Datenbank- oder Kal­ku­la­ti­ons­an­wen­dun­gen aus, wo ein einzelner Bitfehler fatale Folgen nach sich ziehen kann. Außerdem kann ein Bitfehler zu Sys­tem­ab­stür­zen führen, wenn er in einem Teil des Speichers auftritt, der vom Be­triebs­sys­tem genutzt wird.

Die einfache Lösung des Problems lautet Error Cor­rec­ting Code (ECC). Dabei handelt es sich um einen Datencode, der die Fähigkeit besitzt, Ein­zel­bit­feh­ler zu erkennen und zu kor­ri­gie­ren. Zu­sätz­lich kann ECC die sehr selten auf­tre­ten­den Zwei­bit­feh­ler fest­stel­len. Um von diesem Feh­ler­kor­rek­tur­ver­fah­ren zu pro­fi­tie­ren, werden ge­wöhn­li­che RAM-Module durch einen ECC-Spei­cher­chip erweitert, weshalb man auch von ECC-RAM spricht.

So funk­tio­niert das Feh­ler­kor­rek­tur­ver­fah­ren

Das Feh­ler­kor­rek­tur­ver­fah­ren für Ein­zel­bit­feh­ler, das für RAM-Module verwendet wird, wurde bereits 1950 durch den Ma­the­ma­ti­ker Richard Hamming ent­wi­ckelt, weshalb der zu­grun­de­lie­gen­de Code auch Hamming-Code heißt. Die Be­son­der­heit dieses Codes ist die Ver­wen­dung mehrerer so­ge­nann­ter Pa­ri­täts­bits, die auch Kon­troll­bits genannt werden und un­ter­schied­li­che Prüf­grup­pen mit den ei­gent­li­chen Nutzbits bilden. Vor­aus­set­zung, um den Hamming-Code zur Ein­zel­bit­feh­ler-Korrektur zu nutzen, ist ein min­des­tens sie­ben­stel­li­ger Binärcode, bestehend aus drei Pa­ri­täts­bits (P), vier Nutzbits (N) und drei Prüf­grup­pen. Die Pa­ri­täts­bits werden dabei an die Code­wort­stel­len gesetzt, deren Nummer eine Potenz von 2 ist, in diesem Beispiel also 1, 2 und 4:

Die Prüf­grup­pen der Pa­ri­täts­bits emp­fan­ge­ner Bitfolgen werden mit den ge­spei­cher­ten ver­gli­chen, wobei ein Fehler immer dann vorliegt, wenn die Ge­samt­zahl an Bits mit dem Wert 1 ungerade ist.

Angewandt auf die bei­spiel­haf­te Bitfolge 0001001 ermittelt der Hamming-Code den Fehler fol­gen­der­ma­ßen:

  • Die Prüf­grup­pe von Pa­ri­täts­bit 1 (1, 3, 5, 7) enthält ein Bit mit dem Wert 1 und ist daher falsch.
  • Die Prüf­grup­pe von Pa­ri­täts­bit 2 (2, 3, 5, 7) enthält ein Bit mit dem Wert 1 und ist daher falsch.
  • Die Prüf­grup­pe von Pa­ri­täts­bit 3 (4, 5, 6, 7) enthält zwei Bits mit dem Wert 1 und ist daher korrekt.

Da Code­wort­stel­le 3 den ersten beiden falschen Prüf­grup­pen 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 Haupt­spei­cher umfassend vor Ein­zel­bit­feh­lern und ver­hin­dert dadurch einen Großteil möglicher Da­ten­spei­cher­ver­fäl­schun­gen. Eng damit verknüpft ist die Ver­rin­ge­rung von Sys­tem­ab­stür­zen, was besonders für Dienste bzw. An­wen­dun­gen, die eine hohe Ver­füg­bar­keit ga­ran­tie­ren und eine Vielzahl von Nutzern bedienen müssen, eine große Bedeutung hat. Diese ECC-RAM-Vorteile sorgen dafür, dass die spe­zi­el­len Spei­cher­mo­du­le besonders als Server-RAM-Lösung gefragt sind und in Hoch­leis­tungs­zen­tren zum Pflicht­pro­gramm gehören.

ECC-RAM bringt jedoch auch kleinere Nachteile gegenüber Non-ECC-RAM mit sich: Zum einen sind die feh­ler­kor­ri­gie­ren­den Spei­cher­mo­du­le etwas teurer als die ge­wöhn­li­chen Ar­beits­spei­cher­mo­du­le, zum anderen führt der Prozess der Feh­ler­er­ken­nung dazu, dass die Sys­tem­per­for­mance im Schnitt um etwa zwei Prozent ver­rin­gert wird. Zudem wird ECC-RAM nicht von allen Main­boards un­ter­stützt. Wenn Sie also überlegen, ECC-RAM auf einem normalen Board zu verwenden, sollten Sie die Kom­pa­ti­bi­li­tät über­prü­fen und den Nutzen abwägen. Eine Kom­bi­na­ti­on von ECC-RAM und Non-ECC-RAM ist nicht möglich. Stan­dard­mä­ßig sind Sie mit einem ge­wöhn­li­chen Ar­beits­spei­cher­mo­dul ohne Feh­ler­kor­rek­tur für Ihren privaten Rechner oder Server bestens versorgt.

Zum Hauptmenü