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