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

📋 文档信息

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

📋 变更历史记录

文档变更记录

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

🎯 类概览

MemoryChannel 类

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

📊 属性定义详表

必选属性

属性名类型默认值取值范围动态关联描述使用场景举例来源分类
SystemIdU81~8-系统Id
在多个Host间标识内存通道所属系统
指明内存通道所在的Host1CSR配置软件
PhysicalChannelIdU8--物理内存通道Id
标识物理内存通道编号
内存通道物理ID显示1CSR配置软件
LogicalChannelIdU80~N-逻辑内存通道Id
在单个Host里面标识内存通道
内存通道逻辑ID显示0CSR配置软件
LogicalCpuIdU80~N-逻辑cpuId
标识内存通道所属的逻辑CPU
关联内存通道与逻辑CPU0CSR配置软件
NameString--内存通道名
内存通道的名称标识
内存通道名称显示"Channel0"CSR配置软件
DiagnosticFaultU800、1-严重故障诊断告警状态
默认值为0,异常状况置1
内存通道故障检测告警配置0ras组件设置软件
CorrectableECCStormBurstEventU800、1-内存发生超级CE风暴
取值: 0-未发生,1-发生。系统下电/复位时,恢复到未发生状态
ECC风暴检测告警配置0ras组件设置软件

可选属性

说明: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
  }
}

🔧 使用指南

配置步骤

  1. 设置基本标识:配置SystemId、PhysicalChannelId、LogicalChannelId、LogicalCpuId
  2. 配置名称信息:设置Name属性标识内存通道
  3. 设置故障检测:配置DiagnosticFault严重故障告警状态
  4. 配置ECC风暴检测:设置CorrectableECCStormBurstEvent可纠正ECC风暴检测状态
  5. 跨组件关联:通过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反映硬件实际通道编号