2009-10-04 21 views
9

Quali istruzioni x86-64 vengono utilizzate per abilitare/disabilitare altri core/processori e come si avvia l'esecuzione di codice su di essi?CPU di assemblaggio e multicore

C'è qualche documentazione su come questo viene fatto dal sistema operativo?

+1

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

+2

Si consiglia di guardare a come Linux porta in primo piano più core. http://lxr.linux.no/#linux+v2.6.31/arch/x86/kernel/smpboot.c –

+1

@Rom - Non un dupe. Questa domanda riguarda le istruzioni atomiche. Questo sembra riguardare l'interfaccia hardware coinvolta con i core bootstrapping, ad esempio un kernel. – asveikau

risposta

0

Piuttosto doloroso per ottenere una x86 in corso ... non è tanto nei core come nel sistema APIC. Hai bisogno di esaminare i documenti per il tuo chipset, tende ad essere praticamente nascosto, purtroppo.

Dovrai essere al livello del kernel, sicuramente. Guardare Linux sembra una buona idea.

-1

Probabilmente ci sono documentazione da Intel/AMD su registri specifici modello che è possibile impostare per fare cose specifiche come quella. Non sono sicuro che tu possa accedervi a meno che tu non stia scrivendo qualcosa che si trova a livello del kernel ...

2

Supponendo che si sta parlando di attuazione di un kernel ....

La mia comprensione è che è in gran parte basato su questo documento:

Se la memoria non m'inganna (no pun intended), per rilevare il supporto multiprocessore si esegue la scansione di determinati intervalli di memoria per un set magico di byte che il firmware ha impostato per voi. Da lì puoi camminare sulle strutture che descrivono le CPU, e puoi parlare con il controller APIC sulla configurazione degli interrupt su varie CPU, ecc.