High bandwidth PCI to packet switched router bridge having minimized memory latency
First Claim
1. A computer system comprising:
- a routing mechanism for routing packets of data;
a processor coupled to the routing mechanism for processing the data;
a memory coupled to the routing mechanism for storing the data;
a PCI bus for conveying PCI format data;
a PCI device coupled to the PCI bus;
a bridge coupled between the routing mechanism and the PCI bus for providing an interface between the PCI bus and the routing mechanism;
a plurality of write buffers coupled to the bridge, wherein a plurality of write transactions on the PCI bus are combined into one cache line sized transfer to the routing mechanism;
a plurality of read buffers coupled to the bridge, wherein data fetched according to a read request from the device is stored in the read buffers and the device can access the read buffer multiple times to retrieve the data;
a prefetcher coupled to the bridge, wherein when the PCI device generates a read request and there is no corresponding data contained in the read buffers, the bridge reads sequential cache lines until the read buffers are full, a page boundary is encountered, or the read buffers are caused to be flushed.
15 Assignments
0 Petitions
Accused Products
Abstract
In a computer system, a mechanism for minimizing memory latencies. An improved, high-speed packet switched router is used to route packets quickly and efficiently between the microprocessor and the main memory. The computer system also supports PCI devices by implementing a bridge which acts as an interface between the PCI bus and the packet switched router. In order to minimize the memory latencies for PCI based memory accesses through the bridge, a plurality of read and write buffers are implemented. Write gathering is used to gather a plurality of write transactions on the PCI bus into the write buffers and sent by the bridge as one cache line sized transfer to the routing mechanism. For PCI based read operations, data is pre-fetched from the main memory and stored in the read buffers. Thereby, PCI devices can access the read buffers multiple times to retrieve the requested data.
113 Citations
16 Claims
-
1. A computer system comprising:
-
a routing mechanism for routing packets of data; a processor coupled to the routing mechanism for processing the data; a memory coupled to the routing mechanism for storing the data; a PCI bus for conveying PCI format data; a PCI device coupled to the PCI bus; a bridge coupled between the routing mechanism and the PCI bus for providing an interface between the PCI bus and the routing mechanism; a plurality of write buffers coupled to the bridge, wherein a plurality of write transactions on the PCI bus are combined into one cache line sized transfer to the routing mechanism; a plurality of read buffers coupled to the bridge, wherein data fetched according to a read request from the device is stored in the read buffers and the device can access the read buffer multiple times to retrieve the data; a prefetcher coupled to the bridge, wherein when the PCI device generates a read request and there is no corresponding data contained in the read buffers, the bridge reads sequential cache lines until the read buffers are full, a page boundary is encountered, or the read buffers are caused to be flushed. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A computer system comprising:
-
a routing mechanism for routing packets of data; a processor coupled to the routing mechanism for processing the data; a memory coupled to the routing mechanism for storing the data; a PCI bus for conveying PCI format data; a PCI device coupled to the PCI bus; a bridge coupled between the routing mechanism and the PCI bus for providing an interface between the PCI bus and the routing mechanism; a plurality of write buffers coupled to the bridge, wherein a plurality of write transactions on the PCI bus are combined into one cache line sized transfer to the routing mechanism; a controller coupled to the PCI bus for controlling multiple streams of data and multiple virtual buffers so that a bit is used to select or clear particular virtual buffers.
-
-
9. In a computer system, a method for minimizing memory latencies corresponding to memory accesses through a bridge coupled between a memory and a device, comprising the steps of:
-
issuing a write request by the device; transmitting the write request over a PCI bus to the bridge; combining a plurality of write requests; storing the write requests into a write buffer; transmitting a single write transaction corresponding to the combination of write requests from the bridge to the memory through a routing mechanism; pre-fetching data from the memory according to a read request generated by the device; storing the data in a plurality of read buffers coupled to the bridge; accessing the read buffer multiple times to retrieve the data; continuing to prefetch data until either the read buffers are full, a page boundary is encountered, or the read buffers are caused to be flushed. - View Dependent Claims (10, 11, 12, 13, 14, 15)
-
-
16. In a computer system, a method for minimizing memory latencies corresponding to memory accesses through a bridge coupled between a memory and a device, comprising the steps of:
-
issuing a write request by the device; transmitting the write request over a PCI bus to the bridge; combining a plurality of write requests; storing the write requests into a write buffer; transmitting a single write transaction corresponding to the combination of write requests from the bridge to the memory through a routing mechanism; controlling multiple streams of data and multiple virtual buffers, wherein a bit is used to select or clear particular virtual buffers.
-
Specification