ツリー型オンチップネットワークにおける 適応的アクティベーション制御 松谷 宏紀 (慶大) 鯉渕 道紘 (NII) 王 代涵 (慶大) 天野 英晴 (慶大) はじめに • リーク電力の増加 – スタンバイ電力の大部分 – 今後も増加傾向 Dynamic Leakage (60.1%) 例) オンチップルータのスタンバイ電力 200MHz 動作時, 90nm CMOS • パワーゲーティング – リーク電力の削減方法 – 回路への電力供給を遮断 • パワーゲーティングの例 Vdd 電源スイッチ 仮想 Vdd 回路 – コアレベル [Ishikawa,IEICE’05] – 演算器レベル [Hu,ISLPED’04] GND – ゲートレベル [Usami,ICCD’06] 本発表では,マルチコアSoCの通信機構のパワーゲーティングに着目 発表の流れ • Network-on-Chip (NoC) – ルータの消費電力 – ルータのパワーゲーティング • Fat Tree ネットワーク – スリープ制御の難しさ • Bypass port 付き Fat Tree – Buffered bypass port (Bport) – Bufferless bypass port (Lport) • 評価 – 面積, スループット性能 – フリット転送エネルギー, リーク Bypass port を用いた経路 Network-on-Chip (NoC) • プロセッサコア Core Router – • オンチップルータ タイルアーキテクチャ例 (16-core) Network-on-Chip (NoC) • プロセッサコア – 面積は大きいが, 省電 力化対策も進んでいる – コア単位でスリープ可 Core Router 例) スタンバイ電流 11uA [Ishikawa,IEICE’05] • オンチップルータ – 面積は小さい – 通信の基幹部なので, スリープさせると通信に 影響が生じる タイルアーキテクチャ例 (16-core) 次スライドでは,ルータの消費電力,パワーゲーティングについて検討 オンチップルルータ: 消費電力の解析 • 90nmで配置配線し, 200MHz でシミュレーション ルータの全ポートのうち, 使われているポートの数 (最大帯域の30%負荷) 5ポートのうち0個のポートが使用中(スタンバイ時)の消費電力 @ 200MHz Total leakage (60.1%) Dynamic (39.9%) Channels (54.0%) スタンバイ電力の内訳 @ 200MHz チャネル(FIFO) のリークがスタンバイ電力の半分以上ここを削減 オンチップルータ: パワーゲーティング • チャネル (FIFO) への電力供給を On/Off – パケットが無ければ スリープ – パケットが来たら ウェイクアップ ARBITER X+ sleep X+ X- sleep X- Y+ sleep Y+ Y- sleep Y5x5 XBAR CORE sleep CORE オンチップルータ: パワーゲーティング • チャネル (FIFO) への電力供給を On/Off – パケットが無ければ スリープ – パケットが来たら ウェイクアップ ARBITER X+ sleep X+ X- sleep XY+ Y+ Y- Y- sleep 5x5 XBAR CORE sleep CORE オンチップルータ: パワーゲーティング • チャネル (FIFO) への電力供給を On/Off – パケットが無ければ スリープ – パケットが来たら ウェイクアップ ARBITER X+ sleep X+ X- sleep X- Y+ sleep Y+ Y- sleep Y5x5 XBAR CORE sleep CORE ただし, 動的なスリープ制御によって性能のオーバヘッドが生じる パワーゲーティング: 性能オーバヘッド •• チャネルの動的 ウェイクアップ遅延 On/Off 例) Intel’s 80-tile の FPMAC は 6-cycle [Soteriou,TPDS’07] [Vangal,ISSCC’07] –– 履歴などに基づきチャネルの電源を スリープ中のチャネルにパケットが到達 On/Off – 手前のルータで待たされ, パイプラインストール発生 [Chen,ISLPED’03] • バッファの部分的 PG – 大きなバッファの一部を常にアクティブ • ARBITER [松谷,ASPDAC’08] Look-ahead ウェイクアップする X+ sleep – 2個前のルータがパケット到着を予め通知 まで待たされる • Slow-silent VCs X- [松谷,NOCS’08] sleep X+ X- – 仮想チャネル (VC) 単位の PG Y+ sleep • そもそも,バッファにメモリマクロを使えば? Y+ – FIFO の深さが浅いため難しい Y- Y- sleep 5x5 XBAR CORE sleep CORE 発表の流れ • Network-on-Chip (NoC) – ルータの消費電力 – ルータのパワーゲーティング • Fat Tree ネットワーク – スリープ制御の難しさ • Bypass port 付き Fat Tree – Buffered bypass port (Bport) – Bufferless bypass port (Lport) • 評価 – 面積, スループット性能 – フリット転送エネルギー, リーク Bypass port を用いた経路 NoC のトポロジ: • 2-D Mesh Mesh & Torus • 2-D Torus RAW [Taylor, ISCA’04] aSOC [Liang, IEEE TVLSI’04] ルータ [Dally, DAC’01] – メッシュの2倍の帯域 計算コア NoC のトポロジ: • Fat Tree (p, q, c) p: 上位リンクの数 q: 下位リンクの数 c: コアのポート数 Fat Tree SPIN [Andriahantenaina,DATE’03] SCORE [Caspi, FPL’00] ACM [Furtek, FPL’04] 本研究では, Fat Tree ネットワークにお けるチャネルの動的スリープ制御に着目 Fat Tree (2,4,1) Fat Tree (2,4,2) ルータ 計算コア Fat Tree: up*/down* ルーティング 1) up移動中に a を選んだ場合 2) up移動中に b を選んだ場合 (a) (b) 使いたいチャネルがス リープ中でも回避できる 使いたいチャネルがス リープ中でも回避できない Up方向は複数経路を選択できるが, down方向は経路は固定 Fat Tree: チャネルの動的スリープ (Up) Up 方向への移動 Router (a) Router (b) Up方向は複数経路を選択できるが, down方向は経路は固定 Fat Tree: チャネルの動的スリープ (Up) Up 方向への移動 Router (a) スリープ中 Router (b) Up方向では, ルータ(b) がスリープ中ならルータ(a) を使えば良い Fat Tree: チャネルの動的スリープ (Up) Up 方向への移動 Router (a) スリープ中 Router (b) Up方向では, ルータ(a) がスリープ中ならルータ(b) を使えば良い Fat Tree: チャネルの動的スリープ (Down) Down 方向への移動 Router (a) Router (b) Down方向では, 移動先がスリープ中なら起きるまで待つしかない Fat Tree: チャネルの動的スリープ (Down) Down 方向への移動 Router (a) Router (b) スリープ中 Down方向では, 移動先がスリープ中なら起きるまで待つしかない Fat Tree: チャネルの動的スリープ (Down) Down 方向への移動 Router (a) 「待ち」が発生すると, パケットが詰 まって混雑の原因となる Router (b) スリープ中 Down方向では, 移動先がスリープ中なら起きるまで待つしかない 関連技術: ウェイクアップ遅延の隠蔽 • Look-ahead @ Mesh [松谷,ASPDAC’08] – 2個手前のルータが, パ ケットの到着をお知らせす る Wakeup! Wakeup! × 2ホップにまたがる長い制御線 関連技術: ウェイクアップ遅延の隠蔽 • Look-ahead @ Mesh – 2個手前のルータが, パ ケットの到着をお知らせす る Wakeup! • Look-ahead @ Fat Tree – 2ホップにまたがる制御線 が長くなりすぎる遅延増 Wakeup! Wakeup! × 2ホップにまたがる長い制御線 ×× ツリーでは現実的でない 発表の流れ • Network-on-Chip (NoC) – ルータの消費電力 – ルータのパワーゲーティング • Fat Tree ネットワーク – スリープ制御の難しさ • Bypass port 付き Fat Tree – Buffered bypass port (Bport) – Bufferless bypass port (Lport) • 評価 – 面積, スループット性能 – フリット転送エネルギー, リーク Bypass port を用いた経路 Bypass port 付き Fat Tree Down 方向への移動 Router (a) 待たされてしまう 一方, こっちのチャ ネルは利用できる Router (b) スリープ中 Down方向では, 移動先がスリープ中なら起きるまで待つしかない Bypass port 付き Fat Tree Down 方向への移動 Router (a) 隣りのルータにパケットを 横流し (bypass port) 一方, こっちのチャ ネルは利用できる Router (b) スリープ中 Down方向では, 移動先がスリープ中なら起きるまで待つしかない Bypass port 付き Fat Tree • どこに bypass port を設けるか? – 隣接して配置されるルータ間 – 距離的に近接しているため, bypass してもコストは小さい Brothers Fat Tree (2,4,1) Brothers Fat Tree (2,4,2) Fat Tree (2,4,1) のように多重度が低いと bypass port を実装できる場所が少ない Bypass port アーキテクチャ • Buffered bypass (Bport) – 通常のチャネルを追加 Router (a) Router (b) × バッファの面積(増) × バッファ read/write 電力(増) • Bufferless bypass(Lport) Bypass port アーキテクチャ • Buffered bypass (Bport) – 通常のチャネルを追加 Router (a) • Bufferless bypass(Lport) – 近接配置 バッファ不要 Router (a) Arbitration Router (b) × バッファの面積(増) × バッファ read/write 電力(増) Router (b) ○ 面積も電力も増えない × 隣接ルータのクロスバの調停 Bypass Port: パケットルーティング • Bypass port の追加 – 新たな経路が発生 – Deadlock するのでは? • 同一ツリー内の移動 – 元々 deadlock しない • 隣接ツリー間の移動 – ツリー間移動は一方通行 – Deadlock しない 既存のFat Treeには無い経路 Bypass port は 一方通行 発表の流れ • Network-on-Chip (NoC) – ルータの消費電力 – ルータのパワーゲーティング • Fat Tree ネットワーク – スリープ制御の難しさ • Bypass port 付き Fat Tree – Buffered bypass port (Bport) – Bufferless bypass port (Lport) • 評価 – 面積, スループット性能 – フリット転送エネルギー, リーク Bypass port を用いた経路 評価方針: Bypass Port 付き Fat Tree • 比較対象 – オリジナル Fat Tree – Bport 付き Fat Tree – Lport 付き Fat Tree • 比較項目 – 面積, スループット – フリット転送エネルギー – リーク電力の削減量 64-core の Fat Tree (1,4,2) (2,4,1) (2,4,2) (4,4,1) で比較 (p,q,c)は, p=上位リンク数 q=下位リンク数 c=コアポート数 Fat Tree (2,4,1) Fat Tree (2,4,2) 面積評価: ルータと NI のゲート数で比較 • Buffered bypass (Bport) • Bufferless bypass(Lport) Arbitration 面積評価のフロー 1. オリジナルルータ, Bport ルータ, Lport ルータ をVerilog-HDLで実装 2. 各種ルータを ASPLA 90nm で合成, 配置配線 (Design Compiler / Astro) 3. オリジナル, Bport付き, Lport 付き Fat Tree のゲート数 (ルータと NI) をカウント 面積評価: ルータと NI のゲート数で比較 • Buffered bypass (Bport) • Bufferless bypass(Lport) Arbitration ※ コア数は 64-core Bport 付きFat Tree Lport 付きFat Tree Original Fat Tree Orig に比べて, Bport では+11.8%, Lport では+5.2% 面積が増えた 電力評価: フリット転送エネルギーを比較 • Buffered bypass (Bport) • Bufferless bypass(Lport) Arbitration 電力評価のフロー 1. オリジナルルータ, Bport ルータ, Lport ルータ をVerilog-HDLで実装 2. 各種ルータを ASPLA 90nm で合成, 配置配線 (Design Compiler / Astro) 3. 配置配線ルータにパケット負荷を与えるシミュレーションを実行 (NC-Verilog) 4. SAIF, SDF, SPEF を読み込んで消費電力を見積もる (Power Compiler) 電力評価: フリット転送エネルギーを比較 • Buffered bypass (Bport) • Bufferless bypass(Lport) Arbitration ※ コア数は 64-core Bport 付きFat Tree Lport 付きFat Tree Original Fat Tree Origに比べ,Bportでは+4.6%増えたが,Lportではほとんど増加せず 性能評価: パケット転送スループット • Buffered bypass (Bport) • Bufferless bypass(Lport) Arbitration フリットレベルネットワーク シミュレータを使用 (※)通信パターンには uniform と NPB トラフィックを使用 トポロジ 64-core 各種 Fat Tree パケットサイズ 5-flit (1-flit header) バッファサイズ 4-flit (WH switching) VC数 2 パケット転送遅延 3-cycle per 1-hop ウェイクアップ遅延 3-cycle 性能評価: パケット転送スループット • Buffered bypass (Bport) • Bufferless bypass(Lport) Arbitration Bypass port によって NoPG並みのスループット Bypass port の効果薄い 多重度が高い例: Fat Tree (4,4,1) 多重度が低い例: Fat Tree (2,4,1) Bport,Lport共にNoPG並みだが, Treeの多重度の低いと効果(薄) 面積,電力,性能評価: ここまでのまとめ • Buffered bypass (Bport) • Bufferless bypass(Lport) Arbitration × バッファの面積(増) ○ 面積の増分は Bport の半分 × バッファ read/write 電力(増) ○ 電力もほとんど増えない ○ Lport よりやや高スループット × Bport よりやや低スループット Fat Tree (2,4,2) において Lport のリーク電力の削減量を評価 スリープ評価: 実際にスリープできる期間 • チャネルの状態を分類 – ACT: Active operation – CSS: Compensated sleep 状態 – USS: Uncompensated sleep 状態 通常どおりリークが流れる Tbreakeven より長いスリープ Tbreakeven より短いスリープ 負荷が高くなる にしたがい減る スリープ率 80% (低負荷) Orig Bypass CG.W トラフィック (64コア) Orig Bypass BT.W トラフィック (64コア) 負荷が高くなるにしたがい, compensated sleep の割合が減る スリープ評価: リーク電力の削減量 • チャネル当りのリーク電力 – パワーゲーティングしないと 0.145mW – パワーゲーティングした場合のリークを評価 ただし, パワースイッチのOn/Off電力も含めて計算 [Hu,ISLPED’04] 負荷が高くなるにしたが いスリープの機会が減る Orig Bypass CG.W トラフィック (64コア) Orig Bypass BT.W トラフィック (64コア) Lport > Orig の順にリーク電力が減った.負荷が高くなるとメリット減 まとめ: Bypass Port 付き Fat Tree • ルータチャネルの動的スリープ – リーク電力削減 – ウェイクアップ遅延による性能劣化 • Fat Tree ネットワーク – Down 方向は固定型ルーティング – スリープ箇所を回避できない • Bypass port 付き Fat Tree – Buffered bypass port (Bport) – Bufferless bypass port (Lport) Bypass port を用いた経路 • 評価結果 – Lport は Bport より低コストで同程度のスループット – Lport による PG によって, 性能をキープしたまま, 27.2%~42.8% のリークを削減 ご清聴ありがとうございました Backup slides スリープ評価: 実際にスリープできる期間 • チャネルの状態を分類 – ACT: Active operation – CSS: Compensated sleep 状態 – USS: Uncompensated sleep 状態 sleep ACT 通常どおりリークが流れる Tbreakeven より長いスリープ Tbreakeven より短いスリープ sleep USS CSS wakeup • 全チャネルの compensated sleep の割合を求める – トラフィック負荷を変える – Orig と Lport で比較 パワーゲーティング: 様々なオーバヘッド • 面積オーバヘッド – パワースイッチ [関, SACSIS’08] • 性能オーバヘッド – Wakeup 時間が大きいと, – パイプラインストール発生 • 電力オーバヘッド – パワースイッチの操作 – スリープ期間が短いと, – 逆に消費電力が増える スリープ中 アクティブ FIFO ウェイクアップする まで待たされる パワーゲーティング: 様々なオーバヘッド • 面積オーバヘッド スリープ中 アクティブ – パワースイッチ [関, SACSIS’08] FIFO • 性能オーバヘッド ウェイクアップする まで待たされる – Wakeup 時間が大きいと, – パイプラインストール発生 Vdd • 電力オーバヘッド – パワースイッチの操作 – スリープ期間が短いと, – 逆に消費電力が増える パワースイッチ sleep 仮想 Vdd On/Off時に動的電力を消費 回路 (これが リーク削減効果より大きいと損) GND オンチップルータ: ハードウェア構成 • 5入力5出力の WH ルータ, データ(フリット)幅は 64-bit 1ポート当り n個の入力バッファ (この図では 2系統) を持つ 仮想チャネルn本 ARBITER X+ FIFO X+ X- FIFO X- Y+ FIFO Y+ Y- FIFO Y5x5 XBAR CORE FIFO (※) 配置配線後のゲート数は 33 [kgates] 前後 CORE [松谷,NOCS’08] オンチップルータ: パイプライン構造 • 衝突しなければ 3 cycle でヘッダがルータを通過 – RC (Routing Computation) – VSA (Virtual Channel / Switch Allocation) – ST (Switch Traversal) • 例) ルータ(a) からルータ(c) にパケットを転送 @ROUTER A @ROUTER B @ROUTER C HEAD RC VSA ST RC VSA ST RC VSA ST DATA 1 ST ST DATA 2 ST ST ST ST DATA 3 1 2 3 4 5 6 ST ST 7 8 9 ST 10 11 12 ELAPSED TIME [CYCLE] ヘッダがルータ(a)に注入され, データ3がルータ(c)を通過するまで12サイクル Fat Tree: up*/down* ルーティング Up方向 Down方向 共通の祖先まで up 方向, そこから down 方向に進む
© Copyright 2024 ExpyDoc