九州大学大学院システム情報科学研究院情報工学部門 松永 裕介

Slides:



Advertisements
Similar presentations
到着時刻と燃料消費量を同時に最適化する船速・航路計画
Advertisements

区間グラフにおける区間表現からMPQ-treeを効率よく構成するアルゴリズム
コンピュータビジョン特論B - Graph Cuts - 永橋知行.
点対応の外れ値除去の最適化によるカメラの動的校正手法の精度向上
ネットワーク理論講義補助資料 Text. 組合せ最適化とアルゴリズム 4.5 節 主・双対法 pp
データ構造と アルゴリズム 第十二回 知能情報学部 知能情報学科 新田直也.
ラベル付き区間グラフを列挙するBDDとその応用
近似アルゴリズム 第10章 終了時刻最小化スケジューリング
第2回 真理値表,基本ゲート, 組合せ回路の設計
スペクトル法による数値計算の原理 -一次元線形・非線形移流問題の場合-
4. 順序回路 五島 正裕.
神奈川大学大学院工学研究科 電気電子情報工学専攻
土木計画学 第11回(12月21日) 土木計画と説明責任 計画における代替案の作成1 担当:榊原 弘之.
データ構造と アルゴリズム 第二回 知能情報学部 新田直也.
9.NP完全問題とNP困難問題.
データ構造と アルゴリズム 知能情報学部 新田直也.
第7章 データベース管理システム 7.1 データベース管理システムの概要 7.2 データベースの格納方式 7.3 問合せ処理.
第4回 カルノー図による組合せ回路の簡単化 瀬戸 目標 ・AND-OR二段回路の実現コスト(面積、遅延)が出せる
デジタル回路(続き) コンピュータ(ハードウェアを中心に)
最短路問題のための LMS(Levelwise Mesh Sparsification)
高山建志 五十嵐健夫 テクスチャ合成の新たな応用と展開 k 情報処理 vol.53 No.6 June 2012 pp
8. 順序回路の簡単化,機能的な順序回路 五島 正裕.
二分探索木によるサーチ.
7-3.高度な木 (平衡木) AVL木 平衡2分木。回転操作に基づくバランス回復機構により平衡を保つ。 B木
4. 組み合わせ回路の構成法 五島 正裕.
第6章 連立方程式モデル ー 計量経済学 ー.
情報学研究科 通信情報システム専攻 小野寺研究室 M1 奥村 佳弘
メカトロニクス 12/8 OPアンプ回路 メカトロニクス 12/8.
ディジタル回路 3. 組み合わせ回路 五島 正裕 2018/11/28.
第25章 単一始点最短路 3節 Bellman-Fordのアルゴリズム
決定木とランダムフォレスト 和田 俊和.
奈良女子大集中講義 バイオインフォマティクス (9) 相互作用推定
ネットワーク理論 Text. Part 3 pp 最短路問題 pp 最大流問題 pp.85-94
定兼邦彦 今井浩 東京大学理学系研究科 情報科学専攻
動的依存グラフの3-gramを用いた 実行トレースの比較手法
モデルの逆解析 明治大学 理工学部 応用化学科 データ化学工学研究室 金子 弘昌.
第14章 モデルの結合 修士2年 山川佳洋.
レジスタの割付け 中田育男著 コンパイラの構成と最適化 朝倉書店, 1999年 第12章5節.
ディジタル回路 5. ロジックの構成 五島 正裕.
25. Randomized Algorithms
計算量理論輪講 chap5-3 M1 高井唯史.
First Course in Combinatorial Optimization
決定木 Decision Tree DT 明治大学 理工学部 応用化学科 データ化学工学研究室 金子 弘昌.
3. 論理ゲート の 実現 五島 正裕.
連続領域におけるファジィ制約充足問題の 反復改善アルゴリズムによる解法 Solving by heuristic repair Algorithm of the Fuzzy Constraint Satisfaction Problems with Continuous Domains 北海道大学.
ファジィ制約充足問題への 連続領域の導入 Introducing continuous domains to
移動図書館問題 移動施設のサービス停留点を最適配置する問題
進化ゲームと微分方程式 第15章 n種の群集の安定性
VMが利用可能なCPU数の変化に対応した 並列アプリケーション実行の最適化
ベイジアンネットワーク概説 Loopy Belief Propagation 茨城大学工学部 佐々木稔
生物情報ソフトウェア特論 (2)たたみ込みとハッシュに 基づくマッチング
ナップサック問題 クマさん人形をめぐる熱いドラマの結末.
わかりやすいパターン認識 第7章:部分空間法  7.1 部分空間法の基本  7.2 CLAFIC法                  6月13日(金)                  大城 亜里沙.
  第3章 論理回路  コンピュータでは,データを2進数の0と1で表現している.この2つの値,すなわち,2値で扱われるデータを論理データという.論理データの計算・判断・記憶は論理回路により実現される.  コンピュータのハードウェアは,基本的に論理回路で作られている。              論理積回路.
B03 量子論理回路の 最適化に関する研究 西野哲朗,垂井淳,太田和夫,國廣昇 電気通信大学 情報通信工学科.
第4回 メモリ管理 主記憶(メインメモリ)の管理 固定区画方式と可変区画方式 空き領域の管理 スワッピング.
第9章 学習アルゴリズムとベイズ決定側 〔3〕最小2乗法とベイズ決定側 発表:2003年7月4日 時田 陽一
パターン認識 ークラスタリングとEMアルゴリズムー 担当:和田 俊和 部屋 A513
保守請負時を対象とした 労力見積のためのメトリクスの提案
人工知能特論II 第8回 二宮 崇.
わかりやすいパターン認識 第3章 誤差評価に基づく学習 3.3 誤差逆伝播法.
分枝カット法に基づいた線形符号の復号法に関する一考察
4.プッシュダウンオートマトンと 文脈自由文法の等価性
コストのついたグラフの探索 分枝限定法 A*アルゴリズム.
コンパイラ 2012年10月11日
長岡技術科学大学 大学院 工学研究科 機械創造工学専攻 髙山 誠 指導教員 小林 泰秀 准教授
MPIを用いた 並列処理 情報論理工学研究室 06‐1‐037‐0246 杉所 拓也.
各種荷重を受ける 中空押出形成材の構造最適化
グラフの帯域幅連続多重彩色 を求めるアルゴリズム (Bandwidth Consective Multicolorings of Graphs) 西関研究室 西川和秀.
アルゴリズム ~すべてのプログラムの基礎~.
Presentation transcript:

九州大学大学院システム情報科学研究院情報工学部門 松永 裕介 2018/11/9 テクノロジマッピング 九州大学大学院システム情報科学研究院情報工学部門 松永 裕介 2018/11/9

2018/11/9 論理合成の流れ 2018/11/9

セルベース設計手法 あらかじめ設計されたセルを利用して回路を作る(組み立てる)。 トランジスタレベルの設計は必要ない。 2018/11/9 セルベース設計手法 あらかじめ設計されたセルを利用して回路を作る(組み立てる)。 トランジスタレベルの設計は必要ない。 自動合成向き⇒テクノロジマッピング 2018/11/9

「テクノロジ」とは 使用可能なセルの種類および特性 遅延時間の計算モデル 最大駆動能力のような設計規則 … 2018/11/9 「テクノロジ」とは 使用可能なセルの種類および特性 遅延時間の計算モデル 最大駆動能力のような設計規則 … 半導体ベンダ、用途などに応じて千差万別 2018/11/9

テクノロジ非依存/依存処理 テクノロジごとに論理合成システム全体を作り直していたら、プロセス技術の進歩に追いつかない 2018/11/9 テクノロジ非依存/依存処理 テクノロジごとに論理合成システム全体を作り直していたら、プロセス技術の進歩に追いつかない テクノロジに依存しない部分(多段論理合成、最適化)とテクノロジに依存する部分(テクノロジマッピング)に分離する。 テクノロジマッピングにおいても基本アルゴリズムは共通化して、さまざまなセルライブラリ、設計規則に対応できるようにする。←コンパイラ技術とのアナロジー 2018/11/9

テクノロジマッピングの歴史 ルールベースに基づく手法 Tree covering タイミング最適化 LSS(IBM, ’84) 2018/11/9 テクノロジマッピングの歴史 ルールベースに基づく手法 LSS(IBM, ’84) Socrates(GE, ’86) ⇒ 現Synopsys LORES/EX(三菱,‘88) Tree covering DAGON(AT&T Bell Labs., ’87) タイミング最適化 (UCB,’90, ’91) 2018/11/9

ルールベースを用いた手法 テクノロジ毎にルールを用意することでシステムそのものは汎用化できる 2018/11/9 ルールベースを用いた手法 テクノロジ毎にルールを用意することでシステムそのものは汎用化できる ルールを作り、その一貫性を保ち、かつチューニングすることは容易ではない 局所変換の繰り返しでは大局的な最適化は行えない ⇒今ではアルゴリズム的に処理することが難しい特定の回路以外は用いられていない 2018/11/9

Tree covering 歴史的にみて最初のテクノロジマッピングのアルゴリズム 2018/11/9 Tree covering 歴史的にみて最初のテクノロジマッピングのアルゴリズム 基本アイデアはコンパイラのコード生成アルゴリズム(Bell Labs.のAho) ブーリアンネットワークを細かな単位ノードに分解して、セルによるカバーを求める 面積、遅延時間、消費電力などを目的関数、制約条件にして(ある尺度での)最適解を求めることができる 今日の実用的なシステムで広く用いられる 2018/11/9

タイミング最適化問題 Tree coveringアルゴリズムの拡張 ファンアウト最適化問題 上記2つを統合した大局的な処理 2018/11/9 タイミング最適化問題 Tree coveringアルゴリズムの拡張 ファンアウト最適化問題 上記2つを統合した大局的な処理 2018/11/9

2018/11/9 サブジェクトグラフ 2018/11/9

多入力ノードの分解 任意の論理関数はAND/OR/NOTで表現可能 任意のAND/ORは2入力NANDの木に分解可能 2018/11/9 多入力ノードの分解 任意の論理関数はAND/OR/NOTで表現可能 任意のAND/ORは2入力NANDの木に分解可能 しかし、解は唯一ではない 2018/11/9

セルの情報 機能を表す論理式⇒2入力NANDに分解 面積 入力端子から出力端子までの遅延時間の計算モデル 入力端子の負荷容量 2018/11/9 セルの情報 機能を表す論理式⇒2入力NANDに分解 面積 配線領域の面積の考慮 入力端子から出力端子までの遅延時間の計算モデル 配線遅延の考慮 入力端子の負荷容量 消費電力の計算モデル 2018/11/9

2018/11/9 パタングラフ 2018/11/9

2018/11/9 パタングラフ 2018/11/9

2018/11/9 ナイーブなマッピング結果 2018/11/9

2018/11/9 複合セルを用いたマッピング結果(1) 2018/11/9

2018/11/9 複合セルを用いたマッピング結果(2) 2018/11/9

被覆問題としての定式化(1) パタングラフと一致するサブジェクトグラフの部分グラフをマッチと呼ぶ 2018/11/9 被覆問題としての定式化(1) パタングラフと一致するサブジェクトグラフの部分グラフをマッチと呼ぶ テクノロジマッピングとは、サブジェクトグラフ上の全ての節点を被覆するマッチの集合を求めること ただし、単純な被覆ではない⇒feasibility constraint マッチの入力は他のマッチの出力でなければならない 2018/11/9

2018/11/9 被覆問題としての定式化(2) 2018/11/9

2018/11/9 被覆問題としての定式化(3) 2018/11/9

2018/11/9 被覆問題としての定式化(4) 2018/11/9

2018/11/9 被覆問題としての定式化(5) 2018/11/9

2018/11/9 被覆問題としての定式化(6) 2018/11/9

2018/11/9 被覆問題としての定式化(7) このように条件式に否定のリテラルが含まれる被覆問題を binate covering 問題と呼ぶ←条件式が binate function binate covering問題はNP問題であることが知られており、実用的には変数の数が数十程度までしか解けない 2018/11/9

テクノロジマッピングの近似算法 binate covering問題を厳密に解くことは難しい←テクノロジマッピングの場合、変数の数は数千~数万 2018/11/9 テクノロジマッピングの近似算法 binate covering問題を厳密に解くことは難しい←テクノロジマッピングの場合、変数の数は数千~数万 ではbinate covering問題を解く近似アルゴリズムは?⇒あまり研究されていない 問題自体をより簡単な問題に近似してしまう⇒サブジェクトグラフをtree(木)の形に制限する 2018/11/9

木状回路への分割 複数のファンアウトを持つ部分で回路を分割 2018/11/9 木状回路への分割 複数のファンアウトを持つ部分で回路を分割 テクノロジマッピングの問題はDAG coveringからtree coveringとなる tree coveringには効率の良い厳密解法が存在する 2018/11/9

2018/11/9 分割の弊害 ファンアウトをまたいだセルの割り当てが行えない 分割の境界部分での位相合わせが行えない 2018/11/9

パタンマッチングアルゴリズム 基本的にはサブジェクトグラフ上の節点をたどって、パタングラフの節点と一致するか確かめる 2018/11/9 パタンマッチングアルゴリズム 基本的にはサブジェクトグラフ上の節点をたどって、パタングラフの節点と一致するか確かめる パタングラフの節点をたどる順を決めるため edge-list という枝のリストを用いる NANDの入力は2つあるのでサブジェクトグラフとパタングラフのマッチの仕方が2通り考えられる。そのため、各節点につき最悪2通りずつのマッチを試す必要がある 実際には対称な入力が多いので試すべきマッチの数はそれほど多くない 2018/11/9

2018/11/9 パタンマッチングの例 2018/11/9

2018/11/9 tree coveringアルゴリズム 2018/11/9

2018/11/9 tree coveringの例 2018/11/9

inverter-chainヒューリスティック 2018/11/9 inverter-chainヒューリスティック 2018/11/9

遅延最小解を求めるtree covering(1) 2018/11/9 遅延最小解を求めるtree covering(1) 目的関数を遅延時間とする 遅延時間がセルの種類のみに依存するモデルなら最小面積の場合と同様にtree coveringで最適解を求めることができる 遅延時間が駆動先の負荷容量に依存するモデルの場合、単純なtree coveringでは解は求められない 2018/11/9

遅延モデル 固定遅延 負荷依存 セルの種類のみに依存。昔はトランジスタの寄生容量が比較的大きかったので駆動先の負荷容量は無視できた 2018/11/9 遅延モデル 固定遅延 セルの種類のみに依存。昔はトランジスタの寄生容量が比較的大きかったので駆動先の負荷容量は無視できた 負荷依存 駆動先の負荷容量の線形関数/非線形関数 T = T0 + K * l 最も一般的(少なくとも’90年代は) 2018/11/9

遅延最小解を求める tree covering(2) 2018/11/9 遅延最小解を求める tree covering(2) とにかく駆動先の負荷が決まらないと遅延時間は計算できない 仮に決めておいてそのときの最適解を持つ そのような仮の値をN種類、試しておき、後で実際の値に近いものを選ぶ tree coveringの処理を1つの節点についてN回繰り返すようなもの Nを大きくすれば解の精度は良くなるが、計算時間と使用メモリ量も比例して大きくなる 2018/11/9

遅延最小解を求めるtree covering(3) 2018/11/9 遅延最小解を求めるtree covering(3) 遅延最小解は駆動先の負荷の関数 しかも負荷の区間の関数なので解が切り替わる点のみを覚えておけばよい 負荷の値の区間[si, ei]とそのときの最適解miの組をリストの形で保持しておく 後で実際の負荷が確定したときに該当する区間を探してその区間の最適解miを返す 処理は複雑だが厳密解を求めることができる。区間の数Nをあらかじめ与えなくて良い 2018/11/9

2018/11/9 遅延制約下での面積最小解(1) 出力までのマッピングが確定しないと部分解が制約を満たしているかどうかが分からない←部分的な制約(required time)が与えられないから 2018/11/9

遅延制約下での面積最小解(2) required time(以降RT)を仮の値でN個、計算しておいてあとでもっとも実際の値に近いものを選ぶ 2018/11/9 遅延制約下での面積最小解(2) required time(以降RT)を仮の値でN個、計算しておいてあとでもっとも実際の値に近いものを選ぶ RTの下限は遅延最小解の遅延時間←これより速い遅延時間は実現できない RTの上限は面積最小解の遅延時間←これより遅い遅延時間は役に立たない 2018/11/9

2018/11/9 遅延制約下での面積最小解(3) (面積, 遅延) = (a1, d1) の解と (a2, d2) の解に対して、次式が成り立つ時(a2, d2) の解は最適解として用いられない。 a1 <= a2, d1 <= d2 最適解の可能性がある解のみをリストで保持 遅延 面積 2018/11/9 39

低消費電力向けのマッピング 直感的には面積を最小化すればよいように思えるが、、、、 ゲートで消費される電力とは 2018/11/9 低消費電力向けのマッピング 直感的には面積を最小化すればよいように思えるが、、、、 ゲートで消費される電力とは P = CV2f C:このゲートの駆動する容量 V:電源電圧 f:スイッチング周波数 Cは概ね面積に比例するが、fは回路の構造できまる 2018/11/9

低消費電力向けのマッピング例(1) 2NANDの出力の1の出現確率は Po = 1 – (Pa × Pb) 2018/11/9 低消費電力向けのマッピング例(1) 2NANDの出力の1の出現確率は Po = 1 – (Pa × Pb) 出現確率Pより遷移確率Qは Q = P × (1 – P) 2018/11/9

低消費電力向けのマッピング例(2) 使用するセルが同じでも信号遷移確率が異なれば消費電力が異なる。 2018/11/9 低消費電力向けのマッピング例(2) 使用するセルが同じでも信号遷移確率が異なれば消費電力が異なる。 大まかに言って遷移確率の高い信号と0とのANDをとれば(1とのORでも可)、その遷移をマスクすることができるので消費電力を下げることができる。 2018/11/9

FPGA用EDA技術 やはり少量生産にとってマスクコストの高騰は致命的 仕様変更やバグ修正のためのリメイクなどもってのほか 2018/11/9 FPGA用EDA技術 やはり少量生産にとってマスクコストの高騰は致命的 仕様変更やバグ修正のためのリメイクなどもってのほか ⇒チップ製造後にプログラムできるFPGAの優位性 微細化の恩恵で大容量化・高速化(低消費電力化は未だ) FPGA用のEDA技術はますます重要 2018/11/9

2018/11/9 LUT(look-up table) 2018/11/9

2018/11/9 クラスタ 入力が共通ないくつかのLUTをひとまとめにする。 2018/11/9

Island Style Architecture 2018/11/9 Island Style Architecture クラスタの外側に配線・接続用のスイッチが並ぶ。 2018/11/9

FPGAの設計フロー 論理設計(ASICと同様、、、でいいのか?) LUTへのマッピング クラスタへのパッキング 配置・配線 2018/11/9 FPGAの設計フロー 論理設計(ASICと同様、、、でいいのか?) LUTへのマッピング クラスタへのパッキング 配置・配線 遅延時間・消費電力ともにグローバル配線(スイッチ)の削減が鍵→EDA技術&FAPGAアーキテクチャ 2018/11/9

遅延最小を目的とした LUT型FPGAのテクノロジ・マッピング 2018/11/9 遅延最小を目的とした LUT型FPGAのテクノロジ・マッピング 入力:Kバウンデッド・ネットワーク ノードがK入力以下の論理関数を持つような ループを持たない有向グラフ 出力:LUTからなる等価なネットワーク LUTからなるネットワークの遅延見積もり: LUTの段数 LUT内部の遅延: ほぼ均一 LUT間の配線遅延: 一定の固有遅延を仮定 LUTの個数も少ない方が望ましい 配線の自由度を高めるため LUTの段数最小で個数が少ないネットワークを 生成するテクノロジ・マッピング 2018/11/9

Kバウンデッド・ネットワーク ループを持たない有向グラフ ノード 入力数がK以下 K入力以下の論理関数を持つ 辺 2018/11/9 Kバウンデッド・ネットワーク ループを持たない有向グラフ ノード 入力数がK以下 K入力以下の論理関数を持つ 辺 ノード i の出力が ノード j の入力であるとき 有向辺 (i, j) が存在 プライマリインプット 入力辺を持たないノード プライマリアウトプット 出力辺を持たないノード 2018/11/9

Kフィージブル・カットとマッチ Kフィージブル・カット t から入力側へ辿って 得られるネットワークに おけるノードの分割 2018/11/9 Kフィージブル・カットとマッチ K=3 Kフィージブル・カット  t から入力側へ辿って 得られるネットワークに おけるノードの分割 カットの境界における 入力側のノード数がK以下 マッチ Kフィージブル・カットの の誘導グラフ K入力LUTで被覆できる k-feasible cut マッチ LUTに対応 t 2018/11/9

ネットワークの段数 POからPIまでの 経路のうち ノード数が最大である 経路上のノード数 段数 : 3 2018/11/9

段数最小テクノロジ・マッピング アルゴリズム:FlowMap 2018/11/9 段数最小テクノロジ・マッピング アルゴリズム:FlowMap FlowMap: 段数最小ネットワークを生成するアルゴリズム ネットワークの各部が段数最小な解を生成 LUTの個数が少なくなるようなヒューリスティック 出力における段数を保つ範囲で LUTの個数を改善するための後処理 近傍に存在するLUTを出来る限りまとめる 手順 ラベルづけ マッピング 個数改善の後処理 2018/11/9

FlowMap : ラベルづけ ラベル : ノードをPOとみなしたときの LUTからなる段数最小ネットワークの段数 2018/11/9 FlowMap : ラベルづけ ラベル : ノードをPOとみなしたときの LUTからなる段数最小ネットワークの段数       :ノード t における      Kフィージブル・カット         プライマリ・インプットからプライマリ・アウトプットへ順に ノードごとにラベルの計算を行う 2018/11/9

FlowMap : ラベルづけの例 t t 2 1 1 1 1 1 1 k-フィージブル・カット 1 1 2 2 k-フィージブル・カット 2018/11/9 FlowMap : ラベルづけの例 1 1 1 1 1 1 k-フィージブル・カット 1 1 2 2 k-フィージブル・カット 2 2 2 2 k-フィージブル・カット t t 2 2018/11/9

FlowMap : マッピング PO側からPI側へ ラベルに対応する マッチを選択 全てのノードにおいて 段数が最小 2018/11/9 FlowMap : マッピング PO側からPI側へ ラベルに対応する マッチを選択 全てのノードにおいて 段数が最小 出力における 段数最小が保証される ラベルに対応するマッチが 複数存在した場合 マッチに被覆されるノード数が 最大のマッチを選択 1 1 1 1 2 2 2 2 2018/11/9

FlowMap : LUTの個数を改善するための後処理 2018/11/9 FlowMap : LUTの個数を改善するための後処理 LUTの個数を減らすためのヒューリスティック LUTとその近傍に存在する他のLUTを 可能であれば1つのLUTにまとめる LUTネットワークの出力における段数が増えない範囲で行う LUTの段数が最小かつ個数が最小である 厳密解が得られる保証はない 2018/11/9

2018/11/9 その他のトピックス ファンアウト最適化 タイミング最適化 配線遅延の考慮⇒レイアウトとの融合 2018/11/9