CSR配置字典之NPUPort类
更新时间: 2025/07/22
在Gitcode上查看源码📋 文档信息
| 项目 | 内容 |
|---|---|
| 文档标题 | NPUPort类配置字典 |
| 版本 | v1.0 |
| 创建日期 | 2026-06-22 |
| 最后更新 | 2026-06-22 |
| 维护状态 | ✅ 活跃维护 |
📋 变更历史记录
文档变更记录
| 版本 | 发布日期 | 变更类型 | 变更内容 | 影响范围 | 维护人员 |
|---|---|---|---|---|---|
| v1.0 | 2026-06-22 | 初始版本 | 创建NPUPort类配置字典 | 全新文档 | 系统管理员 |
🎯 类概览
NPUPort 类
| 属性 | 值 |
|---|---|
| 类名称 | NPUPort |
| 功能描述 | NPU端口配置和状态管理 |
| 所属SIG组 | system |
| 所属组件 | 处理器端口管理 |
| 责任人 | 系统架构组 |
| 最后更新 | 2026-06-22 |
| 状态 | 🟢 正常运行 |
📊 属性定义详表
必选属性
| 属性名 | 类型 | 默认值 | 取值范围 | 动态关联 | 描述 | 使用场景 | 举例 | 来源 | 分类 |
|---|---|---|---|---|---|---|---|---|---|
Id | U8 | 255 | 0~255 | - | 处理器端口逻辑ID 从0开始 | 指定NPU端口的逻辑编码 | 0 | CSR配置 | 软件 |
PortId | String | 无 | - | - | 端口硬件定义标识符 | 标识NPU端口硬件定义 | "Port0" | CSR配置 | 软件 |
IODieId | U8 | 255 | 0~255 | - | 此端口归属的IO Die ID | 标识端口所属的IO Die | 0 | CSR配置 | 软件 |
PfId | U8 | 255 | 0~255 | - | PF ID 只读属性 | 标识NPU端口的PF编号 | 0 | CSR配置 | 软件 |
NPUId | U8 | 255 | 0~255 | - | NPU ID 只读属性 | 标识端口所属的NPU编号 | 0 | CSR配置 | 软件 |
UBPortId | U32 | 0 | 0~4294967295 | - | UB端口ID 默认值0,为Id的别名 | 标识UB总线端口编号 | 0 | CSR配置 | 软件 |
可选属性
NPUPort类的所有CSR属性均为端口配置必选属性,无额外可选属性。端口的路径和父对象关系由系统自动管理。
🔗 动态关联机制
语法规范
使用 #/xxx 和 <=/xxx 格式实现属性间的动态关联:
yaml
# 语法格式
属性名: "#/目标类.属性名" # 直接关联
属性名: "<=/目标类.属性名" # 条件关联
# NPUPort关联示例(当前无动态关联属性)
# NPUPort的CSR属性均为静态配置值
# 父对象关联通过path模板 ":parent/Ports/:ID" 实现关联说明
- 父对象关联: NPUPort通过path模板
:parent/Ports/:ID与父对象NPU建立层级关系 - Id别名关联:
UBPortId为Id属性在bmc.kepler.UnifiedBus.Port接口中的别名,两者共享同一逻辑标识 - 静态配置: NPUPort当前所有CSR属性均为静态配置值,无需动态关联Scanner或Accessor
📂 分类标准
硬件属性
- 定义:直接从硬件获取或控制硬件的参数
- 特点:实时反映硬件状态,支持硬件控制操作
- 示例:当前NPUPort类无纯硬件关联属性
软件属性
- 定义:用于软件层面的NPU端口管理和配置
- 特点:包含标识、配置、归属管理等功能
- 示例:
Id,PortId,IODieId,PfId,NPUId,UBPortId
📝 配置示例
标准单端口配置
json
{
"NPUPort": {
"Id": 0,
"PortId": "Port0",
"IODieId": 0,
"PfId": 0,
"NPUId": 0,
"UBPortId": 0
}
}NPU下多端口配置(端口0)
json
{
"NPUPort0": {
"Id": 0,
"PortId": "Port0",
"IODieId": 0,
"PfId": 0,
"NPUId": 0,
"UBPortId": 0
}
}NPU下多端口配置(端口1)
json
{
"NPUPort1": {
"Id": 1,
"PortId": "Port1",
"IODieId": 1,
"PfId": 1,
"NPUId": 0,
"UBPortId": 1
}
}多NPU场景配置
json
{
"NPUPort_NPU2": {
"Id": 0,
"PortId": "Port0",
"IODieId": 0,
"PfId": 0,
"NPUId": 1,
"UBPortId": 0
}
}🔧 使用指南
配置步骤
- 设置基本标识:配置Id、PortId,建立端口逻辑和硬件标识
- 配置归属信息:设置IODieId标识端口所属IO Die,设置NPUId标识端口所属NPU
- 设置PF标识:配置PfId标识端口的PF编号(只读属性,由系统自动维护)
- 配置UB端口:设置UBPortId,关联UnifiedBus端口标识
注意事项
- 父对象依赖:NPUPort必须挂载在NPU父对象下,路径模板为
:parent/Ports/:ID - ID唯一性:Id在同一NPU下的各端口间必须唯一,从0开始编号
- 只读属性:PfId和NPUId为只读属性,不应在CSR配置中手动修改
- 别名关系:UBPortId是Id在UnifiedBus.Port接口中的别名,配置时注意接口对应关系
- 默认值注意:Id、IODieId、PfId、NPUId默认值为255,需在配置中明确指定有效值
性能建议
- 端口标识:合理规划Id编号,确保同一NPU下端口编号连续且唯一
- IO Die归属:准确配置IODieId,确保端口与IO Die的归属关系正确
- UB映射:确保UBPortId与Id的映射关系正确,避免UB总线端口冲突
ID体系说明
- Id (U8): 端口逻辑ID,同一NPU内从0开始唯一编号
- PortId (String): 端口硬件定义标识符,用于硬件层面标识端口
- IODieId (U8): 端口归属的IO Die ID,标识端口所属IO Die
- PfId (U8): PF ID,只读属性,标识端口的PF编号
- NPUId (U8): NPU ID,只读属性,标识端口所属的NPU编号
- UBPortId (U32): UB端口ID,为Id的别名,标识UnifiedBus端口编号
父对象关系说明
- 路径模板:
:parent/Ports/:ID— NPUPort实例自动挂载在父对象NPU的Ports子路径下 - 父对象:
NPU— NPUPort必须关联一个NPU父对象 - 权限要求:
ConfigureSelf— NPUPort配置需要ConfigureSelf权限
常见问题
- Q: NPUPort和CPU的Port有什么区别?
- A: NPUPort专门用于NPU(神经网络处理器)端口管理,路径挂载在NPU父对象下;CPU端口使用不同的类定义
- Q: UBPortId为什么是U32而Id是U8?
- A: UBPortId属于UnifiedBus.Port接口,使用U32类型以支持更大的端口编号范围;两者逻辑上为同一标识的别名
- Q: PfId和NPUId为什么是只读属性?
- A: PF ID和NPU ID由系统根据硬件拓扑自动分配,不应通过CSR配置手动修改
- Q: 多NPU场景下端口如何配置?
- A: 通过NPUId区分不同NPU下的端口,Id在各NPU内独立编号,UBPortId需全局唯一