6.2.15. _SLI(系统局部性信息)
通用发起方亲和结构中定义的系统局部性信息表(SLIT)在操作系统初始化期间提供所有系统局部性之间的相对距离信息,以供使用。
SLIT 表中每个 Entry[i,j] 的值,其中 i 表示矩阵的一行,j 表示矩阵的一列,表示从系统局部性 / 邻近域 i 到系统中每个其他系统局部性 j(包括其自身)的相对距离。
i,j 的行值和列值与 ACPI 命名空间中 _PXM 对象返回的值相关。更多信息请参见 _PXM(邻近性)。
系统的动态运行时重配置可能导致系统局部性之间的距离发生变化。
_SLI 是一个可选对象,使平台能够在运行时向操作系统提供更新后的相对系统局部性距离信息。_SLI 向 OSPM 提供从系统局部性 i 到系统中所有其他系统局部性的相对距离更新。
参数:
无
返回值:
一个包含系统局部性信息表的 Buffer
如果系统局部性 i >= N,其中 N 是系统局部性的数量,则 _SLI 方法返回一个包含这些相对距离的缓冲区:
[(i, 0), (i, 1), ..., (i, i-1), (i, i), (0, i), (1, i), ...(i-1, i), (i, i)]
如果系统局部性 i < N,则 _SLI 方法返回一个缓冲区,其中包含这些相对距离:
[(i, 0), (i, 1), ..., (i, i), ...,(i, N-1), (0, i), (1, i),...(i, i), ..., (N-1, i)]
注
(i, i) 始终是值 10。

图 6.5 系统局部性信息表
系统局部性信息表图示了一个 4 节点系统,其中节点编号为 0 到 3(节点 n = 节点 3),并且 NUMA 距离信息的粒度处于节点级别。在此示例中,我们将系统局部性 / 接近域编号设置为等于节点编号(0-3)。本系统中实现的接近域之间的 NUMA 相对距离在“接近域之间的相对距离示例”所表示的矩阵中进行了描述。接近域由顶行和左列中的数字表示。距离由表中这些域之间内部单元格中的值表示。
表 6.17 接近域之间的相对距离示例
| 接近域 | 0 | 1 | 2 | 3 |
|---|---|---|---|---|
| 0 | 10 | 15 | 20 | 18 |
| 1 | 15 | 10 | 16 | 24 |
| 2 | 20 | 16 | 10 | 12 |
| 3 | 18 | 24 | 12 | 10 |
下面的表描述了这些接近域之间的距离如何被编码到系统局部性信息表中,以供 OSPM 在启动时使用。
表 6.18 系统局部性信息表示例
| 字段 | 字节长度 | 字节偏移 | 描述 |
|---|---|---|---|
| 表头 | |||
| - 签名 | 4 | 0 | ‘SLIT’. |
| - 长度 | 4 | 4 | 60 |
| - 修订版本 | 1 | 8 | 1 |
| - 校验和 | 1 | 9 | 整个表的总和必须为零。 |
| - OEMID | 6 | 10 | OEM ID。 |
| - OEM 表 ID | 8 | 16 | 对于系统局部性信息表,表 ID 是制造商型号 ID。 |
| - OEM 修订版本 | 4 | 24 | 对于所提供 OEM Table ID 的系统局部性信息表的 OEM 修订版本。 |
| - 创建者 ID | 4 | 28 | 创建该表的工具的供应商 ID。对于 DSDT、RSDT、SSDT 和 PSDT 表,这是 ASL Compiler 的 ID。 |
- 创建者修订版本
| 4 | 32 | 创建该表的工具的修订版本。对于 DSDT、RSDT、SSDT 和 PSDT 表,这是 ASL Compiler 的修订版本。 系统局部性数量 | 8 | 36 | 4 Entry[0][0] | 1 | 44 | 10 Entry[0][1] | 1 | 45 | 15 Entry[0][2] | 1 | 46 | 20 Entry[0][3] | 1 | 47 | 18 Entry[1][0] | 1 | 48 | 15 Entry[1][1] | 1 | 49 | 10 Entry[1][2] | 1 | 50 | 16 Entry[1][3] | 1 | 51 | 24 Entry[2][0] | 1 | 52 | 20 Entry[2][1] | 1 | 53 | 16 Entry[2][2] | 1 | 54 | 10 Entry[2][3] | 1 | 55 | 12 Entry[3][0] | 1 | 56 | 18 Entry[3][1] | 1 | 57 | 24 Entry[3][2] | 1 | 58 | 12 Entry[3][3] | 1 | 59 | 10
如果添加一个新的“节点 4”,则下表表示更新后的系统中接近域的 NUMA 相对距离。
表 6.19 接近域之间的相对距离示例 - 5 节点
| 接近域 | 0 | 1 | 2 | 3 | 4 |
|---|---|---|---|---|---|
| 0 | 10 | 15 | 20 | 18 | 17 |
| 1 | 15 | 10 | 16 | 24 | 21 |
| 2 | 20 | 16 | 10 | 12 | 14 |
| 3 | 18 | 24 | 12 | 10 | 23 |
| 4 | 17 | 21 | 14 | 23 | 10 |
新节点的 _SLI 对象将求值为一个包含 [17,21,14,23,10,17,21,14,23,10] 的缓冲区。
注
某些系统支持跨节点交错内存。这些系统的 SLIT 表示是实现特定的。