当前位置: 首页 > news >正文

ACPI HMAT(Heterogeneous Memory Attribute Table,异构内存属性表)

好的,下面详细展开ACPI HMAT(Heterogeneous Memory Attribute Table,异构内存属性表)​ 在计算机体系结构和 Linux 内核中的含义与用途。


📌 HMAT 是什么

HMAT(Heterogeneous Memory Attribute Table)​ 是 ACPI 6.2+ 规范中定义的系统固件表(Section 5.2.27),用于向操作系统描述系统中不同类型内存的性能特征,主要包括:

  • 访问延迟(Latency):CPU/设备 → 各内存 Proximity Domain 的读写延迟

  • 带宽(Bandwidth):各访问路径的读/写带宽

  • 内存侧缓存属性(Memory Side Cache):如是否存在 Die 上/片外缓存及其大小、关联方式、写策略等

配合SRAT(System Resource Affinity Table)​ 使用:

  • SRAT​ 告诉 OS "有哪些 CPU / 内存 / 设备在哪个 NUMA Proximity Domain"

  • HMAT​ 补充 "从这些 Initiator(CPU/GPU/加速器)到这些 Memory Target 的性能参数是什么"


🎯 为什么需要 HMAT

现代服务器常见异构内存拓扑,例如:

  • 本地 DRAM + 持久内存(Intel Optane PMem / NVDIMM)

  • DRAM + HBM(High Bandwidth Memory)

  • DRAM + CXL Type-3 内存扩展设备

传统 NUMA 仅靠 SLIT 表给出"NUMA Distance"(一个粗略的相对值),不足以区分上述不同介质的真实延迟/带宽差异。HMAT 让 OS 和运行时库可以按性能特征做智能内存放置,例如:

  • Linux 内核据此建立Memory Tier(内存分层),自动将慢速内存(PMem/CXL)标记为较低 tier

  • 配置NUMA 交错权重(Interleave Weight)​ 偏向高性能节点

  • libmemkind/numactl等可按延迟或带宽偏好分配页面


🏗️ HMAT 关键结构

HMAT 表包含若干子结构(ACPI Spec 5.2.27):

子结构

说明

Memory Proximity Domain Attributes

标记某内存 Proximity Domain 关联的 Initiator(哪个 CPU Socket 可发起访问)

System Locency Latency and Bandwidth Info (SLLBI)

矩阵形式记录 Initiator→Target 的读/写延迟(ns)与带宽(MB/s)

Memory Side Cache Info

描述内存侧缓存(如 L4/Die-stacked cache)的大小、关联度、写回/写通策略等

示例概念(摘自内核文档):

Initiator Proximity Domain: CPU Socket 0 Target Proximity Domain: DRAM Node / CXL Mem Node → Latency: 80ns (DRAM), 100ns (CXL) → Bandwidth: 1200 (DRAM), 200 (CXL)

🐧 Linux 中的 HMAT 支持

  • 内核选项CONFIG_ACPI_HMAT=y(Linux 5.5+ 正式合入主线)

  • 解析路径drivers/acpi/hmat/中代码解析 BIOS 提供的 HMAT,向 sysfs 暴露性能信息

  • 查看方式

    # 确认 HMAT 表存在 sudo acpidump | grep -i HMAT # 或反汇编查看 sudo acpixtract -a iasl -d HMAT.dat # 查看 NUMA 节点及内存分层(内核 6.x) cat /sys/devices/system/node/node*/distance ls /sys/kernel/mm/memory_tiering/
  • 若 HMAT 缺失或数据不完整,Linux 会将所有内存归为同一 tier,不做差异化分层


🔗 与其他 ACPI 表的关系

作用

SRAT

定义 Proximity Domain ↔ CPU / Memory / Device 亲和关系

SLIT

给出 NUMA Node 间的相对距离(抽象值 10/21/31…)

HMAT

补充 SRAT 中内存域的具体延迟/带宽/缓存属性(更精确)

CEDT

CXL 设备发现(配合 HMAT 描述 CXL 内存性能)


简单说:HMAT 就是 BIOS/UEFI 告诉操作系统"这块内存快、那块内存慢、差多少 ns 和 MB/s"的一张明细表,是异构内存(PMem、CXL、HBM)在现代 Linux 上被正确分层调度的前提。

http://www.cnnetsun.cn/news/3244295.html

相关文章:

  • AI与大模型新闻日报 | 2026-07-09
  • GSE宏编辑器终极指南:如何在魔兽世界中打造智能技能序列
  • 东芝H桥驱动器与PIC32MX的直流电机控制方案
  • A3910与STM32F215RE电机控制实战指南
  • 广州做小程序商城的公司有哪些,大湾区微信生态才是真正的选型红利
  • FPGA 数字时钟 Verilog 模块化设计:4大核心模块与 50MHz 分频实战
  • NCMDump终极指南:三步解锁网易云音乐加密格式,实现音频自由播放
  • BetterJoy:3分钟将Switch手柄变身高性能PC游戏控制器
  • Android .so 文件简析
  • 云器科技开源“增量Skill”:一句话让AI搞定增量数据开发,任意AI Agent生产级可用
  • MP2672A双节锂电池充电管理与STM32F302R8硬件设计
  • ROS 多传感器同步方案对比:ExactTime vs ApproximateTime 在4种场景下的性能实测
  • 欧姆龙G6D-ASI与PIC18F47K42的智能负载控制方案
  • 没有实拍素材怎么快速做投流视频,AI能生成镜头脚本吗
  • STM32与A3908构建高精度运动控制系统的关键技术解析
  • 3分钟掌握ncmdump:轻松解密网易云音乐加密文件的完整指南
  • STM32与H桥驱动器实现直流电机智能控制方案
  • IDM激活脚本终极指南:3步实现永久免费高速下载
  • MP2672A双节锂电池充电管理与电压平衡技术详解
  • 5步精通Shelter隔离环境配置:从安装到故障排除的完整指南
  • ncmdumpGUI:3步轻松解锁网易云音乐NCM文件,让音乐自由播放
  • I-JEPA 架构实战:4步复现 Meta 自监督视觉模型,72小时训练 ViT-H/14
  • (保姆级)Vscode 更换自定义代码及终端字体
  • 专业级浏览器资源嗅探工具配置指南:从零开始高效部署猫抓扩展
  • 支付逻辑漏洞实战:Burp Suite 2024.3 抓包篡改价格,复现 3 种常见攻击手法
  • A3910与STM32F756ZG在工业运动控制中的高效应用
  • 终极跨平台图表绘制解决方案:drawio-desktop全功能指南
  • TLP241A光隔离继电器与PIC18F4610的工业控制应用
  • 如何在Windows上完美使用苹果触控板:mac-precision-touchpad完整使用指南
  • 3步上手UABEA:Unity游戏资源编辑与Asset Bundle解析完整指南