A method and apparatus performs high bandwidth low latency programmed I/O
(PIO) write operations by passing tokens. A computer system in accordance
with the present invention includes a plurality of CPUs, with each CPU
coupled to a CPU agent. Each CPU agents is coupled to an interconnection
fabric, which in turn is coupled to an I/O agent and memory. The computer
system may also have multiple I/O agents. Each I/O agent is coupled to an
I/O card, and the computer system may have multiple I/O cards. The CPU
agents and the I/O agents have token slots, and tokens circulate between
the token slots. When a CPU seeks to write to an I/O card, the CPU
forwards a PIO write request to the CPU agent. If the CPU agent does not
have the token, the CPU agent sends the write data along with a request
for the token to the I/O agent. If the token is currently owned by the I/O
agent, it is sent to the CPU agent. If the token is owned by another CPU
agent, the I/O agent will issue a request to the other CPU agent to recall
the token. When the token arrives at the I/O agent, the I/O agent sends
the token to the requesting CPU agent and writes the data to the I/O card.
At this point, the CPU agent acknowledges the PIO write to the CPU, and
the CPU will be able to issue as many back-to-back PIO writes via the CPU
agent as buffering, flow control, and device processing speeds will allow.
The present invention includes a protocol to control the flow of write
data, tokens, requests, and acknowledgments between the CPU agents and the
I/O agents. The present invention achieves performance levels comparable
to those provided by accelerated PIO write operations, while providing
backward compatibility with existing CPUs, operating systems, and drivers.
Eine Methode und ein Apparat führt hohe Bandbreite durch, die niedrige Latenz programmierte I/O (PIO) Betriebe schreiben, indem sie Zeichen führen. Ein Computersystem in Übereinstimmung mit der anwesenden Erfindung schließt eine Mehrzahl von CPUs ein, wenn jede CPU zu einem CPU Mittel verbunden ist. Jede CPU Mittel wird zu einem Verbindung Gewebe verbunden, das der Reihe nach zu einem dem I/O Mittel und Gedächtnis verbunden wird. Das Computersystem kann mehrfache I/O Mittel auch haben. Jedes I/O Mittel wird zu einer I/O Karte verbunden, und das Computersystem kann mehrfache I/O Karten haben. Die CPU Mittel und die I/O Mittel haben Scheinschlitze, und Zeichen verteilen zwischen den Scheinschlitzen. Wenn eine CPU sucht, zu einer I/O Karte zu schreiben, schickt die CPU einen PIO schreiben Antrag zum CPU Mittel nach. Wenn das CPU Mittel nicht das Zeichen hat, schickt das CPU Mittel die schreibendaten zusammen mit einem Antrag für das Zeichen zum I/O Mittel. Wenn das Zeichen z.Z. vom I/O Vertreter besessen wird, wird es zum CPU Mittel geschickt. Wenn das Zeichen von einem anderen CPU Vertreter besessen wird, gibt das I/O Mittel einen Antrag zum anderen CPU Mittel heraus, das Zeichen zurückzurufen. Wenn das Zeichen im I/O Mittel ankommt, schickt das I/O Mittel dem erbittenen CPU Vertreter das Zeichen und schreibt die Daten zur I/O Karte. An diesem Punkt bestätigt das CPU Vertreter den PIO schreiben zur CPU, und die CPUIST in der Lage, da vielen Rücken an Rückenpio herauszugeben schreibt über das CPU Mittel, da abdämpfend, Steuerung des Datenflusses, und Vorrichtung verarbeitengeschwindigkeiten gewähren. Die anwesende Erfindung schließt ein Protokoll ein, um den Fluß von zu steuern schreiben Daten, Zeichen, Anträge und Bestätigungen zwischen den CPU Mitteln und den I/O Mitteln. Die anwesende Erfindung erzielt die Leistungsniveaus, die mit denen vergleichbar sind, die von beschleunigtem PIO bereitgestellt werden, schreiben Betriebe, beim Versehen der rückwärtigen Kompatibilität mit bestehendem CPUs, der Betriebssysteme und der Treiber.