2. Gen3链路训练核心机制:Gen3特有的均衡(Equalization)过程、相位1/2/3详解、Preset与Coefficient概念
Gen3(PCIe 3.0)将信号速率提升至 8 GT/s,采用 128b/130b 编码。在此速率下,信号经过PCB走线、连接器、过孔等传输介质后,会产生严重的码间干扰(ISI)和信号衰减。为了在接收端正确恢复数据,Gen3 引入了 链路均衡(Equalization) 机制,这是 Gen3 链路训练区别于 Gen1/Gen2 的核心所在。
2.1 均衡(Equalization)的必要性
在 8 GT/s 速率下,信号的眼图在未均衡时几乎闭合。均衡的作用是通过补偿信道的高频损耗,打开眼图,降低误码率(BER)。Gen3 均衡分为两部分:
- 发送端均衡(Tx Equalization): 通过调整发送信号的幅度和去加重程度,预补偿信道的高频衰减。由 Preset 和 Coefficient 控制。
- 接收端均衡(Rx Equalization): 接收端通过 CTLE 和 DFE 对收到的信号进行再均衡,消除 ISI。接收端会向发送端反馈请求,要求调整发送参数。
2.2 均衡的三个相位(Phase 1/2/3)详解
Gen3 均衡过程在 LTSSM 的 Recovery 状态或 Equalization 状态下进行,分为三个连续的相位。每个相位都有明确的目标和握手协议。
| 相位 | 名称 | 目标 | 关键动作 | 持续时间 |
|---|---|---|---|---|
| Phase 1 | Preset 交换 | 交换发送端 Preset 能力 | Upstream/Downstream 各自发送支持的 Preset 列表;选择共同支持的 Preset | ~ 几微秒 |
| Phase 2 | Tx 均衡 | 调整发送端 Coefficient | 接收端发送 Coefficient 请求(C-1, C0, C+1);发送端调整后发送训练序列(TS1/TS2) | ~ 几十微秒 |
| Phase 3 | Rx 均衡 | 接收端 DFE 收敛 | 接收端调整 CTLE/DFE;发送端发送特定数据模式协助收敛 | ~ 几百微秒 |
2.3 Preset 与 Coefficient 概念
Preset 和 Coefficient 是 Gen3 均衡中控制发送端信号质量的两个核心参数。它们共同决定了发送端 FFE(Feed-Forward Equalizer)滤波器的抽头系数。
2.3.1 Preset(预置)
Preset 是一组预定义的 FFE 抽头系数组合,由 PCIe 规范定义。发送端和接收端在 Phase 1 中交换各自支持的 Preset 列表,并选择一个双方都支持的 Preset 作为初始均衡参数。Preset 提供了快速启动均衡的基准点。
- 定义: Preset 是 8 种预定义的 FFE 系数组合(Preset 0 ~ Preset 7),每种 Preset 对应一组固定的 C-1、C0、C+1 值。
- 作用: 作为均衡的起点,避免从零开始搜索,加快训练速度。
- 选择规则: 接收端根据自身能力和信道特性,从发送端支持的 Preset 列表中选择一个。通常选择去加重程度适中的 Preset(如 Preset 4 或 Preset 5)。
| Preset 编号 | C-1 (Pre-cursor) | C0 (Main cursor) | C+1 (Post-cursor) | 去加重程度 |
|---|---|---|---|---|
| 0 | 0.00 | 1.00 | 0.00 | 无 |
| 1 | 0.00 | 0.85 | 0.15 | 轻度 |
| 2 | 0.00 | 0.70 | 0.30 | 中度 |
| 3 | 0.00 | 0.55 | 0.45 | 重度 |
| 4 | 0.05 | 0.80 | 0.15 | 轻度 + 预加重 |
| 5 | 0.05 | 0.65 | 0.30 | 中度 + 预加重 |
| 6 | 0.10 | 0.70 | 0.20 | 中度 + 预加重 |
| 7 | 0.15 | 0.60 | 0.25 | 重度 + 预加重 |
2.3.2 Coefficient(系数)
Coefficient 是 FFE 滤波器的三个抽头系数:C-1(预光标)、C0(主光标)、C+1(后光标)。在 Phase 2 中,接收端通过发送训练序列(TS1/TS2)中的 Coefficient 字段,向发送端请求调整这些系数。
- C-1 (Pre-cursor): 控制前一个比特对当前比特的影响。正值表示预加重,用于补偿高频衰减。
- C0 (Main cursor): 当前比特的幅度。通常最大,是信号的主要分量。
- C+1 (Post-cursor): 控制后一个比特对当前比特的影响。正值表示去加重,用于减小 ISI。
Coefficient 的调整遵循以下规则:
- 接收端通过 TS1 有序集中的 Coefficient 字段发送请求(Request)。
- 发送端收到请求后,在下一个 TS2 有序集中回复当前实际使用的 Coefficient 值(Current)。
- 如果接收端对调整后的结果满意,则发送 Preset Done 或 Coefficient Done 标志,结束 Phase 2。
2.4 均衡失败与降速机制
如果 Gen3 均衡在任何一个相位失败(例如 Phase 2 中 Coefficient 无法收敛,或 Phase 3 中 DFE 无法锁定),链路不会无限重试。PCIe 规范定义了明确的降速策略:
- 重试次数限制: 每个相位都有最大重试次数(通常为 24 次)。超过次数后,该相位被视为失败。
- 降速至 Gen2: 一旦 Gen3 均衡失败,LTSSM 会回退到 Recovery 状态,然后尝试以 Gen2 速率(5 GT/s)重新训练。此时链路将工作在 Gen2 速率,不再尝试 Gen3。
- 驱动通知: 驱动可以通过检查 Link Status 寄存器中的 Link Speed 字段(若为 0x02 表示 Gen2)以及 Equalization Complete 位(若为 0 表示未完成)来检测均衡失败。