It Began with Babbage Read online

Page 15


  Third, the ABC was designed to solve simultaneous linear equations by the widely used method of Gaussian elimination. For this purpose, the coefficients in the equations were read from punched cards onto the drums. By a succession of binary additions, subtractions, and shifting binary numbers right or left, the computation would be performed.

  Fourth, the computation units consisted of 30 add–subtract units that took numbers from the storage drums and performed the adds or subtracts in parallel. Circuits were also available for shifting binary numbers. There were no separate circuits for multiplication or division.

  Fifth, internally, the ABC was a binary machine. However, input data fed to the computer through punched cards were in decimal form, and so decimal-to-binary conversions were done before numbers were stored on the drums; conversely, binary-to-decimal conversions were performed before outputting results in decimal form. These outputs were displayed on dials.38

  Sixth, and last, intermediate results were stored in binary form on cards. For this purpose, Atanasoff recorded binary digits on the card with electric sparks that carbonized the card at those locations. These binary digits could then be read by applying a voltage to the card because a carbonized spot provided less resistance to the reading voltage than a spot that had not been carbonized.39

  When the ABC was completed, all components worked well except the electric spark mechanism, which would fail occasionally. Because of this, the ABC could solve small sets of equations correctly, but not large ones because the latter demanded very large numbers of binary digits to be both recorded as intermediate results and then read. It was because of this weakness that the ABC was almost (but only almost) fully operational. Atanasoff and Berry never resolved this problem. In fall 1942, they were both called into war research. Neither returned to Iowa State College after the war, and the ABC was eventually dismantled.40 Yet, as would be acknowledged later, in designing and building the ABC, Atanasoff and Berry demonstrated the viability of electronic switching circuits across a range of units desirable in a computer—to perform arithmetic operations, base conversions, and control functions.

  Here was a science of the artificial in action (see Prologue, Section VI): a design for a particular computer representing a theory of the machine, the purpose of which was the solution of linear algebraic equations; a theory that embedded the logical organization of the computer (its architecture) and the physical characteristics of its parts; and an implementation that afforded the crucial experiment to test whether a computer built according to the design would serve its intended purpose. The design constituted a theory of an individual machine (see Prologue, Section VI). The implementation constituted an experiment about such a singular theory, and the implementation revealed not only the broad validity of the designas-theory, but also where the theory–experiment ensemble failed—in the fact that the machine was limited to small systems of equations. The next logical step would be either to modify the design or the implementation to eliminate the error. But, as noted, this never happened because of the exigencies of war.

  Atanasoff also realized that the ABC could do more than solve systems of linear equations. Becoming aware, in spring 1941, of the improved differential analyzer being built by Bush and Caldwell, he realized that his machine could also be used to solve differential equations by way of numeric integration.41

  V

  In June 1941, Mauchly, then a physics faculty member at Ursinus College, visited Atanasoff in Ames, Iowa, to learn about the ABC, which was still a work in progress at that time. The two had met at a scientific conference in December 1940, at which time Mauchly had come to know of Atanasoff’s computer project. In fact, even before his visit to Ames, Mauchly was told by Atanasoff, in a letter written in May 1941, of the idea of using the ABC to solve differential equations.42

  During the 4 days Mauchly stayed in Ames, he had extensive opportunity to examine the ABC and hold discussions with his host about electronic computers.43 Mauchly also read, and made notes from, Atanasoff’s memorandum of August 1940.44

  In September 1941, Mauchly wrote to Atanasoff of his “hope” to “outdo the analyzer electronically.” He mentioned some “different ideas” that had occurred to him, some of which combined Atanasoff’s ideas with others, some quite different.45 More pointedly, he asked Atanasoff whether the latter would object to his (Mauchly’s) incorporating some of the ABC’s features into his own design.46

  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.

  VI

  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 w
ould 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 n2. 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 (n2 + 2n). 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 (n2 + 2n + 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, n2 = 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, n2 = 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.

  VII

  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.

  VIII

  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 design63; 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 calculators66—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

  Last, the IBM plugboard concept was used by the ENIAC designers to implement their problem setup procedure—their method of programming. When a problem had been transformed into a form suitable for the ENIAC, the units would be interconnected and their switches set to enable the execution of the desired task. The ENIAC problem setup procedure was derived from, and an extension of, the IBM plugboard procedure.69

  IX

  The ENIAC, then, was spun out of a web of past inventions. This itself is not especially unusual; phylogeny conditions ontogeny—and this, inc
identally, is true as much in the realms of science, art, poetry, and fiction as in technological invention and design.

  But the web in which the ENIAC was spun was tangled for other reasons, which had to do with the following kinds of questions about inventionhood. Who invented the first electronic computer? And who invented the ENIAC? These kinds of questions are of great interest to historians of science and technology, and to those who study creativity. In the case of the ENIAC, they were also of legal interest—hence the tangled web.

  The legal aspect stemmed from a long-drawn-out and celebrated court trial over the ENIAC patent. The issue before the court was the validity of a patent, applied for in 1947 and granted in 1964, to Presper Eckert and John Mauchly for their “invention” of the ENIAC. In 1967, a lawsuit was filed by Honeywell Corporation against Sperry Rand concerning the ENIAC patent. Sperry Rand entered the picture in the often-tortuous ways of corporate mergers and acquisitions. In 1948, Mauchly and Eckert formed the Eckert Mauchly Computer Corporation.70 This company was acquired by Remington Rand in 1950, which itself merged with Sperry Gyroscope to form Sperry Rand in 1955.71 Many of the patent rights on the ENIAC awarded to Eckert and Mauchly were acquired by Sperry Rand. Honeywell’s suit challenged the very validity of the ENIAC patent. To add to the complications over inventionhood, as part of the same lawsuit, some other leading participants in the ENIAC project, including Arthur Burks, also filed claims as co-inventors of the ENIAC, along with Eckert and Mauchly.72

  The ruling by Judge Earl Larson had many components to it, but the ones of immediate interest to our story were the following points. First, the judge stated that Eckert and Mauchly were the sole co-inventors of the ENIAC and that Burks and others had no claims as co-inventors.73 Second, the judge also found that Eckert and Mauchly did not themselves invent “automatic electronic computing,” but rather derived their ideas from “one Dr. John Vincent Atanasoff.”74 This ruling rendered the ENIAC patent invalid.