3. Preset 校准概述:什么是 Preset?Preset 在 PCIe 链路训练中的作用、Preset 与 Tx EQ 的关系
3.1 什么是 Preset?
在 PCIe 链路训练(Link Training)的早期阶段,发送端(Tx)和接收端(Rx)尚未建立稳定的高速连接。此时,链路两端的均衡(Equalization)参数无法通过协商确定。为了解决这一“先有鸡还是先有蛋”的问题,PCIe 规范定义了一组预定义的、固定的发送端均衡系数组合,称为 Preset。
Preset 本质上是一组 Tx EQ 的初始系数,包括去加重(De-emphasis)或预加重(Pre-emphasis)的幅度设置。这些系数被固化在芯片的硬件寄存器中,无需软件干预即可在复位后快速加载。Preset 的主要目的是在链路训练的 Polling 状态 和 Configuration 状态 中,提供一个稳定且可预测的信号质量基线,使得接收端能够成功检测到信号并完成位锁定(Bit Lock)和符号锁定(Symbol Lock)。
关键概念: Preset 不是“最优”的均衡设置,而是“足够好”的初始设置。它保证了链路在最差信道条件下也能建立基本连接,为后续的精细均衡(Coefficient Update)铺平道路。
3.2 Preset 在 PCIe 链路训练中的作用
Preset 在链路训练流程中扮演着“启动器”的角色。其核心作用可以归纳为以下三点:
- 建立初始通信: 在链路训练开始时,发送端必须使用一个双方都已知的 Preset 来发送训练序列(TS1/TS2)。接收端则基于这个已知的 Preset 来调整其接收均衡器(CTLE/DFE),从而正确解码训练序列。
- 提供统一的参考起点: 所有兼容的 PCIe 设备都必须支持相同的 Preset 集合。这确保了不同厂商的设备在链路训练初期能够“说同一种语言”,避免了因均衡参数不匹配导致的链路无法建立。
- 支持链路速率协商: 当链路从低速(如 2.5 GT/s)向高速(如 8 GT/s 或更高)切换时,发送端会切换到对应速率下的 Preset。这保证了在速率切换瞬间,信号质量不会因为均衡参数未更新而急剧恶化。
调试要点: 在链路训练失败时,检查发送端是否输出了正确的 Preset 波形是关键的排查步骤。如果 Preset 波形失真严重(例如幅度不足、上升沿过缓),则链路很可能卡在 Polling 状态无法前进。
下表列出了 PCIe 5.0/6.0 规范中定义的 11 个 Preset 及其对应的去加重/预加重特性:
| Preset 编号 | 去加重 (dB) | 预加重 (dB) | 典型应用场景 |
|---|---|---|---|
| P0 | 0.0 | 0.0 | 全摆幅,无均衡,用于短距离或参考 |
| P1 | -3.5 | 0.0 | 轻度去加重,用于中等损耗信道 |
| P2 | -6.0 | 0.0 | 重度去加重,用于长距离或高损耗信道 |
| P3 | 0.0 | +2.5 | 轻度预加重,用于接收端需要增强信号前沿的场景 |
| P4 | 0.0 | +4.5 | 重度预加重,用于补偿发送端封装损耗 |
| P5 | -2.5 | +1.5 | 组合均衡,兼顾去加重与预加重 |
| P6 | -4.5 | +2.5 | 中等组合均衡 |
| P7 | -6.0 | +3.5 | 强组合均衡 |
| P8 | -3.5 | 0.0 | 与 P1 类似,但用于不同速率 |
| P9 | -4.5 | 0.0 | 介于 P1 和 P2 之间的去加重 |
| P10 | -6.0 | 0.0 | 与 P2 类似,但用于不同速率 |
3.3 Preset 与 Tx EQ 的关系
Preset 和 Tx EQ 是 “初始值”与“最终值” 的关系。Tx EQ 是一个动态调整的过程,而 Preset 是这个过程的起点。
- Preset 是 Tx EQ 的子集: Tx EQ 的系数空间是连续的,而 Preset 是这个连续空间中的 11 个离散点。每个 Preset 对应一组特定的 Tx EQ 系数(包括主抽头 C0、预抽头 C-1、后抽头 C+1 等)。
- Preset 作为协商的初始提议: 在链路训练的 Equalization Phase 1 (EQ Phase 1) 中,发送端会使用一个 Preset 作为初始提议。接收端根据这个 Preset 下的信号质量,决定是否接受该 Preset,或者请求发送端切换到另一个 Preset。
- 从 Preset 到精细调整: 一旦接收端确认了某个 Preset 可以建立基本连接,链路训练会进入 EQ Phase 2 和 Phase 3。此时,接收端会通过链路训练状态机(LTSSM)向发送端发送具体的系数更新请求(例如“增加 C+1 系数 2 个单位”),从而在 Preset 的基础上进行微调,最终找到最优的 Tx EQ 系数。
常见误区: 很多工程师认为 Preset 就是最终的均衡设置。实际上,Preset 只是链路训练的“敲门砖”。在 Gen4/Gen5 的高速链路中,最终的 Tx EQ 系数往往与初始 Preset 有显著差异。如果链路在 EQ Phase 2/3 中失败,问题通常不在于 Preset 的选择,而在于接收端反馈的系数更新请求无法被发送端正确执行。
下图展示了 Preset 与 Tx EQ 在链路训练流程中的关系:
总结来说,Preset 是 Tx EQ 的“种子”。链路训练的过程,就是接收端基于这个“种子”,通过反馈机制不断“浇水施肥”(调整系数),最终让信号质量“开花结果”(达到最优眼图)的过程。理解 Preset 与 Tx EQ 的这种递进关系,是进行链路调试和故障排查的基础。