The stored program concept, proposed by John von Neumann in 1945, states that both program instructions and data are stored together in the same memory (RAM) in binary form. The CPU fetches and executes instructions sequentially from this single memory. Before this, programs were "wired in" — changing a program meant rewiring hardware.
Key implications:
The Von Neumann model consists of:
All components communicate through the single shared system bus.
Because the CPU and memory share a single bus, data and instructions cannot be fetched simultaneously. The CPU must wait for memory — this creates the Von Neumann bottleneck: the bus limits how fast data can flow to the CPU, even if the CPU could run faster. Solutions include: cache memory, wider buses, pipelining.
An alternative to Von Neumann. Harvard architecture has separate memory and buses for instructions and data:
| Feature | Von Neumann | Harvard |
|---|---|---|
| Memory | Single memory for data + instructions | Separate instruction and data memory |
| Bus | Single shared bus | Separate buses for instruction and data |
| Fetch instruction + data simultaneously? | No — bottleneck | Yes — simultaneous access |
| Complexity | Simpler | More complex hardware |
| Typical use | General-purpose PCs | Embedded systems, DSPs, microcontrollers |
Modern CPUs use a Modified Harvard Architecture — separate cache for instructions (instruction cache) and data (data cache), but a single unified main RAM. This gives the speed benefits of Harvard while keeping Von Neumann's flexibility and simplicity.
Memory in a computer is organised in a hierarchy: faster but smaller and more expensive at the top, larger and cheaper but slower at the bottom:
8 questions · instantly marked · AQA 7517 standard
| Term | Definition |
|---|
10 questions · 10 minutes