
8-8
MPC106 PCIB/MC User's Manual
MOTOROLA
multiple command. Speculative PCI reads can be enabled for all PCI memory read
commands (memory-read, memory-read-multiple, and memory-read-line) by setting bit 2
in PICR1.
The MPC106 starts the speculative read operation only under the following conditions:
PICR1[2] = 1 or the current PCI read access is from a memory read-multiple
command.
The current PCI read access started at the beginning of the cache line.
The MPC106 is accessing the third double word of the cache line in the PCMRB for
the current PCI read.
No internal buffer flushes are pending.
The access is to system memory space. (The MPC106 does not perform speculative
reads on system ROM space.)
8.1.3.2 PCI-to-System-Memory-Write Buffers (PCMWBs)
For PCI write transactions to system memory, the MPC106 employs two PCMWBs. The
PCMWBs hold up to one cache line (32 bytes) each. Before PCI data is transferred to
system memory, the address must be snooped on the 60x processor bus (if snooping is
enabled). The buffers allow for the data to be latched while waiting for a snoop response.
The write data can be accepted without inserting wait states on the PCI bus. Also, two
buffers allow a PCI master to write to one buffer, while the other buffer is flushing its
contents to system memory. Both PCMWBs are capable of gathering for writes to the same
cache line.
If the snoop on the 60x processor bus hits modified data in either the L1 or L2 cache, the
snoop copy-back data is merged with the data in the PCMWB, and the full cache line is sent
to memory. For the PCI memory-write-and-invalidate command, a snoop hit in either the
L1 or L2 cache invalidates any modified cache line without requiring a copy-back.
Note that a PCI transaction that hits in either of the PCMWBs does not require a snoop on
the 60x processor bus. However, if a PCI write address hits in the PCI-read-from-system-
memory buffer (PCMRB), the MPC106 invalidates the PCMRB and snoops the address on
the 60x processor bus.
When the PCI write is complete and the snooping is resolved, the data is flushed to memory
at the first available opportunity.
For a stream of single-beat writes, the data for the first transaction is latched in the first
buffer and the MPC106 initiates the snoop transaction on the 60x processor bus. For
subsequent single-beat writes, gathering is possible if the incoming write is to the same
cache line as the previously latched data. Gathering to the first buffer can continue until the
buffer is scheduled to be flushed, or until a write occurs to a different address. If there is
valid data in both buffers, further gathering is not supported until one of the buffers has been
flushed.