13 / 24 · Concept
Événements d’acceptation et stabilité pendant les blocages
Attribuez les responsabilités de la source et du récepteur et conservez les charges utiles bloquées.
Les leçons sont gratuites. Inscrivez-vous pour enregistrer vos progrès.
Un transfert exige les deux signaux au front
Valid garantit que la source a une charge utile à proposer. Ready garantit que le récepteur peut en accepter une au front courant. Un front montant avec les deux signaux hauts transfère exactement une transaction. La charge utile inclut tous les champs associés, tels que l’étiquette, l’opération ou l’adresse. Un signal valid maintenu haut peut représenter un élément bloqué ou une succession d’éléments transférés à des fronts prêts consécutifs.
Lorsque valid est haut et ready bas, maintenez valid et la charge utile complète stables. Notre contrat n’autorise que reset ou une purge explicite à annuler cette obligation. Si une source attend ready avant d’activer valid tandis qu’un récepteur attend valid avant d’activer ready, tous deux peuvent attendre indéfiniment. Proposez un élément préparé indépendamment de ready. Ces principes de synchronisation et de stabilité sont documentés dans la spécification AMBA AXI d’Arm, section A3. Ce petit flux n’implémente pas l’interface AXI complète.
| Front | valid | ready | Charge utile | Transfert |
|---|---|---|---|---|
| 0 | 1 | 0 | tag4, y9 | Aucun |
| 1 | 1 | 0 | tag4, y9 | Aucun |
| 2 | 1 | 1 | tag4, y9 | tag4 une fois |
| 3 | 1 | 1 | tag5, y12 | tag5 une fois |
| 4 | 0 | 1 | Sans importance | Aucun |
Tag4 doit rester inchangé pendant le blocage. Après son transfert au front 2, la source peut présenter tag5. Ready seul au front 4 ne crée pas de transaction. Compter valid seul peut perdre des entrées ; lire les données seules peut dupliquer les sorties.
Ces règles supposent un seul domaine d’horloge. Elles ne résolvent ni le franchissement de domaines d’horloge ni la métastabilité. Comptez les entrées acceptées et les sorties livrées à partir de leurs synchronisations respectives. Sans réinitialisation, acceptées moins livrées doit égaler le travail interne en cours. Placez les étiquettes acceptées dans une file et ne les retirez qu’à la livraison. Combinez ce bilan avec les vérifications de charge utile bloquée pour détecter perte, duplication et changement d’identité même lorsque les valeurs arithmétiques coïncident.
Essayez vous-même
Valid est haut sur quatre fronts du tableau. Combien de transferts ont lieu et quelles étiquettes sont transférées ? Quelle règle est violée si y passe à 10 au front 1 ?
Lire l’explication
Deux transferts ont lieu : les étiquettes 4 et 5 aux fronts 2 et 3. Modifier y au front 1 viole la stabilité de charge utile de la transaction bloquée au front 0.