DE3116100C2 - Datenverarbeitungseinheit - Google Patents

Datenverarbeitungseinheit

Info

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
Application number
DE3116100A
Other languages
English (en)
Other versions
DE3116100A1 (de
Inventor
Hajime Wako Saitama Kurii
Yoshihiro Tokio/Tokyo Matsumoto
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Tokyo Shibaura Electric Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tokyo Shibaura Electric Co Ltd filed Critical Tokyo Shibaura Electric Co Ltd
Publication of DE3116100A1 publication Critical patent/DE3116100A1/de
Application granted granted Critical
Publication of DE3116100C2 publication Critical patent/DE3116100C2/de
Expired legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3804Instruction 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:
Vorabrufsystem
Cache-Speiche rsystcm Pipeline-Registersystcm
ρ Vorabrufoperation der Befehle
ρ Zweig — Berücksichtigungssystem
Zweig — Nichtberücksichtigungssystem
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.
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
ML A, B, C Verzweigungsadressen-Vorsignalisierbefehl.
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
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.
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.
Θ 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)

Patentansprüche:
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
DE3116100A 1980-04-21 1981-04-21 Datenverarbeitungseinheit Expired DE3116100C2 (de)

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)

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

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

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