
1-26
MPC603e & EC603e RISC Microprocessors User's Manual
MOTOROLA
PowerPC microprocessors control the following memory access modes on a page or block
basis:
Write-back/write-through mode
Caching-inhibited mode
Memory coherency
Note that in the 603e, a cache block is defined as eight words. The VEA defines cache
management instructions that provide a means by which the application programmer can
affect the cache contents.
1.3.3.2 Implementation-Specific Cache Implementation
The 603e has two 16-Kbyte, four-way set-associative (instruction and data) caches. The
caches are physically addressed, and the data cache can operate in either write-back or
write-through mode as specified by the PowerPC architecture.
The data cache is configured as 128 sets of four blocks each. Each block consists of 32
bytes, two state bits, and an address tag. The two state bits implement the three-state MEI
(modified/exclusive/invalid) protocol. Each block contains eight 32-bit words. Note that the
PowerPC architecture defines the term ‘block’ as the cacheable unit. For the 603e, the block
size is equivalent to a cache line. A block diagram of the data cache organization is shown
in Figure 1-3.
The instruction cache also consists of 128 sets of four blocks, and each block consists of 32
bytes, an address tag, and a valid bit. The instruction cache may not be written to except
through a block fill operation. In the PID7v-603e, the instruction cache is blocked only until
the critical load completes. The PID7v-603e supports instruction fetching from other
instruction cache lines following the forwarding of the critical first double word of a cache
line load operation. Successive instruction fetches from the cache line being loaded 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 organization of the instruction cache is very similar to the data
cache shown in Figure 1-3.
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.
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