Abstract
- Usually used with Operand Forwarding to handle negative performance impact caused by Pipeline Stall
- The idea is to execute independent Instruction in between instruction that are dependent on each other by shifting the order of execution defined in a given program. So those independent instructions can avoid pipeline stall. Thus, minimize idle time
Example
Without Out-of-Order Execution
- The third instruction has to stop because the second instruction stops
With Out-of-Order Execution
- 2 pipeline stalls are removed