总线
总线分为CPU内的总线(片内总线)与CPU和其他功能部件之间的总线(系统总线),I/O总线与通信总线。
多总线硬件系统的系统总线通常可分为
- 数据总线
- 地址总线
- 控制总线
I/O 总线是CPU与内部I/O设备的总线结构,如显卡、网卡等,通常使用标准化的内部总线协议
通信总线是CPU与外部I/O设备或者其他计算机通信的总线结构,常见协议有USB、RS-232、RS-485等
总线结构
总线结构发展历程经历三种结构
- 早期共享总线结构 -- 通过单一系统总线串联所有设备,传输冲突严重
- 三总线结构 -- 将总线在物理结构上增加到为三条总线,系统总线、IO总线与DMA总线。传统总线仍然需要承载所有设备通信,具有共享式、广播式的特点,仍然限制了并发和拓展能力
- 南北桥结构 -- 通过南桥/北桥芯片分离内部和外部的控制功能,北桥负责高速内部通信,如显卡、内存通信;南桥负责外部通信,如USB设备、磁盘与其他外设。南北桥之间通过桥间总线进行通信,北桥与CPU之间通过 前端总线(FSB) 进行通信。南北桥结构仍然因为FSB的吞吐影响了系统的并发能力。
- 现代集成通信结构 -- 传统北桥被集成在CPU内作为片上集成,CPU与其他外部设备进行点对点互联。多核CPU核间、多CPU结构的CPU之间使用QPI高速串行链路通信。高速IO设备直接通过PCIe与CPU相联,低速设备采用集成度更高的南桥芯片PCH管理
总线的性能指标
- 总线传输周期 -- 完成一次完整总线事务的总时间,简称总线周期
- 总线时钟频率 -- 总线周期的倒数表示总线事务信号的频率。现代总线事务的时钟独立于CPU时钟
- 总线工作频率 -- 总线有效数据传输的频率
- 总线宽度 -- 总线中数据线条数,标志总线并行数量
- 总线带宽 -- 总线总传递速度,总线带宽 = 总线宽度 总线频率
- 总线复用 -- 地址总线/数据总线复用以减小引脚总数
- 总线寻址能力 -- 位地址线能寻址个存储单元
总线事务
总线事务是主设备到从设备到一次信息交换的过程。分为三个基本段
- 地址传送阶段 -- 目标地址与操作类型,主设备 -> 从设备
- 从设备响应阶段(数据准备阶段) -- 从设备准备数据
- 数据传输阶段 -- 数据在总线上的传输
总线的连续传输模式可分为:
- 非突发传输模式 -- 单次传输一个总线宽度的数据单元,每一次传输都完整执行三个传输基本段
- 突发传输模式 -- 连续地址传输,地址线仅传输首地址,后续地址由硬件执行地址自增生成,省去了地址传输的时间开销
总线的物理传输方式可分为串行通信与并行通信。其中并行通信能通过多条数据线同步传输数据,但是会出现信号串扰和时序偏移等问题,实际传输效率低于串行通信。
串行通信可分为
- 同步串行 -- 发送方时钟控制接收方时钟,二者时钟严格一致,只在数据块首位进行标记。硬件实现复杂,成本较高
- 异步串行 -- 收发方使用独立的时钟,单数据块以起始位0开启,以终止位1结束,存在奇偶校验。
总线定时
总线定时方式可分为
- 同步定时方式 -- 主从设备使用同一个时钟,每个操作都在固定的周期内进行
- 异步定时方式 -- 通过主从设备间的握手信号实现定时控制,分为不互锁(主-从)、半互锁(主-从-主)、全互锁(主-从-主-从). 异步定时方式能改变总线周期长度,并可靠连接工作速度差异较大的设备
- 半同步定时方式 -- 通过
Wait信号线控制。主设备在信号上升沿检测Wait, 当Wait置高电平时表示数据未准备就绪,同步无效,直到Wait置低电平时才能读取数据 - 分离式定时方式 -- 将总线事务拆为请求阶段与应答阶段,请求阶段主设备申请总线使用权,发送地址与命令后释放;应答阶段由从设备申请总线使用权并应答。分离式定时方案能处理多主设备竞争的场景,但是总线仲裁的逻辑较为复杂,协议管理开销较大。
