19.08.2013 Aufrufe

Fehler korrekt korrigieren - Swissbit

Fehler korrekt korrigieren - Swissbit

Fehler korrekt korrigieren - Swissbit

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!