Reconsidering the Stored-Program Concept
Total Page:16
File Type:pdf, Size:1020Kb
Reconsidering the Stored-Program Concept Thomas Haigh University of Wisconsin–Milwaukee Mark Priestley Crispin Rope The first in a three-part series appearing in IEEE Annals, this article gives a historical explanation of the endemic confusion surrounding the stored-program concept. After a detailed investigation of the history of this idea, the authors propose three more precisely defined alternatives to capture specific aspects of the new approach to computing introduced in 1945 by John von Neumann and his collaborators. It is a truth universally agreed that implemen- concept.” Historians almost invariably point tation of the “stored program concept” in the to a single document as the first publication late 1940s was the most important dividing to describe the concept and as the direct line in computer history, separating modern source of inspiration for the architecture of computers from their less evolved predeces- subsequent computer projects. That docu- sors. Yet, as Doron Swade recently noted, we ment is the “First Draft of a Report on the do not really agree on why this should be the EDVAC” (hereafter simply the First Draft), cir- case. For years he “assumed that the signifi- culated under the name of John von Neu- cance of the stored program must be self- mann in 1945.2 Although the true balance of evident” and attributed his own confusion to credit for the ideas contained in this docu- “a deficiency of understanding” or to “some ment has been widely and heatedly debated, lack” in his computer science education, its central importance to the development until finally he “became bold and began modern computing has not.3 asking” among computer historians and pio- We look at initial conceptions of the neers what it actually was. Their answers were advantages and crucial features of the new “all different,” with the question of whether approach to computer design put forward in “the primary benefit was one of principle or the First Draft, which scholars treat as the first practice frustratingly blurred.” Swade con- and most influential statement of the con- cluded that, cept. We also identify the origins of the phrase “stored program,” which came some Therewasonefeatureofalltheresponses years later, and its extension by early com- about which there was complete agreement: puter historians to the “stored program no one challenged the status of the stored pro- concept.” gram as the defining feature of the modern Having shown that this historical evolu- digital electronic computer.... While the rea- tion left the terms hopelessly overloaded sons given for this were different, none dis- with contradictory meanings, to which counted its seminal significance. But it seems Swade’s confusion was an appropriate and that we struggle when required to articulate its insightful response, we return to the text of significance in simple terms and the apparent the First Draft to identify three distinct but mix of principle and practice frustrates intertwined clusters of influential ideas in the clarity.1 report: the modern code paradigm, the von Neumann architecture paradigm, and the In this article, we respond by historicizing EDVAC hardware paradigm. These were the “stored program” and “stored program sometimes implemented independently in 4 IEEE Annals of the History of Computing Published by the IEEE Computer Society 1058-6180/14/$31.00 c 2014 IEEE the machines of the 1940s, and although all scientific communities grew, was an exem- three were standard features of computers of plary technical accomplishment reflecting a the mid-1950s, their fates have subsequently new approach—the “concrete” paradigm. In diverged again. We believe that reliance by its initial formulation it might be clumsy or historians on the term “stored program con- incomplete, but it held sufficient promise to cept” as shorthand for the content of the attract others to build on its model to extend entire 1945 EDVAC design has done more to itandapplyittonewkindsofproblem.The hurt our understanding than to help it. original paradigmatic accomplishment was, Our own attention turned to this question in Kuhn’s term, “articulated” through this as we investigated modifications made to later work to become something almost ENIAC in early 1948 by a team working unrecognizable. For example, later genera- closely with John von Neumann. These mod- tions of scientists learned Newton’s laws of ifications incorporated key elements of the motion in a form (and using a version of cal- new approach to computer design and pro- culus) quite different from those familiar to gramming associated with EDVAC. Thus con- Newton himself. verted, ENIAC ran a complex program Focusing on the First Draft as a paradigm written in the new style, including condi- thussteersustowardtwoimportantissues. tional branches, data reads from calculated The first is that this core sense of paradigm addresses, and a subroutine called from more helps us to understand the enormous power than one point in the code. This program was that the First Draft exerted over the subse- developed using the methodology and flow quent development of computing. The sec- diagramming notation described by Herman ond, less obvious, is that the First Draft only Goldstine and von Neumann in their seminal became a paradigm retroactively. In 1945 it series of reports on “Planning and Coding of wasjustadocument.Asotherstookupits Problems for an Electronic Computing ideas, implemented them, and extended Instrument” issued around this time.4 them,itcametofunctionasaparadigm.By Dispelling some previous confusion, we the 1950s, its paradigmatic authority was have established that all of this was com- becoming clear. Some of the ideas contained pleted before Manchester University’s “Baby” within it were discarded, some were reformu- (known more formally as the Small-Scale lated, and others were added. The treatment Experimental Machine) executed what is usu- of its ideas in textbooks and papers has con- ally called the world’s first stored program in tinued to evolve. Understanding what was so the summer of the same year. It would be originally so important about the First Draft well over a year until EDSAC became the first requires us to strip away some of these later purpose-built stored-program computer to ideas and to ground our analysis in the real- enter regular operation and run programs of ities of 1940s computer practice. complexity comparable to ENIAC’s. ENIAC still differed from purpose-built, full-scale What Did von Neumann Mean By stored program computers in several impor- “Stored Program”? tant ways. In particular, its electronic storage That turns out to be a trick question, unfortu- remained rather small, and program instruc- nately. The “First Draft of a Report on the tions were stored along with constant data in EDVAC” does not, despite the role it has been a high-speed read-only memory.5 Should assigned in later historical work, function ENIAC therefore be considered the first well as a standards document to rigorously operational stored-program computer? Well, define the concept of “stored program.” To it all depends on what we mean by “stored begin with, the word “program” never program.” So before returning to ENIAC in appears in the draft. Von Neumann consis- the next article in this series, we will clarify tently preferred “code” to “program” and the ideas associated with this term and the wrote of “memory” rather than “storage.” process by which they evolved. Indeed, if someone with no prior exposure to To understand the role played by the First the topic was handed this document and Draft in the subsequent development of com- asked to encapsulate its big idea about the puting, we are relying on the notion of a handling of instructions in a single phrase, he “paradigm” introduced by historian and phi- or she would be much more likely to derive losopher of science Thomas Kuhn in his clas- “remembered code” than “stored program.” sic Structure of Scientific Revolutions.6 Kuhn Our current attachment to the term believed that the most fundamental sense of “stored program” as a description for com- paradigm, the seed around which mighty puters built along lines proposed for EDVAC January–March 2014 5 Reconsidering the Stored-Program Concept thus needs some historical explanation. Read new breed of computers came from J. Presper literally, the term conveys very little. Any Eckert and John Mauchly. As well as design- program that can be executed by a computer ing ENIAC, they had created at least some of must be stored in some form or other. The the ideas included in the First Draft and in First Draft itself observed that “instructions 1946 founded a company to commercialize a must be given in some form which the device similar design. In 1946 a summer school was can sense: Punched into a system of punch- held at the University of Pennsylvania, then cards or on teletype tape, magnetically housing both ENIAC and the project to build impressed on steel tape or wire, photographi- the EDVAC. Historians have credited the cally impressed on motion picture film, wired event as a crucial vector for the spread of the into one or more fixed or exchangeable plug- stored-program concept. But what made boards—this list being by no means necessa- EDVAC so appealing as a model? rily complete.”7 During his lecture, Eckert retraced for the The report was a speculative and argumen- audience the process he and his colleagues tative description of the design of a particular had gone through to design the EDVAC as a machine, not an abstract description of a reaction to the shortcomings of ENIAC. His new class of machines. It offered great detail argument for internal program storage was in some areas and very little in others. In pragmatic. It would reduce set up time, as “in other words, it is only when armed with the the EDVAC there will be no cords, no plugs, knowledge of later developments that we and few switches.