3. ネットワーク・オン・チップ (NoC)
メニーコアで高性能・低消費電力化を達成するには
低レイテンシ・高スループットな要素間の接続が必要
Network on Chip (NoC)
PE PE PE PE PE 計算コア R オンチップルータ
R R R R
オンチップルータがPE間の
PE PE PE PE パケット(データの塊)を宛先へ
順々に転送
R R R R
ü 通信の衝突の軽減
PE PE PE PE
→低レイテンシ
R R R R →高スループット
PE PE PE PE ü 高いスケーラビリティ
→多くのコアを接続して高性能
R R R R
Shinya Takamaeda-Y. Tokyo Tech 3
4. オンチップルータの基本構成
n 主に入力FIFO・アービター・クロスバーで構成される
l 総面積の60%程度をFIFOが占める
Head
Body
Body
Tail
n 転送単位: フリット (Flit: Flow Control Unit)
Packet
T B B H
l いくつかのフリットでパケットを構成 (list of flits)
FIFO Arbiter
PE PE PE PE
R R R R North North
PE PE PE PE
East East
R R R R
South South
PE PE PE PE
5x5 XBAR
R R R R
West West
PE PE PE PE
Core Core
R R R R
Shinya Takamaeda-Y. Tokyo Tech 4
5. オンチップルータの基本パイプライン構成
n 以下の6段をベースに最適化(通常は3段程度)
l IB (Input Buffer): 隣接ルータからのフリットを入力FIFOに格納
l RC (Routing Computation): 宛先情報を元に進行方向を計算
l VA (Virtual Channel Allocation): 進行方向の仮想チャネルを確保
l SA (Switch Allocation): 進行方向へのスイッチ経路を確保
l ST (Switch Traversal): スイッチをフリットが通過
l LT (Link Traversal): ルータ間のリンクをフリットが通過
n 例) 3つのルータをパケット(4フリット)が通過
Packet
(list of flits) T B B H Router 1 Router 2 Router 3
Router 1 Router 2 Router 3
HEAD IB RC VA SA ST LT IB RC VA SA ST LT IB RC VA SA ST LT
BODY 0 IB SA ST LT IB SA ST LT IB SA ST LT
BODY 1 IB SA ST LT IB SA ST LT IB SA ST LT
TAIL IB SA ST LT IB SA ST LT IB SA ST LT
t Shinya Takamaeda-Y. Tokyo Tech 5
8. 実装:並列化
n ネットワーク空間をコア毎に領域分割
l 2Dステンシル計算のように分割・並列実行
l 袖領域のデータを通信し共有
• 隣接ルータの入出力信号(フリット・フロー制御)
PE PE PE PE PE PE PE PE
R R R R R R R R
PE PE PE PE PE PE PE PE
R R R R R R R R
PE PE PE PE PE PE PE PE
R R R R R R R R
PE PE PE PE PE PE PE PE
R R R R R R R R
Shinya Takamaeda-Y. Tokyo Tech 8
13. まとめ
n X10を用いたネットワークオンチップの
並列シミュレータを実装
l 4コア/8スレッドのCPU上で
2Dメッシュ・4096ノードのNoCをシミュレーションした場合
1コアに対して2.65倍の速度向上を達成
FIFO Arbiter
PE PE PE PE
R R R R North North
PE PE PE PE
East East
R R R R
South South
PE PE PE PE
5x5 XBAR
R R R R
West West
PE PE PE PE
Core Core
R R R R
Shinya Takamaeda-Y. Tokyo Tech 13