8-4
MPC106 PCIB/MC User's Manual
MOTOROLA
8.1.2.1 Processor-to-PCI-Read Buffer (PRPRB)
60x processor reads from PCI require buffering for two primary reasons. First, the
processor bus uses a critical-word-first protocol, while the PCI bus uses a zero-word-first
protocol. The MPC106 requests the data zero-word-first, latches the requested data, and
then delivers the data to the 60x processor critical-word-first.
The second reason is that if the target for a processor read from PCI disconnects part way
through the data transfer, the MPC106 may have to handle a system memory access from
an alternate PCI master before the disconnected transfer can continue.
When the processor requests data from the PCI space, the data received from PCI is stored
in the PRPRB until all requested data has been latched. The MPC106 does not terminate
the address tenure of the 60x transaction until all requested data is latched in the PRPRB.
If the PCI target disconnects in the middle of the data transfer and an alternate PCI master
acquires the bus and initiates a system memory access, the MPC106 retries the 60x
processor so that the incoming PCI transaction can be snooped. A PCI-initiated access to
system memory may require a snoop transaction on the 60x processor bus, and a copy-back
may be necessary. The MPC106 does not provide the data to the 60x bus (for the processor
to PCI read transaction) until all outstanding snoops for PCI writes to system memory have
completed. Note that if a processor read from PCI transaction is waiting for a PCWMB
snoop to complete, all subsequent requests for PCI writes to system memory will be retried
on the PCI bus.
The PCI interface of the MPC106 continues to request the PCI bus until the processor’s
original request is completed. When the next processor transaction starts, the address is
snooped against the address of the previous transaction (in the internal address buffer) to
verify that the same data is being requested. Once all the requested data is latched, and all
PCI write to system memory snoops have completed, the MPC106 asserts AACK and
DBG
n
(as soon as the 60x data bus is available) and completes the data transfer to the
processor. If a second processor starts a new transaction, the address cannot match the
disconnected transaction address. If the new transaction is not a read from PCI, it proceeds
normally; if the transaction is a read from PCI, it must wait until the disconnected
transaction completes before proceeding.
For example, if the processor initiates a critical-word-first burst read, starting with the
second double word of the cache line, the read on the PCI bus begins with the cache-line-
aligned address. If the PCI target disconnects after transferring the first half of the cache
line, the MPC106 re-arbitrates for the PCI bus, and when granted, initiates a new
transaction with the address of the third double word of the line. If an alternate PCI master
requests data from system memory while the MPC106 is waiting for the PCI bus grant, the
MPC106 retries the processor transaction to allow the PCI-initiated transaction to snoop the
processor bus. When the processor snoop is complete, the subsequent processor transaction
is compared to the latched address and attributes of the PRPRB to ensure that the processor
is requesting the same data. Once all data requested by the processor is latched in the
PRPRB, the data is transferred to the processor, completing the transaction.