Reservation station components
Each FU has one or more reservation stations
The reservation station holds:
- instructions that have been issued and are awaiting execution at a functional unit,
- the operands for that instruction if they have already been computed (or the source of the operands otherwise),
- the information needed to control the instruction once it has begun execution.
The reservation stations buffer the operands of instructions waiting to issue, eliminating the need to get the operands from registers (similar to forwarding).
The register specifications store register values (scoreboarding: only pointers to the registers!) or pointers to reservation stations that produce the result.
WAR hazards are avoided because an operand is already stored in reservation station even when a write to the same register is performed out-of-order.
WAW hazards are avoided because of the use of pointers to reservation stations instead of register pointers as tags on the CDB.