Expressvpn Glossary
Data bus
What is a data bus?
A data bus is a set of electrical connections used to transfer data between components in a computer system, such as the CPU, memory, and input/output (I/O) devices. It provides a shared communication pathway for moving binary data between hardware components.
The data bus is part of a larger bus system, working alongside other buses that manage data flow and transfer control.
How a data bus works
A data bus carries data signals between connected components using a defined protocol and timing. When one component sends data, another component receives it based on control signals that coordinate when the transfer happens and in which direction the data flows. Data buses can support one-way or two-way data transfer, depending on the system design.
Types of data buses
There are two types of data buses, depending on where they operate in the system:
- Internal data bus: Moves data within the CPU or between CPU units.
- External data bus: Moves data between the CPU and other components, such as main memory (RAM) or device controllers.
Data buses are also classified based on how they transmit data:
- Parallel data bus: Sends multiple bits at the same time across multiple signal lines.
- Serial data bus: Sends bits one after another over fewer signal lines, often at high speed.
Examples of data bus use in real systems
Some common examples of the data bus in action include:
- When the CPU reads data from memory or writes results back, the data is transferred over a data bus.
- Data read from or written to storage devices is transferred between storage controllers and the CPU via the data bus.
- Input from devices like keyboards or network interfaces and output to devices like displays or printers is transferred over the data bus through I/O controllers.
Why the data bus matters in computer architecture
The data bus influences how the CPU, memory, and I/O devices can exchange data. Key factors include:
- Bandwidth: The bus width (number of bits transferred per cycle) and clock speed affect how much data the system can move at once.
- CPU and memory performance: The processor depends on frequent data transfers for instructions and intermediate results, making it an important component of system performance.
- I/O throughput: Devices such as storage drives, network adapters, and graphics hardware rely on the data bus to move large amounts of data.
- System design trade-offs: Bus design influences cost, complexity, power use, and compatibility between components.
Data bus vs. address bus vs. control bus
The data bus is part of a larger bus system and works with the address bus and control bus to coordinate data transfers between components.
| Bus | Primary role | What it carries | Direction of flow | Used by |
| Data bus | Moves data between system components | The data being transferred | Typically bidirectional | CPU, memory, and I/O devices |
| Address bus | Identifies the source or destination of a transfer | A memory address or I/O address | Typically unidirectional | CPU to select memory locations or devices |
| Control bus | Manages when devices place data on the bus and when they read it | Control signals (examples: read or write, timing, interrupts) | Varies by signal | CPU, system controllers, and peripheral devices |
Further reading
- Network connections: Everything you need to know
- Fix "kernel security check failure": Step-by-step guide