DE3116100C2 - Datenverarbeitungseinheit - Google Patents
DatenverarbeitungseinheitInfo
- Publication number
- DE3116100C2 DE3116100C2 DE3116100A DE3116100A DE3116100C2 DE 3116100 C2 DE3116100 C2 DE 3116100C2 DE 3116100 A DE3116100 A DE 3116100A DE 3116100 A DE3116100 A DE 3116100A DE 3116100 C2 DE3116100 C2 DE 3116100C2
- Authority
- DE
- Germany
- Prior art keywords
- register
- instruction
- address
- command
- memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline, look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3804—Instruction prefetching for branches, e.g. hedging, branch folding
Abstract
Bei der erfindungsgemäßen Sprungabschätz-Zentraleinheit zur Ausführung eines Sprung- bzw. Verzweigungsbefehls wird ein Vorsignalisierbefehl zur Bezeichnung einer Sprung- bzw. Verzweigungsadresse durch eine Adressen/Vorabruf-Steuerschaltung (124) im voraus abgerufen, bevor der Sprung- bzw. Verzweigungsbefehl aus einem Makrobefehlsspeicher ausgelesen wird. Dieser Vorsignalisierbefehl wird dekodiert. Die Verzweigungsadresse wird im voraus in einem A-Register (128), einem B-Register (130) und einem C-Stapelregister (132) gespeichert. Eine Anzahl von an den durch diese Adressen dargestellten bzw. bezeichneten Speicherplätzen gespeicherten Befehlen werden in einem ersten Befehlsregister (134), einem zweiten Befehlsregister (136) und einem Registerstapel (138) gespeichert, bevor der Sprung- bzw. Verzweigungsbefehl ausgeführt wird. Bei der Ausführung der Verzweigungsbefehle kann die Steuerung ohne Gefährdung des Pipelinesystems auf Sprungspeicherplätze (jumped locations) umgeschaltet werden.
Description
ίο (A) einen Befehlsdekodierer (1. Dekodierer 102) zum Dekodieren eines Vorsignalisierungsbefehls
(AfL-Befehl), der alle möglichen Verzweigungsadressen zu einem jeweils folgenden Sprungbefehl (BTC,
(BFC, END, LOOP, OUT) angibt, von denen in Abhängigkeit von den Bewertungsbedingungen bei der
Ausführung des Sprungbefehls eine ausgewählt wird, und
(B) eine Steuereinrichtung (Adressen/Befehl-Vorabrufsteuerschaltung 124) zum Laden dergenannten Verzweigungsadressen
in die Adressenspeichereinrichtung (128,130,132) nach Maßgabe eines Steuersignals
vom Befehlsdekodierer (102) sowie zum Laden der Befehle, die in den durch die genannten Verzweigungsadressen
jeweils bezeichneten Speicherplätzen gespeichert sind, in die Befehlsspeichereinrichtung
(134,136,138) jeweils vor der Ausführung des Sprungbefehls.
2. Datenverarbeitungseinheit nach Anspruch 1, dadurch gekennzeichnet, daß die Steuereinrichtung
einen Speicher (ROAf 144) zur Speicherung eines Programms für die Erzeugung eines Steuersignals (ENA),
das die Ausführung eines Mikro-Befehls zum Laden der genannten Verzweigungsadressen in die Adressenspeichereinrichtung
(128,130,132) ermöglicht, einen Zähler (140) zur Erzeugung der jeweiligen Adresse des
Speichers (144), eine Verriegelungsschaltung (146) zum Halten des Ausgangssignals des Speichers (144), ein
Register (MAR 148) für die Adressierung von Operanden des Vorsignalisierungsbefehls zum Laden der
genannten Verzweigungsadressen in die Adressenspeichereinrichtung (128,130,132), einen Wähler (150),
dem ein Ausgangssignal des Registers (148) für die Adressierung von Operanden des Vorsignalisierungsbefehls
und Ausgangssignale von der Adressenspeichereinrichtung (138,130,132) eingebbar sind und der in
Abhängigkeit von einem Ausgangssignal (SE) der Verriegtlungsschaltung selektiv ein Ausgangssignal
abgibt, und ein Flip-Flop (156) umfaßt, das anzeigt, daß die Ausführung des Mikro-Befehls zum Laden der
genannten Verzweigungsadressen in die Adressenspeichereinrichtung (128, 130, 132) abgeschlossen ist.
3. Datenverarbeitungseinheit nach Anspruch 1, dadurch gekennzeichnet, daß die Adressenspeichereinrichtung
(128,130,132) zur Speicherung der Verzweigungsadressen einzelne Register und ein Stapelregister
aufweist.
4. Datenverarbeitungseinheit nach Anspruch 1, dadurch gekennzeichnet, daß die Befehlsspeichereinrichtung
(134,136,138) zur Speicherung der den Verzweigungsadressen zugeordneten Befehle einzelne Register
und ein Stapelregister aufweist.
Die Erfindung betrifft eine Datenverarbeitungseinheit nach dem Oberbegriff des Patentanspruches 1.
Die Verarbeitungsgeschwindigkeit einer Datenverarbeitungseinheit ist im allgemeinen größer als die Abrufgeschwindigkeit.
Wenn somit der Umfang einer Verarbeitungsoperation der Datenverarbeitungseinheit, also
die Zahl der bei einer Ausführungsoperation der Datenverarbeitungseinheit (CPU) verarbeiteten Bits, dem
Umfang einer Abrufoperation entspricht, also der Zahl der Bits, die in einem Abrufvorgang vom Makrobefehlsspeicher zur Datenverarbeitungseinheit bewegt werden können, wird die gesamte Rechengeschwindigkeit
durch die Abrufgeschwindigkeit verringert, auch wenn die Datenverarbeitungseinheit mit höherer Geschwindigkeit
arbeitet. Zur Ausschaltung dieses Proolems sind bereits Verfahren vorgeschlagen worden. Bei einem
ersten Verfahren wird vorgeschlagen, den Umfang einer Abrufoperation der Datenverarbeitungseinheit
genauso groß oder größer zu wählen als den Umfang einer Verarbeitungsoperation. Hierbei kann z. B. eine Vergrößerung
der Speichersammelschienenbreite vorgesehen werden. Eine solche Vergrößerung ist jedoch nachteilig,
weil dabei die Steuerung kompliziert wird und der Aufwand ansteigt.
Bei einem zweiten Verfahren wird vorgeschlagen, einen Speicher oder ein Register kleiner Kapazität mit einer
der Verarbeitungsgeschwindigkeit der Datenverarbeitungseinheit entsprechenden Abrufgeschwindigkeit hinzuzufügen
und im voraus (»Vorabruf«) im zusätzlichen Speicher (»Cache-Speichersystem«) oder Register die
Makrobefehle oder Daten abzurufen, die durch die Datenverarbeitungseinheit verarbeitet werden sollen.
Dieses zweitgenannte Verfahren läßt sich weiterhin in das Cache-Speichersystem und das »Pipeline«-
Registersystem unterteilen. Da ein Cache-Speicher aufwendig ist, wirft die Verwendung des betreffenden
Systems bei kleinen Rechnersystemen Probleme auf. Die Erfindung geht nun vom Pipeline-Registersystem im
Vorabrufsystem aus.
Das bisherige Vorabrufsystem läßt sich wie folgt darstellen:
Das bisherige Vorabrufsystem läßt sich wie folgt darstellen:
Vorabrufsystem
Cache-Speiche rsystcm Pipeline-Registersystcm
ρ Vorabrufoperation der Befehle
ρ Zweig — Berücksichtigungssystem
Zweig — Nichtberücksichtigungssystem
Vorabrufoperation an Daten
Vorabrufoperation an Daten
Die Erfindung geht nun vom Zweig-Berücksichtigungssystem zur Durchführung der Vorabrufoperation von
Befehlen im Pipeline-Registersystem aus. Wenn in der Befehlssequenz ein Bewertungs- oder Prüfbefehl auch
Sprungbefehl genannt enthalten ist, wird die zu verfolgende Befehlssequenz in eine Anzahl von Teile
aufgezweigt, die als Zweige (»branch tree«) bezeichnet werden. Wenn der Prüfbefehl ausgeführt wird, wird ein
Zweig entsprechend der Prüfung oder Entscheidung ausgewählt, während die anderen Zweige überflüssig
werden. Beim Zweig-Berücksichtipungssystem werden alle Zweige nach dem Prüfbefehl vorabgerufen. Beim
Zweig-Nichtberücksichtigungssystem wird nur ein Zweig vorabgerufen.
Wenn beim letzteren Verfahren der vorabgerufene Zweig nicht der vorgesehene Zweig ist, muO ein anderer
Zweig abgerufen werden, wodurch die Wirkr-amkeit des Vorabrufs beeinträchtigt wird. Während das
Zweig-Borücksichtigungssystem bei großen Rechnern angewandt wird, wird das Nichtberücksichtigungssystem
üblicherweise im Hinblick auf Kostenbeschränkungen bei mittleren oder kleineren Rechnern
vorgesehen.
Im folgenden isi das allgemeine Vorgehen bei der Durchführung der Pipelinesteuerung beschrieben.
Der Ausdruck »Pipeline« bezieht sich auf eine lotrechte Reihe von logischen Einheiten Li (mit i— 1,2.. .,ti)
der Verarbeitungszeit /. Die Pipelinesteuerung ist ein Verarbeitungssystem, bei dem Daten einschließlich
Befehle sequentiell von der Eingangsklemme geliefert und in jedem Intervall t von der Ausgangsklemme
abgenommen werden, nachdem sie in η Stufen durch die Einheiten Li verarbeitet worden
sind. Für den Betrieb mit hoher Geschwindigkeit ist es nötig, auf die in Fig. 1 gezeigte Weise eine Parallelverarbeitung
von Befehlen unter Überlappung der Verarbeitungsschritte durchzuführen. Dies wird als Pipeline-Steuersystem
bezeichnet. In Fig. 1 sind mit Ll, Ll, L3, LA und 15 ein Befehls-Leseschritt, ein Befehls-Dekodierschritt,
ein Adressen-Rechenschritt, ein Operanden-Leseschritt bzw. ein Befehls-Ausführungsschritt
bezeichnet.
Die arithmetische Logikeinheit für die Pipelinesteuerung läßt sich allgemein auf die in Fig. 2 gezeigte Weise
darstellen. Die itmktionellen Beziehungen dieser Einheiten sind in Fig. 3 dargestellt. Die Operationsvorgänge
gemäß Fig. 3 sind folgende:
1. Eine Befehlsauslese-Anforderung wird von einer Einheit P zu einer Einheit B ausgegeben.
2. Wenn der angeforderte Befehl in einem Puffer- oder Zwischenspeicher (BM) vorhanden ist, sendet die Einheit
B diesen zur Einheit P. Falls er nicht vorhanden ist, gibt die Einheit 3 eine Anforderung an eine Einheit
F ab und sendet den angeforderten Befehl zur Einheit P.
3. Die Einheit P dekodiert den Befehl und gibt eine Anforderung für die Adressenberechnung des Operanden
zu einer Einheit A ab.
4. Die Adresse wird von der Einheit A zum Auslesen des Operanden zur Einheit B übermittelt.
5. Die Einheit P gibt einen Operationsbefehl zur Einheit E ab.
6. Das Operationsergebnis wird entsprechend dem Befehl von der Einheit E über die Einheit B oder F in
einem Hauptspeicher gespeichert.
Der Ablauf der beschriebenen Vorgänge läßt sich durch das Blockschaltbild gemäß F i g. 4 darstellen. Die Operationen
gemäß Fig. 4 sind folgende:
1. Auslesen von Befehlen
Der Inhalt eines Programmzählers 10 wird in ein Adressenregister 12 geladen, und auf der Grundlage dieser
Adresse erfolgt ein Zugriff zu einem Hauptspeicher (Zwischenspeicher) 14 (Bahnen 2, 4). Der aus dem
Hauptspeicher (Zwischenspeicher) 14 abgegebene Befehl wird über ein Speicherregister (AiR) 16 in ein
Befehlsregister 18 eingegeben (Bahnen 6, 8).
2. Adressenberechnung des zweiten Operanden
Der Inhalt eines Mehrzweckregisters (CA) 20 wird in einem Adressenregister 22 (ARl) geladen, und der
Inhalt des Befehlsregisters 18 wird in ein anderes Adressenregister 24 (ARl) geladen. Die Inhalte der
Register 22 (ARl) und 24 (ARl) werden zur Adressenberechnung einer Adressenrecheneinheit 26 eingegeben,
und das Rechenergebnis wird zu einem Adressenregister 28 (ARZ) ausgegeben (Bahnen 30,32,34).
3. Auslesen des zweiten Operanden aus dem Speicher
Der Inhalt des Adressenregisters 28 (ARS) wird in das Adressenregister 12 geladen. Das Ausgangssignal des
Adressenregisters 12 wird dem Hauptspeicher (Zwischenspeicher) 14 eingegeben, welcher dieses Signal
sodann über das Speicherregister 16 zu einem zweiten Operandenregister 36 (ORl) ausgibt (Bahnen 38,40,
42,44).
4. Steuerung der Befehlsausführung
Der Ausgang des Befehlsregisters 18 wird einem Befehlsdekodierer 46 eingegeben, um verschiedene
Steuersignale für die Durchführung des Befehls zu liefern (Bahn 48).
5. Auslesen des ersten Operanden
Der erste Operand vom Mehrzweckregister 20 wird in ein erstes Operandenregister 50 (ORl) geladen
(Bahn 52).
6. Operation
Die Inhalte von erstem und zweitem Operandenregister 50 (ORl) und 36 (ORl) werden einer Rechen-Logikeinheit
(ALU) 54 zur Verarbeitung eingegeben, unu das Verarbeitungsergebnis wird zu einem dritten
Operandenregister 56 (ORZ) ausgegeben (Bahnen 58, 60, 62).
7. Speicherung des Verarbeitungsergebnisses
Der Inhalt des dritten Operationsregisters 56 (ORZ) wird über das Speicherregister 16 im Mehrzweckregister
20 oder im Hauptspeicher (Zwischenspeicher) 14 abgespeichert (Bahnen 64, 66, 68).
Ein einziger Befehl wird somit durch mehrere Einheiten ausgeführt. Beim Pipeline-Steuersystem werden
jedoch Befehle sequentiell einer Einheit eingegeben. Wenn die Verarbeitungszeit jeder Einheit jeweils gleich
ist, läßt sich eine ideale »Pipeline« aufstellen. Da jedoch bei der tatsächlichen Verarbeitung verschiedene
komplexe Verarbeitungsvorgänge im Spiel sind, tritt ein sogen. »Leerlauf-Verarbeitungssegment« auf. Dies ist
beispielsweise dann der Fall, wenn ein bedingter Sprungbefehl vorliegt. Aus diesem Grund wurde vorgeschlagen,
Puffer- bzw. Zwischenregister in verschiedenen Einheiten vorzusehen. Dies soll dazu dienen, die
Ausgabe der Informationen durch Zwischenspeiciierung derselben in der »Pipeline« auch dann zu regulieren,
wenn die Dateneingabe nicht regelmäßig ist. Bezüglich der Verwendung der Zwischenregister sind gemäß
Fig. 5 in der Einheit E (Ausführungssteuerung) ein Operationsstapelregister (OSR) 68 Tür die Speicherung von
ίο vier Operationen sowie ein Operanden-Zwischenregister (OBR) 72 zur Speicherung von vier Dateneinheiten
angeordnet. Diese Anordnung wird zum Zweck der Ausschaltung von Leerlauf- bzw. Totzeit im Pipelinesystem
angewandt, wenn zeitraubende Operationen erforderlich sind oder aufeinanderfolgende Daten aus dem
Speicher ausgegeben werden.
In der Einheit P (Programmsteuerung) gemäß Fig. 6 sind fünf Befehlspuffer- bzw. -Zwischenregister vorge-
sehen. Diese Register umfassen Zwischenregister zum Auslesen des weitestmöglichen Befehls im Befehisfluß,
der augenblicklich ausgeführt wird (Normaisequenz), sowie Puffer- bzw. Zwischenregister zum Auslesen des
Befehls an der Sprungadresse (Zweigadressensequenz), wenn ein Sprungbefehl eingegeben wird. Unter den fünf
Zwischenregistern (74, 76, 78, 80, 82) sind zwei Register (76, 78) für Normalsequenz, zwei Register (80,82) für
Zweigadressensequenz und das letzte Register (74) für die vorübergehende bzw. Zwischenspeicherung des
Abrufbefehls vorgesehen, wenn dieser aus dem Zwischenspeicher ausgegeben wird und sich das erforderliche
betretlende Zwischenregister in Gebrauch befindet. Ein Großrechner, der eine Pipelinesteuerung durchführt,
erfüllt üblicherweise eine komplexe Steuerung unter Verwendung einer Vielzahl an Hardware.
Aus der US-PS 35 51895 ist eine Datenverarbeitungseinheit der eingangs genannten Art bekannt, bei welcher
die Bedingungen oder Zustände vorgegebener Daten für die Wahl eines als nächstes auszuführenden Befehls
bewertet werden und ein zu einer Verzweigungsadresse führender Sprungbefehl ausgeführt wird. Dabei wird
speziell auf die überlappende Arbeitsweise unterschiedlicher Rechnerfunktionen eingegangen, bei der
beispielsweise die folgenden Schritte aufeinander folgender Befehle gleichzeitig ausgeführt werden: Abruf und
Übertragung der Befehle, Abruf und Übertragung der Daten, die für die Ausführung der bereits übertragenen
Befehle benötigt werden, Ausführung der Befehle hinsichtlich der Daten, die bereits übertragen wurden, und
Rückspeicherung der durch die Ausführung der Befehle gewonnenen Ergebnisse. Diese Operationen laufen
problemlos ab, solange keine Verzweigungen im Programmablauf gegeben sind. Treten bedingungsabhängige
Verzweigungen auf, dann weiß die Datenverarbeitungseinheit erst nach Feststellung der Bedingung, ob die
Verzweigung durchgeführt wird und zu welcher Verzweigungsadresse das Programm springt. Wenn somit erst
bei der Dekodierung des Verzweigungsbefehls erkannt wird, daß ein Programmsprung stattfinden soll, dann
werden diejenigen bereits ausgeführten Operationsschritte, die in Verbindung mit in direkter Folge auf den
Verzweigungsbefehl folgenden Befehlen stehen, beispielsweise Abruf und Übertragung dieser Befehle
sowie Abruf und Übertragung der für die Ausführung dieser Befehle benötigten Daten, überflüssig. Es werden
somit unnötige Schritte durchgeführt, die Zeit benötigen und die daher die Arbeitsgeschwindigkeit der Anlage
beeinträchtigen. Die durch die US-PS 35 51895 bekannte Datenverarbeitungseinheit vermeidet den
geschilderten Nachteil dadurch, daß im Programmablauf in ausreichendem Abstand vor dem eigentlichen Verzweigungspunkt
Befehle angeordnet werden, die Informationen darüber enthalten, wo die Verzweigung stattfinden
soll und in welcher Richtung die Verzweigung erfolgt, d. h. welche Verzweigungsadresse angesteuert
werden soll. Die Datenverarbeitungseinheit weist einen Detektor für diese Befehle auf, die somit rechtzeitig vor
dem Auftreten eines Verzweigungspunktes ermittelt werden. Auf diese Weise können die entsprechenden Ent-Scheidungen
ausreichend früh getroffen werden, so daß nur diejenigen Operationsschritte ausgeführt werden,
die auch tatsächlich notwendig sind. Hierdurch werden Leerlaufzeiten oder Zeiten, in denen überflüssige
Schritte durchgeführt werden, vermieden, und die Arbeitsgeschwindigkeit der Datenverarbeitungseinheit wird
somit erhöht. In Verbindung mit den Mitteln zur Ermittlung eines eine Verzweigung ankündigenden Befehles
enthält die bekannte Datenverarbeitungseinheit eine »look ahead tree« genannte Vorrichtung, in der die
demnächst auszuführenden Befehle in drei Ebenen vorübergehend gespeichert werden. Diese Vorrichtung ist
unterteilt in zwei Abschnitte, von denen der eine die Befehle enthält, die im Programm in direkter Folge
hintereinander angeordnet Sind, Und def äfldcfc die Befehle, die der VerZw"cigUngSSdreSS6 Zugeordnet sind. Die
Zuordnung der Befehle in den unterschiedlichen Ebenen ist derart, daß einem Befehl in der höheren Ebene
jeweils einer von zwei Befehlen in der darunterliegenden Ebene nachfolgen kann. Bei diesen zwei Möglichkeiten
handelt es sich zum einen um den Befehl, der im Programmablauf direkt dem vorhergenden Befehl folgt,
und zum anderen um den Befehl, der der Verzweigungsadresse zugeordnet ist. Nicht zuletzt infolge des »look
ahead tree« ist die aus der US-PS 3551895 bekannte Datenverarbeitungseinheit in ihrer Hardware relativaufwendig.
Aufgabe der Erfindung ist es daher, eine Datenverarbeitungseinheit der im Oberbegriff des Patentanspruches 1 angegebenen Art anzugeben, die den Vorabruf der Befehle, die auf einen bedingten Sprungbefehl jeweils folgen können, mit geringem Hardwareaufwänd ausführt.
Aufgabe der Erfindung ist es daher, eine Datenverarbeitungseinheit der im Oberbegriff des Patentanspruches 1 angegebenen Art anzugeben, die den Vorabruf der Befehle, die auf einen bedingten Sprungbefehl jeweils folgen können, mit geringem Hardwareaufwänd ausführt.
Diese Aufgabe wird bei einer Datenverarbeitungseinheit nach dem Oberbegriff des Patentanspruches 1
erfindungsgemäß durch die in dessen kennzeichnendem Teii enthaltenen Merkmale gelöst.
Vorteilhafte Weiterbildungen der Erfindung ergeben sich aus den Patentansprüchen 2 bis 4.
Die Datenverarbeitungseinheit besitzt also einen Aufbau, bei dem ein Befehl unter der Verzweigungsadresse
zu einem Register vorabgerufen wird, bevor ein Befehl zum Laden der Verzweigungsadresse entsprechend den
Verzweigungsbedingungen dekodiert und der Verzweigungsbefehl (Sprungbefehl) ausgeführt wird. Aufgrund
dieses Aufbaus kann ein Pipeline-Registersystem realisiert werden, mit welchem die Steuerung einfach durch-
führbar ist. Aufgrund der einfachen Steuerung kann die Zahl der logischen Elemente und Schaltkreise
verringert werden, und die Herstellungskosten können herabgesetzt werden.
Im folgenden sind bevorzugte Ausführungsformen der Erfindung im Vergleich zum Stand der Technik
anhand der beigefügten Zeichnung näher erläutert. Es zeigt
Fig. 1 eine schematische Darstellung einer idealen Pipelineste.uerung gemäß dem Stand der Technik,
Fig. 2 ein Blockschaltbild der bisherigen Pipelinesteuerung,
F i g. 3 eine Darstellung zur Erläuterung der Operationen bzw. Arbeitsvorgänge in jeder Einheit gemäß F i g. 2,
F i g. 4 ein Blockschaltbild zur Erläuterung der Ausführung eines Befehls bei einer Datenverarbeitungseinheit
mit bisheriger Pipelinesteuerung,
Fig. 5 eine schematische Darstellung des Puffer- bzw. Zwischenspeicheraufbaus bei der Einheit £ gemäß
Fig. 4,
Fig. 6 eine Darstellung des Aufbaus der Einheit Pin Fig. 4,
Fig. 7 ein Hardware-Blockschaltbild einer Datenverarbeitungseinheit auf einem verwandten Anwendungsgebiet
zur Erläuterung der verwendeten Befehle,
Fig. 8A und SB gemeinsam ein Blockschaltbild einer Datenverarbeitungseinheit gemäß einer Ausführungs- is
form der Erfindung,
Fig. 9 einen Speicherplan für in den Makrobefehlsspeicher gemäß Fig. 8 A und 8B eingeschriebene Makrobefehle,
Fig. 1OA und 1OG Zeitdiagramme für die sequentielle Ausführung der Makrobefehle gemäß Fig. 9.
F i g. 11 einen Speicherplan für einen in den Makrobefehlsspeicher eingeschriebenen Vorsignalisierungs- oder
AffirBefehl,
F i g. 12 A bis 12N Zeitdiagramme, welche den Vorabrufvorgang für die Größen des ersten, zweiten und dritten
Operanden bei Ausführung des /ML-Befehls gemäß Fig. 11 sowie die Zeitsteuerung der auf den ΛίΖ,-Makrobefehl,
der parallel zu dieser Vorabrufoperation ausgeführt wird, folgenden Makrobefehlsgruppe veranschaulichen,
Fig. 13 ein detailliertes Blockschaltbild der Adressenbefehl-Vorabrufsteuerschaltung gemäß Fig. 8,
Fig. 14 einen Speicherplan für den in den Makrobefehlsspeicher eingeschriebenen 57C-Befehl,
Fig. 15A bis 15K Zeitdiagramme der Zeitpunkte, zu denen der £7C-Befehl gemäß Fig. 14 ausgeführt wird,
Fig. 16 einen Speicherplan des in den Makrobefehlspeicher eingeschriebenen £M)-Befehls und
Fig. 17A bis 171 Zeitdiagramme der Zeitpunkte, zu denen der £7VD-Befehl gemäß Fig. 16 ausgeführt wird.
Die Fig. 1 bis 6 sind eingangs bereits erläutert worden.
Vor der Erläuterung des Aufbaus einer Ausführungsform der Erfindung wird zunächst eine in der US-PS
4240137 im einzelnen erläuterte Makrobefehlsgruppe anhand von Fig. 7 kurz beschrieben werden. Der
Zweck besteht darin, eine Datenverarbeitungseinheit zu schaffen, die in der Lage ist, strukturierte bzw. Strukturprogramme
auf der Ebene der Maschinensprache wirklich wirksam auszuführen, indem zur bisherigen
Datenverarbeitungseinheit gemäß Fi g. 7 ein Stapelspeicher 88, zwei Arten von Registern zur Speicherung der
Verzweigungsadresse, nämlich ein /i-Register 84 und ein Ä-Register 86, und weiterhin eine Steuerschaltung
hierfür hinzugefügt werden. Zu diesem Zweck besitzt die Datenverarbeitungseinheit Einrichtungen zur Lieferung
von vier Befehlen:
1. Eine Einrichtung zur Bezeichnung einer vorbestimmten Adresse vom Pregramrnzähler zum Auslassen von
Daten (A, B, Q, welche die Anfangsadressen des ersten, zweiten und dritten Blocks des im Hauptspeicher
gespeicherten Programms ausführen, sowie zur Lieferung eines Befehls (Λ/L-Befehl) zur Speicherung
dieser Daten im ersten Register (^Register), im zweiten Register (5-Register) und im Stapelspeicher;
2. eine Einrichtung zur Lieferung eines Echt-/Falsch-Prüfbefehls (57C- oder ÄRT-Befehl) zur selektiven
Speicherung des Inhalts des ersten Registers oder des zweiten Registers im Programmzähler entsprechend
dem Operationsergebnis;
3. eine Einrichtung für einen Vierzehnzeilensprung des Stapelspeichers zur Lieferung eines Befehls
(£M>Befehl) zur Speicherung seines Inhalts im Programmzähler; und
4. eine Einrichtung für einen Vierzehnzeilensprung des Stapelspeichers zur Lieferung eines Befehls {LOOP
Ot/WJefehl) zum Verwerfen des Speicherinhalts.
Diese Befehle werden durch Mikroprogramme und die erwähnte Schaltung durchgeführt.
Die folgende Beschreibung bezieht sich auf eine Gruppe von vier Makrobefehlen:
1) ML, A, B, C
2) BTCM(O), M(I), M(2), M(I)
BFCM(O), M(I), M(2), M(3)
3) END
4) LOOPOUT
1) ML, A, B, C
Der Inhalt der Adresse A wird im Λ-Register gespeichert. Der Inhalt der Adresse B wird im fl-Register gespeichert.
Der Inhalt der Adresse C wird dem first in-last out-Stapelspeicher C hinzuaddiert.
2) BTCM(O), M(I), M(2), M(3)
Wenn die Größe der Bedingung F gleich 1 ist, wird eine Verzweigung zu <W Adresse dei im Register A gespeicherten
Größe hergestellt.
Wenn die Größe der Bedingung F nicht 1 ist, wird eine Verzweigung zu der Adresse der im Registe.' B gespeicherten
Größe hergestellt.
Die Bedingung F ist so, daß
F=(M(O)A O V(M(I)A V) V(A/ (2)ΔΛ0 V(A/ (3) Δ Z), wobei die Größen von C, KMindZfürdie Operationsergebnisse
in der arithmetischen Logikeinheit unmittelbar vor dem BTC- oder ßfC-Befehl erhalten werden;
das Symbol Δ bedeutet UND; das Symbol V bedeutet ODER; Cist ein Übertragkennzeichen, V\si ein Überlaufkennzeichen,
N ist ein negatives Kennzeichen und Z ist ein Null-Kennzeichen.
BFCM (0), M (1), M (2), M (3)
Wenn die Größe der Bedingung F gleich 0 ist, wird eine Verzweigung zu der Adresse der im Register A gespeicherten
Größe hergestellt.
3) END
Ein first in- last out-Stapelspeicher C wird einem Vicrzehniciiensprung unterworfen.
Die erhaltene Größe wird vom Programmzähler (Aus) übertragen und das Programm wird auf die Adresse
dieser Größe verzweigt.
4) LOOPOUT
Ein first in- last out-Stapelspeicher Cwird einem Vierzehnzeilensprung unterworfen, doch wird die erhaltene
Größe nicht benutzt. Der Programmzähler wird hochgeschaltet, und das Programm wird sequentiell ausgeführt.
Verschiedene Sätze von Befehlen zur Lieferung von Entscheidungs- oder Prüfbedingungen sind notwendigerweise
vor den BTC- und ßFC-Befehlen eingeschaltet. Der A/L-Befehl muß vor diese Befehle eingefügt werden.
Durch Ausführung des A/L-Befehls sowie verschiedener Befehle vor dem Prüfbefehl, etwa dem BTC- oder BFC-Befehl,
ist es somit möglich, der Datenverarbeitungseinheit vor der Ausführung des 57C- oder ß FC-Befehls zwei
Adressen (A und B) zur Verzweigung der Ausführungen des Prüfbefehls und eine Rücklaufadresse (C) zur
Rückführung auf die ursprüngliche Befehlssequenz einzugeben.
Der Befehl für die Vorsignalisierung braucht nicht, wie beschrieben, ML A, B, Czu entsprechen. Verschiedene
andere, modifizierte Arten von Vorsignalisierungsbefehlen sind möglich. Die Befehle AiL A, B, C werden bei
dieser Ausführungsform als typische Befehle von verschiedenen Vorsignalisierbefehlen benutzt. Wenn die
Befehle ML A, B, C durch das Mikroprogramm ausgeführt werden, sind die folgenden Prüfbefehle, wie im Fall
der BTC- oder ßFC-Befehle, vereinfacht. Da die Entscheidungs- oder Prüfbefehle bisher die Verzweigungsadressen, wie A und B, enthalten mußten, erforderten diese Befehle lange Bitmuster. Die Verwendung des
Befehls ML A, B, C bei der vorliegenden Datenverarbeitungseinheit hat keine unmittelbare Vergrößerung des
Makrobefehlsspeichers zur Folge. Im folgenden sei ein einfaches Programm betrachtet, um die Funktionen des
ML-, des BFC- und des £i\©-Befehls zu verdeutlichen. In diesem Zusammenhang wird ein Programm betrachtet,
welches zwei Zahlen vergleicht und die kleinere ableitet. Es sei angenommen, daß die beiden Zahlen in
Speicherplätzen mit den Adressen fund Q gespeichert sind und die kleinere Zahl in einem Speicherplatz mit
der Adresse MIN gespeichert ist.
Das nachstehend beschriebene Programm gilt für herkömmliche Befehle:
Programm 1
LH 3, f Eine Zahl ist im Register 3 geladen.
SH 3, Q Die andere Zahl wird von obiger Zahl subtrahiert.
BM A Wenn das Ergebnis negativ ist, erfolgt ein Sprung auf Adresse A.
B LH 3, Q Die kleinere Zahl wird in das Register 3 geladen.
B C Sprung auf Adresse C.
A LH 3, P Die kleinere Zahl wird im Register 3 geladen.
C STH 3, MIN Die kleinere Zahl wird in der Adresse MIN gespeichert.
Das obige Programm kann unter Heranziehung der ML-, BTC-, BFC- und £M>-Befehle wie folgt umgeschrieben
werden:
Programm 2
Programm 2
ML A, B, C Verzweigungsadressen-Vorsignalisierbefehl.
LH 3, P Eine Zahl wird in das Register 3 geladen,
LH 3, P Eine Zahl wird in das Register 3 geladen,
SH 3, P Von obiger Zahl wird die andere Zahl subtrahiert.
BTCQ, 0, 1, 0 Sprung auf Adresse A, wenn negatives Kennzeichen gültig ist, und auf Adresse B,
wenn negatives Kennzeichen falsch bzw. ungültig ist
wenn negatives Kennzeichen falsch bzw. ungültig ist
A LH 3, P Sprung auf Verzweigungsadresse, wenn Kennzeichen gültig ist.
END Sprung auf Adresse C.
B LH 3, Q Sprung auf Adresse C, wenn Kennzeichen ungültig ist.
C STH 3, M/V Die kleinere Zahl wird in der Adresse MIN gespeichert.
Wie sich aus obigem Beispiel ergibt, beträgt die Speicherkapazität Tür Programm 1, d. h. wenn die Programmierung
mit herkömmlichen Makrobefehlen erfolgt, 32 Bytes. Die Speicherkapazität bei Durchführung
der Programmierung mit den ML-, BTC-, BFC- und £M)-Befehlen beträgt dagegen 34 Bytes. Obgleich die verwendeten
Makrobefehle somit zwei zusätzliche Bytes benötigen, kann eine derartige Vergrößerung praktisch
vernachläßigt werden, wenn man die durch die jüngsten Verbesserungen in der Integrationsdichte erzielten
Kostenverringerungen für /C-Speicher berücksichtigt.
F i g. 8 veranschaulicht eine Ausführungsfonn der Erfindung. Die vom Benutzer verwendeten Befehle werden
zur Unterscheidung von Mikrobefehlen als Makrobefehle bezeichnet.
Die Makrobefehle und die zugehörigen Daten werden in einem Makrobefehlsspeicher 90 gespeichert. Ein in
der durch ein Adressenregister 92 bestimmten Adresse gespeicherter Makrobefehl wird über eine Speicherdatensammelleitung
94 zu einem Abrufregister 96 abgerufen und danach über einen Wähler 98 zu einem Ausführregister
100 abgerufen. Die Operation des Abrufens des Makrobefehls zum Abrufregister 96 erfolgt parallel zur
Abrufoperation für den Makrobefehl zum Ausführregister 100 zur Betätigung der arithmetischen Logikeinheit
(das Abrufregister 96 und das Ausführregister 100 können gemeinsam als Pipelineregister bezeichnet werden).
! >;r aus dem Makrobefehlsspeicher 90 zum Abrufregister 96 ausgelesene Befehl wird einem ersten Dekodierer
102 zugeführt, welcher prüft, ob der zugelieferte Makrobefehl ein ML-Befehl ist. Ist dies nicht der Fall, so wird
der Inhalt des Abrufregisters 96 festgehalten, bis die Ausführung durch das Ausführregister 100 abgeschlossen
ist. Nachdem der Inhalt des Ausführregisters 100 durch die arithmetische Logikeinheit verarbeitet worden ist,
wird der Inhalt des Abrufregisters 96 zum Ausführregister 100 übertragen und durch einen zweiten Dekodierer
104 dekodiert. Auf der Grundlage des dekodierten Ergebnisses des zweiten Dekodierers 104 steuert ein Mikroprogramm-Sortierer
bzw. -Programmregler 106 die Ausführung des in einem Mikroprogramm-Festwertspeicher
108 gespeicherten Mikroprogramms. Der Mikrobefehl vom Mikroprogramm-Festwertspeicher 108 wird in ein
Mikrobefehlsregister 110 geladen und verteilt das Steuersignal auf die arithmetische Logikeinheit oder die
betreffenden Teile der Logikschaltung entsprechend dem Befehl vom Mikroprogramm-Sortierer bzw.
-Programmregler 106. Die Speicherplatzadresse im Makrobefehlspeicher 90 für den zum Abrufregister 96 abgerufenen
Befehl wird durch das Adressenregister 92 bezeichnet. Die in einem Programmzähler 112 gesetzte
Adressengröße wird somit übei eine Adressensteuerung 114 auf einer Speicheradressen-Sammelschiene 116
ausgegeben. Eine Sammelschienensteuerung 118 liefert die ausgegebene Adressengröße auf der Sammelschiene
116 zum Adressenregister 92. Der Programmzähler 112 wird in Einzelschritten jeweils hochgeschaltet,
so oft der Inhalt des Abrufregisters 96 zum Ausführregister 100 geliefert wird, es sei denn, daß ein Verzweigungsbefehl geliefert wird. Wenn der Verzweigungsbefehl durch die Datenverarbeitungseinheit ausgeführt wird, wird
die Verzweigungsadresse von der arithmetischen Logikeinheit über einen Wähler 120 zum Programmzähler 112
geliefert.
Wenn der erste Dekodierer 102 entscheidet, daß der Befehl ein Μ,-Befehl ist, schaltet ein Inkrementierer 122
den Inhalt des Programmiählers 112 entsprechend einem Befehl vom ersten Dekodierer 102 um 3 hoch. Der
Makrobefehlspeicher 90 weist l-Byte-(8-Bit)-Speichereinheiten auf, in denen die Befehle oder Daten
gespeichert werden bzw. sind. Wenn angenommen wird, daß die Adressengröße aus acht Bits besteht und der
Operationskode des Befehls ebenfalls acht Bits umfaßt, besteht der ML A, B, C-Befehl aus 4 Bytes. Im vorstehend
angenommenen Fall wird der Operationskode des genannten Μ,-Befehls nicht zum Ausführregister 100
geliefert. Eine Adressen/Befehl-Vorabrufsteuerschaltung 124 weist die Sammelschienensteuerung 118 an, die
Operanden des ML-Befehls mittels des Befehls von?, erster. Dekodierer 102 auszulesen. Die Sammelschienensteuerung
118 liest die Operanden A, B und Cdes Afi.-Befehls aus dem Makrobefehlspeicher 90 aus und lädt sie
über ein Datenregister 126 ir. einem ^«Register 128, einem 5-Register !30 bzw. einem C-Stape!register 132.
Letzteres ist ein first in-last out-Stapelregister. Die Adressen/Befehl-Vorabrufsteuerschaltung 124 liest die
Inhalte des Speicherplatzes des Makrobefehlspeichers 90 aus, welche durch die im Λ-Register 128, in ß-Register
130 und im Registerstapel 132 gespeicherte Adresse bezeichnet werden, um sie über das Datenregister 126 in
ein Befehlsregister 134, ein Befehlsregister 136 sowie ein Befehlstapelregister 138 zu laden. Letzteres ist, ebenso
wie das C-Stapelregister 132, ein first in-last out-Register.
Wenn nach der Ausführung des AC-Befehls auf vorstehend beschriebene Weise der Entscheidungs- bzw.
Prüfbefehl (S7C-Befehl, SFC-Befehl) stets vorhanden ist, wird der Befehl der Verzweigungsadresse in den
Befehlsregistern 134 und 136 vorbereitet, während der Befehl für die Rücklaufadresse im Befehlstapelregister
138 vorbereitet wird. Diese Vorabrufoperation wird durchgeführt, während die beiden Befehle, d. h. ML- und
ß7C-Befehl, beim Beispiel von Programm 2 ausgeführt werden. Im Fall des Programms 2 werden LH in die
Befehlsregister 134 und 136 geladen, während CTiin das Befehlstapelregister 138 geladen wird. Die Größen der
Operanden A, B, Cwerden in das ^-Register 128, das Α-Register 130 bzw. das C-Stapelregister 132 geladen. Wenn
der Entscheidungs- bzw. Prüfbefehl (57C-Befehl, 57C-Befehl) ausgeführt wird, wird eines der Befehlsregister
134 und 136 durch den Wähler 98 gewählt, und der Prüfbefehl wird in das Ausfuhrregister 100 geladen. Wenn
beispielsweise das Befehlsregister 134 gewählt ist, wird sein Inhalt in das Ausführregister 100 geladen. Gleichzeitig
damit wird der Inhalt des ^-Registers 128 über die Adressen/Befehl-Vorabrufsteuerschaltung 124 und den
"Wähler 120 in den Programmzähler 112 geladen, der um 1 hochgeschaltet wird. Diese Größe wird zur nächsten |f
Adresse für den Abruf aus dem Makrobefehlsspeicher 90. Wenn der END-Befthl durch die Datenverarbeitungs- i
einheit ausgeführt wird, wird der Inhalt des Abrufregisters 96 nicht in das Ausführregister 100 geladen, viel- ,6
mehr wird das Befehüstapelregister 138 einem Vierzehnzeilensprung unterworfen und der erreichte Inhalt wird i
s in das Ausführregister 100 geladen. Zu diesem Zeitpunkt bleibt der Inhalt des Abrufregisters 96 unberücksichtigt.
Der durch den Vierzehnzeilensprung des C-Stapelregisters J 32 erreichte Inhalt wird in den Programmzähler
geladen, um diesen um 1 hochzählen zu lassen.
Im folgenden wird die Ausführung des Makrobefehls in der Datenverarbeitungstinheit erläutert.
Wie im Speicherplan gemäß F i g. 9 dargestellt, wird angenommen, daß ein 1-Byte-Befehl OPO in die Adresse P
des Makrobefehlsspeichers 90, ein 2-Byte-Befehl OPl in Adressen P+ 1 und P+ 2 sowie 1-Bypte-Befehle OPl
und OPi in Adressen P+ 3 und P+ 4 eingeschreiben werden. Die Ausführung des Makrobefehls erfolgt hierbei
wie folgt:
1. Eine Anforderung zum Auslesen des Makrobefehls OfD wird während der Ausführung des Makrobefehls,
welcher dem Makrobefehl Qfl} um einen Schritt vorhergeht, ausgegeben. Dies bedeutet, daß der Inhalt des
Programmzählers 112 über die Speicheradressen-Sammelschiene 116 zum Adressenregister 92 gesandt
wird, um eine Speicherausleseanforderung auszugeben.
2. Der Inhalt des Programmzählersll2 wird durch den 'nkrementierer 122 um 1 (P+1) hochgezählt und durch
den Programmzähier 112 über den Wähler 120 festgehalten.
3. Der Makrobefehl QfO, dessen Auslesung im Schritt 1 angefordert wurde, wird aus dem Makrobefehlsspeicher
90 ausgelesen und über die Speicherdaten-Sammelschiene 94 im Abrufregister 96 festgehalten. Der im
Abrufregister 96 gehaltene Makrobefehl wird durch den Dekodierer 102 dekodiert, und es wird geprüft, ob
es sich um einen M--Befehl handelt.
4. Der Inhalt (P+ 1) des Programmzählers 112 wird zum Adressenregister 92 übertragen, und es wird eine
Ausleseanforderung für den nächsten Befehl ausgegeben.
5. Wenn der Befehl im Schritt 3 als ein anderer Befehl als der Λ/L-Befehl festgestellt wird, wird der inhalt des
Abrufregisters 96 über den Wähler 98 zum Ausführregister 100 übertragen. Der Inhalt des Ausführregisters
100 wird durch den Dekodierer 104 dekodiert, wobei eine Anfangsadresse des für den Makrobefehl OPO speziellen
Mikroprogramms erzeugt wird. Diese Anfangsadresse wird dem Mikroprogramm-Sortierer 106
zugeführt.
6. Schritt 2 wird für (P+ 2) wiederholt.
7. Die Daten, deren Auslesung in Schritt 4 angefordert wurde, d. h. der Makrobefehl OPl, werden im Abrufregister
96 festgehalten.
8. Schritt 4 wird wiederholt.
9. Die Ausführung des Makrobefehls OPO wird beendet. Per nächste Makrobefehl OPl wird zur Ausführung
zum Ausfuhrregister 100 übertragen.
10. Die Daten, deren Auslesung im Schritt 8 angefordert wurde, d. h. der Operand des Makrobefehls OPI, werden
im Abrufregister 96 festgehalten. Diese Größe wird zur arithmetischen Logikeinheit gesandt, um für
die Operation des Makrobefehls QPi benutzt zu werden.
Im folgenden ist die Ausführung des ML-Befehls erläutert.
ΗΊ.: ''Ch den Speicherplan gemäß Fig. 11 veranschaulicht ist, sei angenommen, daß derA/L-Befehl aus der
Adresse P des Makrobefehlsspeichers 90 eingeschrieben wird und die Makrobefehle QPI, QPm und QPn in
Adressen a, b bzw. c eingeschrieben werden, welche durch ersten, zweiten bzw. dritten Operanden des
iWL-Befehls dargestellt sind. Weiter sei angenommen, daß die Makrobefehle QP2, OP3, QM,. . ., die auf den
Λ/Ζ,-Befehl folgen, nach der P+ 4-Adresse sequentiell ausgeführt werden. Der vorstehende Ausfühn-ngsvorgang
wird im einzelnen anhand der Zeitdiagramme gemäß Fig. 12A bis 12M erläutert, nach denen die Makrobefehle
auf die oben genannte Weise eingeschrieben werden.
1. Eine Ausleseanforderung für den Λ/L-Befehl wird während der Ausführung des vor dem Λίϊ,-Befehl ausgeführten
Makrobefehls ausgegeben. Dies bedeutet, daß der Inhalt (P) des Programmzählers 112 zum
Adressenregister 92 übertragen und die Ausleseanforderung des Speichers ausgegeben wird.
2. Der Inhalt (P) des Programmzählers 112 wird durch den Inkrementierer 122 um 1 (P+ 1) hochgezählt und über den Wähler 120 im Programmzähler 112 festgehalten.
2. Der Inhalt (P) des Programmzählers 112 wird durch den Inkrementierer 122 um 1 (P+ 1) hochgezählt und über den Wähler 120 im Programmzähler 112 festgehalten.
3. Die in Schritt 1 angeforderte Dateneinheit wird aus dem Makrobefehlsspeicher 90 ausgelesen und über die
Speicherdaten-Sammelschiene 94 im Abrufregister 96 festgehalten. Die im Abrufregister 96 gehaltene
Dateneinheit wird durch den Dekodierer 102 dekodiert und daraufhin geprüft, ob sie ein ML-Befehl ist oder
nicht. Im positiven Fall wird eine Startanforderung zur Adressen/Befehl-Vorabrufsteuerschaltung 124 ausgegeben.
(Die Arbeitsweise dieser Steuerschaltung nach der Startanforderung wird später noch näher erläutert
werden).
4. Der Inhalt (P+ 1) des Programmzählers 112 wird zum Adressenregister 92 übertragen, und es wird eine Ausleseanforderung
für die nächste Dateneinheit ausgeführt.
Die Größe α (der erste Operand des M.-Befehls), die aus dem Makrobefehlsspeicher 90 ausgelesen wurde,
wird durch die Funktion der genannten Steuerschaltung 124 im Datanregister 126 festgehalten.
5. Wenn die Dateneinheit im Schritt 3 als Att-Befehl festgestellt worden ist, wird der Inhalt des Programmzählers
112 durch den Inkrementierer 122 um 3 auf (P+ 4) hochgezählt, woraufhin die durch den Programmzähler
112 bezeichnete Adresse zum nächsten Makrobefehl OP2 des Λ/Ζ,-Bel hls wird.
6. Zum Auslesen des Makrobefehls OPl wird der Inhalt des Prognänmzählers 112 zum Adressenregister 92
übertagen, und die Speicherausleseanforderung wird ausgeführt Da das Auslesen des zweiten und des dritten
Operanden des Afc-Befehls durch die genannte Steuerschaltung 124 vorgenommen wird, erfolgt diese
Vearbeitung an dieser Stelle nicht
7. Schritt 2 wird wiederholt
8. Die vom Makrobefehlsspeicher 90 im Schritt 6 angeforderte Dateneinheit wird über die Speicherdaten-Sammelschiene
94 im Abrufregier 96 gehalten. Der neue, im Abrufregister 96 gehaltene Makrobefehl OPl
wird, ähnlich wie in Schritt 3, durch den ersten Dekodierer 102 dekodiert, um festzustellen, ob es sich um
einen M.-Befehl handelt
9. Der im Abrufregister 96 gehaltene Makrobefehl OPl wird im Ausführregister 100 gehalten. Der Inhalt des
Ausführregisters 100 ändert sich von der vorhergehenden Anforderung oder Ausfuhrung des A£L-Befehls
zum Makrobefehl OPl, und der Befehl selbst wird nicht im Ausführregister 100 festgehalten.
Im folgenden ist die Steuereinrichtung bzw. Adressen/Befehl-Vorabnifsteuerschaltung 124 zur Ausführung
des AfL-Befehls erläutert is
Wenn der erste Dekodierer 102 die Dateneinheit als ΛΖ,-Befehl feststellt, wird ein Freigabesignal CLR zu
einem Zähler 140 der Adressen/Befehl-Vorabrufsteuerschaltung gemäß Fig. 13 zugeliefert Die Arbeitsweise
des Zählers 140 wird durch das Ausgangssignal eines UND-Glieds 142 gesteuert Der Zähler 140 bezeichnet eine
spezielle Adresse eines Festwertspeichers 144. Dem Zähler 140 werden über das UND-Glied 142 Taktsignale
zugeführt, durch weiche er in Einzelschritten hochgeschaltet wird bzw. hochzählt. Der Festwertspeicher 144
dient zur Speicherung eines Programms zur Erzeugung verschiedener Steuersignale für die Ausführung des ML-Befehls.
Die aus dem Festwertspeicher 144 ausgelesene Größe wird durch eine Verriegelungsschaltung 146 festgehalten,
die verschiedene Steuersignale verteilt Das im Festwertspeicher 144 gespeicherte Programm wird von der
Adresse O durch die Funktion des Zählers 140 ausgeführt. Diese Programmausführung wird unterbrochen,
wenn das Auslesen aller Operanden des ΛίΖ,-Befehls abgeschlossen ist. Die Programmausführung erfolgt synchron
mit dem Taktsignal CLOCK. Ein Speicheradressenregister 148 dient zur Bezeichnung der Adressen des
ersten, zweiten und dritten Operanden des AfL-Befehls unter Benutzung des Programmzählers 112 als Quelle.
Ein Wähler 150 schaltet zwischen den Quellen zur Bezeichnung der aus dem Makrobefehlsspeicher 90 auszulesenden
Adresse um, wobei diese Quellen das Speicheradressenregister 148, das ^-Register 128, das ^-Register
130 und das C-Stapelregister 132 sind. Diese Auswahl erfolgt nach Maßgabe eines Signals SE. Zur Ausgabe der
Ausleseanforderung zum Makrobefehlsspeicher 90 wird die Größe der durch den Wähler 150 gewählten Quelle,
d. h. die Adresse, über einen Ausgangs-Zwischenspeicher 152 zur Speicheradressen-Sammelschiene 116 geleitet.
Gleichzeitig damit wird ein Speicherauslese-Anforderungssignal RDRQ ausgegeben. Die zur Sammelschiene
116 übertragene Größe wird zum Adressenregister 92 übermittelt, und der Inhalt der entsprechenden
Adresse des Makrobefehlsspeichers 90 wird ausgelesen. Die ausgelesece Größe wird der Sammelschiene 94
zugeführt und vom Datenregister 126 gehalten. Sodann wird zur Aktivierung des Zählers 140 ein Bereitschaftssignal
RDK zum UND-Glied 142 geliefert. Das Bereitschaftssignal RDYwM für Steuerzwecke benutzt, so daß die
Ausführung des im Festwertspeicher 144 gespeicherten Programms erst dann eingeleitet wird, wenn das Auslesen
des im Makrobefehlsspeicher 90 gespeicherten Programms abgeschlossen ist. Wenn der Zähler 140 durch
das Bereitschaftssignal /{Deaktiviert bzw. in Gang gesetzt wird, wird sein Inhalt durch die Taktsignale CLOCKm
Einzelschritten hochgeschaltet.
Die aus dem Makrobefehlsspeicher 90 ausgelesene und im Datenregister 126 gehaltene Größe wird im ^-Register
128, im ^-Register 130 oder im C-Stapelregister 132 durch ein Freigabesignal ENA gespeichert, das von der
Verriegelungsschaltung 146 ausgegeben wird. Die Größen der drei Operanden des ML-Befehls werden somit in
den betreffenden Registern gespeichert. Die in den Registern 128,130 und 132 gespeicherten Größen sind die
Adresseninformationen Tür den Makrobefehlsspeicher 90. Die Makrobefehle dieser Adressen werden ebenfalls
über die Adressen/Befehl-Vorabrufsteuerschaltung 124 aus dem Makrobefehlsspeicher 90 ausgelesen. Das Auslesen
der durch den Inhalt des /4-Registers 128 bezeichneten Information aus dem Makrobefehlsspeicher 90
erfolgt auf ähnliche Weise wie das Auslesen der Größe α des ersten Operanden. Aufgrund des Signals SE wählt so
die Verriegelungsschaltung 146 das Λ-Register 128 als Quelle des Wählers 150, und sie aktiviert den Ausgangszwischenpuffer
152 mittels eines Ausgangs-Freigabesignals OE. Die Schaltung 146 gibt gleichzeitig auf ein Speicherauslese-Anforderungssignal
RDRQhin eine Speicherausleseanforderung zum Makrobefehlsspeicher 90 aus.
Infolgsdessen wird der Inhalt des ^-Registers 128 über die Sammelschiene 116 zum Adressenregister 92 geliefert.
Die aus dem Makrobefehlsspeicher 90 ausgelesene Größe wird auf ähnliche Weise, wie vorstehend für das
Auslesen beschrieben, im Datenregister 126 gespeichert bzw. festgehalten. Obgleich in Fig. 13 nicht dargestellt,
wird die im Datenregister 126 festgehaltene Größe mittels des Freigabesignals ENA von der Verriegelungsschaltung
146 in einem der Befehlsregister 134,136 und 138 gespeichert. Wenn alle oben beschriebenen
Operationen abgeschlossen sind, wird ein Ausgangssignal £>7Eeines Flip-Flops 156 zu einer »1«, wordurch angezeigt
wird, daß das Auslesen der Operanden des AfL-Befehls abgeschlossen ist.
Das Auslesen der Operanden des ML-Befehls in Abhängigkeit von der Startanforderung vom ersten Dekodierer
102 erfolgt auf die nachstehend beschriebene Weise. Die Zeitsteuerung dieser Operation beruht auf dem
Zeitdiag ,imm gemäß Fig. 12.
O Der Inhalt des Programmzählers 112 wird in das Speicheradressenregister 148 geladen.
© Die aus dem Makrobefehlsspeicher 90 in Schritt 4 ausgelesene Dateneinheit wird entsprechend dem vorher
beschriebenen Ausführungsvorgang Tür den Λ/L-Befehl im Datenregister 126 gehalten.
Θ Die im Datenregister 126 gehaltene Größe wird in das Λ-Register 128 geladen.
Θ Die im Datenregister 126 gehaltene Größe wird in das Λ-Register 128 geladen.
Θ Der Inhalt des ^-Registers 128 wird über den .Ausgangszwischenspeicher 132 zur Speicheradressen-Sammelschiene
116 geleitet, und es wird eine Ausleseanforderung zum Makrobefehlsspeicher 90 ausgegeben.
© Der Inhalt des Speicheradressenregisier 148 wird um 1 erhöht
s © Die aus dem Makrobefehlsspeicher 90 ausgelesene und in Schritt Θ im Datenregister 126 gehaltene Größe
(Makrobefehl OPI) wird im Befehlsregister 134 gespeichert
Θ Der Inhalt des Speicheradressenregisters 148 wird über den Ausgangszwischenspeicher 152 zur Speicheradressen-Sammelschiene
116 geleitet, und es wird eine Ausleseanforderung zum Makrobefehlsspeicher 90
ausgegeben.
ίο © Die aus dem Makrobefehlsspeicher 90 ausgelesene und im Datenregister 126 gehaltene Größe b wird im
^-Register 130 gespeichert
© Das Ausgangssignal des ^-Registers 130 wird zur Sammelschiene 116 geliefert, und es wird eine Ausleseanforderung
zum Makrobefehlsspeicher 90 ausgegeben.
® Der Inhalt des Speicheradressenregisters 148 wird um 1 erhöht
is © Die aus dem Makrobefehlsspeicher90 ausgelesene und im Schritt© im Datenregister 126gehaltene Größe
(Makrobefehl OPm) wird im Befehlsregister 136 gespeichert
© der Inhalt des Speicheradressenregisters 148 wird über den Ausgangszwisch-jnspeicher 152 der Sammelschiene
116 zugeführt, und ss wird eine Ausleseanforderung zum Makrobefehlsspeicher 90 ausgegeben.
© Die aus dem Makrobefehlsspeicher ausgelesene und im Datenregister 126 gehaltene Größe cwird im C-Stapelregister
132 gespeichert
© Die im C-Stapelregister 132 gespeicherte Größe wird über den Ausgangszwischenspeicher 152 der
Speicheradressen-Sammelschiene 116 zugeführt, und es wird eine Ausleseanforderung zum Makrobefehlsspeicher 90 ausgegeben.
© Die aus dem Makrobefehlsspeicher 90 ausgelesene und im Datenregister 126 gehaltene Größe (Makrobefehl
OPti) wird im Befehlsstapelregister 13S gespeichert.
Die BTC- und fiFC-Befehle sind im einzelnen erläutert. Bei diesen Befehlen handelt es sich jeweils um
Sprung- bzw. Verzweigungsbefehle. Die Verzweigungsadresse ist der erste Operand des jML-Befehls oder die
durch den zweiten Operanden dargestellte Adresse. Der Unterschied zwischen ihnen besteht in dem Verfahren
zur Bewertung oder Prüfung des Kennzeichens, das durch die Bedingungen des in diesen Makrobefehlen enthaltenen
Maskenbits dargestellt wird, und dem Operationsergebnis der arithmetischen Logikeinheit. Vorliegend ist
der 57C-Befehl beschrieben.
Im folgenden ist die Operation oder Arbeitsweise für den Fall beschrieben, daß der 57C-Befehl gemäß F i g. 14
in die Adresse P des Makrobefehlsspeichers 90 eingeschrieben wird, wobei auf die Zeitdiagramme gemäß
Fig. 15A bis 15K verwiesen wird.
1. Eine Ausleseanforderung für den fl7U-Befehl wird während der Ausführung des Makrobefehls, der um
einen Schritt vor dem 57C-Befehl liegt, durchgeführt. Dies bedeutet, daß der Inhalt des Programmzählers
112 dem Adressenregister 91 über die Speicheradressen-Sammelschiene 116 zugeführt und eine Speicherausleseanforderung
ausgegeben wird.
2. Der Inhalt des Programmzählers 112 wird durch den Inkrementierer 122 um 1 erhöht und im Programmzähler
112 gehalten.
3. Die in Schritt 1 angeforderte Dateneinheit wird aus dem Makrobefehlsspeicher 90 ausgelesen und über die
Speicherdaten-Sammelschiene 94 in das Abrufregister 96 geladen. Der im Abrufregister 96 gehaltene BTC-Befehl
wird durch den Dekodierer 102 dekodiert, um zu ermitteln, ob es sich um einen Λ/L-Befehl handelt.
4. Der Inhalt des Programmzählers 112 wird zum Adressenregister 92 übertragen, und es wird eine Ausleseanforderung
für einen nächsten Befehl zum Makrobefehlsspeicher 90 ausgegeben.
5. Der Inhalt des Abrufregisters 96 wird zum Ausführregister 100 übertragen. Der Inhalt des Ausnihrregisters
100, d. h. die Anfangsadresse des fur den /?7U-Befehl speziellen Mikroprogramms, wird dem Mikroprogramm-Sortierer
106 zugeliefert.
6. Das Maskenbit des vom Ausführregister 100 gehaltenen 57C-Befehls wird zur arithmetischen Logikeinheit
gesandt. Es erfolgt eine Prüfung bzw. Entscheidung bezüglich der Zustände des Kennzeichens, die durch
das Ausführergebnis des dem 57C-Befehl vorhergehenden Makrobefehls bestimmt werden. Weiterhin
wird geprüft, ob die Größen oder Werte des ersten, zweiten und dritten Operanden des M,-Befehls in den
Registern 128, 130 bzw. 132 sowie in den Befehlsregistern 134, 136 und 138 durch den ausgeführten ML-Befehl
vor dem augenblicklichen 57C-Befehl gespeichert wird. Wenn sie infolge von Belegtzuständen der
Sammelschiene 116 oder der Sammelschiene 94 nicht in diesen Registern gespeichert sind, wird die Operation
an diesem Punkt unterbrochen, bis diese Größen gespeichert worden sind. Diese Operationen erfolgen
durch Prüfung des -on der Steuerschaltung 124 ausgesandten Signals DTE. Die folgende Operation wird
durchgeführt, wenn die Dateneinheiten vollständig abgespeichert worden sind.
Wenn das Prüfergebnis F= 1 ist, wird der Inhalt (Größe a) des Λ-Registers 128 über die Steuerschaltung 124,
eine interne Sammelschiene 158 und den Wähler 120 im Programmzähler 112 gehalten.
7. Der Inhalt des Programmzählers 112 wird um 1 erhöht, und es wird die aem Makrobefehl der Verzweigungsadresse am nächsten liegende Adresse bezeichnet.
8. Der Inhalt des Programmzählers 112 wird zum Adressenregister 92 übertragen, und es wird eine Ausleseanforderung
des Makrobefehls OPl zum Makrobefehlsspeicher 90 ausgegeben.
9. Da das Zustands-Prüfergebnis im Schritt 6 F= 1 ist, wird der Inhalt (Makrobefehl QPl) des Befehlsregisters
134 über den Wähler 98 zum Ausführregister 100 übertragen. Der Inhalt des Ausführregisters 100, d. h. die
Anfangsadresse des für den Makrobefehl OPi speziellen Mikroprogramms, wird dem Mikroprogramm-Sortierer
106 zugeführt Die Ausführung des £7C-Befehls ist somit abgeschlossen, und die Ausführung des
Makrobefehls OPl wird eingeleitet
Die obige Beschreibung bezieht sich auf den Fall, daß das Entscheidungs- bzw. Prüfergebnis für den B7C-Befehl
F=I darstellt Im Falle von F= 0 ist die Operation dieselbe, mit der Ausnahme, daß der Inhalt des B-Registers
(Größe b) in Schritt 6 zum Programmzähler 112 übertragen und der Inhalt (Makrobefehl OPm) des
Befehlsregisters 136 im Schritt 9 zum Ausführregister 100 übertragen wird.
Im folgenden ist die Funktion des £A7>-Befehls beschrieben worden. Der £AZ>Befehl ist einer der Verzweigungsbefehle,
und die Verzweigungsadresse ist die durch den dritten Operanden des Μ,-Befehls dargestellte
Adresse. Nachstehend ist anhand des Zeitdiagramms gemäß Fi g. 17 die Arbeitsweise für den Fall beschrieben,
daß der £7VD-BefebJ in die Adresse P des Makrobefehlsspeichers 90 auf die in Fig. 16 dargestellte Weise eingeschrieben
wird.
1. Während der Ausführung des Makrobefehls, der vor dem £M>-Befehl ausgeführt wird, wird eine Aus- is
leseanforderung für den £ND-Befehl ausgegeben. Der InIalt des Programmzählers 112 wird zum Adressenregister
92 übertragen, um eine Speicherausleseanforderung einzuführen.
2. Der Inhalt des Programmzählers 112 wird um 1 erhöht, und dieser Inhalt wird über den Wähler 120 im Programmzähler
112 festgehalten.
3. Die in Schritt 1 angeforderte Dateneinheit wird aus dem Makrobefehlsspeicher ausgelesen und über die
Speicherdaten-Sammelschiene 94 in das Abrufregister 96 geladen. Der im Abrufregister 96 gehaltene END-Befehl
wird durch den ersten Dekodierer 102 dekodiert, um zu prüfen, ob es sich um einen AiL-Befehl
handelt.
4. Der Inhalt des Programmzählers 112 wird zum Adressenregister 92 übertragen, und es wird eine Ausleseanweisung
im den nächsten Befehl ausgegeben. Obgleich die ausgeiesene Größe, wie im Zusammenhang mit der Operation für den Ä7C-Befehl beschrieben,
im Abrufregister 96 gehalten oder gespeichert wird, wird diese Größe nicht benutzt.
5. Der Inhalt des Abrufregisters 96 wird zum Ausführregister 100 übertragen, dessen Inhalt, d. h. die Anfangsadresse des für den flVD-Befehl speziellen Mikroprogramms, dem Mikroprogramm-Sortierer 106 zugeführt
wird.
6. Die durch den Vierzehnzeilensprung des C-Stapelregisters 132 aufgrund der Ausführung des £M)-Befehls
erhaltene Größe wird über die Steuerschaltung 124, die interne Sammelschiene 158 und den Wähler 120 im
Programmzähler 112 gehalten.
7. Der Inhalt des Programmzählers 112 wird um 1 erhöht, um die nächste Adresse C + 1 des Makrobefehls
OPm der Verzweigungsadresse zu bezeichnen.
8. Der Inhalt des Programmzählers 112 wird zum Adressenregister 92 übertagen, um eine Speicherausleseanforderung
zum Makrobefehlsspeicher 90 auszugeben.
9. Die durch den Vierzehnzeilensprung des Befehlsstapelregisters 138 erhaltene Größe wird über den Wähler
98 im Ausführregister 100 gehalten. Der Inhalt des Ausführregisters 100, d. h. die Anfangsadresse des für
den Makrobefehl OPm speziellen Mikroprogramms, wird dem Mikroprogramm-Sortierer 106 zugeführt.
Hierauf ist die Ausführung des £M>Befehls abgeschlossen, und es wird die Ausführung des Makrobefehls
OPn eingeleitet.
Hierzu 17 Blatt Zeichnungen
Claims (1)
1. Datenverarbeitungseinheit, welche durch Daten gegebene Bedingungen für die Wahl eines jeweils als
nächstes auszuführenden Befehls bewertet und abhängig von den Bewertungsbedingungen jeweils einen zu
einer Verzweigungsadresse führenden Sprungbefehl ausführt und Befehle vorabruft, mit einer Adressenspeichereinrichtung
zur Speicherung von Verzweigungsadressen und einer Befehlsspeichereinrichtung zur
Speicherung vorabgerufener Befehle, die in durch dit Verzweigungsadressen jeweils bezeichneten Speicherplätzen
gespeichert sind, gekennzeichnet durch
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5256880A JPS56149646A (en) | 1980-04-21 | 1980-04-21 | Operation controller |
Publications (2)
Publication Number | Publication Date |
---|---|
DE3116100A1 DE3116100A1 (de) | 1982-04-08 |
DE3116100C2 true DE3116100C2 (de) | 1985-08-08 |
Family
ID=12918402
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE3116100A Expired DE3116100C2 (de) | 1980-04-21 | 1981-04-21 | Datenverarbeitungseinheit |
Country Status (3)
Country | Link |
---|---|
US (1) | US4471433A (de) |
JP (1) | JPS56149646A (de) |
DE (1) | DE3116100C2 (de) |
Families Citing this family (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3382350D1 (de) * | 1982-11-17 | 1991-08-29 | Nec Corp | Anordnung zum vorabholen von befehlen mit vorhersage einer verzweigungszieladresse. |
WO1985000453A1 (en) * | 1983-07-11 | 1985-01-31 | Prime Computer, Inc. | Data processing system |
US4764861A (en) * | 1984-02-08 | 1988-08-16 | Nec Corporation | Instruction fpefetching device with prediction of a branch destination for each branch count instruction |
US4742451A (en) * | 1984-05-21 | 1988-05-03 | Digital Equipment Corporation | Instruction prefetch system for conditional branch instruction for central processor unit |
US4825363A (en) * | 1984-12-05 | 1989-04-25 | Honeywell Inc. | Apparatus for modifying microinstructions of a microprogrammed processor |
JPH0769818B2 (ja) * | 1984-10-31 | 1995-07-31 | 株式会社日立製作所 | デ−タ処理装置 |
US4775927A (en) * | 1984-10-31 | 1988-10-04 | International Business Machines Corporation | Processor including fetch operation for branch instruction with control tag |
JPH0789319B2 (ja) * | 1985-04-22 | 1995-09-27 | 株式会社日立製作所 | デ−タ処理装置における先行制御装置 |
JPH0752390B2 (ja) * | 1985-05-07 | 1995-06-05 | 株式会社日立製作所 | 命令処理装置 |
JPS6341932A (ja) * | 1985-08-22 | 1988-02-23 | Nec Corp | 分岐命令処理装置 |
JPH0827716B2 (ja) * | 1985-10-25 | 1996-03-21 | 株式会社日立製作所 | データ処理装置及びデータ処理方法 |
JPH0743648B2 (ja) * | 1985-11-15 | 1995-05-15 | 株式会社日立製作所 | 情報処理装置 |
JPH0740225B2 (ja) * | 1985-12-25 | 1995-05-01 | 日本電気株式会社 | プログラムスキツプ動作制御方式 |
US4991080A (en) * | 1986-03-13 | 1991-02-05 | International Business Machines Corporation | Pipeline processing apparatus for executing instructions in three streams, including branch stream pre-execution processor for pre-executing conditional branch instructions |
JP2565495B2 (ja) * | 1986-08-27 | 1996-12-18 | 株式会社日立製作所 | デ−タ処理システム |
JPS6393038A (ja) * | 1986-10-07 | 1988-04-23 | Mitsubishi Electric Corp | 計算機 |
JP2603626B2 (ja) * | 1987-01-16 | 1997-04-23 | 三菱電機株式会社 | データ処理装置 |
US4991090A (en) * | 1987-05-18 | 1991-02-05 | International Business Machines Corporation | Posting out-of-sequence fetches |
US5134561A (en) * | 1987-07-20 | 1992-07-28 | International Business Machines Corporation | Computer system with logic for writing instruction identifying data into array control lists for precise post-branch recoveries |
US4894772A (en) * | 1987-07-31 | 1990-01-16 | Prime Computer, Inc. | Method and apparatus for qualifying branch cache entries |
JPH0646382B2 (ja) * | 1987-10-05 | 1994-06-15 | 日本電気株式会社 | プリフェッチキュー制御方式 |
US5197136A (en) * | 1987-11-12 | 1993-03-23 | Matsushita Electric Industrial Co., Ltd. | Processing system for branch instruction |
US5247628A (en) * | 1987-11-30 | 1993-09-21 | International Business Machines Corporation | Parallel processor instruction dispatch apparatus with interrupt handler |
US4974155A (en) * | 1988-08-15 | 1990-11-27 | Evans & Sutherland Computer Corp. | Variable delay branch system |
AU4212089A (en) * | 1988-09-01 | 1990-04-02 | Ronald L. YIN | An improved modular processor, a computer incorporating same, and a method of operating same |
US5333287A (en) * | 1988-12-21 | 1994-07-26 | International Business Machines Corporation | System for executing microinstruction routines by using hardware to calculate initialization parameters required therefore based upon processor status and control parameters |
US5276824A (en) * | 1990-01-08 | 1994-01-04 | Motorola, Inc. | Data processor having a multi-stage instruction pipe and selection logic responsive to an instruction decoder for selecting one stage of the instruction pipe |
JPH03288228A (ja) * | 1990-04-04 | 1991-12-18 | Koufu Nippon Denki Kk | 情報処理装置 |
US5276825A (en) * | 1991-03-12 | 1994-01-04 | Chips & Technologies, Inc. | Apparatus for quickly determining actual jump addresses by assuming each instruction of a plurality of fetched instructions is a jump instruction |
JPH05173779A (ja) * | 1991-12-25 | 1993-07-13 | Toshiba Corp | デジタル演算集積回路 |
JP2761688B2 (ja) * | 1992-02-07 | 1998-06-04 | 三菱電機株式会社 | データ処理装置 |
JP2786574B2 (ja) * | 1992-05-06 | 1998-08-13 | インターナショナル・ビジネス・マシーンズ・コーポレイション | コンピュータ・システムにおける順不同ロード動作の性能を改善する方法と装置 |
JPH0756892A (ja) * | 1993-08-10 | 1995-03-03 | Fujitsu Ltd | マスク付きベクトル演算器を持つ計算機 |
EP2104930A2 (de) | 2006-12-12 | 2009-09-30 | Evans & Sutherland Computer Corporation | System und methode zum ausgleichen des rgb-licht in einem monomodulator projektor |
US8358317B2 (en) | 2008-05-23 | 2013-01-22 | Evans & Sutherland Computer Corporation | System and method for displaying a planar image on a curved surface |
US8702248B1 (en) | 2008-06-11 | 2014-04-22 | Evans & Sutherland Computer Corporation | Projection method for reducing interpixel gaps on a viewing surface |
US8077378B1 (en) | 2008-11-12 | 2011-12-13 | Evans & Sutherland Computer Corporation | Calibration system and method for light modulation device |
US9641826B1 (en) | 2011-10-06 | 2017-05-02 | Evans & Sutherland Computer Corporation | System and method for displaying distant 3-D stereo on a dome surface |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3401376A (en) * | 1965-11-26 | 1968-09-10 | Burroughs Corp | Central processor |
FR1536616A (fr) * | 1966-09-21 | Ibm | Système de traitement d'instructions avec des perfectionnements pour le branchementet les boucles du programme | |
US3551895A (en) * | 1968-01-15 | 1970-12-29 | Ibm | Look-ahead branch detection system |
US3644900A (en) * | 1968-11-30 | 1972-02-22 | Tokyo Shibaura Electric Co | Data-processing device |
US3696340A (en) * | 1970-11-09 | 1972-10-03 | Tokyo Shibaura Electric Co | Microprogram execution control for fault diagnosis |
US3793631A (en) * | 1972-09-22 | 1974-02-19 | Westinghouse Electric Corp | Digital computer apparatus operative with jump instructions |
JPS513750A (ja) * | 1974-06-28 | 1976-01-13 | Hitachi Ltd | Deetashorisochi |
JPS52120640A (en) * | 1976-04-02 | 1977-10-11 | Toshiba Corp | Micro program control system |
JPS6029126B2 (ja) * | 1977-01-14 | 1985-07-09 | 株式会社日立製作所 | デ−タ処理装置 |
US4210960A (en) * | 1977-09-02 | 1980-07-01 | Sperry Corporation | Digital computer with overlapped operation utilizing conditional control to minimize time losses |
US4200927A (en) * | 1978-01-03 | 1980-04-29 | International Business Machines Corporation | Multi-instruction stream branch processing mechanism |
JPS54107643A (en) * | 1978-02-13 | 1979-08-23 | Toshiba Corp | Operation control method and unit executing structured program |
US4338661A (en) * | 1979-05-21 | 1982-07-06 | Motorola, Inc. | Conditional branch unit for microprogrammed data processor |
-
1980
- 1980-04-21 JP JP5256880A patent/JPS56149646A/ja active Granted
-
1981
- 1981-04-21 DE DE3116100A patent/DE3116100C2/de not_active Expired
-
1983
- 1983-11-25 US US06/554,760 patent/US4471433A/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPS6217252B2 (de) | 1987-04-16 |
JPS56149646A (en) | 1981-11-19 |
DE3116100A1 (de) | 1982-04-08 |
US4471433A (en) | 1984-09-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3116100C2 (de) | Datenverarbeitungseinheit | |
DE19527031C2 (de) | Verzweigungsprozessor für ein Datenverarbeitungssystem und Verfahren zum Betreiben eines Datenverarbeitungssystems | |
DE3210816C2 (de) | ||
DE69534148T2 (de) | Rechnersystem zur Ausführung von Verzweigungsbefehlen | |
DE69635881T2 (de) | VLIW-Befehlsprozessor mit variabler Wortlänge | |
DE4302495C2 (de) | Einrichtung und Verfahren zum Bestimmen der Länge eines Befehls in einem sequentiellen Befehlsstrom | |
DE69534113T2 (de) | Kompression der Befehlswörter eines Rechners | |
DE2714805C2 (de) | ||
DE3638572C2 (de) | ||
DE4222776C2 (de) | Parallelverarbeitungseinheit und Verfahren zum Ausführen von Befehlen | |
DE4211245B4 (de) | Prozessorsystem in Parallelverarbeitungsbauart und Verfahren zu dessen Steuerung | |
DE2715073C3 (de) | Mikroprogrammierte Rechner-Steuervorrichtung | |
DE19855806A1 (de) | Vorrichtung und Verfahren zum Durchführen von Unterprogrammaufruf- und Rücksprungoperationen | |
DE69133571T2 (de) | Datenprozessor mit der Fähigkeit, zwei Befehle gleichzeitig auszuführen | |
DE2411963B2 (de) | Datenverarbeitungsanlage | |
DE4434895A1 (de) | Verfahren und Vorrichtung zur Erholung von Ablaufunterbrechungen in einem Computersystem | |
DE19983098B4 (de) | Mehrfach-Bitanzeige zur Behandlung von Schreib-nach-Schreib-Fehlern und zur Eliminierung von Bypass-Komparatoren | |
DE4134392C2 (de) | Verfahren und Vorrichtung zum Ungültigmachen von Befehlen in Geräten mit Parallelverarbeitung | |
DE3900246C2 (de) | ||
EP0722583A1 (de) | Prozessor für zeichenketten variabler länge | |
DE3114921A1 (de) | Datenverarbeitungssystem | |
DE2927481C2 (de) | Datenverarbeitungsvorrichtung | |
DE2906685C2 (de) | ||
DE2759120C2 (de) | ||
DE2702722A1 (de) | Instruktionsinterpretation in elektronischen datenverarbeitungsanlagen |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8128 | New person/name/address of the agent |
Representative=s name: HENKEL, G., DR.PHIL. FEILER, L., DR.RER.NAT. HAENZ |
|
D2 | Grant after examination | ||
8364 | No opposition during term of opposition | ||
8327 | Change in the person/name/address of the patent owner |
Owner name: KABUSHIKI KAISHA TOSHIBA, KAWASAKI, KANAGAWA, JP |
|
8339 | Ceased/non-payment of the annual fee |