PCIE 4.0 Equalizaiton(LTSSM 均衡流程)
1. 均衡
在Tx端有FFE(Feed Forward Equalizer,前馈均衡器);在Rx端有:CTLE(Continuous Time Linear Equalizer,连续时间线性均衡器)和DFE(Decision Feedback Equalizer,判决反馈均衡器)。通过FFE和CTLE,可以去除大部分由ISI所引入的抖动;通过DFE可以进一步去除ISI,它还能去除部分的阻抗失配所造成的反射。通过这些均衡处理,就能够最大程度上地保证在接收端判决输入处将眼图打开,保证信号的质量能够满足数据传输的要求。
再PCIE4.0版本之后,规范针对RC(downstream port) 以及EP (upstreamport)的phase分别进行了说明。
2. Downstream
RC代表Downstream port, RC 需要从Recovery.rcvrlock 跳转到 Recovery.Equalization,它分为phase1 phase2 phase3 三个阶段。
2.1 phase1
在此阶段会清除当前速率(8GT or 16 GT)的EQ_phase_successfullz指示位,同时也会设置start_equalization_w_preset = 0 。在该子状态下RC会持续发送EC =01 (symbol6 ), Transmitter Preset 根据当前的速率分别进行设定, FS LT Cursor 这些系数则根据preset值进行设定的TS1 order set。
其中Transmitter Preset 设定遵循如下三种原则:(优先级依次降低)
1. 如果当前速度为16GT (Gen4) 则基于在Recovery.RcvrCf状态收到的8GT EQ TS2 order set中的Transmitter preset value进行设定。
2. 否则需要根据当前速率的Lane Equalization Control Register (8GT) or 16 GT/s Lane Equalization Control Register (16GT) 中的字 端进行设置。
3. 要用一种特殊实现的方法选择一个有效的Transmitter preset values。
note:如果RC需要调整自己Receiver 则允许在phase1 等待500ns后,再去评估接收到的TS1 order set。
phase1 -> phase2
所有configured lanes 收到两个连续的TS1 order set with EC=01,且 RC想去调整到下一个phase2 or phase3 (可以立即为RC自己对Receiver 调节自身的BER,以保证可以稳定接收后续的EQ order set)。 [必须保证在2ms内可以完成bit lock 并可以稳定识别 Order set;设置相应速率的phase1 successfull = 1 ]
phase1 -> Recovery.Rcvrlock
所有configured lanes收到两个连续的TS1 order set with EC=01,且 RC不想想去调整到下一个phase2 or phase3。 [设置相应速率的phase1/2/3 successfull = 1 complete bit = 1]
phase1 -> Recovery.Speed
上述两个条件未满足,24ms超时后调整。 [successful_speed_negotiation=0,当前speed的complete bit = 1]。
2.2 phase2
在该子状态TX会持续发送EC=10的TS1 order set,其关于FS LT cursor的系数设置在每条lanes是独立的,设置规则如下:
在接收到两个连续的EC=10的TS1 order set ,(包括当前的两次连续的TS序列中的参数,与上一次两次连续TS序列中的参数不同)的前提下,如果收到的preset 以及系数是合规的,则RC需要再收到第2个包含新请求的TS序列500ns内完成自身TX参数的调整(此时发送的TS1 序列中preset设置为请求的值,系数设置为Transmitter setting),否则保持当前TX电路的Transmitter setting 不变,但是需要在发送的TS序列中setting 设置为 EP请求的value并将Rejet Coefficient Vaule为1。
如果没有接收连续的的EC=10 的TS1 order set ,则按照当前的值保持不变。
phase2 -> phase3
所有configured lanes 收到两个连续的TS1 order set with EC=01,[必须保证在2ms内可以完成bit lock 并可以稳定识别 Order set;设置相应速率的phase2 successfull = 1]
phase2 -> Recovery.Speed
上述两个条件未满足,32~36ms超时后调整。 [successful_speed_negotiation=0,当前speed的complete bit = 1]。
2.3 phase3
在该子状态TX会持续发送EC=11的TS1 order set,会根据接收的TS1 order set评估信号质量,并向EP请求新的preset 和相关系数。若 Preset bit =1,此时是一个Preset 更改请求,否则是 Cursor 系数请求。另外协议要求RC必须持续请求1us,等待500+ns后,EP会使用RC请求的值填充子的TS1 序列的相应字段,并发送给RC。
只有RC接收到了从EP返回来的TS1 序列,且Preset以及相关系数相同,且Rejection Coefficient =0表示EP 接收了RC发送的请求。此外DSP负责发送的TS序列中设置Reset EIEOS Interval Count bit ,它根据自己的需求以及评估准测进行设定。
从请求到最终完成均衡一般不允许超过2ms,但是可以允许以同样的参数第二次尝试(此时的超时时间可以超过2ms但是不能超过24ms的状态超时),所有的lanes需要同时发送new preset and 系数,但是如果其中一些lane不需要改变当前设置,也是允许保持当前值不变继续发送。
phase3 -> Recovery.Rcvrlock**
所有的configured lanes工作在最佳的工作模式,8 GT
所有的configured lanes工作在最佳的工作模式,且收到两个连续 Retimer Equalization Extend Bit = 0的TS1 序列 16 GT
设置相应速率的phase3_ successfull = 1 and complete bit =1。
phase3-> Recovery.Speed
上述两个条件未满足,24~26ms超时后调整。 [successful_speed_negotiation=0,当前speed的complete bit = 1]。
3 Upstream
upstream 比downstream 多了一个phase0,一共包含phase0 phase1 phase2 phas3 四个阶段。
3.1 Phase0
在此阶段会清除当前速率(8GT or 16 GT)的EQ_phase_successfullz指示位,同时也会设置start_equalization_w_preset = 0。
当从2.5 or 5 GT -> 8GT时候,EP会使用在Recovery.RcvrCfg阶段的EQ TS2 order set (序列)中的Transmitter Preset field填充当前需要发送的TS1序列。当从8GT -> 16GT时,EP会使用8GT EQ TS2 序列中的Transmitter Preset field进行填充,如果收到的preset 字段是非法,则由实现者决定发送什么东西。
在该子状态会首先发送EC=00 的TS 序列,对于一些异常情况, Transmitter Preset field的填充遵循如下规则:
1.接收到了EQ TS2 or 8GT EQ TS2 序列再Recovery.RcvrCfg 状态,但是其中相应preset 字段RC 不支持,则待发送的preset使用EQ序列中解析出来的transmitter preset 进行填充,Coeffiient 由实现者指定,并且set Reject Coefficient bit = 1。
2.对于未收到EQ TS2 or 8GT EQ TS2 序列,则待发送的preset and coefficent 根据由实现者自行指定,并且clear Reject Coefficient bit。
note:如果RC需要调整自己Receiver 则允许在phase1 等待500ns后,再去评估接收到的TS1 order set。
phase0 -> phase1
接收到两个连续的EC=01的TS1 order set。[LF FS 需要存储起来,放在phase2 使用;必须保证在2ms内可以完成bit lock 并可以稳定识别 Order set]。
phase0 -> Recovery.Speed
上述两个条件未满足,12ms超时后调整。 [successful_speed_negotiation=0,当前speed的complete bit = 1]
3.2 Phase1
phase1 会根据phase0 决定的transmitter setting 构造TS1 序列,并设置EC=01b。
phase1 -> phase2
接收到两个连续的EC=10的TS1 序列,并设置相应速率的phase1 successful =1。
phase1 -> Recovery.Rcvrlock
接收到连个连续的EC=00的TS1序列,并设置相应速率的phase1 successful = 1。
phase1 -> Recovery.Speed
上述两个条件未满足,12ms超时后调整。 [successful_speed_negotiation=0,当前speed的complete bit = 1]。
3.3 Phase2
会通过Receiver 接收到的TS 序列完成信号的评估,并向RC(Downstream)请求相应的参数,在该子状态TX会持续发送EC=11的TS1 order set,会根据接收的TS1 order set评估信号质量,并向RC请求新的preset 和相关系数。若 Preset bit =1,此时是一个Preset 更改请求,否则是 Cursor 系数请求。另外协议要求EP必须持续请求1us(也就是说1us后才可以更新发送的preset),等待500+ns后,EP会使用RC请求的值填充子的TS1 序列的相应字段,并发送给EP。
从请求到最终完成均衡一般不允许超过2ms,但是可以允许以同样的参数第二次尝试(此时的超时时间可以超过2ms但是不能超过24ms的状态超时),所有的lanes需要同时发送new preset and 系数,但是如果其中一些lane不需要改变当前设置,也是允许保持当前值不变继续发送。
3.4 Phase3
会发送EC=11的TS1 序列,与RC phase2 类似 此时EP会根据RC的请求调节自身的Transmitter参数。
phase3 -> Recovery.RcvrLock
所有的lanes 均收到两个连续的EC=00的TS1 序列,这表示RC已经从phase3 退出进入了RcvrLock 子状态,EP需要将相应速率下的Phase3 successful and Complete bit 置1.
phase3 -> Recovery.Speed
上述两个条件未满足,32ms超时后调整。 [successful_speed_negotiation=0,当前speed的complete bit = 1]。
相关文章:

PCIE 4.0 Equalizaiton(LTSSM 均衡流程)
1. 均衡 在Tx端有FFE(Feed Forward Equalizer,前馈均衡器);在Rx端有:CTLE(Continuous Time Linear Equalizer,连续时间线性均衡器)和DFE(Decision Feedback Equalizer&a…...
[libwebsockets]lighttpd+libwebsockets支持ws和wss配置方法说明
libwebsockets介绍 libwebsockets是一款轻量级用来开发服务器和客户端的C库。它不仅支持ws,wss还同时支持http与https,可以轻轻松松结合openssl等库来实现ssl加密。 官方参考链接: https://libwebsockets.org/ lighttpd版本 lighttpd/1.4.59 (ssl) - a light and fast w…...

常用软件安装
服务器版本为Centos7.8 x86_64 1.yum下载提速 1.wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo 2. yum clean all 3.yum makecache2.jdk yum install java-1.8.0-openjdk* -y # yum update 时自动更新jdk版本 1.yum -y install …...

翻译: GPT-4 Vision静态图表转换为动态数据可视化 升级Streamlit 三
GPT-4 Vision 系列: 翻译: GPT-4 with Vision 升级 Streamlit 应用程序的 7 种方式一翻译: GPT-4 with Vision 升级 Streamlit 应用程序的 7 种方式二 1. 将任何静态图表转换为动态数据可视化 ChatGPT Vision 不仅可以将涂鸦变成功能齐全的 Streamlit 应用程序,还…...

Qt QPlainTextEdit高亮显示当前行
Qt QPlainTextEdit高亮显示当前行 文章目录 Qt QPlainTextEdit高亮显示当前行摘要错误的代码正确的代码QTextEdit::ExtraSelection 关键字: Qt、 QPlainTextEdit、 QTextBlock、 ExtraSelection、 GPT 摘要 今天要在说一下GPT,当下如果你还不会用G…...

Linux编辑器vim(含vim的配置)
文章目录 前言vim的基本概念vim基本操作进入vim模式切换退出vim vim指令vim命令模式指令vim底行模式命令 简单vim配置 前言 本篇文章,小编将介绍Linux编辑器–>vim以及vim的配置。 vim的基本概念 正常/普通/命令模式(Normal mode) 控制屏幕光标的移动…...

Oracle DG环境下的秘钥管理
今天有朋友问到1)DG环境下的秘钥管理需要注意什么,2)秘钥管理对DG的日志同步有影响吗? 对于2)的回答是明确的,没有影响。秘钥的管理和DG的redo log shipping完全是两套机制。在最新版的Oracle Key Vault常…...

【Sql Server】新手一分钟看懂在已有表基础上增加字段和说明
欢迎来到《小5讲堂》,大家好,我是全栈小5。 这是《Sql Server》系列文章,每篇文章将以博主理解的角度展开讲解, 特别是针对知识点的概念进行叙说,大部分文章将会对这些概念进行实际例子验证,以此达到加深对…...

亚信安慧AntDB打造开放创新的数据库生态
在当今信息化快速发展的时代背景下,亚信安慧AntDB作为一种新兴的DBMS,以其核心优势引起了行业内的广泛关注。它基于具有广泛全球影响力和繁荣社区支持的PostgreSQL(PG)内核,继承了PG的开放性与生态活力,同时在性能和稳定性方面进行…...

在Mixamo网站上,下载的动画导入unity给自己的模型添加后出错怎么解决
在Mixamo网站上,下载的动画导入unity给自己的模型添加后出错 一、在Mixamo下载的模型可以正常使用二、在自己的模型和unity自带模型上就出错1.解决方法2.解决成功 注意 一、在Mixamo下载的模型可以正常使用 二、在自己的模型和unity自带模型上就出错 1.解决方法 选…...

java servlet运输公司管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目
一、源码特点 java Web运输公司管理系统是一套完善的java web信息管理系统 serlvetdaobean mvc 模式开发 ,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主 要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5…...
React中antd的使用技巧
1.antd的基本使用: (1).yarn add antd(2).引入样式:import antd/dist/antd.css;(3).根据文档引入组件2.antd按需引入样式 (1).yarn add react-app-rewired customize-cra babel-plugin-import(2).修改package.json,内容如下:.....…...

2024年第一篇博客
这是2024年的第一篇博客,2023年笔者经历了一连串的生活、工作、学习上的转折和调整,跌跌撞撞时光飞逝,转眼间就踏着元旦的钟声步入了2024年,前思后想、辗转反侧、犹豫再三不知道从哪里开始博客新的篇章,这个问题坦诚说…...

Nginx负载均衡下的webshell连接
一、上传AntSword-Labs-master搭建负载均衡实验环境 搭建好docker环境,并且配置好docker-compose 我的Redhat的docker版本: 查看当前环境下的文件是否正确: 接着执行docker compose up -d 拉取环境 访问成功页面: 进入docker容器…...

JAVA编程语言单词汇总
Java 是由 Sun Microsystems 公司于 1995 年 5 月推出的 Java 面向对象程序设计语言和 Java 平台的总称。由 James Gosling和同事们共同研发,并在 1995 年正式推出。后来 Sun 公司被 Oracle (甲骨文)公司收购,Java 也随之成为 Ora…...

微信小程序(十七)自定义组件生命周期(根据状态栏自适配)
注释很详细,直接上代码 上一篇 新增内容: 1.获取手机状态栏的高度 2.验证attached可以修改数据 3.动态绑定样式数值 源码: myNav.js Component({lifetimes:{//相当于vue的created,因为无法更新数据被打入冷宫created(){},//相当于vue的mount…...
百度搜索智能精选是什么东西、怎么加入?
百度搜索智能精选是什么? 提问及具体展示如上图,这是白杨SEO一个好友提问的。他是觉得这个入口篇幅这么大,做宣传推广不错,问我是什么,怎么可以加入进去? 其实这就是百度搜索智能精选,只能是P…...

小程序开发平台:全功能小程序商城功能 带完整的安装代码包以及搭建教程
移动互联网的普及和用户对购物体验要求的提高,传统电商网站已经不能满足用户的需求。因此,许多商家开始将目光转向小程序商城,以提供更加便捷、高效的购物体验。然而,由于小程序开发门槛较高,许多商家和开发者对于小程…...
Vue3生命周期 VS Vue2生命周期(小记)
概念:Vue组件实例在创建时要经历一系列的初始化步骤,在此过程中Vue会在合适的时机,调用特定的函数,从而让开发者有机会在特定阶段运行自己的代码,这些特定的函数统称为:生命周期钩子。 规律: 生…...

MYSQL基本查询(CURD:创建、读取、更新、删除)
文章目录 前言一、Create1.全列插入2.指定列插入3.插入否则更新4.替换 二、Retrieve1.SELECT列2.WHERE条件3.结果排序4.筛选分页结果 三、Update四、Delete1.删除数据2.截断表 五、插入查询结果六、聚合函数 前言 操作关系型数据库的编程语言,定义了一套操作关系型…...
逻辑回归:给不确定性划界的分类大师
想象你是一名医生。面对患者的检查报告(肿瘤大小、血液指标),你需要做出一个**决定性判断**:恶性还是良性?这种“非黑即白”的抉择,正是**逻辑回归(Logistic Regression)** 的战场&a…...

vscode(仍待补充)
写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh? debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...

UE5 学习系列(三)创建和移动物体
这篇博客是该系列的第三篇,是在之前两篇博客的基础上展开,主要介绍如何在操作界面中创建和拖动物体,这篇博客跟随的视频链接如下: B 站视频:s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...

蓝牙 BLE 扫描面试题大全(2):进阶面试题与实战演练
前文覆盖了 BLE 扫描的基础概念与经典问题蓝牙 BLE 扫描面试题大全(1):从基础到实战的深度解析-CSDN博客,但实际面试中,企业更关注候选人对复杂场景的应对能力(如多设备并发扫描、低功耗与高发现率的平衡)和前沿技术的…...
测试markdown--肇兴
day1: 1、去程:7:04 --11:32高铁 高铁右转上售票大厅2楼,穿过候车厅下一楼,上大巴车 ¥10/人 **2、到达:**12点多到达寨子,买门票,美团/抖音:¥78人 3、中饭&a…...

DIY|Mac 搭建 ESP-IDF 开发环境及编译小智 AI
前一阵子在百度 AI 开发者大会上,看到基于小智 AI DIY 玩具的演示,感觉有点意思,想着自己也来试试。 如果只是想烧录现成的固件,乐鑫官方除了提供了 Windows 版本的 Flash 下载工具 之外,还提供了基于网页版的 ESP LA…...

SpringTask-03.入门案例
一.入门案例 启动类: package com.sky;import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCach…...

LLMs 系列实操科普(1)
写在前面: 本期内容我们继续 Andrej Karpathy 的《How I use LLMs》讲座内容,原视频时长 ~130 分钟,以实操演示主流的一些 LLMs 的使用,由于涉及到实操,实际上并不适合以文字整理,但还是决定尽量整理一份笔…...

DingDing机器人群消息推送
文章目录 1 新建机器人2 API文档说明3 代码编写 1 新建机器人 点击群设置 下滑到群管理的机器人,点击进入 添加机器人 选择自定义Webhook服务 点击添加 设置安全设置,详见说明文档 成功后,记录Webhook 2 API文档说明 点击设置说明 查看自…...

解读《网络安全法》最新修订,把握网络安全新趋势
《网络安全法》自2017年施行以来,在维护网络空间安全方面发挥了重要作用。但随着网络环境的日益复杂,网络攻击、数据泄露等事件频发,现行法律已难以完全适应新的风险挑战。 2025年3月28日,国家网信办会同相关部门起草了《网络安全…...