总线

需了解总线的组成、常见的总线标准以及定时方式,可能会在 CPU 和指令大题中作为知识点进行间接考察,也可能在选择题中出现一道。

基本概念

总线是一组电子导线或信号线,它们允许不同的硬件设备(如 CPU、内存、输入/输出设备等)之间进行数据传输和通信。总线是计算机内部和外部设备之间的信息传递通道。

总线分类

功能

  1. 核内总线:在处理器核内部各元件之间连线的总线称为核内总线,可连接核内各寄存器、ALU、指令部件等
  2. 系统总线:指连接 CPU、主存和 I/O 接口等主要部件的总线,通常所说的总线是指这类在系统主要模块之间互连的总线。下面要介绍的也是这种系统总线。
  3. 通信总线:计算机系统之间或计算机系统与其他系统(远程通信设备、测试设备)之间进行通信的总线,又称外部总线

数据传送方式

总线的数据传输方式包含 串行 和 并行 两种:

b1
b0
b2
b4
b3
b5
b6
b7
b0
b1
b2
b3
b4
b5
b6
b7
并行总线
串行总线
集中传输多位
逐位传输数据
  1. 串行总线:只含有一条双向数据线或两条单向数据线,数据按位分时传送。适合远距离通信,大多数通信总线属于串行总线
  2. 并行总线:含有多条双向数据线,可实现多位同时传送。传输效率高,但相邻数据线之间会相互干扰,适合近距离传输。大多数系统总线属于并行总线

试题中常常考查 哪些总线是串行总线,哪些总线是并行总线。

这里核心把握一点:现代高速通信几乎都使用串行总线(PCIe、USB、SATA、DisplayPort),而并行总线主要用于内存、老式设备或非常短距离的高速通信。

常见的串行总线 如下表所示:

总线类型简介
USB(通用串行总线)广泛用于外设连接,如鼠标、键盘、U盘。支持热插拔。
PCI Express (PCIe)高速内部总线,连接显卡、SSD 等。点对点串行通信。
SATA(串行ATA)硬盘、SSD 与主板间通信。取代并行ATA(PATA)。
Thunderbolt基于 PCIe 和 DisplayPort 的高速接口,可传输视频、数据。
DisplayPort、HDMI、DVI显示器接口,虽然传视频数据,但本质上是高速串行通信。

常见的并行总线 如下表所示:

总线类型简介
PCI(老式)并行总线,早期主板与扩展卡连接标准,已被 PCIe 取代。
ISA(工业标准架构)更早的并行总线,已淘汰。
IDE / PATA(并行ATA)老式硬盘连接方式,已被 SATA 取代。
内存总线(如 DDR)尽管速率非常高,但 DRAM 模块仍通过并行数据线传输数据(如 DDR4 有 64 数据线)。

时序控制方式

  1. 同步总线:采用公共的时钟信号进行定时,挂接在总线上的所有设备都从时钟线上获得定时信号
    • 总线定时以最慢设备所用时间为标准,因此适合于存取时间相差不大的多个功能部件之间的通信
    • 由于时钟偏移问题,导致同步总线不能过长,否则会降低总线传输效率
    • 同步总线常采用并行传输,即总线的数据条数为 8、16、32 或 64 位等
  2. 异步总线:总线上连接的各部件或设备没有统一的时钟,而是依靠各自内部的定时操作,通过信号握手的方式来进行规定的总线操作,从而完成部件或设备之间的数据传输
    • 由于同步并行总线使用快速且长的传输线时,会导致传送到另一端的波形发生变形,从而使得(并行传输的)所有位中最快和最慢的位信号之间的时间差较大,因此现在更多使用异步串行方式进行传输:串行–传输速率可更快 + 不会影响到其他位

总线架构方式

总线架构方式可以分成单总线、多总线 以及 分层结构三种。

单总线结构

外部设备1
外部设备2
外部设备n
CPU
主存
I/O 接口
I/O 接口
I/O 接口
单总线结构
  • 单总线结构中,所有处理器、主存储器和 I/O 设备 共用一条总线进行通信
  • 优点是结构简单、实现成本低,适用于设备数量少、通信量低的系统。
  • 缺点是所有设备必须轮流访问总线,存在通信冲突和带宽瓶颈,性能扩展性差。

多总线结构

磁盘
打印机
I/O 接口
I/O 接口
通道/IO 处理器
CPU
主存
多总线结构
系统总线
存储总线
I/O 总线
键盘
I/O 接口
DMA 总线
高速外设
高速外设
  • 多总线结构在单总线的基础上进行拓展,引入多条功能分化的总线,例如系统总线、I/O 总线、存储器总线等。
  • 常见做法是将 处理器与主存之间的数据传输 放在一条专用总线上(如 CPU-主存总线),而 I/O 设备通过桥接芯片连接至另一条总线(如 I/O 总线)。
  • 这样可以显著减轻主总线负载,提高系统并发性和吞吐能力。

分层总线结构

现代计算机系统广泛采用分层总线结构,其核心思想是在多总线结构的基础上进一步 细化总线的功能与等级,以更好适应不同设备对带宽和延迟的需求。

核心特点:

  • 将总线按速率和用途分层,如高速、中速、低速总线;
  • 各层通过 桥接控制器(如 PCH)进行协调;
  • 高速设备尽量绕过中间桥接器,直连 CPU 提高性能。

  • 高速设备的连接方式
    • 内存总线:使用 DDR4/DDR5 等内存通道,由集成在 CPU 内部的内存控制器(IMC)控制,实现低延迟高速访问;
    • 显卡:通过 PCIe 高速通道,直接连接到 CPU 的 PCIe 控制器,适用于图形、大数据等吞吐密集型场景;
    • 高速存储(如 NVMe SSD):通过 PCIe/NVMe 通道连接,可直连 CPU 或走 PCH。
  • 低速或通用设备的连接方式
    • 低速设备(如 USB、SATA、音频、网卡等)大多连接至 平台控制器集线器(PCH) 或 南桥芯片,再通过 DMI(Direct Media Interface)总线与 CPU 通信;
    • 这些设备不要求极高带宽,通过桥接方式集中管理,可简化主板设计并降低成本。

总线组成

系统总线通常由一组控制线、一组数据线和一组地址线构成。也有些总线没有单独的地址线,即数据线和地址线复用。

  1. 数据总线(Data Bus):数据总线用于在计算机系统的各个组件之间传输数据。它通常由多条并行线组成,每条线传输一个数据位(比特)。
    • 位数(数据总线条数)与机器字长、存储字长有关,一般是 8 位、16 位、32 位
  2. 地址总线(Address Bus):地址总线用于传输内存地址或外部设备的地址信息,以确定数据的存储位置或目标设备。
    • 地址总线的宽度决定了系统可以寻址的内存或设备的数量。更宽的地址总线通常允许系统寻址更多的内存或设备。
  3. 控制总线(Control Bus):控制总线传输控制信号和命令,用于控制各个硬件组件的操作。这些控制信号包括读/写信号、时钟信号、中断信号、复位信号等。控制总线用于协调数据传输和操作的序列。
注意

总线组成和总线架构的关系:

  • 在单总线架构中,所有的通信—包括数据、地址和控制信息—都通过同一个物理总线传输。这意味着数据总线、地址总线和控制总线的功能在一个共享的通道上实现。
  • 在多总线架构中,数据总线、地址总线和控制总线可能会分别拥有独立的物理通道,或者系统中可能存在专门的总线来处理不同类型的数据流。

常见总线标准

需要熟练掌握一些会考察的总线标准的名称:PCI、SATA、ISA、IDE、USB,并且能够和其他计算机领域的专业名词区分开来:

  1. PCI:PCI 总线是一种用于连接内部扩展卡(如显卡、网卡、声卡等)到主板的标准。PCI 总线存在多个版本,包括 PCI、PCI-X 和 PCI Express(PCIe),它们在带宽、速度和适用范围上有所不同。
  2. SATA:SATA 是一种用于连接存储设备(如硬盘驱动器和光盘驱动器)到计算机的总线标准。它广泛应用于个人电脑和服务器中。
  3. ISA:16 位体系结构,只能支持 16 位的 I/O 设备,是已经被淘汰的插槽接口。
  4. IDE:IDE 是早期计算机中用于连接硬盘驱动器和光盘驱动器的总线标准,现在已经被 SATA 所取代。
  5. USB:USB 是一种通用的总线标准,用于连接各种外部设备(如键盘、鼠标、打印机、存储设备等)到计算机。USB 有多个版本,包括 USB 1.0、USB 2.0、USB 3.0、USB 3.1 和 USB 3.2,它们在传输速度和功能上有所区别。
PCI
Peripheral Component Interconnect

长条形插槽,通常为长方形,长度较长,内部有多个金属触点,呈平行排列,用于插入扩展卡。边缘有一缺口,用于固定卡的位置。

SATA
Serial Advanced Technology Attachment

较小的 L 形连接器,扁平且细长,端口一侧有明显的 L 形弯角,内部有几根细小金属针脚,用于连接存储设备(如硬盘驱动器和光盘驱动器)到计算机。

USB
Universal Serial Bus

矩形接口,较为紧凑,内部有金属触点,常见为USB-A的扁平长方形设计,端口内部有塑料隔板和触点,用于连接各种外设如鼠标、键盘或U盘。

总线、协议、接口的区别

这三个概念是经常被混淆的概念,这里还是多提一嘴。简单来说,接口是硬件插入的位置,协议是软件层面用于通信的规则,总线是硬件之间的数据通路。下表给出一些常见例子来说明:

实际例子插槽/接口协议总线
SATA SSDSATA 接口AHCI 协议SATA 总线
M.2 SATA SSDM.2 插槽AHCI 协议SATA 总线
M.2 NVMe SSDM.2 插槽NVMe 协议PCIe 总线
PCIe 显卡PCIe 插槽PCIe 协议PCIe 总线
USB U盘USB-A 接口USB 协议(2.0/3.0/3.1 等)USB 总线

需要注意的是,有些名词(比如 SATA、PCIe、USB)是 混合性术语,既可以是总线,也代表了协议和接口;有些名词(比如 M.2) 仅仅是接口;有些名词(比如 NVMe)仅仅是协议。

总线事务

总线事务是计算机总线操作的一个基本单位。一个总线事务通常涉及一系列的操作,这些操作可以是数据的读取或写入。

在一个总线事务中,主设备(发起事务的设备)通过总线控制线对总线进行控制,并发出地址和数据,以及读写信号。从设备(数据被读取或写入的设备)则识别地址,并根据读写信号进行相应的数据交换。

总线事务包含几个主要阶段:

  1. 请求(Request):主设备发出总线传输请求。
  2. 仲裁(Arbitration): 如果多个设备同时尝试使用总线,它们必须通过某种仲裁过程来决定哪个设备有权控制总线。这通常涉及一个优先级方案,以防止冲突和数据损坏。
  3. 寻址(Addressing): 主设备将目标地址放在总线上,以指定事务的目的地,如特定的内存地址或 I/O 设备。
  4. 传输(Transfer): 一旦地址被确认,数据传输就会发生。这可以是读操作,也可以是写操作。
  5. 终止(Termination): 一旦数据成功传输,事务就会结束。终止阶段可能包括从设备发出的确认信号,或者主设备撤销其对总线的控制。

突发总线传输事务

突发(Burst)总线传输事务是指在总线通信中,一次性连续传输多个数据单元(通常是字节或字)而无需为每个数据单元单独发起请求或握手的过程。这种传输方式广泛应用于现代计算机体系结构中,以提高数据传输效率和总线利用率。

总线周期

总线周期是指 CPU 通过总线与存储器或 I/O 接口进行一次数据传输所需的时间。 一个总线周期通常包含多个时钟周期,这些时钟周期可以被分为四个阶段(四个时钟周期 $T_1, T_2, T_3, T_4$):

  1. 申请分配阶段:主设备进行请求和仲裁。
  2. 寻址阶段:主设备用地址信息来指明它想读/写的那个从设备是哪一个。
  3. 传输阶段:主设备向从设备发出读命令或者写命令。
  4. 结束阶段:主设备把地址信息、读写命令等从总线上撤除,让出总线的使用权。

总线定时

根据 时钟周期 一节可知,计算机中的设备也许并不使用相同的时钟周期,但是设备间在交换数据的过程中需要时间上配合。

这种时间配合的控制过程就叫做总线定时,总线定时包含 同步定时 和 异步定时 两种方式。

同步定时方式

在总线同步定时方式中,数据传输的时钟信号由一个中央时钟源(通常是主时钟源或总线控制器)生成,并将时钟信号传送到所有参与通信的设备。

这个时钟信号每次都产生一个相等的时间间隔,这个间隔为一个总线传输周期,主设备和从设备必须在这个限定的时间内完成规定的操作。

T1
T2
T3
T4
总线传输周期
时钟
地址
读命令
数据
  • $T_{1}$ 的上升沿到来时,主模块向从模块发送地址
  • $T_{2}$ 的上升沿到来时,主模块发送读命令
  • $T_{3}$ 的上升沿到来时,从模块提供数据
  • $T_{4}$ 的上升沿到来时,主模块撤销读命令,从模块撤销数据

同步通信适用于总线长度较短(出现信息错误的概率小)及总线所接部件的存取时间比较接近的系统。 如果有的从设备速度较慢,就会跟不上总线的节奏,进而拖慢了主设备的速度。

异步定时方式

在总线异步定时方式中,数据传输的时钟信号不是由中央时钟源统一控制,而是由每个设备自己的时钟信号驱动。完全依靠传送双方相互制约的“握手”信号来实现定时控制,通常我们将交换信息的两个设备称为主设备和从设备,主设备发送“请求”,从设备接收到后回复“回答”。

异步定时根据“请求”和“回答”的类型,可以分为三种类型:

  • 不互锁:主设备持续发送请求一段时间,默认从设备接收到请求。
  • 半互锁:主设备接收到来自从设备的回答后停止发送请求,从设备发送回答一段时间,默认主设备接收到回答。
  • 全互锁:从半互锁的基础上,从设备接收到来自于主设备的回答后停止发送回答。
不互锁
不互锁
半互锁
半互锁
不互锁
不互锁
主设备
主设备
从设备
从设备
Text is not SVG - cannot display