Как загружаются многоядерные процессоры?

Говорить на очень низком уровне, как инициализируются ядра?

2 ответа

Решение

Вы можете проверить все кровавые подробности в спецификации Intel. Кровавые подробности в главе 8.1.

Вот выдержка:

После включения питания или подтверждения контакта RESET# каждый процессор на системной шине выполняет аппаратную инициализацию процессора (известную как аппаратный сброс) и дополнительную встроенную самопроверку (BIST). [snip] На этом этапе предпринимаемые действия зависят от семейства процессоров:

• Процессоры семейства P6 - все процессоры на системной шине (включая один процессор в однопроцессорной системе) выполняют протокол инициализации многопроцессорной системы (MP) по шине APIC. Процессор, выбранный с помощью этого протокола в качестве процессора начальной загрузки (BSP), затем немедленно начинает выполнение кода инициализации программного обеспечения в текущем сегменте кода, начиная со смещения в регистре EIP.

Существует несколько способов загрузки многоядерного сока в зависимости от архитектуры, системы - AMP или SMP и т. Д. Одним из простых способов для двухъядерной системы SMP является то, что CPU0 запускается с вектора сброса (например, 0x00000000, который указывает на флэш-память, где хранится программа монитора загрузки), В течение этого времени другие ядра находятся в состоянии WFI (ожидание прерывания) или в состоянии удержания загрузки. CPU0 загружается и устанавливает почву для загрузки CPU1.

для получения дополнительной информации http://www.linux-arm.org/LinuxBootLoader/SMPBoot

freescale.com/files/32bit/doc/app_note/AN3542.pdf

Другие вопросы по тегам