6-22
MPC7400 RISC Microprocessor Users Manual
Execution Unit Timings
complete only from the bottom of the CQ. Thus, only one
can complete in a given cycle. Non-serialized instructions can complete in the same
cycle as a sync-serialized instruction.
Completion serialization (post-dispatch or tail serialization)Completion
serialized instructions inhibit dispatching of subsequent instructions until the
serialized instruction completes. Completion serialization is used for instructions
that bypass the normal rename mechanism.
Refetch serialization (ush serialization)A subset of serialized instructions are
also refetch serialized. Refetch serialized instructions inhibit dispatching of
subsequent instructions and force refetching of subsequent instructions after
completion.
sync
-serialized instruction
¥
¥
6.4 Execution Unit Timings
The following sections describe instruction timing considerations within each of the
respective execution units in the MPC7400.
6.4.1 Branch Processing Unit Execution Timing
Flow control operations (conditional branches, unconditional branches, and traps) are
typically expensive to execute in most machines because they disrupt normal ow in the
instruction stream. When a change in program ow occurs, the IQ must be reloaded with
the target instruction stream. Previously issued instructions will continue to execute while
the new instruction stream makes its way into the IQ, but depending on whether the target
instruction is in the BTIC, instruction cache, L2 cache, or in system memory, some
opportunities may be missed to execute instructions, as the example in Section 6.3.2.3,
òCache Miss,ó shows.
Performance features such as the branch folding, removal of fall-through branch
instructions, BTIC, dynamic branch prediction (implemented in the BHT), two-level
branch prediction, and the implementation of nonblocking caches minimize the penalties
associated with ow control operations on the MPC7400. The timing for branch instruction
execution is determined by many factors including the following:
¥
¥
Whether the branch is taken
Whether instructions in the target stream, typically the Trst two instructions in the
target stream, are in the branch target instruction cache (BTIC)
Whether the target instruction stream is in the on-chip cache
Whether the branch is predicted
Whether the prediction is correct
¥
¥
¥