DE2548720C2 - Mikroprogramm-Steuerwerk - Google Patents

Mikroprogramm-Steuerwerk

Info

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
Application number
DE2548720A
Other languages
English (en)
Other versions
DE2548720A1 (de
Inventor
Peter Lycett Alresford Hampshire Gardner
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE2548720A1 publication Critical patent/DE2548720A1/de
Application granted granted Critical
Publication of DE2548720C2 publication Critical patent/DE2548720C2/de
Expired 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
    • 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/223Execution 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
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.
Aus den obigen Erläuterungen geht hervor, daß die verschiedenen Elemente eines Prozessors nicht dieselbe Arbeitsgeschwindigkeit aufweisen. Betrachtet man z. B. die Torschaltungen kollektiv als ein Element, so haben
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.
Ein weiterer zu berücksichtigender Punkt ist der Umstand, daß einige Elemente nicht nur eines sondern eine
ίο 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.
Ignoriert man einmal die Dateneingabe in die Matrix 10, die konventionell erfolgt, so laufen die Leseoperatio-
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.
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 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
Fig.2 gezeigten Art, einem Assoziativspeicher Fund einer Schnittstelle / besteht, wobei der zu steuernde Prozessor R rechts von der Schnittstelle /in Fig.3 liegen soll. Zur Vereinfachung der Beschreibung und des
:| 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
Worin die Quelle entweder R (der Prozessor). M. A. B, C. D, £ F oder T der Typ entweder Q(Takt).
«/(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:
Zeil Funktion Signal
ίο 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,
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,
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.
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,
I) Zahl nach Rt zurücksetzen,
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
Mj lediglich Eingangspunkte in die Operation der verschiedenen interaktiven Steuer-Einheiten des Multiprozessors
;§, 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
I, 2. hat die Funktion Operationszyklen, die der Ausführung einer Anzahl von Instruktionen gemeinsam sind
;'<! 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)

Patentansprüche:
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.
DE2548720A 1974-11-27 1975-10-31 Mikroprogramm-Steuerwerk Expired DE2548720C2 (de)

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)

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

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

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