(57)【特許請求の範囲】
【請求項１】
入力ポートから入力したセルを書き込んでバッファリングするバッファメモリと、
入力したセルの品質クラスを識別するセル識別部と、
このセル識別部により識別されたセルの品質クラス毎に、前記バッファメモリに書き込まれたセルの書き込みアドレスを別々に保持する複数のクラス別キューと、
品質クラスの高いクラス別キューに保持されたセル書き込みアドレスを優先的に参照して前記バッファメモリからセルを読み出して出力するように読み出し制御部を制御するスケジューラを備えたことを特徴とするＡＴＭスイッチ。
【請求項２】
入力ポートから入力したセルを書き込んでバッファリングするバッファメモリと、
入力したセルの廃棄に対する品質クラスを識別するセル識別部と、
このセル識別部により識別されたセルの品質クラス毎に、前記バッファメモリに書き込まれたセルの書き込みアドレスを別々に保持する複数のクラス別キューと、
輻輳が発生して、新たに入力した品質クラスの高いセルを書き込むべき領域が前記バッファメモリ内に不足した時、
品質クラスの低いクラス別キューに保持された書き込みアドレスを廃棄して、新たに入力したセルの書き込みアドレスとするように書き込み制御部を制御するスケジューラを備えたことを特徴とするＡＴＭスイッチ。
【請求項３】
請求項１に記載のＡＴＭスイッチにおいて、
スケジューラは、品質クラスを判断するためのパラメータが複数ある場合に、パラメータ毎にクラス別キューの優先順位を別々に設定することを特徴とするＡＴＭスイッチ。
【請求項４】
入力ポートから入力したセルを書き込んでバッファリングするバッファメモリと、
入力したセルの品質クラスを識別するセル識別部と、
このセル識別部により識別されたセルの品質クラス毎に、前記バッファメモリに書き込まれたセルの書き込みアドレスを別々に保持する複数のクラス別キューと、
品質クラスの同等な複数のクラス別キューに保持されたセル書き込みアドレスを、順に公平に参照して、前記バッファメモリからセルを読み出して出力するように読み出し制御部を制御するサブスケジューラと、
全てのサブスケジューラのうちから、品質クラスの最も高い空でないクラス別キューのアドレスを参照している、サブスケジューラを選択して、これを起動するメインスケジューラを備えたことを特徴とするＡＴＭスイッチ。
【請求項５】
請求項４に記載のＡＴＭスイッチにおいて、
品質クラスの高い複数のクラス別キューのアドレスを参照しているサブスケジューラがあるとき、
メインスケジューラは、
当該サブスケジューラの制御する複数のクラス別キューの全てが空になった場合に限り、
品質クラスのより低い複数のクラス別キューのアドレスを参照している、別のサブスケジューラを起動することを特徴とするＡＴＭスイッチ。
【請求項６】
入力ポートから入力したセルを書き込んでバッファリングするバッファメモリと、
入力したセルの品質クラスを識別するセル識別部と、
このセル識別部により識別されたセルの品質クラス毎に、前記バッファメモリに書き込まれたセルの書き込みアドレスを別々に保持する複数のクラス別キューと、
品質クラスの高いクラス別キューに保持されたセル書き込みアドレスを優先的に参照して前記バッファメモリからセルを読み出して出力するように読み出し制御部を制御するスケジューラとを備え、
前記複数のクラス別キューは、
セル損失に対する要求水準の高いセルの書き込みアドレスを保持するものほど、許容最大キュー長を長く設定されることを特徴とするＡＴＭスイッチ。
【請求項７】
入力ポートから入力したセルを書き込んでバッファリングするバッファメモリと、
入力したセルの品質クラスを識別するセル識別部と、
このセル識別部により識別されたセルの品質クラス毎に、前記バッファメモリに書き込まれたセルの書き込みアドレスを別々に保持する複数のクラス別キューと、
セル遅延に対する要求水準の高いセルの書き込みアドレスを保持するクラス別キューに保持されたアドレスを優先的に参照して、前記バッファメモリからセルを読み出して出力するように読み出し制御部を制御するスケジューラとを備え、前記複数のクラス別キューに含まれる第１のクラス別キューと第２のクラス別キューとを比較したとき、
この第１のクラス別キューに比較して第２のクラス別キューが、セル遅延に対する要求水準が低くてセル廃棄に対する要求水準が高く、
かつ、第２のクラス別キューが、最大キュー長近くまでアドレスを保持した準輻輳状態にあるとき、
前記スケジューラは、
前記第１のクラス別キューの保持するアドレスを参照するタイミングで、前記第２のクラス別キューの保持するアドレスを参照して、第１のクラス別キューの保持するアドレスを廃棄するとともに、第２のクラス別キューの保持するアドレスにより、前記バッファメモリからセルを読み出して出力するように読み出し制御部を制御することを特徴とするＡＴＭスイッチ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、広帯域ＩＳＤＮ（統合ディジタル通信網）におけるＡＴＭ（非同期転送モード）伝送に用いるＡＴＭスイッチに関する。
【０００２】
【従来の技術】
広帯域ＩＳＤＮにおけるＡＴＭ伝送網では、多重化された様々なコネクションに対しそれぞれ任意のサービスクラスを設定することができる。このサービスクラスはＱｏＳ（Quality of Service）と呼んでいる。優先度の高いコネクションに対しては高い品質の通信を保証し、優先度の低いコネクションに対してはセルの部分廃棄等による調整を行う。こうしたサービス毎に異なるＱｏＳをＡＴＭ網で保証するためには、要求するＱｏＳを考慮に入れたＡＴＭスイッチのスイッチ制御が必要になる。このため、従来、例えば品質クラス毎に最低限の送出セル数を提示することによって、各コネクションの品質を保証する方法が提案されている（文献名：１チップＡＴＭスイッチにおけるマルチＱｏＳクラス制御  １９９６年  電子情報通信学会総合大会講演論文集Ｂ−５８０）。
【０００３】
【発明が解決しようとする課題】
ところで、上記のような従来の技術には次のような解決すべき課題があった。品質クラス毎にコネクションの品質を保証するために、品質クラス毎に最低限の送出セル数を定義する場合に、クラス毎に適切な設定値を決定することは必ずしも容易でない。
また、コネクションの品質クラスを定めるパラメータには伝送遅延量とともにセル損失率が存在する。ところが、この両者を考慮した品質制御は従来の技術では容易でないという問題があった。
【０００４】
【課題を解決するための手段】
本発明は以上の点を解決するため次の構成を採用する。
〈構成１〉
入力ポートから入力したセルを書き込んでバッファリングするバッファメモリと、入力したセルの品質クラスを識別するセル識別部と、このセル識別部により識別されたセルの品質クラス毎に、上記バッファメモリに書き込まれたセルの書き込みアドレスを別々に保持する複数のクラス別キューと、品質クラスの高いクラス別キューに保持されたセル書き込みアドレスを優先的に参照して上記バッファメモリからセルを読み出して出力するように読み出し制御部を制御するスケジューラを備えたことを特徴とするＡＴＭスイッチ。
【０００５】
〈構成２〉
入力ポートから入力したセルを書き込んでバッファリングするバッファメモリと、入力したセルの廃棄に対する品質クラスを識別するセル識別部と、このセル識別部により識別されたセルの品質クラス毎に、上記バッファメモリに書き込まれたセルの書き込みアドレスを別々に保持する複数のクラス別キューと、輻輳が発生して、新たに入力した品質クラスの高いセルを書き込むべき領域が上記バッファメモリ内に不足した時、品質クラスの低いクラス別キューに保持された書き込みアドレスを廃棄して、新たに入力したセルの書き込みアドレスとするように書き込み制御部を制御するスケジューラを備えたことを特徴とするＡＴＭスイッチ。
【０００６】
〈構成３〉
構成１に記載のＡＴＭスイッチにおいて、スケジューラは、品質クラスを判断するためのパラメータが複数ある場合に、パラメータ毎にクラス別キューの優先順位を別々に設定することを特徴とするＡＴＭスイッチ。
【０００７】
〈構成４〉
入力ポートから入力したセルを書き込んでバッファリングするバッファメモリと、入力したセルの品質クラスを識別するセル識別部と、このセル識別部により識別されたセルの品質クラス毎に、上記バッファメモリに書き込まれたセルの書き込みアドレスを別々に保持する複数のクラス別キューと、品質クラスの同等な複数のクラス別キューに保持されたセル書き込みアドレスを、順に公平に参照して、上記バッファメモリからセルを読み出して出力するように読み出し制御部を制御するサブスケジューラと、全てのサブスケジューラのうちから、品質クラスの最も高い空でないクラス別キューのアドレスを参照している、サブスケジューラを選択して、これを起動するメインスケジューラを備えたことを特徴とするＡＴＭスイッチ。
【０００８】
〈構成５〉
構成４に記載のＡＴＭスイッチにおいて、品質クラスの高い複数のクラス別キューのアドレスを参照しているサブスケジューラがあるとき、メインスケジューラは、当該サブスケジューラの制御する複数のクラス別キューの全てが空になった場合に限り、品質クラスのより低い複数のクラス別キューのアドレスを参照している、別のサブスケジューラを起動することを特徴とするＡＴＭスイッチ。
【０００９】
〈構成６〉
入力ポートから入力したセルを書き込んでバッファリングするバッファメモリと、入力したセルの品質クラスを識別するセル識別部と、このセル識別部により識別されたセルの品質クラス毎に、上記バッファメモリに書き込まれたセルの書き込みアドレスを別々に保持する複数のクラス別キューと、品質クラスの高いクラス別キューに保持されたセル書き込みアドレスを優先的に参照して上記バッファメモリからセルを読み出して出力するように読み出し制御部を制御するスケジューラとを備え、上記複数のクラス別キューは、セル損失に対する要求水準の高いセルの書き込みアドレスを保持するものほど、許容最大キュー長を長く設定されることを特徴とするＡＴＭスイッチ。
【００１０】
〈構成７〉
入力ポートから入力したセルを書き込んでバッファリングするバッファメモリと、入力したセルの品質クラスを識別するセル識別部と、このセル識別部により識別されたセルの品質クラス毎に、上記バッファメモリに書き込まれたセルの書き込みアドレスを別々に保持する複数のクラス別キューと、セル遅延に対する要求水準の高いセルの書き込みアドレスを保持するクラス別キューに保持されたアドレスを優先的に参照して、上記バッファメモリからセルを読み出して出力するように読み出し制御部を制御するスケジューラとを備え、上記複数のクラス別キューに含まれる第１のクラス別キューと第２のクラス別キューとを比較したとき、この第１のクラス別キューに比較して第２のクラス別キューが、セル遅延に対する要求水準が低くてセル廃棄に対する要求水準が高く、かつ、第２のクラス別キューが、最大キュー長近くまでアドレスを保持した準輻輳状態にあるとき、上記スケジューラは、上記第１のクラス別キューの保持するアドレスを参照するタイミングで、上記第２のクラス別キューの保持するアドレスを参照して、第１のクラス別キューの保持するアドレスを廃棄するとともに、第２のクラス別キューの保持するアドレスにより、上記バッファメモリからセルを読み出して出力するように読み出し制御部を制御することを特徴とするＡＴＭスイッチ。
【００１１】
【発明の実施の形態】
以下、本発明の実施の形態を具体例を用いて説明する。
〈具体例１〉
図１は、具体例１によるＡＴＭスイッチの具体例を示すブロック図である。
この装置は、受信したセルを格納するバッファメモリ１と、多重部２、分離部３、出力ポートキュー４Ａ，４Ｂ、書き込み制御部５、読み出し制御部６、セル識別部７及び空アドレスキュー８とから構成されている。バッファメモリ１には、ＡＴＭセルがバッファリングされ、所定の順に読み出される。ＷＤはセルが書き込まれる入力端子で、ＲＤはセルが読み出される出力端子である。ＷＡは書き込みアドレス入力端子、ＲＡは読み出しアドレス入力端子である。
【００１２】
多重部２は、２つの入力ポートＧ０，Ｇ１から入力したセルを時分割多重する部分である。なお、この例では、入力ポートと出力ポートの数が、それぞれ２個のものを説明する。しかしながら、このポート数は任意に設定して差し支えない。分離部３はバッファメモリ１から多重化出力されたセルを出力ポートＥ０，Ｅ１へ振り分ける部分である。出力ポートキュー４Ａと４Ｂとは同一の構造であるが、ここでは出力ポートキュー４Ａのみを具体的に詳細に図示している。即ち、出力ポートキュー４Ａには、後で説明する機能を持つクラス別キューＣ１，Ｃ２，Ｃ３と、スケジューラ１１とが設けられている。
【００１３】
このクラス別キューＣ１，Ｃ２，Ｃ３は、バッファメモリ１に書き込まれるセルの品質クラスに応じて設定されたアドレス保持用の記憶装置である。例えば、ここではクラス別キューＣ１とクラス別キューＣ２に、遅延に対する品質クラスの高いセルの書き込みアドレスを保持する。クラス別キューＣ３には遅延に対する品質クラスの低いセルの書き込みアドレスを保持する。また、クラス別キューＣ１とクラス別キューＣ３に、セル損失に対する品質クラスの高いセルの書き込みアドレスを保持する。クラス別キューＣ２にはセル損失に対する品質クラスの低いセルの書き込みアドレスを保持する。クラス別キューは、クラスの種類や段階数に応じて、任意の数だけ設けられる。これらのクラス別キューＣ１，Ｃ２，Ｃ３はいずれもＦＩＦＯ（先入れ先出しメモリ）等により構成される。
【００１４】
書き込み制御部５は、多重部２から出力されたセルをバッファメモリ１に書き込む際の書き込み制御を行う部分である。即ち、書き込み制御部５からバッファメモリ１に供給される書き込みアドレスにセルが書き込まれる。そのセルの品質クラスはセル識別部７によって識別される。書き込み制御部５は、この識別の結果、例えば遅延に対する品質クラスの高いセルを書き込むための書き込みアドレスを、クラス別キューＣ１やＣ２に保持させる。一方、遅延に対する品質クラスの低いセルを書き込むための書き込みアドレスを、残りのクラス別キューＣ３に保持させる。
【００１５】
読み出し制御部６は、スケジューラ１１から取り出されたアドレスをバッファメモリ１に供給して、そのアドレスに書き込まれたセルを読み出す制御を行う部分である。なお、セルが読み出されると、そのアドレスは空になることから、空アドレスキュー８にそのアドレスを供給する。空アドレスキュー８は、次の書き込み制御に使用されるべき空アドレスを保持しておくメモリである。
【００１６】
書き込み制御部５は、この空アドレスキュー８からアドレスの供給を受けてセルの書き込みを制御する。なお、セルの入力量が増加し、いわゆる輻輳を発生した場合には、空アドレスキュー８に次にセルを書き込むべきアドレスが存在しなくなる。このときこの発明では、スケジューラ１１がセル損失に対する品質クラスの最も低いクラス別キュー１３からアドレスを取り出して、これを書き込み制御部５に供給するよう動作する。これによって、セル損失に対する品質クラスの低いコネクションのセルが一部廃棄され、セル損失に対する品質クラスの高いセルの書き込み制御に使用される。
【００１７】
なお、輻輳の発生していない通常の場合は、スケジューラ１１はまず遅延に対する品質クラスの高いクラス別キューＣ１やＣ２から優先的にアドレスを取り出して読み出し制御部６に供給する。そして、クラス別キューＣ１やＣ２に保持されたアドレスがなくなった場合には、クラス別キューＣ３に保持されたアドレスを読み出すというように制御を行う。
以上が具体例１によるＡＴＭスイッチの概略構成である。
【００１８】
次に、セルの品質クラス例について説明する。
図２に、セルの品質クラスの説明図を示す。
この具体例では、例えば品質クラスを、図に示すように、クラスＫ１，Ｋ２，Ｋ３という３種類に設定する。このとき、例えばクラスＫ１は、遅延に対する要求水準が高く、セル損失に対する要求水準も高いものとする。また、クラスＫ２は、遅延に対する要求水準は高いが、セル損失に対する要求水準は低いものとする。更に、クラスＫ３は、遅延に対する要求水準は低いが、セル損失に対する要求水準は高いとする。
【００１９】
クラスＫ１の例としてはリアルタイム映像等が挙げられる。また、クラスＫ２の例としてはリアルタイム音声等が挙げられる。また、クラスＫ３の例としては分配型映像等を挙げることができる。図１に示したセル識別部７は、多重化されたセル流のセルヘッダに記された識別情報からこうした品質クラスを認識する。
【００２０】
図３に、具体例１のＡＴＭスイッチの動作説明図を示す。
図に示すように、バッファメモリ１には入力ポートから入力したセル１５が次々に書き込まれる。その品質クラスは、例えばこの図に示すように、Ｋ１，Ｋ２，Ｋ３の３種類とする。このとき、例えば品質クラスＫ１の書き込みアドレス１６は、クラス別キューＣ１に保持される。また、品質クラスＫ２の書き込みアドレス１６は、クラス別キューＣ２に保持される。品質クラスＫ３の書き込みアドレス１６は、クラス別キューＣ３に保持される。
【００２１】
図１に示したスケジューラ１１によれば、輻輳が発生していないときは遅延に対する要求水準をパラメータとした優先読み出しを行う。即ち、この場合の優先度を、例えばクラス別キューＣ１，Ｃ２，Ｃ３の順とする。従って、まず、クラス別キューＣ１の保持する書き込みアドレスを全て取り出すようにセルを読み出し、次にクラス別キューＣ２の保持する書き込みアドレスを読み出す。クラス別キューＣ３に保持された書き込みアドレスは最後に読み出される。従って、遅延に対する要求水準の高いクラスＫ１，Ｋ２のセルが優先的に早期に読み出されることになる。品質クラスＫ１，Ｋ２のどちらがより優先度が高いかによってこの順番は変更して差し支えない。
【００２２】
次に、輻輳が発生した場合を考える。輻輳時には、空アドレスが不足するから、バッファメモリ１に書き込まれたいずれかのセルを廃棄しなければならない。品質クラスＫ２のセルはセル損失に対する要求水準が最も低い。従って、輻輳が発生した場合には、品質クラスがＫ１のセルが入力すると、クラス別キューＣ２の保持する書き込みアドレスを１つ取り出し、そのアドレスを新たに入力したセルの書き込みアドレスに割り当てる。これによって、既にバッファメモリ１に書き込まれた該当する品質クラスＫ２のセルが廃棄されることになる。
【００２３】
以下、具体例１のＡＴＭスイッチの動作をフローチャートを用いて具体的に説明する。
まず、図４に、平常時のセル書き込み動作フローチャートを示す。
まず、ステップＳ１において例えば図１の入力ポートＧ０から多重部２を介してセルが入力すると、セル識別部７は、そのセルヘッダの識別を行う（ステップＳ２）。これによって、そのセルの品質クラスが判断される。この品質クラスは書き込み制御部５に入力し、書き込み制御部５は空アドレスキュー８から空アドレスを受け入れてバッファメモリ１に供給し、そのセルを書き込む（ステップＳ３）。更に、その書き込みアドレスを該当する品質クラスのクラス別キューへ保持させる（ステップＳ４）。例えば、品質クラスがＫ１ならば、クラス別キューＣ１にその書き込みアドレスを保持させる。
【００２４】
図５には、平常時のセル読み出し動作フローチャートを示す。
まず、ステップＳ１において、図１に示したスケジューラ１１は遅延に対する要求水準に着目し、品質クラスの最も高いクラス別キューＣ１を指定する（ステップＳ１）。そして、そのクラス別キューＣ１から、保持しているセルの書き込みアドレスを１つ取り出す（ステップＳ２）。これが読み出し制御部６に供給され、バッファメモリ１から該当するアドレスのセルが読み出される。このセルは分離部３通じて、例えば出力ポートＥ０に出力される。なお、この読み出しアドレスは空アドレスキュー８に書き込まれ、新たなセルの書き込みに使用される。
【００２５】
一方、ステップＳ２でこれまで書き込みアドレスの取り出しに使用されたクラス別キューＣ１が空と判断されると、ステップＳ２からステップＳ５に進む。そして、品質クラスの１ランク下のクラス別キューを指定する。遅延に対する要求水準については、クラス別キューＣ２が次に指定される。ステップＳ６では、該当するクラスがないかどうかを判断する。該当するクラスがあればステップＳ２に戻る。即ち、クラス別キューＣ２が存在するためステップＳ２に戻り、再びそこに保持された書き込みアドレスがあればステップＳ３，ステップＳ４の処理を繰り返す。そして、クラス別キューＣ１，Ｃ２に保持された書き込みアドレスがなくなると、クラス別キューＣ３に保持された書き込みアドレスを取り出してセルの読み出しに使用する。
こうして、遅延に対する要求水準の高いセルが優先的に読み出される。
【００２６】
図６には、輻輳発生時のセル書き込み動作フローチャートを示す。
まず、ステップＳ１において、例えば入力ポートＧ０からセルが入力すると、セル識別部７はそのセルヘッダを識別する（ステップＳ２）。そして、入力セルよりセル損失に対する品質クラスの低いクラス別キューを調べる（ステップＳ３）。例えば、品質クラスがＫ１のセルが入力した場合に、品質クラスＫ２のクラス別キューＣ２に書き込みアドレスが保持されているかどうかを判断する。ステップＳ４において、書き込みアドレスが保持されていると判断すると、ステップＳ５に進み、その書き込みアドレスを１個取り出す。そして、新たなセルをバッファメモリ１の該当するアドレスに書き込む（ステップＳ６）。そして、その書き込みアドレスはクラス別キューＣ１に保持させる（ステップＳ７）。
【００２７】
これによって、品質クラスがＫ２のセルが１つ廃棄され、品質クラスＫ１のセルがバッファメモリに新たに書き込まれ、セル損失に対する要求水準の高いものを優先的に保持する。こうしてバッファメモリがセルデータによって一時的にいっぱいになり、これ以上セルの書き込みが不可能な輻輳が発生したとき、品質クラスのより高いものを救済できる。
【００２８】
〈具体例１の効果〉
以上のように、具体例１においては、複数のクラス別キューを設け、ここに品質クラスの異なるセルの書き込みアドレスを保持し、輻輳が発生しない平常時には遅延に対する要求水準に着目した優先制御を行い、輻輳発生時にはセル損失に対する要求水準に着目した優先制御を行って、セル損失とセル遅延という両者を考慮した品質制御が可能になる。なお、上記のようなクラス別キューを何種類設けるかは品質クラスのパラメータの種類や優先度のランクに応じて任意に設定することができる。
【００２９】
また、上記スケジューラは任意のパラメータに着目して、書き込まれたアドレスの優先取り出し制御を行うことができ、１つのパラメータにのみ着目して取り出す方法も２つ以上のパラメータに着目してこれらの組み合わせから優先度を判断して書き込みアドレスを取り出す方法も可能である。
【００３０】
〈具体例２〉
図７は、具体例２によるＡＴＭスイッチを示すブロック図である。
この装置の基本構成は、図１に示した具体例１の装置と同様である。この例では、４つのクラス別キューＣ１，Ｃ２，Ｃ３，Ｃ４と、１つのメインスケジューラ２１及び２つのサブスケジューラ２２、２３が設けられている。この点が具体例１と異なっている。
各クラス別キューＣ１，Ｃ２，Ｃ３，Ｃ４の構成や機能は、具体例１のものと変わらない。
具体例２では、次のような品質クラスのセルを扱うものとする。
【００３１】
図８に、具体例２の装置で処理をするセル品質クラスの説明図を示す。
この具体例では、例えば品質クラスを、図に示すように、クラスＫ１，Ｋ２，Ｋ３，Ｋ４という４種類に設定する。このとき、例えばクラスＫ１は、遅延に対する要求水準が高く、セル損失に対する要求水準も高いものとする。また、クラスＫ２は、遅延に対する要求水準は高いが、セル損失に対する要求水準は低いものとする。更に、クラスＫ３は、遅延に対する要求水準は低いが、セル損失に対する要求水準は高いとする。また、クラスＫ４は、遅延に対する要求水準もセル損失に対する要求水準も低いとする。
【００３２】
クラスＫ１の例としてはリアルタイム映像等が挙げられる。また、クラスＫ２の例としてはリアルタイム音声等が挙げられる。また、クラスＫ３の例としては分配型映像等を挙げることができる。さらに、クラスＫ４の例としてはデータファイルの転送等が挙げられる。
【００３３】
図７に示したクラス別キューＣ１は、クラスＫ１のセルに対するアドレスを保持し、クラス別キューＣ２はクラスＫ２のセルに対するアドレスを保持する。また、クラス別キューＣ３は、クラスＫ３に対するアドレスを保持し、クラス別キューＣ４はクラスＫ４に対するアドレスを保持する。
【００３４】
図７に示すように、サブスケジューラ２２は、クラス別キューＣ１とクラス別キューＣ２のアドレス取り出しを制御するよう構成されている。また、サブスケジューラ２３は、クラス別キューＣ３とクラス別キューＣ４のアドレス取り出しを制御するよう構成されている。メインスケジューラ２１は、クラス別キューＣ１〜Ｃ４のうちのいずれかにアドレスが書き込まれている場合に、セルの品質クラスを考慮して、サブスケジューラ２２やサブスケジューラ２３を選択的に駆動する制御を行う。
【００３５】
図９には、このメインスケジューラ２１の動作フローチャートを示す。
まず、ステップＳ１において、メインスケジューラ２１は、クラス別キューＣ１，Ｃ２が共に空かどうかを判断する。少なくともいずれか一方にセルのアドレスが保持されていれば、ステップＳ２に進み、サブスケジューラ２２を起動する。サブスケジューラ２２はこれに呼応して該当するセルのアドレス取り出しを制御する。
【００３６】
一方、ステップＳ１において、クラス別キューＣ１，Ｃ２のいずれにもアドレスが保持されていないと判断されると、ステップＳ３に進み、クラス別キューＣ３，Ｃ４が共に空かどうかを判断する。共に空であれば全てのクラス別キューが空であるから、再びＳ１に戻り、クラス別キューＣ１，Ｃ２へのアドレス保持を監視する。一方、クラス別キューＣ３，Ｃ４のいずれかにアドレスが保持されていれば、ステップＳ４に進み、メインスケジューラ２１はサブスケジューラ２３を起動する。これによって、品質クラスのより高いセルのアドレスをキューから取り出して、参照し、読み出し制御部６を制御するようにする。
【００３７】
このように、メインスケジューラ２１は、例えば図８に示す品質クラスを考慮して、遅延に対する要求水準の高いものに対するアドレスを優先的に取り出すようにサブスケジューラ２２，２３を選択して起動する機能を持つ。
【００３８】
一方、各サブスケジューラ２２，２３は、次のように動作する。
図１０には、サブスケジューラの動作フローチャートを示す。
この図は、サブスケジューラ２２の動作を示したものである。なお、サブスケジューラ２３は、クラス別キューＣ３，Ｃ４を対象にして、サブスケジューラ２２と全く同様の動作をする。このため、サブスケジューラ２３の制御対象であるクラス別キューについて、図１０の中で（Ｃ３）、（Ｃ４）と表示し、重複する説明は省略する。
【００３９】
まず、ステップＳ１において、サブスケジューラ２２は、制御対象となるクラス別キューＣ１，Ｃ２のうちのいずれか一方、例えばクラス別キューＣ１について空かどうかの判断をする。空でなければステップＳ２に進み、クラス別キューＣ１の保持しているアドレスを取り出す。そして、ステップＳ３で、このアドレスを参照し、バッファメモリから該当するセルを読み出す。もし、ステップＳ１において、クラス別キューＣ１が空だと判断されると、ステップＳ４に直接進む。
【００４０】
ステップＳ４では、クラス別キューＣ２が空かどうかを判断する。ここで、クラス別キューＣ２が空でなければステップＳ５に進み、クラス別キューＣ２の保持しているアドレスを取り出す。そして、ステップＳ６に進んで、このアドレスを参照し、バッファメモリから該当するセルを読み出す。ステップＳ４で、クラス別キューＣ２が空だと判断すると、そのままステップＳ１に戻る。
【００４１】
この図に示すように、サブスケジューラ２２は、クラス別キューＣ１とクラス別キューＣ２を制御し、いずれにもアドレスが保持されている場合には、クラス別キューＣ１とクラス別キューＣ２とを交互に選択して、アドレスの取り出しを制御する。これは、図８に示した遅延に対する要求水準に着目した場合に、クラス別キューＣ１とクラス別キューＣ２とは同等だからである。なお、同等というのはほぼ近ければよく、必ずしも厳密に等しい場合だけに限定しなくてよい。こうして、交互取り出しによって、その公平を図っている。
【００４２】
このように、サブスケジューラは、例えば遅延に対する要求水準が同等の品質クラスのセルに対するアドレスを保持するクラス別キューが複数ある場合に、これらをまとめて管理し、公平にアドレスの取り出し制御を行う役割を持つ。上記の例では、遅延に対する要求水準に着目して、サブスケジューラを設定した。また、遅延に対する要求水準に着目して、いずれかのサブスケジューラを選択して起動するようにメインスケジューラを動作させた。しかしながら、セル損失に対する要求水準に着目して、メインスケジューラやサブスケジューラを動作させるようにしてもよい。
【００４３】
このように、遅延やセル損失等、品質クラスを判断するためのパラメータが複数ある場合に、いずれかのパラメータに着目してクラス別キューの優先順位を判別し、スケジューラの制御条件等を設定することができる。これは、具体例１の場合と同様である。
【００４４】
図９と図１０の制御は、遅延に対する要求水準に着目した優先制御を説明した。
一方、セル損失に対する要求水準を満たす品質制御は次のようにして実現できる。
図１１には、セル損失に対する品質制御方法の説明図を示す。
ここでは、セル損失に対する要求水準の高い品質クラスＫ１，Ｋ３のセルアドレスを保持する、クラス別キューＣ１とクラス別キューＣ３について、その最大キュー長を他のクラス別キューＣ２，Ｃ４のものより大きく設定している。最大キュー長というのは、アドレスを保持することのできる最大数のことである。
【００４５】
図１や図７に示したように、有限サイズのバッファメモリ１を各ポートの各クラス間で、共通に使用してセルを格納する。従って、クラス別キューの保持できるアドレスにそれぞれ制限を設けないと、特定のキューに属するセルによってバッファメモリ１が専有され、他のキューに属するセルを格納する余地が無くなり、品質を保証できなくなる恐れがある。そこで、セル損失に対する要求品質の低いクラス別キューＣ２やＣ４の最大キュー長を、他のクラス別キューＣ１やＣ３に比べて小さく設定することによって、要求品質の高いクラスのセルを保護することができる。
【００４６】
次に、クラス別キューＣ３が、準輻輳状態になった場合の制御について説明する。ここで、準輻輳状態とは、クラス別キューＣ３からのアドレス取り出しに較べて書き込み頻度が高い状態が相当程度の時間継続し、キュー長が最大値近傍まで延びた状態を言う。この状態が継続すると、間もなくクラス別キューＣ３が溢れてしまう。例えば、クラス別キューＣ３のキュー長が最大値の９０％を超過した場合に、準輻輳状態が発生したと判断するようにする。
【００４７】
こうした状態で、上記のようなセル遅延に対する品質クラスに着目した制御を行うと、例えばクラス別キューＣ１やクラス別キューＣ２にアドレスが保持されている限り、クラス別キューＣ３のアドレス取り出しが行われない。その結果、セル廃棄に対して要求品質の高いクラス別キューＣ３のアドレスに格納されるセルが廃棄されてしまう恐れがある。これを回避するために次のような制御を行う。
【００４８】
まず、クラス別キューＣ３の準輻輳状態を検出したとき、クラス別キューＣ２のアドレスを取り出すタイミングでクラス別キューＣ２とクラス別キューＣ３とから同時にアドレスを取り出す。このとき、図１に示す読み出し制御部６は、クラス別キューＣ３から取り出したアドレスデータを選択して、バッファメモリ１の読み出しアドレスとして参照する。
【００４９】
一方、クラス別キューＣ２から取り出されたアドレスは、そのまま廃棄する。クラス別キューＣ２は、セル廃棄に対してクラス別キューＣ３よりも要求水準が低いから廃棄によって発生する問題は少ない。また、クラス別キューＣ２に保持された最も古いアドレスを取り出して廃棄すれば、クラス別キューＣ２のセル遅延に対する要求水準については通常の制御の場合と同一の品質が確保できる。
【００５０】
このような制御を行うことによって、クラス別キューＣ３に空き領域を確保することが可能になり、クラス別キューＣ３のセル廃棄を抑制することができる。
【００５１】
〈具体例２の効果〉
以上のように、具体例２においても具体例１と同様に、複数のクラス別キューを設け、ここに品質クラスの異なるセルの書き込みアドレスを保持し、輻輳が発生しない平常時には遅延に対する要求水準に着目した優先制御を行い、輻輳発生時にはセル損失に対する要求水準に着目した優先制御を行って、セル損失とセル遅延という両者を考慮した品質制御が可能になる。
【図面の簡単な説明】
【図１】具体例１によるＡＴＭスイッチの具体例を示すブロック図である。
【図２】セルの品質クラスの説明図である。
【図３】具体例１のＡＴＭスイッチの動作説明図である。
【図４】平常時のセル書き込み動作フローチャートである。
【図５】平常時のセル読み出し動作フローチャートである。
【図６】輻輳発生時のセル書き込み動作フローチャートである。
【図７】具体例２によるＡＴＭスイッチのブロック図である。
【図８】セル品質クラスの説明図である。
【図９】メインスケジューラの動作フローチャートである。
【図１０】サブスケジューラの動作フローチャートである。
【図１１】セル損失に対する品質制御方法の説明図である。
【図１２】輻輳状態の動作フローチャートである。
【符号の説明】
１  バッファメモリ
２  多重部
３  分離部
４Ａ，４Ｂ  出力ポートキュー
５  書き込み制御部
６  読み出し制御部
７  セル識別部
８  空アドレスキュー
１１  スケジューラ
Ｃ１，Ｃ２，Ｃ３  クラス別キュー
【図１】
0003812784.tif 000002
【図２】
0003812784.tif 000003
【図３】
0003812784.tif 000004
【図４】
0003812784.tif 000005
【図５】
0003812784.tif 000006
【図６】
0003812784.tif 000007
【図７】
0003812784.tif 000008
【図８】
0003812784.tif 000009
【図９】
0003812784.tif 000010
【図１０】
0003812784.tif 000011
【図１１】
0003812784.tif 000012
【図１２】
0003812784.tif 000013