DE19911470A1 - Verfahren und Vorrichtung zum Codieren und Decodieren einer Sequenz von digitalen Datenwörtern - Google Patents

Verfahren und Vorrichtung zum Codieren und Decodieren einer Sequenz von digitalen Datenwörtern

Info

Publication number
DE19911470A1
DE19911470A1 DE19911470A DE19911470A DE19911470A1 DE 19911470 A1 DE19911470 A1 DE 19911470A1 DE 19911470 A DE19911470 A DE 19911470A DE 19911470 A DE19911470 A DE 19911470A DE 19911470 A1 DE19911470 A1 DE 19911470A1
Authority
DE
Germany
Prior art keywords
code
data
bit
subword
word
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.)
Granted
Application number
DE19911470A
Other languages
English (en)
Other versions
DE19911470B4 (de
Inventor
Ara Patapoutian
Jennifer Stander
Peter Mcewen
Bahjat Zafer
James Fitzpatrick
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.)
Quantum Corp
Original Assignee
Quantum 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 Quantum Corp filed Critical Quantum Corp
Publication of DE19911470A1 publication Critical patent/DE19911470A1/de
Application granted granted Critical
Publication of DE19911470B4 publication Critical patent/DE19911470B4/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M5/00Conversion of the form of the representation of individual digits
    • H03M5/02Conversion to or from representation by pulses
    • H03M5/04Conversion to or from representation by pulses the pulses having two levels
    • H03M5/14Code representation, e.g. transition, for a given bit cell depending on the information in one or more adjacent bit cells, e.g. delay modulation code, double density code
    • H03M5/145Conversion to or from block codes or representations thereof
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B5/00Recording by magnetisation or demagnetisation of a record carrier; Reproducing by magnetic means; Record carriers therefor
    • G11B5/02Recording, reproducing, or erasing methods; Read, write or erase circuits therefor
    • G11B5/09Digital recording
    • 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/10009Improvement or modification of read or write signals
    • 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/10009Improvement or modification of read or write signals
    • G11B20/10046Improvement or modification of read or write signals filtering or equalising, e.g. setting the tap weights of an FIR filter
    • G11B20/10055Improvement or modification of read or write signals filtering or equalising, e.g. setting the tap weights of an FIR filter using partial response filtering when writing the signal to the medium or reading it therefrom

Abstract

Es werden ein Verfahren und eine Vorrichtung zum Codieren einer Sequenz von digitalen 32-Bit-Datenwörtern in eine Sequenz von 33-Bit-Codewörtern in Übereinstimmung mit einer vorbestimmten minimalen nur aus Nullen bestehenden Abschnittslänge (d) und einer vorbestimmten maximalen nur aus Nullen bestehenden Abschnittslänge (k) zur Aufzeichnung auf einem magnetischen Medium in einem magnetischen Aufzeichnungskanal beschrieben. Das Verfahren umfaßt die Schritte, daß jedes Datenwort in acht Daten-Nibble unterteilt wird und daß festgestellt wird, ob irgend ein Daten-Nibble nur aus Nullen besteht. Wenn keine Codeverletzung vorliegt, werden die acht Daten-Nibble auf sieben Code-Nibble und auf vier Bits eines fünften Code-Teilworts abgebildet und ein fünftes Kontrollbit auf Eins gesetzt. Wenn eine oder mehrere Codeverletzungen vorliegen, werden die Stellen der Codeverletzung zumindest in das 5-Bit-Code-Teilwort und erforderlichenfalls in andere Code-Nibble eingebettet und eine andere Abbildung der Daten-Nibble, die regulär auf das Code-Teilwort und Nibble-Plätze abgebildet würden, auf Code-Plätze vorgenommen, die ansonsten die Daten-Nibble enthalten würden, für die eine Codeverletzung festgestellt wurde.

Description

Zusammenfassung der Erfindung
Die Erfindung betrifft Modulationscode sowie Verfahren und Vorrichtungen zum Modulationscodieren und -decodieren. Insbesondere betrifft die Erfindung einen Modulationscode mit begrenzter Abschnittslänge und hoher Rate mit einer klei­ nen maximalen Abschnittslänge (beispielsweise k=6) mit optimierten Fehler­ ausbreitungseigenschaften und einer einfachen Verwirklichung in einem magne­ tischen Aufzeichnungssystem, wie z. B. einem digitalen linearen Magnetband- Aufzeichnungs- und -Wiedergabe-System.
Hintergrund der Erfindung
Es wurden Modulationscode in Verbindung mit magnetischen Aufzeichnungska­ nälen verwendet, um eine gleichmäßigere Verteilung der Magnetfluß-Übergänge in einer Datenspur in bezug auf Datenmuster spezieller Verwenderinformation zu erzielen, die codiert und aufgezeichnet werden sollte. Insbesondere wurden in der Abschnittslänge begrenzte (RLL = Run Length Limited) Modulationscode in Datenaufzeichnungs- und Wiedergabekanälen mit teilweiser Antwort und maxi­ maler Wahrscheinlichkeits-Sampling-Detektion (PRML = Partial Response Maxi­ mum Likelihood Sampling Detection), Kanälen mit Entscheidungs-Rückführ- Abgleich-Detektion (DFE = Decision Feedback Equalization) und Kanälen mit Baumsuch-Detektion mit fester Verzögerung (FDTS = Fixed Delay Tree Search) verwendet.
Kanonische Teilantwort-Targets, die für magnetische Datenspeicherkanäle von Bedeutung sind, umfassen ein (1-D)di-code-Target, ein PR4 (1-D2)-Target, ein EPR4 (1+D-D2-D3)-Target und ein E2-PR4-Target, wobei D einen Einheitsverzö­ gerungsoperator darstellt. Ein Nachteil eines kanonischen Targets in der Form (1-D)(1+D)N besteht darin, daß es nur eine näherungsweise Anpassung an den magnetischen Kanal darstellt, doch kann es relativ einfach verwirklicht werden; auch liefert es eine spektrale Null bei der Nyquist-Abtastfrequenz. Andere Tar­ gets, die für magnetische Aufzeichnungskanäle verwendet werden können, um­ fassen Targets des Typs mit minimalem mittlerem Quadratfehler (MMSE = Mini­ mum Mean Square Error). Eine neue Klasse von festen Teilantwort-Targets wird in einer gleichzeitig eingereichten US-Patentanmeldung vom 04. März 1998 mit dem Titel "Disk Drive Using New Class of Fixed Partial Response Targets in a PRML Sampled Data Detection Channel" von Fisher et al beschrieben, auf deren Offenbarungsgehalt hier in vollem Umfang Bezug genommen wird.
Bei PRML-Abtast-Datendetektionssystemen werden herkömmlicherweise Viterbi-Detek­ toren verwendet, um eine "Maximalwahrscheinlichkeit"-Detektion von Ver­ wenderdaten zu erzielen, die von einem magnetischen Aufzeichnungsmedium abgespielt werden. Beispielsweise verwendet ein Viterbi-Detektor, der ein 8-Zustands-Gitter (Eight State Trellis), d. h. ein Nominal EPR4-Target umfaßt, typi­ scherweise ein iteratives Verfahren zur Bestimmung eines Pfades mit maximaler Wahrscheinlichkeit längs der verschiedenen Zweige des Detektorgitters. "Maxi­ male Wahrscheinlichkeit" bedeutet im allgemeinen einen speziellen Pfad durch das Gitter, der einen minimalen mittleren Quadratfehler erzeugt.
Ein Modulationscode für einen PRML-Daten-Aufzeichnungs- und -Wiedergabe­ kanal wird ausgewählt, um bestimmte gewünschte Signalwiedergabedingungen aufzuerlegen, die gewünscht sind oder benötigt werden, um eine robuste und zu­ verlässige Datenabtastung zu erzielen und die Informationsmenge zu begrenzen, die durch Fehler beim Aufzeichnungs-/Wiedergabe-Prozeß beschädigt wird, wo­ bei dies dadurch erkauft wird, daß gewisse zusätzliche Organisationsinformation (Overhead Information) zu dem Strom der codierten Daten hinzugefügt wird. Die Menge von zusätzlicher Organisationsinformation steht in unmittelbarem Bezug zur "Rate" oder Effizienz des Modulationscode. Je weniger Organisationsinfor­ mation durch den Modulationscode hinzugefügt wird, desto höher ist die Rate oder Effizienz des Codes. Wenn die Effizienz zunimmt, wird weniger Aufzeich­ nungsraum durch die Organisationsinformation verbraucht, die der Modulati­ onscode benötigt.
Die "Rate" eines speziellen Modulationscode wird als das Verhältnis von nicht codierten Bits zu codierten Bits im codierten Ausgangs-Datenstrom definiert. Bei­ spielsweise werden bei einem Code mit einer Rate 2/3 zwei Verwenderbits in drei Codebits übersetzt, was zu einer Effizienz von nur 0,667 führt, die als niedri­ ge Rate zu betrachten ist. Ein Modulationscode mit einer Rate 8/9 würde eine höhere Effizienz von 0,889 besitzen. Man sagt, daß die Rate zunimmt, wenn sich die Effizienz dem Wert 1 nähert und Modulationscode, die eine Effizienz von mehr als 0,889 besitzen, werden als Code mit "hoher Rate" bezeichnet.
Ein Modulationscode mit einer Rate 16/17 (=0,941) erzielt eine Erhöhung der Aufzeichnungsdichte von ungefähr 6% im Vergleich zu einem Standard-Modu­ lationscode mit einer Rate 8/9. Die erhöhte Rate, die mit einem Modulati­ onscode mit einer Rate von 16/17 realisiert wird, bedeutet, daß jedes Codebit, das auf dem magnetischen Aufzeichnungsmedium (Platte oder Band) aufge­ zeichnet wird, in etwa 6% mehr Verwenderdaten-Information enthält, als dies bei einem ähnlichen Codebit entsprechend einem Modulationscode mit einer Rate 8/9 der Fall ist. Ein Beispiel für einen Modulationscode mit einer Rate 16/17 wird in dem US-Patent 5,635,933 mit dem Titel "Rate 16/17 (D=0, G=6/I=7) Modulati­ on Code for a Magnetic Recording Channel" beschrieben, auf deren Offenba­ rungsgehalt hier in vollem Umfang Bezug genommen wird. Ein weiteres Beispiel für einen Modulationscode mit einer Rate 16/17 wird in der US-Patentanmeldung 08/518,945 vom 24. August 1995 von Fisher et al mit dem Titel "Bit-Interleaved Rate 16/17 Modulation Code with Tree-Way Byte-Interleaved ECC" beschrieben, auf deren Offenbarungsgehalt hier voll umfänglich Bezug genommen wird.
Ein Beispiel eines Modulationscodes mit einer Rate 24/25 ist in der US-Patentanmeldung 08/744,412 vom 31. Dezember 1996 von Fisher et al mit dem Titel "Rate 24125 Modulation Code for PRML Recording Channels" beschrieben, deren Inhalt hier in vollem Umfang mit aufgenommen wird. Ein Artikel von Wijngaarden und Immink mit dem Titel "Commatorial Construction of High Rate Runlength-limited Codes", der in den IEEE Proceedings of Globecom, 1996, Seite 343 bis 347 erschienen ist, beschreibt Techniken zur Konstruktion von Mo­ dulationscodes mit hoher Rate. In diesem Papier beschreiben die Autoren Bei­ spiele, die einen Code mit einer Rate 16/17 (d=0, k=4) und einen Code mit einer Rate 16/17 (d=0, k=6) beschreiben. Eine Schwierigkeit, die sich aus der Anwen­ dung eines Modulationscode mit sehr hoher Rate ergibt, ist die beträchtliche Komplexität, die üblicherweise erforderlich ist, um praktische Hardware-Reali­ sierungen des Codier- und Decodier-Vorganges zu realisieren.
Zusätzliche Komplexitäten entstehen bei einer Mehrkanalaufzeichnung auf linea­ ren digitalen Magnetbändern. Eine Aufzeichnung auf einem Band unterscheidet sich von der Aufzeichnung auf einer starren Platte dadurch, daß das sich bewe­ gende Aufzeichnungsband eine vergleichsweise sehr kleine Masse besitzt und daher beträchtliche Änderungen der momentanen Bandgeschwindigkeit auftreten können. Andererseits bilden eine oder mehrere starre Aufzeichnungsplatten, die auf einer rotierenden Welle montiert sind, ein beträchtliches Winkel- bzw. Drehmoment, das eine kurzzeitige Änderung der Winkelgeschwindigkeit verhin­ dert.
Es wurde gefunden, daß eine Reihe von Umständen zu kurzfristigen Geschwin­ digkeitsänderungen eines Bandes beiträgt. So kann eine exzentrische Aufwick­ lung des Bandes auf der Zuführ- oder der Aufnahmespule zu wiederholbaren Geschwindigkeitsänderungen führen, wenn das Band von seiner exzentrisch montierten Spule zugeführt wird. Auch können Defekte bei den Walzen oder an­ deren Elementen des Bandführungspfades zu Bandgeschwindigkeitsänderungen beitragen. Auch kann ein Band, das in einer relativ trockenen oder feuchtigkeits­ freien Umgebung aufgewickelt und später über einen gewissen Zeitraum in einer sehr feuchten Umgebung gelagert worden ist, durch Feuchtigkeitsabsorption eine erzwungene Dehnung erfahren, was zu einem nicht vorhersagbaren Verhalten führt, das schlagartige Geschwindigkeitsänderungen bewirkt, wenn das Band vom Wickel zugeführt wird.
Eine Folge der Änderung der Bandgeschwindigkeit besteht darin, daß die Fre­ quenz der aufgezeichneten Daten durch die Geschwindigkeitsänderungen modu­ liert wird. Beim Detektieren der auf einem Band aufgezeichneten Bit wird eine Phasenregelschleife verwendet, um jeglichen Frequenzänderungen zu folgen, wodurch eine zuverlässige Detektion der aufgezeichneten Bits bei sehr hohen Aufzeichnungsdichten ermöglicht wird, wie sie üblicherweise in PRML-Abtast-Daten­ detektions-Kanälen verwendet wird. Um sicherzustellen, daß die Phasen­ regelschleife zufriedenstellend arbeitet, ist es wichtig, häufig Phasenfehler-Infor­ mation zu liefern. Betrachtet man einen Eingang eines Schreib-Vor­ verstärkers (Ausgang des Vorcoders) dann entspricht eine "Eins" einer Pola­ rität des Schreibstroms, beispielsweise der positiven, und eine "Null" der entge­ gengesetzten Polarität des Schreibstroms, beispielsweise der negativen. Immer dann, wenn eine "Eins" einer "Null" oder eine "Null" einer "Eins" folgt, wird eine Umkehr der Magentisierung auf das magnetische Medium geschrieben, und es ergibt sich ein glockenförmiger Impuls, der ungefähr wie eine Lorentz-Funktion geformt ist, in der abgetasteten Wellenform bei der Wiedergabe. Um häufige Zeit- und Gewinn-Information zu liefern, die während der Wiedergabe benötigt wird, müssen lange Abschnitte (runs) ohne Magnetflußübergänge und lange Ab­ schnitte aufeinanderfolgender Magnetflußübergänge vermieden werden. Dieses Ziel wird üblicherweise dadurch erreicht, daß eine Abschnittslängenbegrenzung (run length limiting) der Bits am Eingang zu einem 1/(1+D2)-Precoder durchge­ führt wird, wobei D ein Einheits-Verzögerungsoperator ist.
Bei einem Modulationscode für einen PRML-Abtast-Magnetband-Aufzeichnungs-Kanal ist es beispielsweise wünschenswert, daß die Größe einer Bedingung für eine maximale Abschnittslänge festgelegt wird, um eine akzeptable Zeitablauf-Infor­ mation zu liefern, um eine hinreichend genaue Abtastung der aufgezeich­ neten Wellenform während der Wiedergabe sicherzustellen. Die maximale An­ zahl von aufeinanderfolgenden "Null"-Bits, die vom Modulationscode zugelassen wird, wird als die "k"-Bedingung bezeichnet, während die minimale Anzahl von "Null"-Bits zwischen "Eins"-Bits, die vom Code zugelassen wird, als die "d"-Bedingung bezeichnet wird.
Information, die auf eine Spur eines Magnetbandes geschrieben wird, wird vor der Aufzeichnung zunächst Modulationscodiert. Beim Detektionsprozeß wird das analoge Wiedergabesignal in modulationscodierte Bits unter Verwendung des oben beschriebenen Viterbi-Detektionsprozesses (oder einer ähnlichen Vorrich­ tung wie z. B. eines Entscheidungs-Rückkopplungs-Equalizer oder eines Baum-Such­ detektors mit fester Verzögerung) konvertiert. Die codierten Bits werden da­ durch in Informationsbits decodiert, daß sie einen Modulationsdecoder durch­ laufen. Wenn beim Detektionsprozeß Fehler auftreten, können sie beim Durch­ lauf durch den Modulationsdecoder weiter ausgebreitet werden, so daß mehr Fehler entstehen. Eine gewünschte Eigenschaft eines Modulationscodes besteht darin, daß er die Ausbreitung von Fehlern so weit als möglich begrenzt oder ver­ hindert. Eine Begrenzung der Fehlerausbreitung auf eine kleine Menge der auf­ gezeichneten Information unterstützt in wünschenswerter Weise die nachfolgen­ den Blockfehler-Korrekturprozesse, die typischerweise auf dem Niveau des Laufwerksystems ausgeführt werden.
Magnetspeichersysteme umfassen typischerweise Blockspeicher und eingebet­ tete Steuer-Mikroprozessoren. Zur Zeit basieren Blockspeicheranordnungen und Steuer-Mikroprozessoren, die verwendet werden, um Datenübertragungen in Datenspeichersystemen auszuführen, auf einer 32-Bit oder 64-Bit breiten Busar­ chitektur. Infolge hiervon umfaßt die Daten-Basiseinheit (Datenwort) der Spei­ cherarrays und des Mikroprozessors 32 (oder 64) Bits. Es ist daher wünschens­ wert, einen Modulationscode mit hoher Rate zu schaffen, der mit der Busbreite der Blockspeicheranordnung und des Steuer-Mikroprozessors übereinstimmt, um die Komplexität der Schaltkreise zu begrenzen, die die Schnittstelle zwischen dem Aufzeichnungskanal und dem Blockspeicher sowie dem Steuer-Mikroprozessor bilden.
Somit bestand ein bisher nicht befriedigter Bedarf an einem Modulationscode mit sehr hoher Rate für einen magnetischen Aufzeichnungskanal, der die oben ge­ nannten Bedingungen erfüllt und die Probleme löst, die bei den zum Stand der Technik gehörenden Lösungsversuchen auftreten.
Zusammenfassung der Erfindung und ihre Ziele
Ein allgemeines Ziel der vorliegenden Erfindung ist es, einen Modulationscode mit einer Rate 32/33 (d=0, k=6) und begrenzter Abschnittslänge zu schaffen, der eine optimierte Fehlerausbreitung besitzt und für eine Verwendung bei einem magnetischen Aufzeichnungskanal geeignet ist und dabei die Beschränkungen und Nachteile des Standes der Technik überwindet.
Ein weiteres Ziel der vorliegenden Erfindung ist es, einen praktisch verwendba­ ren Modulationscode mit einer Rate von 32/33 und eine Realisierung zu schaf­ fen, die eine sehr hohe Code-Rate erzielt, ohne daß dabei Einbußen bei der Zu­ verlässigkeit der detektierten Daten entstehen, und dabei die Nachteile des Standes der Technik zu überwinden.
Ein weiteres Ziel der vorliegenden Erfindung ist es, vereinfachte, zuverlässige Codier- und Decodierverfahren zur Codierung von 32-Bit-Datenwörtern in 33-Bit-Code­ wörter in Übereinstimmung mit vorbestimmten Modulations­ code-Bedingungen zu schaffen, die eine minimale nur aus Nullen bestehende Ab­ schnittslänge und eine maximale nur aus Nullen bestehende Abschnittslänge umfassen, wobei die Fehlerausbreitung in wirksamer Weise begrenzt wird.
Gemäß den Prinzipien und Gesichtspunkten der vorliegenden Erfindung wird ein Verfahren zur Erzeugung eines Kanalcodes mit einer Rate von 32/33 (d=0, k=6) für eine Verwendung in einem Abtast-Daten-Detektionskanal mit Teilantwort, wie z. B. einem mehrkanaligen linearen digitalen Magnetband-Aufzeichnungs/Wie­ dergabe-Kanal zur Codierung einer Reihe von digitalen Verwender-Datenbits ge­ schaffen. Vorzugsweise umfaßt dieses Verfahren die folgenden Schritte:
Bilden einer Sequenz von 32-Bit-Verwender-Datenwörtern, Aufteilen eines jeden 32-Bit-Verwender-Datenworts in acht 4-Bit-Daten-Nibbles, Ermitteln, ob eines der Daten-Nibbles nur Nullen enthält, wenn kein Daten-Nibble gefunden wird, das nur Nullen enthält, Abbilden der acht 4-Bit-Daten-Nibble auf sieben 4-Bit-Code-Nibble und ein 5-Bit-Code-Teilwort und Setzen eines ersten Kontrollbits des Code-Teilworts, das in diesem die fünfte Bit-Position einnimmt, auf "Eins", oder wenn ein einzelnes Daten-Nibble festgestellt wird, das als Codeverletzung nur Nullen enthält, einbetten der Stelle der Codeverletzung zumindest in das 5-Bit-Code-Teilwort und Abbilden eines Daten-Nibbles, das anson­ sten auf das 5-Bit-Code-Teilwort abgebildet würde, auf ein Code-Nibble, das ansonsten das Daten-Nibble aufnehmen würde, von dem festgestellt wurde, daß es eine Codeverletzung aufweist, oder wenn festgestellt wird, daß zwei Daten-Nibble lauter Nullen enthalten, setzen des ersten Kontrollbits auf" Null", setzen eines zweiten Kontrollbits des Code-Teilworts auf "Null" und setzen eines dritten Kontrollbits inner­ halb eines zweiten Code-Teilworts auf "Eins", setzen der verbleibenden drei Bits des ersten Code-Teilworts, derart, daß es eines der beiden Da­ ten-Nibbles identifiziert die lauter Nullen enthalten, innerhalb eines ersten vorbestimmten Bereiches von Daten-Nibblen identifiziert, und setzen der verbleibenden drei Bits des zweiten Code-Teilworts so, daß es das ande­ re der beiden Daten-Nibbles, die lauter Nullen enthalten, innerhalb eines zweiten vorbestimmten Bereiches von Daten-Nibblen identifiziert, Reloka­ lisieren eines Daten-Nibbles, das ansonsten auf das erste Code-Teilwort abgebildet würde, auf ein Code-Teilwort, das ansonsten das Daten-Nibble aufnehmen würde, das durch das erste Code-Teilwort als das identifiziert wird, das vollständig aus Nullen besteht, und neu Anordnen eines Daten-Nibbles das ansonsten auf das zweite Code-Teilwort abgebildet würde, auf ein Teilwort, das ansonsten das Daten-Nibble aufnehmen würde, das durch das zweite Code-Teilwort als eines identifiziert wird, das nur aus Nullen besteht, oder, wenn festgestellt wird, daß drei oder mehr Daten-Nibble vollständig aus Nullen bestehen, Erzeugen eines 8-Bit-Flags, wo­ bei jede Bitposition des Flags ein Daten-Nibble identifiziert, von dem fest­ gestellt wurde, daß es nur aus Nullen besteht, und Schreiben des 8-Bit-Flags auf vorbestimmte Kontrollbitpositionen, die im ersten Code-Teilwort, dem zweiten Code-Teilwort und einem dritten Code-Teilwort definiert sind. Dieser Schritt kann auch den Schritt umfassen, daß ein viertes Code-Teil­ wort vollständig auf "Einsen" gesetzt wird, um eine maximale Zeit- bzw. Zeittakt-Information für eine Zeitgeberschleife des Magnet-Aufzeichnungskanals zu liefern.
Ein Modulationscodierer und ein Modulationsdecoder, die in Übereinstimmung mit dem beschriebenen Modulationscodierverfahren arbeiten, bilden ebenfalls ei­ nen Teil der vorliegenden Erfindung.
Diese und weitere Ziele, Vorteile, Gesichtspunkte und Eigenschaften der vorlie­ genden Erfindung ergeben sich aus der folgenden detaillierten Beschreibung ei­ ner bevorzugten Ausführungsform, die in Verbindung mit der beigefügten Zeich­ nung erläutert wird.
Kurze Beschreibung der Zeichnung
In der Zeichnung zeigen
Fig. 1 ein Blockdiagramm einer magnetischen Datenspeichervorrichtung, wie z. B. eines mehrkanaligen digitalen linearen Bandlaufwerkes, bei dem eine Abtast-Daten-Detektion mit Teilantwort und ein Ka­ nal-Modulationscode entsprechend den Gesichtspunkten und Ei­ genschaften der vorliegenden Erfindung Verwendung finden,
Fig. 1A ein Blockdiagramm, das eine geringfügige Architekturvariante der in Fig. 1 gezeigten magnetischen Datenspeichereinrichtung wie­ dergibt,
Fig. 2 eine Tabelle, die Verwenderbits gemäß der Erfindung bestimmten Nibblen zuordnet,
Fig. 3 eine Tabelle, die gemäß der Erfindung Codebits bestimmten Nibblen zuordnet,
Fig. 4 eine Tabelle, die die vier Codierregeln gemäß der vorliegenden Erfindung zusammenfaßt,
Fig. 5 eine Tabelle, welche die Wahrscheinlichkeiten zusammenfaßt, daß ein 32-Bit-Verwenderwort am Modulationscodierer gemäß Fig. 1 k-Verletzungen enthält, und
Fig. 6 eine Statistiktabelle von maxentropisch (0,k) beschränkten Se­ quenzen.
Detaillierte Beschreibung einer bevorzugten Ausführungsform
Wie oben beschrieben, besteht eine Aufgabe eines Modulationscodes darin, si­ cherzustellen, daß die auf einem magnetischen Speichermedium, wie z. B. einem sich linear über eine sich nicht bewegende Aufzeichnungskopf-Struktur bewe­ genden Band, für den Detektionsprozeß optimiert wird. Ein relevanter Teil eines Band-Aufzeichnungs- und -Wiedergabesystems 10 ist in Fig. 1 gezeigt. Es ist ein lineares Mehrkanal-Band-Aufzeichnungssystem 10 dargestellt, das gleichzeitig eine Vielzahl von parallelen magnetischen Aufzeichnungsspuren t beschreibt, und zur Überprüfung liest, die auf einem sich relativ bewegenden magnetischen Aufzeichnungsband 12, wie z. B. einem 1/2-Zoll breiten magnetischen Aufzeich­ nungsband gebildet sind, das die gewünschten magnetischen Remanenz- Koerzitivkraft-Eigenschaften aufweist, die eine digitale magnetische Aufzeich­ nung und Wiedergabe mit hoher Dichte ermöglichen. Eine magnetische Mehrka­ nal-Aufzeichnungskopf-Struktur 14 kann einer von mehreren geeigneten Ausfüh­ rungsformen entsprechen. Bei einer beispielhaften Anordnung kann die Auf­ zeichnungskopf-Struktur 14 beispielsweise wenigstens vierundzwanzig magneti­ sche Schreibelemente und vierundzwanzig magnetische Leseelemente umfas­ sen, die alternierend in zwei querverlaufenden Reihen derart angeordnet sind, daß auf zwölf Schreibelemente zwölf Leseelement sowohl während der Vor­ wärtsbewegung als auch der Rückwärtsbewegung des Bandes über die Kopf­ struktur 14 folgen. Bei einer anderen Anordnung können zwölf Schreibelemente auf der einen Seite von zwölf zentral angeordneten Leseelementen und zwölf Schreibelemente auf der anderen Seite der Leseelemente derart angeordnet sein, daß zwölf Datenspuren während der Bewegung des Bandes über die Kopfstruktur 14 sowohl in der Vorwärts- als auch in der Rückwärtsrichtung gleichzeitig beschrieben und zur Überprüfung gelesen werden können. Bei einer weiteren Anordnung können zwölf Leseelemente auf der einen Seite von zwölf zentral angeordneten Schreibelementen und zwölf Leseelemente auf der ande­ ren Seite der Schreibelemente derart angeordnet sein, daß zwölf Datenspuren während der Vorwärts- und Rückwärtsbewegung des Bandes gleichzeitig be­ schrieben und gelesen werden können. Ein Doppelpfeil in Fig. 1 beschreibt die in beiden Richtungen erfolgende Bewegung des Bandes 12 und das daneben an­ gebrachte Symbol Δv kennzeichnet das Vorhandensein von unerwünschten Bandgeschwindigkeitsunterschieden, die von einer oder mehreren der oben be­ schriebenen Ursachen erzeugt werden können.
Ein internes Bussystem 50 verbindet eine Schnittstellenstruktur 52 und einen Blockpufferspeicher 54. Ein eingebetteter Steuer-Mikroprozessor 56 kontrolliert verschiedene Funktionen des Bandsystems 10 einschließlich des Bandtranspor­ tes und der seitlichen Kopfpositionierungs-Funktionen (die hier nicht weiter be­ schrieben werden). Der Mikroprozessor 56 steuert auch den Strom von Verwen­ der-Information zu und von der Schnittstelle 52 und dem Pufferspeicher 54. Zwar ist ein einzelner Mikroprozessor 56 in Fig. 1 dargestellt, doch ist dem Fachmann klar, daß die Steuerfunktionen des Systems 10 unter verschiedenen eingebette­ ten Mikroprozessoren oder digitalen Signalprozessoren usw. aufgeteilt werden können. Der Bus 50 hat eine vorgegebene Wortgröße, beispielsweise eine Breite von 32 oder 64 Bits. Zur Zeit wird eine 32-Bit-Breite bevorzugt und die Schnitt­ stelle 52, der Pufferspeicher 54 und der Mikroprozessor 56 sind so aufgebaut, daß sie zur Busbreite von beispielsweise 32 Bit passen, wodurch die Komplexität einer internen Busschnittstellen- oder Verbindungslogik minimiert wird.
Ein Schreibteil des Systems 10 umfaßt einen Datenverzerrer (scrampler) 60, der die beispielsweise 32 Bit umfassenden Wörter vom Bus 50 empfängt und die Wörter entsprechend einem vorbestimmten herkömmlichen Verzerreralgorith­ mus, beispielsweise Modulo 2 verzerrt. Auf diese Weise werden sich wiederho­ lende oder konstante Bitmuster, wie sie häufig angetroffen werden, um Verwen­ der-Datenblöcke zu vervollständigen oder aufzufüllen, oder sich wiederholende Steuermuster im sich ergebenden Bitstrom vermieden, der den Verzerrer verläßt. Zwar ist es theoretisch möglich, daß ein Verwender-Datenmuster in eine periodi­ sche Sequenz verzerrt wird, doch ist die Wahrscheinlichkeit, daß sich ein solches Muster über mehr als N-Bits erstreckt, ungefähr gleich 2(-N).
Ein paralleler Datenwort-Ausgang des Verzerrers 60 führt zu einem Modulati­ onscodierer 62. Der Modulationscodierer 62 prägt den vom Datenverzerrer 60 kommenden, verzerrten Datenwörtern einen Modulationscode auf. Der Modulati­ onscodierer 62 konvertiert hereinkommende, verzerrte 32 Bit umfassende Ver­ wenderdaten-Bitwörter in 33-Bit-Codewörter gemäß der vorliegenden Erfindung. Realisierungsdetails des Modulationscodierers 62 werden im folgenden erläutert. Die 33-Bit-Codewörter werden dann selektiv jeweils einem der zwölf parallelen Schreibkanalpfade zugeführt. Kanal 0 ist durch ein Blockdiagramm dargestellt, während Kanal 11 in Fig. 1 nur durch einen Block mit gestrichelter Umfangslinie wiedergegeben ist. Es sei darauf hingewiesen, daß die Kanäle 0 bis 11 im we­ sentlichen identisch sind. Ein Selektor 63 führt jedes 33-Bit-Codewort vom Mo­ dulationscodierer 62 einem der zwölf Schreibkanäle 0 bis 11 entsprechend einem vorbestimmten Daten-Aufzeichnungsmuster für die Spuren t zu. Auf diese Weise muß nur ein Modulationscodierer 62 für alle Schreibkanäle 0 bis 11 realisiert werden.
Jeder Schreibkanal umfaßt beispielsweise einen Parallel/Seriell-Umsetzer 64, der jedes empfangene 33-Bit-Codewort als serielle Folge von 33 sequentiellen Bits cn abgibt. Dieser Bitstrom durchläuft dann einen geeigneten Precoder 66. Wenn die Bitsequenzen {cn} und {bn} jeweils Eingangs- und Ausgangs-Bitsequenzen des Precoders 66 sind, dann kann das Ausgangssignals des Precoders 66 zu einer Zeit n durch bn=XCR(bn-2, cn) ausgedrückt werden. Während der Precoder 66 dem Design der Modulationscode, die sowohl gleichspannungsmäßig als auch hochfrequenzmäßig beschränkt sind, vereinfacht, hat der Precoder 66 den nega­ tiven Einfluß, daß er die längsten auf dem Band aufgezeichneten Magnetfolgen auf k+2 Bits verlängert. Der modulationscodierte und precodierte serielle Bitstrom bn durchläuft dann einen herkömmlichen Schreib-Equalisations- und Schreib-Pre­ kompensations-Prozeß 68 und wird dann durch einen Schreibtreiber 70 zu einem digitalen Schreibstrom verstärkt, bevor er über einen Pfad 72-0 an eines der zwölf Schreibelemente der Kopfstruktur 14 angelegt wird. Im Beispiel der Fig. 1 wurde der Schreibkopf-Auswahl-Schaltkreis weggelassen, doch wäre er bei ei­ ner tatsächlichen Ausführungsform, die zwei Schreibköpfe pro Spur besitzt, vor­ handen, wobei die Schaltung dazu dient, ein spezielles Schreibelement für jede Schreibrichtung auszuwählen.
Wie in Fig. 1 gezeigt, sind zwölf identische Lesekanäle vorhanden, von denen je­ der mit einem Leseelement der Kopfstruktur 14 verbunden ist. Der Lesekanal 0 ist im Detail als Blockdiagramm dargestellt, während die anderen elf Kanäle durch einen einzigen mit gestrichelten Linien wiedergegebenen Block in Fig. 1 symbolisiert sind, der die Beschriftung "Lesekanal 11" trägt. In jedem Lesekanal normalisieren ein gewinngesteuerter Verstärker 80 und ein Analogequalizer 82 den Gewinn und die Antwort des analogen Rücklesesignals auf das bevorzugte PRML-Target, und ein Analog/Digital-Konverter 84 wandelt das analoge Signal entsprechend dem Target. Eine Zeitgeberschleife 85 leitet eine Zeittakt-Infor­ mation von den abgetasteten Werten ab und steuert dadurch die Abtastung durch den Analog/Digital-Konverter 84. Ein Viterbi-Detektor 86 decodiert die quantisierten Abtastwerte in codierte Werte xn. Vorzugsweise realisiert der Viter­ bi-Detektor 86 ein NPR-Target, das eines aus den Klassen von PRML-Targets ist, die in der anhängigen US-Patentanmeldung (Aktenzeichen der Anmelderin: Q98-1040-US1) beschrieben sind.
Ein Postcoder 88 empfängt und verarbeitet die codierten Werte xn zu Werten yn. Das Ausgangssignal des Postcoders 88 {yn} kann als Ausdruck des Postcoder-Ein­ gangssignals {xn} als yn=XOR(xn, xn-2) geschrieben werden. Die postcodier­ ten Abtastwerte yn werden dann durch einen Modulationsdecoder 90 geführt. Der Modulationsdecoder 90 wendet eine zu der durch den Modulationscodierer an­ gewendeten Funktion inverse Funktion an und ist daher gemäß den Prinzipien und Gesichtspunkten der vorliegenden Erfindung aufgebaut. Der decodierte seri­ elle Datenstrom wird dann durch einen herkömmlichen Datenentzerrer 92 ge­ führt, der als Umkehrer der durch den Datenverzerrer 60 durchgeführten Verzer­ rungsfunktion arbeitet.
Ein Seriell/Parallel-Umsetzer 94 akkumuliert den seriellen Bitstrom zu 32-Bit-Wor­ ten und gibt diese Worte an den Datenbus 50 beispielsweise für eine zeit­ weilige Speicherung im Puffer 54 ab. Ein Blockfehler-Korrekturverfahren kann auf jeden Block der wiedergewonnenen Verwenderdaten-Information angewendet werden, um irgend welche Fehlerbursts zu detektieren und zu korrigieren. Das Blockfehler-Korrekturverfahren ist herkömmlich und stellt somit keinen Teil der vorliegenden Erfindung dar. Daher wird es auch nicht im einzelnen beschrieben.
Fig. 1A zeigt eine alternative Lesekanal-Architektur, bei der zwölf identische Le­ sekanäle Ausgänge von Postcodern 88 besitzen, die ihre Signale direkt an einen Multiplexer 89 abgeben. Der Multiplexer 89 hat einen einzigen Ausgang, der mit dem Eingang eines einzigen Modulationsdecoders 90 verbunden ist. Ein einziger Datenentzerrer 92 und Serien/Parallel-Umsetzer 94 vervollständigen diesen an­ deren Aufbau. Bei dieser alternativen Ausführungsform muß nur ein Modulati­ onsdecoder realisiert werden, was gewisse Einsparungen von Gattern bei der Verwirklichung des VLSI-Lesekanals ermöglicht. Bei einer weiteren Ausfüh­ rungsform umfaßt ein einzelner VLSI-Chip vier Lesekanäle, deren Signale einem einzigen gemultiplexten Modulationsdecoder zugeführt werden. Eine weitere Multiplexschaltung ermöglicht es, mit drei derartigen 4-Kanal-Chips eine 12-Kanal-Ausführungsform zu realisieren.
Es hat sich als besonders vorteilhaft erwiesen, die Wortbreite bzw. -länge des Modulationscodierers 62 und des Modulationsdecoders 90 an die Wortbreite bzw. -länge des Busses 50, des Mikroprozessors 56 und des Blockpuffers 54 anzupassen. Bei einem Entwurf, der während der zur vorliegenden Erfindung führenden Entwicklungsarbeit diskutiert wurde, wurde ein Code mit einer Rate 24/25 für eine Mehrkanal-Bandlaufwerks-Architektur mit zwölf Köpfen vorge­ schlagen. Dieser Entwurf, bei dem ein einzelner 24-Bit-Codierer für zwölf Köpfe verwendet wurde, erforderte ungefähr 10.000 Gatter mehr, als sie bei den Codie­ rer-Ausführungsformen der Fig. 1 und Fig. 1A erforderlich sind.
Codierung und Decodierung
Es werden keinerlei Beschränkungen unterworfene Verwenderdaten in Verwen­ derdatenwörtern von 32 Bit empfangen und in Codewörter von 33 Bit codiert. Wie man der Tabelle von Fig. 2 entnimmt, wird jedes nicht codierte 32-Bit-Datenwort als U definiert und ein entsprechendes 33-Bit-Codewort wird als C bezeichnet. Die 32 Verwenderbits werden in acht 4-Bit-Nibble aufgeteilt, die mit u7, u6, u5, u4, u3, u2, u1 und u0 bezeichnet werden. Wie in der Tabelle der Fig. 3 gezeigt, werden die Verwender-Nibble in codierte Nibble c7, c6, c5, c4, c3, c2, c1 und c0 codiert. Es ist wichtig, darauf hinzuweisen, daß bei diesem Beispiel das Code-Teil­ wort c5 fünf Bits umfaßt, während alle anderen Code-Nibbles jeweils vier Bit aufweisen. Bei diesem Beispiel bildet ein zusätzliches auf der fünften Bitposition des Code-Teilworts c5 stehendes Bit, d. h. das niedrigstwertige Bit c5[0] ein Kon­ trollbit.
Im vorliegenden Zusammenhang wird gesagt, daß jeder Verwender-Nibble u7, u6, . . ., u0 eine Codeverletzung aufweist, wenn er gleich "0000" ist. Es wird eine 8-Bit-Variable, FLAG, erzeugt. Das n-te Bit von FLAG wird gleich "Eins" gesetzt, wenn ein Nibble un nur aus Nullen besteht. Wenn beispielsweise U = (u7, u6, u5, u4, u3, u2, u1, u0) = (0000 1000 0110 0000 1111 0010 0000 0111) ist, dann wird FLAG = (10010010) gesetzt, was bedeutet, daß Codeverletzungen in den Ver­ wender-Nibblen u7, u4 und u1 vorhanden sind.
Eine Codierung der 32-Bit-Verwender-Datenwörter wird gemäß der folgenden vier Regeln in Abhängigkeit von der Anzahl von Verletzungen durchgeführt, die in dem momentan zu codierenden Wort U gefunden werden. Die Tabelle aus Fig. 3 faßt die vier Codierregeln zusammen. Die folgenden Fälle erläutern jede der vier Regeln.
Fall 1: Keine Verletzungen im U (59% Wahrscheinlichkeit des Auftretens (unter der Annahme, daß Einsen und Nullen mit gleicher Wahrscheinlichkeit am Ein­ gang des Modulationscodierers auftreten)). Die FLAG-Variable wird auf 00000000 gesetzt. Das Kontrollbit des Code-Teilworts c5, d. h. c5[0] wird auf Eins gesetzt und die übrigen Nibble werden uncodiert weitergegeben. Somit ist c7 gleich u7, c6 gleich u6, c5[5-1] gleich u5, c4 gleich u4, c3 gleich u3, c2 gleich u2, c1 gleich u1 und c0 gleich u0.
Fall 2: Eine Verletzung in U (31,8% Wahrscheinlichkeit des Auftretens). Die FLAG-Variable wird auf eine der folgenden Formen {00000001, 00000010, 00000100, . . ., 10000000} in Abhängigkeit von der Stelle des Nibbles gesetzt, das die Codeverletzung enthält. Die Bits c5[0] und c5[2] werden auf Null bzw. Eins gesetzt. Die verbleibenden Bits von c5 werden verwendet, um anzuzeigen, an welcher der acht Stellen die einzelne Verletzung aufgetreten ist. Wenn bei­ spielsweise FLAG anzeigt, daß der in der Reihenfolge dritt niedrigste Nippel u2 die eine Codeverletzung enthält (FLAG = 00000100) dann wird c5[0]=0, c5[2]=1 und c5[4 : 3, 1]=1,01 gesetzt, um anzuzeigen, daß der dritte Nibble u2 vier Nullen enthält. Da der Nibble c5 bei diesem Beispiel dazu verwendet wird, anzu­ zeigen, daß der Nibble u2 vollständig aus Nullen besteht, wird die im Verwen­ der-Nippel u5 enthaltene Information auf die dritte Code-Nibbleposition c2 abgebildet. Die Codierung wird vervollständig, indem c7 gleich u7, c6 gleich u6, c5 gleich [01110], c4 gleich u4, c3 gleich u3, c2 gleich u5, c1 gleich u1 und c0 gleich u0 gesetzt wird.
Fall 3: Zwei Verletzungen in U (7,4% Wahrscheinlichkeit des Auftretens). In der FLAG-Variablen werden zwei Bitpositionen auf Eins gesetzt, so daß sie gleich einem der Ausdrücke {00000011, 00000101, . . ., 11000000} wird. Die Bits c5[0] und c5[2] werden auf Null gesetzt und das Bit c4[3] wird auf Eins gesetzt. Die verbleibenden Bitpositionen von c5 werden verwendet, um anzuzeigen, an wel­ cher der acht Stellen die linke Verletzung aufgetreten ist und die Bits c4[2 : 0] zei­ gen die Nibbleposition der rechten Verletzung an. Wenn beispielsweise die Ver­ letzung in den Nibble u7 und u0 aufgetreten ist, dann ist FLAG gleich 10000001 und c5[0] gleich 0, c5[2] gleich 0, c4[3] gleich 1, c5[4 : 3, 1] gleich 111 und c4[2 : 0] gleich 000. Da der Verwender-Nibble u7 vollständig aus Nullen besteht, wird der Nibble c5 verwendet, um anzuzeigen, daß der Nibble u7 vollständig aus Nullen besteht und die Information im Nibble u5 wird auf c7 (d. h. den achten Code-Nibble) abgebildet. In ähnlicher Weise wird die im Verwender-Nibble u4 enthalte­ ne Information auf co (den ersten Code-Nibble) abgebildet. Die endgültige Codie­ rung bei diesem Beispiel besteht daher darin, daß c7 gleich u5, c6 gleich u6, c5 gleich [01100], c4 gleich [1000], c3 gleich u3, c2 gleich u2, c1 gleich u1 und c0 gleich u4 ist. Bei diesem Beispiel wird die Abbildung von u5 auf c7, u4 auf c0 und u3 auf c3 so ausgeführt, daß die Gatterzahl des Modulationscodierers 62 mini­ miert wird.
Fall 4: Drei oder mehr Verletzungen in U (1,1% Wahrscheinlichkeit des Auftre­ tens). Die Kontrollbits c5[0], c5[2], und c4[3] werden alle auf Null gesetzt. Die Bits c5[4 : 3], c4[2 : 0] und c3[2 : 0] werden so gesetzt, daß sie gleich den acht Flag-Bits sind. Die Bits c5[1] und c3[3] werden beide mit Einsen aufgefüllt, um sicher­ zustellen, daß die k-Bedingung (k=6) erfüllt wird. Als Beispiel wird angenom­ men, daß vier Codeverletzungen in den Nibbles u7, u6, u4 und u3 auftreten (FLAG = 11011000). In dem codierten 33-Bitwort wird c7 gleich u5, c6 besteht vollständig aus Einsen, c5 gleich [11010], c4 gleich [0011], c3 gleich [1000], c2 gleich u2, c1 gleich u1 und c0 gleich u0. Es sei darauf hingewiesen, daß c6 auf lauter Einsen gesetzt wurde, um eine maximale Zeitinformation für die Zeitgeber­ schleife 85 zu liefern.
Das Decodierverfahren, das vom Modulationsdecoder 90 ausgeführt wird, um­ faßt die Schritte, daß die Bits c5[0], c5[2] und c4[3] untersucht werden, um die Anzahl der ursprünglichen Nibble zu bestimmen, die beim Codierprozeß ent­ deckte Verletzungen enthalten haben. Wenn beispielsweise c5[0 gleich 0], c5[2 gleich 1] und c4[3 gleich 0] ist, dann hat beim Codiervorgang nur ein einziges Nibble eine Verletzung enthalten und die Bits c5[4 : 3, 1] identifizieren das Code-Nibble, das während des Decodierens vollständig auf Nullen gesetzt werden muß. Zusätzlich wird die Nibblestelle, die durch c5[4 : 3, 1] angezeigt wird, auf das u5-Decodier-Nibble abgebildet.
Die logische Struktur des Modulationscodierers 62 und des Modulationsdecoders 90 wurde mit Hilfe von Verilog- und Synthesis-Schaltkreis-Designtools entwickelt. Weiter unten folgt eine Auflistung in Verilog der logischen Gleichungen, die den Codierer 62 realisieren sowie eine Auflistung in Verilog von logischen Gleichun­ gen, die den Decoder 90 realisieren. Bei der realisierten Form erfordert der Co­ dierer 62 ungefähr 415 Gatter und der Decoder 90 ungefähr 325 Gatter.
Fehlerausbreitung
Wenn der Viterbi-Detektor 86 eine falsche Decodierentscheidung trifft, wird schlechte Information an den Postcoder 88 weitergeleitet. Wie bereits oben er­ wähnt, verlängert das Arbeiten des Postcoders 88 das Fehlerereignis um zwei zusätzliche Bits. Fehler, die dem Modulationsdecoder 90 zugeführt werden, füh­ ren zu Fehlern in dem decodierten Verwender-Bitstrom, der den Decoder 90 verläßt. Allgemein gesprochen treten am Ausgang des Modulationsdecoders 90 mehr Fehler auf, als seinem Eingang zugeführt wurden. Diese Vervielfachung der Fehlergrößen wird im folgenden als Fehlerausbreitung bezeichnet. Der hier beschriebene bevorzugte Code besitzt eine begrenzte Fehlerausbreitung.
Das Wesen der Fehlerausbreitung für den (0,6) Code mit einer Rate 32/33 hängt von der Wahrscheinlichkeit ab, daß die fehlerhaften Bits Kontrollbits c5[0], c5[2] oder c4[3] enthalten und davon, ob die Kontrollbits gerade bei der Decodierung des momentan interessierenden Wortes verwendet werden. Wenn die fehlerhaften Codebits keine Auswirkung auf die Code-Nibbles c3, c4 oder c5 haben, dann vervielfacht sich die Anzahl der Fehler am Ausgang des Decoders 90 nicht. Wenn jedoch das Bit c5[0] fehlerhaft ist, ist es sehr wahrscheinlich, daß die mei­ sten der 32 decodierten Bits fehlerhaft sind. Die Wahrscheinlichkeit, daß das Bit c5[0] fehlerhaft ist, ist eine Funktion der dem Decoder 90 zugeführten Fehler. Die Wahrscheinlichkeit, daß ein 5-Bit-Fehler das Bit c5[0] beeinflußt, ist ungefähr 5/33. Die in Fig. 5 dargestellte Tabelle zeigt die Wahrscheinlichkeit, daß Bits am Eingang des Codierers 62 0, 1, 2, . . . oder 8 verletzende Nibble enthalten. Diese Wahrscheinlichkeit betrifft indirekt die Fehlerausbreitung in dem Sinn, daß die Wahrscheinlichkeit, daß fehlerhafte Bits die Kontrollbits beeinflussen, davon ab­ hängt, welche Bits Kontrollbits sind. Die Tabelle der Fig. 5 zeigt die Wahrschein­ lichkeit, daß der Codierer 62 eine Codierung mit einer Verletzung gemäß Fall 1, Fall 2, Fall 3 oder Fall 4 auszuführen hat. Da alle Kontrollbits der bevorzugten Ausführungsform im mittleren Bereich des codierten Wortes angeordnet sind, breiten sich Fehler, die die Wortränder spreizen, nicht weiter in Form längerer Bursts am Ausgang des Decoders 90 aus. In manchen Fällen wird jedoch das Code-Nibble c7 bis zum Verwender-Nibble u3 abgebildet. Daher ist es möglich, daß ein Fehler, der zwei 33-Bit-Codewörter spreizt zu zwei Fehlern führt, die von zwei einwandfreien Bytes getrennt sind.
Die k-Bedingung und statistische Eigenschaften
Um sicher zu sein, daß die k-Bedingung des bevorzugten Codes gleich 6 ist, müssen die vier verschiedenen Codierkategorien, die oben erläutert wurden und in der Tabelle der Fig. 3 zusammengefaßt sind, betrachtet werden. Wenn jedes der acht Nibble u0, u1, . . ., u7 wenigstens eine einzige Eins enthält und c5[0] gleich 1, dann tritt die längste Folge von Nullen auf, wenn auf ein Nibble, das ei­ nen Bitwert 1000 aufweist, unmittelbar ein Nibble folgt das einen Wert 0001 be­ sitzt. Bei diesem Beispiel wird die Bedingung k=6 erfüllt. Wenn eine einzelne Verletzung in einem Verwender-Nibble gefunden wird, dann wird c5[2] auf Eins gesetzt und es ist sichergestellt, daß alle anderen Nibble wenigstens eine Eins enthalten; somit ist auch in diesem Fall die Bedingung k=6 erfüllt.
Wenn zwei Verletzungen in einem interessierenden Verwenderwort vorhanden sind, dann ist c5[2]=c5[0]=0 und c5[4 : 3, 1] wird verwendet, um die Position des am weitesten links stehenden Nibbles mit einer Verletzung anzuzeigen. Folglich müssen zwei Fälle betrachtet werden. Bei einem ersten Fall befindet sich die linke Verletzung an der Stelle 001, d. h. im Nibble u1. In diesem ersten Fall ist c5=[00010] und die Bedingung k=6 wird erfüllt. Im zweiten Fall befindet sich die am weitesten links stehende Verletzung an der Stelle 100, d. h. im Nibble u4 und es ist c5=[10000], doch ist c4[3] gleich 1 und die Bedingung k=6 wird wiederum erfüllt.
Schließlich sei der Fall betrachtet, in dem sich drei oder mehr Codeverletzungen im momentan interessierenden Verwenderwort U am Eingang des Codierers 62 befinden. In diesem Fall ist c5[1] gleich 1 und c3[3] gleich 1, was sicherstellt, daß selbst dann, wenn c4 vollständig aus Nullen besteht, die Bedingung k=6 nicht verletzt wird.
Die in der Tabelle der Fig. 6 wiedergegebenen statistischen Daten wurden be­ rechnet, um die Auswirkungen der k-Bedingung auf die Zeitgeberschleife 85 des Lesekanals besser zu verstehen. In Fig. 6 wurden einige statistische Eigen­ schaften von Sequenzen mit einer (0,k)-Bedingung als Funktion der Werte von k von 3 bis 10 und k gleich Unendlich (keine Beschränkung hinsichtlich der maxi­ malen nur Nullen umfassenden Abschnittslänge) berechnet. Die den Daten der Fig. 6 zugrunde liegenden Berechnungen verwenden nicht speziell die Codierre­ geln des hier beschriebenen bevorzugten Codes, sondern basieren auf den stati­ stischen Eigenschaften von echten, d. h. maxentropischen Sequenzen mit einer (0,k)-Bedingung; siehe auch T. D. Howell, "Statistical Properties of Selected Re­ cording Codes", IBM Journal of Research and Development, Band 33, No. 1, Ja­ nuar 1989, Seiten 60 bis 73. Die Werte der zweiten Spalte der Tabelle in Fig. 6 geben die Wahrscheinlichkeit wieder, daß ein willkürlich ausgewähltes Bit gleich 1 (im Gegensatz zu 0) ist. Die Werte der dritten Spalte der Tabelle in Fig. 6 ge­ ben die Wahrscheinlichkeit wieder, daß irgend ein gegebenes Bit eine Zeitinfor­ mation für die Phasenregelschleife der Zeitgeberschaltung 85 liefert. Die Werte der vierten Spalte von Fig. 6 zeigen eine Verbindung zu der für jede k-Bedingung möglichen Code-Rate.
Es ist interessant, festzustellen, daß die k-Bedingung, die statistischen Eigen­ schaften der Daten (unter der Annahme, daß am Eingang des Codierers 62 Ein­ sen und Nullen mit gleicher Wahrscheinlichkeit auftreten) nicht wesentlich beein­ flußt. Wenn man annimmt, daß eine Bedingung mit einem größeren Wert für k zulässig wäre, ist es einfach, den bevorzugten Code mit einer Rate 32/33 da­ durch auf höhere Raten auszudehnen, daß man nicht codierte Bits zwischen die Code-Nibbles c0, c1, . . ., c7 einschiebt. Ein besonders interessanter Fall ergibt sich aus der Einschiebung von vier nicht codierten Bits zwischen jeden codierten Nibbel, um einen (0,10)-Code mit einer Rate 64/65 zu erzeugen, der besonders geeignet ist, wenn die Busstruktur 50 (ebenso wie der Speicher 54 und/oder der Mikroprozessor 56) eine Bitbreite von 64 Bit besitzt. Bei diesem letztgenannten Beispiel sind die Fehlerausbreitungseigenschaften nahezu identisch mit denen des bevorzugten (0,6)-Code mit einer 32/33 Rate.
Realisierung des Codierers: Es folgt eine Auflistung in der Verilog-Sprache der logischen Definitionen und Gleichungen, die einen Modulationscodierer gemäß den Codierregeln der vorliegenden Erfindung realisieren.
Realisierung des Decoders: Es folgt eine Auflistung in der Verilog-Sprache der logischen Definitionen und Gleichungen, die einen Modulationsdecoder zum De­ codieren von Code-Wörtern realisieren, die gemäß den Codierregeln der vorlie­ genden Erfindung gebildet wurden.
Aus der obigen Beschreibung einer Ausführungsform der Erfindung ergibt sich, daß die Ziele der Erfindung in vollem Umfang erreicht worden sind und der Fachmann sieht, daß viele Änderungen hinsichtlich der Konstruktion und stark abweichende Ausführungsformen und Anwendungsmöglichkeiten der Erfindung sich von selbst ergeben, ohne daß vom Geist und Umfang der Erfindung abgewi­ chen wird. Die Offenbarung und Beschreibung hier sind lediglich erläuternd und sollen in keinem Sinn begrenzend sein.

Claims (21)

1. Verfahren für einen magnetischen Aufzeichnungskanal zur Codierung einer Sequenz von digitalen 32-Bit-Datenwörtern in eine Sequenz von 33-Bit-Codewörtern gemäß einer vorbestimmten minimalen, aus Nullen bestehenden Abschnittslänge (d) und einer vorbestimmten maximalen aus Nullen bestehenden Abschnittslänge (k) zur Aufzeichnung auf ei­ nem magnetischen Datenspeichermedium, das folgende Schritte um­ faßt:
  • - Aufteilen eines vorhandenen digitalen 32-Bit-Datenwortes in acht 4-Bit-Daten-Teilwörter,
  • - Ermitteln, ob irgend eines der acht 4-Bit-Daten-Teilwörter vollstän­ dig aus Nullen besteht und somit eine Codeverletzung darstellt,
  • - Erzeugen eines 33-Bit-Codewortes entsprechend dem vorhande­ nen digitalen 32-Bit-Datenwort durch Bilden von acht Code-Teil­ wörtern, wobei ein erstes Code-Teilwort an einer vorbestimm­ ten Stelle mit einem fünften Bit als erstes Kontrollbit versehen ist, und wobei jedes Daten-Teilwort, das keine Codeverletzung enthält, unverändert auf ein Code-Teilwort abgebildet wird, und wobei jedes Daten-Teilwort, von dem festgestellt wird, daß es eine Codeverlet­ zung enthält, durch das fünfte Kontrollbit und durch andere vordefi­ nierte Bitpositionen des Codeworts derart identifiziert wird, daß das 33-Bit-Codewort eine maximale nur aus Nullen bestehende Ab­ schnittslänge (k) besitzt, die den Wert Sechs nicht übersteigt.
2. Verfahren nach Anspruch 1, bei dem das fünfte Bit an der Bitposition mit der niedrigsten Wertigkeit des ersten Code-Teilwortes positioniert ist.
3. Verfahren nach Anspruch 1, bei dem das erste Kontrollbit auf Eins ge­ setzt wird, wenn festgestellt wird, daß keines der Daten-Teilwörter eine Codeverletzung enthält.
4. Verfahren nach Anspruch 1, bei dem festgestellt wird, daß ein einziges Daten-Teilwort eine Codeverletzung enthält, und das weiterhin folgen­ de Schritte umfaßt: Setzen des ersten Kontrollbits auf einen ersten lo­ gischen Zustand und eines zweiten Kontrollbits, das in dem ersten Kontroll-Teilwort definiert ist, auf einen zweiten logischen Zustand, und Verwenden der verbleibenden drei Bits des ersten Code-Teilworts zur Identifizierung des einzigen Daten-Teilworts, das die Codeverletzung enthält und neu Positionieren eines Daten-Teilworts, das ansonsten auf das erste Code-Teilwort abgebildet würde, auf ein Code-Teilwort, auf das ansonsten das Daten-Teilwort, das die Codeverletzung auf­ weist, beim Fehlen einer Codeverletzung abgebildet worden wäre.
5. Verfahren nach Anspruch 1, bei dem festgestellt wird, daß zwei Daten-Teilwörter jeweils eine Codeverletzung enthalten, das weiterhin folgen­ de Schritte umfaßt: Setzen des ersten Kontrollbits und eines zweiten Kontrollbits des ersten Code-Teilwortes auf einen ersten logischen Zu­ stand, Setzen eines dritten Kontrollbits innerhalb eines zweiten Code-Teilworts auf einen zweiten logischen Zustand, Setzen der verbleiben­ den drei Bits des ersten Code-Teilworts so, daß eines der beiden Da­ ten-Teilwörter, die eine Codeverletzung enthalten, in einem ersten vor­ bestimmten Bereich der Daten-Teilwörter identifiziert wird und Setzen der verbleibenden drei Bits des zweiten Code-Teilwortes zur Identifizie­ rung des anderen der beiden Daten-Teilwörter, die eine Codeverlet­ zung enthalten, in einem zweiten vorbestimmten Bereich von Daten-Teil­ wörtern, neu Anordnen eines Daten-Teilwortes, das ansonsten auf das erste Code-Teilwort abgebildet worden wäre, auf ein Code-Teil­ wort, das ansonsten das Daten-Teilwort aufnehmen würde, das durch das erste Code-Teilwort als eine Codeverletzung enthaltend identifiziert ist, und neu Anordnen eines Daten-Teilwortes, das anson­ sten auf das zweite Code-Teilwort abgebildet worden wäre auf ein Code-Teilwort, das ansonsten das Daten-Teilwort aufnehmen würde, das durch das zweite Code-Teilwort als eine Codeverletzung enthal­ tend identifiziert wird.
6. Verfahren nach Anspruch 4, bei dem der erste logische Zustand eine logische Null ist und bei dem der zweite logische Zustand eine logische Eins ist.
7. Verfahren nach Anspruch 5, bei dem der erste logische Zustand eine logische Null ist und bei dem der zweite logische Zustand eine logische Eins ist.
8. Verfahren nach Anspruch 1, das weiterhin die Schritte umfaßt, daß ein 8-Bit-Flag erzeugt wird, wobei jede Bitposition des Flags ein Teilwort identifiziert, das eine Codeverletzung aufweist, und bei dem der Schritt der Erzeugung eines 33-Bit-Codewortes das Einbetten des 8-Bit-Flags hierin in dem Fall umfaßt, daß festgestellt wird, daß in dem digitalen 32-Bit-Datenwort drei oder mehr Codeverletzungen vorhanden sind.
9. Verfahren nach Anspruch 8, bei dem das erste Code-Teilwort, ein zweites Code-Teilwort und ein drittes Code-Teilwort vorbestimmte Bit­ positionen besitzen, in die das 8-Bit-Flag geschrieben wird.
10. Verfahren nach Anspruch 9, bei dem ein viertes Code-Teilwort auf ein nur Einsen umfassendes Muster gesetzt wird, um eine maximale Zeit­ information für eine Zeitgeberschleife des magnetischen Aufzeich­ nungskanals zu liefern.
11. Verfahren nach Anspruch 1, bei dem das erste Code-Teilwort in dem 33-Bit-Codewort zentral angeordnet ist.
12. Verfahren zur Erzeugung eines (d=0, k=6)-Kanalcodes mit einer Rate 32/33 zur Verwendung in einem Abtast-Daten-Detektionskanal mit Teilantwort zur Codierung einer Reihe von 32 Bit umfassenden, di­ gitalen Verwender-Datenwörtern, wobei dieses Verfahren folgende Schritte umfaßt:
  • - Aufteilen eines jeden 32-Bit-Verwender-Datenwortes in acht 4-Bit-Daten-Nibble,
  • - Ermitteln, ob eines der Daten-Nibble nur aus Nullen besteht,
  • - wenn nicht, Abbilden der acht 4-Bit-Daten-Nibble auf sieben 4-Bit-Code-Nibble und ein 5-Bit-Code-Teilwort und Setzen eines fünften Bits des Code-Teilworts auf Eins, und
  • - wenn ja, Einbetten des Ortes der Codeverletzung zumindest in das 5-Bit-Code-Teilwort und Abbilden eines Daten-Nibbles, das anson­ sten auf das Teilwort abgebildet würde, auf einen Code-Nibble, das ansonsten das Daten-Nibble aufnehmen würde, von dem festge­ stellt wurde, daß es eine Codeverletzung aufweist.
13. Verfahren nach Anspruch 12, bei dem der Datendetektionskanal in ei­ nem digitalen, linearen Mehrkanal-Band-Aufzeichnungssystem ent­ halten ist.
14. Verfahren zur Erzeugung eines (d=0, k=6)-Kanalcodes mit einer Rate 32/33 für einen Abtastdaten-Detektionskanal mit Teilantwort zur Codierung einer Reihe von digitalen Verwender-Datenbit, das folgende Schritte umfaßt:
  • - Bilden einer Folge von 32 Bit umfassenden Verwender-Datenworten,
  • - Unterteilen eines jeden 32-Bit-Verwender-Datenwortes in acht 4-Bit-Daten-Nibble,
  • - Ermitteln, ob eines der Daten-Nibble nur aus Nullen besteht,
  • - wenn kein Daten-Nibble gefunden wird, das nur aus Nullen besteht, Abbilden der acht 4-Bit-Daten-Nibble auf sieben 4-Bit-Code-Nibble und ein 5-Bit-Code-Teilwort, und Setzen eines ersten Kontrollbits des Code-Teilwortes, das in einer fünften Bitposition dieses Code-Teilworts enthalten ist, auf Eins, ansonsten
  • - wenn ermittelt wird, daß ein einziges Daten-Nibble nur Nullen um­ faßt und somit eine Codeverletzung bildet, Einbetten der Stelle der Codeverletzung zumindest in das 5-Bit-Code-Teilwort und Abbilden eines Daten-Nibbles, das ansonsten auf das 5-Bit-Code-Teilwort abgebildet worden wäre, auf ein Code-Nibble, das ansonsten das Daten-Nibble aufnehmen würde, von dem festgestellt wurde, daß es eine Codeverletzung enthält, ansonsten
  • - wenn festgestellt wird, daß zwei Daten-Nibble nur aus Nullen be­ stehen, Setzen des ersten Kontrollbits auf Null, Setzen eines zweiten Kontrollbits des Code-Teilwortes auf Null und Setzen eines dritten Kontrollbits in einem zweiten Code-Teilwort auf Eins, Setzen der verbleibenden drei Bits des ersten Code-Teilworts so, daß sie eines der beiden Daten-Nibble, das nur aus Nullen besteht, in ei­ nem ersten vorbestimmten Bereich von Daten-Nibblen identifizie­ ren, und Setzen der verbleibenden drei Bits des zweiten Code-Teilworts so, daß sie das andere der beiden Daten-Nibble, das nur aus Nullen besteht, in einem zweiten vorbestimmten Bereich von Daten-Nibblen identifizieren, neu Anordnen eines Daten-Nibbles, das ansonsten auf das erste Code-Teilwort abgebildet würde, auf ein Code-Teilwort, das ansonsten das Daten-Nibble aufnehmen würde, das durch das erste Code-Teilwort als nur aus Nullen be­ stehend identifiziert ist, und neu Anordnen eines Daten-Nibbles, das ansonsten auf das zweite Code-Teilwort abgebildet würde, auf ein Code-Teilwort, das ansonsten das Daten-Nibble aufnehmen würde, das von dem zweiten Code-Teilwort als nur aus Nullen be­ stehend identifiziert wird, ansonsten
  • - wenn festgestellt wird, daß drei oder mehr Daten-Nibble nur aus Nullen bestehen, Erzeugen eines 8-Bit-Flags, wobei jede Bitpositi­ on des Flags ein Daten-Nibble identifiziert, von dem festgestellt wurde, daß es nur aus Nullen besteht, und Schreiben des 8-Bit-Flags in vorbestimmte Kontrollbitpositionen, die im ersten Code-Teilwort, dem zweiten Code-Teilwort und einem dritten Code-Teilwort definiert sind.
15. Verfahren nach Anspruch 14, bei dem dann, wenn festgestellt wird, daß drei oder mehr Daten-Nibble nur aus Nullen bestehen, der sich er­ gebende Schritt auch den Schritt umfaßt, daß ein viertes Code-Teilwort vollständig auf Einsen gesetzt wird, um eine maximale Zeitinformation für eine Zeitgeberschleife in dem Abtast-Daten-Detektionskanal mit teilweiser Antwort zu liefern.
16. Verfahren nach Anspruch 14, bei dem der Abtast-Daten-Detek­ tionskanal mit Teilantwort sich innerhalb eines mehrkanaligen, li­ nearen, digitalen Magnetband-Aufzeichnungs/Wiedergabe-System be­ findet.
17. Modulationscodierer für ein mehrkanaliges magnetisches Aufzeich­ nungssystem, das eine Schnittstelle zu einem Host-Rechner-System, einen Blockpufferspeicher mit einer vorbestimmten Datenwortgröße von nicht weniger als 32-Bit, einen Steuer-Mikroprozessor und einen Systembus mit der vorbestimmten Datenwortgröße umfaßt, wobei der Modulationscodierer eine Eingangs-Verwenderdaten-Wortgröße be­ sitzt, die der vorbestimmten Datenwortgröße entspricht und eine Aus­ gangs-Codewortgröße, die gleich der vorbestimmten Datenwortgröße plus 1 Bit ist und bei dem der Modulationscodierer jedes eingehende Verwender-Datenwort in ein entsprechendes Codewort codiert, das ei­ ne minimale Abschnittslänge, die nur aus Nullen besteht, von Null (d=0) und eine maximale Abschnittslänge, die nur aus Nullen besteht gleich Sechs (k=6) besitzt.
18. Modulationscodierer nach Anspruch 17, bei dem der Modulationsco­ dierer erste und zweite Mittel aufweist, die dazu dienen, jedes Verwen­ der-Datenwort in eine ganze Zahl von 4-Bit-Daten-Nibble zu untertei­ len, wobei die zweiten Mittel auf die ersten Mittel in der Weise anspre­ chen, daß sie ermitteln, ob irgend eines der Daten-Nibble nur aus Nul­ len besteht, sowie dritte Mittel, die auf die zweiten Mittel in der Weise ansprechen, daß sie dann, wenn kein Daten-Nibble vorhanden ist, das nur aus Nullen besteht, die ganze Zahl von 4-Bit-Daten-Nibble auf eine um eins klei­ nere ganze Anzahl von 4-Bit-Code-Nibble und ein 5-Bit-Code-Teilwort abbilden und ein fünftes Bit des Code-Teilwortes auf Eins setzen, und die dann, wenn ein Daten-Nibble vorhanden ist, das nur aus Nullen besteht, eine Stelle des Daten-Nibbles, das nur aus Nullen besteht, zumindest auf das 5-Bit-Codewort abbilden und ein Daten-Nibble, das ansonsten auf das 5-Bit-Code-Teilwort abgebildet würde, auf ein Code-Nibble abbilden, das ansonsten das Daten-Nibble aufnehmen würde, von dem festgestellt wurde, daß es eine Codeverletzung bildet, und die das fünfte Bit des 5-Bit-Code-Teilworts auf Null setzen.
19. Modulationscodierer nach Anspruch 17, bei dem die vorbestimmte Datenwortgröße gleich 32 Bits ist.
20. Modulationscodierer nach Anspruch 17, bei dem die vorbestimmte Datenwortgröße gleich 64 Bits ist.
21. Modulationscodierer nach Anspruch 17, bei dem das mehrkanalige magnetische Aufzeichnungssystem ein 12-kanaliges lineares digitales Band-Aufzeichnungs- und -Wiedergabesystem umfaßt.
DE19911470A 1998-03-13 1999-03-15 Verfahren und Vorrichtung zum Codieren und Decodieren einer Sequenz von digitalen Datenwörtern Expired - Fee Related DE19911470B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/042,243 US6184806B1 (en) 1998-03-13 1998-03-13 Rate 32/33 (D=0, K=6) run length limited modulation code having optimized error propagation
US042243 1998-03-13

Publications (2)

Publication Number Publication Date
DE19911470A1 true DE19911470A1 (de) 1999-10-14
DE19911470B4 DE19911470B4 (de) 2005-02-03

Family

ID=21920836

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19911470A Expired - Fee Related DE19911470B4 (de) 1998-03-13 1999-03-15 Verfahren und Vorrichtung zum Codieren und Decodieren einer Sequenz von digitalen Datenwörtern

Country Status (4)

Country Link
US (1) US6184806B1 (de)
JP (1) JP4159169B2 (de)
DE (1) DE19911470B4 (de)
GB (1) GB2337909B (de)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6236340B1 (en) * 1999-01-04 2001-05-22 Quantum Corporation Modulation encoders and decoders
US6456208B1 (en) * 2000-06-30 2002-09-24 Marvell International, Ltd. Technique to construct 32/33 and other RLL codes
US7286065B1 (en) 2001-03-05 2007-10-23 Marvell International Ltd. Method and apparatus for DC-level constrained coding
US6661356B1 (en) 2001-03-05 2003-12-09 Marvell International, Ltd. Method and apparatus for DC-level constrained coding
US7116736B2 (en) 2002-01-02 2006-10-03 International Business Machines Corporation Method, system, and program for synchronization and resynchronization of a data stream
US6985320B2 (en) * 2002-01-02 2006-01-10 International Business Machines Corporation Method and apparatus for encoding data to guarantee isolated transitions in a magnetic recording system
US7404133B2 (en) * 2004-12-12 2008-07-22 Hewlett-Packard Development Company, L.P. Error detection and correction employing modulation symbols satisfying predetermined criteria
US8139628B1 (en) 2005-01-10 2012-03-20 Marvell International Ltd. Method and device to compensate for baseline wander
US7283069B2 (en) * 2006-03-16 2007-10-16 Harris Corporation Method for encoded or encrypted bit stream synchronization
US7429937B2 (en) * 2007-01-03 2008-09-30 Quantum Corporation Method for constructing RLL codes of arbitrary rate
US7486208B2 (en) * 2007-05-16 2009-02-03 International Business Machines Corporation High-rate RLL encoding
US8375269B2 (en) * 2008-01-31 2013-02-12 International Business Machines Corporation Data transmission system and method of correcting an error in parallel data paths of a data transmission system
US9558782B2 (en) 2012-05-29 2017-01-31 International Business Machines Corporation Partial reverse concatenation for data storage devices using composite codes
US9178534B2 (en) * 2012-05-29 2015-11-03 International Business Machines Corporation Methods for partial reverse concatenation for data storage devices using composite codes

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5668545A (en) * 1995-06-26 1997-09-16 Industrial Technology Research Institute Simplified encoding apparatus and method for pilot tone modulation in automatic-track-following
US5635933A (en) * 1995-06-30 1997-06-03 Quantum Corporation Rate 16/17 (d=0,G=6/I=7) modulation code for a magnetic recording channel
US5757822A (en) * 1995-08-24 1998-05-26 Quantum Corporation Bit-interleaved rate 16/17 modulation code with three-way byte-interleaved ECC
US5717395A (en) * 1996-07-29 1998-02-10 Cirrus Logic, Inc. Rate 16/17 ENDEC with independent high/low byte decoding
US5781133A (en) * 1996-08-05 1998-07-14 Seagate Technology, Inc. Method and apparatus for implementing run length limited codes
US6018304A (en) * 1997-12-18 2000-01-25 Texas Instruments Incorporated Method and apparatus for high-rate n/n+1 low-complexity modulation codes with adjustable codeword length and error control capability

Also Published As

Publication number Publication date
DE19911470B4 (de) 2005-02-03
GB2337909A (en) 1999-12-01
JPH11355144A (ja) 1999-12-24
GB2337909B (en) 2003-07-16
JP4159169B2 (ja) 2008-10-01
US6184806B1 (en) 2001-02-06
GB9905837D0 (en) 1999-05-05

Similar Documents

Publication Publication Date Title
DE69832030T2 (de) Magnetplattenvorrichtung und Fehlerkorrektur dafür
DE3923165C2 (de)
DE19911470B4 (de) Verfahren und Vorrichtung zum Codieren und Decodieren einer Sequenz von digitalen Datenwörtern
DE3225058C2 (de)
DE19522497B4 (de) Magnetplatte, Magnetplattenlaufwerk und Datenzugriffsverfahren
DE10050746A1 (de) Systeme und Verfahren zum Lesen von kodierten Informationen, die zufälligen Fehlern und Sprungfehlern unterworfen sind
DE2847801A1 (de) Digitales einspur-nf-aufzeichnungsgeraet und schaltung mit fehlerkorrektur zur verwendung in diesem
CH665726A5 (de) Verfahren und anordnung zum schreiben und/oder lesen von information.
DE10031862A1 (de) Verfahren zum Vermindern des Datenaufwandes in einem PRML-Datenkanal
DE2944403C2 (de)
DE10022927A1 (de) Signalverarbeitungsvorrichtung und Signalverarbeitungsverfahren
DE3822388A1 (de) Plattenfoermiges aufzeichnungsmedium mit festwertspeicher-spuren, beschreibbaren bereichen und mit antriebseinrichtung
DE2142428A1 (de) System und Verfahren zur Umcodierung von binaren Informationen
DE2513922A1 (de) Pulscodemodulations-aufnahme- und -wiedergabegeraet
DE3248519C2 (de)
DE2637963B2 (de) Schaltungsanordnung in einer Vorrichtung zur Aufnahme digitaler Daten auf ein Magnetband
DE60008624T2 (de) Detektorschaltung und Verfahren zur Fehlerunterdrückung
DE3241950C2 (de)
DE1813254A1 (de) Magnetwandler zur zweikanaligen redundanten Aufnahme und Wiedergabe von Signalen
DE19712568A1 (de) Spursteuerschaltung und -verfahren für ein digitales Bildaufzeichnungs- und Wiedergabegerät unter Verwendung der Bitfehlerrate
DE3604374C2 (de)
DE4442421A1 (de) Drehkopfaufzeichnungs- und -wiedergabevorrichtung mit Speicher und Verfahren zum Vermeiden von Drop-In- und Drop-Out-Fehlern
DE3445551C2 (de)
DE2529542A1 (de) Verfahren zum aufzeichnen von digitalen datenbits
DE3304447A1 (de) Verfahren und geraet zum digitalen magnetischen aufzeichnen und wiedergeben von daten

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8364 No opposition during term of opposition
8328 Change in the person/name/address of the agent

Representative=s name: STROHSCHAENK UND KOLLEGEN, 85521 OTTOBRUNN

R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee

Effective date: 20141001