
7-8
G2 PowerPC Core Reference Manual
For More Information On This Product,
Go to: www.freescale.com
MOTOROLA
Timing Considerations
7.3
Timing Considerations
The G2 core is a superscalar processor; as many as three instructions can be dispatched to
the execution units (one branch instruction to the branch processing unit, and two
instructions dispatched from the dispatch queue to the other execution units) during each
clock cycle. Only one instruction can be dispatched to each execution unit.
Although instructions appear to the programmer to execute in program order, the G2 core
improves performance by executing multiple instructions at a time, using hardware to
manage dependencies. When an instruction is dispatched, the register file provides the
source data to the execution unit. The register files and rename register have sufficient
bandwidth to allow dispatch of two instructions per clock under most conditions.
The BPU decodes and executes branches immediately after they are fetched. When a
conditional branch cannot be resolved due to a CR data dependency, the branch direction
is predicted and execution continues from the predicted path. If the prediction is incorrect,
the following steps are taken:
1. The instruction queue is purged and fetching continues from the correct path.
2. Any instructions ahead of the predicted branch in the CQ are allowed to complete.
3. Instructions after the mispredicted branch are purged.
4. Dispatching resumes from the correct path.
After an execution unit executes an instruction, it places resulting data into the appropriate
GPR or FPR rename register. The results are then stored into the correct GPR or FPR during
the write-back stage. If a subsequent instruction needs the result as a source operand, it is
made available simultaneously to the appropriate execution unit, which allows a
data-dependent instruction to be decoded and dispatched without waiting to read the data
from the register file. Branch instructions that update either the LR or CTR write back their
results in a similar fashion.
The following section describes this process in greater detail.
7.3.1
General Instruction Flow
As many as two instructions can be fetched into the instruction queue (IQ) in a single clock
cycle. Instructions enter the IQ and are dispatched to the various execution units from the
dispatch queue. The IQ is a six-entry queue, which together with the CQ is the backbone of
the master pipeline for the microprocessor. The G2 core tries to keep the IQ full at all times.
The number of instructions requested in a clock cycle is determined by the number of
vacant spaces in the IQ during the previous clock cycle. This is shown in the examples in
this chapter. Although the IQ can accept as many as two new instructions in a single clock
cycle and even if there are more than two spaces available on the current clock cycle, if only
one IQ entry was vacant on the previous cycle, only one instruction is fetched. Typically,
F
Freescale Semiconductor, Inc.
n
.