DE69719086T2 - Zeitverteilte entfernung von fehlerkorrekturcodes (ecc) zur korrektur von speicherfehlern - Google Patents
Zeitverteilte entfernung von fehlerkorrekturcodes (ecc) zur korrektur von speicherfehlernInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1048—Adding 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/106—Correcting systematically all correctable errors, i.e. scrubbing
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/52—Protection of memory contents; Detection of errors in memory contents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1012—Adding 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/1028—Adjacent errors, e.g. error in n-bit (n>1) wide storage units, i.e. package error
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding 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/1048—Adding 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/1052—Bypassing or disabling error detection or correction
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0409—Online 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
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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).
- 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.
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)
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)
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 |
-
1996
- 1996-12-31 US US08/777,252 patent/US5978952A/en not_active Expired - Lifetime
-
1997
- 1997-11-24 DE DE69719086T patent/DE69719086T2/de not_active Expired - Lifetime
- 1997-11-24 EP EP97951493A patent/EP0986783B1/de not_active Expired - Lifetime
- 1997-11-24 AU AU55123/98A patent/AU5512398A/en not_active Abandoned
- 1997-11-24 WO PCT/US1997/021904 patent/WO1998029811A1/en active IP Right Grant
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 |