第 3 章 バッファ構成最適化手法 26
3.4 提案手法
3.4.3 バッファ構成最適化フロー
第3章 バッファ構成最適化手法 バッファ構成の変更では回避できないブロック :
crossbar allocationにおいて発生する.図3.5に示すように,他のバッファ に対して,クロスバの使用が割り当てられている場合である.クロスバを複 数個設ける等,バッファ構成以外のルータ・アーキテクチャの変更が有効で あると考えられるが,提案手法では考慮しない.
sw allocator(p) invc
state routing
lobic
・・ ・・ ・・・・
credit out
flit in
flit out Xbar(p,w)
input controller
図 3.5: バッファ構成変更で回避できないブロック
提案手法ではバッファ長を増やすことで回避できるブロックと仮想チャネルの 追加で回避できるブロックの発生回数をカウントする.そしてブロック回数が多 いチャネルをボトルネックとして検出する.さらに改良手法として,仮想チャネ ルの追加で回避できるブロックをカウントする際に,ブロックの分類による重み 付けを行う.そうすることで,より正確なボトルネックの検出が可能であると考 えられる.
• バッファ資源制約 B: フリット単位で表した利用可能なバッファ総量
• トラフィック情報: ネットワーク上のパケット通信の宛先,発生頻度 まず,これらを入力としてシミュレーションを行い,ボトルネックとなるチャ ネルを検出する.ボトルネック検出手段として以下の2種類のパケット転送のブ ロックの発生回数をカウントする.
1. バッファ長を増やすことで回避できるブロック 2. 仮想チャネルの追加で回避できるブロック
次にバッファ資源をバッファ長を増やすために割当てるか,仮想チャネルを増や すために割当てるかを決定する.まず,バッファ長を増やすことで回避できるブ ロックの発生回数が最も多いバッファに対してバッファ長を1-flitだけ増やし,シ ミュレーションを行って平均パケット遅延時間LLを求める.同様に,仮想チャネ ル追加で回避できるブロックの発生回数が最も多いチャネルに対してバッファ長
1-flit の仮想チャネルを挿入し,平均パケット遅延時間LV を求める.そしてこれ
らを比較してLL< LV ならば,バッファ長を追加し,LL> LV ならば仮想チャネ ルを追加する.なお,これらのシミュレーション時に得られるそれぞれのブロック 回数は,次のループでバッファ長/仮想チャネル追加シミュレーションを行う際に 利用する.そして,使用バッファ総数を1-flit分だけ増やし,バッファ資源制約B に達しているかどうかを比較する.バッファ資源制約Bに達していれば最終バッ ファ構成として出力し,そうでなければ再びバッファ長/仮想チャネル追加シミュ レーションを行う.
このようにループを繰り返すことで,ボトルネックとなるチャネルには多くの バッファ資源が割当てられる.そして得られた構成はチップ上のルータのチャネ ルごとに異なる構成を持つ.
トラフィック情報
シミュレーション バッファ初期構成
仮想チャネル追加 シミュレーション バッファ長追加
シミュレーション
LL < LV
Y
N
使用バッファ総数+1
Y
N
最終バッファ構成 mesh サイズ
バッファ長追加 仮想チャネル追加
使用バッファ総数
< B
バッファ資源制約 B
図 3.6: バッファ構成最適化フロー.