Introduction
ARM DDI 0301H
Copyright © 2004-2009 ARM Limited. All rights reserved.
1-11
ID012310
Non-Confidential, Unrestricted Access
ALU
The ALU stage performs all arithmetic and logic operations, and generates the
condition codes for instructions that set these flags.
The ALU stage consists of a logic unit, an arithmetic unit, and a flag generator.
The pipeline logic evaluates the flag settings in parallel with the main adder in the
ALU. The flag generator is enabled only on flag-setting operations.
The ALU stage separates the carry chains of the main adder for 8-bit and 16-bit
SIMD instructions.
Sat
The Sat stage implements the saturation logic required by the various classes of
DSP instructions.
MAC pipe
The MAC pipeline executes all of the enhanced multiply, and multiply-accumulate instructions.
The MAC unit consists of a 32x16 multiplier and an accumulate unit that is configured to
calculate the sum of two 16x16 multiplies. The accumulate unit has its own dedicated single
register read port for the accumulate operand.
To minimize power consumption, the processor only clocks each of the MAC and ALU stages
when required.
Return stack
The processor includes a three-entry return stack to accelerate returns from procedure calls. For
each procedure call, the processor pushes the return address onto a hardware stack. When the
processor recognizes a procedure return, the processor pops the address held in the return stack
that the prefetch unit uses as the predicted return address.
Note
See
Pipeline stages
on page 1-26 for details of the pipeline stages and instruction progression.
See Chapter 3
System Control Coprocessor
for system control coprocessor programming
information.
1.5.2
Load Store Unit (LSU)
The
Load Store Unit
(LSU) manages all load and store operations. The load-store pipeline
decouples loads and stores from the MAC and ALU pipelines.
When the processor issues LDM and STM instructions to the LSU pipeline, other instructions
run concurrently, subject to the requirements of supporting precise exceptions.
1.5.3
Prefetch unit
The prefetch unit fetches instructions from the instruction cache, Instruction TCM, or from
external memory and predicts the outcome of branches in the instruction stream.
See Chapter 5
Program Flow Prediction
for more details.
Branch prediction
The core uses both static and dynamic branch prediction. All branches are predicted where the
target address is an immediate address, or fixed-offset PC-relative address.