SW-SystemarchitekturRW-Systemarchitektur Kap. 5Kap. 5
Kapitel 5
5 Rechnerorganisation
5.1 Leistung5.2 Pipelining5.3 Busse5.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.
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
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
SW-Systemarchitektur Kap. 5
Ideen?
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
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
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
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.
SW-Systemarchitektur Kap. 5
Serieller Bus
Annahme zwei Leitungen Wie kann man darüber kommunizieren?
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
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
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.
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
SW-Systemarchitektur Kap. 5
3-Bus-System, z.B. im PC
Mehrere Busse, durch Brücken (bridges) verbunden
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...
SW-Systemarchitektur Kap. 5
Ansteuerung
Ansteuerung von Ein-/Ausgabeeinheiten (Peripheriegeräte)
z.B. durch: Videocontroller (Bildschirm) Plattencontroller (Festplatte) Tastatur-Prozessoren Netzwerkschnittstellen usw.
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.
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.
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
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
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!
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
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.