background image

Vol. 3A 10-9

ADVANCED PROGRAMMABLE INTERRUPT CONTROLLER (APIC)

10.4.5 

Relocating the Local APIC Registers

The Pentium 4, Intel Xeon, and P6 family processors permit the starting address of the APIC registers to be relo-
cated from FEE00000H to another physical address by modifying the value in the 24-bit base address field of the 
IA32_APIC_BASE MSR. This extension of the APIC architecture is provided to help resolve conflicts with memory 
maps of existing systems and to allow individual processors in an MP system to map their APIC registers to 
different locations in physical memory.

10.4.6 

Local APIC ID

At power up, system hardware assigns a unique APIC ID to each local APIC on the system bus (for Pentium 4 and 
Intel Xeon processors) or on the APIC bus (for P6 family and Pentium processors). The hardware assigned APIC ID 
is based on system topology and includes encoding for socket position and cluster information (see Figure 8-2).
In MP systems, the local APIC ID is also used as a processor ID by the BIOS and the operating system. Some 
processors permit software to modify the APIC ID. However, the ability of software to modify the APIC ID is 
processor model specific. Because of this, operating system software should avoid writing to the local APIC ID 
register. The value returned by bits 31-24 of the EBX register (when the CPUID instruction is executed with a 
source operand value of 1 in the EAX register) is always the Initial APIC ID (determined by the platform initializa-
tion). This is true even if software has changed the value in the Local APIC ID register.
The processor receives the hardware assigned APIC ID (or Initial APIC ID) by sampling pins A11# and A12# and 
pins BR0# through BR3# (for the Pentium 4, Intel Xeon, and P6 family processors) and pins BE0# through BE3# 
(for the Pentium processor). The APIC ID latched from these pins is stored in the APIC ID field of the local APIC ID 
register (see Figure 10-6), and is used as the Initial APIC ID for the processor. 

Figure 10-5.  IA32_APIC_BASE MSR (APIC_BASE_MSR in P6 Family)

Figure 10-6.  Local APIC ID Register

BSP—Processor is BSP

APIC global enable/disable

APIC Base—Base physical address

63

0

7

10

11

8

9

12

Reserved

MAXPHYADDR

APIC Base

Reserved

31

27

24

0

Reserved

APIC ID

Address: 0FEE0 0020H
Value after reset: 0000 0000H

P6 family and Pentium processors 

Pentium 4 processors, Xeon processors, and later processors

31

24

0

Reserved

APIC ID

MSR Address: 802H

31

    

0

x2APIC ID

x2APIC Mode

xAPIC Mode