ID do artigo: 000076983 Tipo de conteúdo: Solução de problemas Última revisão: 13/12/2011

Potencial para perda de ordem entre transações de leitura e gravação no Mestre de E/S RapidIO Avalon-MM

Ambiente

    Intel® Quartus® II Subscription Edition
BUILT IN - ARTICLE INTRO SECOND COMPONENT

Problema crítico

Descrição

Leitura e leitura de E/S da função RapidIO MegaCore Avalon-MM portas de gravação podem apresentar transações de leitura e gravação no Avalon-MM interface em uma ordem diferente do que eles apareceram no RapidIO Link. Mais especificamente, se o núcleo rapidIO IP receber uma leitura pacote de solicitação no link RapidIO logo após receber vários pacotes de solicitação de gravação, a transação de leitura pode ser concluída antes todas as transações de gravação concluídas.

A figura a seguir ilustra um exemplo de circunstâncias em que o problema pode ocorrer.

Estado mestre Avalon-MM de E/S a partir do qual r5 lido Transação pode passar por uma ou mais transações de gravação

Na figura, o core IP RapidIO Avalon-MM porta tem uma transação de solicitação de gravação w0 pronta para enviar para Avalon-MM slave 0, ea porta de leitura mestre rapidIO IP Avalon MM tem uma transação de solicitação de leitura r5 pronta para enviar para o mesmo Avalon-MM escravo, Avalon mm escravo 0. A numeração da transação indica o ordem em que as transações chegaram a partir da camada de transporte, que é a ordem em que as transações devem ser concluídas. No entanto o pedido de transação é perdido no seguinte cenário de exemplo:

  1. A porta de gravação mestre envia a solicitação w0 para Avalon-MM slave 0.
  2. Avalon-MM slave 0 responde afirmando waitrequest.
  3. A porta de leitura mestre envia a solicitação r5 para Avalon-MM escravo 0.
  4. Avalon-MM slave 0 recupera e transfere os dados para a porta Avalon-MM mestre de leitura em resposta à solicitação de r5 — antes a transação w0 é concluída.

O mesmo cenário pode ocorrer com w1, w2, w3 ou w4 sendo Adiada. Da mesma forma, w0 pode ser diferido, mas ainda completo antes r5, mas w1 não concluído antes de r5, e assim por diante. O mesmo cenário também pode ocorrer teoricamente com uma transação de leitura r0 e w1 transação de gravação. No entanto, a especificação RapidIO não exclui uma transação de gravação a partir da aprovação de uma transação de leitura.

Resolução

Para evitar que uma NREAD transação passe qualquer em uma sequência de transações NWRITE que precedem ele, garantir um atraso adequado entre as transações de gravação e a transação de leitura no link RapidIO. Por exemplo, você poderia tornar a transação final NWRITE uma NWRITE_R transação em vez disso, e enviar a NREAD transação apenas no link após receber a NWRITE_R resposta.

Este problema será corrigido em uma versão futura do RapidIO Função MegaCore.

Produtos relacionados

Este artigo aplica-se a 1 produtos

Dispositivos programáveis Intel®

1

O conteúdo desta página é uma combinação de tradução humana e por computador do conteúdo original em inglês. Este conteúdo é fornecido para sua conveniência e apenas para informação geral, e não deve ser considerado completo ou exato. Se houver alguma contradição entre a versão em inglês desta página e a tradução, a versão em inglês governará e será a controle. Exibir a versão em inglês desta página.