Festplatten: Übersicht Festplatten: mechanischer Aufbau Festplatten
Transcrição
Festplatten: Übersicht Festplatten: mechanischer Aufbau Festplatten
Festplatten: Übersicht Festplatten: mechanischer Aufbau • Die ersten Festplatten wurde in den 70‘er Jahren hergestellt: – – – – – – • Eine Festplatte besteht aus: Zuerst 14 Zoll bis Mitte 80‘er Dann 8 Zoll bis Ende 80‘er Dann 5,25 Zoll bis Mitte 90‘er (selten auch heute noch) 3,5 Zoll ist aktuell 2,5 Zoll für Laptops 1 Zoll für Multimedia Geräte – Einer oder mehreren Datenscheiben – Pro Seite ein Schreib/Lese Kopf – Zwei Motoren: • Ein Schrittmotor zur Steuerung der Schreib/Lese Köpfe • Ein Motor zur Drehung der Datenscheiben – Mehr oder weniger Steuerelektronik • Die 14 Zoll und 8 Zoll Festplatten hatten SMD (Storage Module Drives) Interfaces, dann kam ST506 und ESDI. • Heutzutage EIDE und SCSI • Neue Standards (Firewire, Fibrechanel, ...) bisher nicht durchgesetzt Datenscheiben Schreib/Lese Köpfe Schrittmotor Datenscheibenmotor Seite 1 Festplatten: Steuerelektronik Festplatten: Steuerelektronik • Die Elektronik der Festplatte besteht aus: • Frage: Wieviel von der Steuerelektronik soll auf die Festplatte, und wieviel soll die kontrollereinsteck Karte enthalten: – Datenseparator – ST506 Festplatten enthalten nur Datenseparator • Lesen: wandelt die Analogsignale der Köpfe in digitale Daten • Schreiben: Erzeugt aus digitalen Daten die Analogsignale für die Köpfe • Steuererung der Köpfe und Datenformatierer im Kontroller – ESDI Festplatten enthalten Datenseparator und Kopfsteuerung – Datenformatierer: • Erstmalig werden Kommandos (Fahre auf Spur x) eingesetzt • trennt Nutzdaten von den zusätzlich gespeicherten Daten (Synchronsiationsdaten, Prüfbits, ...) • Wandelt die seriellen Daten von den Köpfen in parallele Daten um – Hostadapter: • Schnittstelle der Festplatte zum Computersystembus Kopf Datensep. Seite 2 Format. – SCSI Festplatten enthalten Datenseparator, Formatierer und Steuerelektronik • Spezieller SCSI Bus mit verschiedenen Geräten möglich • SCSI Kontroller verbindet die Geräte mit dem Prozessor – EIDE Festplatten enthalten alles (inkl. Kontroller) • Direkter Anschluß an den ISA Bus (mit ein paar Dekodier ICs), kein wirklicher Festplattenkontroller mehr notwendig Hostadapter Seite 3 Seite 4 1 Festplatten: Wie wird gespeichert Festplatten: Wie wird gespeichert • Festplatten sind folgendermaßen aufgeteilt: • Moderne Festplatten (alle heutigen) verwenden das Zone Bit Recording: – Sektor • Typischerweise 512 Byte an Nutzdaten – Spur • Mehrere Sektoren, die auf der selben Scheibe ohne Kopfbewegung gelesen werden können – Zylinder • Alle gleichen Spuren über mehrere Scheiben zusammen ergeben einen Zylinder • Ein Sektor kann also durch Zylindernummer, Kopfnummer und Sektornummer adressiert werden. – Da die äußere Spur wesentlich länger als die innere Spur ist, können bei gleicher Datendichte wesentlich mehr Daten gespeichert werden: • Einteilung der Datenoberfläche in mehrere Zonen, so daß die außeren Spuren wesentlich mehr Sektoren enthalten als die inneren Spuren • Höhere Datenrate im äußeren Bereich, da der Datenträger mit der gleichen Geschwindigkeit läuft, wie im inneren Bereich, aber mehr Daten gespeichert sind. • Die Zylinder sind normalerweise von außen nach innen nummeriert, so daß die Platte zuerst die schnellen Bereiche vollschreibt. • Innerste Spur wird als Parkposition verwendet (Autopark) Seite 5 Festplatten: Was wird gespeichert? Festplatten: Was wird gespeichert? • Eine Festplatte speichert nicht nur die Daten, die dem Benutzer zur Verfügung stehen: – Für jeden Sektor werden zusätzliche Daten gespeichert: Gap Sync Header Gap Sync Sektordaten und ECC Seite 6 Gap • Die Einteilung läuft wie folgt ab: – Beim Formatieren werden alle Daten (inkl. Synchronisation, Gaps, ... ) neu geschrieben – Im Normalbetrieb werden nur die Sektordaten geändert • Da die zusätzlichen Daten ca. 40 bis 100 Bytes/Sektor verbrauchen steht eigentlich mehr Kapazität zur Verfügung: • Anhand des Syncs und der Header Informatik kann die genaue Sektornummer festgestellt werden • Gap steht für Lücke, es werden 0en gespeichert: – Gap 1 ist für die Synchronisation wichtig – Gap 2 ist für Schreibzugriffe notwendig, da das Umschalten des Kopfes von Lesen nach Schreiben etwas dauert – Gap 3 ist zum Ausgleich von Drehzahlunterschieden wichtig ist Seite 7 – Normale Sektordatengröße ist 512 Byte – Mit Statusinformationen bis zu ca. 610 Byte – Bis zu 20 % gehen für die Statusinformationen verloren! • Moderne Festplatten reservieren zusätzlich Speicher um kaputte Sektoren der Festplatte auszulagern Seite 8 2 Festplatten: Parameter Festplatten: Parameter • Wesentlich für die Geschwindigkeit sind: • Einige Daten aktueller (2002) Festplatten: – Geschwindigkeit der Kopf Positionierung – IBM 36 GByte Ultrastar 36Z15 (850 Euro, Ultra160 SCSI): • Falls die Daten nicht ‚nebeneinander‘ gespeichert sind, muß der Kopf teilweise oft bewegt werden – Drehzahl der Datenscheiben • Je schneller die Scheiben sich drehen, desto mehr Daten kommen am Schreib/Lese Kopf vorbei. Kann auch durch Erhöhung der Datendichte erreicht werden • Nach einer Kopfbewegung muß im Schnitt eine halbe Umdrehung abgewartet werden, bis der gewünschte Sektor am Kopf vorbei kommt – Datendichte • Wieviele Daten können pro cm² gespeichert werden • • • • • • 15000 UPM (4 ms pro Umdrehung, 4,2 ms average Seek) 6 Datenscheiben, 12 Köpfe Ca. 15 Millionen Bit pro mm² Eine Spur ist ca. 1 µm breit 9 ms für komplette Kopfbewegung von innen nach außen 4 MByte interner Cache – IBM 120 GByte Deskstar 120GXP (450 Euro, ATA 100) • • • • 7200 UPM (ca. 8 ms pro Umdrehung, 8,5 ms average Seek) 3 Datenscheiben, 6 Köpfe Ca. 45 Millionen Bit pro mm² 2 MByte interne Cache Seite 9 Festplatten: SCSI Historisch Festplatten: SCSI Übersicht • SCSI (Small Computer Systems Interface) wurde 1979 (als SASI) von der Firma Shugart entwickelt • 1981 von ANSI übernommen, 1986 wurde SCSI-1 abgesegnet • Schon seit 1983 zunehmend Geräte mit SCSI auf dem Markt! • SCSI unterstützt: – – – – – – Seite 10 Plattenlaufwerke Bandgeräte Drucker Scanner Optische Speicher Kommunikationsgeräte • SCSI unterstützt 8 Geräte (bei 8 Bit), die alle gleichbereichtigt sind: – Normalerweise ein PC (aber auch mehrere möglich) – 7 weitere Geräte (meist Festplatten) • Bei 16 Bit werden auch 16 Geräte unterstützt (vgl. Bus Arbitrierung) • Inzwischen viele Standards: – Fast SCSI: 10 MHz, 8 Bit (mit Wide 16/32 Bit) – Ultra SCSI: 20 MHz, 8 Bit (mit Wide 16/32 Bit) – ... Seite 11 Seite 12 3 Festplatten: SCSI Pins Festplatten: SCSI Terminierung • 50-poliger Stecker mit 26 Pins Masse zur Abschirmung (fast jede zweite Leitung im Flachbandkabel ist Masse) • Pegel 0 Volt oder 5 Volt • 8 Datenleitungen + 1 Paritätsbit • +5 Volt für Terminierung • Steuerleitungen: – ATN, BSY,ACK,RST,MSG,Sel,C/D,REQ,I/O • Bei Wide SCSI Kabel mit 68 Pins und weiteren Signalen: – 8 Datenleitungen + 3 Paritätsleitungen – Steuerleitung ACKB/REQB • An beiden Enden muß der SCSI Bus terminiert werden (d.h. mit Abschlußwiederständen versehen werden) +5V Gerät 1 Gerät 2 Gerät 3 .... Terminierung • Wird an keinem Ende terminiert, so sind die Pegel an einigen Signalen nicht korrekt (Wired Or Prinzip)! • Wird nur an einem Ende terminiert, so können am anderen Ende Signalechos entstehen, und die Datenübertragung stören • Wir an zu vielen Geräten terminiert, so können die Leitungstreiber nicht mehr die erforderlichen Pegel erreichen Seite 13 Festplatten: SCSI Buszyklen Seite 14 Festplatten: SCSI Kommandos • Wenn kein Gerät aktiv ist: Bus Free • Will ein Gerät Daten austauschen: Bus Arbitration: • Nach der Bus Arbitrierung werden Kommandos geschickt (‚Was bist du?‘, ‚Lese Sektor 2‘, ...): – Anlegen seiner ID auf den Datenbits (also Bit 7 für ID 7) – Warten von 2.4 µs, ob andere Geräte auch aktiv werden wollen • Ist kein anderes Datenbit gesetzt, so kann losgelegt werden • Ist ein anderes Datenbit gesetzt, so bekommt der mit der höchsten ID den Bus • Es folgen Selection, Message und Datenaustausch Phase • Ein anderes Gerät kann erst dann einen Buszugriff durchführen, wenn der aktuelle fertig ist. Es gibt keine Unterbrechungsmöglichkeit Seite 15 – Jedes Kommando hat 6/10/12 Byte: • Byte 0 ist immer der Befehlscode • Byte 1-3/1-5/1-5 enthalten Blocknummer (21/32/32 Bit) – Mit 512 Byte Sektorgröße maximal 2 Terabyte adreßierbar • Byte 4/7-8/6-9 enthalten Datenlänge (8/16/32 Bit) • Byte 5/9/11 enthalten ein Steuerbyte – Pflichtkommandos für alle Geräte wie z.B. Inquiry (Informationen über das Gerät anfordern) – Geräteklassen abhängige Kommandos wie z.B. Sektor lesen für Festplatten oder zurückspulen bei Bandlaufwerken Seite 16 4 Festplatten: SCSI Zusammenfassung • Maximal soviele Geräte anschließbar wie Datenbits vorhanden sind (normalerweise 8 oder 16) • Spezieller Kontroller für PC erforderlich • Maximale Datenrate: 160 MByte/s • Maximale Festplattengröße (Fast SCSI-2): 2 Terabyte • Im PC Bereich wegen höheren Kosten langsam von IDE verdrängt • Direkte Transfers von Geräten untereinander möglich Festplatten: IDE Einführung • 1984 von Compaq und Western Digital entwickelt • 1985 erstes Laufwerk von Imprimis (Festplattenhersteller) • Inzwischen der Standard für PC Festplatten – Oft auch EIDE oder ATAPI genannt – Höhere Datenraten durch höhere DMA Geschwindigkeiten (Ultra 66 IDE, Ultra 100 IDE) • IDE basiert auf dem ISA Bus – Nur wenige, billige Bausteine sind zum Anschluß einer Festplatte an den ISA Bus notwendig • Anschluß von maximal 2 Geräten pro Festplattenkontroller Seite 17 Festplatten: IDE Pins Festplatten: IDE Anschlußmöglichkeiten • Fast alle Pins der IDE Schnittstelle sind direkt am ISA Bus vorhanden: – – – – – – – – – – Seite 18 • Einfachste Möglichkeit: Anschluß an ISA Bus – Die gleichen Signale verbinden – CS1FX und CS3FX aus den oberen Adreßleitungen dekodieren: Reset: Resetleitung D0-D15: Datenleitungen A0-A2: Adressleitungen CS1FX, CS3FX: Chip Select Leitungen DMACK, DMARQ: DMA Leitungen INTRQ: Interrupt Request I/O Read, I/O Write: Lese-/Schreibzugriff Steuerleitung IORDY: Für Waitstates PDIAG, DASP, SPSYNC: Festplattenspezifisch IOCS16: 16 Bit Datentransfer • CS1FX entspricht Adressen 0x1F0-0x1F7(P)/0x170-0x177(S) • CS3FX entspricht Adressen 0x3F0-0x3F7(P)/0x370-0x377(S) – PDIAG wird nur zwischen Master und Slave verwendet, nicht beschalten – SPSYNC nicht beschalten, unwichtig – DASP kann als Laufwerksaktivitätanzeiger an eine LED angeschlossen werden Seite 19 Seite 20 5 Festplatten: IDE Anschlußmöglichkeiten • Anschluß an einen Mikrokontroller – Problem: 16 Bit Datenbus, Lösung: 16 Bit Mikrokontroller – DMA/Interrupt evtl. nicht verwenden – Einfach in den Adreßraum einblenden (mit den CS1FX/CS3FX Leitungen) • Anschluß an Parallelport – Eigentlich viel zu langsam – Für Testzwecke ganz witzig – Ein 8-Bit Latch (74HC574) notwendig, sonst direkt mit den Parallelport Pins verbinden Festplatten: IDE Register • Insgesamt stehen 2*8 Register (CS1FX und CS3FX je 8) zur Verfügung, 6 davon sind unbenutzt • Datenbreite immer 8 Bit (bis auf Datenregister mit 16 Bit) (Erbschaft aus XT Zeiten?) Adr. CS1FX Lesezugriff Schreibzugriff Adr. CS3FX Lesezugriff 0 Datenregister Datenregister 0-5 Unbenutzt 1 Fehlerregister Featureregister 6 Alternativ Status Register Steuer Register 7 Adreß Register unbenutzt 2 Sektorzahl Register 3 Sektornummer/LBA 0-7 4 Zylinder 0-7/LBA 8-15 5 Zylinder 8-15/LBA 16-23 6 Laufwerk Register (Bit Kodiert) 7 Status Register Kommando Reg. Schreibzugriff Laufwerk Register: Bit 0-3: Kopfnummer/LBA 24-27 Bit 4: Drive (0 für Master, 1 für Slave) Bit 6: LBA Modus (wenn =1) Seite 21 Seite 22 Festplatten: IDE Register Festplatten: Sektor Adressierung • Weitere Bitkodierte Register: – Fehlerregister: Bit 7 bis Bit 4: Bad Block Detected/Uncorrectable Data Error/Media Change/ID not Found Bit 3 bis Bit 0: Media Change Request/Abort Command/Track 0 not Found/Adress not found – Status Register: Bit 7 bis Bit 4: Busy/Drive Ready/Drive Write Fault/Drive Seek Complete Bit 3 bis Bit 0: Data Request/Corrected Data/Index/Error – Wichtig davon: • Fehler Register: Abort Command: Kommando abgebrochen, ungültig • Status Register: – Busy: Das Laufwerk ist beschäftigt – Drive Ready: Daten können in die Register geschrieben werden – Data Request: Es sollen Daten übertragen werden (Mit DMA oder über das Datenregister) – Error: Es ist ein Fehler aufgetreten, im Fehler Register nachlesen welcher – Index: Wird einmal pro Umdrehung gesetzt Seite 23 • Normalerweise hat (zur Zeit) jeder Sektor 512 Byte • Es stehen 3.5 Register, also 28 Bit, zur Verfügung • Im LBA (Logical Block Adress) Modus werden die Bits als 28 Bit Adresse interpretiert • Im CHS (Cylinder/Head/Sektor) Modus werden die Sektoren wie folgt adressiert: – – – – Register 3: Sektornummer Register 4/5: Zylindernummer Register 6: Kopfnummer Nachteil des CHS Modus ist, daß für den nächsten Sektor nicht einfach der 28 Bit Zähler erhöht werden kann Seite 24 6 Festplatten: Sektor Adressierung Festplatten: Kommunikation • Modus unabhängig: 2^28*512 Byte=128 GByte maximale Größe • Wegen beschränkter Sektoranzahl/Zylinderanzahl und Zone Bit Recording (unterschiedliche Sektoranzahl von inneren und äußeren Zylindern) werden die CHS Adressen von der Festplatte gemappt: • Kommandos werden immer über die Register vom Kontroller in die Festplatte geschrieben • Daten können über das Datenregister oder per DMA ausgetauscht werden • Beispiel: Kommando Recalibrate (Suche Zylinder 0) – Eine Festplatte hat insgesamt 2097900 Sektoren (ca. 1 GByte) – Schreiben von 0x10 in das Kommando Register – Warten bis Kommando ausgeführt (Drive Ready=1 und Drive Busy=0) • Einteilung nach außen in 63 Sektoren/15 Köpfe/2220 Zylinder • In Wirklichkeit ganz andere Aufteilung (als Beispiel): – Eine Datenscheibe, zwei Köpfe – 10000 Spuren, mit drei Zonen zu 50/100/150 Sektoren • Beispiel: Kommando Sektor lesen (Suche Zylinder 0) – – – – Seite 25 Festplatten: Einige Kommandos • • • • • • Seite 26 Festplatten: IDE Zusammenfassung Read Sektor (0x20): Lesen des angegebenen Sektors Write Sektor (0x30): Schreiben des angegebenen Sektors Seek (0x70): Sektoradresse anfahren Recalibrate (0x10): Spur 0 suchen Format Track (0x50h): Spur formatieren Identify Drive (0ECh): Laufwerksdaten ausgeben – – – – – – Sektoradresse in die Register 3-6 eintragen, Anzahl Sektoren (=1) nach Register 2 Befehl Sektor lesen (0x20) in das Kommando Register schreiben Warten bis Drive Ready=1 und Data Request=1 Solange Daten holen (sollten 512 Byte/256 Worte sein) bis Data Request=0 • Maximal 2 Geräte pro Kontroller (Slave/Master Protokoll Register 6) • Früher direkter Anschluß an ISA Bus, heutzutage im Chipsatz integrierter Kontroller • Maximale Datenrate: 100 MByte/s • Maximale Festplattengröße: 128 Gigabyte • Eigentlich nur für Festplatten, inzwischen auch Standard für CD-ROM, Bandlaufwerke und andere Geräte • Direkte Transfers von Geräten nicht möglich untereinander möglich Wort 1/54: Anzahl Zylinder (real/gemapped) Wort 3/55: Anzahl Köpfe (real/gemapped) Wort 6/56: Sektoren pro Spur (real/gemapped) Wort 23-26: Firmware (ASCII) Wort 27-46: Modellbezeichnung (ASCII) Wort 60/61: Gesamtzahl adressierbarer Sektoren im LBA Modus Seite 27 Seite 28 7