Zum Inhalt springen

Advanced Programmable Interrupt Controller

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 6. Januar 2006 um 19:00 Uhr durch 83.221.65.219 (Diskussion). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Die Bezeichnung APIC ist die Abkürzung für die englische Bezeichnung Advanced Programmable Interrupt Controller (und sollte nicht mit ACPI verwechselt werden). Es besteht aus zwei Komponenten, dem

  • Local APIC, normalerweise Teil der CPU, und dem
  • I/O-APIC im Chipsatz.

Vereinfacht funktioniert das System so, dass der I/O-APIC die Interrupt Requests von den Geräten im System entgegennimmt, und sie als Interrupt Messages auf die Local APICs in den Prozessoren des Systems verteilt. Diese leiten den jeweils höchstpriorisierten Interrupt den CPU Kern weiter. Ist dieser abgearbeitet, leitet der Local APIC den nächsten Interrupt weiter.

Das APIC System wurde ursprünglich entwickelt um die Interruptverteilung in Multiprozessorsystemen zu ermöglichen, was mit dem vorhandenen XT-PIC nicht realisierbar war. Mittlerweile verwenden auch immer mehr Einzelprozessorsysteme das APIC System, da es noch weitere Probleme des XT-PIC beseitigt:

  • mehr Eingänge für Interruptleitungen verringern die Wahrscheinlichkeit, dass sich mehrere Geräte einen Interrupt teilen müssen
  • mehr Flexibilität, jeder Interrupt kann seperat konfiguriert werden
  • Prioritäten der Interrupts können nahezu beliebig festgelegt werden
  • Message-Signaled Interrupts werden unterstützt
  • Prozessoren können sich gegenseitig Interrupts schicken ("Interprocessor Interrupts")
  • schnellere Programmierung

APIC wird heutzutage von allen aktuellen Betriebssystemen unterstützt, ist aber auch für eine Reihe von Fehlern verantwortlich, da die Implementierungen teilweise fehlerhaft sind.