Сборочные и многоядерные процессоры - PullRequest
9 голосов
/ 04 октября 2009

Какие инструкции x86-64 используются для включения / выключения других ядер / процессоров и как начать выполнять на них код?

Есть ли где-нибудь документация о том, как это делается операционной системой?

Ответы [ 4 ]

2 голосов
/ 25 ноября 2011

Я знаю, что это старый вопрос, но вот более свежая ссылка на многоядерные чипы Intel.

http://www.intel.com/content/www/us/en/architecture-and-technology/64-ia-32-architectures-software-developer-vol-3a-part-1-manual.html

Ссылка найдена на: http://www.intel.com/content/www/us/en/processors/architectures-software-developer-manuals.html

2 голосов
/ 27 октября 2009

Предположим, вы говорите о реализации ядра ....

Насколько я понимаю, это в значительной степени основано на этом документе:

Если память мне подходит (без каламбура), для обнаружения поддержки многопроцессорности вы сканируете определенные диапазоны памяти на наличие магического набора байтов, который прошивка для вас настроила. Оттуда вы можете пройтись по структурам, описывающим процессоры, и поговорить с контроллером APIC о настройке прерываний на различных процессорах и т. Д.

0 голосов
/ 24 октября 2009

Довольно больно заводить и запускать x86 ... не столько в ядрах, сколько в системе APIC. Вам нужно изучить документы для вашего чипсета, который, к сожалению, в значительной степени скрыт.

Вы должны быть на уровне ядра, определенно. Смотреть на Linux звучит как хорошая идея.

0 голосов
/ 08 октября 2009

Вероятно, есть документация от Intel / AMD по регистрам, зависящим от модели, которые вы можете настроить для выполнения определенных действий. Я не уверен, есть ли у вас доступ к нему, если вы не пишете что-то, что находится на уровне ядра ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...