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örternInfo
- 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
Links
- 238000000034 method Methods 0.000 claims abstract description 40
- 238000001514 detection method Methods 0.000 claims description 19
- 230000004044 response Effects 0.000 claims description 12
- 238000013507 mapping Methods 0.000 claims description 6
- 238000013500 data storage Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 abstract description 14
- 208000027418 Wounds and injury Diseases 0.000 description 10
- 230000006378 damage Effects 0.000 description 9
- 230000006870 function Effects 0.000 description 9
- 208000014674 injury Diseases 0.000 description 9
- 238000005070 sampling Methods 0.000 description 6
- 238000013461 design Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000010276 construction Methods 0.000 description 3
- 238000012937 correction Methods 0.000 description 3
- 230000004907 flux Effects 0.000 description 3
- 230000007704 transition Effects 0.000 description 3
- 238000007476 Maximum Likelihood Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 210000002445 nipple Anatomy 0.000 description 2
- 230000003252 repetitive effect Effects 0.000 description 2
- 101710162828 Flavin-dependent thymidylate synthase Proteins 0.000 description 1
- 240000008881 Oenanthe javanica Species 0.000 description 1
- 101710135409 Probable flavin-dependent thymidylate synthase Proteins 0.000 description 1
- 238000010521 absorption reaction Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 230000005415 magnetization Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000012827 research and development Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 230000003595 spectral effect Effects 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- VIFIHLXNOOCGLJ-UHFFFAOYSA-N trichloro(3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,10-heptadecafluorodecyl)silane Chemical compound FC(F)(F)C(F)(F)C(F)(F)C(F)(F)C(F)(F)C(F)(F)C(F)(F)C(F)(F)CC[Si](Cl)(Cl)Cl VIFIHLXNOOCGLJ-UHFFFAOYSA-N 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 238000004804 winding Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M5/00—Conversion of the form of the representation of individual digits
- H03M5/02—Conversion to or from representation by pulses
- H03M5/04—Conversion to or from representation by pulses the pulses having two levels
- H03M5/14—Code 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/145—Conversion to or from block codes or representations thereof
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B5/00—Recording by magnetisation or demagnetisation of a record carrier; Reproducing by magnetic means; Record carriers therefor
- G11B5/02—Recording, reproducing, or erasing methods; Read, write or erase circuits therefor
- G11B5/09—Digital recording
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/10009—Improvement or modification of read or write signals
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/10009—Improvement or modification of read or write signals
- G11B20/10046—Improvement or modification of read or write signals filtering or equalising, e.g. setting the tap weights of an FIR filter
- G11B20/10055—Improvement 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
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
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.
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.
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.
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.
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.
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.
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.
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.
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)
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 |
US6661356B1 (en) | 2001-03-05 | 2003-12-09 | Marvell International, Ltd. | Method and apparatus for DC-level constrained coding |
US7286065B1 (en) | 2001-03-05 | 2007-10-23 | Marvell International Ltd. | Method and apparatus for DC-level constrained coding |
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 |
US7116736B2 (en) | 2002-01-02 | 2006-10-03 | International Business Machines Corporation | Method, system, and program for synchronization and resynchronization of a data stream |
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 |
US9178534B2 (en) * | 2012-05-29 | 2015-11-03 | International Business Machines Corporation | Methods for partial reverse concatenation for data storage devices using composite codes |
US9558782B2 (en) | 2012-05-29 | 2017-01-31 | International Business Machines Corporation | Partial reverse concatenation for data storage devices using composite codes |
Family Cites Families (6)
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 |
-
1998
- 1998-03-13 US US09/042,243 patent/US6184806B1/en not_active Expired - Lifetime
-
1999
- 1999-03-15 JP JP06894299A patent/JP4159169B2/ja not_active Expired - Fee Related
- 1999-03-15 GB GB9905837A patent/GB2337909B/en not_active Expired - Fee Related
- 1999-03-15 DE DE19911470A patent/DE19911470B4/de not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
GB2337909B (en) | 2003-07-16 |
JPH11355144A (ja) | 1999-12-24 |
US6184806B1 (en) | 2001-02-06 |
JP4159169B2 (ja) | 2008-10-01 |
GB9905837D0 (en) | 1999-05-05 |
DE19911470B4 (de) | 2005-02-03 |
GB2337909A (en) | 1999-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3923165C2 (de) | ||
DE69701453T2 (de) | Modulationscode mit dem verhältnis 24/25 für prml-aufzeichnungskanäle | |
DE69524525T2 (de) | Optimierung der Schreibprekompensation bei einem PRML-Kanal | |
DE69108418T2 (de) | Verfahren und Gerät zur Aufzeichnung von Datenübergängen. | |
DE69030490T2 (de) | Aufzeichnungsvorrichtung zum umkehrbaren Speichern von digitalen Daten auf einem Mehrspuren-Aufzeichnungsträger, Dekodiervorrichtung, Informationswiedergabegerät für die Verwendung mit einem solchen Aufzeichnungsträger und Aufzeichnungsträger für die Verwendung mit einer solchen Aufzeichnungsvorrichtung, mit einer solchen Dekodiervorrichtung und/oder mit einem solchen Informationswiedergabegerät | |
DE69031294T2 (de) | Einrichtung und Verfahren zur Fehlererkennung und Fehlerkorrektur | |
DE19911470B4 (de) | Verfahren und Vorrichtung zum Codieren und Decodieren einer Sequenz von digitalen Datenwörtern | |
DE3225058C2 (de) | ||
DE3886697T2 (de) | Datenspeichergerät. | |
DE10031862A1 (de) | Verfahren zum Vermindern des Datenaufwandes in einem PRML-Datenkanal | |
DE69321746T2 (de) | Datenmodulations und -demodulationsverfahren und -vorrichtung | |
DE69805591T2 (de) | Kodier-/Dekodierverfahren für Datenaufzeichnung und -wiedergabe mit hoher Dichte | |
DE69415756T2 (de) | Fehlerkorrektur für digitale Videodaten | |
DE2944403C2 (de) | ||
DE3888126T2 (de) | Gerät und Methode zur Aufzeichnung eines digitalen Signals. | |
DE3822388A1 (de) | Plattenfoermiges aufzeichnungsmedium mit festwertspeicher-spuren, beschreibbaren bereichen und mit antriebseinrichtung | |
DE69329401T2 (de) | Digitalsignalumwandlungsgerät | |
DE2513922A1 (de) | Pulscodemodulations-aufnahme- und -wiedergabegeraet | |
DE3875838T2 (de) | Geraet zur wiedergabe von digitalen signalen. | |
DE3241950C2 (de) | ||
DE69016557T2 (de) | Informationsdatenaufzeichnungs-/wiedergabegerät. | |
DE69717405T2 (de) | Verfahren und gerät zur spurweisen impulsfehlerkorrektur in einem mehrspurigen speicherformat | |
DE69013618T2 (de) | Informationsaufzeichnungs- und -leseanordnung, Informationsaufzeichnungsanordnung sowie Aufzeichnungsträger, der mittels einer dieser Anordnungen erhalten wird. | |
DE3604374C2 (de) | ||
DE4442421A1 (de) | Drehkopfaufzeichnungs- und -wiedergabevorrichtung mit Speicher und Verfahren zum Vermeiden von Drop-In- und Drop-Out-Fehlern |
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 |