
4-8
G2 PowerPC Core Reference Manual
For More Information On This Product,
Go to: www.freescale.com
MOTOROLA
Basic Data Cache Operations
allows the coherency management of an external copy-back L2 cache. Note that these
cache control instruction broadcasts are not snooped by the G2 core.
4.3.4
Data Cache Touch Load Support
Touch load operations allow an instruction stream to prefetch data from memory prior to a
cache miss. The G2 core supports touch load operations through a temporary cache block
buffer located between the BIU and the data cache. The cache block buffer is essentially a
floating cache block that is loaded by the BIU on a touch load operation, and is then read
by a load instruction that requests that data. After a touch load completes on the bus, the
BIU continues to compare the touch load address with subsequent load requests from the
data cache. If the load address matches the touch load address in the BIU, the data is
forwarded to the data cache from the touch load buffer, the read from memory is canceled,
and the touch load address buffer is invalidated.
To avoid the storage of stale data in the touch load buffer, touch load requests that are
mapped as write-through or caching-inhibited by the MMU are treated as no-ops by the
BIU. Also, subsequent load instructions after a touch load that are mapped as write-through
or caching-inhibited do not hit in the touch load buffer, and cause the touch load buffer to
be invalidated on a matching address.
While the G2 core provides only a single cache block buffer, other microprocessor
implementations may provide buffering for more than one cache block. Programs written
for other implementations may issue several
dcbt
or
dcbtst
instructions sequentially,
reducing the performance if executed on the G2 core. To improve performance in these
situations, HID0[NOOPTI] (bit 31) can be set. This causes the
dcbt
and
dcbtst
instructions
to be treated as no-ops, cause no bus activity, and incur only one processor clock cycle of
execution latency. NOOPTI is cleared at a power-on reset, enabling the use of the
dcbt
and
dcbtst
instructions.
4.4
Basic Data Cache Operations
This section describes the three types of operations that can occur to the data cache, and
how these operations are implemented in the G2 core.
4.4.1
Data Cache Fill
A cache block is filled after a read miss or write miss (read-with-intent-to-modify) occurs
in the cache. The cache block that corresponds to the missed address is updated by a burst
transfer of the data from system memory. Note that if a read miss occurs in a system with
multiple bus masters, and the data is modified in another cache, the modified data is first
written to external memory before the cache fill occurs.
F
Freescale Semiconductor, Inc.
n
.