DE2548720C2 - Mikroprogramm-Steuerwerk - Google Patents
Mikroprogramm-SteuerwerkInfo
- Publication number
- DE2548720C2 DE2548720C2 DE2548720A DE2548720A DE2548720C2 DE 2548720 C2 DE2548720 C2 DE 2548720C2 DE 2548720 A DE2548720 A DE 2548720A DE 2548720 A DE2548720 A DE 2548720A DE 2548720 C2 DE2548720 C2 DE 2548720C2
- Authority
- DE
- Germany
- Prior art keywords
- memory
- microprogram
- control unit
- processor
- control
- 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.)
- Expired
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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/22—Microcontrol or microprogram arrangements
- G06F9/223—Execution means for microinstructions irrespective of the microinstruction function, e.g. decoding of microinstructions and nanoinstructions; timing of microinstructions; programmable logic arrays; delays and fan-out problems
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
- Debugging And Monitoring (AREA)
Description
Die Erfindung betrifft ein Mikroprogramm-Steuerwerk nach dem Oberbegriff des Patentanspruchs I.
Ein nennenswerter Prozentsatz aller in den letzten Jahren gebauter Computer benutzte mikroprogrammierte Steuereinheiten zur Steuerung der durch die zentrale Verarbeitungseinheit (CPU) während dir Ausführung
Ein nennenswerter Prozentsatz aller in den letzten Jahren gebauter Computer benutzte mikroprogrammierte Steuereinheiten zur Steuerung der durch die zentrale Verarbeitungseinheit (CPU) während dir Ausführung
eines Befehles ausgeführten Operationen. Unter Steuerung der mikroprograrnmierten Steuereinheit wird der
Befehl durch Ausführung einer Folge von Elementaroperationen in einer Reihenfolge von CPU-Zyklen ausgeführt
wobei jede Elementaroperation innerhalb eine: CPU-Zyklus abgeschlossen ist. Während jedes Zyklus
werden Elementaroperationen unter der Steuerung einer Mikroinstruktion ausgeführt, die von der Steuereinheit
adressiert und aus dem Mikroprogrammspeicher abgerufen wurde. Allgemein werden innerhalb eines
CPU-Zyklus mehr als eine Elementaroperation parallel und/oder sequentiell innerhalb des Zyklus ausgeführt
Jede Elementaroperation wird unter Steuerung eines Mikrobcfehles ausgeführt. Eine Mikroinstruktion enthält
somit mehrere Mikroaufträge, von denen jede während eines CPU-Zyklus ausgeführt wird. Eine Folge von
Mikroinstruktionen, die eine gegebene Funktion ausführen (z. B. eine Software-Instruktion) bilden ein Mikroprogramm
oder eine Mikroroutine.
so In den meisten mikroprogrammierten Datenverarbeitungsanlagen wird die Ablauffolge der Mikroinstruktionen
durch Verwendung eines Teiles einer jeden Mikroinstruktion zur Angabe der Adresse der nächsten auszuführenden
Mikroinstruktion erreicht. Der nächste Adreßteil wird, zusammen mit den Verzweigungssteuersignalen,
dem Adreßregister des Steuerspeichers zugeführt, um die nächste auszuführende Mikroinstruktion zu
wählen. Wenn in einer solchen Anlage eine gegebene Mikroinstruktion in mehreren verschiedenen Mikroroutinen
benutzt wird, wird sie an mehreren verschiedenen Stellen innerhalb eines Mikroprogramm-Steuerspeichers
gespeichert. Diese Mehrfachspeicherung ist ein Faktor, der den Steuerspeicher vergrößert.
Ein anderer, die Größe der Steuereinheit beeinflußender Faktor ist die Mikrobefehlsdichte. Innerhalb jeder
Mikroinstruktion werden verschiedene Felder bestimmten Typen oder Klassen von Mikrobefehlen zugeordnet.
Wenn innerhalb einer gegebenen Mikroinstruktion eine oder mehrere Mikrobefehlsklassen nicht benutzt wer-
bQ den, dann enthalten die zugeordneten Felder keine Information, die für das System von wesentlicher Bedeutung
ist. Das Vorhandensein von Feldern im Mikroprogrammspeicher, die keine für das System wertvolle information
enthalten, führt ebenso zur Vergrößerung des Steuerspeichers.
Verminderte Leistung des Steuerspeicheruntersystems in Verbindung mit den obenerwähnten Aspekten der
Adressenverzweigung zeigt sich, wenn eine neue Folge von Mikroinstruktionen aufgrund einer neuen Makroinstruktion
eingeleitet werden muß. Während der Ausführung einer bestimmten Makroinstruktion, kann eine
Anzahl von Bedingungen erfüllt sein müssen, bevor die Ausführung der nächsten Makroinstruktion eingeleitet
werden kann. Bei Abschluß eines Mikroprogrammes muß eine bestimmte Mikroinsiruktion decodiert werden
um anzuzeigen, daß die Ausführung der gegenwärtigen Makroinstruktion abgeschlossen ist, bevor der Opera-
tionscode der nächsten Instruktion untersucht und zur Steuerung des Startes der nächsten Mikroinstruktionsfolge
benutzt werden kann. Es ist ein kompletter Systemzyklus erforderlich, um diese Bestimmung treffen zu
können, und die jeweilige Mikroinstruktion, die das Ende der Operation (EOP) anzeigt, leistet nur wenig
effektive Arbeit
Außer des Verlustes eines Maschinenzyklus für die Feststellung, ob eine Operation auf einer bestimmten
Makroinstruktion abgeschlossen ist oder nicht, ergibt sich eine zusätzliche Unwirksamkeit zu der Zeit, wenn der
Operationscode der nächsten auszuführenden Instruktion analysiert wird. Im herkömmlichen System wird
mindestens ein Teil des Operationscodes (OP-CODE) zur Bildung der Adresse der ersten Mikroinstruktion der
zur Ausführung der Makroinstruktion benötigten Folge benutzt. Bei Anwendung dieser Technik muß in jeder
Mikroinstruküon eine Anzahl von binären Bitpositionen nur für die Analyse des OP-Codes reserviert werden,
um die Möglichkeit zu schaffen, eine 64fach-Verzweigung durchzuführen. Diese binären Bitpositionen sind für
alle anderen Mikroinstruktionen vergeudet.
Eine allgemeine Beschreibung des Verfahrens zur Implementierung eines Mikroprogramm-Steuerspeichers
befindet sich in dem Artikel »Microprogram Control For System/360« von S. G. Tucker, IBM Systems Journal.
Vol. 6, Nr. 4,1967, Seiten 222—241. Dieser Artikel wird hiermit zur Darstellung von Verfahren zur Adressierung
eines Steuerspeichers, der Unterteilung von Mikroinstruktionen in verschiedene Felder und der Verfahren zur
Decodierung und zur Verzweigungsentscheidung angeführt
Um die Wortlänge der Mikroinstruktion zu reduzieren wird eine Decodierschaltung benutzt, d<e ein bestimmtes
Signalmuster (Teil einer Mikroinstruktion) erkennt und automatisch ein größeres Signalmuster erzeugt (der
erweiterte oder volle Satz von Steuersignalen, die von den Verarbeitungselementen des Prozessors benötigt
werden). Diese Decodierschaltung müßte jedesmal geändert oder ausgetauscht werden, wenn c;ne Instruktion
so geändert wird, daß ein neues Stcucrsignalmtister erforderlich ist Das bedeutet, daß nach einmaliger Definition
ein hoher Allgemeinkostensatz entsteht um den Mikroinstruktionssatz durch Änderung auf den neuesten
Stand zu bringen.
In Anbetracht dieser Nachteile ist es die Aufgabe der vorliegenden Erfindung eine Mikroprogramm-Steuereinheit
anzugeben, die den verfügbaren Steuerspeicherplatz besser nützt und sich gegenüber Änderungen des
Steuerprogrammes, also des Mikroprogrammes, wesentlich wirtschaftlicher verhält, als es bisher bekannt wurde.
Gelöst wird diese Aufgabe der Erfindung durch die im Patentanspruch 1 angegebenen Merkmale.
Vorteilhafte Weiterbildungen und Ausgestaltungen des Gegenstandes der Erfindung sind den Unteransprüchen
zu entnehmen.
Der Vorteil einer solchen Mikroprogrammsteuerung geht aus der Überlegung hervor, daß an einem Punkt in
einen Mikroinstruktionszyklus viele, wenn nicht die meisten Verarbeitungselemente leerlaufen. In konventionellen
Anordnungen braucht ein Verarbeitungselement nur ein Steuersignal, wenn es aktiv werden soll, wobei
dieses Signal gleicherweise an die Verarbeitungselemente des Prozessors und die Verarbeitungselemente der
interaktiven Steuereinheit angelegt wird. Daraus folgt, daß durch entsprechende Zuordnung von Verarbeitungselementen
der interaktiven Steuereinheit zu Verarbeitungselementen des Prozessors der größte Teil der im
Mikroprogrammspeicher herkömmlicher Art benötigten Leerstellen eliminiert werden kann. Außerdem braucht
die Decodierschaltung nicht mehr alle durch die Steuereinheit erzeugten Steuersignale auf ihren vollen Umfang
zu erweitern.
Gegenüber Decodierschaltungen herkömmlicher Art kann das hier vorgeschlagene System außerdem durch
Schreiben neuer Daten in die interaktive Steuereinheit leicht geändert werden.
Ein Ausführungsbeispiel der Erfindung ist in den Zeichnungen dargestellt und wird im folgenden näher
erläutert.
Es zeigt
F i g. 1 das Blockschaltbild eines einfachen konventionellen Prozessors,
Fig.2 das Blockschaltbild einer 5mal in der in Fig.3 gezeigten Steuerschaltung benutzten interaktiven
Steuereinheit und
F i g. 3 das Blockschaltbild des Mikroprogramm-Steuerwerks (Mikroprogramm-Steuereinheit).
Ein Datenprozessor enthält in seiner einfachsien Form einen Arbeitsspeicher und einen Hauptspeicher, und
Daten können in jeden Speicher geschrieben und wieder aus dem Speicher gelesen werden. Außerdem enthält
der Datenprozessor eine arithmetische und logische Einheit (ALU), die Daten in einer aus einer begrenzten
Anzahl von Möglichkeiten ausgewählten Art kombinieren und verändern kann. Der Grundoperationszyklus
beginnt in einem oder in beiden Speichern mit dem Lesen von einem oder mehreren Datenwörtern, Operanden
genannt, die der ALU zugeführt und von ihr verändert werden. r>a<
> resultierende Datenwort wird in den einen oder den anderen Speicher zurückgesetzt. Um die Verarbeitung zu beschleunigen ist es nützlich, einen separaten
Mechanismus einzubauen, der die Adresse der anzusprechenden Speicherste!!·.: berechnen kann ohne die Dienste
der ALU in Anspruch nehmen zu müssen, und zwar zusammen mit einer Maskierungseinheit, mit einer
Einrichtung zum Wählen nur eines Teiles eines Datenwortes, einem Haltemechanismus zum Festhalten eines
Operanden, bis ein zweiter Operand, mit dem der erste zu kombinieren ist, zur Verfügung steht und ein am
Ergebnisregister zum Festhalten der Ausgabe der ALU, bis derjenige Speicher, in den geschrieben werden soll
(oder manchmal der Adressiermechanismus) zum Empfang dieser Daten zur Verfügung steht. Alle diese Einheiten
sind miteinander durch Datenwege verbunden, die durch Torschaltungen gesteuert werden, die eine allgemeine
Konfiguration der in F i g. 1 gezeigten Art bilden, die an sich konventionell ist.
Die auszuführenden Operationen sind durch Instruktionen definiert, die in den einen oder anderen Datenspeicher
geschrieben sind. Der ganze Prozessor wird durch eine Mikroprogramm-Steuereinheit gesteuert, die eine
Instruktion untersucht und daraus Folgen von Signa'sätzen erzeugt, die über ein Verteilungsnetzwerk aus
Lcitwegcn zu den verschicdcnen Elementen des Prozessors laufen, wobei ein Element nur arbeitet, wenn es ein
entsprechendes Steuersignal empfängt. Obwohl die Mikroprogramm-Steuereinheit Verarbeitungsoperationen
nur aufgrund von Instruktionen auslöst, besteht eine ihrer Aufgaben auch darin, diese Instruktionen aus den
Speicherstellen lesen zu lassen, wo sie gespeichert sind.
s sie eine sehr hohe Arbeitsgeschwindigkeit, da jeder Datenfluß zwischen zwei Elementen ein öffnen wenigstens
einer Torschaltung erfordert. Andererseits hat der Haltcmechanismus eine niedrige Arbeitsgeschwindigkeit, da
er nur einen Operanden zu halten hat, während ein zweiter Operand erzeugt wird: und wenn nur ein Operand
bebraucht wird, wird der Haltemechanismus überhaupt nicht benutzt.
ίο Folge von Steuersignalen brauchen, um richtig zu arbeiten, was insbesondere für die Datenspeicher gilt.
Nimmt man daher an, daß die Mikroprogramm-Steuereinheit zu einem bestimmten Zeitpunkt einen Satz von
Signalen erzeugt, von denen einige signifikant (- 1) und einige nicht signifikant sind ( — 0), die aber ausreichend
sind, um den gesamten Betriebszustand der Elemente des Prozessors zu definieren, dann ist die Mehrzahl dieser
Signale 0. Wenn jedoch eine kleine Änderung im Spektrum des Betriebszustandes erforderlich ist, muß ein ganz
neuer Satz von Signalen erzeugt werden und auch dann ist immer noch die Mehrzahl dieser Signale 0. Bei
konventionellem Betrieb würden dann alle möglichen Sätze von Steuersignalen, die gebraucht werden könnten,
als Wörter in einen Speicher geschrieben (Mikroprogrammspeicher) und einzeln in entsprechender Reihenfolge
mit einer Geschwindigkeit ausgelesen, die gleich der Änderungsgeschwindigkeit der Betriebszuständc der
Elemente des Prozessors wäre. Das führte dazu, daß ein großer Speicher Signale speichern mußte, die vorwiegend
nicht signifikant waren, auch wenn man den Ruhezustand eines Elementes ebenso gut dadurch erreichen
kann, daß man überhaupt kein Signal sendet.
Die vorliegende Erfindung basiert nun auf der Erkenntnis, daß die Elemente eines Prozessors in Gruppen in
Betrieb gehen und richtet sich auf den Zustand, in dem überhaupt keine Steuersignale für eine Gruppe erzeugt
werden, d. h. im Augenblick in dem sie in Ruhe sind. Zu diesem Zweck wird eine Mikroprogramm-Steuereinheit
vorgesehen, die eine Anzahl von Prozessoren enthalt, im Idealfall einen Prozessor für jede arbeitende Elementengruppe
des zu steuernden Datenprozessors, wobei der Prozessor so ausgelegt ist, daß er Steuersignale nur
für diese Gruppe erzeugt. Das bedeutet, wenn die Gruppe im Ruhezustand steht, befindet sich auch der
zugehörige Prozessor der Mikroprogramm-Steuereinheit im Ruhezustand, das bedeutet aber auch, daß die
interaktiven Steuereinheiten wenigstens insofern in Wechselwirkung stehen müssen oder interaktiv sein müssen,
als diejenigen Prozessoren, die aktiv sind, die zum entsprechenden Zeitpunkt im Ruhezustand befindlichen
Prozessoren aktivieren müssen.
Da weiterhin für jede arbeitende Gruppe von Elementen des Prozessors die notwendigen Untersätze von
Steuersignalen häufig in kurzen Folgen organisiert sind, von denen einige wiederholt werden, ist es bequem,
mindestens für einige interaktive Steuereinheiten Speicher zu benutzen, die entweder selbst adressierend sind
oder auf externe Adressen ansprechen können, da dann eine wiederholte Folge nur einmal gespeichert zu
werden braucht.
Die jetzt im einzelnen zu beschreibende Mikroprogramm-Steuereinheit benutzt fünf derartige Speicher.
Daher wird ein solcher Speicher für sich in F i g. 2 beschrieben, bevor die Wechselbeziehung der fünf Speicher
untereinander und mit den anderen Elementen der Mikroprogramm-Steuereinheit im Zusammenhang mit
F i g. 3 beschrieben wird. Für den in F i g. 2 gezeigten Speicher selbst werden drei Steuersignale (XiYiZ) angezogen,
und der Ursprung dieser Steuersignale ist nur aus F i g. 3 zu sehen.
Die interaktive Steuer-Einheit in Fig.2 besteht aus einem konventioneilen, schreibbaren, nichtdestruktiv
auslesbaren Datenspeicher aus einer Speichermatrix 10, einem Eingaberegister 11, einem Ausgaberegister 12,
einem Adreßregister 13 und einem Adreßdecodierer 14. Der Speicher spricht auf Steuer- und Taktsignale an
(nicht dargestellt) und schreibt entweder Daten vom Eingangsregister 11 in eine Wortstelle in der Matrix 10 ein
oder liest Daten aus dieser Stelle in das Ausgaberegister 12 aus. Die Wortstelle in der Matrix 10 ist durch eine
Adresse im Adreßregister 13 bezeichnet die in den Adreßdecodierer 14 geleitet wird. Außer den rein konventionellen
Aspekten des Speichers ist eine Voradressierschaltung und eine Nachausgabeschaltung vorgesehen. Die
Nachausgabeschaltung besteht aus UND-Gliedern 15, die durch Steuersignale X, eingeschaltet werden, die eine
so Bitposition des Ausgaberegisters 12 auf die Leitung 17 und die übrigen Bitpositionen des Ausgaberegisters J?
auf eine Datenmehrfachleitung 16 leiten (die als einzelne Leitung in F i g. 1 gezeigt ist). Das Ausgaberegister 12
kann durch Steuersignale Y1 zurückgestellt werden. Die Leitung 17 führt ein Signal P1 und verzweigt sich, wobei
eine Verzweigung aus einer inverterschaltung 18 und einem UND-Glied 19, eingeschaltet durch Xu und durch
eine Verzögerungsschaltung verzögert, besteht, die zusammen, jedesmal wenn Λ, vorhanden ist und die Bitposi-
tion des Ausgaberegister 12, die auf die Leitung 17 geleitet wird, eine 0 enthält einen Signalimpuls P, erzeugen.
Die Signale P, und P, werden auf die Voradressierschaltung zurückgekoppelt
Die Voradressierschaltung enthält eine Adreßeingabeleitung 20, die mit einem Voradreßregister 21 verbunden
ist, das durch das Steuersignal Λ, zurückgestellt werden kann. Das Register 21 wird durch die Torschaltung
22 geschaltet sowohl zum Adreßregister 15 als auch zu sich seibst zurück über die Leitung 23. Die Torschaltung
22 wird eingeschaltet durch Steuersignale (Z,+ P1), d. h. entweder Zi= 1 oder ft= 1. Das Adreßregister 13 kann
durch die Steuersignale (Zi+P,+P) zuräckgestellt werden und ist auch über die Leitung 24 mit einem Erhöhungsregister 25 verbunden, das wiederum zum Adreßregister 13 über die Torschaltung 26 zurückverbunden ist,
die durch das Steuersignal (P) eingeschaltet wird.
nen dieser Einheit wie foigt ab:
a) Eine Adresse auf der Leitung 20 und ein anliegendes Xi resultieren in der Eingabe der Adresse in das
Voradreßregister 21.
b) (Zi+ Ρ,) schalten die Torschaltung 22 zur Eingabe dieser Adresse in das Adreßregister 13 (wird auch in das
Register 21 zurückgeführt) ein und ein Lesezyklus wird eingeleitet, wodurch das gelesene Wort in das
Ausgaberegister 12 eingegeben und dort gehalten wird. Die Adresse vom Register 13 wird auch in das
Erhöhungsregister 25 eingegeben und dort um einen festen Betrag erhöhl.
c) Durch X, gesteuert erscheint das Wort im Ausgaberegister 12 teilweise auf der Leitung 17 und teilweise auf
16. Wenn die Leitung eine »0« empfängt, wird P) erzeugt, so daß der Inhalt des Erhöhungsregisters 25 durch
die Torschaltung 26 in das Adreßregister 13 geleitet und ein Le.sezyklus initiiert wird.
Wenn die Leitung 17 eine »I« empfängt, wird A1, erzeugt, und der Inhalt des Voradreßregisters 21 wird durch ah Torschaltung 22 in das Adreßregister 13 geleitet, so daß ein Lesezyklus eingeleitet wird. Durch das Speicherbit, was auch als P-Bit bezeichnet wird, wird das Signal auf der Leitung 17 angehoben, wenn P1 erzeugt wird.
Wenn die Leitung 17 eine »I« empfängt, wird A1, erzeugt, und der Inhalt des Voradreßregisters 21 wird durch ah Torschaltung 22 in das Adreßregister 13 geleitet, so daß ein Lesezyklus eingeleitet wird. Durch das Speicherbit, was auch als P-Bit bezeichnet wird, wird das Signal auf der Leitung 17 angehoben, wenn P1 erzeugt wird.
Daraus folgt, daß für eine gegebene Adresse (W), die auf die Leitung 20 eingegeben wurde, und für eine Folge
(nicht unbedingt in regelmäßigen Zeitinlervallen) von Steuersignalen X1 die Wörter von den Speicherstellen IV.
W+a, W+ 2a. W+ 3a.... auf die Leitung 16 geleitet werden, bis ein Wort ausgegeben wird, welches auf der
Leitung 17 eine »1« erzeugt. Dann ist das ausgegebene Textwort das Wort von der Stelle W, und die Folge wird
wiederholt. Wenn eine neue Startadresse zu benutzen ist, stellt X1 auch das Ausgaberegister zurück, so daß die
ganze vorhergehende Lesefolge von der Einheit weggenommen wird. Nimmt man also an, daß mit der Adresse
aufeinanderfolgende Stellen in der Matrix 10 Wörter mit Bits enthalten, die auf die Leitung 17 geleitet werden
können, so können aufeinanderfolgende Λ,-Signale niemals das Wort an der Stelle (W, + Aa) adressieren, da das
»1er«-Bit im Wort bei (W\ +3a), wenn alle anderen Werte gleich sind, das nächste ΛΊ-Signal in das Wort bei W\
im Register 12 eintreten läßt. Um das Wort bei (W\ + Aa)zu adressieren, braucht man eine neue Adresse W2 auf
der Leitung 20. Obwohl also die gezeigten ersten vier Wörter in wiederholter Reihenfolge von der Startadresse
IV1 adressiert werden können kann nur das fünfte Wort durch die Adresse IV2 adressiert werden, und die Adresse
Wj wird zum Adressieren der sechsten, siebten und achten Stelle gebraucht Daraus folgt, daß bei einer solchen
Verbindung zweier derartiger Einheiten, daß eine Einheit die ΑΊ-Signale für die andere Einheit erzeugt, der
Betrieb der zweiten Einheit teilweise durch die letzte auf der Leitung 20 empfangene Adresse und teilweise
durch ihren eigenen Inhalt und teilweise durch den Inhalt der ersten Einheit bestimmt wird. Bildlich dargestellt
bedeutet das, daß ohne die interaktiven Einheiten zwei in Wechselbeziehung stehende wiederholte Folgen von
Steuersignalfeldern F, und/i typischerweise folgendes Aussehen haben:
F, A,
F1 -
F5 h
F8 Λ
F, —
F1
h
F5 h
Die ersten acht Elcmcntenpaare bilden die kombinierte G rund wiederholung und das Verzeichnis enthält so
viele Vielfache dieses Unterverzeichnisses, wie benötigt werden.
Benutzt man zwei Wechselwirkungseinheiten, eine für F1 und die andere für f» wobei die FrEinheit die
Χί-Signale für die Λ-Einheit erzeugt und jede Einheit ihr eigenes P-Bit hat, dann haben wir jetzt zwei Verzeichnisse:
Die obige Tabelle zeigt auch eine andere Forderung, nämlich die Forderung nach einer Einrichtung zum
Stoppen und Ausbrechen zyklischer Folgen von Steuersignalen, da die bisher beschriebene Einrichtung das von
selbst nicht tut. Was hierzu gebraucht wird ist ein Prüfmechanismus. Es kann sein, daß vorher bekannt ist, wie
viele Zyklen gebraucht werden, wie beispielsweise der Multiplikation, wo die Anzahl von Zyklen eine Funktion
der Anzahl von Bits in einem Operanden ist, und in diesem Fail kann eine Zykiuszahi kompiliert und auf
Gleichheit mit der bekannten Zahl geprüft werden, wobei Gleichheit ein Ausbrechen verursacht Es kann sein,
daß ein Ausbrechen erforderlich ist, wenn bestimmte Zustände in dem zu steuernden Prozessor auftreten, wie
F1 | — — | h |
F2 | — _ | |
F3 | Xi - | |
F4 | — — | |
F5 | Xi - | |
F6 | — — | |
F7 | — — | |
F8 | X1 P | |
beispielsweise bei der Teilung, wenn das Ergebnis der ALU negativ ist. Wenn man einen geeigneten Prüfmechanismus
vorsieht, kann man damit auch sogenannte außergewöhnliche Erei^isse wie einen erkannten Fehler,
eine extern erzeugte Unterbrechung oder RoutineverarbeitungsprüTungen handhaben, wie beispielsweise »ist
das gewählte Bit »0« oder »1«. Der in der in Fig.3 dargestellten Mikroprogramm-Steuereinheil verwendete
Prüfmechanismus besteht aus einer Einheit nach der in F i g. 2 gezeigten Art. die die Prüfung bezeichnet und an
einen Assoziativspeicher gekoppelt ist, der die Prüfung ausführt und Informationssignale von entsprechenden
Bereichen des Prozessors empfängt. Assoziativspeicher in vielerlei Form sind allgemein bekannt.
Die Mikroprogramm-Steuereinheit der F i g. 3 besteht daher kurz gesagt aus fünf interaktiven Steuer-Einheiten
A, S, C Z? und £ wie sie in F i g. 2 gezeigt sind. Die interaktive Steuer-Einheit A wirkt als Sseuersignalgenerator
für die Torschaltungen eines Prozessors. Die interaktive Steuer-Einheit B wirkt als Steuersignalgenerator für
die Speicher des Prozessors. D«e interaktive Steuer-Einheit C wirkt als Steuersignalgenerator für den Maskierungsmechanismus
des Prozessors. Die interaktive Steuer-Einheit D wirkt als Steuersignalgenerator für die
·'* ALU des Prozessors und die interaktive Steuer-Einheit £ bildet in Verbindung mit dem Assoziativspeicher Fdie
j·. Prüfeinrichtung. Die an die Voradressierschaltung der Einheiten A bis £ angelegten Startadressen werden
J5 15 entweder von einem Mikroprogrammspeicher Moder vom Assoziativspeicher Fabgeleitet. Die Steuersignale
Ϊ4 X. Kund Zfür die Einheiten A bis £ werden in der Mikroprogramm-Steuereinheit selbst erzeugt.
i| Für Fig.3 wird vereinbart, daß für die Einheiten A bis £ die Adressen für den Adreßeingabeweg 20
♦|j darstellungsgemäß an der linken Seite der Einheit zugeführt werden, die Steuersignale X. V und Zoben an der
% Einheit und die Ausgabefelder verlassen die Einheit auf der rechten Seite.
?i 20 Wenden wir uns nun der in F i g. 3 gezeigten Mikroprogramm-Steuereinheit zu, so erkennen wir, daß sie aus
Ü einem konventionellen Mikroprogrammspeicher M, einem Taktgeber T, fünf Einheiten A, B, C, D und £der in
:| Verständnisses der Mikroprogramm-Steuereinheit werden Signale in der nachfolgenden Weise mit drei Buch-
'U 23 stäben bezeichnet, und die Leitung dieser Signale ebenfalls mit denselben Buchstaben:
U QUELLE TYP BESTIMMUNG
«/(Adresse). V(Steuerung). X, Köder Z und die Bestimmung entweder R. M, A, B, C, D, £oder Fist. Somit ist
FWMeine durch den Assoziativspeicher Fan den Mikroprogrammspeicher Mgelieferte Adresse. Suchfelder für
den Assoziativspeicher F werden als ^-Adressen betrachtet. Wo eine Leitung für eine Anzahl von Signalen
gemeinsam ist, wird sie nicht bezeichnet. Jede Einheit erzeugt P- und ASignale, die als den entsprechenden
Einheiten intern betrachtet werden und in F i g. 3 nicht besonders dargestellt sind.
Die Mikroprogrammeinheit erzeugt ein Ausgabewort (MWA, MWB. MWC MWD, MWE) und hat ihren
eigenen Taktmechanismus, über den später noch mehr gesagt wird. Die Einheit A erzeugt ein Ausgabewort
(A VA, A VM, A VR. AXB, A YB, AXC, A YC AXD. A YD. AXE. A YE). Die Einheit B erzeugt ein Ausgabewort
(BAR), die Einheit C(CVR) die Einheit D (DVR) und die Einheit E(EVrF). Der Assoziativspeicher erzeugi ein
Ausgabewort (FVk, Fvvät, FWA, FYA, FYB, FYC, FYD, FYE, FVA). Die Signale RWMund RWFwerden von
der Schnittstelle abgeleitet und die Signale A VR, BVR. CVR. DVR und FVR an die Schnittstelle weitergeleiteL
Der Taktgeber Terzeugt die Ausgänge TQM. TQA. TQF.
Der Taktmechanismus des Mikroprogrammspeichers M läuft für einen kompletten Zyklus frei, wenn er
einmal durch die Steuenogik 100 initiiert wurde, die TQM von A VM= I bis zu einem Signal MVM= 1 leitet.
wobei MVM vom Taktmechanismus am Ende eines jeden Lesezyklus des Mikroprogrammspeichers abgeleitet
wird.
Unter der Annahme, daß TQM sich zu den Zeiten toUhhU usw. regelmäßig von A VM= 1 bis MVM= 1 zeigt
und daß zwei Zeitintervalle zum Einstellen einer neuen Adresse im Adreßmechanismus des Speichers M, vier
Zeitintervalle zur Decodierung dieser Adresse, sechs Zeitintervalle für den Speicher zum Weiterleiten des
Inhaltes der durch die decodierte Adresse bezeichneten Stelle aus dem Speicher M. zwei Zeitintervalle zum
so Erreichen der Einheiten A bis £durch die Ausgabe und ein Zeitintervall für die entsprechenden Register 21 der
Einheiten (F i g. 2) zum Reagieren gebraucht werden, dann ist der Zeitzyklus des Zeitmechanismus des Speichers
Mfolgender, wenn A VM- I die Zeit I0 definiert:
ίο Neue Adresse eingeben Internes Steuersignal
ti
-
t2 Internes Steuersignal
ti
-
U Decodiere Adresse —
ti
-
tb internes Steuersignal
ti -
in Steuere Adresse an —
'» ~
fio -
in -
ii2 Internes Steuersignal MYA
in " MVA
tu MZA. MZB. MZC. MZD. MZE
hi MVM
Der Zeitmechanismus des Speichers M legt einen Funktionszykius fest und wenn er fertig ist, schaltet er sich
selbst ab (tu= MVMX nachdem er die Einheiten A bis Egestartet hat (tu = MYA, Ui" MVA, tu = MZA, MZB,
MZC MZD, MZEX Die Logikschaltung 101 leitet TQA zur Einheit A als TXA, wenn MVA vorhanden ist oder
das letzte AVA = \ oder wenn FVA = 1 ist.
Um die Arbeitsweise der Mikroprogramm-Steuereinheit verstehen zu können, betrachten wir eine Anfangsbedingung.
in der die Einheiten A. BCD EF und M geladen werden, R WM an der Schnittstelle / vorliegt, die
Register21 und 12 der Einheiten BCDEleer sind und das Register 12 der Einheit A A VM= 1 und sonst Nullen
enthält. Das nächste auftretende TXA (TQA geleitet durch Logik 101) veranlaßt die Logik 100 zum Leiten von
TQM an den Speicher M und leitet einen Lesezyklus des Speichers M zur Adressierung des Wortes W(RWM)
an der Stelle, die R WM entspricht ein. und da A VA - O ist, sperrt die Logik 101 TXA (TQA nicht geleitet), so daß
die Einheit A stillgesetzt wird. Wenn das Wort R WM am Ausgang des Speichers M zur Verfügung steht, erzeugt
der Taktmechanismus des Speichers MYA und löscht das Register 21 der Einheit A. W(RWM)-(MWA. MWB.
MWC MWD. M!VE^ wird durch den Taktmechanismus in die entsprechenden Register 2! der Einheiten .4. B. C.
D und Egeleitet und MVA, MZA, MZB, MZC, MZD und MZEwerden durch den Taktmechanismus erzeugt die
Zyklen der Einheiten A. B. C. D und feingeleitet, um die Wörter W(MZAX W(MZBX W(MZC) und W(MZD)
und W(MZf^ in die Register 12 der Einheiten A, B. C. D und E zu leiten. Die Einheit A führt einen Zyklus aus,
weil MVA das Signal TQA zur Einheit A leitet. Wenn W(MZA) im Register 12 der Einheit A steht, leitet TXA
(TQA geschaltet durch Logik 101) W(MZAX W(MZA)=(AVA, AVM. AVR. AXB. AYB. AXC, AXD, AYD.
AXE, A YE) hat allgemein die Form (1,0, nnnnnnnn. n, 0, n, 0, n, 0, n, 0) wobei η entweder »1« oder »0« ist A V-7 ist
gezeigt als (nnnnnnnn), aber dieses Feld hat eine zu seiner später zu beschreibenden Funktion passende Länge.
Die nachfolgenden Operationen hängen von den Werten der η-Ausdrücke ab. Wenn n-1 ist, erfolgt eine Aktion,
wenn n=0 ist keine. Wenn z. B. AXB= 1 und AXC=O ist, wird W(MZB)ausgeleitet und die Einheit fl durchläuft
einen Zyklus in einer Art die von dem Wert des P-BH in W(MZB)abhängt, während die Einheit C noch genau so
bleibt wie sie war. Die Einheit durchläuft einen Zyklus, da A VA = 1 und leitet zur richtigen Zeit W(MZA +a)aus,
wodurch weitere Operationen ausgeführt werden. Nach normalerweise vielen Zyklen der Einheit A wird ein"
Wort aus dem Register 12 der Einheit A in der Form (1,0, nnnnnnnn, 0, 1.0, 1,0, 1,0. 1) ausgeleitet und die
Steuereinheit in den Anfangszustand zurückgestellt damit die Einheit A noch einmal einen Zyklus durchlaufen
kann und das Wort (0.1, nnnnnnnn, 0,0,0,0.0,0,0,0) in das Register 12 der Einheit A eingibt.
Die obigen Oper?Uonen können durch vorgegebene Signalsätze (RWF, WEF) unterbrochen werden, die eine
Obereinstimmung im Assoziativspeicher Ffmden und eine Ausgabe (FVR, FWM, FWA, FYA, FYB. FYC. FYD,
FVf, PVA) der Form (nnnnnnnn, nnnnnnnn, nnnnnnnn, 1, 1, 1, 1, I, 1) erzeugen, wo die Leitung für FVA eine
Verzögerung enthäSt die für FYA lang genug ist, um das Register 12 der Einheit zu löschen. Auch hier ist die
Feldgröße für FVR und VWM wieder mit acht Bits dargestellt defacto ist sie doch so lang, wie sie im Einzelfall
sein muß, wobei W(FWA)=(0,1,00000000,0,0,0,0,0.0,0,0) ist Es können Eintragungen im Assoziativspeicher
Fstehen, die mit (R WF, EWF) übereinstimmen wenn EWF= 0 ist
Bei Verbindung mit einem konventionellen Prozessor wird RWM durch den OP-CODE-Decodierer des
Prozessors aus der Position der auszuführenden Instruktion erzeugt, die die auszuführende Operation definiert
während R WF durch die verschiedenen Oberlauf-, Unterlauf- und Fehlerverriegelungen erzeugt wird, die im
Prozessor verteilt sind, sowie durch das Prozessor-Register, das den sogenannten Systemzustand oder eine
Aussage über die laufenden Betriebsmöglichkeiten enthält wie beispielsweise über die Unterbrechungen, die
das gegenwärtig ausgeführte Programm unterbrechen können sowie durch ausgewählte Punkte im Datenfluß.
A VR ist mit den Torschaltungen im Prozessor verbunden. BVR ist mit dem Speicher des Prozessors verbunden.
CVR ist an die Maskierungseinrichtung des Prozessors (oder eine Datenfluß-Teilwahl) angeschlossen. DVR ist
mit arithmetischen und logischen Schaltungen (ALU) des Prozessors verbunden. Es folgt, daß die Länge des
AVR Feldesdurch Anzahl von separat zu betätigen Torschältungen im Prozessor, i Bit pro Schaltung bestimm!
wird. Wenn zwei oder mehr Torschaltungen immer zusammen geöffnet oder geschlossen sind, brauchen/sie nui
ein Steuerbit Somit steuert AVR den Datenfluß im Prozessor, hat jedoch nichts zu tun mit den fließenden Daten
wieviel fließende Daten auch signifikant sind oder wie diese Daten manipuliert werden. Ähnliche Kriterieri
gelten offensichtlich auch für BVR. EVR und DVR. EVR wird für Pröfzwecke benutzt, und die Länge des EVh
Feldes auf die Anzahl der auszuführenden Prüfungen bezogen.
Die in die Speicher M und F sowie in die Einheiten A bis fgeladenen Daten hängen vom Instruluionsatz des
Prozessors ab. Da die Erhöhung des Registers 25 normalerweise die nächste Adresse erzeugt, werden sequentiell
ίο gebrauchte Wörter in sequentiell nebeneinanderliegende Stellen eingegeben. Die Einheiten A. B, C, D und E
können, wie bereits beschrieben wurde, in einer Schleife laufen, so daß jede Folge von Ausgängen von einer
dieser Einheiten, die mehrmals hintereinander in einer Operation gebraucht wird, nur einmal geladen zu werden
braucht Da jede Einheit nur eine Funktionsart steuert, können ihre Eintragungen auf die Permutationen und
Kombinationen begrenzt werden, die in dieser Funktion allein betroffen sind. Da MWA, MWB, MWC, MWD
und AfWEaIIe verschieden sein können, brauchen funktionell ausgerichtete Folgen in den Einheiten A bis Enicht
durch die Adresse ausgerichtet zu sein. Da die Einheiten B bis Emir eine Ausgabe liefern, wenn sie durch AXB.
AXC, AXDoatT AXE eingeschaltet werden, brauchen sie nicht mit Leereintragungen gefüllt zu werden, um die
Synchronisierung aufrechtzuerhalten. Da es keinen Hardware-Decodierer zur Erweiterung der Signalgruppe
zwischen der Steuereinheit und dem Prozessor gibt, kann der Instruktionssatz willkürlich durch Eingabe neuer
Daten in die Speicher Mund Fund die Einheiten A bis Everändert werden, jedoch immer unter der Voraussetzung,
daß die Speicherakkommodation jeder Einheit groß genug ist.
Um einige dieser Punkte zu zeigen, betrachten wir einen Standardinstruktionssatz für das System 360, wie er
jetzt seit vielen Jahren bekannt und in der Druckschrift IBM X20-1703-5 geschrieben ist Es sind 256 Instruktionen
vorgesehen, jedoch werden nicht alle der theoretisch möglichen Instruktionen benutzt Nimmt man eine
durchschnittliche Zahl von 20 aufeinanderfolgenden Operationen für die Ausführung jeder Instruktion und einen
Bedarf von nur 40 Steuerleitungen (äquivalent A VR~BVR-=CVR~DVR=FVR**g) an, dann braucht man als
Mikroprogrammspeicher ohne jegliche Verfeinerung zur Behandlung dieses Instruktionssatzes
246 χ 20 χ 40 Bitspeicherpositionen in einer Anordnung von 5120 Wörtern zu je 40 Bits. Betrachtet man jetzt die
erste gegebene Instruktion, nämlich (1 A) ADD. Die Instruktion liefert drei Punkte, nämlich einen OP-CO-DE-(MjI
eine erste Registerbezeichnung Rt und eine zweite Registerbezeichnung /?2. Diese Instruktion wird
allgemein wie folgt ausgeführt:
a) \A decodieren und an der entsprechenden Stelle in den Mikroprogrammspeicher einsetzen. Unter Steuerung
des Mikroprogrammspeichers erfolgt die Weiterleitung von der Eintragung zur nächsten Eintragung
dann wie folgt:
b) Ri aus dem Instruktionsregister holen.
c) in den die Register enthaltenden Teil des Speichers gehen und das Wort in dem durch A 1 bezeichneten
Register lesen,
d) das Wort/?i in ein Halteregister fließen lassen,
e) Ri vom Instruktionsregister holen,
e) Ri vom Instruktionsregister holen,
f) in den die Register enthaltenden Teil des Speichers gehen und das Wort in dem durch Rj bezeichneten
Register lesen.
g) das Wort R2 zur ALU fließen lassen und das Wort Rt vom Halteregister freilassen und in die ALU fließen
lassen,
h) die ALU zur Addition betätigen,
i) R1 aus dem Instruktionsregister holen,
j) in den die Register enthaltenden Speicherteil gehen und das durch R\ bezeichnete Register adressieren und
die Ausgabe der ALU freilassen und sie zum Register /?, fließen lassen und dort einschreiben,
k) die Stelle adressieren, die die Lage der gerade ausgeführten Instruktion im Speicher enthält,
so 1) diese Stellenbezeichnung an die A LU weiterleiten lassen,
so 1) diese Stellenbezeichnung an die A LU weiterleiten lassen,
m) die ALU zur Erhöhung dieser Stellenbezeichnung um einen festen Betrag betätigen.
n) die Ausgabe der ALU in die im Schritt k adressierte Stelle zurückfließen lassen.
o) die Stellenbezeichnung aus der Stelle des Schrittes η holen und die Bezeichnungssteile im Speicher adressieren,
p) die Ausgabe des Speichers in das Instruktionsregister fließen lassen.
p) die Ausgabe des Speichers in das Instruktionsregister fließen lassen.
q) den OP-CODE-Tsil des Instruktionsregisters in den OP-CODE-Decodierer leiten lassen.
Nimmt man an, daß die oben aufgeführten 17 Schritte b bis q jeweils einen Eingang in den Mikroprogrammspeicher
darstellen und dieser 17 χ 40 Bitpositionen umfaßt, von denen das dem DVR entsprechende Feld für die
Schritte h und m leergelassen wird, so hat man ISxS leer erzwungene Bitpositionen, das dem BVR entsprechende
Feld wird für die Schritte c, f,j und ο leergelassen, wenn die laufende Instruktionsbezciehnungsstelle nicht im
Speicher liegt oder die Schritte c. f.j. k, η. ο und p, wenn sie darin liegt, wodurch eine Matrix von 13x8 bzw. 8x8
leer erzwungenen Bitpositionen dargestellt wird. Die weiteren Schritte k bis q und a haben eigentlich nichts mit
den Instruktionen (1 A) zu tun, sondern treten am Ende der Ausführung einer jeden Instruktion auf, da sie das
Holen der nächsten Instruktion darstellen. Aus dieser groben Analyse dessen, was annähernd die einfachste
mögliche Instruktion ist, geht hervor, daß die vorliegende Erfindung beträchtliche Einsparungen bringt. Da gibt
es zunächst einmal nur einen Satz von Eintragungen für die Schritte k bis q und nicht 256 Wiederholungen dieses
Satzes. Die Anfänge dieser Eintragungen sind in jeder Einheit durch genau ein Wort im Mikroprogrammspei·
eher M bestimmt Diese Folge wird angefangen über eine durch MWEund demzufolge durch EWFbestimmte
Prüfung. Die Einheit D enthält genau eine Eintragung DVR, die sich auf die eigentliche Ausführung dieser
Instruktion bezieht und MWD zeigt auf diese Eintragung. CVR wird nicht gebraucht und enthält keine Eintragung.
BVR wird für die Schritte c, f und ; gebraucht und enthält drei Eintragungen, wobei MWB auf die
Eintragung für den Schritt czeigt Die Einheit A enthält 10 Eintragungen (Schritte b bis/und einen Verbindungsschritt), MWA zeigt auf die dem Schritt b entsprechende Eintragung.
AVA AVM | AVR | AXB | AYB | AXC | AYC | AXD | AYD | AXE | AYE | STEP |
1 O | nnnnnnnn | O | O | O | O | O | O | O | O | b |
1 O | nnnnnnnn | 1 | O | O | O | O | O | O | O | C |
1 O | nnnnnnnn | O | O | O | O | O | O | O | O | d |
1 O | nnnnnnnn | O | O | O | O | O | O | O | O | e |
1 O | nnnnnnnn | 1 | O | O | O | O | O | O | O | f |
1 O | nnnnnnnn | O | O | O | O | O | O | O | O | g |
1 O | oooooooo | O | O | O | O | 1 | O | O | O | ι |
1 O | nnnnnnnn | O | O | O | O | O | O | O | O | i |
1 O | nnnnnnnn | 1 | O | O | O | O | O | O | O | j |
1 O | nnnnnnnn | O | O | O | O | O | O | 1 | O | k |
MWA=M | WB=MWC= | MWL | )=MWE=/ | BVR=CVR | = DVR = | EWR |
Speicher M | 5 | X | 8 | = 40 |
Einheit A | 10 | X | 18 | = 180 |
Einheit B | 3 | X | 8 | - 24 |
Einheit C | 0 | X | CXl | = 0 |
Einheit E | 1 | X | 8 | = 8 |
Speicher F | m | X | 32 | = 32m |
232+ 32m |
= RWF= RWM=FWM=FVR^S
Daraus liolgt, daß zur Steuerung der Ausführung der Schritte b bis Ar (wobei k die Verbindung ist) insgesamt an
Bitpositionen benötigt werden:
30
Es ist eigentlich nicht richtig, den Anteil vom Speicher Feinzubeziehen, weil diese 32m Bit-Positionen allen
Instruktionen gemeinsam sind. Eine wahrere theoretische Zahl ist somit m— wobei m die Zahl der
verschiedenen Werte von ÄWFist.die berücksichtigt werden müssen. Wenn der Assoziativspeicher Fso gebaut
wäre, daß er ausgewählte universelle Übereinstimmungselemente liefert, könnte der Wert für m noch wesentlich
reduziert werden. Der ungünstigste Wert von m für RWF—(nnnnnnnn) ist 2» = 256 bei einem gegebenen
ungünstigsten theoretischen Wert für die Gesamtzahl mit 264 gegenüber 9x40=360 für die konventionelle
Grundform des Mikroprogrammspeichers. Man sollte jedoch nicht vergessen, daß die Instruktion \A eine der
am einfachsten auszuführenden Instruktionen ist. Betrachtet man die Multiplikationsinstruktion IC oder die
Verschiebeinstruktion D 2 die beide einen interaktiven Durchlauf einer Schleife enthalten, so ist die Anzahl von
Wiederholungen im Falle von IC genau so groß wie die mögliche Anzahl von Bits im Multiplikatoroperanden
und im Falle von D 2 gleich der tatsächlichen Zahl der zu verschiebenden Wörter und daher innerhalb vernünftiger
Grenzen unbeschränkt.
Betrachtet man den Wiederholungsabschnitt von IC alleine, so beginnt dieser in einer Situation, in der beide
Operanden geholt wurden, in Registern des Prozessors stehen und vier Register Λι, R2, Rj und Ra bauchen. Die
betroffenen Schritte sind folgende: so
a) den Multiplikator auslciten (Ri).
b) sein höchstes Bit auswählen,
c) sein höchstes Bit prüfen,
d) Ri und /?2 ausleiten (die die Multiplikanten enthalten), wenn Prüfung = 1,
e) verschieben und addieren,
f) Ergebnis in /?i setzen,
g) Multiplikator von Ri ausleiten,
h) Multiplikator unter Überlauf des höchsten Bit schieben.
i) verschobenen Multiplikator nach Rj zurücksetzen, so
j) Zahl von Ra ausleiten,
k) 1 zur Zahl addieren,
m) Zahl ausleiten und
n) Zahl prüfen, wenn Zahl = 32 (für einen 32-Bit-Multiplikator),dann Wiederholung stoppen.
In der in Fig.3 gezeigten Steuereinheit braucht diese Wiederholung nur ein Wort im Mikroprogrammspeicher.
14 Wörter in der Einheit A, kein Wort in der Einheit B, wenn R1, Ri, Ri und Ra direkt ausgeleitet werden
können, was für die meisten Prozessoren zutrifft, ein Wort in der Einheit C(Schritt b), zwei Wörter in der Einheit
D(Schritte e und k), zwei Wörter in der Einheit £(Schritte c und h) und zwei Wörter im Assoziativspeicher F.
Die Wörter im Speicher F werden adressiert oder angepaßt in den Schritten c bzw. h und die resultierenden
Ausgaben in den Schritten d und A- J benutzt, um R2 im Schritt d auszuleiten und in den Schritten A-1 den
Speicher M zu adressieren, wenn die entsprechenden Prüfungen erfolgreich verlaufen. Ein Mikroprogramm-Grundspeicher
brauchte 32 χ 14 Wörter anstelle der vorgeschriebenen 22 Wörter. Ein besserer Vergleich wäre
ein Vergleich mit der Art von Mikroprogrammspeicher, der seine eigene nächste Adresse aus seinem eigenen
Inhalt erzeugt, & h. einen Speicher, der eine bedingte Verzweigungseinrichtung hat Ein solcher Speicher
braucht nur 14 Eintragungen, jetzt enthält jede Eintragung aber (40» L^ Bits, wobei L-Bits für die interne
to Adressierung erforderlich sind. In diesem Fall erfolgt der Vergleich zwischen
14 χ (40 -L) Bits und
(40+14X 18+0x8 + 1 x8+2x8+2x8+2x32)-14x28+4
oder eine Einsparung von (12 + L) χ 14—4 Bits.
Insgesamt braucht man für eine solche Instruktion also drei Wörter im Speicher M, von denen eines den
Betrieb bis zum Start der Wiederholung eines die Wiederholung und eines den Betrieb nach der Wiederholung
bis zu der Zeit steuert, wo die Verbindungsoperation, die zwischen jeder Instruktionsausführung benutzt wird,
aufgerufen wircL
Die typische BcA-egungsinstrukticn liefert eins Zahl und zwei Speicheradressen und läßt Wörter von aufeinanderfolgenden
Speicherstellen, beginnend bei einer gegebenen Adresse, in aufeinanderfolgende Speicherstellen,
beginnend mit der anderen gegebenen Adresse, verschieben, wobei die Anzahl der verschobenen oder der
bewegten Wörter gleich der Zahl ist und jeweils ein Wort verschoben wird. Eine solche Operation wird
konventionell von einer Steuereinheit der in F i g. 2 gezeigten Art gehandhabt
Eine solche Steuereinheit kann einen wesentlich größeren Wirkungsgrad bei nur geringfügigen zusätzlichen
Kosten erreichen, wenn weitere Einheiten und weitere Teilerfunktionen hinzugerügt werden. Nimmt man z. B.
die Einheit B, die das Adressieren des Speichers steuert, so sind von dieser Operation zwei separate Dinge
betroffen, nämlich einmal die Steuerung der Funktionen des Speichers als Teil der Anordnung und zum anderen
das Zeigen auf die tatsächliche Stelle im Speicher, die zu adressieren ist. Die Steuerung des Speichers für einen
Standardprozedur mit zwei Speichern umfaßt vier Routinen, Lesen und Schreiben für jeden Speicher. In einigen
Fällen kommt die Adresse, die auf die zu adressierende Stelle zeigt direkt von der Steuereinheit und in anderen
Fällen von einer durch die Steuereinheit bezeichneten Stelle. Sieht man zwei Speicher B\ und BI vor, von
denen jeder das Lesen und !schreiben für jeden Speicher steuert und der andere die entsprechenden Adressen
entweder direkt oder indirekt liefert, so nimmt entweder die Zahl der für einen Standardinstruktionssatz
benötigten Eintragungen ab oder es wird mit derselben Anzahl von Eintragungen die Verarbeitung eines
komplexeren Instruklionssatzes ermöglicht.
Eine andere Möglichkeit besteht darin, einer solchen Steuereinheit die Handhabung von zwei Instruktionssätzen
zu ermöglichen durch Mischen der Signale, die angeben woher das Programm kommt crd somit des
gehandhabten Instruktionssatzes mit MWA. MWB, MWC, MWD, und MWE, von dem die laufende Instruktion
kommt
Wenn die Mischergebnisse in den hochstelligen Bits Her tatsächlich benutzten Adresse, beispielsweise abgeleitet
von den Programmbezeichnungssignalen werden, dann werden die Steuersignalfelder für einen Instruktionssatz
in der niedrigstelligen Hälfte einer jeden Einheit gespeichert und die Steuersignalfelder für den anderen
Instruktionssatz in der hochstelligen Hälfte.
<ß, 45 Die vorliegende Erfindung sieht also eine Mikroprogramm-Steuereinheit vor. die insofern ein interaktiver
j| (wechselwirkender) Multiprozessor ist, als sie interaktive Steuer-Einheiten enthält, die sich teilweise selbst
i|s steuern und teilweise durch andere interaktive Steuer-Einheiten gesteuert werden. Es ist ein Mikroprogramm-
*,§ speicher vorgesehen, der jedoch für den durch ihn zu steuernden Prozessor keine Steuersignale erzeugt Er legt
;§, so fest oder mit anderen Worten wirkt als Speicher des Multiprozessors. Jede interaktive Steuer-Einheit des
gi Multiprozessors steuert eine bestimmte Funktion und erzeugt die Steuersignale für diese Funktion direkt;
'ξ: zwischen die interaktive Steuer-Einheit und die durch sie gesteuerten Prozessorelemente wird ein Decodierer
{| gelegt. Die Kriterien einer zur Abtrennung und Handhabung durch eine eigene interaktive Steuer-Einheit
: ·: geeigneten Funktion sind folgende:
|!; 1. Hat die Funktion einen Operationszyklus, der sich während der Ausführung einer gegebenen Instruktion
j* wiederholt oder
;'<! oder
p w> 3. handelt es sich um eine Funktion, die nur von Zeit zu Zeit angefordert wird, bei der Anforderung aber eine
ψ. beträchtliche Anzahl von Steuersignalen erzeugt werden muß?
Hierzu 3 Blatt Zeichnungen
Claims (6)
1. Mikroprogramm-Steuerwerk für einen Prozessor mit einem Mikrcprogrammspeicher (M; Fig.3), in
dem Mikroinstruktionen gespeichert sind, mit einem Taktgeber (T) sowie einer Schnittstelle (J) zum An-Schluß
des Mikroprogramm-Steuerwerks an den Prozessor, dadurch gekennzeichnet, daß mehrere
interaktive Steuereinheiten (A bis E; F i g. 3) vorgesehen sind, weiche die von dem Mikroprogrammspeicher
(M) zugeführten Mikroinstruktionen jeweils partiell interpretieren, teilweise durch andere der genannten
interaktiven Steuereinheiten gesteuert werden und den Prozessor über die Schnittstelle (J) steuernde
Steuersignale jeweils direkt erzeugen, wobei mindestens einige der Steuereinheiten (A ^Steuersignale
erzeugen, durch die jeweils nur die Ausführung einer bestimmten Verarbeitungssubfunktion im Prozessor
gesteuert wird.
2. Mikroprogramm-Steuerwerk nach Anspruch 1, dadurch gekennzeichnet, daß eine interaktive Steuereinheit
die Zyklussteuerung einer oder mehrerer der übrigen interaktiven Steuereinheiten sowie des Prozessors
steuert
3. Mikroprogramm-Steuerwerk nach Anspruch 1 und'oder 2, dadurch gekennzeichnet, daß interaktive
Steuereinheiten den Mikroprogrammspeicher (M) ansteuern und die interaktiven Steuereinheiten zurückstellen
können.
4. Mikroprogramm-Steuerwerk nach einem oder mehreren der Ansprüche 1 bis 3, dadurch gekennzeichnet,
daß Mittel für die Verschmelzung von Mikroinstruktionen aus dem Mikroprogrammspeicher (M) mit
den einen tnstruktionssatz identifizierenden Signalen vorgesehen sind, die von dem Prozessor geliefert
werden.
5. Mikroprogramm-Steuerwerk nach einem oder mehreren der Ansprüche 1 bis 4, dadurch gekennzeichnet,
daß ferner ein Assoziativspeicher (F) vorgesehen ist, der Suchfelder sowohl von dem Prozessor als auch
von den interaktiven Steuereinheiten (A bis E) empfängt. Signale erzeugt, die einen Zugriff zu dem Mikro-
Programmspeicher (M) und mindestens einer der interaktiven Steuereinheiten bewirken, sowie weitere
Steuersignale für den Prozessor erzeugt.
6. Mikroprogramm-Steuerwerk nach einem oder mehreren der Ansprüche i bis 5, dadurch gekennzeichnet,
daß die interaktiven Steuereinheiten über selbstadressierbare, zerstörungsfrei lesende Datenspeicher
(10; Fig.2) verfugen, die in Abhängigkeit von einer Funktion der gerade ausgeführten Mikroinstruktion
angesteuert werden und ein Ausgangssignal erzeugen, wenn ein externes Steuersignal an sie angelegt wird,
wobei die exl;rnen Steuersignale für mindestens einige der interaktiven Steuereinheiten von einer anderen
interaktiven Steuereinheit lieferbar sind.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB5136974A GB1464570A (en) | 1974-11-27 | 1974-11-27 | Microprogramme control units |
Publications (2)
Publication Number | Publication Date |
---|---|
DE2548720A1 DE2548720A1 (de) | 1976-06-10 |
DE2548720C2 true DE2548720C2 (de) | 1985-01-17 |
Family
ID=10459733
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE2548720A Expired DE2548720C2 (de) | 1974-11-27 | 1975-10-31 | Mikroprogramm-Steuerwerk |
Country Status (7)
Country | Link |
---|---|
US (1) | US4021779A (de) |
JP (1) | JPS5417620B2 (de) |
CA (1) | CA1050663A (de) |
DE (1) | DE2548720C2 (de) |
FR (1) | FR2331094A1 (de) |
GB (1) | GB1464570A (de) |
IT (1) | IT1051658B (de) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4087857A (en) * | 1976-10-04 | 1978-05-02 | Honeywell Information Systems Inc. | ROM-initializing apparatus |
US4199811A (en) * | 1977-09-02 | 1980-04-22 | Sperry Corporation | Microprogrammable computer utilizing concurrently operating processors |
US4279015A (en) * | 1979-06-13 | 1981-07-14 | Ford Motor Company | Binary output processing in a digital computer using a time-sorted stack |
US4283761A (en) * | 1979-06-13 | 1981-08-11 | Ford Motor Company | Binary input/output processing in a digital computer using assigned times for input and output data |
US4425616A (en) * | 1979-11-06 | 1984-01-10 | Frederick Electronic Corporation | High-speed time share processor |
US4434465A (en) | 1981-04-13 | 1984-02-28 | Texas Instruments Incorporated | Shared microinstruction states in control ROM addressing for a microcoded single chip microcomputer |
JPS593654A (ja) * | 1982-06-30 | 1984-01-10 | Fujitsu Ltd | ヒストリ−メモリ制御方式 |
JPS59109157U (ja) * | 1983-01-14 | 1984-07-23 | 沖電気工業株式会社 | 等倍読取センサ |
US4635186A (en) * | 1983-06-20 | 1987-01-06 | International Business Machines Corporation | Detection and correction of multi-chip synchronization errors |
JPS6015771A (ja) * | 1983-07-08 | 1985-01-26 | Hitachi Ltd | ベクトルプロセッサ |
GB8421066D0 (en) * | 1984-08-18 | 1984-09-19 | Int Computers Ltd | Microprogram control |
US7743232B2 (en) | 2007-07-18 | 2010-06-22 | Advanced Micro Devices, Inc. | Multiple-core processor with hierarchical microcode store |
US11467838B2 (en) | 2018-05-22 | 2022-10-11 | Advanced Micro Devices, Inc. | Fastpath microcode sequencer |
US11016763B2 (en) | 2019-03-08 | 2021-05-25 | Advanced Micro Devices, Inc. | Implementing a micro-operation cache with compaction |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3404378A (en) * | 1965-10-29 | 1968-10-01 | Automatic Telephone & Elect | Computers |
BE795789A (fr) * | 1972-03-08 | 1973-06-18 | Burroughs Corp | Microprogramme comportant une micro-instruction de recouvrement |
JPS5736609B2 (de) * | 1973-04-25 | 1982-08-05 | ||
GB1426748A (en) * | 1973-06-05 | 1976-03-03 | Burroughs Corp | Small micro-programme data processing system employing multi- syllable micro instructions |
US3913074A (en) * | 1973-12-18 | 1975-10-14 | Honeywell Inf Systems | Search processing apparatus |
US3953833A (en) * | 1974-08-21 | 1976-04-27 | Technology Marketing Incorporated | Microprogrammable computer having a dual function secondary storage element |
-
1974
- 1974-11-27 GB GB5136974A patent/GB1464570A/en not_active Expired
-
1975
- 1975-09-09 IT IT27031/75A patent/IT1051658B/it active
- 1975-10-06 FR FR7531449A patent/FR2331094A1/fr active Granted
- 1975-10-29 JP JP12939675A patent/JPS5417620B2/ja not_active Expired
- 1975-10-31 DE DE2548720A patent/DE2548720C2/de not_active Expired
- 1975-11-06 CA CA239,368A patent/CA1050663A/en not_active Expired
- 1975-11-13 US US05/631,547 patent/US4021779A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
US4021779A (en) | 1977-05-03 |
GB1464570A (en) | 1977-02-16 |
FR2331094B1 (de) | 1979-06-15 |
FR2331094A1 (fr) | 1977-06-03 |
DE2548720A1 (de) | 1976-06-10 |
JPS5417620B2 (de) | 1979-07-02 |
JPS5168745A (de) | 1976-06-14 |
IT1051658B (it) | 1981-05-20 |
CA1050663A (en) | 1979-03-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE2555963C2 (de) | Einrichtung zur Funktionsmodifizierung | |
DE69833008T2 (de) | Prozessor mit instruktionskodierung mittels eines schablonenfeldes | |
DE2819571C2 (de) | ||
DE2548720C2 (de) | Mikroprogramm-Steuerwerk | |
DE2714805C2 (de) | ||
DE1931966C3 (de) | Datenverarbeitungsanlage mit Assoziativspeichern | |
EP0097725B1 (de) | Einrichtung im Befehlswerk eines mikroprogrammgesteuerten Prozessors zur direkten hardwaregesteuerten Ausführung bestimmter Instruktionen | |
DE2542751C2 (de) | Datenverarbeitungsanlage | |
CH620779A5 (de) | ||
DE2540975A1 (de) | Multi-mikro-prozessor-einheit | |
DE1549523B2 (de) | Datenverarbeitungsanlage | |
DE2505384A1 (de) | Steuerteil fuer eine elektronische datenverarbeitungsanlage | |
CH650600A5 (de) | Zentralprozessoreinheit einer datenverarbeitungsanlage mit operationscode-erweiterungsregister. | |
DE2117936B2 (de) | Mikroprogrammgesteuerte Zentraleinheit eines elektronischen Datenverarbeitungssystems | |
DE2411963B2 (de) | Datenverarbeitungsanlage | |
DE2230102A1 (de) | Rechenwerk fuer variable wortlaengen | |
DE2318069A1 (de) | Rechnersteuersystem unter verwendung von mikroprogrammierung und statisch/dynamischer erweiterung von steuerfunktionen mittels festverdrahteter logischer matrix | |
DE2758830A1 (de) | Rechenvorrichtung | |
DE3114921C2 (de) | Mikroprogramm-Speicheranordnung | |
DE3400723A1 (de) | Vektorprozessor | |
DE1549474B2 (de) | Anordnung in einer elektronischen digitalen Datenverarbeitungsanlage zur Ausführung eines ersten Befehls und gleichzeitigen Decodierung eines folgenden Befehls | |
DE3507584C2 (de) | ||
DE2725614C2 (de) | ||
DE2245284A1 (de) | Datenverarbeitungsanlage | |
WO2006058358A2 (de) | Verfahren zum steuern der zyklischen zuführung von instruktionswörtern zu rechenelementen und datenverarbeitungseinrichtung mit einer solchen steuerung |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OD | Request for examination | ||
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |