
MOTOROLA
Chapter 1. Overview
1-9
1.1.3 Instruction Unit
As shown in Figure 1-1, the 603e instruction unit, which contains a fetch unit, instruction
queue, dispatch unit, and BPU, provides centralized control of instruction flow to the
execution units. The instruction unit determines the address of the next instruction to be
fetched based on information from the sequential fetcher and from the BPU.
The instruction unit fetches the instructions from the instruction cache into the instruction
queue. The BPU extracts branch instructions from the fetcher and uses static branch
prediction on unresolved conditional branches to allow the instruction unit to fetch
instructions from a predicted target instruction stream while a conditional branch is
evaluated. The BPU folds out branch instructions for unconditional branches or conditional
branches unaffected by instructions in progress in the execution pipeline.
Instructions issued beyond a predicted branch do not complete execution until the branch
is resolved, preserving the programming model of sequential execution. If any of these
instructions are to be executed in the BPU, they are decoded but not issued. Instructions to
be executed by the FPU, IU, LSU, and SRU are issued and allowed to complete up to the
register write-back stage. (Note that the FPU is not supported on the EC603e
microprocessor.) Write-back is allowed when a correctly predicted branch is resolved, and
instruction execution continues without interruption along the predicted path.
If branch prediction is incorrect, the instruction unit flushes all predicted path instructions,
and instructions are issued from the correct path.
1.1.3.1 Instruction Queue and Dispatch Unit
The instruction queue (IQ), shown in Figure 1-1, holds as many as six instructions and
loads up to two instructions from the instruction unit during a single cycle. The instruction
fetch unit continuously loads as many instructions as space in the IQ allows. Instructions
are dispatched to their respective execution units from the dispatch unit at a maximum rate
of two instructions per cycle. Dispatching is facilitated to the IU, FPU (not supported on
the EC603e microprocessor), LSU, and SRU by the provision of a reservation station at
each unit. The dispatch unit performs source and destination register dependency checking,
determines dispatch serializations, and inhibits subsequent instruction dispatching as
required.
For a more detailed overview of instruction dispatch, see Section 1.3.6, “Instruction
Timing.”
1.1.3.2 Branch Processing Unit (BPU)
The BPU receives branch instructions from the fetch unit and performs CR lookahead
operations on conditional branches to resolve them early, achieving the effect of a
zero-cycle branch in many cases.
The BPU uses a bit in the instruction encoding to predict the direction of the conditional
branch. Therefore, when an unresolved conditional branch instruction is encountered, the