13 / 24 · Konzept
Übernahmeereignisse und Stabilität während Wartezyklen
Ordnen Sie Sender und Empfänger ihre Aufgaben zu und erhalten Sie angehaltene Nutzdaten.
Lektionen sind frei lesbar. Schreibe dich ein, um deinen Fortschritt zu speichern.
Eine Übertragung benötigt beide Signale an einer Flanke
Valid sagt zu, dass der Sender Nutzdaten anbietet. Ready sagt zu, dass der Empfänger an der aktuellen Flanke ein Element übernehmen kann. Eine steigende Flanke mit beiden Signalen auf hoch überträgt genau eine Transaktion. Zu den Nutzdaten gehören alle Begleitfelder, etwa Tag, Operation oder Adresse. Ein dauerhaft hohes valid kann ein wartendes Element oder eine Folge von Elementen bedeuten, die an aufeinanderfolgenden Flanken mit ready übertragen werden.
Wenn valid hoch und ready niedrig ist, halten Sie valid und die gesamten Nutzdaten stabil. Unsere Regeln gestatten nur Reset oder ein ausdrückliches Leeren, um diese Verpflichtung aufzuheben. Wartet ein Sender vor dem Setzen von valid auf ready, während der Empfänger vor dem Setzen von ready auf valid wartet, können beide für immer warten. Bieten Sie ein vorbereitetes Element unabhängig von ready an. Diese Handshake- und Stabilitätsprinzipien sind in Arms AMBA-AXI-Spezifikation, Abschnitt A3 dokumentiert. Dieser kleine Datenstrom implementiert nicht die vollständige AXI-Schnittstelle.
| Flanke | valid | ready | Nutzdaten | Übertragung |
|---|---|---|---|---|
| 0 | 1 | 0 | tag4,y9 | Keine |
| 1 | 1 | 0 | tag4,y9 | Keine |
| 2 | 1 | 1 | tag4,y9 | tag4 einmal |
| 3 | 1 | 1 | tag5,y12 | tag5 einmal |
| 4 | 0 | 1 | Unerheblich | Keine |
Tag4 muss während der Wartezyklen unverändert bleiben. Nach seiner Übertragung an Flanke 2 darf der Sender tag5 anbieten. Ready allein erzeugt an Flanke 4 keine Transaktion. Wer allein valid zählt, kann Eingaben verlieren; wer allein Daten liest, kann Ausgaben verdoppeln.
Diese Regeln setzen eine einzelne Taktdomäne voraus. Sie lösen weder Taktdomänenübergänge noch Metastabilität. Zählen Sie übernommene Eingaben und ausgegebene Ergebnisse anhand ihrer jeweiligen Handshakes. Ohne Reset muss übernommen minus ausgegeben der intern ausstehenden Arbeit entsprechen. Reihen Sie übernommene Tags in eine Warteschlange ein und entfernen Sie sie erst bei der Ausgabe. Kombinieren Sie diese Bilanz mit Prüfungen angehaltener Nutzdaten, um Verlust, Verdopplung und Identitätsänderungen auch dann zu erkennen, wenn arithmetische Werte zufällig übereinstimmen.
Selbst ausprobieren
Valid ist in der Tabelle an vier Flanken hoch. Wie viele Übertragungen erfolgen und welche Tags werden übertragen? Welche Regel wird verletzt, wenn y an Flanke 1 auf 10 wechselt?
Erklärung lesen
Es erfolgen zwei Übertragungen: Tags 4 und 5 an Flanke 2 und 3. Die Änderung von y an Flanke 1 verletzt die Nutzdatenstabilität der an Flanke 0 angehaltenen Transaktion.