DE69924012T2 - Verfahren und vorrichtung für speicherdata-fehlerdetektion und speichermodul-fehlerdetektion - Google Patents
Verfahren und vorrichtung für speicherdata-fehlerdetektion und speichermodul-fehlerdetektion Download PDFInfo
- Publication number
- DE69924012T2 DE69924012T2 DE69924012T DE69924012T DE69924012T2 DE 69924012 T2 DE69924012 T2 DE 69924012T2 DE 69924012 T DE69924012 T DE 69924012T DE 69924012 T DE69924012 T DE 69924012T DE 69924012 T2 DE69924012 T2 DE 69924012T2
- Authority
- DE
- Germany
- Prior art keywords
- memory
- error
- data
- codeword
- check code
- 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/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/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/1036—Unidirectional errors
Description
- GEBIET DER ERFINDUNG
- Die vorliegende Erfindung betrifft ein Verfahren und eine Einrichtung zum Detektieren von Fehlern im Datenausgang eines Speichers relativ zum Dateneingang zu dem Speicher und eines Geräteversagens in dem Speicher.
- HINTERGRUND DER ERFINDUNG
- Einrichtungen zum Detektieren von Fehlern im Datenausgang eines Speichers relativ zum Dateneingang zu dem Speicher sind denjenigen mit üblichen Kenntnissen auf dem Fachgebiet wohlbekannt. Eine solche Fehlerdetektierungseinrichtung, zum Beispiel, macht Gebrauch von Fehlerkorrekturcodes, welche dazu vorgesehen sind, Fehler im Datenausgang eines Speichers relativ zum Dateneingang zu dem Speicher zu detektieren und die Korrektur von bestimmten Arten von Fehlern in den Daten zu gestatten. Diese Fehlerkorrekturcodes arbeiten, zum Beispiel, durch Konstruieren der dem Speicher einzugebenden Daten entsprechend vordefinierten Konstruktionsregeln. Somit können Abweichungen von dieser Konstruktion im Datenausgang von dem Speicher automatisch als Fehler detektiert werden und der detektierte Fehler kann korrigiert werden.
- Einige dieser Fehlerkorrekturcodes sind dazu vorgesehen zum Beispiel, die von einer bestimmten Art von Speicher am wahrscheinlichsten verursachten Fehler leicht zu detektieren und deren Korrektur zu gestatten. Zum Beispiel, mag es bekannt sein, dass eine bestimmte Art von Speicher häufige Ein-Bit-Fehler verursachen kann, die für eine nicht richtig gesetzte Zelle bezeichnend sind. Somit, zum Beispiel, würde es wünschenswert sein, bei dieser Art von Speicher einen Fehlerkorrekturcode zu verwenden, welcher Ein-Bit-Fehler leicht detektieren kann.
- Fehlerkorrekturcodes sind insbesondere wünschenswert, zum Beispiel, bei Arbeitsplatzcomputern und Servern, wo Anwendungen ausgeführt werden, durch welche eine höhere Zuverlässigkeit erwünscht ist. Personal Computer, die normalerweise bei solchen Anwendungen nicht verwendet werden, machen normalerweise keinen Gebrauch von Fehlerkorrekturcodes. Bei Arbeitsplatzcomputern und Servern, zum Beispiel, ist es nicht nur wünschenswert, Fehler zu detektieren, welche von einer nicht richtig gesetzten Zelle resultieren, sondern es ist auch wünschenswert Fehler zu erfassen, die aus Geräteversagen resultieren können. Es ist weiterhin wünschenswert, zum Beispiel, die Einrichtung, die versagt hat, zu isolieren, so dass sie ersetzt oder repariert werden kann, wenn möglich.
- Die US-A-4103823 betrifft ein Paritätsprüfschema zum Detektieren von Speicherfeld-Wortzeilenfehlern, wodurch alle die Daten- und Paritätsbits von einer Anzahl von dieselbe Wortzeile teilenden Bytes fälschlich den Wert "1" oder den Wert "0" annehmen. Beim Speichern von Daten in dem Feld werden die jedes Byte umfassenden Daten- und Paritätsbits direkt gespeichert mit der Ausnahme des Paritätsbits eines ausgewählten der Bytes, wobei dieses Paritätsbit vor dem Speichern durch eine monostabile Inverterschaltung invertiert wird. Dieselbe monostabile Inverterschaltung invertiert auch das Paritätsbit des ausgewählten Byte nach dem Lesen der gespeicherten Daten.
- Wohlbekannte Fehlerdetektierungseinrichtungen, welche von Fehlerkorrekturcodes Gebrauch machen, leiden verschiedene Nachteile insofern, dass sie nicht dazu vorgesehen wurden, sowohl Fehler im Datenausgang eines Speichers zu erfassen und anzuzeigen, wenn ein Fehler von einem Geräteversagen in dem Speicher resultiert sein mag. Weiterhin gestatten solche Fehlerdetektierungseinrichtungen, wenn sie von bekannten Fehlerkorrekturcodes Gebrauch machen, nicht die Isolierung der Einrichtung, die veragt haben mag.
- ZUSAMMENFASSUNG DER ERFINDUNG
- Durch die vorliegende Erfindung, wie sie durch die Ansprache definiert ist, wird ein Verfahren und eine Einrichtung zum Detektieren von Fehlern im Datenausgang eines Speichers und eines Geräteversagens in dem Speicher geschaffen. Bei der vorliegenden Erfindung wird ein Prüfcode erzeugt basierend auf dem Speicher einzugebenden Daten. Der Prüfcode ist gültig, wenn er gleich Null ist. Der Prüfcode wird invertiert und in Ansprache auf ein Schreibkommando zusammen mit den invertierten Daten als Codewort zu dem Speicher eingegeben. Das Codewort wird, einschließlich des invertierten Prüfcodes, in Ansprache auf ein Lesekommando von dem Speicher ausgegeben. Das einschließlich des invertierten Prüfcodes von dem Speicher ausgegebene Codewort kann anzeigen, ob eine Einrichtung in dem Speicher versagt hat. Der in dem von dem Speicher ausgegebenen Codewort enthaltene invertierte Prüfcode wird zurückinvertiert, um den Prüfcode zu erhalten. Information wird basierend auf den Daten und dem den Prüfcode enthaltenden Codewort erzeugt. Die Information zeigt an, ob der Datenausgang von dem Speicher einen Fehler enthält.
- KURZBESCHREIBUNG DER ZEICHNUNGEN
- Der Schutzbereich der vorliegenden Erfindung wird aus der folgenden detaillierten Beschreibung ersichtlich, wenn in Verbindung mit den begleitenden Zeichnungen genommen, und eine solche detaillierte Beschreibung und spezielle Beispiele werden, während sie Ausführungsbeispiele der Erfindung bezeichnen, nur zum Zwecke der Darstellung gegeben, weil verschiedene Änderungen und Modifikationen innerhalb des Schutzbereichs der Ansprüche demjenigen mit Kenntnissen auf dem Fachgebiet aus dieser detaillierten Beschreibung ersichtlich sein werden, wobei:
-
1 ein schematisches Diagramm ist, welches Hintergrundinformation für die vorliegende Erfindung beschreibt. - DETAILLIERTE BESCHREIBUNG
-
1 ist ein beispielhaftes Diagramm eines Ausführungsbeispiels der vorliegenden Erfindung. Wie dargestellt, zum Beispiel, in1 , werden in einem Speicher10 zu speichernde Daten einer Prüfcodeerzeugungsschaltung11 eingegeben, welche einen Prüfcode basierend auf den Daten erzeugt. Der Prüfcode kann ein beliebiger oder eine Kombination von zahlreichen Fehlerkorrekturcodes sein, einschließlich derjenigen, die einem mit üblichen Kenntnissen auf dem Fachgebiet bekannt sind, wobei der Prüfcode gültig ist, wenn er gleich Null ist (z.B., alle Bit sind "0"), obwohl die Erfindung in ihrem Schutzbereich in dieser Hinsicht nicht beschränkt ist. Der Prüfcode könnte, zum Beispiel, ein wohlbekannter Linearcode mit Generator- und Paritäts-Matrizen sein. Der Prüfcode von der Prüfcodeerzeugungsschaltung11 wird durch einen Inverter12 invertiert. Der invertierte Prüfcode bildet zusammen mit den dem Speicher10 einzugebenden Daten ein Codewort, welches dann in den Speicher10 eingegeben, geschrieben, gespeichert etc. wird. - Ein Ausführungsbeispiel der Erfindung sieht vor, dass das die dem Speicher
10 einzugebenden Daten und den Prüfcode von der Prüfcodeerzeugungsschaltung11 enthaltende Codewort invertiert und dann dem Speicher10 eingegeben wird. Solch ein Ausführungsbeispiel ist möglich, zum Beispiel, wenn bestimmte Arten von Prüfcodes verwendet werden. Solch ein Code, zum Beispiel, würde bewirken, dass das Codewort gültig ist für alle anderen Werte als lauter Einsen, weil das Invertieren eines Codewortes von lauter Einsen bewirken würde, dass lauter Nullen in dem Speicher gespeichert werden. Ein Ausgeben von lauter Nullen von dem Speicher beeinflusst die Detektierungsoperation des Geräteversagens der vorliegenden Erfindung. Somit wird, wenn von einem solchen Ausführungsbeispiel Gebrauch gemacht wird, ein Prüfcode ausgewählt, welcher als gültiger Prüfcode nicht lauter Einsen aufweist. - Es sollte erwähnt werden, dass die vorliegende Erfindung dazu vorgesehen ist, in einem System zu arbeiten, bei dem der mit dem Speicher
10 verbundene Datenbus einen Logikwert von Null hat, wenn er nicht getrieben ist, obwohl die Erfindung in ihrem Schutzbereich diesbezüglich nicht beschränkt ist. Somit würde eine Einrichtung, zum Beispiel, in dem Speicher10 , die versagt haben mag, den Bus nicht treiben, wodurch lauter Nullen ausgegeben werden. Auch die Breite von dem Datenbus, zum Beispiel, kann dieselbe Breite sein wie der Ausgang des Speichers10 . Dass die Breite von dem Datenbus dieselbe ist wie die Breite vom Ausgang des Speichers ist in hohem Maße wünschenswert, weil es eine leichte Identifikation der ausgefallenen Einrichtung gestattet, obwohl die Erfindung diesbezüglich in ihrem Schutzbereich nicht beschränkt ist. - Das Codewort würde bei seiner normalen Verwendung Nullen als einen gültigen Code haben, obwohl die Erfindung diesbezüglich in ihrem Schutzbereich nicht beschränkt ist. Somit, zum Beispiel, wenn ein Prüfcode von Null (z.B., alle Bits sind "0") durch die Prüfcodeerzeugungsschaltung
11 erzeugt wird, dann würde der Inverter12 den Prüfcode auf Eins invertieren (z.B., alle Bits sind "1"). Dementsprechend würde der Prüfcode, wenn er mit dem Codewort kombiniert ist, bewirken, dass das Codewort nicht lauter Nullen als gültiges Codewort aufweist, insbesondere wenn, zum Beispiel, die in dem Codewort enthaltenen Daten lauter Nullen enthalten. - Der invertierte Prüfcode wird zusammen mit den invertierten Daten als ein Codewort im Speicher
10 gespeichert. Das Codewort wird in dem Speicher10 gespeichert, zum Beispiel, in Ansprache auf ein Schreibkommando, das das Schreiben, Eingeben oder Speichern des Codewortes im Speicher10 anfordert. - Der Speicher
10 liest in Ansprache auf, zum Beispiel, ein Lesekommando, das ein Lesen oder eine Ausgabe eines Codewortes anfordert, das gewünschte Codewort aus dem Speicher10 . Das vom Speicher10 ausgegebene Codewort, wie oben beschrieben, enthält invertiert den Prüfcode und die Daten. Die invertierten Daten und der invertierte Prüfcode, die in dem von dem Speicher ausgegebenen Codewort enthalten sind, werden zurückinvertiert, um die Daten und den Prüfcode zu erhalten. - Der Prüfcode und die Daten werden als Codewort einer Syndromberechnungsschaltung
14 eingegeben, welche Gruppen von Daten (Bits) detektiert, durch Berechnungen analysiert und/oder identifiziert, die ein Fehler in dem Datenausgang vom Speicher10 bezeichnendes spezielles Muster aufweisen. Die Syndromberechnungsschaltung14 erzeugt auf der Grundlage des oben beschriebenen an den Daten und dem Prüfcode durchgeführten Detektierungs-, Analyse- und/oder Identifikationsvorgangs einen Syndromwert, welcher eine Information liefert, die anzeigt, ob ein Fehler in den Daten enthalten ist. Die Syndromberechnungsschaltung14 kann, zum Beispiel, den Syndromwert berechnen durch eine Summe der Produkte des Codewortes, einschließlich der Daten und des Prüfcodes vom Inverter13 , und den Daten. Somit, zum Beispiel, könnte die Syndromberechnungsschaltung14 , zum Beispiel, eine oder eine Anzahl von XOR-Schaltungen enthalten, welche die Summe der Produktoperationen durchführen können. - Der Syndromwert zeigt auch an, ob der Fehler einer von einer Anzahl von verschiedenen Arten von Fehlern ist, (z.B., Ein-Bit-Fehler, Zwei-Bit-Fehler, Drei-Bit-Fehler, Vier-Bit-Fehler etc.), und den Ort eines solchen Fehlers in den Daten. Der Syndromwert wird einer Fehlerkorrekturschaltung
15 eingegeben, welcher die in dem vom Speicher10 ausgegebenen Codewort enthaltenen Daten eingegeben werden. Der Syndromwert wird auch einer Fehlerklassifikationsschaltung16 zugeführt, welche den Syndromwert auswertet, um zu bestimmen, ob der angezeigte Fehler einer von einer Anzahl von verschiedenen Klassen von Fehlern ist. Mindestens eine der verschiedenen Klassen von Fehlern enthält einen Fehler, der korrigierbar ist. Ein korrigierbarer Fehler könnte, zum Beispiel, ein Ein-Bit-Fehler, ein Zwei-Bit-Fehler, ein Drei-Bit-Fehler oder ein Vier-Bit-Fehler und so weiter sein. Somit liefert, zum Beispiel, der Syndromwert eine Information zu der Fehlerkorrekturschaltung15 , die anzeigt, ob der Fehler von einer korrigierbaren Fehlerklasse ist. - Die Fehlerkorrekturschaltung
15 korrigiert, basierend auf dem Syndromwert von der Syndromberechnungsschaltung14 und der Anzeige, ob der Fehler von einer korrigierbaren Fehlerklasse ist, von der Fehlerklassifikationsschaltung16 , den Fehler in den Daten. Die korrigierten Daten werden dann von der Fehlerkorrekturschaltung15 ausgegeben und als die angeforderten Daten geliefert. - Die Fehlerklassifikationsschaltung
16 liefert auch eine die Klasse des Fehlers und den Typ des Fehlers betreffende Information zu einer Fehlerprotokollierungs- und Meldeschaltung17 , welche eine solche Information protokolliert, die, zum Beispiel, eine Information über die Zeit des Auftretens des Fehlers, die Einrichtung, in welcher der Fehler aufgetreten ist, etc. protokolliert. Die Fehlerprotokollierungs- und Meldeschaltung17 meldet eine solche Information auf Anforderung oder periodisch. Die Information kann an einem späteren Punkt verwendet werden, zum Beispiel, durch einen Techniker, um die Schaltung, in welcher der Fehler aufgetreten ist, durch Austauschen oder Reparieren zu korrigieren. Die Information kann auch in einer Pair- and Spare-Reparaturstrategie verwendet werden. - Weiterhin würde, wie oben beschrieben, eine Ausgabe von Null als Codewort vom Speicher
10 anzeigen, dass eine Einrichtung im Speicher10 versagt hat. Zum Beispiel werden die Daten "00000000" mit einem Prüfcode von "0" im Speicher10 auf Grund der Invertierung durch den Invertierer12 als Codewort "111111111" gespeichert. Weiterhin werden, zum Beispiel, die Daten "11111111" mit dem Prüfcode "1" auf Grund der Invertierung durch den Invertierer12 im Speicher als Codewort "000000000" gespeichert. Dementsprechend würden gültige Codeworte, in anderen Worten Codeworte, die kein Geräteversagen im Speicher10 anzeigen, vom Speicher10 ausgegeben als eine Kombination von Einsen und Nullen (d.h., "1"en, "0"en). Daher würde ein vom Speicher10 ausgelesenes Codewort von, zum Beispiel, "000000000" anzeigen, dass die Einrichtung im Speicher10 , von welcher das Codewort erhalten wurde, versagt hat. Dies kann angenommen werden, weil gültige Codeworte eine Kombination von Einsen und Nullen enthalten und lauter Nullen in einem Codewort bezeichnend sind für den nicht-getriebenen Zustand von dem mit dem Speicher10 verbundenen Datenbus. - Basierend auf dem obigen wird das vom Speicher
10 ausgegebene Codewort einer Nullwert-Erfassungsschaltung18 eingegeben, um zu detektieren, ob das Codewort Null ist (z.B., alle Bits sind "0"). Wenn das Codewort Null ist, dann hat eine Einrichtung in dem Speicher10 versagt und eine Anzeige darüber wird von der Nullwerterfassungsschaltung18 zu der Fehlerprotokollierungs- und Meldeschaltung17 geliefert. Die Fehlerprotokollierungs- und Meldeschaltung17 protokolliert eine die Einrichtung, die versagt hat, betreffende Information und meldet dieselbe, um eine Korrektur oder einen Austausch zu gestatten. - Daher kann, entsprechend dem obigen ein Geräteversagen in dem Speicher
10 erfasst und isoliert werden, ohne die Funktionalität des Prüfcodes beim Detektieren von Fehlern in dem Datenausgang von dem Speicher zu beeinflussen. In der Tat kann der Prüfcode für zwei Zwecke verwendet werden, zum Detektieren von Fehlern im Datenausgang des Speichers und zum Detektieren von Geräteversagen in dem Speicher. - Diese Erfindung kann arbeiten mit einem Speicher, wo die Daten, wenn sie vom Speicher
10 ausgegeben werden, auf dem Datenbus zeitgemultiplext werden. Solch ein System existiert, zum Beispiel, bei einem System vom Rambus-Typ (Rambus ist ein registriertes Warenzeichen der Rambus Corp.). Bei einem Rambus-Typ-System wird ein schmaler Bus geschaffen, welcher verwendet wird zum Übertragen von Daten zwischen dem Prozessor und allen anderen an den Bus angeschlossenen Einrichtungen. Der Bus kann zum Beispiel, 16 oder 18 Bit breit sein. Daher, wenn ein Datensignal übertragen wird, mag es 16 oder 18 Bit breit sein. Wenn der Datenbus 18 Bit breit ist, mögen 16 Bit für die Daten verwendet werden und 2 Bit mögen für Fehlerkorrekturcodes verwendet werden. Der Bus kann, zum Beispiel, seriell mit einer Anzahl von RDRAM-Einrichtungen (RDRAM ist ein registriertes Warenzeichen von Rambus Corp.) verbunden sein, von denen jede eine Bitbreite von 18 Bit hat. - Bei einem Rambus-Typ-System, zum Beispiel, werden Daten- und Steuersignale in Paketen übertragen. Somit, zum Beispiel, wenn ein RDRAM vom Speicher auszulesen ist, sendet eine Steuerschaltung ein Reihensteuerpaket zu dem Bus, welches die spezielle Einrichtung und die Reihe der Einrichtung identifiziert, auf welche zugegriffen werden soll, sowie ein Spaltensteuerpaket, welches die spezielle Einrichtung und die Spalte identifiziert, auf welche zugegriffen werden soll. In Ansprache auf das Reihensteuerpaket und das Spaltensteuerpaket gestattet das identifizierte RDRAM im Speicher einen Zugriff auf die bezeichnete spezielle Reihe und Spalte, und die Leseoperation der Daten an diesem Ort wird ausgeführt. Die Daten werden dann auf dem Bus von dem RDRAM als ein Datenpaket übertragen. Weiterhin, zum Beispiel, wenn in ein RDRAM geschrieben werden soll, sendet die Steuerschaltung zu dem Bus ein Reihensteuerpaket, welches die spezielle Einrichtung und die Reihe der Einrichtung identifiziert, auf die zugegriffen werden soll, sowie ein Spaltensteuerpaket, welches die spezielle Einrichtung und die Spalte identifiziert, auf die zugegriffen werden soll. Die Steuerschaltung sendet auch ein Datenpaket der Daten, die in das identifizierte RDRAM geschrieben werden sollen. In Ansprache auf das Reihensteuerpaket und das Spaltensteuerpaket gestattet das identifizierte RDRAM einen Zugriff auf die bezeichnete spezielle Reihe und Spalte und die Schreiboperation der Daten in dem Datenpaket zu dem bezeichneten Ort wird ausgeführt.
- Das von dem RDRAM in Ansprache auf, zum Beispiel, ein Lesekommando übertragene Datenpaket enthält Codeworte, ebenso wie die oben beschriebenen, wie sie vom Speicher
10 ausgegeben werden. Jedes Codewort enthält invertierte Daten und einen invertierten Prüfcode, welche einem Invertierer, der Syndromberechnungsschaltung14 , der Fehlerkorrekturschaltung15 und der Nullwerterfassungsschaltung18 zugeführt werden, um Fehler in den Daten basierend auf den Daten und dem Codewort, sowie ein Geräteversagen im Speicher basierend auf dem Codewort zu detektieren. Das in Ansprache auf, zum Beispiel, ein Schreibkommando zu dem RDRAM übertragene Datenpaket enthält Codeworte, ebenso wie die oben beschriebenen, wie sie zu dem Speicher10 eingegeben werden. Jedes Codewort enthält invertiert die Daten und den Prüfcode, ausgegeben von dem Invertierer zur Eingabe zum Speicher. Somit kann das Rambus-Typ-System eine ähnliche Schaltung enthalten, zum Beispiel, wie in1 dargestellt, mit der Ausnahme, dass der Speicher10 , zum Beispiel, ein RDRAM enthalten kann. Die Nullwerterfassungsschaltung18 ist besonders nützlich bei einem Rambus-Typ-System, als dass jedes vom Speicher10 übertragene Datenpaket, zum Beispiel, Daten von einer RDRAM-Einrichtung enthalten kann. Somit würde eine Erfassung von Nullen in dem Datenpaket ein Versagen der RDRAM-Einrichtung anzeigen, welche angenommener Weise das Datenpaket übertragen hat. - Daher kann ein Geräteversagen in einem Rambus-Typ-System leicht detektiert und isoliert werden. Weiterhin wird die Funktionalität des Prüfcodes erhalten, als dass dieser immer noch die Detektierung von Fehlern im Datenausgang von den RDRAM- Einrichtungen und Korrekturen der Fehler basierend auf der Detektierung erlaubt.
- Während die vorliegende Erfindung im Detail beschrieben worden ist, ist sie nicht auf solche Details beschränkt, weil viele für diejenigen mit üblichen Kenntnissen auf dem Fachgebiet, die im Genuss dieser Erfindung stehen, erkennbare Änderungen und Modifikationen an der Erfindung vorgenommen werden können, ohne den Schutzbereich der Erfindung zu verlassen, und alle solchen Modifikationen, wie sie für jemanden mit Kenntnissen auf dem Fachgebiet ersichtlich sein würden, und/oder die als technologische Entwicklungen möglich werden, als im Schutzbereich der folgenden Ansprüche enthalten beabsichtigt sind.
Claims (18)
1. Verfahren zum Detektieren von Fehlern im Datenaussgangssignal
eines Speichers und eines Geräteversagens
in dem Speicher (10 ), enthaltend:
Erzeugen eines Prüfcodes basierend
auf dem Speicher einzugebenden Daten;
Invertieren des Prüfcodes und
der Daten, wobei die invertierten Daten und der invertierte Prüfcode ein Codewort
bilden, welches in Ansprache auf jeweilige Schreib- oder Lesekommandos
eingegeben wird zu oder ausgegeben wird von dem Speicher (10 ),
wobei der Prüfcode
von einer Art ist, die bewirkt, dass das Codewort einen anderen
Wert als lauter Nullen hat, wenn es gültig ist, und das von dem Speicher
ausgegebene Codewort, wenn es gleich Null ist, anzeigt, dass ein
Fehler in den Daten aufgetreten ist und daher angenommen wird, dass
mindestens eines aus einer Anzahl von Geräten, einschließlich des
Speichers (10 ) versagt hat;
Invertieren des von dem
Speicher ausgegebenen Codeworts, um die Daten und den Prüfcode zu
erhalten; und
Erzeugen einer Information, die anzeigt, ob die
Daten einen Fehler enthalten, auf den Daten und dem Prüfcode basierend.
Verfahren nach Anspruch 1, wobei die erzeugte Information
verwendet wird, um den Fehler in den Daten zu korrigieren.
Verfahren nach Anspruch 1, wobei die Information
einen Syndrom-Wert enthält,
welcher basierend auf einer Summe der Produkte von den Daten und
dem Codewort, die von dem Speicher ausgegeben werden, bestimmt wird.
Verfahren nach Anspruch 3, wobei der Syndrom-Wert
anzeigt, ob die von dem Speicher (10 ) ausgegebenen Daten
einen aus einer Anzahl von verschiedenen Arten von Fehlern enthalten.
Verfahren nach Anspruch 1, wobei die Information
anzeigt, ob die in dem von dem Speicher (10 ) ausgegebenen
Codewort enthaltenen Daten einen aus einer Anzahl von verschiedenen
Arten von Fehlern enthalten.
Verfahren nach Anspruch 4 oder 5, wobei die verschiedenen
Arten von Fehlern mindestens einen Ein-Bit-Fehler enthalten.
Verfahren nach Anspruch 4 oder 5, wobei die verschiedenen
Arten von Fehlern verschiedene Klassen von Fehlern repräsentieren,
und wobei mindestens eine von den verschiedenen Klassen von Fehlern
korrigierbar ist.
Verfahren nach Anspruch 7 in Abhängigkeit von Anspruch 5, weiterhin
enthaltend:
Protokollieren jedes durch die Information angezeigten
Fehlers entsprechend einer Klasse des Fehlers; und
Melden des
Fehlers und der Klasse des Fehlers.
Verfahren nach Anspruch 7 in Abhängigkeit von Anspruch 6, weiterhin
enthaltend:
Protokollieren jedes von dem Syndrom angezeigten Fehlers
entsprechend einer Klasse des Fehlers; und
Melden des Fehlers
und der Klasse des Fehlers.
Einrichtung zum Detektieren von Fehlern in von einem
Speicher (10 ) ausgegebenen Daten und eines Geräteversagens
in dem Speicher, enthaltend:
eine erste Generatorschaltung
(11 ), welche auf dem Speicher (10 ) einzugebenden
Daten basierend einen Prüfcode
erzeugt;
einen ersten Inverter (12 ), welcher die Daten
und den Prüfcode
invertiert, wobei die invertierten Daten und der Prüfcode ein
Codewort bilden, welches in Ansprache auf jeweilige Schreib- oder
Lesekommandos eingegeben wird zu oder ausgegeben wird von dem Speicher
(10 ), wobei der Prüfcode
von einer Art ist, die bewirkt, dass das Codewort einen anderen
Wert als lauter Nullen hat, wenn es gültig ist;
einen zweiten
Inverter (13 ), welcher das von dem Speicher ausgegebene
Codewort invertiert, um die Daten und den Prüfcode zu erhalten;
eine
zweite Generatorschaltung, welche auf den Daten und dem Prüfcode basierend
eine Information erzeugt, die anzeigt, ob die Daten einen Fehler
enthalten; und
eine Nullwert-Erfassungsschaltung, welche detektiert,
ob das von dem Speicher ausgegebene Codewort gleich Null ist, und,
wenn das Codewort gleich Null ist, anzeigt, dass ein Fehler in den
Daten aufgetreten ist, und daher angenommen wird, dass mindestens
eines aus einer Anzahl von Geräten,
einschließlich
des Speichers, versagt hat.
Einrichtung nach Anspruch 10, weiterhin enthaltend:
eine
Fehlerkorrekturschaltung (15 ), welche den Fehler in den
Daten basierend auf der Information von der zweiten Generatorschaltung
korrigiert.
Einrichtung nach Anspruch 10, wobei die zweite Generatorschaltung
eine Syndrom-Berechnungsschaltung (14 ) ist, welche basierend
auf einer Summe der Produkte der Daten und des Codeworts von dem
Speicher (10 ) einen Syndrom-Wert als die besagte Information
berechnet.
Einrichtung nach Anspruch 12, wobei der von der
Syndrom-Berechnungsschaltung
(14 ) berechnete Syndrom-Wert anzeigt, ob die Daten von
dem Speicher (10 ) einen aus einer Anzahl von verschiedenen
Arten von Fehlern enthalten.
Einrichtung nach Anspruch 10, wobei die Information
anzeigt, ob die Daten in dem Codewort von dem Speicher (10 )
einen aus einer Anzahl von verschiedenen Arten von Fehlern enthalten.
Einrichtung nach Anspruch 13 oder 14, wobei die
verschiedenen Arten von Fehlern zumindest einen Ein-Bit-Fehler enthalten.
Einrichtung nach Anspruch 13 oder 14, weiterhin
enthaltend:
eine Fehlerklassifizierungsschaltung (16 ),
welche die verschiedenen Arten von Fehlern in verschiedene Klassen
von Fehlern klassifiziert, wobei mindestens eine der verschiedenen
Klassen von Fehlern korrigierbar ist.
Einrichtung nach Anspruch 16 in Abhängigkeit
von Anspruch 14, weiterhin enthaltend:
eine Fehlerprotokollierungs-
und Meldeschaltung (17 ), welche jeden durch die Information
angezeigten Fehler entsprechend einer Klasse des Fehlers protokolliert
und den Fehler und die Klasse des Fehlers meldet.
Einrichtung nach Anspruch 16 in Abhängigkeit
von Anspruch 13, weiterhin enthaltend:
eine Fehlerprotokollierungs-
und Meldeschaltung (17 ), welche jeden durch das Syndrom
angezeigten Fehler entsprechend einer Klasse des Fehlers protokolliert
und den Fehler und die Klasse des Fehlers meldet.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/217,814 US6519735B1 (en) | 1998-12-22 | 1998-12-22 | Method and apparatus for detecting errors in data output from memory and a device failure in the memory |
US217814 | 1998-12-22 | ||
PCT/US1999/030170 WO2000038064A1 (en) | 1998-12-22 | 1999-12-22 | A method and apparatus for detecting errors in data output from memory and a device failure in the memory |
Publications (2)
Publication Number | Publication Date |
---|---|
DE69924012D1 DE69924012D1 (de) | 2005-04-07 |
DE69924012T2 true DE69924012T2 (de) | 2006-05-11 |
Family
ID=22812641
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE69924012T Expired - Lifetime DE69924012T2 (de) | 1998-12-22 | 1999-12-22 | Verfahren und vorrichtung für speicherdata-fehlerdetektion und speichermodul-fehlerdetektion |
Country Status (6)
Country | Link |
---|---|
US (1) | US6519735B1 (de) |
EP (1) | EP1141830B1 (de) |
AT (1) | ATE290238T1 (de) |
DE (1) | DE69924012T2 (de) |
TW (1) | TW459175B (de) |
WO (1) | WO2000038064A1 (de) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7085971B2 (en) * | 2001-10-25 | 2006-08-01 | International Business Machines Corporation | ECC based system and method for repairing failed memory elements |
US7380167B2 (en) * | 2003-02-13 | 2008-05-27 | Dell Products L.P. | Method and system for verifying information handling system hardware component failure diagnosis |
DE102004030139A1 (de) * | 2004-06-22 | 2006-01-19 | Infineon Technologies Ag | Verfahren zur Steuerung von Befehlssequenzen und Befehlssteuereinrichtung zur Durchführung des Verfahrens |
JP2008165983A (ja) * | 2005-02-28 | 2008-07-17 | Toyota Motor Corp | 燃料電池状態モニタ装置及び方法 |
TWI292866B (en) * | 2005-09-09 | 2008-01-21 | Via Tech Inc | Method for calculatng an error detection code |
US7627804B2 (en) * | 2006-06-30 | 2009-12-01 | Intel Corporation | Memory device with speculative commands to memory core |
US7721181B2 (en) * | 2007-07-11 | 2010-05-18 | Macronix International Co., Ltd. | Memory and 1-bit error checking method thereof |
JP2009049642A (ja) * | 2007-08-17 | 2009-03-05 | Omron Corp | 伝送システム |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4072853A (en) * | 1976-09-29 | 1978-02-07 | Honeywell Information Systems Inc. | Apparatus and method for storing parity encoded data from a plurality of input/output sources |
US4103823A (en) * | 1976-12-20 | 1978-08-01 | International Business Machines Corporation | Parity checking scheme for detecting word line failure in multiple byte arrays |
US4358848A (en) * | 1980-11-14 | 1982-11-09 | International Business Machines Corporation | Dual function ECC system with block check byte |
US4866604A (en) * | 1981-10-01 | 1989-09-12 | Stratus Computer, Inc. | Digital data processing apparatus with pipelined memory cycles |
DE3482509D1 (de) * | 1984-12-28 | 1990-07-19 | Ibm | Geraet zum korrigieren von fehlern in speichern. |
US4964130A (en) * | 1988-12-21 | 1990-10-16 | Bull Hn Information Systems Inc. | System for determining status of errors in a memory subsystem |
US5502732A (en) * | 1993-09-20 | 1996-03-26 | International Business Machines Corporation | Method for testing ECC logic |
JPH09233054A (ja) * | 1996-02-27 | 1997-09-05 | Oki Electric Ind Co Ltd | 復号装置 |
-
1998
- 1998-12-22 US US09/217,814 patent/US6519735B1/en not_active Expired - Lifetime
-
1999
- 1999-12-14 TW TW088121864A patent/TW459175B/zh not_active IP Right Cessation
- 1999-12-22 WO PCT/US1999/030170 patent/WO2000038064A1/en active IP Right Grant
- 1999-12-22 DE DE69924012T patent/DE69924012T2/de not_active Expired - Lifetime
- 1999-12-22 EP EP99966405A patent/EP1141830B1/de not_active Expired - Lifetime
- 1999-12-22 AT AT99966405T patent/ATE290238T1/de not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
DE69924012D1 (de) | 2005-04-07 |
WO2000038064A9 (en) | 2000-12-07 |
EP1141830A1 (de) | 2001-10-10 |
ATE290238T1 (de) | 2005-03-15 |
TW459175B (en) | 2001-10-11 |
US6519735B1 (en) | 2003-02-11 |
WO2000038064A1 (en) | 2000-06-29 |
EP1141830B1 (de) | 2005-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2060643C3 (de) | Schaltungsanordnung zur Korrektur von Einzelfehlern | |
DE2554945C2 (de) | Verfahren und Schaltungsanordnung zur Erkennung und Korrektur von Fehlern in gespeicherten Datenwörtern | |
EP0922254B1 (de) | Fehlererkennung in einem speichersystem | |
DE3111447C2 (de) | ||
DE2942998A1 (de) | Fehler-korrektur- und -erkennungs- anordnung | |
DE3702006A1 (de) | Speichervorrichtung | |
DE2456709C2 (de) | Schaltungsanordnung zur Fehlererkennung und -korrektur | |
DE19829234A1 (de) | Prüfverfahren für einen Halbleiter-Datenspeicher und Halbleiter-Datenspeicher | |
DE2450468C2 (de) | Fehlerkorrekturanordnung für einen Speicher | |
DE60002872T2 (de) | System und verfahren zur verbesserung des multibit fehlerschutzes in einer computerspeichereinheit | |
DE69924012T2 (de) | Verfahren und vorrichtung für speicherdata-fehlerdetektion und speichermodul-fehlerdetektion | |
DE1250163B (de) | Einrichtung zur Paritätsprüfung von Speicherworten | |
DE60215687T2 (de) | Fehlerkorrektion von multibit-baueinheiten mit unbeschränkter erkennung von doppelfehlern | |
DE2752377A1 (de) | Fehlerpruefeinrichtung | |
DE2655653C2 (de) | Anordnung zur Feststellung der richtigen Zuordnung von Adresse und Speicherwort in einem wortorganisierten Datenspeicher | |
DE2549392C3 (de) | Verfahren zur Erhöhung der Zuverlässigkeit von integrierten Speicherbausteinen und zur Verbesserung der Ausbeute von nach außen hin fehlerfrei erscheinenden Speicherbausteinen bei ihrer Herstellung | |
EP0922253B1 (de) | Fehlererkennung in einem speichersystem | |
DE102006019426B4 (de) | Speichermodulsteuerung, Speichersteuerung und entsprechende Speicheranordnung sowie Verfahren zur Fehlerkorrektur | |
EP0127118A1 (de) | Speichersteueranordnung, insbesondere für fehlertolerantes Fernsprech-Vermittlungssystem | |
EP0353660B1 (de) | Verfahren zur Fehlersicherung in Speichersystemen von Datenverarbeitungsanlagen, insbesondere Fernsprechvermittlungsanlagen | |
EP1966696A1 (de) | Verfahren zur erkennung einer versorgungsunterbrechung in einem datenspeicher und zur wiederherstellung des datenspeichers | |
DE3433679C2 (de) | ||
DE4300025C1 (de) | Verfahren und Einrichtung zur fehlercodierenden Datenübertragung | |
CH674689A5 (de) | ||
DE19635237A1 (de) | Speichersystem |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition |