1. PCIe 均衡技术介绍(概要)
链接: PCIe均衡技术介绍(概要)
2. PCIe 均衡技术介绍(电气物理篇)
如前文所说,信号补偿的位置可以位于发送端、传输链路及接收端。对于 PCIe IP 设计者而言,更关注发送端及接收端均衡。我们并不想过多依赖于板级的均衡电路设计,我们自己在发送端及接收端 PCIe 内部就把均衡做好。
如前面所说,为了对抗高频信号的衰减和干扰,各种方法如去加重(De-emphasis)和Pre-shoot 技术,以及各种 EQ 被引入传输协议。去加重(De-emphasis)和 Pre-shoot 是为了对抗码间干扰的。
2.1 发送端均衡
发送端均衡采用前向反馈均衡器(Feed forward Equalizer,FFE),可分为预加重和去加重,两者方法类似。
2.1.1 预加重
PCIe 高速串行信号经信道从发送端传输到接收端后,其高频分量比低频分量衰减要大,而高频分量主要集中在信号的上升沿及下降沿。为了补偿这种高频衰减,在信号发送的时候,有意增强信号跳变沿的信号幅度,增高高频分量,即信号预加重。
由于预加重与去加重及其相似,且行业中大多采用去加重的发送端方案,此处不做过多介绍,详情可参考去加重。
2.1.2 去加重
相比于预加重的方案,去加重则是降低跳变沿之外的信号幅度,削弱低频分量,同样能够达到目的。
2.1.2.1 去加重的优点
随着传输速率的提升,码间干扰越来越大。由于电容持续充电,当一比特信号连续重复多次时,电压越垒越高越接近目标电平。当下一比特需要切换极性时,很难在单个 UI 内降到指定电平,甚至切换后的信号电平仍处于切换前信号电平的判别区间,从而造成接收端误判。
▲ 图 3: 去加重前后对比图
2.1.2.2 去加重规则
对于信号中连续重复的比特流,从第 2 比特开始,降低发送信号的幅值及功率,可以提升信号质量。采用去加重的方式,在提升信号质量的同时,还能够降低发送功率,有点反直觉。去加重可以看作是二抽头的发送端均衡器,其规则如下:
信号发生跳变后,第一比特不做去加重。
若当前比特与前一比特相同,进行去加重。
Beacon 信号也需要做去加重,但规则稍有不同,此处不作展开。
▲ 图 4: 去加重规则示意图
2.1.3 三抽头 FIR 滤波器(均衡器)
当前发送出去的信号比特,经信道传输到达接收端后会被展宽,对相邻信号比特造成影响。为了减少这种影响,8 GT/s 及以上速率时候,发送端采用一种三抽头的有限脉冲响应滤波器(Finite Impulse Response, FIR)作为发送信号均衡器,在发送当前比特的时候就把 ISI 考虑进去并进行抑制。
2.1.3.1 三抽头 FIR 结构
三抽头 FIR 均衡器原理图如图 5 所示,该均衡器有三个输入,分别为当前发送比特、前一比特及后一比特,这三比特信号按照一定权重相加后作为输出。表示为:
Vout(n)=C−1Vin(n−1)+C0Vin(n)+C+1Vin(n+1)
其中,下一比特、当前比特及前一比特的权重系数 C-1、C0、C+1分别称为 FIR 方程的 Pre-cursor、Cusor 及 Post-cursor 系数。Pre-cursor 又称 Pre-shoot 系数,Post-cursor 又称去加重系数。收发端在均衡过程中调整这三个系数的值,来获得最佳传输性能。Pre-cursor、Cusor 及 Post-cursor 系数满足如下规则:
∣C−1∣+∣C0∣+∣C+1∣=1, C−1≤0, C0>0, C+1≤0
通常,三个参数只需指定 Pre-cursor 及 Post-cursor ,Cursor 可以根据上式计算得出。
▲ 图 5: 发送端三抽头均衡器
采用如上三抽头均衡器对发送信号进行均衡前后效果图如图 6 所示。
▲ 图 6: FIR 均衡效果图 图中 Pre-cursor、Post-cursor 位置存疑,到底谁先发出去的?画反了吧!
2.1.3.2 四种电平,De-emphasis, Pre-shoot 及 Boost
采用以上三抽头 FIR 均衡器时,对于某比特信号而言,其前后两比特有 4 种不同的组合形式,这也意味着该比特输出电平有 4 种可能。如图 7 所示。
▲ 图 7: 三抽头均衡器的四种输出电平
举个 Preset P8 的例子:当前比特为 1 ,C+1=-0.2,C0=0.7,C-1=-0.1,
连续 3 比特为 011,输出电压为 -C+1+C0+C-1=0.8,对应图中 Va,称为 Normal 电平 。
连续 3 比特为 111,输出电压为 C+1+C0+C-1=0.4,对应图中 Vb,称为 De-emphasized 电平 。
连续 3 比特为 110,输出电压为 C+1+C0-C-1=0.6,对应图中 Vc,称为 Pre-shoot 电平 。
连续 3 比特为 010,输出电压为 -C+1+C0-C-1=1.0,对应图中 Vd,称为 Maximum-height 电平 。
根据以上四种电平,可计算出去加重、Pre-shoot及 Boost 幅度,表示为:
De−emphasis=20log10Vb/Va
Preshoot=20log10Vc/Vb
Boost=20log10Vd/Vb
当然,通过设置 C+1、C-1 为 0 可以关闭De-emphasis和Pre-shoot :若不考虑前一比特的影响,则设置 C+1为 0,则关闭了去加重;若不考虑后一比特的影响,则设置 C-1为 0,关闭 Pre-shoot。
2.1.3.3 FIR 系数
2.1.3.3.1 FIR 系数约束
在设置这三个系数时要注意,Tx 输出电压 Vout(n) 应控制在 Full-swing 电压范围内,小于等于发送端可产生的最大电压摆幅 FS(Full Swing),且大于等于发送端可产生的最低差分电压 LF(Low Frequency)。
对于 PCIe 而言,在均衡 Phase 1 阶段 Tx 给对端发送带有 FS 及 LF 的 EQ TS。TS 中的 FS 和 LF 字段有 6 bit,可选范围为 0~63。在 Phase 2/3,收发端交换 6 bit 的 C-1、C0 及 C+1(TS 中 C-1、C+1 省略了负号)。在本小节以下的讨论过程中,FS、LF、C-1、C0及 C+1 的都是指 TS 中相应字段的值,其满足如下约束:
1.FS=|C-1|+C0+|C+1|,系数的绝对值之和决定了 FS 值,Tx FS 范围应满足如下约束:
a. Full Swing 模式时,FS∈{23, …, 63};
b. Reduced Swing 模式时,FS∈{12, …, 63}。
2.C0 -|C-1|-|C+1| = LF 时,Tx 需确保满足 VTX-EIEOS-FS 及 VTX-EIEOS-RS的电气要求。
3.在向链路对端 Tx 请求一组系数之前需满足以下规则。在收到更新 Tx 系数的请求后,只有在满足以下条件时才能接受,否则拒绝接受。
a. |C-1| ≤ Floor (FS/4)
b. |C-1|+C0+|C+1| = FS (不允许峰值功率进行适应性变动)
c. C0 -|C-1|-|C+1| ≥ LF
2.1.3.3.2 FIR 系数 Preset
为实现粗粒度的 Tx EQ 参数控制,PCIe 协议定义了 11 组 FIR 均衡器 Preset 值,编号为 P0~P11。在收发端均衡之初交换 Preset 编号即交换了一组 FIR 均衡器的系数。各组 Preset 的编码、Pre-shoot、De-emphasis、Pre/Post-cursor 、Tolerance 及各种电平比率如表 1 所示。
▼ 表 1: Tx Preset Encoding, Ratios and Corresponding Coefficient Values
在 8 GT/s、16 GT/s、32 GT/s 速率下,若采用 Reduced-swing 信号必须实现 P4, P1, P9, P5, P6, P3 Preset;若采用 Full-swing 信号,必须实现 P0~P10 所有 Preset。
以上 11 组 Preset 中,P1 用于测试 Reduce-swing 的 Tx Boost Limit。P10 的 C+1为不定值,通过逐渐加大 C+1,可测得 Full-swing 的 Tx Boost Limit(Tx De-emphasis Limit 与 Boost Limit 符号相反)。
从表 1 也能看出,Preset 是依据 FIR 四种电平 Va~Vd 的电压比率进行定义的,这些电压与 Pre-cursor、Post-cursor 息息相关。Pre-cursor (Vc) 是指 Pre-shoot,Post-cursor (Vb) 是指去加重。Preset 中,Pre-shoot 与去加重相互独立,所以仅有去加重的 2.5 GT/s 和 5.0 GT/s Tx EQ 同样适用于该表,且表中的 Tolerance 同样适用于 2.5 GT/s 及 5 GT/s 去加重。当 C+1和 C-1均不为零时,Va 无法达到最大摆幅 Vd。
2.1.3.3.3 FIR 系数范围、Tolerance 及三角矩阵
8 GT/s、16 GT/s、32 GT/s 速率时,Tx 需要将其 FIR 系数范围及 Tolerance 告知对端 Rx。FIR 系数范围及 Tolerance 满足如下约束:
- 所有 Tx 必须满足 Full-swing 信号 VTX-EIEOS-FS限制。
- Tx 可以选择性地支持 Reduced-swing,支持 Reduced-swing 的话,必须满足 VTX-EIEOS-RS限制。
- 系数必须满足 Boost 和精度(VTX-Boost-FS、VTX-Boost-RS、EQTXCOEFF-RES)限制。
当以上约束均满足时,FIR 系数空间可以映射到一个三角矩阵上。一个粒度为 1/24 的 FIR 系数三角矩阵如图 8 所示。
该矩阵中,去加重系数(C+1)映射到 X 轴,Pre-shoot 系数(C-1)映射到 Y 轴。矩阵中每个单元格由 3 个元素组成:Preset(左上)、De-emphasis(右上) 及 Boost(下中),每个单元格都代表了一种有效的 Pre-shoot 、去加重、Boost 系数组合。对角线元素(8/24-8/24)为最大 Boost 比率(9.5 dB),这条线右侧的系数,Boost 超过了 9.5 dB,这些参数不能使用,为空白单元格。Full-swing 需实现所有蓝色及橙色单元格,Reduced-swing 必须实现蓝色单元格。
▲ 图 8: Transmit Equalization Coefficient Space Triangular Matrix Example
2.2 接收端均衡
虽然采用发送端均衡能够在一定程度上改善信号质量,但信号经过长距离传输后,信号仍有可能失真严重,接收端接收到的信号眼图闭合难以识别。为此,可以在接收端对接收到的进行进行再次均衡。接收端均衡器有一阶连续时间线性均衡器(Continuous-Time Linear Equalizaion, CTLE)和判决反馈均衡器(Decision Feedback Equalization,DFE)。
2.2.1 CTLE
无源传输线路像是一个低通滤波器,PCIe 高速串行信号经信道从发送端传输到接收端后,其低频分量衰减比高频分量小,从而造成信号失真。为了恢复信号,在接收端采用高通滤波器来抑制低频分量,来补偿失真的波形。CTLE 均衡器是一个简单的 RC 网络电路,相当于无源高通滤波器,其结构图如图 9 所示。采用 CTLE 均衡效果如图 10 所示,可见 CTLE 均衡后低频分量被抑制,抑制后的高频分量与低频分量幅值区别缩小。
CTLE 是利用连续的信号曲线,减缓低频部分,用来补偿高频部分。因为高频部分损耗较大,所谓削峰填谷。它有个缺点是会放大高频噪声。
▲ 图 9: CTLE 均衡器结构
▲ 图 10: CTLE 均衡效果图
离散时间线性均衡器(Discrete Time Linear Equalizer, DLE)也能实现与 CTLE 相同的功能,其原理图如图 11 所示。考虑到 DLE 入口处有个采样保持电路(S&H),该电路显然比 CTLE 要复杂,功耗也比 CTLE 高,一般不用 DLE。
▲ 图 11: DLE 均衡器结构
2.2.2 DFE
DFE 位于线性均衡器之后,将判决后的信号进行反馈,与接收信号按照一定权重累加后输出,适用于眼图张开的情况。DFE 抽头数越多,对噪声抑制能力越强。单抽头和双抽头 DFE 均衡器结构分别如图 12, 13 所示。
DFE 也是一种反馈均衡器,是用上次信道的输出经过判断后加权反馈到输入上。它不会放大高频噪声,但是只能处理码后干扰,不能消除码前干扰,且设计复杂和耗电。
▲ 图 12: 单抽头 DFE 均衡器结构
▲ 图 13: 双抽头 DFE 均衡器结构
DFE 可以采用固定系数,在不影响 PCIe 正常功能的前提下,也可以在 Recovery.Equalization 阶段,通过 DSP 给 USP 发送携带有 Receiver Preset Hints 的 EQ TS1,对 DFE 系数进行调节。目前,Receiver Preset Hints 仅用于 8 GT/s,TS 中 Rx Preset Hints 编码如表 2 所示。
▼ 表 2: Rx Preset Hints
Encoding | 000b | 001b | 010b | 011b | 100b | 101b | 110b | 111b |
Rx Preset Value | -6 dB | -7 dB | -8 dB | -9 dB | -10 dB | -11 dB | -12 dB | Reserved |
2.3 不同速率均衡方案选择
2.3.1 速率 2.5 GT/s 均衡
2.5 GT/s 时,信号速率相对较低,在 发送端采用信号去加重即可实现较好质量的信号传输。2.5 GT/s 时的信号功率去加重程度为 -3.5 dB,信号大约在原幅值上削减了 1/3。
若信号失真很小,仍然采用去加重进行均衡,会使得本来质量很好的信号发生失真,适得其反。此时,可以降低去加重程度,或则干脆去掉去加重。
2.3.2 速率 5 GT/s 均衡
发送速率增加到 5 GT/s 后,ISI 比 2.5 GT/s 更加严重。此时,仍然可以采用 2.5 GT/s 时 -3.5 dB 去加重技术进行均衡,但是建议增加去加重程度为 -6 dB。采用 -6 dB 去加重,去加重后的信号电平降为原电平的 50% 左右。
▲ 图 14: 2.5 GT/s 及 5 GT/s 时的去加重幅度示意图
通常来讲,发送端工作在 Full-Swing 模式下,这样信号摆幅较大,可以补偿信号在长距离传输中的衰减。对于传输距离较短或其他信号衰减较小的情况,也可以采用 Reduced-Swing 模式,以降低功耗。
跟 2.5 GT/s 时一样,当传输链路条件很好时,5 GT/s 时也可以选择关闭去加重。
▲ 图 15: 不同传输距离下 Full Swing, Reduced Swing 收发信号幅度比对
2.3.3 速率 8 GT/s、16 GT/s、32 GT/s 均衡
如前文所述,2.5 GT/s 及 5 GT/s 速率下采用去加重均衡来保证链路质量。在选择去加重方案的时候,收发端之间没有一个互相沟通的过程,多是基于假设进行参数设置,或者基于前期测试结果再人工调整去加重参数。
数据速率上升到 8 GT/s 及以上后,信号传输面临的信号完整性问题更加突出,采用传统的去加重无法满足高质量的信号传输。8 GT/s 时,发送端的均衡采用基于 FIR 有限脉冲响应滤波器,接收端均衡采用了 CTLE 和 DFE 两种均衡。发送端及接收端动态协商均衡器参数,以获取质量相对最优的信号。
8 GT/s、16 GT/s、32 GT/s时的 Tx 必须实现基于 FIR 系数的 EQ 模式,以实现对 Tx EQ 的精细控制。此外,Tx 必须支持指定数目的 Preset,以满足 Tx EQ 的粗粒度控制。8 GT/s、16 GT/s 及 32 GT/s 时,所以 Tx 必须支持 EQ,但其 Rx 可以选择性地响应 Tx EQ 请求。
2.4 均衡参数测量及评估
测量 Tx 均衡时,需要测量的参数有 EQ 系数、EQ Preset 及 最小最大电压摆幅等电压参数。
2.4.1 速率 2.5 及 5 GT/s Tx EQ 参数测量
2.4.1.1 EQ 电压测量
2.5 GT/s 及 5 GT/s 时的 Tx EQ 仅包含去加重,去加重程度可通过测量 500 个 Compliance Pattern 0.5UI 处的平均值获得。
2.4.1.2 VTX-DIFF-PP 测量
VTX-DIFF-PP是发送端差分电压峰峰值,在 Reduced-swing 模式下为 VTX-DIFF-LOW,两者测量方法相同。2.5 GT/s 及 5 GT/s 时的 VTX-DIFF-PP (VTX-DIFF-PP-LOW @ Reduced-swing) 通过测量 500 个 Compliance Pattern 0.5UI 处的平均眼高获得。
2.4.2 速率 8 GT/s, 16 GT/s 及 32 GT/s Tx EQ 参数测量
8 GT/s、16 GT/s、32 GT/s 速率时,PCIe 高频信号的自身特性使得难以测量单 UI 脉冲高度。此时,Tx 电压摆幅及 EQ Preset 可通过 Compliance Pattern 中的低频 Pattern 测得。低频 Pattern 由重复的 64 个连 0 及 64 个连 1 组成,这种 Pattern 下 ISI 大大减小,且信号接近稳定状态,因此能够较为精确地测得各种情况下的电压幅度。
2.4.2.1 Vb 测量
下图是采用 64-zeros/64-ones 序列的 Compliance Pattern 测量 Preset 的示意图。鉴于 Preset 依赖于去加重和/或Pre-shoot,观测波形是不同的。下面两幅图分别展示了依赖于去加重的 Preset 测量波形(图 16)及依赖于 Pre-shoot 的 Preset 的测量波形(图 17),两者的区别在于 EQ 发生的位置:去加重发生在跳转之前,Pre-shoot 发生在跳转之后。对于兼具去加重和 Pre-shoot 的均衡,在跳转之前及之后均会发生 Boost。
以上所有情况下,我们感兴趣的电压都发生与波形较为平坦的位置 vb,在 vb 处可以消除高频干扰、较为准确地测量电压。测量位置一般选在 64 个连 0 或连 1 的第 57~62 个 UI 处,测量连续 500 个序列取均值作为最终结果。
▲ 图 16: 依赖于去加重的 Preset 测量波形
▲ 图 17: 依赖于 Pre-shoot 的测量波形
2.4.2.2 Va、Vc 测量
8 GT/s、16 GT/s、32 GT/s 速率时,由于波形中 Va、Vc 的测量区间只有 1 UI 宽,加之受到封装及突发信道的衰减,很难难以直接测量 Va 及 Vc。P4 Preset 是一种特殊情况,其 Pre-shoot 及去加重均为 0 dB,可以通过将 DUT 设置为不同的 Preset,通过测量不同 Preset 下的 Vb 来间接测量 Va 及 Vc。
表 3 列出了测量每个 Va 和 Vc 值所需的 Preset 值,其 Pre-shoot 或去加重的值可以从指定 Preset 的 Vb 值的比率中得出。比如,要测量 P1 的 De-emphasis,可以测量 Preset 为 P1 及 P4 时的 Vb,则 P1 的 De-emphasis 可表示为 20 log10(Vb(P1)/Vb(P4)),其他以此类推。
▼ 表 3: Preset Measurement Cross Reference Table
注:N/A 表示该 Preset 下该项无需测量,为 0。
2.4.2.3 VTX-DIFF-PP 测量
没有 EQ 时的 Tx 输出电压摆动 Vd 范围定义为 VTX-DIFF-PP,Reduced-swing 时称为 VTX-DIFF-PP-LOW,可以通过将 C-1及 C+1设置为 0 来测量 Compliance Pattern 的峰峰电压来得知。为最大程度减少低频信号在 Package 上的衰减,建议在芯片 Die 的 Pad 上直接测量信号。
如下图所示,在 Compliance Pattern 半周期的最后几个 UI (57~62 UI)测量电压信号,可以最大限度地减少 ISI 和开关效应。取连续 500 个 Patten 上的测量结果平均值最为最终结果,以抑制高频噪声。
▲ 图 18: V~TX-DIFF-PP~ 及 V~TX-DIFF-PP-LOW~ 测量
3. PCIe 均衡技术介绍(逻辑物理篇)
参考
- PCI ExPress Base Spec 5.0, Chapter 4.2.3, Chapter 4.2.6.4.2, Chapter 8.3.3, …
- PCIe Express Technology, Mindshare Inc, Chapter 13
- SNPS PHY databook,chapter 5.11
- 芯片中的数学——均衡器EQ和它在高速外部总线中的应用
- pcie equalization学习笔记
- PCIE 3.0中使用的动态均衡概念
- 理论篇|如何实现PCIe Gen3/Gen4接收端链路均衡测试?
- 实践篇|如何实现PCIe Gen3/Gen4接收端链路均衡测试?)
- PCIe Electrical PHY(2)-SerDes中的均衡技术