DE3689389T2 - Datenverarbeitungsprozessor. - Google Patents
Datenverarbeitungsprozessor.Info
- Publication number
- DE3689389T2 DE3689389T2 DE86109096T DE3689389T DE3689389T2 DE 3689389 T2 DE3689389 T2 DE 3689389T2 DE 86109096 T DE86109096 T DE 86109096T DE 3689389 T DE3689389 T DE 3689389T DE 3689389 T2 DE3689389 T2 DE 3689389T2
- Authority
- DE
- Germany
- Prior art keywords
- data
- marking
- instruction
- address
- bits
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000012545 processing Methods 0.000 title description 20
- 230000015654 memory Effects 0.000 claims description 34
- 238000000926 separation method Methods 0.000 claims description 6
- 230000001419 dependent effect Effects 0.000 claims description 5
- 238000011156 evaluation Methods 0.000 claims description 5
- 230000004044 response Effects 0.000 claims description 2
- 239000003550 marker Substances 0.000 claims 4
- 238000001914 filtration Methods 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 23
- 238000000034 method Methods 0.000 description 16
- 238000006073 displacement reaction Methods 0.000 description 8
- 230000008569 process Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 5
- 238000001514 detection method Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000003936 working memory Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30061—Multi-way branch instructions, e.g. CASE
-
- 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/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- 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/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
- G06F9/30167—Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
-
- 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/30181—Instruction operation extension or modification
- G06F9/30192—Instruction operation extension or modification according to data descriptor, e.g. dynamic data typing
-
- 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/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/355—Indexed addressing
- G06F9/3557—Indexed addressing using program counter as base address
-
- 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/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4496—Unification in logic programming
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Executing Machine-Instructions (AREA)
- Devices For Executing Special Programs (AREA)
Description
- Die vorliegende Erfindung bezieht sich auf einen Datenprozessor für die Interpretation und Ausführung von Befehlen mit einer Markierung, die einen Datentyp anzeigt, und von Befehlen ohne Markierung gemäß dem Oberbegriff von Anspruch 1.
- Ein Datenprozessor dieser Art ist in "Hardware Design and Implementation of the Personal Sequential Interference Machine PSI" in Proceedings of the International Conference on Fifth Generation Computer Systems 1984 beschrieben. In dem Datenprozessor ("Computer"), der für Prolog entwickelt wurde, ist ein spezielles Bit jeder Dateneinheit für eine Markierung vorgesehen, wobei diese Markierung Information über den Datentyp beinhaltet. Bei der Verarbeitung wird die Berechnungsart aufgrund des mittels der Markierung erkannten Datentyps gewählt. Diese Markierungs- Architektur kann die Ausführung einer symbolverarbeitenden Sprache sehr effizient machen.
- Ein allgemeiner Neumann-Datenprozessor basiert demgegenüber auf einem intrinsischen Makrobefehlssatz ("Befehlssatz") und ein Befehl ist gewöhnlich zusammengesetzt aus einem Befehlscode, der die Verarbeitungsart angibt, und aus einem Operanden-Zeiger, der den Speicherplatz des zu verarbeitenden Operanden angibt. Das Operanden-Zeiger- Verfahren wird "Adressierungsverfahren" genannt und es wurde hierfür eine Vielzahl von Verfahrensarten vorgeschlagen. Diese Computer sind gemeinhin dadurch gekennzeichnet, daß der zu verarbeitende Datentyp einzig durch den Befehlscode festgelegt ist. Beispielsweise werden Daten, die im gleichen Operanden enthalten sind, durch einen Festkommabefehl so verarbeitet, als wären sie ganzzahlig, und von einem Buchstabenfeldbefehl so, als wären sie Symbole.
- Die beiden oben beschriebenen Computerarchitekturen sind unabhängig voneinander und schließen einander aus. Bei Anwendungen wie intelligence engineering jedoch sind sowohl numerische Verarbeitung, also das Hauptgebiet der ersteren, und nichtnumerische Verarbeitung, also das Hauptgebiet der letzteren, erforderlich und somit ein Computer, der sich für beides eignet. Auf der anderen Seite möchte man den Vorteil eines logischen Datenprozessors nutzen, welcher für die Verarbeitung von Markierungen geeignet ist, die den Daten angefügt werden, um bei der Ausführung eines Prädikatenlogik-Programms wie beispielsweise in Prolog die Attribute der Daten identifizieren zu können
- Gegenüber einer befehlsorientierten Sprache wie z. B. "FORTRAN", die Befehle und Daten voneinander trennt, arbeitet eine logische Sprache wie Prolog, indem die Daten ausgewertet werden. Um eine solche logische Sprache effizient gestalten zu können, werden allen Daten Felder zugeordnet, d. h. Markierungssequenzen für die Anzeige der Attribute (beispielsweise Variablen, Konstanten oder Strukturen) der Daten. Dank der Konzentration der Datenattribute auf die Markierungssequenzen kann das Verarbeitungssystem der Sprache die Daten aufgrund der Auswertung der Markierungssequenzen bearbeiten und somit die Verarbeitungseffizienz der logischen Sprache verbessern.
- Beispielsweise wird die Auswertung der Markierungssequenzen durchgeführt, indem die Markierungen der Daten in einem Datenlesepuffer gespeichert werden, wie in "Hardware Design and Implementation of the Personal Sequential Inference Machine PSI" über die o-Maschine beschrieben wurde, die 1984 vom Institute of New-Generation Computer Technique Development (abgekürzt "ICOT") veröffentlicht wurde. Gemäß dieser Struktur wird der Inhalt eines Datenlesepufferspeichers aktualisiert, wenn aus dem Speicher gelesen wird. Um eine abzufragende Markierung zu verriegeln, sind daher Befehle nötig, die die Übertragung des Inhaltes eines Datenregisters in einen Arbeitsspeicher sowie, wenn nötig, das Auslesen aus dem Datenspeicher in das Datenregister besorgen. Dies verlängert die Verarbeitungszeit, wenn eine Vielzahl von Markierungen abgefragt werden muß. Da außerdem die Länge der Markierungen auf 6 Bit festgelegt ist, können diese nicht erweitert werden.
- In "Architecture of the Symbolics 3600" von D. A. Moon in 12th Annual International Symposium on Computer Architecture, S. 76-83, Juni 1985, wird ein Computer beschrieben, der für Programme in Lisp optimiert ist. In dieser Computerarchitektur hat das Referenzobjekt eine 36-Bit-Größe, zusammengesetzt aus einem 32-Bit-Datenwort und einer Datentyp- Markierung in den oberen 2 Bit. Die Markierung bestimmt die Interpretation des Datenwortes. Das Datenwort kann in eine Datentyp-Markierung in den unteren 4 Bit aufgelöst werden und 28 Bit werden entweder als Adresse oder intermediäre Daten verwendet. Da die obere und untere Datentyp-Markierung bezüglich ihrer Bitzahl festgelegt sind, kann der Informationsinhalt der Markierungen nicht erweitert werden.
- Aufgabe der vorliegenden Erfindung ist es, einen Datenprozessor zu schaffen, welcher Befehle für markierungslose und für markierte Daten ausführen kann, und einen logischen Datenprozessor zu schaffen, welcher eine Vielzahl von Markierungen mit hoher Rate abfragen kann und diese ohne weiteres erweitern kann.
- Die Aufgabe wird gemäß der Merkmale in Anspruch 1 gelöst. Weitere Entwicklungen und Vorzüge sind Inhalt der abhängigen Ansprüche 2 bis 6.
- Um Befehle für markierungslose und markierte Daten gemeinsam in einem Computer interpretieren und ausführen zu können, ist ein Verfahren denkbar, bei dem die beiden Befehlsarten aufgeteilt werden in Befehlssätze unter schiedlicher Art und bei welchem jedem Befehlssatz ein Befehl für den Übergang zur anderen Art angehört. Jedoch kann bei häufigem Wechsel der Art der hohe zusätzliche Aufwand nicht vernachlässigt werden. Bei der vorliegenden Erfindung können daher die beiden Befehlsarten voneinander unterschieden werden durch Anfügen eines Bits an den Befehl, welches anzeigt, ob der Befehl markierte Daten betrifft oder nicht, und durch Schaffung eines Befehlsdecoders mit einer Vorrichtung für eine derartige Abfrage.
- Wenn es beabsichtigt ist, die markierungslosen und die markierten Daten im gleichen Computer zu speichern, müssen beide Wortlängen einander angeglichen werden. Im Fall einer 32-Bit-Maschine nehmen die Daten beispielsweise eine aufgeblähte Form wie in Fig. 4 an, die später beschrieben wird. Hier müssen die 32-Bit-Daten extrahiert werden mit einem Zeiger (C), der in Fig. 3 gezeigt ist.
- Um ein Programmodul, das einen solchen Datentyp enthält, als Ganzes verschiebbar zu machen, darf der Wert des Zeigers keine absolute Adresse sein, sondern muß vom PC (d. h. Programmzähler) abhängig sein oder basisadressenabhängig sein.
- Bei Befehlen bezüglich markierter Daten, bei denen dieser Datentyp unmittelbare Daten darstellt, kann der Zeigerwert durch Addieren des PC oder des Basiswertes zum Zeiger berechnet werden, wenn die Berechnungsadresse bestimmt werden soll. Für eine solche erfindungsgemäße Berechnung ist eine Adressierungsart vorgesehen, welche wie oben beschrieben nur für Befehle für markierte Daten anwendbar ist. Wenn außerdem erfindungsgemäß den Daten aus dem Speicher eine Erweiterung angefügt ist, wird diese Erweiterung von den Daten entfernt und eine Markierungssequenz wird gesichert und in einem Register abgespeichert.
- Fig. 1 zeigt ein Blockdiagramm des inneren Aufbaus eines Datenprozessors gemäß einer Ausführungsform der vorliegenden Erfindung;
- Fig. 2 zeigt ein Diagramm zur Erläuterung der Mehrzweckregister, wie sie in der vorliegenden Erfindung verwendet werden;
- Fig. 3 zeigt in den Sektionen (a) bis (d) in der vorliegenden Erfindung verwendete Datentypen;
- Fig. 4 zeigt in einem Diagramm spezielle Beispiele von markierten Daten;
- Fig. 5 zeigt in einem Diagramm das Format eines ausführbaren Befehls in der vorliegenden Erfindung;
- Fig. 6 zeigt in einem Diagramm Einzelheiten der Adressierungsart, die in Fig. 5 zur Erläuterung dient;
- Fig. 7 zeigt in einem Diagramm die Verschiebungsarten (disp) in Fig. 5;
- Fig. 8 zeigt in Sektionen (a) bis (j) Einzelheiten des Operanden;
- Fig. 9 zeigt in einem Diagramm den Gesamtaufbau eines Computers, bei dem die vorliegende Erfindung eingesetzt wurde;
- Fig. 10 zeigt ein Blockdiagramm einer Ausführungsform eines Befehlsdecoders in Fig. 1;
- Fig. 11 zeigt einen Schaltplan einer Ausführungsform einer Befehlsdetektorschaltung 133 für markierte Daten in Fig. 10;
- Fig. 12 zeigt ein Blockdiagramm für ein spezielles Beispiel einer Markierungszeiger-Separierungsschaltung in Fig. 1;
- Fig. 13 zeigt ein Schaltbild eines speziellen Beispiels eines Markierungstrennschaltkreises in Fig. 12,
- Fig. 14 zeigt den Schaltplan eines speziellen Beispiels einer in Fig. 12 gezeigten Zeigertrennschaltung;
- Fig. 15 zeigt den Schaltplan einer speziellen Schaltung zur Markierungslängenerkennung, wie in Fig. 1 gezeigt;
- Fig. 16 zeigt den Schaltplan eines speziellen Beispiels einer in Fig. 1 gezeigten Markierungstrennschaltung;
- Fig. 17 zeigt ein Schaltbild eines speziellen Beispiels eines Datentrennschaltkreises in Fig. 1;
- Fig. 18 zeigt ein Schaltbild eines speziellen Beispiels einer Arithmetikeinheit in Fig. 1;
- Fig. 19 zeigt ein Blockdiagramm des inneren Aufbaus einer Mikroprogrammsteuerung in Fig. 1;
- Fig. 20 zeigt in den Sektionen (A) bis (C) verschiedene Adreßtypen für den Speicher der Mikroprogrammsteuerung;
- Fig. 21 zeigt ein Blockdiagramm zur Erläuterung des Ablaufs, wenn das Mikroprogramm je nach Markierungsabfrage die Verarbeitung fortsetzt;
- Fig. 22 zeigt ein Schaltbild eines speziellen Beispiels einer Eingangsverarbeitungsschaltung in Fig. 1;
- Fig. 23 zeigt in Sektionen (A) bis (C) eine Wahrheitstabelle, die zur Erläuterung der Arbeitsweise einer Markierungsabfrageschaltung in Fig. 1 dient;
- Fig. 24 zeigt ein Schaltbild des internen Aufbaus einer Sprungziel-Modifikationsschaltung in Fig. 1;
- Fig. 25 zeigt in Sektionen (a) und (b) die spezielle Ausführung der Befehle;
- Fig. 26 zeigt in den Sektionen (a) und (b) eine spezielle Ausführungsform der Befehle, wie sie in der vorliegenden Erfindung verwendet werden;
- Fig. 27 zeigt in Sektionen (a) bis (d) die Daten an verschiedenen Punkten, was zur Erläuterung eines Beispiels dient, das die Durchführung von Befehlen für nichtmarkierte Daten gemäß der Erfindung beschreibt;
- Fig. 28 zeigt in Sektionen (a) bis (d) die Daten an verschiedenen Punkten, was zur Erläuterung der Beispiele dient, die die Durchführung von Befehlen für markierte Daten gemäß der Erfindung beschreiben;
- Fig. 29 zeigt ein Blockdiagramm für ein Anwendungsbeispiel der vorliegenden Erfindung und
- Fig. 30 zeigt ein Beispiel eines Prolog-Programmes für die Erläuterung des Ablaufes in Fig. 29.
- Die Erfindung wird im folgenden anhand von Beispielen und mit Bezug auf die Zeichnungen beschrieben.
- Unter den Registern in einem Datenprozessor für markierte Daten (im folgenden Computer genannt) sind in Fig. 2 Register im Computer gezeigt, welche als Operanden eines Makrobefehls (welcher kurz Befehl genannt wird) bezeichnet werden können. Es gibt dreiunddreißig Register, welche alle eine Tiefe von 32 Bit haben. Ausgenommen den Programmzähler PC sind alle übrigen Register ER0 bis ER15 und AR0 bis AR15 sogenannte Mehrzweckregister. Die Zahl der Register ist unwesentlich für die vorliegende Erfindung, aber die Beschreibung geht von dreiunddreißig Registern aus.
- Fig. 3 zeigt die im Computer verwendeten Datentypen, wobei die Länge eines Basiswortes 32 Bit ist.
- Fig. 3 (a) zeigt unmarkierte Daten, wie sie häufig in gewöhnlichen Computern verwendet werden. Fig. 3 (b) zeigt eine erste markierte Dateneinheit mit k Bit, die den Datentyp beschreiben, und Daten von (31-k) Bit, welche zu einem Wort aufgefüllt wurden. Bei der vorliegenden Erfindung ist die Bitzahl der Markierung unwesentlich, das Beispiel (a) in Fig. 3 geht von k = 8 aus. Fig. 3 (c) zeigt ein zweites markiertes Datenwort, in welchem die ersten 32 Bit (im folgenden "Zeigerwort" genannt) abgeabgespeichert sind mit einer Markierung aus l Bit, die den Datentyp des Datenkörpers und eine Speicheradresse (oder Zeiger) von (31-l) Bit für den Datenkörper anzeigt. Die Daten liegen also in dem Speicher vor, der mit dem Zeiger bezeichnet ist. Wie oben gesagt, ist bei der vorliegenden Erfindung die Bitzahl der Markierung unwesentlich und in der Beschreibung wird davon ausgegangen, daß in diesem Beispiel l = 4 ist. Andererseits können die durch den Zeiger bezeichneten Daten statt 32 Bit 64 Bit oder mehr haben. Fig. 3 (d) zeigt dritte markierte Daten mit einem Zeigerwort, in welchem eine Markierung von l Bit und ein Zeiger von (31-l) Bit für die ersten, zweiten oder dritten markierten Daten abgespeichert ist.
- Fig. 4 zeigt spezielle Beispiele von markierten Daten. Die Beispiele 1 bis 4 beinhalten jeweils "nil", "variable", "atom" und "short-integer", die sich auf die ersten markierten Daten beziehen. Die Beispiele 5 bis 7 beinhalten jeweils "long-integer" , "big-number" und "double-floating" und beziehen sich auf die zweiten markierten Daten. Die Beispiele 8 bis 11 beinhalten jeweils "reference", "structure" , "list" und "undefine" und beziehen sich auf die dritten markierten Daten. In den obigen Beispielen 5 bis 7, die sich auf die zweiten markierten Daten beziehen, und den Beispielen 8 bis 11, die sich auf die dritten markierten Daten beziehen, werden die oberen vier Bit als Markierungssequenz verwendet und die übrigen Bits als Datenbits. Die 4-Bit-Markierungssequenz wird als gewöhnliche Markierung bezeichnet.
- In den obigen Beispielen 1 bis 4, die sich auf die ersten markierten Daten beziehen, wird ein Muster "1111" der oberen vier Bit als eine Erweiterung einer vollständigen Markierung verwendet und die folgenden vier Bit werden als Markierungssequenz verwendet. Die gewöhnliche Markierung wird wie beschrieben verwendet für Daten großer Länge und die vollständige Markierung wird verwendet für Daten kurzer Länge um somit die Markierung zu verlängern. Da die Markierungslänge wie oben beschrieben vergrößert oder verkleinert werden kann, ist es einfach einen neuen Datentyp einzuführen.
- Fig. 5 zeigt das Format eines Befehls, der von einem Computer in der vorliegenden Ausführungsform ausgeführt werden kann. Der Befehl ist aus einem Befehlswort 50 (abgekürzt "OPW") von 16-Bit-Länge und einem Operandenzeiger oder -spezifizierer (abgekürzt "OPS") von 16-Bit- Länge oder mehr, der den Speicherplatz des zu verarbeitenden Operanden angibt, zusammengesetzt.
- Das OPW 50 hat wenigstens ein Feld, das die Art der Verarbeitung anzeigt und ein Feld, das anzeigt, ob der Befehl markierte Daten verarbeiten kann oder nicht. Bei dieser Ausführungsform kann der Befehl mit den oberen 9 Bit "111111100" in dem OPW 50 markierte Daten verarbeiten und der Befehl hierzu ist bezeichnet durch die unteren 7 Bit im OPW 50. Der OPS 51 ist zusammengesetzt aus einer Typenbezeichnung EA 52, die die Adressenart angibt, und einer Verschiebung DISP 53, die zur Adressenberechnung dient.
- Fig. 6 zeigt Einzelheiten der EA 52, die Berechnungsweise der Operandenadresse in jeder Adressierungsart wird im folgenden mit Bezug auf die Fig. 7 und 8 beschrieben.
- Mit dem Modus "000", "001" und "010" in MOD 55 wird die "direkte und indirekte Registeradressierung" bezeichnet, die dem Fachmann bekannt ist. Mit "011" in MOD 55 wird die "Autoinkrementadressierung" bezeichnet. Wie in Fig. 8 (d) gezeigt, wird der Wert 2 zu dem mit REG NO 56 bezeichneten Register addiert, wenn Sz 54 0 wird und der Wert 4 wird zu dem mit REG NO 56 bezeichneten Register addiert, wenn Sz 54 1 wird. Mit "100" in MOD 55, wird die "Autodekrement-Adressierung" bezeichnet, bei welcher die Verarbeitung im Autoinkrement wie in Fig. 8 (e) gezeigt umgedreht wird.
- Mit "101" in MOD 55 wird die "registerbezogene" Adressierungsart bezeichnet, bei welcher DISP 53 dem Verschiebungstyp I in Fig. 7 entspricht, wenn Sz 54 0 ist (Null), und zum mit REG NO 56 bezeichneten Register addiert wird. Für Sz 54 = 1 wird andererseits der Verschiebungstyp II addiert, um die Operandenadresse im Speicher zu berechnen.
- Die Adressierungsart mit MOD 55 "111" und REG NO 56 "0000" wird "absolut" genannt. Für Sz 54 = 0 entspricht wie in Fig. 8 (g) gezeigt DISP 53 dem Verschiebungstyp I, welcher so wie er ist als Operandenadresse im Speicher verwendet wird. Für Sz 54 = 1 entspricht dagegen der Verschiebungstyp II selbst der Operandenadresse im Speicher.
- Die Adressierungsart mit MOD 55 "111" und REG NO 56 "0001" wird "unmittelbar" genannt. Wie in Fig. 8 (h) gezeigt, entspricht für SZ 54 = 0 DISP 53 dem Verschiebungstyp I in Fig. 7, welcher selbst einem Operanden entspricht. Für Sz = 1 dagegen entspricht der Verschiebungstyp II selbst einem Operanden.
- Die Adressierungsart mit MOD 55 "111" und REG NO 56 "0101" wird "Programmzählerbezug" genannt und erfordert wie in Fig. 8 (i) gezeigt eine Operandenadressen-Berechnungsroutine ähnlich der bei der registerbezogenen Adressierungsart.
- Die Adressierungsart mit MOD 55 "111" und REG NO 56 "0111" ist eine Besonderheit der vorliegenden Erfindung und wird in der vorliegenden Ausführung "markierte unmittelbare Adressierungsart" genannt. Bei dieser markierten unmittelbaren Adressierungsart entspricht wie in Fig. 8 (j) gezeigt DISP 53 dem Verschiebungstyp III in Fig. 7, d. h. dem Typ mit einer Markierung von 4 Bit und einem Zeiger von 28 Bit, und der Operand ist vom zweiten Typ, in welchem der Zeiger eine Summe vom 28-Bit-Zeiger und Wert des Programmzählers wie in Fig. 3 gezeigt heranzieht.
- Bei der vorliegenden Ausführungsform wird das im markierten unmittelbaren Adreßtyp verwendete Register als auf den Programmzähler bezogen beschrieben. Es ist jedoch offensichtlich, daß das oben genannte Mehrzweckregister oder ein anderes Register, das nicht in der vorliegenden Ausführungsform beschrieben ist, für den markierten unmittelbaren Adreßtyp benutzt werden kann.
- Fig. 9 zeigt den Gesamtaufbau des oben genannten Computers, welcher beide Befehlsarten, und zwar für die markierten Daten und für die unmarkierten Daten, ausführen kann. Bezugsziffer 100 bezeichnet eine befehlsausführende Einheit (welche mit "BPU" abgekürzt ist) für die Interpretation und Ausführung der oben erwähnten Befehle. Ziffer 800 bezeichnet eine Speichereinheit (abgekürzt "MM") für das Abspeichern der oben erwähnten Befehle oder Daten. Ziffer 500 bezeichnet einen Speicheradressenbus (abgekürzt "ADRBUS") mit einer Breite von 32 Bit und Ziffer 600 bezeichnet einen Speicherdatenbus (abgekürzt "DATBUS") mit einer Breite von 32 Bit. Da sich die vorliegende Erfindung auf die BPU 100 bezieht, wird der interne Aufbau der BPU 100 im folgenden im einzelnen beschrieben.
- Fig. 1 ist ein Blockdiagramm des internen Aufbaus der BPU 100.
- Ein Befehlspufferregister (IBR) 110 speichert den Befehl, welcher über DATBUS 600 aus MM 800 geholt wurde. Eine Ausrichtungsvorrichtung (ALN) 120 ergänzt das OPW 59, die EA 52 und die DISP 53 aufgrund des Befehls in IBR 110, so daß OPW 50, EA 52 und DISP 53 auf die Signalleitungen 350, 355 bzw. 340 ausgegeben werden.
- Ein Befelsdecoder (INSDEC) 130 erzeugt Eingangsadressen für die Berechnung der Adressen und für die Ausführung der Befehle entsprechend der Information, die über die Signalleitungen 355 und 350 eingelesen wird und gibt sie auf die Signalleitungen 360 bzw. 460 aus. Eine Steuerschaltung (A-CTL) 140 berechnet die Adresse und gibt auf der Signalleitung 370 eine "1" aus, wenn die Verarbeitung im markierten unmittelbaren Adreßtyp abläuft. Die A-CTL 140 erzeugt auch Steuersignale für eine Register- Datei (ARF) 180 und eine Adreßrechner-Arithmetikeinheit (A-ALU) 190 zusätzlich zu dem Signal auf Signalleitung 370, wobei diese Steuersignale hier jedoch nicht beschrieben werden, da sie für das Verständnis der vorliegenden Erfindung unerheblich sind.
- Ein Markierungslängendetektor (TL) 153 wird verwendet, um die Länge der Markierung im DISP 53 zu prüfen und auf der Signalleitung 159 eine "1" auszugeben, wenn eine Markierung 8 Bit lang ist.
- Eine Trennschaltung (SEP) 160 trennt eine Markierung und einen Zeiger von der Verschiebung auf der Signalleitung 340 und gibt die Markierung auf einer Signalleitung 380 und den Zeiger auf einer Signalleitung 400 aus, wenn beide Signalleitungen 370 und 159 auf "1" liegen. Im andern Fall werden die Daten auf der Signalleitung 340 auf der Signalleitung 400 ausgegeben so wie sie sind.
- Ein Programmzähler (PC) 170 und eine Registerdatei (ARF) 180, bestehend aus physikalischen Registern AR0 bis AR15, bilden den Registersatz in Fig. 2. Die arithmetische Einheit (A-ALU) 190 dient zur Adreßberechnung.
- Ein Register (TAG) 200 ist dafür ausgelegt, die durch SEP 160 abgetrennte Markierung festzuhalten und die Markierung des Operanden im markierten unmittelbaren Adreßmodus zu speichern.
- Ein Register (IMR) 210 ist dafür ausgelegt, im markierten unmittelbaren Adreßmodus einen neuen Zeiger zu speichern, welcher sich durch Addieren des PC 170 und des durch die SEP 160 angetrennten Zeigers ergibt. Im unmittelbaren Modus andererseits speichert dieses Register unmittelbare Daten. Gemäß der vorliegenden Ausführungsform ist der Operand im markierten unmittelbaren Adressierungsmodus physikalisch präsent in TAG 200 und IMR 210.
- Die Registerdatei (ERF) 220 besteht wie oben erwähnt physikalisch aus den Registern ER0 bis ER15 in Fig. 2.
- Eine arithmetische Einheit (E-ALU) 230 hat zusätzlich zu den normalen arithmetischen und logischen Funktionen die Funktion, die Länge einer von der Signalleitung 430 eingelesenen Markierung durch TL 152 prüfen zu lassen, wenn auf der Signalleitung 465 eine "1" anliegt, und die Markierung bei den Daten aufzufüllen, die von der Signalleitung 445 entsprechend dem Wert auf der Signalleitung 158 eingelesen wurden, und damit die Daten zu markierten Daten zu machen.
- Wenn auf der Signalleitung 475 eine "1" anliegt, maskiert die Datentrennschaltung 240 die Markierung der markierten Daten, die von ESAB 440 gemäß dem Ergebnis aus dem Markierungslängendetektor TL 151 eingelesen wurde, und gibt den Datenteil auf der Signalleitung 445 aus.
- Eine Trennschaltung (TAG-EXT) 250 trennt lediglich eine durch TL 150 geprüfte Markierung von den markierten Daten ab, die von ESBB 430 eingelesen wurden, und gibt wie mit 251 angedeutet die abgetrennte Markierung aus. Die also so durch TAG-EXT 250 abgetrennte Markierung wird in einem Markierungsregister (TAGR) 260 gespeichert, wenn auf der Signalleitung 455 eine "0" anliegt, und in einem Markierungsregister (TAGR) 270, wenn auf der Signalleitung 455 eine "1" anliegt. Einzelheiten von TAG-EXT 250 werden weiter unten beschrieben.
- Ein Selektor (SEL) 280 wählt eine der von TAGR 260, TAGR 270 und EC-CTL 290 ausgegebenen Markierungen entsprechend dem Signal auf der Leitung 470 aus und gibt es an die oberen acht Bit von ESBB 430 aus.
- Eine Steuerschaltung (E-CTL) 290 für die Ausführung der Befehle erzeugt Steuersignale entsprechend einem Mikroprogrammsteuersystem.
- Ein Status-Flag (RMB) 300 dient dazu, den Zustand von BPU 100 anzuzeigen, d. h. beispielsweise den Lesemodus mit "0" und den Schreibmodus mit "1".
- Ein Speicheradreßregister (MAR) 310 zum Verriegeln .der Adresse des Speichers speichert die Operandenadresse, die durch die Adreßberechnung bestimmt wurde. Das Speicheradreßregister MAR speichert den Zeiger des Zeigerwortes im markierten unmittelbaren Adreßmodus.
- Ein Speicherschreibdatenregister (MWR) 320 verriegelt die Daten, die in MM 800 geschrieben werden sollen und ein Operandenpufferregister (OBR) 330 verriegelt die Daten, die von MM 800 ausgelesen wurden.
- Die genaue Beschreibung der für das Verständnis der vorliegenden Erfindung wesentlichen jeweiligen Blöcke wird im folgenden gegeben.
- ISNDEC 130 hat beispielsweise den folgenden in Fig. 10 dargestellten Aufbau und ist versehen mit wenigstens einer Vorrichtung für die Überprüfung, ob ein Befehl markierte Daten betrifft oder nicht. Ein Eingangsadressengenerator 131 wird durch das Ausgangssignal auf Leitung 134 vom Detektor 133 für markierte Datenbefehle gesteuert und erzeugt entsprechend dem Befehl mit unmarkierten Daten und dem Befehl mit markierten Daten unterschiedliche Eingangsadressen auf der Signalleitung 460. Auf der anderen Seite erzeugt ein Eingangsadreßgenerator 132 für A-CTL eine Eingangsadresse für die Adreßberechnung in Übereinstimmung mit EA 52 in den Befehlen. Wenn auf der Ausgangssignalleitung 134 eine "0" anliegt, wird der markierte unmittelbare Adreßmodus unbrauchbar, so daß keine Eingangsadresse erzeugt wird.
- Die Eingangsadreßgeneratoren 131 und 132 können leicht vom Fachmann mit einem programmierbaren Logikarray (PLA) od. dgl. aufgebaut werden. Andererseits kann der Detektor für markierte Datenbefehle 133 beispielsweise nach der Schaltung in Fig. 11 der vorliegenden Ausführungsform aufgebaut sein. In Fig. 11 ist die Signalleitung 352 für die oberen 9 Bit der 16 Bit im OPW 50 des Befehls und die Signalleitung 351 für die restlichen Bits vorgesehen. Die Bezugsziffern 1330 und 1331 bezeichnen Negierer, die Bezugsziffer 1332 bezeichnet eine UND-Logik. Auf der Signalleitung 134 liegt eine "1" für den Befehl mit markierten Daten und eine "0" für andere Befehle an.
- Die Markierungs- und Zeiger-Trennschaltung SEP 160 ist aufgebaut wie in Fig. 12 gezeigt und trennt die Markierung und den Zeiger von der Verschiebung auf der Signalleitung 340, wenn das Steuersignal 370 von A-CTL 140 auf "1" liegt, und gibt diese auf den Signalleitungen 380 bzw. 400 aus.
- Hier kann eine Markierungstrennschaltung 161 bei der vorliegenden Ausführungsform nach der Schaltung in Fig. 13 aufgebaut werden. In Fig. 13 werden die oberen 8 Bit auf der Signalleitung 340 auf die Signalleitung 344 ausgegeben und die Markierung wird auf der Signalleitung 380 ausgegeben, wenn die Signalleitung 370 auf "1" liegt.
- Andererseits kann eine Zeigertrennschaltung 162 bei der vorliegenden Ausführungsform nach der Schaltung in Fig. 14 aufgebaut werden. In Fig. 14 werden die unteren 24 Bit auf der Signalleitung 340 auf die Signalleitung 343 ausgegeben und das 28. und 24. Bit der Signalleitung 340 wird auf die Signalleitungen 346 bzw. 347 ausgegeben.
- Die Zeigertrennschaltung 162 gibt codierte vollständige Daten des 24-Bit-Zeigers auf ASBB 400 aus, wenn der Ausgang von TL 153 auf "1" liegt und wenn die Signalleitung 370 auf "1" liegt, d. h. die 8-Bit-Markierung und codierte vollständige Daten des 28-Bit-Zeigers erscheinen auf ASBB 400, wenn der Ausgang von TL 153 auf "0" liegt. Wenn die Signalleitung 370 auf "0" liegt, wird der Wert auf der Signalleitung 340 an ASBB 400 ausgegeben.
- Die Markierungslängendetektorschaltung TL 153 ermittelt, ob die Markierung in den markierten Daten 8 oder 4 Bit lang ist und kann bei der vorliegenden Ausführungsform nach dem Schaltbild in Fig. 15 aufgebaut werden. In Fig. 15 empfängt die Signalleitung 344 die oberen 4 Bit der Signalleitung 340, die durch eine UND-Logik 155 verknüpft werden. TL 153 gibt auf der Ausgangssignalleitung 159 eine "1" aus, wenn eine 8-Bit-Markierung vorliegt, d. h. die oberen 4 Bit der markierten Daten in Fig. 4 "1111" sind, und "0" für die 4-Bit-Markierung.
- Bei der vorliegenden Ausführungsform werden neben TL 153 auch die Markierungslängenerfassungsschaltungen TL 150, TL 151 und TL 152 eingesetzt, welche alle identisch zu TL 153 in bezug auf Funktion und internen Aufbau sind.
- Die Markierungstrennschaltung TAG-EXT 250 kann bei der vorliegenden Ausführungsform nach der Schaltung in Fig. 16 aufgebaut werden. In Fig. 16 werden die oberen 8 Bit von ESBB 430 über die Signalleitung 434 empfangen und bei einer 8-Bit-Markierung, d. h. wenn die Signalleitung 156 auf "1" liegt, wird die Signalleitung 434 mit der Signalleitung 251 verbunden, um die 8-Bit-Markierung weiterzuleiten. Bei einer 4-Bit-Markierung, d. h. wenn die Signalleitung 156 auf "0" liegt, empfängt andererseits die Signalleitung 251 auf den oberen 4 Bit "0000" und auf den unteren 4 Bit eine Markierung.
- Die Datentrennschaltung MSK 240 kann bei der vorliegenden Ausführungsform nach der Schaltung in Fig. 17 aufgebaut werden. In Fig. 17 werden die oberen 8 Bit von ESAB 440 über die Signalleitung 442 empfangen. Liegt der Ausgang 157 von TL 151 auf "1" und das Datentrennsteuersignal 475 von E-CTL 290 auf "1", d. h. es liegt eine 8-Bit-Markierung vor, so wird auf die Signalleitung 445 lediglich der Datenteil ausgegeben, bei welchem die oberen 8 Bit maskiert sind. Wenn zu diesem Zeitpunkt der Ausgang 157 von TL 151 auf "0" liegt, wird auf den Ausgang 445 der Datenteil mit 28 Bit ausgegeben, bei welchem nur die oberen 4 Bit maskiert sind. Wenn auf der Signalleitung 475 eine "0" anliegt, werden die Daten auf ESAB 440 auf die Signalleitung 445 so wie sie sind ausgegeben.
- Die Markierungsauffüllschaltung kann durch eine Funktion der Arithmetikeinheit E-ALU 230 dargestellt werden und kann bei der vorliegenden Ausführungsform mit einer Schaltung nach Fig. 18 in E-ALU 230 umgesetzt werden. In Fig. 18 werden Daten mit aufzufüllenden Markierungen auf die Signalleitung 445 weitergeleitet; die oberen 4 Bit der Signalleitung 445 werden an eine Signalleitung 447 weitergeleitet; die unteren 24 Bit werden an eine Signalleitung 448 weitergeleitet; die übrigen Bits werden an eine Signalleitung 446 weitergeleitet. Die aufzufüllenden Daten werden an die Signalleitung 432 weitergeleitet. Wenn dann der Ausgang 158 von TL 152 auf "1" liegt und wenn das Markierungsauffüllsteuersignal 465 von E-CTL 290 auf "1" liegt, d. h. die Markierung 8 Bit lang ist, werden die unteren 24 Bit der Signalleitung 445 ausgegeben an die unteren 24 Bit des Ausgangs 450 und die Signalleitung 432 wird mit den oberen 8 Bit des Ausgangs 450 verbunden. Wenn zu dieser Zeit der Ausgang 158 von TL 152 auf "0" liegt, dann werden die unteren 28 Bit der Signalleitung 445 an die unteren 28 Bit des Ausgangs 450 weitergeleitet und die unteren 4 Bit der Signalleitung 432 werden an die oberen 4 Bit des Ausgangs 450 weitergeleitet. Wenn das Markierungsauffüllsteuersignal 465 auf "0" liegt, dann werden andererseits alle Ausgänge 450 auf "0" gelegt.
- Fig. 19 zeigt den internen Aufbau der Steuerschaltung 290. E-CTL 290 ist eine Steuerschaltung des Mikroprogrammsteuertyps für die Erzeugung einer Vielzahl von Steuersignalen zur Ausführung von Befehlen. Sie Steuerschaltung hat im allgemeinen mehr Komponenten und Signalleitungen als in Fig. 19, die aber nicht dargestellt sind, da sie keinen direkten Bezug zu der vorliegenden Erfindung haben.
- In Fig. 19 speichert der Steuerspeicher (CS) 296 ein Mikroprogramm. Das Mikroprogramm, ausgelesen vom CS 296, ist verriegelt in einem Mikrobefehlsregister (MID) 295. Ein Mikroprogrammadressenselektor 297 wählt die Adresse des Steuerspeichers an, die nacheinander über die Signalleitungen 299, 301, 303 und 305 entsprechend dem Inhalt auf der Signalleitung 298 eingelesen werden.
- Ig. 20 zeigt in den Sektionen (A) bis (C) die jeweiligen auf diese Art auszuwählenden Adreßtypen. Von diesen wird in Sektion (A) eine direkte Bezeichnung gezeigt, bei welcher die Verzweigungsadresse 303 in einem Mikrobefehl als nächste Leseadresse des Speichers benutzt wird und in Sektion (B) ist eine Adresseninkrementierung bezeichnet, bei welcher die aktuelle Leseadresse des Speichers 296 durch den Inkrementor 294 zur nächsten Leseadresse 205 im Speicher 296 hochgezählt wird. Sektion (C) in Fig. 20 zeigt eine Adresse 301, welche aus dem Teil 303-A der Verzweigungsadresse 303 und einer Sprungadresse 302 von außerhalb zusammengesetzt ist und welche als Leseadresse verwendet wird. Die bedingte Verzweigung aufgrund von Markierungen gemäß der vorliegenden Erfindung wird herbeigeführt durch Erneuerung der Leseadresse des Speichers 296 in Übereinstimmung mit der Adresse in Fig. 20 (C). In Fig. 21 wird das Verfahren geschildert, wenn eine Markierung überprüft wird und das Mikroprogramm sich zur entsprechenden Verarbeitungen gemäß dem Inhalt der überprüften Markierung verzweigt.
- Wie aus Fig. 21 hervorgeht, erscheint gesteuert vom Mikrobefehl 129 mit einem Modus für die Vorbereitung des Adreßtyps in Fig. 2b (C) der gefilterte Inhalt der Markierung als Sprungadresse 302 mit 3 Bit (0 bis 2), so daß einer der Verarbeitungszweige O bis 7 mit dem gefilterten Inhalt der Markierung durch wiederholten Zugriff auf den Speicher 296 entsprechend der die Sprungadresse 302 enthaltenden Adresse ausführt. Genauer gesagt, wenn der Mikrobefehl 129 aus dem Speicher 296 ausgelesen wird und in das Mikrobefehlsregister 295 eingegeben wird, dann wird der Selektor 297 durch das Signal 298 von dem Mikrobefehlsregister 295 gesteuert, so daß die Adresse 301 entsprechend vom Selektor 297 ausgegeben wird. In dem der Abarbeitung des Mikrobefehls 129 folgenden Maschinenzyklus wird die Verarbeitung in einem der Verarbeitungszweige 0 bis 7 entsprechend dem Wert der Sprungadresse 302 der Adresse 301, die durch den Selektor 297 ausgewählt wurde, abgearbeitet. Eine Eingangsmodifikationsschaltung 291 ist eine Schaltung für die Modifikation der Eingangsadresse 460 von E-CTL 290 in Übereinstimmung mit dem Wert RMB 300 und kann in der vorliegenden Ausführungsform nach dem Schaltbild in Fig. 22 aufgebaut werden. In Fig. 22 wird das niedrigste Bit der Eingangsadresse 460 an die Signalleitung 461 weitergeleitet, wogegen die restlichen Bits an die Signalleitung 462 weitergeleitet werden. Wenn die Eingangsadresse der um den Wert RMB 300 zu modifizierenden Befehle von INSDEC 130 erzeugt wird, wird sie von einer Befehlsgerüstdetektorschaltung 2910 erfaßt und die Signalleitung 2911 nimmt den Wert "1" an, so daß das niedrigste Bit der Adresse 299, die zuerst von CS 296 ausgelesen werden soll, den Ausgang 496 von RMB 300 bestimmt. Wenn der Ausgang der Befehlsgerüsterfassungsschaltung 2910 den Wert "0" annimmt, bleibt die Adresse 299 intakt für die Ausgabe der Eingangsadresse 460. Obgleich das niedrigste Bit bei der vorliegenden Ausführungsform geändert wird, ist es offensichtlich, daß andere Bits modifiziert werden können.
- In Übereinstimmung mit einem Testmuster 304, erzeugt durch ein Mikroprogramm, erzeugt eine Markierungsüberwachungsschaltung 293 einen Versatz 302 zum Modifizieren der Sprungadresse 303 des Mikroprogramms durch Kombination der Ausgänge 490 und 495 der Markierungsregister. Die Markierungsüberwachungsschaltung 293 kann bei der vorliegenden Ausführungsform mit Logikschaltungen mit in Fig. 23 (A) bis (C) gezeigten Funktionen umgesetzt werden. Die Logigktabellen in Fig. 23 können einfach mit ROM (read only memory), RAM (random access memory), PLA (programmable logic array) usw. umgesetzt werden.
- Eine Sprungziel-Modifikationsschaltung 292 ist eine Schaltung für die Erzeugung einer Sprungadresse, welche den Abstand 302 hat, basierend auf der Sprungadresse 303, die durch das Mikroprogramm erzeugt wurde, wobei diese Schaltung den sog. multi-way-Sprung erlaubt. Die Sprungziel-Modifikationsschaltung 292 kann bei der vorliegenden Ausführungsform nach der Schaltung in Fig. 24 aufgebaut werden. In Fig. 24 liegen auf der Signalleitung 3031 die unteren 4 Bit der Sprungadresse 303 an, während auf der Signalleitung 3032 die restlichen Bits anliegen. Eine logische Summe der Signalleitungen 3031 und des Versatzes 302 wird an die unteren 4 Bit der Sprungadresse 301 am Ausgang ausgegeben.
- Als nächstes werden Beispiele für die Ausführung von Befehlen für unmarkierte Daten und von Befehlen für markierte Daten beschrieben.
- Die Beschreibung eines Beispiels für Befehle für unmarkierte Daten wird anhand des Load-Befehls vorgenommen. Ein Load- Befehl ist in Fig. 25 (a) gezeigt und ist ein Befehl für die Übertragung von Daten in einem Operanden, der durch den Operandenbezeichner 1 bezeichnet ist, zu einem Operanden, der durch den Operandenbezeichner 2 bezeichnet ist, und der Operationscode ist in Fig. 26 (a) gezeigt. Bei der vorliegenden Ausführungsform ist der Adressenmodus des Operandenbezeichners 1 der 32-Bit-unmittelbar-Typ und der Adressenmodus des Operandenbezeichners 2 ist der Direktregister-Typ.
- Der Load-Befehl wird aus MM 800 ausgelesen und in der in Fig. 27 (a) gezeigten Form in IBR 110 abgespeichert. Dann werden der Operationscode und der Modusbezeichner durch die Angleichungsvorrichtung 120 auf die Signalleitung 350 ausgegeben (siehe Fig. 27 (b)) und vom Befehlsdecoder INSDEC 130 eingelesen. Die oberen 9 Bit des Operationscodes werden von der Befehlsdetektorschaltung für markierte Daten 133 eingelesen, in welcher geprüft wird, ob es sich um unmarkierte Datenbefehle handelt, und dann auf der Signalleitung 134 eine "0" ausgegeben wird. Daraufhin gibt der E-CTL-Eingangsadreßgenerator 131 die Eingangsadresse des Laod-Befehls für unmarkierte Daten auf der Signalleitung 460 aus. Parallel dazu decodiert der A-CTL- Eingangsadreßgenerator 140 den 32-Bit-unmittelbar-Adreßmodus und gibt die Eingangsadresse hierfür auf der Signalleitung 360 aus.
- Der A-CTL 140 setzt das Signal 370 für die Steuerung von SEP 160 auf "0" und gibt das Steuersignal aus, das für die Adreßberechnung nötig ist, welches aber nicht gezeigt ist.
- Zu diesem Zeitpunkt werden die 32-Bit-unmittelbar-Daten durch ALN 120 (siehe Fig. 27 (C)) auf der Signalleitung 340 ausgegeben. Die Markierungs-Zeiger-Trennschaltung SEP 160 liest die unmittelbaren Daten ein, gibt sie aber wie sie sind auf der Signalleitung 400 aus, da die Signalleitung 370 auf "0" liegt. Die unmittelbaren Daten auf der Signalleitung 400 durchlaufen die A-ALU 190 und werden in IMR 21 gespeichert, womit die Adreßberechnung in dem Unmittelbar-Adreßmodus beendet ist.
- Auf der anderen Seite liest E-CTL 290 das Mikroprogramm aus dem Steuerspeicher CS 296 entsprechend der Eingangsadresse des Load-Befehls ein, der über die Signalleitung 460 eingelesen wurde, und erzeugt das Befehlsausführungssteuersignal. Da jedoch der Load-Befehl sich auf unmarkierte Daten bezieht, liegt auf den Steuerleitungen 470, 480, 455, 475 und 465 für die entsprechenden markierten Daten-Schaltungen der Wert "0" an. Somit durchlaufen die unmittelbaren Daten im IMR 210 den Datentrennschaltkreis MSK 240 und auch E-ALU 230, bis sie in ERF 220 gespeichert werden und damit der Load-Befehl beendet ist.
- Für die Beschreibung eines Befels für markierte Daten dient als Beispiel ein Load-constant-Befehl. Der LCSTP- Befehl in Fig. 25 (b) ist ein Befehl für die Übertragung von markierten Daten in einem Operanden, der durch einen Operandenbezeichner 1 bezeichnet ist, an einen Operanden, der durch einen Operandenbezeichner 2 bezeichnet ist. Der Operationscode ist in Fig. 26 (b) gezeigt. Auf den SCSTP-Befehl hin wird lediglich das erste Wort übertragen, wenn die markierten Daten vom Typ wie in Fig. 3 (c) oder (d) sind. Bei der vorliegenden Ausführungsform ist der Adressierungsmodus des Operandenbezeichners 1 unmittelbarvollständig und der Adressierungsmodus des Operandenbezeichners 2 Register-direkt.
- Der LCSTP-Befehl wird wie in Fig. 28 (a) gezeigt aus MM 800 gelesen und in IBR 110 abgespeichert. Der Operationscode und der Modusbezeichner werden dann auf der Signalleitung 350 durch die Angleichvorrichtung 120 ausgegeben (siehe Fig. 28 (b)) und von dem Befehlsdecoder INSDEC 130 eingelesen. Die oberen 9 Bit des Operationscodes werden vom Befehlsdetektor 133 für markierte Daten eingelesen, der erkennt, daß es sich um markierte Datenbefehle handelt, so daß auf der Signalleitung 134 der Wert "1" anliegt. Daraufhin gibt der E-CTL-Eingangsadressengenerator 131 die Eingangsadresse des Befehls für markierte Daten LCSTP auf der Signalleitung 460 aus. Parallel dazu erkennt der A-CTL-Eingangsadressengenerator 132, daß der Modus der unmittelbar-vollständige Adressenmodus ist und stellt fest, daß der Adressenmodus korrekt ist, da die Signalleitung 134 auf "1" liegt. Dann gibt der Eingangsadreßgenerator 140 die Eingangsadresse für den ausgedehnt-unmittelbaren Adreßmodus auf der Signalleitung 360 aus. A-CTL 140 setzt in Übereinstimmung mit der Eingangsadresse auf der Signalleitung 360 das Steuersignal 370 für SEP 160 auf "1".
- Zu diesem Zeitpunkt werden die markierten Daten mit 32 Bit auf der Signalleitung 340 durch ALN 120 ausgegeben (siehe Fig. 28 (c)). Da die Signalleitung 370 auf "1" liegt, liest die Markierung-Zeiger-Trennschaltung SEP 160 die markierten Daten ein und gibt die Markierung auf der Signalleitung 380 und den vollständig-codierten Zeiger auf der Signalleitung 400 aus.
- Dieser Zeiger wird zu PC 170 bei A-ALU 190 aufgrund eines Steuersignals (nicht gezeigt) von A-CTL addiert und im IMR 210 und MAR 310 gespeichert, womit die Berechnung der unmittelbar-vollständigen Adresse endet.
- In Übereinstimmung mit der LCSTP-Befehlseingangsadresse, eingelesen über die Signalleitung 460, liest auf der anderen Seite E-CTL 290 das Mikroprogramm aus dem Steuerspeicher CS 296 aus, um Befehlsausführungssteuersignale zu erzeugen. Für den LCSTP-Befehl ist es nötig, die Markierung im TAG 200 und den Zeiger in IMR 210 zusammenzusetzen und die resultierenden Daten als markierte Daten in ERF 220 abzuspeichern. Daher nimmt das Markierungsauffüllsteuersignal 465 den Wert "1" an, so daß die Markierung in E-ALU 230 aufgefüllt wird und in ERF abgespeichert wird, womit der LCSTP-Befehl beendet ist.
- Fig. 29 zeigt ein Beispiel für den Aufbau eines Computers, der für die Hochgeschwindigkeitsverarbeitung eines in einer Logiksprache geschriebenen Programmes wie z. B. Prolog geeignet ist.
- Es heißt, daß in Prolog geschriebene Programme eine Anzahl von parallelen Prozessen beinhalten, die mit hoher Geschwindigkeit parallel in vielen Computern abgearbeitet werden können. Die parallelen Prolog-Prozeßverfahren können grob unterteilt werden in sog. "UND-parallel-" und "ODER- parallel-Typen". Fig. 30 zeigt diese UND-parallel- und ODER-parallel-Typen. In den Schritten (1) bis (7) in Fig. 30 sind entsprechende Befehle gezeigt (im folgenden "Sätze" genannt), wie sie in Prolog auftreten. In diesem Prolog- Programm bedeutet die Seite (welche "Kopf" genannt wird) rechts von ":-" eine Bedingung für die linke Seite (welche "Körper" genannt wird), und zwar daß sie wahr ist. Die entsprechenden Terme (welche "Ziele" genannt werden) des Körpers stellen die UND-Bedingung dar. Die parallelen UND-Bedingungen prüfen simultan, ob die Ziele des Körpers wahr sind oder nicht. In Fig. 30 ist es notwendig, zu ermitteln, ob die Ziele B, C und D wahr sind oder nicht.
- Auf der anderen Seite existiert generell eine Vielzahl von Wahrscheinlichkeiten, ob die entsprechenden Ziele des Körpers wahr sind oder nicht. In Fig. 30 ist das Ziel B des Körpers (1) wahr, wenn einer der Sätze (2), (3) oder (4) wahr ist. Über die parallelen ODER wird auf diese Art überprüft, ob die Ziele wahr sind oder nicht.
- Fig. 29 zeigt ein Datenverarbeitungssystem für parallele ODER um die Datenprozessoren 20, 30, 31 und 32 herum, die die vorliegende Erfindung beinhalten. Als Arbeitsspeicher dient ein Stapelspeicher 10. Als Befehlsspeicher dient ein Codespeicher 50, in welchem das Prolog-Programm in Einheiten von Sätzen kompiliert wird und dann abgespeichert wird. LP 20 ist ein Datenprozessor für die Ausführung der Befehle des Zielteils der Befehle, die im Codespeicher 50 abgespeichert sind. Dieser Datenprozessor schreibt die Argumente der Ziele in die Register in den Datenprozessoren UPO-30, UP1-31 und UP2-32, um sie zu starten. Die Datenprozessoren UPO-30, UP1-31 und UP2-32 kooperieren mit LP 20 zur Abarbeitung der Befehle der Kopfteile der entsprechenden Befehle, die im Codespeicher 50 abgespeichert sind, um die Argumente der Ziele in den Registern 40, 41 und 42 (LM0, LM1 und LM2) zu vereinigen und die Argumente der Köpfe dabei als Resultate über den Rückführbus 60 an LP 20 zurückzuführen.
- Im folgenden wird die Arbeitsweise der vorliegenden Ausführungsform beschrieben, wenn das in Fig. 30 gezeigte Prolog-Programm abgearbeitet wird.
- Um die ODER-Befehle parallel abarbeiten zu können, ist die erforderliche Nummer der UP gleich der maximalen Nummer der Sätze mit demselben Kopf. In der vorliegenden Ausführungsform jedoch sind nur drei UP, UP0 bis UP2 (d. h. 30, 31 und 32), gezeigt, da es drei gleiche Köpfe B gibt.
- LP 20 liest das Argument des Zieles B aus dem Stapelspeicher 10 aus und setzt es gleichzeitig in die Argumentregister (40 bis 42) von UP0, UP1 und UP2 (30 bis 32). Mit anderen Worten, das Argument auf der Zielseite wird gleichförmig auf die UP verteilt. Dann wird die Adresse des Kopfes des Satzes (2) an UP0-30 übertragen und die Köpfe der Sätze (3) und (4) werden auf UP1 bzw. UP2 übertragen, um die entsprechenden UP über einen request-Bus 70 starten zu können. UP0, UP1 und UP2 (30 bis 32) starten ihre Vereinigung simultan aber unabhängig voneinander und melden die Resultate über den Rückführbus 60 an LP 20. LP 20 teilt die höchste Priorität der Antwort zu, die dem Satz entspricht, welcher zuerst im Programm geschrieben ist. Die Vereinigung des Satzes (welche (2) in Fig. 30 entspricht) erfolgt daraufhin, das Setzen der Argumente auf der Zielseite und das Starten der UP 30 bis 32 wird wiederholt unter Verwendung des Ziels, das als erstes Ziel ausgewertet werden soll (welches B1 in Fig. 30 entspricht), so daß parallele ODER-Befehle so verarbeitet werden können, daß Prolog-Programme mit hoher Geschwindigkeit durchgeführt werden können.
- Wie oben beschrieben, können in einem erfindungsgemäßen Computer, in welchem unmarkierte Daten und markierte Daten dieselbe Wortlänge haben, die Befehle für unmarkierte und markierte Daten im selben Befehlssatz ausgeführt werden und ein Adressierungsmodus, der äquivalent dem von unmarkierten Datenbefehlen ist, kann auch angewendet werden für markierte Datenbefehle. Das bedeutet, daß sogar Programme, die mit Befehlen für markierte Daten geschrieben sind, verschiebbar sind. Dies hat den Effekt, daß das Programm für intelligence engineering, das unmarkierte und markierte Datenbefehle mischt, praktisch einsetzbar ist.
- Erfindungsgemäß ergibt sich außerdem, daß durch Abspeichern der Markierungssequenz der Daten in den Markierungssequenzspeicherregistern am Datenbus die Markierung, wenn nötig, abgefragt werden kann. Dieses erübrigt zusätzlichen Aufwand, der nötig wäre, um die Daten einmal in die Arbeitsdatei zu holen, so daß die Markierung gesperrt werden kann, und dann die Daten zu lesen, was hierfür nötig wäre. Als weiterer Effekt wird außerdem die Markierungserweiterung ermöglicht.
Claims (6)
1. Datenprozessor (100), basierend auf einem
Mikroprogrammsteuerschema zum Auslesen von Befehlen aus einer
Speichereinheit (800), die Basisdaten und Befehle für die
Ausführung der Befehle speichert, wobei die Basisdaten einen
ersten Datentyp haben, der lediglich einen Datenteil
umfaßt, und einen zweiten Datentyp, der eine
Markierungssequenz umfaßt, die den Datentyp und einen Datenteil
anzeigt, und wobei der Datenprozessor (100) eine
Adreßberechnungsvorrichtung (190) umfaßt, die den
Datenteil für die Adreßberechnung verwendet,
dadurch gekennzeichnet, daß
A) der erste Datentyp aus Daten mit n Bit, n≥16,
besteht und der zweite Datentyp einen ersten
Unterdatentyp umfaßt, der aus einer Markierung aus k
Bit, k < n, und einem Datenteil aus n - k Bit außer
der Markierung besteht und einen zweiten
Unterdatentyp, der aus einer Markierung aus l Bit,
l< n, 2≥k, und einem Datenteil aus n -2 Bit
außer der Markierung besteht,
B) eine erste Befehlsdecodiervorrichtung (133)
vorgesehen ist für die Erfassung aufgrund des
Operationscodes des Befehls, ob der aus der Speichereinheit
(800) ausgelesene Befehl ein Befehl ist, der den
ersten Datentyp als Operanden hat, oder ein Befehl
ist, der den zweiten Datentyp als Operanden hat,
C) eine zweite Befehlsdecodiervorrichtung (132)
vorgesehen ist für die Berechnung der Operandenadresse,
wenn die erste Befehlsdecodiervorrichtung (133)
einen Befehl erkennt, der den zweiten Datentyp
als Operanden hat, um zu erfassen, ob der zweite
Datentyp für registerabhängige Operandenadressierung
verwendet wurde,
D) eine dritte Befehlsdecodiervorrichtung (153)
vorgesehen ist, um zu erfassen, ob der zweite Datentyp
den ersten oder zweiten Subdatentyp hat, wenn der
zweite Datentyp für die registerabhängige
Operandenadressierung verwendet wurde,
E) eine Vorrichtung (160) vorgesehen ist, um Markierung
und Datenteil zu trennen, wenn der zweite Datentyp
durch die zweite Befehlsdecodiervorrichtung (132)
erkannt wird und
F) eine Markierungsspeichervorrichtung (200) vorgesehen
ist, um die abgetrennte Markierung zu speichern,
welche die Ausführung des entsprechend decodierten
Befehls bestimmt.
2. Datenprozessor nach Anspruch 1,
dadurch gekennzeichnet, daß
eine dritte Decodiervorrichtung (153) die ersten und
zweiten Subdatentypen aufgrund des Decodierergebnisses
der Markierung unterdrückt.
3. Datenprozessor nach Anspruch 1,
dadurch gekennzeichnet, daß
die Vorrichtungen für die Trennung von Markierung und
Datenteil die Länge der Markierung berechnen, um die
Markierung und andere Teile entsprechend dem
Berechnungsresultat zu trennen.
4. Datenprozessor nach Anspruch 1,
dadurch gekennzeichnet, daß
eine Markierungsauswertungseinheit für die Auswertung
der Markierungssequenz und eine Mikroprogrammsteuerung
(290) für Vielfachverzweigung entsprechend dem
Auswertungsresultat der Markierungssequenz vorgesehen sind,
wobei die Markierungsauswerteeinheit umfaßt:
eine Markierungstrennvorrichtung (250) für das
Herausfiltern der Markierungssequenz aus den Daten auf dem
Datenbus (430),
eine Vielzahl von Markierungssequenz-Speicherregistern
(260, 270) für die Speicherung der Markierungssequenz
aus der Markierungstrennvorrichtung (250) in
Abhängigkeit von einem Signal von der Mikroprogrammsteuerung
(290), und
einen Markierungs-multi-way-Sprungcodierer (292) für
die Erzeugung einer Markierungs-multi-way-Sprungadresse,
um sie an die Mikroprogrammsteuerung (290) auf der
Basis der Ausgänge der
Markierungssequenz-Speicherregister (260, 270) und eines Signals von der
Mikroprogrammsteuerung (290) auszugeben.
5. Datenprozessor nach Anspruch 4,
dadurch gekennzeichnet, daß
die Markierungstrennvorrichtung (250) die Länge der
Markierung berechnet, um die Markierungssequenz in
Übereinstimmung mit dem Berechnungsresultat
herauszufiltern.
6. Datenprozessor nach Anspruch 1,
gekennzeichnet durch
einen Befehl mit dem zweiten Datentyp als Operanden
und umfassend einen Gerüstbefehl für unterschiedliche
Operationen, die von den Ausführungsresultaten der
vorangegangenen Befehle abhängen,
ein Flag-Bit (300) für das Verriegeln des
Ausführungsergebnisses,
eine Decodiervorrichtung (2910), um zu erfassen ob
ein Gerüstbefehl auftritt, und
eine Vorrichtung (291) für das Modifizieren einer
Mikroprogrammeingangsadresse des Gerüstbefehls in
Abhängigkeit von den Ausgangssignalen von dem Flag-Bit
(300) und der Decodiervorrichtung (132, 133), wodurch
Operationen vom Gerüstbefehl unterschieden werden.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP14583185A JPH0619713B2 (ja) | 1985-07-04 | 1985-07-04 | 論理型デ−タ処理装置 |
JP60148301A JPH0642198B2 (ja) | 1985-07-08 | 1985-07-08 | デ−タ処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE3689389D1 DE3689389D1 (de) | 1994-01-27 |
DE3689389T2 true DE3689389T2 (de) | 1994-04-07 |
Family
ID=26476847
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE86109096T Expired - Fee Related DE3689389T2 (de) | 1985-07-04 | 1986-07-03 | Datenverarbeitungsprozessor. |
Country Status (3)
Country | Link |
---|---|
US (1) | US4896258A (de) |
EP (2) | EP0207519B1 (de) |
DE (1) | DE3689389T2 (de) |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5117489A (en) * | 1987-04-22 | 1992-05-26 | Mitsubishi Denki Kabushiki Kaisha | Data-driven processor having an internal tag-generating system for generating a distinct tagged information and assembling with un-tagged information of an input/output data packet |
JP2613223B2 (ja) * | 1987-09-10 | 1997-05-21 | 株式会社日立製作所 | 演算装置 |
CA1311063C (en) * | 1988-12-16 | 1992-12-01 | Tokumichi Murakami | Digital signal processor |
US5028186A (en) * | 1990-01-29 | 1991-07-02 | Mechanical Plastics Corp. | Hollow wall anchor with enhanced holding strength |
US6112019A (en) * | 1995-06-12 | 2000-08-29 | Georgia Tech Research Corp. | Distributed instruction queue |
US5864704A (en) * | 1995-10-10 | 1999-01-26 | Chromatic Research, Inc. | Multimedia processor using variable length instructions with opcode specification of source operand as result of prior instruction |
US6009511A (en) * | 1997-06-11 | 1999-12-28 | Advanced Micro Devices, Inc. | Apparatus and method for tagging floating point operands and results for rapid detection of special floating point numbers |
US5978901A (en) * | 1997-08-21 | 1999-11-02 | Advanced Micro Devices, Inc. | Floating point and multimedia unit with data type reclassification capability |
US6862563B1 (en) | 1998-10-14 | 2005-03-01 | Arc International | Method and apparatus for managing the configuration and functionality of a semiconductor design |
DE19923517C1 (de) * | 1999-05-21 | 2000-06-15 | Siemens Ag | Verfahren und Vorrichtung zum Verzweigen bei der Abarbeitung eines Programms durch einen Prozessor |
WO2001069411A2 (en) | 2000-03-10 | 2001-09-20 | Arc International Plc | Memory interface and method of interfacing between functional entities |
US6678806B1 (en) * | 2000-08-23 | 2004-01-13 | Chipwrights Design, Inc. | Apparatus and method for using tagged pointers for extract, insert and format operations |
US6732253B1 (en) | 2000-11-13 | 2004-05-04 | Chipwrights Design, Inc. | Loop handling for single instruction multiple datapath processor architectures |
US6931518B1 (en) | 2000-11-28 | 2005-08-16 | Chipwrights Design, Inc. | Branching around conditional processing if states of all single instruction multiple datapaths are disabled and the computer program is non-deterministic |
US6760874B2 (en) * | 2002-05-07 | 2004-07-06 | Logicvision, Inc. | Test access circuit and method of accessing embedded test controllers in integrated circuit modules |
US7941651B1 (en) * | 2002-06-27 | 2011-05-10 | Intel Corporation | Method and apparatus for combining micro-operations to process immediate data |
US6970985B2 (en) | 2002-07-09 | 2005-11-29 | Bluerisc Inc. | Statically speculative memory accessing |
US20050114850A1 (en) | 2003-10-29 | 2005-05-26 | Saurabh Chheda | Energy-focused re-compilation of executables and hardware mechanisms based on compiler-architecture interaction and compiler-inserted control |
US7996671B2 (en) | 2003-11-17 | 2011-08-09 | Bluerisc Inc. | Security of program executables and microprocessors based on compiler-architecture interaction |
US8607209B2 (en) | 2004-02-04 | 2013-12-10 | Bluerisc Inc. | Energy-focused compiler-assisted branch prediction |
US20080126766A1 (en) | 2006-11-03 | 2008-05-29 | Saurabh Chheda | Securing microprocessors against information leakage and physical tampering |
US8127113B1 (en) | 2006-12-01 | 2012-02-28 | Synopsys, Inc. | Generating hardware accelerators and processor offloads |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4212058A (en) * | 1975-09-27 | 1980-07-08 | National Research Development Corporation | Computer store mechanism |
US4241396A (en) * | 1978-10-23 | 1980-12-23 | International Business Machines Corporation | Tagged pointer handling apparatus |
JPS59188879A (ja) * | 1982-12-17 | 1984-10-26 | シンボリツクス・インコ−ポレ−テツド | デ−タプロセツサ |
JPS60124754A (ja) * | 1983-12-09 | 1985-07-03 | Fujitsu Ltd | バッファ記憶制御装置 |
JPS60136832A (ja) * | 1983-12-26 | 1985-07-20 | Hitachi Ltd | タグ付きデ−タを扱う論理型デ−タ処理装置 |
EP0167333A3 (de) * | 1984-07-05 | 1988-11-30 | Texas Instruments Incorporated | Datenverarbeitungsgerät mit Datentypklassifizierer |
-
1986
- 1986-07-02 US US06/881,407 patent/US4896258A/en not_active Expired - Fee Related
- 1986-07-03 EP EP86109096A patent/EP0207519B1/de not_active Expired - Lifetime
- 1986-07-03 DE DE86109096T patent/DE3689389T2/de not_active Expired - Fee Related
- 1986-07-03 EP EP19930103937 patent/EP0552816A3/en not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
EP0207519A2 (de) | 1987-01-07 |
US4896258A (en) | 1990-01-23 |
EP0552816A3 (en) | 1993-10-27 |
EP0552816A2 (de) | 1993-07-28 |
DE3689389D1 (de) | 1994-01-27 |
EP0207519B1 (de) | 1993-12-15 |
EP0207519A3 (en) | 1989-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE3689389T2 (de) | Datenverarbeitungsprozessor. | |
DE69115344T2 (de) | Vorverarbeitungsprozessor zur Verbindung von Befehlen für einen Cache-Speicher | |
EP0689694B1 (de) | Verfahren zur maschinellen erzeugung von nebenläufig bearbeitbaren befehlsgruppen aus einem programm für superskalare mikroprozessoren | |
DE4301417C2 (de) | Computersystem mit Einrichtung zur parallelen Befehlsausführung | |
DE68928340T2 (de) | Fliessband-Datenprozessor | |
DE69131956T2 (de) | Verarbeitungsprozessor zur Verbindung von Befehlen für einen Cache-Speicher | |
DE2542740C2 (de) | Datenverarbeitungsanlage mit einer Mikroprogrammsteuerung | |
DE3751503T2 (de) | Datenprozessor in Pipelinestruktur mit der Fähigkeit mehrere Befehle parallel zu dekodieren und auszuführen. | |
DE69123629T2 (de) | Maschinenarchitektur für skalaren Verbundbefehlssatz | |
DE2714805C2 (de) | ||
DE69122294T2 (de) | Verbindungstechnik für Prozessoren, die auf Befehlsebene parallel arbeiten | |
DE68927371T2 (de) | Verfahren und Vorrichtung zur Verarbeitung von mehreren Zustandscodes wie für einen Parallel-Pipeline-Rechner | |
DE1931966C3 (de) | Datenverarbeitungsanlage mit Assoziativspeichern | |
DE2023354C2 (de) | Datenverarbeitungsanlage mit einem Mikrobefehlsspeicher | |
DE3424962C2 (de) | ||
DE3851746T2 (de) | Sprungvorhersage. | |
DE69738188T2 (de) | Verfahren und apparat für eine erhöhte genauigkeit bei der verzweigungsvorhersage in einem superskalaren mirkroprozessor | |
DE2542751C2 (de) | Datenverarbeitungsanlage | |
DE2847934A1 (de) | Datenverarbeitungseinrichtung mit einem mikrobefehlsspeicher | |
DE69027932T2 (de) | Cpu-pipeline mit registerfile-bypass durch adressvergleich bei aktualisierungen/zugriffen | |
DE2417795C2 (de) | Datenverarbeitungsanlage | |
DE69133571T2 (de) | Datenprozessor mit der Fähigkeit, zwei Befehle gleichzeitig auszuführen | |
DE2230102A1 (de) | Rechenwerk fuer variable wortlaengen | |
EP0010186B1 (de) | Vorrichtung zum Bearbeiten bezeichneter Hinweise | |
DE2421130C2 (de) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
8364 | No opposition during term of opposition | ||
8339 | Ceased/non-payment of the annual fee |