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
Application number
DE68920523T
Other languages
English (en)
Other versions
DE68920523D1 (de
Inventor
John Scott Eggenberger
Paul Hodges
Arvind Motibhai Patel
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE68920523D1 publication Critical patent/DE68920523D1/de
Application granted granted Critical
Publication of DE68920523T2 publication Critical patent/DE68920523T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1866Error 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.
DE68920523T 1988-09-21 1989-08-24 Verfahren zur Korrektur von Mehr-Byte-Fehlern. Expired - Fee Related DE68920523T2 (de)

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)

* Cited by examiner, † Cited by third party
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
WO1996031952A1 (en) * 1995-04-03 1996-10-10 Matsushita Electric Industrial Co., Ltd. Data transmission system, data recording and reproducing apparatus and recording medium each having data structure of error correcting code
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 삼성전자주식회사 데이터 인코딩 및 디코딩 방법과 그 장치, 저장 매체, 및저장 매체 구동 시스템
CN101449499B (zh) * 2006-06-28 2012-07-04 英特尔公司 针对突发纠错码的meggitt解码器的改进
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 苏州工业园区新宏博通讯科技有限公司 一种交流电表故障自诊断方法
WO2014205590A1 (en) 2013-06-24 2014-12-31 Micron Technology, Inc. Circuits, apparatuses, and methods for correcting data errors
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)

* Cited by examiner, † Cited by third party
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 ソニー株式会社 エラー訂正及びチエツク装置

Also Published As

Publication number Publication date
DE68920523D1 (de) 1995-02-23
AU616788B2 (en) 1991-11-07
JPH0831805B2 (ja) 1996-03-27
EP0360424B1 (de) 1995-01-11
CA1309495C (en) 1992-10-27
JPH0295029A (ja) 1990-04-05
US4916701A (en) 1990-04-10
CN1041463A (zh) 1990-04-18
AU3928289A (en) 1990-03-29
BR8904735A (pt) 1990-05-01
KR900005292A (ko) 1990-04-13
CN1011268B (zh) 1991-01-16
EP0360424A2 (de) 1990-03-28
KR920006998B1 (ko) 1992-08-24
EP0360424A3 (de) 1991-10-16

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
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
DE3882223T2 (de) Ausgebreitete Fehlerkorrekturvorrichtung mit Einzel-Paket-Fehlerkorrektur und Doppel-Paket-Fehlerdetektionscoden.
DE2421112A1 (de) Speicheranordnung
DE3128599A1 (de) Verfahren zur fehlerkorrektur
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
DE2263488A1 (de) System zur korrektur der fehler in zwei fehlerbehafteten spuren eines vielspurigen aufzeichnungsgeraets

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee