Artikel-ID: 000076983 Inhaltstyp: Fehlerbehebung Letzte Überprüfung: 13.12.2011

Potenzial für Bestellverlust zwischen Lese- und Schreibtransaktionen in RapidIO I/O Avalon-MM Master

Umgebung

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

    Kritisches Problem

    Beschreibung

    Eine RapidIO MegaCore Funktion I/O Avalon-MM Master lesen und Schreibports können Lese- und Schreibtransaktionen auf der Avalon-MM darstellen Schnittstelle in einer anderen Reihenfolge als die auf dem RapidIO angezeigte Schnittstelle verbinden. Genauer gesagt, wenn der RapidIO IP-Kern einen Lesepunkt erhält Paket auf dem RapidIO-Link anfordern, nachdem Sie mehrere empfangen haben Write Request Packets, die Lesetransaktion kann zuvor abgeschlossen werden alle Schreibtransaktionen abgeschlossen.

    Die folgende Abbildung veranschaulicht ein Beispiel von Umständen in dem das Problem auftreten kann.

    I/O-Avalon-MM-Masterstatus, aus dem r5 gelesen wird Transaktion kann eine oder mehrere Schreibtransaktionen bestehen

    In der Abbildung schreibt der RapidIO IP-Kern Avalon-MM Master Port verfügt über eine Schreibanforderungstransaktion w0, die an Avalon-MM gesendet werden kann Slave 0 und der RapidIO IP-Core Avalon-MM Master-Lese-Port eine Leseanforderungstransaktion r5, die an den gleichen Avalon-MM gesendet werden kann Slave, Avalon-MM-Slave 0. Die Transaktionsnummer bezeichnet den Reihenfolge, in der die Transaktionen von der Transport-Ebene aus eintrafen, in welcher Reihenfolge die Transaktionen abgeschlossen werden sollen. Jedoch Transaktionsbestellungen werden im folgenden Beispielszenario verloren:

    1. Der Master-Schreib-Port sendet die w0-Anfrage zu Avalon-MM-Slave 0.
    2. Avalon-MM-Slave 0 reagiert durch Geltend machen waitrequest.
    3. Der Master-Leseport sendet die r5-Anfrage an Avalon-MM Slave 0.
    4. Avalon-MM-Slave 0 holt die Daten ab und überträgt sie an dem Avalon-MM Master-Lese-Port als Reaktion auf die r5-Anfrage — zuvor die w0-Transaktion abgeschlossen wird.

    Das gleiche Szenario könnte auftreten, wenn w1, w2, w3 oder w4 sein Latent. Auf ähnliche Weise könnte w0 verschoben werden, aber immer noch vollständig vor r5, aber w1 vor r5 nicht vollständig und so weiter. Das gleiche Szenario könnte auch theoretisch mit einer r0-Lesetransaktion und w1 auftreten Transaktion schreiben. Die RapidIO-Spezifikation schließt jedoch nicht aus eine Schreibtransaktion aus der Weitergabe einer Lesetransaktion.

    Lösung

    Um zu verhindern, dass eine NREAD Transaktion weitergeht jede in einer Sequenz von NWRITE Transaktionen, die sich als gegensymvorgehen es, eine angemessene Verzögerung zwischen den Schreibtransaktionen zu gewährleisten und die Lesetransaktion auf dem RapidIO-Link. Sie könnten zum Beispiel machen Sie die endgültige NWRITE Transaktion zu einer NWRITE_R Transaktion und senden Sie die NREAD Transaktion nur über den Link. nachdem Sie die NWRITE_R Antwort erhalten haben.

    Dieses Problem wird in einer zukünftigen Version des RapidIO behoben MegaCore-Funktion.

    Zugehörige Produkte

    Dieser Artikel bezieht sich auf 1 Produkte

    Intel® programmierbare Geräte

    Der Inhalt dieser Seite ist eine Kombination aus menschlicher und computerbasierter Übersetzung des originalen, englischsprachigen Inhalts. Dieser Inhalt wird zum besseren Verständnis und nur zur allgemeinen Information bereitgestellt und sollte nicht als vollständig oder fehlerfrei betrachtet werden. Sollte eine Diskrepanz zwischen der englischsprachigen Version dieser Seite und der Übersetzung auftreten, gilt die englische Version. Englische Version dieser Seite anzeigen.