什么是 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 ~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. 软件开发 - 实践驱动开发