DE2745204A1 - Mikroprogramm-leitwerk fuer eine datenverarbeitungsanlage - Google Patents

Mikroprogramm-leitwerk fuer eine datenverarbeitungsanlage

Info

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
Application number
DE19772745204
Other languages
English (en)
Inventor
Mario Dipl Ing Bambara
Adriano Dipl Ing Querze
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Italtel SpA
Original Assignee
Societa Italiana Telecomunicazioni Siemens SpA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Societa Italiana Telecomunicazioni Siemens SpA filed Critical Societa Italiana Telecomunicazioni Siemens SpA
Publication of DE2745204A1 publication Critical patent/DE2745204A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • G06F9/26Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
    • G06F9/262Arrangements for next microinstruction selection
    • G06F9/268Microinstruction selection not based on processing results, e.g. interrupt, patch, first cycle store, diagnostic programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program 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
Tabelle A
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
Tabelle B
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
Tabelle C
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
Tabelle D
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.
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-
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
Tabelle F
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
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
DE19772745204 1976-10-07 1977-10-07 Mikroprogramm-leitwerk fuer eine datenverarbeitungsanlage Withdrawn DE2745204A1 (de)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (1)

* Cited by examiner, † Cited by third party
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