JP3146707B2 - Computer with parallel operation function - Google Patents

Computer with parallel operation function

Info

Publication number
JP3146707B2
JP3146707B2 JP34792992A JP34792992A JP3146707B2 JP 3146707 B2 JP3146707 B2 JP 3146707B2 JP 34792992 A JP34792992 A JP 34792992A JP 34792992 A JP34792992 A JP 34792992A JP 3146707 B2 JP3146707 B2 JP 3146707B2
Authority
JP
Japan
Prior art keywords
instruction
length
instructions
register
operations
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
Application number
JP34792992A
Other languages
Japanese (ja)
Other versions
JPH05257687A (en
Inventor
多加志 堀田
康弘 中塚
成弥 田中
弘道 山田
英雄 前島
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP34792992A priority Critical patent/JP3146707B2/en
Publication of JPH05257687A publication Critical patent/JPH05257687A/en
Application granted granted Critical
Publication of JP3146707B2 publication Critical patent/JP3146707B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【産業上の利用分野】本発明は、並列演算を実行する計
算機に係り、特にスーパスカラ方式とVLIW方式とを混在
させて実行する並列演算機能を有する計算機に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a computer for executing a parallel operation, and more particularly to a computer having a parallel operation function for executing a superscalar system and a VLIW system in a mixed manner.

【0002】[0002]

【従来の技術】計算機アーキテクチャは、半導体技術の
進歩等に支えられ、年々進歩している。1980年代に
は、これまでの複雑な命令をマイクロ命令を使って複数
サイクルにかけて処理するCISC(Complex Instructi
on Set Computer)に代って、簡単な命令を1サイクルで
実行するRISC(Reduced Instruction Set Computer)
が現れた。
2. Description of the Related Art Computer architecture is progressing year by year, supported by advances in semiconductor technology. In the 1980s, CISC (Complex Instructi
RISC (Reduced Instruction Set Computer) that executes simple instructions in one cycle instead of on set computer)
Appeared.

【0003】さらに、演算方式の高速化技術として、ス
ーパスカラ方式とVLIW(VeryLong Instruction Wor
d)方式が提案されている。
[0003] Further, as a technique for accelerating the operation method, a superscalar method and a VLIW (Very Long Instruction Worry) have been proposed.
d) A scheme has been proposed.

【0004】スーパスカラ方式とは、命令実行時にハー
ドウェアで命令間の競合を調べ、競合が無ければ1マシ
ンサイクルに複数命令を実行する方式で、特願昭63−28
3673号(従来技術1)や、J-Hennessy and D.A Patterson
“Computer Architecture AQuantitative Approach”Mo
rgan Kantmann Publishers, Inc1990.P.318
(従来技術2)に記載されている。
The superscalar system is a system in which a conflict between instructions is checked by hardware at the time of instruction execution, and if there is no conflict, a plurality of instructions are executed in one machine cycle.
No. 3673 (prior art 1), J-Hennessy and DA Patterson
“Computer Architecture AQuantitative Approach” Mo
rgan Kantmann Publishers, Inc 1990.P.318
(Prior art 2).

【0005】またVLIW方式とは、複数演算器の動作
を制御するフィールドを持った長い命令を用いる方式で
ある。通常のRISCプロセッサの命令長が32bit な
のに対し、64,128,256以上といった長さの命
令を持つ。この方式についての説明も、前記J−Henness
y and D.A Patterson(従来技術1)による文献に記され
ている。
The VLIW method is a method using a long instruction having a field for controlling the operation of a plurality of arithmetic units. While the instruction length of a normal RISC processor is 32 bits, it has an instruction length of 64, 128, 256 or more. The explanation of this method is also described in J-Henness
y and DA Patterson (Prior Art 1).

【0006】VLIW方式の改良技術として、1語長命
令と3語長命令を混在させて、VLIW方式で処理すること
により、コードサイズの大きさを改善する技術が、Robe
rtCohn et al.“Architecture and Compiler Tradeoffs
a Long Instruction WordMicroprocessor”Third Inte
rnational Conference on Architectual Supportfor Pr
ogramming Languages and Operating System, 198
9,P.2−14(従来技術3)に記載されている。
As an improved technique of the VLIW method, a technique of improving the code size by mixing a one-word instruction and a three-word instruction and processing them in the VLIW method is disclosed in Robe.
rtCohn et al. “Architecture and Compiler Tradeoffs
a Long Instruction WordMicroprocessor ”Third Inte
rnational Conference on Architectual Supportfor Pr
ogramming Languages and Operating System, 198
9, p. 2-14 (Prior Art 3).

【0007】[0007]

【発明が解決しようとする課題】以下に、スーパスカラ
方式とVLIW方式の特徴について述べる。
The features of the superscalar system and the VLIW system will be described below.

【0008】スーパスカラ方式の利点は、単一演算を指
示する命令長の短い命令で、有効演算のみを指示するた
めコードサイズが小さくできる。
The advantage of the superscalar method is that the instruction size is a short instruction that indicates a single operation, and only an effective operation is specified, so that the code size can be reduced.

【0009】命令を追加する必要がないので前機種との
互換性が保たれることである。
Since there is no need to add instructions, compatibility with the previous model is maintained.

【0010】これに対して、スーパスカラ方式の第1の
問題点は、並列実行する演算内の競合を検出しなくては
ならないことである。並列演算する演算の数が多くなれ
ばなる程、競合検出に要するハードウェア量は大とな
る。
On the other hand, the first problem of the superscalar system is that it is necessary to detect a conflict in the operation to be executed in parallel. The greater the number of operations performed in parallel, the greater the amount of hardware required for conflict detection.

【0011】また、第2の問題点は、現サイクル以前に
実行した命令と現サイクルに実行する命令との間の競合
検出,待合わせが複雑であることである。並列演算する
演算の数が多くなればなる程、現サイクルの命令と競合
する可能性のある命令が多くなり、第2の問題点である
両者の競合検出,待合わせのハードウェアは複雑にな
る。
A second problem is that the detection of a conflict and the waiting between an instruction executed before the current cycle and an instruction executed in the current cycle are complicated. As the number of operations to be performed in parallel increases, the number of instructions that may conflict with the instruction in the current cycle increases, and the second problem, that is, hardware for conflict detection and queuing, becomes more complicated. .

【0012】また、第3の問題点は命令長が短いため、
命令によって指定できるレジスタの数が少ないことであ
る。16〜32本が典型例である。J−Hennessy and D.
A Pattersonの文献のP.325に示されているように、
並列して実行可能な演算を増やすためのソフトウェア上
の工夫として、ループアンローリングやソフトウェアパ
イプラインを用いようとすると、レジスタの数が不足す
る。逆に言えば、存在するレジスタの範囲でしか最適化
できない。
The third problem is that the instruction length is short,
That is, the number of registers that can be specified by the instruction is small. 16 to 32 are typical examples. J-Hennessy and D.
As shown on page 325 of the A Patterson document,
When using loop unrolling or a software pipeline as a software device to increase the number of operations that can be executed in parallel, the number of registers becomes insufficient. Conversely, optimization can only be performed within the range of existing registers.

【0013】この改善策として、上記従来技術1の文献
のE−21〜22に、演算結果を次の命令にすぐには反
映させないようにすることで、レジスタの数の不足を改
善することができると記載されている。
As a remedy, the shortage of the number of registers can be improved by preventing the operation result from being immediately reflected in the next instruction in E-21 to 22 of the above-mentioned prior art 1. It is described as possible.

【0014】また、David Callahan et al.“Software
Prefetching"Fourth InternationalConference on Arch
itectual Support for Programming Languages and
Operating System, 1991,P.40〜52の文
献に、スーパスカラマシンにおいて命令によりメインメ
モリからキャッシュメモリにデータをプリフェッチする
ことが記載されている。
Also, David Callahan et al. “Software
Prefetching "Fourth InternationalConference on Arch
itectual Support for Programming Languages and
Operating System, 1991, p. Documents 40 to 52 describe prefetching data from a main memory to a cache memory by an instruction in a super scalar machine.

【0015】以上から、スーパスカラ方式では、命令実
行の並列度を増すと上記第1,第2の問題点である競合
検出の複雑さからマシンサイクルを高めることができ
ず、処理速度が向上しないという問題を有している。
As described above, in the superscalar system, if the degree of parallelism of instruction execution is increased, the machine cycle cannot be increased due to the complexity of conflict detection, which is the first and second problems, and the processing speed is not improved. Have a problem.

【0016】次に、VLIW方式の第1の利点は、命令
長が長く、1命令の中に複数の演算が指定でき、かつ、
命令内での演算間の競合がないため、実行時にハードウ
ェアで、並列実行する演算間の競合を検出しなくてもよ
いことである。
Next, the first advantage of the VLIW method is that the instruction length is long, a plurality of operations can be specified in one instruction, and
Since there is no conflict between operations in the instruction, it is not necessary to detect conflict between operations to be executed in parallel by hardware at the time of execution.

【0017】第2の利点は、命令長が長いため、多くの
レジスタが指定可能なことである。次にVLIW方式の
第1の問題点は、前述の命令内での演算間の競合を避け
るため、全てのフィールドに有効な演算を指定できると
は限らず、コードサイズが大きくなってしまうことであ
る。
The second advantage is that since the instruction length is long, many registers can be specified. Next, the first problem of the VLIW method is that in order to avoid conflict between operations in the above-mentioned instructions, it is not always possible to specify valid operations in all fields, and the code size increases. is there.

【0018】第2の問題点は現サイクル以前に実行した
命令と現サイクルに実行する命令との間の競合検出,待
合わせが複雑なことである。これは、スーパスカラ方式
の第2の問題点と同じである。
The second problem is that detection of a conflict between the instruction executed before the current cycle and the instruction executed in the current cycle and the waiting time are complicated. This is the same as the second problem of the superscalar system.

【0019】これについて、ハードウェアでは競合検出
を行わず、コンパイラによって予め競合回避を行う技術
が、Andrew Wolf and John P. Shen“A Variable
InstructionStream Extension to the VLIW Archite
cture”,Fourth International Conference o
n Architectual Support for Programming Langu
ages and Operating System, 1991,P.2〜14
に記載されている。また、VLIW方式の第3の問題点
は、前機種との互換性が取れないことである。これは、
スーパスカラ方式が、従来の1語長命令をハードウェア
で並列実行するのに対し、VLIW方式では、命令の再
定義が必要となるからである。
In this regard, a technique that does not detect conflicts in hardware but avoids conflicts in advance by a compiler is disclosed in Andrew Wolf and John P. Shen “A Variable
InstructionStream Extension to the VLIW Archite
cture ”, Fourth International Conference o
n Architectual Support for Programming Langu
ages and Operating System, 1991, p. 2-14
It is described in. A third problem of the VLIW method is that compatibility with the previous model cannot be obtained. this is,
This is because the superscalar system executes a conventional one-word-length instruction in parallel with hardware, whereas the VLIW system requires redefinition of the instruction.

【0020】これまでに述べてきたように、スーパスカ
ラ方式とVLIW方式の利点を活かしながら、スーパス
カラ方式とVLIW方式の欠点を補う計算機は存在しな
かった。
As described above, there has been no computer that makes use of the advantages of the superscalar system and the VLIW system and compensates for the disadvantages of the superscalar system and the VLIW system.

【0021】本発明の第1の目的は、スーパスカラ方式
とVLIW方式を混在させて演算実行可能な計算機を提
供することにある。これは、単一演算を指示する命令長
の短い命令よりなる従来アーキテクチャを持つ計算機の
上位互換性を保ちながら、処理速度を向上させることで
ある。
A first object of the present invention is to provide a computer capable of executing an operation by mixing the superscalar system and the VLIW system. This is to improve the processing speed while maintaining the upward compatibility of a computer having a conventional architecture consisting of an instruction having a short instruction length instructing a single operation.

【0022】[0022]

【課題を解決するための手段】上記目的を達成するため
に、本発明によれば、第1に、レジスタとメモリとプロ
グラムカウンタを有し、上記プログラムカウンタで指示
される上記メモリに格納されている命令を読み出し、上
記命令の指示する演算を上記レジスタと上記メモリと上
記プログラムカウンタに対して実行する並列演算機能を
有する計算機において、上記命令は単一演算を指示する
命令長の短い命令又は複数演算を指示する命令長の長い
命令であって、上記プログラムカウンタで指示された上
記命令が上記命令長の短い命令か上記命令長の長い命令
かを判定する命令語長判定手段と、上記命令語長判定手
段によって上記プログラムカウンタで指示された上記命
令が命令長の長い命令であれば上記レジスタに上記命令
を設定し、上記プログラムカウンタで指示された上記命
令が命令長の短い命令であれば所定のレジスタに上記命
令を設定する命令選択手段とを有する。
According to the present invention, first, there is provided a register, a memory, and a program counter which are stored in the memory indicated by the program counter. A computer having a parallel operation function of reading an instruction and executing the operation specified by the instruction with respect to the register, the memory, and the program counter, wherein the instruction has a short instruction length or a plurality of instructions that indicate a single operation. Instruction length determining means for determining whether the instruction indicated by the program counter is an instruction having a short instruction length or an instruction having a long instruction length, the instruction having a long instruction length for instructing an operation; If the instruction indicated by the program counter by the length determining means is an instruction having a long instruction length, the instruction is set in the register and the program is executed. If short instruction the instruction is instructed with instruction length in grams counter having an instruction selecting means for setting the instruction to a predetermined register.

【0023】本発明の第2の特徴によれば、レジスタと
メモリとプログラムカウンタを有し、上記プログラムカ
ウンタで指示される上記メモリに格納される命令を読み
出し、上記命令の指示する演算を上記レジスタと上記メ
モリと上記プログラムカウンタに対して実行する並列演
算機能を有する計算機において、上記命令は単一演算を
指示する命令長の短い命令又は複数演算を指示する命令
長の長い命令であって、上記プログラムカウンタで指示
された上記命令が上記命令長の短い命令か上記命令長の
長い命令かを判定する命令語長判定手段と、上記命令長
の短い命令間の競合を検出する競合検出手段と、上記命
令語長判定手段によって上記命令長の短い命令と判定さ
れると上記レジスタに上記命令を設定し、上記命令長の
短い命令と判定され、かつ、上記競合検出手段によって
競合がないと判定されると所定のレジスタに上記命令を
設定する命令選択手段とを有する。
According to a second feature of the present invention, there is provided a register, a memory, and a program counter, for reading an instruction stored in the memory indicated by the program counter, and executing an operation indicated by the instruction in the register. And a computer having a parallel operation function to be executed on the memory and the program counter, wherein the instruction is an instruction having a short instruction length for instructing a single operation or an instruction having a long instruction length for instructing a plurality of operations, Instruction word length determining means for determining whether the instruction specified by the program counter is the short instruction length instruction or the long instruction length instruction; conflict detection means for detecting competition between the short instruction length instructions; When the instruction word length determining means determines that the instruction has the short instruction length, the instruction is set in the register, and the instruction is determined to be the instruction having the short instruction length. And, when it is determined that there is no conflict by said conflict detection means and an instruction selecting means for setting said instruction to a predetermined register.

【0024】本発明の第3の特徴によれば、レジスタと
メモリとプログラムカウンタを有し、上記プログラムカ
ウンタで指示される上記メモリに格納される命令を読み
出し、上記命令の指示する演算を上記レジスタと上記メ
モリと上記プログラムカウンタに対して実行する並列演
算機能を有する計算機において、上記命令は単一演算を
指示する命令長の短い命令又は複数演算を指示する命令
長の長い命令であって、上記プログラムカウンタで指示
された命令が上記命令長の短い命令か上記命令長の長い
命令かを判定する命令語長判定手段と、上記命令語長判
定手段によって上記命令長の短い命令と判定されると、
上記命令長の短い命令間の競合を検出する競合検出手段
と、上記命令語長判定手段によって上記命令長の短い命
令と判定されると、上記競合検出手段の内容に応じて上
記命令長の短い命令を1マシンサイクルに所定の数実行
し、上記命令長の長い命令と判定されると、命令長の長
い命令を1マシンサイクルに所定の数実行する演算手段
とを有する。
According to a third feature of the present invention, there is provided a register, a memory, and a program counter, wherein an instruction stored in the memory indicated by the program counter is read, and an operation indicated by the instruction is performed by the register. And a computer having a parallel operation function for executing the operation on the memory and the program counter, wherein the instruction is an instruction having a short instruction length to designate a single operation or an instruction having a long instruction length to designate a plurality of operations, An instruction word length determining unit that determines whether the instruction specified by the program counter is the instruction having the short instruction length or the instruction having the long instruction length; and if the instruction word length determining unit determines that the instruction has the short instruction length. ,
When the instruction word length determination unit determines that the instruction has the short instruction length, the contention detection unit that detects the competition between the instructions having the short instruction length and the instruction word length determination unit determines that the instruction has the short instruction length. There is provided an arithmetic unit for executing a predetermined number of instructions in one machine cycle and executing a predetermined number of long instructions in one machine cycle when it is determined that the instruction has the long instruction length.

【0025】[0025]

【作用】本発明によれば、1マシンサイクルに単一演算
を指示する命令長の短い命令を複数個、あるいは、複数
演算を指示する命令長の長い命令を1個実行できるの
で、演算が並列処理され性能が高められる。
According to the present invention, it is possible to execute a plurality of instructions having a short instruction length instructing a single operation or one instruction having a long instruction length instructing a plurality of operations in one machine cycle. Processed to enhance performance.

【0026】本発明の一態様によれば、並列して実行で
きる演算の多い時のみ命令長の長い命令を用いることに
より、命令長の長い命令の中の無効フィールドを少なく
することができ、コードサイズを小さくすることができ
る。これにより、主メモリ及びキャッシュメモリの使用
効率が上がり、処理速度の向上が図れる。
According to one embodiment of the present invention, by using an instruction having a long instruction length only when there are many operations that can be executed in parallel, the number of invalid fields in the instruction having a long instruction length can be reduced. The size can be reduced. As a result, the use efficiency of the main memory and the cache memory increases, and the processing speed can be improved.

【0027】本発明の他の一態様によれば、命令長の長
い命令の中で指定する複数の演算内の競合はあり得ず、
ハードウェアでこれを検出する必要はない。ハードウェ
アは同一サイクルに実行する命令長の短い命令間の競合
のみを検出すればよい。本発明によれば、1マシンサイ
クルで実行される命令長の短い命令の数を、命令長の長
い命令の中に指示される演算の数より小さくすることに
より、平均的に1マシンサイクルに実行される演算数が
高い割に、並列に実行する演算間の競合検出を容易にす
ることができる。
According to another aspect of the present invention, there is no competition among a plurality of operations specified in an instruction having a long instruction length,
You do not need to detect this in hardware. The hardware need only detect a conflict between instructions having a short instruction length and executed in the same cycle. According to the present invention, the number of instructions having a short instruction length to be executed in one machine cycle is made smaller than the number of operations indicated in the long instruction length, so that the instruction is executed in one machine cycle on average. Although the number of operations to be performed is high, it is possible to easily detect a conflict between operations executed in parallel.

【0028】本発明の他の一態様によれば、命令長の長
い命令と、それ以前の命令長の長い命令との競合が無い
ようにコンパイラで命令列を生成することが可能であ
り、ハードウェアでこれを検出する必要はない。
According to another aspect of the present invention, an instruction sequence can be generated by a compiler so that there is no competition between an instruction having a long instruction length and an instruction having a long instruction length before the instruction. There is no need to detect this in the hardware.

【0029】本発明の他の一態様によれば、有効な命令
長の短い命令実行後、有効な命令長の長い命令を実行す
る時、及び、有効な命令長の長い命令の実行後、有効な
命令長の短い命令を実行する時には、両者の間に必要な
だけの無効命令を挿入することによりソフト的に両者の
競合を解消できるのでハードウェアで両者の競合を検出
する必要はない。ハードウェアが検出しなくてはならな
いのは、現サイクル以前に実行した命令長の短い命令と
現サイクルに実行する命令長の短い命令との間の競合だ
けである。故に、本発明によれば1マシンサイクルで実
行される命令長の短い命令の数を命令長の長い命令の中
に指示される演算の数より小さくすることにより、平均
的に1マシンサイクルに実行される演算数が高い割に、
現サイクル以前に実行した、現サイクルに実行した命令
との間のハードウェアによる競合検出を容易にできる。
According to another aspect of the present invention, when an instruction having a long effective instruction length is executed after execution of an instruction having a short effective instruction length, or after execution of an instruction having a long effective instruction length, When an instruction with a short instruction length is executed, the conflict between the two can be resolved by software by inserting the necessary invalid instructions between the two, so that it is not necessary to detect the conflict between the two by hardware. All that the hardware must detect is a conflict between the short instruction length executed before the current cycle and the short length instruction executed during the current cycle. Therefore, according to the present invention, the number of instructions having a short instruction length to be executed in one machine cycle is made smaller than the number of operations indicated in the long instruction length, so that the number of instructions executed in one machine cycle is averaged. Despite the high number of operations performed,
It is possible to easily detect a conflict by hardware between the instruction executed before the current cycle and the instruction executed during the current cycle.

【0030】本発明の他の一態様によれば、命令によっ
て指示された演算結果は直ちに次命令に反映されず、一
定数後の命令から反映されるので、命令実行後、その結
果が反映されるまでに実行される命令は、書き込まれる
前のレジスタの値を読むことができ、ソフトウェアが使
うレジスタの数を実質的に多くし、ソフトウェア上の最
適化により演算の並列度をあげることができる。
According to another aspect of the present invention, the operation result specified by the instruction is not immediately reflected in the next instruction, but is reflected from the instruction after a certain number, so that after execution of the instruction, the result is reflected. Instructions that are executed before can read the values of registers before they are written, can substantially increase the number of registers used by software, and can increase the degree of parallelism of operations through software optimization. .

【0031】本発明の他の一態様によれば、競合検出の
ためのハードウェアが簡単になり、マシンサイクルの向
上が図られ、処理速度を高めることができる。
According to another aspect of the present invention, hardware for conflict detection is simplified, a machine cycle is improved, and a processing speed can be increased.

【0032】本発明の他の一態様によれば、単一演算を
指示する命令長の短い従来アーキテクチャの命令に、複
数演算を指示する命令長の長い命令を追加して新アーキ
テクチャとできるので新アーキテクチャに従来アーキテ
クチャを含ませ、上位互換性を保つことができる。
According to another aspect of the present invention, a new architecture can be obtained by adding a long instruction length instruction for instructing a plurality of operations to a conventional architecture instruction short instruction length for instructing a single operation. The architecture can include the legacy architecture to maintain upward compatibility.

【0033】[0033]

【実施例】次に本発明の好ましい一実施例について述べ
る。発明の本質と無関係な詳細は省略してある。
Next, a preferred embodiment of the present invention will be described. Details unrelated to the nature of the invention have been omitted.

【0034】図1に全体ブロック図を示す。1200は
メモリ、1300は命令キャッシュ、1303は命令制
御ユニット、160は演算ユニット、150は命令長判
定手段、109は競合検出手段である。命令制御ユニッ
ト1303は、インタフェース170を用いて、命令キ
ャッシュより命令を読み出し、デコードし、インタフェ
ース180を通じて演算ユニット160を制御する。演
算ユニット160は複数の演算を並列に処理することが
できる。本計算機は単一演算を指示する4バイト長命令
と、複数演算を指示する16バイト長命令を有し、命令
キャッシュ1300には、16バイト長命令間、及び、16
バイト長命令と4バイト長命令の間の競合は無いよう
に、16バイト長命令と4バイト長命令が混在しておか
れている。競合検出手段109は、4バイト長命令間の
みの競合を検出する。命令制御ユニット1303は、命
令長判定手段150を具備し、16バイト長命令実行時
は競合検出手段109の出力を無視し、4バイト長命令
実行時には、競合検出手段109の出力に応じて、セレ
クタ110は並列して実行できる演算を選びデコード
し、インタフェース180を通じて演算ユニット160
を制御する。尚、ここでは、演算ユニットが2つの場合
を示しているが、2つ以上でも良い。
FIG. 1 shows an overall block diagram. 1200 is a memory, 1300 is an instruction cache, 1303 is an instruction control unit, 160 is an arithmetic unit, 150 is instruction length determination means, and 109 is contention detection means. The instruction control unit 1303 reads an instruction from the instruction cache using the interface 170, decodes the instruction, and controls the arithmetic unit 160 through the interface 180. The operation unit 160 can process a plurality of operations in parallel. This computer has a 4-byte instruction that indicates a single operation and a 16-byte instruction that specifies a plurality of operations. The instruction cache 1300 stores between 16-byte instructions and 16 instructions.
The 16-byte instruction and the 4-byte instruction are mixed so that there is no competition between the byte-length instruction and the 4-byte-length instruction. The conflict detection means 109 detects a conflict between only 4-byte long instructions. The instruction control unit 1303 includes an instruction length judging unit 150, and ignores the output of the conflict detection unit 109 when executing a 16-byte length instruction, and selects the selector according to the output of the conflict detection unit 109 when executing a 4-byte length instruction. 110 selects and decodes operations that can be executed in parallel,
Control. Although the case where there are two arithmetic units is shown here, two or more arithmetic units may be used.

【0035】以下、レジスタ構成,命令フォーマットを
説明し、さらにパイプライン、及び、動作タイミングを
説明し、最後に図1の全体ブロック図の詳細を述べる。
The register configuration and instruction format will be described below, the pipeline and operation timing will be described, and finally the details of the entire block diagram of FIG. 1 will be described.

【0036】図2にレジスタ構成を示す。FR0〜FR
31は64ビット長の浮動小数点レジスタ、R0〜R3
1は32ビット長の整数レジスタである。簡単のため、
浮動小数点データは全て倍精度で64ビット長とする。
また、アドレスは32ビット毎に振られているものとす
る。
FIG. 2 shows a register configuration. FR0-FR
31 is a 64-bit floating point register, R0 to R3
1 is a 32-bit integer register. For simplicity,
All floating point data is double precision and 64 bits long.
It is assumed that the address is assigned every 32 bits.

【0037】本実施例では、命令長の短い命令の命令長
を1語長,命令の長い命令の命令長を4語長とする。
In this embodiment, the instruction length of an instruction having a short instruction length is one word length, and the instruction length of an instruction having a long instruction length is four word lengths.

【0038】図3に、命令形式を示す。1語は32ビッ
トである。基本命令,分岐命令,ロード・ストア命令は
1語長命令、複合命令は4語長命令である。基本命令は
全てレジスタ・レジスタ間演算である。本実施例では、
命令長の長い命令の命令長を4語長としたが、実施例に
よっては、もっと長いことも短いこともあり得る。
FIG. 3 shows an instruction format. One word is 32 bits. Basic instructions, branch instructions, and load / store instructions are one word long instructions, and compound instructions are four word long instructions. The basic instructions are all register-to-register operations. In this embodiment,
The instruction length of the instruction having a long instruction length is set to four words, but may be longer or shorter depending on the embodiment.

【0039】本実施例では、簡単のため4語長命令は必
ず4語長境界で区切られた4語に配置されると仮定する
が、この仮定をはずすことは容易である。
In this embodiment, for simplicity, it is assumed that a four-word instruction is always arranged in four words separated by a four-word boundary, but this assumption can be easily removed.

【0040】まず基本命令について説明する。OPフィ
ールドはオペコードの種類を、S1とS2フィールドは
2つのソースレジスタの番号を、Tフィールドはターゲ
ットレジスタの番号を、CCフィールドは、フラグの立
て方を示すフィールドである。即ち、S1とS2で示さ
れるレジスタが、OPで示される演算をほどこされ、T
で示されるレジスタに結果が書き込まれる。詳細を図4
に示す。
First, the basic instructions will be described. The OP field indicates the type of the operation code, the S1 and S2 fields indicate the numbers of the two source registers, the T field indicates the number of the target register, and the CC field indicates how to set a flag. That is, the registers indicated by S1 and S2 are subjected to the operation indicated by OP, and T
The result is written to the register indicated by. Figure 4 for details
Shown in

【0041】次に分岐命令について説明する。dはディ
スプレースメントを示す。分岐命令では、プログラムカ
ウンタPCにdの値が加算される。
Next, the branch instruction will be described. d indicates a displacement. In the branch instruction, the value of d is added to the program counter PC.

【0042】次にロード・ストア命令について説明す
る。Fフィールドは、ロード、又は、ストアするデータ
が浮動小数点データであるか、整数データであるかを示
す。
Next, the load / store instruction will be described. The F field indicates whether the data to be loaded or stored is floating point data or integer data.

【0043】SIZEフィールドは、図4に示すよう
に、ロード、又は、ストアするデータの語長を示す。整
数については、1ワードのみが定義され、浮動小数点に
ついては、2〜16ワードが定義されているものとす
る。図4に示すように、FST命令では、FR(S1)が
R(S2)番地に書き込まれる。SIZEが16ワードの
時には、FR(S1)〜FR(S1+7)が、R(S2)番地
から始まる連続する16ワードに書き込まれるものとす
る。また、FLD命令では、R(S1)+R(S2)番地の
データを、FR(T)に書き込む。SIZEが16ワード
の時には、R(S1)+R(S2)番地から始まる連続する
16ワードが、FR(T)〜FR(T+7)に書き込まれ
る。
The SIZE field indicates the word length of data to be loaded or stored, as shown in FIG. It is assumed that only one word is defined for an integer and 2 to 16 words are defined for a floating point. As shown in FIG. 4, in the FST instruction, FR (S1) is written to address R (S2). When SIZE is 16 words, FR (S1) to FR (S1 + 7) are written in 16 consecutive words starting from address R (S2). In the FLD instruction, the data at the address R (S1) + R (S2) is written into FR (T). When SIZE is 16 words, 16 consecutive words starting from the address R (S1) + R (S2) are written to FR (T) to FR (T + 7).

【0044】次に、図3,図5を用いて、4語長の複合
命令について説明する。この命令では、I1,I2,I
T,SIZE,Fフィールドで示される、ロード・スト
ア操作と、J1,J2,JT,Jフィールドで示される
整数演算と、M1,M2,MTフィールドで示される第
1浮動小数点演算と、A1,A2,AT,Aフィールド
で示される第2浮動小数点演算と、N1,N2,NTフ
ィールドで示される第3浮動小数点演算と、B1,B
2,BT,Bフィールドで示される第4浮動小数点演算
と、CC,d,Nフィールドで示されるフロー制御の計
7つの演算が指示できる。各フィールドの詳細について
は、図5に示す。第1浮動小数点演算と、第3浮動小数
点演算は乗算、第2浮動小数点演算と第4浮動小数点演
算は加減算である。Nフィールドは、本命令に続き、挿
入したい無効サイクルの数を示す。使用方法については
後で述べる。
Next, a compound instruction having a length of four words will be described with reference to FIGS. In this instruction, I1, I2, I
Load / store operation indicated by T, SIZE, F fields, integer operation indicated by J1, J2, JT, J fields, first floating point operation indicated by M1, M2, MT fields, A1, A2 , AT and A fields, a third floating point operation indicated by N1, N2 and NT fields, B1 and B
A total of seven calculations can be specified, including a fourth floating point calculation indicated by the 2, BT, and B fields and a flow control indicated by the CC, d, and N fields. Details of each field are shown in FIG. The first floating point operation and the third floating point operation are multiplication, and the second floating point operation and the fourth floating point operation are addition and subtraction. The N field indicates the number of invalid cycles to be inserted following this instruction. How to use will be described later.

【0045】整数演算について説明する。Jフィ−ルド
≠1111のときは、図5に示すように通常の演算を行
う。しかし、Jフィ−ルド=1111のときは、データ
の格納されているメモリからキャッシュメモリへのプリ
フェッチを行う。すなわち、R(J1)+R(J2)をアド
レスとしてキャッシュメモリをアクセスして、該当する
データが無ければメモリからキャッシュへデータを転送
する。
Next, the integer operation will be described. When the J field is # 1111, a normal operation is performed as shown in FIG. However, when the J field = 1111, the prefetch from the memory storing the data to the cache memory is performed. That is, the cache memory is accessed using R (J1) + R (J2) as an address, and if there is no corresponding data, the data is transferred from the memory to the cache.

【0046】また、1語長命令では、演算結果は次命令
に直ちに反映されるが、4語長命令では、演算結果は3
つ後の命令に初めて反映される。この仕様を好ましく利
用したパイプライン構成と、プログラム例について以下
述べる。
In a one-word instruction, the operation result is immediately reflected in the next instruction.
It is reflected for the first time in the next instruction. A pipeline configuration and a program example that preferably use this specification will be described below.

【0047】図6に示すようにパイプライン構成は、I
F,D,E,F,Sの5段である。IFステージでは、
命令の読み出し、Dステージでは、命令のデコード、E
ステージではレジスタの読み出しと演算の一部、Fステ
ージでは、演算、Sステージでは、演算の残りとレジス
タへの演算結果の書き込みが行われる。パイプライン構
成は、整数演算と浮動小数演算で同じとする。
As shown in FIG. 6, the pipeline configuration
There are five stages of F, D, E, F, and S. In the IF stage,
Instruction reading, instruction decoding in the D stage, E
In the stage, the register is read and a part of the operation is performed. In the F stage, the operation is performed. In the S stage, the remainder of the operation and the operation result are written in the register. The pipeline configuration is the same for integer arithmetic and floating-point arithmetic.

【0048】図7に1語長命令の本実施例による処理フ
ローを示す。1マシンサイクルに2命令処理されるスー
パスカラ方式である。命令1と2,命令3と4,命令5
と6,命令7と8のそれぞれが、特に競合の無い限り、
並列に処理される。このスーパスカラ方式については、
特願昭63−283673号に詳細に記されている。
FIG. 7 shows a processing flow of a one-word length instruction according to this embodiment. This is a super scalar system in which two instructions are processed in one machine cycle. Instruction 1 and 2, Instruction 3 and 4, Instruction 5
And 6, instructions 7 and 8, respectively, unless there is a conflict
Processed in parallel. About this super scalar method,
It is described in detail in Japanese Patent Application No. 63-283673.

【0049】次に図8は、命令2の結果を命令3が使う
場合の処理の様子を示したものである。命令3と4のE
ステージは、命令2のSステージが終了するまで引き伸
ばされる。前命令の結果が次命令に反映するという命令
仕様を満足するため、ハードウェアは上記競合を検出
し、図8に示す処理を行わなくてはならない。
Next, FIG. 8 shows the state of processing when the result of the instruction 2 is used by the instruction 3. E of instructions 3 and 4
The stage is extended until the S stage of instruction 2 ends. In order to satisfy the instruction specification that the result of the previous instruction is reflected on the next instruction, the hardware must detect the conflict and perform the processing shown in FIG.

【0050】4語長命令の処理の様子を図9に示す。4
語長命令は、1マシンサイクルに1命令ずつ処理され
る。命令1の演算結果は先に述べた仕様により、命令
2,3には反映されず、命令4になって初めて反映され
る。命令1のレジスタ書き込みステージであるSステー
ジは、命令4のレジスタ読み出しステージであるDステ
ージの1つ前にちょうど終了しているので、図8を用い
て説明した様なハードウェアによる競合制御は必要な
い。本実施例では、演算ステージはE,F,Sの3段で
あるが、一般に、演算結果を書き込む前に行う次命令の
数Nとパイプライン段数Mの間にN≧M−1であればハ
ードウェアによる競合制御は不要である。本実施例では
N=2,M=3のケースである。
FIG. 9 shows how a four-word instruction is processed. 4
Word length instructions are processed one instruction at a time in one machine cycle. According to the above-described specification, the operation result of the instruction 1 is not reflected on the instructions 2 and 3, but is reflected only on the instruction 4. Since the S stage, which is the register write stage of the instruction 1, has just finished just before the D stage, which is the register read stage of the instruction 4, conflict control by hardware as described with reference to FIG. 8 is necessary. Absent. In this embodiment, there are three operation stages E, F, and S. In general, if N ≧ M−1 between the number N of next instructions to be executed before writing the operation result and the number M of pipeline stages. No contention control by hardware is required. In this embodiment, N = 2 and M = 3.

【0051】また、1語長命令と次の有効な4語長命令
の間には必ず無効な4語長命令を2つおくものとする。
同様に有効な4語長命令と次の1語長命令の間には必ず
無効な4語長命令を2つおくものとする。
It is assumed that two invalid four-word instructions are always placed between the one-word instruction and the next valid four-word instruction.
Similarly, two invalid four-word instructions are always placed between the valid four-word instruction and the next one-word instruction.

【0052】次にこの4語長命令の好ましいプログラム
例について図10,図11,図12を用いて述べる。次
式の計算をする場合を考える。
Next, a preferred example of the program of the four-word length instruction will be described with reference to FIGS. 10, 11, and 12. FIG. Consider the case where the following equation is calculated.

【0053】 A(i)=A(i)+C×B(i) , 124 但し、Cは定数、A(i),B(i)は、メモリ上に、図1
0のように配置されている64ビットの浮動小数点デー
タである。
A (i) = A (i) + C × B (i), 1 < i < 24, where C is a constant and A (i) and B (i) are stored in the memory as shown in FIG.
It is 64-bit floating point data arranged like 0.

【0054】図11は、A(i)の計算をするのに、各サ
イクルに、どんな演算がされるかを説明する図である。
横軸は時刻で、単位はマシンサイクルである。図に書か
れた横長の箱は、処理されるデータの通る演算器のE,
F,Sの3ステージを示す。(1)〜(10)について説明
する。演算は、インデックスiについて4つずつ行われ
る。(1)〜(10)はA(9)〜A(12)を計算するための
処理である。以下、各処理について説明する。定数Cは
FR31にあるものとする。
FIG. 11 is a diagram for explaining what operation is performed in each cycle to calculate A (i).
The horizontal axis is time, and the unit is machine cycle. The horizontal boxes shown in the figure are E,
The three stages F and S are shown. (1) to (10) will be described. The calculation is performed for each of four indices i. (1) to (10) are processes for calculating A (9) to A (12). Hereinafter, each process will be described. It is assumed that the constant C is in FR31.

【0055】(1)A(1)〜A(4)をFR4〜FR7,
B(7)〜B(10)をFR0〜FR3にロードする。
(1) A (1) to A (4) are converted to FR4 to FR7,
B (7) to B (10) are loaded into FR0 to FR3.

【0056】(2)FR0×FR31をFR8に格納。(2) Store FR0 × FR31 in FR8.

【0057】(3)FR1×FR31をFR9に格納。(3) FR1 × FR31 is stored in FR9.

【0058】(4)FR4+FR8をFR12に格納。(4) FR4 + FR8 is stored in FR12.

【0059】(5)FR5+FR9をFR13に格納。(5) FR5 + FR9 is stored in FR13.

【0060】(6)FR2×FR31をFR10に格
納。
(6) Store FR2 × FR31 in FR10.

【0061】(7)FR3×FR31をFR11に格
納。
(7) FR3 × FR31 is stored in FR11.

【0062】(8)FR6+FR10をFR14に格
納。
(8) Store FR6 + FR10 in FR14.

【0063】(9)FR7+FR11をFR15に格
納。
(9) FR7 + FR11 is stored in FR15.

【0064】(10)FR12〜FR15をA(9)〜A
(12)にストアする。
(10) FR12 to FR15 are converted to A (9) to A
Store in (12).

【0065】(1)〜(10)の演算スケジューリングに
関しては、1つの演算に、図10を用いて説明した様に
3サイクルかかることが考慮されている。A(9)〜A
(12)の処理について説明したが、A(13)〜A(1
6),A(17)〜A(20)…の処理も全く同様に行われ
る。各演算器は1サイクルピッチでパイプラインされて
おり、A(13)〜A(16),A(17)〜A(20)…の処
理をA(9)〜A(12)の処理に重ねて、図11のように
処理可能である。
As for the operation scheduling of (1) to (10), it is considered that one operation takes three cycles as described with reference to FIG. A (9)-A
Although the processing of (12) has been described, A (13) to A (1
6), A (17) to A (20)... Are performed in exactly the same manner. Each of the arithmetic units is pipelined at one cycle pitch, and the processing of A (13) to A (16), A (17) to A (20)... Is superimposed on the processing of A (9) to A (12). Thus, processing can be performed as shown in FIG.

【0066】さて、図11に示した処理を実現する4語
長命令列を示したのが図12である。A(1)〜A(24)
の演算は、図12に示す命令1〜命令22の22命令で
実現できる。使用するレジスタはFR0〜FR15,F
R31の17本である。命令1,3,5,7,9,1
1,13,15でどのデータがロードされるか、又、命
令12,14,16,18,20,22でどのデータが
ストアされるかを、図10に示した。命令3はFR0〜
FR3に値を書き込むか、その結果が反映するのは命令
6以降であるので、命令1でロードしたFR0〜FR3
の値を命令4で使用することが可能である。命令1の結
果が、命令2にすぐに反映する従来の方式で図11と同
じ処理を行おうとすると、命令3でFR0〜FR3に書
き込みを行うことはできず、FR16〜FR19等、新
たなレジスタが必要となる。ところが、使用できるレジ
スタの数には限りがあり、レジスタの数がネックにな
り、処理サイクル数が伸びてしまう。図12のプログラ
ムは、現命令の結果が3命令後にしか反映しないという
遅延書き込みを生かした結果、17本のレジスタを使う
だけで、演算が可能となったのである。
FIG. 12 shows a four-word instruction sequence for realizing the processing shown in FIG. A (1)-A (24)
Can be realized by 22 instructions 1 to 22 shown in FIG. Registers used are FR0 to FR15, F
17 of R31. Instructions 1, 3, 5, 7, 9, 1
FIG. 10 shows which data is loaded at 1, 13, and 15, and which data is stored at instructions 12, 14, 16, 18, 20, and 22. Instruction 3 is FR0
Since the value is written to FR3 or the result is reflected after instruction 6, FR0 to FR3 loaded by instruction 1
Can be used in instruction 4. If an attempt is made to perform the same processing as in FIG. 11 by the conventional method in which the result of the instruction 1 is immediately reflected on the instruction 2, the instruction 3 cannot write to FR0 to FR3, and new registers such as FR16 to FR19 are used. Is required. However, the number of registers that can be used is limited, the number of registers becomes a bottleneck, and the number of processing cycles increases. The program in FIG. 12 makes use of the delay writing that the result of the current instruction is reflected only after three instructions. As a result, the operation can be performed by using only 17 registers.

【0067】本例で示した様に遅延書き込みは、レジス
タを指定するオペコードのフィールドを増加させずに、
実質的に使用できるレジスタの数を増やす効果がある。
As shown in this example, the delayed write is performed without increasing the opcode field for specifying the register.
This has the effect of substantially increasing the number of registers that can be used.

【0068】図12上で、“X”印は何も演算するもの
がない為、空いてしまったフィールドであるが、特に、
処理の開始時の命令1〜6,終了時の命令17〜22に
空フィールドが多い。しかし、これらの空フィールド
は、コンパイラにより、次の一連の処理の開始処理と、
現在の一連の処理の終了処理を重ねることにより、減ら
すことができる。また、全くすることのない、命令2,
4,21は、命令1,3,20のNフィールドを“0
1”にすることにより、省略することができる。
In FIG. 12, the "X" mark is a vacant field because there is no operation to perform any operation.
Instructions 1 to 6 at the start of processing and instructions 17 to 22 at the end have many empty fields. However, these empty fields are used by the compiler to start the next series of processing,
It can be reduced by repeating the end processing of the current series of processing. Also, there is no instruction 2,
4, 21 set the N fields of instructions 1, 3, and 20 to "0".
By setting it to 1 ", it can be omitted.

【0069】本発明では、演算結果を書き込むレジスタ
の指定は、演算を指定する命令で行うので、命令4,2
1が初めて省略できる。演算結果を書き込むレジスタの
指定を、書き込みが行われるステージに発行される命令
で指定する方式では、命令4,21では命令1,18で
演算した結果の書き込み指定が必要であり、省略不可で
ある。
In the present invention, the register for writing the operation result is specified by the instruction for specifying the operation.
1 can be omitted for the first time. In a method in which the specification of the register into which the operation result is written is specified by an instruction issued to the stage where writing is performed, the instructions 4 and 21 need to specify the writing of the result calculated by the instructions 1 and 18 and cannot be omitted. .

【0070】また、図12のプログラムの前に1語長命
令があった時に、図12の命令1の前に2つの4語長の
無効命令を挿入しなくてはならないが、これは、Nフィ
ールドが“01”である4語長の無効命令を1つ入れれ
ばよい。また、図12のプログラムの後に1語長命令が
来る場合、図12の命令22のNフィールドを“10”に
すればよい。
When a one-word length instruction is present before the program in FIG. 12, two 4-word-length invalid instructions must be inserted before instruction 1 in FIG. It suffices to insert one 4-word invalid instruction whose field is "01". When a one-word length instruction comes after the program in FIG. 12, the N field of the instruction 22 in FIG. 12 may be set to “10”.

【0071】このように命令を長くしてNフィールドを
設け、有効に使用することにより、コードサイズを削減
することが可能である。また、1語長命令では4語で4
つの演算しか指示できないのに比べ、4語長命令では4
語で、図5に示すように7つの演算が指示できる。
As described above, it is possible to reduce the code size by lengthening the instruction and providing N fields to effectively use the instruction. In addition, in one word length instruction, 4 words are 4 words.
Compared to the case where only one operation can be specified, 4
In terms of words, seven operations can be indicated as shown in FIG.

【0072】次に、プログラム作成方法について述べ
る。プログラムは FORTRAN,Cなどの高級言語で記述
し、コンパイラにより命令列に変換する。
Next, a program creation method will be described. The program is described in a high-level language such as FORTRAN or C, and is converted into an instruction sequence by a compiler.

【0073】図26に本発明に関するコンパイラの処理
フローを示す。高級言語によるプログラムは、字句解析
部,構文解析部,意味解析部を経て、中間コードに変換
される。中間コードは、最適化部によって最適化され、
コード生成部により図3に示した命令列に変換される。
ここで、最適化部とコード生成部を合わせて合成部とい
う。この合成部に本願発明に関する特徴がある。すなわ
ち、この合成部では、中間コードを見て並列してできる
演算ができるだけ多くなるように命令列を生成する並列
化部を有する。この並列化部では、並列してできる演算
数が多いときには4語長命令を用い、並列してできる演
算数の少ないときには1語長命令を用いる。ここで、4
語長命令を用いるか1語長命令を用いるかの判断基準
は、並列して実行できる演算数により決まるが、この演
算数はシステムによって異なるので、プログラムを作成
するときにパラメータとしてコンパイラに指定できるよ
うになっている。上述のようにすることにより、コード
サイズが小さくなり、主メモリ、及び、キャッシュメモ
リの使用効率が上がり、処理速度が高められる。
FIG. 26 shows a processing flow of the compiler according to the present invention. A program in a high-level language is converted into an intermediate code through a lexical analyzer, a syntax analyzer, and a semantic analyzer. The intermediate code is optimized by the optimization unit,
The code generator converts the instruction sequence into the instruction sequence shown in FIG.
Here, the optimization unit and the code generation unit are collectively referred to as a synthesis unit. This synthesizing unit has features relating to the present invention. In other words, the synthesizing unit has a parallelizing unit that generates an instruction sequence so that the number of operations that can be performed in parallel by looking at the intermediate code is as large as possible. This parallelization unit uses a four-word instruction when the number of operations that can be performed in parallel is large, and uses a one-word instruction when the number of operations that can be performed in parallel is small. Where 4
The criterion for determining whether to use the word-length instruction or the one-word-length instruction is determined by the number of operations that can be executed in parallel. Since the number of operations differs depending on the system, it can be specified to the compiler as a parameter when creating a program. It has become. By doing as described above, the code size is reduced, the use efficiency of the main memory and the cache memory is increased, and the processing speed is increased.

【0074】次に、合成部の特徴としてレジスタの割当
てがある。4語長命令はその演算結果が3つ後の命令に
初めて反映されるので、特別な配慮が必要になる。例え
ば、図12において命令1の結果は命令4に初めて反映
されるので、命令2,3では命令1の結果を使用せずに
できる演算をできるだけたくさん割り付けておく。この
時、演算できる命令が1つも無いときは、無効命令生成
部によって無効命令を挿入しておく。また、合成部で
は、1語長命令と次の有効な4語長命令との間には必ず
無効な4語長命令を2つ挿入しておく。逆に、有効な4
語長命令と次の1語長命令との間にも必ず無効な4語長
命令を2つ挿入しておく。ここで、先に述べたように無
効命令はNフィールドを用いることによって省略でき
る。すなわち、本実施例のコンパイラは、長い命令間の
競合を検出し、Nフィールドを用いて、命令実行後に挿
入すべき無効サイクルの数を指定できるので、ハードウ
ェアで長い命令間の競合を検出したり、処理をする必要
が無い。
Next, a feature of the synthesizing unit is register allocation. The 4-word instruction requires special consideration because the operation result is reflected for the first three instructions. For example, in FIG. 12, the result of the instruction 1 is reflected for the first time in the instruction 4, so that in the instructions 2 and 3, as many operations as possible without using the result of the instruction 1 are allocated. At this time, when there is no instruction that can be operated, an invalid instruction is inserted by the invalid instruction generating unit. In the synthesizing unit, two invalid four-word instructions are always inserted between the one-word instruction and the next valid four-word instruction. Conversely, valid 4
Two invalid four word length instructions are always inserted between the word length instruction and the next one word length instruction. Here, as described above, the invalid instruction can be omitted by using the N field. That is, the compiler of the present embodiment detects a conflict between long instructions and can specify the number of invalid cycles to be inserted after the execution of the instruction using the N field. And no need for processing.

【0075】次に、これまでに説明した命令の処理を行
うハードウェアの一実施例について説明する。図13は
図1を詳細化した全体構成である。1300は命令キャ
ッシュ、1301は命令キャッシュコントローラ、13
02は命令処理フローを制御する分岐ユニット、130
3は、命令をデコードする命令制御ユニット、1304は整
数演算ユニット、1307は浮動小数点演算ユニット、
1306はデータキャッシュ、1305はデータキャッ
シュコントローラ、1308はメモリインタフェースユ
ニットである。
Next, a description will be given of an embodiment of hardware for processing the above-described instructions. FIG. 13 shows the overall configuration of FIG. 1 in detail. 1300 is an instruction cache, 1301 is an instruction cache controller, 13
02 is a branch unit for controlling the instruction processing flow, 130
3 is an instruction control unit for decoding instructions, 1304 is an integer operation unit, 1307 is a floating point operation unit,
1306 is a data cache, 1305 is a data cache controller, and 1308 is a memory interface unit.

【0076】命令制御ユニット1303は、命令キャッ
シュ1300より実行すべき命令をバス1310を通し
て受け取り、命令をデコードし、整数演算ユニット制御
信号1318を整数演算ユニット1304に、浮動小数
点演算ユニット制御信号1314を浮動小数点演算ユニット
1307に、分岐ユニット制御信号1312を分岐ユニ
ット1302に送出する。さらにプログラムカウンタ3
500の制御のためにモード信号110も、分岐ユニッ
ト1302に送出する。また、整数演算ユニット130
4より、フラグ1317を、浮動小数点演算ユニットよ
りフラグ1315を受け取る。
The instruction control unit 1303 receives an instruction to be executed from the instruction cache 1300 via the bus 1310, decodes the instruction, and outputs an integer operation unit control signal 1318 to the integer operation unit 1304 and a floating point operation unit control signal 1314 to the floating point operation unit. The branch unit control signal 1312 is sent to the decimal point operation unit 1307 and the branch unit 1302. Furthermore, program counter 3
The mode signal 110 is also sent to the branch unit 1302 for the control of 500. In addition, the integer operation unit 130
4, the flag 1317 is received, and the flag 1315 is received from the floating-point operation unit.

【0077】整数演算ユニット1304は、オペランド
アドレス1319をデータキャッシュ1306と、デー
タキャッシュコントローラ1305に送出する。データ
キャッシュより読み出されたデータは、データバス13
20を通して、整数演算ユニット1304、又は、浮動
小数点演算ユニット1307に送出される。データキャ
ッシュの中に所望のデータが無い時には、データキャッ
シュコントローラ1305が、メモインタフェースユニット
1308にインタフェース信号1321を通して起動を
かけ、主メモリよりデータを読み出す。この間の待合わ
せ制御を、信号1316を通して、命令制御ユニット1
303と行う。
The integer operation unit 1304 sends the operand address 1319 to the data cache 1306 and the data cache controller 1305. The data read from the data cache is transmitted to the data bus 13
The data is sent to the integer arithmetic unit 1304 or the floating-point arithmetic unit 1307 through 20. When there is no desired data in the data cache, the data cache controller 1305 activates the memo interface unit 1308 through the interface signal 1321, and reads data from the main memory. The queuing control during this time is controlled by the command control unit 1 through the signal 1316.
Perform 303.

【0078】分岐ユニットは、次に読み出すべき命令の
アドレス1309を、命令キャッシュ1300と、命令
キャッシュコントローラ1301に送出する。所望の命
令が命令キャッシュ1300の中に無い時には、命令キ
ャッシュコントローラ1301は、メモリインタフェースユ
ニット1308にインタフェース信号1313を通して
起動をかけ、主メモリより、命令を読み出す。この間の
待合わせ制御を信号1311を通して、命令制御ユニッ
ト1303と行う。
The branch unit sends the address 1309 of the next instruction to be read to the instruction cache 1300 and the instruction cache controller 1301. When the desired instruction is not in the instruction cache 1300, the instruction cache controller 1301 activates the memory interface unit 1308 through the interface signal 1313 and reads the instruction from the main memory. The waiting control during this time is performed with the instruction control unit 1303 through the signal 1311.

【0079】整数演算ユニット1304の詳細を示した
のが、図14である。1400はデコーダ、1401は
第1ALU、1402は第2ALU、1403は整数レ
ジスタである。第1ALUにはソースバス1406,1
407を通して、整数レジスタファイル1403からデ
ータが送られ、演算結果は、ターゲットバス1322を
通して、整数レジスタファイル1403に返される。ま
た、第2ALUには、ソースバス1408,1409を
通して、整数レジスタファイル1403からデータが送
られ、演算結果は、ターゲットバス1319を通して整
数レジスタファイル1403に返される。1317−1
は、第1ALUより出力されるフラグ、1317−2は
第2ALUより出力されるフラグである。バス131
9,1322は、ロードストア及びプリフェッチ時のアドレ
スとしてデータキャッシュ1306に送出される。
FIG. 14 shows the details of the integer operation unit 1304. 1400 is a decoder, 1401 is a first ALU, 1402 is a second ALU, and 1403 is an integer register. The first ALU has source bus 1406,1
Data is sent from the integer register file 1403 through 407, and the operation result is returned to the integer register file 1403 through the target bus 1322. The data is sent from the integer register file 1403 to the second ALU through the source buses 1408 and 1409, and the operation result is returned to the integer register file 1403 through the target bus 1319. 1317-1
Is a flag output from the first ALU, and 1317-2 is a flag output from the second ALU. Bus 131
9, 1322 are sent to the data cache 1306 as addresses at the time of load store and prefetch.

【0080】図13の浮動小数点演算ユニット1307
の詳細を示したのが、図15である。1501はデコー
ダ、1502は浮動小数点レジスタファイル、1503
は第1乗算器、1504は第2乗算器、1505は第1
加算器、1506は第2加算器である。第1乗算器15
03には、ソースバス1517,1518を通して、第
2乗算器1504には、ソースバス1515,1516
を通して、第1加算器1505には、ソースバス151
3,1514を通して、第2加算器1506には、ソー
スバス1511,1512を通して、浮動小数点レジス
タファイル1502よりデータが送られ、演算結果はそれぞ
れ、ターゲットバス1507,1508,1509,1
510を通して浮動小数点レジスタファイルに書き込ま
れる。
The floating point arithmetic unit 1307 shown in FIG.
FIG. 15 shows the details of. 1501 is a decoder, 1502 is a floating-point register file, 1503
Is the first multiplier, 1504 is the second multiplier, and 1505 is the first multiplier.
An adder 1506 is a second adder. First multiplier 15
03 through source buses 1517 and 1518, the second multiplier 1504 provides source buses 1515 and 1516
To the first adder 1505, the source bus 151
3, 1514, the data is sent from the floating-point register file 1502 to the second adder 1506 through the source buses 1511 and 1512, and the operation results are respectively sent to the target buses 1507, 1508, 1509, 1
Written to the floating point register file through 510.

【0081】1315−1は、第1乗算器1503のフ
ラグ、1315−2は第2乗算器1504のフラグ、1
315−3は第1加算器1505のフラグ、1315−
4は第2加算器1506のフラグである。
1315-1 is a flag of the first multiplier 1503, 1315-2 is a flag of the second multiplier 1504,
315-3 is a flag of the first adder 1505, 1315-
4 is a flag of the second adder 1506.

【0082】図15の浮動小数点レジスタファイル15
02の詳細を示したのが、図16である。1600〜1
608は浮動小数点レジスタ、1314−1〜1314
−9はそれぞれ浮動小数点レジスタ1600〜1608
の制御信号である。1610はロードアライナ、160
9はストアアライナである。1611〜1618は、浮
動小数点レジスタ1600〜1608を、メモリと結ぶ
バスである。バス1611は、FR0,16,24に、バス
1612は、FR1,9,17,25に接続されてい
る。バス1613,1614,1615,1616,1
617も同様で、バス1618にはFR7,15,2
3,31が接続されている。ロード命令実行時には、バ
ス1320を通して、送られてきたデータを、ロードア
ライナ1610により、1611〜1618の内、所望のバ
スに乗せかえ、所望のレジスタに書き込む。またストア
命令実行時には、1611〜1618にレジスタよりデ
ータが読み出され、ストアアライナ1609により、バ
ス1320の所望の位置にデータが出力される。
The floating-point register file 15 shown in FIG.
FIG. 16 shows the details of No. 02. 1600-1
608 is a floating-point register, 1314-1 to 1314
-9 are floating point registers 1600 to 1608, respectively.
Is a control signal. 1610 is a load aligner, 160
9 is a store aligner. Buses 1611 to 1618 connect the floating point registers 1600 to 1608 to the memory. The bus 1611 is connected to FR0, 16, 24, and the bus 1612 is connected to FR1, 9, 17, 25. Buses 1613, 1614, 1615, 1616, 1
617, and the bus 1618 has FR7, 15, 2
3, 31 are connected. At the time of executing the load instruction, the data sent through the bus 1320 is transferred to a desired bus out of 1611 to 1618 by the load aligner 1610 and written to a desired register. When a store instruction is executed, data is read from the registers 1611 to 1618, and the data is output to a desired position on the bus 1320 by the store aligner 1609.

【0083】図16の浮動小数点レジスタ1600の第
1の実施例を記したのが、図17である。レジスタ16
00について示したが、1601〜1608も同様であ
る。図17に示すようにレジスタ1600は64ビット
のレジスタの集まりである。1700〜1763はそれ
ぞれ1ビットのレジスタである。1511−00〜15
18−00はレジスタ1700の読み出しバス、150
7−00〜1510−00はレジスタ1700の書き込
みバス、1611−00はレジスタ1700の読み書き
バスである。レジスタ1763のバス構成も同様であ
る。
FIG. 17 shows a first embodiment of the floating-point register 1600 of FIG. Register 16
00 is shown, but the same applies to 1601 to 1608. As shown in FIG. 17, the register 1600 is a set of 64-bit registers. Reference numerals 1700 to 1763 are 1-bit registers. 1511-00-15
18-00 is a read bus of the register 1700, 150
7-00 to 1510-00 are write buses for the register 1700, and 1611-00 is a read / write bus for the register 1700. The same applies to the bus configuration of the register 1763.

【0084】図28は、図13のデータキャッシュの詳
細を図示したものである。2801はデータを保持する
データアレイ、2800はロードストア演算用のアドレ
スアレイ、2802はプリフェッチ用のアドレスアレイ
である。アドレスアレイ2800と2802は同じ内容のデ
ータを保持している。1語長命令のロードストア命令実
行時には、バス1319または1322を用いてアドレ
スアレイ2800とデータアレイ2801がアクセスさ
れる。4語長命令実行時には、バス1322を用いてア
ドレスアレイ2800とデータアレイ2801がアクセ
スされる。また、バス1319を用いてプリフェッチの
ためにアドレスアレイ2802がアクセスされる。
FIG. 28 illustrates details of the data cache of FIG. Reference numeral 2801 denotes a data array for holding data, 2800 denotes an address array for load / store operation, and 2802 denotes an address array for prefetch. Address arrays 2800 and 2802 hold data of the same contents. When executing a load / store instruction of one word length instruction, the address array 2800 and the data array 2801 are accessed using the bus 1319 or 1322. At the time of executing a four-word instruction, the address array 2800 and the data array 2801 are accessed using the bus 1322. Further, the address array 2802 is accessed using the bus 1319 for prefetch.

【0085】図29は、ロードストア演算でキャッシュ
ミスを生じたときのパイプラインを示す図である。パイ
プラインは、データがメモリからキャッシュメモリへ転
送される間ロックされる。図29でφで示されるのがロ
ックされる期間である。
FIG. 29 is a diagram showing a pipeline when a cache miss occurs in the load store operation. The pipeline is locked while data is transferred from memory to cache memory. The period indicated by φ in FIG. 29 is the locked period.

【0086】一方、プリフェッチ演算のときには、アド
レスアレイ2802がヒットすれば何も行わない。ミス
すれば、そのアドレスを含むブロックがメモリよりデー
タアレイ2801にバスを通して転送される。但し、こ
の時はパイプラインはロックされない。コンパイラによ
り、ミスする可能性のあるロードストア演算の前にプリ
フェッチを設定しておけば、メモリからキャッシュメモ
リへの転送を他の演算と並列に行うことができる。その
ために、図29で示したパイプラインロックによる性能
低下を避けることができる。
On the other hand, during the prefetch operation, nothing is performed if the address array 2802 hits. If a miss occurs, the block containing the address is transferred from the memory to the data array 2801 via the bus. However, at this time, the pipeline is not locked. If a prefetch is set by the compiler before a load / store operation that may cause a miss, the transfer from the memory to the cache memory can be performed in parallel with other operations. Therefore, performance degradation due to the pipeline lock shown in FIG. 29 can be avoided.

【0087】図17のレジスタ1700の回路構成例を
記したのが、図18である。1816と1817はインバー
タ、1802〜1815はクロックドインバータであ
る。
FIG. 18 shows an example of a circuit configuration of the register 1700 in FIG. 1816 and 1817 are inverters, and 1802-1815 are clocked inverters.

【0088】1314−1−1〜8がhighになると、そ
れぞれバス1511−00〜1518−00にレジスタ
の値が出力される。また、1314−1−10〜14が
highになると、バス1510−00〜1507−00の
値がレジスタに書き込まれる。また、1314−1−9
がhighになるとレジスタの値がバス1611−00に出
力され、1314−1−10がhighになると、バス16
11−00がレジスタに書き込まれる。信号1800は
予備の読み出しポート、1801は予備の書き込みポー
トである。1800と1801の用途については後に説
明する。
When 1314-1-1-8 become high, the register values are output to the buses 1511-00 to 1518-00, respectively. Also, 1314-1-10-14 are
When it goes high, the values on buses 1510-00 through 1507-00 are written to the registers. Also, 1314-1-9
Becomes high, the value of the register is output to the bus 1611-00.
11-00 is written to the register. Signal 1800 is a spare read port and 1801 is a spare write port. The uses of 1800 and 1801 will be described later.

【0089】図19は、図16の浮動小数点レジスタ1
600の第2の実施例を示したものである。図19の実
施例は、図17の実施例と比較して1900〜1963
の第1シャドウレジスタ,2000〜2063の第2シ
ャドウレジスタが付加されている点が異なっている。第
1シャドウレジスタ1900は信号1800を通して、
レジスタ1700の値を読み取ることができる。また、
信号1964を通して第2シャドウレジスタ2000
に、第1シャドウレジスタ1900の値を送出する。第
2シャドウレジスタ2000は、自分の値を信号180
1を通してレジスタ1700に送出する。即、レジスタ
1700〜1763,第1シャドウレジスタ1900〜
1963,第2シャドウレジスタ2000〜2063は
リング状のシフトレジスタを構成している。更に第1シ
ャドウレジスタ1900〜1963,第2シャドウレジ
スタ2000〜2063は、レジスタ1700〜176
3と同様に、バス1611−00〜1611−63を通
して、読み書きができる。
FIG. 19 shows the floating point register 1 of FIG.
600 shows a second embodiment of the present invention. The embodiment of FIG. 19 is different from the embodiment of FIG.
1 and a second shadow register 2000 to 2063 are added. The first shadow register 1900 receives the signal
The value of the register 1700 can be read. Also,
Second shadow register 2000 through signal 1964
Then, the value of the first shadow register 1900 is transmitted. The second shadow register 2000 outputs its value to the signal 180
1 to the register 1700. Immediately, the registers 1700 to 1763, the first shadow register 1900 to
1963, the second shadow registers 2000 to 2063 constitute a ring-shaped shift register. Further, the first shadow registers 1900 to 1963 and the second shadow registers 2000 to 2063 are registers 1700 to 176.
As in the case of No. 3, reading and writing can be performed through buses 1611-00 to 1611-63.

【0090】1314−1−15は、第1シャドウレジ
スタ1900〜1963の制御信号、1314−1−1
6は、第2シャドウレジスタ2000〜2063の制御
信号である。
Reference numeral 1314-1-15 denotes a control signal of the first shadow register 1900 to 1963;
Reference numeral 6 denotes a control signal for the second shadow registers 2000 to 2063.

【0091】シャドウレジスタの目的は、4語長命令実
行時の割込みからの復帰を可能にすることである。図2
0〜図22を用いてその動作を説明する。W′ステージ
は、レジスタから、第1シャドウレジスタFRS1に書
き込むステージ、W″は第1シャドウレジスタFRS1
から第2シャドウレジスタFRS2に書き込むステージ
である。
The purpose of the shadow register is to enable return from an interrupt when executing a 4-word long instruction. FIG.
The operation will be described with reference to FIGS. The W 'stage is a stage for writing from the register to the first shadow register FRS1, and W "is a stage for writing to the first shadow register FRS1.
From the second to the second shadow register FRS2.

【0092】図20は割込みのない通常時の4語長命令
の動作である。FR,FRS1,FRS2のタイムチャ
ート上の数字は、どの命令の演算結果が各レジスタに入
っているかを示す。図20の通り、通常時は、FRから
FRS1へ、FRS1からFRS2へと1サイクルピッ
チで演算結果がシフトされる。
FIG. 20 shows the operation of a four-word instruction at normal time without interruption. The numbers on the time charts of FR, FRS1, and FRS2 indicate which instruction operation result is stored in each register. As shown in FIG. 20, the calculation result is normally shifted from FR to FRS1 and from FRS1 to FRS2 at one cycle pitch.

【0093】図21は、命令3と命令4の間に割込みが
入った時の動作を示す図である。命令4,5,6,7は
無効化される。各レジスタは割込み発生後値の更新を止
め、FRは命令3の結果を、FRS1は命令2の結果
を、FRS2は命令1の結果を保持する。また、プログ
ラムカウンタには割込みベクタがセットされる。割込み
ベクタから始まる割込み処理プログラムで、FR,FR
S1,FRS2の値をメモリ上に退避する図22は、割
込み処理からの復帰時の動作を説明する図である。ま
ず、割込み処理プログラムの最後に、図22に示すよう
に命令1の結果をFRに、命令2の結果をFRS2に、
命令3の結果をFRS1に復帰する。こうすることによ
り、命令4のレジスタ読み出しステージのEステージ
で、命令1の結果を見ることができる。命令4のEステ
ージ終了後、FRの値をFRS1に、FRS1の値をF
RS2に、FRS2の値をFRへコピーする。この結
果、命令5のEステージでは命令2の結果を見ることが
できる。命令5のレジスタ読み出しステージのEステー
ジ終了後も、同じ動作をさせることにより、命令6のレ
ジスタ読み出しステージのEステージで、命令3の結果
を見ることができる。以後の処理は通常通りで、1命令
実行毎にFRの値をFRS1へ、FRS1の値をFRS
2へコピーし、FRS2の値は捨てる。
FIG. 21 is a diagram showing an operation when an interrupt occurs between the instruction 3 and the instruction 4. Instructions 4, 5, 6, and 7 are invalidated. Each register stops updating the value after the interrupt occurs, FR holds the result of instruction 3, FRS1 holds the result of instruction 2, and FRS2 holds the result of instruction 1. Further, an interrupt vector is set in the program counter. An interrupt processing program starting from the interrupt vector, FR, FR
FIG. 22 for saving the values of S1 and FRS2 on the memory is a diagram for explaining the operation at the time of return from the interrupt processing. First, at the end of the interrupt processing program, as shown in FIG. 22, the result of instruction 1 is set to FR, the result of instruction 2 is set to FRS2,
The result of the instruction 3 is returned to the FRS1. By doing so, the result of the instruction 1 can be seen at the E stage of the register read stage of the instruction 4. After the E stage of instruction 4, the value of FR is set to FRS1, and the value of FRS1 is set to F
Copy the value of FRS2 to FR into RS2. As a result, at the E stage of the instruction 5, the result of the instruction 2 can be seen. By performing the same operation after the E stage of the register read stage of the instruction 5, the result of the instruction 3 can be seen at the E stage of the register read stage of the instruction 6. The subsequent processing is as usual, and the value of FR is set to FRS1 and the value of FRS1 is set to FRS each time one instruction is executed.
2 and discard the value of FRS2.

【0094】以上、説明した様に、シャドウレジスタを
設けることにより、遅延書き込み命令実行時でも割込み
を受け付け復帰することができる。シャドウレジスタの
無い場合は、図21で命令3の結果しか退避できず、図
22の割込み復帰時の命令4で、命令1の結果を見るこ
とができない。これは、命令2,3が命令1と同じレジ
スタに値を書き込む場合があるからである。例えば図1
2のプログラムでも、命令1と同じレジスタに命令3で
書き込む。
As described above, by providing a shadow register, an interrupt can be accepted and returned even when a delayed write instruction is executed. If there is no shadow register, only the result of instruction 3 can be saved in FIG. 21 and the result of instruction 1 cannot be seen in instruction 4 at the time of interrupt return in FIG. This is because instructions 2 and 3 may write values to the same register as instruction 1. For example, FIG.
Even in the program 2, the instruction 3 is written in the same register as the instruction 1.

【0095】次に、シャドウレジスタ付加によるハード
ウェアの増加量について述べる。レジスタの大きさは、
ポート数にほぼ比例する。図17と図19を比べれば分
かるように、シャドウレジスタのポート数は3と、レジ
スタのポート数13に比べてずっと小さいので、シャド
ウレジスタ付加によるハードウェアの増加量は小さい。
Next, an increase in hardware due to the addition of a shadow register will be described. The size of the register is
It is almost proportional to the number of ports. As can be seen from a comparison between FIG. 17 and FIG. 19, the number of ports of the shadow register is three, which is much smaller than the number of ports of the register 13, so that an increase in hardware due to the addition of the shadow register is small.

【0096】図41は、図13の命令制御ユニット13
03の実施例である。150は命令語長判定手段、10
1は第1命令レジスタ、102は第2命令レジスタ、1
03は第3命令レジスタ、104は第4命令レジスタで
ある。4100はモードレジスタである。100はモー
ド制御回路、105はレジスタ読み出し制御回路、10
6はレジスタ書き込み制御回路、107はファンクショ
ン制御回路、108はパイプライン制御回路、109は
競合検出回路である。
FIG. 41 shows the operation of the instruction control unit 13 shown in FIG.
03 is an example. 150 is an instruction word length determining means, 10
1 is a first instruction register, 102 is a second instruction register, 1
03 is a third instruction register, and 104 is a fourth instruction register. 4100 is a mode register. 100 is a mode control circuit, 105 is a register read control circuit, 10
6 is a register write control circuit, 107 is a function control circuit, 108 is a pipeline control circuit, and 109 is a conflict detection circuit.

【0097】4語長命令は、必ず4語境界をまたがない
様に配置されているものとする。また、1語長命令は、
2語境界に囲まれた2語が同時に実行されるものとす
る。本実施例では命令語長判定は、図3で説明した様に
オペコードの中の最も左のビット、即、図41の信号1
310−1−1(C000)そのものを見ることにより行
われる。
It is assumed that four-word length instructions are always arranged so as not to cross four-word boundaries. Also, the one word length instruction is
Assume that two words surrounded by a two-word boundary are executed simultaneously. In this embodiment, the instruction word length is determined by the leftmost bit in the operation code as described with reference to FIG.
This is performed by looking at 310-1-1 (C000) itself.

【0098】モード制御回路100の詳細を示したのが
図27である。2700は制御回路、2701はNフィ
ールド1310−4−1を保持するレジスタ、2702
はディクリメンタ、2703はコンパレータである。コ
ンパレータの出力信号VALID(2704)は、制御回路
2700に送り出される。レジスタ2701にセットさ
れたNフィールドの値は、ディクリメンタ2702によ
り1サイクルごとに1減算され、00になったときに信
号VALID(2704)がアサートされる。信号VAL
IDはネゲート時に無効サイクルの挿入を指示し、アサ
ート時に命令の実行を指示する信号である。
FIG. 27 shows details of the mode control circuit 100. 2700 is a control circuit, 2701 is a register holding the N field 1310-4-1, 2702
Is a decrementer and 2703 is a comparator. The output signal VALID (2704) of the comparator is sent to the control circuit 2700. The value of the N field set in the register 2701 is decremented by 1 every cycle by the decrementer 2702, and when it becomes 00, the signal VALID (2704) is asserted. Signal VAL
ID is a signal that instructs insertion of an invalid cycle when negated and that instructs execution of an instruction when asserted.

【0099】制御回路2700は、競合検出回路出力1
16(BUB)と、命令アドレスの下位から2ビット目1
309−1(CA30)と、オペコード中の4語長命令か
どうかを示すビット1310−1−1(C000)と信号
2704(VALID)を見て5つのモードの内、どれ
であるかを判定し、図23に示すように第1〜4命令レ
ジスタへのオペコードのセット,プログラムカウンタの
インクリメントを信号110により行う。また、現サイ
クルがどのモードであるかを示す信号110は、モード
レジスタ4100にラッチされ、その出力信号130は
レジスタ読み出し制御回路105,レジスタ書き込み制
御回路106,ファンクション制御回路107,パイプ
ライン制御回路108,競合検出回路109に送出され
る。図23で、C0〜3は、4語境界内にある4語で、
若いアドレスよりC0,C1,C2,C3と命令が並ん
でいるものとする。C0の最左ビットC000により、
図3に示すように、1語長命令か4語長命令かが判定で
きる。1語命令モード1は、4語境界内の左の2つの命
令(C0,C1)を実行するモードで、第1命令レジスタ
にC0が、第2命令レジスタにC1がセットされプログ
ラムカウンタPCは+2される。また、1語命令モード
2は、4語長境界内の右の2つの命令(C2,C3)を実
行するモードで、第1命令レジスタにC2,第2命令レ
ジスタにC3がセットされ、プログラムカウンタPCは
+2される。即ち、1語長命令実行時には、第1命令レ
ジスタと、第2命令レジスタのみ用い、第3命令レジス
タと第4命令レジスタは用いない。4語長命令モード
は、4語長命令(C0,C1,C2,C3)実行するモ
ードで、第1〜4命令レジスタにC0〜C3がセットさ
れ、プログラムカンタPCは+4される。競合モードと
は、競合検出回路109が競合を検出した場合で、第1
〜4命令レジスタ及び、モードレジスタ4100は前サ
イクルの値を保持する。また、プログラムカウンタPC
の更新は行わない。無効命令モードは、現サイクル以前
に実行した4語長命令のNフィールドで、現サイクルに
ハードウェアで無効命令(NOP)を挿入することを指示
されている場合で、命令レジスタには無効命令がセット
され、プログラムカウンタPCは更新されない。これに
より、無効サイクルが1サイクル挿入されることにな
る。
The control circuit 2700 outputs the conflict detection circuit output 1
16 (BUB), the first bit from the lower order of the instruction address
309-1 (CA30), a bit 1310-1-1 (C000) indicating whether the instruction is a 4-word length instruction in the operation code, and a signal 2704 (VALID) determine which of the five modes it is. 23, the operation code is set in the first to fourth instruction registers and the program counter is incremented by the signal 110. A signal 110 indicating which mode the current cycle is in is latched in the mode register 4100, and its output signal 130 is output to the register read control circuit 105, the register write control circuit 106, the function control circuit 107, and the pipeline control circuit 108. , And sent to the conflict detection circuit 109. In FIG. 23, C0-3 are four words within the four-word boundary,
It is assumed that instructions are arranged in order of C0, C1, C2, C3 from a young address. By the leftmost bit C000 of C0,
As shown in FIG. 3, it can be determined whether the instruction is a one-word length instruction or a four-word length instruction. The one-word instruction mode 1 is a mode in which the left two instructions (C0, C1) within the four-word boundary are executed. C0 is set in the first instruction register, C1 is set in the second instruction register, and the program counter PC is +2. Is done. The one-word instruction mode 2 is a mode for executing the right two instructions (C2, C3) within the four-word length boundary. C1 is set in the first instruction register, C3 is set in the second instruction register, and the program counter is set. PC is +2. That is, when executing a one-word length instruction, only the first instruction register and the second instruction register are used, and the third instruction register and the fourth instruction register are not used. The 4-word length instruction mode is a mode for executing a 4-word length instruction (C0, C1, C2, C3), in which C0 to C3 are set in the first to fourth instruction registers, and the program counter PC is incremented by +4. The conflict mode is when the conflict detection circuit 109 detects a conflict.
The? 4 instruction register and the mode register 4100 hold the value of the previous cycle. Also, the program counter PC
Is not updated. The invalid instruction mode is a case where an instruction to insert an invalid instruction (NOP) by hardware in the current cycle is specified in the N field of a 4-word length instruction executed before the current cycle. Set, the program counter PC is not updated. As a result, one invalid cycle is inserted.

【0100】1語長命令実行時にはC0、又は、C2の
実行の為に、第1ALU1401(図14),第1乗算器150
3(図15),第1加算器1505(図15)を用いる。一
方、C1、又は、C3の実行の為に、第2ALU1402(図1
4),第2乗算器1504(図15),第2加算器150
6(図15)を用いる。また、4語長命令実行時には、ロ
ードストア演算のアドレス計算を第1ALU1401(図14)
で、整数演算を第2ALU1402(図14)で、第1浮動小数
点演算を第1乗算器1503(図15)で、第2浮動小数
点演算を第1加算器1505(図15)で、第3浮動小数
点演算を第2乗算器1504(図15)で、第4浮動小数
点演算を第2加算器1506(図15)で行う。
When executing a one-word length instruction, the first ALU 1401 (FIG. 14) and the first multiplier 150 are used to execute C0 or C2.
3 (FIG. 15) and a first adder 1505 (FIG. 15). On the other hand, in order to execute C1 or C3, the second ALU 1402 (FIG. 1)
4), second multiplier 1504 (FIG. 15), second adder 150
6 (FIG. 15). When a four-word instruction is executed, the address calculation of the load / store operation is performed by the first ALU 1401 (FIG. 14).
The integer operation is performed by the second ALU 1402 (FIG. 14), the first floating-point operation is performed by the first multiplier 1503 (FIG. 15), and the second floating-point operation is performed by the first adder 1505 (FIG. 15). The decimal point operation is performed by the second multiplier 1504 (FIG. 15), and the fourth floating point operation is performed by the second adder 1506 (FIG. 15).

【0101】図41のレジスタ読み出し制御回路10
5,レジスタ書き込み回路106,ファンクション制御
回路107は、モード制御回路出力のモード指定信号1
10と第1〜4命令レジスタの値により、上述の演算器
割当て規則に従い、整数演算ユニット1304(図13)
の制御信号1318を生成する。レジスタ読み出し制御
回路について、更に詳細に説明したのが図24である。
6つの演算器のそれぞれの2つの入力に入れるレジスタ
の指定を、オペコードのどのフィールドで行うかを示し
ている。フィールドの略号については、図3の複合命令
の欄に示す。4語長命令のJ1とA1は、1語長命令の
S2と、4語長命令のJ2とA2は、1語長命令のS2
と同じ位置であることを利用し、図24上のフィールド
指定には、1語長命令時も、J1,J2,A1,A2を
用いて述べている。これは、C0とC1の区別の為であ
る。
The register read control circuit 10 of FIG.
5, the register writing circuit 106 and the function control circuit 107 receive the mode designation signal 1 of the mode control circuit output.
The integer operation unit 1304 (FIG. 13) according to the arithmetic unit assignment rule described above, based on the value of the tenth and the first to fourth instruction registers.
Is generated. FIG. 24 illustrates the register read control circuit in further detail.
It shows in which field of the operation code the register to be put into each of the two inputs of each of the six arithmetic units is specified. The abbreviations of the fields are shown in the column of the compound instruction in FIG. The four word length instructions J1 and A1 are one word length instruction S2, and the four word length instructions J2 and A2 are one word length instruction S2
24, the field designation on FIG. 24 is described using J1, J2, A1, and A2 even for a one-word length instruction. This is to distinguish between C0 and C1.

【0102】次に図41の競合検出回路109について
述べる。図7〜図9を用いて説明したように、本実施例
では4語長命令間の競合を検出する必要はない。また、
本実施例では、1語長命令実行用の全ての演算器を2重
化している為、同時に実行する2つの1語長命令間の演
算器による競合はあり得ない。簡単のためにレジスタ競
合も無いものとする。本実施例をレジスタ競合がある場
合に拡張することは、例えば、特願昭63−283673号のよ
うに容易である。前に述べたように、1語長命令と次の
有効な4語長命令の間に、必ず無効な4語長命令が2つ
入り、同様に、有効な4語長命令と次の1語長命令との
間には必ず無効な4語長命令が2つ入っているので、4
語長命令と1語長命令間の競合も有り得ない。故に、競
合検出回路109は、現サイクルの1語長命令と、それ
以前に実行された1語長命令間の競合のみを検出すれば
よい。モード制御回路100の制御により、1語長命令
は、第1命令レジスタ101と第2命令レジスタ102
にのみセットされるので、競合検出回路109は、第1
命令レジスタ101と第2命令レジスタ102のみを見
ればよく、第3命令レジスタ103,第4命令レジスタ
104は見る必要はない。
Next, the conflict detection circuit 109 shown in FIG. 41 will be described. As described with reference to FIGS. 7 to 9, in the present embodiment, it is not necessary to detect a conflict between four word long instructions. Also,
In the present embodiment, since all the arithmetic units for executing the one-word-length instruction are duplicated, there is no possibility of conflict between the two one-word-length instructions executed at the same time by the arithmetic unit. For simplicity, there is no register conflict. It is easy to extend this embodiment when there is a register conflict, for example, as disclosed in Japanese Patent Application No. 63-283673. As mentioned earlier, there are always two invalid 4-word instructions between the one-word instruction and the next valid 4-word instruction, and similarly, a valid 4-word instruction and the next one-word instruction. There are always two invalid 4-word length instructions between the long instruction and the long instruction.
There can be no conflict between word length instructions and one word length instructions. Therefore, the conflict detection circuit 109 need only detect a conflict between the one-word-length instruction in the current cycle and the one-word-length instruction executed before that. Under the control of the mode control circuit 100, the one-word length instruction is divided into a first instruction register 101 and a second instruction register 102.
, The conflict detection circuit 109 sets the first
It is only necessary to look at the instruction register 101 and the second instruction register 102, and it is not necessary to look at the third instruction register 103 and the fourth instruction register 104.

【0103】図25は、競合検出回路109の実施例の
ブロック図である。2501〜2504はレジスタ、250
5はマスク回路、2506〜2521はコンパレータで
ある。図7において、命令7,8を現命令とし、命令3
〜6との競合検出を考える。命令1,2のSステージの
次に命令7,8のEステージが来るので、命令1,2と
命令7,8の間の競合はない。図25のレジスタ250
1には、命令5が書き込むレジスタの番号が、レジスタ
2503には、命令6が書き込むレジスタの番号が、レ
ジスタ2502には、命令3が書き込むレジスタの番号
が、レジスタ2504には命令4が書き込むレジスタの
番号が記憶されている。上記4つのレジスタと、命令7
及び命令8が読み出す4つのレジスタの番号を、250
6〜2521の16個のコンパレータで比較し、結果を
マスク回路2505に送出する。マスク回路2505
は、モード制御回路100の出力130や、パイプライ
ン制御回路108の出力115を見て、コンパレータの
ヒット信号が有効であるかどうかを判定し、有効であれ
ば競合を示す信号116をアサートする。即、コンパレ
ータの出力がレジスタの一致を示していてもその命令が
無効化される場合は、信号116をネゲートする。この
マスク回路2505により、モード信号130が4語長
モードであることを示している時には、信号116をネ
ゲートする。
FIG. 25 is a block diagram of an embodiment of the conflict detection circuit 109. 2501 to 2504 are registers, 250
5 is a mask circuit, and 2506 to 2521 are comparators. In FIG. 7, instructions 7 and 8 are the current instruction, and instruction 3
Consider competition detection with # 6. Since the E stage of the instructions 7 and 8 comes after the S stage of the instructions 1 and 2, there is no conflict between the instructions 1 and 2 and the instructions 7 and 8. Register 250 of FIG.
1 is the number of the register to which instruction 5 is written, register 2503 is the number of the register to which instruction 6 is written, register 2502 is the number of the register to which instruction 3 is written, and register 2504 is the register to which instruction 4 is written. Are stored. The above four registers and instruction 7
And the number of the four registers read by instruction 8 is 250
The results are compared by 16 comparators 6 to 2521, and the result is sent to the mask circuit 2505. Mask circuit 2505
Sees the output 130 of the mode control circuit 100 and the output 115 of the pipeline control circuit 108, determines whether or not the hit signal of the comparator is valid, and asserts the signal 116 indicating contention if it is valid. Immediately, if the instruction is invalidated even if the output of the comparator indicates register match, the signal 116 is negated. When the mode signal 130 indicates the 4-word length mode by the mask circuit 2505, the signal 116 is negated.

【0104】次にパイプライン制御回路108について
説明する。パイプライン制御回路は、モード信号13
0,図13の整数演算ユニット1304からのフラグ信
号1317,図13の浮動小数点演算ユニット1307から
のフラグ信号1315,図13のデータキャッシュコン
トローラとのインタフェース1316,図13の命令キ
ャッシュコントローラとのインタフェース1311を用
いて、図13の分岐ユニット1302制御信号1312
を送出し、分岐ユニットを制御する。即ち、有効な分岐
命令が来た時には、分岐を行い、それ以外の時には、モ
ード信号110を用いて、図23のように分岐ユニット
内にあるプログラムカウンタを制御する。またパイプラ
イン制御回路108は、信号115を、レジスタ読み出
し制御回路105,パイプライン書き込み制御回路10
6,ファンクション制御回路107,競合検出回路10
9を送出し、パイプラインの状態を制御する。即ち、命
令キャッシュ、あるいはデータキャッシュのアクセスに
際してミスを生じた時に図29に示すようにパイプライ
ンをロックする。
Next, the pipeline control circuit 108 will be described. The pipeline control circuit outputs the mode signal 13
0, a flag signal 1317 from the integer operation unit 1304 in FIG. 13, a flag signal 1315 from the floating point operation unit 1307 in FIG. 13, an interface 1316 with the data cache controller in FIG. 13, and an interface 1311 with the instruction cache controller in FIG. , The branch unit 1302 control signal 1312 of FIG.
To control the branching unit. That is, when a valid branch instruction arrives, branching is performed, and at other times, the program counter in the branch unit is controlled using the mode signal 110 as shown in FIG. Further, the pipeline control circuit 108 outputs the signal 115 to the register read control circuit 105 and the pipeline write control circuit 10.
6, function control circuit 107, conflict detection circuit 10
9 to control the state of the pipeline. That is, when a miss occurs in accessing the instruction cache or the data cache, the pipeline is locked as shown in FIG.

【0105】次に上記実施例の第1の変形例について述
べる。上記実施例において、4語長命令は演算結果を3
つ後の命令に初めて反映することにより、4語長命令間
の競合検出部が不要になった。同様の効果を達成するた
めに、4語長命令でも演算結果を次の命令に反映する
が、4語長命令間での競合をコンパイラで避けるように
することもできる。具体的には、ある4語長命令が書き
込むレジスタを次の4語長命令と次の次の4語長命令と
で読まないようにするのである。このようにすることに
よって、第1の実施例のレジスタ数を実質的に増やす効
果は失われるが、図19で示したシャドウレジスタは不
要になる。
Next, a first modification of the above embodiment will be described. In the above-described embodiment, the four-word length instruction has
By reflecting the first instruction in the succeeding instruction for the first time, a conflict detection unit between instructions having a length of four words becomes unnecessary. In order to achieve the same effect, the operation result is reflected in the next instruction even in the case of a four-word instruction, but the conflict between the four-word instructions can be avoided by the compiler. Specifically, a register to which a certain four-word instruction is written is prevented from being read by the next four-word instruction and the next four-word instruction. By doing so, the effect of substantially increasing the number of registers in the first embodiment is lost, but the shadow register shown in FIG. 19 becomes unnecessary.

【0106】さらに、上記実施例の第2の変形例につい
て述べる。図3で示した実施例では、命令の中に1語長
命令か4語長命令かを示すビットを持っていたが、計算
機の中に1語長命令か4語超命令かを示すフラグを持
ち、このフラグを命令で制御することも可能である。こ
れによって、フラグを制御する命令が必要になるが、1
度フラグを切り換えれば毎回命令の中で語長を示す必要
が無くなるという利点がある。
Further, a second modification of the above embodiment will be described. In the embodiment shown in FIG. 3, the instruction has a bit indicating whether the instruction is a one-word instruction or a four-word instruction, but a flag indicating whether the instruction is a one-word instruction or more than four instructions is provided in the computer. It is also possible to control this flag with an instruction. This requires an instruction to control the flag,
Switching the degree flag has the advantage that it is not necessary to indicate the word length in the instruction every time.

【0107】図30〜図32を用いて、上記実施例の第
3の変形例について述べる。
A third modification of the above embodiment will be described with reference to FIGS.

【0108】本変形例では、図30の様に浮動小数点レ
ジスタを32本から128本に拡張している。図31に
命令フォーマット,図32に命令の説明を示す。FR0
〜31は基本命令,複合命令の両者で使用可であるが、
FR32〜FR127は、複合命令でのみ使用するレジ
スタである。レジスタを指定するI1,IT,MT,A
1,AT,N1,NT,B1,BTの各フィールドは図
31に示すように、各7ビットと増加する。本変形例で
は、ソースレジスタの片方をターゲットレジスタと一致
させることにより、全体を4語に収めているが、そうし
たくなければ、全体の語長をさらに長くすることも可能
である。
In this modification, the number of floating-point registers is increased from 32 to 128 as shown in FIG. FIG. 31 shows an instruction format, and FIG. 32 shows an explanation of the instruction. FR0
~ 31 can be used for both basic instructions and compound instructions.
FR32 to FR127 are registers used only in compound instructions. I1, IT, MT, A to specify register
The fields 1, 1, AT, N1, NT, B1, and BT increase to 7 bits as shown in FIG. In this modification, one of the source registers is matched with the target register so that the entirety is contained in four words. However, if this is not desired, the entire word length can be further increased.

【0109】本変形例では、基本命令に複合命令を追加
し、複合命令で基本命令が使えるレジスタの数よりも、
多くのレジスタを使えるようにすることにより、全体と
して、使用可能なレジスタ数を増やせるという効果があ
る。本変形例ではFR0〜31は基本命令と複合命令の
両方でアクセス可であるが代案として、基本命令用の3
2本と、複合命令用の128本のレジスタを独立のもの
とすることも可能である。
In this modification, a compound instruction is added to the basic instruction, and the number of registers in which the basic instruction can be used in the compound instruction is smaller than that of the compound instruction.
By making many registers available, the number of available registers can be increased as a whole. In this modification, FR0 to 31 can be accessed by both the basic instruction and the compound instruction.
It is also possible to make the two registers and the 128 registers for compound instructions independent.

【0110】さらに本変形例では、図32に示すよう
に、メモリからキャッシュへのプリフェッチの際にプリ
フェッチする語数をJTフィールドで指定可となってい
る。これにより一度に複数のブロック転送を行うよう命
令で指示でき、効率があがるという利点がある。
Further, in this modification, as shown in FIG. 32, the number of words to be prefetched at the time of prefetching from the memory to the cache can be specified in the JT field. Thus, there is an advantage that efficiency can be increased by instructing to perform a plurality of block transfers at once by an instruction.

【0111】図33,図34を用いて上記実施例の第4
の変形例について述べる。本変形例では、データのプリ
フェッチをJ1,J2,JTといった整数演算フィール
ドで行わずに、1ビットのPフィールドで行っている点
が異なる。P=1の時には、ロード・ストア演算に用い
られたアドレスを含むブロックの次のブロックがプリフ
ェッチされる。こうすることにより、プリフェッチに要
するフィールドが節約でき、ロード・ストア演算,整数
演算,プリフェッチの3動作が並列指定可となるという
利点が生まれる。
Referring to FIGS. 33 and 34, the fourth embodiment will be described.
A modified example of the above will be described. This modification is different from the first embodiment in that data prefetching is not performed in an integer operation field such as J1, J2, or JT but in a 1-bit P field. When P = 1, the block next to the block including the address used for the load / store operation is prefetched. By doing so, the fields required for prefetch can be saved, and there is an advantage that the three operations of load / store operation, integer operation, and prefetch can be specified in parallel.

【0112】図35はもう1つの実施例について説明す
る全体ブロック図である。
FIG. 35 is an overall block diagram for explaining another embodiment.

【0113】3500はプログラムカウンタ、3501
は命令を格納するメモリ手段、3502はマスク・スイッチ
回路、3503〜3506はM個のnバイト長の命令レ
ジスタ、3507はデコーダ、3508,3509はL
個(L1)の演算ユニット、150は命令長判定手
段、109は競合検出回路、100はモード制御回路、
4100はモードレジスタである。
Reference numeral 3500 denotes a program counter, 3501
Is a memory means for storing instructions, 3502 is a mask switch circuit, 3503 to 3506 are M instruction registers of n-byte length, 3507 is a decoder, and 3508 and 3509 are L
(L > 1) arithmetic units, 150 is instruction length determining means, 109 is a conflict detection circuit, 100 is a mode control circuit,
4100 is a mode register.

【0114】プログラムカウンタ3500は命令アドレ
ス3513を、命令を格納するメモリ手段3501に送
出する。3501の中には、nバイト長の命令とn×M
バイト長(M>1)の命令が混在しており、命令アドレ
ス3513で指定された命令を含む複数の命令をマスク
・スイッチ回路3502に送出する。マスク・スイッチ
回路3502はnバイト命令であればM個の命令レジス
タの内N個(1N<M)の命令レジスタ3503〜3
504の内の少なくとも1つにセットし、n×Mバイト
令命であれば命令レジスタ3503〜3506にセット
する。デコーダ3507は命令レジスタ3503〜35
06よりの命令3519〜3522をデコードし、L個
の演算ユニットを制御信号3523,3524を用いて
制御する。命令長判定手段150は、少なくとも命令3
514の一部を見て、命令長を示す信号3526をモー
ド制御回路100に送出する。競合検出回路109は、
命令レジスタ3503〜3504を見て、nバイト命令
間の競合の有無を知らせる信号116をモード制御回路
100に送出する。モード制御回路は、命令長,競合の
有無,プログラムカウンタの値によりモードを判定し、
制御信号110により、プログラムカウンタ,マスク・
スイッチ回路,デコーダを制御する。
The program counter 3500 sends the instruction address 3513 to the memory means 3501 for storing the instruction. 3501 includes an n-byte length instruction and n × M
Instructions of byte length (M> 1) are mixed, and a plurality of instructions including the instruction specified by the instruction address 3513 are sent to the mask switch circuit 3502. If the mask switch circuit 3502 is an n-byte instruction, N (1 < N <M) instruction registers 3503 to 3 out of M instruction registers
It is set in at least one of the instruction registers 504. If the instruction is n × M bytes, it is set in the instruction registers 3503 to 3506. The decoder 3507 has instruction registers 3503 to 35
Decode the instructions 3519 to 3522 from 06 and control the L arithmetic units using control signals 3523 and 3524. The instruction length determining means 150 determines at least the instruction 3
Looking at a part of 514, a signal 3526 indicating the instruction length is sent to the mode control circuit 100. The conflict detection circuit 109
By looking at the instruction registers 3503 to 3504, a signal 116 is sent to the mode control circuit 100 to notify whether or not there is contention between n-byte instructions. The mode control circuit determines the mode based on the instruction length, the presence or absence of conflict, and the value of the program counter.
The control signal 110 controls the program counter, mask,
Controls switch circuits and decoders.

【0115】本実施例と、図1〜図29及び図41の実
施例との対応を説明する。図1〜図29の実施例は、n
=4,M=4,N=2,L=2の場合である。また演算
ユニットは整数演算ユニットと浮動小数点演算ユニット
であった。また、図35のマスク・スイッチ回路は、図
41の第1〜4命令レジスタ101〜104にセットす
る命令を生成しているセレクタや、NOPによるマスク
等に対応する。また図35の競合検出回路109は、図
41の競合検出回路109に対応する。図35の命令長
判定手段150は図41の命令長判定手段150に対応
する。図35のモード制御回路100は、図41のモー
ド制御回路100に対応する。
The correspondence between this embodiment and the embodiments shown in FIGS. 1 to 29 and 41 will be described. The embodiment of FIGS.
= 4, M = 4, N = 2, L = 2. The arithmetic units were an integer arithmetic unit and a floating-point arithmetic unit. The mask switch circuit of FIG. 35 corresponds to a selector that generates an instruction to be set in the first to fourth instruction registers 101 to 104 of FIG. 41, a mask by NOP, and the like. The conflict detection circuit 109 in FIG. 35 corresponds to the conflict detection circuit 109 in FIG. The instruction length determining means 150 of FIG. 35 corresponds to the instruction length determining means 150 of FIG. The mode control circuit 100 in FIG. 35 corresponds to the mode control circuit 100 in FIG.

【0116】図3,図5,図10,図11,図12で示
した実施例では、図10の様にメモリ上でのデータ配置
が制約されるという欠点があった。これを解決したのが
図36〜図40に示す実施例である。本実施例の複合命
令では、図36,図37に示すように、1命令でロード
・ストア等のメモリ演算を2個実行できる。ハードウェ
アとしてはキャッシュを2ポート化するか、あるいは、
1マシンサイクルに2度アクセス可能な構成にすればよ
い。図39,図40に図11,図12に示したものと同
じ問題を解くプログラムを示す。
The embodiment shown in FIGS. 3, 5, 10, 11, and 12 has a disadvantage that the data arrangement on the memory is restricted as shown in FIG. The embodiment shown in FIGS. 36 to 40 solves this problem. In the compound instruction of this embodiment, two memory operations such as load / store can be executed by one instruction as shown in FIGS. As a hardware, the cache is made into two ports, or
What is necessary is just to make it the structure which can be accessed twice in one machine cycle. FIGS. 39 and 40 show programs for solving the same problems as those shown in FIGS.

【0117】これまでに説明した実施例では、命令長の
短い命令と長い命令を混在した計算機において、長い命
令の演算結果を、以後の任意の命令から反映する。ある
いは、長い命令は、次命令以降に続く無効命令の数を任
意に指定できる。あるいは、長い命令は、メモリまたは
キャッシュメモリからレジスタへデータを転送する第1
のフィールドと、メモリからキャッシュメモリへデータ
を転送する第2のフィールドを設けるといった工夫を行
ったが、これらの工夫は、長い命令のみを有するVLI
W型計算機に対しても有効である。
In the above-described embodiments, in a computer in which both short instructions and long instructions are mixed, the operation result of a long instruction is reflected from any subsequent instructions. Alternatively, for a long instruction, the number of invalid instructions following the next instruction can be arbitrarily specified. Alternatively, the long instruction is a first instruction that transfers data from memory or cache memory to a register.
, And a second field for transferring data from the memory to the cache memory.
It is also effective for W-type computers.

【0118】[0118]

【発明の効果】以上説明したように、本実施例では、4
語長命令を用いて、4語で7つの演算を指定できるが、
競合検出は、4×4=16個のコンパレータで行うこと
ができる。4語長命令間の競合検出をハードウェアで行
おうとすると、前サイクルの分岐演算を除く、6個の演
算の書き込みレジスタと前々サイクルの同じく6個の書
き込みレジスタと、現サイクルの12個の読み出しレジ
スタとの間の競合検出が必要で、(6+6)×12=14
4個のコンパレータが必要となる。本実施例では、これ
に比して16/144のハードウェアで済むという利点
がある。
As described above, in this embodiment, 4
Using word length instructions, seven operations can be specified in four words,
The conflict detection can be performed by 4 × 4 = 16 comparators. When trying to detect a conflict between instructions having a length of four words by hardware, the write registers for six operations, six write registers for the same cycle two cycles before, and the twelve write registers for the current cycle, excluding the branch operation in the previous cycle, are used. Conflict detection with the read register is required, and (6 + 6) × 12 = 14
Four comparators are required. In this embodiment, there is an advantage that the hardware of 16/144 is sufficient.

【0119】本実施例では、4語長命令で指示される演
算数7に対して、1マシンサイクルで処理される命令長
の短い命令が2である。これにより、2演算分の競合検
出回路で最大7演算の並列処理が得られるという効果が
ある。
In this embodiment, the number of instructions having a short instruction length processed in one machine cycle is 2 for the operation number 7 indicated by the 4-word length instruction. As a result, there is an effect that parallel processing of a maximum of seven operations can be obtained by the conflict detection circuit for two operations.

【0120】本発明によれば、並列に実行する演算の数
を増やし、性能を高めることができる。
According to the present invention, the number of operations executed in parallel can be increased, and the performance can be improved.

【0121】本発明によれば、コードサイズを小さくす
ることができる。これによりコードキャッシュのヒット
率が高まり、性能を高めることができる。
According to the present invention, the code size can be reduced. As a result, the hit ratio of the code cache is increased, and the performance can be improved.

【0122】本発明によれば、並列に実行する演算内の
ハードウェアによる競合検出を容易にすることができ
る。これにより、マシンサイクルを高めること、ハード
物量を減らし、コストを下げることができる。特に、長
い命令の中で指定する演算数が大の時、この効果は著し
い。
According to the present invention, it is possible to easily detect a conflict in hardware among operations executed in parallel. As a result, the machine cycle can be increased, the amount of hardware can be reduced, and the cost can be reduced. This effect is particularly remarkable when the number of operations specified in a long instruction is large.

【0123】本発明によれば、現サイクル以前に実行し
た命令と、現サイクルに実行する命令との間のハードウ
ェアによる競合検出,待合わせを容易にすることができ
る。これにより、マシンサイクルを高めること、ハード
物量を減らし、コストを下げることができる。
According to the present invention, it is possible to easily detect a conflict and wait for a conflict between an instruction executed before the current cycle and an instruction executed in the current cycle by hardware. As a result, the machine cycle can be increased, the amount of hardware can be reduced, and the cost can be reduced.

【0124】本発明によれば、ソフトウェアが用いられ
るレジスタの数を実質的に多くし、ソフトウェア上の最
適化により演算の並列度をあげ、性能を高めることがで
きる。
According to the present invention, the number of registers used by software can be substantially increased, and the degree of parallelism of operation can be increased by software optimization, thereby improving performance.

【0125】本発明によれば、従来アーキテクチャとの
上位互換性を保つことができる。
According to the present invention, upward compatibility with the conventional architecture can be maintained.

【図面の簡単な説明】[Brief description of the drawings]

【図1】命令制御ユニットの全体図である。FIG. 1 is an overall view of an instruction control unit.

【図2】レジスタ構成を示す図である。FIG. 2 is a diagram showing a register configuration.

【図3】命令形式を説明する図である。FIG. 3 is a diagram illustrating an instruction format.

【図4】1語長命令の動作を説明する図である。FIG. 4 is a diagram illustrating the operation of a one-word length instruction.

【図5】4語長命令の動作を説明する図である。FIG. 5 is a diagram illustrating the operation of a four-word length instruction.

【図6】パイプラインステージを説明する図である。FIG. 6 is a diagram illustrating a pipeline stage.

【図7】競合無の時の1語長命令処理のパイプラインを
示す図である。
FIG. 7 is a diagram showing a pipeline of one-word length instruction processing when there is no contention;

【図8】競合有の時の1語長命令処理のパイプラインを
示す図である。
FIG. 8 is a diagram showing a pipeline of one-word-length instruction processing when there is contention;

【図9】4語長命令のパイプラインを示す図である。FIG. 9 is a diagram showing a pipeline of a 4-word length instruction.

【図10】データのメモリ上での配置を示す図である。FIG. 10 is a diagram showing an arrangement of data on a memory.

【図11】4語長命令を用いた時の演算の様子を説明す
る図である。
FIG. 11 is a diagram illustrating a state of an operation when a 4-word length instruction is used.

【図12】4語長命令を用いたプログラムを説明する図
である。
FIG. 12 is a diagram illustrating a program using a 4-word length instruction.

【図13】全体ブロック図である。FIG. 13 is an overall block diagram.

【図14】整数演算ユニットのブロック図である。FIG. 14 is a block diagram of an integer operation unit.

【図15】浮動小数点演算ユニットのブロック図であ
る。
FIG. 15 is a block diagram of a floating-point operation unit.

【図16】浮動小数点レジスタファイルのブロック図で
ある。
FIG. 16 is a block diagram of a floating-point register file.

【図17】浮動小数点レジスタのブロック図である。FIG. 17 is a block diagram of a floating-point register.

【図18】浮動小数点レジスタ1ビット分の回路図であ
る。
FIG. 18 is a circuit diagram of one bit of a floating-point register.

【図19】浮動小数点レジスタのブロック図である。FIG. 19 is a block diagram of a floating-point register.

【図20】シャドウレジスタの動作を説明する図であ
る。
FIG. 20 is a diagram illustrating the operation of a shadow register.

【図21】シャドウレジスタの動作を説明する図であ
る。
FIG. 21 is a diagram illustrating the operation of a shadow register.

【図22】シャドウレジスタの動作を説明する図であ
る。
FIG. 22 is a diagram illustrating the operation of a shadow register.

【図23】モード制御回路の動作を説明する図である。FIG. 23 is a diagram illustrating the operation of the mode control circuit.

【図24】レジスタ読み出し制御回路の動作を説明する
図である。
FIG. 24 is a diagram illustrating the operation of the register read control circuit.

【図25】競合検出回路のブロック図である。FIG. 25 is a block diagram of a conflict detection circuit.

【図26】コンパイラの処理フローである。FIG. 26 is a processing flow of a compiler.

【図27】モード制御回路の詳細を示した図である。FIG. 27 is a diagram showing details of a mode control circuit.

【図28】データキャッシュの詳細を示したものであ
る。
FIG. 28 shows details of the data cache.

【図29】ロードストア演算でキャッシュミスを生じた
ときのパイプラインを示す図である。
FIG. 29 is a diagram showing a pipeline when a cache miss occurs in a load store operation.

【図30】その他の実施例を示す図である。FIG. 30 is a diagram showing another embodiment.

【図31】その他の実施例を示す図である。FIG. 31 is a diagram showing another embodiment.

【図32】その他の実施例を示す図である。FIG. 32 is a diagram showing another embodiment.

【図33】その他の実施例を示す図である。FIG. 33 is a diagram showing another embodiment.

【図34】その他の実施例を示す図である。FIG. 34 is a diagram showing another embodiment.

【図35】その他の実施例を示す図である。FIG. 35 is a diagram showing another embodiment.

【図36】その他の実施例を示す図である。FIG. 36 is a view showing another embodiment.

【図37】その他の実施例を示す図である。FIG. 37 is a diagram showing another embodiment.

【図38】その他の実施例を示す図である。FIG. 38 is a diagram showing another embodiment.

【図39】その他の実施例を示す図である。FIG. 39 is a view showing another embodiment.

【図40】その他の実施例を示す図である。FIG. 40 is a diagram showing another embodiment.

【図41】図1を詳細化した図である。FIG. 41 is a detailed view of FIG. 1;

【符号の説明】[Explanation of symbols]

100…モード制御部、101…第1命令レジスタ、1
02…第2命令レジスタ、103…第3命令レジスタ、
104…第4命令レジスタ、105…レジスタ読み出し
制御、106…レジスタ書き込み制御、107…ファン
クション制御、108…パイプライン制御、109…競
合検出部。
100: mode control unit, 101: first instruction register, 1
02: second instruction register, 103: third instruction register,
104: fourth instruction register, 105: register read control, 106: register write control, 107: function control, 108: pipeline control, 109: conflict detection unit.

───────────────────────────────────────────────────── フロントページの続き (72)発明者 山田 弘道 茨城県日立市久慈町4026番地 株式会社 日立製作所 日立研究所内 (72)発明者 前島 英雄 茨城県日立市久慈町4026番地 株式会社 日立製作所 日立研究所内 (56)参考文献 特開 平2−130634(JP,A) 特開 昭52−102648(JP,A) 特開 平3−129433(JP,A) 特開 平2−132524(JP,A) 特開 平2−130635(JP,A) 弘中哲夫、外3名、“ストリームFI FO方式に基づくベクトル・プロセッサ 『順風』”、電子情報通信学会技術研究 報告、社団法人電子情報通信学会、1989 年8月4日、Vol.89,No.167、 p.49−54 (58)調査した分野(Int.Cl.7,DB名) G06F 9/38 ──────────────────────────────────────────────────の Continued on the front page (72) Inventor Hiromichi Yamada 4026 Kuji-cho, Hitachi City, Ibaraki Prefecture Inside Hitachi, Ltd.Hitachi Laboratory (72) Inventor Hideo Maejima 4026 Kuji-machi, Hitachi City, Ibaraki Prefecture Hitachi Research, Ltd. In-house (56) References JP-A-2-130634 (JP, A) JP-A-52-102648 (JP, A) JP-A-3-129433 (JP, A) JP-A-2-132524 (JP, A) Japanese Patent Application Laid-Open No. 2-130635 (JP, A) Tetsuo Hironaka and three others, "Vector processor" Shunpu "based on stream FIFO system", IEICE technical report, IEICE, 1989 On August 4, Vol. 89, No. 167, p. 49-54 (58) Field surveyed (Int. Cl. 7 , DB name) G06F 9/38

Claims (9)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】入力された命令の命令長を検出し、1つの
命令で複数の演算を実行するための第1の命令か、1つ
の命令で1の演算を実行するための複数の第2の命令
を判定する命令長判定手段と、上記第2の命令が入力さ
れた時、上記第の命令と上記第2の命令の次に入力さ
れた第2の命令との間の競合の検出を行う競合検出手段
を有し、入力された上記命令をデコードする命令制御
部と、 上記命令制御部からデコードされた上記第1の命令に
基づいて並列に複数の演算実行、または少なくとも
2つのデコードされた上記第2の命令に基づいて並列に
演算実行、または上記第2の命令間の競合が検出さ
れたときに1つのデコードされた上記第2の命令に基づ
いて演算実行する演算部とを有する情報処理装置。
1. A detects the instruction length of an input instruction, one first or instructions for executing a plurality of operations in the instruction, one instruction at a plurality of second for performing the operations of 1 of instruction
Instruction length determining means for determining whether the second instruction
When the second instruction is input next to the second instruction.
The second has a detection and conflict detection means <br/> performing conflict between instructions, and the instruction control unit for decoding the instruction inputted, the decoded from the instruction control unit execute multiple operations in parallel on the basis of the first instruction, or at least two perform operations in parallel on the basis of the decoded said second instruction, or the second inter-instruction conflict is detected And an operation unit that executes an operation based on one decoded second instruction when the second instruction is issued.
【請求項2】請求項1記載の情報処理装置において、 上記第1の命令によって並列に演算できる数は、上記第
2の命令によって並列に演算できる数より大きい情報処
理装置。
2. The information processing apparatus according to claim 1, wherein a number that can be calculated in parallel by said first instruction is larger than a number that can be calculated in parallel by said second instruction.
【請求項3】1つの命令で複数の演算を実行するため
1の命令と、1つの命令で1の演算を実行するための
複数の第2の命令とからなる命令を記憶する記憶部と、 上記記憶部から入力された命令の命令長を検出し、上記
第1の命令か第2の命令かを判定する命令長判定手段
と、上記第2の命令が入力された場合、上記第の命令
上記第2の命令の次に入力された第2の命令との間の
競合の検出を行う競合検出手段とを有し、入力された上
記命令をデコードする命令制御部と、 上記命令制御部から送られてきたデコードされた上記第
1の命令に基づいて並列に複数の演算の実行、または少
なくとも2つのデコードされた上記第2の命令に基づい
て並列に演算の実行、または上記第2の命令間の競合が
検出されたときに1つのデコードされた上記第2の命令
に基づいて演算の実行を行う演算部とを有する情報処理
装置。
3. An apparatus for performing a plurality of operations with one instruction .
Detecting a first instruction, and one memory unit for storing a plurality of and a second instruction instructions for performing one of the operations in the instruction, the instruction length of the instruction inputted from the storage unit, the above
Instruction length determining means for determining whether the instruction is a first instruction or a second instruction
If, when the second command is input, and a conflict detection means for detecting a conflict between the second command input to the next of said second instruction and said second instruction the instruction control unit which decodes the command input, execution of multiple operations in parallel on the basis of the instructions decoded in the first sent from the instruction control unit, or at least two decoded the An execution unit for executing the operation in parallel based on the second instruction, or executing the operation based on one decoded second instruction when a conflict between the second instructions is detected. Information processing device.
【請求項4】請求項3記載の情報処理装置において、 上記記憶部はキャッシュメモリである情報処理装置。4. The information processing apparatus according to claim 3, wherein said storage unit is a cache memory. 【請求項5】請求項1又は3記載の情報処理装置におい
て、 上記演算部は、複数の演算器を有する情報処理装置。
5. An information processing apparatus according to claim 1, wherein said arithmetic unit has a plurality of arithmetic units.
【請求項6】単一演算を指示する命令長の短い命令又は
複数演算を指示する命令長の長い命令入力された時
上記命令長の短い命令か上記命令長の長い命令かを判定
する命令長判定手段と、上記命令長の短い命令と判定さ
た場合、上記命令長の短い命令間の競合を検出する
合検出手段を有し、入力された上記命令長の短い命令又
は上記命令長の長い命令をデコードする命令制御部と、 上記命令制御部によって上記命令長の長い命令がデコー
ドされた場合、上記命令長の長い命令に基づいて並列に
複数の演算を行い、あるいは上記命令長の短い命令がデ
コードされた場合、少なくとも2つのデコードされた上
記命令長の短い命令に基づいて並列に演算を処理行い、
あるいは上記競合検出手段によって上記命令長の短い命
と上記命令長の短い命令の次に入力された命令長の短
い命令との間の競合が検出された場合、デコードされた
1つの命令長の短い命令に基づいて演算を行う演算部と
を有する情報処理装置。
6. When the long instruction the instruction length to indicate the short instruction or operation of instruction length to an instruction of a single operation is input,
And determining instruction length determining means for determining the instruction length short instruction or the instruction length long instruction, if it is determined that the short instruction of the instruction length, competition detecting conflicts between short instructions of said instruction length
A command or a command having a short command length
Is an instruction control unit for decoding a long instruction of the instruction length, the instruction length long instruction by the instruction control unit when it is decoded <br/> de, multiple parallel based on a long instruction of the instruction length Perform an operation, or if the instruction with the short instruction length is
If coded , perform operations in parallel based on at least two of the decoded instructions with the shorter instruction lengths;
Alternatively, the instruction having a short instruction length and the instruction having a short instruction length input next to the instruction having a short instruction length are output by the conflict detection means.
And an operation unit that performs an operation based on one decoded instruction having a short instruction length when a conflict with a new instruction is detected.
【請求項7】請求項6記載の情報処理装置において、上記演算部によって実行される演算において、 並列して
実行できる演算の多い時には上記命令長の長い命令を用
い、並列して実行できる演算の少ない時には上記命令長
の短い命令を用いることを特徴とする情報処理装置
7. The information processing apparatus according to claim 6 , wherein, when there are many operations that can be executed in parallel in the operations executed by the operation unit, the instructions having the long instruction length are used to execute the operations that can be executed in parallel. An information processing apparatus characterized by using an instruction having a short instruction length when the number is small.
【請求項8】請求項6記載の情報処理装置において、 上記命令長の長い命令を用いるか上記命令長の短い命令
を用いるかの判断基準は、並列して実行できる演算数に
依存し、上記演算数は、パラメータとしてコンパイラに
指定されることを特徴とする情報処理装置
8. The information processing apparatus according to claim 6 , wherein said instruction having a long instruction length is used or said instruction having a short instruction length is used.
The criterion for determining whether to use is the number of operations that can be performed in parallel.
Depends on the above operation number
An information processing apparatus characterized by being specified .
【請求項9】請求項6記載の情報処理装置において、 上記命令長の長い命令の中で指定できる演算数は、1マ
シンサイクルで処理される上記命令長の短い命令の数よ
りも大きいことを特徴とする情報処理装置
9. The information processing apparatus according to claim 6, wherein the number of operations that can be specified in the long instruction length is larger than the number of the short length instruction processed in one machine cycle. Characteristic information processing device .
JP34792992A 1992-01-06 1992-12-28 Computer with parallel operation function Expired - Fee Related JP3146707B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP34792992A JP3146707B2 (en) 1992-01-06 1992-12-28 Computer with parallel operation function

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP4-29 1992-01-06
JP2992 1992-01-06
JP34792992A JP3146707B2 (en) 1992-01-06 1992-12-28 Computer with parallel operation function

Publications (2)

Publication Number Publication Date
JPH05257687A JPH05257687A (en) 1993-10-08
JP3146707B2 true JP3146707B2 (en) 2001-03-19

Family

ID=26332937

Family Applications (1)

Application Number Title Priority Date Filing Date
JP34792992A Expired - Fee Related JP3146707B2 (en) 1992-01-06 1992-12-28 Computer with parallel operation function

Country Status (1)

Country Link
JP (1) JP3146707B2 (en)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7786247B2 (en) 2004-03-09 2010-08-31 Eastman Chemical Company High IV melt phase polyester polymer catalyzed with antimony containing compounds
US7799891B2 (en) 2005-09-16 2010-09-21 Eastman Chemical Company Phosphorus containing compounds for reducing acetaldehyde in polyesters polymers
US7838596B2 (en) 2005-09-16 2010-11-23 Eastman Chemical Company Late addition to effect compositional modifications in condensation polymers
US7932345B2 (en) 2005-09-16 2011-04-26 Grupo Petrotemex, S.A. De C.V. Aluminum containing polyester polymers having low acetaldehyde generation rates
US7935399B2 (en) 2004-09-02 2011-05-03 Grupo Petrotemex, S.A. De C.V. Low melting polyester polymers
US8022168B2 (en) 2004-09-02 2011-09-20 Grupo Petrotexmex, S.A. de C.V. Spheroidal polyester polymer particles
US8431202B2 (en) 2005-09-16 2013-04-30 Grupo Petrotemex, S.A. De C.V. Aluminum/alkaline or alkali/titanium containing polyesters having improved reheat, color and clarity
US8557950B2 (en) 2005-06-16 2013-10-15 Grupo Petrotemex, S.A. De C.V. High intrinsic viscosity melt phase polyester polymers with acceptable acetaldehyde generation rates
US8901272B2 (en) 2007-02-02 2014-12-02 Grupo Petrotemex, S.A. De C.V. Polyester polymers with low acetaldehyde generation rates and high vinyl ends concentration
JP2015527866A (en) * 2012-09-06 2015-09-17 ハルビン インスティチュート オブ テクノロジー Motor cooling and eddy current suppression mechanism
US9267007B2 (en) 2005-09-16 2016-02-23 Grupo Petrotemex, S.A. De C.V. Method for addition of additives into a polymer melt

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2806359B2 (en) * 1996-04-30 1998-09-30 日本電気株式会社 Instruction processing method and instruction processing device
EP1050808B1 (en) * 1999-05-03 2008-04-30 STMicroelectronics S.A. Computer instruction scheduling
EP1050809A1 (en) * 1999-05-03 2000-11-08 STMicroelectronics SA Computer instruction dependency
JP2001092663A (en) * 1999-09-17 2001-04-06 Sanyo Electric Co Ltd Data processor
JP3708853B2 (en) 2001-09-03 2005-10-19 松下電器産業株式会社 Multiprocessor system and program control method
JP2010257199A (en) * 2009-04-24 2010-11-11 Renesas Electronics Corp Processor, and method of controlling instruction issue in processor

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
弘中哲夫、外3名、"ストリームFIFO方式に基づくベクトル・プロセッサ『順風』"、電子情報通信学会技術研究報告、社団法人電子情報通信学会、1989年8月4日、Vol.89,No.167、p.49−54

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8299203B2 (en) 2004-03-09 2012-10-30 Grupo Petrotemex, S.A. De C.V. High IV melt phase polyester polymer catalyzed with antimony containing compounds
US7902318B2 (en) 2004-03-09 2011-03-08 Eastman Chemical Company High IV melt phase polyester polymer catalyzed with antimony containing compounds
US7786247B2 (en) 2004-03-09 2010-08-31 Eastman Chemical Company High IV melt phase polyester polymer catalyzed with antimony containing compounds
US8106145B2 (en) 2004-03-09 2012-01-31 Grupo Petrotemex. S.A. de C.V. High IV melt phase polyester polymer catalyzed with antimony containing compounds
US7935399B2 (en) 2004-09-02 2011-05-03 Grupo Petrotemex, S.A. De C.V. Low melting polyester polymers
US8022168B2 (en) 2004-09-02 2011-09-20 Grupo Petrotexmex, S.A. de C.V. Spheroidal polyester polymer particles
US8987408B2 (en) 2005-06-16 2015-03-24 Grupo Petrotemex, S.A. De C.V. High intrinsic viscosity melt phase polyester polymers with acceptable acetaldehyde generation rates
US8557950B2 (en) 2005-06-16 2013-10-15 Grupo Petrotemex, S.A. De C.V. High intrinsic viscosity melt phase polyester polymers with acceptable acetaldehyde generation rates
US7932345B2 (en) 2005-09-16 2011-04-26 Grupo Petrotemex, S.A. De C.V. Aluminum containing polyester polymers having low acetaldehyde generation rates
US8431202B2 (en) 2005-09-16 2013-04-30 Grupo Petrotemex, S.A. De C.V. Aluminum/alkaline or alkali/titanium containing polyesters having improved reheat, color and clarity
US7838596B2 (en) 2005-09-16 2010-11-23 Eastman Chemical Company Late addition to effect compositional modifications in condensation polymers
US8791187B2 (en) 2005-09-16 2014-07-29 Grupo Petrotemex, S.A. De C.V. Aluminum/alkyline or alkali/titanium containing polyesters having improved reheat, color and clarity
US7799891B2 (en) 2005-09-16 2010-09-21 Eastman Chemical Company Phosphorus containing compounds for reducing acetaldehyde in polyesters polymers
US9267007B2 (en) 2005-09-16 2016-02-23 Grupo Petrotemex, S.A. De C.V. Method for addition of additives into a polymer melt
US8901272B2 (en) 2007-02-02 2014-12-02 Grupo Petrotemex, S.A. De C.V. Polyester polymers with low acetaldehyde generation rates and high vinyl ends concentration
JP2015527866A (en) * 2012-09-06 2015-09-17 ハルビン インスティチュート オブ テクノロジー Motor cooling and eddy current suppression mechanism

Also Published As

Publication number Publication date
JPH05257687A (en) 1993-10-08

Similar Documents

Publication Publication Date Title
JP3146707B2 (en) Computer with parallel operation function
JP3499252B2 (en) Compiling device and data processing device
EP0996057B1 (en) Data processor with an instruction unit having a cache and a ROM
JP2616182B2 (en) Data processing device
JP2928695B2 (en) Multi-thread microprocessor using static interleave and instruction thread execution method in system including the same
US6401190B1 (en) Parallel computing units having special registers storing large bit widths
US5717946A (en) Data processor
US5680637A (en) Computer having a parallel operating capability
JP2816248B2 (en) Data processor
JP4841861B2 (en) Arithmetic processing device and execution method of data transfer processing
US20050010743A1 (en) Multiple-thread processor for threaded software applications
JP4230504B2 (en) Data processor
KR100254007B1 (en) Data processor simultaneously executable two instruction
JPH02240735A (en) Multiple instruction processing system with data redundancy resolutions
JP2004171573A (en) Coprocessor extension architecture built by using novel splint-instruction transaction model
US6405303B1 (en) Massively parallel decoding and execution of variable-length instructions
JP3345787B2 (en) Data processing device
JP4502532B2 (en) Data processing device
JP2556182B2 (en) Data processing device
JP2504312B2 (en) Priority encoder and data processing device having the same
JPH117389A (en) System and method to process instruction for processor
Smith et al. The astronautics ZS-1 processor
JP2927281B2 (en) Parallel processing unit
JPH07219772A (en) Data cache mechanism
JP2006031329A (en) Data processor

Legal Events

Date Code Title Description
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080112

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080112

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090112

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090112

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100112

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees