So funktioniert die Schnittstelle

IDE-Grundlagen

Kommunikation Host-HDD

Der Zugriff des Prozessors auf die Daten einer Festplatte erfolgt über verschiedene 8-Bit-breite Register zur Adressierung, Befehlsübermittlung und Steuerung der Festplatte. Einzig das Datenregister besitzt eine Breite von 16 Bit. Es kann vom Prozessor gelesen und beschrieben werden, um Daten zwischen dem Arbeitsspeicher und dem Host auszutauschen. Nach der Adressierung des gewünschten Sektors der Festplatte über das Sektornummern-, Zylindernummern- und Laufwerksregister erfolgt die Befehlsübermittlung mittels Kommandoregister. Den reinen Datenaustausch zwischen Kontroller und Festplatte erledigt dann das Datenregister. Die Festplattenelektronik übernimmt die Daten in den Laufwerkspuffer, dekodiert die Adresse und positioniert entsprechend die Schreib-/Leseköpfe für den Datentransfer.

Die Register für die ATA-Schnittstelle sind in zwei Gruppen eingeteilt: Der Kommandoregisterblock beinhaltet alle Register, die für die Adressierung, auszuführende Befehle und den Datentransfer verwendet werden. Der Steuerregisterblock dient zur Laufwerkssteuerung und informiert über den aktuellen Status der Festplatte. Alternativ bezeichnet man die beiden Blöcke als AT-Task-File.

Die ATA-Schnittstelle verfügt insgesamt über fünf Signale für die Wahl des zu verwendenden Registers. Zur Selektierung der beiden Registerblöcke dienen die Adress-Signale CS0 und CS1. Über die Signale DA0 bis DA2 wird ausgewählt, welches der einzelnen Register gerade aktiv ist. Tabelle 1 zeigt alle der ATA-Schnittstelle zur Verfügung stehenden Register und deren Bedeutung.

Für ATA-Festplatten sind nach dem ATA-5-Standard über 50 verschiedene Befehle spezifiziert. Die Kommandos reichen vom einfachen Schreiben/Lesen über Formatieren und Löschen bis hin zu Powermanagement-Befehlen. Bei den Kommandos gibt es eine Unterscheidung nach Pflichtbefehlen, die jedes Gerät beherrschen muss, und optionalen Befehlen. Pflichtbefehle der ersten ATA-Spezifikation sind bei aktuellen Laufwerken kaum mehr erforderlich und sind in den neueren Fassungen von ATA nur noch optional.

Register

Breite [Bit]

Bedeutung

Tabelle 1: Register, die für die Kommunikation zwischen Host-Laufwerk und Kontroller notwendig sind.

Alternativstatus

8

Entspricht Statusregister, unabhängig von Interrupt Requests

Daten

16

Zum Transfer der Daten zwischen Host und Laufwerkspuffer

Feature

8

Für Zusatzfunktion der Schnittstelle, nutzen nicht alle Laufwerke

Fehler

8

Enthält eventuellen Fehlercode des letzten Zugriffs

Kommando

8

Zur Übermittlung von über 50 verschiedenen Befehlen

Laufwerk

8

Enthält Laufwerksnummer (Master/Slave) und Kopfnummer

Sektornummer

8

Nummer des ersten zu lesenden oder schreibenden Sektors

Sektorzahl

8

Anzahl der zu lesenden oder schreibenden Sektoren bei einem Zugriff

Status

8

Enthält Laufwerksstatus nach dem letzten Befehl

Steuer

8

Zum Reset des Laufwerks und dem Zulassen von Interrupts

Zylindernummer

8 / 8

Adressierung des Zylinders. Aufgeteilt in zwei 8-Bit-Blöcke