Bus System
Parts of a computer have to exchange data, and there are only two ways to arrange it: wire every pair of components directly, or route everything through a shared set of lines. The first option produces a rat’s nest of cabling that is almost impossible to extend. The second buys a tidy architecture and plug-and-play expansion at the price of one restriction — only one device may use the bus at a time — and that single restriction is what makes bandwidth, arbitration and timing the central questions of this chapter.
The chapter opens with what a bus actually is and how buses are classified, by the width of the data they carry, by where they sit relative to the CPU, and by whether transfers are synchronous or asynchronous. From there it assembles the physical and functional structure of a bus and attaches the numbers that describe its performance: bandwidth, transfer rate, and the bus clock that sets the pace. Timing then gets its own treatment, because the sequence in which address, data and control lines are asserted and released is where two buses of identical bandwidth can behave completely differently in practice.
The later sections ground the abstraction in reality. Common standards are surveyed so that ISA, PCI and PCIe stop being a list of names, and arbitration is treated as the problem it is: several devices may request the bus at once, so some rule has to decide who goes first and whether the winner is always the same device or whichever one has waited longest. What emerges is that a bus is never just a set of wires — it is a set of rules about who may talk, when, and how much they may say. Once that framing is in place, the reason PCIe and the processor’s internal memory bus behave so differently, despite both being called buses, stops being surprising.
