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

Configuration.Lanenum.Accept

如果use_modified_TS1_TS2_Ordered_Set1,需要注意:

1tx需要发送Modified TS1而不是正常的TS1

2rx端必须检查是否收到Modified TS1(注意一开始进入这个状态的时候可能还是收到标准的TS1,需要检查的是收到连续的Modified TS1

Dsp

如果dsp在所有通道上都接收到连续两个TS1,它们携带的链路和通道编号都和 dsp在这些通道上发送的数值一致,那么代表usp同意了dsp通告的链路编号和通道编号,dsp随之进入 Configuration.Complete 状态。如果dsp接收到的通道编号顺序与通告的顺序相颠倒,如果dsp支持通道顺序颠倒,那么dsp同样进入 Configuration.Complete状态,并采用接收到的,颠倒的通道编号顺序。(针对usp,进入Configuration.Complete状态的条件是,如果 USP在所有通道上都接收到连续两个TS2,它们携带的链路和通道编号都和 USP 在这些通道上发送的 TS1 中的数值一致,那么USP 进入 Configuration.Complete 状态。)

如果一条正在被配置的链路可以由一部分而不是全部的可用通道组成,这些通道都收到连续两个 TS1 ,链路编号为相同有效的数值,并且通道编号也不为填充符号。那么在这部分通道上发送链路编号相同,通道编号重新编制的 TS1,旨在用更少数量的通道来编成一条链路。新的通道编号必须从 0 开始顺序递增,指派给链路所使用的通道。任何没有接收到 TS1 的通道不能成为链路的一部分,并且中断通道编号递增。举例而言,如果共有 8 条通道,但是通道 2 没有接收到 TS1,那么这组通道将不能组成包括通道 2 的链路。这样一来,不能组成 x8 或者 x4 的链路,只能组成 x2 或者 x1 的链路。剩下不使用的通道,必须在其上发送链路和通道编号都为填充符号的 TS1。此时下个状态是Configuration.Lanenum.Wait。-dsp/usp均满足

如果没有链路可以被配置,或者所有通道接收到两个连续的 TS1,其链路和通道编号都为填充符号,下个状态是detect-dsp/usp均满足

为了避免将链路的宽度配置小于正常宽度,协议建议如果在多通道链路上发现某些通道出现错误或者失去 Block Alignment 状态,那么延迟一段时间后再进行本过程。8b/10b 编码时等待至少 2 TS1128b/130b 编码时至少等待 34 TS1,但任何情况下不要等待超过 1ms-dsp/usp均满足

注意几点:

1)针对Reversed Lane来说,其lane num的变化要求是非常严格的,比如原来lane num0,那么收到的TS1中的Lane num就为n-1;原来为n-1lane,那么收到的TS1中的lane num0-dsp/usp均满足

2)注意,如果use_modified_TS1_TS2_Ordered_Set变量设为1,并且Alternate Protocol Negotiation执行了,那么转换到Configuration.Complete状态必须要延迟10us,直到dsp收到usprsp(这里有问题,什么是Alternate Protocol Negotiation??,usp这里同样有这样的描述,同样需要注意

变量变化:

1.在如下条件下:SRIS_Mode_Enabled设为1:

(1)Linkup = 0;

(2)自从进入Configuration state状态后,port已经发送了SRIS Clocking (Symbol 4, bit 7 = 1b)的TS1;

寄存器变化:

1.如果当前的configuration状态是从recovery状态进入的,那么Link Status Register中的Link Bandwidth Management StatusLink Autonomous Bandwidth Status域需要根据如下规则更新:

(1)由于链路可靠性导致的dsp发起的bandwidth的改变Link Bandwidth Management Status设为1

2bandwidth的改变不是由于dsp,并且收到的连续两个TS1中的Autonomous Change(Symbol 4 bit 6)为0,Link Bandwidth Management Status设为1

3)其他情况下Link Autonomous Bandwidth Status域设为1

Configuration.Complete

Flit_Mode_Enabled为0 + LinkUp为1,允许双方设备在进入本状态时,改变它们的支持速率列表和链路宽度恢复能力(upconfigure capability),但一旦进入本状态后,这些设置就不再允许修改。

Flit_Mode_Enabled为1 + LinkUp为0,允许双方设备在进入本状态时,改变L0p capability,但一旦进入本状态后,这些设置就不再允许修改。

如果use_modified_TS1_TS2_Ordered_Set1,需要注意:

1tx需要发送Modified TS1而不是正常的TS1

2rx端必须检查是否收到Modified TS1(注意一开始进入这个状态的时候可能还是收到标准的TS1,需要检查的是收到连续的Modified TS1

Dsp:

1.在 Configuration.Complete 状态期间,DSP 将发送 TS2 序列,其中的链路和通道编号与接收到的 TS1 中的内容。(针对usp,在Configuration.Complete 状态期间,USP 将发送 TS2 序列,其中的链路和通道编号与接收到的 TS2 中的内容

2.如果该端口能够在当前分配的lane0上向下支持x1链路,并在LinkUp=1b时支持增加链路宽度恢复(upconfigure),那么允许dsp将置位TS2序列中的Upconfigure Capability/L0p比特设为1。-dsp/usp均满足

3.DSP 会记录接收到的 TS2 中的 N_FTS 域数值,其表示对端退出L0s状态必需的 FTS 数量,以备后续使用。-dsp/usp均满足

4.使用8b/10b编码时,必须在离开当前状态前完成通道间去偏移。-dsp/usp均满足

5.如果所有配置中的通道都收到了两个连续的 TS2,其中关闭加扰(Disable Scrambling)比特设置为 1'b1,那么停止对编码进行加扰(scrambling)。发送端发送TS2中Disable Scrambling比特为1的端口也必须停止加扰。在128b/130b 编码模式时,无法关闭加扰,因为添加的扰码对信号完整性的帮助不可或缺。-dsp/usp均满足

6.下个条件是Configuration.Idle状态如果满足如下条件:

当所有发送 TS2 的通道都接收到 8 个满足条件的 TS2 时,并且在接收到一个 TS2 后该通道已经发送至少 16 个 TS2 后,状态机将跳转至下一个状态:Configuration.Idle。这些条件指的是所有接收的 TS2 中都携带有匹配的链路编号和通道编号(非填充符号),匹配的速率标识符( rate identifier),以及匹配的链路 Upconfig Capability 比特。-dsp/usp均满足

7.如果设备支持 2.5 GT/s 以上的速率,那么它必须记录在任何已配置通道上的速率标识符,并覆盖所有此前记录的数值。“changed_speed_recovery” 用于在 Recvory 状态中追踪速率编号的变量,此时清除为 0。-dsp/usp均满足

8.Flit_Mode_Enabled为0的情况下,如果tx发出的TS2中的Link Upconfigure/ L0p Capability (Symbol 4 bit 6)域设置为 1b,并且接收到 8 个连续的 TS2 序列,TS2在该比特上的设置同样为1,变量upconfigure_capable设为1。否则,该变量清除为 0。-dsp/usp均满足

9.Flit_Mode_Enabled为1+ LinkUp=0b的情况下,如果tx发出的TS2中的Link Upconfigure/ L0p Capability (Symbol 4 bit 6)域设置为 1b,并且接收到 8 个连续的 TS2 序列,TS2在该比特上的设置同样为1,那么L0p_capable变量设为1,Device Status 3 Register中的Remote L0p Supported bit设为1;-dsp/usp均满足

10.任何没有配置为链路一部分的通道将与当前的 LTSSM 不再有关联,并且必须设置为下述各种状态中的一种:

(1)与新的 LTSSM 相关联;(针对usp,是指和新的crosslink LTSSM关联)

(2)转为电气空闲状态,这里涉及一种特殊的状态,即这些未被配置进链路的通道曾经在 L0 状态中被配置为链路的一部分,并且从那之后 LinkUp 状态位一直被设置为 1b。如果链路支持 upconfigure,那么它们需要仍然和原来的 LTSSM 相关联。这种情况下,协议建议这些通道仍然保持打开对接收端的终结(termination)特性,因为在 upconfigured 之后,它们又会重新变成链路的一份子。如果不保持终结特性打开,那么在LTSSM从Configuration.Complete 状态转为 Recovery.RcvrCfg 状态时,也需要再次打开(upconfigure_capable变量为1的情况下)。不过,如果这些通道并非曾经是链路的一部分,那么它们无法通过该过程成为链路的一部分。-dsp/usp均满足

对于可选配的 crosslink 特性,接收阻抗必须保持在这两者之间。-dsp/usp均满足

在 LTSSM 返回 Detect 状态后,这些通道会和LTSSM重新和其关联。-dsp/usp均满足

这些通道进入电器空闲状态之前无需发送 EIOS 序列,并且状态转变到Electrical Idle也并不一定需要发生在符号或者命令集的边界上。-dsp/usp均满足

11.

2ms超时后根据如下情况进行:

(1)如果当前状态是2.5GT/s或者5.0GT/s,那么下个状态时detect状态-dsp/usp均满足

(2)如果 idle_to_rlock_transitioned 变量小于 FFh,并且当前数据速率为 8GT/s,那么接下来转入 Configuration.Idle 状态。注意在这次状态跳变中,changed_speed_recovery 变量清除为 0。并且,变量 upconfigure_capable 也可能会被更新(非强制),当至少一个通道上收到8个连续的 TS2 序列,它们都携带有匹配的链路编号和通道编号(非填充符号),如果链路收发双方的 Upconfig Capability 比特都为 1,那么 upconfigure_capable 变量更新为 1b,否则清除为 0。-dsp/usp均满足

(3)任何没有配置为链路一部分的通道将与当前的 LTSSM 不再有关联,其他所需的条件与上述列出的非超时时的条件一致(也就是条件(2))。-dsp/usp均满足

(4)在超时后,如果未满足上一段的条件,则转入 Detect 状态。-dsp/usp均满足

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

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

相关文章

第十七章总结

数据库基础 SQL语言 1、select 语句 select 语句用于从数据中检索数据。语法如下: SELECT 搜选字段列表 FROM 数据表名 WHERE 条件表达式 GROUP BY 字段名 HAVING 条件表达式(指定分组的条件) ORDER BY 字段名[ASC|DESC] 2、insert 语句 insert 语句用于向表中插入新…

Ubuntu20.04 install pnpm

npm install -g pnpm referrence link: Installation | pnpmPrerequisiteshttps://pnpm.io/installation

TrustAsia亮相Matter开发者大会,荣获Matter优秀赋能者奖

11月22日,由CSA(连接标准联盟)中国成员组主办,CSHIA承办的“Matter中国区开发者大会2023” 于杭州举行。 会上,连接标准联盟中国成员组主席宿为民博士、连接标准联盟亚洲区架构师杨莉女士、CSHIA秘书长|中智盟投资创始…

LangChain的简单使用介绍

❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️ 👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博…

微信小程序实现【点击 滑动 评分 评星(5星)】功能

wxml文件&#xff1a; <view class"wxpl_xing"><view class"manyidu">{{scoreContent}}</view><view><block wx:for{{scoreArray}} wx:for-item"item"><view classstarLen bindtapchangeScore data-sy"{{…

力扣283:移动零(JAVA)

题目描述: 意思是将所有0移到最后的同时其余非0元素位置仍然不变 如 1 2 0 5 2 0 经过移动零后变为 1 2 5 2 0 0 思路:使用双指针的思路来写 fast:从左往右遍历数组 slow:非零元素最后的一个位置 将数组分为3个区间 [0,slow]为处理好的非0数据,slow永远指向最后一个非0数据 [s…

案例022:基于微信小程序的行政复议在线预约系统

文末获取源码 开发语言&#xff1a;Java 框架&#xff1a;SSM JDK版本&#xff1a;JDK1.8 数据库&#xff1a;mysql 5.7 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.5.4 小程序框架&#xff1a;uniapp 小程序开发软件&#xff1a;HBuilder X 小程序…

nodejs微信小程序+python+PHP -留学信息查询系统的设计与实现-安卓-计算机毕业设计

目 录 摘 要 I ABSTRACT II 目 录 II 第1章 绪论 1 1.1背景及意义 1 1.2 国内外研究概况 1 1.3 研究的内容 1 第2章 相关技术 3 2.1 nodejs简介 4 2.2 express框架介绍 6 2.4 MySQL数据库 4 第3章 系统分析 5 3.1 需求分析 5 3.2 系统可行性分析 5 3.2.1技术可行性&#xff1a;…

MySQL错误之ONLY_FULL_GROUP_BY

报错信息&#xff1a; 翻译&#xff1a; 对该报错的解释 所以&#xff0c;实际上该报错是由于在SQL查询语句中有group by&#xff0c;而这个包含group by的SQL查询写的并不规范导致的&#xff0c;这个ONLY_FULL_GROUP_BY模式开启之后检查就会很严格&#xff0c;如果select列表…

计算机网络——路由

文章目录 1. 前言&#xff1a;2. 路由基础2.1. 路由的相关概念2.2. 路由的特征2.3. 路由的过程 3 路由协议3.1. 静态路由&#xff1a;3.2. 动态路由&#xff1a;3.2.1. 距离矢量协议3.2.2. OSPF协议&#xff1a;3.2.2.1.OSPF概述OSPF的工作原理路由计算功能特性 3.2.2.2.OSPF报…

Excel中出现“#NAME?”怎么办?(文本原因)

excel 单元格出现 #NAME? 错误的原因有二&#xff1a; 函数公式输入不对导致 #NAME? 错误。 在单元格中字符串的前面加了号&#xff0c;如下图中的--GoJG7sEe6RqgTnlUcitA&#xff0c;本身我们想要的是--GoJG7sEe6RqgTnlUcitA&#xff0c;但因为某些不当的操作在前面加了号&…

vue+SpringBoot的图片上传

前端VUE的代码实现 直接粘贴过来element-UI的组件实现 <el-uploadclass"avatar-uploader"action"/uploadAvatar" //这个action的值是服务端的路径&#xff0c;其他不用改:show-file-list"false":on-success"handleAvatarSuccess"…

万界星空科技商业开源MES/免费MES/低代码MES

万界星空科技商业开源MES可以提供包括制造数据管理、计划排程管理、生产调度管理、库存管理、质量管理、人力资源管理、工作中心/设备管理、工具工装管理、采购管理、成本管理、项目看板管理、生产过程控制、底层数据集成分析、上层数据集成分解等管理模块&#xff0c;打造一个…

141.【Git版本控制-本地仓库-远程仓库-IDEA开发工具全解版】

Git-深入挖掘 (一)、Git分布式版本控制工具1.目标2.概述(1).开发中的实际常见(2).版本控制器的方式(3).SVN (集中版本控制器)(4).Git (分布版本控制器)(5).Git工作流程图 (二)、Git安装与常用命令1.Git环境配置(1).安装Git的操作(2).Git的配置操作(3).为常用的指令配置别名 (可…

element中el-switch的v-model自定义值

一、问题 element中的el-switch的值默认都是true或false&#xff0c;但是有些时候后端接口该字段可能是0或者1&#xff0c;如果说再转换一次值&#xff0c;那就有点太费力了。如下所示&#xff1a; <template><el-switchinactive-text"否"active-text&quo…

【Seata源码学习 】篇四 TM事务管理器是如何开启全局事务

TM发送 单个或批量 消息 以发送GlobalBeginRequest消息为例 TM在执行拦截器链路前将向TC发送GlobalBeginRequest 消息 io.seata.tm.api.DefaultGlobalTransaction#begin(int, java.lang.String) Overridepublic String begin(String applicationId, String transactionServi…

操作系统发展过程--单道批处理系统、多道批处理系统、分时系统、实时系统

一、单道批处理系统 计算机早期&#xff0c;为了能提高利用率&#xff0c;需要尽量保持系统的连续运行&#xff0c;即在处理完一个作业之后&#xff0c;紧接着处理下一个作业&#xff0c;以减少机器的空闲等待时间 1.单道批处理系统的处理过程 为了实现对作业的连续处理&…

51单片机应用从零开始(七)·循环语句(if语句,swtich语句)

51单片机应用从零开始&#xff08;一&#xff09;-CSDN博客 51单片机应用从零开始&#xff08;二&#xff09;-CSDN博客 51单片机应用从零开始&#xff08;三&#xff09;-CSDN博客 51单片机应用从零开始&#xff08;四&#xff09;-CSDN博客 51单片机应用从零开始&#xff08;…

数仓成本下降近一半,StarRocks 存算分离助力云览科技业务出海

成都云览科技有限公司倾力打造了凤凰浏览器&#xff0c;专注于为海外用户提供服务&#xff0c;公司致力于构建一个全球性的数字内容连接入口&#xff0c;为用户带来更为优质、高效、个性化的浏览体验。 作为数据驱动的高科技公司&#xff0c;从数据中挖掘价值一直是公司核心任务…

【Spring进阶系列丨第四篇】学习Spring中的Bean管理(基于xml配置)

前言 在之前的学习中我们知道&#xff0c;容器是一个空间的概念&#xff0c;一般理解为可盛放物体的地方。在Spring容器通常理解为BeanFactory或者ApplicationContext。我们知道spring的IOC容器能够帮我们创建对象&#xff0c;对象交给spring管理之后我们就不用手动去new对象。…