So funktioniert die Schnittstelle

IDE-Grundlagen

Adressierungsverfahren

Das ATA-Interface basiert auf einer parallelen Busstruktur und wird über verschiedene Register angesteuert. Die Register enthalten Adressinformationen und die Länge der zu übertragenden Datenblöcke. Die Adressierung der Festplatte kann nach zwei Verfahren erfolgen: den CHS-Modus oder die LBA-Adressierung.

Das CHS-Verfahren basiert auf der physikalischen Adressierung einer Festplatte mit Zylindern, Köpfen und Sektoren. Nach dem ursprünglichen ATA-Standard stehen für die Adressierung insgesamt 16 Köpfe und 65.535 Spuren zur Verfügung. Jede Spur kann bis zu 256 Sektoren mit einer Speichertiefe von 512 Byte verwalten. Die Übermittlung der Adressdaten erfolgt über vier 8-Bit-breite Register:

  • Das Sektornummernregister gibt den ersten zu übertragenden Sektor an (die Anzahl der zu lesenden oder schreibenden Sektoren übermittelt das Sektorzahlregister).

Für die 65.535 möglichen Zylinder müssen zwei 8-Bit-Register zu einem 16-Bit-Registerpaar zusammengefasst werden: Das Zylinder-Low-Register enthält die LSBs, das Zylinder-High-Register die MSBs der Zylinderadresse.

  • Die Kopfadressierung übermittelt das Laufwerksregister. Durch die maximal 16 Köpfe muss es nur die vier niederwertigen Bits für die Kopfwahl verwenden. Zusätzlich übermittelt das Laufwerksregister die Gerätenummer (Master oder Slave) und das Adressierverfahren (CHS oder LBA).

Insgesamt verwendet der CHS-Modus 28 Bits für die Adressierung. Gemäß dieser Spezifikationen können Festplatten im CHS-Modus maximal 255 Sektoren, 16 Köpfe und 65.535 Zylinder besitzen. Mit einer Sektorgröße von 512 Byte ergibt das eine Maximalkapazität von 255 x 16 x 65.535 x 512 Byte = 136.899.993.600 Byte. Umgerechnet lassen sich mit der CHS-Adressierung 127,5 GByte verwalten.

Ein anderes Verfahren zur Adressierung der Festplatte ist der LBA-Modus. Er wurde gleichzeitig mit der Einführung der EIDE-Schnittstelle vorgestellt und in den ATA-2 Spezifikationen verabschiedet. Das LBA-Verfahren spricht die Festplatte über logische Blocknummern an. Die gesamte Kapazität der Platte erscheint als eine kontinuierliche Folge von Datenblöcken. Die Anzahl der Sektoren, Zylinder und Köpfe bleibt nach außen hin verborgen. Der Host benötigt somit keine Informationen über die Geometrie der Festplatte. Die interne Umsetzung der LBA-Adressierung nach Sektor, Zylinder und Kopf erledigt die Laufwerkselektronik.

Jeder einzelne Sektor besitzt eine eindeutige logische Adresse. Das LBA-Verfahren fasst die insgesamt 28 Adressbits aus den vier Registern, die beim CHS-Modus zum Einsatz kommen, zu einer LBA-Nummer zusammen. Über diese Nummer kann das BIOS des PCs jeden Sektor auf der Festplatte ansprechen. Durch die 28-Bit-breite Adresse kann das LBA-Verfahren maximal 2^18 Sektoren verwalten. Bei der Anzahl der Sektoren ist auch der Wert 0 erlaubt. Mit einer Sektorgröße von 512 Byte beträgt die Maximalkapazität 128,0 GByte.