总线
简介
- 概念: 多个功能部件进行数据传输的公共通路
- 分散连接: 计算机各个部件之间使用单独布线实现互联,当规模扩增时,布线数量、复杂度显著增长; 添加新硬件时可能需要重新布线,扩展性差
- 总线连接: 将多个硬件连接到同一组线路中,以此线路传输数据,达到降低成本和复杂度的目的,同时易扩展; 相比分散连接,布线的数量和复杂度显著减小
特性
- 机械特性: 尺寸、形状、管脚数、布局以及排列顺序
- 电气特性: 每根传输线的传输方向以及有效电平范围
- 功能特性: 每根传输线的功能(数据、地址、控制)
- 时间特性(逻辑特性): 传输的信号在时序上的有效性
功能
- 数据、地址、控制信号传输: 最基本的功能
- 通过校验,检测传输数据是否出错
- 提供共享的数据通道,支持多设备连接通信
- 通过仲裁功能实现多个设备的有序通信,避免数据冲突
分类
连接对象/位置
- 片内/内部总线: 连接 CPU 内部部件(寄存器、ALU、控制器等)
- 系统总线: 连接 CPU, 主存, I/O 设备等核心部件
- 数据总线: 传输各部件之间的数据信息; 双向传输
- 地址总线: 用于指定将要访问的内存单元或 I/O 端口的地址; 单向传输(CPU(主设备)发出)
- 控制总线: 传输控制信号,协调操作(例如是中断请求中的一个环节); 单条线路传输方向是固定的,有些由 CPU 发出(内存读/写),有些是发给 CPU 的(中断请求等),整体双向传输
- 通信总线(I/O 总线): 用于计算机系统之间或计算机与外部设备的连接
传送方式/格式
- 并行总线
- 描述: 一次传输数据多个位
- 特点
- 逻辑简单直观
- 并行数据传输的数据延迟不全相等
- 数据线之间易产生 串扰 (邻近信号线间耦合,产生的电磁信号影响到信号线的正常传输)
- 例: ISA, PCI 等
- 串行总线
- 描述: 按顺序依次传输一位数据
- 引脚少
- 需要复杂的串行化/解串行化电路
- 在高频率下传输的数据相比并行总线稳定,使其在部分应用场景下更加适用
- 采用差分信号传输,抗干扰强
- 时钟信息集成到数据流中,不需要传时钟同步数据流,降低功耗
- 例: PCIe, SATA, USB 等
- 描述: 按顺序依次传输一位数据
时序控制
- 同步总线: 通过统一的时钟控制所有操作
- 异步总线: 通过请求、应答的协议实现数据传输
性能指标
- 总线宽度(总线位宽): 一次总线操作中,最多可传送的数据总数(8位, 16位, 32位…)(传输线根数)(单位: bit)
- 信号线数: 数据总线、地址总线、控制总线的数量总和
- 总线带宽: 单位时间内 能够传输的数据总数(总线位宽 * 频率)(数据传输率)(单位: MB/s, GB/s)
- 传输周期: 一次总线操作需要的时间(申请阶段 -> 寻址阶段(寻找目标设备) -> 传输阶段 -> 结束阶段(撤销相关信息))
- 总线复用: 在不同时段,一种信号线传输不同类型的信息
结构
单总线结构

CPU, 主存, I/O 设备(接口)等部件连在一组总线上
- 优点: 结构简单,成本低,易接入新设备
- 缺点: 带宽低(大量时间花费在仲裁等待上,而不是传输数据),负载重,造成性能瓶颈; 不支持并发传送操作
- 例:
- 基于 ISA 总线的计算机
多总线结构

依据总线的功能、传输速度差异进行分离(划分成不同层级),依靠桥接器(连接不同总线,具有数据缓冲、转换、控制功能)连接起来
- 优点: 减少高速部件对低速部件的等待
- 缺点: 需要添加额外的硬件设备; 结构与单总线结构相比较为复杂,桥接器需要处理不同总线之间的数据、协议转换等,需要协调; 引入桥接延迟,桥接器本身可能成为新瓶颈等等
- 例:
- 北桥-南桥架构
- 将系统总线和I/O总线分离开,形成双总线结构; 在此基础上添加 DMA 总线,形成三总线结构,满足高速外设与主存的信息交换
点对点连接
每个通信设备与其通信的对象之间有专用链路,不共享总线带宽
- 优点: 独享带宽; 减少通信延迟(无需总线仲裁); 扩展性好; 采用高速串行差分信号,抗干扰能力强
- 缺点: 协议复杂; 支撑功能的相关硬件较为复杂,成本高
- 例:
- PCIe(从拓扑结构上看,PCIe 为树形拓扑结构)

- PCIe(从拓扑结构上看,PCIe 为树形拓扑结构)
总线仲裁
总线是共享资源,多个设备请求总线时,需要确定使用顺序
集中式仲裁
- 存在一个中央仲裁器,负责分配总线的控制权
- 仲裁器对总线请求信号(BR)进行裁决,裁决后送出授权信号(BG),总线状态(BS)
链式查询

- 所有设备共享总线请求线和总线授权线,授权信号依次传入设备中,设备优先级取决于设备与中央仲裁器的远近
- 所需传输线少,便于更改和扩充(1BR, 1BG, 1BS)
- 优先级固定,优先级较低的设备可能长期得不到总线使用
- 对询问链电路故障敏感
计数器定时查询

- 仲裁器收到BR后,计数器开始计数,并通过设备地址线广播计数值,计数值与地址匹配时,设备获得总线使用权(BS 置1)
- 控制线数量( BR, 1BG, 1BS)
- 优先级由计数器初值决定,可为固定值(固定优先级),或从中止点开始计数(循环优先级)
独立请求

- 每个设备有独立的 BR 和 BG 线与仲裁器相连
- 响应速度快,优先级次序控制灵活
- 控制线数量最多(nBR, nBG, 1BS)
分布式仲裁

- 没有中央仲裁器,每个设备有独立的仲裁逻辑和仲裁号
- 发送总线请求时,把各自的仲裁号进行比较确定优先级
- 可靠性高,无单点故障,控制逻辑复杂
函数模型

本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Forgotten Area!


