JPH04353923A - Parallel instruction execution system for electronic computer - Google Patents

Parallel instruction execution system for electronic computer

Info

Publication number
JPH04353923A
JPH04353923A JP3129002A JP12900291A JPH04353923A JP H04353923 A JPH04353923 A JP H04353923A JP 3129002 A JP3129002 A JP 3129002A JP 12900291 A JP12900291 A JP 12900291A JP H04353923 A JPH04353923 A JP H04353923A
Authority
JP
Japan
Prior art keywords
instruction
parallel
instructions
unit
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.)
Pending
Application number
JP3129002A
Other languages
Japanese (ja)
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 JP3129002A priority Critical patent/JPH04353923A/en
Publication of JPH04353923A publication Critical patent/JPH04353923A/en
Pending legal-status Critical Current

Links

Abstract

PURPOSE:To execute instructions in parallel without complicating the hardware of a control part decoding the instruction and issuing the instruction. CONSTITUTION:A compiler searches a continuous integer operation instruction and a floating point arithmetic instruction, which do not use the same register, among object codes obtained by compiling a source program. If such an instruction string exists, the prescribed instruction including the number of the instructions is inserted before the instruction string for executing the instructions in parallel. When the prescribed instruction is received from a buffer, a unit 2 extracts the number of the instructions and informs a unit 3 of it. The unit 3 receives the informed number of the instructions from a buffer 1 and an integer operation unit 6 and a floating point arithmetic unit 7 are made to execute them in parallel.

Description

【発明の詳細な説明】[Detailed description of the invention]

【0001】0001

【産業上の利用分野】本発明は、電子計算機において命
令を並列に実行するための方式に関するものである。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a method for executing instructions in parallel in an electronic computer.

【0002】0002

【従来の技術】命令を並列に実行する従来の電子計算機
では、命令の実行時にハードウェア資源に対する競合を
意識しながら複数命令の実行の可否を判断していた。例
えば、整数演算ユニットと浮動小数点演算ユニットとを
一つずつを有する電子計算機では、連続する2つの命令
が整数演算命令と浮動小数点演算命令であれば、その2
つの命令は並列に実行できるが、連続する2つの命令が
共に整数演算命令であったり、あるいは浮動小数点演算
命令である場合には、演算ユニットに対する競合が発生
するため、一度に一つの命令しか実行できない。従って
、命令の実行に先だって複数命令の並列実行の可否を判
断する必要があり、従来はその判断をハードウェアによ
り行っていた。
2. Description of the Related Art Conventional electronic computers that execute instructions in parallel judge whether or not multiple instructions can be executed while being aware of competition for hardware resources when executing instructions. For example, in an electronic computer that has one integer arithmetic unit and one floating point arithmetic unit, if two consecutive instructions are an integer arithmetic instruction and a floating point arithmetic instruction, the two
Two instructions can be executed in parallel, but if two consecutive instructions are both integer arithmetic instructions or floating point arithmetic instructions, contention for the arithmetic unit will occur, so only one instruction can be executed at a time. Can not. Therefore, before executing an instruction, it is necessary to determine whether multiple instructions can be executed in parallel, and conventionally, this determination has been made by hardware.

【0003】0003

【発明が解決しようとする課題】このように従来の電子
計算機では、複数命令の並列実行の可否をハードウェア
によって判断していたため、命令デコードおよび命令発
行(ディスパッチ)を行う制御部のハードウェア量が多
くなり、その部分の回路遅延は大きいものとなっていた
。従って、基本クロックの周期を短くすることができず
、高速化を計れないという問題があった。また、並列に
命令を実行する命令実行ユニットの数がさらに増えた場
合には、並列実行の可否を判断するための処理が複雑と
なり、それをハードウェアによって行うことは困難にな
ることが予想される。
[Problems to be Solved by the Invention] In conventional electronic computers, the ability to execute multiple instructions in parallel was determined by hardware, so the amount of hardware required for the control unit that decodes and issues instructions (dispatch) The number of circuits increases, and the circuit delay in that part becomes large. Therefore, there is a problem in that it is not possible to shorten the period of the basic clock, and it is not possible to increase the speed. Furthermore, if the number of instruction execution units that execute instructions in parallel increases further, the processing for determining whether parallel execution is possible will become complex, and it is expected that it will be difficult to perform this process using hardware. Ru.

【0004】本発明の目的は、このような問題を解決し
、命令デコードおよび命令発行を行う制御部のハードウ
ェアを複雑にすることなく命令の並列実行を可能とする
電子計算機の並列命令実行方式を提供することにある。
SUMMARY OF THE INVENTION An object of the present invention is to provide a parallel instruction execution method for an electronic computer that solves these problems and enables parallel execution of instructions without complicating the hardware of a control unit that decodes and issues instructions. Our goal is to provide the following.

【0005】[0005]

【課題を解決するための手段】本発明は、複数の命令実
行ユニットを備え、複数の命令を並列に実行する電子計
算機のための並列命令実行方式において、命令列を生成
し、並列に実行可能な複数の命令からなる命令列の前に
、前記並列に実行可能な命令の数の情報を含む所定の命
令を挿入するコンパイラ手段と、このコンパイラ手段が
生成した前記命令列を保持する記憶手段と、この記憶手
段から前記所定の命令を受け取ったとき、その命令に含
まれる前記数の情報にもとづいて、並列に実行可能な命
令の数を示す所定の情報を出力する並列情報デコードユ
ニットと、このデコードユニットから前記所定の情報を
受け取ったとき、その情報が示す数と同数の命令を前記
記憶手段から受け取り、それらを前記複数の命令実行ユ
ニットに発行して各命令を並列に実行させる命令デコー
ド発行ユニットとを設けることを特徴とする。
[Means for Solving the Problems] The present invention is a parallel instruction execution method for an electronic computer that is equipped with a plurality of instruction execution units and executes a plurality of instructions in parallel, in which a string of instructions is generated and can be executed in parallel. a compiler means for inserting a predetermined instruction including information on the number of instructions that can be executed in parallel before an instruction string consisting of a plurality of instructions; and a storage means for holding the instruction string generated by the compiler means. , a parallel information decoding unit that outputs predetermined information indicating the number of instructions that can be executed in parallel based on the information on the number of instructions included in the instruction when the predetermined instruction is received from the storage means; When the predetermined information is received from the decoding unit, the same number of instructions as the information indicates is received from the storage means, and the instructions are issued to the plurality of instruction execution units to execute each instruction in parallel. It is characterized by having a unit.

【0006】[0006]

【実施例】次に本発明の実施例について図面を参照して
説明する。図1に本発明の並列命令実行方式にもとづく
電子計算機の一例の要部を示す。本実施例では簡単のた
め、命令実行ユニットとして一つの整数演算ユニットと
一つの浮動小数点演算ユニットとを備えているものとす
る。この電子計算機のコンパイラは次のような機能をも
っている。すなわち、コンパイラはソースプログラムを
コンパイルして得られたオブジェクトコードの中で、連
続する整数演算命令および浮動小数点演算命令であって
、同一のレジスタを使用しないものを捜す。もしそのよ
うな命令列があれば、それらの命令を並列に実行させる
ため、その命令列の前に、図2に示すような命令を挿入
する。すなわち、命令コード部である先頭の4ビットは
すべて“4”であり、最下位の4ビットは“0010”
である命令を挿入する。この最下位の4ビットは後続の
2つの命令が並列実行可能であることを示している。な
お、命令コード“1111”は、この電子計算機では本
来未定義の命令コードであるとする。
Embodiments Next, embodiments of the present invention will be described with reference to the drawings. FIG. 1 shows the main parts of an example of an electronic computer based on the parallel instruction execution system of the present invention. In this embodiment, for simplicity, it is assumed that the instruction execution unit includes one integer arithmetic unit and one floating point arithmetic unit. The compiler of this electronic computer has the following functions. That is, the compiler searches for consecutive integer arithmetic instructions and floating point arithmetic instructions that do not use the same register in the object code obtained by compiling the source program. If such a sequence of instructions exists, an instruction as shown in FIG. 2 is inserted before the sequence of instructions in order to execute those instructions in parallel. In other words, the first four bits of the instruction code part are all "4", and the lowest four bits are "0010".
Insert an instruction that is . The lowest 4 bits indicate that the following two instructions can be executed in parallel. It is assumed that the instruction code "1111" is originally an undefined instruction code in this electronic computer.

【0007】図1において、6は整数演算ユニット、7
は浮動小数点演算ユニットであり、1は、コンパイラが
ソースプログラムをコンパイルして得たオブジェクトコ
ードを保持する命令バッファである。並列情報デコード
ユニット2は命令伝達手段4を通じて命令バッファ1か
ら命令を受け取り、その命令コードが上述の未定義命令
コードである場合には、その命令に含まれる上記並列実
行可能な命令の数を取り出し、それを伝達手段5を通じ
てユニット3に通知する。
In FIG. 1, 6 is an integer operation unit, 7
is a floating point arithmetic unit, and 1 is an instruction buffer that holds object code obtained by compiling a source program by a compiler. The parallel information decoding unit 2 receives an instruction from the instruction buffer 1 through the instruction transmission means 4, and when the instruction code is the above-mentioned undefined instruction code, extracts the number of instructions included in the instruction that can be executed in parallel. , and notifies the unit 3 through the transmission means 5.

【0008】命令デコード発行ユニット3は、命令バッ
ファ1から命令を受け取ってデコードし、ユニット6,
7に命令語およびオペランドデータを伝達手段8を通じ
て伝える。そして、ユニット2から通知された並列実行
可能な命令の数が2の場合には、バッファ1から2つの
連続する命令を受け取り、それらをユニット6,7に並
列に実行させる。なお、ユニット3はレジスタファイル
を内蔵しており、演算に必要なオペランドデータはその
レジスタファイルより取り出す。
The instruction decode issue unit 3 receives and decodes instructions from the instruction buffer 1, and sends the instructions to units 6,
The command word and operand data are transmitted to 7 through the transmission means 8. When the number of instructions that can be executed in parallel as notified by unit 2 is 2, two consecutive instructions are received from buffer 1 and units 6 and 7 execute them in parallel. Note that the unit 3 has a built-in register file, and operand data necessary for calculations is extracted from the register file.

【0009】次に動作を説明する。まず、図3(A)に
示すような三つの命令が命令バッファ1からユニット2
,3に与えられた場合を説明する。ただし、図中n番目
の命令(斜線部)は図2の命令であり、n+1番目の命
令は整数演算命令、n+2番目の命令は浮動小数点演算
命令である。ユニット2はこのn番目の命令をバッファ
から受け取ると、その命令コード部の4ビットがすべて
“1”であるため、最下位の4ビットにより並列実行可
能な連続する命令の数として“2”を抽出し、それをユ
ニット3に通知する。
Next, the operation will be explained. First, three instructions as shown in FIG. 3(A) are transferred from instruction buffer 1 to unit 2.
, 3 will be explained. However, the n-th instruction (shaded area) in the figure is the instruction in FIG. 2, the n+1-th instruction is an integer arithmetic instruction, and the n+2-th instruction is a floating-point arithmetic instruction. When unit 2 receives this n-th instruction from the buffer, all 4 bits of its instruction code part are "1", so it calculates "2" as the number of consecutive instructions that can be executed in parallel using the lowest 4 bits. extract it and notify it to unit 3.

【0010】ユニット3はこの通知を受けると、バッフ
ァ1からn+1番目とn+2番目の命令とを受け取り、
演算に必要なオペランドデータを、内蔵しているレジス
タファイルから取出し、命令のデコード結果としての命
令語と共に伝達手段8に出力する。その結果、n+1番
目の整数演算命令と、n+2番目の浮動小数点命令とが
同時に実行されることになり、ユニット6,7は与えら
れたオペランドデータにより整数演算および浮動小数点
演算をそれぞれ実行する。
When unit 3 receives this notification, it receives the n+1st and n+2nd instructions from buffer 1, and
Operand data necessary for the operation is taken out from the built-in register file and outputted to the transmission means 8 together with the instruction word as the result of decoding the instruction. As a result, the (n+1)th integer operation instruction and the (n+2)th floating point instruction are executed simultaneously, and units 6 and 7 respectively execute integer operation and floating point operation based on the given operand data.

【0011】一方、図3(B)の命令列がバッファ1か
らユニット2に与えられた場合には、未定義命令が挿入
されていないので、ユニット2は並列実行可能な命令の
数として1を通知する。従ってこの場合には、ユニット
3はまずn番目の整数演算命令をバッファ1から受け取
り、それをデコードして整数演算の命令語とオペランド
データとをユニット6に出力し、整数演算を実行させ、
次にn+1番目の整数演算命令を受け取り、再度ユニッ
ト6に整数演算を実行させる。
On the other hand, when the instruction sequence shown in FIG. 3(B) is given from buffer 1 to unit 2, since no undefined instructions are inserted, unit 2 uses 1 as the number of instructions that can be executed in parallel. Notice. Therefore, in this case, the unit 3 first receives the nth integer operation instruction from the buffer 1, decodes it, outputs the integer operation instruction word and operand data to the unit 6, and causes the unit 6 to execute the integer operation,
Next, the (n+1)th integer operation instruction is received, and the unit 6 is caused to execute the integer operation again.

【0012】0012

【発明の効果】以上説明したように本発明の並列命令実
行方式にもとづく電子計算機では、コンパイラ手段が、
命令の並列実行が可能な場合には、並列に実行可能な命
令の数の情報を含む所定の命令を命令列に挿入し、並列
情報デコードユニットは上記所定の命令を受け取った場
合には、その命令に含まれる数の情報にもとづいて、並
列に実行可能な命令の数を命令デコード発行ユニットに
通知し、命令デコード発行ユニットは、通知された数の
命令を受け取り、複数の命令実行ユニットに同時に命令
を実行させる。すなわち、本発明の並列命令実行方式に
もとづく電子計算機では、並列に実行できる命令の数は
コンパイラ手段が判断するので、命令デコード発行ユニ
ットはそのための機能を持つ必要がなく、従ってそのハ
ードウェアが複雑になることはない。また、命令実行ユ
ニットの数や種類が多く、より複雑な条件で命令の並列
実行の可否を判断しなければならないような場合でも、
本発明の方式により命令の並列実行を容易に実現できる
。また、上記所定の命令を未定義の命令コードによって
構成した場合には、命令体系の変更を行う必要がないの
で、互換性の確保が可能となる。
[Effects of the Invention] As explained above, in the electronic computer based on the parallel instruction execution method of the present invention, the compiler means
When parallel execution of instructions is possible, a predetermined instruction including information on the number of instructions that can be executed in parallel is inserted into the instruction string, and when the parallel information decoding unit receives the above predetermined instruction, it Based on the number information included in the instructions, the instruction decode issue unit is notified of the number of instructions that can be executed in parallel, and the instruction decode issue unit receives the notified number of instructions and sends them to multiple instruction execution units simultaneously. Execute commands. That is, in an electronic computer based on the parallel instruction execution method of the present invention, the number of instructions that can be executed in parallel is determined by the compiler means, so the instruction decode issuing unit does not need to have a function for this purpose, and therefore its hardware is not complicated. It will never become. In addition, even when there are a large number and types of instruction execution units and it is necessary to judge whether instructions can be executed in parallel based on more complex conditions,
By the method of the present invention, parallel execution of instructions can be easily realized. Furthermore, if the predetermined command is configured by an undefined command code, there is no need to change the command system, so compatibility can be ensured.

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

【図1】本発明の並列命令実行方式にもとづく電子計算
機の一例を示すブロック図である。
FIG. 1 is a block diagram showing an example of an electronic computer based on the parallel instruction execution method of the present invention.

【図2】図1の電子計算機で用いられる命令の構成を示
す図である。
FIG. 2 is a diagram showing the structure of instructions used in the electronic computer of FIG. 1;

【図3】図1の電子計算機を動作させる命令列の例を示
す図である。
FIG. 3 is a diagram showing an example of an instruction sequence for operating the electronic computer of FIG. 1;

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

1  命令バッファ 2  並列情報デコードユニット 3  命令デコード発行ユニット 4,5,8  伝達手段 6  整数演算ユニット 7  浮動小数点演算ユニット 1 Instruction buffer 2 Parallel information decoding unit 3 Instruction decode issuing unit 4, 5, 8 Transmission means 6 Integer calculation unit 7 Floating point arithmetic unit

Claims (3)

【特許請求の範囲】[Claims] 【請求項1】複数の命令実行ユニットを備え、複数の命
令を並列に実行する電子計算機のための並列命令実行方
式において、命令列を生成し、並列に実行可能な複数の
命令からなる命令列の前に、前記並列に実行可能な命令
の数の情報を含む所定の命令を挿入するコンパイラ手段
と、このコンパイラ手段が生成した前記命令列を保持す
る記憶手段と、この記憶手段から前記所定の命令を受け
取ったとき、その命令に含まれる前記数の情報にもとづ
いて、並列に実行可能な命令の数を示す所定の情報を出
力する並列情報デコードユニットと、このデコードユニ
ットから前記所定の情報を受け取ったとき、その情報が
示す数と同数の命令を前記記憶手段から受け取り、それ
らを前記複数の命令実行ユニットに発行して各命令を並
列に実行させる命令デコード発行ユニットとを設けるこ
とを特徴とする電子計算機の並列命令実行方式。
Claim 1: In a parallel instruction execution method for an electronic computer that is equipped with a plurality of instruction execution units and executes a plurality of instructions in parallel, an instruction string is generated and the instruction string is made up of a plurality of instructions that can be executed in parallel. a compiler means for inserting a predetermined instruction including information on the number of instructions that can be executed in parallel before the above; a storage means for holding the instruction string generated by the compiler means; a parallel information decoding unit that outputs predetermined information indicating the number of instructions that can be executed in parallel based on the information on the number included in the instruction when an instruction is received; and an instruction decode issuing unit which receives the same number of instructions from the storage means as the number indicated by the information and issues them to the plurality of instruction execution units to execute each instruction in parallel. A parallel instruction execution method for electronic computers.
【請求項2】前記所定の命令は、特定の機能が定義され
ていない命令コードにより構成されていることを特徴と
する請求項1記載の電子計算機の並列命令実行方式。
2. The parallel instruction execution method for an electronic computer according to claim 1, wherein the predetermined instruction is composed of an instruction code in which a specific function is not defined.
【請求項3】前記複数の命令実行ユニットは、整数演算
ユニットと浮動小数点演算ユニットとを含むことを特徴
とする請求項1記載の電子計算機の並列命令実行方式。
3. The parallel instruction execution system for an electronic computer according to claim 1, wherein the plurality of instruction execution units include an integer arithmetic unit and a floating point arithmetic unit.
JP3129002A 1991-05-31 1991-05-31 Parallel instruction execution system for electronic computer Pending JPH04353923A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP3129002A JPH04353923A (en) 1991-05-31 1991-05-31 Parallel instruction execution system for electronic computer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3129002A JPH04353923A (en) 1991-05-31 1991-05-31 Parallel instruction execution system for electronic computer

Publications (1)

Publication Number Publication Date
JPH04353923A true JPH04353923A (en) 1992-12-08

Family

ID=14998721

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3129002A Pending JPH04353923A (en) 1991-05-31 1991-05-31 Parallel instruction execution system for electronic computer

Country Status (1)

Country Link
JP (1) JPH04353923A (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05233283A (en) * 1992-02-19 1993-09-10 Nec Corp Parallel instruction execution system
US11321094B2 (en) 2020-07-22 2022-05-03 Fujitsu Limited Non-transitory computer-readable medium, assembly instruction conversion method and information processing apparatus

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05233283A (en) * 1992-02-19 1993-09-10 Nec Corp Parallel instruction execution system
US11321094B2 (en) 2020-07-22 2022-05-03 Fujitsu Limited Non-transitory computer-readable medium, assembly instruction conversion method and information processing apparatus

Similar Documents

Publication Publication Date Title
US5341482A (en) Method for synchronization of arithmetic exceptions in central processing units having pipelined execution units simultaneously executing instructions
EP0111776B1 (en) Interrupt processor
EP0405489B1 (en) Resource conflict detection method and apparatus included in a pipelined processing unit
US5345569A (en) Apparatus and method for resolving dependencies among a plurality of instructions within a storage device
US5596733A (en) System for exception recovery using a conditional substitution instruction which inserts a replacement result in the destination of the excepting instruction
KR100616722B1 (en) Pipe1ined instruction dispatch unit in a supersca1ar processor
US5812809A (en) Data processing system capable of execution of plural instructions in parallel
JPS5911943B2 (en) Trap mechanism for data processing equipment
CA2009163A1 (en) Pipeline processing of register and register modifying specifiers within the same instruction
US4943915A (en) Apparatus and method for synchronization of a coprocessor unit in a pipelined central processing unit
US7613912B2 (en) System and method for simulating hardware interrupts
EP0094535B1 (en) Pipe-line data processing system
US5479622A (en) Single cycle dispatch delay in a multiple instruction dispatch mechanism of a data processing system
US6615339B1 (en) VLIW processor accepting branching to any instruction in an instruction word set to be executed consecutively
JP3207124B2 (en) Method and apparatus for supporting speculative execution of a count / link register change instruction
EP0482200A1 (en) Interrupt processing system
US5461715A (en) Data processor capable of execution of plural instructions in parallel
US5469552A (en) Pipelined data processor having combined operand fetch and execution stage to reduce number of pipeline stages and penalty associated with branch instructions
KR20010001022A (en) Method and Apparatus for Instruction issuing in Out-of-Order for Parallel Processor
EP1220088B1 (en) Circuit and method for supporting misaligned accesses in the presence of speculative load instructions
JPH04353923A (en) Parallel instruction execution system for electronic computer
EP0374598B1 (en) Control store addressing from multiple sources
CA1304823C (en) Apparatus and method for synchronization of arithmetic exceptions in central processing units having pipelined execution units simultaneously executing instructions
US5745723A (en) Data processing system capable of execution of plural instructions in parallel
Knieser et al. Y-pipe: A conditional branching scheme without pipeline delays