ACPI 中文文档ACPI 中文文档
首页
第 1 章
第 2 章
第 3 章
第 4 章
第 5 章
第 6 章
第 7 章
第 8 章
第 9 章
第 10 章
第 11 章
第 12 章
第 13 章
第 14 章
第 15 章
第 16 章
第 17 章
第 18 章
第 19 章
第 20 章
第 21 章
附录 A
首页
第 1 章
第 2 章
第 3 章
第 4 章
第 5 章
第 6 章
第 7 章
第 8 章
第 9 章
第 10 章
第 11 章
第 12 章
第 13 章
第 14 章
第 15 章
第 16 章
第 17 章
第 18 章
第 19 章
第 20 章
第 21 章
附录 A
  • 第 17 章

    • 总览
    • 17.1. NUMA 节点
    • 17.2. 系统局部性
    • 17.3. 系统局部性距离信息
    • 17.4. 异构内存属性信息

17.3. 系统局部性距离信息

可选地,OSPM 可以使用关于系统局部性之间相对内存延迟距离的信息,进一步优化 NUMA 架构系统。如果多个系统局部性之间的距离存在显著差异,这将非常有用。在这种情况下,简单的近/远区分可能不足。该信息包含在可选的系统局部性信息表中,并通过对 _SLI 对象的求值返回。

SLIT 是一个矩阵,用于描述所有系统局部性之间的相对距离。为了包括那些不在系统资源亲和性表(SRAT)中的设备,需要支持 _PXM 对象。来自 SRAT 的接近域值或 _PXM 对象返回的值被用作该矩阵的行索引和列索引。

实现说明:SLIT 的大小由系统中使用的最大接近域值决定。因此,为了最小化 SLIT 的大小,系统固件分配的接近域值应位于范围 0, …, N-1 内,其中 N 是系统局部性的数量。如果接近域值未压缩到该范围内,SLIT 仍然可以工作,但将必须分配更多内存来存储矩阵的 SLIT“条目”部分。

静态 SLIT 表提供了所有系统局部性之间相对距离的启动时描述。对于热添加设备和系统局部性的动态重配置,必须使用 _SLI 对象进行运行时更新。

_SLI 方法是一个可选对象,它提供系统局部性 i 到系统中所有其他系统局部性的相对距离的运行时更新。由于 _SLI 方法提供的是系统局部性之间附加的相对距离信息,因此如果实现了它,则会与 _PXM 方法一同提供。

17.3.1. 在线热插拔

对于在线设备添加的情况,会在某个设备对象上执行总线检查通知(0x0),以指示 OSPM 需要从收到通知的位置开始,在设备树上执行即插即用重新枚举操作。OSPM 需要对与所添加设备关联的所有 _PXM 对象进行求值,如果存在 SLIT,还需要对 _SLI 对象进行求值。

对于在线设备移除的情况,当 OSPM 收到弹出请求通知(0x03)时,需要执行即插即用弹出操作。OSPM 需要从其内部数据结构中移除被删除设备的相对距离信息。

17.3.2. 对现有局部性的影响

系统的动态重配置可能导致相对距离信息(如果存在可选的 SLIT)过时。如果发生这种情况,平台可以向设备树中表示某个系统局部性的某一点上的设备生成“系统局部性信息更新”通知(类型为 0xB 的 Notify 事件)。这表示 OSPM 需要从收到通知的位置开始,调用设备树上与系统局部性关联的 _SLI 对象。

Prev
17.2. 系统局部性
Next
17.4. 异构内存属性信息