Я знаю, что если вам нужна топология системы, вы можете получить ее из ACPI SLIT (таблица информации о локальности системы) или SRAT (таблица соответствия статических ресурсов).Подробнее об этом можно прочитать в спецификации ACPI здесь (http://www.acpi.info/spec.htm),, в частности, разделы 5.2.16 и 5.2.17.
). В основном, вы используете SRAT, чтобы определить, какие диапазоны памяти связаны с какими ЦП, и выиспользуйте SLIT для определения относительной стоимости использования определенного диапазона ЦП / памяти. Обе эти таблицы являются необязательными, но по моему опыту большинство систем NUMA, по крайней мере, имеют полезный SRAT.
Что касается инициализацииЯ не думаю, что смогу сильно помочь. Возможно, вы захотите узнать, как процессоры запускаются в ядре Linux (или ядре BSD). Возможно, вам придется читать и локальные APIC, поскольку онииспользуется для инициации AP x86.