CSR配置字典之NPUCard类
更新时间: 2025/07/22
在Gitcode上查看源码

📋 文档信息

项目内容
文档标题NPUCard类配置字典
版本v1.0
创建日期2026-06-22
最后更新2026-06-22
维护状态✅ 活跃维护

📋 变更历史记录

文档变更记录

版本发布日期变更类型变更内容影响范围维护人员
v1.02026-06-22初始版本创建NPUCard类配置字典全新文档系统管理员

🎯 类概览

NPUCard 类

属性
类名称NPUCard
功能描述NPU卡配置和状态管理
所属SIG组system
所属组件NPU卡管理
责任人系统架构组
最后更新2026-06-22
状态🟢 正常运行

📊 属性定义详表

必选属性

属性名类型默认值取值范围动态关联描述使用场景举例来源分类
SlotNumberU32--NPU卡的槽位
主键之一,标识NPU卡的物理位置
指定NPU卡的槽位编码1CSR配置软件
NameString--NPU卡的名称
主键之一,标识NPU卡的名称
NPU卡名称显示"NPUCard1"CSR配置软件
PowerStateU800、1-NPU卡电源状态
1表示上电,0表示下电
NPU卡上电/下电状态显示与控制0CSR配置硬件
FaultStateU320--NPU卡的故障状态
默认值为0
NPU卡故障状态告警配置0CSR配置软件
ChipHealthStatusEnum"Normal"Normal/MajorFault/CriticalFault-NPU卡精细化告警级别
默认值为Normal
NPU卡健康状态告警配置"Normal"CSR配置软件

可选属性

属性名类型默认值取值范围动态关联描述使用场景举例来源分类
PowerWattsU16--功耗NPU卡功耗显示与告警配置100CSR配置硬件
OutletTemperatureCelsiusU16--NPU卡出风口温度NPU卡出风口温度显示与告警配置45CSR配置硬件
InletTemperatureCelsiusU16--NPU卡进风口温度NPU卡进风口温度显示与告警配置30CSR配置硬件
Core0TemperatureCelsiusU16255--芯片1温度
默认值为255
NPU卡芯片1温度显示与告警配置255CSR配置硬件
Core1TemperatureCelsiusU16255--芯片2温度
默认值为255
NPU卡芯片2温度显示与告警配置255CSR配置硬件
FaultCodeString""--NPU卡的故障码
默认值为空字符串
NPU卡故障码显示""CSR配置软件
ChipFaultDescriptionString""--NPU卡故障描述
默认值为空字符串
NPU卡故障描述显示""CSR配置软件
McuFirmwareVersionString""--NPU卡的MCU版本
默认值为空字符串
NPU卡MCU版本显示""组件更新软件
SerialNumberString--NPU卡的序列号NPU卡序列号显示与资产管理"SN123456"组件更新软件
BoardIDU160--NPU卡的board id
默认值为0
NPU卡board id显示0CSR配置软件
PcbVersionString0--NPU卡的pcb版本
默认值为0
NPU卡pcb版本显示"0"CSR配置软件
FirmwareVersionString""--系统固件版本
默认值为空字符串
NPU卡系统固件版本显示""组件更新软件
ModelString--硬件资产型号
别名InventoryModel
NPU卡资产型号显示"NPU-Model-A"组件更新软件
RefChipU8[]-关联Chip.BlockIO引用的芯片
关联bmc.kepler.Chip.BlockIO
NPU卡引用芯片对象[1, 2]CSR配置软件
LockChipU8[]-关联Chip锁定芯片
关联bmc.kepler.Chip
NPU卡锁定芯片对象[1]CSR配置软件
RefEepromU8[]-关联Chip.BlockIO引用的EEPROM
关联bmc.kepler.Chip.BlockIO
NPU卡引用EEPROM对象[1]CSR配置软件
CardPartNumberString--卡部件号NPU卡部件号显示"PN-001"CSR配置软件
DeviceNameString--设备名称NPU卡设备名称显示"NPU0"CSR配置软件
CardDescriptionString--卡描述NPU卡描述信息显示"Ascend 910B"CSR配置软件
RefFrudataU8[]-关联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]
  }
}

🔧 使用指南

配置步骤

  1. 设置基本标识:配置SlotNumber、Name作为主键标识
  2. 配置电源状态:设置PowerState控制NPU卡的上电/下电
  3. 配置故障属性:设置FaultState、ChipHealthStatus等故障检测属性
  4. 关联引用对象:配置RefChip、LockChip、RefEeprom、RefFrudata等对象引用
  5. 配置资产信息:设置SerialNumber、Model、CardPartNumber等资产属性
  6. 可选配置:根据需要配置温度、功耗、版本信息等可选属性

注意事项

  • 主键唯一性: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等引用属性指向对应的芯片对象