# Linux Kernel Module Cheat

### 37.3. Out-of-order execution

https://en.wikipedia.org/wiki/Out-of-order_execution

gem5’s model is gem5 `DerivO3CPU`.

Allows working around data dependencies: you can execute the second next instruction forward if the first next depends on the current one.

Likely used on basically all (?) 2020 non-power-constrained CPUs.

As mentioned at: https://stackoverflow.com/questions/10074831/what-is-general-difference-between-superscalar-and-ooo-execution it is in theory possible for an out-of-order CPU to not a Superscalar processor, but the combination is so natural (since you can look ahead, you might as well run it!) that it is not super common.

- Speculative execution

- Re-order buffer

- Register renaming