Four
ENIAC panels and one of its three function tables, on display at the
School of Engineering and Applied Science at the University of
Pennsylvania
| |
Location | University of Pennsylvania Department of Computer and Information Science, 3330 Walnut Street, Philadelphia, Pennsylvania, U.S. |
---|---|
Coordinates | 39.9522012°N 75.1909932°WCoordinates: 39.9522012°N 75.1909932°W |
PHMC dedicated | Thursday, June 15, 2000 |
ENIAC (/ˈɛniæk/; Electronic Numerical Integrator and Computer) was the first electronic general-purpose computer. It was Turing-complete, digital and able to solve "a large class of numerical problems" through reprogramming.
Although ENIAC was designed and primarily used to calculate artillery firing tables for the United States Army's Ballistic Research Laboratory (which later became a part of the Army Research Laboratory), its first program was a study of the feasibility of the thermonuclear weapon.
ENIAC was completed in 1945 and first put to work for practical purposes on December 10, 1945.
ENIAC was formally dedicated at the University of Pennsylvania on February 15, 1946 and was heralded as a "Giant Brain" by the press. It had a speed on the order of one thousand times faster than that of electro-mechanical
machines; this computational power, coupled with general-purpose
programmability, excited scientists and industrialists alike. The
combination of speed and programmability allowed for thousands more
calculations for problems, as ENIAC calculated a trajectory in 30
seconds that took a human 20 hours (allowing one ENIAC hour to displace
2,400 human hours).
The completed machine was announced to the public the evening of
February 14, 1946 and formally dedicated the next day at the University
of Pennsylvania, having cost almost $500,000 (approximately $6,300,000
today). It was formally accepted by the U.S. Army Ordnance Corps in July
1946. ENIAC was shut down on November 9, 1946 for a refurbishment and a
memory upgrade, and was transferred to Aberdeen Proving Ground, Maryland in 1947. There, on July 29, 1947, it was turned on and was in continuous operation until 11:45 p.m. on October 2, 1955.
Development and design
ENIAC's
design and construction was financed by the United States Army,
Ordnance Corps, Research and Development Command, led by Major General Gladeon M. Barnes. The total cost was about $487,000, equivalent to $7,051,000 in 2018. The construction contract was signed on June 5, 1943; work on the computer began in secret at the University of Pennsylvania's Moore School of Electrical Engineering the following month, under the code name "Project PX", with John Grist Brainerd as principal investigator. Herman H. Goldstine persuaded the Army to fund the project, which put him in charge to oversee it for them.
ENIAC was designed by John Mauchly and J. Presper Eckert of the University of Pennsylvania, U.S. The team of design engineers assisting the development included Robert F. Shaw (function tables), Jeffrey Chuan Chu (divider/square-rooter), Thomas Kite Sharpless (master programmer), Frank Mural (master programmer), Arthur Burks (multiplier), Harry Huskey (reader/printer) and Jack Davis (accumulators). In 1946, the researchers resigned from the University of Pennsylvania and formed the Eckert-Mauchly Computer Corporation.
ENIAC was a modular computer, composed of individual panels to
perform different functions. Twenty of these modules were accumulators
that could not only add and subtract, but hold a ten-digit decimal number in memory. Numbers were passed between these units across several general-purpose buses (or trays,
as they were called). In order to achieve its high speed, the panels
had to send and receive numbers, compute, save the answer and trigger
the next operation, all without any moving parts. Key to its versatility
was the ability to branch; it could trigger different operations, depending on the sign of a computed result.
Components
By the end of its operation in 1956, ENIAC contained 20,000 vacuum tubes; 7,200 crystal diodes; 1,500 relays; 70,000 resistors; 10,000 capacitors; and approximately 5,000,000 hand-soldered
joints. It weighed more than 30 short tons (27 t), was roughly 2.4 m
× 0.9 m × 30 m (8 ft × 3 ft × 98 ft) in size, occupied 167 m2 (1,800 sq ft) and consumed 150 kW of electricity. This power requirement led to the rumor that whenever the computer was switched on, lights in Philadelphia dimmed. Input was possible from an IBM card reader and an IBM card punch was used for output. These cards could be used to produce printed output offline using an IBM accounting machine, such as the IBM 405. While ENIAC had no system to store memory in its inception, these punch cards could be used for external memory storage. In 1953, a 100-word magnetic-core memory built by the Burroughs Corporation was added to ENIAC.
ENIAC used ten-position ring counters to store digits; each digit required 36 vacuum tubes, 10 of which were the dual triodes making up the flip-flops
of the ring counter. Arithmetic was performed by "counting" pulses with
the ring counters and generating carry pulses if the counter "wrapped
around", the idea being to electronically emulate the operation of the
digit wheels of a mechanical adding machine.
ENIAC had 20 ten-digit signed accumulators, which used ten's complement
representation and could perform 5,000 simple addition or subtraction
operations between any of them and a source (e.g., another accumulator
or a constant transmitter) per second. It was possible to connect
several accumulators to run simultaneously, so the peak speed of
operation was potentially much higher, due to parallel operation.
It was possible to wire the carry of one accumulator into another accumulator to perform double precision
arithmetic, but the accumulator carry circuit timing prevented the
wiring of three or more for even higher precision. ENIAC used four of
the accumulators (controlled by a special multiplier unit) to perform up
to 385 multiplication operations per second; five of the accumulators
were controlled by a special divider/square-rooter unit to perform up to
40 division operations per second or three square root operations per second.
The other nine units in ENIAC were the initiating unit (started
and stopped the machine), the cycling unit (used for synchronizing the
other units), the master programmer (controlled loop sequencing), the
reader (controlled an IBM punch-card reader), the printer (controlled an
IBM card punch), the constant transmitter, and three function tables.
Operation times
The references by Rojas and Hashagen (or Wilkes) give more details about the times for operations, which differ somewhat from those stated above.
The basic machine cycle was 200 microseconds
(20 cycles of the 100 kHz clock in the cycling unit), or 5,000 cycles
per second for operations on the 10-digit numbers. In one of these
cycles, ENIAC could write a number to a register, read a number from a
register, or add/subtract two numbers.
A multiplication of a 10-digit number by a d-digit number (for d up to 10) took d+4
cycles, so a 10- by 10-digit multiplication took 14 cycles, or 2,800
microseconds—a rate of 357 per second. If one of the numbers had fewer
than 10 digits, the operation was faster.
Division and square roots took 13(d+1) cycles, where d
is the number of digits in the result (quotient or square root). So a
division or square root took up to 143 cycles, or 28,600 microseconds—a
rate of 35 per second. (Wilkes 1956:20
states that a division with a 10 digit quotient required 6
milliseconds.) If the result had fewer than ten digits, it was obtained
faster.
Reliability
ENIAC used common octal-base radio tubes of the day; the decimal accumulators were made of 6SN7 flip-flops, while 6L7s, 6SJ7s, 6SA7s and 6AC7s were used in logic functions. Numerous 6L6s and 6V6s served as line drivers to drive pulses through cables between rack assemblies.
Several tubes burned out almost every day, leaving ENIAC
nonfunctional about half the time. Special high-reliability tubes were
not available until 1948. Most of these failures, however, occurred
during the warm-up and cool-down periods, when the tube heaters and
cathodes were under the most thermal stress. Engineers reduced ENIAC's
tube failures to the more acceptable rate of one tube every two days.
According to an interview in 1989 with Eckert, "We had a tube fail about
every two days and we could locate the problem within 15 minutes."
In 1954, the longest continuous period of operation without a failure was 116 hours—close to five days.
Programming
ENIAC
could be programmed to perform complex sequences of operations,
including loops, branches, and subroutines. However, instead of the stored-program computers
that exist today, ENIAC was just a large collection of arithmetic
machines, which originally had programs set up into the machine by a combination of plugboard wiring and three portable function tables (containing 1200 ten-way switches each).
The task of taking a problem and mapping it onto the machine was
complex, and usually took weeks. Due to the complexity of mapping
programs onto the machine, programs were only changed after huge numbers
of tests of the current program.
After the program was figured out on paper, the process of getting the
program into ENIAC by manipulating its switches and cables could take
days. This was followed by a period of verification and debugging, aided
by the ability to execute the program step by step. A programming
tutorial for the modulo function using an ENIAC simulator gives an
impression of what a program on the ENIAC looked like.
ENIAC's six primary programmers, Kay McNulty, Betty Jennings, Betty Snyder, Marlyn Wescoff, Fran Bilas and Ruth Lichterman, not only determined how to input ENIAC programs, but also developed an understanding of ENIAC's inner workings.
The programmers were often able to narrow bugs down to an individual
failed tube which could be pointed to for replacement by a technician.
Programmers
Kay McNulty, Betty Jennings, Betty Snyder, Marlyn Meltzer, Fran Bilas, and Ruth Lichterman
were the first programmers of the ENIAC. They were not, as computer
scientist and historian Kathryn Kleiman was once told, "refrigerator
ladies", i.e., models posing in front of the machine for press
photography. Nevertheless, some of the women did not receive recognition for their work on the ENIAC in their lifetimes.
These early programmers were drawn from a group of about two hundred women employed as computers at the Moore School of Electrical Engineering
at the University of Pennsylvania. The job of computers was to produce
the numeric result of mathematical formulas needed for a scientific
study, or an engineering project. They usually did so with a mechanical
calculator. This was one of the few technical job categories available
to women at that time. Betty Holberton (née Snyder) continued on to help write the first generative programming system (SORT/MERGE) and help design the first commercial electronic computers, the UNIVAC and the BINAC, alongside Jean Jennings. McNulty developed the use of subroutines in order to help increase ENIAC's computational capability.
Herman Goldstine
selected the programmers, whom he called operators, from the computers
who had been calculating ballistics tables with mechanical desk
calculators, and a differential analyzer prior to and during the
development of ENIAC. Under Herman and Adele Goldstine's
direction, the computers studied ENIAC's blueprints and physical
structure to determine how to manipulate its switches and cables, as programming languages
did not yet exist. Though contemporaries considered programming a
clerical task and did not publicly recognize the programmers' impact on
the successful operation and announcement of ENIAC, McNulty, Jennings, Snyder, Wescoff, Bilas, and Lichterman have since been recognized for their contributions to computing.
The "programmer" and "operator" job titles were not originally
considered professions suitable for women. The labor shortage created by
World War II helped enable the entry of women into the field.
However, the field was not viewed as prestigious, and bringing in women
was viewed as a way to free men up for more skilled labor. For example,
the National Advisory Committee for Aeronautics said in 1942, "It is
felt that enough greater return is obtained by freeing the engineers
from calculating detail to overcome any increased expenses in the
computers' salaries. The engineers admit themselves that the girl
computers do the work more rapidly and accurately than they would. This
is due in large measure to the feeling among the engineers that their
college and industrial experience is being wasted and thwarted by mere
repetitive calculation".
Following the initial six programmers, an expanded team of a
hundred scientists was recruited to continue work on the ENIAC. Among
these were several women, including Gloria Ruth Gordon. Adele Goldstine wrote the original technical description of the ENIAC.
Role in the hydrogen bomb
Although the Ballistic Research Laboratory was the sponsor of ENIAC, one year into this three-year project John von Neumann, a mathematician working on the hydrogen bomb at Los Alamos National Laboratory, became aware of this computer. Los Alamos
subsequently became so involved with ENIAC that the first test problem
run consisted of computations for the hydrogen bomb, not artillery
tables. The input/output for this test was one million cards.
Role in development of the Monte Carlo methods
Related to ENIAC's role in the hydrogen bomb was its role in the Monte Carlo method
becoming popular. Scientists involved in the original nuclear bomb
development used massive groups of people doing huge numbers of
calculations ("computers" in the terminology of the time) to investigate
the distance that neutrons would likely travel through various
materials. John von Neumann and Stanislaw Ulam realized the speed of ENIAC would allow these calculations to be done much more quickly. The success of this project showed the value of Monte Carlo methods in science.
Later developments
A press conference was held on February 1, 1946, and the completed machine was announced to the public the evening of February 14, 1946,
featuring demonstrations of its capabilities. Elizabeth Snyder and
Betty Jean Jennings were responsible for developing the demonstration
trajectory program, although Herman and Adele Goldstine took credit for
it. The machine was formally dedicated the next day
at the University of Pennsylvania. None of the women involved in
programming the machine or creating the demonstration were invited to
the formal dedication nor to the celebratory dinner held afterwards.
The original contract amount was $61,700; the final cost was
almost $500,000 (approximately $6,400,000 today). It was formally
accepted by the U.S. Army Ordnance Corps in July 1946. ENIAC was shut
down on November 9, 1946 for a refurbishment and a memory upgrade, and
was transferred to Aberdeen Proving Ground, Maryland in 1947. There, on July 29, 1947, it was turned on and was in continuous operation until 11:45 p.m. on October 2, 1955.
Role in the development of the EDVAC
A
few months after ENIAC's unveiling in the summer of 1946, as part of
"an extraordinary effort to jump-start research in the field", the Pentagon invited "the top people in electronics and mathematics from the United States and Great Britain" to a series of forty-eight lectures given in Philadelphia, Pennsylvania; all together called The Theory and Techniques for Design of Digital Computers—more often named the Moore School Lectures. Half of these lectures were given by the inventors of ENIAC.
ENIAC was a one-of-a-kind design and was never repeated. The
freeze on design in 1943 meant that the computer design would lack some
innovations that soon became well-developed, notably the ability to
store a program. Eckert and Mauchly started work on a new design, to be
later called the EDVAC,
which would be both simpler and more powerful. In particular, in 1944
Eckert wrote his description of a memory unit (the mercury delay line)
which would hold both the data and the program. John von Neumann, who
was consulting for the Moore School on the EDVAC, sat in on the Moore
School meetings at which the stored program concept was elaborated. Von
Neumann wrote up an incomplete set of notes (First Draft of a Report on the EDVAC)
which were intended to be used as an internal memorandum—describing,
elaborating, and couching in formal logical language the ideas developed
in the meetings. ENIAC administrator and security officer Herman Goldstine distributed copies of this First Draft
to a number of government and educational institutions, spurring
widespread interest in the construction of a new generation of
electronic computing machines, including Electronic Delay Storage Automatic Calculator (EDSAC) at Cambridge University, England and SEAC at the U.S. Bureau of Standards.
Improvements
A
number of improvements were made to ENIAC after 1947, including a
primitive read-only stored programming mechanism using the function
tables as program ROM, after which programming was done by setting the switches.
The idea have been worked out in several variants by Richard Clippinger
and his group, on the one hand, and the Goldstines, on the other, and it was included in the ENIAC patent. Clippinger consulted with von Neumann on what instruction set to implement.
Clippinger had thought of a three-address architecture while von
Neumann proposed a one-address architecture because it was simpler to
implement. Three digits of one accumulator (#6) were used as the program
counter, another accumulator (#15) was used as the main accumulator, a
third accumulator (#8) was used as the address pointer for reading data
from the function tables, and most of the other accumulators (1–5, 7,
9–14, 17–19) were used for data memory.
In March 1948 the converter unit was installed, which made possible programming through the reader from standard IBM cards. The "first production run" of the new coding techniques on the Monte Carlo problem followed in April.
After ENIAC's move to Aberdeen, a register panel for memory was also
constructed, but it did not work. A small master control unit to turn
the machine on and off was also added.
The programming of the stored program for ENIAC was done by Betty Jennings, Clippinger, Adele Goldstine and others. It was first demonstrated as a stored-program computer in April 1948, running a program by Adele Goldstine
for John von Neumann. This modification reduced the speed of ENIAC by a
factor of 6 and eliminated the ability of parallel computation, but as
it also reduced the reprogramming time
to hours instead of days, it was considered well worth the loss of
performance. Also analysis had shown that due to differences between the
electronic speed of computation and the electromechanical speed of
input/output, almost any real-world problem was completely I/O bound,
even without making use of the original machine's parallelism. Most
computations would still be I/O bound, even after the speed reduction
imposed by this modification.
Early in 1952, a high-speed shifter was added, which improved the
speed for shifting by a factor of five. In July 1953, a 100-word
expansion core memory was added to the system, using binary-coded decimal, excess-3
number representation. To support this expansion memory, ENIAC was
equipped with a new Function Table selector, a memory address selector,
pulse-shaping circuits, and three new orders were added to the
programming mechanism.
Comparison with other early computers
Mechanical computing machines have been around since Archimedes' time, but the 1930s and 1940s are considered the beginning of the modern computer era.
ENIAC was, like the IBM Harvard Mark I and the German Z3, able to run an arbitrary sequence of mathematical operations, but did not read them from a tape. Like the British Colossus, it was programmed by plugboard and switches. ENIAC combined full, Turing-complete programmability with electronic speed. The Atanasoff–Berry Computer (ABC), ENIAC, and Colossus all used thermionic valves (vacuum tubes). ENIAC's registers performed decimal arithmetic, rather than binary arithmetic like the Z3, the ABC and Colossus.
Like the Colossus, ENIAC required rewiring to reprogram until the April 1948. In June 1948, the Manchester Baby ran its first program and earned the distinction of first electronic stored-program computer.
Though the idea of a stored-program computer with combined memory for
program and data was conceived during the development of ENIAC, it was
not initially implemented in ENIAC because World War II priorities
required the machine to be completed quickly, and ENIAC's 20 storage
locations would be too small to hold data and programs.
Public knowledge
The
Z3 and Colossus were developed independently of each other, and of the
ABC and ENIAC during World War II. Work on the ABC at Iowa State University was stopped in 1942 after John Atanasoff was called to Washington, D.C., to do physics research for the U.S. Navy, and it was subsequently dismantled.
The Z3 was destroyed by the Allied bombing raids of Berlin in 1943. As
the ten Colossus machines were part of the UK's war effort their
existence remained secret until the late 1970s, although knowledge of
their capabilities remained among their UK staff and invited Americans.
ENIAC, by contrast, was put through its paces for the press in 1946,
"and captured the world's imagination". Older histories of computing may
therefore not be comprehensive in their coverage and analysis of this
period. All but two of the Colossus machine were dismantled in 1945; the
remaining two were used to decrypt Soviet messages by GCHQ until the 1960s.
The public demonstration for ENIAC was developed by Snyder and Jennings
who created a demo that would calculate the trajectory of a missile in
15 seconds, a task that would have taken a weeks for a human computer.
Patent
For a variety of reasons (including Mauchly's June 1941 examination of the Atanasoff–Berry Computer, prototyped in 1939 by John Atanasoff and Clifford Berry), U.S. Patent 3,120,606 for ENIAC, applied for in 1947 and granted in 1964, was voided by the 1973 decision of the landmark federal court case Honeywell v. Sperry Rand, putting the invention of the electronic digital computer in the public domain and providing legal recognition to Atanasoff as the inventor of the first electronic digital computer.
Main ENIAC parts
The main parts were 40 panels and three portable function tables
(named A, B, and C). The layout of the panels was (clockwise, starting
with the left wall):
- Left wall
- Initiating Unit
- Cycling Unit
- Master Programmer - panel 1 and 2
- Function Table 1 - panel 1 and 2
- Accumulator 1
- Accumulator 2
- Divider and Square Rooter
- Accumulator 3
- Accumulator 4
- Accumulator 5
- Accumulator 6
- Accumulator 7
- Accumulator 8
- Accumulator 9
- Back wall
- Accumulator 10
- High-speed Multiplier - panel 1, 2, and 3
- Accumulator 11
- Accumulator 12
- Accumulator 13
- Accumulator 14
- Right wall
- Accumulator 15
- Accumulator 16
- Accumulator 17
- Accumulator 18
- Function Table 2 - panel 1 and 2
- Function Table 3 - panel 1 and 2
- Accumulator 19
- Accumulator 20
- Constant Transmitter - panel 1, 2, and 3
- Printer - panel 1, 2, and 3
An IBM card reader was attached to Constant Transmitter panel 3 and
an IBM card punch was attached to Printer Panel 2. The Portable
Function Tables could be connected to Function Table 1, 2, and 3.
Parts on display
Pieces of ENIAC are held by the following institutions:
- The School of Engineering and Applied Science at the University of Pennsylvania has four of the original forty panels (Accumulator #18, Constant Transmitter Panel 2, Master Programmer Panel 2, and the Cycling Unit) and one of the three function tables (Function Table B) of ENIAC (on loan from the Smithsonian).
- The Smithsonian has five panels (Accumulators 2, 19, and 20; Constant Transmitter panels 1 and 3; Divider and Square Rooter; Function Table 2 panel 1; Function Table 3 panel 2; High-speed Multiplier panels 1 and 2; Printer panel 1; Initiating Unit) in the National Museum of American History in Washington, D.C. (but apparently not currently on display).
- The Science Museum in London has a receiver unit on display.
- The Computer History Museum in Mountain View, California has three panels (Accumulator #12, Function Table 2 panel 2, and Printer Panel 3) and portable function table C on display (on loan from the Smithsonian Institution).
- The University of Michigan in Ann Arbor has four panels (two accumulators, High-speed Multiplier panel 3, and Master Programmer panel 2),[79] salvaged by Arthur Burks.
- The United States Army Ordnance Museum at Aberdeen Proving Ground, Maryland, where ENIAC was used, has Portable Function Table A.
- The U.S. Army Field Artillery Museum in Fort Sill, as of October 2014, had obtained seven panels of ENIAC that were previously housed by The Perot Group in Plano, Texas. There are accumulators #7, #8, #11, and #17; panel #1 and #2 that connected to function table #1, and the back of a panel showing its tubes. A module of tubes is also on display.
- The United States Military Academy at West Point, New York, has one of the data entry terminals from the ENIAC.
- The Heinz Nixdorf MuseumsForum in Paderborn, Germany, has three panels (Printer panel 2 and High-speed Function Table)
(on loan from the Smithsonian Institution). In 2014 the museum decided
to rebuild one of the accumulator panels - reconstructed part has the
look and feel of a simplified counterpart from the original machine.
Recognition
In 1996, in honor of the ENIAC's 50th anniversary, The University of Pennsylvania sponsored a project named, "ENIAC-on-a-Chip", where a very small silicon computer chip
measuring 7.44 mm by 5.29 mm was built with the same functionality as
ENIAC. Although this 20 MHz chip was many times faster than ENIAC, it
had but a fraction of the speed of its contemporary microprocessors in
the late 1990s.
In 1997, the six women who did most of the programming of ENIAC were inducted into the Women in Technology International Hall of Fame. The role of the ENIAC programmers is treated in a 2010 documentary film titled Top Secret Rosies: The Female "Computers" of WWII by LeAnn Erickson. A 2014 documentary short, The Computers
by Kate McMahon, tells of the story of the six programmers; this was
the result of 20 years' research by Kathryn Kleiman and her team as part
of the ENIAC Programmers Project.
In 2011, in honor of the 65th anniversary of the ENIAC's unveiling, the city of Philadelphia declared February 15 as ENIAC Day.
The ENIAC celebrated its 70th anniversary on February 15, 2016.