一、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. WPF 播放声音 百度文字转声音

    https://developer.baidu.com/vcast  google浏览器可下载 https://www.cnblogs.com/maruko/archive/2013/04/19/WP ...

  2. 前端反爬虫策略--font-face 猫眼数据爬取

      1 .font-face定义了字符集,通过unicode去印射展示. 2 .font-face加载网络字体,我么可以自己创建一套字体,然后自定义一套字符映射关系表例如设置0xefab是映射字符1, ...

  3. 60秒的快速巡检Linux服务器性能

    uptime dmesg | tail vmstat 1 mpstat -P ALL 1 pidstat 1 iostat -xz 1 free -m sar -n DEV 1 sar -n TCP, ...

  4. MySql查询问题select from

    一开始这样不行,后来把值用单引号引起来就行了SELECT * FROM reflectmastercore WHERE name=free 就像下面这样 SELECT * FROM reflectma ...

  5. 爬虫之scrapy

    一.项目简单流程 1.创建项目 scrapy startproject 项目名 2.创建Spider cd 项目名 scrapy genspider 爬虫名 域名 class YokaSpider(s ...

  6. Java Native调用C方法

    1.通过JNI生成C调用的头文件:Java源码: import java.io.File; public class Test { static { System.load("D:" ...

  7. python-给微信好友自动发送天气预报和每日一句

    周末在宿舍学习python,女朋友那突然下了倾盆大雨,在图书馆门口跟我抱怨好久.最近又在学习python,就想给女朋友写个小程序,每天早上将每天的天气预报通过微信发个她. 在本程序中,用到了几个重要的 ...

  8. Eclipse Tomcat部署web项目时出现There are no resources that can be added or removed from the server解决办法

    问题原因是:tomcat版本和java版本不匹配.

  9. Verilog笔记——Verilog数字系统设计(第二版)夏宇闻

    本片记录Verilog学习笔记,主要是和以往用的C语言的不同之处,以例子.代码的形式记录.学习以<Verilog数字系统设计>(第二版)为参考资料,援助作者夏宇闻. 1. C语言和Veri ...

  10. Shell 批量修改主机 用户密码

    问题:132.121.114 和 132.121.118 网段共 48 台主机未添加基础监控,但是 wh 账户不能登录 需进行批量修改密码操作. 目前情况:op1对上述48台机器设备均能免密登录. 操 ...