第 3 章 バッファ構成最適化手法 26
3.4 提案手法
3.4.2 パケット転送のブロック
ネットワークで発生するパケット転送のブロックは,
1. バッファ長を増やすことで回避できるブロック 2. 仮想チャネルの追加で回避できるブロック 3. バッファ構成の変更では回避できないブロック
の3種類に分類することができる.提案手法では,シミュレーションによって1サ イクルごとに1. と2. のブロックの発生回数をカウントし,回数が最も多いチャ ネルをボトルネックとして検出する.そしてバッファ資源をバッファ長の増加に 割当てるか,仮想チャネルの追加に割当てるかを決定する.これらのブロックに ついて述べる.
バッファ長を増やすことで回避できるブロック : crossbar allocationで検出す る.図3.3に示すように,フリットを受け取る側のバッファが一杯である場 合,パケットAの転送は中断され,そのサイクルでは他にパケットがあった としてもクロスバを使用できない.このとき,受け取る側のバッファのサイ
図 3.3: バッファ長を増やすことで回避できるブロック.
ズを大きくすることで,ブロックの発生を回避することができる.
仮想チャネルの追加で回避できるブロック : virtual-channel allocationで検出 する.図3.4に示すように,バッファの使用がパケットAによって予約され ている場合,パケットの混同を防止するために他のパケットはそのバッファ を使用することができない.このとき,パケットBの受け取り側のチャネル に仮想チャネルを設けることで,ブロックの発生を回避することができる.
このブロックはさらに,仮想チャネルの追加によって,どれだけクロスバの 使用効率が向上するかを基準として分類することができる.パケットの受け 取り側で他のバッファにフリットがある状態(図3.4(a))とフリットがない状 態(図3.4(b))について考える.図3.4(a)の場合は,仮想チャネルが追加され てパケットBを転送できるようになったとしても,クロスバはパケットD によって使用される.これは先に到着したパケットから順に処理されるため である.つまり,仮想チャネルを追加してもパケットDは他のパケットの転 送が完了してから転送を行うことになり,仮想チャネルの追加による性能の 向上は小さいと考えられる.一方,図3.4(b)の場合は,仮想チャネルを追加 することでパケットDは転送を続けるができるようになり,クロスバの使 用効率が向上する.よって,図3.4(b)においてバッファ長を増やす方が得ら れる効果は大きいと考えられる.
(a)他のバッファにフリットが入っている場合
(b)他のバッファにフリットが入っていない場合
:パケットA :パケットB :パケットC :パケットD
図 3.4: 仮想チャネルの追加で回避できるブロック.
第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: バッファ構成変更で回避できないブロック
提案手法ではバッファ長を増やすことで回避できるブロックと仮想チャネルの 追加で回避できるブロックの発生回数をカウントする.そしてブロック回数が多 いチャネルをボトルネックとして検出する.さらに改良手法として,仮想チャネ ルの追加で回避できるブロックをカウントする際に,ブロックの分類による重み 付けを行う.そうすることで,より正確なボトルネックの検出が可能であると考 えられる.