Synchronisation


Die Kommunikation innerhalb eines Bussystems findet zwischen zwei Geräten statt, die in der Regel als Primary und Secondary bezeichnet werden. Das Gerät welches die Kommunikation anstößt ist der Primary (Primaries können einen Bus anfordern; dies ist einem Secondary nicht möglich). Der Kommunikationsanstoß entspricht dem Start der Synchronisation.
Ein weiterer Grund für eine Synchronisation ist, dass die Geräte unterschiedlich schnell sein können.


Asynchrone Datenübertragung


Beispiel einer Lesetransaktion von Secondary (z.B. Speicher) zu Primary:


Asynchrone Datenübertragung

Signal-Zeit-Diagramm einer asynchronen Datenübertragung


  1. Der Primary legt eine Leseanforderung auf den Bus (Read Request = engl. Leseanforderung). Gleichzeitig legt der Primary eine Adresse auf den Bus (Data).

  2. Nach einer bestimmten Zeit (1) legt der Secondary ein Erkennungssignal auf den Bus (Acknowledge = engl. bestätigen). Dies führt dazu, dass der Primary eine Zeit danach seine Adresse und Leseanforderung (2) zurücknimmt.

  3. Nach Zurücknahme der Primary-Signale (2) nimmt der Secondary (3) seine Erkennung (Ack) ebenfalls zurück.

  4. Nach einer bestimmten Zeit legt der Secondary die gewünschten Daten und ein Data Ready (4) auf den Bus.

  5. In Abhängigkeit von DataRdy legt der Primary ein Ack (5), zum Zeichen dafür, dass die Daten übernommen wurden, auf den Bus.

  6. Danach werden die Daten und das DataRdy vom Bus genommen (6).

  7. Der Primary nimmt das angelegte Ack zurück (7).


Damit ist das Handshake-Verfahren beendet.



Synchrone Datenübertragung


Bei dieser Art der Synchronisation gibt es kein Handshaking der beteiligten Geräte, was einen Geschwindigkeitsvorteil mit sich bringt:

Beispiel einer Lesetransaktion von Secondary (z.B. Speicher) zu Primary:

Synchrone Datenübertragung

Signal-Zeit-Diagramm einer synchronen Datenübertragung


Der für beide gemeinsame Takt regelt die Kommunikation. Adresse und Datum werden mit der positiven Taktflanke angelegt und z.B. mit der negativen als gültig erklärt; deshalb aktive Taktflanke.
Bei einem synchronen Bus unterliegt die Übertragung einem festen Zeitraster. Z.B. wird ein Transfer vom Primary durch ein Startsignal ausgelöst, das dem Secondary den Beginn des Buszyklus anzeigt. Danach gibt es feste, "durch den Bustakt vorgegebene Zeitpunkte für die Gültigkeit des vom Sender (Master oder Slave) ausgegebenen Datums sowie für die Übernahme des Datums durch den Empfänger (Slave oder Master), d.h. für den Abschluss des Buszyklus."1
Nachteil dieser Steuerung ist, dass die Bustaktfrequenz an den langsamsten Secondary angepasst werden muss, um dessen Zeitbedarf für die Datenbereitstellung oder -übernahme gerecht zu werden. Abhilfe schafft ein vom adressierten Secondary erzeugtes /READY-Signal, dass ebenfalls mit dem Bustakt synchronisiert ist. "Langsamere Slaves halten dieses Signal über den kürzest möglichen Buszyklus hinaus inaktiv, wodurch der Master den Buszyklus um einen oder mehrere Bustaktschritte (Wartezyklen, Wait Cycles) verlängert."1 Ein Buszyklus ist erst dann durch einen Primary abgeschlossen, wenn der Secondary seine Bereitschaft durch das Aktivieren von READY signalisiert.
Synchrone Busse weisen die Intel- sowie die meisten anderen CISC-Prozessoren diverser Hersteller auf. Gleiches gilt für die meisten RISC-Prozessoren



Last modified: Wednesday, 21 April 2021, 10:30 AM