Read It Began with Babbage Online
Authors: Subrata Dasgupta
Clearly, then, when Mauchly proposed to Goldstine his idea of an electronic version of the differential analyzer and when, in August 1942, he wrote his short memorandum
The Use of High Speed Vacuum Tube Devices for Calculating
,
47
he not only had considerable knowledge of both the differential analyzer (he had enrolled in a defense training course at the Moore School soon after his visit to Iowa in June 1941) and the ABC, he was also imagining how to use features of the ABC in his own concept of an electronic computer. His memorandum of 1942 contained a detailed discussion of the advantages of using electronic circuitry but contained no reference to Atanasoff's work. We thus see that the ENIAC had its genesis in Mauchly's
dissatisfaction
with the Bush differential analyzer. However, this dissatisfaction may itself have been triggered by his encounter with Atanasoff and the ABC.
If Mauchly was the originator of the
idea
of a digital electronic version of the differential analyzer and was the overall architect of the ENIAC, the mind behind its physical
realization
was Presper Eckert. As chief engineer of the ENIAC project, he was its “mainspring,” according to Goldstine who, as the representative of the BRL, oversaw the entire enterprise.
48
Eckert, Goldstine wrote, was omnipresent, and it was his energy that imbued the project with its “integrity” and guaranteed its success.
49
Thus, in conceiving the artifact, Mauchly was the principal designer and Eckert was the principal implementer. Eckert, in turn, assembled a group of talented engineering minds including, most notably, Arthur Burks and Adele Goldstine (1920â1964), a mathematician and Herman Goldstine's wife, respectively.
50
Thus far, we have seen that Mauchly's idea of an electronic differential analyzer was prompted by his encounter with both Bush's invention and Atanasoff's ideas. However, the ENIAC is a remarkable case study in how the past infiltrates the present in creative work. To understand this, let us consider the nature of this computer.
Architecturally, the ENIAC consisted of four distinct classes of units. In present-centered language, they were the input/output units, a read/write memory, a computational unit, and a control unit (
Figure 7.1
).
Data were fed to the machine from a punched-card reader, and from there to a set of relays called, collectively, the
constant transmitter
, which in modern terms served as an input buffer. Conversely, the result of a computation was sent through the “printer” (a misnomer for the ENIAC's output control device) to a card punch.
The ENIAC's memory comprised a set of 20 “accumulators,” each of which could hold a signed, 10-digit decimal number. It was, thus, a decimal computer with a memory capacity of 20 decimal numbers. Additional storage capacity of up to 300 numbers was provided by way of three “function tables,” which could hold read-only tabulated data. The function values were set to values by means of manual switches.
FIGURE
7.1 Architecture of the ENIAC. ACC, accumulator. Adapted by permission of the publisher from S. Dasgupta,
Technology and Creativity
, © 1996. Oxford University Press, Fig. 8.5.
The word
accumulator
enters the language of computer culture. It once meant a capacitorâa device for storing electric power. This use of the word is now largely obsolete, although in Britain it is still sometimes used to mean a battery. It seems plausible that the word was appropriated into the language of computer design from this electrical context. In the realm of digital computers, accumulator came to refer to a unit that combined a storage register with arithmetic circuits; it could store a number in the register and, when another number was received from elsewhere in the computer (usually, its main memory), it would add (or subtract) the two and store the result back in the accumulator register.
51
In the ENIAC, each accumulator could store a 10-digit, signed number.
52
Other computing capabilities were provided by means of a multiplication unit and a divider/square root extractor. Both these units performed their operations on the values held in the accumulators and placed their results back into the accumulators.
The different units were controlled individually by switches that could be set manually. To perform a computation, the switches associated with the relevant unit would be set to specify which operations were to be performed. The various units would also be connected by means of cables to enable transmission of signals between the units. The “initiating unit” was responsible for clearing the computer, turning on power, and initiating a task. Last, the sequencing of these operations would be established by setting switches on the “master programming unit.”
The ENIAC designers seem to be the earliest users of some variant of the word
program
(or programme, in British English spelling) in the context of computers. The
Oxford English Dictionary
finds the earliest appearance of the word in computing in a 1945 report on the ENIAC by Eckert, Mauchly, Goldstine, and Brainerd in which they expressed a desire to “program” the accumulator in a certain way.
53
And, in summer 1946, the Moore School offered a course on Theory and Design of Electronic Computers, probably the first formal course on electronic computers.
54
The
Oxford English Dictionary
tells us that, in his lectures, Presper Eckert spoke of “automatic checking” that “may be programmed” into the computer as an integral component as part of the problem being solved.
55
To understand the general nature of this “programming” of the ENIAC, let us consider a trivial example.
56
Suppose it is required to produce a table of squares for
n
= 0, 1, â¦, 99. Assume first that accumulator 1 already contains some value
n
and accumulator 2 contains
n
2
. The machine is next to compute (
n
+ 1) and (
n
+ 1)
2
. It does so as follows:
Set a switch so that the initiation unit transmits a signal that causes accumulator 1 to transmit its contents twice and accumulator 2 to receive these contents twice. The result is that accumulator 2 will contain (
n
2
+
2
n
). If now a switch is set that causes the constant transmitter to send a 1 to both accumulators, then accumulator 1 will contain (
n
+ 1) and accumulator 2 will have (
n
2
+ 2
n +
1) = (
n
+ 1)
2
.
This “program” can be used
iteratively
to build a table of squares by setting switches in the master programmer. Initially the accumulators have been set to 0. The initiation unit enables the master programmer to start counting the number of outputs, initiate the first output (that is, record
n
= 0,
n
2
= 0), and activate the first computation. This causes the accumulators to send and receive values as described. The first cycle of the iteration produces
n
= 1,
n
2
= 1. The iterative process continues until 100 pulses have been emitted by the master programmer. The output, a table of squares for numbers 0, 1, â¦, 99 is punched out on cards.
At this point in the ENIAC story, a small diversion is necessary. In the history of biological thought, there is a celebrated (if controversial) theory that actually goes back to Aristotle (384â322
BCE
) but was given modern shape by some 19th-century German biologists, most notably Ernst Haeckel (1834â1919). This is the so-called law of recapitulation (also called the biogenetic law), and it is pithily expressed as
ontogeny recapitulates phylogeny
âmeaning that, in the development from embryo to adult stage (ontogeny), an organism passes through stages resembling the successive stages in the evolution (phylogeny) of its remote ancestors.
57
In the realm of artifacts (and here I am speaking of technological artifacts, “useful things”), we also speak of their evolutionary history.
58
Artifacts, of course, neither evolve
“naturally” nor do they develop from embryonic to mature state “organically.” They are created things, reflecting their creators' mental statesâdissatisfaction, curiosity, purposiveness. Yet, a kind of analogy with the law of recapitulation applies to artifacts; in the realm of artifacts,
phylogeny conditions ontogeny
.
59
This does not mean that the process by which an artifact comes into existence passes through stages that reflect the phylogeny of ancestor artifacts. Rather, it means that the thinking an inventor, designer, or engineer puts into the creative act will embody
knowledge of past artifacts
. This knowledge shapes the invention process.
The ENIAC is a vivid example of this phylogeny law of artifacts.
Figure 7.2
shows the landmarks in the phylogeny of the ENIAC.
60
Perhaps the most notable of the evolutionary pathways shown here involves the use of vacuum tubes. These, used widely during the 1930s as analog circuit elements in radio, were used (as we have seen) in the ABC as digital circuit elements, in its arithmetic and control circuits. We recall that Mauchly was much familiar with Atanasoff's project. In the ENIAC, the use of vacuum tubes was extended beyond the computational unit to the read/write memory, the accumulators.
Another notable pathway was the one depicted on the rightmost side of
Figure 7.2
: the influence of the overall architecture of the differential analyzer on the ENIAC architecture. Mauchly's original intention was to outperform the differential analyzer by electronic means. He stated this in a letter to Atanasoff in September 1941.
61
His memorandum of 1942 reiterated this goal.
62
The ENIAC project was driven by this goal. And the report submitted by Mauchly, Eckert, and Brainerd to the BRL in April 1943, the eve of the beginning of the ENIAC project, emphasized this connection. But, the relationship between the differential analyzer and the ENIAC went beyond this sense of dissatisfaction with the one leading to the other; it was more than “competitiveness” between the analyzer and the proposed machine. The ENIAC designers drew on the differential analyzer's organization as an analogical source for the ENIAC's design
63
; just as the differential analyzer could be envisioned as a set of interconnected “submachines,” along the same lines the proposed ENIAC would comprise a collection of interconnected units. And, indeed, when the ENIAC was completed, the analogy between the internal organization of one with the other held.
64
There are mappings between units of one and the other. Corresponding to input tables in the analyzer are the function tables and constant transmitter in the ENIAC. The latter's printer corresponds to the former's output table and printer; the differential analyzer's integrators mapped to the ENIAC's accumulatorâarithmetic unit complex. There was even a correspondence between the interconnections of the shafts in the analyzer and those connecting the ENIAC units.
65
FIGURE
7.2 Phylogeny of the ENIAC. Adapted by permission of the publisher from S. Dasgupta,
Technology and Creativity
, © 1996. Oxford University Press, Fig. 8.7.
One other phylogenetic feature is noteworthy: the genesis of the ENIAC's multiplier. In terms of the amount of circuitry, this was the single most complicated unit in the machine. In fact, this multiplier was an electronic implementation of a fast multiplication algorithm invented in 1889 by the French inventorâmanufacturer Léon Bollée (1830â1913). This algorithm, which Bollée implemented in his own mechanical multiplication machine of 1899, was used in later machines, including electromechanical calculators
66
âincluding the IBM 601 multiplier, one of that company's family of data processing machines and considered the most powerful commercially available data processing device in the 1930s.
67
There were strong similarities between the multiplication procedure implemented in the ENIAC and that used in the IBM 601.
68