12.01.2015 Views

Intel 64 and IA-32 Architectures Software Developer's Manual

Intel 64 and IA-32 Architectures Software Developer's Manual

Intel 64 and IA-32 Architectures Software Developer's Manual

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Documentation Changes<br />

Virtual-8086 Mode Exceptions<br />

#GP(0)<br />

If a memory oper<strong>and</strong> effective address is outside the CS, DS, ES,<br />

FS, or GS segment limit.<br />

#SS(0)<br />

If a memory oper<strong>and</strong> effective address is outside the SS segment<br />

limit.<br />

#NM CR0.EM[bit 2] or CR0.TS[bit 3] = 1.<br />

#PF(fault-code) If a page fault occurs.<br />

#AC(0)<br />

If alignment checking is enabled <strong>and</strong> an unaligned memory reference<br />

is made.<br />

Compatibility Mode Exceptions<br />

Same exceptions as in Protected Mode.<br />

<strong>64</strong>-Bit Mode Exceptions<br />

#SS(0)<br />

If a memory address referencing the SS segment is in a non-canonical<br />

form.<br />

#GP(0)<br />

If the memory address is in a non-canonical form.<br />

#NM CR0.EM[bit 2] or CR0.TS[bit 3] = 1.<br />

#MF<br />

If there is a pending x87 FPU exception.<br />

#PF(fault-code) If a page fault occurs.<br />

#AC(0)<br />

If alignment checking is enabled <strong>and</strong> an unaligned memory reference<br />

is made while the current privilege level is 3.<br />

22. CPUID register reference corrected<br />

In Section 7.5.5 of the <strong>Intel</strong> ® <strong>64</strong> <strong>and</strong> <strong>IA</strong>-<strong>32</strong> <strong>Architectures</strong> <strong>Software</strong> Developer’s <strong>Manual</strong>,<br />

Volume 3A, the name of a register (EBX) has been corrected. Part of the section has<br />

been reprinted below. See the change bar.<br />

-------------------------------------------------------------------<br />

7.5.5 Identifying Logical Processors in an MP System<br />

After the BIOS has completed the MP initialization protocol, each logical processor can be<br />

uniquely identified by its local APIC ID. <strong>Software</strong> can access these APIC IDs in either of<br />

the following ways:<br />

• Read APIC ID for a local APIC — Code running on a logical processor can execute<br />

a MOV instruction to read the processor’s local APIC ID register (see Section 8.4.6,<br />

“Local APIC ID”). This is the ID to use for directing physical destination mode<br />

interrupts to the processor.<br />

• Read ACPI or MP table — As part of the MP initialization protocol, the BIOS creates<br />

an ACPI table <strong>and</strong> an MP table. These tables are defined in the Multiprocessor Specification<br />

Version 1.4 <strong>and</strong> provide software with a list of the processors in the system<br />

<strong>and</strong> their local APIC IDs. The format of the ACPI table is derived from the ACPI specification,<br />

which is an industry st<strong>and</strong>ard power management <strong>and</strong> platform configuration<br />

specification for MP systems.<br />

• Read Initial APIC ID — An APIC ID is assigned to a logical processor during power<br />

up <strong>and</strong> is called the initial APIC ID. This is the APIC ID reported by<br />

CPUID.1:EBX[31:24] <strong>and</strong> may be different from the current value read from the<br />

local APIC. Use the initial APIC ID to determine the topological relationship between<br />

logical processors.<br />

34 <strong>Intel</strong> ® <strong>64</strong> <strong>and</strong> <strong>IA</strong>-<strong>32</strong> <strong>Architectures</strong> <strong>Software</strong> Developer’s <strong>Manual</strong> Documentation Changes

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!