メニーコアにおけるタスクの移動を 支援する on-chip micro mobility ...

38
メメメメメメメメメメメメメメメメ メメメメ On-chip micro mobility メメ メメメ 松松 松松 ( 松松 ) 松松 松松 ( NII ) 松松 松松 ( 松松 ) 松松

Upload: zulema

Post on 08-Jan-2016

51 views

Category:

Documents


13 download

DESCRIPTION

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

TRANSCRIPT

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

メニーコアにおけるタスクの移動を 支援する

On-chip micro mobility プロトコル

松谷 宏紀 ( 慶大 )

鯉渕 道紘 ( NII )

天野 英晴 ( 慶大 )

東大

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

半導体プロセスの進歩により…• マルチコア・プロセッサ

– バス結合– E.g., ARM AMBA

PU

Cache

PU

Cache

PU

Cache

× コア数が増えるとバスがボトルネック

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

半導体プロセスの進歩により…• マルチコア・プロセッサ

– バス結合– E.g., ARM AMBA

• メニーコア・プロセッサ– スイッチ ( ルータ ) 結合– Network-on-Chip (NoC)

PU

Cache

PU

Cache

PU

Cache

× コア数が増えるとバスがボトルネック

PU

Cache

PU

Cache

PU

Cache

PU

Cache

PU

Cache

PU

Cache

PU

Cache

PU

Cache

PU

Cache

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

半導体プロセスの進歩により…• マルチコア・プロセッサ

– バス結合– E.g., ARM AMBA

• メニーコア・プロセッサ– スイッチ ( ルータ ) 結合– Network-on-Chip (NoC)

PU

Cache

PU

Cache

PU

Cache

× コア数が増えるとバスがボトルネック

R R R

R R R

R R R

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

メニーコアの問題点 : 負荷の集中

• アプリの実行– 並列化による負荷分散 ( 理想 )– 逐次的な処理も多い ( 現実 )

• 負荷の集中– 局所的な温度上昇– リーク電力の急増

TaskTaskTask

アプリケーション (MPEG, AES, …)

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

( 参考 ) 温度とリーク電力• 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

Sun T1 ( コア 8 個 , 各コア 4 スレッド )

Core

Core

Core

Core Core

Core Core

Core L2 $

L2 $

L2 $L2 $

Crossbar SW

[Kongetira, micro’05]

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

( 参考 ) 温度とリーク電力• 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

温度が高くなるとリークが増加

Sun T1 ( コア 8 個 , 各コア 4 スレッド )

Core

Core

Core

Core Core

Core Core

Core L2 $

L2 $

L2 $L2 $

Crossbar SW

[Kongetira, micro’05]

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

メニーコアの課題 : 負荷の集中

• アプリの実行– 並列化による負荷分散 ( 理想 )– 逐次的な処理も多い ( 現実 )

• 負荷の集中– 局所的な温度上昇– リーク電力の急増

TaskTaskTask

アプリケーション (MPEG, AES, …)

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

メニーコアの課題 : 負荷の集中

• アプリの実行– 並列化による負荷分散 ( 理想 )– 逐次的な処理も多い ( 現実 )

• 負荷の集中– 局所的な温度上昇– リーク電力の急増

• Power density 均一化– 負荷の分散– タスクの動的な移動

TaskTask

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

メニーコアの課題 : 負荷の集中

• アプリの実行– 並列化による負荷分散 ( 理想 )– 逐次的な処理も多い ( 現実 )

• 負荷の集中– 局所的な温度上昇– リーク電力の急増

• Power density 均一化– 負荷の分散– タスクの動的な移動

Task

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

メニーコアの課題 : 負荷の集中

• アプリの実行– 並列化による負荷分散 ( 理想 )– 逐次的な処理も多い ( 現実 )

• 負荷の集中– 局所的な温度上昇– リーク電力の急増

• Power density 均一化– 負荷の分散– タスクの動的な移動

Task

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

メニーコアの課題 : 負荷の集中

• アプリの実行– 並列化による負荷分散 ( 理想 )– 逐次的な処理も多い ( 現実 )

• 負荷の集中– 局所的な温度上昇– リーク電力の急増

• Power density 均一化– 負荷の分散– タスクの動的な移動

Task

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

タスクの移動に伴う問題点• Task A の移動前

– 他のタスクと通信中• Task A の移動後

– 今まで Task A と通信してたタスクたちはどうする ?

Task A ???

Task A

• 着信可能性– Task A がどのコアの上で動作していても

“ Task A” でアクセス可能

• 移動透過性– Task A が動的に移動しても通信が途切れない

• 着信可能性– Task A がどのコアの上で動作していても

“ Task A” でアクセス可能

• 移動透過性– Task A が動的に移動しても通信が途切れない

NoC におけるタスクマイグレーション Mobile IP を使ってみては ?

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

Mobile IP とは ?• 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 が外部にいる際のプ

ロキシ

2001:xxx::/64 2001:ooo::/64

2001:xxx::11

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

Mobile IP とは ?• 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 が外部にいる際のプ

ロキシ

2001:xxx::/64 2001:ooo::/64

2001:xxx::11

移動先ネットワーク (2001:ooo::/64) においても

もとの IP アドレス (2001:xxx::11) でアクセス可能

移動先ネットワーク (2001:ooo::/64) においても

もとの IP アドレス (2001:xxx::11) でアクセス可能

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

発表の流れ : On-Chip Micro Mobility

• メニーコア– 多数のプロセッサ + スイッチ結合

• タスクの動的な移動– Power density の均一化– タスクを別のコアへ移動させる

• On-chip micro mobility プロトコル– タスクの移動透過性 + 着信可能性– Mobile IP を単純化

• On-chip micro mobility の設計– NI としてハードウェア化– 予備評価

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

Micro mobility: 利用のシナリオ

• Task A @ Tile 3– Task B と通信中– Tile 3 から Tile 5 へ移

• Task A @ Tile 5– Micro mobility によって– Task B との通信を継続

Task A

Tile 0 Tile 1 Tile 2

Tile 3 Tile 4 Tile 5

Tile 6 Tile 7 Tile 8

Task B

Tile 5

Task A

Tile 3

Mobile Task (MT)

Corresponding Task (CT)

Mobility によって MT の物理アドレスが変化しても CT は通信を継続

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

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

Tile 3 Tile 4

Tile 6 Tile 7 Tile 8

Task B

MT が home にいるとき , Corresponding Task (Task B) と直接通信

Tile 5

Task A

HA for Task A

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

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

Tile 3 Tile 4

Tile 6 Tile 7 Tile 8

Home Agent (HA) は , Mobile Task (MT) の現在位置 (CoA) を管理

Tile 5

Task A

HA for Task A

タスクの移動中(MT 宛てのパケットは HA がバッファリングする ) BU (CoA = Tile

2)

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

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

Tile 3 Tile 4

Tile 6 Tile 7 Tile 8

Home Agent (HA) は , Mobile Task (MT) の現在位置 (CoA) を管理

Tile 5

Task A

HA for Task A

タスクの移動中(MT 宛てのパケットは HA がバッファリングする )

BA (CoA = Tile 2)

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

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

Tile 3 Tile 4

Tile 6 Tile 7 Tile 8

MT 宛てのパケットは常に HA を経由 スループットのボトルネック !

Tile 5

Task A

Task B

Packet to Task A

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

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

Tile 3 Tile 4

Tile 6 Tile 7 Tile 8

Tile 5

Task A

Task B

Packet to Task A

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

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

Tile 3 Tile 4

Tile 6 Tile 7 Tile 8

Tile 5

Task A

Task B

BU (CoA = Tile 2)

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

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

Tile 3 Tile 4

Tile 6 Tile 7 Tile 8

Tile 5

Task A

Task B

Packet to Task A

Task A がさらに移動する場合は , CT の binding を消去する必要あり

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

Micro mobility: Route optimization (RO)

• RO されていない通信– Task B Task A– 必ず HA を経由

• RO された通信– Task B Task A– HA を経由せず直接通

信Tile 0 Tile 1 Tile 2

Tile 3 Tile 4

Tile 6 Tile 7 Tile 8

Tile 5

Task A

Task B

Packet to Task A

Tile 0 Tile 1 Tile 2

Tile 3 Tile 4

Tile 6 Tile 7 Tile 8

Tile 5

Task A

Task B

Packet to Task A

Bottleneck!

Route optimization (RO) することでスループット性能を大幅に改善

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

Micro mobility: HA 経由の通信 ( 補足 )

• RO されていない通信– MT 移動後 , 最初の通信は必ず HA 経由になる ( その

後 RO)– HA 経由の通信により禁止ターンが生じる デッドロ

ック Tile 0 Tile 1 Tile 2

Tile 3 Tile 4

Tile 6 Tile 7 Tile 8

Tile 5

Task A

Task B

BU (CoA=Tile 2)

Tile 0 Tile 1 Tile 2

Tile 3 Tile 4

Tile 6 Tile 7 Tile 8

Tile 5

Task A

Task B

Packet to Task A

CT から HA は VC0, HA から MT は VC1 を使用 デッドロックフリー

禁止ターン仮想チャネルの切替え

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

On-chip network mobility• 階層構造を持つトポロ

ジ– Fat Tree– Fat H-Tree– Concentrated Mesh

クラスタ構造 ( 近傍同士はクロスバで密に結合 )

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

On-chip network mobility• 階層構造を持つトポロ

ジ– Fat Tree– Fat H-Tree– Concentrated Mesh

• クラスタ単位のタスク移動– Micro mobility を拡張– クラスタ (network) 単

位でタスクが移動

クラスタ構造 ( 近傍同士はクロスバで密に結合 )

On-chip network mobility プロトコルについては予稿集をご覧下さい

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

発表の流れ : 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) は , コアとルータのインタフェイス

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

Wormhole ルータの構造• 5入力 5出力の wormhole ルータ ; NI 付き

5x5 XBAR

ARBITERVC0

X+

X-

Y+

Y-

NI

X+

X-

Y+

Y-

NI

VC1

コア ( プロセッサ & キャッシュ )

Network interface (NI)

パケット生成

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

Network interface (NI) の構造• 5入力 5出力の wormhole ルータ ; NI 付き

ARBITER

Core Core

Network interface (NI)

パケット化(ヘッダ付与 )

脱パケット化(ヘッダ削除 )

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

Micro mobility の設計 : CT 側の機能

• 5入力 5出力の wormhole ルータ ; NI 付き

ARBITER

Core Core

Network interface (NI)

Binding update list (BUL)

Binding cache (BC)

BU を送った CT のリスト

MT アドレスと実際のアドレス (CoA) の対応付け表

N(log2N + 1)-bit のビットマップ

コアから MT 宛てのパケットを受け取ったら , BC をひいて対応する

CoA 宛てに変換

CT が BC を持たないと , MT との通信は HA 経由の非最短経路になる

MT の現在アドレス (CoA)

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

Micro mobility の設計 : MT 側の機能

• 5入力 5出力の wormhole ルータ ; NI 付き

ARBITER

Core Core

Network interface (NI)

Binding update list (BUL)

Binding cache (BC)

BU を送った CT のリスト

N-bit のビットマップ (N はノー

ド数 )

BU を送った CT は 1

MT は移動直前に BUL 内の CT に対して

現在の CoA を無効化 (BU 送信 ) する

MT が BUL を持たないと , 移動する度に HA 経由の非最短経路が発生

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

Micro Mobility の設計 : HA 側の機能

• 5入力 5出力の wormhole ルータ ; NI 付き

ARBITER

Core Core

Network interface (NI)

Binding update list (BUL)

Binding cache (BC)

BU を送った CT のリスト

受信したパケットが MT 宛てなら , 現在の CoA

に転送  (VC の切替が発生 )

MT 宛てパケットを MT の代わりに受信し , MT の現在の CoA へ転送

MT の現在アドレス (CoA)

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

予備評価 : 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

Tile 3 Tile 4

Tile 6 Tile 7 Tile 8

Tile 5

Task A

Task B

NH

bCideal

3

2kH

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

予備評価 : 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 (log2 N +1) bit

• BUL のハードウェア量– BU 送信済みの CT– N bit

N=16 のときオーバヘッドは 3.8% 増 , N=64 のとき 20.0% 増 , …

ポート数 p=5, 仮想チャネル数 v=1

データ幅 w=64, FIFO深さ d=4

一度に通信する通信相手は少ない BC サイズを

減らせる

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

まとめ : On-Chip Micro Mobility

• メニーコアにおけるタスクの動的な移動– Power density の均一化– タスクを別のコアへ移動させる

• On-chip micro mobility プロトコル– タスクの移動透過性 + 着信可能性– Mobile IP を単純化

• On-chip micro mobility の設計– NI としてハードウェア化– 予備評価

• 今後の課題– Micro mobility をサポートした NI の実装 (45nm CMOS)– OpenSPARC T1 を用いた温度とリーク電力の評価

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

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