PCIE链路训练-状态机描述3

Configuration.Idle

1.当使用8b/10b编码时,non-flit模式下,在所用配置的lane上发送s Idle data Symbols,在flit mode下发送IDLE flit。

2.linkup = 0 + link两端的component均支持64.0GT/s的速率,根据进入此状态之前发送的8个TS2或收到的连续的8个Modified TS2 Ordered Sets进行如下判断:

(1)

a:收到的8个连续的Modified TS2 Ordered Sets及所有configure的lane中发送的Modified TS2 Ordered Set中的No Equalization Needed bit (bit 1 of Symbol 5)为1

b:收到的8个连续的TS2 Ordered Sets及发送的TS2 Ordered Sets中的Enhanced Link Behavior Control field (bits 7:6 of Symbol 5)为No Equalization Needed value (10b)

满足a、b两种条件之一,那么The equalization_done_8GT_data_rate, equalization_done_16GT_data_rate,equalization_done_32GT_data_rate,equalization_done_64GT_data_rate variables 设为1,64.0 GT/s Status Register中的No Equalization Needed Received bit设为1;

(2)

a:收到的8个连续的Modified TS2 Ordered Sets及所有configure的lane中发送的Modified TS2 Ordered Set中的Bypass to Highest NRZ Rate位 (bit 0 of Symbol 5)为1

b:收到的8个连续的TS2 Ordered Sets及发送的TS2 Ordered Sets中的Enhanced Link Behavior Control field (bits 7:6 of Symbol 5)为No Equalization Needed value (10b)或Equalization Bypass to Highest NRZ Rate值 (01b or 10b)

满足a、b条件之一,equalization_done_8GT_data_rate和equalization_done_16GT_data_rate variables设为1

(3)如果进入此状态是由于收到了8个连续且相同的Modified TS2 Ordered Sets,并且Linkup为0,

a:并且收到的8个连续的Modified TS2 Ordered Sets及所有configure的lane中发送的Modified TS2 Ordered Set中的Modified TS Usage field位 (bit 0 of Symbol 5)为010b (Alternate Protocols)

b:在所有配置的lane上发送和接收的Modified TS2 Ordered Sets中的Modified TS Information 1和Alternate Protocol Vendor ID fields相同

同时满足a和b条件,32.0 GT/s Status Register中的Modified TS Received bit设为1(具体的协商过程根据收到的8个连续的Modified TS2 Ordered Sets记录在Received Modified TS Data 1Register 和 Received Modified TS Data 2 Register)

3.linkup = 0 + link两端的component均支持32.0GT/s的速率,根据进入此状态之前发送的8个TS2或收到的连续的8个Modified TS2 Ordered Sets进行如下判断:

(1)

a:收到的8个连续的Modified TS2 Ordered Sets及所有configure的lane中发送的Modified TS2 Ordered Set中的No Equalization Needed bit (bit 1 of Symbol 5)为1

b:收到的8个连续的TS2 Ordered Sets及发送的TS2 Ordered Sets中的Enhanced Link Behavior Control field (bits 7:6 of Symbol 5)为No Equalization Needed value (10b)

满足a、b两种条件之一,那么The equalization_done_8GT_data_rate, equalization_done_16GT_data_rate, equalization_done_32GT_data_rate variables设为1,32.0 GT/s Status Register中的No Equalization Needed Received bit设为1;

(2)

a:收到的8个连续的Modified TS2 Ordered Sets及所有configure的lane中发送的Modified TS2 Ordered Set中的Bypass to Highest NRZ Rate位 (bit 0 of Symbol 5)为1

b:收到的8个连续的TS2 Ordered Sets及发送的TS2 Ordered Sets中的Enhanced Link Behavior Control field (bits 7:6 of Symbol 5)为No Equalization Needed value 或Equalization Bypass to Highest NRZ Rate值 (01b or 10b)

满足a、b条件之一,equalization_done_8GT_data_rate和equalization_done_16GT_data_rate variables设为1

(3)如果进入此状态是由于收到了8个连续且相同的Modified TS2 Ordered Sets,并且Linkup为0,

a:并且收到的8个连续的Modified TS2 Ordered Sets及所有configure的lane中发送的Modified TS2 Ordered Set中的Modified TS Usage field位 (bit 0 of Symbol 5)为010b (Alternate Protocols)

b:在所有配置的lane上发送和接收的Modified TS2 Ordered Sets中的Modified TS Information 1和Alternate Protocol Vendor ID fields相同

同时满足a和b条件,32.0 GT/s Status Register中的Modified TS Received bit设为1(具体的协商过程根据收到的8个连续的Modified TS2 Ordered Sets记录在Received Modified TS Data 1Register 和 Received Modified TS Data 2 Register)

4.当在Non-flit模式下使用128b/130b编码时,

(1)当前数据速率时8.0GT/s时,tx在所有配置的lane上发送SDS ordered set来开启data stream,随后发送idle data symbol在所有配置的lane上。在lane0上第一个发送的idle data symbol就是data stream的第一个symbol

(2)当前速率时16.0GT/s时,在所有配置的lane上发送SDS ordered set来开启data stream之后tx立刻发送control skp ordered set。在lane0上第一个发送的idle data symbol就是data stream的第一个symbol。

5.rx在non-flit模式下等待idle data,在flit模式下等待IDLE flit。

6.Linkup为1;

7.当在non-flit模式下使用8b/10b编码的时候,那么在全部已配置通道上接收到 8 个连续的idle data,并且在收到一个空闲符号后已经发送了 16 个idle data symbol,进入 L0 状态。注意,如果自从最后一次从Recovery状态或configuration状态进入L0时软件写了Link control寄存器中的retrain link比特,那么dsp必须将link status中的link bandwidth management status设为1;当状态转变为L0时,use_modified_TS1_TS2_Ordered_Set设为0。

8.当在non-flit模式下采用 128b/130b 编码方式,那么在全部已配置通道上接收到 8 个连续idle data symbol,并且在收到一个idle data symbol后已经发送了 16 个idle data symbol,并且不是在 Configuration.Complete 状态超时后下进入的本状态,那么跳转至 L0 状态(所谓idle data其实就是数值零经过加扰和编码之后的数值)。注意,在rx的data blocks中必须收到idle data symbol;在data stream开始处理之前lane之前的de-skew必须完成;如果自从最后一次从Recovery状态或configuration状态进入L0时软件写了Link control寄存器中的retrain link比特,那么dsp必须将link status中的link bandwidth management status设为1;当状态转变为L0时,idle_to_rlock_transitioned设为0。

9.在flit 模式下,如果收到了两个连续的IDLE flit,并且在收到一个IDLE flit之后发送了最少要求的数目的idle flit,并且进入当前状态不是从configuration.complete状态超时导致的,那么随后进入L0。(注意这里指的最少要求的数目的idle flit针对8b/10b或者128b/130b来说是4个,针对1b/1b编码是8个)。需要注意的是在data stream开始处理之前lane之前的de-skew必须完成;如果自从最后一次从Recovery状态或configuration状态进入L0时软件写了Link control寄存器中的retrain link比特,那么dsp必须将link status中的link bandwidth management status设为1;当状态转变为L0时,idle_to_rlock_transitioned设为0。

10.

未满足上述条件,2ms 超时后:

如果变量 “idle_to_rlock_transitioned” 小于FFh,那么下一个跳转状态是 Recovery(Recovery.Rcvrlock)。跳转后:

(a)8.0 GT/s 时,变量 idle_to_rlock_transitioned 自增 1。

(b)2.5 或者 5.0 GT/s 时,变量 idle_to_rlock_transitioned 设置为 FFh。

注意:该变量记录了因为配置过程没有起作用,从而导致状态机从 Configuration.Idle 状态跳转到 Recovery 状态的次数。这可能是因为均衡设置不合适,或者当前选择的速率无法正常工作导致的,Recovery 状态内会采取措施尝试解决这些问题。该变量限制了从本状态跳转至 Recovery 状态的尝试次数,从而避免了永久的无限循环。如果链路在 256 次尝试后(变量计数至 FFh)仍然没法正常工作,那么跳转回 Detect 状态重新开始,并希望这次能有更好的结果。

否则,即 idle_to_rlock_transitioned 为 FFh 时,跳转至 Detect 状态。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/172757.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Linux】进程间通信

进程间通信 1. 进程间通信介绍1.1 进程间通信目的1.2 进程间通信发展1.3 进程间通信分类1.4 进程间通信的本质理解 2. 管道3. 匿名管道3.1 pipe()函数3.2 站在文件描述符角度-深度理解管道3.3 站在内核角度-管道本质3.4 匿名管道使用步骤3.4 管道读写规则3.5 管道的读与写的五种…

一文带你了解机器翻译的前世今生

引言 我们都知道谷歌翻译,这个网站可以像变魔术一样在100 种不同的人类语言之间进行翻译。它甚至可以在我们的手机和智能手表上使用: 谷歌翻译背后的技术被称为机器翻译。它的出现改变了世界交流方式。 事实证明,在过去几年中,深…

springboot核心原理之@SpringbootApplication

1.SpringbootApplication Configuration标志的类 在spring ioc启动的时候就会加载创建这个类对象 EnableAutoConfiguration 中有两个注解 (1)AutoConfigurationPackage 扫描主程序包(主程序main所在包及其子包) 可以看到这个类 : static c…

Java多线程并发中部分不并发的问题

写Java实验发现个有意思的问题 三个线程,一个线程打印字符a,一个线程打印字符b,另一个线程打印数字,多次运行结果都是先打印混合输出的ab,完了再打印数字 有图有真相,我运行了10次 完整的代码是这个 clas…

Elasticsearch:LangChain 是什么?

当你将应用程序称为 “AI(人工智能)” 时,这通常意味着它包含与学习模型(例如大型语言模型,或 LLM)的交互。 [不那么]有趣的事实是,LLM 的使用实际上并不是使应用程序变得智能的原因。 它的特殊…

显示器校准软件BetterDisplay Pro mac中文版介绍

BetterDisplay Pro mac是一款显示器校准软件,可以帮助用户调整显示器的颜色和亮度,以获得更加真实、清晰和舒适的视觉体验。 BetterDisplay Pro mac软件特点 - 显示器校准:可以根据不同的需求和环境条件调整显示器的颜色、亮度和对比度等参数…

数据里有{1,2,3,4,5,6,7,8,9},请随机打乱顺序,生成一个新的数组

问题:数据里有{1,2,3,4,5,6,7,8,9},请随机打乱顺序,生成一个新的数组。 思路: 旧数组 nums,新数组 newNums 1、先创建一个新数组,用来存打乱数据后的元素,新旧数组的长度要一致 2、然后遍历数组…

OpenCV检测圆形东西是否存在缺口?

文章目录 前言一、试过的方法二、最终使用的方法1.先极坐标变换2.计算斜率 总结 前言 想了挺久,一直没解决这个问题。后面勉强解决了。 一、试过的方法 1.想用圆度来解决,后来发现圆度差值很小,完整的圆圆度0.89,然后有缺角的圆圆…

二十七、微服务案例

目录 一、实现输入搜索功能 1、下载代码,在idea上打开 2、新建RequestParams类,用于接收解析请求 3、在启动类中加入客户端地址Bean,以便实现服务 4、编写搜索方法 5、新建返回分页结果类 6、实现搜索方法 7、编写控制类,…

4.前端--HTML标签-表格列表表单【2023.11.25】

1.表格 1.1表格的作用 表格的作用&#xff1a;表格主要用于显示、展示数据 1.2表格的基本格式 <table><tr><td>单元格内的文字</td><td>单元格内的文字</td>...</tr>... </table><table> </table> 是用于定义表…

【RTP】3: RTPSenderVideo::SendVideo 切片到发送

m98 版本。之前1 2 都是m79.RTPSenderVideo::SendVideo 负责切片,是入口 实际发送要靠: RTPSender* const rtp_sender_; 外部传递的: rtp_rtcp\source\rtp_sender.h 实现了rtp rtcp协议 ,负责实际的打包 新增了一个 TransformableFrameInterface 用的 编码线程 - RTPSend…

Windows开启SQL Server服及1433端口

需求&#xff1a;Windows开启SQL Server服务及1433端口 目前端口没有启动 解决&#xff1a; 打开SQL Server配置管理器&#xff08;winR&#xff09; 各个sqlserver版本在textbox中输入对应的命令如下&#xff1a; SQLServerManager15.msc&#xff08;对于 SQL Server 2019 &am…

⑨【Stream】Redis流是什么?怎么用?: Stream [使用手册]

个人简介&#xff1a;Java领域新星创作者&#xff1b;阿里云技术博主、星级博主、专家博主&#xff1b;正在Java学习的路上摸爬滚打&#xff0c;记录学习的过程~ 个人主页&#xff1a;.29.的博客 学习社区&#xff1a;进去逛一逛~ ⑨Redis Stream基本操作命令汇总 一、Redis流 …

Linux7安装mysql数据库以及navicat远程连接mysql

1.下载地址&#xff1a;MySQL :: Download MySQL Community Server 2.创建mysql目录将压缩包上传到该目录 mkdir /opt/mysql cd /opt/mysql3.解压压缩包 gzip mysql-8.1.0-1.el7.x86_64.rpm-bundle.tar tar -zxvf mysql-8.1.0-1.el7.x86_64.rpm-bundle.tar.gz 4.前置检查 ch…

电子学会C/C++编程等级考试2021年09月(三级)真题解析

C/C++等级考试(1~8级)全部真题・点这里 第1题:余数相同问题 已知三个正整数 a,b,c。 现有一个大于1的整数x,将其作为除数分别除a,b,c,得到的余数相同。 请问满足上述条件的x的最小值是多少? 数据保证x有解。输入: 一行,三个不大于1000000的正整数a,b,c,两个整数…

Windows TCP 通信测试_1

一、单对单通信测试 应用函数 socket、bind、connect、listen、accept、recv、send&#xff08;win下的函数&#xff09;等 1、客户端demo client.cpp #include<WINSOCK2.H> #include<STDIO.H> #include<iostream> #include<cstring> using namespa…

nodejs+vue+python+PHP+微信小程序-婚纱摄影预约系统的设计与实现-安卓-计算机毕业设计

本婚纱摄影预约系统主要包括个人中心、套系风格管理、用户管理、摄影师管理、婚纱套系管理、婚纱套系订单管理、客片欣赏管理、客户样片管理、摄影咨询管理、客户选片管理、系统管理等多个模块。它帮助婚纱摄影预约实现了信息化、网络化&#xff0c;通过测试&#xff0c;实现了…

基于jmeter的性能全流程测试

做性能测试的步骤 1、服务器性能监控 首先要在对应服务器上面安装性能监控工具&#xff0c;比如linux系统下的服务器&#xff0c;可以选择nmon或者其他的监控工具&#xff0c;然后在jmeter模拟场景跑脚本的时候&#xff0c;同时启动监控工具&#xff0c;这样就可以获得jmeter…

Android之高级UI

系统ViewGroup原理解析 常见的布局容器: FrameLayout, LinearLayout,RelativeLayoout,GridLayout 后起之秀&#xff1a;ConstraintLayout,CoordinateLayout Linearlayout Overrideprotected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {if (mOrientation …

STK Components 二次开发-地面站传感器

上一篇我们说了创建地面站&#xff0c;那么这次我们在地面站添加一些特效。 1. 创建地面站 var locationPoint1 new PointCartographic(m_earth, new Cartographic(Trig.DegreesToRadians(117.17066), Trig.DegreesToRadians(31.84056), 240.359)); m_facility new Platfor…