Skip to main content
Bethemesh
ReferenceComputing history

Von Neumann architecture: storing the program in memory

Understand the von Neumann model, its computation, control, memory and input/output units, and the stored-program principle.

Published 31 July 2026Updated 15 September 2026Reading : 6 minBy Bethemesh Team
Beginner
Editorial diagram of von Neumann architecture connecting processor, memory and input/output
Show contents
  1. Before the stored-program computer
  2. The EDVAC project and the 1945 report
  3. The major functions of a computer
  4. The decisive idea: instructions and data in memory
  5. How does the processor execute a program?
  6. Registers, caches, and the von Neumann bottleneck
  7. Von Neumann and Harvard architectures
  8. Modern processors go far beyond the original diagram
  9. A program can itself become data
  10. From specialized hardware to the universal machine
  11. Why does von Neumann architecture still matter?
  12. Key takeaways
  13. Frequently asked questions
  14. Did John von Neumann invent this architecture by himself?
  15. What is the main idea behind von Neumann architecture?
  16. What is the difference between von Neumann and Harvard architecture?
  17. What is the von Neumann bottleneck?
  18. Do modern computers still use von Neumann architecture?

Von Neumann architecture is one of the fundamental models of modern computing. Formalized in the mid-1940s, as the first electronic computers were being developed, it rests on an idea that seems almost obvious today: a program’s instructions can be stored in memory, just like the data they operate on.

This stored-program principle profoundly changed computer design. The same machine could now perform very different tasks simply by loading a new program, without requiring its physical wiring to be changed.

More than eighty years after the early work on EDVAC, processors have become vastly more complex. Yet memory, computation, control, and input/output remain central to how computers work.

Before the stored-program computer

The earliest automatic calculating machines were not necessarily programmed the way modern computers are. On some machines, changing the calculation meant altering connections, moving cables, setting switches, or preparing new physical media. ENIAC is a famous example: its original configuration required substantial manual work.

A crucial question therefore emerged: what if the instructions telling the machine what to do were themselves stored in its memory? The program would become information that the computer could load and read. This idea lies at the heart of the stored-program concept.

The EDVAC project and the 1945 report

In 1945, while ENIAC had not yet been officially unveiled, its designers were already working on its successor, EDVAC. John von Neumann joined discussions around the project and wrote the famous First Draft of a Report on the EDVAC.

The report described an electronic machine organized around computation, control, memory, and communication with the outside world. Most importantly, it presented the principle that instructions could be represented numerically and stored in memory.

The document circulated widely and helped establish the expression von Neumann architecture. The name nevertheless requires historical qualification: ideas surrounding stored-program computers emerged from collective work involving, among others, J. Presper Eckert and John Mauchly. Von Neumann played a decisive role in formalizing and disseminating them, but he was not their sole inventor.

The major functions of a computer

In a simplified representation, a von Neumann-type machine contains an arithmetic and logic unit, a control unit, memory, and input/output devices. The ALU performs calculations and logical operations, while the control unit coordinates execution. In modern computers these functions are part of the processor, or CPU.

Memory stores information needed by the machine, including both data and program instructions. Input and output allow the computer to communicate with the outside world.

The decisive idea: instructions and data in memory

In a classic von Neumann architecture, data and instructions can be stored in the same memory. Changing programs therefore no longer necessarily requires rebuilding or rewiring the computer: new instructions can simply be loaded into memory.

The same physical machine can consequently perform accounting, scientific calculations, run a game, or operate a text editor by using different programs. This is one of the principles that make the general-purpose computer possible.

How does the processor execute a program?

The process is commonly represented as fetch-decode-execute. A program counter identifies the next instruction. The processor fetches it from memory, the control unit decodes it, the requested operation is executed, and the result may be placed in a register, written to memory, or sent elsewhere. The processor then moves to the next instruction.

Registers, caches, and the von Neumann bottleneck

Processors contain small, extremely fast storage locations called registers. Modern systems also use several levels of cache memory to keep frequently needed instructions and data closer to the processor.

These mechanisms address a persistent problem: computation can be faster than access to the information it needs. Because instructions and data share memory and communication paths in the classic model, performance can be limited by transfers between processor and memory. This is known as the von Neumann bottleneck, an expression notably popularized by John Backus in the 1970s.

Von Neumann and Harvard architectures

In a strict Harvard architecture, instructions and data use separate memories and may have separate communication paths. In the classic von Neumann model they share a memory space.

Modern computers often blur this distinction. A processor may expose a unified memory space while internally using separate instruction and data caches, an organization sometimes described as modified Harvard architecture.

Modern processors go far beyond the original diagram

The fetch-decode-execute cycle is an excellent teaching model, but modern processors use pipelining, multiple execution units, speculative and out-of-order execution, multiple cores, and complex cache hierarchies. They are far more sophisticated than the elementary processor-memory-input/output diagram.

Yet the fundamental software-level idea remains: stored instructions direct a general-purpose machine that manipulates data.

A program can itself become data

Because a program is represented as information, one program can manipulate another program. A compiler can read source code and produce an executable. An operating system can load a program into memory. An editor can modify code, and software can generate new instructions.

This property became essential to operating systems, compilers, programming languages, and the software industry more broadly.

From specialized hardware to the universal machine

The stored-program concept helped make it practical to build a general-purpose machine whose behavior changes through software. This has a conceptual connection with the work of Alan Turing.

The Turing machine is a mathematical model, whereas von Neumann architecture concerns the practical organization of computers. They should not be confused, but both belong to the intellectual shift toward machines whose behavior can be determined by supplied information.

Why does von Neumann architecture still matter?

Modern computers include GPUs, many cores, specialized accelerators, sophisticated memory hierarchies, and mechanisms unknown in the 1940s. Calling them simply von Neumann machines would be reductive.

The model nevertheless remains extremely useful for explaining memory, processors, program execution, data movement, and the stored-program concept. Its lasting importance lies in the idea that the same machine can become something different simply because we give it new instructions.

Key takeaways

Von Neumann architecture is primarily a historical and conceptual model, not an exact blueprint for every modern computer. Its essential principles remain fundamental: computation and control units operate on information held in memory; program instructions can themselves be stored there; and a single machine can execute many different programs.

The stored-program concept helped turn the computer into a versatile machine defined as much by software as by hardware.

Frequently asked questions

Did John von Neumann invent this architecture by himself?

No. Von Neumann played a major role in formalizing and disseminating the concept, especially through the 1945 First Draft of a Report on the EDVAC, but the ideas associated with EDVAC emerged from collective work.

What is the main idea behind von Neumann architecture?

The essential principle is the stored program: instructions can be represented numerically and kept in memory, allowing the same machine to execute different programs.

What is the difference between von Neumann and Harvard architecture?

In the classic von Neumann model, instructions and data share memory. In a Harvard architecture, they use separate memories or paths. Many modern processors use a hybrid organization.

What is the von Neumann bottleneck?

It is the performance limitation caused by communication between the processor and memory. A very fast processor may still have to wait for instructions or data.

Do modern computers still use von Neumann architecture?

They retain several of its fundamental principles, especially the stored-program concept, while adding caches, pipelines, parallel execution, multiple cores, and many other optimizations.

Sources and references

  1. 1.First Draft of a Report on the EDVAC
  2. 2.Stanford Encyclopedia --- Modern History of Computing
  3. 3.IEEE Computer Society --- John von Neumann

Collection

Pioneers of computing

  1. 01Ada Lovelace: the visionary who imagined computer programming
  2. 02Charles Babbage: the inventor who imagined the mechanical computer
  3. 03The Difference Engine: automating calculation before the computer
  4. 04Punched cards: from the Jacquard loom to early computers
  5. 05The Analytical Engine: Babbage's imagined mechanical computer
  6. 06Alan Turing: the mathematician who gave computation a form
  7. 07Claude Shannon: the engineer who turned information into a science
  8. 08John von Neumann: the scholar who connected mathematics and computers
  9. 09The Turing machine: the abstract model that defines computation
  10. 10Von Neumann architecture: storing the program in memory
  11. 11Information theory: measuring, compressing and transmitting messages

Was this article useful?