x86-64处理器的NUMA文档?

3

我已经查找了X86-64处理器的NUMA文档,但不幸的是,我只找到了NUMA优化文档。

我想知道如何在系统中初始化NUMA(这将包括获取系统的内存拓扑和处理器拓扑)。有没有人知道关于X86-64 AMD和Intel处理器的好的NUMA文档?

1个回答

5
我知道如果你想获取系统拓扑结构,可以从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。

我仍然想知道bochs是否支持NUMA仿真(你有没有一些免费的仿真器,它带有支持NUMA和x2APIC的调试器?)...虽然我猜NUMA域总是可以通过修改ACPI表或在内核本身中硬编码来实现虚拟化,即使仿真器/真实机器没有NUMA支持(仅为了NUMA仿真,即使没有任何性能提升)。 - prinzrainer
我不知道有任何带有NUMA支持的免费模拟器。您可以尝试查看AMD SimNow!模拟器,但我认为它没有多CPU支持或x2APICs(尽管它确实模拟了相当多的现代化硬件)。否则,我会在SMP模式下使用Bochs或Qemu(可能甚至添加那些ACPI表)。我没有查看Qemu的源代码,但我知道Bochs编写得相当好,您可以考虑修改它以进行至少原始NUMA模拟。 - Rose Lynn Embry

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接