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

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend