Altifigence Academy

13 / 24 · Conceito

Eventos de aceitação e estabilidade durante pausas

Atribua responsabilidades à fonte e ao destino e preserve os dados durante pausas.

Uma transferência exige os dois sinais em uma borda

Valid promete que a fonte tem um conteúdo a oferecer. Ready promete que o destino pode aceitá-lo na borda atual. Uma borda de subida com ambos os sinais altos transfere exatamente uma transação. O conteúdo inclui todos os campos acompanhantes, como etiqueta, operação ou endereço. Um sinal valid mantido alto pode significar um único item em pausa ou uma sequência de itens transferidos em bordas consecutivas com ready ativo.

Quando valid está alto e ready está baixo, mantenha valid e todo o conteúdo estáveis. Nosso contrato permite cancelar essa obrigação apenas por reset ou por um descarte explícito. Se uma fonte esperar ready antes de ativar valid enquanto um destino esperar valid antes de ativar ready, ambos poderão esperar para sempre. Ofereça um item preparado independentemente de ready. Esses princípios de handshake e estabilidade estão documentados na especificação AMBA AXI da Arm, seção A3. Este pequeno fluxo não é uma implementação da interface AXI completa.

BordavalidreadyConteúdoTransferência
010tag4,y9Nenhuma
110tag4,y9Nenhuma
211tag4,y9tag4 uma vez
311tag5,y12tag5 uma vez
401IrrelevanteNenhuma

Tag4 deve permanecer inalterada durante a pausa. Após sua transferência na borda 2, a fonte pode apresentar tag5. Ready sozinho na borda 4 não cria uma transação. Contar apenas valid pode perder entradas; ler apenas os dados pode duplicar saídas.

Essas regras pressupõem um único domínio de clock. Elas não resolvem cruzamento de domínios de clock nem metaestabilidade. Conte as entradas aceitas e as saídas entregues a partir de seus respectivos handshakes. Sem reset, aceitas menos entregues deve ser igual ao trabalho interno pendente. Enfileire as etiquetas aceitas e remova-as apenas na entrega. Combine essa contabilização com verificações de estabilidade do conteúdo em pausa para detectar perdas, duplicações e mudanças de identidade, mesmo quando os valores aritméticos por acaso coincidirem.

Experimente

Valid está alto em quatro bordas da tabela. Quantas transferências ocorrem e quais etiquetas são transferidas? Qual regra é violada se y mudar para 10 na borda 1?

Ler a explicação

Ocorrem duas transferências, das etiquetas 4 e 5 nas bordas 2 e 3. Mudar y na borda 1 viola a estabilidade do conteúdo da transação que ficou em pausa na borda 0.

Sua escolha vale neste navegador. Altere-a a qualquer momento no rodapé.