So funktioniert die Schnittstelle

IDE-Grundlagen

04.12.1999 von Christian Vilsbeck
Hinter IDE verbirgt sich mehr als ein simples Kabel mit Steckern. Die Schnittstelle und ihr Umfeld unterliegen einer ständigen Anpassung. Wer die Unterschiede und Begriffe kennt, vermeidet Ärger.

Den Anstoß zur Entwicklung der IDE-Schnittstelle gab 1984 der texanische Computerhersteller Compaq. Die damals aktuellen ST506-Festplatten mit Kapazitäten von 10 MByte benötigten zum Betrieb eine spezielle Kontrollerkarte. Der Einbau in portable Systeme kostete viel Platz. Compaq suchte deshalb für seinen mobilen PC Portable II eine Lösung, den ST506-Kontroller Platz sparend auf der Festplatte zu implementieren. Damit wollte man sich die raren Steckplätze freihalten. Die Texaner beauftragten den Festplattenhersteller Western Digital mit der Entwicklung eines ST506-Kontrollers, der direkt mit dem Laufwerk verbunden ist. Die Kommunikation mit dem Mainboard sollte über ein 40-poliges Flachbandkabel hergestellt werden.

Der nächste Schritt der Integration begann 1986. Zu diesem Zeitpunkt tauchte der Ausdruck IDE für Integrated Disc Electronic erstmals auf. Compaq arbeitete wieder mit Western Digital und zusätzlich mit der Control Data Corporation zusammen. Ziel war die Implementierung des Kontrollerchips direkt auf der Laufwerksplatine. Ihren ersten Einsatz fanden diese Festplatten im Compaq-PC Deskpro 386.

Die Vorteile der Integration des Kontrollers auf der Festplatte sind eindeutig: Neben dem geringen Platzbedarf (Kontrollerkarte fällt weg) sprachen vor allem die reduzierten Kosten für die Lösung. Außerdem konnte die Elektronik speziell an die Geometrie und Eigenheiten der jeweiligen Festplatte angepasst werden. Eine zu allen Laufwerken kompatible Kontrollerkarte war somit überflüssig, und im Zuge des explodierenden Festplattenmarktes kaum mehr realisierbar. Auf der Mainboardseite, dem so genannten Host, sind nur noch ein paar Puffer und Decoderschaltkreise notwendig, um die Festplatte mit dem PC-Bussystem zu verbinden.

Diesen Trend der integrierten Kontrollerelektronik beschritten mit der Zeit immer mehr Festplattenhersteller und produzierten entsprechende Produkte. Folge: Zu Beginn wurden die Abweichungen vom ursprünglichen ST506-Standard immer größer und vielfältiger. Kompatibilitätsprobleme mit den Host-Systemen standen auf der Tagesordnung.

Als Konsequenz gründeten 1988 mehrere Hersteller von PCs, Festplatten und Software die Interessengruppe CAM, um für eine Normierung der IDE-Schnittstelle zu sorgen. In Zusammenarbeit mit der ANSI wurde im März 1989 ein Standard mit der Bezeichnung ATA verabschiedet.

Mit dem ATA-Standard war der Siegeszug der IDE-Festplatten nicht mehr aufzuhalten. Die rasante Entwicklung erforderte zudem eine ständige Aktualisierung der ATA-Spezifikationen.

Begriffswirrwarr

Die Standardisierung der Schnittstelle mit den ATA-Spezifikationen soll für Einheit sorgen. Die Vielzahl der kursierenden Begriffe rund um die Schnittstelle und ihre Festplatten verursacht aber trotzdem oft Verwirrung. Heißt es nun IDE-, EIDE- oder ATA-Festplatte, wo kommt ATAPI her und ist UltraATA wieder etwas anderes? Die folgende Auflistung entflechtet den Begriffswirrwarr:

Der Vorteil bei Weiterentwicklung des ATA-Standards von der Version 1 bis zur aktuellen Version 5 ist die jeweils gegebene Abwärtskompatibilität der Schnittstelle. Alte Festplatten für die IDE-Schnittstelle nach dem ATA-1 Standard laufen problemlos an einem modernen UltraDMA/66-Kontroller. Zwar lassen sich prinzipiell auch aktuelle IDE-Festplatten an ein altes ATA-1-Interface anschließen, aber nur mit großen Einschränkungen. Damalige BIOS-Versionen konnten nur 1024 Zylinder und Kapazitäten bis 528 MByte adressieren. Festplatten, die mehr Zylinder melden, verursachen häufig einen sofortigen Systemabsturz. Die maximale Schnittstellen-Performance von ATA-1 liegt bei nur 4,2 MByte/s. Angesichts der heutigen Kapazitäten von über 20 GByte und Datentransferraten jenseits der 20 MByte/s, eine inakzeptable Lösung. Die heute aktuelle UltraATA/100-Schnittstelle bietet dagegen mehr als ausreichend Luft nach oben.

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

Übergang von IDE nach EIDE

Die als heimlicher Standard etablierte EIDE-Schnittstelle ist die kontinuierliche Weiterentwicklung des ATA-Interfaces. Sie fast mehrere Kern-Features aus verschiedenen ATA-Spezifikationen zusammen und ergänzt sie mit proprietären Lösungen. Federführend bei dieser Entwicklung war der Festplattenhersteller Western Digital. Das Unternehmen gab ihrer erweiterten Schnittstellenlösung den Marketingnamen EIDE. Neben Änderungen der Hardware wurde auch die Software (BIOS) um neue Funktionen ergänzt. Durch die schnelle Verbreitung und Marktakzeptanz der EIDE-Schnittstelle haben diese auch andere Festplatten-Hersteller anerkannt und adaptiert.

Das Feature-Paket EIDE besteht aus vier grundlegenden Neuerungen:

Von Sektoren und Zylindern

Festplatten speichern ihre Information auf rotierenden Magnetscheiben. Die Rotationsgeschwindigkeit moderner EIDE-Laufwerke liegt bei 5400 und 7200 U/min. Der Zugriff auf die Daten erfolgt berührungslos durch den Schreib-/Lesekopf, der in einer Höhe von wenigen µm über der Scheibenoberfläche schwebt. Die Positionierung übernimmt der Aktuator, der den Kopf bogenförmig über die Magnetscheibe führt. Zur Datenspeicherung werden je nach Festplattenkapazität eine oder beide Oberflächen verwendet. Entsprechend sind pro Scheibe einer oder zwei Köpfe erforderlich. Zudem sind oft mehrere Scheiben mit eigenem Schreib-/Leseköpfen übereinander platziert. Die Bewegung erfolgt durch den Aktuator immer parallel.

Die kleinste von außen lesbare Einheit der Festplatte ist ein Sektor. Je nach Formatierung besitzt er eine Länge von 512 (Standard), 1024 oder 4096 Bytes. Die Anordnung der Sektoren besteht aus konzentrischen Datenkreisen. Ein Kreis wird als Spur bezeichnet und von außen nach innen durchnummeriert. Der äußerste Kreis der Magnetplatte ist Spur 0. Alle Spuren sind weiter in die einzelnen Sektoren unterteilt. Um einen bestimmten Sektor zu lesen, muss der Magnetkopf auf die entsprechende Spur positioniert werden und warten, bis der zu lesende Sektor unter dem Kopf vorbeikommt.

Durch die Nutzung beider Oberflächen einer Scheibe sowie der Mehrscheibentechnik befinden sich Spuren mit gleicher Nummerierung stets übereinander. Sie werden als Zylinder bezeichnet. Ein Sektor ist somit eindeutig adressiert über: Sektornummer, Zylindernummer (Spur) und Kopfnummer (Plattenoberfläche). Diese Angaben ergeben die Geometrie einer Festplatte und spezifizieren ihre Laufwerksparameter.

Die Sektoren der Festplatte sind in einem festgelegten Format organisiert und bestehen aus Header und Datenfeld. Der Header enthält einen Datenseparator mit Informationen über das Kodierverfahren der Sektordaten. Die Zylinder-, Kopf- und Sektornummer sind ebenfalls im Header abgespeichert. Die Laufwerkselektronik kann damit nach der Positionierung des Schreib-/Lesekopfes verifizieren, ob sie den richtigen Sektor angesteuert hat. Das folgende Datenfeld des Sektors ist je nach Formatierung 512 (Standard), 1024 oder 4096 Bytes groß und wird mit einer Prüfsumme, die auf einem ECC-Verfahren basiert, abgeschlossen.

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:

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.

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.

Master/Slave (Cable Select)

An einem IDE-Kanal können nach der ATA-1-Spezifikation bis zu zwei Geräte betrieben werden. Kabel für die IDE-Schnittstelle besitzen daher meist zwei Laufwerksanschlüsse. Die Signale sind an jedem Stecker gleich und unterscheiden sich in ihrer Signallogik nicht. Ein Gerät lässt sich somit beliebig am Ende des Kabels oder am mittleren Stecker anschließen. Die Signalqualität ist allerdings höher, wenn die Festplatte mit dem Strangende verbunden ist. Das IDE-Kabel ist durch das Gerät sauber abgeschlossen und terminiert. Hängt das Gerät nicht am äußeren Anschluss, finden am Kabelende Reflexionen statt. Zusätzlich wirken die einzelnen Signaladern wie Antennen und fangen Störungen ein. Die Datenintegrität der ATA-Signale sinkt. Vor allem bei den schnellen UltraDMA-Betriebsarten mit kurzen Zykluszeiten empfiehlt die ATA-Spezifikation dringend den Anschluss am Kabelende.

Beim Betrieb von zwei Geräten pro Kanal wird zwischen einem Master-Laufwerk und einem Slave-Laufwerk unterschieden. Die Bezeichnung Master/Slave ist dabei irreführend, weil sich die beiden Laufwerke weder gegenseitig beeinflussen noch eines von dem anderen kontrolliert wird. In den ATA-Spezifikationen finden sich deshalb die Bezeichnungen Device 0 (Master) und Device 1 (Slave).

Die Ansteuerung von Master oder Slave erfolgt mit Bit 4 des Laufwerksregisters. Der Wert Null des Bits adressiert das Device 0, eine Eins steht für Device 1. Damit die angeschlossenen Laufwerke auf dieses Bit reagieren können, muss an den Geräten die Einstellung als Device 0 und 1 getroffen sein. Hierfür befinden sich an ATA-Laufwerken immer zwei Steckbrücken für die Konfiguration als Master oder Slave.

Erfolgt zum Beispiel ein Lesebefehl an das Master-Laufwerk, wird in die Laufwerksregistern das Bit 4 mit dem Wert Null geschrieben. Die internen Laufwerkselektroniken vergleichen nun Bit 4 mit der eigenen Jumper-Einstellung. Das als Master konfigurierte Laufwerk übernimmt den Lesebefehl, das Slave-Laufwerk ignoriert die Anweisung. An welchen Stecker die Master- und Slave-Festplatte am Kabel angeschlossen ist, spielt keine Rolle und ist beliebig.

Befindet sich nur eine Festplatte am IDE-Kanal, muss es immer als Device 0 (Master) konfiguriert sein. Ältere Festplatten haben für diese Betriebsart manchmal noch eine zusätzliche Single-Einstellung. Das Booten ist, besonders bei älteren BIOS-Versionen, nur vom primären Master möglich. Ein modernes BIOS bietet dagegen oft die Wahl, von welchem Device gestartet werden soll.

Fast alle IDE-Festplatten besitzen zusätzlich eine Cable-Select-Einstellung (CSEL). Mit dieser Konfiguration soll das Laufwerk selbst erkennen, ob es Device 0 oder 1 ist. In den ATA-Spezifikationen ist ein eigenes CSEL-Signal an Pin 28 vorhanden. Um Festplatten im CSEL-Modus zu betreiben, ist ein spezielles Kabel erforderlich. Es führt das Signal von Pin 28 nur bis zum ersten Stecker, am zweiten Stecker ist Pin 28 offen. Die angeschlossenen Laufwerke stellen sich abhängig vom Signal am Pin 28 selbstständig als Master und Slave ein.

Der Cable-Select-Modus war Bestandteil der Microsoft-PC97-Spezifikation und sollte ein Plug&Play bei IDE-Festplatten ermöglichen. Wegen den kaum verfügbaren Spezialkabeln hat sich der Cable-Select-Modus aber bis heute nicht etabliert. (cvi)