9-4
MPC7400 RISC Microprocessor Users Manual
MPC7400 System Interface Overview
9.1.3 Summary of L1 Instruction and Data Cache Operation
The MPC7400 provides independent L1 instruction and data caches. Each cache is a
physically-addressed, 32-Kbyte cache with 8-way set associativity. Both caches consist of
128 sets of 8 cache lines, with 8 words in each cache line.
The MPC7400 data cache tags are dual-ported and non-blocking allowing efTcient
load/store and snoop operations.
When conTgured for MPX bus mode and with data intervention enabled, the MPC7400
supports a Tve-state cache coherency protocol that includes ModiTed (M), Exclusive (E),
Reserved (R), Shared (S), and Invalid (I) cache states. The MERSI protocol together with
the MPX bus allows for data intervention between caches. Alternately, when conTgured for
either MPX bus or 60x bus modes, the MPC7400 can be conTgured to support a four-state
MESI protocol (similar to the MPC604-family microprocessors) or a three-state MEI
protocol (similar to the MPC603- and the MPC750-family microprocessors). MESI or MEI
coherency protocol is selected by the MSSCR0[SHDEN] parameter.
The cache control instructions,
dcbt
,
dcbtst
,
dcbz
,
dcbst
,
dcbf
,
dcba
,
dcbi
, and
icbi
, are
intended for the management of the local L1 and L2 caches. The MPC7400 interprets the
cache control instructions as if they pertain only to its own L1 or L2 caches. These
instructions are not intended for managing other caches in the system (except to the extent
necessary to maintain coherency). The MPC7400 snoops all global (GBL asserted) cache
control instruction broadcasts. The
dcbst
,
dcbf
, and
dcbi
instructions cause a broadcast on
the system bus (when M = 1) to maintain coherency. The
icbi
instruction is always
broadcast, regardless of the state of the memory-coherency-required attribute.
Because the data cache on the MPC7400 is an on-chip, write-back primary cache, the
predominant type of transaction for most applications is burst-read memory operations,
followed by burst-write memory operations and single-beat (caching-inhibited or
write-through) memory read and write operations. Additionally, there can be address-only
operations, variants of the burst and single-beat operations (for example, global memory
operations that are snooped, and atomic memory operations), and address retry activity (for
example, when a snooped read access hits a modiTed line in the cache).
On a cache miss, cache blocks are Tlled in four beats of 64 bits each. The burst Tll is
performed as a critical-double-word-Trst operation. For the instruction cache, the critical
double word is simultaneously written to the cache and forwarded to the instruction queue,
thus minimizing stalls due to cache Tll latency. The instruction cache is not blocked to
internal accesses while a load completes, providing for òhits under misses.ó For the data
cache, an entire cache block is collected in a reload buffer before being loaded into the
cache. This allows the data cache to service multiple outstanding misses while at the same
time staying available to subsequent load and store hits.