Interrupt

ELektronik-KOmpendium.de
Online

Preis auf Anfrage

Wichtige informationen

  • Kurs
  • Online
Beschreibung

Interrupt (IRQ) Jedes Computersystem besteht nicht nur aus Hauptprozessor (CPU) und Datenspeicher, sondern auch aus der Peripherie, die im Gehäuse eingebaut oder an den äußeren Schnittstellen angeschlossen ist. Bei diesen Geräten handelt es sich um Ein- und Ausgabegeräte. Sie können zum Beispiel Daten von außen entgegennehmen. Zum Beispiel typische Eingaben, wie Maus-Bewegung, Tastatur-Eingaben oder Netzwerk-Verkehr. Damit die CPU mitbekommt, dass Daten von außen anstehen, muss es die Möglichkeit geben, den Prozessor bei seiner Arbeit zu unterbrechen. Hierzu gibt es die Möglichkeit, dass der Prozessor alle Eingabe-Geräte zyklisch abfragt (Polling). Was bei der Vielzahl an Komponenten in einem Computer bedeuten würde, dass der Prozessor mit nichts anderem mehr beschäftigt wäre. Eine Alternative ist die sogenannten Unterbrechungsanforderung (to interrupt, unterbrechen), die dann eintritt, wenn Daten von außen anstehen. Dazu wurde die Möglichkeit geschaffen den Hauptprozessor auf definierte Weise bei der laufenden Arbeit zu unterbrechen.

Wichtige informationen

Was lernen Sie in diesem Kurs?

Verwaltung
Architektur

Themenkreis

Ablauf eines Interrupts

Wenn ein Gerät Daten zur weiteren Verarbeitung zur Verfügung hat oder einfach nur eine Rückmeldung geben will, dann wird dem Prozessor in seiner laufenden Arbeit eine Unterbrechungsanforderung, also ein Interrupt-Request (IRQ) gesendet. Das passiert durch den Interrupt (Leitung), der dem betreffenden Gerät zugewiesen ist.
Wird zum Beispiel ein Taste auf der Tastatur gedrückt, dann schickt der Tastatur-Controller einen IRQ an den Prozessor. Der unterbricht seine aktuelle Tätigkeit und führt einen Befehl an einer bestimmten Speicheradresse aus, die vom IRQ-Eingang abhängig ist und auf den Tastatur-Treiber verweist. In den daraufhin ablaufenden Lese- und Schreiboperationen wird dafür gesorgt, dass der Buchstabe auf dem Bildschirm erscheint.

Interrupt-Auslösegründe

Bei jeder zeitkritischen Anwendung, bei der Daten an den Prozessor gesendet werden müssen, wird ein Interrupt ausgelöst. Für den IRQ können folgende Aktionen verantwortlich sein:

  • Mausbewegung
  • Datenempfang vom Modem
  • Tastatureingabe
  • Audioaufnahme durch die Soundkarte
  • Lesen von Speichermedien

Damit aus Anwendersicht das System optimal funktioniert, ist die Gewichtung zwischen den Interrupts unterschiedlich. So kann sich die CPU um die wichtigen Aufgaben kümmern. Bei Überlastung kann es trotzdem dazu kommen, dass wichtige Daten nicht rechtzeitig oder nur verzögert vom Prozessor verarbeitet werden können.

Ressourcenkonflikte

Innerhalb der PC-Architektur ist die Interrupt-Verwaltung schon immer eine große Schwachstelle gewesen. Üblicherweise benötigen alle Peripherie-Geräte einen eigenen Interrupt. Mit der Zeit kamen immer mehr Geräte und Schnittstellen hinzu. Allerdings wurde die Anzahl der Interrupts nicht erhöht. So kam es, dass von diesem wichtigen Element innerhalb des Computersystems immer zu wenig vorhanden waren. Geplante Aufrüstungen scheiterten in der Regel an der zu geringen Anzahl freier Interrupts.
Dieses grundsätzliche Problem stammt aus der Zeit der ISA-Architektur. Es wurde auch dann nicht besser, als Plug & Play die Hardware-Installation einfacher machen sollte. Erst der PCI-Bus brachte die Möglichkeit des IRQ-Sharings, die gemeinsame Nutzung der Interrupt-Leitungen durch mehrere PCI-Steckkarten.
Da die Anzahl der Interrupts grundsätzlich zu gering ist, übernimmt das Betriebssystem die Rolle der Interrupt-Organisation, die auch die Doppelnutzung durch zwei Komponenten kontrollieren kann.

Der APIC-Modus

Der APIC (Advanced Programmable Interrupt Controller), nicht zu verwechseln mit ACPI, ist eine Steuereinheit für Interrupts in einem Computer.
In Multi-Prozessor-Systemen besitzen die Prozessoren einen Local APIC, über den sie mit den anderen Prozessoren und dem I/O-APIC des Motherboards kommunizieren. Das ist notwendig, damit bei einer Interrupt-Auslösung eindeutig ist, welcher der Prozessoren für diesen Interrupt zuständig ist.
Durch APIC ist es einem Betriebssystem möglich, sofern es APIC unterstützt, Interrupts mehrfach zu belegen. Aus diesem Grund ist APIC heute in jedem Prozessor und auf jedem Motherboard integriert.
Der Einsatz von immer mehr Erweiterungskarten hat dringend nach APIC-Unterstützung durch Chipsatz und Betriebssystem verlangt. Der APIC-Modus hat der Interrupt-Architektur des PCs deutliche Verbesserungen gebracht. Ressourcenkonflikte treten heute praktisch nicht mehr auf.

Als es noch ISA-Steckkarten gab, mussten die Interrupts per Jumper konfiguriert werden. Später mit den PCI-Steckkarten konnten die Interrupts per Software eingestellt werden. Mit APIC kann das Betriebssystem die Interrupts eigenständig verwalten. Der Anwender muss an dieser Stelle keine Hand mehr anlegen. Mit der vollautomatischen Interrupt-Verwaltung durch APIC und dem Betriebssystem wurde dem PC-Bastler eine der lästigsten Aufgaben abgenommen, die es jemals gab.

Ablauf mit APIC-Modus

Beim Systemstart übernimmt das BIOS die IRQ-Verteilung, um die Geräte nutzen zu können. Zum Beispiel, um das Betriebssystem von der Festplatte oder einem anderen Laufwerk starten zu können. Nach dem Start des Betriebssystems übernimmt es die Kontrolle der IRQ-Verwaltung und nimmt an der IRQ-Verteilung des BIOS Änderungen vor.
Moderne Betriebssysteme erledigen die IRQ-Verwaltung auf APIC-tauglicher Hardware sehr geschickt und ohne manuelle Konfiguration durch den Anwender. Aus diese Grund ist eine manuelle Änderung der IRQ-Verteilung nicht sinnvoll und in der Regel auch gar nicht möglich. In der Regel sind alle Betriebssysteme im APIC-Modus installiert.
Sollte trotzdem der Verdacht auftreten, dass das automatische IRQ-Sharing Probleme bereitet, dann hilft nur das Vertauschen der vorhandenen Steckkarten.

Weitere verwandte Themen:
  • Motherboard
  • Chipsatz
  • Bus-Systeme
  • A20-Gate
  • DMA - Direct Memory Access
  • PnP - Plug & Play
  • Northbridge und Southbridge