• 検索結果がありません。

GDR アーキテクチャを対象とした高位合成フロー

GDRアーキテクチャではレジスタ・レジスタ間データ転送を用いる.レジスタ間データ 転送を扱うには,スケジューリング段階で各演算器間の配線遅延情報が必要となる.またレ ジスタの種類の決定,制御回路構成の決定のために配置情報が必要である.以上のことを満 足するには配置情報,配線遅延情報をフィードバックする合成フローが最適である.そのた め図3.3に示す合成フローが用いられる.

この合成フローは2つの段階から構成される.1つ目は初期フェーズである.ここでは配 線・配置を考慮せずにアプリケーション実行時間が最速になるようにスケジューリングとバ インディングを行い,そのスケジューリング,バインディング結果を満足するようにフロア プランを行う2.この配置を初期解とする.2つ目は改良フェーズである.このフェーズでは 初期フェーズで得られた解を繰り返し改良していくことで最適解を求める.

初期フェーズ(Initial phase)

初期フェーズではアプリケーションの実行時間が高速なるようなフロアプラン解を生成 する.まず初めに入力DFGをリストスケジューリングによりスケジューリングを行う.次 に共有レジスタ群が演算器の数あると仮定しモジュール配置を行う.モジュール配置はSA

(Simulated Annealing)により最適化する.目的関数はクロック周期制約違反の最小化と面 積の最初化である.これらの工程により,クロック周期制約違反がある可能性はあるが,ア プリケーションの実行時間が高速となるフロアプラン解を生成する.

改良フェーズ(Improvement phase)

改良フェーズではスケジューリング,レジスタ/制御回路構成決定のために配置・配線情報 とレジスタ/制御回路情報をフィードバックし,繰り返し高位合成アルゴリズムとモジュール 配置を行う.この解と配置結果を利用し,まずレジスタ/制御回路構成が配置結果を満たす かチェックを行い,満たさない場合はローカルレジスタ/ローカルコントローラを付加する.

その後スケジューリング/FUバインディングを行い,その結果からレジスタ/制御回路再構 成を行う.改良フェーズは仮想フロアプラン生成,スケジューリング/FUバインディング,

レジスタ/コントローラ構成決定,レジスタバインディング,コントローラ合成,モジュール 配置から構成される.

2スケジューリングは配線遅延を考慮していないためフロアプランがスケジューリング結果を満たすような 配置をえることは難しいがそれに近い解を得る.

Initial scheduling Initial floorplan

Virtual floorplan generation Scheduling/binding Register/controller

arrangement Register binding, Controller synthesis and

Floorplanning Solution converged?

Placement information &

register/controller configuration

Improvent phase Initial phase

Set of FUs Constraint CDFG

Functional

unit Functional unit

Functional unit

Functional unit

Controller

Functional unit

Functional unit

Controller

Floorplan at previous iteration Virtual floorplan

Functional

unit Functional unit

Functional unit

Functional unit

Controller

Functional unit

Functional unit

Controller

Con-troller

図 3.4: 仮想フロアプラン生成.

仮想フロアプラン生成 仮想フロアプラン生成では,1つ前のイタレーション時のレジスタ/

制御回路構成が1つ前のイタレーション時の配置結果で実現可能かチェックを行う.このチェッ クにより違反が発見されたならば,その演算器に仮想的にローカルレジスタ,ローカルコン トローラを付加する(図3.4).この状態で各モジュール間のデータ転送制約を計算し,次工 程のスケジューリング/FUバインディング工程に進む.

スケジューリング/FUバインディング 仮想フロアプラン生成で得られたデータ転送制約 をもとにスケジューリング/FUバインディングを行う.

レジスタ/コントローラ構成決定 スケジューリング/FUバインディング結果を基にレジス タ/コントローラ構成を決定する.スケジューリング/FUバインディングを満たすように,

ローカルレジスタ数,ローカルコントローラ数が最小化になるようにする.この工程では最 初に各演算器が使用する共有レジスタ群を割り当てる.つぎにクロック周期制約を違反する 演算器にローカルレジスタ・ローカルコントローラを付加する.最後に隣接して配置された 共有レジスタ群の併合をローカルレジスタが増加しない場合に行う.

レジスタバインディング レジスタバインディングでは,レジスタ分散・共有併用にもちい るレジスタバインディングを複数共有レジスタに拡張した手法を適用する.

コントローラ合成 コントローラの回路記述をSynopsys社のDesign Compilerに入力し,論 理合成し,遅延と面積を得る.

モジュール配置 モジュール配置の工程では,データ構造としてSequence-pair[13]を用い,

モジュール配置をSA(Simulated Annealing)によって最適化する.

SAのコスト関数は,Aをデッドスペースを含む回路の総面積,Wを各モジュールを結ぶ 総配線長,Vを各演算器間のデータ転送においてクロック周期制約条件を違反したディレイ の総合計とした時

cost= ABB

Atotal +α V

Tclock +β W

WM AX (3.5)

と計算する.ただし,α,βは,任意のパラメータである.ABBは最小矩形の面積,Atotalは モジュール面積の総計,Tclockはクロック周期,V はクロック周期制約違反の総合計,W は 配線長,WM AX は配線長の最大値であり(最小矩形の縦+横)×配線数である.

モジュール配置工程では,i回目のイタレーションにおける最終的な配置結果を,i+ 1回 目のイタレーションのモジュール配置工程におけるSAの初期配置として用いる.イタレー ションごとにSAの初期温度を下げていく.合成フローのi回目のイタレーションのSAの初 期温度をTiとしたときi+ 1回目のイタレーションの初期温度を

Ti+1 =Ti/K (3.6)

とする.ただしK>1とする.

解が収束もしくは規定回数まで上記の工程を繰り返し最良の解を出力する.

関連したドキュメント