- 1. 什么是PCIe?
- 2. PCIe的硬件结构和关键参数
- 3. PCIe的工作原理
- 4. PCIe的发展历程及不同版本之间的关系
- 5. PCIe插槽 X1/X4/X8/X16之间的区别
- 6. PCIe在异构计算中作用和价值
1. 什么是PCIe?
PCIe,全称为 PCI-Express,中文名“高速外围组件互联扩展总线标准”。它是一种高速的点对点串行计算机扩展总线标准,旨在取代旧的PCI、PCI-X和AGP等并行总线标准。
它的核心价值在于为计算机内部需要高速通信的硬件组件(如图形卡、固态硬盘、网卡、采集卡等)提供一个高带宽、低延迟、可扩展的连接通道。可以说,PCIe是现代计算机内部高速数据传输的“高速公路系统”。
2. PCIe的硬件结构和关键参数
2.1. 硬件结构
PCIe的连接采用了一种点对点的拓扑结构,这与旧标准共享并行总线的方式完全不同。每个设备都通过自己专属的“链路”直接与根复合体(CPU内的控制器)通信,避免了总线争用。
一条PCIe链路由通道组成:
- 通道:每条通道由4根信号线组成(2对差分信号线,一对发送,一对接收)。
- 链路:一条链路可以包含1条、4条、8条或16条这样的通道,分别记为 x1, x4, x8, x16。通道数越多,带宽就越高。
关键硬件组件:
- 根复合体:通常集成在CPU中,是PCIe拓扑结构的“根”,连接着CPU和内存与所有PCIe设备。
- PCIe插槽:主板上不同长度的插槽,对应不同的通道数。
- PCIe设备:如显卡、NVMe SSD等。
- 交换机:用于扩展PCIe端口,允许多个设备连接到一个根复合体端口上。
2.2. 关键参数
- 传输速率:这是PCIe最核心的参数,通常用 GT/s 表示,即每秒传输多少次数据。注意,GT/s ≠ GB/s,因为数据在传输中会有编码开销(如128b/130b编码)。
- 带宽:我们通常关心的实际有效带宽。
- 单向带宽 = 传输速率 × 编码方案效率 ÷ 8(转换为字节)
- 双向带宽 = 单向带宽 × 2
- 通道数:即x1, x4, x8, x16,通道数直接与总带宽相乘。
- 延迟:点对点的连接方式带来了非常低的通信延迟,这对于GPU计算等领域至关重要。
3. PCIe的工作原理
PCIe的工作方式可以类比为高速公路上的快递车队:
分层结构:PCIe通信分为三层:
- 事务层:负责生成和解析数据包。它将CPU或设备的读写请求“打包”成事务层数据包。
- 数据链路层:负责数据包的错误检测和纠正,确保传输的可靠性。它会添加序列号和CRC校验码。
- 物理层:负责最终在物理链路上传输这些数据包,包括串行化/解串行化等。
数据包化:所有数据(无论是内存读写请求还是中断消息)都被分割并封装成一个个标准化的数据包。这种基于数据包的通信是其高效和可扩展的基础。
点对点传输:数据包通过专属的通道(Lane)发送,不会与其他设备发生冲突。接收端的设备会按照相反的过程,逐层解包,最终获取原始数据。
双向全双工:每个通道都包含独立的发送和接收线路,因此数据可以同时双向传输,互不干扰。
4. PCIe的发展历程及不同版本之间的关系
PCIe自2003年推出以来,大约每3-5年进行一次重大版本升级,主要目标是倍增每通道的带宽。
版本 | 推出年份 | 信号速率 | x1 单向带宽 | x16 单向带宽 | 特点 |
---|---|---|---|---|---|
PCIe 1.0 | 2003 | 2.5 GT/s | 250 MB/s | 4 GB/s | 取代AGP 8X和PCI |
PCIe 2.0 | 2007 | 5.0 GT/s | 500 MB/s | 8 GB/s | 带宽翻倍 |
PCIe 3.0 | 2010 | 8.0 GT/s | ~985 MB/s | ~15.75 GB/s | 采用更高效的128b/130b编码 |
PCIe 4.0 | 2017 | 16.0 GT/s | ~1.97 GB/s | ~31.5 GB/s | 带宽再次翻倍,NVMe SSD性能飞跃 |
PCIe 5.0 | 2019 | 32.0 GT/s | ~3.94 GB/s | ~63 GB/s | 主要面向AI、HPC、数据中心 |
PCIe 6.0 | 2022 | 64.0 GT/s | ~7.88 GB/s | ~126 GB/s | 引入PAM4调制和FEC纠错 |
版本之间的关系:
- 向后兼容:这是最关键的特性。更新的PCIe版本可以向前兼容旧的硬件,反之亦然。例如,一个PCIe 4.0的固态硬盘可以插在PCIe 3.0的主板上使用,但速度会限制在PCIe 3.0的水平;一个PCIe 3.0的显卡也可以插在PCIe 4.0的主板上,以PCIe 3.0的速度运行。
- 性能迭代:每一代的主要变化是信号速率翻倍,从而带来带宽的近似翻倍。
5. PCIe插槽 X1/X4/X8/X16之间的区别
5.1. PCIe插槽的针脚
PCIe的针脚由两部分组成。
- 数据通道针脚:负责高速差分信号传输。这部分又可以分为两类:
数据通道针脚
: 数量随通道数(x1, x4, x8, x16)线性增加,每个通道(Lane)4根针脚(TX+/TX-/RX+/RX-)。配套接地针脚
: 这部分针脚的主要功能是提供信号返回路径、隔离不同通道的信号、维持稳定的阻抗。针脚数量不固定(要考虑卡槽的各种硬件兼容性)。
- 公用辅助针脚:通常称为供电针脚,负责供电、时钟、系统管理、热插拔等,所有型号的PCIe插槽都完全一样,固定22个针脚。
5.2. X1/X4/X8/X16之间的区别
插槽类型 | 物理长度 | 总针脚数 | 数据针脚数 | 供电针脚数 | 主要用途 |
---|---|---|---|---|---|
PCIe X1 | 25mm | 36 | 14 | 22 | 独立网卡、声卡、USB扩展卡等 |
PCIe X4 | 39mm | 64 | 42 | 22 | PCIe SSD、M.2转接卡等 |
PCIe X8 | 56mm | 98 | 76 | 22 | 高端网卡、中端专业显卡等 |
PCIe X16 | 89mm | 164 | 142 | 22 | 主流显卡、高性能计算卡等 |
5.3. 物理外观与兼容性
主板上PCIe插槽的外观可能具有欺骗性。出于兼容性考虑,X4和X8插槽常常被做成X16长度的物理形态。这意味着你可能会在主板上看到一个很长的插槽,但其实际速度可能是x4或x8。判断实际速度的最佳方法是:
- 查阅主板说明书:这是最准确的方式。
- 观察插槽末端:未连接线路的针脚部分通常没有焊接或没有走线,仔细观察可以区分。
- 查看插槽附近的标识:很多主板会在插槽旁边或下方标明其实际通道数(如 “PCIEX4”)。
重要提示:
- 物理尺寸与电气规格:一个物理尺寸为x16的插槽,其电气规格可能不是x16。例如,很多主板的第二条“x16插槽”实际上只有x8甚至x4的通道数。设备会以两者中较小的通道数运行。
- 通道分配:主板的PCIe通道通常由CPU和芯片组提供,数量有限。当安装多个设备时,通道会被分配。例如,安装两块显卡可能使每条x16插槽都以x8模式运行。
6. PCIe在异构计算中作用和价值
异构计算是指使用不同类型的处理单元(如CPU、GPU、FPGA、AI加速器等)协同完成计算任务的计算模式。PCIe在其中扮演着 “数据枢纽” 的角色,其价值至关重要:
CPU与加速器之间的高速桥梁:
在AI训练、科学计算、图形渲染等场景中,CPU负责逻辑控制和任务调度,而大量的并行计算则由GPU等加速器完成。这需要海量数据在CPU内存和加速器显存之间频繁交换。PCIe的高带宽和低延迟直接决定了数据交换的效率,从而影响整个异构计算系统的性能。PCIe 4.0/5.0/6.0的迭代正是为了满足日益增长的数据吞吐需求。支持多加速器协同工作:
在数据中心和服务器中,经常需要多个GPU(如NVIDIA NVLink桥接或多卡系统)或不同种类的加速器(如CPU+GPU+FPGA)共同处理一个巨型任务。PCIe交换机允许这些加速器之间直接进行Peer-to-Peer通信,或者通过根复合体进行高效的数据交换,实现了计算资源的灵活池化和协同。低延迟是关键:
除了高带宽,低延迟对于异构计算同样重要。尤其是在推理或实时处理任务中,CPU向加速器发送指令和数据的延迟必须尽可能低,才能保证加速器能够被高效利用,避免“饥饿”等待数据。PCIe的点对点架构和精简协议栈天然具有低延迟优势。NVMe存储的基石:
NVMe协议是专为PCIe设计的固态硬盘接口。在异构计算中,训练数据集通常非常庞大,需要从超高速的NVMe SSD中快速加载到内存和显存中。PCIe为NVMe SSD提供了直达CPU的高速通道,避免了传统SATA接口的瓶颈,极大加速了数据预处理和加载流程。
总结:在异构计算架构中,PCIe不再是简单的扩展接口,而是连接所有计算单元和存储单元的核心主干网络,其性能直接决定了整个计算系统的效率和潜能。