Gran pregunta!
Una región de memoria tiene contenido bien definido en el arranque. Ese contenido es un programa que gestiona el inicio. Puede ser un chip ROM conmutado frente a la RAM, o algún otro almacenamiento persistente.
Sus núcleos ahora se inicializan para comenzar a ejecutar ese programa. Normalmente, todos los procesadores comenzarán a ejecutar el mismo código (imagine que todos ejecutan la función principal en paralelo).
- Cómo asignar una unidad de almacenamiento de mi casa a una unidad virtual en una computadora remota de forma segura
- ¿Cuál es la mejor configuración de PC para juegos en 2016 India?
- ¿Por qué su computadora se ralentiza con el tiempo?
- ¿Es un procesador Intel i3 capaz de diseñar software con una tarjeta gráfica dedicada de 2 GB?
- ¿Cómo recuperar archivos de una memoria USB potencialmente rota?
Múltiples opciones son posibles:
- Hay un procesador de arranque cableado que comienza en modo de ejecución; otras CPU están apagadas al principio.
- Cada CPU se inicia con un identificador único, y todas, excepto las que tienen una ID específica, se desactivan mediante software mediante interrupciones entre procesadores.
- Varias CPU compiten por convertirse en el procesador de arranque apagándose entre sí con interrupciones entre procesadores (funciona si solo los núcleos en ejecución pueden enviar interrupciones, y las interrupciones pendientes se borran cuando el núcleo se enciende o apaga).
- Los procesadores compiten por una cerradura. Debido al cableado y al sistema de caché, se sabe qué procesador ganará; el programa está escrito de tal manera que funciona con ese procesador (una vez construimos un chip como este, antes de que tuviéramos interrupciones entre procesadores)
Si ahora se encuentra en una situación en la que todos los procesadores, excepto uno, están apagados, puede cargar cualquier código y estructura de datos que necesite y luego reactivar los otros núcleos con más interrupciones entre procesadores. Análogamente para la cerradura.
Si tiene un diseño más avanzado, cada núcleo puede tener su propio programa. Luego, por ejemplo, puede cargar un sistema operativo desde varios discos en paralelo o cargar múltiples sistemas operativos, sin perder tiempo en la inicialización de los núcleos.