start no = t←r yes a←b done b←t Figure 5.2: Controller for a  machine. must be connected. If we view the arrows as wires and the X buons as switches, the data-path diagram is very like the wiring diagram for a machine that could be constructed from electrical components. In order for the data paths to actually compute s, the buons must be pushed in the correct sequence. We will describe this sequence in terms of a controller diagram, as illustrated in Figure 5.2. e elements of the controller diagram indicate how the data-path components should be operated. e rectangular boxes in the controller diagram identify data-path buons to be pushed, and the arrows describe the sequencing from one step to the next. e diamond in the diagram represents a decision. One of the two sequencing arrows will be followed, depending on the value of the data-path test identified in the diamond. We can interpret the controller in terms of a physical analogy: ink of the diagram as a maze in which a marble is rolling. When the marble rolls into a box, it pushes the data-path buon that is named by the box. When the marble rolls into a decision node (such as the test for 671