Transcript XNoTs

クロスバ接続による
3次元 Network-on-Chip 向け
多層型トポロジ
松谷 宏紀 (慶大)
鯉渕 道紘 (NII)
天野 英晴 (慶大)
発表の流れ
• Network-on-Chip (NoC)
– 既存の 2次元 / 3次元トポロジ
– 既存の問題点
• XNoTs
– 新しい3次元トポロジ
– 定義, 適用例
– ルーティングアルゴリズム
• 予備評価
– スループット
– 面積, 消費エネルギー
Network-on-Chip (NoC)
• タイルアーキテク
チャ
計算タイル(プロセッサ等)
+ オンチップ・ルータ
– MIT [Taylor,
RAW Micro’02]
[Buger,U.
Computer’04]
– Texas
TRIPS
[Vangal,
– Intel
80-tileISSCC’07]
NoC
• NoC のトポロジ
– メッシュ, トーラス
– ツリー型
– 性能, 面積, 消費電
パケット転送(タイル間通信)
タイルアーキテクチャの実装例
(VDEC/ASPLA/京大 90nm 使用)
既存の 2次元トポロジ: Mesh & Torus
• 2-D Mesh
• 2-D Torus
RAW [Taylor, Micro’02]
Intel’s 80-tile [Vangal, ISSCC’07]
ルータ
[Dally, DAC’01]
– メッシュの2倍の帯域
計算コア
既存の 2次元トポロジ: Fat Tree
• Fat Tree (p, q, c)
SPIN [Andriahantenaina,
DATE’03]
p: 上位リンクの数
q: 下位リンクの数
c: コアのポート数
Fat Tree (2,4,1)
SCORE [Caspi, FPL’00]
ACM [Furtek, FPL’04]
Fat Tree (2,4,2)
ルータ
計算コア
NoC の3次元化: メリット
• 2次元トポロジ
– 移動距離が長い
– リンクで電力を消費
リンク1-hop ≒ 72 [pJ / packet]
ルータ1-hop≒ 66 [pJ / packet]
[Banerjee, NOCS’07]
移動距離が長い
ホップ数,移動距離
は短いほうが良い
• 3次元化
– ウェハ(ダイ)の積層
– マイクロバンプ [Ezaki, ISSCC’04]
[Burns, ISSCC’01]
– 貫通ビア
タイルアーキテクチャ例
既存の 3次元トポロジ: 3D-Mesh
[Addo-Quaye, SoC’05]
[Vasilis,SoC’06]
Tier-3
Tier-2
Tier-1
Tier-0
2D-Mesh (8x8=64)
Average hop count: 5.33
Channel bisection: 16
Number of routers: 64
Node degree:
5
3D-Mesh (4x4x4=64)
Average hop count: 4.00
Channel bisection: 32
Number of routers: 64
Node degree:
7
3次元 NoC: 問題点
• Tier 毎に異なる回路構成
• Tier 毎に異なるトポロジ
Processor array
Tier-2
Fat Tree (2,4,1)
Accelerator
Tier-1
Ring
Cache memory
Tier-0
2D-Mesh
異なる形状の平面トポロジをどう繋ぐか? どうルーティングするか?
発表の流れ
• Network-on-Chip (NoC)
– 既存の 2次元 / 3次元トポロジ
– 既存の問題点
• XNoTs
– 新しい3次元トポロジ
– 定義, 適用例
– ルーティングアルゴリズム
• 予備評価
– スループット
– 面積, 消費エネルギー
XNoTs: 新しい3次元トポロジ
• NoT: Network-on-Tier
– 各 tier に実装される
– 平面ネットワーク
各ルータと各コアには, 垂直方
向の接続用に 1-port を用意
• XNoTs: Xbar NoTs
– クロスバで接続されたNoTs
– 最下層の NoT は全コアへ
の接続性を保障する
NoT
NoT
メッシュベースの NoT
ルータ
計算コア
NoT
XNoTs: 新しい3次元トポロジ
• NoT: Network-on-Tier
– 各 tier に実装される
– 平面ネットワーク
各ルータと各コアには, 垂直方
向の接続用に 1-port を用意
• XNoTs: Xbar NoTs
– クロスバで接続されたNoTs
– 最下層の NoT は全コアへ
の接続性を保障する
メッシュベースの NoT
ルータ
計算コア
垂直方向は,
メッシュベースのクロスバで接続
XNoTs
XNoTs: トポロジの柔軟性 (1/2)
• 2D-Mesh を積層
• Ring を積層
• Fat Treeを積層
XNoTs: トポロジの柔軟性 (1/2)
• 2D-Mesh を積層
• Ring を積層
• Fat Treeを積層
垂直方向は,
クロスバで接続
真横から見た図
真横から見た図
真横から見た図
XNoTs: トポロジの柔軟性 (2/2)
• 異なるトポロジの組合せ
• 最下層の NoT のみ,全コ
アへの接続性が必要
Fat Tree (2,4,1)
Ring
2D-Mesh
XNoTs: トポロジの柔軟性 (2/2)
• 異なるトポロジの組合せ
• 最下層の NoT のみ,全コ
アへの接続性が必要
垂直方向は,
クロスバで接続
X-custom
真横から見た図
XNoTs: トポロジの柔軟性 (2/2)
• 異なるトポロジの組合せ
• 最下層の NoT のみ,全コ
アへの接続性が必要
Tier-0 を経由することで宛先に到達
接続性が無
い!!
X-custom
真横から見た図
X-custom
XNoTs: トポロジの柔軟性 (2/2)
• 異なるトポロジの組合せ
• 最下層の NoT のみ,全コ
アへの接続性が必要
Tier-0 を経由することで宛先に到達
X-custom
真横から見た図
X-custom
XNoTs: 垂直クロスバの分散配置
• 垂直クロスバスイッチ
– 各段のルータ,コアを接続
– MUX, BUF から構成
真横から見た図
Tier-2
• クロスバの分散配置
[Dally, DAC’01]
– MUX, BUF をグループ化
– 各グループを各 tier に
分散配置
– 多数の tier 間リンク
Tier-1
Tier-0
XNoTs: デッドロックフリー・ルーティング
• Tier 内の通信
(X方向, Y方向)
– Tier 内では, 既存のデッドロックフリー・ルーティングを使用
– Tier-0 はすべてのコアへの到達性を保障
• Tier 間の通信
(Z方向)
– 下位 tier から上位 tier への移動は禁止
– ただし, 1ホップ目とラストホップは除く
NG!
OK!
例) 次元順ルーティング
X-Mesh (XNoTs)
真上から見た図
真横から見た図
XNoTs: 経路選択ポリシ (ランダム)
• XNoTs ルーティング
– 複数の tier が利用可能
 複数の代替経路が利用可能
• 経路選択ポリシ
– ルーティング時にどの tier を使うか? [鯉渕, ParaComp’05]
– ランダムに選択  負荷分散に優れる
5-hop
5-hop
5-hop
X-Mesh (XNoTs)
真上から見た図
真横から見た図
XNoTs: 経路選択ポリシ2 (放熱対策)
• 3次元IC の放熱対策
– 放熱用の貫通ビアを空ける
– Heat-sink [Cong, ASPDAC’06]
• 底辺の Tier
– ボードが heat-sink となるため
放熱効果に優れる
代替経路が利用できる
ときは底辺の tier を
使ってルーティング
3次元 IC
放熱に優れる
tier-0 を優先して
使用する
ボード
(heatsink)
XNoTs (真横から見た図)
XNoTs: 経路選択ポリシ3 (FIFO性の保障)
• 制御パケット
– FIFO 性が必要
– In-order 転送
固定型ルーティング
• データパケット
– 広帯域
– Out-of-order 転送
適応型ルーティング
Duato’s Protocol
(適応型)
制御パケットは
tier-0 を使う
Duato’s Protocol
(適応型)
次元順ルーティング
(固定型)
XNoTs (真横から見た図)
XNoTs: 経路選択ポリシ3 (FIFO性の保障)
• 制御パケット
– FIFO 性が必要
– In-order 転送
固定型ルーティング
• データパケット
– 広帯域
– Out-of-order 転送
適応型ルーティング
Duato’s Protocol
(適応型)
データパケットは
tier-0 以外を使う
Duato’s Protocol
(適応型)
次元順ルーティング
(固定型)
XNoTs (真横から見た図)
固定型と適応型の混載によって,
FIFO性を保障しつつ, 高い性能
発表の流れ
• Network-on-Chip (NoC)
– 既存の 2次元 / 3次元トポロジ
– 既存の問題点
• XNoTs
– 新しい3次元トポロジ
– 定義, 適用例
– ルーティングアルゴリズム
• 予備評価
– スループット
– 面積, 消費エネルギー
評価: 比較する3次元トポロジ (64コア)
• X-Mesh
– 4x4 の2次元メッシュを4枚積層
• X-Torus
– 4x4 の2次元トーラスを4枚積層
• X-FT141
– 16コアの Fat Tree (1,4,1) を
4枚積層
X-Mesh
• X-FT241
– 16コアの Fat Tree (2,4,1) を
4枚積層
• X-FT441
– 16コアの Fat Tree (4,4,1) を
上記4枚積層
5種類の XNoTs トポロジを, 3D-Mesh や X-FT241
3D-Torus と比較
性能評価: シミュレーション環境
• グリッド型トポロジ
– 3D-Mesh, X-Mesh,
– 3D-Torus, X-Torus
– 次元順ルーティング
(トーラスのみ仮想チャネル2本)
• ツリー型トポロジ
– X-FT141, X-FT241,
– X-FT441
– Up*/down*ルーティング
X-Mesh (16コアの4枚重ね)
パケットサイズ 16-flit (1-flit header)
バッファサイズ 1-flit per channel
• 経路選択ポリシ
– ランダム
スイッチング
Wormhole switching
通信遅延
3-cycle per 1-hop
通信パターン
Uniform random traffic
性能評価: シミュレーション結果
• X-Torus • 3D-Torus
• X-Mesh • 3D-Mesh
• X-FT441 • 3D-Torus
• X-FT241 • 3D-Mesh
• X-FT141
グリッド型XNoTsの性能
ツリー型XNoTsの性能
X-Torus は 3D-Torus と同程度, X-Mesh は 3D-Mesh と同程度
結合網の面積: NoC の合成
• 結合網の面積
– ルータとNIの面積
– 貫通ビアの面積
Arbiter
Buf
– 64コア (16コアの4枚重
ね)
– 0.18um CMOS
• ルータ回路
– フリット幅 32-bit
– Wormhole方式
– 4段パイプライン
• 貫通ビア
Buf
Input Ports
• ルータと NI の合成
Crossbar
Wormhole ルータ回路
[松谷, SACSIS’06]
[Burns, ISSCC’01]
[Li, ISCA’06]
– 1~10um角
2
– Tier を貫通する度に
25um / bit を加算
Tier 間リンクの数をカウントして
総面積に加算
結合網の面積: 見積り結果
• ルータと NI の合成
3D-mesh / torus では垂
直方向に2-port 必要
– 64コア (16コアの4枚重
ね)
– 0.18um CMOS
• ルータ回路
– フリット幅 32-bit
– Wormhole方式
– 4段パイプライン
• 貫通ビア
ルータとNI + 貫通ビアの面積 [mm 2 ]
XNoTs ではルータ (クロスバ)数が増
えるが, 垂直リンクは1-portのみ
[Burns, ISSCC’01]
[Li, ISCA’06]
– 1~10um角
2
– Tier を貫通する度に
25um / bit を加算
Tier 間リンクの数をカウントして
総面積に加算
結合網の面積: XNoTs の現実性
• NCSU の FFT チップ
– 3次元 IC 上に実装
– 0.18um CMOS
– 3-tier, 貫通ビア
[Davis, DToC’05]
• 2-tier X-Mesh
–
–
–
–
1-tileに 6本のリンク
リンク1本 = 32-bit
2
ルータ1個 = 0.32 [mm ]
2
密度 = 600 [vias / mm ]
• 3D via density
– 理論上の最大値:
2
17,500 [vias / mm ]
– 実用上の最大値:
2
2,500 [vias / mm ]
[Davis, VMIC’05]
6本のリンク
結合網の面積: XNoTs の現実性
• NCSU の FFT チップ
– 3次元 IC 上に実装
– 0.18um CMOS
– 3-tier, 貫通ビア
[Davis, DToC’05]
• 3D via density
• 4-tier X-Mesh
–
–
–
–
1-tileに 18~24本のリンク
リンク1本 = 32-bit
2
ルータ1個 = 0.32 [mm ]
2
密度 = 2,400 [vias /
mm ]
– 理論上の最大値:
2
17,500 [vias / mm ]
– 実用上の最大値:
2
2,500 [vias / mm ]
[Davis, VMIC’05]
18~24本のリンク
3-tier以下のXNoTsは現実的, 4-tier は可能(困難), 5-tier は不可能
まとめ: 3次元トポロジ XNoTs
• 既存の問題点
– 異なる形状の平面トポロジをどう繋ぐか?
– どうルーティングするか?
• XNoTs
– クロスバによって tier 間を接続
– 任意の平面トポロジを積層可能
– 4-tier 以上の XNoTs は実現困難
• 今後の課題
– XNoTs ルーティングの詳細
[松谷, ICPP’07]
– HW実装寄りの検討
Fat Tree
Ring
2D-Mesh
性能評価: Channel bisection
• ネットワークを二等分したとき, 断面をまたぐリンクの数
N  16
N  2i  2i
N-core × n-tier
min( 2i 1n, nN )
1-tier
2-tier
4-tier
8
16
32
min( 2i 2 n, nN )
min( 4n, nN )
16
32
64
4
8
16
8
16
32
16
32
64
3D-Mesh
min( 2i 1n, nN )
min( 4i n, nN )
min( 2i 1n, nN )
8
16
32
3D-Torus
min( 2i 2 n, nN )
16
32
64
X-Mesh
X-Torus
X-FT141
X-FT241
X-FT441
X-Torus は 3D-Torus と同程度, X-Mesh は 3D-Mesh と同程度
消費電力: NoC の電力モデル [Wang, DATE’05]
• フリットエネルギー E flit
– 1-flit を宛先まで送る
– 平均何ジュールかかる?
• シミュレーション環境
– 6mm角 (4枚重ね)
– 0.18um CMOS
• 転送エネルギー Esw
6mm
– 1-bit 転送 @ ルータ
– ルータ回路のゲートレベ
ル解析 (Power
Compiler)
– 1.13 [pJ / hop] E
• 配線エネルギー
link
– 1-bit 転送 @ リンク
Eflit  w  Have (Esw  Elink )
– 配線容量より計算
[Ho, IEEE’01]
– 0.67 [pJ / mm]
貫通ビアの容量は 4.34fF [Davis,DToC’05]  10um 分の配線容量
消費電力: シミュレーション結果
ツリー型はデータの移
動距離が長い分不利
• シミュレーション環境
– 6mm角 (4枚重ね)
– 0.18um CMOS
• 転送エネルギー Esw
– 1-bit 転送 @ ルータ
XNoTs は平均ホップ数 – ルータ回路のゲートレベ
ル解析 (Power
が小さいので有利
Compiler)
– 1.13 [pJ / hop] E
フリット転送エネルギー [pJ]
• 配線エネルギー
link
– 1-bit 転送 @ リンク
– 配線容量より計算
– 0.67 [pJ / mm]
[Wang, DATE’05]
貫通ビアの容量は 4.34fF [Davis,DToC’05]  10um 分の配線容量
既存の 2次元トポロジ: Fat H-Tree
• Fat H-Tree
[松谷, IPDPS’07]
– Red Tree (H-Tree)
– Black Tree (H-Tree)
2個の H-Tree によって
トーラス構造が形成
– Fat Tree と Torus の両方の
特徴を持つ
– Fat Tree より面積効率が良い
[松谷, SACSIS’07]
Fat H-Tree (64-core)
Red ルータ
Black ルータ
計算コア