Mikroprogrammsteuerwerk

Mikroprogrammsteuerwerk

Ein Mikroprogrammsteuerwerk ist der Teil mikroprogrammierter Prozessoren, der die Ausführung eines Befehls im Prozessor steuert. Das Steuerwerk hat Zugriff auf Mikroprogramme, die in einem Speicher abgelegt sind. Die Mikroprogramme steuern das Zusammenspiel von Prozessoreinheiten wie zum Beispiel der ALU oder den Registern. Bei manchen Prozessoren können die Mikroprogramme auch nachträglich mittels Mikrocodeprogrammierung geändert werden. Man kann Mikroprogramme auch als Firmware der CPU auffassen.

Inhaltsverzeichnis

Funktionsweise

Maschinencodes müssen in einem Prozessor mittels sogenannter Mikrobefehle in Steuersignale für die einzelnen Funktionseinheiten umgesetzt werden. Unter Umständen müssen dazu mehrere aufeinander folgende Verarbeitungsschritte ausgelöst werden, um die Funktion des Maschinencodes in Form einer Mikrobefehlssequenz zu realisieren.

Nehmen wir als Beispiel den Befehl ADD A,B eines fiktiven Prozessors, der die Inhalte der Register A und B addieren und das Ergebnis in das Register A zurückschreiben soll. Es könnte folgender Steuerablauf im Prozessor ablaufen:

  1. Die ALU wird für eine Addition konfiguriert.
  2. Der Inhalt von Register A wird an den ersten Eingang der ALU angelegt.
  3. Der Inhalt von Register B wird an den zweiten Eingang der ALU angelegt.
  4. Nach dem Ablauf der Durchlaufzeit für das Auslesen der Register A und B, sowie die Ausführung der Addition in der ALU wird das Ergebnis in ein Zwischenregister abgelegt.
  5. Der Inhalt von Register A wird mit dem Wert aus dem Zwischenregister überschrieben.
  6. Der nächste Befehl wird aus dem Speicher gelesen.

Denkbar wäre, die Schritte 1, 2, 3 und 5, 6 in jeweils einem Zeitintervall zusammengefasst ablaufen zu lassen.

Um diesen Ablauf zu steuern ist es möglich, eine Logik aufzubauen, die direkt diese Steuerung vornimmt. Der Nachteil bei dieser „festen Verdrahtung“ der Befehle ist die Komplexität der notwendigen Logik und die geringe Flexibilität bei notwendigen Veränderungen.

Im Falle der Mikroprogrammierung wird eine solche Ablaufsteuerung über die in einem Speicher abgelegten Mikroprogramme realisiert. Der Maschinencode aktiviert dabei jeweils eines der Mikroprogramme, das in mehreren Schritten dann jeweils alle notwendigen Steuersignale für die Funktionseinheiten erzeugt. Im einfachsten Falle ist das Mikroprogrammsteuerwerk aufgebaut aus einem Befehlsregister, das den gerade ausgeführten Maschinencode enthält, einem Zähler für die Mikroprogrammschritte und einem Speicher, der die einzelnen Schritte enthält. Das Befehlsregister und der Zähler zusammen ergeben dann die Adresse für den Mikroprogrammspeicher. Es sind aber auch komplexere Mikroprogrammsteuerwerke möglich, die Sprungbefehle und Verzweigungen ausführen können, um komplexere Befehle zu ermöglichen. Die Bedeutung eines Mikroprogrammsteuerwerks als Leitwerk für die Steuerung eines virtuellen Rechenwerks wird mit dem Mikrocodesimulator MikroSim auf didaktische Weise vermittelt.

Entwicklung

Frühe Prozessoren waren typischerweise mit fest verdrahteter Logik aufgebaut, später wurden dann vermehrt Mikroprogrammsteuerwerke eingesetzt. Diese Entwicklung hat sich bei den Mainframe-Computern, wie auch später bei den Mikroprozessoren abgespielt. Mit der Entwicklung zu immer höheren Taktfrequenzen und zu RISC-Prozessoren ging dann allerdings der Trend wieder zu fest verdrahteter Logik. Aktuelle Prozessoren verwenden oft eine Mischform, bei der häufig verwendete Befehle oder Befehlsteile mit fest verdrahteter Logik ausgeführt werden und komplexe, oder nicht so zeitkritische Befehle ganz oder teilweise mit Mikrocode.

Einige Prozessoren können ihre Mikroprogrammierung auch selbst dynamisch ändern, zum Beispiel um einen anderen Befehlssatz zu erlauben oder die Ausführung zu optimieren. In einigen Fällen kann ein Teil des fest in einem Prozessor verankerten Mikrocodes durch nachgeladenen Mikrocode ersetzt werden um Fehler im Prozessor zu kompensieren.

Mikroprogrammsteuerwerke sind eine Form von speicherprogrammierbarer Steuerung. Ihr Einsatz ist nicht auf Prozessoren begrenzt.

Literatur

  • R. Hoffmann: Rechnerentwurf: Rechenwerke, Mikroprogrammierung, RISC. 3. Auflage. Oldenbourg, München 1993, ISBN 978-3-486-22174-9 (insbesondere Kap. 5: Mikroprogrammierung).
  • H.P. Gumm, M. Sommer: Einführung in die Informatik. Oldenbourg, 8. Auflage 2009, ISBN 978-3-486-58724-1
  • K. Wüst: Mikroprozessortechnik: Grundlagen, Architekturen und Programmierung von Mikroprozessoren, Mikrocontrollern und Signalprozessoren. Vieweg+Teubner Verlag, 3. Auflage 2008, ISBN 978-3-834-80461-7
  • H. Bähring: Mikrorechner-Technik, Band 1, Mikroprozessoren und Digitale Signalprozessoren. Springer, 3. Auflage 2002, ISBN 3-540-41648-x
  • H. Bähring: Mikrorechner-Technik, Band 2, Busse, Speicher, Pheriperie und Mikrocontroller. Springer, 3. Auflage 2002, ISBN 3-540-43693-6
  • Bringschulte, Ungerer: Mikrocontroller und Mikroprozessoren. Springer 2002, ISBN 3-540-43095-4
  • R. Kelch: Rechnergrundlagen - Von der Binärlogik zum Schaltwerk. Fachbuchverlag Leipzig 2003, ISBN 3-446-22112-1
  • R. Kelch: Rechnergrundlagen - Vom Rechenwerk zum Universalrechner. Fachbuchverlag Leipzig 2003, ISBN 3-446-22113-1
  • Ch. Märtin: Einführung in die Rechnerarchitektur - Prozessoren und Systeme. Fachbuchverlag Leipzig 2003, ISBN 3-446-22242-1

Weblinks


Wikimedia Foundation.

Игры ⚽ Поможем сделать НИР

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Microcode — Ein Mikroprogrammsteuerwerk ist der Teil mikroprogrammierter Prozessoren, der die Ausführung eines Befehls im Prozessor steuert. Das Steuerwerk enthält eine Menge von Mikroprogrammen, die jeweils aus einer Liste von Steuersignalen bestehen, die… …   Deutsch Wikipedia

  • Am2900 — Ein AMD Am2901. Am2900 ist eine 1975 von Advanced Micro Devices eingeführte Familie von Bit Slice Bausteinen. Diese waren dazu gedacht, sich nach dem Konzept des Bit Slicing eine mikroprogrammierbare CPU nach eigenen Bedürfnissen frei… …   Deutsch Wikipedia

  • Ausführungseinheit — Die Artikel Prozessor (Hardware), Mikroprozessor und Hauptprozessor überschneiden sich thematisch. Hilf mit, die Artikel besser voneinander abzugrenzen oder zu vereinigen. Beteilige dich dazu an der Diskussion über diese Überschneidungen. Bitte… …   Deutsch Wikipedia

  • CPU — Die Artikel Prozessor (Hardware), Mikroprozessor und Hauptprozessor überschneiden sich thematisch. Hilf mit, die Artikel besser voneinander abzugrenzen oder zu vereinigen. Beteilige dich dazu an der Diskussion über diese Überschneidungen. Bitte… …   Deutsch Wikipedia

  • Central Processing Unit — Die Artikel Prozessor (Hardware), Mikroprozessor und Hauptprozessor überschneiden sich thematisch. Hilf mit, die Artikel besser voneinander abzugrenzen oder zu vereinigen. Beteilige dich dazu an der Diskussion über diese Überschneidungen. Bitte… …   Deutsch Wikipedia

  • Central processing unit — Die Artikel Prozessor (Hardware), Mikroprozessor und Hauptprozessor überschneiden sich thematisch. Hilf mit, die Artikel besser voneinander abzugrenzen oder zu vereinigen. Beteilige dich dazu an der Diskussion über diese Überschneidungen. Bitte… …   Deutsch Wikipedia

  • Control Unit — Das Steuerwerk (englisch Control Unit, kurz CU) ist der Kern des Mikroprozessors. Im Steuerwerk befinden sich die Befehlsregister und der Befehlsdecoder. Seine Aufgabe ist die Abarbeitung des Programms, d.h. Befehl für Befehl eines Programms… …   Deutsch Wikipedia

  • Engineering sample — Die Artikel Prozessor (Hardware), Mikroprozessor und Hauptprozessor überschneiden sich thematisch. Hilf mit, die Artikel besser voneinander abzugrenzen oder zu vereinigen. Beteilige dich dazu an der Diskussion über diese Überschneidungen. Bitte… …   Deutsch Wikipedia

  • Sequenzer — Sequencer bezeichnet ein Gerät oder eine Software zur Erstellung von Musik, siehe Sequenzer (Musik) in der Rechnerarchitektur das Mikroprogrammsteuerwerk die Spielhilfe einer Orgel, siehe Kombination (Orgel) …   Deutsch Wikipedia

  • Zentralprozessor — Die Artikel Prozessor (Hardware), Mikroprozessor und Hauptprozessor überschneiden sich thematisch. Hilf mit, die Artikel besser voneinander abzugrenzen oder zu vereinigen. Beteilige dich dazu an der Diskussion über diese Überschneidungen. Bitte… …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”