2009-10-04 25 views
9

¿Qué instrucciones x86-64 se usan para habilitar/deshabilitar otros núcleos/procesadores y cómo se comienza a ejecutar el código en ellos?CPU de ensamblaje y multinúcleo

¿Hay algún tipo de documentación acerca de cómo lo hace el sistema operativo?

+1

Dupe de http://stackoverflow.com/questions/980999 – Rom

+2

Es posible que desee ver cómo Linux trae múltiples núcleos. http://lxr.linux.no/#linux+v2.6.31/arch/x86/kernel/smpboot.c –

+1

@Rom - No es una tontería. Esa pregunta es acerca de las instrucciones atómicas. Este parece ser sobre la interfaz de hardware involucrada con los núcleos de arranque, es decir, sobre un kernel. – asveikau

Respuesta

0

Bastante doloroso para poner en marcha un x86 ... no está tanto en los núcleos como en el sistema APIC. Necesitas mirar en los documentos para tu chipset, desafortunadamente está bastante oculto.

Tendrás que estar en el nivel kernel, definitivamente. Ver Linux suena como una buena idea.

-1

Probablemente haya documentación de Intel/AMD en Registros específicos del modelo que puede configurar para hacer cosas específicas como esa. No estoy seguro de si tiene acceso a él a menos que esté escribiendo algo que se encuentre en el núcleo ...

2

Suponiendo que estamos hablando acerca de cómo implementar un núcleo ....

Mi entendimiento es que se basa en gran medida en este documento:

Si la memoria no me falla (sin juego de palabras), para detectar compatibilidad con varios procesadores, escanea ciertos rangos de memoria para un conjunto mágico de bytes que el firmware ha configurado para usted. Desde allí puede recorrer las estructuras que describen las CPU, y puede hablar con el controlador APIC sobre la configuración de interrupciones en varias CPU, etc.

Cuestiones relacionadas