本文缓慢更新

1.本文常用简称

USP:upstream port

DSP:downstream port

对于简单一对一系统,可以先简单地把DSP理解为host设备,USP理解为target或slave设备,注意不要搞反。

TS1/TS2:training sequence 1/2 order sets

PCIe里训练链路使用的码流,后文会简单介绍。

EQ:equalization

均衡,本文的主角,高速通信常用的针对传输信道对高低频衰减不一致的补偿。

LTSSM:link training and status state machine

集成在物理层链路子层里的状态机,用于初始化和链路训练,本质上是数字逻辑电路。

BER:bit error ratio,误码率

EIEOS:电气空闲退出有续集

除了用于指示电气空闲退出,128b/130b编码时pcie会用其来做block对齐,效果跟8b/10b编码时的K28.5做symbol对齐类似。

2.EQ数字逻辑功能在PCIe架构所处的位置

本文计划用scale的方式从整体架构逐步展开到均衡(逻辑物理)所在位置。

下图的LTSSM位于上图的物理层里的逻辑子层内

EQ协商发生在上图LTSSM的recovery子状态

EQ协商的主要动作在上图recovery子状态里的equlization子状态中。

3 上电后初次EQ的基本过程

上电后会以2.5G的速率依次从detect--polling--configuration--L0。

然后由于USP和DSP在polling阶段都声明支持8G或更高速率,通过由USP(DSP也可以)发起调速请求,DSP(USP也可以)发起均衡请求,然后进入recovery状态实施调速和均衡。

LTSSM状态切换流程如下图所示:

进入recovery之后,会以下图所示流程做完均衡,流程如下图。

对涉及子状态简述如下:

RcvrLock:电气状态变化,重做bit锁定

RcvrCfg:发起均衡请求,协商均衡速率

Speed:链路会进入电气空闲,phy调速

Equalization:分为4个phase,phase0~phase3

phase0

USP声明TX的preset,这个值优先取自DSP请求均衡时(RcvrCfg)给的初始值,如果DSP没有给,则从自身的寄存器里获取;

DSP没有phase0,在RcvrLock之后会直接进入phase1;

USP 12ms超时会进speed。

phase1

DSP在进入EQ后便处于phase1,USP在收到连续2个TS1后,也会从phase0转到phase1;

DSP发送EC1 TS1给USP(TS1里有专门的2个bit用来指示当前phase,称为equalization control,这里便用EC1来表示TS1的equalization control指示phase1,同理EC2表示指示phase2,EC0 EC3同理),其中包含DSP PHY用到的LF、FS(这两个值可以简单理解为输出的最小电压和最大电压的能力);

同样USP也会发送EC1 TS1给DSP,里面同样包含自己的LF FS;

DSP和USP交换LF FS的目的是在phase2和phase3时,请求均衡系数时,要遵循由LF和FS限制的条件,后文会介绍;

DSP会应用RcvrCfg时交互的preset作为初始preset,如果没有则从自己的寄存器里获取;

DSP和USP需要在phase1停留足够的时间,以确保BER小于10^(-4),DSP确认满足此要求后发送EC2 TS1进入phase2;

USP在接收到连续2个EC2 TS1后也进入phase2;

(如果DSP认为phase1后信号质量达到要求,可以不进行phase2/3的调节)

DSP 24ms超时会进speed;

USP 12ms超时会进speed。

phase 2

此阶段USP做master调整DSP的TX参数,在TS1中可以设置使用preset或coefficient,根据本端反馈的眼图质量找到最优值,此阶段的BER要求小于10^(-12);

一般情况下,调整参数的次数可配置,为一个有限范围,每次评估理论上不能超过2ms,但在快完成时会允许超过一点;

USP找到最优值后,会发送EC3 TS1进入phase3;

DSP收到2个连续EC3 TS1后也进入phase3;

DSP 32+4ms超时会进speed;

USP 24+2ms超时会进speed。

phase3

此阶段为DSP做master调整USP的TX参数,与phase2过程一致;

DSP找到最优值后,发送EC0 TS1从phase3退出;

USP收到连续2个EC0 TS1后,同样从phase3退出,equaliztion结束;

DSP 24+4ms超时会进speed;

USP 32+2ms超时会进speed。

4 spec给的16G EQ example

通常,128b/130b编码下,为了保持block align,每32个TS1/TS2中间就要插入一个EIEOS;

而上图phase2和phase3的描述里说可能会一次性发65536个TS1,这是因为phy的评估算法可能需要依赖较长时间的PRBS pattern,master可以通过TS1里把reset EIEOS interval counts置1来实现。

5 均衡相关的其它机制简述

1、重做均衡(redo equalization)

三种情况会触发重做均衡:某速率均衡失败;某速率均衡成功,但检查均衡系数设置时发现了问题;改变链路宽度。重做均衡流程本文略过。

2、bypass to highest rate

GEN5开始支持的一种可选机制,正常的均衡过程是做完8G,再做16G,最后才做32G,因为每次EQ都需要100ms左右。而此机制可以直接跳过8G和16G,直接做32G的均衡。当然如果32G均衡失败,那就只能切到8G重新往上做。

3、no need equalization

GEN5开始支持的一种可选机制,跟bypass to highest rate类似,但更灵活一些,可以自主指定不做的速率,bypass to highest rate只能简单粗暴地bypass掉8G和16G,但no need可以只bypass 8G和16G其中之一。

4、两种均衡机制

协议规定了两种均衡机制,分别是自动均衡和软件均衡。前文介绍都是基于自动均衡,软件均衡简单来说就是软件通过配置寄存器,读寄存器状态来执行均衡和获取均衡结果。

5、DLLP blocking

自动均衡下,DSP在均衡完成前不能发任何DLLP,USP没收到DLLP前也不能发任何DLLP,软件均衡则不受此限制。

6、速率声明

DSP要循序渐进地声明自己的支持速率,下一次EQ做哪个速率,就只声明到那个速率即可。比如DSP哪怕支持32G,但如果接下来要做的均衡是基于8G的,那便声明自己只支持到8G.

7、初次切速到8G基本上都需要做均衡。在不降低链路可靠性的情况下,EQ完成之后RX依然可以精调其参数。均衡主要是调TX,但也有个RX preset hint(仅8G可选择性支持),可以调CTLE的Adc。

6 TS1/TS2

TS1和TS2是物理层使用的保温,2.5G和5G使用8b/10b的TS1 TS2,8G及以上使用128b/130b的TS1 TS2;

8b/10b TS1 TS2由16个symbol组成,每个symbol包含8bit数据,经8b/10b编码后变成10bit,故1个TS1/TS2长度是16*10=160UI;

128b/130b TS1 TS2其实也是由16个symbol组成,每个symbol包含8bit数据,经过128b/130b编码后会在16symbol前加2bit sync头(OS为01,否则为10),故一个TS1/TS2长度是2+8*16=130UI.由于128b/130b编码下最小传输单位变成130bit,故已经不用symbol来描述,而是改称block,每130bit即1个block;

TS1 TS2有两个作用:1、携带training信息;2、由于经过了8b/10b编码或者128b/130b时做了加扰,信号本身直流平衡,有较丰富的边沿,可以用来给CDR做边沿锁定,并用来评估信号质量。

在EQ相关的功能里,两者差别:

TS1:只有TS1有EC field(如前文描述,用于指示phase),所以用于均衡过程;

TS2:只有TS2有请求均衡和请求均衡的速率相关的field,所以用于均衡请求。

关于TS1 TS2携带的详细信息,打算后面专门写一篇。

PCIe5.0均衡简介(整理版)相关推荐

  1. 【安装】Hadoop2.8.0搭建过程整理版

    Hadoop搭建过程 前期环境搭建主要分为软件的安装与配置文件的配置,集成的东西越多,配置项也就越复杂. Hadoop集成了一个动物园,所以配置项也比较多,且每个版本之间会有少许差异. 安装的方式有很 ...

  2. 要点初见:OpenCL 2.0 异构计算 [第三版] 知识点整理

    Word 版Github项目地址: https://github.com/BingLiHanShuang/Chinese-Knowledge-Collation-of-Heterogeneous-Co ...

  3. 李宏毅深度学习笔记——呕心整理版

    李宏毅深度学习笔记--呕心整理版 闲谈叨叨叨: 之前看过吴恩达的一部分课程,所以有一定理论基础,再看李宏毅的课程会有新的理解.我先以有基础的情况写完学习过程,后续再以零基础的角度补充细节概念(估计不会 ...

  4. TensorFlow 2.0开发者预览版发布

    整理 | Jane 出品 | AI科技大本营 从去年 8 月 Google 公开发布消息正在研发 TensorFlow 2.0 ,让我们在 12 月 提前看到了一些 高级 API 的变化,今天我们终于 ...

  5. 免安装mysql8_MySQL数据库之MYSQL-8.0.11-WINX64(免安装版)配置

    本文主要向大家介绍了MySQL数据库之MYSQL-8.0.11-WINX64(免安装版)配置 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 1. 解压zip包到安装目录 首先, ...

  6. 一个项目涉及到的50个Sql语句(整理版)

    /* 标题:一个项目涉及到的50个Sql语句(整理版) 作者:爱新觉罗.毓华(十八年风雨,守得冰山雪莲花开) 时间:2010-05-10 地点:重庆航天职业学院 说明:以下五十个语句都按照测试数据进行 ...

  7. antdesign 所兼容的浏览器_Edge 87.0最新离线稳定版浏览器

    基本简介 Microsoft Edge浏览器是微软推出的一款新版浏览器.Microsoft Edge浏览器功能很全面,不仅内置微软Contana,可以为用户带来更多人性化的服务,而且Microsoft ...

  8. c语言第一章考试题及答案,C语言考试题库及答案整理版.doc

    C语言考试题库及答案整理版.doc C语言理论上机考试选择题部分(共200题) 1.下面程序的输出是___D______ #include void main() { int k=11; printf ...

  9. directx修复工具v3.2增强版_微PE v2.0维护盘增强版万能启动盘20200726

    微PE工具箱 – 最好用的WinPE装机维护工具!WinPE工具箱,装机维护最得力的助手,最后救命稻草.化繁为简,小材大用,一键安装,极速启动.微PE工具箱,最好用的PE启动盘,没有之一.无任何广告推 ...

最新文章

  1. 人工智能新手入门学习路线!附学习资源合集
  2. Mybatis传多个参数(三种解决方案)
  3. 实验报告三c语言,C语言实验报告三
  4. 集群与存储 LVS的集群
  5. Java IO流之内存流
  6. 原生JS实现简单的淘宝放大镜效果
  7. AS3编码规范(转)
  8. 不裁员也好意思叫互联网公司?
  9. Redis Lock
  10. map字符串转json格式
  11. 论文研读 —— 5. FaceNet A Unified Embedding for Face Recognition and Clustering (3/3)
  12. excel表格打印每页都有表头_excel怎样打印每页都有表头
  13. ICML 2020 | SCAFFOLD:联邦学习的随机控制平均
  14. word表格合并单元格后,光标居中
  15. 如何选择成长型新股?还是得看股票基本面!
  16. 恒指怎么开户?恒指交易原则?
  17. 国外科普网站推荐(转载)
  18. c语言实数计算误差,计算方法(C语言版)
  19. Timeshift系统备份与还原
  20. Mac OS X Spotlight 优化指南

热门文章

  1. 到底是什么让IT人如此苦逼???
  2. 苏宁API接口介绍,item_get - 获得suning商品详情
  3. 459~486(rem+媒体查询+Less+苏宁易购移动端首页)
  4. 宇宙第一帅的HTML笔记
  5. 别具一格的Flash时钟
  6. 智能优化算法——哈里鹰算法(Matlab实现)
  7. 33的挑战状(bilibili首届安全挑战赛)
  8. 如何判断用户是否关闭浏览器
  9. 望(dream-coastline 3.0)
  10. Urban Airship Android Client - Helium Push