JPH0782440B2 - 論理合成の演算割り当て方法 - Google Patents
論理合成の演算割り当て方法Info
- Publication number
- JPH0782440B2 JPH0782440B2 JP2176291A JP17629190A JPH0782440B2 JP H0782440 B2 JPH0782440 B2 JP H0782440B2 JP 2176291 A JP2176291 A JP 2176291A JP 17629190 A JP17629190 A JP 17629190A JP H0782440 B2 JPH0782440 B2 JP H0782440B2
- Authority
- JP
- Japan
- Prior art keywords
- intermediate code
- block
- operations
- parallel
- graph
- 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.)
- Expired - Lifetime
Links
Landscapes
- Multi Processors (AREA)
- Devices For Executing Special Programs (AREA)
Description
【発明の詳細な説明】 産業上の利用分野 本発明は、論理合成のアルゴリズムの並列性を抽出する
論理合成の演算割り当て方法に関するものである。
論理合成の演算割り当て方法に関するものである。
従来の技術 最近、論理合成の分野で、C言語等のシーケンシャルな
プログラムから並列に実行するハードウエアを合成する
ために、アルゴリズムの並列性を抽出する演算割り当て
が盛んに行われるようになってきた。
プログラムから並列に実行するハードウエアを合成する
ために、アルゴリズムの並列性を抽出する演算割り当て
が盛んに行われるようになってきた。
従来の論理合成における演算割り当ての方法には、例え
ば、シュミレーティッド・アニーリングを用いた方法が
ある。以下、シュミレーティッド・アニーリングを用い
た方法について説明する。
ば、シュミレーティッド・アニーリングを用いた方法が
ある。以下、シュミレーティッド・アニーリングを用い
た方法について説明する。
まず、現在の温度を設定し、現在の演算割り当てに対す
るコストを計算する。次に、無作為に演算を選び、割り
当てる演算器及びステップを変更したときのコストを計
算する。そして、そのコストが現在のコストよりも低い
ときは演算の割り当てを実際に変更する。現在のコスト
より高いときはコストの差、及び温度によって実際に変
更するかしないかを確率的に決定する。温度が高く、コ
ストの差が小さいほど変更する確率が大きい。変更した
場合は、そのコストを新たに現在のコストとする。以上
のような変更を行いつつ、徐々に温度を下げる。そし
て、数回続けて演算割り当てが変更されなかった場合
は、その演算割り当てを最終結果とする。
るコストを計算する。次に、無作為に演算を選び、割り
当てる演算器及びステップを変更したときのコストを計
算する。そして、そのコストが現在のコストよりも低い
ときは演算の割り当てを実際に変更する。現在のコスト
より高いときはコストの差、及び温度によって実際に変
更するかしないかを確率的に決定する。温度が高く、コ
ストの差が小さいほど変更する確率が大きい。変更した
場合は、そのコストを新たに現在のコストとする。以上
のような変更を行いつつ、徐々に温度を下げる。そし
て、数回続けて演算割り当てが変更されなかった場合
は、その演算割り当てを最終結果とする。
発明が解決しようとする課題 しかし、以上の方法では、割り当てる演算の個数が多く
なればなるほど、変更回数も多くする必要があり、かつ
コストの計算時間も大きくなるため、演算割り当てを行
う実行時間は急激に増大するという課題を有していた。
なればなるほど、変更回数も多くする必要があり、かつ
コストの計算時間も大きくなるため、演算割り当てを行
う実行時間は急激に増大するという課題を有していた。
本発明は上記課題に鑑み、演算割り当てを並列に処理す
ることにより、演算割り当てを短時間で行うことを目的
とする。
ることにより、演算割り当てを短時間で行うことを目的
とする。
課題を解決するための手段 この目的を達成するために、本発明は、与えられたソー
ス・プログラムの文解釈を行って、中間コードに展開す
るソース解釈部と、中間コードから演算の実行順序を表
すデータ・フロー・グラフを作成し、データ・フロー・
グラフとして表現された演算を上から順に並列処理が可
能な限り前のステップに割り当てる処理と、下から順に
並立処理が可能な限り後のステップに割り当てる処理と
を行うことにより、演算の移動可能範囲であるステップ
範囲を求めた後、各ステップ間で移動可能な演算数の分
布であるステップ範囲分布グラフを求め、ステップ範囲
分布グラフの分布数の値が小さいところで中間コードを
順次分割してゆくことにより、中間コードを互いに相互
作用が少ないブロックに分割するブロック分割部と、複
数のプロセッサを用いて、並列に各ブロックの演算割り
当てを行うスケジューリング部と、演算割り当てが行わ
れた各ブロックを一つにまとめるブロック統合部から成
り、演算割り当てを並列に処理できるよう中間コードを
分割するように構成されている。
ス・プログラムの文解釈を行って、中間コードに展開す
るソース解釈部と、中間コードから演算の実行順序を表
すデータ・フロー・グラフを作成し、データ・フロー・
グラフとして表現された演算を上から順に並列処理が可
能な限り前のステップに割り当てる処理と、下から順に
並立処理が可能な限り後のステップに割り当てる処理と
を行うことにより、演算の移動可能範囲であるステップ
範囲を求めた後、各ステップ間で移動可能な演算数の分
布であるステップ範囲分布グラフを求め、ステップ範囲
分布グラフの分布数の値が小さいところで中間コードを
順次分割してゆくことにより、中間コードを互いに相互
作用が少ないブロックに分割するブロック分割部と、複
数のプロセッサを用いて、並列に各ブロックの演算割り
当てを行うスケジューリング部と、演算割り当てが行わ
れた各ブロックを一つにまとめるブロック統合部から成
り、演算割り当てを並列に処理できるよう中間コードを
分割するように構成されている。
作用 本発明は、前記構成により、中間コードを可能な限り相
互作用が少ないブロックに分割し、複数のプロセッサを
用いて並列に、各ブロックの演算割り当てを実行し、演
算割り当てが行われた各ブロックを一つにまとめること
により、短時間で演算割り当てを行うようにしたもので
ある。
互作用が少ないブロックに分割し、複数のプロセッサを
用いて並列に、各ブロックの演算割り当てを実行し、演
算割り当てが行われた各ブロックを一つにまとめること
により、短時間で演算割り当てを行うようにしたもので
ある。
実施例 以下、本発明の一実施例について図面を参照しながら説
明する。第1図は、本発明による論理合成の演算割り当
て方法の一実施例を示すブロック図である。第1図にお
いて、1はソースプログラムを中間コードに展開するソ
ース解釈部、2は中間コードをブロックに分割するブロ
ック分割部、3は分割された各ブロックに対して演算割
り当てを行うスケジューリング部、4はブロックを一つ
にまとめるブロック統合部である。
明する。第1図は、本発明による論理合成の演算割り当
て方法の一実施例を示すブロック図である。第1図にお
いて、1はソースプログラムを中間コードに展開するソ
ース解釈部、2は中間コードをブロックに分割するブロ
ック分割部、3は分割された各ブロックに対して演算割
り当てを行うスケジューリング部、4はブロックを一つ
にまとめるブロック統合部である。
以上のような第1図の構成において、以下その動作につ
いて第2図に示すフローチャートと共に説明する。
いて第2図に示すフローチャートと共に説明する。
まず、ソース解釈部1はソース・プログラムの文解釈を
行って中間コードに展開する。
行って中間コードに展開する。
次に、ブロック分割部2は、互いに相互作用が少ないブ
ロックに中間コードを分割する。互いに相互作用が少な
いブロックとは、中間コードの依存関係から、あるブロ
ックの演算の中で別のブロックで実行できる演算が少な
いブロックである。第2図は、このようなブロックに分
割すべく、ブロック分割部2におけるフロー・チャート
の例である。
ロックに中間コードを分割する。互いに相互作用が少な
いブロックとは、中間コードの依存関係から、あるブロ
ックの演算の中で別のブロックで実行できる演算が少な
いブロックである。第2図は、このようなブロックに分
割すべく、ブロック分割部2におけるフロー・チャート
の例である。
データ・フロー・グラフの作成21は、ソース解釈部1に
て変換された第3図に示すような中間コードから第4図
に示すデータ・フロー・グラフを作成する。即ち、中間
コード「i=t0」に対応するロードを示す節、中間コー
ド「a=i+t1」に対応する加算を示す節を用意する。
そして、データの依存関係から中間コード「a=i+t
1」に対応する加算は中間コード「i=t0」に対応する
ロードよりも後に実行されなければならないので、それ
を矢印で示す。以下同様にして、第4図に示すデータ・
フロー・グラフを作成する。
て変換された第3図に示すような中間コードから第4図
に示すデータ・フロー・グラフを作成する。即ち、中間
コード「i=t0」に対応するロードを示す節、中間コー
ド「a=i+t1」に対応する加算を示す節を用意する。
そして、データの依存関係から中間コード「a=i+t
1」に対応する加算は中間コード「i=t0」に対応する
ロードよりも後に実行されなければならないので、それ
を矢印で示す。以下同様にして、第4図に示すデータ・
フロー・グラフを作成する。
ステップ範囲の決定22は、データ・フロー・グラフにも
とづいて、各演算について割り当て可能なステップ範囲
を決定する。即ち、中間コードを上から順に可能な限り
前のステップに割り当てることにより、第5図(A)に
示すようなステップ割り当てと、中間コードを下から順
に可能な限り後のステップに割り当てることにより第5
図(B)に示すようなステップ割り当てを行う。そし
て、第5図(A)で割り当てられているステップから第
5図(B)で割り当てられているステップまでを演算の
割り当て可能な、即ち移動可能なステップ範囲とする。
第6図は第5図に示すステップ割り当てから得られるス
テップ範囲である。
とづいて、各演算について割り当て可能なステップ範囲
を決定する。即ち、中間コードを上から順に可能な限り
前のステップに割り当てることにより、第5図(A)に
示すようなステップ割り当てと、中間コードを下から順
に可能な限り後のステップに割り当てることにより第5
図(B)に示すようなステップ割り当てを行う。そし
て、第5図(A)で割り当てられているステップから第
5図(B)で割り当てられているステップまでを演算の
割り当て可能な、即ち移動可能なステップ範囲とする。
第6図は第5図に示すステップ割り当てから得られるス
テップ範囲である。
ステップ範囲分布グラフの作成23は、各ステップ間につ
いて、ステップ範囲がそのステップ間を横切る個数を求
めたステップ範囲分布グラフを作成する。例えば、第6
図のステップ範囲からは第7図に示すステップ範囲分布
グラフが作成される。
いて、ステップ範囲がそのステップ間を横切る個数を求
めたステップ範囲分布グラフを作成する。例えば、第6
図のステップ範囲からは第7図に示すステップ範囲分布
グラフが作成される。
ステップ間での分割24は、ステップ範囲分布グラフの作
成23が作成したステップ範囲分布グラフにもとづいて、
ブロックを二分割することを繰り返すことにより、互い
に相互作用が少ない複数のブロックに分割する。まず、
ステップ範囲分布グラフが最小のステップ間で分割す
る。ただし、分布グラフが最小のステップ間が複数存在
する場合は、それらの中で、分割したときの二つのブロ
ックでの中間コード数の差が最小となるところで分割す
る。そして、分割された二つのブロックに対しても同様
に、そのブロック内でステップが最小となるステップ間
で分割する。この処理をブロックに含まれる中間コード
数が充分小さくなるまで繰り返す。
成23が作成したステップ範囲分布グラフにもとづいて、
ブロックを二分割することを繰り返すことにより、互い
に相互作用が少ない複数のブロックに分割する。まず、
ステップ範囲分布グラフが最小のステップ間で分割す
る。ただし、分布グラフが最小のステップ間が複数存在
する場合は、それらの中で、分割したときの二つのブロ
ックでの中間コード数の差が最小となるところで分割す
る。そして、分割された二つのブロックに対しても同様
に、そのブロック内でステップが最小となるステップ間
で分割する。この処理をブロックに含まれる中間コード
数が充分小さくなるまで繰り返す。
このようにして中間コードがブロックに分割されると、
スケジューリング部3は、各ブロックで独立にシュミレ
ーティッド・アニーリングを用いて演算割り当てを行
う。なお、言うまでもなく、各ブロックの演算割り当て
は、複数のプロセッサを用いて並列に実行される。
スケジューリング部3は、各ブロックで独立にシュミレ
ーティッド・アニーリングを用いて演算割り当てを行
う。なお、言うまでもなく、各ブロックの演算割り当て
は、複数のプロセッサを用いて並列に実行される。
最後に、ブロック統合部4は、演算割り当てが行われた
各ブロックを統合する。
各ブロックを統合する。
以上、本実施例に依れば、ブロック分割部2、ブロック
統合部4を設け、演算割り当てを並列に実行することに
より、演算割り当てを短時間に行うことができる。な
お、本実施例では、スケジューリング部3でシュミレー
ティッド・アニーリングを用いて演算割り当てを行った
が、割り当てる演算の個数が多くなるほど、演算割り当
ての実行時間が増大する演算割り当て方法ならば、同様
に効果を得ることができる。
統合部4を設け、演算割り当てを並列に実行することに
より、演算割り当てを短時間に行うことができる。な
お、本実施例では、スケジューリング部3でシュミレー
ティッド・アニーリングを用いて演算割り当てを行った
が、割り当てる演算の個数が多くなるほど、演算割り当
ての実行時間が増大する演算割り当て方法ならば、同様
に効果を得ることができる。
発明の効果 以上のように本発明は、与えられたソース・プログラム
の文解釈を行って、中間コードに展開するソース解釈部
と、中間コードから演算の実行順序を表すデータ・フロ
ー・グラフを作成し、データ・フロー・グラフとして表
現された演算を上から順に並列処理が可能な限り前のス
テップに割り当てる処理と、下から順に並立処理が可能
な限り後のステップに割り当てる処理とを行うことによ
り、演算の移動可能範囲であるステップ範囲を求めた
後、各ステップ間で移動可能な演算数の分布であるステ
ップ範囲分布グラフを求め、ステップ範囲分布グラフの
分布数の値が小さいところで中間コードを順次分割して
ゆくことにより、中間コードを互いに相互作用が少ない
ブロックに分割するブロック分割部と、複数のプロセッ
サを用いて、並列に各ブロックの演算割り当てを行うス
ケジューリング部と、演算割り当てが行われた各ブロッ
クを一つにまとめるブロック統合部から成り、演算割り
当てを並列に処理できるよう中間コードを分割するよう
に構成したので、中間コードをブロックに分割し、各ブ
ロックの演算割り当てを並列に実行することにより、演
算割り当てを短時間で行うことができる。
の文解釈を行って、中間コードに展開するソース解釈部
と、中間コードから演算の実行順序を表すデータ・フロ
ー・グラフを作成し、データ・フロー・グラフとして表
現された演算を上から順に並列処理が可能な限り前のス
テップに割り当てる処理と、下から順に並立処理が可能
な限り後のステップに割り当てる処理とを行うことによ
り、演算の移動可能範囲であるステップ範囲を求めた
後、各ステップ間で移動可能な演算数の分布であるステ
ップ範囲分布グラフを求め、ステップ範囲分布グラフの
分布数の値が小さいところで中間コードを順次分割して
ゆくことにより、中間コードを互いに相互作用が少ない
ブロックに分割するブロック分割部と、複数のプロセッ
サを用いて、並列に各ブロックの演算割り当てを行うス
ケジューリング部と、演算割り当てが行われた各ブロッ
クを一つにまとめるブロック統合部から成り、演算割り
当てを並列に処理できるよう中間コードを分割するよう
に構成したので、中間コードをブロックに分割し、各ブ
ロックの演算割り当てを並列に実行することにより、演
算割り当てを短時間で行うことができる。
第1図は、本発明による論理合成の演算割り当て方法の
一実施例の構成を示すブロック図、第2図は、本発明に
よる論理合成の演算割り当て方法の一実施例の要部であ
るブロック分割部の動作を示すフローチャート、第3図
は、本発明による論理合成の演算割り当て方法の動作を
説明する中間コードの概念図、第4図は、本発明による
論理合成の演算割り当て方法の動作を説明するデータフ
ローグラフの概念図、第5図(A)、及び(B)は、本
発明による論理合成の演算割り当て方法の動作を示し、
第5図(A)は、ステップ割り当ての概念図、第5図
(B)は割り当てられているステップを示す概念図、第
6図は、本発明による論理合成の演算割り当て方法の動
作を説明するステップ範囲の概念図、第7図は、本発明
による論理合成の演算割り当て方法の動作を説明するス
テップ範囲分布グラフの概念図である。 1……ソース解釈部、2……ブロック分割部、3……ス
ケジューリング部、4……ブロック統合部。
一実施例の構成を示すブロック図、第2図は、本発明に
よる論理合成の演算割り当て方法の一実施例の要部であ
るブロック分割部の動作を示すフローチャート、第3図
は、本発明による論理合成の演算割り当て方法の動作を
説明する中間コードの概念図、第4図は、本発明による
論理合成の演算割り当て方法の動作を説明するデータフ
ローグラフの概念図、第5図(A)、及び(B)は、本
発明による論理合成の演算割り当て方法の動作を示し、
第5図(A)は、ステップ割り当ての概念図、第5図
(B)は割り当てられているステップを示す概念図、第
6図は、本発明による論理合成の演算割り当て方法の動
作を説明するステップ範囲の概念図、第7図は、本発明
による論理合成の演算割り当て方法の動作を説明するス
テップ範囲分布グラフの概念図である。 1……ソース解釈部、2……ブロック分割部、3……ス
ケジューリング部、4……ブロック統合部。
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 昭63−304325(JP,A) 特開 平1−287744(JP,A) 特開 平2−135530(JP,A)
Claims (1)
- 【請求項1】与えられたソース・プログラムの文解釈を
行って、中間コードに展開するソース解釈部と、 前記中間コードから演算の実行順序を表すデータ・フロ
ー・グラフを作成し、データ・フロー・グラフとして表
現された演算を上から順に並列処理が可能な限り前のス
テップに割り当てる処理と、下から順に並立処理が可能
な限りの後のステップに割り当てる処理とを行うことに
より、演算の移動可能範囲であるステップ範囲を求めた
後、 各ステップ間で移動可能な演算数の分布であるステップ
範囲分布グラフを求め、ステップ範囲分布グラフの分布
数の値に基づき中間コードを順次分割してゆくブロック
分割部と、 複数のプロセッサを用いて、並列に各ブロックの演算割
り当てを行うスケジューリング部と、演算割り当てが行
われた各ブロックを一つにまとめるブロック統合部から
成り、演算割り当てを並列に処理できるよう前記中間コ
ードを分割することを特徴とする論理合成の演算割り当
て方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2176291A JPH0782440B2 (ja) | 1990-07-05 | 1990-07-05 | 論理合成の演算割り当て方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2176291A JPH0782440B2 (ja) | 1990-07-05 | 1990-07-05 | 論理合成の演算割り当て方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0470931A JPH0470931A (ja) | 1992-03-05 |
JPH0782440B2 true JPH0782440B2 (ja) | 1995-09-06 |
Family
ID=16011022
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2176291A Expired - Lifetime JPH0782440B2 (ja) | 1990-07-05 | 1990-07-05 | 論理合成の演算割り当て方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0782440B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8479215B2 (en) * | 2009-08-18 | 2013-07-02 | International Business Machines Corporation | Decentralized load distribution to reduce power and/or cooling costs in an event-driven system |
JP4955082B2 (ja) * | 2010-02-10 | 2012-06-20 | シャープ株式会社 | 画像処理装置、画像形成装置、および画像処理方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3053092B2 (ja) * | 1987-06-05 | 2000-06-19 | 株式会社日立製作所 | 並列化コンパイル方法 |
JPH01287744A (ja) * | 1988-05-13 | 1989-11-20 | Matsushita Electric Ind Co Ltd | プログラム変換装置 |
JPH02135530A (ja) * | 1988-11-16 | 1990-05-24 | Fujitsu Ltd | プログラム並列化支援処理方法 |
-
1990
- 1990-07-05 JP JP2176291A patent/JPH0782440B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPH0470931A (ja) | 1992-03-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20190049593A (ko) | 콘볼루션 신경망에서의 연산들을 수행하는 방법 및 장치 | |
US5392430A (en) | Hierarchical scheduling method for processing tasks having precedence constraints on a parallel processing system | |
JPH06259400A (ja) | 複雑なシステムのシミュレーション操作方法 | |
US6539542B1 (en) | System and method for automatically optimizing heterogenous multiprocessor software performance | |
CN112015366B (zh) | 数据排序方法、数据排序装置及数据库*** | |
JP2980228B2 (ja) | 音声認識用音響モデル生成方法 | |
Coello | Evolutionary multiobjective optimization: current and future challenges | |
JPH0782440B2 (ja) | 論理合成の演算割り当て方法 | |
JP3602697B2 (ja) | 論理回路設計支援システム | |
JPS62217325A (ja) | アセンブラコ−ド最適化方式 | |
JP3092550B2 (ja) | 処理フロー進捗管理システム及び処理フロー進捗管理方法 | |
JP7468650B2 (ja) | 情報処理装置、情報処理方法、及び、プログラム | |
JPH04153780A (ja) | 論理回路の合成方法 | |
JPH04172570A (ja) | 画像信号のタスク分割並列処理方法 | |
JPH05165397A (ja) | スケジューリング装置 | |
JP3180984B2 (ja) | 半導体集積回路における処理動作のスケジューリング方法 | |
JPH0934715A (ja) | 組み合わせ最適化処理方法 | |
JP2937727B2 (ja) | 論理状態割り当てシステム | |
JPH06202884A (ja) | マルチプログラム実行管理方法 | |
JPS63189944A (ja) | 目的プログラム生成処理方式 | |
JPH05324345A (ja) | ソースプログラム中のループ文の並列化方法 | |
Dunstan et al. | Synthesis of optimal multirate arrays for decimation filters | |
Friesen et al. | The Modified Splitting Strategy for the Parallel Multisection Algorithm | |
WO1996028783A1 (en) | Method and system for storing instructions in computer memory | |
JPH0991321A (ja) | 論理回路の自動設計方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
EXPY | Cancellation because of completion of term |