1. Computer Architecture
IGCSE Computer Science (0478)
  • Chapter 6: Automated & Emerging Technologies
  • Data Representation
    • Introduction
    • Why computers use binary (how binary represents data)
    • Number system
      • Introduction
      • Number Conversions
      • Addition of Binary Numbers
      • Logical binary shifts (positive 8-bit integers)
      • Two’s Complement (Signed: Positive and Negative Numbers)
      • Use of the Hexadecimal System
    • Text, Sound and Image
      • Text, Sound and Images
      • File Types
    • Data storage and File compression
      • Measurement of the Size of Computer Memories
      • Lossless and Lossy File Compression
  • Hardware
    • Computer Architecture
      • The CPU & Microprocessors
      • Von Neumann Architecture
      • Fetch-Decode-Execute Cycle (FDE)
      • Characteristics of the CPU
      • CPU Instruction Sets
      • Embedded Systems
    • Input/output devices
      • Input devices
      • Output devices
      • Sensors
    • Data Storage
      • What is Primary Storage?
      • What is Secondary Storage?
      • What is Virtual Memory?
      • What is cloud storage?
    • Network hardware
      • What is a Network Interface Card(NIC)?
      • MAC Addresses & IP Addresses
      • What is a Router?
  1. Computer Architecture

Von Neumann Architecture

What is Von Neumann Architecture?#

Von Neumann Architecture is a design for how computers should be built and how they should work.

Who Created It?#

John Von Neumann - A famous mathematician who designed this in the 1940s.

Why Is It Important?#

Almost every computer in the world (laptops, desktops, phones) is built using this design. Understanding it means understanding how ALL computers work!

What Does Von Neumann Architecture Show?#

It shows how 4 main parts work together:
1.
CPU (Control Unit, ALU, Registers)
2.
Memory (stores programs and data)
3.
Input Devices (keyboard, mouse)
4.
Output Devices (screen, printer)
And how they are connected by buses (roads for data).

The 4 Parts of Von Neumann Architecture#

1. Control Unit (CU)#

What it does: Manages and controls everything
Its jobs:
Gets instructions from memory (FETCH)
Understands what each instruction means (DECODE)
Tells other parts what to do
Controls the timing of everything
Sends control signals
Like: A traffic police directing everyone what to do

2. Arithmetic Logic Unit (ALU)#

What it does: Performs calculations and makes decisions
Math Operations:
Addition (+)
Subtraction (−)
Multiplication (×)
Division (÷)
Logic Operations (True/False decisions):
AND (all conditions must be true)
OR (at least one condition is true)
NOT (reverse the answer)
Example Logic Decision:
IF age > 18 THEN
    ALLOW_ACCESS = True
ELSE
    ALLOW_ACCESS = False
Like: A calculator that also makes decisions

3. Registers#

What they are: Super-fast temporary memory locations
Key Facts:
Located INSIDE the CPU
Extremely fast (faster than RAM)
Extremely small (only few KB)
Hold data needed RIGHT NOW
Each register has a specific job

The 5 Important Registers (You MUST Know These)#

1. Program Counter (PC)#

DetailInformation
NameProgram Counter
AcronymPC
What it holdsMemory address of the NEXT instruction to execute
How it worksIncrements (adds 1) after each instruction
ExamplePC=100 means "next instruction is at address 100"
After fetchPC becomes 101, then 102, then 103...
In Simple Terms:
PC is like a bookmark that keeps track of where you are in a book
After reading one page, the bookmark moves to the next page
CPU uses PC to know which instruction to get next

2. Memory Address Register (MAR)#

DetailInformation
NameMemory Address Register
AcronymMAR
What it holdsAddress of where to fetch data FROM memory
How it worksSends address to Address Bus
ExampleMAR=250 means "get data from memory location 250"
Used forTelling memory which data to send
In Simple Terms:
MAR is like a postal code
It tells memory "I want data from address 250"
Memory receives this and sends data back

3. Memory Data Register (MDR)#

DetailInformation
NameMemory Data Register
AcronymMDR
What it holdsThe actual data/instruction fetched from memory
How it worksReceives data via Data Bus from memory
ExampleMDR receives "ADD 5, 3" from memory location 100
Used forTemporarily holding data from memory
In Simple Terms:
MDR is like your hand receiving a letter from mailbox
It holds the letter temporarily
Then you read it (CPU decodes it)

4. Current Instruction Register (CIR)#

DetailInformation
NameCurrent Instruction Register
AcronymCIR
What it holdsThe instruction CPU is currently decoding/executing
How it worksReceives instruction from MDR
ExampleCIR holds "ADD 5, 3" while CPU is working on it
Used forStoring instruction during decode and execute
In Simple Terms:
CIR is like a notepad on your desk
You write down the instruction you're working on
So you don't forget what you need to do

5. Accumulator (ACC)#

DetailInformation
NameAccumulator
AcronymACC
What it holdsResults of calculations from ALU
How it worksALU puts results here after math
ExampleAfter 5 + 3 = 8, ACC stores "8"
Used forTemporarily storing calculation results
In Simple Terms:
ACC is like a results box
When ALU finishes calculation, answer goes here
This result can be used in next operation

How 5 Registers Work Together - Complete Picture#


Exam Tip: How to Answer Register Questions#

When answering about a register, use this structure:
"[Register name] holds [what it stores], 
which is used to [why/how it's used]."

Example Answers#

Question: Describe the purpose of the MAR. [2 marks]
❌ Wrong:
"The MAR holds the memory address"
(Too simple, doesn't explain WHY)
✅ Correct:
"The MAR holds the memory address of where data or instructions 
are to be fetched from. This address is sent via the address bus 
to memory so that the correct data can be retrieved."
(Explains WHAT it holds AND WHY it's used)

Buses - The Roads for Data#

What is a Bus?#

A bus is a group of parallel wires that carry signals between components.
Think of it like: Highways connecting cities. Data travels on these highways to reach different parts.

The 3 Types of Buses#

1. Address Bus#

FeatureDetail
DirectionUNIDIRECTIONAL (one way only)
Travels fromCPU to Memory
CarriesMemory addresses (locations)
Example"Get data from location 200"
Width32-bit or 64-bit (determines how many addresses)
AnalogyPostal code - tells where to go
In Simple Terms:
Address Bus is like giving memory a house address
Memory looks at that address and finds the data there
Data comes back via Data Bus

2. Data Bus#

FeatureDetail
DirectionBIDIRECTIONAL (both ways)
Travels betweenCPU ↔ Memory
CarriesActual data AND instructions
Example"Here is the instruction ADD 5, 3"
Width32-bit or 64-bit (determines how much data at once)
AnalogyCourier service - carries the actual package
In Simple Terms:
Data Bus carries the REAL DATA
Data can go CPU→Memory (writing) or Memory→CPU (reading)
Like a two-way street for packages

3. Control Bus#

FeatureDetail
DirectionBIDIRECTIONAL (both ways)
Travels betweenCPU ↔ Components
CarriesControl signals and commands
Example"Read from memory" or "Write to memory"
Types of signalsRead, Write, Interrupt, Clock signals
AnalogyTraffic lights - tells when to start/stop
In Simple Terms:
Control Bus carries INSTRUCTIONS about what to do
"Should we READ or WRITE?"
"When should you do it?"
Like a traffic light controlling when things happen

Von Neumann Architecture - Complete System Diagram#


How Buses Work - Simple Example#

Scenario: CPU wants to fetch an instruction from memory location 100#

Step 1: Address Bus
PC = 100 (says "I want instruction from location 100")
       ↓
MAR = 100 (copies the address)
       ↓
Address Bus sends: 100 to Memory
       ↓
Memory receives: "Find data at location 100"
Step 2: Control Bus
Control Unit sends signal: "READ from memory"
       ↓
Control Bus sends: READ command to Memory
       ↓
Memory receives: "Please send me the data"
Step 3: Data Bus
Memory finds instruction at location 100: "ADD 5, 3"
       ↓
Data Bus receives: "ADD 5, 3"
       ↓
MDR stores: "ADD 5, 3"
       ↓
CIR receives: "ADD 5, 3" (ready to decode)

Common Bus Confusion - Don't Get Confused!#

Students often mix up Address Bus and Data Bus#

Remember This:
BusCarriesDirectionAnalogy
Address BusWHERE (location)One-wayHouse address
Data BusWHAT (actual data)Both waysThe actual letter

Easy Way to Remember#

Think of receiving a letter:
Address Bus = The postal code on the envelope
Data Bus = The actual letter inside
Control Bus = Instructions "DELIVER" or "RETURN TO SENDER"

Exam Question: Role of Each Bus#

Question: Describe the role of the control unit, the control bus, the data bus and the address bus when fetching an instruction from memory. [4 marks]

Sample Answer#

FETCH Stage - Fetching instruction from memory location 100:
1.
(1 mark) The Program Counter holds the address of the next instruction (100). This address is sent to the Memory Address Register via the Address Bus.
2.
(1 mark) The Control Unit sends a READ signal via the Control Bus to memory, indicating that data should be retrieved.
3.
(1 mark) Memory retrieves the instruction at address 100 and sends it back via the Data Bus.
4.
(1 mark) The instruction arrives at the Memory Data Register, and then is transferred to the Current Instruction Register where the Control Unit can decode it.

Practice Questions#

Question 1: Describe Registers#

Describe the purpose of the Program Counter (PC) in the fetch-decode-execute cycle. [2 marks]
Click to see answer
Sample Answer:
"The Program Counter holds the memory address of the next instruction to be executed. After each instruction is fetched, the PC increments (adds 1) to point to the next instruction in memory. This ensures the CPU fetches instructions in the correct sequence."
Why this is correct:
✅ Explains WHAT it holds (memory address)
✅ Explains HOW it works (increments)
✅ Explains WHY it's important (ensures correct sequence)

Question 2: Describe Accumulator#

Explain the purpose of the Accumulator (ACC) in the Von Neumann architecture. [2 marks]
Click to see answer
Sample Answer:
"The Accumulator stores the results of calculations performed by the Arithmetic Logic Unit. After the ALU completes an arithmetic or logical operation, the result is stored in the Accumulator, from where it can be used in subsequent operations or transferred to memory."
Why this is correct:
✅ States what it holds (calculation results)
✅ Explains where results come from (ALU)
✅ Explains what happens next (used for more operations)

Question 3: Compare Buses#

Why is the address bus unidirectional while the data bus is bidirectional? [2 marks]
Click to see answer
Sample Answer:
"The address bus is unidirectional because it only needs to send addresses FROM the CPU TO memory. The data bus is bidirectional because data needs to flow BOTH ways: from memory to CPU when fetching, and from CPU to memory when storing/writing data."
Why this is correct:
✅ Explains the purpose of each bus
✅ Gives examples of direction
✅ Explains WHY they work differently

Question 4: Full System Explanation#

Explain how the Control Unit, Address Bus, Data Bus, and Memory work together to fetch an instruction. [4 marks]
Click to see answer
Sample Answer:
"1. The Control Unit takes the address from the Program Counter and places it on the Address Bus.
2. The Address Bus carries this address to Memory to specify which instruction location to access.
3. The Control Unit sends a READ signal on the Control Bus to instruct memory to retrieve the data.
4. Memory retrieves the instruction and places it on the Data Bus.
5. The instruction travels via the Data Bus to the CPU and is stored in the Memory Data Register."
Why this is correct:
✅ Explains all 4 components
✅ Shows the sequence clearly
✅ Explains what each part does

Key Definitions - Essential Terms#

TermSimple MeaningExample
Von Neumann ArchitectureDesign showing how computer parts work togetherAll modern computers follow this
CPUThe processor that executes instructionsIntel Core i5, AMD Ryzen
MemoryStorage for programs and dataRAM (8GB, 16GB)
RegisterSuper-fast tiny storage inside CPUHolds one instruction or number
BusWires that carry data between componentsCarries address, data, or control signals
UnidirectionalCan only go one wayAddress Bus
BidirectionalCan go both waysData Bus and Control Bus
FetchGet instruction from memoryFirst step of CPU cycle
DecodeUnderstand the instructionSecond step of CPU cycle
ExecutePerform the instructionThird step of CPU cycle
IncrementAdd 1 to a numberPC increments after each instruction

What You MUST Remember#

✅ The 5 Registers (Name, Acronym, Purpose)#

1.
PC - Holds address of NEXT instruction
2.
MAR - Holds address of data to FETCH FROM
3.
MDR - Holds ACTUAL DATA/INSTRUCTION fetched
4.
CIR - Holds instruction CPU is CURRENTLY working on
5.
ACC - Holds RESULTS of calculations

✅ The 3 Buses (Type, Direction, What it carries)#

1.
Address Bus - Unidirectional, carries ADDRESSES
2.
Data Bus - Bidirectional, carries DATA/INSTRUCTIONS
3.
Control Bus - Bidirectional, carries CONTROL SIGNALS

✅ CPU Components (Function)#

1.
Control Unit - Manages everything, controls timing
2.
ALU - Does math and logic operations
3.
Registers - Fast temporary storage

Common Mistakes to Avoid#

❌ Mistake 1#

"The Address Bus carries data from memory"
✅ Correct: The Address Bus carries memory ADDRESSES (locations), not the actual data

❌ Mistake 2#

"All buses are bidirectional"
✅ Correct: Only Data Bus and Control Bus are bidirectional. Address Bus is unidirectional.

❌ Mistake 3#

"The ALU stores results in the MAR"
✅ Correct: The ALU stores results in the ACCUMULATOR (ACC)

❌ Mistake 4#

"The Program Counter holds the address of the current instruction"
✅ Correct: The Program Counter holds the address of the NEXT instruction (not current)

❌ Mistake 5#

"Memory Data Register stores the address"
✅ Correct: MAR stores the address. MDR stores the actual data/instruction.

Summary Table - Quick Reference#

ComponentFull NameHolds WhatDirection
PCProgram CounterNext instruction address-
MARMemory Address RegisterAddress to fetch fromSends to bus
MDRMemory Data RegisterInstruction/Data from memoryReceives from bus
CIRCurrent Instruction RegisterCurrent instruction being decoded-
ACCAccumulatorResults from ALU-
Address Bus-Memory locationsOne-way (CPU→Memory)
Data Bus-Instructions and dataBoth ways
Control Bus-Control signalsBoth ways

Final Exam Tips#

DO THIS ✅#

1.
Use correct register names - Say "Program Counter" or "PC" correctly
2.
Explain the flow - Show how data moves through buses
3.
Be specific - "The ACC stores results from the ALU" is better than "it stores things"
4.
Give examples - "The PC holds 100, meaning fetch instruction from location 100"
5.
Draw diagrams - If confused, draw the system to understand it better

DON'T DO THIS ❌#

1.
Don't confuse registers - PC is NOT the same as MAR
2.
Don't mix up buses - Address Bus carries addresses, not data
3.
Don't be vague - "It moves data" is not good enough
4.
Don't skip explanation - Why is it important? How is it used?
5.
Don't forget the cycle - How does it fit into Fetch-Decode-Execute?

Practice More#

At Home:#

1.
Draw the Von Neumann Architecture from memory
2.
Label all buses and components
3.
Trace the journey of one instruction through the system
4.
Write out what each register does
5.
Teach someone else what you learned

In Class:#

1.
Ask questions if confused
2.
Practice answering exam questions
3.
Compare your answers with classmates
4.
Create your own examples
5.
Make flashcards of registers

Next Topic#

After Von Neumann Architecture, you should understand:
Fetch-Decode-Execute Cycle - How the three stages work in detail
Instruction Sets - What types of instructions CPU can execute
CPU Performance - What makes CPU faster or slower
Embedded Systems - CPUs in everyday devices
Modified at 2026-04-03 09:43:25
Previous
The CPU & Microprocessors
Next
Fetch-Decode-Execute Cycle (FDE)
Built with