DE102016205281B4 - Fehlersicherung von unter verwendung von headern mit variabler länge gespeicherten daten - Google Patents

Fehlersicherung von unter verwendung von headern mit variabler länge gespeicherten daten Download PDF

Info

Publication number
DE102016205281B4
DE102016205281B4 DE102016205281.0A DE102016205281A DE102016205281B4 DE 102016205281 B4 DE102016205281 B4 DE 102016205281B4 DE 102016205281 A DE102016205281 A DE 102016205281A DE 102016205281 B4 DE102016205281 B4 DE 102016205281B4
Authority
DE
Germany
Prior art keywords
cwi
headers
logical
rewritten
length
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
DE102016205281.0A
Other languages
English (en)
Other versions
DE102016205281A1 (de
Inventor
Roy D. Cideciyan
Simeon Furrer
Robert A. Hutchins
Keisuke Tanaka
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 DE102016205281A1 publication Critical patent/DE102016205281A1/de
Application granted granted Critical
Publication of DE102016205281B4 publication Critical patent/DE102016205281B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0682Tape device
    • 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
    • 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
    • G11B5/00817Recording on, or reproducing or erasing from, magnetic tapes, sheets, e.g. cards, or wires magnetic tapes on longitudinal tracks only, e.g. for serpentine format recording

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

System zum Schreiben von Daten, die in logischen Arrays mit Zeilen von variabler Länge organisiert sind, wobei das System aufweist:
einen Controller (138) und eine Logik, die integriert und/oder durch den Controller ausführbar ist, wobei die Logik konfiguriert ist, um:
zu veranlassen, dass Daten, die in eine Mehrzahl von logischen Arrays organisiert sind, in einen ersten Schreibabschnitt (710) eines Magnetdatenträgers (122) als eine Mehrzahl von CWI-4-Gruppen geschrieben werden (1302), wobei jedes erste logische Array (600) Zeilen und Spalten mit Symbolen aufweist, wobei jede Zeile eines ersten logischen Arrays (600) vier verschachtelte C1'-Codewörter mit Header (eine CWI-4 mit Header) aufweist, wobei jede CWI-4-Gruppe M gleichzeitig geschriebene Zeilen eines logischen Arrays mit M entsprechenden ersten Headern (604) aufweist; und
zu veranlassen, dass mindestens einige der Daten in einen Umschreibabschnitt des Magnetdatenträgers als eine oder mehrere umgeschriebene CWI-4-Gruppen geschrieben werden (1304), wobei jede umgeschriebene CWI-4-Gruppe M gleichzeitig umgeschriebene Zeilen von einem oder mehreren logischen Arrays mit M entsprechenden Umschreib-Header (806) aufweist,
wobei eine Länge von mindestens einer umgeschriebenen Zeile, die in dem Umschreibabschnitt des Magnetdatenträgers (122) gespeichert ist, größer ist als mindestens eine von:
einer Länge einer anderen umgeschriebenen Zeile in derselben umgeschriebenen CWI-4-Gruppe; und
einer Länge von mindestens einer Zeile in einer CWI-4-Gruppe, die in dem ersten Schreibabschnitt (710) des Magnetdatenträgers (122) gespeichert ist.

Description

  • HINTERGRUND DER ERFINDUNG
  • Die vorliegende Erfindung betrifft Datenspeicherung und insbesondere Fehlersicherung von unter Verwendung von Headern mit variabler Länge gespeicherten Daten.
  • In modernen Massendatenspeichersystemen wie beispielsweise Magnetband-Speichereinheiten werden Daten, die auf das Band geschrieben werden, durch einen oder mehrere Fehlerkorrekturcodes (ECCs) geschützt. Zur Datenkorrektur werden von dem Band gelesene Daten vom Konzept her in einer großen Matrix angeordnet und durch zwei orthogonale Fehlerkorrekturcodes geschützt, auf die typischerweise als C1 und C2 verwiesen wird. Die große Datenmatrix wird als untergeordnetes Dataset (SDS) bezeichnet. Der Code C1 wird zum Korrigieren der Zeilen des SDS verwendet, und der Code C2 wird zum Korrigieren der Spalten verwendet. Ferner werden Daten in mehrere byteverschachtelte C1-Codewörter in jeder Zeile aufgeteilt, die als Codewort-Verschachtelung (CWI) bezeichnet werden. Die Fehlerkorrekturmethode ist sehr leistungsstark. Damit diese Fehlerkorrekturmethode funktionieren kann, müssen jedoch die Daten in die richtigen Speicherorte in dem SDS positioniert werden. Wenn der Speicherort der Daten nicht bestimmt werden kann, kann die Fehlerkorrekturmethode nicht auf diese Daten angewendet werden. Daher werden die Informationen zum Datenspeicherort in einem Feld gespeichert, das als Header bezeichnet wird.
  • Ferner beansprucht jeder zum Speichern von Informationen zum Datenspeicherort verwendete Header Speicherplatz, der Daten zugewiesen werden könnte, wodurch die Speichereffizienz von Datenspeicherschemata, die Header verwenden, verringert und Overhead zur Speicherung von Daten hinzugefügt wird. CWIs zugehörige Header, die in allen Linear-Tape-Open- (LTO) und Bandlaufwerken auf Unternehmensebene verwendet worden sind, besitzen eine feste Größe. Zum Beispiel wurden 10-Byte-Header in den ersten vier Generationen von LTO-Bandlaufwerken (LTO-1 bis LTO4) verwendet; 12-Byte-Header wurden in den letzten beiden Generationen von LTO-Bandlaufwerken (LTO-5 und LTO-6) verwendet; und es wird erwartet, dass 12-Byte-Header in zukünftigen LTO-Bandlaufwerken (LTO-7) verwendet werden.
  • Formateffizienz ist ein Maß (in Prozent) aller Bits, die auf Magnetband geschrieben werden, die Benutzerdaten entsprechen (im Gegensatz zu Daten, die für Formatierung, Parität usw. verwendet werden). Benutzerdaten werden durch Fehlerkorrektur- und Modulations-Verschlüsselungsprogramme verarbeitet, und Header und Synchronisierungsmuster werden eingefügt, d.h. es gibt vier primäre Quellen, die zu Format-Overhead beitragen: 1) Fehlerkorrektur-Codierung, 2) Modulations-Codierung, 3) Synchronisierungsmuster und 4) Header. Aufgrund dieser Overhead-Quellen beträgt die Speichereffizienz nicht 100 %. Die Formateffizienz von Linear-Tape-Open- (LTO) Bandspeicherung der 6. Generation (LTO-6) beträgt zum Beispiel 78,9 %. Ein beträchtlicher Teil des Format-Overheads ist auf Header mit fester Länge zurückzuführen, die an Zeilen von untergeordneten Datasets (verschachtelte C1-Codewörter) angehängt werden, die auf die Spuren des Bands geschrieben werden. 10-Byte-Header wurden in den ersten vier Generationen von LTO-Bandlaufwerken LTO-1 bis LTO-4 verwendet. 12-Byte-Header wurden in den letzten beiden Generationen von LTO-Bandlaufwerken LTO-5 und LTO-6 verwendet. 12-Byte-Header werden auch in LTO-7-Bandlaufwerken verwendet. 12-Byte-Headern in LTO ist ein ziemlich großer Overhead von 1,3 % zugehörig. Im Fall nicht vorhandener Header würde die Formateffizienz einer LTO-6-Bandspeicherung ungefähr 80 % betragen. Daher werden neue effiziente Formate benötigt, die den Headern zugehörigen Overhead beträchtlich verringern.
  • Nach dem Stand der Technik wird ein grundlegender Datenblock, der auf jede Spur geschrieben ist, als eine Codewort-Verschachtelung (CWI) (Codewort Interleave) bezeichnet, was auf mehr als ein Reed-Solomon- (RS) Codewort verweist, das beim Schreiben auf Magnetband verschachtelt wird. Die kleinste Einheit zum Anhängen oder Überschreiben von Daten auf Magnetband ist ein Dataset. Datasets haben bei einer Bandspeicherung derzeit eine Größe von ungefähr 3 MB bis ungefähr 6 MB. Die Datasets enthalten 32 bis 64 untergeordnete Datasets (SDSs) in der aktuellen Bandtechnologie, wobei jedes SDS N2 Pakete enthält, wobei N2 eine Länge eines C2-Codeworts ist. Ein verschlüsseltes SDS wird gebildet, indem vier spaltenverschachtelte Produkt-Codewörter (CWI-4s) mit einem Header versehen werden und durch Überschreiben von Zeilenparitätssymbolen des Produktcodes nach einer zweiten Zeilenverschlüsselung. Ein verschlüsseltes SDS hat eine feste rechteckige Größe zusammen mit Headern einer festen Größe, die jeder Zeile eines SDS bei derzeitiger Bandspeicherung zugehörig sind.
  • Wie oben erwähnt, enthält eine CWI-4 vier verschachtelte Codewörter. In einem beispielhaften Fall können in einem Codewort 234 Daten-Bytes und 12 Paritäts-Bytes vorhanden sein. Jedes Codewort kann zum Korrigieren von bis zu sechs Fehlern verwendet werden. In diesem beispielhaften Fall ist der Header ein 12-Byte-Feld, das am Anfang von vier zusammen verschachtelten Codewörtern positioniert ist.
  • Wie vorher beschrieben, wird in LTO-5 und LTO-6 ein 12-Byte-Header verwendet, und jeder 12-Byte-Header ist einer 960-Byte-CWI-4 zugehörig, die vier byteverschachtelten 240-Byte-C1-Codewörtern entspricht, die 230 Bytes von Informationen enthalten. Für die folgenden Berechnungen wird angenommen, dass C1-Codewörter 228 Bytes von Informationen enthalten, aber mehr oder weniger Bytes von Informationen enthalten können, wenn sie in den folgenden Ausführungsformen verwendet werden.
  • Ein der Verwendung von 12-Byte-Headern zugehöriger Overhead beträgt 1,315 % in diesen Datenspeicherformaten mit Headern einer festen Länge. In einer 20-TB-Kassette können 263 GB von zusätzlichen Benutzerdaten gespeichert werden, wenn alle Header beseitigt werden, d.h. die Benutzerkapazität könnte durch Beseitigung der Header von 20 TB auf 20.263 TB erhöht werden.
  • Im Kontext des vorliegenden Konzeptes sind folgende Dokument bekannt: Das Dokument US 2014/0 355 151 A1 beschreibt ein System zur Integration von Daten- und Header-Schutz für ein Magnetband mit vier ineinander verwobenen (interwoven) C1 Codewörtern (CWI-4). Das Dokument US 2009/0177947 A1 beschreibt ein Schreibsystem zum Schreiben von Datensätzen auf ein Aufzeichenmedium (Magnetband), sodass jeder Datensatz in seiner Schreibfolge auf dem Aufzeichenmedium identifiziert werden kann.
  • Angesicht der bekannten Headerformate ist klar, dass aufgrund von Overhead-Quellen die Schreibeeffzient auf Bandmedien nicht 100% ist und der Format-Overhead die Tendenz hat, von Generation zu Generation von LTO-Bändern (Linear Tape Open) werden aufgabengemäß neue Formate benötigt, die den Haedern zugehörigen Oveahead betröchtlich verringern.
  • KURZDARSTELLUNG
  • In einer Ausführungsform enthält ein System zum Schreiben von Daten, die in logischen Arrays mit Zeilen von variabler Länge organisiert sind, einen Controller und eine Logik, die integriert und/oder durch den Controller ausführbar ist, wobei die Logik so konfiguriert ist, dass sie veranlasst, dass in eine Mehrzahl von logischen Arrays organisierte Daten in einen ersten Schreibabschnitt eines Magnetdatenträgers als eine Mehrzahl von CWI-4-Gruppen geschrieben werden, wobei jedes erste logische Array Zeilen und Spalten mit Symbolen enthält, wobei jede Zeile eines ersten logischen Arrays vier verschachtelte C1'-Codewörter mit Header enthält (eine CWI-4 mit Header), wobei jede CWI-4-Gruppe M gleichzeitig geschriebene Zeilen eines logischen Arrays mit M entsprechenden ersten Headern und Veranlassen enthält, dass mindestens einige der Daten in einen Umschreibabschnitt des Magnetdatenträgers als eine oder mehrere umgeschriebene CWI-4-Gruppen geschrieben werden, wobei jede umgeschriebene CWI-4-Gruppe M gleichzeitig umgeschriebene Zeilen von einem oder mehreren logischen Arrays mit M entsprechenden Umschreib-Headern enthält, wobei eine Länge von mindestens einer umgeschriebenen Zeile, die in dem Umschreibabschnitt des Magnetdatenträgers gespeichert ist, größer ist als mindestens eine von: einer Länge einer anderen umgeschriebenen Zeile in derselben umgeschriebenen CWI-4-Gruppe und einer Länge von mindestens einer Zeile in einer CWI-4-Gruppe, die in dem ersten Schreibabschnitt des Magnetdatenträgers gespeichert ist.
  • In einer weiteren Ausführungsform enthält ein Verfahren zum Schreiben von Daten, die in logischen Arrays mit Zeilen von variabler Länge organisiert sind, ein Schreiben von Daten, die in eine Mehrzahl von logischen Arrays organisiert sind, in einen ersten Schreibabschnitt eines Magnetdatenträgers als eine Mehrzahl von CWI-4-Gruppen, wobei jedes erste logische Array Zeilen und Spalten mit Symbolen enthält, wobei jede Zeile eines ersten logischen Arrays vier verschachtelte C1'-Codewörter mit Header enthält (eine CWI-4 mit Header), wobei jede CWI-4-Gruppe M gleichzeitig geschriebene Zeilen eines logischen Arrays mit M entsprechenden ersten Headern und Schreiben von mindestens einigen der Daten in einen Umschreibabschnitt des Magnetdatenträgers als eine oder mehrere umgeschriebene CWI-4-Gruppen enthält, wobei jede umgeschriebene CWI-4-Gruppe M gleichzeitig umgeschriebene Zeilen von einem oder mehreren logischen Arrays mit M entsprechenden Umschreib-Headern enthält, wobei eine Länge von mindestens einer umgeschriebenen Zeile, die in dem Umschreibabschnitt des Magnetdatenträgers gespeichert ist, größer ist als mindestens eine von: einer Länge einer anderen umgeschriebenen Zeile in derselben umgeschriebenen CWI-4-Gruppe und einer Länge von mindestens einer Zeile in einer CWI-4-Gruppe, die in dem ersten Schreibabschnitt des Magnetdatenträgers gespeichert ist.
  • Gemäß einer weiteren Ausführungsform enthält ein Computerprogrammprodukt zum Schreiben von Daten, die in logischen Arrays mit Zeilen von variabler Länge organisiert sind, ein computerlesbares Speichermedium mit darauf verkörperten Programmanweisungen, wobei die Programmanweisungen durch einen Prozessor ausführbar sind, um den Prozessor zu veranlassen, ein Verfahren auszuführen, das enthält: durch den Prozessor Schreiben von Daten, die in eine Mehrzahl von logischen Arrays organisiert sind, in einen ersten Schreibabschnitt eines Magnetdatenträgers als eine Mehrzahl von CWI-4-Gruppen, wobei jedes erste logische Array Zeilen und Spalten mit Symbolen enthält, wobei jede Zeile eines ersten logischen Arrays vier verschachtelte C1'-Codewörter mit Header enthält (eine CWI-4 mit Header), wobei jede CWI-4-Gruppe M gleichzeitig geschriebene Zeilen eines logischen Arrays mit M entsprechenden ersten Headern enthält und Schreiben von mindestens einigen der Daten durch den Prozessor in einen Umschreibabschnitt des Magnetdatenträgers als eine oder mehrere umgeschriebene CWI-4-Gruppen, wobei jede umgeschriebene CWI-4-Gruppe M gleichzeitig umgeschriebene Zeilen von einem oder mehreren logischen Arrays mit M entsprechenden Umschreib-Headern enthält, wobei eine Länge von mindestens einer umgeschriebenen Zeile, die in dem Umschreibabschnitt des Magnetdatenträgers gespeichert ist, größer ist als mindestens eine von: einer Länge einer anderen umgeschriebenen Zeile in derselben umgeschriebenen CWI-4-Gruppe und einer Länge von mindestens einer Zeile in einer CWI-4-Gruppe, die in dem ersten Schreibabschnitt des Magnetdatenträgers gespeichert ist.
  • Weitere Aspekte und Ausführungsformen der vorliegenden Erfindung werden aus der folgenden ausführlichen Beschreibung offenkundig, die in Verbindung mit den Zeichnungen die Grundgedanken der Erfindung beispielhaft veranschaulichen.
  • Ohne die Header ist es allerdings nicht möglich zu bestimmen, wohin entschlüsselte Informationen in jeder CWI-4 gehören. Daher können in einer Ausführungsform Header von variabler Länge verwendet werden. Diese Header-Größe mit variierendem Speicherplatz ermöglicht eine Erhöhung der Bandkassettenkapazität um bis zu 1,311 % (262 GB in einer 20-TB-Kassette), wodurch fast der gesamte dem Einschluss von Headern zugehörige Overhead beseitigt wird.
  • Dies ist möglich, weil die Daten-Speicherortinformationen (die hierin als CWI-4-Angabe bezeichnet werden) in nur 2 Bytes jedes Headers gespeichert werden. Wenn in dem Header ein Fehler auftritt, und ein nicht korrigierbarer Fehler in einem der Codewörter auftritt, die die Bits der CWI-4-Angabe enthalten, geht die gesamte CWI-4 verloren. Dies geschieht, weil es nicht möglich ist, die Daten in dem SDS korrekt zu positionieren. Drei Codewörter können korrekt sein und keinerlei Fehler enthalten, aber da die Bits der CWI-4-Angabe verloren gegangen sind, können sie in dem SDS nicht korrekt positioniert werden.
  • In einer Ausführungsform können Header-Größen mit variierendem Speicherplatz verwendet werden, die fast den gesamten Overhead beseitigen, der Headern zugehörig ist. Die Speicherung von ungefähr 175 GB bis ungefähr 262 GB von zusätzlichen Benutzerdaten ist in einer 20-TB-Kassette möglich, d.h. die Kassettenkapazität kann von ungefähr 20 TB auf ungefähr 20,175 TB bzw. ungefähr 20,262 TB erhöht werden. Die Header-Größen mit variierendem Speicherplatz erhöhen die Kassettenkapazität um bis zu ungefähr 1,3 %, wodurch fast der gesamte Overhead beseitigt wird, der Headern zugehörig ist. Dargelegt werden verschiedene Ausführungsformen dieser Header-Größen mit variierendem Speicherplatz, die für unterbrochene Datasets verantwortlich sind. Ein effizientes Mehrkanal-Datenformat, das diese Header-Größen mit variierendem Speicherplatz verwendet, wird durch die Verwendung von effizientem Schutz der Header-Größen mit variierendem Speicherplatz in einem Dataset verbessert. Einige der hierin beschriebenen Ausführungsformen verwenden byteverschachtelte Codewörter von variabler Länge, nicht-rechteckige verschlüsselte logische SDS-Arrays, umgeschriebene SDS-Zeilen, die eine andere Größe haben können als SDS-Zeilen, die während des ersten Schreibens eines Datasets aufgezeichnet wurden, und SDSs von variabler Größe, wobei eine Größe eines verschlüsselten SDS während der Schreibzeit bestimmt wird, nicht im Voraus.
  • Figurenliste
    • 1 veranschaulicht ein vereinfachtes Bandlaufwerk eines Datenspeichersystems auf Bandgrundlage gemäß einer Ausführungsform.
    • 2A bis 2D zeigen verschiedene Header, die einem Datenspeicherschema einer Vier-Codewort-Verschachtelung (CWI-4) zugehörig sind.
    • 3 zeigt ein CWI-4-Headerlayout gemäß einer Ausführungsform.
    • 4 zeigt ein Headerformat gemäß einer Ausführungsform.
    • 5 zeigt ein verschlüsseltes logisches SDS-Array nach einem ersten Schreiben auf ein Magnetband gemäß einer Ausführungsform.
    • 6 zeigt eine Serie von logischen Arrays in verschiedenen Verschlüsselungsstufen gemäß einer Ausführungsform.
    • 7A zeigt ein logisches Array zum Organisieren von Daten mit CWI-4s von variabler Länge und mit Headern gemäß einer Ausführungsform.
    • 7B zeigt logische Arrays zum Organisieren von Daten unter Verwendung von Zeilen von variabler Länge gemäß einer Ausführungsform.
    • 8A zeigt ein logisches Array zum Organisieren von Daten mit CWI-4s von variabler Länge und mit Headern gemäß einer Ausführungsform.
    • 8B zeigt logische Arrays zum Organisieren von Daten unter Verwendung von Zeilen von variabler Länge gemäß einer Ausführungsform.
    • 9A zeigt CWI-4-Gruppen von variabler Länge und mit Header in einem auf Band gespeicherten Dataset gemäß einer Ausführungsform.
    • 9B zeigt logische Arrays zum Organisieren von Daten unter Verwendung von Zeilen von variabler Länge gemäß einer Ausführungsform.
    • 10A zeigt CWI-4-Gruppen von variabler Länge und mit Header in einem auf Band gespeicherten Dataset gemäß einer Ausführungsform.
    • 10B zeigt logische Arrays zum Organisieren von Daten unter Verwendung von Zeilen von variabler Länge gemäß einer Ausführungsform.
    • 11A zeigt CWI-4-Gruppen von variabler Länge und mit Header in einem auf Band gespeicherten Dataset gemäß einer Ausführungsform.
    • 11B zeigt logische Arrays zum Organisieren von Daten unter Verwendung von Zeilen von variabler Länge gemäß einer Ausführungsform.
    • 12A zeigt CWI-4-Gruppen von variabler Länge und mit Header in einem auf Band gespeicherten Dataset gemäß einer Ausführungsform.
    • 12B zeigt logische Arrays zum Organisieren von Daten unter Verwendung von Zeilen von variabler Länge gemäß einer Ausführungsform.
    • 13 ist ein Ablaufplan eines Verfahrens gemäß einer Ausführungsform.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Die folgende Beschreibung wird zum Zweck einer Veranschaulichung der allgemeinen Grundgedanken der vorliegenden Erfindung vorgenommen und soll die hierin beanspruchten erfinderischen Konzepte keinesfalls einschränken. Ferner können bestimmte hierin beschriebene Funktionen in Kombination mit anderen beschriebenen Funktionen in jeder der verschiedenen möglichen Kombinationen und Umsetzungen verwendet werden.
  • Sofern hierin nicht anderweitig speziell definiert, sind alle Begriffe so weitgefasst wie möglich zu interpretieren, einschließlich Bedeutungen, die durch die Spezifikationen impliziert werden sowie Bedeutungen, die vom Fachmann verstanden werden und/oder wie in Wörterbüchern, Abhandlungen usw. definiert.
  • Außerdem ist anzumerken, wie in der Spezifikation und den Ansprüchen im Anhang verwendet, dass die Singularformen „ein“, „eine“ und „der/die/das“ auch die Pluralformen mit einschließen, es sei denn, dies wird anders angegeben. Es versteht sich des Weiteren, dass die Begriffe „weist auf“ und/oder „aufweisend“ bei Verwendung in dieser Patentschrift das Vorhandensein ausgewiesener Funktionen, Ganzzahlen, Schritte, Operationen, Elemente und/oder Komponenten angeben, das Vorhandensein oder die Hinzufügung von einem oder mehreren anderen Funktionen, Ganzzahlen, Schritten, Operationen, Elementen, Komponenten und/oder Gruppen davon aber nicht ausschließen.
  • 1 veranschaulicht ein vereinfachtes Bandlaufwerk 100 eines Datenspeichersystems auf Bandgrundlage gemäß verschiedenen Ausführungsformen, das verwendet werden kann. Zwar wird eine bestimmte Umsetzung eines Bandlaufwerks in 1 gezeigt, doch ist anzumerken, dass die hierin beschriebenen Ausführungsformen im Kontext jedes Typs eines Bandlaufwerksystems umgesetzt werden können.
  • Wie gezeigt, werden eine Bandbereitstellungskassette 120 und eine Aufnahmespule 121 zum Aufnehmen eines Bands 122 bereitgestellt. Eine oder mehrere der Spulen können einen Bestandteil einer Wechselkassette bilden und sind nicht notwendigerweise Bestandteil des Bandlaufwerks 100. Das Bandlaufwerk 100, wie beispielsweise in 1 veranschaulicht, kann ferner einen (oder mehrere) Laufwerkmotor(en) zum Antreiben der Bandbereitstellungskassette 120 und der Aufnahmespule 121 enthalten, um das Band 122 über einen Magnetkopf 126 jedes Typs zu bewegen.
  • Führungen 125 führen das Band 122 über den Magnetkopf 126. Ein derartiger Magnetkopf 126 ist wiederum mit einer Controller-Baugruppe 128 über ein Kabel 130 verbunden. Der Controller 128 weist typischerweise einen Servokanal 134 und einen Datenkanal 136 auf, der eine Datenflussverarbeitung enthält. Sie steuert Spulenbewegung (nicht in 1 gezeigt) und Kopffunktionen wie Spurverfolgung, Schreiben, Lesen usw. Das Kabel 130 kann Lese-/Schreib-Schaltkreise zum Übertragen von Daten an den Kopf 126 zur Aufzeichnung auf dem Band 122 und zum Empfangen von Daten enthalten, die von dem Kopf 126 von dem Band 122 gelesen werden. Ein Stellantrieb 132 bewegt den Kopf 126 zu einer Gruppe von Spuren auf dem Band 122, um eine Lese- oder eine Schreiboperation auszuführen.
  • Eine Schnittstelle kann ebenfalls für einen Datenaustausch zwischen dem Bandlaufwerk 100 und einem Host (integriert oder extern) zum Senden und Empfangen der Daten und zum Steuern des Betriebs des Bandlaufwerks 100 und Übermitteln des Zustands des Bandlaufwerks 100 an den Host bereitgestellt werden, wie von einem Fachmann verstanden würde.
  • Ein Fehlerkorrekturcode (ECC) wird bei einer Datenspeicherung zum Erzielen von sehr niedrigen Bitfehlerraten verwendet, z.B. werden Magnetband-Speicherprodukte so ausgelegt, dass sie Bitfehlerraten im Bereich von 1×10-17 bis 1×10-19 unter normalen Betriebsbedingungen sicherstellen. Lineare Blockcodes wie Reed-Solomon- (RD) Codes und Low-Density Parity Check- (LDPC) Codes waren im Allgemeinen bevorzugte ECC-Schemata, die in Datenspeicherprodukten verwendet wurden.
  • In 2A wird ein Dataset-Layout 200 mit M gleichzeitig geschriebenen Spuren gezeigt, auf die eine Folge von synchronisierten Codewort-Objekten (SCO) in jeder Spur geschrieben wird. M entspricht auch der Anzahl von Kanälen eines Bandlaufwerks (z.B. für LTO-5 und LTO-6 ist M = 16; für Bandlaufwerke auf Unternehmensebene ist M = 32). Jedes Dataset beginnt mit einem Datentrennsequenz-Feld (DSS) und enthält die verschiedenen Felder für Oszillatoren mit veränderbarer Frequenz (VFO1, VFO2) und SCO-Felder bis zum nächsten DSS-Feld. 2B zeigt ein SCO-Format 202 gemäß dem Stand der Technik. In diesem Layout gibt es sechzehn gleichzeitig geschriebene Spuren (M = 16), und ein CWI-4-Header hat 12 Bytes, wobei jedes Codewort in einem CWI-4 240 Bytes hat, wobei 4 Codewörter insgesamt 960 Bytes haben. 2C zeigt ein anderes SCO-Format 204 gemäß dem Stand der Technik. In diesem Layout gibt es zweiunddreißig gleichzeitig geschriebene Spuren (M = 32), und der Header ist in die CWI-4 eingebettet. Jedes Codewort in einer CWI-4 hat 249 Bytes, die vier Codewörter in einer CWI-4 haben insgesamt also 996 Bytes.
  • Unter Bezugnahme auf 2D wird in einer Ausführungsform ein 12-Byte-Header 206 gezeigt, der einer CWI-4 zugehörig ist. Wie gezeigt, kann für die Bytes 0 bis 11 (insgesamt 12 Bytes) die CWI-4-Kennung an den Bytes 0 bis 5 (6 Bytes) positioniert werden, der Schreibdurchgang an den Bytes 6 bis 9 (4 Bytes), und die Header-Parität an den Bytes 10 bis 11 (2 Bytes). Dies ist eine Ausführungsform eines Layouts für einen CWI-4-Header. Andere mögliche Byte-Verteilungen sind ebenfalls möglich, wie der Fachmann verstehen würde.
  • Jeder in einer CWI-4 enthaltene Header kann in verschiedenen Ansätzen an einen Anfang, ein Ende oder auf irgendeine andere Art an seine entsprechende CWI-4 angehängt werden. In alternativen Ansätzen kann ein in einer CWI-4 enthaltener Header in den C1-Codewörtern eingebettet sein. Jeder dieser Ansätze kann in dem Kontext der verschiedenen hierin beschriebenen Ausführungsformen verwendet werden.
  • In einer Ausführungsform kann eine CWI-4 vier verschachtelte C1-Codewörter enthalten, was eine Zeile eines untergeordneten Datasets darstellt. Ferner kann eine CWI-4-Gruppe, die unter Verwendung eines 16-Kanal-Magnetkopfs (der gleichzeitig 16 Spuren schreiben kann) auf einen Magnetdatenträger geschrieben wurde, 16 CWI-4s enthalten, die gleichzeitig auf den Magnetdatenträger geschrieben werden, eine CWI-4 für jede der Spuren, auf die gleichzeitig geschrieben wird (was für LTO-3, LTO-4, LTO-5 und LTO-6 der Fall ist).
  • In einer weiteren Ausführungsform kann eine CWI-4-Gruppe, die unter Verwendung eines 32-Kanal-Magnetkopfs auf einen Magnetdatenträger geschrieben wurde, 32 CWI-4s enthalten, die gleichzeitig auf den Magnetdatenträger geschrieben werden, eine CWI-4 für jede der Spuren, auf die gleichzeitig geschrieben wird (was für Bandlaufwerke auf Unternehmensebene der Fall ist).
  • Zum Beispiel kann ein Dataset in einer Ausführungsform 384 CWI-4-Gruppen enthalten. Das Dataset wird anschließend als 384 CWI-4-Gruppen geschrieben, wobei jede CWI-4-Gruppe eine feste Anzahl M, (8, 16, 32, 64 usw.) von CWI-4s enthält, die gleichzeitig auf M Spuren eines Magnetdatenträgers geschrieben werden.
  • In einer weiteren Ausführungsform kann ein Dataset 192 CWI-4-Gruppen enthalten. Das Dataset wird anschließend als 192 CWI-4-Gruppen geschrieben, wobei jede CWI-4-Gruppe eine feste Anzahl M, (8, 16, 32, 64 usw.) von CWI-4s enthält, die gleichzeitig auf M Spuren eines Magnetdatenträgers geschrieben werden.
  • Natürlich kann jede Anzahl von CWI-4-Gruppen in einem Dataset enthalten sein, und auf jeder Anzahl von Spuren können CWI-4s gleichzeitig auf den Magnetdatenträger geschrieben werden in einem Ansatz, der wie folgt beschrieben werden kann. P CWI-4-Gruppen können in einem Dataset enthalten sein, und M CWI-4s können gleichzeitig über M Kanäle auf M Spuren eines Magnetdatenträgers geschrieben werden, wobei P > M, und wobei M und P jeweils einen Wert von Modulo 8 haben. Ferner kann Modulo 8 jedes Vielfache von 8 sein, wie beispielsweise 16, 32, 64, 192, 384, 768 usw. Außerdem kann P gleich zweimal N2 sein, wobei N2 die Länge (in Symbolen) von C2-Codewörtern ist, die in dem Verschlüsselungsschema verwendet werden. Ein Symbol kann eine Länge von einem oder mehreren Bits haben, wie beispielsweise 1 Byte.
  • In einer Ausführungsform kann N2 ein ganzzahliges Vielfaches (2, 3, 4 usw.) einer Gesamtanzahl von gleichzeitig beschriebenen (oder ausgelesenen) Kanälen M sein (z.B. M = 16 für LTO-6 und M = 32 in Bandlaufwerken auf Unternehmensebene). Daher kann P in einigen Ansätzen ein Vielfaches von M sein.
  • Unter folgender Bezugnahme auf 3 wird ein CWI-4-Headerlayout 300 gemäß einer Ausführungsform unter der Annahme von 32 Kanälen (Spuren) gezeigt. Andere Anzahlen von Kanälen sind ebenfalls möglich, wie beispielsweise 8 Kanäle, 16 Kanäle, 64 Kanäle usw. Eine CWI-4-Gruppe weist eine feste Anzahl M von gleichzeitig geschriebenen CWI-4s auf, wobei die feste Anzahl gleich der Anzahl von Kanälen im Schreiber ist. Das CWI-4-Headerlayout 300 enthält viele verschiedene Felder. Jedes Feld wird im Folgenden gemäß verschiedenen Ausführungsformen separat beschrieben. Das gezeigte CWI-4-Headerlayout 300 ist nicht das einzige mögliche Layout für einen CWI-4-Header, und die hierin beschriebenen Techniken, Systeme und Verfahren können für andere CWI-4-Headerlayouts gelten, die nicht speziell gezeigt sind.
  • In dem CWI-4-Headerlayout 300 wird das Amble-Kennzeichen (AF) für die Angabe verwendet, ob die CWI-4 eine Amble-CWI-4 oder eine Daten-CWI-4 ist und in Byte 0 (H0) enthalten ist. In einem Ansatz kann das AF auf EINS gesetzt werden, wenn die CIW-4 eine Amble-CWI-4 ist, und auf NULL, wenn die CWI-4 eine Daten-CWI-4 ist. Wenn die letzte CWI-4-Gruppe eines Datasets auf Band geschrieben ist, sind möglicherweise keine untergeordneten Datasets bereit, um auf Band geschrieben zu werden. Aufgrund der Anforderungen der Read-While-Write- (Lesen während des Schreibens) Latenz kann die Schreibeinheit erst bestimmen, ob das Dataset vollständig ist, wenn die letzte CWI-4-Gruppe überprüft worden ist. In dem Intervall zwischen dem Schreiben der letzten CWI-4-Gruppe und deren Überprüfung auf dem Band müssen weitere CWI-4-Gruppen geschrieben werden. In diesem Fall kann das Schreiblaufwerk eines des Folgenden ausführen: 1) Wiederholen von CWI-4-Gruppen ab dem Ende des letzten Datasets bis überprüft wurde, dass eine gute Kopie von jeder CWI-4 in dem Dataset vorhanden ist, oder 2) Schreiben von Amble-CWI-4-Gruppen, bis die Überprüfung abgeschlossen ist. Alle CWI-4s in einer Amble-CWI-4-Gruppe sind Amble-CWI-4s. Amble- und Daten-CWI-4s sind in einer CWI-4-Gruppe typischerweise nicht gemischt. Ferner sind alle zweiunddreißig AF-Felder (1 Bit) in einer CWI-4-Gruppe dieselben.
  • Das Feld Adjacent Wrap Toggle (AWT) (Umschalten auf nächsten Umlauf) wird für die Angabe verwendet, für welchen Umlauf die CWI-4 verwendet wird, und ist auch in Byte 0 (H0) enthalten. Das AWT-Feld kann auf das zweite niedrigstwertige Bit der Umlaufnummer gesetzt werden, z.B. NULL für die Umläufe 0, 1, 4, 5 usw. und EINS für die Umläufe 2, 3, 6, 7 usw. Außerdem sind alle zweiunddreißig AWT-Felder (1 Bit) in einer CWI-4-Gruppe dieselben.
  • Das Feld Data Set ID Fragment (DSIF) (Dataset-ID-Fragment) enthält die sechs niedrigstwertigen Bits der Dataset-Nummer und ist ebenfalls in Byte 0 (H0) enthalten. Ferner sind alle zweiunddreißig DSIF-Felder (6 Bits) in einer CWI-4-Gruppe dieselben.
  • Die Absolute Codeword Object Set Sequence Number (ACN) (absolute Codewort-Objektgruppenfolgenummer) einer Codewort-Objektgruppe ist um eins größer als die ACN der Codewort-Objektgruppe, die unmittelbar davor auf Band geschrieben wurde, oder ist NULL, wenn die vorher geschriebene 11-Bit-ACN 2047 ist. Die ACN ist in Byte 1 (H1) und Byte 2 (H2) enthalten. Die ACN ist in allen CWI-4-Headern in der Codewort-Objektgruppe dieselbe. Die ACN wird z.B. zur Fehlerbehebung, Fehleranalyse usw. verwendet. Außerdem sind alle zweiunddreißig ACN-Felder (11 Bits) in einer CWI-4-Gruppe dieselben.
  • Das Feld CWI-4 Designation (CWID) (CWI-4-Bestimmungsort) gibt den Speicherort einer CWI-4 in einem Dataset an und ist in Byte 2 (H2) und Byte 3 (H3) enthalten. Die Reihenfolge der zuerst geschriebenen CWIDs in einer CWI-4-Gruppe wird während eines Lesevorgangs bekannt. Daher kann eine Header-Interpolation während des Lesevorgangs zum Erfassen von fehlerhaften CWI-4-Bestimmungsorten verwendet werden.
  • Gemäß einem CWI-4-Umschreibschema ist die Reihenfolge von umgeschriebenen CWIDs in einer CWI-4-Gruppe während des Lesevorgangs nicht bekannt. Daher kann die Header-Interpolation zum Entschlüsseln von CWI-4-Bestimmungsorten von umgeschriebenen CWI-4s nicht verwendet werden. Außerdem ändern sich die CWID-Felder (13 Bits) in einer CWI-4-Gruppe, und daher wäre ein Header-Format, das einen verbesserten Schutz aller CWIDs bereitstellt, von Vorteil, um eine Positionierung der entschlüsselten Daten in der CWI-4-Gruppe zu ermöglichen.
  • Da Fehler in CWI-4s in dem ersten Schreibabschnitt erfasst werden, die aus einer oder mehreren verschiedenen CWI-4-Gruppen stammen können, kann gemäß hierin offenbarten Ausführungsformen eine umgeschriebene CWI-4-Gruppe umgeschriebene CWI-4s enthalten, die ursprünglich in einer oder mehreren verschiedenen CWI-4-Gruppen in dem ersten Schreibabschnitt geschrieben wurden.
  • In verschiedenen Bandformaten kann die Größe des CWID variieren. Zum Beispiel kann in einigen Bandformaten das CWID eine Länge von 12 Bits haben, in anderen Formaten eine Länge von 13 Bits. Selbstverständlich sind auch andere Längen möglich und können in anderen hierin beschriebenen Strukturen und Schemata belegt werden. Zum Beispiel nimmt die Größe des CWID in zukünftigen Generationen von Bandlaufwerken wahrscheinlich zu, und die hierin beschriebenen Ausführungsformen können geändert werden, um diese erhöhte CWID-Größe zu berücksichtigen, einschließlich CWIDs mit einer Längengröße von 14 Bits, 15 Bits und 16 Bits und mehr.
  • Das Feld Reserved Bits (RB) (Reservierte Bits) ist für zukünftige Verwendung und Erweiterung reserviert und kann auf NULLEN gesetzt werden (um es für zukünftige Verwendung zu reservieren).). Das RB-Feld ist in Byte 4 (H4) und Byte 5 (H5) enthalten. Alle RB-Felder (15 Bits) in einer CWI-4-Gruppe sind dieselben. Das Kennzeichen Rewritten (RF) (Umgeschrieben) ist in Byte 5 (H5) enthalten und wird für die Angabe verwendet, ob die CWI-4 umgeschrieben ist, und kann für die erste geschriebene Instanz des CWI-4 in dem Dataset auf NULL gesetzt werden. Wenn die CWI-4 aus irgendeinem Grund umgeschrieben wird, wenn zum Beispiel ein Fehler während des Read-While-Write-Vorgangs erfasst wird, wird dieses Kennzeichen in jeder umgeschriebenen Instanz des CWI-4 auf EINS gesetzt. Dieses Kennzeichen wird bei Austausch ignoriert, und alle zweiunddreißig RF-Felder (1 Bit) in einer CWI-4-Gruppe sind dieselben.
  • Das Feld Write Pass Identifier (WPI) (Schreibdurchgang-Kennung), das in 3 nicht gezeigt ist, kann in 4 Bytes (Byte 6 bis 9: H6, H7, H8 und H9) enthalten sein. Das WPI-Feld entspricht dem Schreibdurchgang, in dem das Dataset geschrieben wurde. Der Inhalt dieses Felds ist derselbe wie der Wert des Bandschreibdurchgangs in der Data Set Information Table (DSIT) (Dataset-Informationentabelle) für das Dataset, zu dem die CWI-4s gehören, ausgenommen nach einem unterbrochenen Dataset. DSIT ist eine besondere CWI-4 in einem Dataset. Die Nutzdaten der DSIT beschreiben den Inhalt des Datasets. Alle zweiunddreißig WPI-Felder (32 Bits) in einer zu schreibenden CWI-4-Gruppe sind dieselben.
  • Allerdings sind nicht alle zweiunddreißig WPI-Felder (32 Bits) in einer CWI-4-Gruppe notwendigerweise während des Lesens einer CWI-4-Gruppen vom Band dieselben. Dies tritt in Reaktion auf Fehler ein, die während des Leseprozesses auftreten, und in Reaktion auf ein Lesen alter Daten wegen eines defekten Schreibers oder irgendeines anderen Defekts. Wenn sich eine WPI in einer CWI-4 von den umgebenden unterscheidet, kann sie zum Bestimmen verwendet werden, dass ein fehlerhafter Schreiber versucht, Daten auf das Band zu schreiben, da Daten aus einem vorherigen Schreibdurchgang an einem bestimmten Ort, der dem fehlerhaften Schreiber entspricht, auf dem Band bleiben.
  • Das Feld Header Parity (Header-Parität), das in 3 ebenfalls nicht gezeigt ist, ist in 2 Bytes enthalten. Das Feld Header-Parität wird unter Verwendung eines RS-Codes generiert. Die 2-Byte-Header-Parität wird zum Erfassen von Fehlern verwendet, die beim Lesen der 12-Byte-Header aufgetreten sind.
  • Ein Header-Format, das in einigen herkömmlichen Bandformaten verwendet wird, wird in 4 gezeigt. Wie gezeigt, sind 32 Header in einer CWI-4-Gruppe enthalten, angegeben als M = 32 Zeilen. Die CWID-Felder haben eine Länge von 13 Bit (b), und die Felder der Header-Parität haben eine Länge von 16 b, wobei jedes Feld eindeutige Daten in einer CWI-4-Gruppe speichern kann, z.B. sind sie nicht dieselben für jede M Zeilen. Die CWID-Felder sind dem Empfänger jedoch bekannt, weil der Empfänger das Layout des Bands kennt, wenn das Dataset erstmalig geschrieben wird.
  • Die Felder RB und RF haben eine Länge von 16 b und sind in einer CWI-4-Gruppe dieselben. Die RB-Felder sind für zukünftige Verwendung reserviert, und die RF-Felder werden typischerweise beim Austausch ignoriert. Die WPI-Felder haben eine Länge von 32 b und sind in jeder CWI-4-Gruppe dieselben. Das WPI-Feld wird zum Erfassen von fehlerhaften Schreibern und zum Vermeiden des Sendens alter Daten an einen SDRAM verwendet, wenn ein fehlerhafter Schreiber erfasst wird. Die Felder AF, AWT, DSIF und ACN haben eine Länge von 19 b und sind in einer CWI-4-Gruppe dieselben.
  • Unter Bezugnahme auf 5 wird ein verschlüsseltes logisches SDS-Array 500 nach einem ersten Schreiben auf ein Magnetband gemäß einer Ausführungsform gezeigt. In einer Ausführungsform kann ein Read-While-Write-Vorgang verwendet werden, um auf Fehler zu prüfen, während die Daten auf das Magnetband geschrieben werden. In diesem Beispiel bestehen SDS-Zeile #2 und SDS-Zeile #M-1 einen Zeilenentschlüsselungstest nach einem ersten Schreiben nicht, was auf einen Fehler beim Schreiben, Lesen oder bei beidem zurückzuführen sein kann (z.B. es sind zu viele Fehler in der Zeile vorhanden, wenn ein Lesen der Zeile von dem Magnetband versucht wird). Wenn in einer Ausführungsform die Fehlerkorrekturfähigkeit des Zeilencodes mit t1 angenommen wird, schlägt der Zeilenentschlüsselungstest fehl, wenn mehr als f Fehler vorhanden sind, wobei fein Auslegungsparameter und f < t1 ist. Wenn nach dem ersten Schreiben zu viele Fehler vorhanden sind, werden die betroffenen Zeilen in dem Umschreibabschnitt des Magnetbands umgeschrieben. Die anderen Zeilen des SDS werden jedoch nicht umgeschrieben, und daher ergibt sich das verschlüsselte logische SDS-Array 502 in einer Ausführungsform aus den SDS-Zeilen #2 und #M-1, die in dem Umschreibabschnitt des Magnetbands umgeschrieben werden.
  • 6 zeigt eine Serie von logischen Arrays in verschiedenen Verschlüsselungsstufen gemäß einer Ausführungsform. Ein Daten-Array kann in Zeilen und Spalten organisiert sein, die dann unter Verwendung eines Zeilencodes (eines C1-Codes) zeilenverschlüsselt werden können, um ein zeilenverschlüsseltes logisches Array 600 zu erzeugen, wobei an jede Zeile in dem logischen Array eine Zeilen- (C1) Parität angehängt wird. Danach kann jede Spalte des zeilenverschlüsselten logischen Arrays 600 unter Verwendung eines Spaltencodes (C2-Code) spaltenverschlüsselt werden, um ein zeilen- und spaltenverschlüsseltes logisches Array 602 zu erzeugen. In dem zeilen- und spaltenverschlüsselten Array 602 hat jede Zeile eine Zeilen- (C1) Parität wie vorher, und an jede Spalte wird eine Spalten- (C2) Parität angehängt, einschließlich der Zeilenparitätsabschnitte jeder Zeile. Als Nächstes kann ein Header 606 an eine oder mehrere Zeilen des zeilen- und spaltenverschlüsselten logischen Arrays 602 angehängt werden, um ein logisches Array mit Header (nicht gezeigt) zu erzeugen, und anschließend kann wieder eine Zeilenverschlüsselung ausgeführt werden, um ein verschlüsseltes logisches Array mit Header 604 zu erzeugen. In dem verschlüsselten logischen Array mit Header 604 wird an jede Zeile eine C1'-Parität angehängt, die den Datenabschnitt jeder Zeile zusammen mit dem Header (sofern vorhanden) jeder Zeile schützt. Allerdings werden die Header (sofern vorhanden) nur durch C1'-Codewörter geschützt, wogegen die Daten durch C1-' und C2-Codewörter geschützt werden. Dies ermöglicht ein Korrigieren von Header-Bytes zusammen mit dem Bereitstellen eines robusten Schutzes von Header/Daten zur Verwendung in SDRAM-Architekturen, da alle Daten mit Zeilen-Codewörtern von veränderlicher Länge gespeichert werden, was SDRAM-Fehlerprüfungen ermöglicht.
  • In dieser Ausführungsform sind alle Zeilen auch byteverschachtelte Zeilen-Codewörter von veränderlicher Länge, wogegen Spalten im gesamten Datenfeld Spalten-Codewörter von fester Länge sind. Daher sind variable, nicht-rechteckige SDSs unter Verwendung dieser Ausführungsform möglich, wobei Variabilität von einem SDS zu einem anderen SDS innerhalb eines Datasets und Variabilität innerhalb eines SDS möglich ist, da sich die Länge von Zeilen-Codewörtern nach einem ersten Schreiben des Datasets und vor einem Umschreiben eines SDS in den Umschreibabschnitt ändern kann.
  • Unter folgender Bezugnahme auf 7A werden CWI-4-Gruppen von variabler Länge und mit Header in einem auf Band gespeicherten Dataset 700 gemäß einer Ausführungsform gezeigt. Wie gezeigt, werden in einem ersten Schreibabschnitt 710 des Bands, in dem die CWI-4s einer CWI-4-Gruppe erstmalig auf Band geschrieben werden, einige der CWI-4s unter Verwendung von 4-Byte-Headern 708 auf Band geschrieben, und einige der CWI-4s werden unter Verwendung von 0-Byte-Headern 706 auf Band geschrieben (z.B. ohne Header geschrieben). Wenn 384 CWI-4-Gruppen in einem Dataset enthalten sind, können 380 der CWI-4-Gruppen als CWI-4s mit 0-Byte-Headern 706 geschrieben werden, während 4 der CWI-4-Gruppen als CWI-4s mit entsprechenden 4-Byte-Headern 708 geschrieben werden können. Jede CWI-4 wird mit einem Header geschrieben, und daher ist ein Header vorhanden, der jeder CWI-4 entspricht, die auf das Band geschrieben wird (es sei denn, die CWI-4 wird ohne einen Header geschrieben, z.B. einen 0-Byte-Header).
  • In verschiedenen weiteren Ausführungsformen kann die Anzahl von CWI-4-Gruppen, die als CWI-4s mit entsprechenden 4-Byte-Headern und CWI-4s mit 0-Byte-Headern geschrieben werden, so geändert werden, dass sie zu bestimmten Anzahlen und Auslegungsparametern passt, wie beispielsweise einer anderen Anzahl von CWI-4-Gruppen (mehr oder weniger als 384), einem Wunsch nach einem robusteren Schutz von Datenpositionierung (wobei sich die Anzahl von CWI-4-Gruppen erhöhen würde, die als CWI-4s mit den entsprechenden 4-Byte-Headern geschrieben werden), usw.
  • Wie in 7A gezeigt, können die CWI-4-Gruppen, die als CWI-4s mit den 0-Byte-Headern 706 geschrieben werden, und die CWI-4-Gruppen, die als CWI-4s mit den 4-Byte-Headern 708 geschrieben werden, über das Dataset in Spalten verteilt werden, sodass eine erste Spalte die CWI-4-Gruppen hat, die als CWI-4s mit den 4-Byte-Headern 708 geschrieben sind, 95 benachbarte Spalten die CWI-4-Gruppen haben, die als CWI-4s mit den 0-Byte-Headern 706 geschrieben sind, und das Muster sich anschließend wiederholt. Wenn mehr oder weniger CWI-4-Gruppen als CWI-4s mit den 0-Byte-Headern geschrieben werden, kann die Anzahl der Spalten zwischen den Spalten, die die CWI-4s mit den 0-Byte-Headern 706 haben, zum Berücksichtigen der Anzahl in dem Dataset angepasst werden.
  • Das Band kann außerdem 3 % seines Speicherbereichs für ein Umschreiben von Daten reservieren. In einem Umschreibabschnitt 702 des Bands können CWI-4-Gruppen, die auf das Band umgeschrieben werden, aufgrund von Fehlern, die in den CWI-4s erfasst wurden, die in den ersten Schreibabschnitt 710 des Bands geschrieben wurden, z.B. während der Read-While-Write-Verarbeitung, als CWI-4s mit entsprechenden 12-Byte-Umschreib-Headern 704 geschrieben werden, um einen robusten Schutz für die Positionierung der Daten in diesen umgeschriebenen CWI-4-Gruppen bereitzustellen. In anderen Ausführungsformen können die CWI-4-Gruppen, die in den Umschreibabschnitt 702 des Bands umgeschrieben werden, als CWI-4s mit längeren oder kürzeren entsprechenden Umschreib-Headern geschrieben werden, beispielsweise 10-Byte, 8-Byte, 14-Byte, 16-Byte usw.
  • 7B zeigt drei Typen von verschlüsselten logischen SDS-Arrays mit Header gemäß einer Ausführungsform: einen logischen Array-Typ 712 (es kann 32 verschlüsselte logische SDS-Arrays mit einem Header dieses Typs geben), der zum Schreiben von Daten in einen Teil des ersten Schreibabschnitts des Magnetbands verwendet wird, und einen logischen Array-Typ 714 (es kann 32 verschlüsselte logische SDS-Arrays mit einem Header dieses Typs geben), der für Layoutzwecke des Bands zum Schreiben von Daten in einen anderen Teil des ersten Schreibabschnitts des Magnetbands verwendet wird. Ein logischer Array-Typ 716 wird zum Schreiben von Daten in einen Umschreibabschnitt des Magnetbands verwendet. Es gibt jedoch so viele dieser Typen von verschlüsselten logischen SDS-Arrays mit Header wie benötigt, abhängig davon, wie viele Zeilen in dem Umschreibabschnitt umgeschrieben werden müssen. Zeilen werden in einer Ausführungsform nach dem vorherigen Schreibversuch zum Umschreiben ausgewählt, wenn eine Zeile, die vorher in dem ersten Schreibabschnitt des Magnetbands geschrieben wurde, zu viele Fehler enthält. Wie gezeigt, hat der Header für Auswahlzeilen eine Länge von 4 Byte, der Datenabschnitt (Nutzdaten) jeder Zeile hat eine Länge von 4*(K1+1) Byte und die Zeilen- (C1') Parität für jede Zeile hat eine Länge von 4*(N1-K1) Byte, wobei ein RS-Code für den C1-Code und C1'-Code jeweils RS(N1,K1) und RS(N1',K1') und vier byteverschachtelte Codewörter (CWI-4) pro Zeile in logischen Arrays 712 und 714 ist. Der Header für alle Zeilen in dem logischen Array 716 hat eine Länge von 12 Byte. In dieser Ausführungsform zeigt Tabelle 1 im Folgenden Längen in Bytes (B) für Header von variabler Länge (VL), Nutzdaten variabler Länge (VL) von C1'-Zeilen-Codewörtern, C1'-Zeilen-Codewörter von variabler Länge (VL) und CWI-4s von variabler Länge (VL) mit Header (Zeilen), abhängig davon, welchen Header eine Zeile verwendet und wo die Zeile geschrieben ist (der erste Schreibabschnitt verwendet 0- oder 4-Byte-Header, wogegen der Umschreibabschnitt 12-Byte-Header verwendet). Tabelle 1
    VL-Header (B) VL-Nutzdaten von C1'-Zeilen-Codewort (B) VL C1'-Zeilen-Codewort (B) VL CWI-4 mit Header (B)
    0 K1' = K1 N1' = N1 4*N1
    4 K1' = K1+1 N1' = N1+1 4*(N1+1)
    12 K1' = K1+3 N1' = N1+3 4*(N1+3)
  • Selbstverständlich können andere Längen von Headern, Zeilen und Codewörtern verwendet werden, wie für den Fachmann nach dem Lesen der vorliegenden Beschreibung offenkundig sein dürfte.
  • Unter folgender Bezugnahme auf 8A werden CWI-4-Gruppen von variabler Länge und mit Header in einem auf Band gespeicherten Dataset 800 gemäß einer Ausführungsform gezeigt. Wie in einem ersten Schreibabschnitt 808 des Bands gezeigt, in dem die CWI-4-Gruppen erstmalig auf Band geschrieben werden, werden alle CWI-4-Gruppen als CWI-4s mit entsprechenden 4-Byte-Headern 806 auf Band geschrieben. Wenn 384 CWI-4-Gruppen in einem Dataset enthalten sind, können alle 384 der CWI-4-Gruppen als M CWI-4s mit M entsprechenden 4-Byte-Headern 806 geschrieben werden. M kann jede Anzahl von gleichzeitig geschriebenen CWI-4s sein, die unter Verwendung von herkömmlichen Magnetschreibköpfen und Magnetdatenträgern möglich ist, wie dem Fachmann klar sein dürfte.
  • In verschiedenen weiteren Ausführungsformen kann die Größe jedes der Header von jeder der CWI-4s in den CWI-4-Gruppen so geändert werden, dass sie zu bestimmten Anzahlen und Auslegungsparametern passt.
  • Das Band kann außerdem 3 % seines Speicherbereichs für ein Umschreiben von Daten reservieren. In einem Umschreibabschnitt 802 des Bands können CWI-4-Gruppen, die auf das Band umgeschrieben werden, aufgrund von Fehlern, die während der Read-While-Write-Verarbeitung erfasst wurden, als CWI-4s mit entsprechenden 12-Byte-Umschreib-Headern 804 geschrieben werden, um einen robusten Schutz für die Positionierung der Daten in diesen umgeschriebenen CWI-4-Gruppen bereitzustellen. In anderen Ausführungsformen können die CWI-4-Gruppen, die in den Umschreibabschnitt 802 des Bands umgeschrieben werden, als CWI-4s mit längeren oder kürzeren entsprechenden Umschreib-Headern geschrieben werden, beispielsweise 10-Byte, 8-Byte, 14-Byte, 16-Byte usw.
  • 8B zeigt zwei Typen von verschlüsselten logischen SDS-Arrays mit Header gemäß einer Ausführungsform: einen logischen Array-Typ 810 (es kann 64 verschlüsselte logische SDS-Arrays mit einem Header dieses Typs geben), der zum Schreiben von Daten in den ersten Schreibabschnitt des Magnetbands verwendet wird, und einen logischen Array-Typ 812, der zum Schreiben von Daten in den Umschreibabschnitt des Magnetbands verwendet wird. Es gibt jedoch so viele dieser Typen von verschlüsselten logischen SDS-Arrays mit Header wie benötigt, abhängig davon, wie viele Zeilen in dem Umschreibabschnitt umgeschrieben werden müssen. Zeilen werden in einer Ausführungsform nach dem vorherigen Schreibversuch zum Umschreiben ausgewählt, wenn eine Zeile, die vorher in dem ersten Schreibabschnitt des Magnetbands geschrieben wurde, zu viele Fehler enthält. Wie gezeigt, hat der Header für alle Zeilen für das logische Array 810 des ersten Schreibschnitts eine Länge von 4 Byte, der Datenabschnitt (Nutzdaten) jeder Zeile hat eine Länge von 4*(K1+1) Byte und die Zeilen- (C1') Parität für jede Zeile hat eine Länge von 4*(N1-K1) Byte, wobei ein RS-Code für den C1-Code und C1'-Code jeweils RS(N1,K1) und RS(N1',K1') und vier byteverschachtelte Codewörter (CWI-4) pro Zeile ist. Für das logische Array 812 des Umschreibabschnitts hat der Header für alle Zeilen eine Länge von 12 Byte, die Länge des Datenabschnitts jeder Zeile ist 4*(K1+3) Byte und die Länge der Zeilen- (C1') Parität für jede Zeile ist 4*(N1-K1) Byte.
  • In dieser Ausführungsform zeigt Tabelle 2 im Folgenden Längen in Bytes (B) für Header von variabler Länge (VL), Nutzdaten variabler Länge (VL) von C1'-Zeilen-Codewörtern, C1'-Zeilen-Codewörter von variabler Länge (VL) und CWI-4s (Zeilen) von variabler Länge (VL) mit Header, abhängig davon, wo die Zeile geschrieben ist (der erste Schreibabschnitt verwendet 4-Byte-Header, wogegen der Umschreibabschnitt 12-Byte-Header verwendet). Tabelle 2
    VL-Header (B) VL-Nutzdaten von C1'-Zeilen-Codewort (B) VL C1'-Zeilen-Codewort (B) VL CWI-4 mit Header (B)
    4 K1' = K1+1 N1' = N1+1 4*(N1+1)
    12 K1' = K1+3 N1' = N1+3 4*(N1+3)
  • Unter folgender Bezugnahme auf 9A werden CWI-4-Gruppen von variabler Länge und mit Header in einem auf Band gespeicherten Dataset 900 gemäß einer Ausführungsform gezeigt. Wie in einem ersten Schreibabschnitt 906 des Bands gezeigt, in dem die CWI-4-Gruppen erstmalig auf Band geschrieben werden, werden einige der CWI-4-Gruppen als CWI-4s mit entsprechenden ersten Headern auf Band geschrieben, die erste 4 Bytes von einem von einer Mehrzahl von 8-Byte-Headern 908 enthalten, und einige der CWI-4-Gruppen werden als CWI-4s mit entsprechenden zweiten Headern auf Band geschrieben, die zweite 4 Bytes- von einem von der Mehrzahl von 8-Byte-Headern 910 enthalten. Wenn das Dataset P CWI-4-Gruppen aufweist, wobei jede CWI-4-Gruppe M gleichzeitig geschriebene CWI-4s aufweist, wird auf diese Weise eine Gesamtheit von (P*M)/2 8-Byte-Headern zum Speichern eines Datasets verwendet. Diese (P*M)/2 8-Byte-Header werden in eine Gruppe von (P*M) 4-Byte-Headern umgewandelt, indem jeder 8-Byte-Header in zwei Teile geteilt wird (zwei 4-Byte-Teile). So werden die 8-Byte-Header über zwei CWI-4s geteilt.
  • In dieser oder jeder weiteren Ausführungsform kann P mindestens eines sein von: Modulo 8 und ein ganzzahliges Vielfaches von M.
  • In einer weiteren Ausführungsform enthalten nur die ersten Header (oder nur die zweiten Header in einer alternativen Ausführungsform) das CWID, das die SDS-Nummer und die Zeilennummer des SDS angibt, in dem sich die bestimmte CWI-4 nach dem Speichern befindet. Die zweiten Header (oder die ersten Header in der alternativen Ausführungsform) enthalten die CWIDs für diese bestimmte CWI-4 nicht.
  • Wenn 384 CWI-4-Gruppen in einem Dataset enthalten sind, kann eine Hälfte (192) der CWI-4-Gruppen als CWI-4s mit entsprechenden ersten Headern geschrieben werden, die die ersten 4 Bytes von einem von der Mehrzahl von 8-Byte-Headern 908 enthalten, und eine Hälfte (192) der CWI-4-Gruppen kann als CWI-4s mit entsprechenden zweiten Headern geschrieben werden, die die zweiten 4 Bytes von einem von der Mehrzahl von 8-Byte-Headern 910 enthalten.
  • In verschiedenen weiteren Ausführungsformen kann die Größe der Header erhöht oder verringert werden, sodass die ersten Header und die zweiten Header gleichmäßig über die Zeilen des Datasets verteilt sind, wenn 4-Byte-Header, 6-Byte-Header, 10-Byte-Header, 12-Byte-Header usw. verwendet werden.
  • Wie in 9A gezeigt, können 8-Byte-Header verwendet werden, wobei die CWI-4-Gruppen als CWI-4s mit entsprechenden ersten Headern geschrieben werden, die die ersten 4 Bytes von einem von einer Mehrzahl von Headern 910 in einer ersten Zeile enthalten, und anschließend die CWI-4-Gruppen als CWI-4s mit entsprechenden zweiten Headern geschrieben werden, die die zweiten 4 Bytes von einem von der Mehrzahl von Headern 908 in einer zweiten Zeile enthalten, wobei sich das Muster für eine Gesamtheit des Datasets wiederholt. Dies führt dazu, dass jede CWI-4-Gruppe als CWI-4s mit entsprechenden 4-Byte-Abschnitten von einem von den 8-Byte-Headern in dem ersten Schreibabschnitt 906 geschrieben werden.
  • Das Band kann außerdem 3 % seines Speicherbereichs für ein Umschreiben von Daten reservieren. In einem Umschreibabschnitt 902 des Bands können CWI-4-Gruppen, die auf das Band umgeschrieben werden, aufgrund von Fehlern, die während der Read-While-Write-Verarbeitung erfasst wurden, als CWI-4s mit entsprechenden 12-Byte-Umschreib-Headern 904 geschrieben werden, um einen robusten Schutz für die Positionierung der Daten in diesen umgeschriebenen CWI-4-Gruppen bereitzustellen. In anderen Ausführungsformen können die CWI-4-Gruppen, die in den Umschreibabschnitt 902 des Bands umgeschrieben werden, als CWI-4s mit längeren oder kürzeren entsprechenden Umschreib-Headern geschrieben werden, beispielsweise 10-Byte, 8-Byte, 14-Byte, 16-Byte usw.
  • 9B zeigt zwei Typen von verschlüsselten logischen SDS-Arrays mit Header gemäß einer Ausführungsform: einen logischen Array-Typ 912 (es kann 64 verschlüsselte logische SDS-Arrays mit einem Header dieses Typs geben), der zum Schreiben von Daten in den ersten Schreibabschnitt des Magnetbands verwendet wird, und einen logischen Array-Typ 914, der zum Schreiben von Daten in den Umschreibabschnitt des Magnetbands verwendet wird. Es gibt jedoch so viele dieser Typen von verschlüsselten logischen SDS-Arrays mit Header wie benötigt, abhängig davon, wie viele Zeilen in dem Umschreibabschnitt umgeschrieben werden müssen. Zeilen werden in einer Ausführungsform nach dem vorherigen Schreibversuch zum Umschreiben ausgewählt, wenn eine Zeile, die vorher in dem ersten Schreibabschnitt des Magnetbands geschrieben wurde, zu viele Fehler enthält. Wie gezeigt, hat der Header für alle Zeilen für das logische Array 912 des ersten Schreibschnitts eine Länge von 4 Byte, der Datenabschnitt jeder Zeile hat eine Länge von 4*(K1+1) Byte und die Zeilen- (C1') Parität für jede Zeile hat eine Länge von 4*(N1-K1) Byte, wobei ein RS-Code für den C1-Code und C1'-Code jeweils RS(N1,K1) und RS(N1',K1') und vier byteverschachtelte Codewörter (CWI-4) pro Zeile ist. Für das logische Array 914 des Umschreibabschnitts hat der Header für alle Zeilen eine Länge von 12 Byte, die Länge des Datenabschnitts jeder Zeile ist 4*(K1+3) Byte und die Länge der Zeilen- (C1') Parität für jede Zeile ist 4*(N1-K1) Byte.
  • In dieser Ausführungsform zeigt Tabelle 3 im Folgenden Längen in Bytes (B) für Header von variabler Länge (VL), Nutzdaten variabler Länge (VL) von C1' Zeilen-Codewörtern, C1'-Zeilen-Codewörter von variabler Länge (VL) und CWI-4s (Zeilen) von variabler Länge (VL) mit Header, abhängig davon, wo die Zeile geschrieben ist (der erste Schreibabschnitt verwendet 4-Byte-Header, wogegen der Umschreibabschnitt 12-Byte-Header verwendet). Tabelle 3
    VL-Header (B) VL-Nutzdaten von C1'-Zeilen-Codewort (B) VL C1'-Zeilen-Codewort (B) VL CWI-4 mit Header (B)
    4 K1' = K1+1 N1' = N1+1 4*(N1+1)
    12 K1' = K1+3 N1' = N1+3 4*(N1+3)
  • Unter folgender Bezugnahme auf 10A werden CWI-4-Gruppen von variabler Länge und mit Header in einem auf Band gespeicherten Dataset 1000 gemäß einer Ausführungsform gezeigt. Wie gezeigt, werden einige der CWI-4-Gruppen in einem ersten Schreibabschnitt 1006, in dem die CWI-4-Gruppen erstmalig auf Band geschrieben werden, unter Verwendung von ersten vier Bytes von einem von einer Mehrzahl von 8-Byte-Headern 1008 auf Band geschrieben, und einige der CWI-4-Gruppen werden unter Verwendung von zweiten vier Bytes von einem von der Mehrzahl von 8-Byte-Headern 1010 auf Band geschrieben, wobei jeder 8-Byte-Header über einen ersten und einen zweiten Header aufgeteilt wird. Wenn 384 CWI-4-Gruppen in einem Dataset enthalten sind, kann eine Hälfte (192) der CWI-4-Gruppen mit den ersten 4 Bytes von einem von der Mehrzahl von 8-Byte-Headern 1008 geschrieben werden, und eine Hälfte (192) der CWI-4-Gruppen kann mit den zweiten 4 Bytes von einem von der Mehrzahl von 8-Byte-Headern 1010 geschrieben werden. Wenn das Dataset P CWI-4-Gruppen aufweist, wobei jede CWI-4-Gruppe M gleichzeitig geschriebene CWI-4s aufweist, wird auf diese Weise eine Gesamtheit von (P*M)/2 8-Byte-Headern zum Speichern eines Datasets verwendet. Diese (P*M)/2 8-Byte-Header werden in eine Gruppe von (P*M) 4-Byte-Headern umgewandelt, indem jeder 8-Byte-Header in zwei Teile aufgeteilt wird (zwei 4-Byte-Teile). So werden die 8-Byte-Header über zwei CWI-4s aufgeteilt.
  • In dieser oder jeder weiteren Ausführungsform kann P mindestens eines sein von: Modulo 8 und ein ganzzahliges Vielfaches von M.
  • In verschiedenen weiteren Ausführungsformen kann die Größe des Headers erhöht oder verringert werden, sodass der erste und der zweite Header-Abschnitt gleichmäßig über die Zeilen des Datasets verteilt werden, wenn 4-Byte-Header, 6-Byte-Header, 10-Byte-Header, 12-Byte-Header usw. verwendet werden.
  • Wie in 10A gezeigt, können 8-Byte-Header verwendet werden, wobei CWI-4-Gruppen mit den ersten 4 Bytes von einem der 8-Byte-Header 1010 in eine erste Spalte geschrieben werden, und anschließend CWI-4-Gruppen mit den zweiten 4 Bytes von einem der 8-Byte-Header 1008 in eine zweite Spalte geschrieben werden, wobei sich das Muster für eine Gesamtheit des Datasets wiederholt. Des Weiteren wird jeder der 8-Byte-Header über einen ersten und einen zweiten Header aufgeteilt. Dies führt dazu, dass jede CWI-4-Gruppe mit einem 4-Byte-Header in dem ersten Schreibabschnitt 1006 geschrieben wird.
  • Das Band kann außerdem 3 % seines Speicherbereichs für ein Umschreiben von Daten reservieren. In einem Umschreibabschnitt 1002 des Bands können CWI-4-Gruppen, die auf das Band umgeschrieben werden, aufgrund von Fehlern, die während der Read-While-Write-Verarbeitung erfasst wurden, 12-Byte-Umschreib-Header 1004 enthalten, um einen robusten Schutz für die Positionierung der Daten in diesen umgeschriebenen CWI-4-Gruppen bereitzustellen. In anderen Ausführungsformen können die CWI-4-Gruppen, die in den Umschreibabschnitt 1002 des Bands umgeschrieben werden, längere oder kürzere Headern haben, beispielsweise 10-Byte, 8-Byte, 14-Byte, 16-Byte usw.
  • 10B zeigt zwei Typen von verschlüsselten logischen SDS-Arrays mit Header gemäß einer Ausführungsform: einen logischen Array-Typ 1012 (es kann 64 verschlüsselte logische SDS-Arrays mit einem Header dieses Typs geben), der zum Schreiben von Daten in den ersten Schreibabschnitt des Magnetbands verwendet wird, und einen logischen Array-Typ 1014, der zum Schreiben von Daten in den Umschreibabschnitt des Magnetbands verwendet wird. Es gibt jedoch so viele dieser Typen von verschlüsselten logischen SDS-Arrays mit Header wie benötigt, abhängig davon, wie viele Zeilen in dem Umschreibabschnitt umgeschrieben werden müssen. Zeilen werden in einer Ausführungsform nach dem vorherigen Schreibversuch zum Umschreiben ausgewählt, wenn eine Zeile, die vorher in dem ersten Schreibabschnitt des Magnetbands geschrieben wurde, zu viele Fehler enthält. Wie gezeigt, hat der Header für alle Zeilen für das logische Array 1012 des ersten Schreibschnitts eine Länge von 4 Byte, der Datenabschnitt jeder Zeile hat eine Länge von 4*(K1+1) Byte und die Zeilen- (C1') Parität für jede Zeile hat eine Länge von 4*(N1-K1) Byte, wobei ein RS-Code für den C1-Code und C1'-Code jeweils RS(N1,K1) und RS(N1',K1') und vier byteverschachtelte Codewörter (CWI-4) pro Zeile ist. Für das logische Array 1014 des Umschreibabschnitts hat der Header für alle Zeilen eine Länge von 12 Byte, die Länge des Datenabschnitts jeder Zeile ist 4*(K1+3) Byte und die Länge der Zeilen- (C1') Parität für jede Zeile ist 4*(N1-K1) Byte.
  • In dieser Ausführungsform zeigt Tabelle 4 im Folgenden Längen in Bytes (B) für Header von variabler Länge (VL), Nutzdaten variabler Länge (VL) von C1' Zeilen-Codewörtern, C1'-Zeilen-Codewörter von variabler Länge (VL) und CWI-4s (Zeilen) von variabler Länge (VL) mit Header, abhängig davon, wo die Zeile geschrieben ist (der erste Schreibabschnitt verwendet 4-Byte-Header, wogegen der Umschreibabschnitt 12-Byte-Header verwendet). Tabelle 4
    VL-Header (B) VL-Nutzdaten von C1'-Zeilen-Codewort (B) VL C1'-Zeilen-Codewort (B) VL CWI-4 mit Header (B)
    4 K1' = K1+1 N1' = N1+1 4*(N1+1)
    12 K1' = K1+3 N1' = N1+3 4*(N1+3)
  • Unter folgender Bezugnahme auf 11A werden CWI-4-Gruppen von variabler Länge und mit Header in einem auf Band gespeicherten Dataset 1100 gemäß einer Ausführungsform gezeigt. Wie gezeigt, werden in einem ersten Schreibabschnitt 1106 des Bands, in dem CWI-4-Gruppen erstmalig auf Band geschrieben werden, einige der CWI-4-Gruppen mit entsprechenden von 4-Byte-Headern 1108 auf Band geschrieben, und einige der CWI-4-Gruppen werden mit entsprechenden 0-Byte-Headern 1110 auf Band geschrieben (z.B. ohne Header). Wenn 384 CWI-4-Gruppen in einem Dataset enthalten sind, kann eine Hälfte (192) der CWI-4-Gruppen als CWI-4s mit entsprechenden 4-Byte-Headern 1108 geschrieben werden, und eine Hälfte (192) der CWI-4-Gruppen kann als CWI-4s mit entsprechenden 0-Byte-Headern 1110 geschrieben werden. Dies kann als eine verschachtelte CWI-4-Gruppenstruktur mit variabler Länge und Header bezeichnet werden.
  • In verschiedenen weiteren Ausführungsformen kann die Anzahl von CWI-4-Gruppen, die als CWI-4s mit entsprechenden 4-Byte-Headern und als CWI-4s mit 0-Byte-Headern geschrieben sind, so geändert werden, dass sie zu bestimmten Anzahlen und Auslegungsparametern passt, wie beispielsweise einer anderen Anzahl von CWI-4-Gruppen (mehr oder weniger als 384), einem Wunsch nach einem robusteren Schutz von Datenpositionierung (der die Anzahl von CWI-4-Gruppen erhöhen würde, die als CWI-4s mit entsprechenden 4-Byte-Headern geschrieben sind), usw.
  • Wie in 11A gezeigt, werden die CWI-4-Gruppen als CWI-4s mit den entsprechenden 4-Byte-Headern 1108 in eine erste Spalte geschrieben, und anschließend werden CWI-4-Gruppen als CWI-4s mit den entsprechenden 0-Byte-Headern 1110 in eine zweite Spalte geschrieben, wobei sich das Muster für eine Gesamtheit des Datasets wiederholt. Auf diese Weise werden geradzahlig nummerierte CWI-4-Gruppen als CWI-4s mit den entsprechenden 4-Byte-Headern 1108 geschrieben, und ungeradzahlig nummerierte CWI-4-Gruppen werden als CWI-4s mit den entsprechenden 0-Byte-Headern 1110 geschrieben.
  • Das Band kann außerdem 3 % seines Speicherbereichs für ein Umschreiben von Daten reservieren. In einem Umschreibabschnitt 1102 des Bands können CWI-4-Gruppen, die auf das Band umgeschrieben werden, aufgrund von Fehlern, die während der Read-While-Write-Verarbeitung erfasst wurden, 12-Byte-Umschreib-Header 1104 enthalten, um einen robusten Schutz für die Positionierung der Daten in diesen umgeschriebenen CWI-4-Gruppen bereitzustellen. In anderen Ausführungsformen können die CWI-4-Gruppen, die in den Umschreibabschnitt 1102 des Bands umgeschrieben werden, als CWI-4s mit längeren oder kürzeren entsprechenden Umschreib-Headern geschrieben werden, beispielsweise 10-Byte, 8-Byte, 14-Byte, 16-Byte usw.
  • 11B zeigt drei Typen von verschlüsselten logischen SDS-Arrays mit Header gemäß einer Ausführungsform: einen logischen Array-Typ 1112 (es kann 32 verschlüsselte logische SDS-Arrays mit einem Header dieses Typs geben), der zum Schreiben von Daten in einen Teil des ersten Schreibabschnitts des Magnetbands verwendet wird, und einen logischen Array-Typ 1114 (es kann 32 verschlüsselte logische SDS-Arrays mit einem Header dieses Typs geben), der für Layoutzwecke des Bands zum Schreiben von Daten in einen anderen Teil des ersten Schreibabschnitts des Magnetbands verwendet wird. Ein logischer Array-Typ 1116 wird zum Schreiben von Daten in den Umschreibabschnitt des Magnetbands verwendet. Es gibt jedoch so viele dieser Typen von verschlüsselten logischen SDS-Arrays mit Header wie benötigt, abhängig davon, wie viele Zeilen in dem Umschreibabschnitt umgeschrieben werden müssen. Zeilen werden in einer Ausführungsform nach dem vorherigen Schreibversuch zum Umschreiben ausgewählt, wenn eine Zeile, die vorher in dem ersten Schreibabschnitt des Magnetbands geschrieben wurde, zu viele Fehler enthält. Wie gezeigt, hat der Header für Auswahlzeilen eine Länge von 4 Byte, der Datenabschnitt jeder Zeile hat eine Länge von 4*(K1+1) Byte und die Zeilen- (C1') Parität für jede Zeile hat eine Länge von 4*(N1-K1) Byte, wobei ein RS-Code für den C1-Code und C1'-Code jeweils RS(N1,K1) und RS(N1',K1') und vier byteverschachtelte Codewörter (CWI-4) pro Zeile in logischen Arrays 1112 und 1114 ist. Der Header für alle Zeilen in dem logischen Array 1116 hat eine Länge von 12 Byte. In dieser Ausführungsform zeigt Tabelle 5 im Folgenden Längen in Bytes (B) für Header von variabler Länge (VL), Nutzdaten variabler Länge (VL) von C1'-Zeilen-Codewörtern, C1'-Zeilen-Codewörter von variabler Länge (VL) und CWI-4s von variabler Länge (VL) mit Header (Zeilen), abhängig davon, welchen Header eine Zeile verwendet und wo die Zeile geschrieben ist (der erste Schreibabschnitt verwendet 0- bis 4-Byte-Header, wogegen der Umschreibabschnitt 12-Byte-Header verwendet). Tabelle 5
    VL-Header (B) VL-Nutzdaten von C1'-Zeilen-Codewort (B) VL C1'-Zeilen-Codewort (B) VL CWI-4 mit Header (B)
    0 K1' = K1 N1' = N1 4*N1
    4 K1' = K1+1 N1' = N1+1 4*(N1+1)
    12 K1' = K1+3 N1' = N1+3 4*(N1+3)
  • Unter folgender Bezugnahme auf 12A werden CWI-4-Gruppen von variabler Länge und mit Header in einem auf Band gespeicherten Dataset 1200 gemäß einer Ausführungsform gezeigt. Wie gezeigt, werden in einem ersten Schreibabschnitt 1206 des Bands, in dem CWI-4-Gruppen erstmalig auf Band geschrieben werden, einige der CWI-4-Gruppen mit entsprechenden von 8-Byte-Headern 1208 auf Band geschrieben, und einige der CWI-4-Gruppen werden mit entsprechenden 0-Byte-Headern 1210 auf Band geschrieben (z.B. ohne Header). Wenn 384 CWI-4-Gruppen in einem Dataset enthalten sind, kann eine Hälfte (192) der CWI-4-Gruppen als CWI-4s mit entsprechenden 8-Byte-Headern 1208 geschrieben werden, und eine Hälfte (192) der CWI-4-Gruppen kann als CWI-4s mit entsprechenden 0-Byte-Headern 1210 geschrieben werden. Dies kann als eine verschachtelte CWI-4-Gruppenstruktur mit variabler Länge und Header bezeichnet werden.
  • In verschiedenen weiteren Ausführungsformen kann die Anzahl von CWI-4-Gruppen, die als CWI-4s mit den entsprechenden 8-Byte-Headern und mit den entsprechenden 0-Byte-Headern geschrieben sind, so geändert werden, dass sie zu bestimmten Anzahlen und Auslegungsparametern passt, wie beispielsweise einer anderen Anzahl von CWI-4-Gruppen (mehr oder weniger als 384), einem Wunsch nach einem robusteren Schutz von Datenpositionierung (der die Anzahl von CWI-4-Gruppen erhöhen würde, die als CWI-4s mit den 8-Byte-Headern geschrieben sind), usw.
  • Wie in 12A gezeigt, können die CWI-4-Gruppen als CWI-4s mit den entsprechenden 8-Byte-Headern 1208 in eine erste Spalte geschrieben werden, und anschließend werden CWI-4-Gruppen als CWI-4s mit den entsprechenden 0-Byte-Headern 1210 in eine zweite Spalte geschrieben werden, wobei sich das Muster für eine Gesamtheit des Datasets wiederholt. Auf diese Weise werden geradzahlig nummerierte CWI-4-Gruppen als CWI-4s mit den 8-Byte-Headern 1208 geschrieben, und ungeradzahlig nummerierte CWI-4-Gruppen werden als CWI-4s mit den 0-Byte-Headern 1210 geschrieben.
  • Das Band kann außerdem 3 % seines Speicherbereichs für ein Umschreiben von Daten reservieren. In einem Umschreibabschnitt 1202 des Bands können CWI-4-Gruppen, die auf das Band umgeschrieben werden, aufgrund von Fehlern, die während der Read-While-Write-Verarbeitung erfasst wurden, als CWI-4s mit entsprechenden 12-Byte-Umschreib-Headern 1204 geschrieben werden, um einen robusten Schutz für die Positionierung der Daten in diesen umgeschriebenen CWI-4-Gruppen bereitzustellen. In anderen Ausführungsformen können die CWI-4-Gruppen, die in den Umschreibabschnitt 1202 des Bands umgeschrieben werden, als CWI-4s mit längeren oder kürzeren entsprechenden Umschreib-Headern geschrieben werden, beispielsweise 10-Byte, 8-Byte, 14-Byte, 16-Byte usw.
  • 12B zeigt drei Typen von verschlüsselten logischen SDS-Arrays mit Header gemäß einer Ausführungsform: einen logischen Array-Typ 1212 (es kann 32 verschlüsselte logische SDS-Arrays mit einem Header dieses Typs geben), der zum Schreiben von Daten in einen Teil des ersten Schreibabschnitts des Magnetbands verwendet wird, und einen logischen Array-Typ 1214 (es kann 32 verschlüsselte logische SDS-Arrays mit einem Header dieses Typs geben), der zum Schreiben von Daten in einen anderen Teil des ersten Schreibabschnitts des Magnetbands verwendet wird, für Layoutzwecke des Bands. Ein logischer Array-Typ 1216 wird zum Schreiben von Daten in den Umschreibabschnitt des Magnetbands verwendet. Es gibt jedoch so viele dieser Typen von verschlüsselten logischen SDS-Arrays mit Header wie benötigt, abhängig davon, wie viele Zeilen in dem Umschreibabschnitt umgeschrieben werden müssen. Zeilen werden in einer Ausführungsform nach dem vorherigen Schreibversuch zum Umschreiben ausgewählt, wenn eine Zeile, die vorher in dem ersten Schreibabschnitt des Magnetbands geschrieben wurde, zu viele Fehler enthält. Wie gezeigt, hat der Header für Auswahlzeilen eine Länge von 8 Byte, der Datenabschnitt jeder Zeile hat eine Länge von 4*(K1+2) Byte und die Zeilen- (C1') Parität für jede Zeile hat eine Länge von 4*(N1-K1) Byte, wobei ein RS-Code für den C1-Code und C1'-Code jeweils RS(N1,K1) und RS(N1',K1') und vier byteverschachtelte Codewörter (CWI-4) pro Zeile in logischen Arrays 1212 und 1214 ist. Der Header für alle Zeilen in dem logischen Array 1216 hat eine Länge von 12 Byte. In dieser Ausführungsform zeigt Tabelle 6 im Folgenden Längen in Bytes (B) für Header von variabler Länge (VL), Nutzdaten variabler Länge (VL) von C1'-Zeilen-Codewörtern, C1'-Zeilen-Codewörter von variabler Länge (VL) und CWI-4s von variabler Länge (VL) mit Header (Zeilen), abhängig davon, welchen Header eine Zeile verwendet und wo die Zeile geschrieben ist (der erste Schreibabschnitt verwendet 0- oder 8-Byte-Header, wogegen der Umschreibabschnitt 12-Byte-Header verwendet). Tabelle 6
    VL-Header (B) VL-Nutzdaten von C1'-Zeilen-Codewort (B) VL C1'-Zeilen-Codewort (B) VL CWI-4 mit Header (B)
    0 K1' = K1 N1' = N1 4*N1
    8 K1' = K1+2 N1' = N1+2 4*(N1+2)
    12 K1' = K1+3 N1' = N1+3 4*(N1+3)
  • Jeder Header für CWI-4s in dem ersten und in dem zweiten Umschreibabschnitt jeder der Ausführungsformen, die in 7A bis 12B beschrieben werden, kann verschieden sein, und wenn darauf als „erste Header“ und „Umschreib-Header“ verwiesen wird, wird beabsichtigt, auf alle Header für sämtliche der CWI-4s für jeden Schreibabschnitt zusammen als Gruppe zu verweisen, und nicht um anzugeben, dass sie alle dieselben Header sind, in denen die exakt gleichen Bits gespeichert sind (insbesondere können die Bits in den CWID- und Paritäts-Feldern der Header für jede CWI-4 verschieden sein, gleichgültig, ob sie in dem ersten Schreibabschnitt oder dem Umschreibabschnitt geschrieben sind).
  • Des Weiteren, obwohl in hierin beschriebenen Ausführungsformen alle CWI-4s in einer CWI-4-Gruppe dieselbe Byte-Länge haben (aus Gründen einer praktischen Umsetzung ist dies wünschenswert), können CWI-4s von verschiedenen CWI-4-Gruppen verschiedene Byte-Längen haben, weil die Header verschiedene Byte-Längen haben können.
  • Eine Speicherplatzmenge kann unter Verwendung der verschiedenen, oben beschriebenen Header-Strukturen mit den folgenden definierten Variablen bestimmt werden: M = Anzahl von Kanälen (M = 16 in LTO-5 und LTO-6, M = 32 in 32-Kanal-Bandlaufwerken auf Unternehmensebene); L = Anzahl von untergeordneten Datasets pro Dataset (L = 32 in 16-Kanal-Laufwerken, L = 64 in 32-Kanal-Bandlaufwerken auf Unternehmensebene); J = Anzahl von C1-Codewörtern in einer Zeile eines untergeordneten Datasets (J = 4 in LTO-5, LTO-6 und 32-Kanal-Bandlaufwerken auf Unternehmensebene); C1-Code ist ein (N1, K1) RS-Code mit K1 Informations-Bytes und N1-K1 Paritäts-Bytes; C2-Code ist ein (N2, K2) RS-Code mit K2 Informations-Bytes und N2-K2 Paritäts-Bytes. Mit diesen Variablen kann die Erhöhung der Kassettenkapazität für Header-Strukturen, die in 7A bis 12B im Vergleich mit untergeordneten Datasets mit einer festen 12-Byte-Header-Größe beschrieben werden, mithilfe von Gleichungen 1 bis 3 berechnet werden, wobei Gleichung 1 die Erhöhung der Kassettenkapazität (G1) für die Header-Struktur in 7A bis 7B berechnet, Gleichung 2 die Erhöhung der Kassettenkapazität (G2, G3, G4, G6) für die Header-Struktur in 8A bis 10B und 12A bis 12B berechnet, und Gleichung 3 die Erhöhung der Kassettenkapazität (G5) für die Header-Struktur in 11A bis 11B berechnet. G1 = ( 12 * ( N2 * L / M 4 ) / ( N2 * L / M ) + 8 * 4 / ( N2 * L / M ) ) / ( J * K1 )
    Figure DE102016205281B4_0001
    G2 = G3 = G4 = G6 = 8 / ( J*K1 )
    Figure DE102016205281B4_0002
    G5 = 10 / ( J * K1 )
    Figure DE102016205281B4_0003
  • Die maximal mögliche Erhöhung der Kassettenkapazität, die durch eine vollständige Header-Beseitigung erhalten werden kann, ist gleich 12/(J*K1). In den in 8A bis 10B gezeigten Header-Strukturen belegen die Header-Größen unterschiedlich großen Speicherplatz. Dies ist auf die Header zurückzuführen, die während des ersten Schreibens und Umschreibens von unterschiedlicher Größe sind. Während des ersten Schreibens des Datasets sind die Header 4 Byte lang, wogegen sie während des Umschreibens 12 Byte lang sind (oder in einigen Ausführungsformen weniger).
  • In den in 8A bis 12B gezeigten Header-Strukturen ist eine Operation in der Anwesenheit von unterbrochenen Datasets aufgrund der verwendeten Header-Strukturen möglich. Das Schreiben eines Datasets kann unterbrochen werden, beispielsweise aufgrund eines Fehlers oder einer Störung, die zu fehlerhaft geschriebenen Spuren führen können. Wenn das Schreiben unterbrochen wird, wird jedes Dataset, für das sämtliche der synchronisierten Codewort-Objekt- (SCO) Gruppen nicht erfolgreich aufgezeichnet und anschließend überprüft worden sind, als unterbrochenes Dataset betrachtet.
  • Ein System zum Schreiben von Daten unter Verwendung von Headern mit variabler Länge kann jedes der logischen Arrays verwenden, die in 7A bis 12B beschrieben wurden, um in verschiedenen Ausführungsformen Daten vor dem Schreiben der Daten zu organisieren. Ein derartiges System kann einen Controller enthalten (der einen Hardware-Prozessor aufweisen kann) und eine Logik, die integriert und/oder durch den Controller ausführbar ist. Der Prozessor kann von jedem in dem Fachgebiet bekannten Typ oder ein Spezialprozessor sein, der für ein Speichern von Daten unter Verwendung von CWI-4-Gruppen von variabler Länge und mit Header spezifisch ist. Die Logik kann in einer Ausführungsform konfiguriert sein, um zu veranlassen, dass in eine Mehrzahl von logischen Arrays organisierte Daten in einen ersten Schreibabschnitt eines Magnetdatenträgers als eine Mehrzahl von CWI-4-Gruppen geschrieben werden. Jedes erste logische Array weist Zeilen und Spalten mit Symbolen auf, wobei jede Zeile eines ersten logischen Arrays eine CWI-4 mit Header aufweist, und jede CWI-4-Gruppe weist gleichzeitig geschriebene Zeilen eines logischen Arrays mit M entsprechenden ersten Headern auf. Ferner kann die Logik konfiguriert sein, um zu veranlassen, dass mindestens einige der Daten in einen Umschreibabschnitt des Magnetdatenträgers als eine oder mehrere umgeschriebenen CWI-4-Gruppen geschrieben werden, wobei jede umgeschriebene CWI-4-Gruppe M gleichzeitig umgeschriebene Zeilen von einem oder mehreren logischen Arrays aufweist, die M entsprechende Umschreib-Header haben. Eine Länge von mindestens einer umgeschriebenen Zeile, die in dem Umschreibabschnitt des Magnetdatenträgers gespeichert ist, ist größer als mindestens eine von: einer Länge einer anderen umgeschriebenen Zeile in derselben umgeschriebenen CWI-4-Gruppe, und/oder einer Länge von mindestens einer Zeile in einer CWI-4-Gruppe, die auf dem ersten Umschreibabschnitt des Magnetdatenträgers gespeichert ist. Auf diese Weise ist mindestens eine auf den Magnetdatenträger geschriebene Zeile in dem ersten Schreibabschnitt und/oder in dem Umschreibabschnitt länger als eine andere auf den Magnetdatenträger geschriebene Zeile.
  • In einer Ausführungsform kann eine Länge von mindestens einem der Umschreib-Header größer als eine Länge des mindestens einen der ersten Header sein. In dieser Ausführungsform können Umschreib-Header für jede der umgeschriebenen CWI-4s, die in dem Umschreibabschnitt des Magnetdatenträgers gespeichert sind, mehr Bytes als erste Header für jede der CWI-4s mit Header aufweisen, die in dem ersten Schreibabschnitt des Magnetdatenträgers gespeichert sind.
  • In einer weiteren Ausführungsform kann jedes der logischen Arrays nicht-rechteckig sein aufgrund von einer oder mehreren längeren Zeilen in jedem der logischen Arrays, die mehr Bytes als andere Zeilen von jedem der logischen Arrays aufweisen. Mit nicht-rechteckig ist gemeint, dass einige der Zeilen länger als einige andere Zeilen in dem logischen Array sein können, wodurch verursacht wird, dass das Array eine andere Form als ein Rechteck mit Zeilen und Spalten von derselben Länge aufweist.
  • Ferner kann ein erster Header von jeder der einen oder der mehreren längeren Zeilen von jedem der logischen Arrays mehr Bytes aufweisen als ein erster Header der anderen Zeilen von jedem der logischen Arrays. Dieser längere Header kann verursachen, dass die Zeile länger ist. Außerdem kann in einer Ausführungsform ein C1'-Codewort von jeder der einen oder der mehreren längeren Zeilen von jedem der logischen Arrays mehr Bytes aufweisen als ein C1'-Codewort der anderen Zeilen von jedem der logischen Arrays. Dies kann darauf zurückzuführen sein, dass eine Zeile ein zweites Mal verschlüsselt wird, um das C1'-Codewort zu erzeugen, nachdem ein Header daran angehängt wurde. Der Header kann länger als ein Header sein, der zu einer oder mehreren anderen Zeilen des logischen Arrays hinzugefügt wird, wodurch ein längeres C1'-Codewort aufgrund der zusätzlichen Länge der Header- und Paritäts-Bits erzeugt wird.
  • In einer weiteren Ausführungsform kann eine Zeilenparität von der einen oder den mehreren längeren Zeilen jedes der logischen Arrays mehr Bytes aufweisen als eine Zeilenparität der anderen Zeilen von jedem der logischen Arrays.
  • Gemäß einer weiteren Ausführungsform kann die Logik ferner konfiguriert sein, um auszuwählen, welche CWI-4s in dem Umschreibabschnitt des Magnetdatenträgers auf Grundlage von Fehlern umgeschrieben werden sollen, die in CWI-4s erfasst wurden, die in dem ersten Schreibabschnitt des Magnetdatenträgers gespeichert sind.
  • Des Weiteren kann in einer Ausführungsform die Logik ferner konfiguriert sein, um die Fehler in den CWI-4s, die in dem ersten Schreibabschnitt des Magnetdatenträgers gespeichert sind, unter Verwendung eines Read-While-Write-Prozesses zu erfassen.
  • Wenn in einer Ausführungsform die Daten ein Dataset sind, das P CWI-4-Gruppen aufweist, wobei jede CWI-4-Gruppe M gleichzeitig geschriebene CWI-4s aufweist, kann eine Gesamtheit von (P*M)/2 8-Byte-Headern zum Speichern eines Dataset verwendet werden. Diese (P*M)/2 8-Byte-Header werden in eine Gruppe von (P*M) 4-Byte-Headern umgewandelt, indem jeder 8-Byte-Header in zwei Teile aufgeteilt wird (zwei 4-Byte-Teile). Auf diese Weise werden die 8-Byte-Header über zwei CWI-4s aufgeteilt, wobei jede CWI-4 entweder mit einem ersten oder mit einem zweiten Header geschrieben wird.
  • In dieser oder jeder weiteren Ausführungsform kann P mindestens eines sein von: Modulo 8 und ein ganzzahliges Vielfaches von M.
  • Gemäß einer weiteren Ausführungsform kann jeder der ersten Header eine Länge von 4 Byte haben, und alle CWI-4-Gruppen können in dem ersten Schreibabschnitt des Magnetdatenträgers als CWI-4s mit den entsprechenden ersten Headern gespeichert werden, wie in 8A bis 8B beschrieben. Auf diese Weise kommt die Natur einer variablen Länge der CWI-4-Gruppen mit Header ins Spiel, wenn Daten in den Umschreibabschnitt des Magnetdatenträgers mit einem Umschreib-Header geschrieben werden, der länger als der erste Header ist.
  • In weiteren Ansätzen kann einiges des Datasets als CWI-4-Gruppen in dem ersten Schreibabschnitt des Magnetdatenträgers mit Headern gespeichert werden, während der restliche Teil des Datasets als CWI-4s ohne jeden Header gespeichert werden kann (0-Byte-Header). In einer derartigen Ausführungsform kann jeder der ersten Header eine Länge von 4 Byte haben, ungeradzahlig nummerierte CWI-4-Gruppen können in dem ersten Schreibabschnitt des Magnetdatenträgers als CWI-4s ohne jeden Header gespeichert werden, geradzahlig nummerierte CWI-4-Gruppen können in dem ersten Schreibabschnitt des Magnetdatenträgers als CWI-4s mit den ersten Headern gespeichert werden, und die CWI-4-Gruppen, die als CWI-4s ohne jeden Header gespeichert sind, können mit den CWI-4-Gruppen verschachtelt werden, die als CWI-4s mit den ersten Headern gespeichert sind, wie in 11A bis 11B beschrieben.
  • In einer alternativen Ausführungsform kann jeder der ersten Header eine Länge von 8 Byte haben, ungeradzahlig nummerierte CWI-4-Gruppen können in dem ersten Schreibabschnitt des Magnetdatenträgers als CWI-4s ohne jeden Header gespeichert werden, geradzahlig nummerierte CWI-4-Gruppen können in dem ersten Schreibabschnitt des Magnetdatenträgers als CWI-4s mit den ersten Headern gespeichert werden, und die CWI-4-Gruppen, die als CWI-4s ohne jeden Header gespeichert sind, können mit den CWI-4-Gruppen verschachtelt werden, die als CWI-4s mit den ersten Headern gespeichert sind, wie in 12A bis 11B beschrieben.
  • Gemäß einer weiteren alternativen Ausführungsform kann jeder der ersten Header eine Länge von 4 Byte haben, 380 CWI-4-Gruppen können in dem ersten Schreibabschnitt des Magnetdatenträgers als CWI-4s ohne jeden Header gespeichert werden, und 4 CWI-4-Gruppen können in dem ersten Schreibabschnitt des Magnetdatenträgers als CWI-4s mit den ersten Headern gespeichert werden, wie in 7A bis 7B beschrieben.
  • In jeder dieser Ausführungsformen kann jeder der Umschreib-Header eine Länge von 12 Byte oder mehr oder weniger haben, und der Magnetdatenträger kann ein Magnetband sein, das in einer Bandkassette untergebracht ist, die in einem Bandlaufwerk betriebsfähig ist.
  • Ein derartiges Bandlaufwerk kann einen Prozessor und eine Logik aufweisen, die integriert und/oder durch den Prozessor ausführbar ist, wobei die Logik konfiguriert ist, um wie in der vorherigen Ausführungsform beschrieben zu arbeiten.
  • Die nachstehende Tabelle 7 zeigt eine Übersicht über die variablen CWI-4-Längen unter Verwendung der verschiedenen hierin beschriebenen Ausführungsformen. Für die Berechnungen in Tabelle 7 wird für den C1-Code angenommen: (N1=240, K1=228) RS-Code, für den C2-Code: (N2=192, K2=168) RS-Code, und dass es 384 CWI-4-Gruppen pro Dataset gibt. Die Anzahl von CWI-4-Gruppen, die in den Umschreibabschnitt geschrieben werden, ist variabel (V) und hängt von der Anzahl von Fehlern in CWI-4s ab, die während des Read-While-Write-Prozesses korrigiert werden. Tabelle 7
    FIG. Header Header-Struktur # von CWI-4-Gruppen Variable CWI-4-Längen
    7A-7B 0-Byte - 380 960 B
    4-Byte 4-Byte 4 964 B
    12-Byte 12-Byte V 972 B
    8A-8B 4-Byte 4-Byte Kurzes AWT/WPI 384 964 B
    12-Byte 12-Byte V 972 B
    9A-9B 4-Byte 8-Byte 384 964 B
    12-Byte 12-Byte V 972 B
    10A-10B 4-Byte 8-Byte 384 964 B
    12-Byte 12-Byte V 972 B
    11A-11B 0-Byte - Kurzes AWT/WPI 192 960 B
    4-Byte 4-Byte 192 964 B
    12-Byte 12-Byte V 972 B
    12A-12B 0-Byte - 192 960 B
    8-Byte 8-Byte 192 968 B
    12-Byte 12-Byte V 972 B
  • Unter folgender Bezugnahme auf 13 wird ein Ablaufplan eines Verfahrens 1300 zum Schreiben von Daten, die in logischen Arrays mit Zeilen von variabler Länge organisiert sind, gemäß einer Ausführungsform gezeigt. Das Verfahren 1300 kann in und/oder unter Verwendung von allen Umgebungen, Systemen, Vorrichtungen und/oder Schemata ausgeführt werden, die in 1 bis 12B in verschiedenen Ansätzen beschrieben wurden. Ferner kann das Verfahren 1300 mehr oder weniger Operationen enthalten als diejenigen, die speziell unter Bezugnahme auf 13 beschrieben sind.
  • In einer Operation 1302 werden in eine Mehrzahl von logischen Arrays organisierte Daten in einen ersten Schreibabschnitt eines Magnetdatenträgers als eine Mehrzahl von CWI-4-Gruppen geschrieben, wobei jedes erste logische Array Zeilen und Spalten mit Symbolen aufweist, wobei jede Zeile eines ersten logischen Arrays vier verschachtelte C1'-Codewörter mit Header (eine CWI-4 mit Header) aufweist, wobei jede CWI-4-Gruppe M gleichzeitig geschriebene Zeilen eines logischen Arrays mit M entsprechenden ersten Headern aufweist. Der Magnetdatenträger kann ein Magnetband oder ein anderer in der Technik bekannter geeigneter Datenträger sein.
  • In einer Operation 1304 werden mindestens einige der Daten in einen Umschreibabschnitt des Magnetdatenträgers als eine oder mehrere umgeschriebenen CWI-4-Gruppen geschrieben, wobei jede umgeschriebene CWI-4-Gruppe M gleichzeitig umgeschriebene Zeilen von einem oder mehreren logischen Arrays mit M entsprechenden Umschreib-Headern aufweist. Eine Länge von mindestens einer umgeschriebenen Zeile, die in dem Umschreibabschnitt des Magnetdatenträgers gespeichert ist, ist größer als mindestens eine von: einer Länge einer anderen umgeschriebenen Zeile in derselben umgeschriebenen CWI-4-Gruppe und einer Länge von mindestens einer Zeile in einer CWI-4-Gruppe, die in dem ersten Schreibabschnitt des Magnetdatenträgers gespeichert ist.
  • Das Verfahren 1300 kann ferner unter Verwendung eines Read-While-Write-Prozesses ein Erfassen der Fehler in den CWI-4s enthalten, die in dem ersten Schreibabschnitt des Magnetdatenträgers gespeichert sind, wie vorher ausführlicher beschrieben. Ferner kann das Verfahren 1300 ein Auswählen enthalten, welche CWI-4s in dem Umschreibabschnitt des Magnetdatenträgers auf Grundlage von Fehlern umgeschrieben werden sollen, die in CWI-4s erfasst wurden, die in dem ersten Schreibabschnitt des Magnetdatenträgers gespeichert sind.
  • In einem Ansatz kann eine Länge von mindestens einem der Umschreib-Header größer als eine Länge des mindestens einen der ersten Header sein. Ferner können Umschreib-Header für jede der umgeschriebenen CWI-4s, die in dem Umschreibabschnitt des Magnetdatenträgers gespeichert sind, mehr Bytes als erste Header für jede der CWI-4s mit Header aufweisen, die in dem ersten Schreibabschnitt des Magnetdatenträgers gespeichert sind.
  • In einem weiteren Ansatz kann jedes der logischen Arrays aufgrund von einer oder mehreren längeren Zeilen in jedem der logischen Arrays nicht-rechteckig sein, die mehr Bytes als andere Zeilen von jedem der logischen Arrays aufweisen. Bei diesem Ansatz kann ein erster Header von jeder der einen oder der mehreren längeren Zeilen von jedem der logischen Arrays mehr Bytes aufweisen als ein erster Header der anderen Zeilen von jedem der logischen Arrays. Ferner kann ein C1'-Codewort von jeder der einen oder der mehreren längeren Zeilen von jedem der logischen Arrays mehr Bytes aufweisen als ein C1'-Codewort der anderen Zeilen von jedem der logischen Arrays. Außerdem kann eine Zeilenparität von der einen oder den mehreren längeren Zeilen jedes der logischen Arrays mehr Bytes aufweisen als eine Zeilenparität der anderen Zeilen von jedem der logischen Arrays.
  • Wenn auf diese Weise das Dataset P CWI-4-Gruppen aufweist, wobei jede CWI-4-Gruppe M gleichzeitig geschriebene CWI-4s aufweist, kann eine Gesamtheit von (P*M)/2 8-Byte-Headern zum Speichern eines Datasets verwendet werden. Diese (P*M)/2 8-Byte-Header werden in eine Gruppe von (P*M) 4-Byte-Headern umgewandelt, indem jeder 8-Byte-Header in zwei Teile aufgeteilt wird (zwei 4-Byte-Teile). Auf diese Weise werden die 8-Byte-Header über zwei CWI-4s aufgeteilt, wobei jede CWI-4 entweder mit einem ersten oder mit einem zweiten Header geschrieben wird.
  • In dieser oder jeder weiteren Ausführungsform kann P mindestens eines sein von: Modulo 8 und ein ganzzahliges Vielfaches von M.
  • Gemäß einem weiteren Ansatz kann jeder der ersten Header eine Länge von 4 Byte haben, und in dieser Ausführungsform können alle CWI-4-Gruppen in dem ersten Schreibabschnitt des Magnetdatenträgers als CWI-4s mit ihren entsprechenden ersten Headern gespeichert werden.
  • Gemäß weiteren Ausführungsformen kann ein restlicher Teil des Datasets, das als CWI-4-Gruppen in den ersten Schreibabschnitt des Magnetdatenträgers geschrieben ist, als CWI-4s ohne Header jeglicher Art gespeichert werden.
  • In einer derartigen Ausführungsform kann jeder der ersten Header eine Länge von 4 Byte haben, ungeradzahlig nummerierte CWI-4-Gruppen können in dem ersten Schreibabschnitt des Magnetdatenträgers als CWI-4s ohne jeden Header gespeichert werden, geradzahlig nummerierte CWI-4-Gruppen können in dem ersten Schreibabschnitt des Magnetdatenträgers als CWI-4s mit ihren entsprechenden ersten Headern gespeichert werden, und die CWI-4-Gruppen, die als CWI-4s ohne jeden Header gespeichert sind, können mit den CWI-4-Gruppen verschachtelt werden, die als CWI-4s mit ihren entsprechenden ersten Headern gespeichert sind.
  • In einer weiteren derartigen Ausführungsform kann jeder der ersten Header eine Länge von 8 Byte haben, ungeradzahlig nummerierte CWI-4-Gruppen können in dem ersten Schreibabschnitt des Magnetdatenträgers als CWI-4s ohne jeden Header gespeichert werden, geradzahlig nummerierte CWI-4-Gruppen können in dem ersten Schreibabschnitt des Magnetdatenträgers als CWI-4s mit ihren entsprechenden ersten Headern gespeichert werden, und die CWI-4-Gruppen, die als CWI-4s ohne jeden Header gespeichert sind, können mit den CWI-4-Gruppen verschachtelt werden, die als CWI-4s mit ihren entsprechenden ersten Headern gespeichert sind.
  • Gemäß noch einer weiteren derartigen Ausführungsform kann jeder der ersten Header eine Länge von 8 Byte haben, 380 CWI-4-Gruppen können in dem ersten Schreibabschnitt des Magnetdatenträgers als CWI-4s ohne jeden Header gespeichert werden, und 4 CWI-4-Gruppen können in dem ersten Schreibabschnitt des Magnetdatenträgers als CWI-4s mit ihren entsprechenden ersten Headern gespeichert werden.
  • In jeder dieser Ausführungsformen kann jeder der Umschreib-Header eine Länge von 12 Byte oder mehr oder weniger haben, und der Magnetdatenträger kann ein Magnetband sein, das in einer Bandkassette untergebracht ist, die in einem Bandlaufwerk betriebsfähig ist.
  • Umgeschriebene CWI-4-Größen können sich in einer Ausführungsform von CWI-4-Größen unterscheiden, die in dem ersten Schreibabschnitt des Magnetdatenträgers verwendet werden. In einer weiteren Ausführungsform kann die Größe eines verschlüsselten SDS nach dem ersten Schreiben sich von einer Größe eines verschlüsselten SDS nach einem Umschreiben (oder nach dessen Lesen) unterscheiden.
  • In einer weiteren Ausführungsform können Header-Größen variierende Größen aufweisen und daher während des ersten Schreibens von Headern für ein Dataset unterschiedlich großen Speicherplatz belegen, die ersten Header können in verschiedenen hierin beschriebenen Ausführungsformen eine Länge von 0 Byte (keine Header), 4 Byte und/oder 8 Byte haben, wogegen die Umschreib-Header während des Umschreibens eine Länge von 12 Byte haben können.
  • In einigen Ausführungsformen kann ein Vorgang bei Vorhandensein von unterbrochenen Datasets unter Verwendung der Ausführungsformen möglich sein, die in 8A bis 11B beschrieben wurden. In diesen Ausführungsformen kann das Schreiben eines Datasets unterbrochen werden, beispielsweise aufgrund eines Fehlers oder einer Störung, die zu fehlerhaft geschriebenen Spuren führen können. Wenn das Schreiben unterbrochen wird, wird jedes Dataset, für das sämtliche SCO-Gruppen nicht erfolgreich aufgezeichnet und anschließend überprüft worden sind, als unterbrochenes Dataset betrachtet. Die Reihenfolge von CWI-4s während eines ersten Schreibens eines Datasets kann durch das Bandlayout vorab bestimmt werden und wäre dem Empfänger daher im Prinzip bekannt. Wenn das Schreiben eines Datasets unterbrochen wird, muss der Empfänger zumindest eine Gruppe von niedrigstwertigen Bits kennen, die die Adresse der CWI-4 angeben, weil das Schreiben von bereits bekannten SCO-Gruppen im Fall von unterbrochenen Datasets eventuell wiederholt werden muss, wenn sie nach einem Read-While-Write nicht überprüft worden sind.
  • Das Verfahren 1300 kann in einer Ausführungsform in einem System ausgeführt werden. In einer weiteren Ausführungsform kann das Verfahren 1300 in einem Computerprogrammprodukt ausgeführt werden. Das Computerprogrammprodukt kann zum Schreiben von Daten konfiguriert werden, die in logischen Arrays mit Zeilen von variabler Länge organisiert sind. Das Computerprogrammprodukt kann ein computerlesbares Speichermedium mit darauf verkörperten Programmanweisungen aufweisen, wobei die Programmanweisungen durch einen Prozessor ausführbar sind, um den Prozessor zu veranlassen, das Verfahren 1300 auszuführen.
  • Die vorliegende Erfindung kann ein System, ein Verfahren und/oder ein Computerprogrammprodukt sein. Das Computerprogrammprodukt kann ein computerlesbares Speichermedium (oder Speichermedien) mit einem computerlesbaren Programmcode darauf enthalten, um einen Prozessor zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
  • Das computerlesbare Speichermedium kann eine konkrete Einheit sein, die Anweisungen zur Verwendung durch eine Anweisungsausführungseinheit beibehalten und speichern kann. Ein computerlesbares Speichermedium kann zum Beispiel eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiter-Speichereinheit oder jede geeignete Kombination aus dem Vorgenannten sein, es ist aber nicht darauf beschränkt. Eine nicht erschöpfende Liste von spezielleren Beispielen für das computerlesbare Speichermedium enthält Folgendes: eine tragbare Computerdiskette, eine Festplatte, einen Direktzugriffspeicher (RAM), einen Nur-Lese-Speicher (ROM), einen löschbarer programmierbarer Nur-Lese-Speicher (EPROM oder Flash-Speicher), einen statischer Arbeitsspeicher (SRAM), einen tragbaren CD-ROM, ein DVD-Laufwerk (DVD), einen Speicherstick, eine Diskette, eine mechanisch verschlüsselte Einheit wie beispielsweise Lochkarten oder erhabene Strukturen in einer Rille mit darauf aufgezeichneten Anweisungen und jede geeignete Kombination des Vorgenannten. Ein computerlesbares Speichermedium, wie hierin verwendet, muss nicht als transitorische Signale per se ausgelegt sein, wie beispielsweise Funkwellen oder andere sich frei verbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder andere Übertragungsmedien verbreiten (z.B. Lichtimpulse, die ein Lichtwellenleiterkabel durchlaufen) oder elektrische Signale, die durch einen Draht übertragen werden.
  • Hierin beschriebene computerlesbare Programmanweisungen können auf jeweilige Datenverarbeitungs-/Verarbeitungseinheiten von einem computerlesbaren Speichermedium oder auf einen externen Computer oder eine externe Speichereinheit über ein Netzwerk, zum Beispiel das Internet, ein lokales Netz, ein Weitverkehrsnetz und/oder ein drahtloses Netzwerk heruntergeladen werden. Das Netzwerk kann Kupferübertragungsleitungen, Lichtwellenleiter, drahtlose Übertragung, Router, Firewalls, Switches, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerk-Adapterkarte oder Netzwerk-Schnittstelle in jeder Datenverarbeitungs-/Verarbeitungseinheit empfängt computerlesbare Programmanweisungen von dem Netzwerk und leitet die computerlesbaren Programmanweisungen zur Speicherung in einem computerlesbaren Speichermedium in der jeweiligen Datenverarbeitungs-/Verarbeitungseinheit weiter.
  • Computerlesbare Programmanweisungen zum Ausführen von Operationen der vorliegenden Erfindung können Assembler-Anweisungen, Anweisungssatzarchitektur-(Instruction Set Architecture) (ISA) Anweisungen, Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, Zustandseinstellungsdaten oder anderer Quellcode oder Objektcode sein, die in jeder Kombination von einer oder mehreren Programmiersprachen, einschließlich Smalltalk, C++ oder dergleichen, und herkömmlichen prozeduralen Programmiersprachen wie der Programmiersprache „C“ oder ähnlichen Programmiersprachen geschrieben sind. Die computerlesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Softwarepaket, 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 dem letzteren Szenario kann der entfernt angeordnete Computer mit dem Computer des Benutzers über jeden Typ von Netzwerk verbunden werden, einschließlich ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann zu einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Nutzung eines Internet-Dienstanbieters). In einigen Ausführungsformen können elektronische Schaltungen, zum Beispiel programmierbare Logikschaltungen, im Feld programmierbare Gatter-Arrays (FPGA) oder programmierbare Logik-Arrays (PLA) die computerlesbaren Programmanweisungen unter Verwendung von Zustandsinformationen der computerlesbaren Programmanweisungen zum Personalisieren der elektronischen Schaltung ausführen, um Aspekte der vorliegenden Erfindung auszuführen.
  • Aspekte der vorliegenden Erfindung werden hierin unter Bezugnahme auf Veranschaulichungen von Ablaufplänen und/oder Blockschaubildern von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es versteht sich, dass jeder Block in den Veranschaulichungen von Ablaufplänen und/oder Blockschaubildern und Kombinationen von Blöcken in den Veranschaulichungen von Ablaufplänen und/oder Blockschaubildern durch computerlesbare Programmanweisungen umgesetzt werden können.
  • Diese computerlesbaren Programmanweisungen können für einen Prozessor eines Mehrzweckcomputers, eines Spezialcomputers oder andere Vorrichtungen, die programmierbare Daten verarbeiten, bereitgestellt werden, um eine Maschine zu erzeugen, sodass die Anweisungen, die über den Prozessor des Computers oder andere Vorrichtungen, die programmierbare Daten verarbeiten, ausgeführt werden, Mittel zum Umsetzen der Funktionen/Handlungen erstellen, die in dem Ablaufplan und/oder dem Block oder den Blöcken des Blockschaubilds angegeben sind. Diese computerlesbaren Programmanweisungen können auch in einem computerlesbaren Speichermedium gespeichert werden, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Weise funktionieren, sodass das computerlesbare Speichermedium mit den darin gespeicherten Anweisungen einen Fertigungsartikel aufweist, einschließlich Anweisungen, die die in dem Ablaufplan und/oder dem Block oder den Blöcken des Blockschaubilds angegebene Funktion/Handlung umsetzen.
  • Die computerlesbaren Programmanweisungen können auch auf einen Computer, andere programmierbare Datenverarbeitungsvorrichtungen oder eine andere Einheit geladen werden, um die Ausführung einer Serie von Arbeitsschritten auf dem Computer, einer anderen programmierbaren Vorrichtung oder anderen Einheit zu veranlassen, um einen über den Computer umgesetzten Prozess zu erzeugen, sodass die Anweisungen, die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer Einheit ausgeführt werden, die Funktionen /Handlungen umsetzen, die in dem Ablaufplan und/oder dem Block oder den Blöcken des Blockschaubilds angegeben sind.
  • Der Ablaufplan und die Blockschaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb von möglichen Umsetzungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. Diesbezüglich kann jeder Block in dem Ablaufplan oder in den Blockschaubildern ein Modul, ein Segment oder einen Abschnitt von Anweisungen darstellen, der eine oder mehrere ausführbare Anweisungen zum Umsetzen der angegebenen logischen Funktion(en) aufweist. In einigen alternativen Umsetzungen können die in dem Block angegebenen Funktionen außerhalb der Reihenfolge auftreten, die in den Figuren angegeben ist. Zum Beispiel können zwei nacheinander gezeigte Blöcke tatsächlich im Wesentlichen parallel ausgeführt werden, oder die Blöcke können manchmal in der umgekehrten Reihenfolge ausgeführt werden, was von der beteiligten Funktionalität abhängt. Es wird ebenfalls angemerkt, dass jeder Block der Blockschaubilder und/oder Veranschaulichung des Ablaufplans und Kombinationen von Blöcken in den Blockschaubildern und/oder der Veranschaulichung des Ablaufplans durch spezielle Systeme auf Grundlage von Hardware umgesetzt werden können, die die angegebenen Funktionen oder Handlungen ausführen oder Kombinationen von spezieller Hardware und Computeranweisungen ausführen.
  • Des Weiteren kann ein System gemäß verschiedenen Ausführungsformen einen Prozessor und eine Logik enthalten, die integriert und/oder durch den Prozessor ausführbar ist, um einen oder mehrere der hierin genannten Prozessschritte auszuführen. Mit integriert ist gemeint, dass in den Prozessor eine Logik als Hardware-Logik eingebettet ist, wie beispielsweise eine anwendungsspezifische integrierte Schaltung (ASIC), ein feldprogrammierbares Gatter-Array (FPGA) usw. Mit durch den Prozessor ausführbar ist gemeint, dass die Logik eine Hardware-Logik, eine Software-Logik wie beispielsweise Firmware, Teil eines Betriebssystems, Teil eines Anwendungsprogramms usw. oder eine Kombination von Hardware- und Software-Logik ist, auf die vom Prozessor zugegriffen werden kann und die konfiguriert ist, um den Prozessor zu veranlassen, eine Funktionalität nach Ausführung durch den Prozessor auszuführen. Software-Logik kann auf einem lokalen und/oder entfernt angeordneten Arbeitsspeicher jedes in dem Fachgebiet bekannten Arbeitsspeichertyps gespeichert sein. Jeder in dem Fachgebiet bekannte Prozessor kann verwendet werden, wie beispielsweise ein Software-Prozessormodul und/oder ein Hardware-Prozessor wie eine ASIC, ein FPGA, eine Zentraleinheit (CPU), eine integrierte Schaltung (IC), eine Grafikverarbeitungseinheit (GPU) usw.
  • Es ist klar, dass die verschiedenen Merkmale der vorgenannten Systeme und/oder Methoden auf jede Weise kombiniert werden können, wodurch sie eine Vielzahl von Kombinationen aus den oben dargelegten Beschreibungen erstellen.
  • Ferner ist klar, dass Ausführungsformen der vorliegenden Erfindung in der Form eines Dienstes bereitgestellt werden können, der für den Benutzer als bedarfsabhängiger Dienst (Service-on-Demand) angeboten wird.
  • Zwar wurden oben verschiedene Ausführungsformen beschrieben, doch sollte klar sein, dass sie nur zu Beispielzwecken und nicht zur Einschränkung dargelegt wurden. Daher soll die Breite und der Schutzumfang einer bevorzugten Ausführungsform durch keine der oben beschriebenen beispielhaften Ausführungsformen eingeschränkt werden, sondern nur gemäß den folgenden Ansprüchen und ihren Entsprechungen definiert werden.

Claims (15)

  1. System zum Schreiben von Daten, die in logischen Arrays mit Zeilen von variabler Länge organisiert sind, wobei das System aufweist: einen Controller (138) und eine Logik, die integriert und/oder durch den Controller ausführbar ist, wobei die Logik konfiguriert ist, um: zu veranlassen, dass Daten, die in eine Mehrzahl von logischen Arrays organisiert sind, in einen ersten Schreibabschnitt (710) eines Magnetdatenträgers (122) als eine Mehrzahl von CWI-4-Gruppen geschrieben werden (1302), wobei jedes erste logische Array (600) Zeilen und Spalten mit Symbolen aufweist, wobei jede Zeile eines ersten logischen Arrays (600) vier verschachtelte C1'-Codewörter mit Header (eine CWI-4 mit Header) aufweist, wobei jede CWI-4-Gruppe M gleichzeitig geschriebene Zeilen eines logischen Arrays mit M entsprechenden ersten Headern (604) aufweist; und zu veranlassen, dass mindestens einige der Daten in einen Umschreibabschnitt des Magnetdatenträgers als eine oder mehrere umgeschriebene CWI-4-Gruppen geschrieben werden (1304), wobei jede umgeschriebene CWI-4-Gruppe M gleichzeitig umgeschriebene Zeilen von einem oder mehreren logischen Arrays mit M entsprechenden Umschreib-Header (806) aufweist, wobei eine Länge von mindestens einer umgeschriebenen Zeile, die in dem Umschreibabschnitt des Magnetdatenträgers (122) gespeichert ist, größer ist als mindestens eine von: einer Länge einer anderen umgeschriebenen Zeile in derselben umgeschriebenen CWI-4-Gruppe; und einer Länge von mindestens einer Zeile in einer CWI-4-Gruppe, die in dem ersten Schreibabschnitt (710) des Magnetdatenträgers (122) gespeichert ist.
  2. System nach Anspruch 1, wobei eine Länge von mindestens einem der Umschreib-Header (904) größer als eine Länge von mindestens einem der ersten Header ist.
  3. System nach Anspruch 2, wobei Umschreib-Header (904) für jede der umgeschriebenen CWI-4s, die in dem Umschreibabschnitt des Magnetdatenträgers (122) gespeichert sind, mehr Bytes als erste Header für jede der CWI-4s mit Header aufweisen, die in dem ersten Schreibabschnitt (710) des Magnetdatenträgers gespeichert sind.
  4. System nach Anspruch 1, wobei jedes der logischen Arrays nicht-rechteckig ist aufgrund von einer oder mehreren längeren Zeilen in jedem der logischen Arrays, die mehr Bytes als andere Zeilen von jedem der logischen Arrays aufweisen.
  5. System nach Anspruch 4, wobei ein erster Header von jeder der einen oder der mehreren längeren Zeilen von jedem der logischen Arrays mehr Bytes aufweist als ein erster Header der anderen Zeilen von jedem der logischen Arrays.
  6. System nach Anspruch 4, wobei ein C1'-Codewort von jeder der einen oder der mehreren längeren Zeilen von jedem der logischen Arrays mehr Bytes aufweist als ein C1'-Codewort der anderen Zeilen von jedem der logischen Arrays.
  7. System nach Anspruch 4, wobei eine Zeilenparität von der einen oder den mehreren längeren Zeilen jedes der logischen Arrays mehr Bytes aufweist als eine Zeilenparität der anderen Zeilen von jedem der logischen Arrays.
  8. System nach Anspruch 1, wobei die Logik ferner konfiguriert ist, um auszuwählen, welche CWI-4s in dem Umschreibabschnitt des Magnetdatenträgers (122) auf Grundlage von Fehlern umgeschrieben werden sollen, die in CWI-4s erfasst wurden, die in dem ersten Schreibabschnitt (710) des Magnetdatenträgers (122) gespeichert sind.
  9. System nach Anspruch 8, wobei die Logik ferner konfiguriert ist, um die Fehler in den CWI-4s, die in dem ersten Schreibabschnitt (170) des Magnetdatenträgers (122) gespeichert sind, unter Verwendung eines Read-While-Write-Prozesses zu erfassen.
  10. Verfahren (1300) zum Schreiben von Daten, die in logischen Arrays mit Zeilen von variabler Länge organisiert sind, wobei das Verfahren (1300) aufweist: Schreiben (1302) von Daten, die in eine Mehrzahl von logischen Arrays organisiert sind, in einen ersten Schreibabschnitt eines Magnetdatenträgers als eine Mehrzahl von CWI-4-Gruppen, wobei jedes erste logische Array Zeilen und Spalten mit Symbolen aufweist, wobei jede Zeile eines ersten logischen Arrays vier verschachtelte C1'-Codewörter mit Header (eine CWI-4 mit Header) aufweist, wobei jede CWI-4-Gruppe M gleichzeitig geschriebene Zeilen eines logischen Arrays mit M entsprechenden ersten Headern aufweist; und Schreiben (1304) von mindestens einigen der Daten in einen Umschreibabschnitt des Magnetdatenträgers als eine oder mehrere umgeschriebene CWI-4-Gruppen, wobei jede umgeschriebene CWI-4-Gruppe M gleichzeitig umgeschriebene Zeilen von einem oder mehreren logischen Arrays mit M entsprechenden Umschreib-Header aufweist, wobei eine Länge von mindestens einer umgeschriebenen Zeile, die in dem Umschreibabschnitt des Magnetdatenträgers (122) gespeichert ist, größer ist als mindestens eine von: einer Länge einer anderen umgeschriebenen Zeile in derselben umgeschriebenen CWI-4-Gruppe; und einer Länge von mindestens einer Zeile in einer CWI-4-Gruppe, die in dem ersten Schreibabschnitt (710) des Magnetdatenträgers (122) gespeichert ist.
  11. Verfahren (1300) nach Anspruch 10, wobei eine Länge von mindestens einem der Umschreib-Header (804) größer als eine Länge von mindestens einem der ersten Header (806) ist.
  12. Verfahren (1300) nach Anspruch 11, wobei Umschreib-Header für jede der umgeschriebenen CWI-4s, die in dem Umschreibabschnitt (802) des Magnetdatenträgers gespeichert sind, mehr Bytes als erste Header für jede der CWI-4s mit Header aufweisen, die in dem ersten Schreibabschnitt (710) des Magnetdatenträgers (122) gespeichert sind.
  13. Verfahren (1300) nach Anspruch 10, wobei jedes der logischen Arrays nicht-rechteckig ist aufgrund von einer oder mehreren längeren Zeilen in jedem der logischen Arrays, die mehr Bytes als andere Zeilen von jedem der logischen Arrays aufweisen.
  14. Verfahren (1300) nach Anspruch 13, wobei ein erster Header von jeder der einen oder der mehreren längeren Zeilen von jedem der logischen Arrays mehr Bytes aufweist als ein erster Header der anderen Zeilen von jedem der logischen Arrays, und/oder wobei ein C1'-Codewort von jeder der einen oder der mehreren längeren Zeilen von jedem der logischen Arrays mehr Bytes aufweist als ein C1'-Codewort der anderen Zeilen von jedem der logischen Arrays, und/oder wobei eine Zeilenparität von der einen oder den mehreren längeren Zeilen jedes der logischen Arrays mehr Bytes aufweist als eine Zeilenparität der anderen Zeilen von jedem der logischen Arrays, und/oder wobei das Verfahren (1300) ferner aufweist: Erfassen von Fehlern in CWI-4s, die in dem ersten Schreibabschnitt (710) des Magnetdatenträgers (122) gespeichert sind, unter Verwendung eines Read-While-Write-Prozesses; und Auswählen, welche CWI-4s in dem Umschreibabschnitt des Magnetdatenträgers auf Grundlage von Fehlern umgeschrieben werden sollen, die in CWI-4s erfasst wurden, die in dem ersten Schreibabschnitt des Magnetdatenträgers (122) gespeichert sind.
  15. Computerprogrammprodukt zum Schreiben von Daten, die in logischen Anordnungen mit Zeilen von variabler Länge organisiert sind, wobei das Computerprogrammprodukt ein computerlesbares Speichermedium mit darauf verkörperten Programmanweisungen aufweist, wobei die Programmanweisungen durch einen Prozessor ausführbar sind, um den Prozessor zu veranlassen, ein Verfahren auszuführen, das aufweist: Schreiben von Daten, die in eine Mehrzahl von logischen Arrays organisiert sind, durch einen Prozessor in einen ersten Schreibabschnitt (710) eines Magnetdatenträgers (122) als eine Mehrzahl von CWI-4-Gruppen, wobei jedes erste logische Array Zeilen und Spalten mit Symbolen aufweist, wobei jede Zeile eines ersten logischen Arrays vier verschachtelte C1'-Codewörter mit Header (eine CWI-4 mit Header) aufweist, wobei jede CWI-4-Gruppe M gleichzeitig geschriebene Zeilen eines logischen Arrays mit M entsprechenden ersten Headern aufweist; und Schreiben (1304) von mindestens einigen der Daten in einen Umschreibabschnitt des Magnetdatenträgers durch den Prozessor als eine oder mehrere umgeschriebene CWI-4-Gruppen, wobei jede umgeschriebene CWI-4-Gruppe M gleichzeitig umgeschriebene Zeilen von einem oder mehreren logischen Arrays mit M entsprechenden Umschreib-Header aufweist, wobei eine Länge von mindestens einer umgeschriebenen Zeile, die in dem Umschreibabschnitt (802) des Magnetdatenträgers (122) gespeichert ist, größer ist als mindestens eine von: einer Länge einer anderen umgeschriebenen Zeile in derselben umgeschriebenen CWI-4-Gruppe; und einer Länge von mindestens einer Zeile in einer CWI-4-Gruppe, die in dem ersten Schreibabschnitt (710) des Magnetdatenträgers (122) gespeichert ist.
DE102016205281.0A 2015-03-31 2016-03-31 Fehlersicherung von unter verwendung von headern mit variabler länge gespeicherten daten Active DE102016205281B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/675,589 US9373357B1 (en) 2015-03-31 2015-03-31 Error protection of data stored using variable-length headers
US14/675,589 2015-03-31

Publications (2)

Publication Number Publication Date
DE102016205281A1 DE102016205281A1 (de) 2016-10-06
DE102016205281B4 true DE102016205281B4 (de) 2019-02-21

Family

ID=56118321

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102016205281.0A Active DE102016205281B4 (de) 2015-03-31 2016-03-31 Fehlersicherung von unter verwendung von headern mit variabler länge gespeicherten daten

Country Status (2)

Country Link
US (3) US9373357B1 (de)
DE (1) DE102016205281B4 (de)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US10418062B2 (en) * 2017-12-19 2019-09-17 International Business Machines Corporation Efficient rewrite using larger codeword sizes
US10691376B2 (en) * 2018-08-29 2020-06-23 International Business Machines Corporation Prioritized sourcing for efficient rewriting
US10937453B1 (en) * 2020-03-26 2021-03-02 International Business Machines Corporation Magnetic tape device capable of selecting codeword rewrite based on determined threshold

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090177947A1 (en) 2008-01-08 2009-07-09 Setsuko Masuda Method for appending data to tape medium, and apparatus employing the same
US20140355151A1 (en) 2013-06-04 2014-12-04 International Business Machines Corporation Tape header protection scheme for use in a tape storage subsystem

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5592342A (en) 1994-05-23 1997-01-07 Quantum Corporation Method for packing variable size user data records into fixed size blocks on a storage medium
US5841600A (en) 1996-01-11 1998-11-24 Quantum Corporation Randomly ordered data block envelope tape format
US7224545B2 (en) * 2004-04-15 2007-05-29 Quantum Corporation Methods and systems for overwrite protected storage media
JP4131517B2 (ja) 2005-09-06 2008-08-13 インターナショナル・ビジネス・マシーンズ・コーポレーション テープ媒体にデータを書き込むための装置
JP4745171B2 (ja) 2006-08-29 2011-08-10 東芝ストレージデバイス株式会社 制御装置および記憶装置
US9190076B2 (en) 2012-05-29 2015-11-17 International Business Machines Corporation Data format using an efficient reverse concatenated modulation code for magnetic tape recording
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090177947A1 (en) 2008-01-08 2009-07-09 Setsuko Masuda Method for appending data to tape medium, and apparatus employing the same
US20140355151A1 (en) 2013-06-04 2014-12-04 International Business Machines Corporation Tape header protection scheme for use in a tape storage subsystem

Also Published As

Publication number Publication date
US20160292033A1 (en) 2016-10-06
US9373357B1 (en) 2016-06-21
US10152375B2 (en) 2018-12-11
US10055289B2 (en) 2018-08-21
DE102016205281A1 (de) 2016-10-06
US20160292034A1 (en) 2016-10-06

Similar Documents

Publication Publication Date Title
DE102016205281B4 (de) Fehlersicherung von unter verwendung von headern mit variabler länge gespeicherten daten
DE112011100199B4 (de) Integrierter Daten- und Kopfdatenschutz für Bandlaufwerke
DE10133595B4 (de) Pufferschaltung, Speicherzugriffsverfahren und Reed-Solomon-Decoder
DE112018005762B4 (de) Neuschreiben von datenobjekten auf speichermedien mit sequenziellem zugriff
DE69831790T2 (de) Verfahren zum Lesen während des Schreibens in einer Datenspeichervorrichtung
DE112014002870B4 (de) Kombinations-Fehler- und Löschdecodierung für Produktcodes
DE3040004C2 (de)
DE3416047C2 (de) Fehlerkorrekturverfahren für digitale Informationsdaten
DE2357004C3 (de) Verfahren und Einrichtung zur Fehlerkorrektur für Daten
DE112016003638B4 (de) Auf eine Decodierung folgende Fehlerprüfung mit Diagnose für Produktcodes
DE3418912C2 (de) Verfahren zum Umgruppieren digitaler Informationsdaten für eine Fehlerermittlung und/oder -korrektur
DE112013001025B4 (de) Kombinierte Soft-Erkennung/Soft-Decodierung in Bandlaufwerk-Speicherkanälen
DE2427463C3 (de)
DE60129897T2 (de) Datenverarbeitungsverfahren und Gerät, Datenaufzeichnungsmedium, Wiedergabeverfahren und Gerät welcher dieses Verfahren anwendet
DE102005053625B4 (de) Speichermodul mit einer Mehrzahl von Speicherbausteinen
DE2853892A1 (de) Verfahren und schaltungsanordnung zur codierung und decodierung von pruefbits
DE102017129990A1 (de) Logisches format, bei dem laterales codieren genutzt wird, zum speichern von daten auf magnetband
DE3132840C2 (de)
DE69832791T2 (de) Verbessertes Datenschreiben auf Datenspeichermedium
DE102012213788A1 (de) Ende-zu-Ende-Datenschutz bei gleichzeitiger Unterstützung mehrerer CRC-Algorithmen
DE102017103347B4 (de) Verarbeitung von daten in speicherzellen eines speichers
DE69835345T2 (de) Verfahren zur kodierung von mehrwortinformation
DE3131764A1 (de) Digitalsignal-uebertragungssystem
DE69814465T2 (de) Verfahren und gerät zur datenspeicherung auf magnetischen medien, die fehlerkorrekturkodes enthalten
DE102007007546A1 (de) Fehlerkorrekturcode-Striping

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R082 Change of representative

Representative=s name: LIFETECH IP SPIES & BEHRNDT PATENTANWAELTE PAR, DE

Representative=s name: SPIES & BEHRNDT PATENTANWAELTE PARTG MBB, DE

R082 Change of representative

Representative=s name: SPIES & BEHRNDT PATENTANWAELTE PARTG MBB, DE

R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final
R084 Declaration of willingness to licence