|
|
Bypass Pipelining - Overview
Bypassing is when an interlocked instruction obtains a result from an earlier
source instead of waiting for the instruction that writes the result
to complete. Here's an example: If an instruction is waiting for a LA instruction's
result. Instead of waiting for the LA instruction to finish, the interlocked
instruction can obtain what will be the result of the LA instruction from
result of the LA when it was in the A-Stage. This would allow the instruction
to get the value it needs up to 4 cycles earlier. It would look at the
EA because the LA instruction has only one operand, and that operand would
not change the value of the EA before actually writing it.
Another important bypass is from the result of the E-Unit. Many instructions
will have source operands that are the result of a mathematical operation
of another instruction. If the instruction that produces the result is
too close to the instruction that needs the value, then the instruction
will interlock. until the result is available. By having a bypass from
the output of the E-Unit, the interlocked instruction can get the result
directly out of the E-Unit. With out this bypass, the instruction would
stay interlocked for another cycle waiting for the W-Stage to write the
result.
|
|