
MOTOROLA
Chapter 3. Instruction and Data Cache Operation
3-7
a cache access misses into a locked cache. The setting of the DLOCK bit in HID0 must be
preceded by a
sync
instruction to prevent the data cache from being locked during a data
access.
3.2.3.4 Data Cache Operations and Address Broadcasts
The execution of a
dcbz
instruction results in an address-only broadcast on the bus.
Additionally, if the HID0[ABE] bit is set on a PID7v-603e processor, the execution of the
dcbf
,
dcbi
, and
dcbst
instructions will also cause an address-only broadcast. The ability of
the PID7v-603e to optionally perform address-only broadcasts when executing the
dcbi
,
dcbf
, and the
dcbst
instructions allows the coherency management of an external copyback
L2 cache. Note that these cache control instruction broadcasts are not snooped by the
PID7v-603e.
3.2.4 Data Cache Touch Load Support
Touch load operations allow an instruction stream to prefetch data from memory prior to a
cache miss. The 603e 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 603e provides only a single cache block buffer, other PowerPC 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 603e. To improve performance in these
situations, the NOOPTI bit (bit 31) in the HID0 register may 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. The default state of the NOOPTI bit is cleared
after a power-on reset operation, enabling the use of the
dcbt
and
dcbtst
instructions.