
MOTOROLA
Chapter 3. Instruction and Data Cache Operation
3-5
3.2 Data Cache Organization and Control
The data cache supplies data to the GPRs and FPRs (not supported on the EC603e
microprocessor) by means of the load/store unit, and provides buffers for load and store bus
operations. The data cache also provides storage for the cache tags required for memory
coherency and performs the cache block replacement LRU function.
3.2.1 Data Cache Organization
The organization of the data cache is shown in Figure 3-2. Each cache block contains eight
contiguous words from memory that are loaded from an 8-word boundary (that is, bits
A27–A31 of the effective addresses are zero); thus, a cache block never crosses a page
boundary. Misaligned accesses across a page boundary can incur a performance penalty.
Note that address bits A20–A26 provide an index to select a set. Bits A27–A31 select a byte
within a block. The tags consists of bits PA0–PA19. Address translation occurs in parallel,
such that higher-order bits (the tag bits in the cache) are physical. Note that the replacement
algorithm is strictly an LRU algorithm; that is, the least recently used block is filled with
new data on a cache miss.
Figure 3-2. Data Cache Organization
3.2.2 Data Cache Fill Operations
The 603e’s cache blocks are loaded in four beats of 64 bits each when the 603e is
configured with a 64-bit data bus; when the 603e is configured with a 32-bit bus, cache
block loads are performed with eight beats of 32 bits each. The burst load is performed as
critical double word first. The data cache is blocked to internal accesses until the load
completes. In the PID7v-603e, the critical double word is simultaneously written to the
cache and forwarded to the requesting unit, thus minimizing stalls due to load delays.
Address Tag
1
Address Tag
2
Address Tag 3
Block 1
Block 2
Block 3
128 Sets
Address Tag 0
Block 0
8 Words/Block
State
State
State
Words 0–7
Words 0–7
Words 0–7
Words 0–7
State