NoC シミュレーション機能 SimMc-NoC の使い方
概要
SimMc 2.0以降,ネットワークオンチップ(NoC)の評価に利用できる,
NoC シミュレーション機能 SimMc-NoC が追加されました.
SimMcをコンパイルすると,同時に
sim ディレクトリの下に SimMc-NoC という実行可能ファイルが生成されます.
シミュレーションでは,ネットワークに挿入すべきパケットを一定頻度で生成し,
そのパケットが所定の宛先に届くまでの平均レイテンシと,
計測時間中に届いたパケット量(スループット)とを計測します.
パケットの生成頻度(オファードトラフィック)を徐々に増加させ,
計測されたスループットとの差が一定以上になるまで,
繰り返しシミュレーションを行います.
何もオプションをつけずに SimMc-NoC を実行すると,
デフォルト設定でのシミュレーションを行います
(デフォルト設定については後述).
$ sim/SimMc-NoC
## SimMc-NoC: Many-Core and NoC Simulator v2.0 2012-09-30
## options:
offer t_put latency
0.050 0.050 30.88
0.100 0.101 31.53
0.150 0.149 32.08
0.200 0.199 33.20
0.250 0.250 34.49
0.300 0.301 36.79
0.350 0.347 39.94
0.400 0.397 46.61
0.450 0.443 217.45
0.500 0.458 1172.30
0.550 0.464 2115.21
オプション
オプションおよびデフォルト設定については下表のとおりです.
項目名(強調はデフォルト) | 概要 |
--x-rank [値] または -x[値] | 8
| 横方向のノード数を指定する |
--y-rank [値] または -y[値] | 8
| 縦方向のノード数を指定する |
--channel [値] または -c[値] | 2
| 仮想チャネル数を指定する |
--buffer [値] または -b[値] | 4
| ルータの入力バッファの長さを指定する |
--packet [値] または -p[値] | 5
| 生成するパケットの長さを指定する |
--pattern [パターン名] | RANDOM
| 生成するトラフィックパターンを指定する |
--lookahead-rc | --no-lookahead-rc
| 次ホップのルート計算を行い,ルータのパイプライン段数を削減する |
--fix-vc | --no-fix-vc
| 各パケットに必ず挿入時と同じ仮想チャネルを利用させる |
--fix-priority | --no-fix-priority
| ルータのアロケータの優先度を固定する |
--credit-fc | --no-credit-fc
| クレジットベースのフロー制御を利用する |
--link-traversal | --no-link-traversal
| ノード間の転送にルータのパイプラインの1ステージを割り当てる |
--smart | --no-smart
| SmartCore システムを有効にする |
--smart-pattern [パターン名] | INTERLEAVE
| SmartCore システム有効時のノード配置を指定する |
--rate [値] または -r[値] | 0.05
| パケットの生成頻度の初期値・増分を指定する |
--rate-end [値] | 1.00
| パケットの生成頻度がこの値を超えるまでシミュレーションを繰り返す |
--normalize | --no-normalize
| パケットの生成頻度・スループットをネットワークの容量で正規化する |
--end-saturated | --no-end-saturated
| 計測されたスループットが生成頻度を大きく下回ったら終了する |
--sim-once | --no-sim-once
| 1回だけシミュレーションを行って終了する |
トラフィックパターンには,RANDOM, COMPLEMENT, TORNADOのいずれかを指定できます.