PI7C8150B
2-PORT PCI-TO-PCI BRIDGE
ADVANCE INFORMATION
Page 28 of 115
July 31, 2003 – Revision 1.031
If extra read transactions could have side effects, for example, when accessing a FIFO, use
non-prefetchable read transactions to those locations. Accordingly, if it is important to
retain the value of the byte enable bits during the data phase, use non-prefetchable read
transactions. If these locations are mapped in memory space, use the memory read
command and map the target into non-prefetchable (memory-mapped I/O) memory space
to use non-prefetching behavior.
3.6.3
READ PREFETCH ADDRESS BOUNDARIES
PI7C8150B imposes internal read address boundaries on read pre-fetched data. When a
read transaction reaches one of these aligned address boundaries, the PI7C8150B stops pre-
fetched data, unless the target signals a target disconnect before the read pre-fetched
boundary is reached. When PI7C8150B finishes transferring this read data to the initiator,
it returns a target disconnect with the last data transfer, unless the initiator completes the
transaction before all pre-fetched read data is delivered. Any leftover pre-fetched data is
discarded.
Prefetchable read transactions in flow-through mode pre-fetch to the nearest aligned 4KB
address boundary, or until the initiator de-asserts FRAME_L. Section 3.6.6 describes flow-
through mode during read operations.
Table 3-4 shows the read pre-fetch address boundaries for read transactions during non-
flow-through mode.
Table 3-4. Read Prefetch Address Boundaries
Type of Transaction
Address Space
Cache
(CLS)
*
*
*
CLS = 0 or 16
Line
Size
Prefetch
Boundary
One DWORD (no prefetch)
One DWORD (no prefetch)
One DWORD (no prefetch)
16-DWORD aligned address
boundary
Cache line address boundary
16-DWORD aligned address
boundary
Cache line boundary
32-DWORD aligned address
boundary
2X of cache line boundary
Aligned
Address
Configuration Read
I/O Read
Memory Read
Memory Read
-
-
Non-Prefetchable
Prefetchable
Memory Read
Memory Read Line
Prefetchable
-
CLS = 1, 2, 4, 8, 16
CLS = 0 or 16
Memory Read Line
Memory Read Multiple
-
-
CLS = 1, 2, 4, 8, 16
CLS = 0 or 16
Memory Read Multiple
- does not matter if it is prefetchable or non-prefetchable
* don’t care
-
CLS = 1, 2, 4, 8, 16
Table 3-5. Read Transaction Prefetching
Type of Transaction
I/O Read
Configuration Read
Read Behavior
Prefetching never allowed
Prefetching never allowed
Downstream: Prefetching used if address is prefetchable space
Upstream: Prefetching used or programmable
Prefetching always used
Prefetching always used
Memory Read
Memory Read Line
Memory Read Multiple
See Section 4.3 for detailed information about prefetchable and non-prefetchable address spaces.