Это походит на преждевременную оптимизацию мне. Сколько работы делается в обработке. При принятии modernish рабочего стола/сервера, и не встроенной системы, копировании некоторых МБ данных во время инициализации является довольно дешевым, особенно по сравнению с прочитыванием файла диска во-первых. Я придерживался бы с тем, что Вы имеете, измеряете систему, когда это завершено, и решение, если потенциальное увеличение производительности стоило бы того. Конечно, если память трудна, это находится во внутреннем цикле или программе, которую часто называют (как однажды секунда), который изменяет баланс.
Довольно болезненно запускать x86 ... это не столько в ядрах, сколько в системе APIC. Вам нужно заглянуть в документацию для вашего чипсета, к сожалению, она в значительной степени скрыта.
Вы определенно должны быть на уровне ядра. Взгляд на Linux - хорошая идея.
Вероятно, есть документация Intel / AMD по регистрам для конкретных моделей, которые вы можете настроить для таких конкретных действий. Я не уверен, есть ли у вас к нему доступ, если только вы не пишете что-то на уровне ядра ...
Предполагая, что вы говорите о реализации ядра ....
Насколько я понимаю, это в значительной степени основано на этом документе:
Если мне не изменяет память (каламбур не предназначен), чтобы обнаружить поддержку мультипроцессора, вы сканируете определенные диапазоны памяти в поисках волшебного набора байтов, который прошивка установила для вас. Оттуда вы можете пройти по структурам, описывающим процессоры, и вы можете поговорить с контроллером APIC о настройке прерываний на различных процессорах и т. Д.