
MOTOROLA
Chapter 8. Internal Control
8-5
8.1.2.2 Processor-to-PCI-Write Buffers (PRPWBs)
There are two 16-byte buffers for processor writes to PCI. These buffers can be used
together as one 32-byte buffer for processor burst writes to PCI, or separately for single-
beat writes to PCI. This allows the MPC105 to support both burst transactions and streams
of single-beat transactions. The MPC105 performs store gathering (if enabled) within the
16-byte range that makes up either the first or second half of the cache line. All transfer
sizes are gathered if enabled (PICR1[ST_GATH_EN] = 1).
The internal buffering minimizes the effect of the slower PCI bus on the higher speed 60x
processor bus. Once the processor write data is latched internally, the 60x processor bus is
available for subsequent transactions without having to wait for the write to the PCI target
to complete. Note that both PCI memory and I/O accesses are buffered. Device drivers must
take into account that writes to I/O devices on the PCI bus are posted. The processor may
believe that the write has completed while the MPC105 is still trying to acquire mastership
of the PCI bus.
If the processor initiates a burst write to PCI, the 60x data transfer is delayed until all
previous writes to PCI are completed, and then the burst data from the 60x processor fills
the two PRPWBs. The address and transfer attributes are stored in the first address buffer.
For a stream of single-beat writes, the data for the first transaction is latched in the first
buffer and the MPC105 initiates the transaction on the PCI bus. The second single-beat
write is then stored in the second buffer. For subsequent single-beat writes, store gathering
is possible if the incoming write is to the same half cache line as the previously latched data.
Store gathering is only used for writes to PCI memory space, not for writes to PCI I/0 space.
The store gathering continues until the buffer is scheduled to be flushed or until the
processor issues a synchronizing transaction.
For example, if both PRPWBs are empty and the 60x processor issues a single-beat write
to PCI, the data is latched in the first buffer and the PCI interface of the MPC105 attempts
to acquire the PCI bus for the transfer. The data for the next 60x-to-PCI write transaction is
latched in the second buffer, even if the second transaction’s address falls within the same
half cache line as the first transaction. As long as the PCI interface is busy with the first
transfer, any processor single-beat writes to the same half cache line as the second transfer
are gathered in the second buffer until the PCI bus becomes available.
8.1.3 PCI/System Memory Buffers
There are three data buffers for PCI accesses to system memory—one 32-byte buffer for
PCI reads from system memory (PCMRB) and two 32-byte buffers for PCI writes to system
memory (PCMWBs) each with an associated address buffer. Figure 8-4 shows the address
and data buffers between the PCI bus and the system memory.