🚌 Buses, interfaces, and input-output protocols
We now know that there are several types of input and output devices. But how are they connected to the computer? How do they communicate with each other? This is what we will explore in this section.
First, a few definitions. These definitions will become more intuitive as we progress through the course.
Definitions
🧱 Bus
❓ Which lines physically connect the components to transmit data, addresses, and commands?
A bus is a set of physical lines (traces on the motherboard) that allow the internal components of a computer (CPU, RAM, peripherals) to transmit information. It can carry data, addresses, or control signals. PCI, PCIe, I2C, and SPI are examples of buses.
🔌 Connector
❓ How do I physically connect one device to another?
A connector is a hardware element (plug + port) that allows the physical connection between two devices or components. It supports an interface but does not define it alone. USB-C, HDMI, RJ45, M.2, SATA, PCIe x16 are examples of connectors.
📡 Interfaces and protocols
❓ How are the two devices interconnected, electrically and logically? What rules do the devices use to understand each other?
An interface is a specification (often standardized) that describes how two components exchange data. It often includes the physical specification (connectors, wiring) and the logical specification (communication protocols, signals).
A protocol is a set of logical rules that allow two components to exchange information in a structured manner.
Examples of interfaces and protocols are: USB (2.0, 3.2, 4), HDMI (1.4, 2.0, 2.1), SATA (I, II, III), Ethernet, DisplayPort, NVMe, etc.
For some, the terms interface and protocol are interchangeable. For others, the protocol focuses only on the logical part, not the physical part, of communication.
Bus topology: Shared vs Point-to-Point
Shared bus
A shared bus is a single communication line used by multiple components to transmit data, addresses, and control signals. Components must wait their turn to speak, like in a multi-person conversation on a single phone line.
Advantages:
- Less wiring (one bus to share).
- Simplicity of manufacturing.
Disadvantages:
- Risk of collisions (two components speak at the same time).
- Need for an arbitration system (priority, delays).
- Limited performance (bandwidth sharing).
- The more components, the slower it gets.
Examples
- PCI (shared expansion bus in the 1990s–2000s)
- IDE/PATA (two disks on a single ribbon cable)
- ISA (communication bus for expansion cards)
Point-to-point bus
Over time, architectures have evolved towards dedicated connections between each component and the CPU or chipset. This is called a point-to-point bus, as each device has its own communication channel.
Advantages
- No possible collisions
- Independent performance for each device
- Less latency, more reliability
- Easier to extend architecture
Disadvantages
- More wiring/traces on the motherboard
- Design complexity
Examples
- PCIe (each card has its own lines)
- SATA (one cable per disk)
- USB. USB allows connecting multiple devices on a single cable (hub), but each device has its own communication channel, as the CPU (chipset) queries each device individually. So even if physically multiple devices share the cable (via a hub), at any given time, only one dialogue is active.
The role of the motherboard
The motherboard is the main physical support that connects all the components of a computer: CPU, RAM, chipset, SSD, USB ports, etc. It contains conductive traces that form the physical communication buses.
It acts like a highway network:
- Fast lanes for RAM, GPUs (PCIe x16)
- Secondary lanes for USB, SATA, audio
- Communication bridges between components via the chipset
The motherboard also provides:
- Power supply to components
- Connectors (ports) to connect peripherals
- Control circuits to initialize and manage communications
In a very simplified way, you can see the motherboard as a large network of physical buses and connectors, allowing different components to communicate with each other.
CPU – Chipset – Peripherals communication
The CPU (processor)
CPUs are central processing units that execute instructions and manage calculations. Basically, it's the brain of the computer. In short, a processor:
- Manages calculations, instructions, memory access
- Can communicate directly with some (very fast) peripherals:
- RAM (via integrated memory controller)
- GPU (via PCIe x16)
- NVMe SSD (PCIe x4)
These connections are point-to-point and very fast
The Chipset (or PCH)
The chipset, also called Platform Controller Hub (PCH) in recent Intel architectures, is a component located on the motherboard that acts as a communication hub between the CPU and other slower peripherals. It notably allows:
-
Managing communications between:
-
USB ports
-
SATA storage (hard drives, 2.5" SSDs)
-
Integrated Ethernet or Wi-Fi network
-
BIOS / UEFI
-
Expansion ports (additional PCIe, audio, etc.)
-
-
Offering additional PCIe lanes for expansion cards (often slower than those directly connected to the CPU)
Even though the chipset is physically separate from the CPU, it is connected point-to-point to the CPU via a DMI (Direct Media Interface) bus, which is fast but shared among all peripherals that pass through the chipset.