CIRCUITS IN THE CONTROL PART OF A MICROPROGRAMMABLE PROCESSOR FOR DIRECT HARDWARE EXECUTION OF SELECTED INSTRUCTIONS

Abstract: 1. Arrangement in the control unit of a microprogram-controlled processor for the direct hardware-controlled execution of particular instructions, comprising a control storage (2) control storage adress registers (3, 4, 28), a micro instruction operation register (6), and an instruction decoder (7), characterized in that the control words (HCW), contained in the control storage (2) and associated with instructions to be directly executed, comprise a mode control bit (MCB) which, if set, causes a mode latch (8) to be switched to a hardware control mode prior to instruction execution, in which mode the bits of the control word read from the control storage, instead of being fed to the instruction decoder (7), as in the case when the mode control bit (MCB) is not set, are fed as direct control signals (K1 to K5) to the data flow control elements.

Description: Einrichtung im Befehlswerk eines mikroprogrammgesteuerten Prozessors zur direkten hardwaregesteuerten Ausführung bestimmter Instruktionen Die Erfindung betrifft eine Einrichtung im Befehlswerk eines mikroprogrammgesteuerten Prozessors zur direkten hardwaregesteuerten Ausführung bestimmter Instruktionen nach dem Oberbegriff des Anspruchs 1. Die Erfindung findet Verwendung in mikroprogrammgesteuerten Prozessoren, bei denen der Operationscode der Makroinstruktionen als Adresse zur Ansteuerung eines Steuerspeichers dient, in dem sowohl eine Operationscodetabelle als auch die Mikroinstruktionen gespeichert sind, die zur Ausführung der Makroinstruktionen benötigt werden. Der Operationscode der Makroinstruktion wird durch die Operationscodetabelle im allgemeinen in eine Adresse umgesetzt, die sich ebenfalls auf den Steuerspeicher bezieht und unter der im Steuerspeicher die erste Mikroinstruktion einer Mikroroutine gespeichert ist, die zur Ausführung der betreffenden Makroinstruktion abgearbeitet wird. Die aus dem Steuerspeicher ausgelesenen Mikroinstruktionen, auch allgemein als Steuerwörter bezeichnet, gelangen meist in ein Mikroinstruktions-Operationsregister, werden dort zwischengespeichert und einem Instruktionsdecodierer zugeführt, der die Steuerwörter mit den Instruktionszykluszeiten verknüpft und auf diese Weise zykluszeitbezogene Steuersignale erzeugt, die dann die Datenfluss-Steuerelemente, beispielsweise Setzeingänge für Register, Torschaltungen und dgl., steuern. Die Erzeugung der Folgeadresse der jeweils nächsten Mikroinstruktion einer Routine kann auf verschiedene Weise vorgenommen werden, beispielsweise durch Modifizierung der im Steuerspeicher-Adressregister befindlichen Adresse in einem +1-Modifizierer, oder sie kann ganz einfach in den Mikroinstruktionen selbst mitgeführt werden. In der ersten und zweiten Computergeneration bestand die Steuereinheit, auch Befehlswerk genannt, im allgemeinen aus festverdrahteter Schaltkreislogik. Nachteilig waren dabei die Unübersichtlichkeit des Aufbaus, die Schwierigkeit von nachträglichen Änderungen und insbesondere die hohen Schaltkreiskosten. Generelle Uberlegungen zur Verbesserung der Steuerwerke von Prozessoren führten zu einer systematischen speichergerechten Struktur der Steuerlogik, die dann als Mikroprogrammierung bzw. Mikroprogrammsteuerung bezeichnet wurde. M. V. Wilckes hat diese Technik erstmals 1951 vorgestellt: "The best way to design an automatic calculation machine", Manchester University Computer Inaugural Conference, Manchester, England, 1951, Seite 16 sowie 1969 in "The goals of interest in microprogramming - a literature survey", Computing Surveys, Band 1, September 1969, Seiten 139 bis 145. Logisch stellt eine Mikroprogrammroutine ein Unterprogramm zur Ausführung einer Maschinen- oder Makroinstruktion dar. Da das Mikroprogramm seinerzeit in Festwertspeichern eingeschrieben wurde, deren Ausgänge direkt auf Hardwareebene fest zugeordnete Steuerfunktionen ausübten, die Ausgangleitungen, also zum Beispiel Setzleitungen für Register, Leitungen für Torsteuersignale usw., waren und ein Bit in einer Mikroinstruktion an dieser Stelle kennzeichnete, dass die Leitung für diese Mikroinstruktion aktiv werden sollte, wurde die Struktur einer solchen Mikroinstruktion wegen ihrer Länge (Grössenordnung 100 Bits und mehr) horizontal genannt. Ihr Hauptnachteil ist die schlechte Ausnutzung des Mikroprogrammspeichers. Der Grossteil der Speicherkapazität bleibt ineffektiv, da das einzelne Steuersignal nicht für jedes Mikrowort oder Steuerwort benötigt wird und die entsprechenden Speicherbits wegen ihres uncodierten Charakters keine Information tragen. Das andere Extrem eines Mikroinstruktionsformates ist das vertikale. Es ist dem einer normalen Makroinstruktion sehr ähnlich. Die Funktion der Instruktion wird im Operationscode hochcodiert zusammengefasst. Der Rest der Instruktion besteht im wesentlichen aus Adressfeldern, da die Mikroinstruktion im vertikalen Format, im Gegensatz zum horizontalen, auch interne Arbeitsregister adressieren kann. Die Mikroinstruktion ist damit komplexer; ihr Funktionsgehalt entspricht dem von mehreren, sonst seriell ablaufenden horizontalen Instruktionen. Diese komplexere Funktion muss nun wieder in entsprechende Einzelschritte zerlegt werden, was bei bisher ausgeführten Maschinen im allgemeinen eine schaltkreis-verdrahtete Steuerlogik übernommen hat. Die Mikroinstruktion dient jetzt nur dem Abruf für eine Hardware-Ab laufs teuerung, die in Operationscode und andere Informationen decodiert und in eine Folge von Ele mentarschritten umsetzt. Es wird durch diese hierarchische Struktur also eine Mehrfachausnutzung der Ablaufsteuerung erzielt. Der Steuerspeicher des vertikalen Formats kann langsamer sein, da die Ausführung wegen der dazwischengeschalteten Steuerlogik länger dauert. Nachteilig beim streng vertikalen Format ist die starke Serialisierung der Steuervorgänge, die sich auf die Verarbeitungsgeschwindigkeit eines Prozessors insgesamt auswirkt. Einen Kompromiss aus horizontalem und vertikalem Format stellt eine Mikroinstruktion mit codierten Instruk tionsfeidern dar, deren Format als quasi-horizontal bezeichnet werden kann. Der Gesamtoperationscode ist hierbei in Unterfunktionen aufgeteilt, die an einzelne Bitgruppen des Formats streng gekoppelt sind. Zusätzlich können noch direkte Steuerbits bzw. ähnliche Funktionselemente eingefügt werden. Es werden mit einer Instruktion auch mehr Funktionen parallel abgedeckt als beim vertikalen Format, wodurch die Instruktionslänge wieder zu Bitzahlen von 50 und menr anwachsen kann. Die Decodierung ist jetzt gegenüber dem vertikalen Format einfacher und schneller. Eine Kombination zwischen einer direkt hardwaregesteu erten Maschine und einer interpretativ, d.h. mikropro grartuTigesteuerten Maschine, ist im IBM Technical Disclosure Bulletin, Bd. 14, Nr. 1, Juni 1971, Seite 298 beschrieben. Um die Verarbeitungsgeschwindigkeit von mi kroprogrammgesteuerten Prozessoren zu erhöhen, ohne jedoch die Zahlen der Schaltkreise wesentlich zu erhöhen, wird sowohl für die Makro- als auch die Mikroinstruktionen das gleiche Instruktionsformat verwendet. Dieses erlaubt einen Schaltkreisentwurf des Instruktiossteuerwerkes derart, dass einfache Makroinstruktionen für die Durchführung einfacher Funktionen, wie beispielsweise "Lade Register", "Speichere Register im Hauptspeicher" und dergleichen, direkt ausgeführt werden können. Komplexere Makroinstruktionen, wie beispielsweise Gleitkomma-Operationen oder dezimalarithmetische Funktionen, werden jedoch interpretativ ausgeführt, allerdings mit Hilfe von Mikroinstruktionen, die ebenfalls direkt ausführbar sind, wobei sie die gleichen Schaltkreise verwenden. Bei den direkt ausführbaren Mikroinstruktionen handelt es sich aber über die zuvor genannten direkt ausführbaren einfachen Makroinstruktionen, die ebenfalls direkt im Benutzerprogramm auftreten. Ein Benutzerprogramm besteht daher aus einer Folge von einfachen und komplexen Makroinstruktionen. Wenn die Befehle ausgeführt werden sollen, wird zuvor durch eine Prüfung des Operationscodes festgestellt, ob die gerade zu verarbeitende Instruktion eine solche ist, die direkt ausgeführt werden kann oder eine solche ist, die durch andere direkt ausführbare Instruktionen interpretiert werden muss. In Abhängigkeit von der Prüfung wird ein Schalter eingestellt, der die Instruktionssteuereinheit entweder auf die Mikro- oder Makrobetriebsart einstellt. Bei komplexen Makroinstruktionen wird eine Verzweigung zu einer Interpretationseinheit vorgenommen, die eine normale Mikroprogrammsteuerung mit einem Steuerspeicher und einer Instruktionsfolgesteuerung ist Da alle Makroinstruktionen nun von der Instruktionsausführungs-Hardware ausgeführt werden können, werden die komplexen Makroinstruktionen, ähnlich wie die einfachen Makroinstruktionen, von der Interpretationseinheit zu der Befehlsausführungseinheit übertragen. Der Nachteil einer solchen Anordnung besteht hauptsächlich darin, dass die Freizügigkeit und Flexibilität beim Entwurf der Prozessorarchitektur und des Befehlssatzes eingeschränkt ist, da zu sehr darauf geachtet werden muss, dass die einfachen Makroinstruktionen zu den komplexen Makroinstruktionen passen und umgekehrt. Ausserdem geht durch das Prüfen des Operationscodes auf komplexe oder einfache Makroinstruktionen Verarbeitungszeit verloren. Es ist daher die Aufgabe der vorliegenden Erfindung, ein Steuerwerk für Prozessoren anzugeben, das sowohl flexibel hinsichtlich des Entwurfs von Befehlssätzen ist, als auch eine hohe Verarbeitungsgeschwindigkeit bei reduziertem Schaltkreisaufwand des Instruktionsdecodierers aufweist. Gelöst wird diese Aufgabe durch die im Hauptanspruch genannten Merkmale. Vorteilhafte Weiterbildungen und Ausgestaltungen des Gegenstandes der Erfindung sind den Unteransprüchen zu entnehmen. Durch die Erfindung wird somit der Vorteil erreicht, dass für einen mikroprogrammgesteuerten Prozessor, der bestimmte Instruktionen direkt schaltkreisgesteuert asfüren kann, volle Entwurfsflexibiiität hinsichtlich des Befehlssatzes besteht und ausserdem für die Ausführung dieser bestimmten Instruktionen der Instruktionsdecodierer mit geringerem Aufwand an Logikkreisen realisierbar ist. Im folgenden wird ein Ausführungsbeispiel der Erfindung anhand der beiliegenden Figuren erläutert. Es zeigen: Fig. 1 das Blockschaltbild eines mikropro grammgesteuerten Prozessors mit direk ter hardwaregesteuerter Ausführung be stimmter Befehle mittels Einzelsteuer wörter, Fig. 2 ein Signal-/Zeitdiagramm zur Darstellung des Betriebsablaufs in dem Prozessor nach Fig. 1, Fig. 3 eine Prinzipdarstellung des Aufbaus der Steuerwörter, Fig. 4 eine Prinzipdarstellung eines anderen Aufbaus der Steuerwörter, Fig. 5 eine Prinzipdarstellung einer Steuer wortbelegung im Steuerspeicher bei Ein zelwortsteuerung, Fig. 6 ein Blockschaltbild eines mikroprogramm gesteuerten Prozessors mit direkter Aus führung direkter Instruktionen mittels Mehrfachsteuerwörter, Fig. 7 ein Signal-/Zeitdiagramm zur Darstellung des Betriebsablaufs in dem Prozessor nach Fig. 6, Fig. 8 eine Darstellung des Aufbaus eines Steu erwortes bei Mehrfach-Steuerwortbetrieb, Fig. 9 eine Prinzipdarstellung des in dem Pro zessor nach Fig. 6 verwendeten Steuer speicher-Adressenregisters, Fig. 10 eine Darstellung der Belegung des Steu erspeichers bei Mehrfach-Steuerwortbe trieb, Fig. 11 eine Darstellung zur Erläuterung der verwendeten Torschaltungen und Fig. 12 ein Blockschaltbild des im Prozessor nach Fig. 6 verwendeten Makrozyklus zählers. Fig. 1 zeigt einen Teil des Steuerwerks eines mikro progarnrflgesteuerten Prozessors, der über einen zusätzlichen Betriebsmodus verfügt, in dem er bestimmte Funktionen direkt hardwaregesteuert verarbeiten kann. Zu diesen direkt hardwaregesteuerten Funktionen zählen die Instruktionsphasen (I-Phasen) sowie bestimmte Ausfüh rungsphasen (E-Phasen) von Instruktionen. Im Hauptspeicher (MS) 1 sind in üblicher Weise die Be--tzerprogramme und Daten gespeichert. Die Nakroin- strurtionen des Benctzerprogramms gelangen über einen Satz von Torschaltungen 12 und 13 in ein Makroopera- ticr.sregister (M-OP-REG) 5. Dieses Register verfügt über ein Speicherfeld flir den Operationscode OP sowie über zwei Adressenfelder für die Adressen ADR1 und ADR2 Bei der mikroprogrammgesteuerten Ausführung von Makroinstruktionen, die konventionell erfolgt und somit nicht ausführlich erläutert werden muss, gelangt der Operationscode gleichzeitig mit seiner Einspeicherung in das Makrooperationsregister 5 über eine Torschaltung 10 in das Steuerspeicher-Adressregister (CSAR) 3 und adressiert im Steuerspeicher (CS) 2 eine Speicherstel le, in der sich die Adresse der ersten Instruktion einer Mikroroutine befindet, mit deren Hilfe die Makroin- struktion verarbeitet wird. Die nachfolgenden Instruktionen, aus denen eine Mikroroutine besteht, werden mit Hilfe eines Adressmodifizierers 4, der die jeweils im Steuerspeicher-Adressregister 3 befindliche Adresse modifiziert und über die Torschaltung 11 in das Steuerspeicher-Adressregister 3 überträgt, aus dem Steuerspei- cher 2 ausgelesen. Die aus dem Steuerspeicher 2 ausgelesenen Mikroinstruktionen gelangen nacheinander in ein Mikroinstruktions-Operationsregister (#-OP-PEG) 6 und werden dort über Torschaltungen 19 und 20 in den Operationsdecodierer (DEC) 7 übertragen, der an seinem Ausgang die Steuersignale Ki abgibt, die über (nicht dargestellte) Datenfluss-Steuertore die gewünschten Mikrooperationen steuern. Die Zuordnung der Datenfluss-Steuersignale zu den entsprechenden Instruktionszykluszei.- ten Ti erfolgt über nicht dargestellte Zykluszähler, die den einzelnen Instruktionszykluszeiten entsprechende Signale über die Tore 18 und 20 zum Operationsdecodierer 7 übertragen. In-Fig. 1 ist schematisch dargestellt, wie die Ausgangssignale CC der nicht dargestellten Zyklus zähler einerseits für die Mikroinstruktionen ij und andererseits für die Makroinstruktionen M zu dem Operatlonsdecodierer 7 übertragen werden. Der Signalverlauf für die an sich bekannte Mikroprogramm-Steuerung ist in Fig. 1 mit gestrichelten Linien dargestellt. Das besondere des in Fig. 1 dargestellten Befehlssteuerwerkes ist, wie bereits eingangs erwähnt wurde, ein zusätzlicher Steuermodus, der diesem Befehlssteuerwerk gestattet, bestimmte Funktionen direkt hardwaregesteuert ablaufen zu lassen. Instruktionen, für die diese direkte Hardwaresteuerung aktiviert werden soll, enthalten ein auf binär 1 gesetztes Modussteuerbit MCB in der ersten Bitposition 0 des Instruktionsformats. Ist dieses Modussteuerbit dagegen auf binär 0 gesetzt, dann ist dieser besondere Betriebsmodus deaktiviert und das Steuerwerk arbeitet im bekannten Mikroi.nstruktionsbe- trieb. Ein auf binär 1 gesetztes Modussteurbit MCB hat die Wirkung, dass ein Modusschalter (ML) 8 in den Hardware Steuerbetrieb eingestellt wird, in welchem er an seinem Ausgang das entsprechende Signal HCM für den Hardware Steuerungsbetrieb abgibt. Dieses Signal schaltet die Torschaltungen 14 bis 18 durch bzw. bereitet deren Durchschaltung vor. Dadurch wird dem Operationsdecodierer 7 vorgegeben, ob Mikroinstruktionen oder direkt ausgeführte Makroinstruktionen ablaufen sollen. Bei der direkten Ausführung von Makroinstruktionen wird der Steuerspeicher 2 für die Ausgabe von Mikroinstruktionen nicht benötigt. Er wird jedoch, wie üblich, mit dem Operationscode OP der Makroinstruktion als Adresse über die Torschalt^:ng 10 und das Steuerspeicher-Adressenregister 3 adre.#siert. Im Hardware-Steuerbetrieb HCM wird an der adressierten Stelle im Steuerspelcner anstelle der i:ikroinstruktion ein Hardware-Steuerwort HCW ausgelesen und in das Mikroinstruktions-Operationsregi- ster 6 übertragen. Wie Fig. 1 erkennen lässt, besteht ein Hardware-Steuerwort jeweils aus den Bits 0 bis 15, wobei hervorzuheben ist, dass diese Bits direkte Steuerbits oder Steuersignale K1 bis K5 des Datenflusses sind Als direkte Steuersignale sind sie bezüglich ihrer Erzeugung sehr schnelle Steuersignale - da sie nicht, wie der Operationscode einer normalen Mikroinstruktion in einem mehrstufigen Logikprozess eines Operationsdecodie rers decodiert werden müssen -, so dass sich für die Steuerung der ersten Zyklen, z. B. der Zyklen T1 bis T3, wie Fig. 1 zeigt, längerer Instruktionen eignen. Direkt oder teilweise direkt gesteuerte Makroinstruktionen können somit schneller ausgeführt werden als nur rein mikroprogrammgesteuert ausgeführte Makroinstruktionen. Ausserdem lässt Fig. 1 erkennen, dass der Operationsdecodierer 7 einen einfacheren und preisgünstigeren Aufbau hat, da die ersten Steuersignale K1 bis K5 von insgesamt N Steuersignalen ohne Beteiligung des Operationsdecodierers 7 erzeugt werden. Die restlichen Steuersignale K6 bis KN werden vom Operationsdecodierer 7 aus der Decodierung des Operationscodes der Makroinstruktion, verknüpft mit den Zykluszeiten Ti des Makrozyklus zählers (MCC) 31 erzeugt. In Fig. 2 ist schematisch die Ausführung einer Instruktion im Einzelsteuerwortmodus des in Fig. 1 dargestellten Steuerwerkes gezeigt. Die Makroinstruktion INS A kommt aus dem Hauptspeicher (MS) 2 und wird in das Makrooperationsregister 5 geladen. Parallel dazu wird der Operationscode dieser Makroinstruktion in das Steuerspeicher-Adressenregister 3 gesetzt, und er adressiert dort ein Hardware-Steuerwort HCW. Gleichzeitig wird der Makrozykluszähler MCC auf TO eingestellt. Dieses findet, wie Fig. 2 zeigt, im Zyklus CYC1 statt. Im Anschluss daran läuft der erste Zyklus der Instruktion INS A ab, und zwar gesteuert von der Zykluszeit TO des Makrozykluszählers MCC. Im Zyklus CYC2 wird das Hardware-Steuerwort HCW A in das Mikroinstruktions-Operationsregister 6 gesetzt. Dort bleibt es während der gesamten Laufzeit der Makroinstruktion gespeichert. Das Format eines Hardware-Steuerwortes HCW zeigt Fig. 3. Das Bit 0 dient als Modussteuerbit MCB, das im Falle einer binären 0 das Steuerwerk in den normalen Mikrobefehls-Steuerbetrieb und im Falle einer binären 1 in den direkt hardwaregesteuerten Betrieb einstellt. Die Bits 1 bis 5 stellen die Steuersignale K1 bis K5 dar, wie sie zur Zykluszeit T1 des Makrozykluszählers MCC benötigt werden. Die Bits 6 bis 10 entsprechen den gleichen Steuersignalen, jedoch zur Zykluszeit T2 des Makrozykluszählers. Die Bits 11 bis 15 schliesslich sind der Zykluszeit T3 des Makrozykluszählers zugeordnet. Die genannten Steuersignale werden jeweils an den Ausgängen der Torschaltungen 14, 15 und 16 zu den entspre wenden Taktzeiten T1 bis T3 zur Verfügung gestellt. Fig. 11 erläutert die in den Fign. 1, 6 und 9 gewählte Darstellungsweise der verwendeten Torschaltungen. Im Beispiel der Fig. 11 bestehen die Leitungen B und C jeweils aus drei indixiduellen Leitungsadern b1 bis b3 bzw. cl bis c3. Jeder dieser Adern ist eine Torschaltung G zugeordnet, mit deren einem Eingang sie verbunden ist. Der jeweils zweite Eingang führt zu einer Taktsteuerleitung, an der ein den jeweiligen Zykluszeiten T1 oder T2 entsprechendes Signal anliegt. Für die zykluszeitgerechte Erzeugung der Steuersignale K1 bis K5 kann beispielsweise eine Einrichtung dienen, wie sie in Fig. 4 dargestellt ist. Nachdem die Einrichtung durch das Modussteuerbit MCB der Bitposition 0 des aus dem Steuerspeicher 2 ausgelesenen Hardware-Steuerwortes in den Hardware-Steuerbetrieb eingestellt wurde, und zwar mit Hilfe des Modusschalters 8, der an seinem Ausgang nun das Signal HCM für den Hardware-Steuerungsbe trieb erzeugt, können zur Zykluszeit T1 die Bits in den Positionen 1 bis 5 des Mikroinstruktions-Operationsregisters 6 über die Torschaltungsgruppe 14 an die Datenfluss-Steuertore angelegt werden. Im darauffolgenden Zyklus T2 des Makrozykluszählers MCC werden dann die in den Bitpositionen 6 bis 10 des Mikroinstruktions-Operationsregisters über die Torschaltungsanordnung 15 und danach zur Zykluszeit T3 die in den Bitpositionen 11 bis 15 des Mikroinstruktions-Operationsregisters 6 befindlichen Steuersignale über die Torschaltungsanordnung 16 zu den Steuertoren des Datenflusses des Prozessors übertragen. Im unteren Teil von Fig. 4 ist eine zykluszeitbezogene Darstellung der Steuersignale Kl bis K5 zu sehen, aus welcher zu erkennen ist, dass beispielsweise das Steuersignal K5 zu den Zykluszeiten T1 und T2 des Makrozykluszählers inaktiv (Bit = binär 0), zur Zykluszeit T3 jedoch aktiv (Bit = binär 1) ist. Die zuvor erläuterte Anordnung lässt sich mit Vorteil dann verwenden, wenn nur eine relativ kleine Anzahl von Steuersignalen erzeugt werden muss. Der Vorteil liegt hierbei darin, dass das benötigte Steuerwort für jede direkt auszuführende Instruktion sich in der Operationscodetabelle 26 im Steuerspeicher 2 befindet. Aufgrund der festen Verknüpfung zwischen dem Operationscode der Instruktion und der Adressierung der Operationscodetabelle bliebe dieser Platz ansonsten im Steuerspeicher 2, wie Fig. 5 zeigt, unbelegt, was für eine wirkungsvolle Ausnutzung der Speicherkapazität des Steuerspeichers 2 nachteilig wäre. Beim Nulti-Steuerwortbetrieb, der zweiten Betriebsart, die bei der direkten Instruktionsausführung möglich ist, wird zur Zykluszeit CYC1, wie Fig. 7 zeigt, analog zur ersten Betriebsart der Operationscode aus dem Makrooperationsregister 5, also dem Operationsregister für die Makrobefehle, das dem Hauptspeicher 1 nachgeschaltet ist, der Operationscode OP der Makroinstruktion in den Steuerspeicher gesetzt. Das adressierte Hardware-Steuerwort wird im Zyklus CYC2, also zur Zykluszeit T1 des Makrozykluszählers MCC in das Mikroinstruktions-Operationsregister 6 übernommen. Das Hardware-Steuerwort besteht wiederum aus dem Modussteuerbit MCB sowie weiteren 15 Bits, welche die Steuersignale Kl bis K15 bilden, wie die Fign. 6 und 8 zeigen. Diese 16 Steuersignale steuern gemeinsam mit den weiteren N-16 Steuersignalen, die vom Operationsdecodierer 7 aus der Decodierung des Operationscodes der Makroinstruktion gewonnen werden, den gesamten Datenfluss des Prozessors. Die in den Fign. 1 und 6 dargestellte Aufteilung der direkt und indirekt (das soll hier heissen: durch Decodierung von OP) erzeugten Steuersignale ist nicht bindend und kann anhand der tatsächlichen Gegebenheiten eines realen Prozessors optimiert werden. Wie Fig. 7 weiter zeigt, stellt bei Verarbeitung der Instruktion INS A das erste ausgelesene Hardware-Steuerwort (1. HCW) den Zustand der Steuersignale K1 bis K15 im Augenblick der Zykluszeit T1 des Makrozykluszählers MCC dar. Das zweite Hardware-Steuerwort (2. HCW) spiegelt den Zustand der Steuersignale Kl bis K15 während der Zykluszeit T2 und das dritte Hardware-Steuerwort (3. HCW) dieselben Steuersignale zur Zykluszeit T3. Die Adressenerzeugung für den Steuerspeicher 2 zum Abruf der obenerwähnten drei Hardware-Steuerwörter (1. HCW, 2. HCW, 3. HCW) geht deutlicher aus Fig. 9 hervor. Das Steuerspeicher-Adressenregister 3 besteht aus einem ersten Teil 3a zur Aufnahme der niedrigstelligen Adressbits 0 bis 7, die dem Operationscode OP entsprechen, sowie einem zweiten Teil 3b zur Speicherung der hochstelligen Adressbits 8 bis 15. Der 1 Byte breite Operationscode OP gelangt, wie bereits im Zusammenhang mit Fig. 1 erläutert wurde, vom Ausgang der Torschaltung 13 und über die Torschaltung 10 in die Bitpositionen 0 bis 7 des Steuerspeicher-Adressenregisters 3 (Teil 3a). Die zusätzlichen Operationscodebits AOC gelangen über die Torschaltung 27, die von dem Steuersignal HCM für den Hardware-Steuerungsmodus gesteuert wird, als Adressbits in die Bitpositionen 8 bis 15 des Steuerspeicher-Adressregisters (Teil 3b). Während beim Einzelsteuerwortmodus in der Operationscodetabelle 26 im Steuerspeicher 2 ausser den Startadressen der Mikroroutinen für die Ausführungsphase (E-PH) der Makroinstruktionen auch sämtliche Hardware-Steuerwörter HCW untergebracht sind, enthält im Multi-Steuerwortmodus die Codetabelle 26, wie Fig. 10 zeigt, jeweils nur die ersten Hardware-Steuerwörter 1. HCW (1), 1. HCW (2) ... neben den Startadressen für die Mikroroutinen, während die zweiten und dritten Steuerwörter 2. HCW (1), 2. HCW (2), 3. HCW (2) ... in einem anderen, durch die jeweiligen Adressen bestimmten Teil des Steuerspeichers 2 abgelegt sind. Dieses Verteilungsschema der Hardware-Steuerwörter ergibt sich daraus, dass es sich bei der aus dem Operationscode abgeleiteten Adresse für den Steuerspeicher um eine zusammengesetzte Adresse handelt, die aus dem 1 Byte breiten Operationscode mit den Hexadezimaiwerten 00 bis FF und dem Byte des zusätzlichen Operationscodes AOC mit ebenfalls einem Byte von beispielsweise hexadezimal 00 bis FF besteht. Fig. 7 zeigt nun den zeitlichen Ablauf in der Multisteuerwort-Betriebsart, bei der, ebenso wie bei der Einzel-Steuerwortsbetriebsart im Befehlszyklus CYC1 zur Zykluszeit TO der Operationscode, im gewählten Beispiel mit A bezeichnet, aus dem Hauptspeicher sowohl in das Makroinstruktions-Operationsregister 5, als auch in das Steuerspeicher-Adressenregister 3 eingelesen wird. Gleichzeitig wird diese Adresse vom Steuerspeicher-Adressdecodierer 28 decodiert und steht zur Selektion eines Steuerspeicherwortes zur Verfügung, so dass zur nächsten Zykluszeit T1 der Steuerspeicher 2 an der adressierten Stelle ausgelesen werden kann. Es sei in Fig. 7 angenommen, dass es sich um ein Hardware-Steuerwort handelt, gekennzeichnet durch ein auf 1 gesetztes b'odussteuerbit MCB. Dieses sei beispielsweise das erste Hardware-Steuerwort HCW von insgesamt dreien, die zur Ausführung der betrachteten Instruktion INS A benötigt werden. Im zweiten Instruktionszyklus CYC2 gelangt über die Torschaltung 27, gesteuert vom Hardware-Steuerungsmodussignal HCM, das erste zusätzliche Operationscodebyte AOC in das Steuerspeicher-Adressenregister 3, und zwar in den Registerteil 36. Dieses zusätzliche Operationscodebyte, gemeinsam mit dem Operationscode A, der im Steuerspeicher-Adressenreaisterteil 3a für die Dauer der Ausführung der Instruktion INS A gespeichert bleibt, bilden die neue Adresse für das Auslesen des zweiten Hardware-Steuerwortes 2. HCW, das zur Zykluszeit T2 in das Mikroinstruktions-Operationsregister gelangt. Das dritte und letzte Hardware-Steuerwort 3. HCW gelangt schliesslich zur Zykluszeit T3, wie Fig. 7 zeigt, in das Mikroinstruktions-Operationsregister. In Fig. 12 ist nun schematisch dargestellt, wie beispielsweise die Zeittaktsignale erzeugt werden, welche die Zykluszeiten TO bis TL repräsentieren. Ausserdem zeigt die Figur die Erzeugung der zusätzlichen Operationscodebytes AOC sowie des Steuersignales TO. Es handelt sich bei der in Fig. 12 gezeigten Darstellung um ein Prinzipschaltbild des Nakrozykluszählers MCC. Er besteht zunächst aus einem Impulsgenerator (PG) 22, dessen Ausgangsimpulse einen Binärzähler 21 steuern. Dieser Zähler verfügt über die Stufen 0 bis n, einen Rückstelleingang R sowie eine Ausgangsleitung 29, die den jeweiligen binären Zählerstand des Binärzählers 21 zu einem Decodierer (DEC) 23 überträgt. Die zusätzlichen Operationscodebytes AOC entsprechcn den jeweiligen binären Werten des Zählerstandes des Binärzählers 21. Das Steuersignal TO, das beispielsweise zur Steuerung der Torschaltung 30 in Fig. 6 benötigt wird, wird aus dem der Zykluszeit TO entsprechenden Ausgangssignal des Decodierers 23 durch Inversion im Inverter (I) 24 gewonnen. Die Erzeugung der zusätzlichen Operationscodebytes ist auch auf andere Weise möglich, beispielsweise dadurch, dass der Adressmodifizierer 4 hierzu mitverwendet wird und überträgt aus dem niedrigstelligen Adressbyte in das hochstellige eingesetzt werden. Die in den Fign. 1 und 6 dargestellte Schaltungsanordnung erlaubt es somit im Einzel- oder Multisteuerwort Betrieb mit dem Operationscode einer Makroinstruktion als Adresse aus einem Steuerspeicher nicht nur Mikrobefehle auszulesen, die nach Decodierung in einem geeigneten Decodierer die Steuersignale des Datenflusses eines Prozessors erzeugen, sondern auch die zuletztgenannten Steuersignale direkt abzurufen. Der Steuerspeicher 2 enthält somit in gemischter Folge Mikroinstruktionen und direkte Datenfluss-Steuersignale. Dies hat zur Folge, dass bei kurzen Makroinstruktionen, wie beispielsweise RR Instruktionen im bekannten IBM System/370 (RR = Register zu Register) nur direkte Steuersignale aus dem Steuerspeicher ausgelesen werden. Da die direkt erzeugten Steuersignale, da sie nicht aufgrund eines Decodierungsprozesses gewonnen werden, sehr schnelle Steuersignale sind, eignen sie sich besonders, um schnell benötigte Werte bei der Befehlsausführung zur Verfügung zu stellen, wie beispielsweise bei der Adressrechnung bei RX- oder SS-Instruktionen (Rx = Register zu Indexregister oder SS = Speicher zu Speicher). Instruktionen ab etwa der Länge von 4 Zykluszeiten werden mit Hilfe von gemischt erzeugten Datenfluss-Steuersignalen erzeugt, wobei die ersten, wie bereits erläutert wurde, direkt und der Rest in konventioneller Weise durch Decodierung erzeugt werden. In der reinen Software-Betriebsart werden, wie allgemein üblich, alle Steuersignale durch Decodierung der Mikroinstruktions Operationscodes gewonnen.

Claims: PATENTANSPRUCHE 1. Einrichtung in der Steuereinheit eines mikropro grammgesteuerten Prozessors zur direkten hardware gesteuerten Ausführung bestimmter Instruktionen, mit einem Steuerspeicher (2) , einer Steuerspei cheradressierung (3, 4, 28), einem Mikroinstruk tions-Operationsregister (6) und einem Instruk tionsdecodierer (7), dadurch gekennzeichnet, dass die im Steuerspeicher (2) befindlichen Steuer wörter (HCW), die direkt auszuführenden Instruk tionen zugeordnet sind, ein Kennzeichen (MCB) mit führen, das vor der Instruktionsausführung einen Schalter (8) in einen Hardware-Steuerungsbetrieb umschaltet, in welchem er die Bits des aus dem Steuerspeicher ausgelesenen Steuerworts als direk te Steuersignale (K1 bis K5) den Datenfluss-Steuer elementen unmittelbar zuführt. 2. Einrichtung nach Anspruch 1, dadurch gekennzeichnet, dass zur direkten Ausführung einer komplexeren In struktion, die eine grössere Anzahl von Steuersi gnalen (K1 bis KN) benötigt, der Operationscode (OP) der Instruktion in ein Makroinstruktions-Ope rationsregister (5) und parallel dazu in die Steu erspeicheradressierung (3, 4, 28) übertragen wird, dass ferner bei umgeschaltetem Schalter (8) während bestimmter erster Zykluszeiten (z. B. T1, T2, T3, ...) der Instruktion die Bits des aus dem Steuer speicher (2) ausgelesenen Steuerwortes (HCW) als direkte Steuersignale den Datenfluss-Steuerelemen ten unmittelbar zugeführt werden und dass während der übrigen Zykluszeiten (z. B. T4 bis TL) der In struktion aus dem Operationscode durch Decodierung im Instruktionsdecodierer (7) erzeugte Steuersi gnale (K6 bis KN) zu den Datenfluss-Steuerelementen übertragen werden. 3. Einrichtung nach Anspruch 1, dadurch gekennzeichnet, dass zur direkten Instruktionsausführung mittels eines Steuerwortes (HCW) der Operationscode (OP) der Instruktion zur ersten Zykluszeit (TO) des In struktionszyklus in an sich bekannter Weise als Adresse in das Steuerspeicher-Adressregister (3) übertragen und das adressierte Steuerwort (HCW) aus dem Steuerspeicher (2) in das Mikroinstruk tions-Operationsregister (6) eingegeben wird, dass ferner das Kennzeichen (MCB) zu dem Schalter (8) übertragen wird, so dass dieser in den Hard ware-Steuerungsbetrieb umgeschaltet wird, in dem er an seinem Ausgang ein Torsteuersignal (HCM) er zeugt, das ein oder mehrere Torschaltungen (14 bis 16) für eine Durchschaltung vorbereitet und dass schliesslich jede der Torschaltungen (14 bis 16) eine bestimmte Bitgruppe (1 bis 5, 6 bis 10, 11 bis 15) des im Mikroinstruktions-Operaticnsregi- ster befindlichen Steuerwortes während bestimmter erster Zykluszeiten (z. B. T1, T2, T3, ...) als Steuersignale (K1 bis K5) unmittelbar zu den Da tenfluss-Steuerelementen überträgt. 4. Einrichtung nach Anspruch 2, dadurch gekennzeichnet, dass zur direkten Instruktionsausführung mittels eines Steuerwortes (HCW) einer komplexeren In struktion, die eine grössere Anzahl von Steuer signalen benötigt, der Operationscode (OP) der Instruktion zur ersten Zykluszeit (TO) des Instruktionszyklus in an sich bekannter Weise als Adresse in das Steuerspeicher-Adressregister (3) übertragen und das adressierte Steuerwort (HCW) aus dem Steuerspeicher (2) in das Mikroinstruk tions-Operationsregister (6) eingegeben wird, dass ferner das Kennzeichen (MCB) zu dem Schalter (8) übertragen wird, so dass dieser in den Hardware Steuerungsbetrieb umgeschaltet wird, in dem er an seinem Ausgang ein Torsteuersignal (HCM) erzeugt, das ein oder mehrere Torschaltungen (14 bis 16) für eine Durchschaltung vorbereitet und dass schliesslich jede der Torschaltungen (14 bis 16) eine bestimmte Bitgruppe (1 bis 5, 6 bis 10, 11 bis 15) des im Mikroins truktlons-0perations regi.- ster befindlichen Steuerwortes während bestimmter erster Zykluszeiten (z. BP T1 t T2, T3, ...) als Steuersignale (X1 bis K5) unmittelbar zu den Datenfluss-Steuerelementen überträgt und dass während der übrigen Zykluszeiten (T4 bis TL) der Instruktion die übrigen Steuersignale (es16 bis KN) aus dem Operationscode, der in der ersten Zykluszeit < TO) auch in das Makroinstruktions-Operationsre- gister (5) eingegeben wurde, erzeugt werden, indem dieser aus dem Makroinstruktions-Operations- register mittels einer von dem Torsteuersignal (HCM) durchgeschalteten Torschaltung (17) zusammen mit den übrigen Zykluszeiten, die über eine, ebenfalls von dem Torsteuersignal durchgeschaltete, weitere Torschaltung (18) geleitet werden, zu dem Instruktionsdecodierer (7) übertragen werden, der an seinem Ausgang die übrigen Steuersignale (K16 bis KN) bereitstellt. 5. Einrichtung nach Anspruch 1, dadurch gekennzeichnet, dass zur direkten Ausführung einer Instruktion mit tels mehrerer Steuerwörter (1. HCW, 2. HCW, ...) der Operationscode (OP) der Instruktion zur ersten Zykluszeit (TO) des Instruktionszyklus in an sich bekannter Weise in das Steuerspeicher-Adressregi ster (3) übertragen und das erste Steuerwort (1. HCW) aus dem Steuerspeicher (2) in das Mikro instruktions-Operationsregister (6) eingegeben wird, dass ferner das Kennzeichen (MCB) zu dem Schalter (8) übertragen wird, so dass dieser in den Hardware-Steuerungsbetrieb umgeschaltet wird, in dem er an seinem Ausgang das Torsteuersignal (HCM) erzeugt, das mehrere Torschaltungen (17, 18, 27, 30) durchschaltet, dass ferner während bestimmter erster Zykluszeiten (z. B. T1, T2, T3, ...) je weils ein zusätzliches Operationscodebyte (AOC) über eine vom Torsteuersignal durchgeschaltete Torschaltung (27) in das Steuerspeicher-Adressre gister übertragen wird, so dass dieses gemeinsam mit dem im Steuerspeicher-Adressregister verblei benden Operationscode die Adresse für das Auslesen des jeweils zweiten, dritten, ... Steuerwortes (2. HCW, 3. HCW, ...) bildet, welche Steuerwörter so mit sequentiell in das Mikroinstruktions-Opera tionsregister (6) und von dort als auf die Zyklus zeiten (T1, T2, T3, ...) bezogene Steuersignale (K1 bis K15) zu den Datenfluss-Steuerelementen ge langen 6. Einrichtung nach Anspruch 2, dadurch gekennzeichnet, dass zur direkten Ausführung einer Instruktion mit tels mehrerer Steuerwörter (1. HCW, 2. HCW, ...) der Operationscode (OP) der Instruktion zur ersten Zykluszeit (TO) des Instruktionszyklus in an sich bekannter Weise in das Steuerspeicher-Adressregister (3) übertragen und das erste Steuerwort (1. HCW) aus dem Steuerspeicher (2) in das Mikroinstruktions-Operationsregister (6) eingegeben wird, dass ferner das Kennzeichen (MCB) zu dem Schalter (8) übertragen wird, so dass dieser in den Hardware-Steuerungsbetrieb umgeschaltet wird, in dem er an seinem Ausgang das Torsteuersignal (HCM) erzeugt, das mehrere Torschaltungen (17, 18, 27, 30i durchschaltet, dass ferner während bestimmter erster Zykluszeiten (z. B. T1, T2, T3, ...) jeweils ein zusätzliches Operationscodebyte (AOC) über eine vom Torsteuersignal durchgeschaltete Torschaltung (27) in das Steuerspeicher-Adressregister übertragen wird, so dass dieses gemeinsam mit dem im Steuerspeicher-Adressregister verbleibenden Operationscode die Adresse für das Auslesen des jeweils zweiten, dritten, ... Steuerwortes (2. HCW, 3. HCW, ...) bildet, welche Steuerwörter somit sequentiell in das Mikroinstruktions-Operationsr##gl- ster (6) und von dort als auf die Zykluszeiten (T1, T2, T3, ...) bezogene Steuersignale (K1 bis K15) zu den Datenfluss-Steuerelementen gelangen und dass schliesslich während der übrigen Zykluszeiten (z. B. T4 bis TL) der Instruktion die übrigen Steuersignale (K16 bis KN) aus dem Operationscode, der in der ersten Zykluszeit (TO) auch in das Makroinstruktions-Operationsregister (5) eingegeben wurde, erzeugt werden, in dem dieser aus dem Makroinstruktions-Operationsregister mittels einer von dem Torsteuersignal (HCM) durchgeschalteten Torschaltung (17) zusammen mit den übrigen Zykluszeiten, die über eine, ebenfalls von dem Torsteu ersignal durchgeschaltete, weitere Torschaltung (18) geleitet werden, zu dem Instruktionsdecodie rer (7) übertragen werden, der an seinem Ausgang die übrigen Steuersignale (K16 bis KN) bereit stellt. 7. Einrichtung nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass, mit Ausnahme der ersten Zykluszeit (TO), die für die Bereitstellung des Operationscodes (OP) für die Steuerspeicheradressierung (3, 4, 28) und für die Decodierung (5, 7) benötigt wird, die Steuersignale (K1 bis KN) gemeinsam, sowohl wäh rend bestimmter erster (z. B. T1, T2, T3, ...) als auch während der übrigen (z. B. T4 bis TL) Zyklus zeiten erzeugt werden. 8. Einrichtung nach einem oder mehreren der vorher gehenden Ansprüche, dadurch gekennzeichnet, dass der Operationscode (OP) für die gesamte Dauer der Ausführung einer direkt auszuführenden In struktion im Steuerspeicher-Adressregister (3) und gegebenenfalls im Makroinstruktions-Operationsre- gister (5) gespeichert bleibt. 9. Einrichtung nach einem der Ansprüche 5 bis 9, dadurch gekennzeichnet, dass die zusätzlichen Operationscodebytes (AOC) am Ausgang (29) eines binären Zykluszählers (21) ent nommen und zu dem Steuerspeicher-Adressregister (3) übertragen werden.

Inventors: CHILINSKI, HERBERT, DIPL.-ING., GETZLAFF, KLAUS J., ING. GRAD., HAJDU, JOHANN, ING. GRAD., RAETH, FRANZ JOSEF, DIPL.-MATH.
Applicants: IBM DEUTSCHLAND GMBH, INTERNATIONAL BUSINESS MACHINES CORPORATION
Application year: 1982
Main classification: G06F9
IPC codes: G06F9