The Von Neumann Model

Part of notes for CS:4980:4, Fall 2015
by Douglas W. Jones
THE UNIVERSITY OF IOWA Department of Computer Science

In the summer of 1946, John Von Neumann convened a summer school or workshop at the Princeton Institute for Advanced Studies where most of the people involved in computing on the Allied side of World War II came together. Maurice Wilkes, who was then the head of the Computing Laboratory at Cambridge came, as did J. Presper Eckert, William Mauchly, and a number of others. One product of this workshop was the technical report Preliminary discussion of the logical design of an electronic computing instrument. (An original copy of this report sold at auction in 2010 for $6969.)

This report launched the modern computer age, documenting what came to be known as the Von Neumann architecture. SSEM (Manchester, 1948, a prototype), EDSAC (Cambridge, 1949, the first practical model), Mark 1 (Manchester, 1949), CSIRAC (Australia, 1949), EDVAC (Aberdeen, 1951), ORDVAC (Illinois and then Aberdeen, 1951), IAS Machine (Princeton, 1952), and at least 10 other machines were built based on this model around the world by 1965, including machines in Russia, Sweden, Israel, Denmark, and Germany.

The Berks, Goldstine and Von Neumann paper is almost as hard to read as Babbage's work in the 19th century. Half the paper is attempting to work out the word size needed, and it concludes that the optimum size is 40 bits. When is the last time you saw a 40-bit word? The other half of the paper is brilliant. In reading the paper, focus on the binary encoding of the instruction set and on the modern idea of putting code and data in the same RAM. Find the carefully wored out details of set of conditional and unconditional branch instructions, but note that there is not a hint of any kind of subroutine mechanisms. Instead, the discussion focuses on self-modifying code, using the fact that instructions in RAM can be modified by the running program.