System Buses
What Is a Bus?
A bus is a set of parallel electrical pathways that transfer data between the CPU and other components (RAM, I/O devices). There are three distinct buses, each with a different purpose.
The Three Buses
Address Bus
- Carries memory addresses from the CPU to RAM (or I/O)
- Unidirectional, addresses only travel from the CPU outward
- The CPU places an address on this bus (stored first in the MAR)
- Width determines addressable memory: a 32-bit address bus can address 2³² (~4 GB) of memory
Data Bus
- Carries actual data (instructions or data values) between the CPU and RAM
- Bidirectional, data flows both ways (CPU → RAM for writes; RAM → CPU for reads)
- Data arrives in the MDR
- Width determines how much data moves per cycle (e.g., 64-bit bus = 8 bytes at once)
Control Bus
- Carries control signals from the Control Unit to all components
- Bidirectional, signals travel both ways (e.g., interrupt requests come back to the CPU)
- Signals include: read/write, clock pulses, interrupt requests, bus request/grant
Comparison Table
| Bus | Carries | Direction | Width Effect |
|---|---|---|---|
| Address Bus | Memory addresses | Unidirectional (CPU → memory) | Wider = more addressable memory |
| Data Bus | Data / instructions | Bidirectional | Wider = more data per transfer |
| Control Bus | Control signals | Bidirectional | , |
How Buses Work in the FDE Cycle
- CPU places instruction address on the Address Bus (from MAR)
- Memory sends the instruction back on the Data Bus (to MDR)
- Control Bus signals coordinate whether it’s a read or write operation
See Fetch-Decode-Execute Cycle for the complete picture.
Exam Questions
Q: What is the key difference between the Address Bus and the Data Bus?
The Address Bus is unidirectional and carries memory addresses from the CPU, while the Data Bus is bidirectional and carries data between the CPU and memory.
Q: Why does the width of the address bus matter?
A wider address bus allows the CPU to reference more memory locations, increasing the maximum addressable RAM.
Exam Tip
Remember the direction difference: Address Bus = one-way (CPU sends addresses out). Data Bus = two-way (data travels both directions).