CSR配置字典之NPUCard类
更新时间: 2025/07/22
在Gitcode上查看源码📋 文档信息
| 项目 | 内容 |
|---|---|
| 文档标题 | NPUCard类配置字典 |
| 版本 | v1.0 |
| 创建日期 | 2026-06-22 |
| 最后更新 | 2026-06-22 |
| 维护状态 | ✅ 活跃维护 |
📋 变更历史记录
文档变更记录
| 版本 | 发布日期 | 变更类型 | 变更内容 | 影响范围 | 维护人员 |
|---|---|---|---|---|---|
| v1.0 | 2026-06-22 | 初始版本 | 创建NPUCard类配置字典 | 全新文档 | 系统管理员 |
🎯 类概览
NPUCard 类
| 属性 | 值 |
|---|---|
| 类名称 | NPUCard |
| 功能描述 | NPU卡配置和状态管理 |
| 所属SIG组 | system |
| 所属组件 | NPU卡管理 |
| 责任人 | 系统架构组 |
| 最后更新 | 2026-06-22 |
| 状态 | 🟢 正常运行 |
📊 属性定义详表
必选属性
| 属性名 | 类型 | 默认值 | 取值范围 | 动态关联 | 描述 | 使用场景 | 举例 | 来源 | 分类 |
|---|---|---|---|---|---|---|---|---|---|
SlotNumber | U32 | 无 | - | - | NPU卡的槽位 主键之一,标识NPU卡的物理位置 | 指定NPU卡的槽位编码 | 1 | CSR配置 | 软件 |
Name | String | 无 | - | - | NPU卡的名称 主键之一,标识NPU卡的名称 | NPU卡名称显示 | "NPUCard1" | CSR配置 | 软件 |
PowerState | U8 | 0 | 0、1 | - | NPU卡电源状态 1表示上电,0表示下电 | NPU卡上电/下电状态显示与控制 | 0 | CSR配置 | 硬件 |
FaultState | U32 | 0 | - | - | NPU卡的故障状态 默认值为0 | NPU卡故障状态告警配置 | 0 | CSR配置 | 软件 |
ChipHealthStatus | Enum | "Normal" | Normal/MajorFault/CriticalFault | - | NPU卡精细化告警级别 默认值为Normal | NPU卡健康状态告警配置 | "Normal" | CSR配置 | 软件 |
可选属性
| 属性名 | 类型 | 默认值 | 取值范围 | 动态关联 | 描述 | 使用场景 | 举例 | 来源 | 分类 |
|---|---|---|---|---|---|---|---|---|---|
PowerWatts | U16 | 无 | - | - | 功耗 | NPU卡功耗显示与告警配置 | 100 | CSR配置 | 硬件 |
OutletTemperatureCelsius | U16 | 无 | - | - | NPU卡出风口温度 | NPU卡出风口温度显示与告警配置 | 45 | CSR配置 | 硬件 |
InletTemperatureCelsius | U16 | 无 | - | - | NPU卡进风口温度 | NPU卡进风口温度显示与告警配置 | 30 | CSR配置 | 硬件 |
Core0TemperatureCelsius | U16 | 255 | - | - | 芯片1温度 默认值为255 | NPU卡芯片1温度显示与告警配置 | 255 | CSR配置 | 硬件 |
Core1TemperatureCelsius | U16 | 255 | - | - | 芯片2温度 默认值为255 | NPU卡芯片2温度显示与告警配置 | 255 | CSR配置 | 硬件 |
FaultCode | String | "" | - | - | NPU卡的故障码 默认值为空字符串 | NPU卡故障码显示 | "" | CSR配置 | 软件 |
ChipFaultDescription | String | "" | - | - | NPU卡故障描述 默认值为空字符串 | NPU卡故障描述显示 | "" | CSR配置 | 软件 |
McuFirmwareVersion | String | "" | - | - | NPU卡的MCU版本 默认值为空字符串 | NPU卡MCU版本显示 | "" | 组件更新 | 软件 |
SerialNumber | String | 无 | - | - | NPU卡的序列号 | NPU卡序列号显示与资产管理 | "SN123456" | 组件更新 | 软件 |
BoardID | U16 | 0 | - | - | NPU卡的board id 默认值为0 | NPU卡board id显示 | 0 | CSR配置 | 软件 |
PcbVersion | String | 0 | - | - | NPU卡的pcb版本 默认值为0 | NPU卡pcb版本显示 | "0" | CSR配置 | 软件 |
FirmwareVersion | String | "" | - | - | 系统固件版本 默认值为空字符串 | NPU卡系统固件版本显示 | "" | 组件更新 | 软件 |
Model | String | 无 | - | - | 硬件资产型号 别名InventoryModel | NPU卡资产型号显示 | "NPU-Model-A" | 组件更新 | 软件 |
RefChip | U8[] | 无 | - | 关联Chip.BlockIO | 引用的芯片 关联bmc.kepler.Chip.BlockIO | NPU卡引用芯片对象 | [1, 2] | CSR配置 | 软件 |
LockChip | U8[] | 无 | - | 关联Chip | 锁定芯片 关联bmc.kepler.Chip | NPU卡锁定芯片对象 | [1] | CSR配置 | 软件 |
RefEeprom | U8[] | 无 | - | 关联Chip.BlockIO | 引用的EEPROM 关联bmc.kepler.Chip.BlockIO | NPU卡引用EEPROM对象 | [1] | CSR配置 | 软件 |
CardPartNumber | String | 无 | - | - | 卡部件号 | NPU卡部件号显示 | "PN-001" | CSR配置 | 软件 |
DeviceName | String | 无 | - | - | 设备名称 | NPU卡设备名称显示 | "NPU0" | CSR配置 | 软件 |
CardDescription | String | 无 | - | - | 卡描述 | NPU卡描述信息显示 | "Ascend 910B" | CSR配置 | 软件 |
RefFrudata | U8[] | 无 | - | 关联FrudataService.Frudata | 引用FRU数据 关联bmc.kepler.FrudataService.Frudata | NPU卡引用FRU数据对象 | [1] | CSR配置 | 软件 |
🔗 动态关联机制
语法规范
使用 #/xxx 和 <=/xxx 格式实现属性间的动态关联,对于对象级引用属性使用数组索引方式:
yaml
# 语法格式
属性名: "#/目标类.属性名" # 直接关联
属性名: "<=/目标类.属性名" # 条件关联
属性名: [1, 2] # 对象引用(数组索引)
# 实际示例
RefChip: [1, 2] # 引用bmc.kepler.Chip.BlockIO对象
LockChip: [1] # 锁定bmc.kepler.Chip对象
RefEeprom: [1] # 引用bmc.kepler.Chip.BlockIO对象(EEPROM)
RefFrudata: [1] # 引用bmc.kepler.FrudataService.Frudata对象关联说明
- RefChip关联: 通过数组索引引用Chip.BlockIO对象,建立NPU卡与芯片的数据通道
- LockChip关联: 通过数组索引引用Chip对象,锁定NPU卡关联的芯片资源
- RefEeprom关联: 通过数组索引引用Chip.BlockIO对象,访问NPU卡的EEPROM数据
- RefFrudata关联: 通过数组索引引用FrudataService.Frudata对象,获取NPU卡的FRU数据
- 多对象引用: 支持通过数组索引同时引用多个关联对象
📂 分类标准
硬件属性
- 定义:直接从硬件获取或控制硬件的参数
- 特点:实时反映硬件状态,支持硬件控制操作
- 示例:
PowerState,PowerWatts,OutletTemperatureCelsius,InletTemperatureCelsius,Core0TemperatureCelsius,Core1TemperatureCelsius
软件属性
- 定义:用于软件层面的NPU卡管理和配置
- 特点:包含标识、配置、状态管理、资产信息等功能
- 示例:
SlotNumber,Name,FaultState,ChipHealthStatus,FaultCode,ChipFaultDescription,McuFirmwareVersion,SerialNumber,BoardID,PcbVersion,FirmwareVersion,Model,RefChip,LockChip,RefEeprom,CardPartNumber,DeviceName,CardDescription,RefFrudata
📝 配置示例
标准单NPU卡配置
json
{
"NPUCard": {
"SlotNumber": 1,
"Name": "NPUCard1",
"PowerState": 0,
"FaultState": 0,
"ChipHealthStatus": "Normal",
"PowerWatts": 100,
"OutletTemperatureCelsius": 45,
"InletTemperatureCelsius": 30,
"Core0TemperatureCelsius": 255,
"Core1TemperatureCelsius": 255,
"FaultCode": "",
"ChipFaultDescription": "",
"McuFirmwareVersion": "",
"SerialNumber": "SN123456",
"BoardID": 0,
"PcbVersion": "0",
"FirmwareVersion": "",
"Model": "NPU-Model-A",
"RefChip": [1, 2],
"LockChip": [1],
"RefEeprom": [1],
"CardPartNumber": "PN-001",
"DeviceName": "NPU0",
"CardDescription": "Ascend 910B",
"RefFrudata": [1]
}
}双NPU卡配置(NPUCard1)
json
{
"NPUCard1": {
"SlotNumber": 1,
"Name": "NPUCard1",
"PowerState": 1,
"FaultState": 0,
"ChipHealthStatus": "Normal",
"PowerWatts": 100,
"OutletTemperatureCelsius": 45,
"InletTemperatureCelsius": 30,
"Core0TemperatureCelsius": 40,
"Core1TemperatureCelsius": 38,
"FaultCode": "",
"ChipFaultDescription": "",
"McuFirmwareVersion": "V1.0.0",
"SerialNumber": "SN123456",
"BoardID": 1,
"PcbVersion": "A01",
"FirmwareVersion": "V2.0.0",
"Model": "NPU-Model-A",
"RefChip": [1, 2],
"LockChip": [1],
"RefEeprom": [1],
"CardPartNumber": "PN-001",
"DeviceName": "NPU0",
"CardDescription": "Ascend 910B",
"RefFrudata": [1]
}
}双NPU卡配置(NPUCard2)
json
{
"NPUCard2": {
"SlotNumber": 2,
"Name": "NPUCard2",
"PowerState": 1,
"FaultState": 0,
"ChipHealthStatus": "Normal",
"PowerWatts": 100,
"OutletTemperatureCelsius": 42,
"InletTemperatureCelsius": 28,
"Core0TemperatureCelsius": 38,
"Core1TemperatureCelsius": 36,
"FaultCode": "",
"ChipFaultDescription": "",
"McuFirmwareVersion": "V1.0.0",
"SerialNumber": "SN789012",
"BoardID": 1,
"PcbVersion": "A01",
"FirmwareVersion": "V2.0.0",
"Model": "NPU-Model-A",
"RefChip": [3, 4],
"LockChip": [2],
"RefEeprom": [2],
"CardPartNumber": "PN-001",
"DeviceName": "NPU1",
"CardDescription": "Ascend 910B",
"RefFrudata": [2]
}
}故障状态NPU卡配置
json
{
"NPUCard_Fault": {
"SlotNumber": 3,
"Name": "NPUCard3",
"PowerState": 0,
"FaultState": 1,
"ChipHealthStatus": "MajorFault",
"FaultCode": "ERR_NPU_001",
"ChipFaultDescription": "芯片温度异常",
"Core0TemperatureCelsius": 85,
"Core1TemperatureCelsius": 255,
"OutletTemperatureCelsius": 70,
"InletTemperatureCelsius": 35,
"PowerWatts": 0,
"McuFirmwareVersion": "V1.0.0",
"SerialNumber": "SN345678",
"BoardID": 1,
"PcbVersion": "A01",
"FirmwareVersion": "V2.0.0",
"Model": "NPU-Model-A",
"RefChip": [5, 6],
"LockChip": [3],
"RefEeprom": [3],
"CardPartNumber": "PN-001",
"DeviceName": "NPU2",
"CardDescription": "Ascend 910B",
"RefFrudata": [3]
}
}🔧 使用指南
配置步骤
- 设置基本标识:配置SlotNumber、Name作为主键标识
- 配置电源状态:设置PowerState控制NPU卡的上电/下电
- 配置故障属性:设置FaultState、ChipHealthStatus等故障检测属性
- 关联引用对象:配置RefChip、LockChip、RefEeprom、RefFrudata等对象引用
- 配置资产信息:设置SerialNumber、Model、CardPartNumber等资产属性
- 可选配置:根据需要配置温度、功耗、版本信息等可选属性
注意事项
- 主键唯一性:SlotNumber和Name作为联合主键,必须保持唯一
- 电源状态:PowerState为1表示上电、0表示下电,默认值为0
- 温度默认值:Core0TemperatureCelsius和Core1TemperatureCelsius默认值为255,表示未获取到温度数据
- 故障状态:FaultState默认值为0表示无故障,ChipHealthStatus默认值为"Normal"
- 对象引用:RefChip、LockChip、RefEeprom、RefFrudata使用数组索引引用关联对象,确保引用对象存在且可用
- ResetPer属性:SlotNumber和Name的usage包含ResetPer,表示系统复位时这些属性会被重置
- 权限控制:NPUCard对象的privilege为ConfigureSelf,需确保配置权限正确
性能建议
- 温度监控:合理配置OutletTemperatureCelsius和InletTemperatureCelsius的告警阈值
- 功耗管理:通过PowerWatts监控NPU卡功耗,及时处理功耗异常
- 故障响应:及时处理FaultState和ChipHealthStatus的告警信息
- 芯片引用:合理配置RefChip和LockChip,避免引用冲突
- FRU数据:确保RefFrudata引用的Frudata对象数据完整
槽位编号说明
- SlotNumber: NPU卡的物理槽位编号,用于标识NPU卡在服务器中的位置
- Name: NPU卡的名称标识,通常与SlotNumber对应,如NPUCard1对应SlotNumber 1
故障检测机制
- FaultState: NPU卡的故障状态,默认值为0表示正常
- ChipHealthStatus: NPU卡精细化告警级别,包含Normal/MajorFault/CriticalFault三个级别
- FaultCode: NPU卡的故障码,用于标识具体故障类型
- ChipFaultDescription: NPU卡故障描述,提供故障的详细信息
常见问题
- Q: Core0TemperatureCelsius和Core1TemperatureCelsius为什么默认值为255?
- A: 255表示未获取到温度数据,实际使用时会通过硬件检测动态获取真实的芯片温度
- Q: RefChip和RefEeprom都引用Chip.BlockIO接口,有什么区别?
- A: RefChip引用芯片的数据通道用于数据交互,RefEeprom引用同一接口用于访问EEPROM存储数据,用途不同
- Q: LockChip的作用是什么?
- A: LockChip用于锁定NPU卡关联的芯片资源,防止资源被其他对象占用
- Q: 如何配置多NPU卡场景?
- A: 通过不同的SlotNumber和Name区分不同的NPU卡,确保主键唯一,RefChip等引用属性指向对应的芯片对象