2010-10-30 16 views
7

parlando a livello molto basso, come vengono inizializzati i core?come avviare i processori multicore?

+0

sarei interessati di sapere anche come il sistema operativo inizialmente (a livello hardware) determina quanti core/pacchetti/processori logici ci sono – PhiS

+0

@PhiS: chiede solo. cercare cpuid ... – Bahbar

+0

@Bahbar CPUID non fornisce tutte le informazioni necessarie se nel sistema è presente più di un pacchetto fisico, poiché si ricevono solo informazioni a livello di pacchetto (quanti core/processori di log all'interno di un pacchetto). – PhiS

risposta

6

è possibile controllare tutti i dettagli sanguinosi nello Intel specification. I dettagli cruenti sono nel capitolo 8.1.

Ecco un estratto:

seguito all'accensione o un'affermazione di RESET # perno, ogni processore sul bus di sistema esegui una hardware inizializzazione del processore (nota come hardware reset) e un autotest integrato (BIST) opzionale. [Snip] A questo punto, l'azione intrapresa dipende sulla famiglia di processori:

• famiglia P6 processori Tutti i processori sul bus sistema (compreso un singolo processore in un sistema monoprocessore) eseguire il multiplo processore (MP) protocollo di inizializzazione attraverso il bus APIC . Il processore che è selezionata attraverso questo protocollo come il processore bootstrap (BSP) allora inizia immediatamente esecuzione codice software di inizializzazione nel segmento di codice corrente partire dalla di offset nel registro PEI.

2

Ci sono diversi modi di avvio multicore soc seconda dell'architettura del sistema - AMP o SMP ecc Uno dei modo semplice per il doppio sistema centrale SMP è che CPU0 inizia a vettore di reset (es 0x00000000 che punta nella memoria flash dove è memorizzato il programma di avvio del monitor). Durante questo tempo altri core sono in WFI (attendere l'interruzione) o lo stato di attesa del boot. CPU0 avvia e imposta la messa a terra per l'avvio della CPU1.

per ulteriori dettagli http://www.linux-arm.org/LinuxBootLoader/SMPBoot

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