Programmable Interrupt Controller

Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 8. Februar 2006 um 03:53 Uhr durch 83.221.76.152 (Diskussion) (aus Interrupt_Request). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Ein Programmable Interrupt Controller (PIC) ist ein integrierter Schaltkreis zur Verwaltung mehrerer Hardware-Interrupts und zu deren geordneter Weiterleitung an eine CPU. Prozessoren weisen oft nur einen Eingang für solche Interrupt-Anforderungen auf, ein PIC arbeitet also als Multiplexer für die Hardware-Interrupts. Für x86 Hardware existieren zwei verschiedene PICs:

  • den Intel 8259A (auch XT-PIC oder einfach "PIC" genannt)
  • der Advanced Programmable Interrupt Controller, APIC.


Der 8259A oder PIC

Der PIC, oder 8559A, (Programmable Interrupt Controller) mit 8 Interrupt-Eingängen und einem Interrupt-Ausgang wird seit den ersten PCs (IBM PC XT) eingesetzt. Allerdings reichten diese 8 Eingänge sehr bald schon nicht mehr aus, und es wurden zwei PIC verwendet. Dabei wird der Ausgang des einen PIC (Slave) mit einem Eingang des anderen PIC (Master) verbunden (normalerweise am Eingang #2).

PIC 1 (Master)
+--------------+         PIC 2 (Slave)
| IRQ  0       +-       +-------------+
| IRQ  1       +-       | IRQ  8      +-
| IRQ  2       +---+    | IRQ  9      +-
| IRQ  3       +-  |    | IRQ 10      +-
| IRQ  4       +-  |    | IRQ 11      +-
| IRQ  5       +-  |    | IRQ 12      +-
| IRQ  6       +-  |    | IRQ 13      +-
| IRQ  7       +-  |    | IRQ 14      +-
+------+-------+   |    | IRQ 15      +-
       |           |    +-----+-------+
       |           |          | 
       |           +----------+
       |
       +--->>> Zur CPU

Die Interrupts werden in einer bestimmten Reihenfolge abgearbeitet, die beim PIC durch den Eingang festgelegt ist. Im Normalfall hat der Eingang 0 die höchste, der Eingang 7 die niedrigste Priorität. Damit ergibt sich folgende Reihenfolge: 0, 1, (2), 8, 9, 10, 11, 12, 13, 14, 15, 3, 4, 5, 6, 7.

Der IRQ 2 wird selbst nicht belegt, er ist die "Durchreiche" für die IRQs des zweiten PIC (Fachsprache: Kaskade, man spricht bei dieser Funktionsweise von Kaskadierung des PIC).

Die begrenzte Anzahl der Eingänge, die unflexible und langsame Programmierung und vor allem die fehlende Mehrprozessorsystemunterstützung lassen den PIC langsam aber sicher aus neuen Systemen verschwinden. Stattdessen wird hier das APIC verwendet.