JP2685999B2 - Parallel execution method - Google Patents

Parallel execution method

Info

Publication number
JP2685999B2
JP2685999B2 JP3172974A JP17297491A JP2685999B2 JP 2685999 B2 JP2685999 B2 JP 2685999B2 JP 3172974 A JP3172974 A JP 3172974A JP 17297491 A JP17297491 A JP 17297491A JP 2685999 B2 JP2685999 B2 JP 2685999B2
Authority
JP
Japan
Prior art keywords
instruction
instructions
value
memory
register file
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
JP3172974A
Other languages
Japanese (ja)
Other versions
JPH0520069A (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.)
PFU Ltd
Original Assignee
PFU 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 PFU Ltd filed Critical PFU Ltd
Priority to JP3172974A priority Critical patent/JP2685999B2/en
Publication of JPH0520069A publication Critical patent/JPH0520069A/en
Application granted granted Critical
Publication of JP2685999B2 publication Critical patent/JP2685999B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Advance Control (AREA)

Description

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

【0001】[0001]

【産業上の利用分野】本発明は、命令を並列に実行する
並列実行方式に関するものである。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a parallel execution system for executing instructions in parallel.

【0002】[0002]

【従来の技術】従来、複数の命令を同時に実行し、並列
性を意識する必要のない方法として、例えば特開平2−
7129号がある。これは、複数の演算装置で複数の命
令を並列に同時に実行し、その実行結果を1個の共有レ
ジスタに書き込み、次の命令でいずれの演算装置もこの
共有レジスタからその処理結果を利用可能にしたもので
ある。
2. Description of the Related Art Conventionally, as a method for executing a plurality of instructions at the same time without paying attention to parallelism, for example, Japanese Patent Laid-Open No.
There is number 7129. This means that multiple instructions can be executed simultaneously in parallel by multiple arithmetic units, the execution result can be written to one shared register, and any arithmetic unit can use the processing result from this shared register by the next instruction. It was done.

【0003】[0003]

【発明が解決しようとする課題】上述した1つの共有レ
ジスタに複数の演算装置で複数の命令を同時に処理して
その結果を格納する場合、命令間に干渉があると並列に
実行できないので、高級言語で記述されたプログラムを
命令に展開する際に並列に実行可能なように展開するよ
うにしている。このように命令間の干渉を避けるための
展開が必要となってしまうという問題がある。この問題
を解決し、並列実行性能を向上させることが望まれてい
る。
When a plurality of arithmetic units simultaneously process a plurality of instructions and store the results in the above-mentioned one shared register, the instructions cannot be executed in parallel because of interference between the instructions. When a program written in a language is expanded into instructions, it is expanded so that it can be executed in parallel. As described above, there is a problem in that expansion is required to avoid interference between instructions. It is desired to solve this problem and improve parallel execution performance.

【0004】本発明は、連続して実行されるべき命令を
同時に実行してその正当性が検証されたときにその処理
結果を反映し、並列実行を可能にすることを目的として
いる。
An object of the present invention is to enable instructions to be executed in parallel by simultaneously executing instructions to be executed successively and reflecting the processing result when the correctness is verified.

【0005】[0005]

【課題を解決するための手段】図1を参照して課題を解
決するための手段を説明する。図1において、命令解析
演算部1は、命令を読込み、レジスタファイル11やメ
モリ10を参照して実行するものである。
Means for solving the problem will be described with reference to FIG. In FIG. 1, an instruction analysis calculation unit 1 reads an instruction and executes it by referring to a register file 11 and a memory 10.

【0006】判定部8は、複数の命令解析演算部1によ
って連続する複数の命令を同時に実行した処理結果の正
当性を判定するものである。メモリ10は、命令や値を
記憶するものである。
The determination unit 8 determines the validity of the processing result obtained by simultaneously executing a plurality of consecutive instructions by the plurality of instruction analysis operation units 1. The memory 10 stores instructions and values.

【0007】レジスタファイル11は、処理結果を格納
するレジスタファイルである。
The register file 11 is a register file for storing processing results.

【0008】[0008]

【作用】本発明は、図1に示すように、複数の命令を複
数の命令解析演算部1がそれぞれレジスタファイル11
やメモリ10を参照して処理を実行し、その処理結果に
ついて判定部8が先の命令の参照先、値および後の命令
の出力先、値をもとに正当性を検証し、正当性ありのと
きに両者の処理結果をレジスタファイル11やメモリ1
0に反映し、一方、正当性なしのときに前者の処理結果
のみをレジスタファイル11やメモリ10に反映するよ
うにしている。
According to the present invention, as shown in FIG. 1, a plurality of instructions are processed by the plurality of instruction analysis operation units 1 in the register file 11 respectively.
And the memory 10 to execute the processing, and the determination unit 8 verifies the validity of the processing result based on the reference destination of the previous instruction, the value and the output destination of the subsequent instruction, and the value. At the time of, the processing result of both is registered in the register file 11 or the memory 1.
On the other hand, when there is no validity, only the former processing result is reflected in the register file 11 and the memory 10.

【0009】従って、連続して実行されるべき命令を同
時に実行してその正当性が検証されたときにその処理結
果を反映することにより、命令間にたとえ干渉があって
も正当性ありのときに同時実行して処理性能を向上させ
ることができる。
Therefore, when the instructions to be executed successively are executed at the same time and the correctness thereof is verified, the processing result is reflected, so that even if there is interference between the instructions, there is no problem. Can be simultaneously executed to improve processing performance.

【0010】[0010]

【実施例】次に、図1から図4を用いて本発明の実施例
の構成および動作を順次詳細に説明する。
Next, the structure and operation of an embodiment of the present invention will be sequentially described in detail with reference to FIGS.

【0011】図1において、命令解析演算部1は、命令
バッファ5、6から命令を読込み、この命令を解析し、
共用のレジスタファイル11、メモリ10を参照して値
を読込みんで指示された演算処理を行い、その結果(出
力先、値)をレジスタファイル11、メモリ10に格納
および判定部8に通知などするものである。ここで、演
算結果の出力先、値を判定部8に通知し、連続する命令
を同時に実行したときの同時実行性の正当性を検証する
ようにしている(図2から図4参照)。
In FIG. 1, the instruction analysis operation unit 1 reads an instruction from the instruction buffers 5 and 6, analyzes the instruction,
The shared register file 11 and the memory 10 are referred to, the values are read, the instructed arithmetic processing is performed, the result (output destination, value) is stored in the register file 11 and the memory 10, and the determination unit 8 is notified. Is. Here, the output destination and the value of the operation result are notified to the determination unit 8, and the correctness of the concurrency when the consecutive instructions are simultaneously executed is verified (see FIGS. 2 to 4).

【0012】参照記録レジスタ3、4は、命令演算部
(1)、(2)1が命令を同時実行した時の後命令の参
照先、値を記録し、判定部8に通知して連続する命令を
同時に実行したときの正当性を検証するためのものであ
る(図2から図4参照)。
The reference recording registers 3 and 4 record a reference destination and a value of a post-instruction when the instruction operation units (1) and (2) 1 simultaneously execute the instruction, notify the determination unit 8 and continue. This is for verifying the correctness when instructions are executed simultaneously (see FIGS. 2 to 4).

【0013】命令バッファ5、6は、メモリ10から連
続する同時に実行する命令をそれぞれ読み出して格納す
るものである。これら命令バッファ5、6には、PCカ
ウンタ(プログラムカウンタ)7に格納されているアド
レスの命令をメモリ10から読み出して格納、およびP
Cカウンタ7に格納されているアドレス+1(次の命令
のアドレス)の命令をメモリ10から読み出して格納す
るようにしている。
The instruction buffers 5 and 6 read out and store consecutive instructions to be executed simultaneously from the memory 10. In the instruction buffers 5 and 6, the instruction of the address stored in the PC counter (program counter) 7 is read from the memory 10 and stored, and P
The instruction at the address +1 (address of the next instruction) stored in the C counter 7 is read from the memory 10 and stored.

【0014】PCカウンタ7は、プログラムカウンタで
あって、判定部8によって連続する命令の同時実行の正
当性が検証されたときに、ここでは+2(次の次の命令
のアドレス)し、一方、正当性が検証されなかったとき
に、ここでは+1(次の命令のアドレス)するものであ
る。このPCカウンタ7に格納されたアドレスの命令を
メモリ10から読み出して命令バッファ5に格納し、+
1したアドレスから連続する次の命令をメモリ10から
読み出して命令バッファ6に格納するようにしている。
The PC counter 7 is a program counter, and when the determination unit 8 verifies the correctness of simultaneous execution of consecutive instructions, it increments by 2 (address of the next next instruction), while When the correctness is not verified, it is +1 (address of the next instruction) here. The instruction of the address stored in the PC counter 7 is read from the memory 10 and stored in the instruction buffer 5,
The next instruction consecutive from the one-address is read from the memory 10 and stored in the instruction buffer 6.

【0015】判定部8は、連続する命令を同時実行した
ときの正当性を検証するものである。ここで、同時実行
したときの正当性は、(1) 後命令が参照した参照先
(参照先アドレス)が、前命令の実行結果の出力先(格
納先アドレス)と異なる場合、(2) 後命令が参照し
た参照先が、前命令の実行結果の出力先と同一である
が、値が同じ場合のいずれかに該当するときに、正当性
有りと判定(検証)する。この(1)は、2つの連続す
る命令を同時に実行したときに、後命令が参照した参照
先と、前命令の実行結果を出力する出力先とが異なるの
で、両者の命令間には干渉がなく、同時実行できる。ま
た、(2)は、後命令が参照した参照先と、前命令の実
行結果を出力する出力先が同一であるが、後命令が参照
したときの値と、前命令が出力したときの値とが同じで
あるので、両者の間には干渉があるが、値が同じである
ので、同時に実行できる。
The determination unit 8 verifies the correctness when consecutive instructions are simultaneously executed. Here, the legitimacy of simultaneous execution is (1) after (2) when the reference destination (reference destination address) referenced by the subsequent instruction is different from the output destination (storage destination address) of the execution result of the previous instruction. When the reference destination referred to by the instruction is the same as the output destination of the execution result of the previous instruction, but the values are the same, it is determined (verified) as valid. In this (1), when two consecutive instructions are executed at the same time, the reference destination referred to by the subsequent instruction and the output destination outputting the execution result of the previous instruction are different, so there is no interference between the two instructions. No, they can be executed simultaneously. Further, in (2), although the reference destination referred to by the subsequent instruction and the output destination outputting the execution result of the previous instruction are the same, the value when the subsequent instruction refers and the value when the previous instruction outputs Since and are the same, there is interference between them, but since they have the same value, they can be executed simultaneously.

【0016】結果レジスタ9は、命令解析演算部(2)
1が実行した結果(後命令の演算結果(格納先、値))
を一時的に保持するレジスタである。メモリ10は、命
令やデータを格納するものである。
The result register 9 is used for the instruction analysis operation unit (2).
Result of execution by 1 (calculation result of subsequent instruction (storage destination, value))
Is a register for temporarily holding. The memory 10 stores instructions and data.

【0017】レジスタファイル11は、処理結果を格納
する、複数の命令解析演算部(1)、(2)などからア
クセス可能なレジスタファイルである。複数の命令解析
演算部(1)、(2)などは、この共用するレジスタフ
ァイル11を参照して演算し、その結果を格納して相互
の間でデータの授受を行って高速に処理を行うようにし
ている。
The register file 11 is a register file that stores a processing result and that can be accessed from a plurality of instruction analysis operation units (1) and (2). The plurality of instruction analysis operation units (1), (2), etc. perform an operation by referring to the shared register file 11, store the result, exchange data with each other, and perform high-speed processing. I am trying.

【0018】次に、図2を用いて具体例を詳細に説明す
る。図2の(イ)は、連続して実行しようとする命令
1、命令2の例を示す。ここで、命令1は、 A←A+B であって、変数Aの値と変数Bの値を加算し、変数Aに
格納するというものである。
Next, a concrete example will be described in detail with reference to FIG. FIG. 2A shows an example of the instruction 1 and the instruction 2 to be continuously executed. Here, the instruction 1 is A ← A + B, and the value of the variable A and the value of the variable B are added and stored in the variable A.

【0019】命令2は、 C←C+A であって、変数Cの値と変数Aの値を加算し、変数Cに
格納するというものである。
The instruction 2 is C ← C + A, and the value of the variable C and the value of the variable A are added and stored in the variable C.

【0020】図2の(ロ)は、実行手順を示す。ここ
で、実行前は、 A=5、B=0、C=5、PC=0(PCカウンタ7の
値) とする。また、1側は図1の命令解析演算部(1)1の
処理を表わし、2側は図1の命令解析演算部(2)1の
処理を表わす。
FIG. 2B shows the execution procedure. Here, before execution, A = 5, B = 0, C = 5, and PC = 0 (value of the PC counter 7). The side 1 represents the processing of the instruction analysis operation unit (1) 1 in FIG. 1, and the side 2 represents the processing of the instruction analysis operation unit (2) 1 in FIG.

【0021】ステップ:命令を読み込む。 1側:A←A+B 2側:C←C+A 参照記録レジスタ3←C、5(変数C(参照先)と、値
“5”を格納した旨を表わす、以下同じ) 参照記録レジスタ4←A、5 ステップ:命令を実行する。
Step: Read the instruction. 1 side: A ← A + B 2 side: C ← C + A Reference recording registers 3 ← C, 5 (Variable C (reference destination) and value “5” are stored, the same applies hereinafter) Reference recording register 4 ← A, Step 5: execute the instruction.

【0022】1側:A’←5(ステップの命令の演算
結果“5”を仮の変数A’の値とする、以下同じ) A←A’(仮の変数A’の値“5”を、変数Aに反映
(格納)する、以下同じ)。
1 side: A '← 5 (the operation result of the step instruction "5" is the value of the temporary variable A', the same applies hereinafter) A ← A '(the value "5" of the temporary variable A'is , (Reflected (stored) in the variable A, and the same hereinafter).

【0023】2側:C’←10 ステップ:判定部8が比較し、2つの命令の同時実行
性を検証する。ここでは、の1側の演算結果の出力先
Aが、2側の参照記録レジスタ4の内容“A、5”(参
照先A、値5)の参照先Aと一致するので、更にその値
“5”を比較し、ここでは両者が一致(即ち、ステップ
の実行前と実行後のAの値が“5”と一致)したの
で、同時実行性がOKと判定する。
2 side: C '← 10 Step: The judging section 8 compares and verifies the simultaneous executability of two instructions. Here, the output destination A of the calculation result on the 1 side matches the reference destination A of the contents “A, 5” (reference destination A, value 5) of the reference recording register 4 on the 2 side, and therefore the value “ 5 ”are compared, and both are matched here (that is, the value of A before and after execution of the step is matched with“ 5 ”), so it is determined that the concurrency is OK.

【0024】ステップ:ステップで同時実行性がO
Kと判定されたので、の2側の演算結果C’(図1の
結果レジスタ9に格納して保持した変数Cの値)を実際
のC(レジスタファイル11あるいはメモリ10上の変
数C)に反映(格納)する。また、PCカウンタ7の値
を+2し、次の次の命令のアドレスに更新する。
Step: Concurrency is O in step
Since it is determined to be K, the operation result C ′ on the side of 2 (the value of the variable C stored and held in the result register 9 of FIG. 1) is used as the actual C (variable C on the register file 11 or the memory 10). Reflect (store). Also, the value of the PC counter 7 is incremented by +2 and updated to the address of the next next instruction.

【0025】実行後は、 A=5、B=0、C=10、PC=2 となる。After execution, A = 5, B = 0, C = 10, PC = 2.

【0026】以上のように、図2の(イ)の2つの命令
を同時に実行し、前命令の結果の出力先Aが後命令の参
照先Aと同一であるが、その値が両者ともに“5”で一
致したので、2つの命令間には出力先と参照先の干渉は
あるが、値が一致し、同時実行性OKと判定されたの
で、ここでは後命令の結果を命令で指示された場所に反
映し、2つの命令を同時に実行するようにしている。
As described above, the two instructions in FIG. 2A are executed at the same time, and the output destination A of the result of the preceding instruction is the same as the reference destination A of the succeeding instruction. Since there is interference between the output destination and the reference destination between the two instructions because they match in 5 ", the values match and it is determined that the concurrency is OK. Therefore, here, the result of the subsequent instruction is instructed by the instruction. The two instructions are executed at the same time.

【0027】次に、図3の具体例について説明する。図
3の(イ)は、連続して実行しようとする命令1ないし
命令5の例を示す。図3の(ロ)および図4の(ロ)
は、実行手順を示す。ここで、実行前は、 A=5、B=0、C=5、PC=0 とする。また、1側は図1の命令解析演算部(1)1の
処理を表わし、2側は図1の命令解析演算部(2)1の
処理を表わす。
Next, the specific example of FIG. 3 will be described. FIG. 3A shows an example of the instruction 1 to the instruction 5 to be continuously executed. (B) of FIG. 3 and (b) of FIG.
Indicates an execution procedure. Before execution, A = 5, B = 0, C = 5, and PC = 0. The side 1 represents the processing of the instruction analysis operation unit (1) 1 in FIG. 1, and the side 2 represents the processing of the instruction analysis operation unit (2) 1 in FIG.

【0028】(1)1実行サイクル ステップ:命令を読み込む。 1側:A←A+B 2側:C←C+A 参照記録レジスタ3←C、5(変数C(参照先)と、値
“5”を格納) 参照記録レジスタ4←A、5 ステップ:命令を実行する。
(1) One execution cycle Step: Read an instruction. 1 side: A ← A + B 2 side: C ← C + A Reference recording register 3 ← C, 5 (stores variable C (reference destination) and value “5”) Reference recording register 4 ← A, 5 step: Execute instruction .

【0029】1側:A’←5(ステップの命令の演算
結果“5”を仮の変数A’とする) A←A’(仮の変数A’の値“5”を、変数Aに反映
(格納)する)。
1 side: A '← 5 (the calculation result "5" of the step instruction is a temporary variable A') A ← A '(the value "5" of the temporary variable A'is reflected in the variable A) (Store).

【0030】2側:C’←10 ステップ:判定部8が比較し、2つの命令の同時実行
性を検証する。ここでは、の1側の演算結果の出力先
Aが、2側の参照記録レジスタ4の内容“A、5”(参
照先A、値5)の参照先Aと一致するので、更にその値
“5”を比較し、ここでは両者が一致したので、同時実
行性がOKと判定する。
2 side: C '← 10 Step: The judging section 8 compares and verifies the simultaneous executability of two instructions. Here, the output destination A of the calculation result on the 1 side matches the reference destination A of the contents “A, 5” (reference destination A, value 5) of the reference recording register 4 on the 2 side, and therefore the value “ 5 ”are compared, and both are coincident with each other here, so it is determined that the concurrency is OK.

【0031】ステップ:ステップで同時実行性がO
Kと判定されたので、の2側の演算結果C’を実際の
C(レジスタファイル11あるいはメモリ10上の変数
C)に反映(格納)する。また、PCカウンタ7の値を
+2し、次の次の命令のアドレスに更新する。
Step: A step has a concurrency of O.
Since it is determined to be K, the calculation result C ′ on the second side of is reflected (stored) in the actual C (variable C on the register file 11 or the memory 10). Also, the value of the PC counter 7 is incremented by +2 and updated to the address of the next next instruction.

【0032】実行後は、A=5、B=0、C=10、P
C=2(同時実行性がOKであったので、前命令および
後命令の分として+2したものである)となる。
After execution, A = 5, B = 0, C = 10, P
C = 2 (since the concurrency was OK, it is +2 as the amount of the preceding instruction and the succeeding instruction).

【0033】(2)1実行サイクル ステップ:命令を読み込む。 1側:B←B−1 2側:C←C+B 参照記録レジスタ3←C、10(変数C(参照先)と、
値“10”を格納) 参照記録レジスタ4←B、0 ステップ:命令を実行する。
(2) One execution cycle Step: Read an instruction. 1 side: B ← B-1 2 side: C ← C + B Reference recording registers 3 ← C, 10 (variable C (reference destination),
Store value "10") Reference recording register 4 ← B, 0 Step: Execute instruction.

【0034】1側:B’←−1(ステップの命令の演
算結果“−1”を仮の変数B’とする) B←B’(仮の変数B’の値“−1”を、変数Bに反映
(格納)する)。
1 side: B '← -1 (the calculation result "-1" of the step instruction is a temporary variable B') B ← B '(the value "-1" of the temporary variable B'is a variable Reflected (stored) in B).

【0035】2側:C’←10 ステップ:判定部8が比較し、2つの命令の同時実行
性を検証する。ここでは、の1側の演算結果の出力先
Bが、2側の参照記録レジスタ4の内容“B、0”(参
照先B、値0)の参照先Bと一致するので、更にその値
“0”を比較し、ここでは両者が一致しないので、同時
実行性がNGと判定する。
2 side: C '← 10 Step: The judging section 8 compares and verifies the simultaneous executability of two instructions. Here, the output destination B of the operation result on the 1 side coincides with the reference destination B of the content “B, 0” (reference destination B, value 0) of the reference recording register 4 on the 2 side, and therefore the value “ 0 "is compared, and both do not match here, so it is determined that the concurrency is NG.

【0036】ステップ:ステップで同時実行性がN
Gと判定されたので、の2側の演算結果C’を実際の
C(レジスタファイル11あるいはメモリ10上の変数
C)に反映(格納)しない。そして、PCカウンタ7の
値を+1し、次の命令のアドレスに更新する。
Step: A step has concurrency N
Since it is determined to be G, the calculation result C ′ on the 2 side is not reflected (stored) in the actual C (variable C in the register file 11 or the memory 10). Then, the value of the PC counter 7 is incremented by 1 and updated to the address of the next instruction.

【0037】実行後は、A=5、B=−1、C=10、
PC=3(同時実行性がNGであったので前命令の分の
み+1したものである)となる。
After execution, A = 5, B = -1, C = 10,
PC = 3 (because the concurrency is NG, only the previous instruction is incremented by 1).

【0038】(3)1実行サイクル(図4の(ロ)) ステップ:命令を読み込む。 1側:C←C+B 2側:A←A−1 参照記録レジスタ3←A、5(変数A(参照先)と、値
“5”を格納) ステップ:命令を実行する。
(3) One execution cycle ((b) in FIG. 4) Step: Read an instruction. 1 side: C ← C + B 2 side: A ← A-1 Reference recording registers 3 ← A, 5 (store variable A (reference destination) and value “5”) Step: Execute instruction.

【0039】1側:C’←9(ステップの命令の演算
結果“9”を仮の変数A’とする) A←A’(仮の変数A’の値“9”を、変数Aに反映
(格納)する)。
1 side: C '← 9 (calculate the operation result of the step instruction "9" as a temporary variable A') A ← A '(reflect the value "9" of the temporary variable A'in the variable A (Store).

【0040】2側:A’←4 ステップ:判定部8が比較し、2つの命令の同時実行
性を検証する。ここでは、の1側の演算結果の出力先
Cが、2側の参照記録レジスタ4の内容“A、5”(参
照先A、値5)の参照先Aと一致しないので、依存関係
なしであり、同時実行性がOKと判定する。
2 side: A '← 4 Step: The judging section 8 compares and verifies the simultaneous executability of two instructions. Here, since the output destination C of the calculation result on the 1 side does not match the reference destination A of the contents “A, 5” (reference destination A, value 5) of the reference recording register 4 on the 2 side, there is no dependency. Yes, the concurrency is determined to be OK.

【0041】ステップ:ステップで同時実行性がO
Kと判定されたので、の2側の演算結果A’を実際の
A(レジスタファイル11あるいはメモリ10上の変数
A)に反映(格納)する。また、PCカウンタ7の値を
+2し、次の次の命令のアドレスに更新する。
Step: Concurrency is O in step
Since it is determined to be K, the calculation result A ′ on the second side is reflected (stored) in the actual A (register file 11 or variable A in the memory 10). Also, the value of the PC counter 7 is incremented by +2 and updated to the address of the next next instruction.

【0042】実行後は、A=4、B=−1、C=9、P
C=5(同時実行性がOKであったので、前命令および
後命令の分として+2したものである)となる。
After execution, A = 4, B = -1, C = 9, P
C = 5 (because the concurrency was OK, it is +2 as the amount of the preceding instruction and the succeeding instruction).

【0043】[0043]

【発明の効果】以上説明したように、本発明によれば、
連続して実行されるべき命令を同時に実行してその正当
性が検証されたときにその処理結果を反映する構成を採
用しているため、命令間にたとえ干渉があっても正当性
ありのときに同時実行して実行性能を向上させることが
できる。これにより、従来の前命令の出力先が後命令の
参照先の場合には両者の間に干渉性(依存関係)有りと
して同時に実行できなかったが、本発明ではこの干渉性
がある場合でも、両者の間の値が一致して正当性がOK
と判定されたときに同時実行し、実行性能を向上させる
ことができる。
As described above, according to the present invention,
When the instructions that should be executed in succession are executed at the same time and the correctness is verified, the processing result is reflected. It is possible to improve the execution performance by executing both simultaneously. As a result, when the output destination of the previous instruction is the reference destination of the subsequent instruction, it cannot be executed at the same time because there is coherence (dependency) between the two. The values between the two match and the validity is OK
It is possible to improve the execution performance by executing them simultaneously when it is determined that.

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

【図1】本発明の1実施例構成図である。FIG. 1 is a configuration diagram of one embodiment of the present invention.

【図2】本発明の具体例説明図(その1)である。FIG. 2 is a diagram (part 1) for explaining a specific example of the present invention.

【図3】本発明の具体例説明図(その2)である。FIG. 3 is a diagram (part 2) for explaining a specific example of the present invention.

【図4】本発明の具体例説明図(その3)である。FIG. 4 is a diagram (part 3) for explaining a specific example of the present invention.

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

1:命令解析演算部 3、4:参照記録レジスタ 5、6:命令バッファ 7:PCカウンタ(プログラムカウンタ) 8:判定部 9:結果レジスタ 10:メモリ 11:レジスタファイル 1: Instruction analysis calculation unit 3, 4: Reference recording register 5, 6: Instruction buffer 7: PC counter (program counter) 8: Judgment unit 9: Result register 10: Memory 11: Register file

Claims (1)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】命令を並列に実行する並列実行方式におい
て、 処理結果を格納するレジスタファイル(11)と、 命令を読込み、上記レジスタファイル(11)やメモリ
を参照して実行する、複数の命令解析演算部(1)と、 これら複数の命令解析演算部(1)によって連続する複
数の命令を同時に実行した処理結果の正当性を判定する
判定部(8)とを備え、 複数の命令を上記複数の命令解析演算部(1)がレジス
タファイル(11)やメモリを参照して処理を並列実行
し、これらの処理結果について上記判定部(8)が先の
命令の出力先、処理結果の値および後の命令の参照先、
処理結果の値をもとに正当性を検証し、正当性ありのと
きに両者の処理結果を上記レジスタファイル(11)や
メモリに反映し、一方、正当性なしのときに前者の処理
結果のみを上記レジスタファイル(11)やメモリに反
映するように構成したことを特徴とする並列実行方式。
1. A parallel execution method for executing instructions in parallel, a register file (11) for storing a processing result, and a plurality of instructions for reading the instructions and executing the instructions by referring to the register file (11) and a memory. An analysis operation unit (1) and a determination unit (8) for determining the correctness of a processing result obtained by simultaneously executing a plurality of continuous instructions by the plurality of instruction analysis operation units (1) are provided, A plurality of instruction analysis operation units (1) execute processes in parallel with reference to the register file (11) and the memory, and the determination unit (8) outputs the output destination of the previous instruction and the value of the processing result with respect to these processing results. And the reference of the later instruction ,
Validity is verified based on the value of the processing result, and when there is validity, both processing results are reflected in the register file (11) and the memory, while when there is no validity, only the former processing result A parallel execution method characterized in that is configured to be reflected in the register file (11) and the memory.
JP3172974A 1991-07-15 1991-07-15 Parallel execution method Expired - Fee Related JP2685999B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3172974A JP2685999B2 (en) 1991-07-15 1991-07-15 Parallel execution method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3172974A JP2685999B2 (en) 1991-07-15 1991-07-15 Parallel execution method

Publications (2)

Publication Number Publication Date
JPH0520069A JPH0520069A (en) 1993-01-29
JP2685999B2 true JP2685999B2 (en) 1997-12-08

Family

ID=15951818

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3172974A Expired - Fee Related JP2685999B2 (en) 1991-07-15 1991-07-15 Parallel execution method

Country Status (1)

Country Link
JP (1) JP2685999B2 (en)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5932045A (en) * 1982-08-16 1984-02-21 Hitachi Ltd Information processor
JPH0810430B2 (en) * 1986-11-28 1996-01-31 株式会社日立製作所 Information processing device
JP2878792B2 (en) * 1990-06-22 1999-04-05 株式会社東芝 Electronic computer

Also Published As

Publication number Publication date
JPH0520069A (en) 1993-01-29

Similar Documents

Publication Publication Date Title
JP2818249B2 (en) Electronic computer
JP2685999B2 (en) Parallel execution method
JPH10143365A (en) Parallel processing device and its command issuing system
JPH09212360A (en) Data processor
JPH07152694A (en) Synchronizing device for barrier of multiprocessor system
JP2812610B2 (en) Pipeline control method
JPH06124207A (en) Sub-routine branching instruction execution method
JP2883465B2 (en) Electronic computer
JPH0578053B2 (en)
JP3693873B2 (en) Mask bit number arithmetic unit, vector processing unit, information processing unit
JPS59158442A (en) Instruction read control system
JPS6250867B2 (en)
JP2591325B2 (en) Branch control device
JPH0248733A (en) Information processor
JPS61131047A (en) Pipeline controlling system
JPH01231126A (en) Information processor
JPH02151930A (en) Storage buffer managing system
JP2001014160A (en) Information processor
JP2597744B2 (en) Branch control method
JPS59158441A (en) Pipeline control system
JPS6336337A (en) Merged scheduling processing system for scalar/vector instruction
JPS6020245A (en) Instruction control circuit of data processor
JPS60198640A (en) Pipeline type information processor
JPH02254541A (en) Control system for conditional branch instruction
JPS61195429A (en) Arithmetic processing unit

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees