Ein-/Ausgabe-Systeme Prof. Dr. Margarita Esponda WS 2011/2012 M. - - PowerPoint PPT Presentation

ein ausgabe systeme
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 1
  • M. Esponda-Argüero

Ein-/Ausgabe-Systeme

WS 2011/2012

  • Prof. Dr. Margarita Esponda
slide-2
SLIDE 2
  • M. Esponda-Argüero

Ein-/Ausgabe-Systeme

2

  • 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
slide-3
SLIDE 3
  • M. Esponda-Argüero

Ein-/Ausgabe-Hardware

3

Wir können Geräte zunächst einmal sehr grob in 3 Klassen klassifizieren:

  • 1. Blockorientierte Geräte
  • 2. Zeichenorientierte Geräte
  • Speichert die Information nur in Blöcke
  • Festplatten, CD-ROMs, USB-Sticks usw.
  • arbeitet nur mit linearen Zeichenströmen
  • nicht adressierbar und keine Suchoperation
  • Zeigegeräte, Netzwerk-Schnittstellenkarten, usw.
slide-4
SLIDE 4
  • M. Esponda-Argüero

Ein-/Ausgabe-Hardware

4

  • 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.

slide-5
SLIDE 5
  • M. Esponda-Argüero

Ein-/Ausgabe-Hardware

5

Eine zweite Klassifizierung nach Verwendungszweck:

  • Speichergeräte
  • Übertragungsgeräte
  • Geräte für Menschmaschine-Kommunikation
  • Festplatten, CD-ROMs, USB-Sticks, magnetische Bänder, usw.
  • Netzwerkkarten, Modems, usw.

Multitouch

  • Bildschirm, Tastatur, Zeigergeräte, Kopfhörer, usw.
slide-6
SLIDE 6
  • M. Esponda-Argüero

Einige typische Datenraten von Ein-/Ausgabe-Geräten

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

slide-7
SLIDE 7
  • M. Esponda-Argüero

Ein-/Ausgabe-Hardware

7

  • Kommunikation auf Hardware-Ebene

– Port – Bus

  • daisy chain
  • gemeinsame direkte Adressierung
  • Controller oder Adapter, der wiederum einen Port, Bus
  • der 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

slide-8
SLIDE 8

8

Bildquelle: Silberschatz, Galvin, Gagne

Typische PC-Busarchitektur

slide-9
SLIDE 9
  • M. Esponda-Argüero

Kommunikation zwischen CPU und IO-Geräten

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.

slide-10
SLIDE 10
  • M. Esponda-Argüero

Kommunikation zwischen CPU und IO-Geräten

10

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).

slide-11
SLIDE 11
  • M. Esponda-Argüero

Ein-/Ausgabeport-Nummer

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

slide-12
SLIDE 12
  • M. Esponda-Argüero

Memory-Mapped-Ein-/Ausgabe

12

Memory-Mapped

  • Die Kontrollregister werden in den Adressraum

des Prozessors eingeblendet.

  • die eingeblendeten Adressen sind im oberen

Adressraum des Speichers. Arbeitsspeicher nur eine Adressraum

slide-13
SLIDE 13
  • M. Esponda-Argüero

Memory-Mapped-Ein-/Ausgabe

13

Hybrides Schema

  • verwendet Memory-Mapped um den Datenpuffer im

Speicher einzublenden

  • Ein-/Ausgabeports für die Kontrollregister

Eingeblendete Datenpuffer Zwei Adressräume

slide-14
SLIDE 14
  • M. Esponda-Argüero

Memory-Mapped-Ein-/Ausgabe

14

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.

slide-15
SLIDE 15
  • M. Esponda-Argüero

Ein-/Ausgabe-Ports

15

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.

slide-16
SLIDE 16
  • M. Esponda-Argüero

Einige Ein-/Ausgabe-Portadressen der PCs

16

Es gibt drei Verfahren für den Zugriff auf die Geräte: Polling, Interrupts und Direct Memory Access

slide-17
SLIDE 17
  • M. Esponda-Argüero

Polling (Beispiel)

17

  • 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.

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!

slide-18
SLIDE 18
  • M. Esponda-Argüero

Interrupts

18

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.

slide-19
SLIDE 19
  • M. Esponda-Argüero

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

  • für die Eingabe bereit ist,
  • oder Ausgabe-Operation

beendet wird,

  • oder Fehlern aufgetreten sind,

wird ein Interrupt erzeugt Interrupt-Händler verarbeitet die Daten

CPU 3 4 5 6 7 2

Ein-/Ausgabe-Interrupt-Zyklus

Geräte-Treiber fängt Ein-/Ausgabe

1

slide-20
SLIDE 20
  • M. Esponda-Argüero

Ereignis-Vektortabelle des Intel-Pentium-Prozessors

20

slide-21
SLIDE 21
  • M. Esponda-Argüero

Direct Memory Access DMA

21

  • 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
slide-22
SLIDE 22

DMA-Kontroller

Ablauf eines DMA-Transfers 1 2 5 6

CPU

Speicher Adresse

Zähler Steuerung

Pufger

CPU-Speicherbus

PCI-Bus A IDE

Platte- Kontroller

3 4

  • 1. CPU fordert vom DMA-Kontroller eine Übertragung von Daten

in die Puffer-Adresse A

  • 2. DMA fordert die Übertragung von m Bytes an Plattendriver
  • 3. Die Übertragung wird vom Platten-Kontroller initialisiert
  • 4. Der Platten-Kontroller sendet Bytes zum DMA-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
slide-23
SLIDE 23
  • M. Esponda-Argüero

Unterbrechungsroutinen

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.

slide-24
SLIDE 24
  • M. Esponda-Argüero

Zwei Klassen von Interrupts

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

slide-25
SLIDE 25
  • M. Esponda-Argüero

25

Präzises Interrupt

  • hat vier Eigenschaften

– 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.

slide-26
SLIDE 26
  • M. Esponda-Argüero

Präzises Interrupt

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

slide-27
SLIDE 27
  • M. Esponda-Argüero

27

Präzises Interrupt

Welche Seitenfehler wird zu erst behandelt? Arithmetische Exception Aber die Summe wurde bereits beendet. Probleme

slide-28
SLIDE 28
  • M. Esponda-Argüero

Rückordnungspüffer ROB

28

retire diapatch head tail

slide-29
SLIDE 29
  • M. Esponda-Argüero

29

Präzises Interrupt

  • Hier muss herausgefunden werden, welche Aktionen bereits

stattgefunden haben und welche noch stattfinden müssen

  • Eine große Menge von Zwischenzuständen müssen

gespeichert werden, bis das Betriebssystem herausfinden kann, was bis jetzt passiert ist.

  • Der Code, um die Maschinen nach dem Interrupt zu starten

und für die Wiederherstellung, wird kompliziert. Paradox – Sehr schnelle superskalare Prozessoren sind manchmal wegen ihrer sehr langsamen Interrupt-Behandlung für Echtzeitsysteme ungeeignet.

slide-30
SLIDE 30
  • M. Esponda-Argüero

30

  • Einige CPUs erlauben präzise und unpräzise Interrupts.
  • Andere Maschinen haben ein Bit.

– Wenn das Bit auf präzise Interrupts gesetzt wird

  • alle Aktionen müssen genau protokolliert werden
  • Schattenkopien von Registern müssen gemacht werden,
  • damit der Zustand der Maschinen eventuell zurück gesetzt

werden kann

  • Großer Einfluss auf die Leistung
  • Die Pentium-Serien haben präzise Interrupts.

– Extrem komplexe Interrupt-Logik innerhalb der CPU. – Befehle werden vervollständigt soweit das notwendig wird

Präzise und Unpräzise Unterbrechungen