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

Documentos relacionados