semi synchroner Systembus
semi synchroner Systembus
semi synchroner Systembus
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
Kapitel 9<br />
Zeitverhalten des Bussystems<br />
Systemsteuer- und<br />
Schnittstellenbausteine<br />
Ausnahmebehandlung<br />
DMA<br />
Fakultät für Informatik<br />
Prof. Dr. J. Henkel, Dr.-Ing. T. Asfour 19-1
Aufbau eines einfachen µP<br />
Betriebs-<br />
Spannungen<br />
Quarz<br />
Systemtakt<br />
RESET<br />
Register-<br />
satz<br />
Takt<br />
Steuerung,<br />
Decoder<br />
BR<br />
Statussignale<br />
Steuersignale<br />
ALU<br />
HR<br />
HR<br />
AC<br />
Adresswerk<br />
PC<br />
AP<br />
DBP<br />
ABT<br />
Datenbus<br />
Steuerbus<br />
Adressbus<br />
Fakultät für Informatik<br />
Prof. Dr. J. Henkel, Dr.-Ing. T. Asfour 19-2
<strong>Systembus</strong>-Schnittstelle<br />
Enthält diverse Zwischenspeicher-Register (Puffer) zur kurzfristigen<br />
Aufbewahrung von Adressen und Daten, z. B.<br />
‣ Befehlszähler: Adresse des nächsten Befehls<br />
(Instruction Pointer, Program Counter)<br />
‣ Adresspuffer: Adresse des gewünschten Operanden im<br />
Hauptspeicher<br />
‣ Datenbuspuffer: Wert des gerade bearbeiteten Operanden<br />
Enthält Aus- und Eingangstreiber (Tristate-Treiber)<br />
<strong>Systembus</strong>-<br />
Schnittstelle<br />
Datenbuspuffer<br />
Adresspuffer<br />
Befehlszähler<br />
+1<br />
Adressbuspuffer<br />
Datenbus<br />
Steuerbus<br />
Adressbus<br />
Fakultät für Informatik<br />
Prof. Dr. J. Henkel, Dr.-Ing. T. Asfour 19-3
9.1 Zeitverhalten der <strong>Systembus</strong>signale<br />
Synchroner <strong>Systembus</strong><br />
Semi-Synchroner Synchroner <strong>Systembus</strong><br />
A<strong>synchroner</strong> <strong>Systembus</strong><br />
Fakultät für Informatik<br />
Prof. Dr. J. Henkel, Dr.-Ing. T. Asfour 19-4
9.1.1 Zeitverhalten eines synchronen <strong>Systembus</strong><br />
T: Buszyklus<br />
Ta<br />
T<br />
Tb<br />
Takt<br />
Adresse<br />
A n-1 ,..., A 0<br />
Lesen<br />
Daten D m-1 ,..., D 0<br />
R/W<br />
Schreiben<br />
Daten<br />
D m-1 ,..., D 0<br />
R/W<br />
Fakultät für Informatik<br />
Prof. Dr. J. Henkel, Dr.-Ing. T. Asfour 19-5
Timing<br />
Adresse wird zu Beginn des Buszyklus (Ta) auf den Adressbus gelegt<br />
Auswahl der Übertragungsrichtrung durch R/W<br />
Lesen (R/W = 1):<br />
‣ Speicher (oder andere Systemkomponente) liefert ihre<br />
Daten gegen Ende des Buszyklus (Tb)<br />
‣ Übernahme der Daten in den Prozessor mit der steigenden<br />
Flanke des Systemtakts<br />
Schreiben (R/W = 0):<br />
‣ Prozessor legt die Daten zu Beginn der zweiten Takthälfte<br />
(Tb) auf den <strong>Systembus</strong><br />
‣ Übernahme der Daten in den Speicher durch die steigende<br />
Flanke von R/W oder des Systemtakts<br />
Fakultät für Informatik<br />
Prof. Dr. J. Henkel, Dr.-Ing. T. Asfour 19-6
Synchroner <strong>Systembus</strong><br />
Alle Vorgänge synchron zum Takt nach einem starren<br />
Muster ablaufen <strong>synchroner</strong> <strong>Systembus</strong><br />
Übergabe und Übernahme der Daten geschieht zu<br />
festgelegten Taktflanken<br />
Synchrone Busse in den Anfangsjahren der µPen<br />
Nachteil: Alle am Bus angeschlossenen Komponenten<br />
müssen strenge Zeitvorgaben erfüllen<br />
Langsamste Komponente bestimmt die zulässige<br />
Geschwindigkeit des Busses, oder aber der Bus<br />
schließt den Einsatz von „schnellen“ Komponenten<br />
aus (z.B. keine schnelle Speicher )<br />
Fakultät für Informatik<br />
Prof. Dr. J. Henkel, Dr.-Ing. T. Asfour 19-7
9.1.2 Semi-<strong>synchroner</strong> <strong>Systembus</strong><br />
Ta<br />
T<br />
Tb<br />
Buszyklus = 4 Takte<br />
Takt<br />
Adresse<br />
A n-1 ,..., A 0<br />
Lesen<br />
Daten D m-1 ,..., D 0<br />
R/W<br />
Schreiben<br />
Daten D n-1 ,..., D 0<br />
R/W<br />
READY<br />
Fakultät für Informatik<br />
Prof. Dr. J. Henkel, Dr.-Ing. T. Asfour 19-8
Timing<br />
Lesen (R/W = 1):<br />
‣ hinreichend schneller Speicher liefert seine Daten im letzten<br />
Taktzyklus von (Tb)<br />
‣ Übernahme der Daten in den Prozessor durch die steigende<br />
Taktflanke des nächsten Buszyklus<br />
Schreiben (R/W = 0):<br />
‣ Prozessor legt die Daten zu Beginn der zweiten Takthälfte von<br />
(Ta) auf den <strong>Systembus</strong><br />
‣ Übernahme der Daten in den Speicher durch die steigende<br />
Flanke von R/W<br />
Fakultät für Informatik<br />
Prof. Dr. J. Henkel, Dr.-Ing. T. Asfour 19-9
Semi-<strong>synchroner</strong> <strong>Systembus</strong><br />
Um auch langsamere Speicher benutzen zu können:<br />
Steuereingang READY<br />
Buszyklus wird nur abgeschlossen, wenn rechtzeitig vor<br />
Ende von der Takthälfte (Tb) READY = 0ist<br />
Ist READY am Ende des Buszyklus nicht 0<br />
Es werden solange Wartezyklen (Tw, Dauer: z.B.<br />
halbe Buszykluslänge) eingefügt, bis READY = 0 wird.<br />
Fakultät für Informatik<br />
Prof. Dr. J. Henkel, Dr.-Ing. T. Asfour 19-10
Einfügen eines Wartezyklus<br />
Ta<br />
T<br />
Tw<br />
Tb<br />
Takt<br />
Lesen<br />
Adresse<br />
Daten<br />
A n-1 ,..., A 0<br />
D m-1 ,..., D 0<br />
R/W<br />
READY<br />
Schreiben<br />
Daten<br />
D m-1 ,..., D 0<br />
R/W<br />
READY<br />
Fakultät für Informatik<br />
Prof. Dr. J. Henkel, Dr.-Ing. T. Asfour 19-11
Semi-<strong>synchroner</strong> <strong>Systembus</strong><br />
Moderne Prozessoren besitzen höhere Taktfrequenzen<br />
Schreib- bzw. Lesezugriffe benötigen mehrere Taktzyklen<br />
Steuereingänge (READY) zur Synchronisation der<br />
Buszugriffe durch Einführung von Wartezyklen (wait states)<br />
unterschiedlich schnelle Speicher und Geräte<br />
können individuell bedient werden<br />
Bezeichnung: Semi-synchrone Busse (Synchrone Busse mit<br />
Wartezyklen)<br />
Timing:<br />
‣ Adresse zu Beginn des Buszyklus (Ta) auf den Adressbus<br />
‣ Auswahl der Übertragungsrichtung wieder durch R/W<br />
Fakultät für Informatik<br />
Prof. Dr. J. Henkel, Dr.-Ing. T. Asfour 19-12
Semi-<strong>synchroner</strong> <strong>Systembus</strong><br />
Bus ist immer noch synchron (streng am Takt orientiert),<br />
die Dauer eines Buszyklus ist jedoch nicht mehr fest,<br />
sondern in Vielfachen von Taktzyklen variierbar<br />
<strong>semi</strong>-<strong>synchroner</strong> <strong>synchroner</strong> <strong>Systembus</strong><br />
höherer Steueraufwand als <strong>synchroner</strong> <strong>Systembus</strong><br />
Zeitverhalten ist auf verschieden schnelle Bausteine<br />
anpassbar<br />
Sind nur ausreichend schnelle Bausteine im System,<br />
kann READY z.B. fest auf 0 gelegt werden.<br />
Andernfalls kann dieses Signal durch eine geeignete<br />
Verzögerungsschaltung (z.B. Monoflop) erzeugt werden.<br />
Fakultät für Informatik<br />
Prof. Dr. J. Henkel, Dr.-Ing. T. Asfour 19-13
9.1.3 A<strong>synchroner</strong> <strong>Systembus</strong><br />
Takt<br />
Adresse A n-1 ,..., A 0<br />
AS<br />
DTACK<br />
Lesen<br />
Daten<br />
D m-1 ,..., D 0<br />
R/W<br />
Sh Schreiben<br />
Daten<br />
D m-1 ,..., D 0<br />
R/W<br />
Fakultät für Informatik<br />
Prof. Dr. J. Henkel, Dr.-Ing. T. Asfour 19-14
Timing<br />
Auswahl der Übertragungsrichtrung wieder durch R/W<br />
Mit AS = 0 zeigt die CPU an, dass sie eine gültige Adresse auf den<br />
Adressbus gelegt hat<br />
Mit DTACK = 0 zeigt der Speicher (Komponente) an, dass er die<br />
Daten zur Verfügung gestellt (Lesen) oder übernommen (Schreiben)<br />
hat<br />
Zwischen AS = 0 und DTACK = 0 kann eine beliebige bi Zeitspanne<br />
liegen<br />
Wird DTACK = 0, so nimmt die CPU die Adresse wieder vom<br />
Adressbus und setzt AS wieder zu 1<br />
Daraufhin nimmt der Speicher (Komponente) das Datum vom<br />
Datenbus und setzt DTACK wieder zu 1<br />
vollständig a<strong>synchroner</strong> Übertragungsablauf, Anschluss von<br />
Komponenten mit fast beliebiger Zugriffszeit möglich<br />
Fakultät für Informatik<br />
Prof. Dr. J. Henkel, Dr.-Ing. T. Asfour 19-15
A<strong>synchroner</strong> <strong>Systembus</strong><br />
Zeitliche Abläufe werden durch Handshake-Signale<br />
gesteuert<br />
Handshake-Signale:<br />
‣ AS (Address Strobe) von CPU<br />
‣ DTACK (Data Transfer Acknowledge) von Speicher/Komponente<br />
Systemtakt spielt keine Rolle mehr für die Synchronisation<br />
der Übertragung (nur noch für die Synchronisation der<br />
Signale: synchrones Steuerwerk)<br />
Fakultät für Informatik<br />
Prof. Dr. J. Henkel, Dr.-Ing. T. Asfour 19-16
9.1.4 Multiplex-Bus<br />
Nötig, falls bestimmte Gruppen von Signalen zeitlich<br />
hintereinander i über dieselbe Busleitungen geschickt<br />
werden müssen (z.B. zur Einsparung von Busleitungen)<br />
Beispiel:<br />
gemeinsamer Daten- und Adreßbus (Bsp.: PCI-Bus)<br />
Die Adresse zur Übertragung eines Datums vom bzw.<br />
in den Speicher muss während der gesamten<br />
Zugriffszeit vorliegen<br />
Speichern der Adresse in Flipflops (Latches)<br />
Fakultät für Informatik<br />
Prof. Dr. J. Henkel, Dr.-Ing. T. Asfour 19-17
Multiplex-Busschnittstelle<br />
Adresspuffer<br />
Datenbuspuffer<br />
Befehlszähler<br />
Multiplexer und Treiber<br />
Adress-/ Datenbus<br />
Bussteuerung<br />
Multiplexer l muss<br />
einen bidirektionalen<br />
Datentransfer<br />
zulassen<br />
ALE<br />
Flipflop<br />
Adressdecoder<br />
Speicher-<br />
Matrix<br />
ALE zeigt das Vorliegen<br />
einer gültigen Adresse an<br />
Fakultät für Informatik<br />
Prof. Dr. J. Henkel, Dr.-Ing. T. Asfour 19-18
Zeitverhalten des Multiplexbusses<br />
Daten/Adressen-Multiplex-Betrieb<br />
Systemtakt<br />
T<br />
T 1 T 2 T 3 T 4<br />
Adress-/<br />
Datenbus<br />
Adresse<br />
Daten<br />
gültige<br />
Adresse<br />
aufgefangene<br />
Adresse<br />
Fakultät für Informatik<br />
Prof. Dr. J. Henkel, Dr.-Ing. T. Asfour 19-19
Daten/Adress-Multiplex-Betrieb<br />
gültige Adresse auf dem gemeinesamen Bus wird durch ein<br />
Signal angezeigt, z.B. AS(Address Strobe) oder VMA<br />
(Valid Memory Address) oder ALE (Address Latch Enable) oder ...<br />
mit der aktiven Flanke dieses Signals (im Beispiel fallende Flanke)<br />
wird die Adresse in ein vor den Speicher geschaltetes Adress-Flipflop<br />
übernommen stabile Adresse am Speicher<br />
Danach kann der Bus umgeschaltet werden und nun die Daten über<br />
die gleichen Leitungen geschickt werden<br />
Weitere Multiplex-Möglichkeiten:<br />
l Mö li it<br />
‣ höher- und niederwertige Adressbits (z.B. bei dynamischen<br />
Speicherbausteinen)<br />
‣ höher- und niederwertige Datenbits<br />
‣ gemischte Formen (z.B. niederwertige Adress- und Datenbits, ...)<br />
Fakultät für Informatik<br />
Prof. Dr. J. Henkel, Dr.-Ing. T. Asfour 19-20
9.2. Systemsteuerbausteine<br />
Übernehmen Funktionen, die aus technischen oder<br />
Kostengründen nicht im Prozessor integriert sind:<br />
1. Nicht programmierbare Systemsteuerbausteine:<br />
führen fest vorgegebene, vom Prozessor nicht<br />
beeinflussbare Funktion aus, z.B.<br />
‣ Taktgeneratoren: t Systemtakt t und Synchronisationssignale<br />
i ‣ Bus-Steuerbausteine (Bus-Controller)<br />
‣ Steuerung des <strong>Systembus</strong>zugriffs (Bus Abit Arbiter)<br />
‣ Steuerbausteine für DRAM (Dynamic RAM Controller):<br />
Auffrischen<br />
Fakultät für Informatik<br />
Prof. Dr. J. Henkel, Dr.-Ing. T. Asfour 19-21
Systemsteuerbausteine<br />
2. „Programmierbare“ Systemsteuerbausteine:<br />
Funktionsweise dieser Bausteine kann durch<br />
Steuerworte vom Prozessor beeinflusst werden, z.B.<br />
‣ DMA-Controller<br />
‣ Cache-Controller<br />
‣ Speicherverwaltungsbausteine (MMU)<br />
‣ Zeitgeber-/Zähler-Bausteine<br />
‣ Echtzeit-Uhren (Real-Time Clocks)<br />
‣ Unterbrechungs-Steuerbausteine (Interrupt Controller)<br />
Fakultät für Informatik<br />
Prof. Dr. J. Henkel, Dr.-Ing. T. Asfour 19-22
9.3. Schnittstellenbausteine (I/O-Controller)<br />
Bindeglied zwischen dem Prozessor, dem Hauptspeicher<br />
und der Peripherie.<br />
Aufgaben:<br />
‣ Pufferung von Ein- /Ausgabe-Daten, Anpassung unterschiedlicher<br />
Arbeitsgeschwindigkeiten im System<br />
‣ Umsetzung von Daten: parallel/seriell, digital/analog, …<br />
‣ Erzeugung von Steuersignalen für Peripheriegeräte, z.B. zur<br />
Synchronisation<br />
‣ Annahme und Erzeugung von Unterbrechungsanforderungen für<br />
Peripheriegeräte<br />
i Programmierbare Systemsteuerbausteine und Schnittstellenbausteine<br />
werden als Systembausteine bezeichnet.<br />
Fakultät für Informatik<br />
Prof. Dr. J. Henkel, Dr.-Ing. T. Asfour 19-23