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 位的相同事务类型的请求相同的方式处理该请求。

 

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

uniapp百度地图聚合

// loadBMap.js ak 百度key export default function loadBMap(ak) {return new Promise((resolve, reject) > {//聚合API依赖基础库,因此先加载基础库再加载聚合APIasyncLoadBaiduJs(ak).then(() > {// 调用加载第三方组件js公共方法加载其他资源库// 加载聚合API// Ma…

定时任务执行 报错command not found 解决方案

目录 写在前面所需知识 问题复现解决方式方法1. 使用绝对路径的命令:方法2. 重新加载环境变量:成功解决截图 原理 写在前面 定时任务脚本出现command not found报错,解决方案。 所需知识 定时任务shell脚本环境变量 问题复现 编写了一个…

HaDoop Hive

目录 1.VMware 的配置 2.JDK的部署 3.防火墙,SElinux,时间同步设置 4.云平台 5.阿里云 6.UCloud 7.Hadoop理论 7.1 Hadoop理论 7.2 VMware Hadoop实践 7.3集群部署常见问题解决 7.4 云服务器上 Hadoop实践 7.5 HDFS 的 shell 7.6…

android进阶-Binder

参考:Android——Binder机制-CSDN博客 机制:Binder是一种进程间通信的机制 驱动:Binder是一个虚拟物理设备驱动 应用层:Binder是一个能发起进程间通信的JAVA类 Binder相对于传统的Socket方式,更加高效Binder数据拷贝…

​​​【收录 Hello 算法】5.1 栈

目录 5.1 栈 5.1.1 栈的常用操作 5.1.2 栈的实现 1. 基于链表的实现 2. 基于数组的实现 5.1.3 两种实现对比 5.1.4 栈的典型应用 5.1 栈 栈(stack)是一种遵循先入后出逻辑的线性数据结构。 我们可以将栈类比为桌面上的一摞盘子…

融资融券概念和操纵流程,案例解析

融资融券是一种金融工具,它允许投资者在证券市场上进行杠杆交易。简单来说,融资就是借钱买股票,融券就是借股票卖出。这种交易方式可以帮助投资者在短期内获得更高的收益,但同时也伴随着较高的风险。 案例背景: 假设…

JavaWeb--13Mybatis(2)

Mybatis(2) 1 Mybatis基础操作1.1 需求和准备工作1.2 删除员工日志输入参数占位符 1.3 新增员工1.4 修改员工信息1.5 查询员工1.5.1 根据ID查询数据封装 1.5.3 条件查询 2 XML配置文件规范3 MyBatis动态SQL3.1 什么是动态SQL3.2 动态SQL-if更新员工 3.3 …

C语言 | Leetcode C语言题解之第82题删除排序链表中的重复元素II

题目: 题解: struct ListNode* deleteDuplicates(struct ListNode* head) {if (!head) {return head;}struct ListNode* dummy malloc(sizeof(struct ListNode));dummy->next head;struct ListNode* cur dummy;while (cur->next && cu…

【回溯 状态压缩 深度优先】37. 解数独

本文涉及知识点 回溯 状态压缩 深度优先 LeetCode37. 解数独 编写一个程序,通过填充空格来解决数独问题。 数独的解法需 遵循如下规则: 数字 1-9 在每一行只能出现一次。 数字 1-9 在每一列只能出现一次。 数字 1-9 在每一个以粗实线分隔的 3x3 宫内只…

3d如何同时贴两个图在模型上?---模大狮模型网

在3D设计中,为模型贴上纹理或图案是常见的操作,可以使模型更加逼真和生动。然而,有时候我们需要在同一个模型上同时贴上两个不同的图案,这可能会对初学者构成一定的挑战。在本文中,我们将分享一些简单而有效的方法&…

基于SSM框架多人命题系统

采用技术 基于SSM框架多人命题系统的设计与实现~ 开发语言:Java 数据库:MySQL 技术:SpringMVCMyBatis 工具:IDEA/Ecilpse、Navicat、Maven 页面展示效果 学生端 登录 个人中心 公告信息 试题信息 管理员 登录 个人信息…

阳光厨房/明厨亮灶解决方案

现状分析 随着社会和科技的进步,日益增多的食品安全问题,国家四部委市场监督管理总局、教育部、公安部、国家卫生健康委联合印发《校园食品安全守护行动方案(2020年—2022年)》“互联网明厨亮灶”工程号召,对食品、餐饮…

机器学习-L1正则/L2正则

机器学习-L1正则/L2正则 目录 1.L1正则 2.L2正则 3.结合 1.L1正则 L1正则是一种用来约束模型参数的技术,常用于机器学习和统计建模中,特别是在处理特征选择问题时非常有用。 想象一下,你在装备行囊准备去旅行,但你的行囊有一…

详解Python测试框架Pytest的参数化

🍅 视频学习:文末有免费的配套视频可观看 🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 上篇博文介绍过,Pytest是目前比较成熟功能齐全的测试框架,使用率肯定也不…

【深度学习】Diffusion扩散模型原理解析2

由于篇幅受限,CSDN不能发布超过一定次数的文章,故在此给出上一篇链接:【深度学习】diffusion原理解析 3.2、目标函数求解 里面的最后一项, q ( x T ∣ x 0 ) q(x_T|x_0) q(xT​∣x0​)我们前面提到过,其近似服从标准…

flowable多对并发网关跳转的分析

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码: https://gitee.com/nbacheng/ruoyi-nbcio 演示地址:RuoYi-Nbcio后台管理系统 http://218.75.87.38:9666/ 更多nbcio-boot功能请看演示系统 gitee源代码地址 后端代码: h…

C++:虚函数表Hook

Hook 在计算机编程中,"Hook"(钩子)是一种技术,用于拦截并修改特定事件或函数的执行流程。它允许程序员在特定的代码点插入自定义的代码,以实现对程序行为的修改、监视或增强。 虚函数表Hook 虚函数表&#…

控制台打印空数组展开有数据

控制台打印空数组展开有数据 控制台显示: 代码如下: export const getDict1 (dictCode) > {let list []queryDict({ dictCode }).then(({data}) > {list.push( ...data.map(item > ({ label: item.itemText, value: item.itemValue })))})c…

目标检测算法YOLOv7简介

YOLOv7由Chien-Yao Wang等人于2022年提出,论文名为:《YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors》,论文见:https://arxiv.org/pdf/2207.02696 ,项目网页&#xff…

解决 git 因输入密码错误而导致的报错无法推送问题

报错内容如下: > git push origin master:master fatal: unable to access https://gitee.com/spring-in-huangxian-county/web-tts-vue.git/: OpenSSL SSL_connect: Connection was reset in connection to gitee.com:443 出错原因 根本原因是本机存储的 账户…