brightening the future of computing machines. As early as 1915 the Ford
Instrument Company was producing in quantity a device known as “Range
Keeper Mark I,” thought to be the first electrical-analog computer. In
1920, General Electric built a “short-circuit calculating board” that
was an analog or model of the real circuits being tested. Westinghouse
came up with an “alternating-current network analyzer” in 1933, and this
analog computer was found to be a powerful tool for mathematics.
[Illustration:
_International Business Machines Corp._
A vertical punched-card sorter used in 1908.
]
While scientists were putting the machines to work, writers continued to
prophesy doom when the mechanical man took over. Mary W. Shelley’s
_Frankenstein_ created a monster from a human body; a monster that in
time would take his master’s name and father a long horrid line of other
fictional monsters. Ambrose G. Bierce wrote of a diabolical
chess-playing machine that was human enough to throttle the man who beat
him at a game. But it remained for the Czech playwright Karel Čapek to
give the world the name that has stuck to the mechanical man. In Čapek’s
1921 play, _R.U.R._, for Rossum’s Universal Robots, we are introduced to
humanlike workers grown in vats of synthetic protoplasm. _Robota_ is a
Czech word meaning compulsory service, and apparently these mechanical
slaves did not take to servitude, turning on their masters and killing
them. Robot is generally accepted now to mean a mobile thinking machine
capable of action. Before the advent of the high-speed electronic
computer it had little likelihood of stepping out of the pages of a
novel or movie script.
As early as 1885, Allan Marquand had proposed an electrical logic
machine as an improvement over his simple mechanically operated model,
but it was 1936 before such a device was actually built. In that year
Benjamin Burack, a member of Chicago’s Roosevelt College psychology
department, built and demonstrated his “Electrical Logic Machine.” Able
to test all syllogisms, the Burack machine was unique in another
respect. It was the first of the portable electrical computers.
The compatibility of symbolic logic and electrical network theory was
becoming evident at about this time. The idea that yes-no corresponded
to on-off was beautifully simple, and in 1938 there appeared in one of
the learned journals what may fairly be called a historic paper.
Appearing in _Transactions of the American Institute of Electrical
Engineers_, “A Symbolic Analysis of Relay and Switching Circuits,” was
written by Claude Shannon and was based on his thesis for the M.S.
degree at the Massachusetts Institute of Technology a year earlier. One
of its important implications was that the programming of a computer was
more a logical than an arithmetical operation. Shannon had laid the
groundwork for logical computer design; his work made it possible to
teach the machine not only to add but also to think. Another monumental
piece of work by Shannon was that on information theory, which
revolutionized the science of communications. The author is now on the
staff of the electronics research laboratory at M.I.T.
Two enterprising Harvard undergraduates put Shannon’s ideas to work on
their problems in the symbolic logic class they were taking. Called a
Kalin-Burkhart machine for its builders, this electrical logic machine
did indeed work, solving the students’ homework assignments and saving
them much tedious paperwork. Interestingly, when certain logical
questions were posed for the machine, its circuits went into
oscillation, making “a hell of a racket” in its frustration. The
builders called this an example of “Russell’s paradox.” A typical
logical paradox is that of the barber who shaved all men who didn’t
shave themselves—who shaves the barber? Or of the condemned man
permitted to make a last statement. If the statement is true, he will be
beheaded; if false, he will hang. The man says, “I shall be hanged,” and
thus confounds his executioners as well as logic, since if he is hanged,
the statement is indeed true, and he should have been beheaded. If he is
beheaded, the statement is false, and he should have been hanged
instead.
World War II, with its pressingly complex technological problems,
spurred computer work mightily. Men like Vannevar Bush, then at Harvard,
produced analog computers called “differential analyzers” which were
useful in solving mathematics involved in design of aircraft and in
ballistics problems.
A computer built by General Electric for the gunsights on the World War
II B-29 bomber is typical of applications of analog devices for
computing and predicting, and is also an example of early airborne use
of computing devices. Most computers, however, were sizable affairs. One
early General Electric analog machine, described as a hundred feet long,
indicates the trend toward the “giant brain” concept.
Even with the sophistication attained, these computers were hardly more
than extensions of mechanical forerunners. In other words, gears and
cams properly proportioned and actuated gave the proper answers whether
they were turned by a manual crank or an electrical motor. The digital
computer, which had somehow been lost in the shuffle of interest in
computers, was now appearing on the scientific horizon, however, and in
this machine would flower all the gains in computers from the abacus to
electrical logic machines.
_The Modern Computer_
Many men worked on the digital concept. Aiken, who built the
electromechanical Mark I at Harvard, and Williams in England are
representative. But two scientists at the University of Pennsylvania get
the credit for the world’s first electronic digital computer, ENIAC, a
30-ton, 150-kilowatt machine using vacuum tubes and semiconductor diodes
and handling discrete numbers instead of continuous values as in the
analog machine. The modern computer dates from ENIAC, Electronic
Numerical Integrator And Computer.
[Illustration:
_Remington Rand UNIVAC_
ENIAC in operation. This was the first electronic digital computer.
]
Shannon’s work and the thinking of others in the field indicated the
power of the digital, yes-no, approach. A single switch can only be on
or off, but many such switches properly interconnected can do amazing
things. At first these switches were electromechanical; in the
Eckert-Mauchly ENIAC, completed for the government in 1946, vacuum tubes
in the Eccles-Jordan “flip-flop” circuit married electronics and the
computer. The progeny have been many, and their generations faster than
those of man. ENIAC has been followed by BINAC and MANIAC, and even
JOHNNIAC. UNIVAC and RECOMP and STRETCH and LARC and a whole host of
other machines have been produced. At the start of 1962 there were some
6,000 electronic digital computers in service; by year’s end there will
be 8,000. The golden age of the computer may be here, but as we have
seen, it did not come overnight. The revolution has been slow, gathering
early momentum with the golden wheels of Homer’s mechanical
information-seeking vehicles that brought the word from the gods. Where
it goes from here depends on us, and maybe on the computer itself.
------------------------------------------------------------------------
“_Theory is the guide to practice, and practice is the ratification
and life of theory._”
—John Weiss
3: How Computers Work
In the past decade or so, an amazing and confusing number of computing
machines have developed. To those of us unfamiliar with the beast, many
of them do not look at all like what we imagined computers to be; others
are even more awesome than the wildest science-fiction writer could
dream up. On the more complex, lights flash, tape reels spin dizzily,
and printers clatter at mile-a-minute speeds. We are aware, or perhaps
just take on faith, that the electronic marvel is doing its sums at so
many thousand or million per second, cranking out mathematical proofs
and processing data at a rate to make mere man seem like the dullest
slowpoke. Just how computers do this is pretty much of a mystery unless
we are of the breed that works with them. Actually, in spite of all the
blurring speed and seeming magic, the basic steps of computer operation
are quite simple and generally the same for all types of machines from
the modestly priced electromechanical do-it-yourself model to STRETCH,
MUSE, and other ten-million-dollar computers.
It might be well before we go farther to learn a few words in the
lexicon of the computer, words that are becoming more and more a part of
our everyday language. The following glossary is of course neither
complete nor technical but it will be helpful in following through the
mechanics of computer operation.
COMPUTER DICTIONARY
ACCESS TIME—Time required for computer to locate data and transfer it
from one computer element to another.
ADDER—Device for forming sums in the computer.
ADDRESS—Specific location of information in computer memory.
ANALOG COMPUTER—A physical or electrical simulator which produces an
analogy of the mathematical problem to be solved.
ARITHMETIC UNIT—Unit that performs arithmetical and logical operations.
BINARY CODE—Representation of numbers or other information using only
one and zero, to take advantage of open and closed circuits.
BIT—A binary digit, either one or zero; used to make binary numbers.
BLOCK—Group of words handled as a unit, particularly with reference to
input and output.
BUFFER—Storage device to compensate for difference in input and
operation rate.
CONTROL UNIT—Portion of the computer that controls arithmetic and
logical operations and transfer of information.
DELAY LINE—Memory device to store and later reinsert information; uses
physical, mechanical, or electrical techniques.
DIGITAL COMPUTER—A computer that uses discrete numbers to represent
information.
FLIP-FLOP—A circuit or device which remains in either of two states
until the application of a signal.
GATE—A circuit with more than one input, and an output dependent on
these inputs. An AND gate’s output is energized only when all inputs are
energized. An OR gate’s output is energized when one or more inputs are
energized. There are also NOT-AND gates, EXCLUSIVE-OR gates, etc.
LOGICAL OPERATION—A nonarithmetical operation, i.e., decision-making,
data-sorting, searching, etc.
MAGNETIC DRUM—Rotating cylinder storage device for memory unit; stores
data in coded form.
MATRIX—Circuitry for transformation of digital codes from one type to
another; uses wires, diodes, relays, etc.
MEMORY UNIT—That part of the computer that stores information in machine
language, using electrical or magnetic techniques.
MICROSECOND—One millionth of a second.
MILLISECOND—One thousandth of a second.
NANOSECOND—One billionth of a second.
PARALLEL OPERATION—Digital computer operation in which all digits are
handled simultaneously.
PROGRAMMING—Steps to be executed by computer to solve problem.
RANDOM ACCESS—A memory system that permits more nearly equal access time
to all memory locations than does a nonrandom system. Magnetic core
memory is a random type, compared with a tape reel memory.
REAL TIME—Computer operation simultaneous with input of information;
e.g., control of a guided missile or of an assembly line.
REGISTER—Storage device for small amount of information while, or until,
it is needed.
SERIAL OPERATION—Digital computer operation in which all digits are
handled serially.
STORAGE—Use of drums, tapes, cards, and so on to store data outside the
computer proper.
_The Computer’s Parts_
Looking at computers from a distance, we are vaguely aware that they are
given problems in the form of coded instructions and that through some
electronic metamorphosis this problem turns into an answer that is
produced at the readout end of the machine. There is an engineering
technique called the “black box” concept, in which we are concerned only
with input to this box and its output. We could extend this concept to
“black-magic box” and apply it to the computer, but breaking the system
down into its components is quite simple and much more informative.
There are five components that make up a computer: input, control,
arithmetic (or logic) unit, memory, and output. As machine intelligence
expert, Dr. W. Ross Ashby, points out, we can get no more out of a
brain—mechanical or human—than we put into it. So we must have an input.
The kind of input depends largely on the degree of sophistication of the
machine we are considering.
With the abacus we set in the problem mechanically, with our fingers.
Using a desk calculator we punch buttons: a more refined mechanical
input. Punched cards or perforated tapes are much used input methods. As
computers evolve rapidly, some of them can “read” for themselves and the
input is visual. There are also computers that understand verbal
commands.
Input should not be confused with the control portion of the computer’s
anatomy. We feed in data, but we must also tell the computer what to do
with the information. Shall it count the number of cards that fly
through it, or shall it add the numbers shown on the cards, record the
maximum and minimum, and print out an average? Control involves
programming, a computer term that was among the first to be assimilated
into ordinary language.
The arithmetic unit—that part of the computer that the pioneer Babbage
called his “mill”—is the nuts and bolts end of the business. Here are
the gears and shafts, the electromechanical relays, or the vacuum tubes,
transistors, and magnetic cores that do the addition, multiplication,
and other mathematical operations. Sometimes this is called the “logic”
unit, since often it manipulates the ANDS, ORS, NORS, and other
conjunctives in the logical algebra of Boole and his followers.
The memory unit is just that; a place where numbers, words, or other
data are stored and ready to be called into use whenever needed. There
are two broad types of memory, internal and external, and they parallel
the kind of memory we use ourselves. While our brain can store many,
many facts, it does have a practical limit. This is why we have phone
books, logarithm tables, strings around fingers, and so on. The computer
likewise has its external memory that may store thousands of times the
capacity of its internal memory. Babbage’s machine could remember a
thousand fifty-digit numbers; today’s large computers call on millions
of bits of data.
[Illustration:
Conversion of problem to machine program.
]
After we have dumped in the data and told the computer what to do with
them, and the arithmetic and memory have collaborated, it remains only
for the computer to display the result. This is the output of the
computer, and it can take many forms. If we are using a simple analog
computer such as a slide rule, the answer is found under the hairline on
the slide. An electronic computer in a bank prints out the results of
the day’s transactions in neat type at hundreds of lines a minute. The
SAGE defense computer system displays an invading bomber and plots the
correct course for interceptors on a scope; a computer in a playful mood
might type out its next move—King to Q7 and checkmate.
With this sketchy over-all description to get us started, let us study
each unit in a little more detail. It is interesting to compare these
operations with those of our human computer, our brain, as we go along.
[Illustration:
_Remington Rand UNIVAC_
A large computer, showing the different parts required.
]
_Input_
An early and still very popular method of getting data into the computer
is the punched card. Jacquard’s clever way of weaving a pattern got into
the computer business through Hollerith’s census counting machines.
Today the ubiquitous IBM card can do these tasks of nose counting and
weaving, and just about everything else in between. Jacquard used the
punched holes to permit certain pins to slide through. Hollerith
substituted the mercury electrical contact for the loom’s flying
needles. Today there are many other ways of “reading” the cards. Metal
base plate and springs, star wheels, even photoelectric cells are used
to detect the presence or absence of the coded holes. A human who knows
the code can visually extract the information; a blind man could do it
by the touch system. So with the computer, there are many ways of
transferring data.
[Illustration:
_Remington Rand_ UNIVAC
The Computer’s Basic Parts.
]
An obvious requirement of the punched card is that someone has to punch
the holes in the first place. This is done with manually operated
punches, power punches, and even automatic machines that handle more
than a hundred cards a minute. Punched cards, which fall into the
category called computer “software,” are cheap, flexible, and compatible
with many types of equipment.
Particularly with mathematical computations and scientific research,
another type of input has become popular, that of paper tape. This in
effect strings many cards together and puts them on an easily handled
roll. Thus a long series of data can be punched without changing cards,
and is conveniently stored for repeated use. Remember the old
player-piano rolls of music? These actually formed the input for one
kind of computer, a musical machine that converted coded holes to
musical sounds by means of pneumatic techniques. Later in this chapter
we will discuss some modern pneumatic computers.
More efficient than paper is magnetic tape, the same kind we use in our
home recording instruments. Anyone familiar with a tape recorder knows
how easy it is to edit or change something on a tape reel. This is a big
advantage over punched cards or paper tapes which are physically altered
by the data stored on them and cannot be corrected. Besides this,
magnetic tape can hold many more “bits” of information than paper and
also lends itself to very rapid movement through the reading head of the
computer. For example, standard computer tape holds seven tracks, each
with hundreds of bits of information per inch. Since there are thousands
of feet on a ten-inch reel, it is theoretically possible to pack 40
_million_ bits on this handful of tape!
Since the computer usually can operate at a much higher rate of speed
than we can put information onto tape, it is often the practice to have
a “buffer” in the input section. This receiving station collects and
stores information until it is full, then feeds it to the computer which
gobbles it up with lightning speed. Keeping a fast computer continuously
busy may require many different inputs.
Never satisfied, computer designers pondered the problem of all the lost
time entailed in laboriously preparing cards or tapes for the ravenous
electronic machine. The results of this brain-searching are interesting,
and they are evident in computers that actually read man-talk. Computers
used in the post office and elsewhere can optically read addresses as
well as stamps; banks have computers that electrically read the coded
magnetic ink numbers on our checks and process thousands of times as
many as human workers once did. This optical reading input is not
without its problems, of course. Many computers require a special type
face to be used, and the post office found that its stamp recognizer was
mistaking Christmas seals for foreign stamps. Improved read heads now
can read hand-printed material and will one day master our widely
differing human scrawls. This is of course a boon to the “programmer” of
lengthy equations who now has to translate the whole problem into
machine talk before the machine can accept it.
If a machine can read, why can’t it understand verbal input as well?
Lazy computer engineers have pushed this idea, and the simplest input
system of all is well on the way to success. Computers today can
recognize numbers and a few words, and the Japanese have a typewriter
that prints out the words spoken to it! These linguistic advances that
electronic computers are making are great for everyone, except perhaps
the glamorized programmer, a new breed of mathematical logician whose
services have been demanded in the last few years.
[Illustration:
Magnetic Tape - Paper Tape - IBM Card - Magnetic Ink Characters
]
_Control_
Before we feed the problem into the machine, or before we give it some
“raw” data to process, we had better tell our computer what we want it
to do. All the fantastic speed of our electrons will result in a
meaningless merry-go-round, or perhaps a glorious machine-stalling short
circuit unless the proper switches open and close at the right time.
This is the job of the control unit of the computer, a unit that
understands commands like “start,” “add,” “subtract,” “find the square
root,” “file in Bin B,” “stop,” and so on. The key to all the computer’s
parts working together in electronic harmony is its “clock.” This
timekeeper in effect snaps its fingers in perfect cadence, and the
switches jump at its bidding. Since the finger-snapping takes place at
rates of millions of snaps a second, the programmer must be sure he has
instructed the computer properly.
The ideal programmer is a rare type with a peculiarly keen brain that
sometimes takes seemingly illogical steps to be logical. Programmers are
likely to be men—or women, for there is no sex barrier in this new
profession—who revel in symbolic logic and heuristic or “hunch”
reasoning. Without a program, the computer is an impressively elaborate
and frighteningly expensive contraption which cannot tell one number
from another. The day may come when the mathematician can say to the
machine, “Prove Fermat’s last theorem for me, please,” or the engineer
simply wish aloud for a ceramic material that melts at 15,000° C. and
weighs slightly less than Styrofoam. Even then the human programmer will
not start drawing unemployment insurance, of course. If he is not
receiving his Social Security pension by then he will simply shift to
more creative work such as thinking up more problems for the machine to
solve.
Just as there are many jobs for the computer, so there are many kinds of
programs. On a very simple, special-purpose computer, the program may be
“wired-in,” or fixed, so that the computer can do that particular job
and no other. On a more flexible machine, the program may still be quite
simple, perhaps no more than a card entered in a desk unit by an airline
ticket agent to let the computer arrange a reservation for three tourist
seats on American Airlines jet flight from Phoenix to Chicago at 8:20
A.M. four days from now. On a general-purpose machine, capable of many
problems, the program may be unique, a one-of-a-kind highly complex set
of instructions that will make the computer tax its huge memory and do
all sorts of mental “nip-ups” before it reaches a solution.
A computer that understands about sixty commands has been compared to a
Siamese elephant used for teak logging; the animal has about that many
words in its vocabulary. Vocabulary is an indication of computer as well
as human sophistication. The trend is constantly toward
less-than-elephant size, and more-than-elephant vocabulary.
The programmer’s work can be divided into four basic phases: _analysis_
of the problem; _application_ or matching problem requirements with the
capabilities of the right computer; _flow charting_ the various
operations using symbolic diagrams; and finally, _coding_ or translating
the flow chart into language the computer knows.