DE2745204A1 - Mikroprogramm-leitwerk fuer eine datenverarbeitungsanlage - Google Patents
Mikroprogramm-leitwerk fuer eine datenverarbeitungsanlageInfo
- Publication number
- DE2745204A1 DE2745204A1 DE19772745204 DE2745204A DE2745204A1 DE 2745204 A1 DE2745204 A1 DE 2745204A1 DE 19772745204 DE19772745204 DE 19772745204 DE 2745204 A DE2745204 A DE 2745204A DE 2745204 A1 DE2745204 A1 DE 2745204A1
- Authority
- DE
- Germany
- Prior art keywords
- output
- input
- bits
- command
- multiplexer
- 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.)
- Withdrawn
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/268—Microinstruction selection not based on processing results, e.g. interrupt, patch, first cycle store, diagnostic programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/12—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
- G06F13/124—Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Executing Machine-Instructions (AREA)
Description
Mikroprogramm-Leitwerk für eine Datenverarbeitungsanlage .
Die Erfindung bezieht sich auf ein Mikroprogramm-Leitwerk nach dem Oberbegriff des Anspruchs 1.
Bekanntlich haben Datenverarbeitungsanlagen ein Leitwerk, das die Befehle des Arbeitsprogramms decodiert und die zur Ausführung der Befehle erforderlichen Operationen steuert. In einem
Mikroprogramm-Leitwerk wird die Ausführung eines Befehls des Arbeitsprogramms in eine Folge von Elementaroperationen zerlegt,
die als Mikroroutine bezeichnet und vom Mikroprogramm des Leitwerks spezifiziert wird. Sieht beispielsweise ein Befehl des
Arbeitsprogramms die übertragung eines Datenblocks von der Datenverarbeitungsanlage zu einer peripheren Einheit vor, so
erfolgt diese Übertragung durch die Durchführung einer Anzahl von Elementaroperationen, die jeweils durch einen Mikrobefehl
gesteuert sind und darin bestehen, daß alle diejenigen Torschaltungen freigegeben werden, über welche die physische Verbindung für die übertragung aufgebaut wird.
Neben den zur Durchführung des Arbeitsprogramms erforderlichen Mikrobefehlen benötigt das Leitwerk im allgemeinen auch
Mikrobefehle zur Führung des Programmablaufs, also Mikrobefehle,
mit denen die Befehle aus dem Programmspeicher geholt werden, sowie Mikrobefehle zur Ermittlung der Art der entnommenen Befehle. Nach Ermittlung der Befehlsart beginnt die für die Durchführung vorgesehene Mikroroutine.
Die Mikrobefehle zur Programmselbstführung sind bei der Durchführung des Arbeitsprogramms überflüssig. Von zwei Datenverarbeitungsanlagen mit sonst gleichen Eigenschaften hat die
Anlage, die eine höhere Anzahl Mikrobefehle zur Programraselbstführung benutzt, eine niedrigere Arbeitsgeschwindigkeit als die
andere Anlage. Eine wesentliche Steigerung der Arbeitsgeschwindigkeit kann also dadurch erreicht werden, daß man Mikrobefehle
zur Führung des Programms vermeidet.
809815/0780
Die Aufgabe der Erfindung ist die Realisierung eines Leitwerks, das ohne Mikrobefehle zur Führung des Arbeitsprogranuns
auskommt und dadurch für die Datenverarbeitungsanlage eine hohe Arbeitsgeschwindigkeit ermöglicht.
Diese Aufgabe wird durch das im Anspruch 1 gekennzeichnete Leitwerk gelöst.
Die Erfindung, bei der zweckmäßig schon während der Ausführung des letzten Mikrobefehls der Ausführungs-Mikroroutine
für den vorhergehenden Befehl der nächste Befehl untersucht wird, hat den Vorteil einer besonders hohen Arbeitsgeschwindigkeit.
Ein bevorzugtes Ausführungsbeispiel der Erfindung wird
anhand der Zeichnung näher erläutert. Es zeigen:
Fig. 1 das Blockschaltbild einer Datenverarbeitungsanlage,
die ein erfindungsgemäß realisiertes Leitwerk enthält.
Fig. 2 das Blockschaltbild eines Leitwerks bekannter Art.
Fig. 3 das Blockschaltbild des erfindungsgemäß realisierten
Leitwerks CN der Anlage nach Fig. 1.
Die in Fig. 1 dargestellten Datenverarbeitungsanlage weist folgende Sammelschienen auf, über welche die Daten empfangen,
ausgegeben und unter den verschiedenen Schaltungen der Datenverarbeitungsanlage ausgetauscht werden: An eine doppelseitig
gerichtete Sammelschiene a sind die durch die Datenverarbeitungsanlage betriebenen peripheren Einheiten angeschlossen;
über sie fließen die zwischen der Verarbeitungsanlage und den peripheren Einheiten ausgetauschten Daten. Eine erste einseitig
gerichtete Sammelschiene, die Ausgangssammelschiene b, wird durch die am Ausgang eines binären und arithmetischen Schaltwerks
ALU verfügbaren Daten gespeist. Über eine zweite einseitig gerichtete Samine 1 schiene, die Datensammelschiene c,
fließen die für das Schaltwerk ALU bestimmten Oaten, über eine
dritte einseitig gerichtete Sammelschiene, die Registersammelschiene
d, gelangen an das Schaltwerk ALU Daten, die zusammen
809815/0789
mit den auf der zweiten Sammelschiene c verfügbaren Daten zur Ausführung von arithmetischen und logischen Operationen benutzt
werden.
Zwischen die Ausgangssammelschiene b und an die Datensamme1schiene c sind parallel folgende Einheiten geschaltet:
Ein Programmzähler PC bildet mit seiner binären Ausgangskonfiguration die Adresse der in einem Programmspeicher gespeicherten Befehle. In einem Programmspeicher MP werden die Befehle des Betriebsprogramms gespeichert. Durch ein Befehlsregister RI wird das durch die am Ausgang des Programmspeichers MP verfügbaren Befehle gespeist. Ein Adressenregister RA
ist an den Ausgang des Programmspeichers MP geschaltet und speichert die Adressenbits, durch welche es möglich ist, die
zu verarbeitenden Daten zu erkennen. Ein durch den Inhalt des Adressenregisters RA adressierter Datenspeicher MD dient zum
Speichern der zu verarbeitenden Daten, während ein Pufferspeicher RT zur vorläufigen Speicherung der zu verarbeitenden
und über die Registersammelschiene d weiterzuleitenden Daten
vorgesehen ist. Eine Vielzahl von Arbeitsregistern sind mit RG bezeichnet. Das schon erwähnte binäre und arithmetische
Schaltwerk ALU dient zur Verarbeitung der auf der Datensammelschiene c und auf der Registersammeischiene d vorliegenden
Daten aufgrund des Inhaltes des in jedem Befehl vorgesehenen Operationscodes, den es am Eingang Q aus einem Leitwerk
empfängt.
Die im Befehlsregister RI vorliegenden Befehle gelangen zu dem Leitwerk CN, das die Befehle decodiert und die zu
ihrer Ausführung erforderlichen Steuersignale erzeugt.
Die Arbeitsweise der Anlage gemäß Fig. 1 kann wie folgt anhand der Ausführung eines allgemeinen Speicherbezugbefehls
(Meraory-Reference-Befehl) erläutert werden, wobei ein Leitwerk CN bekannter Art angenommen sei (das Arbeitsprinzip einer
809815/0789
Datenverarbeitungsanlage mit einem Leitwerk gemäß der Erfindung wird anhand von Fig. 3 beschrieben). Die Struktur eines
Speicherbezugsbefehls, der bei einem Datenaustausch zwischen den Einheiten der Verarbeitungsanlage benötigt wird, ist in der
Tabelle A dargestellt:
5 | 2 | 3 | 14 |
)perationscode | Art der Adress. | - | Operandenadresse |
Der erste Bereich von 5 Bits, d.h. der Operationscode, gibt die Art der mit den zu verarbeitenden Daten durchzuführenden Operation
an. Ein 2-Bit-Bereich gibt die Art der Adressierung an (direkt, indirekt, indiziert usw.), die im betrachteten Befehl
vorgesehen ist. Ein dritter Bereich von 3 Bits betrifft einen Code, der hinsichtlich der vorliegenden Erfindung bedeutungslos
ist. Ein vierter Bereich von 14 Bits betrifft die Operandenadresse, d.h. die Adresse des Datenspeichers MD (bei direkter
Adressierung), bei welcher die zu verarbeitenden Daten gespeichert sind.
Zu einem beliebigen Zeitpunkt nimmt der Inhalt des Programmzählers
PC eine binäre Konfiguration an, die eine Zone des Programmspeichers MP angibt, in welcher z.B. ein Speicherbezugsbefehl
gespeichert ist. Dieser Befehl erscheint also am Ausgang des Programmspeichers MP und gelangt zum Befehlsregister
RI. Das Leitwerk CN untersucht den Befehl, um die Art der Operation zu erkennen, die die Verarbeitungsanlage auszuführen
hat (z.B. Datenübertragung von einem Register zu einem andern), sowie die Art der Adressierung (direkt, indirekt, usw.).
Nach Beendigung dieser Untersuchung beginnt das Leitwerk mit der zur Ausführung des Befehls erforderlichen Mikroroutine. Wenn
z.B. der Befehl die übertragung eines Datenblocks aus dem Datenspeicher
MD zu einem Arbeitsregister RG vorsieht, dann besteht
809815/0789
27A5204
die Ausführungsmlkroroutine darin, den Inhalt der durch die
Operandenadresse bezeichneten Speicherzellen auf die Datensammelschiene zu geben, die übertragung durch das Schaltwerk
ALU zu veranlassen und die Eingabe der auf der Ausgangssammelschiene b vorliegenden Daten in eines der Register RG freizugeben.
Nach Beendigung der Ausführungsmikroroutine für den Speicherbezugsbefehl erhöht das Leitwerk CN den Inhalt des
Programmzählers PC, wodurch im Programmspeicher MP der nächste Befehl gelesen wird, der in das Befehlsregister RI übertragen
wird. Das Leitwerk CN untersucht den gelesenen Befehl und ermittelt die für die Ausführung vorgesehene Mikroroutine. Es
sei angenommen, daß das Arbeitsprogramm nach Beendigung des Speicherbezugsbefehls die Ausführung eines Eingabe-Ausgabe-Befehls
vorsieht. Die Struktur eines solchen Befehls ist in der Tabelle B dargestellt:
Mikro befehle |
Peripherie zustand I |
Adresse der peripheren Einheit |
Funktions code |
|
Dperationscode | ||||
Bei dieser Befehlsart bildet ein erster Bereich von 8 Bits den Operationscodebereich. Ein zweiter Bereich von 3 Bits bildet
den Mikrobefehlsbereich, durch welchen die Sendungfestgelegter
Signale (z.B. Taktsignale) verlangt wird, die zum Betrieb der an der Ausführung des Befehls interessierten peripheren
Einheit erforderlich sind. Ein dritter Bereich von 2 Bits gibt den Zustand an, den die periphere Einheit bei
der Ausführung des Befehls annehmen muß. Ein vierter Bereich von 4 Bits drückt den Funktionscode aus, d.h. er gibt an,
welche Eingabe-Ausgabe-Operation mit der an der Ausführung
809815/0789
des betreffenden Befehls beteiligten peripheren Einheit ausgeführt
werden soll. Ein fünfter Bereich von 7 Bits drückt die Adresse zur Identifizierung der an der Ausführung des
Befehls beteiligten peripheren Einheit aus.
Es soll nun ein Sprungbefehl (Jump-Befehl) betrachtet werden, der dann im Arbeitsprogramm vorgesehen ist, wenn das
Auftreten bzw. das Ausbleiben eines Ereignisses einen Prograiransprung
bzw. die Fortsetzung des laufenden Arbeitsprogramms bewirkt. Bei einem Programmsprung soll also nicht der Befehl
ausgeführt werden, der durch Erhöhung des Inhaltes des Programmzählers um eine Einheit festgestellt wird, sondern es
wird dem Zänler die binäre Konfiguration aufgezwungen, welche die Zone des Programmspeichers MP angibt, in dem der Befehl
gespeichert ist, von dem ab das Programm fortgesetzt werden soll. Die Struktur eines Sprungbefehls ist in der Tabelle C
angegeben:
5 | 2 | 1 | 16 |
Operationscode | Art der Adres sierung |
Operanden adresse |
Bei dieser Befehlsart bedeutet ein erster Bereich von 5 Bits den Operationscode. Ein zweiter Bereich von zwei Bits bedeutet
die vorgesehene Adressierungsart, und ein dritter Bereich von 16 Bits drückt die Operandenadresse aus. Falls eine direkte
Adressierung vorgesehen ist, wird die durch die 16 Bits der Operandenadresse ausgedrückte binäre Konfiguration dem Progrananzähler
PC aufgezwungen und somit der Befehl erkannt, bei dem das Programm fortgesetzt werden soll.
Gemäß Fig. 2 hat ein Leitwerk CN bekannter Art einen Mikroprogrammspeicher MM, in welchem die Mikrobefehle zum
809815/0789
Steuern der Elementaroperationsfolge gespeichert sind, nach
welcher jeder Befehl des Arbeltsprogramms ausgeführt werden kann. Die Struktur eines Mikrobefehls 1st In Tabelle D angegeben:
W | X | Y | Z |
Mikrobefehle | Freigabe der Be dingung |
Sprungadressen | Sprung |
In diesem Mikrobefehl wird ein erster Bereich W, der Mikrobefehlbereich,
zum Senden von Befehlen an die Einheiten benutzt, die die Datenverarbeitungsanlage bilden. Ein zweiter
Bereich X und ein dritter Bereich Y werden für bedingte
Sprünge auf Untermikroprogramme benutzt. Ein vierter Bitbereich Z wird zum Steuern von Mikroprogrammsprüngen auf
Adressen, die von außen zum Leitwerk CN gelangen, oder auf die im gleichen Mikrobefehl vorhandene Adresse Y benutzt.
Sprünge auf Untermikroprogramme benutzt. Ein vierter Bitbereich Z wird zum Steuern von Mikroprogrammsprüngen auf
Adressen, die von außen zum Leitwerk CN gelangen, oder auf die im gleichen Mikrobefehl vorhandene Adresse Y benutzt.
Der Mikroprogrammspeicher MM ist durch die binäre Konfiguration am Ausgang eines Zählers CC adressiert. Der Zähler
CC empfängt an einem ersten Eingang 1 die Adressenbits des Mikroprogrammspeichers MM, welche am Ausgang eines Adressenspeichers
MI verfügbar sind, und an einem zweiten Eingang einen Lade- oder Eingabebefehl für diese Bits. Ein Zähleingang 3 wird durch die am Ausgang eines Inverters IN verfügbaren
Impulse gespeist. Der Inverter IN wird seinerseits
durch einen ersten Multiplexer MT' gespeist, der auch den zweiten Eingang des Zählers CC steuert. Der Multiplexer MT*^ weist eine Vielzahl Eingänge auf, an denen ebensoviele Bedingungen herrschen und jeweils eine Information darüber vorliegt, ob das vom betreffenden Eingang betrachtete Ereignis erfolgt oder nicht erfolgt ist. An den Multiplexer MT' sind ferner die Ausgänge der Decodiereinheiten (nicht dar-
durch einen ersten Multiplexer MT' gespeist, der auch den zweiten Eingang des Zählers CC steuert. Der Multiplexer MT*^ weist eine Vielzahl Eingänge auf, an denen ebensoviele Bedingungen herrschen und jeweils eine Information darüber vorliegt, ob das vom betreffenden Eingang betrachtete Ereignis erfolgt oder nicht erfolgt ist. An den Multiplexer MT' sind ferner die Ausgänge der Decodiereinheiten (nicht dar-
809815/0789
gestellt) für den Operationscode jedes vom Programmspeicher MP ausgegebenen Befehls angeschlossen.
Der Multiplexer MT' ist durch die Bits des zweiten Bereiches X des Mikrobefehls gesteuert. Die Bits des dritten
Bereiches Y gelangen dagegen zu einem zweiten Multiplexer MT'~,
der an einem anderen Eingang die Adressenbits empfängt, welche von außen zum Leitwerk kommen (Operationscode für die Befehle)
. Der Multiplexer MT'2 wird durch das Bit des vierten
Bereiches Z gesteuert.
Die Funktion der hier beschriebenen Anlage kann nach folgendem Flußdiagramm dargestellt werden:
Hierbei ist mit F die Ausgangsphase der Datenverarbeitungsanlage bezeichnet, die darin besteht, einen Befehl zu holen und
die Art des geholten Befehls zu ermitteln. Diese beiden Operationen werden in eine Vielzahl von Elementaroperationen zerlegt,
die jeweils durch einen Mikrobefehl gesteuert sind. Das Lesen eines Befehls aus dem Datenspeicher wird im allgemeinen
durch einen ersten Mikrobefehl, welcher die Erhöhung des Inhaltes des Programmzählers steuert, dessen binäre Ausgangekonfiguration
den auszuführenden Befehl angibt, und durch einen zweiten Mikrobefehl realisiert, der die Übertragung
dieses Befehls in das Befehlsregister steuert. Die Ermittlung der Art des gelesenen Befehls erfordert hingegen eine veränderliche
Anzahl von Mikrobefehlen. Beispielsweise sei angenommen, daß der gelesene Befehl ein Eingabe-Ausgabe-Befehl ist. Wenn
die den Speicherbezugsbefehl kennzeichnende Decodierung des Operationscodes an einen Eingang Nr. i des Multiplexers MT' ,
die den Sprungbefehl kennzeichnende Decodierung an den Eingang
809815/0789
Nr. i + l und die die Eingabe-Ausgabe-Befehle kennzeichnende
Decodierung an den Eingang Nr. 1 + 2 gelangt, müssen zur Erkennung der Befehlsart (z.B. ein Eingabe-Ausgabe-Befehl) diese
drei Eingänge daraufhin überprüft werden, an welchem von ihnen ein Impuls vorliegt. Die Bits des Bereiches X eines ersten
Mikrobefehls geben den Eingang Nr. i des Multiplexers MT' frei. Da dieser Eingang nicht erregt ist, erscheint am Ausgang
des Inverters IN ein Impuls, der den Inhalt des Zählers CC erhöht, wodurch das Lesen des nächsten Mikrobefehls bewirkt
wird. Die Bits des Bereiches X dieses Mikrobefehls geben den Eingang Nr. i + 1 des Multiplexers MT'X frei, der nicht erregt
ist, und infolgedessen wird der Inhalt des Zählers CC wieder erhöht. Der nun adressierte Mikrobefehl gibt (Bereich X)
den Eingang Nr. i + 2 des Multiplexers MT1^ frei, der nicht
aktiviert ist, so daß am Eingang 2 des Zählers CC ein Ladebefehl vorliegt.
Unter diesen Verhältnissen wird die binäre Konfiguration erzwungen, die am Ausgang des Adressenspeichers MI verfügbar
ist, der durch die Bits des Operationscodes des gelesenen Eingang-Ausgangsbefehls adressiert ist. Die am Ausgang des
Zählers CC verfügbare binäre Konfiguration gibt den ersten Mikrobefehl der zur Ausführung des gelesenen Befehls vorgesehen Mikroroutine an. Während dieser Mikroroutine gibt der
Multiplexer MT', die Bits des Bereiches Y ab. Im letzten
Mikrobefehl der Mikroroutine stellt das Bit des Bereiches Z den Multiplexer MT'2 so ein, daß dieser die von außen zum
Leitwerk kommenden Codes ausgibt, welche die Adresse der neuen Mikroroutine ausdrücken, zu welcher gesprungen werden soll.
Nach Beendigung der Befehlsausführung prüft das Leitwerk - wie aus dem obigen FIußdiagramm ersichtlich ist -, ob Unterbrechung sanforderungen (I) für das Programm eingetroffen sind,
indem die entsprechende Bedingung am zugehörigen Eingang des Multiplexers ΜΤ'χ geprüft wird. Ist das Ergebnis dieser Prüfung positiv, so benutzt das Leitwerk ähnlich wie zur Fest-
809815/0789
Stellung des gelesenen Befehls eine festgelegte Anzahl von Mikrobefehlen zur Untersuchung der eingetroffenen Unterbrechungsanforderung,
um die Adresse der die Unterbrechung führende Mikroroutine zu ermittlen. Ist das Ergebnis dagegen negativ,
so wird in der schon beschriebenen Weise ein neuer Befehl gelesen. Falls eine indirekte oder indizierte Adressierung des
Datenspeichers vorgesehen ist, wird nach Beendigung der Mikroroutine der Ausführungsphase F und vor Beginn der Ausführungsphase E des FIußdiagrammes die Phase C der Errechnung der
Adresse begonnen.
In Fig. 3 ist das erfindungsgemäß ausgebildete Leitwerk
dargestellt, wobei mit MM der Mikroprogrammspeicher zur Speicherung von nach der folgenden Tabelle F aufgebauten Mikrobefehlen
bezeichnet ist:
W | A | C |
Mikrobefehle | Progr. Ablauf |
Sprung- adresse |
Bei diesem Mikrobefehl stellt ein erster Bereich W den Mikrobefehlsbereich
dar, der zum Senden von Befehlen an die die Datenverarbeitungsanlage bildenden Einheiten benutzt wird.
Ein zweiter Bereich A von 2 Bits stellt den Programmbetriebsablauf der Verarbeitungsanlage dar und dient zur Ermittlung
der Art des Befehls, der dem laufenden Befehl folgt. Ein dritter Bereich C von 4 Bits stellt den Sprungadressenbereich
dar, der zur Gewinnung der Adresse des Mikroprogrammspeichers benutzt wird, bei welcher der Mikrobefehl gespeichert ist,
auf den gesprungen werden soll.
Die 2 Bits des zweiten Bereiches A gelangen zu einem Decodierer
DC,, der vier Ausgänge Nr. O bis Nr. 3 aufweist. Im
809815/0789
Falle eines Sprunges wird am Ausgang Nr. O das Signal J erzeugt,
das aussagt, daß das Mikroprogramm auf einen Mikrobefehl springen soll, der durch Benutzung der 4 Bits des dritten Bereiches
C bestimmt werden kann. Diese 4 Bits gelangen über einen Multiplexer MT2 zu einem Adressenspeicher MI. Der Adressenspeicher
MI ist durch die am Ausgang eines binären Schaltwerks RL. vorliegenden Bits R,, R2, R3 adressiert. Die logische Funktion des
Schaltwerks RL. ist in den folgenden Beziehungen angegeben, deren verschiedene Ausdrücke im folgenden erläutert werden:
Rl | = (JI | + | i | JC | 23) . JC . JMp | |
2) | R2 | - KC | • | JC | ^L TlUf ~L TiUl | |
3) | R3 | - KC | . J . JM | |||
Der Adressenspeicher MI hat eine Kapazität von 16 χ 8 = 128 Speicherzonen, die imstande sind, ebensoviele die Adresse des
Mikroprogrammspeichers MM bildende Wörter zu speichern. Die am Ausgang des Schaltwerks RL. vorliegenden Bits Ri-R3 geben
daher einen aus 16 Speicherzonen bestehenden Speicherbereich
an. Eine der 16 Zonen dieses Speicherbereiches wird durch die vier am Ausgang des Multiplexers MT2 vorliegenden Bits identifiziert.
Die so bestimmte binäre Konfiguration gelangt an den ersten Eingang 1 des Zählers CC, der an seinem zweiten Eingang
einen Eingabe- oder Ladebefehl empfängt, der am Ausgang eines folgende Funktion erfüllenden binären Schaltwerks RL2 vorliegt;
4) c - KC . MtJ + J + Mt4 + JM
Da das Signal J des Decodierers DC. vorliegt, ist das
Signal c wirksam, so daß die am Ausgang des Speichers MI verfügbare binäre Konfiguration in dem Zähler CC erzwungen wird,
der damit den ersten Mikrobefehl der Mikroroutine bestimmt, ab
welchem das Mikroprogramm fortgesetzt werden soll.
809815/0789
Es wird nun der Fall eines bedingten Sprungs betrachtet,
der dann erfolgt, wenn der Decodierer DC. ein Signal JC an seinem Ausgang Nr. 1 erzeugt. In diesem Fall bewirkt das Signal
JC, daß das Mikroprogramm auf eine Adresse springen muß, die durch Benutzung der Bits des genannten dritten Bereiches C gewonnen
werden kann, wenn die vom betrachteten Mikrobefehl vorgesehene Bedingung wirksam ist; diese Bedingung ist am Eingang
eines Multiplexers MT3 verfügbar, der zusammen mit einem Multiplexer
MT4 Funktionen erfüllt, die mit denen des Multiplexers MT1 nach Fig. 2 vergleichbar sind. Der Multiplexer MT3 ist
durch drei der Bits vom Bereich C adressiert und erfordert die Freigabe des Signals JC. Ist die gewählte Bedingung wirksam, so
liegt am Ausgang Mt3 des Multiplexers MT-, ein Impuls vor, der
eine Konfiguration der am Ausgang des Schaltwerks RL. verfügbaren Bits Ri-R3 veranlaßt, die von der im vorher betrachteten
Sprungsfall (Signal J) angenommenen Konfiguration abweicht.
Diese abweichende Konfiguration der Bits R1-R3 veranlaßt die
Ermittlung eines anderen Bereiches des Adressenspeichers MI, so daß die 4 Bit des Bereiches C ihrerseits eine andere Zone
des Adressenspeichers angeben. Auch in diesem Fall wird das Signal c am Ausgang des Schaltwerks RL2 erzeugt, so daß das
Mikroprogramm ab dem so bestimmten Mikrobefehl fortgesetzt wird. Falls aber die vom betreffenden Mikrobefehl betrachtete
Bedingung nicht aktiv ist, wird nicht der ermittelte Mikrobefehl ausgeführt, sondern der Mikrobefehl, der durch Erhöhung
des Zählers CC um eine Einheit adressiert wird. In diesem Fall wird das Signal c nicht erzeugt. Am Ausgang eines binären
Schaltwerks RL3 erscheint statt dessen ein Impuls k, der den
Inhalt des Zählers CC erhöht. Die logische Funktion, die das Schaltwerk RL3 erfüllt, ist im folgenden angegeben:
5) K - JC . Mt4 + Mt3
Es wird nun der Fall des bedingten Ablaufs des Mikroprogramms betrachtet. In diesem Fall wird am Ausgang 2 des
8098 1 5/0789
Decodierers DC, das Signal KC erzeugt, das einen Multiplexer
MT4 freigibt, der wie im vorhergehenden Fall adressiert ist.
Falls die den 3 Bits des Bit-Bereiches C entsprechende Bedingung wirksam ist, erscheint das Signal Mt4, das aufgrund
der logischen Beziehung 5) die Erzeugung des Impulses K durch das Schaltwerk RL3 bewirkt, so daß der Mikrobefehl adressiert
wird, der auf den eben betrachteten folgt. Wenn die untersuchte Bedingung nicht aktiv ist, dann erfolgt ein Programmsprung auf den Mikrobefehl, der durch die Bits des Bereiches C
und die Bits R,-R. nach den bereits erläuterten Verfahren erkannt wurde.
Die bis hier betrachteten Fälle betreffen Sprünge (Signale J, JC) oder bedingte Programmfortschaltungen (Signal KC) auf
Adressen, die aus im Leitwerk verfügbaren Bits gewonnen werden können. Derartige Sprünge oder Fortschaltungen erfolgen beispielsweise während einer BefehlsausfÜhrungs-Mikroroutine.
Es werden nun die möglichen Sprünge behandelt, die dann ausgeführt werden, wenn eine Ausführungsmikroroutine beendet ist,
so daß die Adresse, auf welche gesprungen werden soll, aus Bits gewonnen werden muß, die von außerhalb des Leitwerkes CN
kommen. Dies ist im letzten Mikrobefehl einer allgemeinen Ausführungsmikroroutine der Fall; die Bit-Konfiguration des Bit-Bereiches A steuert dann den Sprung auf eine Adresse, die aus
externen Bits gewonnen werden kann. Ein solcher Sprung wird im folgenden Vielfachsprung (Signal JM) genannt. Beim Leitwerk
sind zwei Arten von Vielfachsprüngen vorgesehen, die durch den Binärwert des weniger bedeutsamen Bit C des Bit-Bereiches C
jeden Mikrobefehls spezifiziert «ind.
Das Bit C gelangt zum Eingang Nr. 3 eines Prioritäts-Codierers PE1, der vier Eingänge Nr. O bis Nr. 3 aufweist.
Falls das Bit CQ den Binärwert Null hat, erscheint am Eingang
Nr. 3 des Codierers PE. ein Impuls, der die Erzeugung von zwei Bits veranlaßt, welche in codierter Form die Lage des als wirksam festgestellten Eingangs ausdrücken. Da der Eingang Nr. 3
809815/0789
erregt ist, liefert der Codierer PE1 einen Code, der im folgenden
"dritter Code" genannt wird. Die genannten zwei Bits werden einem Decodierer DC2 zugeführt, der durch das am Ausgang
des Decodierers DC. verfügbare Signal JM freigegeben wird. Die zwei Bits gelangen ferner an den Steuereingang eines Multiplexers
MTc, der vier Eingänge aufweist, die je vier Bits empfangen.
In betrachtetem Fall liefert der Multiplexer MT5 die am
Eingang Nr. 3 vorliegenden Bits I22 bis I.g aus, die am Ausgang
des Adressenregisters RI (Fig. 1) verfügbar sind und den Operationscode des gelesenen Befehls bilden. Da das Signal JM
wirksam ist, ist der Multiplexer MT2 so orientiert, daß er
ebenfalls die am Ausgang des Multiplexers MT5 verfügbaren Bits
abgibt.
In diesem Fall ist beim Decodierer DC2 der Ausgang Nr. 3
wirksam, an welchem ein Signal JM erscheint, das einem Ausführungs-Vielfachsprung
entspricht, weil der im Mikroprogramm vorgesehene Programmsprung darin besteht, den ersten Mikrobefehl
einer Ausführungsmikroroutine zu erkennen. Das Signal JM veranlaßt zusammen mit dem Bit I2^ des Operationscodes
eine besondere Einstellung der Bits R.-R3, die zusammen mit
den am Ausgang des Multiplexers MT5 verfügbaren Bits I22 bis
I.q die Adresse des ersten Mikrobefehls der zur Ausführung des
gelesenen Befehls vorgesehenen Mikroroutine angeben. Am Ausgang des binären Schaltwerks RL2 erscheint ein Impuls des
Signale c, der die Ladung der Adresse in den Zähler CC bewirkt; es wird also ein neuer Mikrobefehl gelesen.
Nun sei der Fall betrachtet, daß das Bit C=I ist und
daher am Eingang Nr. 3 des Prioritäts-Codierers PE. kein Impuls
vorliegt. Der Prioritätscodierer wird also einen Code erzeugen, der den als aktiv festgestellten Eingang ausdrückt,
mit Priorität des Eingangs Nr. 2 gegenüber dem Eingang Nr. 1. Falls sowohl am Eingang Nr. 2 als auch am Eingang Nr. 1 kein
Impuls vorliegt, wird der Code Nr. O erzeugt.Die Erzeugung
des Codes Nr. 2 bedeutet eine Unterbrechungsanforderung des
809815/0789
Arbeltsprogramms; diese Bedingung 2 entspricht einem "Verarbeitung s-Vie If achsprung" (Signal JM). Die Erzeugung des Codes
Mr. 1 gibt an, daß der gelesene Befehl ein Eingabe-Ausgabe-Befehl ist, und entspricht einem tingabe-Ausgabe-Vielfachsprung"
(Signal JM^). Der Code Nr. 0 entspricht dagegen einem "Lese-Vielfachsprung" (Signal JMf).
Es wird nun der Lese-Vielfachsprung gemäß dem Signal JM-betrachtet, der dann auftritt, wenn keine Unterbrechungen vorliegen, und wenn der gelesene Befehl kein Eingabe-Ausgabe-Befehl
ist. In diesem Fall erzeugt der Codierer PE. den Code Nr. 0, der zum Multiplexer MT5 und zum Decodierer DC2 gelangt. Der Multiplexer MTc gibt die am Eingang Nr. 0 vorliegenden Bits ab, und
der Decodierer DC2 erregt den Ausgang Nr. 0 und erzeugt das
Signal JMf. Zum Eingang Nr. 0 des Multiplexers MT5 gelangen
zwei Bits, die am Ausgang eines Multiplexers MT6 verfügbar
sind. Dieser wird durch ein Signal M gesteuert, das am Ausgang eines UND-Gliedes N, erscheint, welches durch die
ersten drei Bits des Operationscodes des zu untersuchenden Befehls gespeist wird. Zum Eingang Nr. 0 des Multiplexers
MTg gelangen die am Ausgang des Programmspeichers MP (siehe
Fig. 1) verfügbaren Bits m.« und m2o, während am Eingang Nr.
zwei Bits mit festem Binärwert vorliegen. Zum Eingang Nr. 0 des Multiplexers MTc gelangen außerdem die Bits m>7 und m.g
vom Ausgang des Programmspeichers MP. Wenn der gerade untersuchte Befehl ein Sprungbefehl ist, dann hat das Signal M
den Binärwert Null, weil auch die ersten drei Bits des Operationscodes eines Sprungbefehls alle den Binärwert Null haben.
Bei der Datenverarbeitungsanlage sind vier verschiedene Sprungbefehle vorgesehen, nämlich für direkten und indirekten
Sprung sowie für zwei durch zwei verschiedene Indexregister indizierte Sprünge. Hat das Signal M den Binärwert Null, so
liefert der Multiplexer MT6 die Bits m19 und ^2O' die den
gelesenen Sprungbefehl ausdrücken. Diese Bits gelangen zum Multiplexer MT5 zusammen mit den Bits m._ und m.g, welche die
809815/0789
Im betrachteten Befehl vorgesehene Adressierung ausdrücken.
Die Konfiguration "00" der Bits m._ und m«. kann nicht zum
Codieren von Sprungbefehlen benutzt werden, da sie nicht vom Operationscode eines Eingabe-Ausgabe-Befehls diskriminiert
werden könnte, der aus fünf Bits mit dem Binärwert Null besteht. Die Konfiguration "00" der Bits mig und m20 wird dagegen
für die Speicherbezugsbefehle benutzt/ deren Operationscode mindestens ein Bit mit dem Binärwert "1" in den ersten drei
Bits aufweist. In diesem Fall hat das Signal M den Binärwert "1", so daß der Multiplexer MT6 die beiden Bits mit dem Binärwert Null auswählt. Diese Bits gelangen zusammen mit den Bits
In17 und In1 g, die die Art der Adressierung (direkt, indirekt,
indiziert usw.) darstellen, zum Multiplexer MTc, und über den
Multiplexer MT2 gelangen sie zum Adressenspeicher MI, wobei
eine von den 16 durch die Bits R1 -R3 angegebenen Speicherzonen
bestimmt wird. Durch den Algorithmus des Lese-Vielfachsprunges gemäß dem Signal JMf ist daher sofort zu erkennen,
ob der gelesene Befehl ein Speicherbezugsbefehl ist (M = 1) , welche Adressierungsart vorgesehen worden ist (m._, m.«), ob
der gelesene Befehl ein Sprungbefehl (M = 0) ist, welcher Sprungbefehl gelesen worden ist (m.„, m2o) , und welche Adressierung
(m._, m.g) vorgesehen ist.
Es wird nun der Eingabe-Ausgabe-Vielfachsprung gemäß dem Signal JM. betrachtet, der dann auftritt, wenn der gelesene
Befehl ein Eingabe-Ausgabe-Befehl ist, so daß am Ausgang des UND-Gliedes N2 ein Impuls erscheint, der den Eingang Nr. 1 des
Prioritäts-Codierers PE1 aktiviert. In diesem Fall liefert der
Codierer PE1 den Code Nr. 1 aus, der den Eingang Nr. 1 des
Multiplexers MT5 auswählt, während der Decodierer DC2 das
Signal JM1 erzeugt. Der Multiplexer MT5 empfängt an seinem
Eingang Nr. 1 die Bits m.5 bis In1O, die am Ausgang des Programmspeichers
MP vorliegen und die Funktion darstellen, die der Eingabe-Ausgabe-Befehl ausführen muß. Die Bits ItU5 bis m.g
geben 16 mögliche Mikroroutinen zur Ausführung von ebensovielen Arten von Eingabe-Ausgabe-Befehlen an.
809815/0789
Aus den betrachteten Fällen ergibt sich» daß der Algorithmus des Vielfachsprunges (Signal JM), der zu einem Ausführung s -Vielfachsprung (Signal JMe) oder zu einem Eingabe-Ausgabe-Sprung (Signal JM1) wird, es ermöglicht, sofort auf
eine der 32 möglichen Mikroroutinen zu springen. Mit Bezug auf Fig. 1 ist ersichtlich, daß die erläuterten Untersuchungen an
den Bits m am Ausgang des Programmspeichers MP durchgeführt werden, während der ausgeführte Befehl im Befehlsregister Rl
gespeichert ist. Diese Untersuchung erfolgt im letzten Mikrobefehl jeder AusfUhrungsmikroroutine eines Befehls. Durch Prüfen des Ausgangs des Speichers MP wird daher der in Zukunft
auszuführende Befehl ermittelt.
Im letzten Mikrobefehl jeder AusfUhrungsmikroroutine steuern die Bits des Bit-Bereichs A einen Vielfachsprung
(Signal JM), und das Bit CQ des lit-Bereichs C hat einen
Binärwert 1. Wenn statt des Vielfachsprungsignals JM ein
Ausführungs-Vielfachsprung-Signal JM^ oder ein Eingabe-Ausgabe-Vielfachsprung-Signal JM. erzeugt wird, dann erscheint am Ausgang eines ODER-Gliedes N- ein Impuls f, der den Inhalt des
Programmzählers PC (siehe Fig. 1) der Datenverarbeitungsanlage erhöht, so daß die künftige Untersuchung des Befehls möglich
wird. Gleichzeitig bewirkt der Impuls f die übertragung des auszuführenden Befehls in das Befehlsregister RI, so daß
der Befehl für künftige Untersuchungen verfügbar ist. Das Signal JM- wird auch zur Steuerung der Übertragung der Bits
m_ bis m.c in das Adressenregister RA benutzt, das die im
Datenspeicher gespeicherten Daten bestimmt, deren Verarbeitung vorgesehen ist.
Es soll nun der Fall behandelt werden, daß das Arbeitsprogramm dann unterbrochen werden soll, wenn der letzte Mikrobefehl einer AusfUhrungs-Mikroroutine gerade ausgeführt wird.
Das Leitwerk sieht Signale für verschiedene Arten von Unterbrechungen vor, die an einer entsprechenden Anzahl von Eingängen eines Prioritats-Codierers PE2 erscheinen, der es
809815/0789
ermöglicht, daß manche Unterbrechungen (z.B. diejenigen, die vom Taktimpulsgeber der Verarbeitungsanlage bewirkt werden)
mit Priorität gegenüber anderen Unterbrechungsarten (z.B. Unterbrechungen aufgrund der Steuerung der Paritätsbits) zu behandeln
sind. Diese verschiedene Unterbrechungsarten werden durch den Codierer PE2 mit drei Bits codiert, die dem Multiplexer MT5
am Eingang Nr. 2 zugeführt werden. Außer diesen drei Bits empfängt der Multiplexer MT5 an seinem Eingang Nr. 2 auch ein
Bit vom Ausgang einer bistabilen Kippschaltung FF., der durch einen externen Befehl zum Sperren der Unterbrechungen erregt
wird (Signal f^). Wenn der Ausgang der bistabilen Kippschaltung FF. erregt ist und irgendeine periphere Einheit eine
Unterbrechung verlangt, dann wird diese Unterbrechung nicht behandelt, sondern das laufende Arbeitsprogramm fortgesetzt.
Der Multiplexer MT5 wird vom Prioritäts-Codierer PE1 adressiert,
der in diesem Fall den Code Nr. 2 erzeugt, weil am Eingang Nr.2 ein durch ein Unterbrechungsleitwerk UI erzeugter Impuls 1.
liegt. Die Erzeugung des Codes Nr. 2 veranlaßt die Erregung des Ausgangs Nr. 2 des Decodierers DC2, der das Signal JM
liefert. Dieses Signal bewirkt eine besondere Einstellung der Bits R1-R3 (wie aus den logischen Gleichungen 1), 2) und 3)
ersichtlich ist), welche zusammen mit den am Eingang des Multiplexers MT5 vorliegenden Bits eine von 16 möglichen zur
Führung der Unterbrechungen vorgesehenen Mikroroutinen angeben. Da im betrachteten Fall der Vielfachsprung JM zu einem Verarbeitungs-Vielfachsprung JM wird, wird der Inhalt des Programmzählers PC der Verarbeitungsanlage nicht erhöht, weil am Auegang des ODER-Gliedes N3 kein Impuls f erzeugt wird. Der
nächste Befehl wird im letzten Mikrobefehl der Mikroroutine zur Führung der betrachteten Unterbrechung gelesen.
Im Unterbrechungsleitwerk UI ist eine bistabile Kippschaltung FF2 vorgesehen, welche auf ihren Rücksetzeingang den
Impuls 1, empfängt, der von einem binären Schaltwerk RL^ nach
folgender logischen Gleichung erzeugt wird:
809815/0789
11 * (g * fl * *2} * JM * Co
Hierbei ist g ein Signal, das am Ausgang des Prioritats-Codierers PE2 nach Eintreffen einer Unterbrechungsanforderung
erzeugt wird, während das Signal f. am Ausgang der bistabilen Kippschaltung FF, bei freigegebenen Unterbrechung erzeugt wird.
Das Signal f2 ist das Ausgangssignal der bistabilen Kippschaltung FF2 t dessen Erzeugung bedeutet, daß eine Unterbrechung
behandelt worden ist, so daß vor einer weiteren Unterbrechung mindestens ein Befehl des Arbeitsprogramms ausgeführt werden
muß. Die bistabile Kippschaltung FF2 empfängt an ihrem Setzeingang einen Impuls I2 vom Ausgang eines binären Schaltwerks
RLc, welches der folgenden logischen Gleichung entspricht:
12 - (g . tx . I2) . JM . C0
Das Signal fj gelangt zusammen mit einem Signal f^, das bei
einer Operator-Unterbrechung erzeugt wird, zu einem ODER-Glied N4, an dessen Ausgang das Signal 1 verfügbar ist.
Nach Untersuchung des Algorithmus des Verarbeitungs-Vielfachsprunges gemäß dem Signal JM sieht das erfindungsgemäß
realisierte Leitwerk die in dem obigen FIußdiagramm dargestellte Lesephase F nicht vor, da die Prüfung der Art des gelesenen Befehls zur Bestimmung der zugehörigen Ausführungsmikroroutine während der Ausführung des letzten Mikrobefehls
der Ausführungsmikroroutine des vorhergehenden Befehls erfolgt. Somit ist es durch den Algorithmus des Vielfachsprunges gemäß
dem Signal JM möglich, sofort auf eine der 48 möglichen Ausführungsmikroroutinen des gelesenen Befehls zu springen.
809815/0789
e e r s e ι t e
Claims (14)
10142/H/Ro.
(DB 369)
Ital.Anm.Nr.28067 A/76
vom 7.10.1976
Societä Italiana Telecomunicazioni
Siemens s.p.a.
Piazzale Zavattari 12, Mailand/Italien
Piazzale Zavattari 12, Mailand/Italien
Patentansprüche
Mikroprogramm-Leitwerk für eine Datenverarbeitungsanlage, ie ein Rechenwerk, einen durch einen Programmzähler adressierten
und seinen Inhalt an ein Befehlsregister abgebenden Programmspeicher, einen durch den Inhalt eines Adressenregisters
adressierten Datenspeicher sowie Arbeitsspeicher enthält, mit einem Mikroprogrammspeicher zur Speicherung der Mikrobefehle,
einem Mikroprogrammzähler, dessen binäre Ausgangskonfiguration den Mikroprogrammspeicher adressiert, einem Sprungadressenspeicher,
dessen Ausgang mit dem Dateneingang des Zählers verbunden ist, einem ersten Multiplexer mit einer Vielzahl von
Eingängen für jeweils eine Information über ein entsprechendes Ereignis, der durch die in jedem Mikrobefehl vorgesehenen Bits
gesteuert wird, und dessen Ausgang mit dem Dateneingabe-Steuereingang des Zählers sowie über einen Inverter mit dem Zähleingang
des Zählers verbunden ist, und einem zweiten Multiplexer, der an einem Eingang die in den Mikrobefehlen vorgesehenen
Sprungadressen-Bits und an einen anderen Eingang die von außen zum Leitwerk kommenden Sprungadressen-Bits empfängt,
dadurch gekennzeichnet, daß eine Schaltungsanordnung (Fig. 3) vorgesehen ist, die den in Zukunft auszuführenden
Befehl ermittelt, wenn der letzte Mikrobefehl der Ausführungsmikroroutine des vorhergehenden Befehls noch ausgeführt
wird, und die gleichzeitig die Adresse der zur Ausführung dieses ermittelten Befehls vorgesehenen Mikroroutine be-
809815/0789
ORIGINAL INSPECTED
stimmt.
2.) Leitwerk nach Anspruch 1, dadurch gekennzeichnet , daß die Bits eines in jedem im Mikroprogrammspeicher
(MM) gespeicherten Mikrobefehl vorgesehenen, einen Mikrobefehlsbereich darstellenden ersten Bereiches (W)
zur Sendung von Befehlen zu den die Verarbeitungsanlage bildenden
Einheiten benutzt wird, daß die Bits eines zweiten Bereiches (A) dieser Mikrobefehle, der einen Bereich zur Führung des Programmablaufs
der Datenverarbeitungsanlage darstellt, zur Erkennung des auf den jeweils vorliegenden Mikrobefehl folgenden
Mikrobefehls benutzt wird, und daß die Bits eines dritten Bereiches (C) der Mikrobefehle, der den Sprungadressenbereich
darstellt, zur Gewinnung der Adresse des Mikroprogrammspeichers benutzt wird, zu welchem gesprungen werden soll.
3.) Leitwerk nach Anspruch 2, dadurch gekennzeichnet , daß zur Erkennung der in Zukunft durchzuführenden
Operation ein erster Prioritäts-Codierer (PE.) vorgesehen ist, der mehrere Eingänge aufweist und einen Code erzeugt,
der die Lage des als aktiv festgestellten Prioritätseingang ausdrückt; daß an einem Eingang Nr. i mit kleinerer Priorität
ein Bit mit festem Binärwert vorhanden ist, das die Erzeugung eines zugehörigen Codes Nr. O bewirkt, wenn an den Eingängen mit
größerer Priorität kein Impuls vorhanden ist; daß an den Eingang Nr. i + 1 ein erstes UND-Glied (N2) geschaltet ist, dessen Ausgangsimpuls
dann die Erzeugung eines Codes Nr. 1 bewirkt, wenn am Eingang des UND-Gliedes (N2) eine binäre Konfiguration entsprechend
dem Operationscode der am Ausgang des Programmspeichers (MP) verfügbaren Eingang-Ausgangsbefehle vorliegt; daß
an den Eingang Nr. i + 2 ein Unterbrechungsleitwerk (UI) geschaltet
ist, durch dessen Ausgangssignal (1) die Erzeugung eines Codes Nr. 2 bei Vorhandensein einer Anforderung zur
Unterbrechung des Arbeitsprogramms bewirkt wird, wenn die vorgesehenen Bedingungen zur Führung der eingetroffenen Unterbrechung
sanf orderung erfüllt sind; und daß dem Eingang mit größerer
809815/0789
Priorität ein das weniger bedeutsame Bit des dritten Mikrobefehlsbereichs (C) bildendes Bit (CQ) zugeführt wird, das
die Erzeugung eines Codes Nr. 3 bewirkt.
4.) Leitwerk nach Anspruch 3, dadurch gekennzeichnet , daß der Adressenspeicher (MI) in mehrere
Bereiche aufgeteilt ist, jeder Bereich aus mehreren Zonen besteht und zur Feststellung der Speicherzone, in welcher die
Adresse der zur Ausführung des Befehls vorgesehenen Mikroroutine gespeichert ist, ein erster Decodierer (DC1) vorgesehen ist, der durch die Bits des zweiten Bereichs (A) jeden
Mikrobefehls gespeist wird und mit einem Ausgangssignal (JM), das erzeugt wird, wenn das Mikroprogramm einen Sprung auf
eine Adresse vorsieht, die aus von außen zum Leitwerk kommenden Bits erhalten werden kann, einen zweiten Decodierer (DC2)
freigibt, der durch die vom ersten Prioritäts-Codierer (PE-) abgegebenen Codes gespeist wird; daß die Ausgänge der beiden
Decodierer (DC., DC2) ein erstes binäres Schaltwerk (RL,) speisen, welches eine binäre Konfiguration (R1-R3) erzeugt, die
zur Feststellung des Adressenspeicherbereiches benutzt wird, in welchem die Adresse der Ausführungsmikroroutine gespeichert
ist; und daß die Codes vom ersten Prioritäts-Codierer (PE.) dem Prüfeingang eines dritten Multiplexers (MTc) zugeführt
sind, dessen binäre Ausgangs-Konfiguration eine der Zonen in dem festgestellten Speicherbereich angibt.
5.) Leitwerk nach Anspruch 4, dadurch gekennzeichnet , daß der dritte Multiplexer (MTc) an seinem
durch den Code Nr. 0 ausgewählten Eingang eine binäre Konfiguration empfängt, die aus den am Ausgang des Programmspeichers
(MP) verfügbaren Bits (ml7 und m.g) besteht, welche die im jeweiligen Befehl vorgesehene Adressierungsart ausdrücken, und
aus Bits, die am Ausgang eines vierten Multiplexers (MTg) verfügbar sind, der an einem Eingang Bits mit festem Binärwert
und an einem anderen Eingang die beiden weniger bedeutsamen Bits (m.Q, m. ) des Operationscodes der Befehle vom Ausgang des
809815/0789
Programmspeichers (MP) empfängt, und daß der vierte Multiplexer (MT,) durch ein Bit (M) vom Ausgang eines zweiten UND-Gliedes
(N.) gesteuert wird, das durch die drei bedeutsameren Bits des Operationscodes der am Ausgang des Programmspeichers (MP)
vorliegenden Befehle gespeist wird.
6.) Leitwerk nach Anspruch 4 oder 5, dadurch gekennzeichnet , daß der dritte Multiplexer (MT5) an
seinem durch den Code Nr. 1 vom ersten Prioritäts-Codierer (PE1) ausgewählten Eingang die Ausgangsbits (In15 bis m.g) des
Programmspeichers (MP) empfängt, welche die Art der Funktion ausdrücken, die ein Eingabe-Ausgabe-Befehl jeweils ausfuhren
soll.
7.) Leitwerk nach Anspruch 4, 5 oder 6, dadurch gekennzeichnet , daß der dritte Multiplexer (MT5)
an seinem durch den Code Nr. 2 ausgewählten Eingang eine binäre Konfiguration vom Ausgang eines zweiten Prioritäts-Codierers
(PE-) empfängt, der an einer Vielzahl von Eingängen Signale empfängt, wenn die dort angeschlossenen Stromkreise eine
Unterbrechung des Arbeitsprogramms fordern; und daß zusammen mit den vom zweiten Prioritäts-Codierer (PE2) erzeugten Impulsen
zum gleichen Eingang des dritten Multiplexers (MT5) ein Bit
gelangt, das von einer ersten bistabilen Kippschaltung (FF1) erzeugt
wird, wenn sie einen Befehl zum Sperren der Unterbrechungsan^-forderungen
empfängt.
8.) Leitwerk nach einem der Ansprüche 4 bis 7, dadurch gekennzeichnet , daß der dritte Multiplexer
(MT5) auf seinen Eingang, der durch den vom ersten Prioritäts-Codierer
(PE1) kommenden Code Nr. 3 ausgewählt wird, die am Ausgang des Befehlsregisters (RI) erzeugten Bits (I22 ^8 1I^
empfängt, welche den Operattmscode des gelesenen Befehls ausdrücken
.
9.) Leitwerk nach einem der Ansprüche 4 bis 8, dadurch
gekennzeichnet , daß der Inhalt des Programm-
809815/0789
Zählers (PC) durch das Ausgangssignal (£) eines ersten ODER-Gliedes (N3) erhöht wird, welches durch die AusgangsSignaIe
der zweiten Decodiereinheit (DC2) gespeist wird, die dann erzeugt werden, wenn der erste Prioritäts-Codierer (PE.) den
Code Nr. O oder den Code Nr. 1 erzeugt, und daß das Signal (£) des ODER-Gliedes (N3) auch die übertragung des Befehls in das
Befehlsregister (RI) steuert.
10.) Leitwerk nach Anspruch 7, 8 oder 9, dadurch gekennzeichnet , daß das Unterbrechungsleitwerk (UI)
eine zweite bistabile Kippschaltung (FF-) enthält, die durch das Ausgangssignal (1.) eines zweiten binären Schaltwerks
(RL4) in den Null-Zustand und durch das Ausgangssignal (I2)
eines dritten binären Schaltwerkes (RL5) in den Eins-Zustand
gebracht wird; und daß das Ausgangssignal (1) des Unterbrechungsleitwerks (UI) am Ausgang eines zweiten ODER-Gliedes
(N4) verfügbar ist, das durch das invertierte Signal vom Ausgang des zweiten binären Schaltwerks (RL4) sowie durch ein
Signal (f3) gespeist wird, das dann erscheint, wenn der Operator eine Unterbrechung des Arbeitsprogramms verlangt.
11.) Leitwerk nach einem der Ansprüche 2 bis 10, dadurch gekennzeichnet , daß der erste Multiplexer (MT.)
einen vierten und einen fünften Multiplexer (MT3 und MT4) enthält, die an ihrem Prüfeingang die bedeutsameren Bits des
dritten Bereiches (C) des Mikrobefehls empfangen, daß der vierte Multiplexer (MT3) durch ein Ausgangssignal (JC) des
ersten Decodierers (DC1) freigegeben wird, das dann erzeugt
wird, wenn das Arbeitsprogramm einen bedingten Sprung vorsieht, und daß der fünfte Multiplexer (MT4) durch ein Signal
(KC) freigegeben wird, das ebenfalls von dem ersten Decodierer (DC.) erzeugt wird, wenn das Arbeitsprogramm eine bedingte Programmfortsetzung vorsieht.
12.) Leitwerk nach Anspruch 11, dadurch gekennzeichnet , daß der Mikroprogrammzähler (CC) einen
809815/0789
Dateneingabebefehl (c) von einem vierten binären Schaltwerk (RL2) empfängt, das durch die vom ersten Decodierer (DC.) erzeugten
Signale (KC, J, JM) und durch ein Ausgangssignal (Mt3) des vierten Multiplexers (MT3) gespeist wird.
13.) Leitwerk nach Anspruch 11 oder 12, dadurch gekennzeichnet , daß der Mikroprogrammzähler (CC)
an seinem Zähleingang (k) Impulse vom Ausgang eines fünften binären Schaltwerkes (RL3) empfängt, welches durch ein Ausgangssignal
(JC) des ersten Decodierers (DC.) sowie durch die vom vierten und fünften Multiplexer (MT3 bzw. MT4) erzeugten
Signale (Mt3 bzw. Mt4) gespeist wird.
14.) Leitwerk nach einem der Ansprüche 4 bis 14, dadurch gekennzeichnet , daß in das Adressenregister (RA)
die am Ausgang des Programmspeichers (MP) verfügbaren Bits (mQ
bis iHic) übertragen werden, die die Adresse des Operanden eines
Steuerbefehls ausdrücken, wenn der zweite Decodierer (DC-) bei
Erscheinen des Codes Nr. 0 ein Signal (JMf) erzeugt.
809815/0789
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
IT28067/76A IT1123613B (it) | 1976-10-07 | 1976-10-07 | Unita' di controllo a microprogrammi per elaboratori di dati |
Publications (1)
Publication Number | Publication Date |
---|---|
DE2745204A1 true DE2745204A1 (de) | 1978-04-13 |
Family
ID=11222859
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE19772745204 Withdrawn DE2745204A1 (de) | 1976-10-07 | 1977-10-07 | Mikroprogramm-leitwerk fuer eine datenverarbeitungsanlage |
Country Status (7)
Country | Link |
---|---|
US (1) | US4160289A (de) |
AU (1) | AU515695B2 (de) |
BR (1) | BR7705096A (de) |
DE (1) | DE2745204A1 (de) |
IT (1) | IT1123613B (de) |
MX (1) | MX143613A (de) |
NZ (1) | NZ185183A (de) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2489552A1 (fr) * | 1980-09-02 | 1982-03-05 | Italtel Spa | Unite de controle d'un module entree-sortie d'un ordinateur electronique |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4342078A (en) * | 1979-05-21 | 1982-07-27 | Motorola, Inc. | Instruction register sequence decoder for microprogrammed data processor and method |
US4386399A (en) * | 1980-04-25 | 1983-05-31 | Data General Corporation | Data processing system |
US4398244A (en) * | 1980-05-07 | 1983-08-09 | Fairchild Camera & Instrument Corporation | Interruptible microprogram sequencing unit and microprogrammed apparatus utilizing same |
EP0500151B1 (de) * | 1985-11-08 | 2000-03-01 | Nec Corporation | Mikroprogrammsteuereinheit |
US4821183A (en) * | 1986-12-04 | 1989-04-11 | International Business Machines Corporation | A microsequencer circuit with plural microprogrom instruction counters |
JP2510591B2 (ja) * | 1987-06-12 | 1996-06-26 | 株式会社日立製作所 | 命令処理装置 |
US5058007A (en) * | 1987-11-05 | 1991-10-15 | Raytheon Company | Next microinstruction generator in a microprogram control unit |
US5333287A (en) * | 1988-12-21 | 1994-07-26 | International Business Machines Corporation | System for executing microinstruction routines by using hardware to calculate initialization parameters required therefore based upon processor status and control parameters |
JPH0312742A (ja) * | 1989-06-09 | 1991-01-21 | Ricoh Co Ltd | 中央演算処理装置 |
US5630083A (en) * | 1994-03-01 | 1997-05-13 | Intel Corporation | Decoder for decoding multiple instructions in parallel |
JP3676882B2 (ja) | 1996-06-12 | 2005-07-27 | 株式会社リコー | マイクロプロセッサ及びその周辺装置 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3593313A (en) * | 1969-12-15 | 1971-07-13 | Computer Design Corp | Calculator apparatus |
GB1426748A (en) * | 1973-06-05 | 1976-03-03 | Burroughs Corp | Small micro-programme data processing system employing multi- syllable micro instructions |
US4050058A (en) * | 1973-12-26 | 1977-09-20 | Xerox Corporation | Microprocessor with parallel operation |
US3972024A (en) * | 1974-03-27 | 1976-07-27 | Burroughs Corporation | Programmable microprocessor |
US3990054A (en) * | 1974-11-05 | 1976-11-02 | Honeywell Inc. | Microprogram organization techniques |
GB1468642A (en) * | 1975-01-07 | 1977-03-30 | Burroughs Corp | Data processing systems |
US4047247A (en) * | 1976-04-07 | 1977-09-06 | Honeywell Information Systems Inc. | Address formation in a microprogrammed data processing system |
US4064554A (en) * | 1976-08-16 | 1977-12-20 | Texas Instruments Incorporated | Microcomputer with code conversion |
US4038533A (en) * | 1976-09-29 | 1977-07-26 | Allen-Bradley Company | Industrial control processor system |
-
1976
- 1976-10-07 IT IT28067/76A patent/IT1123613B/it active
-
1977
- 1977-07-01 MX MX169707A patent/MX143613A/es unknown
- 1977-08-03 BR BR7705096A patent/BR7705096A/pt unknown
- 1977-09-15 NZ NZ185183A patent/NZ185183A/xx unknown
- 1977-10-06 US US05/839,883 patent/US4160289A/en not_active Expired - Lifetime
- 1977-10-06 AU AU29436/77A patent/AU515695B2/en not_active Expired
- 1977-10-07 DE DE19772745204 patent/DE2745204A1/de not_active Withdrawn
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2489552A1 (fr) * | 1980-09-02 | 1982-03-05 | Italtel Spa | Unite de controle d'un module entree-sortie d'un ordinateur electronique |
Also Published As
Publication number | Publication date |
---|---|
MX143613A (es) | 1981-06-10 |
BR7705096A (pt) | 1978-07-04 |
IT1123613B (it) | 1986-04-30 |
US4160289A (en) | 1979-07-03 |
AU2943677A (en) | 1979-04-12 |
AU515695B2 (en) | 1981-04-16 |
NZ185183A (en) | 1981-05-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2224537C2 (de) | Einrichtung und Verfahren zur Instruktionsauswahl in einem Fließbandprozessor | |
DE2744531C2 (de) | Anordnung zur Auswahl von Unterbrechnungsprogrammen in einer Datenverarbeitungsanlage | |
DE2714805C2 (de) | ||
DE1549532C2 (de) | Unterbrechungs-Direktorschalrwerk für eine Datenverarbeitungsanlage mit mehreren Rechenanlagen und mehreren perpheren Geräten | |
DE3852928T2 (de) | Datenprozessor mit A/D-Umsetzer, um mehrere analoge Eingabekanäle in Digitaldaten umzusetzen. | |
DE69030931T2 (de) | Mehrfachsequenzprozessorsystem | |
DE2411963B2 (de) | Datenverarbeitungsanlage | |
EP0048767A1 (de) | Prioritätsstufengesteuerte Unterbrechungseinrichtung | |
DE2847934A1 (de) | Datenverarbeitungseinrichtung mit einem mikrobefehlsspeicher | |
DE1549523B2 (de) | Datenverarbeitungsanlage | |
DE3400723C2 (de) | ||
DE2712224A1 (de) | Datenverarbeitungsanlage | |
DE1549474C3 (de) | Anordnung In einer elektronischen digitalen Datenverarbeitungsanlage zur Ausführung eines ersten Befehls und gleichzeitigen Decodierung eines folgenden Befehls | |
DE2721623C2 (de) | ||
DE2722124A1 (de) | Anordnung zum feststellen des prioritaetsranges in einem dv-system | |
EP0006164A1 (de) | Multiprozessorsystem mit gemeinsam benutzbaren Speichern | |
DE1474062B2 (de) | Datenverarbeitungsanlage mit einer anzahl von pufferspeichern | |
DE2745204A1 (de) | Mikroprogramm-leitwerk fuer eine datenverarbeitungsanlage | |
EP0010185A1 (de) | Virtuell-Adressiervorrichtung für einen Computer | |
DE2911909C2 (de) | Digitales Datenverarbeitungsgerät | |
DE1499206B2 (de) | Rechenanlage | |
DE2657897A1 (de) | Externes geraet, das die ureingabe fest gespeichert enthaelt, fuer elektronische datenverarbeitungsanlagen mit einem zentralen speicher | |
DE3587517T2 (de) | Paralleler Registertransfermechanismus für Reduktionsprozessor zur Durchführung von Programmen die als binäre Graphen gespeichert sind und die Anwendungssprachenkodes ohne Variablen verwenden. | |
DE2245284A1 (de) | Datenverarbeitungsanlage | |
DE2759120C2 (de) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OAM | Search report available | ||
OC | Search report available | ||
8139 | Disposal/non-payment of the annual fee |