DE102017129990A1 - Logisches format, bei dem laterales codieren genutzt wird, zum speichern von daten auf magnetband - Google Patents

Logisches format, bei dem laterales codieren genutzt wird, zum speichern von daten auf magnetband Download PDF

Info

Publication number
DE102017129990A1
DE102017129990A1 DE102017129990.4A DE102017129990A DE102017129990A1 DE 102017129990 A1 DE102017129990 A1 DE 102017129990A1 DE 102017129990 A DE102017129990 A DE 102017129990A DE 102017129990 A1 DE102017129990 A1 DE 102017129990A1
Authority
DE
Germany
Prior art keywords
codewords
codeword
magnetic tape
data
tracks
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.)
Pending
Application number
DE102017129990.4A
Other languages
English (en)
Inventor
Roy D. Cideciyan
Simeon Furrer
Ernest S. Gale
Mark A. Lantz
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE102017129990A1 publication Critical patent/DE102017129990A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/12Formatting, e.g. arrangement of data block or words on the record carriers
    • G11B20/1201Formatting, e.g. arrangement of data block or words on the record carriers on tapes
    • G11B20/1207Formatting, e.g. arrangement of data block or words on the record carriers on tapes with transverse tracks only
    • 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
    • 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/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/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/27Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes using interleaving techniques
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2906Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
    • H03M13/2909Product codes
    • 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/14Digital recording or reproducing using self-clocking codes
    • G11B20/1403Digital recording or reproducing using self-clocking codes characterised by the use of two levels
    • G11B2020/1476Synchronisation patterns; Coping with defects thereof
    • G11B2020/148Synchronisation patterns; Coping with defects thereof using error detecting or error correcting codes
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/90Tape-like record carriers
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/1515Reed-Solomon codes

Abstract

Bei einer Ausführungsform beinhaltet ein Verfahren Empfangen von Daten zum Speichern auf einem Magnetbandmedium unter Verwendung eines Bandlaufwerks, wobei die Daten in einer im Voraus festgelegten Anzahl von zweidimensionalen Arrays organisiert sind, wobei jedes zweidimensionale Array eine Mehrzahl von eng gestreuten (NS-) Codewörtern enthält, die orthogonal zu einer Mehrzahl von weit gestreuten (WS-) Codewörtern positioniert ist (die relative Streuung bezieht sich auf den Raum, der beim Schreiben auf dem Magnetbandmedium belegt wird). Das Verfahren enthält außerdem Schreiben aller NS-Codewörter nacheinander auf eine Mehrzahl von Spuren des Magnetbandmediums unter Verwendung einer ersten Anzahl von Kanälen des Bandlaufwerks, das in der Lage ist, Daten gleichzeitig auf Bandspuren zu schreiben. Ein erstes NS-Codewort von einem ersten zweidimensionalen Array wird vollständig auf das Magnetbandmedium geschrieben, bevor mit dem Schreiben eines zweiten NS-Codeworts von dem ersten zweidimensionalen Array begonnen wird. Außerdem ist die Mehrzahl von NS-Codewörtern mit einer stärkeren Codierung geschützt als die Mehrzahl von WS-Codewörtern.

Description

  • HINTERGRUND
  • Die vorliegende Erfindung bezieht sich auf ein logisches Format zum Speichern von Daten auf Magnetband und insbesondere auf ein logisches Format, bei dem laterales Codieren genutzt wird.
  • Fehlerkorrektur-Codierung (ECC) bei Linear-Tape-Open- (LTO-) und Firmen-Bandlaufwerken wird verwendet, um sicherzustellen, dass die Byte-Fehlerrate (BER) am Ausgang des BER-Decodierers kleiner ist als etwa 1 × 10-19, auch wenn die BER am Ausgang des Detektors möglicherweise ungefähr 1 × 10-3 beträgt. Des Weiteren ist ECC in der Lage, große räumliche Fehler auf Magnetband zu korrigieren. ECC ist insbesondere in der Lage, einige große Burst-Fehler aufgrund von Fehlern des Mediums zu korrigieren. Weiterhin ist es in der Lage, alle Fehler in einem lateralen Bandstripe mit großer Breite zu korrigieren, die infolge von momentanen Geschwindigkeitsschwankungen während des Bandtransports von einer Spule einer Bandkassette zur anderen Spule auftreten können. ECC ist schließlich in der Lage, eine große Anzahl von toten Spuren zu korrigieren, die beispielsweise die Folge von vorübergehend oder dauerhaft nichtfunktionierenden Leseelementen in dem Magnetbandkopf des Bandlaufwerks sind. Moderne Bandlaufwerke sind in der Lage, M/8 tote Spuren zu korrigieren, wobei es sich bei M um die Gesamtzahl von Spuren handelt, die gleichzeitig auf das Magnetband geschrieben oder von diesem gelesen werden.
  • Bei der Bandspeicherung werden verhältnismäßig lange (etwa 1 KB) in Längsrichtung verschachtelte Fehlerkorrekturwörter, die üblicherweise als Codewort-Verschachtelungen (CWI-4) bezeichnet werden, die vier byte-verschachtelte ZeilenCodewörter von vier verschiedenen Produkt-Codewörtern enthalten, auf Spuren des Magnetbands geschrieben. Bei heutigen Empfänger-Architekturen, bei denen ein einmaliger Durchlauf durch die digitalen Eingangs-Funktionen und die digitale Erkennung ausgeführt wird, ist die Decodier-Latenz, die mit gelesenen Codewörtern verbunden ist, für decodierte Bits untragbar hoch für eine Verwendung zum Ansteuern von entscheidungsgesteuerten digitalen Eingangsfunktionen. Offensichtlich sind große Verzögerungen bei entscheidungsgesteuerten Schleifen nicht erwünscht und sollten deshalb vermieden werden. Ein derartiges Schema würde bei heutigen Bandlaufwerk-Lesearchitekturen einen Betrag der Latenz, der nicht beherrschbar ist, in den Lese- und Decodierprozess einführen. Bei Empfänger-Architekturen, bei denen ein Iterieren zwischen Decodierer- und digitalen Eingangsfunktionen erfolgt, ist die Puffergröße, die zum Speichern der Abtastwerte am Ausgang des Analog-Digital- (A/D-) Umsetzers verwendet wird, sehr groß, wenn decodierte Bits in heutigen Band-ECC-Architekturen verwendet werden, um entscheidungsgesteuerte digitale Eingangsfunktionen während einer zweiten und bei späteren Iterationen anzusteuern. Des Weiteren ist die Fehlerkorrekturfähigkeit dieser longitudinalen Codewörter bei heutigen Bandlaufwerken verhältnismäßig schlecht.
  • KURZDARSTELLUNG
  • Bei einer Ausführungsform enthält ein Bandlaufwerk eine Mehrzahl von Schreibkopfelementen, eine Verarbeitungsschaltung und ein Logikelement, das in die Verarbeitungsschaltung integriert ist, das durch die Verarbeitungsschaltung ausführbar ist oder das in die Verarbeitungsschaltung integriert und durch diese ausführbar ist. Dieses Logikelement ist so eingerichtet, dass es bewirkt, dass die Verarbeitungsschaltung Daten zum Speichern auf ein Magnetbandmedium unter Verwendung einer Mehrzahl von Schreibkopfelementen empfängt, wobei die Daten in einer im Voraus festgelegten Anzahl von zweidimensionalen Arrays organisiert sind, wobei jedes zweidimensionale Array eine Mehrzahl von eng gestreuten (NS-) Codewörtern enthält, die orthogonal zu einer Mehrzahl von weit gestreuten (WS-) Codewörtern positioniert ist. Das Logikelement ist außerdem so eingerichtet, dass es bewirkt, dass die Verarbeitungsschaltung alle NS-Codewörter nacheinander auf eine Mehrzahl von Spuren des Magnetbandmediums unter Verwendung einer ersten Anzahl aus der Mehrzahl von Schreibkopfelementen schreibt, die in der Lage sind, Daten gleichzeitig auf die Bandspuren zu schreiben. Ein erstes NS-Codewort von einem ersten zweidimensionalen Array wird vollständig auf das Magnetbandmedium geschrieben, bevor mit dem Schreiben eines zweiten NS-Codeworts von dem ersten zweidimensionalen Array begonnen wird. Außerdem wird die Mehrzahl von NS-Codewörtern mit einer stärkeren Codierung geschützt als die Mehrzahl von WS-Codewörtern.
  • Bei einer weiteren Ausführungsform beinhaltet ein Verfahren Empfangen von Daten zum Speichern auf ein Magnetbandmedium unter Verwendung eines Bandlaufwerks, wobei die Daten in einer im Voraus festgelegten Anzahl von zweidimensionalen Arrays organisiert sind, wobei jedes zweidimensionale Array eine Mehrzahl von NS Codewörtern enthält, die orthogonal zu einer Mehrzahl von WS-Codewörtern positioniert ist. Das Verfahren beinhaltet außerdem Schreiben aller NS-Codewörter nacheinander auf eine Mehrzahl von Spuren des Magnetbandmediums unter Verwendung einer ersten Anzahl von Kanälen des Bandlaufwerks, das in der Lage ist, Daten gleichzeitig auf Bandspuren zu schreiben. Ein erstes NS-Codewort von einem ersten zweidimensionalen Array wird vollständig auf das Magnetbandmedium geschrieben, bevor mit dem Schreiben eines zweiten NS-Codeworts von dem ersten zweidimensionalen Array begonnen wird. Außerdem wird die Mehrzahl von NS-Codewörtern mit einer stärkeren Codierung geschützt als die Mehrzahl von WS-Codewörtern.
  • Bei einer weiteren Ausführungsform enthält ein Computerprogrammprodukt ein computerlesbares Speichermedium, in dem Programmbefehle verkörpert sind. Die verkörperten Programmbefehle sind durch eine Verarbeitungsschaltung ausführbar, um zu bewirken, dass die Verarbeitungsschaltung Daten zum Speichern auf einem Magnetbandmedium unter Verwendung eines Bandlaufwerks empfängt, wobei die Daten in einer im Voraus festgelegten Anzahl von zweidimensionalen Arrays organisiert sind, wobei jedes zweidimensionale Array eine Mehrzahl von NS Codewörtern enthält, die orthogonal zu einer Mehrzahl von WS-Codewörtern positioniert ist. Außerdem wird die Mehrzahl von NS-Codewörtern mit einer stärkeren Codierung geschützt als die Mehrzahl von WS-Codewörtern.
  • Weitere Aspekte und Ausführungsformen der vorliegenden Erfindung werden aus der folgenden genauen Beschreibung deutlich, die in Verbindung mit den Zeichnungen die Grundgedanken der Erfindung beispielhaft veranschaulichen.
  • Figurenliste
    • 1 veranschaulicht ein Netzwerk-Speichersystem gemäß einer Ausführungsform.
    • 2A zeigt ein Bandlaufwerk gemäß einer Ausführungsform.
    • 2B zeigt eine Bandkassette, die bei dem Bandlaufwerk von 2A verwendet werden kann, gemäß einer Ausführungsform.
    • 3 veranschaulicht einen konzeptionellen Datenfluss bei einem Bandlaufwerk gemäß einer Ausführungsform.
    • 4 zeigt eine vereinfachte Datencodierung unter Verwendung eines zweidimensionalen logischen Array.
    • 5 zeigt eine Beziehung zwischen Produkt-Codewörtern und einer Teildatenmenge gemäß einer Ausführungsform.
    • 6 zeigt ein Bandlayout gemäß einer Ausführungsform.
    • 7 zeigt ein logisches Datenformat zum Speichern auf einem Magnetband nach dem Stand der Technik.
    • 8 zeigt ein logisches Datenformat zum Speichern auf einem Magnetband gemäß einer Ausführungsform.
    • 9 zeigt einen Blockschaltplan eines Bandlaufwerk-Schreibkanals gemäß einer Ausführungsform.
    • 10 zeigt die Verteilung von Daten längs M Spuren eines Magnetbands gemäß einer Ausführungsform.
    • 11 zeigt die Verteilung von Daten längs M Spuren eines Magnetbands gemäß einer weiteren Ausführungsform.
    • 12 zeigt die Verteilung von Daten längs M Spuren eines Magnetbands gemäß einer nochmals weiteren Ausführungsform.
    • 13 zeigt einen Ablaufplan eines Verfahrens gemäß einer Ausführungsform.
  • GENAUE BESCHREIBUNG
  • Die nachfolgende Beschreibung erfolgt für den Zweck des Veranschaulichens der allgemeinen Grundgedanken der vorliegenden Erfindung und soll die darin beanspruchten erfinderischen Konzepte nicht einschränken. Des Weiteren können hier beschriebene Merkmale in Kombination mit anderen beschriebenen Merkmalen in jeder der verschiedenen möglichen Kombinationen und Permutationen verwendet werden.
  • Sofern in diesem Zusammenhang nicht ausdrücklich anders festgelegt, sollen allen Ausdrücken ihre breitestmögliche Interpretation gegeben werden, darunter Bedeutungen, die sich aus der Beschreibung ergeben, sowie Bedeutungen, die für einen Fachmann klar sind und/oder in Wörterbüchern, Abhandlungen usw. definiert sind.
  • Es ist außerdem zu beachten, dass die in der Beschreibung und den angefügten Ansprüchen verwendeten Singularformen „ein“ und „der/die/das“ die Pluralbezeichnungen enthalten, sofern nicht anders festgelegt. Es ist des Weiteren klar, dass die Ausdrücke „aufweist“ und/oder „aufweisend“ bei Verwendung in dieser Beschreibung das Vorhandensein von festgelegten Merkmalen, Ganzzahlen, Schritten, Operationen, Elementen und/oder Komponenten spezifizieren, jedoch nicht das Vorhandensein oder das Hinzufügen von einem oder mehreren Merkmalen, Ganzzahlen, Schritten, Operationen, Elementen, Komponenten und/oder Gruppen hiervon ausschließen. Der hier verwendete Ausdruck „etwa“ gibt den Wert, der dem Ausdruck „etwa“ folgt, sowie alle Werte an, die dem Wert, der dem Ausdruck „etwa“ folgt, in angemessener Weise nahe liegen, was für einen Fachmann klar sein sollte. Sofern nicht anders festgelegt, bezeichnet der Ausdruck „etwa“ den Wert, der dem Ausdruck „etwa“ folgt, ± 10 % des Werts. Beispielsweise gibt „etwa 10“ alle Werte von 9,0 bis 11,0 an und schließt diese ein.
  • Infolge der Einschränkungen, die mit heutigen Bandlaufwerk-Codierschemen verbunden sind, wäre ein neues logisches Format für Magnetband wünschenswert, das eine hohe Datenintegrität und große Fähigkeiten der Burst-Fehlerkorrektur in Verbindung mit dem Ermöglichen von Leistungsverbesserungen bereitstellt, ohne dass große Decodier-Latenzzeiten und umfangreiche Puffergrößen erforderlich sind.
  • Die folgende Beschreibung offenbart mehrere bevorzugte Ausführungsformen von Systemen, Verfahren und Computerprogrammprodukten, die zum Verwenden eines logischen Formats zum Speichern von Daten auf Magnetband eingerichtet sind, bei dem eine verbesserte laterale Codierung verwendet wird.
  • Eine Ausführungsform beruht auf Codieren von Datenwörtern in einem Datensatz (Data Set, DS) als eine im Voraus festgelegte Anzahl (P) von zweidimensionalen (2D) Produkt-Codewörtern und Schreiben der Spalten der 2D-Produkt-Codewörter als eine Mehrzahl von eng gestreuten Codewörtern (besonders eng, beispielsweise gleich oder weniger als etwa 1,2 Mikrometer im longitudinalen Bandraum) aus einem 2D-Produkt-Codewort über eine im Voraus festgelegte Anzahl (M) von Spuren eines Magnetbands. Die Zeichen in den Zeilen der 2D Produkt-Codewörter sind gleichmäßig gestreut (logisch getrennt) in einer Mehrzahl von weit gestreuten Codewörtern (besonders weit, beispielsweise gleich oder mehr als etwa 80 nm im longitudinalen Bandraum) längs einer Spur des Magnetbands. Zu einigen Vorteilen dieses Ansatzes gehören geringe Latenzzeit während des Prozesses des Decodierens der eng gestreuten Codewörter und verbesserte Leistung der Fehlerrate infolge der Verwendung von decodierten Bits mit geringer Latenzzeit zum Ansteuern von entscheidungsgesteuerten digitalen Eingangsfunktionen, ohne die Leistungsfähigkeit der Burst-Fehlerkorrektur infolge der Stärke der verwendeten Codierung zu verschlechtern. Es besteht die Möglichkeit, den Empfängerbetrieb bei Signal-Rausch-Verhältnissen (SNRs) zu ermöglichen, die etwa 2 bis 3 dB kleiner sind als gegenwärtige Betriebs-SNRs für den Lesekanal in einem Bandlaufwerk.
  • Fehlerkorrektur-Codewörter, die sowohl längs als auch quer zur den Spuren des Magnetbands räumlich verteilt sind und trotzdem eine sehr enge Streuung längs der Spuren haben, werden auf das Magnetband geschrieben, beispielsweise ein sehr kleiner longitudinaler Abschnitt längs des Magnetbands wie z.B. 1,2 µm oder weniger unter der Annahme, dass eine lineare Dichte von 500 Kilobit pro Inch (Kbpi) und ein eng gestreuter Code (z.B. (96, 84) Reed-Solomon (RS) oder ähnlich) zum Codieren der Daten verwendet wird. Die Kombination von räumlich verteilter Codierung mit kleiner longitudinaler Länge, verschachtelter verketteter Codierung und tiefer Verschachtelung bei einem Magnetband-Layout hat ein leistungsfähiges codiertes Format zur Folge. Die räumlich verteilten Codewörter, die auf Magnetband geschrieben werden, sind in der Lage, verschiedene Formen und Muster anzunehmen, beispielsweise bei einem Ansatz ein Sägezahn-Muster. Bei dieser Ausführungsform sind bei einer Verwendung im Zusammenhang mit Codieren mit iterativer Fehlerkorrektur weitere Leistungsverbesserungen möglich bei kleinen Decodier-Latenzzeiten und kleinen Puffergrößen, die jeweils Vorteile gegenüber heutigen Formaten, Strukturen und Leistungsangaben darstellen.
  • Bei einer allgemeinen Ausführungsform enthält ein Bandlaufwerk eine Mehrzahl von Schreibkopfelementen, eine Verarbeitungsschaltung und ein Logikelement, das in die Verarbeitungsschaltung integriert ist, durch die Verarbeitungsschaltung ausführbar ist oder in die Verarbeitungsschaltung integriert und durch diese ausführbar ist. Das Logikelement ist so eingerichtet, dass es bewirkt, dass die Verarbeitungsschaltung Daten zum Speichern auf einem Magnetbandmedium unter Verwendung der Mehrzahl von Schreibkopfelementen empfängt, wobei die Daten in einer im Voraus festgelegten Anzahl von zweidimensionalen Array organisiert sind, wobei jedes zweidimensionale Array eine Mehrzahl von eng gestreuten (NS-) Codewörtern enthält, die orthogonal zu einer Mehrzahl von weit gestreuten (WS-) Codewörtern positioniert ist. Das Logikelement ist außerdem so eingerichtet, dass es bewirkt, dass die Verarbeitungsschaltung nacheinander alle NS-Codewörter auf eine Mehrzahl von Spuren des Magnetbandmediums unter Verwendung einer ersten Anzahl von der Mehrzahl von Schreibkopfelementen schreibt, die in der Lage sind, gleichzeitig Daten auf Bandspuren zu schreiben. Ein erstes NS-Codewort von einem ersten zweidimensionalen Array wird vollständig auf das Magnetbandmedium geschrieben, bevor mit dem Schreiben eines zweiten NS-Codeworts von dem ersten zweidimensionalen Array begonnen wird. Außerdem wird die Mehrzahl von NS-Codewörtern mit einer stärkeren Codierung geschützt als die Mehrzahl von WS-Codewörtern.
  • Bei einer weiteren allgemeinen Ausführungsform beinhaltet ein Verfahren Empfangen von Daten zum Speichern auf einem Magnetbandmedium unter Verwendung eines Bandlaufwerks, wobei die Daten in einer im Voraus festgelegten Anzahl von zweidimensionalen Arrays organisiert sind, wobei jedes zweidimensionale Array eine Mehrzahl von NS-Codewörtern enthält, die orthogonal zu einer Mehrzahl von WS-Codewörtern positioniert ist. Das Verfahren beinhaltet außerdem Schreiben aller NS-Codewörter nacheinander auf eine Mehrzahl von Spuren des Magnetbandmediums unter Verwendung einer ersten Anzahl von Kanälen des Bandlaufwerks, das in der Lage ist, Daten gleichzeitig auf Bandspuren zu schreiben. Ein erstes NS-Codewort von einem ersten zweidimensionalen Array wird vollständig auf das Magnetbandmedium geschrieben, bevor mit dem Schreiben eines zweiten NS-Codeworts von dem ersten zweidimensionalen Array begonnen wird. Außerdem wird die Mehrzahl von NS-Codewörtern mit einer stärkeren Codierung geschützt als die Mehrzahl von WS-Codewörtern.
  • Bei einer nochmals weiteren allgemeinen Ausführungsform enthält ein Computerprogrammprodukt ein computerlesbares Speichermedium mit darin verkörperten Programmbefehlen. Die verkörperten Programmbefehle sind durch eine Verarbeitungsschaltung ausführbar, um zu bewirken, dass die Verarbeitungsschaltung durch die Verarbeitungsschaltung Daten zum Speichern auf einem Magnetbandmedium unter Verwendung eines Bandlaufwerks empfängt, wobei die Daten in einer im Voraus festgelegten Anzahl von zweidimensionalen Arrays organisiert sind, wobei jedes zweidimensionale Array eine Mehrzahl von NS-Codewörtern enthält, die orthogonal zu einer Mehrzahl von WS-Codewörtern positioniert ist. Die verkörperten Programmbefehle sind außerdem durch die Verarbeitungsschaltung ausführbar, um zu bewirken, dass die Verarbeitungsschaltung durch die Verarbeitungsschaltung alle NS-Codewörter nacheinander auf eine Mehrzahl von Spuren des Magnetbandmediums unter Verwendung einer ersten Anzahl von Kanälen des Bandlaufwerks schreibt, das in der Lage ist, Daten gleichzeitig auf Bandspuren zu schreiben. Ein erstes NS-Codewort von einem ersten zweidimensionalen Array wird vollständig auf das Magnetbandmedium geschrieben, bevor mit dem Schreiben eines zweiten NS-Codeworts von dem ersten zweidimensionalen Array begonnen wird. Außerdem wird die Mehrzahl von NS-Codewörtern mit einer stärkeren Codierung geschützt als die Mehrzahl von WS-Codewörtern.
  • In 1 ist ein Schaltplan eines Netzwerk-Speichersystems 10 gemäß einer Ausführungsform gezeigt. Bei diesem Netzwerk-Speichersystem 10 handelt es sich lediglich um ein Beispiel eines geeigneten Speichersystems, und es soll keine Beschränkung auf den Umfang der Verwendung oder die Funktionalität von hier beschriebenen Ausführungsformen der Erfindung andeuten. Trotzdem kann das Netzwerk-Speichersystem 10 umgesetzt werden und/oder jede der oben dargestellten Funktionalitäten ausführen.
  • In dem Netzwerk-Speichersystem 10 gibt es ein Computersystem/einen Server 12, das bzw. der mit zahlreichen anderen Umgebungen oder Konfigurationen von Universal- oder speziellen Datenverarbeitungssystemen betrieben werden kann. Zu Beispielen von bekannten Datenverarbeitungssystemen, Umgebungen und/oder Konfigurationen, die für eine Verwendung mit dem Computersystem/Server 12 geeignet sind, gehören Personal-Computersysteme, Server-Computersysteme, Thin-Clients, Thick-Clients, handgehaltene oder Laptop-Einheiten, Mehrprozessorsysteme, Systeme auf der Grundlage von Mikroprozessoren, Set-Top-Boxes, programmierbare Verbraucherelektronik, Netzwerk-PCs, Minicomputer-Systeme, Mainframe-Computersysteme und Umgebungen mit verteilter Cloud-Datenverarbeitung, die eines der oben genannten Systeme oder Einheiten enthalten, und dergleichen, sind jedoch nicht auf diese beschränkt.
  • Das Computersystem/der Server 12 kann im allgemeinen Kontext als durch ein Computersystem ausführbare Befehle wie beispielsweise Programmmodule beschrieben werden, die durch ein Computersystem ausgeführt werden. Programmmodule können im Allgemeinen Routinen, Programme, Objekte, Komponenten, Logikelemente, Datenstrukturen, usw. enthalten, die bestimmte Tasks ausführen oder bestimmte abstrakte Datentypen umsetzen. Das Computersystem/der Server 12 kann in verteilten Cloud-Datenverarbeitungsumgebungen realisiert werden, bei denen Tasks durch ferne Verarbeitungseinheiten ausgeführt werden, die über ein Datenverarbeitungsnetzwerk verknüpft sind. Bei einer verteilten Cloud-Datenverarbeitungsumgebung können sich Programmmodule sowohl in lokalen als auch fernen Computersystem-Speichermedien befinden, darunter Speichereinheiten des Arbeitsspeichers.
  • Wie in 1 gezeigt ist das Computersystem/der Server 12 in dem Netzwerk-Speichersystem 10 in Form einer Universal-Datenverarbeitungseinheit gezeigt. Die Komponenten des Computersystems/des Servers 12 können einen oder mehrere Prozessoren oder Verarbeitungseinheiten 16, einen Systemspeicher 28 und einen Bus 18 enthalten, der verschiedene Systemkomponenten, darunter der Systemspeicher 28, mit dem Prozessor 16 verbindet, ohne jedoch auf diese beschränkt zu sein.
  • Der Bus 18 repräsentiert einen oder mehrere von verschiedenen Typen von Busstrukturen, darunter ein Speicherbus oder eine Speichersteuereinheit, ein peripherer Bus, ein beschleunigter Grafikanschluss und ein Prozessor- oder lokaler Bus unter Verwendung einer aus einer Vielfalt von Busarchitekturen. Lediglich beispielhaft und nicht einschränkend gehören zu derartigen Architekturen Industry-Standard-Architecture- (ISA-) Bus, Micro-Channel-Architecture- (MCA-) Bus, Enhanced-ISA- (EISA-) Bus, Video-Electronics-Standards-Association- (VESA-) Lokalbus und Peripheral-Component-Interconnects- (PCI-) Bus.
  • Das Computersystem/der Server 12 enthält üblicherweise eine Vielfalt von durch das Computersystem lesbaren Medien. Bei derartigen Medien kann es sich jedes verfügbare Medium handeln, auf das durch das Computersystem/den Server 12 zugegriffen werden kann, und es enthält sowohl flüchtige und nichtflüchtige Medien als auch Wechsel- und Nichtwechsel-Medien.
  • Der Systemspeicher 28 kann durch ein Computersystem lesbare Medien in der Form eines flüchtigen Speichers wie z.B. ein RAM 30 und/oder einen Cache-Speicher 32 enthalten. Das Computersystem/der Server 12 kann ferner andere flüchtige/nichtflüchtige Wechsel/Nichtwechsel-Speichermedien des Computersystems enthalten. Lediglich beispielhaft kann das Speichersystem 34 zum Lesen von und zum Schreiben auf Nichtwechsel-, nichtflüchtige magnetische Medien bereitgestellt werden - nicht gezeigt sind und üblicherweise als „Festplatte“ bezeichnet, die in einem HDD betrieben werden kann. Obwohl nicht gezeigt können ein magnetisches Plattenlaufwerk zum Lesen von und zum Schreiben auf eine nichtflüchtige magnetische Wechselplatte (z.B. eine „Diskette“) und ein optisches Plattenlaufwerk zum Lesen von und zum Schreiben auf eine nichtflüchtige optische Wechselplatte wie z.B. ein CD-ROM, DVD-ROM oder ein anderes optisches Medium bereitgestellt werden. Bei derartigen Fällen kann jedes Medium mit dem Bus 18 durch eine oder mehrere Datenmedien-Schnittstellen verbunden sein. Wie weiter im Folgenden dargestellt und beschrieben wird, kann der Speicher 28 wenigstens ein Programmprodukt mit einer Gruppe von Programmmodulen (z.B. wenigstens ein Programmmodul) enthalten, die so eingerichtet sind, dass sie die Funktionen von hier beschriebenen Ausführungsformen ausführen.
  • Nicht nur das Programm/Dienstprogramm 40, das eine Gruppe von Programmmodulen 42 (wenigstens ein Programmmodul) aufweist, sondern beispielhaft und nicht als Einschränkung können auch ein Betriebssystem, ein oder mehrere Anwendungsprogramme und Programmdaten in einem Speicher 28 gespeichert sein. In jedem Betriebssystem, einem oder mehreren Anwendungsprogrammen, anderen Programmmodulen und Programmdaten oder bestimmten Kombinationen hiervon kann eine Vernetzungsumgebung realisiert werden. Programmmodule 616 führen im Allgemeinen die Funktionen und/oder Verfahrensweisen von hier beschriebenen Ausführungsformen der Erfindung aus.
  • Das Computersystem/der Server 12 kann außerdem Daten austauschen mit einer oder mehreren externen Einheiten 14 wie z.B. eine Tastatur, eine Zeigeeinheit, eine Anzeige 24 usw.; mit einer oder mehreren Einheiten, die ein Zusammenwirken eines Benutzers mit dem Computersystem/Server 12 ermöglichen; und/oder mit allen Einheiten (z.B. Netzwerkkarte, Modem usw.), die dem Computersystem/Server 12 einen Datenaustausch mit einer oder mehreren anderen Datenverarbeitungseinheiten ermöglichen. Ein derartiger Datenaustausch kann über Eingabe/Ausgabe- (E/A-) Schnittstellen 22 erfolgen. Des Weiteren kann das Computersystem/der Server 12 mit einem oder mehreren Netzwerken wie z.B. einem lokalen Netz (LAN), einem allgemeinen Weitverkehrsnetz (WAN) und/oder einem öffentlichen Netzwerk (z.B. das Internet) über einen Netzwerkadapter 20 Daten austauschen. Wie dargestellt tauscht der Netzwerkadapter 20 Daten mit den anderen Komponenten von Computersystem/Server 602 über einen Bus 18 aus. Obwohl nicht gezeigt sollte klar sein, dass in Verbindung mit dem Computersystem/Server 12 weitere Hardware- und/oder Software-Komponenten verwendet werden könnten. Zu Beispielen gehören, sind jedoch nicht beschränkt auf: Mikrocode, Einheitentreiber, redundante Verarbeitungseinheiten, externe Plattenlaufwerk-Arrays, Systeme mit einem redundanten Array von unabhängigen Platten, (RAID-Systeme), Bandlaufwerke und Datenarchiv-Speichersysteme usw.
  • 2A veranschaulicht ein vereinfachtes Bandlaufwerk 100 eines bandgestützten Speichersystems, das im Kontext der vorliegenden Erfindung verwendet werden kann. Zwar ist in 2A eine spezielle Umsetzung eines Bandlaufwerks gezeigt, es sollte jedoch beachtet werden, dass die hier beschriebenen Ausführungsformen im Kontext jedes Typs von Bandlaufwerksystem umgesetzt werden können.
  • Wie gezeigt werden eine Bandzuführkassette 120 und eine Bandaufnahmespule 121 zum Tragen eines Bandes 122 bereitgestellt. Eine oder mehrere Spulen können Teil einer Wechselkassette bilden und sind nicht notwendigerweise Teil des Bandlaufwerks 100. Das Bandlaufwerk wie das in 2A dargestellte kann des Weiteren einen oder mehrere Antriebsmotoren zum Antreiben der Bandzuführkassette 120 und der Bandaufnahmespule 121 enthalten, um das Band 122 über einen Bandkopf 126 eines beliebigen Typs zu bewegen. Ein derartiger Kopf kann ein Array aus Leseeinrichtungen, Schreibeinrichtungen oder beides enthalten.
  • Führungseinrichtungen 125 führen das Band 122 über den Bandkopf 126. Ein derartiger Bandkopf 126 ist seinerseits über ein Kabel 130 mit einer Steuereinheit 128 verbunden. Bei der Steuereinheit 128 kann es sich um einen Prozessor und/oder ein Logikelement zum Steuern eines Teilsystems des Bandlaufwerks 100 handeln oder sie kann dieses enthalten. Beispielsweise steuert die Steuereinheit 128 üblicherweise Kopffunktionen wie z.B. Servo-Nachlauf, Schreiben von Daten, Lesen von Daten usw. Die Steuereinheit 128 kann wenigstens einen Servo-Kanal und wenigstens einen Datenkanal enthalten, wobei jeder von diesen ein Logikelement zum Verarbeiten des Datenflusses enthält, das zum Verarbeiten und/oder Speichern von Informationen eingerichtet ist, die auf das Band 122 geschrieben und/oder von diesem gelesen werden sollen. Die Steuereinheit 128 kann gemäß einem in der Technik bekannten Logikelement sowie jeder der hier offenbarten Logikelemente betrieben werden und kann daher bei verschiedenen Ausführungsformen als ein Prozessor bei jeder der hier enthaltenen Beschreibungen von Bandlaufwerken betrachtet werden. Die Steuereinheit 128 kann mit einem Speicher 136 jedes bekannten Typs verbunden sein, der Befehle speichern kann, die durch die Steuereinheit 128 ausführbar sind. Die Steuereinheit 128 kann darüber hinaus eingerichtet und/oder programmierbar sein zum Ausführen oder Steuern eines Teils oder der gesamten hier dargestellten Verfahrensweise. Die Steuereinheit 128 kann daher so betrachtet werden, dass sie eingerichtet ist zum Ausführen von verschiedenen Operationen mittels eines Logikelements, das in einen oder mehrere Chips, Module und/oder Blöcke programmiert ist; Software, Firmware und/oder anderer Befehlen, die für einen oder mehrere Prozessoren verfügbar sind; usw. und Kombinationen hiervon.
  • Das Kabel 130 kann Schreib/Lese-Schaltungen zum Übertragen von Daten zu dem Kopf 126, die auf dem Band 122 aufgezeichnet werden sollen, und zum Empfangen von Daten enthalten, die durch den Kopf 126 von dem Band 122 gelesen werden. Ein Aktuator 132 steuert die Position des Kopfes 126 relativ zu dem Band 122.
  • Eine Schnittstelle 134 kann außerdem für einen Datenaustausch zwischen dem Bandlaufwerk 100 und einem (internen oder externen) Host bereitgestellt werden zum Senden und Empfangen der Daten und zum Steuern des Betriebs des Bandlaufwerks 100 und zum Übertragen der Statusangaben des Bandlaufwerks 100 zum Host, wie für Fachleute klar ist.
  • 2B veranschaulicht eine beispielhafte Bandkassette 150 gemäß einer Ausführungsform. Eine derartige Bandkassette 150 kann bei einem System verwendet werden wie jenes, das in 2A gezeigt ist. Wie gezeigt enthält die Bandkassette 150 ein Gehäuse 152, ein Band 122 in dem Gehäuse 152 und einen nichtflüchtigen Speicher 156, der mit dem Gehäuse 152 verbunden ist. Bei einigen Ansätzen kann der nichtflüchtige Speicher 156 in das Gehäuse 152 eingebettet sein wie in 2B gezeigt. Bei weiteren Ansätzen kann der nichtflüchtige Speicher 156 innerhalb oder außerhalb des Gehäuses 152 ohne Modifikation des Gehäuses 152 angebracht sein. Der nichtflüchtige Speicher kann beispielsweise in ein selbstklebendes Etikett 154 eingebettet sein. Bei einer bevorzugten Ausführungsform kann es sich bei dem nichtflüchtigen Speicher um eine Flash-Speichereinheit, eine ROM-Einheit usw. handeln, die an der Innenseite oder der Außenseite der Bandkassette 150 eingebettet oder mit dieser verbunden ist. Auf den nichtflüchtigen Speicher kann von dem Bandlaufwerk und der Band-Betriebssoftware (der Treibersoftware) und/oder anderen Einheiten zugegriffen werden.
  • In 3 ist ein Datenfluss 300 zum Codieren von Host-Daten in einem Bandlaufwerk bei M gleichzeitig geschriebenen Spuren gemäß einer Ausführungsform gezeigt. Wie gezeigt enthält der Datenfluss 300 die Operationen eines Codierers mit zyklischer Redundanzprüfung (CRC) 302, eines Kompressionsmoduls 302, eines optionalen Verschlüsselungsmoduls 306, eines oder mehrerer Fehlerkorrekturcode- (ECC-) Codierermodule 308, eines Multiplexers 310 zum Anfügen von Headern 312 an codierte Daten, eines Bandlayout-Zusatzmoduls 314, von Randomizern 316 zur zufälligen Anordnung von Daten in jedem Bandkanal 1 bis M, von Modulations-Codierern 318 für jeden Bandkanal 1 bis M und von Multiplexern 322 zum Einfügen von Synchronisationsmustern 320 für jeden Bandkanal 1 bis M.
  • Es gibt üblicherweise 32 Kanäle bei einem Firmen-Bandlaufwerk, und daher gilt M = 32, es kann jedoch jede Anzahl von Kanälen in einem Bandlaufwerk enthalten sein. Zu weiteren Anzahlen von Kanälen, die außerdem möglich sind, gehören 8 Kanäle, 16 Kanäle, 64 Kanäle usw. Ein Satz CWI-4-Einheiten enthält eine feste Anzahl M von gleichzeitig geschriebenen CWI-4-Einheiten, wobei die feste Anzahl gleich der Anzahl von Kanälen in der Schreibeinrichtung ist.
  • Es gibt üblicherweise fünf verschiedene Typen des Overhead bei Daten, die auf Band geschrieben werden. Zu diesen Typen des Overhead gehören ECC, der unter Verwendung von einem oder mehreren ECC-Codierern 308 angewendet wird, Modulations-Codierung, die unter Verwendung von einem oder mehreren Modulations-Codierern 318 angewendet wird, Einfügen von Headern 312, Einfügen von Synchronisationsmustern 320 und Neuschreiben von Daten nach einem Prozess Read-While-Write zum Sicherstellen der Datenintegrität der zuerst geschriebenen Daten. Die Format-Effektivität für ein typisches Bandlaufwerk infolge dieser Quellen des Overhead mit Ausnahme des Neuschreibens beträgt etwa 79 %, d.h. jeweils 100 Bits, die auf Band geschrieben werden, werden aus lediglich 79 Bits der Benutzerdaten erzeugt, und die hinzugefügte Redundanz von Overhead-Bits beträgt 21 Bits. Bei den Benutzerdaten handelt es sich in diesem Kontext um die Host-Daten, die am Eingang des ECC-Codierers 308 empfangen werden. Ferner sind etwa 3 % des Bandspeicherraums für das Neuschreiben von Daten reserviert.
  • ECC kann auf Daten auf der Grundlage eines Produkt-Codeworts angewendet werden. Wie in 4 gezeigt können Daten in einem zweidimensionalen Daten-Array 402 angeordnet werden. Das Daten-Array 402 ist als ein (6 × 8)-Array gezeigt, es kann jedoch jede denkbare Größe des Daten-Array in Abhängigkeit von Speicher-Einschränkungen, Verarbeitungsleistung, Anforderungen der Fehlerraten-Leistung und anderen sachlichen Faktoren verwendet werden. Für die Einfachheit dieser Erläuterung ist jedoch ein (6 × 8)-Daten-Array 402 gezeigt
  • Bei einer ersten Ausführungsform können zuerst Zeilen codiert werden. Beispielsweise können jeder Zeile 6 Paritäts-Bytes angefügt werden, was C1-Codewörter in jeder Zeile eines zeilencodierten (6 × 14)-Array 408 zur Folge hat. Jedes C1-Codewort wird unter Verwendung eines C1-Codes [14, 8, 7] codiert. Anschließend können die Spalten durch Anfügen von 4 Paritäts-Bytes an jede Spalte codiert werden, was C2-Codewörter in jeder Spalte (und C1-Codewörter in jeder Zeile) eines codierten (10 × 14)-Array 410 zur Folge hat. Jedes C2-Codewort wird unter Verwendung eines C2-Codes [10, 6, 5] codiert.
  • Bei einer zweiten Ausführungsform können zuerst Spalten codiert werden. Beispielsweise können jeder Spalte 4 Paritäts-Bytes angefügt werden, was C2-Codewörter in jeder Spalte eines spaltencodierten (10 × 8)-Array 404 zur Folge hat. Jedes C2-Codewort wird unter Verwendung eines C2-Codes [10, 6, 5] codiert. Anschließend können die Zeilen durch Anfügen von 6 Paritäts-Bytes an jede Zeile codiert werden, was C1-Codewörter in jeder Zeile (und C2-Codewörter in jeder Spalte) eines codierten (10 × 14)-Array 406 zur Folge hat. Jedes C1-Codewort wird unter Verwendung eines C1-Codes [14, 8, 7] codiert. Unabhängig davon, ob die Zeilen oder die Spalten zuerst codiert werden, sind die resultierenden (10 × 14)-Arrays 406, 410 identisch und werden als Produkt-Codewörter [140, 48, 35] betrachtet.
  • Bei einem realistischeren Beispiel kann der C1-Code ein RS-Code [240, 230, 11] sein, der C2-Code kann ein RS-Code [192, 168, 25] sein, jedoch unabhängig von den verwendeten Codes C1 und C2 ist jede Zeile in einem Produkt-Codewort ein C1-Codewort und jede Spalte in einem Produkt-Codewort ist ein C2-Codewort. Der Abstand eines Produkt-Codes ist das Produkt aus den Abständen seiner einzelnen C1- und C2-Codes. Des Weiteren können vor oder nach dem Codieren jeder Zeile in dem Array Header angefügt werden, um mit Headern versehene Zeilen zu bilden.
  • Bei einer weiteren Ausführungsform können zwei oder mehrere Produkt-Codewörter zu einem größeren zweidimensionalen Array verknüpft werden, das als ein Teil-Datensatz (SDS) bezeichnet wird. Bei einer Ausführungsform können vier Produkt-Codewörter spaltenmäßig verschachtelt werden, um ein SDS zu bilden, wobei alle vier ersten Spalten der vier Produkt-Codewörter die Spalten eins bis vier des SDS sind, alle vier zweiten Spalten der vier Produkt-Codewörter die Spalten fünf bis acht des SDS sind, usw. Die Zeile des SDS wird als eine Codewort-Verschachtelung (CWI) bezeichnet, und da vier C1-Codewörter miteinander verschachtelt werden, wird sie als eine CWI-4 bezeichnet. Auf diese Weise werden die vier Produkt-Codewörter in einen SDS verschachtelt, wobei Header jeder Zeile des SDS angefügt werden. Anschließend wird jede Zeile des SDS unter Verwendung der Mehrzahl von M Bandkanälen, die zum gleichzeitigen Schreiben von M Paketen auf das Band zur Verfügung stehen, die üblicherweise zu M verschiedenen SDS gehören, als ein Datenpaket auf Magnetband geschrieben.
  • Jeder Datensatz, der von dem Bandlaufwerk zum Schreiben auf ein Magnetband empfangen wird, wird vor dem Schreiben verarbeitet. Der Datensatz kann in eine Mehrzahl von SDS aufgeteilt werden, wobei jeder SDS in einem zweidimensionalen Datenzeichen-Array organisiert ist wie in 4 gezeigt. Jede Zeile in den (10 × 14)-Arrays 406, 410 weist ein oder mehrere C1-Codewörter auf, während jede Spalte in den (10 × 14)-Arrays ein oder mehrere C2-Codewörter aufweist. Bei Linear-Tape-Open (LTO) enthält jeder codierte SDS zwei für die Generationen (LTO 1 bis LTO 4) oder vier (LTO 5 bis LTO 7) C1-Codewörter in den Zeilen. Es können jedoch ein bis acht oder mehr C1-Codewörter in jeder Zeile in dem Array enthalten sein. Gewöhnlich sind Hunderte oder sogar Tausende Header einem einzelnen Datensatz zugewiesen, da jeder Datensatz mehrere SDS enthält und jeder Zeile eines spaltencodierten SDS ein Header zugewiesen ist (ein Header pro Zeile). Jeder Header kann 12 Bytes enthalten oder mehr oder weniger, die jeweils einzelnen Zeilen des spaltencodierten SDS zugeordnet sind.
  • Wenn die C1-Codierung vor der C2-Codierung erfolgt, wie bei dem zeilencodierten Array 408 gezeigt, erstreckt sich die C2-Spaltenpärität über die gesamten Länge jeder Zeile von 408 in dem Abschnitt der C2-Spaltenparität des (10 × 14)-Array 410. Die C1 -Zeilenparität ist am Ende jeder Zeile außerhalb des Bereichs der C2-Spaltenparität des (10 × 14)-Array 410 positioniert. Die C2-Codewörter sind jedoch trotzdem vorhanden, sogar quer über den Bereich der C2-Spaltenparität. Dabei handelt es sich um eine Eigenschaft des Aufbaus des Produkt-Codes, wobei die Reihenfolge der C1- und C2-Erweiterungen ohne Auswirkung auf das Produkt-Codewort vertauscht werden kann, d.h., alle Zeilen stammen von einem Code, und alle Spalten stammen von einem anderen Code unabhängig von der Reihenfolge der C1- und C2-Erweiterungen. Deswegen können die letzten Spalten des Bereichs der C2-Spaltenparität als C1-Parität oder als C2-Parität interpretiert werden.
  • Gemäß einer Ausführungsform, bei der jede Zeile vier C1-Codewörter enthält, die mit der Gesamtheit der Zeilen verschachtelt sind, bezeichnet als CWI-4, kann jedes C1-Codewort 230 Datenbytes enthalten, wobei die zusätzliche C1-Parität zusätzliche 10 Bytes anfügt. Da bei dieser Ausführungsform in jeder Zeile vier C1-Codewörter verschachtelt sind, ist jede Zeile (4 × 230 Byte) + (4 × 10 Byte) = 960 Byte lang (bei einer Zeile handelt es sich um ein CWI-4). Bei dieser Ausführungsform kann es des Weiteren möglicherweise 96 Zeilen in jedem SDS-Array oder bei weiteren Ausführungsformen mehr oder weniger Zeilen geben.
  • Außerdem können die Header bei einem Ansatz eine Länge von 12 Byte haben. Daraus ergibt sich, dass eine Gesamtgröße eines zweidimensionalen SDS-Array ohne ECC-Codierung für die Header (960 + 12) * 96 = 93.312 Byte beträgt.
  • Bei einem Ansatz kann des Weiteren der C1-Code einen RS(240, 230, 11)-Code über dem Galois-Feld GF(256) aufweisen, und der C2-Code kann einen RS(96, 84, 13)-Code über GF(256) aufweisen.
  • Bei weiteren Ansätzen kann die Länge eines CWI-4 (984 Byte, wobei jedes Codewort 246 Byte lang ist) und des Header (12 Byte) 996 Byte betragen. Bei einem anderen Ansatz kann die kombinierte Länge eines CWI-4 und Header 1.000 Byte, 1.004 Byte oder einen anderen Wert betragen, der zum Codieren des CWI-4 und Header-Informationen mit einem gewünschten Schutzgrad geeignet ist.
  • Wenn Daten auf Magnetband gespeichert werden, werden eine Mehrzahl von CWI-4s quer über die Bandkanäle verteilt, wobei jeder Satz von CWI-4s, die gleichzeitig auf Band geschrieben werden, als ein CWI-4-Satz bezeichnet wird. Wenn das Magnetband 32 Spuren hat und das Bandlaufwerk 32 Bandkanäle hat, enthält ein CWI-4-Satz mit Headern versehene CWI-4s, wobei jeder von einem anderen SDS stammt. Wenn es sich bei dem C1-Code um einen [240, 230, 11] RS-Code und bei dem C2-Code um einen [192, 168, 25] RS-Code handelt, gibt es außerdem 384 CWI-4-Sätze pro Datensatz. Bei dieser Ausführungsform wird ein einziger CWI-4 von verschiedenen unterschiedlichen SDSs gleichzeitig geschrieben, wodurch der Datenschutz im Fall von Lese- oder Schreibfehlern wie beispielsweise Schräglauffehler usw. verbessert wird, die sich auf alle zu einem gegebenen Zeitpunkt geschrieben Daten auswirken.
  • Wenn des Weiteren festgestellt wird, dass Daten während eines Prozesses Read-While-Write nicht ordnungsgemäß geschrieben werden, werden sie auf den Abschnitt Neuschreiben des Bands neu geschrieben, der sich nach dem ersten Schreibbereich eines Datensatzes auf dem Band befindet.
  • Nach dem Modulations-Codieren von zwei mit Headern versehenen CWI-4s (2 Pakete) werden synchronisierte Codewort-Objekte (SCOs) gebildet durch Einfügen von Synchronisationsmustern zwischen den Paketen und Schreiben der SCOs auf die Spuren des Bands. Wenn das Band 32 Spuren hat, gibt es 32 SCOs in einem SCO-Satz. Wenn das Schreiben unterbrochen wird, wird jeder Datensatz, für den sämtliche SCO-Sätze nicht erfolgreich aufgezeichnet und anschließend nach einer Verarbeitung Read-While-Write verifiziert wurden, als ein unterbrochener Datensatz betrachtet. Deswegen handelt es sich bei der geschriebenen Granularität eines Datensatzes um einen einzelnen SCO-Satz. Jeder Datensatz wird beim Schreiben auf Band durch eine Datensatz-Separator- (DSS-) Sequenz getrennt, und zwei unterschiedliche Sequenzen eines Oszillators mit veränderlicher Frequenz (VFO-Sequenzen) werden verwendet, um eine zeitliche Steuerung zu erreichen, wobei VFO1 eine Länge von 445 Bit hat und VFO2 eine Länge von 197 Bit hat. Diese Synchronisationsmuster werden außerdem auf Band gespeichert. Das längere VFO1-Muster wird vor dem ersten SCO-Satz und nach dem letzten SCO-Satz in einem Datensatz geschrieben, wohingegen das kürzere VFO2-Muster zwischen jeweils zwei SCO-Sätzen in einem Datensatz geschrieben wird.
  • In 5 wird die Beziehung zwischen Produkt-Codewörtern und einem SDS gemäß einer Ausführungsform gezeigt. Wie gezeigt weist ein SDS 510 eine Mehrzahl von mit Header versehenen Zeilen von codierten Daten auf, die miteinander verschachtelt und in einem zweidimensionalen Array angeordnet sind. Jede Zeile des SDS 510 wie beispielsweise die Zeile 514 enthält einen Header 512 und Zeichen von jedem aus einer Mehrzahl von Produkt-Codewörtern (PCWs), die spaltenweise verschachtelt sind. Bei dem vorliegenden Beispiel sind in dem SDS 510 vier PCWs enthalten: PCW 502, PCW 504, PCW 506 und PCW 508. Es kann jedoch jede Anzahl von PCWs in einem SDS enthalten sein, was für einen Fachmann beim Lesen der vorliegenden Beschreibungen klar sein sollte, wie beispielsweise 2, 6, 8, 10, 16 usw. Jedes PCW ist als ein zweidimensionales Array von codierten Zeichen gezeigt, wobei die Größe jedes PCW auf der Grundlage einer beliebigen Anzahl von Faktoren festgelegt wird, z.B. verfügbare Verarbeitung, früher verwendete Größen, Rückwärts-Kompatibilität, Zweckmäßigkeit usw.
  • Bei weiteren Ansätzen kann der Header 512 in jeder Zeile des SDS 510 eine beliebige Länge haben wie beispielsweise 4 Byte, 6 Byte, 8 Byte, 12 Byte, 16 Byte usw. Des Weiteren können die Header 512 codiert oder nichtcodiert sein in Abhängigkeit von dem Schutzgrad, der für den SDS 510 gewünscht wird. Bei weiteren Ansätzen kann in einer oder mehreren Zeilen des SDS 510 kein Header 510 enthalten sein.
  • Es ist außerdem zu beachten, dass es sich bei jeder Zeile des SDS 510 um eine Dateneinheit handelt, die möglicherweise vorteilhaft ein Paket darstellt, das zum Speichern des SDS auf Magnetband verwendet wird. Wenn Datenpakete von dem Magnetband gelesen werden, kann daher jedes Paket eine Zeile eines SDS darstellen. Bei einer Ausführungsform hat jedes Paket eine Größe von etwa 1 KB: 4*240 B (Größe von Zeilen jedes PCW) + 12 B (Größe des Header). Wenn ein (192,168)-C2-Code zum Codieren der Daten verwendet wird, gibt es 192 Pakete pro SDS 510, und für ein 32-Kanal-Bandlaufwerk sind in jedem Datensatz 64 SDSs enthalten, was eine Größe von etwa 12 MB ergibt.
  • In 6 ist ein Datensatz-Layout 600 für einen Reed-Solomon- (RS-) C2-Code gemäß einer Ausführungsform gezeigt. Das Datensatz-Layout gilt für einen RS(192,168)-C2-Code, es kann jedoch bei den hier beschriebenen Ausführungsformen jeder geeignete Code verwendet werden wie beispielsweise RS(96,84) usw. Wie gezeigt beträgt für RS(192,168) die Länge des Datensatzes 602 12 MB, die Länge des Datensatzes 604 auf dem Band beträgt 146 mm, jeder Teildatensatz 602 hat 192 Sätze aus vier verschachtelten Codewörtern (CWI-4) 608, ein Codewort-Objekt 610 enthält zwei CWI-4 mit derselben Anzahl (r) aus zwei aufeinanderfolgenden Teildatensätzen 606 mit zwei Headern 612, und es gibt 6.144 Codewort-Objekte 610 pro Datensatz 602, die auf 32 logischen Spuren 614 abgebildet werden, so dass ein Abstand zwischen CWI-4s groß ist, wobei jeder CWI-4 608 im SDS Nr. x, wobei x = 0, 1, 2, ..., 63, von allen anderen CWI-4 608 im SDS Nr. x um etwa 1 mm getrennt ist, was die Korrektur von vier toten Spuren und 18 mm Stripe-Fehlern 616 ermöglicht.
  • Wie in 6 gezeigt, gibt es beispielsweise eine Gesamtzahl von 6.144 Codewort-Objekten 610 des Teil-Datensatzes Nr. 0, des Teil-Datensatzes Nr. 1, ..., und des Teil-Datensatzes Nr. 63 in dem Datensatz-Layout 600. Außerdem beträgt bei einem Ansatz die Breite 618 des auf Band geschriebenen Datensatzes etwa 2,6 mm, wobei die Gesamtbreite des Bands etwa 12,7 mm beträgt.
  • Unter Bezugnahme auf 7 ist ein logisches Format 700 zur Datenspeicherung auf einem Magnetband 702 nach dem Stand der Technik gezeigt. Wie gezeigt wird ein logisches D2-Datenarray 704 quer über Spuren des Magnetbands 702 gespeichert, die einen lateralen Bereich und einen longitudinalen Bereich auf dem Magnetband 702 belegen. Bei diesem Beispiel ist ein Bandlaufwerk gemeinsam mit dem Magnetband 702 in der Lage, 32 Spuren bereitzustellen, die gleichzeitig geschrieben und gelesen werden sollen, M = 32.
  • Unter der Annahme, dass eine Bitlänge von 50 nm einer linearen Dichte von etwa 500 Kbpi entspricht, belegt das logische 2D-Datenarray 704 etwa 2,6 mm in der lateralen Richtung 706 und etwa 80 mm in der longitudinalen Richtung 708. Darüber hinaus sind die Daten in dem logischen 2D-Datenarray 704 als C1-Codewörter, z.B. C1-Codewort 710, und C2-Codewörter angeordnet, die ungefähr gleichgroß sind wie das logische 2D-Datenarray 704, was für Fachleute klar ist. Bei jedem C1-Codewort 710 in dem logischen 2D-Datenarray 704 handelt es sich um ein eindimensionales (1D-) mittelstark gestreutes (MS-) Codewort, das mit einem CWI-4 verschachtelt ist und das einen Längenabschnitt von etwa 400 Mikrometer in der longitudinalen Richtung 708 längs einer einzelnen Spur des Magnetbands 702 belegt. Zusätzlich handelt es sich in dem logischen 2D-Datenarray 704 bei jedem C2-Codewort um ein weit gespreiztes (WS-) 2D-Codewort, das bei diesem Beispiel den gesamten Längenabschnitt von 80 mm in der longitudinalen Richtung 708 längs des Magnetbands 702 und den vollständigen Längenabschnitt von 2,6 mm in der lateralen Richtung 706 quer über das Magnetband 702 belegt. Darüber hinaus sind Zeichen eines C2-Codeworts näherungsweise gleichförmig über das logische 2D-Datenarray 704 in 7 gestreut, ähnlich wie die Quadrate auf 6 unten in dem Layout 600 des codierten Datensatzes, wobei Grenzen durch den rechtwinkligen Kasten in der longitudinalen Richtung längs des Bands und in der lateralen Richtung quer über das Band angegeben sind.
  • Das logische D2-Datenarray 704 kann in eine Datenspur längs des Magnetbands 702 geschrieben werden, wobei auf dem Magnetband 702 mehr als ein Datenband vorhanden ist und auf dem eine größere Menge von Daten gespeichert werden kann. Bei einem weiteren Ansatz können verschiedene Mengen von bestimmten Teilmengen der M Spuren gleichzeitig quer über ein oder mehrere Datenbänder auf dem Magnetband 702 geschrieben werden, wobei gleichzeitig eine oder mehrere Teilmengen der M Schreibkopfelemente von einem Bandlaufwerk verwendet werden, was für einen Fachmann beim Lesen der vorliegenden Beschreibungen klar ist. Beispielsweise können zwei Datenbänder, wobei M/2 Schreibkopfelemente für jedes der beiden Datenbänder verwendet werden, vier Datenbänder, wobei M/4 Schreibkopfelemente für jedes der vier Datenbänder verwendet werden, usw. gleichzeitig geschrieben werden.
  • Außerdem kann das Codieren durch RS-Codes ausgeführt werden, z.B. kann RS(N1, K1) für das C1-Codieren N1 = 246 und K1 = 234 enthalten, was einen Code RS(246, 234) zur Folge hat, der zum Codieren von C1-Codewörtern verwendet wird, RS(N2, K2) für das C2-Codieren kann N2 = 96 und K2 = 84 enthalten, was einen Code RS(96, 84) zur Folge hat, der zum Codieren von C2-Codewörtern verwendet wird. Das ergibt P = 256 Produkt-Codewörter (wobei jedes 96 Byte x 246 Byte belegt) in einem Datensatz.
  • Wie aus diesem Schema offensichtlich ist der Code C2 stärker als der Code C1, da der Code C2 in der Lage ist, 6 Zeichen aus einer Gruppe von 96 Zeichen zu korrigieren (Zahl der korrigierbaren Zeichen für C2 = T = (N2 - K2)/2 = (96 - 84)/2 = 12/2 = 6), was eine Codestärke von 6,25 % ergibt (C2-Codestärke = T2/N2 = 6/96 = 1/16 = 0,0625). Der Code C1 ist dagegen in der Lage, 6 Zeichen aus einer Gruppe von 246 Zeichen zu korrigieren (Anzahl der korrigierbaren Zeichen für C1 = (N1 - K1/2 = (246 - 234)/2 = 12/2 = 6), was eine Codestärke von etwa 2,44 % ergibt (C1-Codestärke = T1/N1 = 6/246 = 1/41 = 0,0243902439).
  • Nochmals Bezug nehmend auf 7 werden infolge des logischen Formats 700, das zum Speichern des Datensatzes verwendet wird, wenigstens einige der C1-Codewörter 710 in ihrer Gesamtheit von dem Magnetband 702 gelesen, bevor C2-Codewörter in ihrer Gesamtheit von dem Magnetband 702 gelesen werden. Da jedoch der Code C1 schwächer ist als der Code C2 und weil die C1-Codewörter trotzdem längs des Magnetbands 702 durchschnittlich verteilt sind, ist dies für weiche und harte Entscheidungen bei den digitalen Eingangsfunktionen infolge des Betrags der Latenzzeit nicht brauchbar, die in die Lesekanäle eingeführt würde.
  • In 8 ist ein logisches Format 800 zur Datenspeicherung auf einem Magnetband 802 gemäß einer Ausführungsform gezeigt. Wie gezeigt wird ein logisches D2-Datenarray 804 quer über Spuren des Magnetbands 802 gespeichert, das einen lateralen Bereich und einen longitudinalen Bereich auf dem Magnetband 802 belegt. Bei diesem Beispiel ist das Bandlaufwerk zusammen mit dem Magnetband 802 in der Lage, 32 Spuren bereitzustellen, die gleichzeitig geschrieben und gelesen werden sollen, M = 32.
  • Unter der Annahme, dass eine Bitlänge von 50 nm einer linearen Dichte von etwa 500 Kbpi entspricht, belegt das logische 2D-Datenarray 804 etwa 2,6 mm in der lateralen Richtung 806 und etwa 80 mm in der longitudinalen Richtung 808. Darüber hinaus sind die Daten in dem logischen 2D-Datenarray 804 als NS-Codewörter 812 und WS-Codewörter 810 angeordnet. Bei jedem NS-Codewort 812 in dem logischen 2D-Datenarray 804 handelt es sich um ein 1D- oder 2D-NS-Codewort (das möglicherweise mit anderen NS-Codewörtern verschachtelt ist), und es belegt lediglich einen Längenabschnitt von 1,2 Mikrometer in der longitudinalen Richtung 808 längs der Mehrzahl von Spuren des Magnetbands 802 (bis zu M Spuren, wodurch die gesamten 2,6 mm in der lateralen Richtung belegt werden). Zusätzlich handelt es sich in dem logischen 2D-Datenarray 804 bei jedem WS-Codewort um ein 1D-WS-Codewort, das den gesamten Längenabschnitt von 80 mm in der longitudinalen Richtung 808 längs einer einzelnen Spur des Magnetbands 802 belegt.
  • Das Codieren kann durch RS-Codes ausgeführt werden, z.B. kann RS(Nw Kw) für weit gestreutes (WS-) Codieren Nw = 246 und Kw = 234 enthalten, was einen Code RS(246, 234) zur Folge hat, der zum Codieren von WS-Codewörtern verwendet wird, RS(Nn, Kn) für eng verteiltes (NS-) Codieren kann Nn = 96 und Kn = 84 enthalten, was einen Code RS(96, 84) zur Folge hat, der zum Codieren von NS-Codewörtern verwendet wird. Das ergibt P = 256 Produkt-Codewörter (wobei jedes 96 Byte × 246 Byte belegt) in einem Datensatz.
  • Wie aus diesem Schema offensichtlich ist der NS-Code stärker als der WS-Code, da der NS-Code in der Lage ist, 6 Zeichen aus einer Gruppe von 96 Zeichen zu korrigieren, was eine Codestärke von 6,25 % zur Folge hat. Der WS-Code ist dagegen in der Lage, 6 Zeichen aus einer Gruppe von 246 Zeichen zu korrigieren, was eine Codestärke von etwa 2,44 % zur Folge hat.
  • Unter Verwendung dieses Schemas werden wenigstens einige der NS-Codewörter 812 in ihrer Gesamtheit von dem Magnetband 802 gelesen, bevor die WS-Codewörter 810 in ihrer Gesamtheit von dem Magnetband 802 gelesen werden. Da darüber hinaus der NS-Code stärker ist als der WS-Code und da die NS-Codewörter in dem sehr kompakten longitudinalen Abschnitt längs des Magnetbands 802 eng gestreut sind, können die NS-Codewörter, wenn sie von dem Magnetband 802 gelesen werden, für weiche oder harte Entscheidungen bei den digitalen Eingangsfunktionen des Lesekanals eines Bandlaufwerks verwendet werden.
  • Zum Vergleich werden bei dem logischen Format nach dem Stand der Technik, das in 7 beschrieben ist und bei der gegenwärtigen Magnetband-Formatierung üblich ist, 1D-MS-Zeilencodewörter, die N1 Bytes enthalten, auf Bandspuren geschrieben, wohingegen 2D-WS-Spaltencodewörter, die N2 Bytes enthalten, auf M Bandspuren geschrieben werden. Bei dem logischen Format 800, das in 8 beschrieben ist, werden gemäß einer Ausführungsform 1 D-WS-Codewörter, die Nw Bytes enthalten, auf Bandspuren geschrieben, wohingegen eng gestreute 2D-Spaltencodewörter, die Nn Bytes enthalten, auf M Bandspuren geschrieben werden. Der Betrag der Bandlänge, der in der longitudinalen Richtung von einem NS-Codewort belegt wird, ist etwa 333-mal kleiner als die Länge, die von einem MS-Codewort belegt wird. Des Weiteren ist der Betrag der Bandlänge, der in der longitudinalen Richtung von einem MS-Codewort belegt wird, etwa 200-mal kleiner als die Länge, die von einem WS-Codewort belegt wird.
  • In 9 ist ein Blockschaltplan eines Bandlaufwerk-Schreibkanals 900 gemäß einer Ausführungsform gezeigt. Dieser Bandlaufwerk-Schreibkanal 900 kann bei einer Ausführungsform zum Speichern von Daten auf Magnetband gemäß dem in 8 beschriebenen logischen Format verwendet werden. In 9 weist der Bandlaufwerk-Schreibkanal 900 einen WS-Codierer 902, einen optionalen WS-Block-Interleaver 904, einen NS-Codierer 906, einen optionalen NS-Block-Interleaver 908 und einen Kanal-Interleaver 910 auf.
  • Bei der Eingabe in den WS-Codierer 902 handelt es sich um Daten mit P(Kn × Kw) Zeichen, die in Zeilen mit Kw Byte organisiert sind. Das heißt, die Daten, die in den WS-Codierer 902 eingegeben werden, sind in einem 2D-Array mit Kn Zeilen und Kw Spalten organisiert. Bei diesem Beispiel ist P eine Zahl von Produkt-Codewörtern in dem Datensatz mit P(Kn × Kw) Zeichen.
  • Der WS-Codierer 902 ist so eingerichtet, dass er unter Verwendung eines Codierschemas mit der Rate Kw/Nw betrieben wird, um die Daten mit den P(Kn × Kw) Zeichen zu codieren und Daten mit P(Kn × Nw) Zeichen zu erhalten, wobei Nw eine Anzahl von Spalten ist, die Kw übersteigt, z.B. Nw > Kw.
  • Der WS-Block-Interleaver 904 ist so eingerichtet, dass er die Daten mit den P(Kn × Nw) Zeichen verschachtelt, um Daten mit Kn × PNw Zeichen zu erhalten. Der WS-Block-Interleaver 904 arbeitet als ein PNw-Spalten-Interleaver.
  • Der NS-Codierer 906 ist so eingerichtet, dass er unter Verwendung eines Codierschemas der Rate Kn/Nn arbeitet, um die Daten mit Kn × PNw Zeichen zu codieren und Daten mit Nn × PNw Zeichen zu erhalten. Nn ist eine Anzahl von Zeilen, die Kn übersteigt, z.B. Nn > Kn.
  • Der NS-Block-Interleaver 908 ist so eingerichtet, dass er die Daten mit Nn × PNw Zeichen verschachtelt, um Daten mit (PNw/J)(Nn × J) Zeichen zu erhalten. Der NS-Block-Interleaver 908 arbeitet als ein J-Spalten-Interleaver.
  • Die Reihenfolge dieser Blöcke kann in jede gewünschte Reihenfolge gewechselt werden: der WS-Codierer 902, der optionale WS-Block-Interleaver 904, der NS-Codierer 906 und der optionale NS-Block-Interleaver 908. Beispielsweise können der NS-Codierer 906 und der optionale NS-Block-Interleaver 908 bei einer alternativen Ausführungsform vor dem WS-Codierer 902 und dem optionalen WS-Block-Interleaver 904 positioniert sein.
  • Der Kanal-Interleaver 910 ist so eingerichtet, dass er die Daten mit (PNw/J)(Nn × J) Zeichen verschachtelt, um Daten mit (PNw/J)(M × (Nn/M)J) Zeichen zu erhalten, so dass sie zum Schreiben auf M Spuren des Magnetbands geeignet sind. Anschließend werden die Daten mit den (PNw/J)(M × (Nn/M)J) Zeichen unter Verwendung von M Kanälen eines Bandlaufwerks auf das Magnetband geschrieben. Bei dieser Beschreibung ist M ein ganzzahliges Vielfaches von J, und Nn ist ein ganzzahliges Vielfaches von M.
  • Bei dem NS-Code handelt es sich um einen linearen (Nn, Kn)-Block-Code, z.B. ein RS-Code, ein Low-Density-Parity-Check- (LDPC-) Code usw., und der NS-Codierer 906 kann bei einer Ausführungsform systematisch vorhanden sein. Bei dem WS-Code handelt es sich um einen linearen (Nw, Kw)-Block-Code, z.B. ein RS-Code, ein LDPC-Code usw., und der WS-Codierer 902 kann bei einer Ausführungsform systematisch vorhanden sein. Das ergibt eine Gesamt-Coderate von (KnKw)/(NnNw).
  • Der WS-Block-Interleaver 904 führt an jeder Zeile eine Zeichenverschachtelung der Tiefe P aus (P ist gleich der Anzahl von Produkt-Codewörtern in dem Datensatz) und gibt für jede Spalte Kn Bytes aus, wobei P = 256 für einen Datensatz mit einer Größe von etwa 6 MB, Nw = 246 und Nn = 96. Darüber hinaus ist der NS-Block-Interleaver 908 so eingerichtet, dass er jede i-te Zeile um (i - 1) Verschiebungen zyklisch verschiebt, um Nn Bytes in jeder einzelnen Spalte auszugeben.
  • Bei einer Ausführungsform kann der WS-Block-Interleaver 904 Datenzeichen längs der M Spuren des Magnetbands verteilen wie in 10 gezeigt. Die Einträge der Tabelle von 10 werden durch (i, j)k bezeichnet, was dem i-ten Codezeichen des j-ten WS-Codeworts in der Zeile k der Tabelle entspricht, wobei i eine Ganzzahl zwischen 1 und Nw ist, j ist eine Ganzzahl zwischen 1 und P, und k ist eine Ganzzahl zwischen 1 und Kn. Die Einträge der Tabelle von 10 sind üblicherweise m-Bit-Zeichen unter der Voraussetzung, dass die WS-Codewörter über dem Galois-Feld GF(2m) definiert sind. Es ist zu beachten, dass m jede positive Ganzzahl sein kann wie beispielsweise 1, 4, 8 usw.
  • Bei einer weiteren Ausführungsform kann bei nochmaliger Bezugnahme auf 9 der NS-Block-Interleaver 908 Datenzeichen längs der M Spuren des Magnetbands wie in 11 gezeigt verteilen, die als Sägezahnmuster bezeichnet werden können, wenn die NS-Codewörter diagonal abwärts und längs der Spuren verteilt werden. Die NnJ Einträge der Tabelle in 11 mit Nn Zeilen und J Spalten werden durch (i)j bezeichnet, was dem i-ten Codezeichen des j-ten NS-Codeworts entspricht, wobei i eine Ganzzahl zwischen 1 und Nn ist, und j eine Ganzzahl zwischen 1 und J ist. Bei den Einträgen der Tabelle in 11 handelt es sich üblicherweise um m-Bit-Zeichen unter der Voraussetzung, dass die NS-Codewörter über dem Galois-Feld GF(2m) definiert sind. Es ist zu beachten, dass m jede positive Ganzzahl sein kann wie beispielsweise 1, 4, 6, 8, 12 usw.
  • Bei einer nochmals weiteren Ausführungsform kann bei nochmaliger Bezugnahme auf 9 der Kanal-Interleaver 910 Datenzeichen längs der M Spuren des Magnetbands verteilen wie in 12 gezeigt. Die NnJ Einträge der Tabelle in 12 mit M Zeilen und (Nn/M)J Spalten werden ebenfalls durch (i)j bezeichnet, was dem i-ten Codezeichen des j-ten NS-Codeworts entspricht, wobei i eine Ganzzahl zwischen 1 und Nn ist und j eine Ganzzahl zwischen 1 und J ist. Bei den Einträgen der Tabelle in 12 handelt es sich üblicherweise um m-Bit-Zeichen unter der Voraussetzung, dass die NS-Codewörter über dem Galois-Feld GF(2m) definiert sind. Es ist zu beachten, dass m jede positive Ganzzahl sein kann.
  • Es wird erwartet, dass die in den 10 bis 12 beschriebenen Verteilungsmuster bei einer speziellen Ausführungsform gemeinsam zum Speichern der Daten auf den M Spuren des Magnetbands verwendet werden.
  • In 13 ist ein Ablaufplan eines Verfahrens 1300 zum Speichern von Daten auf einem Magnetbandmedium gemäß einer Ausführungsform gezeigt. Das Verfahren 1300 gemäß der vorliegenden Erfindung kann bei verschiedenen Ausführungsformen u.a. in jeder der in den 1 bis 12 dargestellten Umgebungen ausgeführt werden. Natürlich können mehr oder weniger Operationen als jene, die in 13 speziell beschrieben sind, im Verfahren 1300 enthalten sein, was einem Fachmann beim Lesen der vorliegenden Beschreibungen klar ist. Darüber hinaus kann die Reihenfolge der Operationen von der in 13 gezeigten Reihenfolge abweichen.
  • Bei einem Ansatz kann es sich bei dem Bandmedium um jedes geeignete magnetische Datenspeicherband handeln, das in der Technik bekannt ist, beispielsweise LTO-Bandformate, Firmen-Bandformate usw. Zwar werden bei anderen Ausführungsformen in sämtlichen Beschreibungen Magnetbänder beschrieben, es können jedoch andere Datenspeichermedien zur Datenspeicherung verwendet werden, was für einen Fachmann klar ist.
  • Jeder der Schritte des Verfahrens 1300 kann durch jede geeignete Komponente der Betriebsumgebung ausgeführt werden. Das Verfahren 1300 kann beispielsweise in verschiedenen nichteinschränkenden Ausführungsformen teilweise oder vollständig durch ein Bandlaufwerk, ein optisches Laufwerk, einen Prozessor (wie z.B. eine CPU, einen ASIC, ein FRGA usw.) ausgeführt werden, das bzw. der eingebettet sein kann und/oder in einem System usw. betrieben wird.
  • Wie in 13 gezeigt kann das Verfahren 1300 mit der Operation 1302 ausgelöst werden, bei der Daten zum Speichern auf einem Magnetbandmedium unter Verwendung der Mehrzahl von Schreibkopfelementen empfangen werden.
  • Die Ereignisdaten sind in einer im Voraus festgelegten Anzahl (P) von zweidimensionalen Arrays organisiert, wobei jedes zweidimensionale Array eine Mehrzahl von NS-Codewörtern aufweist, die orthogonal zu einer Mehrzahl von WS-Codewörtern positioniert sind. Bei verschiedenen Ansätzen kann es sich bei den WS-Codewörtern um Zeilen in dem 2D-Array handeln, während es sich bei den NS-Codewörtern um Spalten in dem 2D-Array handelt oder umgekehrt.
  • Bei der Operation 1304 werden alle NS-Codewörter nacheinander auf eine Mehrzahl von Spuren (M) des Magnetbandmediums unter Verwendung einer ersten Anzahl aus der Mehrzahl der Schreibkopfelemente geschrieben, die in der Lage sind, Daten gleichzeitig auf Bandspuren zu schreiben.
  • Mit nacheinander schreiben ist gemeint, dass jedes NS-Codewort in einem Produkt-Codewort vollständig auf das Magnetband geschrieben wird, bevor mit dem Schreiben eines weiteren NS-Codeworts von demselben Produkt-Codewort auf das Magnetband begonnen wird. Darüber hinaus werden die NS-Codewörter quer über die Mehrzahl von Spuren geschrieben, die in der Lage sind, gleichzeitig geschrieben und gelesen zu werden. Üblicherweise werden nicht alle Spuren des Magnetbands bei diesem Schreibvorgang verwendet, da jedes Magnetband Tausende Spuren hat und lediglich ein Teil davon durch ein Bandlaufwerk gleichzeitig beschrieben werden kann.
  • Des Weiteren wird ein erstes NS-Codewort von einem ersten zweidimensionalen Array, z.B. ein Produkt-Codewort, vollständig auf das Magnetband geschrieben, bevor mit dem Schreiben eines zweiten NS-Codeworts von dem ersten zweidimensionalen Array begonnen wird. Außerdem ist die Mehrzahl von NS-Codewörtern mit einer stärkeren Codierung geschützt als die Mehrzahl von WS-Codewörtern.
  • Bei einer Ausführungsform beruht die stärkere Codierung auf einem höheren korrigierfähigen Anteil von fehlerhaften Zeichen in einem NS-Codewort im Vergleich zu einem korrigierfähigen Anteil von fehlerhaften Zeichen in einem WS-Codewort.
  • Bei einer weiteren Ausführungsform beruht die stärkere Codierung darauf, dass T2/N2 größer ist als T1/N1. Bei dieser Gleichung ist T1 ein Mindestwert (P1/2), N1 ist eine Länge eines WS-Codeworts, P1 ist eine WS-Codewort-Paritätslänge und gleich der um eine WS-Datenwortlänge verminderten WS-Codewortlänge (N1 - W1). Außerdem ist T2 ein Mindestwert (P2/2), N2 ist die Länge eines NS-Codeworts, P2 ist eine NS-Codewort-Paritätslänge und gleich der um eine NS-Datenwortlänge verminderten NS-Codewortlänge (N2 - W2).
  • Wenn beispielsweise ein Code RS(Nw, Kw) für die WS-Codewörter verwendet wird und Nw = 246 und Kw = 234 einen Code RS(246, 234) ergeben, ist der WS-Code in der Lage, 6 Zeichen aus einer Gruppe von 246 Zeichen zu korrigieren (Anzahl von korrigierfähigen Zeichen für WS = Tw = (Nw - Kw)/2 = (246 - 234)/2 = 12/2 = 6), was eine Codestärke von etwa 2,44 % zur Folge hat (Stärke des WS-Codes = Tw/Nw = 6/246 = 1/41 = 0,0243902439). Wenn bei einem weiteren Beispiel ein Code RS(Nn, Kn) für die NS-Codewörter verwendet wird und Nn = 96 und Kn = 84 einen Code RS(96, 84) ergeben, ist der NS-Code in der Lage, 6 Zeichen aus einer Gruppe von 96 Zeichen zu korrigieren (Anzahl von korrigierfähigen Zeichen für NS = Tn = (Nn - Kn)/2 = (96 - 84)/2 = 12/2 = 6), was eine Codestärke von 6,25 % zur Folge hat (Stärke des NS-Codes = Tn/Nn = 6/96 = 1/16 = 0,0625). Die Fähigkeit zum Korrigieren von 6,25 % der wiederhergestellten Zeichen ist stärker als die Fähigkeit zum Korrigieren von 2,44 % der wiederhergestellten Zeichen.
  • Des Weiteren kann bei einer Ausführungsform mehr als ein Zeichen jedes NS-Codeworts auf jede aus der Mehrzahl von Spuren des Magnetbandmediums geschrieben werden. Außerdem belegt gemäß einer Ausführungsform ein WS-Codewort, nachdem es auf das Magnetbandmedium geschrieben wurde, einen um wenigstens das (N1 - 1)fache größeren Abstand auf dem Magnetbandmedium in der longitudinalen Richtung als ein NS-Codewort, nachdem es auf das Magnetbandmedium geschrieben wurde.
  • Das Verfahren 1300 kann bei einem Ansatz des Weiteren Codieren eines Datensatzes unter Verwendung von zwei Reed-Solomon- (RS-) Codes zum Erzeugen der Mehrzahl von NS-Codewörtern und der Mehrzahl von WS-Codewörtern beinhalten, die in der im Voraus festgelegten Anzahl von zweidimensionalen Arrays, die den Datensatz darstellen, zueinander orthogonal positioniert sind. Darüber hinaus weist jedes NS-Codewort einen anderen Teil des Datensatzes und der Parität auf, die aus dem anderen Teil des Datensatzes erzeugt wird, wie zuvor beschrieben.
  • Gemäß einer weiteren Ausführungsform kann das Verfahren 1300 Byte-Verschachteln beinhalten (bei NS- und WS-Codezeichen kann es sich bei einem Ansatz um 8-Bit-Zeichen handeln, das muss jedoch nicht der Fall sein, und sie können größer oder kleiner sein als 8 Bit) von einer im Voraus festgelegten Anzahl von NS-Codewörtern unter Verwendung eines NS-Block-Interleaver zum Bilden von byte-verschachtelten NS-Codewörtern, bevor alle NS-Codewörter nacheinander auf die Mehrzahl von Spuren des Magnetbandmediums geschrieben werden. Die Anzahl von Bytes längs jeder Spur aus der Mehrzahl von Spuren des Magnetbandmediums, die von den byte-verschachtelten NS-Codeörtern belegt sind, kann ein Vielfaches der Anzahl von Bytes sein, die durch ein einzelnes NS-Codewort belegt sind, multipliziert mit J, was bei diesem Ansatz der im Voraus festgelegten Anzahl von byte-verschachtelten NS-Codewörtern entspricht. Außerdem kann die im Voraus festgelegte Anzahl von NS-Codewörtern J, die byte-verschachtelt sind, aus einem miteinbeziehenden Bereich von 2 bis 8 gewählt werden (der Bereich enthalten beispielsweise 2, 3, 4,..., 8).
  • Bei einer weiteren Ausführungsform kann die Mehrzahl von NS-Codewörtern längs einer Anzahl von Spuren des Magnetbandmediums geschrieben werden, die gleich einer maximalen Anzahl von Spuren ist, für die das Bandlaufwerk zum gleichzeitigen Schreiben eingerichtet ist. Bei diesen Beispielen wird die maximale Anzahl von Spuren, die gleichzeitig geschrieben werden können, mit M bezeichnet, und daher wird bei dieser Ausführungsform die Mehrzahl der NS-Codewörter längs M Spuren des Magnetbandmediums geschrieben.
  • Jeder der Schritte des in 13 gezeigten Verfahrens 1300 kann durch jede geeignete Komponente der Betriebsumgebung ausgeführt werden. Das Verfahren 1300 kann beispielsweise bei verschiedenen Ausführungsformen teilweise oder vollständig durch eine Verarbeitungsschaltung, eine Steuereinheit, ein Bandlaufwerk oder eine andere Einheit ausgeführt werden, die einen oder mehrere Prozessoren enthält. Die Verarbeitungsschaltung, z.B. Prozessor(en), Chip(s) und/oder Modul(e), die in Hardware und/oder Software mit zwischen ihnen vorhandenen Verbindungen umgesetzt sind, können in jeder Einheit zum Ausführen eines oder mehrerer Schritte des Verfahrens 1300 genutzt werden. Zu veranschaulichenden Verarbeitungsschaltungen gehören eine CPU, ein Mikroprozessor, eine ASIC, ein FPGA usw., Kombinationen hiervon oder jede andere geeignete Datenverarbeitungseinheit, die in der Technik bekannt ist, ohne auf diese beschränkt zu sein.
  • Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt handeln. Das Computerprogrammprodukt kann ein computerlesbares Speichermedium (oder Medien) mit darin befindlichen computerlesbaren Programmbefehlen enthalten, um zu bewirken, dass ein Prozessor Aspekte der vorliegenden Erfindung ausführt.
  • Bei dem computerlesbaren Speichermedium kann es sich um eine materielle Einheit handeln, die Befehle zum Verwenden durch eine Befehlsausführungseinheit halten und speichern kann. Bei dem computerlesbaren Speichermedium kann es sich beispielsweise um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiter-Speichereinheit oder jede geeignete Kombination der Vorhergehenden handeln, ist jedoch nicht auf diese beschränkt. Eine nichterschöpfende Liste von spezielleren Beispielen des computerlesbaren Speichermediums enthält Folgendes: eine tragbare Computerdiskette, eine Festplatte, einen Direktzugriffsspeicher (RAM), einen Festwertspeicher (ROM), einen löschbaren programmierbaren Festwertspeicher (EPROM oder Flash-Speicher), einen statischen Direktzugriffsspeicher (SRAM), einen tragbaren Compactdisk-Festwertspeicher (CD-ROM), eine digitale Versatile-Disk (DVD), einen Speicherstick, eine Diskette (Floppy Disk), eine mechanisch codierte Einheit wie beispielsweise Lochkarten oder erhabene Strukturen in einer Nut, in denen Befehle aufgezeichnet sind, oder jede geeignete Kombination des Vorhergehenden. Ein hier verwendetes computerlesbares Speichermedium sollte nicht so ausgelegt werden, dass es sich dabei per se um vergängliche Signale handelt wie beispielsweise Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder andere Übertragungsmedien ausbreiten (z.B. Lichtimpulse, die ein Lichtwellenleiterkabel durchlaufen) oder elektrische Signale, die durch eine Leitung übertragen werden.
  • Computerlesbare Programmbefehle, die hier beschrieben werden, können von einem computerlesbaren Speichermedium zu betreffenden Datenverarbeitungs/Verarbeitungs-Einheiten oder über ein Netzwerk, z.B. das Internet, ein Lokalbereichsnetz, ein Weitverkehrsnetz und/oder ein drahtloses Netzwerk zu einem externen Computer oder einer externen Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupfer-Übertragungskabel, Lichtwellenleiter, drahtlose Übertragungen, Router, Firewalls, Switches, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerk-Adapterkarte oder eine Netzwerk-Schnittstelle in jeder Datenverarbeitungs/Verarbeitungs-Einheit empfängt computerlesbare Programmbefehle von dem Netzwerk und leitet die computerlesbaren Programmbefehle zum Speichern in einem computerlesbaren Speichermedium in der betreffenden Datenverarbeitungs/Verarbeitungs-Einheit weiter.
  • Bei computerlesbaren Programmbefehlen zum Ausführen von Operationen der vorliegenden Erfindung kann es sich um Assembler-Befehle, Befehle mit Befehlssatz-Architektur (ISA), Maschinenbefehle, maschinenabhängige Befehle, Mikrocode, Firmware-Befehle, Zustandseinstellungsdaten oder Quellencode bzw. Objektcode handeln, die in jeder Kombination aus einer oder mehreren Programmiersprachen geschrieben sind, darunter eine objektorientierte Programmiersprache wie Smalltalk, C++ oder dergleichen und herkömmliche prozedurale Programmiersprachen wie etwa die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die computerlesbaren Programmbefehle können nur auf dem Computer eines Benutzers, teilweise auf dem Computer eines Benutzers, als ein eigenständiges Software-Paket, teilweise auf dem Computer eines Benutzers und teilweise auf einem fernen Computer oder nur auf dem fernen Computer oder Server ausgeführt werden. In dem zuletzt genannten Szenario kann der ferne Computer mit dem Computer des Benutzers durch jeden Netzwerktyp verbunden sein, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetz (WAN), oder die Verbindung kann zu einem externen Computer (z.B. über das Internet unter Verwendung eines Internet-Dienstanbieters) hergestellt werden. Bei einigen Ausführungsformen können elektronische Schaltungsanordnungen, darunter beispielsweise eine programmierbare logische Schaltungsanordnung, vor Ort programmierbare Gate-Arrays (FPGA) oder programmierbare Logik-Arrays (PLA) die computerlesbaren Programmbefehle ausführen, indem Zustandsinformationen der computerlesbaren Programmbefehle genutzt werden, um die elektronische Schaltungsanordnung zu personalisieren, um Aspekte der vorliegenden Erfindung auszuführen.
  • Aspekte der vorliegenden Erfindung werden hier unter Bezugnahme auf Ablaufplan-Darstellungen und/oder Blockschaltbilder von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es ist klar, dass jeder Block der Ablaufplan-Darstellungen und/oder Blockschaltbilder und Kombinationen von Blöcken in den Ablaufplan-Darstellungen und/oder Blockschaltbildern durch computerlesbare Programmbefehle umgesetzt werden können.
  • Diese computerlesbaren Programmbefehle können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu bilden, so dass Befehle, die über den Prozessor des Computers oder der anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, Mittel zum Umsetzen der Funktionen/Wirkungen, die in dem Block oder den Blöcken des Ablaufplans und/oder Blockschaltbilds spezifiziert sind, erzeugen. Diese computerlesbaren Programmbefehle können außerdem in einem computerlesbaren Speichermedium gespeichert sein, das einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten anweisen kann, in einer bestimmten Weise zu funktionieren, so dass das computerlesbare Speichermedium mit darin gespeicherten Befehlen einen Herstellungsgegenstand aufweist, der Befehle enthält, die Aspekte der Funktion/Wirkung umsetzen, die in dem Block oder den Blöcken des Ablaufplans und/oder Blockschaltbilds spezifiziert sind.
  • Die computerlesbaren Programmbefehle können außerdem in einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um eine Reihe von Operationsschritten zu bewirken, die auf dem Computer, der anderen programmierbaren Datenverarbeitungsvorrichtung oder der anderen Einheit ausgeführt werden sollen, um einen durch einen Computer umgesetzten Prozess zu erzeugen, so dass die Befehle, die auf dem Computer, der anderen programmierbaren Vorrichtung oder der anderen Einheit ausgeführt werden, die Funktionen/Wirkungen, die in dem Block oder Blöcken des Ablaufplans und/oder Blockschaltbilds spezifiziert sind, umsetzen.
  • Der Ablaufplan und die Blockdarstellungen in den Figuren veranschaulichen die Architektur, Funktionalität und Operation von möglichen Umsetzungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedener Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in dem Ablaufplan oder in Blockdarstellungen ein Modul, Segment oder Abschnitt von Befehlen repräsentieren, der einen oder mehrere ausführbare Befehle zum Umsetzen der spezifizierten logischen Funktion(en) aufweist. Bei einigen alternativen Umsetzungen können die in dem Block angegebenen Funktionen möglicherweise nicht in der in den Figuren angegebenen Reihenfolge auftreten. Zum Beispiel können zwei Blöcke, die nacheinander gezeigt sind, tatsächlich im Wesentlichen gleichzeitig ausgeführt werden oder die Blöcke können gelegentlich in Abhängigkeit von der beteiligten Funktionalität in der umgekehrten Reihenfolge ausgeführt werden. Es wird außerdem angemerkt, dass jeder Block in den Blockdarstellungen und/oder Ablaufplan-Darstellungen und Kombinationen von Blöcken in den Blockdarstellungen und/oder der Ablaufplan-Darstellung durch Systeme, die auf spezieller Hardware beruhen, die die spezifizierten Funktionen oder Wirkungen ausführen, oder Kombinationen aus spezieller Hardware und Computerbefehlen umgesetzt werden können.
  • Darüber hinaus kann ein System gemäß verschiedenen Ausführungsformen einen Prozessor und ein Logikelement enthalten, das in den Prozessor integriert und/oder durch diesen ausführbar ist, wobei das Logikelement so eingerichtet ist, dass es einen oder mehrere der hier genannten Prozessschritte ausführt. Mit darin integriert ist gemeint, dass der Prozessor ein Logikelement hat, das als Hardware-Logikelement wie beispielsweise ein ASIC, ein FPGA usw. darin eingebettet ist. Mit ausführbar durch den Prozessor ist gemeint, dass es sich bei dem Logikelement um ein Hardware-Logikelement, ein Software-Logikelement wie beispielsweise Firmware, Teil eines Betriebssystems, Teil eines Anwendungsprogramms usw. oder um eine bestimmte Kombination aus Hardware- und Software-Logikelementen handelt, auf die von dem Prozessor zugegriffen werden kann und die so eingerichtet ist, dass bewirkt wird, dass der Prozessor eine bestimmte Funktionalität beim Ausführen durch den Prozessor ausführt. Ein Software-Logikelement kann in einem lokalen und/oder fernen Speicher eines beliebigen Speichertyps gespeichert werden wie in der Technik bekannt. Jeder in der Technik bekannte Prozessor kann verwendet werden wie beispielsweise ein Software-Prozessormodul und/oder ein Hardware-Prozessor wie z.B. ein ASIC, ein FPGA, eine CPU, ein integrierter Schaltkreis (IC), eine Grafik-Verarbeitungseinheit (GPU) usw.
  • Es ist klar, dass die verschiedenen Merkmale der vorhergehenden Systeme und/oder Verfahrensweisen beliebig kombiniert werden können, wodurch aus den oben dargestellten Beschreibungen eine Mehrzahl von Kombinationen erzeugt werden.
  • Es ist ferner klar, dass Ausführungsformen der vorliegenden Erfindung in Form eines Dienstes bereitgestellt werden können, der im Auftrag eines Kunden eingesetzt wird, um Dienst auf Anforderung anzubieten.
  • Das hier in verschiedenen Ausführungsformen beschriebene logische Format zur Datenspeicherung auf Magnetband beruht auf Codieren von Datenworten in einem Datensatz als P 2D-Produkt-Codewörter (2D-Arrays) und Schreiben der Spalten der 2D-Produkt-Codewörter als eng gestreutes codierte 2D- (oder möglicherweise 1D-) Array quer über M Spuren und gleichmäßigem Verteilen der Zeichen in den Zeilen der 2D-Produkt-Codewörter (2D-Arrays) in dem Datensatz längs einer einzelnen Spur (oder möglicherweise längs verschiedener Spuren, ohne Daten von derselben Zeile gleichzeitig auf beliebige zwei Spuren zu schreiben). Die Fehlerraten-Leistung ist gegenüber dem Stand der Technik verbessert wegen der Verwendung von eng gestreuten decodierten Zeichen mit geringer Latenzzeit zum Ansteuern von entscheidungsgesteuerten digitalen Eingangsfunktionen wie beispielsweise Zeitablauf-Wiederherstellung (einmaliger Durchlauf) oder zum Ausführen iterativer Erkennung und Zeitablauf-Wiederherstellung (mehrere Durchläufe).
  • Zwar wurden oben verschiedene Ausführungsformen beschrieben, es sollte jedoch klar sein, dass sie lediglich beispielhaft und nicht als Einschränkung dargestellt wurden. Daher sollten die Breite und der Umfang einer bevorzugten Ausführungsform nicht durch die oben beschriebenen beispielhaften Ausführungsformen beschränkt sein, sondern sollten lediglich gemäß der folgenden Ansprüche und deren Entsprechungen definiert sein.

Claims (15)

  1. Ein Bandlaufwerk, das aufweist eine Mehrzahl von Schreibkopfelementen; eine Verarbeitungsschaltung; und ein Logikelement, das in die Verarbeitungsschaltung integriert ist, durch die Verarbeitungsschaltung ausführbar ist oder in die Verarbeitungsschaltung integriert und durch diese ausführbar ist, wobei das Logikelement eingerichtet ist zum Bewirken, dass die Verarbeitungsschaltung: Daten empfängt zum Speichern auf einem Magnetbandmedium unter Verwendung der Mehrzahl von Schreibkopfelementen, wobei die Daten in einer im Voraus festgelegten Anzahl von zweidimensionalen Arrays organisiert sind, wobei jedes zweidimensionale Array eine Mehrzahl von eng gestreuten (NS-) Codewörtern aufweist, die orthogonal zu einer Mehrzahl von weit gestreuten (WS-) Codewörtern positioniert sind; und nacheinander alle NS-Codewörter auf eine Mehrzahl von Spuren des Magnetbandmediums unter Verwendung einer ersten Anzahl aus der Mehrzahl von Schreibkopfelementen schreibt, die in der Lage sind, Daten gleichzeitig auf Bandspuren zu schreiben, wobei ein erstes NS-Codewort von einem ersten zweidimensionalen Array vollständig auf das Magnetbandmedium geschrieben wird, bevor mit dem Schreiben eines zweiten Codeworts von dem ersten zweidimensionalen Array begonnen wird, wobei die Mehrzahl der NS-Codewörter mit einer stärkeren Codierung geschützt ist als die Mehrzahl der WS-Codewörter.
  2. Das Bandlaufwerk nach Anspruch 1, wobei die stärkere Codierung auf einem höheren korrigierbaren Anteil von fehlerhaften Zeichen in einem NS-Codewort im Vergleich zu einem korrigierbaren Anteil von fehlerhaften Zeichen in einem WS-Codewort beruht.
  3. Das Bandlaufwerk nach Anspruch 1, wobei die stärkere Codierung darauf beruht, dass T2/N2 größer als T1/N1 ist, wobei T1 ein Mindestwert (P1/2) ist, N1 eine Länge eines WS-Codeworts ist, P1 eine WS-Codewort-Paritätslänge und gleich der um eine WS-Datenwortlänge verminderten WS-Codewortlänge ist, und wobei T2 ein Mindestwert (P2/2) ist, N2 eine Länge eines NS-Codeworts ist, P2 eine NS-Codewort-Paritätslänge und gleich der um eine NS-Datenwortlänge verminderten NS-Codewortlänge ist.
  4. Das Bandlaufwerk nach Anspruch 3, wobei mehr als ein Zeichen jedes NS-Codeworts auf jede von der Mehrzahl von Spuren des Magnetbandmediums geschrieben wird und wobei ein WS-Codewort, nachdem es auf das Magnetbandmedium geschrieben wurde, einen um wenigstens das (N1 - 1)fache größeren Abstand auf dem Magnetbandmedium in einer longitudinalen Richtung belegt als ein NS-Codewort, nachdem es auf das Magnetbandmedium geschrieben wurde.
  5. Das Bandlaufwerk nach Anspruch 1, wobei das Logikelement ferner bewirkt, dass die Verarbeitungsschaltung: einen Datensatz unter Verwendung von zwei Reed-Solomon- (RS-) Codes codiert, um die Mehrzahl von NS-Codewörtern und die Mehrzahl von WS-Codewörtern, die zueinander orthogonal positioniert sind, in der im Voraus festgelegten Anzahl von zweidimensionalen Arrays zu erzeugen, die den Datensatz darstellen, wobei jedes NS-Codewort einen anderen Abschnitt des Datensatzes und die Parität aufweist, die aus dem anderen Abschnitt des Datensatzes erzeugt wird.
  6. Das Bandlaufwerk nach Anspruch 1, wobei das Logikelement ferner bewirkt, dass die Verarbeitungsschaltung: eine im Voraus festgelegte Anzahl von NS-Codewörtern unter Verwendung eines NS-Interleaver byte-verschachtelt, um byte-verschachtelte NS-Codewörter zu bilden, bevor alle NS-Codewörter nacheinander auf die Mehrzahl von Spuren des Magnetbandmediums geschrieben werden, wobei eine Anzahl von Bytes längs jeder Spur aus der Mehrzahl von Spuren des Magnetbandmediums, die durch die byte-verschachtelten NS-Codewörter belegt sind, ein Vielfaches der Anzahl von Bytes ist, die durch ein einzelnes Codewort, multipliziert mit der im Voraus festgelegten Anzahl von byte-verschachtelten NS-Codewörtern, belegt sind, und wobei die im Voraus festgelegte Anzahl von byte-verschachtelten NS-Codewörtern in einem miteinbeziehenden Bereich von 2 bis 8 liegt.
  7. Ein Verfahren, das aufweist: Empfangen von Daten zum Speichern auf einem Magnetbandmedium unter Verwendung eines Bandlaufwerkes, wobei die Daten in einer im Voraus festgelegten Anzahl von zweidimensionalen Arrays organisiert sind, wobei jedes zweidimensionale Array eine Mehrzahl von eng gestreuten (NS-) Codewörtern aufweist, die orthogonal zu einer Mehrzahl von weit gestreuten (WS-) Codewörtern positioniert sind; und aufeinanderfolgendes Schreiben aller NS-Codewörter auf eine Mehrzahl von Spuren des Magnetbandmediums unter Verwendung einer ersten Anzahl von Kanälen des Bandlaufwerks, das in der Lage ist, Daten gleichzeitig auf Bandspuren zu schreiben, wobei ein erste NS-Codewort vollständig auf das Magnetbandmedium geschrieben wird, bevor mit dem Schreiben eines zweiten Codeworts von dem ersten zweidimensionalen Array begonnen wird, wobei die Mehrzahl von NS-Codewörtern mit einer stärkeren Codierung geschützt ist als die Mehrzahl von WS-Codewörtern.
  8. Das Verfahren nach Anspruch 7, wobei die stärkere Codierung auf einem höheren korrigierfähigen Anteil von fehlerhaften Zeichen in einem NS-Codewort im Vergleich mit einem korrigierfähigen Anteil von fehlerhaften Zeichen in einem WS-Codewort beruht.
  9. Das Verfahren nach Anspruch 7, wobei die stärkere Codierung darauf beruht, dass T2/N2 größer als T1/N1 ist, wobei T1 ein Mindestwert (P1/2) ist, N1eine Länge eines WS-Codeworts ist, P1 eine WS-Codewort-Paritätslänge und gleich der um eine WS-Datenwortlänge verminderten WS-Codewortlänge ist, und wobei T2 ein Mindestwert (P2/2) ist, N2 eine Länge eines NS-Codeworts ist, P2 eine NS-Codewort-Paritätslänge und gleich der um eine NS-Datenwortlänge verminderten NS-Codewortlänge ist.
  10. Das Verfahren nach Anspruch 9, wobei mehr als ein Zeichen jedes NS-Codeworts auf jede von der Mehrzahl von Spuren des Magnetbandmediums geschrieben wird und wobei ein WS-Codewort, nachdem es auf das Magnetbandmedium geschrieben wurde, einen um wenigstens das (N1 - 1)fache größeren Abstand auf dem Magnetbandmedium in einer longitudinalen Richtung belegt als ein NS-Codewort, nachdem es auf das Magnetbandmedium geschrieben wurde.
  11. Das Verfahren nach Anspruch 7, das ferner aufweist: Codieren eines Datensatzes unter Verwendung von zwei Reed-Solomon-(RS-) Codes, um die Mehrzahl von NS-Codewörtern und die Mehrzahl von WS-Codewörtern, die zueinander orthogonal positioniert sind, in der im Voraus festgelegten Anzahl von zweidimensionalen Arrays zu erzeugen, die den Datensatz darstellen, wobei jedes NS-Codewort einen anderen Abschnitt des Datensatzes und die Parität aufweist, die aus dem anderen Abschnitt des Datensatzes erzeugt wird.
  12. Das Verfahren nach Anspruch 7, das weiterhin aufweist: Byte-Verschachteln einer im Voraus festgelegten Anzahl von NS-Codewörtern unter Verwendung eines NS-Interleaver, um byte-verschachtelte NS-Codewörter zu bilden, bevor alle NS-Codewörter nacheinander auf die Mehrzahl von Spuren des Magnetbandmediums geschrieben werden, wobei eine Anzahl von Bytes längs jeder Spur aus der Mehrzahl von Spuren des Magnetbandmediums, die durch die byte-verschachtelten NS-Codewörter belegt sind, ein Vielfaches der Anzahl von Bytes ist, die durch ein einzelnes Codewort, multipliziert mit der im Voraus festgelegten Anzahl von byte-verschachtelten NS-Codewörtern, belegt sind und wobei die im Voraus festgelegte Anzahl von byte-verschachtelten NS-Codewörtern in einem miteinbeziehenden Bereich von 2 bis 8 liegt.
  13. Das Verfahren nach Anspruch 7, wobei die Mehrzahl von NS-Codewörtern längs einer Anzahl von Spuren des Magnetbandmediums geschrieben wird, die gleich einer maximalen Anzahl von Spuren ist, für die das Bandlaufwerk zum gleichzeitigen Schreiben eingerichtet ist.
  14. Ein Computerprogrammprodukt, wobei das Computerprogrammprodukt ein computerlesbares Speichermedium mit Programmbefehlen aufweist, die darin verkörpert sind, wobei die verkörperten Programmbefehle durch eine Verarbeitungsschaltung ausführbar sind, um die Verarbeitungsschaltung zu veranlassen zum: Empfangen durch die Verarbeitungsschaltung von Daten zum Speichern auf einem Magnetbandmedium unter Verwendung eines Bandlaufwerks, wobei die Daten in einer im Voraus festgelegten Anzahl von zweidimensionalen Arrays organisiert sind, wobei jedes Array eine Mehrzahl von eng gestreuten (NS-) Codewörtern aufweist, die orthogonal zu einer Mehrzahl von weit gestreuten (WS-) Codewörtern positioniert ist; und Schreiben durch die Verarbeitungsschaltung aller NS-Codewörter nacheinander auf eine Mehrzahl von Spuren des Magnetbandmediums unter Verwendung einer ersten Anzahl von Kanälen des Bandlaufwerks, das in der Lage ist, Daten gleichzeitig auf Bandspuren zu schreiben, wobei ein erstes NS-Codewort von einem ersten zweidimensionalen Array vollständig auf das Magnetbandmedium geschrieben wird, bevor mit dem Schreiben eines zweiten Codeworts von dem ersten zweidimensionalen Array begonnen wird, wobei die Mehrzahl von NS-Codewörtern mit einer stärkeren Codierung geschützt ist als die Mehrzahl von WS-Codewörtern.
  15. Das Computerprogrammprodukt nach Anspruch 14, wobei die stärkere Codierung auf einem höheren korrigierfähigen Anteil von fehlerhaften Zeichen in einem NS-Codewort im Vergleich mit einem korrigierfähigen Anteil von fehlerhaften Zeichen in einem WS-Codewort beruht.
DE102017129990.4A 2016-12-15 2017-12-14 Logisches format, bei dem laterales codieren genutzt wird, zum speichern von daten auf magnetband Pending DE102017129990A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/380,983 2016-12-15
US15/380,983 US10379756B2 (en) 2016-12-15 2016-12-15 Logical format utilizing lateral encoding of data for storage on magnetic tape

Publications (1)

Publication Number Publication Date
DE102017129990A1 true DE102017129990A1 (de) 2018-06-21

Family

ID=62251141

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102017129990.4A Pending DE102017129990A1 (de) 2016-12-15 2017-12-14 Logisches format, bei dem laterales codieren genutzt wird, zum speichern von daten auf magnetband

Country Status (3)

Country Link
US (2) US10379756B2 (de)
CN (1) CN108231097B (de)
DE (1) DE102017129990A1 (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10120599B2 (en) 2016-12-15 2018-11-06 International Business Machines Corporation Low latency lateral decoding of data for retrieval from magnetic tape
US10379756B2 (en) 2016-12-15 2019-08-13 International Business Machines Corporation Logical format utilizing lateral encoding of data for storage on magnetic tape
US10418062B2 (en) * 2017-12-19 2019-09-17 International Business Machines Corporation Efficient rewrite using larger codeword sizes
US10339971B1 (en) * 2017-12-19 2019-07-02 International Business Machines Corporation Sequential data storage with rewrite using dead-track detection

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3735979A1 (de) 1986-10-24 1988-04-28 Mitsubishi Electric Corp Pcm-signalwiedergabevorrichtung mit fehler/loeschkorrekturschaltung
ATE151908T1 (de) * 1990-01-18 1997-05-15 Philips Electronics Nv Aufzeichnungsvorrichtung zum umkehrbaren speichern von digitalen daten auf einem mehrspuren-aufzeichnungsträger, dekodiervorrichtung, informationswiedergabegerät für die verwendung mit einem solchen aufzeichnungsträger und aufzeichnungsträger für die verwendung mit einer solchen aufzeichnungsvorrichtung, mit einer solchen dekodiervorrichtung und/oder mit einem solchen informationswiedergabegerät
US5841794A (en) * 1993-05-28 1998-11-24 Sony Corporation Error correction processing method and apparatus for digital data
EP0913826A1 (de) 1997-10-31 1999-05-06 Hewlett-Packard Company Kratzschutz in einem Magnetbandspeichersystem
WO2004059647A1 (en) * 2002-12-30 2004-07-15 Koninklijke Philips Electronics N.V. Coding system
JP2004295958A (ja) 2003-03-26 2004-10-21 Sharp Corp データ記録再生方法、データ記録再生装置、データ記録再生プログラム及びプログラム記録媒体
KR20040100802A (ko) * 2003-05-20 2004-12-02 삼성전자주식회사 에러 정정 부호화 방법, 이를 이용한 데이터 기록 방법 및그 장치
KR101165865B1 (ko) 2003-08-28 2012-07-13 소니 주식회사 복호 장치 및 방법과 프로그램 기록 매체
EP1850342B1 (de) * 2004-12-28 2012-12-05 International Business Machines Corporation INFORMATIONSAUFZEICHNUNGSEINRICHTUNG und DATENFLUSSSTEUERUNG FÜR DIE EINRICHTUNG
JP2007087530A (ja) 2005-09-22 2007-04-05 Rohm Co Ltd 信号復号方法、信号復号装置および信号記憶システム
US7957490B2 (en) 2006-09-21 2011-06-07 Limberg Allen Leroy Insertion of repetitive PN sequences into DTV data fields
US7965462B2 (en) 2009-01-09 2011-06-21 International Business Machines Corporation Storing partial data sets to magnetic tape
US8611039B2 (en) 2009-04-29 2013-12-17 Hewlett-Packard Development Company, L.P. Arrangement and processing of longitudinal position information on a data storage medium
WO2010151268A1 (en) 2009-06-26 2010-12-29 Hewlett-Packard Development Company,- Approximate enumerative coding method and apparatus
US8910012B2 (en) 2012-10-16 2014-12-09 International Business Machines Corporation Block-interleaved and error correction code (ECC)-encoded sub data set (SDS) format
US9311960B1 (en) * 2015-03-31 2016-04-12 International Business Machines Corporation Efficient multichannel data format using variable-length headers
US9712188B2 (en) * 2015-05-04 2017-07-18 International Business Machines Corporation Decoding data stored with three orthogonal codewords
US10379756B2 (en) 2016-12-15 2019-08-13 International Business Machines Corporation Logical format utilizing lateral encoding of data for storage on magnetic tape
US10120599B2 (en) 2016-12-15 2018-11-06 International Business Machines Corporation Low latency lateral decoding of data for retrieval from magnetic tape

Also Published As

Publication number Publication date
US20180173439A1 (en) 2018-06-21
US20190258413A1 (en) 2019-08-22
CN108231097A (zh) 2018-06-29
US10379756B2 (en) 2019-08-13
US10824346B2 (en) 2020-11-03
CN108231097B (zh) 2020-03-20

Similar Documents

Publication Publication Date Title
DE112018005762B4 (de) Neuschreiben von datenobjekten auf speichermedien mit sequenziellem zugriff
DE3040004C2 (de)
DE10133595B4 (de) Pufferschaltung, Speicherzugriffsverfahren und Reed-Solomon-Decoder
DE112011100199B4 (de) Integrierter Daten- und Kopfdatenschutz für Bandlaufwerke
DE69932962T2 (de) Kodierungsverfahren und Speicheranordnung
DE102017129990A1 (de) Logisches format, bei dem laterales codieren genutzt wird, zum speichern von daten auf magnetband
DE112014002870B4 (de) Kombinations-Fehler- und Löschdecodierung für Produktcodes
DE102016205281B4 (de) Fehlersicherung von unter verwendung von headern mit variabler länge gespeicherten daten
DE112011101116B4 (de) Two-Level BCH-Codes für Solid-State-Speichereinheiten
DE112016003638B4 (de) Auf eine Decodierung folgende Fehlerprüfung mit Diagnose für Produktcodes
DE3416047C2 (de) Fehlerkorrekturverfahren für digitale Informationsdaten
DE112013005453B4 (de) Rekonstruierende Fehlerbehebungsprozedur (ERP) für mehrerer Datensätze unter Verwendung eines reservierten Puffers
DE2853892A1 (de) Verfahren und schaltungsanordnung zur codierung und decodierung von pruefbits
DE102005053625A1 (de) Speichermodul mit einer Mehrzahl von Speicherbausteinen
DE102013016147A1 (de) Skalierbare Reparaturblockfehlerkorrektur für mehrere sequenzielle Datenblöcke in einem magnetischen Datenspeichergerät
DE69814465T2 (de) Verfahren und gerät zur datenspeicherung auf magnetischen medien, die fehlerkorrekturkodes enthalten
DE102017103347B4 (de) Verarbeitung von daten in speicherzellen eines speichers
DE102012213788A1 (de) Ende-zu-Ende-Datenschutz bei gleichzeitiger Unterstützung mehrerer CRC-Algorithmen
DE69832791T2 (de) Verbessertes Datenschreiben auf Datenspeichermedium
DE69833414T2 (de) Modulator und Demodulator
DE102007007546A1 (de) Fehlerkorrekturcode-Striping
DE19911470B4 (de) Verfahren und Vorrichtung zum Codieren und Decodieren einer Sequenz von digitalen Datenwörtern
DE102017126911A1 (de) Verknüpfter Speichersystem- und Hostsystem-Fehlerkorrekturcode
DE2053836A1 (de) Verfahren und Vorrichtung zur Korrek Datengruppen
DE69433050T2 (de) Verfahren zur Erzeugung eines Fehlerprüfkodes und Kodeverarbeitungsschaltkreis

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R084 Declaration of willingness to licence