[go: up one dir, main page]

DE2542740C2 - Datenverarbeitungsanlage mit einer Mikroprogrammsteuerung - Google Patents

Datenverarbeitungsanlage mit einer Mikroprogrammsteuerung

Info

Publication number
DE2542740C2
DE2542740C2 DE2542740A DE2542740A DE2542740C2 DE 2542740 C2 DE2542740 C2 DE 2542740C2 DE 2542740 A DE2542740 A DE 2542740A DE 2542740 A DE2542740 A DE 2542740A DE 2542740 C2 DE2542740 C2 DE 2542740C2
Authority
DE
Germany
Prior art keywords
microinstruction
memory
address
control
bits
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
DE2542740A
Other languages
English (en)
Other versions
DE2542740A1 (de
Inventor
Carl Justin Hopkinton Mass. Alsing
Ronald Hans Framingham Mass. Gruner
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.)
EMC Corp
Original Assignee
Data General 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 Data General Corp filed Critical Data General Corp
Publication of DE2542740A1 publication Critical patent/DE2542740A1/de
Application granted granted Critical
Publication of DE2542740C2 publication Critical patent/DE2542740C2/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/264Microinstruction selection based on results of processing
    • G06F9/265Microinstruction selection based on results of processing by address selection on input of storage

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)

Description

Die Erfindung betrifft eine Datenverarbeitungsanlage gemäß dem Oberbegriff des Hauptanspruchs.
Eine derartige Datenverarbeitungsanlage ist aus der DE-OS 22 04 250 bereits bekannt.
Der Erfindung liegt die Aufgabe zugrunde, eine Mikroprogrammsteuerung für eine Datenverarbeitungsanlage der im Oberbegriff des Patentanspruchs 1 genannten Art so auszubilden, daß sie neben einem ersten Makrobefehlssatz einen weiteren, um zusätzliche Makrobefehle erweiterten Makrobefehlssatz ausführen kann.
Gelöst wird diese Aufgabe gemäß den kennzeichnenden Merkmalen des Patentanspruchs 1.
Der Kern der vorliegenden Erfindung besteht darin, die Mikroprogrammsteuerung einer Datenverarbeitungsanlage so auszubilden, daß damit neben einem Makrobefehlssatz für eine Rechnerbaureihe ein gegenüber diesem erweiterter Makrobefehlssatz einer anderen Baureihe ausgeführt werden kann.
Die Decodierungseinrichtung für die Makrobefehlscodes wird dabei so ausgebildet, daß sie durch ein internes Signal »EIS« (Extended Instruction Set), das durch Vordecodierung des Befehlscodes oder eines Signals »NOWA« aus dem Bedienungspult des Rechners von einem Makrobefehlssatz zum anderen umgeschaltet werden kann.
Bei der DE-OS 22 04 250 handelt es sich um eine Datenverarbeitungsanlage, die von einem »Arbeitsverfahren« für eine mikroprogrammierte Kleindatenverarbeitungseinheit ausgeht und die als Kennzeichen eine tetratenweise (4 Bit) Entschlüsselung des Maschinenbefehls durch die Mikroprogrammsteuerung nennt. Diesem Merkmal entspricht die Vordecodiermultiplex-Einrichtung des Oberbegriff des Anspruchs 1, die aus einer ersten und einer zweiten (4 Bit)-Gruppe von Decodieradressensignalen auswählt.
Die oben genannte Aufgabe und die Lösung dieser Aufgabe werden von der DE-OS 22 04 250 aber nicht angesprochen und auch nicht nahegelegt.
In Unteransprüchen werden vorteilhafte Weiterbildungen beansprucht.
Ergänzend sei noch auf die US-PS 36 46 522 verwiesen, gemäß der. siehe insbesondere die Fig. la und Ib, in einem Hauptspeicher Makroinstruktionen und in einem Speicher ROM 20 entsprechende Folgen von Mikroinstruktionen gespeichert sind. Die Makroinstruktionen werden vom Hauptspeicher über die Sammelschiene 30 ausgelesen und dann im Register 17 angeordnet. Einzelne Bits dieser Makroinstruktionen des Registers 17 werden dann als Eingänge dem Decodierer 21 zugeführt, der diese Bits decodiert, um eine Startadresse der entsprechenden Folge von Mikroinstruktionen in dem ROM 20 zu erlangen. Eine Startadresse ist die Adresse bzw. Stelle im ROM 20, in der die erste Mikroinstruktion der entsprechenden Folge von Mikroinstruk'ionen gespeichert ist. Die vom Decodierer 21 geliefei :c Startadresse wird im Adressenregister RA 20a des ROM 20 angeordnet. ROM 20 liefert dann die Mikroinstruktionen der einer Makroinstruktion entsprechenden Folge von Mikroinstruktionen entsprechend der Startadresse an das Decodierregister RD 34. Die Bits der Mikroinstruktionen in RD 34 tl/grH^n dan" dSZU Kormt-r*- <-4,ö
des Computers zu steuern.
Auch diese Druckschrift spricht die eingangs erwähnte Aufgabe und deran Lösung jedoch nicht an.
Eine Makroinstruktion besteht üblicherweise aus einem binären Wort von fester Länge, im vorliegenden Falle beträgt diese Länge 16 Bit, wobei das Muster von Kombinationen von Einem und Nullen in diesen 16 Bits die Makroinstruktion festlegen. Im allgemeinen werden &o nicht alle möglichen Kombinationen von Einem und Nullen im Operationscode bei dem normalen Makroinstruktiop.ssatz des Computers ausgenutzt. Da jede Makroinstruktion bei dem hier erwähnten Beispiel aus 16 Einzelbits besteht, ergeben sich 2I6 = 65 536 unterschiedliche Möglichkeiten für eine Makroinstruktion. Von diesen werden bestimmte ausgewählt, die einen »normalen« Instruktionssatz umfassen, während andere zu einem erweiterten Satz von Makroinstruktionen führen. Da insgesamt weniger als die maximal mögliche Zahl von Makroinstruktionen notwendig ist, hat der Rechner die grundsätzliche Möglichkeit, jede einzelne dieser Makroinstruktionen von anderen Makroinstruktionen zu unterscheiden. Damit besteht also die Möglichkeit, auch zwei unterschiedliche Sätze von Makroinstruktionen zu verarbeiten, wobei nach Möglichkeit dies ohne wesentlichen Schaltungsaufwand und ohne wesentliche zusätzliche Bearbeitungszeiten erreicht werden sollte. Wie noch im einzelnen näher ausgeführt wird, läßt sich diese angestrebte Zeitersparnis vor allem dadurch erreichen, daß die über eine Sammelschiene vom Arbeitsspeicher gelieferten Bits der geraden anliegenden Makroinstruktion vordecodiert werden, um auf diese Weise das Signa! »EIS« zu gewinnen, das dann zur weiteren Steuerung der Decodierung bzw. der Adressenbildung für die nächste auszuwählende Mikroinstruktion verwendet wird.
Wie sich aus der nachfolgenden Beschreibung auch ergibt, ist der für die Unterscheidung der beiden Klassen von Makroinstruktionen notwendige Schaltungsauswand sehr gering, praktisch besteht er nur aus zwei Verknüpfungsgliedern, die das Signal »EIS« erzeugen, sowie einem weiteren Verknüpfungsglied, das ein zur Umschaltung eines Multiplexers dienendes Signal erzeugt. Da keine ohnehin erforderlichen Speicher und damit Speichervorgänge notwendig sind, werden auch keine zusätzlichen Arbeitszeiten erforderlich, so daß die Datenverarbeitungsanlage keine Betriebsverlangsamung erfährt.
Die Erfindung wird nachfolgend anhand eines Ausführungsbeispiels näher erläutert, daß in den Zeichnungen dargestellt ist.
Es zeigt:
F i g. 1 ein allgemeines Blockdiagramm der Datenverarbeitungsanlage;
Fig.2 ein schematisches Blockdiagramm des in Fig. 1 dargestellten Datenspeichers61;
Fig. 3 ein schematisches Blockdiagramm der in Fig. 1 dargestellten arithmetisch-logischen Einheit (ALU) 62;
F i g. 4 ein schematisches Blockdiagramm der gemäß der Fig. 1 der ALU nachgeschalteten Verschiebeeinrichtung 63;
F i g. 5 ein allgemeines schematisches Blockdiagramm der Mikroprogrammsteuerung 66;
Fig. 6 ein ins einzelne gehendes schematisches Blockdiagramm des in Fig. 5 dargestellten Mikroprogrammprozessors, wobei ein Makroinstruktionsregister, ein Codiermultiplexer, ein Codierregister und ein \//-,»-(-ior«i-\/Higrrrjiiitin|£V£r dargestellt sind*
F i g. 7a und 7b gemeinsam ein ins einzelne gehende Blockdiagramm zur Darstellung weiterer Einzelheiten des Mikroprozessors gemäß F i g. 5, mit einem Makroinstruktions-(IR)-Decodierfestwertspeicher, einem μJSR-Register. einen Truadmultiplexerregister, einer Adressiereinrichtung, und einem Festwertadressenregister (Steuerspeicher);
Fig.8 ein detailliertes schematisches Diagramm der in Fig. 5dargestellten Phantomlogik 112;
F i g. 9 ein schematisches Blockdiagramm der Mikrobefehlsfelder und der Mikrodecodiersteuerlogik 69 der F i g. 1; und
Fig. 10, 11a, lib, 12 und 13 Flußdiagramme zur Erläuterung der Arbeitsweise der erfindungsgemäßen Datenverarbeitungsanlage.
Die in Fig. 1 dargestellte Datenverarbeitungsanlage
arbeitet mit einer Makroinstruktionswortlänge von 16 Bit und läßt sich als sehr kleine Anlage wie auch als sehr umfangreiche Anlage ausführen. Die zentrale Verarbeitungseinheit (CPU) steuert die Gesamtanordnung, insbesondere den Datenstrom zwischen sich und verschiedenen Speicher-, Eingabe- und Ausgabeeinrichtungen. Die CPU führt auch alle Makroinstruktionen aus und bestimmt deren ordnungsgemäße Aufeinanderfolge bei der Ausführung der Makroinstruktionen.
Die Speicherung der 16-Bitworte erfolgt in der Weise, daß die einzelnen Bits von links nach rechts von 0 bis 15 numeriert werden. Derartige 16-Bitworte werden entweder als Makroinstruktionen, als Adressen oder als Operanden (d. h. als Daten für das Programm) benutzt. Das Programm kann einen Operanden als ein logisches Wort, als eine Adresse, als ein Paar von Bytes mit jeweils 8 Bit oder auch als 16stellige Binärzahl interpretieren.
F i g. 1 zeigt in Blockdiagrammform die erfindungsgemäße Datenverarbeitungsanlage, mit einer zentralen Verarbeitungseinheit (CPU) 51, einer oder mehreren Speichereinheiten 52 (Hauptspeicher oder Arbeitsspeicher), einem Speicheradressenmultiplexer 53 und einem Eingabe-/Ausgaberegistermultiplexer 54 zur Steuerung von Ein-/Ausgabeeinrichtungen 55. Der Ausgang des Ein-/Ausgaberegistermultiplexers 54 steht über ein NAND-Verknüpfungsglied 56 sowie mit einer Datensammelschiene 59 in Verbindung. Eine Speichersammeischiene 57 ermöglicht eine Übertragung von Daten oder Worten in zwei Richtungen zwischen dem Datenspeicher 61 sowie dem Hauptspeicher 52. Eine Adressensammelschiene 58 ermöglicht mit Hilfe des Multiplexers 53 die Übertragung von Speicheradressen vom CPU zum Hauptspeicher 52. Die Datensammelschiene 59 sorgt für die Übertragung von Daten zwischen der Ein-/Ausgabeeinrichtung 55, dem Ein-/Ausgaberegistermultiplexer 54 und dem Verknüpfungsglied 56. das durch ein Signal mit der Bezeichnung I/O BUFOUT aktivierbar ist. In umgekehrter Richtung ergibt sich ein Zugang zur Ein-ZAusgabeeinrichtung 55 vom Hauptspeicher 52 über die Speichersammeischiene 57, den Ein-ZAusgaberegisiermultiplexer 54 und die Datensammelschiene 59.
Wie der F i g. 1 zu entnehmen ist, umfaßt die zentrale Recheneinheit 51 auch eine mit der Bezugszahl 61 versehene Datenspeichereinrichtung oder auch Registerdatei, die gemäß Fig. 2 u.a. vier als ACO, AC\, AC2 und AC3 bezeichnete Akkumulatoren enthält. Des weiteren sind drei allgemeine Register vorgesehen, die mit GR 0, GR 1 und GR 2 bezeichnet sind, sowie ein als Programmzähler arbeitendes Register PC. !n Fig. 1 ist die Registerdatei fii jq dargestellt, daß sie zwei Ausgänge A und Sund zwei Eingänge A und Caufweist, wobei die Ausgänge A und B mit der arithmetisch-logischen Einheit (ALU) 62 verbunden sind. Der Ausgang der ALU 62 ist mit einer in Fig. 4 näher dargestellten Verschiebeeinrichtung 63 verbunden, deren Ausgang zum A- Eingang der Registerdatei 61 zurückgeführt ist. Der Eingang C der Registerdatei 61 besitzt eine Verbindung zur Speichersammeischiene 57, während der Ausgang A der Registerdatei 61 mit dem Ausgang einer mit der Bezugszahl 64 versehenen /4-Eingangsdatenlogik verbunden ist. Der ß-Ausgang der Registerdatei 61 wiederum ist mit einem Eingang der /4-Eingangsdaten /4-Eingangsdatenlogik 64 verbunden, außerdem über ein NAND-Verknüpfungsglied 60, das durch ein Signal B OUT einschaltbar ist, mit der Speichersammeischiene 57. Der Ausgang der ALU 62 ist mit der Adressensammelschiene über den Speicheradressenmultiplexer 53 und mit einem Eingang der Eingangsdatenlogik 64 verbunden, außerdem über ein NAND-Verknüpfungsglied 60' mit der Speichersammeischiene 57. Normalerweise wird die Speichersammeischiene durch den Ausgang der ALU gesteuert, die oben geschilderte besondere Schaltung ermöglicht aber auch die Erzeugung einer Adresse auf der Adressensammelschiene 58 mit Hilfe der ALU 62 und des Speicheradressenmuitiplexers 53, wobei gleichzeitig Daten in den Hauptspeicher 52 eingeführt werden.
Durch die angegebene Schaltung läßt sich die Adressierung des Hauptspeichers 52 und die nachfolgende Einführung von Daten effektiver gestalten, beispielsweise mit Hilfe einer vom Mikroprogrammprozessor 66 gelieferten Mikroinstruktion, die die Signale MC 4 und B MEM erzeugt, um die Verknüpfungsglieder 60, 60' durch die Steuersignale B OUT und ALU OUT anzusteuern.
Diese Fähigkeit wird wertvoll bei Maschineninstruktionen, wie beispielsweise »speichere den Inhalt des Akkumulators« und/oder »lade den Akkumulator«, was häufig wiederholt auftritt und daher so schnell wie möglich vor sich gehen sollte. Die Anwendung dieser Fähigkeit kann in der folgenden Weise erläutert werden. Bei einer Makroinstruktion zum Abspeichern des Akkumulatorinhalts wird zunächst die wirksame Adresse ermittelt und in den Adressenspeicher gebracht. Als zweites wird der Programmzähler erhöht und das Ergebnis in den Adressenspeicher eingeführt und der Akkumulatorinhalt dann in den Speicher eingeschrieben. Als drittes wird die nächste Instruktion abgerufen. Mit der angegebenen Datenwegfähigkeit kann zur gleichen Zeit der Akkumulatorinhalt in den Speicher eingeschrieben, der Programmzähler erhöht und zur Speicheradresse übertragen werden.
Die CPU enthält neben der Registerdatei 61 noch zusätzlich einen Makroinstruktionsspeicher 65, dessen Funktion im folgenden noch näher erläutert wird. Die 16
to Bits einer Makroinstruktion, der von diesem Speicher 65 gespeichert werden kann, enthalten sowohl einen Operationscode wie auch Informationen, die mit der auszuführenden Operation zusammenhängen. Gemäß F i g. 1 ist ein Ausgang des Speichers 65 mit der A-Eingangsdatenlogik 64 verbunden, während ein zweiter Ausgang über einen Vordecodiermultiplexer 104 mit einem Mikroprozessor 66 (auch Mikroprogrammsteuerung genannt) in Verbindung steht, der aus einer Mikroinstruktionsadressierlogik 68 mit darin gespeicherten Mikroinstruktionen und einem ein Mikroinstruktionsregister bildenden Ausgangspuffer 108 für jeweils eine Makroinstruktion und einer dem Ausgangspuffer 108 nachgeschalteten Mikroinstruktionsdecodierlogik 69 besteht, die ggf. für den Betrieb der Datenverarbeitungsanlage benötigte Steuersignale aus der gerade anliegenden Mikroinstruktion, die eine Länge von 65 Bit aufweist, erzeugt.
Die Mikroinstruktion adressiert anfänglich einen Festwertspeicher (in F i g. 5 z. B. 105 oder 106—107), um die nächste Mikroinstruktion auszuwählen, die in den ROM-Puffer 108 eingeschrieben werden soll. Bei dem vorliegenden System kann die Anstiegskante, die von dem CPU-Taktgeber 67 erzeugt wird, eine neue Mikroinstruktion in dem ROM-Puffer einsteuern, und zwar innerhalb von jeweils z. B. nur 200 ns.
Ein asynchroner Speicher kann die Anstiegskante der 200 ns-Periode so weit ausdehnen, daß der Speicher die Datenforderungen der CPU erfüllen kann. Die in den
Puffer 108 geladene 65-Bit-Mikroinstruktion wird, wie im folgenden noch diskutiert, mit ihren einzelnen Bit-Stellen selektiv an die Mikroinstruktionsdecodierlogik 69 angeschlossen, um die gewünschten Steuersignale für den ordnungsgemäßen Datendurchfluß zu liefern, wie es von der Mikroinstruktion bestimmt wird.
Der Ausgang des Blockes 65 liefert auch Signale an die /4-Eingangsdatenlogik 64, der außerdem ein Vorzeichenerweiterungssignal zum Zwecke der Berechnung von effektiven Adressen (EFA) zugeführt wird, wie später noch näher erläutert wird.
Wie der F i g. 2 zu entnehmen ist, die den Datenspeicher 61 der CPU 51 in größeren Einzelheiten zeigt, umfaßt die CPU 61 insgesamt acht Register, und zwar vier Akkumulatoren ACO, ACl, ACl und AC3, drei allgemeine Register GRO, GR lund GR2 zur Zwischenspeicherung von Daten, sowie einen Programmzähler mit der Bezeichnung PC. Bei den Registern kann es sich um integrierte Bausteine 71 bis 78 handeln, die jeweils acht 2 Bitworde enthalten und von der Dualanschlußbauart sind, so daß jeweils zwei Worte gleichzeitig ausgelesen werden können. In einer solchen Anordnung können auch zwei Register gleichzeitig eingeschrieben werden.
Die Register 71 bis 78 besitzen jeweils zwei Schreibeingänge A und Cund zwei Leseausgänge A und B, wobei letztere mit den Eingängen der ALU verbunden sind, wie in F i g. 3 in Einzelheiten dargestellt ist. Die in Einzelheiten in Fig.4 dargestellte Verschiebeeinrichtung 63 liefert Signale SHIFTO... SHIFT 15 an die jeweils doppelt vorhandenen Eingänge A der Plättchen 71 bis 78, wie aus F i g. 2 zu erkennen ist. Den jeweils doppelt vorhandenen Eingängen C werden wiederum von der Speichersammeischiene 57 Signale MEM 0... IVlEM 15 zugeführt. Die Leseausgangssignale der Plättchen 71 bis 78, bezeichnet mit A 0, A 1 ... A 15 laufen zur /4-Seite der ALU 62, siehe Fig. 3. Die Anschlüsse B der Plättchen 71 bis 78 stehen über NAND-Verknüpfungsglieder 79, die von dem Signal B OUT angesteuert werden, mit der Speichersammeischiene 57, und zwar mit deren Einzelleitungen für die SignaleMEM 0...ΜΕΜ 15 in Verbindung.
Der F i g. 3 ist zu entnehmen, daß die arithmetisch-logische Einheit 62 aus vier integrierten Bausteinen 81 bis 84 besteht, beispielsweise vom Typ SN 74S181. Jeder der integrierten Bausteine 81 bis 84 akzeptiert einen A- und einen ß-Eingang von jeweils 4 Bits.
Ein jeweils auftretender Übertrag wird durch ein Signal CRY gekennzeichnet. Die Bausteine erzeugen Ausgangssignale ALU von 4 Bit sowie jeweils auch wieder ein den Übertrag anzeigendes Signal CRY.
Die von den ALU-Bausteinen auszuführenden Funktionen werden durch Steuerungssignale bewirkt, die mit ALU S 0 ... ALU S 3 sowie als Logikmodus bezeichnet werden. Diese Steuersignale werden von der Mikroprogramminstruktion abgeleitet, wie im folgenden noch näher erläutert wird. Der Ausgang der ALU-Bausteine steht nicht nur mit der Verschiebeeinrichtung 63 in Verbindung, wie in Fig. 1 dargestellt, sondern auch noch mit der Speichersammeischiene 57 über eine Serie von NAND-Verknüpfungsgliedern 85, die durch ein ALU OUT-Signal geschaltet werden und auf den einzelnen Leitungen der Speichersammeischiene 57 die SignaleMEM 0...ΜΕΜ 15erzeugen.
Wie aus F i g. 4 hervorgeht, umfaßt die Verschiebeeinrichtung 63 acht an sich Multiplexer darstellende integrierte Bausteine 91, mit denen bestimmte Funktionen ausgeführt werden, beispielsweise die Datenübertragung zum Ausgang des Addierers, Rechtsverschiebung wie Linksverschiebung oder auch Nichtverschiebung des Datenausgangs. Die zur Ansteuerung der Verschiebeeinrichtung 63 dienenden Signale SHSE 0 ... 1 werden wiederum durch Decodierung einer Mikroinstruktion sowie auch durch das Einführen von Daten vom Ausgang des Addierers festgelegt. Auch die Signale WRITE IN, START IN und LEFT IN werden durch Decodierung einer Mikroinstruktion gewonnen, um eine auszuführende Verschiebung zu steuern.
Bei einer mit einem Mikroprogramm arbeitenden Datenverarbeitungsanlage werden die Steuersignale von der gerade anliegenden Mikroinstruktion abgeleitet, die hier aus einem 56 Bit lagen Wort besteht, Zahlreiche Mikroinstruktionen sind in einem aus z. B. vier Seiten mit jeweils 256 Speicherplätzen bestehenden Festwertspeicher 107 gespeichert, siehe die Fig. 5. Diese Mikroinstruktionen dienen größtenteils zur Ausführung von Befehlen der Datenverarbeitungsanlage, beispielsweise Steuerung von Signalen über die verschiedenen Datenwege, Steuerung der Funktion des ALU, der Verschiebeeinrichtung usw., außerdem wird der Festwertspeicher 107 adressiert, um die nächste Mikroinstruktion auszuwählen, die anschließend in dem dem Festwertspeicher 107 nachgeschalteten Puffer 108 eingeschrieben werden soll. Die Anordnung ist hier so getroffen, daß mit der Anstiegskante des vom Taktgeber 67 (Fig. 1) gelieferten CPU-Taktsignals jeweils eine neue Mikroinstruktion in den Puffer 108 eingeführt werden kann, und zwar in einem zeitlichen Abstand von jeweils 200 ns.
Wie später noch anhand der Fig. 9 näher erläutert werden wird, umfaßt eine Mikroinstruktion vor. 56 Bit mehrere, nämlich 16 einzelne Steuerfelder, die jeweils unterschiedliche Teile der Datenverarbeitungsanlage ansteuern.
In Verbindung mit F i g. 1 wurde bereits erwähnt, daß eine zusätzliche Speichereinrichtung 65 zur Aufnahme jeweils einer Makroinstruktion von der Speichersammelschiene 57 vorgesehen ist, und in Fig.5 ist dieses auch wieder zu erkennen. Die Speichersammeischiene 57 ist außerdem mit einem IR-Codiermultiplexer 101 und einem IR-Codierregister 102 verbunden (IR = Makroinstruktion), wobei diese beiden Blöcke durch das eingangs erwähnte Signal EIS angesteuert werden, das anzeigt, daß auf der Speichersammeischiene 57' eine »erweiterte« Makroinstruktion vorhanden is·. (Ohne diese Einrichtung 101 und 102 würde die Datenverarbeitungsanlage diese Befehle als Leerbefehle betrachten und nicht ausführen.)
Der Speicher 65 steht mit einem IR-Vordecodiermultiplexer 104 in Verbindung, der bestimmte Signale aus der Makroinstruktion, die im Speicher 65 enthalten ist, herauszieht und als Signale DEC ADDR 4 ... 7 einem IR-Decodierfestwertspeicher 105 zuführt, in dem fest eincodierte Adressen vorhanden sind. Dem IR-Decodierfestwertspeicher 105 wird außerdem der Ausgang eines IR-Vordecodierfestwertspeichers 103 zugeführt, der von Ausgangssignalen des IR-Codierregisters 102 angesteuert wird. Für jede Makroinstruktion enthält der IR-Decodierfestwertspeicher 105 eine Mikroinstruktionsadresse.
Von den Ausgangssignalen des IR-Codierregisters 102 wird ein Verknüpfungsglied 100 angesteuert, das seinerseits durch Ansteuerung des IR-Vordecodiermultiplexers 104 die Auswahl von jeder der Leitungen IR 1—4 oder der Leitungen IR 5—8 vom Makroinstruktionsspeicher 65 ermöglicht. Die innerhalb des IR-Deco-
ίο
dierfestwertspeichers 105 ausgewählte Mikroinstruktionsadresse wird dann im nachgeschalteten ROM-Adressenmultiplexer 106 verwendet, um zum einen festzulegen, von welchen der mehreren Eingabeeinheiten eine Mikroinstruktion ausgewählt wird, sowie von welcher Speicherstelle des Festwertspeichers 107 die Auswahl stattfinden soll. Die an dieser Speicherstelle gespeicherte Mikroinstruktion wird adressiert und ausgelesen und anschließend in den Mikroinstruktionspuffer 108 geladen.
Die im Puffer 108 geladene Mikroinstruktion wird dann an den Mikroinstruktionsdecodierer 69 weitergeleitet, wo Steuersignale für die Datenverarbeitungsanlage daraus gewonnen werden. Bestimmte Bits dieser im Puffer 108 geladenen Mikroinstruktion werden außerdem dazu benutzt, die Adressierung des Festwertspeichers 107 zu ermöglichen, basierend auf der im Speicher 65 enthaltenen Makroinstruktion. Andere ausgewählte Bits der im Puffer 108 gespeicherten Mikroinstruktion gelangen zu einem Truadmultiplexer 109, durch den, wie der Fig.5 entnommen werden kann, der Festwertadressenmultiplexer 106 sowie der Festwertspeicher 107 zusätzlich adressierbar ist, während noch andere Bits einem μJSR-Register 111 zugeführt werden, der ebenfalls zur Adressierung des Festwertspeichers 107 über den Festwertadressenmultiplexer 106 dient.
Der Festwertspeicher 107 kann noch auf eine weitere Art adressiert werden, indem bestimmte Bits des eine Mikroinstruktion enthaltenden Puffers 108 (gemäß Fig. 5 sind es die Bits RBUF 48 ... 55) direkt an den Festwertadressenmultiplexer 106 geführt werden.
Im vorliegenden Zusammenhang von Bedeutung ist auch die Phantomlogik, die bei Einschaltung durch ein Verknüpfungsglied 122 von der Speichersammeischiene Signale aufnimmt und direkt an den Puffer 108 liefert, um so eine erste Mikroinstruktion (einer zu einer Makroinstruktion gehörenden Folge von Mikroinstruktionen) zu erzeugen, während gleichzeitig diese Makroinstruktion in den Speicher 65 geladen wird, was, wie noch näher erläutert werden wird, Betriebszeit (nämlich eine volle Taktperiode) einspart.
Gewisse Einzelheiten des Betriebs des Makroinstruktionsregisters 65 in Verbindung mit dem Mikroprogrammrechner können aus der Fig. 6 entnommen werden, in der das Makroinstruktionsregister 65 in der Form dargestellt ist, daß er aus drei integrierten Plättchen 102 besteht, die als Eingang die Bits MEM 4—15 erhalten. Wie schon früher erläutert wurde, wird das EIS-Signal in dem IR-Codiermultiplexer 101 verwendet, um die Anwesenheit von erweiterten Makroinstruktionen anzuzeigen, anstelle von den genannten Leerbefehlen. Das Signal NOVA kennzeichnet die früheren Maschinen und normalen Makroinstruktionen. Das NOVA-Signal wird an das NAND-Verknüpfungsglied 113 zusammen mit MEM 13, 14, 15 angeschlossen, um eine erweiterte Makroinstruktion anzuzeigen, wenn MEMO und MEM 12 am Eingang des Inverters 114 bzw. 115 niedrig sind. Alternativ können, indem das Signal NOVA an Masse gebunden wird, die EIS-lnstruktionen Leerbefehle werden. EIS wird daher das erste Bit des IR-Registers 102. Die nächsten vier Bits sind ebenfalls keine genaue Kopie der aus der Speichersammeischiene ausgelesenen Makroinstruktionen, sondern eine vorläufige Decodierung der 16-Bit-Makroinstruktionen. Wie dargestellt erzeugen das Signal MEM 9. 10 am NAND-Verknüpfungsglied 116 und das Signal MEM 5—8 über eine Serie von Invertern 117 das Signal CODE 36, das für kommerzielle Makroinstruktionen bestimmt ist. Die vier Bits sind MEM 0—2, 9—11. Die Ausgänge des IR-Codierregisters 102 umfassen lRO + 11, IR 1 + 10, IR 2 + 9 und Für die Nicht-EIS-lnstruktion CONTNST
CON INST+ CODE 36.
werden
MEM 0-2 und
und für die
EIS-lnstruktion MEM 9-11 und CODE 36 ausgewählt. Wie schon bemerkt wurde, bestimmen die unterschiedlichen Kombinationen der Eingangssignale für EIS und für Nicht-EIS, ob die UND-ODER-INVERT-Verknüpfungsglieder 100 den IR-Vordecodier-MUX 101 einschalten oder nicht. Eine derartige Auswahl ermöglicht dem Vordecodier-ROM 103 und dem IR-Vordecodiermultiplexer 104 die Auswahl von bestimmten IR-Decodier-ROM-Adressen am IR-Decodier-ROM 105, der eine einmalige Mikroinstruktions-ROM-Adresse für jeden Instruktionsoperationscode enthält. Die Eingangssignale für den IR-Vordecodier-ROM 103 werden selektiv gesteuert, um den IR-Vordecodiermultiplexer 104 durch Schalten zu steuern, um die Signale DEC ADR 4—Tzu erhalten.
Ein Beispiel für eine permanent in den IR-Vordecodier-ROM eingeschriebene Mikrocodeadresse zur Erlangung der Signale DEC ADR 0—3 kann aus der Tabelle I entnommen werden. Auch abgeleitet sind WCS DEC EN für einen einschreibbaren Steuerspeicher und EXT INS für externe Makroinstruktionen, z. B. für kommerzielle Makroinstruktionen. Jedes dieser letzgenannten Signale bestimmt getrennt unterschiedliche Seiten des adressierten ROM (nicht dargestellt). Abhängig davon, ob EIS hoch oder niedrig liegt, wird ein unterschiedlicher Satz von Eingängen dem IR-Vordecodier-ROM 103 und dem IR-Vordecodier-MUX 104 zugeführt, um unterschiedliche Ausgänge für den IR-Decodier-ROM 105 zu erzeugen. Die octalen Adressen werden durch die folgenden Signaleingänge (von rechts nach links gelesen) festgelegt: CON INST + CO-DE~36; MEM 2 + 9; MEM 1+10; MEM 0 + 11 und EIS.
Tabelle I
Octale
Adresse
WCS
DEC ENAB
EXT
INS
DEC ADDRO DEC
ADDRl
DEC
ADDR 2
DEC
ADDR 3
00 0 0 0 0 1 1
01 0 0 0 0 0 1
06 0 0 0 0 0 0
10 0 0 0 0 1 0
15 0 0 0 0 0 1
Forlsetzung
Octale
Adresse
WCS
DEC ENAB
EXT
INS
DEC
ADDRO
DEC
ADDR 1
DEC
ADDR 2
DEC
ADDR 3
20 0 0 i 1 0 1
21 0 0 1 0 0 1
23 0 0 1 0 0 0
24 0 1 1 1 0 0
25 0 1 0 1 0 1
27 0 1 0 1 0 0
30 0 0 0 1 1 1
34 i 0 0 1 0 1
Ein Signa! LDlR abgeleitet von der Decodierung der Mikroinstruktion. bewirkt die Erzeugung eines niedrigen LDlR EN-Signals. Dieses Signal hält normalerweise das in F i g. 6 dargestellte Signal LDIR DlSCON niedrig, das wiederum über die Verknüpfungsglieder 118 das Signal LDlR CLK. bis zur nächsten Mikroinstruktion niedrig hält. Der IR wird daher normalerweise am genauen Ende der Mikroinstruktion während eines Signals LDlR taktgesteuert.
In F i g. 7a ist zu erkennen, daß die Adressenausgänge des IR-Vordecodierfestwertspeichers 103 sowie des IR-Vordecodiermultiplexers 104 (diese Signale sind bezeichnet mit DECADDRO . . 3 bzw. 4 ... 7) dem IR-Decodierfestwertspeicher 105 zugeführt werden. Dieser besteht aus zwei integrierten Bausteinen mit einem 8-ßitausgang.
Wiederum werden aufgrund von Mikroinstruktionsdecodiersteuersignalen (siehe Block 165 in Fig. 9) Steuersignale (DEC 1, DEC EN, DEC 2) erzeugt, die zur Steuerung dienen und festlegen, welcher von zwei vorhandenen Sätzen von Adressen, die durch Ausgänge des IR-Vordecodierfestwertspeichers 103 und des IR-Vordecodiermultiplexers 104 adressiert werden soilen, Gültigkeit haben. Die 8-Bitausgänge des IR-Decodierfestwertspeichers 105 werden mit entsprechenden 8-Bitausgängen von zwei integrierten Baustei-■■-.en 111 verbunden, di,- das μJSR-Registerplättchen 111 bilden, außerdem mit den insgesamt acht Ausgängendes Truadmukiplexers 109, der gemäß Fig. 7b aus zwei integrierten Bausteinen besteht. Diese miteinander verbundenen Ausgänge sind gemäß F i g. 7b an entsprechende Eingänge des ROM-Adressenmultiplexers 106 angeschlossen, gleichfalls aus zwei integrierten Bausteinen bestehend. Das μJSR-Register 111 wird außerdem angesteuert durch die vom Puffer 108 abgeleiteten Signale RBUF48 ... 55, außerdem erhält das Register 111 als Steuereingänge die Mikroinstruktionsbits RBUF 27, 28 sowie 38, 39. Durch diese Signale werden in die von dem Baustein 111 jeweils gebildeten vier HJSR-Register Daten eingeschrieben und ausgelesen. Dadurch wird ein Unterprogrammsprung wie auch eine Änderung des Mikroprogrammflusses ermöglicht, basierend auf bestimmten Bits, die ein μ/SR-Register 111 adressieren. Das Signal zum Laden des μJSR-Registers wird von einem NAND-Verknüpfungsglied 119 erhalten. das wiederum von einem Taktsignal (CLK FLOP) und Signalen der Mikroinstruktionsdecodiereinrichtung (DEC EN. LD SUB) über das NOR-Ver!:nüpfungsglied 119'abgeleitet wird. Der Eingang für den ROM-Adressenmultiplexer 106 wird z.T. durch DECEN und RETURN selektiv erreicht, welche Signale, wenn sie niedrig sind, den Truadmultiplexer 109 abschalten, indem über das Verknüpfungssystem 120 siehe F ι g. 7a. einem μJSR-Register ermöglicht wird, dem IR-Decodier-ROM 105 di. Speicheradressen zu liefern.
Wie aus Fi g. 7b zu erkennen ist, versorgt der Puffer 108 die beiden Truadmultiplexerbausteine 109 mit den Bits RBUF 40 ... 47. Wie F i g. 9 zeigt, stellen diese Bits die Adresse einer als nächstes auszuwählenden Mikroinstruktion dar, wenn bestimmte Voraussetzungen erfüllt sind. Andernfalls, nämlich dann, wenn die Signale DEC EN oder RETURN über das Verknüpfungsglied 121 dem Truadmultiplexer 109 zugeführt werden, wird dieser abgeschaltet und liefert diese Adresse nicht.
Das Signal LDIR, das z.B. in der letzten Mikroinstruktion eines Mikroinstruktionsprogramms vorkommt, siehe beispielsweise die noch zu erläuternde Fig. 1 la, welches Signal die Bedeutung »Lade Makroinstruktionsregister« hat und im Mikroinstruktionsbitfeld »Statusänderung« (Bits 32 bis 37) auftritt, siehe F i g. 9, führt aufgrund der Mikroinstruktionsdecodiereinrichtung 69, insbesondere in dessen Block 165 (Statusänderungsfestwertspeicher), zur Abgabe des Signals LDlR EN durch diesen Block 165, welches Signal dem Verknüpfungsglied 122 als niedriges Signal zugeführt wird. (Die dem Verknüpfungsglied 122 gemäß F i g. 7b von der Konsole zugeführten Signale STOP ENAB, REEXAM und das vom Verknüpfungsglied 125 stammende Signal INTRPEND können jedoch das Signal LDIR DISCON am Ausgang des Verknüpfungsgliedes 122 hochhalten.) Das Signal LDIR DISCON steuert gemäß Fig. 5 die Phantomlogik 112 an, die wiederum neben dem Puffer 108 den Festwertspeicher 107 ansteuert. Bei hohem Signal LDIR DISCON tritt die Phantomlogik 112 nicht in Wirkung, im anderen Falle wird jedoch der Festwertspeicher 107 abgeschaltet und in einer noch zu schildernden Weise dem Puffer 108 eine Phantom-Mikroinstruktion zugeführt, indem bestimmte Signale der auf der Speichersammeischiene 57 anliegen-
&o den Makroinstruktion an den Puffer direkt weitergeleitet werden.
Der ROM-Adressenmultiplexer 106 reagiert auf die Signale, die entweder vom IR-Decodierfestwertspeieher 105, vom μJSR-Register 111 oder vom Truadmultiplexer 109 stammen, wobei der ROM-Adressenmultiplexer 106 in seiner Wirkung durch die Signale RASEL (wird von der Mikroinstruktionsdecodiereinrichtung 69 erzeugt, siehe Fig. 9) und dem Signal INHRA
beeinflußt wird. Letzteres Signal schaltet den Multiplexer ab. Bei eingeschaltetem Multiplexer wird je nach Potential des Signals RASEL entweder das Bitfeld 40 bis; 47 als nächste Mikroinstruktionsadresse an den Block
107 weitergeleitet, im anderen Falle die Bits 48 bis 55. Der Festwertspeicher 107, der gemäß F i g. 7b durch
die Ausgangsleitungen des ROM-Adressenmultiplexers 106 eingespeist wird, umfaßt vorzugsweise vier Seiten Speicherfläche mit jeweils 256 Worten von 56 Bit Länge, wobei es die Adressen RA 2 ... RA 9 gibt. Ein weiterer Eingang für jede Festwertspeicherseite wird von dem Verknüpfungsglied 110 geliefert, das mit den Eingängen RA 0, RA 1 versorgt wird und festlegt, welche Seite der vier Speicherseiten ausgewählt wird. Ein weiterer Eingang des Festwertspeichers 107, DlSCON ROM, sorgt für eine Abtrennung des Festwertspeichers, wenn die Phantomlogik 112 in Tätigkeit tritt, wie im folgenden nunmehr anhand von F i g. 8 näher erläutert wird. Wie zu erkennen ist, sind mehrere Verkniipfungsglieder und Invertierglieder 132 bzw. 133 vorhanden, die mit den entsprechenden Eingängen des Puffers 108 (siehe F i g. 5) verbunden sind. Die Eingänge werden von Signalen MEMO, I, 2, 6, 7 der Speichersammeischiene 57 abgeleitet, wobei die Signale MEM 6, 7 über die NOR-Verknüpfungsglieder 134 geleitet werden und die Signale MEM 0, 1, 2 über eine Verknüpfungskonfiguration 135 mit anderen ausgewählten Verknüpfungsgliedern und Invertern und über invertierende Einheiten 136 mit ausgewählten Eingängen des Puffers 108 verbunden sind. Die Verknüpfungsanordnung 135 sowie die Inverter 136 werden außerdem vom Signal LDIR DISCON angesteuert, bei dessen niedrigem Pegel eine Phantom-Mikroinstruktion erzeugt und gleichzeitig der Festwertspeicher 107 abgetrennt wird, wobei die Phantom-Mikroinstruktion durch direkte Weiterleitung der genannten Bits der Speiciiersammelschiene 57 zum Puffer 108 bewirkt wird. (Da mil Phantom-Mikroinstruktionen nur bestimmte, häufig in Tätigkeit tretende Teile der Datenverarbeitungsanlage angesteuert werden, brauchen nur bestimmte Felder einer Mikroinstruktion von der Phantomlogik 112 bedient zu werden, die übrigen Felder des Puffers 108, die für diese Vorgänge nicht relevant sind, werden von der Phantomlogik nicht beeinflußt.)
So ist in F i g. 8 ein Signal ALC SKP zu erkennen, das zusammen mit Signalen CONlNST und LDIRCLK. (letzteres über den Inverter 137) dem NAND-Verknüpfungsglied 138 zugeführt werden, worauf dieses das Signal VALID LDIR erzeugt. Bei niedrigem Signal ALCSKF wird das Überspringen eines Makrobefehls erreicht, indem eine Phantom-Instruktion erzeugt wird, die den Programmzähler (siehe Block PC in Fig. 2) weiterschaltet, den Adressenspeicher mit dem Programmzählerinhalt lädt und die Steuerung an die entsprechende Mikroinstruktion überträgt, die bewirkt, daß das Makroinstruktionsregister 65 erneut geladen wird.
Mit der Phantomlogik 112 gelingt insbesondere die Erzeugung einer ersten Mikroinstruktion einer Folge von Mikroinstruktionen, die zu einer bestimmten Makroinstruktion gehören, die auf der Sammelschiene 57 anliegt und die gerade in das Makroinstruktionsregister 65 geladen wird. Die erste Mikroinstruktion steht somit bereits während dieses Ladevorganges im Puffer
108 zur Verfügung, so daß die Datenverarbeitungsanlage weder das Laden der Makroinstruktion in das Makroinstruktionsregister abwarten muß noch die erste Makroinstruktion erst aus dem Mikroinstruktionsregister 107 auszulesen braucht Dadurch wird eine Zeiteinsparung von beispielweise 200 ns erreicht
Die mittels der in F i g. 8 dargestellten Phantomlogik erzeugbaren Phantom-Mikroinstruktionen sind sich insoweit größtenteils ähnlich, als sie den Programmzähler PC erhöhen, um die nächste Makroinstruktion zu erfassen. Insgesamt gibt es sechs unterschiedliche Phatom-Mikroinstruktionen, wobei vier zur Ermittlung von effektiven Adressen bei unterschiedlicher Adressenberechnungsart führen (Typ EFA), während die zwei übrigen Phantom-Mikroinstruktionen spezielle Aufgaben haben und die Bezeichnungen EIS und ALCSKP tragen. Das Signal ALCSKP führt, wenn niedrig, zu einer Phantom-Mikroinstruktion, die den Programmzähler PCerhöht, das Speicheradressenregister mit dem Inhalt des Programmzählers PC lädt und die Steuerung dann an den Mikrocode überträgt, der die nächste Makroinstruktion in den Speicher 65 lädt wie bereits oben ausgeführt. Die andere Spezial-Phantom-Mikroinstruktion wird durch das Signal EIS ausgelöst und führt zur Auslösung der erweiterten Makroinstruktionen.
Die Erzeugung eines Signals ALCSKP zur Bewirkung einer entsprechenden Phantom-Mikroinstruktion hängt von den IR-Bits 13, 14, 15 ab, die den ALC-Operationscode festlegen. Das Verknüpfungsglied
128, dem das Bit IR 14 und der Übertrag »CARRY« zugeführt wird, kombiniert diese Signale durch UND-Verknüpfungen mit den verschobenen Addierausgängen ALU 0-3, 12-15, NIBBLEB, NIBBLEC, siehe Fig. 3, mit dem Makroinstruktionsbit IR13 am Verknüpfungsglied 128'. Die Ausgangssignale der beiden Verknüpfungsglieder 128, 128' sowie das Signal ALC werden dem ODER-Verknüpfungsglied 129 zugeführt, während gleichzeitig ALC und IR 15 über das NAN D-Verknüpfungsglied 129' verknüpft und invertiert werden. Die Ausgänge der Verknüpfungsglicder
129, 129' werden dann einem Exklusiv-ODER-Gatter 129" zugeführt, das das Signal ALC SKP liefert. Wenn das Signal ALC niedrig ist, wird verhindert, daß ALC SKP niedrig liegt, wodurch Überspringungen unterdrückt werden, es sei denn, daß ein ALC-Mikrocode vorliegt.
Das am Verknüpfungsglied 128' anliegende Signal CRY EN wird von dem unten in Fig.8 dargestellten Exklusiv-ODER-Verknüpfungsglied 131 erhalten, das dem NAND-Verknüpfungsglied 130 und dem Verknüpfungsglied 130' nachgeschaltet ist. Das Signal LOGIK MODUS, das von der Mikroinstruktionssteuerdecodierlogik 69 geliefert wird, siehe F i g. 9, Block 155, steuert andere arithmetische Operationen, die nicht mit dem Signal ALC in Verbindung stehen, z. B. logische Befehle. Die Bits IR 10, 11 werden verwendet, um den ergänzten Basiswert des Übertrags von dem tatsächlichen Wert des Betrags abzuleiten.
Bei ALC-Operationen ergibt dies innerhalb der Datenverarbeitungsanlage ein Feld, durch den der Makroinstruktionenfluß in der Datenverarbeitungsanlage durch Manipulation des Mikrocodes dann geändert wird, wenn innerhalb des Sprungfeldes (IR 13... 15) der Makroinstruktion sich ein bestimmter Zustand ergibt. Diese Änderung im Makroinstruktionsfluß durch das Signal ALC SKP verändert auch die Mikroinstruktion, die infolge des Signals LDlR erzeugt wird, so daß anstelle der nächsten Makroinstruktion die darauffolgende Makroinstruktion ergriffen wird.
Die folgende Liste gibt die jeweilige Sprungoperation bei Auftreten von ALC SKP je nach Zustand der //f-Bits 13,14und 15 wieder:
Tabelle I
Codierung von Sprungfunktionen
Sprung
bezeichnung
IR-Bits
13
14 15 Sprung-Funktion
0 0 0 Niemals Springen
SKP 0 0 1 Immer Springen
SZC 0 1 0 Springen bei Übertrag Null
SNC 0 1 1 Springen bei Übertrag Nicht-Null
SZR 1 0 0 Springen bei Ergebnis Null
SNR 1 0 1 Springen bei Ergebnis Nicht-Null
SEZ 1 1 0 Springen wenn entweder Übertrag
oder Ergebnis Null
SBN 1 1 1 Springen, wenn sowohl Übertrag
als auch Ergebnis Nicht-Null
In Fig. 9 ist die im Festwertspeicher 108 enthaltene Mikroinstruktion in Form einer Anzahl von einzelnen Steuerfeldern dargestellt. Die Wirkung von gültigen Bit-Kombinationen eines jeden dieser Felder wird kurz 2> erläutert, wobei bestimmte Bit-Kombinationen zur Datenübertragung dienen, andere die Funktion der ALU steuern sowie die nächste Mikroinstruktion auswählen. Eine Anzahl von derartigen Mikroinstruktionen bildet ein Mikroprogramm und führt die zur i<> zugehörigen Makroinstruktion gehörende Operation aus. So steuern beispielsweise die in F i g. 9 dargestellten Felder mit den Bits 0 ... 3, 4 ... 7. 8 ... 11 die Registerdaici 61. das Feld mit den Bits 12 ... 15 die AMJ 62. das Feld mit den Bits 16 ... 19 die r> Verschiebeeinrichtung 63. Das Bit 20 bildet ein Ladesteuerfeld für den Ladevorgang eines bestimmten 4-Kingangs der Registerdatei 61 vom Ausgang der Verschiebeeinrichtung 63. Die Bits 21, 22 bilden ein Feld ■ zur Steuerung von Ubertragswerten. während das Bit 23 -to ein Speicheradressenladefeld und die Bits 24, 25 ein Speichersteuerungsfeld bilden. Die vier durch die beiden Bils 24, 25 definierbaren Signale steuern beispielsweise das Lesen bzw. Schreiben vom oder in die letzte Speicherzelle in einer Speicherposition in einem -i"> Speicheradressen register.
Das Steuerfeld mit den Bits 26 ... 28 hängt mit bestimmten Decodiervorgängen zusammen, ähnliches gilt für das Steuerfeld milden Bits 29.. .31.
Das Steuerfeld mit den Bits 32 ... 37 stellt ein ">" Statusändemngssteuerfeld dar, mit dem bestimmte Bedingungen überprüft werden, aufgrund deren die nächste Mikroinstruktion ausgewählt wird, wobei entweder als nächste Adresse die Bit-Kombination des Feldes mit den Bits 40 ... 47 (erste Adresse) oder die "'"> Adresse mit der Bit-Kombination 48 ... 55 (zweite Adresse) ausgewählt werden kann. Die Bits 38. 39 definieren ein Steuerfeld, das über eine Decodiereinrichtung 163 festlegt, welche Gruppe von vier Gruppen integrierter Bausteine durch die Testeinrichtung (Block «> 164 in F i g. 9) verwendet werden soll, oder es wird eine Auswahl einer der vier Seiten des Mikroinstruktionslestu ertspeiehers 107 ausgewählt.
Bestimmte Bit-Kombinalioncn des Statusänderungsfeldes 32 ... 37 werden von dem Block 165 ausgewertet, <" der durch das Bit RBUF 32 eingeschaltet werden kann und dann die Bits 33 ... 37 aufnimmt und je nach Auswertung ein Steuersignal abgibt, so das bereits erwähnte Signal LDIR EN, das zum Laden der Makroinstruktion in den Speicher 65 dient, aber iiiich dem in F;g. 7b dargestellten Verknüpfungsglied 122 zugeführt wird und zur Erzeugung eines Signals LDIR DISCON verwendet wird, das wiederum die Phantomlogik 112 aktiviert, siehe auch F i g. 5.
Taucht somit im Statusänderiingsfeld eine bestimmte Bit-Kombination auf. die mit »LDIR« bezeichnet wird, wird zum einen das Register 65 mit der gerade an der Speichersammeischiene 57 anliegenden Makroinstruktion geladen und gleichzeitig von dieser Speichersammeischiene mit Hilfe der Phantomlogik eine Phantom-Mikroinstruktion im Puffer 108 erzeugt und ausgeführt. Das Register CR 0. siehe F i g. 2. enthält eine Kopie der Daten auf der Speichcrsammelschiene oder die Kopie einer Adresse, wenn die auf der Speichersammeischiene 57 vorhandene Makroinstruktion die Berechnung einer elfektivcn Adresse umfaßt. Wie eingangs schon erläutert wurde, stellt hier die Phantom-Mikroinstruktion, die aufgrund einer auf der Speichersammeischiene 57 befindlichen Makroinstruktion ei zeugt wurde, den ersten Schritt zur Ausführung dieser Makroinstruktion dar. Von hier aus wird dann die Steuerung zu einer entsprechenden Mikroinstruktionsadresse übertragen.
Zu diesem Zweck kann ein Signal DEC I verwendet werden, das aufgrund der Steuerung des Slatusändcrungsl'eldes (Bits 32 ... 37) beispielsweise durch den Block 165 (Fig. 9) erzeugt werden kann, siehe auch Fig. 10, wo dieser Zusammenhang in Form eines Blockdiagramms dargestellt ist. Dieses Signal DF.C 1 führt gemäß Fig. 10 zur Erzeugung des Signals DEC EN (auch in Fig. 9 als Ausgang des Rlockes 165 dargestellt), welches Signal die im Speicher 65 vorhandene Makroinstruktion in der Weist, decodien daß eine Adresseninformation entsteht, zu der this Signal DEC 1 dann die Steuerung überträgt. Auf diese Weise wird Zugang zu Mikroinstruktionen erlangt, die zahlreichen Makroinstruktionen gemeinsam sind oder die die Überleitung von der Phantom-Mikroinstruktion zur nachfolgenden Mikroinstruktion ermöglichen.
Das Signal DEC 2, ebenfalls in Fig. 10 zu erkennen, ist dem Befehl DEC 1 ganz ähnlich, mit der Ausnahme, daß der Zugang zu einer zweiten Gruppe von Adressen ermöglicht wird, die von den Adressen des Signals DEC 2 unterschiedlich sein können.
JMPSR (Fig. 12. oben) ist eine Spriiiiguinerroiitiiii:. die einen Sprung umfaßt, der zu der in dem I0-Bii
umfassenden »wahren« Adressenfeld angegebenen Mikroinstruktion gemacht wird. Die gerade vorhandene "eite, ROM-Bits 38, 39, und die »falsche« Adresse, ROM-Bits 48-56, werden in das durch RAND 1 spezifizierte μJSR-Register 111 geladen.
RTRN (F i g. 12, Mitte) überträgt die Steuerung zu der Mikroinstruktion, deren Adresse (10 B'.is) in dem durch ROM-Bits 38, 39 festgelegten μJSR-Register 111 enthalten ist, so daß das Seitenfeld das μJSR-Register 111 auswählt. Sprungübertragungen steuern die IvIikroinstruktioii, deren 10-Bit-Adresse sich in dem »wahren« A.dressenfeld befindet
RETSAV (F i g. 12, unten) ist ein Signal zur Rückkehr und zur Wahrung des »falschen« Adressenfeldes, wobei die Steuerung zu der Mikroinstruktion übertragen wird, ' deren Adresse (10 Bits) sich in den von ROM-Bits 38,39 spezifizierten μJSR-Register 111 befindet. Das heißt, das »wahre« Adressenseitenfeld wählt das μJSR-Register 111 aus. Die gegenwärtige Seite und die »falsche« Adresse, RBUF 38, 39 und 47-56 Bits werden dann in das durch RAND 1 spezifizierte μJSR-Reg!ster 111 geladen.
Hinsichtlich der »wahren« und »falschen« Adressenfelder, entsprechend definiert durch RBUF 40 — 47 Bits und 48 — 55 Bits, werden diese Bits für die Adressierung einer vollen Seite von Festwertspeicherstellen benutzt. Offensichtlich ermöglicht jede dieser Adressen 256 Worte. Da es vier Festwertspeicher gibt, ergibt sich die Möglichkeit, insgesamt 1024 Mikroinstruktionen zu adressieren. Die ΙΟ-Bit langen »wahren« Adressen, die das Seitenfeld umfassen, adressieren direkt alle vier Seiten des ROM. Die gerade anhängige Seite ist die Seite, von der die letzte Mikroinstruktion erlangt wurde. Das »falsche« Adressenfeld, das acht Bits lang ist, umfaßt stets die gegenwärtige Seite. Das »wahre« Adressenfeld wird auch verwendet als eine Konstante, wie noch im folgenden erläutert wird.
Einscnreibbarer Steuerspeicher
40
Es wird deutlich werden, daß die vorliegende Erfindung infolge ihrer Architektur eine Makroinstruktion ermöglicht, die in Form von »Firmware« über den Mikrocode bewertet wird, im Gegensatz zu »Software«, bei der ein zusätzlicher Steuerspeicher für Mikroinstruktionsworte erforderlich ist, der häufig als einschreibbarer Steuerspeicher (WCS) bezeichnet wird. WCS ermöglicht dem Benutzer, seinen eigenen Instruktionssatz im Mikrocode auszuführen. Auf diese Weise wird eine hohe Gesamtgeschwindigkeit dadurch erreicht, daß der Maschineninstruktionssatz an die jeweilige Anwendung angepaßt wird.
In Fig. 13 sind der IR-Vordecodier-ROM 103, der IR-Decodier-ROM 105 und der ROM ADRMUX 106 dargestellt, die schon in Zusammenhang mit Fig. 6 und 7 beschrieben wurden. Zusätzlich sind ein WCS-Decodier-ROM 105' und ein RAM ADR MUX 106' dargestellt, die ähnlich in Funktion und Arbeitsweise sind, wie der Decodiet-ROM 105 und der ROM ADR MUX 106, mit der Ausnahme, daß die erstgenannten »Hardware« sind, die für eine WCS-Platte angewendet wird, die einen WCS-Steuerspeicher mit Mikroinstruktion besitzt. Der WCS-Decodier-ROM 105' liefert ein Mittel zur Decodierung des geeigneten Eintrittspunkies in den Mikrocode. Die Decodierfestwertspeicher sind 4-Bit mal 16-Bit Wortzugangsspeicher mit einer Lese- und einer Schreibfähigkeit. Sie sind in 64-8-Bitv/orten organisiert, 32 DEC 1- und 32 DEC 2-SpeicherstelIen. Der RAM ADR MUX 106' ermöglicht es, von dem Benutzer programmierte Mikrocodeworte in den ROM-Puffer einzusteuern, um den Computer zu steuern. Der WCS-Steuerspeicher mit Mikroinstruktionen ist einer der zusätzlichen dreiseitigen Mikrocodes, die früher schon in Zusammenhang mit den in Fig. 7b gezeigten Festwertspeichern 107 erwähnt wurden.
Bei der besonderen Ausführungsform würde der WCS ein Halbleiterspeicher von 256 mal 56 Bitworten sein, mit spezialisierten, von dem Benutzer ausgeführten Instruktionen. Das 56-Bitwort enthält Instruktionen zur Steuerung der elementaren Datenwege der Datenverarbeitungsanlage. WCS umfaßt eine getrennte WCS-Platte, die als 180 in der besonderen Ausführungsform illustriert ist, die normalerweise in den Computerhauptrahmen eingeschoben wird. Der Ausgang von der WCS-Platte 180 wird sowohl mit ROM ADR MUX 106, als auch mit RAM ADR MUX 106' verbunden, wobei das Ausgangssignal normalerweise ein Abschaltsignal ist, das ein Einschattsignal wird, wenn es von dem Inverter 181 invertiert wird.
Ohne die WCS-»hardware« und mit den dargestellten XOP-Makroinstruktionen mit 1R-Bits 10,11 in entweder einen 1-0 oder 1-1-Zustand bezeichnen die Bits 6—10 zwei Sätze von 32 Adressen (über die IR-Bits 5—9) in dem Kern, wn Speicherstellen für software-Instruktionen zu adressieren, die durch den Anwender in den Kern eingeführt wurden. Ein Phantom wird, wie schon erläutert, infolge des Signals LDIR erzeugt, um diese XOP-Makro-Instruktion auszuführen. Das Phantom erhöht PC, lädt MA und vollzieht eine DEC I, wobei der Mikrocode verwendet wird, um den Inhalt einer besonderen Stelle im Kern zu erhalten, deren Adresse zu der Nummer addiert wird, die von den IR-Bits extrahiert wurde, und diese Adresse wird dann verwendet, um von einer Tabelle die Adresse der im Speicher enthaltenen Software-Routine des Anwenders zu erlangen. Im Betrieb mit IR-Bits 10 in einer 1-1 oder 1-0-Konfiguration führt das Signal WCSDECEN nirgendwo hin, wenn eine WCS-Logik 180 nicht in den Computerhauptrahmen eingeführt ist. Entsprechend decodiert IR den ROM 105, eingeschaltet durch DEC I, arbeitet, wie schon erläutert, um einen Satz von Signalen an den ROM ADR MUX 106 zu liefern, der dia erste Seite der ROM-Mikroinstruktionen adressiert, adressiert von RAO— RA 9.
Mit in den Computerhauptrahmen eingeführter WCS-Logik 180 veranlassen jedoch IR-Bits 10 und 11, die eine 1-1-Konfiguration haben, die Erzeugung des WCS DEC EN-Signals und leiten dieses an die WCS-Logik. Zur gleichen Zeit wird der WCS DEC RAM 105' durch das relevante Mikroinstruktionsfeld DEC I eingeschaltet. Die WCS-Logik wiederum erzeugt ein Abschaltsignal, das den ROM ADR MUX 106 abschaltet und mit Hilfe des Inverters 181 den RAM ADR MUX 106' einschaltet, um wiederum einen Satz von Signalen RA 0—RA 9 zu erzeugen, um den Steuerkern, der die WCS-Mikroinstruktionen enthält, zu adressieren.
Selbst mit der angeschlossenen WCS-Logik ermöglicht eine IR-Bk 10 und 11-Konfiguration von 1-1 noch die Ausführung einer Instruktion in »Software«, wenn es gewünscht wird.
Entsprechend wird mit der obigen Architektur eine selektive Möglichkeit geschaffen, eine Instruktion in Software oder Hardware auszuführen, mit der Fähigkeit, soweit ausgedehnt zu werden, daß die Hardware
durch ledigliches Einschieben von WCB-Logik in den Computerrahmen erweitert wird.
Der Betrieb der wesentlichsten Teile der erfindungsgemäßen Datenverarbeitungsanlage sei im folgenden anhand der F i g. 11 und 12 näher erläutert.
Wenn während des Endes eines gerade anliegenden Mikroprogramms von dem Mikroprogrammspeicher eine Makroinstruktion zum Laden des Makroinstruktionsspeichers 65 aufgerufen wird, siehe beispielsweise die Fig. 10 in Verbindung mit Fig. lla, wird im Statusänderungsfeld dieser letzten Mikroinstruklion (Bits 32 bis 37 gemäß F i g. 9) die entsprechende Bit-Kombination mit der Bezeichnung »LDIR« (Lade den Makroinstruktionsspeicher 65) erkannt, und zwar durch den Block 165 gemäß F i g. 9, der daraufhin das Signal LDiR EN abgibt, das dein Verknüpfungsglied 122 (siehe Fig. 7b) zugeführt wird, welches daraufhin das Signal LDIR DISCON liefert und der Phantomlogik zuführt, siehe F i g. 8 Mitte. Die Phantomlogik wird dadurch eingeschaltet und gleichzeitig ein Signal DISCON ROM erzeugt, das zur Abschaltung des Festwertspeichers 107 führt, siehe F i g. 7b. Auf diese Weise wird gleichzeitig der Makroinstruktionsspeicher 65 von der Sammelschiene 57 mit eine Makroinstruktion geladen und ein durch die Phantomlo gik 112 erzeugte Phatom-Mikroinstruktion über ausge wählte, in F i g. 8 dargestellte Leitungen in den Puffe 108 geladen. Damit nicht während des Ladens de; Puffers 108 mit einer Phantom-Mikroinstruktion de> Festwertspeicher 107 dem Puffer 108 eine Mikroin struktion liefert, wird dieser Festwertspeicher 107 durcl das Signal DISCON ROM vom Eingang des Puffers 1Oi
i« abgetrennt. Sollte gerade ein von der Bedienungskonso Ie stammender besonderer Befehl anliegen, beispiels weise ein Untersuchungsbefehl, ein Unterbrechungsbe fehl oder ein Haltbefehl, der eine im Mikroinstruktions festwertspeicher 107 adressierbare Mikroinslrukiioi adressiert, wird das Signal »LDIR« aufgeschober, unc der Ausgang des Festwertspeichers i07 vom Puffer iö! nicht abgetrennt und die Erzeugung der Phantom-Mi kroinstruklion unterdrückt.
Wie bereits erwähnt wurde, gibt es drei verschiedene
-<> Arien von Phantom-Mikroinstruktionen. wobei seehi derartige Phantom-Mikroinstruktionen in der folgen den Tabelle näher erläutert werden.
Tabelle II A B ALL' SH L CRY MA MC RAN I RAN 2 Status. 1. ADR. 2. Al)R.
Anileru
PC Q A1 FO L N L N N N JUMP GIRL VERZÖGERT
Phantom-Mikroinstruktionen GR(I Q A FO L N L N N N IR5 BDI GIRL VERZÖGERT
A- GRO PC A + B FO L N L N N N IR 5 BDI GlRL VERZÖGERT
Eingang GRO AC2 APB FO L N L N N N IR 5 BDI GIRL VERZÖGERT
DAR GRO AC, APB FO L N L N N N IR 5 BDI GIRL VERZÖGERT
2) LYB PC 0 A; FO L N L N N N DECl
3) SEX
4) SEX
5) SEX
6) AR
Die erste Phaniom-Mikroinstruktion (Nr. 1 der Tabelle), gekennzeichnet durch ein Signal ALCSKIP mit niedrigem Potential ( iehc dazu auch die Erläuterungen zur Tabelle !) in tier gerade laufenden Makroinstruktion, bewirkt ü, vr Phantomlogik gemäß F i g. 8 die f.rzeiigung einer Phantom-Mikroinsiruktion. die den Programmzähler PC' wciterschaltet. das Spcicheradressenregistcr mit dem Inhaii des Programmzählers lädt und die Steuerung dem Mikrocode »GIRL« überträgt. der den Makroinstruktionsspeicher 65 erneut lädt, um so wCm ^C \\ Ii M Su Π it!" I! .SjJI UIiL' /U Cl I CICI tCII.
Hinsichtlich der .Spaltenbezeichnungen der Tabelle Il sei .iut ci;e entsprechenden Spaltenbezeichnungen der Ti'beik- gemäß Fig. lib verwiesen, die sich auf die entsprechenden Steuerfelder der Mikroinstruktion beziehen, die anhand der F i g. 9 näher erläutert wurden.
Die /v- v,:e Ar; von Phantom-Mikroinstruktion ist als Ni'-r .·': eier Tüo-cll·. il wiedergegeben, es handelt sich urr. eine P-l· VPhantom-Mikroinstruktion. Insgesamt uerden drei Arten von Phantom-Mikroinstruktionen unterschieden: ALC_SKIP. EFÄ und EFA.
in": Falle eine-, h.!-VPhantoms wird der Programmz;in!er PC. in ähnlicher Weise erhöht und in den Speicher MA geladen, jedoch wird ein Signal DEC I im Statusanderungsteid vorhanden sein, das dazu führt, daß während des nächsten Taktes bestimmte Bits der Makroinstruktion /u einer Adresse decodiert werden.
auf die dann das Signal DEC 1 die Steuerung überträgt. Siehe in diesem Zusammenhang z. B. die in der Mitte von Fig. lla dargestellte Phantom-Mikroinstruktion.
Die dritte Phantomart wird von den Nr. 2. 3. 4 und 5 der Tabelle Il gebildet. Es handelt sich um Phaniom-Mikroinstruktionen. bei denen »EFA« vorhanden und »ALCSKIP« nicht vorhanden ist. wobei es sich um Phantom-Mikroinstruktionen mit verschiedener Adressenberechnung handelt. Zum Beispiel wird der Wert »G/?0« (siehe in F i g. 2 den Speicherchip 75). welcher VVeri uuicn ciii am /i-Eiiigang des Datenspeichers 6i gemäß F i g. 2 anliegendes Signal »SEX·' (mit der Bedeutung »Vorzeichen erweitert«) verändert wurde, zum Programmzähler PChinzu addiert und aann in den Adressenspeicher geladen. Ein derartiger Betriebsablauf mit entsprechender Änderung des Programmflusses tritt bei verschiedenen Makroinstruktionen auf. Die erzeugte Adresse kann die endgültige (effektive) Adresse sein, oder es kann sich um eine Adresse handeln (indirekte Adresse). Festgestellt wird dies durch einen Test hinsichtlich des Statusänderungsfeldes, siehe Fig. 10. Wird dabei festgestellt, daß das fünfte Bit der im Speicher 65 geladenen Makroinstruktion eine 1 ist. ist die im »falschen« Steuerungsfeld (Bits 48 bis 55 gemäß Fig. 9) (zweite Adresse) die ausgewählte Adresse, die verzögert wird, um anzuzeigen, daß es sich um die Adresse einer Adresse handelt. Wenn anderer-
seits sich eine 0 ergibt, handelt es sich um die endgültige (effektive) Adresse.
In Fig. 10 sind diese verschiedenen Phantom-Mikroinstruktionsarten in Form eines Flußdiagramms nochmals näher erläutert, wobei in der Mitte der Fig. 10 nebeneinander die Programmflüsse für eine Phantom-Mikroinstruktion » ALCSKIP«, EFA (und nicht gleichzeitig ALC SKP) sowie EFA dargestellt sind.
Wie zu erkennen ist, wird jeweils (von der Phantomlogik 118) die entsprechende Phantom-Mikroinstruktion (ALC SKP, EFA bzw. EFA) erzeugt, die daraufhin in den Puffer 108 geladen wird.
Anschließend wird der Programmzähler um 1 erhöht und der Programmzähler im Adressenspeicher MA geladen (bei ALCSKP und EFA), woraufhin in der bereits geschilderten Weise bei ALC SKP der Sprung erfolgt, während bei EFA auf »DEC 1« übergegangen wird. Beim EFA-Pfantom wird dagegen gemäß dem Flußdiagramm der F i g. 10 zunächst die Anfangsadresse erzeugt und dann geprüft, ob es sich um die endgültige Adresse handelt.
Fig. 10 zeigt auch zwei Flußdiagrammblöcke mit der Bezeichnung DECl bzw. DEC 2, die jeweils zur Erzeugung eines Einschaltsignals DEC EN zur Aktivierung des Decodierfestwertspeichers 105 zur Decodierung der Makroinstruktion zugeführt wird, siehe dazu auch F i g. 7a. Das Vorhandensein von DEC EN führt zu der Lieferung einer ersten Gruppe von Adressen, während das Signal DEC 2 Zugang zu einer zweiten Gruppe von Adressen ermöglicht, die zu den Adressen der ersten Gruppe unterschiedlich sein können.
Fig. 11a gibt dazu nähere Erläuterungen: Das Diagramm zeigt ganz oben die vom Programmzähler angezeigte, als nächstes auszuführende Makroinstruktion sowie darunter die gerade in Ausführung befindliche, aus drei Mikroinstruktionen bestehende Makroinstruktion. Die letzte Mikroinstruktion dieser Gruppe umfaßt das Signal LDIR, das zur Erzeugung einer Phantom-Mikroinstruktion in der bereits geschilderten Weise führt und gleichzeitig den Makroinstruktionsspeicher 65 mit der nächsten (das ist die oben dargestellte) Makroinstruktion lädt, wie auch durch die Blöcke »Erzeuge Phantom« und »Lade IR 65« erläutert wird.
Die durch die Phantomlogik 118 direkt von der Speichersammelleitung 57 abgeleitete Phantom-Mikroinstruktion (unter Verwendung bestimmter Bits dieser Makroinstruktion) führt zu der bereits geschilderten Erhöhung des Programmzählers, so daß nun der Programmzähler auf die nächste Makroinstruktion zeigen wird. Außerdem ermöglicht die Phantom-Mikroinstruktion die Erzeugung eines Signais DEC I, wodurch eine Adresse für den Decodierfestwertspeicher 105 geliefert wird (von der bereits geschilderten ersten Gruppe von Signalen).
Es sei angenommen, da£ die aufgerufene Makroinstruktion eine »Ladebyte«-Instruktion darstellt, dem ein Mikroprogramm mit einer Mikroinstruktion (Adresse ... 10) entspricht, die zumindest noch einem anderen Mikroprogramm (z. B. einem Speicherbyte) gemeinsam ist. Für diesen beiden Mikroprogrammen gemeinsamen Teil ist die durch DECl bzw. DEC 2 gegebene Verzweigung nützlich. Für den beiden Mikroprogrammen gemeinsamen Teil, das ist hier die erste Mikroinstruktion nach der Phantom-Mikroinstruktion, wird dies durch die »DEC 1-Decodierung« erreicht, wobei diese Mikroinstruktion in ihrem Zustandsänderungssteuerfeld ein Signal »DEC 2« aufweist, um die Decodierung einer zweiten Gruppe von Signalen aus dem Vordecodiermultiplexer 104 (siehe F i g. 5) zu ermöglichen, durch den die drei noch verbleibenden Mikroinstruktionen (unten in Fig. lla) erzeugt werden, die den restlichen Teil des Ladebyte-Mikroprogramms darstellen.
Die letzte Mikroinstruktion dieses Ladebyte-Mikroprogramms kann im Zustandsänderungsfeld entweder wiederum ein Signal »DEC 1« oder ein Signal »DEC 2«
ίο enthalten, was zu den entsprechenden Sprüngen führen würde, gemäß der Darstellung der F i g. 1 la enthält das Zustandsänderungsfeld jedoch das Signal »LDIR«, was bedeutet, daß wiederum eine Phantom-Mikroinstruktion erzeugt wird, mit der das Makroinstruktionsregister 65 erneut geladen und der Programmzähler erhöht wird. Der tatsächliche Bitinhalt in octaler Codierung äst in Fig. 11b für eine derartige Mikroinstruktion des Ladebyte-Mikroprogramms dargestellt. Für die Phantom-Mikroinstruktion ist der Programmzähler PC nur ein Teil des Registers 61 ^4-Eingang), dessen Inhalt innerhalb der ALU 62 um 1 erhöht und dann unverändert durch die Verschiebeeinrichtung 63 gemäß Fig. 1 verschoben (FO) wird, um dann zurück in das entsprechende Register PCdes Speichers 61 geladen zu werden, wodurch PC+1-> PC wird. Obwohl auch das Speicheradressenregister (in Fig. lib mit MA bezeichnet) aktiviert wird, um den Ausgang des Addierers dort einzuladen, wird durch die Hardware dieser Vorgang unterdrückt. Das Statusänderungsfeld verlangt nach einem Signal DEC I, siehe auch Tabelle II, wodurch mittels der Bits RBUF33 ... 37 ein Signal DECEN geliefert wird.
Auf eine nähere Erläuterung der folgenden Mikroinstruktionen sei verzichtet.
In Fig. 12 ist in Form eines Flußdiagramms dargestellt, wie die Datenverarbeitungsanlage bei einem Signal »JMPSR« im Statusänderungsfeld 32 ... 37 arbeitet. Zunächst werden die Bits 40—47 des Puffers 108 in den Truadmultiplexer geleitet, wo sie aufgrund des Signals »RASEL« zusammen mit den Bits 38, 39 durchgeleitet werden, wobei die letztgenannten Bits die adressierte Seite des Festwertspeichers 107 festlegen (PG = PAGE = Seite). Die von diesen Bits 38, 39 der im Puffer 108 gespeicherten Mikroinstruktion festgelegte gegenwärtige Seite wie auch die von den Bits 48—55 festgelegte »falsche« (d. h. zweite) Adresse werden dann um μJSR-Register 111 (siehe Fig.5) zugeleitet, wodurch ermöglicht wird, zu einer späteren Zeit auf diese Mikroinstruktion zurückzuspringen, deren Adresse zu einem späteren Zeitpunkt eine Adresse des μJSR-Registers sein kann. Realisiert wird dies durch ein Signal RTRN im Zustandsänderungsfeld, das zusammen mit entsprechenden Informationen über die Seite (Bjts 38, 39) hinsichtlich des uj SR-Registers festgelegt, auf welcher Seite die für die Rückkehr notwendigen 10 Bitadressen vorhanden sind.
Ist dagegen im Statusänderungsfeld das Signal »RETSAV« vorhanden, wird gleichzeitig ein Rücksprung durchgeführt und die gegenwärtige »falsche« Adresse (Bits 48... 55) im μJSR-Register 11 gespeichert
Für die ersten acht Zustandsänderungen, die ejne
Änderung des Mikrocodeflusses ohne einen Test liefern, ist weiter unten die Tabelle III dargestellt, und zwar für die Statusänderung des Festwertspeichers 165, in dem die Octaladresse durch die Bits RBUF 33—37 festgelegt wird, wenn von rechts nach links gelesen wird. Das invertierte Bit RBUF 32 wird verwendet, um den Statusänderungs-ROM einzuschalten. Der Octalinhait
ist eine Definition dessen, was die octale Adresse repräsentiert. Gibt man irgendeine dieser Adressen, werden, wie dargestellt, die Ausgangssignale mit dem
von dem Octalinhalt vorgegebenen Bitwerten bezeichnet.
Tabelle III
Octal
ADR
LDIR
EN
ACS
SELO
ACS SEL 1
DEC CNT
RETURN LD
SUB
DEC
DEC
KN
Octal Inhalte
30 0
31 0
32 0
33 0
34 0
35 0
36 0
37 1
0 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0
0 1 0 1
0 0 0 0 0
0
0
0
0
1
0
0
0 NILDIR
0 RTRNSR
0 JMP
0 RETURN
0 JSR
1 DEC 2
1 DEC 1
0 LD IR
Wenn man kurz die Octalinhaltsbezeichnungen überblickt, so verlangt LDIR das Laden des Makroinstruktionsregisters von der Speichersammeischiene, wobei eine Phantommikroinstruktion als eine Funktion der auf der Speichersammeischiene erhältlichen Makroinstruktion erzeugt und dann ausgeführt wird. GRO wird eine Kopie des Signals der Speichersammeischiene j<i enthalten. Von hier wird die Steuerung zu der geeigneten Mikroprogrammadresse übertragen. DEC I ist ein »Signal Decodierer !«,das eine Decodierung des Makroinstruktionsregisters veranlaßt, das jede Instruktion einschaltet, um zu einer Adresse Zugang zu J> erhalten, zu der DEC 1 die Steuerung überträgt. DEC 2, was »Decodiere 2« bedeutet, ist ähnlich zu »Decodiere 1«, mit der Ausnahme, daß eine zweite Gruppe von Adressen zugelassen wird, die von der Adressengruppe »Decodiere 1« unterschiedlich sein kann. JMPSR, es w handelt sich um eine Sprungunterroutine, ist ein Sprung, der zu einer Mikroinstruktion gemacht wird, die in dem 10-Bit langen »wahren« Adressenfeld gegeben wird, und die »falsche« Adresse wird in dem im Rand 1 spezifizierten ii)SR-Registi.-r geladen. RTRN ist »Rückkehr« zu den Stei!"r!, wo die Steuerung zu der Mikroinstruktion übertragen wird, deren Adresse (10 Bits) sich in dem durch die ROM-Bits 38, 39 spezifizierten .uJSR-Register befindet. RETSAV ist ein Befehl zur Rückkehr und Erhaltung des »falschen« Adressenfeldes, wobei die Steuerung zu der Mikroinstruktion übertragen wird, deren Adresse (10 Bits) sich in derr durch die ROM-Bits 38,39 spezifizierten μJSR-Register befinden. NILDIR ist ein »Nicht unterbreche Ladung 1R«-Signal, das gleiche Signal wie das Lade-IR-Signal mit der Ausnahme, daß den gerade anhängigen Unterbrechungen nicht erlaubt wird, die Ladung des Makroinstruktionsregisters zu \ erzögern.
Die oben genannten Statusveränderungen umfassen eine besondere Klasse von Bedingungen /ur Auswahl des nächsten Mikroprogramm worts, ohne einen Test. im Gegensatz zu anderen Bedingungen des Statusanderungsfeldes. die einzelnen getastet werden, um das nächste Mikroprogrammwori auszuwählen, das entweder auf einem »wahren« oder einem »ialschen« Adressenfeld basiert, um festzulegen, welche Seile von vier Seilen der Festwertspeicher auszuwählen ist. Diese anderen Bedingungen, die ungefähr 32 Teste umfassen, enthalten das Leiten von Bits RBUF 35. 36. 37 zu dem Testmultiplexer 164 zusammen mit der Anzeige, von welcher Gruppe (0, 1.2 oder 3) eine Auswahl getroffen wurde. Abhängig von der Bit-Konfiguration einer jeden der vier Gruppen wird ein Signal durch den Multiplexer als RASEL-Signal geleitet, um anzuzeigen, ob das »wahre« oder das »falsche« Adressenfeld das für die Adressierung der nächsten Mikroinstruktion auszuwählende Adressenfeld ist.
Es wird deutlich, daß jede dieser Adressen 256 Worte ermöglicht. Da es vier Festwertspeicher gibt, ergeben sich 1024 Mikroprogrammworte, die adressiert werden können. Die 10-Bit langen »wahren« Adressen, die das Seitenfeld umfaßt, einschließlich der Bits ROM RBUF 38 und 39, adressieren direkt alle Festwertspeicher. Die gerade anliegende Seite ist die Seite, von der die letzte Mikroinstruktion erhalten wurde. Das »falsche« Adressenfeld ist acht Bits lang und umfaßt immer die gegenwärtige Seite.
Hierzu 15 Blatt Zeichnungen

Claims (7)

Patentansprüche:
1. Datenverarbeitungsanlage mit einer Mikroprogrammsteuerung (66) bestehend aus:
— einem Steuerspeicher (107), der die Mikroinstruktionen enthält,
— einer Adressiereinrichtung (106), die eine Auswahl unter mehreren Steuerspeicheradreßquellen vornimmt und die ausgewählte Steuerspeicheradresse an den Adreßeingang des Steuerspeichers (107) liefert,
— einem Makroinstruktionsdecodierfestwertspeicher (105), der eine mögliche Steuerspeicheradresse zur Adressiereinrichtung (106) liefert,
— einem Mikroinstruktionsregister (108), das eine aus dsm Steuerspeicher (107) ausgelesene Makroinstruktion speichert,
— einem Mikroinstruktionsdecodierer (69), der die Mikroinstruktion des Mikroinstruktionsregisters (108) zumindest teilweise decodiert und Steuersignale für Einheiten der Datenverarbeitungsanlage liefert,
— einem Makroinstruktionsregister (102a, tO2b), das aus einem Arbeitsspeicher Makrobefehle erhält,
— einem Vordercodiermultiplexer (104), der an den Makroinstruktionsdecodierfestwertspeicher (105) jeweils nur ein Halbbyte des Makroinstruktionsregisters (iO2b)a\s einen Teil der Adresse an den Makroinstruktionsdecodierfestwertspeicher (105) legt,
dadurch gekennzeichnet, daß
35
das Makroinstruktionsregister (102a^ein Signal (EIS), das einen erweiterten Makrobefehlssatz signalisiert, abspeichert,
das Makroinstruktionsregister (102aJ weiter die -to Ausgangssignale eines Codiermultiplexers (101) abspeichert, der einen Teil der vom Arbeitsspeicher kommenden Signale multiplext, an den Ausgängen des Makroinstruktionsregisters (102SJ ein Vordecodierfestwertspeicher (103) liegt, dessin Ausgänge einen zweiten Teil der Adresse für den Makroinstruktionsdecodierfestwertspeicher (105) bilden, an den Ausgängen des Makroinstruktionsregisters (102a,) weiter ein Verknüpfungsglied (100) liegt, dessen Ausgang den Vordecodiermultiplexer (104) und damit die Umschaltung des zu decodierenden Makroinstruktionshalbbytes steuert.
2. Datenverarbeitungsanlage nach Anspruch 1, gekennzeichnet durch Makroinstruktionsverknüpfungseinrichtungen (113 bis 117, Fig.6), die einen Teil der vom Arbeitsspeicher kommenden Signale, durch die sich die zwei Klassen von Makroinstruktionen unterscheiden, aufnimmt, um den Codiermultiplexer(IOl) zu schalten.
3. Datenverarbeitungsanlage nach einem der Ansprüche 1 oder 2, dadurch gekennzeichnet, daß der Makroinstruktionsdecodierfestwertspeicher (105) nicht nur auf den ersten bzw. zweiten Teil der Adresse (DEC ADDR 0 bis 3 bzw. 4 bis 7), sondern auch auf eines der Steuersignale (DEC 2) des
55
60
65 Mikroinstruktionsdecodierers (69) reagiert, um durch Adressierung der Adressiereinrichtung (106, F i g. 7a) eine nächste Mikroinstruktionsadresse mit einer ersten Binärwertkonfiguration zu erzeugen, sowie auf ein anderes Steuersignal (DEC EN, Fig.7a), um daraus die nächstfolgende Mikroinstruktionsadresse mit zweiter Binärwertkonfiguration zu erzeugen, und daß das Verknüpfungsglied (100) auf den Betriebscode der gespeicherten Makroinstruktion (EIS, MEM 0 bis 2, 9 bis 11) zur Steuerung des Vordecodiermultiplexers (104) reagiert, um einen ausgewählten Satz der zwei Sätze von Eingangsverbindungen (IR 1 bis 4 bzw. IR 5 bis 8) weiterleiten.
4. Datenverarbeitungsanlage nach einem der Ansprüche 1 bis 3, wobei die Mikroinstruktion mindestens drei Felder aufweist, wobei ein erstes Feld (RBUF 40 bis 47) eine erste Mikroinstruktionsadresse und ein zweites Feld (RBUF 48 bis 55) eine zweite Mikroinstruktionsadresse repräsentiert, dadurch gekennzeichnet, daß der Mikroinstruktionsdecodierer (69, F i g. 5; F i g. 9) erste Verknüpfungseinrichtungen (164) umfaßt, die auf eine erste vorbestimmte Bitkonfiguration (RBUF 35, 36, 37, F i g. 9) in dem dritten Feld (RBUF 27 bis 37) zwecks Mikroverzweigung (Fig. 10 oben, Fig. 12 oben) reagieren, um erste Steuersignale (RASEL) abzuleiten, um das erste oder das zweite Adressenfeld (RBUF 40 bis 47 oder RBUF 48 bis 55, Fig.9; F i g. 7a) als Adresse für die nächste Mikroinstruktion auszuwählen (F i g. 12).
5. Datenverarbeitungsanlage nach Anspruch 4, gekennzeichnet durch zusätzliche Speichereinrichtungen (111) und zweite Verknüpfungseinrichtungen (Teil von 108, 111) im Mikroinstruktionsdecodierer (69, Fig.9), die auf eine zweite vorbestimmte Bitkonfiguration (RBUF 27, 28) in dem dritten Feld (RBUF 27 bis 37) reagieren, um die Adresse (mittels 109) in dem ersten Adressenfeld (RBUF 40 bis 47) zu der Adressiereinrichtung (106, Fig. 7b) und damit dem Steuerspeicher (107) weiterzuleiten, und um die Adresse in dem zweiten Adressemeld (RBUF 48 bis 55) in der anderen Speichereinrichtung (111) zu speichern (F ig. 12, oben).
6. Datenverarbeitungsanlage nach Anspruch 4, gekennzeichnet durch dritte Verknüpfungseinrichtungen (Teil von 108, 111) im Mikroinstruktionsdecodierer (69), die auf eine dritte vorbestimmte Bitkonfiguration (RBUF 27, 28) in dem dritten Feld (RBUF 27 bis 37) reagiert, um die Adresse in der anderen Speichereinrichtung (111) zu der Adressiereinrichtung und damit dem Steuerspeicher (107) weiterzuleiten (F i g. 12, unten).
7. Datenverarbeitungsanlage nach einem der Ansprüche 1 bis 6, gekennzeichnet durch Einrichtungen (109) zur Steuerung der Adressiereinrichtung und damit des Steuerspeichers (107) zur Auswahl einer anderen Mikroinstruktion, Einrichtungen, die auf den Betrieb der Adressiereinrichtung bzw. des Steuerspeichers (106,107) mit Lieferung der anderen Mikroinstruktion an den Mikroinstruktionsdecodierer (69) reagiert; durch vom Mikroinstruktionsregister gebildete Koppeleinrichtung (108) zur Verbindung des zweiten Bitfeldes (RBUF 48 bis 55, F i g. 5) mit der Adressiereinrichtung (106, Fig. 7a, 7b), wodurch der Adressiereinrichtung (106) ein zweiter Eingang geliefert wird (wobei die vom Makroinstruktionsdecodierfestwertspeicher aufgrund der
gerade anliegenden Makroinstruktion gelieferten Adressensignale einen ersten Eingang darstellen); durch Multiplexereinrichtungen (109) zur Weiterleitung des ersten Bitfeldes (RBUF 40 bis 47, Fig. 7b) an die Adressiereinrichtung (106) >.ur Lieferung eines dritten Einganges für die Adressiereinrichtung (106); durch Speicherregistereinrbhtungen (111) zur zeitweisen Speicherung der ersten Adresse, um einen vierten Eingang für die Adressiereinrichtung (106) zu liefern, wobei der Mikroinstruktionsdecodierer (69) logische Einrichtungen (z. B. 165, Fi g. 9) umfaßt, um auf eine erste vorbestimmte Bitkonfiguration des dritten Feldes (RBUF 27 bis 37) zu reagieren (durch z. B. Erzeugung von RASEL, LDIREN+ DEC EN oder RETURN), um einen der ersten, zweiten, dritten und vierten Eingänge für die Adressiereinrichtung (106) auszuwählen.
8. Datenverarbeitungsanlage nach Anspruch 7, dadurch gekennzeichnet, daß die logische Einrichtungen (164, 165, 118, Fig.9, 7a) außeiJem auf eine zweite bzw. dritte vorbestimmte Konfiguration des dritten Feldes (RBUF 38, 39; 27, 28) reagiert, um den Makroinstruktionsdecodierfestwertspeicher(105)zu veranlassen (durch Erzeugung von DEC 2), den einen oder den anderen der zwei Sätze von Signalen (DEC ADDR 0 bis 3 bzw. DEC ADDR 4 bis 7) aufzunehmen.
9. Datenverarbeitungsanlage nach Anspruch 8, dadurch gekennzeichnet, daß der Makroinstruktionsdecodierfestwerispeicher (105) auf den ersten jo und zweiten Satz von Signalen (DEC ADDR 0 bis 3 bzw. 4 bis 7) dadurch reagiert, daß weiters nachfolgende Mikroinstruktionen erzeugt werden.
10. Datenverarbeitungsanlage nach einem der Ansprüche 1 bis 9, wobei die Datenverarbeitungsan- i> lage ein Arbeitsregister (52) für Makroinstruktionen und eine zentrale Recheneinheit (51, Fig. 1) mit einer Registerdatei (61), einer mit der Registerdatei
(61) verbundenen arithmetischen und logischen Einheit (ALU 62), einem mit der arithmetischen und <to logischen Einheit (62) verbundenen Schieber (63), einem mit der Registerdatei (61) und der arithmetischen und logischen Einheit (62) verbundenen Mikroprogrammprozessor (66), der den Steuerspeicher (107) umfaßt, wobei der Mikroprogrammpro- ·»> zessor (66) einen Mikroinstruktionsdecodierer (69) zur Decodierung einer 56-Bit-Mikroinstruktion (Fig. 9) aufweist, die 15 Steuerfelder (Fig. 9) umfaßt, gekennzeichnet durch erste Festwertspeichereinrichtungen (151), die mit einem ersten "i(l Mikroinstruktionssteuerfeld von 4 Bits (0 bis 3) verbunden sind, um Signale zur selektiven Steuerung zusätzlicher Eingänge zu der arithmetischen und logischen Einheit (62) von anderen Einheiten als der Registerdatei (61) zu ermöglichen; durch erste '·'< Multiplexereinrichtungen (152), die mit einem zweiten Mikroinstruktionssteuerfeld von 4 Bits (4 bis
7) verbunden sind, um Signale zu erzeugen, um selektiv die Ausgänge der Registerdutei (61) mit einem ersten Eingang (A) für die arithmetische und «> logische Einheit (62) zu verbinden, sowie mit einem ersten Eingang (A) der Registerdatei (61); durch zweite Multiplexereinrichtungen (153), die mit einem dritten Mikroinstruktionssteuerfeld von 4 Bits (8 bis 11) verbunden sind, um Signale zu erzeugen, um den Registerdateiausgang (61) an einem zweiten Eingang (B) der arithmetischen und logischen Einheit
(62) und einen zweiten Eingang (B)der Registerdatei
(61) zu legen; durch zweite Festwertspeichereinrichtungen (155), die mit einem vierten Mikroinsiruktionssteuerfeld von 4 Bits (12 bis 15) verbunden sind, um selektiv Steueroperationen durch die arithmetische und logische Einheit (62) zu erzeugen, durch dritte Multiplexereinrichtungen (156), die mit einem fünften Mikroinstruktionssteuerfeld von 4 Bits (16 bis 19) verbunden sind, sowie mit einem sechsten Mikroinstruktionssteuerfeld von 1 Bit (20), um Signale zu erzeugen, um selektiv den Verschieberausgang (63) zum ersten Eingang (A) der Registerdatei (61) zurückzubringen und um die Operation in dem Verschieber (63) auszuführen; durch vierte Multiplexereinrichtungen (157), die mit einem siebten Mikroinstruktionssteuerfeld von 2 Bits (21 bis 22) verbunden sind, um Signale zur Steuerung des Übertragungsausganges des Verschiebers zu erzeugen; durch Leitungseinrichtungen, die ein achtes Mikroinstruktionssteuerfeld von 1 Bit (23) und ein neuntes Mikroinstruktionssteuerfeld von 2 Bits (24 bis 25) verbindet, um das Lesen und Schreiben des Hauptspeichers (52) zu steuern; durch Decodiereinrichtungen (158 bzw. 161), die mit einem zehnten Steuerfeld von 3 Bits (26 bis 28) und einem elften Steuerfeld von 2 Bits (29 bis 31) verbunden sind, um Signale zur Schaffung von temporären Adressenspeicherungen zu schaffen; durch dritte Festwertspeichereinrichtungen (165), die mit einem zwölften Steuerfeld von 6 Bits (32 bis 37) verbunden sind, um Signale zu erzeugen, um die Mikroinstruktionsadressierung zu ändern, abhängig von einem ersten Zustand des zwölften Steuerfeldes (29 bis 31); durch fünfte Multiplexereinrichtungen (164), die zusätzliche mit dem zwölften Steuerfeld (32 bis 37) verbunden sind, um einen ersten und einen zweiten Satz von ausgewählten Signalen aufgrund eines Tests eines zweiten Zustandes des zwölften Steuerfeldes (32 bis 37) zu erzeugen; durch erste Koppeleinrichtungen (109, F i g. 7b; F i g. 12), die mit dem dreizehnten Steuerfeld von 2 Bits (38 bis 39) und einem vierzehnten Steuerfeld von 8 Bits (40 bis 47) verbunden sind, um ein Steuerspeichermikroinstruktionswort aufgrund eines ersten Auswahlsignals (LDIREN) von der fünften Multiplexereinrichtung (164) zu adressieren, wobei das dreizehnte Steuerfeld (38 bis 39) eine ausgewählte Seite (PAGE 0 SEL) des Steuerspeichers (107) bezeichnet; und durch zweite Koppeleinrichtungen (106, Fig. 7b), die mit einem fünfzehnten Steuerfeld von 8 Bits (48 bis 55) verbunden sind, um ein Steuerspeichermikroinstruktionswort aufgrund des zweiten Auswahlsignals (RASEL) von der fünften Multiplexereinrichtung (164) zu adressieren.
DE2542740A 1974-09-25 1975-09-25 Datenverarbeitungsanlage mit einer Mikroprogrammsteuerung Expired DE2542740C2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US05/509,182 US4042972A (en) 1974-09-25 1974-09-25 Microprogram data processing technique and apparatus

Publications (2)

Publication Number Publication Date
DE2542740A1 DE2542740A1 (de) 1976-04-08
DE2542740C2 true DE2542740C2 (de) 1983-10-27

Family

ID=24025636

Family Applications (1)

Application Number Title Priority Date Filing Date
DE2542740A Expired DE2542740C2 (de) 1974-09-25 1975-09-25 Datenverarbeitungsanlage mit einer Mikroprogrammsteuerung

Country Status (7)

Country Link
US (1) US4042972A (de)
JP (1) JPS5627902B2 (de)
CA (1) CA1050662A (de)
DE (1) DE2542740C2 (de)
FR (1) FR2289965A1 (de)
GB (1) GB1528331A (de)
NL (1) NL7511294A (de)

Families Citing this family (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS538034A (en) * 1976-06-30 1978-01-25 Toshiba Corp Electronic computer
US4179736A (en) * 1977-11-22 1979-12-18 Honeywell Information Systems Inc. Microprogrammed computer control unit capable of efficiently executing a large repertoire of instructions for a high performance data processing unit
US4156278A (en) * 1977-11-22 1979-05-22 Honeywell Information Systems Inc. Multiple control store microprogrammable control unit including multiple function register control field
US4156279A (en) * 1977-11-22 1979-05-22 Honeywell Information Systems Inc. Microprogrammed data processing unit including a multifunction secondary control store
US4236204A (en) * 1978-03-13 1980-11-25 Motorola, Inc. Instruction set modifier register
US4396981A (en) * 1978-10-02 1983-08-02 Honeywell Information Systems Inc. Control store apparatus having dual mode operation handling mechanism
US4236210A (en) * 1978-10-02 1980-11-25 Honeywell Information Systems Inc. Architecture for a control store included in a data processing system
US4224668A (en) * 1979-01-03 1980-09-23 Honeywell Information Systems Inc. Control store address generation logic for a data processing system
US4484271A (en) * 1979-01-31 1984-11-20 Honeywell Information Systems Inc. Microprogrammed system having hardware interrupt apparatus
US5241666A (en) * 1979-06-04 1993-08-31 Unisys Corporation Variable rate improvement of disc cache subsystem
US4346438A (en) * 1979-10-24 1982-08-24 Burroughs Corporation Digital computer having programmable structure
US4306289A (en) * 1980-02-04 1981-12-15 Western Electric Company, Inc. Digital computer having code conversion apparatus for an encrypted program
US4404629A (en) * 1981-01-26 1983-09-13 Atari, Inc. Data processing system with latch for sharing instruction fields
US4498132A (en) * 1981-05-22 1985-02-05 Data General Corporation Data processing system using object-based information and a protection scheme for determining access rights to such information and using multilevel microcode techniques
US4480306A (en) * 1981-05-22 1984-10-30 Data General Corporation Digital data processing system using unique ALU register files and micro-instruction stacks
US4445177A (en) * 1981-05-22 1984-04-24 Data General Corporation Digital data processing system utilizing a unique arithmetic logic unit for handling uniquely identifiable addresses for operands and instructions
US4488219A (en) * 1982-03-18 1984-12-11 International Business Machines Corporation Extended control word decoding
US4528648A (en) * 1982-07-21 1985-07-09 Sperry Corporation Memory management system
JPS5995660A (ja) * 1982-11-22 1984-06-01 Nec Corp デ−タ処理装置
US4613936A (en) * 1983-02-25 1986-09-23 International Business Machines Corporation Centralized generation of data transfer acknowledge pulses for microprocessors
US4777591A (en) * 1984-01-03 1988-10-11 Texas Instruments Incorporated Microprocessor with integrated CPU, RAM, timer, and bus arbiter for data communications systems
US4887203A (en) * 1984-10-15 1989-12-12 Motorola, Inc. Microcoded processor executing microroutines with a user specified starting microaddress
JPS61229134A (ja) * 1985-04-03 1986-10-13 Nec Corp マイクロコンピユ−タ
GB2188759B (en) * 1986-04-05 1990-09-05 Burr Brown Ltd Data processing with op code early comparison
US5257392A (en) * 1988-01-29 1993-10-26 Sharp Kabushiki Kaisha System for loading and dumping data in a data flow processor based on paired program data and data to be processed
US5440749A (en) * 1989-08-03 1995-08-08 Nanotronics Corporation High performance, low cost microprocessor architecture
US5197130A (en) * 1989-12-29 1993-03-23 Supercomputer Systems Limited Partnership Cluster architecture for a highly parallel scalar/vector multiprocessor system
US5623650A (en) * 1989-12-29 1997-04-22 Cray Research, Inc. Method of processing a sequence of conditional vector IF statements
US5619668A (en) * 1992-08-10 1997-04-08 Intel Corporation Apparatus for register bypassing in a microprocessor
US5764943A (en) * 1995-12-28 1998-06-09 Intel Corporation Data path circuitry for processor having multiple instruction pipelines
US6092184A (en) * 1995-12-28 2000-07-18 Intel Corporation Parallel processing of pipelined instructions having register dependencies
US6338109B1 (en) 1996-08-30 2002-01-08 Cypress Semiconductor Corp. Microcontroller development system and applications thereof for development of a universal serial bus microcontroller
US5859993A (en) 1996-08-30 1999-01-12 Cypress Semiconductor Corporation Dual ROM microprogrammable microprocessor and universal serial bus microcontroller development system
US5968178A (en) * 1997-11-04 1999-10-19 Cypress Semiconductor Corp. Circuit and method for resetting a microcontroller
US6970985B2 (en) 2002-07-09 2005-11-29 Bluerisc Inc. Statically speculative memory accessing
US20050114850A1 (en) 2003-10-29 2005-05-26 Saurabh Chheda Energy-focused re-compilation of executables and hardware mechanisms based on compiler-architecture interaction and compiler-inserted control
US7996671B2 (en) 2003-11-17 2011-08-09 Bluerisc Inc. Security of program executables and microprocessors based on compiler-architecture interaction
US8607209B2 (en) 2004-02-04 2013-12-10 Bluerisc Inc. Energy-focused compiler-assisted branch prediction
US7906982B1 (en) 2006-02-28 2011-03-15 Cypress Semiconductor Corporation Interface apparatus and methods of testing integrated circuits using the same
US20080126766A1 (en) 2006-11-03 2008-05-29 Saurabh Chheda Securing microprocessors against information leakage and physical tampering
US20080154379A1 (en) * 2006-12-22 2008-06-26 Musculoskeletal Transplant Foundation Interbody fusion hybrid graft
US10776233B2 (en) 2011-10-28 2020-09-15 Teradyne, Inc. Programmable test instrument
US9759772B2 (en) 2011-10-28 2017-09-12 Teradyne, Inc. Programmable test instrument

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3344410A (en) * 1965-04-28 1967-09-26 Ibm Data handling system
US3543245A (en) * 1968-02-29 1970-11-24 Ferranti Ltd Computer systems
US3646522A (en) * 1969-08-15 1972-02-29 Interdata Inc General purpose optimized microprogrammed miniprocessor
US3657705A (en) * 1969-11-12 1972-04-18 Honeywell Inc Instruction translation control with extended address prefix decoding
JPS4939852B1 (de) * 1969-11-19 1974-10-29
FR2133405A5 (de) * 1971-04-07 1972-11-24 Robotron Veb K
US3739352A (en) * 1971-06-28 1973-06-12 Burroughs Corp Variable word width processor control
US3766532A (en) * 1972-04-28 1973-10-16 Nanodata Corp Data processing system having two levels of program control
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
US4042972A (en) 1977-08-16
DE2542740A1 (de) 1976-04-08
GB1528331A (en) 1978-10-11
CA1050662A (en) 1979-03-13
JPS5627902B2 (de) 1981-06-27
AU8509375A (en) 1977-03-31
FR2289965B1 (de) 1980-03-28
FR2289965A1 (fr) 1976-05-28
JPS5160130A (de) 1976-05-25
NL7511294A (nl) 1976-03-29

Similar Documents

Publication Publication Date Title
DE2542740C2 (de) Datenverarbeitungsanlage mit einer Mikroprogrammsteuerung
DE2542751C2 (de) Datenverarbeitungsanlage
EP0097725B1 (de) Einrichtung im Befehlswerk eines mikroprogrammgesteuerten Prozessors zur direkten hardwaregesteuerten Ausführung bestimmter Instruktionen
DE2813128C2 (de) Steuereinrichtung für Mikroprogrammspeicher
DE69433339T2 (de) Lade-/Speicherfunktionseinheiten und Datencachespeicher für Mikroprozessoren
DE3853613T2 (de) Mikrorechner mit flexiblen anwendungsspezifischen integrierten Schaltungen.
DE69833008T2 (de) Prozessor mit instruktionskodierung mittels eines schablonenfeldes
DE69032812T2 (de) Vorrichtung und Verfahren zur parallelen Verarbeitung
DE3424962C2 (de)
DE69515339T2 (de) Rechnersystem
DE3851746T2 (de) Sprungvorhersage.
DE2835095C2 (de) Digitale Rechenanlage mit einem ersten und mindestens einem zweiten miteinander koppelbaren mikroprogrammierten Prozessoren
DE69027932T2 (de) Cpu-pipeline mit registerfile-bypass durch adressvergleich bei aktualisierungen/zugriffen
DE2611892C2 (de) Mikroprogramm-Steueranordnung
DE2910839A1 (de) Einrichtung zur ausfuehrung einer speziellen verzweigungsinstruktion
DE3689389T2 (de) Datenverarbeitungsprozessor.
DE2719635A1 (de) Anordnung fuer eine erweiterung einer mikroprogrammsteuerung einer datenverarbeitungsanlage
DE2117936B2 (de) Mikroprogrammgesteuerte Zentraleinheit eines elektronischen Datenverarbeitungssystems
DE2717658A1 (de) Anordnung zur ansteuerung eines mikroprogrammspeichers
DE2524046A1 (de) Elektronische datenverarbeitungsanlage
DE3121742C2 (de) Mikroprogramm-Steuereinrichtung
DE3114921C2 (de) Mikroprogramm-Speicheranordnung
DE69616718T4 (de) Vorrichtung und verfahren zur bestimmung von adressen fehlausgerichteter daten
EP0010185A1 (de) Virtuell-Adressiervorrichtung für einen Computer
DE69130513T2 (de) Verfahren zur Durchführung boolescher Operationen zwischen zwei beliebigen Bits von zwei beliebigen Registern

Legal Events

Date Code Title Description
D2 Grant after examination
8364 No opposition during term of opposition