DE69031899T2 - Befehlsmethode und Ausführungssystem - Google Patents
Befehlsmethode und AusführungssystemInfo
- Publication number
- DE69031899T2 DE69031899T2 DE69031899T DE69031899T DE69031899T2 DE 69031899 T2 DE69031899 T2 DE 69031899T2 DE 69031899 T DE69031899 T DE 69031899T DE 69031899 T DE69031899 T DE 69031899T DE 69031899 T2 DE69031899 T2 DE 69031899T2
- Authority
- DE
- Germany
- Prior art keywords
- instruction
- instruction word
- word
- register
- long
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/22—Microcontrol or microprogram arrangements
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3853—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution of compound instructions
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
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)
- Advance Control (AREA)
Description
- Die vorliegende Erfindung betrifft im allgemeinen Instruktionsverfahren und Ausführungssysteme, und im besonderen ein Instruktionsverfahren, das eine Instruktion spezifiziert, die in einer Informationsverarbeitungsvorrichtung auszuführen ist, und ein Ausführungssystem zum Ausführen einer Instruktion in der Informationsverarbeitungsvorrichtung.
- In letzter Zeit verbesserte sich die Leistung eines Prozessors beträchtlich auf Grund vcn Verbesserungen der Integrationsdichte von Halbleitervorrichtungen und von Operationsgeschwindigkeiten der Halbleitervorrichtungen. Jedoch besteht der Wunsch, die Leistung des Prozessors weiter zu verbessern. Um diesem Wunsch zu entsprechen, ist eine Architektur vorgeschlagen worden, die als Rechner mit reduziertem Befehlsvorrat (RISC) bezeichnet wird. Gemäß diesem RISC hat ein Instruktionswort eine feste Länge von 32 Bits und wird die Operation nur zwischen Registern ausgeführt. Zusätzlich ist ein Speicherzugriff nur auf eine übertragung zwischen einem Speicher und einem Register begrenzt, und der RISC hat nur Instruktionen mit einer hohen Verwendungshäufigkeit von Programmen. Durch die oben beschriebenen Begrenzungen ist es möglich, die Hardware zu vereinfachen, die erforderlich ist, um die Instruktionen auszuführen, und auch die Steuerung der Hardware zu vereinfachen. Daher kann die Leistung des Prozessors durch Erhöhen der Operationstaktfreguenz und Reduzieren der Anzahl von Zyklen, die erforderlich sind, um eine Instruktion auszuführen, verbessert werden. Andererseits gibt es Vorschläge, eine Vielzahl von Instruktionen gleichzeitig auszuführen, um die Leistung des Prozessors weiter zu verbessern.
- FIG. 1A, 1B und 1C zeigen Beispiele von Instruktionsformaten, die bei der herkömmlichen RISC-Architektur verwendet werden.
- FIG. 1A zeigt eine Instruktion, die ein erstes Format hat. Auf der Basis eines Instruktionscodes OP weist diese Instruktion eine Operation zwischen einem Registerinhalt, der durch ein zweites Registerinstruktionsfeld R2X spezifiziert ist, und einem Registerinhalt, der durch ein drittes Registerinstruktionsfeld R3X spezifiziert ist, und ein Speichern eines Operationsresultats in einem Register an, das durch ein erstes Registerinstruktionsfeld R1X spezifiziert ist.
- FIG. 1B zeigt eine Instruktion, die ein zweites Format hat. Wenn diese Instruktion eine Operationsinstruktion ist, weist diese Instruktion eine Operation zwischen dem Registerinhalt, der durch das zweite Registerinstruktionsfeld R2X spezifiziert ist, und 16-Bit-Direktdaten IMM16 und ein Speichern eines Operationsresultats in dem Register an, das durch das erste Registerinstruktionsfeld R1X spezifiziert ist. Wenn diese Instruktion andererseits eine Ladeinstruktion ist, weist diese Instruktion ein Hinzufügen einer Adresse an, welche der Registerinhalt ist, der durch das zweite Registerinstruktionsfeld R2X spezifiziert ist, und eine Abweichung, die als Direktdaten IMM16 gegeben ist, und ein Speichern der Daten der Adresse des Speichers, der durch das Hinzufügen erhalten wurde, in dem Register, das durch das erste Registerspezifizierungsfeld R1X spezifiziert ist.
- FIG. 1c zeigt eine Instruktion, die ein drittes Format hat&sub0; Diese Instruktion weist ein Speichern von 21-Bit- Direktdaten IMM21 in dem Register an, das durch das erste Registerspezifizierungsfeld R1X spezifiziert ist.
- Gemäß der Instruktion, die das erste Format hat, sind die einundzwanzigsten bis einunddreißigsten Bits ungenutzt, und es besteht ein Problem darin, daß die Bitnutzungseffektivität schlecht ist. Andererseits besteht gemäß der Instruktion, die das zweite Format hat, ein Problem darin, daß eine Vielzahl von Instruktionen verwendet werden muß, wenn umfangreiche Direktdaten und eine Abweichung erforderlich sind, wie in dem Fall, wenn die Direktdaten 16 Bits überschreiten. Ahnlich besteht gemäß der Instruktion, die das dritte Format hat, ein Problem darin, daß eine Vielzahl von Instruktionen verwendet werden muß, wenn umfangreiche Direktdaten erforderlich sind, wie in dem Fall, wenn die Direktdaten 21 Bits überschreiten.
- Des weiteren wird, wenn eine Vielzahl von Instruktionen parallel ausgeführt wird, die Steuerung der Hardware komplex, und der Umfang der Hardwarestruktur, der erforderlich ist, um die Instruktionen parallel auszuführen, wird groß, da eine große Anzahl von Instruktionskombinationen existiert, die parallel ausgeführt werden müssen.
- In den Konferenzunterlagen des 13. Internationalen Jahressymposiums über Computerarchitektur, Tokio, 2. bis 5. Juni 1986, Seiten 280 - 289, Computer Society Press, New York, US; S. TOMITA et al.: "A computer with low-level parallelism QA-2 - Its applications to 3-D graphics and prolog/lisp machines", ist die Verwendung eines langen Instruktionswortes beschrieben, das aus einer Vielzahl von Instruktionswörtern gebildet ist. Die Struktur von jedem Instruktionswort, das in dem langen Instruktionswort enthal ten ist, ist feststehend.
- EP-A-0 363 222 ist ein Beispiel dafür, wie die Bitnutzung in einer Nicht-RISC-Architektur verbessert werden kann.
- Somit ist es eine allgemeine Aufgabe der vorliegenden Erfindung, ein neues und nützliches Instruktionsverfahren und Ausführungssystem vorzusehen, bei denen die oben beschriebenen Probleme eliminiert sind.
- Gemäß einem ersten Aspekt der Erfindung ist ein Instruktionsverfahren vorgesehen, zum Spezifizieren einer Instruktion, die in einer Informationsverarbeitungsvorrichtung auszuführen ist, mit den Schritten: Bilden eines oder mehrerer Instruktionswörter, die jeweils eine einzelne Instruktion spezifizieren, aus wenigstens einem Instruktionscode und einem operandenspezifizierungsteil; Bilden eines oder mehrerer langer Instruktionswörter, die jeweils eine feststehende Länge haben, aus einem Typencode (Type) und einem oder mehreren der Instruktionswörter, welcher Typencode eine Struktur spezifiziert, mit der das eine oder die mehreren Instruktionswörter in dem langen Instruktionswort enthalten sind, und der untereinander verschiedene Strukturen der Instruktionswörter bezeichnen kann, wenn eine Vielzahl der Instruktionswörter in dem langen Instruktionswort enthalten ist; und Spezifizieren einer oder einer Vielzahl von Instruktionen durch das lange Instruktionswort, wobei die Länge und das Format des Instruktionswortes variabel sind.
- Gemäß einem zweiten Aspekt der Erfindung ist ein Ausführungssystem vorgesehen, zum Ausführen von Instruktionen in einer Informationsverarbeitungsvorrichtung, in dem vorgesehen sind: ein Eingabemittel zum Eingeben eines langen Instruktionswortes, das eine feststehende Länge hat, welches lange Instruktionswort aus einem Typencode (Type) und einem oder mehreren Instruktionswörtern gebildet ist, wobei jedes der Instruktionswörter eine variable Länge und ein variables Format hat und wenigstens einen Instruktionscode (OPa, OPb, OPc) und einen Operandenspezifizierungsteil (Ra1-Ra3, Rb1- Rb3, Rc1-Rc3) zum Spezifizieren einer einzelnen Instruktion enthält, welcher Typencode eine Struktur spezifiziert, mit der das eine oder die mehreren Instruktionswörter in dem langen Instruktionswort enthalten sind; ein Beurteilungsmittel, das mit dem Eingabemittel gekoppelt ist und dafür ausgelegt ist, um aus dem Typencode die Kombination und Anzahl von Instruktionswörtern zu identifizieren, die in dem langen Instruktionswort enthalten sind, und zum Ausgeben eines Beurteilungsresultats; eine Vielzahl von Operationsmitteln, die mit dem Beurteilungsmittel gekoppelt sind, zum unabhängigen Ausführen von Operationen, die durch die Instruktionswörter spezifiziert sind, die in dem langen Instruktionswort enthalten sind; und ein Zuordnungsmittel, das mit dem Beurteilungsmittel gekoppelt ist, zum Zuordnen einer Operation, die durch jedes Instruktionswort spezifiziert ist, das in dem langen Instruktionswort enthalten ist, zu einem der Operationsmittel in Abhängigkeit von dem Beurtei lungsresultat, das von dem Beurteilungsmittel ausgegeben wird.
- Gemäß dem Ausführungssystem der vorliegenden Erfindung ist es möglich, sowohl die Steuerung der Hardware als auch die Hardwarestruktur zu vereinfachen.
- Zum besseren Verstehen der Erfindung und um zu zeigen, wie dieselbe verwirklicht werden kann, wird nun nur als Beispiel Bezug auf die beiliegenden Zeichnungen genommen, in denen:
- FIG. 1A, 1B und 1C jeweilig Diagramme sind, die Beispiele von Instruktionsformaten zeigen, die in der herkömmlichen RISC-Architektur verwendet werden;
- FIG. 2A, 2B, 2C und 2D jeweilig Diagramme sind, die Ausführungsformen von Instruktionsformaten zeigen, die bei der vorliegenden Erfindung verwendet werden;
- FIG. 3 ein Systemblockdiagramm ist, das einen wesentlichen Teil einer Informationsverarbeitungsvorrichtung zeigt, die mit der vorliegenden Erfindung angewendet wird;
- FIG. 4 ein Systemblockdiagramm ist, das eine Ausführungsform einer Steuerschaltung von FIG. 3 zusammen mit einem Instruktionsregister zeigt;
- FIG. 5 ein Zeitlagendiagramm zum Erläutern einer Pipeline-Operation eines Prozessors ist, der in FIG. 3 gezeigt ist;
- FIG 6 ein Systemblockdiagramm ist, das eine Ausführungsform einer Registerdatei von FIG. 3 zeigt; und
- FIG. 7, 8 und 9 Blockdiagramme sind, die jeweilig Ausführungsformen von Operationsschaltungen von FIG. 3 zeigen.
- Zuerst erfolgt unter Bezugnahme auf FIG. 2A bis 2D eine Beschreibung von Ausführungsformen von Instruktionsformaten, die bei der vorliegenden Erfindung verwendet werden können.
- FIG. 2A zeigt ein 64 Bit langes Instruktionswort, das ein erstes Instruktionsformat hat. Dieses lange Instruktionswort ist gebildet aus einem Typencode Type, der auf den Bitnummern "0" bis "3" angeordnet ist, und drei Instruktionswörtern, die ein Format A haben und jeweilig auf den Bitnummern "4" bis "23", "24" bis "43" und "44" bis "63" angeordnet sind.
- Das Instruktionswort, das das Format A hat und auf den Bitnummern "4" bis "23" angeordnet ist, enthält einen 5-Bit- Instruktionscode OPa, ein erstes 5-Bit-Registerspezifizierungsfeld Ra1, ein zweites 5-Bit-Registerspezifizierungsfeld Ra2 und ein drittes 5-Bit-Registerspezifizierungsfeld Ra3. Die Registerspezifizierungsfelder Ra1, Ra2 und Ra3 sind als Operandenspezifizierungsteil vorgesehen. Dieses Instruktionswort weist eine Operation zwischen einem Registerinhalt an, der durch das erste Registerspezifizierungsfeld Ra1 spezifiziert ist, und einem Registerinhalt, der durch das zweite Registerspezifizierungsfeld Ra2 spezifiziert ist, und ein Speichern eines Operationsresultats in einem Register, das durch das dritte Registerspezifizierungsfeld Ra3 spezifiziert ist, in Abhängigkeit von dem Instruktionscode OPa.
- Das Instruktionswort, das das Format A hat und auf den Bitnummern "24" bis "43" angeordnet ist, enthält einen 5- Bit-Instruktionscode OPb, ein erstes 5-Bit-Registerspezifizierungsfeld Rb1, ein zweites 5-Bit-Registerspezifizierungsfeld Rb2 und ein drittes 5-Bit-Registerspezifizierungsfeld Rb3. Die Registerspezifizierungsfelder Rb1, Rb2 und Rb3 sind als Operandenspezifizierungsteil vorgesehen. Dieses Instruktionswort weist eine Operation zwischen einem Registerinhalt an, der durch das erste Registerspezifizierungsfeld Rb1 spezifiziert ist, und einem Registerinhalt, der durch das zweite Registerspezifizierungsfeld Rb2 spezifiziert ist, und ein Speichern eines Operationsresultats in einem Register, das durch das dritte Registerspezifizierungsfeld Rb3 spezifiziert ist, in Abhängigkeit von dem Instruktionscode OPb.
- Ähnlich enthält das Instruktionswort, das das Format A hat und auf den Bitnummern "44" bis "63" angeordnet ist, einen 5-Bit-Instruktionscode OPc, ein erstes 5-Bit-Registerspezifizierungsfeld Rd, ein zweites 5-Bit-Registerspezifizierungsfeld Rc2 und ein drittes 5-Bit-Registerspezifizierungsfeld Rc3. Die Registerspezifizierungsfelder Rd, Rc2 und Rc3 sind als Operandenspezifizierungsteil vorgesehen. Dieses Instruktionswort weist eine Operation zwischen einem Registerinhalt an, der durch das erste Registerspezifizierungsfeld Rd spezifiziert ist, und einem Registerinhalt, der durch das zweite Registerspezifizierungsfeld Rc2 spezifiziert ist, und ein Speichern eines Operationsresultats in einem Register, das durch das dritte Registerspezifizierungsfeld Rc3 spezifiziert ist, in Abhängigkeit von dem Instruktionscode OPc.
- Die Art von Operation, die auszuführen ist, ist durch eine Kombination des 4-Bit-Typencodes Type und eines der 5- Bit-Instruktionscodes OPa, OPb und OPc spezifiziert. Die Art von Operation, die auszuführen ist, ist bei den langen Instruktionswörtern, die in FIG. 2B bis 2D gezeigt sind, die im folgenden beschrieben werden, ähnlich spezifiziert.
- FIG. 2B zeigt ein 64 Bit langes Instruktionswort, das ein zweites Instruktionsformat hat. Dieses lange Instruktionswort ist gebildet aus einem Typencode Type, der auf den Bitnummern "0" bis "3" angeordnet ist, einem Instruktionswort, das das Format A hat und auf den Bitnummern "4" bis "23" angeordnet ist, und einem Instruktionswort, das ein Format B hat und auf den Bitnummern "24" bis "63" angeordnet ist.
- Das Instruktionswort, das das Format A hat und auf den Bitnummern "4" bis "23" angeordnet ist, enthält den 5-Bit- Instruktionscode OPa, das erste 5-Bit-Registerspezifizierungsfeld Ra1, das zweite 5-Bit-Registerspezifizierungsfeld Ra2 und das dritte 5-Bit-Registerspezifizierungsfeld Ra3. Die Registerspezifizierungsfelder Ra1, Ra2 und Ra3 sind als Operandenspezifizierungsteil vorgesehen. Dieses Instruktionswort weist eine Operation zwischen dem Registerinhalt an, der durch das erste Registerspezifizierungsfeld Ra1 spezifiziert ist, und dem Registerinhalt, der durch das zweite Registerspezifizierungsfeld Ra2 spezifiziert ist, und ein Speichern eines Operationsresultats in dem Register, das durch das dritte Registerspezifizierungsfeld Ra3 spezifiziert ist, in Abhängigkeit von dem Instruktionscode OPa.
- Das Instruktionswort, das das Format B hat und auf den Bitnummern "24" bis "63" angeordnet ist, enthält den 5-Bit- Instruktionscode OPb, das erste 5-Bit-Registerspezifizierungsfeld Rb1, 25-Bit-Direktdaten IMM25 und das dritte 5- Bit-Registerspezifizierungsfeld Rb3. Das erste Registerspezifizierungsfeld Rb1 ist auf den Bitnummern "29" bis "33" angeordnet, die Direktdaten IMM25 sind auf den Bitnummern "34" bis "58" angeordnet, und das dritte Registerspezifizierungsfeld Rb3 ist auf den Bitnummern "59" bis "63" angeordnet. Wenn der Instruktionscode OPb eine Operationsinstruktion darstellt, weist dieses Instruktionswort eine Operation zwischen dem Registerinhalt, der durch das erste Registerspezifizierungsfeld Rb1 spezifiziert ist, und den Direktdaten IMM25 an, und ein Speichern eines Operationsresultats in dem Register, das durch das dritte Registerspezifizierungsfeld Rb3 spezifiziert ist, in Abhängigkeit von dem Instruktionscode OPb. Wenn andererseits der Instruktionscode OPb eine Ladeinstruktion darstellt, weist dieses Instruktionswort ein Hinzufügen einer Adresse an, welche der Registerinhalt ist, der durch das erste Registerspezifizierungsfeld Rb1 spezifiziert ist, und eine Abweichung, die als Direktdaten IMM25 gegeben ist, und ein Speichern der Daten der Adresse des Speichers, der durch das Hinzufügen erhalten wurde, in dem Register, das durch das dritte Registerspezifizierungsfeld Rb3 spezifiziert ist, in Abhängigkeit von dem Instruktionscode OPb.
- FIG. 2C zeigt ein 64 Bit langes Instruktionswort, das ein drittes Instruktionsformat hat. Dieses lange Instruktionswort ist gebildet aus einem Typencode Type, der auf den Bitnummern "0" bis "3" angeordnet ist, einem Instruktionswort, das das Format A hat und auf den Bitnummern "4" bis "23" angeordnet ist, und einem Instruktionswort, das ein Format C hat und auf den Bitnummern "24" bis "63" angeordnet ist.
- Das Instruktionswort, das das Format A hat und auf den Bitnummern "4" bis "23" angeordnet ist, enthält den 5-Bit- Instruktionscode OPa, das erste 5-Bit-Registerspezifizierungsfeld Ra1, das zweite 5-Bit-Registerspezifizierungsfeld Ra2 und das dritte 5-Bit-Registerspezifizierungsfeld Ra3. Die Registerspezifizierungsfelder Ra1, Ra2 und Ra3 sind als Operandenspezifizierungsteil vorgesehen. Dieses Instruktionswort weist eine Operation zwischen dem Registerinhalt an, der durch das erste Registerspezifizierungsfeld Ra1 spezifiziert ist, und dem Registerinhalt, der durch das zweite Registerspezifizierungsfeld Ra2 spezifiziert ist, und ein Speichern eines Operationsresultats in dem Register, das durch das dritte Registerspezifizierungsfeld Ra3 spezifiziert ist, in Abhängigkeit von dem Instruktionscode OPa.
- Das Instruktionswort, das das Format C hat und auf den Bitnummern "24" bis "63" angeordnet ist, enthält den 5-Bit- Instruktionscode OPb, 32-Bit-Direktdaten IMM32 und das dritte 5-Bit-Registerspezifizierungsfeld Rb3. Die Direktdaten IMM32 sind auf den Bitnummern "27" bis "58" angeordnet, und das dritte Registerspezifizierungsfeld Rb3 ist auf den Bitnummern "59" bis "63" angeordnet. Dieses Instruktionswort weist ein Speichern von Direktdaten 1IMM32 in dem Register an, das durch das dritte Registerspezifizierungsfeld Rb3 spezifiziert ist, in Abhängigkeit von dem Instruktionscode OPb.
- FIG. 2D zeigt ein 64 Bit langes Instruktionswort, das ein viertes Instruktionsformat hat. Dieses lange Instruktionswort ist gebildet aus einem Typencode Type, der auf den Bitnumrnern "0" bis "3" angeordnet ist, und einem 60-Bit- Instruktionswort, das das Format D hat und auf den Bitnummern "4" bis "63" angeordnet ist.
- Das Instruktionswort, das das Format D hat und auf den Bitnummern "4" bis "63" angeordnet ist, enthält den 5-Bit- Instruktionscode OPa, die 32-Bit-Direktdaten IMM32 und das dritte 5-Bit-Registerspezifizierungsfeld Rb3. Die Direktdaten IMM32 sind auf den Bitnummern "9" bis "40" angeordnet, und das dritte Registerspezifizierungsfeld Rb3 ist auf den Bitnummern "59" bis "63" angeordnet. Dieses Instruktionswort weist ein Speichern von Direktdaten IMM32 in dem Register an, das durch das dritte Registerspezifizierungsfeld Rb3 spezifiziert ist, in Abhängigkeit von dem Instruktionscode OPa.
- In den langen Instruktionswörtern, die in FIG. 2A bis 2D gezeigt sind, werden die Formate A bis D der Instruktionswörter aus einem Wert des Typencodes Type unterschieden.
- Als nächstes erfolgt unter Bezugnahme auf FIG. 3 eine Beschreibung einer Informationsverarbeitungsvorrichtung, die mit einer Ausführungsform des Instruktionsverfahrens gemäß der vorliegenden Erfindung und einer Ausführungsform des Ausführungssystems gemäß der vorliegenden Erfindung angewendet wird.
- FIG. 3 zeigt einen wesentlichen Teil der Informationsverarbeitungsvorrichtung. Die Informationsverarbeitungsvorrichtung enthält einen Instruktionsspeicher 20, einen Prozessor 21 und einen Operandenspeicher 70. Ein 64 Bit langes Instruktionswort, das aus dem Instruktionsspeicher 20 gelesen wird, wird in einem Instruktionsspeicher 22 innerhalb des Prozessors 21 gespeichert. Jedes Bit des langen Instruktionswortes, das in dem Instruktionsspeicher 22 gespeichert ist, wird einer Steuerschaltung 23 innerhalb des Prozessors 21 zugeführt.
- FIG. 4 zeigt eine Ausführungsform der Steuerschaltung 23 zusammen mit dem Instruktionsregister 22. Ein Decodierer decodiert die Bitnummern "0" bis "3" des Instruktionswortes, das in dem Instruktionsregister 22 gespeichert ist, das heißt, den Typencode Type. Ein Decodierer 26 decodiert die Bitnummern "4" bis "8" des Instruktionswortes zusammen mit dem Typencode Type und erzeugt ein erstes Operationsschaltungssteuersignal CNT1. Ein Decodierer 27 decodiert die Bitnummern "24" bis "28" des Instruktionswortes zusammen mit dem Typencode Type und erzeugt ein zweites Operationsschaltungssteuersignal CNT2. Ähnlich decodiert ein Decodierer 28 die Bitnummern "44" bis "48" des Instruktionswortes zusammen mit dem Typencode Type und erzeugt ein drittes Operationsschaltungssteuersignal CNT3. Die Bitnummern, die in den Decodierern 26, 27 und 28 decodiert werden, den Typencode Type ausgenommen, entsprechen jeweilig den Instruktionscodes OPa, OPb und OPc des langen Instruktionswortes, das das erste Instruktionsformat hat.
- Ein Selektor 24 selektiert die Bitnummern "19" bis "23" oder die Bitnummern "59" bis "63" des Instruktionswortes, das in dem Instruktionsregister 22 gespeichert ist, als Reaktion auf ein Ausgangssignal des Decodierers 25. Die Bits, die durch den Selektor 24 selektiert werden, werden während eines Ausführungszyklus in einer Verriegelungsschaltung 29 verriegelt. Die Bitnummern "59" bis "63" des Instruktionswortes, das in dem Instruktionsregister 22 gespeichert ist, werden während des Ausführungszyklus in einer Verriegelungsschaltung 30 verriegelt. Ein Selektor 31 selek tiert die Bitnummern "59" bis "63" oder die Bitnummern "39" bis "43" des Instruktionswortes, das in dem Instruktionsregister 22 gespeichert ist, als Reaktion auf das Ausgangssignal des Decodierers 25. Die Bits, die durch den Selektor 31 selektiert werden, werden während des Ausfünrungszyklus in einer Verriegelungsschaltung 32 verriegelt.
- Ausgaben der Verriegelungsschaltungen 29, 32 und 30 werden jeweilig während eines Schreibzyklus in den Verriegelungsschaltungen 35, 36 und 37 verriegelt, und Ausgaben der Verriegelungsschaltungen 35, 36 und 37 werden jeweilig in Decodierern 40, 41 und 42 decodiert. Zusätzlich wird die Ausgabe der Verriegelungsschaltung 36 während eines Zugriffszyklus in einer Verriegelungsschaltung 43 verriegelt, und eine Ausgabe der Verriegelungsschaltung 43 wird in einem Decodierer 44 decodiert. Die Decodierer 40, 41, 42 und 44 werden durch Abschnitte der Steuersignale CNT1, CNT2 und CNT3 gesteuert, die von den Decodierern 26, 27 und 28 ausgegeben werden. Im besonderen wird der Decodierer 40 als Reaktion auf ein Freigabesignal ENBLA freigegeben, welches erhalten wird, indem das Steuersignal CNT1 zwei Verriegelungsschaltungen 47 und 48 durchläuft. Ahnlich wird der Decodierer 41 als Reaktion auf ein Freigabesignal ENBLB freigegeben, welches erhalten wird, indem das Steuersignal CNT2 zwei Verriegelungsschaltungen (nicht gezeigt) durchläuft, und der Decodierer 42 wird als Reaktion auf ein Freigabesignal ENBLC freigegeben, welches erhalten wird, indem das Steuersignal CNT3 zwei Verriegelungsschaltungen (nicht gezeigt) durchläuft. Der Decodierer 44 wird als Reaktion auf ein Freigabesignal ENBLL freigegeben, welches erhalten wird, indem das Steuersignal CNT2 eine Verriegelungsschaltung (nicht gezeigt) durchläuft. Die Darstellung der Verriegelungsschaltungen, die verwendet werden, um die Freigabesignale ENBLB, ENBLC und ENBLL zu erhalten, ist in FIG. 4 weggelassen, um die Zwischenverbindungen zu vereinfachen.
- Zweiunddreißig ODER-Schaltungen 45&sub0; bis 45&sub3;&sub1; erzeugen jeweilig Taktgatterfreigabesignale CGE0 bis CGE31 auf der Basis der Ausgaben der Decodierer 40, 41, 42 und 44.
- Der in FIG. 3 gezeigte Prozessor 21 führt eine Pipe line-Operation aus. In diesem Fall werden, wie in FIG. 5(B) gezeigt, synchron mit einem Taktsignal, das in FIG. 5(A) gezeigt ist, ein Hol-(F)-Zyklus, ein Decodier-(D)-Zyklus, ein Ausführungs-(E)-Zyklus und ein Schreib-(W)-Zyklus des ersten langen Instruktionswortes ausgeführt. Die F-, D-, E- und W-Zyklen der zweiten und dritten langen Instruktionswörter werden jeweilig ähnlich ausgeführt, wie in FIG. 5(C) und (D) gezeigt. Mit anderen Worten, die Zyklen von zwei sukzessiven langen Instruktionswörtern sind um einen Zyklus verschoben.
- In dem Fall der Ladeinstruktion innerhalb des langen Instruktionswortes wird jedoch anstelle des E-Zyklus eine Adressenberechnung ausgeführt, und ein Speicherzugriff (Zugriffs-(A)-Zyklus) erfolgt anstelle des W-Zyklus.
- Das in FIG. 5(A) gezeigte Taktsignal wird den Verriegelungsschaltungen und dergleichen des Prozessors 21, der in FIG. 3 gezeigt ist, zugeführt.
- Wenn das lange Instruktionswort mit dem ersten Format in dem Instruktionsregister 22 gespeichert ist, decodiert der Decodierer 25 den Typencode Type, und die Decodierer 26, 27 und 28 decodieren jeweilig die Instruktionscodes OPa, OPb und OPc zusammen mit dem Typencode Type. Zusätzlich werden die dritten Registerspezifizierungsfelder Ra3, Rb3 und Rc3 jeweilig in den Verriegelungsschaltungen 29, 32 und 30 während des E-Zyklus verriegelt. Die dritten Registerspezifizierungsfelder Ra3, Rb3 und Rc3 werden jeweilig in den Verriegelungsschaltungen 35, 36 und 37 während des W-Zyklus verriegelt und in den jeweiligen Decodierern 40, 41 und 42 decodiert.
- Wenn das lange Instruktionswort mit dem zweiten Format in dem Instruktionsregister 22 gespeichert ist, decodiert der Decodierer 25 den Typencode Type, und die Decodierer 26 und 27 decodieren jeweilig die Instruktionscodes OPa und OPb zusammen mit dem Typencode Type. Zusätzlich selektiert der Selektor 31 die Bitnummern "59" bis "63" des Instruktionswortes, das in dem Instruktionsregister 22 gespeichert ist, als Reaktion auf das Ausgangssignal des Decodierers 25, und die dritten Registerspezifizierungsfelder Ra3 und Rb3 werden jeweilig in den Verriegelungsschaltungen 29 und 32 während des E-Zyklus verriegelt. Des weiteren werden die Bits, die in den verriegelungsschaltungen 29 und 32 verriegelt sind, während des W-Zyklus jeweilig in den Verriegelungsschaltungen 35 und 36 verriegelt und in den jeweiligen Decodierern 40 und 41 decodiert. Der Decodierer 42 wird als Reaktion auf das Freigabesignal ENBLC gesperrt. Des weiteren wird das dritte Registerspezifizierungsfeld Rb3, das von der Verriegelungsschaltung 36 ausgegeben wird, in der Verriegelungsschaltung 43 während des A-Zyklus verriegelt und durch den Decodierer 44 decodiert. Dieser Decodierer 44 wird als Reaktion auf das Freigabesignal ENBLL nur freigegeben, wenn das Instruktionswort, das das Format B hat, eine Ladeinstruktion ist.
- Wenn das lange Instruktionswort mit dem dritten Format in dem Instruktionsregister 22 gespeichert ist, decodiert der Decodierer 25 den Typencode Type, und die Decodierer 26 und 27 decodieren jeweilig die Instruktionscodes OPa und OPb zusammen mit dem Typencode Type. Zusätzlich selektiert der Selektor 31 die Bitnummern "59" bis "63" des Instruktionswortes, das in dem Instruktionsregister 22 gespeichert ist, als Reaktion auf das Ausgangssignal des Decodierers 25, und die dritten Registerspezifizierungsfelder Ra3 und Rb3 werden während des E-Zyklus jeweilig in den Verriegelungsschaltungen 29 und 32 verriegelt. Des weiteren werden die Bits, die in den Verriegelungsschaltungen 29 und 32 verriegelt sind, während des W-Zyklus jeweilig in den Verriegelungsschaltungen 35 und 36 verriegelt und in den jeweiligen Decodierern 40 und 41 decodiert. Der Decodierer 42 wird als Reaktion auf das Freigabesignal ENBLC gesperrt. Ferner wird das dritte Registerspezifizierungsfeld Rb3, das von der Verriegelungsschaltung 36 ausgegeben wird, während des A-Zyklus in der Verriegelungsschaltung 43 verriegelt und durch den Decodierer 44 decodiert. Dieser Decodierer 44 wird als Reaktion auf das Freigabesignal ENBLL nur freigegeben, wenn das Instruktionswort, welches das Format C hat, eine Ladeinstruktion ist.
- Wenn das lange Instruktionswort mit dem vierten Format in dem Instruktionsregister 22 gespeichert ist, decodiert der Decodierer 25 den Typencode Type, und der Decodierer 26 decodiert den Instruktionscode OPA zusammen mit dem Typencode Type. Zusätzlich selektiert der Selektor 24 die Bitnummern "59" bis "63" des Instruktionswortes, das in dem Instruktionsregister 22 gespeichert ist, als Reaktion auf das Ausgangssignal des Decodierers 25, und das dritte Registerspezifizierungsfeld Ra3 wird während des E-Zyklus in der Verriegelungsschaltung 29 verriegelt. Ferner werden die Bits, die in der Verriegelungsschaltung 29 verriegelt sind, während des W-Zyklus in der Verriegelungsschaltung 35 verriegelt und durch den Decodierer 40 decodiert. Die Decodierer 41, 42 und 44 werden durch die jeweiligen Freigabesignale ENBLB, ENBLC und ENBLL gesperrt.
- FIG. 6 zeigt eine Ausführungsform einer Registerdatei 50, die in FIG. 3 gezeigt ist. In FIG. 6 werden 32-Bit- Daten, die auf jeden der Anschlüsse RIa3, RIb3, RIc3 und RI1 angewendet werden, allen Selektoren 51&sub0; bis 51&sub3;&sub1; zugeführt. Die Selektoren 51&sub0; bis 51&sub3;&sub1; werden alle durch die Ausgaben der Decodierer 40, 41, 42 und 44 gesteuert, die in FIG. 4 gezeigt sind, und sie selektieren eines der 32-Bit-Daten, die von den Anschlüssen RIa3, RIb3, RIc3 und RI1 empfangen werden. Ausgaben der Selektoren 51&sub0; bis 51&sub3;&sub1; werden jeweilig Registern R0 bis R31 zugeführt. Die Register R0 bis R31 verriegeln jeweilig die ankommenden Daten, wenn die jeweiligen Taktgatterfreigabesignale CGE0 bis CGE31 von den ODER- Schaltungen 45&sub0; bis 45&sub3;&sub1; erhalten werden.
- Ausgaben der Register R0 bis R31 werden allen sechs Selektoren 52a bis 52f zugeführt. Der Selektor 52a wird durch die Bitnummern "9" bis "13" des Instruktionswortes gesteuert, das in dem Instruktionsregister 22 gespeichert ist, das heißt, durch das erste Registerspezifizierungsfeld Ra1. Der Selektor 52b wird durch die Bitnummern "14" bis "18" des Instruktionswortes gesteuert, das in dem Instruktionsregister 22 gespeichert ist, das heißt, durch das zweite Registerspezifizierungsfeld Ra2. Der Selektor 52c wird durch die Bitnummern "29" bis "33" des Instruktionswortes gesteuert, das in dem Instruktionsregister 22 gespeichert ist, das heißt, durch das erste Registerspezifizierungsfeld Rb1. Der Selektor 52d wird durch die Bitnummern "34" bis "38" des Instruktionswortes gesteuert, das in dem Instruktionsregister 22 gespeichert ist, das heißt, durch das zweite Registerspezifizierungsfeld Rb2. Der Selektor 52e wird durch die Bitnummern "49" bis "53" des Instruktionswortes gesteuert, das in dem Instruktionsregister 22 gespeichert ist, das heißt, durch das erste Registerspezifizierungsfeld Rc1. Der Selektor 52f wird durch die Bitnummern "54" bis "58" des Instruktionswortes gesteuert, das in dem Instruktionsregister 22 gespeichert ist, das heißt, durch das zweite Registerspezifizierungsfeld Rc2. Die Daten in den Registern R0 bis R31 werden von den Anschlüssen Roal, R0a2, R0b1, R0b2, R0c1 und R0c2 über die jeweiligen Selektoren 52a bis 52f ausgegeben, die durch die Bits des Instruktionswortes selektiert werden, das in dem Instruktionsregister 22 gespeichert ist.
- Unter erneuter Bezugnahme nun auf die Beschreibung von FIG. 3 werden die Daten, die von dem Anschluß R0a1 der Registerdatei 50 empfangen werden, in einer Verriegelungsschaltung 55a verriegelt. Andererseits werden eines der Daten, die von dem Anschluß R0a2 der Registerdatei 50 erhalten werden, und die Direktdaten IMM32, die den Bitnummern "9" bis "40" des Instruktionswortes entsprechen, das in dem Instruktionsregister 22 gespeichert ist, durch einen Selektor 54 selektiert und in einer Verriegelungsschaltung 55b verriegelt. Die Daten, die in den Verriegelungsschaltungen 55a und 55b verriegelt sind, werden in einer ersten Operationsschaltung 56 einer Operation unterzogen. Ein Resultat der Operation in der ersten Operationsschaltung 56 wird in einer Verriegelungsschaltung 57 verriegelt.
- Die Daten, die von dem Anschluß R0b1 der Registerdatei 50 empfangen werden, werden in einer Verriegelungsschaltung 59a verriegelt. Andererseits werden eines der Daten, die von dem Anschluß R0b2 der Registerdatei 50 empfangen werden, die Direktdaten IMM25, die den Bitnurnrnern "34" bis "58" des Instruktionswortes entsprechen, das in dem Instruktionsregister 22 gespeichert ist, und die Direktdaten IMM32, die den Bitnummern "27" bis "58" des Instruktionswortes entsprechen, das in dem Instruktionsregister 22 gespeichert ist, durch einen Selektor 58 selektiert und in einer Verriegelungs schaltung 59b verriegelt. Die Daten, die in den Verriegelungsschaltungen 59a und 59b verriegelt sind, werden in einer zweiten Operationsschaltung 60 einer Operation unterzogen. Ein Resultat der Operation in der zweiten Operationsschaltung 60 wird in einer Verriegelungsschaltung 61 verriegelt.
- Die Daten, die von den Anschlüssen R0c1 und R0c2 der Registerdatei 50 empfangen werden, werden jeweilig in den Verriegelungsschaltungen 62a und 62b verriegelt. Die Daten, die in den Verriegelungsschaltungen 62a und 62b verriegelt sind, werden in einer dritten Operationsschaltung 63 einer Operation unterzogen. Ein Resultat der Operation in der dritten Operationsschaltung 63 wird in einer Verriegelungsschaltung 64 verriegelt.
- Wenn das lange Instruktionswort ausgeführt wird, welches das erste Format hat, werden die gespeicherten Daten der Register R0 bis R31, die durch die Registerspezifizierungsfelder Ra1, Ra2, Rb1, Rb2, Rd und Rc2 spezifiziert sind, von den Anschlüssen Roal, R0a2, R0b1, R0b2, R0c1 und R0c2 der Registerdatei 50 ausgegeben. Zusätzlich werden durch die Selektion der Ausgabedaten von dem Anschluß R0b2 durch den Selektor 58 die oben beschriebenen Daten in den Verriegelungsschaltungen 55a, 55b, 59a, 59b, 62a und 62b verriegelt, und Operationen werden in den Operationsschaltungen 56, 60 und 63 gleichzeitig ausgeführt. Die Resultate der Operationen werden jeweilig auf die Anschlüsse RIa3, RIb3 und RIc3 der Registerdatei 50 angewendet.
- Wenn das lange Instruktionswort ausgeführt wird, welches das zweite Format hat, werden die gespeicherten Daten der Register R0 bis R31, die durch die Registerspezifizierungsfelder Ra1, Ra2 und Rb1 spezifiziert sind, von den Anschlüssen R0a1, R0a2, R0b1 und R0b2 der Registerdatei 50 ausgegeben. Zusätzlich werden durch die Selektion der Direktdaten IMM25 durch den Selektor 58 die oben beschriebenen Daten in den Verriegelungsschaltungen 55a, 55b, 59a und 59b verriegelt, und Operationen in den Operationsschaltungen 56 und 60 werden gleichzeitig ausgeführt. Die Resultate der Operationen werden jeweilig auf die Anschlüsse RIa3 und RIb3 der Registerdatei 50 angewendet. Wenn jedoch das Instruktionswort, welches das Format B hat, eine Ladeinstruktion ist, wird das Resultat der Adressenberechnung, die in der Operationsschaltung 60 erfolgt, dem Operandenspeicher 70 zugeführt, und die Ladedaten werden von dem Operandenspeicher 70 dem Anschluß RI1 der Registerdatei 50 zugeführt.
- Wenn das lange Instruktionswort ausgeführt wird, welches das dritte Format hat, werden die gespeicherten Daten der Register R0 bis R31, die durch die Registerspezifizierungsfelder Ra1, Ra2 und Rb1 spezifiziert sind, von den Anschlüssen Roal, R0a2, R0b1 und R0b2 der Registerdatei 50 ausgegeben. Zusätzlich werden durch die Selektion der Direktdaten IMM32 durch den Selektor 58 die oben beschriebenen Daten in den Verriegelungsschaltungen 55a, 55b, 59a und 59b verriegelt, und Operationen in den Operationsschaltungen 56 und 60 werden gleichzeitig ausgeführt. Die Resultate der Operationen werden jeweilig auf die Anschlüsse RIa3 und RIb3 der Registerdatei 50 angewendet&sub1; Wenn jedoch das Instruktionswort, welches das Format B hat, eine Ladeinstruktion ist, wird das Resultat der Adressenberechnung, die in der Operationsschaltung 60 erfolgt, dem Operandenspeicher 70 zugeführt, und die Ladedaten werden von dem Operandenspeicher 70 dem Anschluß RI1 der Registerdatei 50 zugeführt.
- Wenn das lange Instruktionswort ausgeführt wird, welches das vierte Format hat, werden die gespeicherten Daten der Register R0 bis R31, die durch das Registerspezifizierungsfeld Ra1 spezifiziert sind, von dem Anschluß R0a1 der Registerdatei 50 ausgegeben. Zusätzlich werden durch die Selektion der Direktdaten IMM32 durch den Selektor 54 die oben beschriebenen Daten in den Verriegelungsschaltungen 55a und 55b verriegelt, und in der Operationsschaltung 56 wird eine Operation ausgeführt. Das Resultat der Operation wird auf den Anschluß RIa3 der Registerdatei 50 angewendet. Wenn jedoch das Instruktionswort, welches das Format B hat, eine Ladeinstruktion ist, wird das Resultat der Adressenberechnung, die in der Operationsschaltung 60 ausgeführt wird, dem Operandenspeicher 70 zugeführt, und die Ladedaten werden von dem Operandenspeicher 70 dem Anschluß RI1 der Registerdatei 50 zugeführt. In dieser Ausführungsform hat der Prozessor 21 eine 32-Bit-Struktur. Aus diesem Grund sind die Bitnummern "41" bis "58" des langen Instruktionswortes, welches das vierte Format hat, ungenutzt. Wenn aber der Prozessor 21 eine 64-Bit-Strukur hat, können alle Bitnummern "9" bis "58" des langen Instruktionswortes, welches das vierte Format hat, als Direktdaten IMM51 genutzt werden.
- Eine Instruktionsadresse, die von einem Programmzähler 71 ausgegeben wird, oder eine Sprungadresse, die von der Verriegelungsschaltung 61 ausgegeben wird, wird durch einen Selektor 72 selektiert und dem Instruktionsspeicher 20 zugeführt, um das nächste lange Instruktionswort zu lesen.
- FIG. 7 zeigt eine Ausführungsform der in FIG. 3 gezeigten Operationsschaltung 56. Die Operationsschaltung 56 enthält eine Arithmetik-Logik-Einheit (ALU) 56a und einen Multiplizierer 56b, die wie gezeigt verbunden sind.
- FIG. 8 zeigt eine Ausführungsform der in FIG. 3 gezeigten Operationsschaltung 60. Die Operationsschaltung 60 enthält eine ALU 60a und eine Verschiebeschaltung 60b, die wie gezeigt verbunden sind.
- FIG. 9 zeigt eine Ausführungsform der in FIG. 3 gezeigten Operationsschaltung 63. Die Operationsschaltung 63 enthält eine ALU 63a.
- Durch Begrenzen der Instruktionscodes OPa, OPb und OPc der langen Instruktionswörter, die die ersten bis vierten Formate haben, auf nur jene Instruktionen, die in den Operationsschaltungen 56, 60 und 63 ausgeführt werden können, wird es möglich, die parallele Ausführung von Instruktionen zu erleichtern.
- Deshalb werden gemäß der vorliegenden Erfindung die ungenutzten Bits des langen Instruktionswortes eliminiert und wird die Bitnutzungseffektivität verbessert, indem das lange Instruktionswort, welches die feststehende Länge hat, aus dem Typencode und einem oder mehreren Instruktionswörtern gebildet wird. Zusätzlich wird es möglich, durch Reduzieren der Anzahl von Instruktionswörtern, die in dem langen Instruktionswort enthalten sind, umfangreiche Direktdaten zu spezifizieren. Da die Struktur der Instruktionswörter, die das lange Instruktionswort bilden, das heißt, die Kombination der Instruktionswörter, die das lange Instruktionswort bilden, durch den Typencode definiert ist, wird es ferner möglich, sowohl die Steuerung der Hardware als auch die Hardwarestruktur zu vereinfachen, wenn eine Vielzahl von Instruktionen in Abhängigkeit von der Kombination der In struktionswörter parallel ausgeführt wird.
Claims (11)
1. Instruktionsverfahren zum Spezifizieren einer
Instruktion, die in einer
Informationsverarbeitungsvorrichtung auszuführen ist, mit den Schritten:
Bilden eines oder mehrerer Instruktionswörter, die
jeweils eine einzelne Instruktion spezifizieren, aus
wenigstens einem Instruktionscode (OPa, OPb, OPc) und einem
Operandenspezifizierungsteil (Ra1-Ra3, Rb1-Rb3, Rc1-Rc3);
Bilden eines oder mehrerer langer
Instruktionswörter, die jeweils eine feststehende Länge haben, aus einem
Typencode (Type) und einem oder mehreren der
Instruktionswörter, welcher Typencode eine Struktur spezifiziert, mit
der das eine oder die mehreren Instruktionswörter in dem
langen Instruktionswort enthalten sind, und der
untereinander verschiedene Strukturen der Instruktionswörter
bezeichnen kann, wenn eine Vielzahl der Instruktionswörter in dem
langen Instruktionswort enthalten ist; und
Spezifizieren einer oder einer Vielzahl von
Instruktionen durch ein langes Instruktionswort;
und bei dem die Länge und das Format des
Instruktionswortes variabel sind.
2. Instruktionsverfahren nach Anspruch 1, bei dem die
Instruktionswörter ein erstes Instruktionswort enthalten,
das ein erstes Format (A) hat, ein zweites Instruktionswort,
das ein zweites Format (B) hat, und ein drittes
Instruktionswort, das ein drittes Format (C, D) hat, welches erste
Instruktionswort eine Operation zwischen dem Inhalt von
ersten und zweiten Registern und das Speichern des
Operationsresultats in einem dritten Register anweist, welches
zweite Instruktionswort eine Operation zwischen dem Inhalt
des ersten Registers und Direktdaten und das Speichern des
Operationsresultats in dem dritten Register anweist, welches
dritte Instruktionswort das Speichern der Direktdaten in dem
dritten Register anweist.
3. Instruktionsverfahren nach Anspruch 2, bei dem die
langen Instruktionswörter ein erstes langes Instruktionswort
enthalten, das ein erstes Wortformat (FIG. 2A) hat, ein
zweites langes Instruktionswort, das ein zweites Wortformat
(FIG. 2B) hat, ein drittes langes Instruktionswort, das ein
drittes Wortformat (FIG. 2C) hat, und ein viertes langes
Instruktionswort, das ein viertes Wortformat (FIG. 2D) hat,
welches erste lange Instruktionswort aus dem Typencode und
drei ersten Instruktionswörtern gebildet ist, welches zweite
lange Instruktionswort aus dem Typencode, einem ersten
Instruktionswort und einem zweiten Instruktionswort gebildet
ist, welches dritte lange Instruktionswort aus dem
Typencode, einem ersten Instruktionswort und einem dritten
Instruktionswort gebildet ist, welches vierte lange
Instruktionswort aus dem Typencode und einem dritten Instruktionswort
gebildet ist.
4. Instruktionsverfahren nach Anspruch 2 oder
Anspruch 3, bei dem der Typencode aus vier Bits gebildet
ist, das erste Instruktionswort aus zwanzig Bits gebildet
ist, das zweite Instruktionswort aus vierzig Bits gebildet
ist, das dritte Instruktionswort aus vierzig oder sechzig
Bits gebildet ist und die feststehende Länge der langen
Instruktionswörter vierundsechzig Bits beträgt.
5. Ausführungssystem zum Ausführen von Instruktionen
in einer Informationsverarbeitungsvorrichtung, in dem
vorgesehen sind:
ein Eingabemittel (22) zum Eingeben eines langen
Instruktionswortes, das eine feststehende Länge hat, welches
lange Instruktionswort aus einem Typencode (Type) und einem
oder mehreren Instruktionswörtern gebildet ist, wobei jedes
der Instruktionswörter eine variable Länge und ein variables
Format hat und wenigstens einen Instruktionscode (OPa, OPb,
OPc) und einen Operandenspezifizierungsteil (Ra1-Ra3, Rb1-
Rb3, Rc1-Rc3) zum Spezifizieren einer einzelnen Instruktion
enthält, welcher Typencode eine Struktur spezifiziert, mit
der das eine oder die mehreren Instruktionswörter in dem
langen Instruktionswort enthalten sind;
ein Beurteilungsmittel (23), das mit dem
Eingabemittel gekoppelt ist und dafür ausgelegt ist, um aus dem
Typencode die Kombination und Anzahl von Instruktionswörtern
zu identifizieren, die in dem langen Instruktionswort
enthalten sind, und zum Ausgeben eines Beurteilungsresultats;
eine Vielzahl von Operationsmitteln (56, 60, 63),
die mit dem Beurteilungsmittel gekoppelt sind, zum
unabhängigen Ausführen von Operationen, die durch die
Instruktionswörter spezifiziert sind, die in dem langen Instruktionswort
enthalten sind; und
ein Zuordnungsmittel (43, 58), das mit dem
Beurteilungsrnittel gekoppelt ist, zum Zuordnen einer Operation,
die durch jedes Instruktionswort spezifiziert ist, das in
dem langen Instruktionswort enthalten ist, zu einem der
Operationsmittel in Abhängigkeit von dem
Beurteilungsresultat, das von dem Beurteilungsmittel ausgegeben wird.
6. Ausführungssystem nach Anspruch 5, in dem die
Operationsmittel (56, 60, 63) Operationen gleichzeitig parallel
ausführen, wenn das lange Instruktionswort eine Vielzahl der
Instruktionswörter enthält.
7. Ausführungssystem nach Anspruch 5 oder 6, in dem
ferner eine Vielzahl von Operandenregistermitteln (50)
vorgesehen ist, die mit dem Beurteilungsmittel gekoppelt
sind, und das Beurteilungsmittel (23) ein Mittel enthält,
zum Spezifizieren der Operandenregistermittel in
Abhängigkeit von dem Operandenspezifizierungsteil von jedem
Instruktionswort
für jedes der Instruktionswörter, die in dem
langen Instruktionswort enthalten sind
8. Ausführungssystem nach Anspruch 7, bei dem die
Instruktionswörter ein erstes Instruktionswort enthalten,
das ein erstes Format (A) hat, ein zweites Instruktionswort,
das ein zweites Format (B) hat, und ein drittes
Instruktionswort, das ein drittes Format (C, D) hat, welches erste
Instruktionswort eine Operation zwischen dem Inhalt von
ersten und zweiten Registern und das Speichern des
Operationsresultats in einem dritten Register anweist, welches
zweite Instruktionswort eine Operation zwischen dem Inhalt
des ersten Registers und Direktdaten und das Speichern des
Operationsresultats in dem dritten Register anweist, welches
dritte Instruktionswort das Speichern von Direktdaten in dem
dritten Register anweist, welche ersten bis dritten Register
in den Operandenregistermitteln (50) enthalten sind
9. Ausführungssystem nach Anspruch 8, bei dem die
langen Instruktionswörter ein erstes langes Instruktionswort
enthalten, das ein erstes Wortformat (FIG. 2A) hat, ein
zweites langes Instruktionswort, das ein zweites Wortformat
(FIG. 2B) hat, ein drittes langes Instruktionswort, das ein
drittes Wortformat (FIG. 2C) hat, und ein viertes langes
Instruktionswort, das ein viertes Wortformat (FIG. 2D) hat,
welches erste lange Instruktionswort aus dem Typencode und
drei ersten Instruktionswörtern gebildet ist, welches zweite
lange Instruktionswort aus dem Typencode, einem ersten
Instruktionswort und einem zweiten Instruktionswort gebildet
ist, welches dritte lange Instruktionswort aus dem
Typencode, einem ersten Instruktionswort und einem dritten
Instruktionswort gebildet ist, welches vierte lange
Instruktionswort aus dem Typencode und einem dritten
Instruktionswort gebildet ist.
10. Ausführungssystem nach Anspruch 9, bei dem der
Typencode aus vier Bits gebildet ist, das erste
Instruktionswort aus zwanzig Bits gebildet ist, das zweite
Instruktionswort aus vierzig Bits gebildet ist, das dritte
Instruktionswort aus vierzig oder sechzig Bits gebildet ist und die
feststehende Länge der langen Instruktionswörter
vierundsechzig Bits beträgt
11. Ausführungssystem nach irgendeinem der Ansprüche 5
bis 10, bei dem
der Typencode untereinander verschiedene
Strukturen der Instruktionswörter bezeichnen kann, wenn eine
Vielzahl der Instruktionswörter in dem langen Instruktionswort
enthalten ist; und
das Beurteilungsmittel (23) zusätzlich dafür
ausgelegt ist, um aus dem Typencode die Struktur von jedem
Instruktionswort zu identifizieren und solch eine
Identifizierung in dem Beurteilungsresultat zu enthalten.
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP1285471A JP2835103B2 (ja) | 1989-11-01 | 1989-11-01 | 命令指定方法及び命令実行方式 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| DE69031899D1 DE69031899D1 (de) | 1998-02-12 |
| DE69031899T2 true DE69031899T2 (de) | 1998-04-16 |
Family
ID=17691950
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| DE69031899T Expired - Fee Related DE69031899T2 (de) | 1989-11-01 | 1990-10-26 | Befehlsmethode und Ausführungssystem |
Country Status (7)
| Country | Link |
|---|---|
| US (1) | US5442762A (de) |
| EP (1) | EP0426393B1 (de) |
| JP (1) | JP2835103B2 (de) |
| KR (1) | KR930007041B1 (de) |
| AU (1) | AU625008B2 (de) |
| CA (1) | CA2029088C (de) |
| DE (1) | DE69031899T2 (de) |
Families Citing this family (59)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5961629A (en) * | 1991-07-08 | 1999-10-05 | Seiko Epson Corporation | High performance, superscalar-based computer system with out-of-order instruction execution |
| EP0547240B1 (de) * | 1991-07-08 | 2000-01-12 | Seiko Epson Corporation | Risc-mikroprozessorarchitektur mit schnellem unterbrechungs- und ausnahmemodus |
| US5539911A (en) | 1991-07-08 | 1996-07-23 | Seiko Epson Corporation | High-performance, superscalar-based computer system with out-of-order instruction execution |
| KR100299691B1 (ko) | 1991-07-08 | 2001-11-22 | 구사마 사부로 | 확장가능알아이에스씨마이크로프로세서구조 |
| JP2746775B2 (ja) * | 1991-08-05 | 1998-05-06 | シャープ株式会社 | 中央処理装置 |
| JPH05100897A (ja) * | 1991-10-03 | 1993-04-23 | Agency Of Ind Science & Technol | 命令トレース方式 |
| EP0855647A1 (de) * | 1992-01-06 | 1998-07-29 | Hitachi, Ltd. | Rechner zur parallelen Durchführung von Datenabholung und Datenvorgriff |
| US5438668A (en) | 1992-03-31 | 1995-08-01 | Seiko Epson Corporation | System and method for extraction, alignment and decoding of CISC instructions into a nano-instruction bucket for execution by a RISC computer |
| JP3644959B2 (ja) | 1992-09-29 | 2005-05-11 | セイコーエプソン株式会社 | マイクロプロセッサシステム |
| US6735685B1 (en) | 1992-09-29 | 2004-05-11 | Seiko Epson Corporation | System and method for handling load and/or store operations in a superscalar microprocessor |
| WO1994027216A1 (en) * | 1993-05-14 | 1994-11-24 | Massachusetts Institute Of Technology | Multiprocessor coupling system with integrated compile and run time scheduling for parallelism |
| US6360313B1 (en) | 1993-11-05 | 2002-03-19 | Intergraph Corporation | Instruction cache associative crossbar switch |
| DE69430018T2 (de) | 1993-11-05 | 2002-11-21 | Intergraph Corp., Huntsville | Befehlscachespeicher mit assoziativem Kreuzschienenschalter |
| US5860085A (en) * | 1994-08-01 | 1999-01-12 | Cypress Semiconductor Corporation | Instruction set for a content addressable memory array with read/write circuits and an interface register logic block |
| US6397262B1 (en) | 1994-10-14 | 2002-05-28 | Qnx Software Systems, Ltd. | Window kernel |
| US5745759A (en) * | 1994-10-14 | 1998-04-28 | Qnx Software Systems, Ltd. | Window kernel |
| US5867726A (en) * | 1995-05-02 | 1999-02-02 | Hitachi, Ltd. | Microcomputer |
| JP2931890B2 (ja) * | 1995-07-12 | 1999-08-09 | 三菱電機株式会社 | データ処理装置 |
| US5848288A (en) * | 1995-09-20 | 1998-12-08 | Intel Corporation | Method and apparatus for accommodating different issue width implementations of VLIW architectures |
| 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 |
| JP3201716B2 (ja) * | 1996-02-22 | 2001-08-27 | シャープ株式会社 | コンピュータ装置 |
| US5867681A (en) * | 1996-05-23 | 1999-02-02 | Lsi Logic Corporation | Microprocessor having register dependent immediate decompression |
| US5896519A (en) * | 1996-06-10 | 1999-04-20 | Lsi Logic Corporation | Apparatus for detecting instructions from a variable-length compressed instruction set having extended and non-extended instructions |
| US5794010A (en) * | 1996-06-10 | 1998-08-11 | Lsi Logic Corporation | Method and apparatus for allowing execution of both compressed instructions and decompressed instructions in a microprocessor |
| US5890009A (en) * | 1996-12-12 | 1999-03-30 | International Business Machines Corporation | VLIW architecture and method for expanding a parcel |
| JP3790607B2 (ja) * | 1997-06-16 | 2006-06-28 | 松下電器産業株式会社 | Vliwプロセッサ |
| US6219779B1 (en) * | 1997-06-16 | 2001-04-17 | Matsushita Electric Industrial Co., Ltd. | Constant reconstructing processor which supports reductions in code size |
| JP3412462B2 (ja) | 1997-07-30 | 2003-06-03 | 松下電器産業株式会社 | プロセッサ |
| JP3327818B2 (ja) * | 1997-08-29 | 2002-09-24 | 松下電器産業株式会社 | プログラム変換装置及び記録媒体 |
| US6012138A (en) * | 1997-12-19 | 2000-01-04 | Lsi Logic Corporation | Dynamically variable length CPU pipeline for efficiently executing two instruction sets |
| US6112299A (en) * | 1997-12-31 | 2000-08-29 | International Business Machines Corporation | Method and apparatus to select the next instruction in a superscalar or a very long instruction word computer having N-way branching |
| US6081884A (en) * | 1998-01-05 | 2000-06-27 | Advanced Micro Devices, Inc. | Embedding two different instruction sets within a single long instruction word using predecode bits |
| US6076154A (en) * | 1998-01-16 | 2000-06-13 | U.S. Philips Corporation | VLIW processor has different functional units operating on commands of different widths |
| EP0942357A3 (de) * | 1998-03-11 | 2000-03-22 | Matsushita Electric Industrial Co., Ltd. | Mit einer Mehrzahl von Befehlsformaten vereinbarer Datenprozessor |
| US6324639B1 (en) | 1998-03-30 | 2001-11-27 | Matsushita Electric Industrial Co., Ltd. | Instruction converting apparatus using parallel execution code |
| US6237076B1 (en) * | 1998-08-19 | 2001-05-22 | International Business Machines Corporation | Method for register renaming by copying a 32 bits instruction directly or indirectly to a 64 bits instruction |
| EP0992892B1 (de) * | 1998-10-06 | 2015-12-02 | Texas Instruments Inc. | Verbundspeicherzugriffsbefehle |
| US6681319B1 (en) | 1998-10-06 | 2004-01-20 | Texas Instruments Incorporated | Dual access instruction and compound memory access instruction with compatible address fields |
| US6366998B1 (en) | 1998-10-14 | 2002-04-02 | Conexant Systems, Inc. | Reconfigurable functional units for implementing a hybrid VLIW-SIMD programming model |
| US7526630B2 (en) * | 1999-04-09 | 2009-04-28 | Clearspeed Technology, Plc | Parallel data processing apparatus |
| US8174530B2 (en) * | 1999-04-09 | 2012-05-08 | Rambus Inc. | Parallel date processing apparatus |
| US8169440B2 (en) | 1999-04-09 | 2012-05-01 | Rambus Inc. | Parallel data processing apparatus |
| US20080162875A1 (en) * | 1999-04-09 | 2008-07-03 | Dave Stuttard | Parallel Data Processing Apparatus |
| US20080162874A1 (en) * | 1999-04-09 | 2008-07-03 | Dave Stuttard | Parallel data processing apparatus |
| US7802079B2 (en) | 1999-04-09 | 2010-09-21 | Clearspeed Technology Limited | Parallel data processing apparatus |
| US20080008393A1 (en) * | 1999-04-09 | 2008-01-10 | Dave Stuttard | Parallel data processing apparatus |
| EP1181648A1 (de) | 1999-04-09 | 2002-02-27 | Clearspeed Technology Limited | Paralleldatenverarbeitungsvorrichtung |
| US8171263B2 (en) * | 1999-04-09 | 2012-05-01 | Rambus Inc. | Data processing apparatus comprising an array controller for separating an instruction stream processing instructions and data transfer instructions |
| US8762691B2 (en) | 1999-04-09 | 2014-06-24 | Rambus Inc. | Memory access consolidation for SIMD processing elements using transaction identifiers |
| US7966475B2 (en) | 1999-04-09 | 2011-06-21 | Rambus Inc. | Parallel data processing apparatus |
| US20070242074A1 (en) * | 1999-04-09 | 2007-10-18 | Dave Stuttard | Parallel data processing apparatus |
| US6928073B2 (en) * | 1999-10-01 | 2005-08-09 | Stmicroelectronics Ltd. | Integrated circuit implementing packet transmission |
| US6675285B1 (en) * | 2000-04-21 | 2004-01-06 | Ati International, Srl | Geometric engine including a computational module without memory contention |
| US6633969B1 (en) | 2000-08-11 | 2003-10-14 | Lsi Logic Corporation | Instruction translation system and method achieving single-cycle translation of variable-length MIPS16 instructions |
| KR100636596B1 (ko) | 2004-11-25 | 2006-10-23 | 한국전자통신연구원 | 고에너지 효율 병렬 처리 데이터 패스 구조 |
| US8495341B2 (en) * | 2010-02-17 | 2013-07-23 | International Business Machines Corporation | Instruction length based cracking for instruction of variable length storage operands |
| US9678754B2 (en) * | 2010-03-03 | 2017-06-13 | Qualcomm Incorporated | System and method of processing hierarchical very long instruction packets |
| US20110314263A1 (en) * | 2010-06-22 | 2011-12-22 | International Business Machines Corporation | Instructions for performing an operation on two operands and subsequently storing an original value of operand |
| JP5625903B2 (ja) * | 2010-12-29 | 2014-11-19 | 富士通株式会社 | 演算処理装置および演算処理方法 |
Family Cites Families (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4488219A (en) * | 1982-03-18 | 1984-12-11 | International Business Machines Corporation | Extended control word decoding |
| US4569016A (en) * | 1983-06-30 | 1986-02-04 | International Business Machines Corporation | Mechanism for implementing one machine cycle executable mask and rotate instructions in a primitive instruction set computing system |
| US5179680A (en) * | 1987-04-20 | 1993-01-12 | Digital Equipment Corporation | Instruction storage and cache miss recovery in a high speed multiprocessing parallel processing apparatus |
| US5036454A (en) * | 1987-05-01 | 1991-07-30 | Hewlett-Packard Company | Horizontal computer having register multiconnect for execution of a loop with overlapped code |
| JP2635057B2 (ja) * | 1987-11-04 | 1997-07-30 | 株式会社日立製作所 | マイクロプロセッサ |
| US5115500A (en) * | 1988-01-11 | 1992-05-19 | International Business Machines Corporation | Plural incompatible instruction format decode method and apparatus |
| US5202967A (en) * | 1988-08-09 | 1993-04-13 | Matsushita Electric Industrial Co., Ltd. | Data processing apparatus for performing parallel decoding and parallel execution of a variable word length instruction |
| US5051885A (en) * | 1988-10-07 | 1991-09-24 | Hewlett-Packard Company | Data processing system for concurrent dispatch of instructions to multiple functional units |
| US5293592A (en) * | 1989-04-07 | 1994-03-08 | Intel Corporatino | Decoder for pipelined system having portion indicating type of address generation and other portion controlling address generation within pipeline |
| US5197137A (en) * | 1989-07-28 | 1993-03-23 | International Business Machines Corporation | Computer architecture for the concurrent execution of sequential programs |
-
1989
- 1989-11-01 JP JP1285471A patent/JP2835103B2/ja not_active Expired - Fee Related
-
1990
- 1990-10-26 EP EP90311767A patent/EP0426393B1/de not_active Expired - Lifetime
- 1990-10-26 DE DE69031899T patent/DE69031899T2/de not_active Expired - Fee Related
- 1990-10-31 CA CA002029088A patent/CA2029088C/en not_active Expired - Fee Related
- 1990-10-31 AU AU65722/90A patent/AU625008B2/en not_active Ceased
- 1990-11-01 KR KR1019900017654A patent/KR930007041B1/ko not_active Expired - Fee Related
-
1994
- 1994-02-25 US US08/202,668 patent/US5442762A/en not_active Expired - Fee Related
Also Published As
| Publication number | Publication date |
|---|---|
| AU625008B2 (en) | 1992-06-25 |
| KR930007041B1 (ko) | 1993-07-26 |
| JPH03147021A (ja) | 1991-06-24 |
| KR910010301A (ko) | 1991-06-29 |
| CA2029088A1 (en) | 1991-05-02 |
| DE69031899D1 (de) | 1998-02-12 |
| US5442762A (en) | 1995-08-15 |
| EP0426393A2 (de) | 1991-05-08 |
| JP2835103B2 (ja) | 1998-12-14 |
| EP0426393A3 (en) | 1991-08-07 |
| EP0426393B1 (de) | 1998-01-07 |
| CA2029088C (en) | 1994-05-03 |
| AU6572290A (en) | 1991-08-01 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| DE69031899T2 (de) | Befehlsmethode und Ausführungssystem | |
| DE3751503T2 (de) | Datenprozessor in Pipelinestruktur mit der Fähigkeit mehrere Befehle parallel zu dekodieren und auszuführen. | |
| DE3851858T2 (de) | Digitaler Signalprozessor. | |
| DE69115344T2 (de) | Vorverarbeitungsprozessor zur Verbindung von Befehlen für einen Cache-Speicher | |
| DE2735814C2 (de) | Nach dem Pipelineprinzip arbeitende Datenverarbeitungseinrichtung | |
| DE69129569T2 (de) | Maschine mit sehr langem Befehlswort für leistungsfähige Durchführung von Programmen mit bedingten Verzweigungen | |
| DE3689595T2 (de) | Datenverarbeitungssystem. | |
| DE3424962C2 (de) | ||
| EP0097725B1 (de) | Einrichtung im Befehlswerk eines mikroprogrammgesteuerten Prozessors zur direkten hardwaregesteuerten Ausführung bestimmter Instruktionen | |
| DE3751540T2 (de) | Verfahren und Vorrichtung zur Datenverarbeitung. | |
| EP0010185B1 (de) | Virtuell-Adressiervorrichtung für einen Computer | |
| DE1549523B2 (de) | Datenverarbeitungsanlage | |
| DE3750028T2 (de) | Pipelineprozessor mit schwacher Kopplung. | |
| DE3686828T2 (de) | Hochleistungsparalleler vektorprozessor mit modifizierter register/elementprozessor konfiguration. | |
| DE2912287B2 (de) | Datenverarbeitungsanlage | |
| DE3043653C2 (de) | Datenverarbeitungsanlage | |
| DE2524046A1 (de) | Elektronische datenverarbeitungsanlage | |
| DE2911909C2 (de) | Digitales Datenverarbeitungsgerät | |
| DE68918840T2 (de) | Fehlererkennung für teilschreiboperationen für speicher. | |
| DE69032511T2 (de) | Multiprozessor-Steuereinrichtung mit gemeinsamem Steuerungsspeicher | |
| DE68928041T2 (de) | Mikroprogrammgesteuerter Mikroprozessor mit Zeiger-Register und Zugriffsverfahren dafür | |
| DE2835110A1 (de) | Schneller echtzeit-rechneremulator | |
| DE2336676B2 (de) | Einrichtung zur Modifizierung von Mikroprogrammbefehlen | |
| DE3586709T2 (de) | Informationsverarbeitungseinheit. | |
| DE19628039B4 (de) | Speicheradressen-Steuerschaltung |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 8364 | No opposition during term of opposition | ||
| 8339 | Ceased/non-payment of the annual fee |