||It has been suggested that this article be merged into Advanced Programmable Interrupt Controller. (Discuss) Proposed since August 2013.|
x2APIC is the most recent generation of the Intel programmable interrupt controller, introduced with the Nehalem microarchitecture. The major improvements of the x2APIC address the number of supported CPUs and performance of the interface.
The x2APIC now uses 32 bits to address CPUs, allowing to address up to 232 − 1 CPUs using the physical destination mode. The logical destination mode now works differently and introduces clusters; using this mode, one can address up to 220 − 16 processors. The x2APIC architecture also provides backward compatibility modes to the original Intel APIC Architecture (introduced with the Pentium/P6) and with the xAPIC architecture (introduced with the Pentium 4).
The improved interface reduces the number of needed APIC register access for sending Inter-processor interrupts (IPIs). Because of this advantage, QEMU can and does emulate x2APIC for older processors that do not physically support it, going back to Conroe and even for AMD Opteron G-series processors (neither of which natively support x2APIC).
As of 2012[update] AMD does not yet support x2APIC, but was announcing the introduction of their own Advanced Virtual Interrupt Controller (AVIC) targeting interrupt overhead reduction in virtualization environments.
Intel has responded with the announcement of a similar technology, which didn't have a brand name at its announcement time in 2012, but which was later branded APICv and is commercially available in the Ivy Bridge EP series, which is sold as Xeon E5-26xx v2 (launched in late 2013) and as Xeon E5-46xx v2 (launched in early 2014).
- "Next Generation Interrupt Architecture"
- Wei Huang, Introduction of AMD Advanced Virtual Interrupt Controller, XenSummit 2012
- Intel 64 Architecture x2APIC Specification (PDF)
- More information on the Intel x2APIC Architecture can be found in the Intel 64 and IA-32 Architectures Software Developer's Manuals
|This computer hardware article is a stub. You can help Wikipedia by expanding it.|