# 第3章 系统总线

> 📖 本章介绍系统总线的基本概念、分类和控制逻辑。
> 🎯 重点理解总线结构和总线仲裁方式

---

## 📋 本章目录

- [[#3.1 总线的基本概念]]
- [[#3.2 总线的分类]]
- [[#3.3 总线特性及性能指标]]
- [[#3.4 总线结构]]
- [[#3.5 总线控制]]
- [[#本章小结]]
- [[#例题与解析]]

---

## 3.1 总线的基本概念

### 3.1.1 什么是总线

> [!info] 定义
> 总线是连接多个部件的信息传输线，是各部件**共享**的传输介质。

**关键特性**：
- 同一时刻只允许**一个部件**向总线发送信息
- 多个部件可以**同时**从总线上接收相同的信息

```mermaid
graph TB
    subgraph "总线结构"
        CPU[CPU] <--> |"共享总线"| BUS[系统总线]
        MEM[主存] <--> |"共享总线"| BUS
        IO1[I/O设备1] <--> |"共享总线"| BUS
        IO2[I/O设备2] <--> |"共享总线"| BUS
        IO3[I/O设备3] <--> |"共享总线"| BUS
    end

    style BUS fill:#ffcc00
```

总线就像一条公共马路：所有车辆（部件）都使用同一条马路，但同一时刻只能过一辆车（单车道），不过一个电台广播时很多人可以同时收听（多人同时接收）。

或者想象一个会议室：麦克风（总线）是共享的，所有人都可以用，但不能两个人同时说话，不过一个人说话时所有人都能听到。

### 3.1.2 总线连接方式

#### 分散连接 vs 总线连接

| 特性 | 分散连接 | 总线连接 |
|------|----------|----------|
| 连线方式 | 各部件单独连线 | 共享传输线 |
| 灵活性 | 差，增删设备困难 | 好，便于扩展 |
| 复杂度 | 高 | 低 |
| 成本 | 高 | 低 |

这两种连接方式可以类比电话系统：分散连接就像每个办公室之间都拉一条专用电话线，A要打给B需要A-B专线，打给C需要A-C专线，线多成本高；总线连接就像所有办公室都连到一条电话总线上，通过总线转接，线少成本低，增加新办公室只需接一条线。

### 3.1.3 总线结构类型

#### 1. 面向CPU的双总线结构

```mermaid
graph TB
    subgraph "面向CPU的双总线"
        CPU[CPU] <--> |"M总线"| MEM[主存]
        CPU <--> |"I/O总线"| IO1[I/O设备1]
        CPU <--> |"I/O总线"| IO2[I/O设备2]
        CPU <--> |"I/O总线"| ION[I/O设备n]
    end

    style CPU fill:#ff9999
    style MEM fill:#99ff99
```

**特点**：
- 两组总线：M总线（存储总线）和I/O总线
- I/O设备与主存交换信息需经过CPU
- 影响CPU工作效率

这种结构就像公司的物流系统，M总线是仓库和生产车间之间的专用通道，I/O总线是生产车间和客户之间的通道。问题是客户要从仓库取货，必须经过生产车间，影响生产效率。

#### 2. 单总线结构

```mermaid
graph TB
    subgraph "单总线结构"
        CPU[CPU] <--> |"系统总线"| BUS[系统总线]
        MEM[主存] <--> |"系统总线"| BUS
        IO1[I/O设备1] <--> |"系统总线"| BUS
        IO2[I/O设备2] <--> |"系统总线"| BUS
        ION[I/O设备n] <--> |"系统总线"| BUS
    end

    style BUS fill:#ffcc00
```

**特点**：
- 所有部件挂到同一组总线
- I/O与主存交换信息不占用CPU
- 需要总线判优逻辑解决冲突

单总线就像公司内部只有一条快递通道，所有部门共用。优点是客户可以直接从仓库取货，不经过生产车间；缺点是如果多个部门同时要用通道就会冲突，需要排队。

#### 3. 以存储器为中心的双总线结构

```mermaid
graph TB
    subgraph "以存储器为中心的双总线"
        CPU[CPU] <--> |"存储总线"| MEM[主存]
        MEM <--> |"系统总线"| BUS[系统总线]
        IO1[I/O设备1] <--> |"系统总线"| BUS
        IO2[I/O设备2] <--> |"系统总线"| BUS
        ION[I/O设备n] <--> |"系统总线"| BUS
    end

    style MEM fill:#99ff99
    style BUS fill:#ffcc00
```

**特点**：
- 在单总线基础上增加CPU与主存之间的专用总线
- 存储总线速度高，只供CPU与主存传输信息
- 既提高传输效率，又减轻系统总线负担

这是对单总线的改进，增加了仓库和生产车间之间的高速专用通道。这样既提高了CPU和内存之间的传输效率，其他部门又可以直接从仓库取货，系统总线负担也减轻了。现代计算机大多采用这种结构。

---

## 3.2 总线的分类

### 3.2.1 按连接部件分类

#### 1. 片内总线

> [!info] 定义
> 片内总线是指芯片内部的总线，如在CPU芯片内部，寄存器与寄存器之间、寄存器与算逻单元ALU之间都由片内总线连接。

片内总线就像公司内部各部门之间的内部电话，只在公司内部（芯片内部）使用，用于各部门之间沟通工作，速度快距离短。

#### 2. 系统总线

> [!info] 定义
> 系统总线是指CPU、主存、I/O设备各大部件之间的信息传输线。由于这些部件通常都安放在主板或各个插件板上，故又称板级总线或板间总线。

**系统总线的三类**：

```mermaid
graph TB
    subgraph "系统总线"
        DB[数据总线] --> |"传输数据"| DATA[数据信息]
        AB[地址总线] --> |"传输地址"| ADDR[地址信息]
        CB[控制总线] --> |"传输控制"| CTRL[控制信号]
    end
```

1. **数据总线**：传输各功能部件之间的数据信息，双向传输，宽度与机器字长有关（8位、16位、32位）

2. **地址总线**：指出源数据或目的数据在主存单元的地址或I/O设备的地址，单向输出（由CPU输出），宽度与存储单元个数有关

3. **控制总线**：发出各种控制信号，每根线单向但整体有输入也有输出，包括存储器读/写、I/O读/写、中断请求等

系统总线可以理解为公司的三套沟通系统：数据总线是快递通道，传送实际的文件和包裹，双向传输；地址总线是门牌号系统，告诉快递员送到哪个办公室，只有总经理（CPU）能指定地址；控制总线是指令系统，传达各种指令和状态，有输入有输出。

当你在电脑上保存文件时：CPU通过地址总线告诉内存"我要存到地址1000"，通过数据总线把文件数据传给内存，通过控制总线发出"写入"命令。

#### 3. 通信总线

> [!info] 定义
> 通信总线用于计算机系统之间或计算机系统与其他系统之间的通信。

**分类**：

1. **串行通信**：数据在单条1位宽的传输线上，一位一位地按顺序传送，适合远距离，成本低，但速度慢

2. **并行通信**：数据在多条并行1位宽的传输线上，同时传送，速度快，但适合近距离，成本高

串行通信就像一个人骑自行车送信，一次只能带一封信，分8次送完8封信，成本低适合远距离；并行通信就像8个人同时骑自行车送信，一次就能送8封信，速度快但成本高。

USB、网络线、电话线用串行通信；打印机接口、早期硬盘接口用并行通信。

---

## 3.3 总线特性及性能指标

### 3.3.1 总线特性

总线特性包括以下几项：

1. **机械特性**：总线在机械连接方式上的一些性能，如插头与插座标准、几何尺寸、引脚个数、排列顺序。就像电源插头的形状和大小。

2. **电气特性**：总线的每一根传输线上信号的传递方向和有效的电平范围，高电平表示1，低电平表示0。就像电源的电压标准（220V还是110V）。

3. **功能特性**：总线中每根传输线的功能，如地址线、数据线、控制线。就像不同颜色的电线代表不同功能。

4. **时间特性**：总线中的任一根线在什么时间内有效，信号时序关系。就像交通信号灯的时序（红灯停、绿灯行）。

### 3.3.2 总线性能指标

| 指标 | 说明 | 计算方式 |
|------|------|----------|
| 总线宽度 | 数据总线的根数 | 8位、16位、32位、64位 |
| 总线带宽 | 数据传输速率 | 总线宽度 × 总线频率 |
| 时钟同步 | 数据与时钟同步方式 | 同步总线、异步总线 |
| 总线复用 | 一条线传送多种信号 | 地址/数据复用 |
| 信号线数 | 三种总线数的总和 | 地址线+数据线+控制线 |

这些指标可以类比公路：总线宽度是车道数，8位就是8车道；总线带宽是车流量，计算方式是车道数×车速；时钟同步就像交通信号灯，同步总线所有车按信号灯行驶；总线复用就像多功能车道，白天走汽车晚上走自行车。

假设总线工作频率为33MHz，总线宽度为32位：总线带宽 = 33MHz × (32÷8) = 132MBps，意味着每秒可以传输132MB的数据。

### 3.3.3 总线标准

> [!info] 定义
> 总线标准是系统与各模块、模块与模块之间的一个互连的标准界面。

总线标准就像交通规则，标准化使得所有车辆都遵守同一套规则，不同品牌的车都能在同一条路上行驶，便于扩展。

常见的总线标准包括ISA、EISA、VESA、PCI、USB等。USB总线是统一的外部设备接口标准，手机、U盘、鼠标都可以用USB接口，不同品牌的设备都能互相兼容，即插即用。

---

## 3.4 总线结构

### 3.4.1 单总线结构

```mermaid
graph TB
    subgraph "单总线结构"
        CPU[CPU] <--> |"系统总线"| BUS[系统总线]
        MEM[主存] <--> |"系统总线"| BUS
        IO1[I/O设备1] <--> |"系统总线"| BUS
        IO2[I/O设备2] <--> |"系统总线"| BUS
    end

    style BUS fill:#ffcc00
```

**优点**：结构简单，便于扩展，成本低
**缺点**：总线成为瓶颈，多设备同时使用会冲突，影响系统性能

单总线就像一条单车道公路，建设成本低维护简单，但如果车多就会堵车。早期的个人计算机采用单总线结构。

### 3.4.2 双总线结构

```mermaid
graph TB
    subgraph "双总线结构"
        CPU[CPU] <--> |"存储总线"| MEM[主存]
        CPU <--> |"I/O总线"| IO[I/O设备]
        MEM <--> |"I/O总线"| IO
    end

    style MEM fill:#99ff99
```

**优点**：CPU和I/O可以并行工作，减轻总线负担，提高系统性能
**缺点**：结构复杂，成本高

双总线就像两条公路，存储总线是仓库和生产车间之间的专用高速公路，I/O总线是仓库和其他部门之间的普通公路，专用通道效率高不会互相干扰。现代计算机采用双总线结构。

### 3.4.3 三总线结构

```mermaid
graph TB
    subgraph "三总线结构"
        CPU[CPU] <--> |"存储总线"| MEM[主存]
        CPU <--> |"I/O总线"| IO[I/O设备]
        MEM <--> |"DMA总线"| IO
    end

    style MEM fill:#99ff99
```

**优点**：支持DMA（直接内存访问），I/O设备可以直接访问内存，进一步提高系统性能

三总线增加了仓库和其他部门之间的直达通道（DMA总线），其他部门可以直接从仓库取货，不经过生产车间。现代计算机支持DMA技术，硬盘可以直接把数据传到内存，不经过CPU。

---

## 3.5 总线控制

### 3.5.1 总线仲裁

> [!info] 定义
> 总线仲裁是解决多个部件同时申请使用总线时，如何决定哪个部件获得总线使用权的机制。

**仲裁方式**：

1. **集中式仲裁**：有一个中央仲裁器，控制简单，但有单点故障风险。就像路口的交通警察，指挥统一秩序井然，但如果警察不在交通就乱了。

2. **分布式仲裁**：每个设备都有仲裁逻辑，可靠性高，但控制复杂。就像没有警察，车辆自己按规则（如先到先行）通过，容易混乱但没有单点故障。

传统的电话系统用集中式仲裁，由交换机决定谁先通话；以太网用分布式仲裁，设备自己检测冲突并重试。

### 3.5.2 总线通信控制

**通信方式**：

1. **同步通信**：所有操作按统一时钟进行，控制简单，但速度受限于最慢设备。就像全公司统一上下班时间，管理简单但如果某个部门慢其他部门都要等。

2. **异步通信**：没有统一时钟，用握手信号，速度灵活但控制复杂。就像各部门按自己的节奏工作，用"准备好"和"收到"信号协调，各部门可以按自己的速度工作。

工厂的流水线用同步通信，所有工位按同一节奏工作；快递系统用异步通信，快递员按自己的节奏送货，用"已签收"信号确认。

---

## 📝 本章小结

### 核心概念

1. **总线**：连接多个部件的共享传输介质
2. **总线分类**：片内总线、系统总线、通信总线
3. **总线结构**：单总线、双总线、三总线
4. **总线控制**：仲裁方式、通信控制

### 关键术语

| 术语 | 英文 | 含义 |
|------|------|------|
| Bus | Bus | 总线 |
| Arbitration | Arbitration | 仲裁 |
| Synchronous | Synchronous | 同步 |
| Asynchronous | Asynchronous | 异步 |
| DMA | Direct Memory Access | 直接内存访问 |

### 重点图示

> [!summary] 必须掌握的图
> 1. 三种总线结构框图（单总线、双总线、三总线）
> 2. 系统总线的三类（数据、地址、控制）
> 3. 总线仲裁方式

---

## 🧪 例题与解析

### 例题1：总线带宽计算

**题目**：某计算机总线工作频率为66MHz，总线宽度为32位，求总线带宽。

**答案**：

总线带宽 = 总线频率 × 总线宽度（字节）= 66×10⁶ × 4 = 264×10⁶ 字节/秒 = 264 MBps

这就像一条公路，每秒可以通过66百万辆车，每辆车能装4个包裹（32位=4字节），每秒能送264百万个包裹。

### 例题2：地址总线计算

**题目**：某计算机有20位地址线，求该计算机能访问的最大存储单元数。

**答案**：

20位地址线可以表示 2²⁰ = 1048576 个地址，即能访问1048576个存储单元。

这就像仓库的门牌号系统，20位地址线表示门牌号有20位数字，最多能编1048576个门牌号。

### 例题3：总线结构比较

**题目**：比较单总线结构和双总线结构的优缺点。

**答案**：

单总线结构简单、成本低，但总线成为瓶颈，多设备同时使用会冲突；双总线结构复杂、成本高，但CPU和I/O可以并行工作，总线负担轻，系统性能高。

单总线就像一条主干道，所有车辆都走这条路容易堵车；双总线有两条主干道，一条高速一条普通，车辆分流不容易堵车。

### 例题4：总线仲裁

**题目**：简述集中式仲裁和分布式仲裁的区别。

**答案**：

集中式仲裁有中央仲裁器，控制简单但有单点故障风险；分布式仲裁每个设备都有仲裁逻辑，可靠性高但控制复杂。

集中式仲裁就像路口有警察指挥，秩序井然但警察不在就乱了；分布式仲裁没有警察，车辆自己按规则行驶，没有单点故障但容易混乱。

### 例题5：串行与并行通信

**题目**：比较串行通信和并行通信的优缺点。

**答案**：

串行通信一位一位传送，速度慢但成本低，适合远距离；并行通信多位同时传送，速度快但成本高，适合近距离。

串行通信就像一个人骑自行车送信，成本低适合远距离；并行通信就像8个人同时骑自行车送信，速度快但成本高。

---

## ⚡ 知识点速记卡

> 考前快速过一遍，30秒回忆整章核心

**总线** = 各部件共享的传输介质，同一时刻只能一个部件发送，但多个部件可以同时接收。

**系统总线三类**：数据总线（双向，传数据）、地址总线（单向，CPU输出地址）、控制总线（有读有写，传控制信号）。

**三种总线结构**：单总线（简单但有瓶颈）→ 双总线（CPU-主存专用线+系统总线）→ 三总线（再加DMA总线）。

**总线带宽 = 总线宽度 × 总线频率**。32位宽度、66MHz频率 → 带宽 = 4B × 66M = 264MBps。

**总线仲裁**：集中式（有中央仲裁器，简单但有单点故障）vs 分布式（各设备自己仲裁，可靠但复杂）。

**通信方式**：同步（统一时钟，简单但受限于最慢设备）vs 异步（握手信号，灵活但复杂）。

**串行 vs 并行**：串行一位一位传，慢但便宜适合远距离；并行多位同时传，快但贵适合近距离。

---

## 🔗 相关链接

- [[00_计算机组成原理学习指南]] - 返回主目录
- [[01_计算机系统概论]] - 上一章
- [[04_存储器]] - 下一章
- [[05_输入输出系统]] - I/O相关内容

---

*本章难度：⭐⭐⭐ 中等*
*重要程度：⭐⭐⭐ 基础*
