PCIe学习系列往期文章
PCIe学习笔记(1)Hot-Plug机制
PCIe学习笔记(2)错误处理和AER/DPC功能
PCIe学习笔记(3)链路初始化和训练
文章目录
链路均衡概述
链路的速率越高,相比低速率会受到更多的码间干扰(ISI, inter-symbol interference)。均衡的目的是为了补偿信道非理想特性,通过平坦化传输函数奈奎斯特频率特性,消除时域ISI,提高信号质量。
如USB 3.1要求发送端Tx实现FFE(Feed-forward Equalizer,前馈均衡器),接收端Rx实现CTLE(Continuous Time Linear Equalizer,连续时间线性均衡器)和DFE(Decision Feedback Equalizer,判决反馈均衡器),以支持更高速率。
PCIe Gen1/2采取固定去加重(De-emphasis)系数方法;Gen3以后也引入了FFE、CTLE、DFE和CDR均衡器(EQ)。
PCIe均衡通过主动握手流程,将发送端与当前信号实际传输环境相适配,每个Lane独立评估,所有Lane都参与。均衡过程大部分自适应,由硬件完成。
De-emphasis
去加重(De-emphasis):通过减弱信号中非上升沿和下降沿处的幅度,来补偿高频分量在传输过程中的较大衰减。也可以采用预加重(Pre-emphasis)增加高频幅度。加重可能加剧串扰。
连续相同电平极性的信号产生的较高电压使极性变化难以在规定时间切换到相反值。
2.5 GT/s速率下,需要 -3.5 dB 去加重(电压减少33%)。
5.0 GT/s速率下,建议-6.0 dB 去加重(电压减少50%)以补偿高频下更大的信号衰减,可选 -3.5 dB。
5.0 GT/s速率下还支持reduced-swing模式,用于短距离、低损耗传输,以节省功耗。另外还支持关闭去加重。
Full Swing:全摆幅模式,超高速 Tx 的必选模式,能够在较低的电压范围内保持较高的噪声容限。
Reduced Swing:降低摆幅模式,是一种可选的低功耗摆幅模式,多用于对电源和噪声干扰比较敏感的系统。
Tx Equalization
对Gen3以上速率,PCIe规定采用三抽头FIR (3-tap Finite Impulse Response)滤波器实现波形整形补偿传输介质带来的信号干扰和失真。输出电压来自原始输入、1 UI (Unit Interval)延迟后、以及2 UI延迟后的输入之和。
Va - 前面为相反极性,后面为相同极性
Vb - 前后均为相同极性
Vc - 前面为相同极性,后面为相反极性
Vd - 前后均为相反极性时的最大电压Swing
De-emphasis:Vb/Va,减小低频信号幅度,来补偿高频分量衰减。
Preshoot:Vc/Vb,增大当前电压幅度以改善跳变后的信号。
Preset:根据比率定义的Preshoot和De-emphasis的组合,在EQ开始时由DSP发送EQ TS2以告知USP。
Tx Equalization Coefficients:基于FIR滤波器关系,定义了三个参数用于微调信号脉冲的电压。
- Pre-Cursor:用于乘以采样点前一时刻信号值(C-1)的系数,可按需增强或者减弱前一时刻信号的影响。
- Cursor:用于乘以采样点时刻信号值(C0)的系数,该值始终隐含为正(与C-1、C+1绝对值之和为1)。
- Post-Cursor:用于乘以采样点后一时刻信号值(C+1)的系数,可按需增强或者减弱后一时刻信号的影响。
Gen6 新增 Tx Preset如下。
Rx Equalization
接收端均衡器包含一阶连续时间线性均衡器(1st order CTLE)和判决反馈均衡器(DFE)。
CTLE是一个简单的RC网络电路,相当于无源高通滤波器。通过连续信号曲线抑制低频分量,削峰填谷。缺点是会放大高频噪声。
DFE位于CTLE后,是一种反馈均衡器,根据接收信号反馈输入。
Tap数越多对噪声抑制能力越强,每Tap都会减少1 UI的噪声。16.0 GT/s使用2-tap DFE,32.0 GT/s使用3-tap DFE。
DLLP Blocking
对于采用自动均衡机制的 PCIe 设备,USP 在收到 DSP 发来的 DLLP 之前不能发送任何 DLLP,DSP 在 EQ 完成之前也不能发送任何 DLLP,称为 DLLP Blocking。链路训练进入 L0 状态后,如果 PCIe 设备知道 EQ 未完成、其接下来要进行 EQ,无论当前速率是多少(即便已经达到目标速率),双方都不能发送任何 DLLP。
均衡流程
EQ在首次速率更改为8.0 GT/s及以上时进行。32.0 GT/s或以上可以跳过低速率均衡,但不可在这些速率运行。
EQ过程包括四个阶段,当前所处的均衡阶段由接收的 TS1 中的 EC(Equalization Control)字段通知。
当DSP 准备好从低速率转换到 8.0 GT/s 时,DSP 进入 Recovery.RcvrCfg 次状态,通过 EQ TS2 向 USP 发送 Tx Presets 以及 Rx Hints。DSP 发送的 Tx Preset 值来自于Equalization Control Registers,各个Lane独立。
Gen5支持 Equalization Bypass to Highest Data Rate(只适用32.0 GT/s及以上)和 No Equalization(依赖本地预设或链路质量)特性。
EQ Phase 0
DSP没有Phase 0,在切速前的Recovery.RcvrCfg状态,DSP通过 EQ TS2 发起Equalization。
USP回传Preset给DSP。
一旦进入切速流程,DSP 会进入EQ Phase 1,并且发送 EC = 01b 的 TS1,等待 USP 回应 EC 数值相同的 TS。
EQ Phase 1
USP和DSP应用Preset值并交换 TS1 以达到低于10-4的误码率(BER),使链路基本稳定运行。
DSP向对端交流Tx Preset及 FS (Full Swing)、LF (Low Frequency) 以及 Post‐cursor coefficient 数值。
FS 代表最大电压,最小电压定义为 LF/FS。两者通知接收端可能接收到的电压数值。
Phase 1仅涉及Preset,不会自适应调整。Phase 2/3涉及Preset和Coefficients。
EQ Phase 2
USP主控,根据接收端设置在每个Lane独立自适应调整DSP的发送端设置以达到低于10-12的误码率。
- Tx Preset: 发送端的粗粒度调节,用于将发送端设置为当前信号环境下正确的大致范围内
- Coefficients: 针对PCIe采用的3-Tap FIR,定义了前后三个Cursor参数用于调整信号脉冲的电压,以补偿传输信号干扰和失真
一旦信号达到了信号质量标准的需求,USP 会通过将 EC 比特设置为 11b,表示其已经准备好进入下一均衡阶段。
EQ Phase 3
DSP主控,根据接收端设置在每个Lane独立调整USP的发送端设置,类似Phase 2。
DSP发送EC = 00b表示退出均衡阶段,结束后进入Recovery.RcvrLock。
EQ问题不会自动重新均衡,而是上报中断由软件决定。
均衡反馈原理
接收端PHY会向发送端的系数自适应引擎提供反馈,用于在EQ Phase 2/3确定最优Coefficients。反馈可以是品质因数(figure of merit, FOM)或方向控制(Direction Control, DIR)。FOM是一个从0到255的绝对数值,表示接收到的信号质量;而DIR是一个2位控制信号,指示系数自适应引擎将当前系数增加1、减少1,或保持不变。DIR和FOM都可能由接收端PHY根据眼图张开程度的测量值,或与眼图边缘ISI(码间干扰)成反比的数值推导而来。控制器中的FOM流程总是先于DIR流程进行。
FOM - 系数自适应引擎使用来自本地PHY的8位反馈信号phy_mac_fomfeedback。它会对每个预设值(由用户指定检查的预设)评估其FOM,并选择具有最高FOM值的预设作为最佳匹配。这可视为一种粗调,因为唯一可用的系数集合来自PCIe规范定义的Preset表。
DIR - 主设备中的系数自适应引擎使用来自本地PHY的2-bit反馈信号phy_mac_dirfeedback来对系数进行微调。对Tx滤波器中的三个系数都有2-bit信号phy_mac_dirfeedback,指示是否将当前系数值加1、减1,或保持不变。这可视为精调。
均衡状态跳转
LTSSM中EQ状态跳转如下: