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 MPC106 to support both burst transactions and streams
of single-beat transactions. The MPC106 performs store gathering (if enabled) of
sequential accesses 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 MPC106 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 MPC106 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 sequential bytes in 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/O 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 MPC106 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. While the PCI interface is busy with the first transfer,
any sequential processor single-beat writes within 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 PCI-to-
system memory read buffer (PCMRB) for PCI reads from system memory and two 32-byte
PCI-to-system memory write buffers (PCMWBs) for PCI writes to system memory.
Figure 8-4 shows the address and data buffers between the PCI bus and the system memory.