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

📋 文档信息

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

📋 变更历史记录

文档变更记录

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

🎯 类概览

Memory 类

属性
类名称Memory
功能描述内存管理,提供内存信息加载、显示和状态监控功能,支持DIMM通道配置和HBM温度监控
所属SIG组memory
所属组件memory
责任人内存管理组
最后更新2025-01-27
状态🟢 正常运行

📊 属性定义详表

必选属性

属性名类型默认值取值范围动态关联描述使用场景举例来源分类
SystemIdU80与Host个数保持一致-内存所在的HostId内存信息加载、显示"${SystemId}"CSR配置软件
DimmNumU80U8-内存Dimm通道号内存信息加载、显示`"$> expr($1 * 16 - 8)"`CSR配置
NameString''字符串,格式是Memory_XYZ
X:CPU逻辑号
Y:物理通道号
Z:DIMM序号
-内存名称,以Memory开头内存信息加载、显示`"$> expr($1 * 2 - 2)> string.format('Memory%s40', $1)"`
DimmNameString''字符串,格式是DIMM_XYZ
X:CPU逻辑号
Y:物理通道号
Z:DIMM序号
-内存DIMM名称,以DIMM开头内存信息加载、显示`"$> expr($1 * 2 - 2)> string.format('DIMM%s40', $1)"`
PresenceU80U8-内存在位状态,默认不在位内存信息加载、显示255CSR配置软件
CpuIdU80U8-操作该块内存的CpuId内存信息加载、显示`"$> expr($1 * 2 - 2)"`CSR配置
NodeIdU80U8-内存节点Id内存信息加载、显示`"$> expr($1 * 2 - 2)"`CSR配置
ChannelIdU80U8-内存通道Id内存信息加载、显示255CSR配置软件
LogicalChannelIdU80U8-逻辑通道Id,CpuId+LogicalChannelId+DimmId唯一确定一块内存内存信息加载、显示255CSR配置软件
DimmIdU80U8-槽位Id内存信息加载、显示255CSR配置软件
PositionString''String-内存位置内存信息加载、显示"CpuBoard${Slot}"CSR配置软件
SilkTextString''String-内存的板上丝印内存信息加载、显示"DIMM"CSR配置软件
DeviceLocatorString''String-内存的丝印内存信息加载、显示`"$> expr($1 * 2 - 2)> string.format('DIMM%s50', $1)"`
HealthU80U8Component_Memory内存健康状态内存信息加载、显示"<=/Component_Memory6.Health"CSR配置硬件

可选属性

属性名类型默认值取值范围动态关联描述使用场景举例来源分类
MemoryDeviceTypeStringUnknownString-内存设备类型,只有HBM需要配置内存信息加载、显示"DRAM"CSR配置软件
LogicTemperatureCelsiusDouble0Double-HBM Logic区域温度内存信息加载、显示0软件刷新硬件
DRAMTemperatureCelsiusDouble0Double-HBM DRAM区域温度内存信息加载、显示0软件刷新硬件
PredictiveFaultU80U8-预故障告警状态内存信息加载、显示0CSR配置软件
OriginalPartNumberString''String-内存的原厂部件号内存信息加载、显示"N/A"CSR配置软件
SerialNumberString''String-内存序列号内存信息加载、显示""软件更新软件
DiagnosticFaultU80U8-严重故障诊断告警状态内存信息加载、显示0CSR配置软件

🔗 动态关联机制

语法规范

使用表达式和变量替换语法实现动态关联:

yaml
# 系统ID变量替换
SystemId: "${SystemId}"

# 表达式计算
DimmNum: "${Slot} |> expr($1 * 16 - 8)"
CpuId: "${Slot} |> expr($1 * 2 - 2)"

# 字符串格式化
Name: "${Slot} |> expr($1 * 2 - 2) |> string.format('Memory%s40', $1)"
DimmName: "${Slot} |> expr($1 * 2 - 2) |> string.format('DIMM%s40', $1)"

# 健康状态关联
Health: "<=/Component_Memory6.Health"

关联说明

  • SystemId: 使用系统ID变量标识内存所在的Host
  • 表达式计算: 通过槽位计算相关ID和通道号
  • 字符串格式化: 动态生成内存名称和DIMM名称
  • Health: 关联Component对象获取健康状态

📂 分类标准

硬件属性

  • 定义:与硬件内存设备直接相关的参数
  • 特点:反映内存硬件的物理状态和温度
  • 示例Health, LogicTemperatureCelsius, DRAMTemperatureCelsius

软件属性

  • 定义:用于软件逻辑控制和信息管理的参数
  • 特点:由CSR配置或软件更新管理
  • 示例SystemId, DimmNum, Name, DimmName, Presence, CpuId, NodeId, ChannelId, LogicalChannelId, DimmId, Position, SilkText, DeviceLocator, MemoryDeviceType, PredictiveFault, OriginalPartNumber, SerialNumber, DiagnosticFault

📝 配置示例

标准DIMM内存配置

json
{
  "Memory": {
    "SystemId": "${SystemId}",
    "DimmNum": "${Slot} |> expr($1 * 16 - 8)",
    "Name": "${Slot} |> expr($1 * 2 - 2) |> string.format('Memory%s40', $1)",
    "DimmName": "${Slot} |> expr($1 * 2 - 2) |> string.format('DIMM%s40', $1)",
    "Presence": 255,
    "CpuId": "${Slot} |> expr($1 * 2 - 2)",
    "NodeId": "${Slot} |> expr($1 * 2 - 2)",
    "ChannelId": 255,
    "LogicalChannelId": 255,
    "DimmId": 255,
    "Position": "CpuBoard${Slot}",
    "SilkText": "DIMM",
    "DeviceLocator": "${Slot} |> expr($1 * 2 - 2) |> string.format('DIMM%s50', $1)",
    "Health": "<=/Component_Memory6.Health",
    "MemoryDeviceType": "DRAM"
  }
}

HBM内存配置

json
{
  "Memory": {
    "SystemId": "1",
    "DimmNum": "8",
    "Name": "Memory140",
    "DimmName": "DIMM140",
    "Presence": 1,
    "CpuId": "1",
    "NodeId": "1",
    "ChannelId": 1,
    "LogicalChannelId": 1,
    "DimmId": 1,
    "Position": "CpuBoard1",
    "SilkText": "HBM",
    "DeviceLocator": "HBM150",
    "Health": "<=/Component_Memory1.Health",
    "MemoryDeviceType": "HBM",
    "LogicTemperatureCelsius": 0,
    "DRAMTemperatureCelsius": 0
  }
}

多通道内存配置

json
{
  "Memory": {
    "SystemId": "2",
    "DimmNum": "24",
    "Name": "Memory240",
    "DimmName": "DIMM240",
    "Presence": 1,
    "CpuId": "2",
    "NodeId": "2",
    "ChannelId": 2,
    "LogicalChannelId": 2,
    "DimmId": 2,
    "Position": "CpuBoard2",
    "SilkText": "DIMM",
    "DeviceLocator": "DIMM250",
    "Health": "<=/Component_Memory2.Health",
    "MemoryDeviceType": "DRAM",
    "SerialNumber": "ABC123456",
    "OriginalPartNumber": "HMA81GR7CJR8N-VK"
  }
}

🔧 使用指南

配置步骤

  1. 设置系统标识:配置SystemId标识内存所在的Host
  2. 配置通道信息:设置DimmNum、ChannelId、LogicalChannelId、DimmId
  3. 设置CPU关联:配置CpuId和NodeId标识内存所属的CPU
  4. 配置名称信息:设置Name、DimmName、DeviceLocator等标识信息
  5. 设置位置信息:配置Position、SilkText标识物理位置
  6. 关联健康状态:通过Health关联Component对象
  7. 可选配置:根据内存类型配置温度监控和故障状态

注意事项

  • 唯一性标识:CpuId+LogicalChannelId+DimmId必须唯一确定一块内存
  • 命名规范:Name以Memory开头,DimmName以DIMM开头
  • 表达式计算:合理使用表达式计算相关ID和通道号
  • HBM特殊配置:HBM类型内存需要配置温度监控属性
  • 健康状态关联:确保关联的Component对象已正确定义
  • 在位状态:Presence默认为255表示不在位状态

性能建议

  • 合理配置通道:根据实际硬件配置合适的通道数量
  • 优化名称生成:使用表达式动态生成规范的名称
  • 温度监控:对于HBM内存启用温度监控功能
  • 故障预测:合理配置预故障告警机制

故障排查

  • 内存识别失败:检查SystemId、CpuId、NodeId配置
  • 通道冲突:检查ChannelId、LogicalChannelId、DimmId的唯一性
  • 健康状态异常:检查Health关联的Component对象
  • 温度监控异常:检查HBM温度监控配置
  • 名称显示错误:检查Name、DimmName的表达式计算

内存管理

  • 信息加载:支持内存基本信息的加载和显示
  • 状态监控:监控内存在位状态和健康状态
  • 故障诊断:支持预故障告警和严重故障诊断
  • 温度监控:支持HBM内存的Logic和DRAM区域温度监控
  • 序列号管理:支持内存序列号和部件号的管理

HBM内存支持

  • 设备类型:MemoryDeviceType配置为HBM
  • 温度监控:支持Logic和DRAM区域温度监控
  • 特殊配置:HBM内存需要特殊的温度监控配置
  • 故障诊断:支持HBM内存的故障诊断和告警