VOICE Homepage: http://www.os2voice.org |
[Vorherige Seite] [Nächste Seite] [Artikelübersicht] |
Dezember 2000
editor@os2voice.org
Von Daniela
Engert ©Dezember 2000, Übersetzung: Peter
Weilbacher
Zitierte Webseiten: T10 Technical Committee (I/O Interfaces): http://www.t10.org |
Lassen Sie mich versuchen, ein bißchen Licht in das Dunkel zu bringen, wie die Festplatten-Geometrie von ATA- (IDE-) und SCSI-Subsystemen von OS/2 erkannt wird.
Wie sprechen hier über ein Szenario, wo das BIOS in die Kommunikation zwischen Platte und Anwendung eingebunden ist. Deshalb spricht die Anwendung nicht direkt mit der Platte, sondern eher mit einer abstrakten Schnittstelle, die das BIOS anbietet: Die INT13 API. Das gilt sowohl für ATA- als auch SCSI-Systeme.
Nun, was die meisten Leute nicht wissen (und meist nicht wissen müssen), ist die Tatsache, daß bis zu zwei unterschiedliche Konvertierungen der CHS-Geometrie (Cylinder, Head, Sector) während dieses Prozesses aktiv sein können! Lassen Sie uns das im Detail ansehen.
1) Die Schnittstelle zwischen Anwendung und BIOS.
Die "alte" INT13-API stellt nur eine CHS-basierte Schnittstelle zu Verfügung:2) Die Schnittstelle zwischen BIOS und Platte.Die obere Grenze von 254 Köpfen (H) kommt von Programmierfehlern in einigen MS-DOS Varianten, die untere Grenze von 1 Sektor aus historischen Gründen. CHS insgesamt ergibt dann eine maximalen adressierbaren Bereich von bis zu 1,645,056 Sektoren (7.84 GB). Diese Grenze ist nur durch die API-Spezifikation bestimmt, ich habe bisher noch nicht von der Hardware gesprochen!10 Bit für die Zylindernummer (C), max. Bereich 0..1023 8 Bit für die Nummer des Kopfes (H), max. Bereich 0..254 6 Bit für die Sektornummer (S), max. Bereich 1..63 Das System-BIOS sucht sich aufgrund der oben diskutierten Grenzen und der im BIOS einstellbaren Varianten (Normal/Large/LBA) eine "virtuelle" Geometrie aus. Die Partner auf beiden Seiten der Schnittstelle müssen sich auf diese Geometrie einigen. Diese "virtuelle" Geometrie wird für die Partitionierung und Formatierung der Platte benutzt!
Die "neue" (erweiterte) INT13-API stellt nur noch eine LBA-basierte Schnittstelle mit einem 64 bit LBA-Wert zur Verfügung. Das ergibt eine maximalen adressierbaren Bereich von 8,388,608 PB.
SCSI-Hostadapter stellen normalerweise auch eine INT13-API zur Verfügung. Das müssen sie auch tun, wenn sie bootfähig sein wollen. Deshalb leiden SCSI-Platten unter genau denselben BIOS-Einschränkungen wie auch die ATA-Platten. Um kompatibel zu sein, müssen diese SCSI-BIOS Implementationen genauso "virtuelle" Platten-Geometrien erfinden. Der am häufigsten vorkommende Standard ist hierbei der sogenannte "Adaptec-Standard", der unterschiedliche CHS-Zuordnungen für Platten mit weniger als 1 GB, weniger als 2 GB und mehr als 2 GB verwendet (IIRC) - manchmal ist die Art der Zuordnung im SCSI-BIOS einstellbar. SCSI-Adapter von LSI (früher als NCR oder Symbios bekannt) verhalten sich anders: Wenn man eine partitionierte/formatierte Platte an solch einen Adapter anschließt, wird ein BIOS die CHS-Geometrie benutzen, die es im MBR findet, anstatt selbst eine anhand der Plattengröße zu erzeugen.
Dieselbe Regel über passende "virtuelle" Geometrien, die vom BIOS gemeldet und bei der Partitionierung benutzt werden, gilt auch hier!
Im Fall eines ATA-Systems bietet die ATA-Spezifikation schon seit seiner Entstehung zwei Adress-Schemata an - ein CHS-Schema und eins mit LBA. Die SCSI-Spezifikation kennt nur das LBA Schema.Das ATA-CHS Schema funktioniert so:
Das ergibt eine maximalen adressierbaren Bereich von Sektoren im CHS-Modus von 267,386,880 Sektoren (127.5 GB), aber die Spezifikation erlaubt, dies auf (16,383/16/63) bzw. 16,514,064 Sektoren (7.8 GB) zu reduzieren. Die meisten Geräte unterstützen CHS-Adressierung auch nicht über diese Grenze hinaus.16 Bit für die Zylindernummer (C), max. Bereich 0..65535 4 Bit für die Nummer des Kopfes (H), max. Bereich 0..15 8 Bit für die Sektornummer (S), max. Bereich 1..255 Die Platte schlägt die "beste" Konvertierung der CHS-Geometrie für diese Kommunikationsebene vor, aber das BIOS kann sich überlegen, das innerhalb der Grenzen zu überstimmen.
Die ATA-LBA-Adressierung benutzt einen 28 Bit LBA-Wert, der einem maximalen adressierbaren Bereich von 268.435.456 Sektoren (128 GB) entspricht. Es gibt Vorschläge, diese Grenze für die kommende ATA-Spezifikation auf 64 Bit anzuheben. Details dazu können Sie auf der Webseite des ANSI T13-Kommitees finden.
Im Fall von SCSI gab es bisher verschiedene obere Grenzen des adressierbaren LBA-Bereichs (6/10/12 Byte Kommandos). Details dazu finden Sie auf der Webseite des ANSI T10-Komitees.
Wie Sie sehen gab es mit dem Schema der LBA-Adressierung niemals eine wirkliche Grenze im adressierbaren Bereich, weder mit ATA noch mit SCSI. Die einzige Beschränkung bestand in der "alten" CHS-Schnittstelle des BIOS.
Der mit WSeB (und CP/eCS) gelieferte OS/2-Bootmanager und alle Teile, die in späteren Stadien beim Start von OS/2 wichtig sind ("partition sector loader", OS2BOOT, OS2LDR, ...), können von der "neuen" INT13-BIOS-API profitieren, um die gefürchtete 1024 Zylinder-Grenze zu überwinden und OS/2 auch jenseits dieser Grenze zu booten.
ATA (AT Attachment = AT Verbindung): Die Spezifikation für IDE-Festplatten.
INT 13: Ein grundlegender Betriebssystem-Interrupt, aus Zeiten von DOS. Wird benutzt um Funktionen der Festplatte wie Suche, Lesen, Schreiben und Formatieren zu aktivieren.
LBA (Logical Block Addressing = Logische Blockadressierung): Eine Methode, IDE-Platten größer als 504MB (528.482.304 Byte) an PCs zu unterstützen. LBA stellt die notwendige Adressenkonvertierung im BIOS zur Verfügung, um Laufwerke bis zu 8 GB zu unterstützen. BIOSe nach Mitte 1994, die manchmal "erweiterte BIOSe" genannt werden, stellen im Allgemeinen LBA-Konvertierung zur Verfügung.
MBR: Der Master Boot Record von Festplatten.
BPB (Boot Parameter Block): Ein Teil des ersten Sektors eines IBM/MS kompatiblen Dateisystems. Er beschreibt die grundlegende Organisation der Partition (unter anderem die CHS-Geometrie, die während der Formatierung benutzt wurde).
PB: Petabyte,
1 PB = 2^50 byte = 1024 TeB = 1024 * 1024 GB
[Artikelübersicht]
editor@os2voice.org
[Vorherige Seite] [Inhalt]
[Nächste Seite]
VOICE Homepage: http://www.os2voice.org