
Chapter 3. L1 and L2 Cache Operation
3-5
Data Cache Organization
3.2 Data Cache Organization
The data cache is organized as 128 sets of eight blocks as shown in Figure 3-2.
Figure 3-2. Data Cache Organization
Each block consists of 32 bytes of data, six status bits, and an address tag. Note that in the
PowerPC architecture, the term cache block, or simply block, when used in the context
of cache implementations, refers to the unit of memory at which coherency is maintained.
For the MPC7400, this is the 32-byte cache line. This value may be different for other
PowerPC implementations.
Each cache block contains eight contiguous words from memory that are loaded from an
eight-word boundary (that is, bits A[27:31] of the logical (effective) addresses are zero); as
a result, cache blocks are aligned with page boundaries. Address bits A[20:26] provide the
index to select a cache set. The tags consist of physical address bits PA[0:19]. Address
translation occurs in parallel with set selection (from A[20:26]). The data cache tags are
dual-ported and non-blocking, for efTcient load/store and snooping operations. Logical
address bits A[27:31] locate a byte within the selected block.
There are six status bits associated with each cache block. These bits are used to implement
the modiTed/exclusive/recent/shared/invalid (MERSI), MESI, and MEI cache coherency
protocols and to support the AltiVec transient instructions. The coherency protocols are
described in Section 3.4, òMemory and Cache Coherency.ó
128 Sets
Block 5
Block 6
Block 7
Block 4
Address Tag 4
Address Tag 5
Address Tag 6
Address Tag 7
Block 1
Block 2
Block 3
Block 0
Address Tag 0
Address Tag 1
Address Tag 2
Address Tag 3
Status
Status
Status
Words [0D7]
Status
Words [0D7]
Words [0D7]
Words [0D7]
Status
Status
Status
Words [0D7]
Status
Words [0D7]
Words [0D7]
Words [0D7]
8 Words/Block