一、PCIE特性
PCIE(PCI Express),是全双工的点对点协议,具有独立的发送端和接收端;
Lane是发送端与接收端之间的一个传输回路。由两组差分信号组成,如下图所示:

扩展:
之所以采用差分对而非传统的单端信号,主要有以下几个核心原因:
每条 Lane 由两对差分信号线(共 4 根线)组成:一对用于发送(TX+/TX-),一对用于接收(RX+/RX-)。
1、抗共模噪声
差分信号通过比较两根线之间的电压差 来判断逻辑"1"或"0",而不是像单端信号那样以地线为参考判断绝对电压。当外部电磁干扰(如内存刷新、邻近信号串扰)作用到差分对上时,干扰会同时、等量地耦合到两根线上,两根线的电压差几乎不变,干扰被天然抵消。
2、支持更高的工作频率
传统 PCI 并行总线使用单端信号,当频率提升到一定程度时,线间的时钟偏移(Skew) 和信号完整性问题会变得无法克服,频率被锁死在 133MHz 以内。而差分信号由于抗干扰能力强,配合内嵌时钟(通过 8b/10b 或 128b/130b 编码从数据流中恢复时钟),可以工作在 GHz 级别。PCIe Gen1 就达到了 2.5 GT/s,Gen6 更是达到了 64 GT/s。
3、更低的电压摆幅与功耗
差分信号的电压摆幅通常只有 0.4V~0.8V 左右,远低于传统单端信号的 3.3V 或 5V。更低的电压摆幅意味着更快的信号切换速度和更低的功耗。
两个设备之间的传输通道,称为Link,由1,2,4,8,16,32个Lane组成。lane的数目代表Link的传输宽度(x1,x2,x4,x8,x16,x32);
基于Packet的形式发送协议;

二、PCIE的体系结构
1、拓扑结构
Root Complex:PCIe 拓扑的绝对根节点,集成在 CPU 或芯片组(Chipset)内部。
- 将 CPU 的内存地址空间、I/O 空间和中断控制器映射到 PCIe 域。
- 生成和解析 TLP(事务层数据包),负责设备枚举、链路初始化和资源分配。
- 统一管理 PCIe 配置空间,操作系统通过 RC 访问下游设备的 BAR 寄存器、MMIO 内存映射空间。
Endpoint: 拓扑树上的末端功能实体。
- 响应来自 RC 的总线请求。
- 支持 DMA 主控传输和 P2P(Peer-to-Peer)设备直连。
- 高端设备支持 SR-IOV 虚拟化,可拆分为多个虚拟功能(VF)。
- 常见设备:独立显卡(GPU)、NVMe SSD、高速网卡、AI 加速卡、FPGA 等。
Switch: 用于扩展端口数量。
Bridge: 实现 PCIe 与传统 PCI/PCI-X 总线的协议转换。
2、协议分层
PCIe是一种封装分层协议,主要包括事务层、数据链路层和物理层。在PCIe体系结构中,数据报文首先在设备的核心层中产生,然后再经过该设备的事务层、数据链路层和物理层,最终发送出去。而接收端的数据也需要通过物理层、数据链路和事务层,并最终到达Device Core。
事务层:生成、解析和路由 TLP(事务层数据包)。
数据链路层:确保两个直连设备之间的可靠传输。
物理层:处理电信号的生成、接收、编解码和链路训练。
三、PCIE数据吞吐量的计算
1、PCIe 吞吐量计算公式:
单向吞吐量 (GB/s)=传输速率 (GT/s)×Lane 数量×编码效率8单向吞吐量 (GB/s)=8传输速率 (GT/s)×Lane 数量×编码效率
双向吞吐量 (GB/s)=单向吞吐量×2双向吞吐量 (GB/s)=单向吞吐量×2
其中:
- 传输速率:每条 Lane 的原始信号速率,如 2.5 GT/s、8 GT/s、64 GT/s 等。
- Lane 数量:链路宽度,如 x1、x4、x8、x16。
- 编码效率:有效数据位 / 总传输位数。
- 除以 8:将比特(bit)转换为字节(Byte)
在计算之前,需要先厘清几个容易混淆的单位:
GT/s(Giga Transfers per second):千兆传输/秒,描述物理层每秒传输的符号(Symbol)次数,是原始信号速率。
Gbps(Giga Bits per second):千兆位/秒,描述每秒传输的有效数据位数。
GB/s(Giga Bytes per second):千兆字节/秒,描述每秒传输的有效数据字节数(1 Byte = 8 bits)。
关键区别:GT/s ≠ Gbps。因为编码方案会引入开销位,实际有效数据速率(Gbps)总是低于原始传输速率(GT/s)。
2、各版本吞吐量速查表(单向)
| 版本 | 速率 | x1 | x4 | x8 | x16 |
|---|---|---|---|---|---|
| PCIe 1.0 | 2.5 GT/s | 250 MB/s | 1 GB/s | 2 GB/s | 4 GB/s |
| PCIe 2.0 | 5.0 GT/s | 500 MB/s | 2 GB/s | 4 GB/s | 8 GB/s |
| PCIe 3.0 | 8.0 GT/s | 985 MB/s | 3.94 GB/s | 7.88 GB/s | 15.75 GB/s |
| PCIe 4.0 | 16 GT/s | 1.97 GB/s | 7.88 GB/s | 15.75 GB/s | 31.51 GB/s |
| PCIe 5.0 | 32 GT/s | 3.94 GB/s | 15.75 GB/s | 31.51 GB/s | 63.02 GB/s |
| PCIe 6.0 | 64 GT/s | 7.88 GB/s | 31.51 GB/s | 63.02 GB/s | 126.04 GB/s |
