S1-1
Relay not energized
Fig. 3. Register S1 storing 10.
How many registers will we need to put into Simon to store information? We shall need one register to read the input tape and to store the number or operation recorded on it. We shall call this register the input register I. We shall need another register to store the number or operation that Simon says is the answer and to give it to the output lights. We shall call this register the output register O. We shall need 5 registers for the part of Simon which does the computing, which we shall call the computer: we shall need 3 to store numbers put into the computer (C1, C2, C3), 1 to store the operation governing the computer (C4), and 1 to store the result (C5). Suppose that we decide to have 8 registers for storing information, so as to provide some flexibility for doing problems. We shall call these registers storage registers and name them S1, S2, S3, ··· S8. Then Simon will have 15 registers: a memory that at one time can hold 15 pieces of information.
How will one of these registers hold information? For example, how will register S1 hold the number 2 ([see Fig. 3])? The number 2 in machine language is 10. Register S1 consists of two relays, S1-2 and S1-1. 10 stored in register S1 means that relay S1-2 will be energized and that relay S1-1 will not be energized.
THE CONTROL OF SIMON
So far we have said nothing about the control of Simon. Is he docile? Is he stubborn? We know what his capacity is, but we do not know how to tell him to do anything. How do we connect our desires to his behavior? How do we tell him a problem? How do we get him to solve it and tell us the answer? How do we arrange control over the sequence of his operations? For example, how do we get Simon to add 1 and 2 and tell us the answer 3?
On the outside of Simon, we have said, there are two ears: little mechanisms for reading punched paper tape. Also there are two eyes that can wink: light bulbs that by shining or not shining can put out information ([see Fig. 1]). One of the ears—let us call it the left ear—takes in information about a particular problem: numbers and operations. Here the problem tape or input tape is listened to. Each line on the input tape contains space for 2 punched holes. So, the information on the input tape may be 00, 01, 10, or 11—either a number or an operation. The other ear—let us call it the right ear—takes in information about the sequence of operations, the program or routine to be followed. Here the program tape or routine tape or control tape is listened to. Each line on the program tape contains space for 4 punched holes. We tell Simon by instructions on the program tape what he is to do with the information that we give him on the input tape. The information on the program tape, therefore, may be 0000, 0001, 0010, ···, 1111, or any number from 0 to 15 expressed in binary notation ([see Supplement 2]).
How is this accomplished? In the first place, Simon is a machine, and he behaves during time. He does different things from time to time. His behavior is organized in cycles. He repeats a cycle of behavior every second or so. In each cycle of Simon, he listens to or reads the input tape once and he listens to or reads the program tape twice. Every complete instruction that goes on the program tape tells Simon a register from which information is to be sent and a register in which information is to be received. The first time that he reads the program tape he gets the name of the register that is to receive certain information, the receiving register. The second time he reads the program tape he gets the name of the register from which information is to be sent, the sending register. He finishes each cycle of behavior by transferring information from the sending register to the receiving register.
For example, suppose that we want to get an answer out of Simon’s computer into Simon’s output lights. We put down the instruction
Send information from C5 into O