JP5207125B2 - スケジューリング可能性判定システム、スケジューリング可能性判定方法、及びプログラム - Google Patents
スケジューリング可能性判定システム、スケジューリング可能性判定方法、及びプログラム Download PDFInfo
- Publication number
- JP5207125B2 JP5207125B2 JP2008087947A JP2008087947A JP5207125B2 JP 5207125 B2 JP5207125 B2 JP 5207125B2 JP 2008087947 A JP2008087947 A JP 2008087947A JP 2008087947 A JP2008087947 A JP 2008087947A JP 5207125 B2 JP5207125 B2 JP 5207125B2
- Authority
- JP
- Japan
- Prior art keywords
- time constraint
- discrete time
- array
- scheduling
- constraint
- 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.)
- Active
Links
Images
Description
「演算n2は演算n1の1離散時間単位後にある」と「演算n3は演算n2の1離散時間単位後にある」という二つの条件から、演算n3と演算n1の離散時間単位で条件を考えると「演算n3は演算n1の2離散時間単位後にある」という条件になる。これを連続時間の条件に直すと「演算n3は演算n1の1秒後から3秒後までにある」となる。一方で、元々の条件それぞれを「演算n2は演算n1の0秒後から2秒後までにある」と「演算n3は演算n2の0秒後から2秒後までにある」という二つの連続時間の条件に変換して、この二つの条件を合わせると「演算n3は演算n1の0秒後から4秒後までにある」という条件になり緩く判定してしまう。
この関連技術では、結線の空間的な距離や混雑度を考慮しながらスケジューリングする方法について示唆している。この関連技術では、可能な限り資源を共有するように高位合成されたCDFGをレイアウトする。そして、それを初期解として、資源レベルレイアウト情報の資源間結線距離が長く、あるいは、マクロ領域内配線混雑度が高く設計制約を満たさない原因となっている共有された資源を別々の資源に再アロケーションして、レイアウト微修正を行う。
この関連技術では、フォールスループをさけながらスケジューリングする方法について示唆している。この関連技術では、演算をステップに割り当てるスケジューリング時に、演算をそのステップに割り当てることによってループができるかを判別し、ループができる場合はそのステップに割り当てないことにより回路にループが生成されることを回避する。
この関連技術では、スケジューリングの際に、条件分岐で排他的に実行できるかどうかを高速に判定する方法について示唆している。この関連技術では、制御データフローグラフを制御データフローグラフ読み込み装置で読み込み、グラフ内の演算の実行条件を表すビット列を各演算に実行条件符号生成装置で付与し、制御データフローグラフのそれぞれの演算をスケジューリングするスケジューリング装置の出力に対し、制御シーケンス生成装置が制御回路を生成する。
図2を参照すると、本実施形態のスケジューリング可能性判定システムは、依存配列生成部101と、離散時間制約生成部102と、時間制約連続化部103と、スケジューリング可能性判断部104と、スケジューリング部105と、DFG(Data Flow Graph)記憶部111と、離散時間制約記憶部112と、連続時間制約記憶部113と、依存配列記憶部121と、新離散時間制約記憶部122と、新連続時間制約記憶部123と、スケジューリング済みDFG記憶部130を備える。
図2の依存配列生成部101は、演算及び演算の依存関係を設定したデータフローグラフ(DFG)をDFG記憶部111から読み込み、依存配列を設定する。
(1)ステップS1
最初に、依存配列生成部101は、データフローグラフ(DFG)の中に、依存している演算の中に依存配列を設定していないものがなく、なおかつ依存配列を設定していないという条件を満たす演算があるか探索する。このとき、依存配列生成部101は、依存している演算がない演算も、探索する演算の条件を満たすものと判定する。
(2)ステップS2
依存配列生成部101は、条件を満たす演算があるか判定する。
(3)ステップS3
依存配列生成部101は、条件を満たす演算が見つかったら、依存する演算の依存配列に基づいて、演算の依存配列を設定する。
(1)ステップS21
最初に、依存配列生成部101は、対象演算の依存配列を、未設定を表す値で初期化する。
(2)ステップS22
依存配列生成部101は、対象演算が時間制約の端点となる演算であるか判定する。
(3)ステップS23
依存配列生成部101は、対象演算が時間制約の端点となる演算であれば、対応する依存配列の位置の要素をゼロにする。
(4)ステップS24
依存配列生成部101は、依存している演算があるか判定する。
(5)ステップS25
次に、依存配列生成部101は、直接依存している各演算について、依存配列の要素の中に未設定で無いものがあるか判定する。
(6)ステップS26
依存配列生成部101は、依存配列の要素の中に未設定で無いものがあったら、その要素に依存している演算と対象演算との間の遅延を加える。
(7)ステップS27
依存配列生成部101は、遅延を加えた要素と対象演算の依存配列の要素とを比較する。
(8)ステップS28
依存配列生成部101は、対象演算の依存配列の要素が未設定、若しくは小さかった場合は、対象演算の依存ベクトルをその値で更新する。
(1)ステップS261
依存配列生成部101は、対象演算の各依存配列の要素毎に、対象演算と直接依存する演算の間に離散時間の境界がないと仮定したときの遅延を加えた値を計算する。
(2)ステップS262
依存配列生成部101は、直接依存する演算の依存配列の要素と計算された値が離散時間単位をまたぐか判定する。ここでは、依存配列生成部101は、直接依存する演算の依存配列の要素と計算された値の間に離散時間の境界が入ったか判定する。
(3)ステップS263
依存配列生成部101は、直接依存する演算の依存配列の要素と計算された値が離散時間単位をまたいだ場合、直接依存する演算の依存配列の要素と離散時間単位をまたいだときの遅延を加えた値を計算する。ここでは、依存配列生成部101は、直接依存する演算の依存配列の要素と計算された値の間に離散時間の境界が入った場合、改めて直接依存する演算と対象演算の間に離散時間の境界が入ると仮定した場合の遅延を直接依存する演算の依存配列の要素に加えた値を計算する。
(4)ステップS264
更に、依存配列生成部101は、改めて計算された値を、遅延を加えた値とみなす。ここでは、依存配列生成部101は、ステップS263で改めて計算された値を、図3BのステップS26の値として使用する。
(5)ステップS265
依存配列生成部101は、直接依存する演算の依存配列の要素と計算された値が離散時間単位をまたいでいない場合、計算された値を、遅延を加えた値とみなす。ここでは、依存配列生成部101は、直接依存する演算の依存配列の要素と計算された値の間に離散時間の境界が入らなかった場合、ステップS261で計算された値を、遅延を加えた値とみなして図3BのステップS26の値として使用する。
(1)ステップS51
離散時間制約生成部102は、新規の離散時間制約を生成するために、与えられた離散時間制約のうちの2つで構成される離散時間制約の組を全て列挙する。
(2)ステップS52
離散時間制約生成部102は、この列挙された離散時間制約の組から新しい離散時間制約を生成する。
(3)ステップS53
離散時間制約生成部102は、新規に生成される離散時間制約が、依存配列から得られる最短遅延若しくは既存の離散時間制約と矛盾していた場合、スケジューリング失敗、又はスケジューリング可能性なしと判定する。また、新しく生成された離散時間制約と矛盾したものであった場合、スケジューリング失敗、又はスケジューリング可能性なしと判定する。また、離散時間制約生成部102は、新しく生成された離散時間制約と、依存配列から得られた演算間の最短遅延若しくは既存の時間制約と新規の時間制約を比較して、冗長なものがあったときは、冗長な離散時間制約を、図2の新離散時間制約記憶部122に記憶せず、冗長な離散時間制約を新離散時間制約記憶部122に記憶している場合は削除する。また、離散時間制約生成部102は、冗長でない離散時間制約を図2の新離散時間制約記憶部122に記憶する。
(4)ステップS54
離散時間制約生成部102は、新しい離散時間制約が生成されたか判定する。離散時間制約生成部102は、新しい離散時間制約が生成されていない場合、本実施例におけるスケジューリング可能性判定を終了する。
(5)ステップS55
離散時間制約生成部102は、新しい離散時間制約が生成された場合、新しい離散時間制約を含んだ離散時間制約の組み合わせを生成する。ここでは、離散時間制約生成部102は、ステップS52に戻り、上記の処理を繰り返す。
例えば、演算Aと演算Bの間に「A−>B:xT−」という既存の離散時間制約があり、新規に生成された時間制約が「A−>B:−yT」でy<xを満たす場合、AとBの遅延で二つの条件を満たせるものはないので矛盾と判定される。
(1)ステップS71
時間制約連続化部103は、離散時間制約記憶部112に記憶されている既存の離散時間制約と、時間制約連続化部103で生成され新連続時間制約記憶部123に記憶されている新規の離散時間制約について、それぞれの離散時間制約を以下の規則に従って、連続時間制約に変換する。時間制約連続化部103は、まだ変換していない離散時間制約がなくなるまで、この処理を繰り返す。
(2)ステップS72
時間制約連続化部103は、演算が離散時間境界をまたげるか判定する。
(3)ステップS73
時間制約連続化部103は、演算が離散時間境界をまたげない場合、離散時間制約「A−>B:xT−」を「A−>B:(T(x−1)+d(A))t−」と変換する。但し、AとBは任意の演算で、xは任意の離散時間、Tは離散時間単位の時間、d(A)は演算Aの遅延を表す。また、「A−>B:xt−」は連続時間制約を表し、「演算Bは演算Aより時間xかそれより後ろで実行される必要がある」という意味である。
(4)ステップS74
時間制約連続化部103は、演算が離散時間境界をまたげない場合、離散時間制約「A−>B:−xT」を「A−>B:−(T(x+1)−d(B))t」と変換する。但し、AとBは任意の演算、xは任意の離散時間、Tは離散時間単位の時間、d(B)は演算Bの遅延を表す。また、「A−>B:−xt」は連続時間制約を表し、「演算Bは演算Aより時間xかそれより前に実行される必要がある」という意味である。
(5)ステップS75
時間制約連続化部103は、演算が離散時間の境界をまたげる場合、離散時間制約「A−>B:xT−」を「A−>B:T(x−1)t−」と変換する。
(6)ステップS76
時間制約連続化部103は、演算が離散時間の境界をまたげる場合、離散時間制約「A−>B:−xT」を「A−>B:−T(x+1)t」と変換する。
(7)ステップS77
時間制約連続化部103は、スケジューリング可能性判定の時間制約として、既存の連続時間制約と新規の連続時間制約を新連続時間制約記憶部123に記憶する。すなわち、時間制約連続化部103は、変換された連続時間制約を、最後にまとめて新連続時間制約記憶部123に記憶する。但し、実際には、時間制約連続化部103は、変換された連続時間制約を、逐次、新連続時間制約記憶部123に記憶するようにしても良い。
本実施形態のスケジューリング可能性判定システムは、第1実施形態(図2)と同様の構成を持つ計算機であるが、スケジューリング可能性判断部104で、正閉路検出において依存配列を利用する点が相違する。
(1)ステップS81
スケジューリング可能性判断部104は、スケジューリング用の連続図2の時間制約連続化部103で生成したスケジューリング用連続時間制約の端点を更新演算テーブルに登録し、スケジューリング用連続時間制約の端点の依存配列を初期値に設定する。初期値は時間制約の端点の演算と対応する位置の依存配列の要素が0でそれ以外の要素が未設定のものでも良いし、図2の演算依存配列で設定したものを流用しても良い。図2の演算依存配列で設定した依存配列を初期値として用いるほうがより高速に判定できる可能性がある。
(2)ステップS82
次に、スケジューリング可能性判断部104は、更新演算テーブルに登録された演算の依存配列を、対象演算が直接依存する演算と、対象演算があるのならば時間制約を基に更新する。
(3)ステップS83
スケジューリング可能性判断部104は、更新演算すべてについて依存配列の更新を行い、値が変化した依存配列が存在するか判定する。すなわち、スケジューリング可能性判断部104は、更新された依存配列が存在するか判定する。
(4)ステップS84
スケジューリング可能性判断部104は、更新された依存配列が存在しない場合、スケジューリング可能性があると判定する。
(5)ステップS85
スケジューリング可能性判断部104は、更新された依存配列が存在する場合、正閉路検出を行う。すなわち、スケジューリング可能性判断部104は、正閉路が検出されたか判定する。
(6)ステップS86
スケジューリング可能性判断部104は、正閉路が検出されない場合、更新された依存配列を持つ演算に依存するノードを更新演算テーブルに登録する。更に、スケジューリング可能性判断部104は、更新演算テーブルに登録された演算の依存配列を、対象演算が直接依存する演算と、対象演算があるのならば時間制約を基に更新する。すなわち、ステップS82に戻る。
(7)ステップS87
スケジューリング可能性判断部104は、正閉路が検出された場合、スケジューリング可能性がないと判定する。
(1)ステップS821
スケジューリング可能性判断部104は、対象演算が直接依存する演算がまだあるか判定する。
(2)ステップS822
スケジューリング可能性判断部104は、対象演算が直接依存する演算がある場合、直接依存する各演算について、依存配列の更新処理を行う。
(3)ステップS823
スケジューリング可能性判断部104は、対象演算が直接依存する演算がない場合、まだ連続時間制約が残っているか判定する。ここでは、スケジューリング可能性判断部104は、連続時間制約が残っていなければ、処理を終了する。
(4)ステップS824
スケジューリング可能性判断部104は、連続時間制約が残っている場合、各連続時間制約について、依存配列の更新処理を行う。
(1)ステップS8221
スケジューリング可能性判断部104は、時間制約の相手の演算の依存配列の設定済み要素がまだあるか確認する。このとき、スケジューリング可能性判断部104は、時間制約の相手の演算の依存配列の設定済み要素がなければ、処理を終了する。
(2)ステップS8222
スケジューリング可能性判断部104は、対象演算が直接依存する演算の依存配列の各要素について、直接依存する演算の対応する依存配列の要素に、対象演算と直接依存する演算の間の遅延を加えた値を計算する。このとき、スケジューリング可能性判断部104は、離散時間制約の境界がはいるかどうかで遅延が変わる場合、図3Cで示す方法で依存配列の値に遅延を加えた値を決定する。
(3)ステップS8223
スケジューリング可能性判断部104は、この計算された値が対象演算の依存配列の要素の値より大きいか判定する。このとき、スケジューリング可能性判断部104は、この計算された値が対象演算の依存配列の要素の値以下であれば、他に対象演算が直接依存する演算の依存配列の設定済み要素があるか確認する。
(4)ステップS8224
スケジューリング可能性判断部104は、この計算された値が対象演算の依存配列の要素の値と比較して大きければ、対象演算の依存配列の対応する要素の値を更新する。
(1)ステップS8241
スケジューリング可能性判断部104は、連続時間制約の相手の演算の依存配列の設定済み要素がまだあるか確認する。このとき、スケジューリング可能性判断部104は、連続時間制約の相手の演算の依存配列の設定済み要素がなければ、処理を終了する。
(2)ステップS8242
スケジューリング可能性判断部104は、連続時間制約の相手である演算Aの依存配列で設定済みの各要素について、Bが対象演算で、Aは任意の演算、xは任意の時間として「A−>B:xt−」で表現される連続時間制約であるか確認する。このとき、スケジューリング可能性判断部104は、Bが対象演算で、Aは任意の演算、xは任意の時間として「A−>B:xt−」で表現される連続時間制約でなければ、Bが対象演算で、Aは任意の演算、xは任意の時間として「A−>B:−xt」で表現される連続時間制約であると判定する。
(3)ステップS8243
スケジューリング可能性判断部104は、Bが対象演算で、Aは任意の演算、xは任意の時間として「A−>B:xt−」で表現される連続時間制約であれば、対象演算の依存配列の要素の値vに時間制約の値xを加えた値「v+x」を計算する。
(4)ステップS8244
スケジューリング可能性判断部104は、Bが対象演算で、Aは任意の演算、xは任意の時間として「A−>B:−xt」で表現される連続時間制約であれば、対象演算の依存配列の要素の値vから時間制約の値xを差し引いた値「v−x」を計算する。
(5)ステップS8245
スケジューリング可能性判断部104は、計算された値が対象演算の依存配列の対応する要素の値よりも大きいか確認する。このとき、スケジューリング可能性判断部104は、計算された値が対象演算の依存配列の対応する要素の値以下であれば、他に対象演算が直接依存する演算の依存配列の設定済み要素があるか確認する。
(6)ステップS8246
スケジューリング可能性判断部104は、計算された値が対象演算の依存配列の対応する要素の値よりも大きかったら、依存配列の対応する要素の値を更新する。
(1)ステップS841
スケジューリング可能性判断部104は、更新された依存配列が時間制約の端点かを判定する。
(2)ステップS842
スケジューリング可能性判断部104は、更新された依存配列が時間制約の端点の演算のものでなかったら、正閉路でないと判定する。
(3)ステップS843
スケジューリング可能性判断部104は、更新された依存配列が時間制約の端点の演算のものであったら、依存配列におけるその依存配列を所有する演算に対応する位置の要素が更新されていないか判定する。
(4)ステップS844
スケジューリング可能性判断部104は、更新されていたら正閉路が存在すると判定し、更新されていなかったら、正閉路なしと判定する。
本実施形態のスケジューリング可能性判定システムは、基本的に第1実施形態(図2)と同様の構成を持つが、依存配列生成部101、離散時間制約生成部102、時間制約連続化部103、新離散時間制約記憶部122、新連続時間制約記憶部123を使用しない。
(1)ステップS821
スケジューリング可能性判断部104は、対象演算が直接依存する演算がまだあるか判定する。
(2)ステップS822
スケジューリング可能性判断部104は、対象演算が直接依存する演算がある場合、直接依存する各演算について、依存配列の更新処理を行う。
(3)ステップS823
スケジューリング可能性判断部104は、対象演算が直接依存する演算がない場合、まだ連続時間制約が残っているか判定する。
(4)ステップS824
スケジューリング可能性判断部104は、連続時間制約が残っている場合、各連続時間制約について、依存配列の更新処理を行う。
(5)ステップS825
スケジューリング可能性判断部104は、連続時間制約が残っていない場合、まだ離散時間制約が残っているか判定する。ここでは、スケジューリング可能性判断部104は、離散時間制約が残っていなければ、処理を終了する。
(6)ステップS826
スケジューリング可能性判断部104は、離散時間制約が残っている場合、各離散時間制約について、図12Bに示す更新処理を行う。
(1)ステップS8261
スケジューリング可能性判断部104は、離散時間制約の相手の演算の依存配列の設定済み要素がまだあるか確認する。このとき、スケジューリング可能性判断部104は、離散時間制約の相手の演算の依存配列の設定済み要素がなければ、処理を終了する。
(2)ステップS8262
スケジューリング可能性判断部104は、離散時間制約の相手である演算Aの依存配列で設定済みの各要素について、Bが対象演算で、xは任意の時間として「A−>B:xT−」で表現される離散時間制約であるか確認する。このとき、スケジューリング可能性判断部104は、Bが対象演算で、Aは任意の演算、xは任意の時間として「A−>B:xT−」で表現される離散時間制約でなければ、Bが対象演算で、Aは任意の演算、xは任意の時間として「A−>B:−xT」で表現される離散時間制約であると判定する。
(3)ステップS8263
スケジューリング可能性判断部104は、離散時間制約が、Bが対象演算で、Aは任意の演算、xは任意の時間として「A−>B:xT−」と表現できたら、時間制約の対象演算の依存配列の要素をvとしたとき、Tを離散時間単位として、「T×floor(v/T+x)」を計算する。
(4)ステップS8264
スケジューリング可能性判断部104は、離散時間制約が、Bが対象演算で、Aは任意の演算、xは任意の時間として「A−>B:−xT」と表現できたら、時間制約の対象演算の依存配列の要素をvとしたとき、Tを離散時間単位として、「T×floor(v/T−x)」を計算する。
(5)ステップS8265
スケジューリング可能性判断部104は、計算された値が対象演算の依存配列の対応する要素の値よりも大きいか確認する。このとき、スケジューリング可能性判断部104は、計算された値が対象演算の依存配列の対応する要素の値以下であれば、他に対象演算が直接依存する演算の依存配列の設定済み要素があるか確認する。
(6)ステップS8266
スケジューリング可能性判断部104は、計算された値が対象演算の依存配列の対応する要素の値よりも大きかったら、依存配列の対応する要素の値を更新する。
本実施形態のスケジューリング可能性判定システムは、基本的に第1実施形態(図2)と同様の構成を持つが、離散時間制約生成部102で依存配列を元に新規の離散時間制約を生成する点が第1実施形態と異なる。
(1)ステップS1301
離散時間制約生成部102は、依存配列から離散時間制約を生成する。その後、離散時間制約生成部102は、生成された離散時間制約を離散時間制約記憶部112に記憶する。なお、離散時間制約生成部102は、直接、生成された離散時間制約を時間制約連続化部103に引き渡すようにすることも可能である。以降の処理は、図7と同様である。
(2)ステップS71
時間制約連続化部103は、離散時間制約記憶部112に記憶されている既存の離散時間制約と、時間制約連続化部103で生成され新連続時間制約記憶部123に記憶されている新規の離散時間制約について、それぞれの離散時間制約を以下の規則に従って、連続時間制約に変換する。時間制約連続化部103は、まだ変換していない離散時間制約がなくなるまで、この処理を繰り返す。
(3)ステップS72
時間制約連続化部103は、演算が離散時間境界をまたげるか判定する。
(4)ステップS73
時間制約連続化部103は、演算が離散時間境界をまたげない場合、離散時間制約「A−>B:xT−」を「A−>B:(T(x−1)+d(A))t−」と変換する。但し、AとBは任意の演算で、xは任意の離散時間、Tは離散時間単位の時間、d(A)は演算Aの遅延を表す。また、「A−>B:xt−」は連続時間制約を表し、「演算Bは演算Aより時間xかそれより後ろで実行される必要がある」という意味である。
(5)ステップS74
時間制約連続化部103は、演算が離散時間境界をまたげない場合、離散時間制約「A−>B:−xT」を「A−>B:−(T(x+1)−d(B))t」と変換する。但し、AとBは任意の演算、xは任意の離散時間、Tは離散時間単位の時間、d(B)は演算Bの遅延を表す。また、「A−>B:−xt」は連続時間制約を表し、「演算Bは演算Aより時間xかそれより前に実行される必要がある」という意味である。
(6)ステップS75
時間制約連続化部103は、演算が離散時間の境界をまたげる場合、離散時間制約「A−>B:xT−」を「A−>B:T(x−1)t−」と変換する。
(7)ステップS76
時間制約連続化部103は、演算が離散時間の境界をまたげる場合、離散時間制約「A−>B:−xT」を「A−>B:−T(x+1)t」と変換する。
(8)ステップS77
時間制約連続化部103は、スケジューリング可能性判定の時間制約として、既存の連続時間制約と新規の連続時間制約を新連続時間制約記憶部123に記憶する。すなわち、時間制約連続化部103は、変換された連続時間制約を、最後にまとめて新連続時間制約記憶部123に記憶する。但し、実際には、時間制約連続化部103は、変換された連続時間制約を、逐次、新連続時間制約記憶部123に記憶するようにしても良い。
(1)ステップS1401
スケジューリング可能性判断部104は、対象演算の依存配列の設定済み要素がまだあるか確認する。このとき、スケジューリング可能性判断部104は、対象演算の依存配列の設定済み要素がなければ、処理を終了する。
(2)ステップS1402
スケジューリング可能性判断部104は、時間制約を「A−>B:xT−」型の離散時間制約に変換する。すなわち、スケジューリング可能性判断部104は、時間制約の端点の演算Aについて、依存配列の位置に対応する演算Bとその要素vについて、新規離散時間制約の値xをfloor(v/T)として計算し、「A−>B:xT−」として新規の離散時間制約に追加することを、全ての時間制約の端点、依存配列の設定済みの要素に対して行う。
(3)ステップS1403
スケジューリング可能性判断部104は、変換された離散時間制約が冗長かどうか判定する。このとき、スケジューリング可能性判断部104は、変換された離散時間制約が冗長であれば、他に対象演算が直接依存する演算の依存配列に設定済み要素があるか確認する。
(4)ステップS1404
スケジューリング可能性判断部104は、変換された離散時間制約が冗長でなければ、スケジューリング可能性判定の時間制約として、既存の離散時間制約と新規の離散時間制約を離散時間制約記憶部112に記憶する。すなわち、スケジューリング可能性判断部104は、変換された離散時間制約を、逐次、離散時間制約記憶部112に記憶する。但し、実際には、スケジューリング可能性判断部104は、変換された離散時間制約を、最後にまとめて、離散時間制約記憶部112に記憶するようにしても良い。また、新離散時間制約を記憶するために別途、新離散時間制約記憶部122を用意しても良い。
102… 離散時間制約生成部
103… 時間制約連続化部
104… スケジューリング可能性判断部
105… スケジューリング部
111… DFG記憶部
112… 離散時間制約記憶部
113… 連続時間制約記憶部
121… 依存配列記憶部
122… 新離散時間制約記憶部
123… 新連続時間制約記憶部
130… スケジューリング済みDFG記憶部
Claims (12)
- データフローグラフを記憶するDFG記憶手段と、
対象演算に対して離散時間制約の端点の各演算からの遅延を表す依存配列を記憶する依存配列記憶手段と、
前記データフローグラフ及び前記依存配列を取得し、前記依存配列を用いた正閉路検出を行い、時間制約、演算及びデータのスケジューリングの可能性を判定して、離散時間制約を含んだデータフローグラフのスケジューリングの可能性の判定を高速化することを図るスケジューリング可能性判定手段と
を具備する
スケジューリング可能性判定システム。 - 請求項1に記載のスケジューリング可能性判定システムであって、
演算毎に離散時間制約の端点を構成する各演算からの遅延を計算して前記依存配列を生成し、前記依存配列を前記依存配列記憶手段に記憶する依存配列生成手段と、
既存の離散時間制約と前記データフローグラフとに基づいて、新規の離散時間制約を生成する離散時間制約生成手段と、
離散時間制約を連続時間制約に変換する時間制約連続化手段と
を更に具備し、
前記スケジューリング可能性判定手段は、前記連続時間制約に基づくスケジューリングの可能性を判定する
スケジューリング可能性判定システム。 - 請求項2に記載のスケジューリング可能性判定システムであって、
前記離散時間制約生成手段は、前記依存配列生成手段により計算された遅延を加える際、離散時間の境界が演算間にある場合を考慮し、冗長な新規の離散時間制約の生成を抑制して記憶容量の節約と高速化を図る
スケジューリング可能性判定システム。 - 請求項2又は3に記載のスケジューリング可能性判定システムであって、
前記離散時間制約生成手段は、離散時間制約の端点を構成する各演算の間の最短遅延を新規の離散時間制約に変換して、新規の離散時間制約の生成規則の簡素化、及び新規の離散時間制約の生成の高速化を図る
スケジューリング可能性判定システム。 - 請求項1乃至4のいずれか一項に記載のスケジューリング可能性判定システムであって、
前記スケジューリング可能性判定手段は、前記依存配列を用いて演算の間に離散時間の境界が存在するかどうかを考慮しながら遅延を加え、離散時間制約の端点を構成する各演算の依存配列の自分自身に対応する値を調べて正閉路検出の判定を行い、離散時間の境界が演算の間の遅延に影響がある場合のスケジューリングの可能性の判定を厳密化することを図る
スケジューリング可能性判定システム。 - 請求項5に記載のスケジューリング可能性判定システムであって、
前記スケジューリング可能性判定手段は、正閉路検出のために、任意の時間制約の端点からの距離の計算の際に、離散時間制約を考慮しながら最短の遅延を計算し、離散時間を考慮したスケジューリングの可能性の判定を厳密化することを図る
スケジューリング可能性判定システム。 - データフローグラフと、対象演算に対して離散時間制約の端点の各演算からの遅延を表す依存配列とを参照するステップと、
前記依存配列を用いた正閉路検出を行い、時間制約、演算及びデータのスケジューリングの可能性を判定して、離散時間制約を含んだデータフローグラフのスケジューリングの可能性の判定を高速化することを図るステップと
をコンピュータに実行させるための
スケジューリング可能性判定プログラム。 - 請求項7に記載のスケジューリング可能性判定プログラムであって、
演算毎に離散時間制約の端点を構成する各演算からの遅延を計算して前記依存配列を生成するステップと、
既存の離散時間制約と前記データフローグラフとに基づいて、新規の離散時間制約を生成するステップと、
離散時間制約を連続時間制約に変換するステップと、
前記連続時間制約に基づくスケジューリングの可能性を判定するステップと
を更にコンピュータに実行させるための
スケジューリング可能性判定プログラム。 - 請求項8に記載のスケジューリング可能性判定プログラムであって、
前記計算された遅延を加える際、離散時間の境界が演算間にある場合を考慮し、冗長な新規の離散時間制約の生成を抑制して記憶容量の節約と高速化を図るステップ
を更にコンピュータに実行させるための
スケジューリング可能性判定プログラム。 - 請求項8又は9に記載のスケジューリング可能性判定プログラムであって、
離散時間制約の端点を構成する各演算の間の最短遅延を新規の離散時間制約に変換して、新規の離散時間制約の生成規則の簡素化、及び新規の離散時間制約の生成の高速化を図るステップ
を更にコンピュータに実行させるための
スケジューリング可能性判定プログラム。 - 請求項7乃至10のいずれか一項に記載のスケジューリング可能性判定プログラムであって、
前記依存配列を用いて演算の間に離散時間の境界が存在するかどうかを考慮しながら遅延を加えるステップと、
離散時間制約の端点を構成する各演算の依存配列の自分自身に対応する値を調べて正閉路検出の判定を行い、離散時間の境界が演算の間の遅延に影響がある場合のスケジューリングの可能性の判定を厳密化することを図るステップと
を更にコンピュータに実行させるための
スケジューリング可能性判定プログラム。 - 請求項11に記載のスケジューリング可能性判定プログラムであって、
正閉路検出のために、任意の時間制約の端点からの距離の計算の際に、離散時間制約を考慮しながら最短の遅延を計算し、離散時間を考慮したスケジューリングの可能性の判定を厳密化することを図るステップ
を更にコンピュータに実行させるための
スケジューリング可能性判定プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008087947A JP5207125B2 (ja) | 2008-03-28 | 2008-03-28 | スケジューリング可能性判定システム、スケジューリング可能性判定方法、及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2008087947A JP5207125B2 (ja) | 2008-03-28 | 2008-03-28 | スケジューリング可能性判定システム、スケジューリング可能性判定方法、及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009244973A JP2009244973A (ja) | 2009-10-22 |
JP5207125B2 true JP5207125B2 (ja) | 2013-06-12 |
Family
ID=41306819
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2008087947A Active JP5207125B2 (ja) | 2008-03-28 | 2008-03-28 | スケジューリング可能性判定システム、スケジューリング可能性判定方法、及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5207125B2 (ja) |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7096438B2 (en) * | 2002-10-07 | 2006-08-22 | Hewlett-Packard Development Company, L.P. | Method of using clock cycle-time in determining loop schedules during circuit design |
-
2008
- 2008-03-28 JP JP2008087947A patent/JP5207125B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2009244973A (ja) | 2009-10-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9292284B2 (en) | Parallel arithmetic device, data processing system with parallel arithmetic device, and data processing program | |
JP4339907B2 (ja) | マルチプロセッサ向け最適コード生成方法及びコンパイル装置 | |
JP5102823B2 (ja) | 総テスト時間を最小にするようにテストシナリオを最適化するテスト支援装置、テスト装置、テスト支援方法及びコンピュータプログラム | |
JP2008090439A (ja) | 自動合成装置と方法 | |
WO2013105158A1 (ja) | データ依存解析支援装置、データ依存解析支援プログラム、及びデータ依存解析支援方法 | |
JP4830108B2 (ja) | プログラム処理装置、プログラム処理方法、並列処理プログラム用コンパイラおよび並列処理プログラム用コンパイラを格納した記録媒体 | |
JP5207125B2 (ja) | スケジューリング可能性判定システム、スケジューリング可能性判定方法、及びプログラム | |
JP3370304B2 (ja) | 高位合成システム、高位合成方法、および、高位合成方法の実施に使用される記録媒体 | |
US9383981B2 (en) | Method and apparatus of instruction scheduling using software pipelining | |
JP7146367B2 (ja) | 画像処理システム、情報処理装置、情報処理方法、および情報処理プログラム | |
JP6489985B2 (ja) | プログラム開発支援装置およびプログラム開発支援ソフトウェア | |
JP2009217778A (ja) | 動作合成装置、動作合成方法、および、プログラム | |
JP2006268165A (ja) | 集積回路のタイミング解析装置、集積回路のタイミング最適化装置、集積回路のタイミング解析方法、集積回路のタイミング最適化方法、集積回路基板の製造方法、制御プログラムおよび可読記録媒体 | |
JP2008129914A (ja) | ソフトウェア検証用モデル生成装置、及びソフトウェア検証用モデル生成方法 | |
CN100470468C (zh) | 将高阶程序语言自动转换成硬件描述语言的方法 | |
JP2018055249A (ja) | システム構築支援装置、システム構築支援方法、および、システム構築支援プログラム | |
JP4702357B2 (ja) | 動作レベル記述とレジスタ転送レベル記述間の等価性検証方法及び装置並びにプログラム | |
JP2005293349A (ja) | 回路設計支援システム、設計方法及びプログラム | |
Hamann et al. | Methods for multi-dimensional robustness optimization in complex embedded systems | |
JP2006221352A (ja) | 異常系プロセス自動生成方法および異常系プロセス自動生成プログラム | |
JP2006099720A (ja) | データフローグラフ処理方法 | |
JP7207509B2 (ja) | 画像処理システム、情報処理装置、情報処理方法、および、情報処理プログラム | |
US20090326901A1 (en) | Apparatus and method for estimating change amount in register transfer level structure and computer-readable recording medium | |
JP5626724B2 (ja) | アクセラレータ及びデータ処理方法 | |
Derin et al. | Towards a reliability-aware design flow for kahn process networks on noc-based multiprocessors |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20110210 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20120419 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120508 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120709 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20130125 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130207 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20160301 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5207125 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |