Scoreboarding (in more detail)
IS stage: if there is no structural hazard and no WAW hazard,
- the scoreboard issues the instruction to the FU and updates its internal data structure;
- otherwise, the instruction issue stalls, and no further instruction is issued until the hazard is cleared (? single issue and in-order issue!).
RO stage: the scoreboard monitors the availability of the input operands, and when they are all available, tells the FU to read them from the register file (? no forwarding!!) and to proceed to EX stage. RAW hazards are dynamically resolved; (? instructions may be dispatched into EX stage out of order)
EX stage: the FU begins execution (which may take multiple cycles) and notifies the scoreboard when the result is ready (result ready flag set!).
WB stage: once the scoreboard is aware that the FU has completed execution, the scoreboard checks for WAR hazards and stalls the completing instruction, if necessary. Otherwise, the scoreboard tells the FU to write its result to the destination register.