JPH06295246A - 命令スケジューリング方式 - Google Patents
命令スケジューリング方式Info
- Publication number
- JPH06295246A JPH06295246A JP5081904A JP8190493A JPH06295246A JP H06295246 A JPH06295246 A JP H06295246A JP 5081904 A JP5081904 A JP 5081904A JP 8190493 A JP8190493 A JP 8190493A JP H06295246 A JPH06295246 A JP H06295246A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- instructions
- phase
- schedule
- node
- 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
Landscapes
- Advance Control (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
(57)【要約】 (修正有)
【目的】 命令を並列に同時実行する命令スケジューリ
ング方式における処理の効率化を図る。 【構成】 複数の命令の依存関係を解析し、命令の先行
関係を表すグラフによりトップダウンに命令をスケジュ
ールする前向きリストスケジュールフェーズ1と、次に
当該命令の依存関係を解析し、命令の先行関係を表すグ
ラフを逆向きにしてグラフをボトムアップにたどり、選
択された命令に対して逆向きのグラフの先行関係を満た
す範囲内で可能な限り命令を移動させる後向きコード圧
縮フェーズ3とを具備して命令をスケジュールする。
ング方式における処理の効率化を図る。 【構成】 複数の命令の依存関係を解析し、命令の先行
関係を表すグラフによりトップダウンに命令をスケジュ
ールする前向きリストスケジュールフェーズ1と、次に
当該命令の依存関係を解析し、命令の先行関係を表すグ
ラフを逆向きにしてグラフをボトムアップにたどり、選
択された命令に対して逆向きのグラフの先行関係を満た
す範囲内で可能な限り命令を移動させる後向きコード圧
縮フェーズ3とを具備して命令をスケジュールする。
Description
【0001】
【産業上の利用分野】本発明は、複数の命令を並列に同
時実行する命令スケジューリング方式のうち、特に、前
向きリストスケジュールフェーズによるスケジュールの
後に後向きコード圧縮フェーズによりスケジュールする
ことにより、レジスタの使用量を削減してシステムの処
理の遅延を防止し、処理の効率化を図る命令スケジュー
リング方式に関する。
時実行する命令スケジューリング方式のうち、特に、前
向きリストスケジュールフェーズによるスケジュールの
後に後向きコード圧縮フェーズによりスケジュールする
ことにより、レジスタの使用量を削減してシステムの処
理の遅延を防止し、処理の効率化を図る命令スケジュー
リング方式に関する。
【0002】
【従来の技術】一般に、複数の命令を同時に並列実行し
て計算機の処理の高速化を図るために、コンパイラによ
り命令がスケジュールされてハードウエアが実行するV
LIW(Very Long Instruction Word )方式の計
算機がある。上記VLIW方式の計算機においては、複
数の命令から次に実行する命令を選択する方式としてリ
ストスケジューリング方式が採用されている。
て計算機の処理の高速化を図るために、コンパイラによ
り命令がスケジュールされてハードウエアが実行するV
LIW(Very Long Instruction Word )方式の計
算機がある。上記VLIW方式の計算機においては、複
数の命令から次に実行する命令を選択する方式としてリ
ストスケジューリング方式が採用されている。
【0003】以下、リストスケジューリング方式を述べ
る。
る。
【0004】(1) まず、命令の依存関係を解析し、命令
をノードとして先行関係をエッジで現すグラフ(以下、
DAGという。)を作成する。
をノードとして先行関係をエッジで現すグラフ(以下、
DAGという。)を作成する。
【0005】(2) 上記DAGの各エッジには先行ノード
の命令が実行されてから後続ノードが実行可能になるま
での遅延時間を、各ノードにはその命令をスケジュール
する際のウェイト(通常DAG上でのそのノードの高
さ)を付加する。
の命令が実行されてから後続ノードが実行可能になるま
での遅延時間を、各ノードにはその命令をスケジュール
する際のウェイト(通常DAG上でのそのノードの高
さ)を付加する。
【0006】(3) 先行制約のないノードを上記DAGか
ら取り出し、最短実行可能時刻を先行ノードがスケジュ
ールされた時刻と、エッジに付加された遅延時間から求
め、当該最短実行可能時刻求およびウェイトで優先順位
づけされたリスト(以下、スケジュールリストとい
う。)に追加する。
ら取り出し、最短実行可能時刻を先行ノードがスケジュ
ールされた時刻と、エッジに付加された遅延時間から求
め、当該最短実行可能時刻求およびウェイトで優先順位
づけされたリスト(以下、スケジュールリストとい
う。)に追加する。
【0007】(4) 上記スケジュールリストから順に命令
を取り出して当該命令がスケジュール可能、すなわち、
現在時刻が最短実行可能時刻より等しいかまたは大きい
ならばスケジュールする。仮に、スケジュール可能な命
令が何もなければ時刻をカウントアップしてリトライす
る。
を取り出して当該命令がスケジュール可能、すなわち、
現在時刻が最短実行可能時刻より等しいかまたは大きい
ならばスケジュールする。仮に、スケジュール可能な命
令が何もなければ時刻をカウントアップしてリトライす
る。
【0008】(5) 以下、全ての命令がスケジュールされ
るまでステップ(3) からステップ(4) までを繰り返すも
のであった。
るまでステップ(3) からステップ(4) までを繰り返すも
のであった。
【0009】
【発明が解決しようとする課題】しかしながら、従来の
命令スケジューリング方式は、以下に示す問題があっ
た。
命令スケジューリング方式は、以下に示す問題があっ
た。
【0010】(1) まず、変数(レジスタ)の使用量が増
加するとメモリを使用するため処理の遅延を招来する問
題があった。
加するとメモリを使用するため処理の遅延を招来する問
題があった。
【0011】前述したステップ(4) により、リストスケ
ジュールは、そのウェイトに拘らず実行可能な命令なら
ば当該サイクルにスケジュールする。これにより、リス
トスケジュールアルゴリズムは、同時実行できる命令の
数が有限の場合に対してほぼ最適な解を与える。
ジュールは、そのウェイトに拘らず実行可能な命令なら
ば当該サイクルにスケジュールする。これにより、リス
トスケジュールアルゴリズムは、同時実行できる命令の
数が有限の場合に対してほぼ最適な解を与える。
【0012】しかし、基本ブロックが大きくなった場合
は、図5に示す配列を加算するときにノードではアド
レスaを変数t0 に代入し、ノードではアドレスa+
4を変数t0 に代入する。以下、ノードからノード
まで実行して配列の加算値Vを演算する。上記配列の加
算を前述したリストスケジューリング方式(FL)によ
り実行すると第一のサイクル目にはノード、、用
のレジスタを必要とする。また、変数t2 は、1サイク
ル目から3サイクル目まで、変数t3 は、2サイクル目
から3サイクル目までの3サイクルになり変数の生存範
囲が大きくなりレジスタアロケーション時に必要となる
レジスタの数が大きくなる傾向がある。上記基本ブロッ
クのサイズが多くなると最悪の場合にはレジスタからデ
ータが溢れてしまいメモリを使用するレジスタスピルが
多発する。上記レジスタスピルによりメモリを使用する
と当該メモリにロードする時間を要することになり、処
理の遅延を招来する問題があった。
は、図5に示す配列を加算するときにノードではアド
レスaを変数t0 に代入し、ノードではアドレスa+
4を変数t0 に代入する。以下、ノードからノード
まで実行して配列の加算値Vを演算する。上記配列の加
算を前述したリストスケジューリング方式(FL)によ
り実行すると第一のサイクル目にはノード、、用
のレジスタを必要とする。また、変数t2 は、1サイク
ル目から3サイクル目まで、変数t3 は、2サイクル目
から3サイクル目までの3サイクルになり変数の生存範
囲が大きくなりレジスタアロケーション時に必要となる
レジスタの数が大きくなる傾向がある。上記基本ブロッ
クのサイズが多くなると最悪の場合にはレジスタからデ
ータが溢れてしまいメモリを使用するレジスタスピルが
多発する。上記レジスタスピルによりメモリを使用する
と当該メモリにロードする時間を要することになり、処
理の遅延を招来する問題があった。
【0013】 (2) 逆tree形状の依存関係による問題 上記リストスケジュールは、Tree状の依存関係に対
しては処理が効率的に実行されるため、最適になるが逆
tree状の依存関係に対しては後続ノード数を、ウェ
イトの評価に適格に組み入れ無い限り、最適にはならな
い。また、ウェイトの評価に取り込んだとしても計算コ
ストの増加を招来して、事実上使用ができなくなるもの
であった。
しては処理が効率的に実行されるため、最適になるが逆
tree状の依存関係に対しては後続ノード数を、ウェ
イトの評価に適格に組み入れ無い限り、最適にはならな
い。また、ウェイトの評価に取り込んだとしても計算コ
ストの増加を招来して、事実上使用ができなくなるもの
であった。
【0014】本発明は、このような従来の課題に鑑みて
なされたものであり、その目的は、前向きリストスケジ
ュールフェーズによるスケジュールの後に後向きコード
圧縮フェーズによりスケジュールすることにより、レジ
スタの使用量を削減して、システムの処理の遅延を防止
し、処理の効率化を図ることによりコンパイラのを迅速
に実行するレジスタの使用量を削減してシステムの処理
の遅延を防止し、処理の効率化を図る命令スケジューリ
ング方式を提供することにある。
なされたものであり、その目的は、前向きリストスケジ
ュールフェーズによるスケジュールの後に後向きコード
圧縮フェーズによりスケジュールすることにより、レジ
スタの使用量を削減して、システムの処理の遅延を防止
し、処理の効率化を図ることによりコンパイラのを迅速
に実行するレジスタの使用量を削減してシステムの処理
の遅延を防止し、処理の効率化を図る命令スケジューリ
ング方式を提供することにある。
【0015】
【課題を解決するための手段】上記目的を達成するた
め、本発明は、複数の命令を並列に同時実行する命令ス
ケジューリング方式において、前記複数の命令の依存関
係を解析し、命令の先行関係を表すグラフにより一度ト
ップダウンに命令をスケジュールする前向きリストスケ
ジュールフェーズと、この前向きリストスケジュールフ
ェーズにより一度トップダウンに命令をスケジュールさ
れた後に当該命令の依存関係を解析し、命令の先行関係
を表すグラフを逆向きにして当該逆向きのグラフをボト
ムアップにたどり選択された命令に対して逆向きのグラ
フの先行関係を満たす範囲内で可能な限り命令を移動さ
せる後向きコード圧縮フェーズとを具備して、前記前向
きリストスケジュールフェーズにより命令をスケジュー
ルした後に当該前向きリストスケジュールフェーズによ
りスケジュールされたサイクルの範囲内で前記後向きコ
ード圧縮フェーズにより命令をスケジュールする手段と
を備えたことを要旨とする。
め、本発明は、複数の命令を並列に同時実行する命令ス
ケジューリング方式において、前記複数の命令の依存関
係を解析し、命令の先行関係を表すグラフにより一度ト
ップダウンに命令をスケジュールする前向きリストスケ
ジュールフェーズと、この前向きリストスケジュールフ
ェーズにより一度トップダウンに命令をスケジュールさ
れた後に当該命令の依存関係を解析し、命令の先行関係
を表すグラフを逆向きにして当該逆向きのグラフをボト
ムアップにたどり選択された命令に対して逆向きのグラ
フの先行関係を満たす範囲内で可能な限り命令を移動さ
せる後向きコード圧縮フェーズとを具備して、前記前向
きリストスケジュールフェーズにより命令をスケジュー
ルした後に当該前向きリストスケジュールフェーズによ
りスケジュールされたサイクルの範囲内で前記後向きコ
ード圧縮フェーズにより命令をスケジュールする手段と
を備えたことを要旨とする。
【0016】
【作用】上述の如く構成すれば、まず、複数の命令の依
存関係を解析し、命令の先行関係を表すグラフにより一
度トップダウンに命令をスケジュールする前向きリスト
スケジュールフェーズにより命令をスケジュールする。
上記前向きリストスケジュールフェーズにより命令をス
ケジュール後に後向きコード圧縮フェーズにより当該前
向きリストスケジュールフェーズによりスケジュールさ
れたサイクルの範囲内で当該命令の依存関係を解析し、
命令の先行関係を表すグラフを逆向きにして当該逆向き
のグラフをボトムアップにたどり選択された命令に対し
て逆向きのグラフの先行関係を満たす範囲内で可能な限
り命令を移動させて命令をスケジュールするので、レジ
スタの使用量を削減して、システムの処理の遅延を防止
できる。
存関係を解析し、命令の先行関係を表すグラフにより一
度トップダウンに命令をスケジュールする前向きリスト
スケジュールフェーズにより命令をスケジュールする。
上記前向きリストスケジュールフェーズにより命令をス
ケジュール後に後向きコード圧縮フェーズにより当該前
向きリストスケジュールフェーズによりスケジュールさ
れたサイクルの範囲内で当該命令の依存関係を解析し、
命令の先行関係を表すグラフを逆向きにして当該逆向き
のグラフをボトムアップにたどり選択された命令に対し
て逆向きのグラフの先行関係を満たす範囲内で可能な限
り命令を移動させて命令をスケジュールするので、レジ
スタの使用量を削減して、システムの処理の遅延を防止
できる。
【0017】
【実施例】以下、本発明の−実施例を図面に基づいて説
明する。
明する。
【0018】図1は本発明の命令スケジューリング方式
の一実施例に係る機能を示すブロック図である。
の一実施例に係る機能を示すブロック図である。
【0019】上記命令スケジューリング方式は、前向き
リストスケジュールフェーズ1および後向きコード圧縮
フェーズ3とを備えて、オペレーションシステム(以
下、OSという。)による計算機システムの資源を効率
的に使用し、スループットを高めて応答時間を短縮する
ために用いられるものである。
リストスケジュールフェーズ1および後向きコード圧縮
フェーズ3とを備えて、オペレーションシステム(以
下、OSという。)による計算機システムの資源を効率
的に使用し、スループットを高めて応答時間を短縮する
ために用いられるものである。
【0020】上記前向きリストスケジュール( Forward
List schedule) フェーズ(以下、FLフェーズとい
う。)1は、 (1) まず、命令の依存関係を解析し、命令をノードとし
て先行関係をエッジで現すグラフ(以下、DAGとい
う。)を作成する。
List schedule) フェーズ(以下、FLフェーズとい
う。)1は、 (1) まず、命令の依存関係を解析し、命令をノードとし
て先行関係をエッジで現すグラフ(以下、DAGとい
う。)を作成する。
【0021】(2) 上記DAGの各エッジには先行ノード
の命令が実行されてから後続ノードが実行可能になるま
での遅延時間を、各ノードにはその命令をスケジュール
する際のウェイト(通常DAG上でのそのノードの高
さ)を付加する。
の命令が実行されてから後続ノードが実行可能になるま
での遅延時間を、各ノードにはその命令をスケジュール
する際のウェイト(通常DAG上でのそのノードの高
さ)を付加する。
【0022】(3) 先行制約のないノードを上記DAGか
ら取り出して最短実行可能時刻を先行ノードがスケジュ
ールされた時刻と、エッジに付加された遅延時間から求
め、当該最短実行可能時刻およびウェイトで優先順位づ
けされたリスト(以下、スケジュールリストという。)
に追加する。
ら取り出して最短実行可能時刻を先行ノードがスケジュ
ールされた時刻と、エッジに付加された遅延時間から求
め、当該最短実行可能時刻およびウェイトで優先順位づ
けされたリスト(以下、スケジュールリストという。)
に追加する。
【0023】(4) 上記スケジュールリストから順に命令
を取り出して当該命令がスケジュール可能、すなわち、
現在時刻が最短実行可能時刻より等しいかまたは大きい
ならばスケジュールする。仮に、スケジュール可能な命
令が何もなければ時刻をカウントアップしてリトライす
る。
を取り出して当該命令がスケジュール可能、すなわち、
現在時刻が最短実行可能時刻より等しいかまたは大きい
ならばスケジュールする。仮に、スケジュール可能な命
令が何もなければ時刻をカウントアップしてリトライす
る。
【0024】(5) 以下、全ての命令がスケジュールされ
るまでステップ(3) からステップ(4) までを繰り返すも
のであった。
るまでステップ(3) からステップ(4) までを繰り返すも
のであった。
【0025】上記ステップ(1) から(5) に示されるリス
トスケジュールアルゴリズムで一度トップダウンに命令
をスケジュールする。なお、空きサイクルは場合には厳
密にnopをいれる。
トスケジュールアルゴリズムで一度トップダウンに命令
をスケジュールする。なお、空きサイクルは場合には厳
密にnopをいれる。
【0026】後向きコード圧縮(Backward Compaction)
フェーズ(以下、BCフェーズという。)3は、FLフ
ェーズ1により作成されたDAGを逆向きにし、リスト
スケジュールを同じ方法により逆向きのDAGをボトム
アップにたどり、選択された命令に対して逆向きDAG
の先行関係を満たす範囲内で可能な限り後方に命令を移
動する。
フェーズ(以下、BCフェーズという。)3は、FLフ
ェーズ1により作成されたDAGを逆向きにし、リスト
スケジュールを同じ方法により逆向きのDAGをボトム
アップにたどり、選択された命令に対して逆向きDAG
の先行関係を満たす範囲内で可能な限り後方に命令を移
動する。
【0027】ただし、リストから命令を取り出す優先順
位は、 逆向きDAG上での高さの高いもの 同じ高さのときFLフェーズでのスケジュール位置が
後方にあるものというルールで決める。
位は、 逆向きDAG上での高さの高いもの 同じ高さのときFLフェーズでのスケジュール位置が
後方にあるものというルールで決める。
【0028】なお、の条件は、命令が移動した際に生
じる命令の空きに後続の命令を移動させてなるべく有効
利用できるようにすることを狙っている。
じる命令の空きに後続の命令を移動させてなるべく有効
利用できるようにすることを狙っている。
【0029】次に、前述したFLフェーズ1およびBC
フェーズ3を用いて命令をスケジュールする動作を図2
および図3を用いて説明する。
フェーズ3を用いて命令をスケジュールする動作を図2
および図3を用いて説明する。
【0030】まず、図2の命令をノードとして先行関係
をエッジで現すグラフDAGに示す逆tree形状の命
令の先行関係のないノードおよびノードは、高さが
ともに2であり、エッジが1である。また、先行関係の
ないノードは、高さが零であり、エッジが1である。
上記ノードおよびノードに依存するノードは高さ
が1で、エッジが1である。上記ノードおよびノード
に依存するノードは、高さが零である。
をエッジで現すグラフDAGに示す逆tree形状の命
令の先行関係のないノードおよびノードは、高さが
ともに2であり、エッジが1である。また、先行関係の
ないノードは、高さが零であり、エッジが1である。
上記ノードおよびノードに依存するノードは高さ
が1で、エッジが1である。上記ノードおよびノード
に依存するノードは、高さが零である。
【0031】一方、tree形状の先行関係のないノー
ドは、高さが1でありエッジ1によりノード、ノー
ドおよびノードが依存している。上記ノード、ノ
ードおよびノードの高さは、すべて零である。
ドは、高さが1でありエッジ1によりノード、ノー
ドおよびノードが依存している。上記ノード、ノ
ードおよびノードの高さは、すべて零である。
【0032】以上のDAGをFLフェーズ1によりノー
ドをスケジュールすると1サイクル目には先行関係のな
いノード、ノードおよびノードが配置される。2
サイクル目には高さ1のノードおよびノードが、3
サイクル目には高さ零のノード、ノードおよびノー
ドが、4サイクル目には高さ零のノードが配置され
るスケジュールリスト5が作成される。
ドをスケジュールすると1サイクル目には先行関係のな
いノード、ノードおよびノードが配置される。2
サイクル目には高さ1のノードおよびノードが、3
サイクル目には高さ零のノード、ノードおよびノー
ドが、4サイクル目には高さ零のノードが配置され
るスケジュールリスト5が作成される。
【0033】なお、FLフェーズ1ではノードの高さの
大きいノードから取り出す。すなわち、高さの大きいノ
ードから処理されることになる。
大きいノードから取り出す。すなわち、高さの大きいノ
ードから処理されることになる。
【0034】次に、FLフェーズ1の後にBCフェーズ
3によりスケジュールするとノードの配置は、前述した
如くFLフェーズ1に比べて高さの計算が逆になる。即
ち、図3に示す如く先行関係のないノードからノード
の高さは零になり、ノードからノードの高さは1
になり、ノードの高さは2になる。なお、エッジの長
さは1である。
3によりスケジュールするとノードの配置は、前述した
如くFLフェーズ1に比べて高さの計算が逆になる。即
ち、図3に示す如く先行関係のないノードからノード
の高さは零になり、ノードからノードの高さは1
になり、ノードの高さは2になる。なお、エッジの長
さは1である。
【0035】上記BCフェーズ3は、FLフェーズ1で
得たクリティカルパス長を越えない範囲内で変数の生存
範囲を大幅に短縮する。また、BCフェーズ3は、高さ
の高いノードを図2に示すスケジュールリスト7の4
サイクル目にスケジュールして、次に、高さ1のノード
からノードのうちノードを4サイクル目にスケジ
ュールする。さらに、BCフェーズ3は、高さが1のノ
ードと高さが零のノードを2サイクル目にスケジュ
ールして、高さ零のノードおよびノードを2サイク
ル目にスケジュールする。したがって、FLフェーズ1
により上のサイクルに上がり過ぎた命令は、BCフェー
ズ3で変数の生存範囲が可能な限り最小になるように再
配置される。
得たクリティカルパス長を越えない範囲内で変数の生存
範囲を大幅に短縮する。また、BCフェーズ3は、高さ
の高いノードを図2に示すスケジュールリスト7の4
サイクル目にスケジュールして、次に、高さ1のノード
からノードのうちノードを4サイクル目にスケジ
ュールする。さらに、BCフェーズ3は、高さが1のノ
ードと高さが零のノードを2サイクル目にスケジュ
ールして、高さ零のノードおよびノードを2サイク
ル目にスケジュールする。したがって、FLフェーズ1
により上のサイクルに上がり過ぎた命令は、BCフェー
ズ3で変数の生存範囲が可能な限り最小になるように再
配置される。
【0036】更に、FLフェーズ1によりスケジュール
されたデータ構造を図4に示す。
されたデータ構造を図4に示す。
【0037】数バイトのデータがポインタにより結ばれ
ており第一のキューにはノードが結ばれて、第二
のキューにはノード、ノードが、第三のキューには
ノード、ノードおよびノードが、そして、第四の
キューにはノードが接続されている。
ており第一のキューにはノードが結ばれて、第二
のキューにはノード、ノードが、第三のキューには
ノード、ノードおよびノードが、そして、第四の
キューにはノードが接続されている。
【0038】これにより、図5に示す配列の加算の場合
には、FLフェーズ1(FL)によりスケジュールした
後にBCフェーズ3(BC)によりスケジュールするた
め、FLにおいて1サイクル目ではノードの3つ
のレジスタを必要とするのに対し、BCフェーズ3のス
ケジュールによりノードの2つのレジスタで済む。
また、変数t2 の生存範囲もFLフェーズ1のスケジュ
ールでは1サイクルから3サイクルであるのに対し、B
Cフェーズ3のスケジュールにより2サイクルから3サ
イクルまでの2サイクルで済むことになる。
には、FLフェーズ1(FL)によりスケジュールした
後にBCフェーズ3(BC)によりスケジュールするた
め、FLにおいて1サイクル目ではノードの3つ
のレジスタを必要とするのに対し、BCフェーズ3のス
ケジュールによりノードの2つのレジスタで済む。
また、変数t2 の生存範囲もFLフェーズ1のスケジュ
ールでは1サイクルから3サイクルであるのに対し、B
Cフェーズ3のスケジュールにより2サイクルから3サ
イクルまでの2サイクルで済むことになる。
【0039】従って、関数の出入り口でのレジスタの対
比、復元が高速に行うことができるとともに、レジスタ
スピルコードの発生頻度が少なくなり、レジスタの使用
量を削減できる。
比、復元が高速に行うことができるとともに、レジスタ
スピルコードの発生頻度が少なくなり、レジスタの使用
量を削減できる。
【0040】また、目的コードのパス長の短い命令スケ
ジュールを実現できるため、コンパイラを生成した後に
実行する時間を短縮できる。
ジュールを実現できるため、コンパイラを生成した後に
実行する時間を短縮できる。
【0041】更に、FLフェーズでは最適になりにくい
逆tree依存関係を含むケースの実行サイクルを改善
する。
逆tree依存関係を含むケースの実行サイクルを改善
する。
【0042】したがって、命令を並列に実行するシステ
ムの処理時間を迅速にする。
ムの処理時間を迅速にする。
【0043】
【発明の効果】以上説明したように、本発明では、前向
きリストスケジュールフェーズにより命令をスケジュー
ル後に後向きコード圧縮フェーズにより命令をスケジュ
ールするので、前向きリストスケジュールフェーズによ
るスケジュールの後に後向きコード圧縮フェーズにより
スケジュールすることにより、レジスタの使用量を削減
してシステムの処理の遅延を防止し、処理の効率化を図
るレジスタの使用量を削減して、システムの処理の遅延
を防止し、処理の効率化を図ることによりコンパイラの
迅速な実行を実現できる。
きリストスケジュールフェーズにより命令をスケジュー
ル後に後向きコード圧縮フェーズにより命令をスケジュ
ールするので、前向きリストスケジュールフェーズによ
るスケジュールの後に後向きコード圧縮フェーズにより
スケジュールすることにより、レジスタの使用量を削減
してシステムの処理の遅延を防止し、処理の効率化を図
るレジスタの使用量を削減して、システムの処理の遅延
を防止し、処理の効率化を図ることによりコンパイラの
迅速な実行を実現できる。
【図1】本発明の命令スケジューリング方式の一実施例
に係る機能を示すブロック図である。
に係る機能を示すブロック図である。
【図2】グラフおよびスケジュールリストを示す図であ
る。
る。
【図3】グラフを示す図である。
【図4】データ構造を示す図である。
【図5】配列の加算を示す図である。
1 FLフェーズ 3 BCフェーズ 5、7 スケジュールリスト
Claims (1)
- 【請求項1】 複数の命令を並列に同時実行する命令ス
ケジューリング方式において、 前記複数の命令の依存関係を解析し、命令の先行関係を
表すグラフにより一度トップダウンに命令をスケジュー
ルする前向きリストスケジュールフェーズと、 この前向きリストスケジュールフェーズにより一度トッ
プダウンに命令をスケジュールされた後に当該命令の依
存関係を解析し、命令の先行関係を表すグラフを逆向き
にして当該逆向きのグラフをボトムアップにたどり選択
された命令に対して逆向きのグラフの先行関係を満たす
範囲内で可能な限り命令を移動させる後向きコード圧縮
フェーズとを具備して、 前記前向きリストスケジュールフェーズにより命令をス
ケジュールした後に当該前向きリストスケジュールフェ
ーズによりスケジュールされたサイクルの範囲内で前記
後向きコード圧縮フェーズにより命令をスケジュールす
る手段と、 を備えたことを特徴とする命令スケジューリング方式。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP5081904A JPH06295246A (ja) | 1993-04-08 | 1993-04-08 | 命令スケジューリング方式 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP5081904A JPH06295246A (ja) | 1993-04-08 | 1993-04-08 | 命令スケジューリング方式 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JPH06295246A true JPH06295246A (ja) | 1994-10-21 |
Family
ID=13759437
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP5081904A Pending JPH06295246A (ja) | 1993-04-08 | 1993-04-08 | 命令スケジューリング方式 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JPH06295246A (ja) |
Cited By (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2002268895A (ja) * | 2001-03-09 | 2002-09-20 | Nec Corp | 命令スケジューリング装置及び命令スケジューリング方法 |
| KR20030078467A (ko) * | 2002-03-29 | 2003-10-08 | 학교법인 인하학원 | 목적코드 수준에서의 벡터 스케줄링 기법 및 그 시스템 |
| JP2010231635A (ja) * | 2009-03-27 | 2010-10-14 | Fujitsu Ltd | コンテキスト作成プログラム、コンパイラおよびコンテキスト作成方法 |
| CN116204195A (zh) * | 2023-03-09 | 2023-06-02 | 中国人民解放军国防科技大学 | 面向simd与vliw架构可量化的指令调度方法及系统 |
-
1993
- 1993-04-08 JP JP5081904A patent/JPH06295246A/ja active Pending
Cited By (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2002268895A (ja) * | 2001-03-09 | 2002-09-20 | Nec Corp | 命令スケジューリング装置及び命令スケジューリング方法 |
| KR20030078467A (ko) * | 2002-03-29 | 2003-10-08 | 학교법인 인하학원 | 목적코드 수준에서의 벡터 스케줄링 기법 및 그 시스템 |
| JP2010231635A (ja) * | 2009-03-27 | 2010-10-14 | Fujitsu Ltd | コンテキスト作成プログラム、コンパイラおよびコンテキスト作成方法 |
| CN116204195A (zh) * | 2023-03-09 | 2023-06-02 | 中国人民解放军国防科技大学 | 面向simd与vliw架构可量化的指令调度方法及系统 |
| CN116204195B (zh) * | 2023-03-09 | 2025-08-01 | 中国人民解放军国防科技大学 | 面向simd与vliw架构可量化的指令调度方法及系统 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP4042604B2 (ja) | プログラム並列化装置,プログラム並列化方法およびプログラム並列化プログラム | |
| US5386562A (en) | Circular scheduling method and apparatus for executing computer programs by moving independent instructions out of a loop | |
| EP0352899B1 (en) | Echelon method for execution of nested loops in multiple processor computers | |
| Nestor et al. | SALSA: A new approach to scheduling with timing constraints | |
| US8250557B2 (en) | Configuring a dependency graph for dynamic by-pass instruction scheduling | |
| CN114217966A (zh) | 基于资源调整的深度学习模型动态批处理调度方法和系统 | |
| JP2012511204A (ja) | リソースを最適化するためのタスク再編成方法 | |
| JP2009104422A (ja) | マルチプロセッサ向け最適コード生成方法及びコンパイル装置 | |
| US20040268335A1 (en) | Modulo scheduling of multiple instruction chains | |
| EP3908920B1 (en) | Optimizing hardware fifo instructions | |
| Ronquist | Fast Fitch-parsimony algorithms for large data sets | |
| JP2026504251A (ja) | タスクスケジューリング実行方法、タスクスケジューリング実行命令の生成方法及び装置 | |
| JPH0738158B2 (ja) | コード最適化方法およびコンパイラ・システム | |
| JPH06295246A (ja) | 命令スケジューリング方式 | |
| Cornero et al. | Software synthesis for real-time information processing systems | |
| CN115004150A (zh) | 用于预测和调度软件流水化循环中的复制指令的方法和装置 | |
| Roh et al. | Generation and quantitative evaluation of dataflow clusters | |
| JPH04293150A (ja) | コンパイル方法 | |
| Vishkin | A no-busy-wait balanced tree parallel algorithmic paradigm | |
| Gao et al. | Pipeline scheduling for array based reconfigurable architectures considering interconnect delays | |
| Govindarajan et al. | Co-scheduling hardware and software pipelines | |
| EP0481617A2 (en) | Instruction scheduler for a computer | |
| Huang et al. | Communication synthesis for interconnect minimization in multicycle communication architecture | |
| Sgall | On-line scheduling of parallel jobs | |
| CN121195252A (zh) | 用于优化机器学习模型的并行执行的设备和方法 |