Interrupt-Controller

Der Interrupt-Controller ist ein weiterer Hardware-Baustein in der Architektur eines Computers. Seine Aufgabe besteht darin, Interrupt-Signale von verschiedenen Komponenten des Rechners entgegen zu nehmen, und die CPU über das Vorliegen von einem (oder mehreren) Interrupts zu informieren.

Die CPU ist dann für die Abarbeitung des Interrupts zuständig. Dies geschieht, indem eine sogenannte Interruptbehandlungsroutine aufgerufen wird.


Definition: Interruptbehandlungsroutine

Definition

Unter einer Interruptbehandlungsroutine (ISR, Interrupt Service Routine) versteht man eine Reihe von Anweisungen, die einem bestimmten Interrupt zugeordnet ist und deren Anweisungen auf einer CPU ausgeführt werden können.


Interrupt bedeutet Unterbrechung

Die deutsche Übersetzung des englischen Begriffs "Interrupt" ist "Unterbrechung". Und genau diese Unterbrechung eines laufenden Prozesses passiert in dem Moment, in dem sich die CPU entschließt, einen vom Interrupt-Controller angezeigten Interrupt zu bearbeiten.

Den vereinfachten Ablauf zeigt das folgende Video:

Video.png
Video


Im Video ist erkennbar, dass der Interrupt-Controller als eigenständige Hardware-Komponente über den Systembus mit anderen Komponenten und insbesondere mit der CPU kommuniziert.


Cpu13-interrupt-controller.jpg


Vnrgesamt2.jpg


Hinweis
Weiterführende Literatur

Wüst 2011 erläutert in den Kapiteln 8.1 (Interrupts) und 8.2 (Ausnahmen) weitere Hintergründe zu den genannten Themen. Die Lektüre dieser Quelle sei ausdrücklich empfohlen.

Studierende sind oftmals berechtigt, eine PDF-Version dieses Buches ohne entstehende Kosten über ihre Hochschulen von Springerlink zu beziehen.


Hinweis
Weiterführende Literatur

Mandl 2013 erläutert in Kapitel 3.1 (Interrupts) weitere Hintergründe zum Thema. Die Lektüre dieser Quelle sei ausdrücklich empfohlen.

Studierende sind oftmals berechtigt, eine PDF-Version dieses Buches ohne entstehende Kosten über ihre Hochschulen von Springerlink zu beziehen.


Es ist an dieser Stelle wichtig zu verstehen was genau passiert, wenn ein Interrupt auftritt und von der CPU bearbeitet wird. Die Beschreibung oben auf dieser Seite ist noch recht allgemein gehalten, weshalb jetzt einige entscheidende Details betrachtet werden sollen.


Keine negative Beeinträchtigung

Ein entscheidendes Kriterium bei der Abarbeitung eines Interrupts durch die CPU ist, dass der durch den Interrupt unterbrochene Prozess später ohne negative Beeinträchtigung weiter ausgeführt werden kann. Das vom Prozess erarbeitete Ergebnis darf sich nicht unterscheiden, egal, ob während der Abarbeitung ein (oder mehrere) Interrupt(s) aufträt(en), oder nicht. Erreicht wird dieses durch die Einhaltung der Bedingungen einer präzisen Unterbrechung.


Definition: Präzise Unterbrechung

Definition

Einen Interrupt nennt man eine präzise Unterbrechung (precise interrupt), falls alle der folgenden Bedingungen erfüllt sind:

  1. Der Programmzähler des unterbrochenen Prozesses wird an einer bekannten Stelle gesichert.
  2. Alle Befehle des unterbrochenen Prozesses, die vor dem Befehl ausgeführt werden müssen, auf den der Programmzähler zeigt, sind vollständig abgearbeitet.
  3. Kein Befehl des unterbrochenen Prozesses, der nach dem Befehl ausgeführt werden muss, auf den der Programmzähler zeigt, ist bereits abgearbeitet.
  4. Der Ausführungszustand des Befehls des unterbrochenen Prozesses, auf den der Programmzähler zeigt, ist bekannt.


Definition: Unpräzise Unterbrechung

Definition

Einen Interrupt nennt man eine unpräzise Unterbrechung (Imprecise interrupt), falls mindestens eine der für einen präzisen Interrupt genannten Bedingungen nicht erfüllt ist.


Was bei einem Interrupt passiert

Das folgende Video zeigt ein Beispiel, anhand dessen nachvollzogen werden kann, was genau bei einem Interrupt passiert, und ob die Bedingungen für eine präzise Unterbrechung erfüllt werden.

Video.png
Video


Mit Hilfe dieses Videos ist es nun möglich, die folgenden Aufgaben zu bearbeiten:


Aufgabe 1

Aufgabe
Prüfe die Bedingungen!

Prüfe anhand des Videos für jede der vier Bedingungen einer präzisen Unterbrechung, ob diese tatsächlich erfüllt ist!

  • Ist Bedingung 1 erfüllt? Erläutere warum!
  • Ist Bedingung 2 erfüllt? Erläutere warum!
  • Ist Bedingung 3 erfüllt? Erläutere warum!
  • Ist Bedingung 4 erfüllt? Erläutere warum!


Aufgabe 2

Aufgabe
Schätze die Folgen ab!

Beschreibe ein Szenario, bei dem jeweils eine der vier Bedingungen einer präzisen Unterbrechung nicht erfüllt ist.

  • Was sind die Folgen, wenn Bedingung 1 nicht erfüllt ist?
  • Was sind die Folgen, wenn Bedingung 2 nicht erfüllt ist?
  • Was sind die Folgen, wenn Bedingung 3 nicht erfüllt ist?
  • Was sind die Folgen, wenn Bedingung 4 nicht erfüllt ist?


Aufgabe 3

Aufgabe
Wer wenn nicht das Steuerwerk?

Im Video wird gezeigt, wie der aktuelle Wert des Befehlszählers bei einer Unterbrechung in einem anderen Register gesichert wird. Alle weiteren Register oder die Statusflags werden hingegen nicht gesichert.

  • Wenn das Steuerwerk nicht für die Sicherung dieser Werte zuständig ist, wer oder was ist es dann?
    (Auf verschiedenen anderen Seiten dieses Moduls ist die Antwort auf Wer-oder-was-Fragen stets "Das Betriebssystem", aber diese Antwort ist an dieser Stelle nicht zugelassen, sie ist viel zu allgemein.)
  • Wo können diese Werte gesichert werden?
  • Welche Vor- und/oder Nachteile hat diese Verfahrensweise?


Aufgabe 4

Aufgabe
Vier Bit

Im Video werden in den Registern PC und IR jeweils Werte abgelegt, die aus vier Bit bestehen.

  • Wie realistisch sind diese vier Bit?
  • Wieviele Bit erwartest du hier bei deinem eigenen PC oder Laptop?