JPH0451328A - Composite type instruction scheduling processing system - Google Patents
Composite type instruction scheduling processing systemInfo
- Publication number
- JPH0451328A JPH0451328A JP16108690A JP16108690A JPH0451328A JP H0451328 A JPH0451328 A JP H0451328A JP 16108690 A JP16108690 A JP 16108690A JP 16108690 A JP16108690 A JP 16108690A JP H0451328 A JPH0451328 A JP H0451328A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- operations
- type instruction
- composite type
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
- Multi Processors (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
Description
【発明の詳細な説明】
〔概要〕
同時発信の単位となる命令中に複数のオペレーションが
格納される複合型命令におけるオペレーションの組み合
わせおよび配置位置を決定する複合型命令スケジューリ
ング処理方式に関し実行性能のよい複合型命令を効率的
に作成できるようにすることを目的とし。[Detailed Description of the Invention] [Summary] The present invention relates to a compound instruction scheduling processing method that has good execution performance and determines the combination and arrangement position of operations in compound instructions in which multiple operations are stored in an instruction that is a unit of simultaneous transmission. The purpose is to enable efficient creation of complex type instructions.
直線的に並べられたオペレーションについてのデータ依
存関係を解析するデータ依存解析処理部と、解析したデ
ータ依存関係をもとに、オペレーションの優先順位を決
定する優先順位決定処理部と、決定した優先順位に従っ
て、各オペレーションを複合型命令に配置する複合型命
令作成処理部とを備えるように構成する。A data dependency analysis processing unit that analyzes data dependencies for linearly arranged operations, a priority determination processing unit that determines the priority of operations based on the analyzed data dependency, and the determined priority. Accordingly, the present invention is configured to include a composite type instruction creation processing unit that arranges each operation into a composite type instruction.
本発明は、同時発信の単位となる命令中に複数のオペレ
ーションが格納される複合型命令におけるオペレーショ
ンの組み合わせおよび配置位置を決定する複合型命令ス
ケジューリング処理方式に関する。The present invention relates to a complex instruction scheduling processing method that determines the combination and location of operations in a complex instruction in which a plurality of operations are stored in an instruction that is a unit of simultaneous transmission.
第10図は本発明の詳細な説明するだめの複合型命令の
例を示す。FIG. 10 shows an example of a complex type instruction which does not provide a detailed explanation of the present invention.
複数個の演算ユニットを備え1いくつかの命令を組み合
わせた複合型命令を、同時発信して、並列に実行させる
ことにより、命令実行の高速化を図った計算機が考えら
れている。第10図は、その複合型命令の例であって、
96ピント長の複合型命令の中に、それぞれ32ビツト
長の3個の命令を格納できるようになっている。以下、
複合型命令の中に格納されている個々の命令を、“オペ
レーション”という。2. Description of the Related Art Computers have been proposed that are equipped with a plurality of arithmetic units and that simultaneously issue compound instructions that are a combination of several instructions and execute them in parallel, thereby increasing the speed of instruction execution. FIG. 10 is an example of the compound type instruction,
Three instructions each having a length of 32 bits can be stored in a composite type instruction having a length of 96 pins. below,
Each instruction stored in a compound instruction is called an "operation."
このオペレーションを複合型命令の並びの中にどう配置
するかによって、その実行性能が変わってくることにな
るが、従来、オペレーションを配置する命令スケジュー
リングの処理について、効率のよい方式が確立されてい
なかった。Execution performance will vary depending on how this operation is arranged in the sequence of complex instructions, but until now, no efficient method has been established for instruction scheduling processing for arranging operations. Ta.
複合型命令アーキテクチャの命令スケジューリング時に
は、以下の点を考慮する必要がある。When scheduling instructions for a complex instruction architecture, the following points need to be considered.
(1)各オペレーションは、それぞれ実行時間が異なる
。すなわち、実行に要するマシンクロック数が異なる。(1) Each operation has a different execution time. That is, the number of machine clocks required for execution is different.
(2)オペレーションの組み合わせや、オペレーション
を複合型命令のどの位置に置くかということには、制限
がある。(2) There are restrictions on the combination of operations and where the operations are placed in a complex instruction.
これらの点を考慮して、最短時間で実行できる複合型命
令を作成するとともに、できるだけ少ない複合型命令数
で、所望する処理を実現できるようにすることが望まれ
る。Taking these points into consideration, it is desirable to create complex instructions that can be executed in the shortest possible time, and to realize desired processing with as few complex instructions as possible.
本発明は上記問題点の解決を図り、実行性能のよい複合
型命令を効率的に作成できるようにすることを目的とし
ている。An object of the present invention is to solve the above-mentioned problems and to make it possible to efficiently create complex instructions with good execution performance.
第1図は本発明の原理説明図である。 FIG. 1 is a diagram explaining the principle of the present invention.
第1図において、10はCPUおよびメモリなどを備え
たデータ処理装置、11は個々のオペレーションの並び
を記憶するオペレーション列記憶部、12はデータ依存
グラフを作成するデータ依存解析処理部、13はデータ
依存グラフを解析し優先順位に従ってグラフの並び換え
を行う優先順位決定処理部、14はオペレーションの配
置位置を決定し、複合型命令を作成する複合型命令作成
処理部、15は各オペレーションで扱うデータの定義/
参照関係を示すデータ依存グラフ、16は作成した複合
型命令を格納する複合型命令格納部を表す。In FIG. 1, 10 is a data processing device equipped with a CPU, memory, etc., 11 is an operation sequence storage unit that stores the sequence of individual operations, 12 is a data dependency analysis processing unit that creates a data dependency graph, and 13 is a data 14 is a priority determination processing unit that analyzes the dependency graph and rearranges the graph according to the priority; 14 is a composite instruction creation processing unit that determines the placement position of operations and creates composite instructions; 15 is data handled in each operation. definition/
A data dependency graph showing reference relationships, and 16 represent a composite type instruction storage section that stores the created composite type instructions.
オペレーション列記憶部11は9例えば既存のコンパイ
ラが出力したアセンブラ言語相当の命令列からなる直線
的なオペレーションの並びを記憶する。The operation sequence storage unit 11 stores a linear sequence of operations consisting of a sequence of instructions corresponding to an assembler language output by, for example, an existing compiler.
本発明は、このオペレーション列記憶部11に記ffl
されているオペレーション列から、最適な複合命令列を
作成する技術を提供するものである。The present invention stores ffl in this operation string storage unit 11.
This technology provides a technique for creating an optimal sequence of complex instructions from a sequence of operations.
データ依存解析処理部12は、各オペレーション11.
+2.・・・間のデータ依存関係、すなわち定義/参照
関係を解析し、データ依存グラフ15を作成する。The data dependency analysis processing unit 12 processes each operation 11.
+2. . . , the data dependence relationships between them, that is, the definition/reference relationships, are analyzed and a data dependence graph 15 is created.
優先順位決定処理部13は、データ依存グラフ15をも
とに、命令終了可能時間や命令発信可能時間などのいく
つかの基準によりオペレーションの優先順位を決定し、
データ依存グラフ15におけるオペレーションの並び換
えを行う。The priority determination processing unit 13 determines the priority of the operation based on the data dependency graph 15 based on several criteria such as the time when the command can be completed and the time when the command can be issued.
Operations in the data dependency graph 15 are rearranged.
複合型命令作成処理部14ば、優先順位決定処理部13
が決定したオペレーションの優先順位に従って、各オペ
レーションを複合型命令に配置し複合型命令格納部16
に格納する。Composite instruction creation processing section 14, priority order determination processing section 13
Each operation is arranged in a composite type instruction according to the priority order of operations determined by the composite type instruction storage unit 16.
Store in.
オペレーション12が オペレーションi1の定義した
データを参照し、オペレーションi5がオペレーション
i3およびオペレーションi4の定義したデータを参照
し、・・・・・・というように、各オペレーション間に
データの定義/参照の依存関係がある場合、データ依存
解析処理部12は、これを解析して第1図に示すような
データ依存グラフ15を作成する。なお、データ依存グ
ラフ15は、各オペレーションを示す制御表と、それら
の制御表間のポインタによって実現される。Operation 12 refers to the data defined by operation i1, operation i5 refers to the data defined by operations i3 and i4, etc. There is a data definition/reference dependency between each operation. If there is a relationship, the data dependency analysis processing unit 12 analyzes this and creates a data dependency graph 15 as shown in FIG. Note that the data dependency graph 15 is realized by control tables indicating each operation and pointers between these control tables.
このデータ依存グラフ15を参考にすることにより、ど
のオペレーションを先に実行させなければならないかが
わかる。また、各オペレーションの実行可能な時間を考
慮することにより、最短時間で実行できる基準を求める
ことができる。By referring to this data dependency graph 15, it can be determined which operation should be executed first. Furthermore, by considering the executable time for each operation, it is possible to determine a criterion for execution in the shortest time.
特に、この基準として、命令発信可能時間を考慮するこ
とにより、定義/参照関係の逆転を防ぎまた。命令終了
可能時間を考慮することにより全体の終了時間を早くす
ることができる。In particular, by considering the command issuing time as this criterion, it is possible to prevent the definition/reference relationship from being reversed. By considering the possible instruction completion time, the overall completion time can be shortened.
複合型命令作成処理部14は、優先順位決定処理部13
の結果をもとに、オペレーションの組み合わせとして正
しいか否かの判定を行いながら。The composite instruction creation processing unit 14 is a priority order determination processing unit 13
Based on the results, we are determining whether or not the combination of operations is correct.
各オペレーションを複合型命令中に配置していく。Each operation is placed in a compound type instruction.
第1図に示す例では、1番目の複合型命令r1にオペレ
ーションil、i3. i4が配置され2番目の複合
型命令■2にオペレーション12゜i5.i7が配置さ
れ、・・・というように、複合型命令が作成されている
。In the example shown in FIG. 1, the first compound instruction r1 includes operations il, i3. i4 is placed and operation 12゜i5. i7 is placed, and a compound type instruction is created like this.
第2図は本発明により作成する複合型命令を実行する複
合型命令計算機の例、第3図は本発明の適用例、第4図
は本発明の詳細な説明するためのオペレーションの並び
の例、第5図は本発明の実施例に係るデータ依存グラフ
の例、第6図は本発明の実施例で用いるデータ依存グラ
フの節点のデータ構造、第7図は本発明の実施例で用い
る辞書のデータ構造、第8図は本発明の実施例に係る優
先順位の基準の例、第9図は本発明の一実施例処理フロ
ーを示す。FIG. 2 is an example of a compound instruction computer that executes compound instructions created according to the present invention, FIG. 3 is an application example of the present invention, and FIG. 4 is an example of a sequence of operations for explaining the present invention in detail. , FIG. 5 is an example of a data dependency graph according to an embodiment of the present invention, FIG. 6 is a data structure of a node in a data dependency graph used in an embodiment of the present invention, and FIG. 7 is a dictionary used in an embodiment of the present invention. FIG. 8 shows an example of priority criteria according to an embodiment of the present invention, and FIG. 9 shows a processing flow of an embodiment of the present invention.
本発明は1例えば第2図に示す複合型命令計算機20で
実行する複合型命令の列を作成するものである。この複
合型命令計算機20は、2つの整数演算ユニッ)22.
23と、浮動小数点加算ユニット24と、浮動小数点乗
算ユニンI・25の4つの演算ユニットを備えている。The present invention is to create a sequence of compound instructions to be executed by, for example, a compound instruction computer 20 shown in FIG. This compound instruction computer 20 has two integer operation units) 22.
23, a floating point addition unit 24, and a floating point multiplication unit I/25.
これらの各演算ユニットは、並列に動作可能である。Each of these arithmetic units can operate in parallel.
複合型命令は1図示省略した主記憶からフェッチされ、
複合型命令レジスタ21に逐次セットされる。この例で
は、1つの複合型命令内に、最大3つのオペレーション
が入るようになっており。A complex type instruction is fetched from main memory (not shown),
They are sequentially set in the composite instruction register 21. In this example, a maximum of three operations can be included in one compound type instruction.
3オペレーシヨンが同時に発信されて、該当する整数演
算ユニッ1−22.23.浮動小数点加算ユニyト24
.浮動小数点乗算ユニy I□ 25を動作させるよう
になっている。3 operations are issued simultaneously to the corresponding integer arithmetic unit 1-22.23. Floating point addition unit 24
.. It is designed to operate a floating point multiplication unit I□25.
各ユニットは、それぞれ1つのオペレーションだけを実
行できるので、複合型命令の中で組み合わせることので
きるオペレーションは、以下のようなものである。ここ
で。Since each unit can only perform one operation, the operations that can be combined in a compound instruction are as follows. here.
I;整数(Integer)系オペレーション(l、〇
へD/5TORB系を含む)
F:浮動小数点(F loa t i ng)系オペレ
ーションB:分岐系オペレーション
とする。I: Integer type operations (I, ○ include D/5TORB types) F: Floating point type operations B: Branch type operations.
■ B→1個と、I→2個。■ B → 1 piece and I → 2 pieces.
■ B→1個と、I−)1個と、F−+1個。■ B → 1 piece, I-) 1 piece, and F-+1 piece.
■ B→1個と、F→2個。■ B → 1 piece and F → 2 pieces.
■ ■→2個と、F→1個。■ ■→2 pieces and F→1 piece.
■ ■→1個と、F→2個。■ ■→1 piece and F→2 pieces.
第3図は1以上のような複合型命令計算機2゜で実行す
る複合型命令を出力するコンパイラ3゜の構成例を示し
ている。FIG. 3 shows an example of the configuration of a compiler 3° that outputs complex instructions to be executed by one or more complex instruction computers 2˚.
コンパイラ30における処理フェーズ(a)〜(f)は
。The processing phases (a) to (f) in the compiler 30 are as follows.
従来の通常のコンパイラと同様である。すなわち以下の
処理を行う。It is similar to a conventional normal compiler. That is, the following processing is performed.
(a) ソースプログラムを入力して、構文解析を行
つ。(a) Input a source program and perform syntax analysis.
(b) 構文解析結果をもとに、意味解析を行う。(b) Perform semantic analysis based on the syntactic analysis results.
(C) データの割付けを行う。(C) Perform data allocation.
(d) 処理論理の変更やデータ型の変更などの最適
化を行う。(d) Perform optimization such as changing processing logic and data types.
(C) レジスタの割付けを行う。(C) Allocate registers.
(f) アセンブラ言語レベルのコード生成を行う。(f) Generate code at the assembler language level.
本発明は、その次の処理フェーズ(掲に関連しており、
コード生成フェーズ(f)の出力を、実行順に羅列され
たオペレーション列とみて、命令スケジューリングを行
う。その結果、複合型命令を作成する。The present invention relates to the following processing phases:
Instruction scheduling is performed by regarding the output of the code generation phase (f) as a sequence of operations listed in the order of execution. As a result, a compound type instruction is created.
以下、具体例に従って2本発明の詳細な説明する。Hereinafter, two aspects of the present invention will be described in detail according to specific examples.
例えば、第4図に示すようなオペレーション■〜■の並
びから、第2図に示す複合型計算機20で実行する複合
型命令を作成するものとする。For example, suppose that a compound instruction to be executed by the compound computer 20 shown in FIG. 2 is created from the sequence of operations (1) to (2) as shown in FIG.
第4図に示すオペレーションは、それぞれ次のような機
能を持つ。The operations shown in FIG. 4 each have the following functions.
なお、 fprl〜fpr5は浮動小数点レジスタを示
しS b(i)、 a(i)等は変数を示す。Note that fprl to fpr5 indicate floating point registers, and S b(i), a(i), etc. indicate variables.
(1) fload x、r1 浮動小数点変数χの値を、レジスタr1にロドする。(1) flood x, r1 Load the value of floating point variable χ into register r1.
(2) fstore rl、x
レジスタr1内の浮動小数点の値を1変数Xにストアす
る。(2) fstore rl, x Stores the floating point value in register r1 into one variable X.
(3) fmult rl、、r2.r3レジスタ
r1とレジスタr2内の浮動小数点を乗算し、結果をレ
ジスタr3に格納する。(3) fmult rl,, r2. r3 Multiply the floating point number in register r1 and register r2, and store the result in register r3.
(4) fadd rl、r2.r3レジスタr1
とレジスタr2内の浮動小数点を加算し、結果をレジス
タr3に格納する。(4) fadd rl, r2. r3 register r1
and the floating point number in register r2, and store the result in register r3.
本発明に係る命令スケジューリングでは、第4図に示す
ようなオペレーションの並びを入力して。In the instruction scheduling according to the present invention, a sequence of operations as shown in FIG. 4 is input.
以下のような処理を行う。Perform the following processing.
(i)データ依存グラフの作成
入力された各オペレーションを節点とし、そこから、そ
のオペレーションのオペランドを定義している節点およ
び実行順序を変更できない(その命令を追い抜いて実行
できない)節点に対して連鎖および逆連鎖をはる。(i) Creating a data dependence graph Each input operation is set as a node, and from there it is chained to nodes that define the operands of that operation and nodes whose execution order cannot be changed (the instruction cannot be executed by overtaking that instruction). and a reverse chain.
第5図は、第4図に示すオペレーションの並びから作成
したデータ依存グラフの例である。第5図に示す矢印は
定義連鎖であり、この矢印の逆は参照連鎖となる。例え
ば■のオペレーションではfprL fpr2を参照し
ており、このfprl、、 fpr2を定義しているオ
ペレーションは■、■であることから、■から■および
■への定義連鎖がはられることになる。FIG. 5 is an example of a data dependency graph created from the sequence of operations shown in FIG. The arrow shown in FIG. 5 is a definition chain, and the inverse of this arrow is a reference chain. For example, the operation ■ refers to fprL fpr2, and the operations that define fprl, fpr2 are ■ and ■, so a definition chain from ■ to ■ and ■ is created.
この節点の情報は1例えば第6図に示すようなデータ構
造によって管理される。ここで、各要素は、以下の内容
である。Information on this node is managed by a data structure as shown in FIG. 6, for example. Here, each element has the following contents.
命令列 :入力オペレーションを指す。Instruction sequence: Refers to input operations.
節点番号二人力順のオペレーションの番号。Node number Number of operations in two-person order.
定義連鎖:このオペレーションが利用しているオペレー
ションへの連鎖(すなわち。Definition Chain: Chain to the operations that this operation utilizes (i.e.
このオペレーションより以前に実行 されていなければならないオペレー ションへの連鎖)。executed before this operation Operations that must be performed (linkage to tion).
参照連鎖・このオペレーションの結果を利用しているオ
ペレーションへの連鎖。Reference Chain - Chain to operations that are using the result of this operation.
FINISll :節点を並び換える基準値。FINISll: Standard value for sorting nodes.
DISPATCII :節点を並び換える第2の基準値
。DISPATCII: Second reference value for sorting nodes.
オペランドの定義/参照は、各オペレージジンに出現す
るオペランドを、第7図に示すようなデータ構造を持つ
「辞書」に登録し、オペランドの出現ごとに、この辞書
の参照・更新・登録を行っていくことにより、調べるこ
とができる。To define/reference operands, register the operands that appear in each operating engine in a "dictionary" with a data structure as shown in Figure 7, and refer to, update, and register this dictionary each time an operand appears. You can find out by going.
木実施例では、検索の高速化のため、この辞書を2分木
構造で管理するようにしており、オペランドのアルファ
ヘット順て、前方のものを左の子供、後方のものを右の
子供とするポインタで管理する。子供となるオペランド
がない場合、 DICTIONARYの要素は、空ポイ
ンタである。In the tree embodiment, in order to speed up the search, this dictionary is managed in a binary tree structure, in which the operands are arranged in alphabetical order, with the front one being the left child and the rear one being the right child. Manage with pointers. If there are no child operands, the elements of DICTIONARY are empty pointers.
オペランドの種類は、浮動小数点レジスタ番号汎用レジ
スタ番号5変数名または定数名の種類を示すものである
。The type of operand indicates the type of floating point register number, general purpose register number 5, variable name or constant name.
(11)データ依存グラフの解析
データ依存グラフが完成したならば、そのグラフをもと
に、命令を選択するだめの優先順位の基準を計算する。(11) Analysis of data dependence graph Once the data dependence graph is completed, based on the graph, a priority order criterion for selecting instructions is calculated.
データ依存グラフは、前述のように各節点(第ペレーシ
ョンの定義/参照関係を示したものといえる。As mentioned above, the data dependency graph can be said to show the definition/reference relationship of each node (peration).
2節点u、vの間に、v−ンuの関係がある(節点Vの
定義連鎖が節点Uを指している)ということは、■の実
行はUの実行が完了するまで待たなければならないこと
を意味する。これはUの実行かtτ(τはマシンサイク
ル)かかるとすればVの実行は、Uの開始後もτ後に実
行されるということである。There is a v-u relationship between the two nodes u and v (the definition chain of node V points to node U), which means that the execution of ■ must wait until the execution of U is completed. It means that. This means that if the execution of U takes tτ (τ is machine cycles), then the execution of V will be executed after τ even after the start of U.
このように、定義連鎖でつながれている節点の間には、
「優先権」が存在する。この優先権を考慮したスケジュ
ールを行わなければならない。また、いくつかの実行可
能なオペレーションがあった場合に、実行の終了に長時
間かかるオペレーションを優先的に実行させたほうが、
効率よくスケジュールすることができる。そのため、命
令終了可能時間を示すFINISIIと、命令発信可能
時間を示すDISFATCllの2つの以下の基準を用
いる。In this way, between the nodes connected by the definition chain,
There is a "right of priority." The schedule must take this priority into account. Also, when there are several executable operations, it is better to give priority to operations that take a long time to complete.
You can schedule efficiently. Therefore, the following two criteria are used: FINISII, which indicates the time when the command can be completed, and DISFATCll, which indicates the time when the command can be issued.
■ FINISII
命令終了可能時間を示ず基準をF I 11 I S
I+といい。■ FINISII FI 11 I S without indicating the time when the instruction can be completed
It's called I+.
以下の式で計算する。FINISII値が大きいほど、
早く発信させる必要がある。Calculate using the following formula. The larger the FINISII value, the
We need to send it out quickly.
(vlv−>ul→:定義連鎖
ここで EX[EC(x)は1節点Xのオペレーション
を実行するのに必要とするマシンサイクル数である。(vlv->ul→: definition chain where EX[EC(x) is the number of machine cycles required to execute the operation of one node X.
■ DISFATCll
DISPATCII(V)は、オペレーションVがその
演算ユニンl−に発信される最短のマシンサイクル時を
示したものである。(2) DISPATCll DISPATCII (V) indicates the shortest machine cycle time during which operation V is sent to its arithmetic unit l-.
各オペレーションが実行される演算ユニットが空き状態
で、キャッシュミスやTLBヒツトミスなどがない通常
状態であれば、そのオペレーションの実行時間は、ハー
ドウェアによって決まっている。If the arithmetic unit on which each operation is executed is in a normal state with no cache misses or TLB hit misses, the execution time of the operation is determined by the hardware.
したがって、 DISF’ATCII(v)は計算可能
であり以下の式により計算される。DISFATCll
値が小さい方はど、早く発信させなければならない。Therefore, DISF'ATCII(v) can be calculated and is calculated by the following formula. DISFATCll
The smaller the value, the sooner it must be transmitted.
(vlv−〉ul→:定義連鎖
第8図(イ)は、第5図に示すデータ依存グラフについ
て1以上の式により計算した各節点のFIN r S
H値(FT)を示しており、第8図(ロ)ハ。(vlv->ul→: Definition chain Figure 8 (a) shows the FIN r S of each node calculated using one or more formulas for the data dependence graph shown in Figure 5.
The H value (FT) is shown in Figure 8 (b) and c.
DISFATCll値(DI)を示している。なお、こ
の例では、オペレーションの実行時間を次のように仮定
している。It shows the DISFATCll value (DI). Note that in this example, the execution time of the operation is assumed as follows.
fload/fstoreの実行時間→1τfmult
の実行時間 →4τ
fadd の実行時間 →3τ
(■)節点の並び換え
グラフの解析により求めたFINISIIとDISPA
TCllとをもとに2節点を並び換える。本実施例での
並び換えの基準は、優先度の高いものから以下の通りと
している。Load/fstore execution time → 1τfmult
Execution time of →4τ Execution time of fadd →3τ (■) FINISII and DISPA obtained by analysis of node rearrangement graph
The two nodes are rearranged based on TCll. The criteria for sorting in this embodiment is as follows, starting from the highest priority.
■ FINISIIの早い順番
■ F I N I S I+が等しい場合にはDIS
FATCll値の大きい順番
■ FINISIIもDISI’ATCI+も等しい場
合には。■ Early order of FINIS II ■ If FINIS II+ are equal, DIS
In descending order of FATCll values ■ If FINISII and DISI'ATCI+ are equal.
入力の順番
(iv)複合型命令の作成
優先順位に従って並べ換えた節点の順番に、以下の(a
)〜(C)の要領で複合型命令を作成する。Input order (iv) In the order of the nodes rearranged according to the creation priority of the compound type instruction, the following (a
) to (C) to create a composite type instruction.
(a) まず、オペレーションVを格納すべき複合型
命令を探す。探すときの出発点は。(a) First, search for a complex type instruction in which operation V should be stored. What is your starting point when searching?
■ 複合型命令の基点。■ Base point for complex type instructions.
■ Vを定義している節点Uが格納されている命令の位
置。■ The position of the instruction where the node U that defines V is stored.
■ Vと同じ演算ユニットを使用するもので。■It uses the same calculation unit as V.
■より前に発信されたオペレーションUが格納されてい
る命令の位置
のうち、複合型命令の基点から一番遠い命令。(2) The instruction furthest from the base point of the compound type instruction among the instructions in which the operation U issued before is stored.
すなわち一番遅く発信される命令である。In other words, it is the command that is sent out the latest.
(b) 出発点から複合型命令■をたどり1節点Vが
命令Iの中に組み合わせ的に格納できるかを調べる。も
し格納できる場合には、複合型命令Iの中に■を組み入
れる。格納できない場合には複合型命令■の次の命令に
ついて同しことを行】 8
節点■が、命令Iの中に格納できる条件は1)命令rの
中にオペレーションを入れる余裕がある(3オペレーシ
ヨンすべてが埋まっているわけではない)
ii)3オペレーシヨンの組み合わせが、ハードウェア
的に許されるものである
という条件である。このii)の条件は、演算の組み合
わせについてのテーブルを作成しておけば、容易にチェ
ンジできる。(b) Follow the compound type instruction (2) from the starting point and check whether one node V can be stored in combination in the instruction I. If it can be stored, incorporate ■ into the complex type instruction I. If it cannot be stored, do the same for the next instruction after the compound type instruction ii) The condition is that the combination of the three operations is allowed by the hardware. Condition ii) can be easily changed by creating a table for combinations of operations.
(C) 処理(b)の途中で、命令Iが3オペレーシ
ヨンで埋まったときは、新しく複合型命令を作成しその
中に■を組み込む。(C) During process (b), when instruction I is filled with three operations, a new compound type instruction is created and ■ is incorporated into it.
以上の処理(a)〜(C)が終了したとき、複合型命令
の基点から順にたどったものが、求める複合型命令列と
なる。When the above processes (a) to (C) are completed, the sequence of complex instructions traced sequentially from the base point becomes the desired complex instruction sequence.
第9図は2以上説明した本発明の実施例による処理の概
要を処理フローの形で示したものであり以下のとおりで
ある。FIG. 9 shows an overview of the processing according to the above-described embodiments of the present invention in the form of a processing flow, and is as follows.
(i)各オペレーションを節点としたデータ依存グラフ
を作成する。(i) Create a data dependency graph with each operation as a node.
(11)データ依存グラフを解析し、優先順位の基準と
するFINISII値とDISPATCH値とを各節点
ごとに計算する。(11) Analyze the data dependence graph and calculate the FINISII value and DISPATCH value for each node, which are used as priority standards.
(iii ) FINISII値と旧5PATCII値
とをもとに9節点を並べ換える。(iii) Rearrange the 9 nodes based on the FINISII value and the old 5PATCII value.
(iv)並べ換えた節点の順番に従って、各オペレーシ
ョンを格納すべき複合型命令を探し、格納できる条件を
チェンジしたうえで、複合型命令に組み入れる。(iv) According to the rearranged order of the nodes, search for a compound type instruction in which each operation should be stored, change the storage conditions, and then incorporate it into the compound type instruction.
以上の処理において、(i)〜(iii )は、命令実
行時間をできるだけ短くすることを考慮した処理であり
、(iv)は1命令長を短くすることを考慮した処理と
なっている。In the above processes, (i) to (iii) are processes that take into account shortening the instruction execution time as much as possible, and (iv) is a process that takes into consideration shortening the length of one instruction.
実施例として、第2図に示すような複合計算機20で実
行する複合型命令を作成する命令スケジューリングを説
明したが、演算ユニットの構成が変わっても、同様に本
発明を適用することが可能である。また1同時発信数は
必ずしも3でなくてもよく、同時発信数が異なっていて
も同様に実施できる。As an example, instruction scheduling for creating a compound type instruction to be executed on a compound computer 20 as shown in FIG. be. Further, the number of simultaneous transmissions does not necessarily have to be three, and the same implementation can be performed even if the number of simultaneous transmissions is different.
以上説明したように2本発明によれば、全体の実行時間
が短い最適な複合型命令列を作成することができ2また
。オペレーションを複合型命令に効率的に詰め込むこと
により、複合型命令数を少なくすることが可能になる。As explained above, according to the present invention, it is possible to create an optimal complex instruction sequence with a short overall execution time. By efficiently packing operations into compound instructions, it is possible to reduce the number of compound instructions.
第1図は本発明の原理説明図
第2図は本発明により作成する複合型命令を実行する複
合型命令計算機の例
第3図は本発明の適用例。
第4図は本発明の詳細な説明するためのオペレーション
の並びの例
第5図は本発明の実施例に係るデータ依存グラフの例
第6図は本発明の実施例で用いるデータ依存グラフの節
点のデータ構造。
第7図は本発明の実施例で用いる辞書のデータ構造5
第8図は本発明の実施例に係る優先順位の基準の例。
第9図は本発明の一実施例処理フロー
第10図は本発明の詳細な説明するための複合型命令の
例を示す。
図中、10はデータ処理装置、11はオペレーション列
記憶部、12はデータ依存解析処理部13は優先順位決
定処理部、14は複合型命令作成処理部、15はデータ
依存グラフを表す。FIG. 1 is an explanatory diagram of the principle of the present invention. FIG. 2 is an example of a compound instruction computer that executes compound instructions created according to the present invention. FIG. 3 is an example of application of the present invention. FIG. 4 is an example of a sequence of operations for explaining the present invention in detail. FIG. 5 is an example of a data dependency graph according to an embodiment of the present invention. FIG. 6 is a node of a data dependency graph used in an embodiment of the present invention. data structure. FIG. 7 shows a data structure of a dictionary used in an embodiment of the present invention. FIG. 8 shows an example of priority criteria according to an embodiment of the present invention. FIG. 9 shows a processing flow of an embodiment of the present invention. FIG. 10 shows an example of a complex type instruction for explaining the present invention in detail. In the figure, 10 represents a data processing device, 11 represents an operation sequence storage unit, 12 represents a data dependency analysis processing unit 13 represents a priority order determination processing unit, 14 represents a composite type instruction creation processing unit, and 15 represents a data dependency graph.
Claims (1)
ンが格納される複合型命令におけるオペレーションの組
み合わせおよび配置位置を決定する複合型命令スケジュ
ーリング処理方式において、直線的に並べられたオペレ
ーションについてのデータ依存関係を解析するデータ依
存解析処理部(12)と、 解析したデータ依存関係をもとに、オペレーションの優
先順位を決定する優先順位決定処理部(13)と、 決定した優先順位に従って、各オペレーションを複合型
命令に配置する複合型命令作成処理部(14)とを備え
たことを特徴とする複合型命令スケジューリング処理方
式。 2、前記オペレーションの優先順位は、各オペレーショ
ンについての実行終了可能な時間と、各オペレーション
が最も早く発信可能な時間とにより評価されることを特
徴とする請求項1記載の複合型命令スケジューリング処
理方式。[Claims] 1. In a complex instruction scheduling processing method that determines the combination and arrangement position of operations in a complex instruction in which a plurality of operations are stored in an instruction that is a unit of simultaneous transmission, a data dependency analysis processing unit (12) that analyzes data dependencies for the determined operations; a priority determination processing unit (13) that determines the priorities of operations based on the analyzed data dependencies; and the determined priorities. A compound instruction scheduling processing method, comprising: a compound instruction creation processing unit (14) that arranges each operation into a compound instruction according to the order. 2. The composite instruction scheduling processing method according to claim 1, wherein the priority of the operations is evaluated based on the time at which execution can be completed for each operation and the time at which each operation can be transmitted earliest. .
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP16108690A JP3175768B2 (en) | 1990-06-19 | 1990-06-19 | Composite instruction scheduling processor |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP16108690A JP3175768B2 (en) | 1990-06-19 | 1990-06-19 | Composite instruction scheduling processor |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH0451328A true JPH0451328A (en) | 1992-02-19 |
| JP3175768B2 JP3175768B2 (en) | 2001-06-11 |
Family
ID=15728350
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP16108690A Expired - Fee Related JP3175768B2 (en) | 1990-06-19 | 1990-06-19 | Composite instruction scheduling processor |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP3175768B2 (en) |
Cited By (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2000284970A (en) * | 1999-03-29 | 2000-10-13 | Matsushita Electric Ind Co Ltd | Program converting device and processor |
| JP2003527711A (en) * | 2000-03-10 | 2003-09-16 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | Data processing apparatus, method of operating data processing apparatus, and method of compiling program |
| WO2004068342A1 (en) * | 2003-01-28 | 2004-08-12 | Catena Corporation | Software development preprocessing method, software control method, software development method, and software development device |
| JP2006243838A (en) * | 2005-02-28 | 2006-09-14 | Toshiba Corp | Program development device |
| JP2009048252A (en) * | 2007-08-14 | 2009-03-05 | Oki Electric Ind Co Ltd | Program conversion device and compiler program |
| JP2011198198A (en) * | 2010-03-23 | 2011-10-06 | Nec System Technologies Ltd | Instruction scheduling device, instruction scheduling method, and instruction scheduling program |
-
1990
- 1990-06-19 JP JP16108690A patent/JP3175768B2/en not_active Expired - Fee Related
Cited By (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2000284970A (en) * | 1999-03-29 | 2000-10-13 | Matsushita Electric Ind Co Ltd | Program converting device and processor |
| JP2003527711A (en) * | 2000-03-10 | 2003-09-16 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | Data processing apparatus, method of operating data processing apparatus, and method of compiling program |
| JP4884634B2 (en) * | 2000-03-10 | 2012-02-29 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | Data processing apparatus, method for operating data processing apparatus, and method for compiling program |
| WO2004068342A1 (en) * | 2003-01-28 | 2004-08-12 | Catena Corporation | Software development preprocessing method, software control method, software development method, and software development device |
| JP2006243838A (en) * | 2005-02-28 | 2006-09-14 | Toshiba Corp | Program development device |
| US7917899B2 (en) | 2005-02-28 | 2011-03-29 | Kabushiki Kaisha Toshiba | Program development apparatus, method for developing a program, and a computer program product for executing an application for a program development apparatus |
| JP2009048252A (en) * | 2007-08-14 | 2009-03-05 | Oki Electric Ind Co Ltd | Program conversion device and compiler program |
| JP2011198198A (en) * | 2010-03-23 | 2011-10-06 | Nec System Technologies Ltd | Instruction scheduling device, instruction scheduling method, and instruction scheduling program |
Also Published As
| Publication number | Publication date |
|---|---|
| JP3175768B2 (en) | 2001-06-11 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| Rau et al. | Some scheduling techniques and an easily schedulable horizontal architecture for high performance scientific computing | |
| Cronquist et al. | Specifying and compiling applications for RaPiD | |
| Treleaven et al. | Data-driven and demand-driven computer architecture | |
| Hsu et al. | Highly concurrent scalar processing | |
| JP2502960B2 (en) | Microcomputer, and method of operating microcomputer and microcomputer network | |
| US5710902A (en) | Instruction dependency chain indentifier | |
| JP2002024011A (en) | Described execution of instruction in processor | |
| IE74215B1 (en) | Pipelined Processor | |
| Girkar et al. | Partitioning programs for parallel execution | |
| Hoare | Parallel programming: An axiomatic approach | |
| WO2022053152A1 (en) | Method of interleaved processing on a general-purpose computing core | |
| US20050257200A1 (en) | Generating code for a configurable microprocessor | |
| JPH0451328A (en) | Composite type instruction scheduling processing system | |
| CN116113940A (en) | A graph computing device, processing method, and related equipment | |
| JP3311381B2 (en) | Instruction scheduling method in compiler | |
| Sint | MIDL-A microinstruction description language | |
| Pike | The implementation of Newsqueak | |
| Moon et al. | Generalized multiway branch unit for VLIW microprocessors | |
| Page | Parameterised processor generation | |
| Mosteo | Reactive programming in Ada 2012 with RxAda | |
| Knee | Program development and performance prediction on BSP machines using Opal | |
| Krishnan et al. | Executing sequential binaries on a clustered multithreaded architecture with speculation support | |
| Ojstersek et al. | Automatic grain size determination for a macro dataflow real-time system | |
| Snelling | The design and analysis of a stateless data-flow architecture | |
| KR940000883B1 (en) | Concurrent Common LISP |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| LAPS | Cancellation because of no payment of annual fees |