![](http://datasheet.mmic.net.cn/290000/XPC801ZP25_datasheet_16187868/XPC801ZP25_96.png)
The PowerPC Core
MOTOROLA
MPC801 USER’S MANUAL
6-5
6
Figure 6-4. Sequencer Data Path
To execute branches in parallel with the execution of sequential instructions, the sequencer
maintains an instruction prefetch queue that is four instructions deep. In an ideal situation,
a sequential instruction would be issued every clock, even when branches are present in the
code. This is referred to as branch folding. The instruction prefetch queue also eliminates
stalls caused by long latency instruction fetches and all instructions are fetched into the
instruction prefetch queue, but only sequential instructions are issued to the execution units
when they reach the head of the queue. The reason branches enter the queue is for
watchpoint marking (refer to
Section 18 Development Support
branches do not prevent the issue of sequential instructions unless they come in pairs, the
performance impact of entering branches in the instruction prefetch queue is negligible.
for details). Since
In addition to branch folding, the core implements a branch reservation station and static
branch prediction so branches can issue as early as possible. The reservation station allows
a branch instruction to issue even before its condition is ready. With the branch issued and
out of the way, instruction prefetch can continue while the branch operand is being
computed and the condition evaluated. Static branch prediction determines the instruction
stream to be prefetched while the branch is being resolved. When the branch operand
becomes available, it is forwarded to the branch unit and the condition is evaluated.
INSTRUCTION ADDRESS GENERATOR
CC UNIT
32
INSTRUCTION BUFFER
32
INSTRUCTION
PREFETCH
QUEUE (4)
32
BRANCH
CONDITION
EVALUATION
EXECUTION UNITS AND REGISTERS FILES
INSTRUCTION MEMORY SYSTEM
READ / WRITE
BUSES