DE68920523T2 - Verfahren zur Korrektur von Mehr-Byte-Fehlern. - Google Patents
Verfahren zur Korrektur von Mehr-Byte-Fehlern.Info
- Publication number
- DE68920523T2 DE68920523T2 DE68920523T DE68920523T DE68920523T2 DE 68920523 T2 DE68920523 T2 DE 68920523T2 DE 68920523 T DE68920523 T DE 68920523T DE 68920523 T DE68920523 T DE 68920523T DE 68920523 T2 DE68920523 T2 DE 68920523T2
- Authority
- DE
- Germany
- Prior art keywords
- bytes
- errors
- parity
- error
- syndromes
- 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 - Fee Related
Links
- 238000000034 method Methods 0.000 title claims description 24
- 208000011580 syndromic disease Diseases 0.000 claims description 50
- 238000012937 correction Methods 0.000 claims description 45
- 238000012545 processing Methods 0.000 claims description 6
- 230000004075 alteration Effects 0.000 claims description 5
- 238000013507 mapping Methods 0.000 claims description 5
- 238000001514 detection method Methods 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/18—Error detection or correction; Testing, e.g. of drop-outs
- G11B20/1866—Error detection or correction; Testing, e.g. of drop-outs by interleaving
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Detection And Correction Of Errors (AREA)
- Error Detection And Correction (AREA)
Description
- Diese Erfindung bezieht sich auf Methoden zur Korrektur von Mehr-Byte-Fehlern in von einem magnetischen Medium gelesenen Daten, kompatibel mit Daten, die in einer Zähl-Schlüssel- Daten- (CKD) oder Festblock- (FB) -umgebung mit Satzzwischenräumen aufgezeichnet werden, und realisierbar in einem Ausführungsbeispiel, in dem konventionelle Fehler unter Verwendung zweistufiger Fehlerkorrektur-Code (ECC)-Syndrome korrigiert werden können, sowie auch gelegentlich auftretende lange Ketten aufeinanderfolgender Fehler aufgrund einer größeren Signalstörung.
- Sie kann konventionelle Fehler in von einem magnetischen Medium gelesenen Daten durch Verwendung eines Zeigers, mit Hilfe von Prüf-Bytes und ein oder mehreren Paritätsprüfungen korrigieren. Diese Fehlererkennungs- und -korrekturfunktionen mit Fehler-Korrektur-Code (ECC) werden sowohl bei den Schreib- als auch bei den Leseoperationen durchgeführt. Diese Methoden zur Durchführung der Fehlerkorrektur variieren, und zwar abhängig davon, wo sich der Fehler befindet, von der verfügbaren Korrekturleistung der Hardware, von den Fehlerkorrektur-Prozeduren des Systems und ähnlichen Faktoren.
- Die Plattenspeicher der Modelle J und K des IBM 3380 verwenden einen zweistufigen ECC zur Fehlerkorrektur und sind in der Lage, einzelne Fehlerketten von zwei aufeinanderfolgenden Bytes (16 Bits) in jedem von der Platte gelesenen Unterblock zu korrigieren, und jeden Fehler mit vier aufeinanderfolgenden Bytes (32 Bits) in einem Unterblock eines Blocks. Es kommt jedoch vor, daß eine Störung und die daraus resultierende Fehlerkette 16 Bytes oder mehr lang sind. Das heißt, sie ist länger als bei einer "konventionellen" Fehlerkette und im typischen Fall zu lang, als daß die Korrekturleistung des bisher verfügbaren zweistufigen ECC ausreichen würde, es sei denn, man erstellt einen sehr kostspieliger Entwurf.
- Zwar ist die IBM-3850-Massenspeichereinrichtung in der Lage, lange Fehlerketten in von einem Magnetband gelesenen Daten zu korrigieren; doch können mit der verwendeten Methode und Einrichtung weder konventionelle noch lange Fehlerketten in einem Plattenspeicher mit einem zweistufigen ECC korrigiert werden.
- In EP 0,240,363 wird eine Methode zur Korrektur von Fehlerketten beschrieben, die in produktcodierten Daten auftreten können. Der Produkt-Code wird erzeugt, indem die Daten als eine zweidimensionale Matrix betrachtet werden, bei der über jeder Reihe und jeder Spalte Fehlerkorrektur-Codes definiert sind, wobei die entsprechenden erzeugten Prüf-Bytes in der Matrix enthalten sind. Die Daten werden als sequentieller Strom gespeichert, die Prüf-Bytes für diese Fehlerkorrektur- Codes sind mit den Daten verschachtelt. In der zur Korrektur von Fehlerketten beschriebenen Technik werden die Reihen-Fehlerkorrektur-Codes verwendet, um das Auftreten einer Fehlerkette zu identifizieren, und die Spalten-Fehlerkorrektur- Codes zur Korrektur der betroffenen Daten-Bytes.
- Es besteht Bedarf nach einer Anordnung, die in der Lage ist, sowohl konventionelle Fehler als auch lange Fehlerketten von 16 oder mehr aufeinanderfolgenden Bytes aufgrund einer größeren Signalstörung beim Lesen von Daten von einem magnetischen Medium, wie zum Beispiel einer Magnetplatte, zu korrigieren.
- Die vorliegende Erfindung stellt eine Methode zur Korrektur von Mehr-Byte-Fehlern in Daten bereit, die von einem magnetischen Medium wiedergewonnen werden, auf dem Daten in Blöcken von variabler Länge aufgezeichnet werden, die Unterblöcke von Daten-Bytes enthalten, und, für jeden Unterblock, Prüf-Bytes, die einen Fehlerkorrektur-Code (ECC) bereitstellen, für den beim Lesen ECC-Syndrome erzeugt werden, wobei die Methode folgende Schritte umfaßt: (a) am Ende jedes Blocks, Schreiben einer Sequenz von N sequentiellen Paritäts-Prüf-Bytes, die eine verschachtelte Paritätsprüfung der Daten und des ECC darstellen; (b) beim Lesen, nach der Erzeugung der ECC-Syndrome, Erzeugen von Paritäts-Syndromen aus den gelesenen Daten-, ECC- und Paritäts-Prüf-Bytes; die Methode ist hierbei durch folgende Schritte gekennzeichnet: (c) bei Schritt (a), Schreiben der Paritäts-Prüf-Bytes in die Zwischenräume benachbarter Blöcke; (d) in Antwort auf eine Bedingung mit langer Fehlerkette, Erzeugen eines Zeigers zum ersten von N aufeinanderfolgenden Bytes in einem Block, die aufgrund der langen Fehlerkette potentiell fehlerhaft sind; (e) unter Verwendung aller ECC-Syndrome, die nicht von den vom Zeiger identifizierten N Bytes betroffen sind, Korrektur von korrigierbaren Fehlern in allen Unterblöcken, die nicht von diesen identifizierten Bytes betroffen sind; (f) Anpassen der Paritäts-Syndrome entsprechend der so korrigierten Fehler; (g) unter Verwendung der angepaßten Paritäts-Syndrome, Korrektur der Fehler in den vom Zeiger angezeigten N Bytes; (h) Anpassen aller nicht verwendeten ECC-Syndrome entsprechend der Fehler, die durch die angepaßten Paritäts-Syndrome korrigiert wurden; und (i) unter Verwendung der angepaßten ECC-Syndrome, Korrektur aller dann noch verbleibenden korrigierbaren Fehler.
- Zu diesem Zweck werden Ausführungsbeispiele der Erfindung beschrieben, die nicht nur konventionelle, von der zweistufigen ECC abgedeckte Fehler korrigieren können, sondern auch eine lange Kette von Fehlern von bis zu N aufeinanderfolgenden Bytes in einem Magnetplattenmedium, auf dem Daten in Form von Unterblöcken in einem Block von variabler oder fester Länge aufgezeichnet werden. Diese Blöcke umfassen Datenbytes und Prüfbytes und enthalten einen ECC, für den während des Lesens ECC-Syndrome erzeugt werden. Am Ende jedes Blocks wird eine Sequenz von N sequentiellen Paritäts-Prüfbytes geschrieben.
- Beim Lesen werden dann nach Erzeugen der ECC-Syndrome Paritäts-Syndrome erzeugt, indem die aus den Datenbytes berechneten Paritäts-Prüfbytes und die gelesenen Prüfbytes mit den geschriebenen Paritäts-Prüfbytes verglichen werden. In Antwort auf eine lange Fehlerkette wird ein Zeiger zu dem ersten von N aufeinanderfolgenden Bytes in einem Block erzeugt, welches von dem Fehler beeinflußt sein könnte. Dann werden diejenigen ECC-Syndrome, die nicht von den vom Zeiger identifizierten N Bytes abhängen, verwendet, um alle korrigierbaren Fehler zu korrigieren. Anschließend werden die Paritäts-Syndrome entsprechend der so korrigierten Fehler angepaßt. Die angepaßten Paritäts-Syndrome werden dann zur Korrektur korrigierbarer Fehler in den vom Zeiger angezeigten N Bytes verwendet. Alle nicht verwendeten ECC-Syndrome werden entsprechend der so durch die angepaßten Paritäts-Syndrome korrigierten Fehler angepaßt; anschließend werden die angepaßten ECC-Syndrome zur Korrektur aller dann noch verbleibenden korrigierbaren Fehler verwendet.
- Die vorliegende Erfindung soll weiter anhand eines Beispiels unter Bezugnahme auf ein Ausführungsbeispiel beschrieben werden, wie es in den beiliegenden Zeichnungen erläutert wird; es zeigt:
- Fig. 1 die Erläuterung eines zweistufigen ECC-Formats;
- Fig. 2 die Berechnung der Paritäts-Bytes aus den aufeinanderfolgenden angeforderten Sätzen von N verschachtelten Datenbytes (wobei für N 16 angenommen wird) und Prüfbytes in einem Unterblock, um N Paritäts-Gruppen zu bilden;
- Fig. 3 die Erläuterung eines Ausführungsbeispiels der Logik zur Erzeugung der Paritäts-Bytes beim Schreiben und der Paritäts-Byte-Syndrome beim Lesen; und
- Figs. 4h, 4B, 4C und 4D die Erläuterung verschiedener Fehlerbedingungen, unter denen abgebildete Fehler korrigierbar sind.
- Eine Methode zur Implementierung der Erfindung wird gezeigt, die auf ein zweistufiges ECC-System des in den US-Patentschriften 4,525,838, 4,703,485 und 4,706,250 beschriebenen Typs angewendet wird, und Verbesserungen hierzu darstellt. In diesen Patentschriften wird ein zweistufiges Mehr-Byte-Fehlerkorrektursystem beschrieben, das bis zu t&sub1; Fehler in jedem Unterblock eines Blocks von Daten und t&sub2; Fehler im Block korrigieren kann, wobei t&sub2;> t&sub1; ist.
- In dem zweistufigen ECC-System, wie es in der US-Patentschrift 4,706,250 beschrieben und in Fig. 1 erläutert wird, werden Daten in Blöcken von variabler (oder fester) Länge aufgezeichnet, wobei jeder Block eine Vielzahl von Unterblöcken umfaßt, vorzugsweise mit derselben Länge, möglicherweise mit Ausnahme des letzten. Jeder Unterblock umfaßt eine variable (oder feste) Anzahl von Datenbytes und sechs Unterblock-Prüfbytes S für Fehlerkorrekturen auf der ersten Stufe. Am Ende des letzten Unterblocks in dem Block befinden sich vier CRC-Bytes C zur Datenintegritätsprüfung, gefolgt von zwei Block-Prüfbytes B für die Fehlerkorrektur auf der zweiten Stufe.
- Gemäß der beschriebenen Anordnung wird am Ende jedes Blocks in den Zwischenraum zwischen diesem und dem folgenden Block, dem Blockzwischenraum, eine Sequenz von N Paritäts-Prüfbytes P geschrieben. Das Paritäts-Byte P&sub0; folgt unmittelbar auf das letzte Byte des Bereichs, nämlich B&sub1;, dem letzten Block-Prüfbyte. Wie in Fig. 2 erläutert, führen diese Paritäts-Prüfbytes P bei N aufeinanderfolgenden angeforderten Gruppen von Datenbytes, Prüfbytes und CRC-Bytes eine verschachtelte Paritätsprüfung durch, das heißt, alle Bytes in jeder angeforderten Gruppe liegen N Bytes auseinander und alle Bytes in dem Block werden gezählt, indem die Verschiebung im Zähl/Schlüssel/Daten-Bereich (CKD), an den die Paritäts-Bytes angehängt werden, bestimmt wird. Die Zahl N wird vorgewählt und entspricht der längsten erwarteten Kette aufeinanderfolgender Fehler, so daß eine einzelne lange Fehlerkette höchstens ein Byte in jeder der N Paritäts-Gruppen betreffen kann. Wie in Paritätsprüfungen üblich, werden alle Bytes einer exklusiven ODER-Operation (XOR) unterzogen. In dieser Spezifikation und in den Ansprüchen ist der Begriff "Byte" so definiert, daß ein Byte ein oder mehrere Bits umfaßt.
- In Antwort auf eine Fehlerkette von bis zu N aufeinanderfolgenden Bytes wird ein Zeiger erzeugt, um auf das erste von N aufeinanderfolgenden Bytes in einem Block zu zeigen, das von der langen Fehlerkette hätte betroffen sein können. Der Zeiger kann nach Auftreten des Ereignisses anzeigen. Wenn zum Beispiel erkannt werden könnte, daß eine lange Fehlerkette nicht mehr als zehn Byte-Zeiten früher begonnen hatte, dann würde die entsprechende früheste Byte-Anzeige zehn Bytes vor dem zum Zeitpunkt der Fehlererkennung gelesenen Byte erfolgen.
- In Fig. 2 wird aus Darstellungsgründen angenommen, daß N 16 beträgt, und daß die Paritätsbytes P&sub0; bis P&sub1;&sub5; daher in richtiger Reihenfolge unmittelbar im Anschluß an das letzte Byte (Block-Prüfbyte B&sub1;) des Blocks geschrieben werden. Die Paritäts-Gruppe, die P&sub0; enthält, ist somit das Ergebnis der exklusiven ODER-Operation mit den Bytes D&sub2;, D&sub1;&sub8;, So des Unterblocks X und den Bytes D&sub1;&sub0; und D&sub2;&sub6; des Unterblocks Y; und die Paritäts-Gruppe, die P&sub1;&sub1; enthält, ist das Ergebnis der exklusiven ODER-Operation mit den Bytes D&sub1;&sub3;, D&sub2;&sub9; des Unterblocks X und den Bytes D&sub5;, D&sub2;&sub1; des Unterblocks Y und C&sub1;.
- Fig. 3 beschreibt ein Exklusiv-ODER-Gatter (XOR) 20, ein Paritäts-Schieberegister 21 und die Multiplexer 22 und 23, die jeweils ein Byte breit sind. Das Register 21 hat eine Länge von N Stufen (wobei, wie bereits erwähnt, angenommen wird, daß N=16 beträgt).
- Nehmen wir zunächst an, daß das Schieberegister 21 in der herkömmlichen Weise auf Null zurückgesetzt wurde. Um auf ein magnetisches Medium zu schreiben, werden die Multiplexer 22 und 23 veranlaßt, die Schreibdaten-Leitung W mit XOR 20 zu verbinden und alle Bytes BL jedes Blocks über die Dateneingangsleitung DI und den Multiplexer 23 zum Ausgang durchzulassen, damit sie auf einer ausgewählten Spur eines Direktzugriffsspeichers (nicht dargestellt) geschrieben werden können. Somit enthält der Dateneingang alle Datenbytes, gefolgt von den entsprechenden Prüfbytes bis B&sub1;, wie in Fig. 1 dargestellt. Am Ende des Dateneingangs werden die Multiplexer 22 und 23 veranlaßt, die Leitung φ mit XOR 20 zu verbinden und die N Paritätsbytes P&sub0; bis P&sub1;&sub5; vom Paritäts-Schieberegister 21 über die Leitung SR zum Ausgang durchzulassen.
- Um Daten von dem magnetischen Medium zu lesen und die Paritäts-Byte-Syndrome zu berechnen, werden die Multiplexer 22 und 23 veranlaßt, die Lesedatenleitung R mit der Dateneingangsleitung DI zu verbinden und alle Bytes BL jedes Blocks über die Leitung DI zum Ausgang durchzulassen. Daraufhin werden die Multiplexer 22 und 23 veranlaßt, die N Paritäts-Bytes P&sub0; bis P&sub1;&sub5; von Leitung R zu XOR 20 durchzulassen und den Ausgang von XOR 20 über die Leitung X zum Ausgang durchzulassen.
- Der daraus resultierende Ausgang sind die BL Bytes des Blocks mit den 16 angehängten Paritäts-Byte-Syndromen.
- Nehmen wir an, daß im Betrieb während der Leseoperation Fehler erkannt werden, die jedoch keine langen Fehlerketten sind. Unter dieser Bedingung wird die Fehlerkorrektur und Fehlerüberprüfung konventionell ausgeführt, wie in den zitierten Schriften nach dem bisherigen Stand der Technik erläutert, unter Verwendung der Unterblockprüfungs-, Blockprüfungs- und CRC-Syndrome. Auf der Unterblockstufe können bis zu t&sub1; Fehler korrigiert und t&sub1; + c Fehler erkannt werden. Danach sind auf der Blockstufe bis zu t&sub2; Fehler in jedem der Unterblöcke des Blocks korrigierbar.
- Wenn mehr Fehler vorhanden sind, als korrigiert werden können, wird die Korrektur aufgegeben und der Fehler wird als unkorrigierbarer Fehler behandelt. Eine solche Struktur und Betriebsweise sind nicht Teil der vorliegenden Erfindung.
- Man beachte, daß bei Nichtvorhandensein einer langen Fehlerkette die Paritätsbytes nicht gelesen werden müssen. Unter normalen Bedingungen können daher, wenn keine langen Fehlerketten auftreten, die Vorbereitungen für die Verarbeitung des nächsten Blocks gestartet werden, ohne die Paritätsbytes zu lesen. Konventionell erfolgt diese Verarbeitung, wenn der Lesekopf über den Blockzwischenraum fährt - den Bereich, der zu diesem Zweck ohne Aufzeichnung bleibt. Gemäß einem Merkmal dieser Erfindung werden die Paritätsbytes in diesem Blockzwischenraum aufgezeichnet und werden nur gelesen, wenn eine Korrektur langer Fehlerketten gefordert ist. Ein solcher Schutz gegen lange Fehlerketten wird erreicht, ohne die Länge des Mediums, das für die Prüfbytes und den Blockzwischenraum benötigt wird, zu erhöhen.
- Nehmen wir nun an, daß während der Leseoperation Fehler erkannt werden und daß der Zeiger eine lange Fehlerkette anzeigt. Die Unterblockprüfungs-, Blockprüfungs- und CRC-Syndrome werden wie bei Nichtvorhandensein einer langen Fehlerkette berechnet. Außerdem werden die Paritätsbytes gelesen und die Paritäts-Byte-Syndrome werden, wie oben beschrieben, berechnet.
- Entsprechend der beschriebenen Anordnung würden die folgenden Schritte ausgeführt, wenn das früheste Byte, bei dem der Fehler begonnen haben könnte (und somit das früheste Byte, welches von dem Fehler betroffen sein könnte), sich bei Verschiebung Z befände (siehe Fig. 4A):
- (1) Die Korrektur auf der ersten Stufe wird, wie erforderlich, auf alle Unterblöcke angewendet, die von der langen Fehlerkette nicht betroffen sein konnten; das heißt, Unterblöcke, die in dem Verschiebebereich Z bis Z+N keine Daten- oder Prüfbytes haben. Diese Korrektur erfolgt entsprechend dem zitierten bisherigen Stand der Technik.
- (2) Da die CRC- und Blockprüfbyte-Syndrome aus fehlerhaften Daten errechnet wurden, müssen sie für jede in dieser Weise durchgeführte Korrektur auf der ersten Stufe angepaßt werden. Diese Anpassung wird in dem zitierten bisherigen Stand der Technik beschrieben. Da auch die Paritäts-Byte-Syndrome aus fehlerhaften Daten errechnet wurden, müssen sie für jede so durchgeführte Korrektur auf der ersten Stufe angepaßt werden. Diese Anpassung erfolgt durch exklusives ODERn der Fehlermuster für jedes korrigierte Byte in das Paritäts-Byte-Syndrom für die Paritäts-Gruppe, zu der das korrigierte Byte gehört.
- (3) Lange Fehlerketten werden anschließend wie folgt korrigiert: Die Paritäts-Byte-Syndrome werden den Datenbytes und Prüfbytes, welche die N Bytes nach dem Byte bei Verschiebung Z abdecken, überlagert. Dieser Verschiebebereich wird als der Paritäts-Überlagerungsbereich ODER bezeichnet (Fig. 4h) und hat eine Länge von N Bytes. Jedes Byte in diesem Bereich wird durch eine exklusive ODER-Operation des entsprechenden überlagerten Paritäts- Byte-Syndroms korrigiert. Die entsprechenden Prüfbyte-, Blockprüfbyte- und CRC-Syndrome des Unterblocks werden für diese Veränderungen in der gleichen Weise angepaßt, wie sie für Veränderungen angepaßt wurden, die sich aus Korrekturen von Fehlern auf der ersten Stufe ergaben.
- (4) Als nächstes werden die von den langen Fehlerketten betroffenen Unterblöcke durch den zweistufigen ECC-Algorithmus verarbeitet. Man beachte, daß alle konventionellen Fehler in diesen Unterblöcken, die außerhalb des Paritäts-Überlagerungsbereichs liegen, zu den Paritäts-Byte-Syndromen beigetragen haben. Wenn die Paritäts-Byte-Syndrome in Schritt 3 überlagert worden wären, hätten diese Fehler in den Paritäts-Byte-Syndromen Fehler in dem Paritäts-Überlagerungsbereich ODER als Bilder der konventionellen Fehler erzeugt. Die Figs. 4A-4D erläutern verschiedene Fehlerbedingungen, unter denen abgebildete Fehler korrigierbar sind:
- Fig. 4h zeigt einen konventionellen Fehler e in dem betroffenen Unterblock, der zu einem Paritäts-Fehler in der entsprechenden Paritäts-Gruppe wird und zu einem Abbildungsfehler e' in dem Langkettenbereich im Überlagerungsbereich ODER. Dieses Fehlerpaar, der konventionelle Fehler e und sein Abbildungsfehler e' im selben Unterblock, ist durch Decodierung auf der zweiten Stufe in der zweistufigen ECC korrigierbar.
- Fig. 4B zeigt den Fall, bei dem der konventionelle Fehler e und sein Abbildungsfehler e' in benachbarten Unterblöcken erscheinen. In diesem Fall wird das Fehlerpaar durch Verarbeitung der beiden benachbarten Unterblöcke auf der ersten Stufe korrigiert.
- Fig. 40 zeigt den Fall, bei dem die konventionellen Fehler e&sub1; und e'&sub2; in den Paritäts-Bytes als Abbildungsfehler e'&sub1; und e'&sub2; im selben Unterblock erscheinen. Diese Fehler werden durch Decodierung des betroffenen Unterblocks durch Korrektur auf der zweiten Stufe korrigiert.
- Fig. 4D zeigt den Fall, bei dem die konventionellen Fehler e&sub1; und e&sub2; in den Paritäts-Bytes als Abbildungsfehler e'&sub1; und e'&sub2; in den benachbarten Unterblöcken erscheinen. Diese Fehler werden durch Decodierung der betroffenen Unterblöcke durch Korrektur auf der ersten Stufe korrigiert.
- Im Betrieb wird die oben beschriebene Korrektur auf der ersten Stufe iterativ auf die von der langen Kette betroffenen Unterblöcke angewendet, bis jeder Block korrigiert ist, oder bis festgestellt wurde, daß er auf der ersten Stufe nicht korrigierbar ist. Wenn ein Unterblock nach dieser Verarbeitung unkorrigiert bleibt, können die Blockprüfbytes verwendet und es kann, wie in dem zitierten bisherigen Stand der Technik beschrieben, eine Korrektur auf der zweiten Stufe angewendet werden.
- (5) Nachdem alle Korrekturen angewandt wurden, wird die Korrektur anhand des Zustands der angepaßten CRC-Syndrome überprüft, wie in dem zitierten bisherigen Stand der Technik beschrieben.
- Die Fehlerkorrekturleistung des Algorithmus in dieser Erfindung kann allgemein wie folgt zusammengefaßt werden:
- A. Wenn eine Korrektur von langen Fehlerketten nicht erforderlich ist, ist die Korrekturleistung des zweistufigen Codes nicht betroffen.
- B. Wenn eine Korrektur von langen Fehlerketten erforderlich ist, können die Fehler korrigiert werden, wenn folgende Bedingungen erfüllt sind:
- Die lange Kette ist nicht länger als der Paritäts-Byte-Überlagerungsbereich.
- (ii) Die konventionellen Fehler in jedem Unterblock liegen bei der zweistufigen ECC innerhalb der Leistungsmöglichkeit der ersten Stufe.
- (iii) Wenn die lange Fehlerkette mehr als einen Unterblock betrifft, hat nur einer dieser von der langen Fehlerkette betroffenen Unterblöcke konventionelle Fehler.
- (iv) Wenn die Paritäts-Bytes von konventionellen Fehlern betroffen sind, haben die von der langen Fehlerkette betroffenen Unterblöcke keine konventionellen Fehler.
- Man beachte, daß N die Länge eines Unterblocks überschreiten kann, ohne die Korrekturleistung zu beeinträchtigen.
- Es sollte außerdem beachtet werden, daß die in den zitierten Patentschriften beschriebene zweistufige ECC-Struktur auf eine Verschachtelungs-Struktur mit N Wegen (anstelle einer Zwei-Wege-Struktur) für die Verschachtelung von Codewords umstrukturiert werden könnte; diese Lösung würde sich jedoch aufgrund der Kosten für die Korrektur von bis zu N aufeinanderfolgenden fehlerhaften Bytes in einer langen Fehlerkette verbieten. Bei der beschriebenen Anordnung jedoch, bei der N Paritäts-Bytes angehängt werden, können bis zu N aufeinanderfolgende fehlerhafte Bytes kostengünstiger und schneller korrigiert werden; außerdem kann der ausgewählte Wert für N ohne eine wesentliche Erhöhung der Komplexität und der Kosten erhöht werden.
- Zwar wurde die Erfindung in Verbindung mit einem bevorzugten Ausführungsbeispiel der Erfindung beschrieben; es können jedoch die oben genannten und andere Veränderungen mit der hier beschriebenen Anordnung durchgeführt werden. Das dargestellte husführungsbeispiel dient daher nur der Erläuterung und die Erfindung ist nicht als hierauf beschränkt zu betrachten, mit Ausnahme der in den Ansprüchen enthaltenen Spezifikationen.
Claims (10)
1. Eine Methode zur Korrektur von Mehr-Byte-Fehlern in
Daten, die von einem magnetischen Medium wiedergewonnen
werden, auf dem Daten in Blöcken von variabler Länge
aufgezeichnet werden, welche Unterblöcke (X, X+1) von
Datenbytes (D) enthalten und, für jeden Unterblock,
Prüfbytes (S), die einen Fehlerkorrektur-Code (ECC)
bereitstellen, für den während der Leseoperation
ECC-Syndrome erzeugt werden, wobei die Methode folgende
Schritte umfaßt:
(a) am Ende jedes Blocks, Schreiben einer Sequenz von
N sequentiellen Paritäts-Prüfbytes (P&sub0; - P&sub1;&sub5;)
die eine verschachtelte Paritäts-Prüfung der
Daten und des ECC darstellen;
(b) während der Leseoperation, nach der Erzeugung der
ECC-Syndrome, Erzeugen von Paritäts-Syndromen aus
den gelesenen Daten-, ECC- und
Paritäts-Prüfbytes;
wobei die Methode durch folgende Schritte
gekennzeichnet ist:
(c) bei Schritt (a), Schreiben der Paritäts-Prüfbytes
in die Zwischenräume zwischen benachbarten
Blöcken;
(d) in Antwort auf eine Bedingung mit langer
Fehlerkette, Erzeugen eines Zeigers zum ersten (Z) von
N aufeinanderfolgenden Bytes in einem Block, die
aufgrund der langen Fehlerkette potentiell
fehlerhaft sind;
(e) unter Verwendung aller ECC-Syndrome, die nicht
von den vom Zeiger identifizierten N Bytes
betroffen sind, Korrigieren von korrigierbaren
Fehlern in allen Unterblöcken, die nicht von diesen
identifizierten Bytes betroffen sind;
(f) Anpassen der Paritäts-Syndrome entsprechend den
so korrigierten Fehlern;
(g) unter Verwendung der angepaßten
Paritäts-Syndrome, Korrigieren der Fehler in den N Bytes, die
von dem Zeiger angezeigt wurden;
(h) Anpassen aller nicht verwendeten ECC-Syndrome
entsprechend den Fehlern, die durch die
angepaßten Paritäts-Syndrome korrigiert wurden; und
(i) unter Verwendung der angepaßten ECC-Syndrome,
Korrigieren aller korrigierbaren noch
verbleibenden Fehler.
2. Eine Methode nach Anspruch 1, bei der, wenn eine lange
Fehlerkette nicht erkannt wird, die Paritäts-Prüfbytes
nicht gelesen werden und die Paritäts-Syndrome bei
Schritt (b) nicht erzeugt werden.
3. Eine Methode nach jedem der vorangehenden Ansprüche,
bei der die Bedingung mit langer Fehlerkette N Bytes
nicht überschreitet.
4. Eine Methode nach jedem der vorangehenden Ansprüche,
bei der Blöcke von variabler Länge eine variable Anzahl
von Datenbytes (D) und eine vorgewählte Anzahl von
Prüfbytes (C) umfassen.
5. Eine Methode nach jedem der vorangehenden Ansprüche,
bei der N die Gesamtzahl von Bytes in einem Unterblock
überschreitet.
6. Eine Methode nach jedem der vorangehenden Ansprüche,
bei der der Fehlerkorrektur-Code (ECC), für den während
der Leseoperation ECC-Syndrome erzeugt werden, zur
Korrektur einer vorgewählten Anzahl von Fehlern in jedem
Unterblock verwendet werden kann, während der
Verarbeitung auf einer ersten Fehlerkorrektur-Stufe, und
zusätzliche Fehler in jedem Block während der
Verarbeitung auf einer zweiten Fehlerkorrektur-Stufe, und die
Datenbytes und ECC-Prüfbytes verschachtelt sind, und
die N sequentiellen Paritäts-Prüfbytes N
Paritäts-Gruppen aus verschachtelten Datenbytes und Prüfbytes
erzeugen; die Methode umfaßt hierbei die folgenden Schritte:
Erzeugen der Paritäts-Syndrome zur Korrektur der
Fehlerkette während der Korrektur auf der ersten Stufe;
Verwenden der ECC-Syndrome, die nicht von den N Bytes
abhängen, die von dem Zeiger während der Korrektur auf
der ersten Stufe identifiziert werden;
nach Durchführen aller möglichen Korrekturen auf der
ersten Stufe und nach Korrektur der Fehlerkette,
Anpassen von ECC-Syndromen der zweiten Stufe für alle bis
dahin korrigierten Fehler; und
Verwenden der angepaßten ECC-Syndrome der zweiten Stufe
zur Korrektur aller dann noch verbleibenden
korrigierbaren Fehler.
7. Eine Methode nach Anspruch 6, die, in Antwort auf einen
Fehler (e) in einem der Unterblöcke, der einen
Paritäts-Fehler
in der entsprechenden Paritäts-Gruppe zur
Folge hat, der wieder zu einem Abbildungsfehler (e') in
diesem Paritäts-Überlagerungsbereich führt, mit einer
Länge von N Bytes, gemessen ab dem frühesten Byte (Z),
das von dem konventionellen Fehler hätte betroffen sein
können, eine Korrektur des Fehlers (e) und seines
Abbildungsfehlers (e') durch Decodierung während der
Korrektur auf der zweiten Stufe beinhaltet.
8. Eine Methode nach jedem der Ansprüche 6 oder 7, die, in
Antwort auf einen Fehler (e) und seinen
Abbildungsfehler (e') in benachbarten Unterblöcken, die Korrektur
beider Fehler durch Korrektur der benachbarten
Unterblöcke auf der ersten Stufe beinhaltet.
9. Eine Methode nach jedem der Ansprüche 6 bis 8, die, in
Antwort auf zwei Fehler (e&sub1;, e&sub2;) in den Paritäts-Bytes,
die entsprechende Abbildungsfehler (e&sub1;', e&sub2;') in
benachbarten Unterblöcken erzeugen, die Korrektur der
Fehler durch Korrektur der benachbarten Unterblöcke auf
der ersten Stufe beinhaltet.
10. Eine Methode nach jedem der Ansprüche 6 bis 9, die, in
Antwort auf zwei Fehler (e&sub1;, e&sub2;) in den Paritäts-Bytes,
die entsprechende Abbildungsfehler (e&sub1;', e&sub2;') in
demselben Unterblock erzeugen, die Korrektur der Fehler
durch Decodierung während der Korrektur auf der zweiten
Stufe beinhaltet.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US07/247,461 US4916701A (en) | 1988-09-21 | 1988-09-21 | Method and system for correcting long bursts of consecutive errors |
Publications (2)
Publication Number | Publication Date |
---|---|
DE68920523D1 DE68920523D1 (de) | 1995-02-23 |
DE68920523T2 true DE68920523T2 (de) | 1995-07-20 |
Family
ID=22935027
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE68920523T Expired - Fee Related DE68920523T2 (de) | 1988-09-21 | 1989-08-24 | Verfahren zur Korrektur von Mehr-Byte-Fehlern. |
Country Status (9)
Country | Link |
---|---|
US (1) | US4916701A (de) |
EP (1) | EP0360424B1 (de) |
JP (1) | JPH0831805B2 (de) |
KR (1) | KR920006998B1 (de) |
CN (1) | CN1011268B (de) |
AU (1) | AU616788B2 (de) |
BR (1) | BR8904735A (de) |
CA (1) | CA1309495C (de) |
DE (1) | DE68920523T2 (de) |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH03198544A (ja) * | 1989-12-27 | 1991-08-29 | Nec Corp | パリティ計数回路 |
JP2770611B2 (ja) * | 1991-07-17 | 1998-07-02 | 日本電気株式会社 | データエラー再試行回路 |
US5623507A (en) * | 1991-09-13 | 1997-04-22 | Storage Technology Corporation | Error pointers for enhanced error correction |
JP2721099B2 (ja) * | 1991-12-18 | 1998-03-04 | インターナショナル・ビジネス・マシーンズ・コーポレイション | エラーバースト修正のための試行錯誤方法及びマルチバイトエラーの修正方法 |
JP3259323B2 (ja) * | 1992-04-13 | 2002-02-25 | ソニー株式会社 | デ・インターリーブ回路 |
US5329535A (en) * | 1992-04-30 | 1994-07-12 | International Business Machines Corporation | Variable block lengths on-the-fly error correcting decoder |
JP3520576B2 (ja) * | 1994-10-24 | 2004-04-19 | ソニー株式会社 | 誤り訂正方法 |
US5497111A (en) * | 1994-12-22 | 1996-03-05 | International Business Machines Corporation | Peak detection circuit for suppressing magnetoresistive thermal asperity transients in a data channel |
BR9606294B1 (pt) * | 1995-04-03 | 2009-01-13 | mÉtodo para dispor dados de paridade, mÉtodo para transmitir, receber, gravar e reproduzir dados de informaÇço e dados de paridade, aparelho para dispor dados de paridade, sistema de transmissço de dados, transmissor de dados, receptor de dados, aparelho de gravaÇço e reproduÇço de dados, gravador de dados, reprodutor de dados, meio de gravaÇço e sinal tendo uma estrutura de dados de dados de informaÇço e dados de paridade. | |
DE19614701A1 (de) * | 1996-04-15 | 1997-10-16 | Bosch Gmbh Robert | Verfahren zur Übertragung von codierten Daten |
US6219814B1 (en) | 1996-12-23 | 2001-04-17 | International Business Machines Corporation | Method and apparatus for selectively varying error correcting code (ECC) power in a direct access storage device (DASD) |
JP3104646B2 (ja) * | 1997-06-04 | 2000-10-30 | ソニー株式会社 | 外部記憶装置 |
US6003144A (en) * | 1997-06-30 | 1999-12-14 | Compaq Computer Corporation | Error detection and correction |
US6275965B1 (en) * | 1997-11-17 | 2001-08-14 | International Business Machines Corporation | Method and apparatus for efficient error detection and correction in long byte strings using generalized, integrated, interleaved reed-solomon codewords |
JP2000148408A (ja) * | 1998-11-17 | 2000-05-30 | Nec Corp | 磁気ディスク装置のデータチェック回路,同方式,および同方法 |
JP2002027782A (ja) | 2000-07-10 | 2002-01-25 | Sony Corp | センサレスモータの起動システム |
JP4174967B2 (ja) * | 2000-12-18 | 2008-11-05 | 船井電機株式会社 | 追記型光ディスクの記録方法 |
US7013422B2 (en) * | 2001-06-15 | 2006-03-14 | International Business Machines Corporation | Noise removal in multibyte text encodings using statistical models |
US6891690B2 (en) * | 2002-11-20 | 2005-05-10 | International Business Machines Corporation | On-drive integrated sector format raid error correction code system and method |
KR101300810B1 (ko) * | 2006-04-03 | 2013-08-26 | 삼성전자주식회사 | 데이터 인코딩 및 디코딩 방법과 그 장치, 저장 매체, 및저장 매체 구동 시스템 |
DE112006003922T5 (de) * | 2006-06-28 | 2009-04-30 | Intel Corporation, Santa Clara | Modifikation bei einem Meggit-Decodierer für Fehlerkorrekturverfahren bei Bursts |
US7721140B2 (en) * | 2007-01-02 | 2010-05-18 | International Business Machines Corporation | Systems and methods for improving serviceability of a memory system |
EP2009828B1 (de) * | 2007-06-28 | 2016-01-27 | Alcatel Lucent | Verfahren zur Bereitstellung ungleichen Fehlerschutzes für Datenpakete in einem Burst-Übertragungssystem |
US8289640B2 (en) | 2008-08-11 | 2012-10-16 | International Business Machines Corporation | Error burst detection and amelioration |
US8717698B2 (en) | 2011-10-12 | 2014-05-06 | International Business Machines Corporation | Hierarchical control of tiered error recovery for storage devices |
CN103809147A (zh) * | 2012-11-12 | 2014-05-21 | 苏州工业园区新宏博通讯科技有限公司 | 一种交流电表故障自诊断方法 |
KR101750662B1 (ko) | 2013-06-24 | 2017-06-23 | 마이크론 테크놀로지, 인크. | 데이터 에러 교정용 회로, 장치, 및 방법 |
CN107203436B (zh) * | 2017-05-25 | 2021-04-06 | 郑州云海信息技术有限公司 | 一种Nand Flash数据校验的方法与装置 |
US11994938B2 (en) | 2021-11-11 | 2024-05-28 | Samsung Electronics Co., Ltd. | Systems and methods for detecting intra-chip communication errors in a reconfigurable hardware system |
US11886295B2 (en) | 2022-01-31 | 2024-01-30 | Pure Storage, Inc. | Intra-block error correction |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2485237B1 (fr) * | 1980-06-19 | 1987-08-07 | Thomson Csf | Dispositif de correction, en temps reel, d'erreurs sur des donnees enregistrees sur un support magnetique, et systeme de traitement de donnees comportant un tel dispositif |
JPS5735444A (en) * | 1980-08-12 | 1982-02-26 | Sony Corp | Pcm signal transmission method |
US4525838A (en) * | 1983-02-28 | 1985-06-25 | International Business Machines Corporation | Multibyte error correcting system involving a two-level code structure |
US4706250A (en) * | 1985-09-27 | 1987-11-10 | International Business Machines Corporation | Method and apparatus for correcting multibyte errors having improved two-level code structure |
JPS62120670A (ja) * | 1985-11-20 | 1987-06-01 | Sony Corp | デ−タの誤り訂正方法 |
US4703485A (en) * | 1986-02-10 | 1987-10-27 | International Business Machines Corporation | Method and apparatus for computing and implementing error detection check bytes |
JPS62234426A (ja) * | 1986-04-04 | 1987-10-14 | Sony Corp | エラ−訂正方法 |
NL8601446A (nl) * | 1986-06-05 | 1988-01-04 | Philips Nv | Werkwijze en inrichting voor het dekoderen van een blok kodesymbolen dat op twee manieren verdeeld is over kodewoorden die elk door een minimum-afstandssepareerbare kode beschermd zijn. |
JP2605271B2 (ja) * | 1987-02-10 | 1997-04-30 | ソニー株式会社 | エラー訂正及びチエツク装置 |
-
1988
- 1988-09-21 US US07/247,461 patent/US4916701A/en not_active Expired - Lifetime
-
1989
- 1989-06-23 CA CA000603836A patent/CA1309495C/en not_active Expired - Fee Related
- 1989-08-03 AU AU39282/89A patent/AU616788B2/en not_active Ceased
- 1989-08-18 JP JP1211542A patent/JPH0831805B2/ja not_active Expired - Fee Related
- 1989-08-24 EP EP89308569A patent/EP0360424B1/de not_active Expired - Lifetime
- 1989-08-24 DE DE68920523T patent/DE68920523T2/de not_active Expired - Fee Related
- 1989-09-08 KR KR1019890012988A patent/KR920006998B1/ko not_active IP Right Cessation
- 1989-09-08 CN CN89106994A patent/CN1011268B/zh not_active Expired
- 1989-09-20 BR BR898904735A patent/BR8904735A/pt unknown
Also Published As
Publication number | Publication date |
---|---|
EP0360424A3 (de) | 1991-10-16 |
DE68920523D1 (de) | 1995-02-23 |
AU3928289A (en) | 1990-03-29 |
AU616788B2 (en) | 1991-11-07 |
JPH0295029A (ja) | 1990-04-05 |
CN1011268B (zh) | 1991-01-16 |
EP0360424A2 (de) | 1990-03-28 |
KR900005292A (ko) | 1990-04-13 |
CN1041463A (zh) | 1990-04-18 |
KR920006998B1 (ko) | 1992-08-24 |
US4916701A (en) | 1990-04-10 |
JPH0831805B2 (ja) | 1996-03-27 |
CA1309495C (en) | 1992-10-27 |
EP0360424B1 (de) | 1995-01-11 |
BR8904735A (pt) | 1990-05-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE68920523T2 (de) | Verfahren zur Korrektur von Mehr-Byte-Fehlern. | |
DE3486408T2 (de) | Verfahren und Vorrichtung zur Dekodierung eines fehlerkorrigierenden Kodes. | |
DE69220818T2 (de) | Verfahren und Einrichtung zur Fehlererkennung in Recherspeichern versehen mit Mehrfach-bit-Ausgängen | |
DE60006031T2 (de) | Speicherfehlerkorrektur mit einem redundanten geschnittenen Speicher und Standard ECC Mechanismus | |
DE69129444T2 (de) | On-Line-Wiederherstellung von Redundanz-Information in einem redundanten Matrixsystem | |
DE3850192T2 (de) | Verfahren und Vorrichtung zur Fehlerkorrektur bei gespeicherten Daten. | |
DE3789418T2 (de) | Ausfallerkennung von Fehlerprüfungs- und -korrekturschaltung. | |
DE60001370T2 (de) | Verfahren und vorrichtung zur erkennung von doppelbitfehlern und korrektur von fehlern durch bauelementfehler verursacht | |
DE2853892C2 (de) | ||
DE3586851T2 (de) | Fehlerkorrekturverfahren und anordnung fuer chips mit multibitausgabe. | |
DE68921855T2 (de) | Korrektur von Burst- und Zufallsfehlern. | |
DE10133595B4 (de) | Pufferschaltung, Speicherzugriffsverfahren und Reed-Solomon-Decoder | |
DE3783253T2 (de) | Fehlerkorrekturverfahren. | |
DE60015753T2 (de) | System und verfahren zum schutz von daten und zur korrektur von bitfehlern folgend aus komponentenfehlern | |
DE69112624T2 (de) | Mehrfehlerkorrektur eines rechnerspeichers. | |
DE3854393T2 (de) | Verfahren und gerät zur fehlerkorrektur mit mehrfachdurchlauf für produktkode. | |
DE69121307T2 (de) | Mehrfachpegel-Fehlerkorrektursystem | |
DE69903188T2 (de) | Mehrstufige fehlererkennungs- und korrekturtechnik für datenspeicher-aufzeichnungsvorrichtung | |
DE3882223T2 (de) | Ausgebreitete Fehlerkorrekturvorrichtung mit Einzel-Paket-Fehlerkorrektur und Doppel-Paket-Fehlerdetektionscoden. | |
DE2421112A1 (de) | Speicheranordnung | |
DE69814465T2 (de) | Verfahren und gerät zur datenspeicherung auf magnetischen medien, die fehlerkorrekturkodes enthalten | |
DE3787034T2 (de) | Digitale Signalfehlerkorrektur. | |
DE2622184A1 (de) | Fehlerkorrekturverfahren | |
EP0922254A1 (de) | Fehlererkennung in einem speichersystem | |
DE69904618T2 (de) | Detektionstechnik von speicherabschnittfehlern und einzel-, doppel und triplebitfehlern |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |