『』PCIe Gen3/Gen4接收端链路均衡测试—理论篇( 三 )


文章图片

文章图片

(b)
图5 行为级DFE的结构:(a) PCIe 3.0 (b) PCIe 4.0
链路均衡过程
链路上的两端刚开始建立通信的时候 , 并不知道整个信道的物理特性是怎样的 , 例如插入损耗多大 , 是否有阻抗不连续等 。由于PCIe 3.0和4.0的插入损耗允许的变化范围很大 , 一个静态的均衡设置并不能覆盖所有的情况 。这样就需要链路上的双方根据当前物理信道的特性 , 来动态地调整均衡设置 , 使得均衡设置对于当前的物理信道来说是最优的 。假设Port A和Port B是一个链路上的两端 , 那么链路均衡过程要做的事情有:
配置Port A和Port B的初始均衡设置;
配置从Port A Tx ? Port B Rx这一方向的均衡设置;
配置从Port B Tx ? Port A Rx这一方向的均衡设置;
下面我们以Port A Tx ? Port B Rx这一方向来说明链路均衡时如何实现的 。如图 6所示 , 在8GTs/或者16GT/s速率下的链路开始建立通信时 , 是以初始的未优化的TX EQ在发送TS1/TS2序列 , 并且Port A在TS1/TS2序列中表明其所用的TX EQ的值 。
『』PCIe Gen3/Gen4接收端链路均衡测试—理论篇
文章图片

文章图片

图6 LEQ: 本地端发送未经优化的初始TX EQ
当Port B Rx在接收到这些TS1/TS2序列时 , 芯片内部存在一块电路或者一套算法来评估当前的TX EQ是否合适 , 若认为不合适 , 就会如图7所示 , 发送TS1序列来请求一个新的TX EQ 。
『』PCIe Gen3/Gen4接收端链路均衡测试—理论篇
文章图片

文章图片

图7 LEQ:对端请求一个新的TX EQ
随后 , Port A会接收到请求设置TX EQ的TS1序列 , 如图8所示 , 调整其TX端的FFE的设置 。
『』PCIe Gen3/Gen4接收端链路均衡测试—理论篇
文章图片

文章图片

图8 LEQ:本地正确地接收到了对端的请求 , 设置新的TX EQ
Port A在调整完Tx FFE的设置之后 , 如图9所示 , 会将新的TX EQ设置值更新到TS1/TS2的序列之中 , 发送到Port B端 。若Port B仍然觉得这个时候的TX EQ不是最优 , 那么仍然会重复图中的2~4步骤 , 直到达到最优的TX EQ 。当然上述过程并不能无限进行下去 , 必须要在大概32ms的范围进行完 。
『』PCIe Gen3/Gen4接收端链路均衡测试—理论篇
文章图片

文章图片

图9 LEQ:本地端告知对端已成功设置新的TX EQ
在上述2~4步骤的同时 , Port B的RX端也在不停地调整其RX EQ , 如图 10所示 。如图6~图10中所讨论的 , LEQ是基于请求-响应机制来完成动态均衡的 。在PCIe的规范中 , LEQ总共包含四个阶段:Phase 0、Phase 1、Phase 2、Phase 3 。其中上行端口包含全部四个过程;而下行端口不包含Phase 0 。
『』PCIe Gen3/Gen4接收端链路均衡测试—理论篇
文章图片

文章图片

图10 LEQ:整个过程中同时调整RX EQ
通过图11不难看出 , 在LEQ过程中 , 上行端口和下行端口的行为是有区别的 。以上描述的是在LEQ过程中链路上的双方如何调整Tx EQ 。而对于Rx EQ , 根据Base规范中的说明 , 在整个LEQ的过程、以及在后续正常工作的过程中 , 链路双方都可以一直调整Rx EQ 。
『』PCIe Gen3/Gen4接收端链路均衡测试—理论篇


推荐阅读