一、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. [UE4]Grabbable接口

    首先,面向接口编程和面向对象编程并不是平级的,它并不是比面向对象编程更先进的一种独立的编程思想,而是附属于面向对象思想体系,属于其一部分.或者说,它是面向对象编程体系中的思想精髓之一. 接口是一组规则 ...

  2. CentOS7.5 GlusterFS 分布式文件系统集群环境搭建

    环境准备: 系统版本:CentOS Linux release 7.5.1804 (Core) glusterfs:3.6.9 userspace-rcu-master: 硬件资源: 10.200.2 ...

  3. Centos7修改默认网卡名(改为eth0)以及网卡启动报错RTNETLINK answers: File exists处理

    安装好centos7版本的系统后,发现默认的网卡名字有点怪,为了便于管理,可以手动修改.下面对centos7版本下网卡重命名操作做一记录:1)编辑网卡信息[root@linux-node2~]# cd ...

  4. 无法启动此程序,因为计算机中丢失VCRUNTIME140.dll 尝试重新安装此程序以解决此问题

    最近在阿里云上租了个服务器,想借此发布一些自己制作的网页.于是就打算安装一下环境,考虑到搭建动态网站所要安装的环境比较多,于是就选择了wampserver这样一个集成环境的安装. 由于我的服务器很新( ...

  5. Python课程第五天作业

    1.利用字典推导式和列表推导式完成数据的相互转化: dic = {'name': 'Owen', 'age': 18, 'gender': '男'} ls = [('name', 'Owen'), ( ...

  6. redmine2.5升级到3.4

    第一.安装需要升级的版本 参考文档:https://www.cnblogs.com/panwenbin-logs/p/10174525.html 二.备份源数据 [root@localhost ~]# ...

  7. eclipse注解模板,实实在在的

    1.可以引用其他codetemplate.xml 2.可以自己配置,很快,就几个主要的,个人建议这个,配一次妥妥的,以后就会了,也不用搭理模板了 3.按照公司要求 拿去https://www.jian ...

  8. BootStrap table动态增删改表格内数据

    1:添加一个[操作]列   { title: "操作", align: 'center', valign: 'middle', width: 160, // 定义列的宽度,单位为像 ...

  9. Ubuntu忘记超级用户root密码,重新设置密码

    Ubuntu版本:Ubuntu 16.04.3 LTS 1启动系统,在启动过程中,反复按Esc键或者shift键(本人亲测反复按或者长按都可以,没必要纠结),直到出现以下界面: 通过上下键移动,选择U ...

  10. 在eclipse下,用Maven创建Spring MVC工程

    参考链接:https://www.cnblogs.com/yangyxd/p/5955630.html 1.打开Eclipse,Ctrl + N  创建Maven