当前位置: 首页 > news >正文

PCIE-变量总结

1.changed_speed_recovery:

表示链路双方已经将链路速率协商为更高的速率。

configuration.complete状态下此变量会reset成0;

当前状态在recovery.rcvrlock状态:

在经过24ms的timeout之后,任何一个已经configured的lane(收到过TS1/TS2)收到了和自己发送的link/lane num匹配的TS1/TS2,并且速率自从进入recovery状态之后没有切到协商的速率后,下个状态是configuration状态,directed_speed_change也会被reset成0

当前状态在recovery.speed状态:

如果tx在如下条件下(此时不在需要处于Electrical Idle),那么下一个状态是Recovery.RcvrLock状态。

(1)如果当前状态是从Recovery.RcvrCfg状态进入的,并且link的两侧均切速成功的话(速率是两侧协商的最高公共速率,successful_speed_negotiation = 1),那么changed_speed_recovery被设为1;

(2)没有速率成功切换的情况下,如果当前子状态是自从L0/L1进入recovery状态下第二次进入该状态(changed_speed_recovery = 1b),那么速率将会切到最初的从L0/L1进入recovery状态下的速率,changed_speed_recovery被设为0;

(3)否则其他情况下新的工作速率将是2.5GT/s,changed_speed_recovery被设为0;

当前状态在recovery.rcvrcfg:

在往Recovery.Idle状态跳转时,changed_speed_recovery,directed_speed_change变量需要reset为0(idle_to_rlock_transitioned小于’hff);

在往Configuration状态跳转时,changed_speed_recovery,directed_speed_change变量需要reset为0

在往recovery.speed状态跳转时如果当前速率自从L0/L1进入recovery状态没有切到双方协商的速率(changed_speed_recovery = 0b),并且EIOS已经被检测到了/Electrical Idle的条件在任意config的lane被检测到了,并且当前工作速率高于2.5GT/s,并且自从进入Recovery.RcvrCfg状态后没有config的lane收到了TS2,那么状态跳转到recovery.speed注意此时changed_speed_recovery将会变为0

2.direct_speed_change:

If greater than 2.5 GT/s data rate support has been noted, the Downstream Port must set the directed_speed_change variable to 1b if the Retrain Link bit of the Link Control Register is set to 1b and the Target Link Speed field in the Link Control 2 Register is not equal to the current Link speed. (l1也会存在)

3.successful_speed_negotiation

Recovery.Speed状态下,

Recovery.RcvrCfg状态下,会将其设为1;具体细节??

4.use_modified_TS1_TS2_Ordered_Set:

使用Modified TS1/TS2

5.Flit_Mode_Enabled

6.L0p_capable

7.SRIS_Mode_Enabled

8.upconfigure_capable:

支持带宽从小变大

9.idle_to_rlock_transitioned:

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

10.start_equalization_w_preset:

为1表示使用预设值,这个变量仅仅在Recovery状态下使用:

(1)Recovery.Equalization: dsp进入phase1后start_equalization_w_preset设为0;usp进入phase0之后start_equalization_w_preset设为0;

(2)Recovery.RcvrCfg:

进入该子状态之后该变量reset为0;

对于usp来说,如果当前速率工作在2.5GT/s或者5.0GT/s下,8个TS2已经进行彼此之间的advertising(8.0 GT/s是支持的最高速率),那么必须要将start_equalization_w_preset设定为1,并且执行一些更新(这些更新包含:1. 用收到的连续的8个EQ TS2去更新更新tx的preset值,也就是Lane Equalization Control Register Entry寄存器中的域,2.用收到的连续的8个EQ TS2去更新8.0GT/s的Lane Equalization Control Register Entry中的Receiver Preset Hint fields);

对于usp来说,当前速率工作在2.5GT/s或者5.0GT/s下 -> 32.0 GT/s是支持的最高速率,并且equalization bypass to the highest NRZ rate在彼此之间已经协商成功(configuration阶段),那么start_equalization_w_preset设定为1,执行一些更新(仅更新tx preset,Lane Equalization Control Register Entry寄存器中的);
 

对于usp来说,当前速率工作在8.0GT/s下 -> 16.0 GT/s是支持的最高速率,收到的连续的TS2是128b/130b EQ TS2,那么start_equalization_w_preset设定为1,执行一些更新(仅更新tx preset,Lane Equalization Control Register Entry寄存器中的);

对于usp来说,当前速率工作在16.0GT/s下 -> 32.0 GT/s是支持的最高速率,收到的连续的TS2是128b/130b EQ TS2,那么start_equalization_w_preset设定为1,执行一些更新(仅更新tx preset,Lane Equalization Control Register Entry寄存器中的);

对于usp来说,当前速率工作在32.0GT/s下 -> 64.0 GT/s是支持的最高速率,收到的连续的TS2是128b/130b EQ TS2,那么start_equalization_w_preset设定为1,执行一些更新(仅更新tx preset,Lane Equalization Control Register Entry寄存器中的);

对于dsp来说,在如下条件之一满足的情况下,start_equalization_w_preset设定为1:

(1)equalization_done_8GT_data_rate 为0;

(2)彼此双方支持16.0 GT/s的速率,但是equalization_done_16GT_data_rate变量为0;

(3)彼此双方支持16.0 GT/s的速率,但是equalization_done_16GT_data_rate变量为0;

(4)彼此双方支持32.0 GT/s的速率,但是equalization_done_32GT_data_rate变量为0;

(5)彼此双方支持64.0 GT/s的速率,但是equalization_done_64GT_data_rate变量为0;

(6)link control3中的Perform Equalization bit被设定为1;

11.select_deemphasis:

a:detect.quit:The select_deemphasis variable must be set to either 0b or 1b based on platform specific needs for an Upstream Port and identical to the Selectable Preset/De-emphasis bit in the Link Control 2 Register for a Downstream Port.

b:recovery.speed:If the negotiated data rate is 5.0 GT/s, and if operating in full swing mode, -6 dB de-emphasis level must be selected for operation if the select_deemphasis variable is 0b and -3.5 dB de-emphasis level must be selected for operation if the select_deemphasis variable is 1b.

c:recovery.cfg:On entry to this substate, a Downstream Port must set the select_deemphasis variable equal to the Selectable De-emphasis field in the Link Control 2 Register or adopt some implementation specific mechanism to set the select_deemphasis variable, including using the value requested by the Upstream Port in the eight consecutive TS1 Ordered Sets it received. A Downstream Port advertising 5.0 GT/s data rate support must set the Selectable De-emphasis bit (Symbol 4 bit 6) of the TS2 Ordered Sets it transmits identical to the select_deemphasis variable.

Upstream Ports must register the Selectable De-emphasis bit (bit 6 of Symbol 4) advertised in these eight consecutive TS2 Ordered Sets in the select_deemphasis variable.

12.select_preset:仅仅用在Polling.Compliance状态中

13.equalization_done_8GT_data_rate

14.equalization_done_16GT_data_rate

15.equalization_done_32GT_data_rate

16.equalization_done_64GT_data_rate

相关文章:

PCIE-变量总结

1.changed_speed_recovery: 表示链路双方已经将链路速率协商为更高的速率。 在configuration.complete状态下此变量会reset成0; 当前状态在recovery.rcvrlock状态: 在经过24ms的timeout之后,任何一个已经configured的lane&…...

【iOS】AFNetworing初步学习

文章目录 前言OC的网络请求步骤单例封装网络请求使用AFNetworking进行网络请求 前言 在暑假,学习了一些简单的网络请求的内容,本周学习了AFNetworking的基本使用,通过本篇博客进行一个简单的介绍。 OC的网络请求步骤 简单的网络请求主要有…...

【数据结构】堆的创建

Heap.h #include<stdio.h> #include<stdlib.h> #include<stdbool.h> #include<assert.h>//创建堆结构体 typedef int HPDateType; typedef struct Heap {HPDateType* a;int size;int capacity; }HP;//堆的初始化 void HPInit(HP* php);//堆的销毁 voi…...

Linux下Git操作

一、基本命令 1、创建 git 目录&#xff08;工作区&#xff09; mkdir gitcode 2、创建本地仓库&#xff0c;生成 .git 隐藏目录 git init 3、设置配置项 git config user.name "xxx" git config user.email "....." 4、查看配置项 git config -l …...

缺失d3dx9_42.dll如何修复,d3dx9_42.dll故障的6种修复方法分享

在电脑使用过程中&#xff0c;许多游戏玩家和软件用户可能都遇到过d3dx9_42.dll丢失的问题。这个问题会导致游戏或软件无法正常运行&#xff0c;给用户带来诸多不便。本文将详细解读d3dx9_42.dll丢失的原因、影响及解决方案&#xff0c;帮助大家顺利解决这个问题。 一、d3dx9_4…...

深入理解Android WebView的加载流程与事件回调

文章目录 一、WebView 加载流程时序图二、WebView 加载流程回调函数说明三、AwContents3.1 主要功能和职责3.2 架构和实现3.3 使用场景 四、利用WebView回调函数检测白屏4.1 使用onPageStarted和onPageFinished检测加载时间4.2 利用onReceivedError和onReceivedHttpError检测加…...

机器视觉相机自动对焦算法

第一&#xff0c;Brenner梯度法、 第二&#xff0c;Tenegrad梯度法、 第三&#xff0c;laplace梯度法、 第四&#xff0c;方差法、 第五&#xff0c;能量梯度法。 此实例通过使用Halcon实现5种清晰度算法函数&#xff1a; 1. 方差算法函数&#xff1b; 2. 拉普拉斯能量函数…...

StarTowerChain:开启去中心化创新篇章

官网&#xff1a; www.startower.fr 在当今创新驱动的时代&#xff0c;StarTowerChain 以其独特的去中心化创新模式&#xff0c;为我们带来了新的希望和机遇。去中心化&#xff0c;这个充满活力与创造力的理念&#xff0c;正引领着我们走向未来的创新之路。 StarTowerChain …...

SpringCloudStream使用StreamBridge实现延时队列

利用RabbitMQ实现消息的延迟队列 一、安装RabbitMQ 1、安装rabbitmq 安装可以看https://blog.csdn.net/qq_38618691/article/details/118223851,进行安装。 2、安装插件 安装完毕后,exchange是不支持延迟类型的,需要手动安装插件,需要和安装的rabbitmq版本一致 https:…...

MATLAB中head函数用法

目录 语法 说明 示例 显示矩阵的前八行 显示表的前三行 返回表的前八行 head函数的功能是获取数组或表的顶行。 语法 head(A) head(A,k) B head(___) 说明 head(A) 在命令行窗口中显示数组、表或时间表 A 的前八行&#xff0c;但不存储值。 head(A,k) 显示 A 的前 k …...

golang 基本数据类型

1. go语言的数据类型简介 golang的数据类型分为两大类&#xff0c;一类是基本数据类型和符合数据类型&#xff1b; 按照传递的内容分&#xff1a;传递本身数据和传递地址&#xff1b; golang和java很相似&#xff0c;都是值传递&#xff0c;不过分为传递的值和传递的地址&a…...

各种查询sql介绍

1. 关联查询&#xff08;JOIN&#xff09; 关联查询用于从多个表中检索数据。它基于两个或多个表之间的共同字段&#xff08;通常是主键和外键&#xff09;来组合数据。 内连接&#xff08;INNER JOIN&#xff09;&#xff1a; sql SELECT a.name, b.order_date FROM custome…...

Guava防击穿回源-异步防击穿

异步防击穿策略 在高并发环境下,缓存击穿(Cache Stampede)是一种常见的问题。当缓存中的热点数据失效或未命中时,大量并发请求同时访问后端数据源(如数据库),可能导致后端系统压力骤增,甚至出现崩溃。为了有效防止这种情况,可以利用Guava提供的异步缓存加载机制(类似…...

人工智能正在扼杀云计算的可持续性

可持续性曾是公共云计算中备受推崇的优势。企业和云提供商大肆宣扬他们的绿色计划&#xff0c;推广采用可再生能源的数据中心&#xff0c;以减少碳足迹。 近几个月来&#xff0c;这个话题已悄然淡出人们的视线。罪魁祸首是什么&#xff1f;对人工智能功能的无限需求正在推动云…...

C# 条形码、二维码标签打印程序

1、条码标答打印主界面 2、打印设置 3、生成QR代码 private void GetBarcode_T(string lr) { QRCodeEncoder qrCodeEncoder = new QRCodeEncoder();//创建一个对象 qrCodeEncoder.QRCodeEncodeMode = QRCodeEncoder.ENCODE_MODE.BYTE; //设置编码测量…...

嵌入式入门学习——6Protues点亮数码管,认识位码和段码,分辨共阴还是共阳(数字时钟第一步)

0 系列文章入口 嵌入式入门学习——0快速入门&#xff0c;Let‘s Do It&#xff01; 首先新建基于Arduino UNO的protues工程&#xff0c;见本系列第3篇文章 1 点“P”按钮找器件 2 输入“seg”或“digit”查找数码管器件 3 找到我们想要的6位7段数码管 4如图A、B…DP都是段码…...

poisson过程——随机模拟(Python和R实现)

Python实现 exponential()使用&#xff0c;自动poisson过程实现。 import numpy as np import matplotlib.pyplot as plt# Parameters lambda_rate 5 # rate parameter (events per time unit) T 10 # total time# Generate Poisson process times np.random.exponential(…...

100 种下划线 / 覆盖层动画 | 终极 CSS(层叠样式表)集合

还在为你的菜单项和链接寻找动画效果而感到疲惫吗&#xff1f; 不用再找了&#xff01;这里列出了 100 多种不同的动画。从简单的到更复杂的&#xff0c;你肯定能找到自己想要的。 无需 SVG&#xff08;可缩放矢量图形&#xff09;&#xff0c;无需 JavaScript&#xff08;脚…...

华为ICT大赛2024-2025网络赛道考试分析

华为ICT大赛2024-2025正在报名中&#xff0c;网络赛道的同学如何备考&#xff0c;了解考试内容呢&#xff1f; 一、考试概况 华为ICT大赛分为4个赛段&#xff0c;分别为省赛初赛、省赛复赛、中国总决赛&#xff0c;全球总决赛。其中对应的能力级别分别如下&#xff1a; 省赛…...

linux 效率化 - 输入法 - fcitx5

安装 Fcitx5 1. 卸载 ibus 框架 由于 ibus 和 fcitx 可能会冲突&#xff0c;先卸载 ibus&#xff08;暂未确认原因&#xff09; sudo apt remove --purge ibus2. 安装 fcitx5 输入法框架 sudo apt update sudo apt install fcitx5 fcitx5-chinese-addons fcitx5-frontend-gtk…...

嵌入式环形缓冲区LwRB:高效数据流管理实践

1. 环形缓冲区&#xff1a;嵌入式数据流管理的基石在嵌入式系统开发中&#xff0c;数据流管理是个永恒的话题。想象一下这样的场景&#xff1a;你的物联网设备每秒接收数百个传感器数据包&#xff0c;串口不断涌入数据&#xff0c;而处理器需要有条不紊地处理这些信息。传统线性…...

联邦学习实战解析:FedAvg算法在非独立同分布数据下的优化策略

1. FedAvg算法在非独立同分布数据中的核心挑战 非独立同分布&#xff08;Non-IID&#xff09;数据是联邦学习中最常见的现实场景。想象一下&#xff0c;十个不同地区的医院合作训练医疗影像模型&#xff1a;北京医院的CT扫描以肺部疾病为主&#xff0c;上海医院的数据集可能更多…...

Obsidian个性化首页配置指南:从零开始构建高效知识管理中心

Obsidian个性化首页配置指南&#xff1a;从零开始构建高效知识管理中心 【免费下载链接】obsidian-homepage Obsidian homepage - Minimal and aesthetic template (with my unique features) 项目地址: https://gitcode.com/gh_mirrors/obs/obsidian-homepage 在信息爆…...

HarmonyOS6 半年磨一剑 - RcSwitch 组件尺寸系统与宽度计算机制深度剖析

文章目录前言一、三档语义化尺寸1.1 预设尺寸与像素映射1.2 数字类型直传二、宽度计算&#xff1a;独立参数与比例推算2.1 switchWidth 优先级2.2 黄金比例 1.82.3 自定义宽度的典型场景三、圆点尺寸计算&#xff1a;switchSpace 的作用3.1 间距参数的意义3.2 三个间距档位的视…...

面向商业航天的高可靠电机控制系统:从环境约束到芯片实现

摘要商业航天已成为全球航天产业高质量发展的核心增长极&#xff0c;电机控制系统作为运载火箭、卫星平台、空间载荷与在轨服务装备的关键执行机构&#xff0c;其在轨可靠性、控制精度与环境适应性直接决定航天任务成败。本文系统梳理商业航天电机控制领域的技术演进、典型负载…...

深入解析Flash芯片测试:从基础操作到高级模式切换

1. Flash芯片测试基础入门 第一次接触Flash芯片测试时&#xff0c;我也被各种专业术语搞得晕头转向。经过几个项目的实战&#xff0c;我发现只要掌握几个核心概念&#xff0c;就能快速上手。Flash芯片和我们平时用的U盘、SSD本质上是一类东西&#xff0c;但测试时需要关注的点…...

圣女司幼幽-造相Z-Turbo进阶用法:用Python脚本批量生成角色图教程

圣女司幼幽-造相Z-Turbo进阶用法&#xff1a;用Python脚本批量生成角色图教程 1. 从手动点击到自动生成&#xff1a;为什么需要脚本批量处理&#xff1f; 如果你已经体验过圣女司幼幽-造相Z-Turbo的Web界面&#xff0c;手动输入提示词、点击生成按钮&#xff0c;看着一张张精…...

效率提升利器:快马一键生成网络配置脚本与故障排查模拟环境

最近在准备计算机三级网络技术考试&#xff0c;发现手动搭建实验环境和编写配置脚本特别耗时。为了提升学习效率&#xff0c;我用InsCode(快马)平台开发了一个网络技术练习工具&#xff0c;分享下实现思路和使用体验。 核心功能设计 这个工具主要解决三个痛点&#xff1a;配置脚…...

贪心算法解决区间问题:合并、选点、覆盖、最大不相交

一、前言 区间问题是贪心算法中的高频考点&#xff0c;而贪心算法是解决这类问题的 “黄金搭档”。本文将系统讲解基于贪心算法的四类经典区间问题&#xff1a;区间合并、区间选点、区间覆盖、最大不相交区间数量&#xff0c;帮助你彻底掌握这类问题的解题思路。 二、核心思想…...

动态分区算法实战:首次适应与最佳适应的内存管理对比

1. 动态分区算法入门&#xff1a;内存管理的两大核心策略 想象你是一个仓库管理员&#xff0c;面对一堆大小不一的货物和不断变化的存取需求&#xff0c;如何高效利用有限空间&#xff1f;这就是操作系统内存管理要解决的核心问题。动态分区算法中的**首次适应&#xff08;Firs…...