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

news2024/11/25 0:50:00

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.coloradmin.cn/o/1672781.html

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

相关文章

数据结构与算法-排序算法1-冒泡排序

本文先介绍排序算法,然后具体写冒泡排序。 目录 1.排序算法简介 2.常见的排序算法分类如下图: 3.冒泡排序: 1.介绍: 2.动态图解 3.举例 4.小结冒泡排序规则 5.冒泡排序代码 6.优化 7.优化后时间 代码: 运…

Java | Leetcode Java题解之第88题合并两个有序数组

题目: 题解: class Solution {public void merge(int[] nums1, int m, int[] nums2, int n) {int p1 m - 1, p2 n - 1;int tail m n - 1;int cur;while (p1 > 0 || p2 > 0) {if (p1 -1) {cur nums2[p2--];} else if (p2 -1) {cur nums1[p…

Vue的学习 —— <vue指令>

目录 前言 正文 内容渲染指令 内容渲染指令的使用方法 v-text v-html 属性绑定指令 双向数据绑定指令 事件绑定指令 条件渲染指令 循环列表渲染指令 侦听器 前言 在完成Vue开发环境的搭建后,若想将Vue应用于实际项目,首要任务是学习Vue的基…

黑马基于Web-socket的java聊天室基本解析

要是用Web-socket协议&#xff0c;我们要前端upgrade升级成web-socket协议 首先我们要引入springboot的websocket起步依赖&#xff0c;这样子方便使用&#xff0c;自己指定版本注意 <dependency><groupId>org.springframework.boot</groupId><artifactId&…

绘唐3启动器怎么启动一键追爆款3正式版

绘唐3启动器怎么启动一键追爆款3正式版 工具入口 一.文案助手&#xff1a; 【注意&#xff01;&#xff01;】如果图片无显示&#xff0c;一般情况下被杀毒拦截&#xff0c;需关闭杀毒软件或者信任文件路径。 win10设置排除文件&#xff1a; 1.【新建工程】使用前先新建工程…

std::ref和std::cref的使用和原理分析

目录 1.用法 2.std::reference_wrapper介绍 3.std::ref原理分析 4.std::cref原理分析 5.总结 1.用法 它的定义如下&#xff1a; std::ref&#xff1a;用于包装按引用传递的值。 std::cref&#xff1a;用户包装按const引用传递的值。 C本身就有引用&#xff08;&&#…

使用 Python 中的 TensorFlow 检测垃圾短信

前言 系列专栏&#xff1a;机器学习&#xff1a;高级应用与实践【项目实战100】【2024】✨︎ 在本专栏中不仅包含一些适合初学者的最新机器学习项目&#xff0c;每个项目都处理一组不同的问题&#xff0c;包括监督和无监督学习、分类、回归和聚类&#xff0c;而且涉及创建深度学…

【鸿蒙开发】第二十四章 IPC与RPC进程间通讯服务

1 IPC与RPC通信概述 IPC&#xff08;Inter-Process Communication&#xff09;与RPC&#xff08;Remote Procedure Call&#xff09;用于实现跨进程通信&#xff0c;不同的是前者使用Binder驱动&#xff0c;用于设备内的跨进程通信&#xff0c;后者使用软总线驱动&#xff0c;…

一个基于servlet的MVC项目-登录验证

一、MVC的概念 MVC是Model、View、Controller的缩写&#xff0c;分别代表 Web 应用程序中的3种职责1 模型:用于存储数据以及处理用户请求的业务逻辑。 2视图:向控制器提交数据&#xff0c;显示模型中的数据。 3控制器:根据视图提出的请求&#xff0c;判断将请求和数据交给哪个…

Linux下网络命令

目录 需求1-查看本机是否存在22端口解法1解法2解法3 需求2-查看其他主机是否存在22端口解法1解法2解法3 需求3-查看TCP连接解法1/2 需求4-统计80端口tcp连接次数解法 需求5-查看总体网络速度解法 需求6-查看进程流量解法 需求7-dns解法 需求8-traceroute到baidu解法 需求9-查看…

git仓库使用

git仓库是会限制空间大小限制的 git网络库的容量限制_github仓库大小限制-CSDN博客 git是用于管理github的工具 电脑左下角搜索git打开GitBash.exe 进入到要下载到本地的目录 下载到本地的文件不要更改&#xff01; 如果要使用请务必把文件复制到别的空间去再在这个别的空间…

centos7中查询Nacos的安装路径和配置信息如何查找?

在 CentOS 7 上查询 Nacos 的安装路径和配置信息通常涉及几个步骤。这些步骤主要依赖于你是如何安装 Nacos 的&#xff08;比如使用压缩包还是 Docker 等方式&#xff09;。下面是一些通用的方法来帮助你找到 Nacos 的安装路径和配置信息&#xff1a; 1. 查找 Nacos 的安装路径…

智能自助终端主板RK3288/RK3568在酒店前台自助机方案的应用,支持鸿蒙,支持免费定制

酒店前台自助机解决方案是一款基于自助服务终端&#xff0c;能够让客人通过简单的操作完成入住登记/退房的解决方案&#xff0c;大幅提高酒店的工作效率&#xff0c;提升客人体验&#xff0c;降低人力成本。 该方案解决了以下传统前台登记入住方式的痛点&#xff1a; 1、人流量…

elasticsearch 动态映射

文章目录 动态映射动态映射的弊端静态映射实战&#xff1a;映射创建后还可以更新吗 动态映射 动态映射的核心是在自动检测字段类型后添加新字段 哪些字段类型支持动态检测呢&#xff1f; 答&#xff1a;boolean类型、float类型、long类型、Object类型、Array类型、date类型、…

Hive-表设计优化

Hive-表设计优化 1.Hive查询基本原理 Hive的设计思想是通过元数据解析描述将HDFS上的文件映射成表。 基本的查询原理是当用户通过HQL语句对Hive中的表进行复杂数据处理和计算时&#xff0c;默认将其转换为分布式计算MapReduce程序对HDFS中的数据进行读取处理的过程。 当执行…

黑马甄选离线数仓项目day02(数据采集)

datax介绍 官网&#xff1a; https://github.com/alibaba/DataX/blob/master/introduction.md DataX 是阿里云 DataWorks数据集成 的开源版本&#xff0c;在阿里巴巴集团内被广泛使用的离线数据同步工具/平台。 DataX 实现了包括 MySQL、Oracle、OceanBase、SqlServer、Postgre…

48-Qt控件详解:Buttons Containers2

一 Group Box:组合框 #include "widget.h"#include<QGroupBox> #include<QRadioButton> #include<QPushButton> #include<QVBoxLayout>//可以在水平方向和垂直方向进行排列的控件&#xff0c;QHBoxLayout/QVBoxLayout #include <QGridLa…

Adobe Media Encoder ME v24.3.0 解锁版 (视频和音频编码渲染工具)

Adobe系列软件安装目录 一、Adobe Photoshop PS 25.6.0 解锁版 (最流行的图像设计软件) 二、Adobe Media Encoder ME v24.3.0 解锁版 (视频和音频编码渲染工具) 三、Adobe Premiere Pro v24.3.0 解锁版 (领先的视频编辑软件) 四、Adobe After Effects AE v24.3.0 解锁版 (视…

新增柱线组合图、象限图,新增钉钉、飞书、企业微信客户端免密登录,DataEase开源数据可视化分析工具v2.6.0发布

2024年5月13日&#xff0c;人人可用的开源数据可视化分析工具DataEase正式发布v2.6.0版本。 这一版本的功能升级包括&#xff1a;图表方面&#xff0c;新增了柱线组合图、象限图&#xff1b;仪表板方面&#xff0c;支持批量拖拽字段&#xff0c;外部参数新增支持配置过滤组件&…

云原生基础设施和操作系统分论坛 03-在Kubernetes上运行Apache Spark进行大规模数据处理的实践【数据分析】

https://spark.apache.org/视频观看&#xff1a;https://www.bilibili.com/video/BV17J4m1n7Gv/?spm_id_from333.999.0.0 简介 Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。Spark是UC Berkeley AMP lab (加州大学伯克利分校的AMP实验室)所开源的类Hadoop…