Giant Brains
or
Machines That Think


Extracts from Giant Brains, or Machines That Think by Edmund C Berkeley, Consultant in Modern Technology, 1949.

Harvard's IBM Automatic Sequence-Controlled Calculator

Compact!...The machine (see Figure 1) is about 50 feet long, 8 feet high, and about 2 feet wide. It consists of 22 panels; 17 of them are set in a straight line, and the last 5 are at the rear of the machine...

Accurate!...Numbers in the machine regularly consists of 23 decimal digits. The 24th numerical position at the left in any register contains only 0 for a positive number and only 9 for a negative number. Nines complements (see Supplement 2) are used for negative numbers...

Runs like the wind!...The time required in the machine for adding, subtracting, transferring, or clearing numbers is 3/10 of a second. This is the time of one machine cycle or of reading one coding line. Multiplication takes at the most 6 seconds, and an average of 4 seconds. Division takes at the most 16 seconds, and an average of 11 seconds...To calculate a logarithm, an exponential, or a sine to the full number of digits obtainable by means of the automatic subroutine takes at the most 90, 66, and 60 seconds respectively...

Cost effective!...The cost of the machine was somewhere near 3 or 4 hundred thousand dollars, if we leave out some of the cost of research and development...A staff of 10 men, consisting of 4 mathematicians, 4 operators, and 2 maintenance men, are needed to keep the machine running 24 hours a day...If a capital value of $500,000 is taken as equivalent to $50,000 a year, then the cost of the machine in operation 24 hours a day is in the neighborhood of $150 a day or $6 an hour...

Moore School's ENIAC (Electronic Numerical Integrator and Calculator)

...ENIAC was born in 1942...ENIAC's father was the Ordnance Department of the US Army, which provided the funds to feed and rear the prodigy... in February, 1946, he began to earn his own living by electronic thinking. ENIAC promptly set several world's records...He was the first one to reach the speed of 5000 additions a second...At the age of 5 he moved to Maryland at the cost of about $90,000, and his permanent home is now the Ballistic Research Laboratories at the US Army's Proving Ground at Aberdeen, Maryland.

...ENIAC when first built had only 20 accumulators, and so it could remember only 20 numbers at one time...panel 26 [with all of 100 memory locations] was designed, therefore, to provide a great additional memory capacity.

How They Programmed X13 := X13 + X11

We said above that ENIAC has over 100 control lines or program trunks along which instructions can be sent. These instructions are expressed as pulses called program pulses. Now how do we make these pulses do what we want them to do? For example, how can we instruct Accumulator 11 to add what it holds into Accumulator 13?

On each unit of ENIAC there are plug hubs or sockets (called program-pulse input terminals) to which a program trunk may be connected. A program pulse received here can make the unit act in some desired way. On each accumulator of ENIAC, we find 12 program-pulse input hubs. Corresponding to each of these hubs, there is a nine-way switch, called a program control switch. The setting of this switch determines what the accumulator will do when the program-pulse input hub belonging to the switch receives a pulse. For instance, there are switch settings for: receive input on the alpha line, receive input on the beta line, etc; and transmit output on the add line, etc. There is even a switch setting that instructs the accumulator to do nothing, and this instruction may be both useful and important.

Now, in order that Accumulator 11 may transfer a number to Accumulator 13, we need: (1) a digit tray, say B, for the number to travel along; (2) a program trunk line, say G3, to tell Accumulator 11 when to send the number and Accumulator 13 when to receive it; and (3) certain plugging as follows:

And there you have it, folks!

Bell Laboratories General Purpose Relay Calculator

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. 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:

        Digit    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   0   1 0 0 0 0
          6       0   0   0 1 0 0 0
          7       0   0   0 0 1 0 0
          8       0   0   0 0 0 1 0
          9       0   0   0 0 0 0 1
      
So...binary representation isn't as blindingly obvious as we imagine now.

In order to put a problem into this machine - just as with other machines - first a mathematician...lays out the scheme of calculation. Then, a girl goes to one of the hand perforators. This sounds like it's going to hurt! Sitting at the keyboard, she presses keys and punches out feet or yards of paper tape expressing the instructions and numbers for the calculation...[two copies are made independently, for error checking]...a girl takes them over to the processor and puts them both in...if the two input tapes disagree, the processor stops...Next, the girl takes the punched tape made by the processor over to a problem position that is idle...

New Ideas in Programming

One idea is that the machine should be able to store its instructions or program or routine in its memory in just the same physical ways as it stores numbers...the machine should be able to compute its own instructions. For example, consider a program for finding the product of two matrices, each of 100 terms in an array of 10 columns and 10 rows. The whole program can be made to consist of about 50 orders. Only one of them is "multiply", and only one of them is "add"; the other orders consist of how to choose the expressions to be multiplied or added. Research Project: using your puny meat brain, get that darn matrix multiply routine down to 30 lines of code or less...(or fewer?)

Future Types of Machines That Think


Last revised on 18 October 2005.