修士論文 ネットワークオンチップの効率的な シ …...tokyo institute of...

89
Tokyo Institute of Technology Department of Computer Science ネットワークオンチップ シミュレーションに する : 26 1 大学院 12M38077

Upload: others

Post on 27-Jun-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

Tokyo Institute of TechnologyDepartment of Computer Science

修士論文

ネットワークオンチップの効率的な

シミュレーションに関する研究

指導教員: 吉瀬謙二准教授

平成 26年 1月

提出者

大学院情報理工学研究科計算工学専攻

12M38077 上野貴廣

Page 2: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な
Page 3: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

i

概要

計算機の構成において,CPUを1つのプロセッサコアにより構成するシングルコアと呼ばれる手法が長らく主流であった.計算機を支える半導体の集積技術は現在に至るまで,"ムーアの法則"に表されているような劇的な速度の発展を遂げた.かつては集積されるトランジスタを1つのコアの性能向上の為に用いてきたが,シングルコアによる性能向上は物

理的な限界を迎え,2000年前後には複数個のプロセッサコアにより CPUを構成するマルチコアが出現し,シングルコアとは異なる方向性での性能向上が主流になった.今日,一

般的な計算機はもちろん,スマートフォンやタブレットと言った機器の CPU ですら今はマルチコアのものが大部分を占めている.

今後も,半導体技術の成長に伴い CPUのコアの数は増加し続け,いずれは現在のマルチコアからメニーコアと呼ばれる大規模なコアで構成される CPU が主流になっていくことが予想される.しかし,n個のコアを用いて CPUを構成しても,元のコアのn倍の性能には成り得ず,限界が存在する.メニーコアにおいて,コア数に見合うだけの性能向上を達

成する上で,いくつかの課題が存在する.

その一つが,処理を行う多数のコア同士で情報をやりとりするための通信路,ネット

ワークオンチップである.多数のコアを効率的に利用するためには,より高性能なネット

ワークオンチップが必要不可欠である.CPUに集積されるコアの数は今後もさらなる上昇が見込まれ,それに伴って CPU の性能におけるネットワークオンチップの重要性がより大きくなるだろう.よって,高性能な CPU を設計するためにはネットワークオンチップの研究が欠かせない,しかし大規模な数のプロセッサコアを実際にハードウェアで用意し,

実験を行うことは容易ではなく,相当な時間とコストを要することが見込まれる.

本研究では,ネットワークオンチップのシミュレーションを容易に,より高速に行うこ

とを目的として,ネットワークオンチップシミュレータ SimNoCを実装する.記述はプログラミング言語C++により行い,既存のネットワークオンチップシミュレータとの比較

を行うことで,その信頼性と有用性を明らかにする.実験の結果,本シミュレータが効率

的にネットワークオンチップのシミュレーションを行えることが明らかになった.

Page 4: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な
Page 5: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

iii

目次

目次 iii

図目次 v

表目次 ix

List of Listings xi

第 1章 序論 11.1 はじめに . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11.2 本論文の構成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

第 2章 ネットワークオンチップ 32.1 ネットワークオンチップとは . . . . . . . . . . . . . . . . . . . . . . . . . 3

2.1.1 ネットワークオンチップの背景 . . . . . . . . . . . . . . . . . . . . 32.1.2 ネットワークオンチップのアーキテクチャ . . . . . . . . . . . . . . 4

2.2 ネットワークオンチップの詳細 . . . . . . . . . . . . . . . . . . . . . . . 72.2.1 パケット及びフリット . . . . . . . . . . . . . . . . . . . . . . . . . 72.2.2 トポロジ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.2.3 ルーティングアルゴリズム . . . . . . . . . . . . . . . . . . . . . . 102.2.4 決定性ルーティング . . . . . . . . . . . . . . . . . . . . . . . . . . 102.2.5 適応性ルーティング . . . . . . . . . . . . . . . . . . . . . . . . . . 122.2.6 パケットスイッチング . . . . . . . . . . . . . . . . . . . . . . . . . 132.2.7 フロー制御 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152.2.8 バーチャルチャネル . . . . . . . . . . . . . . . . . . . . . . . . . . 182.2.9 アービター・アロケータ . . . . . . . . . . . . . . . . . . . . . . . . 19

2.3 ルータ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

Page 6: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

目次 iv

2.3.1 インプットバッファルータ . . . . . . . . . . . . . . . . . . . . . . 212.3.2 その他のルータ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

第 3章 関連研究 253.1 ネットワークオンチップシミュレータ . . . . . . . . . . . . . . . . . . . . 25

3.1.1 ネットワークオンチップのシミュレーションとは . . . . . . . . . . 253.1.2 Noxim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

3.2 BookSim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263.2.1 BookSimの概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 263.2.2 BookSim2.0の実行 . . . . . . . . . . . . . . . . . . . . . . . . . . 273.2.3 BookSim2.0の構成 . . . . . . . . . . . . . . . . . . . . . . . . . . 28

第 4章 SimNoCの実装 374.1 SimNoCの概要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 374.2 SimNoCの実装 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

4.2.1 SimNoCのソフトウェアアーキテクチャ . . . . . . . . . . . . . . . 374.2.2 SimNoCのアーキテクチャ . . . . . . . . . . . . . . . . . . . . . . 394.2.3 トラフィックパターン . . . . . . . . . . . . . . . . . . . . . . . . . 41

4.3 SimNoCと BookSimの比較 . . . . . . . . . . . . . . . . . . . . . . . . . 41

第 5章 評価 435.1 動作検証 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43

5.1.1 評価環境 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435.1.2 信頼性の検証 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 445.1.3 実行速度の比較 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45

第 6章 結論 536.1 総論 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 536.2 今後の課題 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

謝辞 55

参考文献 57

付録 61

Page 7: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

v

図目次

2.1 全てのコア同士を結ぶ完全な結合網の例 . . . . . . . . . . . . . . . . . . . 42.2 メニーコアの例:4× 4コア . . . . . . . . . . . . . . . . . . . . . . . . . . 52.3 コア 5からコア 6への転送例 . . . . . . . . . . . . . . . . . . . . . . . . 62.4 コア 5からコア 15への転送例 . . . . . . . . . . . . . . . . . . . . . . . . 62.5 データの分割 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72.6 フリットの構成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82.7 二次元メッシュ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.8 二次元トーラス . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.9 二次元トーラスの実装 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92.10 三次元メッシュ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102.11 デッドロック . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112.12 次元順ルーティング . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122.13 次元順ルーティングで行われるターン . . . . . . . . . . . . . . . . . . . . 122.14 Store-and-forwardの移動例 . . . . . . . . . . . . . . . . . . . . . . . . . . 142.15 Wormholeの移動例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152.16 レイテンシの計算 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162.17 クレジットに基づいた制御の移動例 . . . . . . . . . . . . . . . . . . . . . 172.18 バーチャルチャネルの活用例 . . . . . . . . . . . . . . . . . . . . . . . . . 192.19 アービター . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202.20 PIMの例一回目の処理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212.21 PIMの例二回目の処理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212.22 Input-Buffer Routerのアーキテクチャ . . . . . . . . . . . . . . . . . . . . 222.23 Input-Buffer Routerのパイプライン処理 . . . . . . . . . . . . . . . . . . . 232.24 Speculative Routerのパイプライン処理 . . . . . . . . . . . . . . . . . . . 24

3.1 BookSim2.0のクラス図 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

Page 8: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

図目次 vi

3.2 BookSim2.0の部分クラス図・1 . . . . . . . . . . . . . . . . . . . . . . . 303.3 BookSim2.0の部分クラス図・2 . . . . . . . . . . . . . . . . . . . . . . . 313.4 バタフライネットワークの例:ネットワーク全体の形状が蝶に似ているこ

とからバタフライネットワークと呼ばれる.左の丸はノードからの出力,

右の丸はノードへの入力を表す.長方形は,2つの入力の内どちらかを選

択し,出力する比較器である.ノードの数を nとすると n2× log2 n個の比

較器を用いることで,全てのノードから全てのノードへ値を送信すること

が可能である.図の太線は実際に 0 番のノードの値を送ることのできる通信路を示す. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

3.5 ファットツリーの例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

4.1 SimNoCのクラス図 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40

5.1 バーチャルチャネル 4 本,4 フリットバッファ,1 パケット 8 フリット,RANDOM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

5.2 バーチャルチャネル 4 本,4 フリットバッファ,1 パケット 8 フリット,COMPLEMENT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47

5.3 バーチャルチャネル 4 本,8 フリットバッファ,1 パケット 8 フリット,RANDOM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48

5.4 バーチャルチャネル 4 本,8 フリットバッファ,1 パケット 8 フリット,COMPLEMENT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49

5.5 無負荷遅延時・RANDOM . . . . . . . . . . . . . . . . . . . . . . . . . . 515.6 無負荷遅延時・COMPLEMENT . . . . . . . . . . . . . . . . . . . . . . . 515.7 飽和時・RANDOM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 525.8 飽和時・COMPLEMENT . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

1 バーチャルチャネル 1 本,2 フリットバッファ,1 パケット 8 フリット,RANDOM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

2 バーチャルチャネル 1 本,2 フリットバッファ,1 パケット 8 フリット,COMPLEMENT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

3 バーチャルチャネル 1 本,4 フリットバッファ,1 パケット 8 フリット,RANDOM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64

4 バーチャルチャネル 1 本,4 フリットバッファ,1 パケット 8 フリット,COMPLEMENT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

5 バーチャルチャネル 1 本,8 フリットバッファ,1 パケット 8 フリット,RANDOM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

Page 9: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

vii

6 バーチャルチャネル 1 本,8 フリットバッファ,1 パケット 8 フリット,COMPLEMENT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67

7 バーチャルチャネル 4 本,2 フリットバッファ,1 パケット 8 フリット,RANDOM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

8 バーチャルチャネル 4 本,2 フリットバッファ,1 パケット 8 フリット,COMPLEMENT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

9 バーチャルチャネル 8 本,2 フリットバッファ,1 パケット 8 フリット,RANDOM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

10 バーチャルチャネル 8 本,2 フリットバッファ,1 パケット 8 フリット,COMPLEMENT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

11 バーチャルチャネル 8 本,4 フリットバッファ,1 パケット 8 フリット,RANDOM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

12 バーチャルチャネル 8 本,4 フリットバッファ,1 パケット 8 フリット,COMPLEMENT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

13 バーチャルチャネル 8 本,8 フリットバッファ,1 パケット 8 フリット,RANDOM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

14 バーチャルチャネル 8 本,8 フリットバッファ,1 パケット 8 フリット,COMPLEMENT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

Page 10: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な
Page 11: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

ix

表目次

4.1 SimNoCのファイル構成 . . . . . . . . . . . . . . . . . . . . . . . . . . . 384.2 BookSim2.0のファイル構成 . . . . . . . . . . . . . . . . . . . . . . . . . 39

5.1 比較実験のネットワーク条件 . . . . . . . . . . . . . . . . . . . . . . . . . 445.2 実行速度比較・無負荷遅延 . . . . . . . . . . . . . . . . . . . . . . . . . . 505.3 実行速度比較・スループット飽和 . . . . . . . . . . . . . . . . . . . . . . 505.4 参考・コンパイル時間 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

Page 12: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な
Page 13: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

xi

List of Listings

3.1 BookSim2.0の configファイルの例 . . . . . . . . . . . . . . . . . . . . . . 273.2 BookSim2.0の実行結果の例 . . . . . . . . . . . . . . . . . . . . . . . . . . 273.3 デバッグモード . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

Page 14: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な
Page 15: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

1

第 1章

序論

1.1 はじめに

1940 年代,John Vincent Atanasoff と Clifford Berry によって Atanasoff-Berry Com-puter(ABC)が,John William Mauchlyと John Presper Eckertによって ENIACが生み出され,John von Neumannによって電子式計算機の基礎が築き上げられた.以降 90年代末まで,計算機の CPUを1つのプロセッサコアにより構成する,シングルコアと呼ばれる手法が長らく主流であった.計算機を支える半導体の集積技術は現在に至るまで,"ムーアの法則"に表されるほどの劇的な速度で発展を遂げた.かつては集積されるトランジスタを1つのコアの性能向上の為に用いてきたが,シングルコアによる性能向上は物理的な限界を迎

えた.2000年前後には複数個のプロセッサコアにより CPUを構成するマルチコアが出現し,シングルコアとは異なるアプローチによる性能向上が主流になった.今日,一般的な

計算機だけでなくスマートフォンやタブレットと言った携帯機器の CPU においても,マルチコアプロセッサを備えているものが大部分を占めている.

今後も半導体技術の成長に伴い CPU のコアの数は増加し続け,いずれはマルチコアからメニーコアと呼ばれる大規模な数のコアによって構成される CPU が主流になっていくことが予想される.しかし,n個のコアを用いて CPUを構成しても,元のコアのn倍の性能には成り得ず,限界が存在する.メニーコアにおいて,コア数に見合うだけの性能向上

を達成するため,いくつかの課題が存在する.

その一つが,処理を行う多数のコア同士で情報をやりとりするための通信路,ネットワークオンチップである.多数のコアを効率的に利用するためには,より高性能なネットワー

クオンチップが必要不可欠である.CPUに集積されるコアの数は今後もさらなる上昇が見込まれ,それに伴って CPU の性能におけるネットワークオンチップの重要性がより大きくなると考えられる.よって,将来の高性能な CPU を設計するためにはネットワークオ

Page 16: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

Chapter 1 序論 2

ンチップの研究が重要であると言える.しかし大規模な数のプロセッサコアを実際にハー

ドウェアで実験できる環境を構築することは容易ではなく,相当な時間と費用を要するこ

とが見込まれる.

本研究では,ネットワークオンチップのシミュレーションを容易に,より効率的に行う

ことを目的として,ネットワークオンチップシミュレータ SimNoCを実装する.記述はプログラミング言語C++により行い,既存のネットワークオンチップシミュレータとの比

較を行うことで,その信頼性と有用性を明らかにする.また,本シミュレータが効率的に

ネットワークオンチップのシミュレーションを行えることが明らかにする.

1.2 本論文の構成

本論文の構成は次の通りである.2 章では,シミュレーションを行うネットワークオンチップの概要について述べる.3 章では,関連研究として SimNoC の比較対象であるBookSim2.0を含む,既存のネットワークオンチップシミュレータについて述べる.4章では,SimNoCの構成と実装について述べる.5章では,booksim1.0との比較により SimNoCを評価する.最後に 6章で本論文をまとめる.

Page 17: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

3

第 2章

ネットワークオンチップ

この章では,本論文のシミュレーションの対象であるネットワークオンチップ [1]について述べる.

2.1 ネットワークオンチップとは

2.1.1 ネットワークオンチップの背景

1つの CPUの中に複数のコアを搭載するマルチコアプロセッサは,現在生産されているCPUの主流であり広く普及している.シングルコアと呼ばれる従来のプロセッサでは半導体の技術の発展に伴い,より多く集積できるようになったトランジスタをその 1つのコアの機能拡張に充てることにより CPU の性能向上を実現させてきた.しかし周波数や回路規模が大きくなるに従って発熱,配線の遅延などといった問題が無視できなくなったため,

そのアプローチに陰りが見えた.そのため,周波数を上げすぎずに複数個のプロセッサコ

アによって CPUを構成するマルチコアが主流となった.複数個のプロセッサコアを集積することで,CPUの並列処理 [2]の性能は確かに向上するが,それは単純に集積したコア数倍の性能になるわけではない.すべてのプログラムか

ら,マルチコアの並列処理の性能を発揮できるだけの並列性を抽出できるとは限らないか

らである.そのような制約はあるものの,コア数が増えるにしたがって順調に性能向上を

達成してきた.そして,今後も社会の情報技術への依存度が大きくなるに従ってより高い

性能の計算機が求められ,コア数は数えられる程度のマルチコアから大規模なメニーコア

へとシフトしていくことが予想される.

しかし,コア数が多くなり規模が相当大きくなると通信網という新たな問題が生じる.

マルチコアプロセッサで処理を行うにはコア間の通信が不可欠である.例えば全てのコア

を一本のバスで接続すると仮定すると,あるコアとあるコアが通信している間は他のコア

Page 18: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

Chapter 2 ネットワークオンチップ 4

���� ����

���� ����

���� ����

�����

����

�����

��

���� ����

���� ����

���� ����

���� ����

�����

���

���

図 2.1 全てのコア同士を結ぶ完全な結合網の例

同士は全く通信を行うことができず,効率が悪い.

また,全てのコアとコアの組み合わせを単純にオンチップバスでつなぐ完全な結合網を

想定すると,nコアの場合,必要なバスの本数 Lは

  L = (n − 1) + (n − 2) + (n − 3) +… =n(n − 1)

2(2.1)

となる.例えば図??のようにこれが 2コアならば 1本,4コアならば 6本,8コアならば 28本のバスがあれば,すべてのコアの組み合わせで通信が行える.現在,実用化されているマルチコアプロセッサはたかだか 32コア程度だが,増え続けるコアに対して通信をオンチップバスによって賄うのは,ハードウェアコストや回路規模,

消費電力などの点においてデメリットが大きい.そのため,大規模なコアを持つプロセッ

サには効率的な通信路が必要であり,その為のアプローチの1つがネットワークオンチッ

プである.

本論文で扱っているネットワークオンチップに関しては William James Dally 及びBrian Towles によって執筆された Principles and Practices of InterconnectionNetworks[3](以下 PPIN)に基づいている.

2.1.2 ネットワークオンチップのアーキテクチャ

ネットワークオンチップの簡単な例と挙動を説明し,次節の理解に備える.

Page 19: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

2.1 ネットワークオンチップとは 5

� � � �

� � � �

�� ��

�� �� �� ��

�� �

�����

����

図 2.2 メニーコアの例:4× 4コア

2.1.2.1 ネットワークオンチップの構成

図 2.2で表しているのは簡単なネットワークオンチップの構成例である.この網目状に並んでいる丸みを帯びた四角形で表されているのはコア,角張った四角形

で表されているのはルータ,太線で表されているのはリンク (ルータとルータをつなぐ通信路) である.実際に与えられたデータを処理し,また,データを返す処理も行うのがコアである.ルータの役割は,コアもしくはリンクで隣接するルータからデータを受け取り,

コアまたは隣接するルータへとデータを渡すことである.このルータ間の1回のデータの

転送をホップと呼ぶ.

このように多数並んだコアが各々ルータを持ち,ルータ同士がつながっている状態が最

もシンプルなネットワークオンチップの例であり,このネットワークを二次元メッシュ構

造という.以降,ネットワークを構成する要素としてコアとルータをまとめてノードと表

現する.

2.1.2.2 ネットワークオンチップの役割

実際にデータが転送される際の伝送路を示す.例として図 2.3 の場合では,5 番のコアから,ルータを介して隣接する 6番のコアへとデータを送る場合を考える.このとき,まず 5番のコアから 5番に接続しているルータへとデータが送られる.そして 5番のルータから 6番のルータへとデータが送られ,6番のルータから 6番のコアへとデータを送ることで完了する.以降,データの送り元をソース,送り先をデスティネーションと呼ぶ.

次に図 2.4の場合では,5番のコアがソース,15番のコアがデスティネーションである場合を考える.同様に 5番のコアから 5番のルータへとデータが送られた後,データは 6

Page 20: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

Chapter 2 ネットワークオンチップ 6

� � � �

� � � �

�� ��

�� �� �� ��

�� ���

(a)

� � � �

� � � �

�� ��

�� �� �� ��

�� ���

����

(b)

図 2.3 コア 5からコア 6への転送例

� � � �

� � � �

�� ��

�� �� �� ��

��

���

(a)

� � � �

� � � �

�� ��

�� �� �� ��

��

���

����

(b)

図 2.4 コア 5からコア 15への転送例

番のルータ,7番のルータ,11番のルータを経由し 15番のルータへ送られ,15番のコアへ送ることで完了する.

このように,コアをルータを介したネットワークに接続することでデータの転送を行う

のがネットワークオンチップの役割である.

Page 21: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

2.2 ネットワークオンチップの詳細 7

������������

���� ��� ����� ��� ����� ��� ����� �������� ���������

������������������

����� ��� ���� ��������

図 2.5 データの分割

2.2 ネットワークオンチップの詳細

この節では前節で示したネットワークオンチップの挙動を詳細に論ずる.

2.2.1 パケット及びフリット

ネットワークオンチップでは図 2.5のように,ネットワークオンチップを用いて処理するアプリケーションのレベルでコアからコアへと送られる一連のデータ (メッセージ)を,複数個のパケットと呼ばれる単位に分割し,転送する.更にパケットは,1単位時間で送信が可能なサイズのデータである複数のフリットへと分割することができる.

フリットはその役割ごとにヘッドフリット,ボディフリット,テイルフリットに分けら

れる.フリットの図を 2.6に示す.各フリットに共通しているのは,メッセージを分割したデータと,それぞれ自分がヘッ

ドフリット,ボディフリット,テイルフリットのどれに当たるのかを識別する為のビッ

ト列を持つことである.それらの他にヘッドフリットは,Routing Informationと呼ばれる,パケットをソースからデスティネーションへと正しく送り届けるための情報を持つ.

前節で触れた二次元メッシュのようなシンプルな構造のネットワークであれば,RoutingInformation はソースとデスティネーションを判別する情報のみで事足りる.また,アーキテクチャによってはメッセージを分割したパケットが正しい順番で届かない,という場

合が起こり得る.そのため,そういったアーキテクチャでは必要に応じて自分がメッセー

ジの中の何番目のパケットであるかを示す,Sequence Number という情報を持つことがある.

Page 22: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

Chapter 2 ネットワークオンチップ 8

����������� �

� �������

����� ��

������������������������������������ ��������

�������� ��� ��������

���

���� ��� ��� ��������

図 2.6 フリットの構成

デスティネーションでは,ソースからヘッドフリットを受け取り始めてから,いくつか

のボディフリットを受け取り,最後にテイルフリットを受け取りそれがテイルフリットで

あると認識されることで1つのパケットの受信が完了する.設計によってはボディフリッ

トに当たる部分のない 2 フリットからなるパケットや,ヘッドフリットでありテイルフリットでもある 1フリットのみでパケットを構成するアーキテクチャもありうる.

2.2.2 トポロジ

コアの配置,ルータの配置,及びそれらの接続形態によって構成されるネットワークの

形状をトポロジと呼ぶ.ネットワークの性能,ハードウェアコスト,遅延,スループット

といった要素はトポロジに大きく左右され,各トポロジの間にはそれらの要素のトレード

オフが存在する.ここでは代表的なトポロジについて述べる.

2.2.2.1 メッシュ

前節で触れた,格子状にコアが配置され,各コアがルータを持ち,隣接する (距離が最短である) ルータ同士が接続してネットワークを構成しているのがメッシュであり,最も単純なトポロジである.

図 2.7は 4× 4コアの場合のメッシュである.図 2.8のように,メッシュ同様にコアとルータを格子状に配置するが,列の端のルータ同士が接続しているのが,トーラスである.同じコア数であれば,トーラスはメッシュの 2倍の 2分割帯域幅 (bisection bandwidth)をもつ.図 2.8の構造そのままでは長い部分のリンクが他と比べて転送に要する時間が長く,その箇所がボトルネックとなるため,図??[4]のような実装が提案されている.

Page 23: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

2.2 ネットワークオンチップの詳細 9

� � ��

図 2.7 二次元メッシュ

図 2.8 二次元トーラス

� � ��

図 2.9 二次元トーラスの実装

Page 24: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

Chapter 2 ネットワークオンチップ 10

ネットワークの構造は二次元にとどまらず,三次元の構造を持ったトポロジーも存在す

る.図 2.10はメッシュ構造を三次元に拡張したものである.

図 2.10 三次元メッシュ

二次元と三次元のネットワークを比較すると,コア数が同じであれば三次元構造の方が

空間を活用でき,配線遅延も短くなる.しかし,ハードウェアは大幅に複雑化しネット

ワーク上でのパケットの挙動も複雑になってしまう.

以降の節や章におけるアーキテクチャやアルゴリズムはネットワークのトポロジは二次

元メッシュである前提で論ずる.

2.2.3 ルーティングアルゴリズム

ルータが受け取ったパケットがどのような経路を通り伝送されるのかを決定する手順を

ルーティングアルゴリズムという.この節では二次元メッシュ構造における代表的なアル

ゴリズムについて論ずる.

2.2.4 決定性ルーティング

ソースとデスティネーションが同じであれば,常に全く同じ経路を用いるのルーティン

グアルゴリズムを決定性 (Deterministic)ルーティングと呼ぶ.ハードウェアの複雑さ,コストなどの面から実装が容易であるが,ネットワークへの負荷が集中し性能低下を招く可

能性がある.

ルーティングアルゴリズムにおいて注意しなければならないのはデッドロックの発生で

ある.後述するバーチャルチャネルという機構を持たない場合,ネットワークでは図 2.11

Page 25: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

2.2 ネットワークオンチップの詳細 11

図 2.11 デッドロック

のような状況が発生することがある.

星印が現時点でルータにあるパケットを表し,同じ色の矢印がコアを経由し伝送されよ

うとしている方向を表す.例えば,緑色のデータは右のルータを経由し,そこから下の

ルータに進もうとしているという意味になる.しかし,この場合各パケットが互いに次の

ルータへの移動の完了を待ってしまい,処理が終わらなくなる.このような状態をデッド

ロックと呼び,ネットワークオンチップではこれを確実に回避しなければならない.

これをルーティングによって回避することを考えると,図 2.11 のような4種類のターン,もしくはそれらを左右反転させたもの4種類のうち,少なくとも1つのターンがなけ

れば起こりえない.

そういったデッドロックを回避する,決定性ルーティングの代表的なものに (X-Y)次元順ルーティング (Dimension Order)がある.次元順ルーティングとは,格子状に並んだコアに座標を与え,ソースからデスティネー

ションまでの経路は必ず X 軸方向への移動を全て終えた後に Y 軸方向への移動を行うというものである.次元順ルーティングでは,ソースとデスティネーションが定まっている

とき,経路が1つしか存在し得ないことは明らかである.また,このアルゴリズムでは図

2.13のように,4つのターンの内2つが起こり得ない為,デッドロックが発生しないアルゴリズムになっている.これは二次元メッシュ構造において最もよく用いられるルーティ

ングアルゴリズムである.

Page 26: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

Chapter 2 ネットワークオンチップ 12

���

���

���

���

���

���

���

���

図 2.12 次元順ルーティング

図 2.13 次元順ルーティングで行われるターン

2.2.5 適応性ルーティング

ソース及びデスティネーションが同じでも,状況に応じて経路を変更するようなルー

ティングアルゴリズムを適応性 (Adaptive) ルーティングという.ソースとデスティネーション間に複数個存在する経路の中から,ネットワークの混雑状況に応じて経路を選択す

ることでネットワークへの負荷を分散することができる.

Page 27: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

2.2 ネットワークオンチップの詳細 13

2.2.6 パケットスイッチング

パケットスイッチングとは,ソースからデスティネーションへとパケットを送る際,ルー

タ内でパケットもしくはフリットを移動させる手法である.代表的なものに Store-and-forward,Wormhole,Virtual cut-throughがある.

Store-and-forward最も単純なパケットスイッチングが,この Store-and-forwardである.パケットを構成する全てのフリットルータのバッファに格納されてから,次のルータへとヘッドフリットを

進める.  Store-and-forward 方式で 4 フリットからなるパケットがルータを通過する例を図 2.14 に示す.1つのルータのバッファにパケットをまるごと格納する必要があるので,バッファはパケット長以上のサイズが要求される.

Wormholeフリットごとに転送を行い,ブロックさせない限り次々とフリットを通過させる方式

がWormholeである.フリット単位で転送するため,ルータに最低限必要なバッファはフリットサイズと同じ大きさで済む.Wormhole方式の移動の例を図 2.15に示す.2つの方式では,Store-and-forward方式のほうがハードウェアコストが高い.また,レイテンシを比較する為,パケットサイズが 3フリットでホップ数が 4,1フリットの転送に1サイクルを要する場合を考えてみる.このとき,ブロックは起こらないものとすると,図 2.16 のように,Store-and-forwad では 3 × 4 = 12 サイクル要するのに対して,

Wormholeではパイプライン処理できるので,3 + 3 = 6サイクルで済む.Virtual cut-throughStore-and-forward とWormhole の中間的なパケットスイッチングが Virtual cut-throughである.ルータにパケットサイズ以上のバッファをもたせ,ヘッドフリットが進めなく

なった際に,1つのノードに同じパケットを構成する全てのフリットを格納する.ブロックされることがなければWormholeと同じ挙動を示すが,ブロックされた際にノードの専有を減らすことでネットワーク性能を低下させないという効果がある.ハードウェアコス

ト的には Store-and-forwardと同程度になる.ハードウェアコスト,レイテンシ両方の面において優れているWormhole方式が広く用

いられているパケットスイッチングである.

Page 28: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

Chapter 2 ネットワークオンチップ 14

� � � �

� � �

� �

� �

� � �

� � � �

(a)

� � � �

� � � �

� � � �

� � ��

� � ��

(b)

図 2.14 Store-and-forwardの移動例

Page 29: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

2.2 ネットワークオンチップの詳細 15

� � � �

� � �

� �

� �

�� �

��� �

���� �

��� � �

図 2.15 Wormholeの移動例

2.2.7 フロー制御

ここでは,現在バッファにフリットを持ち送り出す側のルータを上流 (Upstream),転送され入力バッファに格納される側のルータを下流 (Downstream)と呼ぶ.

クレジットに基づいた制御

最もよく使われているものがクレジットに基づいた制御 (based on credit)である.上流のルータがクレジットと呼ばれる,下流のバッファの空きの数に等しい値を持つ.

具体的な挙動は以下のとおりである.

Page 30: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

Chapter 2 ネットワークオンチップ 16

� ��

� � �� � �� ���

� � �

� � �

� � �

� � �

��� ���������

� ��

� � �� � �� ���

� � �

� � �

� � �

� � �

��� ������������������

図 2.16 レイテンシの計算

・クレジットが 0でないとき,上流から下流にフリットが転送できる.フリットが転送されると下流から上流に信号が送られクレジットがデクリメントされる.

・下流のバッファからフリットが出て行きバッファに空きができると,下流から上流に

信号が送られクレジットがインクリメントされる.

このクレジットに基づいた制御の例を図 2.17に示す.最初上流には 4 フリットのパケットをバッファに持ち,クレジットの値と下流のバッファの空きの値は 2である.まずヘッドフリットが送られ,下流からクレジットをデクリメントする信号が送られ,上流のクレジットが 1 になる.次にボディフリットが送られ,同様にクレジットが 0になる.クレジットが 0になったので,下流のバッファの空きはなくなった状態であり,フリットの転送はストップする.その後,下流のバッファに空きが

生じるとまた上流にクレジットをインクリメントする信号が送られ,クレジットが 1になる.以下同様に転送される.

Page 31: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

2.2 ネットワークオンチップの詳細 17

�������� ��������

�������

���

��� ��

�������

���

��� ��

����� ���

��������

���

��� ���

��������

���

��� ���

����� ���

(a)

��������

���

��� ���

��������

���

��� ���

��

��������

���

��� ��

�� ������

��������

���

��� ��

�� ������

(b)

図 2.17 クレジットに基づいた制御の移動例

Page 32: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

Chapter 2 ネットワークオンチップ 18

これがクレジットに基づいたフロー制御の大まかな流れである.

On / Off(XON XOFF)

On/Offによるフロー制御では,下流から上流に送られる On/Offの状態を管理するビットで制御を行う.バッファが格納されているフリットの数に関する閾値 Fon及び Fo f f を持

ち,上流のルータは常に On/Offのどちらかの状態であり,下流から信号を受けると On/Offが反転する.下流から信号が送られる条件は以下の 2つである.・状態を示すビットが Onで,バッファの空きが Fo f f を下回る.

・状態を示すビットが Offで,バッファの空きが Fon を上回る.

これによりフローを制御できるが,相当の遅延が生じてしまう.

以上の 2つが代表的なフロー制御の手法である.

2.2.8 バーチャルチャネル

バーチャルチャネルとは,物理的なチャネルを,複数の分割された仮想のチャネルとし

て扱う手法である.あるルータにおいてフリットが衝突した際に,使われていない他の

ルータを活用することで,ネットワークの利用効率を高めることを目的としている.具体

的には,ルータが複数個の個別のバッファキューと,それらを切り替えるスイッチを備え

ることで実現される.上流の複数個のバッファから下流に交互にフリットを転送すること

で,下流もしくはさらにその下流にあたるルータのバンド幅を有効活用できる.

図 2.18に例を示す.(a)がWormholeのみ,(b)がWormholeバーチャルチャネルの機構を追加したものである.各ルータとも入力ポートは 1方向とローカルのコアにつき 1つであるとする.

(a)では,ルータ aから転送されたパケット Aとルータ bから転送されたパケット Bが現在ルータ cにある.Aはルータ dを経由し,eまで転送される必要がある.しかし,現在 cd間のリンクは Bのパケットを転送するのに使用されており,さらに Bはルータ dの下方向に転送する必要があるがブロックされ,ストールしてしまっている.この状況では

Bのパケットのブロックが解決するまで待ってからようやく Aが dを経由して eへ転送できる.この間,de間のリンクは使われておらず,ネットワークを有効に利用できていない状態であるといえる.

次に (b)の場合だが,cd間の入力をサイクルごとに切り替えることにより,その区間の転送に要する時間は A,Bともに 2倍になるが,Bがストールする状況は変わらなくとも,使用されていなかった de間のリンクを Aの転送によって有効活用することができる.

Page 33: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

2.2 ネットワークオンチップの詳細 19

� � �

��

������

���

(a) Wormhole

� � �

� ��

������

���� ��

(b) Wormhole + Virtual Channel

図 2.18 バーチャルチャネルの活用例

これがバーチャルチャネルの仕組みである.

2.2.9 アービター・アロケータ

フリットがルータからルータへと転送される際には,予め上流のルータの入力バーチャ

ルチャネル内のフリットが,下流のルータのバーチャルチャネルを確保する必要がある.

また,下流のルータのバーチャルチャネルが確保された後に,上流から下流への出力ポー

トが確保される必要がある.この確保の為にリクエストを送り,またはリクエストを受け

取り,割り当てる機構をアービターと呼ぶ.アービターはバーチャルチャネルだけでなく,

バッファやスイッチなどのハードウェア資源も割り当てる役割を持つ.また,アービター

Page 34: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

Chapter 2 ネットワークオンチップ 20

��������

���������

���

������

��������

���������

���

������

�������

�����

������

図 2.19 アービター

間でのやりとりを管理し,実際に割り当てを行う機構がアロケータである.

代表的な手法について説明する.

Parallell Iterative Matching(PIM)

・上流のルータの,フリットを格納している全てのアービターが,下流の入力バーチャル

チャネルの内使用できるもの全てのアービターに対してリクエストを送る.

・リクエストを受けた全ての下流のルータのアービターがその中からランダムにリクエス

トを承認する.

・承認を受けた全ての上流のルータアービターがその中からランダムに承認を受け入れる.

この手順を繰り返すことでリクエストの数を減らしていき,割り当てを完了する.

iSLIP[5]PIMではランダムに選択される,・下流のアービターが受け取るリクエストの承認

・上流のアービターが受け取る承認の受け入れ

をランダムではなくラウンドロビン方式で行う.

PIMと比較してそれ程複雑にはならないが,一般に PIMより性能が高く,頻繁に用いら

Page 35: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

2.3 ルータ 21

��������

�������

�������

�������

�������

������

�������

�������

�������

�������

��������

��������

(a) Request

��������

�������

�������

�������

�������

������

�������

�������

�������

�������

��������

����

����

(b) Grant

��������

�������

�������

�������

�������

������

�������

�������

�������

�������

��������

(c) Accept

図 2.20 PIMの例一回目の処理

��������

�������

�������

�������

�������

������

�������

�������

�������

�������

(a) Request

��������

�������

�������

�������

�������

������

�������

�������

�������

�������

(b) Grant

��������

�������

�������

�������

�������

������

�������

�������

�������

�������

(c) Accept

図 2.21 PIMの例二回目の処理

れるアルゴリズムである.

2.3 ルータ

前節で触れた事項を用いて,ルータのアーキテクチャについて触れ,挙動を説明するこ

とで理解を深める.

2.3.1 インプットバッファルータ

シンプルな構成であり,なおかつ最も広く用いられているのがインプットバッファルー

タである.この小節ではインプットバッファルータのアーキテクチャ,挙動を示す.

2.3.1.1 ルータの挙動

インプットバッファルータのアーキテクチャの構造の例を図 2.22に示す.

Page 36: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

Chapter 2 ネットワークオンチップ 22

���������

���

��� ����������

������������

������

����

����

����

����

����

���������

����

����

����

����

����

図 2.22 Input-Buffer Routerのアーキテクチャ

このルータでは,上下左右及びローカルのコアからの入力ポートを1つずつ持ち,入

力ポートに2本のバーチャルチャネルを備えている.また,クロスバースイッチを持ち,

アービター及びアロケータを持つ.

ルータの挙動をまとめると,

・入力バーチャルチャネルに,ローカルのコアもしくは他のルータから送られてきたパ

ケットが格納される.・入力バーチャルチャネルに入ってきたパケットが次にどの方向の

ルータ (あるいはローカルコア)に向かうのかを計算する.・各入力ポートからの入力がどの出力ポートから出力されるかを割り当てる.・クロスバースイッチを通過する.・次の

ルータの入力バーチャルチャネルに入るもしくはコアに出力され終了.

の手順を繰り返す.

2.3.1.2 ルータのステージ

ルータの挙動は以下のステージによって行われる.

Page 37: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

2.3 ルータ 23

Route Computation(RC)パケットの先頭であるヘッドフリットが持つデスティネーションの情報を元に次にその

フリット及びパケット全体が進む方向を決定するステージ.ヘッドフリットのみ行われる.

Vitual Channel Allocation(VA)現在,入力バーチャルチャネル内に格納されているパケットが,次に進むルータの持つ

入力バーチャルチャネルを確保するためのステージ.ヘッドフリットのみ行われる.

Switch Allocation(SA)入力ポートにあるフリットが移動する先の出力ポートに移動するため,クロスバース

イッチ内の経路を確保するためのステージ.

Switch Traversal(ST)SAを終えたフリットがクロスバースイッチを通過するステージLink Traversal(LT)リンクを通過するステージアーキテクチャによっては LTステージを持たないものもある.図 2.22のようなアーキテクチャでは Output Unitにバーチャルチャネルを持ち,LTステージが存在する.

ルータにおいて 1回のホップには以上の 4または 5ステージの挙動からなる.このルータのパイプライン処理を表したのが図 2.23 である.RC 及び VA を行うのは

ヘッドフリットのみであり,以降のフリットはヘッドフリットの SAの終了を待ち,順にSA以降の処理がなされる.

� ��

�����

�� �� �

� � � � �

��� ��� � �

�� ������

���� ����

���� ���� ��� ��� � �

��� ��� � � �������

図 2.23 Input-Buffer Routerのパイプライン処理

Page 38: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

Chapter 2 ネットワークオンチップ 24

2.3.2 その他のルータ

投機的ルータ (Speculative Router)投機的ルータでは VAと SAを並列に処理するため,通常のルータよりもパイプライン段数が 1少なくなる.

� ��

�����

����

� � � � �

��� ������

���� ����

���� ����

�������

��� ��

��� ��

��� ��

図 2.24 Speculative Routerのパイプライン処理

Page 39: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

25

第 3章

関連研究

この章では,本研究で提案する SimNoC と同様に,ネットワークオンチップのシミュレーションの為開発されたシミュレータについて述べ,特に SimNoCの動作検証に用いたBookSim1.0について詳しく述べる.

3.1 ネットワークオンチップシミュレータ

3.1.1 ネットワークオンチップのシミュレーションとは

ネットワークオンチップのシミュレーションには大きく分けてトレースを用いるものと

用いないものの 2つに分けられる.トレースとは,ネットワーク上で,・ソース及びデスティネーションとなるノード

・パケットを発行及び受信するタイミング

・パケットがどの経路を通るか,また,どのタイミングで通るのか

など,ネットワーク上のパケットの挙動のほぼ全てが定義されたファイルである.従っ

てこのトレースを用いたシミュレーションは完全に決定されたネットワーク構成,動作の

もとでその一連の処理の実行時間などを測定するためのシミュレーション方法である.

トレースファイルを用いない場合,シミュレータは各ノードに一定確率でパケットを発

生さてやり,デスティネーションを決定する操作が必要である.この各ノードがサイクル

ごとにフリットをネットワークに発生させる確率をインジェクションレートと呼ぶ.注意

しなければならないのは,この計算に用いられるのはパケットではなくフリットである点

である.例えば1つのノードが 10サイクルの間に 4フリットからなるパケットを発行したとすると,インジェクションレートは 0.1 ではなく,0.4 になる.シミュレーションにおいてはこのインジェクションレートの値を 0~1 の間で変化させデータを取ることで,

Page 40: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

Chapter 3 関連研究 26

ネットワークの性能を測定する.パケットがソースにおいて発生してから,デスティネー

ションに到着するまでに要した転送時間をレイテンシと呼び,パケットが転送されている

間,サイクルあたりに転送可能なメッセージの量をスループットと呼ぶ.また,パケット

が発生した際,ソースのアドレスに基づくデスティネーションのユニークな決め方をトラ

フィックパターンと呼ぶ.

3.1.2 Noxim

[6] Noxim は University of Catania で現在も開発が続いているネットワークオンチップシミュレータである.Noxim はプログラミング言語 C++ をベースに記述されているが,SystemC[7]を用いて実装されている.SystemCとは,Verilo-HDLや VHDLと言ったRTL(レジスタ転送レベル)で論理合成を行うハードウェア記述言語ではなく,システムレベルでハードウェアの設計を行う記述言語であり,C++のためのクラスライブラリという形で提供されている.C++の持つオブジェクト指向型という特性を活かし,各モジュールをオブジェクトと見なし,各モジュールの挙動を記述できる設計になっている.また,そ

れによって単にネットワークの大きさやバッファサイズ,パケットサイズ,ルーティング

アルゴリズムの変更によりレイテンシ,スループットを測定するだけでなく,電力消費な

どのハードウェア特有のデータも測定することができることが最大の特徴である.しかし

一方で,コンパイル自体は通常の C++コンパイラで行えるものの,そのための SystemCの環境構築が非常に煩雑である.また,トレースファイルには対応していない.

また,オリジナルの Noxim では二次元のトポロジーしか備えていないが,NationalTaiwan University の An-Yeu Wu らによって,トポロジーを三次元に拡張した AccessNoxim[8]が開発中である.

3.2 BookSim[9]この節では,SimNoCの信頼性と有用性を検討するための動作検証に用いる BookSimについて論ずる.

3.2.1 BookSimの概要

BookSim は,2004 年に PPIN の著者でもある Stanford University Computer SystemsLaboratoryのWilliam James Dally, Brian Towlesらによって開発されたネットワークオンチップシミュレータである.彼らは計算機アーキテクチャ,とりわけネットワークオン

チップの分野における第一人者として知られ,彼らの著書 PPINはネットワークオンチッ

Page 41: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

3.2 BookSim 27

プの最も権威のある参考書である.また,BookSimは PPINで論じられている内容を元にC++を用いて記述されたシミュレータであり,PPINに書かれている内容をある程度理解しているユーザが用いることを想定して設計されている.

Noxim 同様,BookSim もトレースファイルを用いたシミュレーションには対応していない.

BookSim は最も有名なネットワークオンチップのシミュレータであり,多くの論文の中で BookSim によるネットワークの評価が行われている.いくつか BookSim を用いた研究の例を挙げる.Reyhaneh Jabbavand Behrouzらは,[10]BookSimを用いてネットワークオンチップの性能とレイテンシの改善を試みた研究にて BookSim を用いている.また,Danyao Wangらは,FPGA上でネットワークオンチップの高速なシュレーションを行うシミュレータの比較に BookSim を用いている.[11] そのため,SimNoC のネットワークオンチップシミュレータとしての信頼性を確認する為には,BookSimを用いた動作検証を行うことが最も適切であるといえる.

BookSim には初期版の BookSim1.0 と,BookSim1.0 に更にいくつかのトポロジーやオプションを加え多様なネットワーク構成のシミュレーションに対応できるよう発展,拡

張された BookSim2.0 が開発がされている.本論文では BookSim2.0 を元に動作検証を行う.BookSim1.0 ではなく BookSim2.0 を用いて動作検証を行う理由はルータの構造がBookSim1.0と BookSim2.0で著しく異なり,BookSim2.0で設定可能なパラメータの一部が BookSim1.0では設定できず,信頼性を検証するのが困難であると考えるためである.

3.2.2 BookSim2.0の実行

BookSim2.0はコンパイル後,各種パラメータを記述した configファイルをコマンドライン引数で渡してやり実行する.

Listing. 3.1 BookSim2.0の configファイルの例

1 // Topology2 topology = torus;3 k = 8;4 n = 2;5 // Routing6 routing_function = dim_order;7 // Flow control8 num_vcs = 4;9 // Traffic10 traffic = uniform;11 injection_rate = 0.15;

Listing. 3.2 BookSim2.0の実行結果の例

1 ・・・2

Page 42: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

Chapter 3 関連研究 28

3

4 Draining all recorded packets ...5 Draining remaining packets ...6 Time taken is 6099 cycles7 ====== Overall Traffic Statistics ======8 ====== Traffic class 0 ======9 Packet latency average = 31.6748 (1 samples)10 minimum = 7 (1 samples)11 maximum = 62 (1 samples)12 Network latency average = 31.6748 (1 samples)13 minimum = 7 (1 samples)14 maximum = 62 (1 samples)15 Flit latency average = 31.7014 (1 samples)16 minimum = 7 (1 samples)17 maximum = 62 (1 samples)18 Fragmentation average = 0 (1 samples)19 minimum = 0 (1 samples)20 maximum = 0 (1 samples)21 Injected packet rate average = 0.150281 (1 samples)22 minimum = 0.134333 (1 samples)23 maximum = 0.166 (1 samples)24 Accepted packet rate average = 0.150422 (1 samples)25 minimum = 0.134667 (1 samples)26 maximum = 0.166667 (1 samples)27 Injected flit rate average = 0.150281 (1 samples)28 minimum = 0.134333 (1 samples)29 maximum = 0.166 (1 samples)30 Accepted flit rate average = 0.150422 (1 samples)31 minimum = 0.134667 (1 samples)32 maximum = 0.166667 (1 samples)33 Injected packet size average = 1 (1 samples)34 Accepted packet size average = 1 (1 samples)35 Hops average = 5.00111 (1 samples)36 Total run time 0.794236

3.2.3 BookSim2.0の構成

BookSim2.0を構成するクラス間の関係を図 3.1のようになる.細い実線の矢印は参照,太い実線の矢印はクラスの継承,破線の矢印はのオブジェクトが生成されることを表す.

図 3.1で色のついているオブジェクトは複数のオブジェクトをシミュレーション内での役割ごとにまとめたものである.

例えば Router”と書かれたオブジェクトは,図??でさらに細かい構成を示している.以下同様に Router’を図??,Allocator’を図??,Arbiter’を図??,Network’を図??,Traffic-Manager’を図??,BufferState’を図??に示す.

3.2.3.1 BookSim2.0のアーキテクチャ[label:BSA]BookSim では多くのパラメータを変更することで様々なネットワークの性能をシミュレーション可能である.BookSim2.0で設定できるパラメータについて論ずる.

Page 43: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

3.2 BookSim 29

������

�������

����

������ ���

������

�������

�����

�� ����

���������

����������

������

����

����

������

����� �

�������

�����

�����

��� �

����

����

�������

������

�����

������

�����

������

���

�� ����

図 3.1 BookSim2.0のクラス図

3.2.3.1.1 トポロジ

BookSim2.0 でサポートされているのはバタフライ,メッシュ,トーラス,ファットツリー [12]などである.一辺のコアの数 (k)及びネットワークの次元 (n),及び1つのノードの集積度 (c)を設定

することができる.例えば,四次元のトーラス構造のネットワークなどもシミュレーショ

ン可能である.

その他,新しい技術も積極的に取り入れられ,flattend[13],dragonlfly[14]などの新しいトポロジもシミュレーションすることができる.

Page 44: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

Chapter 3 関連研究 30

������

��������

����������

������

�����

�� ����

����

������

��

��������

����

�������

(a) Router”

������

���

�����

��� �

�����

����

������

�����

�����

�����

���������

�������

�������

�������

� �

(b) Router’

���������� ���������

��

���������

� ���

���������

�����

� ������

������

��������

��

�����

� �����

���������

���������

���� ���

���������

���������

����� ���

���������

���

����

��������

�����

(c) Allocator’

�������

�������

�������

�����

�������

��������

���� ����

�������

����

�������

�����

��������

(d) Arbiter’

図 3.2 BookSim2.0の部分クラス図・1

3.2.3.1.2 ルーティングアルゴリズム

BookSim2.0では多くのルーティングアルゴリズムをサポートしているが,そのうちメッシュに適用可能な主要なものについて触れる.

・Dimension-order routing前章で説明した次元順ルーティングは二次元のメッシュに限定していたが,BookSimで

は多次元のメッシュ,トーラスに対しても適用できる.しかし,トーラスのネットワーク

Page 45: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

3.2 BookSim 31

������

���������

�����

���������

�����

���������

������������

���������

� �����

������������

���������

��������� �����

������������

���������

�������������

���������

������

�������������

���������

�����������

(a) BufferState’

������

�������������

�������

�����

���� �������

�����

�����

��������

��������������

�����

�������������

������

��������

��������������

(b) Trafficmanager’

�����

�����

��������

�������

���� ��� � ������� �������

����

���� ������ ����� �����

(c) Network’

図 3.3 BookSim2.0の部分クラス図・2

に適用する際にはデッドロックを回避するためにバーチャルチャネルを必要とする.

・Minimal Adaptive Routingメッシュ及びトーラスに適用できるルーティングである.適応性ルーティングの一種で

あり,複数存在する最短経路の中から動的に1つを選択する.現在入力バッファに格納さ

れているパケットが,次に進むルータを決める際に,周囲のルータの混雑の度合い (全体のポートの内,いくつのポートが占有されているか)の情報から,より混雑の少ないルータへと進めて行くアルゴリズムである.ネットワークの負荷を分散することを目的としたアル

ゴリズムであるが,局所的な情報でしか混雑の度合いを判断していない.そのため,ある

時点でより混雑の少ないルータへ進めた結果,そこから先へ進む為のルータが更に混雑し

Page 46: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

Chapter 3 関連研究 32

������ ������ ������

������ ������ ������

������ ������ ������

������ ������ ������

図 3.4 バタフライネットワークの例:ネットワーク全体の形状が蝶に似ていることか

らバタフライネットワークと呼ばれる.左の丸はノードからの出力,右の丸はノードへ

の入力を表す.長方形は,2つの入力の内どちらかを選択し,出力する比較器である.

ノードの数を nとすると n2× log2 n個の比較器を用いることで,全てのノードから全て

のノードへ値を送信することが可能である.図の太線は実際に 0番のノードの値を送ることのできる通信路を示す.

� � � � � �� � �� �� �� �� �� ��

図 3.5 ファットツリーの例

ていた,などといった,より悪い結果を招く可能性も孕んでいるアルゴリズムである.ま

た,バーチャルチャネルを必要とする.

・Planar-adaptive routing[15]メッシュに適用する.多次元のネットワーク構造において複数の最短経路が存在すると

き,最短経路を含む隣接した2つの平面を選択して,その中に含まれる最短経路の集合を

一つの平面と見なす.その平面ネットワークに対してMinimal Adoptive Routingなどの適応性ルーティングを更に適用できる.仮想の平面を二次元に限定することで,デッドロッ

ク回避のために必要なバーチャルチャネルの本数はネットワークの規模や次元には影響さ

れない.

Page 47: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

3.2 BookSim 33

・Valiantメッシュ及びトーラスに適用できるルーティングである.ソースとデスティネーション

以外の全てのノードの中からランダムに 1つを選択し,中継点とする.そしてソースから中継点へ,中継点からデスティネーションへと次元順ルーティングで転送することで高い

ランダム性を得る.高いランダム性による負荷分散を望める反面,経路が最短になるとは

限らず,冗長化してしまう可能性が高い.また,メッシュでは最低 2本,トーラスでは最低 4本のバーチャルチャネルを必要とする.

・ROMM(Randomized, Oblivious, Multi-phase, Minimal)メッシュに適用する.ある最短経路を 4等分する 3つの中間の点を取り,ソースと最初

の中間点,中間点同士,最後の中間点とデスティネーションの 3つの区間に分割し,それぞれの最短経路をランダムに選ぶ.それにより,経路は最短でありながら,なおかつある

程度のランダム性をもたらすことができ,負荷分散を見込める.Valiant程のランダム性はないものの,経路が冗長化してしまうことがない点が優れている.バーチャルチャネルを

必要とする.

3.2.3.1.3 フロー制御

クレジットに基づくフロー制御を行い,バーチャルチャネルの本数,及びバーチャル

チャネルのバッファのサイズ (フリット数)を設定できる.

3.2.3.1.4 ルータのアーキテクチャ

BookSim2.0 でサポートされているルータは,"The input-queued router","The event-driven router"の 2 つである.The input-queued router は前節で説明したインプットバッファルータと構造的に同じものであり,

・Route Computation(RC)・Virtual-channel Allocation(VA)・Switch Allocation(SA)・Switch Traversal(ST)・Link Traversal(LT)の 5ステージからなる典型的なルータである.指定できるパラメータの内主要なものを挙げる.

・ポートあたりの入/出力数

Page 48: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

Chapter 3 関連研究 34

・RC,SA,VAによる遅延に要するサイクル数・投機的な SAを行うかどうか・アロケータの種類

・アービターの種類

The event-driven router はバーチャルチャネルをより効率よく利用できるよう設計されたアーキテクチャである.継続的にバーチャルチャネル全体の状態を確認している Theinput-queued routerとは異なり,このアーキテクチャではバーチャルチャネルの変化だけを抽出する.その為,サイクルあたりのバーチャルチャネルの状態の変化する数はバー

チャルチャネルの本数とは無関係なため,恩恵を受けることができる.

どちらのルータでも設定できるパラメータは,クレジット制御に関する遅延と,フリッ

トを通過させる速さの倍率だけである.

3.2.3.1.5 アロケータ

BookSim2.0で選択可能なアロケータの種類を挙げる.・Maximum-size matching最もフリットサイズが大きいものが優先して割り当てられる.

・PIM(Parallel iterative matching)・iSLIP・loa各リクエストの中から出力の際,最も衝突が少ないものほど優先順位を高く設定し,そ

れに従って出力を決定する.

・wavefront

3.2.3.1.6 トラフィックパターン

BookSim2.0 でサポートされているトラッフィクパターンは全て PPIN に記されているものである.

ソースのアドレス,デスティネーションのアドレスの iビット目をsi,di

,ソースのアドレス,デスティネーションのアドレスの 10 進数の xy 座標表示をそれぞれ

(sx, sy),(dx, dy)とする.アドレスのビット数を bとする.例えば,コア数が全部で 4× 4の 16個の場

合,1個めから順に 0000~1111までのアドレスが割り振られ,ビット数は 4となる.一列

Page 49: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

3.2 BookSim 35

のコア数を kとする.

・一辺のコアの個数が 2のべき乗である場合のみ用いるもの.

Bit Complement

di = ¬S i

ソースアドレスが (s3, s2, s1, s0) のとき,デスティネーションアドレ スは

(¬s3,¬s2,¬s1,¬s0) となる.コアの中心から見てソースとデスティネーションが点対称になる.

Bit Reverse

di = ¬ S b−1−i

ソースアドレスが (s3, s2, s1, s0)のとき,デスティネーションアドレスは (s0, s1, s2, s3)となる.

Shuffle

di = S i−1 mod b

ソースアドレスが (s3, s2, s1, s0)のとき,デスティネーションアドレスは (s2, s1, s0, s3)となる.

transpose

di = S i+b/2 mod b

・それ以外の場合でも用いるもの.

tornado

dx = S x + (⌈ k2− 1⌉) mod k

dy = S y + (⌈ k2− 1⌉) mod k

Page 50: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

Chapter 3 関連研究 36

neighbor

dx = sx + 1 mod k

dy = sy + 1 mod k

x方向に 1つ進み (右端の場合は左端へ),y方向に1つ進む (下辺の場合は上辺へ).

3.2.3.1.7 その他シミュレーションに関するパラメータ

物理サブネットワークの本数を変更することが出来る.

3.2.3.2 BookSimに関してマニュアルには記載されていないが,flit.hppで定義されているクラス Flitの bool型メンバ watchを trueにすることで,サイクル単位で各ノードの状態 (現在,各フリットがどのルータにいるか)を表示させるデバッグモードで実行できる.

Listing. 3.3 デバッグモード

1 #define DEBUG2

3 Flit *TrafficManager::_NewFlit( )4 {5 Flit *f;6 f = new Flit;7

8 f->id = _cur_id;9 f->hops = 0;10

11 #ifdef DEBUG12 f->watch = true;13 #else14 f->watch = false;15 #endif16

17 // Add specific packet watches for debugging18 if ( f->id == -1 ) {19 f->watch = true;20 }21

22 _in_flight[_cur_id] = true;23 ++_cur_id;24

25 return f;26 }

Page 51: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

37

第 4章

SimNoCの実装

この章では提案するネットワークオンチップシミュレータ SimNoCの概要と構成などを論ずる.

4.1 SimNoCの概要SimNoCは,当研究室でネットワークオンチップの高速なシミュレーションを目的として開発されたソフトウェアシミュレータである.SimNoCは BookSim同様 C++で記述されている.既存のネットワークオンチップシミュレータと比較して設定できるパラメータ

やネットワークのパターンはある程度切り捨てている.しかしその代わりに構成をシンプ

ルにし,効率よくシミュレーションを行えるのが最大の特徴である.また,現バージョン

ではトレースファイルを用いたシミュレーションには対応していない.

4.2 SimNoCの実装まず,SimNoC のファイル構成及びソースコードの行数,各ファイルの説明をを表 4.1に示す.比較のため,BookSim2.0のファイル構成も載せる.また,前章の BookSim2.0のファイル構成とソース・コードの行数は表 4.2に示す.このソースコードの行数にはファイルの冒頭に書かれているライセンスに関するコメントア

ウトも含んでいる.

4.2.1 SimNoCのソフトウェアアーキテクチャ

図 4.1は SimNoCの主要なクラスを図にしたものである.実線で表される矢印は,そのクラスの中でクラスが定義されていることを表す.点線で表される矢印は,そのクラスに

Page 52: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

Chapter 4 SimNoCの実装 38

表 4.1 SimNoCのファイル構成

filename lines summary

./allocator/ 388 Allocator

./arbiter/ 356 Arbiter

config.cc 135 Configuration About Simulation

config,h 138 ・・・

dmac.cc 218 Direct Memory Access Controller

dmac.h 70 ・・・

env.cc 138 Control main loop

env.h 43 ・・・

flit.cc 82 Function About Flit

flit.h 63 ・・・

func.h 131 Frequently Used Function

inttypes.h 123 Defining variables

main.cc 14 ・・・

node.cc 119 Controlling Router Instructed by Env

node.h 46 ・・・

packet.h 51 Defining Packet

packet_generator.cc 228 Generate and controll packet

packet_generator.h 81 ・・・

./router 979 Router

simulation_data.cc 71 Recording data of simulation

simulation_data.h 52 ・・・

terminal.h 48 Defining class that controll network

./virtual channel 468 Virtual Channel

- Total - 4042

対する参照を表す.太線で表される矢印はクラスの継承を表す.また,ネットワークの構

成の情報を扱う configクラスは主要なクラスの殆どから参照されているが,図が複雑になるため省略している.

Page 53: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

4.2 SimNoCの実装 39

表 4.2 BookSim2.0のファイル構成

filename lines filename lines./allocators/ 2391 misc_utils.hpp 34./arbiters/ 962 module.cpp 88batchtrafficmanager.cpp 220 module.hpp 62batchtrafficmanager.hpp 75 ./networks/ 5556booksim.hpp 43 outputset.cpp 153booksim_config.cpp 346 outputset.hpp 66booksim_config.hpp 53 packet_reply_info.cpp 57buffer.cpp 83 packet_reply_info.hpp 57buffer.hpp 161 pipeinfo.hpp 97buffer_state.cpp 676 ./power/ 1015buffer_state.hpp 239 random_utils.hpp 61channel.hpp 125 rng-double.c 112config.l 54 rng.c 108config.y 37 rng_double_wrapper.cpp 34config_utils.cpp 447 rng_wrapper.cpp 34config_utils.hpp 95 routefunc.cpp 1999credit.cpp 79 routefunc.hpp 48credit.hpp 60 ./routers/ 4807./examples/ 482 stats.cpp 130flit.cpp 107 stats.hpp 76flit.hpp 104 timed_module.hpp 44flitchannel.cpp 91 traffic.cpp 518flitchannel.hpp 99 traffic.hpp 174globals.hpp 53 trafficmanager.cpp 2283injection.cpp 190 trafficmanager.hpp 322injection.hpp 68 vc.cpp 223main.cpp 187 vc.hpp 137misc_utils.cpp 52 - Total - 25874

4.2.2 SimNoCのアーキテクチャ

本節では,3.2.3の BookSimのアーキテクチャの節との比較によって,SimNoCの構成がどのようなものであるかを論ずる.

Page 54: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

Chapter 4 SimNoCの実装 40

���������

���

�����

���������

������

���������

��������

�� �

������

������

���������

���� �� �����

��� ���

����

����

�������

����������

��� ���

�������

����������

��������

(a)

�������������

�������� ��������

��������

��� �

�������

�� ��

��������

���������

�����

��������

��������

����� �

���������

�������

�������

�� ��

��������

���������

����� ���

�������

��� �

����

��� ����

(b)

図 4.1 SimNoCのクラス図

4.2.2.1 トポロジ

ネットワークオンチップを必要とするような大規模なネットワークにはそれほど複雑な

構成は少なく,実際のところ,二次元メッシュのような簡単な構造のネットワークの回路

規模を変えることによるシミュレーションを行うことが多い.そのため,SimNoCでは扱えるトポロジを二次元メッシュに限定している.

4.2.2.2 ルーティングアルゴリズム

SimNoC でサポートしているルーティングアルゴリズムは次元順ルーティングのみである.

4.2.2.3 フロー制御

クレジットに基づいた制御と,On / Offの信号を用いた制御の二種類を切り替えることができる.

Page 55: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

4.3 SimNoCと BookSimの比較 41

4.2.2.4 ルータのアーキテクチャ

SimNoCでは,前章で説明したバーチャルチャネルを備えたインプットバッファルータ及び,投機的な SAの実行によりパイプライン段数を短縮し 3ステージで実行するルータの 2つをサポートしている.

4.2.2.5 アロケータ

SimNoCでは,iSLIP,PIM,Fixed-Priority Allocatorをサポートしている.

4.2.3 トラフィックパターン

SimNoC では,前章で述べた BookSim で実装されている全てのトラフィックパターンと同様のものを実装し,検証を行った.この動作検証に関しては次章で述べる.また,新

しいトラフィックパターンも以下の手順で容易に追加することが可能な設計になっている.

・ノードのソースアドレスを引数に,デスティネーションアドレスを返り値に取る関数

を packet_generator.cc内に記述する.・config.hの列挙型 TrafficPatternに新しいトラフィックパターンの名前を追加する.・config.ccのスイッチ文に追加する.

4.3 SimNoCと BookSimの比較本章及び前章から,BookSim及び SimNoCがどのような設計思想の元に作成され,どういった特徴を持つシミュレータであるのかが明らかになった.BookSim2.0 は様々なパラメータ,アルゴリズムをサポートしており,多様なネットワーク構成を想定して多岐に渡

るシミュレーションを行うことが可能である.しかしながら,ソースコードが冗長であり,

シミュレータは非常に多くのクラスから構成されており,複雑な全体の構造を把握するの

は容易ではない.また,Principles and Pracetices of Interconnection Networks の内容に明るくなければ,変更を施すどころか,扱うことでさえ敷居が高いと言える.

それに対して SimNoCはトポロジは二次元メッシュのみを扱い,ルーティングアルゴリズムは次元順ルーティングに限定し,他にも様々な点で機能を制限している.しかしそれ

らの制限されているアーキテクチャ,アルゴリズムはシンプルかつ効率がよいものであり,

広く用いられているものを選択している.つまり SimNoCは実際のネットワークオンチップの研究において重要度の低い機能を切り捨てることで,限定したネットワークのシミュ

レーションを効率よく行えることを目的としたソフトウェアシミュレータである.さらに,

Page 56: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

Chapter 4 SimNoCの実装 42

シミュレータを構成するクラスも BookSim ほど複雑でないため全体の構造を把握しやすく,実行が容易である.さらに,SimNoCに新たにアーキテクチャやアルゴリズムを追加することも比較的容易に行える.

次章では実際に両者を実行し,本論文の主旨である効率的なシミュレーションについて

検討する.

Page 57: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

43

第 5章

評価

前章では SimNoC と BookSim の設計上の差異を明らかにした.本章では SimNoC とBookSim2.0 を実際に実行し,結果を比較することで SimNoC の信頼性を確認し,また,効率のよいシミュレーションを行えることを確認する.

5.1 動作検証

前章で説明したように,SimNoCは BookSim2.0と比べてシミュレーション可能なネットワークの構成かなり制限がある.その為,BookSim2.0のパラメータ設定を SimNoCの構成に近づけてやり,ネットワークの規模やインジェクションレートなどのパラメータを

変更することで動作の検証を行う.

5.1.1 評価環境

まず,3章及び 4章で扱った両者のアーキテクチャから,同じ条件でシミュレーションを行う為の構成を示していく.

トポロジ

SimNoCに合わせる為,二次元メッシュで行う.

ルーティングアルゴリズム

次元順ルーティングで行う.

フロー制御

クレジットに基づいた制御を行う.

Page 58: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

Chapter 5 評価 44

ルータのアーキテクチャ

BookSim2.0 では The input-queued router と定義されている入力ポート側にバッファのあるルータを用いる.パイプライン段数は RC,VA,SA,ST,LTの 5段からなる通常の構成である.

アロケータ

アロケータには iSLIPを用いる.

動作検証に用いる計算機の構成は以下の通りである.

・Intel Core i7 2700K(3.5GHz,4core(8thread),8MB L1Cache)・メインメモリ 16GB・Ubuntu 13.10, 64bit・GCC Ver4.8

5.1.2 信頼性の検証

まず第一に,両者の挙動が正しいことを示す.

このシミュレーションはインジェクションレートを 0.05から 1.00まで 0.05の間隔で変化させ,両者のレイテンシをサイクル数で比較する.シミュレーションはWarm-up(ネットワークの飽和)に 10000サイクルを充て,その後 10万サイクルまで計測を行い,その平均を結果とする.

以下に,比較するネットワークの構成を表 5.1に示す.

表 5.1 比較実験のネットワーク条件

Core 4× 4core,8× 8core,16× 16core

Packet Size 8flit

Buffer Size 2flit,4flit,8flit

Virtual Channel 1,4,8

Traffic Random,Bit Complement,Bit Reverse,Shuffle,Transpose,Tornado,Neighbor

Page 59: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

5.1 動作検証 45

この条件で比較実験を行った.その中から例として充分なバーチャルチャネルがあり,

バッファサイズがパケット長未満の場合と,等しい場合のグラフを示す.バッファサイズ

がパケット長より短く,トラフィックが RANDOMの場合が図 5.1.2,COMPLEMENTの場合が図 5.1.2,バッファサイズがパケット長と同じでトラフィック RANDOM の場合が図 5.1.2,COMPLEMENTの場合が図 5.1.2である.なお,グラフは基本的に PPINに掲載されているスループットを表すグラフに則り,縦軸の最大値を 400としているが,グラフとして意味を成さなくなってしまうものに関してはその限りではない.

残りのパターンのグラフは本論文の付録に掲載している.

インジェクションレートが高くなりある程度スループットが飽和し,レイテンシが急激

にあがる当たりでは大きな違いが見られる.しかし,スループットの飽和していない箇所

ではグラフのかなりレイテンシが近く,ほぼ同じ振る舞いをしていることがわかる.

実験の結果から,スループットの飽和していない箇所における SimNoCと BookSim2.0の間でのレイテンシの差は最も大きい箇所で 8.1%に収まることがわかった.

5.1.3 実行速度の比較

次に,SimNoCが充分効率的にシミュレーションを行えることを確認する.

確認するネットワーク環境として,パケット長は 8 フリット,バッファサイズは 4 フリット,バーチャルチャネルの本数は 4本とし,トラフィックパターンはランダムに定める.そしてネットワークの規模が 4× 4コア,8x8コア,16× 16コアのときの無負荷遅延の時点と,スループットが飽和した点でのインジェクションレートで実行時間を計測し,

比較する.スループットが飽和した点に関しては,前節の検証で行った測定を元にスルー

プットが飽和し始めるインジェクションレートを決め打ちする.測定は Linux の time コマンドで測定される realの値を用いて行い,10回の平均を取る.両シミュレータはコンパイル時に O3オプションを用いる.また,SimNoCではコマンドライン引数でインジェクションレートを変更することができるが,公平性の観点から毎回値を変更する毎にコード

を書き換えコンパイルをし直す.

ネットワークオンチップのシミュレーションは本来,warm-up としてネットワークを一定時間回した後に規定のサイクル数まで測定を行うが,BookSim2.0は warm-up終了の後,パケットが過剰になりレイテンシが収束しない場合など,規定サイクルに達する前に

終了してしまう仕様となっている.その為,測定は確実に実行される 10,000 サイクルのwarm-upにより評価する.

Page 60: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

Chapter 5 評価 46

��

���

���

���

���

���

���

���

���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� �� ��� �� ��� ��� ���� �

�������������� ������� ����� ����������� ��������������������

� ���� ����� ����

������������

(a) 4× 4コア

��

���

���

���

���

���

���

���

���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� �� ��� �� ��� ��� ���� �

������������� ����� �������������������������� ��������������� ���

� ���� ����� ����

������������

(b) 8× 8コア

��

���

���

���

���

���

���

���

���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� �� ��� �� ��� ��� ���� �

�������������� �������������������� ����������������������������������

� ���� ����� ����

������������

(c) 16× 16コア

図 5.1 バーチャルチャネル 4本,4フリットバッファ,1パケット 8フリット,RANDOM

Page 61: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

5.1 動作検証 47

��

���

���

���

���

���

���

���

���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� �� ��� �� ��� ��� ���� �

�������������� ������� ����� ����������� ������������������������

� ���� ����� ����

������������

(a) 4× 4コア

��

���

���

���

���

���

���

���

���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� �� ��� �� ��� ��� ���� �

������������� ����� �������������������������� ������������������� ���

� ���� ����� ����

������������

(b) 8× 8コア

��

���

���

���

���

���

���

���

���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� �� ��� �� ��� ��� ���� �

�������������� �������������������� ����������������������������� ��������

� ���� ����� ����

������������

(c) 16× 16コア

図 5.2 バーチャルチャネル 4本,4フリットバッファ,1パケット 8フリット,COMPLEMENT

Page 62: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

Chapter 5 評価 48

��

���

���

���

���

���

���

���

���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� �� ��� �� ��� ��� ���� �

�������������� �������� ����� ����������� ��������������������

� ���� ����� ����

������������

(a) 4× 4コア

��

���

���

���

���

���

���

���

���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� �� ��� �� ��� ��� ���� �

������������� ����� �������������������������� ��������������� ���

� ���� ����� ����

������������

(b) 8× 8コア

��

���

���

���

���

���

���

���

���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� �� ��� �� ��� ��� ���� �

�������������� ��������������������� ����������������������������������

� ���� ����� ����

������������

(c) 16× 16コア

図 5.3 バーチャルチャネル 4本,8フリットバッファ,1パケット 8フリット,RANDOM

Page 63: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

5.1 動作検証 49

��

���

���

���

���

���

���

���

���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� �� ��� �� ��� ��� ���� �

�������������� �������� ����� ����������� ������������������������

� ���� ����� ����

������������

(a) 4× 4コア

��

���

���

���

���

���

���

���

���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� �� ��� �� ��� ��� ���� �

������������� ����� �������������������������� ������������������� ���

� ���� ����� ����

������������

(b) 8× 8コア

��

���

���

���

���

���

���

���

���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� �� ��� �� ��� ��� ���� �

�������������� ��������������������� ����������������������������� ��������

� ���� ����� ����

������������

(c) 16× 16コア

図 5.4 バーチャルチャネル 4本,8フリットバッファ,1パケット 8フリット,COMPLEMENT

Page 64: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

Chapter 5 評価 50

表 5.2 実行速度比較・無負荷遅延

コア数 トラフィック SimNoC BookSim2.0

4× 4core RANDOM 0.154s 0.067s

4× 4core COMPLEMENT 0.159s 0.069s

8× 8core RANDOM 0.739s 0.305s

8× 8core COMPLEMENT 0.767s 0.357s

16× 16core RANDOM 3.487s 1.831s

16× 16core COMPLEMENT 3.709s 2.236s

表 5.3 実行速度比較・スループット飽和

コア数 トラフィック SimNoC BookSim2.0

4× 4core RANDOM 0.410s 0.572s

4× 4core COMPLEMENT 0.428s 0.602s

8× 8core RANDOM 1.802s 2.515s

8× 8core COMPLEMENT 1.849s 2.460s

16× 16core RANDOM 7.969s 12.770s

16× 16core COMPLEMENT 6.278s 7.900s

表 5.4 参考・コンパイル時間

SimNoC BookSim2.0

Complie Time 12.936s 48.998s

実験の結果,無負荷遅延の場合の実行速度は表 5.2に,スループット飽和時の実行速度が表 5.3のようになった.また,この結果を無負荷遅延かスループット飽和時か,及び用いたトラフィックパター

ンごとにプロットしたグラフが図 5.5,図 5.6,図 5.7,図 5.8である.横軸はコア数,縦軸は実行時間 (s)を表し,実線が SimNoC,破線が BookSim2.0である.

表及びグラフから分かるように,無負荷遅延時の実行時間ではすべての場合において

Page 65: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

5.1 動作検証 51

�����

�����

�����

�����

�����

�����

�����

�����

�����

����� � �� �������

�������������� ������

���� ��������

図 5.5 無負荷遅延時・RANDOM

�����

�����

�����

�����

�����

�����

�����

�����

�����

����� � �� �������

�������������� ����������

���� ��������

図 5.6 無負荷遅延時・COMPLEMENT

SimNoCは BookSim2.0に劣っている.4x4コア,RANDOMの場合が最も実行時間に差が出ており,SimNoCは BookSim2.0の 2.48倍の実行時間を要しているが,その実行時間の比率はコア数の増加に従って小さくなっている.

また,スループットが飽和し始めてからの実行時間では SimNoC の方が早くなっている.16× 16コア,RANDOMの場合が最も差がでており,SimNoCは BookSimの 0.61倍の時間で実行できている.

ネットワークの評価をシミュレーションする際,インジェクションレートを一定の間隔

で変化させ,スループットの変化を見る.その過程を経て初めてそのネットワークのス

ループットが飽和するインジェクションレートの値を知ることが出来る為,シミュレー

Page 66: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

Chapter 5 評価 52

�����

�����

�����

�����

�����

������

������

������

����� ����� �������

������������ ��

��� �� �����

図 5.7 飽和時・RANDOM

�����

�����

�����

�����

�����

�����

�����

����

����

�����

��� ��� � ��� ����� ���

������������ ������

����� ����������

図 5.8 飽和時・COMPLEMENT

ションには無負荷遅延で実行される時間と,スループットが飽和した状態で実行される時

間の両方が含まれる.それを踏まえて実行速度を評価すると SimNoC は充分効率的にシミュレーションを行うことが出来ると考えられる.コンパイルに要する時間も考慮すれば

尚更である.

これらの実験により,SimNoCの信頼性と,効率よくシミュレーションを行えることを確認できた.

Page 67: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

53

第 6章

結論

本論文をまとめる.

6.1 総論

本論文では,ネットワークオンチップのシミュレーションを効率的に行う為,ネット

ワークオンチップ SimNoC が信頼性と効率性を持つことを検証した.その結果,スループットの飽和していない箇所での SimNoCと BookSim2.0のレイテンシの差は 8.1%以内になることがわかった.また,実行速度を比較した結果,無負荷遅延時では SimNoCはすべての場合で BookSim2.0より悪化し,最悪の場合で 2.48倍の実行時間を要する.しかしスループット飽和時には SimNoCはすべての場合で BookSim2.0より改善し,最も良い場合で 0.61倍で実行できることを確認した.これらの結果とコンパイルに要する時間から,SimNoCは充分効率的なシミュレーションができることを検証できた.

6.2 今後の課題

以下に課題を挙げる.

まず最初に,主に速度の面での性能向上である.SimNoC は BookSim2.0 と比較して,スループットの飽和していない箇所ではより多くの実行時間を必要とした.およそ 6倍以上のソースコード量を持ち,より複雑な構成である BookSim2.0と少なくとも同等の速度は達成可能なはずであり,それを目標に掲げるべきである.

最後に,本シミュレータを一般に公開できるレベルまでの改良を加える事である.本シ

ミュレータ,本論文の掲げている効率のよいシミュレーションとは,本来より高性能な

Page 68: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

Chapter 6 結論 54

ハードウェアを設計するための指標であり,最終的には一般に公開し,広く実験に用いら

れることを目標としている.その為には,ソースコードの高い可読性,より多くの環境で

の実行を可能にする,などの改良が必要である.

Page 69: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

55

謝辞

本研究を進める,また本論文を執筆するにあたり,終始熱心な御指導をして頂いた吉瀬

謙二准教授に深謝いたしております.目前の課題から幾度と無く逃げ出し将来に絶望し

ていた私を何度でも課題に取り組ませて頂き,道筋を示して頂き,本当に有難うございま

した.

また,SimNoCを作り上げ,検証のほとんどを行って頂き,研究のいろはから丁寧に教えて頂いた,佐藤真平氏に,心から御礼を申し上げたく存じます.佐藤氏の助力無くして

本研究,そして今の私はありえませんでした.

研究室に所属してからの学生生活の中で何度も励ましを頂き,道を示して頂いた豊橋技

術科学大学の藤枝直輝氏に深く感謝の意を表します.

そして,ネットワークオンチップを理解する上で何度もわかりやすく説明してくれて,

常に笑顔と元気を振りまきやる気を与えてくれた池田貴一君に深く感謝の意を表します.

貴方は研究の面でも生き方の面でも常に一つの目標となっています.

私がプログラミングや TEXのコンパイルなど,技術面でトラブルを抱えていた時,後輩ながら卓越した知識で解決法を教えてくれた森悠君に深く感謝します.

吉瀬研究室の皆様,様々な面で私を支えて頂いたことをこの場を借りて御礼申し上げ

ます.

最後にネットワークオンチップの基礎を築き上げ,またシミュレータ BookSim を提供して頂いたWilliam J.Dally氏と Brian Towles氏に敬意を表します.

Page 70: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な
Page 71: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

57

参考文献

[1] Luca Benini and Giovanni De Micheli. Networks on chips : A new soc paradigm. 2001.http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=976921.

[2] John L.Hennesy and David A.Patterson. COMPUTER ARCHITECTURE. MORGANKAUFMANN PUBLISHERS, 2002.

[3] William James Dally and Brian Towles. Principles and Practices of InterconnectionNetworks. MORGAN KAUFMANN PUBLISHERS, 2004.

[4] William J. Dally and Brian Towles. Route packets, not wires: On-chip interconnectionnetworks. 2001.

[5] Nick McKeown. The islip scheduling algorithm for input-queued switches. InIEEE/ACM TRANSACTIONS ON NETWORKING, VOL. 7, NO. 2, 1999.

[6] http://sourceforge.net/projects/noxim/.[7] http://www.accellera.org/home/.[8] http://access.ee.ntu.edu.tw/noxim/index.html.[9] Nan Jiang Daniel U. Becker George Michelogiannakis James Balfour Brian Towles John

Kim William J. Dally. A detailed and flexible cycle-accurate network-on-chip simulator.Technical report, A U.S. Department of Energy National Laboratory Operated by theUniversity of California. http://crd.lbl.gov/assets/booksimispass.pdf.

[10] Reyhaneh Jabbarvand Behrouz Mehdi Modarressi Hamid Sarbazi Azad. A reconfig-urable fault-tolerant routing algorithm to optimize the network-on-chip performance andlatency in presence of intermittent and permanent faults. 2011.

[11] Danyao Wang Natalie Enright Jerger J. Gregory Steffan. Dart : A programmable archi-tecture for noc simulation on fpgas. 2011.

[12] D. Ludovici F. Gilabert S. Medardoni C. Gomez... Assessing fat-tree topologies forregular network-on-chip design under nanoscale technology constraints. 2009.

[13] John Kim William J.Dally Dennis Abts. Flattened butterfly: a cost-efficient topology forhigh-radix networks. 2007.

Page 72: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

参考文献 58

[14] John Kim William J.Dally Steve Scott Dennis Abts. Technology-driven, highly-scalabledragonfly topology. 2008.

[15] ANDREW A. CHIEN and JAE H. KIM. Planar-adaptive routing : Low-cost adaptivenetworks for multiprocessors. 1995.

Page 73: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

59

研究業績

全国大会

1. 上野貴廣,永塚智之坂口嘉一吉瀬謙二: CoreSymphonyにおける命令ステアリングの検討,情報処理学会第 74回全国大会,名古屋工業大学鶴舞キャンパス (2012年3月 6日発表).

Page 74: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な
Page 75: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

61

付録

本文中には掲載しなかった SimNoCと BookSim2.0の比較グラフのうち,トラフィックパターンが Randomと Bit Complementの場合をここに掲載する.

Page 76: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

付録 62

��

���

���

���

���

���

���

���

���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� �� ��� �� ��� ��� ���� �

������������� ���� �������������������������� ��������������� ���

� ���� ����� ����

������������

(a) 4× 4コア

����

�����

�����

�����

�����

�����

�����

�����

�����

�����

���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� �� ��� �� ��� ��� ���� �

������������� ���� �������������������������� ��������������� ���

� ���� ����� ����

������������

(b) 8× 8コア

�����

�����

�����

�����

�����

�����

���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� �� ��� �� ��� ��� ���� �

��������������� ���� �������������������������� ��������������� ���

� ���� ����� ����

������������

(c) 16× 16コア

図 1 バーチャルチャネル 1本,2フリットバッファ,1パケット 8フリット,RANDOM

Page 77: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

63

��

���

���

���

���

���

���

���

���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� �� ��� �� ��� ��� ���� �

������������� ���� �������������������������� ��������������� ��� ���

� ���� ����� ����

������������

(a) 4× 4コア

����

�����

�����

�����

�����

�����

�����

�����

�����

�����

���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� �� ��� �� ��� ��� ���� �

������������� ���� �������������������������� ������������������� ���

� ���� ����� ����

������������

(b) 8× 8コア

�����

�����

�����

�����

�����

�����

���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� �� ��� �� ��� ��� ���� �

��������������� ���� �������������������������� ��������������� ��� ���

� ���� ����� ����

������������

(c) 16× 16コア

図 2 バーチャルチャネル 1本,2フリットバッファ,1パケット 8フリット,COMPLEMENT

Page 78: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

付録 64

��

���

���

���

���

���

���

���

���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� �� ��� �� ��� ��� ���� �

������������� ���� �������������������������� ��������������� ���

� ���� ����� ����

������������

(a) 4× 4コア

��

���

���

���

���

���

���

���

���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� �� ��� �� ��� ��� ���� �

������������� ���� �������������������������� ��������������� ���

� ���� ����� ����

������������

(b) 8× 8コア

����

�����

�����

�����

�����

�����

�����

�����

�����

�����

���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� �� ��� �� ��� ��� ���� �

��������������� ���� �������������������������� ��������������� ���

� ���� ����� ����

������������

(c) 16× 16コア

図 3 バーチャルチャネル 1本,4フリットバッファ,1パケット 8フリット,RANDOM

Page 79: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

65

��

���

���

���

���

���

���

���

���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� �� ��� �� ��� ��� ���� �

������������� ���� �������������������������� ������������������� ���

� ���� ����� ����

������������

(a) 4× 4コア

����

�����

�����

�����

�����

�����

�����

�����

�����

�����

���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� �� ��� �� ��� ��� ���� �

������������� ���� �������������������������� ������������������� ���

� ���� ����� ����

������������

(b) 8× 8コア

����

�����

�����

�����

�����

�����

�����

�����

�����

�����

���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� �� ��� �� ��� ��� ���� �

��������������� ���� �������������������������� ��������������� ��� ���

� ���� ����� ����

������������

(c) 16× 16コア

図 4 バーチャルチャネル 1本,4フリットバッファ,1パケット 8フリット,COMPLEMENT

Page 80: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

付録 66

��

���

���

���

���

���

���

���

���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� �� ��� �� ��� ��� ���� �

������������� ���� �������������������������� ��������������� ���

� ���� ����� ����

������������

(a) 4× 4コア

��

���

���

���

���

���

���

���

���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� �� ��� �� ��� ��� ���� �

������������� ���� �������������������������� ��������������� ���

� ���� ����� ����

������������

(b) 8× 8コア

����

�����

�����

�����

�����

�����

�����

�����

�����

�����

���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� �� ��� �� ��� ��� ���� �

��������������� ���� �������������������������� ��������������� ���

� ���� ����� ����

������������

(c) 16× 16コア

図 5 バーチャルチャネル 1本,8フリットバッファ,1パケット 8フリット,RANDOM

Page 81: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

67

��

���

���

���

���

���

���

���

���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� �� ��� �� ��� ��� ���� �

������������� ���� �������������������������� ������������������� ���

� ���� ����� ����

������������

(a) 4× 4コア

��

���

���

���

���

���

���

���

���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� �� ��� �� ��� ��� ���� �

������������� ���� �������������������������� ������������������� ���

� ���� ����� ����

������������

(b) 8× 8コア

����

�����

�����

�����

�����

�����

�����

�����

�����

�����

���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� �� ��� �� ��� ��� ���� �

��������������� ���� �������������������������� ������������������� ���

� ���� ����� ����

������������

(c) 16× 16コア

図 6 バーチャルチャネル 1本,8フリットバッファ,1パケット 8フリット,COMPLEMENT

Page 82: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

付録 68

��

���

���

���

���

���

���

���

���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� �� ��� �� ��� ��� ���� �

�������������� ������� ����� ����������� ��������������������

� ���� ����� ����

������������

(a) 4× 4コア

��

���

���

���

���

���

���

���

���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� �� ��� �� ��� ��� ���� �

������������� ���� �������������������������� ��������������� ���

� ���� ����� ����

������������

(b) 8× 8コア

��

���

���

���

���

���

���

���

���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� �� ��� �� ��� ��� ���� �

�������������� �������������������� ������������������������� ��������

� ���� ����� ����

������������

(c) 16× 16コア

図 7 バーチャルチャネル 4本,2フリットバッファ,1パケット 8フリット,RANDOM

Page 83: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

69

��

���

���

���

���

���

���

���

���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� �� ��� �� ��� ��� ���� �

�������������� ������� ����� ����������� ������������������������

� ���� ����� ����

������������

(a) 4× 4コア

��

���

���

���

���

���

���

���

���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� �� ��� �� ��� ��� ���� �

������������� ���� �������������������������� ������������������� ���

� ���� ����� ����

������������

(b) 8× 8コア

��

���

���

���

���

���

���

���

���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� �� ��� �� ��� ��� ���� �

�������������� �������������������� ���������������������������� !��������

� ���� ����� ����

������������

(c) 16× 16コア

図 8 バーチャルチャネル 4本,2フリットバッファ,1パケット 8フリット,COMPLEMENT

Page 84: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

付録 70

��

���

���

���

���

���

���

���

���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� �� ��� �� ��� ��� ���� �

������������� ����� �������������������������� ��������������� ���

� ���� ����� ����

������������

(a) 4× 4コア

��

���

���

���

���

���

���

���

���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� �� ��� �� ��� ��� ���� �

�������������� �������� ����� ����������� ��������������������

� ���� ����� ����

������������

(b) 8× 8コア

��

���

���

���

���

���

���

���

���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� �� ��� �� ��� ��� ���� �

�������������� ��������������������� ���������������������������������

� ���� ����� ����

������������

(c) 16× 16コア

図 9 バーチャルチャネル 8本,2フリットバッファ,1パケット 8フリット,RANDOM

Page 85: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

71

��

���

���

���

���

���

���

���

���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� �� ��� �� ��� ��� ���� �

������������� ����� �������������������������� ������������������� ���

� ���� ����� ����

������������

(a) 4× 4コア

��

���

���

���

���

���

���

���

���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� �� ��� �� ��� ��� ���� �

�������������� �������� ����� ����������� ������������������������

� ���� ����� ����

������������

(b) 8× 8コア

��

���

���

���

���

���

���

���

���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� �� ��� �� ��� ��� ���� �

�������������� ��������������������� ���������������������������� ��������

� ���� ����� ����

������������

(c) 16× 16コア

図 10 バーチャルチャネル 8本,2フリットバッファ,1パケット 8フリット,COMPLEMENT

Page 86: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

付録 72

��

���

���

���

���

���

���

���

���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� �� ��� �� ��� ��� ���� �

������������� ����� �������������������������� ��������������� ���

� ���� ����� ����

������������

(a) 4× 4コア

��

���

���

���

���

���

���

���

���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� �� ��� �� ��� ��� ���� �

�������������� �������� ����� ����������� ��������������������

� ���� ����� ����

������������

(b) 8× 8コア

��

���

���

���

���

���

���

���

���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� �� ��� �� ��� ��� ���� �

�������������� ��������������������� ���������������������������������

� ���� ����� ����

������������

(c) 16× 16コア

図 11 バーチャルチャネル 8本,4フリットバッファ,1パケット 8フリット,RANDOM

Page 87: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

73

��

���

���

���

���

���

���

���

���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� �� ��� �� ��� ��� ���� �

������������� ����� �������������������������� ������������������� ���

� ���� ����� ����

������������

(a) 4× 4コア

��

���

���

���

���

���

���

���

���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� �� ��� �� ��� ��� ���� �

�������������� �������� ����� ����������� ������������������������

� ���� ����� ����

������������

(b) 8× 8コア

��

���

���

���

���

���

���

���

���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� �� ��� �� ��� ��� ���� �

�������������� ��������������������� ���������������������������� ��������

� ���� ����� ����

������������

(c) 16× 16コア

図 12 バーチャルチャネル 8本,4フリットバッファ,1パケット 8フリット,COMPLEMENT

Page 88: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

付録 74

��

���

���

���

���

���

���

���

���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� �� ��� �� ��� ��� ���� �

������������� ����� �������������������������� ��������������� ���

� ���� ����� ����

������������

(a) 4× 4コア

��

���

���

���

���

���

���

���

���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� �� ��� �� ��� ��� ���� �

�������������� �������� ����� ����������� ��������������������

� ���� ����� ����

������������

(b) 8× 8コア

��

���

���

���

���

���

���

���

���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� �� ��� �� ��� ��� ���� �

�������������� �������������������� ���������������������������������

� ���� ����� ����

������������

(c) 16× 16コア

図 13 バーチャルチャネル 8本,8フリットバッファ,1パケット 8フリット,RANDOM

Page 89: 修士論文 ネットワークオンチップの効率的な シ …...Tokyo Institute of Technology Department of Computer Science 修士論文 ネットワークオンチップの効率的な

75

��

���

���

���

���

���

���

���

���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� �� ��� �� ��� ��� ���� �

������������� ����� �������������������������� ������������������� ���

� ���� ����� ����

������������

(a) 4× 4コア

��

���

���

���

���

���

���

���

���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� �� ��� �� ��� ��� ���� �

�������������� �������������������� �������������������������������������

� ���� ����� ����

������������

(b) 8× 8コア

��

���

���

���

���

���

���

���

���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� ��� ���� �� ��� �� ��� ��� ���� �

�������������� �������������������� �������������������������������������

� ���� ����� ����

������������

(c) 16× 16コア

図 14 バーチャルチャネル 8本,8フリットバッファ,1パケット 8フリット,COMPLEMENT