(57)【特許請求の範囲】
【請求項１】
セルを出力する複数のキューと、これらのキューのいずれかを適宜選択してセルを送出させるキュー選択手段とを備えたＡＴＭ装置において、
前記キュー選択手段が、前記キューごとに算出された最低保証帯域のウエイト値および最大保証帯域のウエイト値を用い、前記キューにそれぞれ設定された優先度にしたがって、前記キューのいずれかを適宜選択する制御部を備え、
前記最低保証帯域のウエイト値が、前記キューを最低保証帯域が設定されているものと設定されていないものとに分類し、次に、これらの最低保証帯域の総和をシェーピング速度から減算することによって得られた帯域を、前記最低保証帯域が設定されていないものの中で最も優先度が高いキューの最低保証帯域とし、続いて、全ての前記最低保証帯域についての最大公約数を算出し、さらに、この最大公約数で前記最低保証帯域をそれぞれ除算することによって得られ、
前記最大保証帯域のウエイト値が、前記最大公約数で前記最大保証帯域を除算することによって得られる、
ことを特徴とするＡＴＭ装置。
【請求項２】
前記制御部が、前記キューの前記最低保証帯域のウエイト値を優先度の高いものから順に読み出し、この最低保証帯域のウエイト値が「０」でない場合に、この最低保証帯域のウエイト値から「１」を減算した後で、当該キューにセルが存在するか否かを判断し、
当該キューにセルが存在する場合には、当該キューから１個のセルを送出するとともに、当該キューの前記最大保証帯域のウエイト値から「１」を減算し、
当該キューにセルが存在しない場合には、セルの送出が可能な他のキューの中で最も優先度が高いものから１個のセルを送出するとともに、セル送出を行った前記キューの前記最大保証帯域のウエイト値から「１」を減算する、
処理を繰り返すことを特徴とする請求項１に記載のＡＴＭ装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、ＡＴＭ（Asynchronous Transfer Mode）装置に関するものであり、より詳細には優先制御方式を用いてセルの送出を行うＡＴＭ装置に関するものである。
【０００２】
【従来の技術】
従来、ＡＴＭ装置のセル送出にかかる優先制御方式としては、例えば、完全優先制御方式や、ＷＲＲ(Weighted Round Robin)方式等が使用されていた。
【０００３】
完全優先制御方式では、各クラスキューに優先度が設定される。そして、最も優先度の高いクラスキューにセルが１個でも存在する場合には、常に、そのクラスキューのセルを送出する。一方、優先度の低いクラスキューからは、このクラスキューよりも優先度の高いクラスキューにセルが全く存在しない場合に限って、セルの送出が行われる。
【０００４】
また、ＷＲＲ方式では、各クラスキューに対して、何らかの基準に従って、送出セル数のウエイト値を設定する。また、各クラスキューにはダウン・カウンタを設け、ウエイト値に応じた初期値を設定する。ＡＴＭ装置の稼働中は、クラスキューから１個のセルが送出される度に、そのクラスキューのダウン・カウンタを「１」ずつ減数する。そして、ダウン・カウンタの計数値が「０」になったクラスキューはセルの送出を停止し、全てのクラスキューのダウン・カウンタの計数値が「０」になると各クラスキューのダウン・カウンタを初期値にリセットする。
【０００５】
【発明が解決しようとする課題】
しかしながら、完全優先方式には、優先度の高いクラスキューからのセルの送出が多くなりすぎ、優先度の低いクラスキューからセルが送出され難いという欠点があった。
【０００６】
また、ＷＲＲ方式には、各クラスキューに対応させて固定的に帯域を保証することはできるものの、通信回線の使用効率が悪いという欠点があった。
【０００７】
このため、優先度が低いキューも適切なセル送出速度を得ることができ、且つ、回線の使用効率が良いＡＴＭ装置が嘱望されていた。
【０００８】
【課題を解決するための手段】
この発明は、セルを出力する複数のキューと、これらのキューのいずれかを適宜選択してセルを送出させるキュー選択手段とを備えたＡＴＭ装置に関するものである。
【０００９】
そして、キュー選択手段が、キューごとに算出された最低保証帯域のウエイト値および最大保証帯域のウエイト値を用い、キューにそれぞれ設定された優先度にしたがって、キューのいずれかを適宜選択する制御部を備え、最低保証帯域のウエイト値が、キューを最低保証帯域が設定されているものと設定されていないものとに分類し、次に、これらの最低保証帯域の総和をシェーピング速度から減算することによって得られた帯域を、最低保証帯域が設定されていないものの中で最も優先度が高いキューの最低保証帯域とし、続いて、全ての最低保証帯域についての最大公約数を算出し、さらに、この最大公約数で最低保証帯域をそれぞれ除算することによって得られ、最大保証帯域のウエイト値が、最大公約数で最大保証帯域を除算することによって得られることを特徴とする。
【００１０】
このような構成によれば、キューごとに算出された最低保障帯域のウエイト値および最大保障帯域のウエイト値の範囲内で、キューの優先制御を行うので、セル送出が優先度の高いキューに偏ることを防止しつつ、十分な回線使用効率を確保することができる。
【００１１】
【発明の実施の形態】
以下、この発明の実施の形態について、図面を用いて説明する。なお、図中、各構成成分の大きさ、形状および配置関係は、この発明が理解できる程度に概略的に示してあるにすぎず、また、以下に説明する数値的条件は単なる例示にすぎないことを理解されたい。
【００１２】
図１は、この実施の形態に係るＡＴＭ装置の要部構成を概略的に示すブロック図である。なお、ここでは、クラスキューが４個の場合を例に採って説明する。
【００１３】
図１において、振り分け部１１０は、入力セルを、サービスのクラスに応じてクラスキューＱ１〜Ｑ４に振り分ける。例えば、ＩＴＵ−Ｔ標準のサービスであれば、クラスキューＱ１にはＤＢＲ(Deteministic Bit Rate transfer capacity) に係るセルＣ１，Ｃ１，・・・を、クラスキューＱ２にはＳＢＲ(Statistical Bit Rate)に係るセルＣ２，Ｃ２，・・・を、クラスキューＱ３にはＧＦＲ／ＡＢＲ(Guaranteed Frame Rate/Available Bit Rate)に係るセルＣ３，Ｃ３，・・・を、クラスキューＱ４にはＤＢＲのＵクラスに係るセルＣ４，Ｃ４，・・・を、それぞれ振り分けること等が可能である。
【００１４】
クラスキューＱ１〜Ｑ４は、振り分け部１１０によって振り分けられたセルを順次格納し、キュー選択部１２０の制御にしたがって、格納順に１個ずつ送出する。後述するように、各クラスキューＱ１〜Ｑ４には、それぞれ、サービスの種類に応じて優先度、最大帯域保証値および最低帯域保証値が設定される。
【００１５】
キュー選択部１２０は、制御部１２１の制御にしたがってクラスキューＱ１〜Ｑ４のいずれかを適宜選択し、セルを送出させる。キュー選択部１２０からのセルの送出は、一定の帯域（シェーピング速度）で行われ、この帯域を越えてセルを送出することはできない。
【００１６】
制御部１２１は、優先度、最低保証帯域のウエイト値および最大保証帯域のウエイト値を、クラスキューＱ１〜Ｑ４ごとに記憶している。そして、これらの値を用いてクラスキューＱ１〜Ｑ４の選択を制御する。
【００１７】
次に、最低保証帯域および最大保証帯域のウエイト値を演算する手順について、図２のフローチャートを用いて説明する。
【００１８】
まず、初期値の設定等を行った後（Ｓ２０１）、最初のクラスキューＱ１に最低帯域保証値Ｂmin(1)が設定されているか否かを判断する（Ｓ２０２）。そして、クラスキューＱ１に最低帯域保証値Ｂmin(1)が設定されていない場合（すなわちＢmin(1)＝０の場合）は、このクラスキューＱ１を最優先キューに指定する（Ｓ２０３）。一方、クラスキューＱ１に最低帯域保証値Ｂmin(1)が設定されている場合（すなわちＢmin(1)≠０の場合）には、この最低帯域保証値をＢsum （初期設定では「０」）に加算する。
【００１９】
次に、全てのクラスキューＱ１〜Ｑ４についての処理が終了したか否かを判断する（Ｓ２０５）。ここではクラスキューＱ２〜Ｑ４についての処理が行われていないので、続いて、クラスキューＱ２に最低帯域保証値が設定されているか否かを判断する（Ｓ２０２）。そして、クラスキューＱ２に最低帯域保証値Ｂmin(2)が設定されていない場合は、クラスキューＱ１の優先度とクラスキューＱ２の優先度とを比較し、クラスキューＱ２の優先度の方が高い場合には、最優先キューをクラスキューＱ２に変更する（Ｓ２０３）。一方、クラスキューＱ２に最低帯域保証値Ｂmin(2)が設定されている場合には、この最低帯域保証値をＢsum に加算する。
【００２０】
以下同様にして、クラスキューＱ３，Ｑ４の処理を行う。
【００２１】
全てのクラスキューＱ１〜Ｑ４についての処理が終了すると、続いて、キュー選択部１２０に固有のシェーピング速度Ｂs と最低帯域保証値の総和Ｂsum との差Ｂs −Ｂsum を算出し、この算出結果を、ステップＳ２０３で求めた最優先キューの最低帯域保証値Ｂmin に設定する（Ｓ２０６）。
【００２２】
次に、ウエイト係数ｋｗとして、クラスキューＱ１〜Ｑ４の最低帯域保証値Ｂmin についての最大公約数を求める（Ｓ２０７）。この演算に使用する最低帯域保証値Ｂmin には、ステップＳ２０６で設定した最優先キューの最低帯域保証値を含むが、最低帯域保証値が設定されていないクラスキュー（すなわちＢmin ＝０）については無視する。
【００２３】
続いて、このウエイト係数ｋｗを用いて、最低帯域保証値Ｂmin および最大帯域保証値Ｂmax のウエイト値を算出する（Ｓ２０８）。最低帯域保証値Ｂmin のウエイト値（以下、「最低帯域保証ウエイト値」と記す）Ｗmin は、各最低帯域保証値Ｂmin をウエイト係数ｋｗで除算することによって得られる。同様に、最大帯域保証値Ｂmax のウエイト値（以下、「最大帯域保証ウエイト値」と記す）Ｗmax は、各最大帯域保証値Ｂmax をウエイト係数ｋｗで除算することによって得られる。
【００２４】
以下、図２に示した演算処理の具体例について説明する。ここでは、各クラスキューＱ１〜Ｑ４の最低帯域保証値Ｂmin(i)、最大帯域保証値Ｂmax(i)および優先度Ｄ(i) を表１のように定め、且つ、キュー選択部１２０のシェーピング速度Ｂs を「１５」とした場合を例に採って説明する。
【００２５】
【表１】
0003646772.tif 000002
【００２６】
表１に示したように、最低帯域保証値Ｂmin が設定されていないクラスキュー（すなわち、Ｂmin(i)＝０のクラスキュー）はＱ１，Ｑ２であり、また、クラスキューＱ２よりもクラスキューＱ１の方が優先度が高い。したがって、ステップＳ２０３で指定される最優先キューは、クラスキューＱ１となる。また、表１より、ステップ２０４で算出される最低帯域保証値Ｂmin の総和はＢsum ＝５となる。したがって、シェーピング速度Ｂs （＝１５）と総和Ｂsum との差はＢs −Ｂsum ＝１０となるので、ステップ２０６では、クラスキューＱ１の最低帯域保証値Ｂmin(1)に「１０」が代入される。
【００２７】
また、ステップ２０７では、Ｂmin(1)＝１０、Ｂmin(3)＝３およびＢmin(4)＝２の最大公約数が求められ、したがって、ウエイト係数ｋｗ＝１となる。これにより、各クラスキューＱ１〜Ｑ４の最低帯域保証ウエイト値Ｗmin(1)〜Ｗmin(4)および最大帯域保証ウエイト値Ｗmax(1)〜Ｗmax(4)は、表２のようになる。
【００２８】
【表２】
0003646772.tif 000003
【００２９】
次に、これらのウエイト値を用いた優先制御の手順について、図３のフローチャートを用いて説明する。
【００３０】
制御部１２１は、まず、初期値の設定等を行った後（Ｓ３０１）、クラスキューＱ１〜Ｑ４から、処理を行うクラスキューを選択する（Ｓ３０２）。通常は、クラスキューの番号順に処理を行えばよい。この実施の形態では、Ｑ１→Ｑ２→Ｑ３→Ｑ４の順で処理を行うこととする。
【００３１】
次に、最初に処理を行うクラスキューＱ１の最低帯域保証ウエイト値Ｗmin(1)が「０」であるか否かをチェックする（Ｓ３０３）。「０」の場合には、クラスキューＱ１〜Ｑ４の最低帯域保証ウエイト値Ｗmin(1)〜Ｗmin(4)が全て「０」になっているか否かをチェックする（Ｓ３１０）。そして、他に最低帯域保証ウエイト値が「０」でないクラスキューが存在する場合にはステップＳ３０２に戻り、最低帯域保証ウエイト値Ｗmin(1)〜Ｗmin(4)が全て「０」の場合には処理を終了する。
【００３２】
一方、ステップＳ３０３において、最低帯域保証ウエイト値Ｗmin(1)が「０」でない場合には、Ｗmin(1)を「１」だけ減らし（Ｓ３０４）、クラスキューＱ１内にセルＣ１が格納されているか否かをチェックする（Ｓ３０５）。ここで、クラスキューＱ１内にセルＣ１が格納されている場合には、そのセルＣ１をクラスキューＱ１から送出し（Ｓ３０７）、最大帯域保証ウエイト値Ｗmax(1)の値を「１」だけ減らした後（Ｓ３０８）、ステップＳ３０２に戻る。
【００３３】
ステップＳ３０５において、セルＣ１が格納されていないと判断した場合には、他のクラスキューＱ２〜Ｑ４のうちセルの送出が可能なクラスキューを、優先度にしたがって検索する（Ｓ３０６）。この検索では、まず、優先度が高いクラスキューから順にセルの有無をチェックし、セルが格納されている場合には、そのクラスキューの最大帯域保証ウエイト値Ｗmax が「０」であるか否かをチェックする。セルが格納され且つ最大帯域保証ウエイト値Ｗmax が「０」で無い場合には、セル送出が可能なクラスキューであると判断される。
【００３４】
ステップＳ３０６において、セルの送出が可能なクラスキューが存在する場合には、そのクラスキューからセルを送出し（Ｓ３０７）、セルを送出したクラスキューの最大帯域保証ウエイト値Ｗmax を「１」だけ減らした後（Ｓ３０８）、ステップＳ３０２に戻る。
【００３５】
一方、ステップＳ３０６において、セルの送出が可能なクラスキューが存在しない場合には、空セルを出力した後（Ｓ３０９）、ステップＳ３０２に戻る。
【００３６】
ステップＳ３０２に戻ると、クラスキューＱ１の場合と同様にして、クラスキューＱ２〜Ｑ４の処理を順次行う。
【００３７】
以下、図３に示した優先制御の具体例について、図４〜図９の概念図を用いて説明する。
【００３８】
ここでは、各クラスキューＱ１〜Ｑ４の最低帯域保証ウエイト値Ｗmin(i)、最大帯域保証ウエイト値Ｗmax(i)および優先度Ｄ(i) を、表２のように定めた場合を例に採って説明する。また、図４（Ａ）に示したように、初期状態では、クラスキューＱ１には７個のセルＣ１，Ｃ１，・・・が、クラスキューＱ２には２個のセルＣ２，Ｃ２が、クラスキューＱ３，Ｑ４にはそれぞれ３個のセルＣ３，Ｃ３，Ｃ３、Ｃ４，Ｃ４，Ｃ４が、格納されているものとする。
【００３９】
まず、ステップＳ３０１で初期値の設定等を行った後、ステップＳ３０２で、最初に処理を行うクラスキューとして、クラスキューＱ１を選択する。
【００４０】
次に、ステップＳ３０３で、クラスキューＱ１の最低帯域保証ウエイト値Ｗmin(1)が「０」か否かをチェックする。ここではＷmin(1)は「０」ではないので、ステップＳ３０４で、Ｗmin(1)に「９」を代入する。そして、ステップＳ３０５で、クラスキューＱ１内にセルＣ１が格納されているか否かをチェックする。ここではセルＣ１が格納されているので、ステップＳ３０７でクラスキューＱ１の１個目のセルＣ１を送出し、さらに、ステップＳ３０８で最大帯域保証ウエイト値Ｗmax(1)に「１４」を代入して（図４（Ｂ）参照）、ステップＳ３０２に戻る。
【００４１】
続いて、ステップＳ３０２でクラスキューＱ２を選択し、ステップＳ３０３でクラスキューＱ２の最低帯域保証ウエイト値Ｗmin(2)が「０」であると判断する。そして、ステップＳ３１０で、他の最低帯域保証ウエイト値Ｗmin に「０」でないものがあると判断して、ステップＳ３０２に戻る。
【００４２】
ステップＳ３０２でクラスキューＱ３を選択し、ステップＳ３０３で最低帯域保証ウエイト値Ｗmin(3)が「０」でないと判断する。そして、ステップＳ３０４で、Ｗmin(3)に「２」を代入した後、ステップＳ３０５で、クラスキューＱ３内にセルＣ３が格納されていると判断する。続いて、ステップＳ３０７でクラスキューＱ３の１個目のセルＣ３を送出し、さらに、ステップＳ３０８で最大帯域保証ウエイト値Ｗmax(3)に「３」を代入して（図４（Ｃ）参照）、ステップＳ３０２に戻る。
【００４３】
ステップＳ３０２でクラスキューＱ４を選択し、ステップＳ３０３で最低帯域保証ウエイト値Ｗmin(4)が「０」でないと判断する。そして、ステップＳ３０４で、Ｗmin(4)に「１」を代入した後、ステップＳ３０５で、クラスキューＱ４内にセルＣ４が格納されていると判断する。続いて、ステップＳ３０７でクラスキューＱ４の１個目のセルＣ４を送出し、さらに、ステップＳ３０８で最大帯域保証ウエイト値Ｗmax(4)に「２」を代入して（図５（Ａ）参照）、ステップＳ３０２に戻る。
【００４４】
ステップＳ３０２で再びクラスキューＱ１が選択され、上述のクラスキューＱ１の制御と同様にして、このクラスキューＱ１の２個目のセルＣ１が送出される。この制御においては、ステップＳ３０４で最低帯域保証ウエイト値Ｗmin(1)に「８」が代入され、ステップＳ３０８で最大帯域保証ウエイト値Ｗmax(1)に「１３」が代入される（図５（Ｂ）参照）。
【００４５】
ステップＳ３０２でクラスキューＱ２が選択され、上述のクラスキューＱ２の制御と同様にしてステップＳ３０２に戻る。
【００４６】
ステップＳ３０２でクラスキューＱ３が選択され、上述のクラスキューＱ３の制御と同様にして、このクラスキューＱ３の２個目のセルＣ３が送出される。この制御においては、ステップＳ３０４で最低帯域保証ウエイト値Ｗmin(3)に「１」が代入され、ステップＳ３０８で最大帯域保証ウエイト値Ｗmax(3)に「２」が代入される（図５（Ｃ）参照）。
【００４７】
ステップＳ３０２でクラスキューＱ４が選択され、上述のクラスキューＱ４の制御と同様にして、このクラスキューＱ４の２個目のセルＣ４が送出される。この制御においては、ステップＳ３０４で最低帯域保証ウエイト値Ｗmin(4)に「０」が代入され、ステップＳ３０８で最大帯域保証ウエイト値Ｗmax(4)に「１」が代入される（図６（Ａ）参照）。
【００４８】
ステップＳ３０２でクラスキューＱ１が選択され、上述のクラスキューＱ１の制御と同様にして、このクラスキューＱ１の３個目のセルＣ１が送出される。この制御においては、ステップＳ３０４で最低帯域保証ウエイト値Ｗmin(1)に「７」が代入され、ステップＳ３０８で最大帯域保証ウエイト値Ｗmax(1)に「１２」が代入される（図６（Ｂ）参照）。
【００４９】
ステップＳ３０２でクラスキューＱ２が選択され、上述のクラスキューＱ２の制御と同様にしてステップＳ３０２に戻る。
【００５０】
ステップＳ３０２でクラスキューＱ３が選択され、上述のクラスキューＱ３の制御と同様にして、このクラスキューＱ３の３個目のセルＣ３が送出される。この制御においては、ステップＳ３０４で最低帯域保証ウエイト値Ｗmin(3)に「０」が代入され、ステップＳ３０８で最大帯域保証ウエイト値Ｗmax(3)に「１」が代入される（図６（Ｃ）参照）。
【００５１】
続いて、ステップＳ３０２でクラスキューＱ４が選択され、ステップＳ３０３で最低帯域保証ウエイト値Ｗmin(4)が「０」であると判断し、さらに、ステップＳ３１０で、最低帯域保証ウエイト値Ｗmin が「０」でないクラスキューが存在すると判断して、ステップＳ３０２に戻る。そして、ステップＳ３０２で、クラスキューＱ１が選択されて、上述のクラスキューＱ１の制御と同様にして、このクラスキューＱ１の４個目のセルＣ１が送出される。この制御においては、ステップＳ３０４では最低帯域保証ウエイト値Ｗmin(1)に「６」が代入され、ステップＳ３０８では最大帯域保証ウエイト値Ｗmax(1)に「１１」が代入される（図７（Ａ）参照）。
【００５２】
ステップＳ３０２でクラスキューＱ２が選択され、ステップＳ３０３で最低帯域保証ウエイト値Ｗmin(2)が「０」であると判断され、さらに、ステップＳ３１０で、最低帯域保証ウエイト値Ｗmin が「０」でないクラスキューが存在すると判断されて、ステップＳ３０２に戻る。そして、ステップＳ３０２で、クラスキューＱ１が選択されて、上述のクラスキューＱ１の制御と同様にして、このクラスキューＱ１の５個目のセルＣ１が送出される。この制御においては、ステップＳ３０４では最低帯域保証ウエイト値Ｗmin(1)に「５」が代入され、ステップＳ３０８では最大帯域保証ウエイト値Ｗmax(1)に「１０」が代入される（図７（Ｂ）参照）。
【００５３】
以下、これと同様にして、クラスキューＱ２についての制御とクラスキューＱ１についての制御とが、２回繰り返される。先の制御では、ステップＳ３０４で最低帯域保証ウエイト値Ｗmin(1)に「４」が代入され、ステップＳ３０８で最大帯域保証ウエイト値Ｗmax(1)に「９」が代入される（図７（Ｃ）参照）。また、後の制御では、ステップＳ３０４で最低帯域保証ウエイト値Ｗmin(1)に「３」が代入され、ステップＳ３０８で最大帯域保証ウエイト値Ｗmax(1)に「８」が代入される（図８（Ａ）参照）。これにより、クラスキューＱ１の７個のセルＣ１が全て送出されたことになる。
【００５４】
続いて、クラスキューＱ２，Ｑ３，Ｑ４についてステップＳ３０２，Ｓ３０３，Ｓ３１０の処理が繰り返された後、ステップＳ３０２でクラスキューＱ１が選択される。そして、ステップＳ３０４で最低帯域保証ウエイト値Ｗmin(1)に「２」が代入された後、ステップＳ３０５でセルＣ１がないと判断される。このため。ステップＳ３０６では、セルが格納されているクラスキューの中で最も優先度が高く且つ最大帯域保証ウエイト値Ｗmax が「０」でないクラスキューである、クラスキューＱ２が選択される。そして、ステップＳ３０７で、クラスキューＱ２から、１個目のセルＣ２が送出される。その後、ステップＳ３０８で、最大帯域保証ウエイト値Ｗmax(2)に「１４」が代入され、ステップＳ３０２に戻る（図８（Ｂ）参照）。
【００５５】
同様に、クラスキューＱ２，Ｑ３，Ｑ４についてステップＳ３０２，Ｓ３０３，Ｓ３１０の処理が繰り返された後、ステップＳ３０２でクラスキューＱ１が選択される。そして、ステップＳ３０４で最低帯域保証ウエイト値Ｗmin(1)に「１」が代入された後、ステップＳ３０５でセルＣ１がないと判断され、ステップＳ３０６でクラスキューＱ２が選択され、さらに、ステップＳ３０７でクラスキューＱ２の２個目のセルＣ２が送出される。その後、ステップＳ３０８で最大帯域保証ウエイト値Ｗmax(2)に「１３」が代入され、ステップＳ３０２に戻る（図８（Ｃ）参照）。
【００５６】
次に、クラスキューＱ２，Ｑ３，Ｑ４についてステップＳ３０２，Ｓ３０３，Ｓ３１０の処理が繰り返された後、ステップＳ３０２でクラスキューＱ１が選択される。そして、ステップＳ３０４で最低帯域保証ウエイト値Ｗmin(1)に「０」が代入された後、ステップＳ３０５でセルＣ１がないと判断される。これに続いて、ステップＳ３０６では、セルが格納されている唯一のクラスキューである、クラスキューＱ４が選択される。さらに、ステップＳ３０７で、クラスキューＱ４の３個目のセルＣ４が送出される。その後、最大帯域保証ウエイト値Ｗmax(4)に「０」が代入され、ステップＳ３０２に戻る（図９参照）。
【００５７】
最後に、ステップＳ３０２でクラスキューＱ２が選択され、ステップＳ３０３でクラスキューＱ２の最低帯域保証ウエイト値Ｗmin(2)が「０」であると判断され、さらに、ステップＳ３１０で他の最低帯域保証ウエイト値Ｗmin に「０」以外のものがないと判断されて、優先制御を終了する。
【００５８】
続いて、図３に示した優先制御の他の具体例について、図１０〜図１５の概念図を用いて説明する。
【００５９】
この例でも、各クラスキューＱ１〜Ｑ４の最低帯域保証ウエイト値Ｗmin(i)、最大帯域保証ウエイト値Ｗmax(i)および優先度Ｄ(i) を、表２のように定めた場合を例に採って説明する。また、図１０（Ａ）に示したように、初期状態では、クラスキューＱ１には３個のセルＣ１，Ｃ１，Ｃ１が、クラスキューＱ２には２個のセルＣ２，Ｃ２が、クラスキューＱ３，Ｑ４にはそれぞれ５個のセルＣ３，Ｃ３，・・・、Ｃ４，Ｃ４，・・・が格納されているものとする。
【００６０】
まず、ステップＳ３０１で初期値の設定等を行った後、ステップＳ３０２で、最初に処理を行うクラスキューとして、クラスキューＱ１を選択する。そして、ステップＳ３０３で、クラスキューＱ１の最低帯域保証ウエイト値Ｗmin(1)が「０」でないと判断し、テップＳ３０４で、Ｗmin(1)に「９」を代入する。続いて、ステップＳ３０５で、クラスキューＱ１内にセルＣ１が格納されていると判断し、ステップＳ３０７でクラスキューＱ１の１個目のセルＣ１を送出し、さらに、ステップＳ３０８で最大帯域保証ウエイト値Ｗmax(1)に「１４」を代入して（図１０（Ｂ）参照）、ステップＳ３０２に戻る。
【００６１】
続いて、ステップＳ３０２でクラスキューＱ２を選択し、ステップＳ３０３でクラスキューＱ２の最低帯域保証ウエイト値Ｗmin(2)が「０」であると判断する。そして、ステップＳ３１０で、他の最低帯域保証ウエイト値Ｗmin に「０」でないものがあると判断して、ステップＳ３０２に戻る。
【００６２】
ステップＳ３０２でクラスキューＱ３を選択し、ステップＳ３０３で最低帯域保証ウエイト値Ｗmin(3)が「０」でないと判断する。そして、ステップＳ３０４で、Ｗmin(3)に「２」を代入した後、ステップＳ３０５で、クラスキューＱ３内にセルＣ３が格納されていると判断する。続いて、ステップＳ３０７でクラスキューＱ３の１個目のセルＣ３を送出し、さらに、ステップＳ３０８で最大帯域保証ウエイト値Ｗmax(3)に「３」を代入して（図１０（Ｃ）参照）、ステップＳ３０２に戻る。
【００６３】
ステップＳ３０２でクラスキューＱ４を選択し、ステップＳ３０３で最低帯域保証ウエイト値Ｗmin(4)が「０」でないと判断する。そして、ステップＳ３０４で、Ｗmin(4)に「１」を代入した後、ステップＳ３０５で、クラスキューＱ４内にセルＣ４が格納されていると判断する。続いて、ステップＳ３１０でクラスキューＱ４の１個目のセルＣ４を送出し、ステップＳ３０８で最大帯域保証ウエイト値Ｗmax(4)に「２」を代入して（図１１（Ａ）参照）、ステップＳ３０２に戻る。
【００６４】
ステップＳ３０２でクラスキューＱ１が選択され、上述のクラスキューＱ１の制御と同様にして、このクラスキューＱ１の２個目のセルＣ１が送出される。この制御においては、ステップＳ３０４で最低帯域保証ウエイト値Ｗmin(1)に「８」が代入され、ステップＳ３０８で最大帯域保証ウエイト値Ｗmax(1)に「１３」が代入される（図１１（Ｂ）参照）。
【００６５】
ステップＳ３０２でクラスキューＱ２が選択され、上述のクラスキューＱ２の制御と同様にしてステップＳ３０２に戻る。
【００６６】
ステップＳ３０２でクラスキューＱ３が選択され、上述のクラスキューＱ３の制御と同様にして、このクラスキューＱ３の２個目のセルＣ３が送出される。この制御においては、ステップＳ３０４で最低帯域保証ウエイト値Ｗmin(3)に「１」が代入され、ステップＳ３０８で最大帯域保証ウエイト値Ｗmax(3)に「２」が代入される（図１１（Ｃ）参照）。
【００６７】
ステップＳ３０２でクラスキューＱ４が選択され、上述のクラスキューＱ４の制御と同様にして、このクラスキューＱ４の２個目のセルＣ４が送出される。この制御においては、ステップＳ３０４で最低帯域保証ウエイト値Ｗmin(4)に「０」が代入され、ステップＳ３０８で最大帯域保証ウエイト値Ｗmax(4)に「１」が代入される（図１２（Ａ）参照）。
【００６８】
ステップＳ３０２でクラスキューＱ１が選択され、上述のクラスキューＱ１の制御と同様にして、このクラスキューＱ１の３個目のセルＣ１が送出される。この制御においては、ステップＳ３０４で最低帯域保証ウエイト値Ｗmin(1)に「７」が代入され、ステップＳ３０８で最大帯域保証ウエイト値Ｗmax(1)に「１２」が代入される（図１２（Ｂ）参照）。
【００６９】
ステップＳ３０２でクラスキューＱ２が選択され、上述のクラスキューＱ２の制御と同様にしてステップＳ３０２に戻る。
【００７０】
ステップＳ３０２でクラスキューＱ３が選択され、上述のクラスキューＱ３の制御と同様にして、このクラスキューＱ３の３個目のセルＣ３が送出される。この制御においては、ステップＳ３０４で最低帯域保証ウエイト値Ｗmin(3)に「０」が代入され、ステップＳ３０８で最大帯域保証ウエイト値Ｗmax(3)に「１」が代入される（図１２（Ｃ）参照）。
【００７１】
次に、ステップＳ３０２でクラスキューＱ４が選択され、ステップＳ３０３で最低帯域保証ウエイト値Ｗmin(4)が「０」であると判断し、さらに、ステップＳ３１０で、最低帯域保証ウエイト値Ｗmin が「０」でないクラスキューが存在すると判断して、ステップＳ３０２に戻る。そして、ステップＳ３０２で、クラスキューＱ１が選択され、ステップＳ３０３で最低帯域保証ウエイト値Ｗmin(1)が「０」でないと判断し、ステップＳ３０４でＷmin(1)に「６」を代入するが、その後、ステップＳ３０５で、クラスキューＱ１にセルＣ１が格納されていないと判断される。このため、ステップＳ３０６では、セルが格納されているクラスキューの中で最も優先度が高く且つ最大帯域保証ウエイト値Ｗmax が「０」でないクラスキューである、クラスキューＱ２が選択される。そして、ステップＳ３０７で、クラスキューＱ２の１個目のセルＣ２が送出される。その後、ステップＳ３０８で最大帯域保証ウエイト値Ｗmax(2)に「１４」が代入され、ステップＳ３０２に戻る（図１３（Ａ）参照）。
【００７２】
続いて、クラスキューＱ２，Ｑ３，Ｑ４についてステップＳ３０２，Ｓ３０３，Ｓ３１０の処理が繰り返された後、ステップＳ３０２でクラスキューＱ１が選択される。そして、ステップＳ３０４で最低帯域保証ウエイト値Ｗmin(1)に「５」が代入された後、ステップＳ３０５でクラスキューＱ１内にセルＣ１がないと判断され、ステップＳ３０６でクラスキューＱ２が選択される。そして、ステップＳ３０７で、クラスキューＱ２の２個目のセルＣ２が送出される。その後、ステップＳ３０８で最大帯域保証ウエイト値Ｗmax(2)に「１３」が代入され、ステップＳ３０２に戻る（図１３（Ｂ）参照）。
【００７３】
次に、クラスキューＱ２，Ｑ３，Ｑ４についてステップＳ３０２，Ｓ３０３，Ｓ３１０の処理が繰り返された後、ステップＳ３０２でクラスキューＱ１が選択される。そして、ステップＳ３０４で最低帯域保証ウエイト値Ｗmin(1)に「４」が代入された後、ステップＳ３０５でクラスキューＱ１内にセルＣ１がないと判断される。このため、ステップＳ３０６では、セルの送出が可能で且つ最大帯域保証ウエイト値Ｗmax が「０」でないクラスキューＱ３，Ｑ４から、優先度が高いクラスキューＱ３が選択される。そして、ステップＳ３０７で、クラスキューＱ３の４個目のセルＣ３が送出される。その後、ステップＳ３０９で最大帯域保証ウエイト値Ｗmax(3)に「０」が代入され、ステップＳ３０２に戻る（図１３（Ｃ）参照）。
【００７４】
同様に、クラスキューＱ２，Ｑ３，Ｑ４についてステップＳ３０２，Ｓ３０３，Ｓ３１０の処理が繰り返された後、ステップＳ３０２でクラスキューＱ１が選択される。そして、ステップＳ３０４で最低帯域保証ウエイト値Ｗmin(1)に「３」が代入された後、ステップＳ３０５で、クラスキューＱ１内にセルＣ１がないと判断される。ここで、セルが格納されているクラスキューはＱ３，Ｑ４のみであり、且つ、クラスキューＱ３の最低帯域保証ウエイト値Ｗmax(3)は「０」であるため、ステップＳ３０６では、クラスキューＱ４が選択される。そして、ステップＳ３０７で、クラスキューＱ４の３個目のセルＣ４が送出される。その後、ステップＳ３０８で最大帯域保証ウエイト値Ｗmax(4)に「０」が代入され、ステップＳ３０２に戻る（図１４（Ａ）参照）。
【００７５】
続いて、クラスキューＱ２，Ｑ３，Ｑ４についてステップＳ３０２，Ｓ３０３，Ｓ３１０の処理が繰り返された後、ステップＳ３０２でクラスキューＱ１が選択される。そして、ステップＳ３０４で最低帯域保証ウエイト値Ｗmin(1)に「２」が代入された後、ステップＳ３０５でクラスキューＱ１内にセルＣ１がないと判断される。ここで、クラスキューＱ３，Ｑ４にはセルが格納されているが、これらのクラスキューＱ３，Ｑ４の最大帯域保証ウエイト値Ｗmax(3)，Ｗmax(4)は「０」なので、ステップＳ３０６では、セルの送出が可能なクラスキューは無いと判断される。この場合には、ステップＳ３０９で空セルが出力された後、ステップＳ３０２に戻る（図１４（Ｂ）参照）。
【００７６】
以下、これと同様にして、ステップＳ３０９で空セルが出力する制御が、２回繰り返される。先の制御では、ステップＳ３０４で最低帯域保証ウエイト値Ｗmin(1)に「１」が代入される（図１４（Ｃ）参照）。また、後の制御では、ステップＳ３０４で最低帯域保証ウエイト値Ｗmin(1)に「０」が代入される（図１５参照）。
【００７７】
最後に、ステップＳ３０２でクラスキューＱ２が選択され、ステップＳ３０３でクラスキューＱ２の最低帯域保証ウエイト値Ｗmin(2)が「０」であると判断され、さらに、ステップＳ３１０で他の最低帯域保証ウエイト値Ｗmin に「０」以外のものがないと判断されて、優先制御を終了する。
【００７８】
このように、この実施の形態では、最大帯域保証ウエイト値Ｗmax が「０」の場合には、クラスキューにセルが格納されていたとしても、セルを送出しない。
【００７９】
このように、この実施の形態にかかるＡＴＭ装置では、最大保証帯域および最低保障帯域のウエイト値Ｗmin ，Ｗmax の制限にしたがって、優先制御を行うこととした。これにより、この実施の形態によれば、セル送出が優先度の高いクラスキューに偏ることを防止しつつ、通信回線の使用効率を向上させることができる。
【００８０】
【発明の効果】
以上詳細に説明したように、この発明によれば、優先度に応じて適切なセル送出速度を得ることができ、且つ、通信回線の使用効率が良いＡＴＭ装置を提供することができる。
【図面の簡単な説明】
【図１】実施の形態に係るＡＴＭ装置の要部構成を概略的に示すブロック図である。
【図２】  実施の形態の最低保証帯域および最大保証帯域のウエイト値を演算する手順を示す概略フローチャートである。
【図３】実施の形態にかかるＡＴＭ装置の制御方法を示す概略フローチャートである。
【図４】実施の形態にかかるＡＴＭ装置の一動作例を説明するための概念図である。
【図５】実施の形態にかかるＡＴＭ装置の一動作例を説明するための概念図である。
【図６】実施の形態にかかるＡＴＭ装置の一動作例を説明するための概念図である。
【図７】実施の形態にかかるＡＴＭ装置の一動作例を説明するための概念図である。
【図８】実施の形態にかかるＡＴＭ装置の一動作例を説明するための概念図である。
【図９】実施の形態にかかるＡＴＭ装置の一動作例を説明するための概念図である。
【図１０】実施の形態にかかるＡＴＭ装置の他の動作例を説明するための概念図である。
【図１１】実施の形態にかかるＡＴＭ装置の他の動作例を説明するための概念図である。
【図１２】実施の形態にかかるＡＴＭ装置の他の動作例を説明するための概念図である。
【図１３】実施の形態にかかるＡＴＭ装置の他の動作例を説明するための概念図である。
【図１４】実施の形態にかかるＡＴＭ装置の他の動作例を説明するための概念図である。
【図１５】実施の形態にかかるＡＴＭ装置の他の動作例を説明するための概念図である。
【符号の説明】
１１０  振り分け部
１２０  キュー選択部
１２１  制御部
Ｑ１〜Ｑ４  クラスキュー
【図１】
0003646772.tif 000004
【図２】
0003646772.tif 000005
【図３】
0003646772.tif 000006
【図４】
0003646772.tif 000007
【図５】
0003646772.tif 000008
【図６】
0003646772.tif 000009
【図７】
0003646772.tif 000010
【図８】
0003646772.tif 000011
【図９】
0003646772.tif 000012
【図１０】
0003646772.tif 000013
【図１１】
0003646772.tif 000014
【図１２】
0003646772.tif 000015
【図１３】
0003646772.tif 000016
【図１４】
0003646772.tif 000017
【図１５】
0003646772.tif 000018