2010-10-30 9 views
7

hablando en un nivel muy bajo, ¿cómo se inicializan los núcleos?cómo arrancan los procesadores multinúcleo?

+0

estaría Intersted saber también cómo el sistema operativo inicialmente (a nivel de hardware) determina cuántos núcleos/paquetes/procesadores lógicos hay – PhiS

+0

@PhiS: simplemente pregunta. buscar cpuid ... – Bahbar

+0

@Bahbar CPUID no proporciona toda la información necesaria si hay más de un paquete físico presente en el sistema, porque solo recibe información en el nivel del paquete (cuántos núcleos/procesadores de registro dentro de un paquete). – PhiS

Respuesta

6

puede ver todos los detalles sangrientos en el Intel specification. Los detalles sangrientos están en el capítulo 8.1.

Aquí es un extracto:

Tras el encendido o una afirmación de RESET # pin, cada procesador en el bus del sistema realiza una hardware Inicialización del procesador (conocido como un hardware reinicio) y una autoprueba incorporada opcional (BIST). [Snip] En este punto, la acción tomada depende en la familia de procesadores:

• familia P6 procesadores de todos los procesadores en el bus sistema (que incluye un solo procesador en un sistema monoprocesador) ejecutan el múltiple procesador (MP) protocolo de inicialización en el bus APIC . El procesador que es seleccionado a través de este protocolo como el procesador bootstrap (BSP), entonces comienza inmediatamente la ejecución de código de software -inicialización en el segmento de código actual comenzando en el desplazamiento en el registro EIP.

2

Existen múltiples maneras de arrancar soc multinúcleo dependiendo de la arquitectura, el sistema - AMP o SMP etc. Una de manera sencilla para el sistema de doble núcleo SMP es que comienza a CPU0 vector de reset (por ejemplo 0x00000000 que apunta a la memoria flash donde se almacena el programa de monitoreo de arranque). Durante este tiempo, otros núcleos están en WFI (espera de interrupción) o en estado de suspensión de arranque. CPU0 inicia y configura el terreno para el arranque de la CPU1.

para más detalles http://www.linux-arm.org/LinuxBootLoader/SMPBoot

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

Cuestiones relacionadas