高速接口:PCIe 3.0 Link Training的详细过程
PCIe 3.0链路训练(Link Training)的详细过程
PCIe链路训练(Link Training)是物理层自动协商链路参数的关键过程,确保两端设备(如根复合体和端点)能以最优速率和配置建立稳定连接。PCIe 3.0的链路训练在兼容前代协议的基础上,引入了更复杂的均衡(Equalization)机制以支持8.0 GT/s的高速率。以下是详细步骤:
1. 链路训练的三个核心阶段
-
(1) 接收器检测(Receiver Detect)
设备上电后,通过检测电路确认对端设备的存在。若检测到有效接收器,双方以PCIe Gen1的默认速率2.5 GT/s启动通信。 -
(2) 轮询(Polling)
双方交换训练序列(TS1/TS2有序集),完成以下操作:- 位锁定(Bit Lock):接收端通过数据流恢复发送端时钟,确保正确采样数据比特。
- 符号/块锁定:
- PCIe 1.0/2.0使用8b/10b编码,需通过COM符号确定符号边界(Symbol Lock)。
- PCIe 3.0及更高版本采用128b/130b编码,通过查找EIEOS(Electrical Idle Exit Ordered Set)实现块锁定(Block Lock)。
-
(3) 配置(Configuration)
- 链路宽度协商:确定双方支持的最大通道数(如x8),并分配链路号(Link Number)和通道号(Lane Number)。
- 通道去偏斜(De-skew):补偿多通道因布线差异导致的信号延迟,确保并行数据对齐。
- 极性反转:自动纠正差分信号极性(D+/D-反接)。
2. 链路均衡(Link Equalization)
PCIe 3.0及以上版本需通过均衡过程优化高速信号质量,分为四个阶段:
- Phase 0:主机(Downstream Port)发送初始预设参数,设备(Upstream Port)响应并调整。
- Phase 1:双方交换均衡系数(如预加重、去加重),初步提升速率至8.0 GT/s。
- Phase 2/3(可选):进一步优化信号质量,通过迭代调整参数(如Cursor、Post-Cursor)降低误码率至10⁻¹²以下。
- Bypassing(PCIe 5.0+):若支持,可跳过中间速率直接协商最高速率,缩短训练时间。
3. 进入L0状态
完成上述步骤后,链路进入L0状态,开始正常数据传输。若链路需要调整速率或宽度,会触发恢复(Recovery)状态重新训练。