Understanding I/O Buses: How Data Moves Inside and Between Devices
This article explains the purpose of I/O buses, describes common external interfaces like USB, outlines internal bus types such as chip, system, data, address, and control buses, and details various bus arbitration methods with their advantages and drawbacks.
What Is an I/O Bus?
An I/O bus provides a standardized interface for connecting external devices to a computer, allowing different peripherals to communicate through a common protocol. Common examples include USB, PCI, ISA, and Thunderbolt, which unify peripheral connections and simplify wiring.
Types of Buses
Chip Internal Bus
Inside a highly integrated chip, the internal bus connects registers, controllers, and arithmetic units, providing the pathways for data transfer within the silicon.
System Bus
The system bus links the CPU, main memory, and I/O devices, acting as the backbone for overall system communication.
Data Bus
The data bus carries bi‑directional data between components. Its width (e.g., 32‑bit or 64‑bit) usually matches the CPU’s word size.
Address Bus
The address bus specifies the memory location of source or destination data. Its bit width determines the addressable memory range.
地址总线位数 = n
寻址范围: 0~2^nControl Bus
The control bus transmits control signals that indicate the status of components (ready/not ready) and coordinate operations among the CPU, memory, and I/O devices.
Bus Arbitration
When multiple devices request control of the bus, an arbitration mechanism decides which device gains access, preventing conflicts. Arbitration can be centralized or distributed, and several strategies are commonly used.
Centralized arbitration
Distributed arbitration
Chain Query Arbitration
Devices are assigned numbers; a counter increments and broadcasts its value. When the counter matches a device’s number, that device gains control and the query stops.
Advantages: simple circuit, low complexity
Disadvantages: lower‑priority devices may starve, sensitive to faults
Timer‑Based Polling
A timer periodically checks each device’s request line. The controller issues a grant when the timer’s count matches the requesting device’s identifier, allowing programmable priority.
Advantages: flexible priority, programmable via software
Independent Request Arbitration
Each device has a dedicated request line and a separate grant line from the arbiter, enabling fast response and dynamic priority changes.
Advantages: quick response, dynamic priority
Disadvantages: increased wiring complexity, more intricate bus control
The choice of arbitration method depends on system size, performance requirements, and design constraints.
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
JavaEdge
First‑line development experience at multiple leading tech firms; now a software architect at a Shanghai state‑owned enterprise and founder of Programming Yanxuan. Nearly 300k followers online; expertise in distributed system design, AIGC application development, and quantitative finance investing.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
