Track progress, take quizzes and save notes on this lesson.

Free forever · no card needed

Start free
Intermediate

CPU Architecture and the Stored Program Concept

4.7.1 Internal hardware components·4.7.2 Stored program concept

Aligned to the AQA 7517 specification

Level
Intermediate
Reading time
5 min
Published
13 June 2026
Updated
1 July 2026
On this page
  1. 1.Internal Hardware Components
  2. 2.The System Buses
  3. 3.Von Neumann Architecture
  4. 4.Harvard Architecture
  5. 5.Addressable Memory
  6. 6.The Stored Program Concept
  7. 7.Common Exam Mistakes

Key takeaways

  • The address bus is unidirectional and carries memory addresses from the CPU; an n-bit address bus can address 2ⁿ locations.
  • The data bus is bidirectional and carries the data being read or written; its width sets how much data moves per cycle, so a 64-bit bus transfers 8 bytes per cycle.
  • Von Neumann architecture stores instructions and data in the same memory over the same buses, causing the bottleneck where the CPU cannot fetch an instruction and access data in one cycle; Harvard uses separate memories and buses so both can be fetched simultaneously.
  • The stored program concept states that machine code instructions are stored in main memory and the processor fetches and executes them serially unless a branch redirects execution.
  • The key insight of the stored program concept is that instructions are data and can be treated as such, making reprogramming possible without rewiring or replacing hardware.

Internal Hardware Components

A computer system's core hardware consists of interconnected components that together execute programs.

Main components:

ComponentRole
Processor (CPU)Fetches, decodes, and executes instructions
Main memory (RAM)Stores instructions and data currently in use
Address busCarries memory addresses from CPU to memory/devices
Data busCarries data between CPU, memory, and I/O controllers
Control busCarries control signals (read, write, clock, interrupt)
I/O controllersInterface between the CPU/buses and external devices

The processor communicates with memory and I/O controllers through the system buses. Every read/write operation goes through this pathway.

The System Buses

A bus is a shared communication pathway — multiple components connected to the same set of wires.

Address bus

  • Unidirectional — carries addresses from the CPU outward (to memory or I/O)
  • Width determines how many distinct memory locations can be addressed: an -bit address bus can address locations
  • A 32-bit address bus addresses GiB; a 64-bit bus addresses locations

Data bus

  • Bidirectional — data flows both from memory to CPU (reads) and from CPU to memory (writes)
  • Width determines how much data is transferred per cycle: an 8-bit data bus transfers 1 byte per cycle; a 64-bit bus transfers 8 bytes per cycle

Control bus

  • Bidirectional — carries signals that coordinate operations
  • Signal lines include: read/write, memory request, interrupt request, bus grant, clock signal, reset

Von Neumann Architecture

Von Neumann architecture stores both program instructions and data in the same main memory, accessed over the same buses.

Von Neumann bottleneck: instructions and data share the same bus to the same memory. The processor can either fetch an instruction or fetch/store data in one cycle — not both. This limits performance. Modern CPUs use caching to mitigate it.

Advantages:

  • Single unified memory is simpler to design and program
  • Memory can be dynamically allocated between code and data

Harvard Architecture

Harvard architecture uses separate memory stores and buses for instructions and data.

Advantages:

  • Instructions and data can be fetched simultaneously (no bottleneck)
  • Higher throughput for predictable workloads

Used in: digital signal processors (DSPs), microcontrollers, and embedded systems where deterministic performance matters.

Disadvantage: separate memories are less flexible — code space and data space are fixed; you cannot dynamically reallocate between them.

Studying this for an exam?

Generate a personalised learning path for this subject. Free to get started.

Create a learning path

Addressable Memory

Each location in main memory has a unique address — an integer that the processor uses to identify exactly which byte (or word) to read or write.

  • With an -bit address bus: distinct memory locations are addressable
  • Word length determines how much data is read/written per access

Worked example: a system with a 16-bit address bus and byte-addressable memory can address different bytes (64 KiB).

Memory is organised as a flat array of addressable cells. The OS maps this into segments (code, stack, heap, data) for each running process.

The Stored Program Concept

The stored program concept (credited to von Neumann's work) states that:

Machine code instructions are stored in main memory. The processor fetches and executes them serially — one at a time, in sequence — unless a branch instruction redirects execution.

What this means in practice:

  • A program is simply data in memory — it can be loaded, moved, and modified like any other data
  • The same hardware executes any program by fetching different instructions from memory
  • This is why general-purpose computers can run word processors, games, and databases on the same hardware

Before the stored program concept, computers were reprogrammed by physically rewiring circuits or replacing hardware components.

Common Exam Mistakes

1. Confusing address bus and data bus

The address bus carries where to read/write (the memory address). The data bus carries what is being read/written (the actual value). Bus width has different implications: address bus width → addressable memory range; data bus width → amount of data per transfer.

2. Stating Harvard architecture is "better"

Harvard architecture has higher throughput for separate instruction/data access but is less flexible. Von Neumann's unified memory allows dynamic allocation and is simpler to implement. Neither is universally superior — the right choice depends on the application.

3. Confusing word length and address bus width

Word length (data bus width) controls how much data moves per cycle. Address bus width controls how many memory locations can be addressed. They are independent and often different values.

4. Misrepresenting the stored program concept

The stored program concept is not just "programs stored in memory" — the key insight is that instructions are data and can be treated as such. This makes reprogramming possible without hardware changes.

Key terms

Bus
A shared communication pathway: multiple components connected to the same set of wires.
Address bus
A unidirectional bus that carries memory addresses from the CPU; an n-bit address bus can address 2ⁿ locations.
Data bus
A bidirectional bus that carries data between CPU, memory, and I/O; its width sets how much data transfers per cycle.
Control bus
A bidirectional bus carrying control signals such as read/write, memory request, interrupt request, bus grant, clock, and reset.
Von Neumann architecture
An architecture that stores both program instructions and data in the same main memory, accessed over the same buses.
Von Neumann bottleneck
The performance limit caused by instructions and data sharing one bus to one memory, so the CPU cannot fetch an instruction and access data in the same cycle.
Harvard architecture
An architecture using separate memory stores and buses for instructions and data, allowing both to be fetched simultaneously.
Word length
How much data is read or written per memory access; equivalent to the data bus width and independent of address bus width.
Addressable memory
Memory where each location has a unique integer address the processor uses to identify which byte or word to read or write.
Stored program concept
The principle, credited to von Neumann, that machine code instructions are stored in main memory and executed serially, with instructions treated as data.

Frequently asked questions

The address bus carries where to read or write (the memory address) and is unidirectional; the data bus carries what is being read or written (the actual value) and is bidirectional. Address bus width determines the addressable memory range, while data bus width determines how much data is transferred per cycle.

In von Neumann architecture, instructions and data share the same bus to the same memory, so the processor can either fetch an instruction or fetch/store data in one cycle, but not both. This limits performance, and modern CPUs use caching to mitigate it.

It means machine code instructions are stored in main memory and the processor fetches and executes them serially, one at a time, unless a branch instruction redirects execution. The key insight is that instructions are data and can be loaded, moved, and modified like any other data, allowing reprogramming without hardware changes.

Generate revision on any topic you study

Type any topic you're studying and Aicademy generates a complete lesson, quiz, and flashcard set, personalised to your level.

Lessons on anything

Structured, level-matched lessons on any topic you study

Practice quizzes

Find out what you actually know before the exam does

Flashcard sets

Lock in key concepts with instant revision cards

Ask Aica

Stuck on something? Get a clear explanation, any time

Prev

Boolean Algebra

Next

Processor Components and the Fetch-Execute Cycle

Related lessons

Top students don’t revise more. They revise what counts.

Start revising free

Free to start. No card needed.