Steuerwerk

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen

Das Steuerwerk, auch Programmsteuerwerk oder Leitwerk, (englisch control unit, kurz CU) ist eine Funktionseinheit eines Prozessors, die den Ablauf der Befehlsverarbeitung steuert. Diese Aufgabe erledigt das Steuerwerk indem es Steuersignale über den Steuerbus an andere Funktionseinheiten, insbesondere an das Rechenwerk, sendet. Alle Aktivitäten des Steuerwerks sind unmittelbar abhängig vom CPU-Takt.

Aufgabe des Steuerwerks[Bearbeiten | Quelltext bearbeiten]

Das Steuerwerk ist neben dem Rechenwerk die Hauptkomponente des Prozessors. Im Steuerwerk befinden sich der Befehlszähler, das Befehlsregister, der Befehlsdecoder und die Operationensteuerung. Seine Aufgabe ist die Abarbeitung des Programms, d. h., Befehle werden sequentiell durch das Steuerwerk des Prozessors ausgeführt. Das Steuerwerk eines Rechners mit „klassischer“ Von-Neumann-Architektur folgt bei der Abarbeitung eines Maschinenprogramms dem Von-Neumann-Zyklus mit den Phasen FETCH, DECODE, FETCH OPERANDS, EXECUTE und WRITE BACK. Die FETCH und DECODE Phasen sind für jeden Maschinenbefehl gleich, die restlichen Phasen sind spezifisch für den konkreten Maschinenbefehl.

  1. FETCH: Es wird auf die Arbeitsspeicheradresse zugegriffen, die im Befehlszähler steht. Die Daten, die an dieser Adresse im Arbeitsspeicher liegen, werden ins Befehlsregister geladen. Der Befehlszähler wird inkrementiert (+ 1 gerechnet).
  2. DECODE: Der Decoder ist ein Schaltnetz, dass die Inhalte des Befehlsregisters als Input hat. Der Decoder hat Ausgänge für jeden möglichen Maschinenbefehl (z. B. bei x86: ADD, MUL, JMP, ...) und für jeden möglichen Operanden (z. B. bei x86: eax, ebx, ecx, edx, eine Speicheradresse, ...). Diese Ausgänge setzt er entsprechend dem Inhalt des Befehlsregisters. Alle Ausgänge des Decoders münden in die Operationensteuerung.
  3. FETCH OPERANDS: In der Operationensteuerung wurde jetzt der endliche Automat aktiviert, der für die Ausführung des Maschinenbefehls im Befehlsregister steht. Je nachdem welche Operanden durch den Decoder ausgewählt wurden und um welchen Maschinenbefehl es sich handelt, werden jetzt entweder die Operanden, die für die Ausführung des Befehls gebraucht werden geladen, oder es wird sofort (im selben Taktzyklus) mit der EXECUTE Phase begonnen.
  4. EXECUTE: Alle notwendigen Daten sind jetzt in Registern vorhanden. Je nach Art des Maschinenbefehls werden jetzt eine oder mehrere Operationen ausgeführt. Bei x86 gilt: Einfache Befehle wie MOV, JMP oder ADD benötigen wenig Zeit. Komplexe Befehle sind MUL und DIV, diese benötigen abhängig von der Mikroarchitektur mehr Zeit.
  5. WRITE BACK: Diese Phase der Befehlsausführung existiert nur in CISC Rechnern. Bei x86 gilt: Eine WRITE BACK-Phase ist nur notwendig, wenn ein Befehl in den Arbeitsspeicher zurückschreibt, sie ist jedoch nicht für den MOV Befehl notwendig, denn dieser schreibt gegebenenfalls schon in der EXECUTE-Phase zurück in den Arbeitsspeicher.

Wenn kein HALT Befehl ausgeführt wurde, beginnt der Zyklus jetzt von neuem.

Modernere Rechner verwenden Pipelining, Superskalarität, Scoreboarding, den Tomasulo-Algorithmus, Simultaneous Multithreading und andere Methoden, die das Steuerwerk verkomplizieren, jedoch die Befehlsausführung beschleunigen.

Siehe auch[Bearbeiten | Quelltext bearbeiten]

Literatur[Bearbeiten | Quelltext bearbeiten]

  • Jürgen Ortmann:Einführung in die PC-Grundlagen. 8. Auflage, Addison-Wesley Verlag, München 2003, ISBN 3-8273-2102-6.
  • Wolf-Dieter Haaß:Handbuch der Kommunikationsnetze. Einführung in die Grundlagen und Methoden der Kommunikationsnetze, Springer Verlag Berlin Heidelberg, Berlin Heidelberg 1997, ISBN 978-3-642-63825-1.

Weblinks[Bearbeiten | Quelltext bearbeiten]