Homework 8 Solved

22C:122/55:132, Spring 2001

Douglas W. Jones
  1. Part A: Contrast the way work is dispatched to functional units in the 6600 with the way work is dispatched to the functional units of a VLIW processor. What are the major differences, and what are the major similarities?

    The VLIW disptaching mechanism is trivial. All functional units can accept new work at each clock cycle, and each instruction has work for each functional unit. In contrast, at the start of each clock cycle, each functional unit on the CDC 6600 may be idle or busy, and some instructions can be handled by any of a number of functional units. Furthermore, in the VLIW machine, each instruction dispatches work to all functional units, while in the CDC environment, each instruction is dispatched to exactly one functional unit.

    The only clear similarity is that both machines have multiple functional units that may operate in parallel.

    Part B: Why does the CDC 6600 architecture need a scoreboard while VLIW architectures generally lack anything analagous to this structure.

    In a VLIW architecture, all scheduling of functional units is left to the programmer. It is up to the programmer to know when a particular result will leave the end of its pipeline and become available as an input to some later computation. The CDC 6600, on the other hand, would automatically delay an operation until the necessary results were avaliable, and the scoreboard was the tool used to do this.

  2. A Question: What condition signalled by the bits in the scoreboard indicates that a functional unit may fetch its source operands.

    With this scheme, a functional unit may begin operation if, on checking the scoreboard, no other functional unit has marked one of the registers it intends to use as a source. A functional unit may not block itself, so it does not check its own bit in the scoreboard!

  3. A Question: Why doesn't the CDC 6600 need something analogous to a scoreboard to interlock multiple memory reference operations, for example, a sequence of instructions where one stores a result to some memory location and the next loads from that location.

    The CDC 6600 only has one functional unit for memory access, so all attempts to load and store are serialized in the order that the load and store instructions are issued.