CSR配置字典之CPU类
更新时间:2025/7/22
在Gitcode上查看源码📋 文档信息
项目 | 内容 |
---|---|
文档标题 | CPU类配置字典 |
版本 | v1.0 |
创建日期 | 2025-01-27 |
最后更新 | 2025-01-27 |
维护状态 | ✅ 活跃维护 |
📋 变更历史记录
文档变更记录
版本 | 发布日期 | 变更类型 | 变更内容 | 影响范围 | 维护人员 |
---|---|---|---|---|---|
v1.0 | 2025-01-27 | 初始版本 | 创建CPU类配置字典 | 全新文档 | 系统管理员 |
🎯 类概览
CPU 类
属性 | 值 |
---|---|
类名称 | CPU |
功能描述 | CPU处理器配置和状态管理 |
所属SIG组 | system |
所属组件 | 处理器管理 |
责任人 | 系统架构组 |
最后更新 | 2025-01-27 |
状态 | 🟢 正常运行 |
📊 属性定义详表
必选属性
属性名 | 类型 | 默认值 | 取值范围 | 动态关联 | 描述 | 使用场景 | 举例 | 来源 | 分类 |
---|---|---|---|---|---|---|---|---|---|
Id | U8 | 无 | 1~16 | - | ID 在多个Host间标识CPU | 指定CPU的编码 | 1 | CSR配置 | 软件 |
SystemId | U8 | 无 | 1~8 | - | Host ID | 指明CPU所在的Host | 1 | CSR配置 | 软件 |
PhysicalId | U8 | 无 | 1、2 | - | 物理ID 在单个Host里面标识CPU | 逻辑ID=物理ID-1 | 1 | CSR配置 | 软件 |
LogicalId | U8 | 无 | 0、1 | - | 逻辑ID 在单个Host里面标识CPU | CPU逻辑ID显示 | 0 | CSR配置 | 软件 |
Presence | U8 | 1 | 1 | - | 在位状态 | 在位不应该写死吧? | 1 | CSR配置 | 软件 |
Architecture | String | "ARM" | "ARM" | - | 系统架构 | 北向接口显示CPU架构 | "ARM" | CSR配置 | 软件 |
DiagnosticFault | U8 | 0 | - | - | 硬件预故障标志位 默认值为0 | CPU预故障告警配置 | 0 | ras组件设置 | 软件 |
PredictiveFault | U8 | 0 | - | - | FDM诊断发现故障的标志位 默认值0,异常状况置1 | CPU故障检测告警配置 | 0 | ras组件设置 | 软件 |
CATERR | String | 无 | 关联Accessor | Scanner_Cpu1CATERRAccessor | 宕机信号 | CPU宕机信号用于北向 CPU出错录像显示 | "<=/Scanner_Cpu1CATERRAccessor.Value" | 硬件提供 | 硬件 |
Position | String | 无 | CpuBoard1~CpuBoard16 | - | CPU所处的基础板 | 显示CPU所在的基础板位置 | CpuBoard1 | CSR配置 | 软件 |
DeviceLocator | String | 无 | CPU1~CPU16 | - | 处理器资源的丝印 在多个Host间标识CPU | 显示CPU的位置 | CPU1 | CSR配置 | 软件 |
ProcessorHot | String | 无 | 关联Accessor | Scanner_Cpu1ProcessorHotAccessor | CPU的内核过热保护状态 | CPU内核过温告警配置 | "<=/Scanner_Cpu1ProcessorHotAccessor.Value" | 硬件提供 | 硬件 |
ThermalTrip | String | 无 | 关联Accessor | Scanner_Cpu1ThermalTripAccessor | CPU的过热保护状态 | CPU过温告警配置 | "<=/Scanner_Cpu1ThermalTripAccessor.Value" | 硬件提供 | 硬件 |
Health | String | 无 | U8 | Component_ComCpu1 | 处理器健康状态 | CPU健康状态告警配置 | "<=/Component_ComCpu1.Health" | CSR配置 | 软件 |
PowerGood | String | 无 | 0、1 | Scanner_PowerGd | 电源状态 | CPU上电状态 | "<=/Scanner_PowerGd.Value" | 硬件提供 | 硬件 |
IsMemoryPresence | U8 | 0 | 0、1 | - | 是否有关联内存在位 | 默认无关联内存在位,配置为0 | 0 | CSR配置 | 软件 |
可选属性
属性名 | 类型 | 默认值 | 取值范围 | 动态关联 | 描述 | 使用场景 | 举例 | 来源 | 分类 |
---|---|---|---|---|---|---|---|---|---|
ClearThermalTrip | String | 无 | 关联Accessor | Accessor_Cpu1ClearThermalTripAccessor | 清除过热保护状态 | CPU清除过热保护状态 | "#/Accessor_Cpu1ClearThermalTripAccessor.Value" | 硬件提供 | 硬件 |
TemperatureCelsius | Double | 0 | - | - | CPU核心温度 | CPU温度显示、告警配置 | 0 | smbios上报 | 软件 |
MaxMemoryTemperatureCelsius | Double | 0 | - | - | 关联内存中的最大温度 为啥固定为0?默认值是0 | 为啥固定为0?默认值是0 | 0 | smbios上报 | 软件 |
MaxMemoryTemperatureName | String | "N/A" | - | - | CPU下挂的最高温度内存标识 为啥固定为0?默认值是0 | 为啥固定为0?默认值是0 | "N/A" | smbios上报 | 软件 |
Name | String | 无 | CPU1、CPU2 | - | 名字 | 名字 | CPU1 | 组件更新 | 软件 |
SilkText | String | CPU1、CPU2 | CPU1、CPU2 | - | 处理器资源的板上丝印 在单个Host里面标识CPU | silk text用在哪里?举例 | CPU1 | CSR配置 | 软件 |
Manufacturer | String | "Huawei" | - | - | 硬件资产制造商 | 硬件资产制造商 | "Huawei" | smbios上报 | 软件 |
Enabled | Boolean | false | true/false | - | CPU启用状态 | CPU使用状态 | false | 组件设置 | 软件 |
Soc | String | "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
}
}
🔧 使用指南
配置步骤
- 设置基本标识:配置Id、SystemId、PhysicalId、LogicalId
- 配置物理信息:设置Position、DeviceLocator、SilkText
- 关联硬件信号:配置CATERR、ProcessorHot、ThermalTrip等硬件关联
- 设置状态管理:配置Health、PowerGood、Presence等状态属性
- 配置故障检测:设置DiagnosticFault、PredictiveFault等故障属性
- 可选配置:根据需要配置温度、资产信息等可选属性
注意事项
- 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内独立编号