User Manual
BCM1250/BCM1125/BCM1125H
10/21/02
B r o a d c o m C o r p o r a t i o n
Document
1250_1125-UM100CB-R
Section 8: PCI Bus and HyperTransport Fabric Page
215
The HyperTransport fabric uses split transaction reads and the interface supports 14 reads outstanding on the
fabric. When a HyperTransport response arrives it is matched to the associated request and passes back
through the RDR path. If a masked read (a read that is not a multiple of aligned 32-bit words) is encountered
then no further reads will be accepted by the interface until it has completed (the ldl and ldr instructions can
result in reads of 5, 6 or 7 bytes, these will be split into two masked reads that can both be outstanding on the
link and must both complete before the RDR is returned).
The PCI interface can hold one read pending and have one read in flight on the bus. If a read is retried
excessively ( mor e t han t he nu mb er o f t imes set in t he Retr y Timeout r egister describ ed in
) the interface will allow any writes or RDRs to pass before retrying the read. If a read
exceeds the retry timeout on the second attempt it will be abandoned and a bus error reported.
The restriction on only having one read pending on the PCI bus will limit the performance. Therefore in
interface with RevId 3 or greater a prefetch mechanism is added. If prefetching is enabled in the PCI Adaptive
Extend Register then a full cache block ZBbus read will cause 2 or 4 cache blocks to be prefetched from the
PCI. This is particularly useful when the Data Mover is transferring a large block from the PCI. If a read request
from the ZBbus is for a full cacheline at an aligned address and the prefetch is enabled and the address is not
greater than (4k page boundary minus 4 cacheline addresses), then a read of 2 or 4 cachelines is issued to
the PCI. If the next request from the ZBbus is also a full cacheline read to the next consecutive cacheline
address, the prefetched data will be returned. This pattern will repeat until all the prefetched data are returned.
If the next request does not meet this criteria, the prefetched data will be flushed and the new request will be
sent to the PCI bus. (Note that since the prefetched data could be fetched and discarded it is possible for the
prefetching to lower performance.) In the error case where the prefetched data (the additional data that is not
used by the initial transaction) is timed out for too many retries, the interface will not reissue the prefetch reads.
This may cause the device being accessed to deadlock, to prevent this the retry limit should be set high to
ensure only actual errors will be captured.