Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
First Draft of a Report on the EDVAC
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{short description|First published description of a stored-program computer}} {{italic title}} The '''''First Draft of a Report on the EDVAC''''' (commonly shortened to '''''First Draft''''') is an [[unfinished creative work|incomplete]] 101-page document written by [[John von Neumann]] and distributed on June 30, 1945 by [[Herman Goldstine]], security officer on the classified [[ENIAC]] project. It contains the first published description of the logical design of a computer using the [[Stored-program computer|stored-program]] concept, which has come to be known as the [[von Neumann architecture]]; the name has become controversial due to von Neumann's failure to name other contributors. ==History== [[File:Firstdraftofrepo00vonn 0003.jpg|thumb|Title page the ''First Draft'', copy belonging to [[Samuel N. Alexander]], who developed the [[SEAC (computer)|SEAC computer]] based on the report.]] Von Neumann wrote the report by hand while commuting by train to [[Los Alamos, New Mexico]] and mailed the handwritten notes back to [[Philadelphia]]. Goldstine had the report typed and duplicated. While the date on the typed report is June 30, 24 copies of the ''First Draft'' were distributed to persons closely connected with the [[EDVAC]] project five days earlier on June 25. Interest in the report caused it to be sent all over the world; [[Maurice Vincent Wilkes|Maurice Wilkes]] of [[Cambridge University]] cited his excitement over the report's content as the impetus for his decision to travel to the [[United States]] for the [[Moore School Lectures]] in Summer 1946. ==Synopsis== Von Neumann describes a detailed design of a "very high speed automatic digital computing system." He divides it into six major subdivisions: a central arithmetic part, CA; a central control part, CC; memory, M; input, I; output, O; and (slow) external memory, R, such as [[punched card]]s, [[paper tape|Teletype tape]], or [[wire recording|magnetic wire]] or [[Magnetic tape|steel tape]]. The CA will perform addition, subtraction, multiplication, division and square root. Other mathematical operations, such as logarithms and trigonometric functions are to be done with [[Lookup table|table look up]] and [[interpolation]], possibly [[biquadratic]]. He notes that multiplication and division could be done with logarithm tables, but to keep the tables small enough, interpolation would be needed and this in turn requires multiplication, though perhaps with less precision. Numbers are to be represented in [[Binary number|binary notation]]. He estimates 27 binary digits (he did not use the term "[[bit]]," which was coined by [[Claude Shannon]] in 1948) would be sufficient (yielding 8 decimal place accuracy) but rounds up to 30-bit numbers with a sign bit and a bit to distinguish numbers from orders, resulting in a 32-bit word he calls a ''minor cycle.'' [[Two's complement]] arithmetic is to be used, simplifying subtraction. For multiplication and division, he proposes placing the binary point after the sign bit, which means all numbers are treated as being between β1 and +1{{efn|The highest value is actually 1 - 2<sup>β30</sup>, 0.99999999906 in decimal notation.}} and therefore computation problems must be scaled accordingly. ===Circuit design=== [[Vacuum tube]]s are to be used rather than [[relay]]s due to tubes' ability to operate in one microsecond vs. 10 milliseconds for relays. Von Neumann suggests (Sec. 5.6) keeping the computer as simple as possible, avoiding any attempt at improving performance by overlapping operations. Arithmetic operations are to be performed one binary digit at a time. He estimates addition of two binary digits as taking one microsecond and that therefore a 30-bit multiplication should take about 30<sup>2</sup> microseconds or about one millisecond, much faster than any computing device available at the time. Von Neumann's design is built up using what he call "E elements," which are based on the biological [[neuron]] as model,<ref>Von Neumann credits this model to [[Warren McCulloch]] and [[Walter Pitts]], [http://www.cse.chalmers.se/~coquand/AUTOMATA/mcp.pdf ''A logical calculus of the ideas immanent in nervous activity''], Bull. Math. Biophysics, Vol. 5 (1943), pp. 115β133</ref><ref>Von Neumann had worked closely with McCulloch and Pitts. See [https://nautil.us/the-man-who-tried-to-redeem-the-world-with-logic-235253/ The Man Who Tried to Redeem the World with Logic], Amanda Gefter, Nautilus, Issue 21, February 4, 2015</ref> but are digital devices which he says can be constructed using one or two vacuum tubes. In modern terms his simplest E element is a two-input [[AND gate]] with one input inverted (the inhibit input). E elements with more inputs have an associated threshold and produce an output when the number of positive input signals meets or exceed the threshold, so long as the (only) inhibit line is not pulsed. He states that E elements with more inputs can be constructed from the simplest version, but suggests they be built directly as vacuum tube circuits as fewer tubes will be needed. More complex function blocks are to be built from these E elements. He shows how to use these E elements to build circuits for addition, subtraction, multiplication, division and square root, as well as two state memory blocks and control circuits. He does not use [[Boolean logic]] terminology. Circuits are to be synchronous with a master system clock derived from a [[vacuum tube oscillator]], possibly [[crystal oscillator|crystal controlled]]. His logic diagrams include an arrowhead symbol to denote a unit time delay, as time delays must be accounted for in a synchronous design. He points out that in one microsecond an electric pulse moves 300 meters so that until much higher clock speeds, e.g. 10<sup>8</sup> cycles per second (100 MHz), wire length would not be an issue. The need for error detection and correction is mentioned but not elaborated. ===Memory design=== A key design concept enunciated, and later named the [[Von Neumann architecture]], is a uniform memory containing both numbers (data) and orders (instructions). <blockquote> "The device requires a considerable memory. While it appeared that various parts of this memory have to perform functions which differ somewhat in their nature and considerably in their purpose, it is nevertheless tempting to treat the entire memory as one organ, and to have its parts even as interchangeable as possible for the various functions enumerated above." (Sec. 2.5) "The orders which are received by CC come from M, i.e. from the same place where the numerical material is stored." (Sec. 14.0) </blockquote> Von Neumann estimates the amount of memory required based on several classes of mathematical problems, including [[ordinary differential equation|ordinary]] and [[partial differential equation]]s, [[Sorting algorithm|sorting]] and [[Monte Carlo method|probability experiments]]. Of these, partial differential equations in two dimensions plus time will require the most memory, with three dimensions plus time being beyond what can be done using technology that was then available. He concludes that memory will be the largest subdivision of the system and he proposes 8,192 minor cycles (words) of 32-bits as a design goal, with 2,048 minor cycles still being useful. He estimates a few hundred minor cycles will suffice for storing the program. He proposes two kinds of fast memory, [[Delay line memory|delay line]] and [[iconoscope]] tube. Each minor cycle is to be addressed as a unit (word addressing, Sec. 12.8). Instructions are to be executed sequentially, with a special instruction to switch to a different point in memory (i.e. a jump instruction). Binary digits in a delay line memory pass through the line and are fed back to the beginning. Accessing data in a delay line imposes a time penalty while waiting for the desired data to come around again. After analyzing these timing issues, he proposes organizing the delay line memory into 256 delay line "organs" (DLAs) each storing 1024 bits, or 32 minor cycles, called a ''major cycle.'' A memory access first selects the DLA (8 bits) and then the minor cycle within the DLA (5 bits), for a total of 13 address bits. For the iconoscope memory, he recognizes that each scan point on the tube face is a capacitor and that a capacitor can store one bit. Very high precision scanning will be needed and the memory will only last a short time, perhaps as little as a second, and therefore will need to be periodically recopied ([[Memory refresh|refreshed]]). ===Orders (instructions)=== In Sec 14.1 von Neumann proposes the format for orders, which he calls a code. Order types include the basic arithmetic operations, moving minor cycles between CA and M (word load and store in modern terms), an order (''s'') that selects one of two numbers based on the sign of the previous operation, input and output and transferring CC to a memory location elsewhere (a jump). He determines the number of bits needed for the different order types, suggests ''immediate orders'' where the following word is the operand and discusses the desirability of leaving spare bits in the order format to allow for more addressable memory in the future, as well as other unspecified purposes. The possibility of storing more than one order in a minor cycle is discussed, with little enthusiasm for that approach. A table of orders is provided, but no discussion of input and output instructions was included in the First Draft. ==Controversy== The issuance and distribution of the report was the source of bitter acrimony between factions of the [[EDVAC]] design team for two reasons.<ref>{{Citation | last = Moye | first = William T. | title = ENIAC: The Army-Sponsored Revolution | publisher = [[United States Army Research Laboratory]] | date = January 1996 | url = http://ftp.arl.army.mil/mike/comphist/96summary/index.html | accessdate = 2012-11-26 | url-status = dead | archiveurl = https://web.archive.org/web/20130305070628/http://ftp.arl.army.mil/mike/comphist/96summary/index.html | archivedate = 2013-03-05 }}</ref> First, the report was [[Honeywell, Inc. v. Sperry Rand Corp.|later ruled]] a public disclosure that occurred more than a year before the EDVAC patent application was filed, thereby rendering the eventual patent unenforceable; second, some on the EDVAC design team contended that the stored-program concept had evolved out of meetings at the [[University of Pennsylvania]]'s [[Moore School of Electrical Engineering]] predating von Neumann's activity as a consultant there, and that much of the work represented in the ''First Draft'' was no more than a translation of the discussed concepts into the language of [[formal logic]] in which von Neumann was fluent. Hence, failure of von Neumann and Goldstine to list others as authors on the ''First Draft'' led credit to be attributed to von Neumann alone. (See [[Matthew effect (sociology)|Matthew effect]] and [[Stigler's law]].) ==See also== *[[Electronic delay storage automatic calculator]] (EDSAC), an early British computer inspired by ''First Draft of a Report on the EDVAC'' *[[Harvard Mark I]], an early electromechanical computer with instructions and numerical data kept separate ([[Harvard architecture]]) ==Notes== {{Notelist}} ==References== {{Reflist}} ==Bibliography== {{Wikisource}} *{{Citation | last = von Neumann | first = John | author-link = John von Neumann | title = First Draft of a Report on the EDVAC | year = 1945 | url = https://archive.org/details/20200901-vN_First_Draft_Report_EDVAC_Moore_Sch_1945/page/n1/mode/2up | accessdate = December 5, 2024 | edition = Michael D. Godfrey scan of U. Penn Moore School Library copy of original 1945 typewritten}} *{{Citation | last = von Neumann | first = John | author-link = John von Neumann | title = First Draft of a Report on the EDVAC | year = 1945 | url = https://archive.org/details/firstdraftofrepo00vonn/page/n1 | accessdate = December 5, 2024 | edition = Internet Archive scan of Smithsonian copy of original 1945 typewritten}} *{{Citation | last = von Neumann | first = John | author-link = John von Neumann | title = First Draft of a Report on the EDVAC | year = 1945 | url = http://qss.stanford.edu/%7Egodfrey/vonNeumann/vnedvac.pdf | archive-url = https://web.archive.org/web/20070623082626/http://qss.stanford.edu/%7Egodfrey/vonNeumann/vnedvac.pdf | url-status = dead | archive-date = 2007-06-23 | accessdate = December 5, 2024 | edition = Original PDF with 1993 typographical corrections in TeX by Stanford professor Michael D. Godfrey}} *{{Citation | last = von Neumann | first = John | author-link = John von Neumann | title = First Draft of a Report on the EDVAC | year = 1945 | url = http://web.mit.edu/STS.035/www/PDFs/edvac.pdf | accessdate = December 5, 2024 | edition = Scanned PDF of 1993 typographical corrections in TeX by Stanford professor Michael D. Godfrey, IEEE Annals of the History of Computing}} *{{cite book | last = Goldstine | first = Herman H. | authorlink = Herman Goldstine | title = The Computer: from Pascal to von Neumann | url = https://archive.org/details/computerfrompasc00herm | url-access = registration | year = 1972 | publisher = Princeton University Press | location = Princeton, New Jersey | isbn = 0-691-02367-0 }} *{{cite book | last = Stern | first = Nancy | title = From ENIAC to UNIVAC, An appraisal of the Eckert-Mauchly Computers | year = 1981 | publisher = Digital Press | location = Bedford, Massachusetts | isbn = 0-932376-14-2 }} *{{cite journal | first1 = Michael D. | last1 = Godfrey | first2 = D. F. | last2 = Hendry<!--Doesn't seem to be [[David Forbes Hendry]], but not certain.--> | title = The Computer as von Neumann Planned It | journal = IEEE Annals of the History of Computing | volume = 15 | issue = 1 | date = January 1993 | pages = 11β21 | doi = 10.1109/85.194088 | citeseerx = 10.1.1.705.7264 | url = http://www.contrib.andrew.cmu.edu/~mhhammou/15346-s13/resources/OriginsOfComputers/The%20Computer%20as%20von%20Neumann%20planned%20it.pdf }} ==External links== *[http://purl.umn.edu/107275 Oral history interview with J. Presper Eckert], [[Charles Babbage Institute]], University of Minnesota. [[J. Presper Eckert|Eckert]], a co-inventor of the [[ENIAC]], discusses its development at the University of Pennsylvania's [[Moore School]] of Electrical Engineering; describes difficulties in securing patent rights for the ENIAC and the problems posed by the circulation of [[John von Neumann]]'s 1945 ''First Draft of the Report on EDVAC'', which placed the ENIAC inventions in the public domain. Interview by Nancy Stern, 28 October 1977. [[Category:1945 in computing]] [[Category:1945 documents]] [[Category:1945 in technology]] [[Category:Computer-related introductions in 1945]] [[Category:Computer science books]] [[Category:History of computing hardware]] [[Category:John von Neumann]] [[Category:Theory of computation]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Citation
(
edit
)
Template:Cite book
(
edit
)
Template:Cite journal
(
edit
)
Template:Efn
(
edit
)
Template:Italic title
(
edit
)
Template:Notelist
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)
Template:Sister project
(
edit
)
Template:Wikisource
(
edit
)