Central Processing Unit
MPC561/MPC563 Reference Manual, Rev. 1.2
Freescale Semiconductor
3-5
The following sections describe these execution units in greater detail.
3.4.1
Branch Processing Unit (BPU)
The BPU, located within the instruction sequencer, performs condition register look-ahead operations on
conditional branches. The BPU looks through the instruction queue for a conditional branch instruction
and attempts to resolve it 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 it encounters an unresolved conditional branch instruction, the processor pre-fetches instructions
from the predicted target stream until the conditional branch is resolved.
The BPU uses a calculation feature to compute branch target addresses with three special-purpose,
user-accessible registers: the link register (LR), the count register (CTR), and the condition register (CR).
The BPU calculates the return pointer for a subroutine, then calls and saves it into the LR. The LR also
contains the branch target address for the branch conditional to link register (bclrx) instruction. The CTR
contains the branch target address for the branch conditional to count register (bcctrx) instruction. The
contents of the LR and CTR can be copied to or from any GPR. Because the BPU uses dedicated registers
rather than general-purpose or floating-point registers, execution of branch instructions is independent
from execution of integer instructions. The CR bits indicate conditions that may result from the execution
of relevant instructions.
3.4.2
Integer Unit (IU)
The IU executes all integer processor instructions (except the integer storage access instructions)
implemented by the load/store unit. The IU contains the following subunits:
•
The IMUL–IDIV unit, which implements the integer multiply and divide instructions
•
The Arithmetic Logic Unit (ALU)–BFU unit, which implements all integer logic, add, subtract,
and bit-field instructions
The IU also includes the integer exception register (XER) and the general-purpose register file.
IMUL–IDIV and ALU–BFU are implemented as separate execution units. The ALU–BFU unit can
execute one instruction per clock cycle. IMUL–IDIV instructions require multiple clock cycles to execute.
IMUL–IDIV is pipelined for multiply instructions, so that consecutive multiply instructions can be issued
Integer unit (IU)
Includes implementation of all integer instructions except load/store instructions.
This module includes the GPRs (including GPR history and scoreboard) and the
following subunits: the IMUL-IDIV, which includes the implementation of the
integer multiply and divide instructions and the ALU-BFU, which includes
implementation of all integer logic, add and subtract instructions, and bit field
instructions.
Floating-point unit (FPU)
Includes the FPRs (including FPR history and scoreboard) and the
implementation of all floating-point instructions except load/store floating-point
instructions.
Table 3-1. RCPU Execution Units (continued)
Unit
Description
Summary of Contents for MPC561
Page 84: ...MPC561 MPC563 Reference Manual Rev 1 2 lxxxiv Freescale Semiconductor...
Page 144: ...Signal Descriptions MPC561 MPC563 Reference Manual Rev 1 2 2 46 Freescale Semiconductor...
Page 206: ...Central Processing Unit MPC561 MPC563 Reference Manual Rev 1 2 3 62 Freescale Semiconductor...
Page 302: ...Reset MPC561 MPC563 Reference Manual Rev 1 2 7 14 Freescale Semiconductor...
Page 854: ...Time Processor Unit 3 MPC561 MPC563 Reference Manual Rev 1 2 19 24 Freescale Semiconductor...
Page 968: ...Development Support MPC561 MPC563 Reference Manual Rev 1 2 23 54 Freescale Semiconductor...
Page 1144: ...Internal Memory Map MPC561 MPC563 Reference Manual Rev 1 2 B 34 Freescale Semiconductor...
Page 1212: ...TPU3 ROM Functions MPC561 MPC563 Reference Manual Rev 1 2 D 60 Freescale Semiconductor...
Page 1216: ...Memory Access Timing MPC561 MPC563 Reference Manual Rev 1 2 E 4 Freescale Semiconductor...