ENIAC (; Electronic Numerical Integrator and Computer)Eckert Jr., John Presper and Mauchly, John W.; Electronic Numerical Integrator and Computer, United States Patent Office, US Patent 3,120,606, filed 1947-06-26, issued 1964-02-04; invalidated 1973-10-19 after court ruling in Honeywell v. Sperry Rand. was the first programmable, electronic, general-purpose digital computer, completed in 1945. Other computers had some of these features, but ENIAC was the first to have them all. ENIAC was Turing-complete and able to solve "a large class of numerical problems" through reprogramming.
ENIAC was designed by Ursinus College physics professor John Mauchly and J. Presper Eckert of the University of Pennsylvania to calculate artillery firing tables for the United States Army's Ballistic Research Laboratory (which later became a part of the Army Research Laboratory). However, its first program was a study of the feasibility of the thermonuclear weapon.: The first problem assigned to the first working electronic digital computer in the world was the hydrogen bomb. […] The ENIAC ran a first rough version of the thermonuclear calculations for six weeks in December 1945 and January 1946.: "ENIAC correctly showed that Teller's scheme would not work, but the results led Teller and Ulam to come up with another design together."
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, having cost $487,000 (), and called a "Giant Brain" by the press. It had a speed on the order of one thousand times faster than that of electro-mechanical machines.
ENIAC was formally accepted by the U.S. Army Ordnance Corps in July 1946. It was transferred to Aberdeen Proving Ground in Aberdeen, Maryland, in 1947, where it was in continuous operation until 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, at a cost of about $487,000, . In June 1941 firing tables for artillery were being computed for the United States Army Ordnance Department by graduate students using Friden calculators and differential analyzer, under the supervision of John Mauchly. Mauchly began exploring the use of electronics to speed up these calculations. He was not an electronics expert, and he partnered with research associate J. Presper Eckert to draft an electronic computer that could work much faster. In August 1942 Mauchly proposed a fully electronic calculating machine to calculate these tables. The U.S. Army Ordnance accepted their plan, giving the University of Pennsylvania a six-month research contract for $61,700. The construction contract was signed on June 5, 1943, and secret work on the computer began 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 Goldstine persuaded the Army to fund the project and they assigned him to oversee it. Assembly of the computer began in June 1944. In September of that year, Eckert and Mauchly completed their conception of the computer. Construction was complete in May 1945 and testing began at the Moore School. In November of that year, Eckert, Mauchly, John Brainerd, and Herman Goldstine issued the first confidential report on the computer, which describes how it functioned and the methods by which it was programmed. In 1946, Mauchly and Eckert resigned from the University of Pennsylvania and formed the Eckert–Mauchly Computer Corporation.
The team of design engineers assisting Mauchly and Eckert 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). Several female mathematicians performed the bulk of the ENIAC programming: Jean Jennings, Marlyn Wescoff, Ruth Lichterman, Betty Snyder, Frances Bilas, and Kay McNulty.
ENIAC was a large, 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 (called trays at the time). ENIAC's panels could send and receive numbers, compute, save answers, and trigger the next operation, all without any moving parts, allowing for great speed of calculation. It could also branch, or trigger different operations depending on the sign of a computed result, which was essential to its versatility.
Components By the end of its operation in 1955, ENIAC contained 18,000 vacuum tubes, 7,200 crystal diodes, 6,000 relays, 70,000 resistors, 10,000 capacitors, and approximately 5,000,000 hand-soldered joints. It weighed more than , was roughly tall, deep, and long, occupied and consumed 150 kW of electricity. 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 originally had no memory system, 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 arithmetic with double the precision, 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 the multiplication of a 10-digit number by 10-digit number 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.
ENIAC was able to process about 500 FLOPS. , supercomputers operate at petascale ( FLOPS) and exascale ( FLOPS) speeds.
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 1,200 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.Description of Lehmer's program computing the exponent of modulo 2 prime
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
During World War II, while the U.S. Army needed to compute ballistics trajectories, many women were interviewed for this task. At least 200 women were hired by the Moore School of Engineering to work as "computers" and six of them were chosen to be the programmers of ENIAC. Betty Holberton, Kay McNulty, Marlyn Wescoff, Ruth Lichterman, Betty Jean Jennings, and Fran Bilas programmed the ENIAC to perform calculations for ballistics trajectories electronically for the Army's Ballistic Research Laboratory. While men having the same education and experience were designated "professionals", these women were designated "subprofessionals", though they had professional degrees in mathematics and were highly trained mathematicians.