
4-2
G2 PowerPC Core Reference Manual
For More Information On This Product,
Go to: www.freescale.com
MOTOROLA
Overview
tags are single-ported, a simultaneous load or store and snoop access represent a resource
contention. The snoop access is given first access to the tags. Load or store operations can
be performed to the cache on the clock cycle immediately following a snoop access if the
snoop misses. Snoop hits may block the data cache for two or more cycles, depending on
whether a copy back to main memory is required.
The instruction cache also consists of 128 sets of 4 blocks, and each block consists of
32 bytes, an address tag, and a valid bit. The instruction cache is only written as a result of
a block fill operation on a cache miss. In the G2 core, the instruction cache is blocked only
until the critical load completes. The G2 core 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 load/store unit provides the data transfer interface between the data cache and the
GPRs and FPRs. The LSU 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 LSU. Write operations to the data cache can be
performed on a byte, half-word, word, or double-word basis.
The G2 core bus interface unit receives requests for bus operations from the instruction and
data caches, and executes the operations according to the G2 core 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 G2 core cache blocks are loaded in four beats of 64 bits each when the
G2 core is configured with a 64-bit data bus; when the G2 core 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 G2 core, 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 and BAT
contains four mode control bits, W, I, M, and G, that specify the storage mode for all
F
Freescale Semiconductor, Inc.
n
.