John von Neumann and Modern Computer Architecture

If one scans the pages of computer history, the name John Von Neumann turns up at so many places that it seem unbelievable that this could be the work of only one man. Besides inventing game theory, cellular automata, the Monte Carlo method, and putting down the foundations of quantum mechanics, he invented the computer architecture that we use today.

Neumann János Lajos was born in Budapest, Hungary in 1903. His family later changed his name to the German form Johann von Neumann. In 1930 he accepted a position as guest lecturer at the Princeton University, and stayed. Later he became a citizen of the USA and was known as John Von Neumann from then on.

Pre-Von Neumann computers used to split up memory into program memory and data memory, and this made them very complex. Von Neumann was the first to realize that there was actually no difference between the nature of instructions and the nature of data. His ideas, often referred to as the stored-program technique, became fundamental for future generations of high-speed digital computers and were universally adopted. The primary advance was storing all instruction programs together with data in the same memory unit, so that, when desired, instructions could be arithmetically modified in the same way as data. Thus, data was the same as program.

Von Neumann architecture

As a result of these techniques and several others, computing and programming became faster, more flexible, and more efficient, with the instructions in subroutines performing far more computational work. Frequently used subroutines did not have to be reprogrammed for each new problem but could be kept intact in “libraries” and read into memory when needed. Thus, much of a given program could be assembled from the subroutine library. The all-purpose computer memory became the assembly place in which parts of a long computation were stored, worked on piecewise, and assembled to form the final results. The computer control served as an errand runner for the overall process.

Von Neumann with EDVAC

The first generation of modern programmed electronic computers to take advantage of von Neumann’s improvements appeared in 1947. This group included computers using random access memory (RAM), which is a memory designed to give almost constant access to any particular piece of information. These machines had punched-card or punched-tape input and output devices and RAMs of 1,000-word. Physically, they were much more compact than ENIAC: some were about the size of a grand piano and required 2,500 small electron tubes, far fewer than required by the earlier machines. The first- generation stored-program computers required considerable maintenance, attained perhaps 70% to 80% reliable operation, and were used for 8 to 12 years. Typically, they were programmed directly in machine language, although by the mid-1950s progress had been made in several aspects of advanced programming. This group of machines included EDVAC and UNIVAC, the first commercially available computers.