PCIe prefix总结

news2024/9/27 23:29:03

这周研究了一下spec中关于prefix的部分,在此做一个总结,欢迎大家指正补充。

TLP Prefix基本介绍

TLP 0 字节的 Fmt [2:0] 字段值为 100b 表示当前 DW TLP Prefix
TLP Prefix 分为两大类: Local End-End ,其中 Local TLP Prefix 用以在 PCIe 链路两侧传递信息, End-End 用以在 Requester Completer 之间传递信息。
通过 Type 字段 [4]bit 来加以区分, 0 Local TLP Prefix 1 End-End TLP Prefix
允许一个 TLP 包含 多个 任何类型的 TLP 前缀
TLP 中存在 Local End-End TLP 前缀的组合时,需要所有 Local TLP 前缀位于任何 End-End TLP 前缀 之前
每个 TLP 前缀的大小为 1DW
下图为prefix基本组成。
下图为Type编码及对应的prefix类型

Local TLP Prefix处理

Local TLP Prefix Type 字段 Type[4] 位为 0b ,用 L[3:0] 作更细的 Local TLP Prefix 分类。
各类型的 Local TLP Prefix 的大小、路由、流控不一而论。
若接收者收到了不支持类型的 Local TLP Prefix 则为出现错误。若设备能力 2 寄存器中开启了 Extended Fmt Field Supported 则按照畸形包处理,并在接收端口处上报错误。若未开启 Extended Fmt Field Supported ,错误处理方式由设备自行决定。

    Local TLP Prefix不受ECRC的保护,此时其后续TLP仍然可以受ECRC保护

下图为Local TLP prefix类型

VendPrefixL0”和“VendPrefixL1”类型保留作为厂商自定义的本地TLP前缀。为了最大限度地提高互操作性和灵活性,以下规则应用于这些前缀:

    •组件不得发送包含供应商定义的本地TLP前缀的TLP,除非已明确启用(使用供应商特定的机制)

    •支持任何供应商定义的本地TLP前缀的组件必须支持Fmt字段的3位定义,并具有扩展Fmt字段支持位集。

    •建议组件是可配置的(使用供应商特定的机制),以便所有供应商定义的前缀都可以使用两种供应商定义的本地TLP前缀编码中的任何一种发送。这样的配置不必是对称的(例如,链路的每一端可以使用不同的编码传输相同的前缀)

下图为Extended Fmt Field Supported 字段所在寄存器位置。

Extended Fmt Field Supported : If Set, the Function supports the 3-bit definition of the Fmt field. If Clear, the Function supports a 2-bit definition of the Fmt field. Must be Set for Functions that support End-End TLP Prefixes. All Functions in an Upstream Port must have the same value for this bit. Each Downstream Port of a component may have a different value for this bit.It is strongly recommended that Functions support the 3-bit definition of the Fmt field.

End-End TLP Prefix处理

End-End TLP Prefix Type 字段 Type[4] 位为 1b ,用 E[3:0] 作更细的 End-End TLP Prefix 分类。
End-End TLP Prefix 最大数目为 4 ,若接收者接收到的 End-End TLP Prefix 数目大于 4 ,应按照畸形包处理。
End-End TLP Prefixd 的出现不会改变该 TLP 原本的路由规则。
Function 支持的最大 End-End TLP Prefix 数目通过 Device Capabilities 2 register Max End-End TLP Prefixes field 进行配置;
支持 End-End TLP Prefix switch 应支持转发最高携带 4 End-End TLP Prefix TLP
多个支持 End-End TLP Prefix RP 间,支持的最大 End-End TLP Prefix 数目可以不同;
若后续 TLP ECRC 保护,则 End-End TLP Prefix 同样 ECRC 保护
若接收者不支持 End-End TLP Prefix 但收到了带有 End-End TLP Prefix TLP ,则为出现错误,按照畸形包处理,接收端口上报错误;
软件应确保携带 End-End TLP Prefix TLP 不会发给不支持 End-End TLP Prefix 的组件,因为该组件会曲解 End-End TLP Prefix
若上游端口某 Function 支持 End-End TLP Prefix 但收到了不支持类型的 End-End TLP Prefix ,该上游端口所有 Function 都应把其收到的地址请求按照 UR 处理,地址 Complition 按照 CA 处理,接收端口上报错误;
对于一些其路由作用的元素,若某出端口开启了 End-End Prefix Blocking 功能,则携带 End-End TLP Prefix TLP 会被阻塞在该出端口;一旦被阻塞,不仅是 TLP Prefix ,整个 TLP 都会被丢掉,并上报 TLP Prefix 阻塞错误;若被阻塞的是非转发请求 TLP ,该出端口会返回一笔完成状态为不支持请求的完成的消息;

若某元素开启了组播功能,复制到每一个组播组的TLP都会携带原TLPEnd-End TLP Prefix

下图为End-End TLP prefix类型

还没写完,发现总结的文档没带回来,后面补上。

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

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

相关文章

深入理解归并排序

目录 一、概念 二、递归版实现 三、非递归实现 三、文件归并排序 小结 一、概念 归并排序(Merge sort)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将…

海外新闻稿发布:企业如何充分利用数字化媒体进行

在全球数字化进程加速的时代,企业要在激烈的国际市场中脱颖而出,利用数字化媒体进行海外新闻稿发布是一个不可或缺的战略。精确的策略和有效的执行能够帮助企业获得更高的曝光度和市场份额。以下将从多个角度探讨如何充分利用数字化媒体进行海外新闻稿发…

万亿生成式AI市场,商汤迎来“长坡厚雪”

AI掀起了全球科技玩家的军备竞赛,然而声浪越强噪音越多,这个领域的混乱程度也变得远超以往。就连刚刚公布财报的英伟达,市场也没有买账,因为担心AI驱动的增长高峰已过,接下来,下游会更看重实际成果。 “囤…

【电子数据取证】微信8.0.50版本数据库解密

文章关键词:电子数据取证、手机取证、微信取证、数据库解密 通过对8.0.50这一特定版本的分析,我们期望揭示软件迭代背后的逻辑思考,以及安全策略的演进方向。这不单纯是对技术细节的揭秘,更是一次关于未来通信安全趋势的展望&…

在Linux中如何安装JDK

一、卸载JDK (可以不删除,直接安装新的JDK,然后修改环境变量) 1.1卸载使用yum安装的jdk 1.1.1卸载系统预安装的JDK 使用命令:yum list installed |grep java 注意:该命令只能查看使用yum命令安装的jav…

python模块和包的区别有哪些

模块:就是.py文件,里面定义了一些函数和变量,需要的时候就可以导入这些模块。 包:在模块之上的概念,为了方便管理而将文件进行打包。包目录下第一个文件便是 __init__.py,然后是一些模块文件和子目录&…

pytorch 均方误差损失函数

均方误差损失函数主要用于回归问题。它计算预测值与真实值之间差的平方,然后取平均值。这个损失函数通过惩罚大的误差,使得模型在训练时更加注重减少较大的偏差。 import torch import torch.nn as nn# 创建预测值和实际值张量 predicted torch.tensor(…

Spring Boot 中的 “依赖管理和自动配置” 详解透彻到底(附+详细代码流程)

1. 如何理解 “ 约定优于配置 ” 约定优于配置(Convention over Configuration / CoC),又称约定编程,是一种软件设计规范,本质上是对系统,类库或框架中一些东西。 一个大众化合理的默认值(缺省值&#xff0…

VSCode+Keil协同开发之Keil Assistant

VSCodeKeil协同开发之Keil Assistant 目录 VSCodeKeil协同开发之Keil Assistant1. 效果展示2. Keil Assistant简介3. Keil Assistant功能特性4. 部署步骤4.1. 1.部署准备4.2. 2.安装Keil Assistant插件4.3. 3.配置Keil Assistant插件 5. Keil Assistant使用6. 总结 大家在单片机…

java 使用网易邮箱发送邮件

java 使用网易邮箱发送邮件 准备条件 网易邮箱账号开通邮箱的POP3/SMPT服务&#xff0c;申请授权码 引入工具包 <dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.26</version></de…

深入浅出Entity-Component-System:重塑游戏开发的未来

引言 在游戏开发领域&#xff0c;架构设计往往决定了项目的成败。随着游戏规模和复杂度的不断增加&#xff0c;传统的面向对象编程(OOP)模式逐渐显露出其局限性。而ECS(Entity-Component-System)架构作为一种新兴的设计模式&#xff0c;正在彻底改变游戏开发的方式。本文将深入…

C# 安卓开发1(基于MAUI框架)

1&#xff1a;什么是 .NET MAUI&#xff1f;这里参考一下官方文档&#xff0c;因为解释的更详细&#xff0c;点击这里&#xff1b; 2&#xff1a;开发工具VS2022&#xff0c;下载下图开发框架 3: 安装完成后创建新项目,选择net6.0长期支持(创建文件的存放路径不要有中文): 4:…

FPGA速度优化

速度优化 文章目录 速度优化前言一、时序优化1.1 减少关键路径上的时序1.1.1 关键路径重组1.1.2 解决扇出问题1.1.3 路径上插入寄存器1.1.4 寄存器平衡1.1.5 并行结构1.1.6 消除代码优先级 总结 前言 速度优化&#xff0c;主要就是设计时序进行优化 吞吐量&#xff1a;每个时…

bbr 随机 phase 的麻烦与 inflight 守恒算法的动机

bbr 有个要点&#xff0c;要把 probebw 的 phase 错开&#xff1a; static void bbr_reset_probe_bw_mode(struct sock *sk) {struct bbr *bbr inet_csk_ca(sk);bbr->mode BBR_PROBE_BW;bbr->cycle_idx CYCLE_LEN - 1 - prandom_u32_max(bbr_cycle_rand);bbr_advance…

炒现货黄金白银通用的技术

要在现货黄金、现货白银等市场&#xff0c;甚至是股票、期货等其他以市场走势为分析对象的市场&#xff0c;我们都需要熟练的掌握一些交易的技术&#xff0c;这些技术可以为我们入场交易打好基础&#xff0c;让我们获得比随机交易更高一点的概率。下面我们就来讨论一下炒现货黄…

关于el-table的show-summary,合计栏不显示以及保留两位小数问题

<el-tableref"table1"v-loading"loading":data"":stripe"true"height"600"show-summary:summary-method"getSummaries":show-overflow-tooltip"true">...</el-table>合计部分不显示的问题 …

安全升级:Docker部署Redis,启用密码验证

1.在自己选定的目录中创建文件夹 在redis文件夹里面创建&#xff1a;data文件夹和conf文件夹&#xff08;文件夹名称随意&#xff09; 2.在conf文件夹中创建redis.conf文件&#xff1a; vim redis.conf 2.1.redis.conf里面编写内容可以根据官网&#xff08;Index of /releases…

Threejs之OrbitControls轨道控制器

本文目录 前言一、Orbitcontrols&#xff08;轨道控制器&#xff09;1.1 基础使用1.2 代码演示 二、效果展示 前言 Orbitcontrols&#xff08;轨道控制器&#xff09;可以使得相机围绕目标进行轨道运动。 一、Orbitcontrols&#xff08;轨道控制器&#xff09; 1.1 基础使用 C…

Hreflang 和 SEO:新手完整指南

每天&#xff0c;数以百万计的法国用户访问像 Amazon.com 这样的全球网站。虽然 Amazon.com 的官方页面是英文的&#xff0c;但用户仍然可以看到法语的文本和产品描述。这是因为亚马逊的全球网站有针对法国的本地化版本&#xff0c;确保所有法国用户都可以自动看到法语的网站内…

ELK学习笔记——如何给Kibana新增用户和角色

Kibana新增用户和角色 首先用超管账号登录上Kibana&#xff0c;按照下面步骤操作 1、创建角色 按图操作 2、创建用户 按图操作 3、给用户分配角色 至此&#xff0c;角色和用户绑定成功&#xff1b; 最后&#xff0c;可以退出管理员账号&#xff0c;登录这个新…