114 lines
4.0 KiB
Markdown
114 lines
4.0 KiB
Markdown
|
|
---
|
|||
|
|
tags:
|
|||
|
|
- 计算机系统结构
|
|||
|
|
- 复习
|
|||
|
|
- 总线
|
|||
|
|
- IO系统
|
|||
|
|
create time: 2026-06-15 10:00
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 总线与 I/O 系统
|
|||
|
|
|
|||
|
|
## 概述
|
|||
|
|
|
|||
|
|
本文档讲解总线的基本概念、分离事务总线的工作原理,以及 I/O 系统的性能评价指标。总线是连接处理器、存储器和 I/O 设备的通信通道,其设计直接影响系统整体性能。
|
|||
|
|
|
|||
|
|
> [!tip] 考试重点
|
|||
|
|
> 分离事务总线的概念和别称常以选择题出现。I/O 系统性能评价指标需理解各维度的含义。
|
|||
|
|
|
|||
|
|
## 正文
|
|||
|
|
|
|||
|
|
### 一、总线基础
|
|||
|
|
|
|||
|
|
**总线**(Bus)是计算机系统中多个功能部件之间共享的通信通道,由一组导线和相关的控制逻辑组成。
|
|||
|
|
|
|||
|
|
#### 1.1 总线分类
|
|||
|
|
|
|||
|
|
| 分类方式 | 类型 | 说明 |
|
|||
|
|
|----------|------|------|
|
|||
|
|
| 按用途 | 数据总线、地址总线、控制总线 | 分别传输数据、地址、控制信号 |
|
|||
|
|
| 按层次 | 系统总线、I/O 总线 | 系统总线连接 CPU 和主存,I/O 总线连接外设 |
|
|||
|
|
| 按控制 | 同步总线、异步总线 | 同步靠时钟,异步靠握手信号 |
|
|||
|
|
|
|||
|
|
#### 1.2 总线性能指标
|
|||
|
|
|
|||
|
|
- **总线带宽**:单位时间内传输的数据量(MB/s)
|
|||
|
|
- **总线宽度**:数据线的位数(如 64 位)
|
|||
|
|
- **总线频率**:总线时钟频率(如 800 MHz)
|
|||
|
|
|
|||
|
|
### 二、分离事务总线
|
|||
|
|
|
|||
|
|
**核心思想**:将一个总线事务分成**请求**和**响应**两个阶段,在请求和响应之间的空闲时间内,总线可以供给其他 I/O 设备使用。
|
|||
|
|
|
|||
|
|
```mermaid
|
|||
|
|
sequenceDiagram
|
|||
|
|
participant C as CPU
|
|||
|
|
participant B as Bus
|
|||
|
|
participant M as Memory
|
|||
|
|
|
|||
|
|
C->>B: 请求阶段(发送地址+命令)
|
|||
|
|
B->>M: 内存准备数据
|
|||
|
|
Note over B: 总线空闲,可服务其他请求
|
|||
|
|
M->>B: 响应阶段(返回数据)
|
|||
|
|
B->>C: 数据到达
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**别称**:
|
|||
|
|
|
|||
|
|
| 名称 | 说明 |
|
|||
|
|
|------|------|
|
|||
|
|
| 流水总线 | 因为请求和响应可以流水化 |
|
|||
|
|
| 分离协议总线 | 因为协议将事务分离 |
|
|||
|
|
| **交叉互连总线** | **不是**分离事务总线的别称,是另一种总线拓扑 |
|
|||
|
|
| **独占总线** | **不是**分离事务总线的别称 |
|
|||
|
|
|
|||
|
|
> [!note] 分离事务总线的优势
|
|||
|
|
> 传统总线在一个事务完成前一直被占用,分离事务总线在等待内存响应时释放总线,允许多个设备并发使用,显著提高总线利用率。
|
|||
|
|
|
|||
|
|
### 三、I/O 系统性能
|
|||
|
|
|
|||
|
|
#### 3.1 性能评价维度
|
|||
|
|
|
|||
|
|
| 维度 | 含义 | 衡量指标 |
|
|||
|
|
|------|------|----------|
|
|||
|
|
| **连接特性** | 设备连接能力和带宽 | 设备数量、通道数 |
|
|||
|
|
| **容量** | 存储空间大小 | TB、PB |
|
|||
|
|
| **响应时间** | 从请求到完成的延迟 | ms、μs |
|
|||
|
|
| **吞吐率** | 单位时间处理的 I/O 量 | IOPS、MB/s |
|
|||
|
|
|
|||
|
|
> [!question] I/O 系统性能为什么重要?
|
|||
|
|
> 随着处理器速度远超 I/O 设备速度,I/O 瓶颈日益突出。一个 I/O 操作可能耗时数毫秒,而 CPU 一个时钟周期仅数纳秒,巨大的速度差使得 I/O 系统可能成为整个系统的瓶颈。
|
|||
|
|
|
|||
|
|
#### 3.2 I/O 系统的瓶颈问题
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
CPU 速度: ~GHz (纳秒级)
|
|||
|
|
内存速度: ~100ns
|
|||
|
|
磁盘速度: ~10ms (毫秒级)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
速度差距达到 **5~6 个数量级**,因此:
|
|||
|
|
|
|||
|
|
- I/O 系统的性能对 CPU 利用率影响巨大
|
|||
|
|
- I/O 和 CPU 的性能不匹配时,I/O 系统成为瓶颈
|
|||
|
|
- 需要通过缓存、缓冲、异步 I/O 等技术缓解
|
|||
|
|
|
|||
|
|
### 四、DMA 与中断
|
|||
|
|
|
|||
|
|
| 方式 | 原理 | CPU 参与度 | 适用场景 |
|
|||
|
|
|------|------|:----------:|----------|
|
|||
|
|
| 程序查询 | CPU 轮询 I/O 状态 | 高 | 简单系统 |
|
|||
|
|
| 中断 | I/O 完成后通知 CPU | 中 | 低速设备 |
|
|||
|
|
| **DMA** | 直接内存访问,不经过 CPU | 低 | 高速设备 |
|
|||
|
|
|
|||
|
|
DMA 的工作流程:
|
|||
|
|
|
|||
|
|
1. CPU 设置 DMA 传输参数(源地址、目的地址、传输长度)
|
|||
|
|
2. DMA 控制器接管总线,直接在设备和内存间传输数据
|
|||
|
|
3. 传输完成后,DMA 控制器向 CPU 发中断通知
|
|||
|
|
|
|||
|
|
## 关联笔记
|
|||
|
|
- [[计算机系统结构/复习文档/计算机系统结构基础与定量原理]]
|
|||
|
|
- [[计算机系统结构/复习文档/存储系统与Cache]]
|
|||
|
|
- [[计算机系统结构/index|试题册索引]]
|