PCIe5.0均衡简介(整理版)
本文缓慢更新
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均衡简介(整理版)相关推荐
- 【安装】Hadoop2.8.0搭建过程整理版
Hadoop搭建过程 前期环境搭建主要分为软件的安装与配置文件的配置,集成的东西越多,配置项也就越复杂. Hadoop集成了一个动物园,所以配置项也比较多,且每个版本之间会有少许差异. 安装的方式有很 ...
- 要点初见:OpenCL 2.0 异构计算 [第三版] 知识点整理
Word 版Github项目地址: https://github.com/BingLiHanShuang/Chinese-Knowledge-Collation-of-Heterogeneous-Co ...
- 李宏毅深度学习笔记——呕心整理版
李宏毅深度学习笔记--呕心整理版 闲谈叨叨叨: 之前看过吴恩达的一部分课程,所以有一定理论基础,再看李宏毅的课程会有新的理解.我先以有基础的情况写完学习过程,后续再以零基础的角度补充细节概念(估计不会 ...
- TensorFlow 2.0开发者预览版发布
整理 | Jane 出品 | AI科技大本营 从去年 8 月 Google 公开发布消息正在研发 TensorFlow 2.0 ,让我们在 12 月 提前看到了一些 高级 API 的变化,今天我们终于 ...
- 免安装mysql8_MySQL数据库之MYSQL-8.0.11-WINX64(免安装版)配置
本文主要向大家介绍了MySQL数据库之MYSQL-8.0.11-WINX64(免安装版)配置 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 1. 解压zip包到安装目录 首先, ...
- 一个项目涉及到的50个Sql语句(整理版)
/* 标题:一个项目涉及到的50个Sql语句(整理版) 作者:爱新觉罗.毓华(十八年风雨,守得冰山雪莲花开) 时间:2010-05-10 地点:重庆航天职业学院 说明:以下五十个语句都按照测试数据进行 ...
- antdesign 所兼容的浏览器_Edge 87.0最新离线稳定版浏览器
基本简介 Microsoft Edge浏览器是微软推出的一款新版浏览器.Microsoft Edge浏览器功能很全面,不仅内置微软Contana,可以为用户带来更多人性化的服务,而且Microsoft ...
- c语言第一章考试题及答案,C语言考试题库及答案整理版.doc
C语言考试题库及答案整理版.doc C语言理论上机考试选择题部分(共200题) 1.下面程序的输出是___D______ #include void main() { int k=11; printf ...
- directx修复工具v3.2增强版_微PE v2.0维护盘增强版万能启动盘20200726
微PE工具箱 – 最好用的WinPE装机维护工具!WinPE工具箱,装机维护最得力的助手,最后救命稻草.化繁为简,小材大用,一键安装,极速启动.微PE工具箱,最好用的PE启动盘,没有之一.无任何广告推 ...
最新文章
- 人工智能新手入门学习路线!附学习资源合集
- Mybatis传多个参数(三种解决方案)
- 实验报告三c语言,C语言实验报告三
- 集群与存储 LVS的集群
- Java IO流之内存流
- 原生JS实现简单的淘宝放大镜效果
- AS3编码规范(转)
- 不裁员也好意思叫互联网公司?
- Redis Lock
- map字符串转json格式
- 论文研读 —— 5. FaceNet A Unified Embedding for Face Recognition and Clustering (3/3)
- excel表格打印每页都有表头_excel怎样打印每页都有表头
- ICML 2020 | SCAFFOLD:联邦学习的随机控制平均
- word表格合并单元格后,光标居中
- 如何选择成长型新股?还是得看股票基本面!
- 恒指怎么开户?恒指交易原则?
- 国外科普网站推荐(转载)
- c语言实数计算误差,计算方法(C语言版)
- Timeshift系统备份与还原
- Mac OS X Spotlight 优化指南