Unterbrechungsanforderung
IRQ ist eine Abkürzung aus dem Computerbereich und bedeutet Interrupt Request. Auf Deutsch kann man es als Unterbrechungsanforderung bezeichnen. Eine Variante des IRQs ist als NMI - Non Maskable Interrupt - bekannt.
Ein Interrupt ist ein Signal, meist von einem externen Gerät, mit dem der Prozessor zu einer Reaktion aufgefordert wird.
In normalen handelsüblichen PC's gibt es 16 IRQs. Diese 16 Adressen werden verschiedenen Peripheriegeräten und Steckkarten zugewiesen, um eine eindeutige Verwaltung derselben zu ermöglichen.
Über den IRQ-Kanal stehen Adapter, Karten und Teile der Peripherie eines PC mit der CPU in Verbindung.
Mit einem IRQ wird dem Prozessor mitgeteilt, dass ein externes Gerät eine bestimmte Aktion durchführen möchte. Dies geschieht über so genannte Interrupt-Leitungen, die in regelmäßigen Abständen von einem Controller auf eine Unterbrechungsanforderung abgefragt werden.
Ein solcher PIC (programmable interrupt controller) mit 8 Leitungen wurde in die ersten PCs eingebaut. Allerdings reichte der sehr bald schon nicht mehr aus, aber statt einen größeren zu bauen, verwendete man (und verwendet bis heute) einfach zwei davon, die auf besondere Art und Weise hintereinander geschaltet sind:
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 | | +-------------+ | +----- Steuerbus
Über den Steuerbus wird eine IRQ-Meldung an den Prozessor weitergeleitet.
Die Reihenfolge, wann ein IRQ und damit "sein" Gerät "dran" sind (ein Prozessor kann ja schließlich immer nur eins auf einmal machen), wird durch die Position des IRQ bestimmt. Durch die Art der Schaltung sieht die Reihenfolge so aus:
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).
Belegen zwei Geräte die selbe Leitung, kann es zu Fehlfunktionen kommen. Bei einigen Betriebssystemen, auf welchen man die IRQs frei wählen kann, gibt es jedoch auch das IRQ-Sharing (to share = teilen): Zwei Geräte teilen sich einen IRQ. Knackpunkt: Sie dürfen nicht zeitgleich betrieben werden, sonst gibt's Datensalat.
Bei neueren Peripheriegeräten kümmern sich der Computer und das Betriebssystem selbst um die Vergabe der IRQ-Nummern (PnP = Plug-and-Play-Geräte). Bei alten Steckkarten, z.B. ISA-Karten, müssen die IRQs von Hand eingestellt werden.
Unter Linux kann man die Interrupts mit folgendem Befehl abfragen: cat /proc/interrupts
IRQ-Geräte-Tabelle # (Diese Liste kann sich bei manchen Geräten anders darstellen)
- 0: Timer
- 1: Tastatur
- 2: umgeleitet auf IRQ 9
- 3: Serielle Schnittstelle (COM2)
- 4: Serielle Schnittstelle (COM1)
- 5: Frei
- 6: Diskettencontroller
- 7: Parallele Schnittstelle (LPT1)
- 8: Echtzeituhr
- 9: Umleitung von IRQ 2, VGA-Karte
- 10: Frei
- 11: Frei
- 12: Bus-Maus
- 13: Mathematischer Coprozessor
- 14: Festplattencontroller
- 15: Festplattencontroller