[go: up one dir, main page]

DE69719086T2 - Zeitverteilte entfernung von fehlerkorrekturcodes (ecc) zur korrektur von speicherfehlern - Google Patents

Zeitverteilte entfernung von fehlerkorrekturcodes (ecc) zur korrektur von speicherfehlern

Info

Publication number
DE69719086T2
DE69719086T2 DE69719086T DE69719086T DE69719086T2 DE 69719086 T2 DE69719086 T2 DE 69719086T2 DE 69719086 T DE69719086 T DE 69719086T DE 69719086 T DE69719086 T DE 69719086T DE 69719086 T2 DE69719086 T2 DE 69719086T2
Authority
DE
Germany
Prior art keywords
memory
word
processor
error
computer system
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69719086T
Other languages
English (en)
Other versions
DE69719086D1 (de
Inventor
Jasmin Ajanovic
R. Hayek
Radhakrishnan Venkataraman
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Application granted granted Critical
Publication of DE69719086D1 publication Critical patent/DE69719086D1/de
Publication of DE69719086T2 publication Critical patent/DE69719086T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • G06F11/106Correcting systematically all correctable errors, i.e. scrubbing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • G06F11/1028Adjacent errors, e.g. error in n-bit (n>1) wide storage units, i.e. package error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • G06F11/1052Bypassing or disabling error detection or correction
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0409Online test

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Detection And Correction Of Errors (AREA)

Description

    BEREICH DER ERFINDUNG
  • Die vorliegende Erfindung betrifft die Korrektur von Fehlern innerhalb von digitalen Computersystemen. Sie betrifft insbesondere die Löschung oder die Korrektur von Fehlern im Speicher in einer zeitlich verteilten Weise.
  • HINTERGRUND DER ERFINDUNG
  • Wenn Daten wieder aus einem Speicher ausgelesen werden, in dem sie gespeichert wurden, kommt es gelegentlich vor, daß ein Fehler auftritt, d. h. daß die wieder ausgelesenen Daten nicht mit den vorher gespeicherten Daten identisch sind.
  • Nach dem Stande der Technik ist eine Anzahl von Fehlerkorrekturcodes (ECC) bekannt, die Fehler nicht nur erfassen können, sondern auch korrigieren können. Typischerweise können diese Codes einen weiteren Bereich von Fehlern erfassen, als sie korrigieren können. Beispielsweise ist ein DED-SEC-Code in der Lage, alle doppelten Fehler (d. h. Fehler, in denen zwei Bits innerhalb des Bereichs fehlerhaft sind) zu erfassen, die in dem Datenbereich auftreten, den der Code umfaßt, und alle einzelnen Fehler (d. h. mit nur einem falschen Bit) zu korrigieren.
  • Bei Anwendung auf den Hauptspeicher oder Direktzugriffsspeicher (RAM) innerhalb eines Computersystems kann es erwünscht sein, jedes doppelte 64-Bit- Wort als seinen eigenen Datenbereich zu betrachten, d. h. zusammen mit ihm seine eigenen ECC- oder Redundanzprüfinformationen zu speichern. Wenn das Computersystem Worte aus dem Speicher ausliest, würden diese ECC-Informationen geprüft, so daß Fehler in dem Wort erfaßt und hoffentlich korrigiert werden könnten.
  • Wenn die ECC-Hardware einen korrigierbaren Fehler erfaßt, so ist es erwünscht, daß das gerade gelesene Wort im Fluge korrigiert wird, so daß der Prozessor oder die E/A-Steuereinheit, der/die gerade den Hauptspeicher liest, mit einem korrigierten Wort beliefert wird. Das ist eine leistungskritische Aufgabe, weil der Zugriff auf den Hauptspeicher einer der leistungskritischsten Aspekte der Konstruktion von Computersystemen ist. Jede Verbesserung oder Verschlechterung in der Latenz zwischen einer Zugriffsanforderung und der Bereitstellung der angeforderten Daten oft einen wesentlichen Einfluß auf die Gesamtleistung des Systems hat.
  • Es ist ferner erwünscht, daß das Wort in dem Hauptspeicher korrigiert wird, weil sich Fehler mit der Zeit ansammeln. Wenn innerhalb des gleichen Worts anschließende Fehler auftreten, so können sie einen korrigierbaren Fehler zu einem unkorrigierbaren Fehler umwandeln. Der Prozeß zur Korrektur der in dem Speicher gespeicherten Daten wird als Löschen des Speichers bezeichnet. Im Vergleich mit der oben beschriebenen fliegenden Korrektur ist der Prozeß zur Korrektur der in dem Hauptspeicher gespeicherten Daten zeitaufwendiger und teurer, da zu seiner Ausführung zusätzliche Hardware und/oder Software notwendig ist.
  • Bei einer Vorgehensweise zum Löschen eines Speichers ist es erwünscht, keinen der Fehlerkorrekturaufträge der Software zu übertragen. In diesem Falle wäre es erwünscht, in die Speichersteuereinheit eine Zustandsmaschine einzubringen, die zeitweilig den normalen Betrieb des Speichers aussetzt und das korrigierte Wort an die Stelle des fehlerhaften Wort zurückschreibt. Zu den Nachteilen dieser Vorgehensweise gehören sowohl die Kompliziertheit der Hardware, die zum Rückschreiben erforderlich wäre, als auch der Leistungsverlust, weil erst dann zu anderen Zwecken auf den Speicher zugegriffen werden könnte, wenn der Korrektur- und Neuschreibprozeß abgeschlossen ist.
  • Bei einer anderen Vorgehensweise zum Löschen eines Speichers ist es erwünscht, daß Kosten und Kompliziertheit der Hardware minimal gehalten werden und die meisten der Fehlerkorrekturaufträge der Software übertragen werden. Bei einer solchen Vorgehensweise wäre es erwünscht, daß ein Interrupt erzeugt wird, um Software oder Firmware zu aktivieren und an dem Prozessor abzuarbeiten, um die fehlerhafte Speicherstelle zu korrigieren. Leider wird bei manchen Systemen die begrenzte Anzahl von Interrupt-Anforderungssignalen oder -vektoren, die zur Verfügung stehen, bereits genutzt. Ebenso kann eine andere Version der Korrekturroutine für jedes andere Betriebssystem erforderlich sein, das an dem Computersystem läuft.
  • In US-A-4 535 455 wird eine solche letztere Vorgehensweise offenbart, bei der in einem Speicher auftretende transiente Fehler korrigiert werden und durch einen programmgesteuerten Mikroprozessor und durch eine Fehlererfassungs- und Korrekturschaltung registriert werden Wenn in aus einem Speicherplatz ausgelesenen Informationen ein Fehler auftritt, kann die Fehlererfassungs- und Korrekturschaltung auf den Fehler ansprechen, um die die Stelle enthaltende Speicheradresse zu speichern, die Art des Fehlers zu speichern und ein Fehlersignal zum Unterbrechen des Mikroprozessors zu generieren. Als Reaktion auf die Unterbrechung erkennt der Mikroprozessor die Speicherstellen, an denen der Fehler aufgetreten ist, stellt die Art des Fehlers fest, greift wieder auf jeden Speicherplatz zu, um diesen zu lesen, empfängt jedes von der Korrekturschaltung in geeigneter Weise korrigiertes Wort der ausgelesenen Informationen, schreibt jedes der empfangenen Worte an der entsprechenden Speicherstelle wieder in den Speicher ein, liest jede der neu geschriebenen Stellen aus, um festzustellen, ob noch ein Fehler vorhanden ist, der einen Dauerfehler und keinen transienten Fehler anzeigen würde, und registriert den Fehler in einer Fehlerbewertungstabelle, wenn er ein transienter Fehler ist.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Gemäß einer ersten und einer zweiten Ausgestaltung der Erfindung werden ein Computersystem und ein Verfahren nach Anspruch 1 bzw. Anspruch 6 dieser Anmeldung geschaffen.
  • Ein Computersystem umfaßt einen Prozessor und einen Speicher mit Fehlerkorrekturvermögen. Der Speicher ist in Abschnitte unterteilt.
  • Wenn eine Steuereinheit für den Speicher feststellt, daß ein Speicherwort einen korrigierbaren Fehler enthält, gibt sie dem Prozessor über ein Interrupt den Speicherabschnitt an, zu dem das fehlerhafte Wort gehört. Als Reaktion darauf liest der Prozessor jedes Wort innerhalb dieses Abschnitts des Speichers und schreibt es neu. Der Interrupt-Mechanismus unterscheidet sich von demjenigen, der für Eingabe-/Ausgabe-Interrupts verwendet wird.
  • Bei manchen Ausführungsformen generiert die Speichersteuereinheit die Fehlerkorrekturprüfbits, wenn Daten in den Speicher eingeschrieben werden. Bei manchen Ausführungsformen korrigiert die Speichersteuereinheit die Speicherdaten, wenn sie aus dem Speicher in den Prozessor eingelesen werden. Bei manchen Ausführungsformen unterscheiden sich der Adreßraum, der Prozessorzustand und der Registersatz, die von dem Prozessor für den Lese- und den Neuschreibvorgang verwendet werden, von den während des normalen Betriebs des Prozessors verwendeten und unterscheiden sich von den für Eingabe-/Ausgabe-Interrupts verwendeten.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Die vorliegende Erfindung ist in den folgenden Zeichnungen dargestellt, in denen bekannte Schaltungen der Klarheit halber als Blockschaltbild gezeigt sind. Diese Zeichnungen dienen der Erläuterung und sollen dem Verständnis des Lesers nachhelfen. Die vorliegende Erfindung sollte nicht als auf die bevorzugten Ausführungsformen und die dargestellten Konstruktionsalternativen beschränkt aufgefaßt werden.
  • Fig. 1 zeigt die Teile der fehlerkorrigierenden Löschvorrichtung gemäß der vorliegenden Erfindung und deren Zusammenschaltungen.
  • Fig. 2 zeigt den zeitlichen Ablauf des Löschvorgangs gemäß der vorliegenden Erfindung und die diesem zugeordneten Steuersignale.
  • Fig. 3 zeigt, wie eine Ausführungsform Prüfbits und Datenbits innerhalb eines Speicherworts verschachtelt, und wie es einen RAM in N Abschnitte von je vier Unterabschnitten unterteilt.
  • Fig. 4 zeigt die Abfolge von Schritten, die die System-Management-Firmware zum Löschen von Speicherfehlern durchläuft.
  • Fig. 5 zeigt gemäß einer Ausführungsform der vorliegenden Erfindung das Verhältnis zwischen der System-Management-Firmware und der Software, der Hardware und der Firmware des grundlegenden Eingabe/-Ausgabesystems (BIOS- Firmware) eines beispielhaften Computersystems.
  • Fig. 6 zeigt die bei einer Ausführungsform der vorliegenden Erfindung verwendete Fehlerkorrekturmatrix. Diese Matrix legt sowohl fest, wie die Fehlerprüfbits aus den Datenbits generiert werden, als auch, wie ein einzelnes fehlerhaftes Bit von den Syndrombits identifiziert werden kann.
  • AUSFÜHRLICHE BESCHREIBUNG DER ERFINDUNG Architektur
  • Im folgenden sind verschiedene alternative Ausführungsformen und Konstruktionsalternativen der vorliegenden Erfindung offenbart, die jedoch nicht als auf die beschriebenen Ausführungsformen und Alternativen beschränkt aufgefaßt werden sollten. Der Fachmann wird alternative Ausführungsformen und verschiedene Änderungen in Form und Einzelheiten erkennen, die bei der Ausführung der vorliegenden Erfindung verwendet werden können, ohne von deren Prinzipien, Wesen oder Umfang abzuweichen.
  • Die vorliegende Erfindung ist ein Verfahren und eine Vorrichtung zur Korrektur von fehlerhaften Worten im Speicher eines Computersystems. Fig. 1 ist ein Systemarchitekturdiagramm des Speicher- und Prozessorabschnitts eines Computersystems, bei dem eine RAM-Löschvorrichtung gemäß einer Ausführungsform der vorliegenden Erfindung verwendet wird.
  • Wenn Worte aus dem Speicher ausgelesen werden, versucht die Fehlerprüf- und -korrekturschaltung ECC, Fehler zu erfassen, und nimmt die Korrektur möglichst im Fluge vor, d. h. bevor sie an den/die Anfordernde(n) geliefert werden.
  • Tritt ein korrigierbarer Fehler auf, führt die ECC-Schaltung die Korrektur aus und liefert das korrigierte Datenwort an den/die Anfordernde(n). Bei einer Ausführungsform paßt sich eine einzyklische Verzögerung in der Speicherzugriffslatenz an den Fehlerkorrekturprozeß an.
  • Die ECC-Schaltung löscht oder korrigiert die Fehler in dem RAM, ohne dabei den Speicherzugriffszyklus zu verzögern. Das korrigierte Wort wird nicht sofort wieder in den RAM eingeschrieben. Vielmehr wird eine Angabe des RAM-Abschnitts, in dem der Fehler aufgetreten ist, zwecks späterer Verwendung von einer Firmware-Speicherlöschroutine zwischengespeichert.
  • Bei einer Ausführungsform macht es die ECC-Schaltung nicht erforderlich, daß die vollständige Wortadresse des fehlerhaften Worts zwischengespeichert wird. Vielmehr werden, um Kosten und Kompliziertheit der Hardware zu vermindern, wesentlich weniger Bits als eine vollständige Wortadresse gespeichert, wobei die gespeicherten Bits nur angeben, welcher Speicherabschnitt das fehlerhafte Wort enthält. Bei einer Ausführungsform entspricht jeder Abschnitt einer Speicherzeile, und die Zeilenadresse wird zwischengespeichert, um den zu löschenden Bereich anzugeben.
  • Die Adresse des Abschnitts wird zu einer interruptgesteuerten Firmwareroutine geliefert, die diesen Bereich löscht, d. h. die jedes Speicherwort innerhalb dieses Abschnitts liest und neu schreibt. Dadurch wird sichergestellt, daß das fehlerhafte Wort gelesen wird, beim Lesen im Fluge korrigiert wird und dann neu geschrieben wird. Wenn das Wort dann wieder in den Speicher eingeschrieben wird, wird es richtig gespeichert. Das ist erwünscht, weil sich mit der Zeit Fehler ansammeln und ein zweiter Fehler innerhalb des gleichen Speicherworts wahrscheinlich dieses Wort unkorrigierbar macht.
  • Übersteigt die Größe eines Speicherabschnitts einen vorbestimmten Schwellwert, so wird der Löschprozeß in diesem Abschnitt in kleinere Unterprozesse unterteilt. Diese Unterprozesse werden mit Hilfe von verzögerten Interrupts zeitlich verteilt. Indem die Dauer jedes Unterprozesses unterhalb eines Schwellwerts gehalten wird, stellt die ECC-Schaltung sicher, daß die Ansprechzeit des Computersystems durch die organisatorische Aufgabe, Speicherfehler zu löschen, nicht wesentlich beeinträchtigt wird.
  • Tritt ein unkorrigierbarer Fehler auf, generiert die ECC-Schaltung ein Software-Interrupt. Oft ist ein solcher Fehler nicht behebbar, und die Ausführung des Prozesses muß abgebrochen werden, oder das System muß neu gestartet werden.
  • Bei einer Ausführungsform führen System-Management-Interrupts und - Firmware dieses Löschen von Speicherfehlern in einer Weise aus, die unabhängig von und transparent für das auf dem Computersystem laufende Betriebssystem ist. System-Management-Interrupts (SMIs) nehmen einen Interrupt-Vektorraum ein, der nicht von regulären Interrupts, beispielsweise von Eingabe-/Ausgabe-Interrupts, abhängig ist. Bedienungsroutinen für System-Management-Interrupts laufen in einem Programmadressenraum ab, der nicht von dem für eine reguläre Programmausführung oder von dem von regulären Interrupts abhängig ist. Bedienungsroutinen für System-Management-Interrupts nutzen Prozessorzustandsinformationen, die nicht von den für die reguläre Programmausführung verwendeten oder von denen für reguläre Interrupts verwendeten abhängig sind.
  • Bei dieser Ausführungsform gibt es weder Konflikte noch Konkurrenz für Interrupt-Vektoren oder einen Programmadressenraum zwischen der Speicherlöschroutine und einem normalen Programm oder normalen Interrupt-Aktivitäten. Ferner sind keine betriebssystemspezifischen Treiber zur Unterstützung des Löschens von Speichern erforderlich. Zu den Vorteilen dieser Ausführungsform gehören auch die Erhöhung der Zuverlässigkeit und die Plattform- oder Systemunabhängigkeit des ECC-Löschvorgangs.
  • Jedes Wort in dem in Fig. 1 gezeigten RAM-Speicher 102 umfaßt sowohl Datenbits als auch Fehlerkorrekturcode-(ECC)- oder Fehlerprüfbits. Bei einer Ausführungsform umfaßt jedes Wort 64 Datenbits und 8 Prüfbits. Typischerweise ist der gerade auf Fehler geprüfte Speicher ein Direktzugriffsspeicher (RAM), beispielsweise der Hauptspeicher des Computersystems, oder ein Eingabe-/Ausgabe-Pufferspeicher. Trotzdem können die hier beschriebenen ECC-Schaltungen und -verfahren an jeden digitalen Speicher angepaßt werden, in den Wort für Wort eingeschrieben werden kann.
  • Alle Lesungen aus dem und Schreibungen in den Speicher 102 laufen durch die Speicher- und ECC-Steuereinheit 101. Immer dann, wenn ein Wort in den RAM- Speicher 102 eingeschrieben wird, generiert die Speicher- und ECC-Steuereinheit 101 Fehlerprüfbits aus den Datenbits, die die das Schreiben anfordernde Vorrichtung, beispielsweise der Prozessor 103, geliefert hat. Bei einer Ausführungsform werden Teilwortschreibungen in der nach dem Stande der Technik bekannten Weise mit Hilfe eines Lese-Modifizier-Schreib-Zyklus unterstützt.
  • Typischerweise stellt die Speicher- und ECC-Steuereinheit 101 auch einen Lese-Schreib-Zugriff auf den RAM-Speicher 102 und auf andere (nicht gezeigte) Vorrichtungen bereit, beispielsweise auf Steuereinheiten von peripheren Geräten. Typischerweise erfolgt das über ein (nicht gezeigtes) Bussystem.
  • Wenn ein Wort innerhalb des RAM-Speichers 102 gelesen wird, berechnet die Speicher- und ECC-Steuereinheit 101 ein Syndrom auf der Basis der Werte der gelesenen Daten- und Prüfbits. Wenn das Syndrom 0 beträgt, ist kein Fehler aufgetreten. Das ist die am häufigsten vorkommende Situation. Gelegentlich tritt ein Fehler auf, und in dem Wort aus dem RAM-Speicher 102 ist ein oder sind mehrere Bits umgekehrt. Im Falle eines korrigierbaren Fehlers korrigiert die Speicher- und ECC- Steuereinheit 101 das fehlerhafte Wort im Fluge, d. h. es liefert an den/die Anfordernde(n) eine korrigierte Version des angeforderten Worts.
  • Mit der vorliegenden Erfindung wird nicht versucht, den Inhalt des RAM- Speichers 102 zu korrigieren, wenn er gelesen wird. Vielmehr aktiviert die Speicher- und ECC-Steuereinheit 101, wenn sie einen korrigierbaren Fehler erfaßt, ein Signal 122 für korrigierbare Fehler, das der Steuereinheit und Ablaufsteuerung 105 des System-Management-Interrupts meldet, daß ein Speicherlöschvorgang einzuleiten ist. Diese Meldung kann über ein Bussystem erfolgen, mit dem sowohl die Speicher- und ECC-Steuereinheit als auch die Steuereinheit und Ablaufsteuerung 105 des System-Management-Interrupts verbunden sind.
  • Zum geeigneten Zeitpunkt (wobei Interrupts höherer Priorität anstehend sein können) generiert die Interrupt-Steuereinheit und Ablaufsteuerung 105 ein System- Management-Interrupt durch Aktivierung eines Anforderungssignals 120 für ein System-Management-Interrupt. Bei anderen Ausführungsformen der Erfindung könnte der unmaskierbare Interrupt-Mechanismus des Computersystems oder dessen regulärer Interrupt-Mechanismus verwendet werden.
  • Dementsprechend, wenn auch nicht unbedingt sofort, quittiert der Prozessor 103 die Anforderung des System-Management-Interrupts (SMIf) und überträgt die Steuerung an eine Speicherlösch-Interrupt-Routine, die in dem System-Management-Speicher 104 resident ist. Der System-Management-Speicher 104 ist typischerweise ein nichtflüchtiger Speicher, beispielsweise ein programmierbarer Festwertspeicher (PROM) oder ein Flash-Speicher. Dieser Speicher kann auch das grundlegende Eingabe-/Ausgabesystem (BIOS) des Computersystems enthalten.
  • Die Speicherlöschroutine liest den Inhalt eines Abschnittsadressenregisters 130, das ein Teil der Speicher- und ECC-Steuereinheit 101 ist. Das Abschnittsadressenregister 130 gibt an, welcher Speicherabschnitt gelöscht werden soll. Es kann den Löschvorgang mit einem Mal abschließen oder nicht. Wenn nicht, dann aktiviert es ein Signal 121 für die Ablaufsteuerung des System-Management-Interrupts. Dadurch wird bewirkt, daß die Steuereinheit und Ablaufsteuerung 105 nach einer programmierbaren Verzögerung ein anderes System-Management-Interrupt plant.
  • Bei einer Ausführungsform ist die Speicher- und ECC-Steuereinheit 101 in einer ersten integrierten Schaltung ausgeführt, die auch den Prozessor 101 und den RAM-Speicher 102 mit einem (nicht gezeigten) sehr schnellen Systembus verbindet, der der wohlbekannten Spezifikation für periphere Teilezusammenschaltungen (PCI) genügt. Bei dieser Ausführungsform ist die Steuereinheit und Ablaufsteuerung 105 für das System-Management-Interrupt in einer zweiten integrierten Schaltung ausgeführt, die diesen PCI-Bus ebenfalls mit einem Bus von industriestandardmäßiger Architektur (ISA) verbindet. Bei dieser Ausführungsform ist das Signal 121 für die Ablaufsteuerung des System-Management-Interrupts durch Einschreiben von spezifizierten Werten in spezifizierte Steuerregister innerhalb der zweiten integrierten Schaltung ausgeführt.
  • Funktionsweise
  • Fig. 2 ist ein beispielhaftes zeitliches Ablaufdiagramm, das zeigt, wie sich der Löschvorgang 203 zeitlich verteilt. Der Löschvorgang 203 ist während jedes der Zeiträume 206 aktiv, die durch sehr große Zeitintervalle getrennt sind. Der Zeitraum 206 wird jedes Mal durch eine entsprechende Aktivierung 205 des Anforderungssignals 120 für das System-Management-Interrupt eingeleitet. In der in Fig. 2 gezeigten speziellen beispielhaften Abfolge führt eine einzige Aktivierung eines korrigierbaren Fehlers 122 (d. h. ein einziges Auftreten eines korrigierbaren Speicherfehlers) zu drei Aktivierungen 205 des Anforderungssignals 120 für das System- Management-Interrupt.
  • Die erste Aktivierung 205 wird durch die Steuereinheit und Ablaufsteuerung 105 für das System-Management-Interrupt als Reaktion auf die Aktivierung 204 des Signals 122 für korrigierbare Fehler generiert. Das Signal 122 für korrigierbare Fehler wird von der Speicher- und ECC-Steuereinheit 101 generiert.
  • Jede nachfolgende Aktivierung 205 wird durch die Steuereinheit und Ablaufsteuerung 105 für das System-Management-Interrupt als Reaktion auf, jedoch nach einer programmierbaren Verzögerung von jeder Aktivierung 207 des Signals 121 für die Ablaufsteuerung des System-Management-Interrupts generiert. Das Signal 121 für die Ablaufsteuerung des System-Management-Interrupts wird von dem unter Steuerung durch die System-Management-Firmware 104 wirkenden Prozessor 103 generiert.
  • Wenn die System-Management-Firmware 104 mit dem Löschen des Speicherabschnitts fertig ist, der den korrigierbaren Fehler enthält, plant sie kein weiteres System-Management-Interrupt. Der Löschvorgang 203 wird erst dann wieder aktiv, wenn die Speicher- und ECC-Steuereinheit 101 einen weiteren korrigierbaren Fehler erfaßt und das Signal 122 für korrigierbare Fehler aktiviert.
  • Fig. 3 ist ein Speicherabbild, das die Konfiguration des RAM-Speichers 102 gemäß einer Ausführungsform zeigt. Bei dieser Ausführungsform ist der RAM- Speicher 102 in N Abschnitte unterteilt, die mit 1 bis N numeriert sind. Um die Dauer von jedem der Zeiträume 206 zu verkürzen, ist jeder Abschnitt des RAM- Speichers 102 in vier Unterabschnitte unterteilt, die mit "a" bis "d" numeriert sind.
  • Wenn beispielsweise innerhalb von Abschnitt 2 ein korrigierbarer Fehler auftritt, so wird der Unterabschnitt 2a während eines Zeitraums 206 gelöscht, und es wird ein weiteres System-Management-Interrupt geplant, dann wird während eines weiteren Zeitraums 206 der Unterabschnitt 2b gelöscht, und es wird ein weiteres System-Management-Interrupt geplant, dann wird während eines Weiteren Zeitraums 206 der Unterabschnitt 2c gelöscht, und es wird ein weiteres System-Management-Interrupt geplant, und dann wird während eines letzten Zeitraums 206 der Unterabschnitt 2d gelöscht.
  • Das Speicherabbild von Fig. 3 zeigt gemäß einer Ausführungsform der Erfindung auch, wie die ECC- oder Prüfbits unter den Datenbits verschachtelt werden. Mit Hilfe dieser speziellen Verschachtelung und des in Fig. 6 gezeigten speziellen ECC-Codes erfaßt die vorliegende Erfindung jeden Fehler, der innerhalb eines einzelnen 4-Bit-Worts begrenzt ist (d. h. die Bits 0 bis 3, 4 bis 7 usw.).
  • Der RAM-Speicher 102 kann unter Verwendung einer Reihe von integrierten Schaltungen (IC's) ausgeführt werden, von denen jede einen Datenwert von einem Wort für eine Anzahl von Worten hält. Wenn eine solche IC, die ein einzelne Hauptspeicherplatine (SIMM) sein kann, fehlt oder fehlerhaft ist, dann können alle Bits dieses Worts fehlerhaft sein. Da das eine übliche Art eines Ausfalls ist, ist es erwünscht, daß das erfaßt werden kann.
  • Die Bit-Reihenfolge innerhalb des Codewirts gemäß dieser Ausführungsform lautet folgendermaßen:
  • 1. Datenbits 0 bis 25
  • 2. Prüfbit 2
  • 3. Prüfbit 5
  • 4. Datenbits 26 bis 31
  • 5. Prüfbit 3
  • 6. Prüfbit 4
  • 7. Datenbits 32 bis 57
  • 8. Prüfbit 6
  • 9. Prüfbit 1
  • 10. Datenbits 58 bis 63
  • 11. Prüfbit 7
  • 12. Prüfbit 0
  • Bei einer anderen Ausführungsform wird der Fehlercode von Fig. 6 verwendet, jedoch werden die Prüfbits bei Verwendung in den Bits 64 bis 71 des Speicherworts gespeichert. Wenn das Computersystem zu Anfang zum Zeitpunkt der Ureingabe im Selbsttest (POST) auf Leistung geladen wird, dann kann das System BIOS feststellen oder nachsehen, ob das System ECC-fähig ist oder nicht, d. h. ob die Bits 64 bis 71 tatsächlich in dem RAM-Speicher 102 vorhanden sind. Dementsprechend aktiviert oder entaktiviert die BIOS die ECC-Prüfung des Speichers. Bei dieser Ausführungsform können die gleiche Systemkonstruktion und die gleichen Teile sowohl für ein billigeres Computersystem, das kein Speicherfehlererfassungs- und Korrekturvermögen aufweist, als auch für ein Computersystem mit höherer Sicherheit, das diese aufweist, verwendet werden.
  • Fig. 4 ist ein Ablaufschema, das die Schritte innerhalb der Bedienungsroutine des Speicherlösch-Interrupts zeigt. Dieses Interrupt-Bedienprogramm 401 startet, wenn der Prozessor 103 ein Auftreten eines System-Management-Interrupts bestätigt. Als nächstes stellt der Prozessor 103 in Schritt 402 fest, ob das aktive Interrupt ein Speicherlösch-Interrupt ist, und in diesem Falle geht die Steuerung zu Schritt 404 weiter. Andernfalls wird irgendein anderes System-Management-Ereignis, das auggetreten ist, beispielsweise ein Systemleistungs-Management-Ereignis, in Schritt 403 bedient.
  • In Schritt 404 wird festgestellt, ob das der erste Durchlauf oder das erste Auftreten einer Anforderung 205 für ein System-Management-Interrupt auf Grund eines speziellen korrigierbaren Fehlerereignisses 204 ist. Wenn nicht, dann geht die Steuerung zu Schritt 412 weiter. Wenn ja, geht die Steuerung zu Schritt 405 weiter, in dem aus dem Abschnittsadressenregister 130 innerhalb der Speicher- und ECC- Steuereinheit 101 die Adresse des Abschnitts innerhalb des RAM-Speichers 102 herausgelesen wird, der das Wort mit einem korrigierbaren Fehler enthält.
  • Als nächstes wird in Schritt 406 die Größe dieses Abschnitts gelesen oder festgestellt. Typischerweise ist jeder Abschnitt von gleicher Größe, wenn jedoch mehr Speicherplatz in das Computersystem eingebracht wird, enthält jeder Abschnitt mehr Worte. In Schritt 408 wird getestet, ob die Größe dieses Abschnitts kleiner als oder gleich einem vorbestimmten Grenzwert ist, also 8 Megabytes (MB) in dem in Fig. 4 gezeigten speziellen Fall. Wenn ja, wird der gesamte Abschnitt in Schritt 407 gelöscht, und die System-Management-Bedienungsroutine endet in Schritt 415.
  • Wenn die Größe des zu löschenden Abschnitts größer als der Grenzwert ist, so wird in Schritt 409 der erste Unterabschnitt des den Fehler enthaltenden Speicherabschnitts gelöscht. Als nächstes wird in Schritt 410 geplant, daß nach einer vorbestimmten Verzögerung ein weiteres Speicherlösch-Interrupt stattfindet, und die System-Management-Bedienungsroutine endet in Schritt 415. Zu dieser Zeitplanung wird das Signal 121 für die Ablaufsteuerung des System-Management-Interrupts verwendet.
  • In Schritt 412 wird der nächste Speicherunterabschnitt gelöscht. Als nächstes wird in Schritt 413 festgestellt, ob noch ein weiterer Speicherunterabschnitt gelöscht werden soll. Wenn nicht, so endet die System-Management-Bedienungsroutine in Schritt 415. Wenn ja, so wird in Schritt 414 geplant, daß nach einer vorbestimmten Verzögerung ein weiteres Speicherlösch-Interrupt stattfindet, und die System-Management-Bedienungsroutine endet in Schritt 415.
  • Anforderungen für unabhängige System-Management-Firmware und Interrupt
  • Fig. 5 zeigt, wie die System-Management-Firmware 104 mit dee Hardware, der Software und mit anderen Firmware-Teilen eines beispielhaften Computersystems in einer Weise zusammenpaßt, die unabhängig von dem und transparent für das Betriebssystem 511 ist.
  • Die Steuereinheit und Ablaufsteuerung 105 des System-Management-Interrupts plant Interrupts, die die System-Management-Firmware 104 aktivieren. Sie empfängt auch Anforderungen von der System-Management-Firmware 104 zur Planung solcher Interrupts nach einer festgelegten Verzögerung.
  • Die System-Management-Firmware 104 ist unabhängig von der BIOS- Firmware 521, obwohl beide in der gleichen nichtflüchtigen Speichervorrichtung innerhalb des Computersystems liegen können. Das Anforderungssignal 120 für ein System-Management-Interrupt ist unabhängig von den Steuersignalen für die Interrupt-Anforderungen, die zwischen den peripheren Geräten 531 und der BIOS-Firmware 521 oder den Softwarevorrichtungstreibern 512 kommunizieren.
  • Die BIOS-Firmware 521 unterstützt in einem typischen System die grundlegenden Eingabe- und Ausgabeoperationen, beispielsweise Anzeige- und Tastatursteuerfunktionen. Die peripheren Geräte 531 und das Betriebssystem 511 kommunizieren mit Hilfe von durch die BIOS abgewickelten Geräte-Interrupts und mit Hilfe dessen, daß das BS Aufrufe an die BIOS-Routinen richtet.
  • Andere Eingabe- und Ausgabeoperationen werden von den Vorrichtungstreibern 512 unterstützt. In diesen Fällen kommunizieren die Anwendungs-Software 510 und die peripheren Geräte 531 miteinander mit Hilfe von Interrupts, die durch die Vorrichtungstreiber bzw. die Aufrufe an die Vorrichtungstreiber abgewickelt werden. Die Software-Vorrichtungstreiber 512 werden anstelle von Treibern innerhalb der BIOS-Firmware 512 bei komplizierteren peripheren Geräten verwendet, beispielsweise Netzwerkkarten oder weiter fortgeschritteneren Betriebssystemen, beispielsweise Windows NT TM oder Windows 95TM.
  • Die System-Management-Firmware 104 führt den Speicherlöschvorgang gemäß der vorliegenden Erfindung aus, ohne in irgendeiner Weise die peripheren Geräte 531, die BIOS-Firmware 521, die Vorrichtungstreiber 512 (bei Verwendung), das Betriebssystem 511 oder die Anwendungs-Software 510 zu behindern.
  • Beispielhafter ECC-Code und -Algorithmus
  • Die vorliegende Erfindung kann mit einer Vielzahl von ECC-Codes verwendet werden, von denen einer in Fig. 6 dargestellt ist. Dieser spezielle ECC-Code begann mit der Beschreibung von Rao und Fujiwara1 für ein Verfahren zur Konstruktion eines Drehcodes SEC-DED-S4ED, der 64 Datenbits mit 8 Prüfbits schützt. Dieser Code wurde durch die unbenutzten Spaltenvektoren Weight-3 vergrößert, so daß ein Code mit der Länge 72 entstand, der den SEC-DED-S4ED und die Dreheigenschaften aufrechterhält und symmetrisch ist.
  • Die ersten 64 Spalten gemäß Fig. 6, d. h. die bezeichneten Datenbits, zeigen die G-Matrix des bei dieser Ausführungsform verwendeten ECC-Codes. Jede Reihe der G-Matrix zeigt, wie das entsprechende Prüfbit beim Einschreiben in den RAM- Speicher 102 berechnet wird. Die ersten 72 Spalten gemäß Fig. 6, d. h. diese bezeichneten Datenbits und die Prüfbits, zeigen die H-Matrix des bei dieser Ausführungsform verwendeten ECC-Codes. Jede Reihe der H-Matrix zeigt, wie das entsprechende Syndrombit beim Lesen des RAM-Speichers 102 berechnet wird.
  • Beim Einschreiben eines Worts in den RAM-Speicher 102 berechnet die Speicher- und ECC-Steuereinheit 101 die 8 Prüfbits folgendermaßen:
  • - Für das Prüfbit N die N-te Reihe in der G-Matrix wählen, wo die Reihen mit 0 bis 7 numeriert sind. Die 64 Spalten der G-Matrix entsprechen den 64 Bits des Worts, das von der Vorrichtung spezifiziert wird, die den Speichereinschreibvorgang anfordert.
  • ¹ T. R. N. Rao and E. Fujiwara, Error-Control Coding for Computer Systems, Prentice Hall 1989, S. 287-293.
  • - Die 1-Bit-Summe (d. h. die Modulo-2-Summe) der Datenbits berechnen, die in der gewählten Reihe mit einer 1 gekennzeichnet sind. Diese Summe ist der Wert des Prüfbits N.
  • - Die oben berechneten 8 Prüfbits zusammen mit den 64 Datenbits des gerade geschriebenen Worts in den Speicher einschreiben.
  • Beim Auslesen eines Worts aus dem RAM-Speicher 102 berechnet die Speicher- und ECC-Steuereinheit 101 die 8 Syndrombits folgendermaßen:
  • - Für das Syndrombit N die N-te Reihe in der H-Matrix wählen, wo die Reihen mit 0 bis 7 numeriert sind. Die 72 Spalten der H- Matrix entsprechen den 64 Datenbits und den 8 Prüfbits des Worts, das von der Vorrichtung adressiert wird, die den Speicherauslesevorgang anfordert.
  • - Die 1-Bit-Summe (d. h. die Modulo-2-Summe) der Datenbits und der Prüfbits berechnen, die in der gewählten Reihe mit einer 1 gekennzeichnet sind. Diese Summe ist der Wert des Prüfbits N.
  • Dann benutzt die Speicher- und ECC-Steuereinheit 101 das Syndrom folgendermaßen, um festzustellen, ob ein Fehler aufgetreten ist, und wenn ja, welcher Art der Fehler ist:
  • - Wenn alle Syndrombits Null sind, so ist das Speicherwort in der gelesenen Weise richtig.
  • - Andernfalls, wenn entweder das Vier-Bit-Wort des Syndroms (d. h. die Bits s0 bis s3 oder die Bits s4 bis s7) nicht Null sind und das andere Vier-Bit-Wort drei Ein-Bits enthält, so enthält ein Vier-Bit-Wort innerhalb der Wortlesung einen drei-Bit- oder einen vier-Bit-Fehler.
  • - Andernfalls, wenn das Syndrom eine gerade Zahl von Ein-Bits enthält, so ist ein unkorrigierbarer Fehler (d. h. ein Zwei-Bit- Fehler) aufgetreten.
  • - Andernfalls, wenn das Syndrom eine ungerade Zahl von Ein-Bits enthält, so ist ein korrigierbarer Ein-Bit-Fehler aufgetreten.
  • Bei einem Ein-Bit-Fehler benutzt die Speicher- und ECC-Steuereinheit 101 das Syndrom, um genau ein Bit innerhalb des gelesenen Worts folgendermaßen umzukehren:
  • - Die 8 Syndrombits Spalte für Spalte mit den 8 Reihen der H- Matrix gemäß Fig. 6 vergleichen. Die Spalte, der sie entsprechen, ist die Spalte, die der Bit-Position entspricht, die falsch ausgelesen wurde. Wenn die Syndrombits beispielsweise 0001 0101 (in der Reihenfolge von s0 bis s7) lauten, so wurde das Bit 7 des Worts falsch ausgelesen.
  • - Jeden Wert umkehren, der Ihr die Bit-Position ausgelesen wurde, die der entsprechenden Spalte entspricht. In dem gleichen Beispiel das Bit 7 des gelesenen Worts umkehren, um das richtige Wort zu generieren.
  • Bei einer Ausführungsform werden die über den Systembus übertragenen Daten vor Fehlern geschützt, indem der gleiche ECC-Code verwendet wird, der für den RAM-Speicher 102 verwendet wird. Bei dieser Ausführungsform führt die Speicher- und ECC-Steuereinheit 101 die oben beschriebene Syndromgenerierung und - prüfung (und vielleicht auch die Fehlerkorrektur) an den Datenworten, die von dem Systembus empfangen werden, bevor sie in den Speicher eingeschrieben werden, mit den gleichen Fehlerprüfbits aus (oder vielleicht mit den korrigierten Fehlerprüfbits, die auf der Basis der obigen Verfahren korrigiert wurden).
  • Zusammenfassung
  • Wie hier veranschaulicht ist, wird mit der vorliegenden Erfindung ein neuartiges und vorteilhaftes Verfahren und eine Vorrichtung zur Korrektur von Fehlern in einem RAM-Speicher geschaffen. Der Fachmann wird erkennen, daß alternative Ausführungsformen, Konstruktionsalternativen und verschiedene Änderungen in Form und Einzelheiten bei der Ausführung der Erfindung angewandt werden können, ohne von deren beanspruchten Prinzipien abzuweichen.
  • Insbesondere können die in Fig. 1 gezeigte Systemarchitektur, die in Fig. 2 gezeigten Steuersignale, das in Fig. 3 gezeigte Speicherabbild, die in Fig. 4 gezeigten Schritte in der Bedienungsroutine des Speicherlösch-Interrupts, die in Fig. 5 gezeigten Software/Firmware/Hardware-Beziehungen und der in Fig. 6 gezeigte ECC-Code in verschiedenen Ausführungsformen der Erfindung vereinfacht, vergrößert oder geändert werden.

Claims (10)

1. Computersystem zur Korrektur von Speicherfehlern, mit:
einem Speicher zum Speichern von Daten, wobei der Speicher in eine Mehrzahl von Abschnitten unterteilt ist, jeder Abschnitt eine Mehrzahl von Worten enthält und jedes Wort Datenbits und Fehlerprüfungsbits umfaßt;
einem Prozessor, der so betätigbar ist, daß er eine Speicherlöschroutine ausführt, die jedes von der Mehrzahl von Worten in einem Abschnitt des Speichers liest und neu schreibt;
einer Speichersteuereinheit zum Erfassen eines korrigierbaren Fehlers in einem gerade von dem Prozessor gelesenen Wort, wobei die Speichersteuereinheit den Prozessor mit dem korrigierten Datenwort und einer Adresse eines angegebenen Abschnitts versorgt, wo sich das korrigierte Datenwort in dem Speicher befindet; gekennzeichnet durch:
ein Mittel zum Generieren von ersten und zweiten Interrupt-Anforderungssignalen, die durch ein von der Erfassung des korrigierbaren Fehlers durch die Speichersteuereinheit ansprechfähiges Zeitintervall getrennt sind, wobei der Prozessor so betätigbar ist, daß er die Speicherlöschroutine ausführt, die so angeordnet ist, daß sie auf die ersten und zweiten Interrupt- Anforderungssignale ansprechfähig ist, um jeweils den ersten und den zweiten Unterabschnitt des angegebenen Abschnitts zu lesen und neu zu schreiben.
2. Computersystem nach Anspruch 1, wobei die Speichersteuereinheit ferner als Reaktion auf eine Anforderung, in den Speicher einzuschreiben, betätigbar ist, um die auf den gerade geschriebenen Datenbits beruhenden Fehlerprüfbits zu generieren.
3. Computersystem nach Anspruch 1, wobei sich die ersten und zweiten Interrupt-Anforderungssignale von den Eingabe-/Ausgabe-Interrupts unterscheiden.
4. Computersystem nach Anspruch 1, wobei das Mittel zum Generieren von ersten und zweiten Interrupt-Anforderungssignalen eine System-Interrupt-/Ablaufsteuereinheit umfaßt und die ersten und zweiten Interrupt-Anforderungssignale System-Management-Interrupts umfassen.
5. Computersystem nach Anspruch 1, wobei der Prozessor die ersten und zweiten Interrupt-Anforderungssignale mit Hilfe eines Adreßraums, eines Prozessorzustands und eines Registersatzes bedient, die sich von den während des normalen Betriebs des Prozessors verwendeten unterscheiden und sich von den für die Eingabe-/Ausgabe-Interrupts verwendeten unterscheiden.
6. Verfahren zur Korrektur von Speicherfehlern in einem Computersystem, das einen mit einem Speicher mit einer Mehrzahl von Abschnitten verbundenen Prozessor umfaßt, mit den folgenden Schritten:
dem Erfassen, daß ein von dem Prozessor aus dem Speicher angeforderten Wort einen korrigierbaren Fehler enthält;
dem Versorgen des Prozessors mit einem korrigierten Datenwort und einer Adresse eines angegebenen Abschnitts, wo sich das korrigierte Datenwort in dem Speicher befindet; gekennzeichnet durch:
dem Generieren von ersten und zweiten Interrupt-Anforderungsignalen, die durch ein Zeitintervall als Reaktion auf das Erfassen des korrigierbaren Fehlers getrennt sind;
dem Ausführen einer Speicherlöschroutine durch den Prozessor, die auf die ersten und zweiten Interrupt-Signale ansprechfähig ist, um jeweils erste und zweite Unterabschnitte der angegebenen Abschnitte zu lesen und neu zu schreiben.
7. Verfahren nach Anspruch 6, ferner mit:
dem Generieren von auf den Datenbits eines gerade in den Speicher eingeschriebenen Worts beruhenden Fehlerprüfbits; und
dem Speichern sowohl der Fehlerprüfbits als auch der dem Wort zugeordneten Datenbits in den Speicher.
8. Verfahren nach Anspruch 7, wobei das Erfassen des korrigierbaren Fehlers auf den aus dem Speicher ausgelesenen Datenbits und Fehlerprüfbits beruht.
9. Verfahren nach Anspruch 6, wobei sich die ersten und zweiten Interrupt- Anforderungssignale von den Eingabe-/Ausgabe-Interrupts unterscheiden.
10. Verfahren nach Anspruch 6, wobei der Prozessor die ersten und zweiten Interrupt-Anforderungssignale mit Hilfe eines Adreßraums, eines Prozessorzustands und eines Registersatzes bedient, die sich von den während des normalen Betriebs des Prozessors verwendeten unterscheiden und sich von den für die Eingabe-/Ausgabe-Interrupts verwendeten unterscheiden.
DE69719086T 1996-12-31 1997-11-24 Zeitverteilte entfernung von fehlerkorrekturcodes (ecc) zur korrektur von speicherfehlern Expired - Lifetime DE69719086T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/777,252 US5978952A (en) 1996-12-31 1996-12-31 Time-distributed ECC scrubbing to correct memory errors
PCT/US1997/021904 WO1998029811A1 (en) 1996-12-31 1997-11-24 Time-distributed ecc scrubbing to correct memory errors

Publications (2)

Publication Number Publication Date
DE69719086D1 DE69719086D1 (de) 2003-03-20
DE69719086T2 true DE69719086T2 (de) 2003-09-25

Family

ID=25109720

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69719086T Expired - Lifetime DE69719086T2 (de) 1996-12-31 1997-11-24 Zeitverteilte entfernung von fehlerkorrekturcodes (ecc) zur korrektur von speicherfehlern

Country Status (5)

Country Link
US (1) US5978952A (de)
EP (1) EP0986783B1 (de)
AU (1) AU5512398A (de)
DE (1) DE69719086T2 (de)
WO (1) WO1998029811A1 (de)

Families Citing this family (63)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5748547A (en) * 1996-05-24 1998-05-05 Shau; Jeng-Jye High performance semiconductor memory devices having multiple dimension bit lines
US20050036363A1 (en) * 1996-05-24 2005-02-17 Jeng-Jye Shau High performance embedded semiconductor memory devices with multiple dimension first-level bit-lines
US6119248A (en) * 1998-01-26 2000-09-12 Dell Usa L.P. Operating system notification of correctable error in computer information
US6219742B1 (en) * 1998-04-29 2001-04-17 Compaq Computer Corporation Method and apparatus for artificially generating general purpose events in an ACPI environment
US6463563B1 (en) 1999-11-30 2002-10-08 International Business Machines Corporation Single symbol correction double symbol detection code employing a modular H-matrix
US6510528B1 (en) * 1999-12-14 2003-01-21 International Business Machines Corporation Method for improving personal computer reliability for systems that use certain power saving schemes
US6832340B2 (en) * 2000-01-26 2004-12-14 Hewlett-Packard Development Company, L.P. Real-time hardware memory scrubbing
US6662333B1 (en) * 2000-02-04 2003-12-09 Hewlett-Packard Development Company, L.P. Shared error correction for memory design
US6701480B1 (en) * 2000-03-08 2004-03-02 Rockwell Automation Technologies, Inc. System and method for providing error check and correction in memory systems
US6675317B2 (en) * 2000-12-14 2004-01-06 International Business Machines Corporation Method and system for determining erase procedures run on a hard drive
US6449203B1 (en) * 2001-03-08 2002-09-10 Micron Technology, Inc. Refresh controller and address remapping circuit and method for dual mode full/reduced density DRAMs
US6792567B2 (en) * 2001-04-30 2004-09-14 Stmicroelectronics, Inc. System and method for correcting soft errors in random access memory devices
US6571317B2 (en) * 2001-05-01 2003-05-27 Broadcom Corporation Replacement data error detector
US6976204B1 (en) 2001-06-15 2005-12-13 Advanced Micro Devices, Inc. Circuit and method for correcting erroneous data in memory for pipelined reads
DE10128996B4 (de) 2001-06-15 2019-06-13 Robert Bosch Gmbh Verfahren und Vorrichtung zur Überwachung von Speicherzellen eines flüchtigen Datenspeichers
US6851070B1 (en) * 2001-08-13 2005-02-01 Network Appliance, Inc. System and method for managing time-limited long-running operations in a data storage system
EP1438662A2 (de) * 2001-10-11 2004-07-21 Altera Corporation Fehlererkennung an programmierbaren logischen betriebsmitteln
US6751159B2 (en) * 2001-10-26 2004-06-15 Micron Technology, Inc. Memory device operable in either a high-power, full-page size mode or a low-power, reduced-page size mode
US6848063B2 (en) 2001-11-20 2005-01-25 Hewlett-Packard Development Company, L.P. System and method for scrubbing errors in very large memories
US6934903B1 (en) 2001-12-17 2005-08-23 Advanced Micro Devices, Inc. Using microcode to correct ECC errors in a processor
US6718444B1 (en) 2001-12-20 2004-04-06 Advanced Micro Devices, Inc. Read-modify-write for partial writes in a memory controller
US6941493B2 (en) * 2002-02-27 2005-09-06 Sun Microsystems, Inc. Memory subsystem including an error detection mechanism for address and control signals
US20030163769A1 (en) * 2002-02-27 2003-08-28 Sun Microsystems, Inc. Memory module including an error detection mechanism for address and control signals
US6838331B2 (en) * 2002-04-09 2005-01-04 Micron Technology, Inc. Method and system for dynamically operating memory in a power-saving error correction mode
US6751143B2 (en) * 2002-04-11 2004-06-15 Micron Technology, Inc. Method and system for low power refresh of dynamic random access memories
US7171610B2 (en) * 2002-06-12 2007-01-30 International Business Machines Corporation Method, system, and article of manufacture for preventing data loss
US6973613B2 (en) * 2002-06-28 2005-12-06 Sun Microsystems, Inc. Error detection/correction code which detects and corrects component failure and which provides single bit error correction subsequent to component failure
US6976194B2 (en) * 2002-06-28 2005-12-13 Sun Microsystems, Inc. Memory/Transmission medium failure handling controller and method
US6996766B2 (en) * 2002-06-28 2006-02-07 Sun Microsystems, Inc. Error detection/correction code which detects and corrects a first failing component and optionally a second failing component
US20040039873A1 (en) * 2002-08-21 2004-02-26 Hou-Yuan Lin Management system for access control modes of a DRAM module socket
US6996686B2 (en) * 2002-12-23 2006-02-07 Sun Microsystems, Inc. Memory subsystem including memory modules having multiple banks
US7779285B2 (en) * 2003-02-18 2010-08-17 Oracle America, Inc. Memory system including independent isolated power for each memory module
EP1460765A1 (de) * 2003-03-19 2004-09-22 STMicroelectronics S.r.l. Fehlerkorrekturmethode für als Symbolsequenz codierte digitale Daten
KR100543447B1 (ko) * 2003-04-03 2006-01-23 삼성전자주식회사 에러정정기능을 가진 플래쉬메모리장치
US7496822B2 (en) * 2003-05-15 2009-02-24 Texas Instruments Incorporated Apparatus and method for responding to data retention loss in a non-volatile memory unit using error checking and correction techniques
US7530008B2 (en) 2003-08-08 2009-05-05 Sun Microsystems, Inc. Scalable-chip-correct ECC scheme
US7188296B1 (en) 2003-10-30 2007-03-06 Sun Microsystems, Inc. ECC for component failures using Galois fields
US7328377B1 (en) 2004-01-27 2008-02-05 Altera Corporation Error correction for programmable logic integrated circuits
US7341765B2 (en) * 2004-01-27 2008-03-11 Battelle Energy Alliance, Llc Metallic coatings on silicon substrates, and methods of forming metallic coatings on silicon substrates
US7657186B2 (en) * 2004-03-05 2010-02-02 Finisar Corporation Consistency checking over internal information in an optical transceiver
EP1723530A4 (de) * 2004-03-05 2008-12-31 Finisar Corp Hierarchischer und byte-konfigurierbarer speicher in einem optischen sender/empfänger
US7278067B1 (en) * 2004-04-30 2007-10-02 Network Appliance, Inc. Method and an apparatus for aggressively detecting media errors on storage devices with negligible performance impact
US7543176B2 (en) * 2004-12-30 2009-06-02 Finisar Corporation Background consistency checking in an optical transceiver
CN100549986C (zh) * 2005-03-24 2009-10-14 富士通株式会社 信息处理装置
US7350007B2 (en) * 2005-04-05 2008-03-25 Hewlett-Packard Development Company, L.P. Time-interval-based system and method to determine if a device error rate equals or exceeds a threshold error rate
US20060256615A1 (en) * 2005-05-10 2006-11-16 Larson Thane M Horizontal and vertical error correction coding (ECC) system and method
US7698591B2 (en) * 2005-08-26 2010-04-13 International Business Machines Corporation Method and apparatus for ensuring data integrity in redundant mass storage systems
US20070061669A1 (en) * 2005-08-30 2007-03-15 Major Karl L Method, device and system for detecting error correction defects
US20070168754A1 (en) * 2005-12-19 2007-07-19 Xiv Ltd. Method and apparatus for ensuring writing integrity in mass storage systems
US20080183916A1 (en) * 2007-01-30 2008-07-31 Mark David Bellows Using Extreme Data Rate Memory Commands to Scrub and Refresh Double Data Rate Memory
US8042022B2 (en) 2007-03-08 2011-10-18 Micron Technology, Inc. Method, system, and apparatus for distributed decoding during prolonged refresh
JP4994112B2 (ja) * 2007-05-22 2012-08-08 ルネサスエレクトロニクス株式会社 半導体集積回路装置およびメモリ制御方法
US8099632B2 (en) * 2007-08-08 2012-01-17 Sandisk Technologies Inc. Urgency and time window manipulation to accommodate unpredictable memory operations
US20100106904A1 (en) * 2008-10-23 2010-04-29 Dell Products L.P. Shadow raid cache memory
US8589726B2 (en) 2011-09-01 2013-11-19 Infinidat Ltd. System and method for uncovering data errors
US9183078B1 (en) * 2012-04-10 2015-11-10 Marvell International Ltd. Providing error checking and correcting (ECC) capability for memory
WO2015147829A1 (en) * 2014-03-27 2015-10-01 Siemens Aktiengesellschaft System and method of run-time continuous memory check for embedded systems
US9600189B2 (en) 2014-06-11 2017-03-21 International Business Machines Corporation Bank-level fault management in a memory system
US9703630B2 (en) 2015-06-08 2017-07-11 International Business Machines Corporation Selective error coding
US10628248B2 (en) 2016-03-15 2020-04-21 International Business Machines Corporation Autonomous dram scrub and error counting
US10956345B2 (en) * 2016-04-01 2021-03-23 Intel Corporation Enhanced directed system management interrupt mechanism
KR20180060084A (ko) 2016-11-28 2018-06-07 삼성전자주식회사 반도체 메모리 장치의 스크러빙 컨트롤러, 반도체 메모리 장치 및 반도체 메모리 장치의 동작 방법
US11288120B2 (en) 2020-03-13 2022-03-29 Marvell Asia Pte Ltd. Circuit and method for soft-error protection in operation of ECC and register

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4535455A (en) * 1983-03-11 1985-08-13 At&T Bell Laboratories Correction and monitoring of transient errors in a memory system
US5263032A (en) * 1991-06-27 1993-11-16 Digital Equipment Corporation Computer system operation with corrected read data function
US5490155A (en) * 1992-10-02 1996-02-06 Compaq Computer Corp. Error correction system for n bits using error correcting code designed for fewer than n bits
US5367689A (en) * 1992-10-02 1994-11-22 Compaq Computer Corporation Apparatus for strictly ordered input/output operations for interrupt system integrity
US5717903A (en) * 1995-05-15 1998-02-10 Compaq Computer Corporation Method and appartus for emulating a peripheral device to allow device driver development before availability of the peripheral device

Also Published As

Publication number Publication date
EP0986783A4 (de) 2000-05-10
DE69719086D1 (de) 2003-03-20
WO1998029811A1 (en) 1998-07-09
EP0986783B1 (de) 2003-02-12
EP0986783A1 (de) 2000-03-22
US5978952A (en) 1999-11-02
AU5512398A (en) 1998-07-31

Similar Documents

Publication Publication Date Title
DE69719086T2 (de) Zeitverteilte entfernung von fehlerkorrekturcodes (ecc) zur korrektur von speicherfehlern
DE69425600T2 (de) System und Verfahren zur Erkennung und Korrektur von Speicherfehlern
DE3485766T2 (de) Nach dem pipelineverfahren arbeitende fehlerkorrektur.
DE3128740C2 (de)
DE19882853B3 (de) Verfahren und Steuereinrichtung zum automatischen Korrigieren von in einem Speichersubsystem erfassten Fehlern und Computersystem, das eine solche Steuereinrichtung aufweist
DE69221045T2 (de) Verfahren und Gerät zur programmierbaren Speicherssteuerung mit Fehlerregelung und Prüffunktionen
DE69903629T2 (de) Prüfung der funktionsfähigkeit eines gerätetreibers
DE60030876T2 (de) Bereichsverwaltung eines nichtflüchtigen Speichers mit hoher Kapazität
DE69612752T2 (de) Speicheranordnung
DE69528443T2 (de) Betriebsverfahren einer Speicherplattenanordnung
DE69117371T2 (de) Hintergrund-Plattenoberflächenanalyse durch eine Steuerung für intelligente Speicherplattenanordnung ausgeführt
DE69626054T2 (de) Verfahren zur Priorisierung und Behandlung von Fehlern in einem Rechnersystem
DE69130279T2 (de) On-line Wiederherstellung eines fehlerhaften redundanten Gruppensystems
DE102006002526B4 (de) Steuervorrichtung für eine Solid-State-Disk und Verfahren zum Betreiben derselben
DE69033262T2 (de) EEPROM-Karte mit Austauch von fehlerhaften Speicherzellen und Zwischenspeicher
DE69126416T2 (de) Speichergerätanordnungsarchitektur mit Copyback-Cachespeicher
DE60024564T2 (de) Datenschaltung mit einem nicht flüchtigen Speicher und mit einer fehlerkorrigierenden Schaltung
US4617660A (en) Faulty-memory processing method and apparatus
DE69434473T2 (de) Prozessorschnittstellenchip für Doppelmikroprozessorsystem
DE2328869C2 (de) Verfahren und Schaltungsanordnung zum Betreiben eines digitalen Speichersystems
DE68923863T2 (de) Ein-/Ausgabecachespeicherung.
DE69126057T2 (de) Ein Informationsverarbeitungsgerät mit einer Fehlerprüf- und Korrekturschaltung
DE3876459T2 (de) Speicher und deren pruefung.
DE2619159A1 (de) Fehlererkennungs- und korrektureinrichtung
DE19914730A1 (de) Verfahren zum Verhindern eines Datenübertrags an beschädigte Adressen

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8328 Change in the person/name/address of the agent

Representative=s name: HEYER, V., DIPL.-PHYS. DR.RER.NAT., PAT.-ANW., 806