オンチップルータにおける仮想チャネル 単位の走行時パワーゲーティング SWoPP’07 では Look-ahead によるウェイクアップ方法の提案 松谷 宏紀 (慶大) 鯉渕 道紘 (NII) 王 代涵 (慶大) 本発表では仮想チャネル単位のパワーゲーティングを想定した パケットルーティングアルゴリズムについて検討 天野 英晴 (慶大) はじめに: リーク電力の削減テクニック • リーク電力の増加 – スタンバイ電力の大部分 – 今後も増加傾向 Dynamic Leakage power (55%) 例) オンチップルータのスタンバイ電力 200MHz 動作時, 90nm CMOS はじめに: リーク電力の削減テクニック • リーク電力の増加 – スタンバイ電力の大部分 – 今後も増加傾向 Dynamic Leakage power (55%) 例) オンチップルータのスタンバイ電力 200MHz 動作時, 90nm CMOS • パワーゲーティング – リーク電力の削減方法 – 回路への電力供給を遮断 • パワーゲーティングの粒度 Vdd パワースイッチ 仮想 Vdd 回路 – コアレベル [Ishikawa,IEICE’05] – 演算器レベル [Hu,ISLPED’04] GND – ゲートレベル [Usami,ICCD’06] 本発表では,マルチコアSoCの通信機構のパワーゲーティングに着目 本発表の流れ • マルチコア SoC の通信機構 – Network-on-Chip (NoC) – 仮想チャネルルータの構造 – ルータの消費電力 • 仮想チャネルのパワーゲーティング – パワーゲーティングの影響 – ルーティング方式の提案 • 評価 – ルーティング方式の比較 – スループット性能への影響 – どれだけリーク電力が減るか Network-on-Chip (NoC) Core [Dally,DAC’01] [Vangal,ISSCC’07] On-chip router • プロセッサコア – • オンチップルータ 16-Core Tile Architecture パケットスイッチネットワーク (ルータを止めると 不規則トポロジになったり, 通信に影響が出る) (*) 京大/VDEC/ASPLA 90nm CMOS 使用 Network-on-Chip (NoC) Core [Dally,DAC’01] [Vangal,ISSCC’07] On-chip router • プロセッサコア – コア単位でスリープ可 – 面積は大きいが, 省 電力対策も進んでる 例) スタンバイ電流 11uA [Ishikawa,IEICE’05] • オンチップルータ – 面積は小さい – コアの省電力化が進 むにしたがい, 目立っ てくる 16-Core Tile Architecture パケットスイッチネットワーク (ルータを止めると 不規則トポロジになったり, 通信に影響が出る) (*) 京大/VDEC/ASPLA 90nm CMOS 使用 オンチップルータ: ハードウェア構成 • 5入力5出力のルータ, データ(フリット)幅は 64-bit 1ポート当り複数の入力バッファ (この図では 2系統) を持つ 仮想チャネル2本 ARBITER X+ FIFO X+ X- FIFO X- Y+ FIFO Y+ Y- FIFO Y5x5 XBAR CORE FIFO CORE 配置配線後のゲート数は 62.8[kilo gates]で,全体の 66.8% が FIFO オンチップルータ: 仮想チャネル(VC)機構 • VC の利点 – 先詰まりの防止 (1車線と2車線の道路の例) 前方で右折したいが先が詰 まってて進めない (怒) この帯域が無 駄になっている 右折レーンを有効活用 オンチップルータ: 仮想チャネル(VC)機構 • VC の利点 – 先詰まりの防止 (1車線と2車線の道路の例) この帯域が無 駄になっている • VC の実装 – 1物理ポートの時分割多重 [Dally,TPDS’92] パケット(a)は先が詰まって進めないので, 先にパケット(b) がクロスバを通過 PACKET(a) PACKET(b) VC#0 VC#1 VC を持つとスループットは向上するが, 面積とリーク電力は増える 仮想チャネルルータ: 消費電力の解析 • 90nmで配置配線し, 200MHz でシミュレーション 5ポートのうち0個のポートが使用中(スタンバイ時)の消費電力 @ 200MHz Total leakage (55.0%) Dynamic VC buf’s leakage (49.4%) スタンバイ電力の内訳 @ 200MHz VCバッファのリークがスタンバイ電力の約半分 ここを削減する! 本発表の流れ • マルチコア SoC の通信機構 – Network-on-Chip (NoC) – 仮想チャネルルータの構造 – ルータの消費電力 • 仮想チャネルのパワーゲーティング – パワーゲーティングの影響 – ルーティング方式の提案 • 評価 – ルーティング方式の比較 – スループット性能への影響 – どれだけリーク電力が減るか オンチップルータ: 仮想チャネルの PG • チャネル単位の走行時パワーゲーティング – パケットが無ければ スリープ – パケットが来たら ウェイクアップ ARBITER X+ sleep X+ X- sleep X- Y+ sleep Y+ Y- sleep Y5x5 XBAR CORE sleep CORE オンチップルータ: 仮想チャネルの PG • チャネル単位の走行時パワーゲーティング – パケットが無ければ スリープ – パケットが来たら ウェイクアップ ARBITER X+ sleep X+ X- sleep XY+ Y+ Y- Y- sleep 5x5 XBAR CORE sleep CORE オンチップルータ: 仮想チャネルの PG • チャネル単位の走行時パワーゲーティング – パケットが無ければ スリープ – パケットが来たら ウェイクアップ ARBITER X+ sleep X+ X- sleep XY+ Y+ sleep • ルータのパワーゲーティング – 比較的大きなバッファを想定 [Chen,ISLPED’03] [Soteriou,TPDS’07] YYsleep [Chen,ISLPED’03] – Drowsy や Gated Vdd SRAM を使用 5x5 XBAR • 小規模ルータ (4フリットのバッファ) を想定 CORE sleep – プロセッサのレジスタ, 演算器の PG に近い CORE [Hu,ISLPED’04] パワーゲーティング: 様々なオーバヘッド • 性能オーバヘッド – ウェイクアップ遅延により スループット性能が低下 On/Offに遅延がかかる + 動的電力も消費 Vdd パワースイッチ sleep • 電力オーバヘッド – パワースイッチのOn/Off電力 – スリープ期間が短いと, 逆に消費電力が増える 仮想 Vdd 回路 GND • Look-ahead によるウェイクアップ方法 – 性能ペナルティを軽減 [松谷,SWoPP’07] [松谷,ASPDAC’08] 今回は, 少ないスタンバイ電力で高いピーク性能を出すルーティング ルーティング: 仮想チャネル切り替えポリシ • スリープ制御 ウェイクアップ遅延とスリープ遅延 (電 源On/Offに要す遅延)の影響を受ける – VC#0 は常に ON – それ以外の VC はパケットが来たら起床, 通過したらスリープ – VC#0 VC#0 VC#0 VC#1 VC#1 VC#1 VC#2 VC#2 VC#2 ルータ(a) ルータ(b) ルータ(c) ルーティング: 仮想チャネル切り替えポリシ • スリープ制御 – VC#0 は常に ON – それ以外の VC はパケットが来たら起床, 通過したらスリープ • 仮想チャネルの切り替え – パケット送信時は VC#0 を使う – 経路の途中でパケットが衝突したら VC番号を +1 する VC#0 VC#0 VC#0 VC#1 VC#1 VC#2 VC#2 VC#2 ルータ(a) ルータ(b) ルータ(c) VC#1 衝突!! 負荷が高くなるに従い, 残りの VCs (VC#1, VC#2, …) が徐々に活性化される 小さなスタンバイ電力で高いピーク性能を実現 ルーティング: いろいろなグループ化 • 4VC x 1 (レーン数1) – VC#0 だけ常に ON – パケットは VC#0 VC#1 VC#2 VC#3 の順に遷移 すべてのパケット VC#0 衝突 VC#1 衝突 VC#2 3回まで VC を切り替えられるので先詰まりには強い VC#0 より上位はウェイクアップ遅延の影響を受ける – 衝突 VC#3 ルーティング: いろいろなグループ化 • 4VC x 1 (レーン数1) – VC#0 だけ常に ON – パケットは VC#0 VC#1 VC#2 VC#3 の順に遷移 すべてのパケット VC#0 VC#1 VC#2 VC#3 • 2VC x 2 (レーン数2) – VC#0 と VC#2 が常に ON – 宛先アドレスが偶数パケットは VC#0 VC#1 の順に遷移 – 宛先アドレスが奇数パケットは VC#2 VC#3 の順に遷移 VC#0 衝突 VC#1 宛先IDが偶数のパケット – VC#2 衝突 VC#3 宛先IDが奇数のパケット ウェイクアップ遅延は減るが, 1回までしか VC を切り替えられな いので先詰まりに弱い ルーティング: いろいろなグループ化 • 4VC x 1 (レーン数1) – VC#0 だけ常に ON – パケットは VC#0 VC#1 VC#2 VC#3 の順に遷移 すべてのパケット VC#0 VC#1 VC#2 VC#3 • 2VC x 2 (レーン数2) – VC#0 と VC#2 が常に ON – 宛先アドレスが偶数パケットは VC#0 VC#1 の順に遷移 – 宛先アドレスが奇数パケットは VC#2 VC#3 の順に遷移 dst=0,2,4 VC#0 VC#1 • 1VC x 4 (レーン数4) dst=1,3,5 VC#2 VC#3 VC を切り替えられないので先詰まりには弱い 全VCが ON なのでウェイクアップ遅延の影響は無い – 全部の VC が常に ON – 宛先を “mod 4” して使う VC を決定する dst=0,4 VC#0 dst=1,5 VC#1 dst=2,6 VC#2 dst=3,7 VC#3 ルーティング: デッドロックフリー保証 • 仮想チャネルレイヤ – 同一 VC 番号のバッファから成る仮想ネットワーク • デッドロックフリー [Duato,TPDS’93] [Koibuchi,ICPP’03] – レイヤ間は一方通行 VC#0 VC#1 VC#2 VC#3 – 最下層のみ deadlock-free なら, 他は任意のルーティング VC Layer #0 VC#0 VC#0 VC#0 VC Layer #1 VC#1 VC#1 VC#1 VC Layer #2 VC#2 VC#2 VC#2 VC Layer #3 VC#3 VC#3 VC#3 ルータ(a) ルータ(b) ルータ(c) 本発表の流れ • マルチコア SoC の通信機構 – Network-on-Chip (NoC) – 仮想チャネルルータの構造 – ルータの消費電力 • 仮想チャネルのパワーゲーティング – パワーゲーティングの影響 – ルーティング方式の提案 • 評価 – ルーティング方式の比較 – スループット性能への影響 – どれだけリーク電力が減るか 評価: ルーティング方式の比較 • スループット vs. リークで比較 – – – – 仮想チャネル1本: 仮想チャネル2本: 仮想チャネル4本: 仮想チャネル8本: 4VC x 1 の例 VC#0 Leakage 1VC x 1 2VC x 1, 1VC x 2 Throughput 4VC x 1, 2VC x 2, 1VC x 4 8VC x 1, 4VC x 2, 2VC x 4, 1VC x 8 衝突 すべてのパケット 2VC x 2 の例 VC#0 Better! 衝突 VC#1 衝突 VC#2 衝突 VC#3 3回まで VC を切り替えられるので先詰まりには強い VC#0 より上位はウェイクアップ遅延の影響を受ける VC#1 宛先IDが偶数のパケット VC#2 衝突 VC#3 宛先IDが奇数のパケット ウェイクアップ遅延は減るが, 1回までしか VC を切り替えられないので先詰まりに弱い 評価: ルーティング方式の比較 • スループット vs. リークで比較 – – – – 仮想チャネル1本: 仮想チャネル2本: 仮想チャネル4本: 仮想チャネル8本: Better! Leakage 1VC x 1 2VC x 1, 1VC x 2 Throughput 4VC x 1, 2VC x 2, 1VC x 4 8VC x 1, 4VC x 2, 2VC x 4, 1VC x 8 • ネットワークシミュレータ – スループットの測定 – リーク電力計算機能を実装 [Hu,ISLPED’04] のモデルを使用 • トラフィックパターン – Uniform と NPB ベンチマーク集 Table: 評価パラメータ トポロジ 2-D Mesh (16, 64) ルーティング 次元順ルーティング パケットサイズ 5-flit (1-flit header) バッファサイズ 4-flit (WH switching) VC数 1, 2, 4, 8 ウェイクアップ 遅延 5-cycle 評価: リーク削減量のモデリング • パワーゲーティングの電力モデル [Hu,ISLPED’04] – Eoverhead: パワースイッチのOn/Off に要すエネルギー – Esaved: N-cycle のスリープによって削減できるリーク 何サイクルスリープできれば, Eoverhead と Esaved が等しくなるか? 評価: リーク削減量のモデリング • パワーゲーティングの電力モデル [Hu,ISLPED’04] – Eoverhead: パワースイッチのOn/Off に要すエネルギー – Esaved: N-cycle のスリープによって削減できるリーク 何サイクルスリープできれば, Eoverhead と Esaved が等しくなるか? 各VCの電力パラメータ (*) Supply voltage 1.0 V Switching factor 0.12 Leakage power 52 uW Dynamic power (200MHz) 78 uW Dynamic power (500MHz) 194 uW Power switch size ratio 0.1 Power switch cap ratio 0.5 (*) ルータ回路を 90nm で配置配線し, Power Compiler を使って電力を測定 リーク電力の遷移 (200MHz - 500MHz) これ以外の値は [Hu,ISLPED’04] より 評価結果: スループット vs. リーク電力 • ルーティングの比較 – – – – 仮想チャネル1本: 仮想チャネル2本: 仮想チャネル4本: 仮想チャネル8本: 1VC x 1 2VC x 1, 1VC x 2 4VC x 1, 2VC x 2, 1VC x 4 8VC x 1, 4VC x 2, 2VC x 4, 1VC x 8 Better! Leakage • ただし 4VC x 1 – 比較対象が多すぎる。。。 Throughput – スループット vs. リーク電力のグラフにプロット – 特に効率が良いものを選択し, リーク電力の削減量を説明 評価結果: スループット vs. リーク電力 • ルーティングの比較 – – – – ■VC1本: ▲VC2本: ●VC4本: ▼VC8本: Better! Leakage 1VC x 1 2VC x 1, 1VC x 2 Throughput 4VC x 1, 2VC x 2, 1VC x 4 8VC x 1, 4VC x 2, 2VC x 4, 1VC x 8 仮想チャネルが8本もあっても利用率が極端に低い 仮想チャネル4本のときとほぼ同性能 Uniform (16-core) Uniform (64-core) 評価結果: スループット vs. リーク電力 • ルーティングの比較 Better! Leakage – ■VC1本: 1VC x 1 – ▲VC2本: 2VC x 1, 1VC x 2 – ●VC4本: 4VC x 1, 2VC x 2, 1VC x 4 Throughput レーン数が多いので, ウェイクアップ遅延が減ったが, 先 詰まりには弱くなり性能が劣化 2VCx2, 1VCx4 4VCx1 Uniform (16-core) Uniform (64-core) 評価結果: スループット vs. リーク電力 • ルーティングの比較 – ■VC1本: 1VC x 1 – ▲VC2本: 2VC x 1 – ●VC4本: 4VC x 1 Better! Leakage Throughput 16コアでは 2VCx1, 4VCx1 が効率が良く, 64コアでは 4VCx1 が性能が良い Uniform (16-core) Uniform (64-core) 評価結果: 平均リーク電力 • ルーティング方式の比較 – 1VC x 1 (レーン数1) – 2VC x 1 (レーン数1) – 4VC x 1 (レーン数1) VC4個分(PG時)のリーク VC1個分のリーク Uniform (16-core) VC1個分のリーク IS.W (16-core) 4VCx1の場合, ピーク時でも PG 無しの 36%~53% のリークで動作 まとめ: 仮想チャネル単位パワーゲーティング • ルータのリーク対策 – プロセッサの省電力化が進むにつれて今後は必要 – ルータのパワーゲーティング 性能や電力オーバヘッド • 本発表では – 仮想チャネル単位の走行時パワーゲーティング – レイヤ構造を利用したルーティングの提案 最初は VC0 を使い, パケットが衝突する度に仮想チャネル番号を +1 する 低負荷なら VC0 のみ ON, 負荷が高くなれば VC1, VC2 が徐々にON • ルーティング方式の比較 – 4VCx1, 2VCx1 の電力効率が高い – 4VCx1 の場合, ピーク時でも 36%~53% のリークで動作 Backup slides 今後の課題: Slow-Silent Virtual Channel • 仮想チャネルを増やすことで消費電力を削減 – 仮想チャネルの本数を増やす スループット向上 – 仮想チャネルの動作周波数と電圧を下げる – 仮想チャネル単位の PG でリークを削減 • Voltage and Frequency Scaling VC を増やせば性能向上 – 性能が向上した分, 動作周波数と電圧 を低減 電力削減 (V Vth ) f CV Pswitching a C f V 2 – 仮想チャネルの追加するとリーク増大 仮想チャネルの本数と性能 仮想チャネル単位の PG で問題を解決 評価結果: スループット • ルーティング方式の比較 – 1VC x 1 (レーン数1) – 2VC x 1 (レーン数1) – 4VC x 1 (レーン数1) Uniform (16-core) IS.W (16-core) オンチップルータ: パイプライン構造 • 衝突しなければ 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データ3がルータ(c)に届くまで12サイクル TIME [CYCLE] ヘッダがルータ(a)に注入されてから, パワーゲーティング: 様々なオーバヘッド • 面積オーバヘッド – パワースイッチ [関ら, ICD/ARC研’07] • 性能オーバヘッド – Wakeup 時間が大きいと, – パイプラインストール発生 パケット到着を早期に検出したい • 電力オーバヘッド – パワースイッチの操作 – スリープ期間が短いと, – 逆に消費電力が増える 短いスリープを検出して回避したい スリープ中 アクティブ FIFO ウェイクアップする まで待たされる パワーゲーティング: 様々なオーバヘッド • 面積オーバヘッド スリープ中 アクティブ – パワースイッチ FIFO [関ら, ICD/ARC研’07] • 性能オーバヘッド ウェイクアップする まで待たされる – Wakeup 時間が大きいと, – パイプラインストール発生 パケット到着を早期に検出したい • 電力オーバヘッド – パワースイッチの操作 – スリープ期間が短いと, – 逆に消費電力が増える 短いスリープを検出して回避したい Vdd パワースイッチ sleep 仮想 Vdd On/Off時に動的電力を消費 回路 (これが リーク削減効果より大きいと損) GND チャネルへのパケットの到達を早期に知らせるスリープ制御が有効 評価方針: VC単位のパワーゲーティング • 性能オーバヘッド On/Offに遅延がかかる + 動的電力も消費 – ウェイクアップ遅延により スループット性能が低下 Vdd パワースイッチ sleep • 電力オーバヘッド – パワースイッチのOn/Off電力 – スリープ期間が短いと, 逆に消費電力が増える Q. 何サイクルスリープできれば元が取れる? 仮想 Vdd 回路 GND • 仮想チャネルのグループ化 – 4VC x 1レーン – 2VC x 2レーン – 1VC x 4レーン 4回まで VC を切り替えられるので先詰まりには強い VC#0 より上位はウェイクアップ遅延の影響を受ける VC を切り替えられないので先詰まりには弱い 全VCが ON なのでウェイクアップ遅延の影響は無い Q. どのようなグループ化が性能と消費電力で有利か? 評価: 評価項目とシミュレーション環境 • 動作周波数の影響 – トラフィックは uniform, VC 数は4本 – 200 & 500MHz のパワーゲーティング・パラメータを比較 • 仮想チャネル数の影響 – トラフィックは uniform, 動作周波数は 500MHz を想定 – VC 数が 4本と8本の場合を比較 • 実アプリケーションの場合 – VC 数は 4本, 動作周波数は 500MHz を想定 – トラフィックは NPB ベンチマーク集から5種類を選択 表3: ネットワークシミュレータのパラメータ トポロジ 2次元メッシュ ルーティング 次元順ルーティング パケットサイズ 表4: パワーゲーティングのパラメータ 200MHz 500MHz 損益分岐点 6サイクル 14サイクル 5フリット (ヘッダを含む) ウェイクアップ遅延(*) 2サイクル 5サイクル バッファサイズ 4フリット (ワームホール) 通信遅延 1ホップ当り 3サイクル スリープ遅延(**) 10サイクル 25サイクル (*) 活性化中の VC のウェイクアップ遅延は 0 (**) アイドルを検出し電力供給停止までの遅延
© Copyright 2024 ExpyDoc