ENIAC World Wide Web
When the United States entered World War II the Ordnance Department was faced with a task of gigantic proportions.
(The Ordnance Department was renamed Ordnance Corps in 1950.)It was responsible for design, procurement, distribution, and maintenance of ordnance materiel for the Army Ground Forces, the Army Air Force, and, in some categories the Navy. This task immediately engendered an accelerated research and development program. Of extreme importance in this program was the preparation of firing and bombing tables. This work was conducted at the Ballistic Research Laboratory at Aberdeen Proving Ground, MD, where the experimental data necessary to the computation of such tables was also obtained. When it is realized that for each weapon- ammunition combination the preparation of a separate firing table is required, the magnitude of the computations involving an entirely new series of weapons is easily seen.
The preparation of firing and bombing tables was performed by the Ballistic Computing Section of the Ballistic Research Laboratory. This section was composed at that time of a few civilian employees who were trained and highly skilled in the conventional methods of computation. In addition to desk calculators the group had available the Bush Differential Analyzer, which was capable of handling many types of problems but also had certain limitations. Captain P. N. Gillon, who was in charge of ballistic computations at the laboratory, recognized the need for improved aids to computation to cope with the greatly expanding computational activities.
Early in 1942 additional personnel, including military, were acquired to work in the Ballistic Computing Section at Aberdeen Proving Ground. Despite this increase in personnel work began to pile up and in June 1942 a contract was made with the Moore School of Electrical Engineering of the University of Pennsylvania to operate its Bush Differential Analyzer exclusively for the Army. In September 1942 the Chief of Ordnance granted permission to operate a computing branch at the Moore School as a substation of Aberdeen Proving Ground. In this way the Ordnance Department could meet its requirements in computing. The two analyzers were operated day and night during the war.
The group at the Moore School of Electrical Engineering was supervised by Lt. Herman Goldstine, a member of the Aberdeen staff, who was assigned there at captain Gillon's request to head the computational and training activities. Lt. Goldstine was especially well qualified for this assignment because of his outstanding mathematical ability and his understanding and appreciation of Ordnance problems in the field of ballistic computation
(Lt. H. Goldstine had received his doctorate in mathematics at the University of Chicago).
Early in 1943, Captain Goldstine (promoted in the interim) and Professor Brainerd brought to Lt. Colonel Gillon (promoted 1942) the outline of the technical concepts underlying the design of an electronic computer. The idea had been conceived by Dr. J. Mauchly in 1942 as a result of work he had done previously with problems in weather study and physics that required great masses of numerical information to be handled, and also as a result of his experience at the Moore School of Electrical Engineering in the calculation of trajectories. This outline was prepared at Captain Goldstine's request by Dr. Mauchly and Mr. J. P. Eckert, Jr. Lt. Colonel Gillon, who meanwhile had been assigned to the Office, Chief of Ordnance as Deputy Chief of the Service Branch of the Technical Division, realized fully that formidable opposition would be offered to the initiation and prosecution of a development of this sort, especially in view of the highly speculative character of its successful completion. However, he also fully realized that there existed an urgent need for some means to perform computing at high speeds, not only for ballistic computations but also for the research activities of the Ordnance Department. Therefore he undertook to obtain the necessary authorization for its initiation and assumed full responsibility for its support and supervision.
It was Colonel L. Simon, Lt. Colonel P. N. Gillon, Captain H. Goldstine, and Mr. S. Feltman who secured the support of the Ordnance Department and continually stimulated the Moore School of Electrical Engineering of the University of Pennsylvania to further their efforts with respect to aids to computation. Dr. J. Mauchly, Mr. J. P. Eckert, Jr., Professor G. Brainerd, Dr. H. Pender and other members of the University of Pennsylvania staff applied their abilities to the problem of designing an electronic automatic computer. The result was a proposal, which was submitted to the Chief of Ordnance on 8 April 1943.
The original agreement between the United States of America and the trustees of the University of Pennsylvania, dated 5 June 1943, called for six months of "research and development of an electronic numerical integrator and computer and delivery of a report thereon." (The initial letters of the words describing the device were used to form its name - ENIAC.) This initial contract, R.A.D. 1078-W-670-ORD-4926 committed $61,700 in Ordnance Department funds under appropriation number ORD 61166 P610-07-A1005-23. Nine supplements to this contract extended the work to 1946, increased the amount ultimately to a total of $486,804.22, assigned technical supervision to the Ballistic Research Laboratory at Aberdeen Proving Ground, and called for the delivery of a working "pilot model," first to be operable at the University of Pennsylvania and then to be delivered to the BRL at APG.
From this point forward, the research staff and faculty of the Moore School of Electrical Engineering under Dr. H. Pender undertook energetic prosecution of the development pursuant to the terms of the Ordnance contract. The project was placed under the supervision of Professor Brainerd, with Mr. J. P. Eckert, Jr., as chief engineer, and Dr. J. Mauchly who provided the original outline for this development, as principal consultant. The resident supervisor for the Ordnance Department, Captain H. Goldstine, not only exercised extraordinary detailed and highly competent supervision for the Army but also contributed greatly to the mathematical side of the undertaking. As in all important undertakings which achieve important results, this was a work of many individuals.
Many meetings and conferences were held during the early days of development of the electronic numerical integrator and computer (ENIAC). Naturally many technical decisions had to be made. Then, as now, universities had an insatiable appetite for research, but in this case it was essential that the Ordnance Department obtain an operating device within a reasonable period of time. For example, there was always the temptation to increase the capability of the ENIAC, hence, when mercury delay lines came up for consideration as internal memory, Lt. Colonel Gillon, as the responsible supervisor for the Ordnance Department, insisted on the tried and tested decade ring counters in spite of the inherently reduced storage capacity.
(However, in view of the great promise of the mercury delay lines he obtained authorization for a new and separate contract calling for a new machine, using these delay lines. This machine, when completed, was the EDVAC and will be discussed in the next chapter.)In this way precious time for the development of the ENIAC was not lost. The ENIAC was constructed at the Moore School component by component, beginning with the cycling unit and an accumulator in June 1944. This was followed in rapid succession by the initiating unit and function tables in September 1945, and the divider and square-root unit in October 1945. Final assembly took place during the fall of 1945 and the ENIAC was formally dedicated at the Moore School of Electrical Engineering of the University of Pennsylvania on 15 February 1946. Acceptance by the Ordnance Department took place in July 1946.
Four years had elapsed since the original suggestion by Dr. John W. Mauchly that an all-electronic computer be built which could rapidly perform the vast amount of calculations required for the solution of the many complex problems facing the Ordnance Department. All through 1946 the ENIAC remained at the Moore School, working out numerical solutions to problems in such fields as atomic energy and ballistic trajectories.
In the winter of 1946-1947 the ENIAC was dismantled at the Moore School of Electrical Engineering and the first units arrived at Aberdeen Proving Ground, MD, in January 1947. By August of 1947 the ENIAC became operational again. It was the world's first electronic automatic computer and it not only opened up greater possibilities for advances in science and engineering but also started a new multi-billion dollar industry.
War circumstances had made it imperative to construct the ENIAC out of conventional electronic circuits and elements with a minimum of redesign. This fact, together with the requirements for capacity, speed, and accuracy, led to an extremely large machine. Its 30 separate units, plus power supply and forced air cooling, weighed over thirty tons and occupied 1,800 square feet. Its 19,000 vacuum tubes (16 different types), 1,500 relays, and many thousands of resistors, capacitors, and inductors consumed about 174 kilowatts of electrical power.
The main part of ENIAC consisted of 42 panels arranged around three sides of a room. Each panel was about 9 feet high, 2 feet wide, and 1 foot thick. Air ducts at the top of all the panels were provided for drawing off the hot air around the tubes. There were also 5 portable panels which could be rolled from place to place.
ENIAC was the prototype from which most other modern computers evolved. It embodied almost all of the components and concepts of later high-speed, storage and control devices. The counters and accumulators of the machine, with more sophisticated innovations, were made up of combinations of these basic elements.
The various units were interconnected through two sets of coaxial lines carried in "trays" running around the length of the machine. One set was called digit trays and was used for carrying pulse groups representing numerical data from one unit to another. The other set was called program trays and carried pulses controlling the sequence of operations of the different units and could be plugged into the trays in accordance with the set-up for any particular computation.
The machine worked with numbers expressed in the decimal system and could handle numbers of ten digits. The decimal system was chosen, in spite of advantages of other systems, because of the familiarity of its use.
The ENIAC could discriminate the sign of a number, compare quantities for equality, add, subtract, multiply, divide, and extract square roots. A maximum of twenty 10-digit decimal numbers could be stored. The accumulators combined the functions of an adding machine and storage unit. No central memory unit existed, storage being localized within the functioning units of the computer.
The primary aim of the designers was to achieve speed by making ENIAC as all-electronic as possible. The only mechanical elements in the final product were actually external to the calculator itself. These were an International Business Machines (IBM) Corporation card reader for input, and IBM card punch for output, and the 1,500 associated relays. Another design objective was to make the electronics simple and reliable. This goal was achieved by utilizing vacuum tubes in a minimum of basic circuit combinations. To ensure reliable operation, circuits were constructed of rigidly tested standard components, which were operated at current, voltage, and power levels below their normal ratings. Accuracy of computation was assured by designing the basic circuits to work independently of the variable tolerances of their components. Numbers were not represented by electrical quantities which could be affected by changes in tolerance, but only by the presence or absence of dynamic pulses. Pulse groups representing the digits of a single number were transmitted simultaneously on different lines, requiring eleven lines in each digit tray for the ten decimal digits and the sign.
The gate, a circuit which would produce an output dependent upon a specified input, performed the switching or logical AND function.
(AND is a term peculiar to computer engineering. It is a mathematical operator used to denote a process of logic whereby a statement is true if and only if all input conditions are met or are true.)It consisted of a single pentode which had a control voltage applied to its suppressor grid. Its function was similar to that of a single pole switch in that it "opened" (i.e., passed a pulse pattern) when the suppressor grid was positive and "closed" when the suppressor grid was negative.
The buffer, an isolating circuit used to avoid any reaction of a driven circuit upon the corresponding driving circuit, contained two or more tubes connected through a common load resistor to form a circuit with the logical properties of the word OR.
(OR is a term peculiar to computer engineering. It is a mathematical operator used to denote a process of logic whereby a statement is true if at least one of the input conditions is met or is true.)The grids of the tubes were normally biased at the cut-off point so that a positive input to any tube in the combination produced a negative output.
The flip-flop circuit contained two triodes so connected that only one would conduct at a given time. The bi-stable device had two inputs and two outputs. In the SET, or normal position, one side of the output was positive, the other negative. In the RESET or abnormal position, these polarities were reversed. Logically, the flip-flop performed the functions of memory and that of a double pole, double throw switch. The state of each flip-flop was indicated by a neon lamp on the front panel of the computer units.
A group of ten flip-flops, (0-9), interconnected to count digit pulses, formed a decade ring counter which was capable of adding and storing numbers. The counter possessed the following characteristics:
1. At any one time only one flip-flop could be in the RESET state.
2. A pulse to the counter input reset the initial flip-flop in the chain.
3. The circuit could be cleared so that a specific flip-flop was in the RESET position while the others remained in the SET position.
Each flip-flop of a counter was termed a stage, and reception of a pulse at the input side advanced the counter by one stage. Information recirculated through the counter; i.e., the last stage was coupled to the first. A variation of the basic counter circuit, the PM (plus or minus) counter, controlled the sign of a number in the accumulator.
Ten decade ring counters, one per decimal place, plus one PM counter, formed the basic arithmetic and storage unit of ENIAC, and was called the accumulator. The decade ring counters were equipped with ten transmission circuits so that when any ring passed the nine positions, a pulse was passed to the next ring in the series. Input pulses reaching the accumulator added to or subtracted from its contents.
The accumulator was an essential element in all of ENIAC's arithmetic operations. Addition required two accumulators, one transferring its contents to the other. Subtraction, accomplished by a complement-and-add process, also used two accumulators. In normal multiplication four accumulators stored the multiplier and multiplicand and accumulated the partial products. In division they shifted the remainder and stored the numerator, denominator, and quotient. The function table utilized the accumulators for storage of the argument and accumulation of the function value.
ENIAC was a synchronous system, operating under the control of pulses from a cycling unit. The pulses were emitted a 10-microsecond intervals. The over-all timing cycle or repetition rate was 200 microseconds, which was the time required for one addition. Pulses were transmitted to all units continuously and simultaneously, and each computer operation took an integral number of addition times. For checking and trouble-shooting purposes, the cycling unit circuitry included provisions for operation in a one-addition or one-pulse-at-a-time mode.
The ENIAC was not originally designed as an internally-programmed computer. The program was set up manually by varying switches and cable connections. However, means for altering the program and repeating its iterative steps were built into the master programmer. Digit trays, which were long racks of co-axial cables, carried the data from one functioning unit to another. Program trays transferred instructions (i.e., programs) in a similar manner. In purely repetitive calculations, the basic computing sequence was set by hand. The master programmer automatically controlled repetition and changed the sequence as required.
The master programmer contained ten six-stage counters, each routing incoming program pulses over a field of six output channels. The position of the counters was controlled by either the number of pulses which had been supplied to the output channels or by the number of pulses received at a special input terminal. In this fashion the number of sequences could be fixed in advance or made contingent on the results of a computation.
Each functioning unit of ENIAC was equipped with local program control circuits. These circuits contained switches which were set for the function required. When the local program circuit was stimulated by a program pulse, the unit performed the desired operation. After this was completed a program completion pulse was emitted, via the program tray coaxial line, to the next unit in the operational sequence.
In addition to its cycling unit, twenty accumulators, and master programmer, ENIAC included an initiating unit, a high-speed multiplier, a divider, a square-root unit, and three portable function tables.
The initiating unit turned ENIAC on and off, cleared it, and initiated computation.
The high-speed multiplier did its work in much the same fashion as a human would. It contained a built-in multiplication table capable of multiplying up to 9 times 9. Multiplication of the multiplicand by each digit of the multiplier took one addition time. The left and right hand figures of each product of a digit of the multiplicand and the multiplier were accumulated separately to form two partial products, which when combined, formed the final product. The multiplication process for two 10-digit numbers took 2.6 milliseconds.
The divider and square-root unit worked by repeated subtraction and addition, a time-consuming procedure which took an average of 25 milliseconds for a 10-digit number. The divisor was subtracted from the dividend, and the sign of the partial remainder was tested after each step. When the sign became negative, the remainder was shifted up-scale and the divisor was added until the sum became positive. An accumulator serving as a quotient register kept a count of the numbers of additions and subtractions for the successive decimal places. Extraction of square root was a similar process.
The principal purpose of the function tables, which actually were banks of switch-controlled resistor matrices, was the storage of the arbitrary functions called for by the problem. The switches selected one of 12 digits and two signs for each of the 104 values of an independent variable that were stored in each table. The functional similarity between later computers and the ENIAC is rather astounding when one considers the time difference in their development.
The ENIAC was built primarily for integration of the equations of external ballistics by a step-by-step process, but it was flexible enough to be applied to a wide range of large-scale computations other than numerical integration of differential equations.
There were three ways of supplying the machine with information (numbers or instructions). Numbers could be put into the machine by means of punch cards fed into the Card Reader, panel 46, or by means of switches on the Constant Transmitter, panels 37 to 39. Numbers or instructions could also be put into the ENIAC by means of the Function Tables, panels 43 to 45, where there were dial switches which were set by hand. Instructions could also go into the machine by setting the switches, and by plugging the inputs and outputs etc., of the wires or lines along which numbers and instructions traveled.
Information came out of the machine in two ways. Numbers came out punched on cards by the Summary Punch, panel 47. They were then printed in another room by means of a separate IBM tabulator. Numbers could also be read out of the machine by means of the lights in the neon bulbs mounted on each accumulator. These could be read when the panel was not computing.
In applying the ENIAC to a particular computation it was first necessary to break down the work into a number of basic computing sequences, the ordering of which was controlled by the master programmer. Next, each sequence was broken down into the individual computing operations of which it was composed. These were then carried out through the interconnections of the arithmetical units of the machine.
In programming calculations other than for trajectories (for which the machine was primarily designed) the chief drawback was the small memory capacity into which numbers could be recorded and from which they could be read automatically. This memory capacity consisted of the twenty accumulators, but four of these were used for multiplication and four for division. Therefore no more than sixteen, and often fewer, would be available for storing intermediate results. This capacity was adequate for the original purpose of the machine but where other types of computations were involved their method of calculation was determined by this memory capacity.
The machine had an indefinitely large memory capacity in the form of punched cards, but recording into and reading from this memory was slow. Also, the attention of an operator was required in some cases to transfer cards from the punch to the reader. The increased range of the machine was thus obtained at the expense of speed and the fully automatic character of its operation.
The first few years of use of the ENIAC at Aberdeen Proving Ground were difficult ones for the operating and maintenance crews. The computer represented the largest collection of interconnected electronic circuitry then in existence, and its thousands of components had to remain operational simultaneously. The result was a huge preventive maintenance and testing program, which finally led to some major modifications of the system.
Operating experience with the ENIAC indicated that 90% of the service interruptions were caused by vacuum tube failures. At the beginning of 1950 a tube surveillance program was initiated whereby tubes were life-tested and statistical data on the failures were compiled. All this led to methods of tube testing which were unique at the time. The information gained, on the other hand, led to many improvements in vacuum tubes themselves. Procurement of large quantities of improved, reliable tubes, however, became a difficult problem because conventional tubes were not ideal for use in computers.
An additional problem involving vacuum tubes was that of dissipating the heat. This was a problem of major proportions and was never solved for the ENIAC. Special air conditioning had not been provided and the blower system was not adequate to dissipate the heat into the warm, humid atmosphere. The result was a shortening of tube life which caused long periods of inoperation. For example, the checking routine alone took about eight hours. Eventually modifications to the machine were made which eliminated about 3,000 tubes.
As previously mentioned ENIAC originally had not been designed as an internally stored fixed program computer. Programming new problems meant weeks of checking and set up time, since the ENIAC was designed as a general- purpose computer with logical changes provided by plug-and-socket connections between accumulators, function tables, and input-output units. However, the ENIAC's primary area of application was ballistics, mainly the differential equations of motion. In view of this, the ENIAC was converted into an internally stored fixed-program computer when Dr. John von Neumann of the Institute for Advanced Study at Princeton suggested that code selection be made by means of switches so that cable connections could remain fixed for most standard trajectory problems. After that improvement considerable time was saved when problems were changed.
The ENIAC performed arithmetic and transfer operations simultaneously. Concurrent operation caused programming difficulties. A converter code was devised to permit serial operation. Each function table, as a result of these changes, became available for the storage of 600 two-decimal digit instructions.
These revolutionary modifications, which were installed early in 1948 converted ENIAC into a serial instruction execution machine with internal parallel transfer of decimal information. The original plugable connections came to be regarded as permanent wiring by most BRL personnel.
By 1950 it was realized that the commercial source of electrical power utilized by ENIAC was too unstable for reliable operation. Fluctuations in voltage caused errors to occur in the machine and also loss of information. Since the ENIAC was operating on a 24-hour per day basis such interruptions were extremely undesirable.
The problem was finally solved by installing a motor generator as a source of power for the machine. The motor was supplied by the power line and in turn drove the generator which supplied the load to ENIAC. The inertia of the motor took care of fluctuations in power line voltage and kept the power to ENIAC constant.
In 1951 the converter code was revised by the addition of a faster- access function table which increased the stored program capacity of the ENIAC. Previously all switches had to be set by hand. The new unit utilized plugboards which could be pre-wired and simply plugged in. This reduced set up time for each new problem, increased the memory, and speeded operations.
By July 1953 the final improvement had been made on the ENIAC. This was the Static Magnetic Memory installed by the Burroughs Corporation of Philadelphia, PA. By mid 1951 the engineers at BRL had realized the necessity of increasing the internal memory capacity of the ENIAC. Aside from the twenty high-speed storage registers in the machine, all other storage came from present switches or punched cards. The switches could not be modified during the program and consumed considerable time for their initial setting. The punched cards were unduly slow for use as a high-speed internal memory medium.
The Burroughs Corporation had been investigating the techniques of using magnetic cores for circuits and storage elements and had demonstrated them. Because of the experience gained in these investigations the Burroughs Corporation was awarded the contract to design the Static Magnetic Memory for the ENIAC. It was to consist of 100 words of first access time storage.
An important consideration in the design of the Magnetic Memory system was the characteristics of the magnetic material used. The techniques for reproducing high-quality magnetic cores had not been fully perfected and so the Memory System was designed to operate reliably with the quality of cores available in quantity production.
The design of the Memory System itself had to take into consideration the characteristics already built into the ENIAC. They were not particularly adaptable to the new techniques that had been built up since the development and design of the ENIAC. The language problem was of paramount importance. The ENIAC used a pulse-count code so that, to represent a single decimal digit, ten signals were applied to a single wire. Therefore, to store 100 words of 10 decimal digits, plus its sign, 9,100 bits of storage would be required. Economy dictated that code converters should be used to translate the pulse-count code of the ENIAC to a four-bit binary expression to represent a single decimal digit. This code conversion reduced the number of storage bits from 9,100 to 4,100.
The address selection in the ENIAC was of a decimal code to select one of the 100 words of storage in the memory.
The problem was to develop a storage system, controlled by ENIAC, so that any one of the 100 words could be selected to store or to extract information on the command of ENIAC, and take less than one addition cycle. The memory was to contain its own power supply and necessary cooling ducts. Emphasis was to be placed on reliability and accessibility to all electronic and magnetic parts.
The unit was designed and constructed by the Burroughs Corporation and installed for use. The interconnection between the Memory and ENIAC was through 48 lines. In addition to these signal lines, provisions were made for single-phase and three-phase power to the Memory.
During the period 1946 - 1955 the ENIAC was operated successfully for a total of 80,223 hours of operation. It performed about five thousand arithmetic operations for each second of its useful life. ENIAC led the computer field through 1952 when it served as the main computation machine for the solution of the scientific problems of the nation. It surpassed all other existing computers in solving problems involving a large number of arithmetic operations. It was the major instrument for the computation of all ballistic tables for the U.S. Army and Air Force. In addition to ballistics, the ENIAC's field of application included weather prediction, atomic energy calculations, cosmic ray studies, thermal ignition, random number studies, wind tunnel design, and other scientific uses.
EDVAC and ORDVAC (subjects of following chapters) both faster than ENIAC, began to share the Computing Laboratory's workload with the ENIAC in 1953. It became apparent almost immediately that the ENIAC would have to be modified if it were to remain competitive, economical, and efficient. Modifications were therefore made on the ENIAC. In addition to the modifications previously mentioned there was a high-speed electronic shifter, which reduced by 80% the time required for numerical shifting and eliminated numerous tubes and program units. It was installed early in 1952.
In spite of modernization, however, and the fact that trouble-free operating time remained at about 100 hours per week, operating costs were far above those of the other machines. The workload was gradually shifted to these other machines and at 11:45 PM on 2 October 1955 the power to ENIAC was removed. The rapid progress of computer technology, spurred by the ENIAC itself, had made the device obsolete.
(See Appendix I for technical data.)