DE2715073A1 - Mikroprogrammierte rechner-steuervorrichtung - Google Patents
Mikroprogrammierte rechner-steuervorrichtungInfo
- Publication number
- DE2715073A1 DE2715073A1 DE19772715073 DE2715073A DE2715073A1 DE 2715073 A1 DE2715073 A1 DE 2715073A1 DE 19772715073 DE19772715073 DE 19772715073 DE 2715073 A DE2715073 A DE 2715073A DE 2715073 A1 DE2715073 A1 DE 2715073A1
- Authority
- DE
- Germany
- Prior art keywords
- microinstruction
- jump
- address
- register
- memory
- 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.)
- Granted
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/26—Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
- G06F9/262—Arrangements for next microinstruction selection
- G06F9/264—Microinstruction selection based on results of processing
- G06F9/267—Microinstruction selection based on results of processing by instruction selection on output of storage
Description
, 2715Q73
Möhlstraße 37
D-8000 München 80 Tokyo Shibaura Electric Co., Ltd.,
Tel.: 089/982085-87 Kawasaki-shi, Japan Telex: 0529802 hnkld
Telegramme: ellipsoid
- 4. April 1977
Mikroprogrammierte Rechner-Steuervorrichtung
Die Erfindung betrifft eine mikroprogranunierte Steuervorrichtung
für elektronische Rechner, insbesondere eine solche Steuervorrichtung, bei welcher die Operation des Verzweigungsbzw. Sprungmikrobefehls und damit die Wirksamkeit der gesamten
Rechneranlage verbessert ist.
Bei einer mlkroprogrammierten Steuervorrichtung wird ein Arbeitsverfahren angewandt, bei dem die Befehlsausleseoperation
zum Auslesen eines Mikrobefehls für einen Mikroprogrammspeicher und die Befehlsausführungsoperation zur Ausführung
des aus dem Mikroprogramm ausgelesenen Befehls parallelgeschaltet (pipelined) werden, d.h. beide Operationen werden gleichzeitig
und parallel zueinander in einem Maschinenzyklus verarbeitet; hierdurch wird die Verarbeitungsgeschwindigkeit
erhöht. Mit anderen Worten: wenn während der Ausführung eines Mikrobefehls ein Mikroprogramm sequentiell in derselben Reihenfolge
wie ein· vorbestimmte Adresse (üblicherweise in der
binären Folge der Adresse) des Mikroprogrammspeichers ausgeführt
709840/1089
-2-
wird, wird der Inhalt der Adresse, welche auf diejenige des Mikrobefehls folgt, aus dem Mikroprogranunspeicher ausgelesen.
Zu diesem Zweck sind ein Register (RDR) zum Speichern des Mikrobefehls und ein anderes Register (RAR) zum Speichern der
Adresse zur Bezeichnung des Mikrobefehls vorgesehen, und der Inhalt des Adressenregisters RAR ist stets die Adresse nächst
derjenigen zur Bezeichnung des im Mikrobefehlsregister RDR gespeicherten Befehls, und diese Adresse wird dem Mikroprogrammspeicher
zugeführt.
Bei diesem Verfahren muß ein neuer Mikrobefehl in das Mikrobefehlsregister
RDR praktisch zum selben Zeitpunkt geladen werden, zu welchem die Adresse des nächsten, durchzuführenden
Befehls in das Adressenregister RAR geladen wird. Wenn jedoch der im Mikrobefehlsregister RDR geladene Befehl der Verzweigungs-
bzw. Sprungmikrobefehl ist, wird die Adresse des im folgenden auszuführenden Befehls erst nach Ausführung des
Sprungmikrobefehls erhalten. Dies bedeutet, daß zwei Maschinenzyklen, nämlich der Befehlsausführzyklus und der nächste
Befehlsabrufzyklus, für die Ausführung des Sprungmikrobefehls
nötig sind, wodurch die Paralleloperation (pipeline operation) unterbrochen und hierdurch die Beschleunigung der Programmverarbeitung
oder -durchführung beeinträchtigt wird.
Aufgabe der Erfindung ist damit die Schaffung einer mikroprogrammierten
Steuervorrichtung für einen Rechner, bei welcher die Operation des Sprungbefehls effektiv in einem Maschinenzyklus
ausgeführt werden kann.
Mit dieser Steuervorrichtung soll zudem die Verarbeitungsgeschwindigkeit
verbessert werden und somit die gesamte Rechneranlage wirkungsvoll betrieben werden können.
Diese Aufgabe wird bei einer mikroprogrammierten Rechner-Steuervorrichtung
mit einem Speicher zur Speicherung eines
709840/1069
Mikroprogramms, einem Adressenregister zum Speichern der Adresse des nächsten durchzuführenden Mikrobefehls und einem
Mikrobefehlsregister zum Speichern des durchzuführenden Befehls erfindungsgemäß gelöst durch einen ersten Speicher zum
Speichern der im Fall der Sprungmikrobefehle benutzten Mikrobefehle, durch eine Einrichtung zur Bestimmung, ob der im
Mikrobefehlsregister gespeicherte Mikrobefehl der Sprungmikrobefehl ist oder nicht, durch eine erste Einrichtung zur
Durchführung einer ersten Operation, in welcher der nächöte
durchzuführende Mikrobefehl entsprechend dem Inhalt im Adressenregister aus dem ersten Speicher ausgelesen, wenn die
Bestimmungseinrichtung den Sprungbefehl nicht feststellt, und in das Mikrobefehlsregister geladen wird, sowie zur
gleichzeitigen Durchführung einer zweiten Operation, bei welcher eine fortgeschaltete Adresse in das Adressenregister
geladen wird, und durch eine zweite Einrichtung zur Durchführung einer dritten Operation, bei welcher die durch den
Sprungmikrobefehl bezeichnete Sprungadresse in das Adressenregister geladen wird, wenn die Bestimmungseinrichtung den
Sprungmikrobefehl feststellt, sowie einer vierten Operation, bei welcher dann, wenn der im Mikrobefehlsregister gespeicherte
Mikrobefehl ein vorgegebener Sprungmikrobefehl ist, der aus dem zweiten Speicher ausgelesene Mikrobefehl in Synchronismus
mit der dritten Operation in das Mikrobefehlsregister geladen wird.
Erfindungsgemäß wird bei der Ausführung des Sprungmikrobefehls ein gegebener, durch die Operation des Sprungmikrobefehls als
solcher bestimmter Mikrobefehl in einem anderen Speicher gespeichert als in dem Speicher, in welchem das Mikroprogramm
gespeichert ist. Der vorbestimmte Mikrobefehl wird in das Mikrobefehlsregister geladen, wenn die Ausführung des Sprungmikrobefehls
abgeschlossen ist, und er wird In den späteren Maschinenzyklen für Sprungmikrobefehl ausgeführt, dah. im Be-
-4-709840/1069
fehlsauslesezyklus der Sprungadresse.
Im folgenden sind bevorzugte Ausführungsformen der Erfindung anhand der beigefügten Zeichnung näher erläutert. Es zeigen:
Rechner-Steuervorrichtung gemäß einer Ausführungsform
der Erfindung,
Fig. 2 ein Zeitsteuerdiagramm zur Veranschaulichung der Arbeitsweise der Vorrichtung gemäß Fig. 1 und
Fig. 5 ein Blockschaltbild einer abgewandelten Mikropr<yammlerten Steuervorrichtung gemäß der Erfindung.
Fig. 1 veranschaulicht in Blockschaltbildform eine mikroprogrammierte Steuervorrichtung gemäß der Erfindung, bei welcher
ein erster Speicher 11 zur Speicherung eines Mikroprogramms
vorgesehen ist, nämlich ein Festwertspeicher (ROM) herkömmlicher Bauart mit einer für die Speicherung eines Hauptmikroprogramms ausreichenden Kapazität von z.B. 2K Worten. Ein zweiter Speicher 12 (R(M), der an sich erfindungswesentlich ist,
speichert einen Mikrobefehl aus 8 Worten gemäß Tabelle 1.
Vorzugsweise sind die im Speicher 12 gespeicherten Mikrobefehle die am meisten und häufigsten benutzten. Mit anderen Worten:
wünschenswert ist ein Mikrobefehl (der nach dem Sprungmikrobefehl durchzuführende Mikrobefehl), der in der Sprungadresse
des bei der Mikroprogrammfolge oder -sequenz benutzten Sprungmikrobefehls gespeichert ist.
NOP
ADD SUB |
Tabelle 1 | INHALT | |
Adresse |
Keine Operation
Additionsbefehl Subtraktionsbefehl |
||
O
1 2 |
|||
709840/1069 "5"
-Z-
Portsetzung Tabelle 1
Adresse INHALT
4 | XOR |
5 | LOAD |
6 | STORE |
7 | MOVE |
AND Konjunktionsbefehl (logical pro
duction instruction) Exklusiver ODER-Befehl Ladebefehl
Speicherbefehl Übertragungsbefehl
Speicherbefehl Übertragungsbefehl
Wie aus obiger Adresse hervorgeht, besitzen die 8-Wort-Mikrobefehle
entsprechende Adressen, und sie sind in den dem Speicher 12 zugeteilten Adressen gespeichert. Genauer gesagt: der
NOP-Mikrobefehl (Keine Operation) ist in der "O11-Adresse
des Speichers 12, der ADD-Mikrobefehl (Additionsbefehl) in
der "1"-Adresse, der SUB-Mlkrobefehl (Subtraktionsbefehl) in
der Adresse "2", der AND-Mikrobefehl (Konjunktionsbefehl) in der Adresse "3", der XOR-Mikrobefehl (Exklusiver ODER-Befehl)
in der Adresse "4", der LOAD-Mikrobefehl (Befehl zum Lesen von Daten aus dem Speicher) in der Adresse "5% der STORE-Mikrobefehl
(Befehl zum Einschreiben von Daten in den Speicher) incer Adresse "6" und der MOVE-Mikrobefehl (für Datenübertragung)
in der Adresse "7" gespeichert.
Ein ROM-Adressenreglster RAR 13 ist ein Befehlsfolgeregister
zur Speicherung der Adresse des nächsten auszuführenden Mikrobefehls. Die im Register RAR 13 gespeicherte Adresseninformation
t?ezeichnet oder kennzeichnet den Speicher 11 über eine
Adressenleitung 14. Sodann wird ein gewünschter, auszuführender Mikrobefehl aus der gewählten Adresse des Speichers 11
ausgelesen.
Eine an sich bekannte Addierschaltung 15 addiert "+1" zu der
im Adressenregister 13 enthaltenen, über die Adressenleitung
14 gelieferten Adresseninformation. Ein ROM-Datenregister RDR
709840/1069
-6-
ist ein Mikrobefehlsregister zur Speicherung des aus dem Speicher 11 oder 12 ausgelesenen Mikrobefehls. Das Register
RDR 16 besteht beispielsweise aus 11 Bits, wobei jeder Block zu einer vorbestimmten Bitlänge der betreffenden, noch
zu beschreibenden Schaltung geleitet wird. Genauer gesagt: 4 Bits des im Register RDR 16 gespeicherten Mikrobefehls
werden über eine Signalleitung 17 zu einer arithmetischen logischen Steuereinheit 18 geliefert. Wenn der im Register
RDR 16 gespeicherte Mikrobefehl ein Sprungmikrobefehl ist, wird das Steuerfeld (3 Bits) zur Steuerung der Arbeitsweise
des Sprungmikrobefehls über die Steuerleitung 19 vom Register
RDR 16 zum Speicher 12 geliefert. Das Adressenfeld (4 Bits) wird dem Adressenregister RAR 14 über eine Datenleitung 2o
zugeliefert. Das Format des erfindungsgemäß benutzten Sprungmikrobefehls ist in Tabelle 2 veranschaulicht. Der
Verzweigungs- bzw. Sprungmikrobefehl besteht aus einem Operationskodefeld aus 4 Bits, einem Steuerfeld aus 3 Bits
und einem Adressenfeld aus 4 Bits. Der Operationskode "BR" des Sprungmikrobefehls ist im Operationsfeld (OP) gespeichert,
während die die Adresse für die Wahl des Mikrobefehls darstellenden Daten im Steuerfeld (STEUERUNG) und die Sprungadresse
im Adressenfeld (ADRESSE) gespeichert sind.
14 5 7 8 11
OP-KODE STEUERUNG ADRESSE
SßPungmikrobefehlsformat
Die arithmetische logische Steuereinheit 18 zur Ausführung
des im Register 16 gespeicherten Mikrobefehls weist einen Dekodierer 21 auf, welcher prüft, ob der vom Register RDR 16
gelieferte Mikrobefehl der Sprungmikrobefehl ist oder nicht. Der Dekodierer 21 gibt ein Entschlüsselungs- bzw. Dekodier-
-7-709840/1069
signal DI ab, wenn der Mikrobefehl der Sprungmikrbbefehl ist,
während er ein Dekodiersignal D2 abgibt, wenn es sich nicht um den Sprungmikrobefehl handelt. Des Dekodiersignal D1
steuert die Operation des Sprungmikrobefehls. Das Dekodiersignal D2 steuert die Ausführung eines gewöhnlichen Mikrobefehls, außer des Sprungmikrobefehls in der Steuereinheit
Die Steuerschaltung 22 let mit einer üblichen UND/ODER-Kombinationsschaltung 221 und einem umsetzer 222 zum Invertieren des logischen Pegels des Steuersignals DI versehen. Die
Steuer- bzw. Wählschaltung 22 wählt unter Benutzung des Steuersignals D1 den Adressenausgang der Addierschaltung 15
oder die Adressenfeldinformation des Registers RDR 16. Genauer gesagt: wenn das Steuersignal D1 den Pegel "O" besitzt, d.h. wenn der auszuführenden Mikrobefehl nicht der
Sprungmikrobefehl, sondern der gewöhnliche (ordinary) Mikrobefehl ist, wird die Adresseninformation von der Addierschaltung 15 für die Eingabe in das Adressenregister 1j5 gewählt.
Im Fall des Sprungmikrobefehls 1st das Steuersignal DI eine logische "1", wobei die Adressenfeldinformation vom Register
RDR gewählt und über die Datenleitung 2o zum Adressenregister RAR 13 übertragen wird.
Ebenso wie die Steuer- bzw. Wählschaltung 22 umfaßt eine Wählschaltung 23 eine UND/ODER-Kombinationsschaltung 2}1 und
einen Umsetzer 232. Die Wählschaltung 23 wählt ebenfalls
den Mikrobefehl vom Speicher 11 oder denjenigen vom Speicher 12, je nach dem logischen Pegel des Steuersignals D1. Wenn
nämlich der logische Pegel des Steuersignals eine "0" ist, wird der Mikrobefehl vom Speicher 11 gewählt. Entspricht der
logische Pegel einer n1n, sowwird der Mikrobefehl vom Speicher
12 gewählt und zum Register RDR 16 geleitet.
-8-709840/1069
4f-
Die Arbeitsweise der vorstehend beschriebenen mikroprogrammierten Steuervorrichtung ist im folgenden anhand der ein Zeitsteuerdlagramm darstellenden Fig. 2 erläutert. Im folgenden
sei der Fall betrachtet, in welchem das in Tabelle 3 gezeigte Programm durch die erfindungsgemäße Steuervorrichtung durchgeführt wird.
151 START ADD .... Additionsbefehl
152 SUB Subtraktionsbefehl
153 BR3, XYZ ... Bedingter Sprungbefehl
(236)
154 HOVE .... Übertragungsbefehl
236 BfZ XOR ... Exklusiver ODER-Befehl
237 RETURN (RUcksprung)
In obiger Tabelle geben die Spalte ADRESSE die im Speicher 11
zugewiesenen Adressen, die Spalte SYMBOL die den Daten oder Mikrobefehlen la Programm zugeteilten Kennzeichen und die Spalte
INHALT die in der ADRESSE gespeicherten Mikrobefehle an. Die betreffenden Mikrobefehle gemäß Tabelle 3 sind die gleichen wie
diejenigen von Tabelle 2. BR und XYZ bezeichnen die bedingten Sprungmikrobefehle, und wenn diese mit der Bedingung 3 koinzidieren, springt diese auf das Kennzeichen XYZ. Beim vorliegenden
Beispiel kann der Sprungmikrobefehl allgemein als "BR(I)J" ausgedrückt werden, worin (1) die Zahlen 1 bis 8 und den unmittelbar nach dem Sprungmikrobefehl auszuführenden Befehl, d.h. die
Adressen la Speioher 12, und "j" die Sprungadresse, auf welche
-9-709840/1069
-9-
der Sprung erfolgt, angeben.
Die Zeitsteuer- oder Taktkurven gemäß Fig. 2 eig-nen sich
ersichtlicherweise für die Durchführung des Programms gemäß Tabelle 3. In Fig. 2(a) sind die Maschinenzyklen mit CM, C2,
CJ> ... bezeichnet. Im Operationszyklus C2 wird der im Zyklus
C1 ausgelesene Mikrobefehl/ADD (entsprechend dem Inhalt in
Adresse "151" des Speichers 11 gemäß Tabelle 3) gemäß Fig. 2(d)
im Register RDR 16 gespeichert, während die folgende Adresse M152" im Adressenregister I3 gespeichert wird. Der Mikrobefehl
ADD wird im Dekodierer 21 der arithmetischen logischen Steuereinheit 18 über die Signalleitung 17 entschlüsselt. Da der
Mikrobefehl ADD nicht den Sprungmikrobefehl darstellt, werden das Steuersignal D1 zu "0" und das Steuersignal D2 zu "1", so
daß der Mikrobefehl ADD in der Steuereinheit 18 ausgeführt wird. Im Zyklus C2 wird der folgende Mikrobefehl SUB (der Inhalt "152"
der Adresse gemäß Tabelle 3), der entsprechend dem Inhalt "152"
des Adressenregisters 1} aus dem Speicher 11 geladen ist, gemäß
Fig. 2(d) durch die Wählschaltung 23 im Register RDR 11 gesetzt.
Gleichzeitig wird das Ausgangssignal des Adresöenregisters RAR über die Adressenleitung 14 der Addierschaltung 15 zugeführt,
wo M+1" zum Inhalt I52 des Adressenregisters RAR I3 hinzuaddiert
und das Additionsergebnis gemäß Fig. 2(b) über die Wählschaltung 22 im Adressenregister RAR I3 gesetzt wird. Sodann geht der
Programmablauf auf Zyklus C3 über.
Wenn, wie aus der vorstehenden Beschreibung hervorgeht, der Mikrobefehl nicht der Sprungmikrobefehl ist, führt die Vorrichtung
gemäß Fig. 1 die Ausleseoperation des nächsten durchzuführenden Mikrobefehls und gleichzeitig auch des Mikrobefehls
(Sprungmikrobefehls) aus. Zu diesem Zweck ist die Ausführung des im Register RDR 16 gespeicherten Mikrobefehls praktisch zum
gleichen Zeitpunkt abgeschlossen, zu welchem die Speicherzu-
-I0-709840/1069
-V-
griffszeit beendet ist, während welcher der nachfolgend auszuführende
Mikrobefehl gemäß Fig. 2(b) aus dem durch das Adressenregister I3 gewählten Speicher 11 ausgelesen wird.
Als Ergebnis können die Mikrobefehle kontinuierlich ausgeführt werden.
Im Zyklus C4 gemäß Fig. 2(a) wird die Adresse "154" im
Adressenregister RAR 1j3 gespeichert, während der Mikrobefehl
BR(3) im Register RDR 16 gespeichert wird.
Der Mikrobefehl ist der Sprungmikrobefehl "BR(3) 236 oder XYZ"
gemäß Tabelle 3> so daß dieser Sprungmikrobefehl den bedingten
Sprung mit der Sprungadresse "236" darstellt. Die Bedeutung
dieses bedingten Sprungs und seines Ergebnisses ist nicht erfindungswesentlich, so daß auf die entsprechenden Erläuterungen
verzichtet werden kann. Im Zyklus C4 wird der im Register RDR 16 gespeicherte Mikrobefehl BR(3) zur arithmetischen
logischen Steuereinheit 18 übertragen und in dieser entschlüsselt
und berechnet;. Bei Eingang des Steuersignals D1 mit dem Pegel "1* wählt die Wählschaltung 22 über die Datenleitung
2o die Adressenfeldinformation "236" (4 Bit-Actresse nach
Tabelle 2) des im Register RDR 16 gespeicherten Sprungmikrobefehls. Infolgedessen wird diese Adressenfeldinformation im
Adressenregister RAR 13 gespeichert. Die Steuerbits (3 Bits)
des im Register RDR 16 gespeicherten Sprungmikrobefehls 11BR(3)"
bezeichnen die Adresse "5" des Speichers 12 gemäß Tabelle 11
über die Steuerleitung 19* durch die gemäß Fig. 2(e) aus dem
Speicher 12 das in der Adresse W3" gespeicherte Mikrobefehlswort
"AND" ausgelesen wird. Während der Mikrobefehl in der vom
Adressenregister RAR 13 bezeichneten Adresse "154" aus dem
aus dem Speicher ausgelesen wird, wählt die Wählschaltung 23 den aus dem Speicher 12 ausgegebenen Mikrobefehl "AND", weil
* Wenn als Ergebnis der Berechnung die Sprungbedingung
zutrifft, besitzt das Steuersignal D1 -11-den Pegel "1".
709840/1069
-V-
das Steuersignal D1 den Pegel "1" besitzt. Der Mikrobefehl "AND" wird daher gemäß Fig. 2(d) im Register RDR 16 gespeichert.
Sodann tritt der Programmablauf in den Zyklus C5 ein.
Dn Zyklus C5 ist der Mikrobefehl der "ADD"-Mikrobefehl und
nicht der Sprungmikrobefehl, so daß der Dekoder 21 der Steuereinheit 18 das Ausgangssignal D1 mit dem logischen Pegel 11O"
abgibt. Infolgedessen wird in diesem Zyklus der im Register RDR 16 gespeicherte Mikrobefehl "ADD" ausgeführt, während
gleichzeitig der Mikrobefehl "XOR" in der Sprungadresse "236" gemäß Fig. J>
entsprechend dem Inhalt des Adressenregisters RAR 13 aus dem Speicher 11 ausgelesen und dann in das Register
RDR 16 geladen wird. Hierauf geht der Ablauf auf Zyklus C6 über.
Im Zyklus C6 wird der im Zyklus C 5 ausgelesene und im Register
RDR 16 gespeicherte Mikrobefehl "XOR" (Fig. 2(d)) ausgeführt, während gleichzeitig die Adresse "237" mit "+1" gemäß Fig. 2(a)
im Adressenregister RAR I3 gespeichert wird. Eine ähnliche
Operation wiederholt sich beim folgenden Vorgang.
In dem auf den Zyklus C4, in welchem der Sprungmikrobefehl ausgeführt wird, folgenden Zyklus C5 wird der Mikrobefehl im
Speicher 12 ausgeführt, welcher durch den Sprungmikrobefehl unmittelbar bezeichnet ist. Diese bedeutet, daß die Steuereinheit
18 stets einen der Mikrobefehle ohne "Leerlaufzeit" verarbeitet, was zu einer Verbesserung bezüglich der Schnelligkeit der Operationsdurchführung
führt.
Wenn im Zyklus C4 die Sprungbedingung nicht zutrifft, bleibt
das Steuersignal D1 auf dem Pegel "0". Infolgedessen wird das Ausgangssignal "155" der Addierschaltung 15 in das Adressenregister
RAR 13 geladen, und der aus dem Speicher 11 ausgelesene
Mikrobefehl MOVE (vergl. Tabelle 3) wird in das Register RDR
geladen. Auch wenn in diesem Fall die Progranmoperation in den
709840/1069 ~12"
Zyklus C5 eintritt, wird keine Sprungoperation durchgeführt.
Wenn der Sprungmikrobefehl gemäß Tabelle 5 als "BR(O)256" angegeben
ist, ist der Befehl nach Ausführung des Sprungmikrobefehls der NOP-Befehl. Aus diesem Grund wird in diesem Operationszyklus
nach Ausführung des Sprungmikrobefehls praktisch wie bei der bisherigen Vorrichtung die Abrufoperation des
Befehls in der Sprungadresse allein durchgeführt.
Die erfindungsgemäße Paralleloperation (pipelining operation) zur Erhöhung der Operations-Verarbeitungsgeschwindigkeit ist
für den Sprungmikrobefehl sehr wirksam, woraus sich eine bemerkenswerte Erhöhung der Operations-Verarbeitungsgeschwindigkeit
ergibt. Insbesondere dann, wenn die Erfindung auf den Sprungmikrobefehl im Abrufteilprogramm des Mikrobefehls
des Rechners der mikroprogrammlerten Steuervorrichtung angewandt wird, kann auch die Operationsgeschwindigkeit im Abrufzyklus
des Makrobefehls erhöht werden. Hierbei hängt die Ausführungszeit des Makrobefehls im Abrufzyklus unmittelbar von der AusfUhrungsgeschwindigkeit
jedes Makrobefehls ab, womdurch die AusfUhrgeschwindigkeit
des Rechners erhöht werden kann.
Es ist darauf hinzuweisen, daß dann, wenn bei der Erfindung eine Gruppe von nach dem Sprungmikrobefehl auszuführenden Mikrobefehlen
im ROM-Speicher gespeichert und beim (als) Sprungmikrobefehl benutzt wird, die Vorbereitungsarbeiten für das
Programm erheblich vereinfacht werden können.
Wie erwähnt, ist bei der vorstehend beschriebenen Ausführungsform
die Verzweigungs- bzw. Sprungadresse des Sprungmikrobefehls im Sprungmikrobefehl selbst (Einwort-Befehl) enthalten.
Es 1st Jedoch eine Abwandlung möglich, bei welcher die Sprungadresse in der Adresse gespeichert sein kann, welche neben
709840/10 6-9
-VS-
derjenigen des Sprungmikrobefehls zugeordnet ist (Zweiwort-Befehl).
In diesem Fall ist die Datenleitung 2o gemäß Fig. 1 auf die in Fig. 3 gezeigte Weise vom Speicher 11 zuyftählschaltung
22 geschaltet. Bei dieser Schaltungsweise wird im Zyklus C4 der Zeitsteuerkurven gemäß Fig. 2 der Inhalt der
Adresse "154" im Speicher 11 (Sprungadresse) ausgelesen, so
daß dann, wenn die Sprungbedingung zutrifft, der Inhalt "256"
dem Adressenregister RAR I3 zugeliefert werden kann. Zur Vermeidung
einer "Leerlaufzeit" im Zyklus C5 erzeugt zudem in diesem Fall der Dekodierer 21 ein Steuersignal D3 mit dem
logischen Pegel "1" unabhängig von der Gültigkeit der Sprungbedingung, wenn der vom Register RDR 16 zugeführte Mikrobefehl
der Sprungmikrobefehl ist. Das Steuersignal D3 wird dann zur Wählschaltung 23 übertragen. Infolgedessen wird bei
der Ausführungsform gemäß Fig. 3 auch dann, wenn der Sprungmikrobefehl vom Zweiwort-Befehlstyρ ausgegeben wird, der
Mikrobefehl unabhängig von der Gültigkeit der Sprungbedingung ausgeführt, wobei der Mikrobefehl aus dem vom Sprungmikrobefehl
gewählten Speicher 12 unmittelbar nach dem Sprungmikrobefehl ausgelesen wird.
Ersichtlicherweise kann die erfindungsgemäße Vorrichtung so
abgewandelt werden, daß einzelne Mikrobefehle für den Gültigkeits-
und UngUltigkeitszustand der Sprungbedingung selektiv
ausgeführt werden.
709840/1069
Leerseite
Claims (7)
- PATENTANSPRÜCHEMikroprogrammierte Rechner-Steuervorrichtung mit einem Speicher zur Speicherung eines Mikroprogramms, einem Adressenregister zum Speichern der Adresse des nächsten durchzuführenden Mikrobefehls und einem Mikrobefehlsregister zum Speichern des durchzuführenden Befehls, gekennzeichnet durch einen ersten Speicher (12) zum Speichern der im Fall der Sprungmikrobefehle benutzten Mikrobefehle, durch eine Einrichtung (21) zur Bestimmung, ob der im Mikrobefehlsregister (16) gespeicherte Mikrobefehl der Sprungmikrobefehl ist oder nicht, durch eine erste Einrichtung zur Durchführung einer ersten Operation, in welcher der nächste durchzuführende Mikrobefehl entsprechend dem Inhalt im Adressenregister (13) aus dem ersten Speicher (11) ausgelesen, wenn die Bestimmungseinrichtung (21) den Sprungbefehl nicht feststellt, und in das Mikrobefehlsregister (16) geladen wird, sowie zur gleichzeitigen Durchführung einer zweiten Operation, bei welcher eine fortgeschaltete Adresse in das Adressenregister (11) geladen wird, undB1/eg 709840/1069ORIGINAL INSPECTEDdurch eine zweite Einrichtung zur Durchführung einer dritten Operation, bei welcher die durch den Sprungmikrobefehl bezeichnete Sprungadresse in das Adressenregister (13) geladen wird, wenn die Bestimmungselnrichtung (21) den Sprungmikrobefehl feststellt, sowie einer vierten Operation, bei welcher dann, wenn der im Mikrobefehlsregister (16) gespeicherte Mikrobefehl ein vorgegebener Sprungmikrobefehl ist, der aus dem zweiten Speicher (12) ausgelesene Mikrobefehl in Synchronismus mit der dritten Operation in das Mikrobefehlsregister (16) geladen wird.
- 2. Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die erste und die zweite Einrichtung gemeinsam eine erste Wähleinrichtung (22) zum Wählen der ersten oder dritten Operation entsprechend dem logischen Pegel des Bestimmungssignals (D1) der Bestimmungseinrichtung (21) und eine zweite Wähleinrichtung (23) zum Wählen der zweiten oder vierten Operation aufweisen.
- 3. Vorrichtung nach Anspruch 2, dadurch gekennzeichnet, daß die beiden Wähleinrichtungen Je eine UND ODER-Kombinationsschaltung (221, 231) aufweisen, welche durch den logischen Pegel des Signals (D1) der Bestimmungselnrichtung (21) gesteuert wird.
- 4. Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die Bestimmungseinrichtung (21) einen Dekodierer (21) zum Entschlüsseln des im Mikrobefehlsregister (16) gespeicherten Mikrobefehls aufweist.
- 5· Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die Bestienungseinrichtung (21)709840/1069unabhängig vom Oültigkeits- oder UngUltigkeitszustand einer Sprungbedingung ein Bestimmungssignal (D1) erzeugt .
- 6. Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die erstgenannte Einrichtung eine Addierschaltung (15) zum Fortschalten einer Adresse aufweist.
- 7. Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß die zweitgenannte Einrichtung eine fünfte Operation, bei welcher die aus dem ersten Speicher (11) ausgelesene Sprungadresse in das Adressenregister (13) geladen wird, wenn die Bestimmungseinrichtung (21) den Sprungmikrobefehl feststellt, und eine sechste Operation durchführt, bei welcher der aus dem zweiten Speicher (12) ausgelesene Mikrobefehl in Synchronismus mit der fünften Operation in das Mikrobefehlsregister (16) geladen wird, wenn der im Mikrobefehlsregister (16) gespeicherte Mikrobefehl den Sprungmikrobefehl darstellt.709840/1069
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP3607376A JPS52120640A (en) | 1976-04-02 | 1976-04-02 | Micro program control system |
Publications (3)
Publication Number | Publication Date |
---|---|
DE2715073A1 true DE2715073A1 (de) | 1977-10-06 |
DE2715073B2 DE2715073B2 (de) | 1980-04-30 |
DE2715073C3 DE2715073C3 (de) | 1981-01-15 |
Family
ID=12459551
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE2715073A Expired DE2715073C3 (de) | 1976-04-02 | 1977-04-04 | Mikroprogrammierte Rechner-Steuervorrichtung |
Country Status (4)
Country | Link |
---|---|
US (1) | US4179731A (de) |
JP (1) | JPS52120640A (de) |
AU (1) | AU514615B2 (de) |
DE (1) | DE2715073C3 (de) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0032955A1 (de) * | 1979-07-25 | 1981-08-05 | Fujitsu Limited | Durch mikroprogramm gesteuerter dataprozessor |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4360868A (en) * | 1978-12-06 | 1982-11-23 | Data General Corporation | Instruction prefetch means having first and second register for storing and providing a current PC while generating a next PC |
US4338661A (en) * | 1979-05-21 | 1982-07-06 | Motorola, Inc. | Conditional branch unit for microprogrammed data processor |
JPS6346297Y2 (de) * | 1980-03-14 | 1988-12-01 | ||
JPS56149646A (en) * | 1980-04-21 | 1981-11-19 | Toshiba Corp | Operation controller |
US4390946A (en) * | 1980-10-20 | 1983-06-28 | Control Data Corporation | Lookahead addressing in a pipeline computer control store with separate memory segments for single and multiple microcode instruction sequences |
DE3138971A1 (de) * | 1981-09-30 | 1983-04-21 | Siemens AG, 1000 Berlin und 8000 München | Mikroprogrammiertr prozessor und verfahren zu seinembetrieb |
JPS58197553A (ja) * | 1982-05-12 | 1983-11-17 | Mitsubishi Electric Corp | プログラム監視装置 |
US4546431A (en) * | 1982-11-03 | 1985-10-08 | Burroughs Corporation | Multiple control stores in a pipelined microcontroller for handling jump and return subroutines |
US4551798A (en) * | 1982-11-03 | 1985-11-05 | Burroughs Corporation | Multiple control stores in a pipelined microcontroller for handling nester subroutines |
US4586127A (en) * | 1982-11-03 | 1986-04-29 | Burroughs Corp. | Multiple control stores for a pipelined microcontroller |
IT1153668B (it) * | 1982-11-24 | 1987-01-14 | Honeywell Inf Systems | Organizzazione di memoria di controllo |
GB8416037D0 (en) * | 1984-06-22 | 1984-07-25 | Int Computers Ltd | Data storage apparatus |
US4825363A (en) * | 1984-12-05 | 1989-04-25 | Honeywell Inc. | Apparatus for modifying microinstructions of a microprogrammed processor |
CA1223969A (en) * | 1984-10-31 | 1987-07-07 | William M. Johnson | Microcode control of a parallel architecture microprocessor |
JPH048070Y2 (de) * | 1984-11-26 | 1992-03-02 | ||
JPS61269734A (ja) * | 1985-05-23 | 1986-11-29 | Hitachi Ltd | マイクロプログラム制御方式 |
US4777587A (en) * | 1985-08-30 | 1988-10-11 | Advanced Micro Devices, Inc. | System for processing single-cycle branch instruction in a pipeline having relative, absolute, indirect and trap addresses |
JPS6282402A (ja) * | 1985-10-07 | 1987-04-15 | Toshiba Corp | シ−ケンス制御装置 |
NL8800053A (nl) * | 1988-01-11 | 1989-08-01 | Philips Nv | Videoprocessorsysteem, alsmede afbeeldingssysteem en beeldopslagsysteem, voorzien van een dergelijk videoprocessorsysteem. |
NL8800071A (nl) * | 1988-01-13 | 1989-08-01 | Philips Nv | Dataprocessorsysteem en videoprocessorsysteem, voorzien van een dergelijk dataprocessorsysteem. |
JPH01271838A (ja) * | 1988-04-22 | 1989-10-30 | Fujitsu Ltd | マイクロプログラム分岐方法 |
US5136696A (en) * | 1988-06-27 | 1992-08-04 | Prime Computer, Inc. | High-performance pipelined central processor for predicting the occurrence of executing single-cycle instructions and multicycle instructions |
US5034880A (en) * | 1988-12-22 | 1991-07-23 | Wang Laboratories, Inc. | Apparatus and method for executing a conditional branch instruction |
EP0376258B1 (de) * | 1988-12-27 | 1999-03-03 | Fujitsu Limited | Steuerungssystem und -verfahren zum Instruction Fetch |
US6275924B1 (en) * | 1998-09-15 | 2001-08-14 | Texas Instruments Incorporated | System for buffering instructions in a processor by reissuing instruction fetches during decoder stall time |
JP2000293371A (ja) * | 1999-04-09 | 2000-10-20 | Hitachi Ltd | マイクロプログラム制御方法及び装置 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3644900A (en) * | 1968-11-30 | 1972-02-22 | Tokyo Shibaura Electric Co | Data-processing device |
US3764988A (en) * | 1971-03-01 | 1973-10-09 | Hitachi Ltd | Instruction processing device using advanced control system |
US3736567A (en) * | 1971-09-08 | 1973-05-29 | Bunker Ramo | Program sequence control |
US3775756A (en) * | 1972-04-20 | 1973-11-27 | Gen Electric | Programmable special purpose processor having simultaneous execution and instruction and data access |
JPS549456B2 (de) * | 1972-07-05 | 1979-04-24 | ||
IT993428B (it) * | 1973-09-26 | 1975-09-30 | Honeywell Inf Systems | Unita di controllo di calcolatore microprogrammato con microprogram mi residenti in memoria e sovrap posizioni delle fasi interpretati ve di una microistruzione con la fase esecutiva della precedente microistruzione |
-
1976
- 1976-04-02 JP JP3607376A patent/JPS52120640A/ja active Granted
-
1977
- 1977-04-04 AU AU23952/77A patent/AU514615B2/en not_active Expired
- 1977-04-04 US US05/784,459 patent/US4179731A/en not_active Expired - Lifetime
- 1977-04-04 DE DE2715073A patent/DE2715073C3/de not_active Expired
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0032955A1 (de) * | 1979-07-25 | 1981-08-05 | Fujitsu Limited | Durch mikroprogramm gesteuerter dataprozessor |
EP0032955A4 (de) * | 1979-07-25 | 1982-01-08 | Fujitsu Ltd | Durch mikroprogramm gesteuerter dataprozessor. |
Also Published As
Publication number | Publication date |
---|---|
JPS5539218B2 (de) | 1980-10-09 |
AU514615B2 (en) | 1981-02-19 |
JPS52120640A (en) | 1977-10-11 |
US4179731A (en) | 1979-12-18 |
AU2395277A (en) | 1978-10-12 |
DE2715073C3 (de) | 1981-01-15 |
DE2715073B2 (de) | 1980-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2715073A1 (de) | Mikroprogrammierte rechner-steuervorrichtung | |
DE2714805C2 (de) | ||
DE2355993C3 (de) | Programmierbare Datenverarbeitungsanlage | |
DE2735814C2 (de) | Nach dem Pipelineprinzip arbeitende Datenverarbeitungseinrichtung | |
DE3116100C2 (de) | Datenverarbeitungseinheit | |
DE2704842C2 (de) | Im Pipeline-Betrieb arbeitende Datenverarbeitungseinrichtung | |
DE2234867C2 (de) | Anordnung in einer Datenverarbeitungsanlage zum Steuern der Verarbeitung zweier voneinander unabhängiger Befehlsfolgen | |
DE2542751C2 (de) | Datenverarbeitungsanlage | |
DE2611892C2 (de) | Mikroprogramm-Steueranordnung | |
DE1250659B (de) | Mikroprogrammgesteuerte Datenverarbeitungsanlage | |
DE2813128A1 (de) | Mikroprogrammspeicher | |
DE1915818B2 (de) | Steuerschaltung für ein elektronisches Datenverarbeitungssystem | |
DE2248296A1 (de) | Programmsteuereinrichtung | |
DE2539211A1 (de) | Zugriffssteuereinheit | |
EP0010185A1 (de) | Virtuell-Adressiervorrichtung für einen Computer | |
DE3043653A1 (de) | Datenverarbeitungsanlage | |
DE2433436A1 (de) | Verfahren und anordnung zum mehrfachverzweigen des programms in einem digitalen computer | |
DE3307194C2 (de) | ||
DE2702722C2 (de) | Einrichtung zur Verarbeitung nicht direkt ausführbarer Instruktionen | |
DE2759120C2 (de) | ||
DE1499224C3 (de) | Datenverarbeitungsanlage mit Kellerspeichereinrichtungen | |
DE1774421B1 (de) | Mehrprogramm datenverarbeitungsanlage | |
DE19983210B4 (de) | Programmierbare Steuereinrichtung | |
DE2150292C2 (de) | Mikroprogrammgesteuerte Datenverarbeitungsanlage mit überlagerter Ausführung und Entnahme von Befehlen | |
DE2622140A1 (de) | Verfahren zur durchfuehrung manueller operationen |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C3 | Grant after two publication steps (3rd publication) | ||
8320 | Willingness to grant licences declared (paragraph 23) | ||
8327 | Change in the person/name/address of the patent owner |
Owner name: KABUSHIKI KAISHA TOSHIBA, KAWASAKI, KANAGAWA, JP |