JPH04353923A - Parallel instruction execution system for electronic computer - Google Patents
Parallel instruction execution system for electronic computerInfo
- 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
Links
- 238000000034 method Methods 0.000 claims description 11
- 239000000284 extract Substances 0.000 abstract description 3
- 230000005540 biological transmission Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 3
Abstract
Description
【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.
【図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;
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)
令を並列に実行する電子計算機のための並列命令実行方
式において、命令列を生成し、並列に実行可能な複数の
命令からなる命令列の前に、前記並列に実行可能な命令
の数の情報を含む所定の命令を挿入するコンパイラ手段
と、このコンパイラ手段が生成した前記命令列を保持す
る記憶手段と、この記憶手段から前記所定の命令を受け
取ったとき、その命令に含まれる前記数の情報にもとづ
いて、並列に実行可能な命令の数を示す所定の情報を出
力する並列情報デコードユニットと、このデコードユニ
ットから前記所定の情報を受け取ったとき、その情報が
示す数と同数の命令を前記記憶手段から受け取り、それ
らを前記複数の命令実行ユニットに発行して各命令を並
列に実行させる命令デコード発行ユニットとを設けるこ
とを特徴とする電子計算機の並列命令実行方式。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.
ていない命令コードにより構成されていることを特徴と
する請求項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.
ユニットと浮動小数点演算ユニットとを含むことを特徴
とする請求項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.
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)
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 |
-
1991
- 1991-05-31 JP JP3129002A patent/JPH04353923A/en active Pending
Cited By (2)
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 |