Changes

Jump to: navigation, search

Computer Architecture

17 bytes added, 01:09, 25 September 2018
In-order and Out-of-order Execution
In-order execution means that instructions are executed in the order in which they exist in memory. Out-of-order execution is an architecture feature where instructions are re-sequenced by the CPU on-the-fly to produce the same logical result while keeping the execution units as busy as possible.
For example, when evaluating a compound arithmetic function on a CPU that has two integer units capable of addition which take an average of 2 [[Clock|clock cycles]] to perform an operation, and a floating point multiplication unit which takes an average of 5 clock cycles to perform an operation, two multiplications in succession will cause a pipeline stall, because the second operation cannot be performed until the first multiplication has completed. With out-of-order execution, additional logic in the early portion of the pipeline could rearrange operations so that some integer add/subtract operations would be performed between the two multiplications, avoiding the stall (and therefore increasing performance).
Out-of-order execution requires significant additional hardware logic (chip space) and energy.

Navigation menu