Kapitel 5 5 Rechnerorganisation 5.1 Leistung 5.2 Pipelining 5.3 Busse 5.4 Ein-/Ausgabe.

24
SW-Systemarchitektu r RW- Systemarchitektur Kap. 5Kap. 5 Kapitel 5 5 Rechnerorganisation 5.1 Leistung 5.2 Pipelining 5.3 Busse 5.4 Ein-/Ausgabe

Transcript of Kapitel 5 5 Rechnerorganisation 5.1 Leistung 5.2 Pipelining 5.3 Busse 5.4 Ein-/Ausgabe.

Page 1: Kapitel 5 5 Rechnerorganisation 5.1 Leistung 5.2 Pipelining 5.3 Busse 5.4 Ein-/Ausgabe.

SW-SystemarchitekturRW-Systemarchitektur Kap. 5Kap. 5

Kapitel 5

5 Rechnerorganisation

5.1 Leistung5.2 Pipelining5.3 Busse5.4 Ein-/Ausgabe

Page 2: Kapitel 5 5 Rechnerorganisation 5.1 Leistung 5.2 Pipelining 5.3 Busse 5.4 Ein-/Ausgabe.

SW-Systemarchitektur Kap. 5

5.3 Busse Busse dienen zur Übertragung von Daten von einem Sender zu

einem Empfänger, z.B. zwischen Prozessor und Arbeitsspeicher, zwischen Prozessor und Ein-/Ausgabegeräten, zwischen Arbeitsspeicher und Ein-/Ausgabegeräten, zwischen mehreren Prozessoren.

Aktor: in die Übertragung involvierte Partner: Master, z.B Prozessor, initiiert Übertragung, Slave,

Peripheriegerät oder Speicher, reagiert. Richtung: Es gibt bei einer Übertragung einen Sender, einen

Empfänger. Master oder Slave können Sender oder Empfänger sein

Adresse: auch eine Art von übertragener Daten spezifiziert ein Peripheriegerät, eine Speicherzelle, wohin

Daten geschrieben werden sollen.

Page 3: Kapitel 5 5 Rechnerorganisation 5.1 Leistung 5.2 Pipelining 5.3 Busse 5.4 Ein-/Ausgabe.

SW-Systemarchitektur Kap. 5

Physikalische Grundlagen

Zwischen Sender und Empfänger gibt es Leitungen, einzeln oder

gebündelt für gemeinsame Funktion Auf die Leitungen können

Spannungen mit (mindestens) zwei verschiedenen Pegeln, 1 und 0, high und low, gebracht werden.

Pegeländerungen brauchen Zeit zur Stabilisierung. Leitungen teilweise unidirektional, teilweise bidirektional

nutzbar. Ein serieller Bus besteht aus einer oder zwei Leitungen. Ein paralleler Bus besteht aus einer größeren Menge paralleler

Leitungen.

01

Page 4: Kapitel 5 5 Rechnerorganisation 5.1 Leistung 5.2 Pipelining 5.3 Busse 5.4 Ein-/Ausgabe.

SW-Systemarchitektur Kap. 5

Anforderungen Welche Funktionen braucht man für Übertragungen von Daten? Welche technischen Möglichkeiten gibt es dafür?

Busleitung aktivieren (assert) bei active low: durch fallende Flanke bei active high: durch steigende Flanke

Ausdrücken, dass Datensignal: gültig oder ungültig istungültig

gültig

Zeitdiagramme beschreiben Busprotokoll

Page 5: Kapitel 5 5 Rechnerorganisation 5.1 Leistung 5.2 Pipelining 5.3 Busse 5.4 Ein-/Ausgabe.

SW-Systemarchitektur Kap. 5

Ideen?

Page 6: Kapitel 5 5 Rechnerorganisation 5.1 Leistung 5.2 Pipelining 5.3 Busse 5.4 Ein-/Ausgabe.

SW-Systemarchitektur Kap. 5

Busleitungen

Menge von Leitungen gebündeltfür gemeinsame Funktion,Adresse, Daten, Steuerung, oder

Leitung(en) für alles benutzt,zu verschiedenen Zeiten.Busprotokoll legt fest, waswie zu interpretieren ist.

Prozessor Speicher

rd'/wr

enable

addr[0-11]

data[0-7]

bus

Page 7: Kapitel 5 5 Rechnerorganisation 5.1 Leistung 5.2 Pipelining 5.3 Busse 5.4 Ein-/Ausgabe.

SW-Systemarchitektur Kap. 5

Beispielprotokoll

Beispiel: read Protokoll1. rd’/wr gesetzt auf low,2. Adresse auf addr gelegt für mindestens

tsetup Zeit bevor enable aktiviert,

3. dies signalisiert dem Speicher, zur Zeit tread Daten auf die data –Leitungen zu legen

tread

read Protokoll

rd'/wr

enable

addr

data

tsetup

0

write Protokoll

rd'/wr

enable

addr

data

tsetup twrite

Page 8: Kapitel 5 5 Rechnerorganisation 5.1 Leistung 5.2 Pipelining 5.3 Busse 5.4 Ein-/Ausgabe.

SW-Systemarchitektur Kap. 5

Time (division) multiplexing

Gemeinsame Benutzung einer Menge von Leitungen für mehrere Datensätze

Spart Leitungen auf Kosten von Zeit

Datenübertragung mit Time-multiplexing

Daten-Serialisierung

Master Slavereq

data(8)

data(15:0) data(15:0)

mux demux

req

data 15:8 7:0

Übertragung von 16 Bit Daten

über einen 8Bit-Datenbus

Multiplexing von Adresse und Daten

Master Slavereq

addr/data

req

addr/data

addr data

mux demux

addr data

addr data

Übertragung vonAdressen und Datenüber gleichen Bus

Page 9: Kapitel 5 5 Rechnerorganisation 5.1 Leistung 5.2 Pipelining 5.3 Busse 5.4 Ein-/Ausgabe.

SW-Systemarchitektur Kap. 5

Synchrone, asynchrone Übertragung

Die Übertragung kann synchron oder asynchron sein. synchrone Übertragung:

taktweise Übertragung, in jedem Takt eine Busoperation,

gesteuert durch separate Taktleitung. asynchrone Übertragung: Heben und Senken von

dedizierten Synchronisationsleitungen signalisieren Übertragungswunsch, Gültigkeit bzw. Ungültigkeit von Daten auf dem Bus, Ende der Übertragung.

Page 10: Kapitel 5 5 Rechnerorganisation 5.1 Leistung 5.2 Pipelining 5.3 Busse 5.4 Ein-/Ausgabe.

SW-Systemarchitektur Kap. 5

Serieller Bus

Annahme zwei Leitungen Wie kann man darüber kommunizieren?

Page 11: Kapitel 5 5 Rechnerorganisation 5.1 Leistung 5.2 Pipelining 5.3 Busse 5.4 Ein-/Ausgabe.

SW-Systemarchitektur Kap. 5

Der I2C Busserieller Bus mit zwei Leitungen, Datenleitung SDA und Taktleitung SCL beide mit einem Pullup-Widerstand mit der Betriebsspannung

verbunden.1. Bus-Master initiiert Bustransfer durch Setzen der Startbedingung S:

SDA-Leitung auf 0 ziehen, während SCL-Leitung auf 1 liegt.

2. SCL-Leitung auf 0 gezogen,3. Übertragung der Daten(bits) B1,…,Bn, erst Geräteadresse, dann rw-

Bit (read/write), synchron dazu Taktzyklen auf SCL.4. Geräte am Bus vergleichen ihre Adresse mit der übertragenen.5. Angesprochenes Gerät, Slave, schickt ack-Signal.6. Slave zieht SDA auf 0.7. Start der verlangten Übertragung.8. Stoppen mit Stoppbedingung P.

Quelle: Wikipedia

Page 12: Kapitel 5 5 Rechnerorganisation 5.1 Leistung 5.2 Pipelining 5.3 Busse 5.4 Ein-/Ausgabe.

SW-Systemarchitektur Kap. 5

Parallele Busse, z.B. Systembus

Parallele Busse gliedern sich in drei Teil-Busse auf: Datenbus: Der Datenbus dient zur Übertragung der

Daten, die zwischen dem Prozessor und dem Arbeitsspeicher ausgetauscht werden sollen.

Adressbus: Der Adressbus dient zur Adressierung, dem Auswählen bestimmter Speicherstellen (oder Geräte): Beim Schreiben von Daten in den Speicher werden durch

die Adressierung diejenigen Speicherstellen bestimmt, in welche die Daten geschrieben werden sollen.

Beim Lesen von Daten aus dem Speicher werden durch die Adressierung diejenigen Speicherstellen bestimmt, aus denen die Daten ausgelesen werden sollen

Steuerbus: Der Steuerbus steuert die Datenübertragung

Page 13: Kapitel 5 5 Rechnerorganisation 5.1 Leistung 5.2 Pipelining 5.3 Busse 5.4 Ein-/Ausgabe.

SW-Systemarchitektur Kap. 5

Der Steuerbus

steuert die Datenübertragung. Daten in den Speicher schreiben: steigende Flanke auf der

Schreibleitung: auf dem Datenbus befindlichen Daten sind gültig und können

vom Speicher übernommen werden können. die auf dem Adressbus befindliche Adresse ist gültig und kann

vom Speicher verwendet werden. der Schreibvorgang soll jetzt durchgeführt werden.

Daten aus dem Speicher lesen: steigende Flanke auf der Leseleitung: die auf dem Adressbus befindliche Adresse ist gültig und kann

vom Speicher verwendet werden. der Lesevorgang soll jetzt durchgeführt werden. Speicher legt

Daten auf den Datenbus. Wenn der Prozessor Daten aus dem Speicher liest, übernimmt

er bei der steigenden Flanke auf der Leseleitung die auf dem Datenbus anliegenden Daten und speichert sie intern ab.

Page 14: Kapitel 5 5 Rechnerorganisation 5.1 Leistung 5.2 Pipelining 5.3 Busse 5.4 Ein-/Ausgabe.

SW-Systemarchitektur Kap. 5

Handshake-Protokoll

Handshake-Protokoll(bei mehreren Slaves mit unterschiedlichen

Antwortzeiten – braucht Synchronisations-Leitungen)

Master SlaveMReq

Read

data

data

1. Master legt Adresse auf addressaktiviert MReq und Read

2. Master aktiviert MSyn

3. Slave sieht, dass MSyn aktiv legt Daten auf data und aktiviert SSyn “Daten bereit und gültig

4. Master liest Daten von data5. deaktiviert MSyn

Slave bereit für nächsten Übertragungswunsch

Master möchte Daten aus Speicher an einer bestimmten Adresse bekommen

addres

MSyn

SSyn

address

MSyn

Read

SSyn

Page 15: Kapitel 5 5 Rechnerorganisation 5.1 Leistung 5.2 Pipelining 5.3 Busse 5.4 Ein-/Ausgabe.

SW-Systemarchitektur Kap. 5

3-Bus-System, z.B. im PC

Mehrere Busse, durch Brücken (bridges) verbunden

Page 16: Kapitel 5 5 Rechnerorganisation 5.1 Leistung 5.2 Pipelining 5.3 Busse 5.4 Ein-/Ausgabe.

SW-Systemarchitektur Kap. 5

5.4 Ein-/Ausgabe

Verbindung zur Außenwelt !

Aufgaben sind z.B.: Laden von Programmen und Daten in Speicher Ausgabe von Resultaten auf Bildschirm, Drucker,

Festplatte, Diskette...

Page 17: Kapitel 5 5 Rechnerorganisation 5.1 Leistung 5.2 Pipelining 5.3 Busse 5.4 Ein-/Ausgabe.

SW-Systemarchitektur Kap. 5

Ansteuerung

Ansteuerung von Ein-/Ausgabeeinheiten (Peripheriegeräte)

z.B. durch: Videocontroller (Bildschirm) Plattencontroller (Festplatte) Tastatur-Prozessoren Netzwerkschnittstellen usw.

Page 18: Kapitel 5 5 Rechnerorganisation 5.1 Leistung 5.2 Pipelining 5.3 Busse 5.4 Ein-/Ausgabe.

SW-Systemarchitektur Kap. 5

Ansteuerung

Plattencontroller Videocontroller Tastaturproz.

Netzwerk-Interface

Netzwerk-Interface

Festplatte Bildschirm

Tastatur

Netzwerk

CPU‘

CPU

Ansteuerung von Ein-/Ausgabegeräten (Peripheriegeräte), z.B. durch:

Videocontroller (Bildschirm) Plattencontroller (Festplatte) Tastatur-Prozessoren Netzwerkschnittstellen usw.

Page 19: Kapitel 5 5 Rechnerorganisation 5.1 Leistung 5.2 Pipelining 5.3 Busse 5.4 Ein-/Ausgabe.

SW-Systemarchitektur Kap. 5

Ein-/Ausgabe-Schnittstelle: Adressierung

Prozessor kommuniziert mit Peripheriegeräten über einige seiner Pins

Port-basierte E/A (parallele E/A) Prozessor hat evtl. mehrere N-bit-Ports, verbunden mit

speziellen Registern und gewidmet speziellen Geräten. Programme lesen und schreiben Ports wie Register.

Bus-basierte E/A Prozessor kommuniziert mit allen Peripheriegeräten

über einen Bus, der aus Adressen-, Daten- und Steuerungsleitungen zusammengesetzt ist. Protokoll eingebaut in Prozessor.

Ein Befehl führt Lese- bzw. Schreib-Protokoll auf dem Bus aus.

Page 20: Kapitel 5 5 Rechnerorganisation 5.1 Leistung 5.2 Pipelining 5.3 Busse 5.4 Ein-/Ausgabe.

SW-Systemarchitektur Kap. 5

Typen von Bus-basierter E/A

Prozessor kommuniziert mit Speicher und Peripherie über denselben Bus – Alternativen:

Memory-mapped E/A Register von Peripheriegeräten belegen Adressen im

Speicher z.B. Bus hat 16-bit-Adresse

niedrigen 32K Adressen sind Speicheradressen höheren 32k Adressen sind Geräteadressen

Standard E/A Zusätzlicher Pin (M/IO) auf dem Bus gibt an, ob es ein

Speicher- oder eine Gerätezugriff ist. z.B. Bus hat 16-bit-Adresse

alle 64K Adressen sprechen Speicher an, wenn M/IO auf 0 gesetzt alle 64K Adressen sprechen Geräte an, wenn M/IO auf 1 gesetzt

Page 21: Kapitel 5 5 Rechnerorganisation 5.1 Leistung 5.2 Pipelining 5.3 Busse 5.4 Ein-/Ausgabe.

SW-Systemarchitektur Kap. 5

Memory-mapped E/A vs. Standard E/A

Memory-mapped E/A Benötigt keine zusätzlichen Befehle

Befehle mit Effekt auf Speicher wie MOV und Load, Store funktionieren auch auf der Peripherie

Standard E/A benötigt spezielle Befehle, um Daten zwischen Peripherie-Registern und dem Speicher umzuspeichern

Standard E/A Keine Speicheradressen für Peripherie aufzugeben, Einfachere Adress-Dekodier-Logik in Peripherie-

Geräten möglich kleinere und/oder schnellere Vergleicher

Page 22: Kapitel 5 5 Rechnerorganisation 5.1 Leistung 5.2 Pipelining 5.3 Busse 5.4 Ein-/Ausgabe.

SW-Systemarchitektur Kap. 5

Ein-/Ausgabe-Schnittstelle: Polling

Annahme: Ein Peripherie-Gerät, z.B. ein Sensor, erhält mit Unterbrechungen Daten, welche vom Prozessor weiter verarbeitet werden müssen.

Prozessor kann das Peripheriegerät periodisch auf angekommene Daten abfragen (polling) evtl. großer Aufwand, wenn zu häufig ausgeführt, evtl. fehlerhaft, wenn nicht häufig genug

ausgeführt – Berechnungen werden mit veralteten Daten durchgeführt.Bei regelungstechnischen Anwendungen evtl. Steuerung in falsche Richtung.

In sicherheits- und zeitkritischen Systemen Standard, wegen besserer Voraussagbarkeit!

Page 23: Kapitel 5 5 Rechnerorganisation 5.1 Leistung 5.2 Pipelining 5.3 Busse 5.4 Ein-/Ausgabe.

SW-Systemarchitektur Kap. 5

Ein-/Ausgabe-Schnittstelle: Unterbrechungen (Interrupts)

Peripheriegerät kann den Prozessor unterbrechen (interrupt ), wenn es Daten erhalten hat - Unterbrechungs-getriebene E/A Braucht mindestens einen extra Pin: Int HW fragt Int-Pin ab. Ist Int = 1, Prozessor unterbricht

laufendes Programm, springt zu einer Interrupt Service Routine (ISR)

Für Echtzeitsysteme schwierig, weil nicht klar ist, wann Unterbrechung erfolgt!

Minimal interarrival time muss bekannt sein!

Prozessor

Cache

Memory - I/O Bus

Haupt-speicher

I/OController

Disk Disk

I/OController

I/OController

Graphik Netzwerk

interrupts

Page 24: Kapitel 5 5 Rechnerorganisation 5.1 Leistung 5.2 Pipelining 5.3 Busse 5.4 Ein-/Ausgabe.

SW-Systemarchitektur Kap. 5

Unterbrechungs-getriebene E/A

1(a): Prozessor führt main aus 1(b): P1 erhält Eingabedaten in Register mit Adresse 0x8000.

2: P1 aktiviert Int , um Übergabe der Daten an Prozessor zu verlangen.3: Nachdem Prozessor den Befehl an

Adresse 100 abgeschlossen hat, sieht er Int aktiviert, rettet des Stand des PC’s (100), und setzt den PC auf die Adresse der ISR (16).

4(a): Die ISR liest die Daten von 0x8000, rechnet und schreibt Resultat auf 0x8001.

5: Die ISR kehrt zurück, setzt PC auf 100+1=101, wo der Prozessor main weiter ausführt.

4(b): Nachdem P1 gelesen wuirde, desaktiviert P1 Int.

Zeit

Lese Daten von Peripheriegerät 1, führe Berechnungen darauf aus und schreibe Ergebnis auf Peripheriegerät 2. Prozessor wird von P1 unterbrochen bei Adresse 100.