![](http://datasheet.mmic.net.cn/290000/XPC801ZP25_datasheet_16187868/XPC801ZP25_158.png)
Instruction Cache
MOTOROLA
MPC801 USER’S MANUAL
9-7
9
When the missed instruction is received from the bus, it is immediately delivered to the
instruction unit and also written to the burst buffer. As subsequent instructions are received
from the bus, they are written into the burst buffer and delivered to the instruction unit
(stream hit) either directly from the bus or from the burst buffer. When the line resides in the
burst buffer, it is written to the cache array as long as it is not busy with an instruction unit
request. If a bus error is encountered on the access to the requested instruction, then a
machine check interrupt is taken. If a bus error occurs on any access to other words in the
line, then the burst buffer is marked invalid and the line is not written to the array. However,
if no bus error is encountered, the burst buffer is marked valid and eventually written to the
array.
The page is marked noncacheable in the memory management unit. The line is only written
to the burst buffer and not to the cache. Instructions that are stored in the burst buffer and
originate in a cache-inhibited memory region, are only used once before they are refetched.
Refer to
Section 9.4.7 Instruction Cache Read
for more information.
9.3.3 Instruction Fetch On A Predicted Path
The core allows branch prediction so branches can issue as early as possible. This
mechanism allows instruction prefetch to continue while an unresolved branch is being
computed and the condition is being evaluated. Instructions fetched after unresolved
branches are considered fetched on a predicted path. These instructions may be discarded
later if it turns out that the machine has followed the wrong path. To minimize power
consumption, the MPC801 instruction cache does not initiate a miss sequence when the
instruction is inside a predicted path. The MPC801 instruction cache evaluates fetch
requests to see if they are inside a predicted path and if a hit is detected, the requested data
is delivered to the core. However, if a cache miss is detected, the miss sequence is usually
not initiated until the core finishes branch evaluation.
9.4 INSTRUCTION CACHE COMMANDS
The MPC801 instruction cache supports the PowerPC invalidate instruction with some
additional commands that help control the cache and debug the information stored in it. The
additional commands are implemented using the three special-purpose control registers
mentioned previously in
Section 9.2 Programming the Instruction Cache
commands are executed immediately after the control register is written and unable to
generate any errors. Therefore, when executing these commands there is no need to check
the error status in the IC_CST register.
. Most of the
Some commands may take some time to generate errors. In the current implementation,
load & lock is the only command this applies to. Therefore, when executing these
commands, you must insert an
isync
instruction immediately after the instruction cache
command and check the error status in the IC_CST register after the
bits in the IC_CST register are sticky, thus allowing you to perform a series of instruction
cache commands before checking the termination status. These bits are set by the
hardware and cleared by the software.
isync
. The error type