Von Neumann architecture and the CPU
How a processor is built
- Almost every computer follows the Von Neumann architecture.
- Its big idea — the stored program — is why one machine can do so many jobs.
- Inside the CPU sit the ALU, control unit, clock and registers, linked by buses.
Von Neumann architecture
- A single memory holds both program instructions and data (the stored-program idea).
- The processor fetches instructions from memory and runs them one at a time, in order, unless a branch changes the flow.
- Change the program and you change what the computer does — no rewiring needed.

The stored-program (Von Neumann) idea means that:
One memory holds instructions and data together; changing the stored program changes what the computer does, with no rewiring.
The CPU's main parts
- Arithmetic and Logic Unit (ALU) — does arithmetic (add, subtract) and logic (AND, OR, compare).
- Control Unit (CU) — decodes each instruction and sends the control signals to carry it out.
- System clock — steady pulses keep the CPU in step; clock speed (e.g. 3.8 GHz) is one factor in performance.
- Registers — tiny, very fast stores inside the CPU.
The ALU is responsible for:
The Arithmetic and Logic Unit performs calculations and logic/comparisons. Decoding is the control unit's job.
The special-purpose registers
| Register | Job |
|---|---|
| PC (program counter) | address of the next instruction |
| MAR (memory address register) | the address being read/written |
| MDR (memory data register) | the data going to/from memory |
| CIR (current instruction register) | the instruction being decoded |
| ACC (accumulator) | the value the ALU is working on |
| Status register | flags (carry, zero, negative, overflow) |
(General-purpose registers hold the programmer's temporary values.)
The Program Counter (PC) holds:
The PC holds the address of the next instruction. (The CIR holds the current instruction; the ACC holds the working value.)
The Memory Address Register (MAR) holds:
The MAR holds the address; the MDR holds the data moving to/from that address.
Buses
- Address bus — carries the memory address. One-way (CPU → memory).
- Data bus — carries the data. Two-way.
- Control bus — carries control signals (read, write, interrupt). Two-way.
- An $n$-bit address bus can reach $2^n$ memory locations.
How many memory locations can a 16-bit address bus reach?
$2^{16} = 65\,536$ locations.
Which bus is one-way (carries information in only one direction)?
The address bus is one-way (CPU → memory). The data and control buses are two-way.
You've got it
- stored program: one memory holds instructions and data; the CPU runs them one at a time
- ALU (maths/logic), CU (decode + control signals), clock, registers
- key registers: PC (next instruction), MAR/MDR (memory), CIR (current), ACC (working value)
- address bus (one-way, $2^n$ locations), data & control buses (two-way)