我已经查找了X86-64处理器的NUMA文档,但不幸的是,我只找到了NUMA优化文档。 我想知道如何在系统中初始化NUMA(这将包括获取系统的内存拓扑和处理器拓扑)。有没有人知道关于X86-64 AMD和Intel处理器的好的NUMA文档?
我知道如果你想获取系统拓扑结构,可以从ACPI SLIT(系统本地性信息表)或SRAT(静态资源亲和力表)中获取。你可以在这里阅读更多关于ACPI规范的内容(http://www.acpi.info/spec.htm),具体来说是第5.2.16节和第5.2.17节。基本上,你使用SRAT确定哪些内存范围与哪些CPU相关联,使用SLIT确定使用特定CPU/内存范围的相对成本。这两个表都是可选的,但根据我的经验,大多数NUMA系统至少有一个有用的SRAT。就初始化而言,我认为我无法提供太多帮助。你可能需要研究一下Linux内核(或BSD内核)上的处理器启动方式。你还可能需要阅读本地APIC的相关资料,因为它们用于初始化x86 APs。