PCIe学习笔记(4)链路均衡介绍

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)增加高频幅度。加重可能加剧串扰。
连续相同电平极性的信号产生的较高电压使极性变化难以在规定时间切换到相反值。
De-emphasis
2.5 GT/s速率下,需要 -3.5 dB 去加重(电压减少33%)。
5.0 GT/s速率下,建议-6.0 dB 去加重(电压减少50%)以补偿高频下更大的信号衰减,可选 -3.5 dB。
De-emphasis for 5GT
5.0 GT/s速率下还支持reduced-swing模式,用于短距离、低损耗传输,以节省功耗。另外还支持关闭去加重。
reduced-swing
Full Swing:全摆幅模式,超高速 Tx 的必选模式,能够在较低的电压范围内保持较高的噪声容限。
Reduced Swing:降低摆幅模式,是一种可选的低功耗摆幅模式,多用于对电源和噪声干扰比较敏感的系统。

Tx Equalization

对Gen3以上速率,PCIe规定采用三抽头FIR (3-tap Finite Impulse Response)滤波器实现波形整形补偿传输介质带来的信号干扰和失真。输出电压来自原始输入、1 UI (Unit Interval)延迟后、以及2 UI延迟后的输入之和。
Tx EQ FIRTx Voltage
Va - 前面为相反极性,后面为相同极性
Vb - 前后均为相同极性
Vc - 前面为相同极性,后面为相反极性
Vd - 前后均为相反极性时的最大电压Swing
De-emphasis:Vb/Va,减小低频信号幅度,来补偿高频分量衰减。
Preshoot:Vc/Vb,增大当前电压幅度以改善跳变后的信号。
Preset:根据比率定义的Preshoot和De-emphasis的组合,在EQ开始时由DSP发送EQ TS2以告知USP。
Tx Preset
Tx Equalization Coefficients:基于FIR滤波器关系,定义了三个参数用于微调信号脉冲的电压。

  • Pre-Cursor:用于乘以采样点前一时刻信号值(C-1)的系数,可按需增强或者减弱前一时刻信号的影响。
  • Cursor:用于乘以采样点时刻信号值(C0)的系数,该值始终隐含为正(与C-1、C+1绝对值之和为1)。
  • Post-Cursor:用于乘以采样点后一时刻信号值(C+1)的系数,可按需增强或者减弱后一时刻信号的影响。
    Cursor
    FIR Output
    Gen6 新增 Tx Preset如下。
    Gen6 Tx Voltage
    Gen6 Tx Preset

Rx Equalization

接收端均衡器包含一阶连续时间线性均衡器(1st order CTLE)和判决反馈均衡器(DFE)。
CTLE是一个简单的RC网络电路,相当于无源高通滤波器。通过连续信号曲线抑制低频分量,削峰填谷。缺点是会放大高频噪声。
CTLE
DFE位于CTLE后,是一种反馈均衡器,根据接收信号反馈输入。
DFE
Tap数越多对噪声抑制能力越强,每Tap都会减少1 UI的噪声。16.0 GT/s使用2-tap DFE,32.0 GT/s使用3-tap DFE。
2-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)字段通知。
EC
当DSP 准备好从低速率转换到 8.0 GT/s 时,DSP 进入 Recovery.RcvrCfg 次状态,通过 EQ TS2 向 USP 发送 Tx Presets 以及 Rx Hints。DSP 发送的 Tx Preset 值来自于Equalization Control Registers,各个Lane独立。
EQ Ctrl
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 Phase0/1

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问题不会自动重新均衡,而是上报中断由软件决定。
EQ Phase2/3

均衡反馈原理

接收端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状态跳转如下:
EQ LTSSMEQ Flow

### PCIe链路均衡技术工作原理 PCIe链路均衡(Link Equalization, LEQ)是一种用于补偿信号传输过程中损耗的技术,确保数据能够在高速串行连接上可靠地传输。随着每一代PCIe标准的发展,链路速率不断提高,对于信号完整性的要求也更加严格。 #### 工作机制 在发送端和接收端之建立通信之前,双方会交换训练序列来评估信道特性,并据此调整发射器预加重以及接收机均衡参数设置。此过程涉及多个阶段: - **初始状态检测**:两端设备互相探测对方的存在并确认物理层连通性。 - **粗略校正**:基于默认配置初步设定增益水平以适应基本路径损失。 - **精细调节**:通过迭代优化算法逐步微调直至达到最佳匹配度,从而最小化误率。 这些操作都是自动完成的,在初始化期执行一次即可长期维持良好性能表现[^1]。 #### 技术演进历程 自早期版本以来,PCIe一直致力于改善其链路均衡能力,具体表现为以下几个方面: - **PCIe 1.x至3.x时代**:主要依靠简单的直流偏移消除与有限响应型滤波器组合实现基础级别的噪声抑制功能;此时的数据传输速率为2.5GT/s~8GT/s不等。 - **进入Gen4及以上世代后**:引入了更复杂的连续时线性均衡(CTLE), 决策反馈均衡(DFE),甚至高级别的多级幅度调制方案如PAM4,使得有效对抗 ISI (Intersymbol Interference)干扰成为可能,进而支撑起更高的吞吐量需求——例如 PCIe 5.0 达到了惊人的32 GT/s 双向带宽[^2]. ```cpp // C++代片段展示了一个简化版的链路均衡流程模拟函数 void simulate_link_equalization() { // 初始化参数... while (!convergence) { // 当未收敛时循环 send_training_sequence(); // 发送训练序列 measure_channel_response(); // 测量通道响应 adjust_transmitter_parameters();// 调整发射器参数 update_receiver_settings(); // 更新接收器设置 check_convergence_criteria(); // 检查是否满足收敛条件 } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小破同学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值