第三章 系统总线

3.2 总线的分类

按照传输方式分,可以分为并行总线、串行总线。按照功能分,可以分为以下几种类型:

片内总线

CPU 内部的,比如 CPU 的寄存器之间,寄存器与 ALU 之间等

系统总线

  • 又称板级总线:CPU 主存储器 IO 之间的传输线。按照功能分,有:
  • 数据总线:传输数据
    • 双向传输总线
    • 数据总线位数,又称数据总线宽度:单次传输的数据量,一般与机器字节长度关联,影响整个计算机系统的性能
  • 地址总线:用来指出数据总线上的元数据或目标数据在主存储器上的地址或者在 IO 设备上的地址
    • 设计上是单向的,由 CPU 发出,其他设备接收。CPU 要读取数据就发数据读取的地址,要通过 IO 输出数据就发数据发送的地址
    • 地址总线位数与存储单元的个数(最大地址数)有关
  • 控制总线:发出各种控制信号的传输线
    • 设计上,对任意一个控制线(逻辑概念)来说是单向的
      • CPU 向存储器发送读写命令
      • IO 设备准备好后向 CPU 发送中断请求
      • CPU 向设备发出状态询问等
    • 一般来说一个物理线对应一个控制线,但也有分时复用
    • 常见控制信号:
      • 时钟:用来同步各种操作。、
      • 复位:初始化所有部件。
      • 总线请求:表示某部件需获得总线使用权。
      • 总线允许:表示需要获得总线使用权的部件已获得了控制权。
      • 中断请求:表示某部件提出中断请求。
      • 中断响应:表示中断请求已被接收。
      • 存储器写:将数据总线上的数据写至存储器的指定地址单元内。
      • 存储器读:将指定存储单元中的数据读到数据总线上。
      • IO 读:从指定的 1/0 端口将数据读到数据总线上。
      • IO 写:将数据总线上的数据输出到指定的 1/0 端口内。
      • 传输响应:表示数据巳被接收,或巳将数据送至数据总线上。

另外:早期系统总线一般是并行的,现代一般使用串行的。现代的高时钟频率下,并行往往会产生时间偏差,而高频率又可以保证高速传输。

时期 主流总线类型 传输方式
1980s – 2000s ISA, EISA, PCI, FSB 并行
2000s – 现在 PCIe, UPI, DMI, SATA, NVMe, USB 3+ 串行

通信总线

  • 计算机系统与其他系统之间的通信,功能繁多,一般按照传输方式分,有:
  • 串行总线:单条 1 位宽的传输线上,一位一位地按顺序分时传送。
    • 适合远距离传输,费用低廉
    • 可以利用现有的电话网络实现通信
  • 并行总线:多条并行 1 位宽的传输线上,同时由源传送到目的。
    • 适合近距离传输(<30m)

3.3 总线相关指标

总线特性

  • 机械特性:连接方式上,比如插槽与插头的尺寸、形状、引脚个数等
    • 物理传输线:一根物理线一次只能传输 1bit,双向传输
    • 上文提到的单向传输是人为的设计
    • 总线的逻辑通道可以对应多个物理传输线
  • 电气特性:每一根传输线上信号的传输方向与有效电平范围
  • 功能特性:每一根传输线的功能。
    • 总线由许多个通路组成,这里定义每一个通路的功能,如地址总线。
  • 时间特性:任意一根线什么时间内有效,可用时序图描述。

性能指标

  • 总线宽度:总线宽度指总线能同时传输的二进制位数,通常由数据总线的物理线数决定。

    • 概念 宽度定义 示例
      数据总线宽度 同时传输的数据位数 64 位数据总线(64 根数据线)
      地址总线宽度 可寻址的地址范围 32 位地址总线 → 寻址 4GB 空间
      控制总线宽度 控制信号线的数量 如 PCIe 的 12 根控制线
  • 总线带宽:数据传输速率。单位时间内总线上传输数据的位数。

    • 例如,总线工作频率为 33 MHz ,总线宽度为 32bit,则总线带宽为 33*(32 ÷8) = 132 MBps
    • 易混淆单位:
      • 1Byte = 8bit
      • MB Megabyte,十进制,1MB = 1000*1000 Byte。MBps=MB/s
      • MiB Mebibyte,二进制,1MiB = 1024*1024 Byte。MiB/s
  • 时钟同步/异步:总线上的数据与时钟同步工作的总线称为同步总线,与时钟不同步工作的总线称为异步总线。

  • 总线复用:一条信号线上分时传送两种信号。也就是一根物理总线承担了多个逻辑上的通道的任务

  • 信号线数:三种系统总线的物理线数和

  • 总线控制方式:包括突发工作、自动配置、仲裁方式、逻辑方式、计数方式等。

  • 其他指标:如负载能力、电源电压(是采用 5V 还是 3.3 V) 、总线宽度能否扩展等。

相关标准

  • ISA 总线:
    • 独立时钟
    • 不支持多主设备
    • 需要总线控制器作为接口
  • EISA 总线:
    • 改进 ISA 总线,支持多主设备
  • VESA 总线:
    • 为视频传输设计,提高传输速度,将高速 IO 挂在在 CPU 上
    • 由 CPU 总线发展而来,与 CPU 直接连接
  • PCI 总线:
    • 与 CPU 时钟频率无关,自身采用 33 MHz 和 66 MHz 的总线时钟,数据线为
      32 位,与前者更高速。
    • 可扩展到 64 位,传输速率从 132 MBps(33 MHz,32bit)可升级到 528 MBps(66 MHz,64bit)。
    • 给出一个地址可以连续读取,无需每次读取都给出地址。
    • PCI 总线及其连接的设备(如网卡、显卡、声卡等)的通信机制和硬件设计,不依赖于处理器的具体架构或型号。
    • 支持即插即用
    • 支持多个对该总线有控制权的设备(主设备)
    • 具有与处理器和存储器子系统完全并行操作的能力
    • 支持奇偶数据校验
    • 可以使用多层结构扩充
    • 支持多路复用
  • AGP 总线:早期专门为图形传输设计
  • RS-232 总线:早期主要用于计算机与调制解调器、打印机等连接
  • USB 总线:
    • 不关机即插即用,自动安装驱动
    • 可以使用 USB 集线器(USB HUB)进行扩展
    • 标准统一
    • 电缆轻巧,体积小
    • 开放无专利接口,生命力强

3.4 总线结构

  • 分类

    • 单总线结构:随着当代的 IO 量增大逐步被淘汰

    • 双总线结构:将速度慢的 IO 总线独立开来,不影响主存总线

    • 三总线结构 1:为了应对某些高速 IO 设备,进一步进行区分

      • 这里的 DMA(远程内存直接访问)总线一般连接 固态硬盘、高速网卡等设备
    • 三总线结构 2:通过高速总线连接 CPU、缓存、高速 IO 设备。CPU 通过缓存与其他设备交互,更多的低速 IO 设备通过扩展接口与系统总线相连,扩展性更好

    • 四总线结构:与三总线结构 2 相比,更进一步细分了 IO 设备的速度,提供不同层级的连接

  • 举例

    • 传统 ISA EISA 总线
    • VL-BUS 总线
    • PCI 总线

3.5 总线控制

设备分类

  • 连接设备的分类
    • 主设备:发数据的设备
      • 发数据前,先向目标设备发送请求,收到回应后才开始传输数据
      • 有多个主设备发送请求时,由总线控制器判断优先级,分配使用权
    • 从设备:接收数据的设备

总线控制器分配优先级

  • 集中控制优先权
    • 链式查询

      • 逻辑:
        • BR 线:只要有设备要发出请求,就发一个 BR 线的高电平。所有设备的请求信号通过“逻辑或”关系合并到 BR 线上。控制器仅知道有设备要请求总线。
        • BG 线:控制器收到请求之后,返回 BG 信号。如果收到请求时 BS 线处于高电平,则忽略该请求。(也有其他复杂设计可能不会忽略请求)
        • BS 线:当 IO 设备受到 BG 许可时,持续拉高 BS 线,表明正在占用总线。
      • 特点:
        • 线路简单,对电路故障比较灵敏
        • IO 设备有明确的优先级,优先级低的设备可能饿死
    • 计数器定时查询

      • 逻辑:
        • 计数器:
          • 优先级一致方案:控制器中包含一个循环计数器,有 n 个 IO 设备的时候,计数顺序从 1 到 n,n 之后跟 1,这些数字表示 IO 接口的地址(编号)
          • 固定优先级方案:每次查询计数都从 0 开始,重置一次计数器。
        • BR 线:当控制器收到 BR 信号的时候,就开始递增计数器,每增一次就通过设备地址线发出计数器的值,IO 设备收到与自己地址相同的值的时候,表示获得控制权,持续发送 BS 信息
        • 如果控制器收到 BR 的时候 BS 高电平,则忽略请求(也有不忽略请求的实现)
      • 特点:
        • 支持比较灵活的优先级控制
        • 线路复杂,对线路故障不是很灵敏
    • 独立请求方式

    • 逻辑:

      • 优先级全部由控制器决定,IO 设备只需要发 BR 信号和接收 BG 信号就可以了
      • 控制器中可以设计队列电路等逻辑
    • 特点:

      • 排队逻辑实现更加灵活,响应快
      • 线路复杂,线数多

总线通信控制

总线通信控制主要解决通信双方如何获知传输开始和传输结束,以及通信双方如何协调如何配合。

  • 同步通信
    • 双方统一时标控制数据传送,时标一般由 CPU 发出,也可以由各个部件发出,但必须由总线控制部件发出的时钟信号对它们进行同步。
    • 一般在总线设计时,会有四个时钟周期。读与写的示意图如下
    • 同步通信传输速率计算方式:
      • 这个称比特率,单位一般使用 bps Bps MBps 等
  • 异步通信
    • 不要求双方时钟一致,所以需要先进行握手通信:当主模块发出请求信号时,一直等待从模块反馈回来“响应”信号后,才开始通信。这需要增加两条握手信号线。
    • 握手方式:
      • 不互锁:主设备发出指令后,过一段时间撤销(和从设备无关),从设备接收到指令后,回应一段时间后撤销(和主设备无关)
      • 半互锁:主设备发出指令后,收到从设备回应后撤销(被从设备锁住),从设备收到指令后,回应一段时间后撤销(和主设备无关)
      • 全互锁:主设备发出指令后,收到从设备回应后撤销(被从设备锁住),从设备收到指令后,主设备回应撤销后撤销(被主设备锁住)
    • 通信方式
      • 并行通信
      • 串行通信:握手成功后,一次传输一个数据帧。一个数据帧包括:1bit 开始位,5-8bit 数据位,1bit 校验位,1-2bit 终止位
    • 异步通信传输速率计算方式:
      • 这个称波特率,一般以 bps 为单位
    • 注意:
      • 波特率反映信号变化的频率(含附加位),适用于物理层传输。
      • 比特率反映有效信息的传输效率(仅数据位),适用于应用层数据评估。
      • 两者单位部分共用,比如 bps
  • 半同步通信
    • 在同步通信的基础上,降低总线的系统频率,并且添加了一条 WAIT 线。
    • WAIT 线:
      • 从设备控制 WAIT 线,WAIT 上面有信号就表示从设备在忙,需要等待。
      • 如主设备发送读取请求,从设备比较忙无法立即提供信息,则亮起 WAIT 线,主设备监测到 WAIT 线的时候就等待从设备。
      • 半同步通信一般用于工作速度不高,包含众多速度不一的从设备简单系统。
  • 分离式通信
    • 将原本的一段总线占用(主设备发信号,从设备准备数据,从设备返回信息)拆成两段(主设备发信号,从设备准备数据,从设备返回信息)。
    • 特点:
      1. 各模块欲占用总线使用权都必须提出申请。
      2. 在得到总线使用权后,主模块在限定的时间内向对方传送信息,采用同步方式传送,不再
        等待对方的回答信号。
      3. 各模块在准备数据的过程中都不占用总线,使总线可接受其他模块的请求。
      4. 总线被占用时都在做有效工作,或者通过它发送命令,或者通过它传送数据,不存在空闲
        等待时间
    • 提高总线占用效率,普通微计算机一般不采用这种控制方式。

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...