一、PCIE 3.0中使用的动态均衡概念

因为PCIE 3.0信号的速率可以达到8Gb/s,而且链路通道走线也可能会很长,这可能会导致高速信号衰减过大,在接收端无法得到张开的眼图。因此在PCIE 3.0的Tx和Rx端均使用了均衡设置,以补偿长链路时高速信号的衰减。

但由于实际产品中PCIE 3.0信号的传输链路的长度是不一致的,有时候长,有时候短,此时可能只需要Tx发送端的均衡即可实现良好的补偿,而不需要Rx端的均衡;或者在Tx发送端与Rx接收端使用相应的均衡等级组合才可能得到最优的眼图。而Tx端有11级Preset均衡设置,Rx端也有具有行为特性(即相关的参数设置会随着情况的不同而不同)的CTLE、DFE等多种均衡算法和设置以及CDR时钟恢复,这使得针对不同的链路情况设置不同的均衡设置变得更加复杂。

PCIE 3.0中使用了动态均衡(DynamIC Equalization)的方法来自动实现和配置得到最优的均衡组合以满足不同时候的需要。即系统会自动根据链路的情况分析高速信号在接收端的性能(眼图等),通过分析结果来指导Tx发送端和Rx接收端如何设置均衡参数。如下图所示,在PCIE 3.0的发送端和接收端器件工作初始化过程中,系统会根据对链路的分析情况,要求Rx接收端发送TxEQ Preset设置请求给Tx发送端要求其进行相应的Preset均衡设置,Tx发送端也会发送RxEQ均衡设置请求给接收端要求其进行相应的RxEQ设置,通过这样一个初始化过程获得一个最优的均衡设置,从而在接收端得到最优化的高速信号(眼图)。

PCIE 3.0的动态均衡初始化过程包括如下4个阶段:

Phase 0:下行端口使用8b/10b编码方式传达发送端和接收端预设值(preset)给上行端口,这些值使用TS2(Train Sequence2)训练序列来传达。当信号速率切换到8GT/s以后,上行端口发出包含有其收到的预设(Preset)值的TS1训练序列。

Phase 1:通过交流TS1序列,带有预设(Preset)的8GT/s初始化链接成功(BER<=10e-4)。

Phase 2:下行端口器件通过TS1训练序列发送均衡请求来调整上行端口器件的输出设置,直到获得最优设置为止(BER<=10e-12)。

Phase 3:上行端口器件通过TS1训练序列发送均衡(均衡系数/预设)请求来调整下行端口器件的输出设置,直到获得最优设置为止(BER<=10e-12)。

二、PCIE 3.0中使用的动态均衡的优缺点

PCIE 3.0中使用动态均衡方法能够针对不同的情形自动配置并优化发送端和接收端的均衡设置,补偿信号的传输通道对高速信号带来的影响(如损耗),以在接收端获得最好的信号质量。

但是动态均衡优化过程需要花费时间,有时候可能会导致系统工作或运行超时等错误。因此,PCI Express® Architecture PHY Test Specification Revision 3.0 规范的2.3, 2.4, 2.7, 2.10 及2.11等章节规定了对动态均衡链接(link equalization)的测试,规定动态均衡链接需要在特定的时间内(小于500ns)完成。

三、PCIE 3.0中动态均衡的测试挑战

由于动态均衡测试需要测试仪器能够具有协议能力,即仪器可以与被测件进行协议握手通信。当前很多测试方案中的误码仪都不具备协议能力。只有力科公司(TeLEDyne LeCroy)的PeRT3 Phoenix具有基于PCIE 3.0的协议通信能力。因此,目前只有力科公司(Teledyne LeCroy)能够实现规范要求的这项测试,也是PCI-SIG协会推荐的测试方法,如下图所示为摘自PCI-SIG协会网站上对于PCIE 3.0的Tx/Rx Link Equalization测试项目所推荐的测试设备:

四、力科针对PCIE 3.0的Tx/Rx Link Equalization测试方案

1、Tx Link Equalization测试

(1)测试设备:PeRT3 Phoenix(具有协议使能的接收端发送端容限测试仪)及示波器SDA8Zi

(2)测试目的:被测件的Tx端是否能够应答协议级别的均衡预设请求,是否能够在规定的时间内完成响应。

(3)测试连接示意图如下:

如图中所描述,示波器将配合自带的测量参数和力科示波器独有的基于PCIE 3.0的协议分析软件(Protosync协议分析软件)实现Tx Link Equalization的测量。

2、Rx Link Equalization测试

(1)测试设备:PeRT3 Phoenix(具有协议使能的接收端发送端容限测试仪)

(2)测试目的:被测件的Rx端是否能够应答协议级别的均衡预设请求,是否能够在规定的时间内完成响应。

(3)测试连接示意图如下:

安装相关步骤完成设置,能够进入loopback 进行误码测试,即表示Rx Link Equalization 测试满足要求。具体步骤请参考:LeCroy_CEM3_0_Link_EQ_Test_Procedure_v0_9pdf

PCIE 3.0中使用的动态均衡概念的更多相关文章

  1. Odoo8.0中允许用户动态调整TreeView栏位宽度

    现有的Odoo8.0中TreeView的栏位宽度是固定的,不可以手动调整,通过安装第三方插件后,可以实现手工动态调整. 下载模块安装即可.http://download.csdn.net/detail ...

  2. ASP.NET Core 3.0中使用动态控制器路由

    原文:Dynamic controller routing in ASP.NET Core 3.0 作者:Filip W 译文:https://www.cnblogs.com/lwqlun/p/114 ...

  3. .net core 3.0中动态卸载程序集

    动态加载程序集在一些插件式的应用中非常常见,.net core 2.0中可以通过AssemblyLoadContext中提供程序集的动态加载功能,但取不支持卸载.现在,在.net core 3.0中提 ...

  4. C# 4.0中的动态类型和动态编程

    # 4.0的主题就是动态编程(Dynamic Programming).虽然C#仍然是一种静态语言,但是对象的意义开始变得越来越“动态”.它们的结构和行为无法通过静态类型来捕获,或者至少编译器在编译程 ...

  5. Linux中keepalived+LVS负载均衡的搭建测试

    1.1 LVS简介       LVS(Linux Virtual Server),也就是Linux虚拟服务器, 是一个自由软件项目.使用LVS技术要达到的目标是:通过LVS提供的负载均衡技术和Lin ...

  6. LVS集群中的IP负载均衡技术

    LVS集群中的IP负载均衡技术 章文嵩 (wensong@linux-vs.org) 转自LVS官方参考资料 2002 年 4 月 本文在分析服务器集群实现虚拟网络服务的相关技术上,详细描述了LVS集 ...

  7. 非常郁闷的 .NET中程序集的动态加载

    记载这篇文章的原因是我自己遇到了动态加载程序集的问题,而困扰了一天之久. 最终看到了这篇博客:http://www.cnblogs.com/brucebi/archive/2013/05/22/Ass ...

  8. Hadoop学习笔记—13.分布式集群中节点的动态添加与下架

    开篇:在本笔记系列的第一篇中,我们介绍了如何搭建伪分布与分布模式的Hadoop集群.现在,我们来了解一下在一个Hadoop分布式集群中,如何动态(不关机且正在运行的情况下)地添加一个Hadoop节点与 ...

  9. Android6.0中的权限

    Android6.0相比之前的Android版本有一个很大的不同点,就是动态的获取权限.之前我们需要什么权限只需要在Manifest文件中声明即可,在6.0中,又新增了运行时权限的动态检测. Andr ...

随机推荐

  1. hugo小玩

    hugo小玩 1. 安装 install from source by brew install pre-built-binary 2. 下载源码 $ go get github.com/magefi ...

  2. 三个线程,ABC 10次(volatile+synchronized(2 synchronized可以保证内存可见性,所以去掉status 的volatile修饰符)

    package ThreadABC; public class MyThread extends Thread { public static int status = 0; @Override pu ...

  3. 利用JAVA API函数实现数据的压缩与解压缩

      综述 许多信息资料都或多或少的包含一些多余的数据.通常会导致在客户端与服务器之间,应用程序与计算机之间极大的数据传输量.最常见的解决数据存储和信息传送的方法是安装额外的存储设备和扩展现有的通讯能力 ...

  4. Python全栈开发记录_第六篇(生成器和迭代器)

    说生成器之前先说一个列表生成式:[x for x in range(10)]   ->[0,1,2....,9]这里x可以为函数(因为对python而言就是一个对象而已),range(10)也可 ...

  5. darknet训练yolov3时的一些注意事项

    训练需要用到的文件: 1)       .data文件.该文件包含一些配置信息,具体为训练的总类别数,训练数据和验证数据的路径,类别名称,模型存放路径等. 例如coco.data classes= 8 ...

  6. @Override is not allowed when implementing interface method

    使用idea导入maven项目时 会出现如下报错 @Override从jdk1.5开始出现的,是用来标注方法重写:通常方法重写发生在继承父类,重写父类方法,或者实现接口,实现接口方法: @Overri ...

  7. ATS6.2安装部署笔记

    原文:http://www.safecdn.cn/ats/2018/12/ats6-2-install/1046.html 系统版本:CentOS 6.7 1.安装依赖包 yum -y install ...

  8. bootstrap-datetimepicker 时间配置,包含颜色

    if ($('.isdatetimepicker')!=undefined&&$('.isdatetimepicker').datetimepicker!=undefined) { / ...

  9. fibonacci数列-斐波那契数列-python编程

    未完待续~ 了解fibonacci数列: 斐波纳契数列(Fibonacci Sequence),又称黄金分割数列. 1,1,2,3,5,8,13,21,34,55,89,144,233,377,610 ...

  10. 深度学习原理与框架- tf.nn.atrous_conv2d(空洞卷积) 问题:空洞卷积增加了卷积核的维度,为什么不直接使用7*7呢

    空洞卷积, 从图中可以看出,对于一个3*3的卷积,可以通过使用增加卷积的空洞的个数,来获得较大的感受眼, 从第一幅图中可以看出3*3的卷积,可以通过补零的方式,变成7*7的感受眼,这里补零的个数为1, ...