ENIAC
The ENIAC (the acronym of its full formal name, the Electronic Numerical Integrator and Computer - the popularity of the short form apparently inspired the later craze for backronyms common in the computer field) was the first general-purpose digital electronic computing device. It was not originally programmable, in the modern sense. As designed, it was only configurable - by connecting up functional units via patch-cords, as needed for the desired computation; requiring considerable work to re-configure it to perform a different computation.
It first ran in 1945; its main architect was Professor John Mauchly, with J. Presper Eckert being the person most responsible for its engineering (with assistance from Arthur Burks, Kite Sharpless, John Davis, Robert Shaw, and others).
In 1947, on a suggestion from John von Neumann, an effort was started to re-configure it in a way that added a certain amount of programmability; it started to operate in that mode in 1948. It used a program stored in the 'function-table switches' (originally intended, effectively, as an EPROM data source). This allowed the machine to be switched to a different problem far more quickly and easily, albeit at a certain loss in performance. Later, minor hardware modifications improved ENIAC's efficiency when configured as a stored-program machine.
The difficulty of quickly re-configuring the ENIAC to work on another problem led to the creation of the EDVAC, a true stored-program computer. The contemporaneous re-configuration of the ENIAC into a primitive (due to its very minimal main memory - data only) stored-program computer was still held to be worthwhile, as it was for some years the fastest machine available in the US for computationally intensive problems (even though it was internally a serial computer, not a parallel computer).
Contents
Technical details
It contained:
- 20 'accumulators', ten-digit registers which could also add and subtract (they required 550 vacuum tubes per accumulator - one per flip-flop, and ten flip-flops per digit);
- a separate unit which could perform multiplication, division, and square roots;
- constant transmitters (effectively tables stored in EPROM - using switches);
- programming units (which could direct a sequence of elementary arithmetic operations, and also storage and retrieval of intermediate results, and the reading of constants from the constant tables);
- a cycling unit (the basic clock used by all parts of the machine; it also produced the pulse sequences used to transmit numbers);
- input/output facilities - standard IBM punched card readers and punches.
All units were interconnectable through configurable 'digit trunks' (which carried data) and 'program trunks'; it operated synchronously, controlled by the cycling unit. It was able to perform operations in disparate parts of the machine in parallel, if the units in question would otherwise be idle. Unlike the Atanasoff–Berry Computer, which was an inspiration for the ENIAC, which was binary internally, the ENIAC was decimal inside (which was partially responsible for its enormous size - over 18,000 tubes, in total).
Each digit was a pluggable module, which minimized down-time for repair on failure - a spare module could be swapped in.
First computer
It was thought for many years that the Manchester Baby had been the first stored-program computer to ever run (on a problem of finding the largest factor of a given integer); on 21st June, 1948. It has recently been brought to wider attention that the ENIAC was re-configured fairly early in its life into a stored-program computer - albeit one of very limited capability.
It can be argued that this does not make the ENIAC, so configured, a Turing machine, as it cannot modify its own program. However, contemporary embedded systems often have a microprocessor with all their code contained in ROM, but no-one argues that those machines are not Turing machines.
Planning for that conversion started in the Fall of 1947; several different instruction sets were proposed. The re-configuration actually started at the end of March, 1948; the first run (on a problem related to atomic bomb work) happened at the end of April, 1948, finishing in May - effectively contemporaneous with the first run of the Baby.
Controversy over the ENIAC's derivation
John Mauchly, one of the two people most responsible for the ENIAC, had gone to see the Atanasoff-Berry Computer several years before he started on the ENIAC, spent several days studying it in detail, in person, and discussed it, and possible future evolution, with the ABC's inventor, John Atanasoff.
Unfortunately, when the time came, much later, to patent the ENIAC's contributions, the patent attempted to also claim many of the ABC's innovations - including its use of digital electronics to do computing. This fact still later led to the overturning of the over-broad ENIAC patent, in a celebrated trial in 1973. Had the patent only claimed Mauchly and Eckert's many valuable, real, contributions, it would have been fine.
Unfortunately, the whole controversy led to a great deal of division and ill-will, which is most unfortunate, as the machines of Atanasoff and Mauchly and Eckert both were major steps along the path from Babbage to modern computers; the struggle over credit has led to both sides not getting the recognition they really do deserve.
Further reading
- Herman H. Goldstine, The Computer from Pascal to von Neumann, Princeton University, Princeton, 1972
- Nancy Stern, From ENIAC To UNIVAC: An Appraisal of the Eckert-Mauchly Computers, Digital Press, Bedford, 1981
- Scott McCartney, ENIAC: The Triumphs and Tragedies of the World's First Computer, Walker and Company, New York, 1999 - an attempt to reclaim the crown for Mauchly and Eckert
- Thomas Haigh, Mark Priestley, Crispin Rope, ENIAC in Action: Making and Remaking the Modern Computer, MIT Press, Cambridge, 2016 - covers the conversion into a program-driven device
- Raul Rojas, Ulf Hashagen, The First Computers: History and Architectures, MIT Press, Cambridge, 2002
- Chapter 5: Faster, Faster: The ENIAC, in Paul E. Ceruzzi, Reckoners: The Prehistory of The Digital Computer, From Relays to the Stored Program Concept, 1935-1945, Greenwood, Westport, 1983
- Paul E. Ceruzzi, Chapter Seven: Electronic Calculators, in William Aspray (editor), Computing Before Computers, Iowa State University Press, Ames, 1990
- Kathy Kleiman, Proving Ground: The Untold Story of the Six Women who Programmed the World's First Modern Computer, Grand Central Publishing, Bew York, 2022
- Nicholas Metropolis, J. Worlton, A Trilogy On Errors in the History of Computing, Los Alamos National Laboratory, Los Alamos, 1972 - contains a section describing the conversion of the ENIAC to a stored-program machine
External links
- Programming the ENIAC, Frank Cruz, Columbia University, 2013