
Chapter 4. Memory Coherency
4-19
4.8 External WIM Bit Settings
The write-through (WT), cache-inhibit (CI), and global (GBL) signals generally
correspond to the W, I, and M bits supplied by the translation mechanism (page table or
BAT); however, there are exceptions:
In real mode, load and store operations bypass the translation mechanism and are
implicitly WIM = 001 or WIM = 011 if the cache is disabled or locked.
Write-back and snoop push operations do not involve the translation mechanism and
are sent out as WIM = 000.
TLB reloads are placed onto the bus as WIM = 001 or WIM = 011 if the cache is
disabled or locked.
The
dcbst
and
dcbf
instructions to non–write-through memory are placed on the bus
indicating write-through (write-with-kill bus operation) if the cache block is in the
M state.
The XFERDATA bus operations are always placed on the bus with WIM = 010,
regardless of the state of the WIM bits supplied by the translation mechanism.
For SYNC, TLBSYNC, TLBIE, and EIEIO, WIM = xx1, where x is not defined.
For ICBI, WIM is as provided by the translation mechanism.
4.9 Direct-Memory Access and Memory Coherency
When system devices perform direct-memory accesses, they may choose to assert or negate
GBL. 60x processors never snoop a request for which this bit is negated. It is therefore a
system design decision whether or not a device that accesses memory should work from
memory that is guaranteed to be coherent or not. The trade-off is that snooped accesses,
while convenient, generally reduce system performance.
Another option available to system designers is to define different burst length transfers,
using the reserved code points defined in the TSIZ[0–2] field. 60x processors snoop
regardless of the state of the TSIZ signals, provided GBL is asserted. Note that coherency
cannot be maintained if the system defines a transfer that crosses a cache block boundary.
4.10 Overview of Implementation Differences
Table 4-7 summarizes the basic differences in how the various PowerPC processors
implement the bus operations defined in this chapter. This is a brief overview of those
differences and do not describe the more subtle differences in the logic that is used to ensure
cache coherency which are described in Appendix E, “Coherency Action Tables.”