6.1 总线概述
总线
连接多个部件的信息传输线,是各部件共享的传送介质。总线特性由机械、电气、功能、时间特性描述。总线分类(按位置)
- 片内总线:芯片内部各寄存器/部件之间的连接。
- 系统总线:CPU、主存、I/O 之间传送信息的通路,分为数据总线、地址总线、控制总线。
- 通信总线:计算机系统之间或与其他系统间的通信。
| 系统总线分类 | 方向 | 宽度决定 | 功能 |
|---|---|---|---|
| 数据总线 DB | 双向 | 数据位数(机器字长) | 传输数据 |
| 地址总线 AB | 单向(CPU→外) | 最大物理地址空间 | 传输地址 |
| 控制总线 CB | 双向(含控制信号) | — | 传输控制信号与时序 |
总线结构
双总线/三总线:双总线在主存与 CPU 间增设存储总线提高访存速度;三总线再加入 I/O 总线,使 CPU 与 I/O 并行工作。
6.2 总线仲裁
多个主设备同时请求总线时,需由总线仲裁器决定使用权。仲裁方式分集中式和分布式,常见集中式三种:
| 仲裁方式 | 原理 | 控制线数 | 优点 | 缺点 |
|---|---|---|---|---|
| 链式查询 | 总线授权 BG 信号逐级下传,离仲裁器最近的优先级最高 | 3(BR、BG、BS) | 结构简单、易扩充 | 对电路故障敏感、优先级固定、不公平 |
| 计数器查询 | 仲裁器通过计数器值查询各设备,与设备地址匹配者获总线 | ⌈log₂ n⌉+2 | 优先级灵活(可改计数方式) | 线数多、控制复杂 |
| 独立请求 | 每个设备独立请求线与授权线,仲裁器可编程决定 | 2n+1 | 响应快、优先级灵活 | 线数最多、硬件最复杂 |
优先级:链式查询优先级由物理位置决定;计数器查询若每次从 0 开始计数则等价固定优先级,若从上次停止处继续则为公平轮转;独立请求优先级由仲裁器算法决定,最灵活。
交互式动画 · 总线仲裁过程
模拟 4 个设备同时发出总线请求,观察三种仲裁方式如何决定总线使用权。点击"模拟请求"按钮,选择仲裁方式,动画将展示仲裁流程。
6.3 总线事务与定时
总线事务
从请求总线到完成总线操作的整个过程,通常包括:请求 → 仲裁 → 寻址(传送地址)→ 数据传送 → 错误检查。总线定时方式
- 同步通信:统一时钟,每个时钟周期完成固定操作。简单但需考虑最慢设备,适用于速度相近的设备。
- 异步通信:握手协议(请求—应答),分不互锁、半互锁、全互锁三种。适用于速度差异大的设备。
- 半同步通信:在同步基础上增加 WAIT/READY 信号,兼顾速度差异。
- 分离式通信:将总线事务分为"请求"和"应答"两个独立子周期,总线在中间可被其他设备使用,总线利用率最高。
分离式通信特点:各模块均需总线请求与仲裁能力;总线使用完后立即释放;适合慢速设备(如磁盘读扇区期间让出总线)。是 408 高频考点。
总线带宽计算
总线带宽 = 总线工作频率 ×(总线宽度 / 8)B/s。
例:总线宽度 32 位,工作频率 66 MHz,则带宽 = 66×10⁶ × 32/8 = 264 MB/s。若一个总线周期含 4 个时钟周期,则数据传输频率为 66/4 = 16.5 MHz,带宽 = 16.5×10⁶ × 4 = 66 MB/s。