• ↑↓ pour naviguer
  • pour ouvrir
  • pour sélectionner
  • ⌘ ⌥ ↵ pour ouvrir dans un panneau
  • ←→ pour naviguer
  • esc pour rejeter
⌘ '
raccourcis clavier

The Problem

CPU, memory, and I/O controllers need to communicate — transferring data, addresses, and control signals. Individual wires between every pair would be impossible. A shared communication pathway is needed.

Core Idea

The system bus is the shared communication pathway connecting CPU, memory, and I/O controllers, consisting of three parts: data bus, address bus, and control bus.

How It Works

The system bus has three components:

  1. Data Bus: Carries actual data between devices (bidirectional)
  2. Address Bus: Carries memory/device addresses (unidirectional from CPU)
  3. Control Bus: Carries control signals (read, write, interrupt, clock)
system_bus cluster_bus System Bus CPU CPU DataBus Data Bus (bidirectional) CPU->DataBus data AddrBus Address Bus (CPU →) CPU->AddrBus address CtrlBus Control Bus (read/write/int) CPU->CtrlBus control Mem Main Memory DataBus->Mem IO Device Controller DataBus->IO AddrBus->Mem AddrBus->IO

Key Properties

  • Shared by all components (requires bus arbitration)
  • Width (bits) determines performance (64-bit bus = 8 bytes/transfer)
  • Clock speed limits transfer rate
  • Modern systems may have multiple buses (PCIe, memory bus, etc.)

Connections

Edge Cases & Gotchas

  • Bus contention: multiple devices wanting the bus simultaneously
  • Bus mastering: devices (like DMA) can become bus masters
  • Modern systems have switched fabrics (PCIe) instead of shared buses