Altifigence Academy

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.

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.

FrontvalidreadyCharge utileTransfert
010tag4, y9Aucun
110tag4, y9Aucun
211tag4, y9tag4 une fois
311tag5, y12tag5 une fois
401Sans importanceAucun

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.

Votre choix s’applique à ce navigateur. Modifiez-le à tout moment en bas de page.