Chapter 3. L1 and L2 Cache Operation
3-45
Cache Operations
3.6 Cache Operations
This section describes the MPC7400 cache operations.
3.6.1 Data Cache Block Fill Operations
The MPC7400s data cache blocks are Tlled (sometimes referred to as a cache reload) from
an eight-entry reload buffer. Thirty two bytes of data are Trst collected in one of the reload
data buffer entries before being reloaded into the data cache. This allows the data cache to
service multiple outstanding misses while at the same time staying available to subsequent
load and store hits. This behavior is described in Section 3.6.4, òLoad Miss Folding,ó and
Section 3.6.5, òStore Miss Merging.ó
A data cache block Tll is caused by a load miss or write-back store miss in the cache. The
cache block that corresponds to the missed address is updated by a burst transfer of the data
from the L2 cache or system memory after any necessary coherency actions have
completed.
3.6.2 Instruction Cache Block Fill Operations
The MPC7400s instruction cache blocks are loaded in four beats of 64 bits each, with the
critical double word loaded Trst. The instruction cache is not blocked to internal accesses
while the fetch (caused by a cache miss) completes. This functionality is sometimes
referred to as hits under misses, because the cache can service a hit while a cache miss Tll
is waiting to complete. On a cache miss, the critical and following double words read from
memory are simultaneously written to the instruction cache and forwarded to the
instruction queue, thus minimizing stalls due to cache Tll latency.
3.6.3 Allocation on Cache Misses
Instruction cache misses cause allocation into both the instruction cache and the L2 cache
(assuming an L2 cache miss). Data cache misses cause allocation into the data cache only.
They do not cause allocation into the L2 cache; the L2 cache is solely a victim cache for
the data cache. The L2 cache allocates new entries for data accesses only when blocks are
cast out of the data cache.
The castout (C), dirty (D), and modiTed (M) bits in the data cache tags are used to
determine how a data cache replacement target is treated. If the replacement target is valid,
then it is queued up as a castout if either the C or D bits are set. See Table 3-1 for the speciTc
conditions for which the C and D bits are set and cleared.
When a block is queued up as a data cache castout and the L2 cache is enabled, the L2 cache
allocates a new tag for the castout in the L2 cache if it misses and the C bit is set. If the C
bit is cleared and the block misses in the L2 cache, the L2 cache does not allocate a tag.
Instead, it passes the castout on to the system interface if the block is marked modiTed. If