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,并

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

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

相关文章

腾讯百度阿里华为常见算法面试题TOP100(3):链表、栈、特殊技巧

之前总结过字节跳动TOP50算法面试题: 字节跳动常见算法面试题top50整理_沉迷单车的追风少年-CSDN博客_字节算法面试题 链表 160.相交链表

基于python+django+vue的外卖管理系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 【2025最新】基于pythondjangovueMySQL的外…

word文档无损原样转pdf在windows平台使用python调用win32com使用pip安装pywin32

前提: windows环境下,并且安装了office套装,比如word,如果需要调用excel.也需要安装。在另外的文章会介绍。这种是直接调用word的。所以还原度会比较高。 需求: word文档转pdf,要求使用命令行形式,最终发布为api接口…

通过sshd_config限制用户登录

在CentOS Stream或其他现代的Linux发行版中,你可能会发现传统的hosts.deny和 hosts.allow文件已经不存在或不被使用。这是因为随着时间的推移,系统的安全策略和网络管理工具已经发生了演变,许多系统管理员和发行版维护者选择使用更现代、更灵…

鸿蒙next web组件和h5 交互实战来了

前言导读 鸿蒙next web组件这个专题之前一直想讲一下 苦于没有时间,周末把代码研究的差不多了,所以就趁着现在这个时间节点分享给大家。也希望能对各位读者网友工作和学习有帮助,废话不多说我们正式开始。 效果图 默认页面 上面H5 下面ArkU…

小米,B站网络安全岗位笔试题目+答案

《网安面试指南》http://mp.weixin.qq.com/s?__bizMzkwNjY1Mzc0Nw&mid2247484339&idx1&sn356300f169de74e7a778b04bfbbbd0ab&chksmc0e47aeff793f3f9a5f7abcfa57695e8944e52bca2de2c7a3eb1aecb3c1e6b9cb6abe509d51f&scene21#wechat_redirect 《Java代码审…

开源免费的工贸一体行业ERP管理系统

引言 在当今数字化浪潮汹涌澎湃的时代,中小企业面临着前所未有的挑战与机遇。如何实现数字化转型发展,成为了众多中小企业主心头的大事。 据相关数据显示,目前我国中小企业数量已经超过了 4000 万户,然而成功实现数字化转型的比例…

.NET 一款免杀的白名单工具可执行系统命令

01阅读须知 此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失&#xf…

使用Mockito进行单元测试

1、单元测试介绍 Mockito和Junit是用于单元测试的常用框架。单元测试即:从最小的可测试单元(如函数、方法或类)开始,确保每个单元都能按预期工作。单元测试是白盒测试的核心部分,它有助于发现单元内部的错误。 单元测试…

【AcWing 158周赛】

5842. 拆树 主要思路: 如何分割? 深度遍历,当遍历的子数的sum为总sum的三分之一即是一个分割方法。 1其中要注意节点范围为 [ − 100 , 100 ] [-100,100] [−100,100],所以当 总树 s u m 0 总树sum0 总树…

算法:30.串联所有单词的子串

题目 链接:leetcode链接 思路分析(滑动窗口) 这道题目类似寻找异位词的题目,我认为是寻找异位词的升级版 传送门:寻找异位词 为什么说像呢? 注意:这道题目中words数组里面的字符串长度都是相同的&…

C语言-数据结构 弗洛伊德算法(Floyd)邻接矩阵存储

弗洛伊德算法相比迪杰斯特拉相似的地方都是遍历邻接矩阵不断调整最短路径的信息,并且两种算法面对多源最短路径的时间复杂度都是O(n^3),Floyd采用的是动态规划而Dijkstra是采用贪心的思想。在Floyd中我们将创建两个数组进行辅助,一个path二维…

sqlgun靶场训练

1.看到php?id ,然后刚好有个框,直接测试sql注入 2.发现输入1 union select 1,2,3#的时候在2处有回显 3.查看表名 -1 union select 1,group_concat(table_name),3 from information_schema.tables where table_schemadatabase()# 4.查看列名…

磁盘写入缓存区太大,如何清理C盘缓存

针对“磁盘写入缓存区太大,如何清理C盘缓存”的问题,我们可以从多个角度进行专业解答。首先,需要明确的是,“磁盘写入缓存区太大”这一表述可能涉及硬盘缓存的设置或系统缓存管理,但通常用户面对的问题更多是关于C盘空…

极速上云2.0范式:一键智连阿里云

在传统上云的现状与挑战: 专线上云太重,VPN上云不稳,云上VPC,云下物理网络,多段最后一公里...... 层层对接,跳跳延迟,好生复杂! 当你试图理解SD-WAN供应商和阿里云的文档,以协调路由…

【23-24年】年度总结与迎新引荐

文章目录 相关连接前言1 忙碌的备研与本科毕设2 暑期阿里之旅3 团队荣誉与迎新引荐4 项目合作意向 相关连接 个人博客:issey的博客 - 愿无岁月可回首 前言 自从2023年4月更新了两篇关于NLP的文章后,我便消失了一年半的时间。如今,随着学业…

[000-01-008].第05节:OpenFeign特性-重试机制

我的后端学习大纲 SpringCloud学习大纲 1.1.重试机制的默认值: 1.重试机制默认是关闭的,给了默认值 1.2.测试重试机制的默认值: 1.3.开启Retryer功能: 1.修改配置文件YML的配置: 2.新增配置类: packa…

STM32启用FPU浮点运算

这篇文章产生背景:其他人的文章太杂了,对我这种菜鸡无法接受; 参考文章: stm32h743单片机嵌入式学习笔记7-FPU_stmh743vit4-CSDN博客 stm32F407 打开 FPU(浮点运算处理器)_stm32f407开启fpu-CSDN博客 STM32F4CubeMXHal库下使能…

视频格式转为mp4(使用ffmpeg)

1、首先安装ffmpeg,下载链接如下 https://www.gyan.dev/ffmpeg/builds/packages/ffmpeg-6.1.1-full_build.7z 安装后确保ffmpeg程序加到PATH路径里,cmd执行ffmpeg -version出现下图内容表示安装成功。 2、粘贴下面的脚本到文本文件中,文件后缀…

CVTE-嵌入式面经一面面经准备(已通过)

目录: 目录: 一、9.9面经 1.1 什么是嵌入式? 1. 特点: 2. 应用领域: 3. 示例: 1.2 嵌入式设备开发与电脑上软件开发的区别 1. 硬件资源限制: 2. 操作系统: 3. 开发工具: …