ein ausgabe systeme
play

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


  1. Ein-/Ausgabe-Systeme Prof. Dr. Margarita Esponda WS 2011/2012 M. Esponda-Argüero

  2. Ein-/Ausgabe-Systeme Ein-/Ausgabe-Hardware • Schnittstelle für Ein-/Ausgabegeräte • Kernel-Subsystem für Ein-/Ausgabeoperationen • Verwandlung von Ein-/Ausgabe-Anforderungen in Ein-/ • Ausgabe-Hardware-Operationen Ströme • Leistungssteigerung • M. Esponda-Argüero 2

  3. Ein-/Ausgabe-Hardware Wir können Geräte zunächst einmal sehr grob in 3 Klassen klassifizieren: 1. Blockorientierte Geräte - Speichert die Information nur in Blöcke - Festplatten, CD-ROMs, USB-Sticks usw. 2. Zeichenorientierte Geräte - arbeitet nur mit linearen Zeichenströmen - nicht adressierbar und keine Suchoperation - Zeigegeräte, Netzwerk-Schnittstellenkarten, usw. M. Esponda-Argüero 3

  4. Ein-/Ausgabe-Hardware 3. weder noch oder beide - Uhren erzeugen nur Unterbrechungen in festen Zeitintervallen. - Es gibt keine klare Grenze zwischen blockorientiert und zeichenorientiert (Bildschirme). Klassifizierungen sind immer gut, um durch Abstraktion Teile des Betriebssystems hardwareunabhängig zu implementieren. M. Esponda-Argüero 4

  5. Ein-/Ausgabe-Hardware Eine zweite Klassifizierung nach Verwendungszweck: - Speichergeräte - Festplatten, CD-ROMs, USB-Sticks, magnetische Bänder, usw. - Übertragungsgeräte - Netzwerkkarten, Modems, usw. - Geräte für Menschmaschine-Kommunikation - Bildschirm, Tastatur, Zeigergeräte, Kopfhörer, usw. Multitouch M. Esponda-Argüero 5

  6. Einige typische Datenraten von Ein-/Ausgabe-Geräten 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 M. Esponda-Argüero 6

  7. Ein-/Ausgabe-Hardware Kommunikation auf Hardware-Ebene • – Port – Bus • daisy chain • gemeinsame direkte Adressierung • Controller oder Adapter, der wiederum einen Port, Bus oder direkt ein Ein-/Ausgabegerät steuern kann. Befehle und Daten werden an den Controller gegeben. • – Spezielle Register im Controller für Daten und Steuerungssignale. – Die Register werden vom CPU gelesen oder geschrieben. Adressierung • – direkte Ein-/Ausgabebefehle und Adressierung – Ein-/Ausgabe mittels Memory-Maps M. Esponda-Argüero 7

  8. Typische PC-Busarchitektur Bildquelle: Silberschatz, Galvin, Gagne 8

  9. Kommunikation zwischen CPU und IO-Geräten 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. M. Esponda-Argüero 9

  10. Kommunikation zwischen CPU und IO-Geräten Wie kommuniziert der Prozessor mit dem Kontrollregister und dem Datenpuffer eines bestimmten Geräts? • Ein-/Ausgabeport-Nummer für jedes Kontrollregister • Jedes Kontrollregister erhält eine eindeutige Speicheradresse zugewiesen (Memory-Mapped-Ein-/Ausgabe). M. Esponda-Argüero 10

  11. Ein-/Ausgabeport-Nummer 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. Arbeitsspeicher Spezielle Ein-/Ausgabebefehle sind nötig: Der Prozessor liest in IN REG, PORT PORT und legt das Ergebnis in REG ab. Ein-/ Ausgabeports Der Prozessor schreibt OUT PORT, REG den Inhalt von REG in ein Kontrollregister. unterschiedliche Adressräume 11 M. Esponda-Argüero

  12. Memory-Mapped-Ein-/Ausgabe Memory-Mapped Die Kontrollregister werden in den Adressraum • des Prozessors eingeblendet. die eingeblendeten Adressen sind im oberen • Adressraum des Speichers. Arbeitsspeicher nur eine Adressraum M. Esponda-Argüero 12

  13. Memory-Mapped-Ein-/Ausgabe Hybrides Schema verwendet Memory-Mapped um den Datenpuffer im • Speicher einzublenden Ein-/Ausgabeports für die Kontrollregister • Eingeblendete Datenpuffer Zwei Adressräume M. Esponda-Argüero 13

  14. Memory-Mapped-Ein-/Ausgabe Vorteile • Die Kontrollregister der Geräte werden als einfache Speichervariablen betrachtet, die direkt aus C Programmen angesprochen werden können. Treiber können vollständig in C geschrieben werden. • Kein spezieller Schutzmechanismus wird notwendig. • Das Betriebssystem kann die Kontrolle eines Gerätes genau einem • Benutzer übergeben beim einfachen Einfügen in die Benutzer- Seitentabelle. Einige Systeme verwenden beide Techniken. Power-PCs benutzen für einige Geräte Memory-Mapped-Ein-/Ausgabe • (z.B. Bildschirm) und spezielle Ein-/Ausgabebefehle für andere. M. Esponda-Argüero 14

  15. Ein-/Ausgabe-Ports Ein-/Ausgabe-Ports haben typischerweise 4 Register: • data-in register wird vom Hostrechner gelesen • • data-out register wird vom Hostrechner geschrieben, um Daten zu senden • • status register Ausführung eines Befehls ist beendet • Das Datenregister kann gelesen werden • Ein Gerätefehler ist aufgetreten • • control register Hier können je nach Gerät verschiedene Arbeitsmodi • gesteuert werden, z.B. Übertragungsgeschwindigkeit, Wortlänge, usw. M. Esponda-Argüero 15

  16. Einige Ein-/Ausgabe-Portadressen der PCs Es gibt drei Verfahren für den Zugriff auf die Geräte: Polling, Interrupts und Direct Memory Access M. Esponda-Argüero 16

  17. Polling (Beispiel) Nehmen wir an, wir haben zwei Bits, um eine Erzeuger- Verbraucher-Beziehung zwischen Host und Kontroller zu steuern. ready -Bit command-ready -Bit 1. Der Hostrechner liest in eine Schleife das ready -Bit bis dieses auf 0 gesetzt wird. 2. Dann setzt er das write -Bit in das Befehlsregister des Kontrollers und schreibt ein Byte in das data-out-register. 3. Der Hostrechner setzt das command-ready -Bit auf 1 . 4. Wenn der Kontroller das command-ready- Bit sieht, setzt er das ready -Bit auf 1 ( Busy ). 5. Der Controller liest das Befehlsregister und sieht den Schreibe-Befehl, liest die Daten aus dem data-out-register (I/O-Operation wird gemacht) . 6. Der Controller setzt das command-ready -Bit auf 0 , setzt das error -Bit auf 0 , den status register auf erfolgreich und das ready -Bit auf 0. Das ganze wiederholt sich für jedes Byte! M. Esponda-Argüero 17

  18. Interrupts Im CPU gibt es eine spezielle Steuerleitung, die der CPU nach Ausführung jedes Befehls sieht. Ablauf eines Interrupts: • Wenn ein Ein-/Ausgabe-Gerät das Ende eines Vorgangs signalisieren will, erzeugt es ein Interrupt. • Das Interrupt-Signal wird vom Interrupt-Controller bearbeitet. • Der Controller legt die Adresse des Geräts, das das Interrupt veranlasst hat. • Der CPU unterbricht seine Arbeit, speichert den Maschinenstatus und verwendet die Nummer der Adressleitungen als Index, um aus dem Interrupt vector die Anfangsadresse des Interrupt-Händlers zu holen. M. Esponda-Argüero 18

  19. CPU Ein-/Ausgabe-Interrupt-Zyklus 1 Geräte-Treiber fängt 2 Ein-/Ausgabe Ein-/Ausgabe-Operation startet zwischen Befehlen kontrolliert 3 der CPU nach Interrupts wenn 4 CPU bekommt ein Interrupt • für die Eingabe bereit ist, und übergibt die Kontrolle 7 • oder Ausgabe-Operation an den Interrupt-Händler beendet wird, • oder Fehlern aufgetreten sind, 5 wird ein Interrupt erzeugt Interrupt-Händler verarbeitet die Daten 6 Die Ausführung des unterbrochenen Prozess wird fortgesetzt M. Esponda-Argüero 19

  20. Ereignis-Vektortabelle des Intel-Pentium-Prozessors M. Esponda-Argüero 20

  21. Direct Memory Access DMA • wichtig für Geräte mit großem Datentransfer (Festplatten) • Erfordert einen DMA- Kontroller, der die Übertragung zwischen verschiedenen Geräten und den Speichern steuert • Ermöglicht Direkter Datentransfer zwischen den Ein-/Ausgabegeräten und dem Speicher • Der DMA besitzt mehrere Register, die vom Prozessor gelesen oder geschrieben werden können • Adress-Register • Byte-Zähler-Register • eins oder mehrere Kontrollregister welches - • Ein-/Ausgabe-Gerät • Datenmenge • Richtung der Datenübertragung M. Esponda-Argüero 21

  22. Ablauf eines DMA-Transfers CPU DMA -Kontroller 1 Adresse Speicher 6 A Zähler Pu fg er Steuerung CPU-Speicherbus 2 5 PCI-Bus 4 1. CPU fordert vom DMA-Kontroller eine Übertragung von Daten in die Puffer-Adresse A 3 2. DMA fordert die Übertragung von m Bytes an Plattendriver IDE 3. Die Übertragung wird vom Platten-Kontroller initialisiert Platte- 4. Der Platten-Kontroller sendet Bytes zum DMA-Kontroller Kontroller 5. DMA-Kontroller überträgt dann die Bytes direkt an Puffer- Adresse A 6. Wenn die Übertragung beendet wird, wird ein Interrupt erzeugt, um dem CPU das Ende der Operation zu signalisieren M. Esponda-Argüero

Recommend


More recommend