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

PCIE协议-2-事务层规范-MEM/IO/CFG request rules

2.2.7 内存、I/O和配置请求规则

以下规则适用于所有内存、I/O和配置请求。每种类型的请求还有特定的额外规则。

  • 所有内存、I/O和配置请求除了常见的头标字段外,还包括以下字段:
  • requester ID[15:0]和Tag[9:0],形成事务ID。
  • Last DW BE[3:0] and First DW BE[3:0]。对于设置了TH位的内存读取请求和原子操作请求,头标中Last DW BE[3:0] and First DW BE[3:0]的字节位置被重新用于携带ST[7.0]字段。对于设置了TH位的原子操作请求,DW字节使能位的值被认为是保留的。对于清除了TH位的原子操作请求,DW字节使能位是保留的。

对于内存请求,以下规则适用:

  • 内存请求通过地址进行路由,使用64位或32位寻址(见图2-17和图2-18)。

  • 对于内存读取请求,长度不得超过Max_Read_Request_Size指定的值。

  • 对于原子操作请求,表2-12中指定了架构操作数大小及其关联的长度字段值。如果完成器支持原子操作,以下规则适用:完成器必须检查长度字段值,如果该值与架构值不匹配,完成器必须将TLP视为畸形TLP。否则,如果该值与完成器支持的操作数大小不匹配,完成器必须将TLP视为不支持的请求(UR)。这是一个与接收端口相关联的报告错误。

  • 一个FetchAdd请求包含一个操作数,即"add"值。

  • 一个Swap请求包含一个操作数,即"swap"值”。

  • 一个CAS请求包含两个操作数。数据区域中的第一个是“compare”值,第二个是“swap”值。

  • 对于原子操作请求,地址必须与操作数大小自然对齐。完成器必须检查此规则的违规情况,如果TLP违反此规则,则该TLP是一个畸形TLP。这是一个与接收端口相关联的报告错误。

  • 请求不能指定会导致内存空间访问跨越4-KB边界的地址/长度组合。

  1. 接收器可以可选地检查此规则的违规情况。如果实现此检查的接收器确定TLP违反此规则,则该TLP是一个畸形TLP。

    • 如果进行了检查,这是与接收端口相关联的报告错误。
  2. 对于原子操作请求,完成器必须强制检查地址的自然对齐(见上文),已经保证了访问不会跨越4-KB边界,因此不需要单独的4-KB边界检查。
  3. 如果对原子操作CAS请求执行了4-KB边界检查,此检查必须理解TLP长度值是基于两个操作数的大小,而对内存空间的访问是基于一个操作数的大小。

对于I/O(输入/输出)请求,适用以下规则:

  • I/O请求通过地址路由,使用32位寻址(见图2-19)。
  • I/O请求有以下限制:
    • TC[2:0] 必须是 000b(二进制)
    • LN 对于I/O请求不适用,该位是保留的
    • TH 对于I/O请求不适用,该位是保留的
    • Attr[2] 是保留的
    • Attr[1:0] 必须是 00b(二进制)
    • AT[1:0] 必须是 00b(二进制)。接收方不要求或鼓励检查这一点。
    • Length[9:0] 必须是 00 0000 0001b(二进制)
    • Last DW BE[3.0] 必须是 0000b(二进制)

接收方可以选择性检查这些规则的违规情况(但不得检查保留位)。这些检查是独立可选的。如果执行这些检查的接收方确定事务层包(TLP)违反了这些规则,该TLP就是畸形TLP。

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

对于配置请求,适用以下规则:

  • 配置请求通过ID路由,并使用3个DW的头标。
  • 除了所有内存、I/O和配置请求中包含的头标字段以及ID路由字段,配置请求还包含以下额外字段(见图2-20):
    • register number[5:0]
    • extended register number[3:0]
  • 配置请求有以下限制:
    • TC[2:0] 必须是 000b(二进制)
    • LN 对于配置请求不适用,该位是保留的
    • TH 对于配置请求不适用,该位是保留的
    • Attr[2] 是保留的
    • Attr[1:0] 必须是 00b(二进制)
    • AT[1:0] 必须是 00b(二进制)。接收方不需要或鼓励检查这一点。
    • Length[9:0] 必须是 00 0000 0001b(二进制)
    • Last DW BE[3:0] 必须是 0000b(二进制)
  • 接收方可以选择性检查这些规则的违规情况(但不得检查保留位)。这些检查是独立可选的。如果执行这些检查的接收方确定事务层包(TLP)违反了这些规则,该TLP就是畸形TLP。
  • 如果进行了检查,这是一个与接收端口相关联的报告错误。

 MSI/MSI-X 机制使用内存写请求来表示中断消息。用于 MSI/MSI-X 事务的请求格式与上面定义的内存写请求格式相同,并且就排序、流量控制和数据完整性而言,MSI/MSIX 请求与内存写入无法区分。

2.2.7.1 TPH 规则

为 TPH 指定了两种格式。所有提供 TPH 的请求都必须使用基准 TPH 格式(见图 2-22 和图 2-23)。带有可选 TPH TLP 前缀的格式扩展了 TPH 字段(见图 2-21),以提供 Steering Tag (ST) 字段的额外位。

可选的 TPH TLP 前缀用于扩展 TPH 字段。 通过decode byte0 来确定是否存在 TPH TLP 前缀。

对于目标为内存空间的请求,TH 位为 1b 表示 TLP 头标和可选的 TPH TLP 前缀(如果存在)中存在 TPH。

  • 对于提供 TPH 的请求,必须设置 TH 位。
  • 针对具有 TPH TLP 前缀的请求,必须设置 TH 位。 
  • 当 TH 位清零时,PH(处理提示)字段是保留的。
  • 对于所有其他请求,TH 位和 PH 字段都不适用,并且是保留的。
  • 处理提示(PH)字段的映射在图 2-22、图 2-23 和表 2-14 中显示。

PH[1:0] 字段提供了有关数据访问模式的信息,并如表 2-15 中所述所定义。 

转向标签(ST)字段映射到 TLP 头标,如图 2-24、图 2-25 和表 2-16 所示。 

  • ST[7:0] 字段携带转向标签值
    • 所有位都是零的值表示没有转向标签偏好
    • 提供了总共255个唯一的转向标签值

对于不支持 TPH(Translation Process Hierarchy)完成或路由能力的功能,如果接收到设置了 TH 位的事务,则必须忽略 TH 位,并以与未设置 TH 位的相同事务类型的请求相同的方式处理该请求。

 

 

 

相关文章:

PCIE协议-2-事务层规范-MEM/IO/CFG request rules

2.2.7 内存、I/O和配置请求规则 以下规则适用于所有内存、I/O和配置请求。每种类型的请求还有特定的额外规则。 所有内存、I/O和配置请求除了常见的头标字段外,还包括以下字段:requester ID[15:0]和Tag[9:0],形成事务ID。Last DW BE[3:0] a…...

jmeter分布式集群压测

目的:通过多台机器同时运行 性能压测 脚本,模拟更好的并发压力 简单点:就是一个人(控制机controler/调度机 master)做一个项目的时候,压力有点大,会导致结果不理想,这时候找几个人&a…...

美国加州正测试ChatGPT等生成式AI,在4大部门应用

5月11日,美联社消息,美国加州政府正在测试ChatGPT等生成式AI,应用在税收和收费管理部、交通部、公共卫生部以及卫生与公众服务部4大部门。 测试时间6个月,为其提供技术支持的一共有5家公司,分别是OpenAI、Anthropic、…...

【Kali Linux工具篇】wpscan的基本介绍与使用

介绍 WPScan是Kali Linux默认自带的一款漏洞扫描工具,它采用Ruby编写,能够扫描WordPress网站中的多种安全漏洞,其中包括主题漏洞、插件漏洞和WordPress本身的漏洞。最新版本WPScan的数据库中包含超过18000种插件漏洞和2600种主题漏洞&#x…...

C#算法之计数排序

算法释义:计数排序是一种非基于比较的排序算法,它不依赖于比较操作来确定元素的顺序,而是通过键值索引直接确定元素的输出位置。计数排序适用于一定范围内的整数排序。为什么说是一定范围之内呢?原因如下:计数排序的复…...

EasyExcel简单使用

EasyExcel简单使用 ​ 之前一直用的Apache POI来做数据的导入导出&#xff0c;但听说阿里的EasyExcel也拥有POI的功能的同时&#xff0c;在处理大数据量的导入导出的时候性能上比POI更好&#xff0c;所以就来尝试使用一下 导入Maven依赖&#xff1a; <dependency><…...

Notes客户端中的漫游功能

大家好&#xff0c;才是真的好。 故事&#xff0c;首先是从一个小图标开始的&#xff0c;很多人问我Domino公共通讯录中&#xff0c;个人文档前面有一个绿色小球图标&#xff0c;这是什么意思&#xff1f; 我的答案&#xff1a;这是Notes客户端中的漫游功能。 说到漫游&…...

为什么要内存对齐?

首先&#xff0c;我们介绍一下结构体内存对齐的规则&#xff1a; 1.第一个成员在与结构体偏移量为0的地址处。 2.其他成员变量要对其到某个数字&#xff08;对齐数&#xff09;的整数倍的地址处。 注&#xff1a;对齐数编译器默认的一个对齐数与该成员大小的较小值&#xff…...

23、Flink 的 Savepoints 详解

Savepoints 1.什么是 Savepoints Savepoint 是依据 Flink checkpointing 机制所创建的流作业执行状态的镜像&#xff0c;可以使用 Savepoint 进行 Flink 作业的停止、重启或更新。 Savepoint 由两部分组成&#xff1a;稳定存储&#xff08;例如 HDFS&#xff0c;S3&#xff…...

【Unity】Unity项目转抖音小游戏(二)云数据库和云函数

业务需求&#xff0c;开始接触一下抖音小游戏相关的内容&#xff0c;开发过程中记录一下流程。 抖音云官方文档&#xff1a;https://developer.open-douyin.com/docs/resource/zh-CN/developer/tools/cloud/develop-guide/cloud-function-debug 1.开通抖音云环境 抖音云地址&a…...

SpringBoot集成jasypt对yml文件指定参数加密并自定义@bean隐藏密钥

1、查看SpringBoot和jasypt对应版本。 Jasypt 1.9.x 通常与 Spring Boot 1.5.x 相对应。 Jasypt 2.1.x 通常与 Spring Boot 2.0.x 相对应。 Jasypt 3.x 通常与 Spring Boot 2.1.x相对应。 2、引入maven <dependency><groupId>com.github.ulisesbocchio</groupI…...

GDB的使用

即目标机直接使用GDB调试 源码安装&#xff1a; Index of /gnu/gdb 或者 wget https://ftp.gnu.org/gnu/gdb/gdb-8.3.1.tar.gz ./configure make main install 编译报错解决方法&#xff1a; 解决编译安装gdb-10.1 unistd.h:663:3: error: #error “Please include con…...

Linux处理用户输入

目录 一、传递参数 1.1 读取参数 1.2 读取脚本名 二、跟踪参数 三、移动参数 四、处理选项 4.1 查找选项 4.1.1 处理简单选项 4.1.2 分离参数和选项 4.1.3 处理含值的选项 五、选项标准化 5.1 使用 getopt 命令 5.1.1 命令格式 5.1.2 在脚本中使用getopt 5.2 使用…...

【代码笔记】高并发场景下问题解决思路

高并发指的是在单位时间内&#xff0c;瞬时流量激增&#xff0c;系统需要同时处理大量并行的请求或操作。这种情况通常出现在面向大量用户或服务的分布式系统中&#xff0c;尤其是当用户请求高度集中时&#xff0c;比如促销活动、秒杀活动、注册抢课、热点事件、定时任务调度等…...

【Docker系列】Linux部署Docker Compose

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...

基于SSM的文化遗产的保护与旅游开发系统(有报告)。Javaee项目。ssm项目。

演示视频&#xff1a; 基于SSM的文化遗产的保护与旅游开发系统&#xff08;有报告&#xff09;。Javaee项目。ssm项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构&#xff0c;…...

整合springboot-mybatis时,MySQL数据库无法连接问题

整合springboot-mybatis时&#xff0c;MySQL数据库无法连接问题 解决步骤 先手动停止MySQL服务&#xff0c;在cmd后的控制台输入services.msc 找到MySql停止服务 修改配置文件&#xff0c;跳过验证 修改MySQL安装目录下的my.ini配置文件&#xff0c;使登录时跳过权限检查&a…...

C语言循环队列

以下是一个使用 C 语言实现的简单循环队列示例&#xff1a; #include <stdio.h> #include <stdlib.h>#define MAX_SIZE 5// 定义循环队列结构体 typedef struct {int items[MAX_SIZE];int front, rear; } Queue;// 初始化队列 void initQueue(Queue *q) {q->fr…...

Docker运行出现iptables: No chain/target/match by that name报错如何解决?

在尝试重启 Docker 容器时遇到的错误信息表明有关 iptables 的配置出了问题。这通常是因为 Docker 需要配置网络&#xff0c;而 iptables 规则没有正确设置或被意外删除。具体到你的错误信息中&#xff0c;报错 iptables: No chain/target/match by that name 表示 Docker 尝试…...

力扣 122. 买卖股票的最佳时机 II python AC

动态规划 class Solution:def maxProfit(self, prices):pre float(inf)ans 0for now in prices:if now > pre:ans now - prepre nowreturn ans定义一个变量保存上一步位置最小的数值&#xff0c;来模拟dp --遍历股票数值 --如果当前数值大于上一次&#xff0c;将股票卖…...

深入剖析AI大模型:大模型时代的 Prompt 工程全解析

今天聊的内容&#xff0c;我认为是AI开发里面非常重要的内容。它在AI开发里无处不在&#xff0c;当你对 AI 助手说 "用李白的风格写一首关于人工智能的诗"&#xff0c;或者让翻译模型 "将这段合同翻译成商务日语" 时&#xff0c;输入的这句话就是 Prompt。…...

TDengine 快速体验(Docker 镜像方式)

简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能&#xff0c;本节首先介绍如何通过 Docker 快速体验 TDengine&#xff0c;然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker&#xff0c;请使用 安装包的方式快…...

从WWDC看苹果产品发展的规律

WWDC 是苹果公司一年一度面向全球开发者的盛会&#xff0c;其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具&#xff0c;对过去十年 WWDC 主题演讲内容进行了系统化分析&#xff0c;形成了这份…...

【HarmonyOS 5.0】DevEco Testing:鸿蒙应用质量保障的终极武器

——全方位测试解决方案与代码实战 一、工具定位与核心能力 DevEco Testing是HarmonyOS官方推出的​​一体化测试平台​​&#xff0c;覆盖应用全生命周期测试需求&#xff0c;主要提供五大核心能力&#xff1a; ​​测试类型​​​​检测目标​​​​关键指标​​功能体验基…...

连锁超市冷库节能解决方案:如何实现超市降本增效

在连锁超市冷库运营中&#xff0c;高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术&#xff0c;实现年省电费15%-60%&#xff0c;且不改动原有装备、安装快捷、…...

镜像里切换为普通用户

如果你登录远程虚拟机默认就是 root 用户&#xff0c;但你不希望用 root 权限运行 ns-3&#xff08;这是对的&#xff0c;ns3 工具会拒绝 root&#xff09;&#xff0c;你可以按以下方法创建一个 非 root 用户账号 并切换到它运行 ns-3。 一次性解决方案&#xff1a;创建非 roo…...

CocosCreator 之 JavaScript/TypeScript和Java的相互交互

引擎版本&#xff1a; 3.8.1 语言&#xff1a; JavaScript/TypeScript、C、Java 环境&#xff1a;Window 参考&#xff1a;Java原生反射机制 您好&#xff0c;我是鹤九日&#xff01; 回顾 在上篇文章中&#xff1a;CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...

论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)

笔记整理&#xff1a;刘治强&#xff0c;浙江大学硕士生&#xff0c;研究方向为知识图谱表示学习&#xff0c;大语言模型 论文链接&#xff1a;http://arxiv.org/abs/2407.16127 发表会议&#xff1a;ISWC 2024 1. 动机 传统的知识图谱补全&#xff08;KGC&#xff09;模型通过…...

WordPress插件:AI多语言写作与智能配图、免费AI模型、SEO文章生成

厌倦手动写WordPress文章&#xff1f;AI自动生成&#xff0c;效率提升10倍&#xff01; 支持多语言、自动配图、定时发布&#xff0c;让内容创作更轻松&#xff01; AI内容生成 → 不想每天写文章&#xff1f;AI一键生成高质量内容&#xff01;多语言支持 → 跨境电商必备&am…...

相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)

【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...