Out-of-Order Execution (OoOE)

The Problem:

CPUs have multiple logic units which can run at the same time. However, if an operand isn't available for an instruction, the CPU "stalls", wasting valualbe processing cycles.

The Solution:

Create a queue that can store the instruction when the necessary operands aren't available so that other instructions that don't need the same operands may execute.

How is it done?

There are several tricks used to allow Out-of-Order Execution to be an effective way of speeding up a processor.

The New Pipeline

Now, the pipeline works in these three steps:

  1. Issue
  2. Execute (At the reservation station)
  3. Write Result

 

Sources

http://camino.rutgers.edu/cs505/lecture5.html

http://en.wikipedia.org/wiki/Out_of_order_execution

http://www.tom.womack.net/computing/ooo.html

http://www.cs.uaf.edu/2007/fall/cs441/lecture/10_02_superscalar.html