ID de l'article: 000076983 Type de contenu: Dépannage Dernière révision: 13/12/2011

Possibilité de perte de commande entre des transactions de lecture et d’écriture dans un Avalon MM du RapidIO

Environnement

  • Édition d'abonnement Intel® Quartus® II
  • BUILT IN - ARTICLE INTRO SECOND COMPONENT

    Problème critique

    Descriptif

    Une fonction E/S RapidIO MegaCore Avalon-MM pour la lecture et la lecture les ports d’écriture peuvent présenter des transactions de lecture et d’écriture sur le Avalon-MM interface dans un ordre différent de celui indiqué sur le RapidIO Lien. Plus précisément, si le cœur IP de RapidIO reçoit une lecture demander un paquet sur le lien RapidIO peu après avoir reçu plusieurs paquets de demande d’écriture, la transaction en lecture peut se terminer avant toutes les transactions en écriture sont terminées.

    Le chiffre suivant illustre un exemple de circonstances dans laquelle le problème peut survenir.

    État maître Avalon MM des E/S à partir de laquelle lecture r5 La transaction peut passer par une ou plusieurs transactions en écriture

    Dans le chiffre, l’écriture du cœur IP rapidIO Avalon-MM port a une transaction de demande d’écriture w0 prête à être envoyée à Avalon-MM slave 0, et le cœur IP rapidIO Avalon-MM maître a une transaction de demande en lecture r5 prête à être envoyée au même Avalon-MM esclave, esclave Avalon MM esclave 0. La numérotation de la transaction indique la l’ordre dans lequel les transactions sont arrivées de la couche Transport, c’est-à-dire l’ordre dans lequel les transactions doivent être effectuées. Cependant la commande de transaction est perdue dans le scénario suivant :

    1. Le port d’écriture maître envoie la demande w0 à Avalon-MM esclave 0.
    2. Avalon-MM slave 0 répond en mettant en avant waitrequest .
    3. Le port de lecture maître envoie la demande r5 à Avalon-MM esclave 0.
    4. Avalon-MM slave 0 récupère et transfère les données à le port de lecture du maître Avalon-MM en réponse à la demande r5 - avant la transaction w0 est terminée.

    Le même scénario peut se produire avec w1, w2, w3 ou w4 étant Différé. De même, le w0 peut être différé mais toujours complet avant r5, mais w1 ne sont pas complets avant r5, et ainsi de passe. Le même scénario peut également se produire théoriquement avec une transaction en lecture r0 et avec le w1 écrire une transaction. Cependant, la spécification RapidIO n’exclut pas une transaction en écriture provenant d’une transaction en lecture.

    Résolution

    Pour empêcher la NREAD transmission d’une transaction toutes dans une séquence de NWRITE transactions qui précèdent assurer un délai suffisant entre les transactions en écriture et la transaction en lecture sur le lien RapidIO. Par exemple, vous pourriez effectuer la transaction finale NWRITE une NWRITE_R transaction au lieu de cela, et envoyez la NREAD transaction sur le lien uniquement après avoir reçu la NWRITE_R réponse.

    Ce problème sera résolu dans une version ultérieure du RapidIO Fonction MegaCore.

    Produits associés

    Cet article concerne 1 produits

    Circuits programmables Intel®

    Le contenu de cette page est une combinaison de traduction humaine et informatique du contenu original en anglais. Ce contenu vous est fourni pour votre commodité et à titre informatif seulement et ne saurait être totalement exact ou complet. En cas de contradiction entre la version anglaise de cette page et la traduction, c'est la version anglaise qui prévaut. Afficher la version anglaise de cette page.