PCIe 概述
PCIe(Peripheral Component Interconnect Express),即外围组件互联高速标准,是一种高速串行计算机扩展总线标准。它旨在取代旧的 PCI、PCI-X 和 AGP 总线标准,成为现代计算机系统中连接高速外设的主要内部接口。
核心特点
- 高速串行:采用点对点串行连接,每个设备都有专用通道,避免了总线共享的带宽争用问题。
- 分层架构:分为事务层、数据链路层和物理层,这种设计使其具有高度的可扩展性和可靠性。
- 可扩展带宽:通过增加通道数(x1, x4, x8, x16, x32)和提升代际(Gen)来大幅增加带宽。通道数好比车道数,代际好比每车道的速度。
- 热插拔支持:允许在系统运行时添加或移除设备(需要操作系统和硬件支持)。
第一部分:核心设计理念与演变
PCIe 的核心是彻底摒弃了传统的并行共享总线。旧式的 PCI 总线如同一条所有设备并联的“宽马路”,带宽共享,时钟同步困难,频率难以提升。PCIe 则采用了高速差分串行点对点连接。
- 点对点:每个设备(或插槽)都通过专用通道与交换器(Switch)或根复合体(Root Complex,可理解为CPU内的PCIe控制器)连接。这消除了总线争用,允许多个设备同时全速通信。
- 高速串行:通过提高单条链路的信号速率来提升带宽。虽然并行总线用多条线同时传输,但信号同步是瓶颈。串行总线在一条差分信号对(两根线,发送正反信号以提高抗干扰)上以极高频率传输,并通过先进的编码/解码技术保证数据完整性。
- 可扩展性:通过增加通道数(Lane)和协议代际(Generation)来线性增加带宽。
第二部分:协议架构(核心分层模型)
PCIe 采用三层分层模型,与网络 OSI 模型类似,各层分工明确,便于迭代升级。
- 事务层
- 作用:处理上层软件(操作系统、驱动程序)的通信请求。它将请求打包成事务层数据包 或接收 TLP。
- 核心功能:
- 流量控制:确保发送方不会淹没接收方,通过信用机制管理。
- 虚通道管理:允许不同类型的数据流共享物理链路,区分优先级。
- 事务类型:支持多种事务,如存储器读写、I/O读写、配置读写、消息、完成等。其中存储器读写是显卡和 NVMe SSD 性能的关键。
- 数据链路层
- 作用:保证 TLP 在两点间可靠传输。它为 TLP 添加序列号和 CRC 校验码,形成数据链路层数据包。如果接收方未正确接收,会请求重发。
- 核心功能:
- 错误检测与纠正:通过 ACK/NAK 协议确保数据完整性。
- 链路管理:初始化、训练、电源管理等。
- 物理层
- 作用:处理数据在物理介质(电路板走线、连接器)上的实际电气传输。
- 核心部分:
- 逻辑子层:负责编码/解码。这是 PCIe 历代升级的关键之一。从 Gen1-2 的 8b/10b 编码(每 8 位数据用 10 位传输,20%开销),到 Gen3 的 128b/130b 编码(开销仅 ~1.5%),再到 Gen5-6 的脉冲幅度调制 4 位元 编码,都是为了在更高频率下更高效地利用带宽。
- 电气子层:包含驱动器和接收器,处理差分信号的发送与接收。
- 物理接口:就是我们看到的“金手指”。每个通道 由 4 条线组成:2 条用于发送的差分对,2 条用于接收的差分对,构成一个全双工通信链路。
第三部分:通道、带宽与版本详解
这是理解性能的关键。
- 通道:一个通道是数据传输的最小单位。x1,x4,x8,x16 表示设备使用的通道数量。它直接决定了“数据管道的宽度”。
- 速率:以 GT/s 表示。这是物理层电气信号的实际切换速率,不代表有效数据速率。
- 有效带宽:GT/s 经过编码方案解码后,得到的实际数据速率,单位是 GB/s。
带宽计算示例(关键): PCIe 3.0 x4 链路的带宽是多少?
- 单通道信号速率 = 8.0 GT/s
- 采用 128b/130b 编码,效率 = 128/130 ≈ 98.46%
- 单通道单向有效带宽 = 8.0 GT/s * (128/130) / 8 ≈ 0.985 GB/s
- x4 通道单向带宽 = 0.985 GB/s * 4 ≈ 3.94 GB/s
- x4 通道双向带宽 = 3.94 GB/s * 2 ≈ 7.88 GB/s
- 这就是一块主流 NVMe SSD(如 PCIe 3.0 x4)的理论速度上限约 3.5-3.5 GB/s 的来源。
代际演进与典型应用
| 版本 | 编码方案 | 开销 | 单通道有效带宽 (GB/s) | 升级核心 | 物理层挑战 |
|---|---|---|---|---|---|
| Gen1/2 | 8b/10b | 20% | 0.25 / 0.5 | 奠定基础 | 相对简单 |
| Gen3 | 128b/130b | ~1.54% | ~0.985 | 编码革命,效率大幅提升 | 信号完整性要求提高 |
| Gen4 | 128b/130b | ~1.54% | ~1.969 | 速率翻倍,主板布线是关键 | 损耗严重,需重定时器等 |
| Gen5 | 128b/130b | ~1.54% | ~3.938 | 速率再翻倍,进入服务器/数据中心主流 | 极高频率,损耗和串扰巨大 |
| Gen6 | PAM4 1b/1b + FEC | 极低* | ~7.563* | 从 NRZ 到 PAM4,单周期传 2 比特 | 信号噪声容限小,需前向纠错 |
PCIe 6.0 通过 PAM4 和 FLIT 模式实现效率的又一次飞跃。
第四部分:系统拓扑与关键组件
现代计算机的 PCIe 拓扑像一棵树:
- 根复合体:树的“根”,通常集成在 CPU 中。它连接着 CPU 内存子系统,是 PCIe 流量的起点/终点。CPU 提供的 PCIe 通道数(如 20 条)是系统的核心资源。
- 交换器:树的“枝干”,用于扩展。一个上游端口连接根复合体,多个下游端口可以连接多个端点设备(如显卡、SSD)或其他交换器。它负责路由 TLP。
- 端点设备:树的“叶子”,即各种 PCIe 设备本身。
- 主板芯片组:芯片组(如 Z790、B650)本身也通过有限的 PCIe 通道(如 DMI 总线,本质是 x4 的 PCIe)与 CPU 相连。芯片组再扩展出更多的、带宽通常较低的 PCIe 通道(如用于网卡、声卡、SATA 控制器),并管理 USB、SATA 等低速设备。
一个重要概念:CPU 直连 vs. 芯片组连接
- CPU 直连:显卡插槽和第一个 M.2 插槽通常直接连接到 CPU 的 PCIe 通道。延迟最低,带宽最高,不受芯片组共享带宽的影响。
- 芯片组连接:其他插槽和设备通过芯片组连接,共享芯片组到 CPU 的那条 x4 DMI 总线的带宽。多个高速设备同时工作时可能成为瓶颈。
留下评论