Chapter 6) is often strained during a problem because of the number of

Transcriber’s Notes:

Underscores “_” before and after a word or phrase indicate _italics_

in the original text.

A single underscore after a symbol indicates a subscript.

Small capitals have been converted to SOLID capitals.

Illustrations have been moved so they do not break up paragraphs.

Typographical and punctuation errors have been silently corrected.

GIANT BRAINS

OR

MACHINES THAT THINK

EDMUND CALLIS BERKELEY

Consultant in Modern Technology

President, E. C. Berkeley and Associates

JOHN WILEY & SONS, INC., NEW YORK

CHAPMAN & HALL, LIMITED, LONDON

Copyright, 1949

by

EDMUND CALLIS BERKELEY

_All Rights Reserved_

_This book or any part thereof must not

be reproduced in any form without

the written permission of the publisher._

Second Printing, February, 1950

Printed in the United States of America

To my friends,

whose help and instruction

made this book possible

PREFACE

The Subject, Purpose, and Method of this Book

The subject of this book is a type of machine that comes closer to

being a brain that thinks than any machine ever did before 1940. These

new machines are called sometimes mechanical brains and sometimes

sequence-controlled calculators and sometimes by other names.

Essentially, though, they are machines that can handle information with

great skill and great speed. And that power is very similar to the

power of a brain.

These new machines are important. They do the work of hundreds of human

beings for the wages of a dozen. They are powerful instruments for

obtaining new knowledge. They apply in science, business, government,

and other activities. They apply in reasoning and computing, and, the

harder the problem, the more useful they are. Along with the release of

atomic energy, they are one of the great achievements of the present

century. No one can afford to be unaware of their significance.

In this book I have sought to tell a part of the story of these new

machines that think. Perhaps you, as you start this book, may not agree

with me that a machine can think: the first chapter of this book is

devoted to the discussion of this question.

My purpose has been to tell enough about these machines so that we

can see in general how they work. I have sought to explain some

giant brains that have been built and to show how they do thinking

operations. I have sought also to talk about what these machines can do

in the future and to judge their significance for us. It seems to me

that they will take a load off men’s as great as the load that printing

took off men’s writing: a tremendous burden lifted.

We need to examine several of the new mechanical brains: Massachusetts

Institute of Technology’s differential analyzer, Harvard’s IBM

automatic sequence-controlled calculator, Moore School’s ENIAC

(Electronic Numerical Integrator and Calculator), and Bell Laboratories’

general-purpose relay calculator. These are described in the sequence in

which they were finished between the years 1942 and 1946.

We also have to go on some excursions—for instance, the nature of

language and of symbols, the meaning of thinking, the human brain and

nervous system, the future design of machinery that can think, and a

little algebra and logic. I have also sought to discuss the relations

between machines that think and human society—what we can foresee as

likely to happen or be needed as a result of the remarkable invention

of machines that can think.

READING THIS BOOK

This book is intended for everyone. I have sought to put it together in

such a way that any reader can select from it what he wants.

Perhaps at first reading you want only the main thread of the story.

Then read only what seems interesting, and skip whatever seems

uninteresting. The subheadings should help to tell you what to read and

what to skip. Nearly all the chapters can be read with little reference

to what goes before, although some reference to the supplements in the

back may at times be useful.

Perhaps your memory of physics is dim, like mine. The little knowledge

of physics needed is explained here and there throughout the book, and

the index should tell where to find any explanation you may want.

Perhaps it is a long time since you did any algebra. Then Supplement

2 on mathematics may hold something of use to you. Two sections (one

in Chapter 5 and one in Chapter 6) labeled as containing some rather

mathematical details may be skipped with no great loss.

Perhaps you are unacquainted with logic that uses symbols—the branch of

logic called mathematical logic. In fact, very few people are familiar

with it. No discussion in the book hinges on understanding this

subject, except for Chapter 9 where a machine that calculates logical

truth is described. In all other chapters you may freely skip all

references to mathematical logic. But, if you are curious about the

subject and how it can be usefully applied in the field of mechanical

brains, then begin with the introduction to the subject in Chapter 9,

and note the suggestions in the section entitled “Algebra of Logic” in

Supplement 2.

In any case, glance at the table of contents, the chapter headings and

subheadings, and the supplements at the back. These should give an idea

of how the book is put together and how you may select what may be

interesting to you.

Please do not read this book straight from beginning to end unless

that way proves to be congenial to you. If you are not interested in

technical details, skip most of the middle chapters, which describe

existing mechanical brains. If, on the other hand, you want more

details than this book contains, look up references in Supplement

3. Here are listed, with a few comments, over 250 books, articles,

and pamphlets related to the subject of machinery for computing and

reasoning. These cover many parts of the field; some parts, however,

are not yet covered by any published information.

There are no photographs in this book, although there are over 80

drawings. Photographs of these complicated machines can really show

very little: panels, lights, switches, wires, and other kinds of

hardware. What is important is the way the machine works inside. This

cannot be shown by a photograph but may be shown by schematic drawings.

In the same way, a photograph of a human being shows almost nothing

about how he thinks.

UNDERSTANDING THIS BOOK

I have tried to write this book so that it could be understood. I have

attempted to explain machinery for computing and reasoning without

using technical words any more than necessary. To do this seemed to be

easy in some places, much harder in others. As a test of this attempt,

a count has been made of all the different words in the book that have

two syllables or more, that are used for explaining, and that are

not themselves defined. There are fewer than 1800 of these words. In

Supplement 1, entitled “Words and Ideas,” I have digressed to discuss

further the problem of explanation and understanding.

Every now and then in the book, along comes a word or a phrase that

has a special meaning, for example, the name of something new. When it

first appears, it is put in italics and is explained or defined. In

addition, all the words and phrases having special meaning appear again

in the index, and next to each is the page number of its explanation or

definition.

In many places, I have talked of mechanical brains as if they were

living. For example, instead of “capacity to store information” I have

spoken of “memory.” Of course, the machines are not living; but they do

have individuality, responsiveness, and other traits of living beings,

just as a political party pictured as a living elephant does. Besides,

to treat things as persons is a help in making any subject vivid and

understandable, as every song writer and cartoonist illustrates.

We speak of “Old Man River” and “Father Time”; we may speak of a

ship or a locomotive as “she”; and the crew on the first Harvard

sequence-controlled calculator has often called her “Bessy, the Bessel

engine.”

Let us pause a little longer on the subject of understanding. What

is the understanding of something new? It is a state of knowing, a

process of knowing more and more. The more we know about something

new, the better we understand it. It is possible for almost anybody to

understand almost anything, I believe. What is mainly needed in order

to grasp an idea is a good collection of true statements about it and

some practice in using those statements in situations. For example,

no one has ever seen or touched the separate scraps of electricity

called electrons. But electrons have been described and measured;

hundreds of thousands of people work with electrons; they know and use

true statements about electrons. In effect, these people understand

electrons.

Probably the hardest task of an author is to make his statements

understandable yet accurate. It is too much to hope for complete

success. I shall be very grateful to any reader who points out to me

the statements that he has not understood or that are in error.

As to the views I have expressed, I do not expect every reader to agree

with me. In fact, I shall be glad if many a reader disagrees with

me. For then someone else may say to both of us, “You’re both right

and both wrong—the truth lies atwixt and atween you.” Thoughtful and

tolerant disagreement is the finest climate for scientific progress.

BASIC FACTS

Many of the mechanical brains described in this book will do good work

for years; but their design is already out of date. Many organizations

are hard at work finding new tricks in electronics, materials, and

engineering and making new mechanical brains that are better and faster.

In spite of future developments, though, the basic facts about

mechanical brains will endure. These basic facts are drawn from the

principles of thinking, of mathematics, of science, of engineering,

etc. These facts govern all handling of information. They do not depend

very much on human or mechanical energy. They do not depend very much

on signs. They do not depend very much on the century, or the language,

or the country. For example, “II et III V sunt,” the Romans may have

said; “deux et trois font cinq,” say the French; “2 + 3 = 5,” say the

mathematicians; and we say, “two and three make five.” The main effort

in this book has been to make clear the basic facts about mechanical

brains, for they are now a masterly instrument for obtaining new

knowledge.

EDMUND CALLIS BERKELEY

New York 11, N. Y.

_June 30, 1949_

ACKNOWLEDGMENTS

This book has been over seven years in the making and has evolved

through many different plans for its contents. It springs essentially

from the desire to see human beings use their knowledge better: we

know enough, but how are we to use what we know? Machines that handle

information, that make knowledge accessible, are a long step in the

direction of using what we know.

For help in causing this desire to come to fruition, I should like

to express my indebtedness especially to Professor (then Commander,

U.S.N.R.) Howard H. Aiken of Harvard University, whose stimulus, while

I was stationed for ten months in 1945-46 in his laboratory, was very

great.

I should also like to express my appreciation to Mr. Harry J. Volk,

whose vision and enthusiasm greatly encouraged me in the writing of

this book.

For careful reviews and helpful comments on the chapters dealing with

existing mechanical brains, I am especially grateful to Dr. Franz

L. Alt, Mr. E. G. Andrews, Professor Samuel H. Caldwell, Dr. Grace

M. Hopper, Mr. Theodore A. Kalin, and Dr. John W. Mauchly, who are

experts in their fields. Dr. Ruth P. Berkeley, Dr. Rudolf Flesch, Mr.

J. Ross Macdonald, Dr. Z. I. Mosesson, Mr. Irving Rosenthal, Mr. Max

S. Weinstein, and many others have been true friends in reading and

commenting upon many parts of the manuscript. Mr. Frank W. Keller

devoted much time and skill to converting my rough sketches into

illustrations. Mr. Murray B. Ritterman has been of invaluable help in

preparing and checking much of the bibliography. Miss Marjorie L. Black

has helped very greatly in turning scraps of paper bearing sentences

into an excellent manuscript for the printer.

For permission to use the quotations on various pages in Chapters 11

and 12, I am indebted to the kindness of:

E. P. Dutton & Co., for quotations from

_Frankenstein_, by Mary W. Shelley,

Everyman’s Library, No. 616.

Samuel French, for quotations from _R. U. R._,

by Karel Čapek.[1]

_Modern Industry_, for a quotation from the

issue of February 15, 1947.

[1] Copyright 1923 by Doubleday, Page and Co.; all rights reserved;

quotations reprinted by permission of Karel Čapek and Samuel French.

Responsibility for the statements and opinions expressed in this book

is solely my own. These statements and opinions do not necessarily

represent the views of any organization with which I may be or have

been associated. To the best of my knowledge and belief no information

contained in this book is classified by the Department of Defense of

the United States.

EDMUND CALLIS BERKELEY

CONTENTS

1. CAN MACHINES THINK?

What Is a Mechanical Brain? 1

2. LANGUAGES:

Systems for Handling Information 10

3. A MACHINE THAT WILL THINK:

The Design of a Very Simple Mechanical Brain 22

4. COUNTING HOLES:

Punch-Card Calculating Machines 42

5. MEASURING:

Massachusetts Institute of Technology’s Differential

Analyzer No. 2 65

6. ACCURACY TO 23 DIGITS:

Harvard’s IBM Automatic Sequence-Controlled Calculator 89

7. SPEED—5000 ADDITIONS A SECOND:

Moore School’s ENIAC (Electronic Numerical Integrator

and Calculator) 113

8. RELIABILITY—NO WRONG RESULTS:

Bell Laboratories’ General-Purpose Relay Calculator 128

9. REASONING:

The Kalin-Burkhart Logical-Truth Calculator 144

10. AN EXCURSION:

The Future Design of Machines That Think 167

11. THE FUTURE:

Machines That Think, and What They Might Do for Men 180

12. SOCIAL CONTROL:

Machines That Think, and How Society May Control Them 196

SUPPLEMENTS

1. Words and Ideas 209

2. Mathematics 214

3. References 228

INDEX 257

Chapter 1

CAN MACHINES THINK?

WHAT IS A MECHANICAL BRAIN?

Recently there has been a good deal of news about strange giant

machines that can handle information with vast speed and skill. They

calculate and they reason. Some of them are cleverer than others—able

to do more kinds of problems. Some are extremely fast: one of them does

5000 additions a second for hours or days, as may be needed. Where they

apply, they find answers to problems much faster and more accurately

than human beings can; and so they can solve problems that a man’s life

is far too short to permit him to do. That is why they were built.

These machines are similar to what a brain would be if it were made of

hardware and wire instead of flesh and nerves. It is therefore natural

to call these machines _mechanical brains_. Also, since their powers

are like those of a giant, we may call them _giant brains_.

Several giant mechanical brains are now at work finding out

answers never before known. Two are in Cambridge, Mass.; one is

at Massachusetts Institute of Technology, and one at Harvard

University. Two are in Aberdeen, Md., at the Army’s Ballistic Research

Laboratories. These four machines were finished in the period 1942

to 1946 and are described in later chapters of this book. More giant

brains are being constructed.

Can we say that these machines really think? What do we mean by

thinking, and how does the human brain think?

HUMAN THINKING

We do not know very much about the physical process of thinking in the

human brain. If you ask a scientist how flesh and blood in a human

brain can think, he will talk to you a little about nerves and about

electrical and chemical changes, but he will not be able to tell you

very much about how we add 2 and 3 and make 5. What men know about the

way in which a human brain thinks can be put down in a few pages, and

what men do not know would fill many libraries.

Injuries to brains have shown some things of importance; for example,

they have shown that certain parts of the brain have certain duties.

There is a part of the brain, for instance, where sights are recorded

and compared. If an accident damages the part of the brain where

certain information is stored, the human being has to relearn—haltingly

and badly—the information destroyed.

We know also that thinking in the human brain is done essentially by a

process of storing information and then referring to it, by a process

of learning and remembering. We know that there are no little wheels

in the brain so that a wheel standing at 2 can be turned 3 more steps

and the result of 5 read. Instead, you and I store the information that

2 and 3 are 5, and store it in such a way that we can give the answer

when questioned. But we do not know the register in our brain where

this particular piece of information is stored. Nor do we know how,

when we are questioned, we are able automatically to pick up the nerve

channels that lead into this register, get the answer, and report it.

Since there are many nerves in the brain, about 10 billion of them, in

fact, we are certain that the network of connecting nerves is a main

part of the puzzle. We are therefore much interested in nerves and

their properties.

NERVES AND THEIR PROPERTIES

A single nerve, or _nerve cell_, consists of a _cell nucleus_ and

a _fiber_. This fiber may have a length of anything from a small

fraction of an inch up to several feet. In the laboratory, successive

impulses can be sent along a nerve fiber as often as 1000 a second.

Impulses can travel along a nerve fiber in either direction at a rate

from 3 feet to 300 feet a second. Because the speed of the impulse

is far less than 186,000 miles a second—the speed of an electric

current—the impulse in the nerve is thought by some investigators to be

more chemical than electrical.

We know that a nerve cell has what is called an _all-or-none response_,

like the trigger of a gun. If you stimulate the nerve up to a certain

point, nothing will happen; if you reach that point, or cross

it,—bang!—the nerve responds and sends out an impulse. The strength of

the impulse, like the shot of the gun, has no relation whatever to the

amount of the stimulation.

[Illustration: FIG. 1. Scheme of a nerve cell.]

The structure between the end of one nerve and the beginning of the

next is called a _synapse_ (see Fig. 1). No one really knows very much

about synapses, for they are extremely small and it is not easy to tell

where a synapse stops and other stuff begins. Impulses travel through

synapses in from ½ to 3 thousandths of a second. An impulse travels

through a synapse only in one direction, from the head (or _axon_) of

one nerve fiber to the foot (or _dendrite_) of another. It seems clear

that the activity in a synapse is chemical. When the head of a nerve

fiber brings in an impulse to a synapse, apparently a chemical called

_acetylcholine_ is released and may affect the foot of another fiber,

thus transmitting the impulse; but the process and the conditions for

it are still not well understood.

It is thought that nearly all information is handled in the brain

by groups of nerves in parallel paths. For example, the eye is

estimated to have about 100 million nerves sensitive to light, and the

information that they gather is reported by about 1 million nerves to

the part of the brain that stores sights.

Not much more is yet known, however, about the operation of handling

information in a human brain. We do not yet know how the nerves are

connected so that we can do what we do. Probably the greatest obstacle

to knowledge is that so far we cannot observe the detailed structure of

a living human brain while it performs, without hurting or killing it.

BEHAVIOR THAT IS THINKING

Therefore, we cannot yet tell what thinking is by observing precisely

how a human brain does it. Instead, we have to define thinking by

describing the kind of behavior that we call thinking. Let us consider

some examples.

When you and I add 12 and 8 and make 20, we are thinking. We use our

minds and our understanding to count 8 places forward from 12, for

example, and finish with 20. If we could find a dog or a horse that

could add numbers and tell answers, we would certainly say that the

animal could think.

With no trouble a machine can do this. An ordinary 10-column adding

machine can be given two numbers like 1,378,917,766 and 2,355,799,867

and the instruction to add them. The machine will then give the answer,

3,734,717,633, much faster than a man. In fact, the mechanical brain at

Harvard can add a number of 23 digits to another number of 23 digits

and get the right answer in ³/₁₀ of a second.

Or, suppose that you are walking along a road and come to a fork. If

you stop, read the signpost, and then choose left or right, you are

thinking. You know beforehand where you want to go, you compare your

destination with what the signpost says, and you decide on your route.

This is an operation of logical choice.

A machine can do this. The mechanical brain now at Aberdeen which was

built at Bell Laboratories can examine any number that comes up in the

process of a calculation and tell whether it is bigger than 3 (or any

stated number) or smaller. If the number is bigger than 3, the machine

will choose one process; if the number is smaller than 3, the machine

will choose another process.

Now suppose that we consider the basic operation of all thinking: in

the human brain it is called learning and remembering, and in a machine

it is called storing information and then referring to it. For example,

suppose you want to find 305 Main Street in Kalamazoo. You look up a

map of Kalamazoo; the map is information kindly stored by other people

for your use. When you study the map, notice the streets and the

numbering, and then find where the house should be, you are thinking.

A machine can do this. In the Bell Laboratories’ mechanical brain, for

example, the map could be stored as a long list of the blocks of the

city and the streets and numbers that apply to each block. The machine

will then hunt for the city block that contains 305 Main Street and

report it when found.

A machine can handle information; it can calculate, conclude, and

choose; it can perform reasonable operations with information. A

machine, therefore, can think.

THE DEFINITION OF A MECHANICAL BRAIN

Now when we speak of a machine that thinks, or a mechanical brain, what

do we mean? Essentially, a _mechanical brain_ is a machine that handles

information, transfers information automatically from one part of the

machine to another, and has a flexible control over the sequence of its

operations. No human being is needed around such a machine to pick up

a physical piece of information produced in one part of the machine,

personally move it to another part of the machine, and there put it in

again. Nor is any human being needed to give the machine instructions

from minute to minute. Instead, we can write out the whole program to

solve a problem, translate the program into machine language, and put

the program into the machine. Then we press the “start” button; the

machine starts whirring; and it prints out the answers as it obtains

them. Machines that handle information have existed for more than 2000

years. These two properties are new, however, and make a deep break

with the past.

How should we imagine a mechanical brain? One way to think of a

mechanical brain is shown in Fig. 2. We see here a railroad line with

four stations, marked _input_, _storage_, _computer_, and _output_.

These stations are joined by little gates or switches to the main

railroad line. We can imagine that numbers and other information move

along this railroad line, loaded in freight cars. _Input_ and _output_

are stations where numbers or other information go in and come out,

respectively. _Storage_ is a station where there are many platforms and

where information can be stored. The _computer_ is a special station

somewhat like a factory; when two numbers are loaded on platforms 1 and

2 of this station and an order is loaded on platform 3, then another

number is produced on platform 4.

[Illustration: FIG. 2. Scheme of a mechanical brain.]

We see also a tower, marked _control_. This tower runs a telegraph line

to each of its little watchmen standing by the gates. The tower tells

them when to open and when to shut which gates.

Now we can see that, just as soon as the right gates are shut, freight

cars of information can move between stations. Actually the freight

cars move at the speed of electric current, thousands of miles a

second. So, by closing the right gates each fraction of a second,

we can flash numbers and information through the system and perform

operations of reasoning. Thus we obtain a mechanical brain.

In general, a mechanical brain is made up of:

1. A quantity of registers where information (numbers and

instructions) can be stored.

2. Channels along which information can be sent.

3. Mechanisms that can carry out arithmetical and logical

operations.

4. A control, which guides the machine to perform a sequence

of operations.

5. Input and output devices, whereby information can go

into the machine and come out of it.

6. Motors or electricity, which provide energy.

THE KINDS OF THINKING A MECHANICAL BRAIN CAN DO

There are many kinds of thinking that mechanical brains can do. Among

other things, they can:

1. Learn what you tell them.

2. Apply the instructions when needed.

3. Read and remember numbers.

4. Add, subtract, multiply, divide, and round off.

5. Look up numbers in tables.

6. Look at a result, and make a choice.

7. Do long chains of these operations one after another.

8. Write out an answer.

9. Make sure the answer is right.

10. Know that one problem is finished, and turn to another.

11. Determine _most_ of their own instructions.

12. Work unattended.

They do these things much better than you or I. They are fast. The

mechanical brain built at the Moore School of Electrical Engineering at

the University of Pennsylvania does 5000 additions a second. They are

reliable. Even with hundreds of thousands of parts, the existing giant

brains have worked successfully. They have remarkably few mechanical

troubles; in fact, for one of the giant brains, a mechanical failure

is of the order of once a month. They are powerful. The big machine

at Harvard can remember 72 numbers each of 23 digits at one time and

can do 3 operations with these numbers every second. The mechanical

brains that have been finished are able to solve problems that have

baffled men for many, many years, and they think in ways never open to

men before. Mechanical brains have removed the limits on complexity of

routine: the machine can carry out a complicated routine as easily as

a simple one. Already, processes for solving problems are being worked

out so that the mechanical brain will itself determine more than 99 per

cent of all the routine orders that it is to carry out.

But, you may ask, can they do any kind of thinking? The answer is no.

No mechanical brain so far built can:

1. Do intuitive thinking.

2. Make bright guesses, and leap to conclusions.

3. Determine _all_ its own instructions.

4. Perceive complex situations outside itself and interpret them.

A clever wild animal, for example, a fox, can do all these things; a

mechanical brain, not yet. There is, however, good reason to believe

that most, if not all, of these operations will in the future be

performed not only by animals but also by machines. Men have only just

begun to construct mechanical brains. All those finished are children;

they have all been born since 1940. Soon there will be much more

remarkable giant brains.

WHY ARE THESE GIANT BRAINS IMPORTANT?

Most of the thinking so far done by these machines is with numbers.

They have already solved problems in airplane design, astronomy,

physics, mathematics, engineering, and many other sciences, that

previously could not be solved. To find the solutions of these

problems, mathematicians would have had to work for years and years,

using the best known methods and large staffs of human computers.

These mechanical brains not only calculate, however. They also remember

and reason, and thus they promise to solve some very important human

problems. For example, one of these problems is the application of what

mankind knows. It takes too long to find understandable information

on a subject. The libraries are full of books: most of them we can

never hope to read in our lifetime. The technical journals are full of

condensed scientific information: they can hardly be understood by you

and me. There is a big gap between somebody’s knowing something and

employment of that knowledge by you or me when we need it. But these

new mechanical brains handle information very swiftly. In a few years

machines will probably be made that will know what is in libraries and

that will tell very swiftly where to find certain information. Thus

we can see that mechanical brains are one of the great new tools for

finding out what we do not know and applying what we do know.

Chapter 2

LANGUAGES:

SYSTEMS FOR HANDLING INFORMATION

As everyone knows, it is not always easy to think. By _thinking_,

we mean computing, reasoning, and other handling of information. By

_information_ we mean collections of ideas—physically, collections of

marks that have meaning. By _handling_ information, we mean proceeding

logically from some ideas to other ideas—physically, changing from

some marks to other marks in ways that have meaning. For example, one

of your hands can express an idea: it can store the number 3 for a

short while by turning 3 fingers up and 2 down. In the same way, a

machine can express an idea: it can store information by arranging some

equipment. The Harvard mechanical brain can store 132 numbers between

0 and 99,999,999,999,999,999,999,999 for days. When you want to change

the number stored by your fingers, you move them: perhaps you need a

half second to change the number stored by your fingers from 3 to 2,

for example. In the same way, a machine can change a stored number by

changing the arrangement of some equipment: the electronic brain Eniac

can change a stored number in ¹/₅₀₀₀ of a second.

LANGUAGES

Since it is not always easy to think, men have given much attention to

devices for making thinking easier. They have worked out many _systems

for handling information_, which we often call _languages_. Some

languages are very complete and versatile and of great importance.

Others cover only a narrow field—such as numbers alone—but in this

field they may be remarkably efficient. Just what is a language?

Every language is both a _scheme for expressing meanings_ and _physical

equipment_ that can be handled. For example, let us take _spoken

English_. The scheme of spoken English consists of more than 150,000

words expressing meanings, and some rules for putting words together

meaningfully. The physical equipment of spoken English consists of

(1) sounds in the air, and (2) the ears of millions of people, and

their mouths and voices, by which they can hear and speak the sounds

of English. For another example, let us take numbers expressed in

the _Arabic numerals_ and the rules of arithmetic. The scheme of

this language contains only ten digits 0, 1, 2, 3, 4, 5, 6, 7, 8, 9

or their equivalents, and some rules for combining them. Sufficient

physical equipment for this language might very well be a ten-column

desk calculating machine with its counter wheels, gears, keys, etc. If

we tried to exchange the physical equipment of these two languages, we

would be blocked: the desk calculating machine cannot possibly express

the meaningful combinations of 150,000 words, and sounds in the air

are not permanent enough to express the steps of division of one large

number by another.

SCHEMES FOR EXPRESSING MEANINGS

If we examine languages that have existed, we can observe a number of

schemes for expressing meanings. In the table on pp. 12-13 is a rough

list of a dozen of them. From among these we can choose the schemes

that are likely to be useful in mechanical brains. Schemes 11 and 12

are the schemes that have been predominantly used in machinery for

computing. Scheme 12 consisting of combinations of just two marks,

✓, ✕, provides one of the best codes for mechanical handling of

information. This scheme, called _binary coding_ (see Supplement 2), is

also useful for measuring the quantity of information.

QUANTITY OF INFORMATION

How should we measure the quantity of information? The smallest unit

of information is a “yes” or a “no,” a check mark (✓) or a cross (✕),

an impulse in a nerve or no impulse, a 1 or a 0, black or white,

good or bad, etc. This twofold difference is called a _binary digit_

of information (see Supplement 2). It is the convenient _unit of

information_.

SCHEMES FOR EXPRESSING MEANINGS

EXAMPLE:

/————————————————^—————————————————\

PRINCIPLE SIGN USED IN SIGNIFICANCE NAME OF

NO. OF SCHEME SCHEME

(1) (2) (3) (4) (5) (6)

_Sounds_

1. Sound of new Bobwhite[2] Spoken kind of quail, Imitative;

word is like English so called bowwow

sound of from its note theory

referent

2. An utterance Pooh![2] Spoken The speaker Pooh-pooh

becomes a English expresses theory

new word disdain

3. New word is Chortle[2] Spoken “Chuckle” Analogical

like another English; and

word invented by “snort”

Lewis Carroll, blended

1896

4. Word has Mother[2] Spoken Female Historical

been used English parent

through

the ages

_Sights_

5. Picture [picture Egyptian; Picture of Imitative;

is like of eye] Ojibwa eye and pictographic

referent (American tears, to

Indian) mean grief

6. Pattern is 5 English; Five; Ideographic;

symbol of French; cinq; mathematical;

an idea German; fünf; symbolic;

etc. etc. numeric

_Mapping of Sounds_

7. Object [picture Possible Picture of Rebus-

pictured of knot] English a knot to writing;

has the mean “not” phonographic

wanted

sound

8. Pattern is [picture Ancient Sign for Syllable-

symbol for of star] Cypriote the writing

a large (island of syllable

sound unit Cyprus) _mu_

9. Pattern is Ʒ International The sound Phonetic

symbol for Phonetic _zh_, as writing

a small Alphabet of _s_ in alphabetic

sound unit 87 characters “measure” writing;

_Mapping of Sights or Symbols_

10. Systematic ENIAC Abbreviations, Initial Alphabetic

combinations etc. letters coding

of 26 of a

letters 5-word

title

11. Systematic 135-03-1228 Abbreviations, Social Numeric

combinations nomenclature, Security coding

of 10 digits etc. No. of

a person

12. Systematic ✓,✕,✕,✓,✓ Checking “yes,” Binary

combinations lists, “no,” coding

of 2 marks etc. “no,”

“yes,”

“yes,”

respectively

[2] The preceding word is the spoken word, not the written one.

With 2 units of information or 2 binary digits (1 or 0) we can

represent 4 pieces of information:

00, 01, 10, 11

With 3 units of information we can represent 8 pieces of information:

000, 001, 010, 011, 100, 101, 110, 111

With 4 units of information we can represent 16 pieces of information:

0000 0001 0010 0011

0100 0101 0110 0111

1000 1001 1010 1011

1100 1101 1110 1111

Now 4 units of information are sufficient to represent a _decimal

digit_ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 and allow 6 possibilities to be

left over; 3 units of information are not sufficient. For example, we

may have:

0 0000 5 0101

1 0001 6 0110

2 0010 7 0111

3 0011 8 1000

4 0100 9 1001

We say, therefore, that a decimal digit 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 is

_equivalent_ to 4 units of information. Thus a table containing 10,000

numbers, each of 10 decimal digits, is equivalent to 400,000 units of

information.

One of the 26 letters of the alphabet is equivalent to 5 units

of information, for, 5 binary digits (1 or 0) have 32 possible

arrangements, and these are enough to provide for the 26 letters. Any

printed information in English can be expressed in about 80 characters

consisting of 10 numerals, 52 capital and small letters, and some 18

punctuation marks and other types of marks; 6 binary digits (1 or 0)

have 64 possible arrangements, and 7 binary digits (1 or 0) have 128

possible arrangements. Each character in a printed book, therefore, is

roughly equivalent to 7 units of information.

It can be determined that a big telephone book or a big reference

dictionary stores printed information at the rate of about 1 billion

units of information per cubic foot. If the 10 billion nerves in the

human brain could independently be impulsed or not impulsed, then the

human brain could conceivably store 10 billion units of information.

The largest library in the world is the Library of Congress, containing

7 million volumes including pamphlets. It stores about 100 trillion

units of information.

We can thus see the significance of a _quantity of information_ from

1 unit to 100 trillion units. No distinction is here made between

information that reports facts and information that does not. For

example, a book of fiction about persons who never existed is

still counted as information, and, of course, much instruction and

entertainment may be found in such a source.

PHYSICAL EQUIPMENT FOR HANDLING INFORMATION

The first thing we want to do with information is _store_ it. The

second thing we want to do is _combine_ it. We want equipment that

makes these two processes easy and efficient. We want equipment for

handling information that:

1. Costs little.

2. Holds much information in little space.

3. Is _permanent_, when we want to keep the information.

4. Is _erasable_, when we want to remove information.

5. Is _versatile_, holds easily any kind of information,

and allows operations to be done easily.

The amount of human effort needed to handle information correctly

depends very much on the properties of the physical equipment

expressing the information, although the laws of correct reasoning are

independent of the equipment. For example, the great difficulty with

spoken sounds as physical equipment for handling information is the

trouble of storing them. The technique for doing so was mastered only

about 1877 when Thomas A. Edison made the first phonograph. Even with

this advance, no one can glance at a soundtrack and tell quickly what

sounds are stored there; only by turning back the machine and listening

to a groove can we determine this. It was not possible for the men of

2000 B.C. to wait thousands of years for the storing of spoken sounds.

The problem of storing information was accordingly taken to other types

of physical equipment.

PHYSICAL EQUIPMENT FOR HANDLING INFORMATION

PHYSICAL ARRANGED OPERATED OR LOW LITTLE PERM- ERAS- VERS-

NO. OBJECTS IN OR ON PRODUCED BY COST? SPACE? ANENT? ABLE? ATILE?

(1) (2) (3) (4) (5) (6) (7) (8) (9)

_Mind_

1. Nerve Human Body ✕ ✓✓ ✓ ✓ ✓✓

cells brain

_Sounds_

2. Sounds Air Voice ✓✓ ✓✓ ✕✕ ✓✓ ✓✓

3. Sound- Wax Machines ✓ ✓ ✓✓ ✕ ✓✓

tracks cylinders, and

phonograph motors

records

_Sights_

4. Marks Sand Stick ✓ ✕ ✓ ✓✓ ✕

5. Colored Cave Paintbrush ✕ ✕ ✓ ✕ ✕✕

painting walls, and paints

canvases,

etc.

6. Marks, Clay, Stylus, ✕✕ ✓ ✓✓ ✕✕ ✓

inscript- stone chisel

ions

7. Marks Slate Chalk ✓ ✕ ✓ ✓✓ ✓

8. Marks Paper, Pen ✓✓ ✓ ✓ ✕ ✓✓

parchment, and ink,

etc. pencil

9. Letters, Paper, Printing ✓✓ ✓✓ ✓✓ ✕✕ ✓✓

etc. books, press,

etc. movable

type,

motor,

and hands

10. Photo- Film, Camera ✓ ✓✓ ✓ ✕✕ ✓✓

graphs prints,

etc.

11. Letters, Paper, Typewriter ✓ ✓✓ ✓ ✕ ✓✓

etc. mimeograph and

stencil, fingers

etc.

_Body_

12. Gestures Space Body ✓ ✕ ✕✕ ✓✓ ✕✕

13. Fingers Hands Body ✕ ✕ ✕✕ ✓✓ ✕✕

_Objects_

14. Pebbles Slab Hands ✓✓ ✓ ✓ ✓ ✕✕

15. Knots String Hands ✓✓ ✓ ✓ ✓ ✕✕

16. Tallies, Stick Knife ✓✓ ✓ ✓✓ ✕✕ ✕✕

notches

17. Beads Rods in Hands ✓ ✓ ✓ ✓✓ ✕✕

a frame,

abacus

18. Ruled Rulers, Hands, ✓ ✓ ✓ ✓ ✓

lines, scales, pressure,

pointers dials etc.

_Machines_

19. Counter Desk Motor ✓ ✓ ✓ ✓✓ ✓

wheels, calculating and

gears, machines, hands

keys, fire-control

lights, instruments,

etc. etc.

20. Punched Punch card Motor ✓✓ ✓✓ ✓ ✕ ✓✓

cards machinery, and

and teletype, input

paper etc. instructions

tape

21. Relays Dial Motor ✕ ✓ ✓ ✓✓ ✓✓

telephone, and

other input

machinery instructions

22. Elect- Machinery Motor ✓ ✓ ✓ ✓✓ ✓✓

ronic and

tubes input

instructions

23. Magnetic Machinery Motor ✓✓ ✓✓ ✓✓ ✓✓ ✓✓

surfaces: and

wire, input

tape, instructions

discs

24. Delay Machinery Motor ✕ ✓ ✕ ✓✓ ✓✓

lines: and

electric, input

acoustic instructions

25. Electro- Machinery Motor ✕ ✓✓ ✕ ✓✓ ✓✓

static and

storage input

tubes instructions

✓✓ yes, very.

✓ yes, adequately.

✕ not generally.

✕✕ not at all.

What are the types of physical equipment for handling information, and

which are the good ones? In the table on pp. 16-17 is a rough list of

25 types of physical equipment for handling information. ✓✓ means “yes,

very;” ✓ means “yes, adequately;” ✕ means “not generally;” ✕✕ means

“not at all.”

For example, our _fingers_ (see No. 13) as a device for handling

information are very expensive for most cases. They take up a good deal

of space. Certainly they are very temporary storage; any information

they may express is very erasable; and what we can express with them

alone is very limited. Yet, with a _typewriter_ (see No. 11), our

fingers become versatile and efficient. In fact, our fingers can make

4 strokes a second; we can select any one of about 38 keys; and, since

each key is equivalent to 5 or 6 units of information, the effective

speed of our fingers may be about 800 units of information a second.

LANGUAGES OF PHYSICAL OBJECTS

The use of pebbles (see No. 14) for keeping track of numerical

information is shown in the history of the words containing the

root _calc_-of the word _calculate_. The Latin word _calcis_ meant

pertaining to lime or limestone, and the Latin word _calculus_ derived

from it meant first a small piece of limestone, and later any small

stone, particularly a pebble used in counting. All three of these

meanings have left descendants: “chalk,” “calcite,” “calcium,” relating

in one way or another to lime; in medicine, “calculus,” referring to

stones in the kidneys or elsewhere in the body; and in mathematics,

“calculate,” “calculus,” referring to computations, once done with

pebbles.

The pebbles, and the slab (for which the ancient Greek word is _abax_)

on which they were arranged and counted, were later replaced, for ease

in handling, by groups of beads strung on rods and placed in a frame

(see No. 17). These constituted the _abacus_ (see Supplement 2 and the

figure there). This was the first calculating machine. It is still

used all over Asia; in fact, even today more people use the abacus for

accounting than use pencil and paper. The skill with which the abacus

can be used was shown in November 1946 in a well-publicized contest

in Japan. Kiyoshi Mastuzaki, a clerk in the Japanese communications

department, using the abacus, challenged Private Thomas Wood of the U.

S. Army, using a modern desk calculating machine, and defeated him in a

speed contest involving additions, subtractions, multiplications, and

divisions.

The heaps of small pebbles, the notches in sticks, and the abacus had

the advantage of being visible and comparatively permanent. Storing

and reading were relatively easy. They were rather compact and easy

to manipulate, certainly much easier than spoken words. But they were

subject to disadvantages also. Moving correctly from one arrangement

to another was difficult, since there was no good way for storing

intermediate steps so that the process could be easily verified.

Furthermore, these devices applied to specified numbers only. Also,

there was no natural provision for recording what the several numbers

belonged to. This had to be recorded with the help of another language,

writing.

The language of physical objects was picked up from obscurity by

the invention of motors and the demands of commerce and business.

Commencing in the late 1800’s, _desk calculating machines_ (see No. 19)

were constructed to meet mass calculation requirements. They would add,

subtract, multiply, and divide specific numbers with great accuracy

and speed. But until recently they still were adjuncts to the other

languages, for they provided figures one at a time for insertion in the

spaces on the ledger pages or calculation sheets where figures were

called for.

Beginning in the 1920’s, a remarkable change has taken place. Instead

of performing single operations, machines have been developed to

perform chains of operations with many kinds of information. One

of these machines is the _dial telephone_: it can select one of 7

million telephones by successive sorting according to the letters

and digits of a telephone number. Another of these machines is a

_fire-control instrument_, a mechanism for controlling the firing

of a gun. For example, in a modern anti-aircraft gun the mechanism

will observe an enemy plane flying at several hundred miles an hour,

convert the observations into gun-aiming directions, and determine the

aiming directions fast enough to shoot down the plane. _Punch-card

machinery_, machines handling information expressed as punched holes

in cards, enable the fulfillment of social security legislation, the

production of the census, and countless operations of banks, insurance

companies, department stores, and factories. And, finally, in 1942 the

first _mechanical brain_ was finished at Massachusetts Institute of

Technology.

THE CRUCIAL DEVICES FOR MECHANICAL BRAINS

Let us consider the two modern physical devices for handling

information which make mechanical brains possible. These are _relays_

and _electronic tubes_ (Nos. 21 and 22). The last three kinds of

equipment listed in the table (_magnetic surfaces_, No. 23; _delay

lines_, No. 24; and _electrostatic storage tubes_, No. 25) were not

included in any mechanical brains functioning by the middle of 1948.

The discussion of them is therefore put off to Chapter 10, where we

talk about the future design of mechanical brains.

[Illustration: FIG. 1. Relay]

Figure 1 shows a simple relay. There are two electrical circuits

here. One has two terminals—Pickup and Ground. The other has three

terminals—Common, Normally Open, and Normally Closed. When current

flows through the coil of wire around the iron, it makes the iron

a magnet; the magnet pulls down the flap of iron above, overcoming

the force of the spring. When there is no current through the coil,

the iron is not a magnet, and the flap is held up by the spring. Now

suppose that there is current in Common. When there is no current in

Pickup, the current from Common will flow through the upper contact, to

the terminal marked Normally Closed. When there is current in Pickup,

the current from Common will flow through the lower contact, to the

terminal marked Normally Open. Thus we see that a relay expresses a

“yes” or a “no,” a 1 or 0, a binary digit, a unit of information. A

relay costs $5 to $10. It is rather expensive for storing a single unit

of information. The fastest it can be changed from 1 to 0, or vice

versa, is about ¹/₁₀₀ of a second.

[Illustration: FIG. 2. Electronic tube.]

Figure 2 shows a simple electronic tube. It has three parts—the

Cathode, the Grid, and the Plate. The Grid actually is a coarse net

of metal wires. Electrons can flow from the Cathode to the Plate,

provided the voltage on the Grid is such as to permit them to flow.

So we can see that an electronic tube is a very simple on-off device

and expresses a “yes” or a “no,” a 1 or 0, a binary digit, a unit of

information. A simple electronic tube suitable for calculating purposes

costs 50 cents to a $1, only ⅒ the cost of a relay. It can be changed

from 1 to 0, or back again, in 1 millionth of a second.

Relays have been widely used in the mechanical brains so far built, and

electronic tubes are the essence of Eniac.

In the next chapter, we shall see how physical equipment for handling

information can be put together to make a simple mechanical brain.

Chapter 3

A MACHINE THAT WILL THINK:

THE DESIGN OF A VERY SIMPLE MECHANICAL BRAIN

We shall now consider how we can design a very simple machine that will

think. Let us call it Simon, because of its predecessor, Simple Simon.

SIMON, THE VERY SIMPLE MECHANICAL BRAIN

By designing Simon, we shall see how we can put together physical

equipment for handling information in such a way as to get a very

simple mechanical brain. At every point in the design of Simon, we

shall make the simplest possible choice that will still give us a

machine that: handles information, transfers information automatically

from one part of the machine to another, and has control over the

sequence of operations. Simon is so simple and so small, in fact, that

it could be built to fill up less space than a grocery-store box, about

4 cubic feet. If we know a little about electrical work, we will find

it rather easy to make Simon.

What do we do first to design the very simple mechanical brain, Simon?

SIMON’S FLESH AND NERVES—REPRESENTING INFORMATION

The first thing we have to decide about Simon is how information will

be represented: as we put it into Simon, as it is moved around inside

of Simon, and as it comes out of Simon. We need to decide what physical

equipment we shall use to make Simon’s flesh and nerves. Since we are

taking the simplest convenient solution to each problem, let us decide

to use: _punched paper tape_ for putting information in, _relays_ (see

Chapter 2) and wires for storing and transferring information, and

_lights_ for putting information out.

[Illustration: TWO-HOLED TAPE READER: Simon’s left ear that listens to

numbers and operations.

FOUR-HOLED TAPE READER: Simon’s right ear that listens to instructions.

LIGHT BULBS: Simon’s eyes that wink answers.

FIG. 1. Simon, the very simple mechanical brain.]

For the equipment inside Simon, we could choose either electronic tubes

or relays. We choose relays, although they are slower, because it is

easier to explain circuits using relays. We can look at a relay circuit

laid out on paper and tell how it works, just by seeing whether or not

current will flow. Examples will be given below. When we look at a

circuit using electronic tubes laid out on paper, we still need to know

a good deal in order to calculate just how it will work.

How will Simon perceive a number or other information by means of

punched tape, or relays, or lights? With punched paper tape having, for

example, 2 spaces where holes may be, Simon can be told 4 numbers—00,

01, 10, 11. Here the binary digit 1 means a hole punched; the binary

digit 0 means no hole punched. With 2 relays together in a register,

Simon can remember any one of the 4 numbers 00, 01, 10, and 11. Here

the binary digit 1 means the relay picked up or energized or closed; 0

means the relay not picked up or not energized or open. With 2 lights,

Simon can give as an answer any one of the 4 numbers 00, 01, 10, 11. In

this case the binary digit 1 means the light glowing; 0 means the light

off. (See Fig. 1.)

We can say that the two lights by which Simon puts out the answer

are his _eyes_ and say that he tells his answer by _winking_. We can

say also that the two mechanisms for reading punched paper tape are

Simon’s _ears_. One tape, called the _input tape_, takes in numbers

or operations. The other tape takes in instructions and is called the

_program tape_.

SIMON’S MENTALITY—POSSIBLE RANGE OF INFORMATION

We can say that Simon has a _mentality_ of 4. We mean not age 4 but

just the simple fact that Simon knows only 4 numbers and can do only 4

operations with them. But Simon can keep on doing these operations in

all sorts of routines as long as Simon has instructions. We decide that

Simon will know just 4 numbers, 0, 1, 2, 3, in order to keep our model

mechanical brain very simple. Then, for any register, we need only 2

relays; for any answer, we need only 2 lights.

Any calculating machine has a _mentality_, consisting of the whole

collection of different ideas that the machine can ever actually

express in one way or another. For example, a 10-place desk calculating

machine can handle numbers up to 10 decimal digits without additional

capacity. It cannot handle bigger numbers.

[Illustration: FIG. 2. Four directions.]

What are the 4 _operations with numbers_ which Simon can carry out?

Let us consider some simple operations that we can perform with just 4

numbers. Suppose that they stood for 4 directions in the order east,

north, west, south (see Fig. 2). Or suppose that they stood for a turn

counterclockwise through some right angles as follows:

0: Turn through 0°, or no right angles.

1: Turn through 90°, or 1 right angle.

2: Turn through 180°, or 2 right angles.

3: Turn through 270°, or 3 right angles.

Then we could have the operations of _addition_ and _negation_, defined

as follows:

ADDITION NEGATION

_c_ = _a_ + _b_ _c_ = -_a_

_b_: 0 1 2 3 _a_|_c_

_a_ +————————— ————+————

0 | 0 1 2 3 0 | 0

1 | 1 2 3 0 1 | 3

2 | 2 3 0 1 2 | 2

3 | 3 0 1 2 3 | 1

For example, the first table says, “1 plus 3 equals 0.” This means

that, if we turn 1 right angle and then turn in the same direction 3

more right angles, we face in exactly the same way as we did at the

start. This statement is clearly true. For another example, the second

table says, “2 is the negative of 2.” This means that, if we turn to

the left 2 right angles, we face in exactly the same way as if we turn

to the right 2 right angles, and this statement also is, of course,

true.

With only these two operations in Simon, we should probably find him a

little too dull to tell us much. Let us, therefore, put into Simon two

more operations. Let us choose two operations involving both numbers

and logic: in particular, (1) finding which of two numbers is greater

and (2) selecting. In this way we shall make Simon a little cleverer.

It is easy to teach Simon how to find which of two numbers is the

greater when all the numbers that Simon has to know are 0, 1, 2, 3. We

put all possible cases of two numbers _a_ and _b_ into a table:

_b_: 0 1 2 3

_a_+—————————

0 |

1 |

2 |

3 |

Then we tell Simon that we shall mark with 1 the cases where _a_ is

greater than _b_ and mark with 0 the cases where _a_ is not greater

than _b_:

GREATER THAN

_b_: 0 1 2 3

_a_+—————————

0 | 0 0 0 0

1 | 1 0 0 0

2 | 1 1 0 0

3 | 1 1 1 0

For example, “2 is greater than 3” is false, so we put 0 in the table

on the 2 line in the 3 column. We see that, for the 16 possible cases,

_a_ is greater than _b_ in 6 cases and _a_ is not greater than _b_ in

10 cases.

There is a neat way of saying what we have just said, using the

language of _mathematical logic_ (see Chapter 9 and Supplement 2).

Suppose that we consider the statement “_a_ is greater than _b_” where

_a_ and _b_ may be any of the numbers 0, 1, 2, 3. We can say that the

_truth value p_ of a _statement P_ is 1 if the statement is true and

that it is 0 if the statement is false:

_p_ = 1 if _P_ is true, 0 if _P_ is false

The truth value of a statement _P_ is conveniently denoted as _T_(_P_)

(see Supplement 2):

_p_ = _T_(_P_)

Now we can say that the table for the operation _greater than_ shows

the truth value of the statement “_a_ is greater than _b_”:

_p_ = _T_(_a_ > _b_)

Let us turn now to the operation _selection_. By _selecting_ we mean

choosing one number _a_ if some statement _P_ is true and choosing

another number _b_ if that statement is not true. As before, let _p_

be the truth value of that statement _P_, and let it be equal to 1 if

_P_ is true and to 0 if _P_ is false. Then the operation of selection

is fully expressed in the following table and logical formula (see

Supplement 2):

SELECTION _c_ = _a_·_p_ + _b_·(1 - _p_)

_p_: 0 0 0 0 1 1 1 1

_b_: 0 1 2 3 0 1 2 3

_a_+——————————————————

0 | 0 1 2 3 0 0 0 0

1 | 0 1 2 3 1 1 1 1

2 | 0 1 2 3 2 2 2 2

3 | 0 1 2 3 3 3 3 3

For example, suppose that _a_ is 2 and _b_ is 3 and the statement _P_

is the statement “2 is greater than 0.” Since this statement is true,

_p_ is 1, and

_a_·_p_ + _b_·(1 - _p_) = 2(1) + 3(0) = 2

This result is the same as selecting 2 if 2 is greater than 0 and

selecting 3 if 2 is not greater than 0.

Thus we have four operations for Simon that do not overstrain his

mentality; that is, they do not require him to go to any numbers other

than 0, 1, 2, and 3. These four operations are: addition, negation,

greater than, selection. We label these operations also with the

numbers 00 to 11 as follows: addition, 00; negation, 01; greater than,

10; selection, 11.

SIMON’S MEMORY—STORING INFORMATION

The _memory_ of a mechanical brain consists of physical equipment

in which information can be stored. Usually, each section of the

physical equipment which can store one piece of information is called

a _register._ Each register in Simon will consist of 2 relays. Each

register will hold any of 00, 01, 10, 11. The information stored in

a register 00, 01, 10, 11 may express a number or may express an

operation.

[Illustration: S1-2 Relay energized]

[Illustration: S1-1 Relay not energized

FIG. 3. Register _S_1 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 (_C_1, _C_2, _C_3), 1 to store the operation governing the

computer (_C_4), and 1 to store the result (_C_5). 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 _S_1, _S_2, _S_3, ··· _S_8. 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 _S_1 hold the number 2 (see Fig. 3)? The number 2 in

machine language is 10. Register _S_1 consists of two relays, _S_1-2

and _S_1-1. 10 stored in register _S_1 means that relay _S_1-2 will be

energized and that relay _S_1-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 _C_5 into _O_

or, more briefly,

_C_5 → _O_

But he does not understand this language. We must translate into

machine language, in this case punched holes in the program tape.

Naturally, the punched holes in the program tape must be able to

specify any sending register and any receiving register. There are 15

registers, and so we give them punched hole _codes_ as follows:

REGISTER CODE REGISTER CODE

_I_ 0001 _C_1 1010

_S_1 0010 _C_2 1011

_S_2 0011 _C_3 1100

_S_3 0100 _C_4 1101

_S_4 0101 _C_5 1110

_S_5 0110 _O_ 1111

_S_6 0111

_S_7 1000

_S_8 1001

To translate the direction of transfer of information, which we showed

as an arrow, we put on the program tape the code for the receiving

register first—in this case, output, _O_, 1111—and the code for the

sending register second—in this case, _C_5, 1110. The instruction

becomes 1111, 1110. The first time in any cycle that Simon listens with

his right ear, he knows that what he hears is the name of the receiving

register; and the second time that he listens, he knows that what he

hears is the name of the sending register. One reason for this sequence

is that any person or machine has to be prepared beforehand to absorb

or take in any information.

Now how do we tell Simon to add 1 and 2? On the input tape, we put:

Add 00

1 01

2 10

On the program tape, we need to put:

_I_ → _C_4

_I_ → _C_1

_I_ → _C_2

_C_5 → _O_

which becomes:

1101, 0001;

1010, 0001;

1011, 0001;

1111, 1110

THE USEFULNESS OF SIMON

Thus we can see that Simon can do such a problem as:

Add 0 and 3. Add 2 and the negative of 1.

Find which result is greater.

Select 3 if this result equals 2; otherwise select 2.

To work out the coding for this and like problems would be a good

exercise. Simon, in fact, is a rather clever little mechanical brain,

even if he has only a mentality of 4.

It may seem that a simple model of a mechanical brain like Simon

is of no great practical use. On the contrary, Simon has the same

use in instruction as a set of simple chemical experiments has: to

stimulate thinking and understanding and to produce training and skill.

A training course on mechanical brains could very well include the

construction of a simple model mechanical brain as an exercise. In this

book, the properties of Simon may be a good introduction to the various

types of more complicated mechanical brains described in later chapters.

The rest of this chapter is devoted to such questions as:

How do transfers of information actually take place

in Simon?

How does the computer in Simon work so that calculation

actually occurs?

How could Simon actually be constructed?

What follows should be skipped unless you are interested in these

questions and the burdensome details needed for answering them.

SIMON’S THINKING—TRANSFERRING INFORMATION

The first basic thinking operation for any mechanical brain is

transferring information automatically. Let us see how this is done in

Simon.

[Illustration: FIG. 4. Scheme of Simon.]

Let us first take a look at the scheme of Simon as a mechanical brain

(see Fig. 4). We have 1 input, 8 storage, 5 computer, and 1 output

registers, which are connected by means of transfer wires or a transfer

line along which numbers or operations can travel as electrical

impulses. This transfer line is often called the _bus_, perhaps because

it is always busy carrying something. In Simon the bus will consist of

2 wires, one for carrying the right-hand digit and one for carrying the

left-hand digit of any number 00, 01, 10, 11. Simon also has a number

of neat little devices that will do the following:

When any number goes into a register, the coils of the

relays of the register will be connected with the bus.

When any number goes out of a register, the contacts of

the relays of the register will be connected with the bus.

For example, suppose that in register _C_5 the number 2 is stored. In

machine language this is 10. That means the left-hand relay (_C_5-2) is

energized and the right-hand relay (_C_5-1) is not energized. Suppose

that we want to transfer this number 2 into the output register _O_,

which has been cleared. What do we do?

Let us take a look at a circuit that will transfer the number (see

Fig. 5). First we see two relays in this circuit. They belong to the

_C_5 register. The _C_5-2 relay is energized since it holds 1; current

is flowing through its coil, the iron core becomes a magnet, and the

contact above it is pulled down. The _C_5-1 relay is not energized

since it holds 0; its contact is not pulled down. The next thing we

see is two _rectifiers_. The sign for these is a triangle. These are

some modern electrical equipment that allow electrical current to

flow in only one direction. In the diagram, the direction is shown by

the pointing of the triangle along the wire. Rectifiers are needed to

prevent undesired circuits. Next, we see the bus, consisting of two

wires. One carries the impulses for left-hand or 2 relays, and the

other carries impulses for the right-hand or 1 relays. Next, we see

two relays, called the _entrance relays_ for the _O_ register. Current

from Source 1 may flow to these relays, energize them, and close their

contacts. When the first line of the program tape is read, specifying

the receiving register, the code 1111 causes Source 1 to be energized.

This fact is shown schematically by the arrow running from the program

tape code 1111 to Source 1. Finally, we see the coils of the two

relays for the Output or _O_ register. We thus see that we have a

circuit from the contacts of the _C_5 register through the bus to the

coils of the _O_ register.

[Illustration: FIG. 5. Transfer circuit.]

We are now ready to transfer information when the second line of the

program tape is read. This line holds 1110 and designates _C_5 as the

sending register and causes Source 2 to be energized. This fact is

shown schematically by the arrow running from the second line of the

program tape to Source 2. When the second line is read, current flows:

1. From Source 2.

2. Through the contacts of the _C_5 register if closed.

3. Through the rectifiers.

4. Through the bus.

5. Through the entrance relay contacts of the _O_ register.

6. Through the coils of the _O_ register relays, energizing

such of them as match with the _C_5 closed contacts; and

finally

7. Into the ground.

Thus relay _O_-2 is energized; it receives current because contact

_C_5-2 is closed. And relay _O_-1 is not energized; it receives no

current since contact _C_5-1 is open. So we have actually transferred

information from the _C_5 register to the _O_ register.

The same process in principle applies to all transfers:

The pattern of electrical impulses, formed by the positioning

of one register, is produced in the positioning of another

register.

SIMON’S COMPUTING AND REASONING

Now so far the computing registers in Simon are a mystery. We have said

that _C_1, _C_2, and _C_3 take in numbers 00, 01, 10, 11, that _C_4

takes in an operation 00, 01, 10, 11, and that _C_5 holds the result.

What process does Simon use so that he has the correct result in

register _C_5?

Let us take the simplest computing operation first and see what sort of

a circuit using relays will give us the result. The simplest computing

operation is _negation_. In negation, a number 00, 01, 10, 11 goes into

the _C_1 register, and the operation 01 meaning negation goes into the

_C_4 register, and the correct result must be in the _C_5 register. So,

first, we note the fact that the _C_4-2 relay must not be energized,

since it contains 0, and that the _C_4-1 relay must be energized, since

it contains 1.

Now the table for negation, with _c_ =-_a_, is:

_a_ | _c_

————+————

0 | 0

1 | 3

2 | 2

3 | 1

Negation in machine language will be:

_a_ | _c_

————+————

00 | 00

01 | 11

10 | 10

11 | 01

Now if _a_ is in the _C_1 register and if _c_ is in the _C_5 register,

then negation will be:

_C_1 | _C_5

—————+—————

00 | 00

01 | 11

10 | 10

11 | 01

But each of these registers _C_1, _C_5 will be made up of two relays,

the left-hand or 2 relay and the right-hand or 1 relay. So, in terms of

these relays, negation will be:

_C_1-2 _C_1-1 | _C_5-2 _C_5-1

——————————————+——————————————

0 0 | 0 0

0 1 | 1 1

1 0 | 1 0

1 1 | 0 1

Now, on examining the table, we see that the _C_5-1 relay is energized

if and only if the _C_1-1 relay is energized. So, in order to energize

the _C_5-1 relay, all we have to do is transfer the information from

_C_1-1 to _C_5-1. This we can do by the circuit shown in Fig. 6. (In

this and later diagrams, we have taken one more step in streamlining

the drawing of relay contacts: the contacts are drawn, but the coils

that energize them are represented only by their names.)

[Illustration: FIG. 6. Negation—right-hand digit.]

[Illustration: FIG. 7. Negation—left-hand digit.]

Taking another look at the table, we see also that the _C_5-2 relay

must be energized if and only if:

_C_1-2 AND _C_1-1

HOLDS: HOLDS:

0 1

1 0

A circuit that will do this is the one shown in Fig. 7. In Fig. 8 is a

circuit that will do all the desired things together: give the right

information to the _C_5 relay coils if and only if the _C_4 relays hold

01.

[Illustration: FIG. 8. Negation circuit.]

Let us check this circuit. First, if there is any operation other than

01 stored in the _C_4 relays, then no current will be able to get

through the _C_4 contacts shown and into the _C_5 relay coils, and the

result is blank. Second, if we have the operation 01 stored in the _C_4

relays, then the _C_4-2 contacts will not be energized—a condition

which passes current—and the _C_4-1 contacts will be energized—another

condition which passes current—and:

IF THE NUMBER AND THE _C_5 RELAYS

IN _C_1 IS: THEN _C_1-1: AND _C_1-2: ENERGIZED ARE:

0 does not close does not close neither

1 closes does not close _C_5-2, _C_5-1

2 does not close closes _C_5-2 only

3 closes closes _C_5-1 only

Thus we have shown that this circuit is correct.

We see that this circuit uses more than one set of contacts for several

relays (_C_1-2, _C_4-1, _C_4-2); relays are regularly made with 4, 6,

or 12 sets of contacts arranged side by side, all controlled by the

same pickup coil. These are called 4-, 6-, or 12-_pole_ relays.

[Illustration: FIG. 9. Addition circuit.]

[Illustration: FIG. 10. Greater-than circuit.]

Circuits for _addition_, _greater than_, and _selection_ can also be

determined rather easily (see Figs. 9, 10, 11). (_Note_: By means of

the _algebra of logic_, referred to in Chapter 9 and Supplement 2, the

conditions for many relay circuits, as well as the circuit itself, may

be expressed algebraically, and the two expressions may be checked by

a mathematical process.) For example, let us check that the addition

circuit in Fig. 9 will enable us to add 1 and 2 and obtain 3. We take

a colored pencil and draw closed the contacts for _C_1-1 (since _C_1

holds 01) and for _C_2-2 (since _C_2 holds 10). Then, when we trace

through the circuit, remembering that addition is stored as 00 in the

_C_4 relays, we find that both the _C_5 relays are energized. Hence

_C_5 holds 11, which is 3. Thus Simon can add 1 and 2 and make 3!

[Illustration: FIG. 11. Selection Circuit.]

PUTTING SIMON TOGETHER

In order to put Simon together and make him work, not very much is

needed. On the outside of Simon we shall need two small mechanisms for

reading punched paper tape. Inside Simon, there will be about 50 relays

and perhaps 100 feet of wire for connecting them. In addition to the 15

registers (_I_, _S_1 to _S_8, _C_1 to _C_5, and _O_), we shall need a

register of 4 relays, which we shall call the _program register_. This

register will store the successive instructions read off the program

tape. We can call the 4 relays of this register _P_8, _P_4, _P_2, _P_1.

For example, if the _P_8 and _P_2 relays are energized, the register

holds 1010, and this is the program instruction that calls for the 8th

plus 2nd, or 10th, register, which is _C_1.

For connecting receiving registers to the bus, we shall need a relay

with 2 poles, one for the 2-line and one for the 1-line, for each

register that can receive a number from the bus. For example, for

entering the output register, we actually need only one 2-pole relay

instead of the two 1-pole relays drawn for simplicity in Fig. 5. There

will be 13 2-pole relays for this purpose, since only 13 registers

receive numbers from the bus; registers _I_ and _C_5 do not receive

numbers from the bus. We call these 13 relays the _entrance relays_ or

_E relays_, since _E_ is the initial letter of the word entrance.

[Illustration: FIG. 12. Select-Receiving-Register circuit.]

The circuit for selecting and energizing the _E_ relays is shown in

Fig. 12. We call this circuit the _Select-Receiving-Register_ circuit.

For example, suppose that the _P_8 and _P_2 relays are energized. Then

this circuit energizes the _E_10 relay. The _E_10 relay closes the

contacts between the _C_1 relay coils and the bus; and so it connects

the _C_1 register to receive the next number that is sent into the bus.

This kind of circuit expresses a classification and is sometimes called

a _pyramid circuit_ since it spreads out like a pyramid. A similar

pyramid circuit is used to select the sending register.

We shall need a relay for moving the input tape a step at a time. We

shall call this relay the _MI relay_, for _m_oving _i_nput tape. We

also need a relay for moving the program tape a step at a time. We

shall call this relay the _MP relay_ for _m_oving _p_rogram tape. Here

then is approximately the total number of relays required:

RELAYS NAME NUMBER

_I_, _S_, _C_, _O_ Input, Storage, Computer, Output 30

_P_ Program 4

_E_ Entrance 13

_MI_ Move Input Tape 1

_MP_ Move Program Tape 1

————

Total 49

A few more relays may be needed to provide more contacts or poles. For

example, a single _P_1 relay will probably not have enough poles to

meet all the need for its contacts.

[Illustration: FIG. 13. Latch relay.]

Each cycle of the machine will be divided into 5 equal _time intervals_

or _times_ 1 to 5. The timing of the machine will be about as follows:

TIME ACTION

1 Move program tape. Move input tape if read out of in last

cycle.

2 Read program tape, determining the receiving register.

Read through the computing circuit setting up the

_C_5 register.

3 Move program tape. Energize the _E_ relay belonging

to the receiving register.

4 Read program tape again, determining the sending register.

5 Transfer information by reading through the

Select-Sending-Register circuit and the

Select-Receiving-Register circuit.

In order that information may remain in storage until wanted, register

relays should hold their information until just before the next

information is received. This can be accomplished by keeping current in

their coils or in other ways. There is a type of relay called a _latch

relay_, which is made with two coils and a latch. This type of relay

has the property of staying or latching in either position until the

opposite coil is impulsed (see Fig. 13). This type of relay would be

especially good for the registers of Simon.

If any reader sets to work to construct Simon, and if questions arise,

the author will be glad to try to answer them.

Chapter 4

COUNTING HOLES:

PUNCH-CARD CALCULATING MACHINES

When we think of counting, we usually think of saying softly to

ourselves “one, two, three, four, ···.” This is a good way to find the

total of a small group of objects. But when we have a large group of

objects or a great many groups of objects to be counted, a much faster

way of counting is needed. A very fast way of sorting and counting is

_punch-card calculating machinery_. This is machinery which handles

information expressed as holes in cards. _Punch-card machines_ can:

Sort, count, file, select, and copy information,

Make comparisons, and choose according to instructions,

Add, subtract, multiply, and divide,

List information, and print totals.

For example, in a life insurance company, much routine handling of

information about insurance policies is necessary:

Writing information on newly issued policies.

Setting up policy-history cards.

Making out notices of premiums due.

Making registers of policies in force, lapsed, died, etc.,

for purposes of valuation as required by law or good

management.

Calculating and tabulating premium rates, dividend rates,

reserve factors, etc.

Computing and tabulating expected and actual death rates;

and much more.

All these operations can be done almost automatically by punch-card

machines.

ORIGIN AND DEVELOPMENT

When a census of the people of a country is taken, a great quantity of

sorting and counting is needed: by village, county, city, and state;

by sex; by age; by occupation; etc. In 1886, the census of the people

of the United States which had been taken in 1880 was still being

sorted and counted. Among the men then studying census problems was

a statistician and inventor, Herman Hollerith. He saw that existing

methods were so slow that the next census (1890) would not be finished

before the following census (1900) would have to be begun. He knew

that cards with patterns of holes had been used in weaving patterns

in cloth. He realized that the presence or absence of a property, for

example employed or unemployed, could be represented by the presence

or absence of a hole in a piece of paper. An electrical device could

detect the hole, he believed, since it would allow current to flow

through, whereas the absence of the hole would stop the current. He

experimented with sorting and counting, using punched holes in cards,

and with electrical devices to detect the holes and count them. A

definite meaning was given to each place in the card where a hole might

be punched. Then electrical devices handled the particular information

that the punches represented. These devices either counted or added,

singly or in various combinations, as might be desired.

More than 50 years of development of punch-card calculating machinery

have since then taken place. Several large companies have made

quantities of punch-card machines. A great degree of development has

taken place in the punch-card machines of International Business

Machines Corporation (IBM), and for this reason these machines will

be the ones described in this chapter. What is said here, however,

may also in many ways apply to punch-card machines made by other

manufacturers—Remington-Rand, Powers, Control Instrument, etc.

GENERAL PRINCIPLES

To use punch-card machines, we first convert the original information

into patterns of holes in cards. Then we feed the cards into the

machines. Electrical impulses read the pattern of holes and convert

them into a pattern of timed electrical currents. Actually, the

reading of a hole in a column of a punch card is done by a brush of

several strands of copper wire pressed against a metal roller (Fig.

1). The machine feeds the card (the bottom edge first, where the 9’s

are printed) with very careful timing over the roller; and, when the

punched hole is between the brush and the roller, an electrical circuit

belonging to that column of the card is completed. The machine responds

according to its general design and its wiring for the particular

problem: it punches new cards, or it prints new marks, or it puts

information into new storage places. Clerks, however, move the cards

from one machine to another. They wait on the machines, keep the card

feeds full, and empty the card hoppers as they fill up. A human error

of putting the wrong block of cards into a machine may from time to

time cause a little trouble, especially in sorting. Actually, in a

year, billions of punch cards are handled precisely.

[Illustration: FIG. 1. Reading of punch cards.]

The _punch card_ is a masterpiece of engineering and standardization.

Its exact thickness matches the knife-blade edges that feed the cards

into slots in the machines, and matches the channels whereby these

cards travel through the machines. The standard card is 7⅜ inches long

and 3¼ inches wide, and it has a standard thickness of 0.0065 inch and

other standard properties with respect to stiffness, finish, etc.

[Illustration: FIG. 2. Scheme of standard punch card. (Note: Positions

11 and 12 are not usually marked by printed numbers or letters.)]

The standard IBM punch card of today has 80 _columns_ and 12

_positions_ for punching in each column (Fig. 2). A single punched

hole in each of the positions known as 0 to 9 stands for each of the

digits 0 to 9 respectively. The remaining 2 single punch positions

available in any column are usually called the _11 position_ and _12

position_ (though sometimes called the numerical _X position_ and _Y

position_). These two positions do not behave arithmetically as 11 and

12. Actually, in the space between one card and the next card as they

are fed through the machines, more positions occur. For example, there

may be 4 more: a 10 position preceding the 9, and a 13, a 14, and a

15 position following the 12. The 16 positions in total correspond to

a full turn, 360°, of the roller under the brush, and to a complete

_cycle_ in the machine; and a single position corresponds to ¹/₁₆ of

360°, or 22½°. In some machines, the total number of positions may be

20. A pair of punches stands for each of the letters of the alphabet,

according to the scheme shown.

A 12-1 J 11-1 Unused 0-1

B 12-2 K 11-2 S 0-2

C 12-3 L 11-3 T 0-3

D 12-4 M 11-4 U 0-4

E 12-5 N 11-5 V 0-5

F 12-6 O 11-6 W 0-6

G 12-7 P 11-7 X 0-7

H 12-8 Q 11-8 Y 0-8

I 12-9 R 11-9 Z 0-9

For example, the word MASON is shown punched in Fig. 3.

[Illustration: FIG. 3. Alphabetic punching.]

[Illustration: FIG. 4. Single-panel plugboard.]

To increase the versatility of the machines and provide them with

instructions, many of them have _plugboards_ (Fig. 4). These are

standard interchangeable boards filled with prongs on one side and

holes or terminals called _hubs_ on the other side. The side with the

prongs connects to the ends of electrical circuits in the punch-card

machine, which are brought together in one place for the purpose.

On the other side of the board, using plugwires, we can connect the

hubs to each other in different ways to produce different results.

The single-panel plugboard is 10 inches long and 5¾ inches wide. It

contains 660 hubs in front and 660 corresponding prongs in the back.

A double-panel plugboard or a triple-panel plugboard applies to some

machines. In less time than it takes to describe it, we can take one

wired-up plugboard out of a machine and put in a new wired-up plugboard

and thus change completely the instructions under which the machine

operates. Many of the machines have a number of different switches that

we must also change, when going from one kind of problem to another.

The numbers that are stored or sorted in punch-card machines may be

of any size up to 80 digits, one in each column of the punch card. In

doing arithmetic (adding, subtracting, multiplying, and dividing),

however, the largest number of digits is usually 10. Beyond 10 digits,

we can work out tricks in many cases.

TYPES OF PUNCH-CARD MACHINES

The chief IBM punch-card machines are: the _key punch_, the _verifier_,

the _sorter_, the _interpreter_, the _reproducer_, the _collator_, the

_multiplying punch_, the _calculating punch_, and the _tabulator_. Of

these 9 machines, the last 6 have plugboards and can do many different

operations as a result.

There is a flow of punch cards through each of these machines. The

machines differ from each other in the number and relation of the

paths of flow, or _card channels_, and in the number and relation of

the momentary stopping places, or _card stations_, at which cards are

read, punched, or otherwise acted on. We can get a good idea of what a

machine is from a picture of these card channels.

Key Punch

We use a key punch (Fig. 5) to punch original information into

blank cards. In the key punch there is one card channel; it has one

entrance, one station, and one exit. At the card station, there are

12 _punching dies_, one for each position in the card column, and

each card column is presented one by one for punching. The numeric

_keyboard_ (Fig. 6) for the key punch has 14 keys:

One key for each of the

punches 0 to 9, 11, and 12,

A _space key_, which allows a

column of the punch card to

go by with no punch in it,

A _release key_, which ejects the

card and feeds another card.

[Illustration: FIG. 5. Key punch.]

[Illustration: FIG. 6. Keyboard of key punch.]

Of course, in using a key punch, we must punch the same kind of

information in the same group of columns. For example, if these cards

are to contain employees’ social security numbers, we must punch that

number always in the same card columns, numbered, say, 15 to 23, or 70

to 78, etc.

Verifier

The verifier is really the same machine as the key punch, but it has

dull punching dies moving gently instead of sharp ones moving with

force. It turns on a red light and stops when there is no punched hole

in the right spot to match with a pressed key.

Sorter

The sorter is a machine for sorting cards, one column at a time (Fig.

7). The sorter has a card channel that forks; it has one entrance,

one station, and 13 exits. Each exit corresponds to: one of the 12

punch positions 0 to 9, 11, and 12; or _reject_, which applies when the

column is nowhere punched. It has one card station where a brush reads

a single column of the card. We can turn a handle and move the brush to

any column.

[Illustration: FIG. 7. Sorter.]

Interpreter

The interpreter takes in a card, reads its punches, prints on the card

the marks indicated by the punches, and stacks the card. We call this

process _interpreting_ the card, since it translates the punched holes

into printed marks. The interpreter (Fig. 8) has one card channel, with

one entrance, 2 card stations, and one exit. What the machine does at

the second card station depends on what the machine reads at the first

card station and on what we have told the machine by switches and

plugboard wiring to do.

[Illustration: FIG. 8. Interpreter.]

Reproducer

The reproducer or reproducing punch can:

_Reproduce_, or copy the punches in one group of

cards into another group of cards (in the same or

different columns).

_Compare_, or make sure that the punches in two

groups of cards agree (and shine a red light if

they do not).

_Gang punch_, or copy the punches in a _master card_

into a group of _detail cards_.

_Summary punch_, or copy totals or summaries obtained

in the tabulator into blank cards in the reproducer.

[Illustration: FIG. 9. Reproducer.]

The reproducer (Fig. 9) has 2 independent card channels, the cards not

mingling in any way, called the _reading channel_ and the _punching

channel_. We can run the machine with only the punching channel

working; in fact, IBM equips some models only with the punching

channel, particularly for “summary punch” operation. The machine

is timed so that, when any card is at the middle station in either

channel, then the next preceding card is at the latest station, and

the next following card is at the earliest station. At 5 stations, the

machine reads a card. At the middle station of the punching channel,

the machine punches a card. Using a many-wire cable, we can connect

the tabulator to the reproducer and so cause the tabulator to give

information electrically to the reproducer. This connection makes

possible the “summary punch” operation. Here is an instance with

punch-card machines where, in order to transfer information from one

machine to another, we are not required to move cards physically from

one machine to another.

Collator

The collator is a machine that arranges or _collates_ cards. It is

particularly useful in selecting, matching, and merging cards. The

collator (Fig. 10) has 2 card channels which join and then fork into 4

channels ending in pockets called _Hoppers_ 1, 2, 3, and 4. The 2 card

feeds are called the _Primary Feed_ and the _Secondary Feed_. Cards

from the Primary Feed may fall only into the first and second hoppers.

Cards from the Secondary Feed may fall only into the second, third, and

fourth hoppers. The collator has 3 stations at which cards may be read.

[Illustration: No.1--Selected primaries

No.2--Merged cards and unselected primaries

No.3--Separate secondaries not selected

No.4--Selected secondaries

FIG. 10. Collator.]

IBM can supply additional wiring called the _collator counting device_.

With this we can make the collator count cards as well as compare them.

For example, we could put 12 blank cards from the Secondary Feed behind

each punched-card from the Primary Feed in order to prepare for some

other operation.

Calculating Punch

The calculating punch was introduced in 1946. It is a versatile machine

of considerable capacity. It adds, subtracts, multiplies, and divides.

It also has a control over a sequence of operations, in some cases up

to half a dozen steps.

This machine (Fig. 11) has one card channel with 4 stations called,

respectively, _control brushes_, _reading brushes_, _punch feed_, and

_punching dies_. At station 1, there are 20 brushes; we can set these

by hand to read any 20 of the 80 card columns. At station 2 there are

80 regular reading brushes. At station 3 the card waits for a part

of a second while the machine calculates, and, when that is done,

the card is fed into station 4, where it is punched or verified. The

multiplying punch is an earlier model of the calculating punch, without

the capacity for division.

[Illustration: FIG. 11. Calculating punch.]

Tabulator

The tabulator can select and list information from cards. Also, it can

total information from groups of cards in _counters_ of the tabulator

and can print the totals.

[Illustration: FIG. 12. Tabulator.]

The tabulator (Fig. 12) has one card channel with two stations where

cards may be read, called the _Upper Brushes_ and _Lower Brushes_.

When the Lower Brush station is reading one card, the Upper Brush

station is reading the next card. The tabulator also has another

channel, which is for endless paper (and sometimes separate sheets or

cards). This channel has one station; here printing takes place. Unlike

the typewriter, the tabulator prints a whole row at a time. It can

print up to 88 numerals or letters across the sheet in one stroke. The

cards flowing through the card channel and the paper flowing through

the paper channel do not have to move in step; in fact, we need many

different time relations between them, and the number of rows printed

on the paper may have almost any relation to the number of punch cards

flowing through the card channel.

At the station where paper is printed, we can put on the machine a

mechanism called the _automatic carriage_. This is like a typewriter

carriage, which holds the paper for a typewriter, but we can control

the movement of paper through the automatic carriage by plugboard

wiring, switch settings, and holes in punch cards. Thus we can arrange

for headings, spacing, and feeding of new sheets to be controlled by

the information and the instructions, with a great deal of versatility.

HANDLING INFORMATION

We have now described briefly the chief available punch-card machines

as of the middle of 1948. The next question is: How do we actually get

something done by means of punch cards? Let us go back to the census

example, even though it may not be a very typical example, and see what

would be done if we wished to compile a census by punch cards.

The first thing we do is plan which columns of the punch card will

contain what information about the people being counted. For example,

the following might be part of the plan:

NO. OF

INFORMATION POSSIBILITIES COLUMNS

State 60 1- 2

County 1,000 3- 5

Township 10,000 6- 9

City or village 10,000 10-13

Sex 2 14

Age last birthday 100 15-16

Occupation 100,000 17-21

... ... ...

Under the heading state, we know that there are 48 states, the District

of Columbia, and several territories and possessions—all told, perhaps

60 possibilities. So, 2 punch-card columns are enough: they will allow

100 different sets of punches from 00 to 99 to be put in them. We then

assign the _code_ 00 to Maine, 01 to New Hampshire, 02 to Vermont,

etc., or we might assign the code 00 to Alabama, 01 to Arizona, 02

to Arkansas, etc.—whichever would be more useful. Under the other

headings, we do the same thing: count the possibilities; assign codes.

In this case, it will be reasonable to use numeric codes 0 to 9 in each

column in all places because we shall have millions of cards to deal

with and numeric codes can be sorted faster than alphabetic codes.

Alphabetic codes require 2 punched holes in each column, and sorting

any column takes 2 operations.

The punch cards are printed with the chosen headings. We set up

the codes in charts and give them to clerks. Using key punches and

verifiers, they punch up the cards and check them. They work from the

original information collected by the census-taker in the field. Since

the original information will come in geographically, probably only one

geographic code at a time will be needed, and it will be simple to keep

track of. As to occupation, however, it may be useful to assign other

clerks full-time to examining the original information and specifying

the right code for the occupation. Then the clerks who do the punching

will have only copying to do.

The great bulk of the work with the census will be sorting, counting,

and totaling. The original punch cards will be summarized into larger

and larger groups. For example, the cards for all males age 23 last

birthday living in the state of Massachusetts are sorted together. This

group of cards may be put into a tabulator wired to a summary punch.

When the tabulator has counted the last card of this group, the summary

punch punches one card, showing the total number in this group. Some

time later a card like this will be ready for every state. Then the

whole group of state cards may be fed into the tabulator wired to the

reproducer acting as summary punch. When totaled, the number of males

age 23 last birthday in the United States will be punched into a single

card. After more compiling, a card like this will be ready for all

males in the United States at each age. Then this group of cards may

be fed into the tabulator wired to the summary punch. Each card may

be listed by the tabulator on the paper flowing through it, showing

the age and the number of males living at that age. At the end of the

listing, the tabulator will print the total number of all males in the

list, and the summary punch will punch a card containing this total.

ARITHMETICAL OPERATIONS

Punch-card machines can perform the arithmetical operations of

counting, adding, subtracting, multiplying, dividing, and rounding off.

Counting

Counting can be done by the sorter, the tabulator, and the collator.

The tabulator can print the total count. The tabulator and summary

punch wired together can put the total count automatically into another

punch card. The sorter shows the count in dials.

Adding and Subtracting

Adding and subtracting can be done by the tabulator, the calculating

punch, and the multiplying punch. In the calculating and multiplying

punches, the sum or difference is usually punched into the same card

from which the numbers were first obtained. The tabulator, however,

obtains the result first in a counter; from the counter, it can be

printed on paper or punched into a blank card with the aid of the

summary punch.

Numbers are handled as groups of decimal digits, and the machines

mirror the properties of digits in the decimal system. Negative numbers

are usually handled as _complements_ (see Supplement 2). For example,

if we have in the tabulator a counter with a capacity of six digits,

the number-000013 is stored in the counter as the complement 999987.

We cannot store in the counter the number +999987, since we cannot

distinguish it from-000013. In other words, if a counter is to be used

for both positive and negative numbers, its capacity is actually one

digit less, since in the last decimal place on the left 0 will mean

positive and 9 will mean negative.

Multiplying and Dividing

Multiplying is done in the calculating and multiplying punches. In

both cases, the multiplication table is built into the circuits of

the machine, and the system of _left-hand components_ and _right-hand

components_ is used (see Supplement 2).

Dividing is done in the calculating punch and is carried out in that

machine much as in ordinary arithmetic. By means of an estimating

circuit the calculating punch guesses what multiple of the divisor will

go into the dividend. Then it determines that multiple and tries it.

Rounding Off

Rounding off may be done in 3 punch-card machines, the calculating

and multiplying punches, and the tabulator. For example, suppose we

have the numbers 49.1476, 68.5327, and we wish to round them off to

2 decimal places. The results will be 49.15 and 68.53. For the first

number, we raise the .0076, turning .1476 into .15, since .0076 is more

than .005. For the second number, we drop the .0027 since it is less

than .005.

Each of these punch-card machines provides what is called a _5 impulse_

in each machine cycle. When the number is to be rounded off, the 5

impulse is plugged into the first decimal place that is to be dropped,

and it is there added. If the figure in the decimal place to be dropped

is 0 to 4, the added 5 makes no difference in the last decimal place

that is to be kept. But, if the figure in the decimal place to be

dropped is 5 to 9, then the added 5 makes a carry into the last decimal

place that is to be kept, increasing it by 1, and this is just what is

wanted for rounding off.

LOGICAL OPERATIONS

Punch-card machines do many operations of reasoning or logic that do

not involve addition, subtraction, multiplication, or division. Just

as we can write equations for arithmetical operations, so we can write

equations for these logical operations using mathematical logic (see

Chapter 9 and Supplement 2). If any reader, however, is not interested

in these logical equations, he should skip each paragraph that begins

with “in the language of logic,” or a similar phrase.

Translating

Reading and writing are operations perhaps not strictly of reasoning

but of _translating_ from one language to another. Basically these

operations take in a mark in one language and give out a mark with the

same meaning in another language. For example, the interpreter takes in

punched holes and gives out printed marks, but the holes and the marks

have the same meaning.

The major part of sorting is done by a punch-card sorting machine and

can be considered an operation of translating. In sorting a card, the

machine takes in a mark in the form of a punched hole on a punch card

and specifies a place bearing the same mark where the card is put. The

remaining part of sorting is done by human beings. This part consists

of picking up blocks of cards from the pockets of the sorter and

putting the blocks together in the right sequence.

Comparing

[Illustration: FIG. 13. Comparer.]

The first operation of reasoning done by punch-card machines is

_comparing_. For an example of comparing in the operation of the

tabulator, let us take instructing the machine when to pick up a total

and print it. As an illustration, suppose that we are making a table

by state, county, and township of the number of persons counted in a

census. Suppose that for each township we have one punch card telling

the total number of persons. If all the cards are in sequence, then,

whenever the county changes, we want a minor total, and, whenever the

state changes, we want a major total. What does the machine do?

The tabulator has a mechanism that we shall call a _comparer_ (Fig.

13). A comparer has 2 inputs that may be called _Previous_ and

_Current_ and one output that may be called _Unequal_. The comparer

has the property of giving out an impulse if and only if there is a

difference between the 2 inputs.

In the language of the algebra of logic (see Supplement 2 and Chapter

9), let the pieces of information coming into the comparer be _a_ and

_b_, and let the information coming out of the comparer be _p_. Then

the equation of the comparer is:

_p_ = _T_(_a_ ≠ _b_)

where “_T_ (···)” is “the truth value of ···” and “···” is a statement,

and where the truth value is 1 if true and 0 if false.

In wiring the tabulator so that it can tell when to total, we use the

comparer. We feed into it the county from the current card and the

county from the previous card. Out of the comparer we get an impulse if

and only if these two pieces of information are different. This is just

what happens when the county changes. The impulse from the comparer is

then used in further wiring of the tabulator: it makes the counter that

is busy totaling the number of persons in the county print its total

and then clear. In the same way, another comparer, which watches state

instead of county, takes care of major totals when the state changes.

Selecting

The next operation of reasoning which punch-card machines can do

is _selecting_. The tabulator, collator, interpreter, reproducer,

and calculating punch all may contain mechanisms that can select

information. These mechanisms are called _selectors_.

For example, suppose that we are using the tabulator to make a table

showing for each city the number of males and the number of females.

In the table we shall have three columns: first, city; second, males;

third, females. Suppose that each punch card in columns 30 to 36 shows

the total of males or females in a city. Suppose that, if and only if

the card is for females, it has an X punch (or 11 punch) in column 79.

What do we want to have happen? We want the number in columns 30 to 36

to go into the second column of the table if there is no X in column

79, and we want it to go into the third column of the table if there is

an X in column 79. This is just another way of saying that we want the

number to go into the males column if it is a number of males, and into

the females column if it is a number of females. We make this happen by

using a selector.

A selector (Fig. 14) is a mechanism with 2 inputs and 2 outputs. The

2 inputs are called _X Pickup_ and _Common_. The 2 outputs are called

_X_ and _No X_. The X Pickup, as its name implies, watches for X’s.

The Common takes in information. What comes out of X is what goes into

Common if and only if an X punch is picked up; otherwise nothing comes

out. What comes out of No X is what goes into Common if and only if an

X punch is not picked up; otherwise nothing comes out. From the point

of view of ordering punch-card equipment, we should note that there are

two types of selectors: _X selectors_ or _X distributors_, which have a

selecting capacity of one column—that is, one decimal digit—and _class

selectors_, which ordinarily have a selecting capacity of 10 columns or

10 decimal digits. But we shall disregard this difference here, as we

have disregarded most other questions of capacity in multiplication,

division, etc.

[Illustration: FIG. 14. Selector.]

In the language of logic (see Chapter 9 and Supplement 2), if _p_,

_a_, _b_, _c_ are the information in X Pickup, Common, X, and No X,

respectively, then the equations for a selector are:

_b_ = _a_·_p_

_c_ = _a_·(1 - _p_)

Returning now to the table we wish to make, we connect columns 30 to

36 of the punch card to Common. We connect column 79 of the punch card

to the X Pickup. We connect the output No X to the males column of the

table. We connect the output X to the females column of the table. In

this way we make the number in the punch card appear in either one of

two places in the table according to whether the number counts males or

females.

We might mention several more properties of selectors. A selector can

be used in the reverse way, with X Pickup, X, and No X as inputs and

Common as output (Fig. 15). What will come out of Common is (1) what

goes into input No X if there is no X punch in the column to which

input X Pickup is wired, and (2) what goes into input X if there is an

X punch in the column to which input X Pickup is wired.

In this case the logical equation for the selector is:

_a_ = _bp_ + _c_(1 - _p_)

Also, selectors can be used one after another, so that selecting based

on 2 or 3 X punches can be made.

[Illustration: FIG. 15. Selector.]

In the language of logic, if _p_, _q_, _r_ are the truth values of

“there is an X punch in column _i_, _j_, _k_,” respectively, then by

means of selectors we can get such a function as:

_c_ = _apq_ + _b_(1 - _q_)(1 - _r_)

Also, a selector may often be energized not only by an X punch but

also by a punch 0, 1, 2, ···, 9 and 12. In this case, the selector is

equipped with an additional input that can respond to any digit. This

input is called the Digit Pickup.

Digit Selector

Something like an ordinary selector is another mechanism called a

_digit selector_ (Fig. 16). This has one input, Common, and 12 outputs,

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12. This mechanism is often included

in the tabulator and may be included in other punch-card machines. For

example, suppose that we want to do something if and only if column 62

of a punch card contains a 3 or a 4 or a 9. Then we connect a brush

that reads column 62 of the punch card to the Common input of the digit

selector. And we connect out from the digit selector jointly from

outputs 3, 4, and 9.

[Illustration: FIG. 16. Digit selector.]

In the language of logic, if _a_ is the digit going into Common, and if

_p_ is the impulse coming out of the digit selector, then the equation

of the mechanism in this case is:

_p_ = _T_(_a_ = 3, 4, 9)

Sequencer

A fourth operation of reasoning done by punch-card machines is finding

that one number is greater than, or equal to, or less than another.

This operation is done in the collator and may be called _sequencing_.

For example, suppose that we have a file of punch cards for cities,

showing in columns 41 to 48 the number of people. Suppose that we wish

to pick out the cards for cities over 125,000 in population. Now the

collator has a mechanism that has 2 inputs and 3 outputs (Fig. 17). We

may call this mechanism a _sequencer_, since it can tell the sequence

of two numbers. What goes into the _Primary_ input is a number: let us

call it _a_. What goes into _Secondary_ is another number: let us call

it _b_. An impulse comes out of _Low Primary_ if _a_ is less than _b_.

An impulse comes out of _Equal_ if _a_ equals _b_. An impulse comes out

of _Low Secondary_ if _a_ is greater than _b_.

[Illustration: FIG. 17. Sequencer.]

In the language of logic, if _p_, _q_, _r_ are the three indications in

Low Primary, Equal, and Low Secondary, then:

_p_ = _T_(_a_ < _b_)

_q_ = _T_(_a_ = _b_)

_r_ = _T_(_a_ > _b_)

Returning to our example, we punch up a card with 125,000 in columns 43

to 48, and we put this card into the Secondary Feed. We take the punch

cards for cities and put them into the Primary Feed. In the plugboard,

we connect the hubs of the Secondary Brushes (that read the card in

the Secondary Feed), columns 43 to 48, to the Secondary input of the

Sequencer. We connect the hubs of the Primary Brushes (that read the

card in the Primary Feed), columns 41 to 48, to the Primary input of

the Sequencer. Then we connect the Low Primary output of the Sequencer

to a device that causes the city card being examined to fall into

pocket 1. We connect Equal output and Low Secondary output to a device

that causes the city card being examined to fall into pocket 2. Then,

when the card for any city comes along, the machine compares the number

of people in the city with 125,000. If the number is greater than

125,000, the card will fall into pocket 1; otherwise the card will fall

into pocket 2. At the end of the run, we shall find in pocket 1 all the

cards we want.

NEW DEVELOPMENTS

We may expect to see over the next few years major developments in

punch-card machinery. It would seem likely that types of punch-card

machines like the following might be constructed:

A punch-card machine that performs any arithmetical or

logical operation at high speed and may perform a dozen

such operations in sequence during the time that a punch

card passes through the machine.

A punch-card machine that uses loops of punched paper

tape, which express either a sequence of values in a table

that the machine can consult or a sequence of instructions

that govern the operations of the machine.

Punch-card machinery that uses a larger card than the

80-column card.

A punch-card machine that may have a fairly large amount

of internal memory, perhaps 30 or 40 registers where

numbers or words may be stored and referred to.

SPEED

The speed of various operations with present IBM punch-card machines is

about as shown in the table.

MACHINE OPERATION TIME IN SECONDS

Key punch Punch 80 columns About 20 to 40

Verifier Check 80 columns About 20 to 40

Sorter Sort 1 card on 1 column 0.15

Interpreter Print 1 line 0.8

Reproducer Reproduce a card, all 80 columns 0.6

Collator Merge 2 cards 0.25

Multiplying punch Multiply by 8 digits 5.6

Calculating punch Add 0.3

Calculating punch Multiply by 8 digits 3.6

Calculating punch Divide, obtaining 8 quotient digits 9.0

Tabulator Print 1 line, numbers only 0.4

Tabulator Print 1 line, letters included 0.75

Tabulator Add numbers from 1 card 0.4

COST

Punch-card machines may be either rented or purchased from some

manufacturers but only rented from others. If we take the cost of a

clerk as $120 to $150 a month, the monthly rent of most punch-card

machines ranges from ⅒ of the cost of a clerk for the simplest type

of machine, such as a key punch, to 3 times the cost of a clerk for a

complicated and versatile type of machine, such as a tabulator with

many attachments. The rental basis is naturally convenient for many

kinds of jobs.

RELIABILITY

The reliability of work with punch cards and punch-card machines is

often much better than 99 per cent: in 10,000 operations, failures

should be less than 2 or 3. This is, of course, much better than with

clerical operations.

There are a number of causes for machine or card failures. Sometimes

cards may be warped and may not feed into the machines properly. Or,

the air in the room may be very dry, and static electricity may make

the cards stick together. Or, the air may be too humid; the cards may

swell slightly and may jam in the machine. A punch may get slightly

out of true alignment, and punches in the cards may be slightly off. A

relay may get dust on its contact points and, from time to time, fail

to perform in the right way. Considerable engineering effort has been

put into remedying these and other troubles, with much success.

To make sure that we have correct results from human beings working

with punch-card machines, we may verify each process. Information

that is punched on the key punch may be verified on the verifier.

Multiplications done with multiplicand _a_ and multiplier _b_ may be

repeated and compared with multiplications done with multiplicand _b_

and multiplier _a_. Cards that are sorted on the sorter may be put

through the collator to make sure that their sequence is correct. It

is often good to plan every operation so that we have a proof that the

result is right.

It is standard practice to have the machines inspected regularly in

order to keep them operating properly. On the average, for every 50 to

75 machines, there will be one full-time service man maintaining them

and taking care of calls for repairs. Of course, as with any machinery,

some service calls will be a result of the human element; for example,

a problem may have been set up wrongly on a machine.

GENERAL USEFULNESS

Punch-card calculations are much faster and more accurate than hand

calculations. With punch cards, work is organized so that all cases

are handled at the same time in the same way. This process is very

different from handling each case separately from start to finish. As

soon as the number of cases to be handled is more than a hundred and

each item of information is to be used five or more times, punch cards

are likely to be advantageous, provided other factors are favorable.

Vast quantities of information have been handled very successfully by

punch-card machines. Over 30 scientific and engineering laboratories in

the United States are doing computation by punch cards. Over a billion

punch cards, in fact, are used annually in this country.

Chapter 5

MEASURING:

MASSACHUSETTS INSTITUTE OF TECHNOLOGY’S

DIFFERENTIAL ANALYZER NO. 2

In the previous chapter we talked about machines that move information

expressed as holes in cards. In this chapter we shall talk about

machines that move information expressed as measurements.

ANALOGUE MACHINES

A simple example of a device that uses a measurement to handle

information is a doorpost. Here the height of a child may be marked

from year to year as he grows (Fig. 1). Or, suppose that we have a

globe of the world and wish to find the shortest path between Chicago

and Moscow. We may lay a piece of string on the globe, pull it tight

between those points, and then measure the string on a scale to see

about what distance it shows (Fig. 2).

Machines that handle information as measurements of physical quantities

are called _analogue_ machines, because the measurement is _analogous_

to, or like, the information. A common example of analogue machine

is the _slide rule_. With this we calculate by noting the positions

of ruled lines on strips that slide by each other. These strips are

made of fine wood, or of plastic, or of steel, in such fashion that

the ruled lines will hold true positions and not warp. If we space

the rulings so that 1, 2, 3, 4, 5, 6 ··· are equally spaced, then the

slide rule is useful for addition (Fig. 3). But if we space the rulings

so that _powers_ (for example, powers of two—1, 2, 4, 8, 16, 32 ···)

(Fig. 4) are equally spaced, we can do multiplication. The spacings

are then according to the _logarithms_ of numbers (see Supplement 2).

Multiplication is more troublesome than addition, and so more slide

rules are made for multiplication than for addition.

[Illustration: FIG. 1. Measurement by doorpost.]

[Illustration: FIG. 2. Measurement by string.]

[Illustration: FIG. 3. Slide Rule for adding.]

[Illustration: FIG. 4. Slide Rule for multiplying.]

During World War II, the aiming and firing of guns against hostile

planes was done by machine. After sighting a plane, these machines

automatically calculated how to direct fire against it. They were

much better and faster than any man. These _fire-control instruments_

were analogue machines with steel and electrical parts built to fine

tolerances. With care we can get accuracy of 1 part in 10,000 with

analogue machines, but greater accuracy is very hard to get.

PHYSICAL QUANTITIES

Suppose that we wish to make an analogue machine. We need to represent

information by a measurement of something. What should we select?

What physical thing to be measured should we choose to put into the

machine? Different amounts of this _physical quantity_ will match with

different amounts of the measurement being expressed. In the case of

the doorpost, the string, and the slide rule, the physical quantity

is distance. In many fire-control instruments, the physical quantity

is the _amount of turning of a shaft_ (Fig. 5). Many other physical

quantities have from time to time been used in analogue machines,

such as electrical measurements. The speedometer of an automobile

tells distance traveled and speed. It is an analogue machine. It uses

the amount of turning of a wheel, and some electrical properties.

It handles information by means of measurements. The basic physical

quantity that it measures is the amount of turning of a shaft.

[Illustration: FIG. 5. Measurement by amount of turning of a shaft.]

DIFFERENTIAL ANALYZER

The biggest and cleverest mechanical brain of the analogue type which

has yet been built is the _differential analyzer_ finished in 1942

at Massachusetts Institute of Technology in Cambridge, Mass. The

fundamental physical quantity used in this machine is the amount of

turning of a shaft. The name _analyzer_ means an apparatus or machine

for analyzing or solving problems. It happens that the word “analyzer”

has been used rather more often in connection with analogue machines,

and so in many cases the word “analyzer” carries the meaning “analogue”

as well. The word “differential” in the phrase “differential analyzer”

refers to the main purpose of the machine: it is specially adapted for

solving problems involving _differential equations_. Now what is a

differential equation?

DIFFERENTIAL EQUATIONS

In order to explain what a differential equation is, we need to use

certain ideas. These ideas are: _equation_; _formula_; _function_;

_rate of change_; _interval_; _derivative_; and _integral_. In the

next few paragraphs, we shall introduce these ideas briefly, with

some explanation and examples. It is entirely possible for anyone to

understand these ideas rather easily, by collecting true statements

about them; no one should feel that because these ideas may be new they

cannot be understood readily.

PHYSICAL PROBLEMS

In physics, chemistry, mechanics, and other sciences there are many

problems in which the behavior of distance, of time, of speed, heat,

volume, electrical current, weight, acceleration, pressure, and many

other _physical quantities_ are related to each other. Examples of such

problems are:

[Illustration: FIG. 6. Paths of a shot from a gun, trajectories.]

What are the various angles to which a gun should be raised

in order that it may shoot various distances? (See Fig. 6.)

(The paths of a shot from a gun are called _trajectories_.)

If a plane flies in a direction always at the same angle from

the north, how much farther will it travel than if it flew

along the shortest path? (See Fig. 7.) (A path always at the same

angle from the north is called a _loxodrome_, and a shortest

path on a globe is called a _great circle_.)

How should an engine be designed so that it will have the least

vibration when it moves fast?

In _physical problems_ like these, the answer is not a single number

but a _formula_. What we want to do in any one of these problems is

find a formula so that any one of the quantities may be calculated,

given the behavior of the others. For example, here is a familiar

problem in which the answer is a formula and not a number:

[Illustration: FIG. 7. Paths of a flight.]

[Illustration: FIG. 8. Room formulas.]

How are the floor area of a room, its length,

and its width related to each other? (See Fig. 8.)

The answer is told in any one of three _equations_:

(_floor area_) EQUALS (_length_) TIMES (_width_)

(_length_) EQUALS (_floor area_) DIVIDED BY (_width_)

(_width_) EQUALS (_floor area_) DIVIDED BY (_length_)

The first equation shows that the floor area depends on the length of

the room and also on the width of the room. So we say floor area is a

_function_ of length and width. This particular function happens to be

_product_, the result of multiplication. In other words, floor area is

equal to the product of length and width.

Now there is another kind of function called a _differential function_

or _derivative_. A _differential function_ or _derivative_ is an

_instantaneous rate of change_. An instantaneous rate of change

is the result of two steps: (1) finding a rate of change over an

_interval_ and then (2) letting the interval become smaller and smaller

indefinitely. For example, suppose that we have the problem:

How are speed, distance, and time related to each other?

One of the answers is:

(_speed_) EQUALS THE INSTANTANEOUS RATE OF CHANGE OF (_distance_)

WITH RESPECT TO (_time_)

Or we can say, and it is just the same thing in other words:

(_speed_) EQUALS THE DERIVATIVE OF (_distance_)

WITH RESPECT TO (_time_)

Now we can tell what a differential equation is. It is simply an

equation in which a derivative occurs, such as the last example.

Perhaps the commonest kind of equation in physical problems is the

differential equation.

SOLVING PHYSICAL PROBLEMS

Now we were able to change the equation about floor area into other

forms, if we wanted to find length or width instead of floor area. When

we did this, we ran into the _inverse_ or opposite of multiplication:

division.

In the same way, we can change the equation about speed into other

forms, if we want to find distance or time instead of speed. If we

do this, we run into a new idea, the inverse or opposite of the

derivative, called _integral_. The two new equations are:

(_distance_) EQUALS THE INTEGRAL OF (_speed_)

WITH RESPECT TO (_time_)

(_time_) EQUALS THE INTEGRAL OF [ONE DIVIDED BY (_speed_)]

WITH RESPECT TO (_distance_)

These equations may also be called differential equations.

An integral is the result of a process called _integrating_. To

integrate speed and get distance is the result of three steps: (1)

breaking up an interval of time into a large number of small bits, (2)

adding up all the small distances that we get by taking each bit of

time and multiplying by the speed which applied in that bit of time,

and (3) letting the bits of time get smaller and smaller, and letting

the number of them get larger and larger, indefinitely.

In other words,

(_total distance_) EQUALS THE SUM OF ALL THE SMALL (_distances_),

EACH EQUAL TO: A BIT OF (_time_)

MULTIPLIED BY THE (_speed_) APPLYING TO THAT BIT

This is another way of saying as before,

(_distance_) EQUALS THE INTEGRAL OF (_speed_)

WITH RESPECT TO (_time_)

To solve a differential equation, we almost always need to integrate

one or more quantities.

ORIGIN AND DEVELOPMENT OF THE DIFFERENTIAL ANALYZER

For at least two centuries, solving differential equations to answer

physical problems has been a main job for mathematicians. Mathematics

is supposed to be logical, and perhaps you would think this would

be easy. But mathematicians have been unable to solve a great many

differential equations; only here and there, as if by accident, could

they solve one. So they often wished for better methods in order to

make the job easier.

A British mathematician and physicist, William Thomson (Lord Kelvin),

in 1879 suggested solving differential equations by a machine. He went

further: he described mechanisms for integrating and other mathematical

processes, and how these mechanisms could be connected together in a

machine. No such machine was then built; engineering in those years

was not equal to it. In 1923, a machine of this type for solving the

differential equations of trajectories was proposed by L. Wainwright.

In 1925, at Massachusetts Institute of Technology, the problem of a

machine to solve differential equations was again being studied by Dr.

Vannevar Bush and his associates. Dr. Bush experimented with mechanisms

that would integrate, add, multiply, etc., and methods of connecting

them together in a machine. A major part of the success of the machine

depended on a device whereby a very small turning force would do a

rather large amount of work. He developed a way in which the small

turning force, about as small as a puff of breath, could be used to

tighten a string around a drum already turning with a considerable

force, and thus clutch the drum, bring in that force, and do the work

that needed to be done. You may have watched a ship being loaded, seen

a man coil a rope around a _winch_, and watched him swing a heavy load

into the air by a slight pull on the rope (Fig. 9). If so, you have

seen this same principle at work. The turning force (or _torque_) that

pulls on the rope is greatly increased (or _amplified_) by such a

mechanism, and so we call it a _torque amplifier_.

[Illustration: FIG. 9. Increasing turning force; winch, or torque

amplifier.]

By 1930, Dr. Bush and his group had finished the first differential

analyzer. It was entirely mechanical, having no electrical parts except

the motors. It was so successful that a number of engineering schools

and manufacturing businesses have since then built other machines of

the Bush type. Each time, some improvements were made in accuracy and

capacity for solving problems. But, if you changed from one problem

to another on this type of machine, you had to do a lot of work with

screwdrivers and wrenches. You had to undo old mechanical connections

between shafts and set up new ones. Accordingly, in 1935, the men at

MIT started designing a second differential analyzer. In this one you

could make all the connections electrically.

MIT finished its second differential analyzer in 1942, but the fact

was not published during World War II, for the machine was put to work

on important military problems. In fact, a rumor spread and was never

denied that the machine was a white elephant and would not work. The

machine was officially announced in October 1945. It was the most

advanced and efficient differential analyzer ever built. We shall

talk chiefly about it for the rest of this chapter. A good technical

description of this machine is in a paper, “A New Type of Differential

Analyzer,” by Vannevar Bush and Samuel H. Caldwell, published in the

_Journal of the Franklin Institute_ for October 1945.

GENERAL ORGANIZATION OF MIT DIFFERENTIAL ANALYZER NO. 2

A differential analyzer is basically made up of shafts that turn.

When we set up the machine to solve a differential equation, we

assign one shaft in the machine to each quantity referred to in the

equation. It is the job of that shaft to keep track of that quantity.

The total amount of turning of that shaft at any time while the

problem is running measures the size of that quantity at that time.

If the quantity decreases, the shaft turns in the opposite direction.

For example, if we have speed, time, and distance in a differential

equation, we label one shaft “speed,” another shaft “time,” and another

shaft “distance.” If we wish, we may assign 10 turns of the “time”

shaft to mean “one second,” 2 turns of the “distance” shaft to mean

“one foot,” and 4 turns of the “speed” shaft to mean “one foot per

second.” These are called _scale factors_. We could, however, use any

other convenient units that we wished.

By just looking at a shaft or a wheel, we can tell what part of a

full turn it has made—a half, or a quarter, or some other part—but we

cannot tell by looking how many full turns it has made. In the machine,

therefore, there are mechanisms that record not only full turns but

also tenths of turns. These are called _counters_. We can connect a

counter to any shaft. When we want to know some quantity that a shaft

and counter are keeping track of, we read the counting mechanism.

The second differential analyzer, which MIT finished in 1942, went a

step further than any previous one. In this machine, a varying number

can be expressed either (1) mechanically as the amount of turning of

a shaft, or (2) electrically as the amount of two _voltages_ in a

pair of wires. The MIT men did this by means of a mechanism called an

_angle-indicator_.

Angle indicators have essentially three parts: a _transmitter_, a

_receiver_, and switches. The transmitter (Fig. 10) can sense the exact

amount that a shaft has turned and give out a voltage in each of two

wires which tells exactly how much the shaft has turned (Fig. 11). The

receiving device (Fig. 12), which has a motor, can take in the voltages

in the two wires and drive a second shaft, making it turn in step with

the first shaft. By means of the switchboard (Fig. 13), the two wires

from the transmitter of any angle-indicator can lead anywhere in the

machine and be connected to the receiver of any other angle indicator.

[Illustration: FIG. 10. Scheme of angle-indicator transmitter.]

[Illustration: FIG. 11. Indication of angle.]

[Illustration: FIG. 12. Scheme of angle-indicator receiver.]

In a differential analyzer, we can connect the shafts together in many

different ways. For example, suppose that we want one shaft _b_ to

turn twice as much as another shaft _a_. For this to happen we must

have a mechanism that will connect shaft _a_ to shaft _b_ and make

shaft _b_ turn twice as much as shaft _a_. We can draw the scheme of

this mechanism in Fig. 14: a box, standing for any kind of simple or

complicated mechanism; a line going into it, standing for input of

the quantity _a_; a line going out of it, standing for output of the

quantity _b_; and a statement saying that _b_ equals 2_a_.

[Illustration: FIG. 13. Switchboard.]

One mechanism that will make shaft _b_ turn twice as much as shaft _a_

is a _pair of gears_ such that: (1) they mesh together and (2) the gear

on shaft _a_ has twice as many teeth as the gear on shaft _b_ (Fig.

15). On the mechanical differential analyzer that MIT finished in 1930,

a pair of gears was the mechanism actually used for doubling. To make

one shaft turn twice as much as another by this device, we would: go

over to the machine with a screwdriver; pick out from a box two gears,

one with twice as many teeth as the other; slide them onto the shafts

that are to be connected; make the gears mesh together; and screw them

tight on their shafts.

[Illustration: FIG. 14. Scheme of a doubling mechanism.]

[Illustration: FIG. 15. Example of a doubling mechanism.]

On the MIT differential analyzer No. 2, however, we are better off. A

much more convenient device for doubling is used. We make use of: a

_gearbox_ in whichthere are two shafts that may be geared so that one

turns twice as much as the other, and two angle-indicator transmitters

and receivers. Looking at the drawing (Fig. 16), we can see that: shaft

_a_ drives shaft _c_ to turn in step, shaft _c_ drives shaft _d_ to

turn twice as much, and shaft _d_ drives shaft _b_ to turn in step.

Here we can accomplish doubling by closing the pairs of switches that

connect to the gearbox shafts.

[Illustration: Angle indicators: T, transmitters, and R, receivers

FIG. 16. Another example of a doubling mechanism.]

Above, we have talked about a mechanism with gears that would multiply

the amount of turning by the _constant ratio_ 2. But, of course, in a

calculation, any ratio, say 7.65, 3.142, ···, might be needed, not only

2. In order to handle various constant ratios, gearboxes of two kinds

are in differential analyzer No. 2. The first kind is a _one-digit

gearbox_. It can be set to give any of 10 ratios, 0.1, 0.2, 0.3, ···,

1.0. The second kind is a _four-digit gearbox_. It can be set to give

any one of more than 11 thousand ratios, 0.0000, 0.0001, 0.0002, ···,

1.1109, 1.1110. We can thus multiply by constant ratios.

Adders

We come now to a new mechanism, whose purpose is to add or subtract the

amount of turning of two shafts. It is called an _adder_. The scheme

of it is shown in Fig. 17: an input shaft with amount of turning _a_,

another input shaft with amount of turning _b_, and an output shaft

with amount of turning _a_ + _b_. The adder essentially is another

kind of gearbox, called a _differential gear assembly_. This name is

confusing: the word “differential” here has nothing to do with the

word “differential” in “differential analyzer.” This mechanism is very

closely related to the “differential” in the rear axle of a motor car,

which distributes a driving thrust from the motor to the two rear

wheels of the car.

[Illustration: FIG. 17. Scheme of an adder mechanism.]

[Illustration: FIG. 18. Example of an adding mechanism (differential

gear assembly).]

A type of differential gear assembly that will add is shown in Fig. 18.

This is a set of 5 gears _A_ to _E_. The 2 gears _A_ and _B_ are input

gears. The amount of their turning is _a_ and _b_, respectively. They

both mesh with a third gear, _C_, free to turn, but the axis of _C_

is fastened to the inside rim of a fourth, larger gear, _D_. Thus _D_

is driven, and the amount of its turning is (_a_ + _b_)/2. This gear

meshes with a gear _E_ with half the number of teeth, and so the amount

of turning of _E_ is _a_ + _b_.

We can subtract the turning of one shaft from the turning of another

simply by turning one of the input shafts in the opposite direction.

Integrators

Another mechanism in a differential analyzer, and the one that makes

it worth while to build the machine, is called an _integrator_. This

mechanism carries out the process of integrating, of adding up a very

large number of small changing quantities. Figure 19 shows what an

integrator is. It has three chief parts: a _disc_, a little _wheel_,

and a _screw_. The round disc turns horizontally on its vertical shaft.

The wheel rests on the disc and turns vertically on its horizontal

shaft. The screw goes through the support of the disc; when the screw

turns, it changes the distance between the edge of the wheel and the

center of the disc.

[Illustration: FIG. 19. Mechanism of integrator.]

Now let us watch this mechanism move. If the disc turns a little bit,

the wheel pressing on it must turn a little bit. If the screw turns a

small amount, the distance between the edge of the wheel and the center

of the disc changes. The amount that the wheel turns is doubled if its

distance from the center of the disc is doubled, and halved if that

distance is halved. So we see that:

(_the total amount that the wheel turns_) EQUALS

THE SUM OF ALL THE SMALL (_amounts of turning_),

EACH EQUAL TO: A BIT OF (_disc turning_)

MULTIPLIED BY THE (_distance from the center

of the disc to the edge of the wheel_) APPLYING

TO THAT BIT

If we look back at our discussion of integrating (p. 72), we see that

the capital words here are just the same as those used there. Thus we

have a mechanism that expresses integration:

(_the total amount that the wheel turns_) EQUALS THE INTEGRAL OF

(_the distance from the center of the disc to the wheel_)

WITH RESPECT TO (_the amount that the disc turns_)

The scheme of this mechanism is shown in Fig. 20.

For example, suppose that the screw measures the speed at which a car

travels and that the disc measures time. The wheel, consequently, will

measure distance traveled by the car. The mechanism INTEGRATES speed

with respect to time and gives distance.

[Illustration: FIG. 20. Scheme of integrator.]

This mechanism is the device that Lord Kelvin talked about in 1879 and

that Dr. Bush made practical in 1925. The mechanical difficulty is to

make the friction between the disc and the wheel turn the wheel with

enough force to do other work. In the second differential analyzer, the

angle indicator set on the shaft of the wheel solves the problem very

neatly.

[Illustration: FIG. 21. Graph of air resistance coefficient.]

Function Tables

The behavior of some physical quantities can be described only by a

series of numbers or a graphic curve. For example, the _resistance_ or

_drag_ of the air against a passing object is related to the speed of

the object in a rather complicated way. Part of the relation is called

the _drag coefficient_ or _resistance coefficient_; a rough graph of

this is shown in Fig. 21. This graph shows several interesting facts:

(1) when the object is still, there is no air resistance; (2) as it

travels faster and faster, air resistance rapidly increases; (3) when

the object travels with the speed of sound, resistance is very great

and increases enormously; (4) but, when the object starts traveling

with a speed about 20 per cent faster than sound, the drag coefficient

begins to decrease. This drawing or _graph_ shows in part how air

resistance depends on speed of object; in other words, it shows the

drag coefficient as a _function_ of speed (see Supplement 2).

[Illustration: FIG. 22. Pointer following graph.]

Now we need a way of putting any function we wish into a differential

analyzer. To do this, we use a mechanism called a _function table_. We

draw a careful graph of the function according to the scale we wish to

use, and we set the graph on the outside of a large drum (Fig. 22).

For example, we can put the resistance coefficient graph on the drum;

the speed (or _independent variable_) goes around the drum, and the

resistance coefficient (or _dependent variable_) goes along the drum.

The machine slowly turns the drum, as may be called for by the problem.

A girl sits at the function table and watches, turning a handwheel

that keeps the sighting circle of a pointer right over the graph. The

turning of the handwheel puts the graphed function into the machine.

Instead of employing a person, we can make one side of the graph black,

leaving the other side white, and put in a _phototube_ (an electronic

tube sensitive to amount of light) that will steer from pure black or

pure white to half and half (see Fig. 23).

We do not need many function tables to put in information, because we

can often use integrators in neat combinations to avoid them. We shall

say more about this possibility later.

We can also use a function table to put out information and to draw a

graph. To do so, we disconnect the handwheel; we connect the shaft of

the handwheel to the shaft that records the function we are interested

in; we take out the pointer and put in a pen; and we put a blank sheet

of graph paper around the drum.

[Illustration: FIG. 23. Phototube following graph.]

We have now described the main parts of the second MIT differential

analyzer. They are the parts that handle numbers. We can now tell the

capacity of the differential analyzer by telling the number of main

parts that it holds:

Shafts About 130

One-digit gearboxes 12

Four-digit gearboxes 16

Adders About 16

Integrators 18

Function tables 3

On a simpler level, we can say that the machine holds these physical

parts:

Miles of wire About 200

Relays About 3000

Motors About 150

Electronic tubes About 2000

INSTRUCTING THE MIT DIFFERENTIAL ANALYZER NO. 2

Besides the function tables for putting information into the machine,

there are three mechanisms that read punched paper tape. The three

tapes are called the _A tape_, the _B tape_, and the _C tape_. From

these tapes the machine is set up to solve a problem.

Suppose that we have decided how the machine is to solve a problem.

Suppose that we know the number of integrators, adders, gearboxes,

etc., that must be used, and know how their inputs and outputs are

to be connected. To carry out the solution, we now have to put the

instructions and numbers into the machine.

The _A_ tape contains instructions for connecting shafts in the

machine. Each instruction connects a certain output of one type

of mechanism (adder, etc.) to a certain input of another type of

mechanism. When the machine reads an instruction on this tape, it

connects electrically the transmitting angle-indicator of an output

shaft to the receiving angle-indicator of another input shaft.

Now the connecting part of the differential analyzer behaves as if

it were very intelligent: it assigns an adder or an integrator or a

gearbox, etc., to a new problem only if that mechanism is not busy. For

example, if a problem tape calls for adder 3 (in the list belonging to

the problem), the machine will assign the first adder that is not busy,

perhaps adder 14 (in the machine), to do the work. Each time that adder

3 (in the problem list) is called for in the _A_ tape, the machine

remembers that adder 14 was chosen and assigns it over again. This

ability, of course, is very useful.

The _B_ tape contains the ratios at which the gearboxes are to be set.

For example, suppose that we want gearbox 4 (in the problem list) to

change its input by the ratio of 0.2573. The machine, after reading the

_A_ tape, has assigned gearbox 11 (in the machine list). Then, when the

machine reads the _B_ tape, it sets the ratio in gearbox 11 to 0.2573.

The answer to a differential equation is different for different

starting conditions. For example, when we know speed and time and wish

to find distance traveled and where we have arrived, we must know the

point at which we started. We therefore need to arrange the machine so

that we can put in different starting conditions (or different _initial

conditions_, as the mathematician calls them).

The _C_ tape puts the initial conditions into the machine. For example,

reading the _C_ tape for the problem, the machine finds that 3000

should, at the start of the problem, stand in counter 4. The machine

then reads the number at which counter 4 actually stands, say 6728.3.

It subtracts the two numbers and remembers the difference, -3728.3.

And whenever the machine reads that counter later, finding, say, 9468.4

in it, first the 3728.3 is subtracted, and then the answer 5740.1 is

printed.

ANSWERS

Information may come out of the machine in either one of two ways: in

printed numbers or in a graph. In fact, the same quantity may come out

of the machine in both ways at the same time. To obtain a graph, we

change a function table from input to output, put a pen on it, and have

it draw the graph.

The machine has 3 electric typewriters. The machine will take numerical

information out of the counters at high speed even while they are

turning, and it will put the information into relays. Then it will read

from the relays into the typewriter keys one by one while they type

from left to right across the page.

HOW THE DIFFERENTIAL ANALYZER CALCULATES

Up to this point in this chapter, the author has tried to tell the

story of the differential analyzer in plain words. But for reading

this section, a little knowledge of calculus is necessary. (See also

Supplement 2.) If you wish, skip this section, and go on to the next

one.

We have described how varying quantities, or _variables_, are operated

on in the machine in one way or another: adding, subtracting,

multiplying by a constant, referring to a table, and integrating. What

do we do if we wish to multiply 2 variables together? A neat trick is

to use the formula:

_xy_ = ⌠_x dy_ + ⌠_y dx_

⌡ ⌡

To multiply in this way requires 2 integrators and 1 adder. The

connections that are made between them are as follows:

Shaft _x_ To Integrator 1, Screw

Shaft _x_ To Integrator 2, Disc

Shaft _y_ To Integrator 1, Disc

Shaft _y_ To Integrator 2, Screw

Integrator 1, Wheel To Adder 1, Input 1

Integrator 2, Wheel To Adder 1, Input 2

Adder 1, Output To Shaft expressing _xy_

A product of 2 variables _under the integral sign_ can be obtained a

little more easily, because of the curious powers of the differential

analyzer. Thus, if it is desired to obtain ∫_xy dt_, we can use the

formula:

┌ ┐

⌠ ⌠ │ ⌠ │

│_xy dt_ = │_x d_│ │ _y dt_ │

⌡ ⌡ │ ⌡ │

└ ┘

and this operation does not require an adder. The connections are as

follows:

Shaft _t_ To Integrator 1, Disc

Shaft _y_ To Integrator 1, Screw

Integrator 1, Wheel To Integrator 2, Disc

Shaft _x_ To Integrator 2, Screw

Integrator 2, Wheel To Shaft expressing ∫_xy dt_

In order to get the quotient of 2 variables, _x_/_y_, we can use some

more tricks. First, the _reciprocal_ 1/_y_ can be obtained by using the

two _simultaneous equations_:

⌠ 1 ⌠ 1

│ ———— _dy_ = log _y_, │ - ———— _d_(log _y_) = _y_

⌡ _y_ ⌡ _y_

The connections are as follows:

Shaft _y_ To Integrator 1, Disc AND TO Integrator 2, Wheel

Shaft log _y_ To Integrator 1, Wheel AND TO Integrator 2, Disc

Shaft 1/_y_ To Integrator 1, Screw, AND NEGATIVELY

TO Integrator 2, Screw

In order to get _x_/_y_, we can then multiply _x_ by 1/_y_. We see that

this setup gives us log _y_ for nothing, that is, without needing more

integrators or other equipment. Clearly, other tricks like this will

give sin _x_, cos _x_, _eˣ_, _x²_, and other functions that satisfy

simple differential equations.

An integral of a reciprocal can be obtained even more directly. Suppose

that

⌠ 1

_y_ = │ ————— _dt_

⌡ _x_

1

Then _Dₜy_ = —————, _D{_y} t_ = _x_,

_x_

⌠

and _t_ = │_x dy_

⌡

The connections therefore are:

Shaft _t_ To Integrator, Wheel

Shaft _x_ To Integrator, Screw

Shaft _y_ To Integrator, Disc

The light wheel then drives the heavy disc. Clearly only the

angle-indicator device makes this possible at all. Naturally, the

closer the wheel gets to the center of the disc, that is, _x_

approaching zero, the greater the strain on the mechanism, and the more

likely the result is to be off. Mathematically, of course, the limit of

1/_x_ as _x_ approaches zero equals infinity, and this gives trouble in

the machine.

There is no standard mathematical method for solving any differential

equation. But the machine provides a standard direct method for

solving all differential equations with only one independent variable.

First: assign a shaft for each _term_ that appears in the equation.

For example, the highest derivative that appears and the independent

variable are both assigned shafts. The integral of the highest

derivative is easily obtained, and the integral of that integral, etc.

Second: connect the shafts so that all the mathematical relations are

expressed. Both _explicit_ and _implicit_ equations may be expressed.

Third: for any shaft there must be just one _drive_, or source of

torque. A shaft may, however, drive more than one other shaft. Fourth:

choose _scale factors_ so that the limits of the machine are not

exceeded yet at the same time are well used. For example, the most

that an integrator or a function table can move is 1 or 2 feet. Also,

the number of full turns made by a shaft in representing its variable

should be large, often between 1000 and 10,000.

Of course, as with all these large machines, anyone would need some

months of actual practice before he could put on a problem and get an

answer efficiently.

AN APPRAISAL OF THE MACHINE

The second MIT differential analyzer is probably the best machine

ever built for solving most differential equations. It regularly has

an accuracy of 1 part in 10,000. This is enough for most engineering

problems. If greater accuracy is needed, the second differential

analyzer cannot provide it. Once in a while the machine can reach an

accuracy of 1 part in 50,000; but, to balance this, it is sometimes

less accurate than 1 part in 10,000.

The MIT differential analyzer No. 2 can find answers to problems very

quickly. The time for setting up a problem to be run on the machine

ranges from 5 to 15 minutes. The time for preparing the tapes that

set up the problem is, of course, longer; but the punch for preparing

the tape is a separate machine and does not delay the differential

analyzer. The time for the machine to produce a single solution to a

problem ranges usually from 3 minutes to a half-hour. It is easy to

put on a problem, run a few solutions, take the problem off, study the

results, change a few numbers, and then put the problem back on again.

This virtue is a great help in a search in a new field. While the study

is going on, time is not wasted, for the machine can be busy with a

different problem.

Running a problem a second time is a good check on the reliability of

an answer. For, when the problem is run the second time, we can arrange

that the machine will route the problem to other mechanisms.

The machine has a control panel. Here the operator watching the machine

can tell what units are doing what parts of what problems. If a unit

gives trouble or needs to be inspected, the clerk can throw a “busy”

switch. Then the machine cannot choose that unit for work to be done.

The machine contains many protecting signals and alarms. It is idle for

repairs less than 5 per cent of the time.

It is not easy to determine the total cost of the machine, for it was

partially financed by several large gifts. Also, much of the labor

was done by graduate students in return for the instruction that they

gained. The actual out-of-pocket cost was about $125,000. If the

machine were to be built by industry, the cost would likely be more

than 4 times as much. A simple differential analyzer, however, can be

cheap. Small scale differential analyzers have been built for less than

$1000; their accuracy has been about 1 part in 100.

There are many things that this machine cannot do; it was not built

to do them. (1) It cannot choose methods of solution. (2) It cannot

perform steps in solving a problem that depend on results as they

are found. (3) It cannot solve differential equations containing two

or more independent variables. Such equations are called _partial

differential equations_; they appear in connection with the flow of

heat or air or electricity in 2 or 3 dimensions, and elsewhere. (4)

It cannot solve problems requiring 6 or more digits of accuracy. (5)

The machine, while running, can store numbers only for an instant,

since it operates on the principle of smoothly changing quantities;

however, when the machine stops, the number last held by each device is

permanently stored.

None of these comments, however, are criticisms of the machine.

Instead they show avenues of development for future machines. As was

said before, for solving most differential equations, this machine

has no equal to date. The range of problems which any differential

analyzer can do depends mostly on the number of its integrators. The

second differential analyzer has 18 and provides for expansion to 30.

The machine is constructed, also, so that it can be operated in 3

independent sections, each working to solve a different problem. The

differential analyzer can operate unattended. After it has been set up

and the first few results examined, it can be left alone to grind out

large blocks of answers.

An interesting example of the experimental use of a differential

analyzer in a commercial business is the following: In Great Britain,

R. E. Beard of the Pearl Assurance Company built a differential

analyzer with 6 integrators. He applied this machine to compute to 3

figures certain insurance values known as _continuous annuities_ and

_continuous contingent insurances_. He has described the machine and

the application he made in a paper published in the _Journal of the

Institute of Actuaries_, Vol. 71, 1942, pp. 193-227.

Chapter 6

ACCURACY TO 23 DIGITS:

HARVARD’S IBM AUTOMATIC

SEQUENCE-CONTROLLED CALCULATOR

One of the first giant brains to be finished was the machine in the

Computation Laboratory at Harvard University called the _IBM Automatic

Sequence-Controlled Calculator_. This great mechanical brain started

work in April 1944 and has been running 24 hours a day almost all the

time ever since. It has produced quantities of information for the

United States Navy. Although many problems that have been placed on it

have been classified by the Navy as confidential, the machine itself

is fully public. The way it was working on Sept. 1, 1945, has been

thoroughly described in a 540-page book published in 1946, Volume I of

the Annals of the Harvard Computation Laboratory, entitled _Manual of

Operation of the Automatic Sequence-Controlled Calculator_. Since then

the machine has been improved in many ways.

This machine does thousands of calculating steps, one after another,

according to a scheme fixed ahead of time. This property is what gives

the machine its name: _automatic_, since the individual operations are

automatic, once the punched tape fixing the chain of operations has

been put on the machine, and _sequence-controlled_, since control over

the sequence of its operations has been built into the machine.

ORIGIN AND DEVELOPMENT

More than a hundred years ago, an English mathematician and actuary,

Charles Babbage (1792-1871), designed a machine—or _engine_ as

he called it—that would carry out the sequences of mathematical

operations. In the 1830’s he received a government grant to build

an _analytical engine_ whereby long chains of calculations could be

performed. But he was unsuccessful, because the refined physical

devices necessary for quantities of digital calculation were not

yet developed. Only in the 1930’s did these physical devices become

sufficiently versatile and reliable for a calculator of hundreds of

thousands of parts to be successful.

The Automatic Sequence-Controlled Calculator at Harvard was largely the

concept of Professor Howard H. Aiken of Harvard. It was built through

a partnership of efforts, ideas, and engineering between him and the

International Business Machines Corporation, in the years 1937 to

1944. The calculator was a gift from IBM to Harvard University. Some

very useful additional control units, named the _Subsidiary Sequence

Mechanism_, were built at the Harvard Computation Laboratory in 1947

and joined to the machine.

[Illustration: FIG. 1. Scheme of Harvard IBM Automatic

Sequence-Controlled Calculator.]

GENERAL ORGANIZATION

The machine (see Fig. 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. In the scheme of

the machine shown in Fig. 1, the details you would see in a photograph

have been left out. Instead you see the sections of the machine that

are important because of what they do: _input_, _memory_, _control_,

and _output_. Why do we not see a section labeled “computer”? Because

in this mechanical brain the computing part of the machine is closely

joined to the memory: every storage register can add and subtract. We

shall soon discuss these sections of the machine more fully.

PHYSICAL DEVICES

Now in order for any brain to work, _physical devices_ must be used.

For example, in the human body, a nerve is the physical device that

carries information from one part of the body to another. In the

Harvard machine, an insulated _wire_ is the physical device that

carries information from one part of the machine to another. One side

of every panel in the Harvard machine is heavily laden with a great

network of wires. Between the panels, you can see in many places cables

as thick as your arm and containing hundreds of wires. More than 500

miles of wire are used.

The physical devices in the Harvard machine are numerous, as we would

expect. It is perhaps not surprising that this machine has more than

760,000 parts. But, curiously enough, there are only 7 main kinds of

physical devices in the major part of the machine. They are: wire,

_two-position switches_, _two-position relays_ (see Chapter 2),

_ten-position switches_, _ten-position relays_, _buttons_, and _cam

contacts_ (see below). These are the devices that handle information

in the form of electrical impulses. They can be combined by electrical

circuits in a great variety of ways. There are, of course, other kinds

of physical devices that are important, but they are not numerous,

and they have rather simple duties. Looking at the machine, you can

see three examples easily. Physical devices of the first kind convert

punched holes into electrical impulses: 2 _card feeds_, 4 _tape feeds_.

Those of the second kind convert electrical impulses into punched

holes: 1 _card punch_, 1 _tape punch_. Those of the third kind convert

electrical impulses into printed characters: 2 _electric typewriters_.

We can think of a fourth kind of physical device that would be a help,

but, at present writing, it does not yet exist: a device that converts

printed characters into electrical impulses.

The Harvard machine, of course, is complicated. But it is complicated

because of the variety of ways in which relatively simple devices have

been connected together to make a machine that thinks.

Switches

A _two-position switch_ (see Fig. 2) turned by hand connects a wire to

either one of 2 others. These 2 positions may stand for “yes” and “no,”

0 and 1, etc. There are many two-position switches in the machine. A

_ten-position switch_ or _dial switch_ (see Fig. 3) turned by hand

connects the wire running into the center of the switch with a wire at

any one of ten positions 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 around the edge.

There are over 1400 dial switches in the machine. How does turning the

pointer on the top of the dial make connection between the center wire

and the edge wire? Under the face of the dial is the part that works, a

short rod of metal fastened to the pointer (shown with dashes in Fig.

3). When the pointer turns, this rod also turns, making the desired

connection.

[Illustration: FIG. 2. Two-position switch.]

[Illustration: FIG. 3. Dial switch.]

Relays

_Two-position relays_—more often called just _relays_ (see Chapter

2)—do the automatic routing of the electrical impulses that cause

computing to take place. Each relay may take 2 positions, open or

closed, and these positions may stand for 0 and 1. There are more than

3000 relays in the Harvard machine.

A magnet pulling one way and a spring pulling the other way are

sufficient in an ordinary relay to give 2 positions, “on” and “off,”

“yes” and “no,” 0 and 1. But how do we make a relay that can hold any

one of 10 positions? Figure 4 shows one scheme for a _ten-position

relay_. The _arm_ can take any one of 10 positions, connecting the

contact _Common_ to any one of the contacts O, 1, 2, 3, 4, 5, 6, 7, 8,

and 9 so that current can flow. The _gear_ turns all the time. When

an impulse comes in on the _Pickup_ line, the _clutch_ connects the

arm to the gear. When an impulse comes in on the _Drop-out_ line, the

clutch disconnects the arm from the gear. For example, suppose that the

ten-position relay is stopped at contact 2, as shown. Suppose that we

now pick up the relay, hold it just long enough to turn 3 steps, and

then drop it out. The relay will now rest at contact 5.

[Illustration: FIG. 4. Scheme of a ten-position relay, or counter

position.]

[Illustration: FIG. 5. Scheme of a counter wheel.]

In the Harvard machine, the ten-position relays, much like the scheme

shown, do the same work as _counter wheels_ (Fig. 5) in an ordinary

desk calculating machine, and so they are often spoken of as _counter

positions_ in the Harvard machine. They are very useful in the machine

not only because they express the 10 decimal digits 0, 1, 2, 3, 4,

5, 6, 7, 8, 9 but also because adding and subtracting numbers is

accomplished by turning them through the proper number of steps. In

fact, an additional impulse is provided when the counter position turns

from 9 to 0, for purposes of carry. A group of 24 counter positions

makes up each _storage counter_—or _storage register_—in the machine.

There are 2200 of these counter positions. Each is connected to a

continuously running gear on a small shaft (Fig. 6). All these shafts

are connected by other gears and shafts to a main drive shaft, and they

are driven by a 5-horsepower motor at the back of the machine. When

a counter position is supposed to step, a clutch connects the drive

to the running gear, and the counter position steps. When the counter

position is supposed to stay unchanged, the clutch is disconnected

and the driving gear runs free. In fact, when you first approach the

Harvard machine, about the first thing you are aware of is the running

of these gears and the intermittent whirring and clicking of the

counter positions as they step. The machine gives a fine impression of

being busy!

[Illustration: FIG. 6. Scheme of counter 16.]

Timing Contacts

A _button_ (see Fig. 7) is a device for closing an electric circuit

when and only when you push it. A simple example is the button for

ringing a bell: you push the button, a circuit is closed, and something

happens. When you let go, the circuit is opened. The Harvard machine

has a button for starting, a button for stopping, and many others.

[Illustration: FIG. 7. Button.]

[Illustration: FIG. 8. Cam, with 5 lobes and contact.]

A _cam contact_ (see Fig. 8) is an automatic device for closing an

electric circuit for just a short interval of time. When the lobes

on the cam strike the contact, it closes and current flows. When the

lobes have gone by, the spring pushes open the contact, and no current

flows. Just as a two-position relay is the automatic equivalent of

a two-position switch, and a ten-position relay is the automatic

equivalent of a ten-position switch, so a cam contact is the automatic

equivalent of a button.

All the cams in the machine have 20 pockets where small round metal

lobes may or may not be inserted. Each cam makes a full turn once in

³/₁₀ of a second and is in time with all the others. Thus we can time

all the electrical circuits in the machine in units of ³/₂₀₀ of a

second.

NUMBERS

Numbers in the machine regularly consist 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. For example,-00284 is

represented as 999715, supposing that we had 5-digit numbers instead

of 23-digit numbers. The sum of two nines complements is automatically

corrected so that it is still a correct nines complement. The device

that accomplishes this is called _end-around-carry_ (see Supplement 2).

The decimal point is fixed for each problem; in other words, in any

problem, the decimal point is consistently kept in one place, usually

between the 15th and 16th decimal columns from the right.

HOW INFORMATION GOES INTO THE MACHINE

Numerical information may go into the machine in any one of 3 ways: (1)

by regular IBM punch cards, using standard IBM card feeds (panel 16);

(2) by hand-set dial switches (panels 1, 2); and (3) by long loops of

punched tape placed on the value tape feeds (panels 12 to 14). Three

sets of 24 columns each punched on a regular IBM punch card can be

used to send 3 numbers and their signs into the machine in one machine

cycle. This is the fastest way for giving numbers to the machine, but

the most limited; for the cards must be referred to in order and can

be referred to automatically only once. Also, there is the risk that

they may be out of order. A card may be passed through the machine

without reading; this saves some sorting in preparing cards for the

machine. Machines for preparing the cards are regular IBM key punches,

and machines for sorting them after preparation are regular IBM card

sorters.

In panels 1 and 2 there are 60 registers by which unchanging numbers

like 1, or 3.14159265···, or 7.65 may be put into the machine. These

are called the _constant registers_. Each constant register consists of

24 dial switches and contains 23 digits and a sign, 0 if positive and

9 if negative. Whenever the mathematician says a certain constant is

needed for a problem, the operator of the machine walks over to these

panels, and, while the machine is turned off, sets the dial switches

for the number, one by one, by hand. If we need 40 constants of 10

digits each for a problem, then the operator sets 400 dial switches by

hand and makes certain that the remaining 14 switches in each of the 40

constant registers used are either at 0 or 9, depending on the sign of

the number. Only then can he return to start the machine.

[Illustration: FIG. 9. Value tape code.]

The third means by which numerical information can be put into the

machine is the _value tape feeds_, in panels 12, 13, and 14. Here the

machine can consult tables of numbers. The numbers are punched on paper

tape 24 holes wide, made of punch-card stock. Tapes for the value tape

feeds may be prepared by hand or by the machine itself using punch

cards or machine calculation. The tapes use equally spaced _arguments_

(see Supplement 2). The tape punch changes the decimal digits in its

keyboard into the following punching code (see Fig. 9):

0 0000 5 1100

1 1000 6 1010

2 0100 7 1001

3 0010 8 0110

4 0001 9 0101

Here the 1 denotes a punched hole and 0 no punched hole, and the 4

columns from left to right of the code correspond to 4 rows of the

paper tape from bottom to top. To make sure the value tape is correct,

the machine itself can read the value tape and check it mathematically

or compare it with punch-card values.

HOW INFORMATION COMES OUT OF THE MACHINE

Information comes out of the machine in any one of three ways: (1) by

punching on IBM cards with a regular IBM card punch that is built into

the machine (panel 17), (2) by typing on paper sheets with electric

typewriters (panels 16 and 17), and (3) by punching paper tape 24 holes

wide of the same kind as is fed into the machine.

Usually, one of the electric typewriters is used to print a result for

a visual check and to print it before the machine makes a specified

check of the value. Then, about 10 seconds later, after the result has

been checked as specified in the machine, the checked result is printed

by the second typewriter. In the second typewriter, a special one-use

carbon ribbon of paper is used to produce copy for publication by a

photographic process.

The card punch writes a number more rapidly than an electric

typewriter. This extra speed is sometimes very useful. However, the

punch’s chief purpose is to record intermediate results on punch cards.

Then, if there is a machine failure, and if the problem has been well

organized, the problem may be run over from these intermediate results,

instead of requiring a return to the original starting information.

The tape punch used for preparing tape by hand can also be operated by

cable from the machine.

HOW INFORMATION IS HANDLED IN THE MACHINE

The machine is a mechanical brain. So, between taking in information

and putting out information, the machine does some “thinking.” It

does this thinking according to instructions. The instructions go

into the machine as: (1) the setting of switches, or (2) the pressing

of buttons, or (3) the wiring of plugboards, or (4) feeding in tape

punched with holes. The instructions are remembered in the machine in

these 4 ways, and we can call these sets of devices the control of the

machine.

To illustrate: One of the buttons pressed for every problem is the

Start Key: when you press it, the machine starts to work on the

problem. One of the switches with which you give instructions is

a switch that turns electric typewriter 1 on or off. One of the

plugboards contains some hubs by which you can tell the machine how

many figures to choose in the quotient when dividing, for clearly you

do not need a quotient of 23 figures every time the machine divides.

You can have 5 choices in any one problem; you can specify them by

plugging, and you can call for any one of 5 choices of quotient size

from time to time during the problem. In many cases, when we wish

the machine to do the same thing for all of a single problem and do

it whenever the occasion arises, we can put the instruction into the

wiring of a plugboard. We use plugboard wiring, for example, in fixing

the decimal point in multiplication, so that the product will read out

properly, and in guiding the operation of the typewriters, so that

printing will take place in the columns where we want it.

Sequence of Steps

The most important part of the control of the machine is the

_sequence-tape feed_ and its _sequence-control tape_. These tell the

machine a great part of what operations are to be performed.

[Illustration: FIG. 10. Sequence-control tape code.]

At the end of the room where the machine is, there is the special tape

punch mentioned above. It holds a big spool of card stock that is thin,

flexible, smooth, and tough. With one keyboard we may prepare value

tape. With another keyboard we prepare the sequence-control tape.

The tape (see Fig. 10) contains places for 24 round punched holes in

each row. Some and only some of these holes are punched. Each row of

punched holes is equivalent to an instruction to the machine and is

called a _line of coding_ or _coding line_. In general, the instruction

has the form:

Take a number out of Register _A_; put the number

into Register _B_; and perform operation _C_.

The first group of 8 holes at the left is called the _A field_ or the

_out-field_. Here we tell the machine where a number is to be taken

from. The middle group of 8 holes is called the _B field_ or the

_in-field_. Here we tell the machine where a number is to be put. The

last group of 8 holes is called the _C field_ or the _miscellaneous

field_. Here we tell the machine part or all of the operation that is

to be performed.

To illustrate (see Fig. 10), we have holes 3, 2, 1 punched in the _A_

field, holes 3, 2 punched in the _B_ field, and hole 7 punched in the

_C_ field. Now 321 is the _code_—or machine language, or machine call

number—for storage counter 7; 32 is the code for storage counter 6;

and 7 in the _C_ field is the code (in this case, and generally) for

“Add, and read the next line of coding.” So, if we punch out this line

of coding and put the tape on the machine, we tell the machine to read

the number in counter 7, add it into counter 6, and proceed to the next

line of coding and read that.

The holes in each group of 8 holes from left to right are numbered: 8,

7, 6, 5, 4, 3, 2, 1. The code 631, for example, means that holes 6, 3,

1 are punched and that no holes are punched at 8, 7, 5, 4, 2. Since it

is more natural, the code is read from left to right, or 631, instead

of from right to left in the sequence 136.

The devices in the machine have _in-codes_, used in the in-field, and

_out-codes_, used in the out-field. For each of the 72 regular storage

counters, the in-code and the out-code are the same. The first 8

storage counters have the codes 1, 2, 21, 3, 31, 32, 321, 4, 41; the

last 2 storage counters, the 71st and the 72nd, have the codes 7321, 74.

The constant registers—often called _constant switches_, or just

_switches_—naturally have only out-codes, since numbers can be entered

into the constant registers only by setting dial switches by hand.

The first 8 constant registers have the out-codes 741, 742, 7421, 743,

7431, 7432, 74321, 75, and the 59th and 60th constant registers have

the out-codes 821, 83.

Transferring, Adding, and Clearing

Each storage counter has the property that any number transferred into

it is added into it. For example, the instruction

Take the number in switch 741; transfer it into storage register 321

is coded:

741, 321, 7

The 7 in the third column is an instruction to the sequence-tape feed

to turn up to the next coding line and read it. If any number is

already stored in register 321, the content of 741 will be added to it,

and the total will then be stored in 321.

Resetting or clearing a regular storage register is accomplished by a

coding that is a departure from the usual scheme of “out” and “in.” The

instruction

Clear register 321; read the next coding line

is coded:

321, 321, 7

Similarly, you can clear any other regular storage register if you

repeat its code in the out-and in-fields. However, a few of the storage

registers in the machine have special reset codes, and these may occur

in any of the three fields _A_, _B_, _C_.

As the result of a recent modification of the machine, you can easily

double the number in any storage register. For example, the instruction

Double the number in register 321; read the next coding line

is coded:

321, 321, 743

Subtracting

If the number in switch 741 is to be subtracted from the number in

storage counter 321, the instruction is changed into:

Take the negative of the number in switch 741; transfer

it into storage register 321; read the next line of coding

The coding line becomes:

741, 321, 732

By putting 32 in the _C_ field, we cause the number in switch 741 to be

subtracted from whatever number is in register 321.

We have 2 more choices in adding and subtracting. The value of the

number without regard to sign—in other words, its _absolute value_ (see

Supplement 2)—may be added or subtracted. The instruction

Add the absolute value of

is expressed by a _C_ field code 2, and the instruction

Add the negative of the absolute value of

is expressed by a _C_ field code 1.

Multiplying

When we wish to multiply one number by another and get a product, we

have 3 numbers. We tell the machine about each of these numbers on

a separate line of coding. Multiplication is signaled by sending a

number into the _multiplicand counter_. The multiplicand counter has an

in-code 761. If the multiplicand is in 321, the instruction is:

Take the number in 321; enter it as multiplicand; read the

next coding line

The coding is:

321, 761, 7

On the third following coding line, the multiplier is sent into

the _multiplier counter_. If the multiplier is in switch 741, the

instruction is:

Take the number in 741; enter it as multiplier; read the next coding

line

The coding is:

741, ——, 7

We do not punch anything in the middle field: the machine is “educated”

and “knows” that it has started a multiplication and needs a

multiplier, and it expects this multiplier in the third coding line. To

have no code for the multiplier counter is, of course, a departure from

the general rule, but it saves some punching and permits the use of

this space for certain other codes, thus saving some operating time.

We need not confuse the 761 in-code for the multiplicand counter with

the 761 out-code, which happens to be the out-code of the 25th constant

register, because neither can occur in the other’s field. We may, of

course, use other registers besides 321 and 741 for supplying the

multiplicand and multiplier.

To get the product and put it into any storage counter _D_, we use two

lines of coding one right after the other:

—— —— 6421

8761 _D_ ——

The _product counter_ has the out-code 8761. When the product is

desired, it is called for, transferred into counter _D_, and the

multiplication unit is automatically cleared. It takes time, however,

for the machine to perform a multiplication. That is the reason for

the preceding coding line and the 6421 in the _C_ field. While the

multiplication is going on, we can instruct the machine to do other

things that we want done. We can insert or _interpose_ coding lines in

between the multiplier line and the product line. For example, if we

have a multiplier of 10 digits, we can insert 8 coding lines and maybe

more. The 6421 code essentially tells the machine to finish both the

multiplication and the interposed instructions, and, as soon as the

later one of these two tasks is finished, to transfer out the product

to counter _D_.

Up to the middle of 1946, the wiring of the machine was a little

different and less convenient. When the product was obtained by the

multiplication unit, it had to be accepted and transferred at once into

one of the 72 storage registers.

Dividing

Division is called for by first sending the divisor into the _divisor

counter_, and this has a code 76 in the _B_ field. If the divisor is in

counter 321, the instruction may be:

Take the number in 321; enter it as divisor; read the next

coding line

The coding will then be:

321, 76, 7

Three coding lines later, the dividend is called for, and the coding,

if the dividend is in switch 7431, is:

7431, ——, 7

We can send the quotient, when ready, into any desired counter _Q_ by

the following two lines of coding:

—— —— 642

876 _Q_ ——

In the same way as with multiplication, we can insert a number of

coding lines in between the dividend line and the first quotient line.

Both multiplication and division are carried out in the same unit of

the machine, the _multiply-divide unit_. The machine first constructs

a table of the multiples of the multiplicand or divisor: 1 times, 2

times, 3 times, ···, 9 times. In multiplication this table is then used

by selecting multiples according to the digits of the multiplier one

after another. In division the table is used by comparing multiples of

the divisor against the dividend and successive remainders, finding

which will go and which will not. Since the numbers in the machine are

normally of 15 to 23 digits, any particular multiple will be used,

on the average, several times, and so this process is relatively

efficient. Actually the multiplicand and the divisor go into the same

counter. Division, however, has the code 76 and multiplication the code

761, and so the difference is essentially an operation code not in the

third or _C_ field.

Consulting a Table

When we desire the machine to consult a table of values (i.e., a

_function_—see Supplement 2), we punch the table with its arguments and

function values on a tape, and we put the tape on a value tape feed

mechanism. The instruction to the machine may be:

Take the number in register _A_; find the value of the

function for this number, and enter it in register _B_.

The coding is:

—— —— 73

_A_ 7654 61

—— —— 762

—— —— 543

—— —— 75431

841 7654 ——

_A_ 763 6421

8762 _B_ 73

—— 8763 7

Without explaining this coding line by line, we can say that this is

what happens:

The machine reads the argument in register _A_.

The machine reads the argument in the table at which

the value tape feed is resting.

It subtracts them, and thereby determines how far away

the desired argument is.

The machine then turns the tape that required distance.

It checks that the new argument is the wanted argument.

It reads the value of the function entered at that

point on the function tape.

Selecting

There is a storage counter in the machine that is called the _selection

counter_. The selection counter is counter 70 and has the code 732. It

has all the properties of an ordinary storage counter and, in addition,

one extra property: depending on the sign of the number stored in the

selection counter, it is possible to select whether some other number

shall be treated positively or negatively. In other words, addition of

a number anywhere in the machine may take place either positively or

negatively, if the number stored in the selection counter is positive

or negative, respectively.

For example, suppose that _x_ is the number in the selection counter.

Suppose that _y_ is the number in some other counter _A_. Suppose that

_z_ is the number in counter _B_. Suppose that we use the coding:

_A_, _B_, 7432

What we get in _B_, because of the 7432 in the third or _C_ field, is

_z_ plus _y_ if _x_ is positive or zero, and _z_ minus _y_ if _x_ is

negative. In the language of the algebra of logic (see Chapter 9 and

Supplement 2), where _T_( ...) is “the truth value of ...,” the number

in _b_ equals:

_z_ + _y_·_T_(_x_ ≥ 0) - _y_·_T_(_x_ < 0)

(The nines complement of 0, namely 999···9 to 24 digits, is treated by

the machine as negative.)

Why do we need an operation like this in a mechanical brain? Among

other reasons, what we want to do with a number, in mathematics, often

depends on its sign. It may happen that a table is, for negative

arguments, the negative of what it is for positive arguments; in

other words, _F_(-_x_) =-_F_(_x_). This is true, for instance, for a

table of _cubes_ {_F_(_x_) = _x_³} or for a table of _trigonometric

tangents_ (see Supplement 2). If so, we certainly do not want to take

the time and trouble to list the whole table. We put down only half

the table and then, if _x_ is negative, use the negative of the value

in the table. In order to apply such a time-saving rule when using the

machine, we need the selection counter or its equivalent.

Checking

There is another special counter in the machine that is called the

_check counter_. It also has all the properties of an ordinary storage

counter and, in addition, one extra property: If the sign of the number

stored in the check counter on a certain coding line is negative, then

on the next coding line the machine may be stopped. In other words,

suppose that the check counter stores a certain tolerance _t_. Suppose,

under the instructions we give the machine, that it calculates a

positive number _x_ that ought to be less than this tolerance. Suppose

that something may go wrong and that _x_ actually may be greater than

_t_. Then we put a check into our instructions. We tell the machine:

When you have found _x_, subtract it from _t_.

If the result is positive, go ahead.

If the result is negative or zero, _stop_!

Here is the coding. Suppose that the tolerance _t_ is in switch 751.

Suppose that the number _x_ to be checked is in counter 4321. Then the

instructions and coding are:

Clear the check counter — — 7

Put in the tolerance, from switch 751 751 74 7

Subtract the absolute value of the number to be checked 4321 74 71

Stop, O Mechanical Brain, if your result be negative! — — 64

An operation like this is very useful in a mechanical brain. It

enables the calculation to be interrupted if something has gone

wrong. Of course, other operations of checking besides this one are

used—for example, inspecting for reasonableness the results printed on

typewriter 1.

Other Operations

There are other operations in the machine. There are two pairs of

storage registers that can be _coupled_ together so that we can handle

problems requiring numbers of 46 digits instead of 23. Registers 64

and 65 can be coupled, and registers 68 and 69 can be coupled. There

is another storage counter, No. 71, that has an extra property. We can

read out the number it holds times 1, or times 10¹², or times 10⁻¹²,

as may be called for. As a result of this counter, we can do problems

requiring 144 registers storing numbers of 11 digits each, instead of

72 registers storing 23 digits each. Bigger statistical problems can be

handled, for example.

There are some minor sequences of operations, or _subroutines_, that

can be called for by a single code. The subroutine may be a whole set

of additions, subtractions, multiplications, divisions, and choices,

having a single purpose: to compute some number by a _process of rapid

approximation_ (see Supplement 2). There are built-in subroutines for

some special mathematical functions: the _logarithm_ of a number to the

base 10, the _exponential_ of a number to the base 10, and the _sine_

of a number. (See Supplement 2.)

There are also 10 changeable subroutines, each of 22 coding lines,

which can be called in, when wanted, by the main sequence-control tape

or by each other. These subroutines constitute the Subsidiary Sequence

Mechanism, and are extremely useful. They have _A_, _B_, and _C_ fields

just like the main sequence-control, but they are given information by

plugging with short lengths of wire instead of by feeding punched paper

tape.

RAPID APPROXIMATION FOR A LOGARITHM

Up to this point in this chapter the author has tried to tell the facts

about the Harvard machine in plain words. But for reading this section,

a little knowledge of calculus is necessary. (See also Supplement 2.)

If you wish, skip this section and go on to the next one.

What is the process that the machine uses to compute any desired

logarithm to 23 digits? Suppose that we take for an example the process

by which the machine computes log_{10} 49.3724. We choose a 6-digit

number for simplicity; the machine would handle a 23-digit number in

the same way. The process uses 2 fundamental equations involving the

logarithm: the sum relation

log (_a_·_b_·_c_···) = log _a_ + log _b_ + log _c_···

and the series relation

_h_² _h_³ _h_⁴

logₑ(1 + _h_) = _h_ - ———— + ———— - ———— + ···, │_h_│ < 1

2 3 4

The error in this series is less than the first neglected term. Now,

the machine stores the base 10 logarithms (to 23 decimal places) of the

following 36 numbers:

1 1.1 1.01 1.001

2 1.2 1.02 1.002

... ... ... ...

9 1.9 1.09 1.009

First, the number 49.3724 is examined in a counter called the

_Logarithm-In-Out counter_, and the position of the decimal point is

determined, giving the _characteristic_ of the logarithm. The number

49.3724 has the characteristic 1. Next, 4 successive divisions are

performed, in which the 4 divisors are (1) the first digit of the

number, (2) the first 2 digits of the quotient, (3) the first 3 digits

of the next quotient, and (4) the first 4 digits of the subsequent

quotient; thus,

4.93724/4 = 1.23431

1.23431/1.2 = 1.02860

1.02860/1.02 = 1.00843

1.00843/1.008 = 1.00043

For simplicity we have kept only 6 digits, although the machine, of

course, would keep 23. It is interesting to note that the machine is

able to sense digits and thus determine the 4 divisors; this is an

arithmetical and numerical process and one that cannot be done in

ordinary algebra. We now have:

log₁₀ 49.3724 = 1 + log₁₀ 4 + log₁₀ 1.2 + log₁₀ 1.02

+ log₁₀ 1.008 + log₁₀ 1.00043

To compute log₁₀ 1.00043 to 21 decimals we use

( _h_² _h_³ _h_⁴ _h_⁵ _h_⁶ )

log₁₀_e_ · (_h_ - ————— + ————— - ———— + ————— - —————)

( 2 3 4 5 6 )

with _h_ = 0.00043. Only 6 terms of the series relation are needed.

For, the error is less than _h_⁷/7, which is less than 10⁻²¹/7, since

_h_ < ¹/₁₀₀₀. The machine uses the series relation in the form

log₁₀ (1 + _h_) = {([{(_c_₆_h_ + _c_₅)_h_ + _c_₄}_h_

+ _c_₃]_h_ + _c_₂)_h_ + _c_₁}_h_

where

_c_₁ = _M_, _c_₂ = -_M_/2, _c_₃ = _M_/3, ···,

and _M_ = log₁₀__e_= 0.434294···.

The 6 values of the _c_’s are also stored in the machine. When any

logarithm is to be computed, the sum of the characteristic, of the 4

logarithms of the successive divisors, and of the first 6 terms of the

series relation gives the logarithm. The maximum time required is 90

seconds.

AN APPRAISAL OF THE CALCULATOR

The IBM Automatic Sequence-Controlled Calculator at Harvard is a

landmark in the development of machines that think. Its capacity for

many problems for which it is suited is far beyond the capacity of a

hundred human computers.

Speed

The time required in the machine for adding, subtracting, transferring,

or clearing numbers is ³/₁₀ 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. Each, however, requires

only 3 lines of coding, or ⁹/₁₀ of a second’s attention from the

sequence mechanism; interposed operations fill the rest of the time.

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. To get three 24-digit

numbers from feeding a punch card takes ⅓ second. To punch a number

takes from ½ second up to 3 seconds. To print a number takes from 1½

seconds up to 7 seconds.

Cost and Value

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,

which would have been done whether or not this particular machine had

ever been built. 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. This might represent, if capitalized, another

1 or 2 hundred thousand dollars. 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.

The value of the machine, however, is very much greater. If 100 human

beings with desk calculators were set to work 8 hours a day at $1.50 an

hour, the cost would be $1200 a day, or 8 times as much. Yet it is very

doubtful that the work they could produce would equal that turned out

by the machine, either in quality or quantity, when the machine is well

suited to the problem.

Reliability

By reliability we mean the extent to which the results produced by the

machine can be relied on to be right. The machine contains no built-in

device for making its operations reliable. So, if we wish to check a

multiplication, for example, we can do the multiplication a second

time, interchanging the multiplier and the multiplicand. But if, say,

digit 16 of the product were not transferring correctly, we would get

the same wrong result both ways and we would not have a sufficient

check. Thus, when we set up a problem for the machine to do, one of the

big tasks we have is checking. We have to work out ways of making sure

that the result, when we get it, is right and ways of instructing the

machine to make the tests we want. This is not a new task. Whenever

you or I set out to solve a problem, we have to make sure—usually by

doing the problem twice, and preferably by doing it a different way the

second time—that our answer, when we get it, is correct. One of the

chief tasks for the mathematician, in making a sequence-control tape

for the machine, is to put into it sufficient checks to make sure that

the results are correct.

We can use a number of different kinds of partial checks: the check

counter; _differences_, and _smoothness_ (see Supplement 2); watching

the results printed on typewriter 1; mathematical checks; comparison

with known specific values; etc.

In actual experience on the machine, human failures, such as failure

to state the problem exactly or failure to put it on the machine

correctly, have given about as much trouble as mechanical failures. The

machine operates without mechanical failure about 90 to 95 per cent

of the time. The balance of the time the machine is idle while being

serviced or repaired. The machine is serviced by mechanics trained and

supervised at Harvard.

Often when we change the machine from one problem to another problem,

we find some kind of trouble. Consequently, we need to work out in

detail the first part of any calculation placed on the machine. We

then compare the results step by step with the results produced by the

machine. Any mathematician working with the machine needs considerable

training in order to diagnose trouble quickly and guide the maintenance

men to the place where repair or replacement is needed. Once you find

the trouble, you can fix it easily. Without disturbing the soldered

connections, you can easily pull out from its socket a relay that is

misbehaving and plug in a new relay. With a screwdriver you can change

a counter position—detach it from its socket and replace it by another

one that is working correctly.

One “bug” that will long be remembered around the Laboratory was a case

involving a 5 that would incorrectly come in to a number every now

and then. It did not happen often—only once in a while. After a week

of search the bug was finally located: the insulation on a wire that

carried a 5 had worn through in one spot, and once in a while this wire

would shake against a post that could carry current and took in the 5!

Efficiency

In many respects, this machine is efficient and well-balanced. Its

reading and writing speed is close to its calculating speed. We can

punch or print a result on the average for every 10 additions or 1½

multiplications. The memory of 72 numbers in the machine is extremely

useful; a smaller memory is a serious limitation on the achievements of

a computing machine. The machine can do many kinds of arithmetic and

logic. It is well educated and can compute automatically some rather

complicated mathematical functions, like logarithm or sine. It has done

difficult and important problems. It has computed and tabulated (see

Supplement 2) _Bessel functions_, _definite integrals_, etc. It can

solve _differential equations_ (see Chapter 5) and many other problems

in mathematics, physics, and engineering.

On the other hand, no calculator will ever again be built just like

this one, useful though it is. Electronic computing is easily 100 times

as fast as relay computing; nearly every future calculator will do

its computing electronically. Many other improvements will be made.

For example, in this calculator, there are 72 addition-subtraction

mechanisms, yet only one of these can be used at a time. Also, the

machine has only one combined multiply-divide unit. So we have to

organize any computation with few multiplications, and with still fewer

divisions, for they take longer still.

Until 1947, we had to organize any computation in this calculator into

one single fixed sequence of operations. In other words, there was

no way to move from one subroutine to another subroutine depending

on some indication that turned up in our computation. Recently, the

Harvard Computation Laboratory decided to remedy this condition and

provided the Subsidiary Sequence Mechanism equivalent to 10 subroutines

of 22 lines of coding each. These are on relays and plug wires and

may be called for by the sequence-control tape or by each other. This

provision has added greatly to the efficiency of the calculator.

Whatever else can be said about the Harvard IBM Automatic

Sequence-Controlled Calculator, it must be said that this was the first

general-purpose mechanical brain using numbers in digit form and able

to do arithmetic and logic in hundreds of thousands of steps one after

another. And great credit must go to Professor Howard H. Aiken of

Harvard and the men of International Business Machines Corporation who

made this great mechanical brain come into existence.

Chapter 7

SPEED—5000 ADDITIONS A SECOND:

MOORE SCHOOL’S ENIAC

(ELECTRONIC NUMERICAL INTEGRATOR AND CALCULATOR)

Another of the giant brains that has begun to work is named _ENIAC_.

This name comes from the initial letters of the full name, _Electronic

Numerical Integrator and Calculator_. Eniac was born in 1942 at

the Moore School of Electrical Engineering, of the University of

Pennsylvania, in Philadelphia. Eniac’s father was the Ordnance

Department of the U. S. Army, which provided the funds to feed and rear

the prodigy.

In the short space of four years, Eniac grew to maturity, and in

February 1946 he began to earn his own living by electronic thinking.

Eniac promptly set several world’s records. He was the first giant

brain to use electronic tubes for calculating. He was the first one to

reach the speed of 5000 additions a second. He was the first piece of

electronic apparatus containing as many as 18,000 electronic tubes all

functioning together successfully. As soon as Eniac started thinking,

he promptly made relay calculators obsolete from the scientific point

of view, for they have a top speed of perhaps 10 additions a second.

At the age of 5, he moved to Maryland at a cost of about $90,000, and

his permanent home is now the Ballistic Research Laboratories at the U.

S. Army’s Proving Ground at Aberdeen, Md.

ORIGIN AND DEVELOPMENT

In the Department of Terrestrial Magnetism in the Carnegie Institution

of Washington, a great deal of information about the earth is studied.

Many kinds of physical observations are there gathered and analyzed:

electricity in the atmosphere, magnetism in the earth, and the weather,

for example. In 1941, a physicist, Dr. John W. Mauchly, was thinking

about the great mass of numerical information they had to handle. He

became convinced that much swifter ways of handling these numbers were

needed. He was certain electronic devices could be used for computing

at very high speeds, yet he found no one busy applying electronics in

this field. With hopes of finding some way of developing electronic

computing, he joined the staff of the Moore School of Electrical

Engineering in the autumn of 1941.

The Moore School in 1934 and 1935 had built a differential analyzer;

and, from that time on, the school had made a number of improvements

in it. In 1941, with war imminent, the differential analyzer was put

hard at work calculating tables for the Army’s Ballistic Research

Laboratories. These tables were mostly firing tables, tables of the

paths along which projectiles travel when fired—_trajectories_;

obviously, you cannot fire a gun usefully, unless you know how to aim

it. The amount of calculation of trajectories was so huge that Dr.

Mauchly suggested that a machine using electronic tubes be constructed

to calculate them. A good deal of discussion took place between men at

the Moore School, men at the Ballistic Research Laboratories, and men

from the Ordnance Department in Washington. A contract for research

into an electronic trajectory computer was concluded with the Ordnance

Department of the U. S. Army. Mauchly and one of the young electronics

engineers studying at Moore School, J. Presper Eckert, Jr., set to work

on the design.

Gradually the design of a machine took form, and the crucial

experiments on equipment were completed. In 1943, the design was

settled as a special-purpose machine to calculate trajectories. Later

on, the group modified the plans here and there to enable the machine

to calculate a very wide class of problems. A group of Moore School

electronics engineers and technicians during 1944 and 1945 built the

machine, using as much as possible standard radio tubes and parts.

Here, again, in spite of the successful progress of the electronic

machine, the rumor that it was a “white elephant” was allowed to spread

in order to protect the work from prying enemy ears.

GENERAL ORGANIZATION

The main part of Eniac consists of 42 _panels_, which are placed along

the sides of a square U. Each of these panels is 9 feet high, 2 feet

wide, and 1 foot thick. They are of sheet steel, painted black, with

switches, lights, etc., mounted on them. At the tops of all the panels

are air ducts for drawing off the hot air around the tubes. Large

motors and fans above the machine suck the heated air away through the

ducts. There are also 5 pieces of equipment which can be rolled from

place to place and are called _portable_, but there is no choice as to

where they can be plugged in. We shall call this equipment panels 43 to

47.

Panels

Now what are these panels, and what do they do? Each panel is an

assembly of some equipment. The names of the panels are shown in the

accompanying table. The arrangement of Eniac at the Ballistic Research

Laboratories as shown in the table is slightly different from the

arrangement of Eniac at Moore School.

NAMES OF PANELS OF ENIAC

PANEL NO. NAME (AND ADDITIONAL NAMES IN SOME CASES)

1 Initiating Unit

2 Cycling Unit

3, 4 Master Programmer, panels 1, 2

5 Accumulator 1

6 Accumulator 2

7 Accumulator 3

8 Accumulator 4 (Quotient)

9 Divider-Square-Rooter

10 Accumulator 5 (Numerator I)

11 Accumulator 6 (Numerator II)

12 Accumulator 7 (Denominator—Square Root I)

13 Accumulator 8 (Denominator—Square Root II)

14 Accumulator 9 (Shift I)

15 Accumulator 10 (Shift II)

16 Blank panel for new unit (Converter)

17 Accumulator 11 (Multiplier)

18 Accumulator 12 (Multiplicand)

19-21 Multiplier, panels 1, 2, 3

22 Accumulator 13 (Left-Hand Partial Products I)

23 Accumulator 14 (Left-Hand Partial Products II)

24 Accumulator 15 (Right-Hand Products I)

25 Accumulator 16 (Right-Hand Products II)

26 Blank panel for new unit (100 Registers)

27 Accumulator 17

28 Accumulator 18

29 Accumulator 19

30 Accumulator 20

31, 32 Function Table 1, panels 1, 2

33, 34 Function Table 2, panels 1, 2

35, 36 Function Table 3, panels 1, 2

37-39 Constant Transmitter, panels 1, 2, 3

40-42 Printer, panels 1, 2, 3

43-45 Portable Function Tables _A_, _B_, and _C_

46 IBM Card Reader

47 IBM Summary Punch

_Note_: The accumulators from which a number can be sent

to the printer are now accumulators 1, 2, and

15 to 20.

In reading over the table, we find a number of words that need

explaining. Some of the explanation we can give in the summary of the

units of Eniac:

SUMMARY OF UNITS OF ENIAC

QUANTITY DEVICE SIGNIFICANCE

20 Accumulators Store, add, and subtract numbers

1 Multiplier Multiplies

1 Divider-Square-Rooter Divides, and obtains twice the _square

root_ of a number (see Supplement 2)

3 Function Tables Part of the memory, for referring to

tables of numbers

1 Constant Transmitter Stores numbers from the card reader and

from hand-set switches

1 Printer Punches machine results into cards

1 Cycling Unit Controls the timing of the various parts

of the machine

1 Initiating Unit Has controls for starting a calculation,

for clearing, etc.

1 Master Programmer Holds the chief controls for coordinating

the various parts of the machine

An _accumulator_ is a storage counter. It can hold a number; it

can clear a number; it can transmit a number either positively or

negatively; and it can receive a number by adding the number in and

thus holding the sum of what it held before and the number received.

Eniac when first built had only 20 accumulators, and so it could

remember only 20 numbers at one time (except for constant numbers set

in switches). This small memory was the most serious drawback of Eniac;

panel 26 was designed, therefore, to provide a great additional memory

capacity.

The _divider-square-rooter_, as its name tells, is a mechanism that

can divide and that can find twice the square root of a number. Eniac

is one of the several giant brains that have had square root capacity

built into them, particularly since square root is needed for solving

trajectories.

Many panels of Eniac have double duty and some have triple duty.

For example, panel 24 is an accumulator, but it also (1) stores the

right-hand partial products (see Supplement 2) of the multiplier

and (2) was a register, when Eniac was at Moore School, from which

information to be punched in the printer could be obtained. Clearly, if

we have a multiplication to do, we cannot also use this accumulator for

storing a number that is to remain unchanged during the multiplication.

Parts

The total number of parts in Eniac is near half a million, even if

we count electronic tubes as single parts. There are over 18,800

electronic tubes in the machine. It is interesting to note that only 10

kinds of electronic tubes are used in the calculating circuits and only

about 60 kinds of _resistors_ and 30 kinds of _capacitors_. A resistor

is a device that opposes the steady flow of electric current through

it to a certain extent (called _resistance_ and measured in _ohms_). A

capacitor is a device that can store electrical energy up to a certain

extent (called _capacitance_ and measured in _farads_). All these tubes

and parts are standard parts in radios. All types are identified by the

color labels established in standard radio manufacturing. It is the

combinations of these parts, like the combinations of pieces in a chess

game, that give rise to the marvelous powers of Eniac.

The combinations of parts at the first level are called _plug-in

units_. A plug-in unit is a standard box or tray or chassis made

of sheet steel containing a standard assembly of tubes, wires, and

other parts. It can be pushed in or pulled out of a standard socket

with many connections. An example of a plug-in unit is a _decade_,

or, more exactly, an _accumulator decade_. This is just a counter

wheel or decimal position expressed in Eniac language: it can express

successively all the digits from 0 to 9 and then pass from 9 to 0,

giving rise to a carry impulse. It is striking that a mechanical

counter to hold 10 digits can be made up of 10 little wheels, ¼ inch

wide and an inch high. But an accumulator in Eniac, to hold 10 digits,

is a set of 10 decades each 2 inches wide and 2½ feet high.

There are only about 20 kinds of plug-in units altogether. Each plug-in

unit is interchangeable with any other of the same kind. So, if a

decade, for example, shows trouble, you can pull it out of its socket

and plug in a spare decade instead.

Numbers

Numbers in Eniac are of 10 decimal digits with a sign that may be plus

or minus. The decimal point is fixed. However, when you are connecting

one accumulator with another, you can shift the decimal point if you

want to. Also, 2 accumulators may be coupled together so as to handle

numbers of 20 digits.

HOW INFORMATION GOES INTO THE MACHINE

There are three ways by which information—numbers or instructions—can

go into the Eniac. Numbers can be put into the machine by means of

punch cards fed into the Card Reader, panel 46, or switches on the

Constant Transmitter, panels 37 to 39. Numbers or instructions can

also go into the machine by means of the Function Tables, panels 43 to

45. Here there are dial switches, which are set by hand. Instructions

can also go into the machine by setting the switches, plugging the

inputs and outputs, etc., of the wires or lines along which numbers and

instructions travel.

HOW INFORMATION COMES OUT OF THE MACHINE

There are two ways by which numerical information can come out of

the machine. Numbers can come out of the machine punched on cards by

the Summary Punch, panel 47. They are then printed in another room by

means of a separate IBM tabulator. Also, numbers can be read out of

the machine by means of the lights in the _neon bulbs_ mounted on each

accumulator. You can read in the lights of a panel the number held by

the accumulator, if the panel is not computing.

HOW INFORMATION IS MANIPULATED IN THE MACHINE

Eniac handles information rather differently from any other of the big

brains. Instead of having only one bus or “railroad line” along which

numbers can be sent, Eniac has more than 10 such lines. They are called

_digit trays_ and labeled A, B, C, ···. Each contains 11 _digit trunk

lines_ or _digit trunks_—10 to carry the digits of a number, and the

11th to carry the sign. Instead of having only one telegraph line along

which instructions can be sent, Eniac has more than 100 such lines.

They are called _program trunk lines_ or _program trunks_ and labeled

A1, A2, ···, A11, B1, B2, ···, B11, ···, etc. They are assembled in

groups of 11 to a tray; the _program trays_, in fact, look just like

the digit trays, except for their connectors and their purpose, which

are different. Below, we shall make clear how the program trays carry

control information.

Now, actually, Eniac has many more trunk lines than we have just

stated, for each of the lines we have mentioned can be divided into

numerous separate sections by the removal of plug connections. How

we choose to do this depends on the needs of the problem, the space

between the panels, the time when the line is used, etc.

Transferring Numbers, Adding, and Subtracting

Basically, a number is represented in Eniac by an arrangement of on

and off electronic tube elements in pairs, called _flip-flops_. There

is one flip-flop enclosed in a single tube (type 6SN7) for each value

0, 1, 2, 3, 4, 5, 6, 7, 8, 9 for each of the 10 digits stored in an

accumulator. So we have at least 100 flip-flops for each accumulator,

and thus at least 100 electronic tubes are required to store 10 digits.

Actually, an accumulator needs 550 electronic tubes. So we see that

there is not very much of a future in this type of arrangement. The

newer electronic brains use different devices for storage of numbers.

In order to show what number is stored in an accumulator, there are 100

little neon bulbs mounted on the face of each accumulator panel. Each

bulb glows when the flip-flop that belongs to it is on. For example,

suppose that the 4th decade in Accumulator 11 holds the digit 7. Then

the 7th flip-flop in that decade will be on, and all the others will be

off. The 7th neon bulb for that decade will glow.

Now suppose that the number 7 is in the 4th decade in Accumulator 11

and is to be added into, say, the 4th decade in Accumulator 13. And

suppose that it is to be subtracted from the 4th decade in Accumulator

16. What do we do, and what will Eniac do?

First, we pick out 2 digit trays, say B and D. Accumulator 11 has 2

outputs, called the _add output_ and the _subtract output_. We plug B

into the add output and D into the subtract output. Then we go over to

Accumulators 13 and 16. They have 5 inputs, that is, 5 ways of being

plugged to receive numbers from digit trunks. These inputs are named

with _Greek letters_, α, β, γ, δ, ε. We choose one input, say γ, for

Accumulator 13, and we plug B into that input. We choose one input, say

ε, for Accumulator 16, and we plug D into that input.

Now we have the “railroad” switching for numbers accomplished. We

have set up a channel whereby the number in Accumulator 11 will be

routed positively into Accumulator 13 and negatively into Accumulator

16. Now let us suppose that, at some definite time fixed by the

control, Accumulator 11 is stimulated to transmit and Accumulators

13 and 16 are conditioned to receive. When this happens, a group of

10 _pulses_ comes along a direct trunk from the cycling unit, and a

group of 9 pulses comes along another trunk. We can think of each

pulse as a little surge of electricity lasting about 2 millionths

of a second. The _ten-pulses_, as the first group is called, are 10

millionths of a second apart. The _nine-pulses_, as the second group

is called, are also 10 millionths of a second apart but are sandwiched

between the ten-pulses. When the 1st ten-pulse comes along, the 7th

flip-flop in Accumulator 11 goes off, the 8th flip-flop goes on, the

following nine-pulse goes through and goes out on the subtract line to

Accumulator 16. Then the 2nd ten-pulse comes along, the 8th flip-flop

goes off, the 9th flip-flop goes on, and the next nine-pulse goes out

on the subtract line to Accumulator 16. Now the decade sits at 9,

and for this reason the next ten-pulse changes an electronic switch

(actually another flip-flop) so that all later nine-pulses will go

out on the add line. This ten-pulse also turns off the 9th flip-flop

and turns on the 0th flip-flop without causing any carry. Now the 4th

of the ten-pulses comes along, turns the 0th flip-flop off, and turns

the 1st flip-flop on, and the next nine-pulse goes out on the add line

to Accumulator 13. The next 6 of the ten-pulses then come along and

change Accumulator 11 back to the digit 7 as before, and the next 6

of the nine-pulses go out to Accumulator 13. Thus Eniac has added 7

into Accumulator 13, has added 2, the _nines complement_ of 7 (see

Supplement 2), into Accumulator 16, and has left Accumulator 11 holding

the same number as before. This is just the result that we wanted.

In this way, the nines complement of any digit in a decade is

transferred out along the subtract line, and the digit unchanged is

transmitted out along the add line. As the pulses arrive at any other

accumulator, they add into that accumulator.

Multiplying and Dividing

Eniac performs multiplication by a built-in table of the products in

the 10-by-10 multiplication table, using the method of _left-hand

components_ and _right-hand components_ (see Supplement 2). For

example, suppose that the 3rd digit of the multiplier is 7 and that the

5th digit of the multiplicand is 6. Then, when Eniac attends to the

3rd digit of the multiplier, the right-hand digit of the 42 = 6 × 7 is

gathered in one accumulator, and the left-hand digit 4 is gathered in

another accumulator. After Eniac has attended to all the digits of the

multiplier, then Eniac performs one more addition and transfers the sum

of the left-hand digits into the right-hand digits accumulator.

Eniac does division in rather a novel way. First, the divisor is

subtracted over and over until the result becomes negative or 0. Then

the machine shifts to the next column and adds the divisor until the

result becomes positive or 0. It continues this process, alternating

from column to column. For example, suppose that we divide 3 into 84 in

this way. We have:

______ _

3 ) 84 ( 32

-3

——

+54

-3

——

+24

-3

——

-6

+3

——

-3

+3

——

0

After we subtract 3 the third time, the result becomes negative,-6;

in the next column, after we add 3 twice, the result becomes 0. The

quotient is

_

32, which is the same as 30 - 2, or 28;

and 3 × 28 is 84. Thus the process checks.

Consulting a Table

Eniac has three Function Tables. Here you can store numbers or

instructions for the machine to refer to. Each Function Table has

104 _arguments_ (see Supplement 2). For each argument, you can store

12 digits and 2 signs that may be plus or minus. This capacity can

be devoted to one 12-digit number with a sign, or to two 6-digit

numbers each with a sign, or to six 2-digit instructions. The three

Function Tables are panels 43, 44, and 45. To put in the numbers or

instructions, you have to go over to these panels and set the numbers

or instructions, digit by digit, turning dial switches by hand. It is

slow and hard to do this right, but once it is done, Eniac can refer

to any number or instruction in any table in ¹/₁₀₀₀ of a second. This

is much faster than the table reference time in any other of the giant

brains built up to 1948.

Programming

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 program pulse. For instance,

there are switch settings for: receive input on the α line, receive

input on the β 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:

1. We plug from program trunk G3 into a program-pulse

input hub, say No. 5, of Accumulator 11;

2. We plug from the same program trunk G3 into a

program-pulse input hub, say No. 7, of Accumulator 13;

3. We set program-control switch No. 5 of Accumulator

11 to “add”;

4. We set program-control switch No. 7 of Accumulator

13 to some input, say γ.

5. We plug from digit tray B into the add output of

Accumulator 11.

6. We plug from digit tray B into the γ input of

Accumulator 13.

Now, when the program pulse comes along line G3, it makes Accumulator

13 transmit additively along digit tray B into Accumulator 13. And that

is the result that we wanted.

As each mechanism of Eniac finishes what it is instructed to do, it

may or may not put out a program pulse. This pulse in turn may be

plugged into any other program trunk line and may stimulate another

mechanism to act. Then, when this mechanism finishes, it too may or may

not put out a program pulse, and so on.

In general, there are two different ways to instruct Eniac to do a

problem. One way is to set all the switches, plug all the connections,

etc., for the specific problem. This is a long and hard task. Very

often, even with great care, it is done not quite correctly, and

then the settings must be carefully checked all over again. A second

method (called the _von Neumann programming method_) is to store all

the instructions for a problem in one or two function tables of Eniac

and then tell Eniac to read the function tables in sequence and to do

what they say. The rest of the machine is then wired up in a standard

fashion. This method of instructing Eniac was proposed by Dr. John von

Neumann of the Institute of Advanced Study at Princeton, N. J. Eniac

has been modified to the slight extent needed so that this method can

be used when desired. In this method, each instruction is a selected

one of 60 different standard instructions or orders—one of them, for

example, being “multiplication.” Each standard order is expressed by

2 decimal digits. The 60 standard orders are sufficient so that Eniac

can do any mathematical problem that does not overstrain its capacity.

Since each of the 3 Function Tables can hold 600 2-digit instructions,

the machine can hold a program of 1800 instructions under the von

Neumann programming method.

AN APPRAISAL OF ENIAC AS A COMPUTER

As a general-purpose calculating machine, Eniac suffers from unbalance.

That is to say, Eniac operates rapidly and successfully in some

respects, and slowly and troublesomely in other respects. This is

altogether to be expected, however, in a calculator as novel as Eniac

and made to so large an extent out of standard radio parts. It was

certainly better to finish a calculator like this one and then start

on a new one, as the Moore School of Electrical Engineering did, than

to prolong design and construction indefinitely in order to make

improvements.

Speed

Eniac adds or subtracts very swiftly at the rate of 5000 a second.

Eniac multiplies at the rate of 360 to 500 a second. Division,

however, is slow, relatively; the rate is about 50 a second. Reading

numbers from punched cards, 12 a second for 10-digit numbers, is even

slower. As a result of these rates, you find, when you put a problem

on Eniac, that one division delays you as long as 100 additions or

8 multiplications. Division might have been speeded somewhat by

(1) _rapidly convergent approximation_ (see Supplement 2) to the

_reciprocal_ of the divisor and (2) multiplying by the dividend; this

might have taken 5 or 6 multiplication times instead of 8. Also, the

use of a standard IBM punch-card feed and card punch slows the machine

greatly. One way to overcome this drawback might be to install one or

two additional sets of such equipment, which might increase input and

output speed.

Ease of Programming

Eniac has a very rapid and flexible automatic control over the

programming of operations. Eniac has more than 10 channels along which

numbers can be transferred and more than 100 channels along which

program-control pulses can be transferred. There are many ways for

providing subroutines. Eniac has the additional advantage that there

is no delay in giving the machine successive instructions: all the

instructions the machine may need at any time are ready at the start of

the problem, and indications occurring in the calculation can change

the routine completely.

All these advantages, however, are paid for rather heavily by the

slow methods for changing programming. You have to plug large numbers

of program trunk lines and digit trunk lines, or you have to set

large numbers of switches, or both. Also, when you wish to return to

a previous problem, you must do all the plugging and switch setting

over again. Many delays in the operation of the machine are due to

human errors in setting the machine for a new problem. Here again, we

must remember that Eniac was originally designed as a special-purpose

machine for solving trajectories. To calculate a large family of

trajectories very little changing of wires and switches would be

needed.

Memory

The most severe limitation on the usefulness of Eniac was, at the

outset, the fact that it had only 20 registers for storing numbers.

There are large numbers of problems that cannot be simply handled with

so small an internal memory. Even the Harvard IBM calculator (see

Chapter 6) is often strained during a problem because of the number of

intermediate results that must be stored for a time before combining.

The Ballistic Research Laboratories, however, contracted for extensions

to Eniac to provide more memory and easier changing of instructions.

Reliability

Checking results with Eniac is not easy. There is no built-in guarantee

that Eniac’s results are correct. A large calculator can and does make

both constant and intermittent errors. Ways for checking with Eniac are:

Mathematical, if and when available, and this will be

seldom.

Running the problem a second time, and this will, at

most, prove consistency.

Deliberate testing of small parts of the problem,

which is very useful and is standard practice but

leads only to a probability that the final result is

correct.

You can operate Eniac one addition at a time, and even one pulse at a

time, and see what the machine shows in its little neon bulbs. This is

a very useful partial check.

Cost

The cost of Eniac is higher than that of some of the other large

mechanical brains—over half a million dollars. Because some of the

work was done at the Moore School by students, the cost was probably

less than it otherwise would have been. The largest part of the cost

was the designing of the machine and the construction of the panels;

the tubes were only a small portion of the cost. The tubes used in

the calculating circuits cost only 20 to 90 cents. However, no later

electronic calculator need cost as much, for many improvements can now

be seen.

The power required for Eniac is about 150 kilowatts or about 200

horsepower, most of which is used for the heaters of the electronic

tubes. The largest number of electronic tubes mentioned for future

electronic calculators is about 3000, so we can see that they are

likely to use less than a quarter of the power needed for Eniac.

Eniac will doubtless give a number of years of successful operation

and be extremely useful for problems that employ its assets and are

not excluded by its limitations. In fact, at the Ballistic Research

Laboratories, for a typical week of actual work, Eniac has already

proved to be equal to 500 human computers working 40 hours with desk

calculating machines, and it appears that soon two or three times as

much work may be obtained from Eniac.

Giant brains; or, Machines that think · 第 1 / 7 章