Datentransfer und Interrupts

Das folgende Video erläutert die Bedeutung von Interrupts bei der Kommunikation zwischen CPU und Ein-/ Ausgabegeräten. Beispielhaft wird die Festplatte als E/A-Gerät betrachtet.

Video.png
Video


Im Video wird deutlich, dass für jedes einzelne Datenwort folgende Schritte erforderlich sind:

  • Die CPU sendet die Adresse des gewünschten Datenwortes an den Festplatten-Controller.
  • Der Festplatten-Controller besorgt das Datenwort von der Festplatte und stellt es in seinem Datenregister zur Verfügung.
  • Der Festplatten-Controller sendet einen Interrupt zum Interrupt-Controller.
  • Der Interrupt-Controller nimmt den Interrupt entgegen und verwaltet ihn.
  • Der Interrupt-Controller informiert die CPU über den Interrupt des Festplatten-Controllers.
  • Die CPU startet die zugehörige Interruptbehandlungsroutine.
  • Die Behandlungsroutine kopiert das Datenwort in ein Register auf der CPU.
  • Die Behandlungsroutine sendet das Datenwort von der CPU zum Hauptspeicher.
  • Der Hauptspeicher legt das Datenwort in der gewünschten Speicherzelle ab.
  • Die Interruptbehandlungsroutine informiert den Interrupt-Controller darüber, dass der Interrupt jetzt fertig behandelt ist.

Ganz schön viel Aufwand, oder? (Und dabei ist diese Auflistung noch nicht einmal ganz komplett, aber damit beschäftigst du dich gleich noch in den Aufgaben weiter unten ;-)


Für eine Handvoll Bits...

Wichtig

Es ist an dieser Stelle wichtig zu erkennen, was für ein hoher Aufwand betrieben wird, nur um ein einzelnes Datenwort von der Festplatte in den Hauptspeicher zu kopieren.


Wie hoch der Aufwand tatsächlich ist, wird vermutlich erst mit der Beantwortung der folgenden Fragen deutlich:

Frage

Wie groß ist ein einzelnes Datenwort eigentlich?


Frage

Wie groß ist heute eine übliche Datei, die beispielsweise ein Anwendungsprogramm enthält?


Hinweis
Weiterführende Literatur

Wüst 2011 erläutert in Kapitel 5 (Ein- und Ausgabe) 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.


Aufgabe 1

Aufgabe
Alternative zum Warten?

Im Video wird gezeigt, wie die CPU wartet, und wartet, und wartet. Das ist natürlich keine gute Idee im Hinblick auf die Geschwindigkeit des Gesamtsystems.

  • Was könnte die CPU alternativ tun, während sie auf den Interrupt wartet?
  • Eigentlich ist das Betriebssystem gefordert, hier andere Tätigkeiten zu veranlassen. Welche fallen dir ein?


Aufgabe 2

Aufgabe
Interrupt und die Register

Im Video wird darauf verzichtet zu zeigen, wie sich Werte beispielsweise in den Registern PC oder IR (usw.) ändern, und welche Werte davon über das Bussystem übertragen werden.

  • Diskutiere dieses in deiner Lerngruppe!
  • Erklärt euch gegenseitig das Zusammenspiel aller Komponenten und Register.
  • Findest du auch ein Beispiel, welches die ALU einbezieht?
  • Was passiert mit PC und IR bei einem Interrupt?
  • Wie werden diese Register beim Abarbeiten der Interruptbehandlungsroutine belegt?
  • Was passiert mit diesen Registern am Ende der Abarbeitung der Interruptbehandlungsroutine (wenn im Video das ACK-IRQ-Signal zum Interrupt-Controller gesendet wird)?


Aufgabe 3

Aufgabe
Zwei Bit?

Das Zustandsregister eines Controllers kann (u.a.) ein READY anzeigen, im Video ist das zu sehen. Es reicht ein Bit, um den Zustand READY zu kennzeichnen. Ist dieses Bit gleich 1, so gilt: der Controller ist READY für den nächsten Steuerbefehl. Gleiches gilt für den Zustand BUSY. Auch hierfür reicht ein Bit.

Für READY und BUSY werden im Zustandsregister demnach zwei Bit benötigt.

  • Kannst du dem zustimmen?
  • Oder gibt es eine sinnvolle Alternative?
  • Welche Alternative fällt dir ein?


Aufgabe 4

Aufgabe
Mehrere Register je Typ

Im Text dieser Seite wird erwähnt, dass die im Bild gezeigten Controller nur ein Register je Typ enthalten, dass es aber auch möglich ist, dass ein Controller mehrere Register eines Typs enthält.

  • Entwickle ein Szenario, in dem es sinnvoll mehrere Register eines Typs gibt!


Aufgabe 5

Aufgabe
Mal wieder das Betriebssystem

Kombiniere das Wissen aus dem Video mal mit deinen Ideen, was die CPU statt warten so tun könnte, und mit dem Wissen aus dem Kapitel Quasi-gleichzeitige Ausführung mehrerer Prozesse. Es könnte dann vorkommen, dass mehrere Prozesse "quasi-gleichzeitig" auf ein E-/A-Gerät (wie z.B. die Festplatte) zugreifen möchten.

WER oder WAS sorgt dann dafür, dass hierbei keine Kollision auf dem Controller des E-/A-Geräts passiert?

Bitte entschuldige, dass die Antwort gleich unterhalb dieser Frage steht ;-)


Wichtig
Wir brauchen ein Betriebssystem!

Und eine der Aufgaben des Betriebssystems wird die Verwaltung der Ein- und Ausgabegeräte sein.


Speziell beim Thema "Datei auf der Festplatte" im Video ergibt sich eine weitere Fragestellung, auf die im Video nicht näher eingegangen wird.

WER oder WAS sorgt dafür, dass Verzeichnisse und Dateien auf einem Datenspeicher (Festplatte, CD, DVD, USB-Stick, etc.) angelegt, wiedergefunden, gelesen, bearbeitet oder gelöscht werden können?


Wichtig
Wir brauchen ein Betriebssystem!

Und eine der Aufgaben des Betriebssystems wird die Datei- und Verzeichnisverwaltung auf Datenträgern sein.