Patent ID: 7424562

Claim:
A method, comprising: receiving, at a bridge device, a read request across an expansion bus from an expansion device to a portion of a system memory predetermined to have descriptor addresses; issuing a read request from the bridge device across a system bus to fetch the descriptor addresses from the system memory; receiving descriptor blocks including descriptor data at the bridge device across the system bus, wherein the descriptor data includes a transmit size of transmit data from the system memory to the expansion device, a location of the transmit data, and an address of the transmit data, and wherein the transmit size indicates an amount of data that the bridge device may pre-fetch from the system memory for the expansion device such that requests for the transmit data from the expansion device are handled entirely at the bridge device without involving the system memory; storing the descriptor data in a memory on the bridge; transmitting the descriptor blocks from the bridge device to the expansion device across the expansion bus; receiving, at the bridge device, a read request from the expansion device for at least a portion of the transmit data, wherein the read request includes a read request address; searching the memory on the bridge for the read request address; and if the read request address is located in the memory on the bridge, fetching the portion of the transmit data requested and prefetching any remaining transmit data to match the transmit size by the bridge device, such that any subsequent request for the prefetched transmit data from the expansion device is handled at the bridge device without involving the system memory.