Was ist Handshake?

Verfahren, das Daten zuverlässig durch den Austausch einer Anforderung (req) des Senders und einer Bestätigung (ack) des Empfängers überträgt. Zwischen Taktdomänen werden nur req und ack synchronisiert, während die Daten stabil gehalten werden; das ist sicher, benötigt aber mehrere Takte oder mehr pro Übertragung.

Japanische Bezeichnung: ハンドシェイク

„Handshake“ kommt in 7 Übungsfragen aus 3 Themen vor, z. B. Timing-Analyse und CDC, Schnittstellen und Busstandards, Logikschaltungen.

Fachgebiet: Timing-Analyse und CDC

Jetzt üben: Fragen zu Handshake

Welche Reihenfolge der Signale ist bei der Übertragung eines Datums mit einem 4-Phasen-Handshake mit req und ack richtig?

  1. AGleichzeitig mit dem Setzen von req auf 1 beginnen, die Daten zu ändern → die Empfangsseite setzt ack auf 1 → req und ack gleichzeitig auf 0 setzen
  2. BDie Empfangsseite setzt zuerst ack auf 1 → die Sendeseite legt die Daten fest und setzt req auf 1 → die Empfangsseite übernimmt die Daten → req und ack gleichzeitig auf 0 setzen
  3. CDaten festlegen und req auf 1 setzen → die Empfangsseite übernimmt die Daten und setzt ack auf 1 → req auf 0 setzen → ack auf 0 setzen
Antwort und Erläuterung anzeigen

Antwort: C. Daten festlegen und req auf 1 setzen → die Empfangsseite übernimmt die Daten und setzt ack auf 1 → req auf 0 setzen → ack auf 0 setzen

Beim 4-Phasen-Handshake steigen req und ack jeweils einmal an und fallen wieder, sodass eine Übergabe mit insgesamt 4 Änderungen abgeschlossen ist. Die Sendeseite legt die Daten fest und hebt dann req an; die Empfangsseite sieht das synchronisierte req, übernimmt die Daten und hebt ack an. Die Sendeseite sieht das synchronisierte ack und senkt req; die Empfangsseite sieht, dass req gefallen ist, und senkt ack. Da req und ack jeweils 1 Bit breit sind, lassen sie sich sicher mit 2-stufigen Synchronisierern übertragen. Wird req angehoben, während sich die Daten ändern, kann die Empfangsseite einen sich gerade ändernden Wert übernehmen.

Welcher Nachteil der Datenübertragung zwischen Taktdomänen per Handshake ist richtig?

  1. ADa die Synchronisierung von req und ack hin und zurück erfolgt, dauert eine Übertragung viele Zyklen, was für kontinuierliche Übertragung großer Datenmengen ungeeignet ist
  2. BBei Mehrbit-Daten werden die Daten durch den Synchronisationsversatz zwischen den Bits verfälscht
  3. CEs kann nur verwendet werden, wenn Sende- und Empfangstakt dieselbe Frequenz haben
Antwort und Erläuterung anzeigen

Antwort: A. Da die Synchronisierung von req und ack hin und zurück erfolgt, dauert eine Übertragung viele Zyklen, was für kontinuierliche Übertragung großer Datenmengen ungeeignet ist

Beim 4-Phasen-Handshake dauert es 2 Synchronisierungszyklen, bis req die Empfangsseite erreicht, und 2 Zyklen, bis ack zur Sendeseite zurückkehrt; für die Rückkehr beider auf 0 wird nochmals dieselbe Zeit benötigt, sodass eine Übertragung in beiden Domänen zusammen 8 Zyklen oder mehr dauert. Daher eignet es sich für gelegentlich übertragene Daten wie Einstellwerte von Steuerregistern. Da die Daten während der gesamten Übertragung stabil bleiben, treten keine Fehler durch Bitversatz auf, und das Frequenzverhältnis spielt keine Rolle. Sollen Daten quasi in jedem Zyklus fließen, wird ein asynchroner FIFO verwendet.

„Handshake“ in den Erläuterungen

Fragen mit „Handshake“ (7)

  1. Welche Reihenfolge der Signale ist bei der Übertragung eines Datums mit einem 4-Phasen-Handshake mit req und ack richtig?
  2. Welcher Nachteil der Datenübertragung zwischen Taktdomänen per Handshake ist richtig?
  3. Zu welchem Zeitpunkt werden bei der VALID/READY-Übergabe (Handshake) der AXI-Kanäle Daten übergeben?
  4. Wie heißt der Zustand, in dem der Ausgang eines Flipflops, das ein asynchrones Signal empfängt, die Setup- oder Hold-Zeit nicht erfüllt und vorübergehend weder als 0 noch als 1 definiert ist?
  5. Jedes Bit eines 4-Bit-Datenworts wurde mit einem eigenen 2-stufigen Synchronisierer in eine andere Taktdomäne übertragen. Welches Problem kann auftreten, wenn sich die Daten von 0111 auf 1000 ändern?
  6. Ein Impuls, der in einer 500-MHz-Taktdomäne nur 1 Zyklus (2 ns) lang 1 ist, wurde mit einem 2-stufigen Synchronisierer in eine 100-MHz-Domäne übertragen. Welches Problem kann auftreten?
  7. Welche Einschränkung gilt, wenn mit Toggle-Synchronisierung Impulse von einer schnellen in eine langsame Taktdomäne übertragen werden?

Verwandte Begriffe

Taktdomäne Synchronisierer Metastabilität AXI Hold-Zeit Bitfehlerrate (BER) Gray-Code Asynchrones FIFO CRPR (Clock Reconvergence Pessimism Removal) False Path

Zur Glossarübersicht