
MOTOROLA
Chapter 3. Instruction and Data Cache Operation
3-23
The other instructions do not broadcast either for the purpose of invalidating or flushing
other caches in the system or for managing system resources. Any bus activity caused by
these instructions is the direct result of performing the operation in the 603e cache. Note
that a data access exception is generated if the effective address of a
dcbi
,
dcbst
,
dcbf
, or
dcbz
instruction cannot be translated due to the lack of a TLB entry. (Note that exceptions
are referred to as interrupts in the architecture specification.)
Note that in the PowerPC architecture, the term ‘cache block’, or simply ‘block’ when used
in the context of cache implementations, refers to the unit of memory at which coherency
is maintained. For the 603e this is the eight-word cache line. This value may be different
for other PowerPC implementations. In-depth descriptions of coding these instructions is
provided in Chapter 3, “Addressing Modes and Instruction Set Summary,” and Chapter 10,
“Instruction Set,” in
The Programming Environments Manual
.
3.7.1 Data Cache Block Invalidate (dcbi) Instruction
If the block containing the byte addressed by the EA is in the data cache, the cache block
is invalidated regardless whether the block is in the exclusive or modified state. If
HID0[ABE] is set on a PID7v-603e when a
dcbi
instruction is executed, the PID7v-603e
will perform an address-only bus transaction. The
dcbi
instruction can only be executed
when the 603e is in the supervisor state.
3.7.2 Data Cache Block Touch (dcbt) Instruction
This instruction provides a method for improving performance through the use of software-
initiated prefetch hints. The 603e performs the fetch for the cases when the address hits in
the TLB or the BAT registers, and when it is a permitted load access from the addressed
page. The operation is treated similarly to a byte load operation with respect to coherency.
If the address translation does not hit in the TLB or BAT mechanism, or if it does not have
load access permission, the instruction is treated as a no-op.
If the cache is locked or disabled, or if the access is to a page that is marked as guarded, the
dcbt
instruction is treated as a no-op.
treated as a no-op.
The
dcbt
instruction never affects the referenced or changed bits in the hashed page table.
A successful
dcbt
instruction affects the state of the TLB and cache LRU bits as defined
by the LRU algorithm.
The touch load buffer will be marked invalid if the contents of the touch buffer have been
moved to the cache, if any data cache management instruction has been executed, if a
dcbz
instruction is executed that matches the address of the cache block in the touch buffer, or if
another
dcbt
instruction is executed.