para que tenga una programa independiente (dijiste "pre-boot"), como un gestor de arranque, ¿ejecutando en modo real? Y esto es en un PeeCee con el BIOS habitual?
En ese caso, solo tiene una CPU en ejecución. Con el fin de volver a acelerarse las otras unidades de CPU de un sistema operativo normalmente ejecutará lo que se llama el algoritmo de arranque universales que dice así:
BSP sends AP an INIT IPI
BSP DELAYs (10mSec)
If (APIC_VERSION is not an 82489DX) {
BSP sends AP a STARTUP IPI
BSP DELAYs (200μSEC)
BSP sends AP a STARTUP IPI
BSP DELAYs (200μSEC)
}
BSP verifies synchronization with executing AP
El BSP es el procesador de arranque. Un AP es un procesador de aplicaciones. Un IPI es una interrupción entre procesadores. Para hacer un IPI, necesita activar el APIC, una extensión de controlador de interrupción para la arquitectura de PC que no está habilitada en el arranque. Es por eso que el código está preocupado sobre qué tipo de versión de ICU se está ejecutando. Todo esto es bastante profundo en la magia del kernel. Puede probar Linux, NetBSD u otro código fuente * BSD para ver un ejemplo, pero no será fácil de leer. Si realmente ganas, es posible que encuentres un kernel pequeño o un programa de prueba de SMP independiente en alguna parte.
Para obtener más información, consulte el Intel Multiprocessor Specification.
¿Se puede hacer MP en modo real? – Draemon
no hay razón para no hacerlo. No hay nada específico de modo sobre MP. –
Parece una estafa de http://stackoverflow.com/questions/980999/what-does-multicore-assembly-language-look-like –