JPH05233283A - Parallel instruction execution system - Google Patents

Parallel instruction execution system

Info

Publication number
JPH05233283A
JPH05233283A JP7025892A JP7025892A JPH05233283A JP H05233283 A JPH05233283 A JP H05233283A JP 7025892 A JP7025892 A JP 7025892A JP 7025892 A JP7025892 A JP 7025892A JP H05233283 A JPH05233283 A JP H05233283A
Authority
JP
Japan
Prior art keywords
instruction
parallel
unit
execution
instruction execution
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.)
Granted
Application number
JP7025892A
Other languages
Japanese (ja)
Other versions
JP2838939B2 (en
Inventor
Tetsuya Fujita
哲也 藤田
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.)
NEC Corp
Original Assignee
NEC Corp
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 NEC Corp filed Critical NEC Corp
Priority to JP4070258A priority Critical patent/JP2838939B2/en
Publication of JPH05233283A publication Critical patent/JPH05233283A/en
Application granted granted Critical
Publication of JP2838939B2 publication Critical patent/JP2838939B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

PURPOSE:To provide a computer capable of attaining parallel instruction execution without increasing the hardware capacity of a decoding part while maintaining interchangeability with an existing computer. CONSTITUTION:This system includes a compiler for storing information relating to the control of parallel instruction execution in an object code by using an undefined instruction word and a parallel information decoding unit 2 extracts parallel execution information from an undefined instruction word and decodes it. An instruction decoding issuing unit 3 issues single or plural instructions to an execution unit based upon the information. A branch instruction execution unit 8, an integer arithmetic unit 9 and a floating point arithmetic unit 10 execute arithmetic based upon the instructions.

Description

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

【0001】[0001]

【産業上の利用分野】本発明は計算機の並列命令実行方
式、さらに詳しくいえば複数の命令を演算実行ユニット
に対して発行する命令ディスパッチ方式に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a parallel instruction execution system for a computer, and more particularly to an instruction dispatch system for issuing a plurality of instructions to an arithmetic execution unit.

【0002】[0002]

【従来の技術】従来、既存の計算機との互換性を維持し
ながら複数の命令を並列に実行する計算機においては命
令実行時にハードウエア資源の競合を意識しながら複数
の命令の実行の可否を判断していた。
2. Description of the Related Art Conventionally, in a computer that executes a plurality of instructions in parallel while maintaining compatibility with existing computers, it is determined whether or not a plurality of instructions can be executed while paying attention to hardware resource competition when the instructions are executed. Was.

【0003】[0003]

【発明が解決しようとする課題】従来の複数の命令を実
行する計算機では上述したように複数の命令を並列実行
可能かどうかを命令実行時にハードウエアで判断してい
るので、命令デコード,命令発行(ディスパッチ)を行
う制御部のハードウエア量が多くなって、その部分の回
路ディレイが大きくなり、基本クロック周期を短くする
上で支障を来していた。例えば、整数演算ユニットと浮
動少数点演算ユニットとを1つずつ有する計算機では、
連続する2つの命令が整数演算命令と浮動少数点演算命
令であればその2つの命令は並列に実行可能である。し
かし、連続する2つの命令がともに整数命令であった
り、浮動少数点命令であれば、演算ユニット上競合が起
こり1つの命令しか同時には実行できない。
In a conventional computer that executes a plurality of instructions, as described above, whether or not a plurality of instructions can be executed in parallel is determined by hardware when the instructions are executed. Therefore, instruction decoding and instruction issuance are required. The amount of hardware of the control unit that performs (dispatch) increases, and the circuit delay in that part increases, which causes a problem in shortening the basic clock cycle. For example, in a computer having one integer arithmetic unit and one floating point arithmetic unit,
If two consecutive instructions are an integer operation instruction and a floating point operation instruction, the two instructions can be executed in parallel. However, if two consecutive instructions are both integer instructions or floating point instructions, there is contention on the arithmetic unit and only one instruction can be executed at the same time.

【0004】このような判断を命令実行時にハードウエ
アで行うにはその制御部が複雑となる。さらに演算ユニ
ットの数や種類が増えた場合には、ハードウエアで充分
に並列命令実行の可能性を判断できなくなることがあり
得る。本発明の目的は演算ユニット,実行ユニットの使
用効率を向上させ、計算機全体の命令実行性能を向上さ
せることができる並列命令実行方式を提供することにあ
る。
In order to make such a judgment by hardware at the time of executing an instruction, its control section becomes complicated. Further, when the number and types of arithmetic units are increased, it may be impossible for hardware to sufficiently judge the possibility of parallel instruction execution. It is an object of the present invention to provide a parallel instruction execution system that can improve the efficiency of use of arithmetic units and execution units and improve the instruction execution performance of the entire computer.

【0005】[0005]

【課題を解決するための手段】前記目的を達成するため
に本発明による並列命令実行方式は複数の命令実行ユニ
ットを有し、複数の命令を並列に実行することができ、
既存の計算機の命令セットと互換性を有する計算機にお
いて、コンパイル時の解析結果にしたがい、後続のどの
命令が並列実行可能かという情報と、その並列実行可能
な複数の命令の中に含まれている条件分岐命令の条件が
成立しなかった時に複数の並列実行可能な命令の内のど
の命令の実行結果をキャンセルするのかを指定する情報
とを、既存の計算機では未定義とされていた命令語の中
に格納する並列命令実行解析コイパイラと、特別な命令
で値が設定でき、並列命令実行制御を有効または無効化
する信号を並列命令実行制御伝達手段で出力する並列命
令実行制御レジスタと、前記並列命令実行制御伝達手段
の信号を入力とし、この信号に従い前記未定義命令語を
解読し並列命令実行に関する前記2種類の制御情報をデ
コードし、その結果を並列命令発行信号と命令キャンセ
ル信号で出力する並列情報デコードユニットと、前記並
列命令発行信号にしたがい単一または複数の命令を前記
命令実行ユニットに発行する命令デコード発行ユニット
と、前記命令キャンセル信号および条件分岐命令の実行
結果にしたがい演算結果をキャンセルことができる命令
実行ユニットとから構成してある。前記命令実行ユニッ
トは分岐命令実行ユニットと整数演算ユニットと浮動少
数点演算ユニットから構成することができる。
In order to achieve the above object, a parallel instruction execution system according to the present invention has a plurality of instruction execution units and can execute a plurality of instructions in parallel.
In a computer that is compatible with the instruction set of an existing computer, it is included in the information that indicates which subsequent instruction can be executed in parallel and the multiple instructions that can be executed in parallel according to the analysis result at the time of compilation. Information that specifies which instruction execution result of a plurality of instructions that can be executed in parallel when the condition of the conditional branch instruction is not satisfied and the instruction word that is undefined in the existing computer are A parallel instruction execution analysis coiler to be stored therein, a parallel instruction execution control register for setting a value with a special instruction, and a signal for enabling or disabling the parallel instruction execution control is output by the parallel instruction execution control transmission means, and the parallel instruction execution control register. The signal from the instruction execution control transmission means is input, the undefined instruction word is decoded according to this signal, the two types of control information relating to parallel instruction execution are decoded, and the result is obtained. A parallel information decode unit for outputting a parallel instruction issue signal and an instruction cancel signal, an instruction decode issue unit for issuing a single or a plurality of instructions to the instruction execution unit according to the parallel instruction issue signal, the instruction cancel signal, and The instruction execution unit can cancel the operation result according to the execution result of the conditional branch instruction. The instruction execution unit may be composed of a branch instruction execution unit, an integer arithmetic unit, and a floating point arithmetic unit.

【0006】[0006]

【実施例】以下、図面を参照して本発明をさらに詳しく
説明する。図1は本発明による並列命令実行方式の実施
例を示すブロック図である。この実施例では説明の簡単
化のために分岐命令実行ユニット,整数演算ユニットお
よび浮動少数点演算ユニットをそれぞれ1つづつ備えた
計算機の例を説明する。並列実行可能な命令は最大3命
令である。
DESCRIPTION OF THE PREFERRED EMBODIMENTS The present invention will be described in more detail below with reference to the drawings. FIG. 1 is a block diagram showing an embodiment of a parallel instruction execution system according to the present invention. In this embodiment, for simplification of description, an example of a computer equipped with one branch instruction execution unit, one integer arithmetic unit and one floating point arithmetic unit will be described. The maximum number of instructions that can be executed in parallel is three.

【0007】命令バッファ1,並列情報デコードユニッ
ト2,命令デコード発行ユニット3を含んでおり、命令
バッファ1から命令伝達手段4により命令語が並列情報
デコードユニット2および命令デコード発行ユニット3
に出力される。並列情報デコードユニット2は命令伝達
手段4から入力される命令語が既存の計算機では未定義
であると、その中から後続の並列実行可能命令および命
令実行キャンセル指定情報を取り出して並列実行可能命
令数は並列命令発行信号5で命令デコート発行ユニット
3に伝達され、命令実行キャンセル指定は命令キャンセ
ル信号6によって各種実行ユニットに伝達される。
The instruction buffer 1, the parallel information decoding unit 2, and the instruction decoding issuing unit 3 are included, and the instruction word is transmitted from the instruction buffer 1 by the instruction transmitting means 4 to the parallel information decoding unit 2 and the instruction decoding issuing unit 3.
Is output to. If the instruction word input from the instruction transmitting means 4 is undefined in the existing computer, the parallel information decoding unit 2 extracts the subsequent parallel executable instruction and instruction execution cancel designation information from the existing instruction word and outputs the number of parallel executable instructions. Is transmitted to the instruction decode issuing unit 3 by the parallel instruction issue signal 5, and the instruction execution cancel designation is transmitted to various execution units by the instruction cancel signal 6.

【0008】命令デコート発行ユニット3は命令伝達手
段7によって命令語を分岐命令実行ユニット8,整数演
算ユニット9および浮動少数点演算ユニット10に伝達
する。分岐命令実行ユニット8において条件分岐命令で
判定された条件の成立不成立についての情報は条件分岐
信号11によって整数演算ユニット9および浮動少数点
演算ユニット10に伝達される。整数演算ユニット9お
よび浮動少数点演算ユニット10では命令キャンセル信
号6および条件分岐信号11の指示にしたがって必要あ
れば演算結果をレジスタなどに格納しないでその実行を
キャンセルする。並列命令実行制御レジスタ12の内容
は並列命令実行制御伝達信号13によって並列情報デコ
ードユニット2に伝達される。
The instruction decode issuing unit 3 transmits the instruction word to the branch instruction executing unit 8, the integer arithmetic unit 9 and the floating point arithmetic unit 10 by the instruction transmitting means 7. Information on whether or not the condition determined by the conditional branch instruction in the branch instruction execution unit 8 is satisfied is transmitted to the integer arithmetic unit 9 and the floating point arithmetic unit 10 by the conditional branch signal 11. In the integer arithmetic unit 9 and the floating point arithmetic unit 10, according to the instructions of the instruction cancel signal 6 and the conditional branch signal 11, the execution result is canceled without storing the operation result in a register or the like if necessary. The contents of the parallel instruction execution control register 12 are transmitted to the parallel information decoding unit 2 by the parallel instruction execution control transmission signal 13.

【0009】本実施例の計算機が互換を保とうとする既
存の計算機の命令セットでは命令語の先頭に命令コード
があって、その最初の4ビットがすべて1の命令語は未
定義であったとする。本発明の請求の範囲に含まれる並
列命令実行解析コンパイラはソースプログラムをコンパ
イルした結果、オブジェクトコード内に互いに命令実行
ユニットやレジスタなどの計算機の資源で競合しない並
列実行可能な分岐命令,整数演算命令および浮動少数点
演算命令が連続していないか探す。もし、連続していれ
ば、それらの命令を並列に実行させるために、その命令
列の前に先頭の4ビットがすべて1の未定義命令を挿入
し、さらにその命令語の最下位4ビットに並列実行可能
な命令数を書き込む。例えば0011は後続の3命令が
並列実行可能であることを表している。
In the instruction set of the existing computer for which the computer of this embodiment is to maintain compatibility, it is assumed that an instruction code is at the beginning of the instruction word and the instruction word of which the first 4 bits are all 1 is undefined. .. A parallel instruction execution analysis compiler included in the scope of the present invention compiles a source program, and as a result, parallel executable branch instructions and integer operation instructions that do not conflict with each other in computer resources such as instruction execution units and registers in the object code. And search for floating-point arithmetic instructions that are not consecutive. If they are consecutive, in order to execute those instructions in parallel, insert an undefined instruction in which the first 4 bits are all 1's in front of the instruction sequence, and further in the least significant 4 bits of the instruction word. Write the number of instructions that can be executed in parallel. For example, 0011 indicates that the following three instructions can be executed in parallel.

【0010】図2および図3はこの様子を示す命令列お
よび未定義命令を示す図である。図2において、n番地
からn+2番地の命令は整数命令,浮動少数点命令およ
び分岐命令でそれぞれ独立した命令実行ユニットを持っ
ているため互いに演算ユニットは競合しない。もし、レ
ジスタなどの資源でも競合しなければそれらは並列実行
可能である。この場合、コンパイラは図3のような未定
義命令語を生成する。本実施例では未定義命令語が先頭
にくる並列実行可能な命令列のことを命令ブロックと呼
ぶ。図2のn番地からn+2番地までの命令語に対して
コンパイラが生成する命令ブロックを図4に示す。
2 and 3 are diagrams showing an instruction sequence and undefined instructions showing this state. In FIG. 2, the instructions from addresses n to n + 2 have independent instruction execution units for integer instructions, floating point instructions, and branch instructions, so that the arithmetic units do not compete with each other. If resources such as registers do not compete, they can be executed in parallel. In this case, the compiler generates an undefined instruction word as shown in FIG. In this embodiment, an instruction string in which an undefined instruction word comes first and which can be executed in parallel is called an instruction block. FIG. 4 shows instruction blocks generated by the compiler for the instruction words from address n to address n + 2 in FIG.

【0011】条件分岐命令の条件が成立しなかった場合
にその命令ブロックに含まれる他の命令の実行結果をキ
ャンセルする例を図5,図6および図7に示す。図は命
令語の例を表しており、複数の命令語を点線で囲んだ部
分は並列実行可能な命令ブロックを表している。ここ
で、命令ブロックの先頭の未定義命令語は記述されてい
ない。図5の例はキャンセル機能のない場合の命令ブロ
ックの様子を示している。命令ブロック2は並列に実行
できる命令がなくて分岐命令1個から構成されている。
したがって、図5の例では命令ブロック1から始まって
命令ブロック2の条件が成立して命令ブロック3を経て
命令ブロック4に至るまで4命令ブロックの実行が必要
となる。
An example of canceling the execution result of another instruction included in the instruction block when the condition of the conditional branch instruction is not satisfied is shown in FIGS. 5, 6 and 7. The figure shows an example of an instruction word, and a portion enclosing a plurality of instruction words with a dotted line represents an instruction block that can be executed in parallel. Here, the undefined instruction word at the head of the instruction block is not described. The example of FIG. 5 shows the state of the instruction block when there is no cancel function. The instruction block 2 is composed of one branch instruction without any instruction that can be executed in parallel.
Therefore, in the example of FIG. 5, it is necessary to execute four instruction blocks from the instruction block 1 until the condition of the instruction block 2 is satisfied and then the instruction block 3 to the instruction block 4 is reached.

【0012】一方、本実施例にあるように条件分岐命令
で分岐が成立しなかった場合にその命令ブロックに含ま
れる他の命令を実行をキャンセルする機能がある計算機
では図6の例のように図5にあった命令ブロック2と命
令ブロック3を1つにまとめることができる。図5の命
令ブロック3は命令ブロック2の分岐命令の条件が成立
した場合にのみ実行される。したがって本実施例の実行
キャンセル機能を使うことにより図5の命令ブロック3
を命令ブロック2に含めることができる。このようにす
ることによって、命令ブロック1から命令ブロック4ま
でを3個の命令ブロックで実行することができる。命令
ブロックに含まれる命令は並列に実行可能であるので、
1つの命令ブロックは1マシンサイクルで実行すること
ができる。したがって図6は図5よりも1マシンサイク
ル短い時間で同じ命令を実行することができる。
On the other hand, in the computer having the function of canceling the execution of the other instruction included in the instruction block when the branch is not taken by the conditional branch instruction as in the present embodiment, as shown in the example of FIG. The instruction block 2 and the instruction block 3 shown in FIG. 5 can be combined into one. The instruction block 3 of FIG. 5 is executed only when the condition of the branch instruction of the instruction block 2 is satisfied. Therefore, by using the execution cancel function of this embodiment, the instruction block 3 in FIG.
Can be included in instruction block 2. By doing so, the instruction blocks 1 to 4 can be executed by three instruction blocks. Since the instructions contained in the instruction block can be executed in parallel,
One instruction block can be executed in one machine cycle. Therefore, FIG. 6 can execute the same instruction in a time shorter than that of FIG. 5 by one machine cycle.

【0013】本実施例のコンパイラは図6の命令列の新
命令ブロック2に対しては図7のような命令ブロックを
オブジェクトコードとして生成する。ここでは、先頭の
未定義命令語の実行キャンセル指定のフィールドには、
もし条件分岐命令の条件が設立しない場合には2番目と
3番目の命令の実行結果をキャンセルするという意味の
指定の011というビット列が挿入される。この3ビッ
ト長のビット列はそれぞれビットがその命令ブロックに
含まれる並列実行可能な命令語(本実施例では最大3命
令が並列実行可能)に対応していて、そのビットの値が
1であれば、その命令ブロックに含まれている条件分岐
命令の条件が成立しない場合に対応する命令語の実行結
果をキャンセルすることを意味としている。0の場合は
その命令の実行結果はキャンセルされない。図7の命令
ブロックでは条件が成立しない場合には、その命令ブロ
ックに含まれる整数命令と浮動少数点の実行がキャンセ
ルされる。
The compiler of this embodiment generates an instruction block as shown in FIG. 7 as an object code for the new instruction block 2 of the instruction string shown in FIG. Here, in the field of execution cancellation designation of the undefined instruction word at the beginning,
If the condition of the conditional branch instruction is not established, a bit string of 011 is inserted, which means that the execution results of the second and third instructions are canceled. Each bit string of this 3-bit length corresponds to an instruction word that can be executed in parallel (maximum 3 instructions can be executed in parallel in this embodiment) included in the instruction block, and if the value of the bit is 1, , If the condition of the conditional branch instruction included in the instruction block is not satisfied, the execution result of the corresponding instruction word is canceled. When it is 0, the execution result of the instruction is not canceled. If the condition is not satisfied in the instruction block of FIG. 7, the execution of the integer instruction and the floating point included in the instruction block is canceled.

【0014】以下では図7の命令ブロックを例にとって
本発明による並列命令実行方式が命令を実行ユニットに
発行する様子を説明する。本実施例では命令伝達手段4
はつぎに実行されるべき命令から始まる連続する4命令
を並列情報デコードユニット2および命令デコード発行
ユニット3に出力している。ここでまず、並列命令実行
制御レジスタ12の値が1にセットされている状態を想
定する。この場合、並列命令実行は有効化されている。
並列情報デコードユニット2は図7の命令ブロックの先
頭の未定義命令Aをデコードして「後続する命令は並列
実行可能であり、並列実行可能な命令列の長さは3(図
7のB〜Dの3命令)で、その内2番目と3番目の命令
は条件分岐不成立時は演算結果がキャンセルされる」旨
を並列命令発行信号5および命令キャンセル信号6で命
令デコート発行ユニット3,整数演算ユニット9および
浮動少数点演算ユニット10に伝達する。分岐命令実行
ユニット8でこのユニットでの命令実行結果は分岐条件
によってキャンセルされることはないので、命令キャン
セル信号6はキャンセルの指定を整数演算ユニット9お
よび浮動少数点演算ユニット10にのみ伝達する。
The parallel instruction execution method according to the present invention issues an instruction to an execution unit using the instruction block of FIG. 7 as an example. In this embodiment, the command transmission means 4
Outputs four consecutive instructions starting from the instruction to be executed next to the parallel information decoding unit 2 and the instruction decoding issuing unit 3. First, assume that the value of the parallel instruction execution control register 12 is set to 1. In this case, parallel instruction execution is enabled.
The parallel information decoding unit 2 decodes the undefined instruction A at the head of the instruction block in FIG. 7 and reads “The following instruction can be executed in parallel, and the length of the instruction sequence that can be executed in parallel is 3 (from B to B in FIG. 7). 3 instructions of D), of which the second and third instructions cancel the operation result when the conditional branch is not satisfied. "With parallel instruction issue signal 5 and instruction cancel signal 6 It is transmitted to the unit 9 and the floating point arithmetic unit 10. Since the instruction execution result in this unit in the branch instruction execution unit 8 is not canceled by the branch condition, the instruction cancel signal 6 transmits the cancellation designation only to the integer arithmetic unit 9 and the floating point arithmetic unit 10.

【0015】命令デコート発行ユニット3ではこれにし
たがって命令伝達手段4で入力された命令列からB〜D
の3命令を取り出しデコードし、デコード結果を命令伝
達手段7で分岐命令実行ユニット8,整数演算ユニット
9および浮動少数点演算ユニット10に出力する。図7
の分岐命令Bが分岐命令実行ユニット8に、整数命令C
が整数演算ユニット9に、浮動少数点命令Dが浮動少数
点演算ユニット10に出力される。このように3個の命
令が同時に演算ユニットに発行され並列に実行される。
In the command decort issuing unit 3, B to D are read from the command sequence input by the command transmitting means 4 accordingly.
3 instructions are taken out and decoded, and the decoding result is outputted to the branch instruction execution unit 8, integer operation unit 9 and floating point operation unit 10 by the instruction transfer means 7. Figure 7
Branch instruction B of branch instruction execution unit 8 to integer instruction C
Is output to the integer arithmetic unit 9 and the floating point instruction D is output to the floating point arithmetic unit 10. In this way, three instructions are simultaneously issued to the arithmetic units and executed in parallel.

【0016】分岐命令実行ユニット8では分岐命令の条
件を判定しその結果を条件分岐信号11で整数演算ユニ
ット9および浮動少数点演算ユニット10に伝達する。
整数演算ユニット9では命令キャンセル信号6で条件不
成立時にはCの命令演算結果をキャンセルするように浮
動少数点演算ユニット10で命令キャンセル信号6で条
件不成立にはDの命令演算結果をキャンセルするように
指示されているので、もし、条件分岐信号11で条件が
成立しなければ、それぞれのユニットは演算結果をレジ
スタに格納せずに命令の実行をキャンセルする。条件が
成立すれば、演算結果は格納され、結果は生き残る。
The branch instruction execution unit 8 judges the condition of the branch instruction and transmits the result to the integer arithmetic unit 9 and the floating point arithmetic unit 10 by the conditional branch signal 11.
In the integer arithmetic unit 9, the instruction cancel signal 6 cancels the instruction operation result of C when the condition is not satisfied. The floating point arithmetic unit 10 instructs the instruction cancel signal 6 to cancel the instruction operation result of D when the condition is not satisfied. Therefore, if the condition is not satisfied by the conditional branch signal 11, each unit cancels the execution of the instruction without storing the operation result in the register. If the condition is met, the operation result is stored and the result survives.

【0017】つぎに並列命令実行制御レジスタ12の値
が0の場合を考える。この場合並列命令実行は無効化さ
れる。並列情報デコードユニット2は並列命令実行制御
伝達信号13で並列命令実行が無効化されていることを
知り、未定義命令語に埋め込まれた並列実行情報を無視
して並列命令実行指示を並列命令発行信号5および命令
キャンセル信号6で伝えない。この場合、未定義命令語
は無視されて、それ以外の命令は並列に実行されること
なく逐次1命令づつ実行される。この無効化制御機能は
本計算機のハードウエアのデバッグの時などに使用され
る。並列情報デコードユニット2および命令デコート発
行ユニット3に入力された命令に未定義命令が含まれて
いない場合には並列命令実行制御レジスタの内容にかか
わらず命令は逐次1命令づつ実行される。
Next, consider the case where the value of the parallel instruction execution control register 12 is 0. In this case, parallel instruction execution is invalidated. The parallel information decoding unit 2 knows that the parallel instruction execution is disabled by the parallel instruction execution control transmission signal 13, and ignores the parallel execution information embedded in the undefined instruction word and issues a parallel instruction execution instruction. Not transmitted by signal 5 and instruction cancel signal 6. In this case, the undefined instruction word is ignored, and the other instructions are sequentially executed one by one without being executed in parallel. This invalidation control function is used when debugging the hardware of this computer. When the instructions input to the parallel information decoding unit 2 and the instruction decode issuing unit 3 do not include undefined instructions, the instructions are sequentially executed one by one regardless of the contents of the parallel instruction execution control register.

【0018】[0018]

【発明の効果】以上、説明したように本発明は後続する
命令列が並列実行可能かどうか、可能であればどの命令
が並列実行可能かはコンパイラが判断しその結果を命令
列の中に格納することができるので、命令デコードユニ
ットのハードウエアを複雑にすることなく並列実行可能
な命令を複数個演算ユニットに発行することができる。
さらに本方式では分岐命令の後続の命令語まで含めて並
列実行可能な命令を探すことができるので、演算ユニッ
トの使用効率が向上し、計算機全体の命令実行性能を向
上させることができる。
As described above, according to the present invention, the compiler determines whether the succeeding instruction sequence can be executed in parallel, and if so, which instruction can be executed in parallel, and stores the result in the instruction sequence. Therefore, it is possible to issue a plurality of instructions that can be executed in parallel to the arithmetic unit without complicating the hardware of the instruction decoding unit.
Further, in this method, it is possible to search for an instruction that can be executed in parallel including the instruction word subsequent to the branch instruction, so that the usage efficiency of the arithmetic unit is improved and the instruction execution performance of the entire computer can be improved.

【0019】本発明では既存の計算機の未定義命令語を
使って並列命令実行情報を格納できるので、従来、計算
機との互換性を保ちながら並列命令実行可能な計算機を
実現することができる。また、本発明では命令列の並列
実行可能性をコイパイラが判断するので、例えば、並列
実行可能な命令数や演算ユニットの種類が多い、より複
雑な条件で並列実行可能性を判断しなければならない構
成の計算機でも本方式を応用することができる。
In the present invention, since the parallel instruction execution information can be stored by using the undefined instruction word of the existing computer, it is possible to realize the computer which can execute the parallel instruction while maintaining the compatibility with the conventional computer. Further, in the present invention, since the carpilla determines the parallel executability of the instruction sequence, it is necessary to determine the parallel executability under more complicated conditions, for example, the number of instructions that can be executed in parallel and the number of operation units are large. This method can be applied to a computer with a configuration.

【0020】本発明では条件分岐命令の条件判定に応じ
て並列実行される命令の結果をキャンセルすることがで
きる。その結果、本実施例の図5および図6に示すよう
な場合でもコンパイラが命令ブロックに並列実行可能な
命令を探し出して埋めることができ、実行ユニットの使
用効率を向上させ、性能を向上させることができる。
According to the present invention, the result of the instruction executed in parallel can be canceled according to the condition judgment of the conditional branch instruction. As a result, even in the case shown in FIG. 5 and FIG. 6 of the present embodiment, the compiler can find and fill the instruction block with the instructions that can be executed in parallel, and improve the use efficiency of the execution unit and improve the performance. You can

【0021】本発明に含まれる並列命令実行制御レジス
タに相当する機能、すなわち計算機使用者がソフトウェ
ア制御で容易に並列命令実行を有効化および無効化でき
る機能は、本発明のような並列命令実行可能を実現する
計算機においてソフトウェアの開発を効率良く行う上で
非常に有効な機能である。特に独立ソフトウェアベンダ
ーがプログラムを開発するような最近のオープンシステ
ム環境を構築するための計算機では不可欠な機能であ
る。
The function corresponding to the parallel instruction execution control register included in the present invention, that is, the function by which the computer user can easily enable and disable the parallel instruction execution under software control can execute the parallel instruction execution as in the present invention. This is a very effective function for efficient software development in a computer that realizes. In particular, it is an indispensable function in the computer for building the recent open system environment where independent software vendors develop programs.

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

【図1】本発明による並列命令実行方式の実施例を示す
ブロック図である。
FIG. 1 is a block diagram showing an embodiment of a parallel instruction execution system according to the present invention.

【図2】命令列の例を示す図である。FIG. 2 is a diagram showing an example of an instruction sequence.

【図3】並列命令実行情報を含んだ未定義命令語の例を
示す図である。
FIG. 3 is a diagram showing an example of an undefined instruction word including parallel instruction execution information.

【図4】並列実行命令可能な命令ブロックの例を示す図
である。
FIG. 4 is a diagram showing an example of an instruction block capable of executing a parallel execution instruction.

【図5】キャンセル指定分岐命令の例を示す図で、キャ
ンセル機能のない場合の命令ブロックの様子を示してい
る。
FIG. 5 is a diagram showing an example of a cancel instruction branch instruction, showing a state of an instruction block when there is no cancel function.

【図6】キャンセル指定分岐命令の例を示す図で、キャ
ンセル機能がある場合の命令ブロックの様子を示してい
る。
FIG. 6 is a diagram showing an example of a cancel designation branch instruction, showing a state of an instruction block when there is a cancel function.

【図7】キャンセル指定ありの命令ブロックの例を示す
図である。
FIG. 7 is a diagram showing an example of an instruction block with a cancel designation.

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

1…命令バッファ 2…並列情報デコードユニット 3…命令デコート発行ユニット 4,7…命令伝達手段 5…並列命令発行信号 6…命令キャンセル信号 8…分岐命令実行ユニット 9…整数演算ユニット 10…浮動少数点演算ユニット 11…条件分岐信号 12…並列命令実行制御レジスタ 13…並列命令実行制御伝達信号 1 ... Instruction buffer 2 ... Parallel information decoding unit 3 ... Instruction code issue unit 4,7 ... Instruction transmission means 5 ... Parallel instruction issue signal 6 ... Instruction cancel signal 8 ... Branch instruction execution unit 9 ... Integer operation unit 10 ... Floating point Arithmetic unit 11 ... Conditional branch signal 12 ... Parallel instruction execution control register 13 ... Parallel instruction execution control transmission signal

Claims (2)

【特許請求の範囲】[Claims] 【請求項1】 複数の命令実行ユニットを有し、複数の
命令を並列に実行することができ、既存の計算機の命令
セットと互換性を有する計算機において、 コンパイル時の解析結果にしたがい、後続のどの命令が
並列実行可能かという情報と、その並列実行可能な複数
の命令の中に含まれている条件分岐命令の条件が成立し
なかった時に複数の並列実行可能な命令の内のどの命令
の実行結果をキャンセルするのかを指定する情報とを、
既存の計算機では未定義とされていた命令語の中に格納
する並列命令実行解析コイパイラと、 特別な命令で値が設定でき、並列命令実行制御を有効ま
たは無効化する信号を並列命令実行制御伝達手段で出力
する並列命令実行制御レジスタと、 前記並列命令実行制御伝達手段の信号を入力とし、この
信号に従い前記未定義命令語を解読し並列命令実行に関
する前記2種類の制御情報をデコードし、その結果を並
列命令発行信号と命令キャンセル信号で出力する並列情
報デコードユニットと、 前記並列命令発行信号にしたがい単一または複数の命令
を前記命令実行ユニットに発行する命令デコード発行ユ
ニットと、 前記命令キャンセル信号および条件分岐命令の実行結果
にしたがい演算結果をキャンセルことができる命令実行
ユニットと、 から構成したことを特徴とする並列命令実行方式。
1. A computer having a plurality of instruction execution units, capable of executing a plurality of instructions in parallel, and compatible with the instruction set of an existing computer, according to the analysis result at the time of compilation, Information about which instruction can be executed in parallel, and which of the multiple instructions that can be executed in parallel when the condition of the conditional branch instruction included in the multiple instructions that can be executed in parallel is not satisfied. Information that specifies whether to cancel the execution result,
Parallel instruction execution analysis coiler that is stored in the instruction word that was not defined in the existing computer, and a value that can be set with a special instruction, and a signal that enables or disables parallel instruction execution control is transmitted. Means for outputting the parallel instruction execution control register and a signal from the parallel instruction execution control transmitting means, decode the undefined instruction word according to this signal, decode the two types of control information relating to parallel instruction execution, and A parallel information decoding unit that outputs a result as a parallel instruction issue signal and an instruction cancel signal; an instruction decode issue unit that issues a single or multiple instructions to the instruction execution unit according to the parallel instruction issue signal; and the instruction cancel signal. And an instruction execution unit that can cancel the operation result according to the execution result of the conditional branch instruction. Parallel instruction execution method, characterized in that configuration was.
【請求項2】前記命令実行ユニットは分岐命令実行ユニ
ットと整数演算ユニットと浮動少数点演算ユニットから
構成したことを特徴とする請求項1記載の並列命令実行
方式。
2. The parallel instruction execution system according to claim 1, wherein the instruction execution unit comprises a branch instruction execution unit, an integer arithmetic unit, and a floating point arithmetic unit.
JP4070258A 1992-02-19 1992-02-19 Parallel instruction execution method Expired - Lifetime JP2838939B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP4070258A JP2838939B2 (en) 1992-02-19 1992-02-19 Parallel instruction execution method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP4070258A JP2838939B2 (en) 1992-02-19 1992-02-19 Parallel instruction execution method

Publications (2)

Publication Number Publication Date
JPH05233283A true JPH05233283A (en) 1993-09-10
JP2838939B2 JP2838939B2 (en) 1998-12-16

Family

ID=13426344

Family Applications (1)

Application Number Title Priority Date Filing Date
JP4070258A Expired - Lifetime JP2838939B2 (en) 1992-02-19 1992-02-19 Parallel instruction execution method

Country Status (1)

Country Link
JP (1) JP2838939B2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05265755A (en) * 1992-03-24 1993-10-15 Nec Corp Parallel instruction executing system
JPH08249195A (en) * 1995-02-03 1996-09-27 Internatl Business Mach Corp <Ibm> Method and system for processing of instruction thread

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04326127A (en) * 1991-04-25 1992-11-16 Nec Corp Parallel instruction execution system
JPH04353923A (en) * 1991-05-31 1992-12-08 Nec Corp Parallel instruction execution system for electronic computer
JPH05113886A (en) * 1991-10-23 1993-05-07 Nec Corp Computer

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04326127A (en) * 1991-04-25 1992-11-16 Nec Corp Parallel instruction execution system
JPH04353923A (en) * 1991-05-31 1992-12-08 Nec Corp Parallel instruction execution system for electronic computer
JPH05113886A (en) * 1991-10-23 1993-05-07 Nec Corp Computer

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05265755A (en) * 1992-03-24 1993-10-15 Nec Corp Parallel instruction executing system
JPH08249195A (en) * 1995-02-03 1996-09-27 Internatl Business Mach Corp <Ibm> Method and system for processing of instruction thread

Also Published As

Publication number Publication date
JP2838939B2 (en) 1998-12-16

Similar Documents

Publication Publication Date Title
US4879646A (en) Data processing system with a pipelined structure for editing trace memory contents and tracing operations during system debugging
JP5512803B2 (en) Data processing apparatus and method for handling vector instructions
US6490673B1 (en) Processor, compiling apparatus, and compile program recorded on a recording medium
JP3499252B2 (en) Compiling device and data processing device
JP2928695B2 (en) Multi-thread microprocessor using static interleave and instruction thread execution method in system including the same
JP3797471B2 (en) Method and apparatus for identifying divisible packets in a multi-threaded VLIW processor
JP2864421B2 (en) Method and apparatus for simultaneous dispatch of instructions to multifunctional units
US5440747A (en) Data processor with control logic for storing operation mode status and associated method
US5812809A (en) Data processing system capable of execution of plural instructions in parallel
US5313644A (en) System having status update controller for determining which one of parallel operation results of execution units is allowed to set conditions of shared processor status word
JPH0728761A (en) Asymmetrical vector multiprocessor
US6647488B1 (en) Processor
JPH02227730A (en) Data processing system
US20020099922A1 (en) Data processing apparatus including a plurality of pipeline processing mechanisms in which memory access instructions are carried out in a memory access pipeline
EP0240606B1 (en) Pipe-line processing system and microprocessor using the system
JPH03233630A (en) Information processor
JP2838939B2 (en) Parallel instruction execution method
US7062634B1 (en) Processor and a method for handling and encoding no-operation instructions
JPH05265755A (en) Parallel instruction executing system
US20010023481A1 (en) Processor that executes control signals included in operand section of control instruction
JPH0793152A (en) Microprocessor controller
JP3097227B2 (en) calculator
JP3915019B2 (en) VLIW processor, program generation device, and recording medium
US5463747A (en) Microprogram data processor processing operand address calculation and instruction execution with common hardware
JPH04326127A (en) Parallel instruction execution system