Chapter 6. Instruction Timing
6-21
Timing Considerations
6.3.4.1 Rename Register Operation
To avoid contention for a given register Tle location in the course of out-of-order execution,
the MPC7400 provides rename registers for holding instruction results before the
completion commits them to the architected register. There are six GPR rename registers,
six FPR rename registers, six VR rename registers, and one each for the CR, LR, and CTR.
When the dispatch unit dispatches an instruction to its execution unit, it allocates a rename
register (or registers) for the results of that instruction. If an instruction is dispatched to a
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 the rename registers to the architected registers by
the completion unit when an instruction is retired from the CQ without exceptions and after
any predicted branch conditions preceding it in the CQ have been resolved correctly. If a
branch prediction was incorrect, the instructions following the branch are ushed from the
CQ, and any results of those instructions are ushed from the rename registers.
6.3.4.2 Instruction Serialization
Although the MPC7400 can dispatch and complete two instructions per cycle, so-called
serializing instructions limit dispatch and completion to one instruction per cycle. There are
Tve types of instruction serialization:
¥
Execution serializationExecution serialized instructions are dispatched, held in
the functional unit and do not execute until all prior instructions have completed. A
functional unit holding an execution serialized instruction will not accept further
instructions from the dispatcher. For example, execution serialization is used for
instructions that modify non-renamed resources. Results from these instructions are
generally not available or are forwarded to subsequent instructions until the
instruction completes (using
mtspr
to write to LR or CTR provides forwarding to
branch instructions).
Store serialization (LSU only)Store serialized instructions are dispatched, held in
the LSUs Tnished store queue, and are not committed for memory until all prior
instructions have completed. While the store serialized instruction waits in the
Tnished store queue, other load/store instructions can be freely executed. Store
serialized instructions complete only from the bottom of the CQ. Thus, only one
store-serialized instruction can complete per cycle, although non-serialized
instructions can complete in the same cycle as a store serialized instruction. In
general, all stores and cache operation instructions are store serialized.
Sync serializationSync serialized instructions are dispatched and held in the LSU
and are not performed until all prior instructions complete. Any load/store
instructions dispatched behind the
sync
instruction remain in the reservation station
until the
sync
serialized instruction completes. Because
-serialized instructions
¥
¥
sync