层次结构(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一样处理这些消息。
•事务层必须考虑流量控制信用,但不采取其他行动来响应这些消息。