
MOTOROLA
Chapter 1. Overview
1-9
Overview
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
core 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 conditional register
(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.
The four other execution units and the completion unit 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. The 32 GPRs hold integer
operands. Stalls due to contention for GPRs are minimized by the automatic allocation of
rename registers. The G2 core 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 contains a single-precision multiply-add array and the floating-point status and
control register (FPSCR). The multiply-add array allows the G2 core to efficiently
implement multiply and multiply-add operations. The FPU is pipelined so that single- and
F
Freescale Semiconductor, Inc.
For More Information On This Product,
Go to: www.freescale.com
n
.