Von Neumann
architecture
John Louis von Neumann, mathematician (born János von Neumann 28 December 1903 in Budapest, Hungary, died 8 February 1957 in Washington, D.C.), proposed the stored program concept while professor of mathemtics (one of the orginal six) at Princeton University’s Institute for Advanced Services, in which programs (code) are stored in the same memory as data. The computer knows the difference between code and data by which it is attempting to access at any given moment. When evaluating code, the binary numbers are decoded by some kind of physical logic circuits (later other methods, such as microprogramming, were introduced), and then the instructions are run in hardware. This design is called von Neumann architecture and has been used in almost every digital computer ever made.
Von
Neumann architecture introduced flexibility to computers. Previous computers
had their programming hard wired into the computer. A particular computer could
only do one task (at the time, mostly building artillery tables) and had to be
physically rewired to do any new task.
By using
numeric codes, von Neumann computers could be reprogrammed for a wide variety
of problems, with the decode logic remaining the same.
As
processors (especially super computers) get ever faster, the von Neumann bottleneck is starting to
become an issue. With data and code both being accessed over the same circuit
lines, the processor has to wait for one while the other is being fetched (or
written). Well designed data and code caches help, but only when the requested
access is already loaded into cache. Some researchers are now experimenting
with Harvard architecture to solve the von Neumann bottleneck. In
Harvard arrchitecture, named for Howard Aiken’s experimental Harvard Mark I
(ASCC) calculator [computer] at Harvard University, a second set of data and
address lines along with a second set of memory are set aside for executable
code, removing part of the conflict with memory accesses for data.
Von
Neumann became an American citizen in 1933 to be eligible to help on top secret
work during World War II. There is a story that Oskar Morganstern coached von
Neumann and Kurt Gödel on the U.S. Constitution and American history while
driving them to their immigration interview. Morganstern asked if they had any
questions, and Gödel replied that he had no questions, but had found some
logical inconsistencies in the Constitution that he wanted to ask the
Immigration officers about. Morganstern recommended that he not ask questions,
but just answer them.
Von
Neumann occassionally worked with Alan Turing in 1936 through 1938 when Turing
was a graduate student at Princeton. Von Neumann was exposed to the concepts of
logical design and universal machine proposed in Turing’s 1934 paper “On
Computable Numbers with an Application to the Entschiedungs-problem”.
Von
Neumann worked with such early computers as the Harvard Mark I, ENIAC, EDVAC,
and his own IAS computer.
Early
research into computers involved doing the computations to create tables, especially
artillery firing tables. Von Neumann was convinced that the future of computers
involved applied mathematics to solve specific problems rather than mere table
generation. Von Neumann was the first person to use computers for mathematical
physics and economics, proving the utility of a general purpose computer.
Von
Neumann proposed the concept of stored programs in the 1945 paper “First Draft
of a Report on the EDVAC”. Influenced by the idea, Maurice Wilkes of the
Cambridge University Mathematical Laboratory designed and built the EDSAC, the
world’s first operational, production, stored-program computer.
The first
stored computer program ran on the Manchester Mark I [computer] on June 21,
1948.
Von
Neumann foresaw the advantages of parallelism in computers, but because of
construction limitations of the time, he worked on sequential systems.
Von
Neumann advocated the adoption of the bit as the measurement of computer memory
and solved many of the problems regarding obtaining reliable answers from
unreliable computer components.
Interestingly,
von Neumann was opposed to the idea of compilers. When shown the idea for
FORTRAN in 1954, von Neumann asked “Why would you want more than machine
language?”. Von Neumann had graduate students hand assemble programs into
binary code for the IAS machine. Donald Gillies, a student at Princeton,
created an assembler to do the work. Von Neumann was angry, claiming “It is a
waste of a valuable scientific computing instrument to use it to do clerical
work”.
Von
Neumann also did important work in set theory (including measure theory), the
mathematical foundation for quantum theory (including statistical mechanics),
self-adjoint algebras of bounded linear operators on a Hilbert space closed in
weak operator topology, non-linear partial differential equations, and automata
theory (later applied to cmputers). His work in economics included his 1937
paper “A Model of General Economic Equilibrium” on a multi-sectoral growth
model and his 1944 book “Theory of Games and Economic Behavior” (co-authored
with Morgenstern) on game theory and uncertainty.
“If people do not believe that mathematics is
simple, it is only because they do not realize how complicated life is.”
“Anyone who considers arithmetical methods of
producing random numbers is, of course, in a state of sin.”