PCIe进阶之TL:Completion Rules TLP Prefix Rules

news2024/9/21 23:08:49

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

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

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

相关文章

【磨皮美白】基于Matlab的人像磨皮美白处理算法,Matlab处理

博主简介:matlab图像代码项目合作(扣扣:3249726188) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 本次案例是基于Matlab的图像磨皮美白处理,用matlab实现。 一、案例背景和算法介绍 …

【图像匹配】基于SURF算法的图像匹配,matlab实现

博主简介:matlab图像代码项目合作(扣扣:3249726188) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 本次案例是基于基于SURF算法的图像匹配,用matlab实现。 一、案例背景和算法介绍 前…

7天速成前端 ------学习日志 (继苍穹外卖之后)

前端速成计划总结: 全26h课程,包含html,css,js,vue3,预计7天内学完。 起始日期:9.16 预计截止:9.22 每日更新,学完为止。 学前计划 课…

文字loading加载

效果 1. 导入库 import sys from PyQt5.QtCore import QTimer, Qt, QThread, pyqtSignal from PyQt5.QtGui import QPainter, QFont, QColor, QBrush from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QPushButton, QProgressBar, QLabel 代码首先导入了P…

编辑器拓展(入门与实践)

学习目标:入门编辑器并实现几个简单的工具 菜单编辑器 MenuItem [MenuItem("编辑器拓展/MenuItem")]static void MenuItem(){Debug.Log("这是编辑器拓展");} } 案例 1:在场景中的 GameObject 设置 1. 设置面板2. 直接创建 GameObject 结构…

2-96 基于matlab的SMOTE数据扩充算法

基于matlab的SMOTE数据扩充算法,主动设置数据扩充百分比,并考虑最近邻居数进行扩充,计算样本到他所在类样本集中所有样本距离,从样本的K近邻中随机选择若干样本添加到扩充样本集。程序已调通,可直接运行。 下载源程序…

c++中引用是通过指针的方式实现

其实在汇编层面上&#xff0c;引用的代码和指针的代码是一致的。 先看指针情况下的代码分析&#xff0c;如下所示&#xff1a; #include <iostream>using namespace std;void fuzhi(int *x)//引用传参 {*x 10; }int main(int argc, char** argv) {int a 0;int b;a …

LeetCode[简单] 283.移动零

给定一个数组 nums&#xff0c;编写一个函数将所有 0 移动到数组的末尾&#xff0c;同时保持非零元素的相对顺序。 请注意 &#xff0c;必须在不复制数组的情况下原地对数组进行操作。 思路&#xff1a;利用快慢指针&#xff0c;快指针遍历数组&#xff0c;慢指针是非零元素索…

【D3.js in Action 3 精译_023】3.3 使用 D3 将数据绑定到 DOM 元素

当前内容所在位置&#xff1a; 第一部分 D3.js 基础知识 第一章 D3.js 简介&#xff08;已完结&#xff09; 1.1 何为 D3.js&#xff1f;1.2 D3 生态系统——入门须知1.3 数据可视化最佳实践&#xff08;上&#xff09;1.3 数据可视化最佳实践&#xff08;下&#xff09;1.4 本…

销管系统 —— P14 菜单项悬停高亮显示遇到的问题

悬停在子菜单背景颜色并没有显示&#xff0c;为什么&#xff1a; 什么是后代选择器 —— 选中父元素 后代中 满足条件的元素&#xff1b;这个子菜单menu—item它既满足上面的也满足下面的&#xff0c;按这个顺序的话&#xff0c;下面的就被覆盖了&#xff08;CSS优先级规则&…

Nginx实用篇:实现负载均衡、限流与动静分离

Nginx实用篇&#xff1a;实现负载均衡、限流与动静分离 | 原创作者/编辑&#xff1a;凯哥Java | 分类&#xff1a;Nginx学习系列教程 Nginx 作为一款高性能的 HTTP 服务器及反向代理解决方案&#xff0c;在互联网架构中扮演着至关重要的角色。它…

可视化深度网络的强大工具:Grad-CAM介绍与使用步骤

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推荐------》 一、AI应用软件开发实战专栏【链接】 项目名称项目名称1.【人脸识别与管理系统开发…

第一次安装Pytorch

1、新版本的Anaconda内置的python版本是3.12&#xff0c; 目前 Windows 上的 PyTorch 仅支持 Python 3.8-3.11;不支持 Python 2.x。 1、创建运行环境 在不创建虚拟环境的情况下&#xff0c;不建议使用最新的Python和Anaconda。 在几次失败后&#xff0c;我使用的是Anaconda3-2…

单相可控整流电路(单相半波整流电路、单相桥式全控整流电路)

目录 1. 单相半波整流电路 2. 单相桥式全控整流电路 单相可控整流电路是利用可控硅&#xff08;晶闸管&#xff09;将交流电转换为直流电的电路&#xff0c;主要有两种常见类型&#xff1a;单相半波整流电路和单相桥式全控整流电路。 1. 单相半波整流电路 单相半波整流电路是…

python实现多个pdf文件合并

打印发票时&#xff0c;需要将pdf合并成一个&#xff0c;单页两张打印。网上一些pdf合并逐渐收费&#xff0c;这玩意儿都能收费&#xff1f;自己写一个脚本使用。 实现代码&#xff1a; 输入pdf文件夹路径data_dir&#xff0c;统计目录下的“合并后的PDF”文件夹下&#xff0c;…

十六,Spring Boot 整合 Druid 以及使用 Druid 监控功能

十六&#xff0c;Spring Boot 整合 Druid 以及使用 Druid 监控功能 文章目录 十六&#xff0c;Spring Boot 整合 Druid 以及使用 Druid 监控功能1. Druid 的基本介绍2. 准备工作&#xff1a;3. Druid 监控功能3.1 Druid 监控功能 —— Web 关联监控3.2 Druid 监控功能 —— SQL…

数组学习内容

动态初始化 只给长度&#xff0c;数据类型【】 数组名new 数据类型【数组长度】 内存图

MySQL篇(数值函数/)(持续更新迭代)

目录 常见函数一&#xff1a;数值函数 一、常见数值函数 1. 基本函数 2. 角度与弧度互换函数 3. 三角函数 4. 指数与对数 5. 进制间的转换 常见函数二&#xff1a;日期函数 一、常见日期函数 二、SQL演示 1. curdate&#xff1a;当前日期 2. curtime&#xff1a;当前…

ThreadX源码:Cortex-A7的tx_thread_context_save.S(线程上下文保存)汇编代码分析

0 参考资料 Cortex M3权威指南(中文).pdf&#xff08;可以参考ARM指令集用法&#xff09; 1 前言 tx_thread_context_save.S是用来实现Cortex-A7下线程上下文保存的函数所在汇编文件。 2 源码分析 2.1 概述 _tx_thread_context_save函数用于在线程被中断打断后保存上下文&a…

「Next.js中文文档」网站发布

大家好&#xff0c;我是程普&#xff08;weijunext&#xff09;&#xff0c;我联合“阿伟dev”搭建了一个「Next.js 中文文档」网站&#x1f447; 这个网站我们设计得很特别&#xff1a; 样式很特别 我们模仿 Next.js 官方网站样式&#xff0c;努力做到除了语言不同&#xff…