- M. Esponda-Argüero
Ein-/Ausgabe-Systeme
WS 2011/2012
- Prof. Dr. Margarita Esponda
Ein-/Ausgabe-Systeme Prof. Dr. Margarita Esponda WS 2011/2012 M. - - PowerPoint PPT Presentation
Ein-/Ausgabe-Systeme Prof. Dr. Margarita Esponda WS 2011/2012 M. Esponda-Argero Ein-/Ausgabe-Systeme Ein-/Ausgabe-Hardware Schnittstelle fr Ein-/Ausgabegerte Kernel-Subsystem fr Ein-/Ausgabeoperationen Verwandlung von
2
Ausgabe-Hardware-Operationen
3
Wir können Geräte zunächst einmal sehr grob in 3 Klassen klassifizieren:
4
Zeitintervallen.
zeichenorientiert (Bildschirme). Klassifizierungen sind immer gut, um durch Abstraktion Teile des Betriebssystems hardwareunabhängig zu implementieren.
5
Eine zweite Klassifizierung nach Verwendungszweck:
Multitouch
6
Tastatur 10 Bytes/s Maus 100 Bytes/s Scanner 400 KB/s 52-fach CD-ROM 7,8 MB/s WLAN nach 802.11n 75 MB/s Compact Flash ATA 300 MB/s FireWire (IEEE 1394b) 3200 393 MB/s USB 3.0 625 MB/s SATA-Plattenlaufwerk 300 MB/S Ultra-640 SCSI 640 MB/s DisplayPort v1.2 (4-lane) 2,7 GB/s 100 GigaBit Internet (100GBASE-X) 12,5 GB/s PCI Express 3.0 (x32 link) 35,5 GB/s
7
– Port – Bus
– Spezielle Register im Controller für Daten und Steuerungssignale. – Die Register werden vom CPU gelesen oder geschrieben.
– direkte Ein-/Ausgabebefehle und Adressierung – Ein-/Ausgabe mittels Memory-Maps
8
Bildquelle: Silberschatz, Galvin, Gagne
9
Die Kommunikation zwischen Controller und CPU erfolgt durch spezielle Register innerhalb des Controllers. Der Prozessor kommuniziert mit dem Controller, indem er die Controller-Register liest oder darauf schreibt. Viele Geräte besitzen außer dem Register einen Datenpuffer, indem das Betriebssystem auch lesen und schreiben kann.
10
Wie kommuniziert der Prozessor mit dem Kontrollregister und dem Datenpuffer eines bestimmten Geräts?
Speicheradresse zugewiesen (Memory-Mapped-Ein-/Ausgabe).
11
Die Menge aller Ein-/Ausgabeports bildet den Ein-/Ausgabeport- Namensraum (I/O port space). Das I/O port space ist geschützt. Nur das Betriebssystem hat Zugriff darauf. Spezielle Ein-/Ausgabebefehle sind nötig: IN REG, PORT OUT PORT, REG
Der Prozessor liest in PORT und legt das Ergebnis in REG ab. Der Prozessor schreibt den Inhalt von REG in ein Kontrollregister.
Arbeitsspeicher
Ein-/ Ausgabeports unterschiedliche Adressräume
12
Memory-Mapped
des Prozessors eingeblendet.
Adressraum des Speichers. Arbeitsspeicher nur eine Adressraum
13
Hybrides Schema
Speicher einzublenden
Eingeblendete Datenpuffer Zwei Adressräume
14
Vorteile
betrachtet, die direkt aus C Programmen angesprochen werden können.
Benutzer übergeben beim einfachen Einfügen in die Benutzer- Seitentabelle. Einige Systeme verwenden beide Techniken.
(z.B. Bildschirm) und spezielle Ein-/Ausgabebefehle für andere.
15
gesteuert werden, z.B. Übertragungsgeschwindigkeit, Wortlänge, usw.
16
Es gibt drei Verfahren für den Zugriff auf die Geräte: Polling, Interrupts und Direct Memory Access
17
gesetzt wird.
schreibt ein Byte in das data-out-register.
auf 1 (Busy).
liest die Daten aus dem data-out-register (I/O-Operation wird gemacht).
auf 0, den status register auf erfolgreich und das ready-Bit auf 0.
Nehmen wir an, wir haben zwei Bits, um eine Erzeuger- Verbraucher-Beziehung zwischen Host und Kontroller zu steuern. ready-Bit command-ready-Bit Das ganze wiederholt sich für jedes Byte!
18
Im CPU gibt es eine spezielle Steuerleitung, die der CPU nach Ausführung jedes Befehls sieht. Ablauf eines Interrupts:
Vorgangs signalisieren will, erzeugt es ein Interrupt.
bearbeitet.
das Interrupt veranlasst hat.
Maschinenstatus und verwendet die Nummer der Adressleitungen als Index, um aus dem Interrupt vector die Anfangsadresse des Interrupt-Händlers zu holen.
19
Ein-/Ausgabe-Operation startet
Die Ausführung des unterbrochenen Prozess wird fortgesetzt
CPU bekommt ein Interrupt und übergibt die Kontrolle an den Interrupt-Händler zwischen Befehlen kontrolliert der CPU nach Interrupts wenn
beendet wird,
wird ein Interrupt erzeugt Interrupt-Händler verarbeitet die Daten
CPU 3 4 5 6 7 2
Geräte-Treiber fängt Ein-/Ausgabe
1
20
21
Geräten und den Speichern steuert
dem Speicher
geschrieben werden können
DMA-Kontroller
CPU
Speicher Adresse
Zähler Steuerung
Pufger
CPU-Speicherbus
PCI-Bus A IDE
Platte- Kontroller
in die Puffer-Adresse A
Adresse A
erzeugt, um dem CPU das Ende der Operation zu signalisieren
23
Interrupt-Behandlung wurde komplexer mit der Einführung von Pipelines.
– Was passiert, wenn ein Interrupt auftritt und die Pipeline voll ist? – Der Befehlszähler bekommt meistens die Adresse des nächsten
Befehls, der in die Pipeline gelegt werden soll, anstatt die Adresse des Befehls, der gerade abgearbeitet wurde.
– Auf superskalaren Maschinen wird durch die Zerlegung von
Befehlen in Mikrooperationen, die durcheinander ausgeführt werden, das Feststellen des Ausführungszustands der Befehle noch komplexer.
– Wenn ein Interrupt kommt, sind viele Befehle in unterschiedlichem
Ausführungsstadium, die nur schwach mit dem Zustand des Befehlszählers zusammenhängen.
24
Aus diesem Grund unterscheidet man zwischen zwei Klassen von Interrupts: nach (Walker und Cragon, 1995)
PC PC
Ausführungs- Stadium Befehl6 Befehl7 Befehl8 Befehl9 Befehl2 Befehl3 Befehl4 Befehl5 100% 90% 45% 20% 60% 40% 10% 0% vollständig ausgeführt nicht ausgeführt Befehl6 Befehl7 Befehl8 Befehl9 Befehl2 Befehl3 Befehl4 Befehl5
Präzises Interrupt ist ein Interrupt, das die Maschine in einem wohldefinierten Zustand hält Unpräzises Interrupt hier muss erst festgestellt werden, welche Aktionen statt gefunden haben, und welche noch statt finden müssen
25
Präzises Interrupt
– Befehlszähler – Alle Befehle vor dem Befehlszähler wurden vollständig abgearbeitet. – Kein Befehl nach dem Befehlszähler wurde ausgeführt. – Der Ausführungszustand des Befehls, auf den der Befehlszähler zeigt, ist bekannt. Hier geht man davon aus, dass Teilausführungen von Befehlen rückgängig gemacht werden können.
26
Was macht die Behandlung von präzise Interrupts hard? Beispiel: Seitenfehler Präzise Unterbrechungen sind viel langsamer Unterbrechungen sind möglich Unterbrechungen sind nicht möglich
27
Welche Seitenfehler wird zu erst behandelt? Arithmetische Exception Aber die Summe wurde bereits beendet. Probleme
28
retire diapatch head tail
29
Präzises Interrupt
stattgefunden haben und welche noch stattfinden müssen
gespeichert werden, bis das Betriebssystem herausfinden kann, was bis jetzt passiert ist.
und für die Wiederherstellung, wird kompliziert. Paradox – Sehr schnelle superskalare Prozessoren sind manchmal wegen ihrer sehr langsamen Interrupt-Behandlung für Echtzeitsysteme ungeeignet.
30
– Wenn das Bit auf präzise Interrupts gesetzt wird
werden kann
– Extrem komplexe Interrupt-Logik innerhalb der CPU. – Befehle werden vervollständigt soweit das notwendig wird