Was bedeutet "gebucht" in der gebuchten PCIE-Transaktion?


Antworten:


6

Ich weiß wenig über PCI, aber es scheint mir, dass die Hauptsache bei gebuchten Transaktionen darin besteht, dass Sie keine Kontrolle über sie haben, sobald sie initiiert sind.
Ein bisschen wie das Senden einer Nachricht per Mail ( post!): Sobald sich die Nachricht in der Mailbox befindet, liegt sie außerhalb Ihrer Kontrolle.
Andere Systeme verwenden ebenfalls post, z. B. das Windows-Nachrichtensystem, das das Posten und Senden kennt . Wenn Sie eine Windows-Nachricht senden, haben Sie die Kontrolle, bis die Nachricht verarbeitet wurde. Wenn Sie sie veröffentlichen, stellen Sie sie in die Nachrichtenwarteschlange, und fertig. Kein Feedback, keine Bestätigung.


Danke Steven. Jetzt habe ich eine Mnemonik für Postpost anstelle einer beliebigen Nachschlagetabelle.
Ross Rogers

15

Um über PCIe-gebuchte Transaktionen Bescheid zu wissen, müssen Sie verstehen, was ein "veröffentlichtes Schreiben" für Legacy-PCI ist und was ein Legacy-PCI-Lesevorgang ist.

Bei einem älteren PCI-Lesevorgang und tatsächlich bei den meisten Bussen sendet die CPU einen Lesebefehl und die Leseadresse wartet darauf, dass das Gerät mit den Daten und einem "Fertig" -Signal antwortet. Grundsätzlich handelt es sich um eine Sache vom Typ Befehl und Antwort.

Normale Schreibvorgänge auf einem älteren PCI-Bus und vielen anderen Bussen sind ähnlich, außer dass der Befehl das Schreibsignal + Adresse + Daten ist und die Antwort nur "erledigt" ist. Das Problem dabei ist, dass für viele Systeme das "erledigt" nicht benötigt wird und nur Zeit braucht. Wenn das Peripheriegerät, auf das Sie schreiben, Schreibvorgänge mit voller Geschwindigkeit akzeptieren kann, ist das erledigt überhaupt nicht erforderlich.

Ein "geschriebenes Schreiben" ist ein Schreiben, das nicht auf ein "erledigt" wartet. Die CPU geht davon aus, dass der Schreibzyklus mit null Wartezuständen abgeschlossen wird, und wartet daher nicht auf den Vorgang. Dies beschleunigt das Schreiben erheblich. Für den Anfang muss es nicht auf die Antwort warten, sondern ermöglicht auch ein besseres Pipelining des Datenpfads ohne große Leistungseinbußen.

Im PCIe-Land werden alle Schreibvorgänge gebucht. PCIe nennt sie jedoch "gebuchte Transaktionen", da es viele Arten von Schreibvorgängen gibt (Speicherschreibvorgänge, E / A-Schreibvorgänge, Konfigurationsschreibvorgänge usw.). Es gibt auch einige andere Transaktionen, die keine Antwort haben.

Der Grund, warum alle Schreibvorgänge veröffentlicht werden, liegt darin, dass die serielle und paketbasierte Natur von PCIe die "Antwort" sehr langsam macht. Es ist üblich, dass das Lesen eines einzelnen Wortes mehrere Mikrosekunden dauert. Obwohl der Bus mit 2,5 Gigabit / Sekunde fährt, könnten Sie nur etwa 4 Megabyte / Sekunde erhalten, wenn Sie einzelne Wörter lesen. Wenn Sie dies in geschriebene Einzelwortschreibvorgänge ändern, steigt die Bandbreite auf etwa 60 Megabyte / Sekunde. Wechseln Sie zu Schreibvorgängen mit mehreren Wörtern, und Sie haben eine Geschwindigkeit von bis zu 250 Megabyte / Sekunde.

Es gibt in keinem Bus einen geposteten Lesevorgang, da für alle Lesevorgänge eine Antwort erforderlich ist (auch bekannt als die Daten, die Sie lesen).


1

Es ist hilfreich zu verstehen, dass ein PCI-Bus-Controller eine Schnittstelle zwischen einem lokalen Prozessorbus, dh der nativen Busstruktur der CPU, und dem PCI-Adapterbus bildet. Angenommen, Ihre CPU möchte Daten auf ein PCI-Gerät schreiben. Es gibt keine Geräteauswahl, die direkt von Ihrem nativen Busadressdecoder auf eine eingesteckte PCI-Karte ausgeführt wird. Die CPU schreibt also in einen Teil ihres lokalen physischen Adressraums, der in den PCI-Buscontroller decodiert wird. Wenn der PCI-Bus-Master den Schreibzyklus sieht, speichert er die Adresse und die Daten zwischen. Zu diesem Zeitpunkt wird der Rest der E / A-Transaktion von der CPU entkoppelt. Die CPU kann ihren Weg frei machen, das nächste tun, b / c an diesem Punkt, der Zyklus wurde auf den PCI-Bus-Controller 'gebucht'; Der PCI-Bus-Controller verwaltet dann die Auswahl des richtigen Geräts und beendet den E / A-Zyklus.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.