Doch wie werden die Bits und Bytes in magnetische Form gebracht? Die 0- und 1-Informationen werden auf verschiedene Codierungsarten in verschieden gerichtete Magnetpartikel umgesetzt. Die Ausrichtung links/rechts könnte dabei beispielsweise dem magnetischen Nord-/Südpol entsprechen. Der Schreib-/Lesekopf besitzt dazu eine Spule. Wird diese Spule von Strom durchflossen, so bildet sich ein je nach Stromrichtung anders ausgerichtetes Magnetfeld, welches die Plattenoberfläche entsprechend magnetisiert. Da auch Festplatten nie hunderprozentig gleich laufen, müssen zusätzlich zu den Daten sogenannte Taktinformationen gespeichert werden. Diese sichern, daß immer mit gleicher Geschwindigkeit gelesen und geschrieben wird, indem etwaige Abweichungen durch eine Änderung der Dreh-zahl korrigiert werden (man stelle sich nur das Chaos vor, wenn jeder Sektor unterschiedlich lang wäre). Werden die Taktinformationen, mit den zu speichernden Daten verknüpft, auf jeder Plattenoberfläche gespeichert, so spricht man von einem »Embedded Sector Servo«, daß heißt, die Informationen für den Gleichlauf der Festplatte sind in die Datensektoren eingebettet. Man kann jedoch eine Oberfläche des Plattenstapels ausschließlich für diese Taktinformationen verwenden, während alle anderen nur für Daten genutzt werden.
Erstere Methode eleganter und wird auch meist vorgezogen. Würden sich ständig 0- und 1-Bits abwechseln, so könnte man auf einen separaten Takt verzichten und beispielsweise die 1 zur Synchronisation verwenden. Probleme bereiten dabei aber längere Folgen von gleichen Bits (zum Beispiel 000 oder 111111). Diese sogenannten Läufe englisch Runs) stellen besonders hohe Anforderungen an den Gleichlauf. Die beschriebenen Codierungsarten verwenden hier unterschiedliche Methoden, um nicht aus dem Takt zu geraten.
NRZ-Verfahren
Am Anfang war das NRZ-Verfahren (NRZ = Non Return to Zero). Hierbei wird die Magnetisierung nur gewechselt, wenn auch bei den Datenbits ein Wechsel von 0 nach 1 oder umgekehrt erfolgt (Bild 4). Folgen mehrere gleiche Bits, bleibt der Schreibstrompegel bestehen. Bei aufeinanderfolgenden 1-Bits bleibt der Schreibstrom konstant auf high (1), ohne zwischendurch zu low (0) zurückkehren, was dem Verfahren seinen Namen gab. Die Pegel des Schreibstroms entsprechen exakt dem Verlauf des digitalen Datensignals, also den zu speichernden Bits. Leider hat dieses an sich sehr einfache Verfahren einen großen Nachteil: Da beliebig lange 0- beziehungsweise 1-Läufe auftreten können, sind die Gleichlauf-Anforderungen besonders hoch, schließlich enthält die zu schreibende Bitfolge keinerlei Taktinformationen (also kein Embedded Sector Servo). Die Taktsignale müssen daher auf einer separaten Oberfläche des Plattenstapels untergebracht werden, die somit für Daten blockiert ist.
FM-Verfahren
Das Frequenzmodulationsverfahren FM (Frequency Modulation) integierte erstmals die Taktinformationen. Die Datenbits werden hierzu in eine FM-Bitfolge umgesetzt, da ja der Takt hinzugefügt werden muß. Dabei wird aus einer 1 Die Bitfolge 11 und aus einer 0 die Folge 10. Die erste Ziffer dient dabei als Taktinformation, und die zweite stellt das jeweilige Datenbit dar. Der Verlauf der Schreibstromkurve in Bild 6 läßt sich nun wie folgt beschreiben: Enthält eine Bitzelle (eine Bitzelle enthält ein Datenbit und eventuell Taktinformationen) die FM-Bitfolge »10«, so bedeutet dies »Schreibstrom halten«. Die Bitfolge »11« bedeutet demnach »Schreibstrom wechseln«, un der Schreibstrompegel wird innerhalb der Bitzelle gewechselt. Die erste Ziffer gibt also den Schreibstrompegel zu Beginn der Bitzelle an, und die zweite den Pegel am Ende (jeweils an der gestrichelten Linie). Wie in Bild 5 zu sehen ist, entstehen dabei viele kleine verschiedene magnetisierte Bereiche. Da der Abstand »d« zwischen zwei Flußwechseln nicht beliebig klein sein kann, ist der Schreibdichte eine deutliche Grenze gesetzt. Zusätzlich ist dieses Verfahren relativ platzintensiv, da in jeder Bitzelle Taktinformationen gespeichert sind. Aufgrund dieser Tatsache bezeichnet man die FM-Codierung oft auch als Single-Density-Format, also als Format mit einfacher Schreibdichte.
MFM-Verfahren
Die Weiterentwicklung des FM-Verfahrens ließ nicht lange auf sich warten. Das modifizierte Frequenzmodulationsverfahren MFM (Modified Frequency Modulation) brachte eine Ver-dopplung der Speicherkapazität. Der Takt wird hier nur in einer Bitzelle gespeichert, wenn die Zelle selbst und die vorhergehende keine 1 enthalten. Aus einem 1-Datenbit wird somit die MFM-Folge 01, und aus einer 0 die Folge 00. Ging dieser Bitzelle allerdings schon eine Zelle mit 00 voran, so wird aus dem zweiten 0-Datenbit eine 10, um den Lesetakt stabil zu halten. Vor jeder 1 der MFM-Bitfolge erfolgt nun ein Wechsel des Schreibstromsignals.
Die verschiedenen Magnetisierungszonen werden deutlich weniger und insgesamt größer (Bild 6). Während das FM-Verfahren zwölf Flußwechsel zur Codierung der Bitfolge des Beispiels verwendet, benötigt das MFM-Verfahren nur noch sechs Flußwechsel, was die oben angesprochene Kapazitätsverdopplung bestätigt. Besonders die ersten ST506/412-Festplatten verwenden diese Aufzeichnungsmethode, bei der jeweils 17 Sektoren auf einer Spur unter-gebracht werden. Da die Geschwindigkeit des Verfahrens nicht allzu hoch ist, entwickelten die Hersteller ein weiteres.
RLL-Verfahren
Ziel des RLL-Verfahrens ist es, die Länge der »0«-Läufe zu begrenzen. RLL steht für Run-Length-Limited, das bedeutet Lauflängenbegrenzung. Beim hier betrachteten RLL-(2,7)-Ver-fahren liegen zwischen zwei 1-Bits mindestens zwei und höchstens sieben 0-Bits. Neuartig an diesem Verfahren ist, daß erstmals auch die auf das zu codierende Datenbit folgenden Bits der sogenannte Kontext, beim eigentlichen Codierungsverfahren berücksichtigt werden. Die Tabelle zeigt, wie aus den Datenbits die RLL-Bitfolge entsteht.
Die in Bild 7 dargestellte Bitfolge wird demnach in drei Schritten übersetzt. Aus 11 wird im RLL-Code 0100, und aus den beiden folgenden 010 wird jeweils 001000. Die Datenbits 11010010 sind also zur RLL-Bitfolge 0100001000001000 geworden, aus ursprünglich 8 Bit werden nun 16. Auffällig sind allerdings die recht zahlreich vertretenen 0-Bits. Der Schreibstrom wechselt, wie schon bei MFM, vor jedem 1-Bit der RLL-Folge. Es entstehen vier Magnetisierungszellen. Zunächst erscheint es paradox, daß RLL Platz sparen soll, sind doch aus 8 auf einmal 16 Bit geworden. Noch einmal soll wiederholt werden, daß die Flußwechsel in der Magnetschicht einen bestimmten Abstand nicht unterschreiten können. Nun folgt der eigentliche Trick: Da beim RLL-(2,7)- Verfahren auf ein 1-Bit wenigstens zwei 0-Bits folgen läßt sich die Aufzeichnungsdichte dadurch steigern, daß man die Bitfolge »001« auf dem kleinsten Stück aufzeichnet. Geht man also von Datenbits aus, so kann man 1,5 dieser Datenbits auf dem minimalen Stück unterbringen, statt wie sonst nur 1 Datenbit. Somit erklärt sich der 50prozentige Platzgewinn von RLL-(2,7) gegenüber der MFM-Codierung. Angewendet wird dieses Verfahren zum Beispiel bei neueren ST506/412-Platten und auch bei den neuen IDE-Modellen. Man sollte sich allerdings nicht über Angaben wie RLL-(1,7) wundern, denn hierbei handelt es sich nur um eine Abwandlung des hier beschriebenen RLL-(2,7)-Verfahren, bei dem auf ein 1-Bit wenigstens eine 0 folgt, anstatt mindestens zwei.
Bit Kontext RLL-(2,7)-Code
1 0 10 00
1 1 01 00
0 00 10 0100
0 10 00 1000
0 11 00 0100
0 010 00 001000
0 011 00 100100
|