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

PCIe学习笔记(16)

层次结构(Hierarchy)ID Message

(PCIe I/O 互连的树形拓扑结构称为 PCIe 的 Hierarchy,或称层级、层次(不是事务层、数据链路层的“层”)。层次区域是指与 RC 某一 RP 相关联的所有设备和链路组成的线路结构,单个 PCIe 系统内允许存在多个层次区域。

在初始化 PCIe Hierarchy的时候,软件给每个组件分配 Bus、Device 和 Function Number,以确保每个 Function 在该 PCIe 树中都有一个独一无二的 Routing ID。

在大型 PCIe 系统或 CPU 集群系统中,树多层级多,仅采用原有的 BDF Routing ID 无法唯一确定某个 Function。为此,采用在 Routing ID 上添加额外信息的方式来产生唯一的 ID,在庞大的系统中唯一标识一个 Function。通过以下三者组合可以唯一标识一个 Function:

唯一的系统(RC)标识符;

RC 内唯一的层级(Hierarchy)标识符;

Hierarchy 内唯一的 Routing ID。

Hierarchy ID Message 是 RC 发出的广播消息,用以给多层级平台中的 Function 传递 Routing ID 外的额外信息,以在多层级系统中确定唯一标识某个 Function。Hierarchy ID Mesage 中包含 Hierarchy ID、System GUID、System GUID Authority ID 等字段

参考:https://blog.csdn.net/weixin_40357487/article/details/120740003

层次ID使用pci - sig定义的VDM机制。层次ID消息是带有有效载荷(MsgD)的pci - sig定义的VDM(供应商定义的类型1消息)。

除了其他pci - sig定义的vdm的规则外,层次ID消息的形成遵循以下规则:

•层次ID消息的定义和说明如表2-30和图2-33所示。

•TLP类型必须为MsgD。

•每个消息必须包含一个4-DWORD数据负载。

•Length字段必须为4。

•TC[2:0]字段必须为000b。

•Attr[2:0]字段是保留的。

•保留Tag字段。

•Subtype字段为01h。

•消息路由字段必须是011b -从根复合体广播。

接收方可以选择检查是否违反这些规则(但不能检查保留位)。这些检查是独立可选的。如果执行这些检查的接收器确定某个TLP违反了这些规则,则该TLP是畸形TLP。

•如果选中,这是一个与接收端口相关的报告错误。

每个层次ID消息的有效负载包含系统GUID的低128位

被忽略的消息(Ignored Messages)

强烈建议发送器不要传输这些消息,表2-31中列出的被忽略的消息由接收方按照如下方式处理:

• 物理层和数据链路层必须像处理其他TLP一样处理这些消息。

•事务层必须考虑流量控制信用,但不采取其他行动来响应这些消息。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 《pygame游戏开发实战指南》第四节 认识Recct对象
  • 测试GPT4o分析巴黎奥运会奖牌数据
  • 【数据驱动领域EI会议推荐】2024年智能电力系统与数据驱动创新国际研讨会(IPSDDI 2024)
  • 软件设计师笔记-网络基础知识
  • 牛客JS题(二十二)数组过滤
  • Router路由的使用
  • Hadoop的安装和使用-2024年08月01日
  • 初识C++ · 哈希表封装unordered_map/set
  • 新版pacs超声科工作量
  • IAP 程序升级原理解析
  • [网鼎杯2018]Unfinish解题,五分钟带你解题
  • 分享 | 某外资保险集团进一步提升数字身份管理水平 有助于中国业务的高速发展
  • 如何把uniapp 项目发布成Andriod App的流程
  • 【优秀python 数据分析案例】基于python的穷游网酒店数据采集与可视化分析的设计与实现
  • arthas的tt命令
  • 《剑指offer》分解让复杂问题更简单
  • ECMAScript入门(七)--Module语法
  • java8 Stream Pipelines 浅析
  • Java知识点总结(JavaIO-打印流)
  • Js实现点击查看全文(类似今日头条、知乎日报效果)
  • SAP云平台运行环境Cloud Foundry和Neo的区别
  • SpiderData 2019年2月13日 DApp数据排行榜
  • TypeScript实现数据结构(一)栈,队列,链表
  • - 概述 - 《设计模式(极简c++版)》
  • 力扣(LeetCode)22
  • 容器服务kubernetes弹性伸缩高级用法
  • 想写好前端,先练好内功
  • 你学不懂C语言,是因为不懂编写C程序的7个步骤 ...
  • 浅谈sql中的in与not in,exists与not exists的区别
  • 小白应该如何快速入门阿里云服务器,新手使用ECS的方法 ...
  • ​如何在iOS手机上查看应用日志
  • #我与Java虚拟机的故事#连载03:面试过的百度,滴滴,快手都问了这些问题
  • (160)时序收敛--->(10)时序收敛十
  • (4)STL算法之比较
  • (C#)Windows Shell 外壳编程系列9 - QueryInfo 扩展提示
  • (C语言)输入自定义个数的整数,打印出最大值和最小值
  • (阿里云在线播放)基于SpringBoot+Vue前后端分离的在线教育平台项目
  • (理论篇)httpmoudle和httphandler一览
  • (每日一问)基础知识:堆与栈的区别
  • (区间dp) (经典例题) 石子合并
  • (转)关于pipe()的详细解析
  • ***通过什么方式***网吧
  • .NET 8 中引入新的 IHostedLifecycleService 接口 实现定时任务
  • .net 开发怎么实现前后端分离_前后端分离:分离式开发和一体式发布
  • .NET 中各种混淆(Obfuscation)的含义、原理、实际效果和不同级别的差异(使用 SmartAssembly)
  • .NET4.0并行计算技术基础(1)
  • .net连接oracle数据库
  • .NET正则基础之——正则委托
  • //解决validator验证插件多个name相同只验证第一的问题
  • @ConfigurationProperties注解对数据的自动封装
  • @Responsebody与@RequestBody
  • [2019红帽杯]Snake
  • [3D游戏开发实践] Cocos Cyberpunk 源码解读-高中低端机性能适配策略
  • [ai笔记9] openAI Sora技术文档引用文献汇总
  • [BZOJ4337][BJOI2015]树的同构(树的最小表示法)