2. PCIe物理层基础:差分信号对、Lane(通道)概念、Lane反转与极性反转机制
PCIe物理层是链路训练的基础,它定义了数据在电气层面如何传输。理解差分信号、Lane的构成以及反转机制,是掌握速率协商与回退的前提。本节将深入剖析这些核心概念。
2.1 差分信号对(Differential Pair)
PCIe采用低压差分信号(LVDS)技术进行数据传输。与单端信号不同,差分信号使用两根物理导线(P和N)来传输一个逻辑信号。
- 工作原理:发送端在P线上发送正相信号,在N线上发送反相信号。接收端通过比较两根线上的电压差(VP - VN)来判定逻辑“0”或“1”。
- 抗干扰能力强:外部噪声会同时耦合到P和N线上,由于接收端只关心电压差,共模噪声被抵消。
- 低功耗与高速度:差分信号摆幅小(典型值约800mV-1.2V),适合高频切换,支持从Gen1(2.5 GT/s)到Gen5(32 GT/s)的高速传输。
关键点:差分信号对是PCIe物理层的最小电气单元。一个发送差分对和一个接收差分对共同构成一个完整的Lane。
2.2 Lane(通道)概念
Lane是PCIe链路的基本数据通道单元。一个Lane由两组差分信号对组成:一组用于发送(Tx),一组用于接收(Rx)。
- 单工与全双工:Tx和Rx是独立的物理通道,支持同时双向通信(全双工)。
- Lane宽度:链路可以由多个Lane绑定而成,常见的宽度有x1、x2、x4、x8、x16。例如,x16链路包含16个Lane,共32对差分线。
- 独立训练:每个Lane在链路训练状态机(LTSSM)中独立进行位锁定、符号锁定和块锁定,但速率协商是全局的。
| Lane宽度 | Tx差分对数 | Rx差分对数 | 总差分线数 | 典型应用 |
|---|---|---|---|---|
| x1 | 1 | 1 | 4 | 网卡、NVMe SSD |
| x4 | 4 | 4 | 16 | M.2插槽、RAID卡 |
| x8 | 8 | 8 | 32 | GPU(中端)、存储控制器 |
| x16 | 16 | 16 | 64 | GPU(高端)、主板插槽 |
2.3 Lane反转机制(Lane Reversal)
在PCB布局时,为了简化走线或优化信号完整性,允许将Lane的物理顺序进行反转。例如,x16插槽的Lane 0可以连接到设备的Lane 15,Lane 1连接到Lane 14,以此类推。
- 触发条件:链路训练期间,LTSSM在Polling.Active子状态检测到Lane顺序错位。
- 协商过程:设备通过交换训练序列(TS1/TS2)中的Lane编号字段来识别反转。如果检测到Lane编号递减,则启用Lane反转。
- 硬件支持:PCIe规范要求所有设备必须支持Lane反转,以确保PCB设计的灵活性。
设计优势:Lane反转允许PCB走线“绕弯”,避免复杂的等长布线,降低设计难度和成本。
2.4 极性反转机制(Polarity Inversion)
极性反转发生在差分对内部。当P线和N线在PCB上被意外交换时,接收端必须能够自动纠正。
- 检测方法:在训练阶段,接收端通过检测训练序列中的符号模式来判断极性。如果接收到的数据是反相的,则启用极性反转。
- 纠正方式:接收端在内部逻辑中将P和N信号交换,恢复正确的数据极性。这个过程对上层协议完全透明。
- 独立配置:每个Lane的极性可以独立反转,不受其他Lane影响。
| 特性 | Lane反转 | 极性反转 |
|---|---|---|
| 作用范围 | 多个Lane之间的顺序 | 单个Lane内部的差分对 |
| 物理表现 | Lane 0 ↔ Lane N | P线 ↔ N线 |
| 检测时机 | Polling.Active(TS序列交换) | Polling.Active(符号锁定) |
| 对速率影响 | 无直接影响 | 无直接影响 |
| 是否必须支持 | 是(规范强制) | 是(规范强制) |
注意:Lane反转和极性反转都是在链路训练阶段自动完成的,不需要软件干预。如果设备不支持这些机制,将导致链路训练失败,无法建立连接。
2.5 小结
物理层基础是理解PCIe链路训练的基石。差分信号对提供了高速抗干扰的传输能力;Lane作为基本数据通道,支持灵活的宽度配置;Lane反转和极性反转机制则保证了PCB设计的自由度,同时确保链路能够正确建立。这些机制共同为后续的速率协商和回退提供了可靠的物理环境。