什么是 PCI Express?

PCI Express(Peripheral Component Interconnect Express,简称PCIe)是一种高速串行计算机扩展总线标准,用于连接计算机内部的各种硬件设备。它由Intel等公司发起,由PCI-SIG组织制定和维护。

与传统并行总线(如PCI、PCI-X)不同,PCIe采用点对点串行架构,每个设备拥有独立的通信通道,避免了总线竞争问题,能够提供更高的带宽和更好的扩展性。

核心特性

点对点架构

每个设备独享链路带宽,无总线竞争

全双工通信

发送和接收同时进行,双向带宽独立

可扩展带宽

通过x1/x2/x4/x8/x16等链路宽度扩展带宽

向后兼容

新版本设备可在旧版本插槽工作(降速)

热插拔支持

支持运行时设备插拔

分层协议

事务层、数据链路层、物理层分层设计

代际演进

版本 发布年份 单Lane速率 编码方式 x16单向带宽
Gen1 2003 2.5 GT/s 8b/10b 4 GB/s
Gen2 2007 5.0 GT/s 8b/10b 8 GB/s
Gen3 2010 8.0 GT/s 128b/130b ~16 GB/s
Gen4 2017 16.0 GT/s 128b/130b ~32 GB/s
Gen5 2019 32.0 GT/s 128b/130b ~64 GB/s
Gen6 2022 64.0 GT/s PAM4 + FLIT ~128 GB/s

协议栈架构

PCIe协议采用分层架构,由三个主要层组成:

事务层 (Transaction Layer)

负责TLP(事务层包)的组装和解包。处理Memory、I/O、Configuration等读写请求,管理虚拟通道和流量控制。

数据链路层 (Data Link Layer)

提供可靠的数据传输机制。通过序列号、LCRC校验和Ack/Nak协议实现错误检测和重传。管理流量控制信用。

物理层 (Physical Layer)

处理数据的编码和电气传输。包含逻辑子层(编码、扰码)和电气子层(SerDes、驱动器)。负责链路训练和状态管理。

常见应用

存储

NVMe SSD、RAID控制器

网络

高速网卡(10G/25G/100G/400G)

图形

独立显卡(GPU)

AI加速

TPU、AI推理/训练卡

下一步

推荐阅读顺序

  1. 架构概览 - 理解PCIe软硬件架构全貌
  2. 基础知识 - 深入了解拓扑结构和协议细节
  3. 配置空间 - 学习设备枚举和配置机制
  4. 软件开发 - 三大开发方向导航
理解检测
1. PCIe 采用点对点架构,以下哪个描述是正确的?
PCIe 采用点对点串行架构,每个设备拥有独立的通信通道(Link),独享带宽,不存在总线竞争问题。这与传统 PCI/PCI-X 的共享总线架构形成鲜明对比。点对点架构也支持热插拔。
2. 从 Gen3 开始,PCIe 为什么从 8b/10b 编码切换到 128b/130b 编码?
8b/10b 编码有 20% 的编码开销,在高速率下带宽浪费严重。128b/130b 仅添加 2 位同步头,编码开销降至 1.54%,大幅提升有效带宽。代价是直流平衡改由扰码器实现,对 CDR 电路要求更高。
3. PCIe 协议栈的正确分层顺序(从上到下)是?
PCIe 协议栈从上到下为:事务层(TLP 组装/解包)→ 数据链路层(序列号、LCRC、Ack/Nak)→ 物理层(编码、串行化、电气传输)。发送时自上而下加封装,接收时自下而上解封装。