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:
-
AT - Advanced Technology. PCs mit der Bezeichnung PC/AT besitzen ein 80286 Prozessor und sind die Nachfolger der XT-Rechner. Die PC/ATs verfügen über eine 16-Bit-Architektur und einen ebenfalls 16-Bit-breiten ISA-Bus. Ihn bezeichnet man auch als AT-Bus.
-
ATA - Advanced Technology Attachment. Spezifikation zum Anschluss von Festplatten an den AT-Bus. Der Standard wurde von der ANSI in Zusammenarbeit mit der Industrie im März 1989 veröffentlicht. Er spezifiziert neben den physikalischen und elektrischen Vorgaben der Schnittstelle auch die Protokolle für die Kommunikation zwischen Host und Laufwerk.
-
ATAPI - ATA Packet Interface. Erweiterung der ATA-Spezifikation für den Betrieb von CD-ROM-Laufwerken, Streamern und anderen Speichermedien an der IDE-Schnittstelle. Die Ansteuerung der ATAPI-Laufwerke basiert auf SCSI-Kommandos. Diese werden in ATA-Kommandos eingepackt, daher der Name Packet Interface. Das erforderliche ATAPI-Protokoll wird in der ATA-Spezifikation als Packet Feature Set bezeichnet.
-
Fast-ATA. Der original ATA-Standard besitzt eine spezifizierte Datentransferrate von maximal 4,2 MByte/s. Festplatten überschritten diese Grenze schon bald nach der Veröffentlichung der ATA-Spezifikation. Seagate entwickelte daraufhin seine eigenen Erweiterungen, basierend auf ATA. Sie ermöglichten eine maximale Transferrate von 8,3 MByte/s. Die Features von Fast-ATA wurden in den 1996 veröffentlichten ATA-2 Standard übernommen.
-
IDE - Integrated Disc Electronic. Standard für die Anbindung von Laufwerken mit integrierter Kontrollerelektronik an den ISA-Bus. Die IDE-Schnittstelle wird oft gleichgesetzt mit der Bezeichnung AT- oder ATA-Schnittstelle.
-
EIDE - Enhanced Integrated Disc Electronic: Obwohl der Begriff EIDE in den ATA-Spezifikationen nicht explizit auftaucht, hat er sich im Sprachgebrauch eingebürgert. EIDE ist somit auch kein Standard, sondern vielmehr ein Oberbegriff für eine Vielzahl neuer Features, die in den einzelnen ATA-Spezifikationen verabschiedet wurden. Ursprünglich nannte der Festplattenhersteller Western Digital seine Vision einer schnelleren IDE-Schnittstelle Enhanced IDE und behielt ihn als Marketingnamen bei. Der Abschnitt Übergang von IDE nach EIDE erläutert den Quasi-Standard.
-
UltraATA. Schnelle Übertragungsmodi der IDE-Schnittstelle. UltraATA/33 oder UltraDMA/33 (korrekte Bezeichnung) ermöglichen eine maximale Transferrate von 33 MByte/s über die Schnittstelle. UltraATA/66 und UltraDMA/66 erhöhen den Datentransfer auf maximal 66 MByte/s.UltraDMA/100 liegt bei 100 MByte/s.
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:
-
Höhere Datentransferraten. Die ursprüngliche ATA-Schnittstelle wurde für den ISA-Bus entwickelt. Durch seine maximale Bandbreite von 8,33 MByte/s kommt die hohe Performance schneller Festplatten nicht zu tragen. Mit der Adaption des ATA-Interfaces auf den PCI-Bus hat man diese Grenze überwunden. Schnellere Timings mit PIO-Mode 4 ermöglichen Datentransferraten bis 16,6 MByte/s.
-
Höhere Speicherkapazitäten. Das original IBM PC BIOS konnte durch seine Architektur höchstens 1024 Zylinder in einer Festplatte adressieren. Diese lange Zeit bestehende BIOS-Einschränkung erlaubte eine maximale Kapazität von 528 MByte. BIOS-Entwickler hatten sich damals nicht vorstellen können, dass Festplatten Kapazitäten von 500 MByte übersteigen könnten. Entsprechend blieben die BIOS-Routinen zum Adressieren der Festplatte unangetastet. Der ATA-Standard dagegen sah schon in seiner ersten Spezifikation ein Adressierungsverfahren vor, dass bis zu 128 GByte verwalten konnte. Zur Überwindung der 528-MByte-Grenze muss neben dem BIOS auch die Steuerelektronik in der Festplatte angepasst sein. Laufwerke nach dem EIDE-Standard unterstützen dieses Verfahren.
-
Zwei Kanäle. Das ursprüngliche ATA-Interface besitzt nur einen Kanal, an dem sich maximal zwei Geräte anschließen lassen. EIDE erweitert diese Einschränkung des Kontrollers und fügt einen zweiten unabhängigen Kanal hinzu. Der sekundäre Kanal ist ein exaktes Pendant zum primären Kanal und erhält einen eigenen Interrupt (15) zur Adressierung. Die Implementierung eines zweiten Kanals benötigt die Unterstützung des Host-BIOS. Bild 1 zeigt den Schritt von IDE nach EIDE mit bis zu vier Geräten.
-
Unterstützung anderer Laufwerke. Mit dem Begriff EIDE verbinden viele die Möglichkeit, nicht nur Festplatten an der ATA-Schnittstelle anschließen zu können. Der ATA-Packet-Interface-Standard spezifiziert die Schnittstelle zum Betrieb von CD-ROM-Laufwerken, Streamern und anderen Speichermedien. Treibende Kraft hinter der Entwicklung von ATAPI war Western Digital. ATAPI-Geräte basieren in ihrer Ansteuerung auf SCSI-Kommandos und verlangen entsprechend nach einem eigenen Befehlssatz. Das ANSI-Komitee hat die ATAPI-Implementation schließlich in ihrer ATA-4 Spezifikation aufgenommen. Man bezeichnet sie auch als ATA/ATAPI-4.
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:
-
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.
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)