Dieser Artikel von Wikipedia ist u.U. veraltet. Die neue Version gibt es hier. IRQ ist eine Abkürzung aus dem Computerbereich und bedeutet I nterrupt R e q uest. Auf Deutsch kann man es als Unterbrechungsanforderung bezeichnen.
Varianten des IRQs sind NMI - N on M askable I nterrupt und RST - R e s e t .
Ein Interrupt ist ein Signal meist von einem externen Gerät mit dem der Prozessor aufgefordert wird den aktuellen Programmablauf anzuhalten unterbrechen) und eine sog. Interrupt-Service-Routine aufzurufen.
Durch spezielle Einstellungen kann verhindert werden die CPU auf einen IRQ reagiert. Dies z.B. dann sinnvoll wenn gerade ein IRQ wird. Diese Maskierung kann nur für IRQ vorgenommen werden NMI (Non Maskable Interrupt) können demnach nicht werden. RST sind spezielle Interrupt-Signale (ebenfalls nicht-maskierbar) die CPU auch in einen definierten Zustand können bzw. die Verarbeitung an einer fest Speicheradresse (neu) starten.
Je nach Type der CPU können dieser nur einer oder mehrere einander unterscheidbare IRQ gemeldet werden. Mit einem ist eine Service-Routine verbunden diese kann dann sofort die entsprechende Aktion durchführen oder (wie den IBM-kompatible PC's) muss erst ermitteln welches die Unterbrechung engefordert hat und kann dann die Verarbeitung beginnen.
Die Zeit zwischen dem anlegen des und dem Beginn der entsprechenden Verabeitung nennt auch Latenzzeit . Man spricht im Zusammenhang mit Realtime Echtzeit -Betriebssystem davon dass diese Latenzzeit immer kleiner als ein definierter Wertes bleibt wie gross/klein dieser Wert ist und egal die CPU gerade macht).
In normalen handelsüblichen (=IBM-kompatiblen) PCs gibt es 16 IRQs. Diese 16 werden verschiedenen Peripheriegeräten und Steckkarten zugewiesen um eindeutige Verwaltung derselben zu ermöglichen.
Über den IRQ-Kanal stehen Adapter Karten und Teile der Peripherie eines mit der CPU in Verbindung.
Mit einem IRQ wird dem Prozessor dass ein externes Gerät eine bestimmte Aktion möchte. Dies geschieht über so genannte Interrupt-Leitungen. ein Interrupt am Controller anliegt ermittelt dieser Ursprung und teilt diesen der CPU mit. CPU kann dann die jeweilige gerätespezifische Aktion
Ein solcher PIC (programmable interrupt controller) 8 Leitungen wurde in die ersten PCs Allerdings reichte der sehr bald schon nicht aus aber statt einen größeren zu bauen man (und verwendet bis heute) einfach zwei die auf besondere Art und Weise hintereinander sind:
Über den Steuerbus wird eine IRQ-Meldung den Prozessor weitergeleitet.
Die Reihenfolge wann ein IRQ und "sein" Gerät "dran" sind (ein Prozessor kann schließlich immer nur eins auf einmal machen) durch die Position des IRQ bestimmt. Durch Art der Schaltung sieht die Reihenfolge so
0 1 (2) 8 9 10 12 13 14 15 3 4 5 7.
Der IRQ 2 wird selbst nicht er ist die "Durchreiche" für die IRQs zweiten PIC (Fachsprache: Kaskade man spricht bei Funktionsweise von Kaskadierung des PIC).
Belegen zwei Geräte die selbe Leitung es zu Fehlfunktionen kommen. Bei einigen Betriebssystemen welchen man die IRQs frei wählen kann es jedoch auch das IRQ-Sharing (to share teilen): Zwei Geräte teilen sich einen IRQ. Sie dürfen nicht zeitgleich betrieben werden sonst Datensalat.
Bei neueren Peripheriegeräten kümmern sich der und das Betriebssystem selbst um die Vergabe IRQ-Nummern ( PnP = Plug-and-Play-Geräte). Bei alten Steckkarten z.B. ISA -Karten müssen die IRQs von Hand eingestellt
Unter Linux kann man die Interrupts mit folgendem abfragen: cat /proc/interrupts
IRQ-Geräte-Tabelle # (Diese Liste kann sich manchen Geräten anders darstellen)