460 likes | 592 Views
チャネルの動的 On/Off 制御のための 先読みルータアーキテクチャ. 松谷 宏紀 (慶大) 鯉渕 道紘 (NII) 王 代涵 (慶大) 天野 英晴 (慶大). Network-on-Chip (NoC). タイルアーキテクチャ プロセッサコア Network-on-Chip (NoC) NoC アーキテクチャ ネットワークトポロジ パケットルーティング オンチップルータ. Core. Router. タイルアーキテクチャ例 (16- core). 代表的な NoC アーキテクチャ. Network-on-Chip (NoC).
E N D
チャネルの動的On/Off制御のための先読みルータアーキテクチャチャネルの動的On/Off制御のための先読みルータアーキテクチャ 松谷 宏紀 (慶大) 鯉渕 道紘 (NII) 王 代涵 (慶大) 天野 英晴 (慶大)
Network-on-Chip (NoC) • タイルアーキテクチャ • プロセッサコア • Network-on-Chip (NoC) • NoC アーキテクチャ • ネットワークトポロジ • パケットルーティング • オンチップルータ Core Router タイルアーキテクチャ例 (16-core)
Network-on-Chip (NoC) • タイルアーキテクチャ • プロセッサコア • Network-on-Chip (NoC) • NoC アーキテクチャ • ネットワークトポロジ • パケットルーティング • オンチップルータ • NoC のリーク電力を 減らしたい Core Router タイルアーキテクチャ例 (16-core) ルータのリーク電力を減らすため,ルータにパワーゲーティングを施す
オンチップルータ: パワーゲーティング [松谷,ASPDAC’08] • チャネル (FIFO) への電力供給を On/Off • パケットが無ければ スリープ • パケットが来たら ウェイクアップ [松谷,NOCS’08] ARBITER X+ X+ sleep X- X- sleep Y+ Y+ sleep Y- Y- sleep 5x5 XBAR CORE CORE sleep
オンチップルータ: パワーゲーティング [松谷,ASPDAC’08] • チャネル (FIFO) への電力供給を On/Off • パケットが無ければ スリープ • パケットが来たら ウェイクアップ [松谷,NOCS’08] ARBITER X+ X+ sleep X- X- sleep Y+ Y+ Y- Y- sleep 5x5 XBAR CORE CORE sleep
sleep オンチップルータ: パワーゲーティング [松谷,ASPDAC’08] • チャネル (FIFO) への電力供給を On/Off • パケットが無ければ スリープ • パケットが来たら ウェイクアップ [松谷,NOCS’08] ARBITER X+ X+ sleep X- X- sleep Y+ Y+ Y- Y- sleep 5x5 XBAR CORE CORE sleep ただし, 動的なスリープ制御によって性能のオーバヘッドが生じる
チャネルの動的 On/Off • 履歴などに基づきチャネルの電源を On/Off • バッファの部分的 PG • 大きなバッファの一部を常にアクティブ • Slow-silent VCs • 仮想チャネル (VC) 単位の PG • Look-ahead ルータ • 2個前のルータがパケット到着を予め通知 • Dimension-order routing(固定型) のみを対象 [Soteriou,TPDS’07] [Chen,ISLPED’03] [松谷,NOCS’08] [松谷,ASPDAC’08] パワーゲーティング: 性能オーバヘッド 例) Intel’s 80-tile の FPMAC は 6-cycle • ウェイクアップ遅延 • スリープ中のチャネルにパケットが到達 • 手前のルータで待たされ, パイプラインストール発生 [Vangal,ISSCC’07] ARBITER ウェイクアップするまで待たされる X+ X+ sleep X- X- sleep Y+ Y+ sleep Y- Y- sleep 5x5 XBAR CORE CORE sleep 本研究では,様々な NoCに“先読みによるパワーゲーティング”を適用
発表の流れ • Network-on-Chip (NoC) • ルータのパワーゲーティング • 既存の NoC アーキテクチャ • トポロジ, ルーティング • ルータアーキテクチャ • 先読み NoC アーキテクチャ • 固定型ルーティングの場合 • 適応型ルーティングの場合 • 評価 • 制御信号の複雑さ • 通信遅延とスループット性能 Wakeup!
本発表では2次元メッシュを対象 ルータ 計算コア 既存の NoC アーキテクチャ
固定型ルーティング Source-destination 間の経路は1つに固定 ランダム型ルーティング Source-destination 間に複数の経路 ランダムに1つを選択 適応型ルーティング Source-destination 間に複数の経路 混雑に応じて1つを選択 X方向 Y方向 既存の NoC : ルーティングの分類 例) 次元順ルーティング
固定型ルーティング Source-destination 間の経路は1つに固定 ランダム型ルーティング Source-destination 間に複数の経路 ランダムに1つを選択 適応型ルーティング Source-destination 間に複数の経路 混雑に応じて1つを選択 既存の NoC : ルーティングの分類 例) West-first, Negative-first, North-last, Odd-even, Opt-y, DP
固定型ルーティング Source-destination 間の経路は1つに固定 ランダム型ルーティング Source-destination 間に複数の経路 ランダムに1つを選択 適応型ルーティング Source-destination 間に複数の経路 混雑に応じて1つを選択 既存の NoC : West-first routing NW SW West-first の禁止ターン
固定型ルーティング Source-destination 間の経路は1つに固定 ランダム型ルーティング Source-destination 間に複数の経路 ランダムに1つを選択 適応型ルーティング Source-destination 間に複数の経路 混雑に応じて1つを選択 既存の NoC : North-last routing NW NE North-last の禁止ターン
固定型ルーティング Source-destination 間の経路は1つに固定 ランダム型ルーティング Source-destination 間に複数の経路 ランダムに1つを選択 適応型ルーティング Source-destination 間に複数の経路 混雑に応じて1つを選択 既存の NoC : Negative-first routing NW ES Negative-first の禁止ターン
固定型ルーティング Source-destination 間の経路は1つに固定 ランダム型ルーティング Source-destination 間に複数の経路 ランダムに1つを選択 適応型ルーティング Source-destination 間に複数の経路 混雑に応じて1つを選択 既存の NoC : Odd-even turn-model 偶数列か奇数列かによって禁止ターン違う ES EN Odd-even (偶数列) の禁止ターン NW SW Odd-even (奇数列) の禁止ターン
固定型ルーティング Source-destination 間の経路は1つに固定 ランダム型ルーティング Source-destination 間に複数の経路 ランダムに1つを選択 適応型ルーティング Source-destination 間に複数の経路 混雑に応じて1つを選択 Fully adaptive routing 仮想チャネル (VC)を用い, 任意のターンを許可 NS方向に VC 2本 既存の NoC : Opt-y routing (1/3) WS NW SW WN NS方向に仮想チャネル0を使う場合 (※) 点線のターンは「これ以上 West方向に進まないとき」のみ許可
固定型ルーティング Source-destination 間の経路は1つに固定 ランダム型ルーティング Source-destination 間に複数の経路 ランダムに1つを選択 適応型ルーティング Source-destination 間に複数の経路 混雑に応じて1つを選択 Fully adaptive routing 仮想チャネル (VC)を用い, 任意のターンを許可 NS方向に VC 2本 既存の NoC : Opt-y routing (2/3) NS方向に仮想チャネル1を使う場合 (※) 点線のターンは「これ以上 West方向に進まないとき」のみ許可
固定型ルーティング Source-destination 間の経路は1つに固定 ランダム型ルーティング Source-destination 間に複数の経路 ランダムに1つを選択 適応型ルーティング Source-destination 間に複数の経路 混雑に応じて1つを選択 Fully adaptive routing 仮想チャネル (VC)を用い, 任意のターンを許可 NS方向に VC 2本 既存の NoC : Opt-y routing (3/3) S1 N1 S0 N0 S0 N0 S1 N1 NS方向の仮想チャネル番号切替え (※) 点線のターンは「これ以上 West方向に進まないとき」のみ許可
既存の NoC : 固定型ルーティング・ルータ • 衝突しなければ 3 cycle でヘッダがルータを通過 • RC (Routing Computation) • VSA (Virtual Channel / Switch Allocation) • ST (Switch Traversal) • 例) ルータ(a) からルータ(c) にパケットを転送 (1) 出力チャネルの候補は1つだけ @ROUTER B @ROUTER C @ROUTER A RC VSA ST RC VSA ST RC VSA ST HEAD DATA 1 ST ST ST SA SA SA (2) その出力チャネルに対してアービトレーション DATA 2 ST ST ST SA SA SA SA SA SA ST ST ST DATA 3 1 2 3 4 5 6 7 8 9 10 11 12 出力チャネルは1つに固定 2ホップ先のチャネルを正確に予測可能 ヘッダがルータ(a)に注入され, データ3がルータ(c)を通過するまで12サイクル ELAPSED TIME [CYCLE]
既存の NoC : 適応型ルーティング・ルータ • 衝突しなければ 3 cycle でヘッダがルータを通過 • RC (Routing Computation) • VSA (Virtual Channel / Switch Allocation) • ST (Switch Traversal) • 例) ルータ(a) からルータ(c) にパケットを転送 (1) 出力チャネルの候補は複数個ある (2) Output selection function (OSF) @ROUTER B @ROUTER C @ROUTER A RC VSA ST RC VSA ST RC VSA ST HEAD DATA 1 ST ST ST SA SA SA (3) その出力チャネルに対してアービトレーション DATA 2 ST ST ST SA SA SA SA SA SA ST ST ST DATA 3 1 2 3 4 5 6 7 8 9 10 11 12 1ホップ先で動的に経路が変わる 2ホップ先を予測することは無理 ヘッダがルータ(a)に注入され, データ3がルータ(c)を通過するまで12サイクル ELAPSED TIME [CYCLE]
発表の流れ • Network-on-Chip (NoC) • ルータのパワーゲーティング • 既存の NoC アーキテクチャ • トポロジ, ルーティング • ルータアーキテクチャ • 先読み NoC アーキテクチャ • 固定型ルーティングの場合 • 適応型ルーティングの場合 • 評価 • 制御信号の複雑さ • 通信遅延とスループット性能 Wakeup!
先読み NoC : 固定型ルーティング (1/3) • 先読み (look-ahead) 型ルータ • NRC (Next routing computation) • VSA (Virtual channel / switch allocation) • ST (Switch traversal) NRC: 次ルータのRCを実行 (自ルータのRCは手前のルータに任せる) ルータ(b)の出力ポートはルータ(a)が決め,ルータ(c)の出力ポートはルータ(b)が… @ROUTER B @ROUTER C @ROUTER A NRC NRC NRC VSA ST VSA ST VSA ST HEAD DATA 1 ST ST ST SA SA SA DATA 2 ST ST ST SA SA SA SA SA SA ST ST ST DATA 3 1 2 3 4 5 6 7 8 9 10 11 12 1ホップ先の出力チャネルを計算 2ホップ先の入力チャネルが判明 ELAPSED TIME [CYCLE]
Wakeup-0 Wakeup-1 先読み NoC : 固定型ルーティング (2/3) 2ホップ先の入力チャネルに対し,どのように wakeup 信号を発行するか? • Wakeup-0 型: 配線遅延が小さいとき • ルータ iの NRC で, ルータ (i+2)を wakeup • s段パイプラインのとき, (2s-1)サイクル前に wakeup 開始可 • Wakeup-1 型: 配線遅延が大きいとき • ルータ iの VSA で, ルータ (i+2)を wakeup • s段パイプラインのとき, (2s-2)サイクル前に wakeup 開始可 @ROUTER B @ROUTER C @ROUTER A NRC NRC NRC VSA ST VSA ST VSA ST HEAD DATA 1 ST ST ST SA SA SA DATA 2 ST ST ST SA SA SA SA SA SA ST ST ST DATA 3 1 2 3 4 5 6 7 8 9 10 11 12 ELAPSED TIME [CYCLE]
2ホップ先にwakeup信号 信号は何本必要か? Node degree dトポロジ チャネル当たり (d-1)^2本 ルータ当たり d(d-1)^2本 先読み NoC : 固定型ルーティング (3/3) [松谷,ASPDAC’08]
2ホップ先にwakeup信号 信号は何本必要か? Node degree dトポロジ チャネル当たり (d-1)^2本 ルータ当たり d(d-1)^2本 次元順ルーティング 禁止ターンがたくさんある 実際には何本必要か? チャネル当たり 1本 (N/S) チャネル当たり 5本 (E/W) ルータ当たり 12本 先読み NoC : 固定型ルーティング (3/3) [松谷,ASPDAC’08] E/W方向への移動 N/S方向への移動
先読み NoC : 適応型ルーティング (1/6) • 先読み (look-ahead) 型ルータ • NRC (Next routing computation) • VSA (Virtual channel / switch allocation) • ST (Switch traversal) NRC: 次ルータのRCを実行 (自ルータのRCは手前のルータに任せる) ルータ(b)の出力ポートはルータ(a)が決め,ルータ(c)の出力ポートはルータ(b)が… @ROUTER B @ROUTER C @ROUTER A NRC NRC NRC VSA ST VSA ST VSA ST HEAD DATA 1 ST ST ST SA SA SA DATA 2 ST ST ST SA SA SA SA SA SA ST ST ST DATA 3 1 2 3 4 5 6 7 8 9 10 11 12 1ホップ先の出力チャネルを計算 2ホップ先の入力チャネルが判明 ELAPSED TIME [CYCLE]
Wakeup-0 Wakeup-1 先読み NoC : 適応型ルーティング (2/6) 2ホップ先の入力チャネルに対し,どのように wakeup 信号を発行するか? • Wakeup-0 型: 配線遅延が小さいとき • ルータ iの NRC で, ルータ (i+2)を wakeup • s段パイプラインのとき, (2s-1)サイクル前に wakeup 開始可 • Wakeup-1 型: 配線遅延が大きいとき • ルータ iの VSA で, ルータ (i+2)を wakeup • s段パイプラインのとき, (2s-2)サイクル前に wakeup 開始可 @ROUTER B @ROUTER C @ROUTER A NRC NRC NRC VSA ST VSA ST VSA ST HEAD DATA 1 ST ST ST SA SA SA DATA 2 ST ST ST SA SA SA SA SA SA ST ST ST DATA 3 1 2 3 4 5 6 7 8 9 10 11 12 ELAPSED TIME [CYCLE]
先読み NoC : 適応型ルーティング (3/6) • 適応型ルーティングにおける 2 ホップ先読み • ルータ (i+1)がどの出力チャネルを選ぶか予測する • Next output selection function (Next OSF) • ルータ iがルータ (i+1)になったつもりで • ルータ (i+1)の output selection function を実行 @ROUTER B @ROUTER C @ROUTER A NRC NRC NRC VSA ST VSA ST VSA ST HEAD DATA 1 ST ST ST SA SA SA (1) NRC: 次ルータになったつもりで出力チャネルを計算 候補は複数個出る DATA 2 ST ST ST SA SA SA SA SA SA ST ST ST DATA 3 (2) Next OSF: 次ルータになったつもりで OSF を実行 1 2 3 4 5 6 7 8 9 10 11 12 ELAPSED TIME [CYCLE]
先読み NoC : 適応型ルーティング (3/6) • Stateless 型: スループットが低い • ルータ (i+1)の出力チャネルの集合を Oとする • Oのうち,宛先に最短で到達できるチャネル集合を O’とする • O’の中からランダムに選択 • Stateful 型: スループットが高い • O’のうち, 現在 busy でない出力チャネルの集合 O’’とする • O’’の中からランダムに選択 @ROUTER B @ROUTER C @ROUTER A NRC NRC NRC VSA ST VSA ST VSA ST HEAD DATA 1 ST ST ST SA SA SA (1) NRC: 次ルータになったつもりで出力チャネルを計算 候補は複数個出る DATA 2 ST ST ST SA SA SA SA SA SA ST ST ST DATA 3 (2) Next OSF: 次ルータになったつもりで OSF を実行 1 2 3 4 5 6 7 8 9 10 11 12 ELAPSED TIME [CYCLE]
先読み NoC : 適応型ルーティング (4/6) • 適応型ルーティングにおける 2 ホップ先読み • ルータ i がルータ (i+1)の出力チャネルを Next OSF する • パケットがルータ iから (i+1)に移動するまでのタイムラグ • ルータ iの Next OSF 結果が最良とは限らない パケットがルータ (i+1)に到達するまでに, busy になっているかもしれない @ROUTER B @ROUTER C @ROUTER A NRC NRC NRC VSA ST VSA ST VSA ST HEAD DATA 1 ST ST ST SA SA SA (1) NRC: 次ルータになったつもりで出力チャネルを計算 候補は複数個出る DATA 2 ST ST ST SA SA SA SA SA SA ST ST ST DATA 3 (2) Next OSF: 次ルータになったつもりで OSF を実行 1 2 3 4 5 6 7 8 9 10 11 12 ELAPSED TIME [CYCLE]
先読み NoC : 適応型ルーティング (4/6) • Inflexible 型: スループットが低い • ルータ (i+1)はルータ iが選択した出力チャネルを必ず使う • Flexible 型: スループットが高い • ルータ (i+1)はルータiが選択した出力チャネルが busy なら • 別の出力チャネルを利用できる @ROUTER B @ROUTER C @ROUTER A NRC NRC NRC VSA ST VSA ST VSA ST HEAD DATA 1 ST ST ST SA SA SA DATA 2 ST ST ST SA SA SA SA SA SA ST ST ST DATA 3 1 2 3 4 5 6 7 8 9 10 11 12 ELAPSED TIME [CYCLE]
先読み NoC : 適応型ルーティング (5/6) • Inflexible 型: スループットが低い • ルータ (i+1)はルータ iが選択した出力チャネルを必ず使う • Flexible 型: スループットが高い • ルータ (i+1)はルータiが選択した出力チャネルが busy なら • 別の出力チャネルを利用できる 予めウェイクアップしたチャネルとは別のチャネルを使うことになる ウェイクアップ遅延, パワースイッチ On/Off エネルギーの無駄では? • 別チャネルをウェイクアップさせるオーバヘッドは小さい • 予めウェイクアップしたチャネル CH0 が busy 他のパケットが占有中 • CH0 が free になるのを待つより,別チャネルを起こしたほうが良い • 予めウェイクアップさせるのに要した電力は無駄にならない • 予めウェイクアップしたチャネル CH0 が busy 他のパケットが占有中 • CH0は別パケットによって使われているので,起こしても無駄ではなかった
2ホップ先にwakeup信号 信号は何本必要か? Node degree dトポロジ チャネル当たり (d-1)^2本 ルータ当たり d(d-1)^2本 Opt-y ルーティング 禁止ターンがない 何本必要か? チャネル当たり 7本 (N/S) チャネル当たり 7本 (E/W) ルータ当たり 28本 先読み NoC : 適応型ルーティング (6/6) [松谷,ASPDAC’08] E/W方向への移動 N/S方向への移動
West-first ルーティング 禁止ターンがある 実際には何本必要か? チャネル当たり 4本 (N) チャネル当たり 4本 (S) チャネル当たり 7本 (E) チャネル当たり 5本 (W) ルータ当たり 20本 先読み NoC : 適応型ルーティング (6/6) N方向への移動 S方向への移動 (※) 他の turn-model では wakeup 信号の配線パターンは異なるが,本数は同じ W方向への移動 E方向への移動
発表の流れ • Network-on-Chip (NoC) • ルータのパワーゲーティング • 既存の NoC アーキテクチャ • トポロジ, ルーティング • ルータアーキテクチャ • 先読み NoC アーキテクチャ • 固定型ルーティングの場合 • 適応型ルーティングの場合 • 評価 • 制御信号の複雑さ • 通信遅延とスループット性能 Wakeup!
Wakeup 信号 2ホップ先に送信 ネットワークで全体で制御信号は何本必要か? 評価: 制御信号の複雑さ (1/2) E/W方向への移動 N/S方向への移動 表: 様々なネットワークサイズにおける wakeup 信号の数 (※) West-first, North-last, Negative-first, Odd-even はすべて一緒
k x kメッシュの配線量 L = 4w * k (k-1) * l w: リンク幅 (例えば,データ幅 64-bit + 制御信号 4-bit) l: 隣接ルータ間距離 (例えば, 1mm) 先読み機構による配線量の増加量 (pはwakeup 信号の数) Stateless 型は (2p * l), Stateful 型は (4p * l)増える 評価: 制御信号の複雑さ (2/2) 表: 先読み機構 (wakeup 信号, nbusy 信号) による配線量の増加量 Stateful型でルーティングのadaptivityが高くなると配線量が多くなる (※) West-first, North-last, Negative-first, Odd-even はすべて一緒
wakeup信号の配線遅延 2ホップ分の距離 配線遅延が問題 パイプライン段の遅延 15 FO4 (ハイエンド向け) 60 FO4 (組込み向け) 目標 トータルで 60 FO4 未満 NRC と Next OSF に 30 FO4 を消費 評価: 制御信号の配線遅延 配線距離[mm] vs. 配線遅延[FO4] 90nm CMOS process, semi-global interconnect コア間距離が2mmなら,wakeup信号は4mm
評価項目 ウェイクアップ遅延の影響 先読み固定型ルーティング 先読み適応型ルーティングにおける flexible 型 先読み適応型ルーティングにおける stateful 型 ネットワークシミュレーション 8 x 8 mesh Uniform traffic (16-flit packet) Wormhole (4-flit buffer) 評価: スループット性能 各種ルーティングのスループット性能がどれだけ落ちるか? ウェイクアップ遅延の影響をどれだけ隠蔽できるか? inflexible 型と flexible 型では性能差はどのくらいか? stateless 型と stateful 型では性能差はどのくらいか?
Dimension-order (DOR) No PG PG (wakeup 4-cycle) West-first (WF) No PG PG (wakeup 4-cycle) スループット: ウェイクアップ遅延の影響 -20.0% -16.7% スループット vs. 通信遅延 スループット vs. 通信遅延 ウェイクアップ遅延によって, 9.7% ~ 20.0%スループット性能が低下
Dimension-order (DOR) No PG PG (wakeup 4-cycle) PG (wakeup 4-cycle + look-ahead) West-first (WF) No PG PG (wakeup 4-cycle) スループット: 先読み固定型ルーティング -20.0% -16.7% スループット vs. 通信遅延 スループット vs. 通信遅延 DOR (固定型) では, 先読みによってスループットの劣化を完全隠蔽
West first (WF) routing Inflexible(wake 4-cycle) Flexible (wake 4-cycle) Opt-y routing Original (wake 4-cycle) Flexible (wake 4-cycle) スループット: 先読み適応型 flexible 型 スループット vs. 通信遅延 スループット vs. 通信遅延 Inflexible型は性能劣化. Flexible型はほぼウェイクアップ遅延を隠蔽
West first (WF) routing Stateless(wake 4-cycle) Stateful (wake 4-cycle) Opt-y routing Stateless(wake 4-cycle) Stateful (wake 4-cycle) スループット: 先読み適応型 stateful 型 スループット vs. 通信遅延 スループット vs. 通信遅延 Uniform trafficでは両者に大差無し. 局所性があればStateful型有利
まとめ: 先読みルータアーキテクチャ • ルータのパワーゲーティング • チャネル単位 • ウェイクアップ遅延の影響 • 先読み固定型ルーティング • ウェイクアップ遅延を完全に隠蔽 • 先読み適応型ルーティング • Flexible 型によりウェイクアップ遅延をほぼ隠蔽 • Stateless 型 vs. Stateful 型 • 今後の課題 • ハードウェア実装 • 面積オーバヘッドの見積り Look-ahead ルーティングを応用 Wakeup!