
MOTOROLA
Chapter 7. Instruction Timing
7-15
Timing Considerations
The G2 core can execute instructions out-of-order, but in-order completion by the
completion unit ensures a precise exception mechanism. Program-related exceptions are
signaled when the instruction causing the exception reaches the last position in the
completion queue. Prior instructions are allowed to complete before the exception is taken.
7.3.3.1
Rename Register Operation
To avoid contention for a given register file location, the G2 core provides rename registers
for holding instruction results before the completion commits them to the architected
register. There are five GPR rename registers, four FPR rename registers, and one each for
the CR, LR, and CTR.
When an instruction dispatches to its execution unit, any required rename registers are
allocated for the results of that instruction. If an instruction is dispatched to the reservation
station associated with an execution unit due to a data dependency, the dispatcher also
provides a tag to the execution unit identifying the rename register that forwards the
required data at completion. When the source data reaches the rename register, execution
can begin.
Instruction results are transferred from rename registers to architected registers when an
instruction is retired from the CQ after any associated exceptions are handled and any
predicted branch conditions preceding it in the CQ are resolved. If a branch prediction is
incorrect, the instructions following the branch are flushed from the CQ and any results of
those instructions are flushed from the rename registers.
7.3.3.2
Instruction Serialization
Although the G2 core can dispatch and complete two instructions per cycle, serializing
instructions can be used to limit dispatch and completion to one instruction per cycle.
Serialization falls into three categories—completion, dispatch, and refetch serialization,
which are described as follows:
Completion serialized instructions are held in the execution unit until all prior
instructions in the completion unit have been retired. Completion serialization is
used for instructions that access or modify a resource for which no rename register
exists. Results from these instructions are not available or forwarded for subsequent
instructions until the serializing instruction is retired. Instructions that are
completion serialized are as follows:
— Instructions (with the exception of integer add and compare instructions)
executed by the system register unit (SRU)
— Floating-point instructions that access or modify the FPSCR or CR (
mtfsb1
,
mcrfs
,
mtfsfi
,
mffs
, and
mtfsf
).
— Instructions that manage caches and TLBs
F
Freescale Semiconductor, Inc.
For More Information On This Product,
Go to: www.freescale.com
n
.