Allgemeiner Aufbau eines Controllers

Genau wie die CPU besitzt auch der Controller eines Peripheriegeräts verschiedene Register. Üblich sind:

  • Steuerregister
    Hier kann über das Bussystem ein Steuerbefehl an den Controller übergeben werden (ähnlich dem Befehlsregister auf der CPU).
  • Datenregister
    Hier kann ein Datenwort hinterlegt, oder ein vom Peripheriegerät über den Controller bereitgestelltes Datenwort ausgelesen werden.
  • Zustandsregister
    Hier hinterlegt der Controller jeweils Werte, die über den aktuellen Zustand des Controllers (oder Peripheriegeräts) Auskunft geben.


Anmerkung
In dem (oder den) Zustandsregister(n) können verschiedene Zustände angezeigt werden, beispielsweise
  • Ready: Controller ist bereit für den nächsten Steuerbefehl.
  • Busy: Controller ist noch mit der Ausführung des aktuellen Steuerbefehls beschäftigt.
  • Read Error: Das angeforderte Datenwort kann nicht vom Peripheriegerät gelesen werden.
  • Write Error: Das im Datenregister befindliche Datenwort kann nicht auf dem Peripheriegerät gespeichert werden.
  • Out of paper: Der an diesen Controller angeschlossene Drucker hat kein Papier mehr.
  • etc.


Die folgende Abbildung zeigt den allgemeinen Aufbau eines Controllers. Dabei ist von jeder Registerart nur ein einziges eingezeichnet, es ist jedoch auch denkbar, dass der Controller über mehrere Register je Art verfügt.

Controller1.jpg


Die bislang betrachtete Menge an Peripheriegeräten verfügt jeweils über einen eigenen Controller, wobei jeder Controller mit dem entsprechenden Registersatz ausgestattet ist:

Controller3.jpg


Aufgabe 1

Aufgabe
Lesen und/oder schreiben?

Auf das Datenregister eines Controllers kann die CPU sowohl lesend, als auch schreibend zugreifen. Wie verhält es sich aber beim Steuer- und beim Zustandsregister? Ist der Zugriff hier nur lesend, nur schreibend oder lesend und schreibend möglich?