Seite 1
Johann Wolfgang Goethe-UniversitätTechnische Informatik Rechnerarchitektur, WS 2003/2004Klaus Waldschmidt © Teil 18 Ein-/Ausgabe
RechnerarchitekturVorlesungsbegleitende Unterlagen
WS 2003/2004
Klaus Waldschmidt
Teil 18
Ein- / Ausgabe
Seite 2
Johann Wolfgang Goethe-UniversitätTechnische Informatik Rechnerarchitektur, WS 2003/2004Klaus Waldschmidt © Teil 18 Ein-/Ausgabe
Ein- / Ausgabe (I/O)
Ziel:Transport von Daten zwischen Rechnern undspezialisierten Endgeräten, wie z. B.:
• Bildschirm, Drucker• Tastatur• A/D-Wandler• Massenspeichereinheiten (Festplatten, etc.)
Einfachste Lösung:Gemeinsames Register, welches sowohl vom Endgerät als auch vom Rechner ge-lesen /geschrieben werden kann.
EndgerätP
uffe
rreg
iste
r
Spe
iche
r
DecoderP
roze
ssor
AdressbusDatenbus
IO
Adressierung der Ein/Ausgabeim Adressbereich des Prozessors(Memory Mapped I/O) oder überspezielle I/O-Bereiche(I/O = 1, sonst I/O = 0)
Seite 3
Johann Wolfgang Goethe-UniversitätTechnische Informatik Rechnerarchitektur, WS 2003/2004Klaus Waldschmidt © Teil 18 Ein-/Ausgabe
I/O - Controller (Co-Prozessoren)
Kommunikation mit Endgeräten u. U. zeitauf-wendig:• Protokoll muss vom Rechner „simuliert“
werden• Rechner muss auf langsamere I/O-Geräte
warten bzw. wird von schnellen Gerätenvoll ausgelastet.
Entlastung des Rechners durch Co-Prozessoren:• UART: Universal Asynchronous Receiver
and Transmitter• Grafikprozessor / Controller• Festplattencontroller•Tastaturcontroller
Beispiel: Grafikkarte zur Ausgabe einer Bitmap auf Bildschirm
Grafik-kontroller
liest Video-Ramzeilenweise aus
Dual-PortRAM
Pixelwert
Grafikbildschirm Adr
essb
us
Dat
enbu
s
Pix
elad
ress
en
Vid
eosi
gnal
(di
gita
l)
Vid
eosi
gnal
(an
alog
)
......
.....
......
.....
Seite 4
Johann Wolfgang Goethe-UniversitätTechnische Informatik Rechnerarchitektur, WS 2003/2004Klaus Waldschmidt © Teil 18 Ein-/Ausgabe
Datenverkehr zwischen Prozessor(en) und Peripherie
Grundsätzliche Verfahrensweisen
• Die programmierte Ein-Ausgabe von DatenBei dieser Methode übernimmt ein Programm,das in der CPU ausgeführt wird, die Steue-rung der Datenübertragung.
• Die interruptgetriebene Ein-Ausgabe von DatenDurch ein extern erzeugtes Signal wird eineUnterbrechung des laufenden Programms er-zwungen und ein gesondertes Ein-/AusgabeProgramm gestartet.
• Der direkte Zugriff auf den Speicher(DMA ... Direct Memory Access)In diesem Fall wird durch einen einfachen„Sonderzweck-Prozessor“ ein separater Daten-weg zwischen Speicher und Peripherie ge-schaffen, der die CPU von der Datenüber-tragungsarbeit entlastet.
In den ersten beiden Fällen erfolgt derDatenaustausch über besondere Ein-heiten, den sog. E/A-Toren (I/O-Ports).Die Art, wie die peripheren E/A-Ge-räte an die CPU angeschlossen wer-den, erlaubt zugleich einen Rückschlußauf die Art der Ein-/ Ausgabe-Befehle (E/A-Befehle), die ein gegebener Mik-roprozessor ausführen kann.
Sind in einem Mikroprozessorbefehls-satz besondere E/A-Befehle vorge-sehen, so ist auch jedes E/A-Tor überden Steuerbus und den Datenbus mitder CPU verbunden.
Seite 5
Johann Wolfgang Goethe-UniversitätTechnische Informatik Rechnerarchitektur, WS 2003/2004Klaus Waldschmidt © Teil 18 Ein-/Ausgabe
Datenbus
Adreßbus
Steuerbus
CPU
Modul 1
Cache
Speicher
Modul 2
E/A
Modul 3
Speicher
Modul 4
Bus eines Prozessors
CPU
Modul 5
Cache
Seite 6
Johann Wolfgang Goethe-UniversitätTechnische Informatik Rechnerarchitektur, WS 2003/2004Klaus Waldschmidt © Teil 18 Ein-/Ausgabe
Datenbuszugang
Tri-State-Gatter:
Ein Tri-State-Gatter besitzt die drei definierten Ausgangszustände 0,1 (abhängig vom Eingangssignal e) und einen hochohmigen Zustand z. Der Zustand z wird durch Aktivierungdes Sperreingangs i (inhibit) erreicht.
Tri-State-Gatter werden immer dann angewandt, wenn mehrere Ausgänge, von denen nur einer aktiv sein darf, an eine Leitung angeschlossen werden sollen (z.B. Busleitungen).
Unidirektionaler Datenbuszugang:Sender/Empfänger
Seite 7
Johann Wolfgang Goethe-UniversitätTechnische Informatik Rechnerarchitektur, WS 2003/2004Klaus Waldschmidt © Teil 18 Ein-/Ausgabe
Bidirektionaler Datenbuszugang
Seite 8
Johann Wolfgang Goethe-UniversitätTechnische Informatik Rechnerarchitektur, WS 2003/2004Klaus Waldschmidt © Teil 18 Ein-/Ausgabe
Charakteristika von Bussen
Busse lassen sich klassifizieren nach:
1. Breite:Anzahl der Leitungen
1. Funktion:Übermittlung von Adressen und/oder Daten und/oder Befehle und/oder Steuersignale
2. Betriebsart:uni- oder multifunktionaler (gemultiplexter) Bus;synchroner (taktgesteuerter) oder asynchroner (ereignisgesteuerter) Bus;
3. Zuordnung:dedizierter Bus für bestimmte Komponenten, gemeinsamer Bus für alle Komponententypen.
Seite 9
Johann Wolfgang Goethe-UniversitätTechnische Informatik Rechnerarchitektur, WS 2003/2004Klaus Waldschmidt © Teil 18 Ein-/Ausgabe
Register
Serielle / Parallele Busse
parallel / seriell Wandler
Serieller Bus
Register
… ParallelerBus
seriell / parallel Wandler
Register
Register
Seite 10
Johann Wolfgang Goethe-UniversitätTechnische Informatik Rechnerarchitektur, WS 2003/2004Klaus Waldschmidt © Teil 18 Ein-/Ausgabe
Bustransaktionen
Busse wickeln Transaktionen ab.
Beispiele: Lesen, Schreiben, Lesen/Modifizieren/Schreiben
Sie erfordern einen oder mehrere Zyklen.
Ein Buszyklus besteht z. B aus:
- Busvergabe- Übertragung von Adresse und Daten- Busfreigabe
Seite 11
Johann Wolfgang Goethe-UniversitätTechnische Informatik Rechnerarchitektur, WS 2003/2004Klaus Waldschmidt © Teil 18 Ein-/Ausgabe
Prozessor Speicher
Bus-adapter
E/A-Schnittstelle
E/ASchnittstelle
Peripheriebus
Systembus
Bushierarchie
E/ASchnittstelle
E/ASchnittstelle
Peripherie-gerät
Graphik Netz Platten
Der Adapter erzeugt Steuersignale und Meldungen, die für den Daten-
austausch benötigt werden.
Seite 12
Johann Wolfgang Goethe-UniversitätTechnische Informatik Rechnerarchitektur, WS 2003/2004Klaus Waldschmidt © Teil 18 Ein-/Ausgabe
Prozessor Speicher
Bus-adapter
E/A-Schnittstelle
E/ASchnittstelle
Peripheriebus
Systembus (Prozessorbus)
Bushierarchie
E/ASchnittstelle
E/ASchnittstelle
Peripherie-gerät
Graphik Netz Platten
Seite 13
Johann Wolfgang Goethe-UniversitätTechnische Informatik Rechnerarchitektur, WS 2003/2004Klaus Waldschmidt © Teil 18 Ein-/Ausgabe
Haupt-speicher
Bushierarchie (Systembus)
Prozessor
C-C
ache
D-C
ache
Cache-Interface
Backside Bus
L2-Cache
Cache-Interface
L3-Cache
Frontside Bus
Seite 14
Johann Wolfgang Goethe-UniversitätTechnische Informatik Rechnerarchitektur, WS 2003/2004Klaus Waldschmidt © Teil 18 Ein-/Ausgabe
Prozessor Speicher
Bus-adapter
E/A-Schnittstelle
E/ASchnittstelle
Peripherie-bus
Systembus
Bushierarchie (Peripherie)
E/ASchnittstelle
E/ASchnittstelle
Peripherie-gerät
Graphik Netz Platten
Seite 15
Johann Wolfgang Goethe-UniversitätTechnische Informatik Rechnerarchitektur, WS 2003/2004Klaus Waldschmidt © Teil 18 Ein-/Ausgabe
Peripheriebusse
Periphere Geräte werden nicht immer einzeln über Schnittstellen mit dem Systembus verbunden. Statt dessen können sie über einen gemeinsamen Peripheriebus betrieben werden.
Der Peripheriebus wird über einen sog. Host-adapter an den Systembus angeschlossen. Vorteile sind u. a. eine bessere Erweiterbarkeit des Systems und eine einheitliche Peripherie-schnittstelle.Im Zusammenhang mit der Plattenperipheriewerden häufig RAID-Protokolle eingesetze.
Prozessor
Speicher
HostAdapter
SCSIAdapter
SCSIAdapter
SCSIAdapter
SCSI-Bus
Endgerät
Endgerät
EndgerätSCSI-Bus
Seite 16
Johann Wolfgang Goethe-UniversitätTechnische Informatik Rechnerarchitektur, WS 2003/2004Klaus Waldschmidt © Teil 18 Ein-/Ausgabe
Bushierarchie
- PCI Bus (Peripheral Component Interconnect)
- SCSI Bus (Small Computer Standard Interface)
- USB (Universal Serial Bus)
Der PCI-Bus (Peripheral Component Inter-connect) ist ein prozessorunabhängiger Peri-pheriebus für den schnellen Datenaustauschzwischen angeschlossenen Adaptern und Systemspeicher. Er unterstützt den Burst-transfer von Daten. Busvergabe und Daten-übertragung lassen sich überlagern (hiddenbus arbitration).
Der SCSI-Bus (Small Computer Standard Interface) dient zur Übertragung großer Datenblöcke zwischen dem Systemspeicherund E/A-Geräten, wie Festplatten, CD-ROM-Laufwerken oder Bandgeräten. In der SCSI-Norm sind sowohl die Hardware (parallele Schnittstelle) als auch das Protokoll definiert.
Seite 17
Johann Wolfgang Goethe-UniversitätTechnische Informatik Rechnerarchitektur, WS 2003/2004Klaus Waldschmidt © Teil 18 Ein-/Ausgabe
Prozessor-kern
Codecache
Datacache
Inter-face
L2Cache
SystembusInterface
I/O I/O I/O
PCI Bus
GraphicAcc.
LocalMemory
System-Memory
ChipsetPCI Bridge
(Lokaler Prozessorbus)
Inter-face
L3Cache
Seite 18
Johann Wolfgang Goethe-UniversitätTechnische Informatik Rechnerarchitektur, WS 2003/2004Klaus Waldschmidt © Teil 18 Ein-/Ausgabe
Prozessor-kern
Codecache
Datacache
Inter-face
L2Cache
SystembusInterface
I/O PCI Agent
PCI Bus
GraphicAcc.
LocalMemory
System-Memory
ChipsetPCI Bridge
SchnittstelleISA Bus
ISA Bus
(33 MHz oder 66 MHz;32 Bit oder 64 Bit)
Busslots
Inter-face
L3Cache
Seite 19
Johann Wolfgang Goethe-UniversitätTechnische Informatik Rechnerarchitektur, WS 2003/2004Klaus Waldschmidt © Teil 18 Ein-/Ausgabe
Prozessor Speicher
Bus-adapter
E/A-Schnittstelle
E/ASchnittstelle
Peripheriebus
Systembus
Bushierarchie
E/ASchnittstelle
E/ASchnittstelle
Peripherie-gerät
Graphik Netz Platten
Seite 20
Johann Wolfgang Goethe-UniversitätTechnische Informatik Rechnerarchitektur, WS 2003/2004Klaus Waldschmidt © Teil 18 Ein-/Ausgabe
Bushierarchie
ATM-Switch
AMT-SwitchAMT-Switch
Lokales ATM-Netzwerk
WAN
Ein ATM-Switch besteht im wesentlichen aus einem Router und einem Speicher.Es entsteht damit ein dynamisches Verbindungsnetzwerk.
Seite 21
Johann Wolfgang Goethe-UniversitätTechnische Informatik Rechnerarchitektur, WS 2003/2004Klaus Waldschmidt © Teil 18 Ein-/Ausgabe
Busprotokoll
Das Busprotokoll legt die einzelnen Schritte der Transaktionsabwicklung fest.
Protokolle sind für die Buszuteilung, die Datenübertragung und die Busfreigabe zuständig.
Darstellung von Busprotokollen:
- Impulsdiagramme- Flußdiagramme- Netze (Petri-Netze)- Automaten
Seite 22
Johann Wolfgang Goethe-UniversitätTechnische Informatik Rechnerarchitektur, WS 2003/2004Klaus Waldschmidt © Teil 18 Ein-/Ausgabe
Übertragungszyklus
Der Busmaster ist während des Über-tragungszyklus für die Synchronisation der Busteilnehmer zuständig.
Hierbei wird zwischen synchronen-und asynchronen Bussen unterschieden:
- Synchroner Bus:Die Bustransaktionen werden auf der Basis eines gemeinsamen Taktes ge-steuert.
- Asynchroner Bus:Die Steuerung der Transaktionen erfolgt durch spezielle Signale zwischen den Teilnehmern einer Transaktion. Es gibt keinen gemeinsamen Takt. Typisch ist
die Handshake-Synchronisation.
Vorteile des synchronen Busses:
� Einfachere Protokolle� keine zusätzliche Synchronisation� hohe Geschwindigkeit
Vorteile des asynchronen Busses:
� kein clock-skew� Übertragungsgeschwindigkeit passt sich
automatisch den Anforderungen an� gut skalierbar
Seite 23
Johann Wolfgang Goethe-UniversitätTechnische Informatik Rechnerarchitektur, WS 2003/2004Klaus Waldschmidt © Teil 18 Ein-/Ausgabe
Ein-/Ausgabe Organisation
Die Organisation der Ein-/Ausgabe bestimmt die Verbindung des Rechnerkerns mit seiner Peripherie.
Die Peripherie ist vielfältig:
- Netze- Drucker- Scanner- Hintergrundspeicher- Terminals etc.
Diese Einheiten werden über Schnittstellen an die Busse angeschlossen.
Seite 24
Johann Wolfgang Goethe-UniversitätTechnische Informatik Rechnerarchitektur, WS 2003/2004Klaus Waldschmidt © Teil 18 Ein-/Ausgabe
Interfaces
Zwischen den Peripheriegeräten und dem Bus sind häufig Interfaces vor-handen. Die Aufgabe dieser Interfaces liegt in der Datenpufferung und ggf. in der Datenkonvertierung:
Eine Datenpufferung ist immer dann notwendig, wenn sich die Datenüber-tragungsrate zwischen Mikroprozessor und Peripheriegerät unterscheidet.
Die Datenkonvertierung ist immer dann not-wendig, wenn sich die Datendarstellung zwischenMikroprozessor und E/A-Gerät unterscheidet:
- Bei der Verarbeitung von Meßwerten werden wertkontinuierliche Signale erfasst . Für die Verarbeitung in einem Mikrocomputer ist eine Analog-Digital-Wandlung notwendig.
- Wird ein Mikrocomputer als Prozeßrechner ein-gesetzt so sind die berechneten Daten für die Steuerung von Stellgliedern (Ventile etc.) in wertkontinuierliche Signale umzuformen (Digital-Analog-Wandlung).
- Bei der seriellen Datenübertragung (z.B. bei Kopplung mit Endgeräten oder prog. Einheiten wie z. B. FPGA) ist oft eine Umformung von serieller nach paralleler Darstellung und um-gekehrt erforderlich.
Seite 25
Johann Wolfgang Goethe-UniversitätTechnische Informatik Rechnerarchitektur, WS 2003/2004Klaus Waldschmidt © Teil 18 Ein-/Ausgabe
Peripherie-Gerät 1
Peripherie-Gerät n
Interface-Einheit Interface-Einheit
. . . .
Datenbus
Ein-/Ausgabe-Selektionsbus
Interfaces zur Pufferung bzw. Datenkonvertierung
Seite 26
Johann Wolfgang Goethe-UniversitätTechnische Informatik Rechnerarchitektur, WS 2003/2004Klaus Waldschmidt © Teil 18 Ein-/Ausgabe
Adressierung von E/A-Geräten
Es stehen grundsätzlich zwei Konzepte zur Verfügung:
1. Memory mapped I/O
Bei der „memory mapped I/O“-Methode wirdfür ein E/A-Tor eine ausgezeichnete, ein-deutige Adresse (die nicht im RAM- oder ROM-Bereich liegen darf) reserviert. Die Datenein-gänge bzw. -ausgänge des E/A-Tors werden an den Datenbus angeschlossen, während der Adressbus mit einem im E/A-Tor enthalten-en Adressdekoder verbunden wird.
Das Peripherie-Gerät ist dann unter seiner Adresse über das E/A-Tor an-sprechbar, wobei der Datentransfer vonbzw. zu einem E/A-Gerät vergleichbar istmit dem Zugriff auf eine Speicherzelle (mit der Adresse des E/A-Tors). Dieses Verfahren ist immer dann anzuwenden, wenn der Mikroprozessor keine speziel-len Befehle zur Dateneingabe bzw.-ausgabe hat.
Load/Store-Befehle werden statt dessenbenutzt.
Seite 27
Johann Wolfgang Goethe-UniversitätTechnische Informatik Rechnerarchitektur, WS 2003/2004Klaus Waldschmidt © Teil 18 Ein-/Ausgabe
Zentral-einheit
E/A 1 SpeicherE/A 2
Datenbus
. . . .
Adressbus
Read/Write
Memory mapped I/O
Seite 28
Johann Wolfgang Goethe-UniversitätTechnische Informatik Rechnerarchitektur, WS 2003/2004Klaus Waldschmidt © Teil 18 Ein-/Ausgabe
2. I/O mapped
Voraussetzung für das Verfahren I/O mapped ist, dass der Prozessor überspezielle E/A-Befehle verfügt, wie z.B. ”IN <addr>” (hole Datenwort vom E/A-Gerät mit der Adresse <addr>) und ”OUT <addr>” (transferiere Datenwortzum E/A-Gerät mit der Adresse <addr>).
Für den Speicher und für die E/A-Geräte (E/A-Tore) gibt es je einen eigenen Adressbereich (getrennte Adressierungsmethoden). Zu derenUnterscheidung gibt der Mikroprozessor spe-zielle Steuersignale aus (das E/A-Tor muss da-her mit dem Steuerbus verbunden sein): BeiSpeicherzugriffen wird das Signal ”memoryrequest ” aktiviert und ”memory read-write” zeigtden Zugriffsmodus an. Wenn ”I/O request” aktiv ist, werden die E/A-Geräte angesprochen, wobeidie Richtung des Datentransfers durch ”I/O read-write ” erkennbar ist. Zur Verringerung der Anzahlder Signalleitungen können ”memory read-write ”und ”I/O read-write ” zu dem Signal ”read-write”zusammengefasst werden.
Seite 29
Johann Wolfgang Goethe-UniversitätTechnische Informatik Rechnerarchitektur, WS 2003/2004Klaus Waldschmidt © Teil 18 Ein-/Ausgabe
Zentral-einheit
E/A 1 SpeicherE/A 2
Datenbus
. . . .
Adressbus
Steuerbus
Read/Write
Seite 30
Johann Wolfgang Goethe-UniversitätTechnische Informatik Rechnerarchitektur, WS 2003/2004Klaus Waldschmidt © Teil 18 Ein-/Ausgabe
E/A-Programm Start
Adressierung des gewünschten E/A-Geräts
Ist die Einheitfür Datenaustausch
bereit?
Ein- oderAusgabe
Datenwort aus demE/A-Gerät in einRegister laden
Datenwort aus derZentraleinheit
ausgeben
Sind noch Datenvorhanden
E/A-Gerät freigeben
E/A Programm Ende
ja
nein
AusgabeEingabe
ja
Für den programmierten Daten-austausch verwendet man spezielle E/A-Programme.
- Prinzipieller Algorithmus fürdie Übertragung eines Datenwortes
Seite 31
Johann Wolfgang Goethe-UniversitätTechnische Informatik Rechnerarchitektur, WS 2003/2004Klaus Waldschmidt © Teil 18 Ein-/Ausgabe
Synchronisation von Datenübertragungen
Um den Datenaustausch zwischen Mikro-prozessor und E/A-Geräten zu koordinieren, müssen neben den eigentlichen Daten Synchronisationssignale transferiert werden.
Da auch diese Signale vom Mikroprozessor zur Peripherie und umgekehrt übertragenwerden müssen, kann man dafür ein eigenes E/A-Tor verwenden, welches dann gleich-zeitig auch zur Pufferung der Synchronisa-tionssignale dient.
Datenbus
Adreßbus
Steuerbus
E/A 1 E/A 1
Zentral-einheit
Peripherie
SynchronisationssignaleDaten
Seite 32
Johann Wolfgang Goethe-UniversitätTechnische Informatik Rechnerarchitektur, WS 2003/2004Klaus Waldschmidt © Teil 18 Ein-/Ausgabe
Für die programmgesteuerte Synchronisation gibt es drei Verfahren:
1.) Anstoßverfahren (Strobing)2.) Statusabstimmung (Polling)3.) gegenseitige Abstimmung (Handshaking)
Strobing
Das Anstoßverfahren (Strobing) eignet sich bei unidirektionaler Datenübertragung und falls die Verarbeitungs- (Übertragungs-)ge-schwindigkeit des Empfängers (z.B. periphe-res Gerät) größer ist als die des Senders (z.B. E/A-Tor des Mikroprozessors). Der Sen-der gibt das Datenwort aus und signalisiert dieses dem Empfänger durch das Strobe-Signal. Der Sender verläßt sich also darauf, dass der Empfänger im Augenblick der Datenausgabe empfangsbereit ist.
Start
Ausgabe einesSynchronisationsimpulses
Ausgabe einesDatenwortes
Ende derÜbertragung?
Ende
ja
nein
Daten
Strobe-Signal
Seite 33
Johann Wolfgang Goethe-UniversitätTechnische Informatik Rechnerarchitektur, WS 2003/2004Klaus Waldschmidt © Teil 18 Ein-/Ausgabe
Polling
Die Status-Abstimmung (Polling) setzt vor-aus, dass die Verarbeitungs-(Übertragungs-)geschwindigkeit des Senders höher ist, als die des Empfängers. Sobald der Sender ein Datenwort übertragen kann, überprüft er dasPolling-Signal, das die Bereitschaft des Em-pfängers zur Datenübernahme anzeigt. BeiEmpfangsbereitschaft kann der Sender das Datenwort ausgeben, anderenfalls muss er warten. Ist der Mikroprozessor der Sender, so muss er permanent das Polling-Signal abfragen und kann in dieser Zeit keine „sinnvollere“ Arbeit verrichten („busy waiting“).
Empfängerbereit?
Start
Ausgabe einesDatenwortes
Ende derÜbertragung?
Ende
Daten
ja
nein
ja
neinPolling-Signal
Seite 34
Johann Wolfgang Goethe-UniversitätTechnische Informatik Rechnerarchitektur, WS 2003/2004Klaus Waldschmidt © Teil 18 Ein-/Ausgabe
Handshaking
Die dritte Möglichkeit zur programmgesteu-erten Synchronisation der Datenübertragungist die gegenseitige Abstimmung (Handsha-king). Sie ist von hoher Übertragungssicher-heit, da sender- und empfängerseitig eine Synchronisation stattfindet (Polling und Strobing):
Der Sender wartet, bis der Empfänger Bereit-schaft signalisiert (Polling). Danach wartet der Empfänger, bis der Sender bereit ist (Strobing). Daran anschließend gibt der Sender das Datenwort aus, das der Empfän-ger aufnehmen kann.
Seite 35
Johann Wolfgang Goethe-UniversitätTechnische Informatik Rechnerarchitektur, WS 2003/2004Klaus Waldschmidt © Teil 18 Ein-/Ausgabe
Start StartSender Empfänger
Empfängerbereit?
Ausgabe einesEmpfänger-
bereit-Signals
Ausgabe einesSender-
bereit-Signals
Senderbereit?
Ausgabe einesDatenwortes
Empfang einesDatenwortes
Daten
Ende derÜbertragung?
Ende derÜbertragung?
Ausgabe einesÜbertragungs-ende-Signals
Ende Ende
nein
ja
ja
Synchronisations-signale
nein
ja
nein
janein
Handshaking
Seite 36
Johann Wolfgang Goethe-UniversitätTechnische Informatik Rechnerarchitektur, WS 2003/2004Klaus Waldschmidt © Teil 18 Ein-/Ausgabe
Interruptgesteuerte Ein/Ausgabe von Daten
Bei der programmgesteuerten Ein / Ausgabe gehtdie Initiative für das Starten und Beenden einerDatenübertragung vom Mikroprozessor aus. Dergroße Nachteil des Polling- und des Handshake-Verfahrens ist das „busy waiting“, d.h. der Mikro-prozessor wartet untätig (ohne andere Aufgabenwahrnehmen zu können) auf die Empfangs-bereitschaft des E/A-Geräts.
In praktischen Anwendungen ist diesessehr ineffizient. Es ist sinnvoller, das Anstoßen der Datenübertragung-Routine nur dann durchzuführen, wenn E/A-Geräte auch für die Datenübertragung bereit sind. Dies erfolgt über sog. Inter-rupts.
Interruptroutine(Datenübertragung)
Sprung zurInterruptroutine
Rücksprung zum unterbrochenenProgramm
laufendesProgramm
Interrupt-Signal
Seite 37
Johann Wolfgang Goethe-UniversitätTechnische Informatik Rechnerarchitektur, WS 2003/2004Klaus Waldschmidt © Teil 18 Ein-/Ausgabe
Interrupt-Pending-Flag
Ein Interrupt-Pending-Bit zeigt dem Prozessoran, ob ein Interruptwunsch ansteht. Es wird ineiner eigenen Phase der Befehlsausführung vom Prozessor gelesen, um festzustellen, ob ein Unterbrechungswunsch vorliegt.
Ein Interrupt erfordert nämlich i. a. nicht,dass die Ausführung des aktuellen Befehlssofort abgebrochen wird; Wenn sich her-ausstellt, dass ein Unterbrechungswunsch vorliegt, muss der Prozessor, wie erwähnt,zuerst einen Teil seines Zustands (PC,
CWP , SR) retten und dann als nächstes die Quelle der Unterbrechung identifizieren.
Seite 38
Johann Wolfgang Goethe-UniversitätTechnische Informatik Rechnerarchitektur, WS 2003/2004Klaus Waldschmidt © Teil 18 Ein-/Ausgabe
Bei einem Interrupt-Verfahren reagiert der Mikroprozessor erst dann, wenn das E/A-Gerät den Datenaustausch wünscht. Dazu sendet es ein Interrupt-Anfrage-Signal(interrupt request) aus, damit (falls der Inter-rupt-Wunsch angenommen wird) der Mikro-prozessor die Abarbeitung des laufenden Programms unterbricht, um eine sogenannteInterrupt-Routine (z.B. service routine) aus-zuführen.
Nach deren Beendigung wird das unter-brochene Programm weiterbearbeitet.
Ein Interrupt-Wunsch des E/A-Geräts kann durch ein Maskierungsbit M im Prozessor(interrupt enable) verhindert werden. Die Annahme eines Interrupt-Wunschs wird dem E/A-Gerät durch das Interrupt-Annah-me-Signal (interrupt acknowledge) gemeldet.
Zentral-einheit
M
Interrupt-Anfrage-Signal
Interrupt-AnnahmeSignal
Peripherie
Interrupt-Verfahren
Seite 39
Johann Wolfgang Goethe-UniversitätTechnische Informatik Rechnerarchitektur, WS 2003/2004Klaus Waldschmidt © Teil 18 Ein-/Ausgabe
Die meisten Mikroprozessoren haben mehrereEingänge für Interrupt-Anfrage-Signale. Fürjeden Interrupt gibt es eine fest vorgegebene Startadresse, an der die betreffende Interrupt-Routine beginnt. Da die Interrupt-Signale im allgemeinen unterschiedliche Prioritäten habenund die Möglichkeit der Maskierung gegebenist, verdrängen Interrupts höherer Priorität sol-che mit niedrigerer Priorität.
Häufig gibt es auch noch einen nicht-maskier-baren Interrupt. Dieser hat höchste Priorität und lässt sich auch nicht durch das Maskier-ungsbit M sperren, so dass der nichtmaskier-bare Interrupt also immer angenommen wird.
Bei Annahme eines Interrupts werden alleInterrupts mit niedrigerer oder gleicher Priorität gesperrt; dann wird der sogen.Programmstatus gerettet, das Signal „inter-rupt acknowledge“ wird ausgegeben und es folgt eine Verzweigung zur Interrupt-Routine.
Neben den maskierbaren Interruptein-gängen besitzen Prozessoren weitere Signaleingänge für die Programmunter-brechung (z. Be. Reset-Eingänge).
Maskierung und Prioritätenzuordnung
Seite 40
Johann Wolfgang Goethe-UniversitätTechnische Informatik Rechnerarchitektur, WS 2003/2004Klaus Waldschmidt © Teil 18 Ein-/Ausgabe
Maskierung und Prioritätenzuordnung
Wenn Interrupts während der laufenden Bearbeitung eines Interrupts auftreten, muss eine Entscheidung getroffen werden, welcher vorrangig bearbeitet wird.
IM IS
A
A>B
B
&
ISR
Q
Prio
rität
senc
oder
IRQ
IRQ1
IRQ2
IRQ3
IRQ4
Status-Register
Seite 41
Johann Wolfgang Goethe-UniversitätTechnische Informatik Rechnerarchitektur, WS 2003/2004Klaus Waldschmidt © Teil 18 Ein-/Ausgabe
Wenn die Anzahl der an den Mikroprozes-sor anzuschließenden E/A-Geräte die An-zahl der verfügbaren Eingänge für Inter-rupt-Signale übersteigt, dann müssen zu-sätzliche Interrupt-Eingänge künstlich ge-schaffen werden.
Dazu gibt es drei Realisierungsmöglich-keiten:
1.) Interrupt-Signal-Erkennung durch Polling-Algorithmus
2.) Interrupt-Erkennung durch Prioritäten-schaltwerk und
3.) Daisy-Chaining
Vervielfältigung der Interruptsignale
Seite 42
Johann Wolfgang Goethe-UniversitätTechnische Informatik Rechnerarchitektur, WS 2003/2004Klaus Waldschmidt © Teil 18 Ein-/Ausgabe
Für die Erkennung und Unterscheidung der Interrupt-Ereignisse durch den Polling-Algo-rithmus werden alle Interrupt-Anfrage-Signaleder E/A-Geräte zu einem Interrupt-Anfrage-Signal (interrupt request) verknüpft. Zusätzlich werden zwei E/A-Tore benötigt, die besondere Aufgaben erfüllen:
- Über das E/A-Tor 1 werden alle Interrupt-Anfrage-Signale zum Mikroprozessor ge-sendet. Wenn er das dort anstehende Signale abruft, kann er feststellen, welcheE/A-Geräte Interrupt-Anfragen gestellt haben.
- Wenn der Mikroprozessor einen Interrupt-Wunsch annimmt, so gibt er an das E/A-Tor 2 ein Signal, aus dem hervorgeht, welche Interrupt-Anforderung bearbeitet wird.
1.) Polling-Algorithmus
Nach Annahme eines Interrupt wird eine Polling-Routine ausgeführt, um zu unter-suchen, wer die Programmunterbrechungausgelöst hat. Zuerst wird das Maskierungs-Bit M zurückgesetzt, um die Unterbrechungder Polling-Routine durch weitere Interrupt-Wünsche zu verhindern. Dann werden dieInterrupt-Ereignisse überprüft. Beim ersten erfolgreichen Vergleich wird zur entsprech-enden E/A-Routine verzweigt.
Seite 43
Johann Wolfgang Goethe-UniversitätTechnische Informatik Rechnerarchitektur, WS 2003/2004Klaus Waldschmidt © Teil 18 Ein-/Ausgabe
Zentral-einheit
M
&InterruptAnfrage(INTRQ)
E/A 1
> 1
E/A 2 E/A n. . . .
....
........
....
....
Interrupt-Anfrage- Interrupt-Annahme-Signale (INTRQ) (INTAK)
3 4 n 3 4 n
Vervielfältigung der Interrupt-Signale bei Polling-Algorithmus
Seite 44
Johann Wolfgang Goethe-UniversitätTechnische Informatik Rechnerarchitektur, WS 2003/2004Klaus Waldschmidt © Teil 18 Ein-/Ausgabe
Nachteilig bei diesem Verfahren, be-sonders bei vielen Interrupt-Signalen, ist der Zeitbedarf für die Abarbeitung der Polling-Routine und die damit ver-zögerte Ausgabe des betreffenden Interrupt-Annahme-Signals. Vor- und Nachteil zugleich ist, dass durch die Reihenfolge, in der die Interrupt-Ereignisse untersucht werden, eine Auswahl nach Prioritäten stattfindet. Wenn z.B. Interrupt-Wünsche von E/A-Gerät 3 und E/A-Gerät 4 vorliegen,wirdzuerst E/A-Gerät 3 bedient. Ein wie-terer (bei praktischen Problemstel-lungen wohl selten) Nachteil ist die durch die Datenwortbreite begrenzte Anzahl der anzuschließenden E/A-Geräte.
INTR 3 =1 ?
Start
Ende
INTR 4 = 1 ?
INTR n = 1 ?
. . .
Sprung zurInterruptroutine n
Sprung zurInterruptroutine 4
Sprung zurInterruptroutine 3
Ende
nein
nein
ja
ja
ja
Zeitbedarf des Polling-Algorithmus
Seite 45
Johann Wolfgang Goethe-UniversitätTechnische Informatik Rechnerarchitektur, WS 2003/2004Klaus Waldschmidt © Teil 18 Ein-/Ausgabe
Ein verbessertes Verfahren ist der sog. „vector interrupt“, bei dem die Polling-Routine gewissermaßen hardwaremäßigrealisiert ist. Ein Prioritätenschaltwerk wählt ein geeignetes Interrupt-Anfrage-Signal aus und übergibt durch ein E/A-Tor der Zentraleinheit eine entsprechende
kodierte Interrupt-Kennung (vector), ausder die Startadresse der betreffenden Interrupt-Routine hervorgeht. Vorteil diesesVerfahrens ist, dass die „schnell arbeitende“Hardware die CPU von der Abarbeitung der Polling-Routine entlastet.
Zentral-einheit
M
&
Prioritäten-schaltwerk
und Encoder
E/A 1
345
n
. . .
InterruptAnfrage
1-aus-n-Code
Interrupt-Anfrage-Signal
Dual-code
Decoder
345
n
Interrupt-Annahme-Signal
1-aus-n-Code
E/A 2 E/A n. . . .
. . .
Dualcode
2.) Interrupt-Erkennung mittels Prioritäten-Schaltwerk
Interrupt-kennung(vector) E/A-
Gerät
Seite 46
Johann Wolfgang Goethe-UniversitätTechnische Informatik Rechnerarchitektur, WS 2003/2004Klaus Waldschmidt © Teil 18 Ein-/Ausgabe
Interrupt-Controller
Vektorisieren heißt, dass sich die Interruptquelledurch Senden einer Interrupt-Vektornummer vonsich aus dem Prozessor bekannt gibt. Ein Inter-rupt-Controller für vektorisierte Interrupts kanndie Priorisierung und einen Teil der Interrupt-initialisierung übernehmen und so den Prozessor,
der ihn durch das INTA-Signal (interruptacknowledge) aktivieren kann, entlasten.Außerdem reduziert der Interrupt-Controller die Zahl der nötigen Interrupt-Inputs des Prozessors.
Beispiel für einen Interrupt-Controller:
ProzessorInterrupt-Controller
E/A E/A.....
INTA
INT
IRQ
Seite 47
Johann Wolfgang Goethe-UniversitätTechnische Informatik Rechnerarchitektur, WS 2003/2004Klaus Waldschmidt © Teil 18 Ein-/Ausgabe
Aufgaben eines Interrupt-Controllers
Der Interrupt-Controller hat eine ähnliche Aufgabe wie ein Busarbiter – mit dem Unterschied,dass jetzt nicht der Bus sondern der Prozessor den Anforderern zugeteilt werden muss.
Die Aufgaben eines Interrupt-Controllers sind u.a.:
• Entgegennahme und Speichern von Interrupt-Anforderungen der Peripherie(IRQ: Interrupt Request)
• Maskieren von Interrupts
• Signalisieren, dass mindestens ein Interruptwunsch existiert (INT)
• Entgegennehmen der Interruptbestätigung von seiten des Prozessors (INTA)
• Priorisieren der nichtmaskierten Interrupt-Anforderungen und Bereitstellen derInterrupt-Vektornummer
• Zurücknehmen des INT-Signals.
Seite 48
Johann Wolfgang Goethe-UniversitätTechnische Informatik Rechnerarchitektur, WS 2003/2004Klaus Waldschmidt © Teil 18 Ein-/Ausgabe
Interrupt-Sequenz bei Vektorisierung
Interrupt-Pending-Bit lesen und falls gesetzt(weitere Interrupts sind jetzt gesperrt)
minimalen Prozessor-Zustand retten;Interrupt-Pending-Bit löschen;Interrupt bestätigen und damit Vektornummer anfordern;(Interrupt-Code-Register wird momentan „eingefroren“ und dasentsprechende Interrupt-Bit gelöscht);mit der Vektornummer die effektive Adresse der Ausnahmebehandlungsroutine aus der Vektortabelle entnehmen unddas Interrupt Disable (ID) Bit zurücksetzen.
Der Interrupt-Controller ist oftmals schon auf dem Prozessorchip integriert.
Seite 49
Johann Wolfgang Goethe-UniversitätTechnische Informatik Rechnerarchitektur, WS 2003/2004Klaus Waldschmidt © Teil 18 Ein-/Ausgabe
Ein drittes Verfahren stellt das Daisy-Chainingdar. Hier wird die Prioritätsentscheidung durch eine Prioritätsschaltkette erreicht. Jedem Inter-rupt-Anfrage-Signal ist ein Glied der Kette zu-geordnet. Aus der Position eines Kettengliedesinnerhalb der Kette ergibt sich die Durchsetz-ungsfähigkeit einer Interrupt-Anfrage. Durch dasMaskierungs-Bit M kann die Interrupt-Anfrageausgeblendet werden. Bei einer Interruptan-frage aus einem Kettenglied der Daisy-Chain wird das M-Bit zurückgesetzt, um eine zusätz-liche Unterbrechung durch weitere Interrupts zu unterbinden. Dies kann selbstverständlich nur erfolgen, wenn kein Interrupt höherer Prio-rität vorliegt. Anschließend wird die Start-adresse der Interrupt-Routine, die jedem E/A-Tor zugeordnet ist, über den Datenbus abge-rufen. Die betreffende Interrupt-Routine wird ausgeführt und das E/A-Gerät bedient.
3.) Daisy-Chaining
Die Vorteile des Daisy-Chain-Verfahrensim Vergleich zu den anderen Verfahren sind erheblich:
- keine Polling-Routine- einfache modulare Erweiterbarkeit- kein Verbrauch von zwei E/A-Toren zur
Generierung der Interrupt-Anfrage-Signale und Interrupt-Annahme-Signale.
M = ”1” Interrupt angenommenM = ”0” Interrupt nicht angenommen
Seite 50
Johann Wolfgang Goethe-UniversitätTechnische Informatik Rechnerarchitektur, WS 2003/2004Klaus Waldschmidt © Teil 18 Ein-/Ausgabe
Zentral-einheit
M
Start-adresse1
Start-adresse2
Prio Prio
Interrupt-Anfrage 1 Interrupt-Anfrage 2
. . .
E/A 1 E/A 2
wired or Interrupt-Anfrage wired or
& &
Prio
Seite 51
Johann Wolfgang Goethe-UniversitätTechnische Informatik Rechnerarchitektur, WS 2003/2004Klaus Waldschmidt © Teil 18 Ein-/Ausgabe
Direkter Speicherzugriff (DMA)
Bei der Ein-/Ausgabe großer Datenmengenerweist sich eine direkte Kommunikation mitdem Hauptspeicher als sinnvoll.Die CPU wird dabei vom Datenverkehr ent-lastet. Die Organisation des Datenverkehrsmit dem Hauptspeicher übernimmt statt-dessen der DMA-Controller
Der DMA-Controller übernimmt die DMA-Request-Verarbeitung und die DMA-Acknowlegde-Erzeugung sowie den Datentransfer zwischen Peripherie-gerät und Speicher.
CP
U
DM
A-
Con
trol
ler
Spe
iche
r
Datenbus
Adressbus
Ein/Ausgabe
IRQDMA_REQ
DMA_ACK
Seite 52
Johann Wolfgang Goethe-UniversitätTechnische Informatik Rechnerarchitektur, WS 2003/2004Klaus Waldschmidt © Teil 18 Ein-/Ausgabe
DMA-Controller
DMA-Controller sind in der Lage, die Daten-übertragung zwischen Speicher und Gerät selbständig ohne Zuhilfenahme des Pro-zessors abzuwickeln (DMA direct memoryaccess). DMA-Controller müssen als Bus-master den Systembus steuern. Für einenÜbertragungsvorgang werden der Schnitt-stellenbaustein und der Controller zunächstvom Prozessor initialisiert.
Er lädt dazu die Steuer- und Adressregister.Anschließend startet er die Ein- bzw. dieAusgabe. Die eigentliche Übertragung derDaten findet dann im Zusammenspiel zwischen der Gerätesteuerung, dem Con-troller und dem Speicher statt. Wenn derÜbertragungsvorgang beendet ist, zeigt der Controller dies dem Prozessor durch einSignal an.
Seite 53
Johann Wolfgang Goethe-UniversitätTechnische Informatik Rechnerarchitektur, WS 2003/2004Klaus Waldschmidt © Teil 18 Ein-/Ausgabe
Ideale DMA
- Adressbus
- Datenbus
R/W = Schreib-/Lese-Signal
Zentral-einheit
Zweitor-Speicher
DMA
Daten
Synchronisations-Signale
R/W
R/W
Eine „ideale“ DMA kann durch Verwendung eines Zweitor-Speichers als Hauptspeichererreicht werden.
In praktischen Anwendungen steht jedoch kein Zweitor-Speicher zur Verfügung.In diesem Fall erfolgt der Zugriff im sog. Burst-Mode oder im sog. Cycle-Stealing-Mode.
Seite 54
Johann Wolfgang Goethe-UniversitätTechnische Informatik Rechnerarchitektur, WS 2003/2004Klaus Waldschmidt © Teil 18 Ein-/Ausgabe
DMA für Burst Mode
Datenbus
Adressbus
RAM-Speicher
DMA-Controller
externesGerät
Prozessor
Seite 55
Johann Wolfgang Goethe-UniversitätTechnische Informatik Rechnerarchitektur, WS 2003/2004Klaus Waldschmidt © Teil 18 Ein-/Ausgabe
Burst-Mode oder Cycle-Stealing-Mode
Vorteile der DMA sind die Beschleunigung des Datenaustauschs mit der Peripherie und die Entlastung der Zentraleinheit. Der Bus kann sich aber als Flaschenhals aus-wirken. Eine Abhilfe bietet ein dedizierter DMA-Bus. Außerdem ist auf Datenkonsis-tenz bei Caches zu achten.
Die Integration eines DMA-Controllers in den Rechnerkern kann auf verschiedene Weise erfolgen, z.B. transparent, d.h. der DMA-Controller kann dem Prozessor Buszyklen entziehen, i.a. durch Blocktransfer, d.h. derDMA-Controller erhält den Bus für die Über-tragung eines ganzen Datenblocks, wobei esmöglich ist, mehrere Blöcke zu verketten. Fürden Blocktransfer verwendet der Controllerdas Byte-Zählregister. Dies wird anfangs vomProzessor mit der Anzahl der zu übertragen-den Bytes geladen.
Seite 56
Johann Wolfgang Goethe-UniversitätTechnische Informatik Rechnerarchitektur, WS 2003/2004Klaus Waldschmidt © Teil 18 Ein-/Ausgabe
E/A-Kanäle
E/A-Kanäle entlasten einen Rechnerkern noch umfassender von der E/A als eineeinfache DMA. Sie können Kanalprogrammeselbstständig ausführen und verfügen übereinen eigenen Befehlssatz.
Das Kanalkonzept wird vorwiegend bei Mainframes und Höchstleistungsrechnern zur Verwaltung einer großen Zahl von Geräten bei gleichzeitig schneller Ver-arbeitung verwendet. Für die E/A-Kanälestehen spezielle Controller (erweiterte DMA-Controller) zur Verfügung.
Seite 57
Johann Wolfgang Goethe-UniversitätTechnische Informatik Rechnerarchitektur, WS 2003/2004Klaus Waldschmidt © Teil 18 Ein-/Ausgabe
E/A-Prozessoren(IOP – I/O-Prozessoren)
E/A-Prozessoren entsprechen dem Kanal-konzept und repräsentieren gewisser-maßen eine Weiterentwicklung.
Für die Aufgaben kommen keine spez. Cont-roller, sondern universelle Mikroprozessorenzum Einsatz. Die Mikroprozessoren sind in derLage zusätzliche Funktionen zu übernehmen.
Diese Funktionen können sein:
• Initialisieren von Geräten• Datenformatierung• Fehlererkennung• Treiber
Durch den Einsatz von Mikroprozessoren als E/A-Prozessoren entsteht insgesamt ein Multiprozessorsystem.
Die Kommunikation kann verbindungslos oder verbindungsorientiert durchgeführt werden.
Seite 58
Johann Wolfgang Goethe-UniversitätTechnische Informatik Rechnerarchitektur, WS 2003/2004Klaus Waldschmidt © Teil 18 Ein-/Ausgabe
Busfunktionen
Prozessor, Speicher und IO kommunizieren überAdress-, Daten- und Steuerbus miteinander. Ausserdem gibt es noch Takt- und Stromversor-gungsleitungen.
Busfunktionen sind:
- Busanforderung und -arbitrierung- Interruptanforderung und
-verarbeitung- Datenübertragung als Busmaster
oder -slave
ArbiterStrom- und
Taktversorgung
Busan-forderung
Interrupt-anfor-derung
Interrupt-verarbei-
tung
Übertra-gungs-steuerung
Talker
Listener
Bus-leitungen
Komponenten eines Businterface
Seite 59
Johann Wolfgang Goethe-UniversitätTechnische Informatik Rechnerarchitektur, WS 2003/2004Klaus Waldschmidt © Teil 18 Ein-/Ausgabe
Sie wird notwendig, wenn an einem Bus mehr als ein Busmaster betrieben wird (Multimasterbetrieb): Arbiter entscheidet über Zuteilung des Busses.
Zentrale Daisy-Chain:
Busarbitrierung
Drei Verfahren (jeweils zentral oder dezentral)stehen zur Verfügung:
• Verkettung (Daisy-Chain)• Abfrage (Polling)• Stichleitungen (Independent Requests)
M0Arbiter
M3M2M1
REQUESTGRANT
M0Arbiter
M1 M2 M3
REQUESTBUSBUSYGRANT
Seite 60
Johann Wolfgang Goethe-UniversitätTechnische Informatik Rechnerarchitektur, WS 2003/2004Klaus Waldschmidt © Teil 18 Ein-/Ausgabe
Dezentrale Daisy-Chain:
M1 M3M2
GRANT-Impuls
Zentraler Arbiter mit Stichleitungen:
Arbiter M1 M2 M3
GRANT1 GRANT3GRANT2
REQUEST1 REQUEST2 REQUEST3
Seite 61
Johann Wolfgang Goethe-UniversitätTechnische Informatik Rechnerarchitektur, WS 2003/2004Klaus Waldschmidt © Teil 18 Ein-/Ausgabe
Zentrale Arbitrierung mit Polling
Arbiter M1 M3M2
weitereBusmaster
Wählleitungen
REQUESTBUSBUSY
Dezentrale Arbitrierung mit Polling (z.B. SCSI)
M1 M2 M3
weitereBusmaster
BUSREADY
BUSBUSY