If you have ever wondered why a central processing unit’s (CPU’s) register is called an accumulator, consider ENIAC’s 20 accumulators. Each (rack-sized) one could store eight decimal digits. Working similarly to a car’s mechanical odometer, it received their values via stepping pulses for each digit. This made adding a number to the accumulator the default operation--simply performed by transmitting a number to it without clearing it beforehand. Subtraction could be done similarly by sending to the accumulator the number’s complement. These accumulators made ENIAC particularly suitable for evaluating the differential equations needed to calculate artillery trajectories, the task used to justify ENIAC’s frenetic construction during the Second World War. Other functions were delegated to specialized units: there was a multiplier (three racks), a divider and square rooter (one rack), two constant transmitter panels, two function table panels, and three portable function tables (configured through switches). The portable function tables were carted around to be connected to the panels where they were needed. Two master programmer panels, a cycling unit, and an initiating unit controlled the machine’s sequencing. An IBM card reader and a card punch served as the device’s input/output (I/O) unit. In all, ENIAC included 18,000 vacuum tubes initially running at 100 kilohertz (kHz).
As the first electronic general-purpose, large-scale digital computer, ENIAC is behind many small and large elements of computer science and engineering. Most significantly, it seems to have inspired John von Neumann to write the “first draft of a report on the EDVAC,” which set out the design of modern stored-program computers. Smaller scale examples consider the term “loop,” which might have been derived from a punched tape physically taped together to form a loop, or the term “breakpoint,” which might have come from the physical removal of ENIAC wires to break the flow of program pulses.
Something that is not widely known is that initially, ENIAC was programmed by connecting its diverse units with cables and by initializing its function and constant tables through switches. This required an expensive, time-consuming, and error-prone setup for each problem it was called to solve. Later on, its designers realized that they could create one setup to execute instructions (orders, as they were called at the time) stored in the function tables. By sacrificing a few accumulators to step through the instructions, they converted ENIAC into a true stored-program computer. (In modern terms, we would say that the particular wiring setup was an interpreter for the devised instruction set.) ENIAC’s capacity was minuscule; as delay lines proved to be too unreliable at the time, its logical storage capacity was just the 20 accumulators, the wiring, the switches, and the tables--in all the equivalent of about 7,000 digits. Therefore, large-scale calculations used the punched cards (and associated equipment) for temporary storage and data handling.
These and many other interesting and thought-provoking facts are presented in great detail in the book ENIAC in action. The authors start by describing how ENIAC was thought up during the Second World War--initially to calculate ordnance tables. These were at the time calculated slowly by human computers helped by mechanical calculators. Later, ENIAC was also used, among other things, to run nuclear chain reaction simulations. The book’s authors continue by describing ENIAC’s architecture (over-engineered compared to EDVAC, which through radical simplicity could do more things with almost one-third fewer tubes) and how it was put to work. We often underestimate how unreliable ENIAC was. At one point, the situation was improved when Nicholas Metropolis lowered ENIAC’s clock rate to 60 kHz. The authors detail ENIAC’s reliability travails both through numerous anecdotes and through tables and detailed descriptions of the useful work it actually performed. The book continues with a description of the problems ENIAC was called to solve, its evolution, its eventual demise, and its place in the history of computing.
The book makes for a fascinating read, though a more detailed table of contents, clearer organization, and a more comprehensive index would increase the text’s accessibility. However, this is clearly a high-quality scholarly effort, amply supported through hundreds of notes and illustrated with interesting pictures, tables, and diagrams. ENIAC in action is destined to become a reference work on the topic.
More reviews about this item: Amazon