Chapter 2. Programming Model
2-65
Instruction Set Summary
Table 2-49 describes the memory synchronization instructions deTned by the VEA.
Table 2-49. Memory Synchronization InstructionsVEA
2.3.5.3 Memory Control InstructionsVEA
Memory control instructions can be classiTed as follows:
¥
¥
¥
Cache management instructions (user-level and supervisor-level)
Segment register manipulation instructions (OEA)
Translation lookaside buffer management instructions (OEA)
This section describes the user-level cache management instructions deTned by the VEA.
See Section 2.3.6.3, òMemory Control InstructionsOEA,ó for information about
supervisor-level cache, segment register manipulation, and translation lookaside buffer
management instructions.
2.3.5.3.1 User-Level Cache InstructionsVEA
The instructions summarized in this section help user-level programs manage on-chip
caches if they are implemented. See Chapter 3, òL1 and L2 Cache Operation,ó for more
information about cache topics. The following sections describe how these operations are
treated with respect to the MPC7400s caches.
As with other memory-related instructions, the effects of cache management instructions
on memory are weakly-ordered. If the programmer must ensure that cache or other
instructions have been performed with respect to all other processors and system
mechanisms, a
sync
instruction must be placed after those instructions.
Note that the MPC7400 interprets cache control instructions (
icbi
,
dcbi
,
dcbf
,
dcbz
, and
dcbst
) as if they pertain only to the local L1 and L2 caches. A
dcbz
(with M set) is always
broadcast on the bus interface.
Name
Mnemonic Syntax
Implementation Notes
Enforce
In-Order
Execution of
I/O
eieio
The
eieio
instruction is dispatched to the LSU and executes after all previous
cache-inhibited or write-through accesses are performed; all subsequent
instructions that generate such accesses execute after
eieio
. The
eieio
operation bypasses the L2 cache and is forwarded to the bus unit. An EIEIO
operation is broadcast on the external bus to enforce ordering in the external
memory system. Because the MPC7400 does reorder noncacheable accesses,
eieio
is needed to force ordering. However, if store gathering is enabled and an
eieio
is detected in a store queue, stores are not gathered. Broadcasting
eieio
prevents external devices, such as a bus bridge chip, from gathering stores.
Instruction
Synchronize
isync
The
isync
instruction is refetch serializing; that is, it causes the MPC7400 to
purge its instruction queue and wait for all prior instructions to complete before
refetching the next instruction, which is not executed until all previous
instructions complete to the point where they cannot cause an exception. The
isync
instruction does not wait for all pending stores in the store queue to
complete. Any instruction after an
isync
sees all effects of prior instructions
occurring before the
isync
.