ECC-Fehlerkorrektur Nutzen für Embedded-Systeme

ECC-Fehlerkorrektur
Nutzen für Embedded-Systeme

Die Einsatzbereiche von ECC in der Computerindustrie, die Abkürzung steht für ‚Error correction code‘, also Fehlerkorrekturcode, verbreitet sich zunehmend von ehemals Großrechnern über Standard Server bis hin zu Embedded Systemen, begünstigt durch die JEDEC-Standardisierung und die Unterstützung durch neueste Speicher Kontroller.
ECC ist nicht unbedingt die beste Abkürzung wenn man über Fehlergesicherte Speichersysteme spricht. Die richtige Sprechweise ist eigentlich EDC (error detection and correction Fehlererkennung und Korrektur) beziehungsweise noch genauer SECDED (single error correction, double error detection Einzelbitfehlerkorrektur, Doppelbitfehlererkennung). Da sich ECC jedoch als feststehender Begriff eingebürgert hat, wollen wir ihn auch hier weiter verwenden. Warum also wurde ECC entwickelt, wie funktioniert es und welchen Nutzen hat es für Embedded Systeme?

Wie funktioniert ECC?

Die Notwendigkeit einer Einzelbit-Fehlerkorrektur kam erstmals bei Großrechnern auf, bei denen Speicherinformationen durch Alpha Teilchen verfälscht wurden. Die Strahlung entspringt dem Zerfall geringster Spuren radioaktiven Materials in der Vergussmasse von Speicherbausteinen, die aus Harz und mineralischen Füllstoffen besteht. Da die Strahlungsquellen sehr dicht an den Speicherkapazitäten der DRAM Zellen lagen, reichte die Alpha Strahlung aus, um die Zell-information zu verfälschen. Die sogenannte Soft Error Rate lag bei DRAM Bausteinen um Zehnerpotenzen über der harter Defekte, und sie konnte aufgrund ihrer völlig zufälligen Natur nicht durch schärfere Ausgangstests reduziert werden. Ohne Fehlerkorrektur läge die MTBF Zeit (Mean time between failure – mittlere Zeit zwischen zwei Fehlern) bei Servern mit hohem Speicherausbau in einem völlig unakzeptablen Bereich. Heutzutage wird die Soft Error Rate bei modernen Speicherbausteinen weniger durch Alpha Teilchen, sondern vermehrt durch kosmische Strahlung verursacht. Durch den Übergang zum BGA Gehäuse konnte die Fehler verursachende Vergussmasse stark reduziert werden. Die größtenteils aus schnellen Protonen bestehende Höhenstrahlung beeinflusst allerdings immer noch die Speicherbausteine während des Transports von DRAM Produkten als Luftfracht, oder beim Betrieb von Systemen in größeren Höhen. Die positiv geladenen Teilchen werden in die Isolationsschicht der Auswahltransistoren injiziert und verändern dort die Einsetzspannung. Die so geschädigte Zelle kann dann vorübergehend keine vollständige Zellinformation mehr speichern.

Verfälschtes Datenbit erkennen und korrigieren

Als Lösung für diese Einzelbitfehler wurde ein Mechanismus entwickelt, der in der Lage ist, ein verfälschtes Datenbit zu erkennen und zu korrigieren und damit zu verhindern, dass durch Technologieprobleme oder Strahlung Dateninhalte unbemerkt verändert werden. Ein Standarddatenwort eines DRAM Busses hat eine Breite von 64Bit. Beim Schreiben in das Speichermodul generiert der Speicherkontroller durch X-Oder Verknüpfung unterschiedlicher Datenbits zusätzlich acht sogenannte Checkbits. Beim Lesen werden auf gleiche Weise aus den Lesedaten acht neue Checkbits erzeugt und mit den vorher abgespeicherten verglichen. Der bitweise Vergleich der acht neuen und acht gespeicherten Checkbits nennt sich Syndrom, und es zeigt an, ob und welches Bit verfälscht wurde. Ein einfaches Invertieren dieses Bits stellt die ursprüngliche Information wieder her. Es gibt vielfältige Varianten, wie die Checkbits erzeugt werden. Moderne Codes können jeden beliebigen Fehler eines Datenbits erkennen und korrigieren, jede Kombination von zwei fehlerhaften Bits und eine hohe Prozentzahl weiterer Mehrfachfehler erkennen. Mit sehr ausgeklügelten Codes sind die neuesten Speicherkontroller in der Lage, einen Ausfall einzelner bis hin zu allen Datenleitungen einer einzelnen Speicherkomponente zu erkennen und zu korrigieren. Dieses Verfahren nennt sich ‚Chipkill‘ (Bausteinausfall) und ist die mächtigste Form von Fehlerkorrektur in kommerziell erhältlichen Plattformen.

72Bit breiter Speicherbus für die Unterstützung von ECC

Für die Unterstützung von ECC braucht man einen 72Bit breiten Speicherbus. Bei Modulen aus 8Bit organisierten Speicherkomponenten werden dann neun anstelle von acht Chips benötigt. Auch der Speichersockel muss genügend Platz für die elf zusätzlichen Signale bieten (8DQ, DQS, DQS#, DM). Die Mehrkosten für die hinzukommenden Speicherbausteine, die höheren Aufwände auf dem Motherboard und die geringen Leistungseinbußen durch die ECC Funktion verhinderten bisher den breiten Einsatz in Desktop und Notebook Systemen, wo der Systempreis einer der Hauptkaufkriterien ist. Nur bei Servern und Workstations benutzt man ECC Module, um die Ausfallsicherheit zu erhöhen. Mit der Einführung von leistungsstarken Notebooks als Workstation-Ersatz gibt es jetzt aber auch bei Systemen mit geringen Formfaktoren einen Bedarf an Ausfallsicherheit, welcher zur Entwicklung von speziellen, stromsparenden Notebook Speicherkontrollern mit ECC Funktionalität führte. Für die Embedded Computing Industrie ist dies ein willkommener Fortschritt, um für ihre kritischen Anwendungen eine erhöhte Datensicherheit und Verlustleistungsreduzierung miteinander zu verbinden. Bei den Speicherchips geht währenddessen der Trend zu immer kleineren Strukturen ungebremst weiter, mit wachsenden Schwierigkeiten, die neuen Technologien zur Marktreife zu bringen. Die Zellkapazitäten der neuen Sub 50nm Technologien sind inzwischen so gering, und die Kopplungen zwischen den Bitleitungen aufgrund der geringen geometrischen Abstände so hoch, dass die Wahrscheinlichkeit Pattern abhängiger Bitfehler realistisch hoch wird. Andererseits können die Ausgangstests bei stetig wachsender Speichergröße nicht in gleichem Masse verlängert werden. Um alle schwachen Zellen, die bevorzugt bei hohen Temperaturen ausfallen, in einem Chip zu entdecken und zu reparieren, wären unakzeptable Testzeiten nötig. Im gleichen Maß wie die Speichergröße wächst auch die Datenübertragungsrate. Mit unerwarteter Schnelligkeit hat sich der DDR3 Standard von 1066 über 1333 zu 1600 entwickelt, mit den nächsten Erhöhungen schon vor der Tür. Pattern- und bestückungsabhängige Kopplungseffekte können leicht Übertragungsfehler provozieren, vor allem, weil die Leiterplattentechnologie weiterhin auf das kostengünstige FR4 Material mit hohen Toleranzen setzt. ECC bietet für alle diese Risiken einen ausreichenden Schutz, um weiterhin kostengünstige Systeme mit hoher Ausfallsicherheit anbieten zu können.

Kostengünstige Systeme mit hoher Ausfallsicherheit

Gerade in industriellen Anwendungen sind Systemabstürze oder Datenverfälschung nicht tolerierbar. Bisherige ECC Module in Standard Größe lassen sich jedoch kaum in die modernen miniaturisierten Embedded Plattformen integrieren. Die neuen DDR3 SO-UDIMMs bieten hierfür die perfekte Lösung. Nicht grösser als die bekannten SODIMMs, aber mit 72Bit breitem Datenbus ermöglichen die sogenannten SO-UDIMMs die ECC Unterstützung auf kleinstem Platzbedarf. Sie benutzen den gleichen Sockel wie SODIMMs, haben jedoch aufgrund der höheren Anzahl an Signalen eine andere Steckerbelegung und sind somit nicht pinkompatibel. Der Embedded Markt wird zwangsläufig zwei Produktlinien anbieten müssen, einerseits kostengünstigere Boards für herkömmliche SODIMMs, andererseits hochzuverlässige Plattformen mit Unterstützung für ECC SO-UDIMMs. Als Produkt gemäß offizieller JEDEC Spezifikation und mit Unterstützung durch eine Vielzahl an modernen Speicherkontrollern ist das ECC SO-UDIMM Modul keine proprietäre Lösung mehr, sondern ein ernst zu nehmender, verfügbarer und immer häufiger eingesetzter Standard zu wettbewerbsfähigen Preisen. Swissbit bietet die DDR3 SO-UDIMMs in Größen von 1-4GB und Geschwindigkeiten bis DDR3-1333 an, sowohl im kommerziellen Temperaturbereich (0 bis +70°C TAmbient) als auch im industriellen (-40 bis +85°C TAmbient). Swissbit ist europaweit der größte unabhängige Hersteller von DRAM und NAND Flash basierenden Speicherprodukten.

Swissbit AG
www.swissbit.com

Das könnte Sie auch Interessieren