Tomasulo's algorithm: Difference between revisions

Content deleted Content added
Alexbot (talk | contribs)
No edit summary
Line 5:
Robert Tomasulo received the [[Eckert-Mauchly Award]] in 1997 for this algorithm.
 
==Implementation Conceptsconcepts==
The following are the concepts necessary to the implementation of Tomasulo's Algorithm.
 
Line 14:
*Functional units use [[Reservation_stations|reservation stations]] with multiple slots. Each slot holds information needed to execute a single instruction, including the operation and the operands. The functional unit begins processing when it is free and when all source operands needed for an instruction are real.
 
==Instruction Lifecyclelifecycle==
The three stages listed below are the stages through which each instruction passes from the time it is issued to the time its execution is complete.
 
===Stage 1: Issueissue===
 
In the Issue stage, instructions are issued for execution if all operands and reservation stations are ready or else they are stalled. Registers are renamed in this step, eliminating WAR and WAW hazards.
Line 30:
**Use virtual values, the functional unit calculating the real value, to keep track of the functional units that will produce the operands
 
===Stage 2: Executeexecute===
 
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.
Line 48:
***Execute the instruction at the corresponding functional unit
 
===Stage 3: Writewrite Resultresult===
In the Write Result stage, ALU operations results are written back to registers and store operations are written back to memory.
*If the instruction was an ALU operation