总线与 I-O 系统
总线与 I-O 系统
核心定义
总线 是连接 CPU、存储器和外设的 共享信息通路 。按功能分为 数据总线 (传数据)、地址总线 (传地址/寻址)、控制总线 (传控制信号和时序)。按位置分为 片内总线 (芯片内部)、系统总线 (各大部件之间)、通信总线 (计算机之间)。
I-O 系统 负责主机与外设之间的数据交换。常考内容包括 总线分类、总线仲裁、I/O 方式(程序查询、中断、DMA)、总线带宽计算 。
总线带宽=总线宽度×工作频率
例如总线宽度 32 位、频率 200MHz,则带宽 = 32/8×200=800 MB/s 。
总线仲裁 分为 集中仲裁 (链式查询、计数器定时查询、独立请求方式)和 分布仲裁 (各模块自举竞争)。仲裁解决的是 多个主设备同时请求总线时谁先使用 的问题。
总线分类表:
| 分类维度 | 类型 | 作用 |
|---|---|---|
| 按功能 | 数据总线 | 传输数据 |
| 按功能 | 地址总线 | 传输地址 / 寻址(n 位 → 2n 单元) |
| 按功能 | 控制总线 | 传输控制信号和时序 |
| 按位置 | 片内总线 | 芯片内部互连 |
| 按位置 | 系统总线 | 各大部件之间互连 |
| 按位置 | 通信总线 | 计算机之间通信 |
关键细节 / 操作步骤
- 第一步:先判总线类型:数据总线宽度决定 每次传输的数据量 ;地址总线宽度决定 寻址空间大小 (n 位地址总线可寻址 2n 个单元)。
- 第二步:若问总线仲裁,集中仲裁中链式查询的优先级由 物理位置决定(离仲裁器越近优先级越高) ;独立请求方式的优先级由 仲裁器内部排队逻辑决定 ,响应最快但连线最多。
- 第三步:若问总线周期,同步通信靠 统一时钟 ;异步通信靠 握手信号(请求/应答) ,分为不互锁、半互锁、全互锁。
- 第四步:若问 I/O 方式,程序查询方式 CPU 主动轮询外设状态,CPU 占用最高 ;中断方式 外设准备好后 主动通知 CPU,适合小量偶发数据 ;DMA 方式 DMA 控制器 直接搬运数据,仅占用总线周期,适合大块连续传输 。
- 第五步:若问 DMA 工作流程:预处理(CPU 设置参数)→ 数据传输(DMA 控制总线)→ 后处理(DMA 完成后中断通知 CPU) 。
- 第六步:若问中断处理流程:中断请求→中断响应→保护现场→中断服务→恢复现场→中断返回 。
- 第七步:若问中断优先级,硬件方式( 中断向量 )比软件方式( 查询顺序 )响应更快。
- 第八步:若问总线带宽,结合 总线宽度、频率、每个总线周期的传输次数 计算。
- 第九步:若问性能对比,比较维度依次是 CPU 占用率、数据传输率、硬件复杂度、响应及时性 。
- 第十步:若问总线与 I/O 的关系,写成” 总线提供数据通路,I/O 系统提供控制与组织机制 ”。
⚠️ 易错辨析
- 中断不是 DMA 的替代品,DMA 也不是完全绕开 CPU:DMA 仍需 CPU 负责 启动、控制和收尾 ,只是数据搬运阶段 CPU 不参与。反例:DMA 传输结束后仍通过中断通知 CPU。
- 总线仲裁讲的是 谁先用总线 ,中断响应讲的是 谁先被 CPU 处理 ,两者是完全不同的概念,不能混淆。
- 程序查询、中断、DMA 是 三种不同的 I/O 方式 ,不是一套流程的三个阶段。反例:DMA 不是”先查询再中断”的升级版,它有独立的控制通路。
- 总线宽度和存储字长是不同概念:总线宽度是 一次总线传输的位数 ,存储字长是 一次存储器访问的位数 。
💡 技巧与口诀 口诀:小块用中断,大块用 DMA,程序查询最原始;总线三分法,先看地址再看数据;同步靠时钟,异步靠握手 。 应用场景:看到”仲裁""共享""总线请求”就联想到 总线控制权竞争 ;看到”外设传输""大块连续”就联想到 DMA 。若问效率,先看 CPU 占用 ,再看 传输块大小 ,再看 总线竞争 。
📝 真题闭环 题目:某总线宽度 32 位,时钟频率 33MHz,每个总线周期需要 2 个时钟周期完成一次数据传输。求总线带宽。若改用 64 位总线且频率提升到 66MHz,带宽变为多少?
解题思路:
- 每个总线周期传输数据量 = 32/8=4 B 。
- 总线周期频率 = 33MHz/2=16.5MHz 。
- 原带宽 = 4×16.5=66 MB/s 。
- 改进后:每个周期传输 64/8=8 B ,总线周期频率 = 66/2=33MHz 。
- 新带宽 = 8×33=264 MB/s 。
答案:原带宽 66 MB/s ,改进后带宽 264 MB/s 。
cd ..