vorheriges Kapitel zum Inhaltsverzeichnis nächstes Kapitel  

 

4. Zur Geschichte der verschiedenen Schnittstellen

Der Dateizugriff über Int 13h

Auch Festplattenzugriffe heutiger Betriebssysteme wie Windows 95 oder NT basieren auf den anfang der 80er entwickelten DOS-BIOS-Modellen. Die Programme arbeiten hierbei auf der Basis von Dateinamen. Wenn eine Textverarbeitung z.B. ihr Dokument speichern will, tut sie das, indem sie dem Betriebssystem den Auftrag gibt, die Daten in eine mit Namen benannte Datei zu speichern. Beim Laden ist dies ebenso.
Nun befindet sich auf jeder Partition eines Laufwerks die sogenannte FAT (file allocation table), eine Tabelle, die diese Dateinamen ihren physikalischen Sektoren zuordnet. Das Betriebssystem gibt nun ans BIOS den Befehl, diese Datei zu lesen oder zu schreiben. Dies geschieht über den BIOS-Interrupt 13h. Da diese Programmierschnittstelle betriebssystemunabhängig ist, können dieselben Laufwerke auch unter anderen Betriebsystemen verwendet werden – auch wenn sie andere Dateiformate verwenden. Da die Festplatten im BIOS angemeldet sind, braucht das Betriebssystem keine Informationen über den verwendeten Festplattentyp zu haben. Das BIOS gibt die Anfragen lediglich über Int 13 an die Schnittstelle der Festplattencontrollersoftware weiter – z.B. bei IDE ATA.

 

Die ST509/ST412-Schnittstelle

Anfang der 80er Jahre entwickelte die Firma Seagate eine Schnittstelle zur Ansteuerung von Festplatten, die sie ST506 (oder auch Shugart-Schnittstelle) nannten. Das "ST" in der Namensgebung hat Seagate bis zu den heutigen Produkten beibehalten. Diese Schnittstelle konnte zunächst die Hauseigene Platten mit 5 MByte verwalten. Kurze Zeit später entwickelte sie Seagate weiter zur ST412-Schnittstelle, die nun auch größere Platten bis zu 140 MByte (zunächst die o.g. 10 MByte-Platte) verwalten konnte. Dieser Anschluß war Hard- und Softwaretechnisch mit der ST509 kompatibel und bedurfte keiner BIOS-Änderung des PCs. Auch heutige BIOS-Versionen haben eine Abwärtskompatibilität hierzu beibehalten, was man an der dortigen Liste der Festplattentypen erkennen kann, die von 10 bis 152 MBytes reicht. Dies rührt auch daher, daß der Anschluß einer Platte über das ST412-Interface bis Anfang der 90er die am weitesten verbreitete Methode war.

Der Controller

ST509-Controller und Festplatte stellen zwei getrennte Geräte dar, da der Controller mit einer eigenständigen Intelligenz ausgestattet ist und als Erweiterungskarte in einen freien ISA-Slot gesteckt wird. Der Controller kann maximal 2 Festplatten ansteuern und ist meist als Kombicontroller ausgerüstet, der weitere Anschlüsse für bietet. In Hochleistungssystemen verwendete man auch Controller zum Anschluß von vier Festplatten. Der Controller wird über zwei Leitungen mit der Festplatte verbunden. Diese sind meist als Flachbandleitung mit je einem Pfostenstecker und einem Platinenstecker ausgestattet. Diese haben außer der Farblichen Markierung und der aufgedruckten "1" keine Verpolungssicherheit.
Über die 34polige Steuerleitung können maximal zwei Platten angeschlossen werden, wobei man per Drive-Select-Jumper oder gedrehtem Kabel (Ltg. 26-28, wie beim Diskettenlaufwerk) entscheiden muß, welches Laufwerk C: und welches D: sein soll. Über diese Leitung wird die Positionierung der Köpfe und der Schreib-/Lesevorgang mittels digitaler Signale gesteuert. Die zu lesenden und zu schreibenden Daten, welche neben den reinen Nutzdaten auch in den Sektoren gespeicherten Zusatzinformationen enthalten, werden zu den Festplatten jeweils über eine separate 20polige analoge Datenleitung übertragen. Dies hat den Nachteil, daß die Übertragungsrate, welche beim MFM-Verfahren etwa 0,63 MByte/s beträgt, auf 0,5 MByte/s Nutzdaten abfällt. Beim RLL-Verfahren analog dazu von 0,9 auf 0,75 MByte/s. Die Zugriffszeiten solcher Laufwerke betrug im übrigen damals 30 – 60 ms.

 

Abb: Seagate-Festplatte ST125 mit ST509/412-Schnittstelle

 

Die Installation

Früher hatten die Computer der XT-Kompatiblen noch kein so komfortables menügesteuertes BIOS wie heutige Rechner. Folglich war es auch etwas umständlicher eine Festplatte in solch einem System einzurichten.
Nach dem physikalischen Einbau von Platte und Controller in den Computer, mußte man die Festplatte im BIOS anmelden. Dies war nicht immer einfach, da nur Platten gewählt werden konnten, die in dieser Liste enthalten waren. Wenn man sein Laufwerk nicht dort aufgelistet fand mußte man den Typ wählen, der in jedem Wert (Anzahl der Zylinder, Sektoren, Köpfe) höchstens genauso groß war wie der gewünschte. Hierbei verschenkte man mit Sicherheit einige kostbare Speicherkapazität, da man so Sektoren, Zylinder oder gar Köpfe gar nicht ansteuern konnte. Wählte man einen höheren Typ, so hatte das unmittelbare Datenverluste oder gar Beschädigungen der Festplatte zur Folge, da nun Bereiche angesteuert wurden, die physikalisch nicht vorhanden waren.
Nach der Anmeldung war eine Low-Level-Formatierung notwendig, die man mit Hilfe eines Tools wie dem DiskManager der Firma Ontrack bewerkstelligte. Eine zweite Möglichkeit bot der DOS-Debugger, über den man eine im Controller-BIOS verankerte Routine zur Low-Level-Formatierung aufrief. Eine Low-Level-Formatierung teilt die Festplatte in Spuren bzw. Zylinder und diese in Sektoren ein. Dies macht auch die Formatierung derselben Festplatte (wenn sie dazu geeignet ist) entweder mit MFM, das generell 17 Sektoren pro Spur hat, oder mit RLL möglich, das 26 bzw. 34 Sektoren pro Spur verwendet. Beim Low-Level-Formatieren war beim ST509/412 die Eingabe der defekten Sektoren vom Benutzer nötig, um Datenverluste zu vermeiden. Diese Liste wurde vom Hersteller mit dem Laufwerk ausgeliefert. Außerdem war die Angabe des gewünschten Interleave-Faktors notwendig, der bei diesem Platten-Typ zunächst beim Einbau in einen XT 1:6 und später beim AT 1:3 betrug. Danach wurden die gewünschten Partitionen mit dem DOS-Programm FDISK eingerichtet und diese anschließend mit dem High-Level-Formatbefehl FORMAT zur Benutzung fertig eingerichtet.
IBM übernahm wie gesagt die ST509/412-Schnittstelle in seinem XT-Modell, womit man sich auf einen niedrigeren Standard festlegte. Der ST509/412 kann nämlich nur maximal 1024 Zylinder mit jeweils 63 Sektoren und 16 Köpfen adressieren, was mit der DOS-Sektorgröße von 512 Byte eine maximale Festplattenkapazität von 504 MByte ergibt. Mit einem Trick konnte man das BIOS überlisten, indem man ihm bei einer größeren Festplatte (bis 1 GByte) vorgaukelte, 2 kleine Platten installiert zu haben.

 

Die ESDI (Enhanced Small Devices Interface) –Schnittstelle

Die ESDI-Schnittstelle bezeichnet eine 1983 von Maxtor vorgestellte Weiterentwicklung der ST509/412-Schnittstelle. IBM setzte auch diesmal wieder diesen neuen Typ als erste in seinen PS/2-Modellen ein. Es bestehen keine äußerlichen Unterschiede zu den vorherigen Laufwerken, auch nicht im Anschlußverfahren, das hierbei wieder mittels getrennter Steuer- und Datenleitungen vollzogen wird. Auch auf die Registerkompatibilität legte Maxtor wert. Somit sind diese Festplatten auch in den vorhandenen Systemen mit dem alten BIOS einsetzbar. Probleme bereitete allerdings die Kompatibilität der Geräte verschiedener Hersteller untereinander. Obwohl man aufgrund des äußeren Erscheinungsbildes glauben könnte, man könne ESDI- mit ST509/412-Geräten kombinieren, funktioniert dies nicht. Für Datenübertragung wird bei ESDI nämlich im gegensatz zur Vorgängerschnittstelle kein analoges Verfahren mehr eingesetzt, sondern eines nach der digitalen NRZ-Kodierung. Dies kommt daher, daß man einen Teil der

Intelligenz auf der Festplatte unterbringt: den sogenannten Datenseparator. Er bereitet die gelesenen bzw. zu schreibenden Daten auf und überträgt nur die Nutzdaten, was eine bessere Ausnutzung der vorhandenen Bandbreite auf der Datenleitung und somit eine Erhöhung der Übertragungsrate ermöglicht. Ein weiteres Verfahren macht ein ESDI-Laufwerk schneller: Die Daten werden in einem Sektorpuffer von meist 64kByte zwischengespeichert. Dies ermöglicht einen Interleave-Faktor von 1:1. Dadurch erhöht sich die Übertragungsrate auf standardisierte 10,15, 20 und sogar 24 MBit/s, was maximal etwa 3 MByte/s beträgt. Meist verwenden ESDI-Festplatten das RLL2.7-Format zur Datenaufzeichnung. ESDI wird oft auch als Vorläufer von SCSI bezeichnet, da man an den ESDI-Controller auch Bandlaufwerke zur Datensicherung anschließen kann.

 

Abb: Seagate-Festplatte ST1100 mit ESDI-Schnittstelle

 

Die Installation

Um eine ESDI-Festplatte in einem PC betreiben zu können, muß diese im BIOS angemeldet werden. Da die meisten BIOSe nur eine begrenzte Auswahl an Festplatten unterstützen, ist es schwer, den passenden Typ zu finden. Deshalb wird hierbei vom Controller ein Translation-Mode verwendet, der die Festplattendaten so umsetzt, daß die Platte mit ihrer maximalen Kapazität betrieben werden kann. Hierzu trägt man im BIOS

"Typ 1" ein, was dem BIOS signalisiert, daß überhaupt eine Festplatte vorhanden ist. Der Controller fordert dann die Laufwerksdaten von der Festplatte an und überlagert damit das PC-BIOS. Dadurch kann das Betriebssystem die Platte voll ausnutzen. Dieser Translation-Mode wird auch dazu eingesetzt, Geräte mit mehr als 1024 Zylindern, 63 Sektoren oder 16 Köpfen einzusetzen.
Neben den Laufwerksdaten haben die Hersteller von ESDI-Geräten auch die Fehlerliste darauf abgelegt. Dadurch brauchen diese Informationen bei der Low-Level-Formatierung nicht mehr per Hand eingegeben werden. Ansonsten funktioniert dieser Arbeitsschritt genauso wie bei ST509/412-Festplatten mit Hilfe im Controller-BIOS implementierter Funktionen, die über den DOS-Debugger aufgerufen werden. Danach wird die Platte wie üblich partitioniert und formatiert.

 

Die SCSI (Small Computer System Interface) - Schnittstelle

Bereits in den 70er Jahren wurde die SCSI-Schnittstelle entwickelt, der Standard wird ständig erweitert. Sie stellt eine große Flexibilität zur Verfügung, da an ihr nicht nur Festplatten, sondern auch andere Geräte wie Streamer, Scanner, CD-ROMs usw. angeschlossen werden können – maximal 7 bzw. 15 Geräte pro Controller. Der Controller trägt hierbei den Namen Host-Adapter. Die eigentlichen Controller befinden sich auf den Geräten selbst, was sie in gewissem Sinne "intelligent" macht.
Eine SCSI-Festplatte wird nicht im PC-BIOS eingetragen, da der Host-Adapter ein eigenes BIOS enthält, das den Zugriff steuert. In neueren Systemen kann man sogar bei Mischbetrieb von SCSI-Festplatten und den folgenden IDE-Laufwerken die Bootreihenfolge im PC-BIOS wählen. Dies macht dieses Konzept noch flexibler.
SCSI-Laufwerke werden über eine Bus-Verkabelung mit einer 50 bzw. 68 poligen Daten-/Steuerleitung, an denen bis zu 7 verpolungssichere Pfostenstecker oder Mini-Sub-D-Stecker angebracht sind, mit dem Host-Adapter verbunden. Sie wurden ursprünglich für den Einsatz in Servern und Hochleistungsworkstations entwickelt und liegen auch heute noch preislich über dem Niveau von IDE-Festplatten.
SCSI-wurde in einem vorherigen Vortrag ausführlich behandelt und würde auch diesen Rahmen sprengen. Deshalb belasse ich es bei diesem kurzen Überblick.

 

 

Abb: Seagate-Festplatte ST11201N - Swift SCSI mit SCSI-Schnittstelle

 

Die IDE (Integrated Device Electronic)-Schnittstelle

 

Die IDE-Schnittstelle – auch AT-Bus-Schnittstelle genannt – wurde 1984 von Conner entwickelt. Der grundlegende Gedanke dieses Systems ist auch in der Namensgebung zu erkennen: die Elektronik ist fast vollständig auf der Festplatte untergebracht. Im prinzip handelt es sich lediglich um eine Verlängerung des AT-Bus, der ab dem 80286 eingesetzt wurde – daher der Beiname. Am Anfang gab es auch XT-Bus-Festplatten, die aber nur kurze Zeit überlebten, da die XTs vom Markt verschwanden. Auf dem Adapter zum AT-Bus, der meist als Multi-I/O-Karte ausgeführt ist, befinden sich lediglich Controllerbausteine für die Diskettenlaufwerke, eine Adressendekodierungsschaltung für die Portadressen und Daten- und Adressentreiberbausteine. Oft sind auch Parallele und Serielle Schnittstellen implementiert. Bei Boards, die ab dem 80486 zum Einsatz kamen, ist der Adapter fast immer auf dem Motherboard integriert – also onboard. An die normalen IDE-Schnittstelle lassen sich maximal zwei Festplatten über eine 40polige, maximal 18" lange Daten-/Steuerleitung per Bus anschließen. Diese müssen dann auf ihre Rolle in diesem Bus eingestellt werden. D.h., ein Laufwerk wird als "Master" und das andere als "Slave" gejumpert. Ist nur eine Platte angeschlossen, sollte diese als "Single" gejumpert sein. Auch bei IDE werden verpolungssichere Pfostenstecker verwendet, die außerdem mit einem Pfeil an der farblich markierten Leitung 1 vesehen sind. Bei den ersten IDE-Festplatten waren jedoch noch keine Kunststoffrahmen um die Pfosten-Stiftleiste angebracht, was eine Vertauschung ermöglichte. Auch die Stiftleisten auf den Controllerkarten und Motherboards besitzen erst seit wenigen Jahren solche Verpolungssicherungen.

IDE-Festplatten sind denkbar einfach im PC-BIOS anzumelden. Bei allen modernen BIOSe gibt es einen sogenannten "User Typ". Hierbei kann der Benutzer selbst die Laufwerksdaten ins BIOS eintragen. Leider gilt auch hierbei die Beschränkung der CHS-Methode (cluster,head, sector) mit ihren 1024 Zylindern, 63 Sektoren und 16 Köpfen, was multipliziert mit der DOS-Sektorgröße von 512 kByte eine maximale Kapazität von 504 MByte ergibt. Diese Einschränkung rührte noch von der BIOS-Kompatibilität – es konnte nur 1024 Zylinder verwalten – zu früheren Standards her, denn IDE wurde eigentlich für 255 Sektoren auf 65536 Zylindern bei 16 Köpfen konzipiert.
Größere Festplatten konnten deshalb nur mit speziellen Hilfsprogrammen wie dem OnTrack DiskManager benutzt werden, der sich direkt in den MBR (Master-Boot-Record) des Laufwerks einnistet und für die nötige Anpassung sorgt. Wird die Platte nun in einem anderen System an einem fortschrittlicheren Anschluß betrieben, droht mit einem solchen Hilfsprogramm der Verlust sämtlicher Daten.
Bei IDE wird das Low-Level-Format vom Hersteller ausgeführt und sollte nur im äußersten Notfall, wenn man sowieso nichts mehr an der Platte beschädigen kann, durchgeführt werden. Dies hat den Grund, daß der Hersteller die defekten Sektoren selbst als ungültig markiert, die bei einem Low-Level-Format wieder freigegeben würden. Außerdem verfügen IDE-Laufwerke über ein Verfahren, daß sich ECC (Error Correction Code) nennt und defekte Sektoren während des Betriebs erkennt. Die Logik versucht, beim Erkennen eines solchen beschädigten Sektors den Inhalt auszulesen und in einen freien Bereich zu schreiben. Anschließend wird der defekte Sektor gesperrt.
Der IDE-Controller, der sich auf dem Plattengehäuse selbst befindet, verfügt außerdem über einen Pufferspeicher, der einen Interleave-Faktor von 1:1 ermöglicht und somit den Zugriff beschleunigt.

 

EIDE (Enhanced IDE)

EIDE ist eine 1993 von Western Digital ins Leben berufene Weiterentwicklung der IDE-Schnittstelle und behebt die Einschränkungen bezüglich der Speicherkapazität unter Beibehaltung der Kompatibilität.
Die EIDE-Schnittstelle findet man auf Mainboards ab dem 80486 und auf speziellen Erweiterungskarten. Sie sieht den Anschluß von bis zu vier Geräten auf zwei IDE-Kanälen vor. Diese sind mit "primary" und "secondary" IDE bezeichnet. Auch hier muß eine Master-Slave-Einstellung auf jedem Kanal stattfinden. Im BIOS können daher auch vier Festplatten eingetragen werden, die nun als Hauptverbesserung eine größere Kapazität als 504 MByte besitzen dürfen. Eine Kapazität von bis zu 7,8 GByte wurde erreicht, indem man das sogenannte LBA (Logical Block Adressing) einführte, das dem BIOS 255 Köpfe vorspiegelt, obwohl eine solche Platte niemals soviele Köpfe besitzt. 255 ist nämlich die größte mit dem Festplatteninterrupt 13h adressierbare Einheit. Der Controller setzt die Steuerinformationen dann auf die gesteigerte Anzahl an Zylindern und Sektoren um, so daß das BIOS mit der großen Platte zurecht kommt. Dieses Verfahren nennt man auch CHS-LBA.

 

 

Abb: Seagate-Festplatte ST34520A - Medalist Pro mit EIDE-Schnittstelle

 

Mittlerweile ist man jedoch bei weitaus größeren Festplatten angelangt, die neue Tricks nötig machen. Man benutzt eine Int 13 Erweiterung, die man auf neuen Boards schon im BIOS implementiert hat. Für ältere BIOSs steht meist ein Update zur Verfügung oder man verwendet wieder ein Hilfsprogramm der Plattenherstellers, das sich in den Bootsektor einnistet. Das Problem besteht nämlich darin, daß die ATA-Spezifikation zwar eine 28 bit-Adresse verwendet, die maximal 137 GByte adressieren könnte, von den älteren BIOSe aber nur 26 bit ((7,8 GByte) mittels Int 13h angesprochen werden können. Bei 137 GByte liegt also die nächste Begrenzung der Festplattenkapazität, die jedoch erst in einigen Jahren überwunden werden muß – und auch nicht unbedingt von EIDE, sondern einer der zukünftigen Schnittstellen.
Wegen des Zone-Bit-Recordings müßten außerdem verschiedene Einstellungen für die verschiedenen Zonen der Festplatte vorgenommen werden, was jedoch kaum praktikabel ist und die bestmögliche Ausnutzung per Translation-Mode vorsieht.
Ein weiterer Vorteil von EIDE ist die Anschlußmöglichkeit für andere Geräte als Festplatten. So lassen sich z.B. CD-ROMs und ZIP-Drives mit der EIDE-Schnittstelle verbinden. Dies beruht auf der softwaretechnischen erweiterung des ATA-Befehlssatzes, der sich ATAPI (AT Attachment Packet Interface) nennt. Diese Tatsache macht die wesentlich preisgünstigeren EIDE-Geräte genauso flexibel wie SCSI. Festplatten werden mit dem ATA Befehlssatz (Advanced Technologie Attachment) angesprochen.
Da IDE-Festplatten über einen speziellen Stromspar-Befehlssatz verfügen und daher eine geringe Leistungsaufnahme haben, sind sie in ihrer kleinsten 2,5" Bauform prädestiniert für den Einsatz in Laptops und Notebooks.

 


  vorheriges Kapitel zum Inhaltsverzeichnis nächstes Kapitel