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

BusCarriesDirectionWidth Effect
Address BusMemory addressesUnidirectional (CPU → memory)Wider = more addressable memory
Data BusData / instructionsBidirectionalWider = more data per transfer
Control BusControl signalsBidirectional,

How Buses Work in the FDE Cycle

  1. CPU places instruction address on the Address Bus (from MAR)
  2. Memory sends the instruction back on the Data Bus (to MDR)
  3. 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).