Need for 4 stages
In Tomasulo’s solution 3 stages: issue, execute, write
Now 4 stages: issue, execute, write, commit
Dispatch and Issue
- Check for structural hazards (reservation stations busy, reorder buffer full). If one exists, stall the instruction and those following
- If dispatch possible, send values to reservation station if the values are available in either the registers or the reorder buffer. Otherwise send tag.
- Allocate an entry in the reorder buffer and send its number to the reservation station
- When both operands are ready, issue to functional unit