how multicore processors boot?
talking in very low level, how the cores are initiali开发者_开发技巧zed ?
you can check out all the gory details in the Intel specification. The gory details are in chapter 8.1.
Here is an excerpt:
Following power-up or an assertion of the RESET# pin, each processor on the system bus performs a hardware initialization of the processor (known as a hardware reset) and an optional built-in self-test (BIST). [snip] At this point, the action taken depends on the processor family:
• P6 family processors—All the processors on the system bus (including a single processor in a uniprocessor system) execute the multiple processor (MP) initialization protocol across the APIC bus. The processor that is selected through this protocol as the bootstrap processor (BSP) then immediately starts executing software-initialization code in the current code segment beginning at the offset in the EIP register.
There are multiple ways of booting multicore soc depending on architecture, system - AMP or SMP etc. One of simple way for dual core SMP system is that CPU0 starts at reset vector (e.g. 0x00000000 which points to flash memory where boot monitor program is stored). During this time other cores are in WFI (wait for interrupt) or boot hold-off state. CPU0 boots and sets up ground for booting of CPU1.
for further details http://www.linux-arm.org/LinuxBootLoader/SMPBoot
freescale.com/files/32bit/doc/app_note/AN3542.pdf
精彩评论