Instruction Cache
9-8
MPC823 USER’S MANUAL
MOTOROLA
INSTRUCTION
CACHE
9
9.3.2 Instruction Cache Miss
When an instruction cache miss occurs, the address of the missed instruction is driven on
the internal bus with a 4-word burst transfer read request. A cache line is then selected to
receive the data that will be coming from the bus. The selection algorithm gives first priority
to invalid lines. If neither of the two lines in the selected set are invalid, then the least recently
used line is selected for replacement. Locked lines are never replaced. The transfer begins
with the word requested by the instruction unit, followed by the remaining words of the line,
then by the word at the beginning of the lines.
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 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.
If you receive a cache-inhibit signal, 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
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 MPC823 instruction cache does not initiate a miss sequence in most
cases when the instruction is inside a predicted path. The MPC823 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 MPC823 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
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_CSR.