JPH07110769A - Vliw type computer - Google Patents

Vliw type computer

Info

Publication number
JPH07110769A
JPH07110769A JP28026693A JP28026693A JPH07110769A JP H07110769 A JPH07110769 A JP H07110769A JP 28026693 A JP28026693 A JP 28026693A JP 28026693 A JP28026693 A JP 28026693A JP H07110769 A JPH07110769 A JP H07110769A
Authority
JP
Japan
Prior art keywords
instruction
vliw type
vliw
register
stored
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.)
Pending
Application number
JP28026693A
Other languages
Japanese (ja)
Inventor
Makoto Odajima
眞 小田島
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.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP28026693A priority Critical patent/JPH07110769A/en
Publication of JPH07110769A publication Critical patent/JPH07110769A/en
Pending legal-status Critical Current

Links

Abstract

PURPOSE:To provide a high-grade parallel computation function by the hardware of a small scale. CONSTITUTION:An instruction stored in an instruction register 1 is a normal single operational instruction. Then, the form of the instruction for starting a VLIW type operation which is the same form as the normal instruction is defined corresponding to a VLIW type instruction. When the instruction of the form is read from the instruction register 1, a decoder 2 parallelly operates respective computing elements 5 through an instruction buffer 4 by an instruction buffer control part 3. That is, the instruction buffer control part 3 discriminates whether or not the VLIW type instruction is stored in the instruction butter 4 by a number or the like corresponding to the kind of the VLIW type instruction and operates the respective computing elements 5 corresponding to the VLIW type instruction when the VLIW type instruction is stored. On the other hand, when the VLIW type instruction is not stored in the instruction buffer 4, the instruction read as the string of the normal instruction from a prescribed storage area is executed.

Description

【発明の詳細な説明】Detailed Description of the Invention

【0001】[0001]

【産業上の利用分野】本発明は、複数の機能ユニットに
対し、長命令形式で制御を行なうVLIW型計算機に関
するものである。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a VLIW type computer for controlling a plurality of functional units in a long instruction format.

【0002】[0002]

【従来の技術】一般に、並列計算機は、複数の機能実行
ユニットを有し、それらを同時並行して動作させること
により、高速処理を行なう。このような並列計算機の一
種としてVLIW計算機がある。VLIW計算機では、
比較的長い命令を多数のフィールドに分割し、各々のフ
ィールドで多数の演算器、レジスタ、相互結合網、メモ
リなどを独立に制御できる(富田真治著「並列計算機構
成論 第131頁〜133頁」昭晃堂(1986)、John
L.Hennesy and David A.Patterson著 富田真治、村上
和彰、新實治男訳「コンピュータ・アーキテクチャ 第
316〜323頁」日経BP社(1992)参照)。図2
は、従来のVLIW型計算機の一構成例を示すブロック
図である。図示の計算機は、複数の演算器21、命令レ
ジスタ22、レジスタファイル23等から成る。
2. Description of the Related Art Generally, a parallel computer has a plurality of function execution units and operates them in parallel at the same time to perform high-speed processing. A VLIW computer is one of such parallel computers. With the VLIW calculator,
A relatively long instruction can be divided into many fields, and each field can independently control many arithmetic units, registers, interconnection networks, memories, etc. (Shinji Tomita, "Parallel Computer Architecture, pages 131-133"). Shokodo (1986), John
L. Hennesy and David A. Patterson Translated by Shinji Tomita, Kazuaki Murakami, Haruo Shinzo "Computer Architecture 316-323" Nikkei BP (1992)). Figure 2
FIG. 6 is a block diagram showing an example of the configuration of a conventional VLIW type computer. The illustrated computer comprises a plurality of arithmetic units 21, an instruction register 22, a register file 23 and the like.

【0003】演算器21は、レジスタファイル23に格
納されたデータに加算、減算等の種々の演算を加えるユ
ニットであり、n個の同種あるいは異種構造のユニット
から成る。これらの演算器21は、一般的には、固定小
数点演算ユニット、浮動小数点演算ユニット、メモリア
クセスユニット、シーケンス制御ユニット等を組み合せ
たものである。命令レジスタ22には、図示のような形
式の命令が格納される。この命令は、複数のフィールド
F0、F1等から成り、それぞれのフィールドF0、F
1等は、それぞれの演算ユニットA0、A1等に対応し
たフィールドと全体の制御を行なうその他の制御フィー
ルドGから成る。演算ユニットA0、A1等に対応した
フィールドF0、F1等は、演算ユニットA0、A1等
の制御、演算ユニットA0、A1等に対するレジスタフ
ァイル23内のレジスタの指定等を行なう。
The arithmetic unit 21 is a unit for adding various operations such as addition and subtraction to the data stored in the register file 23, and is composed of n units of the same or different structure. These arithmetic units 21 are generally a combination of a fixed point arithmetic unit, a floating point arithmetic unit, a memory access unit, a sequence control unit and the like. The instruction register 22 stores instructions in the format shown in the figure. This command consists of a plurality of fields F0, F1, etc.
1 and the like are composed of fields corresponding to the respective arithmetic units A0 and A1 and other control fields G for performing overall control. The fields F0, F1, etc. corresponding to the arithmetic units A0, A1 etc. control the arithmetic units A0, A1 etc. and specify the registers in the register file 23 for the arithmetic units A0, A1 etc.

【0004】レジスタファイル23は、複数のレジスタ
から成る。これらの複数のレジスタは、演算器21の相
互結合網を含む。演算器21の入力元あるいは出力先と
なるレジスタ及び、演算器21同士、あるいは各演算器
21と各レジスタは、この相互結合網により接続され
る。このような構成の計算機を用いた場合、プログラム
中の並列性を検出し、命令の各フィールドを埋めること
により、簡単なハードウェア構成で最大限の並列性を得
られる。また、並列性の検出を静的に行なうようにして
いるため、実行時に並列動作の可能性を検出するハード
ウェアが不要である。このため、小規模のハードウェア
で高速かつ柔軟な計算機を構成することが可能になる。
The register file 23 is composed of a plurality of registers. These plural registers include a mutual connection network of the arithmetic units 21. The registers that are input sources or output destinations of the arithmetic units 21 and the arithmetic units 21 themselves or each arithmetic unit 21 and each register are connected by this mutual connection network. When a computer having such a configuration is used, the maximum parallelism can be obtained with a simple hardware configuration by detecting the parallelism in the program and filling each field of the instruction. Further, since the parallelism is statically detected, the hardware for detecting the possibility of parallel operation at the time of execution is unnecessary. Therefore, it is possible to configure a high-speed and flexible computer with small-scale hardware.

【0005】[0005]

【発明が解決しようとする課題】しかしながら、上述し
た従来の技術には、次のような問題があった。 (1)命令長の問題 VLIW型計算機は上述した特徴により命令長が比較的
長くなる。また、高速動作を要求するため、1マシンサ
イクルで1命令を供給する必要がある。従って、命令長
の幅と同じ幅の命令バッファと、命令バスを必要とす
る。 (2)コードサイズの問題 並列度を上げるためには、プログラムのループの部分は
展開しなければならない。従って、並列度を上げること
は、コードサイズが増加する要因になる。また、プログ
ラムに内在する並列度より、演算器の多重度の方が大き
い場合、命令フィールドがすべて埋まらず、未使用の命
令フィールド(NOP)により、コードサイズが増加す
る。
However, the above-mentioned conventional technique has the following problems. (1) Problem of instruction length The VLIW type computer has a relatively long instruction length due to the characteristics described above. Further, since a high speed operation is required, it is necessary to supply one instruction in one machine cycle. Therefore, an instruction buffer having the same width as the instruction length and an instruction bus are required. (2) Code size problem To increase the degree of parallelism, the loop part of the program must be expanded. Therefore, increasing the parallelism is a factor of increasing the code size. Further, when the multiplicity of the arithmetic unit is higher than the parallelism inherent in the program, the instruction field is not completely filled, and the unused instruction field (NOP) increases the code size.

【0006】(3)レジスタポート数の問題 すべての演算器がいずれのレジスタにも接続され、いず
れのレジスタも同時使用できるようになっているので、
各レジスタに演算器の数に比例した数のポートが必要で
ある。本発明は、以上の点に着目してなされたもので、
小規模なハードウェアにより高度な並列計算機能を実現
できるようにしたVLIW型計算機を提供することを目
的とするものである。
(3) The problem of the number of register ports Since all arithmetic units are connected to any register and any register can be used at the same time,
Each register requires a number of ports proportional to the number of arithmetic units. The present invention has been made focusing on the above points,
It is an object of the present invention to provide a VLIW type computer capable of realizing an advanced parallel computing function with a small-scale hardware.

【0007】[0007]

【課題を解決するための手段】本発明のVLIW型計算
機は、VLIW型命令を通常の命令と同じ形式で格納す
る命令レジスタと、当該命令レジスタから読み出された
命令がVLIW型命令か通常の命令かを判別するデコー
ダと、前記VLIW型命令をVLIW型命令の形式で格
納する命令バッファと、前記デコーダにより前記命令レ
ジスタから読み出された命令がVLIW型命令であると
判別された場合に前記命令バッファにそのVLIW型命
令が格納されているか否かを判別し、そのVLIW型命
令が格納されているときは、当該命令バッファからその
VLIW型命令を読み出して並列処理を行なう命令バッ
ファ制御部とを備えたことを特徴とするものである。
A VLIW type computer of the present invention includes an instruction register for storing a VLIW type instruction in the same format as an ordinary instruction, and an instruction read from the instruction register is a VLIW type instruction or an ordinary instruction. A decoder that determines whether the instruction is an instruction, an instruction buffer that stores the VLIW type instruction in the form of a VLIW type instruction, and the instruction read by the decoder from the instruction register is a VLIW type instruction. It is determined whether or not the VLIW type instruction is stored in the instruction buffer, and when the VLIW type instruction is stored, an instruction buffer control unit that reads the VLIW type instruction from the instruction buffer and performs parallel processing. It is characterized by having.

【0008】[0008]

【作用】本発明のVLIW型計算機においては、命令レ
ジスタに格納される命令は通常の単一動作命令である。
そして、VLIW型命令に対応して通常の命令と同じ形
式でVLIW型動作を開始する命令の形式を定義する。
デコーダは、命令レジスタからこの形式の命令を読み出
すと、命令バッファ制御部により命令バッファを介して
各演算器を並列動作させる。即ち、命令バッファ制御部
は、VLIW型命令の種類に応じた番号等により命令バ
ッファに対応するVLIW型命令の形式のVLIW型命
令が格納されているか否かを判別し、VLIW型命令が
格納されていればそのVLIW型命令に従って演算器を
動作させる。一方、命令バッファにVLIW型命令が格
納されていなければ所定の記憶領域から通常の命令の列
としてVLIW型命令を実行し、命令バッファにはVL
IW型命令の形式のVLIW型命令を格納する。これに
より、命令レジスタからこれと同じVLIW型動作を開
始する命令が読み出されたときは、命令バッファに格納
されたVLIW型命令が読み出され、各演算器が並列動
作される。
In the VLIW type computer of the present invention, the instruction stored in the instruction register is a normal single operation instruction.
Then, corresponding to the VLIW type instruction, the format of the instruction for starting the VLIW type operation is defined in the same format as the normal instruction.
When the decoder reads an instruction of this format from the instruction register, the instruction buffer control unit causes the arithmetic units to operate in parallel via the instruction buffer. That is, the instruction buffer control unit determines whether or not the VLIW type instruction in the format of the VLIW type instruction corresponding to the instruction buffer is stored by the number according to the type of the VLIW type instruction, and the VLIW type instruction is stored. If so, the arithmetic unit is operated according to the VLIW type instruction. On the other hand, if the VLIW type instruction is not stored in the instruction buffer, the VLIW type instruction is executed as a sequence of normal instructions from the predetermined storage area, and the VL is stored in the instruction buffer.
A VLIW type instruction in the form of an IW type instruction is stored. As a result, when the same instruction for starting the same VLIW type operation is read from the instruction register, the VLIW type instruction stored in the instruction buffer is read, and the respective arithmetic units are operated in parallel.

【0009】[0009]

【実施例】以下、本発明の実施例を図面を参照して詳細
に説明する。図1は、本発明のVLIW型計算機の一実
施例のブロック図である。図示の計算機は、命令レジス
タ1、デコーダ2、命令バッファ制御部3、命令バッフ
ァ4、複数の演算器5、汎用レジスタファイル6、並列
処理用レジスタファイル7等から成る。命令レジスタ1
は、図示しない命令メモリよりフェッチした命令を格納
するレジスタである。この命令レジスタ1は、デコーダ
2に接続されている。命令レジスタ1にフェッチされる
命令は、並列実行を行なうためのVLIW型命令ではな
く、通常の単一命令を実行するために用いる命令であ
り、一般的には、32ビット長や16ビット長の命令で
ある。デコーダ2は、命令レジスタ1の命令をデコード
し、各演算器5の制御信号を出力する。即ち、デコーダ
2は、OPコードにより加算命令、減算命令、ロード命
令等の別を判定し、対応する演算器5に制御信号を出力
する。
Embodiments of the present invention will now be described in detail with reference to the drawings. FIG. 1 is a block diagram of an embodiment of a VLIW type computer of the present invention. The illustrated computer comprises an instruction register 1, a decoder 2, an instruction buffer control unit 3, an instruction buffer 4, a plurality of arithmetic units 5, a general-purpose register file 6, a parallel processing register file 7, and the like. Instruction register 1
Is a register for storing an instruction fetched from an instruction memory (not shown). The instruction register 1 is connected to the decoder 2. The instruction fetched into the instruction register 1 is not a VLIW type instruction for performing parallel execution but an instruction used for executing a normal single instruction, and generally has a 32-bit length or a 16-bit length. It is an instruction. The decoder 2 decodes the instruction of the instruction register 1 and outputs the control signal of each arithmetic unit 5. That is, the decoder 2 determines whether the instruction is an addition instruction, a subtraction instruction, a load instruction, or the like based on the OP code, and outputs a control signal to the corresponding arithmetic unit 5.

【0010】命令バッファ制御部3は、命令バッファ4
に格納される内容を制御したり、命令バッファ4の命令
の実行を制御するものである。命令バッファ4は、VL
IW型命令を格納するもので、命令の各フィールドによ
り各演算器5をそれぞれ制御する。演算器5は、加減乗
除や論理演算等の各種の演算、ロードやストア等のメモ
リ制御、分岐等のシーケンス制御等から成るn個の演算
ユニットである。汎用レジスタファイル6は、VLIW
型命令以外の通常の命令で使用されるレジスタである。
並列処理用レジスタファイル7は、VLIW型命令を実
行する場合に使用されるレジスタである。
The instruction buffer control unit 3 includes an instruction buffer 4
To control the contents stored in and the execution of the instructions in the instruction buffer 4. The instruction buffer 4 is VL
The IW type instruction is stored, and each arithmetic unit 5 is controlled by each field of the instruction. The arithmetic unit 5 is n arithmetic units including various operations such as addition, subtraction, multiplication and division, logical operations, etc., memory control such as load and store, sequence control such as branching, and the like. The general-purpose register file 6 is VLIW
It is a register used in normal instructions other than type instructions.
The parallel processing register file 7 is a register used when executing a VLIW type instruction.

【0011】図3は、VLIW型動作を開始する命令の
形式の一例を示す。VLIWOPフィールドは、この命
令がVLIW型動作を開始する命令であることを示す。
NOフィールドは、VLIW型動作の何番目の命令を実
行するかを指定するフィールドである。DSTフィール
ドは、VLIW型動作の結果値を戻す必要がある場合に
その値を格納するレジスタの番号を示すフィールドであ
る。SRC1、SRC2フィールドは、VLIW型動作
を行なうために必要なパラメータを格納したレジスタの
番号を示すフィールドである。このようなVLIW型命
令によりSRC1及びSRC2フィールドに指定された
番号のレジスタに格納されたデータに対し、VLIW型
命令の演算が施され、その結果がDSTフィールドに指
定されたレジスタに格納される。
FIG. 3 shows an example of the format of the instruction for starting the VLIW type operation. The VLIWOP field indicates that this instruction is an instruction to start a VLIW type operation.
The NO field is a field for designating the order of the VLIW type operation to be executed. The DST field is a field that indicates the number of the register that stores the value when the result value of the VLIW type operation needs to be returned. The SRC1 and SRC2 fields are fields indicating the number of a register that stores parameters necessary for performing the VLIW type operation. By such a VLIW type instruction, the data stored in the registers of the numbers designated in the SRC1 and SRC2 fields is subjected to the operation of the VLIW type instruction, and the result is stored in the register designated in the DST field.

【0012】図4は、命令バッファ制御部3の詳細な構
成を示すブロック図である。図示のように、命令バッフ
ァ制御部3は、命令形式変換部41、命令バッファアド
レステーブル42、命令バッファアドレスカウンタ4
3、VLIW型命令シーケンス制御部44から成る。命
令形式変換部41は、命令レジスタ1にフェッチされた
単一動作型の命令をVLIW型命令の1つのフィールド
を形成するように変換する。この結果、形成されたVL
IW型命令は、命令バッファ4に格納される。命令バッ
ファアドレステーブル42は、命令バッファ4内のVL
IW型命令の開始アドレスとその命令の有効性を示すテ
ーブルである。このテーブルの各エントリは、VLIW
型命令の番号を格納するフィールドと、その番号が指定
する命令バッファ4内のVLIW動作の開始アドレスと
その開始アドレスが有効かどうかを示すV(Valid) ビッ
トから成る。
FIG. 4 is a block diagram showing a detailed structure of the instruction buffer control unit 3. As illustrated, the instruction buffer control unit 3 includes an instruction format conversion unit 41, an instruction buffer address table 42, an instruction buffer address counter 4
3, VLIW type instruction sequence control unit 44. The instruction format conversion unit 41 converts the single operation type instruction fetched into the instruction register 1 so as to form one field of the VLIW type instruction. As a result, the formed VL
The IW type instruction is stored in the instruction buffer 4. The instruction buffer address table 42 stores the VL in the instruction buffer 4.
4 is a table showing the start address of an IW type instruction and the validity of that instruction. Each entry in this table is a VLIW
A field for storing the number of the type instruction, a start address of the VLIW operation in the instruction buffer 4 designated by the number, and a V (Valid) bit indicating whether or not the start address is valid.

【0013】命令バッファアドレスカウンタ43は、単
一動作命令を命令バッファ4へ格納する場合の命令バッ
ファ4のアドレスをカウントする。この命令バッファア
ドレスカウンタ43は、次に書き込む命令バッファ4の
アドレスを常に保持しており、VLIW型命令の開始ア
ドレスを命令バッファアドレステーブル42に送出す
る。VLIW型命令シーケンス制御部44は、命令形式
変換部41で変換された命令を命令バッファ4に格納す
るとともに、命令バッファ4に格納されたVLIW型命
令のシーケンス制御を行なう。
The instruction buffer address counter 43 counts the address of the instruction buffer 4 when storing a single operation instruction in the instruction buffer 4. The instruction buffer address counter 43 always holds the address of the instruction buffer 4 to be written next, and sends the start address of the VLIW type instruction to the instruction buffer address table 42. The VLIW instruction sequence control unit 44 stores the instruction converted by the instruction format conversion unit 41 in the instruction buffer 4 and controls the sequence of the VLIW instruction stored in the instruction buffer 4.

【0014】次に、上述のように構成した計算機の動作
を説明する。図1において、まず、命令バスよりフェッ
チされた命令が命令レジスタ1に格納される。命令レジ
スタ1に格納された命令は、デコーダ2でデコードされ
る。これにより、演算器5が指定され、汎用レジスタフ
ァイル6が指定される。また、デコーダ2ではOPコー
ドによりデコードされた命令が単一動作を指定する通常
の命令か否かが判定される。通常の命令の場合、演算器
5のうちの1つが指定され、その際、汎用レジスタファ
イル6内のレジスタが1つあるいは2つ程度指定され
る。
Next, the operation of the computer configured as described above will be described. In FIG. 1, first, the instruction fetched from the instruction bus is stored in the instruction register 1. The instruction stored in the instruction register 1 is decoded by the decoder 2. As a result, the arithmetic unit 5 is designated and the general-purpose register file 6 is designated. Further, the decoder 2 determines whether the instruction decoded by the OP code is a normal instruction designating a single operation. In the case of a normal instruction, one of the arithmetic units 5 is designated, and at that time, one or two registers in the general-purpose register file 6 are designated.

【0015】一方、デコーダ2でデコードされた命令が
図3に示すVLIW型命令の場合、命令バッファ制御部
3において、命令中のNoフィールドの内容により、命
令バッファアドレステーブル42の内容が調べられる。
図5に、命令バッファ制御部の動作を示す。命令中のN
oフィールドの値を持つエントリのVビットがセットさ
れている場合は命令バッファ4中にすでに対象となるV
LIW型命令列が存在することを示している(ステップ
S1)。従って、直ちに命令バッファ4内の命令列に制
御が移される(ステップS2)。この場合の命令バッフ
ァ4の開始アドレスは、命令バッファアドレステーブル
の該当するエントリのバッファアドレスフィールド中に
格納されたアドレスである。
On the other hand, when the instruction decoded by the decoder 2 is the VLIW type instruction shown in FIG. 3, the instruction buffer control unit 3 checks the content of the instruction buffer address table 42 by the content of the No field in the instruction.
FIG. 5 shows the operation of the instruction buffer controller. N in the order
If the V bit of the entry having the value of the o field is set, the target V is already stored in the instruction buffer 4.
This indicates that there is a LIW type instruction sequence (step S1). Therefore, control is immediately transferred to the instruction string in the instruction buffer 4 (step S2). The start address of the instruction buffer 4 in this case is the address stored in the buffer address field of the corresponding entry of the instruction buffer address table.

【0016】この命令の実行の際は、まず、VLIW型
動作開始命令中のSRC1、SRC2フィールドが示す
レジスタ番号の内容が汎用レジスタファイル6より読み
出される。そして、並列処理用レジスタファイル7中の
同じ番号を持つレジスタに格納される。この後、命令バ
ッファ4に格納されたVLIW型命令が1サイクル毎に
1命令実行される。そして、命令中のSEQフィールド
に従って、VLIW型命令シーケンス制御部44が順次
命令バッファ4のアドレスを出力し、そのアドレスの命
令が実行される。命令中のSEQフィールドがVLIW
型命令の終了を示す場合は、VLIW型命令は終了し、
命令レジスタ1にフェッチされた次の単一動作型の通常
命令の実行が開始される。この際、VLIW型動作開始
命令中のDSTフィールドで指定されたレジスタの内容
が、並列処理用レジスタファイル7から汎用レジスタフ
ァイル6の同じ番号を持つレジスタにコピーされる。以
後、再びVLIW型命令がフェッチされるまで、通常命
令の実行が繰り返される。
When executing this instruction, first, the contents of the register numbers indicated by the SRC1 and SRC2 fields in the VLIW type operation start instruction are read from the general-purpose register file 6. Then, it is stored in the register having the same number in the parallel processing register file 7. After that, one VLIW type instruction stored in the instruction buffer 4 is executed every one cycle. Then, according to the SEQ field in the instruction, the VLIW type instruction sequence control unit 44 sequentially outputs the address of the instruction buffer 4, and the instruction of that address is executed. The SEQ field in the command is VLIW
If it indicates the end of the type instruction, the VLIW type instruction ends,
Execution of the next single operation type normal instruction fetched in the instruction register 1 is started. At this time, the contents of the register designated by the DST field in the VLIW type operation start instruction are copied from the parallel processing register file 7 to the register having the same number in the general-purpose register file 6. After that, the execution of the normal instruction is repeated until the VLIW type instruction is fetched again.

【0017】もし、命令バッファ4中の該当するエント
リのVビットがリセットされている場合は、命令バッフ
ァ中にVLIW型命令が格納されていないことを意味す
る(ステップS1)。この場合、トラップが発生し、そ
のトラップ命令に指定されたアドレスより始まるトラッ
プルーチンがフェッチされる(ステップS3)。このト
ラップルーチンは、図6に示すように、主記憶装置のそ
のアドレスに予め格納されている。これらのトラップル
ーチンは、使用するVLIW型命令の種類だけ用意され
る。トラップルーチンは、通常の命令と同じ形式の命令
列から成り、命令バッファ4の各フィールドを順次埋め
られるようにOP1フィールドに対応する命令から順番
に記述される。該当するフィールドが埋められない場合
は、NOP命令を挿入する必要がある。これをVLIW
型命令の数だけ繰り返す。従って、(VLIW型命令の
フィールド数)×(VLIW型命令の数)の通常命令が
トラップルーチンに必要である。
If the V bit of the corresponding entry in the instruction buffer 4 is reset, it means that no VLIW type instruction is stored in the instruction buffer (step S1). In this case, a trap is generated, and the trap routine starting from the address designated by the trap instruction is fetched (step S3). This trap routine is stored in advance at that address in the main memory as shown in FIG. These trap routines are prepared only for the type of VLIW type instruction to be used. The trap routine is composed of an instruction sequence of the same format as a normal instruction, and is described in order from the instruction corresponding to the OP1 field so that each field of the instruction buffer 4 can be sequentially filled. When the corresponding field is not filled, it is necessary to insert the NOP instruction. This is VLIW
Repeat for the number of type commands. Therefore, the trap routine needs (VLIW type instruction field number) × (VLIW type instruction number) normal instructions.

【0018】トラップルーチンに記述された単一命令
は、命令レジスタ1にフェッチされ(ステップS4)、
実行される(ステップS5)。命令形式変換部41によ
り、VLIW型命令の各フィールドに適合するように変
換され(ステップS6)、命令バッファ4に格納される
(ステップS7)。格納される命令バッファ4の開始ア
ドレスは、命令バッファアドレスカウンタ43が保持し
ており、VLIW型動作開始命令を検出した場合、命令
バッファアドレステーブル42に登録されていないとき
は、命令バッファアドレスカウンタ43の保持している
アドレスを命令バッファアドレステーブル42の該当す
る番号Noのエントリのバッファアドレスフィールドに
書き込み、このアドレスの示す命令バッファアドレスの
フィールドへ順次書き込む。トラップルーチン内のリタ
ーン命令は、命令形式変換部41によって、VLIW型
動作終了を示すコードに変換され、命令バッファ4のS
EQフィールドに格納される。これらのトラップルーチ
ン内の単一動作命令は、このようにして、命令バッファ
4に書き込みが行なわれるとともに、実行も行なわれ
る。
The single instruction described in the trap routine is fetched into the instruction register 1 (step S4),
It is executed (step S5). The instruction format conversion unit 41 converts the VLIW-type instruction so as to match each field (step S6) and stores it in the instruction buffer 4 (step S7). The start address of the instruction buffer 4 to be stored is held by the instruction buffer address counter 43, and when the VLIW type operation start instruction is detected and is not registered in the instruction buffer address table 42, the instruction buffer address counter 43 is stored. The address held by is written in the buffer address field of the entry of the corresponding number No in the instruction buffer address table 42, and is sequentially written in the field of the instruction buffer address indicated by this address. The return instruction in the trap routine is converted by the instruction format conversion unit 41 into a code indicating the end of the VLIW type operation, and S in the instruction buffer 4 is converted.
It is stored in the EQ field. The single operation instruction in these trap routines is thus written and executed in the instruction buffer 4.

【0019】図7は、単一動作命令の実行時の動作の説
明図である。一時データ格納レジスタ51は、VLIW
型命令を通常の命令の列として実行している場合におい
て、VLIW型で並列に動作している場合とレジスタの
一貫性が保障されるようにする。このため、VLIW型
命令の一命令分が終了するまで並列処理用レジスタファ
イル7への書き込みを一時的に保留し、VLIW型命令
の一命令分が終了する時に一括して書き込みを行なうよ
うにする。この一時データ格納レジスタ51は、VLI
W型命令を通常の命令の列として実行している場合のみ
使用され、命令バッファ4の内容により、VLIW型動
作をする場合は、直接並列処理用レジスタファイル7に
書き込みが行なわれる。
FIG. 7 is an explanatory diagram of the operation when the single operation instruction is executed. The temporary data storage register 51 is a VLIW
When the type instructions are executed as a series of normal instructions, the consistency of the registers is ensured as compared with the case of parallel operation in the VLIW type. Therefore, writing to the parallel processing register file 7 is temporarily suspended until one VLIW type instruction is completed, and writing is collectively performed when one VLIW type instruction is completed. . This temporary data storage register 51 is
It is used only when a W-type instruction is executed as a sequence of normal instructions, and depending on the contents of the instruction buffer 4, when performing a VLIW-type operation, writing is directly performed to the parallel processing register file 7.

【0020】以上のようにして、命令レジスタ1に格納
される命令を通常の命令の形式とすることができ、命令
長が長くなることがなく、命令バスの信号線数も少なく
することができる。また、コードサイズが通常の命令の
サイズにより決定されるので、VLIW型命令をあまり
使用しないようなプログラムでも未使用の命令フィール
ドが多くなることがない。尚、上述した実施例において
は、主記憶装置の所定の記憶領域から読み出したVLI
W型命令を命令バッファ4に格納していくようにした
が、本発明はこれに限定されることなく、命令バッファ
4にすべての組合せのVLIW型命令を予め格納してお
くものも含むものである。
As described above, the instruction stored in the instruction register 1 can be in the normal instruction format, the instruction length does not increase, and the number of signal lines of the instruction bus can be reduced. . In addition, since the code size is determined by the size of a normal instruction, the unused instruction field does not increase even in a program that rarely uses VLIW type instructions. In the embodiment described above, the VLI read from the predetermined storage area of the main storage device is used.
Although the W-type instructions are stored in the instruction buffer 4, the present invention is not limited to this, and also includes those in which the VLIW-type instructions of all combinations are stored in advance in the instruction buffer 4.

【0021】[0021]

【発明の効果】以上説明したように、本発明のVLIW
型計算機によれば、VLIW型命令を格納する命令バッ
ファと、その命令バッファを外部の命令により制御する
命令バッファ制御部とを設けるようにしたので、以下の
ような効果がある。即ち、並列度が高く高速性が要求さ
れる部分のみVLIW型命令を使用すれば良いようにな
るので、全体のコードサイズを縮小することができ、命
令メモリの容量を大きく取る必要がなく、また、命令長
を大きくとる必要がないようにできる。このため、命令
バスの幅を縮小でき、全体的なハードウェアの小型化が
可能となる。また、VLIW型動作開始命令を通常の命
令を拡張することにより得られるようにするとともに、
通常の命令列からVLIW型命令を作成するようにする
ことにより、既存の計算機の命令セットアーキテクチャ
と上位の互換性を保つように構成でき、従来のソフトウ
ェアを生かした上でデータ処理を並列化し、高速化を図
ることが可能である。更に、上述のような命令バッファ
及び命令バッファ制御部を設けるとともに、VLIW型
命令の実行で使用するレジスタファイルと並列度の低い
通常の命令の実行で使用するレジスタを分離し、命令の
種類により切替えて使用することにより、VLIW動作
に必要な多ポートのレジスタファイルの容量を最適に調
整できる。従って、用途によりハードウェアを最適化
し、ポート数の削減を図ることが可能となる。
As described above, the VLIW of the present invention is
According to the type computer, since the instruction buffer for storing the VLIW type instruction and the instruction buffer control unit for controlling the instruction buffer by the external instruction are provided, the following effects can be obtained. That is, since it becomes necessary to use the VLIW type instruction only in a portion having a high degree of parallelism and high speed, it is possible to reduce the overall code size, and it is not necessary to increase the instruction memory capacity. , It is possible to avoid having to take a large instruction length. Therefore, the width of the instruction bus can be reduced, and the overall hardware can be downsized. Further, the VLIW type operation start instruction can be obtained by expanding a normal instruction, and
By creating a VLIW type instruction from a normal instruction sequence, it can be configured to maintain upward compatibility with the instruction set architecture of an existing computer. Data processing can be parallelized using conventional software, It is possible to increase the speed. Further, the instruction buffer and the instruction buffer control unit as described above are provided, and the register file used for the execution of VLIW type instructions and the register used for the execution of ordinary instructions with low parallelism are separated and switched according to the type of the instruction. It is possible to optimally adjust the capacity of the multiport register file necessary for the VLIW operation. Therefore, it is possible to optimize the hardware according to the application and reduce the number of ports.

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

【図1】本発明のVLIW型計算機の一実施例のブロッ
ク図である。
FIG. 1 is a block diagram of an embodiment of a VLIW type computer of the present invention.

【図2】従来ののVLIW型計算機の構成例を示すブロ
ック図である。
FIG. 2 is a block diagram showing a configuration example of a conventional VLIW type computer.

【図3】VLIW型動作を開始する命令の形式の説明図
である。
FIG. 3 is an explanatory diagram of a format of an instruction to start a VLIW type operation.

【図4】図1の命令バッファ制御部の詳細な構成を示す
ブロック図である。
FIG. 4 is a block diagram showing a detailed configuration of an instruction buffer control unit in FIG.

【図5】命令バッファ制御部の動作を説明するフローチ
ャートである。
FIG. 5 is a flowchart illustrating an operation of an instruction buffer control unit.

【図6】主記憶装置の所定の領域の内容の説明図であ
る。
FIG. 6 is an explanatory diagram of contents of a predetermined area of the main storage device.

【図7】図1のレジスタファイルの動作の説明図であ
る。
FIG. 7 is an explanatory diagram of the operation of the register file of FIG.

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

1 命令レジスタ 2 デコーダ 3 命令バッファ制御部 4 命令バッファ 5 演算器 6 汎用レジスタファイル 7 並列処理用レジスタファイル 1 instruction register 2 decoder 3 instruction buffer control unit 4 instruction buffer 5 arithmetic unit 6 general purpose register file 7 parallel processing register file

Claims (4)

【特許請求の範囲】[Claims] 【請求項1】 VLIW型命令を通常の命令と同じ形式
で格納する命令レジスタと、 当該命令レジスタから読み出された命令がVLIW型命
令か通常の命令かを判別するデコーダと、 前記VLIW型命令をVLIW型命令の形式で格納する
命令バッファと、 前記デコーダにより前記命令レジスタから読み出された
命令がVLIW型命令であると判別された場合に前記命
令バッファにそのVLIW型命令が格納されているか否
かを判別し、そのVLIW型命令が格納されているとき
は、当該命令バッファからそのVLIW型命令を読み出
して並列処理を行なう命令バッファ制御部とを備えたこ
とを特徴とするVLIW型計算機。
1. An instruction register that stores a VLIW type instruction in the same format as a normal instruction, a decoder that determines whether the instruction read from the instruction register is a VLIW type instruction or a normal instruction, and the VLIW type instruction. In the form of a VLIW type instruction, and if the instruction read from the instruction register by the decoder is a VLIW type instruction, is the VLIW type instruction stored in the instruction buffer? A VLIW type computer comprising: an instruction buffer control unit for determining whether or not the VLIW type instruction is stored and reading the VLIW type instruction from the instruction buffer for parallel processing.
【請求項2】 前記命令バッファ制御部は、前記命令レ
ジスタから読み出されたVLIW型命令が前記命令バッ
ファにVLIW型命令の形式で格納されていないとき、
所定の記憶領域から通常の命令の列として読み出された
命令を順次実行しつつ、前記命令バッファにVLIW型
命令の形式に変換したVLIW型命令を格納することを
特徴とする請求項1記載のVLIW型計算機。
2. The instruction buffer control unit, when the VLIW type instruction read from the instruction register is not stored in the instruction buffer in the VLIW type instruction format,
2. The VLIW type instruction converted into the VLIW type instruction format is stored in the instruction buffer while sequentially executing the instructions read out as a sequence of normal instructions from a predetermined storage area. VLIW type calculator.
【請求項3】 前記VLIW型命令の実行時に使用する
並列処理用レジスタファイルと、 前記通常の命令の実行時に使用する汎用レジスタファイ
ルとを別個に備え、 前記命令バッファ制御部は、前記デコーダにより判別さ
れた命令の種類に応じて前記並列処理用レジスタファイ
ル及び汎用レジスタファイルを切替えて使用することを
特徴とする請求項1又は2記載のVLIW型計算機。
3. A parallel processing register file used when executing the VLIW type instruction and a general-purpose register file used when executing the normal instruction are separately provided, and the instruction buffer control unit is discriminated by the decoder. 3. The VLIW computer according to claim 1, wherein the parallel processing register file and the general-purpose register file are switched and used according to the type of the issued instruction.
【請求項4】 前記VLIW型命令を通常の命令の列と
して実行する場合にその実行結果を逐次格納する一時デ
ータ格納レジスタを備え、 当該VLIW型命令に相当する通常の命令をすべて実行
した後に当該一時データ格納レジスタに格納されたデー
タを前記並列処理用レジスタファイルに転送することを
特徴とする請求項3記載のVLIW型計算機。
4. When the VLIW type instruction is executed as a sequence of normal instructions, a temporary data storage register for sequentially storing the execution result is provided, and after all the normal instructions corresponding to the VLIW type instruction are executed, 4. The VLIW type computer according to claim 3, wherein the data stored in the temporary data storage register is transferred to the parallel processing register file.
JP28026693A 1993-10-13 1993-10-13 Vliw type computer Pending JPH07110769A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP28026693A JPH07110769A (en) 1993-10-13 1993-10-13 Vliw type computer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP28026693A JPH07110769A (en) 1993-10-13 1993-10-13 Vliw type computer

Publications (1)

Publication Number Publication Date
JPH07110769A true JPH07110769A (en) 1995-04-25

Family

ID=17622606

Family Applications (1)

Application Number Title Priority Date Filing Date
JP28026693A Pending JPH07110769A (en) 1993-10-13 1993-10-13 Vliw type computer

Country Status (1)

Country Link
JP (1) JPH07110769A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004515856A (en) * 2000-12-07 2004-05-27 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Digital signal processor
KR100535852B1 (en) * 1996-01-31 2006-05-10 가부시끼가이샤 히다치 세이사꾸쇼 Data processing device
US7136989B2 (en) 2001-10-01 2006-11-14 Nec Corporation Parallel computation processor, parallel computation control method and program thereof
JP2010257199A (en) * 2009-04-24 2010-11-11 Renesas Electronics Corp Processor, and method of controlling instruction issue in processor

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100535852B1 (en) * 1996-01-31 2006-05-10 가부시끼가이샤 히다치 세이사꾸쇼 Data processing device
JP2004515856A (en) * 2000-12-07 2004-05-27 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Digital signal processor
US7136989B2 (en) 2001-10-01 2006-11-14 Nec Corporation Parallel computation processor, parallel computation control method and program thereof
JP2010257199A (en) * 2009-04-24 2010-11-11 Renesas Electronics Corp Processor, and method of controlling instruction issue in processor

Similar Documents

Publication Publication Date Title
JP5647859B2 (en) Apparatus and method for performing multiply-accumulate operations
JPS6217252B2 (en)
JPH0374434B2 (en)
JPS6312029A (en) Information processor
JPS61107431A (en) Arithmetic unit
JPH0895804A (en) Central processor
JPH0412503B2 (en)
US6026486A (en) General purpose processor having a variable bitwidth
JPS623461B2 (en)
JPH07239780A (en) One-clock variable length instruction execution process type instruction read computer
JPH07110769A (en) Vliw type computer
JPH0461390B2 (en)
JPS59114677A (en) Vector processor
JPS60178580A (en) Instruction control system
US5812845A (en) Method for generating an object code for a pipeline computer process to reduce swapping instruction set
CN112149050A (en) Apparatus, method and system for enhanced matrix multiplier architecture
JPH0222413B2 (en)
JPS6314239A (en) Instruction generating unit for computer system
JP2812610B2 (en) Pipeline control method
JPH05173778A (en) Data processor
JPH0218732B2 (en)
JP2583614B2 (en) Vector arithmetic unit
JP2625510B2 (en) Computer system
JP3532026B2 (en) Arithmetic unit
JPH11143710A (en) Processing object value input device and program converter