
1-4
PRELIMINARY
Integer Unit
Advanci ng the S tandar ds
1.2.1 Pipeline Stages
The Instruction Fetch (IF) stage, shared by
both the X and Y pipelines, fetches 16 bytes of
code from the cache unit in a single clock
cycle. Within this section, the code stream is
checked for any branch instructions that could
affect normal program sequencing.
If an unconditional or conditional branch is
detected, branch prediction logic within the IF
stage generates a predicted target address for
the instruction. The IF stage then begins
fetching instructions at the predicted address.
The superpipelined Instruction Decode
function contains the ID1 and ID2 stages.
ID1, shared by both pipelines, evaluates the
code stream provided by the IF stage and
determines the number of bytes in each
instruction. Up to two instructions per clock
are delivered to the ID2 stages, one in each
pipeline.
The ID2 stages decode instructions and send
the decoded instructions to either the X or Y
pipeline for execution. The particular pipeline
is chosen, based on which instructions are
already in each pipeline and how fast they are
expected to flow through the remaining pipe-
line stages.
The Address Calculation function contains
two stages, AC1 and AC2. If the instruction
refers to a memory operand, the AC1 calcu-
lates a linear memory address for the instruc-
tion.
The AC2 stage performs any required memory
management functions, cache accesses, and
register file accesses. If a floating point instruc-
tion is detected by AC2, the instruction is sent
to the FPU for processing.
The Execute (EX) stage executes instructions
using the operands provided by the address
calculation stage.
The Write-Back (WB) stage is the last IU
stage. The WB stage stores execution results
either to a register file within the IU or to a
write buffer in the cache control unit.
1.2.2 Out-of-Order
Processing
If an instruction executes faster than the
previous instruction in the other pipeline, the
instructions may complete out of order. All
instructions are processed in order, up to the
EX stage. While in the EX and WB stages,
instructions may be completed out of order.
If there is a data dependency between two
instructions, the necessary hardware interlocks
are enforced to ensure correct program
execution. Even though instructions may
complete out of order, exceptions and writes
resulting from the instructions are always
issued in program order.