Vorlesung Informatik 2

Vorlesung Informatik 2 Teil 4: Rechnerarchitektur und Parallelverarbeitung Kapitel 3 Kommunikation zwischen Rechnerkomponenten Stand 6.3.2008 FH Ka...
Author: Bettina Dittmar
7 downloads 1 Views 850KB Size
Vorlesung Informatik 2 Teil 4: Rechnerarchitektur und Parallelverarbeitung

Kapitel 3 Kommunikation zwischen Rechnerkomponenten

Stand 6.3.2008

FH Kaiserslautern Informatik 1 Teil 2

Lernziele für dieses Kapitel • Die blau & kursiv gedruckten Begriffe sind Ihnen geläufig • Sie kennen die wesentlichen Verbindungstopologien mit ihren Vor- und Nachteilen. • Sie können erklären, wozu man einen Bus braucht und wie er funktioniert (physikalisch und organisatorisch). • Sie wissen wie ein handshake funktioniert und wozu er dient. • Sie können erklären, was memory mapped IO ist und welche Vorteile es hat. • Sie können erläutern, wie Interrupts implementiert sind, wozu man sie braucht und welche Alternativen existieren. • Sie können erklären, wie DMA funktioniert. • Sie können den Aufbau und prinzipielle Funktionsweise eines Steuergerätes für periphere Geräte erklären.

Kapitel 3

Slide 1

© Prof. Dr. Frank Bomarius, 2008

FH Kaiserslautern Informatik 1 Teil 2

Inhalt • • • • •

Kapitel 3

Slide 2

FH Kaiserslautern Informatik 1 Teil 2

Kommunikation zwischen Rechnerkomponenten System-Bus Unterbrechungswerk (Interrupts) Direct Memory Access (DMA) Anschluss peripherer Geräte

© Prof. Dr. Frank Bomarius, 2008

Kommunikation zwischen Rechnerkomponenten • Ein wesentliches Merkmal von Rechenanlagen ist die Art und Weise, in der die Komponenten der Anlage Daten austauschen • Die Leistungsfähigkeit der (internen) Verbindungswege bestimmt die Gesamtleistungsfähigkeit einer Anlage entscheidend mit • Wichtige Einflussgrößen: – Topologie – physikalische Größen – organisatorische Aspekte

Kapitel 3

Slide 3

© Prof. Dr. Frank Bomarius, 2008

FH Kaiserslautern Informatik 1 Teil 2

Kommunikation zwischen Rechnerkomponenten • Topologie – 1 zu 1 (keine Adressen nötig; einfaches Protokoll; Leitungen, die oft unbenutzt sind) – Stern (keine Adressen nötig; einfaches Protokoll; viele Verbindungen die oft unbenutzt sind; mehrere Kommunikationen gleichzeitig möglich) – Bus (jede Komponente hat eine oder mehrere Adressen; zu jedem Zeitpunkt ist nur eine Kommunikationsverbindung möglich – der Bus kann zum Flaschenhals werden) – Ring (Sonderform des Busses – erfordert eine minimale Leitungslänge von "einigen Bit", Leitungsstörung leicht zu erkennen, volle theoretische Übertragungsleistung ist auch praktisch erreichbar) – allgemeines Netz (Mischform aus unterschiedlichen topologischen Grundformen und Verbindungsstandards; erhöhte Ausfallsicherheit und skalierbare Übertragungsleistung, sofern alternative Datenpfade existieren)

Kapitel 3

Slide 4

FH Kaiserslautern Informatik 1 Teil 2

© Prof. Dr. Frank Bomarius, 2008

Kommunikation zwischen Rechnerkomponenten • physikalische Größen (sind zum Teil voneinander abhängig, also nicht frei wählbar)

– Formfaktoren (Stecker, Pinbelegung, …) – Spannungspegel und Ströme – Frequenzen (von Takt und/oder Signalen) – Modulationsart (Amplitude, Frequenz, Phase)

siehe Beispiel unten

– Kodierungsarten (Nutzung von Pegeln u/o Flanken)

siehe Beispiel unten

– Fehlererkennung / Fehlerkorrektur (Übertragung redundanter Informationen) – maximale Leitungslängen (Signallaufzeiten, Störanfälligkeit, kapazitive Lasten…) – maximale Übertragungsraten (Bits/Sekunde, baud-Rate) – Anzahl gleichzeitig anschließbarer Geräte (# verfügbarer Adressen, Treiberleistung, …) – parallele / serielle Übertragung – synchrone / asynchrone Übertragung

siehe Beispiel unten

– simplex, halb-duplex, voll-duplex (unidirektionale, halb/voll bidirektionale Übertragung)

Kapitel 3

Slide 5

© Prof. Dr. Frank Bomarius, 2008

FH Kaiserslautern Informatik 1 Teil 2

Kommunikation zwischen Rechnerkomponenten

Beispiele für Modulationsarten bei frequenzversetzter Übertragung (Modulation = Aufbringen einer niederfrequenten Nutzinformation auf ein höherfrequentes Trägersignal durch Veränderung von Amplitude (AM), Frequenz (FM), oder Phase (PM) des Trägers) Innerhalb von Rechneranlage nicht relevant Beispiel Rundfunk: UKW, VHF, UHF FM MW, LW, KW AM

Kapitel 3

Slide 6

FH Kaiserslautern Informatik 1 Teil 2

© Prof. Dr. Frank Bomarius, 2008

Kommunikation zwischen Rechnerkomponenten Beispiele für Kodierungsarten (Basisbandübertragung)

Bitstrom

1

0

0

0

0

1

Binäre Kodierung (ohne externen Takt nicht eindeutig interpretierbar; und Ruhezustand kann nicht detektiert werden)

0

1

1

1

+ 0,85 V

ManchesterCodierung 1 = 1 – 0 Übergang 0 = 0 – 1 Übergang (selbst-taktend, benötigt doppelte Bandbreite) Differenzielle ManchesterCodierung (höhere Rauschbeständigkeit) Flanke am Intervallanfang Kapitel 3

Slide 7

© Prof. Dr. Frank Bomarius, 2008

0

keine Flanke am Intervallanfang

1

1

- 0,85 V

FH Kaiserslautern Informatik 1 Teil 2

Kommunikation zwischen Rechnerkomponenten asynchrone und synchrone Übertragung

Kapitel 3

Slide 8

FH Kaiserslautern Informatik 1 Teil 2

© Prof. Dr. Frank Bomarius, 2008

Kommunikation zwischen Rechnerkomponenten asynchrone Übertragung

Benutzung von Start-Bit und 1 oder 2 Stop-Bits zur vorübergehenden Herstellung der Synchronisation

7-Bit ASCII Code: A = 6510=10000012 plus ein Paritätsbit, hier: ungerade Parität bei asynchroner Kommunikation mit 7 + 1 Bits plus 3 Start/Stop Bits müssen Sender und Empfänger für jeweils 11 Bits synchron bleiben Kapitel 3

Slide 9

© Prof. Dr. Frank Bomarius, 2008

FH Kaiserslautern Informatik 1 Teil 2

Kommunikation zwischen Rechnerkomponenten • organisatorische Aspekte – Kontrollverfahren (Master-Slave; zentrales/dezentrales Bus Mastering; ggf. Kollisionserkennung) – Priorisierung von Geräten (feste gestaffelte Priorisierung, dynamische Priorisierung, einheitliche Prioritäten im Umlaufverfahren, …) – plug-and-play PNP (Fähigkeit der dynamischen Reorganisation (beim Booten (seit Windows 95 am PCI Bus); heute auch zur Laufzeit, z.B. PCMCIA, USB, FireWire)

Kapitel 3

© Prof. Dr. Frank Bomarius, 2008

Slide 10

FH Kaiserslautern Informatik 1 Teil 2

Inhalt • • • • •

Kapitel 3

Slide 11

Kommunikation zwischen Rechnerkomponenten System-Bus Unterbrechungswerk (Interrupts) Direct Memory Access (DMA) Anschluss peripherer Geräte

© Prof. Dr. Frank Bomarius, 2008

FH Kaiserslautern Informatik 1 Teil 2

System-Bus • Jeder Rechner hat einen System-Bus, der die wesentlichen Komponenten der Anlage mit der CPU verbindet • Der Systembus ist i.a. ein paralleler(*) Bus mit mehreren (>2) Teilnehmern, synchron, aufgeteilt in Adress-, Daten- und Steuerleitungen

Das nebenstehende Bild zeigt ein allgemeines Schema, welches so oder in abgewandelter Form in Rechnern anzutreffen ist (*) neuerdings werden zunehmend wieder serielle Busse interessant, da bei den heutigen Wortbreiten paralleler Busse die geometrischen und technischen Möglichkeiten (Anzahl Pins, Störanfälligkeit) ausgereizt sind Kapitel 3

Slide 12

FH Kaiserslautern Informatik 1 Teil 2

© Prof. Dr. Frank Bomarius, 2008

System-Bus • Der universelle, zentrale System-Bus, wie bisher vereinfacht betrachtet, ist in modernen Rechnern durch eine ganze Reihe von spezialisierten Bussen ersetzt: – Speicherbusse (Front-Side Bus (FSB), (SMB)) – Erweiterungsbusse für Einsteckkarten (ISA, PCI, PCI-Express, …) – Grafikbusse (AGP, …) – Laufwerksbusse (IDE, ATA, S-ATA, SCSI, FiberChannel…) – I/O Busse (FireWire, USB, Ethernet, …) – Busse zu anderen Rechnern (InfiniBand, Ethernet, TokenRing, …)

• Diese Busse sind in einer im wesentlichen hierarchischen Struktur angeordnet [Die folgenden beiden Folien zeigen eine ältere und die aktuelle IntelArchitektur]

Kapitel 3

Slide 13

© Prof. Dr. Frank Bomarius, 2008

FH Kaiserslautern Informatik 1 Teil 2

System-Bus

konkretes Beispiel 1: klassische INTEL Architektur

Nadelöhr: PCI-BUS zwischen North-Bridge und South-Bridge

BIOS

Kapitel 3

Slide 14

FH Kaiserslautern Informatik 1 Teil 2

© Prof. Dr. Frank Bomarius, 2008

System-Bus

konkretes Beispiel 2: neuere INTEL Hub-Architektur (i8xx Chipsatz) • Der Memory Controller Hub (MCH) übernimmt die Funktion der NorthBridge. Hier läuft das Interface des Prozessors (FSB), des Arbeitsspeichers und des AGPs zusammen. • Statt des MCH gibt es auch einen Graphics Memory Controller Hub (GMCH). Dieser hat keine Unterstützung für den AGP. Dafür aber einen eingebauten Grafikchip, der die Grafikkarte ersetzt • Zwischen den Hubs sind schnelle Hub-Interface-Verbindungen implementiert BIOS Kapitel 3

Slide 15

© Prof. Dr. Frank Bomarius, 2008

"alte Schnittstellen" am Legacy Port Controller

FH Kaiserslautern Informatik 1 Teil 2

System-Bus • System-Busse übertragen Adressen, Daten und Steuersignale • typische Größen zur Beschreibung: – die Datenbreite (Anzahl paralleler Datenleitungen): 8, 16, 32, 64, 128 Bit – die Taktfrequenz, wobei je nach Technologie 1, 2 oder 4 Worte pro Taktzyklus übertragen werden können

• limitierende Faktoren: – Anzahl der 'Pins' (z.B: 128 Daten, >20 Steuersignale, >32 Adressen) – Taktfrequenz

• weiteres technisches Problem: "Abwärtskompatibilität" zu älteren (langsameren) Geräten/Standards erfordert variable Geschwindigkeiten und Bridges zu "alten" Bussen (siehe vorangegangene Folien)

Kapitel 3

Slide 16

FH Kaiserslautern Informatik 1 Teil 2

© Prof. Dr. Frank Bomarius, 2008

System-Bus maximale Übertragungsraten

Beispiel: typische Daten des Front-Side-Bus Taktfrequenz in MHz

66

75

83

95

100

133

166

200

1600 MB/s

1 Datenwort / Takt (SDR)

FSB 66

FSB 75

FSB 83

FSB 95

FSB 100

FSB 133

FSB 166

FSB 200

3200 MB/s

2 Datenwörter / Takt (DDR)

FSB 133

FSB 150

FSB 166

FSB 190

FSB 200

FSB 266

FSB 333

FSB 400

6400 MB/s

-

FSB 400

FSB 533

-

FSB 800

4 Datenwörter / Takt (QDR)

-

-

-

• Die Kommunikation auf dem Front-Side-Bus läuft je nach Prozessortyp mit 66, 75, 83, 95, 100, 133, usw. MHz. Dadurch ist die maximale Transferrate zwischen Prozessor und dem Rest des Systems durch den Systemtaktgeber festgelegt • Das Double-Data-Rate-Verfahren (DDR) verdoppelt die maximal theoretische Übertragungsrate, indem pro Takt zwei Datenwörter übertragen werden. Dieses Verfahren wird beim AGP-Steckplatz und dem Hauptspeicher (DDR-SDRAM) eingesetzt. Mit dem Pentium 4 ging Intel noch einen Schritt weiter und übertrugt bei nur 100 MHz Bustakt gleich 4 Datenwörter (Quad-Pumped-Bus) pro Takt Kapitel 3

Slide 17

© Prof. Dr. Frank Bomarius, 2008

FH Kaiserslautern Informatik 1 Teil 2

System-Bus • Beispiel: AMD HyperTransport™ Technology – Neuer Standard von AMD als Reaktion auf die Performanz-Schere zwischen Entwicklung der CPU-Leistung und der Bus-Leistung: eine CPU kann heute 2000 Mal mehr Daten bewegen als vor 25 Jahren; in der gleichen Zeit sind die System-Busse aber nur um den Faktor 200 schneller geworden – HyperTransport definiert einen dualen, unidirektionalen, seriellen Bus mit bis zu 1,6 GHz Takt, der bis zu 6,4 GB/s Übertragungsrate je Richtung erreicht

[White Paper: "HyperTransport™ Technology I/O Link", 2001, AMD]

Kapitel 3

Slide 18

FH Kaiserslautern Informatik 1 Teil 2

© Prof. Dr. Frank Bomarius, 2008

System-Bus • Technische Eigenschaften von HyperTransport

[White Paper: "HyperTransport™ Technology I/O Link", 2001, AMD]

Kapitel 3

Slide 19

© Prof. Dr. Frank Bomarius, 2008

FH Kaiserslautern Informatik 1 Teil 2

System-Bus

Integration von HyperTransport auf dem CPU-Chip: Verlegung von L2-Cache und Speichercontroller von der Northbridge des Motherboards hinein in den (AMD Hammer-) Prozessor zur Verkürzung der Latenzzeiten zwischen CPU und Speicher. DDR Memory-Interface und HyperTransport Interface direkt an der CPU

Kapitel 3

Slide 20

FH Kaiserslautern Informatik 1 Teil 2

© Prof. Dr. Frank Bomarius, 2008

System-Bus Adressierung – Die Hauptspeicherworte (i.a. Bytes) und die Geräte am Bus werden über Adressen angesprochen (Integerzahlen aus gegebenem Wertebereich) – Diese Adressen können in einem gemeinsamen Adressraum oder in getrennten Adressräumen liegen

• Gemeinsamer Adressraum (memory mapped IO): – z.B: Adressen von 0 .. 63k adressieren die Worte des Hauptspeichers und die Werte von 63k+1 bis 64k adressieren die Geräte am Bus – Der Zugriff zum Arbeitsspeicher und zu Geräten erfolgt über einen einheitlichen Mechanismus, also mit den gleichen Steuersignalen und den gleichen Befehlen

• Getrennte Adressräume (spezielle I/O Befehle): – eine zusätzliche Steuerleitung schaltet zwischen Hauptspeicherzugriff und Gerätezugriff um: z.B. IO/M – die Adressen werden entsprechend als Speicher oder Geräteadresse interpretiert – es gibt unterschiedliche Befehle für Speicherzugriffe und für Ein/Ausgabe, z.B. LDA 500 läd A-Register aus Hauptspeicherstelle 500 und INA 500 läd A-Register von E/A-Kanal 500 Kapitel 3

Slide 21

© Prof. Dr. Frank Bomarius, 2008

FH Kaiserslautern Informatik 1 Teil 2

System-Bus • Anmerkung: – bei einem universellen System-Bus ist die Unterscheidung (ein oder zwei Adressräume) eigentlich willkürlich, da man die IO/M Steuerleitung auch als eine weitere Adressleitung interpretieren kann: A0 A1 A2

A0 A1 A2

A19

A19

A20

IO/M

2 MB Adressraum

2 x 1 MB Adressraum

– Technisch liegt die Unterscheidung also "nur" in der Namensgebung einiger Adress- bzw. Steuerleitungen – Die Programmierung erfolgt jedoch unterschiedlich – Memory-mapped-IO (ein homogener Adressraum) ist eine einheitliche Weise unterschiedlichste Geräte mit Maschinenbefehlen anzusprechen – Bei aller Standardisierung: Rechenanlagen unterscheiden sich neben ihrem Befehlssatz für den Programmierer am stärksten in der IOProgrammierung. Das wird heute durch Treiberschichten, welche 'nach oben' vereinheitlichte Programmiermodelle (streams, files, …) anbieten, versucht weitestgehend zu vereinfachen Kapitel 3

Slide 22

FH Kaiserslautern Informatik 1 Teil 2

© Prof. Dr. Frank Bomarius, 2008

System-Bus

Speicherabbildungen der internen und peripheren Komponenten in einem Windows XP Laptop

Kapitel 3

Slide 23

© Prof. Dr. Frank Bomarius, 2008

FH Kaiserslautern Informatik 1 Teil 2

System-Bus Buskontrolle • Für eine fehler- und konfliktfreie Übertragung auf dem Bus ist eine strikte Zugriffskontrolle nötig • Man unterscheidet: – CPU-Kontrolle (ohne / mit Rückmeldung) – Quittungsbetrieb – Unterbrechungsbetrieb

Kapitel 3

Slide 24

FH Kaiserslautern Informatik 1 Teil 2

© Prof. Dr. Frank Bomarius, 2008

System-Bus CPU-Kontrolle ohne Rückmeldung • die CPU ist die einzige Einheit, die als Master auf den Bus Zugriff hat • alle anderen Komponenten können nur als Slave aufgrund Anweisung durch die CPU reagieren (antworten) • die Reaktionszeiten aller Komponenten (einschließlich CPU) sind konstant und fest vorgegeben

Datenausgabe 1. CPU legt Adresse auf den Adressbus 2. CPU legt Daten auf den Datenbus 3. CPU legt nach kurzer Verzögerung das Schreibsignal auf den Steuerbus 4. Nach fest vorgegebener Wartezeit setzt die CPU das Schreibsignal zurück, in Erwartung, dass die adressierte Einheit die Daten erfolgreich übernommen hat 5. CPU nimmt Adresse und Daten vom Bus und beendet so die Ausgabe Kapitel 3

Slide 25

© Prof. Dr. Frank Bomarius, 2008

Dateneingabe 1. CPU legt Adresse auf den Adressbus 2. CPU legt nach kurzer Verzögerung das Lesesignal auf den Steuerbus 3. Nach fest vorgegebener Wartezeit übernimmt die CPU Die Daten vom Datenbus in Erwartung, dass die adressierte Einheit die Daten ordnungsgemäß bereitgestellt hat 4. CPU nimmt Lesesignal vom Bus 5. CPU nimmt Adresse vom Bus und beendet so die Eingabe

FH Kaiserslautern Informatik 1 Teil 2

System-Bus

Beispiel Datenausgabe (vgl. Kapitel 1) (Schreibe Rechenergebnis in Arbeitsspeicher)

Schritt 1 Schritt 2 Schritt 3

Schritt 5

Schritt 4

Kapitel 3

Slide 26

FH Kaiserslautern Informatik 1 Teil 2

© Prof. Dr. Frank Bomarius, 2008

System-Bus Schritt 5

Schritt 1 Beispiel Dateneingabe (vgl. Kapitel 1) (lesen des nächsten Befehls vom Arbeitsspeicher)

Schritt 4

Schritt 2

Schritt 3

Schritt 5

Schritt 1 Schritt 2

Schritt 4

Schritt 3

Kapitel 3

Slide 27

© Prof. Dr. Frank Bomarius, 2008

FH Kaiserslautern Informatik 1 Teil 2

System-Bus CPU-Kontrolle ohne Rückmeldung • Vorteile: – geringe Anzahl von Steuerleitungen (READ, WRITE) – sehr einfache Steuerwerke (bei CPU und in den Geräten)

• Nachteile: – geringe Flexibilität – geringe Leistungsfähigkeit → die (konstante) Zeitverzögerungen zwischen Lese/Schreib-Signal und Datenübernahme bzw. Übergabe richtet sich nach dem langsamsten Gerät am Bus → die Reaktionszeiten schnellerer Geräte können nicht genutzt werden

– ein Cache-Speicher ist hiermit nicht (sinnvoll) realisierbar – der Controller der externen Einheit muss die Daten tatsächlich bereit haben bzw. abnehmen können und nicht noch auf die Reaktion seines externen Gerätes (oder des Benutzers) warten müssen unrealistische Forderung Kapitel 3

Slide 28

FH Kaiserslautern Informatik 1 Teil 2

© Prof. Dr. Frank Bomarius, 2008

System-Bus CPU-Kontrolle mit Rückmeldung • die CPU ist die einzige Einheit, die als Master auf den Bus Zugriff hat • alle anderen Komponenten können nur als Slave aufgrund Anweisung durch die CPU reagieren (antworten) • sie können jedoch über ein weiteres Steuersignal (READY) den Zeitpunkt der Datenübernahme bzw. Übergabe verzögern • Auf der folgenden Folie (unteres Beispiel) wird vom adressierten Gerät 250 ns benötigt bis zum Setzen des READY Signals; nach einer Reaktionszeit von 50 ns kann dann der Datentransfer geschehen. • Bei einem schnellen Cache-Speicher käme das READY-Signal bspw. schon nach 30 ns, so dass nach 50 ns die Daten schon übernommen werden könnten

Kapitel 3

Slide 29

© Prof. Dr. Frank Bomarius, 2008

FH Kaiserslautern Informatik 1 Teil 2

System-Bus

ohne READYSignal: feste Wartezeit von 4 Taktzyklen (200 ns fest)

variabel langes Warten auf das READYSignal vom adressierten langsamen Gerät (hier: 250 + 50 ns)

Kapitel 3

Slide 30

FH Kaiserslautern Informatik 1 Teil 2

© Prof. Dr. Frank Bomarius, 2008

System-Bus CPU-Kontrolle mit Rückmeldung • Vorteile: – flexible Anpassung an die Geschwindigkeiten der Geräte am Bus – ein Cache-Speicher ist hiermit prinzipiell realisierbar (wäre aber noch nicht sehr effizient)

• Nachteile: – eine Kontrolle, ob die Daten tatsächlich übertragen wurden, erfolgt nicht

Kapitel 3

Slide 31

© Prof. Dr. Frank Bomarius, 2008

FH Kaiserslautern Informatik 1 Teil 2

System-Bus Quittungsbetrieb (Handshaking) • im bisher dargestellten Master-Slave Betrieb wurde die gesamte Kontrolle von der CPU vorgegeben und die Datenübertragung erfolgte 'blind' (ohne Erfolgskontrolle) • höchstens eine Verzögerung der CPU durch das READY-Signal war möglich • Nun sollen auch die anderen Geräte am Bus die Kontrolle haben können (ggf. sogar untereinander ohne Belastung der CPU kommunizieren können) • und durch Einführung eines weiteren Steuersignals soll ein bidirektionaler Quittungsbetrieb (handshaking), und damit eine Erfolgskontrolle, möglich werden

Kapitel 3

Slide 32

FH Kaiserslautern Informatik 1 Teil 2

© Prof. Dr. Frank Bomarius, 2008

System-Bus

Handshake Betrieb beim Schreiben und Lesen

gerätespezifische Verzögerungszeit Kapitel 3

Slide 33

© Prof. Dr. Frank Bomarius, 2008

FH Kaiserslautern Informatik 1 Teil 2

System-Bus Schreiben: • Beim Schreiben legt der MASTER (CPU oder externes Gerät) zunächst die Adresse, die Daten und das Steuersignal WRITE auf den Bus. • Mit dem Steuersignal MSYN (Master-Synchronisation) zeigt der MASTER dem angesprochenen Gerät (SLAVE) an, dass sämtliche für den Datenverkehr benötigten Signale auf dem Bus anstehen. • Der SLAVE übernimmt darauf die Daten vom Bus und quittiert die Übernahme mit dem Signal SSYN (SLAVE-Synchronisation). • Als Reaktion werden WRITE-Signal, Daten und Adressen vom Bus genommen, und das MSYN-Signal wird negiert. • Das Negieren des MSYN-Signals bewirkt das Negieren des SSYN-Signals durch den SLAVE, womit der Schreibvorgang beendet und der Bus für einen erneuten Datenverkehr freigegeben wird.

Kapitel 3

Slide 34

FH Kaiserslautern Informatik 1 Teil 2

© Prof. Dr. Frank Bomarius, 2008

System-Bus Lesen: • Beim Lesen von Daten legt der MASTER zunächst die Adresse und das Steuersignal READ auf den Bus. Mit dem Signal MSYN wird nach einer hardwarebedingten Verzögerung der Lesevorgang im angesprochenen SLAVE gestartet • Durch das SSYN-Signal zeigt dann der SLAVE an, dass die angeforderten Daten auf dem Bus zur Übernahme durch den MASTER bereitstehen. • Nach der Übernahme der Daten durch den MASTER werden Adresse und READ vom Bus genommen und das MSYN-Signal negiert. • Durch die Negation des MSYN-Signals erkennt der SLAVE die Datenübernahme durch den MASTER und beendet den Zyklus durch Freigabe des Datenbusses und Negation des SSYNSignals.

Kapitel 3

Slide 35

© Prof. Dr. Frank Bomarius, 2008

FH Kaiserslautern Informatik 1 Teil 2

System-Bus Quittungsbetrieb (Handshaking) • Durch den wechselseitigen Quittungsbetrieb können Geräte mit unterschiedlichsten Reaktionszeiten am gleichen Bus betrieben werden. • Dabei könnten die beiden Signale READ und WRITE auch zu einem Signal zusammengefasst werden, da sie jetzt nicht mehr zur Synchronisation sondern nur noch zur Unterscheidung zwischen Lesen und Schreiben verwendet werden. • Nachteil: – sehr lange Reaktionszeiten des Slaves (z.B. mehrere Sekunden bei Warten auf Benutzereingabe) legen den Bus und damit den gesamten Rechner lahm, obwohl der Rechner zwischenzeitlich andere Aufgaben erledigen könnte – eine konkrete Fehlererkennung und -signalisierung ist durch den Handshake nicht möglich

Kapitel 3

© Prof. Dr. Frank Bomarius, 2008

Slide 36

FH Kaiserslautern Informatik 1 Teil 2

Inhalt • • • • •

Kapitel 3

Slide 37

Kommunikation zwischen Rechnerkomponenten System-Bus Unterbrechungswerk (Interrupts) Direct Memory Access (DMA) Anschluss peripherer Geräte

© Prof. Dr. Frank Bomarius, 2008

FH Kaiserslautern Informatik 1 Teil 2

Unterbrechungswerk • Mit dem Handshaking-Protokoll können unterschiedliche Reaktionszeiten von Geräten ausgeglichen werden • Es verbleibt aber das Problem, dass der Bus und damit die CPU (spätestens wenn sie den nächsten Befehl laden muss) von langsamen Geräten gebremst werden • Man trennt daher die Initiierung eines Übertragungsvorgangs (durch die CPU) von der Ausführung der Übertragung (durch den Controller des Gerätes) und lässt zwischenzeitlich die CPU andere Aufgaben erledigen • Dazu muss die CPU wieder unterbrochen werden, sobald die angeforderten Daten zur Übertragung anstehen bzw. ein externes Gerät zur Datenübernahme bereit ist • Mit dem gleichen Mechanismus (Unterbrechung, Interrupt) kann auch die Reaktion auf andere externe und interne Ereignisse (bspw. extern: gefährliche Situation an einer Maschine, Mausbewegung, Festplatte ist zur Übertragung bereit; intern: abgelaufenes Zeit-Signal, overflow, Division durch Null) implementiert werden • Das Unterbrechungskonzept dient also nicht nur zur Implementierung von Reaktionen auf Ereignisse am Bus sondern auf Ereignisse beliebiger Quellen innerhalb und außerhalb des Rechners

Kapitel 3

Slide 38

FH Kaiserslautern Informatik 1 Teil 2

© Prof. Dr. Frank Bomarius, 2008

Unterbrechungswerk • Die Zuordnungen zu den Interrupts 3,4,5,7,10,11 können verändert werden. • Die Mehrfachbelegung einiger Interrupts wird vom Betriebssystem aufgelöst

Kapitel 3

Slide 39

© Prof. Dr. Frank Bomarius, 2008

Beispiel: Interrupts und die ihnen zugeordnete Hardware links Windows XP Laptop rechts Windows 98SE PC

FH Kaiserslautern Informatik 1 Teil 2

Unterbrechungswerk • Allgemeines Konzept der Unterbrechung: – zu überwachende Zustände oder Ereignisse innerhalb oder außerhalb des Rechners werden mit Unterbrechungssignalen (interrupt requests IRQs) assoziiert – wird ein IRQ ausgelöst, kann festgestellt werden, was die Ursache ist (die IRQs sind unterscheidbar) → entweder durch aktive Nachfrage der CPU bei allen Geräten, die Interrupts auslösen können → oder durch einen Interrupt-Vektor, der der CPU zusammen mit dem Interrupt-Signal übergeben wird; dieser Vektor spezifiziert die Startadresse einer Handler-Routine (interrupt service routine, ISR), die die spezifische Reaktion auf den Interrupt implementiert

– nach der Reaktion auf die Unterbrechung wird das unterbrochene Programm fortgeführt

Kapitel 3

Slide 40

FH Kaiserslautern Informatik 1 Teil 2

© Prof. Dr. Frank Bomarius, 2008

Unterbrechungswerk • Da nicht alle Unterbrechungsursachen gleich dringend sind, ordnet man sie in Dringlichkeitsebenen (Prioritäten) ein, z.B: – Ebene 1 (hohe Priorität): rechnerinterne Unterbrechungen – Fehler in der Hardware oder in der Software des Betriebssystems, Ausfall der Netzspannung, … – Ebene 2 (mittlere Priorität): Unterbrechungen von externen (peripheren) Geräten – Ebene 3 (niedere Priorität): programmgesteuerte Unterbrechungen (sog. Software-Interrupts, z.B. genutzt beim Debugging)

• Die einzelnen Ebenen werden nochmals in Stufen unterteilt, wobei deren Anzahl (8, 16, 32 und mehr) von der Rechnerstruktur abhängig ist • Die Prioritätsebenen der Unterbrechungsursachen und/oder die zugeordneten Handler-Routinen können zum Teil vom Anwendungsprogrammierer konfiguriert und manchmal auch dynamisch (programmgesteuert) verändert werden

Kapitel 3

Slide 41

© Prof. Dr. Frank Bomarius, 2008

FH Kaiserslautern Informatik 1 Teil 2

Unterbrechungswerk • Implementierung: – durch Software – polling (regelmäßige Abfrage aller Geräte) → eine Software liest in gewissen zeitlichen Abständen bestimmte Register des Prozessors und von externen Geräten aus und entscheidet daraufhin, ob und welche Reaktionen, und ggf. in welcher Rangfolge diese erforderlich sind → der Vorteil liegt darin, dass (fast) keine spezielle Hardware und keine speziellen Befehle benötigt werden → die Nachteile sind, dass der Prozessor durch das ständige (oft unnötige) Nachfragen signifikant belastet wird und dass eine Reaktion auf ein Ereignis erst nach einer unbekannten Totzeit erfolgen kann dies ist für die Reaktion auf sehr zeitkritische Ereignisse nicht akzeptabel!

pollingAlgorithmus

Hardware zur Abfrage durch den pollingAlgorithmus

Kapitel 3

Slide 42

FH Kaiserslautern Informatik 1 Teil 2

Prioritätskodierung, zB: 111 ~ NMI © Prof. Dr. Frank Bomarius, 2008

Unterbrechungswerk • Implementierung: – durch Hardware – interrupts (evtl. erweitert um DMA (s.u.)) → über spezielle Signalleitungen werden Ereignisse an eine Hardware geliefert, die unabhängig von der CPU die Signale auswertet → liegt ein Unterbrechungsgrund vor, der höhere Priorität als das gerade laufende Programm hat, wird die CPU nach dem gerade in Abarbeitung befindlichen Befehl angehalten und der Status des Programms gesichert → Eine Unterbrechungsroutine wird gestartet, indem deren Anfangsadresse ins BZR geladen wird – damit ist nach einer garantierten Maximalzeit (nach ca. 1 Befehl) eine Reaktion eingeleitet → Diese Adresse (Interrupt Vektor) kann entweder aus einer speziellen Tabelle kommen, oder direkt vom Gerät zusammen mit dem Interruptsignal geliefert werden (z.B. über den Adressbus) → Die CPU quittiert einen Interrupt über ein spezielles Signal, was zur Zurücknahme der Interruptsignals führt (~Handshake)

Kapitel 3

Slide 43

© Prof. Dr. Frank Bomarius, 2008

FH Kaiserslautern Informatik 1 Teil 2

Unterbrechungswerk Hardware-Implementierung eines Unterbrechungswerks • Das Bild unten zeigt den prinzipiellen Aufbau eines Unterbrechungswerks, welches 3 Interrupts verarbeiten kann, ohne die CPU zu belasten • Jeder Interrupt kann selektiv maskiert (abgeschaltet) werden (Maske 1 – Maske 3) • Die Reaktion auf Interrupts kann ganz unterbunden werden (generelle Maske) Maske 1 Interrupt 1

&

Maske 2 Interrupt 2

&

Maske 3 Interrupt 3

Prioritätsentschlüsselung

• Die Priorisierungsschaltung (Priority Interrupt Controller – PIC) fasst die Bewertung aller gerade anliegender (nicht maskierter) Interrupts und die Priorität des gerade in Bearbeitung befindlichen Programms zusammen und entscheidet, ob ein InterruptRequest (IRQ) an die CPU weitergereicht werden soll

generelle Maske

&

&

Programmpriorität Interrupt Vektor

Kapitel 3

Slide 44

FH Kaiserslautern Informatik 1 Teil 2

Interrupt Request

© Prof. Dr. Frank Bomarius, 2008

Unterbrechungswerk • Durch die Hardware-Implementierung erfolgt die von der CPU getrennte Bearbeitung der Interrupts – es können auch sehr komplexe InterruptAbstufungen mit sehr kurzer Bearbeitungszeit realisiert werden • Durch selektive oder sogar generelle Maskierung von Interrupts können kritische Programmabschnitte des Betriebssystems und insbesondere die Interrupt-Routinen selbst vor Unterbrechung geschützt werden: 1024: #FFH

Beispiel für die Maskierung aller Interrupts

Kapitel 3

Slide 45

// die Interruptmaske - alle 16 Interrupts sind // initial freigeschaltet

// Interrupt-Handler mit höchster Priorität 5640: LDA 1024 // aktuelle Interrupt-Maske laden 5641: STA 5744 // … und vorübergehend sichern 5642: LDA #00H // alle Interrupts 5643: STA 1024 // … werden maskiert 5644: … // Körper der Handler-Routine … // … vor Unterbrechungen geschützt 5742: LDA 5744 // alte Interrupt-Maske zurückholen 5742: STA 1024 // … und wieder herstellen 5743: RTI // Return from Interrupt – restauriert // unterbrochenes Programm 5744: #00H // Platz für Ablage der gesicherten Maske

© Prof. Dr. Frank Bomarius, 2008

FH Kaiserslautern Informatik 1 Teil 2

Die Schritte 4 und 5 werden oft in einem Befehl (spezieller Unterprogrammaufruf) in einem Befehlszyklus abgearbeitet

Kapitel 3

Slide 46

FH Kaiserslautern Informatik 1 Teil 2

Unterbrechungswerk Verarbeitungsschema einer Unterbrechungsanforderung: 1. Die Hardware priorisiert die Unterbrechungssignale und generiert, je nach Maskierung, einen Interrupt-Request (ein Signal an die CPU) 2. Der aktuelle Befehlszyklus der CPU wird noch zu Ende geführt 3. Weitere Unterbrechungen werden generell unterbunden 4. Der Prozessorzustand (BZR, Flag Register, usw.) wird im Arbeitsspeicher (z.B. im Stack) abgelegt, so dass das unterbrochene Programm später unbeschadet fortgesetzt werden kann 5. Zusammen mit dem Interrupt-Request wird ein Interrupt-Vektor bereitgestellt, der die Adresse des dem Interrupt zugeordneten Programms (die Interrupt-Service-Routine, ISR) enthält; die ISRAdresse wird nun in das BZR geladen 6. Die ISR wird abgearbeitet, womit die notwendige Reaktion auf die Unterbrechung erfolgt. Die generelle Unterbindung weiterer Unterbrechungen wird, je nach Kritikalität, oft schon vor Ende der ISR aufgehoben (Dies kann ggf. zu einer Unterbrechung der aktuellen ISR durch einen Interrupt höherer Priorität führen siehe nächste Folie) 7. Die ISR restauriert den Zustand des unterbrochenen Programms 8. Damit ist die ISR abgearbeitet und mit dem nächsten Haushaltszyklus wird der nächste Befehl des unterbrochenen Programms geladen © Prof. Dr. Frank Bomarius, 2008

Unterbrechungswerk • Das Bild unten zeigt die zeitliche Verarbeitung eines Programms, welches durch drei Interrupts unterschiedlicher Priorität unterbrochen wird • Stufe 1 sei die höchste Priorität, Stufe 4 die niedrigste • Die ISR der Stufe 2 (ISR1) wird ihrerseits durch einen Interrupt noch höherer Priorität (bearbeitet durch ISR2) unterbrochen

Kapitel 3

Slide 47

© Prof. Dr. Frank Bomarius, 2008

FH Kaiserslautern Informatik 1 Teil 2

Unterbrechungswerk • Bei einigen Rechnern, sind die höchst-priorisierten Interrupts nicht maskierbar (man spricht von non-maskable interrupts NMI), bspw: memory parity Fehler, Fehler auf dem Bus • Zwei charakteristische Zeiten sind zu unterscheiden: – Interrupt Latenz (interrupt latency) – Zeit zwischen Auftauchen des Interruptsignals und dem Zeitpunkt, zu dem die CPU das Signal erkennt (kann bei vorübergehender Maskierung erst sehr viel später sein) – Beantwortungszeit (interrupt response time) – Zeit zwischen der Erkennung des Interrupts durch die CPU und dem Ausführen des ersten Befehls der Interrupt Service Routine

• In sogenannten Realzeit-Anwendungen, darf die Summe aus latenz- und response-time eine garantierte Obergrenze nicht überschreiten dies lässt sich nur mit speziellen RealzeitBetriebssystemen erreichen (d.h.: nicht mit Windows und auch nicht mit den üblichen UNIX/Linux Systemen)

Kapitel 3

Slide 48

FH Kaiserslautern Informatik 1 Teil 2

© Prof. Dr. Frank Bomarius, 2008

Unterbrechungswerk • Ereignisse, die zu Interrupts führen, sind entweder – softwaregeneriert (bspw: page fault, cache miss, overflow, Division durch Null, Zugriff auf eine überwachte Speicheradresse, Adressfehler, …) oder – hardwaregeneriert (von einem peripheren Gerät oder Sensoren im Rechner selbst (bspw. Temperaturfühler, Spannungsüberwachung, …))

• Softwaregenerierte Ereignisse sind insofern speziell, als sie – immer synchron mit der Befehlsausführung auftreten (reproduzierbar), während hardwaregenerierte Interrupts immer asynchron (zu beliebigen Zeiten und nicht reproduzierbar) passieren – prinzipiell vom Programm verursachte Ausnahmezustände anzeigen

• Für softwaregenerierte Ereignisse verwendet man (zur Unterscheidung von hardware-Interrupts) manchmal den Begriff trap und bezeichnet die automatisch aufgerufene Prozedur als trap handler • Das Abarbeitungsprinzip ist aber identisch zu den Interrupts und ISRs (traps werden dann als niederste Ebene in der Interrupt-Priorisierung angesiedelt) • Das Arbeiten mit traps und zugehörigen Handlerroutinen kann als Programmiermodell für "nebenläufige Programme" benutzt werden bspw. für Debugger und Monitorprogramme

Kapitel 3

Slide 49

© Prof. Dr. Frank Bomarius, 2008

FH Kaiserslautern Informatik 1 Teil 2

Unterbrechungswerk Beispiel • Aufgabenstellung: – Daten, die auf Belegen optisch gespeichert sind, sind mittels Belegleser abzutasten und auszuwerten. – Die Abtastzeit wie auch die Auswertezeit hängen vom jeweiligen Beleg ab

• Lösung 1: ohne Interrupts – die CPU muss die Daten des Beleglesers zeichenweise abholen

• Lösung 2: mit Interrupts – mithilfe des Interrupt-Mechanismus können Abtastung und Verarbeitung weitgehend parallel erfolgen – die Datenübertragung wird per ISR erledigt

Kapitel 3

Slide 50

FH Kaiserslautern Informatik 1 Teil 2

© Prof. Dr. Frank Bomarius, 2008

Unterbrechungswerk • Das folgende Bild zeigt die zum Lesen der Belege, Übertragen der Belegdaten und deren Auswertung notwendige Hardware • Die Daten aus dem Puffer des Beleglesers sollen über die CPU in den Arbeitsspeicher gebracht werden

Kapitel 3

Slide 51

© Prof. Dr. Frank Bomarius, 2008

FH Kaiserslautern Informatik 1 Teil 2

Unterbrechungswerk Lösung ohne Interrupts: 1. Der Prozessor schickt einen Befehl an den Belegleser, den nächsten (ersten) Beleg abzutasten. 2. Der Prozessor will erstes Zeichen dieses Belegs lesen. 3. Nach einer Wartezeit (z.B. 1 s oder mehr) legt der Belegleser das erste Zeichen auf den Bus, wobei dieses Zeichen vom Prozessor über die Synchronisation (MSYN, SSYN) beispielsweise ins A-Register übertragen wird. 4. Das erste Zeichen wird vom A-Register in den Datenpuffer im Arbeitsspeicher übertragen. 5. Die weiteren Zeichen des Beleges werden, wie in 2. bis 4. beschrieben, übertragen, bspw. in mittleren Abständen von 1 ms, also sehr langsam. Die einzelnen Einheiten des Systems sind praktisch nur im Wartezustand. 6. Nach der Übertragung des letzten Zeichens startet der Prozessor das Auswerteprogramm. Das Ende der Übertragung wurde dabei vom Prozessor z.B. dadurch erkannt, daß ein vereinbartes Zeichen, das sonst im Text nicht vorkommt, übertragen wurde. Das bedeutet jedoch, dass der Prozessor bei jedem Zeichen prüfen muss, ob das vereinbarte Sonderzeichen vorliegt. 7. Der Belegleser wartet, bis die Verarbeitung dieses Belegs abgeschlossen ist. 8. Nach Auswertung des Belegs beginnt der nächste Zyklus mit Schritt 1. Der Prozessor wartet, bis das erste Zeichen des nächsten Belegs bereitgestellt wird.

Kapitel 3

Slide 52

FH Kaiserslautern Informatik 1 Teil 2

© Prof. Dr. Frank Bomarius, 2008

Unterbrechungswerk

Lösung mit Interrupt: 1. Der Prozessor schickt den Befehl an den Belegleser, den nächsten Beleg abzutasten. 2. Der Belegleser tastet den nächsten Beleg völlig selbsttätig ab und legt die Daten in seinem internen Puffer ab. 3. Während der Abtastung des Belegs ist der Prozessor mit der Verarbeitung eines vorher abgetasteten Belegs beschäftigt, führt andere Aufgaben aus, oder er wartet in einer Schleife, weil sein Datenpuffer im Arbeitsspeicher leer ist. Die Bedingung 'Datenpuffer leer' wird dabei in jeder Schleife abgefragt. 4. Am Ende der Belegabtastung erfolgt ein Interrupt zur CPU, das laufende Programm wird unterbrochen, die Interrupt-Service-Routine wird angesprungen. 5. In der ISR werden die Daten des Belegleserpuffers einzeln durch einen Lesebefehl in das ARegister der CPU und dann durch einen Schreibbefehl des Arbeitsspeichers in den Datenpuffer des Arbeitsspeichers übertragen. Falls der Datenpuffer nach Übertragung des Belegs voll ist, wird eine weitere Interruptannahme gesperrt. 6. Es wird in der ISR ein Befehl an den Belegleser geschickt, den nächsten Beleg abzutasten. 7. Die CPU setzt die unterbrochene Arbeit (Programm) fort, d.h. der in Verarbeitung befindliche Datensatz wird weiter analysiert, oder die Warteschleife wird verlassen (der Datenpuffer ist ja nicht mehr leer), und die Verarbeitung eines neuen Datensatzes beginnt. 8. Nach der Auswertung eines Datensatzes wird der entsprechende Speicherplatz im Datenpuffer freigegeben. Da damit mit Sicherheit freier Pufferspeicherplatz zur Verfügung steht, kann die Interrupt-Sperre aufgehoben werden. 9. Der Prozessor beginnt mit der Auswertung des nächsten Beleges. Die Verarbeitung wird bei 2. fortgesetzt.

Kapitel 3

Slide 53

© Prof. Dr. Frank Bomarius, 2008

FH Kaiserslautern Informatik 1 Teil 2

Unterbrechungswerk Vergleich der Lösungen: • Die Lösung mit Interruptsteuerung hat gegenüber der Lösung ohne Interrupt den großen Vorteil, dass weitgehend paralleles Arbeiten von CPU und Belegleser möglich ist und dass sich unterschiedliche Abtast- und Verarbeitungszeiten ausgleichen können. • Allerdings ist auch diese Lösung noch verbesserungswürdig: – Der Puffer ist zweimal vorhanden: im Belegleser und im Arbeitsspeicher. – Die Datenübertragung vom Belegleser zum Arbeitsspeicher ist sehr aufwändig: mit Umweg über die CPU. Hier wäre eine Direktverbindung zwischen Belegleser und Arbeitsspeicher vorteilhaft.

• Maßnahmen zur Realisierung dieser Forderungen werden im nächsten Abschnitt besprochen.

Kapitel 3

© Prof. Dr. Frank Bomarius, 2008

Slide 54

FH Kaiserslautern Informatik 1 Teil 2

Inhalt • • • • •

Kapitel 3

Slide 55

Kommunikation zwischen Rechnerkomponenten System-Bus Unterbrechungswerk (Interrupts) Direct Memory Access (DMA) Anschluss peripherer Geräte

© Prof. Dr. Frank Bomarius, 2008

FH Kaiserslautern Informatik 1 Teil 2

Direct Memory Access • Oft müssen Daten in größerer Menge zwischen externem Gerät und Arbeitsspeicher übertragen werden • Die interruptgesteuerte Übertragung entlastet dabei die CPU zwar von der Aufgabe der regelmäßigen Abfrage, aber nicht von der Übertragung der Daten: – Übertragung Gerät – Übertragung CPU

CPU Arbeitsspeicher

– Haushaltszyklen zur Ausführung des Übertragungsprogramms – Unterbrechung und Restaurierung des Programms

• Die Daten werden also doppelt über den Bus übertragen und zusätzlich das Übertragungsprogramm selbst • Die Aufwände durch Unterbrechung und Restaurierung des Programms fallen dabei insbesondere bei (häufiger) Übertragung kleiner Datenmengen stark ins Gewicht • Führt die CPU ein Programm zur Übertragung der Daten aus, spricht man von programmierter I/O (PIO) Kapitel 3

Slide 56

FH Kaiserslautern Informatik 1 Teil 2

© Prof. Dr. Frank Bomarius, 2008

Direct Memory Access • Die größte Entlastung der CPU erzielt man, wenn lediglich Start und Ende der Übertragung von der CPU veranlasst werden müssen, alle Daten aber direkt (ohne Involvierung der CPU) zwischen Gerät und Arbeitsspeicher ausgetauscht werden direct memory access (DMA) • Dazu muss entweder in jedes (DMA-fähige) Gerät, oder zentral auf dem Motherboard für alle DMA-Geräte, mehr Intelligenz eingebaut werden DMA-Controller (DMAC): – Die CPU "programmiert" den DMAC (z.B. Adresse und Größe des Puffers im Hauptspeicher, I/O-Befehle). Der DMAC legt dann selbst Speicheradressen und Daten auf den Bus und führt Handshaking durch – Um eigenständig Daten zu übertragen hat der DMAC verschiedene Möglichkeiten → Er "stielt" der CPU einzelne Übertragungszyklen (cycle stealing) auf dem Bus, die die CPU sonst für die Übertragung von Befehlen und/oder Operanden nutzen würde → Er suspendiert die CPU gleich für mehrere Zyklen und überträgt mit einer Rate limitiert durch die maximale Rate des Hauptspeichers (burst-transfer) → Er benutzt den Bus, wenn die CPU ihn nicht braucht (hidden DMA), dazu muss die CPU ihren Zykluszustand signalisieren, damit der DMAC exakt während der Op-CodeDekodierung den Bus belegt (Anmerkung funktioniert nicht bei Architekturen mit instruction pre-fetch: Caching, Pipelining)

Kapitel 3

Slide 57

© Prof. Dr. Frank Bomarius, 2008

FH Kaiserslautern Informatik 1 Teil 2

Direct Memory Access • Der Ablauf eines Datentransfers soll an einem Beispiel erklärt werden. Dabei sollen bei einem 16 bit Rechner 100 16-bit-Wörter von einem externen Gerät zum Arbeitsspeicher in die ByteAdressen 2000 bis 2198 übertragen werden. Die Daten sollen am externen Gerät in Abständen von ungefähr 5 µs zur Verfügung stehen und können nicht zwischengespeichert werden. Der Maschinenzyklus des Rechners soll 300 ns betragen.

Prinzip einer DMASteuereinheit (DMAC) eines Gerätes

Kapitel 3

Slide 58

FH Kaiserslautern Informatik 1 Teil 2

Beispiel: Übertragung mit cycle-stealing

© Prof. Dr. Frank Bomarius, 2008

Direct Memory Access 1. Das Programm legt in Registern des DMAC des externen Gerätes die Anzahl 100 und die Anfangsadresse 2000 des Hauptspeicherpuffers ab. Diese Register werden unter eigenen Adressen aufgerufen. 2. Das Programm legt nun ein Kommando ins Kommandoregister ('Kommando') ab. Im Beispiel enthält dieses Kommando den Schreibbefehl an den DMAC zur direkten Datenübertragung vom Gerät zum Arbeitsspeicher über ein Register 'Daten' des DMAC. 3. Das Programm kann nun - falls es vom Programmierer so geschrieben wurde - unabhängig vom DMA Gerät Aufgaben durchführen, für welche die Eingabedaten des Geräts noch nicht benötigt werden. 4. Parallel zur Prozessorverarbeitung erzeugt das Peripheriegerät das erste zu übertragende Datenwort (im Register 'Daten'), und sein DMAC teilt die Verfügbarkeit dieses Wortes der Prozessorhardware durch ein besonderes Steuersignal (z.B. HOLD genannt) mit. 5. Der Prozessor führt den gerade laufenden Maschinenzyklus ordnungsgemäß zu Ende, schaltet seine Daten-, Adress- und die meisten Steuerleitungen hochohmig und quittiert die Anforderung des Gerätes mit einem weiteren Steuersignal (z.B. HOLDAC).

Kapitel 3

Slide 59

© Prof. Dr. Frank Bomarius, 2008

FH Kaiserslautern Informatik 1 Teil 2

Beispiel: Übertragung mit cycle-stealing

Kapitel 3

Slide 60

FH Kaiserslautern Informatik 1 Teil 2

Direct Memory Access 6. Ausgelöst durch das Prozessorsignal HOLDAC übernimmt der DMAC die Kontrolle über den Bus und führt einen vollständigen Schreibzyklus durch: Ausgabe der Adresse 2000 auf den Adressbus, Ausgabe des verfügbaren Datenwortes auf den Datenbus, WRITESignal und evtl. weitere Steuersignale auf den Steuerbus. 7. Der DMAC negiert das HOLD-Signal, wodurch der Prozessor die Kontrolle über den Bus wieder übernimmt und dies durch Negieren des HOLDAC-Signals anzeigt ( Hand-Shaking). 8. Der Prozessor führt das für einen Schreibzyklus unterbrochene Programm fort. 9. Der DMAC erniedrigt die Anzahl der zu übertragenden Wörter um 1 auf 99 und erhöht die Adresse um 2 auf 2002. 10. Das Gerät erzeugt das nächste Datenwort, und der DMAC zeigt die Verfügbarkeit wieder durch das HOLD-Signal an. 11. Dieser Zyklus läuft solange ab, bis alle 100 Wörter übertragen wurden. 12. Nach der Übertragung der 100 Wörter erzeugt der DMAC einen Interrupt, das gerade laufende Programm wird unterbrochen und die zugeordnete Interrupt-Service-Routine wird aktiviert. 13. Nach Beendigung der Interrupt-Service-Routine (beispielsweise wurde durch sie lediglich das Ende der Datenübertragung vermerkt) arbeitet das unterbrochene Programm weiter. © Prof. Dr. Frank Bomarius, 2008

Direct Memory Access • Bei dieser Übertragung wurde die CPU nur durch die Übertragung der Registerinhalte und durch die einmalige Abarbeitung der Interrupt-Service-Routine belastet • Darüber hinaus wurde lediglich das theoretische Minimum von 100 Schreibzyklen (durch cycle stealing) zu je 300 ns für die eigentliche Datenübertragung benötigt • Dies wäre nur durch einen burst-transfer noch zu unterbieten

• Anmerkung: – Die Programmierung dieser Vorgänge erfolgt offenbar nicht mehr als "geschlossenes" Programm, sondern in diverse Programme und ISRs zerstückelt unübersichtlich und schwer zu Testen

Kapitel 3

Slide 61

© Prof. Dr. Frank Bomarius, 2008

FH Kaiserslautern Informatik 1 Teil 2

Direct Memory Access

Beispiel für Liste der DMA-fähigen Geräte in einem Windows XP Rechner

• Der DMAC ist ein zentraler Controller auf dem Chip-Satz / Motherboard • Zum Teil haben heute die peripheren Geräte ihren eigenen DMAC und betreiben dann selbst das Bus Mastering

Kapitel 3

© Prof. Dr. Frank Bomarius, 2008

Slide 62

FH Kaiserslautern Informatik 1 Teil 2

Inhalt • • • • •

Kapitel 3

Slide 63

Kommunikation zwischen Rechnerkomponenten System-Bus Unterbrechungswerk (Interrupts) Direct Memory Access (DMA) Anschluss peripherer Geräte

© Prof. Dr. Frank Bomarius, 2008

FH Kaiserslautern Informatik 1 Teil 2

Anschluss peripherer Geräte • Jeder Rechner enthält neben Prozessor und Arbeitsspeicher auch externe Geräte zur Interaktion mit dem Benutzer, zur Speicherung größerer Datenmengen, zur Eingabe von Sensorinformation, zur Ausgabe von Steuerbefehlen u.s.w. • Diese externen Geräte werden nicht direkt, sondern über Eingabe- und Ausgabe-Einheiten an den Systembus angeschlossen. Häufig bezeichnet man die Eingabe- und Ausgabe-Einheiten auch als Eingabe- bzw. Ausgabe-Ports oder als Eingabe- bzw. Ausgabe-Schnittstellen (interfaces) und die Geräte außerhalb des Rechners nennt man Peripheriegeräte. • Bei großen Entfernungen zwischen Peripheriegerät und Rechner bevorzugt man oft die serielle Übertragung. Müssen große Datenmengen in kurzer Zeit übermittelt werden, so wählt man die parallele Übertragung oder entsprechend schnelle serielle Bus-Systeme (Ethernet, Token-Ring)

Kapitel 3

Slide 64

FH Kaiserslautern Informatik 1 Teil 2

© Prof. Dr. Frank Bomarius, 2008

Anschluss peripherer Geräte • Prinzip-Darstellung der Ansteuerung peripherer Geräte – hier: 2 Ports mit Adressen 1016 und 2016 – die Adressen werden über den Adressbus übertragen und adressieren letztlich Register in der E/A Steuerung – meist sind E/A Steuerungen größere Adressbereiche zugeordenet, in denen mehrere Register (z.B. für verschiedene Geräte) abgebildet sind

Kapitel 3

Slide 65

© Prof. Dr. Frank Bomarius, 2008

FH Kaiserslautern Informatik 1 Teil 2

Anschluss peripherer Geräte

Beispiel: Auszug aus der HauptspeicherAbbildung einiger Geräte eines Laptops

Kapitel 3

Slide 66

FH Kaiserslautern Informatik 1 Teil 2

© Prof. Dr. Frank Bomarius, 2008

Anschluss peripherer Geräte • Detailliertere Darstellung einer Gerätesteuerung

Kapitel 3

Slide 67

© Prof. Dr. Frank Bomarius, 2008

FH Kaiserslautern Informatik 1 Teil 2

12-fach DIP Schalter

Jumper-Stecker

Anschluss peripherer Geräte • Über einen Adreßvergleicher wird die auf dem Adreßbus vorgegebene Adresse mit einer gerätespezifischen Adresse verglichen, wobei diese über Hardwareschalter (z.B. dip-Schalter (dual-in-line package), Jumper-Stecker) fest bei der Einrichtung oder durch SoftwareKonfiguration (PNP – plug-and-play) beim Hochfahren der Anlage eingestellt wurde. • Bei Übereinstimmung erfolgt ein Freigabesignal. • Der Datenverkehr zwischen Gerätesteuerung und CPU bzw. Arbeitsspeicher verläuft über den Datenbus, wobei die Daten meist in der Gerätesteuerung in einem Puffer (manchmal auch als Cache bezeichnet) zwischengespeichert werden (Ausgleich unterschiedlicher Übertragungsraten, vorausschauendes Caching, …)

Hand-Shaking = Absicherung auf der Signalebene

• Der Datenverkehr dient hier zur Übertragung der Ein-Ausgabe-Daten an die externen Geräte und zur Übertragung von Steuer- und Kontrollinformation, um die jeweils gewünschte Aktion einzuleiten und um die korrekte Erledigung der Aufgabe zu überprüfen (durch Auslesen der Statusregister ( Absicherung des Kommunikationserfolgs auf der Protokollebene). • Das Steuerwerk verteilt die von der CPU gelieferten Daten auf die entsprechenden Register und leitet aus den von der CPU übertragenen Kommandos die Steuersignale für das selektierte Gerät ab.

Kapitel 3

Slide 68

FH Kaiserslautern Informatik 1 Teil 2

© Prof. Dr. Frank Bomarius, 2008

Anschluss peripherer Geräte Ein-/Ausgabe-Einheiten kann man grob in drei Gruppen einteilen: 1. Einfache, nichtprogrammierbare Einheiten: Diese Einheiten implementieren im wesentlichen die Selektion der Einheit über den Adreßvergleicher, die Pegelumsetzung zwischen Gerät und Bus und speichern einzelne Datenworte, um vor allem bei der Ausgabe den Bus schnell wieder freigeben zu können. 2. Programmierbare Standard-Einheiten: Diese Einheiten sind meist auf Ein-Ausgabe spezialisierte Mikrocomputer, die mehrere Peripheriegeräte steuern können. Vor der eigentlichen Datenübertragung wird die durchzuführende Übertragungsfunktion durch Steuerworte eingestellt. 3. Programmierbare Spezial-Einheiten: Diese Einheiten sind für den flexiblen Anschluß mehrerer Geräte gleichen Typs entwickelt und übernehmen meist einen größeren Teil der Gerätesteuerelektronik, z.B. IDE-Controller. [ In den beiden folgenden Abschnitten werden eine einfache, nichtprogrammierbare Eingabe-Einheit und eine programmierbare, serielle Schnittstelle beschrieben. Weitere Beispiele folgen in der Vorlesung 'Mikroprozessoren und Prozeßrechentechnik'. ]

Kapitel 3

Slide 69

© Prof. Dr. Frank Bomarius, 2008

FH Kaiserslautern Informatik 1 Teil 2

Anschluss peripherer Geräte Einfache, nichtprogrammierbare Schnittstelle zur parallelen Eingabe von 8-bit Worten

• Über die Eingänge B0 bis B7 können binäre Daten über die Dateneingabeschaltung (und Kontrolle in einer Anzeige-Einheit) in einem Eingabespeicher abgelegt werden.

IOR

IOR = I/O Request Löst die Signale READ und WRITE ab

• Nachdem von der CPU die Adresse auf den Adreßbus gelegt wurde, löst das Steuersignal IOR auf dem Steuerbus den Adreßvergleich zur Generierung des Freigabesignals aus. Das Freigabesignal schaltet die Ausgänge des Eingabespeichers auf den Datenbus über die Datenleitungen D0 bis D7, so dass die CPU die Daten übernehmen kann Kapitel 3

Slide 70

FH Kaiserslautern Informatik 1 Teil 2

© Prof. Dr. Frank Bomarius, 2008

Anschluss peripherer Geräte Programmierbare, serielle Schnittstelle • Zur seriellen Datenübertragung zwischen Port und Gerät ist ein serieller Datensender, eine serielle Übertragungsleitung und ein serieller Datenempfänger erforderlich. • Da die Daten eines Rechners auf dem Datenbus stets in paralleler Form vorliegen, erfolgt im Datensender eine parallel/seriell Wandlung. • Der Empfänger führt dann wieder eine seriell/parallel Wandlung durch, so dass die übertragenen Daten in ursprünglicher Form zur Verfügung stehen. • Das Prinzip dieser Datenübertragung auf der folgenden Folie für 5 Bit dargestellt. • Bei einem Simplexbetrieb werden dabei die Daten nur in einer Richtung vom Sender zum Empfänger über eine Leitung übertragen, während im Vollduplexbetrieb gleichzeitig in beiden Richtungen über zwei Leitungen übertragen wird. Im Halbduplexbetrieb erfolgt die Übertragung ebenfalls in beiden Richtungen, allerdings nur abwechselnd über die gleiche Leitung.

Kapitel 3

Slide 71

© Prof. Dr. Frank Bomarius, 2008

FH Kaiserslautern Informatik 1 Teil 2

Anschluss peripherer Geräte

Prinzip der seriellen Datenübertragung für 5-Bit Worte • Für eine korrekte Datenübertragung müssen beide Teilnehmer die gleiche Wortbreite aufweisen und es muß ein absoluter Gleichlauf der beiden symbolischen Schalter gewährleistet sein • Bei einer synchronen Datenübertragung wird dies dadurch erreicht, daß Sende- und Empfangstakt vom gleichen Grundtakt abgeleitet werden. Dieser Takt muß zwischen den beiden Geräten übertragen werden. Die Zeichen eines Datenblocks folgen hier auf der Datenleitung lückenlos aufeinander, wobei der Beginn eines Blocks durch die Übertragung von 1 oder 2 Synchronisationszeichen angezeigt wird.

Kapitel 3

Slide 72

FH Kaiserslautern Informatik 1 Teil 2

© Prof. Dr. Frank Bomarius, 2008

Anschluss peripherer Geräte

• Häufig werden die Daten jedoch im asynchronen Betrieb übertragen. Bei diesem Betrieb findet keine Übertragung des Taktes statt, sondern beide Takte werden in den beiden Geräten (meist quarzstabilisiert) hardwaremäßig unabhängig voneinander erzeugt. • Trotz gleicher Frequenzeinstellung durch die Software weichen die tatsächlichen Frequenzen nach einiger Zeit voneinander ab. Beträgt dabei die Abweichung dieser beiden 'Uhren' nur 1 s pro Jahr, so werden bereits nach 1 min Laufzeit die Bits einer Übertragung nicht mehr sicher selektiert (Differenz der Uhren nach einer Minute: 1-2 µs). • Sender und Empfänger müssen deshalb in kürzeren Zeitabständen wieder synchronisiert werden, was durch Einbetten der eigentlichen Zeichenfolge in einen Rahmen (frame), bestehend aus Start- und Stopbits, erfolgt. (vgl. Folie 8)

Kapitel 3

Slide 73

© Prof. Dr. Frank Bomarius, 2008

FH Kaiserslautern Informatik 1 Teil 2

Anschluss peripherer Geräte • Die Taktfrequenz bei der Datenübertragung wird in Baud angegeben, zu Ehren des französischen Ingenieurs Jean Maurice Emile Baudot (18451903), frz. Fernmeldeingenieur • Baud gibt die Anzahl von Zustandsänderungen (Schritte, Takte) pro Sekunde auf einer Übertragungsstrecke an. Dabei ist nicht festgelegt wieviel Bits pro Schritt übertragen werden! die Baudrate ist also nicht (wie häufig falsch zu lesen) mit der Übertragungsrate der Nutzinformation in (Bit/s, bps) gleichzusetzen: – je nach Kodierung können mehr als ein Bit, genau ein Bit, oder weniger als ein Bit pro Takt übertragen werden – je nach Protokoll kommen zusätzliche Bits hinzu (z.B. Start-Stop Bits by asynchroner Übertragung), die die Menge der übertragenen Nutz-Bits pro Takteinheit verkleinern

• Über eine analoge Telefon-Verbindung können maximal 2.400 Baud erreicht werden. Um z.B. 14.400 Bit/sek zu übertragen, müssen 6 Bit pro Schritt übertragen werden • Auch eine parallele Schnittstelle hat eine Baudrate, nur werden hier pro Schritt in der Regel 8 Bit übertragen Kapitel 3

Slide 74

© Prof. Dr. Frank Bomarius, 2008

Blockschaltbild des Bausteins USART FH Kaiserslautern 8251 (Universal Informatik 1 Teil 2 Synchronous / Asynchronous Receiver and Transmitter)

Anschluss peripherer Geräte

Kapitel 3

Slide 75

© Prof. Dr. Frank Bomarius, 2008

FH Kaiserslautern Informatik 1 Teil 2

Anschluss peripherer Geräte USART 8521 • Dieser Baustein wird häufig zum Aufbau von seriellen Schnittstellen verwendet. • Der Adreßvergleicher erzeugt das Freigabe-Signal (¬ CS (chip select)) zur Selektion der Einheit, wenn die Adresse auf dem Systembus mit der über die Schalter eingestellten Adresse übereinstimmt. • Die zu übertragenden Daten werden in besonderen Sender- und Empfängerregistern zwischengespeichert (seriell/parallel Wandlung) • Der Baustein enthält neben dem Sender- und Empfängerregister weitere Register, über deren Inhalt der Baustein programmiert werden kann. • Im Betriebsarten-Register werden Baudrate, Wortbreite und Paritätsprüfung durch eine Datenübertragung von der CPU spezifiziert, während im Kommandoregister Steuerinformation enthalten ist (generelle Freigabe von Sender oder Empfänger, freiprogrammierbare Steuersignale an das externe Gerät) • Über das Statusregister kann die Ausführung einer Datenübertragung von der CPU überwacht werden • Die 5 Register werden durch das niederwertigste Adreßbit A0 (=C/ ¬D) (Umschaltung Command / Data je nach ungerader / gerader Adresse) sowie durch die Schreib- und Lesesignale innerhalb des Bausteins adressiert

Kapitel 3

Slide 76

FH Kaiserslautern Informatik 1 Teil 2

© Prof. Dr. Frank Bomarius, 2008

Anschluss peripherer Geräte

Ansteuerung des USART 8251

Selektion des Bausteins (Chip Select)

Umschalten Kommando / Daten (Command / Data)

Synchronisation Daten Lesen (READ)

¬ CS C/ ¬ D ¬ RD ¬ WR

Kapitel 3

Slide 77

Synchronisation Daten Schreiben (WRITE)

Aktion

1

X

X

X

Datenbus hochohmig

0

1

0

1

Status

0

1

1

0

Steuerwort  CPU

0

0

0

1

Daten

0

0

1

0

Daten  CPU

© Prof. Dr. Frank Bomarius, 2008

CPU CPU

FH Kaiserslautern Informatik 1 Teil 2

Anschluss peripherer Geräte

Die Register des USART 8251 werden wie folgt verwendet: Empfängerregister:

Dateneingabe (Empfangen von der Gegenstelle)

8 bit

Senderregister:

Datenausgabe (Senden zur Gegenstelle)

8 bit

Betriebsartenreg.:

synchron / asynchron (3 Geschwindigkeiten) RxC, bzw., TxC werden intern durch 1, 16 oder 64 geteilt. Zeichenlänge (5 - 8 bit) Parität (mit/ohne, odd/even) Anzahl Stopbits (1, 1½, 2)

2 bit

Kommandowortreg.:

Statusregister:

Kapitel 3

Slide 78

FH Kaiserslautern Informatik 1 Teil 2

TxENABLE, RxENABLE Sender- und Empfängersperre durch Software programmierbare Ausgänge DTR, RTS DTR = Data Terminal Ready (eigene Betriebsbereitschaft) RTS = Request to Send (Steuerung des externen Geräts) IR: nächstes Wort ins Betriebsartenregister ER: Fehleranzeige in Statusregister löschen für Synchronbetrieb TxRDY, RxRDY: T-/R-Register belegt TxEMPTY: Ausgabe abgeschlossen programmierbarer Eingang DSR DSR = Data Set Ready (Betriebsbereitschaft des externen Gerätes) Fehleranzeige: Parität/Überlauf/Stopbit Synchronbetrieb

© Prof. Dr. Frank Bomarius, 2008

Anschluss peripherer Geräte

Belegung des Betriebsartenregisters im asynchronen Modus

B1, B2 = interne (SW-programmierbare) Baud-Raten Reduzierung Wenn B1 = B2 = 0 dann Synchronmodus (siehe nächste Folie)

Kapitel 3

Slide 79

© Prof. Dr. Frank Bomarius, 2008

2 bit 2 bit 2 bit 2 bit 2 bit

1 bit 1 bit 2 bit 2 bit 1 bit 1 bit 3 bit 1 bit

FH Kaiserslautern Informatik 1 Teil 2

Anschluss peripherer Geräte

Belegung des Betriebsartenregisters im synchronen Modus

Kapitel 3

Slide 80

FH Kaiserslautern Informatik 1 Teil 2

© Prof. Dr. Frank Bomarius, 2008

Anschluss peripherer Geräte

Belegung des Statusregisters

Kapitel 3

Slide 81

© Prof. Dr. Frank Bomarius, 2008

FH Kaiserslautern Äußere Anschlüsse Informatik 1 Teil 2

Anschluss peripherer Geräte

des 8251: • Die 8 Datenleitungen D0 bis D7 übertragen Daten als 8bit-Worte über den Datenbus des Systembusses, während über die Steuerbussignale A0, IOR und IOW zwischen Lesen, Schreiben und Datenbzw. Kontroll-Information unterschieden wird. • Der Adressvergleicher selektiert den Baustein über das Signal CS (Chip Select) • Aus dem Systemtakt CLK wird über Flip-Flops eine geringere Frequenz abgeleitet und den Takteingängen RxC und TxC zugeführt • Über die Jumper A, B, C und D könnten die Sender- und Empfangsfrequenzen voreingestellt werden Kapitel 3

Slide 82

FH Kaiserslautern Informatik 1 Teil 2

serielles Senden und Empfangen (2 x simplex)

© Prof. Dr. Frank Bomarius, 2008

Anschluss peripherer Geräte • Die seriellen Ausgabedaten TxD werden direkt und in negierter Form bereitgestellt, während für die Eingabedaten RxD über eine Brücke die direkten oder negierten Werte ausgewählt werden können. • DTR, RTS sind programmierbare Ausgänge und DSR ist ein programmierbarer Eingang (siehe Belegung Kommando- bzw. Statusregister). • Die Statusregisterzellen TxRDY, RxRDY und TxEMPTY können nicht nur durch die CPU durch Auslesen des Statusregisters ausgewertet werden, sondern stehen auch als Ausgangssignale zur Verfügung. • Das Eingabesignal CTS (Clear-to-Send) stellt eine HardwareSendersperre dar. Solange dieses Signal nicht aktiv ist, sendet der Baustein keine Daten, auch wenn Daten im Baustein vorliegen und die Softwarefreigabe über TxENABLE erfolgt ist.

Kapitel 3

Slide 83

© Prof. Dr. Frank Bomarius, 2008

FH Kaiserslautern Informatik 1 Teil 2

Anschluss peripherer Geräte • Die serielle Schnittstelle war Gegenstand von Normbemühungen. Je nach elektrischer Auslegung der Ein/Ausgabesignale unterscheidet man zwischen – – – –

V24 oder RS 232 C der niederohmigen Version RS 423 der Differenzsignalübertragung RS 422 und der 20mA-Stromschleife

• Die nächste Folie zeigt den Beschaltung des USART 8251 Bausteins zur Realisirung der V24/RS 232 C-Schnittstelle, wobei durch Stecken von Brückenverbindungen Modifikationen realisiert werden können • Über die Pegelwandler TTL/V24 werden die Datenleitungen RxD und TxD zwischen Baustein und Gerät geführt, die Hardwarefreigabe CTS angeschlossen und mit RxRDY (Empfänger-Register belegt oder frei) dem externen Gerät mitgeteilt, ob Daten empfangen werden können oder nicht • Die Zahlen an den Ein-Ausgabeleitungen der Karte (z.B. 3 an RxD) geben die Stiftbelegungen an einem 25-poligen Stecker an Kapitel 3

Slide 84

FH Kaiserslautern Informatik 1 Teil 2

Kapitel 3

Slide 85

© Prof. Dr. Frank Bomarius, 2008

Anschluss peripherer Geräte

© Prof. Dr. Frank Bomarius, 2008

Anpassung an die V24 / RS 232 C Norm

Baudratenanpassung als Kombination der Steckbrücken und der internen Programmierung

FH Kaiserslautern Informatik 1 Teil 2

Anschluss peripherer Geräte

• Die Kommunikation zwischen 2 Rechnern (CPU1 und CPU2) kann bei kurzen Entfernungen direkt über 2 serielle Schnittstellen erfolgen. • Dabei werden die entsprechenden Anschlüsse über Kreuz verbunden. • Bei einer Datenübertragung von CPU1 zur CPU2 teilt die serielle Schnittstelle 2 der seriellen Schnittstelle 1 mit dem Signal RTS (= 'Empfangsregister leer') mit, dass neue Daten gesendet werden können: RTS von Schnittstelle 2 wird auf CTS von Schnittstelle 1 geschaltet, so dass RTS von Schnittstelle 2 die Hardwaresendefreigabe von Schnittstelle 1 steuert.

Kapitel 3

Slide 86

FH Kaiserslautern Informatik 1 Teil 2

© Prof. Dr. Frank Bomarius, 2008

Anschluss peripherer Geräte • Bei größeren Entfernungen zwischen den beiden Rechnern kann eine analoge Verbindung über das Fernsprechnetz aufgebaut werden (siehe Bild nächste Folie) • Die Signale der seriellen Schnittstellen werden durch zusätzliche Modulator/Demodulator-Einheiten (Modems) in die Signale des Fernsprechnetzes umgesetzt. Die Anordnung enthält zwar hardwaremäßig keine gekreuzten Leitungen mehr, informationsmäßig wird jedoch auch hier der Verbindungsaufbau gemäß voriger Folie realisiert. • Eine zusätzliche Leitung RI (Ring Indikator) signalisiert einen ankommenden Ruf („klingeln“). • Mit analogen Modems können Datenraten bis 56 kbit/s erreicht werden • Höhere Datenraten sind bei digitalen Netzen möglich – ISDN: 64 kbit/s (je Kanal, beide Kanäle zusammen 128 kBit/s) – DSL: 768 kbit/s – einige Mbit/s

Kapitel 3

Slide 87

© Prof. Dr. Frank Bomarius, 2008

FH Kaiserslautern Informatik 1 Teil 2

Kapitel 3

Slide 88

FH Kaiserslautern Informatik 1 Teil 2

Anschluss peripherer Geräte

© Prof. Dr. Frank Bomarius, 2008

Anschluss peripherer Geräte • Der Baustein UART 8250 ist der älteste und langsamste. • Es gab eine Reihe von Weiterentwicklungen: 8250A, 16450, 16550, 16550A, 16550AF, 16550AFN, … Weit verbreiteter Schnittstellenbaustein: UART 16550AF • 16 Byte FIFO Puffer – die CPU muss also nur spätestens alle 16 Byte Daten abholen und wird weniger belastet • Sender und Empfänger können unterschiedliche Baud-Raten verwenden • Bei sehr langsamer CPU und/oder Modems mit >28 kbit/s benötigt man einen Baustein UART 16550

Kapitel 3

Slide 89

© Prof. Dr. Frank Bomarius, 2008