OutofOrderExecution
Out-of-Order Execution (OOE) is a computer architecture technique used in many modern CPUs to increase instruction throughput by executing instructions as their operands become available, rather than strictly in program order. The goal is to keep execution units busy and to maximize instruction-level parallelism while preserving the original program semantics.
The processor fetches and decodes instructions, then issues them to reservation stations or an execution unit
Speculative execution and aggressive branch prediction fill the pipeline with work by predicting the path of
OOE improves instruction-level parallelism and overall throughput but increases microarchitectural complexity, power consumption, and die area.
Historically, out-of-order execution traces to dynamic scheduling ideas from Tomasulo’s algorithm in the 1960s and was