Computer History

The Work of John von Neumann

John von Neumann

John von Neumann was born in Budapest on December 28, 1903, into a wealthy banking family that had been elevated to the Hungarian nobility. From an early age, he showed great intellect and was labeled a prodigy. By the age of 6, von Neumann could speak Ancient Greek and divide a pair of 8-digit numbers in his head, and by 8, he had learned differential and integral calculus. When von Neumann was 15, his father arranged for Gábor Szegő to serve as his private math tutor. At their first lesson, the famous mathematician Szegő was brought to tears after watching the speed and ability of the young von Neumann. In addition to these incredible feats, von Neumann had a photographic memory and could recite entire novels word-for-word.

Von Neumann completed a two-year certificate in chemistry at the University of Berlin and a PhD in mathematics at Pázmány Péter University. After completing his PhD, von Neumann went to the University of Göttingen to study under David Hilbert, one of an important mathematician whose work helped to develop the computer. Thereafter, von Neumann went to Princeton University to accept a lifetime appointment to the Institute of Advanced Study. His office was several doors away from Albert Einstein’s office, and Einstein complained that von Neumann played German march music on his office phonograph too loudly.

While at Princeton, von Neumann was brought in to work on the Manhattan Project. He took many trips to Los Alamos Laboratory to monitor the development of atomic weapons, and he was crucial in many stages of the design and construction of the two nuclear weapons dropped on Japan. He was an eyewitness to the first test of an atomic bomb on July 16, 1945, and he served on the committee tasked with deciding which two Japanese cities would be targets for the bomb. For his involvement in the Manhattan Project, von Neumann became perhaps the biggest inspiration for the character Dr. Strangelove in Stanley Kubrick’s homonymous film.

Dr. Strangelove

Around the time during which he worked on the atomic bomb, von Neumann began working on ideas that would form the basis of computer science. Von Neumann had met with Alan Turing years earlier, and reports suggest that von Neumann was influenced by Turing’s paper “On Computable Numbers.” Certainly, due to his prior work with Hilbert, von Neumann was in a great position to recognize the significance of Turing’s work.

In 1945, while in the final stages of his work on the Manhattan Project, von Neumann told friends and colleagues that he was thinking about even more consequential work. While on a train to Los Alamos, von Neumann wrote a document called “First Draft of a Report on the EDVAC”. This 101-page document contains the design of the von Neumann architecture, which has remained the dominant paradigm in computer architecture since its introduction. The von Neumann architecture is typically associated with the stored-program computer concept, but it also includes a 4-part engineered design that differs from other stored-program concepts.

Most importantly, the von Neumann architecture is a stored-program computer. Stored-program computers use one memory unit to store both the computer programs and the data that the computer programs take as input. The stored-program design is typically contrasted with the Harvard architecture, which uses separate memory units to store the computer program and the program’s data.

The idea of a stored-program architecture was tacitly suggested by Turing’s work on universal Turing machines, as these machines are theoretical versions of stored-program computers. However, von Neumann recognized the value of explicitly engineering this property in computers. The alternative methods of programming computers required manually wiring or rewiring the computer’s circuits, a process that was so labor intensive that computers were often built for one function and never reprogrammed. With the new design, computers became easily reprogrammable and able to implement many different programs; however, access controls had to be enabled to prevent certain types of programs such as viruses from reprogramming crucial software like the operating system.

The most well-known design limitation of the von Neumann architecture is called the ‘von Neumann bottleneck’. The von Neumann bottleneck is caused by the stored-program architecture, as the data and program share the same bus to the central processing unit. The transfer of information from memory to CPU is typically much slower than actual processing in the CPU. The von Neumann design increases the amount of information transfer required because both the computer program and the program’s data need to be transferred to the CPU. One of the best methods of ameliorating this problem has been the usage of CPU caches. CPU caches serve as intermediaries between the main memory and the CPU. These CPU caches provide small amounts of quick-to-access memory near the processor core.

The von Neumann architecture consists of four parts: the control unit, the processing unit (including the arithmetic and logic unit (ALU)), the memory unit, and the input/output mechanisms. The input/output mechanisms include the standard devices associated with computers, including keyboards as inputs and display screens as outputs. The input mechanisms write to the Memory Unit which stores the computer programs and the program’s data. The control unit and the processing unit comprise the central processor. The control unit directs central processing according to the instructions it receives. The processing unit contains an ALU that performs a basic arithmetic or bitwise operations on a string of bits. The ALU can perform many different functions; therefore, it is the function of the control unit to direct the ALU so that it performs the correct function on the correct string.

The von Neumann Architecture

Following its introduction, the von Neumann architecture became the standard computer architecture, and the Harvard architecture was relegated to microcontrollers and signal processing. The von Neumann architecture is still in use today, but newer and more complicated designs inspired by the von Neumann architecture have eclipsed the original architecture in terms of popularity.

About the author

Jarrett Levine