Browse Prior Art Database

BLOCK PCI ARBITRATION ON DELAYED READ REQUESTS

IP.com Disclosure Number: IPCOM000013819D
Original Publication Date: 1999-Dec-01
Included in the Prior Art Database: 2003-Jun-18
Document File: 2 page(s) / 41K

Publishing Venue

IBM

Related People

EQ GARCIA: AUTHOR [+7]

Abstract

On a PCI bus containing a PCI bridge and multiple PCI agents, a method is described to prevent the agents from thrashing the PCI bus when they perform delayed reads through the bridge or when the bridge has no room for the agents' write data. The method uses an arbiter, to determine the internal state of the PCI to PCI bridge, and minimize retries on read operations, where little or no data is available in the bridge's read return buffers. The arbiter also ensures that adequate write buffering is available for write operations. The net effect of these techniques is to increase the data per bus transaction ratio, thus increasing total bus throughput. The secondary PCI bus arbiter is located in the PCI bridge. While meeting the requirements for the PCI specification, the arbiter takes advantage of knowledge about the internal workings of the bridge. The arbiter is a two tiered arbiter. The first tier has the highest priority and arbitrates among agents which either 1) do not have a delayed read operation in progress; or

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 48% of the total text.

Page 1 of 2

BLOCK PCI ARBITRATION ON DELAYED READ REQUESTS

On a PCI bus containing a PCI bridge and multiple PCI agents, a method is described to prevent the agents from thrashing the PCI bus when they perform delayed reads through the bridge or when the bridge has no room for the agents' write data. The method uses an arbiter, to determine the internal state of the PCI to PCI bridge, and minimize retries on read operations, where little or no data is available in the bridge's read return buffers. The arbiter also ensures that adequate write buffering is available for write operations. The net effect of these techniques is to increase the data per bus transaction ratio, thus increasing total bus throughput.

The secondary PCI bus arbiter is located in the PCI bridge. While meeting the requirements for the PCI specification, the arbiter takes advantage of knowledge about the internal workings of the bridge. The arbiter is a two tiered arbiter.

The first tier has the highest priority and arbitrates among agents which either


1) do not have a delayed read operation in progress; or
2) they do have a delayed read operation in progress, there is sufficient read data in the read return buffer to sustain the desired burst size. Also, there must be adequate write buffer space in the bridge for the
agent to participate in the first tier of arbitration.

The second tier has second priority and arbitrates among agents with delayed read operations for which there is not sufficient read data in the read return buffer to sustain the desired burst size. Also, there must be adequate write buffer space in the bridge for the agent to participate in the second tier of arbitration. Agents in the second tier will be considered for bus ownership only if there are no requests in the first tier.

As is apparent by the descriptions above, it is possible for an agent to be included in neither arbitration tier. This occurs when there is not sufficient space in the write buffer to allow a new write transaction to start.

DELAYED READ REQUESTS

When an adapter PCI agent performs a read through the bridge that cannot be completed in a single PCI transaction, the bridge's read control logic issues a disconnect retry to the adapter PCI agent and asserts that agent's "BLOCK ADAPTER" signal to the arbiter to lower the priority for that agent's PCI request. This places the adapter in the second tier. The bridge's read control logic will keep the Block Adapter signal asserted for a particular agent until the read data for that agent is loaded into its read return buffer and ready to be delivered to the adapter PCI bus, or until the read logic receives a command to flush the read buffer.

The agent that was retried may reassert its bus request in two PCI clock cycles to retry the operation. If any other tier one agent has its PCI request asserted, that agents' request will be honored and the tier two agents will not have their requests granted. If there are no tier one agents requests a...