3-2
MPC7400 RISC Microprocessor Users Manual
L1 Instruction and Data Caches
¥
The cache directories are physically addressed. The physical (real) address tag is
stored in the cache directory.
¥
Both the instruction and data caches have 32-byte cache blocks. A cache block is the
block of memory that a coherency state describes, also referred to as a cache line.
¥
Six status bits for each data cache block allow encoding for coherency and
victimization, as follows:
Castout (C)
Dirty (D)
ModiTed (M)
Recent (R)
Shared (S)
Valid (V)
A single coherency status bit for each instruction cache block allows encoding for
the following two possible states:
¥
Invalid (INV)
Valid (VAL)
The MPC7400 supports a Tve- (MERSI) modiTed/exclusive/recent/shared/invalid,
four- (MESI), or three-state (MEI) coherency protocol.
¥
¥
The L1 data cache supports load-miss folding.
¥
The L1 data cache supports store-miss merging.
¥
Each cache can be invalidated or locked by setting the appropriate bits in the
hardware implementation-dependent register 0 (HID0), a special-purpose register
(SPR) speciTc to the MPC7400.
¥
The caches implement a pseudo least-recently-used (PLRU) replacement algorithm
within each set. The caches also support AltiVec LRU instructions.
The MPC7400 supports a fully-coherent 4-Gbyte physical memory address space. Bus
snooping is used to ensure the coherency of global memory with respect to the data 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.