
3-2
MPC603e & EC603e RISC Microprocessors User's Manual
MOTOROLA
are forwarded, and accesses to other instruction cache lines can proceed during the cache
line load operation. The instruction cache is not snooped, and cache coherency must be
maintained by software. A fast hardware invalidation capability is provided to support
cache maintenance.
The load/store unit provides the data transfer interface between the data cache and the
GPRs and the FPRs (not supported by the EC603e microprocessor). The load/store unit
provides all logic required to calculate effective addresses, handle data alignment to and
from the data cache, and provides sequencing for load and store string and multiple
operations. As shown in Figure 1-1, the caches provide a 64-bit interface to the instruction
fetcher and load/store unit. Write operations to the data cache can be performed on a byte,
half-word, word, or double-word basis.
The 603e’s bus interface unit receives requests for bus operations from the instruction and
data caches, and executes the operations according to the 603e bus protocol. The BIU
provides address queues, prioritization and bus control logic. The BIU also captures snoop
addresses for data cache, address queue, and memory reservation (
lwarx
and
stwcx
.
instruction) operations. The BIU also contains a touch load address buffer used for address
compares during load or store operations. All the data for the corresponding address queues
(load and store data queues) is located in the data cache. The data queues are considered
temporary storage for the cache and not part of the BIU.
On a cache miss, 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; the instruction cache allows sequential fetching during a cache block
load. 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. Note that the
cache being filled cannot be accessed internally until the fill completes.
When address translation is enabled, the memory access is performed under the control of
the page table entry used to translate the effective address. Each page table entry contains
four mode control bits, W, I, M, and G, that specify the storage mode for all accesses
translated using that particular page table entry. The W (write-through) and I (caching-
inhibited) bits control how the processor executing the access uses its own cache. The M
(memory coherence) bit specifies whether the processor executing the access must use the
MEI (modified, exclusive, or invalid) cache coherence protocol to ensure all copies of the
addressed memory location are kept consistent. The G (guarded memory) bit controls
whether out-of-order data and instruction fetching is permitted.
The 603e maintains data cache coherency in hardware by coordinating activity between the
data cache, the memory system, and the bus interface logic. As bus operations are
performed on the bus by other bus masters, the 603e bus snooping logic monitors the
addresses that are referenced. These addresses are compared with the addresses resident in
the data cache. If there is a snoop hit, the 603e’s bus snooping logic responds to the bus