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

PCIe进阶之TL:Completion Rules TLP Prefix Rules

1 Completion Rules & TLP Prefix Rules

1.1 Completion Rules

所有的 Read、Non-Posted Write 和 AtomicOp Request 都需要返回一个 Completion。Completion 有两种类型:一种带数据负载的,一种不带数据负载的。以下各节定义了 Completion header 中每个字段的规则。

  • Completion 使用 ID 路由,使用 3DW 头。
    (1)routing ID 字段直接对应相应请求者的 Requester ID 。因此,对于 Completion,这些字段将统称为 Requester ID,而不是用于 ID 路由的不同字段。
  • 除了所有 TLP 中包含的 Header 字段和 ID 路由字段之外,Completion 还包含以下其他字段。
    在这里插入图片描述

(1)Completer ID[15:0] – Completer 的 ID。
(2)Completion Status[2:0],具体如下:
在这里插入图片描述
(3)BCM – Byte Count Modified:此位不得由 PCI Express Completer 设置,只能由 PCI-X completer 设置。
(4)Byte Count[11:0] – 请求的剩余字节数。

  1. 字节计数值指定为二进制数,其中 0000 0000 0001b 表示剩余 1 字节,1111 1111 1111b 表示剩余 4095 个字节,而 0000 0000 0000b 表示剩余 4096 个字节。
  2. 对于 Memory Read Completion,Byte Count[11:0]要遵循 Spec 2.3.1.1 的规则。
  3. 对于 AtomicOp Completion,Byte Count 的值等于相关的 AtomicOp 操作数的 size。
  4. 对于其他的 Completion,Byte Count 等于 4。

(5)Tag[9:0] – 结合 Requester ID 字段,一起组成 Transaction ID 。
(6)Lower Address[6:0] – Completion 起始字节的低字节地址。

  1. 对于 Memory Read Completion,此字段中的值是随 Completion 返回的数据的第一个有效字节的地址。
  2. 对于 AtomicOp Completion,Lower Address 字段值为保留值。
  3. 对于所有其他的 Completion 类型,此字段均设置为全 0。接收者可以选择检查是否违反此规则。
  • Completer ID [15:0]是一个 16 位值,对于层次结构中的每个 PCI Express 的 FUnction 都是唯一的。
    在这里插入图片描述
  • Function 必须能捕获 Type 0 Configuration Write Request中的 Bus 和 Device Number,并

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Linux(Centos7)系统下给已有分区进行扩容
  • CMake教程(七):添加系统检查
  • Linux bash脚本本地开发环境(Git Bash)配置
  • 聊一聊站在对方的立场去阐述问题
  • SVN笔记-SVN安装
  • 动手学深度学习9.1. 门控循环单元(GRU)-笔记练习(PyTorch)
  • 比亚迪技术面试(测试、测开)
  • 服务监控插件全览:提升微服务可观测性的利器
  • 计算机前沿技术-人工智能算法-大语言模型-最新论文阅读-2024-09-22
  • 【LTW】Domain General Face Forgery Detection by Learning to Weight
  • 如何用 HAproxy 实施高可用部署 | OceanBase 实践
  • NLP 文本分类任务核心梳理
  • 握手传输 状态机序列检测(记忆科技笔试题)_2024年9月2日
  • 仪表放大器AD620
  • SpringBoot开发——整合SpringDoc实现在线接口文档
  • $translatePartialLoader加载失败及解决方式
  • 【EOS】Cleos基础
  • 【JavaScript】通过闭包创建具有私有属性的实例对象
  • JAVA并发编程--1.基础概念
  • js中的正则表达式入门
  • Linux后台研发超实用命令总结
  • SegmentFault 技术周刊 Vol.27 - Git 学习宝典:程序员走江湖必备
  • vue自定义指令实现v-tap插件
  • 阿里云前端周刊 - 第 26 期
  • 搞机器学习要哪些技能
  • 批量截取pdf文件
  • 前端自动化解决方案
  • 如何优雅的使用vue+Dcloud(Hbuild)开发混合app
  • 使用Swoole加速Laravel(正式环境中)
  • 数组大概知多少
  • 写给高年级小学生看的《Bash 指南》
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • 国内开源镜像站点
  • 好程序员web前端教程分享CSS不同元素margin的计算 ...
  • 好程序员大数据教程Hadoop全分布安装(非HA)
  • ​ 轻量应用服务器:亚马逊云科技打造全球领先的云计算解决方案
  • ​​​​​​​开发面试“八股文”:助力还是阻力?
  • # Redis 入门到精通(八)-- 服务器配置-redis.conf配置与高级数据类型
  • # 深度解析 Socket 与 WebSocket:原理、区别与应用
  • (+3)1.3敏捷宣言与敏捷过程的特点
  • (3)STL算法之搜索
  • (cos^2 X)的定积分,求积分 ∫sin^2(x) dx
  • (NO.00004)iOS实现打砖块游戏(九):游戏中小球与反弹棒的碰撞
  • (TOJ2804)Even? Odd?
  • (二)pulsar安装在独立的docker中,python测试
  • (附源码)node.js知识分享网站 毕业设计 202038
  • (附源码)springboot教学评价 毕业设计 641310
  • (附源码)流浪动物保护平台的设计与实现 毕业设计 161154
  • (一)utf8mb4_general_ci 和 utf8mb4_unicode_ci 适用排序和比较规则场景
  • (一)模式识别——基于SVM的道路分割实验(附资源)
  • (转)IOS中获取各种文件的目录路径的方法
  • ******IT公司面试题汇总+优秀技术博客汇总
  • .bashrc在哪里,alias妙用
  • .desktop 桌面快捷_Linux桌面环境那么多,这几款优秀的任你选
  • .Net core 6.0 升8.0