JP2007034888A - 機能ユニットにおいて不必要な電力消費を最小限に抑えるためのデータ経路の割振りのための方法および装置 - Google Patents

機能ユニットにおいて不必要な電力消費を最小限に抑えるためのデータ経路の割振りのための方法および装置 Download PDF

Info

Publication number
JP2007034888A
JP2007034888A JP2005220281A JP2005220281A JP2007034888A JP 2007034888 A JP2007034888 A JP 2007034888A JP 2005220281 A JP2005220281 A JP 2005220281A JP 2005220281 A JP2005220281 A JP 2005220281A JP 2007034888 A JP2007034888 A JP 2007034888A
Authority
JP
Japan
Prior art keywords
allocation
cost
variable
power
operations
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
Application number
JP2005220281A
Other languages
English (en)
Inventor
Wei Lee New
ニュー・ウェイ・リー
Santoso Yudhi
ユディ・サントーソ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2005220281A priority Critical patent/JP2007034888A/ja
Priority to US11/460,422 priority patent/US20070028198A1/en
Publication of JP2007034888A publication Critical patent/JP2007034888A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design

Abstract

【課題】 機能ユニットにおいて不必要な電力消費を最小限に抑えるためのデータ経路の割振りのための方法および装置を提供する。
【解決手段】 高位合成レジスタ転送レベル設計を作成するための方法および装置は、電力管理の定式化を用い、最小の擬似スイッチングのハードウェアアーキテクチャを生成するために、割振り処理に適合するために用いることができる。2部重み付け割当ては、コスト定式化およびハンガリーのアルゴリズムによって、機能ユニットの共有を決定するために用いられる。
【選択図】図5

Description

本発明は、たとえば回路設計におけるデータ経路の割振りに関する。
回路設計において、設計者は、回路の機能性のアルゴリズムの仕様を含む動作記述から始めると考えられる。高位合成は、超大規模集積(VLSI)回路の動作記述を構造的なレジスタ転送レベル(RTL)実装に変換する。RTL実装は、マクロブロック(たとえば、機能ユニット、レジスタ、マルチプレクサ、バス、メモリブロックなど)およびランダム論理の相互接続を記述する。
順次回路の動作記述は、回路のサイクルごとの動作またはその構造的な実装に関する情報をほとんど含まないと考えられる。高位合成(HLS)ツールは一般に、制御データフローグラフ(CDFG)などの適切な中間フォーマットに動作記述をコンパイルする。CDFGの頂点は、動作記述のさまざまな演算を表す。データおよび制御エッジは、演算および制御の流れとの間のデータ依存性をあらわすために用いられる。
高位合成ツールは一般に、1つ以上の以下のタスク、すなわち変換、モジュール選択、クロック選択、スケジューリング、リソース割振りおよび割当て(リソース共有またはハードウェア共有とも呼ぶ)を行う。スケジューリングは、1つ以上のクロックサイクルまたは制御ステップに各演算を割当てることによって、設計のサイクルごとの動作を決定する。割振りは、動作記述を実行するために用いられる各タイプのハードウェアリソースの数を決定する。割当てとは、割当てられたレジスタ(および対応する機能ユニット)の1つに対する各変数(および対応する演算)の結合を指す。
VLSI回路において、回路における信号が論理遷移を受けるときは常に被る動的構成要素は、電力消失が著しく目立つことが多い。しかし、回路のすべての部分が各クロックサイクルの中で機能する必要があるとは限らない。したがって、複数の低電力設計技術は、不必要な信号遷移の抑制または解消に基づいて提案されている。一般に、そのような技術をあらわすために用いられる用語は、電力管理である。データ経路割振りとの関連において、電力管理が、以下の技術を用いてデータ経路割振りに適用されうる。
オペランド分離
組込み式組合せ論理ブロックの入力に透過ラッチを挿入することおよび論理ブロック用に使用していない状態を検出するためのさらなる制御回路。制御回路の出力は、論理ブロックの入力におけるラッチが値を変更することができないようにするために適切に用いられる。したがって、前のサイクルの入力値は、検討中、論理ブロックの入力で保持され、不必要な電力消失を排除する。
オペランド分離技術には、2つの欠点がある。種々のサブ回路用に使用していない状態を検出する信号は一般に、遅れて到着する(たとえば、各制御装置状態の中で入れ子の条件文の存在のために、使用していない状態は、データ経路からの比較器の出力に左右されうる)。したがって、課せられなければならないタイミングの制約(すなわち透過ラッチに対するイネーブル信号は、そのデータ入力が変更することができる前に決定しなければならない)が満たされないことが多いため、抑制を無効にする。さらに、機能ユニットの前の透過ラッチの挿入は、回路の限界経路にさらなる遅延を生じる可能性があり、これは、高速のほかに電力効率を必要とする信号処理用途および画像処理用途では許容可能ではない可能性がある。
本特許は、連鎖演算のためのデータ経路割振りにおける電力消費の最小化に取組むことを目的としている。データ経路割振りにおいて、機能ユニットに演算を慎重に割振ることによって、回路の電力消費を最小限に抑えることができる。図1を参照すると、ALU2における不必要な電力消失のために、不必要な電力消費がデータ経路割振りの場合に生じるのに対し、よりすぐれたデータ経路割振りスキーム(図2)の場合には、不必要な電力損失は機能ユニットの共有から生じない。すべての機能ユニットが共有されない場合には、不必要な電力損失は生じない。しかし、これは、多額のハードウェアコストのために廉価ではない。データ経路割振りにおける機能ユニットの割当てに対する可能な演算に関して生じうる適切な演算候補のそれぞれの不必要な電力コストを考慮することによって、電力損失を最小限に抑えることができる。
図3および図4に示されている別のデータ経路割振りスキームの組を考えることにする。抽出器は平均して乗算器より電力消費が少ないと仮定する。図3に示されているスキームは、抽出器における不必要な電力損失が乗算器で生じる不必要な電力損失よりはるかに小さいために、電力消失がより少ないことが分かる。乗算器および抽出器への入力に共通のスイッチング頻度を仮定すると、抽出器または乗算器が用いられる場合のシフタに関する不必要な電力損失は、同一である。したがって、図3のデータ経路割振りスキームは、図4に示されるスキームと比較して、電力消失を考慮するという点でより好ましい。
本発明の一態様によれば、データ経路割振りの方法が提供される。この方法は、機能ユニットにおける不必要な電力消費を低減するために、電力コストの定式化によってリソースの割振りを生成するステップを含む。
本発明の別の態様によれば、データ経路割振りの装置が提供される。この装置は、リソースの割振りを生成する手段を具備する。
本発明のさらに別の態様によれば、データ経路割振りのためにコンピュータ読取り可能な媒体に記録されるコンピュータプログラムを有するコンピュータプログラム製品が提供される。このコンピュータプログラム製品は、機能ユニットの共有の異なる代替例に関してリソースの相対的に不必要な電力消費を計算し、低電力リソースを生成するためにこれらの情報を用いるためのコンピュータプログラムコード手段を具備する。
本発明により、連鎖演算において最小の不必要な電力消費で回路を生成することができる。
本発明は、添付図面を参照して非限定的な例によって説明される。
高位合成のデータ経路割振り最適化段階は、2つのサブタスク、すなわちモジュール割振り(演算と機能ユニットとの結合)およびレジスタ割振り(変数とレジスタとの結合)からなる。本発明の記載される実施形態は、モジュール割振りサブタスクにおいて有用である。
モジュール割振りに関する電力管理のコストは、最適の割振りを与えるために、電力管理コストの定式化によってすべての割振りステージで比較される。
図5は、ハードウェア設計を生成するために、本発明の実施形態の演算に関する概略のフローチャートである。
回路の動作記述が提供される(ステップS10)。回路設計に関する変数のスイッチング頻度が決定される(ステップS12)。スイッチング頻度は、コンパイラの上位段階によって計算され、不完全な電力管理アーキテクチャにおいて生じるモジュールの共有によって導入される擬似的な電力消失の計算におけるリソース割振り段階の中で用いられる。
動作記述は、たとえばHLSコンパイラによって構文解析される(ステップS14)。中間表現もまた、複数の周知の方法のいずれかによって最適化される(ステップS16)。中間表現を最適化するための一般的な技法としては、ソフトウェアパイプライニング、ループ展開、命令並列化スケジューリング、強制指向スケジューリングなどが挙げられる。これらの方法は通常、中間表現を最適化するために合わせて適用される。データフローグラフ(DFG)は、変数のスイッチング頻度を用いてスケジューリングされる(ステップS18)。構文表現は、DFGをスケジューリングするためにコンパイルされる。
後述するように、モジュールおよびレジスタは、回路設計に割振られ(ステップS20)、RTL設計の形で提案されたアーキテクチャ(ステップS22)を生じる。
データ経路割振りプログラム
図6は、データ経路割振り処理を示すフローチャートである。データ経路割振りの中で実行するためのサブタスクは、モジュール割振り(演算と機能ユニットとの結合)およびレジスタ割振り(変数とレジスタとの結合)である。この例示的な実施形態において、モジュール割振りに続いて、レジスタ割振りが実行されるが、これは同時であってもよく、逆であってもよい。
すべての変数に関する演算データ、すなわち、変数が導出される演算に関する情報(Op_from)から変数が用いられる演算に関する情報(Op_desitinations)が収集される(ステップS202)。すべての演算に関する変数データ、すなわち、すべての演算によって用いられ、導出される変数に関する情報が収集される(ステップS204)。すべての変数に関する演算データの解析から、生成時および破棄時がすべての変数に割当てられる(ステップS206)。生成時および破棄時は、すべての演算に割当てられる(ステップS208)。
演算は、必要な機能に応じて、すなわちモジュールタイプによって最初にグループ化される。同一のモジュールタイプを必要とする演算、すなわち同一の機能ユニットを共有しうる演算が、そのライフタイム(生成および破棄に基づく)に応じて、クラスタ化される(ステップS210)。演算は、その生成時に基づいて昇順に最初に分類される。互いに共有可能ではない演算のクラスタは、分類順に応じて割振られる(ライフタイムが重ならない場合に限り、2つの演算は共有可能ではない)。必要な各タイプのモジュールの数が決定される(ステップS212)。モジュールのそれぞれの可能性のあるタイプに関して、必要な数は、任意の1つの制御ステップにおいて同時に生じるモジュールのそのタイプを共有しうる演算の最大数である。各タイプのモジュールの総数は、そのモジュールタイプを用いた演算の任意の1つのクラスタにおける演算の最大数より大きく、少なくとも最大数に達する可能性がある。次に、モジュールが異なる演算に割振られる(S214)。
次に、変数がレジスタに割当てられる。
ここで、割振りモジュールのステップの例(図6のステップS214)を、図7を参照して説明する。
モジュールタイプにはすべて、モジュールタイプ番号が割振られる。共通の機能ユニットを共有しうるモジュールは、同一のモジュールタイプに基づいてグループ化される。同一のモジュールタイプ中のすべてのモジュールは、同一の待ち時間(生成から破棄までの時間)を有する。モジュールタイプに割振られたモジュールタイプ番号は、待ち時間の降順で割振られる。すなわち、最長の待ち時間のモジュールタイプが最小のモジュールタイプ番号(すなわち0)を有し、最短の待ち時間のモジュールタイプが最大のモジュールタイプ番号を有する。同一の待ち時間のモジュールタイプには、ランダムに異なる連続番号が割振られる。同様に、各モジュールタイプに関して演算の各クラスタには番号が割振られる。
割振りモジュールの処理は、割振られる対象の第1のモジュールタイプをモジュールタイプ=0に設定することによって開始される(ステップS302)。現在のモジュールタイプ番号が最後(可能な限り最高の)モジュールタイプ番号より高いかどうかの確認がなされる(ステップS304)。現在のモジュールタイプ番号が最後のモジュール番号より高くない場合には、現在のモジュールタイプに関して現在の演算クラスタ番号が0に設定される(ステップS306)。現在のモジュールタイプに関する現在の演算クラスタ番号におけるすべての演算が、現在のモジュールタイプの異なる機能ユニットに割当てられる(ステップS308)。モジュールが、現在のクラスタにおける演算に関して待ち時間の降順に割振られる。次に、現在の演算クラスタ番号が1つ増分される(ステップS310)。
現在の演算クラスタ番号が最後(最高)の演算クラスタ番号より高いかどうかの確認がなされる(ステップS312)。現在の演算クラスタ番号が最後の演算クラスタ番号より高い場合には、現在のモジュールタイプ番号が1つ増分され(ステップS314)、処理はステップS304に戻る。新しい現在のモジュールタイプ番号が最後のモジュールタイプの番号より高くない場合には、この次のモジュールタイプのモジュールを用いる第1の演算クラスタにおける演算がこの次のタイプのモジュールに割振られる(ステップS308による)。
ステップS312で現在の演算クラスタ番号が最後の演算クラスタ番号より高くない場合には、モジュール割振りに関して行列またはグラフが構築される(ステップS316)。行列またはグラフは、モジュールの既存の割振り(第1の演算クラスタおよびこれまでに処理された任意の他の演算クラスタに対して)および現在の演算クラスタ番号に基づいている。現在のモジュールタイプに関してこれまでに処理されたすべてのクラスタに対する割振りを行うために、任意の割振り問題が克服される(ステップS318)。
次に、現在の演算クラスタ番号が1つ増分され(ステップS320)、処理はステップS312に戻る。
一旦、モジュール割振り処理がすべてのモジュールタイプにわたって一巡すると、ステップS304は、モジュールタイプ番号が最後または最高のモジュールタイプ番号より大きいことを検出し、モジュール割振り処理はすべてのモジュールタイプに対するモジュール割振りを出力する(ステップS322)。
モジュール割振りは、待ち時間の降順で演算に関して行われる。これは、より短い待ち時間のモジュールと比較した場合、重なったライフタイムを有するモジュールの可能性が、より長い待ち時間の演算の場合のほうが高いためである。より短い待ち時間の演算の場合には、より長い待ち時間の演算に割当てられる実際の機能ユニットは、演算自体ではなく、解析に用いられる。
共有可能な機能ユニットの演算は、2部重み付け割当て(Bipartite Weighted Assignments)を用いて、機能ユニットにクラスタごとに割当てられる。重み付け2部グラフWB=(S,T,E)は、マッチング問題を解決するために構築される。グラフの各頂点s∈S(t∈T)は演算op∈OP(機能ユニットfu∈FU)を表し、opをfuに割振ることができる(すなわち、fuに既に結合された演算はそのライフタイムがopと重なっていない)場合に限り、sとtとの間には重み付けのなされたエッジeijがある。エッジeijに関連する重み付けwijは、電力コストの定式化(式1を用いて)に基づいて計算される。すべてのモジュールクラスタの割振りは、重み付け2部グラフにおけるマッチング問題としてモデル化され、たとえば、表2に関して後述しているように、公知のハンガリー法[C.H.パダディミトリオウ(C.H.Padadimitriou)およびK.スティグリッツ(K.Steiglitz)著、「Combinatorial Optimisation」、Prentice−Hall、1982]によって解決される。
レジスタ割振り処理は、レジスタに対する変数の割振りを含む。変数とレジスタの結合処理を最適化するための一般的な技法としては、貪欲アルゴリズムなどの貪欲構成的アプローチまたはi)クリーク分割法、ii)レフトエッジアルゴリズムおよびiii)重み付け2部マッチングアルゴリズムなどの分解アプローチが挙げられる。
コストの定式化
モジュール割振り電力コストの定式化(図7のステップS316の場合)
図8は、演算候補と特定のクラスタに割当て可能な機能ユニットとの間のコスト割当て処理を示すフローチャートである。機能ユニットに対する演算のすべてのエッジは、機能ユニットに対する演算の割当てで生じる電力コストに割当てられる。グラフエッジ割当ては、利用可能な第1の機能ユニットに対して第1の演算候補に割振られる現在の演算を評価することによって開始される。コスト割当て処理(S412)は、図に示されているように、すべての演算候補および機能ユニットに関して反復される。
図9は、ステップS412のコスト割当て処理を示すフローチャートである。このステップにおいて、FUに対する現在の演算候補の割当てで生じうる不必要な電力コストが、FUに割当てられるすべての演算に対して演算候補を評価することによって計算される。コスト割当ては、現在の演算候補と、過去の割振りクラスタにおけるFUに割当てられた第1の演算から始まる。演算候補に対する評価は、過去の割振りにおいてFUに割当てられたすべての演算に関して行われる。
ステップS508において、2つの演算の間の詳細な電力の定式化が行われる。モジュール割振りにおいて変更することができる関連電力コストは、マルチプレクサ(MUX)および電力管理コストの割振りが原因で生じるコストである。モジュール割振りにおいて、電力のコストの定式化は、以下のように決定される。
power(x)=(電力管理コストの和)+(マルチプレクサの電力コストの和)[1]
モジュール割振りにおいて変更することができる唯一の関連面積コストは、マルチプレクサの番号が原因で生じるコストである。したがって、モジュール割振りにおいて、式2を用いたマルチプレクサの電力コストは、以下のように決定される。
MUX(x)=KMUX*(マルチプレクサの面積コストの和) [2]
式中、KMUXは、用いられる技術に関して、MUXの正規化された電力コスト消費に対する面積コストの倍率をかけるために用いられる定数である。
この実装の場合には、機能ユニットは、可能であれは常に共有される。必要な最小値より大きい機能ユニットの割振りはない。モジュール割振り段階は、その入力およびレジスタ入力で最小のMUX電力使用および最適な電力管理構成が生成されるように、機能ユニットをどのように共有するかを決定するための段階である。
レジスタおよび機能ユニットへの入力におけるマルチプレクサ(MUX)の電力消費は、2部重み付け割当てターゲットを用いて、抑制される。演算の変数の入出力のためのMUXの電力要件は、モジュール割振りにおいて電力コストの定式化を評価し、図10のステップS614で生成されるように、式3に示している。機能ユニットに対する演算のすべての割振りに関して、式3は、レジスタへの入力で生じる明示のMUXコストを評価するために最初に用いられる(レジスタはレジスタ割振り段階まで割振られることはないが、レジスタの必要性はモジュール割振り段階で認識されるため、コストを見積もることができる)。続いて、式3が用いられ、機能ユニットへの入力で生じる暗黙のコストを計算する。
<数1>
Figure 2007034888
式中、op、opは、それぞれ演算候補および比較においてレジスタの過去に割振られた演算である。
MUXは、MUXの推定コスト(たとえばMUXのビット幅に基づく)である。
MAXは、演算が同一の機能ユニットを共有することができないために、マッチングが可能でない場合に割当てられる最大値(値は、示されたコストがオーバフローを生じるほど高くてはならない)である。
変数または変数が入力変数である場合に変数が達する演算、または出力変数の場合に変数が供給される演算が重なるライフタイムを有する場合には、Overlap()は1を返し、それ以外の場合には0を返す。
OPは、変数がモジュールへの入力変数である場合に変数が達する演算または変数がモジュールから出力変数として供給される演算のいずれかである。
REG_TYPE(var)は、変数iのポートタイプであり、変数タイプはレジスタタイプまたは配線タイプに属することができる。
モジュールに供給される変数が異なる演算から生じる場合には、モジュールの入力への入力で明示のMUXコストが生じる。他の組合せに関して共通の機能ユニットに供給されるモジュールの共有を促進するために、モジュールからの出力で、共通の機能ユニットに供給されない組合せに暗黙のMUXコストが割当てられる。これは、共通の機能ユニットに供給される演算が異なるモジュールに割当てられる場合には、MUXコストが生じるためである。MUXコストが必ずしも生じるとは限らないため、すなわち組合せが共通の機能ユニットに供給される変数から構成されないとき、この点では暗黙に過ぎない。しかし、コストが実際に生じるかどうかは、特定のモジュール割振りが選択され、レジスタが割振られるまで決定されない。したがって、暗黙のコストは不確実であると仮定されると、別の実施形態ではそのようなコストを無視する場合がある。
演算が重なるライフタイムを有する場合には、モジュールを共有することはできない。したがって、結果は常に、最大スコアであり、Overlap(op,op)=1である。したがって、
<数2>
Figure 2007034888
である。
したがって、唯一の結果は、1*MAX=MAXとなる。
演算が重なるライフタイムを有さない場合には、
Overlap(op,op)=0である。したがって、
Overlap(op,op)*MAX=0である。しかし、MUXの面積コストが依然として存在しうる。これは、演算の変数が重なるライフタイムを有するかどうか、演算が重なるライフタイムを有するかどうか、同一の演算が両方の変数に用いられるかどうかに左右される。変数のポートタイプもまた、考慮すべき因子である。
変数varおよびvarが同一のタイプではない場合には、モジュールへのインターフェイスが異なるため、MUXが必要である。示されているように、共通の演算への入力が異なるタイプである、すなわち一方の入力には配線、他方の入力にはレジスタがある場合には、特定のクロックタイミングで配線からの直接入力および別のクロックタイミングでレジスタからのラッチ出力を受け入れるために、入力にMUXが必要となる。したがって、レジスタタイプが異なる場合には、
<数3>
Figure 2007034888
である。結果は1*1*CMUX=CMUXである。
演算の変数が重なるライフタイムを有する場合には、Overlap(var,var)=1である。次の演算または前の演算が重なるライフタイムを有する場合には、
<数4>
Figure 2007034888
である。したがって、
<数5>
Figure 2007034888
である。次の演算または前の演算のいずれかあるいは変数が重なるライフタイムを有し、その演算が重なるライフタイムを有さない場合には、結果は1*1*CMUX=CMUXである。
同一の演算が用いられる場合には、(Op==Op)=1である。演算が重なるライフタイムを有さず、変数も重なるライフタイムを有さず、レジスタタイプが同一である場合には、
<数6>
Figure 2007034888
である。したがって、
<数7>
Figure 2007034888
であり、Overlap(var,var)=0であり、
<数8>
Figure 2007034888
である。したがって、MUXの面積コストは0である。
変数が重なるライフタイムを有する場合には、共通のレジスタを共有することができないため、MUXが必要である。変数が重なるライフタイムを有さない場合には、変数は、共通のレジスタまたは機能ユニットの共通の入力ポートまたは出力ポートを共有することができる。レジスタに割当てられた変数が共通の機能ユニットから続く場合には、共有されたレジスタへの入力でMUXコストが避けられる。これは、変数の両方が機能ユニットを共有することができる類似の演算から続き、これらの演算が重なるライフタイムを有さない場合に唯一可能である。機能ユニットへの入力変数が共通のレジスタまたは入力ポートに割当てられる場合には、機能ユニットへの入力でMUXコストが避けられる。
MUXが原因で生じるモジュール割振りにおける総電力の増加は、MUXの面積の増大に比例する。KMUXは、すべての演算の電力消費に関する基準として用いられるレジスタの電力消費に対して生じるMUXの電力消費を反映するために、MUXの面積の倍率をかける因子である。KMUXは、一部のマルチプレクサの電力測定から得ることができる。nビットマルチプレクサによって消費される平均電力が実現される。次のこの電力が、nビットレジスタで消費される電力を用いて正規化される。因子KMUXは、MUXの面積単位によって正規化された電力を除算することによって得られる。nビットレジスタで消費される電力を用いて、すべての演算の電力測定基準を正規化する。
電力管理コストは、前の演算クラスタにおける同種の演算に割当てられる機能ユニットを共有しうる同一の演算に関して計算される。電力管理コストの計算において満たすべき必須条件は、機能ユニットがレジスタ割振りにおける最適な電力管理を許容することができるような態様で割振られるように、モジュール割振りはレジスタ割振りを考慮して実行されるため、レジスタ共有のための候補である出力変数のライフタイムがモジュールの過去の割振りの出力変数と重ならないことである。
電力に関連するコストの定式化は、レジスタまたは機能ユニットの入力ポートまたは出力ポートの共有によって導入される擬似動作の計算を含む。これは、変数が共通のレジスタまたはポートを共有する場合には、共有に含まれる変数のスイッチングアクティビティと、共有されたレジスタまたはポートに接続される機能ユニットに変数によって導入される擬似電力消失と、を考慮することによって実現される。スイッチングアクティビティに関する情報は、コンパイラによって自動的に決定される。第1の変数によって導入される擬似動作は、その第1の変数のスイッチングアクティビティに、第1の変数がレジスタまたは入力ポートまたは出力ポートを共有する他の変数に関連する不必要なスイッチング演算の電力測定基準を乗算することによって計算される。モジュール割振りは、この情報を利用してモジュールを共有する。
スイッチングアクティビティの計算
コンパイラがプログラムの実行において変数のスイッチングの反復を決定することができない場合には、コンパイラはデフォルト値に周知の「反復数」を割当てる。このデフォルト値は、前に用いられた反復数、たとえばすべての既知の反復数の平均(または過去数回、たとえば最後の5回だけの平均)から導出される。コンパイラは、入力プログラムによって予め定義されるサイクルで実行される変数のための周知の反復数を割当てる。たとえば、変数が現れるループのループサイクルの数が入力プログラムによって100に定義されている場合には、変数は反復数100を割当てられる。
両方の出力変数がレジスタタイプである場合、両方の変数が配線タイプである場合
<数9>
モジュール割振りの電力管理コスト=
Figure 2007034888
となる。式中、
Var 1は、所定の宛先の演算に対する第1の入力変数であり、
Var 2は、所定の宛先の演算に対する第2の入力変数であり、
SAは、すべての変数に対する変数のスイッチングアクティビティであり、
nは、宛先の演算の数であり、
Powerは、両方の演算が共通の機能ユニットを共有する場合に、出力変数から別の変数の所定の宛先の演算までの不必要な信号の流れを計算することによって得られる電力消費コストである。この方法は、ステップS508(図10)に記載されている。
いずれか一方の変数がレジスタタイプであり、他方の変数が配線タイプである場合には、
<数10>
モジュール割振りの電力管理コスト=
Figure 2007034888
となる。式中、
Varは、変数が配線タイプである場合の所定の宛先の演算に対する入力変数であり、
SAは、すべての変数に対する変数のスイッチングアクティビティであり、
nは、宛先の演算の数であり、
Powerは、両方の演算がステップS508(図10)から共通の機能ユニットを共有する場合に、出力変数から別の変数の所定の宛先の演算までの不必要な信号の流れを計算することによって得られる電力消費コストである。
レジスタへの入力が変化するとき、レジスタが切替わる。しかし、機能ユニットの出力が切替わるとき、全体的な電力消費に関して、出力がラッチされるのが共有されるレジスタであるか、または共有されないレジスタであるに関係なく、レジスタの電力消費は依然として同一のままである。すなわち1つのレジスタをスイッチングなければならない。他方、存在するマルチプレクサは電力を消費し、全体的な電力消費に相違を生じる。電力管理コストは、不必要な機能ユニットのスイッチングにのみ関連しているコストである。このコストは、レジスタのスイッチングまたはマルチプレクサのスイッチングの電力損失に関係がない。
電力管理コストの定式化は、異なるシナリオに関する2つの式の利用を伴う。演算候補およびFU演算の両方の宛先変数が同一タイプである、すなわち両方とも配線タイプまたは両方ともレジスタタイプである場合には、式4aが用いられ、そうでない場合には式4bが用いられる。両方の変数タイプがレジスタである場合には、出力変数は同一のレジスタを共有してもよい。したがって、レジスタの出力で各変数によって誘発される不必要な電力消費を考慮することができる。図11に示されているように、レジスタがOP1の値をスイッチングする場合には、OP2に接続されるFUは、不必要に切替えられ、逆もまた同様である。
両方の変数タイプが配線である場合には、出力変数は、他の変数の宛先の演算への不必要なスイッチングを誘発する。一連の内部で接続される演算を通るこの不必要に切替えられる信号は、出力レジスタまたはマルチプレクサによって終了する。図12は、そのような接続によって誘発されうる不必要なスイッチングを示している。
他方、1つの変数タイプが配線であり、他方のタイプがレジスタである場合には、配線タイプの変数からの信号の流れは、レジスタタイプの他の変数における不必要な電力消費に誘発されない。これは、レジスタが特定の状態でラッチされないためである。しかし、レジスタタイプの出力変数の信号の流れは、前の変数が切替えられる場合に、配線タイプの出力変数に接続される演算によって、不必要な電力消費を生じる。不必要に切替えられる演算の信号の流れは、レジスタへの入力またはマルチプレクサへの入力で終了する。図13を参照すると、共有されるFUがOP2の出力変数のために切替える場合には、OP1の出力に接続されるFUは不必要に切替えられる。共有されたFUがOP1の出力変数に関して実行される場合には、レジスタはこのクロックでラッチされないため、REG2の切替えを生じることはない。したがって、式4bがこのような場合に用いられる。
各入力変数に生じる不必要な電力消費を計算するための処理(ステップS508)が、図10に示されている。変数iの宛先の演算が最初に評価される。演算iが状態Mで切替えられ、宛先の演算の不必要な切替えを生じる変数が状態Nで切替えられると仮定する。
宛先の演算は、FUに割当てられるかどうかを調べるために、最初に確認される。既に割当てられている場合には、状態Nにおける宛先のFUの利用が確認される。状態Nで用いられる場合には、状態Mおよび状態Nの両方で用いられるこのFUの利用から不必要な電力消費が生じないために、電力管理コストの計算が終了する。FUが両方の状態で用いられる場合には、状態Nにおける宛先のFUマルチプレクサへの入力で確認が行われる。状態Nにおけるその前の演算から続く入力が現在の演算の前の演算である場合には、不必要な電力消費は現在の演算に割当てられる機能ユニットで生じる。したがって、電力消費コストは、機能ユニットの正規化された電力消費を用いて増分される。宛先の機能ユニットの入力マルチプレクサへの入力が前の演算でない場合には、機能ユニットにおける不必要な電力消失の計算は、この一連の内部接続される演算に関して終了する。意図的でない信号の流れは、機能ユニットの入力マルチプレクサへの入力によって中断される。
割振られた機能に関するマルチプレクサの情報は、モジュール割振りが行われるステップS318において更新される。
現在の演算がまだ割当てられていない(次のクラスタ割振りまたは次のモジュールタイプの割振りにおいて割当て可能である)場合には、状態Nにおける演算の共有可能性が確認される(ステップS612)。演算が状態Nにおける演算のいずれかと同一の機能ユニットを共有することができる場合には、電力管理コストの計算は停止する。そうでない場合には、入力マルチプレクサの存在およびその信号がこの接合点では周知ではないために、生じうる電力コストもまた考慮される(S614)。
ステップS508において計算される電力は、他の変数の宛先の演算のいずれか(擬似アクティビティ)と共有可能でない演算の正規化された電力消費である。宛先変数の演算が共有され、状態Mおよび状態Nにおいて用いられる場合には、不必要な電力消費は生じない。
その次に、現在の演算の宛先変数のタイプが確認される(ステップS616)。宛先変数がレジスタタイプである場合には、変数iから続く一連の内部接続された演算に関して、電力管理コストの計算はここで終了する。意図的でない結果が、この一連の演算に関して出力レジスタ(宛先変数に割当てられる)にラッチされず、この点からさらに不必要な電力消失を生じない。
例示的な実施形態の装置および処理は、たとえば図14に概略的に示されるようなコンピュータシステム700で実行されうる。実施形態は、コンピュータシステム700の中で実行中であり、実施例の実施形態の方法を行うようにコンピュータシステム700に命令するコンピュータプログラムなどのソフトウェアとして実現されてもよい。
コンピュータシステム700は、コンピュータモジュール702、キーボード704およびマウス706などの入力モジュールおよびディスプレイ708およびプリンタ710などの複数の出力装置を具備する。
コンピュータモジュール702は、適切なトランシーバ装置714によってコンピュータネットワーク712に接続され、たとえば、インターネットまたはローカルエリアネットワーク(LAN)またはワイドエリアネットワーク(WAN)などの他のネットワークシステムへのアクセスを可能にする。
実施例におけるコンピュータモジュール702は、プロセッサ718、ランダムアクセスメモリ(RAM)720および読取り専用メモリ(ROM)722を具備する。コンピュータモジュール702はまた、たとえば、ディスプレイ708へのI/Oインターフェイス724およびキーボード704へのI/Oインターフェイス726などの多数の入力/出力(I/O)インターフェイスを具備する。キーボード704は、たとえば、入力ファイルまたはKMUX定数を指定するためにチップデザイナによって用いられてもよい。
コンピュータモジュール702の構成要素は一般に、内部接続バス728および関連業界の当業者には周知の態様で通信を行う。
アプリケーションプログラムは一般に、CD−ROMまたはフロッピディスクなどのデータ記憶媒体に符号化され、コンピュータシステム700のユーザに供給され、データ記憶装置730の対応するデータ記憶媒体ドライブを用いて読取られる。アプリケーションプログラムは、プロセッサ718による実行中に読取られ、制御される。プログラムデータの中間記憶は、RAM720を用いて実現されてもよい。
高位合成レジスタ転送レベル設計を作成するための方法および装置は、最小の不必要な電力消費のデータ経路を形成するために電力管理コストの定式化を利用する。
電力管理の定式化に関する演算と機能ユニットとの結合は、最小の不必要な電力を消費する結合に達するために、さまざまな別の結合における不必要な電力消費を評価する。
示された実施形態は、演算と機能ユニットとの結合における不必要な電力の電力管理の定式化を用いて、演算と機能ユニットとの結合を行う機構を提供することによって、従来技術において示された問題を軽減する。機能ユニット割当てに対する演算のエッジのグラフは、ありとあらゆる可能な割振りにおいて生じる不必要な電力を反映するために、電力管理の定式化に基づいて重み付けされる。
モジュール割振りは、2部重み付け割当てを用いて実行され、これらの割当てのマッチング問題を克服するためにハンガリーのアルゴリズムが行われる。ハンガリーのアルゴリズムはO(n)の低い複雑度を有するため、割当てには時間がかからない。
上記の実施形態は、たとえばデコーダまたはエンコーダ用の電子回路に対するデータ経路の割振りに関して説明される。しかし、記載された処理は、当業者には容易に理解されるように、光学/フォトニック回路などの他の回路にデータ経路を割振るために用いることができる。
前述の態様において、データ経路を割振るための方法および装置が開示される。複数の実施形態のみが示されているが、本発明の範囲を逸脱することなく、さまざまな変更および/または修正を行うことができることは、本開示を鑑みれば、当業者には明白であろう。
本発明は、機能ユニットにおいて不必要な電力消費を最小限に抑えるためのデータ経路の割振りのための方法および装置に利用可能である。
ALU2において不必要な電力消費を生じる不用意な機能ユニットの共有を示している。 不必要な電力消費を生じることのない慎重な機能ユニットの共有を示している。 シフタおよびビット抽出器まで延在するその出力を備えた機能ユニットの共有を示している。 シフタおよび乗算器まで延在するその出力を備えた機能ユニットの共有を示している。 本発明の実施形態の演算に関連する概略のフローチャートである。 データ経路割振りを示すフローチャートである。 モジュール割振り処理を示すフローチャートである。 ありとあらゆる演算候補と機能ユニットとの間の電力管理コストの定式化を示すフローチャートである。 演算候補とFUとの間の電力管理コストの定式化を示すフローチャートである。 演算候補と、現在の演算候補の割振り前に割振りにおいてFUに割当てられる演算との間の電力管理コストの定式化を示すフローチャートである。 OP1およびOP2の両方によって共有されるFUの出力レジスタに接続される入力を備えた機能ユニットに生じる不必要な電力消費の図である。 OP1およびOP2の出力に接続される機能ユニットに生じる不必要な電力消費の図である。 OP1のみの出力に接続される機能ユニットに生じる不必要な電力消費の図である。 例示的な実施形態に関連する装置および処理を実行するためのコンピュータシステムの図である。
符号の説明
700 コンピュータシステム
702 コンピュータモジュール
704 キーボード
706 マウス
708 ディスプレイ
710プリンタ
712 コンピュータネットワーク
714 トランシーバ装置
718 プロセッサ
720 ランダムアクセスメモリ(RAM)
722 読取り専用メモリ(ROM)
724 入出力(I/O)インターフェイス
726 入出力(I/O)インターフェイス
728 内部接続バス
730 データ記憶装置
FU 機能ユニット
OP 演算
MUX マルチプレクサ

Claims (39)

  1. データフローグラフからリソースの割振りの生成を含むデータ経路割振り方法。
  2. 前記生成が、機能ユニットの共有における良好な電力管理に基づいて、リソースを割振るステップを含む、請求項1に記載の方法。
  3. 前記生成が、前記機能ユニットの共有において回避することができる不必要な電力損失を削減するために、リソースを割振るステップを含む、請求項2に記載の方法。
  4. 前記生成が、前記機能ユニットの共有における前記不必要な電力損失を削減するために、リソースを割振るステップを含む、請求項2に記載の方法。
  5. リソースの割振りを生成するステップが、複数の可能な割振りに関連するコストを決定するステップと、前記関連コストに基づいて割振りを選択するステップと、を含む、請求項1から4のいずれか1項に記載の方法。
  6. 前記関連コストに基づく割振りを選択するステップが、最低の関連コストで前記割振りを選択するステップを含む、請求項5に記載の方法。
  7. 前記関連電力コストが、可能な割振りにおいて生成されるようなマルチプレクサの電力消失コストと、可能な演算に対する機能ユニットの割当てで生じる電力管理コストと、を含む、請求項5に記載の方法。
  8. 前記マルチプレクサの前記電力消失コストが、前に特徴付けられた平均電力および得られた面積を用いて定数因子KMUXをMUXの面積の倍率に掛けることによって得られる、請求項7に記載の方法。
  9. 変数に関してスイッチングアクティビティを自動的に決定するステップをさらに含む、請求項5または6に記載の方法。
  10. スイッチングアクティビティに関するデフォルト値が、周知でない場合に決定される、請求項5または6に記載の方法。
  11. 前の変数が切替わるときまで他の変数の信号の流れが進む一連の機能ユニットの電力測定基準の和への変数の切替え速度を乗算することによって、2変数のそれぞれに関して、2変数の間の共通の出力ポートの共有から相対的な電力消失コストを計算し、共有処理に導入される擬似的な電力消失を表すステップをさらに含む、請求項5から10のいずれか1項に記載の方法。
  12. 前記相対的な電力消失コストが、両方ともレジスタタイプであるか、または両方とも配線タイプである入力変数に関する以下の定式化に基づいて計算され、
    <数1>
    Figure 2007034888
    であり、式中、
    Var 1は、所定の宛先の演算に対する第1の入力変数であり、
    Var 2は、所定の宛先の演算に対する第2の入力変数であり、
    SAは、すべての変数に対する変数のスイッチングアクティビティであり、
    nは、宛先の演算の数であり、
    Powerは、出力変数から前の変数と共通の機能ユニットの出力ポートを共有する別の変数の所定の宛先の演算までの不必要な信号の流れを計算することによって得られる電力消費コストである、請求項11に記載の方法。
  13. 前記コストの計算が、両方のレジスタタイプのみの出力を有する演算に関して行われる、請求項12に記載の方法。
  14. 前記コストの計算が、両方の配線タイプの出力を有する演算に関して行われる、請求項12に記載の方法。
  15. 前記相対的な電力消失コストが、1つの入力変数がレジスタタイプであり、他方の入力変数が配線タイプである演算の間の機能ユニットの共有に関して以下の定式化に基づいて計算され、
    <数2>
    Figure 2007034888
    であり、式中、
    Varは、変数が配線タイプである場合の所定の宛先の演算に対する入力変数であり、
    SAは、すべての変数に対する変数のスイッチングアクティビティであり、
    nは、宛先の演算の数であり、
    Powerは、出力変数から前の変数と共通の機能ユニットの出力ポートを共有する別の変数の所定の宛先の演算までの不必要な信号の流れを計算することによって得られる電力消費コストである、請求項11に記載の方法。
  16. 前記コストの計算が、配線タイプの入力変数を有する演算およびレジスタタイプのみの他の演算の機能ユニットの共有に関して行われる、請求項15に記載の方法。
  17. 意図的でない信号の流れが停止されるまで、不必要な電力の流れの前記コストが計算される、請求項12または15に記載の方法。
  18. 意図的でない信号の流れが他の変数の所期の信号の流れの実行時にラッチされない出力レジスタへの入力によって停止されるまで、不必要な電力の流れの前記コストが計算される、請求項17に記載の方法。
  19. 意図的でない信号の流れが他の出力変数からの所期の信号の流れの実行時にマルチプレクサへの入力によって停止されるまで、不必要な電力の流れの前記コストが計算される、請求項17に記載の方法。
  20. リソースの割振りを生成するステップが、データ経路中の演算をモジュールに割振るステップを含む、請求項1から19のいずれか1項に記載の方法。
  21. 同一のモジュールを用いることができる演算のグループを生成するステップをさらに含む、請求項20に記載の方法。
  22. モジュールに演算を割振る場合に、重なるライフタイムを有する演算のクラスタを生成するステップをさらに含む、請求項20または21に記載の方法。
  23. 前記演算が、同一のモジュールおよび重なるライフタイムを用いる機能によってクラスタ化される、請求項21または22に記載の方法。
  24. 前記電力消失コストが、前記モジュールの可能な割振りで生成される前記マルチプレクサで消失される電力を含む、請求項5または6に記載の方法。
  25. 面積コストが、特定の割振りにおける明示の面積コストを含む、請求項24に記載の方法。
  26. 前記面積コストが、特定の割振りにおける暗黙の面積コストをさらに含む、請求項24に記載の方法。
  27. 前記マルチプレクサの電力消失コストが、マルチプレクサの特徴付けられた面積と電力との間の関係によって決定される定数因子によって、請求項24または請求項25に記載されるマルチプレクサの面積コストの倍率を掛けることによって計算される、請求項24に記載の方法。
  28. リソースの割振りを生成するステップが、電力および面積の利用に関する重み付けを備えた2部重み付け割当て割振りを用いるステップをさらに含む、請求項1から27のいずれか1項に記載の方法。
  29. 異なる状態で前記機能ユニットに対する前記マルチプレクサの入力が、前記機能ユニットに対する演算のすべての割振りの後で更新される、請求項20に記載の方法。
  30. リソースの割振りを生成するステップが、ハンガリーのアルゴリズムを用いて、割振りのマッチング問題を克服するステップをさらに含む、請求項1から29のいずれか1項に記載の方法。
  31. 所与のデータフローグラフ(DFG)に基づくデータ経路割振りの方法である、請求項1から30のいずれか1項に記載の方法。
  32. 回路のためのデータ経路割振りの方法である、請求項1から31のいずれか1項に記載の方法。
  33. 電子回路のためのデータ経路割振りの方法である、請求項1から32のいずれか1項に記載の方法。
  34. 添付図面を参照して、上記に実質的に記載され、添付図面に示されているようなデータ経路割振りの方法。
  35. 機能ユニットの共有における前記電力管理コストおよび生じたマルチプレクサの電力消失を考慮すると同時に、リソースを生成するための手段を具備するデータ経路割振り装置。
  36. 請求項1から35のいずれか1項に記載の方法によって動作可能な装置。
  37. 請求項1から35のいずれか1項に記載の方法によって動作可能な、請求項36に記載の装置。
  38. 添付図面を参照して、上記に実質的に記載され、添付図面に示されているように、動作するように構成および配置されたデータ経路割振り装置。
  39. データ経路割振りのために、コンピュータ読取り可能な媒体上に記録され、請求項1から38のいずれか1項に記載の方法によって動作可能なコンピュータプログラムを有するコンピュータプログラム製品。
JP2005220281A 2005-07-29 2005-07-29 機能ユニットにおいて不必要な電力消費を最小限に抑えるためのデータ経路の割振りのための方法および装置 Pending JP2007034888A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2005220281A JP2007034888A (ja) 2005-07-29 2005-07-29 機能ユニットにおいて不必要な電力消費を最小限に抑えるためのデータ経路の割振りのための方法および装置
US11/460,422 US20070028198A1 (en) 2005-07-29 2006-07-27 Method and apparatus for allocating data paths to minimize unnecessary power consumption in functional units

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005220281A JP2007034888A (ja) 2005-07-29 2005-07-29 機能ユニットにおいて不必要な電力消費を最小限に抑えるためのデータ経路の割振りのための方法および装置

Publications (1)

Publication Number Publication Date
JP2007034888A true JP2007034888A (ja) 2007-02-08

Family

ID=37695809

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005220281A Pending JP2007034888A (ja) 2005-07-29 2005-07-29 機能ユニットにおいて不必要な電力消費を最小限に抑えるためのデータ経路の割振りのための方法および装置

Country Status (2)

Country Link
US (1) US20070028198A1 (ja)
JP (1) JP2007034888A (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2587727B8 (en) * 2010-06-22 2019-08-21 LG Electronics Inc. Network system
EP2587445B1 (en) * 2010-06-22 2015-04-15 LG Electronics Inc. Network system
WO2011162555A2 (ko) * 2010-06-26 2011-12-29 엘지전자 주식회사 네트워크 시스템을 위한 컴포넌트
US20130197703A1 (en) * 2010-06-26 2013-08-01 Junho AHN Component for network system
US9819583B2 (en) * 2015-01-29 2017-11-14 Dell Products Lp Systems and methods for energy cost aware routing
CN117744547A (zh) * 2024-02-18 2024-03-22 北京汤谷软件技术有限公司 电路器件资源的预估方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
US20070028198A1 (en) 2007-02-01

Similar Documents

Publication Publication Date Title
JP6059413B2 (ja) 再構成可能命令セル・アレイ
Moreano et al. Efficient datapath merging for partially reconfigurable architectures
Mei et al. ADRES: An architecture with tightly coupled VLIW processor and coarse-grained reconfigurable matrix
US6195786B1 (en) Constrained register sharing technique for low power VLSI design
Bakshi et al. Partitioning and pipelining for performance-constrained hardware/software systems
Mehra et al. Exploiting regularity for low-power design
Rabaey et al. Estimating implementation bounds for real time DSP application specific circuits
JP2001142922A (ja) 半導体集積回路装置の設計方法
JP2001202397A (ja) システム・オン・チップのアーキテクチャ設計支援システム及びアーキテクチャ生成方法
JP2007034887A (ja) ハイレベル合成コンパイラ用のシフトレジスタファイルを自動生成するための方法および装置
JP2007034888A (ja) 機能ユニットにおいて不必要な電力消費を最小限に抑えるためのデータ経路の割振りのための方法および装置
US20130132916A1 (en) Behavioral synthesis method, behavioral synthesis program and behavioral synthesis apparatus
Fell et al. Force-directed scheduling for data flow graph mapping on coarse-grained reconfigurable architectures
Das et al. A framework for post-silicon realization of arbitrary instruction extensions on reconfigurable data-paths
US7624252B2 (en) Processing device, method of determining internal configuration of processing device, and processing system
Saleem et al. A Survey on Dynamic Application Mapping Approaches for Real-Time Network-on-Chip-Based Platforms
Corporaal et al. Code generation for transport triggered architectures
JPWO2011096016A1 (ja) コンパイラ装置
US7689940B2 (en) Method and apparatus for allocating data paths
Papa et al. Automatic large-scale integrated circuit synthesis using allocation-based scheduling algorithm
US8479179B2 (en) Compiling method, compiling apparatus and computer system for a loop in a program
JPH1031693A (ja) 専用アプリケーション・サブシステムの合成方法
Bergamaschi et al. Scheduling under resource constraints and module assignment
Lee et al. A scheduling algorithm for multiport memory minimization in datapath synthesis
Kim et al. Low power pipelining of linear systems: A common operand centric approach

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20061208