Brian_Fenner
In Runtime
- Messages
- 366
To what started it all..................
Eniac
Programmers operate the ENIAC's main control panel at the Moore School of Electrical Engineering. "U.S. Army Photo" from the archives of the ARL Technical Library
Detail of the back of a section of ENIAC, showing vacuum tubes.
Eniac
Programmers operate the ENIAC's main control panel at the Moore School of Electrical Engineering. "U.S. Army Photo" from the archives of the ARL Technical Library
Detail of the back of a section of ENIAC, showing vacuum tubes.
ENIAC, short for Electronic Numerical Integrator And Computer,[1] was the first large-scale, electronic, digital computer capable of being reprogrammed to solve a full range of computing problems,[2] although earlier computers had been built with some of these properties. ENIAC was designed and built to calculate artillery firing tables for the U.S. Army's Ballistics Research Laboratory. The first problems run on the ENIAC however, were related to the design of the hydrogen bomb.
The contract was signed on June 5, 1943 and Project PX was constructed by the University of Pennsylvania's Moore School of Electrical Engineering from July, 1943. It was unveiled on February 14, 1946 at Penn, having cost almost $500,000. 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 of that year, it was turned on and would be in continuous operation until 11:45 p.m. on October 2, 1955.
Description
Physically, ENIAC was massive compared to modern PC standards. It contained 17,468 vacuum tubes, 7,200 crystal diodes, 1,500 relays, 70,000 resistors, 10,000 capacitors and around 5 million hand-soldered joints. It weighed 30 short tons (27 t), was roughly 8 feet (2.4 m) by 3 feet (0.9 m) by 100 feet (30 m), took up 1800 cubic feet (167 cubic meters), and consumed 150 kW of power. Input was possible from an IBM card reader, while an IBM card punch was used for output. These cards could be used to produce printed output offline using an IBM accounting machine, probably the IBM 405.
ENIAC used ten-position ring counters to store digits; each digit used 36 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 emulate in electronics the operation of the digit wheels of a mechanical adding machine. ENIAC had twenty ten-digit signed accumulators that 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, constant transmitter) every second (Note: 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 to perform double precision arithmetic but the accumulator carry circuit timing prevented the wiring of three or more for higher precision. The ENIAC used four of the accumulators controlled by a special Multiplier unit and could perform 385 multiplication operations per second. The ENIAC used five of the accumulators controlled by a special Divider/Square-Rooter unit and could perform forty 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 (synchronized the other units), the Master Programmer (controlled "loop" sequencing), the Reader (controlled an IBM punch card reader), the Printer (controlled an IBM punch card punch), the Constant Transmitter, and three Function Tables.
The reference by Rojas and Hashagen gives more details about the times for operations, which differ somewhat from those 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 2800 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. 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. Some electronics experts predicted that tube failures would occur so frequently that the machine would never be useful. This prediction turned out to be partially correct: several tubes burned out almost every day, leaving it 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. By the simple (if expensive) expedient of never turning the machine off, the engineers reduced ENIAC's tube failures to the more acceptable rate of one tube every two days. According to a 1989 interview with Eckert the continuously failing tubes story was therefore mostly a myth: "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). This failure rate was remarkably low, and stands as a tribute to the precise engineering of ENIAC
Programmability
The six women who did most of the programming of ENIAC by manipulating its switches and cables were inducted in 1997 into the Women in Technology International Hall of Fame ([1]). As they were called by each other in 1946, they were Kay McNulty, Betty Jennings, Betty Snyder, Marlyn Wescoff, Fran Bilas and Ruth Lichterman.
Eckert and Mauchly took the experience they gained and founded the Eckert-Mauchly Computer Corporation, producing their first computer, BINAC, in 1949 before being acquired by Remington Rand in 1950 and renamed as their UNIVAC division.
ENIAC was a one-of-a-kind design and was never repeated. The freeze on design in 1943 meant that the computer had a number of shortcomings which were not solved, notably the inability to store a program. But the ideas generated from the work and the impact it had on people such as John von Neumann were profoundly influential in the development of later computers, initially EDVAC, EDSAC and SEAC.
A number of improvements were also made to ENIAC from 1948, including a primitive read-only stored programming mechanism [2] using the Function Tables as program ROM, an idea proposed by John von Neumann. Three digits of one accumulator (6) was used as the program counter, another accumulator (15) was used as the main accumulator, another 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 just used for data memory. It was first demonstrated as a stored-program computer on September 16, 1948, running a program by Adele Goldstine for John von Neumann. This modification reduced the speed of ENIAC by a factor of six 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 practical real world problem was completely I/O bound even without making use of the original machine's parallelism and most would still be I/O bound even after the speed reduction from 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, the 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