DE2542740C2 - Datenverarbeitungsanlage mit einer Mikroprogrammsteuerung - Google Patents
Datenverarbeitungsanlage mit einer MikroprogrammsteuerungInfo
- 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
Links
- 238000012545 processing Methods 0.000 title claims description 43
- 230000015654 memory Effects 0.000 claims description 150
- 238000003860 storage Methods 0.000 claims description 13
- 238000012360 testing method Methods 0.000 claims description 7
- 230000005540 biological transmission Effects 0.000 claims description 3
- 230000003936 working memory Effects 0.000 claims description 2
- 230000008878 coupling Effects 0.000 claims 3
- 238000010168 coupling process Methods 0.000 claims 3
- 238000005859 coupling reaction Methods 0.000 claims 3
- 230000004044 response Effects 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 12
- 101150047356 dec-1 gene Proteins 0.000 description 10
- 238000012546 transfer Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 9
- 230000003111 delayed effect Effects 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 238000000034 method Methods 0.000 description 5
- 230000000630 rising effect Effects 0.000 description 3
- XDLMVUHYZWKMMD-UHFFFAOYSA-N 3-trimethoxysilylpropyl 2-methylprop-2-enoate Chemical compound CO[Si](OC)(OC)CCCOC(=O)C(C)=C XDLMVUHYZWKMMD-UHFFFAOYSA-N 0.000 description 2
- 101710130550 Class E basic helix-loop-helix protein 40 Proteins 0.000 description 2
- 102100025314 Deleted in esophageal cancer 1 Human genes 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 2
- DDOQBQRIEWHWBT-UHFFFAOYSA-N 2-azaniumyl-4-phosphonobutanoate Chemical compound OC(=O)C(N)CCP(O)(O)=O DDOQBQRIEWHWBT-UHFFFAOYSA-N 0.000 description 1
- 101100087393 Caenorhabditis elegans ran-2 gene Proteins 0.000 description 1
- 101100366000 Caenorhabditis elegans snr-1 gene Proteins 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000012432 intermediate storage Methods 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/22—Microcontrol or microprogram arrangements
- G06F9/26—Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
- G06F9/262—Arrangements for next microinstruction selection
- G06F9/264—Microinstruction selection based on results of processing
- G06F9/265—Microinstruction 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.
Octale
Adresse
Adresse
WCS
DEC ENAB
EXT
INS
INS
DEC ADDRO DEC
ADDRl
ADDRl
DEC
ADDR 2
ADDR 2
DEC
ADDR 3
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
Adresse
WCS
DEC ENAB
EXT
INS
INS
DEC
ADDRO
ADDRO
DEC
ADDR 1
ADDR 1
DEC
ADDR 2
ADDR 2
DEC
ADDR 3
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:
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.
Octal
ADR
ADR
LDIR
EN
ACS
SELO
SELO
ACS SEL 1
DEC CNT
RETURN LD
SUB
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
0
1
0
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)
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.
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)
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)
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 |
-
1974
- 1974-09-25 US US05/509,182 patent/US4042972A/en not_active Expired - Lifetime
-
1975
- 1975-09-23 GB GB39021/75A patent/GB1528331A/en not_active Expired
- 1975-09-23 CA CA236,197A patent/CA1050662A/en not_active Expired
- 1975-09-23 FR FR7529697A patent/FR2289965A1/fr active Granted
- 1975-09-25 DE DE2542740A patent/DE2542740C2/de not_active Expired
- 1975-09-25 NL NL7511294A patent/NL7511294A/xx not_active Application Discontinuation
- 1975-09-25 JP JP11594875A patent/JPS5627902B2/ja not_active Expired
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 |