Tomasulo's algorithm: Difference between revisions

Content deleted Content added
See also: rm already linked
print worthiness
Line 3:
The major innovations of Tomasulo’s algorithm include [[register renaming]] in hardware, [[reservation station|reservation stations]] for all execution units, and a common data bus (CDB) on which computed values broadcast to all reservation stations that may need them. These developments allow for improved [[parallel computing|parallel execution]] of instructions that would otherwise stall under the use of [[scoreboarding]] or other earlier algorithms.
 
Robert Tomasulo received the [[Eckert-MauchlyEckert–Mauchly Award]] in 1997 for his work on the algorithm.<ref>{{cite web
| url =http://awards.acm.org/award_winners/tomasulo_4008463.cfm
| title =Robert Tomasulo – Award Winner
Line 41:
 
===Exceptions===
Practically speaking, there may be exceptions for which not enough status information about an exception is available, in which case the processor may raise a special exception, called an "imprecise" exception. Imprecise exceptions cannot occur in non-[[Out-of-order execution|OoOE]] implementations, as processor state is changed only in program order (see [[Classic_RISC_pipeline#Exceptions|RISC Pipeline Exceptions]]).
 
Programs that experience "precise" exceptions, where the specific instruction that took the exception can be determined, can restart or re-execute at the point of the exception. However, those that experience "imprecise" exceptions generally cannot restart or re-execute, as the system cannot determine the specific instruction that took the exception.
Line 138:
===Stage 2: execute===
 
In the execute stage, the instruction operations are carried out. Instructions are delayed in this step until all of their operands are available, eliminating RAW hazards. Program correctness is maintained through effective address calculation to prevent hazards through memory.
 
*If one or more of the operands is not yet available then: wait for operand to become available on the CDB.