Introduced in 1963 by Thornton in the CDC6600 processor.
Goal of scoreboarding is to maintain an execution rate of one instruction per clock cycle by executing an instruction as early as possible.
Instructions execute out-of-order when there are sufficient resources and no data dependences.
A scoreboard is a hardware unit that keeps track of
- the instructions that are in the process of being executed,
- the functional units that are doing the executing,
- and the registers that will hold the results of those units.
A scoreboard centrally performs all hazard detection and resolution and thus controls the instruction progression from one step to the next.