DE69903188T2 - Mehrstufige fehlererkennungs- und korrekturtechnik für datenspeicher-aufzeichnungsvorrichtung - Google Patents

Mehrstufige fehlererkennungs- und korrekturtechnik für datenspeicher-aufzeichnungsvorrichtung

Info

Publication number
DE69903188T2
DE69903188T2 DE69903188T DE69903188T DE69903188T2 DE 69903188 T2 DE69903188 T2 DE 69903188T2 DE 69903188 T DE69903188 T DE 69903188T DE 69903188 T DE69903188 T DE 69903188T DE 69903188 T2 DE69903188 T2 DE 69903188T2
Authority
DE
Germany
Prior art keywords
ecc
packet
buffer
packets
data
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
DE69903188T
Other languages
English (en)
Other versions
DE69903188D1 (de
Inventor
H. Mcauliffe
E. Zaczek
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.)
Exabyte Corp
Original Assignee
Exabyte 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 Exabyte Corp filed Critical Exabyte Corp
Publication of DE69903188D1 publication Critical patent/DE69903188D1/de
Application granted granted Critical
Publication of DE69903188T2 publication Critical patent/DE69903188T2/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/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1833Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • H03M13/2909Product codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • H03M13/2909Product codes
    • H03M13/2915Product codes with an error detection code in one dimension
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • H03M13/2918Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes with error correction codes in three or more dimensions, e.g. 3-dimensional product code where the bits are arranged in a cube
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • H03M13/2921Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes wherein error correction coding involves a diagonal direction
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/373Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with erasure correction and erasure determination, e.g. for packet loss recovery or setting of erasures for the decoding of Reed-Solomon codes
    • 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/10527Audio or video recording; Data buffering arrangements
    • G11B2020/1062Data buffering arrangements, e.g. recording or playback buffers
    • G11B2020/1075Data buffering arrangements, e.g. recording or playback buffers the usage of the buffer being restricted to a specific kind of data
    • G11B2020/10759Data buffering arrangements, e.g. recording or playback buffers the usage of the buffer being restricted to a specific kind of data content 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/1833Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
    • G11B2020/1843Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information using a cyclic redundancy check [CRC]
    • 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/1833Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
    • G11B2020/1853Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information using a product code which has inner and outer parity symbols
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1515Reed-Solomon codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Detection And Correction Of Errors (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

    Gebiet der Erfindung
  • Die vorliegende Erfindung bezieht sich allgemein auf eine Datenintegrität bei Datenaufnahme/Wiedergewinn-Vorrichtungen und insbesondere auf eine Mehrpegel-Fehlererfassungs- und Korrekturtechnik.
  • Hintergrund der Erfindung
  • Datenspeichervorrichtungen, die bei sowohl Kurz- als auch Langzeitkapazitäten verwendet werden, sind ein wesentlicher Teil moderner Computersysteme. Während Faktoren, wie z. B. Kosten, Vorrichtungsformfaktor, Speichermediengröße und - Kapazität und Aufnahme- und Wiedergewinnungszeiten, sehr wichtig sind, ist die Fähigkeit, eine Datenintegrität aufrechtzuerhalten, von größtem Belang.
  • Techniken wurden entwickelt, um Datenfehler zu erfassen und sogar zu korrigieren. Bei einer Technik wird ein zyklischer Redundanzcode (CRC) über die Daten erzeugt und gemeinsam mit den Daten an dem Speichermedium aufgenommen. Während der Wiedergewinnung der Daten von dem Speichermedium während einer späteren Sitzung wird der CRC aus den wiedergewonnenen Daten regeneriert und mit dem aufgenommenen CRC verglichen, der die Daten begleitet, um zu bestimmen, ob die Daten einen Fehler enthalten oder nicht. CRCs sind hilfreich bei der Erfassung von Fehlern, sie zeigen jedoch nicht den Ort des Fehlers an.
  • Fehlerkorrekturcode-(ECC-)Techniken wurden als Antwort auf dieses Problem entwickelt. Wie dies der Name impliziert, erfassen ECC-Techniken nicht nur Datenfehler, sondern werden auch verwendet, um Fehler zu korrigieren. Eine leistungsstarke Fehlererfassungstechnik, die häufig verwendet wird, ist als der Reed-Solomon-Fehlerkorrekturcode bekannt.
  • Wie mit dem CRC-Code wird ein ECC oft über die Daten, die an dem Speichermedium aufgenommen werden sollen, erzeugt und gemeinsam mit denselben gespeichert. Auf eine Wiedergewinnung der Daten hin werden die wiedergewonnenen Daten und ein begleitender, aufgenommener ECC durch den ECC-Generator gesandt, der bis zu einer bestimmten Anzahl von Fehlern in den wiedergewonnenen Daten erfaßt und korrigiert.
  • Die Hersteller von Speichervorrichtungen verwenden üblicherweise CRC- und ECC-Techniken zumindest zu einem gewissen Ausmaß bei dem Entwurf des Datenformates und einer zugeordneten Lese/Schreib-Logik, um eine Datenintegrität sicherzustellen. Üblicherweise wird nur eine Einzel- oder höchstens eine Doppel-Pegel-Fehlerkorrektur durchgeführt. Wenn schlechte Daten erfaßt werden und nicht unter Verwendung der Einzel- oder Doppel-Pegel-ECC-Technik korrigiert werden können, müssen die Daten erneut von dem Speichermedium gelesen werden, um nochmals zu versuchen, dieselben wiederzugewinnen. Dies ist zumindest ein zeitaufwendiges Verfahren. Abhängig von dem Mediumtyp kann dies außerdem einen Schaden an den Medien selbst bewirken, wie z. B. in dem Fall von Magnetbandvorrichtungen, bei denen erneute Lese-Operationen eine Rückgreifsequenz erfordern, die eine Abnutzung auf dem Magnetband bewirkt. Folglich besteht ein Bedarf nach einer robusteren Datenwiedergewinnungs- und Fehlerkorrekturtechnik zum Maximieren der Anzahl von Datenfehlern, die korrigiert werden können, ohne die Daten erneut lesen zu müssen.
  • Zusätzlich verzögert, da wiedergewonnene Daten üblicherweise in vordefinierten Blöcken von Daten mit geordneten Adressen an das Host-System gesandt werden, die Unfähigkeit, ein einzelnes oder wenige Datenbytes in einem bestimmten Block von Daten wiederzugewinnen, die Lieferung des gesamten Blocks von Daten an den Host, bis die "fehlenden" Daten korrigiert oder wiedergewonnen sind. Folglich muß in Systemen mit lediglich einer Ein- oder Doppel-Pegel- Fehlerkorrektur ein größerer Anteil der Daten von dem Speichermedium selbst als tatsächlich gute Daten wiedergewonnen werden. Wie bereits erwähnt wurde, müssen die Daten, wenn eine Fehlerkorrektur die wiedergewonnenen Daten nicht unter Verwendung der Ein- oder Doppel-Pegel-Fehlerkorrekturtechnik der Vorrichtung korrigieren kann, erneut von dem Speichermedium gelesen werden, was eine wesentliche Verzögerung bei dem Host beim Wiedergewinnen der Daten bewirkt. Folglich besteht auch ein Bedarf nach einer Technik zum Erhöhen der Fehlerkorrekturrate, um die Anzahl erneuter Lese- Operationen von dem Speichermedium zu reduzieren.
  • In dem U. S.-Patent 5,369,652 ist ein Datenspeichersystem offenbart, das eine Fehlererfassung und -Korrektur unter Verwendung von drei Fehlercodes aufweist. Die Daten werden logisch als ein dreidimensionales Array angeordnet, das aus einer Mehrzahl logisch rechtwinkliger Blöcke von Daten besteht. Jeder Datenblock weist Spalten und Zeilen von Daten auf. Ein erster Fehlercode, der Fehler korrigiert, erzeugt eine erste Redundanz in jeder der Spalten. Ein gleich positionierter Block von Datenzeilen in jedem der Blöcke bildet eine Arraydatenzeile. Die Arrayzeilen werden in Sätze von Arrayzeilen gruppiert, wobei die Anzahl von Arrayzeilen in jedem Satz umgekehrt zu einer Anzahl von Spuren eines Aufnahmemediums variiert, das gleichzeitig die Daten zur Aufnahme empfängt. Jeder Datensatz wird seriell bitweise in jeweilige Spuren des Bandaufnahmemediums aufgenommen. Vor einem Aufnehmen werden die Blockzeilen in jeder der Arrayzeilen logisch gedreht (ring-verschoben). Die Blockzeilenverschiebung ist für jeden Satz unterschiedlich, derart, daß die laterale Ausrichtung von Daten zum Verhindern dessen verändert wird, daß Mediendefekte, die sich quer zu den Spuren erstrecken, übermäßige Fehler in einer Datenspalte erzeugen. Nach der Blockzeilenverschiebung wird ein zweiter Fehlercode auf jede Blockzeile angewendet, während ein dritter Fehlercode auf jede Arrayzeile angewendet wird. Ein Rücklesen ist eine Umkehrung des Schreibprozesses. Fehlerzeiger werden aus der zweiten und der dritten Redundanz sowie aus Signaldatenformatfehlern erzeugt.
  • Das System in dem U. S.-Patent 5,369,652 richtet sich auf einen linearen Bandantrieb und macht es erforderlich, daß alle Daten in einem Block vor einem Durchführen des Erster- Pegel-ECC wiedergewonnen werden. Bei diesem ECC-Ansatz werden Daten dreimal gefaltet, um eine Raumfehlerteilung zu erzeugen. Die Fehlerredundanzberechnung für jeden zusätzlichen ECC-Ausdruck umfaßt den früheren ECC gemeinsam mit Daten, jedoch mit einem unterschiedlichen Datensatz. Jeder zusätzliche ECC kann beim Erfassen oder Erfassen und Korrigieren von Fehlern in dem früheren ECC helfen. Der Hauptgrund für diesen Ansatz besteht darin, Fehlerzeiger zu entwickeln, um anzuzeigen, wo die Fehler sind, und eine Korrektur zu erleichtern. Die Leistung der Korrektur wird stark erhöht, wenn Ortsinformationen ebenfalls bekannt sind. Schließlich ist dieser ECC-Ansatz an die Verwendung separater Datenspuren gebunden, was wichtig für einen linearen Bandantrieb ist.
  • In dem U. S.-Patent 4,908,826 ist ein digitales Mehrspur- Aufnahmemedium mit Datenblöcken auf unterschiedlichen Spuren offenbart, die algebraisch kombiniert sind, um einen Fehlerkorrekturcode (ECC) zu erzeugen, der in einem ECC- Block auf einer der Spuren gespeichert ist. Nicht wiedergewinnbare Fehler aufgrund einer horizontalen und vertikalen Bündelung von Ausfällen auf einem Magnetband z. B. werden dadurch reduziert, daß Datenblöcke entlang eines diagonalen Pfades einer XOR-Operation unterzogen werden, der mehrere Spuren überquert, um den ECC zu bilden. Dieses ECC- Verfahren ist für eine Parallelspurdatenaufnahmevorrichtung, wobei nur ein Pegel des ECC aufrechterhalten wird.
  • Die vorliegende Erfindung möchte ein verbessertes Datenwiedergewinnungssystem liefern, das nicht an eine lineare Aufnahme gebunden ist.
  • Zusammenfassung der Erfindung
  • Die vorliegende Erfindung ist ein neuartiges Verfahren und eine neuartige Vorrichtung zum Bereitstellen einer Mehrpegelfehlerkorrektur für Daten, die auf einem Speichermedium gespeichert sind. Gemäß der Erfindung wird die Fehlerkorrektur bei Datenpakten, die von dem Speichermedium wiedergewonnen werden, sowohl auf dem Paketpegel als auch dem Segmentpegel durchgeführt. Eine Segmentpegelfehlerkorrektur wird über mehrere Fälle mehrerer Strukturen von Pufferpaketen durchgeführt, die sich in dem Puffer befinden, um fehlende Pakete, die noch nicht von dem Speichermedium gelesen sind, zu korrigieren (d. h. zu erzeugen).
  • Die Erfindung reduziert die Anzahl von erneuten Lese- Operationen von Daten von dem Speichermedium durch ein Bereitstellen einer sehr leistungsstarken Mehrpegelfehlerkorrektur des Datenlesens während des ersten Durchlaufs. Die Fähigkeit, fehlende Pakete aus wiedergewonnenen, guten Paketen zu erzeugen, die bereits in dem Datenpuffer vorhanden sind, reduziert den Bedarf nach einem Rückgreifen und einem tatsächlichen erneuten Lesen von Daten, die während des ersten Durchlaufs des einen oder der mehreren Leseköpfe über das Spurpaket nicht ordnungsgemäß erfaßt wurden. Eine reduzierte Anzahl von Rückgreifsequenzen führt vom Standpunkt des Host aus betrachtet zu einer verbesserten Datenwiedergewinnungszeit.
  • Kurze Beschreibung der Zeichnungen
  • Die Erfindung wird durch ein Lesen der folgenden detaillierten Beschreibung gemeinsam mit den Zeichnungen, in den gleiche Bezugszeichen verwendet werden, um gleiche Elemente zu bezeichnen, besser verständlich. Es zeigen:
  • Fig. 1 ein Systemdiagramm einer Datenaufnahme/Wiedergewinn-Vorrichtung, in der die Erfindung wirkt;
  • Fig. 2 ein Diagramm, das ein Ausführungsbeispiel des Inhalts und der Organisierung eines Segments eines Mehrsegmentdatenpuffers darstellt, der gemäß der Erfindung implementiert ist;
  • Fig. 3(a) ein Diagramm eines Datenpaketes, das vollständig mit Benutzerdaten gefüllt ist;
  • Fig. 3(b) ein Diagramm eines Datenpaketes, das teilweise mit Benutzerdaten gefüllt und mit Fülldaten aufgefüllt ist;
  • Fig. 4(a)-4(d) ein Ausführungsbeispiel eines Schlüsselmehraufwandpaketes;
  • Fig. 5 ein Diagramm, das ein Ausführungsbeispiel des Inhaltes und der Organisation einer Paketstatustabelle, die dem Segment aus Fig. 2 entspricht, darstellt; und
  • Fig. 6 ein Flußdiagramm, das ein Ausführungsbeispiel eines Verfahrens zum Durchführen einer Fehlerkorrektur während einer Wiedergewinnungssitzung gemäß der Erfindung darstellt.
  • Detaillierte Beschreibung
  • Eine Mehrschichtfehlerkorrekturtechnik zum Rekonstruieren "fehlender" Datenpakete und dadurch zum Liefern einer erhöhten Datenintegrität und einer erhöhten Datenwiedergewinnungszeit, vom Standpunkt des Host aus betrachtet, für eine Aufnahme/Wiedergewinn-Vorrichtung ist im folgenden detailliert beschrieben.
  • Fig. 1 ist ein veranschaulichendes Ausführungsbeispiel eines Datenspeichersystems, in dem die vorliegende Erfindung wirkt. Bei der Aufnahme von Daten auf ein Speichermedium 50 werden Benutzerdaten 3 üblicherweise durch ein Hostsystem 2 in Logikblocksätzen 3 mit variabler Länge zu und von einer Aufnahme/Wiedergewinn-Vorrichtung 4 übertragen. Jeder Logikblocksatz (LBS) 3 ist eine Sammlung von Benutzerdaten- Bytes, die eine variable Anzahl von Logikblöcken (LB0, LB1, ..., LBN) enthalten. Jeder Logikblock (LB) ist innerhalb seines LBS durch eine eindeutige Logikblockadresse (LBA) definiert.
  • LBS-Daten 3 sind durch einen Datenpufferverwalter 6 in eine Anzahl von Datenpaketen 30 mit fester Größe partitioniert und in einem Pufferpaket 15 in einem Datenpuffer 10 plaziert, bis sie zu dem Speichermedium 50 übertragen werden.
  • Wenn die Zeit zur Aufnahme eines Pufferpaketes 15 oder eines Steuerungspaketes 36 auf das Speichermedium 15 kommt, bestimmt der Schreib-Logikverwalter 18 die Logikpaketadresse (LPA) des Pufferpaketes 15 und bewirkt dann, daß der Paket-CRC-Generator 20 einen Paket-Zyklische-Redundanzcode (CRC) über das Spurpaket und die LPA erzeugt. Der Schreib- Logik-Verwalter 18 bewirkt dann, daß der Paket-ECC- Generator 22 einen Paket-ECC über das Paket, die LPA und den Paket-CRC erzeugt. Der Schreib-Logik-Verwalter 18 formatiert das Paket, die LPA, den Paket-CRC, den Paket-ECC und Rahmeninformationen in ein Spurpaket 7. Die LPA weist die Adresse des Ortes des Paketes in dem Segment 11 auf. Wenn das Paket ein Steuerungspaket 36 ist, enthält die LPA Informationen, die zu dem Typ von Steuerungspaket gehören, der dieselbe ist. Ein Spurformatierer 24 empfängt formatierte Spurpakete 7 von dem Schreib-Logik-Verwalter 18 und formatiert dieselben in Spuren. Ein Modulator/Codierer 26 codiert und moduliert die formatierte Spur unter Verwendung von z. B. einem (1,6)-Kanalmodulationscode mit begrenzter Lauflänge (RLL) in ein 14-Bit-Codewort. Ein Spursynchronisierungssignal wird zu dem Beginn jeder Spur durch den Spursynchronisierungssignalgenerator 28 hinzugefügt, wobei die Spur dann zu einem Schreibkanal 30 gesandt wird, um auf dem Speichermedium 50 aufgenommen zu werden.
  • Spurpakete 7 werden auf ein Speichermedium 50 in Spuren 9 aufgenommen. Mehrere Spurpakete 7 existieren auf jeder Spur 9. Bei dem darstellenden Ausführungsbeispiel ist jedes Spurpaket 7 eine feste Größe und umfaßt Rahmeninformationen 72, ein Lokalpaketadreßfeld 74, ein Paketfeld 76, ein Paket-CRC-Feld 78 und ein Paket-ECC-Feld 80.
  • Während einer Wiedergewinnungssitzung werden Spurpakete 7 durch einen Lesekanal 32 erfaßt. Ein Paketrahmensynchronisierer 34 verwendet die Rahmeninformationen 72, um die vorauseilende Kante eines Spurpaketes 7 zu erfassen. Die Rahmeninformationen 72 sind ein eindeutiges Signal, das zwischen Spurpaketen 7 in der Kanaldomäne gesandt wird, um eine Synchronisierung zur Spurpaketerfassung zu liefern. Dieses Signal hält sich nicht an die Lauflängeneinschränkung des Kanalmodulationscodes und weist kein Byte-Symbol auf, das demselben zugeordnet ist, was bedeutet, daß es nicht durch den Demodulator/Decodierer 36 zu einem Byte-Symbol decodiert wird. Bei dem veranschaulichenden Ausführungsbeispiel ist das Paketrahmensignal 16 Bitzellen lang und ist eine 4, 8, 4-Struktur.
  • Ein Demodulator/Decodierer 36 demoduliert und decodiert das Paket 7. Ein Lese-Logik-Verwalter verwendet das Lokalpaketadreßfeld 74, um zuerst zu bestimmen, ob das Spurpaket 7 ein Steuerungspaket enthält. Die Handhabung von Steuerungspaketen wird durch den Steuerungspaketprozessor 42 (im folgenden erläutert) durchgeführt. Wenn das Spurpaket 17 kein Steuerungspaket enthält, enthält es entweder ein Datenpaket 30, ein Mehraufwandpaket 32 oder ein Segment-ECC-Paket 34. Der Lese-Logik-Verwalter 38 verwendet die Lokalpaketadresse 74 gemeinsam mit der gegenwärtigen Globalsegmentadresse (im folgenden Bezug nehmend auf Steuerungspakete erläutert), um den korrekten Ort des Spurpaketes in dem Puffer 10 zu bestimmen. Der Lese-Logik-Verwalter 38 gemeinsam mit dem Paket-CRC-Generator/Fehlerdetektor 20 verwendet das Paket- CRC-Feld 78, um zu erfassen, ob das Spurpaket 7 Fehler enthält. Wenn das Spurpaket 7 Fehler enthält, verwendet der Lese-Logik-Verwalter 38 gemeinsam mit dem Paket-ECC- Generator/Fehlerkorrektor 22 das Paket-ECC-Feld 80 um Fehler des Spurpaketes 7 zu erfassen und zu korrigieren. Wenn das Spurpaket 7 gut ist oder korrigiert wurde, extrahiert der Lese-Logik-Verwalter 38 den Inhalt des Paketfeldes 76 und sendet denselben an den richtigen Ort in dem Puffer 10.
  • Steuerungspakete 36 werden während einer Aufnahmesitzung durch einen Steuerungspaketprozessor 42 erzeugt und enthalten Informationen hinsichtlich der Position des Mediums (wie z. B. Anfang oder Ende des Mediums), den Anfang oder das Ende von Dateien oder Daten (z. B. Dateimarkierungen, Bandmarkierungen, Ende-der-Daten-Markierungen), globale Adreßinformationen (z. B. die Globalsegmentadresse von Daten, die das Steuerungspaket umgeben) und Systeminformationen (wie z. B. einen Vorrichtungssteuerungscode). Während einer Wiedergewinnungssitzung werden Steuerungspakete 36 durch den Steuerungspaketprozessor 42 verarbeitet, um die Position des Speichermediums zu bestimmen und zu bestimmen, wo wiedergewonnene Datenpakete, Puffermehraufwandpakete und Segment-ECC-Pakete in den Datenpuffer plaziert werden sollen.
  • Bestimmte Steuerungspakete, die periodisch entlang den Spuren des Speichermediums plaziert werden, enthalten eine Globalsegmentadresse. Der Steuerungspaketprozeß 42 extrahiert die Globalsegmentadresse aus diesen Steuerungspaketen und erhält eine gegenwärtige Globalsegmentadresse aufrecht. Die Globalsegmentadresse (GSA) adressiert jeden Rand des Segmentes 11 in dem Datenpuffer 10, der einem physischen Segment auf dem Band entspricht. Bei dem bevorzugten Ausführungsbeispiel weist der Datenpuffer 10, wie dies im folgenden erläutert wird, sechs Puffersegmente 11 auf. Die GSA ist eine 24-Bit-Zahl, die einen Adreßbereich von 2²&sup4; Segmenten 11 aufspannt, was den gesamten Bereich des Speichermediums bedeckt. Die unteren fünf Bits der gegenwärtigen GSA werden durch die oberen fünf Bits des Lokalpaketadreß- (LPA-) Feldes 74 eines Spurpaketes gemeinschaftlich verwendet. Die oberen zwei Bits der LPA ermöglichen ein Vier- Segment-Aliasing. Anders ausgedrückt muß sich das Band physisch um das Äquivalent von vier Speicherpuffern bewegen, bevor LPAs sich zu wiederholen beginnen. Es ist für Fachleute auf diesem Gebiet ersichtlich, daß dieses Adressierungsschema, nämlich die Einschließung einer Lokalpaketadresse in jedes Paket und die Verfügbarkeit einer zugeordneten Globalsegmentadresse, die periodisch nahe ihrer zugeordneten Pakete geschrieben wird, ein Verfahren zum eindeutigen Anzeigen des korrekten Ortes eines Paketes in einem Segment 11 des Datenpuffers 10 liefert, während der Mehraufwand auf dem Spurpaketpegel reduziert wird.
  • Fig. 2 stellt ein Ausführungsbeispiel des Inhalts und der Organisierung eines Segmentes 11 eines Mehrsegmentdatenpuffers 10 dar, der gemäß der Erfindung implementiert ist. Bei diesem Ausführungsbeispiel weist das Segment 11 einen Satz von Pufferpaketen 15 mit fester Größe auf, die jeweils zu entweder einem Daten/Mehraufwand-Bereich 104 oder einem Segment-ECC-Bereich 106 gehören. Bei dem veranschaulichenden Ausführungsbeispiel weist der Daten/Mehraufwand-Bereich 104 114 Pakete 15 mit jeweils 64 Bytes auf und ist in einem 32-x-32-Array angeordnet. Pakete 15 in dem Daten/Mehraufwand-Bereich 104 enthalten entweder Datenpakete 30 oder Mehraufwandpakete 32. Mehraufwandpakete 32 werden verwendet, um die Positionen dessen zu lokalisieren, wo die LBSs 3 in dem Segment 11 beginnen und enden. Üblicherweise wird nur ein Paket 15, das als das Schlüsselmehraufwandpaket 32 bezeichnet wird, für einen Mehraufwand in einem Segment 11 verwendet, so daß es bei dem veranschaulichenden Ausführungsbeispiel etwa 384 Kbytes (113 · 64 · 6 = 392.832 Bytes) gibt, die in dem Puffer 10 für LBS-Daten 3 in dem besten Fall verfügbar sind.
  • Wie gerade beschrieben wurde, enthält ein Paket 15, das sich in dem Daten/Mehraufwandbereich 104 des Segmentes 11 befindet, entweder ein Datenpaket 30 oder ein Mehraufwandpaket 32. Jedes Datenpaket 30 ist entweder vollständig mit LBS-Daten gefüllt, wie in Fig. 3(a) gezeigt ist, oder enthält LBS-Daten, gefolgt durch "Füll"-Daten, wie in Fig. 3 (b) dargestellt ist. Folglich wird bei dem veranschaulichenden Ausführungsbeispiel, wenn die Anzahl von LBS-Daten- Bytes nicht genau durch 64 teilbar ist, das letzte Datenpaket 30 eines bestimmten LBS 3 mit zu ignorierenden "Füll"- Daten aufgefüllt. Jeder LBS 3 beginnt an dem Anfang der Grenze eines Datenpaketes 30, wobei jedes Datenpaket 30 nicht mehr als einen LBS enthält.
  • Der Daten/Mehraufwand-Bereich 104 des Segmentes 11 enthält außerdem zumindest ein Mehraufwandpaket 32. Mehraufwandpakete 32 enthalten Mehraufwandinformationen über die LBSs 3, die in dem Segment 11 gespeichert sind. Diese Informationen umfassen den Ort aller Verbindungen zwischen LBSs 3, die sich in dem Segment 11 befinden, die Logikblockadresse (LBA) des ersten LBS 3, der in dem Segment 11 startet, die Größe und Anzahl von Logikblöcken (LB) in jedem LBS 3, der in dem Segment 11 startet, die Bandpartition, einen Volumeninitialisierungszählwert, einen Komprimierungsmodusindikator, einen Segment-Eben-Indikator und den Segment-CRC.
  • Da variable LBS-Größen zulässig sind, ist die Anzahl von Mehraufwandpaketen 32 in einem bestimmten Segment 11 variabel und hängt von der Anzahl von LBSs ab, die sich in dem gleichen Segment befinden. Das variable Mehraufwandsschema optimiert den verwendeten Segment-Mehraufwandraum. Jedes Segment 11 enthält zumindest ein Mehraufwandpaket 32, genannt das Schlüsselmehraufwandpaket 32. Bei dem veranschaulichenden Ausführungsbeispiel besetzt das Schlüsselmehraufwandpaket 32 immer den letzten Paketort des Segmentes (bei dem veranschaulichenden Ausführungsbeispiel Zeile 31, Spalte 31). Wenn es weniger als sieben LBS-Verbindungen in dem Segment 11 gibt, ist das Schlüsselmehraufwandpaket 32 das einzige Mehraufwandpaket 32 in dem Segment 11, wobei die LBS-Daten einen Ort bis zu dem vorletzten Paketort (Zeile 31, Spalte 30) besetzen können. Für alle bis zu acht zusätzlichen LBS-Verbindungen, die in dem Segment. 11 existieren, ist ein zusätzliches Mehraufwandpaket 32 in dem Segment 11 vorhanden. Die Mehraufwandpakete 32 bewegen sich zurück in der Zeile 31, bis die gesamte letzte Zeile des Segmentes 11 mit Mehraufwandpaketen 32 besetzt ist. Folglich ist bei dem dargestellten Ausführungsbeispiel die maximale Anzahl von LBS-Verbindungen, die in einem Segment 11 existieren können, 147.
  • Fig. 4(a) stellt ein Ausführungsbeispiel eines Schlüsselmehraufwandpaketes 32 dar. Bei diesem Ausführungsbeispiel besetzt das Schlüsselmehraufwandpaket 32 64 Bytes und weist neun separate Felder auf. Diese Felder umfassen ein Hauptschlüsselfeld 202, das Segment-CRC-Feld 204, ein erstes LBS-Attribute-Feld 206 und sechs LBS-Grenz-Felder 208a bis 208f. Jedes Feld 202, 204, 206 und 208a bis 208f umfaßt einen Acht-Bit-CRC, der denselben zugeordnet ist, zur Fehlererfassung über sein Feld.
  • Für jedes Segment 11, das LBS-Daten enthält, sind der Segment-CRC 204 und das Hauptschlüsselfeld 202 und das erste LBS-Attribute-Feld 206 immer gültig. Die Informationen in dem Hauptschlüsselfeld 202 bestimmen, welche der anderen Mehraufwandfelder in dem Schlüsselmehraufwandpaket 32 gültig sind.
  • Fig. 4(b) stellt ein Ausführungsbeispiel des Hauptschlüsselfeldes 202 in dem Schlüsselmehraufwandpaket. 32 dar. Das Hauptschlüsselfeld 202 besetzt vier Bytes, einschließlich eines unbenutzten Bytes 210, eines Segmentschlüssels 212, des Ortes der letzten LBS-Grenze 214 und des Hauptschlüsselfeld-CRC 216.
  • Der Segmentschlüssel 212 umfaßt die Bits AUSLASSEN, SYS- DATEN, LBS-ENDE, LBS-START und EBEN, die zum Übertragen von Schlüsselinformationen über die LBSs verwendet werden, die in dem Segment 11 gespeichert sind. Normalerweise ist das letzte verwendete Mehraufwandpaket 32 benachbart zu dem letzten Datenpaket 30 in dem Segment 11, außer dann, wenn das Segment 11 eben ist, oder wenn ein einzelnes unbenutztes Paket 15 weggelassen wird. Das AUSLASSEN-Bit ist gesetzt, um letzteren Fall anzuzeigen. SYS-DATEN ist gesetzt, um anzuzeigen, daß die LBS-Daten in diesem Segment 11 keine Benutzerlogikblockdaten sondern vielmehr Systemdaten sind. Die Systemdaten können Daten umfassen, die durch den Treiber erzeugt wurden, der verwendet wird, um Steuerungsinformationen, wie z. B. Orte von Dateimarkierungen, Verzeichnisstruktur, und Logikformatinformationen, die durch Software gesteuert werden, zu speichern. Das LBS-ENDE-Bit ist nur gesetzt, wenn zumindest ein LBS 3 einen Endpunkt aufweist, der sich in diesem Segment 11 befindet. Das LBS- START-Bit ist nur gesetzt, wenn zumindest ein LBS 3 einen Anfangspunkt in diesem Segment hat. Das EBEN-Bit ist gesetzt, um anzuzeigen, daß das Segment 11 eben gemacht wurde, wie im folgenden beschrieben ist.
  • Wieder Bezug nehmend auf Fig. 4 (b) umfaßt das Hauptschlüsselfeld 202 auch einen Letzter-LBS-Grenze-Feld-Ort 214. Dies ist ein Acht-Bit-Wert, der den letzten LBS-Grenz- Feldort in dem Mehraufwandbereich des Segmentes 11 lokalisiert. Fünf Bits werden verwendet, um anzuzeigen, in welcher Spalte der Zeile 31 das Mehraufwandpaket 32, das dieses Feld enthält, angeordnet ist. Die verbleibenden drei Bits sind Intrapaket-(IPK)-Bits, die verwendet werden, um eine von acht Anfangsadressen in dem 64-Byte-Datenpaket zu spezifizieren, wo das letzte LBS-Grenze-Feld beginnt.
  • Das Hauptschlüsselfeld 202 umfaßt ein 8-Bit-CRC-Feld 216, das verwendet wird, um den CRC zu speichern, der über das Hauptschlüsselfeld 202 berechnet ist. Bei dem veranschaulichenden Ausführungsbeispiel ist das CRC-Polynom: X[8] + X[7] + X[2] + X[0].
  • Das Schlüsselmehraufwandpaket 200 in Fig. 4(a) umfaßt außerdem ein Segment-CRC-Feld 204. Bei dem veranschaulichenden Ausführungsbeispiel ist Segment-CRC 204 ein 4-Byte-CRC, der zum Speichern der Segment-Postkorrekturfehlererfassung verwendet ist, und wird im folgenden besprochen.
  • Das Schlüsselmehraufwandpaket 200 umfaßt außerdem ein erstes LBS-Attribute-Feld 206. Ein Ausführungsbeispiel, das in Fig. 4 (c) dargestellt ist, umfaßt ein 4-Byte-Feld 220, das die Logikblockadresse (LBA) des ersten LBS 3 enthält, um einen Anfangspunkt in diesem Segment 11 aufzuweisen, ein 2-Byte-Feld 222, das den Bandinitialisierungszählwert enthält, ein 1-Byte-Feld 224, das die Bandpartitionszahl enthält, und ein 8-Bit-CRC-Feld 226, das zur Fehlererfassung über das gesamte erste LBS-Attribute-Feld 206 verwendet wird. Das CRC-Polynom bei dem veranschaulichenden Ausführungsbeispiel ist: X[8] + X[7] + X[2] + X[0].
  • Das Schlüsselmehraufwandpaket 32 kann außerdem eines und bis zu sechs LBS-Grenze-Felder 208a-308f umfassen. Fig. 4 (d) stellt ein Ausführungsbeispiel des Formates eines LBS- Grenze-Feldes 208 dar, einschließlich eines Logikblockgrößenfeldes 230, einer Anzahl von Logikblöcken pro LBS-Feld 232, eines Logikblockkomprimierungsmodus-(LBSC-)Indikators 234, eines LBS-Endpunkt-Ortes 236, 238, 240, eines Auslassen-Indikators 242, eines Eben-Indikators 244, eines Endpunkt-Gültig-Indikators 246 und eines LBS-Grenze-Feld- CRC 248. Das Logikblockgrößenfeld 230 besetzt 18 Bits bei dem veranschaulichenden Ausführungsbeispiel und spezifiziert die Größe der Logikblöcke (LB) 104, die in dem Logikblocksatz (LBS) 3 gespeichert sind. Die Anzahl von Logikblöcken pro LBS-Feld 232 besetzt 13 Bits und spezifiziert, wie viele LB 104 in dem LBS 3 gespeichert sind. Der Logikblockkomprimierungsmodus-(LBSC-)Indikator 234 ist nur gesetzt, wenn der LBS 3 durch eine Komprimierungshardware 116 komprimiert wurde. Der Ort eines gültigen LBS-Endpunktes wird unter Verwendung eines 6-Bit-LBS-Endpunkt-Byte-Feldes 236, eines 5-Bit-LBS-Endpunkt-Spalte-Feldes 238 und eines 5-Bit-LBS-Endpunkt-Zeile-Feldes 240 in Kombination mit einem Endpunktgültigkeitsindikator GÜLTIGES ENDE 246 bestimmt. Nur wenn der GÜLTIGES ENDE-Indikator 246 gesetzt ist, ist der Endpunktort gültig. Ein Beispiel eines gültigen LBS-Grenze-Feldes 208, das einen ungültigen Endpunkt aufweist, wäre für einen LBS 3, der in diesem Segment 11 begann, jedoch in dem nächsten Segment endete. Der Auslassen-Indikator 242 ist nur gesetzt, wenn es ein einzelnes, unbenutztes Paket 15 nach dem Endpunkt gibt. Der LBS- Grenze-Feld-CRC 248 enthält den CRC, der über das gesamte 8-Byte-LBS-Grenze-Feld 218 unter Verwendung des folgenden Polynoms berechnet wurde: X[8] + X[7] + X[2] + X[0].
  • Nicht alle LBS-Grenze-Felder 208a-308f sind in einem bestimmten Mehraufwandpaket 32 gültig. Das Hauptschlüsselfeld 202 in dem Mehraufwandpaket 32 zeigt auf das letzte gültige LBS-Grenze-Feld 208 in dem Mehraufwandpaket 32. Außerdem sind, wenn ein LBS 3 in einem Segment 11 beginnt, jedoch nicht in dem gleichen Segment 11 ändert, die letzten vier Bytes des Endpunktes nicht gültig, wobei jedoch die ersten vier Bytes gültig sind. Das ERSTES GÜLTIG-Bit in dem Segmentschlüsselfeld 212 in dem Hauptschlüsselfeld 202 des Schlüsselmehraufwandpaketes 32 zeigt an, daß der erste LBS, der in dem Segment beginnt, in dem allerersten Ort des Segmentes (z. B. Adresse 0) beginnt.
  • Wieder Bezug nehmend auf Fig. 2 weist das Segment 11 einen Satz von Paketen 15 auf, die in einen Segment-ECC-Bereich 106 organisiert sind. Der Segment-ECC-Bereich 106 umfaßt Paare P und Q unterschiedlicher Redundanzcode-Zeile-ECC- Pakete 152, 153, Spalten-ECC-Pakete 154, 155, Diagonal-ECC- Pakete 156, 157 und einen Satz "spezieller" ECC-Pakete 158. Die Zeilen-, Spalten-, Diagonal- und speziellen ECC-Pakete in dem Segment-ECC-Bereich 106 werden verwendet, um einen 4-Pegel-Fehlerkorrekturschutz über das gesamte Segment 11 zu liefern. Während einer Aufnahmesitzung wird der Inhalt der Pakete 152 bis 158 in dem Segment-ECC-Bereich 106 unter der Steuerung des Datenpufferverwalters 106 aus den Datenpaketen 30 und Mehraufwandpaketen 32 erzeugt, die sich in dem Segmentdatenbereich 104 befinden, und sorgt für eine Korrektur der Datenbereichspakete 30 während einer Wiedergewinnungssitzung.
  • Bei dem veranschaulichenden Ausführungsbeispiel verwendet jedes Puffersegment 11 einen 32-Bit-(4-Byte-)CRC zur Fehlererfassung und ein Mehrschicht-Reed-Solomon-Schema zur Fehlerkorrektur. Wie bereits beschrieben wurde, wird ein 32-Bit-CRC, der zur Segment-Postkorrekturfehlererfassung verwendet wird, in dem Segment-CRC-Feld 204 des Segmentschlüsselmehraufwandpaketes 32 gespeichert. Alle Datenpakete 30, die sich in dem Segmentdaten-Mehraufwand-Bereich 104 eines Segments 11 befinden, werden durch ein CRC-Generator- Polynom, das in dem CRC-Generator 14 implementiert ist, unterteilt, um den 4-Byte-CRC zu erzeugen. Das letzte Datenpaket 30 des Segmentes 11 (das Fülldaten enthalten kann, wenn ein LBS in demselben endet) wird bei dieser Berechnung immer als ein vollständiges Segment verwendet. Mehraufwandpakete 132 und weggelassene Pakete 15 sind nicht in der CRC-Berechnung enthalten. Bei dem veranschaulichenden Ausführungsbeispiel ist das Polynom, das zur Berechnung des Segment-CRC 304 verwendet ist, wie folgt:
  • X[32] + X[26] + X[23] + X[22] + X[16] + X[12] + X[11] + X[10] + X[8] + X[7] + X[5] + X[4] + X[2] + X[1] + X[0]
  • Eine Mehrschichtredundanz wird durch Paare P und Q redundanter Codes geschaffen, die über eine Mehrzahl von Strukturen von Paketen 15 eines Segmentes 11 eines Puffers erzeugt werden. Bei dem veranschaulichenden Ausführungsbeispiel umfaßt die Mehrzahl von Strukturen Zeilen, Spalten und Diagonalen. Andere Strukturen können verwendet werden. Zusätzlich wird eine Fehlerkorrektur über alle der ersten redundanten Codes P für sowohl Zeilen- als auch Spalten- ECC-Codes und alle der zweiten redundanten Codes Q für sowohl Zeilen- als auch Spalten-ECC-Codes durchgeführt, um spezielle ECC-Codes 158 zu erzeugen.
  • Ein Segmentkorrekturprozessor 8 umfaßt eine Reed-Solomon- Syndrom-Generator- und Korrektur-Schaltung, die für eine Ein- oder Zwei-Paket-Korrektur in jeder Zeile, Spalte oder Diagonale des Daten/Mehraufwand-Bereichs 104 des Segmentes 11 durch ein Verwenden von Löschzeigern sorgt. Ein Löschzeiger ist ein Zeiger auf einen Ort eines fehlenden Paketes, das behandelt wird, als ob es gelöscht wurde, derart, daß die Daten alle Nullen sind. Löschzeiger werden durch den SCP 8 gesetzt. Löschzeiger resultieren aus fehlenden oder nicht korrigierbaren Daten/Mehraufwand/Segment-ECC- Paketen 30, 32, 34. Zusätzlich können Zeile-ECC-Pakete 152, 153 und Spalte-ECC-Pakete 154, 155 durch einen vierten Korrektur-Pegel korrigiert werden, der in "speziellen" ECC- Paketen 158 vorgesehen ist. Folglich treten vier Fehlerkorrektur-Pegel auf dem Segmentpegel auf.
  • Eine Zeilenredundanz wird durch Zeile-ECC-Pakete P 152 und Q 153 für jede Zeile (0 bis 31) des Daten/Mehraufwand- Bereichs 104 des Puffersegmentes 11 geliefert. Bei dem veranschaulichenden Ausführungsbeispiel wird der gesamte 32- Paket-Mal-32-Paket-Daten/Mehraufwand-Bereich 104 des Puffersegmentes 11 verwendet, um eine Zeile-ECC-Redundanz zu erzeugen. Jede der 32 Zeilen von Paketen 30 in dem Daten/Mehraufwand-Bereich 104 wird verwendet, um zwei eindeutige Redundanz-Code-Zeile-ECC-Pakete P 152 und Q 153 zu erzeugen. Der Segment-ECC-Generator 16 erzeugt ein Byte in jedem der beiden Zeile-ECC-Pakete P 152 und Q 153 aus den zugeordneten Bytes aller Pakete 30 der gleichen Zeile. Eine Byte-Adresse 0 jedes Zeile-ECC-Paketes P 152 und Q 153 für die Zeile 5 z. B. wird aus allen Byte-Adresse-0-Orten der Datenpakete 30 in der Zeile 5 erzeugt.
  • Ähnlich wird eine Spaltenredundanz durch Spalte-ECC-Pakete P 154 und Q 155 für jede Spalte (0 bis 31) des Daten/Mehraufwand-Bereichs 104 des Puffersegmentes 11 geliefert. Bei dem veranschaulichenden Ausführungsbeispiel wird der gesamte 32-Paket-Mal-32-Paket-Daten/Mehraufwand-Bereich 104 des Puffersegmentes 11 verwendet, um eine Spalte-ECC- Redundanz zu erzeugen. Jede der 32 Spalten von Paketen 30 in dem Daten/Mehraufwand-Bereich 104 wird verwendet, um zwei eindeutige Redundanzcodes in den Spalte-Eec-Paketen P 154 und Q 155 zu erzeugen.
  • Eine Diagonalredundanz wird durch Diagonal-ECC-Pakete P 156 und Q 157 für jede Diagonale (0 bis 31) des Daten/Mehraufwand-Bereichs 104 des Puffersegments 11 geliefert. Die Diagonalen sind definiert, um jeweils 32 Pakete zu umfassen. Bei einem Ausführungsbeispiel beginnt eine bestimmte Diagonale N bei der Spalte 0 und der Zeile N, wobei das nächste Element der Diagonale durch ein Inkrementieren von sowohl der gegenwärtigen Spaltenzahl als auch der gegenwärtigen Zeilenzahl, modulo 32, gefunden wird. Tabelle 1 stellt die Berechnung der Diagonalen für dieses Ausführungsbeispiel dar. Tabelle 1
  • Vier Spezial-ECC-Pakete 158 werden aus den 64 Spalte-ECC- Paketen erzeugt. Diese vier Spezial-ECC-Pakete 158 werden verwendet, um fehlende Zeile-ECC-Pakete 152, 153 oder Spalte-ECC-Pakete 154, 155 zu korrigieren.
  • Wenn Datenpakete wiedergewonnen und in den Datenpuffer 10 plaziert werden, aktualisiert der Datenpufferverwalter 6 eine Paketstatustabelle (PST) 12. Jedes Segment 11 weist eine entsprechende PST 12 auf, die einen Eintrag enthält, der jedem Pufferpaket 15 in dem Segment 11 entspricht. Jeder PST-Eintrag zeigt folgendes an: (1) Ob das Paket empfangen wurde und gut ist; (2) ob das Paket durch eine Paketkorrektur korrigiert wurde; (3) ob das Paket durch eine Segmentkorrektur korrigiert wurde; und (4) ob das Paket unter Verwendung von entweder Zeile-, Spalte- oder Diagonal- ECC korrigiert wurde. Zusätzlich enthält jede PST 12 einen Paketzählwert, der die Gesamtzahl guter Pakete enthält, die für jeden Fall jeder Struktur (z. B. jede Zeile, Spalte und Diagonale) empfangen wurden. Jede PST 12 enthält außerdem einen Gesamtzählwert, der die Gesamtanzahl guter Pakete anzeigt, die in dem Segment 11 vorhanden sind. Die Zählwerte werden durch den SCP 8 verwendet, um zu bestimmen, wann eine Korrektur auf das Segment angewendet werden kann. Der SCP 8 verwaltet alle Segmentkorrekturaktivitäten.
  • Fig. 5 ist ein Diagramm einer PST 12, die dem Segment aus Fig. 2 entspricht. Jede Zelle 502 der PST 12 weist ein Byte auf. Bits jedes Zellbytes werden verwendet, um das Vorliegen eines guten Paketes an diesem Ort und die unterschiedlichen Möglichkeiten der Weise, auf die dasselbe korrigiert wurde, anzuzeigen. Zeile-, Spalte- und Diagonal-Gutes- Paket-Zählwerte 504 werden für jede Zeile, Spalte und Diagonale aufrechterhalten. Fehlendes-Paket-Zeiger 506 für jede Zeile, Spalte und Diagonale werden für jede Zeile, Spalte und Diagonale aufrechterhalten.
  • Während einer Wiedergewinnungssitzung wird der Segmentkorrekturprozessor (SCP) angeschaltet (wenn der GS in ein nachfolgendes Segment fortschreitet), um Pakete zu rekonstruieren, die bereits "fehlend" aus dem Puffer sind, wenn dieselben rekonstruierbar werden. Wenn sich z. B. ein Segment 11 zu füllen beginnt, wenn eine Zeile, Spalte oder Diagonale bis auf eine oder zwei "fehlende" Pakete voll wird, ist der SCP 8 in der Lage, die fehlenden Pakete zu rekonstruieren. Da jedes Paket in einer Zeile, Spalte und Diagonale liegt, kann die Rekonstruktion eines oder zweier fehlender Pakete entlang einer der drei unterschiedlichen Strukturen zumindest eine der anderen beiden Strukturen ausreichend ausfüllen, derart, daß die fehlenden Pakete, die sich in dieser Struktur befinden, dann rekonstruiert werden können. Wenn z. B. einer Zeile nur ein einzelnes Paket fehlt, wird eine Fehlerkorrektur hinsichtlich der gesamten Zeile unter Verwendung der beiden eindeutigen Redundanzcode-Zeile-ECC-Pakete P 152 und Q 153 durchgeführt, um das fehlende Paket zu rekonstruieren. Die Rekonstruktion des fehlenden Paketes kann die Diagonale, in der das rekonstruierte Pakete liegt, ausreichend ausfüllen, daß nur ein einzelnes anderes Paket fehlt. Eine Fehlerkorrektur wird dann hinsichtlich der Diagonale des rekonstruierten Paketes durchgeführt, um das fehlende Paket in der Diagonale zu rekonstruieren. Dieses Verfahren hält an, bis alle Pakete in dem Segment wiedergewonnen oder rekonstruiert sind.
  • Fig. 6 ist ein Flußdiagramm, das ein Ausführungsbeispiel eines Verfahrens 600 zum Durchführen einer Fehlerkorrektur während einer Wiedergewinnungssitzung darstellt, die in dem SCP implementiert ist. Der SCP wird in Schritt 602 ausgelöst, um eine Segmentkorrektur durch die Erfassung von entweder einem Steuerungspaket oder einem Datenpaket zu beginnen, das von einem Band wiedergewonnen wird, was zu der Aktualisierung der gegenwärtigen GSA zu einer neuen GSA führt. Sobald der SCP ausgelöst ist, um zu starten, tastet in Schritt 604 der SCP die PST ab, um zu bestimmen, ob das Puffersegment fehlende Pakete enthält. Bei dem veranschaulichenden Ausführungsbeispiel tastet der SCP den gesamten Paketzählwert jedes PST-Eintrags ab, der jeder Zeile, jeder Spalte und jeder Diagonale entspricht. Wenn alle Zeilen, Spalten und Diagonale einen Gesamtpaketzählwert von 32 aufweisen, sind alle Datenpakete vorhanden und der Inhalt des Segmentes ist bereit, um durch den Host freigegeben zu werden. Dieser Zustand wird in Schritt 610 signalisiert.
  • Wenn Datenpakete aus dem Datenpuffer fehlen, tastet in Schritt 606 der SCP jeden Fall jeder vordefinierten Pufferpaketstruktur ab, um zu bestimmen, ob eines oder zwei Pakete korrigierbar sind. Bei dem veranschaulichenden Ausführungsbeispiel tastet der SCP den Gesamtpaketzählwert 504 jedes PST-Eintrags ab, der jeder Zeile, jeder Spalte und jeder Diagonale entspricht. Wenn eine Zeile, Spalte oder Diagonale einen Gesamtpaketzählwert 504 aufweist, die um eins oder zwei eines Gesamt-Zeile/Spalte/Diagonale- Zählwerts kleiner ist, ist dieser bestimmte Zeile/Spalte/Diagonal-Fall korrigierbar, um das oder die fehlenden Pakete dieses Falls wiederzugewinnen. Schritt 606 wird wiederholt, bis ein korrigierbarer Fall erfaßt wird.
  • Sobald ein korrigierbarer Fall erfaßt ist, wird eine Paketkorrektur in Schritt 608 durchgeführt. Bei dem bevorzugten Ausführungsbeispiel wird die Paketkorrektur durch eine Reed-Solomon-Fehlerkorrekturcode durchgeführt. Der SCP 12 verwendet eine Löschkorrektur zum Korrigieren von entweder Ein- oder Zwei-Paket-Fehlern. Ein Verwenden eines Reed- Solomon-Korrekturcodes mit zwei redundanten Codewörtern liefert die Fähigkeit, einen einzelnen Fehler zu lokalisieren und denselben zu korrigieren, oder zwei Fehler zu korrigieren, wenn die Orte bekannt sind. Um zwei Fehler zu korrigieren, müssen die bekannten Orte gelöscht oder auf Null rückgesetzt werden, so daß dieselben nicht zu einem Fehlerausdruck bei den Syndrom-Berechnungen beitragen. Dies wird als Löschkorrektur bezeichnet. Zusätzlich ist es möglich, nur einen Ort mit einer Löschkorrektur zu korrigieren. Die Schritte 604 bis 608 werden wiederholt, bis alle Datenpakete in dem Segment vorhanden sind, wobei zu diesem Zeitpunkt dieser Zustand in Schritt 610 signalisiert wird, wobei das Verfahren 600 dann zu Ende ist.
  • Wie aus der obigen detaillierten Beschreibung der Erfindung ersichtlich ist, wird eine Datenintegrität über eine Mehrschicht-Fehlerkorrektur, eine Schicht auf dem Paketpegel und vier Schichten auf dem Segment-Pegel, beibehalten. Wie dies für Fachleute auf diesem Gebiet ersichtlich ist, kann die Anzahl von Fehlerkorrekturschichten einfach erhöht oder gesenkt werden, indem die Anzahl von Pufferpaketstrukturen verändert wird, über die eine Fehlerkorrektur durchgeführt werden soll. Außerdem können die tatsächlichen Pufferpaketstrukturen, die verwendet werden, wenn eine Fehlerkorrektur durchgeführt wird, von Entwurf zu Entwurf verändert werden, während dennoch die Leistungs-Fehlerkorrekturtechnik der Erfindung verwendet wird. Eine oder mehrere der Mehrzahl von Pufferpaketstrukturen können z. B. eine Zick-Zack- oder eine abwechselnde Pufferpaketstruktur anstelle oder zusätzlich zu einer Zeilen-, Spalten- oder Diagonalstruktur sein.

Claims (13)

1. Eine Vorrichtung zum Verifizieren von Daten, die von einem Speichermedium (50) wiedergewonnen werden, wobei die Vorrichtung folgende Merkmale aufweist:
einen Datenpuffer (10) mit folgenden Merkmalen:
einer Mehrzahl von Pufferpaketen (104), die in einem Array angeordnet sind, das eine Mehrzahl von Fällen (ZEILE0, ..., ZEILE31, SPALTE0, ..., SPALTE31, DIAG-ECC, SPEZIAL-ECC) einer Mehrzahl von Pufferpaketstrukturen (ZEILE, SPALTE, DIAGONAL, SPEZIAL) aufweist; und
einer Mehrzahl von Puffer-Fehlerkorrekturcode- (ECC)-Paketsätzen (106, ZEILE-ECC, DIAG-ECC, SPALTE-ECC, SPEZIAL-ECC), wobei jeder derselben einem jeweiligen der Mehrzahl von Fällen der Mehrzahl von Pufferpaketstrukturen entspricht, wobei jeder der ECC-Paketsätze zur Fehlerkorrektur verwendet wird und eines oder mehrere Puffer- ECC-Pakete (152, 153; 156, 157; 154, 155; 158) aufweist, die jeweils einen Fehlerkorrekturcode enthalten, der über jedes der Pufferpakete bei dem entsprechenden Fall des jeweiligen Puffer- ECC-Pakets erzeugt wird;
einen Lese-Logik-Verwalter (38), der ein Paket (76) empfängt, das von dem Speichermedium wiedergewonnen wird, wobei das Paket entweder ein Datenpaket (30) oder ein Fehlerkorrekturcode-(ECC)-Paket aufweist, und nur dann, wenn das Paket (76) fehlerfrei ist, das Paket in ein Pufferpaket in dem Datenpuffer plaziert, wenn das Paket ein Datenpaket ist, und das Paket in ein Puffer ECC-Paket in dem Datenpuffer plaziert, wenn das Paket ein ECC-Paket ist; und
einen Steuerungsprozessor (8), der das Vorliegen eines korrigierbaren Falls erfaßt, wobei der korrigierbare Fall einen der Fälle der Mehrzahl von Pufferpaketstrukturen aufweist, der ein korrigierbares Paket aufweist, und bewirkt, daß der korrigierbare Fall korrigiert wird.
2. Eine Vorrichtung gemäß Anspruch 1, die ferner folgendes Merkmal aufweist:
einen Datenpuffer-Fehlerkorrekturcode-(ECC)-Generator (16), der auf den Steuerungsprozessor (8) anspricht, der den korrigierbaren Fall korrigiert.
3. Eine Vorrichtung gemäß Anspruch 1, bei der die Mehrzahl von Datenpufferstrukturen folgende Merkmale aufweist:
eine Mehrzahl von Zeilen, eine Mehrzahl von Spalten und eine Mehrzahl von Diagonalen.
4. Ein Speichermedium (50) für eine Aufnahme/Wiedergewinn-Vorrichtung (4), wobei die Aufnahme/Wiedergewinn-Vorrichtung einen Datenpuffer (10) aufweist, wobei der Datenpuffer eine Mehrzahl von Pufferpaketen (15, 104) und eine Mehrzahl von Puffer- Fehlerkorrekturcode-(ECC)-Paketen (15, 106) aufweist, wobei die Mehrzahl von Pufferpaketen eine Mehrzahl von Fällen (ZEILE0, ..., ZEILE31, SPALTE0, ..., SPALTE31, DIAG-ECC, SPEZIAL-ECC) einer Mehrzahl von Pufferpaketstrukturen (ZEILE, SPALTE, DIAGONAL, SPEZIAL) aufweist, wobei das Speichermedium folgende Merkmale aufweist:
eine Mehrzahl von Datenpaketen (76), wobei jede Mehrzahl von Datenpaketen auf jeweils eines der Mehrzahl von Pufferpaketen (15, 104) abgebildet ist und zu einem oder mehreren der Mehrzahl von Fällen der Mehrzahl von Pufferpaketstrukturen gehört; und
eine Mehrzahl von Fehlerkorrekturcode-(ECC)- Paketsätzen (106, ZEILE-ECC, DIAG-ECC, SPALTE-ECC, SPEZIAL-ECC), wobei jeder derselben einem jeweiligen der Mehrzahl von Fällen der Mehrzahl von Pufferpaketstrukturen entspricht, wobei jeder der ECC-Paketsätze zur Fehlerkorrektur verwendet wird und eines oder mehrere der Puffer-ECC-Pakete (152, 153; 156, 157; 154, 155; 158) aufweist, die jeweils einen Fehlerkorrekturcode enthalten, der über jedes der Datenpakete erzeugt wird, die auf den entsprechenden Fall abgebildet sind.
5. Ein Verfahren zum Korrigieren fehlender Daten von einem Segment (11) eines Datenpuffers (10), wobei das Segment eine Mehrzahl von Pufferpaketen (104, 15) und eine Mehrzahl von Fehlerkorrekturcode-(ECC)-Paketen (106, 15) aufweist, wobei die Mehrzahl von Pufferpaketen in einem Array angeordnet ist, das eine Mehrzahl von Fällen (ZEILE0, ..., ZEILE31, SPALTE0, ...., SPALTE31, DIAG-ECC, SPEZIAL-ECC) einer Mehrzahl von Pufferpaketstrukturen (ZEILE, SPALTE, DIAGONAL, SPEZIAL) aufweist, wobei die Mehrzahl von ECC-Paketen eine Mehrzahl von Puffer-Fehlerkorrekturcode-(ECC)-Paketsätzen (106, ZEILE-ECC, DIAG-ECC, SPALTE-ECC, SPEZIAL-ECC) aufweist, wobei jeder derselben einem jeweiligen der Mehrzahl von Fällen der Mehrzahl von Pufferpaketstrukturen entspricht, wobei jeder der ECC-Paketsätze zur Fehlerkorrektur verwendet wird und eines oder mehrere Puffer-ECC-Pakete (152, 153; 156, 157; 154, 155; 158) aufweist, die jeweils einen Fehlerkorrekturcode enthalten, der über jedes der Pufferpakete bei dem entsprechenden Fall des jeweiligen Puffer-ECC-Pakets erzeugt wird, wobei das Verfahren folgende Schritte aufweist:
Bestimmen (604, 606), ob einer der Fälle der Mehrzahl von Pufferpaketstrukturen ein fehlendes, jedoch rekonstruierbares Paket aufweist;
Rekonstruieren (608) des fehlenden, jedoch rekonstruierbaren Pakets;
Bestimmen, ob alle der Pufferpakete in dem Segment gute Daten enthalten; und
Wiederholen des ersten Bestimmungsschrittes bis zu dem zweiten Bestimmungsschritt, wenn noch nicht alle der Pufferpakete in dem Segment gute Daten enthalten.
6. Ein Verfahren gemäß Anspruch 5, das ferner folgenden Schritt aufweist:
Aufrechterhalten einer Paketstatustabelle (PST) (12), wobei die PST einen PST-Eintrag (502, 504, 506) aufweist, der jedem der Mehrzahl von Pufferpaketen und jedem der Mehrzahl der Puffer-ECC-Pakete entspricht, wobei jeder PST-Eintrag anzeigt, ob das entsprechende Pufferpaket oder das Puffer-ECC-Paket korrekt ist.
7. Eine Vorrichtung gemäß Anspruch 1, wobei:
das Paket (76) einen Paketpegel-Fehlerkorrekturcode (80) aufweist; und
die Vorrichtung folgendes Merkmal aufweist:
einen Paketpegelfehlerkorrektor (22), der einen Fehler in dem Paket unter Verwendung des Paketpegel- Fehlerkorrekturcodes korrigiert, bevor das Paket in dem Datenpuffer plaziert wird, wenn das Paket einen Fehler enthält.
8. Eine Vorrichtung gemäß Anspruch 1, bei der:
der Steuerungsprozessor (8) einen Datenpuffer-Bereit- Zustand erfaßt und signalisiert, wobei der Datenpuffer-Bereit-Zustand anzeigt, daß jedes der Mehrzahl der Pufferpaketen in dem Datenpuffer korrekte Datenpakete enthält, und daß jedes der Mehrzahl von Puffer-ECC- Paketen korrekte ECC-Pakete enthält.
9. Eine Vorrichtung gemäß Anspruch 3, bei der die Mehrzahl von Puffer-Fehlerkorrekturcode-(ECC)-Paketen folgende Merkmale aufweist:
eine Mehrzahl von Zeile-Fehlerkorrekturcode-(ECC)- Pufferpaketen (ZEILE-ECC), die jeweils auf eine entsprechende Zeile abgebildet sind, zum Speichern eines Zeilen-ECC-Pakets, das einen Zeilen-ECC enthält, der über jedes der Pufferpakete in der entsprechenden Zeile (ZEILE0, ..., ZEILE31) erzeugt wird;
eine Mehrzahl von Spalte-ECC-Pufferpaketen (SPALTE- ECC), die jeweils auf eine entsprechende Spalte abgebildet sind, zum Speichern eines Spalte-ECC-Pakets, das einen Spalte-ECC enthält, der über jedes der Pufferpakete in der entsprechenden Spalte (SPALTE0, ..., SPALTE31) erzeugt wird;
eine Mehrzahl von Diagonal-ECC-Pufferpaketen (DIAG- ECC), die jeweils auf eine entsprechende Diagonale abgebildet sind, zum Speichern eines Diagonal-ECC- Pakets, das einen Diagonal-ECC enthält, der über jedes der Pufferpakete in der entsprechenden Diagonale erzeugt wird.
10. Eine Vorrichtung gemäß Anspruch 9, bei der die Mehrzahl von Puffer-Fehlerkorrekturcode-(ECC)-Paketen folgendes Merkmal aufweist:
eine Mehrzahl von Spezial-Fehlerkorrekturcode-(ECC)- Pufferpaketen (SPEZIAL-ECC), die jeweils auf eine Mehrzahl von entsprechenden Zeile-ECC-Paketen (ZEILE- ECC) und Spalte-ECC-Paketen (SPALTE-ECC) abgebildet sind, zum Speichern eines Spezial-ECC-Pakets, das einen Spezial-ECC enthält, der über jedes der entsprechenden Zeile-ECC-Pakete und Spalte-ECC-Pakete erzeugt wird.
11. Eine Vorrichtung gemäß Anspruch 1, die folgendes Merkmal aufweist:
eine Paketstatustabelle (PST) (12), wobei die PST einen PST-Eintrag (502, 504, 506) aufweist, der jedem der Mehrzahl von Pufferpaketen und jedem der Mehrzahl der Puffer-ECC-Pakete entspricht, wobei jeder PST- Eintrag anzeigt, ob das entsprechende Pufferpaket oder Puffer-ECC-Paket korrekt ist.
12. Ein Speichermedium gemäß Anspruch 4, bei dem die Mehrzahl von Datenpufferstrukturen folgende Merkmale aufweist:
eine Mehrzahl von Zeilen, eine Mehrzahl von Spalten und eine Mehrzahl von Diagonalen.
13. Ein Speichermedium gemäß Anspruch 4, bei dem:
jedes der Mehrzahl von Datenpaketen und jedes der Mehrzahl von ECC-Paketen einen Paketpegel- Fehlerkorrekturcode (80) aufweist, der jeweils über das Datenpaket oder das ECC-Paket erzeugt wird.
DE69903188T 1998-10-20 1999-10-20 Mehrstufige fehlererkennungs- und korrekturtechnik für datenspeicher-aufzeichnungsvorrichtung Expired - Fee Related DE69903188T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/176,014 US6367047B1 (en) 1998-10-20 1998-10-20 Multi-level error detection and correction technique for data storage recording device
PCT/US1999/024550 WO2000023997A2 (en) 1998-10-20 1999-10-20 Multi-level error detection and correction technique for data storage recording device

Publications (2)

Publication Number Publication Date
DE69903188D1 DE69903188D1 (de) 2002-10-31
DE69903188T2 true DE69903188T2 (de) 2003-05-28

Family

ID=22642627

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69903188T Expired - Fee Related DE69903188T2 (de) 1998-10-20 1999-10-20 Mehrstufige fehlererkennungs- und korrekturtechnik für datenspeicher-aufzeichnungsvorrichtung

Country Status (7)

Country Link
US (1) US6367047B1 (de)
EP (1) EP1125294B1 (de)
JP (1) JP2002528838A (de)
AT (1) ATE225073T1 (de)
AU (1) AU1126800A (de)
DE (1) DE69903188T2 (de)
WO (1) WO2000023997A2 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10345438A1 (de) * 2003-09-30 2005-05-12 Siemens Ag Verfahren und Vorrichtung zum Dekodieren von mittels paketorientierten Datenübertragungsnetzen übertragenen kodierten Datenpaketen und Verfahren und Vorrichtung zum Kodieren und Dekodieren von über paketorientierte Datenübertragungsnetze zu übertragende Datenpaketen

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3735498B2 (ja) * 1999-11-09 2006-01-18 株式会社東芝 情報記録媒体、情報記録装置、情報記録方法
US7356752B2 (en) * 2000-03-14 2008-04-08 Comtech Telecommunications Corp. Enhanced turbo product codes
AU2001289296A1 (en) * 2000-04-04 2001-10-15 Advanced Hardware Architectures, Inc. Enhanced turbo product code decoder system
US7107505B2 (en) 2001-03-27 2006-09-12 Comtech Aha Corporation Concatenated turbo product codes for high performance satellite and terrestrial communications
US8656246B2 (en) * 2001-04-16 2014-02-18 Qualcomm Incorporated Method and an apparatus for use of codes in multicast transmission
US6757848B2 (en) * 2001-06-19 2004-06-29 Hewlett-Packard Development Company, L.P. Recovery of user data from partially incorrect data set in tape data storage system
US6978414B2 (en) * 2001-07-17 2005-12-20 Hewlett-Packard Development Company, L.P. Method and apparatus for protecting against errors occurring in data storage device buffers
US6958873B2 (en) * 2001-07-31 2005-10-25 Hewlett-Packard Development Company, L.P. Data rewrite control in data transfer and storage apparatus
US7042667B2 (en) * 2001-07-31 2006-05-09 Hewlett-Packard Development Company, L.P. Data storage
US6883122B2 (en) * 2001-07-31 2005-04-19 Hewlett-Packard Development Company, L.P. Write pass error detection
US6931576B2 (en) * 2002-01-07 2005-08-16 Sun Microsystems, Inc. Data integrity device providing heightened error protection in a data processing system
US7046610B2 (en) * 2002-04-24 2006-05-16 Ricoh Company, Ltd. Recording medium suitable for recording/reproducing multi-level data
US7437651B2 (en) * 2004-06-29 2008-10-14 Hewlett-Packard Development Company, L.P. System and method for controlling application of an error correction code (ECC) algorithm in a memory subsystem
DE102004036383B4 (de) * 2004-07-27 2006-06-14 Siemens Ag Codier-und Decodierverfahren , sowie Codier- und Decodiervorrichtungen
US20060204209A1 (en) * 2005-03-09 2006-09-14 Exabyte Corporation Pause strategy for magnetic tape recording
US7433141B2 (en) * 2005-03-09 2008-10-07 Tandberg Data Corporation Data randomization for rewriting in recording/reproduction apparatus
US7707480B2 (en) * 2005-07-01 2010-04-27 Qnx Software Systems Gmbh & Co. Kg System employing data verification operations of differing computational costs
US7836379B1 (en) * 2006-04-03 2010-11-16 Marvell International Ltd. Method for computing buffer ECC
US7840878B1 (en) 2006-04-11 2010-11-23 Marvell International Ltd. Systems and methods for data-path protection
US9564988B2 (en) * 2007-07-26 2017-02-07 The Directv Group, Inc. Method and system for forming a formatted content stream and using a cyclic redundancy check
US8181094B2 (en) * 2008-01-31 2012-05-15 International Business Machines Corporation System to improve error correction using variable latency and associated methods
US8145975B2 (en) * 2008-02-28 2012-03-27 Ip Video Communications Corporation Universal packet loss recovery system for delivery of real-time streaming multimedia content over packet-switched networks
US8719621B1 (en) 2010-05-05 2014-05-06 Marvell International Ltd. Solid-state disk cache assisted redundant array of independent disks
US20120260034A1 (en) * 2011-04-06 2012-10-11 Hitachi, Ltd. Disk array apparatus and control method thereof
US9136873B2 (en) 2013-03-11 2015-09-15 Intel Corporation Reduced uncorrectable memory errors
WO2016009902A1 (ja) * 2014-07-18 2016-01-21 ソニー株式会社 受信装置、受信方法およびコンピュータプログラム
US9553611B2 (en) * 2014-11-27 2017-01-24 Apple Inc. Error correction coding with high-degree overlap among component codes
US9632863B2 (en) 2015-01-13 2017-04-25 Western Digital Technologies, Inc. Track error-correcting code extension
CN111078460B (zh) * 2019-11-18 2020-08-25 北京中电兴发科技有限公司 一种快速纠删码计算方法

Family Cites Families (105)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3821710A (en) 1972-12-04 1974-06-28 Little Inc A Multimode search and retrieval tape system
JPS5736656B2 (de) 1973-11-20 1982-08-05
US4011587A (en) 1974-03-14 1977-03-08 International Business Machines Corporation Rotary head magnetic recorder for use with a specific record member
US4106065A (en) 1976-03-19 1978-08-08 Ampex Corporation Drive circuitry for controlling movable video head
US4175267A (en) 1976-07-30 1979-11-20 Sony Corporation Method and apparatus of inserting an address signal in a video signal
US4099211A (en) 1976-09-13 1978-07-04 Ampex Corporation Positionable transducing mounting structure and driving system therefor
US4125881A (en) 1977-05-19 1978-11-14 International Business Machines Corporation Tape motion control for reel-to-reel drive
JPS5492308A (en) 1977-12-29 1979-07-21 Sony Corp Head tracking device in recorder-reproducer
DE2841728C2 (de) 1978-09-26 1984-08-09 Robert Bosch Gmbh, 7000 Stuttgart Verfahren und Schaltungsanordnung zur Wiedergabe eines auf Magnetband gespeicherten Videosignals mit veränderlicher Geschwindigkeit
US4215377A (en) 1978-10-10 1980-07-29 Norris Elwood G Multi-speed tape cassette system
DE2906836A1 (de) 1979-02-22 1980-09-04 Blaupunkt Werke Gmbh Informationsaufzeichnungs- und informationswiedergabegeraet
US4257075A (en) 1979-03-23 1981-03-17 Minnesota Mining And Manufacturing Company Tape magazine and recording and/or playback machine with improved magazine locating and loading structure
AU536904B2 (en) 1979-06-06 1984-05-31 Sony Corporation Magnetic tape loading apparatus
AU540275B2 (en) 1979-09-27 1984-11-08 Sony Corporation V.t.r. synchronizing system
JPS5683808A (en) 1979-12-11 1981-07-08 Sony Corp Magnetic recording and reproducing device
JPS5693157A (en) 1979-12-26 1981-07-28 Hitachi Ltd Tape sound recorder
JPS56156924A (en) 1980-05-08 1981-12-03 Sony Corp Track following device
JPS5727421A (en) 1980-07-23 1982-02-13 Sony Corp Track following device
JPS5733417A (en) 1980-07-31 1982-02-23 Fujitsu Ltd Step feed controlling system of information medium
JPS5755579A (en) 1980-09-19 1982-04-02 Sharp Corp Recorder and reproducer
US4467373A (en) 1980-10-09 1984-08-21 Micro Consultants Limited Storage and retrieval of digital data on video tape recorders
JPS5783978A (en) 1980-11-12 1982-05-26 Sony Corp Video signal recorder and reproducer
JPS5786161A (en) 1980-11-17 1982-05-29 Sony Corp Tape loading device
US4412260A (en) 1981-04-24 1983-10-25 Magnetic Peripherals Inc. Cartridge receiver mechanism
JPS57203228A (en) 1981-06-09 1982-12-13 Sony Corp Tracking adjuster
GB2111288B (en) 1981-11-20 1985-04-11 Sony Corp Magnetic tape recording and reproducing arrangements
JPS58133665A (ja) 1982-02-04 1983-08-09 Pioneer Video Corp 情報再生装置における再生終了検出装置
US4544967A (en) 1982-04-02 1985-10-01 Ampex Corporation Automatic scan tracking servo system
JPS58185009A (ja) 1982-04-23 1983-10-28 Sony Corp 磁気記録再生装置
JPS58194480A (ja) 1982-05-07 1983-11-12 Matsushita Electric Ind Co Ltd 磁気録画再生装置
JPS5937783A (ja) 1982-08-25 1984-03-01 Sony Corp 映像信号の記録装置
JPS59112406A (ja) 1982-12-17 1984-06-28 Sony Corp Pcm信号の記録再生方法
JPS59139157A (ja) 1983-01-26 1984-08-09 Sony Corp キユ−信号の記録方法
US4628383A (en) 1983-01-28 1986-12-09 Victor Company Of Japan, Ltd. Tape cassette loading device in a magnetic recording and/or reproducing apparatus
US4642714A (en) 1983-02-08 1987-02-10 Victor Company Of Japan, Ltd. Tape cassette loading and ejecting device in a magnetic recording and/or reproducing apparatus
US4637023A (en) 1983-02-14 1987-01-13 Prime Computer, Inc. Digital data error correction method and apparatus
JPS59151348A (ja) 1983-02-16 1984-08-29 Sanyo Electric Co Ltd 記録モ−ド判別回路
JPS59157810A (ja) 1983-02-28 1984-09-07 Sony Corp デジタル信号の再生方法
JPS59185019A (ja) 1983-04-04 1984-10-20 Nec Corp 特殊再生装置
JPS59213057A (ja) 1983-05-16 1984-12-01 Sony Corp テ−プロ−デイング装置
US4564945A (en) * 1983-06-20 1986-01-14 Reference Technology, Inc. Error-correction code for digital data on video disc
JPS6025062A (ja) 1983-07-21 1985-02-07 Sony Corp 番地信号の記録方法
JPS6032110A (ja) 1983-08-03 1985-02-19 Victor Co Of Japan Ltd ヘツド位置制御装置
DE3475669D1 (en) 1983-09-08 1989-01-19 Fuji Photo Film Co Ltd Device for loading or unloading magnetic disc pack
US4641210A (en) 1983-09-24 1987-02-03 Sony Corporation Magnetic recording and reproducing apparatus
JPS6064441U (ja) 1983-10-05 1985-05-07 日本ビクター株式会社 テ−プ収納筐体挿入口蓋ロツク機構
JPS60197969A (ja) 1984-03-19 1985-10-07 Sanyo Electric Co Ltd テ−プ速度判別回路
US4554598A (en) 1984-05-25 1985-11-19 Honeywell Information Systems, Inc. Single revolution disk sector formatter
JPS60194793U (ja) 1984-06-01 1985-12-25 ソニー株式会社 カセツトテ−プレコ−ダ
JPH0687330B2 (ja) 1984-08-06 1994-11-02 ソニー株式会社 ディジタル信号の再生装置
JPS6166250A (ja) 1984-09-07 1986-04-05 Sony Corp トラツキング制御回路
AT382475B (de) 1984-11-15 1987-02-25 Philips Nv Aufzeichnungs- und/oder wiedergabegeraet
JPS61196422A (ja) 1985-02-25 1986-08-30 Sony Corp ビデオ信号の記録装置
JPH0792958B2 (ja) 1985-05-27 1995-10-09 ソニー株式会社 カセツト式記録再生装置
JPS629552A (ja) 1985-07-08 1987-01-17 Canon Inc 信号再生装置
JP2606186B2 (ja) 1985-07-09 1997-04-30 ソニー株式会社 記録再生装置
US4935824A (en) 1985-07-19 1990-06-19 Sony Corporation Information recording apparatus
JPS6252752A (ja) 1985-08-30 1987-03-07 Sony Corp 記録再生装置
JPH0664893B2 (ja) 1985-11-12 1994-08-22 ソニー株式会社 磁気テ−プ記録再生装置
US4731878A (en) 1985-11-29 1988-03-15 American Telephone And Telegraph Company, At&T Bell Laboratories Self-routing switch node combining electronic and photonic switching
US4757911A (en) 1985-12-09 1988-07-19 Abbott Laboratories Container and closure construction
JPS62140203A (ja) 1985-12-13 1987-06-23 Pioneer Electronic Corp 回転ヘツド式デジタル信号再生装置
JPH07107782B2 (ja) 1986-02-28 1995-11-15 ソニー株式会社 ディジタルテープレコーダ
EP0235782B1 (de) 1986-03-04 1992-01-22 Sony Corporation Digitalwiedergabegerät
JP2751150B2 (ja) 1986-03-11 1998-05-18 ソニー株式会社 磁気テープの記録装置および再生装置
US4897739A (en) 1986-04-07 1990-01-30 Canon Kabushiki Kaisha Multi-channel recording apparatus using a plurality of heads in turn
US4717974A (en) 1986-05-19 1988-01-05 Eastman Kodak Company Waveguide apparatus for coupling a high data rate signal to and from a rotary head scanner
US4821129A (en) 1986-11-21 1989-04-11 Hewlett-Packard Company Tape positioning using reverse boundary capture: tape drive system and method
KR970008628B1 (ko) 1986-12-26 1997-05-27 소니 가부시키사이샤 테이프형상체의 로딩장치
US4769811A (en) 1986-12-31 1988-09-06 American Telephone And Telegraph Company, At&T Bell Laboratories Packet switching system arranged for congestion control
US4947272A (en) 1987-03-30 1990-08-07 Pioneer Electronic Corporation Signal reproducing device which offsets the tracking error signal for a digital tape player
US4845577A (en) 1987-05-11 1989-07-04 Exabyte Corporation Apparatus and method for enabling rapid searching of helically recorded magnetic tape
US4835628A (en) 1987-05-11 1989-05-30 Exabyte Corporation Apparatus and method for formatting and recording digital data on magnetic tape
US4843495A (en) 1987-05-11 1989-06-27 Exabyte Corporation Cyclical servo zone tracking method and apparatus for helical scan recording devices
US4908826A (en) 1988-01-05 1990-03-13 Digital Equipment Corporation Stored data error correction system
US5115500A (en) 1988-01-11 1992-05-19 International Business Machines Corporation Plural incompatible instruction format decode method and apparatus
US5003411A (en) 1988-02-26 1991-03-26 Pioneer Electronic Corporation Method for recording/reproducing and searching digital signals using a helical scan type rotary head
NL8800856A (nl) 1988-04-05 1989-11-01 Philips Nv Magneetbandapparaat voorzien van een regeleenheid ter sturing van bandbuffers, de bandspanning en het bandtransport.
US4933784A (en) 1988-10-31 1990-06-12 Ampex Corporation Automatic head position tracking system for video signals recorded in a segmented format
US4935827A (en) 1988-11-09 1990-06-19 Ampex Corporation Dynamic head position tracking control for a magnetic tape playback system
US4930027A (en) 1988-11-23 1990-05-29 Ampex Corporation Method and apparatus for tape speed override operation when recovering helical audio
US5103355A (en) 1989-04-11 1992-04-07 Ampex Corporation System for correlating head scan tracking and tape timer transitions
JP2554743B2 (ja) * 1989-05-19 1996-11-13 シャープ株式会社 再生のための誤り訂正装置
US5274772A (en) 1989-06-28 1993-12-28 International Business Machines Corporation Data processing systems having means for selectively combining records into signal blocks for recording in a record medium
US5142422A (en) 1989-11-09 1992-08-25 Exabyte Corporation Dual channel helical recorder
US5068757A (en) 1989-11-09 1991-11-26 Exabyte Corporation Servo tracking for helical scan recorder
US5034833A (en) 1989-11-09 1991-07-23 Exabyte Corporation Method and apparatus for loading data cartridge about two pivot axes into cartridge drive
JP2940033B2 (ja) 1989-12-07 1999-08-25 ソニー株式会社 走査軌跡評定装置
US5050018A (en) 1990-04-19 1991-09-17 Exabyte Corporation Apparatus and method for reading helically recorded tracks and rereading tracks as necessary
JPH0447568A (ja) 1990-06-15 1992-02-17 Teac Corp 磁気テープ装置におけるデータ読み取り方法
US5220569A (en) 1990-07-09 1993-06-15 Seagate Technology, Inc. Disk array with error type indication and selection of error correction method
US5191491A (en) 1990-11-09 1993-03-02 Exabyte Corporation Method and apparatus for reading distorted helical stripes
US5392299A (en) * 1992-01-15 1995-02-21 E-Systems, Inc. Triple orthogonally interleaed error correction system
US5327305A (en) 1992-08-14 1994-07-05 Conner Peripherals, Inc. Tape format detection system
US5349481A (en) 1993-06-10 1994-09-20 Exabyte Corporation Apparatus and method for distorted track data recovery by rewinding and re-reading the tape at a slower than nominal speed
US5369652A (en) 1993-06-14 1994-11-29 International Business Machines Corporation Error detection and correction having one data format recordable on record media using a diverse number of concurrently recorded tracks
WO1995013607A1 (en) 1993-11-12 1995-05-18 Exabyte Corporation Capstanless helical drive system
JP3109363B2 (ja) 1993-12-28 2000-11-13 松下電器産業株式会社 磁気記録再生装置
KR100197594B1 (ko) 1995-10-24 1999-06-15 윤종용 배속재생을 위한 가변콘트롤신호 기록/재생장치 및 그 방법
US5872997A (en) 1997-02-14 1999-02-16 Exabyte Corporation System for dynamically determining motion and reconnect thresholds of a storage media based on the effective transfer rate
US5953177A (en) 1997-03-24 1999-09-14 Exabyte Corporation Write splicing for helical scan recorder
US6048090A (en) * 1997-04-23 2000-04-11 Cirrus Logic, Inc. Error correction and concurrent verification of a product code
TW334533B (en) * 1997-06-28 1998-06-21 United Microelectronics Corp The control circuit apparatus for CD-ROM optical disk driver
US6052815A (en) * 1997-11-14 2000-04-18 Cirrus Logic, Inc. ECC system for generating a CRC syndrome over randomized data in a computer storage device
US6272659B1 (en) * 1998-05-18 2001-08-07 Cirrus Logic, Inc. Error correction code processor employing adjustable correction power for miscorrection minimization

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10345438A1 (de) * 2003-09-30 2005-05-12 Siemens Ag Verfahren und Vorrichtung zum Dekodieren von mittels paketorientierten Datenübertragungsnetzen übertragenen kodierten Datenpaketen und Verfahren und Vorrichtung zum Kodieren und Dekodieren von über paketorientierte Datenübertragungsnetze zu übertragende Datenpaketen
DE10345438B4 (de) * 2003-09-30 2005-09-15 Siemens Ag Verfahren und Vorrichtung zum Dekodieren von mittels paketorientierten Datenübertragungsnetzen übertragenen kodierten Datenpaketen und Verfahren und Vorrichtung zum Kodieren und Dekodieren von über paketorientierte Datenübertragungsnetze zu übertragende Datenpaketen

Also Published As

Publication number Publication date
US6367047B1 (en) 2002-04-02
ATE225073T1 (de) 2002-10-15
WO2000023997A9 (en) 2000-09-14
AU1126800A (en) 2000-05-08
JP2002528838A (ja) 2002-09-03
DE69903188D1 (de) 2002-10-31
EP1125294B1 (de) 2002-09-25
WO2000023997A2 (en) 2000-04-27
EP1125294A2 (de) 2001-08-22
WO2000023997A3 (en) 2000-07-27

Similar Documents

Publication Publication Date Title
DE69903188T2 (de) Mehrstufige fehlererkennungs- und korrekturtechnik für datenspeicher-aufzeichnungsvorrichtung
DE69121307T2 (de) Mehrfachpegel-Fehlerkorrektursystem
DE3783253T2 (de) Fehlerkorrekturverfahren.
DE69315360T2 (de) Dreifach orthogonal verschachteltes Fehlerkorrektursystem
DE3486408T2 (de) Verfahren und Vorrichtung zur Dekodierung eines fehlerkorrigierenden Kodes.
AT393429B (de) Speicherschaltung zur speicherung eines digitalsignals
DE69938416T2 (de) Kodierung von mehrwortinformation mit wortweiser verschachtelung
DE69626130T2 (de) Datenintegritätscode und querüberprüfender code mit logischer blockadresse
DE3124425C2 (de) Verfahren und Vorrichtung zu Fehlererkennung und Fehlerkorrektur
US6539514B1 (en) Read while write method in data storage device
DE69019590T2 (de) Spuraufzeichnung mit verbesserter Fehleraufdeckung.
DE69933938T2 (de) Wiedereinschreibungsverfahren und -gerät für datenspeichervorrichtung
DE68920523T2 (de) Verfahren zur Korrektur von Mehr-Byte-Fehlern.
DE102015002918A1 (de) Fehlerkorrektur mit On-Demand-Paritätssektoren in magnetischen Datenspeichergeräten
EP1067547A1 (de) Datensatzrückgewinnung durch kodewortüberlagerung
DE3784745T2 (de) Verfahren zur uebertragung und aufzeichnung von daten.
DE69218648T2 (de) Koder/Dekoderschaltung sowie digitales Videosystem mit dieser Schaltung
DE112011100199B4 (de) Integrierter Daten- und Kopfdatenschutz für Bandlaufwerke
DE102013016147A1 (de) Skalierbare Reparaturblockfehlerkorrektur für mehrere sequenzielle Datenblöcke in einem magnetischen Datenspeichergerät
DE19733738B4 (de) Fehlerkorrekturvorrichtung und -Verfahren eines digitalen Verarbeitungssystems
DE69814465T2 (de) Verfahren und gerät zur datenspeicherung auf magnetischen medien, die fehlerkorrekturkodes enthalten
DE3818881A1 (de) Verfahren und anordnung zur verarbeitung von informationsdaten
DE3787034T2 (de) Digitale Signalfehlerkorrektur.
DE2427463A1 (de) Verfahren und schaltungsanordnung zur fehlerkorrektur bei der wiedergewinnung aufgezeichneter daten
DE2530404A1 (de) Fehlerkorrektur von seriell aufgezeichneten daten mit hilfe eines unterfeld-codes

Legal Events

Date Code Title Description
8327 Change in the person/name/address of the patent owner

Owner name: EXABYTE CORP., BOULDER, COL., US

8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee