DE3850192T2 - Verfahren und Vorrichtung zur Fehlerkorrektur bei gespeicherten Daten. - Google Patents

Verfahren und Vorrichtung zur Fehlerkorrektur bei gespeicherten Daten.

Info

Publication number
DE3850192T2
DE3850192T2 DE3850192T DE3850192T DE3850192T2 DE 3850192 T2 DE3850192 T2 DE 3850192T2 DE 3850192 T DE3850192 T DE 3850192T DE 3850192 T DE3850192 T DE 3850192T DE 3850192 T2 DE3850192 T2 DE 3850192T2
Authority
DE
Germany
Prior art keywords
error
level
block
errors
sub
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
DE3850192T
Other languages
English (en)
Other versions
DE3850192D1 (de
Inventor
Robert Whitcomb Anderson
Ralph Leonard Gee
Jasper Anthony Indelicato
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
Application granted granted Critical
Publication of DE3850192D1 publication Critical patent/DE3850192D1/de
Publication of DE3850192T2 publication Critical patent/DE3850192T2/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • 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/12Formatting, e.g. arrangement of data block or words on the record carriers
    • G11B20/1217Formatting, e.g. arrangement of data block or words on the record carriers on discs
    • G11B20/1252Formatting, e.g. arrangement of data block or words on the record carriers on discs for discontinuous data, e.g. digital information signals, computer programme data
    • 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/1806Pulse code modulation systems for audio signals
    • G11B20/1809Pulse code modulation systems for audio signals by interleaving
    • 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/12Formatting, e.g. arrangement of data block or words on the record carriers
    • G11B20/1217Formatting, e.g. arrangement of data block or words on the record carriers on discs
    • G11B2020/1257Count Key Data [CKD] format
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/20Disc-shaped record carriers

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Detection And Correction Of Errors (AREA)
  • Error Detection And Correction (AREA)

Description

  • Die vorliegende Erfindung betrifft ein Verfahren und eine Vorrichtung zur Fehlerkorrektur bei verschlüsselten, unkorrigierten Daten in einer Speichereinheit unter Verwendung eines mehrstufigen Fehlerkorrekturcode-(ECC)- Formats.
  • Bisher wurde in konventionellen, einstufigen Fehlerkorrektursystemen vorgeschlagen, unkorrigierte Daten an eine Speicher- Leitstation zur Fehlerkorrektur zu übergeben. Informationen zu Fehlermuster und Fehleradresse werden von der Software in der Speicher-Leitstation decodiert und dort von der Software korrigiert.
  • In der europäischen Patentanmeldung EP-A-218413 wird eine zweistufige Fehlerkorrekturcodestruktur in einem verbesserten, fehlerkorrigierenden Mehrbyte-Subsystem offenbart. Daten werden auf einer Plattenspur zu einer Anzahl von Unterblöcken jeweils innerhalb eines Blocks formatiert. Außerdem sind zwei Gruppen von drei Unterblock-Prüfbytes vorhanden. Eine Gruppe ist den geraden Phasen und die andere den ungeraden Phasen zugeordnet, wodurch geschachtelte Codewörter gebildet werden. In dieser Anordnung erfolgt die erste Stufe der Korrektur (von Unterblockfehlern) fliegend auf der Speichereinheit, nachdem sie um einen Unterblock verzögert wurde, und die Daten werden an die Speicher-Leitstation zur Korrektur von Fehlern der zweiten Stufe (von Blockfehlern) gesendet. Eine fliegende Fehlerkorrektur hat somit Vorteile, auch aufgrund der Tatsache, daß das nächste Feld ohne Verlust der Plattensynchronisation verarbeitet werden kann. Diese fliegende Korrektur ist jedoch nur für Systeme geeignet, die in einer asynchronen Umgebung betrieben werden; sie ist nicht geeignet für Betriebssysteme, die eine synchrone Umgebung erfordern (wie z. B. beim Count Key Data-Format (CKD)), da nicht genügend Zeit vorhanden ist, um die nächste Operation bekanntzugeben und keine Gewährleistung, daß Fehler innerhalb der zulässigen Zeitspanne korrigiert werden. Außerdem werden beim Betrieb im fliegenden Modus auf erster Stufe korrigierte Daten (Unterblockdaten) an die Speicher-Leitstation übergeben, doch es werden keine Informationen über Fehlermuster und Fehleradresse aufbewahrt.
  • Es wurde bisher vorgeschlagen, eine Fehlerkorrektur durch den Einsatz von im Verzögerungsmodus betriebener Software zu implementieren, um einstufige Fehler zu decodieren und auch zu korrigieren, oder um Fehler der ersten Stufe in einem mehrstufigen Fehlerkorrekturcode-Format (ECC) zu decodieren und zu korrigieren. Bei diesem Verfahren steigt jedoch die Verarbeitungszeit in direktem Verhältnis zu der Anzahl der in einem Block vorhandenen Fehler an. Wenn eine Fehlerdecodierung und -korrektur softwareseitig implementiert werden und ein Mehrbit-Fehler Bytegrenzen überschreitet, ist es erst nach Abschluß der Verarbeitung möglich, festzustellen, ob die beiden fehlerhaften Bytes nebeneinanderliegen, wodurch stets zwei Korrekturzyklen erforderlich sind.
  • Aufgabe der vorliegenden Erfindung ist es, eine verbesserte Vorrichtung und ein verbessertes Verfahren unter Verwendung einer zweistufigen Codestruktur bereitzustellen, welche eine effizientere Korrektur von Mehrbyte-Fehlern in gespeicherten Daten gestattet.
  • Die vorliegende Erfindung bietet ein Verfahren zur Korrektur von Fehlern in verschlüsselten, unkorrigierten Daten auf einer Plattenspeichereinheit unter Verwendung eines mehrstufigen Fehlerkorrekturcodes, wobei die Daten zu Blöcken formatiert werden und jeder dieser Blöcke in mehrere Unterblöcke mit fester Länge unterteilt wird, und wobei jeder Unterblock mit einem Fehlercode zur Korrektur von Fehlern auf erster Stufe versehen wird und jeder Block einen Fehlercode zur Korrektur von Fehlern auf zweiter Stufe erhält; gekennzeichnet durch die folgenden Schritte: Übertragen der von einer Platte empfangenen, unkorrigierten Daten in einen ersten Puffer auf einer Speicher-Leitstation; während der Übertragung Entschlüsseln von Fehlern auf erster Stufe in den Unterblöcken und Speichern der generierten Informationen über Fehlermuster und Fehleradressen in einem Fehlerspeichermittel auf der Plattenspeichereinheit, wobei das Fehlerspeichermittel in der Lage ist, auf K Unterblöcke bezogene Informationen über Fehlermuster und Fehleradressen der ersten Stufe zu speichern, wobei K kleiner ist als die maximale Anzahl von Unterblöcken in einem Block; nachdem alle unkorrigierten Daten eines Blocks von der Speicher-Leitstation empfangen wurden, Übertragen der gespeicherten Fehlerinformationen über Fehlermuster und Fehleradressen der ersten Stufe an die Speicher-Leitstation zur Korrektur von Fehlern der ersten Stufe und Durchführung nachfolgender Korrekturstufen.
  • Die Erfindung betrifft auch eine Vorrichtung zur Korrektur von Fehlern und umfaßt die in Patentanspruch 6 dargelegten Funktionsmerkmale.
  • Die Fehlerinformationen, die sich auf die Fehler der ersten Stufe im zweistufigen Fehlerkorrekturcode (ECC) beziehen, werden in Form von Fehlermuster- und Fehleradreßinformationen für jeden in der Speichereinheit decodierten Fehler übermittelt. Die Mittel zur Übertragung solcher Fehlerinformationen erfordern einen ausreichenden Pufferraum in der Speichereinheit (zur Aufnahme der Informationen) sowie ein Protokoll zur Übertragung einer vorbestimmten Anzahl zusätzlicher Bytes am Ende jedes Datensatzes aus der Speichereinheit an die Speicher-Leitstation (und/oder an eine Host-Verarbeitungseinheit, falls erforderlich).
  • Angenommen, der Datensatz mit variabler Länge enthält eine große Anzahl von Unterblöcken mit geschachtelten Codewörtern und besitzt die Fähigkeit zur Korrektur von t&sub1; Fehlern der ersten Stufe in jedem der primären Codewörter jedes Unterblocks. Es besteht keine Notwendigkeit, Platz für all diese Fehler zu schaffen, da nicht alle Fehler gleichzeitig auftreten werden. Effektiv werden zu jedem beliebigen Zeitpunkt nur einige Fehler vorhanden sein, und die meisten Unterblöcke werden fehlerfrei sein. In der Implementierung gemäß unserer Erfindung wird die Anzahl von Unterblöcken mit Fehlern der ersten Stufe auf k beschränkt sein, wobei der größte Wert von k durch die Hardware und architekturbedingte Kostenbeschränkungen bestimmt wird. Fehlerhafte Bytes werden zusammen mit Fehlerinformationen identifiziert. Die in überwiegender Anzahl vorhandenen 'fehlerfreien Unterblöcke werden an der Übertragung dieser Fehlerinformationen nicht beteiligt sein.
  • Somit kann eine im Verzögerungsbetrieb durchgeführte Korrektur von zweistufigen Fehlerkorrekturcodes durch das hierin offenbarte und in den Patentansprüchen niedergelegte Verfahren sogar in einer CKD-Umgebung mit langen Datensätzen von variabler Länge praktisch und kostenwirksam umgesetzt werden.
  • Wenn die Fehler auf erster Stufe in der Speichereinheit hardwareseitig entschlüsselt werden, ist der Decodierer auch in der Lage, die Fehler fliegend in einer gepufferten Kopie des primären Codeworts während seiner Verarbeitung zu korrigieren. Der Hardware-Decodierer ist eine verfügbare Option; die noch weitere Vorteile bietet. Der Hardware-Decodierer ermöglicht es insbesondere, die Zeit einzusparen, die ansonsten zur Syndromverarbeitung in der Steuereinheit erforderlich ist, und leitet überdies die Fehlermuster an einen CRC- Syndromgenerator weiter (CRC - Zyklische Redundanzprüfung), um sie den Fehlern auf erster Stufe vorab anzupassen.
  • Im spezielleren Sinn werden gemäß einem bevorzugten Ausführungsbeispiel der Erfindung ein Verfahren und eine Vorrichtung bereitgestellt, die während der Leseverarbeitung selektiv so konditionierbar sind, daß sie im normalen oder diagnostischen fliegenden Modus oder im normalen oder diagnostischen Verzögerungsmodus arbeiten können. Beim Einsatz im Verzögerungsmodus empfängt die Hardware in der Plattenspeichereinheit unkorrigierte Daten im Echtzeitbetrieb und generiert Syndrom-Bytes, welche die Einheit zur Entschlüsselung von Informationen über Fehlermuster und Fehleradressen verwendet, die dann an die Speicher-Leitstation übertragen werden. Unabhängig von der Anzahl von Fehlern der ersten Stufe (Unterblockfehlern) bleibt die auf die Fehlerverarbeitung entfallende Zeit im wesentlichen konstant. Die Verzögerung zur erneuten Synchronisation mit der Speicherplatte beträgt mindestens eine Umdrehung. Da Muster und Adresse von Fehlern der ersten Stufe auf-der Speichereinheit ermittelt werden, wird der Speicher-Leitstation die Fehlerkorrekturcode-Verarbeitung teilweise abgenommen, und die Speicher-Leitstation ist somit in der Lage, andere Aufgaben auszuführen. Außerdem werden Mittel bereitgestellt, um - sofern gewünscht - Informationen über Fehlermuster und Fehleradressen zu speichern, um die Identifizierung von Oberflächenfehlern auf der Speicherplatte zu erleichtern, und ob die Leseverarbeitung fliegend oder im Verzögerungsbetrieb durchgeführt wurde.
  • Zum besseren Verständnis der Erfindung wird im folgenden ein Ausführungsbeispiel unter Bezugnahme auf die beiliegenden Zeichnungen beschrieben, in denen:
  • Fig. 1 ein Datenformat einer Plattenspur veranschaulicht, das eine zweistufige Codestruktur zeigt, die in Verbindung mit einem Verfahren und einer Vorrichtung zur Korrektur von Fehlern gemäß der Erfindung verwendet wird, und
  • Fig. 2 ein Blockdiagramm der Korrekturkomponenten der ersten und zweiten Stufe einer Fehlerkorrekturcode- (ECC-) Vorrichtung gemäß einem Ausführungsbeispiel der Erfindung zeigt, das die in der Speichereinheit und in der Speicher-Leitstation befindlichen Bauteile veranschaulicht.
  • Vor der ausführlichen Beschreibung wollen wir das Konzept der Erfindung kurz erklären. Das grundlegende zweistufige ECC- Schema, wie es in der vorgenannten europäischen Patentanmeldung EP-A-218413 beschrieben wird, verfügt über n Unterblöcke in einem Block mit N Bytes in jedem Unterblock. Die Funktionskomponente auf der ersten Decodierstufe ermöglicht die Korrektur von bis zu t&sub1; Fehlern in allen Unterblöcken. Die Funktionskomponente auf der zweiten Decodierstufe ermöglicht die Korrektur von (t&sub1;+x) Fehlern in einem Unterblock und (t&sub1;+c-x) Fehlern in allen anderen Unterblöcken eines Blocks.
  • Das grundlegende Fehlerereignis ist ein "fehlerhaftes Byte". Ein Blockfehler kann korrelierende Fehler in angrenzenden Bytes verursachen; es wird jedoch von einer ausreichenden Schachtelung ausgegangen, damit eine effektive Zufallsverteilung für diese Fehler entsteht. Bei einer geeigneten Schachtelung wird angenommen, daß aus der Sicht des ECC-Schemas alle Bytes mit der gleichen Wahrscheinlichkeit fehlerhaft sind.
  • Die Wahrscheinlichkeit p des grundlegenden Fehlerereignisses ist bekannt. Die Wahrscheinlichkeit einer beliebigen Kombination aus mehreren Fehlern in einem Unterblock und einem Block wird dann unter Heranziehung binomischer und multinomischer Ausdrücke berechnet. Daraus ergibt sich die Gesamtwahrscheinlichkeit von Kombinationen aus "kein Fehler" und "korrigierbarer Fehler" auf der ersten Decodierstufe, aus welcher sich dann die Rate der nicht-korrigierbaren (oder falsch korrigierten) Fehler auf erster Stufe ergibt. In gleicher Weise erhält man die Gesamtwahrscheinlichkeit von Kombinationen aus "kein Fehler" oder "korrigierbarer Fehler" auf der zweiten Decodierstufe, aus welcher sich die Rate der nicht-korrigierten (oder falsch korrigierten) Fehler auf der zweiten Stufe ergibt.
  • Beispielsweise ist von folgender Annahme auszugehen:
  • p = Wahrscheinlichkeit, daß ein Byte fehlerhaft ist; und psb(x) = Wahrscheinlichkeit, daß x Bytes in einem aus N Bytes bestehenden Unterblock fehlerhaft sind. Daraus ergibt sich:
  • Für die erste Stufe der Fehlerkorrektur
  • In FALL I mit t&sub1;=1 und n Unterblöcken in einem Block gibt Pb (≤ 1) die Wahrscheinlichkeit von bis zu einem (1) Fehler in jedem Unterblock eines Blocks an. Dann ist:
  • In FALL I ist eine Korrektur in allen n Unterblöcken zulässig und somit nicht beschränkt.
  • In FALL II mit t&sub1;=1 und n Unterblöcken in einem Block gibt Pbk (≤ 1) die Wahrscheinlichkeit von bis zu einem (1) Fehler in bis zu k Unterblöcken und null (0) Fehlern in allen anderen an. Dann ist:
  • In FALL II ist die Korrektur auf k Unterblöcke beschränkt, wobei k< n ist.
  • Für die zweite Stufe der Fehlerkorrektur
  • In FALL I mit t&sub2;=2, t&sub1;=1 und c=1 gibt Pb (2,1) die Wahrscheinlichkeit von zwei (2) Fehlern in einem Unterblock und bis zu einem (1) Fehler in allen anderen an. Damit ist:
  • Wieder ist in FALL I eine Korrektur in allen n Unterblöcken zulässig und somit nicht beschränkt.
  • In FALL II mit t&sub2;=2, t&sub1;=1 und c=1 gibt Pbk (2,1) die Wahrscheinlichkeit von zwei (2) Fehlern in einem Unterblock und bis zu einem (1) Fehler in k-1 Unterblöcken an. Dann ist:
  • In FALL II ist die Korrektur auf k Unterblöcke beschränkt. In der vorliegenden Verwendungsform sowie in den Patentansprüchen ist die Vorauswahl eines Wertes von k &le; k&sub0; wünschenswert, wobei k&sub0; als der kleinste Wert von k definiert ist, für den Fehlerwahrscheinlichkeiten Pbk (&le; 1) und Pbk (2,1) mit der k-Beschränkung in der Nähe von solchen ohne k-Beschränkung liegen, d. h. Pb &le; 1 bzw. Pb (2,1).
  • Fig. 1 zeigt das Datenformat einer Plattenspur mit einer zweistufigen Codestruktur, in der die vorliegende Erfindung implementiert ist. Wie aus der Darstellung hervorgeht, werden Daten auf-einer Spur 11 aufgezeichnet und zu mehreren Blöcken 12 mit fester oder variabler Länge formatiert. Jeder Block 12 wird in Unterblöcke 14 mit fester Länge unterteilt. Die Darstellung zeigt ferner, daß jeder Unterblock 14 zwei geschachtelte Codewörter 18, 19 umfaßt. Jedes Codewort 18, 19 enthält 48 Datenbyte-Positionen sowie drei Unterblock-Prüfbytes C&sub1;, C&sub2; und C&sub3;. Jeder Block 12 umfaßt somit Unterblöcke, von denen jeder über 96 (zwei Paar ä 48) Datenbyte-Positionen und drei Paar Unterblock-Prüfbytes C&sub1;, C&sub2; und C&sub3; verfügt. Außerdem werden vier Prüfbytes CR&sub1;-CR&sub4; zur Prüfung der Datenintegrität nach der ECC-Korrektur und zwei Prüfbytes C&sub0; zur Fehlerkorrektur auf zweiter Stufe an das Ende jedes Blocks 12 in einem Blockprüfbytebereich 15 angehängt. Die Art, in der die zur Fehlerkorrektur verwendeten Prüfbytes C&sub1;-C&sub3; in jedem Unterblock 12 und die Prüfbytes CR&sub1;-CR&sub4; sowie C&sub0; am Ende jedes Blocks 12 bestimmt und erzeugt werden, sind nicht Bestandteil der vorliegenden Erfindung. Ausführliche Erläuterungen hierzu kann der interessierte Leser in der Patentschrift EP-A-218413 nachlesen.
  • Wie die Darstellung zeigt, korrigiert das ECC-System ein 25- Bit-Fehlerereignis oder zwei 9-Bit-Fehlerereignisse in einem der Unterblöcke und bis zu ein 9-Bit-Fehlerereignis in einem beliebigen oder allen verbleibenden Unterblöcken im Block. Ein Fehlerereignis ist definitionsgemäß eine Gruppe inkorrekter Bitwerte, die sich über eine Anzahl von Bits erstrecken. Ein Fehler im Sinne des Fehlerkorrekturcodes ist definiert als ein beliebiges, acht Bits umfassendes Muster an einer Byte-Position des Blocks, das nicht dem korrekten Muster entspricht. Da die Längen der Fehlerereignisse unterschiedlich und die Codewörter geschachtelt sind, können verschiedene Fehlerkombinationen korrigiert werden.
  • Wie aus Fig. 2 hervorgeht, werden Daten von einem Datenverarbeitungssystem (nicht gezeigt) über eine Steuereinheit oder eine Speicher-Leitstation 20 an eine Speicherplatte 21 gesendet und dort auf eine Spur geschrieben, die wie in Fig. 1 gezeigt formatiert ist. Beim Schreiben und Übertragen dieser Daten werden von einer ECC-Codiereinheit 22 drei Gruppen von Prüfbytes C&sub1;, C&sub2; und C&sub3; für jeden Unterblock generiert. Das Block-Prüfbyte C&sub0; wird ebenfalls von der Codiereinheit 22 generiert. Eine Unterblock-Formatiervorrichtung 22A hängt die Prüfbytes C&sub1;, C&sub2; und C&sub3; an jeden entsprechenden Unterblock an. Eine Block-Formatiervorrichtung 22B hängt das Block-Prüfbyte C&sub0; (sowie die Prüfbytes CR&sub1;-CR&sub4; zur Prüfung der Datenintegrität) an das Ende des Blocks an. Die formatierten Daten werden dann auf der Speicherplatte 21 aufgezeichnet.
  • Beim Rücklesevorgang werden die gelesenen Daten mit Hilfe von Codiergleichungen (1), (2), (4) und (5) wie in EP-A-218413 beschrieben geprüft, um die Syndrome der Fehler auf konventionelle Weise zu entwickeln. Die Prüfbytes C&sub1;, C&sub2; und C&sub3; für die Unterblöcke werden mit den Syndromen S&sub1;, S&sub2; und S&sub3; verknüpft, während das Prüfbyte C&sub0; auf Blockebene mit dem Syndrombyte S&sub0; verknüpft wird.
  • Die den Syndromen zugeordneten tiefgestellten Zahlen, z. B. S&sub0;, S&sub1;, beziehen sich auf die spezifische T-Matrix, die zur Generierung der entsprechenden Prüfzeichen verwendet wird. Z.B. entspricht S&sub0;, das aus C&sub0; entwickelt wird, einem konventionellen Paritäts-Prüfbyte. S&sub3; hingegen wird aus C&sub3; entwickelt, das gemäß einer Logik generiert wird, welche die Multiplikation des Eingabebytes mit einer Matrix T³ beinhaltet. Die Syndrome S&sub1; und S&sub2;, die den Prüfbytes C&sub1; bzw. C&sub2; entsprechen, werden auf ähnliche Weise generiert, und zwar unter Heranziehung von Logik, welche die Matrizen T¹ bzw. T² beinhaltet. Eine solche Logik zur Syndromgenerierung ist allgemein bekannt und stellt keinen Bestandteil der vorliegenden Erfindung dar.
  • Während des Rückübertragungsvorgangs werden unkorrigierte Daten von der Platte 21 in einen Syndromgenerator 23 der ersten Stufe eingelesen, der Syndrombytes für S&sub1;, S&sub2; und S&sub3; für jedes Codewort eines Unterblocks generiert. Diese Syndrombytes werden an einen Decodierer 24 der ersten Stufe übertragen, in welchem sie als Fehlermusterdaten entschlüsselt werden. Dies ist die ECC-Funktion auf erster Stufe zur Korrektur eines Einzelbytefehlers in jedem der beiden geschachtelten Wörter 18, 19. Von diesem Punkt an ist die ECC-Verarbeitung je nach der Art von Operation, die von der Speicher-Leitstation 20 zu Beginn der Rückübertragung von der Platte 21 spezifiziert wird, unterschiedlich. Die spezifizierte Operationsart wird von den Schaltungen (nicht gezeigt) in der Speichereinheit 25 in eine der vier ECC-Befehlsseguenzen oder Modi A, B, C, D und in einen Übertragungsfehlerinformationsbefehl E umgesetzt. Der ECC-Modus wird durch einen Befehl der Speicher- Leitstation 20 auf einem Modusbus 26 gewählt, der den Datenpfad steuert.
  • Die vier ECC-Modi der Lesedatenverarbeitung sind: (A) Normale fliegende Leseverarbeitung, (B) Fliegende Leseverarbeitung zu Diagnosezwecken, (C) normale Leseverarbeitung im Verzögerungsbetrieb und (D) Diagnostische Leseverarbeitung im Verzögerungsbetrieb.
  • A. Normale fliegende Leseverarbeitung
  • Beim Betrieb in diesem Modus wird ein Block unkorrigierter Daten von der Platte 21 gelesen und in einem FIFO-Puffer 27 (First-In, First-Out) von Unterblöcken gespeichert. Nach einer Verzögerungszeit, die der zui Auslesen eines Unterblocks erforderlichen Dauer entspricht, werden die in Puffer 27 gespeicherten, unkorrigierten Daten an Punkt 28 mit den Fehlermusterdaten vom Decodierer 24 durch ein exklusives ODER verknüpft und an einen Selektor 31 weitergeleitet. Bestehen die Syndrome S&sub1;, S&sub2; und S&sub3; für jedes Codewort des Unterblocks aus lauter Nullen, schließt ein Fehlerdetektor 30 daraus, daß kein Fehler aufgetreten ist.
  • (i) Sind alle Unterblöcke fehlerfrei, schließen ein Syndromgenerator 29 der zweiten Stufe, der Syndrome auf zweiter Stufe generiert (sowie auch die Datenintegritätssyndrome für die Prüfbytes CR&sub1;-CR&sub4;), und der Fehlerdetektor 30 daraus, daß der Block fehlerfrei ist. Daher erscheint keine Fehleranzeige in einer Fehlerstatuszeile 41. Folglich veranlaßt der Selektor 31, daß der Block über einen Bus 32 zu einem Unterblockpuffer 33 in der Speicher-Leitstation 20 und über einen Bus 35 zum Datenverarbeitungssystem gesendet wird.
  • (ii) Nehmen wir nun an, daß nicht alle Unterblöcke fehlerfrei sind, daß jedoch im gezeigten Beispiel nicht mehr als ein Fehler pro Unterblock vorhanden ist. In einem solchen Fall werden die Fehler auf erster Stufe an dem exklusiven ODER- Gatter 28 korrigiert, und die korrigierten Daten der ersten Stufe werden über Selektor 31, Bus 32, Unterblockpuffer 33 und Bus 35 an das Datenverarbeitungssystem weitergeleitet.
  • Der Fehlerdetektor 30 ermittelt aus dem Syndromgenerator 29 der zweiten Stufe, daß der Block in der korrigierten Form fehlerfrei ist, und somit wird keine Fehleranzeige in Zeile 41 ausgegeben.
  • Ist die Fehlerbedingung nicht wie in (i) oder (ii) oben aufgeführt, muß die Korrektur auf Blockebene durchgeführt werden.
  • Die mit einem bestimmten Unterblock-Codewort verknüpften Syndrome S&sub1;, S&sub2; und S&sub3; sind in einem lokalen Speicher 36 gespeichert. Sie werden für künftige Verarbeitungen auf Blockebene aufbewahrt, wenn die Syndrome dieses spezifischen Unterblocks nicht aus lauter Nullen bestanden und kein Fehlermuster ungleich Null von dem Decodierer 24 der ersten Stufe generiert wurde. Der lokale Speicher 36 behält ebenfalls die Identifikation eines unkorrigierten Unterblocks als Unterblock-Identifikator "f". Nachdem ein Block vollständig ausgelesen wurde, werden das Prüfsyndrom S&sub0; der zweiten Stufe aus einem Syndromgenerator 29 der zweiten Stufe sowie die Syndrome der ersten Stufe S&sub1;, S&sub2; und S&sub3; für Unterblock f aus dem lokalen Speicher 36 von dem Decodierer 31 der zweiten Stufe verarbeitet, um zwei Fehler in Unterblock f zu korrigieren.
  • Der Teil des Subsystems, der zur Korrektur des Mehrbyte-Fehlers in einem Unterblock durch Verarbeitung von vier Syndrombytes dient, die den vier Prüfbytes C&sub0;, C&sub1;, C&sub2; und C&sub3; entsprechen, kann mit dem in der US-Patentschrift US-A- 4.494.234 beschriebenen fliegenden Korrektursubsystem identisch sein. Die spezifischen Einzelheiten der Logik oder die detaillierten Schritte, die an der Korrektur eines Zweibyte- Fehlers in einem Unterblock durch Verarbeitung der vier Syndrombytes beteiligt sind, sind nicht Bestandteil der vorliegenden Erfindung, werden jedoch in der oben angeführten Patentschrift erläutert. Wahlweise können auch andere, dem Stand der Technik entsprechende Anordnungen zur Korrektur von zwei Fehlern in einem Wort durch Verarbeitung von vier zusammengehörenden Syndrombytes zum Einsatz kommen.
  • B. Fliegende Leseverarbeitung zu Diagnosezwecken
  • Der Bus 26 wird durch einen entsprechenden Befehl der Speicher-Leitstation 20 für den Betrieb in diesem Modus vorbereitet. Dieser Operation liegt das gleiche Funktionsprinzip wie bei der oben beschriebenen, normalen fliegenden Verarbeitung zugrunde, mit der Ausnahme, daß die Logik im Fehlerdetektor 30 am Ende des Blocks jeden entdeckten Fehler auf erster Stufe entweder in Kundendaten, Unterblock-Prüfbytes oder Block-Prüfbytes meldet. Fehlermusterdaten der ersten Stufe werden in dem Fehlerspeicher 38 zu dem Zeitpunkt gespeichert, zu dem die Fehlermusterdaten an Punkt 28 mit den unkorrigierten Daten exklusiv geODERt werden. Nachdem der Block ausgelesen wurde, fordert die Speicher-Leitstation 20 die Fehlerinformationen von der Speichereinheit 25 an, indem sie den Bus 26 mit dem Übertragungsfehlerinformationsbefehl E konditioniert. Die angeforderten Fehlerinformationen werden über den Selektor 31 und Bus 32 an die Speicher-Leitstation 20 weitergeleitet.
  • Dies ist wünschenswert, da es der Speicher-Leitstation 20 ermöglicht wird, die Adresse von Fehlern der ersten Stufe zu identifizieren, die beim Betrieb im normalen fliegenden Modus wie in Abschnitt A oben beschrieben verborgen bleiben. Die Fehlerinformationen können verwendet werden, um Oberflächenfehler auf der Speicherplatte 21 beim einleitenden Testen zu lokalisieren, oder wenn vermutet wird, daß auf Überwachungsspuren nach dem einleitenden Testen Fehler aufgetreten sind, oder wenn eine bestimmte Speicherplatte eine überdurchschnittlich hohe Fehlerrate aufweist.
  • Zu beachten ist, daß bei beiden fliegenden Betriebsarten unkorrigierte Daten nicht über den Selektor 31 an die Speicher-Leitstation 20 übertragen werden.
  • C. Normale Leseverarbeitung im Verzögerungsbetrieb
  • In diesem Fall werden unkorrigierte Daten über den Selektor 31 an den Unterblock-Puffer 33 in der Speicher-Leitstation 20 bei ihrem Empfang von der Speicherplatte 21 übertragen, wobei der Bus 26 von der Speicher-Leitstation 20 für den Einsatz in diesem Modus entsprechend konditioniert wurde. Einzelbytefehler in Kundendaten eines bestimmten Unterblocks werden wie in Abschnitt A oben beschrieben von dem Syndromgenerator 23 der ersten Stufe und dem Decodierer 24 identifiziert, wobei die Informationen über Fehlermuster und Fehleradressen im Fehlerspeicher 38 gespeichert werden. Fehlermuster der ersten Stufe werden auch von dem Syndromgenerator 29 der zweiten Stufe bei der Berechnung von Syndromen der zweiten Stufe verwendet, wodurch gewährleistet wird, daß in den Syndromen der zweiten Stufe die korrigierten Daten der ersten Stufe berücksichtigt sind. Nachdem der Block ausgelesen wurde, gibt der Fehlerdetektor 30 an, ob ein Fehler in den Daten vorhanden war. Wenn Fehler auf erster Stufe vorhanden waren, konditioniert die Speicher-Leitstation 20 den Bus 26 mit dem Übertragungsfehlerinformationsbefehl. Dies bewirkt, daß der Selektor 31 den Inhalt des Fehlerspeichers 38 über den Bus 32 an die Speicher-Leitstation 20 leitet. Die Logik im Unterblock-Modifikator 34 der Speicher-Leitstation 20 verknüpft die Fehlermuster mit den unkorrigierten Daten 33 durch ein exklusives ODER. Die korrigierten Daten werden dann über den Bus 35 an das Datenverarbeitungssystem übertragen.
  • Wenn nach dem Auslesen eines Unterblocks nicht alle von dem Syndromgenerator 23 der ersten Stufe generierten Unterblocksyndrome (S&sub1;, S&sub2; und S&sub3;) gleich Null sind, und die Fehlermuster von dem Decodierer 24 der ersten Stufe gleich Null sind, erkennt der Fehlerdetektor 30, daß ein nicht der ersten Stufe entsprechender Fehler im Block vorhanden ist. Ein nicht der ersten Stufe entsprechender Fehler wird von der Speichereinheit 25 als Fehler der zweiten Stufe behandelt. Der Verschiebungszähler 40 läuft ständig, und seine Ausgabe wird im lokalen Speicher 36 an jeder Unterblockgrenze gespeichert. In gleicher Weise werden die Syndrome der ersten Stufe von dem Syndromgenerator 23 der ersten Stufe nach dem Auslesen jedes Unterblocks im lokalen Speicher gespeichert. Wenn der Fehlerdetektor 30 einen Fehler identifiziert, der eine Verarbeitung auf zweiter Stufe erfordert, unterbindet er die Fortschreibung des Verschiebungszählers 40 und der Unterblocksyndrome im lokalen Speicher 36 und gewährleistet dadurch, daß der Unterblock, auf den der Unterblockidentifikator verweist, den Unterblock angibt, der eine Verarbeitung auf zweiter Stufe erfordert. Nachdem der Block ausgelesen wurde, gibt der Fehlerdetektor 30 einen Fehler über eine Zeile 41 an. Wenn Fehler auf zweiter Stufe vorhanden waren, konditioniert die Speicher-Leitstation 20 den Bus 26 mit dem Übertragungsfehlerinformationsbefehl E. Dies bewirkt, daß der lokale Speicher 36 und der Syndromgenerator 29 der zweiten Stufe die Syndrome der ersten und zweiten Stufe und den Unterblock- Identifikator an den Decodierer 37 der zweiten Stufe in der Speicher-Leitstation 20 übertragen. Der Decodierer 37 der zweiten Stufe berechnet das Fehlermuster und die Fehleradresse innerhalb des Unterblocks für Fehler der zweiten Stufe und überträgt diese Information an die Unterblockmodifikatorlogik 34, die die Fehlermuster mit den unkorrigierten Daten in Puffer 33 durch ein exklusives ODER verknüpft. Die korrigierten Daten werden dann über Bus 35 an das Datenverarbeitungssystem übertragen. Bei einer normalen verzögerten Leseoperation werden Fehler in Prüfbytes nicht gemeldet, da sie nicht Teil der Kundendaten sind und nicht korrigiert zu werden brauchen.
  • D. Diagnostische Leseverarbeitung im Verzögerungsbetrieb
  • Wenn Bus 26 für diese Betriebsart konditioniert wird, ist die Operation mit der in Abschnitt C dieser Veröffentlichung beschriebenen identisch, mit der Ausnahme, daß in Unterblock- oder Blockprüfbytes befindliche Fehler der ersten Stufe ebenfalls bewirken, daß der Fehlerdetektor 30 eine Fehleranzeige an die Speicher-Leitstation 20 über Zeile 41 am Blockende übermittelt. Die Adressen der Prüfbytefehler sind im Fehlerspeicher 38 zusätzlich zu Informationen gespeichert, die sich auf Fehler der ersten Stufe in den Kundendaten beziehen. Diese Betriebsart ist wünschenswert, wenn Fehler auf der Speicherplatte 21 im Rahmen der einleitenden Analyse der Speicherplatte identifiziert werden oder wenn Plattenfehler beim Betrieb in normalen Datenverarbeitungsumgebungen vermutet werden.
  • Bei einer anderen Fehlerbedingung, die in dem System auftreten kann, enthält ein Unterblock mehr als zwei Fehler in einem Codewort und wird damit unkorrigierbar. Diese Fehlerbedingung geht über das Korrekturvermögen des in diesem Ausführungsbeispiel illustrierten Codes hinaus, und sie kann eine Fehlkorrektur zur Folge haben. Mitunter wird dies von dem Decodierer 37 der zweiten Stufe signalisiert, wenn im Anschluß an die Verarbeitung der Syndrombytes auf Blockebene die Syndromverarbeitungsschaltungen nicht in der Lage waren, die Adresse und/oder das Fehlermuster von einem oder beiden Fehlern zu identifizieren. Bei den Datenintegritätsprüfungen CR&sub1;-CR&sub4; werden auch solche unkorrigierten oder falsch korrigierten Fehler erkannt.
  • Während das bevorzugte Ausführungsbeispiel wie gezeigt und beschrieben von einer zweistufigen Codestruktur ausging, in der ein Einzelbytefehler in einem Codewort auf der ersten Stufe korrigierbar und ein Zweibytefehler in einem Codewort auf Blockebene korrigierbar war, sollte aus den vorstehenden Ausführungen deutlich geworden sein, daß das Verfahren und das System modifiziert werden können, um t&sub1;-Fehler auf der ersten Codewortebene und t&sub2;-Fehler auf Blockebene zu korrigieren, wobei t&sub1; größer als eins und t&sub2;-t&sub1; ist.
  • In Verbindung mit dem vorstehend beschriebenen System ist anzuerkennen, daß es notwendig ist, herauszufinden, welcher Unterblock zwei Einzelbytefehler enthielt, damit der Korrekturvorgang auf zweiter Stufe zur Korrektur von zwei Fehlern in einem Unterblock-Codewort ordnungsgemäß ausgeführt werden kann. In dem beschriebenen System wird ein Unterblock durch die Unterblock-Syndrome ungleich Null identifiziert, die, wenn sie von den Verarbeitungsschaltkreisen der ersten Stufe verarbeitet werden, einen unkorrigierbaren Fehler signalisieren. Wenn irgendein anderer Unterblock Syndrome ungleich Null liefert, die bewirken, daß die Syndromverarbeitungsschaltkreise der ersten Stufe eine Einzelfehlerkorrektur durchführen, beeinträchtigt dies nicht die auf Blockebene durchgeführte Korrektur des einen Unterblocks mit zwei Fehlern. Der Decodierer auf Blockebene dieses Ausführungsbeispiels kann nicht drei Fehler in einem Unterblock-Codewort oder zwei Fehler in zwei Unterblock-Codewörtern derselben Phase korrigieren.
  • Dort, wo der Block vier Unterblöcke mit jeweils zwei geschachtelten Codewörtern umfaßt, könnte das System bis zu acht Einzelbyte-Fehler korrigieren, vorausgesetzt, daß jeder Fehler in einem anderen Codewort auftrat. Wenn ein Codewort in jeder Phase zwei Einzelbyte-Fehler enthielte, müssen alle Codewörter in anderen Unterblöcken des Blocks von dem Decodierer 24 der ersten Stufe korrigierbar sein, damit das System diese Fehler korrigieren kann.
  • Wenn ein Überlauf im Fehlerspeicher 38 auftritt, meldet der Fehlerdetektor 30 in einer Zeile 42 eine unkorrigierbare Bedingung.
  • Die Ausgänge des Decodierers 24 der ersten Stufe und des Verschiebungszählers 40 sind als Busse dargestellt, die z. B. eine Breite von zwei Bytes aufweisen können. Beim Einsatz von Einzelbyte-Bussen ist es notwendig, einen serialisierenden Selektor (nicht gezeigt) in diesen Ausgängen zu dem Fehlerspeicher 38 einzufügen, damit die Angaben zu Fehlermuster und Verschiebung sequentiell in den Speicher 38 geleitet werden können. Außerdem könnte, sofern gewünscht, durch Modifikation des Selektors 31 oder Hinzufügen eines separaten Puffers ein Puffer dazu dienen, die Funktionen von Puffer 27 und Fehlerspeicher 38 selektiv durchzuführen, wenn Operationsmodus B (fliegender Diagnosemodus) nicht gewünscht wird.
  • Durch Verwendung der geschachtelten Zweiwege-ECC-Codestruktur können Bytegrenzen überschreitende Einzel fehler-Ereignisse als Fehler der ersten Stufe behandelt werden. Fehlerereignisse dieser Art (die häufig vorkommen) betreffen unterschiedliche ECC-Codewörter, eines in jeder Schachtelungsphase. Bei ihrer Konditionierung für den Verzögerungsbetrieb C oder D ist die ECC-Hardware in der Lage, festzustellen, daß die fehlerhaften Bytes (ein Byte in jedem geschachtelten Codewort) effektiv nebeneinander liegen, und gibt die fehlerhaften Bytes mit einer einzelnen Verschiebung an, die auf das erste der fehlerhaften Bytes verweist. Dadurch wird der Umfang an Korrekturdaten für ein einzelnes Fehlerereignis auf ein Minimum (d. h. auf 4 Bytes) reduziert.
  • Außerdem reduziert diese ECC-Konfiguration die Anforderungen der Speicher-Leitstation 20 an die Fehlerverarbeitung auf erster Stufe (sowohl hinsichtlich der Funktionalität als auch hinsichtlich der Verarbeitungszeit) auf ein Minimum. Die ECC- Hardware meldet Korrekturdaten für jedes Fehlerereignis zurück, so daß die Speicher-Leitstation 20 sofort die Fehlermuster auf die Daten anwenden kann, ohne daß eine weitere Verarbeitung der ECC-Daten erforderlich ist. Die Syndrome auf Blockstufe wurden für alle Fehlerereignisse der ersten Stufe angepaßt und können direkt verwendet werden, wenn eine Verarbeitung auf zweiter Stufe erforderlich ist.
  • Ohne diese Funktionsstufe in der ECC-Hardware müßte jede Phase eines Fehlerereignisses separat von der Speicher-Leitstation verarbeitet und die Blocksyndrome für jedes fehlerhafte Byte angepaßt werden. Im Falle von mehreren Fehlerereignissen der ersten Stufe muß die Speicher-Leitstation jede Unterblockphase mit einem Fehler seriell verarbeiten, bevor eine Verarbeitung auf zweiter Stufe durchgeführt werden kann.

Claims (9)

1. Ein Verfahren zur Korrektur von Fehlern in verschlüsselten, unkorrigierten Daten auf einer Plattenspeichereinheit unter Verwendung eines mehrstufigen Fehlerkorrekturcodes, wobei die Daten zu Blöcken formatiert werden und jeder Block in mehrere Unterblöcke mit fester Länge unterteilt wird, wobei jeder Unterblock mit einem Fehlercode zur Korrektur von Fehlern auf erster Stufe versehen wird und jeder Block mit einem Fehlercode zur Korrektur von Fehlern auf zweiter Stufe versehen wird;
gekennzeichnet durch die folgenden Schritte:
Übertragen der von einer Platte empfangenen, unkorrigierten Daten in einen ersten Puffer (33) in einer Speicher-Leitstation (20);
während der Übertragung Entschlüsseln von Fehlern auf erster Stufe in den Unterblöcken und Speichern der generierten Informationen zu Fehlermuster und Fehleradressen in einem Fehlerspeichermittel (38) auf der Plattenspeichereinheit, wobei das Fehlerspeichermittel die Fähigkeit zur Speicherung von Informationen zu Fehlermuster und Fehleradressen der ersten Stufe besitzt, die sich auf K Unterblöcke beziehen, wobei K kleiner als die maximale Anzahl von Unterblöcken in einem Block ist;
nachdem alle unkorrigierten Daten eines Blocks von der Speicher-Leitstation empfangen wurden, Übertragen der gespeicherten Fehlerinformationen zu Fehlermuster und Fehleradressen der ersten Stufe an die Speicher- Leitstation zur Korrektur von Fehlern der ersten Stufe und Durchführung nachfolgender Korrekturstufen.
2. Ein Verfahren zur Korrektur von Fehlern gemäß Anspruch 1, wobei der Schritt des Durchführens einer Fehlererkennung auf erster Stufe die folgenden Schritte umfaßt:
Gleichzeitiges Generieren von Syndromen der ersten und zweiten Stufe aus den unkorrigierten Daten in der Speichereinheit;
Decodieren der Syndrome auf erster Stufe, um Informationen über Fehlermuster und Fehleradressen der ersten Stufe zu erhalten;
Anpassen der Syndrome auf zweiter Stufe, um den Informationen über Fehlermuster und Fehleradressen der ersten Stufe Rechnung zu tragen.
3. Ein Verfahren gemäß Anspruch 1 oder Anspruch 2, das durch den Schritt des Speicherns von Unterblock- und Blockprüfbyte-Fehlerinformationen sowie der Informationen über Fehlermuster und Fehleradresse gekennzeichnet ist, um die Identifikation von Oberflächenfehlern auf einer Speicherplatte der Plattenspeichereinheit zu erleichtern.
4. Ein Verfahren zur Korrektur von Fehlern in verschlüsselten, unkorrigierten Daten auf einer Plattenspeichereinheit unter Einsatz eines mehrstufigen Fehlerkorrekturcodes, welches die folgenden Schritte umfaßt:
Auswählen zwischen einer Fehlerkorrektur im Verzögerungsbetrieb oder einer Fehlerkorrektur im fliegenden Modus; und
während des Betriebs im Verzögerungsmodus: Ausführen des Verfahrens wie in einem der Ansprüche 1 bis 3 niedergelegt;
Während des Betriebs im fliegenden Modus:
Übertragen der unkorrigierten Daten in einen zweiten Puffer (27) und gleichzeitiges Generieren von Syndromen der ersten und zweiten Stufe aus den unkorrigierten Daten;
Entschlüsseln der Syndrome auf erster Stufe, um Informationen über Fehlermuster zu erhalten;
Anpassen der Syndrome auf zweiter Stufe, um den Informationen über Fehlermuster und Fehleradressen auf erster Stufe Rechnung zu tragen;
nach einer Verzögerungszeit, die der zum Auslesen des nächsten Unterblocks benötigten Dauer entspricht, exklusives ODERn (bei 28) der gepufferten unkorrigierten Daten mit den Informationen über Fehlermuster, um Daten zu erhalten, bei denen die Fehlerkorrektur auf erster Stufe abgeschlossen ist; und
Übertragen der auf erster Stufe korrigierten Daten an den ersten Puffer (33) der Speicher-Leitstation zur Durchführung nachfolgender Korrekturstufen.
5. Ein Verfahren wie in Anspruch 4 dargelegt, bei dem während des Einsatzes im fliegenden Modus das Verfahren weiterhin durch die Schritte des Speicherns dieser Fehlermuster- und Verschiebungsinformationen gekennzeichnet ist, um die Identifikation von Oberflächenfehlern auf einer Speicherplatte der Plattenspeichereinheit zu erleichtern.
6. Vorrichtung zur Korrektur von Fehlern in verschlüsselten, unkorrigierten Daten auf einer Plattenspeichereinheit unter Verwendung eines mehrstufigen
Fehlerkorrekturcodes, wobei die Daten zu Blöcken formatiert werden und jeder Block in mehrere Unterblöcke mit fester Länge unterteilt wird, wobei jeder Unterblock mit einem Fehlercode zur Korrektur von Fehlern auf erster Stufe versehen wird und jeder Block mit einem Fehlercode zur Korrektur von Fehlern auf zweiter Stufe versehen wird und die Vorrichtung dadurch gekennzeichnet ist, daß sie folgendes umfaßt:
Mittel zum Übertragen der unkorrigierten, von einer Platte empfangenen Daten an einen ersten Puffer (33) in einer Speicher-Leitstation (20);
Decodiermittel beinhaltende und in der Speichereinheit befindliche Mittel zur Decodierung von Fehlern der ersten Stufe in den Unterblöcken und Speichern der generierten Informationen über Fehlermuster und Fehleradressen in einem Fehlerspeichermittel (38) auf der Plattenspeichereinheit, wobei das Fehlerspeichermittel die Fähigkeit besitzt, auf K Unterblöcke bezogene Informationen zu Fehlermuster und Fehleradressen der ersten Stufe zu speichern, wobei K kleiner als die maximale Anzahl von Unterblöcken in einem Block ist;
Mittel zum Übertragen der generierten Informationen zu Fehlermuster und Fehleradressen an die Speicher- Leitstation, nachdem alle unkorrigierten Daten eines Blocks von der Speicher-Leitstation empfangen wurden, zwecks Korrektur von Fehlern der ersten Stufe und Durchführung nachfolgender Korrekturstufen.
7. Eine Vorrichtung gemäß Anspruch 6, die ferner folgendes umfaßt:
Syndromerzeugende Mittel zum Empfangen der unkorrigierten Daten und Erzeugen von Syndromen der ersten und zweiten Stufe in der Speichereinheit aus diesen Daten, Decodiermittel zum Entschlüsseln der Syndrome auf erster Stufe, um Informationen zu Fehlermuster und Fehleradressen zu erhalten; und
in der Speichereinheit befindliche Mittel zum Anpassen der Syndrome auf zweiter Stufe, um den Informationen über Fehlermuster und Fehleradressen der ersten Stufe Rechnung zu tragen.
8. Vorrichtung wie in Anspruch 6 oder Anspruch 7 niedergelegt, die weiterhin folgendes umfaßt:
Mittel zum Speichern dieser Informationen über Fehlermuster und Fehleradressen und Mittel zum Speichern von Unterblock- und Blockprüfbyte-Fehlerinformationen, um die Identifikation von Oberflächenfehlern auf einer Speicherplatte zu erleichtern, die Bestandteil der Plattenspeichereinheit ist.
9. Vorrichtung wie in Anspruch 8 beschrieben, die weiterhin folgendes umfaßt:
Detektormittel, die der Speicher-Leitstation ein Fehlerereignis signalisieren, welche die Auswertung des Datenflusses innerhalb der Speichereinheit steuern und unkorrigierbare Fehler identifizieren, die eine Wiederholung erfordern.
DE3850192T 1987-08-31 1988-08-23 Verfahren und Vorrichtung zur Fehlerkorrektur bei gespeicherten Daten. Expired - Fee Related DE3850192T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US07/091,482 US4833679A (en) 1987-08-31 1987-08-31 Method and apparatus with improved error correction and error information availability

Publications (2)

Publication Number Publication Date
DE3850192D1 DE3850192D1 (de) 1994-07-21
DE3850192T2 true DE3850192T2 (de) 1995-01-12

Family

ID=22228016

Family Applications (1)

Application Number Title Priority Date Filing Date
DE3850192T Expired - Fee Related DE3850192T2 (de) 1987-08-31 1988-08-23 Verfahren und Vorrichtung zur Fehlerkorrektur bei gespeicherten Daten.

Country Status (4)

Country Link
US (1) US4833679A (de)
EP (1) EP0306196B1 (de)
JP (1) JPS6467769A (de)
DE (1) DE3850192T2 (de)

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4951284A (en) * 1988-12-14 1990-08-21 International Business Machines Corporation Method and means for correcting random and burst errors
US5068858A (en) * 1989-12-21 1991-11-26 International Business Machines Corporation Error correction capability varied with track location on a magnetic or optical disk
US5224106A (en) * 1990-05-09 1993-06-29 Digital Equipment Corporation Multi-level error correction system
US5220569A (en) * 1990-07-09 1993-06-15 Seagate Technology, Inc. Disk array with error type indication and selection of error correction method
US5280488A (en) * 1990-11-08 1994-01-18 Neal Glover Reed-Solomon code system employing k-bit serial techniques for encoding and burst error trapping
US5285456A (en) * 1991-05-15 1994-02-08 International Business Machines Corporation System and method for improving the integrity of control information
JP2721099B2 (ja) * 1991-12-18 1998-03-04 インターナショナル・ビジネス・マシーンズ・コーポレイション エラーバースト修正のための試行錯誤方法及びマルチバイトエラーの修正方法
US5602857A (en) * 1993-09-21 1997-02-11 Cirrus Logic, Inc. Error correction method and apparatus
US5761220A (en) * 1994-09-19 1998-06-02 Cirrus Logic, Inc. Minimum latency asynchronous data path controller in a digital recording system
US6038679A (en) * 1994-11-30 2000-03-14 International Business Machines Corporation Adaptive data recovery method and apparatus
US5627843A (en) * 1995-02-23 1997-05-06 Seagate Technology, Inc. Correcting up to two disc drive read errors and detecting the occurrence of more than two read errors
US5872672A (en) * 1996-02-16 1999-02-16 International Business Machines Corporation System and method for monitoring and analyzing tape servo performance
US5754565A (en) * 1996-10-15 1998-05-19 Quantum Corporation Reconstruction of syndromes for bi-level on-the-fly error correction in disk drive systems
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)
JP3568181B2 (ja) 1997-06-23 2004-09-22 株式会社東芝 ニューラルネット分析装置、記憶媒体
US6252961B1 (en) * 1997-07-17 2001-06-26 Hewlett-Packard Co Method and apparatus for performing data encryption and error code correction
US5946328A (en) * 1997-11-17 1999-08-31 International Business Machines Corporation Method and means for efficient error detection and correction in long byte strings using integrated interleaved Reed-Solomon codewords
US6098075A (en) * 1997-12-16 2000-08-01 International Business Machines Corporation Deferred referential integrity checking based on determining whether row at-a-time referential integrity checking would yield the same results as deferred integrity checking
US6393537B1 (en) 1998-01-06 2002-05-21 International Business Machines Corporation Host storage management control of outboard data movement
US6397229B1 (en) 1998-02-02 2002-05-28 International Business Machines Corporation Storage-controller-managed outboard incremental backup/restore of data
US6061824A (en) * 1998-03-05 2000-05-09 Quantum Corporation Pipelined error correction for minimizing disk re-reading in hard drives
US6279135B1 (en) * 1998-07-29 2001-08-21 Lsi Logic Corporation On-the-fly row-syndrome generation for DVD controller ECC
JP2000242440A (ja) * 1999-02-25 2000-09-08 Alps Electric Co Ltd ディスク装置
US6378105B1 (en) * 1999-05-24 2002-04-23 Oak Technology, Inc. Reed-Solomon multiplication method
US6532566B1 (en) 1999-05-24 2003-03-11 Oak Technology, Inc. Modified Reed-Solomon multiplication
US6915475B1 (en) * 1999-06-29 2005-07-05 Emc Corporation Data integrity management for data storage systems
US6691250B1 (en) * 2000-06-29 2004-02-10 Cisco Technology, Inc. Fault handling process for enabling recovery, diagnosis, and self-testing of computer systems
US7389463B2 (en) * 2001-05-29 2008-06-17 Thomson Licensing Hierarchical block coding for a packet-based communications system
FR2861517B1 (fr) 2003-10-23 2006-01-27 Thomson Licensing Sa Methode de reconstruction de paquets perdus et appareils implementant la methode
US7725800B2 (en) * 2005-08-05 2010-05-25 Hitachi Global Stroage Technologies Netherlands, B.V. Decoding techniques for correcting errors using soft information
JP4619931B2 (ja) * 2005-11-22 2011-01-26 株式会社東芝 復号装置、記憶装置および復号方法
US7440224B2 (en) * 2006-01-23 2008-10-21 Toshiba Corporation Disk drive servo
US7721049B2 (en) * 2006-03-27 2010-05-18 Kabuhsiki Kaisha Toshiba Disk drive write method
US20070279782A1 (en) * 2006-05-31 2007-12-06 Rydhan Abdul R Method and apparatus for determining offset between read and write transducers in a disk drive
US7453660B2 (en) * 2006-05-31 2008-11-18 Kabushiki Kaisha Toshiba Shock feed forward adaptive filters
US7468859B2 (en) * 2006-05-31 2008-12-23 Kabushiki Kaisha Toshiba Voice coil motor effective resistance determination
US20070279788A1 (en) * 2006-05-31 2007-12-06 Toshiba America Information Systems, Inc. Method and apparatus to perform defect scanning
US7436616B2 (en) 2006-05-31 2008-10-14 Toshiba Corporation Current pulsing for unloading
US20070279790A1 (en) * 2006-05-31 2007-12-06 Tanner Brian K Adjustable output voltage regulator for disk drive
US7457066B2 (en) * 2006-05-31 2008-11-25 Kabushiki Kiasha Toshiba Method and apparatus for phase-shift null-burst-pattern
US20070279781A1 (en) * 2006-05-31 2007-12-06 Toshiba America Information Systems, Inc. Channel training method and apparatus
US7890841B2 (en) * 2006-11-14 2011-02-15 Samsung Electronics Co., Ltd. Post-viterbi error correction method and apparatus
US8826110B2 (en) * 2012-07-17 2014-09-02 Lsi Corporation Systems and methods for defect scanning
US8930780B2 (en) * 2012-08-28 2015-01-06 Lsi Corporation Systems and methods for non-zero syndrome based processing
KR102296738B1 (ko) * 2015-06-01 2021-09-01 삼성전자 주식회사 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 반도체 메모리 장치의 에러 정정 방법

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5877034A (ja) * 1981-10-30 1983-05-10 Hitachi Ltd 記録方法
JPS58161547A (ja) * 1982-03-19 1983-09-26 Pioneer Electronic Corp デ−タの復号化方式
US4494234A (en) * 1982-12-29 1985-01-15 International Business Machines Corporation On-the-fly multibyte error correcting system
US4504948A (en) * 1982-12-29 1985-03-12 International Business Machines Corporation Syndrome processing unit for multibyte error correcting systems
US4525838A (en) * 1983-02-28 1985-06-25 International Business Machines Corporation Multibyte error correcting system involving a two-level code structure
JPH0767087B2 (ja) * 1983-03-19 1995-07-19 ソニー株式会社 エラ−訂正装置
GB8309768D0 (en) * 1983-04-11 1983-05-18 Indep Broadcasting Authority Error protection of linearly coded digital signals
JPS60103562A (ja) * 1983-11-11 1985-06-07 Hitachi Ltd 誤り訂正装置
US4625273A (en) * 1983-08-30 1986-11-25 Amdahl Corporation Apparatus for fast data storage with deferred error reporting
JPS6055734A (ja) * 1983-09-06 1985-04-01 Toshiba Corp エラ−訂正回路
JPS60114037A (ja) * 1983-11-25 1985-06-20 Matsushita Electric Ind Co Ltd 誤り訂正装置
JPS60142418A (ja) * 1983-12-28 1985-07-27 Hitachi Ltd 入出力エラ−回復方式
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
JPS62132270A (ja) * 1985-12-05 1987-06-15 Toshiba Corp 磁気デイスク装置
US4745604A (en) * 1986-10-20 1988-05-17 International Business Machines Corporation Method and apparatus for transferring data between a host processor and a data storage device

Also Published As

Publication number Publication date
DE3850192D1 (de) 1994-07-21
JPS6467769A (en) 1989-03-14
EP0306196A2 (de) 1989-03-08
EP0306196B1 (de) 1994-06-15
US4833679A (en) 1989-05-23
EP0306196A3 (en) 1990-12-19

Similar Documents

Publication Publication Date Title
DE3850192T2 (de) Verfahren und Vorrichtung zur Fehlerkorrektur bei gespeicherten Daten.
DE10133595B4 (de) Pufferschaltung, Speicherzugriffsverfahren und Reed-Solomon-Decoder
DE3586708T2 (de) Verfahren zur fehlererkennung und -korrektur durch mehrheitsentscheidung.
DE69626130T2 (de) Datenintegritätscode und querüberprüfender code mit logischer blockadresse
DE3784741T2 (de) Dekoder fuer produkt-kodes und verfahren zur dekodierung dieser kodes.
DE3882223T2 (de) Ausgebreitete Fehlerkorrekturvorrichtung mit Einzel-Paket-Fehlerkorrektur und Doppel-Paket-Fehlerdetektionscoden.
DE60015753T2 (de) System und verfahren zum schutz von daten und zur korrektur von bitfehlern folgend aus komponentenfehlern
DE2060643C3 (de) Schaltungsanordnung zur Korrektur von Einzelfehlern
DE68920523T2 (de) Verfahren zur Korrektur von Mehr-Byte-Fehlern.
DE3854791T2 (de) Reed-Solomon Code verwendendes Fehler-Korrektur-Verfahren
DE3787900T2 (de) Verfahren und Gerät zur Erzeugung von Prüfungs-Byten zur Fehlerdetektion für einen Datenblock.
DE2914515A1 (de) Verfahren und vorrichtung fuer ein wirksames fehlerentdeckungs- und korrektursystem
DE2942825A1 (de) Verfahren und vorrichtung zur verarbeitung sequentiell uebertragender digitaler informationsworte
DE2364788A1 (de) Verfahren und vorrichtung zur fehlerkorrigierenden datenuebertragung oder -speicherung
DE2357168A1 (de) Speichermodul fuer eine datenverarbeitungseinheit
WO1997047104A1 (de) Verfahren zur rechnergestützten rücksignalisierung in einem automatischen wiederholungs-anforderungs-verfahren
DE2053836C3 (de) Anordnung zur Korrektur von Fehlerbündeln in binär codierten Datengruppen
DE3786853T2 (de) Gerät zur Erkennung und Klassifizierung von Steuerwortfehlern.
DE2047868A1 (de) Schaltung zur Korrektur von Einzel fehlern in den Wortern eines zyklischen (n, k) Codes
DE3523278C2 (de) Decoder zur Decodierung eines zweistufig codierten Codes
DE2000565A1 (de) Fehlerkorrigierendes System zur Korrektur mehrfacher,zufaelliger Fehler
DE3852569T2 (de) Verfahren und Gerät zur Dekodierung von blockkodierten Daten, beeinträchtigt durch Ersatz, Einfügungen und Verlust von Symbolen.
DE69813392T2 (de) Verfahren zur Modul-Fehlerdetektion
EP0439649A1 (de) Einrichtung zur Fehlermustergenerierung bei Soft-Decision-Decodierung von Blockcodes
DE3855174T2 (de) Selbstprüfung der Paritätsregenerierung

Legal Events

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