PCIe学习笔记(15)

news2024/11/14 13:51:55

设备就绪状态 (Device Readiness Status,DRS)消息

(Device Readiness Status (DRS) 是PCIe规范中引入的一种机制,旨在改进设备初始化和就绪状态的检测与报告

在以往的PCIe版本中,系统通常依赖于固定的超时机制来判断设备是否已经成功初始化并准备好进行数据传输。然而,这种方法存在一些局限性,例如某些设备可能因为各种内部条件导致初始化时间变长(可选择做DRS和FRS)而固定超时设置可能导致误判或不必要的延迟。例如,当由于某种内部条件导致设备初始化时间异常延长时,系统可能会错误地将该设备超时。

DRS的主要功能和优势:

精确的状态确认:DRS为系统提供了一个积极、准确的方式来确认设备已达到可操作状态。

动态适应性:不同设备可能具有不同的初始化时间和复杂度,DRS允许系统根据每个设备的实际需求调整等待时间,避免了过早或过晚的操作尝试。

性能优化:借助DRS,系统能够更快地识别哪些设备已经准备好处理请求,从而可以立即分配资源给这些设备,减少整体启动时间和提高系统响应速度。

增强稳定性:通过消除由于初始化超时设置不当导致的错误或不稳定情况,DRS有助于提升系统的稳定性和可靠性。

简化固件/软件设计:对于系统固件和操作系统来说,无需再为每种可能的设备类型和场景预设复杂的超时逻辑,而是可以根据设备提供的DRS信息做出决策,简化了驱动程序和系统软件的设计与实现。

参考:https://blog.csdn.net/zhuzongpeng/article/details/135351099

DRS (Device Readiness Status)协议使用pci - sig定义的VDM机制。DRS消息是pci - sig定义的VDM(供应商定义的1型消息),没有有效负载

与其他pci - sig定义的vdm不同,DRS Message的形成遵循以下规则:

•DRS Message的定义如表2-28和图2-31所示

•TLP类型必须为Msg。

•TC[2:0]字段必须为000b。

•Attr[2:0]字段是保留的。

•保留Tag字段。

•“Subtype”字段必须为“08h”。

•Message Routing字段必须设置为100b - Local - Terminate at Receiver。

接收方可以选择检查是否违反这些规则(但不能检查保留位)。这些检查是独立可选的。如果执行这些检查的接收器确定某个TLP违反了这些规则,则该TLP是畸形TLP。

DRS报文的格式如下图:

功能就绪状态消息(FRS)

FRS用以指示Function进入了Configuration-Ready状态。以下Function-Level的事件用以触发FRS,称为FRS事件:参考:PCIe RN (Readiness Notification)介绍_pcie readiness notification-CSDN博客

FRS协议使用pci - sig定义的VDM机制。FRS消息是pci - sig定义的VDM(供应商定义的类型1消息),没有有效负载。

与其他pci - sig定义的vdm不同,FRS Message的形成遵循以下规则:表2-29和图2-32给出了FRS Message的定义。

•TLP类型必须为Msg。

•TC[2:0]字段必须为000b。

•Attr[2:0]字段是保留的。

•保留Tag字段。

•Subtype字段必须为09h。

FRS Reason[3:0]字段表示FRS消息产生的原因:

0001b:收到了DRS消息

消息请求者ID所指示的下游端口收到了DRS消息,并且在链路控制寄存器中将DRS信令控制字段设置为DRS to FRS信令使能

0010b:D3Hot到D0转换完成

(PCIe 包含四种电源状态——D0,D1,D2,D3 (D3hot,D3cold)

1. D0和D3是强制必须存在的状态,D1和D2是可选的状态;

2. D0是full power的状态,D1为slight sleep, D2为deep sleep,D3hot无Main Power但是存在AUX Power,D3cold是全部off的状态;

3. D0分为D0uninitialized和D0active状态, Convertional Reset和FLR后会进入D0uninitialized,配置BME,MSE,ISE后会进入D0active;

4. 按照省电的顺序D0<D1<D2<D3hot<D3cold

            

参考链接:PCI Express学习篇---Power Management(一)_怎样查看pci的power management是那种模式-CSDN博客)

D3Hot到D0转换完成,消息请求者ID指示的功能现在是Configuration-Ready,并已返回到D0uninitialized或D0active状态,具体取决于No_Soft_Reset位的设置

0011b: FLR完成

FLR已经完成,消息请求者ID指示的功能现在是Configuration-Ready

1000b: VF已启用

消息请求者ID表示一个物理功能(PF) -与该PF相关的所有虚拟功能(VF)现在都已准备好配置。

1001b: VF已禁用

消息请求者ID表示一个PF -与该PF相关的所有VF已被禁用,并且该PF中的单根I/O虚拟化(SR-IOV)数据结构现在可以访问。

其他:所有其他值保留

“Message Routing”字段必须清空为“000b”-“路由到根Complex”

接收方可以选择检查是否违反这些规则(但不能检查保留位)。这些检查是独立可选的。如果执行这些检查的接收器确定某个TLP违反了这些规则,则该TLP是畸形TLP。

FRS报文的格式如下图:

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

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

相关文章

天机学堂 第四天 高并发优化总结

前端每隔15秒就发起一次请求&#xff0c;将播放记录写入数据库。 但问题是&#xff0c;提交播放记录的业务太复杂了&#xff0c;其中涉及到大量的数据库操作&#xff1a; 如何进行优化 单机并发能力 变同步为异步 合并写请求 提高单机并发&#xff1a;优化SQL&#xff0c;尽…

vscode中WSL插件的安装配置

1.安装WSL插件 2.点击左下角的蓝色区域&#xff0c;Connect to WSL连接下载Linux系统&#xff0c;我这里下载Ubuntu ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/7ec21d81b4ec49f3856be2d8013bc12f.png 3.输入用户名和密码 4.成功连接 5.配置过程中出现的问题 …

LinuxUNIX系统编程手册——(十四)系统编程概念

14.1 设备专用文件&#xff08;设备文件&#xff09; 设备专用文件与系统的某个设备相对应。在内核中&#xff0c;每种设备类型都有与之相对应的设备驱动程序&#xff0c;用来处理设备的所有 I/O 请求。设备驱动程序属内核代码单元&#xff0c;可执行一系列操作&#xff0c;&a…

服务器SSL证书年费一般多少钱?

SSL证书作为网络安全的重要组成部分&#xff0c;不仅能够保护数据传输的安全性&#xff0c;还能增强用户对网站的信任度。然而&#xff0c;面对市场上众多的SSL证书选项&#xff0c;许多人可能会感到困惑&#xff1a;究竟应该选择哪种类型的SSL证书&#xff1f;它们的价格又是怎…

【从零开始一步步学习VSOA开发】搭建VSOA运行环境

搭建VSOA运行环境 为方便 VSOA 的运行和调测&#xff0c;这里选择RealEvo-Simulator 下的 AMD64 平台作为 VSOA 的硬件运行环境&#xff0c;操作系统则选择标准版的 SylixOS 而不是容器版的SylixOS。 下载虚拟机资源 RealEvo-Simulator 并不自带 AMD64 平台虚拟机&#xff0…

开发板与ubuntu不能ping通怎么办?

TOC 第一步&#xff1a;VMware 设置 打开 VMware Workstation Pro 里的 虚拟机 -> 设置 设置网络适配器为桥接模式。这里不要勾选“复制物理网络连接状态”。 因为电脑是 WiFi 上网&#xff0c;所以需要添加一个网络适配器并设置成 NAT 模式&#xff0c;供虚拟机上网。具…

19066 第K小子串

这个问题可以通过使用集合&#xff08;set&#xff09;和优先队列&#xff08;priority_queue&#xff09;来解决。我们首先遍历字符串的所有子串&#xff0c;然后将这些子串放入一个集合中&#xff0c;这样可以去除重复的子串。然后我们将集合中的子串放入一个优先队列中&…

jvm方法调用指令invokestatic,invokespecial,invokeinterface,invokevirutal分析

写在前面 本文来看下jvm方法调用相关的4个指令invokestatic,invokespecial,invokeinterface,invokevirutal。 1&#xff1a;如何来记 1.1&#xff1a;静态绑定和动态绑定 如果是在编译期就能确定要调用的方法&#xff0c;就叫做静态绑定&#xff0c;比如构造函数方法&#…

Redis RDB AOF持久化 主从集群同步原理

RDB RDB Redis数据备份文件 也被叫做Redis数据快照 简单来说就是 把内存中的所有数据记录到磁盘中 当Redis实例故障实例重启后从磁盘读取快照文件恢复数据 快照文件称为RDB文件 默认时保存在当前运行目录执行时机 执行save命令 127.0.0.1:6379> save OK 127.0.0.1:6379&g…

(002)两数相加

思路分析&#xff1a; 类似于一个大数加法&#xff0c;注意链表的边界和进位&#xff0c;同时还有注意存在两个链表长度不等&#xff0c;需要处理多出来的元素 代码实现&#xff1a; /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNod…

PDF发票解析并将信息回填到前端(1)后端解析PDF

文章目录 参考文章技术栈需求解析发票类型 1. 最终项目结构1.1 说明 2. 相关代码2.1 导入相应的maven依赖2.2 实体类2.3 工具类2.4 三层架构controllerservicemapper 参考文章 参考文章 技术栈 SpringBootVue 需求 本文主要是实现提取发票中的部分内容&#xff0c;并实现自…

单调栈② | Java | LeetCode 接雨水 最大的矩形

42. 接雨水 暴力法 for循环遍历每一个柱子&#xff0c;内层for循环找到左边和右边比它高的柱子 时间复杂度 n^2 优化&#xff1a;添加一个预处理 定义一个数组&#xff0c;存放该柱子右边比他高的柱子是哪一个 再用一个数组&#xff0c;存放该柱子左边比他高的柱子是哪一个 …

html页面下载及多html文件合成单pdf方法

1&#xff0c;html页面下载 &#xff5e;1&#xff0c;首先在edge中微软扩展商店搜索 “SingleFile”添加扩展 浏览器右上角点击扩展按钮 下拉菜单选择管理扩展 点击 获取 Microsoft Edge 扩展 进入微软商店搜索 “singlefile” 点击获取 点击浏览器右上角扩展按钮&#xff0c;…

IPv4 vs IPv6:了解这两大协议的关键差异

我发现&#xff0c;很多找代理IP的朋友在后台问我的问题都很相似&#xff01;都被配置IP的最后一步&#xff1a;选择IPv4还是IPv6&#xff1f;给难住了。昨晚我一晚没睡&#xff0c;终于整理出对IPv4和IPv6的对比总结&#xff0c;从概念阐述到特点对比&#xff0c;再解答IPv6总…

利用 IP 地址进行社交工程攻击?

社交工程攻击是网络安全的主要威胁之一。现在攻击者不再仅依赖技术漏洞&#xff0c;而是想利用人性的弱点来获取有价值的信息或实现非法目的。 IP 地址在社交工程攻击中的作用 定位和伪装获取目标用户的 IP 地址&#xff0c;大致确定目标用户地理位置&#xff0c;然后伪装成当…

spring原理(自学第六天)

Aware 接口及 InitializingBean 接口 今天将会学到Aware 接口及 InitializingBean 接口 我们可以先了解他们的作用&#xff1a; 1. Aware 接口用于注入一些与容器相关信息, 例如 a. BeanNameAware 注入 bean 的名字 b. BeanFactoryAware 注入…

解锁LLM应用潜能:提示工程的39种方法与应用全解析!

大型语言模型&#xff08;LLMs&#xff09;在许多不同的自然语言处理&#xff08;NLP&#xff09;任务上表现出了显著的性能。提示工程在提升LLMs已有能力方面发挥着关键作用&#xff0c;使其在各种NLP任务上取得了显著的性能提升。提示工程需要编写自然语言指令&#xff0c;即…

QT 应用程序输出中文乱码

一 &#xff0c;选择文本编码 1. 点击编辑再点击Select Encoding选择编码 2 .在弹出的窗口&#xff0c;选择UTF-8再点击按编码保存即可 3. 重新编译&#xff0c;可以发现中文乱码问题解决

Spring源码解析(28)之AOP的核心对象创建过程总结

一、总结图 二、总结 以上是对AOP核心对象创建的一个总结&#xff0c;接下来我们分点介绍我们自从定义了aop.xml之后&#xff0c;spring在启动的时候是怎么创建了这些核心对象的。 启动spring容器之后&#xff0c;其实核心是是refresh方法&#xff0c;refresh的13个核心方法&…

CTFHub——XSS——反射型

1、反射型&#xff1a; 发现为表单式&#xff0c;猜测哪个可能存在注入漏洞&#xff0c;分别做测试注入发现name框存在xss漏洞 输入发现有回显但不是对方cookie&#xff0c;参考wp发现要用xss线上平台 将xss平台测试语句注入&#xff0c;将得到的url编码地址填入url框&#xf…