In
computer engineering,
out-of-order execution (or more formally
dynamic execution), is a
paradigm used in most high-performance
microprocessors to make use of
instruction cycles that would otherwise be wasted by a certain type of costly delay. In this paradigm, a processor executes instructions in an order governed by the availability of input data, rather than by their original order in a program. In doing so, the processor can avoid being idle while waiting for the preceding instruction to complete to retrieve data for the next instruction in a program, processing instead the next instructions which are able to run immediately and independently. It can be viewed as a hardware based
dynamic recompilation or
just-in-time compilation (JIT) to improve
instruction scheduling.