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

📋 文档信息

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

📋 变更历史记录

文档变更记录

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

🎯 类概览

CPU 类

属性
类名称CPU
功能描述CPU处理器配置和状态管理
所属SIG组system
所属组件处理器管理
责任人系统架构组
最后更新2025-01-27
状态🟢 正常运行

📊 属性定义详表

必选属性

属性名类型默认值取值范围动态关联描述使用场景举例来源分类
IdU81~16-ID
在多个Host间标识CPU
指定CPU的编码1CSR配置软件
SystemIdU81~8-Host ID指明CPU所在的Host1CSR配置软件
PhysicalIdU81、2-物理ID
在单个Host里面标识CPU
逻辑ID=物理ID-11CSR配置软件
LogicalIdU80、1-逻辑ID
在单个Host里面标识CPU
CPU逻辑ID显示0CSR配置软件
PresenceU811-在位状态在位不应该写死吧?1CSR配置软件
ArchitectureString"ARM""ARM"-系统架构北向接口显示CPU架构"ARM"CSR配置软件
DiagnosticFaultU80--硬件预故障标志位
默认值为0
CPU预故障告警配置0ras组件设置软件
PredictiveFaultU80--FDM诊断发现故障的标志位
默认值0,异常状况置1
CPU故障检测告警配置0ras组件设置软件
CATERRString关联AccessorScanner_Cpu1CATERRAccessor宕机信号CPU宕机信号用于北向 CPU出错录像显示"<=/Scanner_Cpu1CATERRAccessor.Value"硬件提供硬件
PositionStringCpuBoard1~CpuBoard16-CPU所处的基础板显示CPU所在的基础板位置CpuBoard1CSR配置软件
DeviceLocatorStringCPU1~CPU16-处理器资源的丝印
在多个Host间标识CPU
显示CPU的位置CPU1CSR配置软件
ProcessorHotString关联AccessorScanner_Cpu1ProcessorHotAccessorCPU的内核过热保护状态CPU内核过温告警配置"<=/Scanner_Cpu1ProcessorHotAccessor.Value"硬件提供硬件
ThermalTripString关联AccessorScanner_Cpu1ThermalTripAccessorCPU的过热保护状态CPU过温告警配置"<=/Scanner_Cpu1ThermalTripAccessor.Value"硬件提供硬件
HealthStringU8Component_ComCpu1处理器健康状态CPU健康状态告警配置"<=/Component_ComCpu1.Health"CSR配置软件
PowerGoodString0、1Scanner_PowerGd电源状态CPU上电状态"<=/Scanner_PowerGd.Value"硬件提供硬件
IsMemoryPresenceU800、1-是否有关联内存在位默认无关联内存在位,配置为00CSR配置软件

可选属性

属性名类型默认值取值范围动态关联描述使用场景举例来源分类
ClearThermalTripString关联AccessorAccessor_Cpu1ClearThermalTripAccessor清除过热保护状态CPU清除过热保护状态"#/Accessor_Cpu1ClearThermalTripAccessor.Value"硬件提供硬件
TemperatureCelsiusDouble0--CPU核心温度CPU温度显示、告警配置0smbios上报软件
MaxMemoryTemperatureCelsiusDouble0--关联内存中的最大温度
为啥固定为0?默认值是0
为啥固定为0?默认值是00smbios上报软件
MaxMemoryTemperatureNameString"N/A"--CPU下挂的最高温度内存标识
为啥固定为0?默认值是0
为啥固定为0?默认值是0"N/A"smbios上报软件
NameStringCPU1、CPU2-名字名字CPU1组件更新软件
SilkTextStringCPU1、CPU2CPU1、CPU2-处理器资源的板上丝印
在单个Host里面标识CPU
silk text用在哪里?举例CPU1CSR配置软件
ManufacturerString"Huawei"--硬件资产制造商硬件资产制造商"Huawei"smbios上报软件
EnabledBooleanfalsetrue/false-CPU启用状态CPU使用状态false组件设置软件
SocString"HixxxV100"--表示CPU类型,后续使用soft里面的CPUType字段用于imu、hbm日志收集区分CPU类型采取不同的收集参数"HixxxV100"CSR配置软件

🔗 动态关联机制

语法规范

使用 #/xxx<=/xxx 格式实现属性间的动态关联:

yaml
# 语法格式
属性名: "#/目标类.属性名"     # 直接关联
属性名: "<=/目标类.属性名"    # 条件关联

# 实际示例
CATERR: "<=/Scanner_Cpu1CATERRAccessor.Value"         # 关联宕机信号扫描器
ProcessorHot: "<=/Scanner_Cpu1ProcessorHotAccessor.Value" # 关联过热保护扫描器
ThermalTrip: "<=/Scanner_Cpu1ThermalTripAccessor.Value"   # 关联热保护扫描器
ClearThermalTrip: "#/Accessor_Cpu1ClearThermalTripAccessor.Value" # 关联清除热保护访问器
Health: "<=/Component_ComCpu1.Health"                     # 关联健康状态组件
PowerGood: "<=/Scanner_PowerGd.Value"                     # 关联电源状态扫描器

关联说明

  • Scanner关联: 通过Scanner获取实时硬件状态信息
  • Accessor关联: 通过Accessor进行读写操作
  • Component关联: 与其他组件的状态关联
  • 多种信号源: 支持温度、电源、故障等多种信号源的关联

📂 分类标准

硬件属性

  • 定义:直接从硬件获取或控制硬件的参数
  • 特点:实时反映硬件状态,支持硬件控制操作
  • 示例CATERR, ProcessorHot, ThermalTrip, ClearThermalTrip, PowerGood

软件属性

  • 定义:用于软件层面的CPU管理和配置
  • 特点:包含标识、配置、状态管理等功能
  • 示例Id, SystemId, PhysicalId, LogicalId, Presence, Architecture, DiagnosticFault, PredictiveFault, Position, DeviceLocator, Health, IsMemoryPresence

📝 配置示例

标准单CPU配置

json
{
  "CPU": {
    "Id": 1,
    "SystemId": 1,
    "PhysicalId": 1,
    "LogicalId": 0,
    "Presence": 1,
    "Architecture": "ARM",
    "DiagnosticFault": 0,
    "PredictiveFault": 0,
    "CATERR": "<=/Scanner_Cpu1CATERRAccessor.Value",
    "Position": "CpuBoard1",
    "DeviceLocator": "CPU1",
    "ProcessorHot": "<=/Scanner_Cpu1ProcessorHotAccessor.Value",
    "ThermalTrip": "<=/Scanner_Cpu1ThermalTripAccessor.Value",
    "Health": "<=/Component_ComCpu1.Health",
    "PowerGood": "<=/Scanner_PowerGd.Value",
    "IsMemoryPresence": 0,
    "Name": "CPU1",
    "SilkText": "CPU1",
    "Manufacturer": "Huawei",
    "Soc": "HixxxV100",
    "Enabled": true
  }
}

双CPU配置(CPU1)

json
{
  "CPU1": {
    "Id": 1,
    "SystemId": 1,
    "PhysicalId": 1,
    "LogicalId": 0,
    "Presence": 1,
    "Architecture": "ARM",
    "DiagnosticFault": 0,
    "PredictiveFault": 0,
    "CATERR": "<=/Scanner_Cpu1CATERRAccessor.Value",
    "Position": "CpuBoard1",
    "DeviceLocator": "CPU1",
    "ProcessorHot": "<=/Scanner_Cpu1ProcessorHotAccessor.Value",
    "ThermalTrip": "<=/Scanner_Cpu1ThermalTripAccessor.Value",
    "ClearThermalTrip": "#/Accessor_Cpu1ClearThermalTripAccessor.Value",
    "Health": "<=/Component_ComCpu1.Health",
    "PowerGood": "<=/Scanner_PowerGd.Value",
    "IsMemoryPresence": 1,
    "Name": "CPU1",
    "SilkText": "CPU1",
    "Soc": "HixxxV100",
    "Enabled": true
  }
}

双CPU配置(CPU2)

json
{
  "CPU2": {
    "Id": 2,
    "SystemId": 1,
    "PhysicalId": 2,
    "LogicalId": 1,
    "Presence": 1,
    "Architecture": "ARM",
    "DiagnosticFault": 0,
    "PredictiveFault": 0,
    "CATERR": "<=/Scanner_Cpu2CATERRAccessor.Value",
    "Position": "CpuBoard2",
    "DeviceLocator": "CPU2",
    "ProcessorHot": "<=/Scanner_Cpu2ProcessorHotAccessor.Value",
    "ThermalTrip": "<=/Scanner_Cpu2ThermalTripAccessor.Value",
    "ClearThermalTrip": "#/Accessor_Cpu2ClearThermalTripAccessor.Value",
    "Health": "<=/Component_ComCpu2.Health",
    "PowerGood": "<=/Scanner_PowerGd.Value",
    "IsMemoryPresence": 1,
    "Name": "CPU2",
    "SilkText": "CPU2",
    "Soc": "HixxxV100",
    "Enabled": true
  }
}

多Host场景配置

json
{
  "CPU_Host2": {
    "Id": 3,
    "SystemId": 2,
    "PhysicalId": 1,
    "LogicalId": 0,
    "Presence": 1,
    "Architecture": "ARM",
    "DiagnosticFault": 0,
    "PredictiveFault": 0,
    "CATERR": "<=/Scanner_Host2Cpu1CATERRAccessor.Value",
    "Position": "CpuBoard3",
    "DeviceLocator": "CPU3",
    "ProcessorHot": "<=/Scanner_Host2Cpu1ProcessorHotAccessor.Value",
    "ThermalTrip": "<=/Scanner_Host2Cpu1ThermalTripAccessor.Value",
    "Health": "<=/Component_Host2ComCpu1.Health",
    "PowerGood": "<=/Scanner_Host2PowerGd.Value",
    "IsMemoryPresence": 0,
    "Name": "CPU3",
    "SilkText": "CPU3",
    "Soc": "HixxxV100",
    "Enabled": true
  }
}

🔧 使用指南

配置步骤

  1. 设置基本标识:配置Id、SystemId、PhysicalId、LogicalId
  2. 配置物理信息:设置Position、DeviceLocator、SilkText
  3. 关联硬件信号:配置CATERR、ProcessorHot、ThermalTrip等硬件关联
  4. 设置状态管理:配置Health、PowerGood、Presence等状态属性
  5. 配置故障检测:设置DiagnosticFault、PredictiveFault等故障属性
  6. 可选配置:根据需要配置温度、资产信息等可选属性

注意事项

  • ID唯一性:Id在多Host间必须唯一,PhysicalId在单Host内唯一
  • 逻辑关系:LogicalId = PhysicalId - 1
  • 硬件关联:确保Scanner和Accessor对象存在且可用
  • 多Host配置:SystemId用于区分不同的Host
  • 内存关联:IsMemoryPresence影响内存温度监控
  • 故障检测:DiagnosticFault和PredictiveFault由RAS组件自动设置

性能建议

  • 硬件监控:合理设置Scanner的扫描频率
  • 故障响应:及时处理CATERR和ThermalTrip信号
  • 温度管理:配置合适的温度监控和告警阈值
  • 资源优化:根据实际需求配置可选属性

ID体系说明

  • Id (1-16): 全局唯一标识,跨Host识别
  • SystemId (1-8): Host标识,区分不同主机
  • PhysicalId (1-2): 物理位置标识,单Host内唯一
  • LogicalId (0-1): 逻辑标识,用于软件内部管理

故障检测机制

  • DiagnosticFault: 硬件预故障检测
  • PredictiveFault: FDM诊断故障检测
  • CATERR: CPU宕机信号检测
  • ProcessorHot: 内核过热保护
  • ThermalTrip: 过热保护状态

常见问题

  • Q: 在位状态为什么不应该写死?
    • A: Presence应该反映CPU的实际在位状态,建议通过硬件检测动态获取
  • Q: 为什么MaxMemoryTemperatureCelsius固定为0?
    • A: 这是默认值,实际使用时会通过smbios上报获取真实的内存温度数据
  • Q: SilkText用在哪里?
    • A: SilkText主要用于物理标识和维护,帮助技术人员识别具体的CPU位置
  • Q: 多Host场景如何配置?
    • A: 通过SystemId区分不同Host,Id保持全局唯一,PhysicalId在各Host内独立编号