
8-4
MPC105 PCIB/MC User's Manual
MOTOROLA
8.1.2.1 Processor-Read-from-PCI 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 MPC105 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 MPC105 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 MPC105 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 read from system memory, the MPC105 retries the 60x
processor so that the incoming PCI transaction can be snooped. A PCI-initiated read from
system memory may require a snoop transaction on the 60x processor bus, and a copy-back
may be necessary.
The PCI interface of the MPC105 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, the
MPC105 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 MPC105 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 MPC105 is waiting for the PCI bus grant, the
MPC105 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 PCI read buffer to ensure that the
processor is requesting the same data. Once all data requested by the processor is latched
in the PCI read buffer, the data is transferred to the processor, completing the transaction.