CSR配置字典之MemoryChannel类
更新时间: 2025/07/22
在Gitcode上查看源码📋 文档信息
| 项目 | 内容 |
|---|---|
| 文档标题 | MemoryChannel类配置字典 |
| 版本 | v1.0 |
| 创建日期 | 2026-06-22 |
| 最后更新 | 2026-06-22 |
| 维护状态 | ✅ 活跃维护 |
📋 变更历史记录
文档变更记录
| 版本 | 发布日期 | 变更类型 | 变更内容 | 影响范围 | 维护人员 |
|---|---|---|---|---|---|
| v1.0 | 2026-06-22 | 初始版本 | 创建MemoryChannel类配置字典 | 全新文档 | 系统管理员 |
🎯 类概览
MemoryChannel 类
| 属性 | 值 |
|---|---|
| 类名称 | MemoryChannel |
| 功能描述 | 内存通道配置和状态管理 |
| 所属SIG组 | system |
| 所属组件 | 内存管理 |
| 责任人 | 系统架构组 |
| 最后更新 | 2026-06-22 |
| 状态 | 🟢 正常运行 |
📊 属性定义详表
必选属性
| 属性名 | 类型 | 默认值 | 取值范围 | 动态关联 | 描述 | 使用场景 | 举例 | 来源 | 分类 |
|---|---|---|---|---|---|---|---|---|---|
SystemId | U8 | 无 | 1~8 | - | 系统Id 在多个Host间标识内存通道所属系统 | 指明内存通道所在的Host | 1 | CSR配置 | 软件 |
PhysicalChannelId | U8 | 无 | - | - | 物理内存通道Id 标识物理内存通道编号 | 内存通道物理ID显示 | 1 | CSR配置 | 软件 |
LogicalChannelId | U8 | 无 | 0~N | - | 逻辑内存通道Id 在单个Host里面标识内存通道 | 内存通道逻辑ID显示 | 0 | CSR配置 | 软件 |
LogicalCpuId | U8 | 无 | 0~N | - | 逻辑cpuId 标识内存通道所属的逻辑CPU | 关联内存通道与逻辑CPU | 0 | CSR配置 | 软件 |
Name | String | 无 | - | - | 内存通道名 内存通道的名称标识 | 内存通道名称显示 | "Channel0" | CSR配置 | 软件 |
DiagnosticFault | U8 | 0 | 0、1 | - | 严重故障诊断告警状态 默认值为0,异常状况置1 | 内存通道故障检测告警配置 | 0 | ras组件设置 | 软件 |
CorrectableECCStormBurstEvent | U8 | 0 | 0、1 | - | 内存发生超级CE风暴 取值: 0-未发生,1-发生。系统下电/复位时,恢复到未发生状态 | ECC风暴检测告警配置 | 0 | ras组件设置 | 软件 |
可选属性
说明:MemoryChannel类的CSR属性均为通道配置必需项,无额外可选属性。如需扩展温度监控、资产信息等属性,可参照CPU类可选属性模式进行补充。
🔗 动态关联机制
语法规范
使用 #/xxx 和 <=/xxx 格式实现属性间的动态关联:
yaml
# 语法格式
属性名: "#/目标类.属性名" # 直接关联
属性名: "<=/目标类.属性名" # 条件关联
# MemoryChannel当前属性均为独立配置,暂无动态关联示例
# 未来扩展时可能关联的示例:
# Health: "<=/Component_MemChannel1.Health" # 关联健康状态组件
# Temperature: "<=/Scanner_MemChannel1Temp.Value" # 关联温度扫描器关联说明
- 当前状态:MemoryChannel类属性均为独立配置,暂无Scanner/Accessor动态关联
- 未来扩展:可根据需求增加温度监控、健康状态等动态关联属性
- 跨组件关联:LogicalCpuId实现与CPU类的逻辑关联,标识内存通道所属CPU
📂 分类标准
硬件属性
- 定义:直接从硬件获取或控制硬件的参数
- 特点:实时反映硬件状态,支持硬件控制操作
- 当前状态:MemoryChannel类暂无纯硬件属性,故障相关属性由软件组件设置
软件属性
- 定义:用于软件层面的内存通道管理和配置
- 特点:包含标识、配置、状态管理等功能
- 示例:
SystemId,PhysicalChannelId,LogicalChannelId,LogicalCpuId,Name,DiagnosticFault,CorrectableECCStormBurstEvent
📝 配置示例
标准单通道配置
json
{
"MemoryChannel": {
"SystemId": 1,
"PhysicalChannelId": 1,
"LogicalChannelId": 0,
"LogicalCpuId": 0,
"Name": "Channel0",
"DiagnosticFault": 0,
"CorrectableECCStormBurstEvent": 0
}
}多通道配置(通道1)
json
{
"MemoryChannel1": {
"SystemId": 1,
"PhysicalChannelId": 1,
"LogicalChannelId": 0,
"LogicalCpuId": 0,
"Name": "Channel0",
"DiagnosticFault": 0,
"CorrectableECCStormBurstEvent": 0
}
}多通道配置(通道2)
json
{
"MemoryChannel2": {
"SystemId": 1,
"PhysicalChannelId": 2,
"LogicalChannelId": 1,
"LogicalCpuId": 0,
"Name": "Channel1",
"DiagnosticFault": 0,
"CorrectableECCStormBurstEvent": 0
}
}多Host场景配置
json
{
"MemoryChannel_Host2": {
"SystemId": 2,
"PhysicalChannelId": 1,
"LogicalChannelId": 0,
"LogicalCpuId": 0,
"Name": "Host2_Channel0",
"DiagnosticFault": 0,
"CorrectableECCStormBurstEvent": 0
}
}ECC风暴检测场景配置
json
{
"MemoryChannel_ECCStorm": {
"SystemId": 1,
"PhysicalChannelId": 1,
"LogicalChannelId": 0,
"LogicalCpuId": 0,
"Name": "Channel0",
"DiagnosticFault": 0,
"CorrectableECCStormBurstEvent": 1
}
}🔧 使用指南
配置步骤
- 设置基本标识:配置SystemId、PhysicalChannelId、LogicalChannelId、LogicalCpuId
- 配置名称信息:设置Name属性标识内存通道
- 设置故障检测:配置DiagnosticFault严重故障告警状态
- 配置ECC风暴检测:设置CorrectableECCStormBurstEvent可纠正ECC风暴检测状态
- 跨组件关联:通过LogicalCpuId关联对应的CPU对象
注意事项
- ID唯一性:LogicalChannelId在单Host内必须唯一,PhysicalChannelId标识物理通道编号
- 主键组合:SystemId + LogicalChannelId + LogicalCpuId 构成联合主键,确保唯一性
- 跨组件关联:LogicalCpuId需与CPU类的LogicalId保持一致
- 多Host配置:SystemId用于区分不同的Host
- 故障检测:DiagnosticFault由RAS组件自动设置,不建议手动修改
- ECC风暴复位:CorrectableECCStormBurstEvent在系统下电/复位时自动恢复为0
性能建议
- 故障响应:及时处理DiagnosticFault告警信号
- ECC风暴监控:关注CorrectableECCStormBurstEvent状态变化,及时进行内存巡检
- 通道管理:根据实际硬件拓扑合理配置通道与CPU的关联关系
- 资源优化:根据实际需求扩展可选属性
ID体系说明
- SystemId (1-8): Host标识,区分不同主机
- PhysicalChannelId: 物理内存通道标识,标识硬件层面的通道编号
- LogicalChannelId (0~N): 逻辑内存通道标识,单Host内唯一
- LogicalCpuId (0~N): 逻辑CPU标识,关联内存通道所属的逻辑CPU
故障检测机制
- DiagnosticFault: 严重故障诊断告警,用于内存通道硬件预故障检测
- CorrectableECCStormBurstEvent: 可纠正ECC风暴检测
- 取值0:未发生超级CE风暴
- 取值1:发生超级CE风暴
- 系统下电/复位时自动恢复为0
- 权限为ReadOnly,不可手动修改
常见问题
- Q: CorrectableECCStormBurstEvent为什么是ReadOnly权限?
- A: 该属性由硬件和RAS组件自动检测并设置,ReadOnly权限防止手动误操作,确保状态真实反映硬件情况
- Q: ECC风暴检测状态何时会恢复?
- A: 系统下电或复位时,CorrectableECCStormBurstEvent自动恢复为0(未发生),这也是其使用场景包含ResetPer的原因
- Q: LogicalCpuId如何与CPU对象关联?
- A: LogicalCpuId应与CPU类的LogicalId保持一致,用于标识该内存通道归属的逻辑CPU
- Q: 多Host场景如何配置内存通道?
- A: 通过SystemId区分不同Host,LogicalChannelId在各Host内独立编号,PhysicalChannelId反映硬件实际通道编号