完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
PCIe接口自从被推出以来,已经成为了PC和Server上最重要的接口。为了更高了数据吞吐率,PCI-SIG组织不断刷新接口标准,从PCIe 3.0的8GT/s数据速率,到PCIe 4.0的16GT/s数据速率,再到PCIe 5.0的32GT/x。PCI-SIG组织实现了在速率翻倍的同时,仍能保持使用普通的FR4 板材 和廉价接插件,主要源自两个方面的改进,一是使用128b/130b编码来代替8b/10b编码,使得编码效率大幅提高;另一个是使用动态均衡技术,来代替先前代的静态均衡技术。
这里聚焦于PCIe 3.0和4.0中的动态均衡技术,介绍其原理、实现及其相关的一致性测试 。这样一种动态均衡技术,在spec中被称作“Link Equalizati on”(链路均衡,简称为LEQ)。本文理论篇主要介绍PCIe 3.0/4.0的链路均衡的工作原理。 |
|
相关推荐
4个回答
|
|
PCIe 3.0 & 4.0的链路均衡
在PCIe 3.0和4.0中的链路均衡技术相较于先前代要复杂得多,这样一种动态均衡技术可以分为两个方面进行讨论。
除了上述这些均衡特性上的支持外,在协议层(LTSSM)中还规定需要通过协议的方式来动态调整链路上的均衡设定值,这整个过程称作链路均衡(Link EqualizaTI on,LEQ)。在链路均衡过程中:
[img=520.5pt,185.25pt]http://p0.itc.cn/images03/20200524/3bdbf10430bf4215a948108d2d6adaa5.jpeg[/img] 图1 LEQ硬件实现的模块框图 |
|
|
|
发送端的均衡:FFE
在PCIe 3.0 & 4.0中使用的都是3-tap FFE,如图 2a所示。其中,Qn为数字信号,建模时取值为±1;c-1, c0, c+1为FFE的抽头系数;voutn为发送端的模拟信号输出。 [img=321.0pt,285.75pt]http://p4.itc.cn/images03/20200524/233d38e835dd428ea449e40c98e6cbbd.jpeg[/img] (a)FFE的模型框图 (b) FFE的模拟电压输出 图2 PCIe 3.0 & 4.0发送端所使用的3-tap的FFE 理想情况下的差分电压幅度有:23÷2=4种可能性,这四个电压幅度在PCIe标准中(如图 2b所示)分别被标记 为Va,Vb,Vc,Vd。 Va=c0-c+1+c-1×2g Vb=c0+c+1+c-1×2g Vc=c0+c+1-c-1×2g Vd=c0-c+1-c-1×2g 其中,Vb被称作去加重电压(de-emphasis voltage),Vc被称作预冲电压(preshoot voltage);Vd被称作最大幅度电压(boost voltage),PCIe标准中没有为Va取一个专门的名字。在此基础上,标准中通过三组比值来完备地描述FFE的性能: DEEMPHASIS=20logVbVa=20logc0+c+1+c-1c0-c+1+c-1 PRESHOOT=20logVcVb=20logc0+c+1-c-1c0+c+1+c-1 BOOST=20logVdVb=20logc0-c+1-c-1c0+c+1+c-1 若不加限制的来说,那么c-1, c0, c+1形成的组合有无穷多个。但并不是所有的组合在实际应用中都是合适的。其中一个最重要的约束条件就是:去加重电压Vb不能过小,过小的去加重电压会导致输出信号在接收端的眼高过低。因此通过BOOST比值对去加重地电压幅值进行限制:对于满摆幅的Tx输出,规范要求BOOST≤9.5dB;对于减摆幅的Tx输出,规范要求BOOST≤3.5dB。最终会形成一个如图 3类似的矩阵表,图中系数的粒度为1/24。在实际应用中可以是其他的粒度值,例如1/64;更小的粒度能够使系数空间的取值可能性更多,在LEQ调节时也更精细。 [img=525.0pt,216.75pt]http://p5.itc.cn/images03/20200524/1c51e93dcb214fd7ae76c9cd3e0aac71.jpeg[/img] 图3 发送端均衡的系数空间的矩阵表举例 鉴于系数空间上的取值可能性较多,PCI-SIG协会在开发协议的过程中,广泛地研究了在不同插入损耗下最优的系数取值组合;最后选定了若干个特定的系数取值组合,并把它们称作预设定值(preset),在实际的LEQ过程中,链路双方就可以先采用预设定值进行粗调;若还认为链路的均衡设置仍然没有达到最优,可以进一步通过系数空间的方式进行细调,最终达到速度和精度的平衡。 |
|
|
|
接收端的均衡:CTLE和DFE
在PCIe 3.0 & 4.0 基础规范中,并没有明确地规定接收端的结构是怎样的;而只是从测量 的角度对接收端性能进行了规定。相反地,在规范中定义了一个行为级CTLE和行为级DFE。这些行为级模型可以作为设计指南;并且为了使得待测对象能够通过规范的要求,一般来说用户所设计的接收端性能至少要等于这些行为级模型的性能,可以强于这些行为级模型,但不能弱于这些行为级模型。 [img=252.0pt,334.5pt]http://p8.itc.cn/images03/20200524/c54b77fc1f3744d2a79adaa74427ae1c.jpeg[/img] (a) (b) 图4 行为级CTLE的频响曲线:(a) PCIe 3.0 (b) PCIe 4.0 发送端的输出在经过一段很长的FR4走线之后,仅仅使用CTLE,可能是不够的。因此在PCIe 3.0 & 4.0中,还使用了DFE的技术。在3.0中,使用1-tap的DFE,而在4.0,由于速率相对于3.0翻倍了;所以使用2-tap的DFE,以便移除更大的ISI。 与线性均衡器FFE和CTLE相比,DFE为一种非线性均衡器。DFE的基本想法是:若已经正确接收了之前的比特数据的话;那么先前的比特数据对当前比特所产生的影响就是已知的;从而我们就可以通过反馈的方式进行补偿,这样就能够进一步消除抖动和噪声的影响。不难看出这里的非线性体现在:反馈回来的信号是经过判决之后的数字信号;而判决电路是一种非线性电路。显然,反馈通路上的抽头数目越多,那么对抖动和噪声的消除可能就越好;这也就是为什么3.0中使用1-tap的DFE,而在4.0中使用2-tap的DFE。 [img=277.5pt,235.5pt]http://p4.itc.cn/images03/20200524/5c212ebe57b240c58d48f9449144362e.png[/img] (a) (b) 图5 行为级DFE的结构:(a) PCIe 3.0 (b) PCIe 4.0 |
|
|
|
链路均衡过程
链路上的两端刚开始建立通信的时候,并不知道整个信道的物理特性是怎样的,例如插入损耗多大,是否有阻抗不连续等。由于PCIe 3.0和4.0的插入损耗允许的变化范围很大,一个静态的均衡设置并不能覆盖所有的情况。这样就需要链路上的双方根据当前物理信道的特性,来动态地调整均衡设置,使得均衡设置对于当前的物理信道来说是最优的。假设Port A和Port B是一个链路上的两端,那么链路均衡过程要做的事情有:
[img=377.25pt,165.0pt]http://p5.itc.cn/images03/20200524/b4e6e8302bed4d7fba98217c40959af6.jpeg[/img] 图6 LEQ:本地端发送未经优化的初始TX EQ 当Port B Rx在接收到这些TS1/TS2序列时,芯片内部存在一块电路或者一套算法来评估当前的TX EQ是否合适,若认为不合适,就会如图7所示,发送TS1序列来请求一个新的TX EQ。 [img=367.5pt,186.75pt]http://p4.itc.cn/images03/20200524/c74da77ac38e4d15b1cbc02ec1a75753.jpeg[/img] 图7 LEQ:对端请求一个新的TX EQ 随后,Port A会接收到请求设置TX EQ的TS1序列,如图8所示,调整其TX端的FFE的设置。 [img=396.0pt,191.25pt]http://p1.itc.cn/images03/20200524/56aab94da6d54bf2aa9cb2d0f54cd7d6.jpeg[/img] 图8 LEQ:本地正确地接收到了对端的请求,设置新的TX EQ Port A在调整完Tx FFE的设置之后,如图9所示,会将新的TX EQ设置值更新到TS1/TS2的序列之中,发送到Port B端。若Port B仍然觉得这个时候的TX EQ不是最优,那么仍然会重复图中的2~4步骤,直到达到最优的TX EQ。当然上述过程并不能无限进行下去,必须要在大概32ms的范围进行完。 [img=401.25pt,191.25pt]http://p0.itc.cn/images03/20200524/d454fce8e28445dcae5d86b609d9e33b.jpeg[/img] 图9 LEQ:本地端告知对端已成功设置新的TX EQ 在上述2~4步骤的同时,Port B的RX端也在不停地调整其RX EQ,如图 10所示。如图6~图10中所讨论的,LEQ是基于请求-响应机制来完成动态均衡的。在PCIe的规范中,LEQ总共包含四个阶段:Phase 0、Phase1、Phase 2、Phase 3。其中上行端口包含全部四个过程;而下行端口不包含Phase 0。 [img=420.0pt,198.0pt]http://p5.itc.cn/images03/20200524/2087a6615abb4318bdc10e0f047176a2.jpeg[/img] 图10 LEQ:整个过程中同时调整RX EQ 通过图11不难看出,在LEQ过程中,上行端口和下行端口的行为是有区别的。以上描述的是在LEQ过程中链路上的双方如何调整Tx EQ。而对于Rx EQ,根据Base规范中的说明,在整个LEQ的过程、以及在后续正常工作的过程中,链路双方都可以一直调整Rx EQ。 [img=397.5pt,315.0pt]http://p2.itc.cn/images03/20200524/dd3c5b9dc942446692d904fa22bcab7a.jpeg[/img] 图11 LEQ的状态跳转示意图 |
|
|
|
只有小组成员才能发言,加入小组>>
4571个成员聚集在这个小组
加入小组17626.6标准中关于CDN的疑问?以及实际钳注入测试中是否需要对AE和EUT同时接CDN?
6857 浏览 1 评论
3556 浏览 2 评论
10324 浏览 1 评论
3847 浏览 4 评论
3561 浏览 0 评论
753浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 01:05 , Processed in 1.186981 second(s), Total 62, Slave 52 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号