PowerPoint プレゼンテーション

テクノロジマッピング
九州大学大学院システム情報科学
研究院情報工学部門
松永 裕介
2015/10/1
1
論理合成の流れ
2015/10/1
2
セルベース設計手法
• あらかじめ設計されたセルを利用して回路を
作る(組み立てる)。
• トランジスタレベルの設計は必要ない。
• 自動合成向き⇒テクノロジマッピング
2015/10/1
3
「テクノロジ」とは
•
•
•
•
•
使用可能なセルの種類および特性
遅延時間の計算モデル
最大駆動能力のような設計規則
…
半導体ベンダ、用途などに応じて千差万別
2015/10/1
4
テクノロジ非依存/依存処理
• テクノロジごとに論理合成システム全体を作り直し
ていたら、プロセス技術の進歩に追いつかない
• テクノロジに依存しない部分(多段論理合成、最適
化)とテクノロジに依存する部分(テクノロジマッピン
グ)に分離する。
• テクノロジマッピングにおいても基本アルゴリズムは
共通化して、さまざまなセルライブラリ、設計規則に
対応できるようにする。←コンパイラ技術とのアナロ
ジー
2015/10/1
5
テクノロジマッピングの歴史
• ルールベースに基づく手法
– LSS(IBM, ’84)
– Socrates(GE, ’86) ⇒ 現Synopsys
– LORES/EX(三菱,‘88)
• Tree covering
– DAGON(AT&T Bell Labs., ’87)
• タイミング最適化
– (UCB,’90, ’91)
2015/10/1
6
ルールベースを用いた手法
• テクノロジ毎にルールを用意することでシステムそ
のものは汎用化できる
• ルールを作り、その一貫性を保ち、かつチューニン
グすることは容易ではない
• 局所変換の繰り返しでは大局的な最適化は行えな
い
• ⇒今ではアルゴリズム的に処理することが難しい特
定の回路以外は用いられていない
2015/10/1
7
Tree covering
• 歴史的にみて最初のテクノロジマッピングのアルゴ
リズム
• 基本アイデアはコンパイラのコード生成アルゴリズ
ム(Bell Labs.のAho)
• ブーリアンネットワークを細かな単位ノードに分解し
て、セルによるカバーを求める
• 面積、遅延時間、消費電力などを目的関数、制約条
件にして(ある尺度での)最適解を求めることができ
る
• 今日の実用的なシステムで広く用いられる
2015/10/1
8
タイミング最適化問題
• Tree coveringアルゴリズムの拡張
• ファンアウト最適化問題
• 上記2つを統合した大局的な処理
2015/10/1
9
サブジェクトグラフ
2015/10/1
10
多入力ノードの分解
• 任意の論理関数はAND/OR/NOTで表現可能
• 任意のAND/ORは2入力NANDの木に分解可能
• しかし、解は唯一ではない
2015/10/1
11
セルの情報
• 機能を表す論理式⇒2入力NANDに分解
• 面積
– 配線領域の面積の考慮
• 入力端子から出力端子までの遅延時間の計
算モデル
– 配線遅延の考慮
• 入力端子の負荷容量
• 消費電力の計算モデル
2015/10/1
12
パタングラフ
2015/10/1
13
パタングラフ
2015/10/1
14
ナイーブなマッピング結果
2015/10/1
15
複合セルを用いたマッピング結果
(1)
2015/10/1
16
複合セルを用いたマッピング結果
(2)
2015/10/1
17
被覆問題としての定式化(1)
• パタングラフと一致するサブジェクトグラフの部分グ
ラフをマッチと呼ぶ
• テクノロジマッピングとは、サブジェクトグラフ上の全
ての節点を被覆するマッチの集合を求めること
• ただし、単純な被覆ではない⇒feasibility constraint
• マッチの入力は他のマッチの出力でなければならな
い
2015/10/1
18
被覆問題としての定式化(2)
2015/10/1
19
被覆問題としての定式化(3)
2015/10/1
20
被覆問題としての定式化(4)
2015/10/1
21
被覆問題としての定式化(5)
2015/10/1
22
被覆問題としての定式化(6)
2015/10/1
23
被覆問題としての定式化(7)
• このように条件式に否定のリテラルが含まれ
る被覆問題を binate covering 問題と呼ぶ←
条件式が binate function
• binate covering問題はNP問題であることが
知られており、実用的には変数の数が数十
程度までしか解けない
2015/10/1
24
テクノロジマッピングの近似算法
• binate covering問題を厳密に解くことは難し
い←テクノロジマッピングの場合、変数の数
は数千~数万
• ではbinate covering問題を解く近似アルゴリ
ズムは?⇒あまり研究されていない
• 問題自体をより簡単な問題に近似してしまう
⇒サブジェクトグラフをtree(木)の形に制限す
る
2015/10/1
25
木状回路への分割
• 複数のファンアウトを持つ部分で回路を分割
• テクノロジマッピングの問題はDAG coveringから
tree coveringとなる
• tree coveringには効率の良い厳密解法が存在する
2015/10/1
26
分割の弊害
• ファンアウトをまたいだセルの割り当てが行えない
• 分割の境界部分での位相合わせが行えない
2015/10/1
27
パタンマッチングアルゴリズム
• 基本的にはサブジェクトグラフ上の節点をたどって、
パタングラフの節点と一致するか確かめる
• パタングラフの節点をたどる順を決めるため edgelist という枝のリストを用いる
• NANDの入力は2つあるのでサブジェクトグラフとパ
タングラフのマッチの仕方が2通り考えられる。その
ため、各節点につき最悪2通りずつのマッチを試す
必要がある
• 実際には対称な入力が多いので試すべきマッチの
数はそれほど多くない
2015/10/1
28
パタンマッチングの例
2015/10/1
29
tree coveringアルゴリズム
2015/10/1
30
tree coveringの例
2015/10/1
31
inverter-chainヒューリスティック
2015/10/1
32
遅延最小解を求めるtree
covering(1)
• 目的関数を遅延時間とする
• 遅延時間がセルの種類のみに依存するモデ
ルなら最小面積の場合と同様にtree
coveringで最適解を求めることができる
• 遅延時間が駆動先の負荷容量に依存するモ
デルの場合、単純なtree coveringでは解は
求められない
2015/10/1
33
遅延モデル
• 固定遅延
– セルの種類のみに依存。昔はトランジスタの寄生
容量が比較的大きかったので駆動先の負荷容量
は無視できた
• 負荷依存
– 駆動先の負荷容量の線形関数/非線形関数
– T = T0 + K * l
– 最も一般的(少なくとも’90年代は)
2015/10/1
34
遅延最小解を求める tree
covering(2)
• とにかく駆動先の負荷が決まらないと遅延時間は計
算できない
• 仮に決めておいてそのときの最適解を持つ
• そのような仮の値をN種類、試しておき、後で実際
の値に近いものを選ぶ
• tree coveringの処理を1つの節点についてN回繰り
返すようなもの
• Nを大きくすれば解の精度は良くなるが、計算時間
と使用メモリ量も比例して大きくなる
2015/10/1
35
遅延最小解を求めるtree
covering(3)
• 遅延最小解は駆動先の負荷の関数
• しかも負荷の区間の関数なので解が切り替わる点
のみを覚えておけばよい
• 負荷の値の区間[si, ei]とそのときの最適解miの組
をリストの形で保持しておく
• 後で実際の負荷が確定したときに該当する区間を
探してその区間の最適解miを返す
• 処理は複雑だが厳密解を求めることができる。区間
の数Nをあらかじめ与えなくて良い
2015/10/1
36
遅延制約下での面積最小解(1)
• 出力までのマッピングが確定しないと部分解が制約
を満たしているかどうかが分からない←部分的な制
約(required time)が与えられないから
2015/10/1
37
遅延制約下での面積最小解(2)
• required time(以降RT)を仮の値でN個、計
算しておいてあとでもっとも実際の値に近いも
のを選ぶ
• RTの下限は遅延最小解の遅延時間←これ
より速い遅延時間は実現できない
• RTの上限は面積最小解の遅延時間←これ
より遅い遅延時間は役に立たない
2015/10/1
38
遅延制約下での面積最小解(3)
• (面積, 遅延) = (a1, d1) の解
と (a2, d2) の解に対して、次
式が成り立つ時(a2, d2) の解
は最適解として用いられない。
– a1 <= a2, d1 <= d2
遅
延
• 最適解の可能性がある解の
みをリストで保持
面積
2015/10/1
39 39
低消費電力向けのマッピング
• 直感的には面積を最小化すればよいように思える
が、、、、
• ゲートで消費される電力とは
–
–
–
–
P = CV2f
C:このゲートの駆動する容量
V:電源電圧
f:スイッチング周波数
• Cは概ね面積に比例するが、fは回路の構造できま
る
2015/10/1
40
低消費電力向けのマッピング例
(1)
•2NANDの出力の1の出現確率は Po = 1 – (Pa × Pb)
•出現確率Pより遷移確率Qは Q = P × (1 – P)
2015/10/1
41
低消費電力向けのマッピング例
(2)
• 使用するセルが同じでも信号遷移確率が異
なれば消費電力が異なる。
• 大まかに言って遷移確率の高い信号と0との
ANDをとれば(1とのORでも可)、その遷移を
マスクすることができるので消費電力を下げ
ることができる。
2015/10/1
42
FPGA用EDA技術
• やはり少量生産にとってマスクコストの高騰は致命
的
• 仕様変更やバグ修正のためのリメイクなどもっての
ほか
• ⇒チップ製造後にプログラムできるFPGAの優位性
• 微細化の恩恵で大容量化・高速化(低消費電力化
は未だ)
• FPGA用のEDA技術はますます重要
2015/10/1
43
LUT(look-up table)
2015/10/1
44
クラスタ
• 入力が共通ないくつかのLUTをひとまとめに
する。
2015/10/1
45
Island Style Architecture
• クラスタの外側
に配線・接続
用のスイッチ
が並ぶ。
2015/10/1
46
FPGAの設計フロー
•
•
•
•
論理設計(ASICと同様、、、でいいのか?)
LUTへのマッピング
クラスタへのパッキング
配置・配線
• 遅延時間・消費電力ともにグローバル配線
(スイッチ)の削減が鍵→EDA技術&FAPGA
アーキテクチャ
2015/10/1
47
遅延最小を目的とした
LUT型FPGAのテクノロジ・マッピング
• 入力:Kバウンデッド・ネットワーク
LUTの段数最小で個数が少ないネットワークを
– ノードがK入力以下の論理関数を持つような
生成するテクノロジ・マッピング
ループを持たない有向グラフ
• 出力:LUTからなる等価なネットワーク
• LUTからなるネットワークの遅延見積もり: LUTの
段数
– LUT内部の遅延: ほぼ均一
– LUT間の配線遅延: 一定の固有遅延を仮定
• LUTの個数も少ない方が望ましい
– 配線の自由度を高めるため
2015/10/1
48
Kバウンデッド・ネットワーク
• ループを持たない有向グラフ
– ノード
• 入力数がK以下
• K入力以下の論理関数を持つ
– 辺
• ノード i の出力が
ノード j の入力であるとき
有向辺 (i, j) が存在
– プライマリインプット
• 入力辺を持たないノード
– プライマリアウトプット
• 出力辺を持たないノード
2015/10/1
49
Kフィージブル・カットとマッチ K=3
• Kフィージブル・カット
(X , X )
– t から入力側へ辿って
得られるネットワークに
k-feasible cut
おけるノードの分割
– カットの境界における
入力側のノード数がK以下
X
X
マッチ
• マッチ
– Kフィージブル・カットの
X の誘導グラフ
– K入力LUTで被覆できる
2015/10/1
LUTに対応
t
50
ネットワークの段数
POからPIまでの
経路のうち
ノード数が最大である
経路上のノード数
段数 : 3
2015/10/1
51
段数最小テクノロジ・マッピング
アルゴリズム:FlowMap
•
FlowMap:
段数最小ネットワークを生成するアルゴリズム
1. ネットワークの各部が段数最小な解を生成
• LUTの個数が少なくなるようなヒューリスティック
2. 出力における段数を保つ範囲で
LUTの個数を改善するための後処理
• 近傍に存在するLUTを出来る限りまとめる
•
手順
– ラベルづけ
– マッピング
– 個数改善の後処理
2015/10/1
52
FlowMap : ラベルづけ
• ラベル : ノードをPOとみなしたときの
LUTからなる段数最小ネットワークの段数
C (t ) :ノード t における
l ( x)
m( X , X )  max
x X
Kフィージブル・カット
l (t )  min m( X , X )  1
( X , X )C ( t )
• プライマリ・インプットからプライマリ・アウトプットへ順に
ノードごとにラベルの計算を行う
2015/10/1
53
FlowMap : ラベルづけの例
0
0
0
0
1
0
1
0
0
0
0
0
1
1
1
k-フィージブル・カット
1
0
0
1
1
2
2
k-フィージブル・カット
2
2
2
2
k-フィージブル・カット
t
2015/10/1
t
2
54
FlowMap : マッピング
• PO側からPI側へ
ラベルに対応する
マッチを選択
– 全てのノードにおいて
段数が最小
• 出力における
段数最小が保証される
– ラベルに対応するマッチが
複数存在した場合
• マッチに被覆されるノード数が
最大のマッチを選択
2015/10/1
0
0
0
1
0
1
0
1
1
2
2
2
2
55
FlowMap :
LUTの個数を改善するための後処理
• LUTの個数を減らすためのヒューリスティック
– LUTとその近傍に存在する他のLUTを
可能であれば1つのLUTにまとめる
• LUTネットワークの出力における段数が増えない範囲
で行う
• LUTの段数が最小かつ個数が最小である
厳密解が得られる保証はない
2015/10/1
56
その他のトピックス
• ファンアウト最適化
• タイミング最適化
• 配線遅延の考慮⇒レイアウトとの融合
2015/10/1
57