JPS63261430A - Information processing method and device - Google Patents
Information processing method and deviceInfo
- Publication number
- JPS63261430A JPS63261430A JP9512087A JP9512087A JPS63261430A JP S63261430 A JPS63261430 A JP S63261430A JP 9512087 A JP9512087 A JP 9512087A JP 9512087 A JP9512087 A JP 9512087A JP S63261430 A JPS63261430 A JP S63261430A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- register
- memory
- control
- storage device
- 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
- 230000010365 information processing Effects 0.000 title claims description 20
- 238000003672 processing method Methods 0.000 title claims description 7
- 230000015654 memory Effects 0.000 claims description 147
- 238000001514 detection method Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 9
- 238000005457 optimization Methods 0.000 description 7
- 230000015572 biosynthetic process Effects 0.000 description 6
- 238000000034 method Methods 0.000 description 6
- 238000003786 synthesis reaction Methods 0.000 description 6
- 238000004458 analytical method Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 2
- 238000011144 upstream manufacturing Methods 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 208000008025 hordeolum Diseases 0.000 description 1
- 229940021506 stye Drugs 0.000 description 1
Landscapes
- Devices For Executing Special Programs (AREA)
Abstract
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明はコンピュータ等の情報処理装置に係り、特に大
量の数値計算に好適な実行の最適化方式に関する。DETAILED DESCRIPTION OF THE INVENTION [Field of Industrial Application] The present invention relates to information processing devices such as computers, and particularly to an execution optimization method suitable for large-scale numerical calculations.
従来の装置は中田育男著、「コンパイラ」、産業図書(
昭和56年)発行の第10章「目的階の最適化」で論じ
られているように、あらかじめ目的階の解析を行ない実
行時の効率が良くなると予想されるような目的階を生成
していた。あるいは最適化をしていないコンパイラにお
いては、実行時の制御の冗長さは無視されていた。The conventional device is "Compiler" written by Ikuo Nakata, Sangyo Tosho (
As discussed in Chapter 10, ``Optimization of Objective Floors,'' published in 1981, the objective floor was analyzed in advance and an objective floor that was expected to improve execution efficiency was generated. . Alternatively, in non-optimizing compilers, the redundancy of runtime control was ignored.
上記従来技術は、目的階を静的に解析できる範囲でしか
適用できないために、目的階の実行順序が動的に決定さ
れる部分を含むような場合で、静的解析が不可能、ある
いはコンパイラの処理弔位の異なる手続きの間にまたが
ってまでは解析を行なわない。あるいはコンパイラの処
理時間、使用可能メモリの制約から完全な静的解析をす
ることが不可能、などの場合には最適化ができないとい
う点については配慮されておらず、実行時の制御に冗長
な点が残るという問題があった。The above conventional techniques can only be applied to the extent that the objective floor can be analyzed statically, so in cases where the execution order of the objective floor includes a part where the execution order is dynamically determined, static analysis is not possible, or the compiler Analysis is not performed across procedures with different processing positions. In other cases, it is impossible to perform a complete static analysis due to compiler processing time and available memory constraints, and optimization is not possible in such cases. There was a problem with points remaining.
本発明の目的は、目的階の実行順序が動的に決定される
場合、あるいは、コンパイラが完全に静的な最適化を行
なっていない場合、あるいはコンパイラを使用せず直接
目的語を作成する場合に、目的階の実行時において制御
の冗長性を排除して。The purpose of this invention is when the execution order of the objective floor is determined dynamically, when the compiler does not perform completely static optimization, or when the objective is created directly without using the compiler. , by eliminating control redundancy during execution of the destination floor.
、実行の処理の負担を低減することにある。, the purpose is to reduce the burden of execution processing.
上記目的は制御装置を、機械命令をより低レベルの制御
命令に展開する命令展開装置と、展開された制御命令に
より情報処理装置の各部を動作させる命令実行装置の2
つに分けて、さらに展開された制御命令の省略、統合を
行なう制御管理装置を設けることにより達成される。The purpose of the control device is to function as an instruction expansion device that expands machine instructions into lower-level control instructions, and an instruction execution device that operates each part of an information processing device using the expanded control instructions.
This is achieved by providing a control management device that omit and integrate control commands that have been further divided into two parts.
命令展開装置は記憶装置から機械命令を読み出し機械命
令より低いレベルの制御命令へ展開する6制御管理装置
は展開された制御命令列のうちそれ以前に展開された制
御命令の実行により不要となる制御命令がある場合、以
前に展開されまだ実行されていない制御命令が不要であ
る場合、あるいはそれらの制御命令を統合して簡略化で
きる場合を検出して命令実行装置に知らせ、命令実行装
置は変更された後の省略や簡略された制御命令を実行す
る。The instruction expansion device reads machine instructions from the storage device and expands them into control instructions at a lower level than the machine instructions.6 The control management device reads out machine instructions from the storage device and expands them into control instructions that are at a lower level than the machine instructions. Detects and informs the instruction execution device when there are instructions, control instructions that have been expanded previously and have not yet been executed, are unnecessary, or those control instructions can be combined and simplified, and the instruction execution device makes changes. Execute an abbreviated or abbreviated control command after it has been specified.
命令展開装置と制御管理装置は命令実行装置と同時に動
作するのでコンパイラが目的階について実行前に最適化
不可能な部分についても実行時に最適化された制御を行
なうことができる。Since the instruction expansion device and the control management device operate simultaneously with the instruction execution device, the compiler can perform optimized control at the time of execution even for portions of the target floor that cannot be optimized before execution.
以下、本発明の一実施例を第2図により説明する。第2
図において5は記憶装置であり、処理の対象となるデー
タおよび機械命令が記憶されている。8は命令アドレス
レジスタで、実行される機械命令のある記憶装置5上の
アドレスを示す。9は命令データレジスタで、記憶装置
5上の命令アドレスレジスタ8で示されるアドレスに置
かれている機械命令がロードされる。11は命令解読装
置で命令データレジスタ9のデータを解読して制御命令
合成回路10に解読結果を送る。7はレジスタ内容管理
装置で、レジスタ・メモリ等価情報記憶装置6上に保持
されているレジスタとメモリ間のデータ一致情報を基に
して、実行すべき機械命令の冗長性を判定し、制御命令
が不要であることを検出、あるいはより簡素化した制御
命令を求めて、制御命令合成回路10に送る。制御命令
合成回路10はレジスタ内容管理装置7と命令解読装置
11から送られた情報を合成して制御命令を情報処理装
置の各部分へ送信する。12はレジスタであり記憶装置
5との間でデータのやりとりを行なう。記憶装置5とレ
ジスタ12との違いは。An embodiment of the present invention will be described below with reference to FIG. Second
In the figure, 5 is a storage device in which data and machine instructions to be processed are stored. 8 is an instruction address register indicating an address on the storage device 5 where a machine instruction to be executed is located. Reference numeral 9 denotes an instruction data register into which a machine instruction placed at the address indicated by the instruction address register 8 on the storage device 5 is loaded. Reference numeral 11 denotes an instruction decoding device that decodes the data in the instruction data register 9 and sends the decoding result to the control instruction synthesis circuit 10. Reference numeral 7 denotes a register content management device, which determines the redundancy of machine instructions to be executed based on data matching information between registers and memory held in the register/memory equivalent information storage device 6, and determines the redundancy of machine instructions to be executed. It is detected that the control command is unnecessary, or a simpler control command is found and sent to the control command synthesis circuit 10. The control instruction synthesis circuit 10 synthesizes the information sent from the register content management device 7 and the instruction decoding device 11 and sends the control instruction to each part of the information processing device. A register 12 exchanges data with the storage device 5. What is the difference between the storage device 5 and the register 12?
レジスタの方がアクセス速度が速く、演算もレジスタを
対象として行なわれるが、数が少なく記憶容量が小さい
という点である。この実施例の効果としでは、レジスタ
内容管理装置7によってレジスタ12と記憶装置5との
間で不要なデータ転送を避けることで処理の負担低減と
それに伴う高速化を実現する。Registers have a faster access speed and operations are performed on registers, but they have fewer numbers and a smaller storage capacity. The effect of this embodiment is that unnecessary data transfer between the register 12 and the storage device 5 is avoided by the register content management device 7, thereby reducing the processing load and increasing the processing speed accordingly.
レジスタ・メモリ等価情報記憶装置6にはレジスタとメ
モリの一致情報が入っている。すなわち各レジスタごと
にそのレジスタがメモリ上の特定のアドレスのデータと
等しいか、あるいは不定であるかの情報を持つ。実行開
始時には不定であると初期設定されている。これらの情
報を表現するために、不定であれば0、不定でなければ
1となる1ビツトのフラグと、不定でない場合に一致す
る内容を持つメモリ上のアドレス値(等価メモリアドレ
ス値)を各レジスタごとに対応して持つ。The register/memory equivalent information storage device 6 contains register and memory matching information. That is, each register has information as to whether the register is equal to the data at a specific address on the memory or is undefined. It is initially set to be undefined at the start of execution. In order to represent this information, we use a 1-bit flag that is 0 if undefined and 1 otherwise, and an address value on memory (equivalent memory address value) with matching contents if undefined. Each register has a corresponding one.
レジスタ内容管理装置7はレジスタ・メモリ等価情報記
憶装置6を参照して、実行すべき機械命令が不要である
、あるいはより簡素な命令に置き換わることを制御命令
合成回路10へ知らせる。The register content management device 7 refers to the register/memory equivalent information storage device 6 and informs the control instruction synthesis circuit 10 that the machine instruction to be executed is unnecessary or will be replaced with a simpler instruction.
ただし、メモリ上のアドレスが記憶装置でなく入出力装
置に割り当てられているアドレスである場合は命令の置
き換えはしない。However, if the address on the memory is an address assigned to an input/output device rather than a storage device, the instruction is not replaced.
この装置において重要な点は、機械命令の解読と同時に
レジスタ内容管理装置7が動作して命令の変更を指示で
きることである。そのためレジスタ・メモリ等価情報記
憶装置6は記憶装置ff5とは異なりレジスタ内容管理
装置7のみから高速に参照、定義がされる。An important point in this device is that the register content management device 7 operates simultaneously with the decoding of a machine instruction to instruct a change in the instruction. Therefore, unlike the storage device ff5, the register/memory equivalent information storage device 6 can be referenced and defined at high speed only by the register content management device 7.
以下、第3図によりレジスタ・メモリ等価情報記憶装置
6、レジスタ内容管理装置7をより詳細に説明する。第
3図において13はレジスタ等価記憶比較回路、14は
レジスタ等価記憶設定回路、15はレジスタ内容管理装
置制御回路である。Hereinafter, the register/memory equivalent information storage device 6 and the register content management device 7 will be explained in more detail with reference to FIG. In FIG. 3, 13 is a register equivalent storage comparison circuit, 14 is a register equivalent storage setting circuit, and 15 is a register content management device control circuit.
制御回路15は命令データレジスタ9の内容を信号線6
6を通じて受は取り、命令の種類に応じて以下の動作を
行なう、以下の説明においてR1゜Rjは任意のレジス
タ、Mは任意のメモリアドレスを示す。The control circuit 15 transfers the contents of the command data register 9 to the signal line 6.
6, and performs the following operations depending on the type of instruction. In the following explanation, R1°Rj represents an arbitrary register, and M represents an arbitrary memory address.
■ LoadRagister Ri t Rj信号
線74へRiとRjの比較依頼を出力し、信号線75へ
Riの情報をRjの情報に設定依頼を出力する。■ LoadRagister Ri t Rj Outputs a request to compare Ri and Rj to the signal line 74, and outputs a request to set the information of Ri to the information of Rj to the signal line 75.
■ Load Ri 、 M
信号線74へRiとMの比較依頼と、Mと等価レジスタ
検出依頼を出力し、信号線75へRiの情報をMに設定
する依頼を出力する。■ Load Ri, M Outputs a request to compare Ri and M and a request to detect registers equivalent to M to the signal line 74, and outputs a request to set the information of Ri to M to the signal line 75.
■ 5tore Ri、M
信号線74へRiとMの比較依頼、信号線75へMと等
価レジスタの情報を持つものを不定に設定し、Riの情
報をMに設定する依頼を出力する。5tore Ri, M A request to compare Ri and M is sent to the signal line 74, and a request to set M and equivalent register information to undefined is output to the signal line 75, and a request to set the information of Ri to M is output to the signal line 75.
■メモリMの参照命令 Add Ri、M等信分線7
4へMと等価レジスタ検出の依頼を出す。■Memory M reference command Add Ri, M equidistant line 7
Send a request to M4 to detect registers equivalent to M.
■レジスタRiの変更命令 Add Ri、M等信分
線75へRiの情報を不定に設定する依頼を出す。■ Register Ri change command Add Ri, sends a request to the M equal confidence branch 75 to set the information of Ri to undefined.
■(■を除く)メモリの変更命令C1ear M等信
分線75へMと等価レジスタの情報を持つものを不定に
設定する依頼を出す。■ (Excluding ■) Memory change command C1ear Issues a request to the M equivalence branch 75 to set M and equivalent register information to undefined.
比較回路13は制御回路15からの依頼を信号線74か
ら受は取り、依頼に応じ以下の動作をする。The comparison circuit 13 receives a request from the control circuit 15 from the signal line 74, and performs the following operations in response to the request.
■RiとRjの比較依頼
レジスタ・メモリ等価情報記憶装置6内のRiとRjの
情報について1両方とも不定でなく(フラグが1)、等
価メモリアドレス値が等しければ、信号線69へ命令の
実行を無視する旨を出力する。■ Comparison request for Ri and Rj Register/memory equivalent information About the information on Ri and Rj in the storage device 6 1 If both are not undefined (flag is 1) and the equivalent memory address values are equal, execute the command to the signal line 69 Outputs that it will be ignored.
■RiとMの比較依頼
レジスタ・メモリ等価情報記憶装置6内のRiの情報に
ついて、不定でなく(フラグが1)、等価メモリアドレ
ス値がMに等しければ、信号線69へ命令の実行を無視
する旨を出力する。■ Comparison request for Ri and M If the information on Ri in the register/memory equivalent information storage device 6 is not undefined (the flag is 1) and the equivalent memory address value is equal to M, the execution of the command to the signal line 69 is ignored. Outputs the fact that it is done.
0Mと等価レジスタ検出依頼
レジスタ・メモリ等価情報記憶装置6内の不定でない(
フラグが1)レジスタについて、等価メモリアドレス値
がMと等しいものを1つ検出し、もしあれば信号[69
へMの参照をそのレジスタへの参照を変更する旨を出力
する。0M and equivalent register detection request register/memory equivalent information storage device 6 that is not indefinite (
Flag 1) detects one register whose equivalent memory address value is equal to M, and if any, sends signal [69
outputs a message indicating that the reference to M is to be changed to that register.
比較回路13は上記の依頼された処理を終了した時点で
、または依頼が無かった場合には信号線72を通じて設
定回路14へ動作許可を指示する。When the comparison circuit 13 completes the above-mentioned requested processing, or if there is no request, it instructs the setting circuit 14 to permit operation through the signal line 72.
設定回路14は信号線72から動作許可を指示された時
点で、信号線75からの依頼に応じて以下の動作をする
。The setting circuit 14 performs the following operation in response to a request from the signal line 75 at the time when the setting circuit 14 is instructed to permit operation from the signal line 72.
■Riの情報をRjの情報に設定する
レジスタ・メモリ等価情報記憶装置6内のRjの情報に
ついて、不定でない(フラグが1)ときには等価メモリ
アドレス値をRiの情報にコピーしてフラグを1にする
。Rjの情報が不定(フラグが0)のときにはRiの情
報を不定(フラグを0)にする。■Set the information of Ri to the information of Rj If the information of Rj in the register/memory equivalent information storage device 6 is not indefinite (the flag is 1), copy the equivalent memory address value to the information of Ri and set the flag to 1. do. When the information on Rj is undefined (the flag is 0), the information on Ri is made undefined (the flag is 0).
■Riの情報をMに設定する
レジスタ・メモリ等価情報記憶装置6内のRiの情報に
ついて、等価メモリアドレス値をMに設定し、フラグを
1にする。(2) Setting the information of Ri to M For the information of Ri in the register/memory equivalent information storage device 6, set the equivalent memory address value to M and set the flag to 1.
■Riの情報を不定に設定する
レジスタ・メモリ等価情報記憶装置6内のRiの情報に
ついて、フラグをOにする。(2) Set the information of Ri to be undefined Set the flag to O for the information of Ri in the register/memory equivalent information storage device 6.
0Mと等価レジスタの情報を不定に設定するレジスタ・
メモリ等価情報記憶装置6内の不定でない(フラグが1
)レジスタのうち等価メモリアドレス値がMであるすべ
てについて、フラグを0にする。A register that sets the information of registers equivalent to 0M to be undefined.
It is not undefined (the flag is 1) in the memory equivalent information storage device 6.
) Set the flag to 0 for all registers whose equivalent memory address value is M.
第1.1図に処理方式のフローチャートを示す。Figure 1.1 shows a flowchart of the processing method.
次に、第4図に示す目的語の実行を例にして説明する。Next, the execution of the object shown in FIG. 4 will be explained as an example.
第4図においてR1,R2はレジスタ、S、A。In FIG. 4, R1 and R2 are registers, S and A.
I、Bはメモリ上のアドレス、0.1は定数、LOI、
LO2はラベルを表わす。I, B are addresses on memory, 0.1 is a constant, LOI,
LO2 represents a label.
ステップ101のLoad命令実行後、レジスタ・メモ
リ等価情報記憶装置6内のR1に関する情報は不定(フ
ラグがO)に設定される。After executing the Load instruction in step 101, the information regarding R1 in the register/memory equivalent information storage device 6 is set to be undefined (the flag is O).
ステップ102の5tore命令実行前にレジスタ・メ
モリ等価情報記憶装置6内のR1に関する情報は不定(
フラグが0)であるので5tore命令の実行は無視さ
れない。命令実行後には、レジスタ・メモリ等価情報記
憶装置6内の情報で実行前に等価メモリアドレス値がS
に設定されているレジスタがあれば不定(フラグがO)
に設定され、R1に関する情報は等価メモリアドレス値
がSに設定されている。Before executing the 5tore instruction in step 102, the information regarding R1 in the register/memory equivalent information storage device 6 is undefined (
Since the flag is 0), execution of the 5tore instruction is not ignored. After the instruction is executed, the equivalent memory address value is determined by the information in the register/memory equivalent information storage device 6 before execution.
Undefined if there is a register set to (flag is O)
, and the equivalent memory address value of the information regarding R1 is set to S.
ステップ103のLoad命令実行前にレジスタ・メモ
リ等価情報記憶装置6内のR2に関する情報が不定でな
く等価メモリアドレス値がAに設定されていれば、 L
oad命令は実行されない、あるいは、レジスタ・メモ
リ等価情報記憶装置6内の情報が不定でなく等価メモリ
アドレス値がAに設定されているレジスタがあれば、L
oad命令はLoadRegister命令に置き換え
られて実行される。If the information regarding R2 in the register/memory equivalent information storage device 6 is not indefinite and the equivalent memory address value is set to A before executing the Load instruction in step 103, then L
If the oad instruction is not executed, or if the information in the register/memory equivalent information storage device 6 is not indefinite and there is a register whose equivalent memory address value is set to A, the L
The oad instruction is replaced with the LoadRegister instruction and executed.
命令実行後にはレジスタ・メモリ等価情報記憶装置f!
6内のR2に関する情報は等価メモリアドレス値がAに
設定されている。After the instruction is executed, the register/memory equivalent information storage device f!
The equivalent memory address value of the information regarding R2 in 6 is set to A.
ステップ104の5jOre命令実行前にレジスタ・メ
モリ等価情報記憶装置6内のR2に関する情報は等価メ
モリアドレス値がAに設定されていて、Aと工は違うア
ドレスなので5tore命令の実行は無視されない、命
令実行後には、レジスタ・メモリ等価情報記憶装置6内
の情報で実行前に等価メモリアドレス値が工に設定され
ているレジスタがあれば不定(フラグがO)に設定され
、R2に関する情報は等価メモリアドレス値がIに設定
されている。Before the execution of the 5jOre instruction in step 104, the equivalent memory address value of the information regarding R2 in the register/memory equivalent information storage device 6 is set to A, and since A and address are different addresses, the execution of the 5tore instruction is not ignored. After execution, if there is a register whose equivalent memory address value has been set to E before execution in the information in the register/memory equivalent information storage device 6, it will be set to undefined (flag is O), and information regarding R2 will be set to the equivalent memory address value. Address value is set to I.
ステップ105のLoad命令実行前にはステップ10
2の命令実行によってレジスタ・メモリ等価情報記憶装
置6内のR1に関する情報が不定でなく等価メモリアド
レス値がSに設定されているので、 Load命令は実
行されない。Before executing the Load instruction in step 105, step 10
The Load instruction is not executed because the information regarding R1 in the register/memory equivalent information storage device 6 is not indefinite and the equivalent memory address value is set to S by executing the instruction 2.
ステップ106のAdd命令実行後にはレジスタ・メモ
リ等価情報記憶装置6内のR1に関する情報が不定に設
定される。After executing the Add instruction in step 106, the information regarding R1 in the register/memory equivalent information storage device 6 is set to be undefined.
ステップ107の5tore命令実行前にレジスタ・メ
モリ等価情報記憶装置l!6内のR1に関する情報が不
定であるので、5tore命令の実行は無視されない、
命令実行後には、レジスタ・メモリ等価情報記憶袋!!
!6内の情報で実行前に等価メモリア ′ドレス値
がSに設定されているレジスタがあれば不定(フラグが
0)に設定され、R1に関する情報は等価メモリアドレ
ス値がSに設定されている。Before executing the 5tore instruction in step 107, register/memory equivalent information storage l! Since the information regarding R1 in 6 is undefined, the execution of the 5tore instruction is not ignored.
After executing the instruction, register/memory equivalent information storage bag! !
! If there is a register whose equivalent memory address value is set to S before execution in the information in R1, it is set to undefined (flag is 0), and the information regarding R1 has its equivalent memory address value set to S.
ステップ108のCa1l命令実命令上りサブルーチン
へ制御が移る。 Ca1l全1l命令実レジスタ・メモ
リ等価情報記憶装置6内の情報がどうなっているかは第
4図に示される目的譜だけからは判定できない。Control moves to the Ca1l instruction actual instruction up subroutine in step 108. The state of the information in the Ca1l total 1l instruction actual register/memory equivalent information storage device 6 cannot be determined only from the objective sheet shown in FIG.
ステップ109のLoad命令実行前にレジスタ・メモ
リ等価情報記憶装置6内のR2に関する情報が不定でな
く等価メモリアドレス値が工に設定されていれば、Lo
ad命令は実行されない、あるいは、レジスタ・メモリ
等価情報記憶装置6内の情報が不定でなく等価メモリア
ドレス値が工に設定されているレジスタがあれば、Lo
ad命令はLoadRegister命令に置き換えら
れて実行される。If the information regarding R2 in the register/memory equivalent information storage device 6 is not indeterminate and the equivalent memory address value is set to "E" before executing the Load instruction in step 109, the Lo
If the ad instruction is not executed, or if the information in the register/memory equivalent information storage device 6 is not indefinite and there is a register whose equivalent memory address value is set to
The ad instruction is replaced with the LoadRegister instruction and executed.
命令実行後にはレジスタ・メモリ等価情報記憶装置6内
のR2に関する情報は等価メモリアドレス値が■に設定
されている。ステップ108のCa1l命令実命令上り
R2が変更されていなければ、ステップ104の5to
re命令実行によってレジスタ・メモリ等価情報記憶装
置6内のR2に関する情報は等価メモリアドレス値がI
に設定されているので、Load命令は実行されない。After the instruction is executed, the equivalent memory address value of the information regarding R2 in the register/memory equivalent information storage device 6 is set to ■. If the Ca1l instruction actual instruction upstream R2 in step 108 has not been changed, 5to in step 104
By executing the re instruction, the information regarding R2 in the register/memory equivalent information storage device 6 is changed to the equivalent memory address value I.
, the Load instruction is not executed.
ステップ110のAdd命令実行後にはレジスタ・メモ
リ等価情報記憶装置6内のR2に関する情報が不定に設
定される。After executing the Add instruction in step 110, the information regarding R2 in the register/memory equivalent information storage device 6 is set to be undefined.
ステップ111の5tore命令実行前にレジスタ・メ
モリ等価情報記憶装置6内のR2に関する情報が不定で
あるので、5tors命令の実行は無視されない、命令
実行後には、レジスタ・メモリ等価情報記憶装置F16
内の情報で実行前に等価メモリアドレス値が工に設定さ
れているレジスタがあれば不定(フラグがO)に設定さ
れ、R2に関する情報は等価メモリアドレス値が工に設
定されている。Before the execution of the 5tore instruction in step 111, the information regarding R2 in the register/memory equivalent information storage device 6 is undefined, so the execution of the 5tors instruction is not ignored.
If there is a register whose equivalent memory address value is set to ``English'' before execution, it is set to undefined (the flag is O), and the information regarding R2 has the equivalent memory address value set to ``Engine''.
ステップ112のCompare命令実行前にレジスタ
・メモリ等価情報記憶装置6内の情報が不定でなく等価
メモリアドレス値がBに設定されているレジスタがあれ
ば、Compare命令はCompareRegist
er命令に置き換えられて実行される。If the information in the register/memory equivalent information storage device 6 is not indefinite and there is a register whose equivalent memory address value is set to B before executing the Compare instruction in step 112, the Compare instruction returns CompareRegist.
It is replaced with the er instruction and executed.
ステップ】−13のBranch命令により、R2の値
がBの値より小さいか等しい場合はラベルLO1で示さ
れるステップ105へ制御が移る。If the value of R2 is less than or equal to the value of B by the Branch instruction in step -13, control is transferred to step 105 indicated by label LO1.
2回目以降のステップ105のLoad命令では。In the Load command of step 105 from the second time onwards.
実行前にレジスタ・メモリ等価情報記憶装置6内のR1
に関する情報が不定でなく等価メモリアドレス値がSに
設定されていれば、Load命令は実行されない。すな
わち、ステップ108のCa1l命令実命令上りR1と
Sが変更されていなければ、ステップ107の5tor
e命令実行によってレジスタ・メモリ等価情報記憶装置
6内のR1に関する情報は等価メモリアドレス値がSに
設定されているので、Load命令は実行されない、し
かし、第4図に示される目的譜だけからはこれを判定す
ることはできない。R1 in the register/memory equivalent information storage device 6 before execution
If the information related to this is not undefined and the equivalent memory address value is set to S, the Load instruction will not be executed. That is, if the Ca1l instruction actual instruction upstream R1 and S in step 108 are not changed, the 5tor in step 107
By executing the e instruction, the equivalent memory address value of the information regarding R1 in the register/memory equivalent information storage device 6 is set to S, so the Load instruction is not executed.However, only from the objective sheet shown in FIG. This cannot be determined.
このようにしてR2の値がAを初期値にして1ずつ増加
されてBより大きくなるまでループが実行される。ただ
し、LO2で示されるサブルーチン内でIやBの値が変
更される場合もありうるので、ループを何回目るかは決
まっていない。In this way, the loop is executed until the value of R2 is increased by 1 with A as the initial value until it becomes larger than B. However, since the values of I and B may be changed within the subroutine indicated by LO2, it is not determined how many times the loop will be repeated.
最適化コンパイラ等により実行前に目的譜の最適化をし
ようとしてもステップ108のCa1l命令があるので
ステップ105や109のLoad命令を削除すること
はできない。Even if an optimizing compiler or the like attempts to optimize the target score before execution, it is not possible to delete the Load instructions in steps 105 and 109 because the Ca1l instruction in step 108 exists.
また、ステップ108のCa1l命令がない場合やラベ
ルLO2で示されるサブルーチン内の制御が完全に解析
できる場合でも、目的譜の実行中に割込みを受けてSや
工の値が変更される可能性があれば、ステップ105や
109のLoad命令を削除することはできない。Furthermore, even if there is no Ca1l command in step 108 or if the control within the subroutine indicated by label LO2 can be completely analyzed, there is a possibility that the values of S and K may be changed due to an interruption during execution of the target score. If there is, the Load command in steps 105 and 109 cannot be deleted.
また、解析した結果、2回目以降はLoad命令が必ず
必要で、1回目は不要であることが判明した場合にも、
目的譜としてステップ105のLoad命令を省くこと
はできないが、本実施例によれば実行時により1回目の
Load命令を無視する。Also, if the analysis results show that the Load instruction is always required from the second time onwards, but not the first time,
Although the Load command in step 105 cannot be omitted as the target score, according to this embodiment, the first Load command is ignored during execution.
この実施例によれば実行前に解析が不可能であったり、
解析できても制御の合流などにより目的譜上で命令を省
略できない場合についても、実行時にメモリからレジス
タへのロードや、レジスタからメモリへのストアのうち
不要なものを実行しないことによって処理の負担を低減
し高速に実行することができる。According to this embodiment, analysis may not be possible before execution;
Even if the command can be analyzed but cannot be omitted on the target score due to control confluence, etc., the processing burden can be reduced by not executing unnecessary loads from memory to registers and stores from registers to memory during execution. can be reduced and executed at high speed.
上記実施例では、レジスタ・メモリ等価情報記憶装置1
6内の情報を1つのレジスタに対して一致するメモリ上
のアドレス値を1つだけ持つことにしたが、2つ以上の
複数個のアドレス値を持つように拡張できる。このよう
にすれば、命令が簡素化できる場合を増やすことができ
る。In the above embodiment, the register/memory equivalent information storage device 1
Although the information in 6 has only one address value on memory that matches one register, it can be expanded to have two or more address values. In this way, the number of cases in which instructions can be simplified can be increased.
第5図は1つのレジスタに対してメモリ上の2つ以上の
複数個のアドレスの内容との等価性の情報を持てるよう
に拡張した時のレジスタ・メモリ等価情報記憶袋!F2
6とレジスタ内容管理装置7の部分を詳細に示した図で
ある。Figure 5 shows the register/memory equivalence information storage bag when one register is expanded to hold information on equivalence with the contents of two or more addresses on memory! F2
6 and a register content management device 7 in detail.
レジスタ・メモリ等価情報記憶装置6に対応する部分は
21のレジスタ・グループ記憶装置と22のメモリ・グ
ループ記憶装置である。レジスタ内容管理装置7に対応
する部分は23の比較回路、24の未使用グループ検出
回路、25の設定回路、26のメモリ・グループ登録領
域選択回路。The portion corresponding to the register memory equivalent information storage device 6 is a register group storage device 21 and a memory group storage device 22. The parts corresponding to the register content management device 7 are a comparison circuit 23, an unused group detection circuit 24, a setting circuit 25, and a memory group registration area selection circuit 26.
27の制御回路である。27 control circuits.
レジスタ・グループ記憶装置21、メモリ・グループ記
憶装置22の内部表現はそれぞれ第6図、第7図に示さ
れる。レジスタ・グループ記憶装置21は各レジスタが
烏するグループを示し、メモリ・グループ記憶装置22
はメモリ上のあるアドレスの内容が属するグループを示
す。同じグループ間のレジスタやメモリの内容は等価で
ある。Internal representations of register group storage 21 and memory group storage 22 are shown in FIGS. 6 and 7, respectively. A register group storage 21 indicates the group to which each register belongs, and a memory group storage 22
indicates the group to which the contents of a certain address in memory belong. The contents of registers and memories in the same group are equivalent.
第6図の21−1から21−mまでの領域はm個の全レ
ジスタについて各々のグループ番号の情報を持っている
。第7図の22−1から22−kまでの領域は最大でに
個までのメモリについてグループ番号を記憶できる。に
個の領域のそれぞれGNにはグループ番号、MAにはメ
モリ上のアドレズ値が記憶される。グループ番号はOか
らmまでの整数値であり、Oはどのグループにも属さな
い、すなわちメモリや他のレジスタとの等価性が不定で
あることを示し、その他の値であれば同じグループ番号
を持つレジスタやメモリの間で値が等価であることを示
す。The areas 21-1 to 21-m in FIG. 6 contain information on each group number for all m registers. The areas 22-1 to 22-k in FIG. 7 can store group numbers for up to a maximum of memories. In each of the GN areas, a group number is stored, and an address value on the memory is stored in MA. The group number is an integer value from O to m. O indicates that it does not belong to any group, that is, the equivalence with memory or other registers is undefined, and other values indicate the same group number. Indicates that the values in the registers and memories held are equivalent.
比較回路23は制御回路27の制御によりレジスタ・グ
ループ記憶装置21とメモリ・グループ記憶装置22の
内容を比較し、命令の無視あるいは変更のある場合には
信号線69を通じ制御命令合成回路10へその旨を出力
する。また信号線86により未使用グループ検出回路2
4へ動作タイミングを知らせ、信号線89を通じ設定回
路25へ比較結果を知らせる。The comparison circuit 23 compares the contents of the register group storage device 21 and the memory group storage device 22 under the control of the control circuit 27, and if the instruction is ignored or changed, it is sent to the control instruction synthesis circuit 10 through the signal line 69. Outputs the message. In addition, the unused group detection circuit 2 is connected to the signal line 86.
4 of the operation timing, and informs the setting circuit 25 of the comparison result through the signal line 89.
未使用グループ検出回路24は1からmまでのm個の整
数について、それぞれを領域21−1から21−mのう
ち指定されたレジスタRiに対応する領域21−1を除
くm−1個の領域と比較し、どの領域のグループ番号と
も一致しないことを判定することにより、レジスタ・グ
ループ記憶装置21の中で、指定したレジスタを除く他
のレジスタで使われていないグループ番号(0以外)を
検出し、信号線87を通じて設定回路25へそのうちの
1つを、信号線79を通じてメモリ・グループ登録領域
選択回路26へ上記の未使用グループ番号全部を知らせ
る。For m integers from 1 to m, the unused group detection circuit 24 detects m-1 areas from areas 21-1 to 21-m excluding the area 21-1 corresponding to the designated register Ri. Detects a group number (other than 0) that is not used in any register other than the specified register in the register group storage device 21 by comparing it with the group number of any area and determining that it does not match the group number of any area. Then, one of them is sent to the setting circuit 25 through the signal line 87, and all the unused group numbers mentioned above are sent to the memory group registration area selection circuit 26 through the signal line 79.
設定回路25は制御回路27の制御と信号線89を通じ
て受は取った比較回路23の比較結果により動作を決定
し、未使用グループ検出回路24から指定された未使用
グループ番号、あるいはメモリ・グループ登録領域選択
回路26から指定されたメモリ・グループ登録領域の情
報を必要に応じて使って、レジスタ・グループ記憶装置
21、メモリ・グループ記憶装置22の内容を設定する
。The setting circuit 25 determines the operation based on the control of the control circuit 27 and the comparison result of the comparison circuit 23 received through the signal line 89, and selects the unused group number specified from the unused group detection circuit 24 or the memory group registration. Information on the memory group registration area specified by the area selection circuit 26 is used as necessary to set the contents of the register group storage device 21 and the memory group storage device 22.
メモリ・グループ登録領域選択回路26はメモリ・グル
ープ記憶装置22の中から新しくメモリとグループ番号
の対応を登録する領域を選択する。The memory group registration area selection circuit 26 selects an area in the memory group storage device 22 in which a new memory and group number correspondence is to be registered.
領域のうちGNがOであるものがあればその領域を選択
する。GNがOのものがなければ信号線79を通じ未使
用グループ検出回路24から知らされた未使用グループ
番号に属するONがあればその領域を選択する。その他
の場合は、メモリ・グループ記憶袋M22の参照、設定
の度に信号線85を通じてその情報がメモリ・グループ
登録領域選択回路26に伝えられていて、領域の間に最
後に参照、設定された相対的な時間の順序の情報を持ち
、一番古く参照、設定された領域の情報を捨て、新しく
登録する領域とする。If there is a region whose GN is O, that region is selected. If there is no GN with O, and if there is an ON belonging to the unused group number notified from the unused group detection circuit 24 through the signal line 79, that area is selected. In other cases, the information is transmitted to the memory group registration area selection circuit 26 through the signal line 85 each time the memory group storage bag M22 is referenced or set, and the information is transmitted to the memory group registration area selection circuit 26 every time the memory group storage bag M22 is referenced or set. It has relative time order information, and the information of the oldest referenced and set area is discarded as the new area to be registered.
制御回路27は命令データレジスタ9の内容を信号線6
6を通じて受は取り、命令の種類に応じてレジスタ内容
管理装置7内の各部が以下の動作を行なうように比較回
路23、設定回路25の制御を行なう。The control circuit 27 transfers the contents of the command data register 9 to the signal line 6.
The comparator circuit 23 and the setting circuit 25 are controlled so that each section in the register content management device 7 performs the following operations depending on the type of instruction.
■ LoadRagister Ri 、 Rj比較
回路23はRjのグループ番号がOでなく。■ Load Ragister Ri, Rj comparison circuit 23 has Rj group number not O.
Riのグループ番号と等しい場合には、信号線69へ命
令を無視する旨を出力する。If it is equal to the group number of Ri, a message indicating that the command is to be ignored is output to the signal line 69.
Rjのグループ番号がOでなく、Riのグループ番号が
これと等しくない場合には、設定回路25がRiのグル
ープ番号をRjのグループ番号に設定する。If the group number of Rj is not O and the group number of Ri is not equal to this, the setting circuit 25 sets the group number of Ri to the group number of Rj.
Rjのグループ番号がOであれば、未使用グループ検出
回路24によりレジスタ・グループ記憶装置21のなか
でRiを除くレジスタで使っていないグループ番号g
(O以外)を見つけ、設定回路25がメモリ・グループ
記憶装置22のなかでGNがgに等しいものがあればO
に書きかえて、レジスタ・グループ記憶装置21のRi
とRjのグループ番号をgに設定する。If the group number of Rj is O, the unused group detection circuit 24 detects a group number g that is not used in any register other than Ri in the register group storage device 21.
(other than O), and if the setting circuit 25 finds one in the memory group storage device 22 where GN is equal to g, O
Ri of the register group storage device 21
and set the group number of Rj to g.
■ Load Ri 、 M
メモリ・グループ記憶装置22のなかでメモリアドレス
値がMであり、そのグループ番号がOでなくレジスタ・
グループ記憶装置21のRiのグループ番号と等しい場
合には、比較回路23が信号線69へ命令を無視する旨
を出力する。■ Load Ri, M The memory address value is M in the memory group storage device 22, and the group number is not O but a register.
If the group number is equal to the group number of Ri in the group storage device 21, the comparison circuit 23 outputs to the signal line 69 a message indicating that the command is ignored.
メモリ・グループ記憶表W122のなかでメモリアドレ
ス値がMであり、そのグループ番号がOでなくレジスタ
・グループ記憶装置21の(Riと異なるレジスタ)R
jのグループ番号と等しい場合には、比較回路23が信
号g69へ命令をLoadRegistsr Ri
、 Rjに変更する旨を出力し、設定回路25がRiの
グループ番号をRjのグループ番号に設定する。In the memory group storage table W122, the memory address value is M, and its group number is not O, but R of the register group storage device 21 (a register different from Ri).
If it is equal to the group number of j, the comparison circuit 23 sends a command to the signal g69.
, Rj, and the setting circuit 25 sets the group number of Ri to the group number of Rj.
上記以外の場合には、未使用グループ検出回路24によ
りレジスタ・グループ記憶装置21のなかでRiを除く
レジスタで使っていないグループ番号g (O以外)を
見つけ、設定回路25がメモリ・グループ記憶表ff!
22のなかでGNがgに等しいものがあれば0に書きか
えて、レジスタ・グループ記憶表r121のRiのグル
ープ番号をgに設定し、メモリ・グループ登録領域選択
回路26が選択したメモリ・グループ記憶袋e22内の
領域のGNにグループ番号g、MAにメモリアドレス値
Mを設定回路25が登録する。In cases other than the above, the unused group detection circuit 24 finds an unused group number g (other than O) in the registers other than Ri in the register group storage device 21, and the setting circuit 25 searches the memory group storage table. ff!
22, if there is one whose GN is equal to g, it is rewritten to 0, the group number of Ri in the register group storage table r121 is set to g, and the memory group selected by the memory group registration area selection circuit 26 is The setting circuit 25 registers the group number g in the GN and the memory address value M in the MA of the area in the memory bag e22.
■ 5tore Ri、M
メモリ・グループ記憶表!!!22のなかでメモリアド
レス値がMであり、そのグループ番号がOでなくレジス
タ・グループ記憶装置21のRiのグループ番号と等し
い場合には、比較回路23が信号線69へ命令を無視す
る旨番出力する。■ 5tore Ri, M memory group memory table! ! ! 22, if the memory address value is M and its group number is not O but equal to the group number of Ri in the register/group storage device 21, the comparison circuit 23 sends a number to the signal line 69 indicating that the command is to be ignored. Output.
その他でRiのグループ番号gが0でない場合には、メ
モリ・グループ記憶表@22でメモリアドレス値がMで
ある領域があればそれらのすべてについてグループ番号
をOに設定し、メモリ・グループ登録領域選択回路26
が選択したメモリ・グループ記憶装置22内の領域のG
Nにグループ番号g、MAにメモリアドレス値Mを設定
回路25が登録する。Otherwise, if the group number g of Ri is not 0, if there is an area with the memory address value M in the memory group storage table @22, set the group number to O for all of them, and Selection circuit 26
G of the area in the memory group storage device 22 selected by
The setting circuit 25 registers the group number g in N and the memory address value M in MA.
Riのグループ番号が0である場合には、メモリ・グル
ープ記憶装置!22でメモリアドレス値がMである領・
域があればそれらのすべてについてグループ番号をOに
設定し、さらに未使用グループ検出回路24によりレジ
スタ・グループ記憶装置21のなかでRiを除くレジス
タで使っていないグループ番号g (0以外)を見つけ
、設定回路25がメモリ・グループ記憶装置!22のな
かでGNがgに等しいものがあれば0に書きかえて。If the group number of Ri is 0, then the memory group storage! 22 and the memory address value is M.
If there is an area, set the group number to O for all of them, and then use the unused group detection circuit 24 to find a group number g (other than 0) that is not used in any register other than Ri in the register/group storage device 21. , the setting circuit 25 is a memory group storage device! If there is something in 22 where GN is equal to g, change it to 0.
レジスタ・グループ記憶表[21のRiのグループ番号
をgに設定し、メモリ・グループ登録領域選択回路26
が選択したメモリ・グループ記憶装置!22内の領域の
GNにグループ番号g、MAにメモリアドレス値Mを設
定回路25が登録する。The group number of Ri in the register/group storage table [21 is set to g, and the memory group registration area selection circuit 26
Selected memory group storage device! A setting circuit 25 registers a group number g in GN and a memory address value M in MA in the area within 22.
■メモリMの参照命令Add Ri、M等メモリ・グ
ループ記憶装置22のなかでメモリアドレス値がMであ
り、そのグループ番号が0でなくレジスタ・グループ記
憶装置21の中に、等しいグループ番号を持つレジスタ
Rjがある場合には、比較回路23が信号線69ヘメモ
リMの参照命令をレジスタRjの参照命令に変更する旨
を出力する。■Memory M reference instruction Add Ri, M, etc. The memory address value is M in the memory group storage device 22, and its group number is not 0 but has the same group number in the register group storage device 21. If there is a register Rj, the comparison circuit 23 outputs to the signal line 69 a message indicating that the memory M reference instruction is to be changed to the register Rj reference instruction.
■レジスタRiの変更命令 Add Ri、M等設定
回路25がレジスタ・グループ記憶装置21内のRiの
グループ番号をOに設定する。(2) Command to change register Ri Add Ri, M, etc. setting circuit 25 sets the group number of Ri in register group storage device 21 to O.
■(■を除く)メモリMの変更命pc1ear M等メ
モリ・グループ記憶装置!222でメモリアドレス値が
Mである領域があればそれらのすべてについてグループ
番号を0に設定する。■ (Excluding ■) Memory M change order pc1ear M etc. memory group storage device! At step 222, if there is an area whose memory address value is M, the group number is set to 0 for all of them.
第12図に処理方式のフローチャートを示す。FIG. 12 shows a flowchart of the processing method.
以下、第8図に示す目的譜の実行を例にして説明する。The following will explain the execution of the objective score shown in FIG. 8 as an example.
第8図において、R1はレジスタ、A。In FIG. 8, R1 is a register, A.
Bゆメモリ上のアドレスを表わす。Represents an address on B memory.
最初の実施□例のままではステップ121の命令の実行
後にR1とAの等価性が定義されるが、1つのレジスタ
について1つまでしかメモリ上のアドレスが記憶できな
いので、ステップ122の命令の実行後にR1とBの等
価性が定義されることでR1とAの等価性の情報が失わ
れてしまい、ステップ123の命令が冗長にもかかわら
ず実行されてしまうという問題点があった。この実施例
ではR1とA、R1とBの等価性の両方の情報が残るた
めにステップ123の命令は実行されない。In the first implementation □ example, the equivalence of R1 and A is defined after the execution of the instruction in step 121, but since only one address in memory can be stored for one register, the instruction in step 122 is executed. When the equivalence between R1 and B is defined later, the information on the equivalence between R1 and A is lost, and there is a problem in that the instruction in step 123 is executed even though it is redundant. In this embodiment, the instruction in step 123 is not executed because the information on the equivalence of R1 and A and the equivalence of R1 and B remain.
これにより最初の実施例よりも命令の簡素化される場合
が増え、より高速に実行できる。As a result, the instructions can be simplified in more cases than in the first embodiment, and can be executed faster.
この実施例ではレジスタ・グループ記憶装置21やメモ
リ・グループ記憶装置22の中でグループ番号がO以外
であっても有効でない場合、すなわちレジスタ・グルー
プ記憶装置21であるレジスタのグループ番号が他のレ
ジスタやメモリで同じグループ番号がない場合や、メモ
リ・グループ記憶装置ff22で使われているグループ
番号がレジスタ・グループ記憶装置21の中で使われて
いないグループ番号である場合には、必要となった時点
でグループ番号が再設定や不定にされるとしているが、
グループ番号が無効となった時点を検出して、直ちに不
定とする方式にしてもよい。In this embodiment, if a group number other than O in the register group storage device 21 or memory group storage device 22 is not valid, that is, if the group number of a register in the register group storage device 21 is different from that of another register. This is necessary if there is no same group number in the memory or memory, or if the group number used in the memory group storage device ff22 is a group number that is not used in the register group storage device 21. It is said that the group number will be reset or made undefined at this point.
A method may also be adopted in which the point in time when a group number becomes invalid is detected and the group number is immediately made undefined.
他の実施例としては、第9図に示すように制御命令バッ
ファ29を設けて、複数の命令の解読結果をためておき
、制御命令簡略化装置28により実行前に制御内容を変
更することが考えられる。As another embodiment, as shown in FIG. 9, a control instruction buffer 29 may be provided to store the decoding results of a plurality of instructions, and a control instruction simplification device 28 may change the control contents before execution. Conceivable.
制御命令簡略化装置28は制御命令バッファ29にため
られている制御命令を読みとり、もし可能であれば制御
命令バッファ29の制御命令を簡略化する。The control command simplification device 28 reads the control commands stored in the control command buffer 29, and simplifies the control commands in the control command buffer 29 if possible.
制御命令バッファ29は命令解読装置!11から、機械
命令を解読した結果の制御命令列を受は坂り、先入れ先
出しくF I FO)方式のバッファとして働き、外部
からの制御実行信号により先頭の制御命令を信号線70
から出力する。The control command buffer 29 is a command decoding device! 11, the control instruction string resulting from decoding the machine instructions is received and processed as a first-in, first-out (FIFO) buffer, and the first control instruction is transferred to the signal line 70 by an external control execution signal.
Output from.
これにより何命令か先に実行される命令との組み合わせ
によっては、より簡素化された制御を行なうことができ
る。また目的譜、なすわち命令語のレベルでは最適化で
きないが、1つの命令語が複数の制御命令に展開される
場合に、制御命令のレベルでは命令の組み合わせによっ
ては制御が簡素化できることがある。This makes it possible to perform more simplified control depending on the combination of instructions that are executed several instructions earlier. Furthermore, although optimization cannot be achieved at the level of the objective score, that is, the command word, control may be simplified depending on the combination of commands at the control command level when one command word is expanded to multiple control commands. .
以下、第10図に示す目的譜の実行を例にして説明する
。第10図においてR1はレジスタ、0゜1は定数、N
はメモリ上のアドレス、R03゜LO4,LO5はラベ
ルを表おす。The following will explain the execution of the target score shown in FIG. 10 as an example. In Figure 10, R1 is a register, 0°1 is a constant, and N
is an address on the memory, and R03゜LO4, LO5 are labels.
ステップ131のLoad命令でR1にOをロードした
後で、ステップ132のAdd命令でR1に1を加算す
る。この2つの命令を実行時にR1に1をロードする命
令と同じ制御に置き換えることができる。ステップ13
2へは他から制御が合流するので目的譜上で命令を置き
換えておくことはできない。After O is loaded into R1 with the Load instruction in step 131, 1 is added to R1 with the Add instruction in step 132. These two instructions can be replaced with the same control as the instruction that loads 1 into R1 during execution. Step 13
Since control from other sources merges into 2, it is not possible to replace the command on the destination score.
またステップ135のCa1l命令の後にステップ13
6の分岐命令があるので、Ca1l全1l命令実ベルL
O5で示されるサブルーチンから戻るときのアドレス、
すなわちステップ136の命令のアドレスをスタック等
に退避する制御において、この退避するアドレスをラベ
ルLO3で示されるステップ132の命令のアドレスと
することにより#Jllを簡素化することができる。こ
の最適化は目的譜のレベルで行うことはできない。Also, after the Ca1l instruction in step 135, step 13
Since there are 6 branch instructions, Ca1l total 1l instruction actual bell L
Address when returning from subroutine indicated by O5,
That is, in the control of saving the address of the instruction in step 136 to a stack or the like, #Jll can be simplified by setting this address to be saved as the address of the instruction in step 132 indicated by label LO3. This optimization cannot be done at the target score level.
本発明によれば、制御管理装置により制御装置の管理を
し、制御命令の冗長性を低下させることができるので、
情報処理装置の実行速度を上げるという効果がある。こ
れは最適化機能を持ったコンパイラを用いずに得た目的
譜の実行時に最適化を行なったり、最適化機能を持った
コンパイラが解析できない部分や機械命令レベルの目的
譜では最適化できない部分についても、実行時に制御管
理装置内の情報を使うことで最適化した制御を行なうこ
とができる。また実行前にあらかじめ目的譜を制御命令
のレベルに展開しておく方式にした場合に比べて、本発
明の方式では機械命令のレベルで記憶しているためメモ
リサイズが数分の1以下ですむ。特に繰り返し等で同じ
部分を何回も実行する場合は、記憶容量の制約から制御
命令レベルに展開しておくことが不可能である場合があ
るが、本発明の方式では展開を実行時に行なうので実施
可能である。According to the present invention, since the control device can be managed by the control management device and the redundancy of control instructions can be reduced,
This has the effect of increasing the execution speed of the information processing device. This is done when executing the target score obtained without using a compiler with an optimization function, or for parts that cannot be analyzed by a compiler with an optimization function or parts that cannot be optimized with a machine instruction level target score. It is also possible to perform optimized control by using information in the control management device during execution. In addition, compared to a method in which the objective score is expanded to the level of control instructions before execution, the method of the present invention stores it at the level of machine instructions, so the memory size can be reduced to a fraction of that. . In particular, when the same part is executed many times due to repetition, etc., it may be impossible to expand to the control instruction level due to storage capacity constraints, but with the method of the present invention, expansion is performed at the time of execution. It is possible to implement.
第1図は本発明の情報処理装置の構成を示すブロック図
、第2図、第3図は本発明の一実施例のブロック図、第
4図は目的譜の例であり本発明の一実施例の説明図、第
5図は本発明の他の実施例のブロック図、第6図は本発
明のレジスタ・グループ記憶装置の内部表現を示す説明
図、第7図は本発明のメモリ・グループ記憶装置の内部
表現を示す説明図、第8図は目的譜の例であり本発明の
他の実施例の説明図、第9図は本発明の他の実施例のブ
ロック図、第10図は目的譜の例であり本発明の他の実
施例の説明図、第11図、第12図は本発明の処理方式
を示すフローチャートである。
1・・・制御管理装置、2・・・命令展開装置、3・・
・命令実行装置、5・・・記憶装置、6・・・レジスタ
・メモリ等価情報記憶装置、7・・・レジスタ内容管理
装置。
8・・・命令アドレスレジスタ、9・・・命令データレ
ジスタ、10・・・制御命令合成回路、11・・・命令
解読装置、12・・・レジスタ、13・・・レジスタ等
価記憶比較回路、14・・・レジスタ等価記憶設定回路
、15・・・レジスタ内容管理装置制御回路、21・・
・レジスタ、・グループ記憶装置、22・・・メモリ・
グループ記憶装置、23・・・比較回路、24・・・未
使用グループ検出回路、25・・・設定回路、26・・
・メモリ・グループ登録領域選択回路、27・・・制御
回路。
28・・・制御命令簡略化装置、29・・・制御命令バ
ッファ、51〜54%62〜75.79〜94・・・信
号線、101〜113,121〜123,131罵 3
口
LoaA R1,0−101
Stye RI 、 S −10ZL
aaA R2,A −1035ta
re R2r工 ・/θ4LOI
: Load R1,S
−+ 05AJdR1,Z
・・・lθ6Store R1,S
−/θ7Call LD2
・・・lρ3LoatJ Ii’2. I
、−10QAdd R2,1−NO
5tore R2,工 99.1II
CallIpareR2,8−/ 12Brarlch
、SmaLlorEquaL LD l −/
/ 3第6 図 第 7 固
R1口==トzt−r ロI==122−/R
70]2/−慌 口 22− KLJ
d Rr、A ”’123
Lotd R1,0−131
Lθ3: Add R1,l ・・・13
2CompLlre R1,/V =、133Bra
nch、Bin LO4−134Call L O
5・・・135
BranCh L03 =136¥;rt1j
JJ(久)
K n I21<b)
第 +2 旦 (久)
¥J tz 図(b)FIG. 1 is a block diagram showing the configuration of an information processing apparatus of the present invention, FIGS. 2 and 3 are block diagrams of an embodiment of the present invention, and FIG. 4 is an example of a goal score, which is an embodiment of the present invention. FIG. 5 is a block diagram of another embodiment of the present invention. FIG. 6 is an explanatory diagram showing the internal representation of the register group storage device of the present invention. FIG. 7 is a block diagram of another embodiment of the present invention. FIG. 8 is an explanatory diagram showing the internal representation of the storage device, FIG. 8 is an example of a target score, and is an explanatory diagram of another embodiment of the present invention. FIG. 9 is a block diagram of another embodiment of the present invention. FIGS. 11 and 12, which are examples of objective scores and are explanatory diagrams of other embodiments of the present invention, are flowcharts showing the processing method of the present invention. 1... Control management device, 2... Command expansion device, 3...
- Instruction execution device, 5... Storage device, 6... Register memory equivalent information storage device, 7... Register content management device. 8... Instruction address register, 9... Instruction data register, 10... Control instruction synthesis circuit, 11... Instruction decoding device, 12... Register, 13... Register equivalent storage comparison circuit, 14 . . . Register equivalent memory setting circuit, 15 . . . Register content management device control circuit, 21 .
・Register, ・Group storage device, 22...Memory
Group storage device, 23... Comparison circuit, 24... Unused group detection circuit, 25... Setting circuit, 26...
-Memory group registration area selection circuit, 27...control circuit. 28... Control instruction simplification device, 29... Control instruction buffer, 51-54% 62-75. 79-94... Signal line, 101-113, 121-123, 131 3
Mouth LoaA R1,0-101 Stye RI, S-10ZL
aaA R2,A-1035ta
re R2r engineering ・/θ4LOI
: Load R1,S
-+ 05AJdR1,Z
・・・lθ6Store R1,S
-/θ7Call LD2
...lρ3LoatJ Ii'2. I
, -10QAdd R2,1-NO 5tore R2, Engineering 99.1II
CallIpareR2,8-/12Brarlch
, SmaLlorEquaL LD l −/
/ 3 Figure 6 Figure 7 Hard R1 mouth==Tozt-r Ro I==122-/R
70] 2/- panic mouth 22- KLJ
d Rr, A ”'123 Lotd R1,0-131 Lθ3: Add R1,l...13
2CompLlre R1,/V =, 133Bra
nch, Bin LO4-134Call LO
5...135 BranCh L03 = 136 yen; rt1j
JJ (ku) K n I21<b) th +2nd day (ku) ¥J tz Figure (b)
Claims (1)
を設けたことを特徴とする情報処理方式。 2、前記管理ステップでレジスタとメモリ間の等価性を
記憶することを特徴とする特許請求の範囲第1項記載の
情報処理方式。 3、前記等価性を各々のレジスタに対して1つのメモリ
との等価性を記憶することを特徴とする特許請求の範囲
第2項記載の情報処理方式。 4、前記等価性をレジスタやメモリ間のグループ番号で
記憶することを特徴とする特許請求の範囲第2項記載の
情報処理方式。 5、前記管理ステップに機械命令を解読した結果の制御
指令をためておくバッファを設け、実行前に制御指令の
変更を行なうことを特徴とする特許請求の範囲第1項記
載の情報処理方式。 6、情報処理装置において制御命令を管理する制御管理
装置を設けたことを特徴とする情報処理装置。 7、前記制御管理装置内にレジスタとメモリ間の等価性
を記憶する記憶装置を設けたことを特徴とする特許請求
の範囲第6項記載の情報処理装置。 8、前記等価性を各々のレジスタに対して1つのメモリ
との等価性を記憶する記憶装置を設けたことを特徴とす
る特許請求の範囲第7項記載の情報処理装置。 9、前記等価性をレジスタやメモリ間のグループ番号で
記憶する記憶装置を設けたことを特徴とする特許請求の
範囲第7項記載の情報処理装置。 10、前記制御管理装置に機械命令を解読した結果の制
御指令をためておくバッファを設け、実行前に制御指令
の変更を行なうことを特徴とする特許請求の範囲第6項
記載の情報処理装置。 11、情報処理方式において制御ステップを命令展開ス
テップと命令実行ステップに分けて並列に実行すること
を特徴とする情報処理方式。 12、情報処理装置において制御装置を命令展開装置と
命令実行装置に分けて並列に実行することを特徴とする
情報処理装置。[Scope of Claims] 1. An information processing method, characterized in that the information processing method includes a step of managing control commands. 2. The information processing system according to claim 1, wherein equivalence between a register and a memory is stored in the management step. 3. The information processing system according to claim 2, wherein the equivalence with one memory is stored for each register. 4. The information processing system according to claim 2, wherein the equivalence is stored as a group number between registers or memories. 5. The information processing system according to claim 1, wherein a buffer is provided in the management step to store control commands resulting from decoding machine commands, and the control commands are changed before execution. 6. An information processing device, characterized in that the information processing device includes a control management device that manages control commands. 7. The information processing device according to claim 6, wherein a storage device is provided in the control management device to store equivalence between a register and a memory. 8. The information processing apparatus according to claim 7, further comprising a storage device for storing the equivalence with one memory for each register. 9. The information processing apparatus according to claim 7, further comprising a storage device that stores the equivalence using a group number between registers or memories. 10. The information processing device according to claim 6, wherein the control management device is provided with a buffer for storing control commands resulting from decoding machine commands, and the control commands are changed before execution. . 11. An information processing method characterized in that a control step is divided into an instruction expansion step and an instruction execution step and executed in parallel. 12. An information processing device characterized in that the control device is divided into an instruction expansion device and an instruction execution device and executed in parallel.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP9512087A JPS63261430A (en) | 1987-04-20 | 1987-04-20 | Information processing method and device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP9512087A JPS63261430A (en) | 1987-04-20 | 1987-04-20 | Information processing method and device |
Publications (1)
Publication Number | Publication Date |
---|---|
JPS63261430A true JPS63261430A (en) | 1988-10-28 |
Family
ID=14128973
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP9512087A Pending JPS63261430A (en) | 1987-04-20 | 1987-04-20 | Information processing method and device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPS63261430A (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04273387A (en) * | 1991-02-28 | 1992-09-29 | Nec Corp | Image processor |
US5644769A (en) * | 1993-06-14 | 1997-07-01 | Matsushita Electric Industrial Co., Ltd. | System for optimizing program by virtually executing the instruction prior to actual execution of the program to invalidate unnecessary instructions |
US5790867A (en) * | 1996-01-02 | 1998-08-04 | International Business Machines Corporation | Compiler with extended redundant copy elimination |
-
1987
- 1987-04-20 JP JP9512087A patent/JPS63261430A/en active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04273387A (en) * | 1991-02-28 | 1992-09-29 | Nec Corp | Image processor |
US5644769A (en) * | 1993-06-14 | 1997-07-01 | Matsushita Electric Industrial Co., Ltd. | System for optimizing program by virtually executing the instruction prior to actual execution of the program to invalidate unnecessary instructions |
US5790867A (en) * | 1996-01-02 | 1998-08-04 | International Business Machines Corporation | Compiler with extended redundant copy elimination |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2665111B2 (en) | Vector processing equipment | |
JPH0814801B2 (en) | Programmable access memory | |
EP0669579B1 (en) | Coherence index generation for use by an input/output adapter | |
JPH0668736B2 (en) | Apparatus and method for providing a cache memory unit with a write operation utilizing two system clock cycles | |
US6964049B2 (en) | Smart internetworking operating system for low computational power microprocessors | |
JPH11232247A (en) | Data flow calculator and data flow control method | |
JPS63261430A (en) | Information processing method and device | |
JPH0628499A (en) | Data driving-type information processor | |
US4816992A (en) | Method of operating a data processing system in response to an interrupt | |
JP2853652B2 (en) | Packet transmitting method and apparatus in inter-processor communication | |
US5675776A (en) | Data processor using FIFO memories for routing operations to parallel operational units | |
US6671781B1 (en) | Data cache store buffer | |
JP3500561B2 (en) | Shared data buffer | |
US20030014474A1 (en) | Alternate zero overhead task change circuit | |
JP3982077B2 (en) | Multiprocessor system | |
JPH01273132A (en) | Microprocessor | |
JP2001184259A (en) | Arithmetic processor and data transferring method in the device | |
JP3424430B2 (en) | Processor | |
JP2716254B2 (en) | List vector processing device | |
JP2522372B2 (en) | Data driven computer | |
JPH10111798A (en) | Information processing device | |
JP2847729B2 (en) | Information processing device | |
JPH05313888A (en) | Instruction buffer system | |
JPS5960547A (en) | Interface conversion device | |
JPH07262008A (en) | Parallel branch processor |