2-66
MPC7400 RISC Microprocessor Users Manual
Instruction Set Summary
The MPC7400 always broadcasts an
icbi
. All cache control instructions to direct-store
space are no-ops. For information how cache control instructions affect the L2 cache, see
Section 3.7.5, òL2 Cache Operation.ó
Table 2-50 summarizes the cache instructions deTned by the VEA. Note that these
instructions are accessible to user-level programs.
Table 2-50. User-Level Cache Instructions
Name
Mnemonic
Syntax
Implementation Notes
Data Cache Block
Touch
1
dcbt
r
A
,r
B
The VEA deTnes this instruction to allow for potential system
performance enhancements through the use of software-initiated
prefetch hints. Implementations are not required to take any action
based on execution of this instruction, but they can prefetch the cache
block corresponding to the EA into their cache. When
dcbt
executes, the
MPC7400 checks for protection violations (as for a load instruction). This
instruction is treated as a no-op for the following cases:
¥ The access causes a protection violation.
¥ The page is mapped cache-inhibited, or direct-store (T = 1).
¥ The cache is locked or disabled
¥ HID0[NOOPTI] = 1
Otherwise, if no data is in the cache location, the MPC7400 requests a
cache line Tll (with intent to modify). Data brought into the cache is
validated as if it were a load instruction. The memory reference of a
dcbt
sets the reference bit.
Data Cache Block
Touch for Store
dcbtst
r
A
,r
B
This instruction
dcbtst
can by setting HID0[31].
The
dcbts
t instruction behaves similarly to a
dcbt
instruction, except
that the lineTll request on the bus is signaled as òintent-to-modifyó or
òread-claimó, and the data is marked as exclusive in the L1 data cache.
More speciTcally, the following action cases occur depending on where
the line currently exists or does not exist in the MPC7400.
¥
dcbtst
hits in the L1 data cache. In this case, the
dcbtst
will do
nothing and the state of the line in the cache is not changed. Thus, if
the line was in the shared or recent states, a subsequent store will
hit on this shared line and incur the associated latency penalties.
¥
dcbtst
misses in the L1 data cache and hits in the L2 cache. In this
case, the
dcbtst
will reload the L1 data cache with the state found in
the L2 cache. Again, if the line was in the shared or recent states in
the L2, a subsequent store will hit on this shared line and incur the
associated latency penalties.
¥
dcbtst
misses in L1 data cache and L2 cache. In this case,
MPC7400 will request the line from memory with òintent-to-modifyó
or òread-claimó and reload the L1 data cache in the exclusive state.
As subsequent store will hit on exclusive and can perform the store
to the L1 data cache immediately.
In addition, a
dcbtst
instruction will be no-oped if the target address of
the
dcbtst
is mapped as write-through.