1 / 38

メニーコアにおけるタスクの移動を 支援する On-chip micro mobility プロトコル

メニーコアにおけるタスクの移動を 支援する On-chip micro mobility プロトコル. 松谷 宏紀 (慶大) 鯉渕 道紘 (NII) 天野 英晴 (慶大).  東大. 半導体プロセスの進歩により …. マルチコア・プロセッサ バス結合 E.g., ARM AMBA. PU. PU. PU. Cache. Cache. Cache. × コア数が増えるとバスがボトルネック. 半導体プロセスの進歩により …. マルチコア・プロセッサ バス結合 E.g., ARM AMBA. メニーコア・プロセッサ

zulema
Download Presentation

メニーコアにおけるタスクの移動を 支援する On-chip micro mobility プロトコル

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. メニーコアにおけるタスクの移動を 支援するOn-chip micro mobility プロトコル 松谷 宏紀 (慶大) 鯉渕 道紘 (NII) 天野 英晴 (慶大)  東大

  2. 半導体プロセスの進歩により… • マルチコア・プロセッサ • バス結合 • E.g., ARM AMBA PU PU PU Cache Cache Cache ×コア数が増えるとバスがボトルネック

  3. 半導体プロセスの進歩により… • マルチコア・プロセッサ • バス結合 • E.g., ARM AMBA • メニーコア・プロセッサ • スイッチ (ルータ) 結合 • Network-on-Chip (NoC) PU PU PU PU PU PU PU PU PU PU PU PU Cache Cache Cache Cache Cache Cache Cache Cache Cache Cache Cache Cache ×コア数が増えるとバスがボトルネック

  4. 半導体プロセスの進歩により… • マルチコア・プロセッサ • バス結合 • E.g., ARM AMBA • メニーコア・プロセッサ • スイッチ (ルータ) 結合 • Network-on-Chip (NoC) PU PU PU Cache Cache Cache R R R R R R R R R ×コア数が増えるとバスがボトルネック

  5. メニーコアの問題点: 負荷の集中 • アプリの実行 • 並列化による負荷分散 (理想) • 逐次的な処理も多い (現実) • 負荷の集中 • 局所的な温度上昇 • リーク電力の急増 アプリケーション (MPEG, AES, …) Task Task Task Task

  6. (参考) 温度とリーク電力 • OpenSPARC T1 • 8-core SPARC • 64-bit • 1-core SPARC を合成 • キャッシュ無し • Design Comipler • 温度 25C, 75C, 125C • 200 MHz • プロセスライブラリ • Nangate 45nm FreePDK • ASU 45nm PTM ベース • 温度を変えて再キャラクタライズ • LibertyNCX & HSPICE Core Core Core Core L2 $ Core Crossbar SW L2 $ Core Core Core L2 $ L2 $ Sun T1(コア8個,各コア4スレッド) [Kongetira, micro’05]

  7. (参考) 温度とリーク電力 • OpenSPARC T1 • 8-core SPARC • 64-bit • 1-core SPARC を合成 • キャッシュ無し • Design Comipler • 25C, 75C, 125C • 200 MHz • プロセスライブラリ • Nangate 45nm FreePDK • ASU 45nm PTM ベース • 温度を変えてキャラクタライズ • LibertyNCX & HSPICE Core Core Core Core L2 $ 温度が高くなるとリークが増加 Core Crossbar SW L2 $ Core Core Core L2 $ L2 $ Sun T1(コア8個,各コア4スレッド) [Kongetira, micro’05]

  8. メニーコアの課題: 負荷の集中 • アプリの実行 • 並列化による負荷分散 (理想) • 逐次的な処理も多い (現実) • 負荷の集中 • 局所的な温度上昇 • リーク電力の急増 アプリケーション (MPEG, AES, …) Task Task Task Task

  9. メニーコアの課題: 負荷の集中 • アプリの実行 • 並列化による負荷分散 (理想) • 逐次的な処理も多い (現実) • 負荷の集中 • 局所的な温度上昇 • リーク電力の急増 • Power density 均一化 • 負荷の分散 • タスクの動的な移動 Task Task

  10. メニーコアの課題: 負荷の集中 • アプリの実行 • 並列化による負荷分散 (理想) • 逐次的な処理も多い (現実) • 負荷の集中 • 局所的な温度上昇 • リーク電力の急増 • Power density 均一化 • 負荷の分散 • タスクの動的な移動 Task

  11. メニーコアの課題: 負荷の集中 • アプリの実行 • 並列化による負荷分散 (理想) • 逐次的な処理も多い (現実) • 負荷の集中 • 局所的な温度上昇 • リーク電力の急増 • Power density 均一化 • 負荷の分散 • タスクの動的な移動 Task

  12. メニーコアの課題: 負荷の集中 • アプリの実行 • 並列化による負荷分散 (理想) • 逐次的な処理も多い (現実) • 負荷の集中 • 局所的な温度上昇 • リーク電力の急増 • Power density 均一化 • 負荷の分散 • タスクの動的な移動 Task

  13. タスクの移動に伴う問題点 • 着信可能性 • Task A がどのコアの上で動作していても “Task A” でアクセス可能 • 移動透過性 • Task A が動的に移動しても通信が途切れない • Task A の移動前 • 他のタスクと通信中 • Task A の移動後 • 今まで Task A と通信してたタスクたちはどうする? TaskA ??? Task A NoC におけるタスクマイグレーション  Mobile IP を使ってみては?

  14. Mobile IP (Mobile IPv6) 移動体通信のための IP protocol の拡張 RFC 3344 (Mobile IPv4), RFC 3775 (Mobile IPv6) 移動するノード (MN) がどのネットワークに接続していても, 同じ IP アドレスで識別, 通信できる 用語のまとめ Mobile node (MN):      移動するノード Corresponding node (CN): MN と通信するノード Home agent (HA):   MNが外部にいる際のプロキシ Mobile IP とは? 2001:xxx::11 2001:ooo::/64 2001:xxx::/64

  15. Mobile IP (Mobile IPv6) 移動体通信のための IP protocol の拡張 RFC 3344 (Mobile IPv4), RFC 3775 (Mobile IPv6) 移動するノード (MN) がどのネットワークに接続していても, 同じ IP アドレスで識別, 通信できる 用語のまとめ Mobile node (MN):      移動するノード Corresponding node (CN): MN と通信するノード Home agent (HA):   MNが外部にいる際のプロキシ Mobile IP とは? 移動先ネットワーク (2001:ooo::/64) においても もとの IP アドレス (2001:xxx::11) でアクセス可能 2001:xxx::11 2001:ooo::/64 2001:xxx::/64

  16. 発表の流れ: On-Chip Micro Mobility • メニーコア • 多数のプロセッサ + スイッチ結合 • タスクの動的な移動 • Power density の均一化 • タスクを別のコアへ移動させる • On-chip micro mobility プロトコル • タスクの移動透過性 + 着信可能性 • Mobile IP を単純化 • On-chip micro mobility の設計 • NI としてハードウェア化 • 予備評価

  17. Micro mobility: 利用のシナリオ • Task A @ Tile 3 • Task B と通信中 • Tile 3 から Tile 5 へ移動 • Task A @ Tile 5 • Micro mobility によって • Task B との通信を継続 Corresponding Task (CT) Tile 0 Tile 1 Tile 2 TaskB Tile 3 Tile 4 Tile 3 Tile 5 Tile 5 TaskA TaskA Mobile Task (MT) Tile 6 Tile 7 Tile 8 Mobility によって MT の物理アドレスが変化しても CT は通信を継続

  18. Micro mobility: Mobile Task @ Home • Home • 各 MT はどこかのタイル を “Home” とする • Home Agent (HA) • 各 MT の home ルータに置くプロキシ • HA の仕事 • MT の現在物理アドレス (Care-of-Address, CoA) を管理 • MT 宛てのパケットを CoA へ転送 • Task A @ Tile 3(home) • Task B との通信に Micro mobility を使う必要なし Tile 0 Tile 1 Tile 2 TaskB Tile 3 Tile 4 Tile 5 TaskA Tile 6 Tile 7 Tile 8 HA for Task A MT が home にいるとき, Corresponding Task (Task B) と直接通信

  19. Micro mobility: Mobile Task の移動 • タスク移動前 • MT は HA に Binding Update (BU) を送信 • MT の移動先アドレス (CoA) を通知 • タスク移動後 • MT は HA に Binding Ack (BA) を送信 • MT の移動完了を通知 • Task A @ Tile 0 • Tile 2 に移動前 • 新しい CoA = Tile 2 Tile 0 Tile 1 Tile 2 TaskA タスクの移動中 (MT 宛てのパケットは HA がバッファリングする) Tile 3 Tile 4 Tile 5 BU (CoA = Tile 2) Tile 6 Tile 7 Tile 8 HA for Task A Home Agent (HA) は, Mobile Task (MT) の現在位置 (CoA) を管理

  20. Micro mobility: Mobile Task の移動 • タスク移動前 • MT は HA に Binding Update (BU) を送信 • MT の移動先アドレス (CoA) を通知 • タスク移動後 • MT は HA に Binding Ack (BA) を送信 • MT の移動完了を通知 • Task A @ Tile 2 • Tile 2 に移動後 • 移動完了の通知 (BA) Tile 0 Tile 1 Tile 2 TaskA タスクの移動中 (MT 宛てのパケットは HA がバッファリングする) Tile 3 Tile 4 Tile 5 BA (CoA = Tile 2) Tile 6 Tile 7 Tile 8 HA for Task A Home Agent (HA) は, Mobile Task (MT) の現在位置 (CoA) を管理

  21. Micro mobility: 移動後 CT との通信 • CT から MT へ転送 • CT は MT の現在位置を考えずに • MT の homeである Tile 3 にパケットを送信 • HA による転送 • MT 宛てパケットは Tile 3 に到達 • これを現在の CoA である Tile 2 へ転送 • Task B から A への転送 • 常に Tile 3 宛てに送信 • HA にて CoA 宛てに転送 Tile 0 Tile 1 Tile 2 TaskA Tile 3 Tile 4 Tile 5 Tile 6 Tile 7 Tile 8 Packet to Task A TaskB MT 宛てのパケットは常に HA を経由  スループットのボトルネック!

  22. Micro mobility: Route optimization (RO) • CT から MT へ転送 (1) • HA にて中継される • RO されていない • CT への BU 送信 • RO されていないパケットを受信したら • 送り主 (CT) に CoA 通知 • CT から MT へ転送 (2) • 直接, MT の CoA に転送 • Task A (MT) において, • RO されていないパケットを受信 Tile 0 Tile 1 Tile 2 TaskA Tile 3 Tile 4 Tile 5 Tile 6 Tile 7 Tile 8 Packet to Task A TaskB

  23. Micro mobility: Route optimization (RO) • CT から MT へ転送 (1) • HA にて中継される • RO されていない • CT への BU 送信 • RO されていないパケットを受信したら • 送り主 (CT) に CoA 通知 • CT から MT へ転送 (2) • 直接, MT の CoA に転送 • Task A (MT) において, • 送り主 (Task B) に BU を送信 Tile 0 Tile 1 Tile 2 TaskA Tile 3 Tile 4 Tile 5 Tile 6 Tile 7 Tile 8 BU (CoA = Tile 2) TaskB

  24. Micro mobility: Route optimization (RO) • CT から MT へ転送 (1) • HA にて中継される • RO されていない • CT への BU 送信 • RO されていないパケットを受信したら • 送り主 (CT) に CoA 通知 • CT から MT へ転送 (2) • 直接, MT の CoA に転送 • Task A (MT) において, • Task B に BU を送信 • 以後, Task B と直接通信 Tile 0 Tile 1 Tile 2 TaskA Tile 3 Tile 4 Tile 5 Tile 6 Tile 7 Tile 8 Packet to Task A TaskB Task A がさらに移動する場合は, CT の bindingを消去する必要あり

  25. Micro mobility: Route optimization (RO) • RO されていない通信 • Task B  Task A • 必ず HA を経由 • RO された通信 • Task B  Task A • HA を経由せず直接通信 Tile 0 Tile 1 Tile 2 Tile 0 Tile 1 Tile 2 TaskA TaskA Tile 3 Tile 4 Tile 5 Tile 3 Tile 4 Tile 5 Bottleneck! Tile 6 Tile 7 Tile 8 Tile 6 Tile 7 Tile 8 Packet to Task A Packet to Task A TaskB TaskB Route optimization (RO) することでスループット性能を大幅に改善

  26. Micro mobility: HA 経由の通信 (補足) • RO されていない通信 • MT 移動後, 最初の通信は必ず HA 経由になる (その後 RO) • HA 経由の通信により禁止ターンが生じる  デッドロック Tile 0 Tile 1 Tile 2 Tile 0 Tile 1 Tile 2 TaskA TaskA 仮想チャネルの切替え Tile 3 Tile 4 Tile 5 Tile 3 Tile 4 Tile 5 禁止ターン Tile 6 Tile 7 Tile 8 Tile 6 BU (CoA=Tile 2) Tile 7 Tile 8 Packet to Task A TaskB TaskB CTからHA は VC0, HA から MTは VC1を使用  デッドロックフリー

  27. On-chip network mobility • 階層構造を持つトポロジ • Fat Tree • Fat H-Tree • Concentrated Mesh クラスタ構造 (近傍同士はクロスバで密に結合)

  28. On-chip network mobility • 階層構造を持つトポロジ • Fat Tree • Fat H-Tree • Concentrated Mesh • クラスタ単位のタスク移動 • Micro mobility を拡張 • クラスタ (network) 単位でタスクが移動 クラスタ構造 (近傍同士はクロスバで密に結合) On-chip network mobility プロトコルについては予稿集をご覧下さい

  29. 発表の流れ: On-Chip Micro Mobility • メニーコア • 多数のプロセッサ + スイッチ結合 • タスクの動的な移動 • Power density の均一化 • タスクを別のコアへ移動させる • On-chip micro mobility プロトコル • タスクの移動透過性 + 着信可能性 • Mobile IP を単純化 • On-chip micro mobility の設計 • NI としてハードウェア化 • 予備評価 R R R R R R R R R Network interface (NI) は, コアとルータのインタフェイス

  30. Wormhole ルータの構造 • 5入力5出力の wormhole ルータ; NI 付き ARBITER VC0 X+ X+ VC1 X- X- Y+ Y+ Y- Y- NI NI 5x5 XBAR パケット生成 コア (プロセッサ & キャッシュ) Network interface (NI)

  31. Network interface (NI) の構造 • 5入力5出力の wormhole ルータ; NI 付き ARBITER パケット化 脱パケット化 (ヘッダ付与) (ヘッダ削除) Network interface (NI) Core Core

  32. Micro mobility の設計: CT 側の機能 • 5入力5出力の wormhole ルータ; NI 付き ARBITER MT アドレスと実際のアドレス (CoA) の対応付け表 N(log2N + 1)-bit のビットマップ コアから MT 宛てのパケットを受け取ったら, BC をひいて対応する CoA 宛てに変換 Binding update list (BUL) BU を送った CT のリスト Binding cache (BC) MT の現在アドレス (CoA) Network interface (NI) CTがBCを持たないと, MTとの通信はHA経由の非最短経路になる Core Core

  33. Micro mobility の設計: MT 側の機能 • 5入力5出力の wormhole ルータ; NI 付き ARBITER N-bit のビットマップ (Nはノード数) BU を送ったCT は 1 Binding update list (BUL) BU を送った CT のリスト Binding cache (BC) MT は移動直前に BUL 内の CT に対して 現在の CoA を無効化 (BU 送信) する Network interface (NI) MTがBULを持たないと,移動する度に HA経由の非最短経路が発生 Core Core

  34. Micro Mobility の設計: HA 側の機能 • 5入力5出力の wormhole ルータ; NI 付き ARBITER 受信したパケットが MT 宛てなら,現在の CoA に転送 (VC の切替が発生) Binding update list (BUL) BU を送った CT のリスト Binding cache (BC) MT の現在アドレス (CoA) Network interface (NI) MT 宛てパケットをMTの代わりに受信し, MTの現在の CoA へ転送 Core Core

  35. 予備評価: Route optimization の効果 • Task B から Task A • RO しない経路(HA 経由) • RO する経路 (直接) • ネットワーク環境 • k x k mesh • MT の HA が一様に分散 • 平均ホップ数 • RO しないと 2倍に増加 • 遅延・消費電力が悪化 • スループット • RO しないと最悪 1/2 に Tile 0 Tile 1 Tile 2 TaskA Tile 3 Tile 4 Tile 5 Tile 6 Tile 7 Tile 8 TaskB

  36. 予備評価: BC & BUL のハードウェアコスト • Binding の管理 • Binding cache (BC) • Binding update list (BUL) • 無いと RO できない • ルータのハードウェア量 • バッファサイズが支配的 • (p v w d) bit • BC と BUL を持たせるとどれだけ増えるか? • ネットワーク環境 • Nノード (k x k mesh) • 各ノードが通信相手   すべての CoA を管理 • BC のハードウェア量 • 通信相手の CoA を保持 • N (log2N +1) bit • BUL のハードウェア量 • BU 送信済みの CT • N bit 一度に通信する通信相手は少ない  BC サイズを減らせる ポート数 p=5, 仮想チャネル数 v=1 データ幅 w=64, FIFO深さ d=4 N=16 のときオーバヘッドは 3.8% 増, N=64 のとき 20.0% 増, …

  37. まとめ: On-Chip Micro Mobility • メニーコアにおけるタスクの動的な移動 • Power density の均一化 • タスクを別のコアへ移動させる • On-chip micro mobility プロトコル • タスクの移動透過性 + 着信可能性 • Mobile IP を単純化 • On-chip micro mobility の設計 • NI としてハードウェア化 • 予備評価 • 今後の課題 • Micro mobility をサポートした NI の実装 (45nm CMOS) • OpenSPARC T1 を用いた温度とリーク電力の評価

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

More Related