JP2880459B2 - Variable word length VLIW instruction processor - Google Patents

Variable word length VLIW instruction processor

Info

Publication number
JP2880459B2
JP2880459B2 JP25942996A JP25942996A JP2880459B2 JP 2880459 B2 JP2880459 B2 JP 2880459B2 JP 25942996 A JP25942996 A JP 25942996A JP 25942996 A JP25942996 A JP 25942996A JP 2880459 B2 JP2880459 B2 JP 2880459B2
Authority
JP
Japan
Prior art keywords
instruction
vliw
word length
instructions
vliw instruction
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
JP25942996A
Other languages
Japanese (ja)
Other versions
JPH09167093A (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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP25942996A priority Critical patent/JP2880459B2/en
Publication of JPH09167093A publication Critical patent/JPH09167093A/en
Application granted granted Critical
Publication of JP2880459B2 publication Critical patent/JP2880459B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

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

【0001】[0001]

【発明の属する技術分野】本発明は可変語長VLIW命
令プロセッサの改良に関する。
The present invention relates to an improvement in a variable word length VLIW instruction processor.

【0002】[0002]

【従来の技術】従来、プロセッサの性能を向上させる方
式として、並列処理により2個以上の命令を同時に実行
する並列命令実行方式がある。
2. Description of the Related Art Conventionally, as a method for improving the performance of a processor, there is a parallel instruction execution method for simultaneously executing two or more instructions by parallel processing.

【0003】この並列命令実行方式として、例えば、米
国特許4、833、599号には、VLIW(Very
Long Instruction Word:超長
形式機械命令)を使用して、複数の命令を同時に並列実
行するプロセッサが示されている。このプロセッサで
は、1つのVLIW命令に含まれる命令数を20以上と
することも可能であるが、VLIW命令語長は固定であ
る。
For example, US Pat. No. 4,833,599 discloses a VLIW (very
A processor is shown that uses a long instruction word (Long Instruction Word) to execute multiple instructions simultaneously in parallel. In this processor, the number of instructions included in one VLIW instruction can be 20 or more, but the VLIW instruction word length is fixed.

【0004】しかしながら、前記従来のVLIW命令プ
ロセッサでは、VLIW命令語長が固定であるため、並
列実行可能な最大命令数に近い多くの命令数を実行して
いる場合には、非常に高い性能を示すものの、並列に実
行する命令数が少ない場合には、VLIW命令の中に含
まれる命令指示情報は“NOP”(無実行)が多くな
る。この“NOP”の指示は命令であるものの、命令メ
モリの有効利用という観点からは非常に無駄な使い方と
なる欠点があった。
However, in the conventional VLIW instruction processor, since the VLIW instruction word length is fixed, when a large number of instructions close to the maximum number of instructions that can be executed in parallel are executed, extremely high performance is obtained. As shown in the figure, when the number of instructions to be executed in parallel is small, the instruction instruction information included in the VLIW instruction has a large number of “NOP” (no execution). Although the instruction of "NOP" is an instruction, it has a drawback that it is extremely useless from the viewpoint of effective use of the instruction memory.

【0005】一方、米国特許5、241、636号に
は、1命令を実行するモードと、2命令を同時に並列実
行するモードとの2つの実行モードを持つプロセッサが
開示されている。この米国特許では、実行モードの切り
替えは、命令に含まれる所定のフィールドで指定して行
われる。
On the other hand, US Pat. No. 5,241,636 discloses a processor having two execution modes, a mode for executing one instruction and a mode for executing two instructions simultaneously in parallel. In this US patent, the execution mode is switched by designating a predetermined field included in the instruction.

【0006】前記の命令中のフィールドを利用したVL
IW命令プロセッサとして、「MICROPROCES
SOR REPORT」,DECEMBER 5,19
94,pp.12−15では、VLIW命令の中に命令
数を示すフィールドを設け、VLIW命令語長を可変と
したプロセッサが提案されている。
VL using the field in the above instruction
"MICROPROCESS" as an IW instruction processor
SOR REPORT ”, DECEMBER 5,19
94, pp. 12-15 proposes a processor in which a field indicating the number of instructions is provided in a VLIW instruction to make the VLIW instruction word length variable.

【0007】[0007]

【発明が解決しようとする課題】しかしながら、前記提
案のVLIW命令プロセッサでは、VLIW命令語長が
可変であるので、命令メモリを有効利用できると共に、
多数の命令の同時実行を実現可能としている利点を有す
るものの、VLIW命令の中に命令数を示すフィールド
を設ける必要があるため、従来のプロセッサで使用され
る通常の(即ち、命令数を示すフィールドの無い)命令
とは、命令形式が異なり、その結果、従来のプロセッサ
用に作成されてコンパイルされたオブジェクトプログラ
ムを実行することが難しく、従来のプロセッサとの間で
オブジェクトプログラムの互換性を保持することが困難
であった。
However, in the above-mentioned VLIW instruction processor, the VLIW instruction word length is variable, so that the instruction memory can be used effectively and
Although it has the advantage of enabling the simultaneous execution of a large number of instructions, it is necessary to provide a field indicating the number of instructions in the VLIW instruction. The instruction format is different from the instruction without the instruction, and as a result, it is difficult to execute the object program created and compiled for the conventional processor, and to maintain the compatibility of the object program with the conventional processor. It was difficult.

【0008】本発明は上記問題点に鑑み、その目的は、
命令メモリを有効に使用できると共に、多数の命令が同
時実行可能であり、しかも、従来のプロセッサのオブジ
ェクトプログラムをも実行可能なVLIW命令プロセッ
サを提供することにある。
The present invention has been made in view of the above problems, and has as its object
An object of the present invention is to provide a VLIW instruction processor that can effectively use an instruction memory, can execute a large number of instructions simultaneously, and can execute an object program of a conventional processor.

【0009】更に、本発明の他の目的は、VLIW命令
プロセッサの異なるモデル間で、プロセッサが同時に並
列実行できる最大命令数が異なる場合や、VLIW命令
に含まれる命令数がプロセッサの同時並列実行可能な最
大命令数よりも多い場合であっても、常にVLIW命令
を実行できるVLIWプロセッサを提供することにあ
る。
Still another object of the present invention is to provide a case where the maximum number of instructions that can be simultaneously executed by a processor is different between different models of a VLIW instruction processor, or that the number of instructions included in a VLIW instruction can be simultaneously executed by the processor. An object of the present invention is to provide a VLIW processor that can always execute a VLIW instruction even when the number of instructions is larger than the maximum number of instructions.

【0010】[0010]

【課題を解決するための手段】以上の目的を達成するた
め、本発明では、要約すると、VLIW命令語長を格納
するVLIW命令語長レジスタ、又はVLIW命令に含
まれる命令数を格納する命令数レジスタを設ける。ま
た、本発明では、VLIW命令に含まれる命令数を、実
行ユニットの数(プロセッサが並列実行可能な最大命令
数)で除算し、その商mと剰余δを求めて、最大命令数
を前記商mの回数だけ繰返した後、前記剰余δに等しい
個数の命令を行う構成としている。
In order to achieve the above object, the present invention provides, in summary, a VLIW instruction word length register for storing a VLIW instruction word length, or the number of instructions for storing the number of instructions included in the VLIW instruction. Provide a register. Further, in the present invention, the number of instructions included in the VLIW instruction is divided by the number of execution units (the maximum number of instructions that can be executed in parallel by the processor), and its quotient m and remainder δ are obtained. After repeating the number of times m, the number of instructions equal to the remainder δ is executed.

【0011】すなわち、請求項1記載の発明の可変語長
VLIW命令プロセッサは、命令を実行する複数個の実
行ユニットと、VLIW命令語長を格納するVLIW命
令語長レジスタと、VLIW命令語長の指示を含むVL
IW命令を受け、このVLIW命令内のVLIW命令語
長により前記VLIW命令語長レジスタのVLIW命令
語長を書き換えると共に、前記VLIW命令語長レジス
タに格納されたVLIW命令語長に基いて前記複数個の
実行ユニットの全部又は一部による命令の並列実行を制
御する命令制御ユニットとを備えたことを特徴とする。
In other words, the variable word length VLIW instruction processor according to the first aspect of the present invention comprises a plurality of execution units for executing instructions, a VLIW instruction word length register for storing the VLIW instruction word length, and a VLIW instruction word length. VL containing instructions
Upon receiving the IW instruction, the VLIW instruction word length in the VLIW instruction word length register rewrites the VLIW instruction word length of the VLIW instruction word length register, and based on the VLIW instruction word length stored in the VLIW instruction word length register. And an instruction control unit for controlling parallel execution of instructions by all or some of the execution units.

【0012】請求項2記載の発明は、前記請求項1記載
の可変語長VLIW命令プロセッサにおいて、前記VL
IW命令語長の指示を含むVLIW命令は、このVLI
W命令を構成する複数の命令の中に、VLIW命令語長
を書き換える語長書き換え命令を有することを特徴とし
ている。
According to a second aspect of the present invention, in the variable word length VLIW instruction processor according to the first aspect, the VL
The VLIW instruction including the instruction of the word length of the IW instruction
It is characterized in that a word length rewriting instruction for rewriting the VLIW instruction word length is included in a plurality of instructions constituting the W instruction.

【0013】請求項3記載の発明は、前記請求項2記載
の可変語長VLIW命令プロセッサにおいて、前記語長
書き換え命令は、前記複数個の実行ユニットのうち何れ
か1個により実行されることを特徴とする。
According to a third aspect of the present invention, in the variable word length VLIW instruction processor according to the second aspect, the word length rewriting instruction is executed by any one of the plurality of execution units. Features.

【0014】請求項4記載の発明は、前記請求項1記載
の可変語長VLIW命令プロセッサにおいて、前記VL
IW命令語長の指示を含むVLIW命令は、VLIW命
令語長を示すフィールドを持つVLIW命令であること
を特徴とする。
According to a fourth aspect of the present invention, in the variable word length VLIW instruction processor according to the first aspect, the VL
The VLIW instruction including the instruction of the IW instruction word length is a VLIW instruction having a field indicating the VLIW instruction word length.

【0015】請求項5記載の発明は、前記請求項4記載
の可変語長VLIW命令プロセッサにおいて、前記VL
IW命令語長レジスタに格納されたVLIW命令語長を
書き換えるための専用の実行ユニットと、前記VLIW
命令内の前記フィールドに示されるVLIW命令語長を
解読し、前記VLIW命令語長レジスタに格納されたV
LIW命令語長を前記解読したVLIW命令語長に書き
換えるように前記書き換え専用の実行ユニットを制御す
る解読・制御手段とを別途有することを特徴とする。
According to a fifth aspect of the present invention, in the variable word length VLIW instruction processor according to the fourth aspect, the VL
A dedicated execution unit for rewriting the VLIW instruction word length stored in the IW instruction word length register;
The VLIW instruction word length indicated in the field in the instruction is decoded, and the VLIW instruction word length stored in the VLIW instruction word length register is read.
Decoding and control means for controlling the execution unit dedicated to rewriting so as to rewrite the LIW instruction word length to the decoded VLIW instruction word length is additionally provided.

【0016】請求項6記載の発明は、前記請求項1記載
の可変語長VLIW命令プロセッサにおいて、1つのV
LIW命令は複数個の命令から成り、この複数個の命令
は相互に同一の所定ビット長を有し、前記命令制御ユニ
ットは、前記VLIW命令語長レジスタに格納されたV
LIW命令語長を前記所定ビット長で除算して、1つの
VLIW命令に含まれる命令の数を算出する命令数算出
手段を有することを特徴とする。
According to a sixth aspect of the present invention, in the variable word length VLIW instruction processor according to the first aspect, one V
The LIW instruction comprises a plurality of instructions, the plurality of instructions having the same predetermined bit length, and the instruction control unit controlling the VLIW instruction word length stored in the VLIW instruction word length register.
There is provided an instruction number calculating means for calculating the number of instructions included in one VLIW instruction by dividing the LIW instruction word length by the predetermined bit length.

【0017】請求項7記載の発明は、前記請求項1記載
の可変語長VLIW命令プロセッサにおいて、命令制御
ユニットは、1つのVLIW命令を構成する複数の命令
を複数の命令群に区画し、この各命令群別に命令を並列
実行する制御手段を備えることを特徴とする。
According to a seventh aspect of the present invention, in the variable word length VLIW instruction processor according to the first aspect, the instruction control unit partitions a plurality of instructions constituting one VLIW instruction into a plurality of instruction groups. It is characterized by comprising a control means for executing instructions in parallel for each instruction group.

【0018】請求項8記載の発明は、前記請求項7記載
の可変語長VLIW命令プロセッサにおいて、制御手段
は、1つのVLIW命令を構成する命令の数を被除数と
し、前記実行ユニットの数を除数として、商とその剰余
を求める除算手段と、前記商が“0”でない場合には、
前記複数個の実行ユニットを用いてその個数に等しい数
の命令の同時並列実行を前記商の数だけ繰返し、その
後、前記剰余が“0”でない場合には、その剰余の数に
等しい数の実行ユニットを用いて命令の同時並列実行を
行い、一方、前記商が“0”の場合には、前記剰余の数
に等しい数の実行ユニットを用いて命令の同時並列実行
を行う命令制御手段とを有することを特徴とする。
According to an eighth aspect of the present invention, in the variable word length VLIW instruction processor according to the seventh aspect, the control means sets a number of instructions constituting one VLIW instruction as a dividend and a number of the execution units as a divisor. And dividing means for obtaining the quotient and its remainder, and when the quotient is not “0”,
Using the plurality of execution units, the simultaneous parallel execution of the number of instructions equal to the number is repeated by the number of quotients, and thereafter, if the remainder is not "0", the number of executions equal to the number of the remainder is repeated. And an instruction control means for executing instructions in parallel in a parallel manner when the quotient is "0", using an execution unit having a number equal to the number of the remainders. It is characterized by having.

【0019】請求項9記載の発明は、前記請求項7又は
請求項8記載の可変語長VLIW命令プロセッサにおい
て、語長書き換え命令を有する前記VLIW命令は、最
終回に実行される命令群の中に前記語長書き換え命令が
含まれることを特徴としている。
According to a ninth aspect of the present invention, in the variable word length VLIW instruction processor according to the seventh or eighth aspect, the VLIW instruction having a word length rewriting instruction is one of an instruction group executed at the last time. Contains the word length rewriting instruction.

【0020】請求項10記載の発明は、前記請求項7又
は請求項8記載の可変語長VLIW命令プロセッサにお
いて、語長書き換え命令を有する前記VLIW命令は、
最終回の1つ前の回に実行される命令群の中に前記語長
書き換え命令が含まれることを特徴とする。
According to a tenth aspect of the present invention, in the variable word length VLIW instruction processor according to the seventh or eighth aspect, the VLIW instruction having a word length rewriting instruction is:
The word length rewriting instruction is included in a group of instructions executed immediately before the last round.

【0021】請求項11記載の発明は、前記請求項7又
は請求項8記載の可変語長VLIW命令プロセッサにお
いて、語長書き換え命令を有する前記VLIW命令は、
最終回の2つ前の回に実行される命令群の中に前記語長
書き換え命令が含まれることを特徴とする。
According to an eleventh aspect of the present invention, in the variable word length VLIW instruction processor according to the seventh or eighth aspect, the VLIW instruction having a word length rewriting instruction is:
The word length rewriting instruction is included in a group of instructions executed two times before the last round.

【0022】請求項12記載の発明は、前記請求項9、
請求項10又は請求項11記載の可変語長VLIW命令
プロセッサにおいて、前記命令制御ユニットは、VLI
W命令を構成する複数の命令群の中での前記語長書き換
え命令を含む命令群の位置に応じて、前記語長書き換え
命令を含む前記VLIW命令の次に続くVLIW命令に
おいて最初回に実行する命令のフェッチを抑止する命令
フェッチパイプライン制御手段を有することを特徴とす
る。
The twelfth aspect of the present invention provides the ninth aspect,
The variable word length VLIW instruction processor according to claim 10 or 11, wherein the instruction control unit is a VLIW instruction processor.
The first execution is performed in a VLIW instruction following the VLIW instruction including the word length rewriting instruction according to the position of the instruction group including the word length rewriting instruction in a plurality of instruction groups forming the W instruction. It is characterized by having instruction fetch pipeline control means for inhibiting instruction fetch.

【0023】請求項13記載の発明は、前記請求項7又
は請求項8記載の可変語長VLIW命令プロセッサにお
いて、あるVLIW命令には、最終回に実行される命令
群の中に分岐命令が含まれることを特徴とする。
According to a thirteenth aspect of the present invention, in the variable word length VLIW instruction processor according to the seventh or eighth aspect, a certain VLIW instruction includes a branch instruction in an instruction group executed at the last time. It is characterized by being performed.

【0024】請求項14記載の発明は、前記請求項7又
は請求項8記載の可変語長VLIW命令プロセッサにお
いて、あるVLIW命令には、最終回の1つ前の回に実
行される命令群の中に分岐命令が含まれることを特徴と
する。
According to a fourteenth aspect of the present invention, in the variable word length VLIW instruction processor according to the seventh or eighth aspect, a certain VLIW instruction includes an instruction group to be executed immediately before the last one. It is characterized in that a branch instruction is included therein.

【0025】請求項15記載の発明は、前記請求項7又
は請求項8記載の可変語長VLIW命令プロセッサにお
いて、あるVLIW命令には、最終回の2つ前の回に実
行される命令群の中に分岐命令が含まれることを特徴と
する。
According to a fifteenth aspect of the present invention, in the variable word length VLIW instruction processor according to the seventh or eighth aspect, a certain VLIW instruction includes an instruction group executed two times before the last instruction. It is characterized in that a branch instruction is included therein.

【0026】請求項16記載の発明は、前記請求項1
3、請求項14又は請求項15記載の可変語長VLIW
命令プロセッサにおいて、前記命令制御ユニットは、V
LIW命令を構成する複数の命令群の中での前記分岐命
令を含む命令群の位置に応じて、前記分岐命令を含む前
記VLIW命令の次に続くVLIW命令において最初回
に実行する命令の実行及び書き込みを各々キャセルする
実行パイプライン制御手段及び書き込みパイプライン制
御手段を有することを特徴とする。
The invention according to claim 16 is the invention according to claim 1.
3. The variable word length VLIW according to claim 14 or claim 15.
In the instruction processor, the instruction control unit includes:
Execution of an instruction to be executed for the first time in a VLIW instruction following the VLIW instruction including the branch instruction in accordance with a position of the instruction group including the branch instruction in a plurality of instruction groups constituting the LIW instruction; It is characterized by having an execution pipeline control means and a write pipeline control means for canceling each write operation.

【0027】請求項17記載の発明は、前記請求項16
記載の可変語長VLIW命令プロセッサにおいて、前記
命令制御ユニットは、更に、前記VLIW命令に含まれ
る分岐命令の分岐先アドレスを格納する分岐先アドレス
保留レジスタを有することを特徴とする。
The invention according to claim 17 is the invention according to claim 16.
In the variable word length VLIW instruction processor described above, the instruction control unit further includes a branch destination address holding register for storing a branch destination address of a branch instruction included in the VLIW instruction.

【0028】請求項18記載の発明は、前記請求項1記
載の可変語長VLIW命令プロセッサにおいて、VLI
W命令語長レジスタに格納されるVLIW命令語長は、
電源の投入時及びシステムのリセット時に初期設定され
ることを特徴とする。
The invention according to claim 18 is the variable word length VLIW instruction processor according to claim 1, wherein the VLI
The VLIW instruction word length stored in the W instruction word length register is:
It is characterized by being initialized when power is turned on and when the system is reset.

【0029】請求項19記載の発明は、前記請求項1記
載の可変語長VLIW命令プロセッサにおいて、VLI
W命令語長レジスタに格納されるVLIW命令語長は、
命令形式が同一で且つ前記VLIW命令とは実行ユニッ
トの数が異なるVLIW命令を実行するプロセッサ用の
オブジェクトプログラムを実行する際には、前記オブジ
ェクトプログラムの先頭よりも1つ前に実行される前記
VLIW命令の中に含まれる語長書き換え命令により書
き換えられることを特徴とする。
According to a nineteenth aspect of the present invention, in the variable word length VLIW instruction processor according to the first aspect, the VLI
The VLIW instruction word length stored in the W instruction word length register is:
When executing an object program for a processor that executes a VLIW instruction having the same instruction format and a different number of execution units from the VLIW instruction, the VLIW instruction executed immediately before the head of the object program is executed. It is characterized by being rewritten by a word length rewriting instruction included in the instruction.

【0030】請求項20記載の発明の可変語長VLIW
命令プロセッサは、命令を実行する複数個の実行ユニッ
トと、VLIWに含まれる命令の数を格納する命令数レ
ジスタと、命令数の指示を含むVLIW命令を受け、こ
のVLIW命令内の命令数により前記命令数レジスタの
命令数を書き換えると共に、前記命令数レジスタに格納
された命令数に基いて前記複数個の実行ユニットの全部
又は一部による命令の並列実行を制御する命令制御ユニ
ットとを備えたことを特徴とする。
The variable word length VLIW of the invention according to claim 20
The instruction processor receives a plurality of execution units that execute instructions, an instruction number register that stores the number of instructions included in the VLIW, and a VLIW instruction that includes an instruction of the number of instructions, and receives the VLIW instruction based on the number of instructions in the VLIW instruction. An instruction control unit that rewrites the number of instructions in the instruction number register and controls parallel execution of instructions by all or some of the plurality of execution units based on the number of instructions stored in the instruction number register. It is characterized by.

【0031】請求項21記載の発明は、前記請求項20
記載の可変語長VLIW命令プロセッサにおいて、前記
命令数の指示を含むVLIW命令は、このVLIW命令
を構成する複数の命令の中に、命令数を書き換える命令
数書き換え命令を有することを特徴とする。
The invention according to claim 21 is the invention according to claim 20.
In the variable word length VLIW instruction processor described above, the VLIW instruction including the instruction of the number of instructions includes an instruction number rewriting instruction for rewriting the number of instructions among a plurality of instructions constituting the VLIW instruction.

【0032】請求項22記載の発明は、前記請求項21
記載の可変語長VLIW命令プロセッサにおいて、前記
命令数書き換え命令は、前記複数個の実行ユニットのう
ち何れか1個により実行されることを特徴とする。
The invention according to claim 22 is the invention according to claim 21.
The variable word length VLIW instruction processor according to the item, wherein the instruction number rewriting instruction is executed by any one of the plurality of execution units.

【0033】請求項23記載の発明は、前記請求項20
記載の可変語長VLIW命令プロセッサにおいて、前記
命令数の指示を含むVLIW命令は、命令数を示すフィ
ールドを持つVLIW命令であることを特徴とする。
The twenty-third aspect of the present invention provides the twentieth aspect.
In the variable word length VLIW instruction processor described above, the VLIW instruction including the instruction of the number of instructions is a VLIW instruction having a field indicating the number of instructions.

【0034】請求項24記載の発明は、前記請求項23
記載の可変語長VLIW命令プロセッサにおいて、前記
命令数レジスタに格納された命令数を書き換えるための
専用の実行ユニットと、前記VLIW命令内の前記フィ
ールドに示される命令数を解読し、前記命令数レジスタ
に格納された命令数を前記解読した命令数に書き換える
ように前記書き換え専用の実行ユニットを制御する解読
・制御手段とを別途有することを特徴とする。
[0034] The invention according to claim 24 is the invention according to claim 23.
A dedicated execution unit for rewriting the number of instructions stored in the number-of-instructions register, and decoding the number of instructions indicated in the field in the VLIW instruction; And a decoding / control means for controlling the execution unit dedicated to rewriting so that the number of instructions stored in the execution unit is rewritten to the number of decoded instructions.

【0035】請求項25記載の発明は、前記請求項20
記載の可変語長VLIW命令プロセッサにおいて、命令
制御ユニットは、1つのVLIW命令を構成する複数の
命令を複数の命令群に区画し、この各命令群別に命令を
並列実行する制御手段を備えることを特徴とする。
According to a twenty-fifth aspect of the present invention, there is provided the twentieth aspect.
In the variable word length VLIW instruction processor described above, the instruction control unit is provided with control means for dividing a plurality of instructions constituting one VLIW instruction into a plurality of instruction groups and executing the instructions in parallel for each of the instruction groups. Features.

【0036】請求項26記載の発明は、前記請求項25
記載の可変語長VLIW命令プロセッサにおいて、制御
手段は、1つのVLIW命令を構成する命令の数を被除
数とし、前記実行ユニットの数を除数として、商とその
剰余を求める除算手段と、前記商が“0”でない場合に
は、前記複数個の実行ユニットを用いてその個数に等し
い数の命令の同時並列実行を前記商の数だけ繰返し、そ
の後、前記剰余が“0”でない場合には、その剰余の数
に等しい数の実行ユニットを用いて命令の同時並列実行
を行い、一方、前記商が“0”の場合には、前記剰余の
数に等しい数の実行ユニットを用いて命令の同時並列実
行を行う命令制御手段とを有することを特徴とする。
According to a twenty-sixth aspect of the present invention, there is provided the above-mentioned twenty-fifth aspect.
In the variable word length VLIW instruction processor described above, the control means uses a number of instructions constituting one VLIW instruction as a dividend, a number of the execution units as a divisor, and a division means for obtaining a quotient and its remainder. If the number is not "0", the parallel execution of the same number of instructions is repeated by the number of quotients using the plurality of execution units, and if the remainder is not "0", Simultaneous parallel execution of instructions is performed using the number of execution units equal to the number of remainders. On the other hand, when the quotient is “0”, simultaneous parallel execution of instructions is performed using the number of execution units equal to the number of remainders. And an instruction control unit for performing the execution.

【0037】請求項27記載の発明は、前記請求項25
又は請求項26記載の可変語長VLIW命令プロセッサ
において、命令数書き換え命令を有する前記VLIW命
令は、最終回に実行される命令群の中に前記命令数書き
換え命令が含まれることを特徴とする。
According to a twenty-seventh aspect, in the twenty-fifth aspect,
27. The variable word length VLIW instruction processor according to claim 26, wherein the VLIW instruction having an instruction number rewriting instruction includes the instruction number rewriting instruction in an instruction group executed at the last time.

【0038】請求項28記載の発明は、前記請求項25
又は請求項26記載の可変語長VLIW命令プロセッサ
において、命令数書き換え命令を有する前記VLIW命
令は、最終回の1つ前の回に実行される命令群の中に前
記命令数書き換え命令が含まれることを特徴とする。
The invention according to claim 28 is the invention according to claim 25.
27. The variable word length VLIW instruction processor according to claim 26, wherein the VLIW instruction having an instruction number rewriting instruction is included in a group of instructions executed immediately before the last instruction number. It is characterized by the following.

【0039】請求項29記載の発明は、前記請求項25
又は請求項26記載の可変語長VLIW命令プロセッサ
において、命令数書き換え命令を有する前記VLIW命
令は、最終回の2つ前の回に実行される命令群の中に前
記命令数書き換え命令が含まれることを特徴とする。
According to the twenty-ninth aspect of the present invention, there is provided the method as set forth in the twenty-fifth aspect.
27. The variable word length VLIW instruction processor according to claim 26, wherein the VLIW instruction having an instruction number rewriting instruction is included in an instruction group executed two times before the last instruction number. It is characterized by the following.

【0040】請求項30記載の発明は、前記請求項2
7、請求項28又は請求項29記載の可変語長VLIW
命令プロセッサにおいて、前記命令制御ユニットは、V
LIW命令を構成する複数の命令群の中での前記命令数
書き換え命令を含む命令群の位置に応じて、前記命令数
書き換え命令を含む前記VLIW命令の次に続くVLI
W命令において最初回に実行する命令のフェッチを抑止
する命令フェッチパイプライン制御手段を有することを
特徴とする。
According to a thirty-first aspect of the present invention, there is provided the second aspect of the present invention.
7. A variable word length VLIW according to claim 28 or claim 29.
In the instruction processor, the instruction control unit includes:
A VLI following the VLIW instruction including the instruction number rewriting instruction according to the position of the instruction group including the instruction number rewriting instruction in a plurality of instruction groups constituting the LIW instruction.
It is characterized by having instruction fetch pipeline control means for suppressing the fetch of the instruction executed first time in the W instruction.

【0041】請求項31記載の発明は、前記請求項25
又は請求項26記載の可変語長VLIW命令プロセッサ
において、あるVLIW命令には、最終回に実行される
命令群の中に分岐命令が含まれることを特徴とする。
According to a thirty-first aspect of the present invention, there is provided the method as set forth in the twenty-fifth aspect.
27. The variable word length VLIW instruction processor according to claim 26, wherein a certain VLIW instruction includes a branch instruction in a group of instructions executed at the last time.

【0042】請求項32記載の発明は、前記請求項25
又は請求項26記載の可変語長VLIW命令プロセッサ
において、あるVLIW命令には、最終回の1つ前の回
に実行される命令群の中に分岐命令が含まれることを特
徴とする。
The thirty-second aspect of the present invention relates to the twenty-fifth aspect.
27. The variable word length VLIW instruction processor according to claim 26, wherein a certain VLIW instruction includes a branch instruction in an instruction group to be executed immediately before the last time.

【0043】請求項33記載の発明は、前記請求項25
又は請求項26記載の可変語長VLIW命令プロセッサ
において、あるVLIW命令には、最終回の2つ前の回
に実行される命令群の中に分岐命令が含まれることを特
徴とする。
The thirty-third aspect of the present invention provides the above-mentioned twenty-fifth aspect.
27. The variable word length VLIW instruction processor according to claim 26, wherein a certain VLIW instruction includes a branch instruction in an instruction group executed two times before the last time.

【0044】請求項34記載の発明は、前記請求項3
1、請求項32又は請求項33記載の可変語長VLIW
命令プロセッサにおいて、前記命令制御ユニットは、V
LIW命令を構成する複数の命令群の中での前記分岐命
令を含む命令群の位置に応じて、前記分岐命令を含む前
記VLIW命令の次に続くVLIW命令において最初回
に実行する命令の実行及び書き込みを各々キャセルする
実行パイプライン制御手段及び書き込みパイプライン制
御手段を有することを特徴とする。
The invention according to claim 34 is the third invention.
34. The variable word length VLIW according to claim 32 or claim 33.
In the instruction processor, the instruction control unit includes:
Execution of an instruction to be executed for the first time in a VLIW instruction following the VLIW instruction including the branch instruction in accordance with a position of the instruction group including the branch instruction in a plurality of instruction groups constituting the LIW instruction; It is characterized by having an execution pipeline control means and a write pipeline control means for canceling each write operation.

【0045】請求項35記載の発明は、前記請求項34
記載の可変語長VLIW命令プロセッサにおいて、前記
命令制御ユニットは、更に、前記VLIW命令に含まれ
る分岐命令の分岐先アドレスを格納する分岐先アドレス
保留レジスタを有することを特徴とする。
The invention according to claim 35 is the invention according to claim 34.
In the variable word length VLIW instruction processor described above, the instruction control unit further includes a branch destination address holding register for storing a branch destination address of a branch instruction included in the VLIW instruction.

【0046】請求項36記載の発明は、前記請求項20
記載の可変語長VLIW命令プロセッサにおいて、命令
数レジスタに格納される命令数は、電源の投入時及びシ
ステムのリセット時に初期設定されることを特徴とす
る。
The invention according to claim 36 is the invention according to claim 20.
The described variable word length VLIW instruction processor is characterized in that the number of instructions stored in the instruction number register is initialized at power-on and at system reset.

【0047】請求項37記載の発明は、前記請求項20
記載の可変語長VLIW命令プロセッサにおいて、命令
数レジスタに格納される命令数は、命令形式が同一で且
つ前記VLIW命令とは実行ユニットの数が異なるVL
IW命令を実行するプロセッサ用のオブジェクトプログ
ラムを実行する際には、前記オブジェクトプログラムの
先頭よりも1つ前に実行される前記VLIW命令の中に
含まれる命令数書き換え命令により書き換えられること
を特徴とする。
The invention according to claim 37 is the invention according to claim 20.
In the variable word length VLIW instruction processor described above, the number of instructions stored in the instruction number register is the same as the instruction format, and the number of execution units differs from the VLIW instruction
When an object program for a processor that executes an IW instruction is executed, the object program is rewritten by an instruction number rewriting instruction included in the VLIW instruction executed immediately before the head of the object program. I do.

【0048】請求項38記載の発明の可変語長VLIW
命令プロセッサは、命令を実行する複数個の実行ユニッ
トと、前記各実行ユニットによる命令の実行を制御する
命令制御ユニットとを備えた可変語長VLIW命令プロ
セッサにおいて、前記命令制御ユニットは、VLIW命
令に含まれる命令数を被除数とし、前記実行ユニットの
数を除数として商とその剰余を求める除算手段と、前記
商が“0”でない場合には、前記複数個の実行ユニット
を用いてその個数に等しい数の命令の同時並列実行を前
記商の数だけ繰返し、その後、前記剰余が“0”でない
場合には、その剰余の数に等しい数の実行ユニットを用
いて命令の同時並列実行を行い、一方、前記商が“0”
の場合には、前記剰余の数に等しい数の実行ユニットを
用いて命令の同時並列実行を行う命令制御手段とを有し
ていて、以上の構成により、1つのVLIW命令を構成
する複数の命令を複数の命令群に区画し、この各命令群
別に命令を並列実行することを特徴とする。
The variable word length VLIW according to claim 38.
An instruction processor, comprising: a plurality of execution units for executing instructions; and an instruction control unit for controlling execution of the instructions by the execution units. A VLIW instruction processor having a variable word length. Division means for obtaining a quotient and its remainder by using the number of instructions included as a dividend and the number of execution units as a divisor, and when the quotient is not "0", using the plurality of execution units to equal the number The simultaneous parallel execution of the number of instructions is repeated by the number of the quotients. Thereafter, if the remainder is not "0", the instructions are simultaneously executed in parallel using the execution units of the number equal to the number of the remainders. , The quotient is “0”
In the case of (1), there is provided instruction control means for executing instructions in parallel in parallel using the number of execution units equal to the number of the remainders, and a plurality of instructions constituting one VLIW instruction by the above configuration Is divided into a plurality of instruction groups, and instructions are executed in parallel for each of the instruction groups.

【0049】請求項39記載の発明は、前記請求項38
記載の可変語長VLIW命令プロセッサにおいて、命令
制御ユニットは、更に、VLIW命令に含まれる分岐命
令の分岐先アドレスを格納する分岐先アドレス保留レジ
スタを有することを特徴とする。
The thirty-ninth aspect of the present invention relates to the thirty-eighth aspect.
In the variable word length VLIW instruction processor described above, the instruction control unit further includes a branch destination address holding register for storing a branch destination address of a branch instruction included in the VLIW instruction.

【0050】以上の構成により、請求項1ないし請求項
37記載の発明では、VLIW命令に含まれるVLIW
命令語長又は命令数の指示、例えば命令語長又は命令数
の書き換え命令に基いてVLIW命令語長レジスタ又は
命令数レジスタに格納するVLIW命令語長又は命令数
が書き換えられて、更新される。従って、VLIW命令
語長が短く又は命令数が少く更新された場合には、“N
OP”(無実行)指示も少く又は無くなって、命令メモ
リが有効利用される。一方、VLIW命令語長を示すフ
ィールドを持たない通常の命令(オブジェクトプログラ
ム)の場合には、電源投入時又はシステムのリセット時
に実行されるイニシャル・プログラム・ローディング
(IPL)等により、VLIW命令語長レジスタ又は命
令レジスタに格納するVLIW命令語長又は命令数が初
期値、即ち各モデルに応じた命令語長に初期設定され
る。従って、その初期設定された命令語長を固定値とし
て、従来のプロセッサのオブジェクトプログラムが実行
される。尚、VLIW命令は、命令が複数個並んだ形式
であるが、場合によっては前部に開始データを、後部に
終了データを各々加えてもよい。
According to the above construction, the VLIW instruction included in the VLIW instruction
The VLIW instruction word length or the instruction number stored in the VLIW instruction word length register or the instruction number register is rewritten and updated based on an instruction of the instruction word length or the instruction number, for example, the instruction word length or the instruction number rewriting instruction. Therefore, when the VLIW instruction word length is short or the number of instructions is updated to be small, "N
OP "(no execution) instruction is reduced or eliminated, and the instruction memory is effectively used. On the other hand, in the case of a normal instruction (object program) having no field indicating the VLIW instruction word length, the power-on or system The initial value of the VLIW instruction word length register or the number of instructions stored in the VLIW instruction word length register or the instruction register is initialized to an initial value, that is, the instruction word length according to each model by initial program loading (IPL) executed at the time of resetting Therefore, the object program of the conventional processor is executed with the initially set instruction word length as a fixed value.The VLIW instruction has a format in which a plurality of instructions are arranged, but in some cases, the VLIW instruction has a format. The start data may be added to the front part and the end data may be added to the rear part.

【0051】尚、VLIW命令に含まれる命令の数を格
納する命令数レジスタを設ける場合にも、前記と同様で
ある。即ち、VLIW命令に含まれる複数個の命令の各
々を規定するのに必要なビット長が全て同一幅とする
と、VLIW命令語長と、これに含まれる命令数とは、
1:1の対応が取れる。例えばVLIW命令の命令語長
が64バイトである場合に、1つの命令のビット長が4
バイトであるとき、そのVLIW命令に含まれる命令の
数は16個であると計算できる。従って、前記と同様
に、命令数を示すフィールドを持つVLIW命令であっ
ても、従来のプロセッサのオブジェクトプログラムであ
っても、その双方の実行が可能である。
The same applies to the case where an instruction number register for storing the number of instructions included in the VLIW instruction is provided. That is, if the bit lengths required to define each of the plurality of instructions included in the VLIW instruction are all the same width, the VLIW instruction word length and the number of instructions included in the VLIW instruction word are as follows:
A 1: 1 correspondence can be taken. For example, when the instruction word length of the VLIW instruction is 64 bytes, the bit length of one instruction is 4 bytes.
When it is a byte, it can be calculated that the number of instructions included in the VLIW instruction is 16. Therefore, as described above, both a VLIW instruction having a field indicating the number of instructions and an object program of a conventional processor can be executed.

【0052】更に、請求項38及び請求項39記載の発
明では、求められた商mと剰余δとを用いて、商mがm
=0の場合には、命令数L個(=剰余δ個)の命令を並
列実行し、また、商mがm≠0の場合には、プロセッサ
が持つ実行ユニット数に等しい命令数の並列実行を前記
商mの回数だけ繰返した後、剰余δが“0”でないとき
には、前記剰余δに等しい個数の命令を並列実行する。
従って、VLIWプロセッサが同時に並列実行できる最
大命令数が異なる場合や、VLIW命令に含まれる命令
数がプロセッサの同時並列実行可能な最大命令数よりも
多い場合であっても、前記商mを前記同時並列実行可能
な最大命令数以下に設定しておけば、常にVLIW命令
を実行できる。
Further, in the invention according to claim 38 and claim 39, the quotient m is calculated using the obtained quotient m and the remainder δ.
When = 0, the number of instructions L (= remainder δ) is executed in parallel, and when the quotient m is m ≠ 0, the number of instructions equal to the number of execution units of the processor is executed in parallel. Is repeated the number of times of the quotient m, and when the remainder δ is not “0”, instructions of the same number as the remainder δ are executed in parallel.
Therefore, even when the maximum number of instructions that the VLIW processor can execute in parallel at the same time differs, or when the number of instructions included in the VLIW instruction is larger than the maximum number of instructions that can be executed in parallel by the processor, the quotient m is set to If the number is set to be equal to or less than the maximum number of instructions that can be executed in parallel, the VLIW instruction can always be executed.

【0053】[0053]

【発明の実施の形態】以下、本発明の実施の形態を図面
に基いて説明する。
Embodiments of the present invention will be described below with reference to the drawings.

【0054】尚、本発明の実施の形態において使用する
「命令」及び「VLIW命令」の意味を次の通り定義す
る。この定義は既述の説明にも同様に適用される。即
ち、命令とは、プロセッサを構成する要素に1つ又は複
数の実行ユニットがあるが、実行ユニット単位に課され
る仕事をいう。また、VLIW命令とは、プロセッサが
論理的に一度に実行するものとしてコンパイラが認識す
る1つ又は複数の命令の集まりをいう。
The meanings of "instruction" and "VLIW instruction" used in the embodiment of the present invention are defined as follows. This definition applies to the above description as well. That is, an instruction refers to a task that is performed for each execution unit, although one or a plurality of execution units are included in an element configuring the processor. The VLIW instruction is a group of one or a plurality of instructions recognized by the compiler as being executed by the processor at one time.

【0055】(第1の実施の形態)図1は本発明に係る
可変語長VLIW命令プロセッサの全体構成を示す。
(First Embodiment) FIG. 1 shows the overall configuration of a variable word length VLIW instruction processor according to the present invention.

【0056】同図において、1は命令制御ユニット、2
a〜2nは所定個Nの実行ユニット、4はレジスタファ
イル、5は命令キャッシュ、6はデータキャッシュ、7
はメモリ管理ユニット、8はバス制御ユニット、9は主
記憶装置である。
In the figure, reference numeral 1 denotes an instruction control unit;
a to 2n are a predetermined number N of execution units, 4 is a register file, 5 is an instruction cache, 6 is a data cache, 7
Is a memory management unit, 8 is a bus control unit, and 9 is a main storage device.

【0057】命令制御ユニット1は、命令キャッシュ5
から命令を読出し、解読して、実行ユニット2a〜2n
に対して命令の実行の開始を指示すると共に、命令の実
行を制御する。
The instruction control unit 1 has an instruction cache 5
From the execution units 2a to 2n
To start the execution of the instruction and control the execution of the instruction.

【0058】実行ユニット2a〜2nは、命令制御ユニ
ット1から命令の実行開始の指示を受けて命令の実行を
開始し、必要なオペランドはレジスタファイル4から読
出し、命令の実行結果をレジスタファイル4に書き込
む。また、実行ユニット2a〜2nは、レジスタファイ
ル4へのオペランドのロード命令又はレジスタファイル
4からのオペランドのストア命令を実行する時には、メ
モリ管理ユニット7に対して、ロード要求又はストア要
求と、オペランドアドレスとを送出する。更に、実行ユ
ニット2a〜2nは、分岐命令を実行する時には、分岐
成立/不成立の情報と、分岐アドレスとを命令制御ユニ
ット1に送出する。
The execution units 2a to 2n start the execution of the instruction in response to the instruction execution start instruction from the instruction control unit 1, read the necessary operands from the register file 4, and store the execution result of the instruction in the register file 4. Write. When executing an instruction to load an operand into the register file 4 or an instruction to store an operand from the register file 4, the execution units 2a to 2n send a load request or a store request to the memory management unit 7 and an operand address. Is sent. Further, when executing the branch instruction, the execution units 2a to 2n send information of branch taken / not taken and a branch address to the instruction control unit 1.

【0059】メモリ管理ユニット7は、命令制御ユニッ
ト1の命令フェッチを要求するアドレスに対応する命令
が命令キャッシュ5に存在しているか否かを判定し、そ
の判定の結果、命令キャッシュ5に該当する命令がない
場合には、バス制御ユニット8に対して主記憶装置9か
ら該当する命令を転送してくるよう要求する。
The memory management unit 7 determines whether or not the instruction corresponding to the address of the instruction control unit 1 requesting the instruction fetch exists in the instruction cache 5. As a result of the determination, the instruction corresponds to the instruction cache 5. If there is no command, the bus control unit 8 is requested to transfer the corresponding command from the main storage device 9.

【0060】また、メモリ管理ユニット7は、実行ユニ
ット2a〜2nからのレジスタファイル4へのオペラン
ドのロードを要求するアドレスに対応するデータがデー
タキャッシュ6に存在しているか否かを判定し、その判
定の結果、データキャッシュ6に該当するデータがない
場合には、バス制御ユニット8に対して主記憶装置9か
ら該当するデータを転送してくるよう要求する。
Further, the memory management unit 7 determines whether or not data corresponding to the address for requesting loading of the operand from the execution units 2a to 2n into the register file 4 exists in the data cache 6, and As a result of the determination, when there is no corresponding data in the data cache 6, the bus control unit 8 is requested to transfer the corresponding data from the main storage device 9.

【0061】更に、メモリ管理ユニット7は、実行ユニ
ット2a〜2nからのレジスタファイル4からのオペラ
ンドのストアを要求するアドレスに対応する書き換えら
れるデータがデータキャッシュ6に存在しているか否か
を判定し、その判定の結果、データキャッシュ6に該当
するデータがある場合には、レジスタファイル4からの
データをデータキャッシュ6に書き込み、また、データ
キャッシュ6に書き換えられるべきデータが存在するか
否かに拘らずバス制御ユニット8に対して主記憶装置9
へ該当するデータをストアするよう要求する。
Further, the memory management unit 7 determines whether or not the data to be rewritten corresponding to the address requesting the storage of the operand from the register file 4 from the execution units 2a to 2n exists in the data cache 6. If the result of the determination is that there is data corresponding to the data cache 6, the data from the register file 4 is written to the data cache 6, and whether the data to be rewritten exists in the data cache 6 is determined. Main storage device 9 for the bus control unit 8
Request to store the corresponding data.

【0062】図2は、前記命令制御ユニット1の内部構
成を示す。
FIG. 2 shows the internal configuration of the instruction control unit 1.

【0063】同図において、11はVLIW命令語長レ
ジスタ、12は命令数(L)算出手段、13は実行ユニ
ット数(N)レジスタである。また、21は1つのVL
IW命令を構成する複数(L個)の命令を複数(m又は
m+1個)の命令群に区画し、この各命令群別に命令を
同時並列実行させる制御手段である。この制御手段21
は、除算手段14と、命令制御手段23とから成る。更
に、前記命令制御手段23は、定数“1”加算器15
と、2入力1出力のマルチプレクサ16と、VLIW命
令内反復制御手段18から成る。
In the figure, 11 is a VLIW instruction word length register, 12 is an instruction number (L) calculating means, and 13 is an execution unit number (N) register. 21 is one VL
This is control means for dividing a plurality of (L) instructions constituting the IW instruction into a plurality of (m or m + 1) instruction groups and executing instructions in parallel for each of the instruction groups. This control means 21
Consists of a dividing means 14 and an instruction controlling means 23. Further, the instruction control means 23 includes a constant “1” adder 15
And a multiplexer 16 having two inputs and one output, and a repetition control means 18 in the VLIW instruction.

【0064】また、図2において、17は2入力1出力
のマルチプレクサ、19は乗算手段、20a〜20nは
所定個Nの2入力1出力のマルチプレクサ、22a〜2
2nは所定個Nの命令レジスタ、24a〜24nは所定
個Nの解読・実行制御手段、26及び27はN入力1出
力のマルチプレクサ、28は分岐先アドレス保留レジス
タ、29は3入力1出力のマルチプレクサ、30は命令
フェッチアドレスレジスタ、31は加算器である。
In FIG. 2, reference numeral 17 denotes a two-input one-output multiplexer; 19, multiplication means; 20a to 20n, a predetermined number N of two-input, one-output multiplexers;
2n is a predetermined number N of instruction registers, 24a to 24n are predetermined number N of decoding / execution control means, 26 and 27 are N-input 1-output multiplexers, 28 is a branch destination address holding register, 29 is a 3-input 1-output multiplexer. , 30 are an instruction fetch address register, and 31 is an adder.

【0065】VLIW命令語長レジスタ11には、IP
L(イニシャル・プログラム・ローディング)の完了後
に最初に実行されるオブジェクトプログラムのVLIW
命令語長が初期値として、また実行ユニット数レジスタ
13には実行ユニット数Nが、各々、前記IPLにより
設定される。
The VLIW instruction word length register 11 stores the IP
VLIW of object program executed first after completion of L (initial program loading)
The instruction word length is set as an initial value, and the execution unit number N is set in the execution unit number register 13 by the IPL.

【0066】ここで、IPLとは、狭義には、主記憶装
置9に何もプログラムが入っていない状態において、ロ
ーダ等のプログラムをローディングすることを言う。但
し、ここでは、更に、ローディングに先立ってプロセッ
サの初期設定及び正常動作のテストを行い、その結果、
動作可能と判定した場合にプログラムをローディングし
て、そのロードされたプログラムをプロセッサが実行す
ることを許可するまでの一連の動作をIPLと言う。こ
のIPLの詳細を図13に示す。同図では、IPLは、
プロセッサに電源を投入した後、又はプロセッサにシス
テムリセットをかけた後、開始される。その開始後は、
ローディングに先立ち、所定のレジスタに初期設定値を
書き込む等のプロセッサの初期設定を行った後、プロセ
ッサの種々の動作が正常に行われるか否かのテストを所
定回Nだけ実施するために、先ず、テスト回数カウンタ
を“0”に設定し、次いでテスト回数カウンタを“1”
だけカウントアップして第1番目のテストを実行し、そ
の後、そのテスト結果が正しいか否かを判定し、正しく
ない場合には異常時としてIPLを直ちに終了する。一
方、第1番目のテストが正しい場合には、テスト回数が
所定回Nか否かを判定し、所定回Nに達しない場合に
は、テスト回数の前記カウントアップ処理に戻り、所定
回Nのテスト結果に異常がなければ、動作可能と判定し
てプログラムをローディングして、プロセッサが前記ロ
ードされたプログラムを実行することを許可する。一回
でもテスト結果に異常が検出された異常終了時には、警
告ランプの点灯、又は警告ブザーの鳴動等の処置が行わ
れる。
Here, in a narrow sense, the IPL refers to loading a program such as a loader in a state where no program is stored in the main storage device 9. However, here, furthermore, prior to loading, an initial setting of the processor and a test of normal operation are performed, and as a result,
When it is determined that the program is operable, a series of operations from loading the program to allowing the processor to execute the loaded program is called IPL. FIG. 13 shows the details of the IPL. In the figure, the IPL is
Triggered after powering on the processor or after performing a system reset on the processor. After that,
Prior to loading, after performing initial settings of the processor, such as writing an initial set value to a predetermined register, in order to perform a predetermined number N of tests to determine whether various operations of the processor are performed normally, first, , Set the test number counter to “0” and then set the test number counter to “1”.
The first test is performed by counting up only, and it is determined whether or not the test result is correct. If the test result is not correct, the IPL is immediately terminated as an abnormal case. On the other hand, if the first test is correct, it is determined whether or not the number of times of the test is the predetermined number N. If there is no abnormality in the test result, it is determined that operation is possible, the program is loaded, and the processor is allowed to execute the loaded program. At least once, when an abnormality is detected in the test result, a measure such as turning on a warning lamp or sounding a warning buzzer is performed.

【0067】前記N個の実行ユニット2a〜2nの中の
何れか1個がVLIW命令語長レジスタ11のVLIW
命令語長の書換え命令(語長書き換え命令)を実行する
時(後述)には、マルチプレクサ26は、該当実行ユニ
ットから送られてくるVLIW命令語長を選択して、V
LIW命令語長レジスタ11に取り込む。
One of the N execution units 2a to 2n is the VLIW instruction word length register 11 VLIW.
When executing the instruction word length rewriting instruction (word length rewriting instruction) (described later), the multiplexer 26 selects the VLIW instruction word length sent from the corresponding execution unit, and
It is taken into the LIW instruction word length register 11.

【0068】前記命令数(L)算出手段12は、前記V
LIW命令語長レジスタ11の出力するVLIW命令語
長から命令数Lを算出する。本実施の形態では、VLI
W命令はL個の4バイト長の命令から構成されるとす
る。従って、前記VLIW命令語長レジスタ11の出力
するVLIW命令語長を4バイトで除算する。具体的に
は、命令数(L)算出手段12は、VLIW命令語長レ
ジスタ11の出力するVLIW命令語長を2ビット右に
シフトして命令数Lを求める。
The instruction number (L) calculating means 12 calculates the V
The number of instructions L is calculated from the VLIW instruction word length output from the LIW instruction word length register 11. In the present embodiment, VLI
It is assumed that the W instruction is composed of L 4-byte instructions. Therefore, the VLIW instruction word length output from the VLIW instruction word length register 11 is divided by 4 bytes. Specifically, the number-of-instructions (L) calculating means 12 obtains the number L of instructions by shifting the VLIW instruction word length output from the VLIW instruction word length register 11 right by two bits.

【0069】前記除算手段14は、命令数算出手段12
の出力する命令数Lを被除数とし、実行ユニット数レジ
スタ13の出力する実行ユニット数Nを除数として、除
算を行い、商mと剰余δを求める。
The dividing means 14 comprises an instruction number calculating means 12
Is set as the dividend, the number of execution units N output from the execution unit number register 13 is set as the divisor, and division is performed to obtain the quotient m and the remainder δ.

【0070】前記加算器15は、前記商mに“1”を加
え、マルチプレクサ16は、前記剰余δが“0”の場合
は商mを選択し、剰余δが“0”でない場合は加算結果
m+1を選択する。
The adder 15 adds “1” to the quotient m, and the multiplexer 16 selects the quotient m when the remainder δ is “0”, and adds the addition result when the remainder δ is not “0”. Select m + 1.

【0071】前記VLIW命令内反復制御手段18は、
1つのVLIW命令の中でN個の命令を前記商mに等し
い回数だけ実行し、更に剰余δが“0”でない場合に
は、その剰余δに等しい個数の命令を実行するように命
令制御ユニット1全体を制御する。
The VLIW instruction repetition control means 18 comprises:
The instruction control unit executes N instructions in one VLIW instruction the number of times equal to the quotient m, and further executes the number of instructions equal to the remainder δ when the remainder δ is not “0”. 1 controls the whole.

【0072】前記マルチプレクサ17は、1つのVLI
W命令を処理する際に、商mがm≠0の場合には、先ず
実行ユニット数レジスタ13の出力するNを選択するこ
とをm回繰返し、次に除算手段14の出力する剰余δが
“0”でない場合に限り、その剰余δを選択する一方、
商mがm=0の場合には、除算手段14の出力する剰余
δを選択する。
The multiplexer 17 has one VLI.
When the W instruction is processed, if the quotient m is m ≠ 0, first the selection of N output from the execution unit number register 13 is repeated m times, and then the remainder δ output from the division means 14 becomes “ Only when it is not 0 ", the remainder δ is selected,
When the quotient m is m = 0, the remainder δ output from the dividing means 14 is selected.

【0073】前記乗算手段19は、マルチプレクサ17
の出力に“4”を掛けて(本実施の形態では、具体的に
は2ビット左にシフトして下位2ビットを“0”とす
る)、命令フェッチアドレスの増分を計算する。
The multiplying means 19 includes a multiplexer 17
Is multiplied by “4” (specifically, in this embodiment, the lower 2 bits are shifted to the left by 2 bits to “0”), and the increment of the instruction fetch address is calculated.

【0074】前記マルチプレクサ20a〜20nは、V
LIW命令内反復制御手段18の制御により、命令キャ
ッシュ5から読み出した命令又は“NOP”を選択す
る。ここで、VLIW命令内反復制御手段18が“NO
P”を選択するよう制御する場合としては、剰余δが
“0”でない場合に命令キャッシュ5から読み出させた
N個の命令の中で後ろからN−δ個の命令が次のVLI
W命令に含まれる場合、また後述するようにVLIW命
令語長書き替え命令によるVLIW命令語長レジスタ1
1の書き替えが終っていない段階で、次のVLIW命令
のIFステージ(命令フェッチステージ)を抑止する場
合等がある。
The multiplexers 20 a to 20 n
Under the control of the LIW in-instruction repetition control means 18, the instruction read from the instruction cache 5 or "NOP" is selected. Here, the VLIW-instruction repetition control means 18 sets "NO"
In the case where control is performed to select “P”, when the remainder δ is not “0”, among the N instructions read from the instruction cache 5, N−δ instructions from the rear are replaced by the next VLI.
When included in the W instruction, and as described later, a VLIW instruction word length register 1
There is a case where the IF stage (instruction fetch stage) of the next VLIW instruction is suppressed before the rewriting of 1 is completed.

【0075】マルチプレクサ20a〜20nの出力は、
命令レジスタ22a〜22nにセットされる。
The outputs of the multiplexers 20a to 20n are
It is set in the instruction registers 22a to 22n.

【0076】前記解読・実行制御手段24a〜24n
は、命令レジスタ22a〜22nの出力を解読し、各
々、実行ユニット2a〜2nに対して命令の実行の開始
を指示する。従って、前記命令レジスタ22a〜22n
の何れか1個に記憶された命令が、VLIW命令語長の
書き換え命令である場合には、対応する解読・実行制御
手段がその命令を解読すると共に、対応する実行ユニッ
トがVLIW命令語長レジスタ11のVLIW命令語長
の書換え命令を実行する。
The decryption / execution control means 24a to 24n
Decodes the outputs of the instruction registers 22a to 22n and instructs the execution units 2a to 2n to start executing the instructions, respectively. Therefore, the instruction registers 22a to 22n
If the instruction stored in any one of the above is a VLIW instruction word length rewrite instruction, the corresponding decoding / execution control means decodes the instruction, and the corresponding execution unit sets the VLIW instruction word length register. A rewrite instruction having a VLIW instruction word length of 11 is executed.

【0077】前記命令フェッチアドレスレジスタ30に
は、フェッチすべき命令のアドレスが常時格納される。
即ち、分岐命令が成立しない場合には、命令フェッチア
ドレスレジスタ30のアドレスに乗算手段19の出力す
るアドレスの増分を加算器31により加え、この加算結
果をマルチプレクサ29により選択して、再度、命令フ
ェッチアドレスレジスタ30に取り込む。一方、分岐命
令が成立した場合には、分岐命令を実行している実行ユ
ニットから送出される分岐アドレスをマルチプレクサ2
7で選択して、分岐先アドレス保留レジスタ28に取り
込む。
The instruction fetch address register 30 always stores the address of the instruction to be fetched.
That is, when the branch instruction is not established, the increment of the address output from the multiplication means 19 is added to the address of the instruction fetch address register 30 by the adder 31, and the addition result is selected by the multiplexer 29, and the instruction fetch is performed again. The data is taken into the address register 30. On the other hand, when the branch instruction is taken, the branch address sent from the execution unit executing the branch instruction is input to the multiplexer 2.
7 and is taken into the branch destination address reservation register 28.

【0078】VLIW命令内反復制御手段18は、分岐
命令を含む命令の全てが実行されるように複数個のマル
チプレクサ17、20a〜20n、29等を制御し、マ
ルチプレクサ29の3種の入力から命令アドレスとして
適切なものを選択して、命令フェッチアドレスレジスタ
30に取り込む。
The VLIW-instruction repetition control means 18 controls a plurality of multiplexers 17, 20 a to 20 n, 29, etc. so that all instructions including branch instructions are executed. An appropriate address is selected and taken into the instruction fetch address register 30.

【0079】以下、図3に示すプログラムを用いて、本
実施の形態のVLIW命令プロセッサが如何に動作する
かを説明する。尚、実際に使用されるプログラムを用い
て説明する場合には、長いプログラムの追跡を要するた
め、本発明の要点を理解し易いように、図3では単純化
したプログラムを用いている。同図では、VLIW命令
1、VLIW命令2、VLIW命令3は、各々、命令数
が“2”であり、VLIW命令4からVLIW命令8ま
では命令数が“L”となり、VLIW命令9、VLIW
命令10で再び命令数が“2”となる。実際に使用する
プログラムでも、図3と同様に、最初は命令数が小さい
VLIW命令によりその後の命令数が大きいVLIW命
令の実行環境を準備した後、命令数の大きいVLIW命
令でVLIW命令プロセッサとして高い性能を発揮し、
その後、命令数の小さいVLIW命令により後処理を行
うことが一般的である。
Hereinafter, the operation of the VLIW instruction processor according to the present embodiment will be described with reference to the program shown in FIG. When a description is given using a program that is actually used, a long program needs to be tracked. Therefore, a simplified program is used in FIG. 3 so that the gist of the present invention can be easily understood. In the figure, the VLIW instruction 1, the VLIW instruction 2, and the VLIW instruction 3 each have the number of instructions "2", the number of instructions from the VLIW instruction 4 to the VLIW instruction 8 becomes "L", and the VLIW instruction 9, VLIW instruction 9, VLIW instruction
The instruction number becomes “2” again by the instruction 10. Even in a program to be actually used, similarly to FIG. 3, at first, an execution environment of a VLIW instruction having a small number of instructions is prepared by using a VLIW instruction having a small number of instructions, and then a VLIW instruction having a large number of instructions is set as a high VLIW instruction processor. Demonstrate performance,
Thereafter, post-processing is generally performed by a VLIW instruction having a small number of instructions.

【0080】IPLが正常に完了して、VLIW命令語
長レジスタ11には初期値として“8”が、また実行ユ
ニット数レジスタ13には実行ユニット数N(図3では
Nは“2”より大きいと仮定する)が格納されている。
また、命令フェッチアドレスレジスタ30には、プログ
ラムの先頭アドレスがIPLにより格納されている。命
令制御ユニット1が命令フェッチ要求を命令キャッシュ
5及びメモリ管理ユニット7に同時に要求した時に、命
令キャッシュには未だ有効データがなく、従って、主記
憶装置9から命令キャッシュ5にデータを転送する一連
の動作が実行される。
When the IPL is completed normally, “8” is initially set in the VLIW instruction word length register 11 and the number of execution units N is stored in the execution unit number register 13 (N is larger than “2” in FIG. 3). Is assumed) is stored.
The instruction fetch address register 30 stores the start address of the program by IPL. When the instruction control unit 1 requests an instruction fetch request from the instruction cache 5 and the memory management unit 7 at the same time, there is no valid data in the instruction cache yet, and therefore, a series of data transfer from the main memory 9 to the instruction cache 5 is performed. The operation is performed.

【0081】命令数算出手段12からは命令数“2”が
出力され、除算手段14では商“0”、剰余“2”が出
力される。マルチプレクサ16は、定数“1”加算器1
5の出力“1”を選択する。
The instruction number calculation means 12 outputs the instruction number “2”, and the division means 14 outputs a quotient “0” and a remainder “2”. The multiplexer 16 is a constant “1” adder 1
5 is selected as output "1".

【0082】VLIW命令内反復制御手段18は、マル
チプレクサ20a〜20nに対して、その先頭の2個に
対しては命令キャッシュ5からのデータを、残りのN−
2個に対しては“NOP”を選択するよう制御する。V
LIW命令内反復制御手段18は、メモリ管理ユニット
7からのフェッチ要求データが命令キャッシュ5に転送
されたとの信号を受けて、命令レジスタ22a〜22n
に対してデータの取り込みを指示する。
The VLIW in-instruction repetition control means 18 sends the data from the instruction cache 5 to the multiplexers 20a to 20n for the first two, and the remaining N-
Control is performed to select “NOP” for two of them. V
Upon receiving a signal indicating that the fetch request data from the memory management unit 7 has been transferred to the instruction cache 5, the LIW-intra-instruction repetition control means 18
Is instructed to fetch data.

【0083】本実施の形態でのVLIW命令プロセッサ
は、パイプラインで動作し、基本となるパイプライン
は、IF(命令フェッチ)、DEC(命令解読・発
行)、EX(実行)、WB(レジスタ書き込み)の4ス
テージからなり、通常各ステージは1サイクルで動作す
るものとする。
The VLIW instruction processor according to the present embodiment operates in a pipeline, and the basic pipeline includes IF (instruction fetch), DEC (instruction decoding / issuing), EX (execution), and WB (register writing). ), And each stage normally operates in one cycle.

【0084】図4は、VLIW命令1からVLIW命令
4までの命令についてのVLIW命令プロセッサのパイ
プライン動作を示す。VLIW命令1のIFステージで
は、先に述べたように命令キャッシュに有効データがな
いため、主記憶装置9から命令キャッシュ5にデータを
転送する一連の動作が実行される。
FIG. 4 shows the pipeline operation of the VLIW instruction processor for instructions from VLIW instruction 1 to VLIW instruction 4. In the IF stage of the VLIW instruction 1, since there is no valid data in the instruction cache as described above, a series of operations for transferring data from the main storage device 9 to the instruction cache 5 are performed.

【0085】VLIW命令1がDECステージに進むと
同時に、VLIW命令2はIFステージに進み、以後、
VLIW命令1、VLIW命令2、VLIW命令3は1
サイクルピッチのパイプラインで処理が進む。
At the same time as the VLIW instruction 1 proceeds to the DEC stage, the VLIW instruction 2 proceeds to the IF stage.
VLIW instruction 1, VLIW instruction 2, and VLIW instruction 3 are 1
Processing proceeds in a cycle pitch pipeline.

【0086】VLIW命令3のDECステージでは、V
LIW命令3に含まれる命令、例えば命令31がVLI
W命令語長の書き替え命令であることを1つの実行ユニ
ットが検出し、VLIW命令内反復制御手段18に通知
する。このVLIW命令3のDECステージでは、VL
IW命令内反復制御手段18は、VLIW命令4の命令
フェッチ要求を出しているが、この時点では、VLIW
命令語長レジスタ11に新しいVLIW命令語長が格納
されるまでVLIW命令語長が大きく又は小さくなるか
不明であるため、新しい命令フェッチ要求を出さず、V
LIW命令3に含まれる2命令がWBステージになるま
でマルチプレクサ20a〜20nに対して全て“NO
P”を選択するよう制御し、その後、前記VLIW命令
3に含まれる2命令がWBステージになった時点で、V
LIW命令語長書き替え命令によりVLIW命令語長レ
ジスタ11に命令数Lが書き込まれ、除算手段14によ
り商m及び剰余δが出力されると、その商mがm≠0の
場合には、次のサイクルでVLIW命令4の最初のN個
の命令に対するDECステージを開始するように、マル
チプレクサ20a〜20nに対して、全て命令キャッシ
ュ5からのデータを選択するよう制御する。
In the DEC stage of VLIW instruction 3, V
The instruction included in the LIW instruction 3, for example, the instruction 31 is the VLI
One execution unit detects that the instruction is a rewrite instruction having a W instruction word length, and notifies the repetition control unit 18 within the VLIW instruction. In the DEC stage of this VLIW instruction 3, VL
The IW-instruction repetition control means 18 has issued an instruction fetch request for the VLIW instruction 4, but at this time, the VLIW instruction 4
Until the new VLIW instruction word length is stored in the instruction word length register 11, it is not known whether the VLIW instruction word length will increase or decrease.
Until two instructions included in the LIW instruction 3 enter the WB stage, all the multiplexers 20a to 20n output "NO".
P ”, and then, when two instructions included in the VLIW instruction 3 enter the WB stage,
The number of instructions L is written to the VLIW instruction word length register 11 by the LIW instruction word length rewriting instruction, and the quotient m and the remainder δ are output by the dividing means 14, and when the quotient m is m ≠ 0, The multiplexers 20a to 20n are controlled to select all the data from the instruction cache 5 so that the DEC stage for the first N instructions of the VLIW instruction 4 is started in the cycle of.

【0087】VLIW命令4の最初のN個の命令がDE
Cステージに進むと同時に、命令フェッチアドレスレジ
スタ30には、マルチプレクサ29の選択する加算器3
1の出力が取り込まれる。この取り込まれるアドレス
は、VLIW命令4の先頭アドレスに乗算手段19の出
力であるN×4を加算した値である。
The first N instructions of VLIW instruction 4 are DE
At the same time as proceeding to the C stage, the adder 3 selected by the multiplexer 29 is stored in the instruction fetch address register 30.
1 is taken in. The fetched address is a value obtained by adding N × 4 output from the multiplying means 19 to the head address of the VLIW instruction 4.

【0088】VLIW命令4のm回目のDECステージ
に進むと同時に、VLIW命令4の最後のδ個の命令を
処理するために、そのIFステージでは、VLIW命令
内反復制御手段18は、マルチプレクサ20a〜20n
に対して、その先頭からδ個までは命令キャッシュ5か
らのデータを、残りのN−δ個には“NOP”を選択す
るよう制御する。乗算手段19はδ×4を出力し、次の
サイクルで命令フェッチアドレスレジスタ30には、V
LIW命令4の先頭アドレスにm(N×4)+δ×4を
加算したアドレス、即ちVLIW命令5の先頭アドレス
が取り込まれる。
In order to process the last δ instructions of the VLIW instruction 4 at the same time as proceeding to the m-th DEC stage of the VLIW instruction 4, in the IF stage, the VLIW instruction internal repetition control means 18 controls the multiplexers 20a to 20a. 20n
On the other hand, control is performed so that the data from the instruction cache 5 is selected up to δ from the top, and “NOP” is selected for the remaining N−δ. The multiplying means 19 outputs δ × 4 and the instruction fetch address register 30 stores V in the next cycle.
The address obtained by adding m (N × 4) + δ × 4 to the head address of the LIW instruction 4, that is, the head address of the VLIW instruction 5, is fetched.

【0089】続いて、VLIW命令5、VLIW命令6
及びVLIW命令7がVLIW命令4と同様に実行され
る。
Subsequently, VLIW instruction 5 and VLIW instruction 6
And VLIW instruction 7 are executed in the same manner as VLIW instruction 4.

【0090】前記VLIW命令8には、VLIW命令語
長書き替え命令が含まれており、このVLIW命令8の
どの場所にこの命令が位置しているかに応じて、VLI
W命令9のIFステージが抑止されたり、抑止されなか
ったりする。この場合のIFステージの抑制制御を図
5、図6及び図7に基いて説明する。
The VLIW instruction 8 includes a VLIW instruction word length rewriting instruction, and the VLIW instruction 8 has a VLIW instruction 8 according to the location of the VLIW instruction 8 where the instruction is located.
The IF stage of the W instruction 9 may or may not be suppressed. The suppression control of the IF stage in this case will be described with reference to FIGS. 5, 6, and 7. FIG.

【0091】図5では、VLIW命令8のうち最後に処
理される命令群にVLIW命令語長書き替え命令が含ま
れており、この命令群のDECステージでVLIW命令
語長書き替え命令が検出されて、VLIW命令9のIF
ステージが2サイクル抑止される。VLIW命令8の最
後に処理される命令群のWBステージの始まりでVLI
W命令語長レジスタ11が更新されると同時に、VLI
W命令9のIFステージが動作する。
In FIG. 5, a VLIW instruction word length rewriting instruction is included in the last group of instructions processed in the VLIW instruction 8, and a VLIW instruction word length rewriting instruction is detected in the DEC stage of this instruction group. And the IF of VLIW instruction 9
The stage is suppressed for two cycles. At the beginning of the WB stage of the group of instructions processed at the end of VLIW instruction 8, VLI
When the W instruction word length register 11 is updated, the VLI
The IF stage of the W instruction 9 operates.

【0092】図6では、VLIW命令8の命令群のうち
最後より1つ前に処理される命令群にVLIW命令語長
書き替え命令が含まれており、この命令群のDECステ
ージでVLIW命令語長書き替え命令が検出されて、V
LIW命令9のIFステージが1サイクル抑止される。
VLIW命令8の最後より1つ前に処理される命令群の
WBステージの始まりでVLIW命令語長レジスタ11
が更新されると同時に、VLIW命令9のIFステージ
が動作する。
In FIG. 6, a VLIW instruction word length rewrite instruction is included in an instruction group processed immediately before the last of the VLIW instruction group 8, and the VLIW instruction word is rewritten in the DEC stage of the instruction group. When a long rewrite instruction is detected, V
The IF stage of the LIW instruction 9 is suppressed by one cycle.
At the beginning of the WB stage of the instruction group processed immediately before the end of the VLIW instruction 8, the VLIW instruction word length register 11
Is updated, the IF stage of the VLIW instruction 9 operates.

【0093】また、図7では、VLIW命令8の命令群
のうち最後より2つ前に処理される命令群にVLIW命
令語長書き替え命令が含まれており、この最後より2つ
前の命令群のDECステージでVLIW命令語長書き替
え命令が検出される。この命令群のWBステージの始ま
りでVLIW命令語長レジスタ11が更新されると同時
に、VLIW命令9のIFステージが始まる。従って、
VLIW命令語長レジスタ11の更新によるIFステー
ジの抑止は発生しない。
In FIG. 7, the VLIW instruction word length rewriting instruction is included in the instruction group processed two instructions before the last among the instruction groups of the VLIW instruction 8, and the instruction two words before the last instruction is included. At the DEC stage of the group, a VLIW instruction word length rewrite instruction is detected. At the start of the WB stage of this instruction group, the VLIW instruction word length register 11 is updated, and at the same time, the IF stage of the VLIW instruction 9 starts. Therefore,
The suppression of the IF stage by updating the VLIW instruction word length register 11 does not occur.

【0094】図8は、VLIW命令内反復制御手段18
の内部構成を示し、前記のパイプライン動作を制御する
パイプライン制御手段の一例を示す。
FIG. 8 shows a repetition control means 18 in a VLIW instruction.
2 shows an example of pipeline control means for controlling the pipeline operation.

【0095】同図において、41はマルチプレクサ、4
2はIF番号レジスタ、43はDEC番号レジスタ、4
4はEX番号レジスタ、45は定数減算器、46、4
7、48はN入力論理和回路、49はIFパイプライン
制御手段、50はDECパイプライン制御手段、51は
EXパイプライン制御手段、52はWBパイプライン制
御手段である。
In the figure, reference numeral 41 denotes a multiplexer, 4
2 is an IF number register, 43 is a DEC number register, 4
4 is an EX number register, 45 is a constant subtractor, and 46 and 4
7, 48 are N-input OR circuits, 49 is IF pipeline control means, 50 is DEC pipeline control means, 51 is EX pipeline control means, and 52 is WB pipeline control means.

【0096】マルチプレクサ41は、定数減算器45の
出力が“0”の場合には、マルチプレクサ16の出力を
選択し、定数減算器45の出力が“0”でない場合に
は、定数減算器45の出力を選択する。
The multiplexer 41 selects the output of the multiplexer 16 when the output of the constant subtracter 45 is "0", and selects the output of the constant subtractor 45 when the output of the constant subtractor 45 is not "0". Select output.

【0097】IPLによりIF番号レジスタ42には
“1”が、DEC番号レジスタ43には“0”が、EX
番号レジスタ44には“0”が、各々初期値として格納
されている。これら3個の番号レジスタは、VLIW命
令内の処理しなければいけない命令群(この命令群に含
まれる命令数はN個又はδ個である)が何個残されてい
るかを示すものである。
According to the IPL, "1" is stored in the IF number register 42, "0" is stored in the DEC number register 43, and EX
“0” is stored in the number register 44 as an initial value. These three number registers indicate how many instruction groups to be processed in the VLIW instruction (the number of instructions included in the instruction group is N or δ) are left.

【0098】N個の解読実行制御手段24a〜24nの
中の1つによってVLIW命令語長書き替え命令が検出
され、このVLIW命令語長書き替え命令がN入力論理
和回路46を介してIFパイプライン制御手段(命令フ
ェッチパイプライン制御手段)49に伝達されると、こ
のIFパイプライン制御手段49は、DEC番号レジス
タ43の出力が“1”の場合にはIFステージを2サイ
クル抑止し、DEC番号レジスタ43の出力が“2”の
場合にはIFステージを1サイクル抑止し、DEC番号
レジスタ43の出力が“3”以上の場合にはIFステー
ジを抑止しない制御を行う。
A VLIW instruction word length rewriting instruction is detected by one of the N decoding execution control means 24a to 24n, and this VLIW instruction word length rewriting instruction is sent through an N-input OR circuit 46 to an IF pipe. When transmitted to the line control means (instruction fetch pipeline control means) 49, the IF pipeline control means 49 suppresses the IF stage for two cycles when the output of the DEC number register 43 is "1", and When the output of the number register 43 is “2”, the IF stage is suppressed for one cycle, and when the output of the DEC number register 43 is “3” or more, control is performed not to suppress the IF stage.

【0099】次に、分岐命令の動作を図9、図10、図
11及び図12により説明する。
Next, the operation of the branch instruction will be described with reference to FIGS. 9, 10, 11, and 12.

【0100】具体的な説明に先だって、本実施の形態の
VLIW命令プロセッサでは、分岐命令がVLIW命令
内でとる位置について何の制約もなく、また、分岐先は
必ずVLIW命令の先頭アドレスを指しており、VLI
W命令内で分岐命令の後に続く命令を実行した後に分岐
する。このことは、冒頭の「VLIW命令は、プロセッ
サが論理的に一度に実行するとコンパイラが認識する1
つ又は複数の命令の集まり」という定義に合致してい
る。
Prior to the specific description, in the VLIW instruction processor according to the present embodiment, there is no restriction on the position of the branch instruction in the VLIW instruction, and the branch destination always points to the start address of the VLIW instruction. VLI
Branch after executing the instruction following the branch instruction in the W instruction. This means that the beginning of the "VLIW instruction is one that the compiler recognizes as a logical execution by the processor at one time.
One or more instructions ".

【0101】図9では、VLIW命令Aに属する命令群
の中で最後に処理される命令群に分岐命令が含まれてお
り、この最後に処理される命令群のEXステージの終り
で分岐成立が確定し、この命令群のWBステージで命令
フェッチアドレスレジスタ30に分岐先アドレスを書き
込む。分岐成立により実行してはいけないVLIW命令
B及びVLIW命令Cは、余分に1サイクルオーバーラ
ンして、各々WBステージ、EXステージでキャンセル
されている。分岐先のVLIW命令Pの最初に処理され
る命令群のIFステージと、VLIW命令Aの最後に処
理される命令群のWBステージとが同一サイクルである
ので、図9の場合の分岐命令のオーバーヘッドは2サイ
クルである。
In FIG. 9, a branch instruction is included in the instruction group processed last in the instruction group belonging to the VLIW instruction A, and the branch is taken at the end of the EX stage of the instruction group processed last. Then, the branch destination address is written to the instruction fetch address register 30 at the WB stage of this instruction group. The VLIW instruction B and the VLIW instruction C, which must not be executed due to the branch taken, are overrun by one extra cycle and are canceled in the WB stage and the EX stage, respectively. Since the IF stage of the instruction group processed first of the branch destination VLIW instruction P and the WB stage of the instruction group processed last of the VLIW instruction A have the same cycle, the overhead of the branch instruction in the case of FIG. Is two cycles.

【0102】図10では、VLIW命令Dの最後より1
つ前に処理される命令群に分岐命令が含まれており、こ
の最後より1つ前に処理される命令群のEXステージの
終りで分岐成立が確定し、この命令群のWBステージで
命令フェッチアドレスレジスタ30に分岐先アドレスを
書き込む。分岐成立により実行してはいけないVLIW
命令Eは、余分に1サイクルオーバーランして、EXス
テージでキャンセルされている。分岐先のVLIW命令
Qの最初に処理される命令群のIFステージと、VLI
W命令Aの最後に処理される命令群のEXステージとが
同一サイクルであるので、図10の場合の分岐命令のオ
ーバーヘッドは1サイクルである。
In FIG. 10, the last one of the VLIW instruction D is 1
The instruction group processed immediately before includes a branch instruction. The branch taken is determined at the end of the EX stage of the instruction group processed immediately before the end, and the instruction fetch is performed at the WB stage of this instruction group. The branch destination address is written to the address register 30. VLIW not to be executed due to branch taken
Instruction E has been overrun by one extra cycle and has been canceled in the EX stage. An IF stage of an instruction group to be processed first of the branch destination VLIW instruction Q;
Since the EX stage of the instruction group processed at the end of the W instruction A has the same cycle, the overhead of the branch instruction in the case of FIG. 10 is one cycle.

【0103】図11では、VLIW命令Fの最後より2
つ前に処理される命令群に分岐命令が含まれており、こ
の最後より2つ前に処理される命令群のEXステージの
終りで分岐成立が確定し、この命令群のWBステージの
始まりでは、マルチプレクサ29は、VLIW命令Fに
続く次のVLIW命令の先頭アドレスではなく、分岐先
のVLIW命令Rの先頭アドレスを選択し、この分岐先
のVLIW命令Rの先頭アドレスが命令フェッチアドレ
スレジスタ30に書き込まれる。従って、図11の場合
には、分岐命令によるオーバーヘッドは生じない。
In FIG. 11, the last two VLIW instructions F
A branch instruction is included in the instruction group processed immediately before, and it is determined that the branch is taken at the end of the EX stage of the instruction group processed two steps before the end. At the beginning of the WB stage of this instruction group, , The multiplexer 29 selects not the head address of the next VLIW instruction following the VLIW instruction F, but the head address of the branch destination VLIW instruction R, and stores the head address of the branch destination VLIW instruction R in the instruction fetch address register 30. Written. Therefore, in the case of FIG. 11, no overhead is caused by the branch instruction.

【0104】図12では、VLIW命令Gの最後より3
つ前に処理される命令群に分岐命令が含まれており、こ
の最後より3つ前に処理される命令群のEXステージの
終りで分岐成立が確定し、この命令群のWBステージの
始まりで、分岐先のVLIW命令Sの先頭アドレスが、
一旦、分岐先アドレス保留レジスタ28に書き込まれ
る。この1サイクル後で、前記分岐先アドレス保留レジ
スタ28の出力がマルチプレクサ29により選択され
て、命令フェッチアドレスレジスタ30に書き込まれ
る。従って、図12の場合にも分岐命令によるオーバー
ヘッドは生じない。
In FIG. 12, the last three VLIW instructions G
The instruction group processed immediately before includes a branch instruction. At the end of the EX stage of the instruction group processed three times before the end, branch establishment is determined, and at the beginning of the WB stage of this instruction group. , The start address of the branch destination VLIW instruction S is
It is written into the branch destination address holding register 28 once. One cycle later, the output of the branch destination address reservation register 28 is selected by the multiplexer 29 and written into the instruction fetch address register 30. Therefore, no overhead is caused by the branch instruction in the case of FIG.

【0105】次に、図8を用いて図9から図12までの
動作を説明する。
Next, the operation from FIG. 9 to FIG. 12 will be described with reference to FIG.

【0106】図8において、N個の実行ユニット2a〜
2nの中の何れか1つで分岐成立が検出され、この分岐
成立の検出がN入力論理和回路48を介してEXパイプ
ライン制御手段51及びWBパイプライン制御手段52
に伝達される。
In FIG. 8, N execution units 2a to 2
2n, the branch taken is detected by the EX pipeline control means 51 and the WB pipeline control means 52 via the N-input OR circuit 48.
Is transmitted to

【0107】EXパイプライン制御手段(実行パイプラ
イン制御手段)51は、分岐成立情報と、EX番号レジ
スタ44の出力からIF番号レジスタ42の出力を引い
た値とを次のサイクルの初めでラッチし、「分岐成立」
と「差が“0”又は負」との2つの条件が成立する場合
には、その1サイクル後のEXステージをキャンセルす
る。
The EX pipeline control means (execution pipeline control means) 51 latches the branch establishment information and the value obtained by subtracting the output of the IF number register 42 from the output of the EX number register 44 at the beginning of the next cycle. , "Branch taken"
If the two conditions of “the difference is“ 0 ”or negative” are satisfied, the EX stage one cycle later is canceled.

【0108】また、WBパイプライン制御手段(書き込
みパイプライン制御手段)52は、分岐成立情報と、E
X番号レジスタ44の出力からDEC番号レジスタ43
の出力を引いた値とを次のサイクルの初めでラッチし、
「分岐成立」と「差が“0”又は負」との2つの条件が
成立する場合には、更に1サイクル後のWBステージを
キャンセルする。
Further, the WB pipeline control means (write pipeline control means) 52 outputs
From the output of the X number register 44 to the DEC number register 43
Latched at the beginning of the next cycle
When the two conditions of “branch taken” and “difference is“ 0 ”or negative” are satisfied, the WB stage one cycle later is canceled.

【0109】更に、前記WBパイプライン制御手段52
は、ラッチする前の「分岐成立」と「EX番号レジスタ
44の出力が“3”以下」との2つの条件が成立する場
合には、N個の実行ユニット2a〜2nの中の何れか1
つから送られてくる分岐先アドレスをマルチプレクサ2
7及び29で選択させて、次のサイクルで命令フェッチ
アドレスレジスタ30に取り込むよう制御する。
Further, the WB pipeline control means 52
If two conditions of “branch taken” before latching and “output of EX number register 44 is“ 3 ”or less” are satisfied, any one of N execution units 2a to 2n
The multiplexer 2 sends the branch destination address sent from the
The selection is made by 7 and 29, and control is performed so as to be taken into the instruction fetch address register 30 in the next cycle.

【0110】加えて、前記WBパイプライン制御手段5
2は、ラッチする前の「分岐成立」と「EX番号レジス
タ44の出力が“4”以上」の2つの条件が成立する場
合には、N個の実行ユニット2a〜2nの中の何れか1
つから送られてくる分岐先アドレスをマルチプレクサ2
7で選択させ、次のサイクルで一旦は分岐先アドレス保
留レジスタ28に取り込み、その後、EX番号レジスタ
44の出力が“3”になってこのEX番号“3”に対応
する命令群がWBステージに進むのと同じタイミング
で、前記分岐先アドレス保留レジスタ28の出力をマル
チプレクサ29で選択させて、命令フェッチアドレスレ
ジスタ30に取り込むよう制御する。
In addition, the WB pipeline control means 5
2 is one of the N execution units 2a to 2n when two conditions of "branch taken" before latching and "output of EX number register 44 is" 4 "or more" are satisfied.
The multiplexer 2 sends the branch destination address sent from the
In the next cycle, the instruction is taken into the branch destination address reservation register 28, and then the output of the EX number register 44 becomes "3", and the instruction group corresponding to the EX number "3" is transferred to the WB stage. At the same timing as the process proceeds, the output of the branch destination address reservation register 28 is selected by the multiplexer 29, and the output is taken into the instruction fetch address register 30.

【0111】従って、以上説明した分岐命令の動作によ
れば、同一VLIW命令内で分岐命令の後に続く必ず実
行すべき命令を、遅延分岐命令方式よりも柔軟に埋め込
むことができる。
Therefore, according to the operation of the branch instruction described above, an instruction that must be executed after the branch instruction in the same VLIW instruction can be embedded more flexibly than the delayed branch instruction method.

【0112】続いて、本発明に特徴的なVLIW命令語
長レジスタ11を持つVLIW命令プロセッサが、前記
レジスタ11を持たない従来のVLIW命令プロセッサ
のプログラムライブラリを利用できることを図14を用
いて説明する。
Next, the fact that a VLIW instruction processor having a VLIW instruction word length register 11 characteristic of the present invention can use a program library of a conventional VLIW instruction processor having no register 11 will be described with reference to FIG. .

【0113】図14において、VLIW命令群Aは、V
LIW命令語長の書き換え命令を含む。VLIW命令群
Bは、従来のVLIW命令プロセッサのプログラムライ
ブラリに含まれる1つのプログラムである。この動作の
説明では、前記VLIW命令群AをVLIW命令3まで
実行した後、従来のVLIW命令群Bを全部実行し、そ
の後、VLIW命令群Aに復帰する例について述べる。
図14でも、図3と同様に、発明の要点が容易に理解で
きるように、プログラムを単純化している。
In FIG. 14, VLIW instruction group A is
Includes a LIW instruction word length rewrite instruction. The VLIW instruction group B is one program included in a program library of a conventional VLIW instruction processor. In the description of this operation, an example will be described in which after executing the VLIW instruction group A up to the VLIW instruction 3, all the conventional VLIW instruction groups B are executed, and then returning to the VLIW instruction group A.
In FIG. 14, as in FIG. 3, the program is simplified so that the gist of the invention can be easily understood.

【0114】図14において、VLIW命令群AのVL
IW命令1の命令11及び命令12、並びに命令2の命
令21では、VLIW命令群Bで使用するデータを、そ
のVLIW命令群B内のVLIW命令を構成する命令で
参照できるように準備する。次いで、VLIW命令群A
のVLIW命令2の命令22では、レジスタ・ファイル
4の“0”番目レジスタにVLIW命令群AのVLIW
命令8の先頭アドレス、即ち戻りアドレスを設定する。
VLIW命令群AのVLIW命令3の命令31には、V
LIW命令語長書き換え命令が含まれており、この命令
は命令語長を前記従来のVLIW命令プロセッサで使用
するVLIW命令群Bの命令語長に書き換える命令であ
り、VLIW命令語長レジスタ11の命令語長がこの命
令語長に書き換えられる。VLIW命令群AのVLIW
命令3の命令32には、従来のVLIW命令群Bの最初
に分岐する分岐命令が存在し、従って、VLIW命令群
Bの最初に分岐して、命令数LのVLIW命令、5、
6、7を実行する。この最後のVLIW命令7には、前
記レジスタ・ファイル4の“0”番目レジスタの内容を
分岐アドレスとする分岐命令が存在し、この命令の実行
により、本発明のVLIW命令群AのVLIW命令8に
戻る。このVLIW命令8は前記VLIW命令群Bの各
VLIW命令、5、6、7の命令数Lと同一の命令数L
を持ち、このVLIW命令8には、VLIW命令語長書
き換え命令が含まれており、この命令によりVLIW命
令語長が書き換えられる。従って、その後は、VLIW
命令群Aにおいて、VLIW命令語長が書き換えられた
例えば命令数=2のVLIW命令9、10が実行される
ことになる。VLIW命令群BからVLIW命令群Aに
戻った時、VLIW命令語長レジスタ11は未だ書き換
えられていないので、戻ったVLIW命令群Aで最初に
実行するVLIW命令8のVLIW命令語長は復帰前の
VLIW命令群BのVLIW命令のVLIW命令語長と
同一である必要がある。
In FIG. 14, VL of VLIW instruction group A
In the instructions 11 and 12 of the IW instruction 1 and the instruction 21 of the instruction 2, the data used in the VLIW instruction group B is prepared so as to be referred to by the instructions constituting the VLIW instruction in the VLIW instruction group B. Next, the VLIW instruction group A
Of the VLIW instruction group 2 of the VLIW instruction group A in the instruction 22 of the VLIW instruction 2
The start address of the instruction 8, that is, the return address is set.
Instruction 31 of VLIW instruction 3 in VLIW instruction group A includes V
The LIW instruction word length rewriting instruction includes an instruction for rewriting the instruction word length to the instruction word length of the VLIW instruction group B used in the conventional VLIW instruction processor. The word length is rewritten to this instruction word length. VLIW of VLIW instruction group A
The instruction 32 of the instruction 3 includes a branch instruction that branches first at the beginning of the conventional VLIW instruction group B. Therefore, the instruction 32 branches at the beginning of the VLIW instruction group B, and the VLIW instruction having the number of instructions L is 5,
6. Execute steps 6 and 7. The last VLIW instruction 7 includes a branch instruction having the branch address of the contents of the “0” th register of the register file 4. By executing this instruction, the VLIW instruction 8 of the VLIW instruction group A of the present invention is executed. Return to The VLIW instruction 8 has the same number L of instructions as the number L of the VLIW instructions 5, 5, 6, and 7 in the VLIW instruction group B.
The VLIW instruction 8 includes a VLIW instruction word length rewriting instruction, and the VLIW instruction word length is rewritten by this instruction. Therefore, after that, VLIW
In the instruction group A, the VLIW instructions 9 and 10 whose instruction length is rewritten, for example, the number of instructions = 2 are executed. When returning from the VLIW instruction group B to the VLIW instruction group A, the VLIW instruction word length register 11 has not yet been rewritten. The VLIW instruction word length of the VLIW instruction of the VLIW instruction group B must be the same.

【0115】尚、本実施の形態では、VLIW命令を構
成する複数の命令の中にVLIW命令語長の書き換え命
令が存在したが、本発明はこれに限定されない。即ち、
例えば既述の従来例を示す図15のように、VLIW命
令の先頭部分に位置する全体制御部のフィールド内にV
LIW命令語長を指示するVLIW命令では、同図に示
すように、そのフィールド内のVLIW命令語長を解読
する専用の解読・制御手段24n+1を設けると共に、こ
の解読制御手段24n+1により制御されて前記解読され
たVLIW命令語長をVLIW命令語長レジスタ11に
格納してVLIW命令語長を更新する専用の実行ユニッ
ト2n+1を設ける構成としてもよい。
In this embodiment, a VLIW instruction word length rewrite instruction is present among a plurality of instructions constituting the VLIW instruction, but the present invention is not limited to this. That is,
For example, as shown in FIG. 15 showing the conventional example described above, V is set in the field of the general control unit located at the head of the VLIW instruction.
In the VLIW instruction for designating the LIW instruction word length, as shown in the figure, a dedicated decoding / control means 24n + 1 for decoding the VLIW instruction word length in the field is provided, and the decoding control means 24n + 1 provides A dedicated execution unit 2n + 1 for controlling and storing the decoded VLIW instruction word length in the VLIW instruction word length register 11 and updating the VLIW instruction word length may be provided.

【0116】(第2の実施の形態)図16は本発明の第
2の実施の形態を示す。同図は、前記第1の実施の形態
における可変語長VLIW命令プロセッサの図2に示し
た命令制御ユニット1を一部変更した命令制御ユニット
1´を示す。その変更点は、図2の命令制御ユニット1
のVLIW命令語長レジスタ11及び命令数算出手段1
2を削除し、命令数レジスタ60を設けたものであり、
その他の構成は図2と同一である。即ち、前記第1の実
施の形態では、VLIW命令に含まれた命令語長書き換
え命令により書き換えられたVLIW命令語長は、VL
IW命令語長レジスタ11に格納されると共に、命令数
算出手段12によりその命令語長を1命令のビット長で
除算して命令数を算出した。本実施の形態では、命令数
レジスタ60のみを設け、従って、VLIW命令には、
これに含まれる命令の数を所望数の命令数に書き換え更
新させる命令(命令数書き換え命令)が含められる。よ
って、前記第1の実施の形態の図5ないし図7に示した
「VLIW命令語長書き換え命令」の文言を「命令数書
き換え命令」に変更すればよいだけであるので、その図
示及び説明を省略する。本実施の形態では、VLIW命
令に含まれる各命令のビット長は相互に同一である必要
はなく、相互に異なっていてもよい。
(Second Embodiment) FIG. 16 shows a second embodiment of the present invention. This figure shows an instruction control unit 1 'of the variable word length VLIW instruction processor according to the first embodiment, in which the instruction control unit 1 shown in FIG. 2 is partially modified. The difference is that the instruction control unit 1 shown in FIG.
VLIW instruction word length register 11 and instruction number calculation means 1
2 and an instruction number register 60 is provided.
Other configurations are the same as those in FIG. That is, in the first embodiment, the VLIW instruction word length rewritten by the instruction word length rewriting instruction included in the VLIW instruction is VL
The instruction number is stored in the IW instruction word length register 11 and the instruction number is calculated by the instruction number calculating means 12 by dividing the instruction word length by the bit length of one instruction. In this embodiment, only the instruction number register 60 is provided, and therefore, the VLIW instruction includes:
An instruction (an instruction number rewriting instruction) for rewriting and updating the number of instructions included in the instruction to the desired number of instructions is included. Therefore, it is only necessary to change the wording of the "VLIW instruction word length rewriting instruction" shown in FIGS. 5 to 7 of the first embodiment to the "instruction number rewriting instruction". Omitted. In the present embodiment, the bit lengths of the instructions included in the VLIW instruction do not need to be the same, but may be different.

【0117】[0117]

【発明の効果】以上、説明したように、請求項1ないし
請求項37記載の発明の可変語長VLIW命令プロセッ
サによれば、命令により書き換え可能なVLIW命令語
長レジスタ又は命令数レジスタを設けたので、“NO
P”(無実行)の指示を少く又は無くすことができ、命
令メモリの有効利用が可能である。また、イニシャル・
プログラム・ローディング等により前記VLIW命令語
長レジスタ又は命令数レジスタを初期設定できるので、
命令語長を固定値として、従来のプロセッサのオブジェ
クトプログラムの実行が可能になる。
As described above, according to the variable word length VLIW instruction processor of the present invention, a VLIW instruction word length register or instruction number register rewritable by an instruction is provided. So, "NO
The instruction of P "(no execution) can be reduced or eliminated, and the instruction memory can be used effectively.
Since the VLIW instruction word length register or instruction number register can be initialized by program loading or the like,
By setting the instruction word length to a fixed value, it becomes possible to execute an object program of a conventional processor.

【0118】また、請求項38及び請求項39記載の発
明の可変語長VLIW命令プロセッサによれば、VLI
W命令に含まれる命令数を実行ユニットの数で除算し
て、その商と剰余とを求め、前記実行ユニットの数に等
しい数の命令を前記商の回数だけ繰返し実行した後、前
記剰余に等しい個数の命令を実行するので、VLIW命
令プロセッサが同時に並列実行できる最大命令数が異な
る場合、又はVLIW命令に含まれる命令数がプロセッ
サの同時並列実行可能な最大命令数よりも多い場合であ
っても、常にVLIW命令を実行できる効果を奏する。
According to the variable word length VLIW instruction processor of the present invention, the VLI
The number of instructions included in the W instruction is divided by the number of execution units to obtain a quotient and a remainder. After repeatedly executing a number of instructions equal to the number of the execution units by the number of the quotients, the number of instructions is equal to the remainder. Since the number of instructions is executed, even if the maximum number of instructions that the VLIW instruction processor can execute simultaneously in parallel is different, or if the number of instructions included in the VLIW instruction is larger than the maximum number of instructions that can be executed in parallel by the processor, This has the effect that the VLIW instruction can always be executed.

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

【図1】本発明の第1の実施の形態の可変語長VLIW
命令プロセッサのブロック構成を示す図である。
FIG. 1 shows a variable word length VLIW according to a first embodiment of the present invention.
FIG. 3 is a diagram illustrating a block configuration of an instruction processor.

【図2】同可変語長VLIW命令プロセッサが備える命
令制御ユニットの内部構成を示すブロック図である。
FIG. 2 is a block diagram showing an internal configuration of an instruction control unit provided in the variable word length VLIW instruction processor.

【図3】同可変語長VLIW命令プロセッサで実行する
プログラムの一例を示す図である。
FIG. 3 is a diagram showing an example of a program executed by the variable word length VLIW instruction processor.

【図4】同可変語長VLIW命令プロセッサのパイプラ
イン動作に対するVLIW命令語長書き換え命令の影響
についての第1の例を示す図である。
FIG. 4 is a diagram showing a first example of the influence of a VLIW instruction word length rewriting instruction on a pipeline operation of the variable word length VLIW instruction processor.

【図5】同第2の例を示す図である。FIG. 5 is a diagram showing a second example.

【図6】同第3の例を示す図である。FIG. 6 is a diagram showing a third example.

【図7】同第4の例を示す図である。FIG. 7 is a diagram showing a fourth example.

【図8】同可変語長VLIW命令プロセッサの命令制御
ユニットが備えるVLIW命令内反復制御手段の内部構
成を示すブロック図である。
FIG. 8 is a block diagram showing the internal configuration of a VLIW instruction repetition control means provided in the instruction control unit of the variable word length VLIW instruction processor.

【図9】同可変語長VLIW命令プロセッサのパイプラ
イン動作に対する分岐命令の影響についての第1の例を
示す図である。
FIG. 9 is a diagram showing a first example of the effect of a branch instruction on a pipeline operation of the variable word length VLIW instruction processor.

【図10】同第2の例を示す図である。FIG. 10 is a diagram showing a second example.

【図11】同第3の例を示す図である。FIG. 11 is a diagram showing a third example.

【図12】同第4の例を示す図である。FIG. 12 is a diagram showing a fourth example.

【図13】同可変語長VLIW命令プロセッサにおける
イニシャル・プログラム・ローディングの詳細を示すフ
ローチャート図である。
FIG. 13 is a flowchart showing details of initial program loading in the variable word length VLIW instruction processor.

【図14】同可変語長VLIW命令プロセッサにおいて
従来のVLIW命令プロセッサのオブジェクトプログラ
ムを利用する場合の説明図である。
FIG. 14 is an explanatory diagram of a case where an object program of a conventional VLIW instruction processor is used in the variable word length VLIW instruction processor.

【図15】VLIW命令語長を指示するフィールドを持
ったVLIW命令を用いる場合の変形例を示す図であ
る。
FIG. 15 is a diagram showing a modification in the case of using a VLIW instruction having a field indicating a VLIW instruction word length.

【図16】本発明の第2の実施の形態の可変語長VLI
W命令プロセッサが備える命令制御ユニットの内部構成
を示すブロック図である。
FIG. 16 shows a variable word length VLI according to the second embodiment of the present invention.
FIG. 3 is a block diagram illustrating an internal configuration of an instruction control unit included in the W instruction processor.

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

1 命令制御ユニット 2a〜2n 実行ユニット 2n+1 専用の実行ユニット 11 VLIW命令語長レジスタ 12 命令数算出手段 14 除算手段 18 VLIW命令内反復制御手段 19 乗算手段 21 制御手段 23 命令制御手段 24a〜24n 解読・実行制御手段(解読・制御手
段) 24n+1 解読・実行制御手段(専用の解読・
制御手段) 28 分岐先アドレス保留レジスタ 49 IFパイプライン制御手段(命令フ
ェッチパイプライン制御手段) 51 EXパイプライン制御手段(実行パ
イプライン制御手段) 52 WBパイプライン制御手段(書き込
みパイプライン制御手段) 60 命令数レジスタ
DESCRIPTION OF SYMBOLS 1 Instruction control unit 2a-2n Execution unit 2n + 1 Dedicated execution unit 11 VLIW instruction word length register 12 Instruction number calculation means 14 Division means 18 VLIW instruction repetition control means 19 Multiplication means 21 Control means 23 Instruction control means 24a-24n Decryption / execution control means (decryption / control means) 24n + 1 Decryption / execution control means (dedicated decryption / execution means)
Control means) 28 branch destination address reservation register 49 IF pipeline control means (instruction fetch pipeline control means) 51 EX pipeline control means (execution pipeline control means) 52 WB pipeline control means (write pipeline control means) 60 Instruction number register

Claims (39)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】 命令を実行する複数個の実行ユニット
と、 VLIW命令語長を格納するVLIW命令語長レジスタ
と、 VLIW命令語長の指示を含むVLIW命令を受け、こ
のVLIW命令内のVLIW命令語長により前記VLI
W命令語長レジスタのVLIW命令語長を書き換えると
共に、前記VLIW命令語長レジスタに格納されたVL
IW命令語長に基いて前記複数個の実行ユニットの全部
又は一部による命令の並列実行を制御する命令制御ユニ
ットとを備えたことを特徴とする可変語長VLIW命令
プロセッサ。
1. A plurality of execution units for executing an instruction, a VLIW instruction word length register storing a VLIW instruction word length, a VLIW instruction including an instruction of the VLIW instruction word length, and a VLIW instruction in the VLIW instruction VLI according to word length
The VLIW instruction word length of the W instruction word length register is rewritten, and the VL stored in the VLIW instruction word length register is changed.
A variable word length VLIW instruction processor, comprising: an instruction control unit that controls parallel execution of instructions by all or some of the plurality of execution units based on an IW instruction word length.
【請求項2】 前記VLIW命令語長の指示を含むVL
IW命令は、このVLIW命令を構成する複数の命令の
中に、VLIW命令語長を書き換える語長書き換え命令
を有することを特徴とする請求項1記載の可変語長VL
IW命令プロセッサ。
2. A VL including an instruction of the VLIW instruction word length.
2. The variable word length VL according to claim 1, wherein the IW instruction includes a word length rewriting instruction for rewriting a VLIW instruction word length among a plurality of instructions constituting the VLIW instruction.
IW instruction processor.
【請求項3】 前記語長書き換え命令は、前記複数個の
実行ユニットのうち何れか1個により実行されることを
特徴とする請求項2記載の可変語長VLIW命令プロセ
ッサ。
3. The variable word length VLIW instruction processor according to claim 2, wherein said word length rewriting instruction is executed by any one of said plurality of execution units.
【請求項4】 前記VLIW命令語長の指示を含むVL
IW命令は、VLIW命令語長を示すフィールドを持つ
VLIW命令であることを特徴とする請求項1記載の可
変語長VLIW命令プロセッサ。
4. A VL including an instruction of the VLIW instruction word length.
2. The variable word length VLIW instruction processor according to claim 1, wherein the IW instruction is a VLIW instruction having a field indicating a VLIW instruction word length.
【請求項5】 前記VLIW命令語長レジスタに格納さ
れたVLIW命令語長を書き換えるための専用の実行ユ
ニットと、 前記VLIW命令内の前記フィールドに示されるVLI
W命令語長を解読し、前記VLIW命令語長レジスタに
格納されたVLIW命令語長を前記解読したVLIW命
令語長に書き換えるように前記書き換え専用の実行ユニ
ットを制御する解読・制御手段とを別途有することを特
徴とする請求項4記載の可変語長VLIW命令プロセッ
サ。
5. A dedicated execution unit for rewriting a VLIW instruction word length stored in the VLIW instruction word length register, and a VLI indicated in the field in the VLIW instruction.
A decoding / control means for decoding the W instruction word length and controlling the execution unit exclusively for rewriting so as to rewrite the VLIW instruction word length stored in the VLIW instruction word length register to the decoded VLIW instruction word length is separately provided. 5. The variable word length VLIW instruction processor according to claim 4, comprising:
【請求項6】 1つのVLIW命令は複数個の命令から
成り、この複数個の命令は相互に同一の所定ビット長を
有し、 前記命令制御ユニットは、前記VLIW命令語長レジス
タに格納されたVLIW命令語長を前記所定ビット長で
除算して、1つのVLIW命令に含まれる命令の数を算
出する命令数算出手段を有することを特徴とする請求項
1記載の可変語長VLIW命令プロセッサ。
6. One VLIW instruction comprises a plurality of instructions, the plurality of instructions having the same predetermined bit length, and wherein the instruction control unit is stored in the VLIW instruction word length register. 2. The variable word length VLIW instruction processor according to claim 1, further comprising instruction number calculation means for calculating the number of instructions included in one VLIW instruction by dividing a VLIW instruction word length by the predetermined bit length.
【請求項7】 命令制御ユニットは、 1つのVLIW命令を構成する複数の命令を複数の命令
群に区画し、この各命令群別に命令を並列実行する制御
手段を備えることを特徴とする請求項1記載の可変語長
VLIW命令プロセッサ。
7. An instruction control unit, comprising: a plurality of instructions constituting one VLIW instruction, divided into a plurality of instruction groups, and control means for executing the instructions in parallel for each instruction group. 2. The variable word length VLIW instruction processor of claim 1.
【請求項8】 制御手段は、 1つのVLIW命令を構成する命令の数を被除数とし、
前記実行ユニットの数を除数として、商とその剰余を求
める除算手段と、 前記商が“0”でない場合には、前記複数個の実行ユニ
ットを用いてその個数に等しい数の命令の同時並列実行
を前記商の数だけ繰返し、その後、前記剰余が“0”で
ない場合には、その剰余の数に等しい数の実行ユニット
を用いて命令の同時並列実行を行い、一方、前記商が
“0”の場合には、前記剰余の数に等しい数の実行ユニ
ットを用いて命令の同時並列実行を行う命令制御手段と
を有することを特徴とする請求項7記載の可変語長VL
IW命令プロセッサ。
8. The control means sets the number of instructions constituting one VLIW instruction as a dividend,
Division means for obtaining a quotient and its remainder using the number of execution units as a divisor; and when the quotient is not "0", simultaneously executing a number of instructions equal to the number using the plurality of execution units. Is repeated by the number of quotients. Thereafter, if the remainder is not “0”, instructions are executed in parallel using the execution units of the number equal to the number of remainders, while the quotient is “0”. 8. The variable word length VL according to claim 7, further comprising: instruction control means for executing instructions in parallel in parallel using the number of execution units equal to the number of remainders.
IW instruction processor.
【請求項9】 語長書き換え命令を有する前記VLIW
命令は、最終回に実行される命令群の中に前記語長書き
換え命令が含まれることを特徴とする請求項7又は請求
項8記載の可変語長VLIW命令プロセッサ。
9. The VLIW having a word length rewrite instruction.
9. The variable word length VLIW instruction processor according to claim 7, wherein the instructions include the word length rewriting instruction in an instruction group executed at the last time.
【請求項10】 語長書き換え命令を有する前記VLI
W命令は、最終回の1つ前の回に実行される命令群の中
に前記語長書き換え命令が含まれることを特徴とする請
求項7又は請求項8記載の可変語長VLIW命令プロセ
ッサ。
10. The VLI having a word length rewrite instruction.
9. The variable word length VLIW instruction processor according to claim 7, wherein the W instruction includes the word length rewriting instruction in an instruction group executed immediately before the last instruction.
【請求項11】 語長書き換え命令を有する前記VLI
W命令は、最終回の2つ前の回に実行される命令群の中
に前記語長書き換え命令が含まれることを特徴とする請
求項7又は請求項8記載の可変語長VLIW命令プロセ
ッサ。
11. The VLI having a word length rewrite instruction.
9. The variable word length VLIW instruction processor according to claim 7, wherein the W instruction includes the word length rewriting instruction in an instruction group executed two times before the last instruction.
【請求項12】 前記命令制御ユニットは、 VLIW命令を構成する複数の命令群の中での前記語長
書き換え命令を含む命令群の位置に応じて、前記語長書
き換え命令を含む前記VLIW命令の次に続くVLIW
命令において最初回に実行する命令のフェッチを抑止す
る命令フェッチパイプライン制御手段を有することを特
徴とする請求項9、請求項10又は請求項11記載の可
変語長VLIW命令プロセッサ。
12. The VLIW instruction including the word length rewriting instruction according to a position of an instruction group including the word length rewriting instruction among a plurality of instruction groups constituting a VLIW instruction. The next VLIW
12. The variable word length VLIW instruction processor according to claim 9, further comprising instruction fetch pipeline control means for suppressing fetching of an instruction executed first time in an instruction.
【請求項13】 あるVLIW命令には、最終回に実行
される命令群の中に分岐命令が含まれることを特徴とす
る請求項7又は請求項8記載の可変語長VLIW命令プ
ロセッサ。
13. The variable word length VLIW instruction processor according to claim 7, wherein a certain VLIW instruction includes a branch instruction in a group of instructions executed at the last time.
【請求項14】 あるVLIW命令には、最終回の1つ
前の回に実行される命令群の中に分岐命令が含まれるこ
とを特徴とする請求項7又は請求項8記載の可変語長V
LIW命令プロセッサ。
14. The variable word length according to claim 7, wherein a certain VLIW instruction includes a branch instruction in an instruction group to be executed immediately before the last time. V
LIW instruction processor.
【請求項15】 あるVLIW命令には、最終回の2つ
前の回に実行される命令群の中に分岐命令が含まれるこ
とを特徴とする請求項7又は請求項8記載の可変語長V
LIW命令プロセッサ。
15. The variable word length according to claim 7, wherein a certain VLIW instruction includes a branch instruction in a group of instructions executed two times before the last time. V
LIW instruction processor.
【請求項16】 前記命令制御ユニットは、 VLIW命令を構成する複数の命令群の中での前記分岐
命令を含む命令群の位置に応じて、前記分岐命令を含む
前記VLIW命令の次に続くVLIW命令において最初
回に実行する命令の実行及び書き込みを各々キャセルす
る実行パイプライン制御手段及び書き込みパイプライン
制御手段を有することを特徴とする請求項13、請求項
14又は請求項15記載の可変語長VLIW命令プロセ
ッサ。
16. The VLIW instruction following the VLIW instruction including the branch instruction according to a position of an instruction group including the branch instruction in a plurality of instruction groups constituting a VLIW instruction. 16. The variable word length according to claim 13, further comprising execution pipeline control means and write pipeline control means for canceling execution and writing of an instruction executed first time in the instruction. VLIW instruction processor.
【請求項17】 前記命令制御ユニットは、更に、 前記VLIW命令に含まれる分岐命令の分岐先アドレス
を格納する分岐先アドレス保留レジスタを有することを
特徴とする請求項16記載の可変語長VLIW命令プロ
セッサ。
17. The variable word length VLIW instruction according to claim 16, wherein said instruction control unit further comprises a branch destination address reservation register for storing a branch destination address of a branch instruction included in said VLIW instruction. Processor.
【請求項18】 VLIW命令語長レジスタに格納され
るVLIW命令語長は、電源の投入時及びシステムのリ
セット時に初期設定されることを特徴とする請求項1記
載の可変語長VLIW命令プロセッサ。
18. The variable word length VLIW instruction processor according to claim 1, wherein the VLIW instruction word length stored in the VLIW instruction word length register is initialized at power-on and at system reset.
【請求項19】 VLIW命令語長レジスタに格納され
るVLIW命令語長は、 命令形式が同一で且つ前記VLIW命令とは実行ユニッ
トの数が異なるVLIW命令を実行するプロセッサ用の
オブジェクトプログラムを実行する際には、前記オブジ
ェクトプログラムの先頭よりも1つ前に実行される前記
VLIW命令の中に含まれる語長書き換え命令により書
き換えられることを特徴とする請求項1記載の可変語長
VLIW命令プロセッサ。
19. A VLIW instruction word length stored in a VLIW instruction word length register executes an object program for a processor that executes a VLIW instruction having the same instruction format and a different number of execution units from the VLIW instruction. 2. The variable word length VLIW instruction processor according to claim 1, wherein the word length is rewritten by a word length rewriting instruction included in the VLIW instruction executed immediately before the head of the object program.
【請求項20】 命令を実行する複数個の実行ユニット
と、 VLIWに含まれる命令の数を格納する命令数レジスタ
と、 命令数の指示を含むVLIW命令を受け、このVLIW
命令内の命令数により前記命令数レジスタの命令数を書
き換えると共に、前記命令数レジスタに格納された命令
数に基いて前記複数個の実行ユニットの全部又は一部に
よる命令の並列実行を制御する命令制御ユニットとを備
えたことを特徴とする可変語長VLIW命令プロセッ
サ。
20. A plurality of execution units for executing instructions, an instruction number register for storing the number of instructions included in the VLIW, and a VLIW instruction including an instruction for the number of instructions.
An instruction for rewriting the number of instructions in the instruction number register according to the number of instructions in the instruction, and for controlling parallel execution of instructions by all or some of the plurality of execution units based on the number of instructions stored in the instruction number register. A variable word length VLIW instruction processor comprising a control unit.
【請求項21】 前記命令数の指示を含むVLIW命令
は、このVLIW命令を構成する複数の命令の中に、命
令数を書き換える命令数書き換え命令を有することを特
徴とする請求項20記載の可変語長VLIW命令プロセ
ッサ。
21. The variable VLIW instruction according to claim 20, wherein the VLIW instruction including the instruction of the instruction number includes an instruction number rewriting instruction for rewriting the instruction number among a plurality of instructions constituting the VLIW instruction. Word length VLIW instruction processor.
【請求項22】 前記命令数書き換え命令は、前記複数
個の実行ユニットのうち何れか1個により実行されるこ
とを特徴とする請求項21記載の可変語長VLIW命令
プロセッサ。
22. The variable word length VLIW instruction processor according to claim 21, wherein said instruction number rewriting instruction is executed by any one of said plurality of execution units.
【請求項23】 前記命令数の指示を含むVLIW命令
は、命令数を示すフィールドを持つVLIW命令である
ことを特徴とする請求項20記載の可変語長VLIW命
令プロセッサ。
23. The variable word length VLIW instruction processor according to claim 20, wherein the VLIW instruction including the instruction of the number of instructions is a VLIW instruction having a field indicating the number of instructions.
【請求項24】 前記命令数レジスタに格納された命令
数を書き換えるための専用の実行ユニットと、 前記VLIW命令内の前記フィールドに示される命令数
を解読し、前記命令数レジスタに格納された命令数を前
記解読した命令数に書き換えるように前記書き換え専用
の実行ユニットを制御する解読・制御手段とを別途有す
ることを特徴とする請求項23記載の可変語長VLIW
命令プロセッサ。
24. A dedicated execution unit for rewriting the number of instructions stored in the instruction number register, and an instruction stored in the instruction number register, which decodes the number of instructions indicated in the field in the VLIW instruction. 24. The variable word length VLIW according to claim 23, further comprising decoding / control means for controlling the execution unit dedicated to rewriting so as to rewrite the number to the number of decoded instructions.
Instruction processor.
【請求項25】 命令制御ユニットは、 1つのVLIW命令を構成する複数の命令を複数の命令
群に区画し、この各命令群別に命令を並列実行する制御
手段を備えることを特徴とする請求項20記載の可変語
長VLIW命令プロセッサ。
25. An instruction control unit, comprising: a plurality of instructions constituting one VLIW instruction, divided into a plurality of instruction groups, and control means for executing instructions in parallel for each of the instruction groups. 21. The variable word length VLIW instruction processor of claim 20.
【請求項26】 制御手段は、 1つのVLIW命令を構成する命令の数を被除数とし、
前記実行ユニットの数を除数として、商とその剰余を求
める除算手段と、 前記商が“0”でない場合には、前記複数個の実行ユニ
ットを用いてその個数に等しい数の命令の同時並列実行
を前記商の数だけ繰返し、その後、前記剰余が“0”で
ない場合には、その剰余の数に等しい数の実行ユニット
を用いて命令の同時並列実行を行い、一方、前記商が
“0”の場合には、前記剰余の数に等しい数の実行ユニ
ットを用いて命令の同時並列実行を行う命令制御手段と
を有することを特徴とする請求項25記載の可変語長V
LIW命令プロセッサ。
26. A control means, comprising: a number of instructions constituting one VLIW instruction as a dividend;
Division means for obtaining a quotient and its remainder using the number of execution units as a divisor; and when the quotient is not "0", simultaneously executing a number of instructions equal to the number using the plurality of execution units. Is repeated by the number of quotients. Thereafter, if the remainder is not “0”, instructions are executed in parallel using the execution units of the number equal to the number of remainders, while the quotient is “0”. 26. The variable word length V according to claim 25, further comprising: instruction control means for executing instructions in parallel in parallel using the same number of execution units as the remainder.
LIW instruction processor.
【請求項27】 命令数書き換え命令を有する前記VL
IW命令は、最終回に実行される命令群の中に前記命令
数書き換え命令が含まれることを特徴とする請求項25
又は請求項26記載の可変語長VLIW命令プロセッ
サ。
27. The VL having an instruction number rewrite instruction.
26. The IW instruction, wherein the instruction number rewriting instruction is included in an instruction group executed at the last time.
27. A variable word length VLIW instruction processor according to claim 26.
【請求項28】 命令数書き換え命令を有する前記VL
IW命令は、最終回の1つ前の回に実行される命令群の
中に前記命令数書き換え命令が含まれることを特徴とす
る請求項25又は請求項26記載の可変語長VLIW命
令プロセッサ。
28. The VL having an instruction number rewrite instruction.
27. The variable word length VLIW instruction processor according to claim 25, wherein the IW instruction includes the instruction number rewriting instruction in an instruction group executed immediately before the last instruction.
【請求項29】 命令数書き換え命令を有する前記VL
IW命令は、最終回の2つ前の回に実行される命令群の
中に前記命令数書き換え命令が含まれることを特徴とす
る請求項25又は請求項26記載の可変語長VLIW命
令プロセッサ。
29. The VL having an instruction number rewriting instruction.
27. The variable word length VLIW instruction processor according to claim 25, wherein the IW instruction includes the instruction number rewriting instruction in an instruction group executed two times before the last instruction.
【請求項30】 前記命令制御ユニットは、 VLIW命令を構成する複数の命令群の中での前記命令
数書き換え命令を含む命令群の位置に応じて、前記命令
数書き換え命令を含む前記VLIW命令の次に続くVL
IW命令において最初回に実行する命令のフェッチを抑
止する命令フェッチパイプライン制御手段を有すること
を特徴とする請求項27、請求項28又は請求項29記
載の可変語長VLIW命令プロセッサ。
30. The instruction control unit, according to a position of an instruction group including the instruction number rewriting instruction among a plurality of instruction groups constituting a VLIW instruction, the VLIW instruction including the instruction number rewriting instruction. Next VL
30. The variable word length VLIW instruction processor according to claim 27, further comprising instruction fetch pipeline control means for suppressing fetch of an instruction executed first time in an IW instruction.
【請求項31】 あるVLIW命令には、最終回に実行
される命令群の中に分岐命令が含まれることを特徴とす
る請求項25又は請求項26記載の可変語長VLIW命
令プロセッサ。
31. The variable word length VLIW instruction processor according to claim 25, wherein a certain VLIW instruction includes a branch instruction in a group of instructions executed at the last time.
【請求項32】 あるVLIW命令には、最終回の1つ
前の回に実行される命令群の中に分岐命令が含まれるこ
とを特徴とする請求項25又は請求項26記載の可変語
長VLIW命令プロセッサ。
32. The variable word length according to claim 25, wherein a certain VLIW instruction includes a branch instruction in a group of instructions executed immediately before the last time. VLIW instruction processor.
【請求項33】 あるVLIW命令には、最終回の2つ
前の回に実行される命令群の中に分岐命令が含まれるこ
とを特徴とする請求項25又は請求項26記載の可変語
長VLIW命令プロセッサ。
33. The variable word length according to claim 25, wherein a certain VLIW instruction includes a branch instruction in an instruction group executed two times before the last time. VLIW instruction processor.
【請求項34】 前記命令制御ユニットは、 VLIW命令を構成する複数の命令群の中での前記分岐
命令を含む命令群の位置に応じて、前記分岐命令を含む
前記VLIW命令の次に続くVLIW命令において最初
回に実行する命令の実行及び書き込みを各々キャセルす
る実行パイプライン制御手段及び書き込みパイプライン
制御手段を有することを特徴とする請求項31、請求項
32又は請求項33記載の可変語長VLIW命令プロセ
ッサ。
34. The VLIW instruction following the VLIW instruction including the branch instruction according to a position of an instruction group including the branch instruction among a plurality of instruction groups constituting a VLIW instruction. 34. The variable word length according to claim 31, further comprising execution pipeline control means and write pipeline control means for canceling execution and writing of an instruction executed first time in the instruction. VLIW instruction processor.
【請求項35】 前記命令制御ユニットは、更に、 前記VLIW命令に含まれる分岐命令の分岐先アドレス
を格納する分岐先アドレス保留レジスタを有することを
特徴とする請求項34記載の可変語長VLIW命令プロ
セッサ。
35. The variable word length VLIW instruction according to claim 34, wherein said instruction control unit further comprises a branch destination address reservation register for storing a branch destination address of a branch instruction included in said VLIW instruction. Processor.
【請求項36】 命令数レジスタに格納される命令数
は、電源の投入時及びシステムのリセット時に初期設定
されることを特徴とする請求項20記載の可変語長VL
IW命令プロセッサ。
36. The variable word length VL according to claim 20, wherein the number of instructions stored in the instruction number register is initially set when power is turned on and when the system is reset.
IW instruction processor.
【請求項37】 命令数レジスタに格納される命令数
は、 命令形式が同一で且つ前記VLIW命令とは実行ユニッ
トの数が異なるVLIW命令を実行するプロセッサ用の
オブジェクトプログラムを実行する際には、前記オブジ
ェクトプログラムの先頭よりも1つ前に実行される前記
VLIW命令の中に含まれる命令数書き換え命令により
書き換えられることを特徴とする請求項20記載の可変
語長VLIW命令プロセッサ。
37. The number of instructions stored in the instruction number register, when executing an object program for a processor that executes a VLIW instruction having the same instruction format and a different number of execution units from the VLIW instruction, 21. The variable word length VLIW instruction processor according to claim 20, wherein the variable word length VLIW instruction processor is rewritten by an instruction number rewriting instruction included in the VLIW instruction executed immediately before the head of the object program.
【請求項38】 命令を実行する複数個の実行ユニット
と、 前記各実行ユニットによる命令の実行を制御する命令制
御ユニットとを備えた可変語長VLIW命令プロセッサ
において、 前記命令制御ユニットは、 VLIW命令に含まれる命令数を被除数とし、前記実行
ユニットの数を除数として商とその剰余を求める除算手
段と、 前記商が“0”でない場合には、前記複数個の実行ユニ
ットを用いてその個数に等しい数の命令の同時並列実行
を前記商の数だけ繰返し、その後、前記剰余が“0”で
ない場合には、その剰余の数に等しい数の実行ユニット
を用いて命令の同時並列実行を行い、一方、前記商が
“0”の場合には、前記剰余の数に等しい数の実行ユニ
ットを用いて命令の同時並列実行を行う命令制御手段と
を有していて、 以上の構成により、1つのVLIW命令を構成する複数
の命令を複数の命令群に区画し、この各命令群別に命令
を並列実行することを特徴とする可変語長VLIW命令
プロセッサ。
38. A variable word length VLIW instruction processor comprising: a plurality of execution units for executing an instruction; and an instruction control unit for controlling execution of the instruction by each execution unit, wherein the instruction control unit comprises a VLIW instruction. Division means for obtaining a quotient and its remainder by using the number of instructions included in the dividend as a dividend and the number of the execution units as a divisor, and when the quotient is not “0”, the number of execution units is reduced by using the plurality of execution units. The simultaneous and parallel execution of an equal number of instructions is repeated by the number of quotients, and if the remainder is not "0", the instructions are executed in parallel by using an execution unit having a number equal to the number of the remainders. On the other hand, when the quotient is “0”, the apparatus further comprises instruction control means for executing instructions in parallel using the same number of execution units as the remainder. Accordingly, it defines a plurality of instructions forming a single VLIW instruction into a plurality of instructions, variable word length VLIW-instruction processor, characterized by parallel execution of instructions by the respective instructions.
【請求項39】 命令制御ユニットは、更に、 VLIW命令に含まれる分岐命令の分岐先アドレスを格
納する分岐先アドレス保留レジスタを有することを特徴
とする請求項38記載の可変語長VLIW命令プロセッ
サ。
39. The variable word length VLIW instruction processor according to claim 38, wherein the instruction control unit further includes a branch destination address reservation register for storing a branch destination address of a branch instruction included in the VLIW instruction.
JP25942996A 1995-10-13 1996-09-30 Variable word length VLIW instruction processor Expired - Fee Related JP2880459B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP25942996A JP2880459B2 (en) 1995-10-13 1996-09-30 Variable word length VLIW instruction processor

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP26515195 1995-10-13
JP7-265151 1995-10-13
JP25942996A JP2880459B2 (en) 1995-10-13 1996-09-30 Variable word length VLIW instruction processor

Publications (2)

Publication Number Publication Date
JPH09167093A JPH09167093A (en) 1997-06-24
JP2880459B2 true JP2880459B2 (en) 1999-04-12

Family

ID=26544124

Family Applications (1)

Application Number Title Priority Date Filing Date
JP25942996A Expired - Fee Related JP2880459B2 (en) 1995-10-13 1996-09-30 Variable word length VLIW instruction processor

Country Status (1)

Country Link
JP (1) JP2880459B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100464406B1 (en) 2002-02-08 2005-01-03 삼성전자주식회사 Apparatus and method for dispatching very long instruction word with variable length

Also Published As

Publication number Publication date
JPH09167093A (en) 1997-06-24

Similar Documents

Publication Publication Date Title
US5774737A (en) Variable word length very long instruction word instruction processor with word length register or instruction number register
KR102413832B1 (en) vector multiply add instruction
US5261113A (en) Apparatus and method for single operand register array for vector and scalar data processing operations
US4399507A (en) Instruction address stack in the data memory of an instruction-pipelined processor
JPH11154114A (en) System and method for table look-up using architecture of plural data fetching
JPS6217252B2 (en)
KR20040016829A (en) Exception handling in a pipelined processor
JP2019511056A (en) Complex multiplication instruction
CN108319559B (en) Data processing apparatus and method for controlling vector memory access
JPH0260026B2 (en)
JP3556246B2 (en) Apparatus for interrupt handling in a pipeline processor
JPH0412503B2 (en)
JP2008310693A (en) Information processor
JP7048612B2 (en) Vector generation instruction
JP2880459B2 (en) Variable word length VLIW instruction processor
JPH096614A (en) Data processor
JP2654451B2 (en) Data output method
JP3211791B2 (en) Loop processing method
JPH0544049B2 (en)
JP2824484B2 (en) Pipeline processing computer
JP3759742B2 (en) Data processing device
JP3068406B2 (en) Vector arithmetic unit
JP3723311B2 (en) Parallel processor
JPH08263290A (en) Data processor
US20050188183A1 (en) Digital signal processor having data address generator with speculative register file

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 19990112

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

Free format text: PAYMENT UNTIL: 20080129

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20090129

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20090129

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20100129

Year of fee payment: 11

LAPS Cancellation because of no payment of annual fees