第十六讲 总线
总线的类型
总线是连接两个或多个设备的通信通路
- 芯片内部总线: 连接芯片内部的各个部分, 如CPU中连接寄存器, ALU的部分
- 系统总线: 连接CPU、存储器、IO控制器和其他功能设备
- 通信总线: 连接主机和I/O设备,或连接不同的计算机系统
总线结构
- 数据线: 在系统组件之间传输数据
- 数据线的数量决定了一次可以传输的数据的大小
- 地址线:在数据线和地址I/O端口上指定数据的来源和去向
- 地址线的数量决定了寻址空间的大小
- 控制线: 控制对数据线和地址线的存取和使用
总线上数据传输的特点
- 总线可以被多个设备监听,但同一时刻只能由一个设备发送数据
- 当总线在被使用过程中,其它设备不可以抢占
总线的设计要素
- 用途
- 专用总线
- 复用总线
- 仲裁
- 集中式
- 分布式
- 时序
- 同步
- 异步
- 半同步
- 分离事务
- 总线带宽和数据传输率
- 总线层次结构
- 单总线
- 双总线
- 多总线
用途
- 专用总线: 始终只负责一项功能,或始终分配给特定的计算机组件
- 优点: 高吞吐率, 减少总线冲突
- 缺点: 增加了系统的规模和成本
- 复用总线: 将同一线路用于多种用途
- 优点: 使用的布线数量少, 节省空间和成本
- 缺点: 每个模块需要更复杂的控制电路,且共享可能会降低性能
仲裁: 当多个设备需要与总线通信时,通过某种策略选择一个设备
平衡因素: 优先级和公平性
仲裁方案
- 集中式: 由仲裁器(arbiter)或总线控制器(bus controller)负责分配总线使用权
- 链式查询/菊花链
- 计数器查询
- 独立请求
- 分布式: 每个设备都包含访问控制逻辑,各设备共同作用分享总线
- 自举式
- 冲突检测
时序:确定每个总线事务的开始和结束时间
总线事务: 地址 + 数据 +… +数据
- 同步时序: 事件的发生由时钟决定
- 优点: 更容易实现和测试
- 缺点: 总线长度受到时钟偏差的限制
- 异步时序: 一个事件的发生取决于前一个事件的发生
- 采用握手策略
- 优点: 可以灵活地协调速度不同的设备
- 缺点: 接口逻辑复杂, 对噪声敏感
- 半同步时序: 为了减少噪声的影响,在异步计时中使用时钟
- 分离事务: 将一个总线事件分离为两个过程
- 优点: 增加总线利用率
- 缺点: 增加每个总线事件的持续时间和系统复杂度
总线带宽和数据传输率
- 总线带宽: 总线的最大数据传输速率
- 不要考虑总线仲裁, 地址传输等因素
- 数据传输速率
- 考虑地址传输、握手等因素
- 总线宽度: 组成总线的线数
注意这里对于同步总线, 等待时间就算小于一个时钟周期也不能继续下一步操作
如何提高总线的数据传输率
- 提高时钟频率
- 增加数据总线宽度: 每次传输更多的数据(成本:更多的总线线路)
- 块传输: 传输一次地址就传输一块数据(成本:高复杂性)
- 分离总线事务: 减少总线空闲时间(成本:复杂性高,增加每个事务的持续时间)
- 分离地址线和数据线: 同时传输地址和数据(成本:更多的总线线路)
总线层次结构
- 单总线结构
- CPU、存储器和I/O 模块都连接到一条系统总线
- 优点:简单,易于扩展
- 缺点
- 连接的设备越多,总线长度越大,传输延迟也就越大
- 聚集的传输请求接近总线容量时,总线成为瓶颈
- 双总线结构Ⅰ
- 在CPU和存储器中间增加一个存储器总线
- 优点:增加CPU和存储器之间的传输效率,同时降低系统总线的负担
- 双总线结构Ⅱ
- 将系统总线分为存储器总线、I/O 总线和IOP(input/output processer)
- 优点:降低I/O对总线的负担
- 多总线结构Ⅰ
- 增加一个本地总线(local bus)来连接CPU 和cache
- 优点:分离了CPU 和I/O 的交互
- 多总线结构II
- 将系统总线分为存储器总线、I/O 总线和DMA 总线
- 优点:增加I/O 效率
- 多总线结构Ⅲ
- 增加一个高速I/O 总线来连接高速设备
- 优点:增加I/O 交互效率