PCIE协议-2-事务层规范-TLP Prefix Rules

2.2.10 TLP前缀规则

以下规则适用于任何包含TLP前缀的TLP:

  • 对于任何TLP,TLP中byte0的Fmt[2:0]字段中的值100b表示存在TLP前缀,并且Type[4]位指示TLP前缀的类型。
    • Type[4]位中的值0b表示存在本地TLP前缀。
    • Type[4]位中的值1b表示存在端到端TLP前缀。
  • TLP前缀的byte1到3的格式由其TLP前缀类型定义。
  • 包含TLP前缀的TLP必须有一个底层的TLP头标。违反此规则的接收到的TLP将被视为畸形TLP。这是一个与接收端口相关联的报告错误(见第6.2节)。
  • 允许一个TLP包含多个任何类型的TLP前缀。
    • 当TLP中同时存在本地和端到端TLP前缀时,要求所有的本地TLP前缀都在任何端到端TLP前缀之前。违反此规则的接收到的TLP将被视为畸形TLP。这是一个与接收端口相关联的报告错误(见第6.2节)。
  • 每个TLP前缀的大小为1 DW。可以通过重复TLP前缀来提供额外数据的空间。
  • 如果Fmt和Type字段的值指示存在本地TLP前缀,则根据本地TLP前缀处理(见第2.2.10.1节)。 如果Fmt和Type字段的值指示存在端到端TLP前缀,则根据端到端TLP前缀处理(见第2.2.10.2节)。

2.2.10.1 本地TLP前缀处理

以下规则适用于本地TLP前缀:

  • 本地TLP前缀类型使用Type字段的子字段L[3:0]确定。
  • Type[4]必须为0b。
  • 本地TLP前缀L[3:0]值在表2-36中定义

  • 每个本地TLP前缀类型的大小、路由和流量控制规则是特定的。
  • 接收到不支持的本地TLP前缀类型的TLP是一个错误。如果设置了扩展Fmt字段支持位,除非在另一规格中明确另有规定,违反此规则的TLP将被视为畸形TLP。这是一个与接收端口相关联的报告错误(见第6.2节)。如果清除了扩展Fmt字段支持位,行为是设备定义的。
  • 即使底层TLP受到ECRC(错误校验和)保护,也没有本地TLP前缀受到ECRC保护。

2.2.10.1.1 厂商定义的本地TLP前缀

如表2-36所述,类型VendPrefixL0和VendPrefixL1被保留用作厂商定义的本地TLP前缀。为了最大化互操作性和灵活性,对此类前缀应用了以下规则:

  • 组件不得发送包含厂商定义的本地TLP前缀的TLP,除非已明确使能(使用厂商特定的机制)。
  • 支持任何厂商定义的本地TLP前缀使用的组件必须支持Fmt字段的3位定义,并设置扩展Fmt字段支持位(见第7.5.3.15节)。
  • 建议组件可以配置(使用厂商特定的机制),以便可以使用两种厂商定义的本地TLP前缀编码发送所有厂商定义的前缀。这样的配置不需要对称(例如,链路的每个端点可以使用不同的编码传输相同的前缀)。

2.2.10.2 端到端TLP前缀处理

 以下规则应用于端到端前缀

  • 端到端TLP前缀类型使用Type字段的子字段E[3:0]确定。
    • Type[4]必须为1b。
    • 端到端TLP前缀E[3:0]值在表2-37中定义。

 

  • TLP中允许的端到端TLP前缀的最大数量为4:
    • 支持TLP前缀的接收器必须检查此规则。如果接收器确定TLP违反了此规则,则TLP是畸形TLP。这是一个与接收端口相关联的报告错误(见第6.2节)。
  • 端到端TLP前缀的存在不会改变TLP的路由。TLP的路由基于第2.2.4节中涵盖的路由规则。
  • 功能通过设备能力2寄存器(Device Capabilities 2 register)中的最大端到端TLP前缀字段(Max End-End TLP Prefixes field)来指示它们支持多少端到端TLP前缀(见第7.5.3.15节)。
    • 对于根端口,最大端到端TLP前缀字段允许返回一个值,该值表明支持的端到端TLP前缀比根端口硬件实际实现的少;然而,错误处理语义仍必须基于字段中包含的值。接收到的TLP如果包含的端到端TLP前缀比根端口支持的多,必须如下处理。建议将请求作为不支持的请求处理,但其他情况下必须作为畸形TLP处理。建议将完成作为意外完成处理,但其他情况下必须作为畸形TLP处理。对于入端口接收的TLP,这是一个与入端口相关联的报告错误。对于内部接收以通过出端口传输的TLP,这是一个与出端口相关联的报告错误。见第6.2节。
    • 对于所有其他功能类型,如果接收到的TLP包含的功能支持的端到端TLP前缀多于功能支持的,必须将TLP作为畸形TLP处理。这是一个与接收端口相关联的报告错误(见第6.2节)。
    • 如果支持高级错误报告(Advanced Error Reporting  AER),则按第6.2.4.4节中指定的发生进行AER记录。
  • 如果设置了端到端TLP前缀支持位,则Switch必须支持转发最多带有4个端到端TLP前缀的TLP。
  • 不同根端口如果设置了端到端TLP前缀支持位,允许报告不同的最大端到端TLP前缀值。
  • 如果底层TLP受到ECRC(错误校验和)保护,则所有端到端TLP前缀都受到ECRC保护。
  • 如果不支持端到端TLP前缀的接收器接收到带有端到端TLP前缀的TLP,则是一个错误。违反此规则的TLP将被视为畸形TLP。这是一个与接收端口相关联的报告错误(见第6.2节)。
  • 软件应确保不要向不支持它们的组件发送包含端到端TLP前缀的TLP。如果组件的扩展Fmt字段支持位被清除,可能会误认为TLP包含TLP前缀。
  • 如果上游端口的一个功能具有设置的端到端TLP前缀支持位,则该上游端口的所有功能必须将收到的包含不支持的端到端TLP前缀类型的请求作为不支持的请求来处理。这是一个与接收端口相关联的报告错误(见第6.2节)。
  • 如果上游端口的一个功能具有设置的端到端TLP前缀支持位,则该上游端口的所有功能必须将收到的包含不支持的端到端TLP前缀类型的完成作为意外完成来处理。这是一个与接收端口相关联的报告错误(见第6.2节)。
  • 对于路由元素,每个出口端口中的端到端TLP前缀阻塞位决定是否可以通过该出口端口传输包含端到端TLP前缀的TLP(见第7.5.3.16节)。如果转发被阻塞,则整个TLP被丢弃,并且报告一个TLP前缀阻塞错误。如果被阻塞的TLP是一个非转发请求,出口端口返回一个具有不支持请求完成状态的完成。TLP前缀阻塞错误是与出口端口相关联的报告错误(见第6.2节)。
  • 对于启用了多播的路由元素(见第6.14节),端到端TLP前缀在TLP的所有多播副本中复制。多播包的TLP前缀出口阻塞在每个出口端口独立执行。

2.2.10.2.1 厂商定义的端到端TLP前缀

如表2-37所述,类型VendPrefixE0和VendPrefixE1被保留用作厂商定义的端到端TLP前缀。为了最大化互操作性和灵活性,对此类前缀应用了以下规则:

  • 组件不得发送包含厂商定义的端到端TLP前缀的TLP,除非已明确使能(使用厂商特定的机制)。
  • 建议组件可以配置(使用厂商特定的机制)以使用两种厂商定义的端到端TLP前缀编码。这样做允许在单个PCI Express拓扑内同时使用两种不同的厂商定义的端到端TLP前缀,而不需要每个源都理解它发送的每个TLP的最终目的地址。

2.2.10.2.2 支持端到端TLP前缀的根端口

根端口之间支持包含端到端TLP前缀的TLP的点对点路由是可选的,并且取决于硬件设计。如果根复合体(RC)支持两个或更多根端口之间的端到端TLP前缀路由能力,它必须通过设备能力2寄存器中的端到端TLP前缀支持位在每个相关根端口中指示该能力。

RC不需要支持具有设置端到端TLP前缀支持位的所有根端口对之间的端到端TLP前缀路由。需要在不支持的根端口对之间路由的带有端到端TLP前缀的请求必须作为未知请求(UR)处理。需要在不支持的根端口对之间路由的带有端到端TLP前缀的完成必须作为意外完成(UC)处理。在这两种情况下,错误都由“发送”端口报告。

任何支持由主机软件或根复合体集成端点(RCiEPs)发起的带有端到端TLP前缀的TLP转发的根端口,都必须设置端到端TLP前缀支持位。任何支持将带有端到端TLP前缀的TLP从其入口端口转发到RCiEPs的根端口,都必须设置端到端TLP前缀支持位。

不同根端口如果设置了端到端TLP前缀支持位,允许报告不同的最大端到端TLP前缀值。

当执行根端口之间的点对点路由时,如果根复合体(RC)将TLP分割成更小的TLP,它必须在每个较小的TLP中复制原始TLP的端到端TLP前缀(见第1.3.1节)。

 

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

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

相关文章

R语言数据分析案例-巴西固体燃料排放量预测与分析

1 背景 自18世纪中叶以来,由于快速城市化、人口增长和技术发展,导致一氧化二氮(N2O)、 甲烷(CH4)和二氧化碳(CO 2)等温室气体浓度急剧上升,引发了全球变暖、海平面上 升…

【数据结构】有关栈和队列相互转换问题

文章目录 用队列实现栈思路实现 用栈实现队列思路实现 用队列实现栈 Leetcode-225 用队列实现栈 思路 建立队列的基本结构并实现队列的基本操作 这部分这里就不多说了,需要的可以看笔者的另一篇博客 【数据结构】队列详解(Queue) 就简单带过一下需要实现的功能 …

信息量、熵、KL散度、交叉熵概念理解

信息量、熵、KL散度、交叉熵概念理解 (1) 信息量 信息量是对事件的不确定性的度量。 假设我们听到了两件事,分别如下:事件A:巴西队进入了世界杯决赛圈。 事件B:中国队进入了世界杯决赛圈。仅凭直觉来说,显而易见事件…

Python从0到POC编写-魔法方法

name __name__ 是系统定义的内部函数, 它的作用是识别模块。 通常我们看到这样一句话: if __name__ __main____name__ 的值有两种情况,那么挨个来说下。 如果模块是被直接执行的 ,那么 __name__ 的值 为 __main__ 例如&…

html中用frameset对窗口进行划分

html中&#xff0c;一般有<head><body>等部分&#xff0c;在用<frameset>对窗口进行区域划分时&#xff0c;<body>标签对就不再需要了。直接删除就可以了。 请看下面的示例&#xff1a; 由于使用frameset进行窗口划分时&#xff0c;对于电脑屏幕的划分…

排序-快速排序(Quick Sort)

快排的简介 快速排序&#xff08;Quick Sort&#xff09;是一种高效的排序算法&#xff0c;采用分治法的策略&#xff0c;其基本思想是选择一个基准元素&#xff0c;通过一趟排序将待排序的数据分割成独立的两部分&#xff0c;其中一部分的所有数据都比另外一部分的所有数据要…

Android 老年模式功能 放大字体

1 配置属性 <attr name"text_size_16" format"dimension"/><attr name"text_size_18" format"dimension"/><attr name"text_size_14" format"dimension"/><attr name"text_size_12&quo…

容器组件:Column ,Row(HarmonyOS学习第四课【4.1】)

容器组件-Column Column 容器组件是沿垂直方向布局的容器。该组件从APIVersion7开始支持从API version 9开始&#xff0c;该接口支持在ArkTs,卡片中使用。其可以包含子组件 Column(value?: {space?: string | number}) 参数 space 参数类型string | number 是否必填&am…

第11节 多文件函数生成位置规律

我把多年的shellcode开发经验浓缩在了这个专题课&#x1f469;&#x1f3fb;‍&#x1f4bb;里&#xff0c;主要面向对网络安全技术感兴趣的小伙伴。这是视频版内容对应的文字版材料&#xff0c;内容里面的每一个环境我都亲自测试实操过的记录&#xff0c;有需要的小伙伴可以参…

进程创建-fork

demo1代码状态变迁 demo2代码输出到stdout使用管道 demo1 代码 #include <pthread.h> #include <iostream> #include <unistd.h> int main(int argc, char const *argv[]) {// 1.pid_t x fork();// 2.pid_t y fork();// 3.printf("%d %d\n", x…

【C++】STL-list的使用

目录 1、list的使用 1.1 list的构造 1.2 list的遍历 1.3 list capacity 1.4 list element access 1.5 容量相关 list是一个带头双向循环链表 1、list的使用 1.1 list的构造 1.2 list的遍历 list只有两种遍历方式&#xff0c;因为没有operator[] 因为list的双向链表&am…

《建筑抗震设计规程》DB62/T 3055-2020下载

本规程适用于抗震设防分类为乙类、丙类&#xff0c;抗震设防烈度为6度(0.05g)、7度(0.10g、0.15g)、8度(020g、030g)、9度(0.40g)的多高层钢筋混凝土结构及钢-混凝土混合结构、中等跨度钢屋盖结构、门式刚架钢结构、多低层砖砌体结构房屋建筑的抗震设计。 关于甘肃省地方标准《…

01 | 为什么需要消息队列?

哪些问题适合使用消息队列来解决&#xff1f; 1. 异步处理 2. 流量控制 使用消息队列隔离网关和后端服务&#xff0c;以达到流量控制和保护后端服务的目的。 3. 服务解耦 无论增加、减少下游系统或是下游系统需求如何变化&#xff0c;订单服务都无需做任何更改&#xff0c…

【主题广泛|稳定检索】2024年社会科学、公共服务与人文艺术国际会议(SPSHA 2024)

2024年社会科学、公共服务与人文艺术国际会议&#xff08;SPSHA 2024&#xff09; 2024 International Conference on Social Sciences, Public Services, and Humanities and Arts 【会议简介】 本次会议定于2024年在中国的繁华都市——广州召开&#xff0c;汇聚了全球在该领…

如何挑选护眼灯?分享最好的台灯品牌排行榜

作为家长&#xff0c;孩子的健康无疑是我们最为牵挂的事项。然而&#xff0c;通过研究数据显示&#xff0c;我国青少年儿童的近视率高达52.7%&#xff0c;这意味着在每十名儿童中&#xff0c;就有超过半数的孩子可能面临视力问题。这一数据无疑令人警觉。当我们看到孩子们在写作…

Web3加密空投入门:空投类型有哪些?如何避免限制?

今天分享空投如何避免限制以提高效率&#xff0c;增加成功几率&#xff0c;首先我们来了解什么是空投加密&#xff0c;有哪些空投类型。 一、什么是空投加密&#xff1f; 加密货币空投是一种营销策略&#xff0c;包括向用户的钱包地址发送免费的硬币或代币。 加密货币项目使用…

中医揿针的注意事项

点击文末领取揿针的视频教程跟直播讲解 关于揿针的注意事项&#xff0c;我们可以从以下几个方面进行探讨&#xff1a; 01操作前准备 1. 确保针具的清洁和无菌状态&#xff0c;以避免感染。 2. 了解患者的身体状况&#xff0c;如是否有特殊疾病或过敏史&#xff0c;以便选择…

解码管理新趋势:咨询公司如何助力企业破局升级?

随着数字化、智能化技术的不断发展&#xff0c;企业管理的边界正在被重新定义。传统的层级管理正在向扁平化、网络化转变&#xff0c;员工的参与度和自主性得到了前所未有的提升。同时&#xff0c;企业也更加注重数据驱动决策&#xff0c;通过大数据分析来洞察市场变化&#xf…

STM32 PWM 计数器模式和对齐

STM32 PWM 计数器模式和对齐 1. TIM高级定时器简介2. TIM计数模式2.1 向上计数2.2 向下计数2.3 中心对齐模式&#xff08;向上/向下计数&#xff09;2.4 重复计数 3. PWM输出模式3.1 举例看下PWM中心对齐模式&#xff0c;设置参数如下&#xff1a; 4. FOC中PWM相关设置说明4.1 …

SpringBoot对接微信公众平台(1)--- 配置微信公众平台测试号URL并校检

SpringBoot对接微信公众平台&#xff08;1&#xff09;--- 配置微信公众平台测试号URL并校检 说明微信公众号接口测试号申请后端代码实现内网穿透接口测试 说明 这里记录下自己学习SpringBoot对接微信公众平台的成长过程&#xff0c;以防止后面继续踩坑且方便以后直接使用。这…