Fehler korrekt korrigieren - Swissbit
Fehler korrekt korrigieren - Swissbit
Fehler korrekt korrigieren - Swissbit
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Hardware<br />
SpeicHerbauSteine<br />
<strong>Fehler</strong> <strong>korrekt</strong> <strong>korrigieren</strong><br />
in modernen embedded Systemen hat die <strong>Fehler</strong><strong>korrekt</strong>ur<br />
einzug gehalten und wird von Herstellern zunehmend<br />
als Verkaufsargument eingesetzt. denn sie bietet zusätzlichen<br />
Schutz gegen einzelbitfehler, verursacht durch<br />
technologieschwächen der Speicherkomponenten wie<br />
auch durch Störungen bei der datenübertragung oder<br />
durch Strahlungseinflüsse. nur wenigen anwendern sind<br />
jedoch Funktion, Leistungsfähigkeit und die Grenzen der<br />
<strong>Fehler</strong><strong>korrekt</strong>ur vertraut. noch schwieriger ist es, ihren<br />
nutzen einzuschätzen.<br />
uLricH brandt<br />
Geht es um die <strong>Fehler</strong><strong>korrekt</strong>ur<br />
in Speichersystemen,<br />
fällt sofort das Kürzel ECC<br />
(Error Correction Code) als Oberbegriff<br />
für fehler<strong>korrigieren</strong>de Codes.<br />
Korrekt lautet die Abkürzung für<br />
die in PCs verwendete Funktion<br />
allerdings EDC (Error Detection<br />
and Correction – <strong>Fehler</strong>erkennung<br />
und -<strong>korrekt</strong>ur) oder noch genauer<br />
SECDED (Single Error Correction,<br />
Double Error Detection – Einzelbitfehler<strong>korrekt</strong>ur,Doppelbitfehlererkennung).<br />
Da sich ECC jedoch als<br />
feststehender Begriff eingebürgert<br />
hat, wollen wir ihn hier auch verwenden.<br />
Die Notwendigkeit einer Einzelbit-<br />
<strong>Fehler</strong><strong>korrekt</strong>ur kam erstmals bei<br />
Großrechnern auf, bei denen Speicherinformationen<br />
durch Alphateilchen<br />
verfälscht wurden. Diese<br />
Strahlung entspringt dem Zerfall<br />
geringster Spuren radioaktiven Ma -<br />
terials in der Vergussmasse von<br />
Speicherbausteinen, die aus Harz<br />
und mineralischen Füllstoffen besteht.<br />
Da zur Zeit der Großrechner<br />
die Strahlungsquellen sehr dicht<br />
an den Speicherkapazitäten der<br />
DRAM-Zellen lag, reichte die Alpha -<br />
strahlung aus, um die Zellinformation<br />
zu korrumpieren. Diese so ge -<br />
nannte Soft-Error-Rate lag damals<br />
bei DRAM-Bausteinen um Zehnerpotenzen<br />
über der harter Defekte.<br />
Hinzu kam, dass sie sich aufgrund<br />
ihrer völlig zufälligen Natur nicht<br />
durch schärfere Ausgangstests redu -<br />
zieren ließen. Dadurch lag die MTBF<br />
14 07 | 2011<br />
(Mean Time Between Failure –<br />
mittlere Zeit zwischen zwei <strong>Fehler</strong>n)<br />
bei Servern mit hohem Speicherausbau<br />
in einem völlig unakzeptablen<br />
Bereich, wenn keine <strong>Fehler</strong><strong>korrekt</strong>ur<br />
implementiert war.<br />
Durch den Übergang zum BGA-<br />
Gehäuse reduzierte sich die fehlerverursachende<br />
Vergussmasse stark.<br />
Bei modernen Speicherbausteinen<br />
wird die Soft-Error-Rate weniger<br />
durch Alphateilchen, sondern vermehrt<br />
durch kosmische Strahlung<br />
verursacht. Diese größtenteils aus<br />
schnellen Protonen bestehende<br />
Höhenstrahlung beeinflusst die<br />
Speicherbausteine entweder während<br />
des Transports von DRAM-<br />
Produkten als Luftfracht oder beim<br />
Betrieb von Systemen in größeren<br />
Höhen. Die positiv geladenen<br />
Teilchen werden in die Isolationsschicht<br />
der Auswahltransistoren injiziert<br />
und verändern dort die Einsatzspannung.<br />
Die so geschädigte<br />
Zelle kann dann vorübergehend<br />
keine vollständige Zellinformation<br />
mehr speichern und fällt aus.<br />
Als Lösung für diese Einzelbitfehler<br />
wurde ein Mechanismus entwickelt,<br />
der ein verfälschtes Datenbit<br />
erkennen und <strong>korrigieren</strong> kann.<br />
Damit lässt sich verhindern, dass<br />
Strahlung oder Technologieprobleme<br />
Dateninhalte unbemerkt<br />
verändern.<br />
Funktionsweise der ecc<br />
Ein Standarddatenwort eines DRAM-<br />
Busses und damit die Organisation<br />
eines Speichermoduls hat eine<br />
Breite von 64 Bit. Wird <strong>Fehler</strong>kor-<br />
rektur unterstützt, so generiert der<br />
Speichercontroller beim Schreiben<br />
in den Speicher durch Paritätsbildung<br />
jeweils unterschiedlicher Datenbits<br />
zusätzliche acht Paritätsbits,<br />
die so genannten Checkbits. Diese<br />
schreibt der Speichercontroller zusammen<br />
mit den Nutzdatenbits in<br />
ein 72 Bit breites Speichermodul<br />
(Bild 1). Beim Lesen holt sich der<br />
Controller die abgelegten 64 Nutzdatenbits<br />
und die acht dazugehöri-<br />
bild 1: Schreiben mit ecc<br />
gen Checkbits. Mit dem identischen<br />
Algorithmus wie beim Schreiben<br />
erzeugt die <strong>Fehler</strong><strong>korrekt</strong>ureinheit<br />
einen zweiten Satz von Checkbits<br />
und vergleicht diese mit den gelesenen<br />
(Bild 2). Das Ergebnis des<br />
bitweisen Vergleichs der acht neuen<br />
und acht gespeicherten Checkbits<br />
nennt sich Syndrom. Es zeigt an, ob<br />
ein Bit verfälscht wurde und wenn<br />
ja, welches. Ein einfaches Invertieren<br />
dieses Bits stellt dann die<br />
ursprüngliche Information wieder<br />
her. Das Auftreten eines <strong>Fehler</strong>s<br />
wird in Statusregistern abgelegt,<br />
die von Servicetechnikern ausgewertet<br />
werden können. So können<br />
diese einen defekten Speicher austauschen,<br />
bevor er zu Systemabstürzen<br />
führt.<br />
Es gibt vielfältige Varianten, um<br />
Checkbits zu erzeugen. Moderne<br />
Codes können jeden beliebigen<br />
<strong>Fehler</strong> eines einzelnen Datenbits<br />
erkennen und <strong>korrigieren</strong>, und jede<br />
Kombination von zwei fehlerhaften<br />
Bits sowie eine hohe Prozentzahl<br />
weiterer Mehrfachfehler erkennen.<br />
Mit sehr ausgeklügelten Codes<br />
können die neuesten Speichercontroller<br />
einen Ausfall einzelner bis<br />
hin zu allen Datenleitungen einer<br />
einzelnen Speicherkomponente<br />
erkennen und <strong>korrigieren</strong>. Dieses<br />
Verfahren nennt sich »Chipkill«<br />
(SDDC, Single Device Data Correction<br />
– Korrektur eines Bausteinausfalls)<br />
und ist die mächtigste Form<br />
von <strong>Fehler</strong><strong>korrekt</strong>ur in kommerziell<br />
erhältlichen Plattformen.<br />
Da für die Unterstützung von ECC<br />
ein 72 Bit breiter Speicherbus notwendig<br />
ist, sind bei Modulen aus<br />
8-Bit-organisierten Speicherkomponenten<br />
neun anstelle von acht<br />
Chips nötig. Auch der Speichersockel<br />
muss genügend Platz für<br />
die elf zusätzlichen Signale bieten<br />
(achtmal DQ sowie DQS, DQS# und<br />
DM). Die Mehrkosten für die hinzukommenden<br />
Speicherbausteine,<br />
der höhere Aufwand auf dem Motherboard<br />
und die zwar geringen,<br />
aber doch messbaren Leistungseinbußen<br />
durch die ECC-Funktion<br />
haben bisher den breiten Einsatz in<br />
Desktop- und Notebook-Systemen<br />
verhindert, wo der Systempreis<br />
eines der Hauptkaufkriterien ist.<br />
Anders sieht es bei Servern und<br />
Workstations aus, wo sehr häufig<br />
ECC-Module eingesetzt werden, um<br />
die Ausfallsicherheit zu erhöhen.<br />
Mit der Einführung von leistungsstarken<br />
Notebooks als Ersatz für<br />
Workstations gibt es jetzt aber<br />
auch bei Systemen mit kleinen<br />
Formfaktoren einen Bedarf an Ausfallsicherheit.<br />
Dieser Bedarf hat zur<br />
Entwicklung von speziellen, stromsparendenNotebook-Speichercontrollern<br />
mit ECC-Funktion geführt.<br />
Für die Embedded-Computing-Industrie<br />
ist dies ein willkommener<br />
Fortschritt, um bei ihren kritischen<br />
Anwendungen höhere Datensicherheit<br />
und niedrigere Verlustleistung<br />
miteinander zu verbinden.
Einzelbitfehler in<br />
Embedded Systemen<br />
Die <strong>Fehler</strong><strong>korrekt</strong>ur, wie sie bei<br />
Embedded Systemen implementiert<br />
ist, kann nur Einzelbitfehler <strong>korrigieren</strong>.<br />
Dabei ist es irrelevant, ob<br />
es sich um eine einzelne Zelle, eine<br />
Bitleitung, einen Datenpin oder<br />
einen Steckerkontakt handelt, solange<br />
die Auswirkungen pro Daten -<br />
wort nur ein Bit betreffen. Der Ausfall<br />
eines Steuersignals oder eines<br />
ganzen Chips lässt sich durch diese<br />
Form der ECC nicht beheben.<br />
Gerade bei Embedded Systemen,<br />
die häufig unter extremen Temperaturbedingungen<br />
arbeiten, sind<br />
Einzelbitfehler durch schwache<br />
Zellen die häufigste <strong>Fehler</strong>ursache,<br />
gefolgt von hochohmigen Lötstellen<br />
auf Datenleitungen. Aufgrund<br />
Bild 2: lesen mit Ecc<br />
der kompakten Bauweise, der geringen<br />
Kühlung und des Einsatzes<br />
in Industrieanlagen können die<br />
Speichermodule bis an ihre Spezifikationsgrenze<br />
aufgeheizt werden.<br />
Unter solchen Bedingungen verlieren<br />
Speicherzellen ihre Zellinformationen<br />
besonders schnell, deshalb<br />
muss jede Zellinformation alle<br />
64 ms wieder aufgefrischt werden.<br />
Ulrich BrandT<br />
ist head of Business Unit<br />
draM Products bei <strong>Swissbit</strong><br />
Besonders schwache Zellen, wie sie<br />
im normalen Fertigungsprozess immer<br />
wieder auftreten, werden im<br />
Gut-Fall während des Tests beim<br />
Speicherchiphersteller erkannt und<br />
durch fehlerfreie, redundante Zellen<br />
ersetzt. Dies setzt voraus, dass<br />
das Testprogramm diese schwachen<br />
Zellen entdeckt. Schlüpft eine solche<br />
Zelle unbemerkt durch, so kann sie<br />
völlig unauffällig im normalen<br />
Temperaturbereich funktionieren,<br />
fällt aber plötzlich aus, wenn das<br />
System unter Volllast bis an die<br />
Spezifikationsgrenze erwärmt wird.<br />
Eine andere Besonderheit von Embedded<br />
Systemen ist der Einsatz in<br />
Fabrikationshallen oder Transportsystemen,<br />
wo erhöhte Vibrationen<br />
und mechanische Stöße auf das<br />
System einwirken. Hier können<br />
schwache Lötverbindungen aufge-<br />
hen oder Steckerkontakte kurzzeitig<br />
hochohmige Übergänge bilden<br />
und einzelne Datenleitungen unterbrochen<br />
werden.<br />
Der Einfluss eines einzelnen defekten<br />
Bits auf ein Industriesystem<br />
kann von vernachlässigbar bis zu<br />
fatal reichen: Ein verfälschtes Pixel<br />
in einem medizinischen Bild<br />
hat meist keine große Bedeutung,<br />
ein falsches Vorzeichenbit in einer<br />
Robotersteuerung kann jedoch zur<br />
Zerstörung von Werkzeugen führen<br />
oder die Berechnung der Strahlungsdosis<br />
bei einer radiologischen<br />
Behandlung verfälschen. Das kann<br />
je nach Position des Bits lebens-<br />
bedrohliche Folgen haben. Die<br />
Beispiele zeigen, dass der Nutzen<br />
der <strong>Fehler</strong><strong>korrekt</strong>ur anwendungsabhängig<br />
zu beurteilen ist.<br />
<strong>Fehler</strong><strong>korrekt</strong>ur bei<br />
kleinem Formfaktor<br />
Kann man in der Anwendung Datenverfälschung<br />
tolerieren oder ist<br />
ein Systemabsturz zwar unschön,<br />
aber nicht mit zu hohen materiellen<br />
oder immateriellen Folgekosten<br />
verbunden, kann man auf ECC<br />
verzichten. Das ist in der Regel der<br />
Fall etwa bei Informationssystemen<br />
oder bildverarbeitenden Applikationen.<br />
Handelt es sich jedoch um<br />
medizinische Behandlungsgeräte,<br />
Fertigungssteuerungen, Zahlungssysteme<br />
oder Spielautomaten, wo<br />
es um Geld oder Gesundheit geht,<br />
ist die zusätzliche Sicherheit durch<br />
ECC auf jeden Fall ratsam.<br />
Für solche Anwendungen bieten sich<br />
die neuen DDR3-SO-UDIMMs an.<br />
Nicht größer als die bekannten SO-<br />
DIMMs, aber mit 72 Bit breitem Datenbus,<br />
ermöglichen sie die ECC-<br />
Unterstützung auf begrenztem Raum.<br />
Sie benutzen den gleichen Sockel<br />
wie SODIMMs, haben jedoch aufgrund<br />
der höheren Anzahl an Signalen<br />
eine andere Steckerbelegung<br />
und sind somit nicht pinkompatibel.<br />
Damit wird der Embedded-Markt<br />
zwangsläufig zwei Produktlinien an -<br />
bieten müssen: einerseits kostengünstigere<br />
Boards für herkömmliche<br />
SODIMMs, andererseits hochzuverlässige<br />
Plattformen mit Unterstützung<br />
für SOUDIMMs mit ECC.<br />
Als Produkt gemäß offizieller JEDEC-<br />
Spezifikation und mit Unterstützung<br />
durch eine Vielzahl an modernen<br />
Speichercontrollern ist das SOU-<br />
DIMM-Modul keine proprietäre<br />
Lösung mehr, sondern ein verfügbarer<br />
und immer häufiger eingesetzter<br />
Standard zu wettbewerbsfähigen<br />
Preisen. So bietet <strong>Swissbit</strong><br />
beispielsweise DDR3-SO-UDIMMs<br />
in Größen von 1 GByte bis 4 GByte<br />
und Geschwindigkeiten bis DDR3-<br />
1333 an, sowohl im kommerziellen<br />
(0 °C bis +70 °C) als auch im<br />
industriellen Temperaturbereich<br />
(-40 °C bis +85 °C). (rh)<br />
<strong>Swissbit</strong><br />
Telefon: 00 41/71/91 30 30 3<br />
www.swissbit.com<br />
07 | 2011 15