本页目录

PCIe 与高速互联

PCIe 是什么

PCIe (PCI Express) — 现代计算机的高速串行总线,连接 CPU 与 GPU/SSD/网卡等外设。

PCIe 树形拓扑:单 Root Complex 下的设备层级 CPU PCIe RC Memory Controller Switch Endpoint (GPU) EP EP EP (NVMe SSD、网卡...) RC = Root Complex(根复合体,通常在 CPU 或 PCH 内);Switch = 交换芯片,向下扩展更多 PCIe 端口 EP = Endpoint(终端设备),即 Switch 下挂的 NVMe SSD、网卡等末端设备

Lane 与 Generation

Lane (通道)

PCIe 的最小单位是 1 条 Lane

x1:  1 lane
x4:  4 lane (常见: NVMe SSD)
x8:  8 lane
x16: 16 lane (常见: GPU)

每条 Lane 是独立的全双工串行链路
  TX+/TX- (发送) + RX+/RX- (接收) = 4 根信号线/Lane

x16 物理上 = 64 根信号线 (16×4)

各代速度

Gen速率/Lane (单工)带宽/Lane (双工)x16 带宽年代
1.02.5 GT/s250 MB/s4 GB/s2003
2.05.0 GT/s500 MB/s8 GB/s2007
3.08.0 GT/s~1 GB/s~16 GB/s2010
4.016.0 GT/s~2 GB/s~32 GB/s2017
5.032.0 GT/s~4 GB/s~64 GB/s2019
6.064.0 GT/s~8 GB/s~128 GB/s2022 (刚商用)
8b/10b (Gen1/2): 2.5 GT/s × 8/10 = 2 Gbps = 250 MB/s
128b/130b (Gen3+): 8 GT/s × 128/130 ≈ 7.88 Gbps ≈ 985 MB/s
→ Gen3+ 编码开销大幅降低

"GT/s" = 每秒千兆次传输 (包括编码开销)
"GB/s" = 每秒千兆字节有效数据

常见配置

消费级 CPU 典型 PCIe 通道数:
  AMD Ryzen: 24~28 lanes (其中 4 接 PCH, 16+4 给 GPU+NVMe)
  Intel Core: 16~20 lanes (其中 4 接 PCH)

显卡: x16 Gen4/5 (但 x8 通常够用, 性能损失 1~3%)
NVMe SSD: x4 Gen4/5 (Gen4 x4 = ~8 GB/s)
万兆网卡: x4 Gen3

向下兼容

Gen4 设备可插入 Gen3 插槽 → 降速到 Gen3
Gen3 设备可插入 Gen4 插槽 → 工作在 Gen3

链路训练 (Link Training):
  上电后两端自动协商 → 确定能跑的最高速度和最大 lane 数

物理层

信号

每 Lane:
  TX+ TX- : 差分发送 (AC 耦合, 电容隔直)
  RX+ RX- : 差分接收 (AC 耦合)

参考时钟: 100MHz (HCSL 或 LVDS 差分)
  Common Clock (同源) 或 Separate Clock (独立)
  现在多用 SRIS (Separate Refclk Independent SSC)

Gen3+ 使用 128b/130b 编码 + 扰码 (scramble)
无单独时钟线, 接收端从数据中恢复时钟 (CDR)

PCB 设计要点

PCIe 走线:
  - 差分对等长 (P/N 差 <5mil)
  - 特性阻抗: 85Ω 差分 (Gen3), 有时也 100Ω
  - 避免参考面不连续 (跨分割)
  - AC 耦合电容 (100nF~220nF) 靠近发送端
  - 过孔尽量少 (每个过孔破坏阻抗)

PCIe 协议层

三层模型:

事务层 (Transaction Layer):
  产生/消费 TLP (Transaction Layer Packet)
  地址路由 / ID 路由 / 隐式路由

数据链路层 (Data Link Layer):
  保证可靠传输
  ACK/NAK, 重传, CRC 校验
  产生/消费 DLLP

物理层 (Physical Layer):
  8b/10b 或 128b/130b 编码
  串并转换, 链路训练

常见应用

NVMe over PCIe

NVMe 协议运行在 PCIe 上
AHCI (SATA 的传统协议) 跑在 PCIe 上 → 被 NVMe 替代

NVMe 优势:
  - 64K 队列深度 (AHCI 仅 32)
  - 64K 队列数 (AHCI 仅 1)
  - 更低延迟 (无需访问 SATA 控制器)

GPU 连接

消费 GPU: x16 PCIe 直连 CPU
  Gen3 x16 = 16 GB/s (RTX 20/30 系列)
  Gen4 x16 = 32 GB/s (RTX 40 系列)
  Gen5 x16 = 64 GB/s (RTX 50 系列)

实际: 游戏场景下 Gen3 x8 几乎无性能损失
      Gen4 对于消费 GPU 主要是未来余量
      计算/ML 场景大带宽更关键 (多 GPU 互联)

Resizable BAR (Smart Access Memory)

传统: CPU 只能通过 256MB BAR 窗口访问 GPU 显存
ReBAR: CPU 可一次映射全部 GPU 显存 → 减少拷贝, 提升性能

需要: BIOS 支持 + GPU 驱动支持 + PCIe 支持

与 CPU 的连接

PCIe 与 CPU 的连接:直连 vs 走 PCH(Intel / AMD 对比) Intel CPU PCH(芯片组) DMI(本质=PCIe x8) PCIe x16(直连) PCIe x4(NVMe 直连) SATA/USB/Ethernet/WiFi 更多 PCIe lanes AMD CPU PCH PCIe x4(IF 总线) PCIe x16/x8 PCIe x4(NVMe) 类似 Intel 拓扑 (SATA/USB/更多 lanes) 直连 CPU 的 PCIe(独立 x16 显卡、CPU 直连 NVMe)= 更低延迟,最适合 GPU/NVMe; 走 PCH 的 PCIe(SATA/USB/网卡等)= 共享 DMI/IF 总线带宽,再上行到 CPU。

关键词: PCIe, Lane, GT/s, NVMe, Root Complex, Endpoint, 差分信号, ReBAR, Gen