PCIE协议-2-事务层规范-Message Request Rules-Vendor_Defined Messages

2.2.8.6 厂商定义消息

厂商定义消息允许扩展PCI Express消息功能,可以作为PCI Express规范的一般扩展,也可以是厂商特定的扩展。本节通用地定义了与这些消息相关的规则。

  • 厂商定义消息(见表2-25)使用图2-28中显示的头标格式。
  • requester ID是特定实现的。强烈建议requester ID字段包含与请求者相关联的值。
  • 如果使用按ID路由,则byte8和9形成一个16位的destination ID字段——否则这些字节是保留的。
  • byte 10和11形成一个16位的厂商ID字段,由定义消息的厂商根据PCI-SIG定义。
  • byte12到15可供厂商定义。

  • 数据有效载荷可以包含在任何类型的厂商定义消息中(如果没有包含数据有效载荷,则TLP类型为Msg;如果包含数据有效载荷,则TLP类型为MsgD)。
  • 由不同厂商或PCI-SIG定义的消息通过VendorID字段中的值来区分。
  • 特定厂商定义的消息的进一步区分超出了本文档的范围。
  • 对特定厂商定义的消息的支持是实现特定的,并且超出了本文档的范围。
  • 完成者(Completers)会默默丢弃它们未设计接收的厂商定义类型1消息——这不是错误条件。
  • 完成者处理接收到的不支持的厂商定义type0消息,作为不支持的请求(Unsupported Request),并且根据第6.2节报告错误。
  • [PCIe-to-PCI-PCI-X-Bridge-1.0]为旨在与PCI-X设备ID消息互操作的厂商定义消息定义了额外的要求。这包括对Tag[7:0]字段和Length[9:0]字段内容的限制,以及对消息头标byte12到15的特定使用。仅打算在PCI Express环境中使用(即,不打算解决PCI Express到PCI/PCI-X桥接器背后的目标)的厂商定义消息不受额外规则的约束。

2.2.8.6.1 PCI-SIG定义的VDMs

PCI-SIG定义的VDMs是使用PCI-SIG厂商ID(0001h)的厂商定义type1消息。作为厂商定义type1消息,如果完成者没有实现它,则每个都会被默默丢弃。 除了其他厂商定义type1消息的规则外,以下规则适用于PCI-SIG定义的VDMs的形成:

  • PCI-SIG定义的VDMs使用图2-29中显示的头标格式。
  • 请求者ID字段必须包含与请求者相关联的值。
  • 消息代码必须是01111111b。
  • 厂商ID必须是0001h,这是分配给PCI-SIG的。
  • 子类型字段用于区分特定的PCI-SIG定义的VDMs。

2.2.8.6.2 LN消息

LN协议定义了LN消息,这些是PCI-SIG定义的厂商type1消息(VDMs)。每个消息的有效载荷通常包含一个已更新或已逐出的寄存缓存行的64位地址。64位单地址格式既用于64位也用于32位地址。由于每个LN消息都是厂商定义type1消息,如果完成者(Completer)接收到一个正确形成的LN消息,而完成者不认识该消息,则必须默默丢弃它。

LN消息可以被定向到使用基于ID的路由的单个EP,或者广播到给定根端口下的所有设备。广播LN消息是否发送到RC(根复合体)中的所有根端口是硬件定义的。

除了其他PCI-SIG定义的VDMs的规则外,以下规则适用于LN消息的形成:

  • 表2-27和图2-30定义了LN消息。
  • 每个消息必须包含一个2DW数据有效载荷。
  • Fmt字段必须是011b(4DW头标,含数据)。
  • TLP类型必须是MsgD。
  • 长度字段必须是2。
  • TC[2:0]字段必须是000b。
  • Attr[2],基于ID的排序(IDO)位,不是保留的。
  • Attr[1],宽松排序(RO)位,不是保留的。
  • Attr[0],无监听(No Snoop)位,是保留的。
  • LN位是保留的(与之相对,对于LN读取、LN写入和LN完成,必须设置LN位)。
  • Tag字段是保留的。
  • 如果LN消息是广播版本,则目标ID字段是保留的。
  • 子类型字段必须是00h。
  • 如果系统中生效的缓存行大小为128字节,缓存行地址中的bit6必须是清除的。对于接收LN消息的轻量级通知请求者(Lightweight Notification Requester  LNR),如果LNR控制寄存器中的LNR CLS位被设置,为128字节缓存行配置LNR,LNR必须忽略缓存行地址中bit6的值。
  • Notification Reason(NR)字段如表2-26所示进行编码,指示发送LN消息的具体原因。这些编码适用于LN消息的定向和广播版本。

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

设备就绪状态(DRS)协议使用PCI-SIG定义的厂商定义消息机制(VDM,见第2.2.8.6.1节)。DRS消息是PCI-SIG定义的厂商type1消息(Vendor-Defined Type 1 Message),没有有效载荷。 除了其他PCI-SIG定义的VDMs的规则外,以下规则适用于DRS消息的形成:

  • 表2-28和图2-31展示并定义了DRS消息。
  • TLP类型必须是Msg(消息)。
  • TC[2:0]字段必须是000b。
  • Attr[2:0]字段是保留的。
  • Tag字段是保留的。
  • 子类型字段必须是08h。
  • 消息路由字段必须设置为100b - 本地 - 在接收器处终止。

接收器可以(但非必须)检查这些规则的违规情况(但不能检查保留位)。这些检查是独立的可选检查(见第6.2.3.4节)。如果实施这些检查的接收器确定TLP违反了这些规则,该TLP是一个畸形TLP。

  • 如果进行了检查,这是一个与接收端口相关联的报告错误(见第6.2节)。

2.2.8.6.4 功能就绪状态消息(Function Readiness Status Message FRS消息)

功能就绪状态(FRS)协议使用PCI-SIG定义的厂商定义消息机制(VDM,见第2.2.8.6.1节)。FRS消息是PCI-SIG定义的厂商type1消息(Vendor-Defined Type 1 Message),没有有效载荷。 除了其他PCI-SIG定义的VDMs的规则外,以下规则适用于FRS消息的形成:

  • 表2-29和图2-32展示并定义了FRS消息。
  • TLP类型必须是Msg(消息)。
  • TC[2:0]字段必须是000b。
  • Attr[2:0]字段是保留的。
  • Tag字段是保留的。
  • 子类型字段必须是09h。
  • FRS Reason[3:0]字段指示为什么生成FRS消息:
    • 0001b:接收到DRS消息
      • 由消息请求者ID指示的下游端口接收到一个DRS消息,并且链路控制寄存器中的DRS信号控制字段设置为DRS到FRS信号使能。
    • 0010b:D3Hot到D0转换完成
      • 一个D3Hot到D0的转换已经完成,由消息请求者ID指示的功能现在配置就绪,并且根据No_Soft_Reset位的设置(见第7.5.2.2节),返回到未初始化或D0 active状态。
    • 0011b:FLR完成
      • 一个功能级重置(FLR)已经完成,由消息请求者ID指示的功能现在配置就绪。
    • 1000b:VF已启用(VFEnabled)
      • 消息请求者ID指示一个物理功能(PF)——与该PF关联的所有虚拟功能(VFs)现在配置就绪。
    • 1001b:VF已禁用(VFDisabled)
      • 消息请求者ID指示一个PF——与该PF关联的所有VFs已被禁用,并且现在可以访问该PF中的SR-IOV数据结构。
    • 其他值:
      • 所有其他值均为保留。
  • 消息路由字段必须清除为000b —— 路由到根复合体(Routed to Root Complex)。

接收器可以(但非必须)检查这些规则的违规情况(但不能检查保留位)。这些检查是独立的可选检查(见第6.2.3.4节)。如果实施这些检查的接收器确定TLP违反了这些规则,该TLP是一个畸形TLP。

  • 如果进行了检查,这是一个与接收端口相关联的报告错误(见第6.2节)。

 FRS消息的格式如下图2-32所示:

2.2.8.6.5 层次结构ID消息(Hierarchy ID Message

层次结构ID使用PCI-SIG定义的VDM机制(见第2.2.8.6.1节)。层次结构ID消息是PCI-SIG定义的VDM(厂商type1消息)带有有效载荷(MsgD)。

除了其他PCI-SIG定义的VDMs的规则外,以下规则适用于层次结构ID消息的形成:

  • 表2-30和图2-33展示并定义了层次结构ID消息。
  • TLP类型必须是MsgD。
  • 每个消息必须包含一个4双字(4-DWORD)数据有效载荷。

  • 长度字段必须是4。

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

  • Attr[2:0]字段是保留的。
  • 标签字段是保留的。
  • 子类型字段是01h。
  • 消息路由字段必须是011b - 从根复合体广播。

接收器可以(但非必须)检查这些规则的违规情况(但不能检查保留位)。这些检查是独立的可选检查(见第6.2.3.4节)。如果实施这些检查的接收器确定TLP违反了这些规则,该TLP是一个格式错误的TLP。如果进行了检查,这是一个与接收端口相关联的报告错误(见第6.2节)。

每个层次结构ID消息的有效载荷包含系统GUID的低128位。

有关层次结构ID、GUID授权ID和系统GUID字段的详细信息,见第6.26节。

 2.2.8.7 被忽略的消息(Ignored Messages

在本文档中列出的消息之前是用于一个不再被支持的机制(热插拔信号)。强烈建议发送器不要传输这些消息,但如果实现了消息传输,它必须符合本规范1.0a版本的要求。 接收器强烈建议忽略这些消息的接收,但允许按照本规范1.0a版本的要求处理这些消息。

在表2-31中列出的被忽略的消息由接收器如下处理:

  • 物理层和数据链路层必须像处理任何其他TLP一样处理这些消息。
  • 事务层必须考虑流量控制信用,但对这些消息不采取其他行动。

 

2.2.8.8 延迟容忍度报告(Latency Tolerance Reporting LTR)消息

LTR消息可选择性地用于报告设备关于其对读写服务延迟容忍度的行为。 有关LTR的详细信息,请参见第6.18节。以下规则适用于LTR消息的形成:

  • 表2-32定义了LTR消息。
  • LTR消息不包含数据有效载荷(TLP类型是Msg)。
  • 长度字段是保留的。
  • LTR消息必须使用默认的流量类别设计符(TCo)。实现LTR支持的接收器必须检查此规则的违规情况。如果接收器确定TLP违反了此规则,它必须将TLP作为畸形TLP处理。
    • 这是一个与接收端口相关联的报告错误(见第6.2节)。

2.2.8.9 优化缓冲区冲刷/填充(Optimized Buffer Flush/Fill  OBFF)消息

OBFF消息可选择性地用于向端点报告平台中央资源状态。此机制在第6.19节中有详细描述。 以下规则适用于OBFF消息的形成:

  • 表2-33定义了OBFF消息。
  • OBFF消息不包含数据有效载荷(TLP类型是Msg)。
  • 长度字段是保留的。
  • 请求者ID必须设置为发送端口的ID。
  • OBFF消息必须使用默认的流量类别设计符(TC0)。实现OBFF支持的接收器必须检查此规则的违规情况。如果接收器确定TLP违反了此规则,它必须将TLP作为畸形TLP处理。
    • 这是一个与接收端口相关联的报告错误(见第6.2节)。

2.2.8.10 精确时间测量(Precision Time Measurement PTM)消息

表2-34定义了PTM消息。

  • PTM请求和PTM响应消息必须使用TLP类型为Msg,并且不得包含数据有效载荷。长度字段是保留的。
    • 图2-36展示了PTM请求和响应消息的格式。
  • PTM响应D(Data)消息必须使用TLP类型为MsgD,并且必须在TLP头的byte8到15中包含一个64位的PTM主时间字段,以及包含32位传播延迟字段的1DW有效载荷。
    • 图2-37展示了PTM响应D消息的格式。
    • 有关如何填充PTM响应D消息的详细信息,请参见第6.22.3.2节。
  • 请求者ID必须设置为发送端口的ID。
  • PTM对话被定义为由PTM请求和相应的PTM响应或PTM响应D消息组成的匹配对。
  • PTM消息必须使用默认的流量类别设计符(TC0)。实现PTM的接收器必须检查此规则的违规情况。如果接收器确定TLP违反了此规则,它必须将TLP作为畸形TLP处理。
    • 这是一个与接收端口相关联的报告错误(见第6.2节)。

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

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

相关文章

银行核心背后的落地工程体系丨混沌测试的场景设计与实战演练

本文作者: 张显华、窦智浩、卢进文 与集中式架构相比,分布式架构的系统复杂性呈指数级增长,混沌工程在信创转型、分布式架构转型、小机下移等过程中有效保障了生产的稳定性。本文分享了 TiDB 分布式数据库在银行核心业务系统落地中进行混沌测…

问题—前端调用接口url多加一个/,本地可以调通,测试环境报错302,分开调两个接口

问题背景 接口url前面多加一个/ ,npm run serve 起项目,本地调用正常 npm run build 打包到测试环境,接口出现问题,分开调用接口,且报302错误 问题原因: 本地开发环境和测试环境的URL处理方式不同 本地使…

动态规划-两个数组的dp问题3

文章目录 1. 两个字符串的最小ASCII删除和(712)2. 最长重复子数组(718) 1. 两个字符串的最小ASCII删除和(712) 题目描述: 状态表示: 根据经验以及题目要求,建立二维数…

旧手机-基于Termux配置服务器(不用拿去换钢盆了)

Hi,大家好,我是抢老婆酸奶的小肥仔。 大家用手机这么多年了,手上或多或少都有一两个被替换下来的旧手机,也不用拿去换啥钢盆了,使用Termux可以将旧手机改造成一个服务器。 不多说,直接开干。 1、安装app…

别再找了!吐血整理ChatGPT 3.5/4.0新手使用手册

引领科技潮流的ChatGPT早已名声在外,如今获取ChatGPT已变得触手可及,但很多人还多次提问如何使用chatgpt,为了避免陷入误区,本文旨在为广大ChatGPT爱好者提供一份实用的指南。 因此,帮助大家更好地掌握其使用技巧&…

leetcode.环形链表问题

目录 题目1 示例 解题思路 代码实现 补充 题目2 示例 解题思路 代码实现 题目1 该题链接:https://leetcode.cn/problems/linked-list-cycle/description/ 示例 解题思路 要创建两个指针一个是快指针(fast),另一个慢指针(slow)。快指针走两步慢指…

Linux修改终端命令颜色

1.在家目录中修改.bashrc文件 cd ~ vim .bashrc2.找到PS1相关段落,把其他的注释掉,填上该行代码,修改为自己设置的颜色 (具体颜色查看参考文章) 提供两种颜色,其他的自学调色盘吧(下文有)~ (祝你愉快) ①浅蓝色 深蓝 PS1\[\03…

CSRF 攻击实验:Token 不存在绕过验证

前言 CSRF(Cross-Site Request Forgery),也称为XSRF,是一种安全漏洞,攻击者通过欺骗用户在受信任网站上执行非自愿的操作,以实现未经授权的请求。 CSRF攻击利用了网站对用户提交的请求缺乏充分验证和防范…

基于Java+SpringBoot+vue+elementui 实现猜灯谜答题抽奖系统

目录 系统简介效果图1、手机答题端2、后台系统管理 源码结构源码下载地址技术交流 博主介绍: 计算机科班人,全栈工程师,掌握C、C#、Java、Python、Android等主流编程语言,同时也熟练掌握mysql、oracle、sqlserver等主流数据库&…

MES系统在电线电缆行业生产上的应用

MES系统在线缆行业的应用可以带来多重价值,包括提高生产效率、降低生产成本、提高产品质量、优化库存管理、改善生产环境和提高企业竞争力等方面。因此,在电线电缆行业中广泛应用MES系统可以提高企业的经济效益和社会效益,推动企业发展和行业…

第1章 初始Spring Boot【仿牛客网社区论坛项目】

第1章 初始Spring Boot【仿牛客网社区论坛项目】 前言推荐项目总结第1章初识Spring Boot,开发社区首页1.课程介绍2.搭建开发环境3.Spring入门体验IOC容器体验Bean的生命周期体验配置类体验依赖注入体验三层架构 4.SpringMVC入门配置体验响应数据体验响应Get请求体验…

【项目汇报中的 STAR 法则】项目管理必会的思维分析工具13

STAR法则是《高效培训》一书中所提出的概念,是结构化的一个重要理论,即Situation(情景)、Task(任务)、Action(行动)和Result(结果)。 1.Situation&#xff0…

绝地求生:一穿四教学,绿色玩家也能轻松一穿四

PUBG一穿四速成班开课啦!我这里只做PUBG干货分享,不搬运!不搬运!!不搬运!!! 有很多朋友是否在排位里kd不高,开局不是扎堆roll点就是一直搜东西然后一波就没?这…

机器视觉中的打光技巧、选择光源的流程

目录 基本原则选择照明的考虑因素明场照明和暗场照明全明场照明(漫射照明)技术 特定光源1. 环形光源2. 条形光源3. 同轴光源3.1 何时使用同轴照明?3.2 何时不使用同轴照明? 4. 背光源5. 远心照明6. 点光源7. 穹顶光源8. 线光源9. …

3、架构-事务处理

目录 概述 场景事例 本地事务 实现原子性和持久性 实现隔离性 概述 事务处理几乎在每一个信息系统中都会涉及,它存在的意义是为 了保证系统中所有的数据都是符合期望的,且相互关联的数据之间不 会产生矛盾,即数据状态的一致性&#xff0…

鸿蒙OS开发:【Stage模型应用程序包结构】

Stage模型应用程序包结构 为了让开发者能对应用程序包在不同阶段的形态更有清晰的认知,分别对开发态、编译态、发布态的应用程序结构展开介绍。 开发态包结构 在DevEco Studio上[创建一个项目工程],并尝试创建多个不同类型的Module。根据实际工程中的…

vs2019 c++静态断言 static_assert ()

(1) 静态断言,就是在编译时候,让编译器测试一下, static_assert( bool a , “字符串”) 的第一个参数,若 第一个参数为 true ,则表明程序可以被编译。否则,编译器拒绝编译。这是为了满足某些代码在语法语义…

研究变压器感应耐压试验电源的能效和节能潜力

变压器感应耐压试验电源 变压器感应耐压试验电源在电源行业中是一种非常重要的设备,用于测试和验证变压器的绝缘性能。变压器感应耐压试验电源是一种专门为变压器感应耐压试验而设计的电源设备。它的工作原理基于变压器的感应原理,利用感应电压来对变压器…

实现 Flask 应用的 HTTPS 加密保护

文章目录 1. 获得免费的 SSL 证书步骤: 2. 配置 Flask 应用3. 测试和部署结论结论 在今天的网络环境中,保护网站和用户数据的安全至关重要。通过在 Flask 应用中启用 HTTPS 加密,您可以确保用户的数据在传输过程中得到保护。本文将介绍如何结…

数据分析(二)——导入外部数据,导入Excel数据,CSV文件,txt文件,HTML网页,数据抽取,DataFrame对象的loc属性与iloc属性

一.导入外部数据 1.导入.xIs或.xIsx文件 pd.read_ excel(io,sheet_ name,header) 1.1常用参数说明 ●io:表示.xIs或.xIsx文件路径或类文件对象 ●sheet name:表示工作表,取值如下表所示 ●header:默认值为0,取第一行的值为列名,数据为除列…