Files
obsidian/计算机组成原理/学习笔记/03_系统总线_补充版.md

485 lines
20 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 第3章 系统总线
> 📖 本章介绍系统总线的基本概念、分类和控制逻辑。
> 🎯 重点理解总线结构和总线仲裁方式
> ⚠️ 复习重点书上例题3.1、3.2、3.4课后习题3.1~3.5、3.14~3.16(必做)
---
## 📋 本章目录
- [[#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的数据。
> ⚠️ **总线带宽计算是考试高频考点**,期末几乎每年都会出计算题。公式一定要记牢:**总线带宽 = 总线频率 × (总线宽度 ÷ 8)**,单位是字节/秒。注意宽度是位要除以8换算成字节。
### 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。
> ⚠️ **三种总线结构的对比是必考内容**,期中/期末常以简答题形式出现——要求对比单总线、双总线、三总线的特点和区别。记住核心演变路线:单总线简单有瓶颈 → 双总线加了CPU-主存专用线 → 三总线再加DMA总线。
---
## 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. 总线仲裁方式
---
## 📖 真题与作业精选
> 以下是期末真题和作业中出现过的典型题目考前务必熟练掌握。对应教材例题3.1、3.2、3.4和课后习题3.1~3.5、3.14~3.16。
### 真题1总线带宽计算2022-2023期末原题
**题目**设总线工作频率60MHz一个总线周期并行传送64位数据。求总线带宽。
**解答**
总线带宽 = 总线频率 × (总线宽度 ÷ 8)
= 60MHz × (64 ÷ 8)
= 60 × 10⁶ × 8
= 480 × 10⁶ 字节/秒
= **480MBps**
> 💡 计算要点总线宽度64位要除以8换算成字节频率的M对应10⁶。这种题型期末高频出现建议多练几道变式题巩固。
### 真题2波特率计算2022-2023期末原题
**题目**异步串行传输字符格式为1位起始位+8位数据位+1位校验位+2位终止位每秒传送100个字符。求波特率。
**解答**
每个字符的总位数 = 1起始位+ 8数据位+ 1校验位+ 2终止位= 12位
波特率 = 每字符位数 × 每秒字符数
= 12 × 100
= **1200b/s**
> 💡 波特率 = 每秒传输的总位数。异步通信中起始位和终止位也要算进去,这是容易丢分的地方。类似的题在课后习题中也有出现。
### 真题3三种总线结构的特点
**题目**:简述三种总线结构(单总线、双总线、三总线)的特点。
**解答**
| 总线结构 | 特点 | 优缺点 |
|----------|------|--------|
| **单总线** | 所有部件共享一组总线 | 结构简单、成本低,但总线是瓶颈,多设备竞争会冲突 |
| **双总线** | 在单总线基础上增加CPU与主存的专用存储总线 | CPU-主存传输效率高,系统总线负担减轻 |
| **三总线** | 在双总线基础上增加DMA总线 | I/O设备可直接访问内存进一步提高性能 |
总线结构的演变路线:单总线 → 双总线(加专用存储线)→ 三总线加DMA线每一步都是为了减少瓶颈、提高并行度。
> 💡 这道题几乎是每学期必考的简答题,回答时要点出每种结构的核心特征和优缺点对比。
---
## 🧪 例题与解析
### 例题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总线支持直接内存访问
**总线带宽 = 总线频率 × (总线宽度 ÷ 8)**计算题必考。32位宽度、66MHz频率 → 带宽 = 4B × 66M = 264MBps。注意宽度是位除以8转字节。
**波特率计算**(异步串行传输考点):波特率 = 每字符总位数(含起始位+数据位+校验位+终止位)× 每秒字符数。
**总线仲裁**简答题常考集中式有中央仲裁器简单但有单点故障vs 分布式(各设备自己仲裁,可靠但复杂)。
**通信方式**同步统一时钟简单但受限于最慢设备vs 异步(握手信号,灵活但复杂)。
**串行 vs 并行**:串行一位一位传,慢但便宜适合远距离;并行多位同时传,快但贵适合近距离。
> 📌 复习建议优先做书上例题3.1、3.2、3.4再完成课后习题3.1~3.5和3.14~3.16,最后过一遍上方的真题与作业精选。
---
## 🔗 相关链接
- [[00_计算机组成原理学习指南]] - 返回主目录
- [[01_计算机系统概论]] - 上一章
- [[04_存储器]] - 下一章
- [[05_输入输出系统]] - I/O相关内容
---
*本章难度:⭐⭐⭐ 中等*
*重要程度:⭐⭐⭐ 基础*