DE2264346A1 - Mehrstufiges selbstanpassendes decodiersystem fuer binaere mikrobefehle - Google Patents

Mehrstufiges selbstanpassendes decodiersystem fuer binaere mikrobefehle

Info

Publication number
DE2264346A1
DE2264346A1 DE2264346A DE2264346A DE2264346A1 DE 2264346 A1 DE2264346 A1 DE 2264346A1 DE 2264346 A DE2264346 A DE 2264346A DE 2264346 A DE2264346 A DE 2264346A DE 2264346 A1 DE2264346 A1 DE 2264346A1
Authority
DE
Germany
Prior art keywords
bits
operations
micro
signals
code
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE2264346A
Other languages
English (en)
Inventor
Giancarlo Dr Ing Collina
Giancarlo Dipl Ing Tessera
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Bull HN Information Systems Italia SpA
Original Assignee
Honeywell Information Systems Italia SpA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Honeywell Information Systems Italia SpA filed Critical Honeywell Information Systems Italia SpA
Publication of DE2264346A1 publication Critical patent/DE2264346A1/de
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/226Microinstruction function, e.g. input/output microinstruction; diagnostic microinstruction; microinstruction format
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/223Execution means for microinstructions irrespective of the microinstruction function, e.g. decoding of microinstructions and nanoinstructions; timing of microinstructions; programmable logic arrays; delays and fan-out problems

Description

Mehrstufiges selbstanpassendes Decodiersystem für binäre Mikrobefehle
Die vorliegende Erfindung bezieht sich auf binäre Datenverarbeitung say st eme, bei welchen die verschiedenen auszuführenden logischen und arithmetischen Operationen durch eine Gruppe von in einem in diesen Systemen enthaltenen Pestwertspeicher gespeicherten Mikrobefehlen gesteuert werden, d.h. auf sogenannte mikroprogrammierte Rechner, wie sie nachstehend näher definiert und erläutert sind·
Bekanntlich werden binäre elektronische Rechner konstruiert und gebaut, um eine vorbestimmte Gruppe von Befehlen auszuführen, zum Beispiel:
Binäre Summe, binäre Subtraktion, Dezimalsumme, Dezimalsubtraktion, Einschreiben in ein Register aus einer Speicherzelle, Verschieben, Vergleichen usw·
Diese Befehle stehen nur dem Programmierer zur Verfügung, der beim Aufstellen der Arbeitsprogramme für den Rechner diese Befehle verwenden muß, ohne die Art und Weise in Betracht zu ziehen, wie sie durch den Rechner ausgeführt werden»
-2-
309827/0906
-2- 22S4346
Praktisch umfassen diese Befehle, was den Rechner betrifft, eine Folge von Gruppen aus Grundoperationen, wie beispielsweise das Bilden vorbestimmter Schaltungen eines logischen Netzwerks oder die Übertragung von passenden elektrischen Signalen durch das elektrische Netzwerk·
Biese Grundoperationen werden als "Mi kr ο op er at ionen11 bezeichnet, wobei die Gruppe aus zugleich, d.h. in einem einzigen Grundzeitintervall ausgeführten MikroOperationen als "Mikrobefehl" bezeichnet wird*
Die Folge von zum Ausführen eines einzigen Programmbefehls benötigten Mikrobefehlen ist ein "Mikroprogramm11·
Bis vor einigen Jahren war die Weise der Ausführung solcher Mikrooperationen, Mikrobefehle und Mikroprogramme von der Art abhängig, nach welcher der Rechner konstruiert und gebaut war, d.h. sie war von den Bauelementen, der sogenannten "Hardware" des Rechners abhängig· Mit anderen Worten wurde die zwischen den Programmbefehlen und den Mikrooperationen zu ihrem Ausführen notwendige Wechselbeziehung durch den räumlichen Aufbau der Steuereinheit des Rechners bestimmt und konnte deshalb nicht verändert werden, ohne diesen räumlichen Aufbau, d»h· die Beschaltung und die logischen Bestandteile der Steuereinheit des Rechners zu verändern»
Jedoch sind im Verlaufe der letzten Jahre Versuche unternommen worden, den Rechner anpassungsfähiger als zuvor und es dadurch möglich zu machen, verschiedene Gruppen von Maschinenbefehlen nach den Wünschen verschiedener Benutzer auszuführen, wobei man selbstverständlich innerhalb der Grenzen der durch die verfügbare Gruppe von
-3-309827/0906
Mikrooperationen zulässigen materialeigenen Leistungsfähigkeiten blieb· Dies gestattet es beispielsweise, daß der Rechner den Betrieb verschiedener Rechner nachahmt oder daß die Gruppe von Befehlen über die bisherigen Grenzen hinaus erweitert wird·
Zum Erreichen dieses Zieles war es ohne Änderung der Hardware der Maschine notwendig, die durch, den Aufbau der Maschine bedingte Eins-zu-Eins-Wechselbeziehung zwischen Befehlen und Mikrooperationen aufzugeben und diese Wechselbeziehung auf mittelbare Weise herzustellen durch Verwendung einer Speichereinrichtung, die in der Lage ist, in Auswirkung eines Befehls eine Gruppe von je einer Mikrooperation entsprechenden Informationen zu liefern, wobei diese Informationsgruppe in einer Speichereinrichtung gespeichert ist und die Ausführung der entsprechenden Mikrooperationen steuern kann·
Durch Modifizieren des Inhalts dieser Speichereinrichtung ist es möglich, die Gruppe von Mikrooperationen unterschiedlich zu gestalten und als Ergebnis die Ausführung der Befehlegruppe verschiedener Maschinensprachen ohne Veränderung der Schaltungsanordnung des Rechners zu erzielen·
Deswegen sind moderne Rechner nach diesen Kriterien gebaut und umfassen zerstörungsfreie modifizierbare, als Festwertspeicher (ROS) bezeichnete Speicher? die die zum Steuern der Mikrooperationen geeignete Information enthalten· Der Pestwertspeicher speichert eine Vielzahl von Wörtern, die je eine Vielzahl von Bits umfassen, wobei jeder Maschinenbefehl eine Adresse für den Festwertspeicher ist, die hintereinander das Auslesen eines oder mehrerer Wörter
309827/0906
des Festwertspeichers bewirkt·
Die Bits jedes ausgelesenen Wortes des Pestwertspeichers bestimmen einen auszuführenden Mikrobefehl, d.h. eine Gruppe von Mikrooperationen.
Der einfachste Weg der Verwendung dieser Information besteht darin, jedes Bit zum Steuern einer einzigen Mikrooperation zu bestimmen· So ist als Beispiel der Binärwert einer Bitstelle EINS, wenn die entsprechende liikrooperation ausgeführt werden soll, und im gegenteiligen Fall NULL· Da die Anzahl der MikroOperationen, die in einem Rechner ausgeführt werden können, in der Größenordnung von mehreren Hundert liegt, würde eine Eins-zuEins-Übereinstimmung zwischen Bits und MikroOperationen Wörter von übertriebener Länge und demzufolge Festwertspeicher von hohem Aufnahmevermögen und hohen Kosten erfordern.
Die Konstrukteure haben deshalb auf verschiedenen Wegen versucht, das zum Enthalten der benötigten Mikrobefehle erforderliche Aufnahmevermögen des Festwertspeichers erheblich zu verringern·
Eine erste Methode besteht darin, die wechselseitig in sich exklusiven MikroOperationen derart zu gruppieren, daß keine zwei von ihnen in ein und demselben Zeitintervall ausgeführt werden können, und jeden Mikrobefehl jeder Gruppe in codierter Form darzustellen· Auf diese Weise wird eine beachtenswerte Verringerung der Länge dee Wortes des Festwertspeichers erzielt, ohne die Möglichkeit zu beeinträchtigen, den Inhalt des Festwertspeichers den spezifischen Erfordernissen des Benutzers anzupassen,
309827/0906
da die Eins-zu-ELns-Übereinstimmung zwischen Bitgruppen und Gruppen aus wechselseitig exklusiven MikroOperationen aufrechterhalten wird und demzufolge keine Veränderung in den Schaltungen erforderlich ist·
Dies kann jedoch ungenügend sein«.
Um eine weitere Verringerung der Länge der Mikrobefehle zu erzielen, können die Mikrooperationen in Gruppen von äußerlich wechselseitig exklusiven Mikrooperationen, d»h· so unterteilt werden, daß keine zwei von ihnen in demselben Mikrobefehl, zumindest nicht durch einen bestimmten Benutzer, ausgeführt werden könneno Dies erfordert jedoch ein spezialisiertes Decodiernetzwerk, d.h· spezialisierte Hardware, so daß die Fähigkeit, die in dem Pestwertspeicher enthaltenen Mikroprogramme zu modifizieren, begrenzt wird. Auf diese Weise geht die Anpassungsfähigkeit des Rechners teilweise verloren.
Ein anderer Weg zum Beheben der vorerwähnten Mängel ist das sogenannte "Selbstanpassende Decodieren" ("adaptive decoding"), nach welchem eine vorbestimmte Anzahl von Bits jedes Wortes zum Auswerten der übrigen Bits des gleichen Wortes verwendet wird« Diese Bits wirken als "Funktionscode" zum Bestimmen der Bedeutung und der Funktion der übrigen Bitse Jedesmal, wenn der Funktionscode modifiziert wird, erlangen die übrigen Bits eine andere Bedeutung, d©h· sie werden zum Steuern einer anderen Gruppe von Mikrooperationen bestimmte Diese übrigen Bits steuern unmittelbar die Gruppe von Mikrooperationen, ohne eine weitere Decodierung zu benötigen« Dadurch besteht für jede durch einen Funktionecode bestimmte Gruppe von Mikrooperationen eine beachtliche Freiheit im Modifizieren der
309827/0906
Mikrobefehle, ohne auf die Schaltungsanordnung des Rechners einzuwirken, wobei gleichzeitig eine beachtliche Verringerung der Länge der Mikrobefehlswörter erreicht wird.
Es ist selbstverständlich, daß, je größer die Anzahl der durch den Punktionscode steuerbaren Mikrooperationsgruppen, doh. je größer der Informationsinhalt des Punktionscode ist, die Möglichkeit einer Modifizierung des Mikrobefehls um so größer und der Rechner um so vielseitiger ist·
Deshalb sind zu diesem Zweck Punktionscodes mit einer hohen Anzahl Bits erforderlich» Somit wird entweder, sofern das Wort eine feststehende Länge hat, die Anzahl der unmittelbar die Mikrooperationen steuernden Bits verringert oder es ist, wenn die Anzahl der Steuerbits feststehend ist, ein längeres Wort erforderlich.
Die vorliegende Erfindung behebt die vorerwähnten Mangel durch Verwendung eines Decodiersystems, das als "Mehrstufiges selbstanpassendes Decodieren" ("multilevel adaptive decoding") bezeichnet werden kann, bei welchem zusätzlich zu dem vorerwähnten Punktionscode eine ala ,"Punktionscode-Ergänzung" ("function code complement") bezeichnete Erweiterung davon verwendet wird»
Die Erfindung beruht auf der Überlegung, daß die Steuerung eines Mikrobefehls nicht immer die gleiche Anzahl von Bits erfordert, sondern im Gegenteil durch Steuerwörter von unterschiedlicher Länge erzielbar ist· Andererseits muß der Pestwertspeicher Wörter der erforderlichen MarLmallänge enthalten können. Somit bleibt, wenn eine
309827/0906
Anzahl Mikrobefehle eine geringere Länge der Wörter erfordert, eine Anzahl Bits unbenutzte
Um die für den Festwertspeicher erforderliche maximale Wortlänge auf das Mindestmaß herabzusetzen, verwendet man, erfindungsgemäß einen Funkti©nscode von veränderbarer Länge anstelle eines von feststehender Länge, d«h. man ordnet die die größere Anzahl von MikroOperationen erfordernden Mikrobefehle den kürzeren Funktionscoden zu, während den aus einer geringeren Anzahl von Mikrooperationen bestehenden Mikrobefehlen längere Funktionscodes zugeordnet werden0 Auf diese Weise wird die erforderliche Maximallänge des Wortes verringerte Außerdem ist klar, daß, wenn der Funktionscode eine veränderbare Länge hat, eeine effektive Länge stets bestimmt werden muß«,
Dies läßt sich am leichtesten erzielen durch Teilen des Funktionscode in zwei Teile, und zwar einen eigentlichen Funktionscode mit einer feststehenden Länge gleich der für alle Funktionscodes erforderlichen Mindestlänge und eine Funktionscode-Ergänzung von veränderbarer Längeβ Der eigentliche Funktionscode ermöglicht nach seinem Decodieren die Auswertung der folgenden Bits entweder als Steuerbits für die Mikrooperationen oder als Funktionscode-Ergänzungsbits, die seinen Informationsinhalt vermehren und durch weiteres Decodieren die Auswertung der übrigen Bits ermöglichen« Dieser Decodiervorgang, der in zwei gesonderten Decodierphasen stattfindet, rechtfertigt die dem Decodiersystem nach der Erfindung zuerkannte Bezeichnung "Mehrstufiges selbstanpassendes Decodieren"*
Mit anderen Worten betrifft die Erfindung eine Steuereinrichtung für Datenverarbeitungsanlagen zum Speichern
309827/0906
von Mikroprogrammbefehlen und zum Liefern von Signalen zum Steuern von Mikrooperationen, mit Speichereinrichtungen zum Speichern einer Vielzahl von Mikroprogrammbefehlen, einem den Speichereinrichtungen zugeordneten Ausleseregister zum vorübergehenden Speichern eines der Mikroprogrammbefehle in Auswirkung eines Au siesesignals und einer ersten Decodiereinrichtung zum Becodieren eines ersten Feldes des Mikroprogrammbefehls in eine erste Vielzahl von Bedingungssignalen·
Bei einer solchen Steuereinrichtung wird nun erfindungsgemäß vorgeschlagen, daß das erste Feld eine veränderbare Länge hat und daß von vorbestimmten Bits des ersten Feldes funktionell abhängige Auswerteinrichtungen vorgesehen sind, um die Länge des ersten Feldes zu bestimmen und die Bits des verbleibenden Feldes in Auswirkung der Bedingungssignale spezifischen Mikrooperationen zuzuordnen«
Weitere Einzelheiten und Vorteile der Erfindung sind nachstehend anhand eines in der Zeichnung dargestellten bevorzugten Ausführungsbeispiels näher beschrieben· Es zeigen:
Fig· 1 ein schematisches Blockdiagramm eines mikroprogranimierten Binärrechners mit einem logischen Netzwerk für die mehrstufige selbstanpassende Decodierung nach der Erfindung,
Fig» 2 ein logisches Blockdiagramm einer bevorzugten Ausführungsform dlaees selbstanpassenden Decodierwerke s nach der Erfindung,
Fig· 2a ein logisches Diagramm einer ersten Ausführungsform eines Decodierers,
-9-309827/0906
Pig· 2b ein logisches Diagramm einer zweiten Ausführungsform eines De codierers·
Pig» 1 ist ein schematisches logisches Blockdiagramm
eines Datenverarbeitungssystems, bei welchem als Steuereinrichtung ein zerstörungsfreier Pestwertspeicher verwendet wird·
Dieses System umfaßt eine Zentraleinheit 1, eine Vielzahl von Peripheriegeräten 2 zur Informationsverarbeitung wie Kartenleser, Lochstanzer, Drucker, Band- oder Platteneinheiten zur magnetischen Aufzeichnung und einen Hauptspeicher 3·
Die Zentraleinheit kann funktionell in vier Abschnitte
unterteilt werden, und zwar:
ELn Steuergerät zum Steuern der Übertragung von Information, Signalen und Befehlen zwischen den Peripheriegeräten und der zentralen Verarbeitungseinheit, doh» einem "Üngabe-Ausgabe-Datenverarbeit er" 4 j
ein Steuergerät 5 zum Steuern des Hauptspeichers 3, d.h· eine "Speichersteuerung11;
eine "Logikeinheit11 6 zur logischen Verarbeitung der Information ;
ein Mikroprogrammiersteuergerät 7, das die Ausführung der Polge von MikroOperationen durch die zur Zentraleinheit
gehörenden übrigen Einheiten steuerte
Das Mikroprogrammiersteuergerät 7 umfaßt seinerseits:
-10-
309827/0906
Einen Festwertspeicher (ROS) 9;
ein Adressenregister 8 für den Pestwertspeicher (ROSAS); ein Pestwertspeicher-Ausgaberegister 10 (ROS-R); ein erstes Decodiernetzwerk 11 und ein erstes logisches Bedingungsnetzwerk 12;
ein zweites Decodiernetzwerk 13 und ein zweites logisches Bedingungsnetzwerk 14·
Die Zentraleinheit 1 ist an die Peripheriegeräte und an den Hauptspeicher mit Hilfe von Eingabe-Ausgabe-Kanälen 15 und 16 angeschlossene
Ein entsprechender Kanal 17 ist vorgesehen, um Information und zwar Adressen aus der Logikeinheit 6 dem Mikroprograinmiergerät 7 zuzuführen, während ein durch die Leitergruppe 18 dargestellter waterer Kanal benutzt wird, um Information und zwar Mikrobefehle aus dem Mikroprogrammiersteuergerät 7 der Logikeinheit 6 zuzuführen.
Der Hauptdatenverarbeiter (Zentraleinheit) ist außerdem mit geeigneten Taktgebereinheiten, den nötigen Speiseeinheiten und mit einem Bedienungspult versehen zum Einleiten der Operationen und zum Herstellen besonderer logischer oder elektrischer Zustände· Diese sämtlichen Einheiten sind nicht dargestellt»
Die Arbeitsweise des Rechnersystems ist bekannte In Auswirkung von geeigneten, beispielsweise mit Hilfe von Tasten an dem Bedienungspult eingegebenen Startbefehlen wird eine passende Speicherstelle des Pestwertspeichers adressiert und demzufolge das Register 10 mit einem Mikrobefehl geladen. Das diesen Mikrobefehl darstellende Binärwort wird
309827/0906
über die logischen Bedingungsnetzwerke 12 und 14 in die Logikeinheit 6 übertragen und bewirkt so eine entsprechende Gruppe von Mikrooperationenο
Ein !Peil des den Mikrobefehl darstellenden Binärwortes wird durch den Decodierer 11 und gegebenenfalls außerdem durch den Decodierer 13 decodiert, der eine Gruppe Bedingungssignale liefert, die die logischen Bedingungsnetzwerke 12 und 14 entsprechend modifizieren·
Die Gruppe aus den die Mikrooperationen steuernden Signalen ist demzufolge von dem Teil des Binärwortes abhängig, der als "Punktionscode" bezeichnet wird«
Die Befehlssignale für die Mikrooperationen bringen die Logikeinheit 6 in einen vorbestimmten Zustand, wonach die erforderlichen Operationen wie beispielsweise das Auslesen von Daten oder Programmbefehlen aus dem Hauptspeicher 3 oder einem der Peripheriegeräte oder eine beliebige interne Operation ausgeführt werden·
Zur gleichen Zeit lädt die Logikeinheit 6 über den Kanal 17 das Register 8 mit einer weiteren Adresse für den Festwertspeichero Dadurch wird eine neue Gruppe von Steuersignalen für die Mikrooperationen auf die Logikeinheit 6 gegeben, die die Ausführung der neuen Gruppe von Operationen steuert·
Diese Operationen werden durch nicht dargestellte, gewöhnlich durch die Logikeinheit gesteuerte Taktwerke 2eitge— steuert·
Eine weitere detaillierte Beschreibung des Systems liegt
-12-
309827/0906
außerhalb des Erfindungsbereiches, der auf die Arten der Verarbeitung der Mikrobefehlwörter zum Erzielen einer Gruppe von Steuersignalen für die Mikrooperationen aus ihnen und auf die Beschreibung des diesbezüglichen logischen Netzwerks begrenzt ist· Deswegen wird Pig. 1 erneut unter Bezugnahme auf das Decodiernetzwerk für die Mikrobefehle in Betracht gezogen. Der in dem Register 10 enthaltene Mikrobefehl umfaßt N+1 Bits, die als in die folgenden drei Gruppen 0 bis J, KbisL, M bis N einschließlich unterteilt angesehen werden können»
Die Bits 0 bis J bilden den Punktionscode und werden auf die entsprechenden Eingänge eines Decodierers 11 gegeben, der mit seinen Ausgängen das logische Bedingungsnetzwerk 12 steuerte
Die übrigen Bits von K bis N werden auf die entsprechenden Eingänge des logischen Bedingungsnetzwerks 12 gegeben, das diese Bits gemäß dem das Bedingungsnetzwerk steuernden Punktionscode spezifischen Mikrooperationen zuordnete
Der vorstehend beschriebene Aufbau der Mikrobefehle und das im wesentlichen aus dem Decodierer 11 und dem Bedingungsnetzwerk 12 bestehende logische Auswertnetzwerk sind bekannt und beispielsweise in dem USA-Patent 3 560 933 beschrieben·
Jedoch sieht die vorliegende Erfindung zusätzlich eine als die sogenannte Funktionscode-Ergänzung bezeichnete Untergruppe aus Bits von K bis L vor, die nicht nur auf die Eingänge des Bedingungsnetzwerks 12, sondern außerdem zusammen mit einigen durch den Decodierer 11 decodierten Signalen auf die Eingänge eines zweiten Decodierers 13
309827/0906
gegeben werden, dessen Ausgänge ihrerseits ein zweites Bedingungsnetzwerk 14 steuern.
Die übrigen Bits M bis N werden auf das Bedingungsnetz^" werk 12 und außerdem auf das durch den Decodierer 13 gesteuerte zweite Bedingungsrietzwerk 14 gegeben»
Demzufolge können diese Bits entsprechend dem Funktionscode und der Funktionscode-Ergänzung MikroOperationen zugeordnet werden, die nicht zu den dem Bedingungenetzwerk 12 zugeordneten gehören.» Auf diese V/eise wird der Informationsinhalt des Mikrobefehls vermehrt ohne Vermehrung seiner Länge·
Fig· 2 zeigt das bereits anhand von Fig» 1 beschriebene mehrstufige selbstanpassende Decodiersystem der Klarheit halber in weiteren Einzelheiten0
Im Beispiel nach Fig· 2 wird angenommen, daß die Mikrobefehle 8 Bits umfassen, von welchen die ersten beiden den Funktionscode und die nächsten beiden, sofern sie durch den Funktionscode als solche gekennzeichnet sind, eine Funktionscode-Ergänzung bilden»
Wie aus Fig· 2 ersichtlich, wird der auszuführende Mikrobefehl aus dem Festwertspeicher ausgelesen und in das Festwertspeicherregister 10 eingeladen»
Die in dem Register 10 enthaltenen ersten beiden Bits vom Rang 0 und 1 werden auf den Decodierer 11 gegeben, der mit vier Ausgängen versehen ist, und zwar je einem für jede der vier möglichen Oodekombinationen der beiden Bits· Im vorliegenden Beispiel wird das gesamte Informations fassungs-
-14-
309827/0906
vermögen des Zwei-Bit-Punktionscode ausgenutzte In der Praxis kann der Informationainhalt eines Mehrbit-Punktionscode nicht völlig ausgenutzt werden, um den Decodierer zu vereinfacheno
Pig. 2a veranschaulicht eine mögliche Ausführungsform eines Decodiernetzwerka bei Verwendung von logischen Elementargattern. Es besteht aus vier UND-Gattern 21, 22, 23» 24 mit je zwei Eingängen und zwei NO-Invertern 25 und 26·
Die Eingänge I1 und I2 dea Decodierers sind unmittelbar an die beiden Eingänge des UND-Gatters 21 und an den Eingang der Inverter 25 bzw· 26 angeschloasen»
Die Ausgänge der Inverter 25 und 26 sind an die Eingänge des UND-Gatters 22 angeschlossen., Die Eingänge des UND-Gatters 23 sind an den Eingang I.. bzw. den Ausgang des Inverters 26 angeschlossen, während die Eingänge des UND-Gatters 24 an den Eingang I2 bzw· an den Ausgang des Inverters 25 angeschlossen sind.
Die Ausgänge der UND-Gatter 21 bis 24 sind die Ausgänge O1, Op,0,, (K des Decodierers. Es ist sofort nachprüfbar, daß jede Kombination des auf die Eingänge I1, Ip gegebenen Binärcodes an einem Einzelausgang einen Binärpegel 1 liefert·
Der Zwei-Bit-Eingangscode ist ein Punktionacode, wobei die unterschiedlichen Ausgangssignale je einem Punktionsbefehlssignal zugeordnet werden können, das auf das Bedingung snetzwerk einwirkt und die den übrigen Bits des Mikrobefehls zugeordnete Operation bestimmt·
309827/0906
Im vorliegenden Beispiel kann "beispielsweise der Code "11", der an dem Ausgang O^ ein Befehlssignal entstehen läßt* den arithmetischen Dezimaloperationen zugeordnet sein; der Code "01", der am Ausgang Q2 ein Befehlssignal erzeugt, kann den arithmetischen Binäroperationen zugeordnet sein; Gode "10", der am Ausgang 0, ein Befehlssignal entstehen läßt, kann den logischen Operationen zugeordnet sein; und Code "00", der am Ausgang 0. ein Befehlssignal erzeugt, kann den übrigen Operationen zugeordnet sein·
Nun sind gemäß Pig» 2 die Ausgänge 0^, O2, 0, an Leiter 31, 32, 33 angeschlossen, die im weiteren als "Verteilerleitungen" bezeichnet sind» Diese Leiter verteilen die verschiedenen Bedingungssignale auf die Eingänge des ersten Bedingungsnetzwerks 12, das aus der in dem mit 12 bezeichneten gestrichelten Rechteck enthaltenen Gruppe von UND-Gattern gebildet ist«
Das Bedingungsnetzwerk nimmt außerdem über die im weiteren als "Förderleitungen" bezeichneten Leiter 34 bis 39 die Mikrobefehl-Bits (von 2. bis 7·) verkörpernde Signale auf, die durch das Bedingungsnetzwerk ausgewertet und durch als "Sammelleitungen" bezeichnete leitungen in die einzelnen Einheiten übertragen werden zur Ausführung der durch diese Bits gesteuerten Mikrooperationen»
Als Beispiel sei hier die "Verteilerleitung 31 in Betracht gezogen· Der durch diese Verteilerleitung übertragene Befehl öffnet die UND-Gatter 40 und 41, um die an den Förderleitung en 34 und 35 vorhandenen (das 2ο und 3. Mikrobefehl-Bit verkörpernden) elektrischen Signale auf den Verbindungsleitungen 141 und 42) zu übertragen· Diese Verbin-
309827/0906
dungsieitungen können an die Befehlseingänge der arithmetischen lezimaleinheit angeschlossen sein und je nachdem, ob an der einen oder anderen Verbindungsleitung ein Befehlssignal vorhanden ist, werden die Summier- oder die Subtraktionsoperation abwechselnd ausgeführt. Mit anderen Worten wertet der Punktionscode mit Hilfe des an der Verteilerleitung 31 vorhandenen Signals das 2. und 3<» Bit als Befehlssignale für die Summier- und Subtrahier-Dezimalmikrooperationen aus·
Im Falle des vorliegenden Beispiels können, da angenommen wird, daß eine Summier- und eine Subtrahieroperation durch die gleiche arithmetische Einheit nicht zugleich ausgeführt werden kann, diese Mikrobefehle (Mikrooperations-Befehle) in codierter Form dargestellt werdene Fcifelich sind die Verbindungsleitungen 141 und 42 an den Eingang eines mit dem in Fig. 2a dargestellten Decodierer übereinstimmenden Decodierers 43 angeschlossen, dessen Eingänge die Dezimaloperationen des Summierens, Subtrahierens, Multiplizierens bzw. Dividierens befehlen könnene
Um eine arithmetische Operation zu vollziehen, werden ein Operand und ein Operator benötigt» Deshalb sorgt der Funktionscode über das Signal an der Verteilerleitung 31 für das Auswerten der auf die Förderleitungen 36 und 37 gegebenen 4· und 5o Mikrobefehl-Bits und der 6e und 7. Bits (an den Förderleitungen 38 und 39) als Adressen der Register, in welchen der Operand bzw. der Operator gespeichert sind© Die Auswertung erfolgt, indem über die Verteilerleitung 31 die UND-Gatter 44 bis 47 geöffnet werden, um auf den Verbindungsleitungen 48 bis 51 die diese Bits darstellenden, das Auslesen des Inhalts der adressierten Register steuernden Signale in die arithmetische Einheit zu
309827/0906
übertragen* Nötigenfalls kann die Steuerung mit Hilfe geeigneter Decodierer erfolgen»
Es leuchtet ein, daß weitere "besonders zu der durch den Funktionscode bestimmten Funktion in Beziehung stehende Grundoperationen unmittelbar durch die Verteilerleitung 31 gesteuert werden können, wie es durch die durch den Pfeil 131 dargestellte Erweiterung des Leiters 31 veranschaulicht ist»
In gleicher Weise liefert bei Betrachtung der Verteilerleitung 32 der einer "binären arithmetischen" Operation zugeordnete Funktionsoode ein Signal auf der Verteilerleitung 32, das die UND-Gatter 52 und 53 öffnet, um auf den Verbindungsleitungen 54 und 55 die das 2o und 3» Bit des Mikrobefehls verkörpernden Signale zu übertragen. Diese Signale bestimmen die Art der auszuführenden Binäroperation (Addieren, Subtrahieren, Multiplizieren, Dividieren) und steuern nach dem Decodieren ihre Ausführungo
Zur gleichen Zeit werden das 4» bis 7» Mikrobefehl-Bit durch die UND-Gatter 56 bis 59 als Adressen für den Operanden und Operator ausgewertet und auf die Sammelleitungen 48 bis 51 übertragen» Mit Hilfe des gleichen Leiters 32 können wie durch den Pfeil 132 angedeutet weitere besonders zu der arithmetischen Binärfunktion in Beziehung stehende Operationen gesteuert werden·
Völlig gleichartig ist die Arbeitsweise eines zu den logischen Operationen in Beziehung stehenden Befehlssignals an der Verteilerleitung 33» das mit Hilfe der UND-Gatter 61 bis 66 das 2· und 3o Bit des Mikrobefehls als Indikatoren für die Art der auszuführenden logischen Funktion
-18-
309827/0906
(UND, ODER, Exklusiv ODKR, Vergleich) und die übrigen Bits als Adressen der Daten auswertet, mit welchen operiert werden soll»
An dieser Stelle sei bemerkt, daß die vorstehend beschriebene Auswertung der Mikrobefehl-Bits durch den Funktionscode und die Auswertung der übrigen Bits mit Hilfe des Funktionscode zum gegenwärtigen Stande der Technik gehören»
Um die vorliegende Erfindung jedoch zu verstehen, müssen ausserdem die zu dem "weitere Operationen" bestimmenden Funktionscode in Beziehung stehenden, durch ein am Ausgang 0. des Decodierers 11 vorhandenes Signal erzeugten Wirkungen in Betracht gezogen werden. Der das Ausgangssignal von Q. weiterleitende Leiter 60 wird nicht als Verteilerleitung benutzt, sondern als ein Signal, das das Auswerten einer vorbestimmten Anzahl von Bits (im vorliegenden Beispiel das 2» und 3* Bit) als Funktionscode-Ergänzung ermöglicht·
Die Leiter 34 und 35, die die diese Bits verkörpernden Signale weiterleiten, sind nicht nur an das erste Bedingungsnetzwerk 12, sondern außerdem an den zweiten Decodierer 13 angeschlossen, der durch das an dem Leiter 60 vorhandene Signal auf eine bestimmte Bedingung eingestellt wird»
Fig« 2b zeigt eine mögliche Ausführungsform eines solchen auf eine bestimmte Bedingung eingestellten Decodierers. Er weicht von dem in Fig· 2a dargestellten Decodierer nur dadurch ab, daß die UND-Gatter drei Eingänge haben und daß der dritte Eingang durch das Signal am Leiter 60 gesteuert
309827/0906
wirdβ Demzufolge tritt an einem der Ausgänge Or bis Og nur dann ein decodiertes Signal auff wenn an dem Leiter ein Freigabesignal vorhanden ist·
Die Signale an den Ausgängen Or bis Og geben die auszuführende Funktion an. Beispielsweise kann ein Signal 0,-einen unmittelbar adressierten Sprung des Mikroprogramms oder des Programms steuern; ein Signal am Ausgang O^ kann einen mittelbar adressierten Sprung ebenfalls des Programms oder des Mikroprogramms steuernj ein Signal am Leiter O^ kann das Arbeiten des Hauptspeichers entweder zum Lesen oder zum Schreiben ermöglichen und ein Signal am Ausgang Oq kann eine Eingabe-Ausgabe-Operation in oder aus einem Peripheriegerät ermöglichen·
Die Ausgänge O1- bis Og sind an entsprechende Verteilerleitungen 67» 68, 69 und 70 angeschlossen, wobei die an diesen Verteilerleitungen vorhandenen durch ein zweistufiges Decodieren des Punktionscode anä ύατ die Funktionscode-Ergänzung verkörpernden Bits 2 und 3 erhaltenen Signale das Auswerten der übrigen Mikrobefehl-Bits ermöglichene
Als Beispiel sei hier die die unmittelbar adressierte Sprungfunktion steuernde Verteilerleitung 67 in Betracht gezogene
In diesem Falle werden die übrigen Mikrobefehl-Bits (4ο bis 7.) als die Adresse des nächsten auszulesenden Mikrobefehls ausgewertete Dadurch ermöglicht ein an der Verteilerleitung 67 vorhandenes Signal die Übertragung der an den Förderleitungen 36 bis 39 vorhandenen Signale über
309827/0906
eine der Einfachheit halber als Ganzes durch den Block 75 dargestellte Gruppe von UND-Gattern auf die den Festwertspeicher unmittelbar adressierenden Verbindungsleitungen 71 bis 74o
Im Falle eines mittelbar adressierten Sprunges, d»h. eines an der Verteilerleitung 68 vorhandenen Signals, werden die übrigen Mikrobefehl-Bits als eine der Adresse des vorhandenen Mikrobefehls hinzuzufügende Adressenergänzung ausgewertet. Deshalb ermöglicht das Signal an der Verteilerleitung 68 die Übertragung der an den Förderleitung en 36 bis 39 vorhandenen Signale über die UND-Gatter des Blocks 76 auf die Verbindungsleitungen 77 bis 80r die ihrerseits einen Zähler steuern zum Errechnen der effek· tiven Adresse für den Festwertspeicher*
In gleicher Weise öffnet die Verteilerleitung 69, sofern die auszuführende Operation eine Schreib- oder Lesespeicheroperation ist, die UND-Gatter 80 und 81 und ermöglicht das Auswerten der Bits 4. und 5» als die Adresse des Speicherregisters, in welchem die effektive Adresse der Speicherstelle enthalten ist. Das 6. Bit wird über das UND-Gatter 82 als das Bit ausgewertet, das angibt, ob die auszuführende Operation ein Schreiben oder Lesen ist, während dem 7. Bit eine weitere spezifische Funktion zugeordnet werden kann. Beispielsweise kann bei einem Hauptspeicher mit einer anderen Parallelität als der der Maschine das Bit angeben, ob die Schreib- oder Leseoperation im Falle eines "Zwei-Byte"-Speichers das erste oder das zweite "Byte" betrifft.
Sofern die auszuführende Funktion eine Datenübertragung in oder aus einem Peripheriegerät ist, öffnet die Verteiler-
-21-309827/0906
leitung 70 die Gruppe der durch den Block 83 dargeatellten UND-Gatter und ermöglicht die Auawertung des 4. und 5» Bits als Adressencode des betreffenden Peripheriegeräts» Die übrigen Bits können die Kichtung der Datenübertragung oder sonstige Bedingungen angeben»
Die durch die von dem Decodierer 13 gelieferten Signale gesteuerten logischen Bedingungselemente bilden das in Pig. 1 durch den mit 14 bezeichneten Block dargestellte Bedingungsnetzwerk·
Es ist selbstverständlich, daß das Diagramm nach Figo 2 einfach als Beispiel anzusehen und nur auf eine klare Verständlichmachung der Erfindung gerichtet ist· Die Abänderungen, die, ohne den Bereich der Erfindung zu verlassen, an diesem Diagramm vorgenommen werden und für spezifische Konstruktions- oder Betriebsmerkmale des Rechners erwünscht sein können, sind in der Tat mannigfaltig»
Das Wesentliche der Erfindung besteht nicht in der beschriebenen Anordnung der Schaitungseinrichtungen, sondern in der Tatsache, daß das Decodieren des Mikrobefehls durch Auswerten eines zweiten Teiles von ihm mit Hilfe eines ersten Teiles von ihm mit veränderbarer Länge erfolgt·
Patentansprüche!
25 195 - MB/Hf -22-
309827/0906

Claims (1)

  1. Patentansprüche :
    My Steuereinrichtung für Datenverarbeitungsanlagen zum Speichern von Mikroprogrammbefehlen und zum Liefern von Signalen zum Steuern von Mikrooperationen, mit Speiehereinrichtungen zum Speichern einer Vielzahl von Mikroprogrammbefehlen, einem den Speiehereinrichtungen zugeordneten Ausleseregister zum vorübergehenden Speichern eines der Mikroprogrammbefehle in Auswirkung eines Auslesesignals und einer ersten Decodiereinrichtung zum Decodieren eines ersten Peldes des Mikroprogrammbefehls in eine erste Vielzahl von Bedingung ssignalen, dadurch gekennzeichnet, daß das erste PeId eine veränderbare Länge hat und daß von vorbestimmten Bits des ersten Peldes funktionell abhängige Auswerteinrichtungen vorgesehen sind, um die Länge des ersten Peldes zu bestimmen und die Bits des verbleibenden Peldes in Auswirkung der Bedingungssignale spezifischen Mikrooperationen zuzuordnen.
    2« Steuereinrichtung nach Anspruch 1, dadurch gekennzeichnet, daß das erste PeId des Mikroprogrammbefehls aus einem Punktionscode und mindestens einer Punktionscode-Ergänzung besteht sowie erste Auswerteinrichtungen und HilfSauswerteinrichtungen vorgesehen sind, von welchen die ersten Auswerteinrichtungen funktionell von den Bits des Punktionscodes abhängig sind, um die Bits der Punktionscode-Ergänzung entweder der Aufgabe des Befohlene einer Gruppe von Mikrooperationen oder der Punktion des Steuerns der Hilfsauswerteinriohtungen zuzuordnen zwecks Zuordnung der Bits des
    309827/0906
    verbleibenden Feldes dem Befehl spezifischer Mikrooperationene
    Steuereinrichtung nach Anspruch 2, dadurch gekennzeichnet, daß die Auswert einrichtung en aus einer an das Ausleseregister und an die erste Decodiereinrichtung angeschlossenen ersten logischen Bedingungseinrichtung, um in Auswirkung der ersten logischen Bedingungssignale das Feld der Funktionscode-Ergänzung in eine Vielzahl von zweiten BedingungsSignalen umzuwandeln, und aus einer an das Ausleseregister sowie an die zweite Decodiereinrichtung angeschlossenen zweiten logischen Bedingungseinrichtung bestehen, um die Bits des verbleibenden Feldes in spezifische Befehlssignale für die Mikrooperationen umzuwandeln·
    195 - MB/Hf
    309827/0906
    Leerseite
DE2264346A 1971-12-29 1972-12-29 Mehrstufiges selbstanpassendes decodiersystem fuer binaere mikrobefehle Pending DE2264346A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
IT33063/71A IT944468B (it) 1971-12-29 1971-12-29 Sistema di decodifica adattiva a piu livelli per microistruzioni

Publications (1)

Publication Number Publication Date
DE2264346A1 true DE2264346A1 (de) 1973-07-05

Family

ID=11236299

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2264346A Pending DE2264346A1 (de) 1971-12-29 1972-12-29 Mehrstufiges selbstanpassendes decodiersystem fuer binaere mikrobefehle

Country Status (7)

Country Link
US (1) US3812464A (de)
JP (1) JPS4874943A (de)
CA (1) CA964376A (de)
DE (1) DE2264346A1 (de)
FR (1) FR2170645A5 (de)
GB (1) GB1380750A (de)
IT (1) IT944468B (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2713685A1 (de) * 1976-03-26 1977-12-08 Tokyo Shibaura Electric Co Mikroprogrammgesteuertes datenverarbeitungssystem

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4001787A (en) * 1972-07-17 1977-01-04 International Business Machines Corporation Data processor for pattern recognition and the like
US4484260A (en) * 1981-12-17 1984-11-20 At&T Bell Laboratories Stored-program control machine
US4697250A (en) * 1983-08-22 1987-09-29 Amdahl Corporation Flexible computer control unit
JPH05334075A (ja) * 1992-04-13 1993-12-17 Nec Corp ディジタルプロセッサ
US6016539A (en) * 1997-11-03 2000-01-18 Teragen Corporation Datapath control logic for processors having instruction set architectures implemented with hierarchically organized primitive operations

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE2713685A1 (de) * 1976-03-26 1977-12-08 Tokyo Shibaura Electric Co Mikroprogrammgesteuertes datenverarbeitungssystem

Also Published As

Publication number Publication date
US3812464A (en) 1974-05-21
GB1380750A (en) 1975-01-15
JPS4874943A (de) 1973-10-09
FR2170645A5 (de) 1973-09-14
CA964376A (en) 1975-03-11
IT944468B (it) 1973-04-20

Similar Documents

Publication Publication Date Title
DE2322674C3 (de) Mikroprogramm-Steuereinrichtung
DE1499722C2 (de) Einrichtung zur Modifizierung von Informationswörtern
DE2555963C2 (de) Einrichtung zur Funktionsmodifizierung
DE2318069C2 (de) Mikroprogrammierte Rechenanlage mit Erweiterung von Steuerfunktionen mittels festverdrahteter logischer Matrix
DE3126878C2 (de) Mikroprogramm-Steuerschaltung zum Ausführen eines aus einem Steuerspeicher in einem Quellenregister aufgenommenen Mikrobefehls
DE2617436C2 (de)
DE2813128A1 (de) Mikroprogrammspeicher
DE1774296B2 (de) Restruktuierbare Steuereinheit für elektronische Digitalrechner
DE2364408B2 (de) Schaltungsanordnung zur Adressierung der Speicherplätze eines aus mehreren Chips bestehenden Speichers
DE2847934A1 (de) Datenverarbeitungseinrichtung mit einem mikrobefehlsspeicher
DE1275800B (de) Steuerwerk fuer datenverarbeitende Maschinen
DE1269393B (de) Mikroprogramm-Steuerwerk
DE2359920A1 (de) Adressiereinheit fuer einen gemeinschaftsspeicher
DE2551741A1 (de) Datenverarbeitungseinrichtung
DE1499730A1 (de) Einrichtung zur Speicherauswahl
DE2433436A1 (de) Verfahren und anordnung zum mehrfachverzweigen des programms in einem digitalen computer
DE1922304A1 (de) Datenspeichersteuergeraet
DE1925427A1 (de) Datenuebertragungsvorrichtung zum UEbertragen von Daten zwischen Informationsspeichern
DE2264346A1 (de) Mehrstufiges selbstanpassendes decodiersystem fuer binaere mikrobefehle
DE1499191B2 (de) Elektronische einrichtung fuer eine datenverarbeitungsanlage
DE3344340C2 (de) Datenverarbeitungsanordnung zum Durchführen von Mikrobefehlen
DE1499224C3 (de) Datenverarbeitungsanlage mit Kellerspeichereinrichtungen
DE2362238A1 (de) Elektronische datenverarbeitungsanordnung
DE2747304B2 (de) Einrichtung zur Mikrobefehlssteuerung
DE2365778A1 (de) Rechner

Legal Events

Date Code Title Description
OD Request for examination
OHW Rejection