DE112018005762B4 - Neuschreiben von datenobjekten auf speichermedien mit sequenziellem zugriff - Google Patents

Neuschreiben von datenobjekten auf speichermedien mit sequenziellem zugriff Download PDF

Info

Publication number
DE112018005762B4
DE112018005762B4 DE112018005762.3T DE112018005762T DE112018005762B4 DE 112018005762 B4 DE112018005762 B4 DE 112018005762B4 DE 112018005762 T DE112018005762 T DE 112018005762T DE 112018005762 B4 DE112018005762 B4 DE 112018005762B4
Authority
DE
Germany
Prior art keywords
encoded data
storage medium
sequential access
rewrite
access storage
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.)
Active
Application number
DE112018005762.3T
Other languages
English (en)
Other versions
DE112018005762T5 (de
Inventor
Roy Cideciyan
Simeon Furrer
Mark Alfred Lantz
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE112018005762T5 publication Critical patent/DE112018005762T5/de
Application granted granted Critical
Publication of DE112018005762B4 publication Critical patent/DE112018005762B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/12Formatting, e.g. arrangement of data block or words on the record carriers
    • G11B20/1201Formatting, e.g. arrangement of data block or words on the record carriers on tapes
    • 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/1879Direct read-after-write methods
    • 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/1883Methods for assignment of alternate areas for defective areas
    • G11B20/1886Methods for assignment of alternate areas for defective areas with tapes
    • 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
    • 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/27Coding, 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 using interleaving techniques
    • 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/27Coding, 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 using interleaving techniques
    • H03M13/2792Interleaver wherein interleaving is performed jointly with another technique such as puncturing, multiplexing or routing
    • 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/1836Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information using a Reed Solomon [RS] code
    • G11B2020/184Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information using a Reed Solomon [RS] code using a cross-interleaved Reed Solomon [CIRC]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B5/00Recording by magnetisation or demagnetisation of a record carrier; Reproducing by magnetic means; Record carriers therefor
    • G11B5/008Recording on, or reproducing or erasing from, magnetic tapes, sheets, e.g. cards, or wires
    • G11B5/00813Recording on, or reproducing or erasing from, magnetic tapes, sheets, e.g. cards, or wires magnetic tapes

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Detection And Correction Of Errors (AREA)

Abstract

System (600), das aufweist:einen Magnetkopf (126, 602) mit einer Mehrzahl von Schreibwandlern (604), die mindestens M beträgt, und einer Mehrzahl von Lesewandlern (606), die mindestens M beträgt, wobei jeder Lesewandler (606) so konfiguriert ist, dass er Daten von einem Speichermedium (122, 608) mit sequenziellem Zugriff liest, nachdem diese von einem entsprechenden Schreibwandler (604) darauf geschrieben wurden; undeine Steuereinheit (128, 612) und eine Logik, die in die Steuereinheit (128, 612) integriert und/oder durch die Steuereinheit (128, 612) ausführbar ist, wobei die Logik so konfiguriert ist, dass sie:einen Datensatz (502) mithilfe einer Mehrzahl von M Schreibwandlern (604) auf ein Speichermedium (122, 608) mit sequenziellem Zugriff schreibt (2002), wobei der Datensatz (502) eine Anzahl von Teildatensätzen fester Größe aufweist, wobei jeder Teildatensatz eine Mehrzahl codierter Datenblöcke aufweist, die Codewörter in einer verschachtelten oder nichtverschachtelten Anordnung aufweisen, wobei jedes Codewort eine vorgegebene Anzahl von Symbolen mit einer Größe von mindestens 8 Bit für jedes Symbol aufweist;den Datensatz (502) mithilfe einer Mehrzahl von M Lesewandlern (606) unmittelbar nach dem Schreiben auf das Speichermedium (122, 608) mit sequenziellem Zugriff in einem Lesen-während-Schreiben-Prozess liest (2004), um einen oder mehrere fehlerhaft codierte Datenblöcke (504) zu identifizieren, wobei jeder des einen oder der mehreren fehlerhaft codierten Datenblöcke (504) mindestens ein fehlerhaftes Codewort aufweist;eine bestimmte logische Spur aus einer vorgegebenen Teilmenge logischer Spuren in einem Neuschreibbereich (508) des Speichermediums (122, 608) mit sequenziellem Zugriff auswählt (2006), um die fehlerhaft codierten Datenblöcke (504) neu zu schreiben, wobei der Neuschreibbereich (508) nach einer Position des Datensatzes (502) positioniert wird, der zuerst auf das Speichermedium (122, 608) mit sequenziellem Zugriff geschrieben wurde, wobei die vorgegebene Teilmenge logischer Spuren D1+D2+1 logische Spuren enthält und wobei 0 < D1+D2 < M/4 ist; undeinen ersten des einen oder der mehreren fehlerhaft codierten Datenblöcke (504) innerhalb eines ersten codierten Datenblocksatzes auf die bestimmte logische Spur im Neuschreibbereich (508) des Speichermediums (122, 608) mit sequenziellem Zugriff neu schreibt (2008), wobei nur ein fehlerhaft codierter Datenblock (504) aus einem bestimmten Teildatensatz in einem einzigen codierten Datenblocksatz in dem Neuschreibbereich (508) neu geschrieben wird.

Description

  • HINTERGRUND
  • Die vorliegende Erfindung bezieht sich allgemein auf Speichern von Daten und insbesondere auf Neuschreiben von Datenobjekten auf Speichermedien mit sequenziellem Zugriff.
  • Derzeit verwendete lineare Bandlaufwerke, die zum sequenziellen Speichern von Daten verwendet werden, wenden Produktcodes für die byteorientierte Fehlerkorrekturcodierung (error-correction coding, ECC) auf die Daten an, bevor die Daten auf dem Band gespeichert werden. Diese Produktcodes enthalten zwei Reed-Solomon-(RS-) Komponentencodes, die aus einem C1-Zeilencode und einem C2-Spaltencode bestehen. Relativ lange (ca. 1 KB), längs verschachtelte Fehlerkorrektur-Codewörter, auch bekannt als Codewort-Verschachtelungen (codeword interleaves, CWI), werden auf Spuren des Magnetmediums (z.B. Magnetbandspuren) geschrieben. In herkömmlichen Bandlaufwerk-Architekturen bestehen CWIs aus vier byteverschachtelten RS-Codewörtern. Beim Lesen-während-Schreiben (read-while-write) werden CWIs neu in einen Datensatz (DS) geschrieben, der mehr als eine Schwellenwertanzahl von Fehlern enthält, nachdem das Schreiben des Datensatzes, der zu viele Fehler enthält, abgeschlossen ist. Zwei CWI-Sätze entsprechen einem Codewortobjekt-Satz (CO-Satz), der die Mindestmenge von Daten darstellt, die mit den aktuellen Methodiken auf Band geschrieben oder neu geschrieben werden kann. Dieser Betriebspunkt ist so gewählt, dass die durchschnittliche Anzahl der neu geschriebenen CWI-Sätze pro Datensatz zu Beginn der Lebensdauer eines Bandlaufwerks auf etwa 1 % Neuschreibrate begrenzt ist, was zwei neu geschriebenen CWI-Sätzen pro Datensatz entspricht. Die Neuschreibrate von 1 % wird derzeit erreicht, wenn eine Byte-Fehlerrate am Eingang des CI-Decodierers in einem Bereich von etwa 1×10-4 bis 1×10-3 liegt.
  • Es ist möglich, mit einem viel geringeren Rauschabstand (signal-to-noise ratio, SNR) zu arbeiten, der eine Skalierung der Massenbelegung ermöglicht, während durch Verwenden von iterativem Decodieren eine Benutzer-Bitfehlerrate (bit error rate, BER) von 1×10-20 beibehalten wird. Bei den derzeit implementierten C1-Codes, die in Verbindung mit einer herkömmlichen Neuschreibstrategie verwendet werden, würde ein Verringern des Rauschabstands jedoch zu einem Kapazitätsverlust führen, da während der Lesen-während-Schreiben-Verarbeitung aufgrund einer hohen C1-Fehlerrate, die sich aus dem verwendeten C1-Code ergibt, übermäßig viele Neuschreibvorgänge durchgeführt würden.
  • Aus diesem Grund sind Verbesserungen der Neuschreibstrategie erforderlich, um alle potenziellen Vorteile des iterativen Decodierens zu nutzen. Es ist insbesondere wünschenswert, den Kanal mit niedrigeren Rauschabstandswerten zu betreiben, indem die Symbolfehlerrate, bei der eine 1%ige Neuschreibrate erreicht wird, um etwa eine Größenordnung erhöht wird. Mit anderen Worten, wir möchten, dass die Symbolfehlerrate am C1-Decodierereingang, die einer Neuschreibrate von 1 % entspricht, eine Zahl im Bereich von 1e-3 bis 1e-2 ist. Darüber hinaus verfügen die Codewörter in CWls derzeit nur über geringe Fehlerkorrekturfähigkeiten. Sie können 5 bis 6 Byte korrigieren. Dies schränkt die Flexibilität bei der Wahl des Fehlerschwellenwerts für Neuschreiben ein. CWIs mit C1-Codewörtern, die 4 oder mehr Fehler enthalten, werden neu geschrieben. Es wäre von Vorteil, den Fehlerschwellenwert für Neuschreiben aus einem viel größeren Zahlenbereich auswählen zu können. Schließlich ist es wünschenswert, die Effizienz des Neuschreibens zu erhöhen, indem die Anzahl von CWI-Sätzen, die neu geschrieben werden müssen, minimiert wird. Die vorliegende Erfindung löst diese Probleme.
  • Die US 2012 / 0 014 013 A1 offenbart ein Festplattenlaufwerk, das die Auswirkungen einer Fernspur-Löschung (FTE) minimiert, indem es die Anzahl der Schreibvorgänge auf die Datenspuren zählt und die Zähler auf der Grundlage der bekannten Auswirkungen der FTE auf jede Spur erhöht. Das Ausmaß des FTE-Effekts wird für jede Spur innerhalb eines Spurenbereichs der zu schreibenden Spur bestimmt, und auf der Grundlage des relativen FTE-Effekts für alle Spuren in dem Bereich wird für jede Spur innerhalb des Bereichs ein Zählerinkrement (CI) bestimmt. Für jede Spur wird ein Zähler geführt. Bei jedem Schreiben auf eine Spur wird der Zähler für jede Spur innerhalb eines Bereichs der zu schreibenden Spur um den CI-Wert erhöht, der der Spurnummer innerhalb des Bereichs zugeordnet ist. Wenn der Zählwert für eine Spur einen vorgegebenen Schwellenwert erreicht, werden die Daten aus dieser Spur gelesen und neu geschrieben, beispielsweise in dieselbe Spur.
  • Die US 2015 / 0 015 982 A1 offenbart ein System zum Auswählen eines optimalen Bandlayouts zum Speichern von Daten auf einem Bandmedium, das einen Prozessor und eine in den Prozessor integrierte und/oder von diesem ausführbare Logik umfasst, wobei die Logik konfiguriert ist zum: Auswählen einer Familie von Datensatz-Layouts auf der Grundlage von Parametern, die mindestens einem Bandlaufwerk und dem Bandmedium zugeordnet sind, Berechnen eines Satzes aller Mindestabstände für die ausgewählte Familie von Datensatz-Layouts, Berechnen einer ersten Leistungsmetrik, die jedem möglichen Satz von Parametern zugeordnet ist, Auswählen einer besten ersten Leistungsmetrik aus allen berechneten ersten Leistungsmetriken und Speichern eines Satzes von Parametern, die der besten ersten Leistungsmetrik zugeordnet sind, und Auswählen eines Datensatz-Layout-Algorithmus, der den Satz von Parametern verwendet, die der besten ersten Leistungsmetrik zugeordnet sind, wobei der Datensatz-Layout-Algorithmus und ein Umschreib-Layout-Algorithmus kombiniert werden, um ein optimales Bandlayout zu bilden.
  • Die US 6 539 514 B1 offenbart ein Verfahren zum Schreiben von Daten zu einem Datenspeicherungsmedium mit folgenden Schritten: Partitionieren der Daten in eine Mehrzahl von Codewörtern; Verteilen der Codewörter unter einer Mehrzahl von Schreibköpfen; Durchführen einer Schreiboperation, um die Codewörter im Wesentlichen simultan zu einer Mehrzahl von Spuren des Datenspeicherungsmediums zu schreiben; Durchführen einer Leseoperation, um die Codewörter aus der Mehrzahl von Spuren zu lesen; falls die Codewörter, die aus der Mehrzahl von Spuren gelesen werden, Fehler enthalten, dann Umverteilen der Codewörter, die ursprünglich zu dem Datenspeicherungsmedium geschrieben wurden, in einer unterschiedlichen Reihenfolge unter der Mehrzahl von Schreibköpfen; und Durchführen einer Wiederschreiboperation, um die umverteilten Codewörter wieder zu einer Mehrzahl von Spuren des Datenspeicherungsmediums zu schreiben.
  • Die US 7 876 516 B2 offenbart ein Verfahren zum Schreiben von Daten auf ein Mehrspurband, umfassend ein Empfangen eines empfangenen Datensatzes und ein Segmentieren des Datensatzes in nicht codierte Unterdatensätze, die jeweils ein Feld mit K2 Zeilen und K1 Spalten umfassen. Für jeden nicht codierten Unterdatensatz werden N1-K1 C1-Paritätsbytes für jede Zeile und N2-K2 C2-Paritätsbytes für jede Spalte erzeugt. Die C1- und C2-Paritätsbytes werden an die Enden der Zeile bzw. Spalte angehängt, um kodierte C1-bzw. C2-Codewörter zu bilden. Alle C1-Codewörter pro Datensatz werden mit einem spezifischen Codewort-Header versehen, um eine Vielzahl von partiellen Codewort-Objekten (PCOs) zu bilden. Jedes PCO wird entsprechend den Informationen im Header auf eine logische Datenspur abgebildet. Auf jeder logischen Datenspur werden benachbarte PCOs zusammengeführt, um COs zu bilden, die modulationscodiert und in synchronisierte COs abgebildet werden. Dann werden T synchronisierte COs gleichzeitig auf das Datenband geschrieben, wobei T die Anzahl der gleichzeitig aktiven Spuren auf dem Datenband ist.
  • KU RZDARSTELLU NG
  • Zu den der Erfindung zugrundeliegenden Aufgaben zählt das Bereitstellen eines zum Schreiben von Daten auf ein Speichermedium mit sequenziellem Zugriff und zum Lesen von Daten von einem solchen Speichermedium konfigurierten Systems, das einen geringeren Kapazitätsverlust des Speichermediums ermöglicht, wenn der Kanal mit einem niedrigeren Rauschabstand betrieben wird. Die der Erfindung zugrundeliegenden Aufgaben werden jeweils mit den Merkmalen der unabhängigen Patentansprüche gelöst. Ausführungsformen der Erfindung sind Gegenstand der abhängigen Patentansprüche.
  • In einer Ausführungsform enthält ein System einen Magnetkopf mit einer Mehrzahl von Schreibwandlern, die mindestens M beträgt, und einer Mehrzahl von Lesewandlern, die mindestens M beträgt, wobei jeder Lesewandler so konfiguriert ist, dass er Daten von einem Speichermedium mit sequenziellem Zugriff liest, nachdem sie von einem entsprechenden Schreibwandler darauf geschrieben wurden. Das System umfasst ferner eine Steuereinheit und eine Logik, die in die Steuereinheit integriert und/oder von ihr ausführbar ist. Die Logik ist so konfiguriert, dass sie einen Datensatz mithilfe der Mehrzahl von M Schreibwandlern auf ein Speichermedium mit sequenziellem Zugriff schreibt. Der Datensatz enthält eine Anzahl von Teildatensätzen fester Größe, wobei jeder Teildatensatz eine Mehrzahl von codierten Datenblöcken enthält, die Codewörter in einer verschachtelten oder nichtverschachtelten Anordnung enthalten. Jedes Codewort enthält eine vorgegebene Anzahl von Symbolen mit einer Größe von mindestens 8 Bit für jedes Symbol. Die Logik ist ferner so konfiguriert, dass sie den Datensatz mithilfe der Mehrzahl von M Lesewandlern unmittelbar nach dem Schreiben auf das Speichermedium mit sequenziellem Zugriff in einem Lesen-während-Schreiben-Prozess liest, um einen oder mehrere fehlerhaft codierte Datenblöcke zu identifizieren, wobei jeder des einen oder der mehreren fehlerhaft codierten Datenblöcke mindestens ein fehlerhaftes Codewort enthält. Darüber hinaus ist die Logik so konfiguriert, dass sie eine bestimmte logische Spur aus einer vorgegebenen Teilmenge logischer Spuren in einem Neuschreibbereich des Speichermediums mit sequenziellem Zugriff auswählt, um die fehlerhaft codierten Datenblöcke neu zu schreiben, wobei der Neuschreibbereich nach einer Position des Datensatzes positioniert wird, der zuerst auf das Speichermedium mit sequenziellem Zugriff geschrieben wurde. Die vorgegebene Teilmenge logischer Spuren umfasst D1+D2+1 logische Spuren, wobei 0 < D1+D2 < M/4 ist. Die Logik ist weiterhin so konfiguriert, dass sie einen ersten des einen oder der mehreren fehlerhaft codierten Datenblöcke innerhalb eines ersten codierten Datenblocksatzes auf die bestimmte logische Spur in dem Neuschreibbereich des Speichermediums mit sequenziellem Zugriff neu schreibt, wobei nur ein fehlerhaft codierter Datenblock aus einem bestimmten Teildatensatz in einem einzigen codierten Datenblocksatz in dem Neuschreibbereich neu geschrieben wird.
  • In einer anderen Ausführungsform umfasst ein Verfahren Schreiben eines Datensatzes auf ein Speichermedium mit sequenziellem Zugriff mithilfe einer Mehrzahl von mindestens M Schreibwandlern eines Magnetkopfes. Der Datensatz enthält eine Anzahl von Teildatensätzen fester Größe, wobei jeder Teildatensatz eine Mehrzahl von codierten Datenblöcken enthält, die Codewörter in einer verschachtelten oder nichtverschachtelten Anordnung aufweisen. Jedes Codewort enthält eine vorgegebene Anzahl von Symbolen mit einer Größe von mindestens 8 Bit für jedes Symbol. Das Verfahren umfasst weiterhin Lesen des Datensatzes mithilfe einer Mehrzahl von mindestens M Lesewandlern des Magnetkopfes unmittelbar nach dem Schreiben auf das Speichermedium mit sequenziellem Zugriff in einem Lesen-während-Schreiben-Prozess, um einen oder mehrere fehlerhaft codierte Datenblöcke zu identifizieren, wobei jeder des einen oder der mehreren fehlerhaft codierten Datenblöcke mindestens ein fehlerhaftes Codewort enthält. Darüber hinaus umfasst das Verfahren Auswählen einer bestimmten logischen Spur aus einer vorgegebenen Teilmenge logischer Spuren in einem Neuschreibbereich des Speichermediums mit sequenziellem Zugriff, um die fehlerhaft codierten Datenblöcke neu zu schreiben, wobei der Neuschreibbereich nach einer Position des Datensatzes positioniert wird, der zuerst auf das Speichermedium mit sequenziellem Zugriff geschrieben wurde. Die vorgegebene Teilmenge logischer Spuren umfasst D1+D2+1 logische Spuren, wobei 0 < D1+D2 < M/4 ist. Darüber hinaus umfasst das Verfahren Neuschreiben eines ersten des einen oder der mehreren fehlerhaft codierten Datenblöcke innerhalb eines ersten codierten Datenblocksatzes auf die bestimmte logische Spur in dem Neuschreibbereich des Speichermediums mit sequenziellem Zugriff. Nur ein fehlerhaft codierter Datenblock aus einem bestimmten Teildatensatz wird in einem einzigen codierten Datenblocksatz in dem Neuschreibbereich neu geschrieben.
  • Gemäß einer weiteren Ausführungsform umfasst ein Computerprogrammprodukt ein durch einen Computer lesbares Speichermedium mit darauf enthaltenen Programmanweisungen. Die enthaltenen Programmanweisungen sind von einem Prozessor ausführbar, um den Prozessor zu veranlassen, einen Datensatz mithilfe einer Mehrzahl von mindestens M Schreibwandlern eines Magnetkopfes auf ein Speichermedium mit sequenziellem Zugriff durch den Prozessor zu schreiben. Der Datensatz enthält eine Anzahl von Teildatensätzen fester Größe, wobei jeder Teildatensatz eine Mehrzahl von codierten Datenblöcken enthält, die Codewörter in einer verschachtelten oder nichtverschachtelten Anordnung enthalten. Jedes Codewort enthält eine vorgegebene Anzahl von Symbolen mit einer Größe von mindestens 8 Bit für jedes Symbol. Die enthaltenen Programmanweisungen sind ferner von dem Prozessor ausführbar, um den Prozessor zu veranlassen, den Datensatz mithilfe einer Mehrzahl von mindestens M Lesewandlern des Magnetkopfes unmittelbar nach dem Schreiben auf das Speichermedium mit sequenziellem Zugriff in einem Lesen-während-Schreiben-Prozess durch den Prozessor zu lesen, um einen oder mehrere fehlerhaft codierte Datenblöcke zu identifizieren, wobei jeder des einen oder der mehreren fehlerhaft codierten Datenblöcke mindestens ein fehlerhaftes Codewort enthält. Darüber hinaus sind die enthaltenen Programmanweisungen von dem Prozessor ausführbar, um den Prozessor zu veranlassen, eine bestimmte logische Spur aus einer vorgegebenen Teilmenge logischer Spuren in einem Neuschreibbereich des Speichermediums mit sequenziellem Zugriff durch den Prozessor auszuwählen, um die fehlerhaft codierten Datenblöcke neu zu schreiben, wobei der Neuschreibbereich nach einer Position des Datensatzes positioniert wird, der zuerst auf das Speichermedium mit sequenziellem Zugriff geschrieben wurde. Die vorgegebene Teilmenge logischer Spuren umfasst D1+D2+1 logische Spuren, wobei 0 < D1+D2 < M/4 ist. Darüber hinaus sind die enthaltenen Programmanweisungen von dem Prozessor ausführbar, um den Prozessor zu veranlassen, einen ersten des einen oder der mehreren fehlerhaft codierten Datenblöcke innerhalb eines ersten codierten Datenblocksatzes auf die bestimmte logische Spur in dem Neuschreibbereich des Speichermediums mit sequenziellem Zugriff durch den Prozessor neu zu schreiben. Nur ein fehlerhaft codierter Datenblock aus einem bestimmten Teildatensatz wird in einem einzigen codierten Datenblocksatz in dem Neuschreibbereich neu geschrieben.
  • In einer anderen Ausführungsform umfasst ein Verfahren Schreiben eines Datensatzes auf ein Speichermedium mit sequenziellem Zugriff mithilfe einer Mehrzahl von Schreibwandlern eines Magnetkopfes, wobei der Datensatz eine Anzahl von Teildatensätzen fester Größe enthält, wobei jeder Teildatensatz eine Mehrzahl von codierten Datenblöcken enthält, die Codewörter in einer verschachtelten Anordnung enthalten. Außerdem enthält jedes Codewort eine vorgegebene Anzahl von Symbolen. Das Verfahren umfasst weiterhin Lesen des Datensatzes mithilfe einer Mehrzahl von Lesewandlern des Magnetkopfes unmittelbar nach dem Schreiben auf das Speichermedium mit sequenziellem Zugriff in einem Lesen-während-Schreiben-Prozess, um einen oder mehrere fehlerhaft codierte Datenblöcke zu identifizieren, wobei jeder des einen oder der mehreren fehlerhaft codierten Datenblöcke mindestens ein fehlerhaftes Codewort enthält. Das Verfahren umfasst ferner Decodieren des von dem Speichermedium mit sequenziellem Zugriff gelesenen Datensatzes, um den einen oder die mehreren fehlerhaft codierten Datenblöcke zu ermitteln, wobei ein codierter Datenblock als Reaktion auf Identifizieren einer Schwellenwertanzahl von Fehlern darin als fehlerhaft ermittelt wird, nachdem der codierte Datenblock decodiert ist. Darüber hinaus umfasst das Verfahren Auswählen einer oder mehrerer logischer Spuren aus einer oder mehreren eindeutigen vorgegebenen Teilmengen logischer Spuren in einem Neuschreibbereich des Speichermediums mit sequenziellem Zugriff, um den einen oder die mehreren fehlerhaft codierten Datenblöcke neu zu schreiben, wobei der Neuschreibbereich nach einer Position des Datensatzes positioniert wird, der zuerst auf das Speichermedium mit sequenziellem Zugriff geschrieben wurde. Jede der vorgegebenen Teilmengen logischer Spuren enthält drei logische Spuren. Darüber hinaus umfasst das Verfahren Neuschreiben des einen oder der mehreren fehlerhaft codierten Datenblöcke innerhalb eines oder mehrerer codierter Datenblocksätze auf die eine oder mehreren logischen Spuren in dem Neuschreibbereich des Speichermediums mit sequenziellem Zugriff. Nur ein fehlerhaft codierter Datenblock aus einem bestimmten Teildatensatz wird in einem einzigen codierten Datenblocksatz in dem Neuschreibbereich neu geschrieben, wobei jeder codierte Datenblock als zwei symbolverschachtelte Reed-Solomon-RS(384,364)-C1-Codewörter über einem Galois-Feld GF(1024) auf das Speichermedium mit sequenziellem Zugriff geschrieben wird.
  • In noch einer anderen Ausführungsform umfasst ein Verfahren Schreiben eines Datensatzes auf ein Speichermedium mit sequenziellem Zugriff mithilfe einer Mehrzahl von Schreibwandlern eines Magnetkopfes, wobei der Datensatz eine Anzahl von Teildatensätzen fester Größe enthält, wobei jeder Teildatensatz eine Mehrzahl von codierten Datenblöcken enthält, die Codewörter in einer verschachtelten Anordnung enthalten. Außerdem enthält jedes Codewort eine vorgegebene Anzahl von Symbolen. Das Verfahren umfasst weiterhin Lesen des Datensatzes mithilfe einer Mehrzahl von Lesewandlern des Magnetkopfes unmittelbar nach dem Schreiben auf das Speichermedium mit sequenziellem Zugriff in einem Lesen-während-Schreiben-Prozess, um einen oder mehrere fehlerhaft codierte Datenblöcke zu identifizieren, wobei jeder des einen oder der mehreren fehlerhaft codierten Datenblöcke mindestens ein fehlerhaftes Codewort enthält. Das Verfahren umfasst ferner Decodieren des von dem Speichermedium mit sequenziellem Zugriff gelesenen Datensatzes, um den einen oder die mehreren fehlerhaft codierten Datenblöcke zu ermitteln, wobei ein codierter Datenblock als Reaktion auf Identifizieren einer Schwellenwertanzahl von Fehlern darin als fehlerhaft ermittelt wird, nachdem der codierte Datenblock decodiert ist. Darüber hinaus umfasst das Verfahren Auswählen einer oder mehrerer logischer Spuren aus einer oder mehreren eindeutigen vorgegebenen Teilmengen logischer Spuren in einem Neuschreibbereich des Speichermediums mit sequenziellem Zugriff, um den einen oder die mehreren fehlerhaft codierten Datenblöcke neu zu schreiben, wobei der Neuschreibbereich nach einer Position des Datensatzes positioniert wird, der zuerst auf das Speichermedium mit sequenziellem Zugriff geschrieben wurde. Jede der vorgegebenen Teilmengen logischer Spuren enthält fünf logische Spuren. Darüber hinaus umfasst das Verfahren Neuschreiben des einen oder der mehreren fehlerhaft codierten Datenblöcke innerhalb eines oder mehrerer codierter Datenblocksätze auf die eine oder mehreren logischen Spuren in dem Neuschreibbereich des Speichermediums mit sequenziellem Zugriff. Nur ein fehlerhaft codierter Datenblock aus einem bestimmten Teildatensatz wird in einem einzigen codierten Datenblocksatz in dem Neuschreibbereich neu geschrieben, wobei jeder codierte Datenblock als Reed-Solomon-RS(768,728)-C1-Codewort über einem Galois-Feld GF(1024) auf das Speichermedium mit sequenziellem Zugriff geschrieben wird.
  • Weitere Aspekte und Ausführungsformen der vorliegenden Erfindung ergeben sich aus der folgenden ausführlichen Beschreibung, die in Verbindung mit den Zeichnungen die Grundgedanken der Erfindung beispielhaft veranschaulicht.
  • Figurenliste
    • 1 veranschaulicht ein Netzwerkspeichersystem gemäß einer Ausführungsform.
    • 2A veranschaulicht ein vereinfachtes Bandlaufwerk eines bandgestützten Datenspeichersystems gemäß einer Ausführungsform.
    • 2B ist ein schematisches Schaubild einer Bandkassette gemäß einer Ausführungsform.
    • 3 veranschaulicht einen konzeptionellen Datenfluss in einem Bandlaufwerk gemäß einer Ausführungsform.
    • 4 zeigt eine logische Datenanordnung (data array), die verwendet werden kann, um Daten in einem Teildatensatz (sub data set, SDS) gemäß einer Ausführungsform zu organisieren.
    • 5 zeigt ein Neuschreibschema gemäß einer Ausführungsform.
    • 6 zeigt ein System zum Speichern und Lesen von Daten auf einem Speichermedium mit sequenziellem Zugriff gemäß einer Ausführungsform.
    • 7 zeigt ein Gilbert-Bündelfehlermodell gemäß einer Ausführungsform.
    • 8 zeigt ein unabhängiges Bit-Fehlermodell gemäß einer Ausführungsform.
    • 9 zeigt ein vereinfachtes Blockschaubild eines Codewortobjekts gemäß einer Ausführungsform.
    • 10A ist ein Diagramm, das die Wahrscheinlichkeit des Neuschreibens eines codierten Datenblocks (encoded data block, EDB) im Vergleich zu der Symbolfehlerrate unter Verwenden des Gilbert-Bündelfehlermodells gemäß mehreren Ausführungsformen zeigt.
    • 10B ist ein Diagramm, das die durchschnittliche Anzahl neu geschriebener codierter Datenblocksätze pro Datensatz (DS) unter Verwenden des Gilbert-Bündelfehlermodells gemäß mehreren Ausführungsformen zeigt.
    • 11A ist ein Diagramm, das die Wahrscheinlichkeit des Neuschreibens eines codierten Datenblocks im Vergleich zu der Symbolfehlerrate unter Verwenden des unabhängigen Symbolfehlermodells gemäß mehreren Ausführungsformen zeigt.
    • 11B ist ein Diagramm, das die durchschnittliche Anzahl neu geschriebener codierter Datenblocksätze pro Datensatz unter Verwenden des unabhängigen Symbolfehlermodells gemäß mehreren Ausführungsformen zeigt.
    • 12 zeigt eine beispielhafte flexible Neuschreibtabelle.
    • 13 zeigt ein Verfahren gemäß einer Ausführungsform.
    • 14 zeigt ein Verfahren gemäß einer ersten Ausführungsform.
    • 15 zeigt ein Verfahren gemäß einer zweiten Ausführungsform.
    • 16 zeigt ein Verfahren gemäß einer dritten Ausführungsform.
    • 17 zeigt ein Verfahren gemäß einer Ausführungsform.
    • 18 zeigt ein Verfahren gemäß einer Ausführungsform.
    • 19 zeigt ein Verfahren gemäß einer Ausführungsform.
    • 20 zeigt ein Verfahren gemäß einer Ausführungsform.
    • 21 zeigt ein Verfahren gemäß einer anderen Ausführungsform.
    • 22 zeigt ein Verfahren gemäß noch einer anderen Ausführungsform.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Die folgende Beschreibung dient der Veranschaulichung der allgemeinen Grundgedanken der vorliegenden Erfindung und soll die hierin beanspruchten Aspekte der Erfindung nicht einschränken. Darüber hinaus können hierin beschriebene besondere Merkmale in Verbindung mit anderen beschriebenen Merkmalen in jeder der verschiedenen möglichen Kombinationen und Umsetzungen verwendet werden.
  • Sofern hierin nicht ausdrücklich anders definiert, sind alle Begriffe so weit wie möglich auszulegen, einschließlich der aus der Beschreibung implizierten Bedeutungen sowie der Bedeutungen, die von Fachleuten verstanden werden und/oder die in Wörterbüchern, Abhandlungen usw. definiert sind.
  • Sofern nicht anders angegeben, ist ferner darauf hinzuweisen, dass die Singularformen „ein/eine/einer/eines“ und „der/die/das“, wie sie in der Beschreibung und den beigefügten Ansprüchen verwendet werden, auch die Pluralform enthalten. Es versteht sich ferner, dass die Begriffe „aufweisen“ und/oder „aufweisend“, wenn sie in dieser Beschreibung verwendet werden, die Anwesenheit von angegebenen Merkmalen, Ganzzahlen, Schritten, Operationen, Elementen und/oder Komponenten spezifizieren, jedoch nicht die Anwesenheit oder Hinzufügung von einem oder mehreren anderen Merkmalen, Ganzzahlen, Schritten, Operationen, Elementen, Komponenten und/oder Gruppen davon ausschließen. Der Begriff „etwa“, wie er hierin verwendet wird, bezieht sich auf den Wert, der dem Begriff „etwa“ folgt, sowie auf weitere Werte, die dem Wert, der dem Begriff „etwa“ folgt, ungefähr nahekommen, wie es ein Fachmann verstehen würde. Wenn nicht anders angegeben, bezeichnet der vorangestellte Begriff „etwa“ ±10 % des Wertes. Beispielsweise gibt „etwa 10“ alle Werte von 9,0 bis 11,0 an.
  • Die folgende Beschreibung offenbart einige bevorzugte Ausführungsformen von Systemen, Verfahren und Computerprogrammprodukten zum Neuschreiben von Daten auf sequenziellen Datenspeichermedien, die größere Codewörter verwenden, um auf diese Weise ein wirksameres Neuschreiben bereitzustellen.
  • In einer allgemeinen Ausführungsform enthält ein System einen Magnetkopf mit einer Mehrzahl von Schreibwandlern, die mindestens M beträgt, und einer Mehrzahl von Lesewandlern, die mindestens M beträgt, wobei jeder Lesewandler so konfiguriert ist, dass er Daten von einem Speichermedium mit sequenziellem Zugriff liest, nachdem sie von einem entsprechenden Schreibwandler darauf geschrieben wurden. Das System umfasst ferner eine Steuereinheit und eine Logik, die in die Steuereinheit integriert und/oder von ihr ausführbar ist. Die Logik ist so konfiguriert, dass sie einen Datensatz mithilfe der Mehrzahl von M Schreibwandlern auf ein Speichermedium mit sequenziellem Zugriff schreibt. Der Datensatz enthält eine Anzahl von Teildatensätzen fester Größe, wobei jeder Teildatensatz eine Mehrzahl von codierten Datenblöcken enthält, die Codewörter in einer verschachtelten oder nichtverschachtelten Anordnung enthalten. Jedes Codewort enthält eine vorgegebene Anzahl von Symbolen mit einer Größe von mindestens 8 Bit für jedes Symbol. Die Logik ist ferner so konfiguriert, dass sie den Datensatz mithilfe der Mehrzahl von M Lesewandlern unmittelbar nach dem Schreiben auf das Speichermedium mit sequenziellem Zugriff in einem Lesen-während-Schreiben-Prozess liest, um einen oder mehrere fehlerhaft codierte Datenblöcke zu identifizieren, wobei jeder des einen oder der mehreren fehlerhaft codierten Datenblöcke mindestens ein fehlerhaftes Codewort enthält. Darüber hinaus ist die Logik so konfiguriert, dass sie eine bestimmte logische Spur aus einer vorgegebenen Teilmenge logischer Spuren in einem Neuschreibbereich des Speichermediums mit sequenziellem Zugriff auswählt, um die fehlerhaft codierten Datenblöcke neu zu schreiben, wobei der Neuschreibbereich nach einer Position des Datensatzes positioniert wird, der zuerst auf das Speichermedium mit sequenziellem Zugriff geschrieben wurde. Die vorgegebene Teilmenge logischer Spuren umfasst D1+D2+1 logische Spuren, wobei 0 < D1+D2 < M/4 ist. Die Logik ist weiterhin so konfiguriert, dass sie einen ersten des einen oder der mehreren fehlerhaft codierten Datenblöcke innerhalb eines ersten codierten Datenblocksatzes auf die bestimmte logische Spur in dem Neuschreibbereich des Speichermediums mit sequenziellem Zugriff neu schreibt, wobei nur ein fehlerhaft codierter Datenblock aus einem bestimmten Teildatensatz in einem einzigen codierten Datenblocksatz in dem Neuschreibbereich neu geschrieben wird.
  • In einer anderen allgemeinen Ausführungsform umfasst ein Verfahren Schreiben eines Datensatzes auf ein Speichermedium mit sequenziellem Zugriff mithilfe einer Mehrzahl von mindestens M Schreibwandlern eines Magnetkopfes. Der Datensatz enthält eine Anzahl von Teildatensätzen fester Größe, wobei jeder Teildatensatz eine Mehrzahl von codierten Datenblöcken enthält, die Codewörter in einer verschachtelten oder nichtverschachtelten Anordnung aufweisen. Jedes Codewort enthält eine vorgegebene Anzahl von Symbolen mit einer Größe von mindestens 8 Bit für jedes Symbol. Das Verfahren umfasst weiterhin Lesen des Datensatzes mithilfe einer Mehrzahl von mindestens M Lesewandlern des Magnetkopfes unmittelbar nach dem Schreiben auf das Speichermedium mit sequenziellem Zugriff in einem Lesen-während-Schreiben-Prozess, um einen oder mehrere fehlerhaft codierte Datenblöcke zu identifizieren, wobei jeder des einen oder der mehreren fehlerhaft codierten Datenblöcke mindestens ein fehlerhaftes Codewort enthält. Darüber hinaus umfasst das Verfahren Auswählen einer bestimmten logischen Spur aus einer vorgegebenen Teilmenge logischer Spuren in einem Neuschreibbereich des Speichermediums mit sequenziellem Zugriff, um die fehlerhaft codierten Datenblöcke neu zu schreiben, wobei der Neuschreibbereich nach einer Position des Datensatzes positioniert wird, der zuerst auf das Speichermedium mit sequenziellem Zugriff geschrieben wurde. Die vorgegebene Teilmenge logischer Spuren umfasst D1+D2+1 logische Spuren, wobei 0 < D1+D2 < M/4 ist. Darüber hinaus umfasst das Verfahren Neuschreiben eines ersten des einen oder der mehreren fehlerhaft codierten Datenblöcke innerhalb eines ersten codierten Datenblocksatzes auf die bestimmte logische Spur in dem Neuschreibbereich des Speichermediums mit sequenziellem Zugriff. Nur ein fehlerhaft codierter Datenblock aus einem bestimmten Teildatensatz wird in einem einzigen codierten Datenblocksatz in dem Neuschreibbereich neu geschrieben.
  • Gemäß einer weiteren allgemeinen Ausführungsform umfasst ein Computerprogrammprodukt ein durch einen Computer lesbares Speichermedium mit darauf enthaltenen Programmanweisungen. Die enthaltenen Programmanweisungen sind von einem Prozessor ausführbar, um den Prozessor zu veranlassen, einen Datensatz mithilfe einer Mehrzahl von mindestens M Schreibwandlern eines Magnetkopfes auf ein Speichermedium mit sequenziellem Zugriff durch den Prozessor zu schreiben. Der Datensatz enthält eine Anzahl von Teildatensätzen fester Größe, wobei jeder Teildatensatz eine Mehrzahl von codierten Datenblöcken enthält, die Codewörter in einer verschachtelten oder nichtverschachtelten Anordnung enthalten. Jedes Codewort enthält eine vorgegebene Anzahl von Symbolen mit einer Größe von mindestens 8 Bit für jedes Symbol. Die enthaltenen Programmanweisungen sind ferner von dem Prozessor ausführbar, um den Prozessor zu veranlassen, den Datensatz mithilfe einer Mehrzahl von mindestens M Lesewandlern des Magnetkopfes unmittelbar nach dem Schreiben auf das Speichermedium mit sequenziellem Zugriff in einem Lesen-während-Schreiben-Prozess durch den Prozessor zu lesen, um einen oder mehrere fehlerhaft codierte Datenblöcke zu identifizieren, wobei jeder des einen oder der mehreren fehlerhaft codierten Datenblöcke mindestens ein fehlerhaftes Codewort enthält. Darüber hinaus sind die enthaltenen Programmanweisungen von dem Prozessor ausführbar, um den Prozessor zu veranlassen, eine bestimmte logische Spur aus einer vorgegebenen Teilmenge logischer Spuren in einem Neuschreibbereich des Speichermediums mit sequenziellem Zugriff durch den Prozessor auszuwählen, um die fehlerhaft codierten Datenblöcke neu zu schreiben, wobei der Neuschreibbereich nach einer Position des Datensatzes positioniert wird, der zuerst auf das Speichermedium mit sequenziellem Zugriff geschrieben wurde. Die vorgegebene Teilmenge logischer Spuren umfasst D1+D2+1 logische Spuren, wobei 0 < D1+D2 < M/4 ist. Darüber hinaus sind die enthaltenen Programmanweisungen von dem Prozessor ausführbar, um den Prozessor zu veranlassen, einen ersten des einen oder der mehreren fehlerhaft codierten Datenblöcke innerhalb eines ersten codierten Datenblocksatzes auf die bestimmte logische Spur in dem Neuschreibbereich des Speichermediums mit sequenziellem Zugriff durch den Prozessor neu zu schreiben. Nur ein fehlerhaft codierter Datenblock aus einem bestimmten Teildatensatz wird in einem einzigen codierten Datenblocksatz in dem Neuschreibbereich neu geschrieben.
  • In einer anderen allgemeinen Ausführungsform umfasst ein Verfahren Schreiben eines Datensatzes auf ein Speichermedium mit sequenziellem Zugriff mithilfe einer Mehrzahl von Schreibwandlern eines Magnetkopfes, wobei der Datensatz eine Anzahl von Teildatensätzen fester Größe enthält, wobei jeder Teildatensatz eine Mehrzahl von codierten Datenblöcken enthält, die Codewörter in einer verschachtelten Anordnung enthalten. Außerdem enthält jedes Codewort eine vorgegebene Anzahl von Symbolen. Das Verfahren umfasst weiterhin Lesen des Datensatzes mithilfe einer Mehrzahl von Lesewandlern des Magnetkopfes unmittelbar nach dem Schreiben auf das Speichermedium mit sequenziellem Zugriff in einem Lesen-während-Schreiben-Prozess, um einen oder mehrere fehlerhaft codierte Datenblöcke zu identifizieren, wobei jeder des einen oder der mehreren fehlerhaft codierten Datenblöcke mindestens ein fehlerhaftes Codewort enthält. Das Verfahren umfasst ferner Decodieren des von dem Speichermedium mit sequenziellem Zugriff gelesenen Datensatzes, um den einen oder die mehreren fehlerhaft codierten Datenblöcke zu ermitteln, wobei ein codierter Datenblock als Reaktion auf Identifizieren einer Schwellenwertanzahl von Fehlern darin als fehlerhaft ermittelt wird, nachdem der codierte Datenblock decodiert ist. Darüber hinaus umfasst das Verfahren Auswählen einer oder mehrerer logischer Spuren aus einer oder mehreren eindeutigen vorgegebenen Teilmengen logischer Spuren in einem Neuschreibbereich des Speichermediums mit sequenziellem Zugriff, um den einen oder die mehreren fehlerhaft codierten Datenblöcke neu zu schreiben, wobei der Neuschreibbereich nach einer Position des Datensatzes positioniert wird, der zuerst auf das Speichermedium mit sequenziellem Zugriff geschrieben wurde. Jede der vorgegebenen Teilmengen logischer Spuren enthält drei logische Spuren. Darüber hinaus umfasst das Verfahren Neuschreiben des einen oder der mehreren fehlerhaft codierten Datenblöcke innerhalb eines oder mehrerer codierter Datenblocksätze auf die eine oder mehreren logischen Spuren in dem Neuschreibbereich des Speichermediums mit sequenziellem Zugriff. Nur ein fehlerhaft codierter Datenblock aus einem bestimmten Teildatensatz wird in einem einzigen codierten Datenblocksatz in dem Neuschreibbereich neu geschrieben, wobei jeder codierte Datenblock als zwei symbolverschachtelte Reed-Solomon-RS(384,364)-C1-Codewörter über einem Galois-Feld GF(1024) auf das Speichermedium mit sequenziellem Zugriff geschrieben wird.
  • In noch einer anderen allgemeinen Ausführungsform umfasst ein Verfahren Schreiben eines Datensatzes auf ein Speichermedium mit sequenziellem Zugriff mithilfe einer Mehrzahl von Schreibwandlern eines Magnetkopfes, wobei der Datensatz eine Anzahl von Teildatensätzen fester Größe enthält, wobei jeder Teildatensatz eine Mehrzahl von codierten Datenblöcken enthält, die Codewörter in einer verschachtelten Anordnung enthalten. Außerdem enthält jedes Codewort eine vorgegebene Anzahl von Symbolen. Das Verfahren umfasst weiterhin Lesen des Datensatzes mithilfe einer Mehrzahl von Lesewandlern des Magnetkopfes unmittelbar nach dem Schreiben auf das Speichermedium mit sequenziellem Zugriff in einem Lesen-während-Schreiben-Prozess, um einen oder mehrere fehlerhaft codierte Datenblöcke zu identifizieren, wobei jeder des einen oder der mehreren fehlerhaft codierten Datenblöcke mindestens ein fehlerhaftes Codewort enthält. Das Verfahren umfasst ferner Decodieren des von dem Speichermedium mit sequenziellem Zugriff gelesenen Datensatzes, um den einen oder die mehreren fehlerhaft codierten Datenblöcke zu ermitteln, wobei ein codierter Datenblock als Reaktion auf Identifizieren einer Schwellenwertanzahl von Fehlern darin als fehlerhaft ermittelt wird, nachdem der codierte Datenblock decodiert ist. Darüber hinaus umfasst das Verfahren Auswählen einer oder mehrerer logischer Spuren aus einer oder mehreren eindeutigen vorgegebenen Teilmengen logischer Spuren in einem Neuschreibbereich des Speichermediums mit sequenziellem Zugriff, um den einen oder die mehreren fehlerhaft codierten Datenblöcke neu zu schreiben, wobei der Neuschreibbereich nach einer Position des Datensatzes positioniert wird, der zuerst auf das Speichermedium mit sequenziellem Zugriff geschrieben wurde. Jede der vorgegebenen Teilmengen logischer Spuren enthält fünf logische Spuren. Darüber hinaus umfasst das Verfahren Neuschreiben des einen oder der mehreren fehlerhaft codierten Datenblöcke innerhalb eines oder mehrerer codierter Datenblocksätze auf die eine oder mehreren logischen Spuren in dem Neuschreibbereich des Speichermediums mit sequenziellem Zugriff. Nur ein fehlerhaft codierter Datenblock aus einem bestimmten Teildatensatz wird in einem einzigen codierten Datenblocksatz in dem Neuschreibbereich neu geschrieben, wobei jeder codierte Datenblock als Reed-Solomon-RS(768,728)-C1-Codewort über einem Galois-Feld GF(1024) auf das Speichermedium mit sequenziellem Zugriff geschrieben wird.
  • Mit Bezug nunmehr auf 1 wird ein Blockschaltplan eines Netzwerkspeichersystems 10 gemäß einer Ausführungsform dargestellt. Dieses Netzwerkspeichersystem 10 ist nur ein Beispiel für ein geeignetes Speichersystem und soll keine Einschränkung des Anwendungsbereichs oder der Funktionalität von Ausführungsformen der hierin beschriebenen Erfindung nahelegen. Ungeachtet dessen kann das Netzwerkspeichersystem 10 implementiert werden und/oder eine beliebige der oben dargelegten Funktionalitäten durchführen.
  • In dem Netzwerkspeichersystem 10 gibt es ein Computersystem/einen Server 12, das/der mit zahlreichen anderen universellen oder speziellen Datenverarbeitungssystem-Umgebungen oder Konfigurationen funktionsfähig ist. Zu Beispielen für bekannte Datenverarbeitungssysteme, Umgebungen und/oder Konfigurationen, die für die Nutzung mit dem Computersystem/Server 12 geeignet sein können, gehören, ohne darauf beschränkt zu sein, Personal-Computer-Systeme, Server-Computer-Systeme, schlanke Clients, leistungsintensive Clients, Hand- oder Laptop-Einheiten, Mehrprozessorsysteme, Systeme auf Grundlage von Mikroprozessoren, Beistellgeräte, programmierbare Unterhaltungselektronik, Netzwerk-PCs, Minicomputersysteme, Großrechnersysteme und verteilte Cloud-Computing-Umgebungen, die jedes beliebige der oben genannten Systeme oder Einheiten und Ähnliches enthalten.
  • Das Computersystem/der Server 12 kann im allgemeinen Kontext von durch ein Computersystem ausführbaren Anweisungen beschrieben werden, z.B. Programmmodule, die von einem Computersystem ausgeführt werden. Im Allgemeinen können Programmmodule Routinen, Programme, Objekte, Komponenten, Logik, Datenstrukturen usw. enthalten, die bestimmte Aufgaben durchführen oder bestimmte abstrakte Datentypen implementieren. Das Computersystem/der Server 12 kann in verteilten Cloud-Computing-Umgebungen eingesetzt werden, wo die Aufgaben von entfernt angeordneten Verarbeitungseinheiten durchgeführt werden, die über ein Datenübertragungsnetzwerk verbunden sind. In einer verteilten Cloud-Computing-Umgebung können sich Programmmodule sowohl auf lokalen als auch auf entfernt angeordneten Computersystem-Speichermedien befinden, darunter Speichereinheiten mit Arbeitsspeichern.
  • Wie in 1 gezeigt, ist das Computersystem/der Server 12 im Netzwerkspeichersystem 10 in Form einer universellen Datenverarbeitungseinheit dargestellt. Bei den Komponenten des Computersystems/Servers 12 kann es sich - ohne darauf beschränkt zu sein - um eine oder mehrere Verarbeitungseinheiten 16, einen Systemspeicher 28 und einen Bus 18 handeln, der verschiedene Systemkomponenten, darunter den Systemspeicher 28, mit der bzw. den Verarbeitungseinheit(en) 16 verbindet.
  • Der Bus 18 stellt eine oder mehrere von beliebigen mehreren Arten von Busstrukturen dar, darunter einen Speicherbus oder eine Speichersteuereinheit, einen Peripheriebus, eine AGP-Schnittstelle (Accelerated Graphics Port) und einen Prozessor oder lokalen Bus, der eine beliebige aus einer Vielfalt von Busarchitekturen nutzt. Beispielsweise und nichteinschränkend enthalten solche Architekturen einen Industry-Standard-Architecture-(ISA)-Bus, einen Micro-Channel-Architecture-(MCA)-Bus, einen Enhanced-ISA-(EISA)-Bus, einen lokalen Video-Electronics-Standards-Association-(VESA)-Bus und einen Peripheral-Component-Interconnects-(PCI)-Bus.
  • Das Computersystem/der Server 12 umfasst in der Regel eine Vielfalt von durch einen Computer lesbare Medien. Bei diesen Medien kann es sich um beliebige verfügbare Medien handeln, auf die das Computersystem/der Server 12 zugreifen kann, darunter flüchtige und nichtflüchtige Medien, wechselbare und nichtwechselbare Medien.
  • Der Systemspeicher 28 kann von durch ein Computersystem lesbare Medien in Form von flüchtigen Speichern, z.B. Direktzugriffsspeicher (RAM) 30 und/oder Zwischenspeicher 32, enthalten. Das Computersystem/der Server 12 kann ferner weitere wechselbare/nichtwechselbare, flüchtige/nichtflüchtige Computersystem-Speichermedien enthalten. Nur beispielhaft kann das Speichersystem 34 bereitgestellt werden, um ein nichtwechselbares, nichtflüchtiges magnetisches Medium auszulesen und zu beschreiben (nicht dargestellt und üblicherweise als „Festplatte“ bezeichnet, die in einem Festplattenlaufwerk betrieben werden kann). Obwohl nicht dargestellt, können ein Laufwerk für magnetische Speicherplatten zum Auslesen und Beschreiben einer wechselbaren, nichtflüchtigen magnetischen Speicherplatte (z.B. „Diskette“) und ein Laufwerk für optische Speicherplatten zum Auslesen oder Beschreiben einer wechselbaren, nichtflüchtigen optischen Speicherplatte wie einer CD-ROM, DVD-ROM und andere optische Medien bereitgestellt werden. In solchen Fällen kann jedes über eine oder mehrere Datenmedien-Schnittstellen mit dem Bus 18 verbunden sein. Wie unten weiter dargestellt und beschrieben, kann der Speicher 28 mindestens ein Programmprodukt mit einem (z.B. mindestens einem) Satz von Programmmodulen enthalten, die so konfiguriert sind, dass sie die Funktionen der hierin beschriebenen Ausführungsformen ausführen.
  • Das Programm/Dienstprogramm 40 mit (mindestens) einem Satz von Programmmodulen 42 kann beispielsweise und nichteinschränkend im Speicher 28 gespeichert sein, ebenso ein Betriebssystem, ein oder mehrere Anwendungsprogramme, weitere Programmmodule und Programmdaten. Das Betriebssystem, ein oder mehrere Anwendungsprogramme, weitere Programmmodule und Programmdaten oder eine Kombination daraus können jeweils eine Implementierung einer Netzwerkumgebung enthalten. Die Programmmodule 42 führen im Allgemeinen die Funktionen und/oder Methodiken von Ausführungsformen der hierin beschriebenen Erfindung aus.
  • Das Computersystem/der Server 12 kann auch mit einer oder mehreren externen Einheiten 14, z.B. einer Tastatur, einer Zeigeeinheit, einer Anzeige 24 usw., Daten austauschen; sowie mit einer oder mehreren Einheiten, die einen Benutzer in die Lage versetzen, mit dem Computersystem/Server 12 zu interagieren; und/oder beliebigen Einheiten (z.B. Netzwerkkarte, Modem usw.), die das Computersystem/den Server 12 in die Lage versetzen, mit einer oder mehreren Datenverarbeitungseinheiten Daten auszutauschen. Eine solche Datenübertragung kann über die Eingabe/Ausgabe-Schnittstellen (E/A-Schnittstellen) 22 erfolgen. Überdies kann das Computersystem/der Server 12 mit einem oder mehreren Netzwerken, z.B. einem lokalen Netzwerk (LAN), einem allgemeinen Weitverkehrsnetzwerk (WAN) und/oder einem öffentlichen Netzwerk (z.B. das Internet) über den Netzwerkadapter 20 Daten austauschen. Wie dargestellt, tauscht der Netzwerkadapter 20 über den Bus 18 mit den anderen Komponenten des Computersystems/Servers 12 Daten aus. Es versteht sich, dass sonstige Hardware- und/oder Softwarekomponenten in Verbindung mit dem Computersystem/Server 12 verwendet werden können, auch wenn sie nicht dargestellt sind. Zu Beispielen gehören, ohne darauf beschränkt zu sein: Mikrocode, Einheitentreiber, redundante Verarbeitungseinheiten, Anordnungen externer Festplattenlaufwerke, RAID-Systeme (RAID = redundante Anordnung unabhängiger Festplatten), Bandlaufwerke und Speichersysteme für die Datenarchivierung usw.
  • 2A veranschaulicht ein vereinfachtes Bandlaufwerk 100 eines bandgestützten Datenspeichersystems, das im Zusammenhang mit der vorliegenden Erfindung eingesetzt werden kann. Zwar wird eine spezifische Implementierung eines Bandlaufwerks in 2A dargestellt, doch wird darauf hingewiesen, dass die hierin beschriebenen Ausführungsformen im Zusammenhang mit jeder beliebigen Art von Bandlaufwerksystem implementiert werden können.
  • Wie gezeigt, werden eine Bandvorratskassette 120 und eine Aufwickelspule 121 zum Aufnehmen eines Bandes 122 bereitgestellt. Eine oder mehrere der Spulen können Teil einer Wechselkassette sein und sind nicht unbedingt Teil des Bandlaufwerks 100. Das Bandlaufwerk, z.B. das in 2A veranschaulichte, kann ferner einen oder mehrere Antriebsmotoren enthalten, um die Bandvorratskassette 120 und die Aufwickelspule 121 so anzutreiben, dass das Band 122 über einen Bandkopf 126 eines beliebigen Typs bewegt wird. Ein solcher Bandkopf kann eine Anordnung von Lese-, Schreibeinrichtungen oder beides enthalten.
  • Die Führungen 125 führen das Band 122 über den Bandkopf 126. Ein solcher Bandkopf 126 ist wiederum über ein Kabel 130 mit einer Steuereinheit 128 verbunden. Die Steuereinheit 128 kann ein Prozessor und/oder eine Logik zum Steuern eines beliebigen Teilsystems des Bandlaufwerks 100 sein oder einen solchen Prozessor und/oder eine solche Logik enthalten. Zum Beispiel steuert die Steuereinheit 128 in der Regel Kopffunktionen wie Servofolge, Datenschreiben, Datenlesen usw. Die Steuereinheit 128 kann mindestens einen Servokanal und mindestens einen Datenkanal enthalten, von denen jeder eine Datenfluss-Verarbeitungslogik enthält, die so konfiguriert ist, dass sie Informationen verarbeitet und/oder speichert, die auf das Band 122 geschrieben und/oder von diesem gelesen werden. Die Steuereinheit 128 kann mit einer nach dem Stand der Technik bekannten Logik sowie mit jeder hierin offenbarten Logik arbeiten und kann daher als ein Prozessor für jede der hierin beschriebenen Bandlaufwerke in verschiedenen Ausführungsformen betrachtet werden. Die Steuereinheit 128 kann mit einem Speicher 136 eines beliebigen bekannten Typs verbunden werden, der von der Steuereinheit 128 ausführbare Befehle speichern kann. Darüber hinaus kann die Steuereinheit 128 so konfiguriert und/oder programmiert werden, dass sie einige oder alle der hierin vorgestellten Methodiken durchführt oder steuert. Man kann somit davon ausgehen, dass die Steuereinheit 128 so konfiguriert ist, dass sie verschiedene Arbeitsschritte durch eine in einem oder mehreren Chips, Modulen und/oder Blöcken programmierte Logik durchführt; wobei Software, Firmware und/oder andere Anweisungen einem oder mehreren Prozessoren usw. sowie Kombinationen daraus zur Verfügung stehen.
  • Das Kabel 130 kann Schreib/Lese-Schaltungen enthalten, um Daten an den Kopf 126 zu übertragen, die auf dem Band 122 aufgezeichnet werden, und um Daten zu empfangen, die durch den Kopf 126 vom Band 122 gelesen werden. Ein Stellglied 132 steuert die Position des Kopfes 126 relativ zum Band 122.
  • Ferner kann eine Schnittstelle 134 für die Datenübertragung zwischen dem Bandlaufwerk 100 und einem Host (intern oder extern) bereitgestellt werden, um die Daten zu senden und zu empfangen und um die Funktionsweise des Bandlaufwerks 100 zu steuern und um den Status des Bandlaufwerks 100 an den Host zu übertragen, wie für den Fachmann offensichtlich ist.
  • 2B zeigt eine beispielhafte Bandkassette 150 gemäß einer Ausführungsform. Eine solche Bandkassette 150 kann mit einem System wie dem in 2A gezeigten verwendet werden. Wie gezeigt, umfasst die Bandkassette 150 ein Gehäuse 152, ein Band 122 im Gehäuse 152 und einen nichtflüchtigen Speicher 156, der mit dem Gehäuse 152 verbunden ist. Bei einigen Ansätzen kann der nichtflüchtige Speicher 156 in das Gehäuse 152 integriert sein, wie in 2B dargestellt ist. Bei mehreren Ansätzen kann der nichtflüchtige Speicher 156 ohne Umgestalten des Gehäuses 152 an der Innen- oder Außenseite des Gehäuses 152 angebracht werden. Zum Beispiel kann der nichtflüchtige Speicher in ein selbstklebendes Etikett 154 integriert sein. In einer bevorzugten Ausführungsform kann der nichtflüchtige Speicher 156 eine Flash-Speichereinheit, eine ROM-Einheit usw. sein, die in die Bandkassette 150 integriert oder mit der Innen- oder Außenseite der Bandkassette 150 verbunden ist. Auf den nichtflüchtigen Speicher kann über das Bandlaufwerk und die Bandbetriebssoftware (die Treibersoftware) und/oder eine andere Einheit zugegriffen werden.
  • 3 zeigt in detaillierter Form einen konzeptionellen Datenfluss 300 in einem Bandlaufwerk mit M gleichzeitig geschriebenen Spuren über M Schreibkanälen. Der Datenfluss 300 umfasst Weiterleiten von Host-Daten durch einen CRC-Fehlererkennungscodierer 302 (CRC = Cyclic Redundancy Check - zyklische Blockprüfung), ein Komprimierungsmodul 304, ein optionales Verschlüsselungsmodul 306, einen ECC-Codierer 308 (ECC = Error Correction Code - Fehlerkorrekturcode) (der einen C1-Codierer und einen C2-Codierer umfasst, die als C1/C2 oder C2/C1 angeordnet sind) und ein Bandlayoutmodul 310 gemäß einer Ausführungsform. Das Header-Einfügemodul 312 kann wie gezeigt positioniert werden, indem es in das Bandlayoutmodul 310 geführt wird, oder es kann positioniert werden, indem es in den ECC-Codierer 308 geführt wird, wodurch die Header in einer Ausführungsform einen gewissen Umfang an ECC-Codierung erhalten können. Das Bandlayoutmodul 310 teilt die Daten in einzelne Feeds für jeden Kanal 1, ..., M auf, um auf die Spuren des Bandmediums zu schreiben. Der Datenfluss 300 umfasst auch Verwürfeln der Daten (Datenrandomisierung) 314, ..., 316, Modulationscodieren 318, ..., 320, Einfügen der Synchronisation 326, ..., 328 und Multiplexen 322, ..., 324 für jede gleichzeitig geschriebene Spur 1, ..., M.
  • In den folgenden Beschreibungen werden die meisten dieser Arbeitsschritte nicht aufgeführt, um die Beschreibungen zu vereinfachen. Jede der hierin enthaltenen Beschreibungen kann jedoch zusätzliche Arbeitsschritte enthalten, die nicht dargestellt sind, wie es beim Lesen der vorliegenden Beschreibungen für den Fachmann offensichtlich ist. Die Anzahl der Spuren, auf die gleichzeitig geschrieben werden können, hängt vom verwendeten Bandlaufwerk ab, wobei der Wert von M zwischen 1 und 64 oder mehr liegt.
  • Es gibt fünf Arten von Systemaktivitäten im Zusammenhang mit auf Band geschriebenen Daten: Fehlerkorrekturcodieren am ECC-Codierer 308, Modulationscodieren 318, ..., 320, Einfügen von Headern 312, Einfügen von Synchronisationsmustern 326, ..., 328 und Neuschreiben von Daten nach Lesen-während-Schreiben. Eine Formateffizienz von etwa 79 % wird aufgrund dieser primären Formen von Systemaktivitäten ohne Aufwand für Neuschreiben erreicht, z.B. entsprechen nur 79 Datenbits von 100 auf Band gespeicherten Bits den Benutzerdaten, d.h. den Daten, die dem Eingang des ECC-Codierers 308 bereitgestellt werden. Darüber hinaus reserviert ein typisches Magnetband etwa 3 % des Speicherplatzes für das Neuschreiben von Daten.
  • 4 zeigt eine logische Datenanordnung 400, die verwendet werden kann, um Daten in einem Teildatensatz (SDS) gemäß einer Ausführungsform zu organisieren. Wie gezeigt, umfasst die Datenanordnung eine Mehrzahl von Zeilen 402 und Spalten 404. Jede Zeile 402 in der Datenanordnung 400 ist eine Codewort-Verschachtelung (CWI), die eine Mehrzahl von C1-Codewörtern enthält. Wenn das CWI vier verschachtelte Codewörter enthält, wird es als CWI-4 bezeichnet. Die Daten im Teildatensatz werden durch C1-Codieren in jeder Zeile 402 geschützt, um eine C1-Zeilenparität zu erzeugen (nicht dargestellt, da sie später geändert wird, um die Datenanordnung 400 zu erzeugen), und durch C2-Codieren in jeder Spalte 404, um eine C2-Spaltenparität 408 zu erzeugen.
  • Wie gezeigt, können die Header 406 für jede Zeile 402 mit einem C1-Codierungsschema codiert werden, indem die C1-Parität (die nur für die Daten in der Zeile 402 berechnet wird) so geändert wird, dass die Header 406 berücksichtigt werden, um die C1'-Parität 410 zu erzeugen. In dieser Ausführungsform sind die Header 406 durch einen einstufigen ECC (nur C1'-Parität 410) geschützt, während die Daten durch einen zweistufigen ECC (C1'-Parität 410 und C2-Parität 408) geschützt sind.
  • Jeder Datensatz enthält mehrere Teildatensätze, und jeder Teildatensatz kann durch eine logische zweidimensionale Anordnung dargestellt werden. Gewöhnlich werden einem einzigen Datensatz Hunderte von Headern zugewiesen, da jeder Datensatz mehrere Teildatensätze enthält und jeder Zeile (die in der Regel ein CWI ist) eines spaltencodierten Teildatensatzes ein Header zugewiesen wird.
  • Derzeit verwendete lineare Bandlaufwerke schreiben und lesen gleichzeitig bis zu 32 Spuren auf und/oder von einem Magnetbandmedium. C1-Zeilen-Codewörter eines Produktcodes werden byteverschachtelt auf einzelne Spuren des Magnetbandmediums geschrieben.
  • 4 veranschaulicht einen beispielhaften (240,228)-C1-Code mit 12 Byte Parität, der auf ein Produkt-Codewort angewendet wird. Beim Aufbau der logischen Datenanordnung 400 in Verbindung mit den verschiedenen hierin beschriebenen Ausführungsformen kann ein anderer C1-Code verwendet werden, wie für den Fachmann beim Lesen der vorliegenden Beschreibungen offensichtlich ist.
  • Mit Bezug nunmehr auf 5 wird ein Neuschreibschema gemäß einer Ausführungsform gezeigt. In diesem Neuschreibschema 500 werden als Reaktion auf einen geschriebenen Datensatz 502 alle fehlerhaften Datenpakete 504 (CWIs mit Headern oder codierte Datenblöcke mit Headern), die beim Lesen-während-Schreiben erkannt werden, in einem großen Pool 506 gesammelt und am Ende des Datensatzes in einem Neuschreibbereich 508 neu geschrieben. Dieses Neuschreibschema 500 erhöht die Effizienz des Neuschreibens und verringert daher die Größe des Neuschreibbereichs 508 auf Band im Vergleich zu herkömmlichen Neuschreibschemata.
  • Mit Bezug auf 6 wird ein System 600 gemäß einer Ausführungsform gezeigt. Das System 600 enthält mindestens einen Magnetkopf 602, der eine Mehrzahl von Schreibwandlern 604 und eine Mehrzahl von Lesewandlern 606 enthält, wobei jeder Lesewandler 606 in einer Bandabwärtsrichtung von einem entsprechenden Schreibwandler 604 positioniert ist. Jeder Lesewandler 606 ist so konfiguriert, dass er gleichzeitig mit den anderen Lesewandlern 606 Daten von einer Spur eines Magnetbandmediums 608 liest, wodurch eine Mehrzahl von Spuren 610 gleichzeitig von dem Magnetbandmedium 608 gelesen werden kann. Die Anzahl der Spuren 610, die gleichzeitig gelesen werden können, ist gleich der Anzahl der Lesewandler 606 des Magnetkopfes 602. Es versteht sich, dass einige Lesewandler 606 so konfiguriert werden können, dass sie Servospuren zur Magnetkopfausrichtung und/oder für andere Zwecke lesen können, im Sinne dieser Beschreibungen wird jedoch angenommen, dass die Lesewandler 606 jeweils in der Lage sind, Daten von dem Magnetbandmedium 608 zu lesen.
  • Das System 600 umfasst auch eine Hardware-Verarbeitungsschaltung 612 und eine Logik, die in die Hardware-Verarbeitungsschaltung 612 integriert und/oder von dieser ausführbar ist. Bei der Hardware-Verarbeitungsschaltung 612 kann es sich um eine Hardware-Verarbeitungseinheit und/oder -schaltung handeln, z.B. eine Zentraleinheit (CPU), eine anwendungsspezifische integrierte Schaltung (application specific integrated circuit, ASIC), eine vor Ort programmierbare Gatter-Anordnung (field programmable gate array, FPGA) usw., Kombinationen daraus oder jede andere geeignete, nach dem Stand der Technik bekannte Datenverarbeitungs- oder Verarbeitungseinheit. Die Logik kann in Hardware, Software oder einer Kombination daraus implementiert werden. In einer Ausführungsform ist die Logik so konfiguriert, dass sie die Verarbeitungsschaltung 612 veranlasst, einen Datensatz mithilfe der Mehrzahl von M Schreibwandlern auf ein Speichermedium mit sequenziellem Zugriff zu schreiben. Der Datensatz enthält eine Anzahl von Teildatensätzen fester Größe, wobei jeder Teildatensatz eine Mehrzahl von codierten Datenblöcken enthält, die Codewörter in einer verschachtelten oder nichtverschachtelten Anordnung enthalten. Jedes Codewort enthält eine vorgegebene Anzahl von Symbolen mit einer Größe von mindestens 8 Bit für jedes Symbol. Die Logik ist ferner so konfiguriert, dass sie die Verarbeitungsschaltung 612 veranlasst, den Datensatz mithilfe der Mehrzahl von M Lesewandlern unmittelbar nach dem Schreiben auf das Speichermedium mit sequenziellem Zugriff in einem Lesen-während-Schreiben-Prozess zu lesen, um einen oder mehrere fehlerhaft codierte Datenblöcke zu identifizieren, wobei jeder des einen oder der mehreren fehlerhaft codierten Datenblöcke mindestens ein fehlerhaftes Codewort enthält. Darüber hinaus ist die Logik so konfiguriert, dass sie die Verarbeitungsschaltung 612 veranlasst, eine bestimmte logische Spur aus einer vorgegebenen Teilmenge logischer Spuren in einem Neuschreibbereich des Speichermediums mit sequenziellem Zugriff auszuwählen, um die fehlerhaft codierten Datenblöcke neu zu schreiben, wobei der Neuschreibbereich nach einer Position des Datensatzes positioniert wird, der zuerst auf das Speichermedium mit sequenziellem Zugriff geschrieben wurde. Die vorgegebene Teilmenge logischer Spuren umfasst D1+D2+1 logische Spuren, wobei 0 < D1+D2 < M/4 ist. Die Logik ist weiterhin so konfiguriert, dass sie die Verarbeitungsschaltung 612 veranlasst, einen ersten des einen oder der mehreren fehlerhaft codierten Datenblöcke innerhalb eines ersten codierten Datenblocksatzes auf die bestimmte logische Spur im Neuschreibbereich des Speichermediums mit sequenziellem Zugriff neu zu schreiben, wobei nur ein fehlerhaft codierter Datenblock aus einem bestimmten Teildatensatz in einem einzigen codierten Datenblocksatz in den Neuschreibbereich neu geschrieben wird.
  • In einer anderen Ausführungsform ist die Logik so konfiguriert, dass sie die Verarbeitungsschaltung 612 veranlasst, einen Datensatz mithilfe einer Mehrzahl von Schreibwandlern eines Magnetkopfes auf ein Speichermedium mit sequenziellem Zugriff zu schreiben, wobei der Datensatz eine Anzahl von Teildatensätzen fester Größe enthält, wobei jeder Teildatensatz eine Mehrzahl von codierten Datenblöcken enthält, die Codewörter in einer verschachtelten Anordnung enthalten. Außerdem enthält jedes Codewort eine vorgegebene Anzahl von Symbolen. Die Logik ist ferner so konfiguriert, dass sie die Verarbeitungsschaltung 612 veranlasst, den Datensatz mithilfe einer Mehrzahl von Lesewandlern des Magnetkopfes unmittelbar nach dem Schreiben auf das Speichermedium mit sequenziellem Zugriff in einem Lesen-während-Schreiben-Prozess zu lesen, um einen oder mehrere fehlerhaft codierte Datenblöcke zu identifizieren, wobei jeder des einen oder der mehreren fehlerhaft codierten Datenblöcke mindestens ein fehlerhaftes Codewort enthält. Die Logik ist weiterhin so konfiguriert, dass sie die Verarbeitungsschaltung 612 veranlasst, den vom Speichermedium mit sequenziellem Zugriff gelesenen Datensatz zu decodieren, um den einen oder die mehreren fehlerhaft codierten Datenblöcke zu ermitteln, wobei ein codierter Datenblock als Reaktion auf Identifizieren einer Schwellenwertanzahl von Fehlern darin als fehlerhaft ermittelt wird, nachdem der codierte Datenblock decodiert ist. Die Logik ist des Weitern so konfiguriert, dass sie die Verarbeitungsschaltung 612 veranlasst, eine oder mehrere logische Spuren aus einer oder mehreren eindeutigen vorgegebenen Teilmengen logischer Spuren in einem Neuschreibbereich des Speichermediums mit sequenziellem Zugriff auszuwählen, um den einen oder die mehreren fehlerhaft codierten Datenblöcke neu zu schreiben, wobei der Neuschreibbereich nach einer Position des Datensatzes positioniert wird, der zuerst auf das Speichermedium mit sequenziellem Zugriff geschrieben wurde. Jede der vorgegebenen Teilmengen logischer Spuren enthält drei logische Spuren. Darüber hinaus ist die Logik so konfiguriert, dass sie die Verarbeitungsschaltung 612 veranlasst, den einen oder die mehreren fehlerhaft codierten Datenblöcke innerhalb eines oder mehrerer codierter Datenblocksätze auf die eine oder mehreren logischen Spuren in dem Neuschreibbereich des Speichermediums mit sequenziellem Zugriff neu zu schreiben. Nur ein fehlerhaft codierter Datenblock aus einem bestimmten Teildatensatz wird in einem einzigen codierten Datenblocksatz in dem Neuschreibbereich neu geschrieben, wobei jeder codierte Datenblock als zwei symbolverschachtelte Reed-Solomon-RS(384,364)-C1-Codewörter über einem Galois-Feld GF(1024) auf das Speichermedium mit sequenziellem Zugriff geschrieben wird.
  • In noch einer anderen allgemeinen Ausführungsform ist die Logik so konfiguriert, dass sie die Verarbeitungsschaltung 612 veranlasst, einen Datensatz mithilfe einer Mehrzahl von Schreibwandlern eines Magnetkopfes auf ein Speichermedium mit sequenziellem Zugriff zu schreiben, wobei der Datensatz eine Anzahl von Teildatensätzen fester Größe enthält, wobei jeder Teildatensatz eine Mehrzahl von codierten Datenblöcken enthält, die Codewörter in einer verschachtelten Anordnung enthalten. Außerdem enthält jedes Codewort eine vorgegebene Anzahl von Symbolen. Die Logik ist ferner so konfiguriert, dass sie die Verarbeitungsschaltung 612 veranlasst, den Datensatz mithilfe einer Mehrzahl von Lesewandlern des Magnetkopfes unmittelbar nach dem Schreiben auf das Speichermedium mit sequenziellem Zugriff in einem Lesen-während-Schreiben-Prozess zu lesen, um einen oder mehrere fehlerhaft codierte Datenblöcke zu identifizieren, wobei jeder des einen oder der mehreren fehlerhaft codierten Datenblöcke mindestens ein fehlerhaftes Codewort enthält. Die Logik ist weiterhin so konfiguriert, dass sie die Verarbeitungsschaltung 612 veranlasst, den vom Speichermedium mit sequenziellem Zugriff gelesenen Datensatz zu decodieren, um den einen oder die mehreren fehlerhaft codierten Datenblöcke zu ermitteln, wobei ein codierter Datenblock als Reaktion auf Identifizieren einer Schwellenwertanzahl von Fehlern darin als fehlerhaft ermittelt wird, nachdem der codierte Datenblock decodiert ist. Die Logik ist des Weitern so konfiguriert, dass sie die Verarbeitungsschaltung 612 veranlasst, eine oder mehrere logische Spuren aus einer oder mehreren eindeutigen vorgegebenen Teilmengen logischer Spuren in einem Neuschreibbereich des Speichermediums mit sequenziellem Zugriff auszuwählen, um den einen oder die mehreren fehlerhaft codierten Datenblöcke neu zu schreiben, wobei der Neuschreibbereich nach einer Position des Datensatzes positioniert wird, der zuerst auf das Speichermedium mit sequenziellem Zugriff geschrieben wurde. Jede der vorgegebenen Teilmengen logischer Spuren enthält drei logische Spuren. Darüber hinaus ist die Logik so konfiguriert, dass sie die Verarbeitungsschaltung 612 veranlasst, den einen oder die mehreren fehlerhaft codierten Datenblöcke innerhalb eines oder mehrerer codierter Datenblocksätze auf die eine oder mehreren logischen Spuren in dem Neuschreibbereich des Speichermediums mit sequenziellem Zugriff neu zu schreiben. Nur ein fehlerhaft codierter Datenblock aus einem bestimmten Teildatensatz wird in einem einzigen codierten Datenblocksatz in dem Neuschreibbereich neu geschrieben, wobei jeder codierte Datenblock als Reed-Solomon-RS(768,728)-Cl-Codewort über einem Galois-Feld GF(1024) auf das Speichermedium mit sequenziellem Zugriff geschrieben wird.
  • Mit den derzeit implementierten C1-Codes, die in Verbindung mit einer herkömmlichen Neuschreibstrategie verwendet werden, würde eine Verringerung des Rauschabstands für Daten, die auf einem Speichermedium mit sequenziellem Zugriff gespeichert sind, zu einem Verlust der verfügbaren Speicherkapazität für Benutzerdaten führen (im Gegensatz zu Daten, die zusätzlich für Fehlererkennungs/Korrektur-Algorithmen, Neuschreibvorgänge usw. verwendet werden), da während der Lesen-während-Schreiben-Verarbeitung aufgrund einer hohen C1-Fehlerrate, die sich aus der Kombination des verwendeten C1-Codes mit dem Neuschreibschema ergibt, übermäßig viele Neuschreibvorgänge durchgeführt würden.
  • Daher sind Verbesserungen der Neuschreibstrategie erforderlich, um alle potenziellen Vorteile zu nutzen, die sich durch Verwenden des iterativen Decodierens zum Speichern/Abrufen von Daten aus dem Speichermedium mit sequenziellem Zugriff ergeben. Es ist insbesondere wünschenswert, einen Datenkanal mit einem niedrigeren Rauschabstand zu betreiben, indem die Symbolfehlerrate, bei der eine 1%ige Neuschreibrate erreicht wird, um etwa eine Größenordnung erhöht wird. Mit anderen Worten, es ist wünschenswert, dass die Symbolfehlerrate am C1-Decodierereingang, die einer Neuschreibrate von etwa 1 % entspricht, in einem Bereich von 1×10-3 bis 1×10-2 liegt. Darüber hinaus haben derzeit in CWIs verwendete Codewörter eine relativ geringe Fehlerkorrekturfähigkeit. Diese Codewörter sind nur so konfiguriert, dass pro Codewort fünf bis sechs Byte fehlerhafte Daten korrigiert werden. Dadurch ist die Flexibilität beim Wählen eines Fehlerschwellenwerts für Neuschreiben eingeschränkt, da der Schwellenwert nur bis zu sechs Byte gewählt werden kann. Derzeit werden CWIs mit C1-Codewörtern, die vier oder mehr Fehler enthalten, neu geschrieben. Es wäre von Vorteil, den Fehlerschwellenwert für Neuschreiben aus einem viel größeren Zahlenbereich auswählen zu können. Außerdem ist es wünschenswert, durch Minimieren der Anzahl von CWI-Sätzen, die für jeden Datensatz neu geschrieben werden, die Neuschreibeffizienz zu erhöhen.
  • Mit Bezug nunmehr auf 7 wird ein Fehlermodell 700 gemäß einer Ausführungsform gezeigt. Dieses Fehlermodell 700 stützt sich auf ein einfaches Gilbert-Bündelfehlermodell mit zwei Zuständen, das die Fehlerweitergabe berücksichtigt. Ein binärer Bitfehlerwert (e) zeigt das Vorliegen eines Fehlers an, d.h. entweder e = 0 (kein Fehler) oder e = 1 (Fehler). Im Fehlermodell 700 gibt es zwei Zustände: Gut (good, G) 702 (wobei e = 0 ist, mit der Wahrscheinlichkeit, im Zustand G von g zu sein) und Schlecht (bad, B) 704 (wobei e = 1 ist, mit der Wahrscheinlichkeit, im Zustand B von b zu sein). Jeder Zustandsübergang 706, 708, 710, 712 ist durch ein Wertepaar gekennzeichnet: (Fehlerwert, Zustandsübergangswahrscheinlichkeit). Zustand B 704 ist erreichbar vom Zustand G 702 über den Übergang 706 (wobei e = 1 ist, mit einer Zustandsübergangswahrscheinlichkeit von 1 - g) und durch Verbleiben im Zustand B 704 über den stabilen Zustandsübergang 710 (e = 1, Wahrscheinlichkeit von b). Zustand G 702 ist erreichbar vom Zustand B 704 über den Übergang 708 (wobei e = 0 ist, mit einer Zustandsübergangswahrscheinlichkeit von 1 - b) und durch Verbleiben im Zustand G 702 über den stabilen Zustandsübergang 712 (e = 0, Wahrscheinlichkeit von g). Dieses Fehlermodell 700 kann zum Beschreiben der korrelierten Bitfehler an einem Reed-Solomon-(RS-)Decodierereingang verwendet werden. Bei einem Ansatz können die korrelierten Bitfehler am RS-Decodierereingang durch nur zwei Parameter ermittelt werden: pb, der die Rohbit-Fehlerwahrscheinlichkeit am RS-Decodierereingang darstellt, und b, der die Wahrscheinlichkeit des Verbleibens im Zustand B darstellt (z.B. b = 15/16 = 93,75 % gemäß einer Decodiereranordnung).
  • Die Wahrscheinlichkeit (g) des Verbleibens im Zustand G 702 als Funktion von pb und b ist: g = (1 - pb) + pb (b - pb)/(1 - pb). Daher ist eine stabile Zustandswahrscheinlichkeit, sich im Zustand G 702 zu befinden, (1-b)/(2-b-g), während eine stabile Zustandswahrscheinlichkeit, sich im Zustand B 704 zu befinden, (1-g)/(2-b-g) ist.
  • Mit Bezug auf 8 wird ein unabhängiges Bitfehlermodell 800 gemäß einer Ausführungsform gezeigt. Bei diesem Fehlermodell 800 handelt es sich um ein sehr einfaches Bitfehlermodell mit einem Zustand für additives weißes Gauß'sches Rauschen (additive white Gaussian noise, AWGN), das zu unabhängigen Bitfehlern am RS-Decodierereingang führt. In diesem Fehlermodell 800 gibt es nur einen Zustand 802 mit zwei Übergängen 804, 806. Der erste Übergang 804 zeigt an, dass es keinen Fehler gibt (e = 0, mit einer Zustandsübergangswahrscheinlichkeit von 1 - pb), während der zweite Übergang 806 einen Fehler anzeigt (e = 1, mit einer Zustandsübergangswahrscheinlichkeit von pb). Der binäre Bitfehlerwert (e) kann einen von zwei Werten haben, entweder e = 0 (zeigt an, dass es keinen Fehler gibt) oder e = 1 (zeigt Fehler an). Gemäß einer Ausführungsform wird dieses Fehlermodell 800 durch nur einen Parameter bestimmt: pb, der die Rohbit-Fehlerwahrscheinlichkeit am RS-Decodierereingang darstellt.
  • Mit Bezug auf 9 wird ein vereinfachtes Blockschaubild eines Codewortobjekts 900 gemäß einer Ausführungsform dargestellt. Das Codewortobjekt 900 enthält zwei mit Headern versehene CWIs 902, 904, ist jedoch nicht auf zwei CWIs mit Headern beschränkt, sondern kann auch mehr oder weniger enthalten. Jedes CWI 902, 904 mit Headern enthält, ohne darauf beschränkt zu sein, einen Header 906 und ein CWI 908 mit einem oder mehreren symbolverschachtelten Codewörtern.
  • Jeder Header 906 hat in einer Ausführungsform eine Größe von 12 Byte, kann jedoch in anderen, hierin nicht spezifisch beschriebenen Ausführungsformen länger oder kürzer sein. Der Header 906 kann z.B. 6 Byte, 8 Byte, 10 Byte, 14 Byte, 16 Byte usw. lang sein. Darüber hinaus hat jedes CWI 908 in einer Ausführungsform eine Größe von 960 Byte, kann jedoch in anderen Ausführungsformen, die hier nicht spezifisch beschrieben sind, länger oder kürzer sein. Das CWI 908 kann z.B. 984 Byte, 998 Byte, 1024 Byte, 1472 Byte, 1920 Byte usw. lang sein.
  • Tabelle 1 unten zeigt die Größen des CWI 908, die im Codewortobjekt 900 gemäß drei verschiedenen Ausführungsformen enthalten sind. Jedes Schema verwendet einen Reed-Solomon-(RS-)Code, wobei der C1-Code als RS(N,K) dargestellt wird, und wird über einem Galois-Feld (GF) mit einer vorgegebenen Anzahl von Symbolen erzeugt, dargestellt durch GF(Q). Tabelle 1
    CWI-Größe (Bit) Codewortgröße N (Symbole) Informationsgröße K (Symbole) Code über GF(Q) Symbolgröße (Bits) Fehlerkorrektur (Symbole) Verschachtelungstiefe
    7680 240 228 GF(256) 8 6 4
    7680 384 364 GF(1024) 10 10 2
    7680 768 728 GF(1024) 10 20 1
  • In der ersten Ausführungsform hat jedes CWI eine Länge von 7680 Bit, und der RS-Code zum Codieren von Daten ist RS(240,228) über einem GF(256), womit es möglich ist, sechs Fehlersymbole pro Codewort zu korrigieren. Darüber hinaus beträgt die Verschachtelungstiefe vier, was dazu führt, dass in jedem CWI (z.B. einem CWI-4) vier Codewörter enthalten sind, wobei jedes Codewort Symbole mit einer Symbolgröße von acht Bit verwendet. In der zweiten Ausführungsform hat jedes CWI eine Länge von 7.680 Bit, und der RS-Code zum Codieren von Daten ist RS(384,364) über einem GF(1024), womit es möglich ist, zehn Fehlersymbole pro Codewort zu korrigieren. Darüber hinaus beträgt die Verschachtelungstiefe zwei, was dazu führt, dass in jedem CWI (z.B. einem CWI-2) zwei Codewörter enthalten sind, wobei jedes Codewort Symbole mit einer Symbolgröße von zehn Bit verwendet. In der dritten Ausführungsform hat jedes CWI eine Länge von 7.680 Bit, und der RS-Code zum Codieren von Daten ist RS(768,728) über einem GF(1024), womit es möglich ist, zwanzig Fehlersymbole pro Codewort zu korrigieren. Darüber hinaus beträgt die Verschachtelungstiefe eins, was dazu führt, dass in jedem CWI (z.B. einem CWI-1) ein Codewort enthalten ist, wobei jedes Codewort Symbole mit einer Symbolgröße von zehn Bit verwendet. CWI-1, CWI-2 und CWI-4 sind Beispiele für codierte Datenblöcke (EDB), die Codewörter in einer verschachtelten (z.B. CWI-2 und CWI-4) oder nichtverschachtelten (CWI-1) Anordnung aufweisen.
  • Diese drei Ausführungsformen wurden mithilfe von Vorhersagemodellen untersucht, um die Vorteile zu veranschaulichen, die jede von ihnen gegenüber herkömmlichen Codierungs/Decodierungs-Schemata bietet, wie in den Diagrammen der 10A, 10B, 11A und 11B dargestellt.
  • Wie in 10A gezeigt, wird unter Verwenden eines Gilbert-Bündelfehlermodells mit b = 15/16 am C1-Decodierereingang die Wahrscheinlichkeit des Neuschreibens eines codierten Datenblocks im Vergleich zur Symbolfehlerrate am C1-Decodierereingang dargestellt. Jedes in diesem Diagramm veranschaulichte Szenario geht davon aus, dass der Schwellenwert für Neuschreiben als Fehlerkorrekturschwellenwert auf maximale Fehlerkorrekturfähigkeit des jeweiligen Codes minus zwei eingestellt ist. Es ist zu beachten, dass in der ersten Ausführungsform die maximale Fehlerkorrekturfähigkeit 6, in der zweiten Ausführungsform die maximale Fehlerkorrekturfähigkeit 10 und in der dritten Ausführungsform die maximale Fehlerkorrekturfähigkeit 20 beträgt. Der Schwellenwert für Neuschreiben legt fest, ob Daten neu geschrieben werden, und gibt die Anzahl von Fehlern an, die innerhalb eines Codeworts erlaubt sind, bevor die Daten neu geschrieben werden, z.B. werden Daten aufgrund der Anzahl von Fehlern in einem Codewort, die gleich dem Schwellenwert für Neuschreiben E ist oder diesen überschreitet, neu geschrieben.
  • In dem Diagramm von 10A stellt die obere Linie 1002 die erste Ausführungsform dar, die einen RS-C1-Code mit N = 240, einen Schwellenwert für Neuschreiben von E = 4 und eine Verschachtelungstiefe von I = 4 verwendet. Die mittlere Linie 1004 stellt die zweite Ausführungsform dar, die einen RS-Code mit N = 384, einen Schwellenwert für Neuschreiben von E = 8 und eine Verschachtelungstiefe von I = 2 verwendet. Die untere Linie 1006 stellt die dritte Ausführungsform dar, die einen RS-Code mit N = 768, einen Schwellenwert für Neuschreiben von E = 18 und eine Verschachtelungstiefe von I = 1 verwendet.
  • Wie aus dem Diagramm in 10A hervorgeht, wird bei jeder beliebigen EDB-Neuschreibrate eine größere Leistung (größere Symbolfehlerrate) in der dritten Ausführungsform erreicht, gefolgt von der Leistung in der zweiten Ausführungsform, die größer ist als in der ersten Ausführungsform. Dies liegt daran, dass für Neuschreibzwecke eine höhere Leistung dadurch angezeigt wird, dass am Eingang des C1-Decodierers die gleiche Neuschreibrate (auf der y-Achse angezeigt) bei einer größeren Symbolfehlerrate vorliegt. Eine größere Symbolfehlerrate am Eingang des C1-Decodierers führt zum Betrieb bei niedrigeren Rauschabstandswerten. Daher erlaubt die dritte Ausführungsform der Speichereinheit, mit dem niedrigsten Rauschabstand zu arbeiten, während die Neuschreibrate konstant gehalten wird.
  • Mit Bezug nunmehr auf 10B wird unter Verwenden eines Gilbert-Bündelfehlermodells mit b = 15/16 am C1-Decodierereingang die durchschnittliche Anzahl neu geschriebener codierter Datenblocksätze pro Datensatz im Vergleich zur Symbolfehlerrate am C1-Decodierereingang dargestellt. In dem Diagramm von 10B stellt die obere Linie 1008 die erste Ausführungsform dar, die einen RS-Code mit N = 240, einen Schwellenwert für Neuschreiben von E = 4 und eine Verschachtelungstiefe von I = 4 verwendet. Die mittlere Linie 1010 stellt die zweite Ausführungsform dar, die einen RS-Code mit N = 384, einen Schwellenwert für Neuschreiben von E = 8 und eine Verschachtelungstiefe von I = 2 verwendet. Die untere Linie 1012 stellt die dritte Ausführungsform dar, die einen RS-Code mit N = 768, einen Schwellenwert für Neuschreiben von E = 18 und eine Verschachtelungstiefe von I = 1 verwendet. Die y-Achse zeigt die durchschnittliche Anzahl neu geschriebener codierter Datenblocksätze in einem Datensatz an, wobei 101 für eine Neuschreibrate von etwa 5 % und 100 für eine Neuschreibrate von etwa 0,5 % stehen. Eine geringere Neuschreibrate führt zu einer höheren Leistung aufgrund des Schemas.
  • Wie aus dem Diagramm in 10B hervorgeht, wird bei jeder beliebigen Symbolfehlerrate eine größere Leistung (geringere Neuschreibrate) in der dritten Ausführungsform erreicht, gefolgt von der Leistung in der zweiten Ausführungsform, die größer ist als in der ersten Ausführungsform.
  • Wie in 11A gezeigt, wird unter Verwenden des unabhängigen Symbolfehlermodells am C1-Decodierereingang die Wahrscheinlichkeit des Neuschreibens eines codierten Datenblocks im Vergleich zur Symbolfehlerrate am C1-Decodierereingang dargestellt. Die obere Linie 1102 stellt die erste Ausführungsform dar, die einen RS-Code mit N = 240, einen Schwellenwert für Neuschreiben von E = 4 und eine Verschachtelungstiefe von I = 4 verwendet. Die mittlere Linie 1104 stellt die zweite Ausführungsform dar, die einen RS-Code mit N = 384, einen Schwellenwert für Neuschreiben von E = 8 und eine Verschachtelungstiefe von I = 2 verwendet. Die untere Linie 1106 stellt die dritte Ausführungsform dar, die einen RS-Code mit N = 768, einen Schwellenwert für Neuschreiben von E = 18 und eine Verschachtelungstiefe von I = 1 verwendet.
  • Wie aus dem Diagramm in 11A hervorgeht, wird bei jeder beliebigen Codewort-Neuschreibrate eine größere Leistung (größere Symbolfehlerrate) in der dritten Ausführungsform erreicht, gefolgt von der Leistung in der zweiten Ausführungsform, die größer ist als in der ersten Ausführungsform.
  • Mit Bezug nunmehr auf 11B wird unter Verwenden des unabhängigen Symbolfehlermodells am C1-Decodierereingang die durchschnittliche Anzahl der neu geschriebenen codierten Datenblocksätze pro Datensatz im Vergleich zur Symbolfehlerrate dargestellt. In dem Diagramm von 11B stellt die obere Linie 1108 die erste Ausführungsform dar, die einen RS-Code mit N = 240, einen Schwellenwert für Neuschreiben von E = 4 und eine Verschachtelungstiefe von I = 4 verwendet. Die mittlere Linie 1110 stellt die zweite Ausführungsform dar, die einen RS-Code mit N = 384, einen Schwellenwert für Neuschreiben von E = 8 und eine Verschachtelungstiefe von I = 2 verwendet. Die untere Linie 1112 stellt die dritte Ausführungsform dar, die einen RS-Code mit N = 768, einen Schwellenwert für Neuschreiben von E = 18 und eine Verschachtelungstiefe von I = 1 verwendet. Die y-Achse zeigt die durchschnittliche Anzahl neu geschriebener codierter Datenblocksätze pro Datensatz an, wobei 101 für eine Neuschreibrate von etwa 5 % und 100 für eine Neuschreibrate von etwa 0,5 % stehen. Eine geringere Neuschreibrate führt zu einer höheren Leistung aufgrund des Schemas.
  • Wie aus dem Diagramm in 11B hervorgeht, wird bei jeder beliebigen Symbolfehlerrate eine größere Leistung (geringere Neuschreibrate) wiederum in der dritten Ausführungsform erreicht, gefolgt von der Leistung in der zweiten Ausführungsform, die größer ist als in der ersten Ausführungsform.
  • Mit Bezug auf 12 wird gemäß eines Beispiels eine beispielhafte flexible Neuschreibtabelle gezeigt. Diese flexible Neuschreibtabelle wird mit den folgenden Parametern erstellt: M=32, S=64, R=15, D1=1, D2=1 und einer Teilmenge logischer Spuren für Neuschreiben, die insgesamt drei umfasst. Für diese Parameter bezeichnet M die Gesamtzahl der Kanäle, S die Gesamtzahl von Teildatensätzen in einem Datensatz, R ist der Rotationsparameter der Neuschreibtabelle, und D1+D2+1 gibt die Größe der Teilmenge der logischen Spuren an. Es versteht sich, dass ähnliche flexible Neuschreibtabellen mithilfe einer beliebigen Kombination von Parametern erstellt werden können, die in den hierin beschriebenen Systemen und Verfahren in verschiedenen Ausführungsformen implementiert werden können, wie es für den Fachmann beim Lesen der vorliegenden Beschreibungen offensichtlich ist. Die flexible Neuschreibtabelle zeigt einen bestimmten codierten Datenblocksatz (EDB-Satz) c und eine bestimmte, in den Neuschreibbereich neu zu schreibende Spur t, von dem aus EDBs in einer bestimmte Kombination aus EDB-Satz c und logischer Spur t neu geschrieben werden können. Beispielsweise kann für den EDB-Satz 1 und die logische Spur 1 ein codierter Datenblock nur von einem der Teildatensätze 34, 35, 36, 37, 38 oder 39 neu geschrieben werden. In einem anderen Beispiel kann für den EDB-Satz 3 und die logische Spur 5 ein codierter Datenblock nur von einem der Teildatensätze 46, 47, 48, 49, 50 oder 51 neu geschrieben werden. In noch einem anderen Beispiel kann für den EDB-Satz 2 und die logische Spur 30 ein codierter Datenblock nur von einem der Teildatensätze 62, 63, 0, 1, 2 oder 3 neu geschrieben werden.
  • Eine flexible Neuschreibtabelle kann verwendet werden, um die verfügbaren logischen Spuren zu erzeugen, auf die Daten für ein Neuschreibschema neu geschrieben werden können. Auf diese Weise kann die flexible Neuschreibtabelle eingesehen werden, die angibt, auf welchen logischen Spuren Daten neu geschrieben werden können, um die Teilmenge logischer Spuren zu ermitteln, auf die Daten für einen bestimmten EDB aus einem bestimmten EDB-Satz neu geschrieben werden können.
  • Für die Beschreibungen der 13 bis 19 gelten die folgenden Definitionen. Ein Speichermedium mit sequenziellem Zugriff umfasst eine Mehrzahl von physischen Spuren. Im Gegensatz zu einer physischen Spur auf dem Medium gibt eine logische Spur an, wie die Daten beim Speichern auf dem Medium aufgeteilt werden, wobei jede logische Spur als i bezeichnet wird, wobei 0 ≤ i ≤ M-1 ist. M bezeichnet die Anzahl der Kanäle des Systems, das Daten schreibt, oder die Anzahl der physischen Spuren des Speichermediums mit sequenziellem Zugriff, die gleichzeitig vom System beschrieben werden, z.B. ein Bandlaufwerk, ein optisches Laufwerk usw. Die logischen Spuren i werden auf den physischen Spuren des Speichermediums abgebildet, und zahlreiche Sätze logischer Spuren werden auf der Mehrzahl physischer Spuren des Mediums abgebildet, da es in der Regel mehr physische als logische Spuren gibt.
  • Mit Bezug nunmehr auf 13 wird ein Verfahren 1300 zum Schreiben und Neuschreiben von Daten auf ein Speichermedium mit sequenziellem Zugriff gemäß einer Ausführungsform gezeigt. Das Verfahren 1300 kann gemäß der vorliegenden Erfindung unter anderem in jeder der in den 1 bis 9 abgebildeten Umgebungen in verschiedenen Ausführungsformen ausgeführt werden. Es versteht sich, dass mehr oder weniger Arbeitsschritte als die speziell in 13 beschriebenen im Verfahren 1300 enthalten sein können, wie es für den Fachmann beim Lesen dieser Beschreibungen offensichtlich ist. Parameter, die mit Großbuchstaben bezeichnet werden, sind in allen Berechnungen des Verfahrens 1300 Konstanten, während Parameter, die mit Kleinbuchstaben bezeichnet werden, Variablen sind.
  • Jeder der Schritte des Verfahrens 1300 kann von geeigneten Komponenten der Betriebsumgebung ausgeführt werden. Beispielsweise kann das Verfahren 1300 in verschiedenen Ausführungsformen teilweise oder vollständig von einer Steuereinheit, einem Prozessor, einem Bandlaufwerk, einem optischen Laufwerk oder einer anderen Einheit mit einem oder mehreren Prozessoren durchgeführt werden. Der Prozessor, z.B. Verarbeitungsschaltung(en), Chip(s) und/oder Modul(e), die in Hardware und/oder Software implementiert sind und vorzugsweise mindestens eine Hardwarekomponente aufweisen, kann in einer beliebigen Einheit verwendet werden, um einen oder mehrere Schritte des Verfahrens 1300 durchzuführen. Zu veranschaulichenden Prozessoren gehören eine CPU, eine ASIC, eine FPGA usw., Kombinationen davon oder jede andere geeignete, nach dem Stand der Technik bekannte Datenverarbeitungseinheit, ohne darauf beschränkt zu sein.
  • Wie in 13 dargestellt, kann das Verfahren 1300 mit dem Arbeitsschritt 1302 beginnen, in dem die vier Parameterwerte E, R, M und 5 gemäß den Vorgaben des Benutzers, den gewünschten Ergebnissen, den Besonderheiten des Laufwerks, das das Speichermedium mit sequenziellem Zugriff betreibt, und/oder des Speichermediums mit sequenziellem Zugriff selbst eingestellt werden. E wird verwendet, um einen Fehlerschwellenwert für Neuschreiben zu bezeichnen, und kann gemäß der Fehleranzahl innerhalb eines CWI eingestellt werden, die ein Neuschreiben des CWI auslöst. Bei verschiedenen Ansätzen kann E in einem Bereich von 1 bis zur maximalen Anzahl korrigierbarer Fehler pro Codewort liegen. E ist normalerweise ein fester Wert und durch die Firmware der Speichereinheit voreingestellt. In einer Ausführungsform kann E aufgrund der Anzahl der Fehler ausgewählt werden, die in CWls auftreten, die auf ein bestimmtes Speichermedium mit sequenziellem Zugriff geschrieben und anschließend während eines Lese-während-Schreiben-Prozesses gelesen werden, wobei die Anzahl der Fehler zunimmt oder abnimmt, sodass der Neuschreibbereich nicht größer wird als gewünscht. R wird verwendet, um einen Rotationsparameter für Neuschreiben zu bezeichnen, der angibt, wie Daten während des Neuschreibens auf die Spuren des Speichermediums mit sequenziellem Zugriff neu geschrieben werden, und ist für den Fachmann offensichtlich. Bei verschiedenen Ansätzen kann R aus einem Bereich gewählt werden, der gleich dem Wert Mist, z.B. R E {0, 1, 2, ..., 31 | M = 32}. M wird verwendet, um die Anzahl der Kanäle zu bezeichnen, und ist abhängig vom verwendeten Laufwerk. 5 bezeichnet eine Anzahl von Teildatensätzen im analysierten Beispieldatensatz und beruht darauf, wie die Daten auf dem Medium gespeichert werden. In einer Ausführungsform ist S = 2*M.
  • In Arbeitsschritt 1304 werden Daten auf das Speichermedium mit sequenziellem Zugriff geschrieben. In einer Ausführungsform werden die Daten in einem CWI aus dem Teildatensatz mit der Zahl p und codiert durch RS(N,K) organisiert, und das CWI enthält / symbolverschachtelte C1-Codewörter über einem GF(Q).
  • Der Wert von p kann ein beliebiger Wert innerhalb des Bereichs 0 ≤ p < 5 im Bereich der analysierten Teildatensätze sein. In verschiedenen Ausführungsformen kann für 11, 2, 4 usw. festgelegt werden, es kann jedoch auch eine beliebige Anzahl von verschachtelten Codewörtern festgelegt werden, wie für den Fachmann offensichtlich ist.
  • Das Galois-Feld (GF) kann eine beliebige geeignete Anzahl von Symbolen Q enthalten. In der ersten Ausführungsform wird für Q 256 festgelegt, und in der zweiten und dritten Ausführungsform wird für Q 1.024 festgelegt, Q kann jedoch jeden nach dem Stand der Technik bekannten Wert aufweisen, z.B. 512, 2.056, 4.128 usw.
  • Gemäß der ersten Ausführungsform wird für N 240, in der zweiten Ausführungsform wird für N 384 und in der dritten Ausführungsform wird für N 768 festgelegt. Darüber hinaus kann N jeden geeigneten nach dem Stand der Technik bekannten Wert aufweisen.
  • In der ersten Ausführungsform wird für K 228, in der zweiten Ausführungsform wird für K 364 und in der dritten Ausführungsform wird für K 728 festgelegt. Darüber hinaus kann K jeden geeigneten nach dem Stand der Technik bekannten Wert aufweisen.
  • In Arbeitsschritt 1306 wird das gerade geschriebene CWI in einem Lesen-während-Schreiben-Prozess gelesen. In Arbeitsschritt 1308 werden alle Codewörter in dem CWI decodiert, um die darin codierten C1-Codewörter zu ermitteln.
  • In Arbeitsschritt 1310 wird ermittelt, ob es innerhalb des CWI C1-Codewörter gibt, die nicht decodiert werden konnten. Als Reaktion darauf, dass mindestens ein C1-Codewort in dem CWI aus dem Teildatensatz mit der Zahl p nicht decodiert werden konnte, geht das Verfahren 1300 zu Arbeitsschritt 1316; andernfalls wird das Verfahren 1300 als Reaktion darauf, dass alle C1-Codewörter in dem CWI aus dem Teildatensatz mit der Zahl p erfolgreich decodiert wurden, in Arbeitsschritt 1312 fortgesetzt.
  • In Arbeitsschritt 1312 wird ermittelt, ob die Anzahl von Symbolfehlern innerhalb eines beliebigen einzelnen decodierten C1-Codeworts gleich oder größer ist als der Fehlerschwellenwert für Neuschreiben E (z.B. Anzahl Fehler für C1-Codewort ≥ E). Als Reaktion darauf, dass kein C1-Codewort mindestens E Symbolfehler enthält, geht das Verfahren 1300 zu Arbeitsschritt 1314; andernfalls wird das Verfahren 1300 als Reaktion darauf, dass mindestens ein C1-Codewort mindestens E Symbolfehler enthält, in Arbeitsschritt 1316 fortgesetzt.
  • In Arbeitsschritt 1314 wird aufgrund der Tatsache, dass in jedem C1-Codewort weniger als E Symbolfehler enthalten sind, festgestellt, dass das CWI erfolgreich geschrieben wurde und dass Neuschreiben nicht vorteilhaft wäre.
  • In Arbeitsschritt 1316 werden zwei Grenzen berechnet, eine erste Grenze a und eine zweite Grenze b. In einer Ausführungsform ist a = (Untergrenze(p/2) + R*c - D1) mod M und b = (Untergrenze(p/2) + R*c + D2) mod M, wobei c eine Zahl des vorliegenden neu geschriebenen CWI-Satzes und 0 ≤ c ist, D1 eine nichtnegative Konstante (z.B. 0, 1, 2 usw.) ist, D2 eine nichtnegative Konstante (z.B. 0, 1, 2 usw.) ist und entweder a < b oder a > b (bei einer Wrap-around-Situation) ist, d.h. a ≠ b. In einer Ausführungsform ist D1 + D2 > 0.
  • In Arbeitsschritt 1318 wird ermittelt, ob eine logische Spur t im Neuschreib-CWI-Satz c zum Neuschreiben verfügbar ist, wobei gilt (a ≤ t ≤ b, wenn a < b) und (t ≥ a oder t ≤ b, wenn b < a), wobei 0 ≤ t < M ist. Eine logische Spur ist als Reaktion auf eine Feststellung, dass ein anderes CWI im vorliegenden Teildatensatz p im Neuschreib-CWI-Satz c auf einer bestimmten Spur t von allen diesen Spuren t für (a ≤ t ≤ b, wenn a < b) oder (t ≥ a oder t ≤ b, wenn b < a) bereits für Neuschreiben vorgesehen ist, nicht für Neuschreiben verfügbar.
  • Als Reaktion darauf, dass keine logischen Spuren in dem vorliegenden Neuschreib-CWI-Satz c zum Neuschreiben verfügbar sind, geht das Verfahren 1300 zu Arbeitsschritt 1320; andernfalls wird das Verfahren 1300 als Reaktion darauf, dass die logische Spur t für Neuschreiben im Neuschreib-CWI-Satz c verfügbar ist, in Arbeitsschritt 1322 fortgesetzt.
  • In Arbeitsschritt 1320 wird das vorliegende CWI auf einer Spur im Neuschreib-CWI-Satz c + n neu geschrieben, wobei n > 0 ist. Mit anderen Worten, das vorliegende CWI wird in einem Teil des Neuschreibbereichs nach dem zum Neuschreiben des vorliegenden Neuschreib-CWI-Satzes c verwendeten Teil des Neuschreibbereichs neu geschrieben.
  • In Arbeitsschritt 1322 wird das vorliegende CWI auf Spur t im Neuschreib-CWI-Satz c neu geschrieben, wobei gilt (a ≤ t ≤ b, wenn a < b) und (t ≥ a oder t ≤ b, wenn b < a).
  • Mit Bezug nunmehr auf 14 wird ein Verfahren 1400 zum Schreiben und Neuschreiben von Daten auf ein Speichermedium mit sequenziellem Zugriff gemäß der ersten Ausführungsform gezeigt. Das Verfahren 1400 kann gemäß der vorliegenden Erfindung unter anderem in jeder der in den 1 bis 9 abgebildeten Umgebungen in verschiedenen Ausführungsformen ausgeführt werden. Es versteht sich, dass mehr oder weniger Arbeitsschritte als die speziell in 14 beschriebenen im Verfahren 1400 enthalten sein können, wie es für den Fachmann beim Lesen dieser Beschreibungen offensichtlich ist. Parameter, die mit Großbuchstaben bezeichnet werden, sind in allen Berechnungen des Verfahrens 1400 Konstanten, während Parameter, die mit Kleinbuchstaben bezeichnet werden, Variablen sind.
  • Jeder der Schritte des Verfahrens 1400 kann von geeigneten Komponenten der Betriebsumgebung ausgeführt werden. Beispielsweise kann das Verfahren 1400 in verschiedenen Ausführungsformen teilweise oder vollständig von einer Steuereinheit, einem Prozessor, einem Bandlaufwerk, einem optischen Laufwerk oder einer anderen Einheit mit einem oder mehreren Prozessoren durchgeführt werden. Der Prozessor, z.B. Verarbeitungsschaltung(en), Chip(s) und/oder Modul(e), die in Hardware und/oder Software implementiert sind und vorzugsweise mindestens eine Hardwarekomponente aufweisen, kann in einer beliebigen Einheit verwendet werden, um einen oder mehrere Schritte des Verfahrens 1400 durchzuführen. Zu veranschaulichenden Prozessoren gehören eine CPU, eine ASIC, eine FPGA usw., Kombinationen davon oder jede andere geeignete, nach dem Stand der Technik bekannte Datenverarbeitungseinheit, ohne darauf beschränkt zu sein.
  • Wie in 14 dargestellt, kann das Verfahren 1400 mit dem Arbeitsschritt 1402 beginnen, in dem die vier Parameterwerte E, R, M und 5 gemäß den Vorgaben des Benutzers, den gewünschten Ergebnissen, den Besonderheiten des Laufwerks, das das Speichermedium mit sequenziellem Zugriff betreibt, und/oder des Speichermediums mit sequenziellem Zugriff selbst eingestellt werden. E wird verwendet, um einen Fehlerschwellenwert für Neuschreiben zu bezeichnen, und kann gemäß der Fehleranzahl innerhalb eines CWI eingestellt werden, die ein Neuschreiben des CWI auslöst. Bei verschiedenen Ansätzen kann E in einem Bereich von 1 bis zur maximalen Anzahl korrigierbarer Fehler pro Codewort liegen. R wird verwendet, um einen Rotationsparameter für Neuschreiben zu bezeichnen, der angibt, wie Daten während des Neuschreibens auf die Spuren des Speichermediums mit sequenziellem Zugriff neu geschrieben werden, und ist für den Fachmann offensichtlich. Bei verschiedenen Ansätzen kann R aus einem Bereich gewählt werden, der gleich dem Wert Mist, z.B. R E {0, 1, 2, ..., 31 | M = 32}. M wird verwendet, um die Anzahl der Kanäle zu bezeichnen, und ist abhängig vom verwendeten Laufwerk. 5 bezeichnet eine Anzahl von Teildatensätzen im analysierten Beispieldatensatz und beruht darauf, wie die Daten auf dem Medium gespeichert werden. In einer Ausführungsform ist S = 2*M.
  • In Arbeitsschritt 1404 wird das vorliegende CWI in dem Teildatensatz p auf das Speichermedium mit sequenziellem Zugriff geschrieben. In dieser Ausführungsform wird das vorliegende CWI aus dem Teildatensatz p durch RS(240,228) codiert, und das CWI enthält vier symbolverschachtelte C1-Codewörter über einem GF(256).
  • In Arbeitsschritt 1406 wird das gerade geschriebene CWI in einem Lesen-während-Schreiben-Prozess mit Symbolen in einem GF(256) gelesen. In Arbeitsschritt 1408 werden alle Codewörter in dem CWI decodiert, um die darin codierten C1-Codewörter zu ermitteln.
  • In Arbeitsschritt 1410 wird ermittelt, ob es innerhalb des CWI aus dem Teildatensatz mit der Zahl p C1-Codewörter gibt, die nicht decodiert werden konnten. Als Reaktion darauf, dass mindestens ein C1-Codewort in dem CWI aus dem Teildatensatz mit der Zahl p nicht decodiert werden konnte, geht das Verfahren 1400 zu Arbeitsschritt 1416; andernfalls wird das Verfahren 1400 als Reaktion darauf, dass alle C1-Codewörter in dem CWI aus dem Teildatensatz mit der Zahl p erfolgreich decodiert wurden, in Arbeitsschritt 1412 fortgesetzt.
  • In Arbeitsschritt 1412 wird ermittelt, ob die Anzahl von Symbolfehlern innerhalb eines beliebigen einzelnen decodierten C1-Codeworts gleich oder größer ist als der Fehlerschwellenwert für Neuschreiben E (z.B. Anzahl Fehler für C1-Codewort ≥ E). Als Reaktion darauf, dass kein C1-Codewort mindestens E Symbolfehler enthält, geht das Verfahren 1400 zu Arbeitsschritt 1414; andernfalls wird das Verfahren 1400 als Reaktion darauf, dass mindestens ein C1-Codewort mindestens E Symbolfehler enthält, in Arbeitsschritt 1416 fortgesetzt.
  • In Arbeitsschritt 1414 wird aufgrund der Tatsache, dass in jedem C1-Codewort weniger als E Symbolfehler enthalten sind, festgestellt, dass das CWI erfolgreich geschrieben wurde und dass Neuschreiben nicht vorteilhaft wäre.
  • In Arbeitsschritt 1416 werden zwei Grenzen berechnet, eine erste Grenze a und eine zweite Grenze b. In einer Ausführungsform ist a = (Untergrenze(p/2) + R*c - 1) mod M und b = (Untergrenze(p/2) + R*c + 1) mod M, wobei c eine Zahl des vorliegenden neu geschriebenen CWI-Satzes und 0 ≤ c ist, und entweder a < b oder a > b (bei einer Wrap-around-Situation) ist, d.h. a ≠ b. Dadurch ist es möglich, das vorliegende CWI aus dem Teildatensatz mit der Zahl p in einem Bereich logischer Spuren neu zu schreiben, wobei der Bereich logische Spuren enthält, die um eins größer und kleiner sind als die aktuelle logische Spur.
  • In Arbeitsschritt 1418 wird ermittelt, ob eine logische Spur t im Neuschreib-CWI-Satz c zum Neuschreiben verfügbar ist, wobei gilt (a ≤ t ≤ b, wenn a < b) und (t ≥ a oder t ≤ b, wenn b < a), wobei 0 ≤ t < M ist. Eine logische Spur ist als Reaktion auf eine Feststellung, dass ein anderes CWI im vorliegenden Teildatensatz p im Neuschreib-CWI-Satz c auf einer bestimmten Spur t von allen diesen Spuren t für (a ≤ t ≤ b, wenn a < b) oder (t ≥ a oder t ≤ b, wenn b < a) bereits für Neuschreiben vorgesehen ist, nicht für Neuschreiben verfügbar.
  • Als Reaktion darauf, dass keine logischen Spuren in dem vorliegenden Neuschreib-CWI-Satz c zum Neuschreiben verfügbar sind, geht das Verfahren 1400 zu Arbeitsschritt 1420; andernfalls wird das Verfahren 1400 als Reaktion darauf, dass die logische Spur t für Neuschreiben im Neuschreib-CWI-Satz c verfügbar ist, in Arbeitsschritt 1422 fortgesetzt.
  • In Arbeitsschritt 1420 wird das vorliegende CWI auf einer Spur im Neuschreib-CWI-Satz c + n neu geschrieben, wobei n > 0 ist. Mit anderen Worten, das vorliegende CWI wird in einem Teil des Neuschreibbereichs nach dem zum Neuschreiben des vorliegenden Neuschreib-CWI-Satzes c verwendeten Teil des Neuschreibbereichs neu geschrieben.
  • In Arbeitsschritt 1422 wird das vorliegende CWI auf Spur t im Neuschreib-CWI-Satz c neu geschrieben, wobei gilt (a ≤ t ≤ b, wenn a < b) und (t ≥ a oder t ≤ b, wenn b < a).
  • Mit Bezug nunmehr auf 15 wird ein Verfahren 1500 zum Schreiben und Neuschreiben von Daten auf ein Speichermedium mit sequenziellem Zugriff gemäß der zweiten Ausführungsform gezeigt. Das Verfahren 1500 kann gemäß der vorliegenden Erfindung unter anderem in jeder der in den 1 bis 9 abgebildeten Umgebungen in verschiedenen Ausführungsformen ausgeführt werden. Es versteht sich, dass mehr oder weniger Arbeitsschritte als die speziell in 15 beschriebenen im Verfahren 1500 enthalten sein können, wie es für den Fachmann beim Lesen dieser Beschreibungen offensichtlich ist. Parameter, die mit Großbuchstaben bezeichnet werden, sind in allen Berechnungen des Verfahrens 1500 Konstanten, während Parameter, die mit Kleinbuchstaben bezeichnet werden, Variablen sind.
  • Jeder der Schritte des Verfahrens 1500 kann von geeigneten Komponenten der Betriebsumgebung ausgeführt werden. Beispielsweise kann das Verfahren 1500 in verschiedenen Ausführungsformen teilweise oder vollständig von einer Steuereinheit, einem Prozessor, einem Bandlaufwerk, einem optischen Laufwerk oder einer anderen Einheit mit einem oder mehreren Prozessoren durchgeführt werden. Der Prozessor, z.B. Verarbeitungsschaltung(en), Chip(s) und/oder Modul(e), die in Hardware und/oder Software implementiert sind und vorzugsweise mindestens eine Hardwarekomponente aufweisen, kann in einer beliebigen Einheit verwendet werden, um einen oder mehrere Schritte des Verfahrens 1500 durchzuführen. Zu veranschaulichenden Prozessoren gehören eine CPU, eine ASIC, eine FPGA usw., Kombinationen davon oder jede andere geeignete, nach dem Stand der Technik bekannte Datenverarbeitungseinheit, ohne darauf beschränkt zu sein.
  • Wie in 15 dargestellt, kann das Verfahren 1500 mit dem Arbeitsschritt 1502 beginnen, in dem die vier Parameterwerte E, R, M und 5 gemäß den Vorgaben des Benutzers, den gewünschten Ergebnissen, den Besonderheiten des Laufwerks, das das Speichermedium mit sequenziellem Zugriff betreibt, und/oder des Speichermediums mit sequenziellem Zugriff selbst eingestellt werden. E wird verwendet, um einen Fehlerschwellenwert für Neuschreiben zu bezeichnen, und kann gemäß der Fehleranzahl innerhalb eines CWI eingestellt werden, die ein Neuschreiben des CWI auslöst. Bei verschiedenen Ansätzen kann E in einem Bereich von 1 bis zur maximalen Anzahl korrigierbarer Fehler pro Codewort liegen. R wird verwendet, um einen Rotationsparameter für Neuschreiben zu bezeichnen, der angibt, wie Daten während des Neuschreibens auf die Spuren des Speichermediums mit sequenziellem Zugriff neu geschrieben werden, und ist für den Fachmann offensichtlich. Bei verschiedenen Ansätzen kann R aus einem Bereich gewählt werden, der gleich dem Wert Mist, z.B. R E {0, 1, 2, ..., 31 | M = 32}. M wird verwendet, um die Anzahl der Kanäle zu bezeichnen, und ist abhängig vom verwendeten Laufwerk. 5 bezeichnet eine Anzahl von Teildatensätzen im analysierten Beispieldatensatz und beruht darauf, wie die Daten auf dem Medium gespeichert werden. In einer Ausführungsform ist S = 2*M.
  • In Arbeitsschritt 1504 wird das vorliegende CWI in dem Teildatensatz p auf das Speichermedium mit sequenziellem Zugriff geschrieben. In dieser Ausführungsform wird das vorliegende CWI aus dem Teildatensatz p durch RS(384,364) codiert, und das CWI enthält zwei symbolverschachtelte C1-Codewörter über einem GF(1024).
  • In Arbeitsschritt 1506 wird das gerade geschriebene CWI in einem Lesen-während-Schreiben-Prozess mit Symbolen in einem GF(1024) gelesen. In Arbeitsschritt 1508 werden alle Codewörter in dem CWI decodiert, um die darin codierten C1-Codewörter zu ermitteln.
  • In Arbeitsschritt 1510 wird ermittelt, ob es innerhalb des vorliegenden CWI aus dem Teildatensatz mit der Zahl p C1-Codewörter gibt, die nicht decodiert werden konnten. Als Reaktion darauf, dass mindestens ein C1-Codewort in dem CWI aus dem Teildatensatz mit der Zahl p nicht decodiert werden konnte, geht das Verfahren 1500 zu Arbeitsschritt 1516; andernfalls wird das Verfahren 1500 als Reaktion darauf, dass alle C1-Codewörter in dem CWI aus dem Teildatensatz mit der Zahl p erfolgreich decodiert wurden, in Arbeitsschritt 1512 fortgesetzt.
  • In Arbeitsschritt 1512 wird ermittelt, ob die Anzahl von Symbolfehlern innerhalb eines beliebigen einzelnen decodierten C1-Codeworts gleich oder größer ist als der Fehlerschwellenwert für Neuschreiben E (z.B. Anzahl Fehler für C1-Codewort ≥ E). Als Reaktion darauf, dass kein C1-Codewort mindestens E Symbolfehler enthält, geht das Verfahren 1500 zu Arbeitsschritt 1514; andernfalls wird das Verfahren 1500 als Reaktion darauf, dass mindestens ein C1-Codewort mindestens E Symbolfehler enthält, in Arbeitsschritt 1516 fortgesetzt.
  • In Arbeitsschritt 1514 wird aufgrund der Tatsache, dass in jedem C1-Codewort weniger als E Symbolfehler enthalten sind, festgestellt, dass das CWI erfolgreich geschrieben wurde und dass Neuschreiben nicht vorteilhaft wäre.
  • In Arbeitsschritt 1516 werden zwei Grenzen berechnet, eine erste Grenze a und eine zweite Grenze b. In einer Ausführungsform ist a = (Untergrenze(p/2) + R*c - 1) mod M und b = (Untergrenze(p/2) + R*c + 1) mod M, wobei c eine Zahl des vorliegenden neu geschriebenen CWI-Satzes und 0 ≤ c ist, und entweder a < b oder a > b (bei einer Wrap-around-Situation) ist, d.h. a ≠ b. Dadurch ist es möglich, das vorliegende CWI aus dem Teildatensatz mit der Zahl p in einem Bereich logischer Spuren neu zu schreiben, wobei der Bereich logische Spuren enthält, die um eins größer und kleiner sind als die aktuelle logische Spur.
  • In Arbeitsschritt 1518 wird ermittelt, ob eine logische Spur t im Neuschreib-CWI-Satz c zum Neuschreiben verfügbar ist, wobei gilt (a ≤ t ≤ b, wenn a < b) und (t ≥ a oder t ≤ b, wenn b < a), wobei 0 ≤ t < M ist. Eine logische Spur ist als Reaktion auf eine Feststellung, dass ein anderes CWI im vorliegenden Teildatensatz p im Neuschreib-CWI-Satz c auf einer bestimmten Spur t von allen diesen Spuren t für (a ≤ t ≤ b, wenn a < b) oder (t ≥ a oder t ≤ b, wenn b < a) bereits für Neuschreiben vorgesehen ist, nicht für Neuschreiben verfügbar.
  • Als Reaktion darauf, dass keine logischen Spuren in dem vorliegenden Neuschreib-CWI-Satz c zum Neuschreiben verfügbar sind, geht das Verfahren 1500 zu Arbeitsschritt 1520; andernfalls wird das Verfahren 1500 als Reaktion darauf, dass die logische Spur t für Neuschreiben im Neuschreib-CWI-Satz c verfügbar ist, in Arbeitsschritt 1522 fortgesetzt.
  • In Arbeitsschritt 1520 wird das vorliegende CWI auf einer Spur im Neuschreib-CWI-Satz c + n neu geschrieben, wobei n > 0 ist. Mit anderen Worten, das vorliegende CWI wird in einem Teil des Neuschreibbereichs nach dem zum Neuschreiben des vorliegenden Neuschreib-CWI-Satzes c verwendeten Teil des Neuschreibbereichs neu geschrieben.
  • In Arbeitsschritt 1522 wird das vorliegende CWI auf Spur t im Neuschreib-CWI-Satz c neu geschrieben, wobei gilt (a ≤ t ≤ b, wenn a < b) und (t ≥ a oder t ≤ b, wenn b < a).
  • Mit Bezug nunmehr auf 16 wird ein Verfahren 1600 zum Schreiben und Neuschreiben von Daten auf ein Speichermedium mit sequenziellem Zugriff gemäß der dritten Ausführungsform gezeigt. Das Verfahren 1600 kann gemäß der vorliegenden Erfindung unter anderem in jeder der in den 1 bis 9 abgebildeten Umgebungen in verschiedenen Ausführungsformen ausgeführt werden. Es versteht sich, dass mehr oder weniger Arbeitsschritte als die speziell in 16 beschriebenen im Verfahren 1600 enthalten sein können, wie es für den Fachmann beim Lesen dieser Beschreibungen offensichtlich ist. Parameter, die mit Großbuchstaben bezeichnet werden, sind in allen Berechnungen des Verfahrens 1600 Konstanten, während Parameter, die mit Kleinbuchstaben bezeichnet werden, Variablen sind.
  • Jeder der Schritte des Verfahrens 1600 kann von geeigneten Komponenten der Betriebsumgebung ausgeführt werden. Beispielsweise kann das Verfahren 1600 in verschiedenen Ausführungsformen teilweise oder vollständig von einer Steuereinheit, einem Prozessor, einem Bandlaufwerk, einem optischen Laufwerk oder einer anderen Einheit mit einem oder mehreren Prozessoren durchgeführt werden. Der Prozessor, z.B. Verarbeitungsschaltung(en), Chip(s) und/oder Modul(e), die in Hardware und/oder Software implementiert sind und vorzugsweise mindestens eine Hardwarekomponente aufweisen, kann in einer beliebigen Einheit verwendet werden, um einen oder mehrere Schritte des Verfahrens 1600 durchzuführen. Zu veranschaulichenden Prozessoren gehören eine CPU, eine ASIC, eine FPGA usw., Kombinationen davon oder jede andere geeignete, nach dem Stand der Technik bekannte Datenverarbeitungseinheit, ohne darauf beschränkt zu sein.
  • Wie in 16 dargestellt, kann das Verfahren 1600 mit dem Arbeitsschritt 1602 beginnen, in dem die vier Parameterwerte E, R, M und 5 gemäß den Vorgaben des Benutzers, den gewünschten Ergebnissen, den Besonderheiten des Laufwerks, das das Speichermedium mit sequenziellem Zugriff betreibt, und/oder des Speichermediums mit sequenziellem Zugriff selbst eingestellt werden. E wird verwendet, um einen Fehlerschwellenwert für Neuschreiben zu bezeichnen, und kann gemäß der Fehleranzahl innerhalb eines CWI eingestellt werden, die ein Neuschreiben des CWI auslöst. Bei verschiedenen Ansätzen kann E in einem Bereich von 1 bis zur maximalen Anzahl korrigierbarer Fehler pro Codewort liegen. R wird verwendet, um einen Rotationsparameter für Neuschreiben zu bezeichnen, der angibt, wie Daten während des Neuschreibens auf die Spuren des Speichermediums mit sequenziellem Zugriff neu geschrieben werden, und ist für den Fachmann offensichtlich. Bei verschiedenen Ansätzen kann R aus einem Bereich gewählt werden, der gleich dem Wert Mist, z.B. R E {0, 1, 2, ..., 31 | M = 32}. M wird verwendet, um die Anzahl der Kanäle zu bezeichnen, und ist abhängig vom verwendeten Laufwerk. 5 bezeichnet eine Anzahl von Teildatensätzen im analysierten Beispieldatensatz und beruht darauf, wie die Daten auf dem Medium gespeichert werden. In einer Ausführungsform ist S = 2*M.
  • In Arbeitsschritt 1604 wird das vorliegende CWI in dem Teildatensatz p auf das Speichermedium mit sequenziellem Zugriff geschrieben. In dieser Ausführungsform wird das vorliegende CWI aus dem Teildatensatz p durch RS(768,728) codiert, und das CWI enthält ein C1-Codewort über einem GF(1024); daher ist es im eigentlichen Sinn keine Codewortverschachtelung mehrerer Codewörter, sondern nur ein Codewort.
  • In Arbeitsschritt 1606 wird das gerade geschriebene CWI in einem Lesen-während-Schreiben-Prozess mit Symbolen in einem GF(1024) gelesen. In Arbeitsschritt 1608 wird das Codewort in dem CWI decodiert, um darin codierte C1-Codewörter zu ermitteln.
  • In Arbeitsschritt 1610 wird ermittelt, ob das C1-Codewort der vorliegenden CWI aus dem Teildatensatz mit der Zahl p nicht decodiert werden konnte. Als Reaktion darauf, dass das C1-Codewort in dem CWI aus dem Teildatensatz mit der Zahl p nicht decodiert werden konnte, geht das Verfahren 1600 zu Arbeitsschritt 1616; andernfalls wird das Verfahren 1600 als Reaktion darauf, dass das C1-Codewort in dem CWI aus dem Teildatensatz mit der Zahl p erfolgreich decodiert wurde, in Arbeitsschritt 1612 fortgesetzt.
  • In Arbeitsschritt 1612 wird ermittelt, ob die Anzahl von Symbolfehlern innerhalb des decodierten C1-Codeworts gleich oder größer ist als der Fehlerschwellenwert für Neuschreiben E (z.B. Anzahl Fehler für C1-Codewort ≥ E). Als Reaktion darauf, dass das C1-Codewort mindestens E Symbolfehler enthält, geht das Verfahren 1600 zu Arbeitsschritt 1614; andernfalls wird das Verfahren 1600 als Reaktion darauf, dass das C1-Codewort mindestens E Symbolfehler enthält, in Arbeitsschritt 1616 fortgesetzt.
  • In Arbeitsschritt 1614 wird aufgrund der Tatsache, dass in dem C1-Codewort weniger als E Symbolfehler enthalten sind, festgestellt, dass das CWI erfolgreich geschrieben wurde und dass Neuschreiben nicht vorteilhaft wäre.
  • In Arbeitsschritt 1616 werden zwei Grenzen berechnet, eine erste Grenze a und eine zweite Grenze b. In einer Ausführungsform ist a = (Untergrenze(p/2) + R*c - 1) mod M und b = (Untergrenze(p/2) + R*c + 1) mod M, wobei c eine Zahl des vorliegenden neu geschriebenen CWI-Satzes und 0 ≤ c ist, und entweder a < b oder a > b (bei einer Wrap-around-Situation) ist, d.h. a ≠ b. Dadurch ist es möglich, das vorliegende CWI aus dem Teildatensatz mit der Zahl p in einem Bereich logischer Spuren neu zu schreiben, wobei der Bereich logische Spuren enthält, die um eins größer und kleiner sind als die aktuelle logische Spur.
  • In Arbeitsschritt 1618 wird ermittelt, ob eine logische Spur t im Neuschreib-CWI-Satz c zum Neuschreiben verfügbar ist, wobei gilt (a ≤ t ≤ b, wenn a < b) und (t ≥ a oder t ≤ b, wenn b < a), wobei 0 ≤ t < M ist. Eine logische Spur ist als Reaktion auf eine Feststellung, dass ein anderes CWI im vorliegenden Teildatensatz p im Neuschreib-CWI-Satz c auf einer bestimmten Spur t von allen diesen Spuren t für (a ≤ t ≤ b, wenn a < b) oder (t ≥ a oder t ≤ b, wenn b < a) bereits für Neuschreiben vorgesehen ist, nicht für Neuschreiben verfügbar.
  • Als Reaktion darauf, dass keine logischen Spuren in dem vorliegenden Neuschreib-CWI-Satz c zum Neuschreiben verfügbar sind, geht das Verfahren 1600 zu Arbeitsschritt 1620; andernfalls wird das Verfahren 1600 als Reaktion darauf, dass die logische Spur t für Neuschreiben im Neuschreib-CWI-Satz c verfügbar ist, in Arbeitsschritt 1622 fortgesetzt.
  • In Arbeitsschritt 1620 wird das vorliegende CWI auf einer Spur im Neuschreib-CWI-Satz c + n neu geschrieben, wobei n > 0 ist. Mit anderen Worten, das vorliegende CWI wird in einem Teil des Neuschreibbereichs nach dem zum Neuschreiben des vorliegenden Neuschreib-CWI-Satzes c verwendeten Teil des Neuschreibbereichs neu geschrieben.
  • In Arbeitsschritt 1622 wird das vorliegende CWI auf Spur t im Neuschreib-CWI-Satz c neu geschrieben, wobei gilt (a ≤ t ≤ b, wenn a < b) und (t ≥ a oder t ≤ b, wenn b < a).
  • Mit Bezug nunmehr auf 17 wird ein Verfahren 1700 zum Schreiben und Neuschreiben von Daten auf ein Speichermedium mit sequenziellem Zugriff gemäß einer vierten Ausführungsform gezeigt. Das Verfahren 1700 kann gemäß der vorliegenden Erfindung unter anderem in jeder der in den 1 bis 9 abgebildeten Umgebungen in verschiedenen Ausführungsformen ausgeführt werden. Es versteht sich, dass mehr oder weniger Arbeitsschritte als die speziell in 17 beschriebenen im Verfahren 1700 enthalten sein können, wie es für den Fachmann beim Lesen dieser Beschreibungen offensichtlich ist. Parameter, die mit Großbuchstaben bezeichnet werden, sind in allen Berechnungen des Verfahrens 1700 Konstanten, während Parameter, die mit Kleinbuchstaben bezeichnet werden, Variablen sind.
  • Jeder der Schritte des Verfahrens 1700 kann von geeigneten Komponenten der Betriebsumgebung ausgeführt werden. Beispielsweise kann das Verfahren 1700 in verschiedenen Ausführungsformen teilweise oder vollständig von einer Steuereinheit, einem Prozessor, einem Bandlaufwerk, einem optischen Laufwerk oder einer anderen Einheit mit einem oder mehreren Prozessoren durchgeführt werden. Der Prozessor, z.B. Verarbeitungsschaltung(en), Chip(s) und/oder Modul(e), die in Hardware und/oder Software implementiert sind und vorzugsweise mindestens eine Hardwarekomponente aufweisen, kann in einer beliebigen Einheit verwendet werden, um einen oder mehrere Schritte des Verfahrens 1700 durchzuführen. Zu veranschaulichenden Prozessoren gehören eine CPU, eine ASIC, eine FPGA usw., Kombinationen davon oder jede andere geeignete, nach dem Stand der Technik bekannte Datenverarbeitungseinheit, ohne darauf beschränkt zu sein.
  • Wie in 17 dargestellt, kann das Verfahren 1700 mit dem Arbeitsschritt 1702 beginnen, in dem die vier Parameterwerte E, R, M und 5 gemäß den Vorgaben des Benutzers, den gewünschten Ergebnissen, den Besonderheiten des Laufwerks, das das Speichermedium mit sequenziellem Zugriff betreibt, und/oder des Speichermediums mit sequenziellem Zugriff selbst eingestellt werden. E wird verwendet, um einen Fehlerschwellenwert für Neuschreiben zu bezeichnen, und kann gemäß der Fehleranzahl innerhalb eines CWI eingestellt werden, die ein Neuschreiben des CWI auslöst. Bei verschiedenen Ansätzen kann E in einem Bereich von 1 bis zur maximalen Anzahl korrigierbarer Fehler pro Codewort liegen. R wird verwendet, um einen Rotationsparameter für Neuschreiben zu bezeichnen, der angibt, wie Daten während des Neuschreibens auf die Spuren des Speichermediums mit sequenziellem Zugriff neu geschrieben werden, und ist für den Fachmann offensichtlich. Bei verschiedenen Ansätzen kann R aus einem Bereich gewählt werden, der gleich dem Wert Mist, z.B. R E {0, 1, 2, ..., 31 | M = 32}. M wird verwendet, um die Anzahl der Kanäle zu bezeichnen, und ist abhängig vom verwendeten Laufwerk. 5 bezeichnet eine Anzahl von Teildatensätzen im analysierten Beispieldatensatz und beruht darauf, wie die Daten auf dem Medium gespeichert werden. In einer Ausführungsform ist S = 2*M.
  • In Arbeitsschritt 1704 wird das vorliegende CWI in dem Teildatensatz p auf das Speichermedium mit sequenziellem Zugriff geschrieben. In dieser Ausführungsform wird das vorliegende CWI aus dem Teildatensatz p durch RS(240,228) codiert, und das CWI enthält vier symbolverschachtelte C1-Codewörter über einem GF(256).
  • In Arbeitsschritt 1706 wird das gerade geschriebene CWI in einem Lesen-während-Schreiben-Prozess mit Symbolen in einem GF(256) gelesen. In Arbeitsschritt 1708 werden alle Codewörter in dem CWI decodiert, um die darin codierten C1-Codewörter zu ermitteln.
  • In Arbeitsschritt 1710 wird ermittelt, ob es innerhalb des CWI aus dem Teildatensatz mit der Zahl p C1-Codewörter gibt, die nicht decodiert werden konnten. Als Reaktion darauf, dass mindestens ein C1-Codewort in dem CWI aus dem Teildatensatz mit der Zahl p nicht decodiert werden konnte, geht das Verfahren 1700 zu Arbeitsschritt 1716; andernfalls wird das Verfahren 1700 als Reaktion darauf, dass alle C1-Codewörter in dem CWI aus dem Teildatensatz mit der Zahl p erfolgreich decodiert wurden, in Arbeitsschritt 1712 fortgesetzt.
  • In Arbeitsschritt 1712 wird ermittelt, ob die Anzahl von Symbolfehlern innerhalb eines beliebigen einzelnen decodierten C1-Codeworts gleich oder größer ist als der Fehlerschwellenwert für Neuschreiben E (z.B. Anzahl Fehler für C1-Codewort ≥ E). Als Reaktion darauf, dass kein C1-Codewort mindestens E Symbolfehler enthält, geht das Verfahren 1700 zu Arbeitsschritt 1714; andernfalls wird das Verfahren 1700 als Reaktion darauf, dass mindestens ein C1-Codewort mindestens E Symbolfehler enthält, in Arbeitsschritt 1716 fortgesetzt.
  • In Arbeitsschritt 1714 wird aufgrund der Tatsache, dass in jedem C1-Codewort weniger als E Symbolfehler enthalten sind, festgestellt, dass das CWI erfolgreich geschrieben wurde und dass Neuschreiben nicht vorteilhaft wäre.
  • In Arbeitsschritt 1716 werden zwei Grenzen berechnet, eine erste Grenze a und eine zweite Grenze b. In einer Ausführungsform ist a = (Untergrenze(p/2) + R*c - 2) mod M und b = (Untergrenze(p/2) + R*c + 2) mod M, wobei c eine Zahl des vorliegenden neu geschriebenen CWI-Satzes und 0 ≤ c ist, und entweder a < b oder a > b (bei einer Wrap-around-Situation) ist, d.h. a ≠ b. Dadurch ist es möglich, das vorliegende CWI aus dem Teildatensatz mit der Zahl p in einem Bereich logischer Spuren neu zu schreiben, wobei der Bereich logische Spuren enthält, die um zwei größer und kleiner sind als die aktuelle logische Spur.
  • In Arbeitsschritt 1718 wird ermittelt, ob eine logische Spur t im Neuschreib-CWI-Satz c zum Neuschreiben verfügbar ist, wobei gilt (a ≤ t ≤ b, wenn a < b) und (t ≥ a oder t ≤ b, wenn b < a), wobei 0 ≤ t < M ist. Eine logische Spur ist als Reaktion auf eine Feststellung, dass ein anderes CWI im vorliegenden Teildatensatz p im Neuschreib-CWI-Satz c auf einer bestimmten Spur t von allen diesen Spuren t für (a ≤ t ≤ b, wenn a < b) oder (t ≥ a oder t ≤ b, wenn b < a) bereits für Neuschreiben vorgesehen ist, nicht für Neuschreiben verfügbar.
  • Als Reaktion darauf, dass keine logischen Spuren in dem vorliegenden Neuschreib-CWI-Satz c zum Neuschreiben verfügbar sind, geht das Verfahren 1700 zu Arbeitsschritt 1720; andernfalls wird das Verfahren 1700 als Reaktion darauf, dass die logische Spur t für Neuschreiben im Neuschreib-CWI-Satz c verfügbar ist, in Arbeitsschritt 1722 fortgesetzt.
  • In Arbeitsschritt 1720 wird das vorliegende CWI auf einer Spur im Neuschreib-CWI-Satz c + n neu geschrieben, wobei n > 0 ist. Mit anderen Worten, das vorliegende CWI wird in einem Teil des Neuschreibbereichs nach dem zum Neuschreiben des vorliegenden Neuschreib-CWI-Satzes c verwendeten Teil des Neuschreibbereichs neu geschrieben.
  • In Arbeitsschritt 1722 wird das vorliegende CWI auf Spur t im Neuschreib-CWI-Satz c neu geschrieben, wobei gilt (a ≤ t ≤ b, wenn a < b) und (t ≥ a oder t ≤ b, wenn b < a).
  • Mit Bezug nunmehr auf 18 wird ein Verfahren 1800 zum Schreiben und Neuschreiben von Daten auf ein Speichermedium mit sequenziellem Zugriff gemäß einer fünften Ausführungsform gezeigt. Das Verfahren 1800 kann gemäß der vorliegenden Erfindung unter anderem in jeder der in den 1 bis 9 abgebildeten Umgebungen in verschiedenen Ausführungsformen ausgeführt werden. Es versteht sich, dass mehr oder weniger Arbeitsschritte als die speziell in 18 beschriebenen im Verfahren 1800 enthalten sein können, wie es für den Fachmann beim Lesen dieser Beschreibungen offensichtlich ist. Parameter, die mit Großbuchstaben bezeichnet werden, sind in allen Berechnungen des Verfahrens 1800 Konstanten, während Parameter, die mit Kleinbuchstaben bezeichnet werden, Variablen sind.
  • Jeder der Schritte des Verfahrens 1800 kann von geeigneten Komponenten der Betriebsumgebung ausgeführt werden. Beispielsweise kann das Verfahren 1800 in verschiedenen Ausführungsformen teilweise oder vollständig von einer Steuereinheit, einem Prozessor, einem Bandlaufwerk, einem optischen Laufwerk oder einer anderen Einheit mit einem oder mehreren Prozessoren durchgeführt werden. Der Prozessor, z.B. Verarbeitungsschaltung(en), Chip(s) und/oder Modul(e), die in Hardware und/oder Software implementiert sind und vorzugsweise mindestens eine Hardwarekomponente aufweisen, kann in einer beliebigen Einheit verwendet werden, um einen oder mehrere Schritte des Verfahrens 1800 durchzuführen. Zu veranschaulichenden Prozessoren gehören eine CPU, eine ASIC, eine FPGA usw., Kombinationen davon oder jede andere geeignete, nach dem Stand der Technik bekannte Datenverarbeitungseinheit, ohne darauf beschränkt zu sein.
  • Wie in 18 dargestellt, kann das Verfahren 1800 mit dem Arbeitsschritt 1802 beginnen, in dem die vier Parameterwerte E, R, M und 5 gemäß den Vorgaben des Benutzers, den gewünschten Ergebnissen, den Besonderheiten des Laufwerks, das das Speichermedium mit sequenziellem Zugriff betreibt, und/oder des Speichermediums mit sequenziellem Zugriff selbst eingestellt werden. E wird verwendet, um einen Fehlerschwellenwert für Neuschreiben zu bezeichnen, und kann gemäß der Fehleranzahl innerhalb eines CWI eingestellt werden, die ein Neuschreiben des CWI auslöst. Bei verschiedenen Ansätzen kann E in einem Bereich von 1 bis zur maximalen Anzahl korrigierbarer Fehler pro Codewort liegen. R wird verwendet, um einen Rotationsparameter für Neuschreiben zu bezeichnen, der angibt, wie Daten während des Neuschreibens auf die Spuren des Speichermediums mit sequenziellem Zugriff neu geschrieben werden, und ist für den Fachmann offensichtlich. Bei verschiedenen Ansätzen kann R aus einem Bereich gewählt werden, der gleich dem Wert Mist, z.B. R E {0, 1, 2, ..., 31 | M = 32}. M wird verwendet, um die Anzahl der Kanäle zu bezeichnen, und ist abhängig vom verwendeten Laufwerk. 5 bezeichnet eine Anzahl von Teildatensätzen im analysierten Beispieldatensatz und beruht darauf, wie die Daten auf dem Medium gespeichert werden. In einer Ausführungsform ist S = 2*M.
  • In Arbeitsschritt 1804 wird das vorliegende CWI in dem Teildatensatz p auf das Speichermedium mit sequenziellem Zugriff geschrieben. In dieser Ausführungsform wird das vorliegende CWI aus dem Teildatensatz p durch RS(384,364) codiert, und das CWI enthält zwei symbolverschachtelte C1-Codewörter über einem GF(1024).
  • In Arbeitsschritt 1806 wird das gerade geschriebene CWI in einem Lesen-während-Schreiben-Prozess mit Symbolen in einem GF(1024) gelesen. In Arbeitsschritt 1808 werden alle Codewörter in dem CWI decodiert, um die darin codierten C1-Codewörter zu ermitteln.
  • In Arbeitsschritt 1810 wird ermittelt, ob es innerhalb des vorliegenden CWI aus dem Teildatensatz mit der Zahl p C1-Codewörter gibt, die nicht decodiert werden konnten. Als Reaktion darauf, dass mindestens ein C1-Codewort in dem CWI aus dem Teildatensatz mit der Zahl p nicht decodiert werden konnte, geht das Verfahren 1800 zu Arbeitsschritt 1816; andernfalls wird das Verfahren 1800 als Reaktion darauf, dass alle C1-Codewörter in dem CWI aus dem Teildatensatz mit der Zahl p erfolgreich decodiert wurden, in Arbeitsschritt 1812 fortgesetzt.
  • In Arbeitsschritt 1812 wird ermittelt, ob die Anzahl von Symbolfehlern innerhalb eines beliebigen einzelnen decodierten C1-Codeworts gleich oder größer ist als der Fehlerschwellenwert für Neuschreiben E (z.B. Anzahl Fehler für C1-Codewort ≥ E). Als Reaktion darauf, dass kein C1-Codewort mindestens E Symbolfehler enthält, geht das Verfahren 1800 zu Arbeitsschritt 1814; andernfalls wird das Verfahren 1800 als Reaktion darauf, dass mindestens ein C1-Codewort mindestens E Symbolfehler enthält, in Arbeitsschritt 1816 fortgesetzt.
  • In Arbeitsschritt 1814 wird aufgrund der Tatsache, dass in jedem C1-Codewort weniger als E Symbolfehler enthalten sind, festgestellt, dass das CWI erfolgreich geschrieben wurde und dass Neuschreiben nicht vorteilhaft wäre.
  • In Arbeitsschritt 1816 werden zwei Grenzen berechnet, eine erste Grenze a und eine zweite Grenze b. In einer Ausführungsform ist a = (Untergrenze(p/2) + R*c - 2) mod M und b = (Untergrenze(p/2) + R*c + 2) mod M, wobei c eine Zahl des vorliegenden neu geschriebenen CWI-Satzes und 0 ≤ c ist, und entweder a < b oder a > b (bei einer Wrap-around-Situation) ist, d.h. a ≠ b. Dadurch ist es möglich, das vorliegende CWI aus dem Teildatensatz mit der Zahl p in einem Bereich logischer Spuren neu zu schreiben, wobei der Bereich logische Spuren enthält, die um zwei größer und kleiner sind als die aktuelle logische Spur.
  • In Arbeitsschritt 1818 wird ermittelt, ob eine logische Spur t im Neuschreib-CWI-Satz c zum Neuschreiben verfügbar ist, wobei gilt (a ≤ t ≤ b, wenn a < b) und (t ≥ a oder t ≤ b, wenn b < a), wobei 0 ≤ t < M ist. Eine logische Spur ist als Reaktion auf eine Feststellung, dass ein anderes CWI im vorliegenden Teildatensatz p im Neuschreib-CWI-Satz c auf einer bestimmten Spur t von allen diesen Spuren t für (a ≤ t ≤ b, wenn a < b) oder (t ≥ a oder t ≤ b, wenn b < a) bereits für Neuschreiben vorgesehen ist, nicht für Neuschreiben verfügbar.
  • Als Reaktion darauf, dass keine logischen Spuren in dem vorliegenden Neuschreib-CWI-Satz c zum Neuschreiben verfügbar sind, geht das Verfahren 1800 zu Arbeitsschritt 1820; andernfalls wird das Verfahren 1800 als Reaktion darauf, dass die logische Spur t für Neuschreiben im Neuschreib-CWI-Satz c verfügbar ist, in Arbeitsschritt 1822 fortgesetzt.
  • In Arbeitsschritt 1820 wird das vorliegende CWI auf einer Spur im Neuschreib-CWI-Satz c + n neu geschrieben, wobei n > 0 ist. Mit anderen Worten, das vorliegende CWI wird in einem Teil des Neuschreibbereichs nach dem zum Neuschreiben des vorliegenden Neuschreib-CWI-Satzes c verwendeten Teil des Neuschreibbereichs neu geschrieben.
  • In Arbeitsschritt 1822 wird das vorliegende CWI auf Spur t im Neuschreib-CWI-Satz c neu geschrieben, wobei gilt (a ≤ t ≤ b, wenn a < b) und (t ≥ a oder t ≤ b, wenn b < a).
  • Mit Bezug nunmehr auf 19 wird ein Verfahren 1900 zum Schreiben und Neuschreiben von Daten auf ein Speichermedium mit sequenziellem Zugriff gemäß einer sechsten Ausführungsform gezeigt. Das Verfahren 1900 kann gemäß der vorliegenden Erfindung unter anderem in jeder der in den 1 bis 9 abgebildeten Umgebungen in verschiedenen Ausführungsformen ausgeführt werden. Es versteht sich, dass mehr oder weniger Arbeitsschritte als die speziell in 19 beschriebenen im Verfahren 1900 enthalten sein können, wie es für den Fachmann beim Lesen dieser Beschreibungen offensichtlich ist. Parameter, die mit Großbuchstaben bezeichnet werden, sind in allen Berechnungen des Verfahrens 1900 Konstanten, während Parameter, die mit Kleinbuchstaben bezeichnet werden, Variablen sind.
  • Jeder der Schritte des Verfahrens 1900 kann von geeigneten Komponenten der Betriebsumgebung ausgeführt werden. Beispielsweise kann das Verfahren 1900 in verschiedenen Ausführungsformen teilweise oder vollständig von einer Steuereinheit, einem Prozessor, einem Bandlaufwerk, einem optischen Laufwerk oder einer anderen Einheit mit einem oder mehreren Prozessoren durchgeführt werden. Der Prozessor, z.B. Verarbeitungsschaltung(en), Chip(s) und/oder Modul(e), die in Hardware und/oder Software implementiert sind und vorzugsweise mindestens eine Hardwarekomponente aufweisen, kann in einer beliebigen Einheit verwendet werden, um einen oder mehrere Schritte des Verfahrens 1900 durchzuführen. Zu veranschaulichenden Prozessoren gehören eine CPU, eine ASIC, eine FPGA usw., Kombinationen davon oder jede andere geeignete, nach dem Stand der Technik bekannte Datenverarbeitungseinheit, ohne darauf beschränkt zu sein.
  • Wie in 19 dargestellt, kann das Verfahren 1900 mit dem Arbeitsschritt 1902 beginnen, in dem die vier Parameterwerte E, R, M und 5 gemäß den Vorgaben des Benutzers, den gewünschten Ergebnissen, den Besonderheiten des Laufwerks, das das Speichermedium mit sequenziellem Zugriff betreibt, und/oder des Speichermediums mit sequenziellem Zugriff selbst eingestellt werden. E wird verwendet, um einen Fehlerschwellenwert für Neuschreiben zu bezeichnen, und kann gemäß der Fehleranzahl innerhalb eines CWI eingestellt werden, die ein Neuschreiben des CWI auslöst. Bei verschiedenen Ansätzen kann E in einem Bereich von 1 bis zur maximalen Anzahl korrigierbarer Fehler pro Codewort liegen. R wird verwendet, um einen Rotationsparameter für Neuschreiben zu bezeichnen, der angibt, wie Daten während des Neuschreibens auf die Spuren des Speichermediums mit sequenziellem Zugriff neu geschrieben werden, und ist für den Fachmann offensichtlich. Bei verschiedenen Ansätzen kann R aus einem Bereich gewählt werden, der gleich dem Wert Mist, z.B. R E {0, 1, 2, ..., 31 | M = 32}. M wird verwendet, um die Anzahl der Kanäle zu bezeichnen, und ist abhängig vom verwendeten Laufwerk. 5 bezeichnet eine Anzahl von Teildatensätzen im analysierten Beispieldatensatz und beruht darauf, wie die Daten auf dem Medium gespeichert werden. In einer Ausführungsform ist S = 2*M.
  • In Arbeitsschritt 1904 wird das vorliegende CWI in dem Teildatensatz p auf das Speichermedium mit sequenziellem Zugriff geschrieben. In dieser Ausführungsform wird das vorliegende CWI aus dem Teildatensatz p durch RS(768,728) codiert, und das CWI enthält ein C1-Codewort über einem GF(1024).
  • In Arbeitsschritt 1906 wird das gerade geschriebene CWI in einem Lesen-während-Schreiben-Prozess mit Symbolen in einem GF(1024) gelesen. In Arbeitsschritt 1908 wird das Codewort des CWI decodiert, um das darin codierte C1-Codewort zu ermitteln.
  • In Arbeitsschritt 1910 wird ermittelt, ob das C1-Codewort in dem vorliegenden CWI aus dem Teildatensatz mit der Zahl p nicht decodiert werden konnte. Als Reaktion darauf, dass das C1-Codewort in dem CWI aus dem Teildatensatz mit der Zahl p nicht decodiert werden konnte, geht das Verfahren 1900 zu Arbeitsschritt 1916; andernfalls wird das Verfahren 1900 als Reaktion darauf, dass das C1-Codewort in dem CWI aus dem Teildatensatz mit der Zahl p erfolgreich decodiert wurde, in Arbeitsschritt 1912 fortgesetzt.
  • In Arbeitsschritt 1912 wird ermittelt, ob die Anzahl von Symbolfehlern innerhalb des decodierten C1-Codeworts gleich oder größer ist als der Fehlerschwellenwert für Neuschreiben E (z.B. Anzahl Fehler für C1-Codewort ≥ E). Als Reaktion darauf, dass das C1-Codewort mindestens E Symbolfehler enthält, geht das Verfahren 1900 zu Arbeitsschritt 1914; andernfalls wird das Verfahren 1900 als Reaktion darauf, dass das C1-Codewort mindestens E Symbolfehler enthält, in Arbeitsschritt 1916 fortgesetzt.
  • In Arbeitsschritt 1914 wird aufgrund der Tatsache, dass in dem C1-Codewort weniger als E Symbolfehler enthalten sind, festgestellt, dass das CWI erfolgreich geschrieben wurde und dass Neuschreiben nicht vorteilhaft wäre.
  • In Arbeitsschritt 1916 werden zwei Grenzen berechnet, eine erste Grenze a und eine zweite Grenze b. In einer Ausführungsform ist a = (Untergrenze(p/2) + R*c - 2) mod M und b = (Untergrenze(p/2) + R*c + 2) mod M, wobei c eine Zahl des vorliegenden neu geschriebenen CWI-Satzes und 0 ≤ c ist, und entweder a < b oder a > b (bei einer Wrap-around-Situation) ist, d.h. a ≠ b. Dadurch ist es möglich, das vorliegende CWI aus dem Teildatensatz mit der Zahl p in einem Bereich logischer Spuren neu zu schreiben, wobei der Bereich logische Spuren enthält, die um zwei größer und kleiner sind als die aktuelle logische Spur.
  • In Arbeitsschritt 1918 wird ermittelt, ob eine logische Spur t im Neuschreib-CWI-Satz c zum Neuschreiben verfügbar ist, wobei gilt (a ≤ t ≤ b, wenn a < b) und (t ≥ a oder t ≤ b, wenn b < a), wobei 0 ≤ t < M ist. Eine logische Spur ist als Reaktion auf eine Feststellung, dass ein anderes CWI im vorliegenden Teildatensatz p im Neuschreib-CWI-Satz c auf einer bestimmten Spur t von allen diesen Spuren t für (a ≤ t ≤ b, wenn a < b) oder (t ≥ a oder t ≤ b, wenn b < a) bereits für Neuschreiben vorgesehen ist, nicht für Neuschreiben verfügbar.
  • Als Reaktion darauf, dass keine logischen Spuren in dem vorliegenden Neuschreib-CWI-Satz c zum Neuschreiben verfügbar sind, geht das Verfahren 1900 zu Arbeitsschritt 1920; andernfalls wird das Verfahren 1900 als Reaktion darauf, dass die logische Spur t für Neuschreiben im Neuschreib-CWI-Satz c verfügbar ist, in Arbeitsschritt 1922 fortgesetzt.
  • In Arbeitsschritt 1920 wird das vorliegende CWI auf einer Spur im Neuschreib-CWI-Satz c + n neu geschrieben, wobei n > 0 ist. Mit anderen Worten, das vorliegende CWI wird in einem Teil des Neuschreibbereichs nach dem zum Neuschreiben des vorliegenden Neuschreib-CWI-Satzes c verwendeten Teil des Neuschreibbereichs neu geschrieben.
  • In Arbeitsschritt 1922 wird das vorliegende CWI auf Spur t im Neuschreib-CWI-Satz c neu geschrieben, wobei gilt (a ≤ t ≤ b, wenn a < b) und (t ≥ a oder t ≤ b, wenn b < a).
  • Mit Bezug nunmehr auf 20 wird ein Verfahren 2000 zum Identifizieren von toten Spuren auf einem Speichermedium mit sequenziellem Zugriff und/oder toten Kanälen in einer Speichereinheit gemäß einer Ausführungsform gezeigt. Das Verfahren 2000 kann gemäß der vorliegenden Erfindung unter anderem in jeder der in den 1 bis 9 abgebildeten Umgebungen in verschiedenen Ausführungsformen ausgeführt werden. Es versteht sich, dass mehr oder weniger Arbeitsschritte als die speziell in 20 beschriebenen im Verfahren 2000 enthalten sein können, wie es für den Fachmann beim Lesen dieser Beschreibungen offensichtlich ist.
  • Jeder der Schritte des Verfahrens 2000 kann von geeigneten Komponenten der Betriebsumgebung ausgeführt werden. Beispielsweise kann das Verfahren 2000 in verschiedenen Ausführungsformen teilweise oder vollständig von einer Steuereinheit, einem Prozessor, einem Bandlaufwerk, einem optischen Laufwerk oder einer anderen Einheit mit einem oder mehreren Prozessoren durchgeführt werden. Der Prozessor, z.B. Verarbeitungsschaltung(en), Chip(s) und/oder Modul(e), die in Hardware und/oder Software implementiert sind und vorzugsweise mindestens eine Hardwarekomponente aufweisen, kann in einer beliebigen Einheit verwendet werden, um einen oder mehrere Schritte des Verfahrens 2000 durchzuführen. Zu veranschaulichenden Prozessoren gehören eine CPU, eine ASIC, eine FPGA usw., Kombinationen davon oder jede andere geeignete, nach dem Stand der Technik bekannte Datenverarbeitungseinheit, ohne darauf beschränkt zu sein.
  • Wie in 20 dargestellt kann das Verfahren 2000 mit dem Arbeitsschritt 2002 beginnen, in dem ein Datensatz mithilfe einer Mehrzahl von Schreibwandlern eines Magnetkopfes einer Speichereinrichtung (z.B. Bandlaufwerk, optisches Laufwerk usw.) auf ein Speichermedium mit sequenziellem Zugriff geschrieben wird. Der Datensatz enthält eine Anzahl von Teildatensätzen fester Größe. Jeder der Teildatensätze umfasst eine Mehrzahl codierter Datenblöcke, wobei jeder codierte Datenblock Codewörter in einer verschachtelten oder nichtverschachtelten Anordnung aufweist. Jedes Codewort enthält eine vorgegebene Anzahl von Symbolen, und jedes Symbol hat eine Größe, die gleich oder größer als 8 Bit ist, z.B. 8 Bit, 10 Bit, 12 Bit usw. Die Daten werden durch ein Codierschema oder einen Algorithmus codiert, z.B. einen RS-Code, wie er in verschiedenen Ausführungsformen hierin beschrieben wird, oder durch ein anderes nach dem Stand der Technik bekanntes Codierschema.
  • Gemäß einer Ausführungsform hat jedes der Symbole für das Codewort/die Codewörter in dem codierten Datenblock/den codierten Datenblöcken eine Größe von 10 Bit.
  • In einer Ausführungsform kann der Datensatz 64 Teildatensätze für ein 32-KanalSystem umfassen. Jeder codierte Datenblock kann eine kleinste Datenmenge enthalten, die auf dem Speichermedium mit sequenziellem Zugriff aufgezeichnet und von diesem gelesen wird, z.B. ein CWI-4, ein CWI-2, ein CWI-1 usw. Beispielsweise kann jeder Teildatensatz vier Produkt-Codewörter enthalten, wobei jede Zeile des Teildatensatzes ein CWI-4 ist. In anderen Beispielen kann jeder Teildatensatz zwei Produkt-Codewörter enthalten, wobei jede Zeile des Teildatensatzes ein CWI-2 ist, oder ein Produkt-Codewort, wobei jede Zeile des Teildatensatzes ein CWI-1 ist.
  • Gemäß einer Ausführungsform kann die Mehrzahl der Schreibwandler, die zum Schreiben des Datensatzes auf das Speichermedium mit sequenziellem Zugriff verwendet werden, mindestens die Anzahl M betragen, d.h. die Anzahl der gleichzeitig geschriebenen Spuren oder Kanäle. Es versteht sich, dass der Magnetkopf bei verschiedenen Ansätzen mehr als M Schreibwandler aufweisen kann. Bei einem solchen Ansatz kann der Magnetkopf eine Anzahl von M Schreibwandlern zum Schreiben von Daten in einer Vorwärtsrichtung der Medienbewegung und eine zusätzliche Anzahl von M Schreibwandlern zum Schreiben von Daten in einer Rückwärtsrichtung der Medienbewegung enthalten.
  • In Arbeitsschritt 2004 wird der Datensatz mithilfe einer Mehrzahl von Lesewandlern des Magnetkopfes unmittelbar nach dem Schreiben auf das Speichermedium mit sequenziellem Zugriff in einem Lesen-während-Schreiben-Prozess gelesen, um einen oder mehrere fehlerhaft codierte Datenblöcke zu identifizieren. Jeder des einen oder der mehreren fehlerhaft codierten Datenblöcke enthält mindestens ein fehlerhaftes Codewort. Mit unmittelbar gelesen ist gemeint, dass die zuerst auf das Speichermedium mit sequenziellem Zugriff geschriebenen codierten Daten gelesen werden, sobald es physisch möglich ist, diese in einem Lesen-während-Schreiben-Prozess zu lesen, auf Grundlage des Layouts des Speichermediums mit sequenziellem Zugriff und der Auslegung der Speichereinheit (z.B. wo sich die Lese- und Schreibwandler physisch auf dem Magnetkopf befinden, Lese- und Schreibgeschwindigkeit usw.).
  • Ein fehlerhaftes Codewort und damit ein fehlerhaft codierter Datenblock, der das fehlerhafte Codewort enthält, wird auf Grundlage einer Anzahl darin enthaltener Fehler ermittelt, was durch Decodieren des Datensatzes (oder einer Teilmenge davon, z.B. eines codierten Datenblocks) ermittelt wird, nachdem er vom Speichermedium mit sequenziellem Zugriff in dem Lesen-während-Schreiben-Prozess gelesen wurde. Wie hierin ausführlicher beschrieben, wird aufgrund der Anzahl der Fehler in einem Codewort oder codierten Datenblock, die einem Schwellenwert entspricht oder diesen überschreitet, das Codewort oder der codierte Datenblock als fehlerhaft ermittelt, was ein Neuschreiben des codierten Datenblocks, des gesamten Datensatzes oder einer kleineren Teilmenge davon in dem Neuschreibbereich des Speichermediums mit sequenziellem Zugriff auslöst.
  • Jeder Lesewandler ist so konfiguriert, dass er Daten von einem Speichermedium mit sequenziellem Zugriff liest, nachdem diese von einem entsprechenden Schreibwandler in einem Lesen-während-Schreiben-Prozess darauf geschrieben wurden. Eine Steuereinheit und eine Logik, die in die Steuereinheit integriert und/oder von dieser ausführbar ist, sind ebenfalls enthalten, um den Betrieb des Magnetkopfes und die Bewegung des Speichermediums mit sequenziellem Zugriff auf dem Magnetkopf zu steuern. Jeder Lesewandler ist mit einem entsprechenden Schreibwandler ausgerichtet, der so konfiguriert ist, dass er Daten auf einer Spur des Speichermediums speichert, um eine Lesen-während-Schreiben-Verarbeitung der gerade gespeicherten Daten zu ermöglichen. Mit anderen Worten, die Ausgabe eines Lesewandlers wird während des Lesen-während-Schreibens erzeugt.
  • Gemäß einer Ausführungsform kann die Mehrzahl von Lesewandlern, die zum Lesen des Datensatzes unmittelbar nach dem Schreiben auf das Speichermedium mit sequenziellem Zugriff verwendet wird, mindestens M betragen, d.h. die Anzahl der Spuren oder Kanäle, die während der Lesen-während-Schreiben-Verarbeitung gleichzeitig geschrieben werden. Es versteht sich, dass der Magnetkopf bei verschiedenen Ansätzen mehr als M Lesewandler aufweisen kann. Bei einem solchen Ansatz kann der Magnetkopf eine Anzahl von M Lesewandlern zum Lesen von Daten enthalten, die in einer Vorwärtsrichtung der Medienbewegung geschrieben wurden, sowie eine zusätzliche Anzahl von Lesewandlern zum Lesen von Servospuren/-kanälen, die die Medienbewegung lenken.
  • In Arbeitsschritt 2006 wird eine bestimmte logische Spur aus einer vorgegebenen Teilmenge logischer Spuren im Neuschreibbereich des Speichermediums mit sequenziellem Zugriff ausgewählt. Diese bestimmte Spur wird verwendet, um eine Teilmenge des Datensatzes (z.B. mindestens einen fehlerhaft codierten Datenblock) als Reaktion auf Identifizieren des einen oder der mehreren fehlerhaft codierten Datenblöcke neu zu schreiben.
  • Die vorgegebene Teilmenge logischer Spuren umfasst D1+D2+1 logische Spuren, wobei 0 < D1+D2 < M/4 ist. D1 ist ein nichtnegativer ganzzahliger Wert, der mindestens gleich null ist, und D2 ist ein nichtnegativer ganzzahliger Wert, der mindestens gleich null ist, wobei D1+D2 > 0 ist. Wie zuvor beschrieben, ist M die Anzahl der Schreibwandler, die zum gleichzeitigen Schreiben des Datensatzes auf M Spuren des Speichermediums mit sequenziellem Zugriff verwendet wird. Daher enthält die Teilmenge der logischen Spuren weniger als ein Viertel der Anzahl der gleichzeitig geschriebenen Spuren des Speichermediums, M.
  • Eine flexible Neuschreibtabelle kann verwendet werden, um die vorgegebene Teilmenge logischer Spuren zu ermitteln, auf die Daten unter Berücksichtigung spezifischer Parameter für die Speichereinheit und das Speichermedium mit sequenziellem Zugriff neu geschrieben werden können, z.B. M, S, R, D1, D2 usw.
  • Gemäß mehreren Ausführungsformen kann die vorgegebene Teilmenge logischer Spuren im Neuschreibbereich zwei logische Spuren, drei logische Spuren, vier logische Spuren, fünf logische Spuren oder mehr umfassen.
  • Diese vorgegebene Teilmenge logischer Spuren wird so ausgewählt, dass sie eine logische Basisspur enthält, auf der die neu geschriebenen Daten ursprünglich so festgelegt worden wären, dass sie nach einem herkömmlichen Neuschreibschema in den Neuschreibbereich neu geschrieben werden, mit zusätzlichen Spuren vor oder nach dieser logischen Basisspur in dem Neuschreibbereich.
  • In einer Ausführungsform sind diese zusätzlichen logischen Spuren der Reihe nach mit der logischen Basisspur angeordnet, z.B. 1, 2, 3 (für eine Teilmenge von drei logischen Spuren); 31, 32, 33, 34, 35 (für eine Teilmenge von fünf logischen Spuren in einer 32-Kanal-Architektur); 62, 63, 0 (für eine Teilmenge von drei logischen Spuren); 62, 63, 0, 1, 2, (für eine Teilmenge von fünf logischen Spuren in einer 32-Kanal-Architektur unter Berücksichtigung eines Wrap-around-Szenarios) usw.
  • Der Neuschreibbereich wird nach der Position des Datensatzes positioniert, der zuerst auf das Speichermedium mit sequenziellem Zugriff geschrieben wurde (in Richtung der Vorwärtsbewegung des Mediums).
  • Die Entscheidung, welche logische Spur innerhalb der vorgegebenen Teilmenge ausgewählt werden soll, kann auf einer oder mehreren Überlegungen beruhen, die hierin näher beschrieben werden. In einer Ausführungsform hängt die Auswahl der logischen Spur davon ab, ob ein anderer codierter Datenblock (z.B. ein CWI oder eine andere Datenmenge) im gleichen Teildatensatz bereits für Neuschreiben auf eine bestimmte logische Spur in der vorgegebenen Teilmenge vorgesehen ist. Wenn ja, wird eine weitere logische Spur aus einer anderen vorgegebenen Teilmenge ausgewählt, um den aktuellen codierten Datenblock neu zu schreiben, wobei Fälle berücksichtigt werden, in denen eine Wrap-around-Bedingung vorliegt. Darüber hinaus ist die vorgegebene Teilmenge logischer Spuren der Reihe nach angeordnet, z.B. Spuren 29 bis 31, Spuren 0 bis 2, Spuren 31, 0, 1 oder eine andere mögliche Kombination der Reihe nach angeordneter logischer Spuren in der gesamten vorgegebenen Teilmenge logischer Spuren, die für Neuschreiben von Daten verfügbar ist.
  • In Arbeitsschritt 2008 wird als Reaktion auf Identifizieren des einen oder der mehreren fehlerhaft codierten Datenblöcke und/oder Codewörter ein erster des einen oder der mehreren fehlerhaft codierten Datenblöcke innerhalb eines ersten codierten Datenblocksatzes auf die bestimmte logische Spur im Neuschreibbereich neu geschrieben. Auf diese Weise wird der fehlerhafte Teil des Datensatzes (der den vollständigen Datensatz oder einen beliebigen Teil davon enthalten kann) auf das Speichermedium mit sequenziellem Zugriff neu geschrieben, um Fehler zu korrigieren, die beim ersten Schreiben erkannt wurden. Wenn darüber hinaus der eine oder die mehreren codierten Datenblocksätze auf unterschiedliche logische Spuren im Neuschreibbereich neu geschrieben werden, wird ein Lesen-während-Schreiben-Prozess durchgeführt, der einen oder mehrere zusätzliche fehlerhaft codierte Datenblöcke und/oder Codewörter identifizieren und ein weiteres Neuschreiben einiger oder aller des einen oder der mehreren codierten Datenblocksätze auslösen kann.
  • Gemäß einer Ausführungsform können der eine oder die mehreren fehlerhaft codierten Datenblöcke innerhalb des einen oder der mehreren codierten Datenblocksätze als vier symbolverschachtelte RS(240,228)-Cl-Codewörter über einem Galois-Feld GF(256) in dem Neuschreibbereich des Speichermediums mit sequenziellem Zugriff neu geschrieben werden, z.B. mit 8-Bit-Symbolen für jedes Codewort, bekannt als CWI-4. Darüber hinaus kann der Datensatz, der zuerst auf das Speichermedium mit sequenziellem Zugriff geschrieben wird, auch als ein CWI-4-Satz geschrieben werden.
  • In einer anderen Ausführungsform können der eine oder die mehreren fehlerhaft codierten Datenblöcke innerhalb des einen oder der mehreren codierten Datenblocksätze als zwei symbolverschachtelte RS(384,364)-Cl-Codewörter über einem Galois-Feld GF(1024) in dem Neuschreibbereich des Speichermediums mit sequenziellem Zugriff neu geschrieben werden, z.B. mit 10-Bit-Symbolen für jedes Codewort, das hierin als ein CWI-2 bezeichnet wird. Darüber hinaus kann der Datensatz, der zuerst auf das Speichermedium mit sequenziellem Zugriff geschrieben wird, auch als ein CWI-2-Satz geschrieben werden.
  • Gemäß einer anderen Ausführungsform können der eine oder die mehreren fehlerhaft codierten Datenblöcke innerhalb des einen oder der mehreren codierten Datenblocksätze als ein RS(768,728)-Cl-Codewort über einem Galois-Feld GF(1024) in dem Neuschreibbereich des Speichermediums mit sequenziellem Zugriff neu geschrieben werden, z.B. mit 10-Bit-Symbolen für das Codewort, das hierin als CWI-1 bezeichnet wird. Darüber hinaus kann der Datensatz, der zuerst auf das Speichermedium mit sequenziellem Zugriff geschrieben wird, auch als ein CWI-1-Satz geschrieben werden.
  • Gemäß einer Ausführungsform kann das Verfahren 2000 Auswählen einer zweiten logischen Spur aus der vorgegebenen Teilmenge logischer Spuren im Neuschreibbereich des Speichermediums mit sequenziellem Zugriff umfassen, und danach einer dritten, einer vierten usw., bis alle fehlerhaft codierten Datenblöcke eine geeignete logische Spur haben, auf die sie neu geschrieben werden können. Daraufhin wird ein zweiter des einen oder der mehreren fehlerhaft codierten Datenblöcke innerhalb des ersten codierten Datenblocksatzes als Reaktion darauf, dass der erste des einen oder der mehreren fehlerhaft codierten Datenblöcke aus einem anderen Teildatensatz stammt als der zweite des einen oder der mehreren fehlerhaft codierten Datenblöcke, in die zweite logische Spur neu geschrieben. Wenn der erste des einen oder der mehreren fehlerhaft codierten Datenblöcke nicht aus einem anderen Teildatensatz stammt als der zweite des einen oder der mehreren fehlerhaft codierten Datenblöcke, wird der zweite des einen oder der mehreren fehlerhaft codierten Datenblöcke in einem anderen codierten Datenblocksatz in dem Neuschreibbereich neu geschrieben. Dieses Verfahren wird so lange wiederholt, bis alle fehlerhaft codierten Datenblöcke in dem Neuschreibbereich neu geschrieben wurden.
  • Mit Bezug nunmehr auf 21 wird ein Verfahren 2100 zum Identifizieren von toten Spuren auf einem Speichermedium mit sequenziellem Zugriff und/oder toten Kanälen in einer Speichereinheit gemäß einer Ausführungsform gezeigt. Das Verfahren 2100 kann gemäß der vorliegenden Erfindung unter anderem in jeder der in den 1 bis 9 abgebildeten Umgebungen in verschiedenen Ausführungsformen ausgeführt werden. Es versteht sich, dass mehr oder weniger Arbeitsschritte als die speziell in 21 beschriebenen im Verfahren 2100 enthalten sein können, wie es für den Fachmann beim Lesen dieser Beschreibungen offensichtlich ist.
  • Jeder der Schritte des Verfahrens 2100 kann von geeigneten Komponenten der Betriebsumgebung ausgeführt werden. Beispielsweise kann das Verfahren 2100 in verschiedenen Ausführungsformen teilweise oder vollständig von einer Steuereinheit, einem Prozessor, einem Bandlaufwerk, einem optischen Laufwerk oder einer anderen Einheit mit einem oder mehreren Prozessoren durchgeführt werden. Der Prozessor, z.B. Verarbeitungsschaltung(en), Chip(s) und/oder Modul(e), die in Hardware und/oder Software implementiert sind und vorzugsweise mindestens eine Hardwarekomponente aufweisen, kann in einer beliebigen Einheit verwendet werden, um einen oder mehrere Schritte des Verfahrens 2100 durchzuführen. Zu veranschaulichenden Prozessoren gehören eine CPU, eine ASIC, eine FPGA usw., Kombinationen davon oder jede andere geeignete, nach dem Stand der Technik bekannte Datenverarbeitungseinheit, ohne darauf beschränkt zu sein.
  • Wie in 21 dargestellt, kann das Verfahren 2100 mit dem Arbeitsschritt 2102 beginnen, in dem ein Datensatz mithilfe einer Mehrzahl von Schreibwandlern eines Magnetkopfes einer Speichereinheit auf ein Speichermedium mit sequenziellem Zugriff geschrieben wird. Der Datensatz enthält eine Anzahl von Teildatensätzen fester Größe, wobei jeder Teildatensatz eine Mehrzahl von codierten Datenblöcken enthält, von denen jeder Codewörter in einer verschachtelten Anordnung aufweist. Jedes Codewort enthält eine vorgegebene Anzahl von Symbolen. Jedes Symbol hat eine Größe von 10 Bit. Die Daten werden als zwei symbolverschachtelte RS(384,364)-Cl-Codewörter über einem GF(1024) codiert, z.B. zwei CWI-2 pro Teildatensatz.
  • In Arbeitsschritt 2104 wird der Datensatz mithilfe einer Mehrzahl von Lesewandlern des Magnetkopfes unmittelbar nach dem Schreiben auf das Speichermedium mit sequenziellem Zugriff in einem Lesen-während-Schreiben-Prozess gelesen, um einen oder mehrere fehlerhaft codierte Datenblöcke zu identifizieren. Jeder des einen oder der mehreren fehlerhaft codierten Datenblöcke enthält mindestens ein fehlerhaftes Codewort, das beim Decodieren der codierten Datenblöcke erkannt werden kann. Mit unmittelbar gelesen ist gemeint, dass der zuerst auf das Speichermedium mit sequenziellem Zugriff geschriebene Datensatz gelesen wird, sobald es physisch möglich ist, diesen in einem Lesen-während-Schreiben-Prozess zu lesen, auf Grundlage des Layouts des Speichermediums mit sequenziellem Zugriff und der Auslegung des Systems (z.B. wo sich die Lese- und Schreibwandler physisch auf dem Magnetkopf befinden, Lese- und Schreibgeschwindigkeit usw.).
  • Ein fehlerhaftes Codewort wird auf Grundlage einer darin enthaltenen Anzahl von Fehlern ermittelt, was beim Decodieren des/der codierten Datenblocks/Datenblöcke nach dem Lesen vom Speichermedium mit sequenziellem Zugriff im Lesen-während-Schreiben-Prozess ermittelt wird. Wie hier ausführlicher beschrieben, wird aufgrund der Anzahl von Fehlern in einem Codewort, die einem Schwellenwert entspricht oder diesen überschreitet, das Codewort als fehlerhaft ermittelt (und damit ist der codierte Datenblock, der das Codewort enthält, fehlerhaft), was ein Neuschreiben des codierten Datenblocks (oder einer kleineren Teilmenge oder eines größeren Teils des Datensatzes, je nach Neuschreibschema) in dem Neuschreibbereich des Speichermediums mit sequenziellem Zugriff auslöst.
  • Jeder Lesewandler ist so konfiguriert, dass er Daten von einem Speichermedium mit sequenziellem Zugriff liest, nachdem diese von einem entsprechenden Schreibwandler in einem Lesen-während-Schreiben-Prozess darauf geschrieben wurden. Eine Steuereinheit und eine Logik, die in die Steuereinheit integriert und/oder von dieser ausführbar ist, sind ebenfalls enthalten, um den Betrieb des Magnetkopfes und die Bewegung des Speichermediums mit sequenziellem Zugriff auf dem Magnetkopf zu steuern. Jeder Lesewandler ist mit einem entsprechenden Schreibwandler ausgerichtet, der so konfiguriert ist, dass er Daten auf einer Spur speichert, um für die gerade gespeicherten Daten eine Lesen-während-Schreiben-Verarbeitung zu ermöglichen. Mit anderen Worten, die Ausgabe eines Lesewandlers wird während des Lesen-während-Schreibens erzeugt.
  • In Arbeitsschritt 2106 wird der aus dem Speichermedium mit sequenziellem Zugriff gelesene Datensatz decodiert, um den einen oder die mehreren fehlerhaft codierten Datenblöcke zu ermitteln. In dieser Ausführungsform wird ein codierter Datenblock und/oder ein Codewort als Reaktion auf Identifizieren einer Schwellenwertanzahl von Fehlern darin, z.B. eines Schwellenwerts, der größer als null, aber kleiner als eine maximale Anzahl korrigierbarer Fehler auf Grundlage des verwendeten Codierschemas festgelegt ist, als fehlerhaft ermittelt. In diesem Fall kann der Schwellenwert durch Verwenden eines RS(384,364)-Codes über einem GF(1024), der bis zu 10 Fehler pro Codewort korrigieren kann, so eingestellt werden, dass er für jedes Codewort in einem Bereich von 1 bis 10 liegt. Das Identifizieren eines fehlerhaften Codeworts innerhalb eines codierten Datenblocks führt zu der Feststellung, dass der codierte Datenblock fehlerhaft ist, und infolgedessen wird dieser für ein Neuschreiben vorgesehen.
  • In Arbeitsschritt 2108 werden eine oder mehrere logische Spuren aus einer oder mehreren eindeutigen vorgegebenen Teilmengen von drei logischen Spuren im Neuschreibbereich des Speichermediums mit sequenziellem Zugriff ausgewählt. Diese bestimmten logischen Spuren werden verwendet, um den/die fehlerhaft codierten Datenblock/Datenblöcke als Reaktion auf Identifizieren des einen oder der mehreren fehlerhaft codierten Datenblöcke neu zu schreiben. Mit eindeutigen vorgegebenen Teilmengen von drei logischen Spuren ist gemeint, dass jede Teilmenge logischer Spuren sich dadurch unterscheidet, dass sie drei logische Spuren enthält, die sich von jeder anderen Teilmenge von drei logischen Spuren für jede bestimmte Kombination aus Teildatensatzzahl und Zahl des codierten Datenblocksatzes unterscheiden. Es versteht sich, dass manche logische Spuren in mehreren Teilmengen vorkommen können. Zum Beispiel würde Spur 5 in drei Teilmengen von Spuren vorkommen: 3,4,5; 4,5,6; 5,6,7. Jede dieser Teilmengen logischer Spuren, die die logische Spur 5 enthält, unterscheidet sich jedoch eindeutig von den anderen.
  • Eine flexible Neuschreibtabelle kann verwendet werden, um die vorgegebene Teilmenge von drei logischen Spuren zu ermitteln, auf die Daten unter Berücksichtigung spezifischer Parameter für die Speichereinheit und das Speichermedium mit sequenziellem Zugriff neu geschrieben werden können, z.B. M, S, R, D1, D2 usw.
  • Jede der Teilmengen logischer Spuren wird so ausgewählt, dass sie eine logische Basisspur enthält, auf der der fehlerhaft codierte Datenblock bzw. die fehlerhaft codierten Datenblöcke ursprünglich so festgelegt worden wären, dass sie nach einem herkömmlichen Neuschreibschema in den Neuschreibbereich neu geschrieben werden, mit zusätzlichen Spuren vor oder nach dieser logischen Basisspur im Neuschreibbereich.
  • Der Neuschreibbereich wird nach der Position des Datensatzes positioniert, der zuerst auf das Speichermedium mit sequenziellem Zugriff geschrieben wurde (in Richtung der Vorwärtsbewegung des Mediums).
  • Die Entscheidung, welche logische Spur innerhalb einer der vorgegebenen Teilmengen logischer Spuren ausgewählt werden soll, kann auf einer oder mehreren Überlegungen beruhen, die hierin näher beschrieben werden. In einer Ausführungsform hängt die Auswahl der logischen Spur davon ab, ob ein anderer codierter Datenblock (z.B. ein CWI oder eine andere Datenmenge) im gleichen Teildatensatz bereits für Neuschreiben auf eine bestimmte logische Spur in der vorgegebenen Teilmenge logischer Spuren vorgesehen ist. Wenn ja, wird eine weitere logische Spur aus einer anderen Teilmenge logischer Spuren ausgewählt, um den aktuellen codierten Datenblock neu zu schreiben, wobei Fälle berücksichtigt werden, in denen eine Wrap-around-Bedingung vorliegt. Darüber hinaus ist in einer Ausführungsform die Teilmenge der logischen Spuren der Reihe nach angeordnet, z.B. Spuren 29 bis 31, Spuren 0 bis 2, Spuren 31, 0, 1 oder eine andere mögliche Kombination aus drei aufeinanderfolgenden logischen Spuren in der Gesamtmenge logischer Spuren.
  • In Arbeitsschritt 2110 werden der eine oder die mehreren fehlerhaft codierten Datenblöcke, der/die den einen oder die mehreren fehlerhaften Codewörter enthalten, als Reaktion auf Identifizieren des einen oder der mehreren fehlerhaft codierten Datenblöcke und/oder Codewörter in die eine oder die mehreren logischen Spuren im Neuschreibbereich neu geschrieben. Auf diese Weise wird der fehlerhafte Teil des Datensatzes (der den vollständigen Datensatz oder einen beliebigen Teil davon enthalten kann) auf das Speichermedium mit sequenziellem Zugriff neu geschrieben, um Fehler zu korrigieren, die beim ersten Schreiben erkannt wurden. Wenn der eine oder die mehreren fehlerhaft codierten Datenblöcke neu geschrieben werden, wird darüber hinaus ein Lesen-während-Schreiben-Prozess durchgeführt, der einen oder mehrere zusätzliche fehlerhaft codierte Datenblöcke und/oder ein oder mehrere Codewörter identifizieren und ein weiteres Neuschreiben einiger oder aller fehlerhaft codierten Datenblöcke auslösen kann.
  • In dieser Ausführungsform wird nur ein fehlerhaft codierter Datenblock aus einem bestimmten Teildatensatz in einem einzigen codierten Datenblocksatz in dem Neuschreibbereich neu geschrieben. Um einen anderen fehlerhaft codierten Datenblock aus dem jeweiligen Teildatensatz neu zu schreiben, wird ein anderer codierter Datenblocksatz im Neuschreibbereich verwendet.
  • Mit Bezug nunmehr auf 22 wird ein Verfahren 2200 zum Identifizieren von toten Spuren auf einem Speichermedium mit sequenziellem Zugriff und/oder toten Kanälen in einer Speichereinheit gemäß einer Ausführungsform gezeigt. Das Verfahren 2200 kann gemäß der vorliegenden Erfindung unter anderem in jeder der in den 1 bis 9 abgebildeten Umgebungen in verschiedenen Ausführungsformen ausgeführt werden. Es versteht sich, dass mehr oder weniger Arbeitsschritte als die speziell in 22 beschriebenen im Verfahren 2200 enthalten sein können, wie es für den Fachmann beim Lesen dieser Beschreibungen offensichtlich ist.
  • Jeder der Schritte des Verfahrens 2200 kann von geeigneten Komponenten der Betriebsumgebung ausgeführt werden. Beispielsweise kann das Verfahren 2200 in verschiedenen Ausführungsformen teilweise oder vollständig von einer Steuereinheit, einem Prozessor, einem Bandlaufwerk, einem optischen Laufwerk oder einer anderen Einheit mit einem oder mehreren Prozessoren durchgeführt werden. Der Prozessor, z.B. Verarbeitungsschaltung(en), Chip(s) und/oder Modul(e), die in Hardware und/oder Software implementiert sind und vorzugsweise mindestens eine Hardwarekomponente aufweisen, kann in einer beliebigen Einheit verwendet werden, um einen oder mehrere Schritte des Verfahrens 2200 durchzuführen. Zu veranschaulichenden Prozessoren gehören eine CPU, eine ASIC, eine FPGA usw., Kombinationen davon oder jede andere geeignete, nach dem Stand der Technik bekannte Datenverarbeitungseinheit, ohne darauf beschränkt zu sein.
  • Wie in 22 dargestellt, kann das Verfahren 2200 mit dem Arbeitsschritt 2202 beginnen, in dem ein Datensatz mithilfe einer Mehrzahl von Schreibwandlern eines Magnetkopfes einer Speichereinheit auf ein Speichermedium mit sequenziellem Zugriff geschrieben wird. Der Datensatz enthält eine Anzahl von Teildatensätzen fester Größe. Jeder der Teildatensätze umfasst eine Mehrzahl codierter Datenblöcke, wobei jeder codierte Datenblock Codewörter in einer nichtverschachtelten Anordnung aufweist. Jedes Codewort enthält eine vorgegebene Anzahl von Symbolen, und jedes Symbol hat eine Größe von 10 Bit. Die Daten werden als ein RS(768,728)-C1-Codewort über einem GF(1024) codiert, z.B. ein CWI-1 pro Teildatensatz.
  • In Arbeitsschritt 2204 wird der Datensatz mithilfe einer Mehrzahl von Lesewandlern des Magnetkopfes unmittelbar nach dem Schreiben auf das Speichermedium mit sequenziellem Zugriff in einem Lesen-während-Schreiben-Prozess gelesen, um einen oder mehrere fehlerhaft codierte Datenblöcke zu identifizieren. Jeder des einen oder der mehreren fehlerhaft codierten Datenblöcke enthält mindestens ein fehlerhaftes Codewort. Mit unmittelbar gelesen ist gemeint, dass der zuerst auf das Speichermedium mit sequenziellem Zugriff geschriebene Datensatz gelesen wird, sobald es physisch möglich ist, diesen in einem Lesen-während-Schreiben-Prozess zu lesen, auf Grundlage des Layouts des Speichermediums mit sequenziellem Zugriff und der Auslegung der Speichereinheit (z.B. wo sich die Lese- und Schreibwandler physisch auf dem Magnetkopf befinden, Lese- und Schreibgeschwindigkeit usw.).
  • Ein fehlerhaftes Codewort und damit ein fehlerhaft codierter Datenblock, der das fehlerhafte Codewort enthält, wird auf Grundlage einer darin enthaltenen Anzahl von Fehlern ermittelt, was durch Decodieren des Datensatzes oder eines Teils davon nach dem Lesen des Datensatzes aus dem Speichermedium mit sequenziellem Zugriff im Lesen-während-Schreiben-Prozess ermittelt wird. Wie hierin ausführlicher beschrieben, wird aufgrund der Anzahl der Fehler in einem Codewort oder codierten Datenblock, die einem Schwellenwert entspricht oder diesen überschreitet, das Codewort oder der codierte Datenblock als fehlerhaft ermittelt, was ein Neuschreiben des codierten Datenblocks (oder einer kleineren Teilmenge davon oder eines größeren Teils des Datensatzes) in einem Neuschreibbereich des Speichermediums mit sequenziellem Zugriff auslöst.
  • Jeder Lesewandler ist so konfiguriert, dass er Daten von einem Speichermedium mit sequenziellem Zugriff liest, nachdem diese von einem entsprechenden Schreibwandler in einem Lesen-während-Schreiben-Prozess darauf geschrieben wurden. Eine Steuereinheit und eine Logik, die in die Steuereinheit integriert und/oder von dieser ausführbar ist, sind ebenfalls enthalten, um den Betrieb des Magnetkopfes und die Bewegung des Speichermediums mit sequenziellem Zugriff auf dem Magnetkopf zu steuern. Jeder Lesewandler ist mit einem entsprechenden Schreibwandler ausgerichtet, der so konfiguriert ist, dass er Daten auf einer Spur des Speichermediums speichert, um eine Lesen-während-Schreiben-Verarbeitung der gerade gespeicherten Daten zu ermöglichen. Mit anderen Worten, die Ausgabe eines Lesewandlers wird während des Lesen-während-Schreibens erzeugt.
  • In Arbeitsschritt 2206 wird der aus dem Speichermedium mit sequenziellem Zugriff gelesene Datensatz decodiert, um den einen oder die mehreren fehlerhaften Codewörter und/oder codierten Datenblöcke zu ermitteln. In dieser Ausführungsform wird ein codierter Datenblock und/oder ein Codewort als Reaktion auf Identifizieren einer Schwellenwertanzahl von Fehlern darin, z.B. eines Schwellenwerts, der größer als null, aber kleiner als eine maximale Anzahl korrigierbarer Fehler auf Grundlage des verwendeten Codierschemas festgelegt ist, als fehlerhaft ermittelt. In diesem Fall kann der Schwellenwert durch Verwenden eines RS(768,728)-Codes über einem GF(1024), der bis zu 20 Fehler pro Codewort korrigieren kann, so eingestellt werden, dass er für jedes Codewort in einem Bereich von 1 bis 20 liegt. Das Identifizieren eines fehlerhaften Codeworts innerhalb eines codierten Datenblocks führt zu der Feststellung, dass der codierte Datenblock fehlerhaft ist, und infolgedessen wird dieser für ein Neuschreiben vorgesehen.
  • In Arbeitsschritt 2208 werden eine oder mehrere logische Spuren aus einer oder mehreren eindeutigen vorgegebenen Teilmengen von fünf logischen Spuren im Neuschreibbereich des Speichermediums mit sequenziellem Zugriff ausgewählt. Diese bestimmte(n) logische(n) Spur(en) wird/werden verwendet, um den/die fehlerhaft codierten Datenblock/Datenblöcke als Reaktion auf Identifizieren des einen oder der mehreren fehlerhaft codierten Datenblöcke neu zu schreiben. Mit eindeutigen vorgegebenen Teilmengen von fünf logischen Spuren ist gemeint, dass jede Teilmenge logischer Spuren sich dadurch unterscheidet, dass sie fünf logische Spuren enthält, die sich von jeder anderen Teilmenge von fünf logischen Spuren für jede bestimmte Kombination aus Teildatensatzzahl und Zahl des codierten Datenblocksatzes unterscheiden. Es versteht sich, dass manche logische Spuren in mehreren Teilmengen vorkommen können. Zum Beispiel würde Spur 5 in fünf Teilmengen von Spuren vorkommen: 1,2,3,4,5; 2,3,4,5,6; 3,4,5,6,7; 4,5,6,7,8; 5,6,7,8,9. Jede dieser Teilmengen logischer Spuren, die die logische Spur 5 enthält, unterscheidet sich jedoch eindeutig von den anderen.
  • Eine flexible Neuschreibtabelle kann verwendet werden, um die vorgegebene Teilmenge von fünf logischen Spuren zu ermitteln, auf die Daten unter Berücksichtigung spezifischer Parameter für die Speichereinheit und das Speichermedium mit sequenziellem Zugriff neu geschrieben werden können, z.B. M, S, R, D1, D2 usw.
  • Jede der Teilmengen logischer Spuren wird so ausgewählt, dass sie eine logische Basisspur enthält, auf der der fehlerhaft codierte Datenblock bzw. die fehlerhaft codierten Datenblöcke ursprünglich so festgelegt worden wären, dass sie nach einem herkömmlichen Neuschreibschema in den Neuschreibbereich neu geschrieben werden, mit zusätzlichen Spuren vor oder nach dieser logischen Basisspur im Neuschreibbereich.
  • Der Neuschreibbereich wird nach der Position des Datensatzes positioniert, der zuerst auf das Speichermedium mit sequenziellem Zugriff geschrieben wurde (in Richtung der Vorwärtsbewegung des Mediums).
  • Die Entscheidung, welche logische Spur innerhalb einer der vorgegebenen Teilmengen logischer Spuren ausgewählt werden soll, kann auf einer oder mehreren Überlegungen beruhen, die hierin näher beschrieben werden. In einer Ausführungsform hängt die Auswahl der logischen Spur davon ab, ob ein anderer codierter Datenblock (z.B. ein CWI oder eine andere Datenmenge) im gleichen Teildatensatz bereits für Neuschreiben auf eine bestimmte logische Spur in der vorgegebenen Teilmenge logischer Spuren vorgesehen ist. Wenn ja, wird eine weitere logische Spur aus einer anderen vorgegebenen Teilmenge logischer Spuren ausgewählt, um den aktuellen codierten Datenblock neu zu schreiben, wobei Fälle berücksichtigt werden, in denen eine Wrap-around-Bedingung vorliegt. Darüber hinaus ist die Teilmenge der logischen Spuren der Reihe nach angeordnet, z.B. Spuren 29 bis 33, Spuren 0 bis 4, Spuren 31, 0, 1, 2, 3 oder eine andere mögliche Kombination aus fünf aufeinanderfolgenden logischen Spuren in der Gesamtmenge logischer Spuren.
  • In Arbeitsschritt 2210 werden der eine oder die mehreren fehlerhaft codierten Datenblöcke, der/die den einen oder die mehreren fehlerhaften Codewörter enthalten, als Reaktion auf Identifizieren des einen oder der mehreren fehlerhaft codierten Datenblöcke und/oder Codewörter in die eine oder die mehreren logischen Spuren im Neuschreibbereich neu geschrieben. Auf diese Weise wird der fehlerhafte Teil des Datensatzes (der den vollständigen Datensatz oder einen beliebigen Teil davon enthalten kann) auf das Speichermedium mit sequenziellem Zugriff neu geschrieben, um Fehler zu korrigieren, die beim ersten Schreiben erkannt wurden. Wenn der eine oder die mehreren fehlerhaft codierten Datenblöcke neu geschrieben werden, wird darüber hinaus ein Lesen-während-Schreiben-Prozess durchgeführt, der einen oder mehrere zusätzliche fehlerhaft codierte Datenblöcke und/oder ein oder mehrere Codewörter identifizieren und ein weiteres Neuschreiben einiger oder aller fehlerhaft codierten Datenblöcke auslösen kann.
  • In dieser Ausführungsform wird nur ein fehlerhaft codierter Datenblock aus einem bestimmten Teildatensatz in einem einzigen codierten Datenblocksatz in dem Neuschreibbereich neu geschrieben. Um einen anderen fehlerhaft codierten Datenblock aus dem jeweiligen Teildatensatz neu zu schreiben, wird ein anderer codierter Datenblocksatz im Neuschreibbereich verwendet.
  • Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt handeln. Das Computerprogrammprodukt kann (ein) durch einen Computer lesbare(s) Speichermedium (oder -medien) beinhalten, auf dem/denen durch einen Computer lesbare Programmanweisungen gespeichert ist/sind, um einen Prozessor dazu zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
  • Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine physische Einheit handeln, die Anweisungen zur Verwendung durch eine Einheit zur Ausführung von Anweisungen behalten und speichern kann. Bei dem durch einen Computer lesbaren Speichermedium kann es sich zum Beispiel um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder jede geeignete Kombination daraus handeln, ohne auf diese beschränkt zu sein. Zu einer nicht erschöpfenden Liste spezifischerer Beispiele des durch einen Computer lesbaren Speichermediums gehören die Folgenden: eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM bzw. Flash-Speicher), ein statischer Direktzugriffsspeicher (SRAM), ein tragbarer Kompaktspeicherplatte-Nur-Lese-Speicher (CD-ROM), eine DVD (digital versatile disc), ein Speicher-Stick, eine Diskette, eine mechanisch codierte Einheit wie zum Beispiel Lochkarten oder gehobene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und jede geeignete Kombination daraus. Ein durch einen Computer lesbares Speichermedium soll in der Verwendung hierin nicht als flüchtige Signale an sich aufgefasst werden, wie zum Beispiel Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder ein anderes Übertragungsmedium ausbreiten (z.B. einen Lichtwellenleiter durchlaufende Lichtimpulse) oder durch einen Draht übertragene elektrische Signale.
  • Hierin beschriebene, durch einen Computer lesbare Programmanweisungen können von einem durch einen Computer lesbaren Speichermedium auf jeweilige Datenverarbeitungs/Verarbeitungs-Einheiten oder über ein Netzwerk wie zum Beispiel das Internet, ein lokales Netzwerk, ein Weitverkehrsnetz und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Router, Firewalls, Vermittlungseinheiten, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jeder Datenverarbeitungs/Verarbeitungs-Einheit empfängt durch einen Computer lesbare Programmanweisungen aus dem Netzwerk und leitet die durch einen Computer lesbaren Programmanweisungen zur Speicherung in einem durch einen Computer lesbaren Speichermedium innerhalb der entsprechenden Datenverarbeitungs/Verarbeitungs-Einheit weiter.
  • Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Arbeitsschritten der vorliegenden Erfindung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben werden, darunter objektorientierte Programmiersprachen wie Smalltalk, C++ o.ä. sowie herkömmliche prozedurale Programmiersprachen wie die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die durch einen Computer lesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. In letzterem Fall kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch eine beliebige Art Netzwerk verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetzwerk (WAN), oder die Verbindung kann mit einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters). In einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, vor Ort programmierbare Gatter-Anordnungen (FPGA, field programmable gate arrays) oder programmierbare Logikanordnungen (PLA, programmable logic arrays) die durch einen Computer lesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der durch einen Computer lesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Erfindung durchzuführen.
  • Aspekte der vorliegenden Erfindung sind hierin unter Bezugnahme auf Ablaufpläne und/oder Blockschaltbilder bzw. Schaubilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es wird darauf hingewiesen, dass jeder Block der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder sowie Kombinationen von Blöcken in den Ablaufplänen und/oder den Blockschaltbildern bzw. Schaubildern mittels durch einen Computer lesbare Programmanweisungen ausgeführt werden können.
  • Diese durch einen Computer lesbaren Programmanweisungen können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, sodass die über den Prozessor des Computers bzw. der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Mittel zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte erzeugen. Diese durch einen Computer lesbaren Programmanweisungen können auch auf einem durch einen Computer lesbaren Speichermedium gespeichert sein, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Art funktionieren, sodass das durch einen Computer lesbare Speichermedium, auf dem Anweisungen gespeichert sind, einen Herstellungsartikel aufweist, darunter Anweisungen, welche Aspekte der/des in dem Block bzw. den Blöcken des Ablaufplans und/oder der Blockschaltbilder bzw. Schaubilder angegebenen Funktion/Schritts umsetzen.
  • Die durch einen Computer lesbaren Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um das Ausführen einer Reihe von Prozessschritten auf dem Computer bzw. der anderen programmierbaren Vorrichtung oder anderen Einheit zu verursachen, um einen auf einem Computer ausgeführten Prozess zu erzeugen, sodass die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführten Anweisungen die in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaltbilder bzw. Schaubilder festgelegten Funktionen/Schritte umsetzen.
  • Die Ablaufpläne und die Blockschaltbilder bzw. Schaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder Blockschaltbildern bzw. Schaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zur Ausführung der bestimmten logischen Funktion(en) aufweisen. In einigen alternativen Ausführungen können die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren gezeigt stattfinden. Zwei nacheinander gezeigte Blöcke können zum Beispiel in Wirklichkeit im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal je nach entsprechender Funktionalität in umgekehrter Reihenfolge ausgeführt werden. Es ist ferner anzumerken, dass jeder Block der Blockschaltbilder bzw. Schaubilder und/oder der Ablaufpläne sowie Kombinationen aus Blöcken in den Blockschaltbildern bzw. Schaubildern und/oder den Ablaufplänen durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die festgelegten Funktionen oder Schritte durchführen, oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.
  • Darüber hinaus kann ein System gemäß verschiedenen Ausführungsformen einen Prozessor und eine in den Prozessor integrierte und/oder von ihm ausführbare Logik enthalten, wobei die Logik so konfiguriert ist, dass sie einen oder mehrere der hier beschriebenen Prozessschritte ausführt. Mit „integriert mit“ ist gemeint, dass der Prozessor eine eingebettete Logik als Hardwarelogik hat, wie z.B. eine ASIC, eine FPGA usw. Mit ausführbar durch den Prozessor ist gemeint, dass die Logik Hardwarelogik ist; Softwarelogik wie z.B. Firmware, Teil eines Betriebssystems, Teil eines Anwendungsprogramms; usw. oder eine Kombination aus Hardware- und Softwarelogik, auf die der Prozessor zugreifen kann und die so konfiguriert ist, dass der Prozessor veranlasst wird, beim Ausführen durch den Prozessor eine bestimmte Funktionalität auszuführen. Softwarelogik kann auf einem lokalen und/oder entfernt angeordneten Speicher eines beliebigen Speichertyps gespeichert werden, wie er nach dem Stand der Technik bekannt ist. Jeder nach dem Stand der Technik bekannte Prozessor kann verwendet werden, z.B. ein Software-Prozessormodul und/oder ein Hardwareprozessor wie eine ASIC, eine FPGA, eine CPU, eine integrierte Schaltung (IC), eine Grafikverarbeitungseinheit (GPU) usw.

Claims (25)

  1. System (600), das aufweist: einen Magnetkopf (126, 602) mit einer Mehrzahl von Schreibwandlern (604), die mindestens M beträgt, und einer Mehrzahl von Lesewandlern (606), die mindestens M beträgt, wobei jeder Lesewandler (606) so konfiguriert ist, dass er Daten von einem Speichermedium (122, 608) mit sequenziellem Zugriff liest, nachdem diese von einem entsprechenden Schreibwandler (604) darauf geschrieben wurden; und eine Steuereinheit (128, 612) und eine Logik, die in die Steuereinheit (128, 612) integriert und/oder durch die Steuereinheit (128, 612) ausführbar ist, wobei die Logik so konfiguriert ist, dass sie: einen Datensatz (502) mithilfe einer Mehrzahl von M Schreibwandlern (604) auf ein Speichermedium (122, 608) mit sequenziellem Zugriff schreibt (2002), wobei der Datensatz (502) eine Anzahl von Teildatensätzen fester Größe aufweist, wobei jeder Teildatensatz eine Mehrzahl codierter Datenblöcke aufweist, die Codewörter in einer verschachtelten oder nichtverschachtelten Anordnung aufweisen, wobei jedes Codewort eine vorgegebene Anzahl von Symbolen mit einer Größe von mindestens 8 Bit für jedes Symbol aufweist; den Datensatz (502) mithilfe einer Mehrzahl von M Lesewandlern (606) unmittelbar nach dem Schreiben auf das Speichermedium (122, 608) mit sequenziellem Zugriff in einem Lesen-während-Schreiben-Prozess liest (2004), um einen oder mehrere fehlerhaft codierte Datenblöcke (504) zu identifizieren, wobei jeder des einen oder der mehreren fehlerhaft codierten Datenblöcke (504) mindestens ein fehlerhaftes Codewort aufweist; eine bestimmte logische Spur aus einer vorgegebenen Teilmenge logischer Spuren in einem Neuschreibbereich (508) des Speichermediums (122, 608) mit sequenziellem Zugriff auswählt (2006), um die fehlerhaft codierten Datenblöcke (504) neu zu schreiben, wobei der Neuschreibbereich (508) nach einer Position des Datensatzes (502) positioniert wird, der zuerst auf das Speichermedium (122, 608) mit sequenziellem Zugriff geschrieben wurde, wobei die vorgegebene Teilmenge logischer Spuren D1+D2+1 logische Spuren enthält und wobei 0 < D1+D2 < M/4 ist; und einen ersten des einen oder der mehreren fehlerhaft codierten Datenblöcke (504) innerhalb eines ersten codierten Datenblocksatzes auf die bestimmte logische Spur im Neuschreibbereich (508) des Speichermediums (122, 608) mit sequenziellem Zugriff neu schreibt (2008), wobei nur ein fehlerhaft codierter Datenblock (504) aus einem bestimmten Teildatensatz in einem einzigen codierten Datenblocksatz in dem Neuschreibbereich (508) neu geschrieben wird.
  2. System (600) nach Anspruch 1, wobei jedes der Symbole eine Größe von 10 Bit hat und wobei die Logik weiterhin so konfiguriert ist, dass sie: eine zweite logische Spur aus der vorgegebenen Teilmenge logischer Spuren im Neuschreibbereich (508) des Speichermediums (122, 608) mit sequenziellem Zugriff auswählt; und einen zweiten des einen oder der mehreren fehlerhaft codierten Datenblöcke (504) innerhalb des ersten codierten Datenblocksatzes als Reaktion darauf, dass der erste des einen oder der mehreren fehlerhaft codierten Datenblöcke (504) aus einem anderen Teildatensatz stammt als der zweite des einen oder der mehreren fehlerhaft codierten Datenblöcke (504), in die zweite logische Spur neu schreibt.
  3. System (600) nach Anspruch 1, wobei jede der vorgegebenen Teilmengen logischer Spuren drei logische Spuren der Reihe nach angeordnet gemäß D1=1 und D2=1 aufweist.
  4. System (600) nach Anspruch 1, wobei jede der vorgegebenen Teilmengen logischer Spuren fünf logische Spuren der Reihe nach angeordnet gemäß D1=2 und D2=2 aufweist.
  5. System (600) nach Anspruch 1, wobei jeder codierte Datenblock als vier symbolverschachtelte Reed-Solomon-RS(240,228)-C1-Codewörter über einem Galois-Feld GF(256) auf das Speichermedium (122, 608) mit sequenziellem Zugriff geschrieben (1404, 1704) wird.
  6. System (600) nach Anspruch 1, wobei jeder codierte Datenblock als zwei symbolverschachtelte Reed-Solomon-RS(384,364)-C1-Codewörter über einem Galois-Feld GF(1024) auf das Speichermedium (122, 608) mit sequenziellem Zugriff geschrieben (1504, 1804) wird.
  7. System (600) nach Anspruch 1, wobei jeder codierte Datenblock als ein Reed-Solomon-RS(768,728)-C1-Codewort über einem Galois-Feld GF(1024) auf das Speichermedium (122, 608) mit sequenziellem Zugriff geschrieben (1604, 1904) wird.
  8. System (600) nach Anspruch 1, wobei die Logik weiterhin so konfiguriert ist, dass sie den vom Speichermedium (122, 608) mit sequenziellem Zugriff gelesenen Datensatz (502) decodiert, um den einen oder die mehreren fehlerhaft codierten Datenblöcke (504) zu ermitteln, wobei ein codierter Datenblock als Reaktion auf Identifizieren einer Schwellenwertanzahl von Fehlern darin als fehlerhaft ermittelt wird, nachdem der codierte Datenblock decodiert ist.
  9. Verfahren (2000), das aufweist: Schreiben (2002) eines Datensatzes (502) auf ein Speichermedium (122, 608) mit sequenziellem Zugriff mithilfe einer Mehrzahl von mindestens M Schreibwandlern (604) eines Magnetkopfes (126, 602), wobei der Datensatz (502) eine Anzahl von Teildatensätzen fester Größe aufweist, wobei jeder Teildatensatz eine Mehrzahl codierter Datenblöcke aufweist, die Codewörter in einer verschachtelten oder nichtverschachtelten Anordnung aufweisen, wobei jedes Codewort eine vorgegebene Anzahl von Symbolen mit einer Größe von mindestens 8 Bit für jedes Symbol aufweist; Lesen (2004) des Datensatzes (502) mithilfe einer Mehrzahl von mindestens M Lesewandlern (606) des Magnetkopfes (126, 602) unmittelbar nach dem Schreiben auf das Speichermedium (122, 608) mit sequenziellem Zugriff in einem Lesen-während-Schreiben-Prozess, um einen oder mehrere fehlerhaft codierte Datenblöcke (504) zu identifizieren, wobei jeder des einen oder der mehreren fehlerhaft codierten Datenblöcke (504) mindestens ein fehlerhaftes Codewort aufweist; Auswählen (2006) einer bestimmten logischen Spur aus einer vorgegebenen Teilmenge logischer Spuren in einem Neuschreibbereich (508) des Speichermediums (122, 608) mit sequenziellem Zugriff, um die fehlerhaft codierten Datenblöcke (504) neu zu schreiben, wobei der Neuschreibbereich (508) nach einer Position des Datensatzes (502) positioniert wird, der zuerst auf das Speichermedium (122, 608) mit sequenziellem Zugriff geschrieben wurde, wobei die vorgegebene Teilmenge logischer Spuren D1+D2+1 logische Spuren enthält und wobei 0 < D1+D2 < M/4 ist; und Neuschreiben (2008) eines ersten des einen oder der mehreren fehlerhaft codierten Datenblöcke (504) innerhalb eines ersten codierten Datenblocksatzes auf die bestimmte logische Spur im Neuschreibbereich (508) des Speichermediums (122, 608) mit sequenziellem Zugriff, wobei nur ein fehlerhaft codierter Datenblock (504) aus einem bestimmten Teildatensatz in einem einzigen codierten Datenblocksatz in dem Neuschreibbereich (508) neu geschrieben wird.
  10. Verfahren (2000) nach Anspruch 9, wobei jedes der Symbole eine Größe von 10 Bit hat, wobei das Verfahren (2000) weiterhin aufweist: Auswählen einer zweiten logischen Spur aus der vorgegebenen Teilmenge logischer Spuren im Neuschreibbereich (508) des Speichermediums (122, 608) mit sequenziellem Zugriff; und Neuschreiben eines zweiten des einen oder der mehreren fehlerhaft codierten Datenblöcke (504) innerhalb des ersten codierten Datenblocksatzes als Reaktion darauf, dass der erste des einen oder der mehreren fehlerhaft codierten Datenblöcke (504) aus einem anderen Teildatensatz stammt als der zweite des einen oder der mehreren fehlerhaft codierten Datenblöcke (504), in die zweite logische Spur.
  11. Verfahren (2000) nach Anspruch 9, wobei jede der vorgegebenen Teilmengen logischer Spuren drei logische Spuren der Reihe nach angeordnet gemäß D1=1 und D2=1 aufweist.
  12. Verfahren (2000) nach Anspruch 9, wobei jede der vorgegebenen Teilmengen logischer Spuren fünf logische Spuren der Reihe nach angeordnet gemäß D1=2 und D2=2 aufweist.
  13. Verfahren (2000) nach Anspruch 9, wobei jeder codierte Datenblock als vier symbolverschachtelte Reed-Solomon-RS(240,228)-C1-Codewörter über einem Galois-Feld GF(256) auf das Speichermedium (122, 608) mit sequenziellem Zugriff geschrieben (1404, 1704) wird.
  14. Verfahren (2000) nach Anspruch 9, wobei jeder codierte Datenblock als zwei symbolverschachtelte Reed-Solomon-RS(384,364)-C1-Codewörter über einem Galois-Feld GF(1024) auf das Speichermedium (122, 608) mit sequenziellem Zugriff geschrieben (1504, 1804) wird.
  15. Verfahren (2000) nach Anspruch 9, wobei jeder codierte Datenblock als ein Reed-Solomon-RS(768,728)-C1-Codewort über einem Galois-Feld GF(1024) auf das Speichermedium (122, 608) mit sequenziellem Zugriff geschrieben (1604, 1904) wird.
  16. Verfahren (2000) nach Anspruch 9, das weiterhin Decodieren des vom Speichermedium (122, 608) mit sequenziellem Zugriff gelesenen Datensatzes (502) aufweist, um den einen oder die mehreren fehlerhaft codierten Datenblöcke (504) zu ermitteln, wobei ein codierter Datenblock als Reaktion auf Identifizieren einer Schwellenwertanzahl von Fehlern darin als fehlerhaft ermittelt wird, nachdem der codierte Datenblock decodiert ist.
  17. Computerprogrammprodukt, wobei das Computerprogrammprodukt ein durch einen Computer (12) lesbares Speichermedium (122, 608) mit darauf enthaltenen Programmanweisungen (40, 42) aufweist, wobei die darauf enthaltenen Programmanweisungen (40, 42) von einem Prozessor (16, 612) ausführbar sind, um den Prozessor (16, 612) zu veranlassen: einen Datensatz (502) mithilfe einer Mehrzahl von mindestens M Schreibwandlern (604) eines Magnetkopfes (126, 602) auf ein Speichermedium (122, 608) mit sequenziellem Zugriff durch einen Prozessor (16, 612) zu schreiben (2002), wobei der Datensatz (502) eine Anzahl von Teildatensätzen fester Größe aufweist, wobei jeder Teildatensatz eine Mehrzahl codierter Datenblöcke aufweist, die Codewörter in einer verschachtelten oder nichtverschachtelten Anordnung aufweisen, wobei jedes Codewort eine vorgegebene Anzahl von Symbolen mit einer Größe von mindestens 8 Bit für jedes Symbol aufweist; den Datensatz (502) mithilfe einer Mehrzahl von mindestens M Lesewandlern (606) unmittelbar nach dem Schreiben auf das Speichermedium (122, 608) mit sequenziellem Zugriff in einem Lesen-während-Schreiben-Prozess durch den Prozessor (16, 612) zu lesen (2004), um einen oder mehrere fehlerhaft codierte Datenblöcke (504) zu identifizieren, wobei jeder des einen oder der mehreren fehlerhaft codierten Datenblöcke (504) mindestens ein fehlerhaftes Codewort aufweist; eine bestimmte logische Spur aus einer vorgegebenen Teilmenge logischer Spuren in einem Neuschreibbereich (508) des Speichermediums (122, 608) mit sequenziellem Zugriff durch den Prozessor (16, 612) auszuwählen (2006), um die fehlerhaft codierten Datenblöcke (504) neu zu schreiben, wobei der Neuschreibbereich (508) nach einer Position des Datensatzes (502) positioniert wird, der zuerst auf das Speichermedium (122, 608) mit sequenziellem Zugriff geschrieben wurde, wobei die vorgegebene Teilmenge logischer Spuren D1+D2+1 logische Spuren enthält und wobei 0 < D1+D2 < M/4 ist; und einen ersten des einen oder der mehreren fehlerhaft codierten Datenblöcke (504) innerhalb eines ersten codierten Datenblocksatzes auf die bestimmte logische Spur im Neuschreibbereich (508) des Speichermediums (122, 608) mit sequenziellem Zugriff durch den Prozessor (16, 612) neu zu schreiben (2008), wobei nur ein fehlerhaft codierter Datenblock (504) aus einem bestimmten Teildatensatz in einem einzigen codierten Datenblocksatz in dem Neuschreibbereich (508) neu geschrieben wird.
  18. Computerprogrammprodukt nach Anspruch 17, wobei jedes der Symbole eine Größe von 8 Bit hat und wobei jeder codierte Datenblock als vier symbolverschachtelte Reed-Solomon-RS(240,228)-C1-Codewörter über einem Galois-Feld GF(256) auf das Speichermedium (122, 608) mit sequenziellem Zugriff geschrieben (1404, 1704) wird.
  19. Computerprogrammprodukt nach Anspruch 17, wobei jedes der Symbole eine Größe von 10 Bit hat und wobei jeder codierte Datenblock als zwei symbolverschachtelte Reed-Solomon-RS(384,364)-C1-Codewörter über einem Galois-Feld GF(1024) auf das Speichermedium (122, 608) mit sequenziellem Zugriff geschrieben (1504, 1804) wird.
  20. Computerprogrammprodukt nach Anspruch 17, wobei jedes der Symbole eine Größe von 10 Bit hat und wobei jeder codierte Datenblock als ein Reed-Solomon-RS(768,728)-C1-Codewort über einem Galois-Feld GF(1024) auf das Speichermedium (122, 608) mit sequenziellem Zugriff geschrieben (1604, 1904) wird.
  21. Computerprogrammprodukt nach Anspruch 17, wobei jede der vorgegebenen Teilmengen logischer Spuren drei logische Spuren der Reihe nach angeordnet entsprechend D1=1 und D2=1 aufweist.
  22. Computerprogrammprodukt nach Anspruch 17, wobei jede der vorgegebenen Teilmengen logischer Spuren fünf logische Spuren der Reihe nach angeordnet gemäß D1=2 und D2=2 aufweist.
  23. Computerprogrammprodukt nach Anspruch 17, wobei die enthaltenen Programmanweisungen (40, 42) weiterhin durch den Prozessor (16, 612) ausführbar sind, um den Prozessor (16, 612) zu veranlassen: den vom Speichermedium (122, 608) mit sequenziellem Zugriff gelesenen Datensatz (502) durch den Prozessor (16, 612) zu decodieren, um den einen oder die mehreren fehlerhaft codierten Datenblöcke (504) zu ermitteln, wobei ein codierter Datenblock als Reaktion auf Identifizieren einer Schwellenwertanzahl von Fehlern darin als fehlerhaft ermittelt wird, nachdem der codierte Datenblock decodiert ist; eine zweite logische Spur aus der vorgegebenen Teilmenge logischer Spuren im Neuschreibbereich (508) des Speichermediums (122, 608) mit sequenziellem Zugriff durch den Prozessor (16, 612) auszuwählen; und einen zweiten des einen oder der mehreren fehlerhaft codierten Datenblöcke (504) innerhalb des ersten codierten Datenblocksatzes als Reaktion darauf, dass der erste des einen oder der mehreren fehlerhaft codierten Datenblöcke (504) aus einem anderen Teildatensatz stammt als der zweite des einen oder der mehreren fehlerhaft codierten Datenblöcke (504), in die zweite logische Spur durch den Prozessor (16, 612) neu zu schreiben.
  24. Verfahren (2100), das aufweist: Schreiben (2102) eines Datensatzes (502) mithilfe einer Mehrzahl von Schreibwandlern (604) eines Magnetkopfes (126, 602) auf ein Speichermedium (122, 608) mit sequenziellem Zugriff, wobei der Datensatz (502) eine Anzahl von Teildatensätzen fester Größe aufweist, wobei jeder Teildatensatz eine Mehrzahl codierter Datenblöcke aufweist, die Codewörter in einer verschachtelten Anordnung aufweisen, wobei jedes Codewort eine vorgegebene Anzahl von Symbolen aufweist; Lesen (2104) des Datensatzes (502) mithilfe einer Mehrzahl von Lesewandlern (606) des Magnetkopfes (126, 602) unmittelbar nach dem Schreiben auf das Speichermedium (122, 608) mit sequenziellem Zugriff in einem Lesen-während-Schreiben-Prozess, um einen oder mehrere fehlerhaft codierte Datenblöcke (504) zu identifizieren, wobei jeder des einen oder der mehreren fehlerhaft codierten Datenblöcke (504) mindestens ein fehlerhaftes Codewort aufweist; Decodieren (2106) des vom Speichermedium (122, 608) mit sequenziellem Zugriff gelesenen Datensatzes (502), um den einen oder die mehreren fehlerhaft codierten Datenblöcke (504) zu ermitteln, wobei ein codierter Datenblock als Reaktion auf Identifizieren einer Schwellenwertanzahl von Fehlern darin als fehlerhaft ermittelt wird, nachdem der codierte Datenblock decodiert ist; Auswählen (2108) einer oder mehrerer logischer Spuren aus einer oder mehreren eindeutigen vorgegebenen Teilmengen logischer Spuren in einem Neuschreibbereich (508) des Speichermediums (122, 608) mit sequenziellem Zugriff, um den einen oder die mehreren fehlerhaft codierten Datenblöcke (504) neu zu schreiben, wobei der Neuschreibbereich (508) nach einer Position des Datensatzes (502) positioniert wird, der zuerst auf das Speichermedium (122, 608) mit sequenziellem Zugriff geschrieben wurde, wobei jede der vorgegebenen Teilmengen logischer Spuren drei logische Spuren enthält; und Neuschreiben (2110) des einen oder der mehreren fehlerhaft codierten Datenblöcke (504) innerhalb eines oder mehrerer codierter Datenblocksätze auf eine oder mehrere logische Spuren im Neuschreibbereich (508) des Speichermediums (122, 608) mit sequenziellem Zugriff, wobei nur ein fehlerhaft codierter Datenblock (504) aus einem bestimmten Teildatensatz in einem einzigen codierten Datenblocksatz in dem Neuschreibbereich (508) neu geschrieben wird, wobei jeder codierte Datenblock als zwei symbolverschachtelte Reed-Solomon-RS(384,364)-C1-Codewörter über einem Galois-Feld GF(1024) auf das Speichermedium (122, 608) mit sequenziellem Zugriff geschrieben (1504, 1804) wird.
  25. Verfahren (2200), das aufweist: Schreiben (2202) eines Datensatzes (502) mithilfe einer Mehrzahl von Schreibwandlern (604) eines Magnetkopfes (126, 602) auf ein Speichermedium (122, 608) mit sequenziellem Zugriff, wobei der Datensatz (502) eine Anzahl von Teildatensätzen fester Größe aufweist, wobei jeder Teildatensatz eine Mehrzahl codierter Datenblöcke aufweist, die Codewörter aufweisen, wobei jedes Codewort eine vorgegebene Anzahl von Symbolen aufweist; Lesen (2204) des Datensatzes (502) mithilfe einer Mehrzahl von Lesewandlern (606) des Magnetkopfes (126, 602) unmittelbar nach dem Schreiben auf das Speichermedium (122, 608) mit sequenziellem Zugriff in einem Lesen-während-Schreiben-Prozess, um einen oder mehrere fehlerhaft codierte Datenblöcke (504) zu identifizieren, wobei jeder des einen oder der mehreren fehlerhaft codierten Datenblöcke (504) mindestens ein fehlerhaftes Codewort aufweist; Decodieren (2206) des vom Speichermedium (122, 608) mit sequenziellem Zugriff gelesenen Datensatzes (502), um den einen oder die mehreren fehlerhaft codierten Datenblöcke (504) zu ermitteln, wobei ein codierter Datenblock als Reaktion auf Identifizieren einer Schwellenwertanzahl von Fehlern darin als fehlerhaft ermittelt wird, nachdem der codierte Datenblock decodiert ist; Auswählen (2208) einer oder mehrerer logischer Spuren aus einer oder mehreren eindeutigen vorgegebenen Teilmengen logischer Spuren in einem Neuschreibbereich (508) des Speichermediums (122, 608) mit sequenziellem Zugriff, um den einen oder die mehreren fehlerhaft codierten Datenblöcke (504) neu zu schreiben, wobei der Neuschreibbereich (508) nach einer Position des Datensatzes (502) positioniert wird, der zuerst auf das Speichermedium (122, 608) mit sequenziellem Zugriff geschrieben wurde, wobei jede der vorgegebenen Teilmengen logischer Spuren fünf logische Spuren enthält; und Neuschreiben (2210) des einen oder der mehreren fehlerhaft codierten Datenblöcke (504) innerhalb eines oder mehrerer codierter Datenblocksätze auf eine oder mehrere logische Spuren im Neuschreibbereich (508) des Speichermediums (122, 608) mit sequenziellem Zugriff, wobei nur ein fehlerhaft codierter Datenblock (504) aus einem bestimmten Teildatensatz in einem einzigen codierten Datenblocksatz in dem Neuschreibbereich (508) neu geschrieben wird, wobei jeder codierte Datenblock auf das Speichermedium (122, 608) mit sequenziellem Zugriff als ein Reed-Solomon-RS(768,728)-C1-Codewort über einem Galois-Feld GF(1024) geschrieben (1604, 1904) wird.
DE112018005762.3T 2017-12-19 2018-12-04 Neuschreiben von datenobjekten auf speichermedien mit sequenziellem zugriff Active DE112018005762B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/847,774 2017-12-19
US15/847,774 US10418062B2 (en) 2017-12-19 2017-12-19 Efficient rewrite using larger codeword sizes
PCT/IB2018/059607 WO2019123068A1 (en) 2017-12-19 2018-12-04 Data object rewrite to sequential storage media

Publications (2)

Publication Number Publication Date
DE112018005762T5 DE112018005762T5 (de) 2020-07-23
DE112018005762B4 true DE112018005762B4 (de) 2023-04-20

Family

ID=66814699

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112018005762.3T Active DE112018005762B4 (de) 2017-12-19 2018-12-04 Neuschreiben von datenobjekten auf speichermedien mit sequenziellem zugriff

Country Status (6)

Country Link
US (2) US10418062B2 (de)
JP (1) JP6979129B2 (de)
CN (1) CN111492429B (de)
DE (1) DE112018005762B4 (de)
GB (1) GB2583040B (de)
WO (1) WO2019123068A1 (de)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10418062B2 (en) 2017-12-19 2019-09-17 International Business Machines Corporation Efficient rewrite using larger codeword sizes
US10339971B1 (en) * 2017-12-19 2019-07-02 International Business Machines Corporation Sequential data storage with rewrite using dead-track detection
CN110212924B (zh) * 2019-07-05 2020-10-09 中国人民解放军火箭军工程大学 一种lt码编解码方法及系统
US10854239B1 (en) * 2019-07-31 2020-12-01 Facebook, Inc. Adaptive-rate error correction layer for tape storage
US10937453B1 (en) 2020-03-26 2021-03-02 International Business Machines Corporation Magnetic tape device capable of selecting codeword rewrite based on determined threshold
US11133032B1 (en) * 2020-10-20 2021-09-28 Seagate Technology Llc Reader instability detection and recovery
US11561703B2 (en) * 2021-02-10 2023-01-24 International Business Machines Corporation Adaptive tape calibration criteria by number of dead tracks
US11189316B1 (en) * 2021-02-11 2021-11-30 International Business Machines Corporation Adaptive tape calibration criteria by number of stop writes
US11687273B2 (en) * 2021-09-29 2023-06-27 Micron Technology, Inc. Memory controller for managing data and error information

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6539514B1 (en) 1998-05-12 2003-03-25 Hewlett-Packard Company Read while write method in data storage device
US7876516B2 (en) 2009-01-09 2011-01-25 International Business Machines Corporation Rewrite-efficient ECC/interleaving for multi-track recording on magnetic tape
US20120014013A1 (en) 2010-07-19 2012-01-19 Hitachi Global Storage Technologies Netherlands B.V. Disk drive with variable incremented counting of writes to the data tracks for minimizing the effect of far track erasure
US20150015982A1 (en) 2013-07-15 2015-01-15 International Business Machines Corporation Optimum tape layout selection for improved error correction capability

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6958873B2 (en) * 2001-07-31 2005-10-25 Hewlett-Packard Development Company, L.P. Data rewrite control in data transfer and storage apparatus
US7475276B2 (en) * 2004-05-07 2009-01-06 Equallogic, Inc. Method for maintaining track data integrity in magnetic disk storage devices
US8259405B2 (en) * 2009-01-09 2012-09-04 International Business Machines Corporation Rewriting codeword objects to magnetic data tape upon detection of an error
US8495470B2 (en) 2010-08-03 2013-07-23 International Business Machines Corporation Efficient rewrite technique for tape drives
US8869011B2 (en) * 2013-01-03 2014-10-21 International Business Machines Corporation Unequal error protection scheme for headerized sub data sets
US8929014B2 (en) 2013-06-04 2015-01-06 International Business Machines Corporation Tape header protection scheme for use in a tape storage subsystem
US9064541B2 (en) 2013-08-26 2015-06-23 International Business Machines Corporation Tape header format having efficient and robust codeword interleave designation (CWID) protection
US9373357B1 (en) * 2015-03-31 2016-06-21 International Business Machines Corporation Error protection of data stored using variable-length headers
US9311960B1 (en) * 2015-03-31 2016-04-12 International Business Machines Corporation Efficient multichannel data format using variable-length headers
US10379756B2 (en) * 2016-12-15 2019-08-13 International Business Machines Corporation Logical format utilizing lateral encoding of data for storage on magnetic tape
US10418062B2 (en) 2017-12-19 2019-09-17 International Business Machines Corporation Efficient rewrite using larger codeword sizes

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6539514B1 (en) 1998-05-12 2003-03-25 Hewlett-Packard Company Read while write method in data storage device
US7876516B2 (en) 2009-01-09 2011-01-25 International Business Machines Corporation Rewrite-efficient ECC/interleaving for multi-track recording on magnetic tape
US20120014013A1 (en) 2010-07-19 2012-01-19 Hitachi Global Storage Technologies Netherlands B.V. Disk drive with variable incremented counting of writes to the data tracks for minimizing the effect of far track erasure
US20150015982A1 (en) 2013-07-15 2015-01-15 International Business Machines Corporation Optimum tape layout selection for improved error correction capability

Also Published As

Publication number Publication date
CN111492429A (zh) 2020-08-04
US20190311741A1 (en) 2019-10-10
GB2583040A (en) 2020-10-14
US20190189157A1 (en) 2019-06-20
GB2583040B (en) 2021-06-23
GB202009787D0 (en) 2020-08-12
US10418062B2 (en) 2019-09-17
JP2021508138A (ja) 2021-02-25
DE112018005762T5 (de) 2020-07-23
US11031042B2 (en) 2021-06-08
JP6979129B2 (ja) 2021-12-08
CN111492429B (zh) 2021-08-06
WO2019123068A1 (en) 2019-06-27

Similar Documents

Publication Publication Date Title
DE112018005762B4 (de) Neuschreiben von datenobjekten auf speichermedien mit sequenziellem zugriff
DE69831790T2 (de) Verfahren zum Lesen während des Schreibens in einer Datenspeichervorrichtung
DE112016003638B4 (de) Auf eine Decodierung folgende Fehlerprüfung mit Diagnose für Produktcodes
DE3416047C2 (de) Fehlerkorrekturverfahren für digitale Informationsdaten
DE10133595B4 (de) Pufferschaltung, Speicherzugriffsverfahren und Reed-Solomon-Decoder
DE112013005453B4 (de) Rekonstruierende Fehlerbehebungsprozedur (ERP) für mehrerer Datensätze unter Verwendung eines reservierten Puffers
DE2853892A1 (de) Verfahren und schaltungsanordnung zur codierung und decodierung von pruefbits
DE3701763C2 (de) Verfahren zum Codieren und Decodieren digitaler Benutzersymbole sowie Decodieranordnung zur Durchführung des Verfahrens
DE102017129990A1 (de) Logisches format, bei dem laterales codieren genutzt wird, zum speichern von daten auf magnetband
DE102016205281B4 (de) Fehlersicherung von unter verwendung von headern mit variabler länge gespeicherten daten
DE69814465T2 (de) Verfahren und gerät zur datenspeicherung auf magnetischen medien, die fehlerkorrekturkodes enthalten
DE2132565A1 (de) Umsetzer
DE112011101116T5 (de) Two-Level BCH-Codes für Solid-State-Speichereinheiten
DE69832791T2 (de) Verbessertes Datenschreiben auf Datenspeichermedium
DD202084A5 (de) Verfahren zum umkodieren einer folge von datenbits in eine folge von kanalbits, anordnung zum dekodieren der nach diesemverfahren kodierten kanalbits und aufzeichnungstraeger miteiner informationsstruktur
DE3818881A1 (de) Verfahren und anordnung zur verarbeitung von informationsdaten
DE2828219C2 (de)
DE102007007546A1 (de) Fehlerkorrekturcode-Striping
DE19911470B4 (de) Verfahren und Vorrichtung zum Codieren und Decodieren einer Sequenz von digitalen Datenwörtern
DE112020005001T5 (de) Qlc-programmierverfahren mit zurückspeichern von feindaten
DE10037525B4 (de) Verfahren zum Codieren und Decodieren eines Bildsignals
DE2328025C3 (de) Verfahren zum magnetischen Auf&#39; zeichnen von digitalen Informationen In einem Magnetplattenspeicher
DE102013016694B4 (de) Codieren und Decodieren redundanter Bits zum Vornehmen von Anpassungen für Speicherzellen mit Haftfehlern
DE69738544T2 (de) Wiedergabevorrichtung und Aufnahme- und Wiedergabevorrichtung
DE3241950A1 (de) Plattenspieler

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R084 Declaration of willingness to licence
R020 Patent grant now final