DE69924012T2 - Verfahren und vorrichtung für speicherdata-fehlerdetektion und speichermodul-fehlerdetektion - Google Patents

Verfahren und vorrichtung für speicherdata-fehlerdetektion und speichermodul-fehlerdetektion Download PDF

Info

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
Application number
DE69924012T
Other languages
English (en)
Other versions
DE69924012D1 (de
Inventor
J. Thomas HOLMAN
D. Peter MACWILLIAMS
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
Publication of DE69924012D1 publication Critical patent/DE69924012D1/de
Application granted granted Critical
Publication of DE69924012T2 publication Critical patent/DE69924012T2/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/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/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/1036Unidirectional 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, in 1, werden in einem Speicher 10 zu speichernde Daten einer Prüfcodeerzeugungsschaltung 11 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üfcodeerzeugungsschaltung 11 wird durch einen Inverter 12 invertiert. Der invertierte Prüfcode bildet zusammen mit den dem Speicher 10 einzugebenden Daten ein Codewort, welches dann in den Speicher 10 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üfcodeerzeugungsschaltung 11 enthaltende Codewort invertiert und dann dem Speicher 10 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 Speicher 10, 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 Speichers 10. 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 Inverter 12 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 Speicher 10 gespeichert, zum Beispiel, in Ansprache auf ein Schreibkommando, das das Schreiben, Eingeben oder Speichern des Codewortes im Speicher 10 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 Speicher 10. Das vom Speicher 10 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 Speicher 10 bezeichnendes spezielles Muster aufweisen. Die Syndromberechnungsschaltung 14 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 Syndromberechnungsschaltung 14 kann, zum Beispiel, den Syndromwert berechnen durch eine Summe der Produkte des Codewortes, einschließlich der Daten und des Prüfcodes vom Inverter 13, und den Daten. Somit, zum Beispiel, könnte die Syndromberechnungsschaltung 14, 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 Speicher 10 ausgegebenen Codewort enthaltenen Daten eingegeben werden. Der Syndromwert wird auch einer Fehlerklassifikationsschaltung 16 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 Fehlerkorrekturschaltung 15, die anzeigt, ob der Fehler von einer korrigierbaren Fehlerklasse ist.
  • Die Fehlerkorrekturschaltung 15 korrigiert, basierend auf dem Syndromwert von der Syndromberechnungsschaltung 14 und der Anzeige, ob der Fehler von einer korrigierbaren Fehlerklasse ist, von der Fehlerklassifikationsschaltung 16, den Fehler in den Daten. Die korrigierten Daten werden dann von der Fehlerkorrekturschaltung 15 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 Meldeschaltung 17, 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 Meldeschaltung 17 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 Speicher 10 versagt hat. Zum Beispiel werden die Daten "00000000" mit einem Prüfcode von "0" im Speicher 10 auf Grund der Invertierung durch den Invertierer 12 als Codewort "111111111" gespeichert. Weiterhin werden, zum Beispiel, die Daten "11111111" mit dem Prüfcode "1" auf Grund der Invertierung durch den Invertierer 12 im Speicher als Codewort "000000000" gespeichert. Dementsprechend würden gültige Codeworte, in anderen Worten Codeworte, die kein Geräteversagen im Speicher 10 anzeigen, vom Speicher 10 ausgegeben als eine Kombination von Einsen und Nullen (d.h., "1"en, "0"en). Daher würde ein vom Speicher 10 ausgelesenes Codewort von, zum Beispiel, "000000000" anzeigen, dass die Einrichtung im Speicher 10, 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 Speicher 10 verbundenen Datenbus.
  • Basierend auf dem obigen wird das vom Speicher 10 ausgegebene Codewort einer Nullwert-Erfassungsschaltung 18 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 Speicher 10 versagt und eine Anzeige darüber wird von der Nullwerterfassungsschaltung 18 zu der Fehlerprotokollierungs- und Meldeschaltung 17 geliefert. Die Fehlerprotokollierungs- und Meldeschaltung 17 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 Syndromberechnungsschaltung 14, der Fehlerkorrekturschaltung 15 und der Nullwerterfassungsschaltung 18 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 Speicher 10 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 in 1 dargestellt, mit der Ausnahme, dass der Speicher 10, zum Beispiel, ein RDRAM enthalten kann. Die Nullwerterfassungsschaltung 18 ist besonders nützlich bei einem Rambus-Typ-System, als dass jedes vom Speicher 10 ü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.
DE69924012T 1998-12-22 1999-12-22 Verfahren und vorrichtung für speicherdata-fehlerdetektion und speichermodul-fehlerdetektion Expired - Lifetime DE69924012T2 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 復号装置

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