Difference between revisions of "Out-of-order execution"

From Computer History Wiki
Jump to: navigation, search
(An OK start)
 
m (Better cat)
 
(3 intermediate revisions by the same user not shown)
Line 5: Line 5:
 
Out-of-order execution is common in [[superscalar]] machines which want to avoid the 'stalling' technique for dealing with conflicts.
 
Out-of-order execution is common in [[superscalar]] machines which want to avoid the 'stalling' technique for dealing with conflicts.
  
It is a valuable technique because it means that [[software]] (both [[programmer]]s and [[compiler]]s) does not have to worry about execution order, etc; this is all dealt with by the hardware.
+
It is a valuable technique because it means that [[software]] (both [[programmer]]s and [[compiler]]s) does not have to worry about execution order, in order to obtain the maximum performance; this is all dealt with by the hardware.
  
 
{{semi-stub}}
 
{{semi-stub}}
 +
 +
[[Category: CPU Hardware‎‎]]

Latest revision as of 16:04, 15 December 2018

Out-of-order execution (also called dynamic execution) is a technique for improving the performance of a processor by making use of what would otherwise be unused processor cycles. It does this by executing instructions in a different order than they appear in the object code.

A certain amount of 'book-keeping' is required, to make sure that all the operands of a given instruction (especially including those calculated in previous instructions) are available, and that a location is available to store the results - the register renaming mechanism is used to handle that issue.

Out-of-order execution is common in superscalar machines which want to avoid the 'stalling' technique for dealing with conflicts.

It is a valuable technique because it means that software (both programmers and compilers) does not have to worry about execution order, in order to obtain the maximum performance; this is all dealt with by the hardware.