Steuerwerk
Wenn der Prozessor als Kommandozentrale des Computers angesehen werden kann, so ist das
Steuerwerk (Control Unit, auch Leitwerk) der Kapitän. Anhand des vorgegebenen Programms
wird hier das erforderliche Zusammenwirken der einzelnen Baueinheiten bestimmt.
Im allgemeinen werden folgende Aufgaben erfüllt:
- Befehlsauswahl aus dem Speicher in der richtigen und logischen Reihenfolge.
- Steuerung des Rechenwerks (ALU), des Speichers und der Ein- und Ausgabeeinheiten mittels
Signale
- Änderung von Adressen unter Berücksichtigung der Register und Überwachung der
Baueinheite.
Die Befehlsausführung liegt intern in der Zentraleinheit im Mikro- und
Nanosekundenbereich. Die peripheren Geräten weisen dagegen auch noch mechanisch
betriebene Bauteile auf, die zu bewegen langsamer verläuft. Ihre Ausführungszeit bewegt
sich deshalb nur im Millisekundenbereich.
Aus diesem Grund erfolgt die Steuerung geteilt als Programmsteuerung und als Ein- und
Ausgabe-Steuerung. Die internen Vorgänge der CPU werden durch die Programmsteuerung des
Steuerwerks koordiniert.
Bei der Abarbeitung der einzelnen Befehle des aktuellen Programms wird im Steuerwerk die
Bedeutung der Befehle in Steuerimpulse umgesetzt. Diese werden an die jeweiligen
Baugruppen der Zentraeinheit weitergeleitet.
Beim Steuerwerk kommen Register zum Einsatz, die auch hier als Schnell- speicher
fungieren. Eine Schlüsselstellung nehmen hierbei das Befehls- register, das
Befehlszählregister und die Register zur Adreßrechnung ein.
Prinzipiell laufen die Arbeiten im Steuerwerk wie fogt ab:
In das Befehlsregister wird der abzuarbeitende Befehl geladen. Dieser Befehl enthält
einen Operationsteil und einen Adreßteil.
Der Operationsteil wird im Decodierer (engl.: decoder) entschlüsselt. Dabei werden die
binär verschlüsselten Eingabesignale durch seine Schaltwerke entsprechend der
Schaltalgebra umgewandelt und an die Eingangsleitungen der Mikroprogrammeinheit abgegeben.
Bei der Interpretation des decodierten Befehls in der Mikroprogrammeinheit wird eine Folge
von Signalen erstellt, die an die ausführenden Funktions- einheiten (Rechenwerk oder die
Ein- und Ausgabeeinheiten) übermittelt werden.
Im Adreßteil steht die Adresse des Operanden. Sie kennzeichnet die Speicherstelle, in der
der Operand abgespeichert ist oder abgespeichert werden soll.
Sie ist in der Regel eine Zahl zwischen 0 bis 2n - 1.Allerdings beschränken sich
marktübliche Computer nicht mehr nur auf eine Adresse im Adreßteil, sondern es wird mit
Zwei- bzw. Drei-Adreßsystemen gearbei- tet.
Bei der absoluten Adressierung ist die Adresse im Adreßteil identisch mit dem
Speicherplatz des Operanden. Inzwischen wurden Adreßkonzepte entwickelt, die den Zugriff
beschleunigen sollen. Sie erfordern immer dann eine Adreßberechnung, wenn die Adresse im
Adreßteil abweichend vom technischen Speicherplatz des Operanden ist.
Die Adreßberechnung ist an die vorliegenden Art der Adressierung gebun- den. Über eine
Vergrößerung des Adreßraumes (Menge aller möglichen Adressen) und eine
Verschieblichkeit der Programme wird heute versucht, die Leistungsfähigkeit der Computer
zu erhöhen. Dafür wurden spezielle Verfahren für die Adreßrechnung entwickelt. Sie
stellen hohe Anforderun- gen an das Betriebssystem, von dem aus diese Verfahren überwacht
werden.
So arbeiten die Computer inzwischen mit einem Multiprogramming: Tritt im Programm ein Ein-
oder Ausgabebefehl, ein externer Befehl auf, dann unterbricht die Programmsteuerung dieses
Programm. Der externe Befehl wird an die Ein-Ausgabe-Steuerung abgegeben. Dabei werden die
momentanen Inhalte der Register wir z.B. des Befehlszählers sicher- gestellt.
Die auszugebenden Daten gelangen über das Bussystem in Pufferspeicher (Puffer oder
buffer), werden dort zwischengespeichert und gelangen dann mit angepaßter Geschwindigkeit
in den Puffer der Gerätesteuerung. In dieser Zeit arbeitet die Programmsteuerung an der
Abarbeitung anderer Programmteile.
Durch den Ein-Ausgabe-Prozessor als Teil des Steuerwerks wird also die Ein- oder Ausgabe
der Daten überwacht. Indem eine Kopplung mit Puffern zur kurzfristigen
Zwischenspeicherung erfolgt, können die Geschwindig- keitsunterschiede zwischen CPU und
peripheren Geräten abgefangen werden. Dabei findet eine Ein-Ausgabe-Steuerung sowohl in
der Zentral- einheit als auch im Bussystem und in den peripheren Geräten selbst statt.
Mit einem zeitlich versetzten Abarbeiten von zwei Befehlen, dem sogenann- ten Piplining ,
wird auf andere Weise die Geschwindigkeit der Programm- abarbeitung erhöht:
Hierbei laufen bereits die einzelnen Phasen der Befehlsabarbeitung über- lappend. Das
setzt voraus, daß die beteiligten Schaltwerke mehrfach vorhanden sein müssen.
In das Befehlszählregister wird beim Programmstart die Adresse des ersten Befehls
(Ladeadresse, Startadresse) geladen. Durch eine geson- derte Schaltung wird dieser Zähler
nach Ausführung des Befehls um 1 erhöht.
Damit enthält das Befehlszählregister immer die Adresse des nächsten abzuarbeitenden
Befehls. Bei Sprungbefehlen wird jedoch die Addition mit 1 umgangen und die im Adreßteil
stehende Adresse wird übernommen.