Speculation

The idea of speculative execution is to attempt to uncover more ILP by allowing the processor to execute instructions before it knows that the instruction should execute.

We will look at three classes of techniques:

Software speculation in the compiler.
Hardware/Software cooperative speculation
Hardware speculation - entirely dynamic.

[up] to Multiple Issue.