The von Neumann Architecture

The von Neumann Architecture

Introduction

Have you ever wondered how your computer works? Who decided that we should use keyboards to tell our devices what to do? And who else later decided that touch screens were cooler much of the time. Much of how we think about computing we currently owe to John von Neumann, who developed the current way of thinking about computers.

The Von Neumann architecture is a model that was developed in the 1940s by John von Neumann, a physicist and mathematician, who was an early computer researcher. During World War 2, cracking secret codes and the development of nuclear weapons led to an increase in public funding for computer research, as machines could do lots of arithmetic quickly and accurately. Von Neumann would go on to outline a model for building any sort of computer in his The First Draft Report on the EDVAC (the EDVAC being a computer he was working on at the time) that has been the standard for all computing devices since.

In his model, von Neumann illustrates that a computer should have several main components:

  • Arithmetic Unit
  • Control Unit
  • Memory
  • Input
  • Output

Flexibility of the Model

This model is relatively flexible – in his paper, von Neumann mentions that different machines could very well have different capabilities while still being built with all of these components in mind. Computers that use the von Neumann architecture range from very simple (such as the one in your microwave) to the massive supercomputers that have dedicated buildings. The wide scope of computers that fall under the von Neumann model are proof that von Neumann achieved his goal when it came to creating a model that was versatile.

Components and What They Do

The control unit, as described by von Neumann, is the part of the computer that keeps track of what is supposed to run when. When you turned on your computer, your PC’s control device (most probably inside of a CPU) queued up the correct start up operations. The purpose of the control unit is to allow a computer to run many different kinds of programs, and switch between them when necessary. While this seems trivial now, the first computers were manually operated. If you wanted a computer to do something different than what it was previously doing, you had to go in and change all of the wires yourself. The conception of a control unit allowed the computer to modify its own hardware and software, allowing a great deal of abstraction for users. Computers being able to modify themselves (and other computers) essentially enables modern computing as we know it, the good (high level programming languages, not swapping about the wires in your desktop) and the bad (it would be impossible to hack a pre-von Neumann computer without performing an elaborate heist operation to change around the wiring yourself).

The arithmetic unit of a computer does the logical processing. Computers were originally designed for doing lots and lots of math, so von Neumann designated an entire component of his model to do that. Despite being called the arithmetic unit, this unit is also responsible for doing logical operations as well. Arithmetic units allow computers to distinguish if two sequences of binary are completely the same (an AND operation), if some of the numbers are the same, or allowing sign flippage.

The memory component of this model is probably simplest to understand. If we want computers to do work in a useful capacity, they need to be able to remember what we’ve done. Most modern computers have two types of memory. They’ve got long term, slower memory, which is usually kept in the hard drive. Computers also have faster, short term memory. This is typically stored in RAM. Traditionally, RAM memory has been volatile. This means that it is erased when you turn the power off. This is also why you used to lose everything you did on older video games without saving – if you didn’t tell the computer to move your data out of RAM and onto the hard drive, it was just lost.

The last components of a computer are its input and output components. Input is just how the user puts instructions into a computer. These days, inputs are most often keyboards and/or touch screens, although speakers are becoming more common. Output is how a computer communicates what it’s doing to the user. Most computers have a visual (a screen) and an audio (speakers and/or headphones) component to the output.

Conclusion

The von Neumann model for computing has lasted for nearly a century. Pretty much any device that you use will have been built and designed with the von Neumann architecture in mind. That being said, scientists are looking beyond this model for the future. Quantum computing and other innovations may mean we say good bye to the von Neumann architecture.

References

Brandl, M. F. (2017). A Quantum von Neumann Architecture for Large-Scale Quantum Computing. (https://arxiv.org/abs/1702.02583)

Freiberger, P., & Swaine, M. (2016, November 14). Von Neumann machine. Retrieved September 15, 2020, from https://www.britannica.com/technology/von-Neumann-machine

von Neumann, J. (1945). First draft of a report on the EDVAC. doi:10.5479/sil.538961.39088011475779