MOTOROLA
Chapter 8. Internal Control
8-7
8.1.3.1 PCI-to-System-Memory-Read Buffer (PCMRB)
When a PCI device initiates a read from system memory, the address is snooped on the 60x
processor bus (provided snooping is enabled). If the memory interface is available, the
memory access is started simultaneously with the snoop. If the snoop results in a hit in
either the L1 or L2 cache, the MPC106 cancels the system memory access.
Depending on the outcome of the snoop, the requested data is latched into either the 32-
byte PCI-to-system-memory-read buffer (PCMRB), or into both the copy-back buffer and
the PCMRB (as described in Section 8.1.1, “60x Processor/System Memory Buffers”).
If the snoop hits in the L1 or externally-controlled L2, the copy-back data is written
to both the copy-back buffer and to the PCMRB. The data is forwarded to the PCI
bus from the PCMRB, and to system memory from the copy-back buffer.
If the snoop hits in the internally-controlled L2, the data is written to the PCMRB
and sent to PCI without changing the internal state of the data in the L2. Note that a
copy-back to system memory is unnecessary because the state of the data in the L2
remains unchanged.
If the snoop does not hit in either the L1 or L2, the PCMRB is filled from system
memory starting at the requested address to the end of the cache line. If the PCI
agent requested a cache wrap mode transfer, the beginning of the cache line is then
loaded into the PCMRB.
The data is forwarded to the PCI bus as soon as it is received, not when the complete cache
line has been written into the PCMRB. The addresses for subsequent PCI reads are
compared to the existing address, so if the new access falls within the same cache line and
the requested data is already latched in the buffer, the data can be forwarded to PCI without
requiring a snoop or another memory transaction.
If a PCI write to system memory hits in the PCMRB, the PCMRB is invalidated and the
address is snooped on the processor bus. If the 60x processor accesses the address in the
PCMRB, the PCMRB is invalidated.
8.1.3.1.1 Speculative PCI Reads from System Memory
To minimize the latency for large block transfers, the MPC106 provides the ability to
perform speculative PCI reads from system memory. When speculative reading is enabled,
the MPC106 starts the snoop of the next sequential cache line address when the current PCI
read is accessing the third double word (the second half) of the cache line in the PCMRB.
Once the speculative snoop response is known and the MPC106 has completed the current
PCI read, the data at the speculative address is fetched from system memory and loaded into
the PCMRB in anticipation of the next PCI request.
Note that the assertion of CAS
n
for the speculative operation is delayed until PCI is finished
reading the data currently latched in the PCMRB. If a different address is requested, the
speculative operation is halted and any data latched in the PCMRB is invalidated.
Speculative PCI reads are enabled on a per access basis by using the PCI memory-read-