1.4 Interconnection & Bus Structures
A computer system consists of three main modulesβthe CPU, main memory, and Input/Output modules. To form a working system, these components must communicate. This chapter details the shared communication pathways known as buses, compares synchronous and asynchronous timing protocols, traces asynchronous handshake sequences, and analyzes hardware-level bus arbitration schemes.
Learning Objectives
- Identify the three categories of lines inside a system bus and state their functional purposes.
- Explain the physical and operational differences between synchronous and asynchronous bus timing models.
- Trace the handshake signal transitions (strobe vs. full handshake) during an asynchronous read and write cycle.
- Compare the performance, clock skew issues, and design complexity of synchronous vs. asynchronous system buses.
- Evaluate the scalability, priority resolution, and hardware lines required for Daisy Chain, Polling, and Independent Request arbitration.
Before studying this chapter, you should review Chapter 1.2: Multilevel Hierarchical Framework to understand the system interconnection structures of a computer system.
1. Introduction to Interconnection Structures
A computer system's performance is not only determined by the speed of its CPU or the size of its memory, but also by the capacity of its interconnection pathways. The CPU must constantly fetch instructions and data operands from memory, and write results back. The I/O modules must transfer data to and from memory and issue interrupt requests to the CPU. The collection of paths connecting these modules is called the interconnection structure.
2. Why Buses Became Necessary
The evolution of computer interconnection architectures traces a path from simple, rigid connections to modern, high-speed packet-switched interfaces:
- Point-to-Point Wiring: Early computers utilized dedicated, direct wiring paths between every pair of modules that needed to communicate. While point-to-point links offer maximum throughput, their physical wiring complexity scales quadratically ($O(N^2)$). For $N$ modules, connecting every module requires $N(N-1)/2$ separate physical links, creating an unmanageable mesh of wires as systems grow.
- Bus-Based Architecture: To solve the point-to-point wiring crisis, designers introduced the shared system bus. A system bus is a shared communication pathway consisting of multiple physical wires. Only one pair of devices can communicate over the bus at any given moment. This shared topology reduces wiring complexity to $O(N)$ and allows easy expansion by plugging new modules into physical bus slots. However, the shared bus becomes a throughput bottleneck as multiple masters compete for access.
- Modern Switched Interconnects: In modern high-performance systems, shared buses have been replaced by point-to-point switched interconnects (such as PCI Express, QPI/UPI, or HyperTransport). These networks use packet-switched routing and dedicated links to allow multiple parallel transfers, bypassing the shared bus bottleneck.
3. System Bus Partitions
A typical system bus consists of 50 to hundreds of separate physical lines. These lines are grouped into three functional partitions:
- Data Bus: Transmits data bytes between modules. The number of physical lines determines the data bus width (e.g., 32 or 64 lines), which dictates how many bits the CPU can transfer in a single cycle.
- Address Bus: Transmits the source or destination address of the data on the data bus. The address bus width determines the maximum addressable memory capacity of the processor. For example, a processor with a 32-bit address bus can access $2^{32}$ bytes ($4\text{ GB}$) of physical memory space.
- Control Bus: Transmits command, timing, and status signals to coordinate bus access and operations. Key control lines include Memory Read/Write, I/O Read/Write, Transfer Acknowledge, Bus Request, Bus Grant, Clock, and Interrupt lines.
βββββββββββββ ββββββββββββββββ βββββββββββββββ
β CPU β β Main Memory β β I/O Module β
βββββββ¬ββββββ ββββββββ¬ββββββββ ββββββββ¬βββββββ
β β β
======βͺ======================βͺ========================βͺ====== Data Bus
β β β
======βͺ======================βͺ========================βͺ====== Address Bus
β β β
======βͺ======================βͺ========================βͺ====== Control Bus
4. Bus Arbitration
Because the system bus is shared, a conflict arises if multiple master devices (e.g., CPU, DMA controller) attempt to control the bus simultaneously. Bus arbitration is the process of selecting a single master to control the bus for the next cycle. Arbitration schemes are classified as:
4.1 Daisy Chain Arbitration (Serial Priority)
In a Daisy Chain scheme, all masters are connected in a serial link. When a bus request occurs:
- A master asserts the shared Bus Request (
BR) line. - The Arbiter responds by asserting the Bus Grant (
BG) signal, which is wired to the physically closest master (Master 1). - If Master 1 does not need the bus, it passes the
BGsignal to Master 2. If a master needs the bus, it intercepts theBGsignal and asserts Bus Busy (BB).
Trade-offs: Very simple and requires few control lines. However, priority is fixed by physical placement (causing starvation of distant masters), and a failure in any device's pass-through logic breaks the chain.
4.2 Polling and Independent Request Arbitration
- Polling: The arbiter contains a counter. On a request, it cycles through device addresses on a set of polling lines. The first requesting device that matches the polled address takes control. Priority can be dynamically changed by altering the starting address of the poll.
- Independent Request: Every master has its own dedicated Bus Request (
BR_i) and Bus Grant (BG_i) lines to the arbiter. The arbiter resolves conflicts instantly using priority encoders. This scheme offers the fastest response time and dynamic priority masking but requires a large number of physical pins.
5. Bus Timing Models
Bus timing dictates how data transfers are coordinated over time. The two fundamental timing models are:
- Synchronous Timing: All bus events are referenced to a global, square-wave clock signal. A transfer cycle occurs within a fixed number of clock periods.
- Pros: Simple control logic, very high speeds over short physical distances.
- Cons: All devices must operate at the speed of the slowest device. Subject to **clock skew** (propagation delays mismatching the clock edges at distant parts of the bus).
- Asynchronous Timing: Bus events are coordinated using handshake signals. One event triggers the next, allowing devices of widely varying speeds to communicate.
- Pros: Flexible, no clock distribution issues, no clock skew, easily interfaces slow peripherals.
- Cons: More complex interface logic, susceptible to noise on handshaking lines.
6. Asynchronous Handshake Protocols
Asynchronous buses use handshake lines (typically Master Sync [MSYN] and Slave Sync [SSYN], or Request and Acknowledge) to coordinate transfers. Let's trace a **4-Phase Full Handshake Read Cycle**:
Address: === VALID =========================
ββββββββββββββββββ
Request: ββββ βββββββββββββββ
ββββββββββββββββββ
Acknowledge: βββββββ βββββββββ
=== DATA VALID ===
Data Bus: βββββββββββββββββββββββββββββββββββ
(1) (2) (3) (4)
The 4 phases of the read handshake proceed as follows:
- Phase 1 (Master Initiates): The master places the address on the address bus. After a short delay (to allow the signals to stabilize), the master asserts the **Request** (or
MSYN) line. This alerts the slave devices to decode the address. - Phase 2 (Slave Responds): The target slave decodes the address, fetches the requested data from its storage cells, places the data on the data bus, and asserts the **Acknowledge** (or
SSYN) line. - Phase 3 (Master Clears Request): The master reads the data from the data bus. Once the data is successfully copied into the CPU's internal buffer (MBR), the master deasserts its **Request** line.
- Phase 4 (Slave Clears Acknowledge): Seeing the request line go low, the slave releases the data bus and deasserts its **Acknowledge** line. The cycle is complete, and the bus is ready for the next transfer.
7. Worked Examples & Numerical Problems
Bus Bandwidth Calculations
Problem: A synchronous system bus operates at a clock frequency of $100\text{ MHz}$. Each bus cycle requires 2 clock periods to transfer a single 32-bit data word. Calculate the maximum bus bandwidth in Megabytes per second ($\text{MB/s}$).
Solution:
- Determine clock cycle duration: $$T_{clock} = \frac{1}{f} = \frac{1}{100\text{ MHz}} = 10\text{ ns}$$
- Determine bus cycle duration: $$T_{bus\_cycle} = 2 \times T_{clock} = 2 \times 10\text{ ns} = 20\text{ ns}$$
- Convert bus width to bytes: $$\text{Width} = \frac{32\text{ bits}}{8\text{ bits/byte}} = 4\text{ bytes}$$
- Calculate Bandwidth: $$\text{Bandwidth} = \frac{\text{Bytes Transferred}}{\text{Bus Cycle Duration}} = \frac{4\text{ bytes}}{20\text{ ns}} = 0.2 \times 10^9\text{ bytes/sec} = 200\text{ MB/s}$$
Answer: The maximum bus bandwidth is **$200\text{ MB/s}$**.
Synchronous Bus Wait States
Problem: A CPU operating on a synchronous bus at $50\text{ MHz}$ accesses a RAM chip. A standard read cycle on this bus takes 2 clock cycles. The RAM chip requires a minimum access time of $55\text{ ns}$. How many **wait states** must the Control Unit insert for a successful read operation?
Solution:
- Calculate clock period: $$T_{clock} = \frac{1}{50\text{ MHz}} = 20\text{ ns}$$
- Determine standard cycle read duration: $$\text{Duration} = 2 \times 20\text{ ns} = 40\text{ ns}$$
- Evaluate RAM access time constraint: The RAM requires $55\text{ ns}$ to place data on the bus. Because $40\text{ ns} < 55\text{ ns}$, the CPU will read invalid data if it samples at the end of the standard cycle.
- Calculate required wait states: Each wait state adds 1 clock cycle ($20\text{ ns}$). - With 1 wait state: $\text{Total Cycle Time} = 40\text{ ns} + 20\text{ ns} = 60\text{ ns}$. Because $60\text{ ns} \ge 55\text{ ns}$, the RAM access constraint is met.
Answer: The Control Unit must insert exactly **1 wait state**.
Daisy Chain Arbitration Priority
Question: "Why is Daisy Chain arbitration susceptible to device starvation, and how can it be resolved?"
Model Answer: Daisy Chain priority is physically determined by the order in which the Bus Grant (BG) signal propagates through the devices. Devices physically closer to the arbiter receive the grant signal first and can intercept it. If these closer devices request the bus frequently, distant devices will never receive the BG signal, leading to starvation. This can be resolved by using dynamic polling arbitration or independent request schemes with priority rotating algorithms (e.g., Round Robin).
8. Core Comparison Tables
Table 1.4.3: Synchronous vs. Asynchronous Timing
| Feature | Synchronous Timing | Asynchronous Timing |
|---|---|---|
| Coordination Mechanism | Global central clock signal. | Handshake lines (Request / Acknowledge). |
| Device Speed Support | Devices must match clock speed; slow devices require wait states. | Supports wide speed variations dynamically. |
| Clock Skew Issues | High risk; limits physical length of bus. | None; no global clock distributed on the bus. |
| Control Circuitry | Simple state machine logic. | Complex asynchronous interlocking circuits. |
Table 1.4.4: Bus Arbitration Topologies
| Scheme | Physical Wiring Complexity | Arbitration Speed | Reliability / Fault Tolerance |
|---|---|---|---|
| Daisy Chain | Low (Few shared control lines) | Slow (serial propagation of BG signal) | Poor (Single device break halts bus) |
| Polling | Medium (Requires $Log_2(N)$ poll lines) | Medium (Scan cycle latency) | Good (Arbiter bypasses failed devices) |
| Independent Request | High (Dedicated request/grant pairs per master) | Fast (Instantaneous priority decoding) | Excellent (No device failure halts others) |
9. Common Mistakes Students Make
Common Pitfalls & Cognitive Traps
- Assuming the Address Bus Can Transmit Data: Students often think that because the address bus carries values, it can be used as a secondary data pathway. The address bus only carries unidirectional source/destination address values to memory/IO; it cannot carry operand data.
- Confusing Daisy Chain Serial Paths: Many students draw Daisy Chain request lines in series. Remember: the Bus Request (
BR) line is **shared** (connected in parallel); only the Bus Grant (BG) line is wired **in series** (propagating sequentially from device to device). - Clock Skew Misunderstanding: When asked why synchronous buses have length limits, students often blame wire resistance. The primary limit is **clock skew**βhigh-frequency clock signals arrive at slightly different times at opposite ends of the bus due to physical wire differences, corrupting timing synchronicity.
- Forgetting 4-Phase Reset Stages: When drawing asynchronous handshakes, students frequently omit the deassertion phases (Phases 3 and 4). A full handshake requires both the Request and Acknowledge lines to be reset to 0 before the next cycle can start.
π― Key Takeaways
- The **System Bus** consists of three partitions: Data (operand transport), Address (location mapping), and Control (timing and command coordination).
- **Bus Arbitration** is mandatory to prevent bus contention among multiple masters. Schemes include Daisy Chain (serial priority), Polling, and Independent Request.
- **Synchronous timing** relies on a central clock but suffers from clock skew. **Asynchronous timing** coordinates transfers dynamically using handshakes.
- A **4-phase asynchronous handshake** uses mutual interlocking of Request and Acknowledge transitions to guarantee noise-free data transport.
π Connection to Future Chapters
The bus concepts learned here directly feed into the memory connections in **Chapter 3.1**, and asynchronous handshake signals are revisited in **Chapter 3.7** (Asynchronous Transfer).
10. Assessment Bank
10.1 Multiple Choice Questions
Answer: (b). Independent Request requires dedicated request and grant lines for every master device on the bus, scaling line count to $2N$ lines.
Answer: (b). At high clock rates, the physical travel time of the clock pulse along the wires causes the clock edge to arrive at slightly different times at different slots, corrupting data read cycles.
Answer: (c). In Phase 3, once the master has copied the data from the data bus, it deasserts the Request line to signal the slave.
Answer: (c). Interrupt Request (IRQ) lines carry command/coordination events and are part of the Control Bus.
10.2 Short Answer Questions
- Why does point-to-point wiring become unmanageable as the number of CPU modules increases? State the complexity class.
- Explain the concept of "Wait States" in a synchronous bus system.
- State one advantage and one disadvantage of Daisy Chain bus arbitration.
10.3 Long Answer / Exam Questions
- Illustrate the complete timing transitions of a 4-phase asynchronous write cycle. Draw the signal waveforms for Address, Request, Acknowledge, and Data lines, and detail the hardware transitions that happen in each phase.
- Compare Daisy Chain, Polling, and Independent Request bus arbitration models. Analyze their wiring overhead (number of pins), priority flexibility, and fault-tolerance (reliability).
10.4 Viva Voce Questions
- "What is a split-transaction bus, and how does it improve system bandwidth?" Model Answer: A split-transaction bus splits a single read operation into two separate bus cycles: a request cycle (where the master requests data) and a response cycle (where the slave returns the data). While the slave is fetching data internally, the bus is released so other devices can use it, improving overall throughput.
- "How does a system bus differentiate between memory locations and I/O devices on a shared address bus?" Model Answer: The bus uses control lines (e.g. Memory Read/Write vs. I/O Read/Write) or memory-mapped I/O spaces (allocating a specific range of addresses to I/O devices rather than physical RAM).