AGP Subsystem

Delayed transactions are issued and serviced as follows:

1.Upon receiving a read request, the address is compared against the GXB’s internal buffers. Unless the data corresponding to this request is already available in the buffers (i.e. from a previously retried request), the read cycle is immediately retried (the GXB retries the read cycle in three PCI clocks from FRAME# driven active).

2.If there is an available Delayed Transaction Request buffer (there is only one per GXB), then the GXB will latch the pertinent information and forward the read request.

3.When the data is returned, the GXB will store it in its internal buffers, and flag the buffers as “available” for a subsequent read to that address (i.e. GOTO #1).

The GXB allows only one outstanding Delayed Transaction access. After accepting a Delayed Transaction, the GXB maintains system concurrency by continuing to accept and process additional writes as buffering allows. If the Delayed Transaction Request slot is full, the GXB will retry all reads that do not match the address and byte enables of the pending Delayed Transaction. For PCI Stream AGP to DRAM writes, the GXB will post the cycle unless the posted write slots are full (in which case the write is retried).

The GXB does not differentiate between read transactions from different masters. If a different master, other than the one that initiated the Delayed Transaction, attempts to read the same DRAM location as the Delayed Transaction, the GXB will respond with the data and complete the Delayed Transaction on the AGP bus.

7.2.7.2PCI Stream Read Prefetching

The GXB delays all inbound reads. A Memory Read targeting memory will fetch 8B, unless the transaction begins 4B from the end of a cache line, in which case the transaction only fetches 4B. A Memory Read Line or Memory Read Multiple will always prefetch up to one cache line of data. When the read data is available in the GXB, the next matching read attempt from the controller is accepted and the data is streamed to the AGP bus until the controller disconnects or the prefetched data is consumed. Any data left when the controller disconnects is discarded. If the controller disconnects half way through a line, and comes back with the next address; then a new read is sent to DRAM for the data.

7.2.7.3Inbound Reads Directed To Memory

All PCI reads-to-memory are propagated up through the SAC and placed on the system bus to allow snooping. The snoops are performed using the Memory Read (Length=0) transaction, which does not transfer data on the system bus. Instead, the data is transferred directly from the memory to the SAC, and finally back to the GXB. This path means that PCI Stream AGP-DRAM reads need consume no host data bus bandwidth (except in the case of implicit writebacks).

Note: The GXB as a PCI target supports only a linear incrementing burst (denoted by AD[1:0]=00 during the address phase). A PCI burst request specifying any type of sequence other than linear results in a disconnect after the first data phase.

7.2.7.4Inbound Delayed Read Matching Rules

The completion response returned to the GXB for a Delayed Read transaction is matched to the requesting PCI master by using information that was latched into the target during the initial request. This information consists of the address, command and byte enables. Table 7-2illustrates which read request information is used for matching Delayed Read Completions to the requesting agent.

7-10

Intel® 460GX Chipset Software Developer’s Manual

Page 140
Image 140
Intel 460GX manual PCI Stream Read Prefetching, Inbound Reads Directed To Memory, Inbound Delayed Read Matching Rules