本页目录
PCIe 与高速互联
PCIe 是什么
PCIe (PCI Express) — 现代计算机的高速串行总线,连接 CPU 与 GPU/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.0 | 2.5 GT/s | 250 MB/s | 4 GB/s | 2003 |
| 2.0 | 5.0 GT/s | 500 MB/s | 8 GB/s | 2007 |
| 3.0 | 8.0 GT/s | ~1 GB/s | ~16 GB/s | 2010 |
| 4.0 | 16.0 GT/s | ~2 GB/s | ~32 GB/s | 2017 |
| 5.0 | 32.0 GT/s | ~4 GB/s | ~64 GB/s | 2019 |
| 6.0 | 64.0 GT/s | ~8 GB/s | ~128 GB/s | 2022 (刚商用) |
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, Lane, GT/s, NVMe, Root Complex, Endpoint, 差分信号, ReBAR, Gen