Microcode

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 das Verhalten von Prozessorelementen – zum Beispiel der ALU und den Registern – regeln. Bei manchen Prozessoren können die Mikroprogramme auch nachträglich geändert werden. Man könnte die Mikroprogramme auch als Firmware der CPU bezeichnen.

Funktionsweise

Maschinencodes müssen in einem Prozessor in Steuersignale für die einzelnen Funktionseinheiten umgesetzt werden und mehrere aufeinander folgende Verarbeitungsschritte auslösen um die Funktion des Maschinencodes zu realisieren.

Nehmen wir als Beispiel folgenden Befehl eines fiktiven Prozessors: ADD A, B Dieser Befehl soll die Inhalte der Register A und B addieren und das Ergebnis in das Register A zurückschreiben. Damit dies geschieht muss innerhalb des Prozessors folgendes ablaufen:

  1. Die ALU muss für eine Addition konfiguriert werden.
  2. Das Register A muss seinen Inhalt an einen Eingang der ALU anlegen.
  3. Das Register B muss seinen Inhalt an einen zweiten Eingang der ALU anlegen.
  4. Nach dem Ablauf der Durchlaufzeit für das Auslesen der Register und die Ausführung der Addition in der ALU muss das Ergebnis in ein Zwischenregister übernommen werden.
  5. Das Register A muss den Wert des Zwischenregisters übernehmen.
  6. Der nächste Befehl muss aus dem Speicher gelesen werden.

Dabei können die Schritte 1, 2, 3 und 5, 6 in jeweils einem Schritt zusammengefasst werden.

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.

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.

Weblinks


Wikimedia Foundation.

Игры ⚽ Поможем решить контрольную работу

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

  • Microcode — is a layer of hardware level instructions and/or data structures involved in the implementation of higher level machine code instructions in many computers and other processors; it resides in special high speed memory and translates machine… …   Wikipedia

  • Microcode — Le microcode est un programme composés de micro instructions dont l exécution au sein du processeur ou microprocesseur définit le jeu d instructions de celui ci. Le microcode est au centre des architectures microprogrammées. Sur celles ci, le… …   Wikipédia en Français

  • Microcode — Microcode,   Mikrocode …   Universal-Lexikon

  • microcode — [mī′krō kōd΄] n. permanent basic commands built into a computer that enable its electronic circuits to perform operations …   English World dictionary

  • microcode — ● n. m. ►PUCE Code correspondant à une instruction complexe d un processeur, instruction trop complexe pour la câbler directement. Un autre avantage du microcode est de pouvoir traiter des parties de l instruction, en attendant que les données… …   Dictionnaire d'informatique francophone

  • microcode — mikroprograma statusas T sritis informatika apibrėžtis Programa, aprašanti kompiuterio operacijos veikimą. Pavyzdžiui, daugybos operacija aprašoma kaip mikroprograma, kurioje naudojama sudėties operacija, o sudėties operacija gali būti aprašyta… …   Enciklopedinis kompiuterijos žodynas

  • microcode — noun Date: 1958 the microinstructions especially of a microprocessor …   New Collegiate Dictionary

  • microcode — /muy kreuh kohd /, n. Computers. 1. one or more microinstructions. 2. the notation for writing microprograms on a given computer. [MICRO + CODE] * * * …   Universalium

  • microcode — noun The collective microprograms in a CPU, used to run machine instructions …   Wiktionary

  • microcode — noun a very low level instruction set controlling the operation of a computer …   English new terms dictionary

Share the article and excerpts

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