Mikrosequenzer - Microsequencer

In Computer - Architektur und Technik , ein Sequenzer oder Mikrosequenzer erzeugt die zu Schritt durch die verwendeten Adressen Mikroprogramm eines Steuerspeichers . Es wird als Teil der Steuereinheit einer CPU oder als eigenständiger Generator für Adressbereiche verwendet.

Normalerweise werden die Adressen durch eine Kombination aus einem Zähler, einem Feld aus einem Mikrobefehl und einer Teilmenge des Befehlsregisters erzeugt . Ein Zähler wird für den typischen Fall verwendet, dass der nächste Mikrobefehl ausgeführt wird. Ein Feld aus dem Mikrobefehl wird für Sprünge oder andere Logik verwendet.

Da CPUs einen Befehlssatz implementieren, ist es sehr nützlich, die Bits des Befehls direkt in den Sequenzer decodieren zu können , um einen Satz von Mikrobefehlen auszuwählen, um die Befehle einer CPU auszuführen.

Die meisten modernen CISC-Prozessoren verwenden eine Kombination aus Pipeline-Logik, um Opcodes geringerer Komplexität zu verarbeiten, die in einem Taktzyklus abgeschlossen werden können, und Mikrocode, um solche zu implementieren, die mehrere Taktzyklen benötigen, um abgeschlossen zu werden.

Einer der ersten integrierten mikrocodierten Prozessoren war der IBM PALM Processor , der alle Anweisungen des Prozessors in Mikrocode emulierte und auf dem IBM 5100 , einem der ersten Personalcomputer, verwendet wurde.

Jüngste Beispiele für ähnliche Open-Source-Mikrosequenzer-basierte Prozessoren sind die MicroCore Labs MCL86- , MCL51- und MCL65- Kerne, die die Intel 8086/ 8088- , 8051- und MOS 6502-Befehlssätze vollständig in Mikrocode emulieren.

Einfaches Beispiel

Das Computersystem Meta 4 Series 16 von Digital Scientific Corp. war ein vom Benutzer mikroprogrammierbares System, das erstmals 1970 erhältlich war. Verzweigungen in der Mikrocodesequenz treten auf eine von drei Arten auf.

  • Ein Verzweigungs- Mikrobefehl spezifiziert die Adresse des nächsten Befehls entweder bedingt oder unbedingt. Die Option logischer Index (IX) bewirkt, dass das 16-Bit-Verbindungsregister mit der Verzweigungsadresse logisch ODER-verknüpft wird , wodurch eine einfache indizierte Verzweigungsfähigkeit bereitgestellt wird.
  • Alle arithmetischen/logischen Befehle ermöglichen den Sprung (J)-Modifizierer, der die Ausführung zu dem Mikrobefehl umleitet, der vom Link-Register adressiert wird.
  • Alle arithmetischen/logischen Anweisungen erlauben sowohl den Dekrementzähler (D) als auch den Sprung (J) Modifikatoren. In diesem Fall wird das 8-Bit-Schleifenzählerregister dekrementiert. Wenn sie dann nicht Null ist, wird zum Inhalt des Link-Registers verzweigt. Wenn er null ist, wird die Ausführung mit dem nächsten Befehl fortgesetzt.

Eine weitere für einen Verzweigungsbefehl zulässige Sequenzierungsoption ist die Ausführungsoption (XQ). Wenn angegeben, wird der einzelne Befehl an der Verzweigungsadresse ausgeführt, aber dann wird die Ausführung nach dem ursprünglichen Verzweigungsbefehl fortgesetzt. Die IX-Option kann mit der XQ-Option verwendet werden.

Komplexes Beispiel

Das IBM System/360 war eine 1964 eingeführte Reihe kompatibler Computer, von denen viele mikroprogrammiert waren. Das System/360 Model 40 ist ein gutes Beispiel für eine mikroprogrammierte Maschine mit komplexer Mikrosequenzierung.

Der Microstore besteht aus 4.096 56-Bit-Mikrobefehlen, die in einem horizontalen Mikroprogrammierungsstil arbeiten. Der Speicher wird durch das 12-Bit-Nur-Lese-Adressregister (ROAR) adressiert. Im Gegensatz zu den meisten Registern in der S/360-Architektur sind die Bits im ROAR von Bit 0 rechts bis Bit 11 links nummeriert.

  +------------+
  |    ROAR    |
  +------------+
  11          0

Das Modell 40 führt keine sequentielle Ausführung von Mikrobefehlen durch und daher verzweigt der Mikrosequenzer nicht wirklich im herkömmlichen Sinne. Stattdessen spezifiziert jeder Mikrobefehl die Adresse des nächsten auszuführenden. Vier Felder im Mikrobefehl tragen zur neuen Adresse bei.

  • CA, 4 Bit: Teil der nächsten Adresse, abhängig von den anderen Feldern.
  • CB, 4 Bit: Bestimmt Bit 1 der nächsten Adresse.
  • CC, 4 Bit: Bestimmt Bit 0 der nächsten Adresse.
  • CD, 2 Bits: Steuert, wie die nächste Adresse zusammengesetzt wird (außer wenn das CB-Feld 15 enthält).

Es gibt im Wesentlichen drei Kombinationen oder Formate dieser Felder.

Funktionales Zweigformat

Wenn das CB-Feld 15 enthält, tritt eine funktionale Verzweigung auf. Die Bits der neuen Mikrospeicheradresse im ROAR werden wie folgt bestimmt.

  • Bits 11–10: CD-Feld
  • Bits 9–6: CA-Feld
  • Bit 5: immer 0
  • Bits 4–1: höherwertige 4 Bits des Q-Registers, das der rechte Eingang in die 8-Bit-ALU ist
  • Bit 0: Ergebnis des durch das CC-Feld spezifizierten Tests

Das CC-Feld kann verschiedene Tests des Zustands der Maschine spezifizieren. Es kann auch eine Konstante 0 oder 1 für ein unbedingtes Bit angeben.

Dieses Format ändert sich der Ablauf der Steuerung zu 1 von 16 Befehlspaare innerhalb der unteren 32 Worte eines 64-Wort - Block von Micros (weil das Bit 5 ist immer 0). Das CC-Feld bestimmt dann, welcher Befehl des Paares die Kontrolle erhält.

CD = 0, 1, 3 Format

Wenn das CD-Feld 0, 1 oder 3 ist, wird der Steuerungsfluss auf einen Befehl innerhalb des aktuellen 64-Wort-Blocks gerichtet. Die Bits der neuen Mikrospeicheradresse werden wie folgt bestimmt.

  • Bits 11–6: gleich bleiben
  • Bits 5–2: CA-Feld
  • Bit 1: wenn CD = 0, Ergebnis des durch das CB-Feld spezifizierten Tests; sonst 0
  • Bit 0: Ergebnis des durch das CC-Feld spezifizierten Tests

Das CA-Feld wählt 1 von 16 4-Wort-Gruppen innerhalb des aktuellen 64-Wort-Blocks aus. Die Felder CB und CC bestimmen dann, welcher Befehl der 4 die Kontrolle erhält.

CD = 2-Format

Wenn das CD-Feld 2 ist, wird der Steuerungsfluss auf eine nicht offensichtliche Weise gelenkt. Die Bits der neuen Microstore-Adresse werden wie folgt bestimmt:

  • Bits 11–10: gleich bleiben
  • Bits 9–6: CA-Feld
  • Bits 5–2: gleich bleiben
  • Bit 1: Ergebnis des durch das CB-Feld spezifizierten Tests
  • Bit 0: Ergebnis des durch das CC-Feld spezifizierten Tests

Der nächste Befehl befindet sich im gleichen 1K-Wort-Bereich wie der aktuelle Befehl, da die Bits 11–10 gleich bleiben. Das CA-Feld bestimmt den 64-Wort-Block innerhalb der Region. Die Anweisung befindet sich innerhalb des neuen Blocks in derselben 4-Wort-Gruppe wie die aktuelle Anweisung im aktuellen Block, da die Bits 5–2 gleich bleiben. Die Felder CB und CC bestimmen dann, welcher Befehl der 4 die Kontrolle erhält.

Vereinfachung

Diese Beschreibung wurde vereinfacht. Es ignoriert die folgenden Funktionen.

  • Das Modell 40 kann im CPU-Modus oder im Kanalmodus laufen. Die Beschreibung bezieht sich nur auf den CPU-Modus.
  • Wenn der Mikrobefehl nicht im funktionalen Verzweigungsformat vorliegt und das CD-Feld 1 oder 3 ist, ist Bit 1 der nächsten Adresse immer 0. In diesem Fall bestimmen die Werte der CD- und CB-Felder eine aus einer Menge von Steuerleitungen zu erhöhen .

Verweise