(57)【特許請求の範囲】
【請求項１】
１本のパケット入力回線と、１本のパケット出力回線と、
該パケット入力回線から入力されたパケットを蓄積するバッファメモリと、
入力されたパケットのフローに対応する該バッファメモリ上のアドレスにパケットを書き込む書き込み手段と、
該パケットのフローに対応する該バッファメモリ上のアドレスを指定して格納されているパケットを読み出す読み出し手段とを有し、
入力されたパケットの各フローに対して、複数の出力順序チェーンを割り当てたことを特徴とするパケットシェーパ。
【請求項２】
１本のパケット入力回線と、１本のパケット出力回線と、
該パケット入力回線から入力された可変長パケットを固定長パケットに区切って蓄積するバッファメモリと、
該パケットのフローに対応する該バッファメモリ上のアドレスに固定長パケットを書き込む書き込み手段と、
固定長パケットのフローに対応する該バッファメモリ上のアドレスを指定して格納されている固定長パケットを読み出す読み出し手段とを有し、
入力された可変長パケットの各フローに対して、複数の出力順序チェーンを割り当てたことを特徴とするパケットシェーパ。
【請求項３】
請求項１または２のいずれかに記載のパケットシェーパにおいて、
上記書き込み手段は、
パケット到着毎にアドレスセレクタの切り替えを行う振り分けポインタと、
書き込みアドレスを巡回的に選択する選択回路を有し、
上記読み出し手段は、
パケット読み出し毎にアドレスセレクタの切り替え指示を行う読み出しポインタと、
読み出しアドレスを巡回的に選択する選択回路を有することを特徴とするパケットシェーパ。
【請求項４】
請求項３に記載のパケットシェーパにおいて、
上記振り分けポインタと上記読み出しポインタは、ｍ進カウンタ手段（ｍは各パケットフローに割り当てられた前記アドレス管理手段の数）にて構成され、
該ｍ進カウンタ手段は、上記パケットのフローに属するパケットの読み出しまたは書き込み毎にカウントアップし、
上記選択回路は、該ｍ進カウンタの値をデコードして、上記書き込みまたは上記読み出しアドレスを巡回選択することを特徴とするパケットシェーパ。
【請求項５】
請求項１または２のいずれかに記載のパケットシューパにおいて、
上記読み出し手段は、これと対になる上記書き込み手段と同一の順序で選択制御を行うことを特徴とするパケットシェーパ。
【請求項６】
請求項１または２のいずれかに記載のパケットシェーパにおいて、
上記読み出し手段は、１のフローに割り当てられた１つの出力順序チェーンの更新が終了する以前に、該フローに割り当てられた次の出力順序チェーンにアクセスすることを特徴とするパケットシェーパ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、非同期転送モード（以下ＡＴＭと称する）に使用されるパケット信号（セル）や、ＩＰパケットの品質制御を行うためのパケットシェーパに関する。
【０００２】
【従来の技術】
ATMセルやIPパケット等のパケット信号は，ネットワーク上で多重化やスイッチングによる非同期転送が行われる。よって，これらのパケットは多重化装置やスイッチを経由する際に，バッファリング部分での待ち時間の相違により遅延ゆらぎが発生する。遅延のゆらぎはネットワークリソースの使用効率低減や，固定帯域を要求するサービスの品質劣化などの問題を引き起こす。これらの問題を解決する手段としてシェーピング装置が考案されている。
【０００３】
図４に固定長パケット（ＡＴＭの場合にはセルと呼ばれる）のシェーピングを行うパケットシェーパ装置の構成を示す。パケットシェーパ装置７０は、入力伝送路７１より入力される物理レイヤ信号を終端する伝送路終端部７２、パケットを宛先、品質クラスもしくはコネクションなどのフロー毎にバッファリングするパケットシェーパ１３０、バッファリングされたパケットに関して、帯域制御、優先読み出しなどの制御を行う読み出し制御部７３、出力伝送路７４へ出力するため上位レイヤを終端し物理レイヤ信号処理を行う伝送路出力部７５を有する。
【０００４】
さらに、可変長パケットを扱う場合には、パケットシェーパの前段と後段にそれぞれ、固定長パケット分割部と可変長パケット再生部を配置する構成をとる場合も有る。
【０００５】
パケットシェーパのバッファリング方法としては、パケットバッファをフロー間で共通的に使用する共通バッファを使用することで、効率の良いバッファリングが可能となる。
【０００６】
共通バッファを使用したパケットシェーパについては，特開平7-95211号公報「トラヒックシェーピング装置」に示されている。本構成においては，共通バッファ上にATMセルのVC（バーチャルチャネル）毎に論理キューを構成しており，各論理キューからの読出し間隔を調整することでセル遅延ゆらぎを抑えている。また，特開平7-240752号公報「ATM交換機のスイッチングパス設定方法」においては，ATMスイッチの前段・後段に，共通バッファによるシェーピング機能を配置している。本構成では，共通バッファ上に品質クラス毎の論理キューを構成して，品質クラス毎の読み出し制御を実現している。パケットシェーパに用いられている従来の共通バッファについては，それを実現するにあたり必要となるメモリアドレス管理の詳細構成については記述されていない。
【０００７】
【発明が解決しようとする課題】
共通バッファはそれを実現するアドレス構成管理上，バッファメモリ内に構成された複数の出力方路，品質クラス毎などの論理キューについて，その論理キューを構成するための出力順序チェーンの更新に一定の時間を要する。つまり，共通バッファを使用した場合，同一の論理キューからのパケット連続読出し間隔は，使用されるメモリのアクセス速度ではなく，出力順序チェーンの更新時間により制限される。図２に各フローに対して1つの論理キューを割り当てた場合の共通バッファアドレス管理構成を示す。入力回線１０から入力されたパケットはヘッダ抽出部１２から出力されたパケットのヘッダからｎフローのうち該当するフローに対応する書込みアドレスレジスタ（ＷＡ）６（６−１〜６−ｎの何れか）をフローデコーダ４により選択し、パケット書込みアドレスをバッファメモリ１’に送る。ヘッダ抽出部１２を通過したパケットは、書込みアドレスレジスタ（ＷＡ）６（６−１〜６−ｎの何れか）で指定されたバッファメモリ１’内のパケット格納部１’−１に書込まれる。このとき、空アドレスバッファ８から読み出された空アドレスが、アドレスポインタ格納領域１’−２（指定されたパケット格納部１’−１と同一アドレス）と、選択された書込みアドレスレジスタ（ＷＡ）６（６−１〜６−ｎの何れか）に書き込まれる。各読出し時刻にバッファメモリ１’から読み出されるパケットの読出しアドレスは、フローに対応した読出しアドレスレジスタ（ＲＡ）７（７−１〜７−ｎの何れか）によって決定される。アドレスレジスタ（ＲＡ）７−１〜７−ｎは，読み出し制御部９の読出しアルゴリズムに従って決定される。指定したアドレスよりパケットが読み出されると同時に、同一アドレスのアドレスポインタが読み出し制御部９で指定された読出しアドレスレジスタ（ＲＡ）（７−１〜７−ｎの何れか）に書き込まれる。そして、パケットが読み出されたバッファメモリのアドレスは空アドレスバッファ８に書き込まれる。
【０００８】
図３にアドレスポインタによる出力順序チェーンの構成例を示す。フロー１に対応する出力順序チェーン２０−１が、読出しアドレスレジスタ（ＲＡ１）７−１に格納されている先頭アドレスと書込みアドレスレジスタ（ＷＡ１）６−１に格納されている末尾アドレスとの間で構成されている。別のフロー２に対応する出力順序チェーン２０−２が、読出しアドレスレジスタ（ＲＡ２）７−２に格納されている先頭アドレスと書込みアドレスレジスタ（ＷＡ２）６−２に格納されている末尾アドレスとの間で構成されている。以上は、各フロー単位に出力順序チェーンを構成することで、同一のバッファメモリ内にフロー毎の論理キューを実現する例である。
【０００９】
次に図２の構成における各フローのパケット出力時間間隔を示す。図７は、各フローに対して１つの出力順序チェーン５０−１を割り当てた場合である。本例では、バッファメモリ１’にアドレスを与えた後、パケットデータとアドレスポインタが出力されて読み出しアドレスレジスタが更新されるのに３タイミングを要すると仮定する。例としてフロー１に対応する出力順序チェーンを考えた場合、読み出しアドレスレジスタ（ＲＡ１）７−１より時刻Ｔ１で与えたアドレスＡ１１に対して、パケットデータＤ１１およびアドレスポインタＡ１２は、時刻Ｔ４にてバッファメモリ１より出力される。読み出しアドレスレジスタ（ＲＡ１）７−１の内容はＡ１２に更新され、その後、時刻Ｔ５でアドレスＡ１２をバッファメモリ１に与えると、次のパケットデータＤ１２が出力されるのは時刻Ｔ８である。つまり、パケットデータの出力間隔は４タイミング周期（５０−２）となる。
【００１０】
以上に示したように，共通バッファを使用した場合，同一の論理キューからのパケット連続読出し間隔は，使用されるメモリのアクセス速度ではなく，出力順序チェーンの更新時間により制限される。これは，パケットシェーパ装置としては，メモリアクセス速度相当の入出力回線に対応できないことを意味し，また，スイッチとの前後段等に配置される場合には，高速の入出力回線に対応できないだけではなく，大容量スイッチとの高速リンク接続が不可能となることを意味する。
【００１１】
本発明の目的は、高速入出力回線に対応可能な共通バッファパケットシェーパ手段を提供することである。より具体的には，共通バッファ内に格納された同一フローパケットの高速読出しが可能なバッファパケットシェーパ手段を提供することである。
【００１２】
【課題を解決するための手段】
出力回線もしくは品質クラスなどの１つのフロー（バッファリング単位）に対して複数の出力順序チェーンが割当てられる。これら複数の出力順序チェーンを有する複数の論理キューをパイプライン化する。具体的には、フロー毎のパケットを複数の出力順序チェーンへ巡回的に振り分けを行うための振り分けポインタが設けられる。さらに、パケットの順序逆転が起こらないように出力チェーンを巡回的に選択して読み出しを行うための、読み出しポインタがフロー毎に設けられる。これにより、１つの出力順序チェーンの更新が終了する前に、次の出力順序チェーンにアクセスを行うことができる。その結果、各フローに属するパケットの出力時間間隔の短縮が実現され、高速読出しに対応した共通バッファが実現できる。
【００１３】
【発明の実施の形態】
ｎ本のフロー単位のキューバッファを有する高速回線対応共通バッファ形パケットシェーパ１３を図１に示す。ここでフローとは、品質クラス、宛て先、コネクションなどのグループ単位を示す。本パケットシェーパは、バッファメモリ１、フローデコーダ４０、出力デコーダ５、空アドレスバッファ８、ヘッダ抽出部１２、入力回線１００、出力回線１１０、書込みアドレスレジスタ（ＷＡ）２０、ＷＡ選択回路２１、振り分けポインタ２２、読出しアドレスレジスタ（ＲＡ）３０、ＲＡ選択回路３１、および読み出しポインタ３２を有する。バッファメモリ１は、同一アドレスを有するパケット格納部１−１およびアドレスポインタ格納領域１−２を有する。
【００１４】
入力回線１００から入力されたパケットはヘッダ抽出部１２にてフロー識別用のヘッダが抽出される。フローデコーダ４０はヘッダ抽出部１２から出力されたパケットのヘッダに従って、フローをデコードする。デコードされたフローに対応するＷＡ選択回路２１は、振り分けポインタ２２に従って、ｍ個の書き込みアドレスレジスタ（２０−ｘ−１〜２０−ｘ−ｍ、ｘは１からｎ）の１つを巡回的に選択する。例えば、フロー１に対しては振り分けポインタ２２−１により、書き込みアドレスレジスタＷＡ１１（２０−１−１）から書き込みアドレスレジスタＷＡ１ｍ（２０−１−ｍ）が巡回的に選択される。選択された書き込みアドレスレジスタ２０に格納されているアドレスはバッファメモリ１へ送信される。ヘッダ抽出部１２を通過したパケットは、書込みアドレスレジスタ２０（２０−１−１〜２０−ｎ−ｍの何れか）で指定されたバッファメモリ１内のパケット格納部１−１に書込まれる。このとき、空アドレスバッファ８から読み出された空アドレスが、指定されたパケット格納部１−１と同一アドレスのアドレスポインタ格納領域１−２と、選択された書込みアドレスレジスタ（ＷＡ）２０（２０−１−１〜２０−ｎ−ｍの何れか）に書き込まれる。以上の構成により、同一フローに属するパケットが、ｍ個の出力順序チェーンへ巡回的に書き込まれる。
【００１５】
次にパケットの読み出し動作について説明する。各読出し時刻にバッファメモリ１から読み出されるパケットの読出しアドレスは、読み出し制御部７３より指示されるフロー（１からｎ）に対して、各フロー毎に設けられているｍ個の読出しアドレスレジスタ（ＲＡ）３０（３０−ｘ−１〜３０−ｘ−ｍ、ｘは１からｎ）の一つを選択することにより指示される。読み出し制御部７３は、優先クラス別制御、帯域制御など所定の読み出しアルゴリズムにより読み出すべきフローを指示する。ここで、フロー毎の読み出しアドレスレジスタ３０の選択はＲＡ選択回路３１により、パケットの順序逆転が起こらないように行う。つまり、対となる書き込みアドレスレジスタ２０と同じ順序の巡回選択が行われるように、読み出しポインタ３２よりアドレスレジスタを指定する。パケット格納部１−１から出力されたパケットは出力回線１１０へ出力される。パケットが読み出されると同時に、同一アドレスに格納されているアドレスポインタが，そのアドレスを指定した読出しアドレスレジスタ（ＲＡ）３０（３０−１−１〜３０−ｎ−ｍの何れか）に書き込まれる。パケット読み出し終了後のバッファメモリのアドレスは空アドレスバッファ８に書き込まれる。
【００１６】
次に本発明の特徴となるパケット書き込み時の振り分け処理の詳細を図５に示す。
【００１７】
振り分けポインタ２２はｍ進カウンタ２２０を有する。自フロー宛てのパケットが入力された場合には、フローデコーダ４０よりイネーブル信号（ｅｎｂ）４００が振り分けポインタ２２に入力され、ｍ進カウンタ２２０がカウントアップする。ＷＡ選択回路２１は、カウンタ値２２２をデコードすることにより、ｍ個のＷＡ２０のうちの一つを選択する。以上の構成により、自フローに該当するパケットが入力されると、ｍ個のＷＡ２０が巡回的に選択される。
【００１８】
図６はパケット読み出し処理の詳細を示す。読み出しポインタ３２はｍ進カウンタ３２０を有する。出力デコーダ５より自フローの出力タイミングであることを通知されるとイネーブル信号（ｅｎｂ）４０１が、読み出しポインタ３２に入力され、該当フローに読み出しパケットがある場合のみ、ｍ進カウンタ３２０がカウントアップする。該当フローに読み出しパケットがあるかどうかは、残パケット情報３２３により通知される。残パケット情報３２３は、フロー毎の入力パケット数と出力パケット数より計算される。もしくは、出力順序チェーンのＷＡ２０とＲＡ３０の一致／不一致により判定することもできる。ＲＡ選択回路３１では、読み出しポインタ３２より出力されるカウンタ値３２２をデコードして、ｍ個のＲＡ３０の一つを選択する。以上の構成により、自フローに該当するパケットの出力毎にｍ個のＲＡ３０が巡回選択される。さらに、振り分けポインタ２２と読み出しポインタ３２は、初期化時にそれぞれリセット信号２２１、３２１を入力し、それぞれのカウンタ値をゼロにリセットする。
【００１９】
次に図８に示すタイムチャートを用いて、各フローに対してのパケット出力時間間隔短縮の効果を示す。図８は各フローに対して複数（本例では４本）の出力順序チェーン５１−ａ〜５１−ｄを割り当ててパイプライン化を行った場合のタイムチャートである。図７と同様にバッファメモリ１にアドレスを与えた後、パケットデータとアドレスポインタが出力されて読み出しアドレスレジスタが更新されるのに３タイミングを要すると仮定する。例として、図１におけるｎ個のフローのうちの１フローに着目して出力順序チェーンを考える。例えば時刻Ｔ１で読み出しアドレスレジスタ（ＲＡ１１）３０−１−１より与えたアドレスＡａ１に対して、パケットデータＤａ１およびアドレスポインタＡａ２は、時刻Ｔ４にて出力される（５１−ａ）。また、時刻Ｔ２で読み出しアドレスレジスタ（ＲＡ１２）３０−１−２より与えたアドレスＡｂ１に対して、パケットデータＤｂ１およびアドレスポインタＡｂ２は、時刻Ｔ５にて出力される（５１−ｂ）。このように、１つの出力順序チェーンの更新が終了する前に、連続して、別の出力順序チェーンのアドレスをバッファメモリ１に与えることができるので、パケットデータの出力間隔は１タイミング周期（５１−２）となる。
【００２０】
次に、振り分けポインタ２２により同一のフローのパケットを複数の出力順序チェーンに順次格納し、その後、読み出しポインタ３２により格納されたパケットが順次、選択出力される様子を説明する。図９は簡単のため品質クラス別の２つフローに対して、それぞれ４つの出力順序チェーンを割り当ててパイプライン化した構成を論理的に示している。各々のパケットのヘッダに付与されている品質クラス表示（Ｈ：高優先、Ｌ：低優先）に従って、品質クラス対応の出力順序チェーン郡５３Ｈ、５３Ｌ（５３Ｈは高優先キュー、５３Ｌは低優先キュー）に振り分けられる。その後、各出力順序チェーン群毎の該当する振り分けポインタ２２Ｈ、２２Ｌにより、それぞれ巡回的に４つの出力順序チェーンへ振り分けられる。具体的には、高優先パケットＡ（５２Ｈ−１）、Ｄ（５２Ｈ−４）、Ｅ（５２Ｈ−５）は、振り分けポインタ２２Ｈにより振り分けられ、低優先パケットＢ（５２Ｌ−２）、Ｃ（５２Ｌ−３）は、振り分けポインタ２２Ｌにより振り分けられる。読み出しに関しては、読み出し制御部７３の指示に従って、各出力順序チェーン群毎の読み出しポインタ３２Ｈ、３２Ｌおよびセレクタ２５０が駆動され、各フロー（この例では品質クラス単位）でパケットバッファに格納された順序を保存するように読み出しが行われる。図９の例では、２クラスの完全優先読み出し制御（高優先パケットを優先的に出力し、高優先パケットが無い場合にのみ低優先パケットを出力）が行われる例を示しているが、読み出し制御部の構成により、帯域制御などを行うことも可能である。さらに、品質クラス毎だけでなく、コネクションレベルや上位レイヤのパケットレベルなど様々なフロー毎においても同様に、本発明による共通バッファアドレスのパイプライン処理を適用することができる。
【００２１】
【発明の効果】
本発明により、同一のフローに属するセルを共通バッファから高速に連続読出しを行うことが可能となり、高速回線に対応したパケットシェーパが実現可能となる。
【図面の簡単な説明】
【図１】本発明による高速入出力回線対応の共通バッファ形パケットシェーパ。
【図２】一般的な共通バッファ形パケットシェーパの構成例。
【図３】一般的な共通バッファ形パケットシェーパの出力順序チェーンの説明図。
【図４】従来の一般的なパケットシェーパ装置の構成例。
【図５】本発明の共通バッファの振り分け処理部。
【図６】本発明の共通バッファの読み出し処理部。
【図７】一般的な共通バッファ形パケットシェーパのパケット出力タイムチャート。
【図８】本発明の共通バッファ形パケットシェーパのパケット出力タイムチャート。
【図９】本発明の共通バッファのアドレス管理動作例。
【符号の説明】
１…バッファメモリ、４０…フローデコーダ、５…出力デコーダ、８…空アドレスバッファ、１２…ヘッダ抽出部、２０…書込みアドレス（ＷＡ）レジスタ、２１…ＷＡ選択回路、２２…振り分けポインタ、３０…読出しアドレス（ＲＡ）レジスタ、３１…ＲＡ選択回路、３２…読み出しポインタ、７３…読み出し制御部、１００…入力回線、１１０…出力回線。
【図１】
0003736220.tif 000002
【図２】
0003736220.tif 000003
【図３】
0003736220.tif 000004
【図４】
0003736220.tif 000005
【図５】
0003736220.tif 000006
【図６】
0003736220.tif 000007
【図７】
0003736220.tif 000008
【図８】
0003736220.tif 000009
【図９】
0003736220.tif 000010