(57)【特許請求の範囲】
【請求項１】
セルを入力し、予め定められた、当該入力したセルに付加されている出力の優先順位を示すクラスに従い、宛先に対応する出力ポートからセルを出力するＡＴＭスイッチであって、
前記出力ポートごとであって、前記クラスごとに、前記入力した順にセルを保持する保持手段と、
前記出力ポートごとであって、前記クラスごとに、前記保持手段に保持されるセルがあるかないかを示すフラグを備え、前記セルを出力したときに、当該出力したセルの出力ポートのクラスについて、前記保持手段に保持されるセルがあるかないかを判断し、当該判断に従って前記フラグを制御する管理手段と、
前記出力ポートごとに、優先順位のより高いクラスであって、前記管理手段のフラグを参照し、より先に入力した順に、前記保持手段に保持されているセルを、当該出力ポートから出力させる制御手段とを有すること
を特徴とするＡＴＭスイッチ。
【請求項２】
請求項１において、前記クラスの優先順位を保持する優先順位保持手段と、
当該優先順位保持手段に保持させるために、外部からの指示を受け付けて前記クラスの優先順位を指示する指示手段とをさらに備え、
前記制御手段は、前記優先順位保持手段を参照し、前記セルの出力を行うことを特徴とするＡＴＭスイッチ。
【請求項３】
請求項１において、前記クラスの優先順位について、異なる優先順位を複数保持し、前記保持する複数の優先順位のうち、前記制御手段が利用する前記優先順位を、予め定めた時間ごとに変更する優先順位変更手段をさらに有し、
前記制御手段は、前記優先順位変更手段により変更された優先順位にしたがって、前記セルの出力を行うことを特徴とするＡＴＭスイッチ。
【請求項４】
複数の入力ポートと、
複数の出力ポートと、
前記複数の入力ポートから入力されたセルに付加されている宛先に対応する出力ポートと、当該セルに付加されている、出力の優先順位を示すクラスとを識別する識別回路と、
入力されたセルを保持するセルバッファと、
入力されたセルを、前記出力ポートごとであって、前記クラスごとに、入力された順に前記セルバッファに保持させるために、当該セルバッファの書き込みアドレスを指示する書き込み制御回路と、
入力されたセルを前記セルバッファから読みだすために、当該セルバッファの読みだしアドレスを指示する読み込み制御回路と、
前記書き込みアドレスと前記読みだしアドレスとを、前記出力ポートごとであって、前記クラスごとに保持する管理テーブルと、
前記出力ポートごとであって、前記クラスごとに、前記セルバッファに保持されるセルがあるかないかを示すフラグと、
前記クラスの優先順位を保持するレジスタとを有し、
前記書き込み制御回路は、前記入力されたセルについて、前記識別回路で識別された、当該セルの出力ポートとクラスとに従って、前記管理テーブルを参照することにより前記書き込みアドレスを指示して当該入力されたセルを前記セルバッファに保持させ、当該セルの出力ポートのクラスの前記フラグをセットし、また、前記管理テーブルが保持する書き込みアドレスを、当該指示した書き込みアドレスのつぎの書き込みアドレスを示すように指示し、
前記読み込み制御回路は、前記出力ポートごとに、前記フラグを参照し、前記バッファに保持されるセルがあると示されているフラグに対応するクラスであって、前記レジスタが保持する優先順位のより高いクラスについて、より先に入力されたセルを、前記管理テーブルを参照し、前記読みだしアドレスを指示して当該出力ポートから出力させ、また、前記管理テーブルが保持する読みだしアドレスを、当該出力させたセルのつぎに入力されたセルの読みだしアドレスを示すように指示し、前記管理テーブルを参照することにより、当該出力させた出力ポートのクラスの、前記バッファに保持するセルがない場合に、当該出力させた出力ポートのクラスの前記フラグをリセットすることを特徴とするＡＴＭスイッチ。
【請求項５】
請求項４において、前記レジスタに、外部からの指示を受け付けて前記クラスの優先順位を指示する指示手段をさらに備えることを特徴とするＡＴＭスイッチ。
【請求項６】
請求項５において、前記クラスの優先順位について、それぞれ、異なる優先順位を保持するレジスタを複数と、前記複数のレジスタのうち、前記読み込み制御回路が利用する前記優先順位を、予め定めた時間ごとに変更するためのラウンドロビンテーブルとをさらに有し、
前記読み込み制御回路は、前記ラウンドロビンテーブルにより変更された優先順位にしたがって、前記セルの出力を行うことを特徴とするＡＴＭスイッチ。
【請求項７】
セルを入力し、入力したセルをバッファに保持し、予め定められた、当該入力したセルに付加されている出力の優先順位を示すクラスに従い、宛先に対応する出力ポートからセルを出力するＡＴＭスイッチにおけるセル出力優先制御方法であって、
前記出力ポートごとであって、前記クラスごとに、前記入力した順にセルを前記バッファに保持させ、
前記出力ポートごとであって、前記クラスごとに、前記バッファに保持されるセルがあるかないかを示すフラグを備え、前記セルを出力したときに、当該出力したセルの出力ポートのクラスについて、前記保持手段に保持されるセルがあるかないかを判断し、当該判断に従って前記フラグを制御し、
前記出力ポートごとに、優先順位のより高いクラスであって、前記フラグを参照し、より先に入力した順に、前記バッファに保持されているセルを、当該出力ポートから出力させることを特徴とするセル出力優先制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＡＴＭスイッチにおいて、スイッチから出力されるセルに優先順位を付けて出力制御を行う方法に関する。
【０００２】
【従来の技術】
従来のＡＴＭスイッチにおけるセルの出力優先制御方式について、図６を参照して説明する。
【０００３】
図６において、ＡＴＭスイッチは、セルを多重するセル多重部１００と、セルを保持するセルバッファ１０１と、セルを出力ポートごとに分離するセル分離部１０２と、セルのルーティング先および予め定められた優先順位を示すクラスを識別するルーティング先／優先クラス識別回路１０３と、セルバッファ１０１への書き込みを制御するセル書込み制御回路１０４と、セルバッファ１０１からの読み出しを制御するセル読み出し制御回路１０５と、セルバッファへの書き込みアドレスと読み出しアドレスとを管理する管理テーブル１０６とを備える。このＡＴＭスイッチは、Ｎ本の入力ポートから入力されるセルをＮ本の出力ポートに出力する出力バッファ型のスイッチシステムである。また、クラスは、予め優先順位が定められており、優先順位がより高いクラスのセルについて、優先的に出力させ、下位のクラスのセルを出力させる場合には、そのクラスより上位のクラスのセルを保持していない場合に、そのクラスのセルを出力させる完全優先制御方式により制御を行っている。
【０００４】
管理テーブル１０６は、出力ポート毎に、出力優先のクラス分けの数分（図６に示す例では、Ａ〜Ｄまでの４クラス分）領域を持ち、その各々の領域に、セルバッファへの書き込みアドレスと読み出しアドレスとを保持する。また、セルバッファ１０１も出力ポート毎にクラス分に領域分けされ、入力された順に保持し、より先に入力された順に出力するＦＩＦＯバッファの構成を取る。セルバッファ１０１のアドレスは、セル書き込み制御回路５とセル読み出し制御回路１０５とで管理される。
【０００５】
セルの書き込み動作としては、入力ポートに入力されたセルは、ルーチング先／優先クラス識別回路１０３にて、出力ポートと優先クラスとが識別される。その後、セル書き込み制御回路５は、管理テーブルを参照し、識別された該当ポートの該当クラス領域よりセルバッファ１０１への書き込みアドレスを得て、書き込みアドレスを指示し、セルバッファ１０１へセルを書き込む。また、セル書き込み制御回路５は、管理テーブルの書き込みアドレス値を＋１（加算）することにより、管理テーブルにつぎの書き込みアドレスを指示する。
【０００６】
以上の動作をセル書き込みタイミング毎に繰り返すことでセルバッファ１０１への書き込み動作を行う。
【０００７】
次に、セル読み込み制御回路１０５がセルを読みだす場合には、各ポートごとに、管理テーブルを参照し、全てのクラスについて、書き込みアドレスと読みだしアドレスとの差からセルバッファ１０１に保持するセル数を各クラスごとに求め、保持するセルがある、優先順位が一番高いクラスの読みだしアドレスを指示することにより、より先に入力されたセルを読みだす。セル読み込み制御回路１０５は、読みだし時に、管理テーブルの該当ポート、該当クラスの読みだしアドレスを＋１（加算）することにより、管理テーブルにつぎの読みだしアドレスを指示する。つぎのポートについても同様に処理していく。
【０００８】
以上のように処理することにより、優先順位にしたがってセルを出力している。
【０００９】
【発明が解決しようとする課題】
上記従来技術による出力セルの優先制御の実現方法では、セルバッファ１０１の読み出し時に、管理テーブルの全てのクラスの領域にアクセスして、書き込みアドレスと読みだしアドレスとを読み出す必要があり、また、書き込みアドレスと読みだしアドレスとの差からセルバッファ１０１に保持するセル数を各クラスごとに求める必要がある。このため、管理テーブルへのアクセス頻度が高くなり、処理時間の関係からクラス分けの数に限界が生じる。
【００１０】
本発明の目的は、効率的に出力セルの優先制御を行うことができるＡＴＭスイッチおよびそのセル出力優先制御方法を提供することを目的とする。また、クラス分け（優先順位）の数が増えた場合にも、処理時間が増大しないＡＴＭスイッチおよびそのセル出力優先制御方法を提供することを他の目的とする。
【００１１】
【課題を解決するための手段】
本発明では、セルを入力し、予め定められた、当該入力したセルに付加されている出力の優先順位を示すクラスに従い、宛先に対応する出力ポートからセルを出力するＡＴＭスイッチであって、前記出力ポートごとであって、前記クラスごとに、前記入力した順にセルを保持する保持手段と、前記出力ポートごとであって、前記クラスごとに、前記保持手段に保持されるセルがあるかないかを管理する管理手段と、前記出力ポートごとに、優先順位のより高いクラスであって、前記管理手段において前記保持手段に保持されるセルがあると管理されているクラスについて、より先に入力した順に、前記保持手段に保持されているセルを、当該出力ポートから出力させる制御手段とを有する。
【００１２】
また、前記クラスの優先順位を保持する優先順位保持手段と、当該優先順位保持手段に保持させるために、外部からの指示を受け付けて前記クラスの優先順位を指示する指示手段とをさらに備え、前記制御手段は、前記優先順位保持手段を参照し、前記セルの出力を行うようにしてもよい。
【００１３】
さらに、前記クラスの優先順位について、異なる優先順位を複数保持し、前記保持する複数の優先順位のうち、前記制御手段が利用する前記優先順位を、予め定めた時間ごとに変更する優先順位変更手段をさらに有し、前記制御手段は、前記優先順位変更手段により変更された優先順位にしたがって、前記セルの出力を行うことができる。
【００１４】
また、前記管理手段は、前記出力ポートごとであって、前記クラスごとに、前記保持手段に保持されるセルがあるかないかを示すフラグを備え、前記セルを出力したときに、当該出力したセルの出力ポートのクラスについて、前記保持手段に保持されるセルがあるかないかを判断し、当該判断に従って前記フラグを制御し、前記制御手段は、前記管理手段のフラグを参照し、前記セルの出力を行うことができる。
【００１５】
より具体的には、複数の入力ポートと、複数の出力ポートと、前記複数の入力ポートから入力されたセルに付加されている宛先に対応する出力ポートと、当該セルに付加されている、出力の優先順位を示すクラスとを識別する識別回路と、入力されたセルを保持するセルバッファと、入力されたセルを、前記出力ポートごとであって、前記クラスごとに、入力された順に前記セルバッファに保持させるために、当該セルバッファの書き込みアドレスを指示する書き込み制御回路と、入力されたセルを前記セルバッファから読みだすために、当該セルバッファの読みだしアドレスを指示する読み込み制御回路と、前記書き込みアドレスと前記読みだしアドレスとを、前記出力ポートごとであって、前記クラスごとに保持する管理テーブルと、前記出力ポートごとであって、前記クラスごとに、前記セルバッファに保持されるセルがあるかないかを示すフラグと、前記クラスの優先順位を保持するレジスタとを有し、前記書き込み制御回路は、前記入力されたセルについて、前記識別回路で識別された、当該セルの出力ポートとクラスとに従って、前記管理テーブルを参照することにより前記書き込みアドレスを指示して当該入力されたセルを前記セルバッファに保持させ、当該セルの出力ポートのクラスの前記フラグをセットし、また、前記管理テーブルが保持する書き込みアドレスを、当該指示した書き込みアドレスのつぎの書き込みアドレスを示すように指示し、前記読み込み制御回路は、前記出力ポートごとに、前記フラグを参照し、前記バッファに保持されるセルがあると示されているフラグに対応するクラスであって、前記レジスタが保持する優先順位のより高いクラスについて、より先に入力されたセルを、前記管理テーブルを参照し、前記読みだしアドレスを指示して当該出力ポートから出力させ、また、前記管理テーブルが保持する読みだしアドレスを、当該出力させたセルのつぎに入力されたセルの読みだしアドレスを示すように指示し、前記管理テーブルを参照し、前記書き込みアドレスと前記読みだしアドレスとにより、当該出力させた出力ポートのクラスの、前記バッファに保持するセルがない場合に、当該出力させた出力ポートのクラスの前記フラグをリセットする。
【００１６】
セルをセルバッファに書き込む場合は、書き込み制御回路は、前記入力されたセルについて、前記識別回路で識別された、当該セルの出力ポートとクラスとに従って、前記管理テーブルを参照することにより前記書き込みアドレスを指示して当該入力されたセルを前記セルバッファに保持させ、当該セルの出力ポートのクラスの前記フラグをセットし、また、前記管理テーブルが保持する書き込みアドレスを、当該指示した書き込みアドレスのつぎの書き込みアドレスを示すように指示する。
【００１７】
セルをセルバッファから読み出す場合は、読み込み制御回路は、前記出力ポートごとに、前記フラグを参照し、前記バッファに保持されるセルがあると示されているフラグに対応するクラスであって、前記レジスタが保持する優先順位のより高いクラスについて、より先に入力されたセルを、前記管理テーブルを参照し、前記読みだしアドレスを指示して当該出力ポートから出力させ、また、前記管理テーブルが保持する読みだしアドレスを、当該出力させたセルのつぎに入力されたセルの読みだしアドレスを示すように指示し、前記管理テーブルを参照することにより、当該出力させた出力ポートのクラスの、前記バッファに保持するセルがない場合に、当該出力させた出力ポートのクラスの前記フラグをリセットする。
【００１８】
本発明によれば、複数の品質クラス毎に分けられたセルバッファ内のセルを優先順位の高いものから効率的に読み出すことができる。セル読み出し処理時、読み出すべきクラスを簡単に認識することができ、また、セルの読み出しアドレスを格納した管理テーブルへのアクセスは、出力するクラスに対応する領域のみで済むので、クラス分けの数が増えても処理時間に影響をあたえることがない。
【００１９】
【発明の実施の形態】
本発明の実施の形態を図１を参照して説明する。図１において、ＡＴＭスイッチは、セルを多重するセル多重部１と、セルを保持するセルバッファ２と、セルを出力ポートごとに分離するセル分離部３と、セルのルーティング先および優先クラスを識別するルーティング先／優先クラス識別回路４と、セルバッファ２への書き込みを制御するセル書き込み制御回路５と、セルバッファ２からの読み出しを制御するセル読み込み制御回路６と、出力の優先順位を保持する優先順位制御レジスタ７と、出力ポートごとであって、各クラスごとにセルバッファ２に保持されるセルがあるかないかをフラグ（以下、キューフラグという）により示すポート管理テーブル８と、セルバッファ２の書き込みアドレスと読みだしアドレスとを出力ポートごとであって、各クラスごとに保持するキュー管理テーブル９とを備える。本発明の実施の形態におけるＡＴＭスイッチは、Ｎ本の入力ポートから入力されるセルをＮ本の出力ポートに出力する出力バッファ型のスイッチシステムである。クラスは、予め優先順位が定められており、優先順位がより高いクラスのセルについて、優先的に出力させ、下位のクラスのセルを出力させる場合には、そのクラスより上位のクラスのセルを保持していない場合に、そのクラスのセルを出力させる完全優先制御方式により制御を行っている。
【００２０】
本実施の形態では、品質クラスの数をクラスＡ〜クラスＤまでの４つとした場合を例にする。
【００２１】
ポート管理テーブル８は、図２に示すように、４つのクラスに分けられたセルのキュー（待ち状態）があるかないかを示すキューフラグの情報を、出力ポート毎に、各クラス１ビットずつ記憶する。このため、テーブル全体の容量は４ビット×ｎ（ポート数）ビットの容量を備える。キューフラグは、セルバッファ２に保持されるセルがあるとき（キュー有りのとき）に１がセットされ、セルバッファ２に保持されるセルがないとき（キュー無しのとき）にはリセットされて０を示す。
【００２２】
また、キュー管理テーブル９は、各ポートごとに、各クラス（クラスＡ〜クラスＤ）分の領域を備え、各ポートごとの各クラスのセルバッファ２のセルの書き込み位置情報（書き込みアドレス）と、読み出し位置情報（読みだしアドレス）と、書き込みアドレス値から読みだしアドレス値を減算した値であるキュー値（セルバッファ２に保持されるセル数）とが格納される。テーブル全体の容量は４（クラス数）ビット×ｎ（ポート数）ビット×（セル書き込みアドレスのビット数＋読み出しアドレスのビット数＋キュー値のビット数）を備える。
【００２３】
また、セルバッファ２は、出力ポート毎にクラス分に領域分けされ、入力された順に保持し、より先に入力された順に出力するＦＩＦＯバッファの構成を取る。セルバッファ２のアドレスは、セル書き込み制御回路５とセル読み出し制御回路６とで管理され、出力ポート毎であってクラス毎にＦＩＦＯバッファを持つようにアドレス値が示される。
【００２４】
ルーチング先／優先クラス識別回路４は、セルに付加されているセルヘッダ情報を解析し、セルヘッダ情報に含まれる宛先に対応する出力ポートと出力の優先順位を示すクラスとを識別する。
【００２５】
セル書き込み制御回路５は、前記入力されたセルについて、ルーティング先／優先クラス識別回路４で識別された、セルの出力ポートとクラスとに従って、キュー管理テーブル９を参照することにより入力された順にセルバッファ２の書き込みアドレスを指示して当該入力されたセルをセルバッファ２に保持させる。また、セル書き込み制御回路５は、書き込んだセルの出力ポートの該当クラスのポート管理テーブル８のキューフラグをセットし、また、書き込んだセルの出力ポートの該当クラスのキュー管理テーブル９の、書き込みアドレスを＋１（加算）することにより、つぎの書き込みアドレスを示すように指示する。さらに、書き込んだセルの出力ポートの該当クラスのキュー管理テーブル９の、キュー値を＋１（加算）する。
【００２６】
優先順位制御レジスタ７は、各クラスの優先順位を保持する。例えば、クラスとして、Ａ、Ｂ、ＣおよびＤがある場合に、優先順位としては、高いものからＡ、Ｂ、Ｃ、Ｄとするように保持しておく。優先順位制御レジスタ７は、書替えが可能であり、指示部１５からクラスの優先順位を指示し、優先順位制御レジスタ７に優先順位を保持させることができる。
【００２７】
セル読み込み制御回路６は、出力ポートごとに、優先順位制御レジスタ７が保持する優先順位の高いクラスから順番に、ポート管理テーブル８のキューフラグを参照し、セルバッファ２に保持されるセルがあると示されているキューフラグに対応するクラスのより先に入力されたセルを、キュー管理テーブル９を参照し、読みだしアドレスを指示して当該出力ポートから出力させる。また、キュー管理テーブル９が保持する読みだしアドレスを、当該出力させたセルのつぎに入力されたセルの読みだしアドレスを示すように、読みだしアドレスを＋１（加算）する。さらに、当該出力させた出力ポートのクラスの、キュー管理テーブル９のキュー値を−１（減算）し、キュー値が０のとき、すなわち、セルバッファ２に保持されるセルがない場合に、当該出力させた出力ポートのクラスのポート管理テーブル８のキューフラグをリセットする。
【００２８】
つぎに、図１を参照してセルバッファ２への書き込みと読みだしとの動作を説明する。
【００２９】
図１において、各入力ポートから入力されるセルは、セル多重部１でセル単位に多重された後、ルーチング先／優先クラス識別回路４でセルに付加されているセルヘッダ情報が解析される。セルヘッダ情報には、出力先ポートの識別情報とセルのクラスの識別情報とが含まれている。ルーチング先／優先クラス識別回路４は、セルヘッダ情報に含まれるセルの出力ポートを認識すると共に、入力されたセルのクラス順位を識別し、セル書込み制御回路５に識別結果を出力する。
【００３０】
ルーチング先／優先クラス識別回路４にて、出力ポートと優先クラスとが識別された後、セル書き込み制御回路５は、ポート管理テーブルの該当ポート、該当クラス領域にキューフラグをセットし（論理値“１”にし）、キュー管理テーブル９の該当ポートの該当クラス領域を参照し、セルバッファ２への書き込みアドレスを得て、この書き込みアドレスを指示することにより、セルバッファ２へセルの情報を書き込む。また、セル書き込み制御回路５は、書き込んだセルの出力ポートの該当クラスのキュー管理テーブル９の、書き込みアドレスを＋１（加算）することにより、つぎの書き込みアドレスを示すように指示する。さらに、書き込んだセルの出力ポートの該当クラスのキュー管理テーブル９の、キュー値を＋１（加算）する。
【００３１】
以上の動作を、セル書き込みタイミング毎に繰り返すことでセルバッファ２への書き込み動作を行う。
【００３２】
セルを読み出す場合には、セルバッファ２からセルを読み出すタイミングは、ポート１からポートＮまでそれぞれ定期的に到来する。まず、セル読み込み制御回路５は、ポート管理テーブル８を検索し、所定のポートのクラスＡ〜クラスＤまでの各々のキューフラグを認識する。次に、クラスＡ〜クラスＤまでの優先順位を予め設定してある優先順位制御レジスタ７を検索し、セルの読み出し優先順位を認識する。次に、セル読み込み制御回路６は、優先順位順に、ポート管理テーブル内情報の該当出力ポートのキューが論理“１”のクラスについて、キュー管理テーブル９の読みだしアドレスを得て、この読みだしアドレスを指示することによりセルバッファ２からセルの情報を読みだす。また、キュー管理テーブル９が保持する読みだしアドレスを、当該出力させたセルのつぎに入力されたセルの読みだしアドレスを示すように、読みだしアドレスを＋１（加算）する。さらに、当該出力させた出力ポートのクラスの、キュー管理テーブル９のキュー値を−１（減算）し、減算後のキュー値が０のとき、当該出力させた出力ポートのクラスのポート管理テーブル８のキューフラグをリセットする。
【００３３】
このようにして、セル読み込み制御回路６は、キューフラグが“１”であるクラスについて、優先クラス順に、キュー管理テーブル９より、セル読み出しアドレスを得て、このセルの格納されているセルバッファ２内の読み出しアドレスを順次指示し、セルバッファ２からセルを読み出す。セル分離部３では、セルバッファメモリから読み出されたセルを各出力ポート毎に分離する。
【００３４】
読みだし動作は、あるポートにおいて、あるクラスのセルを１つ出力したら次のポートの処理へ移り、同様な処理を行い、ポート１からポートＮまでの処理が繰り返し行われる。
【００３５】
つぎに、セル読み込み制御回路６における詳細な動作を図３を参照して説明する。図３に、セル読み込み制御回路６におけるセルバッファ読みだしフローを示す。例えば、図４（ａ）に、ポート管理テーブルのキューフラグを示すように、出力ポート１の各クラスのキューフラグを、クラスＡは“１”、クラスＢは“０”、クラスＣは“１”、クラスＤは“０”とし、また、優先順位制御レジスタに設定されている優先順位情報を、クラスＡ、Ｂ、Ｃ、Ｄの順番（クラスＡが優先順位が一番高く、クラスＤが優先順位が一番低い）とした場合について、図３を用いて説明する。
【００３６】
図３において、先ずセル読み込み制御回路は、ポート管理テーブル８のポート１の領域を検索し（ステップ１９）、Ａ＝１、Ｂ＝０、Ｃ＝１、Ｄ＝０の情報を認識する（ステップ２０）。次に、セル読み込み制御回路は、優先順位制御レジスタ７を検索し、各クラスの優先順位が、クラスＡ、Ｂ、Ｃ、Ｄの順番であることを認識する（ステップ２１）。ステップ２０および２１によって、以降のクラス単位の処理の順番が決まり、図３に示すように、この場合、クラスＡから、実際のセルバッファ２からの読み出し動作を行う（ステップ２２）。この例において、クラスＡは、既にキューフラグが“１”であるので、キューフラグ状態判定（ステップ２３）において、判定後分岐２４へ移り、キュー管理テーブル９のポート１のクラスＡの領域を参照することによりセルバッファ２の読み出しアドレスを得て、セルバッファ２の読み出しタイミングで、読み出しアドレスを指示することによりセルバッファ２からセルの情報を出力させる。つぎに、セル読み込み制御回路６は、クラスＡのセルバッファ２の読み出しアドレスを１加算することにより、次の読み出しアドレスとする（ステップ２５）。また、ポート管理テーブル内のキュー値は、書き込みアドレスから読み出しアドレスを減算したものがキュー値であるため、セル読み込み制御回路６はポート１のクラスＡのキュー値を−１（減算）する（ステップ２６）。次に、セル読み込み制御回路６は、キューの値が０であるか、またはそれ以外であるかを判断し（ステップ２７）、“０”であれば出力すべきセルが無いと判断し、ポート管理テーブル８のポート１のクラスＡ領域のキューフラグを“０”にする（ステップ２８）。“０”以外であった場合は、キューフラグが、既に“１”であるので、そのまま次の処理へ移る（分岐２９）。
【００３７】
セルバッファ２から読み出されたクラスＡのセルはセル分離部を経て、出力ポート１へ出力される。ポート１に対して、クラスＡのセルを出力したら、次はポート２のセル読み出し処理へ移り（分岐３０）、以降ポート２からポートｎの読み出し処理が同様に行われる。ポートｎの読み出し処理後、ポート１に戻り、ポート１からポートＮまでの処理が繰り返し行われる。
【００３８】
次に、再びポート１の読み出し処理へ戻ったときに、図４（ｂ）に、ポート管理テーブルのキューフラグを示すように、出力ポート１の各クラスのキューフラグを、クラスＡは“０”、クラスＢは“０”、クラスＣは“１”、クラスＤは“０”とし、また、優先順位制御レジスタに設定されている優先順位情報を、前述と同様に、クラスＡ、Ｂ、Ｃ、Ｄの順番（クラスＡが優先順位が一番高く、クラスＤが優先順位が一番低い）とした場合について、クラスＣのセルを読み出す場合の例を図３を用いて説明する。
【００３９】
セル読み込み制御回路６は、前述と同様、ポート管理テーブル８のポート１の領域を検索し（ステップ１９）、Ａ＝０、Ｂ＝０、Ｃ＝１、Ｄ＝０の情報を認識する（ステップ２０）。次に、セル読み込み制御回路６は、優先順位制御レジスタ７を検索し、各クラスの優先順位が、クラスＡ、Ｂ、Ｃ、Ｄの順番であることを認識する（ステップ２１）。次に、優先順位の順番よりクラスＡのセル読み出し処理２２に移行し、クラスＡのセルのキューフラグが“０”のため、キューフラグ状態判定（ステップ２３）において、分岐３１を経由することで、クラスＡの読み出し動作を行わない。つまり、読み出すべきセルが無い場合には、キュー管理テーブル９にアクセスせず、次の優先順位のクラスのセル（クラスＢ）の処理へ移る。
【００４０】
次に、優先順位２番目のクラスＢのセルについても、同様に読み出し動作ステップ３２において、クラスＢのセルのキューフラグもクラスＡと同様に“０”のため、キューフラグ状態判定における判定後、次の優先順位のクラスのセル（クラスＣ）の処理（ステップ３３）へ移る。クラスＣのセルのキューフラグ状態は、“１”であるため、キューフラグ状態判定（ステップ２３）において、セルバッファ２の読み出し処理へ移り、キュー管理テーブル９のポート１のクラスＣの領域を参照することによりセルバッファ２のクラスＣのセルバッファの読み出しアドレスを得て、セルバッファの読み出しタイミングで、読み出しアドレスを指示することによりセルバッファ２からセルの情報を出力させる。つぎに、セル読み込み制御回路６は、クラスＣのセルバッファ２の読み出しアドレスを１加算することにより、次の読み出しアドレスとする（ステップ２５）。また、ポート管理テーブル９のキュー値は、書き込みアドレスから読み出しアドレスを減算したものがキュー値であるため、セル読み込み制御回路６はポート１のクラスＣのキュー値を−１（減算）する（ステップ２６）。次に、セル読み込み制御回路６は、キューの値が０であるか、またはそれ以外であるかを判断し（ステップ２７）、“０”であれば出力すべきセルが無いと判断し、ポート管理テーブル８のポート１のクラスＣ領域のキューフラグを“０”にする（ステップ２８）。“０”以外であった場合は、キューフラグが、既に“１”であるので、そのまま次の処理へ移る（分岐２９）。
【００４１】
セルバッファから読み出されたクラスＣのセルはセル分離部を経て、出力ポート１へ出力される。その後は分岐３０を経て、次のポート２の読み出し処理へ移る。
【００４２】
次に、再びポート１の読み出し処理へ戻ったときに、図４（ｃ）に、ポート管理テーブルのキューフラグを示すように、出力ポート１の各クラスのキューフラグを、クラスＡは“０”、クラスＢは“０”、クラスＣは“０”、クラスＤは“１”とし、また、優先順位制御レジスタに設定されている優先順位情報は、前述と同様で、クラスＡ、Ｂ、Ｃ、Ｄの順番（クラスＡが優先順位が一番高く、クラスＤが優先順位が一番低い）とした場合について、クラスＤのセルを読み出す場合の例を図３を用いて説明する。
【００４３】
セル読み込み制御回路６は、前述と同様、ポート管理テーブル８のポート１の領域を検索し（ステップ１９）、Ａ＝０、Ｂ＝０、Ｃ＝０、Ｄ＝１の情報を認識する（ステップ２０）。次に、セル読み込み制御回路６は、優先順位制御レジスタ７を検索し、各クラスの優先順位が、クラスＡ、Ｂ、Ｃ、Ｄの順番であることを認識する（ステップ２１）。次に、優先順位の順番よりクラスＡのセル読み出し処理２２に移行し、クラスＡのセルのキューフラグが“０”のため、キューフラグ状態判定（ステップ２３）において、分岐３１を経由することで、読み出し動作を行わない。クラスＢおよびＣのセルについてもクラスＡのセルと同様、キューフラグが“０”のためセルの出力は行わず、次のクラスＤのセル読み出し処理に移行する。
【００４４】
クラスＤのセルのキューフラグ状態は、“１”であるため、キューフラグ状態判定（ステップ２３）において、セルバッファの読み出し処理へ移り、キュー管理テーブル９のポート１のクラスＤの領域を参照することによりセルバッファ２のクラスＤのセルバッファの読み出しアドレスを得て、セルバッファの読み出しタイミングで、読み出しアドレスを指示することによりセルバッファ２からセルの情報を出力させる。つぎに、セル読み込み制御回路６は、クラスＤのセルバッファ２の読み出しアドレスを１加算することにより、次の読み出しアドレスとする（ステップ２５）。また、ポート管理テーブル９のキュー値は、書き込みアドレスから読み出しアドレスを減算したものがキュー値であるため、セル読み込み制御回路６はポート１のクラスＤのキュー値を−１（減算）する（ステップ２６）。次に、セル読み込み制御回路６は、キューの値が０であるか、またはそれ以外であるかを判断し（ステップ２７）、“０”であれば出力すべきセルが無いと判断し、ポート管理テーブル８のポート１のクラスＤ領域のキューフラグを“０”にする（ステップ２８）。“０”以外であった場合は、キューフラグが、既に“１”であるので、そのまま次の処理へ移る（分岐２９）。
【００４５】
セルバッファから読み出されたクラスＤのセルはセル分離部を経て、出力ポート１へ出力される。
【００４６】
以上、説明したようによりすることにより、各ポートごとに、優先順位のより高いクラスのセルを出力することができる。本実施の形態によれば、キューフラグの状態を判断することで、出力すべきセルがあるクラスを認識することができる。従来、出力すべきクラスの判断時に、アドレス（数ビットの情報）を保持するキュー管理テーブルの全クラスを参照して、キューがあるかないかを判断し、出力すべきクラスを判断しなければならなかったが、本実施例によれば、各クラスのキューフラグ（１ビットの情報）を参照することにより、優先順位のより高いクラスのセルを出力することができる。また、セルの読み出し位置アドレスを格納したキュー管理テーブルへのアクセスは、出力するクラスに対応する領域のみで済むので、クラス分けの数が増えても処理時間に影響をあたえることがない。すなわち、キュー管理テーブルへのアクセス回数及びその処理時間を軽減できることより、クラス分けの数を容易に増やすことができる。このため、クラス分けの数は従来の１０数倍が期待できる。
【００４７】
また、優先順位制御レジスタ７をマイコンインタフェースとする事で、書き換え可能な仕組みとなり、指示部１５から優先順位を指示することにより、優先順位の任意の変更が可能となる。
【００４８】
つぎに、第２の実施の形態として、異なる優先順位を保持する複数種類の優先順位制御レジスタを備える場合について説明する。第２の実施の形態では、ラウンドロビンテーブルを新規に設けて、複数種類ある優先制御レジスタのうち利用する優先順位制御レジスタを定期的に巡回させることで、完全優先制御によるセル出力クラスの偏りをなくし、帯域分割を実現する。
【００４９】
図５に、第２の実施の形態におけるＡＴＭスイッチの構成図を示す。図５に示す構成では、図１に示す構成に、優先順位制御レジスタ（ａ）〜（ｄ）の４つと、ラウンドロビンテーブル５９と、４つの優先順位制御レジスタのなかでどの優先制御レジスタを利用するか選択する優先順位制御レジスタ選択部５８とが追加されている。
【００５０】
優先順位制御レジスタ選択部５８は、４つの優先順位制御レジスタ（ａ）〜（ｄ）のうちいずれか一つを選択する選択部である。ラウンドロビンテーブル５９は、優先順位制御レジスタ選択部５８が優先順位制御レジスタ（ａ）〜（ｄ）のうちどれを選択するかの選択信号を生成する選択信号生成部である。ラウンドロビンテーブル５９の（ａ）〜（ｄ）は、各々優先順位制御レジスタ（ａ）〜（ｄ）を示し、（ａ）→（ｂ）→（ｃ）→（ｄ）・・・→（ａ）→（ｂ）・・と定期的に選択信号を出力する。
【００５１】
セル読み込み制御回路６は、第１の実施の形態における処理と同様に、セルバッファ読み出し処理時に、優先順位制御レジスタを参照し、その優先順位に従い、セルを読み出す構成をとっている。第１の実施の形態では、優先順位制御レジスタの優先順位が、ある１つのパターンに固定されていると、読み出し要求毎に優先順位の高いクラスのセルばかりが出力される可能性がある。これに対して、本第２の実施の形態では、セル読み込み制御回路６が検索する優先順位制御レジスタを巡回させることができる。この場合、選択信号（ａ），（ｂ），（ｃ），（ｄ）のいずれかによって４つの優先順位制御レジスタ（ａ）〜（ｄ）のいずれかを利用することができる。
【００５２】
例えば、ある読み出しタイミングにおいて、ラウンドロビンテーブル５９の値が“（ａ）”であった場合は、セル読み込み制御回路６が検索する優先順位制御レジスタは優先制御順位制御レジスタ（ａ）であり、読み出しセルの優先順位はクラスＡ、クラスＢ、クラスＣ、クラスＤの順番となり、また、別の読み出しタイミング時に、ラウンドロビンテーブル５９の値が“（Ｃ）”であった場合は、セル読み込み制御回路６が検索する優先順位制御レジスタは優先制御順位制御レジスタ（Ｃ）であり、読み出しセルの優先順位はクラスＣ、クラスＤ、クラスＡ、クラスＢの順番となる。これにより、優先順位の高いクラスのセルに偏って読み出されることを回避し、各クラスに出力の機会を与えることができ、帯域分けが可能となる。また、ラウンドロビンテーブルの選択信号の出力による優先順位制御レジスタを選択している時間は、全ての優先順位制御レジスタで同じ時間にしてもよいし、各優先順位制御レジスタ毎に異ならせるようにしてもよい。例えば、優先順位制御レジスタ（ａ）についてはセル出力数２０セル分、優先順位制御レジスタ（ｂ）および（ｃ）についてはセル出力数１０セル分、優先順位制御レジスタ（ｄ）についてはセル出力数５セル分というように異ならせることができる。
【００５３】
第２の実施の形態によれば、複数種類ある優先制御レジスタのうち利用する優先順位制御レジスタを定期的に巡回させることで、完全優先制御によるセル出力クラスの偏りをなくし、帯域分割を実現することができる。
【００５４】
【発明の効果】
本発明によれば、複数の品質クラス毎に分けられたセルバッファ内のセルを優先順位の高いものから効率的に読み出すことができる。セル読み出し処理時、読み出すべきクラスを簡単に認識することができ、また、セルの読み出し位置アドレスを格納したキュー管理テーブルへのアクセスは、出力するクラスに対応する領域のみで済むので、クラス分けの数が増えても処理時間に影響をあたえることがない。
【図面の簡単な説明】
【図１】本発明の実施の形態における出力バッファ型のスイッチシステムの構成図。
【図２】本発明の実施の形態で用いるポート管理テーブルを示す説明図。
【図３】本発明の実施の形態におけるセルバッファ読み出しフロー図。
【図４】本発明の実施の形態で用いるポート管理テーブルの論理例を示す説明図。
【図５】本発明の第２の実施の形態における出力バッファ型のスイッチシステムの構成図。
【図６】従来技術を説明する構成図。
【符号の説明】
１、１００、…セル多重部、  ２、５１、１０１…セルバッファメモリ
３、１０２…セル分離部
４、１０３…ルーチング先／優先先クラス識別回路
５、１０４…セル書き込み制御回路
６、１０５…セル読み出し制御回路、７…優先順位制御レジスタ
８、５６…ポート管理テーブル
９、１０６…キュー管理テーブル
２０…各クラスのキュー状態認識処理
２１…各クラスの優先順位判定処理
２２…クラスＡのセルバッファ読み出し処理、２３…クラスＡのセルのキューの有無判定処理
２４…クラスＡのセルのキューフラグが“１”の時の遷移ルート
２５…セルバッファ読み出しアドレス更新処理
２６…キューの値の減算（−１）処理、
２７…キューの値の“０”との比較処理
２８…キューフラグ“０”書き込み処理
２９…キューフラグ“１”書き込み処理
３０…ポート２のセル読み出し処理への遷移ルート
３１…クラスＡのセルのキューフラグが“０”の時の遷移ルート
３２…クラスＢのセルバッファ読み出し処理、３３…クラスＣのセルバッファ読み出し処理
３４…クラスＤのセルバッファ読み出し処理。
【図１】
0003667898.tif 000002
【図２】
0003667898.tif 000003
【図３】
0003667898.tif 000004
【図４】
0003667898.tif 000005
【図５】
0003667898.tif 000006
【図６】
0003667898.tif 000007