User’s Manual
IBM PowerPC 750GX and 750GL RISC Microprocessor
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 completion queue, provided no exceptions precede it and any predicted branch conditions have been resolved correctly. If a branch prediction was incorrect, the instructions fetched along the predicted path are flushed from the completion queue, and any results of those instructions are flushed from the Rename Registers.
6.3.2.7 Instruction Serialization
Although the 750GX can dispatch and complete two instructions per cycle,
Execution | |
| not execute until all prior instructions have completed. A functional unit holding an |
| |
| dispatcher. For example, execution serialization is used for instructions that |
| modify nonrenamed resources. Results from these instructions are generally not |
| available or forwarded to subsequent instructions until the instruction completes |
| (using a |
| CTR does provide forwarding to branch instructions). |
Completion (also referred to as
Refetch (flush)
6.4 Execution-Unit Timings
The following sections describe instruction timing considerations within each of the respective execution units in the 750GX.
6.4.1 Branch Processing Unit Execution Timing
gx_06.fm.(1.2) | Instruction Timing |
March 27, 2006 | Page 225 of 377 |