Einige RAM- oder Random-Access-Speicher werden als ECC-Speicher angekündigt. ECC steht für Error Correcting Code und ist ein Prozess zum Identifizieren und Korrigieren von Fehlern im Speicher. Fehler im RAM können zu Beschädigungen oder Veränderungen von Daten führen, was zu Geräteabstürzen und sogar Sicherheitslücken führen kann. ECC-RAM ist normalerweise nicht mit PC-Hardware der Verbraucherklasse kompatibel.
Was sind Speicherfehler?
Speicherfehler sind ein Problem, bei dem der im Speicher gespeicherte Wert geändert wird. Daten im RAM werden binär mit den Werten 1 oder 0 gespeichert. Wenn der Wert einer 1 in eine 0 oder umgekehrt umgewandelt wird, ändern sich in einem Prozess namens „Bit-Flipping“ die im RAM gespeicherten Daten.
Das geänderte Bit könnte beispielsweise verwendet werden, um einen Wert in einer Tabellenkalkulation zu speichern. In diesem Fall könnte der Wert in der Tabelle auf eine ganz andere Zahl geändert werden, die würde das Ergebnis von Berechnungen beeinflussen, zum Beispiel eine Änderung der Wirtschaftsprognosen von a Unternehmen. In anderen Fällen könnte das geänderte Bit eine Sicherheitsfunktion deaktivieren oder einen Tippfehler verursachen, der die Ausführung eines Programms verändert. Diese beiden Beispiele sind ohne die Verwendung von ECC-Speicher extrem schwer zu erkennen und aufzulösen. In einem extremen Szenario kann ein einzelnes Bit, das umgedreht wird, einen katastrophalen Fehler verursachen, der einen Systemabsturz verursacht.
Bit-Flipping hat viele mögliche Ursachen, die häufigste Ursache ist das Ergebnis von Hintergrundstrahlung, die hauptsächlich durch Neutronen verursacht wird, die durch kosmische Strahlungsereignisse erzeugt werden. Eine kosmische Strahlung ist ein hochenergetisches Teilchen, typischerweise ein Proton, das sich mit nahezu Lichtgeschwindigkeit fortbewegt. Sie werden von stellaren Körpern wie der Sonne und anderen hochenergetischen astronomischen Objekten emittiert. Wenn ein kosmischer Strahl auf ein Atom trifft, wird ein Schauer von Neutronen und anderen subatomaren Teilchen erzeugt, die dann sekundäre Wechselwirkungen haben.
Es wird angenommen, dass diese sekundären Neutronenwechselwirkungen die primäre Quelle von Bit-Flipping-Fehlern sind. Kosmische Strahlung tritt häufiger in größeren Höhen auf, mit einer 3,5-fachen Zunahme bei 1,5 km über dem Meeresspiegel und einer 300-fachen Zunahme in der Reiseflughöhe von Verkehrsflugzeugen. Dieses erhöhte Risiko in der Höhe erfordert zusätzliche Zuverlässigkeitsmaßnahmen.
Wie häufig sind Speicherfehler?
Die meisten Leute sehen nicht jeden Tag, wie ihre Computer abstürzen, daher könnte man leicht annehmen, dass dies in erster Linie ein theoretisches Risiko ist. Forschung aus Hyperscale-Rechenzentren wurde verwendet, um die Rate von Bit-Flip-Vorfällen zu analysieren. Von Google in seinen Rechenzentren durchgeführte Untersuchungen haben eine Fehlerrate von etwa 1 Einzelbitfehler pro Gigabyte RAM alle 1,8 Stunden ergeben.
Die 1997 gestartete Cassini-Huygens-Mission der NASA, um zum Saturn zu reisen, war mit zwei identischen Flugcomputern mit jeweils 2,5 Gb RAM konfiguriert. In den ersten zweieinhalb Jahren seiner Reise beobachtete die Raumsonde beständig 280 Einzelbitfehler pro Tag. An einem Tag, als Cassini-Huygens einer Sonneneruption im Weg war, vervierfachte sich die Bit Fehler wurden beobachtet, was weitere Beweise dafür liefert, dass die Sonne die Ursache für die meisten Bit-Flips ist Themen.
Es gab Bedenken, dass die kontinuierliche Zunahme der Dichte von RAM-Modulen dazu führen würde, dass spätere Versionen von RAM immer anfälliger für Bit-Flips werden. Neuere Studien haben gezeigt, dass das Gegenteil der Fall ist, da die Fehler mit abnehmender Prozessgeometrie zurückgegangen sind.
Wie schützt ECC-Speicher vor Fehlern?
Der ECC-Speicher verwendet fehlerkorrigierende Codes wie Hamming-Codes, um Einzelbitfehler im RAM zu korrigieren. Doppelbitfehler können erkannt, aber nicht korrigiert werden. Hamming-Fehlerkorrekturcodes arbeiten unter Verwendung eines Arrays von Paritätsbits. Zusammen können diese Paritätsbits verwendet werden, um zu erkennen, ob sich Datenbits geändert haben. Wird ein Bit als umgedreht erkannt, wird es automatisch zurückgewechselt.
Tipp: Ein Einzelbitfehler ist ein Bit-Flipping-Vorfall, wenn nur ein einzelnes Bit gespiegelt wird. Bei double0bit-Fehlern werden zwei Bits gespiegelt. Die beiden Bits müssen nicht im selben Ereignis gespiegelt werden, das zweite Bit-Flip muss nur erfolgen, bevor das erste gespiegelte Bit korrigiert wird.
Ein Paritätsbit mehr als erforderlich ist in Hamming-Fehlerkorrekturcodes enthalten. Dieses zusätzliche Paritätsbit gibt dem Code die Fähigkeit, das Auftreten von Doppelbitfehlern zu erkennen, diese Fehler können jedoch nicht korrigiert werden.
Die Durchführung der Fehlererkennung und -korrektur erfolgt auf dem Speichercontroller auf dem RAM-Stick.
Verbraucherverfügbarkeit und Support
Die meisten PC-Hardware der Verbraucherklasse unterstützt keinen ECC-Speicher. Dies ist teilweise eine Methode, um Serverhardware künstlich von Verbraucherhardware zu unterscheiden. ECC-RAM kostet jedoch mehr und läuft etwas langsamer. Darüber hinaus ist die zusätzliche Stabilität, die es den Heimanwendern bieten würde, minimal, da Bit-Flipping-Fehler nicht die Hauptursache für Systemabstürze sind.
Keine der CPUs von Intel für Verbraucher und Enthusiasten unterstützt ECC-Speicher, nur die CPUs der Serverklasse, wie die CPUs der Xeon-Reihe. AMDs Consumer-CPUs unterstützen ECC nicht, ihre Workstation- und Server-CPUs, Threadripper bzw. EPYC, unterstützen jedoch ECC-Speicher.