3-40
MPC7400 RISC Microprocessor Users Manual
Cache Control
3.5.3 Cache Control Instructions
The PowerPC architecture deTnes instructions for controlling both the instruction and data
caches (when they exist). The cache control instructions:
dcbt
,
dcbtst
,
dcbz
,
dcbst
,
dcbf
,
dcba
,
dcbi
, and
icbi
are intended for the management of the local L1 and L2 caches. The
MPC7400 interprets the cache control instructions as if they pertain only to its own L1 or
L2 caches. These instructions are not intended for managing other caches in the system
(except to the extent necessary to maintain coherency).
The MPC7400 snoops all global (GBL asserted) cache control instruction broadcasts. The
dcbst
,
dcbf
, and
dcbi
instructions cause a broadcast on the system bus (when M = 1) to
maintain coherency. The
icbi
instruction is always broadcast, regardless of the state of the
memory-coherency-required attribute. The MPC7400 treats any cache control instruction
directed to a direct-store segment [T = 1] as a no-op.
3.5.3.1 Data Cache Block Touch (dcbt)
The Data Cache Block Touch (
dcbt
) instruction provides potential system performance
improvement through the use of a software-initiated prefetch hint. Note that PowerPC
implementations are not required to take any action based on the execution of these
instructions, but they may choose to prefetch the cache block corresponding to the effective
address into their cache.
If the effective address of a
dcbt
instruction is directed to a direct-store segment [T = 1], or
if HID0[NOPTI] = 1, the MPC7400 treats the instruction as a no-op without translation.
This means that a tablewalk is not initiated and the reference (R) bit is not set.
If the effective address of a
dcbt
instruction is not directed to a direct-store segment [T = 0]
and HID0[NOPTI] = 0, the effective address is computed, translated, and checked for
protection violations as deTned in the PowerPC architecture. The
dcbt
instruction is treated
as a load to the addressed byte with respect to address translation and protection.
The MPC7400 treats the
dcbt
instruction as a no-op if any of the following occur:
¥
A valid address translation is not found in the BAT, TLB, or through a tablewalk
¥
Load accesses are not permitted to the addressed page (protection violation)
¥
The BAT or PTE is marked caching-inhibited (I = 1)
¥
The cache is locked or disabled
Under these conditions, tablewalks are performed and the reference bit is set, even though
the instruction is treated as a no-op.
If none of the conditions for a no-op are met, the MPC7400 checks if the addressed cache
block is in the L1 data cache. If the cache block is not in the L1 data cache, the MPC7400
checks if the addressed cache block is in the L2 cache. If the cache block is not in the L2
cache, the MPC7400 initiates a burst read (with no intent to modify) on the system bus.