Instructions are decoded in order and go through the following four stages.
It is critical to note above that Reads only proceed in the absence of write hazards, and that writes proceed in the absence of Read hazards. This is logical but contrary to expectations. In particular, note that Writes must wait to write after read in order to give other units the opportunity to read the current value in a register, before overwriting it with the new one. Hence why writes must wait until the absence of WAR hazards.
To control the execution of the instructions, the scoreboard maintains three status tables:
The detailed algorithm for the scoreboard control, outlined in the original patent, is described below:
Thornton's book pre-dates modern computing terminology.
Stalling only occurred at the issue stage, when "First Order" conflicts were detected. Some other techniques like Tomasulo's algorithm additionally resolve WAW dependencies with register renaming. The original CDC 6600 likely did not have WAW hazard tracking simply because its designers had to deliver product, and then moved on to the 7600: stalling instead was the most expedient option. There is no technical reason why Register renaming should not be added to Scoreboards.
An analysis of both algorithms was carried out by Luke Leighton and a transformation process outlined which shows equivalence between the Tomasulo algorithm and the 6600 Scoreboard algorithm.5 WAW hazards resolution is indeed missing from the original algorithm: the 6600 would stall at the first occurrence of a Write Hazard.6
Thornton, James E. (1965). "Parallel operation in the control data 6600". Proceedings of the October 27–29, 1964, fall joint computer conference, part II: very high speed computer systems. AFIPS '64. San Francisco, California: ACM. pp. 33–40. doi:10.1145/1464039.1464045. /wiki/Doi_(identifier) ↩
Thornton (1970, p. 125) - Thornton, James (1970). Design of a Computer: The Control Data 6600 (PDF). p. 126. ISBN 9780673059536. https://archive.computerhistory.org/resources/text/CDC/cdc.6600.thornton.design_of_a_computer_the_control_data_6600.1970.102630394.pdf ↩
Thornton (1970, p. 126) - Thornton, James (1970). Design of a Computer: The Control Data 6600 (PDF). p. 126. ISBN 9780673059536. https://archive.computerhistory.org/resources/text/CDC/cdc.6600.thornton.design_of_a_computer_the_control_data_6600.1970.102630394.pdf ↩
Thornton 1970, p. 127 - Thornton, James (1970). Design of a Computer: The Control Data 6600 (PDF). p. 126. ISBN 9780673059536. https://archive.computerhistory.org/resources/text/CDC/cdc.6600.thornton.design_of_a_computer_the_control_data_6600.1970.102630394.pdf ↩
Transforming Tomasulo to Scoreboards https://libre-soc.org/3d_gpu/architecture/tomasulo_transformation/ ↩
Thornton, James (1970). Design of a Computer: The Control Data 6600 (PDF). p. 126. ISBN 9780673059536. 9780673059536 ↩