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のいずれかを指定できます.