Zylinder-Kopf-Sektor

Schematische Darstellung der Festplattengeometrie

CHS-Adressierung ist der Prozess der Identifizierung einzelner Sektoren (auch physischer Datenblöcke) auf einer Festplatte durch ihre Position in einer Spur, wobei die Spur durch die Kopf- und Zylindernummern bestimmt wird. Die Begriffe werden von unten nach oben erklärt; bei der Plattenadressierung ist der Sektor die kleinste Einheit. Plattencontroller können Adressübersetzungen einführen, um logische auf physikalische Positionen abzubilden, z.B. speichert die Zonenbitaufzeichnung weniger Sektoren in kürzeren (inneren) Spuren, physikalische Plattenformate sind nicht notwendigerweise zylindrisch, und die Sektornummern in einer Spur können schief sein.

SektorenBearbeiten

Floppy-Disketten und Controller verwenden physikalische Sektorgrößen von 128, 256, 512 und 1024 Bytes (z.B., PC/AX), wobei sich in den 1980er Jahren Formate mit 512 Byte pro physikalischem Sektor durchsetzten.

Die gängigste physikalische Sektorgröße für Festplatten ist heute 512 Byte, aber es gab auch Festplatten mit 520 Byte pro Sektor für nicht-IBM-kompatible Maschinen. Im Jahr 2005 verwendeten einige kundenspezifische Festplatten von Seagate Sektorgrößen von 1024 Byte pro Sektor. Advanced-Format-Festplatten verwenden seit 2010 4096 Byte pro physikalischem Sektor (4Kn), können aber für eine Übergangszeit auch 512-Byte-Sektoren (512e) emulieren.

Magnetisch-optische Laufwerke verwenden Sektorgrößen von 512 und 1024 Byte auf 5.25-Zoll-Laufwerken und 512 und 2048 Byte auf 3,5-Zoll-Laufwerken.

Bei der CHS-Adressierung beginnen die Sektornummern immer bei 1, es gibt keinen Sektor 0, was zu Verwirrung führen kann, da logische Sektoradressierungsschemata typischerweise mit 0 zu zählen beginnen, z.B., logische Blockadressierung (LBA) oder „relative Sektoradressierung“, die in DOS verwendet wird.

Für physische Plattengeometrien wird die maximale Sektoranzahl durch das Low-Level-Format der Platte bestimmt. Für den Plattenzugriff mit dem BIOS von IBM-PC-kompatiblen Maschinen wurde die Sektornummer jedoch in sechs Bits kodiert, was zu einer maximalen Anzahl von 111111 (63) Sektoren pro Spur führte. Dieses Maximum wird noch immer für virtuelle CHS-Geometrien verwendet.

SpurenBearbeiten

Die Spuren sind die dünnen konzentrischen kreisförmigen Streifen von Sektoren. Zum Lesen einer einzelnen Spur ist mindestens ein Kopf erforderlich. In Bezug auf die Plattengeometrie sind die Begriffe Spur und Zylinder eng miteinander verwandt. Für eine ein- oder doppelseitige Diskette ist Spur der gebräuchliche Begriff, und für mehr als zwei Köpfe ist Zylinder der gebräuchliche Begriff. Streng genommen ist eine Spur eine bestimmte CH Kombination, die ausSPT Sektoren besteht, während ein Zylinder ausSPT×H Sektoren besteht.

ZylinderBearbeiten

Ein Zylinder ist eine Unterteilung von Daten in einem Diskettenlaufwerk, wie sie im CHS-Adressierungsmodus einer Fixed Block Architecture-Diskette oder im Zylinder-Kopf-Rekord-Adressierungsmodus (CCHHR) einer CKD-Diskette verwendet wird.

Das Konzept besteht in konzentrischen, hohlen, zylindrischen Scheiben durch die physischen Platten (Platters), die die jeweiligen kreisförmigen Spuren sammeln, die durch den Stapel von Platters ausgerichtet sind. Die Anzahl der Zylinder eines Plattenlaufwerks entspricht genau der Anzahl der Spuren auf einer einzigen Fläche im Laufwerk. Sie umfasst dieselbe Spurnummer auf jeder Platte und erstreckt sich über alle Spuren auf jeder Plattenoberfläche, auf der Daten gespeichert werden können (ohne Rücksicht darauf, ob die Spur „schlecht“ ist oder nicht). Zylinder werden vertikal durch Spuren gebildet. Mit anderen Worten, Spur 12 auf Platte 0 plus Spur 12 auf Platte 1 usw. ist Zylinder 12.

Andere Formen von Direct Access Storage Device (DASD), wie Trommelspeichergeräte oder die IBM 2321 Data Cell, können Blöcken Adressen geben, die eine Zylinderadresse enthalten, obwohl die Zylinderadresse keine (geometrische) zylindrische Scheibe des Gerätes auswählt.

KöpfeBearbeiten

Ein Gerät, das als Kopf bezeichnet wird, liest und schreibt Daten in einem Festplattenlaufwerk, indem es das magnetische Medium manipuliert, das die Oberfläche eines zugehörigen Plattentellers ausmacht. Natürlich hat eine Platte 2 Seiten und damit 2 Oberflächen, auf denen Daten manipuliert werden können; normalerweise gibt es 2 Köpfe pro Platte, einen pro Seite. (Manchmal wird der Begriff „Seite“ durch „Kopf“ ersetzt, da die Platten von ihren Kopfbaugruppen getrennt werden können, wie bei den Wechselmedien eines Diskettenlaufwerks.)

Die CHS-Adressierung, die in IBM-PC-kompatiblen BIOSen unterstützt wurde, verwendete acht Bits für – theoretisch bis zu 256 Köpfe, die als Kopf 0 bis 255 (FFh) gezählt wurden. Ein Fehler in allen Versionen von Microsoft DOS/IBM PC DOS bis einschließlich 7.10 führt jedoch dazu, dass diese Betriebssysteme beim Booten abstürzen, wenn sie auf Datenträger mit 256 Köpfen treffen. Daher verwenden alle kompatiblen BIOSe nur Mappings mit bis zu 255 Köpfen (00h..FEh), auch in virtuellen 255×63 Geometrien.

Diese historische Merkwürdigkeit kann die maximale Plattengröße in altem BIOS INT 13h Code sowie altem PC DOS oder ähnlichen Betriebssystemen beeinflussen:

(512 bytes/sector)×(63 sectors/track)×(255 heads (tracks/cylinder))×(1024 cylinders)=8032.5 MB, aber eigentlich 512×63×256×1024=8064 MB ergibt das, was als 8 GB Grenze bekannt ist. Die in diesem Zusammenhang relevante Definition von 8 GB = 8192 MB ist eine weitere falsche Grenze, denn sie würde CHS 512×64×256 mit 64 Sektoren pro Spur erfordern.

Spuren und Zylinder werden von 0 an gezählt, d.h. Spur 0 ist die erste (äußerste) Spur auf Disketten oder anderen zylindrischen Platten. Der alte BIOS-Code unterstützte zehn Bits bei der CHS-Adressierung mit bis zu 1024 Zylindern (1024=210). Wenn man sechs Bits für Sektoren und acht Bits für Köpfe addiert, erhält man die 24 Bits, die vom BIOS-Interrupt 13h unterstützt werden. Die Subtraktion der unzulässigen Sektornummer 0 in 1024×256 Spuren entspricht 128 MB für eine Sektorgröße von 512 Bytes (128 MB=1024×256×(512 byte/sector)); und 8192-128=8064 bestätigt die (ungefähre) 8-GB-Grenze.

CHS-Adressierung beginnt bei 0/0/1 mit einem Maximalwert 1023/255/63 für 24=10+8+6 Bits oder 1023/254/63 für 24 Bits, die auf 255 Köpfe begrenzt sind. CHS-Werte, die zur Angabe der Geometrie eines Datenträgers verwendet werden, müssen Zylinder 0 und Kopf 0 zählen, was einen Höchstwert von (1024/256/63 oder) 1024/255/63 für 24 Bits mit (256 oder) 255 Köpfen ergibt. In CHS-Tupeln, die eine Geometrie angeben, bedeutet S eigentlich Sektoren pro Spur, und wenn die (virtuelle) Geometrie noch mit der Kapazität übereinstimmt, enthält die Platte C×H×S Sektoren. Mit dem Aufkommen größerer Festplatten wurde auch ein Zylinder zu einer logischen Plattenstruktur, die auf 16 065 Sektoren (16065=255×63) standardisiert ist.

Die CHS-Adressierung mit 28 Bits (EIDE und ATA-2) erlaubt acht Bits für Sektoren, die noch bei 1 beginnen, d.h. Sektoren 1…255, vier Bits für Köpfe 0…15 und sechzehn Bits für Zylinder 0…65535. Daraus ergibt sich ein ungefähres Limit von 128 GB, nämlich 65536×16×255=267386880 Sektoren, die bei einer Sektorgröße von 512 Byte 130560 MB entsprechen. Die 28=16+4+8 Bits in der ATA-2-Spezifikation werden auch von Ralf Browns Interrupt-Liste abgedeckt, und ein alter Arbeitsentwurf dieses inzwischen abgelaufenen Standards wurde veröffentlicht.

Mit einer alten BIOS-Grenze von 1024 Zylindern und der ATA-Grenze von 16 Köpfen ergab sich eine kombinierte Wirkung von 1024×16×63=1032192 Sektoren, d.h. eine 504 MB-Grenze für eine Sektorgröße von 512. BIOS-Übersetzungsschemata, die als ECHS und revised ECHS bekannt sind, milderten diese Beschränkung ab, indem sie 128 oder 240 statt 16 Köpfe verwendeten und gleichzeitig die Anzahl der Zylinder und Sektoren reduzierten, so dass sie in 1024/128/63 (ECHS-Limit: 4032 MB) oder 1024/240/63 (revised ECHS-Limit: 7560 MB) für die gegebene Gesamtzahl der Sektoren auf einer Platte passen.

Blöcke und ClusterEdit

Die Unix-Gemeinschaften verwenden den Begriff Block, um sich auf einen Sektor oder eine Gruppe von Sektoren zu beziehen. Zum Beispiel zeigte das Linux-Dienstprogramm fdisk vor Version 2.25 die Partitionsgrößen mit 1024-Byte-Blöcken an.

Cluster sind Zuordnungseinheiten für Daten auf verschiedenen Dateisystemen (FAT, NTFS usw.), bei denen die Daten hauptsächlich aus Dateien bestehen. Cluster werden nicht direkt von der physischen oder virtuellen Geometrie der Festplatte beeinflusst, d.h. ein Cluster kann in einem Sektor nahe dem Ende einer bestimmten CHSpur beginnen und in einem Sektor auf der physisch oder logisch nächsten CHSpur enden.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.