Sorry, your browser cannot access this site
This page requires browser support (enable) JavaScript
Learn more >

1. 什么是PCIe?

PCIe,全称为 PCI-Express,中文名“高速外围组件互联扩展总线标准”。它是一种高速的点对点串行计算机扩展总线标准,旨在取代旧的PCIPCI-XAGP并行总线标准。

它的核心价值在于为计算机内部需要高速通信的硬件组件(如图形卡、固态硬盘、网卡、采集卡等)提供一个高带宽、低延迟、可扩展的连接通道。可以说,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的工作方式可以类比为高速公路上的快递车队

  1. 分层结构:PCIe通信分为三层:

    • 事务层:负责生成和解析数据包。它将CPU或设备的读写请求“打包”成事务层数据包
    • 数据链路层:负责数据包的错误检测和纠正,确保传输的可靠性。它会添加序列号和CRC校验码。
    • 物理层:负责最终在物理链路上传输这些数据包,包括串行化/解串行化等。
  2. 数据包化:所有数据(无论是内存读写请求还是中断消息)都被分割并封装成一个个标准化的数据包。这种基于数据包的通信是其高效和可扩展的基础。

  3. 点对点传输:数据包通过专属的通道(Lane)发送,不会与其他设备发生冲突。接收端的设备会按照相反的过程,逐层解包,最终获取原始数据。

  4. 双向全双工:每个通道都包含独立的发送和接收线路,因此数据可以同时双向传输,互不干扰。

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在其中扮演着 “数据枢纽” 的角色,其价值至关重要:

  1. CPU与加速器之间的高速桥梁
    在AI训练、科学计算、图形渲染等场景中,CPU负责逻辑控制和任务调度,而大量的并行计算则由GPU等加速器完成。这需要海量数据在CPU内存和加速器显存之间频繁交换。PCIe的高带宽和低延迟直接决定了数据交换的效率,从而影响整个异构计算系统的性能。PCIe 4.0/5.0/6.0的迭代正是为了满足日益增长的数据吞吐需求。

  2. 支持多加速器协同工作
    在数据中心和服务器中,经常需要多个GPU(如NVIDIA NVLink桥接或多卡系统)或不同种类的加速器(如CPU+GPU+FPGA)共同处理一个巨型任务。PCIe交换机允许这些加速器之间直接进行Peer-to-Peer通信,或者通过根复合体进行高效的数据交换,实现了计算资源的灵活池化和协同。

  3. 低延迟是关键
    除了高带宽,低延迟对于异构计算同样重要。尤其是在推理或实时处理任务中,CPU向加速器发送指令和数据的延迟必须尽可能低,才能保证加速器能够被高效利用,避免“饥饿”等待数据。PCIe的点对点架构和精简协议栈天然具有低延迟优势。

  4. NVMe存储的基石
    NVMe协议是专为PCIe设计的固态硬盘接口。在异构计算中,训练数据集通常非常庞大,需要从超高速的NVMe SSD中快速加载到内存和显存中。PCIe为NVMe SSD提供了直达CPU的高速通道,避免了传统SATA接口的瓶颈,极大加速了数据预处理和加载流程。

总结:在异构计算架构中,PCIe不再是简单的扩展接口,而是连接所有计算单元和存储单元的核心主干网络,其性能直接决定了整个计算系统的效率和潜能。

评论