ORIGIN AND DEVELOPMENT
In Bell Telephone Laboratories the telephone system of the country is continually studied. Their research produced the common type of dial telephone system: a masterly machine for selecting information.
Now when a telephone engineer studies an electric circuit, he often finds it very convenient to use numbers in pairs: like 2, 5 or-4,-1. Here the comma is a separation sign to keep the two numbers in the pair separate and in sequence. Mathematicians call numbers of this kind, for no very good reason, complex numbers; of course, they are far less complex than why the sun shines or why plants grow.
When Bell Laboratories test the design of new circuits, girl computers do arithmetic with complex numbers. Addition and subtraction are easy: each means two operations of addition or subtraction of ordinary numbers. For example, 2, 5, plus-4,-1 equals 2-4, 5-1, which equals-2, 4. And 2, 5 minus-4,-1 is the same as 2, 5 plus 4, 1; and this equals 2 + 4, 5 + 1, which equals 6, 6. Multiplication of two complex numbers, however, is more work. If a, b and c, d are two complex numbers, then the formula for their product is (a × c)-(b × d), (a × d) + (b × c). To get the answer, we need 4 multiplications, 1 subtraction, and 1 addition. Division of two complex numbers requires even more work. If a, b and c, d are two complex numbers, the formula for the quotient of a, b divided by c, d is:
[(a × c) + (b × d)] ÷ [(c × c) + (d × d)],
[(b × c) - (a × d)] ÷ [(c × c) + (d × d)]
For example,
(2, 5) ÷ (-4, -1) = [(2 × -4 = -8) + (5 × -1 = -5)] ÷ [(-4 × -4 = 16) + (-1 × -1 = 1)],
[(5 × -4 = -20) - (2 × -1 = -2)] ÷ [16 + 1] = -(¹³/₁₇), -(¹⁸/₁₇)
Thus, division of one complex number by another needs 6 multiplications, 2 additions, 1 subtraction, and 2 divisions of ordinary numbers—and always in the same pattern or sequence.
The Complex Computer
About 1939, an engineer at Bell Telephone Laboratories in New York, Dr. George R. Stibitz, noticed the great volume of this pattern arithmetic. He began to wonder why telephone switching equipment could not be used to do the multiplications and divisions automatically. He decided it could. All that was necessary was that the relays ([see Chapter 2]) used in regular telephone equipment should have a way of remembering and calculating with numbers. Regular telephone equipment would take care of the proper sequence of operations. Regular equipment known as teletypewriters would print the numbers of the answer when it was obtained. A teletypewriter consists essentially of a typewriter that may be operated by electrical impulses. It has a keyboard that may produce electrical impulses in sets corresponding to letters; and it can receive or transmit over wires.
Dr. Stibitz coded the numbers: each decimal digit was matched up with a group of four relays in sequence, and each of these relays could be open or closed. If 0 means open and 1 means closed, here is the pattern or code that he used:
| Decimal Digit | Relay Code |
|---|---|
| 0 | 0011 |
| 1 | 0100 |
| 2 | 0101 |
| 3 | 0110 |
| 4 | 0111 |
| 5 | 1000 |
| 6 | 1001 |
| 7 | 1010 |
| 8 | 1011 |
| 9 | 1100 |
With regular telephone relays and regular telephone company techniques, Dr. Stibitz and Bell Telephone Laboratories designed and constructed the machine. It was called the Complex Computer and was built just for multiplying and dividing complex numbers. Six or eight panels of relays and wires were in one room. Two floors away, some of the girl computers sat in another room, where one of the teletypewriters of the machine was located. When they wished, they could type into the machine’s teletypewriter the numbers to be multiplied or divided. In a few seconds back would come the answer. In fact, there were two more computing rooms where teletypewriters of the machine were stationed. To prevent conflicts between stations, the machine had a circuit like the busy signal from a telephone.
In 1940, a demonstration of the Complex Computer took place: the computing panels remained in New York, but the teletypewriter input-output station was set up at Dartmouth College in Hanover, N. H. Mathematicians gave problems to the machine in Dartmouth, it solved them in New York, and it reported the answers in Dartmouth.
Special-Purpose Computers
With this as a beginning, Bell Laboratories developed another machine for a wide variety of mathematical processes called interpolating ([see Supplement 2]). Then, during World War II, Bell Laboratories made more special-purpose computing machines. They were used in military laboratories charged with testing the accuracy of instruments for controlling the fire of guns. These computers took in a set of gun-aiming directions put out by the fire-control instrument in some test. They also took in the set of observations that went into the fire-control instrument on that test. Then they computed the differences between the gun-aiming produced by the fire-control instrument and the gun-aiming really required by the observations. Using these differences, the fire-control instrument could be adjusted and corrected. These special-purpose computers were also useful in checking the design of new fire-control instruments and in checking changes due to new types of guns or explosives.
Regularly, after each of these special-purpose computers was finished, people began to put other problems on it. It seemed to be fated that, as soon as you had made a machine for one purpose, you wanted to use it for something else. Accordingly, in 1944, two agencies of the U. S. Government together made a contract with Bell Telephone Laboratories for two general-purpose relay computers. These two machines were finished in 1946 and are twins.
ORGANIZATION OF THE
GENERAL-PURPOSE COMPUTER
When a man sits down at a desk to work on a computation, he has six things on his desk to work with: a work sheet; a desk calculator, to add, subtract, multiply, and divide; some rules to be followed; the tables of numbers he will need; the data for the problem; and an answer sheet. In his head, he has the capacity to make decisions and to do his work in a certain sequence of steps. These seven subdivisions of calculation are all found in the Bell Laboratories’ general-purpose relay computer. The general-purpose computer is a computing system, in fact, more than it is a single machine. The part of the system which does the actual calculating is called, in the following paragraphs, the computer, or else, since it is in two halves, Computer 1 and Computer 2.
Physical Units
The computing system delivered to the Ballistic Research Laboratories fills a room about 30 by 40 feet and consists of the following:
2 computers: panels of relays, wiring, etc., which add, subtract, multiply, divide, select, decide, control, etc.
4 problem positions: tables each holding 12 mechanisms for feeding paper tape, which read numbers and instructions punched on tape and convert them into electrical impulses.
2 hand perforators: keyboard devices for punching instructions and numbers on paper tape.
1 processor: a table holding mechanisms for feeding 2 paper tapes and punching a third paper tape, used for checking numbers and instructions punched on tape.
2 recorders: each a table holding a teletypewriter, a tape punch, and a tape feed, used for recording answers and, if necessary, consulting them again.
The 2 computers correspond to the work sheet, the desk calculator, and the man’s capacity to make decisions and to carry out a sequence of steps. The 4 problem positions correspond to the problem data, the rules, and the tables of numbers. The 2 recorders correspond to the answer sheet. The 2 hand perforators and the processor are auxiliary machines: they translate the ordinary language of arithmetic into the machine language of punched holes in paper tape.
This is the computing system as organized for the Ballistic Research Laboratories at Aberdeen. The one for the National Advisory Committee for Aeronautics has only 3 problem positions. The computer system may, in fact, be organized with 1 to 10 computers and with 1 to 20 problem positions.
The great bulk of this computing system, like the mechanical brains described in previous chapters, is made up of large numbers of identical parts of only a few kinds. These are: standard telephone relays; wire; and standard teletype transmitters, mechanisms that read punched paper tape and produce electrical impulses.
Numbers
The numbers that the Bell machine contains range from 0.1000000 to 0.9999999 times a power of 10 varying from 10,000,000,000,000,000,000 to 0.000,000,000,000,000,000,1, or, in other words, from 10¹⁹ to 10⁻¹⁹. The machine also contains zero and infinity: zero arises when the number is smaller than 10⁻¹⁹, and infinity arises when the number is equal to or greater than 9,999,999,000,000,000,000. ([See Supplement 2].)
The system used in the machine to represent numbers on relays is called biquinary—the bi-, because it is partly twofold like the hands, and the -quinary because it is partly fivefold like the fingers. This system is used in the abacus (see [Chapter 2] and [Supplement 2]). In the machine, for each decimal digit, 7 relays are used. These relays are called the 00 and 5 relays, and the 0, 1, 2, 3, and 4 relays. If, as before, 0 indicates a relay that is not energized and 1 indicates a relay that is energized, then each decimal digit is represented by the positioning of the 7 relays as follows:
| Decimal Digit | Relays | ||
|---|---|---|---|
| 00 | 5 | 0 1 2 3 4 | |
| 0 | 1 | 0 | 1 0 0 0 0 |
| 1 | 1 | 0 | 0 1 0 0 0 |
| 2 | 1 | 0 | 0 0 1 0 0 |
| 3 | 1 | 0 | 0 0 0 1 0 |
| 4 | 1 | 0 | 0 0 0 0 1 |
| 5 | 0 | 1 | 1 0 0 0 0 |
| 6 | 0 | 1 | 0 1 0 0 0 |
| 7 | 0 | 1 | 0 0 1 0 0 |
| 8 | 0 | 1 | 0 0 0 1 0 |
| 9 | 0 | 1 | 0 0 0 0 1 |
Then, for any decimal digit, one and only one of the 00 and 5 relays is energized, and one and only one of the 0, 1, 2, 3, and 4 relays is energized. If more or less than exactly one relay in each set is energized, then the machine knows that it has made a mistake, and it stops dead in its tracks. Thus any accidental failure of a relay is at once caught, and the chance of two compensating failures occurring at the same time is extremely small.
HOW INFORMATION GOES
INTO THE MACHINE
In order to put a problem into this machine—just as with the other machines—first a mathematician who knows how the problem is to be solved, and who knows how to organize it for the machine, lays out the scheme of calculation. Then, a girl goes to one of the hand perforators. Sitting at the keyboard, she presses keys and punches out feet or yards of paper tape expressing the instructions and numbers for the calculation. Each character punched—digit, letter, or sign—has one or more of a maximum of 6 holes across the tape. Another girl, using the other hand perforator, also punches out the instructions and numbers for the calculation. If she wishes to erase a wrong character, she can press an erase key that punches all 6 holes, and then the machine will pass by this row as if it were not there.
Three kinds of tapes are produced for the machine:
Problem tapes, which contain information belonging to the particular problem.
Table tapes, which contain tables of numbers to be referred to from time to time.
Routine tapes, which contain the program, or routine, or sequence of steps that the machine is to carry out.
In each of these tapes one character takes up ⅒ of an inch along the tape. In the case of a table tape, however, an ordinary 1-digit number requires 4 characters on the tape, and a 7-digit number requires 11 characters on the tape. On a table tape there will be on the average about 1 inch of tape per number.
The Processor
The two paper tapes prepared on the perforator should agree. But whether or not they agree, a girl takes them over to the processor and puts them both in. The processor has two tape feeds, and she puts one tape on each and starts the machine. The processor compares them row by row, making sure that they agree, and punches a new tape row by row. If the two input tapes disagree, the processor stops. You can look to see which tape is right, and then you can put the correct punch into the new tape with a keyboard mounted on the processor. As the processor compares the two input tapes, it also converts any number written in the usual way into machine language. For example, the processor will automatically translate 23,188 into +.231 8800 × 10⁺⁵. The processor also puts in certain safeguards. If you want it to, the processor will also make a printed record of a tape. Also, when a tape becomes worn from use in the machine, you can put it into the processor and make a fresh copy.
The Problem Positions
Next, the girl takes the punched tape made by the processor over to a problem position that is idle. Two of the problem positions are always busy guiding the two computers. The other two problem positions stand by, ready to be loaded with problems.
A problem position looks like a large covered-over table. Under the covers are 12 tape feeds, or tape transmitters. All these transmitters look exactly alike except for their labels and consist of regular teletype transmitters. Six-hole paper tape can be fed into any transmitter. Six metal fingers sense the holes in the paper tape and give out electrical impulses at proper times. At the front of the problem position is a small group of switches that provide complete control over the problem while it is on the machine. These are switches for starting, disconnecting, momentary stop, etc.
One tape transmitter is the problem tape transmitter. It takes in all the data for the problem such as the starting numbers. The first thing it does at the start of a problem is to check (by comparing tape numbers) that the right tapes are in the right feeds.
Five transmitters are routine tape transmitters. Each of these takes in the sequence of computing steps. The routine tapes also contain information for referring to table tapes and instructions for printing and punching tape. The machine can choose according to instructions between the five routine tapes and can choose between many different sections on each tape. Therefore, we can use a large number of different routines in a calculation, and this capacity makes the machine versatile and powerful.
Six transmitters are table tape transmitters. They read tables of numbers when directed to. A table tape can be as long as 100 feet and will hold numbers at the rate of 1 inch per number, so that about 1200 numbers of seven decimal digits can be stored on a table tape.
When we look up a number in a table, such as the following,
| 2½ | 3 | 3½ | ··· | |
| 1 | 1.02500 | 1.03000 | 1.03500 | |
| 2 | 1.05063 | 1.06090 | 1.07123 | |
| 3 | 1.07689 | 1.09273 | ··· | |
| 4 | 1.10381 | ··· | ··· | |
| 5 | 1.13141 | ··· | ||
| 6 | 1.15969 | |||
| 7 | ··· | |||
| 8 | ··· | |||
| 9 | ··· | |||
| 10 | ||||
| ··· | ··· | |||
we look along the top and down the side until we find the column and row of the number we are looking for. These are called the arguments of the tabular value that we are looking for ([see Supplement 2]). Now when we put this table on a tape to go into the Bell Laboratories machine, we write it all on one line, one figure after another, and we punch it as follows:
2-½ 1-5 1.02500 1.05063 1.07689 1.10381 1.13141
6-10 1.15969 ··· 11-15 ··· ··· ··· 3 1-5
1.03000 1.06090 ··· ··· 3½ 1-5 1.03500 ···
You will notice that the column labels 2½, 3, 3½ have been put on the tape, each in front of the group of numbers they apply to. The row labels 1 to 5, 6 to 10, ··· have also been put on the tape, each in front of the group of numbers they apply to. The appropriate column and row numbers, or arguments, must be put often on every table tape, so that it is easy for the machine to tell what part of the table tape it is reading.
In the Bell Laboratories machine, we do not need to put equal blocks of arguments like 1-5, 6-10 ··· on the table tape. Instead we can put individual arguments like 1, 2, 3, 4 ···, or, if we wish, we can use blocks of different sizes, like 1-3, 4-15, 16-30···. For some tables, such as income tax tables, it is very useful to have varying-sized blocks of arguments. The machine, when hunting for a certain value in the table, makes a comparison at each block of arguments.
The machine needs about 6 seconds to search a foot of tape. If we want to set up a table economically, therefore, we need to consider the average length of time needed for searching.
Fig. 1. Scheme of a recorder.
HOW INFORMATION COMES
OUT OF THE MACHINE
At either one of the two recorders ([Fig. 1]), information comes out of the machine, either in the form of printed characters or as punched tape. The recorder consists of a printer, a reperforator, and a tape transmitter. One recorder table belongs to each computer and records the results it computes. The printer is a regular teletypewriter connected to the machine. It translates information produced by the machine as electrical impulses and prints the information in letters and digits on paper. The reperforator is an automatic tape punch. It translates information produced by the machine in the form of electrical impulses and punches the information on paper tape. Next to the tape punch is a tape transmitter. After the tape comes through the punch, it is fed into the transmitter. Here the machine can hunt for a previous result punched in the tape, read that result, and use it again.
HOW INFORMATION IS MANIPULATED
IN THE MACHINE
The main part of the computing system consists of 27 large frames loaded with relays and wiring, called the computer, or Computer 1 and Computer 2. In this “telephone central station,” all the “phone calls” from one number to another are attended to. There are 8 types of these frames in the computer:
| Frames | Number |
|---|---|
| Storing register frames | 6 |
| Printer frames | 2 |
| Problem frames | 2 |
| Position frames | 2 |
| Calculator frames | 6 |
| Control frames | 2 |
| Routine frames | 4 |
| BTL (Block-Trig-Log) frames | 2 |
| Permanent table frames | 1 |
| Total | 27 |
In most but not quite all respects, the two halves, Computer 1 and Computer 2, can compute independently. The storing register frames hold enough relays to store 30 numbers. The registers for these numbers are named A, B, C, D, ···, M, N, O in two groups of 15 each. One group belongs to Computer 1 and the other to Computer 2. In each Computer, the calculator frames hold enough relays for storing two numbers (held in the X and Y registers) and for performing addition, subtraction, multiplication, division, and square root. In each Computer, the problem frame stores the numbers that are read off the problem tape and the table tapes, and the printer frame stores the numbers that are read into the printer. The printer frame also stores indications, for example, the signs of numbers, plus or minus, for purposes of combining them. These frames also hold the relays that control the printer, the problem tape, and the table tapes. Jointly for both Computers, the position frames connect a problem in some problem position to a Computer that becomes idle. For example, one problem may finish in the middle of the night; the machine automatically and unattended switches to another problem position and proceeds with the instructions there contained. A backlog of computing on hand can be stored in two of the problem positions, while the other two control the two Computers. In each Computer, the routine frames hold the relays that make the Computer follow the routine instructions. Jointly for both Computers, the remaining frames—the control frames, the BTL frames, and the permanent table frames—hold the relays that control: the alarms and lights for indicating failures; some circuits called the BTL controls; the tape processor; and the mathematical tables that are permanently wired into the machine. The permanent table frames hold the following mathematical functions ([see Supplement 2]): sine, cosine, antitangent, logarithm, and antilogarithm.
Storing
Numbers can be stored in the machine in the 30 regular storing registers of both Computers together. They can also be stored, at the cost of tying up some machine capacity, in the other registers: the 4 calculator registers, the 2 problem registers, the 2 table registers, and the 2 printer registers. Numbers can also be punched out on tape, in either of the two printers, and later read again from the tape. Labels identifying the numbers can also be punched and read again from the tape.
Each register in the machine stores a number in the biquinary notation, as explained above. In programming the machine, after mentioning a register it is necessary—as a part of the scheme for checking—to tell the machine specifically whether to hold the number in the register or to clear it.
Addition and Subtraction
The calculator frames can add two numbers together, if so instructed in the routine tape. Suppose that the two numbers are in the registers B and D and that we wish to put the sum in register F. Suppose that we wish to clear the D number but hold the B number after using them. The code on the routine tape is B H + D C = F. H and C coming right after the names of the registers always designate “hold” and “clear,” respectively.
The calculator frames can, likewise, subtract a number. The routine instruction B H-D C = F means:
- Take the number in register B (hold it);
- subtract the number in D (clear it);
- put the result in F
Multiplication and Division
The calculator frames perform multiplication by storing the digits of the multiplier, adding the multiplicand over and over, and shifting, until the product is obtained. However, if the multiplier is 1989, for example, the calculator treats it as 2000-11. This short-cut applies to digits 6, 7, 8, 9 and cuts the time required for multiplying. The routine instruction is B H × D C = F.
The calculator performs division by repeated subtraction. The routine instruction is B H ÷ D C = F. The operation signs +,-, ×, ÷ actually appear on the keyboard of the perforator and on the printed tape produced by the printer.
Discrimination
Discrimination is the term used in the Bell Laboratories computer for what we have previously called selection, or comparison, or sequencing. The discriminator is a part of the calculator that compares or selects or decides—“discriminates.” The discriminator can decide whether a number is zero or not zero. In the language of the algebra of logic (see [Chapter 9] and [Supplement 2]), if a is a number, the discriminator can find T(a = 0). The discriminator can also decide whether a number is positive or negative. In the language of logic, it can find T(a > 0) or T(a < 0). The actions that a discriminator can cause to be taken are:
- Stop the machine.
- Stop the problem, and proceed to another problem.
- Stop the routine going on, and proceed with a new routine.
- Permit printing, or prevent printing; etc.
In this way the discriminator can:
- Distinguish between right and wrong results.
- Tell that a certain result is impossible.
- Recognize a certain result to be the answer.
- Control the number of repetitions of a formula.
- Change from one formula to another formula.
- Check a number against a tolerance; etc.