DE2264346A1 - Mehrstufiges selbstanpassendes decodiersystem fuer binaere mikrobefehle - Google Patents
Mehrstufiges selbstanpassendes decodiersystem fuer binaere mikrobefehleInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/22—Microcontrol or microprogram arrangements
- G06F9/226—Microinstruction function, e.g. input/output microinstruction; diagnostic microinstruction; microinstruction format
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/22—Microcontrol or microprogram arrangements
- G06F9/223—Execution 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·
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:
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
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·
25 195 - MB/Hf -22-
309827/0906
Claims (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 des309827/0906verbleibenden Feldes dem Befehl spezifischer MikrooperationeneSteuereinrichtung 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/Hf309827/0906Leerseite
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)
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)
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 |
-
1971
- 1971-12-29 IT IT33063/71A patent/IT944468B/it active
-
1972
- 1972-12-26 US US00317894A patent/US3812464A/en not_active Expired - Lifetime
- 1972-12-27 CA CA159,880A patent/CA964376A/en not_active Expired
- 1972-12-28 JP JP48004356A patent/JPS4874943A/ja active Pending
- 1972-12-29 GB GB6014972A patent/GB1380750A/en not_active Expired
- 1972-12-29 DE DE2264346A patent/DE2264346A1/de active Pending
- 1972-12-29 FR FR7246982A patent/FR2170645A5/fr not_active Expired
Cited By (1)
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 |