17.4. 异构内存属性信息
可选地,OSPM 可以使用异构内存属性进一步优化 NUMA 架构系统。如果系统局部性之间的内存延迟和带宽属性存在显著差异,这将非常有用。在这种情况下,该信息包含在可选的异构内存属性(HMAT)中,并通过对 _HMA 对象的求值返回。
HMAT 结构描述了内存访问发起方与内存目标系统局部性之间的延迟和带宽信息。系统局部性接近域标识符(由系统资源亲和性表(SRAT)中的接近域条目定义,或由 _PXM 对象返回)用于 HMAT 结构中。
实现说明:HMAT 表的大小由内存发起方系统局部性和内存目标系统局部性的数量决定。静态 HMAT 表提供了所有内存访问发起方与内存目标系统局部性之间内存延迟和带宽的启动时描述。对于热添加设备和系统局部性的动态重配置,必须使用 _HMA 对象进行运行时更新。
_HMA 方法是一个可选对象,它提供系统中内存访问发起方系统局部性“i”到所有其他内存目标系统局部性“j”的延迟和带宽的运行时更新。
由于 _HMA 方法提供的是系统局部性之间附加的内存延迟和带宽信息,因此如果实现了它,则会与 _PXM 方法一同提供。
17.4.1. 在线热插拔
对于在线设备添加的情况,会在某个设备对象上执行“总线检查”通知(0x0),以指示 OSPM 需要从收到通知的位置开始,在设备树上执行即插即用重新枚举操作。OSPM 需要对与所添加设备关联的所有 _PXM 对象进行求值,如果存在 HMAT,还需要对 _HMA 对象进行求值。
对于在线设备移除的情况,当 OSPM 收到“弹出请求”通知(0x03)时,需要执行即插即用弹出操作。OSPM 需要从其内部数据结构中移除与被弹出系统局部性相关的、针对已移除设备的信息。
17.4.2. 对现有局部性的影响
系统的动态重配置可能导致内存延迟和带宽信息(如果存在可选的 HMAT)过时。如果发生这种情况,平台可以向设备树中表示某个系统局部性的某一点上的设备生成异构内存属性更新通知(类型为 0xE 的 Notify 事件)。这表示 OSPM 需要从收到通知的位置开始,调用设备树上与系统局部性关联的 _HMA 对象。