チャネルの動的On/Off制御のための 先読みルータアーキテクチャ

Slides:



Advertisements
Similar presentations
1 ネットワーク層(ルーティング). 2 ルーティング メトリック:最適化すべき指標 ・ホップ数 ・所要時間 Destination Source :最適ルート(経路) :迂回ルート.
Advertisements

IP over DVB-RCS の設計と実装 研究背景 DVB-RCS 衛星回線を用いて受信局から送信局への狭帯域な戻り回線を提供 Forward Link Return Link HUB Terminal.
EMS の実装. EMS の L3 トポロジ HUB Router /24 一つの大きなルータ ただし上流と下流のインターフェース 間でしか通信できない。 Internet Terminal-A
研究目標 研究目標 提案手法 仮想ネットワーク上でのブロードキャスト、マルチキャスト通信の実現
Step.5 パケットダンプ Wiresharkでパケットをキャプチャする PC 1 PC 2 PC 3 PC 4 ネットワーク
Networkゼミ 特別講義 ~仕組みがわかればネットワークはもっと楽しくなる~ [IPルーティング編]
松谷 宏紀 (慶大) 鯉渕 道紘 (NII) 天野 英晴 (慶大)
  スケジュール管理手法PERT-Time      解 説    “最早開始時間計算のアルゴリズム”
情報理工学系研究科 コンピュータ科学専攻 上嶋裕樹
ヘテロジニアスマルチコアプロセッサ 環境を対象としたキャッシュシステム 自動生成ツールの開発
第6回 仮想記憶とページング ページング ページ取り出し方式 ページ置き換え方式 中間テスト(40分)
ネットワーク技術II 第8.2課 イーサネット・スイッチング
Network-on-Chip 最前線 ~研究の始め方から最新動向まで~ 松谷@慶應
仮想ブロードキャストリンクを利用した 片方向通信路の透過的経路制御 藤枝 俊輔(慶應義塾大学)
クラスタコンピューティングの 並列環境と性能
Rearrangeable NoC: 配線遅延を考慮した分散ルータ アーキテクチャ
鯉渕 道紘,藤原 一毅(国情研) 長谷川 洋平,橋本 陽一(NEC研) 松谷 宏紀,天野 英晴(慶大)
神奈川大学大学院工学研究科 電気電子情報工学専攻
TCP (Transmission Control Protocol)
マルチパスイーサネットにおける省電力 On/Off リンクアクティベーション法
記 憶 管 理(2) オペレーティングシステム 第10回.
研究背景 クラウドコンピューティングサービスの普及 マルチテナント方式を採用 データセンタの需要が増加
発表の流れ 研究背景 マルチテナント型データセンタ 関連研究 IPマルチキャスト ユニキャスト変換手法 提案手法 性能評価.
センサノード 時刻同期と位置測定 浅川 和久 2008/11/16 センサノード 時刻同期と位置測定.
CMPにおけるオンチップルータの 細粒度パワーゲーティングの評価
研究背景 クラウドコンピューティングサービスの普及 ユーザ数の増加に伴う問題 マルチテナント方式の採用 データセンタの需要が増加
トランスポート層.
バックボーンルータにおける REDの動的閾値制御方式
コンテンツ配信 エンコード (符号化) CBR (Constant Bit Rate) VBR (Variable Bit Rate)
アドホックネットワークの ルーティングプロトコル
認証と負荷分散を考慮した ストリーミングシステムに関する研究
演算/メモリ性能バランスを考慮した マルチコア向けオンチップメモリ貸与法
伝送特性に応じた 適応型映像・音声配信機構の構築
サーバ負荷分散におけるOpenFlowを用いた省電力法
山本 貴之 大阪大学 大学院基礎工学研究科 情報数理系専攻 村田研究室 博士前期課程
6月19日 RoutingとRouting Protocol 大竹 由美子
Ibaraki Univ. Dept of Electrical & Electronic Eng.
大阪大学 大学院情報科学研究科 博士前期課程2年 宮原研究室 土居 聡
慶應義塾大学理工学部 天野英晴 クラスタ  慶應義塾大学理工学部 天野英晴
修士研究計画 P2Pネットワークの最適化 kuro must: Survey ○テクニカルにチャレンジング
第9章 Error and Control Messages (ICMP)
予測機構を持つルータを用いた低遅延チップ内ネットワークに関する研究
松谷 宏紀 (慶大) 鯉渕 道紘 (NII) 王 代涵 (慶大) 天野 英晴 (慶大)
IP ルーティングの図示 情報科学科 松澤 智史.
,12 情報ネットワーク論 - IPルーティング - ネットワークを介した情報のやりとり 機械のしくみとして見ると...
問題1: ネットワークセグメントはいくつあるか?
通信技術.
分散環境でのStableな ブロードキャストアルゴリズムの 提案と実装
マルチホーミングを利用した Proxy Mobile IPv6の ハンドオーバー
オペレーティングシステムJ/K (仮想記憶管理)
Ibaraki Univ. Dept of Electrical & Electronic Eng.
ネットワークの性能 牧野ゼミ3年 足立龍哉.
低遅延オンチップネットワークのための予測ルータの評価
非対称リンクにおける ジャンボフレームの性能評価
DNSクエリーパターンを用いたOSの推定
仮想ネットワークを考慮した SoftIRQ制御によるCPU割当ての手法
演習第4回 情報通信技術論 インターネット工学
片方向通信路を含む ネットワークアーキテクチャに於ける 動的な仮想リンク制御機構の設計と実装
ネットワーク技術II 第8.1課 イーサネット・スイッチング
GbEにおける TCP/IP の研究について
情報ネットワーク 岡村耕二.
アドホックルーティングにおける 省電力フラッディング手法の提案
衛星回線を含むネットワークにおける 動的経路制御に関する研究
演習問題 その1 IP のネットワークである /20 について以下の問に答えよ。
異種セグメント端末による 分散型仮想LAN構築機構の設計と実装
Uni Directional Link Routing 片方向通信路に於ける経路制御
7月13日の演習問題・解答例 について ネットワーク長が 18、22、26、28 の場合の
プロトコル番号 長野 英彦.
自己ルーティングによるラベル識別 コリニア音響光学効果を用いたラベル識別 スケジューリング 経路制御 ラベル ラベル 識別 ラベル 処理
Presentation transcript:

チャネルの動的On/Off制御のための 先読みルータアーキテクチャ 松谷 宏紀 (慶大) 鯉渕 道紘 (NII) 王  代涵 (慶大) 天野 英晴 (慶大)

Network-on-Chip (NoC) タイルアーキテクチャ プロセッサコア Network-on-Chip (NoC) NoC アーキテクチャ ネットワークトポロジ パケットルーティング オンチップルータ Core Router タイルアーキテクチャ例 (16-core)

代表的な NoC アーキテクチャ システム名 トポロジ ルーティング スイッチング フロー制御 MIT RAW 2-D mesh (32bit) XY DOR WH, no VC Credit UPMC SPIN Fat Tree (32bit) Up*/down* QuickSilver ACM H-Tree (32bit) 1-flit, no VC UMass Amherst aSOC 2-D mesh Shortest-path Pipelined CS, no VC Timeslot Sun T1 Crossbar (128bit) - Handshake Cell BE EIB Ring (128bit) TRIPS (operand) 2-D mesh (109bit) YX DOR On/off TRIPS (on-chip) 2-D mesh (128bit) WH, 4 VCs Intel SCC 2-D torus (32bt) XY,YX DOR, odd-even TM Stall/go Intel Teraflops NoC Source routing WH, 2 lanes TILE64 iMesh

Network-on-Chip (NoC) タイルアーキテクチャ プロセッサコア Network-on-Chip (NoC) NoC アーキテクチャ ネットワークトポロジ パケットルーティング オンチップルータ NoC のリーク電力を 減らしたい Core Router タイルアーキテクチャ例 (16-core) ルータのリーク電力を減らすため,ルータにパワーゲーティングを施す

オンチップルータ: パワーゲーティング チャネル (FIFO) への電力供給を On/Off パケットが無ければ  スリープ [松谷,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

オンチップルータ: パワーゲーティング チャネル (FIFO) への電力供給を On/Off パケットが無ければ  スリープ [松谷,ASPDAC’08] チャネル (FIFO) への電力供給を On/Off パケットが無ければ  スリープ パケットが来たら  ウェイクアップ [松谷,NOCS’08] ARBITER X+ X+ sleep X- X- sleep Y+ Y+ Y- Y- sleep 5x5 XBAR CORE CORE sleep

ただし, 動的なスリープ制御によって性能のオーバヘッドが生じる オンチップルータ: パワーゲーティング [松谷,ASPDAC’08] チャネル (FIFO) への電力供給を On/Off パケットが無ければ  スリープ パケットが来たら  ウェイクアップ [松谷,NOCS’08] ARBITER X+ X+ sleep X- X- sleep sleep Y+ Y+ Y- Y- sleep 5x5 XBAR CORE CORE sleep ただし, 動的なスリープ制御によって性能のオーバヘッドが生じる

本研究では,様々な NoCに“先読みによるパワーゲーティング”を適用 パワーゲーティング: 性能オーバヘッド チャネルの動的 On/Off 履歴などに基づきチャネルの電源を On/Off バッファの部分的 PG 大きなバッファの一部を常にアクティブ Slow-silent VCs 仮想チャネル (VC) 単位の PG Look-ahead ルータ 2個前のルータがパケット到着を予め通知 Dimension-order routing(固定型) のみを対象 [松谷,ASPDAC’08] [松谷,NOCS’08] [Chen,ISLPED’03] [Soteriou,TPDS’07] ウェイクアップ遅延 スリープ中のチャネルにパケットが到達 手前のルータで待たされ, パイプラインストール発生 例) 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 アーキテクチャ 評価 ルータのパワーゲーティング 既存の NoC アーキテクチャ トポロジ, ルーティング ルータアーキテクチャ 先読み NoC アーキテクチャ 固定型ルーティングの場合 適応型ルーティングの場合 評価 制御信号の複雑さ 通信遅延とスループット性能 Wakeup!

既存の NoC アーキテクチャ 本発表では2次元メッシュを対象 システム名 トポロジ ルータ 計算コア ルーティング スイッチング フロー制御 MIT RAW 2-D mesh (32bit) XY DOR WH, no VC Credit UPMC SPIN Fat Tree (32bit) Up*/down* QuickSilver ACM H-Tree (32bit) 1-flit, no VC UMass Amherst aSOC 2-D mesh Shortest-path Pipelined CS, no VC Timeslot Sun T1 Crossbar (128bit) - Handshake Cell BE EIB Ring (128bit) TRIPS (operand) 2-D mesh (109bit) YX DOR On/off TRIPS (on-chip) 2-D mesh (128bit) WH, 4 VCs Intel SCC 2-D torus (32bt) XY,YX DOR, odd-even TM Stall/go Intel Teraflops NoC Source routing WH, 2 lanes TILE64 iMesh

既存の NoC : ルーティングの分類 固定型ルーティング ランダム型ルーティング 適応型ルーティング Source-destination 間の経路は1つに固定 ランダム型ルーティング Source-destination 間に複数の経路 ランダムに1つを選択 適応型ルーティング 混雑に応じて1つを選択 X方向 Y方向 例) 次元順ルーティング

既存の NoC : ルーティングの分類 固定型ルーティング ランダム型ルーティング 適応型ルーティング Source-destination 間の経路は1つに固定 ランダム型ルーティング Source-destination 間に複数の経路 ランダムに1つを選択 適応型ルーティング 混雑に応じて1つを選択 例) West-first, Negative-first, North-last, Odd-even, Opt-y, DP

既存の NoC : West-first routing 固定型ルーティング Source-destination 間の経路は1つに固定 ランダム型ルーティング Source-destination 間に複数の経路 ランダムに1つを選択 適応型ルーティング 混雑に応じて1つを選択 NW SW West-first の禁止ターン

既存の NoC : North-last routing 固定型ルーティング Source-destination 間の経路は1つに固定 ランダム型ルーティング Source-destination 間に複数の経路 ランダムに1つを選択 適応型ルーティング 混雑に応じて1つを選択 NW NE North-last の禁止ターン

既存の NoC : Negative-first routing 固定型ルーティング Source-destination 間の経路は1つに固定 ランダム型ルーティング Source-destination 間に複数の経路 ランダムに1つを選択 適応型ルーティング 混雑に応じて1つを選択 NW ES Negative-first の禁止ターン

既存の NoC : Odd-even turn-model 偶数列か奇数列かによって禁止ターン違う 固定型ルーティング Source-destination 間の経路は1つに固定 ランダム型ルーティング Source-destination 間に複数の経路 ランダムに1つを選択 適応型ルーティング 混雑に応じて1つを選択 ES EN Odd-even (偶数列) の禁止ターン NW SW Odd-even (奇数列) の禁止ターン

既存の NoC : Opt-y routing (1/3) 固定型ルーティング Source-destination 間の経路は1つに固定 ランダム型ルーティング Source-destination 間に複数の経路 ランダムに1つを選択 適応型ルーティング 混雑に応じて1つを選択 Fully adaptive routing 仮想チャネル (VC)を用い, 任意のターンを許可 NS方向に VC 2本 WS NW SW WN NS方向に仮想チャネル0を使う場合 (※) 点線のターンは「これ以上 West方向に進まないとき」のみ許可

既存の NoC : Opt-y routing (2/3) 固定型ルーティング Source-destination 間の経路は1つに固定 ランダム型ルーティング Source-destination 間に複数の経路 ランダムに1つを選択 適応型ルーティング 混雑に応じて1つを選択 Fully adaptive routing 仮想チャネル (VC)を用い, 任意のターンを許可 NS方向に VC 2本 NS方向に仮想チャネル1を使う場合 (※) 点線のターンは「これ以上 West方向に進まないとき」のみ許可

既存の NoC : Opt-y routing (3/3) 固定型ルーティング Source-destination 間の経路は1つに固定 ランダム型ルーティング Source-destination 間に複数の経路 ランダムに1つを選択 適応型ルーティング 混雑に応じて1つを選択 Fully adaptive routing 仮想チャネル (VC)を用い, 任意のターンを許可 NS方向に VC 2本 N1 N0 S1 S0 N0 N1 S0 S1 NS方向の仮想チャネル番号切替え (※) 点線のターンは「これ以上 West方向に進まないとき」のみ許可

既存の NoC : 固定型ルーティング・ルータ 衝突しなければ 3 cycle でヘッダがルータを通過 RC (Routing Computation) VSA (Virtual Channel / Switch Allocation) ST (Switch Traversal) 例) ルータ(a) からルータ(c) にパケットを転送 (1) 出力チャネルの候補は1つだけ @ROUTER A @ROUTER B @ROUTER C HEAD RC VSA ST RC VSA ST RC VSA ST DATA 1 SA ST SA ST SA ST (2) その出力チャネルに対してアービトレーション DATA 2 SA ST SA ST SA ST DATA 3 SA ST SA ST SA ST 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 A @ROUTER B @ROUTER C HEAD RC VSA ST RC VSA ST RC VSA ST DATA 1 SA ST SA ST SA ST (3) その出力チャネルに対してアービトレーション DATA 2 SA ST SA ST SA ST DATA 3 SA ST SA ST SA ST 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 アーキテクチャ 評価 ルータのパワーゲーティング 既存の 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 A @ROUTER B @ROUTER C HEAD NRC VSA ST NRC VSA ST NRC VSA ST DATA 1 SA ST SA ST SA ST DATA 2 SA ST SA ST SA ST DATA 3 SA ST SA ST SA ST 1 2 3 4 5 6 7 8 9 10 11 12 1ホップ先の出力チャネルを計算  2ホップ先の入力チャネルが判明 ELAPSED TIME [CYCLE]

先読み NoC : 固定型ルーティング (2/3) Wakeup-0 型: 配線遅延が小さいとき ルータ i の NRC で, ルータ (i+2) を wakeup s段パイプラインのとき, (2s-1) サイクル前に wakeup 開始可 Wakeup-1 型: 配線遅延が大きいとき ルータ i の VSA で, ルータ (i+2) を wakeup s段パイプラインのとき, (2s-2) サイクル前に wakeup 開始可 Wakeup-0 @ROUTER A @ROUTER B @ROUTER C HEAD NRC VSA ST NRC VSA ST NRC VSA ST Wakeup-1 DATA 1 SA ST SA ST SA ST DATA 2 SA ST SA ST SA ST DATA 3 SA ST SA ST SA ST 1 2 3 4 5 6 7 8 9 10 11 12 ELAPSED TIME [CYCLE]

先読み NoC : 固定型ルーティング (3/3) 2ホップ先にwakeup信号 Node degree d トポロジ 信号は何本必要か? ルータ当たり d(d-1)^2 本 [松谷,ASPDAC’08]

先読み NoC : 固定型ルーティング (3/3) 2ホップ先にwakeup信号 Node degree d トポロジ 次元順ルーティング 信号は何本必要か? Node degree d トポロジ チャネル当たり (d-1)^2本 ルータ当たり d(d-1)^2 本 次元順ルーティング 禁止ターンがたくさんある 実際には何本必要か? チャネル当たり 1本 (N/S) チャネル当たり 5本 (E/W) ルータ当たり 12本 [松谷,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 A @ROUTER B @ROUTER C HEAD NRC VSA ST NRC VSA ST NRC VSA ST DATA 1 SA ST SA ST SA ST DATA 2 SA ST SA ST SA ST DATA 3 SA ST SA ST SA ST 1 2 3 4 5 6 7 8 9 10 11 12 1ホップ先の出力チャネルを計算  2ホップ先の入力チャネルが判明 ELAPSED TIME [CYCLE]

先読み NoC : 適応型ルーティング (2/6) Wakeup-0 型: 配線遅延が小さいとき ルータ i の NRC で, ルータ (i+2) を wakeup s段パイプラインのとき, (2s-1) サイクル前に wakeup 開始可 Wakeup-1 型: 配線遅延が大きいとき ルータ i の VSA で, ルータ (i+2) を wakeup s段パイプラインのとき, (2s-2) サイクル前に wakeup 開始可 Wakeup-0 @ROUTER A @ROUTER B @ROUTER C HEAD NRC VSA ST NRC VSA ST NRC VSA ST Wakeup-1 DATA 1 SA ST SA ST SA ST DATA 2 SA ST SA ST SA ST DATA 3 SA ST SA ST SA ST 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 A @ROUTER B @ROUTER C HEAD NRC VSA ST NRC VSA ST NRC VSA ST DATA 1 SA ST SA ST SA ST (1) NRC: 次ルータになったつもりで出力チャネルを計算  候補は複数個出る DATA 2 SA ST SA ST SA ST DATA 3 SA ST SA ST SA ST (2) Next OSF: 次ルータになったつもりで OSF を実行 1 2 3 4 5 6 7 8 9 10 11 12 ELAPSED TIME [CYCLE]

先読み NoC : 適応型ルーティング (3/6) Stateless 型: スループットが低い Stateful 型: スループットが高い ルータ (i+1) の出力チャネルの集合を O とする O のうち,宛先に最短で到達できるチャネル集合を O’ とする O’ の中からランダムに選択 Stateful 型: スループットが高い O’ のうち, 現在 busy でない出力チャネルの集合 O’’ とする O’’ の中からランダムに選択 @ROUTER A @ROUTER B @ROUTER C HEAD NRC VSA ST NRC VSA ST NRC VSA ST DATA 1 SA ST SA ST SA ST (1) NRC: 次ルータになったつもりで出力チャネルを計算  候補は複数個出る DATA 2 SA ST SA ST SA ST DATA 3 SA ST SA ST SA ST (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 A @ROUTER B @ROUTER C HEAD NRC VSA ST NRC VSA ST NRC VSA ST DATA 1 SA ST SA ST SA ST (1) NRC: 次ルータになったつもりで出力チャネルを計算  候補は複数個出る DATA 2 SA ST SA ST SA ST DATA 3 SA ST SA ST SA ST (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 A @ROUTER B @ROUTER C HEAD NRC VSA ST NRC VSA ST NRC VSA ST DATA 1 SA ST SA ST SA ST DATA 2 SA ST SA ST SA ST DATA 3 SA ST SA ST SA ST 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は別パケットによって使われているので,起こしても無駄ではなかった

先読み NoC : 適応型ルーティング (6/6) 2ホップ先にwakeup信号 Node degree d トポロジ 信号は何本必要か? Node degree d トポロジ チャネル当たり (d-1)^2本 ルータ当たり d(d-1)^2 本 Opt-y ルーティング 禁止ターンがない 何本必要か? チャネル当たり 7本 (N/S) チャネル当たり 7本 (E/W) ルータ当たり 28本 [松谷,ASPDAC’08] E/W方向への移動 N/S方向への移動

先読み NoC : 適応型ルーティング (6/6) West-first ルーティング 実際には何本必要か? 禁止ターンがある ルータ当たり 20本 N方向への移動 S方向への移動 (※) 他の turn-model では wakeup 信号の配線パターンは異なるが,本数は同じ W方向への移動 E方向への移動

発表の流れ Network-on-Chip (NoC) 既存の NoC アーキテクチャ 先読み NoC アーキテクチャ 評価 ルータのパワーゲーティング 既存の NoC アーキテクチャ トポロジ, ルーティング ルータアーキテクチャ 先読み NoC アーキテクチャ 固定型ルーティングの場合 適応型ルーティングの場合 評価 制御信号の複雑さ 通信遅延とスループット性能 Wakeup!

評価: 制御信号の複雑さ (1/2) Wakeup 信号 2ホップ先に送信 ネットワークで全体で制御信号は何本必要か? E/W方向への移動 N/S方向への移動 表: 様々なネットワークサイズにおける wakeup 信号の数 k x k 4 x 4 8 x 8 16 x 16 Dimension-order 12k^2 100 580 2,692 West-first 20k^2 170 970 4,490 Opt-y 28k^2 240 1,360 6,288 (※) West-first, North-last, Negative-first, Odd-even はすべて一緒

評価: 制御信号の複雑さ (2/2) k x k メッシュの配線量 L = 4w * k (k-1) * l w: リンク幅 (例えば,データ幅 64-bit + 制御信号 4-bit) l: 隣接ルータ間距離 (例えば, 1mm) 先読み機構による配線量の増加量 (p はwakeup 信号の数) Stateless 型は (2p * l), Stateful 型は (4p * l) 増える 表: 先読み機構 (wakeup 信号, nbusy 信号) による配線量の増加量 Next OSF 4 x 4 8 x 8 16 x 16 Dimension-order stateless 6.1% 7.6% 8.2% West-first 10.4% 12.7% 13.8% Opt-y 14.7% 17.9% 19.3% stateful 20.8% 25.5% 27.5% 29.4% 35.7% 38.5% 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) West-first (WF) No PG 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) West-first (WF) 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 (固定型) では, 先読みによってスループットの劣化を完全隠蔽

スループット: 先読み適応型 flexible 型 West first (WF) routing Inflexible(wake 4-cycle) Flexible (wake 4-cycle) Opt-y routing Original (wake 4-cycle) Flexible (wake 4-cycle) スループット vs. 通信遅延 スループット vs. 通信遅延 Inflexible型は性能劣化. Flexible型はほぼウェイクアップ遅延を隠蔽

スループット: 先読み適応型 stateful 型 West first (WF) routing Stateless(wake 4-cycle) Stateful (wake 4-cycle) Opt-y routing Stateless(wake 4-cycle) Stateful (wake 4-cycle) スループット vs. 通信遅延 スループット vs. 通信遅延 Uniform trafficでは両者に大差無し. 局所性があればStateful型有利

まとめ: 先読みルータアーキテクチャ ルータのパワーゲーティング 先読み固定型ルーティング 先読み適応型ルーティング 今後の課題 チャネル単位 ウェイクアップ遅延の影響 先読み固定型ルーティング ウェイクアップ遅延を完全に隠蔽 先読み適応型ルーティング Flexible 型によりウェイクアップ遅延をほぼ隠蔽 Stateless 型 vs. Stateful 型 今後の課題 ハードウェア実装 面積オーバヘッドの見積り Look-ahead ルーティングを応用 Wakeup!

ご清聴ありがとうございました