Intel APIC Architecture

Intel APIC Architecture

The Intel APIC Architecture is a system of Advanced Programmable Interrupt Controllers (APICs) designed by Intel for use in Symmetric Multi-Processor (SMP) computer systems. It was originally implemented by the Intel 82093AA and 82489DX, and is found in most x86 SMP motherboards. It is one of several attempts to solve interrupt routing efficiency issues in multiprocessor computer systems.

Overview

There are two components in the Intel APIC system, the "Local APIC" (LAPIC) and the "I/O APIC". The LAPIC is integrated into each CPU in the system, and the I/O APIC is used throughout the system's peripheral buses. There is typically one I/O APIC for each peripheral bus in the system. In original system designs, LAPICs and I/O APICs were connected by a dedicated APIC bus. Newer systems use the system bus for communication between all APIC components.

In systems containing an 8259 PIC, the 8259 may physically be connected to the LAPIC in the system's bootstrap processor (BSP), or to one of the system's I/O APICs, or both. Logically, however, the 8259 is only connected once at any given time.

Local APICs

LAPICs manage all external interrupts for the processor that it is part of. In addition, it is able to accept and generate inter-processor interrupts (IPIs) between LAPICs. LAPICs may support up to 224 usable IRQ vectors from an I/O APIC. Vectors numbers 0 to 31, out of 0 to 255, are reserved for exception handling by x86 processors.

I/O APICs

I/O APICs contain a redirection table, which is used to route the interrupts it receives from peripheral buses to one or more Local APICs.

Considerations

Hardware Bugs

There are a number of known bugs in implementations of APIC systems, especially with concern to how the 8259 is connected.

There are defective BIOSes which do not set up interrupt routing properly. This includes the errors in the implementation of ACPI tables and Intel Multiprocessor Specification tables.

Operating System Issues

It can be a cause of system failure, as some versions of some operating systems do not support it properly. If this is the case, disabling I/O APIC may cure the problem. For Linux, try the 'noapic nolapic' kernel parameters; for FreeBSD, the 'hint.apic.0.disabled' kernel environment variable; In NetBSD with nforce chipsets from Nvidia, having IOAPIC support enabled in the kernel can cause "nfe0: watchdog timeout" errors. [ [http://www.nabble.com/Problems-booting-NetBSD-4.0-or--current-on-a-machine-t3570732.html Problems booting NetBSD-4.0 ...] ]

In Linux, problems with I/O APIC are one of several causes of error messages concerning "spurious 8259A interrupt: IRQ7.". It is also possible that I/O APIC causes problems with network interfaces based on via-rhine driver, causing a transmission time out. Uniprocessor kernels with APIC enabled can cause spurious interrupts to be generated.

More Information

More information on the Intel APIC Architecture can be found in the "IA-32 [http://www.intel.com/products/processor/manuals/index.htm Intel Architecture Software Developer’s Manual] , Volume 3A: System Programming Guide, Part 1", freely available on the Intel website.

See also

* Intel 8259
* Advanced Programmable Interrupt Controller
* Programmable Interrupt Controller
* Inter-Processor Interrupt
* Interrupt
* Interrupt Handler
* Message Signaled Interrupts
* Non-Maskable Interrupt

References

External links

* [http://developer.intel.com/design/pentium/datashts/24201606.pdf Intel MultiProcessor Specification Version 1.4 May 1997] (PDF)
* [http://www.intel.com/design/chipsets/datashts/290566.htm Intel 82093AA I/O Advanced Programmable Interrupt Controller (I/O APIC) Datasheet]
* [http://www.microsoft.com/whdc/system/sysperf/IO-APIC.mspx Key Benefits of the I/O APIC] Microsoft's explanation of I/O APIC
* [http://www.microsoft.com/whdc/system/sysperf/apic.mspx Importance of Implementing APIC-Based Interrupt Subsystems on Uniprocessor PCs]
* [http://osdev.berlios.de/pic.html Advanced Programmable Interrupt Controller] A short introduction of what APIC is and its benefits


Wikimedia Foundation. 2010.

Игры ⚽ Поможем сделать НИР

Look at other dictionaries:

  • APIC — may refer to:*Advanced Programmable Interrupt Controller, a type of Programmable Interrupt Controller. **Intel APIC Architecture, a series of Intel APIC products *APIC Moving Map Software, an aviation software program. *Africa Policy Information… …   Wikipedia

  • Intel 8259 — The Intel 8259 is a family of Programmable Interrupt Controllers (PICs) designed and developed for use with the Intel 8085 and Intel 8086 8 bit and 16 bit microprocessors. The family originally consisted of the 8259, 8259A, and 8259B PICs, though …   Wikipedia

  • Intel — For other uses, see Intel (disambiguation). Coordinates: 37°23′16.54″N 121°57′48.74″W / 37.3879278°N 121.9635389°W / 37.3879278; 121.9 …   Wikipedia

  • APIC — Der Advanced Programmable Interrupt Controller (APIC, nicht zu verwechseln mit ACPI) sorgt für die Verteilung von Interrupts in x86 und Itanium basierenden Computersystemen. Der APIC besteht im Gegensatz zum PIC aus zwei Komponenten, dem Local… …   Deutsch Wikipedia

  • Apic — Der Advanced Programmable Interrupt Controller (APIC, nicht zu verwechseln mit ACPI) sorgt für die Verteilung von Interrupts in x86 und Itanium basierenden Computersystemen. Der APIC besteht im Gegensatz zum PIC aus zwei Komponenten, dem Local… …   Deutsch Wikipedia

  • Intel ICH — I/O Controller Hub (ICH) ist die Bezeichnung für den Mikrochip Intel 82801 und wird von Intel als Synonym für Southbridge benutzt. Intel 82801 (ICH2) Inhaltsverzeichnis 1 Hintergründe …   Deutsch Wikipedia

  • Apic — Cette page d’homonymie répertorie les différents sujets et articles partageant un même nom. IO APIC une architecture logicielle Intel pour le contrôle des interruptions. APIC anglais Active Pharmaceutical Ingredients Committee APIC (Atlas… …   Wikipédia en Français

  • Industry Standard Architecture — For other uses of ISA , see Isa (disambiguation). ISA Industry Standard Architecture Five 16 bit and one 8 bit ISA slots on a motherboard Year created 1981 Created by …   Wikipedia

  • IO-APIC — est l acronyme de I/O Advanced Programmable Interrupt Controller, qui est un contrôleur programmable d interruptions. C est une architecture Intel pour gérer les interruptions dans les ordinateurs multiprocesseurs. Elle est mise en œuvre par la… …   Wikipédia en Français

  • Io-apic — est l acronyme de I/O Advanced Programmable Interrupt Controller, qui est un contrôleur programmable d interruptions. C est une architecture Intel pour gérer les interruptions dans les ordinateurs multiprocesseurs. Elle est mise en œuvre par la… …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”