
1-10
MPC603e & EC603e RISC Microprocessors User's Manual
MOTOROLA
603e fetches instructions from the predicted target stream until the conditional branch is
resolved.
The BPU contains an adder to compute branch target addresses and three user-control
registers—the link register (LR), the count register (CTR), and the CR. The BPU calculates
the return pointer for subroutine calls and saves it into the LR for certain types of branch
instructions. The LR also contains the branch target address for the Branch Conditional to
Link Register (
bclr
x
) instruction. The CTR contains the branch target address for the
Branch Conditional to Count Register (
bcctr
x
) instruction. The contents of the LR and
CTR can be copied to or from any GPR. Because the BPU uses dedicated registers rather
than GPRs or FPRs, execution of branch instructions is largely independent from execution
of integer and floating-point instructions.
1.1.4 Independent Execution Units
The PowerPC architecture’s support for independent execution units allows
implementation of processors with out-of-order instruction execution. For example,
because branch instructions do not depend on GPRs or FPRs, branches can often be
resolved early, eliminating stalls caused by taken branches.
In addition to the BPU, the 603e provides four other execution units and a completion unit,
which are described in the following sections.
1.1.4.1 Integer Unit (IU)
The IU executes all integer instructions. The IU executes one integer instruction at a time,
performing computations with its arithmetic logic unit (ALU), multiplier, divider, and XER
register. Most integer instructions are single-cycle instructions. Thirty-two general-purpose
registers are provided to support integer operations. Stalls due to contention for GPRs are
minimized by the automatic allocation of rename registers. The 603e writes the contents of
the rename registers to the appropriate GPR when integer instructions are retired by the
completion unit.
1.1.4.2 Floating-Point Unit (FPU)
The FPU (not supported by the EC603e microprocessor) contains a single-precision
multiply-add array and the floating-point status and control register (FPSCR). The
multiply-add array allows the 603e to efficiently implement multiply and multiply-add
operations. The FPU is pipelined so that single-precision instructions and double-precision
instructions can be issued back-to-back. Thirty-two floating-point registers are provided to
support floating-point operations. Stalls due to contention for FPRs are minimized by the
automatic allocation of rename registers. The 603e writes the contents of the rename
registers to the appropriate FPR when floating-point instructions are retired by the
completion unit.
The 603e supports all IEEE 754 floating-point data types (normalized, denormalized, NaN,
zero, and infinity) in hardware, eliminating the latency incurred by software exception