Computer Architecture – Von Neumann Model (Cambridge IGCSE/AS‑Level)
Learning Objective
Explain the purpose of each component in the Von Neumann architecture, describe how the components interact during the fetch‑decode‑execute cycle, and relate the model to wider syllabus topics such as micro‑processors, performance factors, instruction sets, embedded systems, data representation, data transmission, I/O, software, the Internet and cyber‑security.
1. The Von Neumann Architecture
Single shared memory – programme instructions and data are stored together in the main store (RAM).
Sequential execution – the CPU normally processes instructions in order, unless a branch/jump changes the flow.
Common bus system – one set of address, data and control buses connects CPU, memory and I/O, producing the classic “Von Neumann bottleneck”.
2. Main Internal Components of the CPU
Component
Purpose (syllabus wording)
Typical examples / notes
Control Unit (CU)
Directs the operation of the CPU; generates control signals that move data between registers, the ALU and memory.
Hard‑wired control, micro‑programmed control.
Arithmetic Logic Unit (ALU)
Performs all arithmetic (addition, subtraction, multiplication, division) and logical (AND, OR, NOT, XOR) operations required by programme instructions.
Adders, shifters, comparators, barrel shifter.
Registers (fast internal storage)
Hold addresses, data and intermediate results during the instruction cycle.
Program Counter (PC) – address of the next instruction.
Memory Address Register (MAR) – address of the memory location being accessed.
Memory Data Register (MDR) – data read from or to be written to memory.
Current Instruction Register (CIR) – the instruction just fetched.
Accumulator (ACC) – primary operand/result register for the ALU.
General‑purpose registers (R0, R1 …) – temporary storage for data or addresses.
Bus System
Provides pathways for addresses, data and control signals between CPU, memory and I/O devices.
Address bus, data bus, control bus.
Memory (RAM)
Stores programme instructions and data in binary form.
Dynamic RAM (DRAM), Static RAM (SRAM).
3. The Fetch‑Decode‑Execute Cycle (syllabus terminology)
Fetch
CU places the address from the Program Counter (PC) on the address bus.
Address is loaded into the Memory Address Register (MAR).
Memory returns the instruction on the data bus → stored in Memory Data Register (MDR).
MDR → Current Instruction Register (CIR).
Decode
CU reads the opcode in the CIR, determines which part of the CPU (ALU, registers, etc.) is needed.
If an operand resides in memory, its address is placed in the MAR.
Execute
For data‑processing: ALU operates on the ACC (or other registers) and stores the result back in the ACC.
For memory‑access: data moves between MDR and the address held in MAR via the data bus.
Update PC
Sequential instruction – PC is incremented to the next address.
Branch/jump – PC is loaded with the new address supplied by the instruction.
4. CPU Performance Factors (syllabus point 3)
Clock speed – number of cycles per second (Hz). Faster clocks → more instructions per second.
Number of cores – each core can run its own instruction stream, enabling true parallelism.
Cache memory
Small, very fast memory on the CPU chip.
L1 cache is fastest, L2/L3 are larger but slower.
Stores frequently used instructions or data, reducing main‑memory accesses.
Pipeline & separate instruction/data caches – modern techniques that overlap fetch, decode and execute stages, mitigating the Von Neumann bottleneck.
5. Microprocessor (syllabus point 1b)
A microprocessor is a CPU fabricated on a single integrated circuit (IC). It contains the CU, ALU, registers and bus‑control logic in one chip, making computers smaller, cheaper and more reliable compared with earlier multi‑chip implementations.
6. Instruction Set (syllabus point 4)
Collection of machine‑code commands a CPU can recognise and execute.
Each instruction consists of an opcode and, where required, operand address(es) or immediate data.
Typical IGCSE‑level examples:
LOAD addr – copy data from memory address addr into the ACC.
STORE addr – copy the ACC contents to memory address addr.
ADD addr – add the value at addr to the ACC.
SUB addr – subtract the value at addr from the ACC.
JUMP addr – set the PC to addr (branch).
7. Embedded Systems (syllabus point 5)
A specialised computer built into a larger device to perform a limited set of tasks.
Word processor, web browser, games, embedded‑system firmware.
Programming tools
IDE, compiler, interpreter – translate high‑level code to machine code.
Interrupts – hardware or software signals that temporarily suspend the current instruction sequence, allowing the CPU to respond to urgent events (e.g., I/O completion, timer).
12. The Internet & Its Uses (syllabus cross‑reference)
URL, HTTP/HTTPS – request/response model for web pages.
DNS – translates domain names to IP addresses.
Client‑server architecture – browsers (clients) request services from web servers.
Basic concepts of cloud storage and online collaboration.
13. Cyber‑Security (syllabus cross‑reference)
Authentication – passwords, biometrics.
Encryption – symmetric (AES) vs. asymmetric (RSA) basics.
Malware – viruses, worms, ransomware.
Firewalls & anti‑virus software – protect against unauthorised access.
Algorithm design – clear, finite sequence of steps; use of flowcharts or pseudocode.
Boolean logic – AND, OR, NOT, XOR; truth tables; basis for decision making in programmes.
Control structures – sequential, selection (if‑else, switch), iteration (for, while).
Data structures – arrays, simple records; indexing and addressing.
SQL basics – SELECT, INSERT, UPDATE, DELETE for relational databases.
15. Sample Calculation – Using the FDE Registers
Instruction:ADD 1000 – add the value stored at memory address 1000 to the value already in the ACC and store the result back in the ACC.
Fetch
PC = 200 (address of ADD 1000).
PC → address bus → MAR.
Memory returns binary instruction → MDR → CIR.
Decode
CU reads opcode “ADD” and operand address “1000” from CIR.
Execute
Operand address 1000 placed on address bus → MAR.
Memory sends data at 1000 (e.g., 7) → MDR.
MDR (7) and ACC (5) fed to ALU → 5 + 7 = 12.
Result (12) stored back in ACC.
Update PC
PC incremented to 201 for the next instruction.
Result: ACC now holds the binary representation of 12.
16. Revision Questions
Why does the Von Neumann architecture use a single memory for both programme instructions and data? Discuss the advantage and the bottleneck it creates.
Describe the role of the Program Counter (PC) during each stage of the fetch‑decode‑execute cycle.
Identify the three registers directly involved in the fetch part of the cycle and state the function of each.
List three factors that affect CPU performance and give a brief example of how each improves speed.
Define a microprocessor and contrast it with a multi‑chip CPU implementation.
What is an instruction set? Provide two example instructions and explain what each does.
Give two examples of embedded systems and describe the specific task each performs.
Explain the “Von Neumann bottleneck” and name one modern technique used to reduce its impact.
Convert the binary number 11010110 to decimal and hexadecimal.
Briefly describe how a parity bit can detect a single‑bit error in data transmission.
What is the difference between system software and application software? Give one example of each.
Write a short pseudocode algorithm that reads ten numbers, stores them in an array, and outputs the largest value.
Your generous donation helps us continue providing free Cambridge IGCSE & A-Level resources,
past papers, syllabus notes, revision questions, and high-quality online tutoring to students across Kenya.