smp.md 3.2 KB

SMP

Symmetric multiprocessing

At fist, a single processor starts.

To start the others, the first processor must tell the APIC to send a few special interrupts to the other processors.

One of those interrupts says where the there processors start running their first instruction from.

Nice quotes from Intel:

The MP initialization protocol defines two classes of processors: the bootstrap processor (BSP) and the application processors (APs). Following a power-up or RESET of an MP system, system hardware dynamically selects one of the processors on the system bus as the BSP. The remaining processors are designated as APs.

Following a power-up or reset, the APs complete a minimal self-configuration, then wait for a startup signal (a SIPI message) from the BSP processor. Upon receiving a SIPI message, an AP executes the BIOS AP configuration code, which ends with the AP being placed in halt state.

AP

Application processor: all processors except the boot one.

ICR

Interrupt command register

When we write to it, interrupts are sent.

It is memory mapped to 0xFEE0 0300.

Intel Manual Volume 3 System Programming Guide - 325384-056US September 2015

  • 10.6 "ISSUING INTERPROCESSOR INTERRUPTS" documents its format
  • Table 10-1 Local APIC Register Address Map documents where it is mapped to in memory