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
Links
- 238000000034 method Methods 0.000 title claims abstract description 22
- 238000012937 correction Methods 0.000 claims abstract description 54
- 208000011580 syndromic disease Diseases 0.000 claims description 53
- 230000007547 defect Effects 0.000 claims description 5
- 238000006073 displacement reaction Methods 0.000 claims description 4
- 230000005540 biological transmission Effects 0.000 claims description 2
- 238000001514 detection method Methods 0.000 claims 1
- 238000011156 evaluation Methods 0.000 claims 1
- 230000003466 anti-cipated effect Effects 0.000 abstract 1
- 238000012545 processing Methods 0.000 description 39
- 230000003111 delayed effect Effects 0.000 description 5
- 230000001143 conditioned effect Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 230000000875 corresponding effect Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 239000003607 modifier Substances 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000003750 conditioning effect Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/12—Formatting, e.g. arrangement of data block or words on the record carriers
- G11B20/1217—Formatting, e.g. arrangement of data block or words on the record carriers on discs
- G11B20/1252—Formatting, 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
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/18—Error detection or correction; Testing, e.g. of drop-outs
- G11B20/1806—Pulse code modulation systems for audio signals
- G11B20/1809—Pulse code modulation systems for audio signals by interleaving
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/12—Formatting, e.g. arrangement of data block or words on the record carriers
- G11B20/1217—Formatting, e.g. arrangement of data block or words on the record carriers on discs
- G11B2020/1257—Count Key Data [CKD] format
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B2220/00—Record carriers by type
- G11B2220/20—Disc-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:
- 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.
- 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 ≤ k&sub0; wünschenswert, wobei k&sub0; als der kleinste Wert von k definiert ist, für den Fehlerwahrscheinlichkeiten Pbk (≤ 1) und Pbk (2,1) mit der k-Beschränkung in der Nähe von solchen ohne k-Beschränkung liegen, d. h. Pb ≤ 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.
- 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.
- 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.
- 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.
- 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.
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)
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)
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 |
-
1987
- 1987-08-31 US US07/091,482 patent/US4833679A/en not_active Expired - Fee Related
-
1988
- 1988-06-20 JP JP63150404A patent/JPS6467769A/ja active Pending
- 1988-08-23 DE DE3850192T patent/DE3850192T2/de not_active Expired - Fee Related
- 1988-08-23 EP EP88307772A patent/EP0306196B1/de not_active Expired - Lifetime
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 |