-
Die Erfindung betrifft ein Verfahren zur Erkennung und Korrektur von Bitfehlern beim Lesen von in Halbleiterspeichern abgelegten Datenelementen.
-
In der Mess-, Steuer- und Regelungstechnik wird bevorzugt statischer Speicher, im folgenden als SRAM bezeichnet, eingesetzt, um mittels einer Batteriepufferung einen Datenerhalt sicherstellen zu können. Auf diese Weise ist ein insbesondere in der chemischen Industrie geforderter stoßfreier Wiederanlauf einer Anlage realisierbar. Durch den technischen Fortschritt der letzten Jahre sind zum einen die Strukturbreiten der SRAM-Bausteine drastisch reduziert worden, zum anderen ist der Speicherbedarf stark gestiegen.
-
Die geringe Strukturbreite einer SRAM-Zelle führt zu dem Effekt, daß die Energie eines Alpha-Teilchens ausreichen kann, um den Speicherinhalt der SRAM-Zelle zu verändern. Dabei zeigt sich, daß die 6-Transistor-SRAM-Zelle prinzipiell unempfindlicher ist als eine 4-Transistor-SRAM-Zelle, aber lediglich ein gradueller Unterschied in der Fehlerwahrscheinlichkeit existiert. Die störenden Alpha-Teilchen werden bei diesem Phänomen aus dem Gehäusematerial, mit dem der Speicherchip vergossen ist, emittiert, so daß eine nachträgliche, externe Schirmung keine Abhilfe schafft.
-
Darüber hinaus hat der gestiegene Speicherbedarf in automatisierungstechnischen Anlagen der Mess-, Steuer- und Regelungstechnik dazu geführt, daß dieser statistisch verteilte Fehlermechanismus in der Praxis nachweisbar ist. Umfangreiche Messungen haben gezeigt, daß auch bei Verwendung hochwertiger SRAM-Bausteine, die mit einer 6-Transistor-Zelle und strahlungsarmen Gehäusematerialien gefertigt werden, im statistischen Mittel ein Bitfehler pro Jahr in einer 8 MByte großen Speicherbaugruppe auftritt. Seitens der Anlagenbetreiber wird weder ein unvorhersagbares Systemverhalten, wenn dieses Phänomen unbeachtet bleibt, noch, die Anlage bei Erkennung eines Bitfehlers anzuhalten, akzeptiert.
-
Daraus ergibt sich die Forderung nach einer Einrichtung zur Erkennung und Korrektur von Bitfehlern, die mindestens in der Lage ist, 1-Bit-Fehler zu erkennen und zu korrigieren und 2-Bit-Fehler zu erkennen und zu signalisieren, so dass nur korrekte Daten zur weiteren Verarbeitung bereitgestellt werden. Eine derartige Einrichtung ist als 32-BIT FLOW-THRU ERROR DETECTION AND CORRECTION UNIT unter der Typbezeichnung 49C465 der Firma Integrated Device Technology bekannt und im Datenblatt IDT49C465/IDT49C465A, Dokumentnummer DSC-2552/8, sowie in der Application Note AN-64 (LIN, T.; LYONS, G.; SCHAPFEL, F.: Protecting your Data with the IDT49C465 32-Bit Flow-thruEDC Unit. Integrated Device Technology, Inc., Application Note An-64, 1996, S. 148-163) beschrieben. Die Einrichtung ist in den Datenübertragungsweg zwischen dem Arbeitsspeicher und einer Verarbeitungseinheit eingefügt und wird von der Verarbeitungseinheit gesteuert.
-
Zur Erkennung und Korrektur von Bitfehlern mit Hilfe einer derartigen Einrichtung ist ein Prüfspeicher vorgesehen und jedem Speicherplatz des Arbeitsspeichers ein Speicherplatz des Prüfspeichers zugeordnet. Bei Speichern eines Datenworts werden unter der Adresse des Speicherplatzes des Datenworts im Arbeitsspeicher zusätzlich redundante Bits, im weiteren als Prüfbits bezeichnet, im Prüfspeicher abgespeichert, die durch Bildung der Paritätssumme über verschiedene Teile des Datenworts gewonnen werden.
-
Beim Auslesen des Speicherworts werden die Teilparitäten nach der gleichen Bildungsvorschrift erneut gebildet und mit den ebenfalls ausgelesenen Prüfbits verglichen. Stimmen die gerade berechneten Prüfbits mit den abgespeicherten überein, gilt das ausgelesene Datenwort als fehlerfrei. Bei auftretenden Differenzen wird aus dem Muster der Nichtübereinstimmung, dem sogenannten Syndrom, auf den Fehler geschlossen. Bestimmte Syndrommuster werden decodiert und damit eine verfälschte Bitposition im Datenwort ermittelt, die durch Invertieren korrigiert wird, so dass ausschliesslich korrekte Datenworte an die Verarbeitungseinheit weitergeleitet werden.
-
Allerdings geht das FLOW-THRU-Verfahren von einer begrenzten Lebensdauer eines Datenelements aus und setzt voraus, dass die Wahrscheinlichkeit des Befalls eines gegebenen Datenelements durch einen das jeweilige Maß der Korrigierbarkeit übersteigenden Bitfehler kleiner ist als die des aktualisierenden Überschreibens des Datenelements.
-
Aus der
WO 00/26 783 A1 ist eine Speichereinrichtung bekannt, auf die durch die Verarbeitungseinrichtung unmittelbar zugegriffen wird. Im besonderen ist der Speicher sogar Bestandteil eines Mikrocontrollers, also einer Einrichtung bestehend aus der Verarbeitungseinrichtung und einem Speicher.
-
Der Erfindung liegt daher die Aufgabe zugrunde, ein Verfahren zur Erkennung und Korrektur von Bitfehlern in gespeicherten Datenelementen anzugeben, das die dauerhafte Korrigierbarkeit jedes fehlerbehafteten Datenelements gewährleistet.
-
Erfindungsgemäß wird diese Aufgabe mit den Schritten des Patentanspruchs 1 gelöst. Eine vorteilhafte Ausgestaltung der Erfindung ist in dem rückbezogenen Anspruch genannt.
-
Die Erfindung geht von dem bekannten Verfahren aus, bei dem eine Verarbeitungseinheit indirekt über eine Bitfehlererkennungs- und Korrektureinrichtung, die in den Datenübertragungsweg zwischen einem Halbleiterspeicher und der Verarbeitungseinheit eingefügt ist, auf in dem Halbleiterspeicher abgelegte Datenelemente zugreift. Dabei ist jedem Datenelement im Halbleiterspeicher ein nach einem vorgegebenen Algorithmus gebildetes Prüfdatum zugeordnet.
-
Das Maß der Korrigierbarkeit eines fehlerbehafteten Datenelements ergibt sich aus dem Verhältnis der Bitbreite des Datenelements zur Bitbreite des Prüfdatums und ist begrenzt.
-
Beim Lesezugriff der Verarbeitungseinheit auf den Halbleiterspeicher wird zunächst in bekannter Art das adressierte Datenelement und das zugehörige Prüfdatum aus dem Halbleiterspeicher in die Bitfehlererkennungs- und Korrektureinrichtung gelesen und das gelesene Datenelement nach dem vorgegebenen Algorithmus ein Prüfdatum gebildet und mit dem gelesenen Prüfdatum verglichen. Bei Abweichung des gebildeten Prüfdatums von dem gelesenen Prüfdatum wird das fehlerhafte Datum korrigiert und das korrekte Datenelement an die anfordernde Verarbeitungseinheit weitergeleitet.
-
Erfindungsgemäß wird darüber hinaus das korrigierte Datenelement und das zugehörige Prüfdatum in den Halbleiterspeicher zurückgeschrieben. Im Erfolg dieses Schritts weist der Halbleiterspeicher nun wieder ein korrektes Datenelement und ein korrektes zugehöriges Prüfdatum auf. Eine weitere statistische Beeinflussung des Datenelements oder des Prüfdatums bleibt in den Grenzen der Korrigierbarkeit und wird beim nächsten Lesezugriff der Verarbeitungseinheit wie vorstehend beschrieben korrigiert.
-
Nach einer Ausgestaltung der Erfindung werden anforderungsunabhängig alle Datenelemente und zugehörigen Prüfdaten zyklisch gelesen, geprüft, bei Abweichung korrigiert und bei erfolgter Korrektur in den Halbleiterspeicher zurückgeschrieben.
-
Vorteilhafterweise wird dadurch erreicht, dass auch selten gelesene, statistisch verfälschte Datenelemente kontinuierlich überprüft und gegebenenfalls korrigiert werden, bevor durch weitere statistische Verfälschungen die Grenze der Korrigierbarkeit überschritten ist.
-
Zur Erkennung und Korrektur von Ein-Bit-Fehlern in einem Datenelement von 32 Bit Breite ist nach den bekannten Regeln für den Hamming-Code ein Prüfdatum mit mindestens sechs Bit Breite für jedes Datenelement erforderlich. Dabei sind Zwei-Bit-Fehler noch erkennbar aber nicht mehr korrigierbar. Die Grenze der Korrigierbarkeit liegt damit bei Ein-Bit-Fehlern.
-
Da der physische Speicher für die Prüfdaten dem gleichen stochastischen Fehler unterworfen ist wie der Datenspeicher, sind neben den 32 Bit für das Datenelement auch die 6 Bit für das Prüfdatum zu überwachen und erforderlichenfalls zu korrigieren. Dazu ist bei linearer Unabhängigkeit eine Prüfsumme von mindestens sieben Bit Breite erforderlich.
-
Ausgehend von einer Speicheranordnung, die über eine Bitfehlererkennungs- und Korrektureinrichtung mit einer Verarbeitungseinheit verbunden ist und bei der jedem Datenelement von 32 Bit Breite ein Prüfdatum mit mindestens sieben Bit Breite für jedes Datenelement zugeordnet ist, wird beim Schreiben eines Datenelement in den Speicher nach dem vorgegebenen Algorithmus ein dem Bitmuster des Datenelements entsprechendes Prüfdatum gebildet und zusammen mit dem Datenelement abgelegt.
-
Beim Lesezugriff auf ein Datenelement durch die Verarbeitungseinheit werden das adressierte Datenelement und das zugehörige Prüfdatum aus dem Halbleiterspeicher in die Bitfehlererkennungs- und Korrektureinrichtung gelesen. Für das gelesene Datenelement wird nach dem vorgegebenen Algorithmus ein dem Bitmuster des Datenelements entsprechendes Prüfdatum gebildet. Das gebildete Prüfdatum wird mit dem gelesenen Prüfdatum verglichen.
-
Soweit das gebildete Prüfdatum mit dem gelesenen Prüfdatum übereinstimmt, ist das gelesene Datenelement korrekt und wird an die anfordernde Verarbeitungseinheit weitergeleitet.
-
Bei Abweichung des gebildeten Prüfdatums von dem gelesenen Prüfdatum wird aus der Differenz, dem sogenannten Syndromwort, die fehlerhafte Bitposition unabhängig vom Ort ihres Auftretens im Datenelement oder im gelesenen Prüfdatum ermittelt und durch Invertieren korrigiert. Danach wird das korrekte Datenelement an die anfordernde Verarbeitungseinheit weitergeleitet.
-
Darüber hinaus werden das korrekte Datenelement und das zugehörige Prüfdatum in inverser Datenübertragungsrichtung in den Halbleiterspeicher zurückgeschrieben. Vorteilhafterweise wird damit erreicht, dass bei einer auf bei Ein-Bit-Fehler begrenzten Korrigierbarkeit alle erkannten Ein-Bit-Fehler auch im Speicher korrigiert werden, so dass die Entstehung eines nicht mehr korrigierbaren Zwei-Bit-Fehlers in Folge eines weiteren Ein-Bit-Fehlers in demselben Datenelement weitestgehend vermieden wird. Eine absolute Vermeidung von derartigen Mehr-Bit-Fehlern ist wie bei allen stochastischen vorgängen nicht möglich. Allerdings gelingt es, die Wahrscheinlichkeit ihres Auftretens soweit zu reduzieren, dass sie praktisch bedeutungslos ist.
-
Vorzugsweise werden das korrekte Datenelement und das zugehörige Prüfdatum zeitgleich zur Weiterleitung an die anfordernde Verarbeitungseinheit in den Halbleiterspeicher zurückgeschrieben. Vorteilhafterweise werden dadurch Zeitverluste bei aufeinanderfolfgenden Lesezugriffen vermieden.
-
In weiterer Ausgestaltung der Erfindung ist vorgesehen, anforderungsunabhängig alle Datenelemente und zugehörigen Prüfdaten zyklisch zu lesen, zu prüfen, bei Abweichung zu korrigieren und bei erfolgter Korrektur in den Halbleiterspeicher zurück zu schreiben.
-
Vorteilhafterweise wird dadurch erreicht, dass Datenelemente, die selten gelesen oder aktualisierend überschrieben werden, vor die Grenze der Korrigierbarkeit überschreitenden Zwei- oder Mehr-Bit-Fehlern bewahrt werden. Dadurch werden Datenverluste und unzulässige Veränderungen des Programmcodes, die zum Versagen des Systems führen können, vermieden.