DE19983344B4 - Effizienter lauflängenbegrenzter Code mit einer kurzen verschachtelten Randbedingung - Google Patents

Effizienter lauflängenbegrenzter Code mit einer kurzen verschachtelten Randbedingung Download PDF

Info

Publication number
DE19983344B4
DE19983344B4 DE19983344T DE19983344T DE19983344B4 DE 19983344 B4 DE19983344 B4 DE 19983344B4 DE 19983344 T DE19983344 T DE 19983344T DE 19983344 T DE19983344 T DE 19983344T DE 19983344 B4 DE19983344 B4 DE 19983344B4
Authority
DE
Germany
Prior art keywords
bit
consecutive
code
codewords
encoder
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
DE19983344T
Other languages
English (en)
Other versions
DE19983344T1 (de
Inventor
Kinhing Paul Plymouth Tsang
Bernardo Edina Rub
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.)
Seagate Technology LLC
Original Assignee
Seagate Technology LLC
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 Seagate Technology LLC filed Critical Seagate Technology LLC
Publication of DE19983344T1 publication Critical patent/DE19983344T1/de
Application granted granted Critical
Publication of DE19983344B4 publication Critical patent/DE19983344B4/de
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/14Digital recording or reproducing using self-clocking 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
    • G11B20/1423Code representation depending on subsequent bits, e.g. delay modulation, double density code, Miller code
    • G11B20/1426Code representation depending on subsequent bits, e.g. delay modulation, double density code, Miller code conversion to or from block codes or representations thereof

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

Verfahren zum Codieren aufeinanderfolgender Datenwörter in aufeinanderfolgende Codewörter zur Übertragung durch einen Kanal, wobei das Verfahren folgende Schritte umfaßt:
(a) Aufteilen jedes aufeinanderfolgenden Datenworts in erste und zweite Abschnitte;
(b) Abbilden des ersten Abschnitts jedes aufeinanderfolgenden Datenworts in ein entsprechendes erstes Codemuster und eine entsprechende Zustandsvariable
(c) Abbilden eines zweiten Abschnitts jedes aufeinanderfolgenden Datenworts in ein entsprechendes zweites Codemuster, das gemäß der Zustandsvariablen zugeordnet ist;
(d) Kombinieren der ersten und zweiten Codemuster, um jedes der aufeinanderfolgenden Codewörter zu bilden;
(e) Verketten der aufeinanderfolgenden Codewörter, um einen codierten Bitstrom mit einer Mehrzahl von Bitpositionen zu bilden; und
(f) Auferlegen eines Lauflängen-Constraints, so daß der codierte Bitstrom einen maximal möglichen Lauf von sieben aufeinanderfolgenden gleichen binären Symbolen an benachbarten der Mehrzahl von Bitpositionen aufweist, und eines Verschachtelungs-Constraints, so daß der codierte Bitstrom einen maximal möglichen Lauf von fünf aufeinanderfolgenden gleichen binären Symbolen in jeder zweiten der...

Description

  • Die Erfindung bezieht sich auf digitale Kommunikationssysteme und insbesondere auf ein Codier- und Decodier-System in einem Plattenlaufwerk.
  • Auf dem Gebiet der digitalen Kommunikationssysteme wird digitale Information von einem Sender an einen Empfänger durch einen Kanal befördert. "Kanal" ist ein allgemeiner Begriff, der viele unterschiedliche Media umfassen kann, wie beispielsweise Aufzeichnungsmedia, Telefonleitungen und das elektromagnetische Spektrum. Bei Datenspeichervorrichtungen, wie beispielsweise Magnetplattenlaufwerken, umfaßt der Kanal ein Speichermedium, und die Digitalinformation wird an das Speichermedium übertragen und für einige Zeit gespeichert, bevor sie wiederhergestellt und an den Empfänger geliefert wird.
  • Ein typisches Magnetplattenlaufwerk umfaßt eine oder mehrere zur Drehung auf einer Nabe oder Spindel montierte Festplatte(n). Jede Platte weist einen zugeordneten, aus einem hydrodynamischen Lager und einen Wandler gebildet Datenkopf zum Kommunizieren mit der Oberfläche der Platte auf. Ein elektromechanischer Aktuator bewegt den Datenkopf radial über die Plattenoberfläche für Spursuchvorgänge und hält den Wandler direkt über einer gewünschten Spur auf der Plattenoberfläche für Spurfolgevorgänge. Ein Laufwerks-Controller steuert das Plattenlaufwerk basierend auf von einem Host-System empfangenen Befehle, um Information von den Platten wiederzugewinnen und Information auf den Platten zu speichern. Der Laufwerks-Controller umfaßt verschiedene Untersysteme, die typischerweise eine "Host-Schnittstelle" zum Kommunizieren mit dem Host-System, ein "Servo-Subsystem" zum Steuern des Aktuators und einen "Lesekanal" zum Wiederherstellen der aufgezeichneten Daten von dem Speichermedium aufweisen.
  • Information wird typischerweise in konzentrischen Datenspuren auf der Plattenoberfläche gespeichert. Die Richtung des Stroms durch den Wandler wird gesteuert, um magnetische Flußumkehrungen auf der Oberfläche der Platte in der ausgewählten Datenspur zu codieren. Bei einer Art des Codierens, die als Non-Return-to-Zero-Inverse-Codierung (NRZI-Codierung)) bekannt ist, wird eine digitale "1" durch eine magnetische Flußumkehrung von einer Bitposition zu der nächsten in der Datenspur dargestellt, und eine digitale Null wird durch ein Fehlen einer magnetischen Flußumkehrung von einer Bitposition zu der nächsten dargestellt.
  • Beim Wiedergewinnen von Daten von der Platte steuert der Laufwerks-Controller den elektromechanischen Aktuator, so daß der Datenkopf über der gewünschten Datenspur schwebt, die in der Datenspur gespeicherten Flußumkehrungen abfühlt und ein Lesesignal basierend auf diesen Flußumkehrungen erzeugt. Das Lesesignal wird typischerweise aufbereitet und dann von dem Laufwerks-Controller decodiert, um die durch die Flußumkehrungen dargestellten Daten wieder herzustellen.
  • Alle Kanäle, einschließlich der Plattenlaufwerks-Speicherkanäle, führen Rauschen in die Signale ein. Um die durch dieses Kanalrauschen verursachten Signalfehler zu erfassen und manchmal zu korrigieren, wurde eine große Anzahl von Codier-Techniken entwickelt. Diese Codier-Techniken konvertieren aus einer Anzahl von Datenbits gebildeten Datenwörter in aus einer Anzahl von Codebits gebildete Codewörter. Die den Codewörtern auferlegten Randbedingungen oder Constraints erlauben die Erfassung und manchmal die Korrektur von Fehlern in den von dem Kanal empfangenen Signalen.
  • Das durchschnittliche Verhältnis der Anzahl von Datenbits zu der Anzahl von Codebits ist als die Coderate des Codes bekannt. Im allgemeinen erhöht sich die Fähigkeit, Fehler in einem empfangenen Signal zu erfassen und zu korrigieren, wenn sich die Coderate verringert, da eine niedrigere Coderate eine größere Anzahl zusätzlicher Bits im Codewort bedeutet. Jedes von dem Codierer hinzugefügte zusätzliche Bit erhöht jedoch die benötigte Zeit und Energie, um das Signal durch den Kanal zu übertragen. Die Coderate sollte daher minimiert werden, um die zum Senden des Codes benötigte Zeit und Energie zu minimieren.
  • Abhängig von dem Erfassungsschema legt der Code dem Codewortmuster bestimmte Constraints auf. Beispielsweise verändert sich bei einem Plattenlaufwerk die Drehzahl des die magnetischen Medien drehenden Spindelmotors mit der Zeit. Dies führt zu uneinheitlichen Zeitintervallen zwischen Lesesignal-Spannungsimpulsen. Eine Phasenregelschleife (PLL = phase locked loop) wird verwendet, um die Phase und Frequenz des Lese-Timing-Takts mit der Phase und Frequenz der Lesesignal-Spannungsimpulse zu synchronisieren. Um zu gewährleisten, daß die PLL regelmäßig aktualisiert wird, kann ein Code verwendet werden, der die Anzahl aufeinanderfolgender Nullen auf nicht mehr als eine maximale Anzahl "k" begrenzt. Diese Art von Code ist als ein lauflängenbegrenzter Code (RLL code = run-length-limited Code) mit einem "k"-Constraint bekannt. Kleinere Werte von "k" gewährleisten eine größere minimale Aktualisierungsrate für das Timing in der PLL. Kleinere Werte von "k" erzeugen jedoch Codes mit mehr Constraints mit einer niedrigeren erreichbaren Coderate.
  • Bei einem magnetischen Aufzeichnungskanal, der eine Signalgebung vom Typ einer Teilantwort mit maximaler Wahrscheinlichkeit (PRML signaling = partial response, maximum likelihood signaling) und einen Viterbi-Detektor verwendet, um die Daten wiederherzustellen, kann ein weiterer Constraint "i" ebenfalls in dem Code aufgenommen werden, um die Verzögerung im Viterbi-Algorithmus zu begrenzen. Der "i"-Constraint in einem Strom von Codewörtern stellt die maximale Lauflänge von Nullen in jeweils zwei verschachtelten Untersequenzen von binären Ziffern innerhalb des Stroms dar. Eine der Untersequenzen wird durch Nehmen der binären Ziffern des Stroms mit ungeraden Indizes und die andere Untersequenz durch Nehmen der binären Ziffern des Stroms mit geraden Indizes gebildet. Da der "i"-Constraint die Verzögerung der Entscheidung in dem Viterbi-Algorithmus direkt beeinflußt und ferner die Länge der Fehlerfortpflanzung beeinflußt, ist es vorteilhaft, den "i"-Constraint so kurz wie möglich zu halten.
  • Es sei angenommen, daß die Sequenz binären Eingänge in den Kanal mit {c0, c1, c2, ...} bezeichnet wird. Die kompakte Schreibweise
    Figure 00040001
    wird als die "D-Transformation" der Eingangssequenz bezeichnet, die den Einheits-Verzögerungsoperator "D" verwendet, wie in der Literatur bekannt ist, um auszudrücken, daß der Koeffizient ck von Dk die k-te Eingabe in den Kanal ist. Teilantwortkanäle für magnetische Aufzeichnungsbedingung (magnetic recording condition) bereiten die empfangenen Ausgabe des Speichermediums auf, so daß die abgetastete Antwort des Systems an einem isolierten Eingangsbit durch ein charakteristisches Teilantwort-Polynom oder eine "Kanaltransferfunktion" P(D) gegeben wird. Teilantwortkanäle zur magnetischen Aufzeichnung weisen häufig ein Teilantwort-Polynom von der Form P(D) = (1 – D)(1 + n)n Gleichung 2auf, wobei n eine positive ganze Zahl ist. Die D-Transformation der rauschlosen Ausgabe des Kanals v(D) wird gegeben durch ν(D) = c(D)P(D) Gleichung 3wobei das Produkt durch eine normale Polynom-Multiplikation genommen wird.
  • Aufgrund des (1 – D)(1 + D)-Faktors von P(D) weist der Kanal eine Nur-Null-Antwort auf lange Läufe aufeinanderfolgender gleicher binärer Eingangssymbole in den geraden und ungeraden indizierten binären Untersequenzen und auf lange Läufe aufeinanderfolgender alternierender Eingangssymbole in der kombinierten globalen Sequenz auf. Diese Sequenzen sollten vermieden werden, da sie geringe Phasen- und Amplituden-Information zur Regelung des Lesekanals enthalten.
  • Ein Verfahren zum Erzeugen der gewünschten Kanaleingangssequenzen besteht darin, einen Codierer und einen Vorcodierer am Eingang des Datenkanals zu verwenden. Der Codierer konvertiert Anwenderdatenwörter, die im Kanal zu speichern sind, in Codewörter mit ausgewählten Constraints, so daß die Codewörter unerwünschte Bitsequenzen vermeiden. Der Vorcodierer bereitet die Codewörter weiter auf und kann eine Transferfunktion der Form.
    Figure 00050001
    aufweisen, wobei "⨁" eine EXKLUSIV-ODER-Verknüpfung bezeichnet. Der Codierer erzeugt eine binär codierte Sequenz b(D), die in den Vorcodierer eingegeben wird. Die Ausgabe des Vorcodierers ist die Kanaleingabe c(D), die durch gegeben ist: c(D) = b(D)H(D) Gleichung 5.
  • Die aufbereiteten Codewörter werden dann an den Kanal geliefert. Wenn die verrauschte Ausgabe des Teilantwortkanals empfangen wird, werden ein Detektor und ein Decodierer verwendet, um die ursprünglichen Anwenderdaten zuveranschlagen.
  • Die Erfindung betrifft diese und weitere Probleme und bietet weitere Vorteile gegenüber dem Stand der Technik.
  • US-A 4 707 681 ist ein Codierverfahren bekannt, bei dem ein Lauflängen-Constraint, so daß der codierte Bitstrom einen maximal möglichen Lauf von „i" aufeinanderfolgenden gleichen binären Symbolen an benachbarten Bitposition aufweist, und ein Verschachtelungs-Constraint, so daß der codierte Bitstrom einen maximal möglichen Lauf „j" aufeinanderfolgenden gleichen binären Symbolen in jeder zweiten Bitposition aufweist, auferlegt werden.
  • US-A 4 855 742 offenbart ein Codierverfahren, bei dem ein Datenwort zum Codieren in mehrere Gruppen zerlegt wird, die dann codiert und zusammengefügt werden.
  • Ein weiters Codierverfahren ist aus EP-A 0 751 522 bekannt.
  • Bei einem RLL-Code der Rate m/n werden m-Bit-lange Datenwörter in n-Bit-lange Codewörter abgebildet. Bei einer unabhängigen Block-Codierung werden 2m n-Bit-Codewort-Muster benötigt, um alle m-Bit-langen Datenmuster abzubilden. Wenn m und n groß sind, wird der Codierer sehr kompliziert und eine Fehlerfortpflanzung in dem Decodierer kann schwerwiegend sein.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Aufgabe der Erfindung ist es daher, ein einfach zu implementierendes Codierverfahren und einen zugehörigen Codierer bereitzustellen.
  • Die Aufgabe wird durch ein Codierverfahren nach Anspruch 1, einen Codier nach Anspruch 6 und ein Plattenlaufwerk nach Anspruch 9 gelöst. Die abhängigen Ansprüche betreffen vorteilhafte Aspekte der Erfindung.
  • Ein Aspekt der Erfindung bezieht sich auf ein Verfahren zum Codieren aufeinanderfolgende Datenwörter in aufeinanderfolgende Codewörter zur Übertragung durch einen Kanal. Jedes aufeinanderfolgende Datenwort wird in erste und zweite Abschnitte aufgeteilt. Der erste Abschnitt jedes aufeinanderfolgenden Datenworts wird in ein entsprechendes erstes Codemuster und eine entsprechende Zustandsvariable gemäß einem ausgewählten Code abgebildet. Der zweite Abschnitt jedes aufeinanderfolgenden Datenworts wird in ein entsprechendes zweites Codemuster, das der Zustandsvariablen zugeordnet ist, gemäß dem ausgewählten Code abgebildet. Die ersten und zweiten Codemuster werden kombiniert, um jedes der aufeinanderfolgenden Codewörter zu bilden. Die aufeinanderfolgenden Codewörter werden verkettet, um einen codierten Bitstrom mit einer Mehrzahl von Bitpositionen zu bilden. Ein Lauflängen-Constraint wird dem ausgewählten Code auferlegt, so daß der codierte Bitstrom einen maximal möglichen Lauf von sieben aufeinanderfolgenden gleichen
  • binären Symbolen in benachbarten Positionen der Mehrzahl von Bitpositionen aufweist. Ein Verschachtelungs-Constraint wird dem ausgewählten Code auferlegt, so daß der codierte Bitstrom einen maximal möglichen Lauf von fünf aufeinanderfolgenden gleichen binären Symbolen in jeder zweiten der Mehrzahl von Bitpositionen aufweist.
  • Ein weiterer Aspekt der Erfindung bezieht sich auf einen Codierer zum Codieren aufeinanderfolgender Datenwörter in jeweilige aufeinanderfolgende Codewörter, die verkettet sind, um einen codierten Bitstrom zu bilden. Der Codierer umfaßt einen m-Bit-Datenworteingang zum Empfangen der aufeinanderfolgenden Datenwörter, einen n-Bit-Codewortausgang und erste und zweite Codierer. Der erste Codierer umfaßt einen mit dem m-Bit-Datenworteingang gekoppelten p-Bit-Datenworteingang, einen mit dem n-Bit-Codewortausgang gekoppelte u-Bit-Codewortausgang und einen Zustandsvariablen-Ausgang. Der zweite Codierer umfaßt einen mit dem m-Bit-Datenworteingang gekoppelten q-Bit-Datenworteingang, einen mit dem n-Bit-Codewortausgang gekoppelten v-Bit-Codewortausgang und einen mit dem Zustandsvariablen-Ausgang gekoppelten Zustandsvariablen-Eingang, wobei m, n, p, q, u und v ganzzahlige Veränderliche sind, und wobei p+q=m, u+v=n und u<p ist. Die ersten und zweiten Codierer implementieren einen Code, der eine erste Anzahl aufeinanderfolgender gleicher binärer Symbole, die in einer Sequenz benachbarter Bitpositionen in dem codierten Bitstrom an dem n-Bit-Codewortausgang erscheinen, auf ein Maximum von sieben begrenzt, und eine zweite Anzahl aufeinanderfolgender gleicher binärer Symbole, die in Untersequenzen von Bitpositionen mit geraden bzw. ungeraden Indizes in dem codierten Bitstrom am n-Bit-Codewortausgang erscheinen, auf ein Maximum von fünf begrenzt.
  • Ein weiterer Aspekt der Erfindung bezieht sich auf einen Plattenlaufwerk-Speicherkanal, der einen Wandler und einen Schreibkanal umfaßt. Der Wandler ist imstande, mit einer Datenspeicherplatte zu kommunizieren. Der Schreibkanal ist mit dem Wandler zum Codieren aufeinanderfolgender Datenwörter in aufeinanderfolgende Codewörter gemäß einem ausgewählten Code gekoppelt, um einen codierten Bitstrom zu bilden, der dann vorcodiert und an den Wandler als ein Kanaleingang angelegt wird. Der ausgewählte Code erzwingt, daß die aufeinanderfolgenden Codewörter einen maximal möglichen Lauf von sieben aufeinanderfolgenden gleichen binären Symbolen in benachbarten Bitpositionen im codierten Bitstrom und einen maximal möglichen Lauf von fünf aufeinanderfolgenden gleichen binären Symbolen Bitpositionen mit geraden Index Bitpositionen mit ungeradem Index im codierten Bitstrom aufweisen.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • 1 ist eine perspektivische Ansicht eines Plattenlaufwerks, bei dem der Codierer und der Decodierer gemäß der Erfindung verwendet werden können.
  • 2 ist ein Blockdiagramm eines verallgemeinerten Kommunikationssystems, bei dem der Codierer und der Decodierer verwendet werden können.
  • 3 ist ein Diagramm, das eine Aufteilung der Eingangsdatenwörter in jeweilige Blöcke zum Codieren darstellt.
  • 4 ist ein Ablaufdiagramm, das ein Verfahren zum Codieren einer erfindungsgemäßen Ausführungsform darstellt.
  • 5 ist ein Ablaufdiagramm, das ein Verfahren zum Decodieren einer erfindungsgemäßen Ausführungsform darstellt.
  • 6 ist ein Blockdiagramm eines Codierers einer erfindungsgemäßen Ausführungsform.
  • 7 ist ein Blockdiagramm eines Decodierers einer erfindungsgemäßen Ausführungsform.
  • AUSFÜHRLICHE BESCHREIBUNG DER BEVORZUGTEN AUSFÜHRUNGSFORMEN
  • 1 ist eine perspektivische Ansicht eines Plattenlaufwerks 100, bei dem die Erfindung nützlich ist. Das Plattenlaufwerk 100 umfaßt ein Gehäuse mit einer Basis 102 und einer (nicht gezeigten) oberen Abdeckung. Das Plattenlaufwerk 100 umfaßt ferner einen Plattenpack bzw. Plattenstapel 106, der auf einem Spindelmotor (nicht gezeigt) mittels einer Plattenklammer 106 montiert ist. Das Plattenpack 106 umfaßt eine Mehrzahl von einzelnen Platten, die zur gemeinsamen Rotation um eine Mittelachse 109 angeordnet sind. Jede Plattenoberfläche weist einen zugeordneten Kopf 110 auf, der an dem Plattenlaufwerk 100 zur Kommunikation mit der Plattenoberfläche montiert ist. Bei dem in 1 gezeigten Beispiel werden die Köpfe 110 durch Aufhängungen 112 getragen, die ihrerseits an Spurzugriffsarmen 114 eines Aktuators 116 befestigt sind. Der in 1 gezeigte Aktuator ist von dem Typ, der als ein sich drehbar bewegender Spulenaktuator bekannt ist und einen Schwingspulenmotor (VCM = voice coil motor) umfaßt, der allgemein bei 118 gezeigt ist. Der Schwingspulenmotor 118 dreht den Aktuator 116 mit seinen befestigten Köpfen 110 um eine Schwenkachse 120, um die Köpfe 110 über einer gewünschten Datenspur entlang eines bogenförmigen Weges 122 zwischen einem inneren Plattendurchmesser 124 und einem äußeren Plattendurchmesser 126 zu positionieren. Der Schwingspulenmotor arbeitet unter der Steuerung einer internen Schaltungsanordnung 128.
  • Die Schreibschaltungsanordnung in der internen Schaltungsanordnung 128 codiert die zu speichernden Daten in aufeinanderfolgende Codewörter und sendet die Codewörter in der Form eines seriellen analogen Schreibsignals an den Schreibwandler an dem Kopf 110, der die magnetischen Flußumkehrungen in einer magnetischen Schicht auf der Plattenoberfläche codiert. Während der Lesevorgänge fühlt der Lesewandler im Kopf 110 die magnetischen Flußumkehrungen ab und erzeugt ein serielles analoges Lesesignal. Das analoge Lesesignal wird in ein serielles digitales Signal umgewandelt, das an die Detektor- und Decodier-Schaltungsanordnung in der internen Schaltungsanordnung 128 geliefert wird, um ein wiederhergestelltes Datensignal zu erzeugen.
  • 2 ist ein Blockdiagramm eines verallgemeinerten Kommunikationssystems 148 gemäß einer Ausführungsform der Erfindung, das beispielsweise im Plattenlaufwerk 100 gebildet werden kann. Das Kommunikationssystem 148 umfaßt einen Codierer 150, der aufeinanderfolgende Datenwörter 122 empfängt und die aufeinanderfolgenden Datenwörter in aufeinanderfolgende Codewörter 153 codiert. Jedes Datenwort kann eine beliebige Anzahl von Symbolen umfassen. Bei einem binären System stellt beispielsweise jedes Symbol ein logisches Datenbit dar. Bei Plattenlaufwerksanwendungen sind gewöhnliche Datenwortlängen etwa 8 oder 16 Bit. Wie nachstehend ausführlicher beschrieben wird, werden aufeinanderfolgende Datenwörter in aufeinanderfolgende Codewörter unter Verwendung eines lauflängenbegrenzten Codes mit "k"- und "i"-Constraints codiert, wobei das "i"-Constraint für eine gewählte Coderate so klein wie möglich ist. Um eine Fehlerfortpflanzung zu begrenzen, wird jedes Codewort durch Verketten zweier kürzerer Codewörter gebildet. Der Codierer 150 ist zustandsgesteuert (state driven), und alle Codewörter werden sorgfältig ausgewählt, so daß der Zustand mit einer kleinen Anzahl von Bits, wie beispielsweise den führenden vier Bits jedes Codeworts, bestimmt werden kann. Der Codierer kann mittels einer Kombinationslogik oder als Software mit einer Nachschlagtabelle implementiert werden, um die Konversion zwischen jedem Anwenderdatenwort und seinem entsprechenden Codewort durchzuführen. Andere Hardware- und Software-Implementierungen können ebenfalls verwendet werden.
  • Ein Parallel-Seriell-Umsetzer 155 empfängt die aufeinanderfolgenden Codewörter 153, konvertiert jedes Codewort in eine serielle Darstellung und verkettet die seriellen Darstellungen, um einen seriellen Strom der Codewort-Bits 154 zu erzeugen. Der Vorcodierer 156 empfängt den seriellen Codewortstrom 154 und bereitet die Sequenz auf, so daß sie für die Art des zum Wiederherstellen des Signals vom Kanal verwendeten Detektors optimiert ist. Bei einer Ausführungsform bereitet der Vorcodierer 156 die Sequenz gemäß dem in obiger Gleichung 4 gegebenen Polynom auf. Der Vorcodierer 156 erzeugt ein codiertes Schreibsignal 158, das an den Kanal 160 geliefert wird.
  • Bei dem Plattenlaufwerk 100 umfaßt der Kanal 160 den Schreibwandler im Kopf 110, das Plattenpack 106 und den Lesewandler im Kopf 110. Das codierte Schreibsignal wird auf der Plattenoberfläche durch den Schreibwandler gespeichert. Während eines Lesevorgangs liest der Lesewandler die gespeicherte codierte Information von der Plattenoberfläche und befördert die codierte Information an den Empfänger/Detektor 162 als ein Lesesignal 164. Der Empfänger/Detektor 162 verstärkt und filtert das Lesesignal 164 und stellt dann die codierte Information aus dem Lesesignal unter Verwendung eines von mehreren bekannten Erfassungsverfahren wieder her. Beispielsweise kann der Empfänger/Detektor 162 einen Viterbi-Detektor, eine Entscheidungsrückkopplungs-Entzerrung (DFE = decision feedback equalization), eine Baumsuche mit fester Verzögerung mit Entscheidungsrückkopplung (FDTS/DF = fixed-delay tree search with decision feedback) oder eine verringerte Zustandssequenzerfassung (RSSE = reduced state sequence detection) umfassen. Nach Erfassen und Verstärken des Signals vom Kanal 160 erzeugt der Empfänger/Detektor 162 eine wiederhergestellte Sequenz von Codewort-Bits 165, die an den Seriell-Parallel-Umsetzer 163 geliefert werden. Die Sequenz von Codewort-Bits 165 ist in einem seriellen Format am Eingang eines Seriell-Parallel-Umsetzers 163.
  • Der Seriell-Parallel-Umsetzer 163 gruppiert die Bits in Codewörter und konvertiert die Codewörter von einem seriellen Format in ein paralleles Format. Sukzessiv wiederhergestellte Codewörter 166 weisen Längen entsprechend den Längen der von dem Codierer 150 erzeugten Codewörter auf. Der Seriell-Parallel-Umsetzer 163 gibt dann die sukzessiv wiederhergestellten Codewörter im parallelen Format an den Decodierer 168 aus. Der Dekodierer 168 verwendet die Umkehrung der von dem Codierer 150 verwendeten Codierregel und konvertiert die aufeinanderfolgenden Codewörter 166 in jeweilige Datenwörter 170.
  • Den Bitmustern im Codewortstrom 153 werden verschiedene Constraints von dem Codierer 150 auferlegt. Da sich die Drehzahl der Platte mit der Zeit ändern kann, wird eine Phasenregelschleife (PLL = phase locked loop) verwendet, um die Phase und die Frequenz des Lesetiming-Takts mit der Phase und Frequenz des Lesesignals 164 zu synchronisieren. Um zu gewährleisten, daß die PLL regelmäßig aktualisiert wird, verwendete der Codierer 150 einen Code, der die Anzahl aufeinanderfolgender Nullen in dem Codewortstrom 153 auf nicht mehr als eine maximale Anzahl "k" begrenzt. Diese Art von Code ist als ein lauflängenbegrenzter Code (RLL code = run length limited code) mit einem globalen "k"- oder "g"-Constraint bekannt. Der Codierer 150 begrenzt ferner die maximale Lauflänge von Nullen in jeder der beiden verschachtelten Untersequenzen in dem Codewortstrom 153, die von den binären Ziffern mit ungeradem Indizes bzw. den binären Ziffern mit ungeraden Indizes im Codewortstrom 153 gebildet werden. Diese Art von Code-Constraint ist als ein verschachtelter "i"-Constraint bekannt. Da das "i"-Constraint direkt die Verzögerung der Entscheidung in einen Viterbi-Algorithmus und ferner die Länge der Fehlerfortpflanzung beeinflußt, wird bevorzugt, das "i"-Constraint für eine gegeben Coderate so kurz wie möglich zu halten. Bei einem Beispiel der Erfindung verwendet der Codierer 150 einen Code mit 16/17-Rate mit einem "k"-Constraint von sieben und einem "i"-Constraint von fünf, und diese Constraints werden an allen Grenzen zwischen benachbarten Codewörtern aufgezwungen.
  • Bei einem RLL-Code der Rate m/n werden m-Bit-lange Datenwörter in n-Bit-lange Codewörter abgebildet, die die ausgewählten RLL-Constraints erfüllen, wobei m und n positive ganzzahlige Veränderliche sind. Bei einer unabhängigen Block-Codierung werden 2m n-Bit-Codewort-Muster benötigt, um alle m-Bit-langen Datenmuster abzubilden. Beispielsweise bildet ein Code mit 16/17-Rate aufeinanderfolgende 16-Bit-Datenwörter (oder zwei 8-Bit-Datenbytes) in aufeinanderfolgende 17-Bit-Codewörter ab. Wenn m und n groß sind, wird der Codierer sehr kompliziert und eine Fehlerfortpflanzung in dem Decodierer kann schwerwiegend sein.
  • Um diese Probleme zu überwinden, teilt der Codierer 150 jedes m-Bit-Datenwortmuster in zwei kleinere Muster auf, wie in 3 gezeigt ist. Das erste Muster ist p-Bit-lang, und das zweite Muster ist q-Bit-lang, so daß p+q=m ist, wobei p und q positive ganzzahlige Veränderliche sind. Die p-Bit-langen Datenwortmuster werden in u-Bit-lange Codewortmuster abgebildet, und die q-Bit-langen Datenwortmuster werden in v-Bit-lange Codewortmuster abgebildet, wobei u und v positive ganzzahlige Veränderliche und u+v = n ist.
  • Wenn es Nu u-Bit-lange Codemuster und Nv v-Bit-lange Codemuster gibt, die die Code-Constraints erfüllen, dann werden Nu und Nv geprüft, um zu sehen, ob sie ausreichend groß sind, um alle 2P bzw. 2q Datenwörter abzubilden. Da 2P u-Bit-lange Codewörter erforderlich sind, um alle p-Bit-langen Datenwörter abzubilden, dann muß Gleichung 6 erfüllt sein. 2P ≤ Nu Gleichung 6
  • Da ebenso 2q v-Bit-lange Codewörter erforderlich sind, um alle q-Bit-langen Datenwörter abzubilden, muß Gleichung 7 erfüllt sein, 2q ≤ Nν Gleichung 7
  • Gleichung 6 und 7 sind jedoch nicht die einzige Art und Weise, um die Anforderung zu erfüllen. Eine ganze Zahl "t" kann definiert werden, so daß 2p ≤ [Nu·t] Gleichung 8und (2q·t] ≤ Nν Gleichung 9
  • Gleichung 8 und 9 sind Abwandlungen von Gleichungen 6 und 7. Gleichungen 6 und 7 werden nicht einzeln geändert, sondern sind beispielsweise in Gleichung 8 und 9 zusammen zu ändern. Gleichung 8 gewährleistet, daß jedes der p-Bit-Datenmuster in eines der u-Bit-Codewortmuster abgebildet werden kann, und ordnet ferner jedem Datenmuster eine Zustandszahl S zu, wobei 0,1,...,t–1 ϵ Nν Gleichung 10
  • Dieses ist eine Eins-zu-Eins-Abbildung, da 2P≤(Nu·t) ist. Für die q-Bit-Datenmuster garantiert Gleichung 9, daß alle Nv v-Bit-langen Codewörter in t Gruppen aufgeteilt werden können, wobei jede Gruppe mindestens 2q Codewörter umfaßt. Jede Gruppe kann mit einer Zustandsnummer S gekennzeichnet werden. In der Gruppe kann jedes der 2q Datenmuster in ein eindeutiges v-Bit-Codewort abgebildet werden.
  • 4 ist ein Ablaufdiagramm, das einen Codierprozeß zum Abbilden eines m-Bit-Datenworts in ein n-Bit-Codewort gemäß einer Ausführungsform der Erfindung zeigt. Bei Schritt 172 wird das m-Bit-Datenwort 152 in ein p-Bit-Muster und ein q-Bit-Muster aufgeteilt. Bei Schritt 173 wird das p-Bit-Muster in ein u-Bit-Codewort und eine Zustandszahl S abgebildet, wobei u<p ist. Bei Schritt 174 wird das q-Bit-Muster in eines der v-Bit-Codewörter abgebildet, das der Zustandszahl S zugeordnet ist. Die u-Bit- und v-Bit-Codewörter werden bei Schritt 175 kombiniert, um das n-Bit-Codewort 153 zu bilden.
  • 5 ist ein Ablaufdiagramm, das einen Decodierprozeß zum Abbilden eines n-Bit-Codeworts 166 in ein m-Bit-Datenwort 170 gemäß einer Ausführungsform der Erfindung zeigt. Bei Schritt 178 wird das n-Bit-Codewort 166 in ein u-Bit-Codemuster und ein v-Bit-Codemuster aufgeteilt. Da die Gruppe von v-Bitmustern bei jeder Zustandsnummer S eindeutig ist, kann die Zustandsnummer S für das v-Bitmuster bei Schritt 179 bestimmt werden. Bei Schritt 180 wird das v-Bit-Codemuster in das entsprechende q-Bit-Datenmuster abgebildet. Basierend auf der in Schritt 179 bestimmten Zustandszahl S und dem u-Bit-Codewort, wird das entsprechende p-Bit-Datenmuster bei Schritt 181 wiederhergestellt. Bei Schritt 182 werden die p-Bit- und q-Bit-Datenmuster kombiniert, um das m-Bit-Datenmuster 170 zu bilden.
  • Beispiel
  • Bei einem Beispiel werden der Codierer 150 und der Decodierer 168 konfiguriert, um einen RLL-Code mit 16/17-Rate zu implementieren, wobei m=16, n=17, k=7 und i=5 ist. Eine wirksame Art und Weise, den Codierer und den Decodierer zu konfigurieren, besteht darin, p=8, q=8, u=7 und v=10 zu setzen. Durch Erfüllen der "k"- und "i"-Constraints, sind 87 von 128 möglichen 7 Bit-Codewörtern verfügbar, und 812 von 1024 möglichen 10-Bit-Codewörtern sind verfügbar (d.h. Nu=87 und Nv=812).
  • Wenn beispielsweise "t" ausgewählt wird, um gleich drei zu sein, dann wird Gleichung 8 erfüllt, wie in Gleichung 11 gezeigt ist: 2p = 2δ = 256 ≤ [Nu∙t] = (87∙3) = 261 Gleichung 11
  • Außerdem wird Gleichung 9 erfüllt, wie in Gleichung 12 gezeigt ist: [2q∙t] = (28∙3) = 768 ≤ Nv = 812 Gleichung 12
  • Wenn t = 3 ist, gibt es drei Zustände, S0, S1 und S2. Da es mehr als genug 10-Bit-Codewörter gibt, können die 10-Bit-Codewörter in jedem der drei Zustände sorgfältig ausgewählt werden, so daß der Zustand irgendeines besonderen Codeworts in Schritt 179 von 6 durch den Decodierer 168 mit einer so kleinen Anzahl von Bits wie möglich eindeutig bestimmt werden kann. Diese Anordnung hilft Fehlerfortpflanzung zu begrenzen. Tabelle 1 zeigt eine Gruppierung von 10-Bit-Codemustern in jeweilige Zustände gemäß einem Beispiel, wobei "X" eine Bitstelle mit einem binären Wert von "1" oder "0" kennzeichnet.
  • TABELLE 1
    Figure 00170001
  • Diese Gruppenaufteilung macht es möglich, den Zustand eines 10-Bit-Codeworts durch die vier höchstwertigen Bits des Codeworts eindeutig zu bestimmen. Solange wie ein Fehler-Burst sieben Bits oder weniger ist, wird der Fehler der decodierten Daten auf zwei aufeinanderfolgende Datenwörter begrenzt sein. Ein 8-Bit-Fehlerburst, der die letzten sieben Bits eines 10-Bits-Codeworts und das erste Bit des nächsten 7-Bit-Codeworts überspannt, kann bewirken, daß drei decodierte Wörter verfälscht sind.
  • Bei einer Ausführungsform erzeugt der Codierer 150 die Codewörter mit einer zustandsgesteuerten Codetabelle zum Abbilden jedes Datenwortmusters in ein jeweiliges Codewort. Die zustandsgesteuerte Codetabelle wird durch Sammeln aller 7-Bit- und 10-Bit-Muster erzeugt, die die ausgewählten Constraints von k=7 und i=5 erfüllen. Tabelle 2 ist ein Zustandsdiagramm, das in dem oben bereitgestellten Beispiel jedes 8-Bit-Datenwort D[15:8] in ein entsprechendes 7-Bit-Codewort und den nächsten Zustandswert S0–S2 abbildet. Die Datenwörter sind in den mit "DATA" bezeichneten Spalten, die entsprechenden Codewörter in den mit "CW" bezeichneten Spalten und die entsprechenden nächsten Zustände in den mit "NXS" bezeichneten Spalten vorgesehen. Die 8-Bit-Datenwörter und die 7-Bit-Codewörter werden jeweils durch zwei Hexadezimalwerte dargestellt.
  • TABELLE 2
    Figure 00180001
  • Figure 00190001
  • Figure 00200001
  • Tabellen 3 bis 5 sind Zustandsdiagramme, die jedes 8-Bit-Datenwort D[7:0] in ein entsprechendes 10-Bit-Codewort für Zustände S0, S1 bzw. S2 abbilden. Für jedes Datenwort D[7:0] wird entweder Tabelle 3, 4 oder 5 abhängig von der D[15:8] zugeordneten Zustandsnummer verwendet, die in Tabelle 2 bestimmt wird.
  • Die 8-Bit-Datenwörter werden in der linken Spalte von Tabellen 3-5 mit zwei hexadezimalen Ziffern, wie beispielsweise "0X", aufgelistet. Die zweite Ziffer "X" kann die hexadezimalen Werte 0-F aufweisen, die entlang der oberen Reihe der Tabellen aufgelistet sind. Daher würde ein 8-Bit-Datenwort "0B" in ein 10-Bit-Codewort "10B" abgebildet werden, wobei die "1" in "10B" in einen 2-Bit-Binärwert, und die "0" und "B" jeweils in Vier-Bit-Binärwerte übersetzt. Die Codewörter in jedem Zustand S0–S2 sind eindeutig. Daher kann beim Decodieren der Codewörter der entsprechende Zustand durch Bestimmen der Tabelle, in dem das Codewort residiert, bestimmt werden. TABELLE 3
    Figure 00210001
    TABELLE 4
    Figure 00210002
    TABELLE 5
    Figure 00210003
  • 6 ist ein Blockdiagramm, das den Codierer 150 zum Erzeugen eines Codes mit 16/17-Rate mit einem globalen, Lauflängen-Constraint "k" von 7 und einem Verschachtelungs-Constraint "i" von 5 darstellt. Der Codierer 150 ist in zwei Teile, Teil A und Teil B, aufgeteilt. Teil A umfaßt einen Code-Tester (A) 202 und einen Codierer (A) 204, und Teil B umfaßt einen Code-Tester (B) 206 und einen Codierer (B) 208.
  • Der Codierer (A) 204 empfängt die acht höchstwertigen Bits D[15:8] eines 16-Bit-Eingangs-Datenworts D[15:0] entlang dem Eingangsbus 220. Diese acht Bits werden als A7:0 im Codierer (A) 204 bezeichnet, was eine Abkürzung für eine Sequenz von acht Bits ist: A7A6A5A4A3A2A1A0 Von den von dem Codierer (A) 204 empfangenen acht Bits empfängt der Code-Tester (A) 202 die niedrigstwertigen sieben Bits entlang dem Bus 222, die als WA6:0 im Code-Tester (A) 202 bezeichnet werden.
  • Der Code-Tester (A) 202 erzeugt eine Ausgabe TA 203, die in den Codierer (A) 204 eingegeben wird. Basierend auf TA 203 und Eingaben A7:0, erzeugt der Codierer (A) 204 ein sieben-Bit-Codewort Y6:0 auf dem Ausgangsbus 210. Der Codierer (A) 204 erzeugt ferner drei Zustandsvariablen S0, S1 und S2 und zwei Bits WB8 und WB9 des Teils B. Eine der Zustandsvariablen S0, S1 oder S2 ist in Abhängigkeit von dem dem 7-Bit-Codewort Y6:0 zugeordneten nächsten Zustand aktiv, der durch Tabelle 2 bestimmt wird.
  • Die Bits WB8 und WB9 des Teil B werden in den Code-Tester (B) 206 entlang Leitungen 216 bzw. 218 eingegeben. Der Code-Tester (B) 206 empfängt ebenfalls die niedrigstwertigen acht Bits D[7:0] des Eingangsdatenworts entlang dem Eingangsdatenbus 224. Diese Bits werden als Eingangsbits WB7:0 im Code-Tester (B) 206 bezeichnet. Basierend auf Eingängen WB7:0, WB8 und WB9 erzeugt der Code-Tester (B) 206 eine Ausgabe TB 214, die in den Codierer (B) 208 eingegeben wird.
  • Zusätzlich zum Empfangen von TB 214 empfängt der Codierer (B) 208 Zustandsvariable S0, S1 und S2 entlang Leitungen 228, 230 bzw. 232 und die niedrigstwertigen acht Bits D[7:0] des Eingangsdatenworts entlang Eingangsbus 226. In dem Codierer (B) 208 werden die niedrigstwertigen acht Bits des Eingangsdatenworts als B7:0 bezeichnet. Basierend auf allen Eingangswerten erzeugt der Codierer (B) 208 zehn Ausgangs-Codebits Z7:0 entlang dem Ausgangsbus 212. Diese Bits werden zu Bits Y6:0 verkettet, um eine 17-Bit-Codewortausgabe zu bilden.
  • Der Codierer 150 kann als eine Kombinationslogik implementiert werden. Diese Kombinationslogik kann in den nachstehenden Tabellen unter Verwendung der folgenden Symbole beschrieben werden:
  • "|"
    stellt ein bitweises ODER dar;
    "&"
    stellt ein bitweises UND dar;
    "+"
    stellt eine arithmetische Summe dar;
    "n"
    stellt EXKLUSIVE-ODER dar; und
    "!X"
    stellt die Umkehrung von X dar.
  • Außerdem wird in den folgenden Tabellen die Indexnumerierungsschreibweise durch eine einzige Schriftschreibweise ersetzt. Somit wird S0 als S0, B1 als B1 und so weiter dargestellt.
  • Code-Tester (A) 202 erzeugt eine Ausgabe TA 203 basierend auf Eingängen WA6:0 unter Verwendung der Gleichungen in Tabelle 6:
  • TABELLE 6 7-Bit-Codewort-Tester (A) Boolesche Gleichungen
    Figure 00240001
  • Der Codierer (A) 204 erzeugt eine Ausgabe 210 (Y6:0) unter Verwendung der Eingangsbits A7:0 und TA 203 und der nachstehend in Tabelle 7 gezeigten Booleschen Gleichungen.
  • TABELLE 7 7-Bit-Codierer (A) Boolesche Gleichungen
    Figure 00240002
  • Figure 00250001
  • Der Code-Tester (B) 206 erzeugt eine Ausgabe TB 214 mit den Eingangsbits WB7:0 des Eingangsdatenworts, Bits WB8 und WB9 von dem Codierer (A) 204 und der in Tabelle 8 gezeigten Booleschen Gleichungen.
  • TABELLE 8 10-Bit-Codewort-Tester (B) Boolesche Gleichungen
    Figure 00260001
  • Der Codierer (B) 208 erzeugt Ausgangsbits 212 (Z9:0) unter Verwendung der niedrigstwertigen 8 Bits des Eingangsdatenworts (B7:0), der drei Zustandsveränderlichen S0, S1 und S2, TB 214 und der in Tabelle 9 gezeigten Booleschen Gleichungen.
  • TABELLE 9 10-Bit-Codierer (B) Boolesche Gleichungen
    Figure 00260002
  • Figure 00270001
  • 7 ist ein Blockdiagramm des Decodierers 168 zum Decodieren der von dem Codierer 150 erzeugten Codewörter gemäß einer Ausführungsform der Erfindung. Der Decodierer 168 umfaßt einen Teil A und einen Teil B, wobei der Teil A einen Code-Tester (A) 252 und einen Decodierer (A) 254, und Teil B einen Code-Tester (B) 256 und einen Decodierer (B) 258 umfaßt.
  • Die niederstwertigen 10 Bits jedes Codeworts (Z9:0) werden in Teil B des Decodierers 168 entlang des Eingangsbus 260 eingegeben. Der Code-Tester (B) 256 empfängt die gleichen 10 Codebits entlang des Eingangsbus 262, wobei jedoch die 10 Bits als WB9:0 bezeichnet werden. Der Code-Tester (B) 256 verwendet diese Eingangsbits, um mit der in obiger Tabelle 8 bereitgestellten Booleschen Gleichungen eine Ausgabe TB (264) zu erzeugen. Somit enthält der Code-Tester (B) 256 die gleiche Kombinationslogik wie der Code-Tester (B) 206 von 6. Die Code-Tester-Schaltung 206 kann von dem Codierer 150 und dem Decodierer 168 gemeinsam benutzt werden.
  • Die Ausgabe TB 264 wird in den Decodierer (B) 258 zusammen mit den zehn niederstwertigen Bits des Codeworts (Z9:0) eingegeben. Der Decodierer (B) 258 verwendet diese Eingaben, um Zustandsausgaben S0, S1 und S2 entlang Leitungen 266, 268 bzw. 270, und einen Indikator für ein ungültiges Codewort (FB) auf Leitung 272 und die acht niederstwertigen Bits (B7:0) des wiederhergestellten Datenworts entlang des Ausgabebus 274 zu erzeugen. Der Indikator für ein ungültiges Codewort FB ist einfach die Umkehrung von TB 264. Die Zustandsvariablen S0, S1 und S2 und die wiederhergestellten Datenbits B7:0 werden unter Verwendung der in Tabelle 10 gezeigten Booleschen Gleichungen erzeugt. TABELLE 10 10-Bit-Decodierer (DEC-B) Boolesche Gleichungen
    Figure 00280001
    TABELLE 10 10-Bit-Decodierer (DEC-B) Boolesche Gleichungen
    Figure 00290001
    Figure 00300001
  • Der Code-Tester (A) 252 empfängt entlang des Eingangsbus 276 die sieben höchstwertigen Bits des Codeworts, die als WA6:0 in dem Code-Tester (A) 252 dargestellt werden. Der Code-Tester (A) 252 verwendet die in Tabelle 6 gezeigten Booleschen Gleichungen zusammen mit den Eingangsbits, um die Ausgabe TA 278 zu erzeugen, die an den Decodierer (A) 254 geliefert wird. Somit enthält der Code-Tester (A) 252 die gleiche Kombinationslogik wie der Code-Tester (A) 202 von 6.
  • Der Decodierer (A) 254 empfängt ferner die höchstwertigen sieben Bits (Y6:0) des Codeworts entlang des Eingangsbus 280 und Zustandsvariablen S1, S1 und S2 vom Decodierer (B) 258 entlang Leitungen 266, 268 bzw. 270. Der Decodierer (A) 254 verwendet diese Eingangswerte, um die acht höchstwertigen Bits (A7:0) des wiederhergestellten Datenworts und einen Indikator für ein ungültiges Codewort FA entlang des Ausgangsbus 282 bzw. der Leitung 284 zu erzeugen. Der Indikator für ein ungültiges Codewort FA ist einfach das Umgekehrte von TA 278 vom Code-Tester (A) 252. Die wiederhergestellten Datenbits A7:0 werden unter Verwendung der in Tabelle 11 gezeigten Booleschen Gleichungen bestimmt.
  • TABELLE 11 7-Bit-Decodierer (A) Boolesche Gleichungen
    Figure 00310001
  • Figure 00320001
  • Zusammenfassend liefert ein Aspekt der Erfindung ein Verfahren zum Codieren aufeinanderfolgender Datenwörter 152 in aufeinanderfolgende Codewörter 153 zur Übertragung durch einen Kanal 160. Jedes der aufeinanderfolgenden Datenwörter 152 wird in erste und zweite Abschnitte A7:0 und B7:0 aufgeteilt. Der erste Abschnitt A7:0 jedes aufeinanderfolgenden Datenworts 152 wird in ein entsprechendes erstes Codemuster Y6:0 und eine entsprechende Zustandsvariable S0–S2 gemäß einem ausgewählten Code abgebildet. Der zweite Abschnitt B7:0 jedes aufeinanderfolgenden Datenworts 152 wird in ein entsprechendes zweites Codemuster Z9:0 abgebildet, das der Zustandsvariablen S0–S2 gemäß dem ausgewählten Code zugeordnet ist. Die ersten und zweiten Codemuster Y6:0 und Z9:0 werden kombiniert, um jedes der aufeinanderfolgenden Codewörter 153 zu bilden. Die aufeinanderfolgenden Codewörter 153 werden verkettet, um einen codierten Bitstrom mit einer Mehrzahl von Bitpositionen zu bilden. Ein Lauflängen-Constraint "k" wird dem ausgewählten Code auferlegt, so daß der codierte Bitstrom einen maximal möglichen Lauf von sieben aufeinanderfolgenden gleichen binären Symbolen in benachbarten der Mehrzahl von Bitpositionen aufweist. Ein Verschachtelungs-Constraint "i" wird dem ausgewählten Code auferlegt, so daß der codierte Bitstrom einen maximal möglichen Lauf von fünf aufeinanderfolgenden gleichen binären Symbolen in jeder zweiten der Mehrzahl von Bitpositionen aufweist.
  • Ein weiterer Aspekt der Erfindung bezieht sich auf einen Codierer 150 zum Codieren aufeinanderfolgender Datenwörter 152 in jeweilige aufeinanderfolgende Codewörter 153, die verkettet werden, um einen codierten Bitstrom zu bilden. Der Codierer 150 umfaßt einen m-Bit-Datenworteingang (A7:0,B7:0) zum Empfangen der aufeinanderfolgenden Datenwörter 152, einen n-Bit-Codewortausgang (Y6:0, Z9:0) und erste und zweite Codierer 204 und 206. Der erste Codierer 204 umfaßt einen mit dem m-Bit-Datenworteingang gekoppelten p-Bit-Datenworteingang A7:0, einen mit dem n-Bit-Codewortausgang gekoppelten u-Bit-Codewortausgang Y6:0 und einen Zustandsvariablen Ausgang S0–S2, Der zweite Codierer 208 umfaßt einen mit dem m-Bit-Datenworteingang gekoppelten q-Bit-Datenworteingang B7:0, einen mit dem n-Bit-Codewortausgang gekoppelten v-Bit-Codewortausgang Z9:0 und einen mit dem Zustandsvariablen-Ausgang gekoppelten Zustandsvariablen-Eingang, wobei m, n, p, u und v ganzzahlige Variable sind, und wobei p+q=m, u+v=n und u<p ist. Die ersten und zweiten Codierer 204 und 208 implementieren einen Code, der eine erste Anzahl aufeinanderfolgender gleicher binärer Symbole, die in einer Sequenz von benachbarten Bitpositionen in dem codierten Bitstrom 153 an dem n-Bit-Codewortausgang erscheinen, auf ein Maximum von sieben, und begrenzt eine zweite Anzahl von aufeinanderfolgenden gleichen binären Symbolen, die in Untersequenzen von Bitpositionen mit geraden bzw. ungeraden Indizes in dem codierten Bitstrom 153 an der n-Bit-Codewortausgabe erscheinen, auf ein Maximum von fünf.
  • Ein weiterer Aspekt der Erfindung bezieht sich auf einen Plattenlaufwerksspeicherkanal 148, der einen Wandler 110 und einen Schreibkanal 150, 155 und 156 umfaßt. Der Wandler 110 ist imstande, mit einer Datenspeicherplatte 106 zu kommunizieren. Der Schreibkanal 150, 155 und 156 ist mit dem Wandler 110 zum Codieren aufeinanderfolgender Datenwörter 152 in aufeinanderfolgende Codewörter 153 gemäß einem ausgewählten Code gekoppelt, um einen codierten Bitstrom 154 zu bilden, der dann vorcodiert und an den Wandler 110 als ein Kanaleingabe 158 angelegt wird. Der ausgewählte Code beschränkt die aufeinanderfolgenden Codewörter 153 , so daß es einen maximalen möglichen Lauf von sieben aufeinanderfolgenden gleichen binären Symbolen in benachbarten Bitpositionen in dem codierten Bitstrom und einen maximalen möglichen Lauf von fünf aufeinanderfolgenden gleichen binären Symbolen bei Bitpositionen mit geraden Indizes und Bitpositionen mit ungeraden Indizes in dem codierten Bitstrom 154 gibt.
  • Es ist zu verstehen, daß, obgleich zahlreiche Merkmale und Vorteile der verschiedenen Ausführungsformen der Erfindung in der vorangehenden Beschreibung zusammen mit Einzelheiten der Struktur und Funktion verschiedene Ausführungsformen der Erfindung dargestellt wurden, diese Offenbarung nur zur Verdeutlichung dient und Änderungen im Detail vorgenommen werden können. Dies gilt insbesondere bezüglich der Struktur und der Anordnung der Teile in den Prinzipien der Erfindung in dem vollen Ausmaß, das durch die breite allgemeine Bedeutung der Begriffe angegeben wird, in denen die beigefügten Ansprüche ausgedrückt sind. Beispielsweise können sich die besonderen Elemente abhängig von der besonderen Anwendung für das Codierverfahren und die Codiervorrichtung verändern, während im wesentlichen die gleichen Funktionalität beibehalten wird, ohne daß vom Schutzumfang der Erfindung abgewichen wird. Obgleich die hierin beschriebene bevorzugte Ausführungsform auf ein Codiersystem für ein Plattenlaufwerk gerichtet ist, ist es außerdem für den Fachmann offensichtlich, daß die Lehren der Erfindung auf weitere Systeme, wie beispielsweise Satellitenkommunikations- oder Zellulartelefonsysteme angewendet werden können, ohne daß vom Schutzumfang der Erfindung abgewichen wird. Verschiedene weitere Codes können ebenfalls verwendet werden, mehr als eine Codier- oder Decodiertabelle können zusammen verknüpft werden, zusätzliche oder unterschiedliche Zustandsnummern können verwendet werden, die an die Codierer oder Decodierer gelieferten Daten können aufgeteilt werden oder können sich wie gewünscht überlappen, etc.

Claims (9)

  1. Verfahren zum Codieren aufeinanderfolgender Datenwörter in aufeinanderfolgende Codewörter zur Übertragung durch einen Kanal, wobei das Verfahren folgende Schritte umfaßt: (a) Aufteilen jedes aufeinanderfolgenden Datenworts in erste und zweite Abschnitte; (b) Abbilden des ersten Abschnitts jedes aufeinanderfolgenden Datenworts in ein entsprechendes erstes Codemuster und eine entsprechende Zustandsvariable (c) Abbilden eines zweiten Abschnitts jedes aufeinanderfolgenden Datenworts in ein entsprechendes zweites Codemuster, das gemäß der Zustandsvariablen zugeordnet ist; (d) Kombinieren der ersten und zweiten Codemuster, um jedes der aufeinanderfolgenden Codewörter zu bilden; (e) Verketten der aufeinanderfolgenden Codewörter, um einen codierten Bitstrom mit einer Mehrzahl von Bitpositionen zu bilden; und (f) Auferlegen eines Lauflängen-Constraints, so daß der codierte Bitstrom einen maximal möglichen Lauf von sieben aufeinanderfolgenden gleichen binären Symbolen an benachbarten der Mehrzahl von Bitpositionen aufweist, und eines Verschachtelungs-Constraints, so daß der codierte Bitstrom einen maximal möglichen Lauf von fünf aufeinanderfolgenden gleichen binären Symbolen in jeder zweiten der Mehrzahl von Bitpositionen aufweist; wobei die Zustandsvariable so bestimmt wird, dass der Lauflängen-Constraint und der Verschachtelungs-Constraint in dem codierten Bitstrom erfüllt sind.
  2. Verfahren gemäß Anspruch 1, bei dem: die aufeinanderfolgenden Datenwörter jeweils m Bits umfassen, wobei m eine ganze Zahl ist; die aufeinanderfolgenden Codewörter jeweils n Bits umfassen, wobei n eine ganze Zahl und n=m+1 ist; der Aufteilungsschritt (a) ein Aufteilen jedes aufeinanderfolgenden Datenworts in einen entsprechenden ersten p-Bit-Abschnitt und einen zweiten q-Bit-Abschnitt umfaßt, wobei p und q ganzzahlige Variablen sind; der Abbildungsschritt (b) ein Abbilden des ersten p-Bit-Abschnitts in ein erstes u-Bit-Code-Muster umfaßt, wobei u eine ganzzahlige Variable und u<p ist; und der Abbildungsschritt (c) ein Abbilden des zweiten q-Bit-Abschnitts in ein zweites v-Bit-Code-Muster umfaßt, das der Zustandsvariablen zugeordnet ist.
  3. Verfahren gemäß Anspruch 2, bei dem m=16, n=17, p=8, q=8, u=7 und v=10 ist.
  4. Verfahren gemäß Anspruch 2, ferner mit folgenden Schritten: (g) Definieren einer Mehrzahl von v-Bit-Code-Mustern und Aufteilen der Mehrzahl von v-Bit-Code-Mustern in eine Mehrzahl von Sätzen; (h) Zuordnen jedes der Mehrzahl von Sätzen zu einer Mehrzahl von Zustandswerten, wobei die entsprechende Zustandsvariablen in dem Abbildungsschritt (b) einen der Mehrzahl von Zustandswerten aufweist, und wobei der zweite, q-Bit-Abschnitt in eines der Mehrzahl von v-Bit-Code-Mustern in dem dem Zustandswert von Schritt (b) zugeordneten Satz abgebildet wird.
  5. Verfahren gemäß Anspruch 4, bei dem v=10 ist und bei dem: der Definitionsschritt (g) ein Aufteilen der Mehrzahl von v-Bit-Code-Mustern in erste, zweite und dritte Sätze umfaßt; und der Zuordnungsschritt (h) ein Zuordnen der ersten, zweiten und dritten Sätze zu ersten, zweiten bzw. dritten Zustandswerten umfaßt.
  6. Codierer zum Codieren aufeinanderfolgender Datenwörter in jeweilige aufeinanderfolgende Codewörter, die verkettet sind, um einen codierten Bitstrom zu bilden, gemäß einem Verfahren nach einem der Ansprüche 1 bis 5, wobei der Codierer umfaßt: einen m-Bit-Datenwort-Eingang zum Empfangen der aufeinanderfolgenden Datenwörter; einen n-Bit-Codewort-Ausgang; einen ersten Codierer, der einen mit dem m-Bit-Datenwort-Eingang gekoppelten p-Bit-Datenwort-Eingang, ein mit dem n-Bit-Codewort-Ausgang gekoppelten u-Bit-Codewort-Ausgang und einen Zustandsvariablen-Ausgang umfaßt; einen zweiten Codierer, der einen mit dem m-Bit-Datenwort-Eingang gekoppelten q-Bit-Datenwort-Eingang, einen mit dem n-Bit-Codewort-Ausgang gekoppelten v-Bit-Codewort-Ausgang und einen mit dem Zustandsvariablen-Ausgang gekoppelten Zustandsvariablen-Eingang umfaßt, wobei m, n, p, q, u und v ganzzahlige Variable sind, und wobei p+q=m, u+v=n und u<p ist; und einen Code, der durch die ersten und zweiten Codierer implementiert ist und der eine erste Anzahl aufeinanderfolgender gleicher binärer Symbole, die in einer Sequenz benachbarter Bitpositionen in dem codierten Bitstrom an dem n-Bit-Codewort-Ausgang erscheinen, auf ein Maximum vor sieben begrenzt, und eine zweite Anzahl aufeinanderfolgender gleicher binärer Symbole, die in Untersequenzen an Bitpositionen mit geraden bzw. ungeraden Indizes in dem codierten Bitstrom an dem n-Bit-Codewort-Ausgang erscheinen, auf ein Maximum von fünf begrenzt.
  7. Codierer gemäß Anspruch 7, bei dem m=16, n=17, p=8, q=8, u=7 und v=10 ist.
  8. Codierer gemäß Anspruch 7, bei dem v=10 ist und der Code erste, zweite und dritte Sätze eindeutiger v-Bit-Codemuster definiert, und bei dem die ersten, zweiten und dritten Sätze jeweils einem ersten Zustandswert, einem zweiten Zustandswert und einem dritten Zustandswert zugeordnet sind.
  9. Plattenlaufwerk mit einem Speicherkanal mit: einem Wandler, der imstande ist, mit einer Datenspeicherplatte zu kommunizieren; einem Kanal, der mit dem Wandler gekoppelt ist, wobei der Kanal mit einem Codierer, zum Codieren aufeinanderfolgender Datenwörter in aufeinanderfolgende Codewörter gemäß einem Verfahren nach einem der Ansprüche 1 bis 5 gekoppelt ist, um einen codierten Bitstrom zu bilden, der dann vorcodiert und an den Wandler als eine Kanaleingabe angelegt wird; und ein mit dem Wandler gekoppelter Decodierer zum Decodieren der von dem Wandler empfangenen aufeinanderfolgenden Codewörter in aufeinanderfolgende Datenwörter enthält.
DE19983344T 1998-06-24 1999-06-10 Effizienter lauflängenbegrenzter Code mit einer kurzen verschachtelten Randbedingung Expired - Fee Related DE19983344B4 (de)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US9054698P 1998-06-24 1998-06-24
US60/090,546 1998-06-24
US09/330,114 US6198582B1 (en) 1998-06-24 1999-06-10 Efficient run length limited code with short interleaved constraint
US09/330,114 1999-06-10
PCT/US1999/013126 WO1999067784A1 (en) 1998-06-24 1999-06-10 Efficient run length limited code with short interleaved constraint

Publications (2)

Publication Number Publication Date
DE19983344T1 DE19983344T1 (de) 2002-07-11
DE19983344B4 true DE19983344B4 (de) 2005-02-10

Family

ID=26782398

Family Applications (1)

Application Number Title Priority Date Filing Date
DE19983344T Expired - Fee Related DE19983344B4 (de) 1998-06-24 1999-06-10 Effizienter lauflängenbegrenzter Code mit einer kurzen verschachtelten Randbedingung

Country Status (7)

Country Link
US (1) US6198582B1 (de)
JP (1) JP3478800B2 (de)
KR (1) KR100406806B1 (de)
CN (1) CN1306665A (de)
DE (1) DE19983344B4 (de)
GB (1) GB2355166B (de)
WO (1) WO1999067784A1 (de)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6981197B2 (en) * 2001-01-23 2005-12-27 Seagate Technology Llc Enhanced interleave type error correction method and apparatus
GB0007781D0 (en) * 2000-03-30 2000-05-17 Sony Uk Ltd Data compression
US6480125B2 (en) * 2000-06-09 2002-11-12 Seagate Technology Llc Method and apparatus for efficient encoding of large data words at high code rates
FR2821458A1 (fr) * 2001-02-28 2002-08-30 Koninkl Philips Electronics Nv Schema, procede d'analyse syntaxique et procede de generation d'un flux binaire a partir d'un schema
GB2392069A (en) * 2001-06-09 2004-02-18 Samsung Electronics Co Ltd Rearranging codeword sequences for prioritising the mapping of bits
US6909385B2 (en) * 2001-07-09 2005-06-21 Seagate Technology Llc Method and apparatus for suppressing low frequency content in digital data
US6839004B2 (en) 2001-11-27 2005-01-04 Seagate Technology Llc High rate run length limited code
US6674375B2 (en) 2002-06-07 2004-01-06 Seagate Technology Llc Run length limited coding with minimal error propagation
GB2423402B (en) 2002-07-19 2007-01-03 Gatekeeper Systems Improvements relating to security and electronic article surveillance
WO2005020440A1 (en) * 2003-08-13 2005-03-03 Seagate Technology Llc Dc-free code design with increased distance between code words
US6897793B1 (en) * 2004-04-29 2005-05-24 Silicon Image, Inc. Method and apparatus for run length limited TMDS-like encoding of data
US7002492B2 (en) * 2004-07-07 2006-02-21 Seagate Technology Llc High rate running digital sum-restricted code
US7142134B2 (en) * 2005-02-01 2006-11-28 Hitachi Global Storage Technologies Netherlands B.V. Techniques for generating modulation codes using running substitutions
GB2506159A (en) * 2012-09-24 2014-03-26 Ibm 2 Stage RLL coding, standard coding with global/interleave constraints, then sliding window substitution with sequences having different constraints

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4707681A (en) * 1986-04-24 1987-11-17 International Business Machines Corporation Method and apparatus for implementing optimum PRML codes
US4855742A (en) * 1986-12-12 1989-08-08 Optical Storage International Holland Method of transmitting n-bit information words, information transmission system for carrying out the method, and encoding device and decoding device for use in the information-transmission system
EP0751522A2 (de) * 1995-06-30 1997-01-02 Quantum Corporation Modulationskode mit dem Verhältnis von 16/17 (d=0, G=6/I=7) für einen magnetischen Aufzeichnungskanal

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5537112A (en) * 1994-01-12 1996-07-16 Seagate Technology, Inc. Method and apparatus for implementing run length limited codes in partial response channels
US5757822A (en) * 1995-08-24 1998-05-26 Quantum Corporation Bit-interleaved rate 16/17 modulation code with three-way byte-interleaved ECC
KR19980011319U (ko) * 1996-08-19 1998-05-25 양재신 타이어의 미끄럼 방지장치
US5757294A (en) * 1996-12-31 1998-05-26 Quantum Corporation Rate 24/25 modulation code for PRML recording channels

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4707681A (en) * 1986-04-24 1987-11-17 International Business Machines Corporation Method and apparatus for implementing optimum PRML codes
US4855742A (en) * 1986-12-12 1989-08-08 Optical Storage International Holland Method of transmitting n-bit information words, information transmission system for carrying out the method, and encoding device and decoding device for use in the information-transmission system
EP0751522A2 (de) * 1995-06-30 1997-01-02 Quantum Corporation Modulationskode mit dem Verhältnis von 16/17 (d=0, G=6/I=7) für einen magnetischen Aufzeichnungskanal

Also Published As

Publication number Publication date
GB0031105D0 (en) 2001-01-31
GB2355166A (en) 2001-04-11
JP3478800B2 (ja) 2003-12-15
DE19983344T1 (de) 2002-07-11
GB2355166B (en) 2003-12-31
WO1999067784A1 (en) 1999-12-29
KR100406806B1 (ko) 2003-11-21
CN1306665A (zh) 2001-08-01
JP2002519799A (ja) 2002-07-02
KR20010053164A (ko) 2001-06-25
US6198582B1 (en) 2001-03-06

Similar Documents

Publication Publication Date Title
DE19983344B4 (de) Effizienter lauflängenbegrenzter Code mit einer kurzen verschachtelten Randbedingung
DE69701453T2 (de) Modulationscode mit dem verhältnis 24/25 für prml-aufzeichnungskanäle
US5537112A (en) Method and apparatus for implementing run length limited codes in partial response channels
US5731768A (en) Method and apparatus for implementing codes with maximum transition run length
DE69609509T2 (de) Trelliskodierung mit verminderter fehlerverbreitung
US6643814B1 (en) Maximum transition run encoding and decoding systems
DE69612293T2 (de) Bitverschachtelter 16/17-modulationscode mit dreiwege-byteverschachteltem fehlerkorrekturcode
KR100236358B1 (ko) 자기 디스크 장치의 트랙 어드레스 패턴
DE3888418T2 (de) PRML-Kodierung.
DE19781914C2 (de) System zum Implementieren von lauflängenbegrenzten Codes
DE69612955T4 (de) Verfahren zur umwandlung von m-bit-informationsworten in ein moduliertes signal, verfahren zur herstellung eines aufzeichnungsträgers, codiervorrichtung, vorrichtung, aufzeichnungsvorrichtung, signal sowie aufzeichnungsträger
EP0344903A2 (de) Coderegel-Verletzungsumsetzer für einen (d,k) Code
JPS6217418B2 (de)
KR100506070B1 (ko) 고밀도데이터의기록/재생을위한부호화/복호화방법
JP2001060872A (ja) データ符号化システム
DE69328642T2 (de) Datenumsetzungsverfahren und Aufzeichnungs-/Wiedergabegerät zur Durchführung desselben
KR20060088060A (ko) 쇼트 블록 인코더를 이용하여 데이터를 변조하는 방법
US8276038B2 (en) Data storage systems
DE60008624T2 (de) Detektorschaltung und Verfahren zur Fehlerunterdrückung
KR20010022800A (ko) 시변화 제약을 갖는 코드를 사용하는 채널을 위한 스태틱 비터비 검출기
DE69326664T2 (de) Plattenlaufwerk mit Erfassung von &#34;PRML class IV&#34;-kodierten Daten und digitaler selbstanpassender Entzerrung
JP2003533120A (ja) 二進情報信号のデータビットストリームを制限された二進チャンネル信号のデータビットストリームに変換する方法、符号化する装置、制限された二進チャンネル信号のデータビットストリームを有する信号、記録担体、復号する方法及び復号する装置
EP1695350B1 (de) Datenspeicherungssystem
DE69613792T2 (de) Datenkodierung mit einer variablem blocklänge
KR100571743B1 (ko) 통신 채널

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8607 Notification of search results after publication
8139 Disposal/non-payment of the annual fee
8170 Reinstatement of the former position
8139 Disposal/non-payment of the annual fee
8170 Reinstatement of the former position
8364 No opposition during term of opposition
8339 Ceased/non-payment of the annual fee