(57)【特許請求の範囲】
【請求項１】
各コネクションのセルを一時的に格納して出力するセル格納手段と、各コネクションの最小帯域を考慮して、各コネクションの出力帯域を割り当てる帯域割当手段と、上記帯域割当手段により割り当てられた各コネクションの出力帯域と上記セル格納手段から出力された各コネクションの所定時間内の出力セル数を考慮したラウンドロビンを実行し、上記セル格納手段に対してセル出力対象のコネクションを指定するコネクション指定手段と、上記コネクション指定手段により指定されたコネクションの所定時間内の出力セル数が最大帯域に対応するセル数を超える場合、上記セル格納手段に対して当該コネクションのセルの出力を禁止する帯域監視手段とを備えたセルスケジューリング装置。
【請求項２】
帯域監視手段は、カウント開始時期が相互に異なる複数の所定時間内においてコネクションの出力セル数を計数し、各計数結果毎に最大帯域に対応するセル数と比較して、セルの出力禁止の有無を決定することを特徴とする請求項１記載のセルスケジューリング装置。
【請求項３】
帯域監視手段は、最大帯域に対応するセル数を超える計数結果が１個でもある時間帯では、セル格納手段に対して当該コネクションのセルの出力を禁止することを特徴とする請求項２記載のセルスケジューリング装置。
【請求項４】
各コネクションのセルを一時的に格納して出力するセル格納手段と、各コネクションの最小帯域を考慮して、各コネクションの出力帯域を割り当てる帯域割当手段と、所定時間内の出力セル数が最大帯域に対応するセル数を超えているコネクションを検出する検出手段と、上記検出手段により検出されたコネクションをセルの出力対象から除外して、各コネクションの出力帯域と各コネクションの所定時間内の出力セル数を考慮したラウンドロビンを実行し、上記セル格納手段に対してセル出力対象のコネクションを指定するコネクション指定手段とを備えたセルスケジューリング装置。
【請求項５】
コネクション指定手段は、メモリにセルが格納されていないコネクションが存在する場合、そのコネクションをセルの出力対象から除外して、セル出力対象のコネクションを指定することを特徴とする請求項１から請求項４のうちのいずれか１項記載のセルスケジューリング装置。
【請求項６】
各コネクションのセルを一時的にメモリに格納して、そのメモリからセルを出力させる際、各コネクションの最小帯域を考慮して、各コネクションの出力帯域を割り当てるとともに、各コネクションの出力帯域と上記メモリから出力された各コネクションの所定時間内の出力セル数を考慮したラウンドロビンを実行して、上記メモリに対してセル出力対象のコネクションを指定すると、そのコネクションの所定時間内の出力セル数が最大帯域に対応するセル数を超える場合、上記メモリに対して当該コネクションのセルの出力を禁止するセルスケジューリング方法。
【請求項７】
カウント開始時期が相互に異なる複数の所定時間内においてコネクションの出力セル数を計数し、各計数結果毎に最大帯域に対応するセル数と比較して、セルの出力禁止の有無を決定することを特徴とする請求項６記載のセルスケジューリング方法。
【請求項８】
最大帯域に対応するセル数を超える計数結果が１個でもある時間帯では、メモリに対して当該コネクションのセルの出力を禁止することを特徴とする請求項７記載のセルスケジューリング方法。
【請求項９】
各コネクションのセルを一時的にメモリに格納して、そのメモリからセルを出力させる際、各コネクションの最小帯域を考慮して、各コネクションの出力帯域を割り当てるとともに、所定時間内の出力セル数が最大帯域に対応するセル数を超えているコネクションを検出すると、そのコネクションをセルの出力対象から除外して、各コネクションの出力帯域と各コネクションの所定時間内の出力セル数を考慮したラウンドロビンを実行し、上記メモリに対してセル出力対象のコネクションを指定するセルスケジューリング方法。
【請求項１０】
メモリにセルが格納されていないコネクションが存在する場合、そのコネクションをセルの出力対象から除外して、セル出力対象のコネクションを指定することを特徴とする請求項６から請求項９のうちのいずれか１項記載のセルスケジューリング方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、ＡＴＭ通信装置における複数のコネクションが一定帯域を共有する場合において、複数のコネクションのセルをスケジューリングして出力するセルスケジューリング装置及びセルスケジューリング方法に関するものである。
【０００２】
【従来の技術】
複数のコネクションが一定帯域を共有するときのセルスケジューリング装置として、ＷＲＲ（Ｗｅｉｇｈｔｅｄ  Ｒｏｕｎｄ  Ｒｏｂｉｎ）方式によるスケジューリング装置がある。
図１３はＷＲＲ方式によるスケジューリング方式を模式的に示す説明図であり、図において、１０１，１０２，１０３はぞれぞれコネクションＡ，Ｂ，Ｃのセルバッファ、１０４はＷＲＲスケジューラ、１０５は出力セル流である。
【０００３】
次に動作について説明する。
図１３は３個のコネクションが一定の出力帯域を共有し、コネクションＡ，Ｂ，Ｃの保証帯域のウエイト比が３：２：１の場合の例である。
セルバッファ１０１〜１０３に常にセルが存在する場合、ＷＲＲ方式では出力帯域に対してウエイトの比で帯域が分割される。従って、出力帯域が１２Ｍｂ／ｓの場合は、コネクションＡ，Ｂ，Ｃはそれぞれ６Ｍｂ／ｓ，４Ｍｂ／ｓ，２Ｍｂ／ｓの帯域が保証されることになる。
【０００４】
ＷＲＲスケジューラ１０４では、コネクション毎にカウンタを持ち、そのカウンタの値とセル有無情報から、スケジューリングを行う。カウンタの初期値は保証帯域の比であるウエイト値とし、出力する毎に「１」減じる。
そして、セルを選択出力する毎にカウンタを「１」減じてゆき、すべてのカウンタ値が「０」となるか、カウンタ値が「０」以外のセルバッファがすべて空である場合に、カウンタを初期値にリセットすることで、公平な帯域保証を実現する。
【０００５】
以下、図１４を用いてＷＲＲスケジューラ１０４のスケジュール方法を具体的に説明する。図１４は図１３と同様に、コネクションＡ，Ｂ，Ｃのウエイトが３：２：１の場合を示している。また、図１４では各コネクションのセルバッファに常にセルが存在する場合を想定している。
【０００６】
まず、時刻Ｔ１では、カウンタ値が「０」でないコネクションＡ，Ｂ，Ｃでラウンドロビンを実行し、先頭のコネクションＡを選択する。そして、コネクションＡのカウンタ値を「３」から「１」減じて「２」とする。
次に、時刻Ｔ２では、時刻Ｔ１で出力したコネクションＡの次のコネクションＢからスキャンを行う。カウンタの値が「０」でないコネクションＡ，Ｂ，Ｃでラウンドロビンを実行するため、コネクションＢを選択する。そして、コネクションＢのカウンタ値を「２」から「１」減じて「１」とする。
【０００７】
時刻Ｔ３では、時刻Ｔ２で出力したコネクションＢの次のコネクションＣからスキャンを行う。カウンタの値が「０」でないコネクションＡ，Ｂ，Ｃでラウンドロビンを実行するため、コネクションＣを選択する。そして、コネクションＣのカウンタ値を「１」から「１」減じて「０」とする。
時刻Ｔ４では、時刻Ｔ３で出力したコネクションＣの次のコネクションＡからスキャンを行う。カウンタ値が「０」でないコネクションＡとコネクションＢでラウンドロビンを実行するため、コネクションＡを選択する。そして、コネクションＡのカウンタ値を「２」から「１」減じて「１」とする。
【０００８】
時刻Ｔ５では、時刻Ｔ４で出力したコネクションＡの次のコネクションＢからスキャンを行う。カウンタ値が０でないコネクションＡとコネクションＢでラウンドロビンを実行するため、コネクションＢを選択する。そして、コネクションＢのカウンタ値を「１」から「１」減じて「０」とする。
時刻Ｔ６では、時刻Ｔ５で出力したコネクションＢの次のコネクションＣからスキャンを行う。カウンタ値が０でないのはコネクションＡだけであるので、コネクションＡを選択する。そして、コネクションＡのカウンタ値を「１」から「１」減じて「０」とする。
【０００９】
これにより、コネクションＡ，Ｂ，Ｃのカウンタ値がすべて「０」となるため、カウンタを初期値にリセットする。
時刻Ｔ７以降では、時刻Ｔ１〜Ｔ６と同様の処理を実行し、時刻Ｔ７〜Ｔ１２は図１４のようになる。このようにして、すべてのセルバッファに常にセルが存在する場合は、出力帯域に対してウエイトの比で各コネクションの帯域が保証される。
【００１０】
図１５は図１３と同じ設定において、コネクションＡのセルバッファにセルが存在しない場合の例である。図１５に示すように、コネクションＡのセルバッファ１０１にセルが存在しない場合は、セルが存在するコネクションＢとコネクションＣの間で、各ウエイトの比で帯域が分割され、コネクションＢは８Ｍｂ／ｓ、コネクションＣは４Ｍｂ／ｓの帯域で出力される。
以下、図１６を用いてＷＲＲスケジューラ１０４のスケジュール方法を具体的に説明する。
【００１１】
時刻Ｔ１では、セルバッファにセルが存在し、かつ、カウンタ値が「０」でないコネクションＢとコネクションＣでラウンドロビンを実行し、コネクションＢを選択する。そして、コネクションＢのカウンタ値を「２」から「１」減じて「１」とする。
時刻Ｔ２では、セルバッファにセルが存在し、かつ、カウンタ値が「０」でないコネクションＢとコネクションＣでラウンドロビンを実行し、時刻Ｔ１で出力したコネクションＢの次のコネクションＣを選択する。そして、コネクションＣのカウンタ値を「１」から「１」減じて「０」とする。
【００１２】
時刻Ｔ３では、セルバッファにセルが存在し、かつ、カウンタ値が「０」でないのはコネクションＢだけであるので、コネクションＢを選択する。そして、コネクションＢのカウンタ値を「１」から「１」減じて「０」とする。
時刻Ｔ４では、カウンタ値が「０」でないのはコネクションＡだけであるが、コネクションＡのセルバッファにセルが存在していないため、カウンタ値を初期値にリセットして、ラウンドロビンを実行する。そして、時刻Ｔ３で出力したコネクションＢの次のコネクションＣを選択する。そして、コネクションＣのカウンタ値を「１」から「１」減じて「０」とする。
【００１３】
以降、同様の処理を繰り返し実行し、時刻Ｔ５〜Ｔ９は図１６のようになる。このように、出力帯域に対してセルが存在しているセルバッファのコネクション間で、ウエイトの比で各コネクションの帯域が保証される。
【００１４】
以上のように、ＷＲＲ方式では、出力帯域をコネクションのウエイトの比で分割した帯域が各コネクションに対して保証される。しかしながら、ＷＲＲ方式には最大帯域制限という概念がないため、コネクションＡ，Ｂ，Ｃの最大帯域が８Ｍｂ／ｓ、６Ｍｂ／ｓ、４Ｍｂ／ｓと設定されている場合、図１３の場合は最大帯域以下であるため問題を生じないが、図１５の場合はコネクションＢの帯域が最大帯域の６Ｍｂ／ｓを超えて出力されてしまう問題が生じる（最大帯域を超えたセル流が出力されるということは、ユーザに対して契約帯域を超えたセルを出力することになり、ユーザの端末が処理しきれなくなる可能性があるため、避けなければならない）。
【００１５】
これに対し、最小帯域を保証し、かつ、出力帯域を制限することができるセルスケジューリング装置が、例えば、特開平１１−４１２４１号公報に開示されている。
図１７は特開平１１−４１２４１号公報に示されたセルスケジューリング装置を示す構成図であり、図において、２０１はセル多重部、２０２はセルバッファメモリ、２０３はセル分離部、２０４はルーティング先／優先クラス識別回路、２０５はセル書き込み制御回路、２０６はセル読み込み制御回路、２０７はメモリインタフェース、２０８はポート管理テーブル、２０９はキュー管理テーブル、２１０は出力キューカウンタ／ラウンドロビンテーブル制御部、２１１はラウンドロビンテーブル、２１２はラウンドロビンテーブル選択部、２１３は優先順位制御レジスタ、２１４は優先順位制御レジスタ選択部である。
【００１６】
次に動作について説明する。
本従来例は、Ｎ本の入力ポートから入力されるセルをＮ本の出力ポートに出力する出力バッファ型のＡＴＭスイッチにおけるセル出力優先制御方法であって、出力ポート毎にクラスが複数あり、クラス間に優先順位がある場合のセルスケジューリング方法である。
【００１７】
セル多重部２０１において、入力ポート＃１〜＃ｎのセルを多重する。セルバッファメモリ２０２は、出力ポート番号毎、かつ、優先クラス毎にバッファを持ち、ＦＩＦＯ形式でセルを保存する。
ルーティング先／優先クラス識別回路２０４において、多重されたセルの出力ポート番号、優先クラスを識別し、セル書き込み制御回路２０５に出力する。
【００１８】
セル書き込み制御回路２０５は、出力ポート番号、優先クラス情報から、メモリインタフェース２０７を介してポート管理テーブル２０８とキュー管理テーブル２０９にアクセスする。即ち、出力ポート毎、かつ、クラス毎にセルバッファメモリ２０２にセルがあるか否かを示すキューフラグを管理するポート管理テーブル２０８と、出力ポート毎、かつ、クラス毎にセルバッファメモリ２０２の書き込みアドレスと読み込みアドレスを保持するキュー管理テーブル２０９にアクセスして、書き込みアドレスを取得し、その書き込みアドレスをセルバッファメモリ２０２に出力する。また、ポート管理テーブル２０８とキュー管理テーブル２０９の内容を更新する。
【００１９】
出力キューカウンタ／ラウンドロビンテーブル制御部２１０は、出力セル数を計数し、各クラスの設定された出力帯域を超えないようにラウンドロビンテーブル２１１を選択する信号を生成する。この信号を元に、ラウンドロビンテーブル選択部２１２は、ラウンドロビンテーブル２１１の中で、どのテーブルを利用するかを選択する。
【００２０】
優先順位制御レジスタ選択部２１４は、ラウンドロビンテーブル選択部２１２により選択されたテーブルを元に、優先順位制御レジスタ２１３の中で、どのレジスタを利用するかを選択する。選択されたレジスタを元に、セル読み込み制御回路２０６は、メモリインタフェース２０７を介して、ポート管理テーブル２０８とキュー管理テーブル２０９にアクセスし、それらの情報を元に読み込みアドレスを決定してセルバッファメモリ２０２に出力する。
また、読み出しポート番号とクラスを出力キューカウンタ／ラウンドロビンテーブル制御部２１０に出力し、ポート管理テーブル２０８とキュー管理テーブル２０９の内容を更新する。セル分離部２０３は、セルバッファメモリ２０２からの読み込みセルを出力ポート毎に分離する。
【００２１】
図１８は優先順位制御レジスタ２１３とラウンドロビンテーブル２１１の詳細内容を示す説明図である。
本従来例では、クラス数がクラスＡ，Ｂ，Ｃ，Ｄの４個、ポート当たりの出力帯域が１００Ｍｂ／ｓ、クラスＡ〜Ｄの出力帯域（最小保証帯域）が２５Ｍｂ／ｓの場合を示している。図１８のラウンドロビンテーブル２１１に示しているように、全クラスの出力セル数が設定帯域（最大帯域）以下の場合は、ラウンドロビンテーブル２１１の（ａ）を選択する。
【００２２】
例えば、クラスＡ，Ｂの最大帯域を５０Ｍｂ／ｓ、クラスＣ，Ｄの最大帯域を３５Ｍｂ／ｓとすると、クラスＡ，Ｂが５０Ｍｂ／ｓ以下、かつ、クラスＣ，Ｄが３５Ｍｂ／ｓ以下しかセルを出力していない場合である。（ａ）は（１）（２）（３）（４）と書かれているため、出力機会毎に優先順位制御レジスタ２１３の（１）〜（４）を順に繰り返し選択する。優先順位制御レジスタ２１３は、バッファ検索の優先順位を示しており、例えば、（１）はクラスＡ→クラスＢ→クラスＣ→クラスＤの順に、セルバッファメモリ２０２にセルが存在しているかどうかを検索することになる。
【００２３】
従って、全クラスのバッファに常時セルがある場合は、優先順位制御レジスタ２１３の（１）〜（４）の先頭に書かれているクラスのセルが順次選択されて出力されるため、ポート当たりの出力帯域が１００Ｍｂ／ｓである場合は、４クラスで均等に配分され、各クラスとも２５Ｍｂ／ｓの最小保証帯域で出力されることになり、全クラスとも最大帯域を超えることなく、ラウンドロビンテーブルは（ａ）を選択しつづけることになる。
【００２４】
一方、例えば、クラスＢのバッファにセルがない場合は、優先順位制御レジスタ２１３の（２）では、クラスＢの次のクラスＣを選択することになり、クラスＡ，Ｃ，Ｃ，Ｄの順で繰り返しセルを出力することになる。
そうすると、１００Ｍｂ／ｓの帯域に対して、クラスＡ，Ｄが２５Ｍｂ／ｓ、Ｃが５０Ｍｂ／ｓの帯域で出力し続けようとすることになる。そのため、クラスＣの最大帯域が３５Ｍｂ／ｓと設定されている場合、出力キューカウンタ／ラウンドロビンテーブル制御部２１０は、クラスＣの出力キューカウンタの値が３５Ｍｂ／ｓ相当のセル数を超えた時点で、ラウンドロビンテーブル２１１の（ａ）から（ｄ）に選択するように変更指示する。
これにより、（ｄ）に示された優先順位制御レジスタ２１３の（１１）（１２）（１３）でクラス選択をすることになる。以下、これを繰り返して、最大帯域を超えないように制御することが可能になる。
【００２５】
ただし、上記従来例には次のような問題がある。
仮に、クラスＡ，Ｂ，Ｃの最大帯域が５０Ｍｂ／ｓ、クラスＤの最大帯域が３５Ｍｂ／ｓと設定されている場合において、クラスＢのバッファにセルが存在しない場合は、クラスＡ，Ｄが２５Ｍｂ／ｓ、クラスＣが５０Ｍｂ／ｓのセルを出力することになる。
【００２６】
最小帯域はクラスＡ〜Ｄとも２５Ｍｂ／ｓに設定しているため、クラスＢのセルがない場合は、１００Ｍｂ／ｓの帯域をクラスＡ，Ｃ，Ｄで均等に配分し、約３３Ｍｂ／ｓずつ出力するのが公平である。また、最小保証帯域が異なる場合は、１００Ｍｂ／ｓの帯域を最小保証帯域に比例した帯域で配分し、かつ、設定された最大帯域を超えないように出力するのが、公平性という観点から望ましい。このような公平性が実現されないのは、優先順位制御レジスタ２１３の（２）で、クラスＢがない場合にクラスＣ，Ｄ，Ａの優先順位でセルを出力するように指示しているために生じる。
【００２７】
従って、公平性を実現するためには、優先順位制御レジスタ２１３の（２）を図１９に示すように、クラスＢにセルがないとき各クラスに均等に振り分けられるようにする必要がある。図１９では２番目のクラスにセルがないとき、残りの２クラスでの公平性も考慮している。
【００２８】
優先順位制御レジスタ２１３が３クラス以上で優先順位付けを行っている（１）〜（１６）も同様に、優先順位制御レジスタ２１３を増やす必要がある。ラウンドロビンテーブル２１１の（ａ）〜（ｅ）も、それに応じて変更する必要がある。
例えば、図１８の（ａ）に相当するラウンドロビンテーブルは、図１９に示すように（２）が（２−１）〜（２−６）に増えるのと同様に、（１）（３）（４）も６倍になるので、（ａ）のテーブルの長さは現在の４個から２４個になる。
【００２９】
さらに、本従来例では、１００Ｍｂ／ｓの出力帯域に対して、クラスＡ〜Ｄの最小保証帯域が２５Ｍｂ／ｓずつであり、クラス間で均等割り当てであったため、ラウンドロビンテーブル２１１の（ａ）の長さは、公平割り当てを考慮しない場合は、図１８に示す４個でよかったが、クラス間で最小帯域が異なる場合はラウンドロビンテーブルの構成を変更する必要がある。例えば、クラスＡ〜Ｄが順に４０Ｍｂ／ｓ，３０Ｍｂ／ｓ，２０Ｍｂ／ｓ，１０Ｍｂ／ｓと割り当てられている場合は、クラスＡ，Ｂ，Ｃ，Ｄが４：３：２：１の比率で優先順位制御レジスタ２１３の先頭となる必要があるため、公平性を考慮しなければ、図１８のラウンドロビンテーブル２１１の（ａ）は、例えば、図２０に示すようにする必要がある。図２０では、図１９のような優先順位の２番目以降の公平性は考慮していないため、これを考慮するとテーブル長は更に長くなる。
【００３０】
【発明が解決しようとする課題】
従来のセルスケジューリング装置及びセルスケジューリング方法は以上のように構成されているので、優先順位制御レジスタ２１３やラウンドロビンテーブル２１１を用いれば、最小帯域や最大帯域を考慮したセルスケジューリングを実現することができる。
しかし、クラス毎に最小帯域が異なる場合や、最小帯域に応じた帯域割り当ての公平性を実現する場合には、優先順位制御レジスタ２１３やラウンドロビンテーブル２１１の容量が大きくなる。更に、クラス毎ではなく、コネクション毎にスケジューリングを実施する場合、コネクション数が１００パス以上あったり、複雑な最小帯域が与えられることも予想されるため、優先順位制御レジスタ２１３やラウンドロビンテーブル２１１の構成が極めて複雑になり、容量も増大するなどの課題があった。
【００３１】
この発明は上記のような課題を解決するためになされたもので、回路規模の増大を招くことなく、最小帯域が異なるコネクションに対して公平性を考慮したスケジューリングを実施することができるセルスケジューリング装置及びセルスケジューリング方法を得ることを目的とする。
【００３２】
【課題を解決するための手段】
この発明に係るセルスケジューリング装置は、各コネクションの最小帯域を考慮して割り当てられた各コネクションの出力帯域とセル格納手段から出力された各コネクションの所定時間内の出力セル数を考慮したラウンドロビンを実行し、そのセル格納手段に対してセル出力対象のコネクションを指定するコネクション指定手段と、そのコネクション指定手段により指定されたコネクションの所定時間内の出力セル数が最大帯域に対応するセル数を超える場合、セル格納手段に対して当該コネクションのセルの出力を禁止する帯域監視手段とを設けたものである。
【００３３】
この発明に係るセルスケジューリング装置は、カウント開始時期が相互に異なる複数の所定時間内においてコネクションの出力セル数を計数し、各計数結果毎に最大帯域に対応するセル数と比較して、セルの出力禁止の有無を決定する帯域監視手段を設けたものである。
【００３４】
この発明に係るセルスケジューリング装置は、最大帯域に対応するセル数を超える計数結果が１個でもある時間帯では、セル格納手段に対して当該コネクションのセルの出力を禁止する帯域監視手段を設けたものである。
【００３５】
この発明に係るセルスケジューリング装置は、所定時間内の出力セル数が最大帯域に対応するセル数を超えているコネクションを検出する検出手段と、その検出手段により検出されたコネクションをセルの出力対象から除外して、各コネクションの出力帯域と各コネクションの所定時間内の出力セル数を考慮したラウンドロビンを実行し、セル格納手段に対してセル出力対象のコネクションを指定するコネクション指定手段とを設けたものである。
【００３６】
この発明に係るセルスケジューリング装置は、メモリにセルが格納されていないコネクションが存在する場合、そのコネクションをセルの出力対象から除外して、セル出力対象のコネクションを指定するコネクション指定手段を設けたものである。
【００３７】
この発明に係るセルスケジューリング方法は、最小帯域を考慮して割り当てた各コネクションの出力帯域とメモリから出力された各コネクションの所定時間内の出力セル数を考慮したラウンドロビンを実行して、メモリに対してセル出力対象のコネクションを指定すると、そのコネクションの所定時間内の出力セル数が最大帯域に対応するセル数を超える場合、メモリに対して当該コネクションのセルの出力を禁止するようにしたものである。
【００３８】
この発明に係るセルスケジューリング方法は、カウント開始時期が相互に異なる複数の所定時間内においてコネクションの出力セル数を計数し、各計数結果毎に最大帯域に対応するセル数と比較して、セルの出力禁止の有無を決定するようにしたものである。
【００３９】
この発明に係るセルスケジューリング方法は、最大帯域に対応するセル数を超える計数結果が１個でもある時間帯では、メモリに対して当該コネクションのセルの出力を禁止するようにしたものである。
【００４０】
この発明に係るセルスケジューリング方法は、所定時間内の出力セル数が最大帯域に対応するセル数を超えているコネクションを検出すると、そのコネクションをセルの出力対象から除外して、各コネクションの出力帯域と各コネクションの所定時間内の出力セル数を考慮したラウンドロビンを実行し、メモリに対してセル出力対象のコネクションを指定するようにしたものである。
【００４１】
この発明に係るセルスケジューリング方法は、メモリにセルが格納されていないコネクションが存在する場合、そのコネクションをセルの出力対象から除外して、セル出力対象のコネクションを指定するようにしたものである。
【００４２】
【発明の実施の形態】
以下、この発明の実施の一形態を説明する。
実施の形態１．
図１はこの発明の実施の形態１によるセルスケジューリング装置を示す構成図であり、図において、１はコネクション毎にＦＩＦＯ形式でセルを格納して出力するセルバッファメモリ、２はセルのコネクション番号を識別するコネクション識別回路、３はセルバッファメモリ１の書き込みアドレスを制御するセル書き込み制御回路、４はセルバッファメモリ１の読み込みアドレスを制御するセル読み込み制御回路、５はセル有無情報テーブル６とキュー管理テーブル７をアクセスするメモリインタフェースである。
なお、セルバッファメモリ１，コネクション識別回路２，セル書き込み制御回路３，セル読み込み制御回路４及びメモリインタフェース５からセル格納手段を構成している。
【００４３】
６はコネクション毎にセルバッファメモリ１にセルが存在するか否か示すセル有無情報を格納するセル有無情報テーブル、７はセルバッファメモリ１のコネクション毎の読み込みアドレスとバッファ内セル数を保存するキュー管理テーブル、８は各コネクションの最小帯域を考慮して、各コネクションの出力帯域を割り当てる一方、各コネクションの出力帯域とセルバッファメモリ１から出力された各コネクションの所定時間内の出力セル数を考慮したラウンドロビンを実行し、セル読み込み制御回路４に対してセル出力対象のコネクションを指定するＷＲＲ回路（帯域割当手段、コネクション指定手段）である。
【００４４】
９はＷＲＲ回路８により指定されたコネクションの所定時間内の出力セル数が最大帯域に対応するセル数を超える場合には、セル読み込み制御回路４に対して当該コネクションのセルの出力を禁止する出力帯域監視回路（帯域監視手段）である。
図２はこの発明の実施の形態１によるセルスケジューリング方法を示すフローチャートである。
【００４５】
図１では、セルバッファメモリ１はコネクション数分のＦＩＦＯメモリではなく、通常のメモリをアドレスによりコネクション数分の領域に分割し、書き込みアドレスと読み込みアドレスを制御することで、ＦＩＦＯ形式でセルを保存することを想定している。書き込みアドレスは、キュー管理テーブル７に保持している読み込みアドレスとバッファ内セル数を加算することで求めることができる。また、セル有無情報テーブル６はメモリで構成することを想定しているが、レジスタとセレクタにより構成することも可能である。
【００４６】
次に動作について説明する。
入力セルはコネクション識別回路２でコネクション番号を識別し、セル書き込み制御回路３に出力する（ステップＳＴ１）。
セル書き込み制御回路３は、メモリインタフェース５を介してキュー管理テーブル７にアクセスし、書き込みアドレスを求めてセルバッファメモリ１に書き込みアドレスを出力する（ステップＳＴ２）。
また、セル書き込み制御回路３は、メモリインタフェース５を介してセル有無情報テーブル６にアクセスし、該当コネクション番号のセル有無情報を「有り」に上書きする。
【００４７】
一方、ＷＲＲ回路８は、予め、各コネクションの最小帯域を考慮して、各コネクションのウエイト値を割り当てる。各コネクションのウエイト値、セル有無情報テーブル６に格納されているコネクション毎のセル有無情報及びＷＲＲ回路８の内部に保持するコネクション毎のＷＲＲカウンタ情報（セルバッファメモリ１から出力する毎に該当コネクションのカウンタ値を１減じる。初期値及びリセット値は各コネクションのウエイト値）を考慮したラウンドロビンを実行し、出力セルのコネクション番号（セル出力対象のコネクション）を決定する（ステップＳＴ３）。そして、その出力セルのコネクション番号をセル読み込み制御回路４と出力帯域監視回路９に出力する。
【００４８】
ただし、全コネクションのセルバッファにセルがないときは出力すべきセルがないため、ＷＲＲ回路８はコネクション番号が有効であるか否かを示す有効信号も出力帯域監視回路９に出力する。有効信号は、有効時は「１」、無効時は「０」とする。
【００４９】
出力帯域監視回路９は、ＷＲＲ回路８から出力される有効信号が「１」のとき、コネクション番号に対応する出力帯域が最大帯域を超えていないかどうかを判断し（ステップＳＴ４）、即ち、該当コネクションの所定時間内の出力セル数が最大帯域に対応するセル数を超えていないかどうかを判断し、その判断結果に応じた出力許可信号をセル読み込み制御回路４に出力する。
出力許可信号は、最大帯域を超えていない場合は「１」、最大帯域を超える場合は「０」とする。また、有効信号が「０」のときは、出力許可信号は「０」とする。
【００５０】
セル読み込み制御回路４は、出力帯域監視回路９が出力する出力許可信号が「１」のとき、ＷＲＲ回路８の出力するコネクション番号を元に、メモリインタフェース５を介してキュー管理テーブル７にアクセスして、読み込みアドレスを決定し、その読み込みアドレスをセルバッファメモリ１に出力する（ステップＳＴ５）。
さらに、キュー管理テーブル７が保持している該当コネクションのバッファ内セル数を「１」減算し、その結果、バッファ内セル数が「０」になった場合は、セル有無情報テーブル６が格納している該当コネクションのセル有無情報を「０」にリセットする。以上により、最小帯域保証と最大帯域制限が実現される。
【００５１】
ここで、図３は出力帯域監視回路９の内部構成を示す構成図であり、図において、２０はコネクション毎の出力セル数を保持する出力セル数保持回路、２１はコネクション毎の最大帯域を設定し、その最大帯域に対応するセル数（以下、最大帯域対応セル数という）を出力する最大帯域設定メモリ、２２は出力セル数と最大帯域対応セル数を比較する比較器、２３はＡＮＤゲート、２４は最大帯域の監視周期毎に周期リセット信号を出力する周期カウンタである。
【００５２】
以下、図３の出力帯域監視回路９の動作を具体的に説明する。
出力セル数保持回路２０は、コネクション毎の出力セル数を保持する回路であり、コネクション番号に対応する出力セル数を出力する。
即ち、ＡＮＤゲート２３が出力する出力許可信号が「１」のとき、該当コネクション番号の出力セル数を「１」増加する一方、周期カウンタ２４から周期リセット信号が出力されると、全コネクションの出力セル数を「０」にリセットすることにより、各コネクションの所定時間内の出力セル数を保持する。
【００５３】
一方、最大帯域設定メモリ２１は、出力帯域を監視する一定時間内において、最大帯域で出力可能なセル数をコネクション毎に保存し、コネクション番号に対応する出力セル数を出力する。
例えば、セルバッファメモリ１から出力するセルの帯域が１５０Ｍｂ／ｓであり、出力帯域の監視時間が１５０セル時間であるとすると、最大帯域が１００Ｍｂ／ｓの場合は「１００」セル、２０Ｍｂ／ｓの場合は「２０」セルと設定されることになる。また、出力帯域の監視時間が１５００セル時間であるとすると、最大帯域が１００Ｍｂ／ｓの場合は「１０００」セル、２０Ｍｂ／ｓの場合は「２００」セルと設定されることになる。
【００５４】
周期カウンタ２４は、出力帯域を監視する一定時間を計測するカウンタであり、一定時間毎に周期リセット信号を出力する。以後、出力帯域を監視する一定時間のことを監視ウインドウと称する。
比較器２２は、出力セル数保持回路２０がコネクション番号に対応する出力セル数を出力し、最大帯域設定メモリ２１がコネクション番号に対応する最大帯域対応セル数を出力すると、その出力セル数と最大帯域対応セル数を比較し、その出力セル数が最大帯域セル数より小さければ「１」を出力し、その出力セル数が最大帯域セル数と等しいか大きければ「０」を出力する。
【００５５】
ＡＮＤゲート２３は、ＷＲＲ回路８が出力する有効信号が「１」のときは、比較器２２の出力値が「１」であれば、「１」の出力許可信号を出力し、比較器２２の出力値が「０」であれば、「０」の出力許可信号を出力する。
ＷＲＲ回路８が出力する有効信号が「０」のときは、比較器２２の出力値に拘わらず、「０」の出力許可信号を出力する。
以上により、監視ウインドウ内で最大帯域を超えたセルの出力が禁止されることになる。
【００５６】
ここで、図４は出力セル数保持回路２０の内部構成を示す構成図であり、図において、３０はデコーダ、３１１  〜３１ｎ  はＡＮＤゲート、３２１  〜３２ｎ  はコネクション毎の出力セル数カウンタ、３３はセレクタである。
【００５７】
以下、図４の出力セル数保持回路２０の動作を具体的に説明する。
まず、デコーダ３０は、ＷＲＲ回路８が出力するコネクション番号をデコードし、各コネクションに対応するビットのうち、該当コネクションの１ビットのみが「１」となる信号をＡＮＤゲート３１１  〜３１ｎ  に出力する。
そして、出力許可信号が「１」の場合、ＡＮＤゲート３１１  〜３１ｎ  のうち、該当コネクションに対応するＡＮＤゲートの出力のみが「１」となり、他のＡＮＤゲートの出力が「０」となる。
【００５８】
出力セル数カウンタ３２１  〜３２ｎ  は、前段のＡＮＤゲートの出力が「１」のとき、「１」カウントアップされる。即ち、コネクション番号に対応する出力セル数カウンタのみが「１」カウントアップされ、他の出力セル数カウンタはカウントアップされない。
ただし、出力セル数カウンタ３２１  〜３２ｎ  は、周期カウンタ２４から周期リセット信号が出力されると、カウンタ値がリセットされる。
【００５９】
セレクタ３３は、出力セル数カウンタ３２１  〜３２ｎ  のうち、コネクション番号に対応する出力セル数カウンタのカウンタ値を選択し、そのカウンタ値を比較器２２に出力する。
【００６０】
なお、出力セル数保持回路２０は、図５に示すように構成してもよい。図５において、３４はアドレス制御回路、３５ａ，３５ｂは出力セル数メモリ、３６はデータ制御回路である。
出力セル数メモリ３５ａ，３５ｂは、コネクション毎の出力セル数を保持するようにし、監視ウインドウが切り換わる毎に、何れか一方の出力セル数メモリの出力が有効になるように切り換えて使用する。
そして、使用していない方の出力セル数メモリが保持するすべてのデータを、監視ウインドウ時間内に「０」にクリアする。
【００６１】
アドレス制御回路３４とデータ制御回路３６は、周期リセット信号を元に、２個の出力セル数メモリ３５ａ，３５ｂの使用状態を決定し、それぞれアドレスの制御とデータの制御を行う。
アドレス制御回路３４は、使用中の出力セル数メモリに対して、コネクション番号をアドレスとして出力し、使用していない方の出力セル数メモリに対してはデータをクリアするためのアドレスを出力する。
【００６２】
データ制御回路３６は、使用中の出力セル数メモリからの読み込みデータを出力セル数として比較器２２に出力し、ＡＮＤゲート２３から「１」の出力許可信号が出力されると、その出力セル数に「１」を加算し、その加算結果を書き込みデータとして、上記出力セル数メモリに出力する。
なお、使用していない方の出力セル数メモリに対しては、データクリアのために書き込みデータとして「０」を出力する。
【００６３】
以上により、図４の出力セル数保持回路２０と同等の回路を図５の構成でも実現できる。図５の出力セル数保持回路２０の場合はメモリが必要となるが、コネクション数が多くなった場合は、ランダムロジック回路の規模を小さくすることができる効果を奏する。
【００６４】
図６は図１のセルスケジューリング装置におけるセル読み込み方法の具体的な動作例を示す説明図である。
図６ではコネクション数がＡ，Ｂ，Ｃの３個であって、ラウンドロビンのウエイトがコネクションＡ，Ｂ，Ｃそれぞれ３：２：１であり、Ａ，Ｂ，Ｃの合計出力帯域が１２Ｍｂ／ｓ、最大帯域が８Ｍｂ／ｓ，６Ｍｂ／ｓ，４Ｍｂ／ｓ、監視ウインドウが１２セル時間の例である。
【００６５】
この場合、コネクションＡ，Ｂ，Ｃの最小保証帯域は合計出力帯域である１２Ｍｂ／ｓを３：２：１に配分した６Ｍｂ／ｓ，４Ｍｂ／ｓ，２Ｍｂ／ｓとなる。また、最大帯域設定メモリ２１に設定される最大帯域対応セル数は、コネクションＡ，Ｂ，Ｃそれぞれ８，６，４となる。
【００６６】
図６ではコネクションＡのセルバッファにセルが存在しない場合の動作について示している。コネクションＡ，Ｂ，Ｃのウエイトは図１６の場合と同一であるため、ＷＲＲ回路８のカウンタ値は図１６と同じ変化をし、ＷＲＲ回路８が出力するコネクション番号も図１６の出力セル番号と同一となる。
なお、図６では簡単化のため、各時刻の終了時での値のみ記載している。
【００６７】
時刻Ｔ１で、ＷＲＲ選択コネクションはＢであり、コネクションＢの時刻Ｔ１より前の出力セル数は「０」であり、最大帯域対応セル数「６」より小さいため、出力許可が出され、出力セル数は＋１した「１」となる。
同様に、時刻Ｔ１０までは、ＷＲＲ選択コネクションの出力セル数は最大帯域対応セル数より小さいため、出力許可が出される。
【００６８】
時刻Ｔ１１では、ＷＲＲ選択コネクションはＢとなるが、コネクションＢの出力セル数は時刻Ｔ９で「６」となっており、最大帯域対応セル数と一致している。このため出力許可は出されず、出力セル数も＋１されない。
同様に、時刻Ｔ１２でも、ＷＲＲ選択コネクションであるＢの出力許可は出されない。
【００６９】
従って、時刻Ｔ１１，Ｔ１２は、アイドルセルが出力されるが、時刻Ｔ１〜Ｔ１２までのコネクションＢの出力セル数は６セルに制限され、最大帯域に設定された６Ｍｂ／ｓを超えない。
また、時刻Ｔ１３では、周期カウンタ２４から周期リセット信号が出力され、コネクションＡ，Ｂ，Ｃの出力セル数は「０」にリセットされる。
以後同様に、ＷＲＲ選択コネクションの出力セル数を最大帯域対応セル数と比較して出力許可が判定される。
【００７０】
以上で明らかなように、この実施の形態１では、ウエイテッド・ラウンドロビンにより選択されたコネクションについて、それまでに出力した帯域を監視して、出力許可を与えるか否かを判定するため、最大帯域を超えたセルが出力されることがない。
また、出力セルの選択はウエイテッド・ラウンドロビンにより行っているため、ウエイトに応じたコネクションが選択され、公平性が保たれる。
【００７１】
図１のセルスケジューリング装置は、従来のウエイテッド・ラウンドロビンによるセルスケジューリング装置に、出力帯域監視回路９を付加したものである。従って既存のセルスケジューリング装置を利用できる効果を奏する。
また、出力帯域監視回路９はコネクション毎の最小保証帯域の設定には関係なく、最大帯域に相当する値を設定するメモリを保持するだけでよく、簡単な回路で構成することができる効果を奏する。
さらに、コネクション数が増えた場合でも、図５のように構成することで回路規模を小さくすることができる効果がある。
【００７２】
実施の形態２．
図７はこの発明の実施の形態２によるセルスケジューリング装置における出力帯域監視回路９の内部構成を示す構成図であり、図において、図３と同一符号は同一または相当部分を示すので説明を省略する。
２０ａ，２０ｂは出力セル数保持回路２０と同様の出力セル数保持回路、２２ａ，２２ｂは比較器２２と同様の比較器、２５は周期が監視ウインドウの１／２の１／２周期カウンタ、２６は出力セル数保持回路２０ａ，２０ｂに対して、１／２周期カウンタ２５が出力する周期リセット信号を交互に出力するリセット制御回路、２７は比較器２２ａ，２２ｂが「１」を出力し、かつ、有効信号が「１」のとき「１」の出力許可信号を出力するＡＮＤゲートである。
【００７３】
次に動作について説明する。
図８は出力帯域監視回路９の動作例を示す説明図である。図８の例では、監視ウインドウ時間をＴとし、最大帯域対応セル数が５セルのコネクションに対して、▲１▼に示す時間位置でａ〜ｏまでの１５セルがＷＲＲ回路８により選択された場合を想定している。
【００７４】
このとき、図３に示すように、監視ウインドウが１個で、それが▲２▼に示す位相である場合、２周期目でｋ〜ｏに対して出力許可が出されないため、セルは▲４▼のようにａ〜ｊの位置に出力される。
しかし、図７のように、２つの監視ウインドウで監視すると、▲３▼の監視ウインドウの１周期目でｆ〜ｊに対して出力許可が出されなくなるため、２個の監視結果を合わせると、セルは▲５▼のようにａ〜ｅとｋ〜ｏの位置に出力されることになる。
【００７５】
このように、２つの監視ウインドウで監視することにより、セル出力のバースト性を抑えることができる。
なお、本スケジューリング装置は出力許可が出ないときは、セルバッファメモリ１からのセル読み込みを行わないように制御するので、▲５▼のｋ〜ｏは１個の監視ウインドウの場合の出力である▲４▼のｆ〜ｊと同一セルである。ｆ〜ｊのセルを廃棄するわけではない。
【００７６】
実施の形態３．
図９はこの発明の実施の形態３によるセルスケジューリング装置を示す構成図であり、図において、図１と同一符号は同一または相当部分を示すので説明を省略する。
１０はコネクション毎の出力帯域情報を保持する帯域情報保持回路（検出手段）、１１は各コネクションの最小帯域を考慮して、各コネクションの出力帯域を割り当てる一方、帯域情報保持回路１０が出力する出力帯域情報から所定時間内の出力セル数が最大帯域に対応するセル数を超えているコネクションを検出し、そのコネクションをセルの出力対象から除外して、各コネクションの出力帯域と各コネクションの所定時間内の出力セル数を考慮したラウンドロビンを実行し、セル読み込み制御回路４に対してセル出力対象のコネクションを指定する帯域制限付ＷＲＲ回路（帯域割当手段、検出手段、コネクション指定手段）である。
【００７７】
図１０は帯域情報保持回路１０の内部構成を示す構成図であり、図において、４０はコネクション毎の出力セル数を保持する出力セル数保持回路、４１はコネクション毎の最大帯域対応セル数を出力する最大帯域設定メモリ、４２は出力セル数と最大帯域対応セル数を比較し、出力セル数≧最大帯域対応セル数のとき「１」を出力する比較器、４３はＡＮＤゲート、４４はコネクション数分のレジスタを有し、帯域制限付ＷＲＲ回路１１が出力する有効信号が「１」であり、かつ、比較器４２の比較結果が「１」のとき、該当コネクション番号のレジスタを「１」にセットし、周期カウンタ４５から周期リセット信号が出力されると、すべてのレジスタを「０」にリセットする帯域超過フラグレジスタであり、帯域超過フラグレジスタ４４は全コネクション数分のデータを帯域超過情報として常時出力する。４５は最大帯域の監視周期毎に周期リセット信号を出力する周期カウンタである。
【００７８】
図１１は帯域制限付ＷＲＲ回路１１の内部構成を示す構成図であり、図において、５０１  〜５０ｎ  はコネクション毎のセル有無情報が「１」であり、かつ、帯域超過情報が「０」のときのみ「１」を出力するＮＯＴ付ＡＮＤゲート、５１はＷＲＲ回路８と同様のＷＲＲ回路である。ただし、図１のＷＲＲ回路８に入力されるセル有無情報の代わりに、ＮＯＴ付ＡＮＤゲート５０１  〜５０ｎ  が出力する信号を入力する点が異なる。即ち、図１におけるＷＲＲ回路８は、通常のウエイテッド・ラウンドロビンを実行するため、ＷＲＲ回路内部のＷＲＲカウンタ情報のリセット条件が、すべてのＷＲＲカウンタ情報が「０」となるか、ＷＲＲカウンタ情報が「０」でないコネクションのセル有無情報がすべて「０」のときであるが、図１１におけるＷＲＲ回路５１のＷＲＲカウンタ情報のリセット条件は、すべてのＷＲＲカウンタ情報が「０」となるか、ＷＲＲカウンタ情報が「０」でないコネクションのすべてについて、セル有無情報が「０」あるいは帯域超過情報が「１」のときとなる。そのため、図１１の構成では、最大帯域を超えたコネクションがウエイテッド・ラウンドロビンで選択されることがなくなる。
【００７９】
図１２はセル読み込み方法の具体的な動作例を示す説明図である。
図１２ではコネクション数がＡ，Ｂ，Ｃの３個であって、ラウンドロビンのウエイトがコネクションＡ，Ｂ，Ｃそれぞれ３：２：１であり、コネクションＡ，Ｂ，Ｃの合計出力帯域が１２Ｍｂ／ｓ、最大帯域が８Ｍｂ／ｓ，６Ｍｂ／ｓ，６Ｍｂ／ｓ、監視ウインドウが１２セル時間の例である。
【００８０】
この場合、コネクションＡ，Ｂ，Ｃの最小保証帯域は合計出力帯域である１２Ｍｂ／ｓを３：２：１に配分した６Ｍｂ／ｓ，４Ｍｂ／ｓ，２Ｍｂ／ｓになる。また、最大帯域設定メモリ４１に設定される最大帯域対応セル数は、コネクションＡ，Ｂ，Ｃそれぞれ８，６，６となる。図１２ではコネクションＡのセルバッファにセルが存在しない場合の動作について示している。また、図１２では簡単化のため、各時刻の終了時での値を記載している。
【００８１】
時刻Ｔ１では、セルバッファにセルが存在し、かつ、帯域超過が発生しておらず、かつ、ＷＲＲカウンタ情報が「０」でないコネクションＢとコネクションＣでラウンドロビンを実行し、コネクションＢを選択する。そして、コネクションＢのＷＲＲカウンタ情報を「２」から「１」減じて「１」とするとともに、出力セル数を「１」増やして「１」とする。
【００８２】
時刻Ｔ２では、セルバッファにセルが存在し、かつ、帯域超過が発生しておらず、かつ、ＷＲＲカウンタ情報が「０」でないコネクションＢとコネクションＣでラウンドロビンを実行し、時刻Ｔ１で出力したコネクションＢの次のコネクションＣを選択する。そして、コネクションＣのＷＲＲカウンタ情報を「１」から「１」減じて「０」とするとともに、出力セル数を「１」増やして「１」とする。
【００８３】
時刻Ｔ３では、セルバッファにセルが存在し、かつ、帯域超過が発生しておらず、かつ、ＷＲＲカウンタ情報が「０」でないものがコネクションＢだけであるため、コネクションＢを選択する。そして、コネクションＢのＷＲＲカウンタ情報を「１」から「１」減じて「０」とするとともに、出力セル数を「１」増やして「２」とする。
【００８４】
時刻Ｔ４では、ＷＲＲカウンタ情報が「０」でなく、かつ、最大帯域を超過していないのはコネクションＡだけであるが、コネクションＡのセルバッファにセルが存在していないため、ＷＲＲカウンタ情報を初期値にリセットして、ラウンドロビンを実行する。最大帯域を超過しておらず、かつ、ＷＲＲカウンタ情報が「０」でなく、かつ、バッファにセルが存在しているコネクションであるコネクションＢとコネクションＣでラウンドロビンを実行し、コネクションＣを選択する。そして、コネクションＣのカウンタ値を「１」から「１」減じて「０」とするとともに、出力セル数を「１」増やして「２」とする。
以降、時刻Ｔ９まで同様の動作を実行する。
【００８５】
時刻Ｔ１０では、ＷＲＲカウンタ情報が「０」でなく、かつ、最大帯域を超過していないのはコネクションＡだけであるが、コネクションＡのセルバッファにセルが存在していないため、ＷＲＲカウンタ情報を初期値にリセットして、ラウンドロビンを実行する。
【００８６】
時刻Ｔ９においてコネクションＢを選択出力することにより、Ｂの最大帯域分のセルが出力されているため、時刻Ｔ１０では、コネクションＢのＷＲＲカウンタ情報は「０」ではないが、ラウンドロビン対象から除外される。即ち、最大帯域を超過しておらず、かつ、ＷＲＲカウンタ情報が「０」でなく、かつ、バッファにセルが存在しているコネクションはコネクションＣだけであるため、コネクションＣを選択する。そして、コネクションＣのＷＲＲカウンタ情報を「１」から「１」減じて「０」とするとともに、出力セル数を「１」増やして「４」とする。
【００８７】
時刻Ｔ１１、Ｔ１２とも時刻Ｔ１０と同様の動作を行う。時刻Ｔ１３では帯域超過フラグレジスタ４４がリセットされるため、時刻Ｔ１３以降、コネクションＢはＷＲＲカウンタ情報が「０」でなく、バッファにセルが存在すれば、帯域超過が発生するまで、ラウンドロビンの対象となる。
従って、時刻Ｔ１３、Ｔ１４では、コネクションＢが選択される。以後、同様に、バッファ内のセル有無情報とＷＲＲカウンタ情報と帯域超過フラグにより出力コネクションが選択される。
【００８８】
以上で明らかなように、この実施の形態３では、コネクションＣの最大帯域を６Ｍｂ／ｓとしたため、時刻Ｔ１１、Ｔ１２にコネクションＣのセルが送出可能である。仮に、コネクションＣの最大帯域が４Ｍｂ／ｓの場合は、時刻Ｔ１１、Ｔ１２では出力可能なセルがなくなり、アイドルセル出力となる。
逆に、上記実施の形態１の図６では、コネクションＣの最大帯域を４Ｍｂ／ｓとして説明したが、コネクションＣの最大帯域が６Ｍｂ／ｓであっても出力コネクションは図６のままであり、時刻Ｔ１１、Ｔ１２ではアイドルセルが出力される。
【００８９】
即ち、この実施の形態３では、上記実施の形態１と比べて、無駄な帯域を作らず、帯域を有効に利用できるという効果を奏する。これは、上記実施の形態１ではウエイテッド・ラウンドロビンを実施した結果に対して、出力許可判定を行うため、ＷＲＲ選択コネクションが帯域超過した場合、アイドルセルとなってしまうが、この実施の形態３では、ウエイテッド・ラウンドロビンの前に帯域超過したものはラウンドロビンから除外しているため、バッファが空でなく、かつ、帯域超過をしていないコネクションが必ず選択されるからである。
【００９０】
【発明の効果】
以上のように、この発明によれば、各コネクションの最小帯域を考慮して割り当てられた各コネクションの出力帯域とセル格納手段から出力された各コネクションの所定時間内の出力セル数を考慮したラウンドロビンを実行し、そのセル格納手段に対してセル出力対象のコネクションを指定するコネクション指定手段と、そのコネクション指定手段により指定されたコネクションの所定時間内の出力セル数が最大帯域に対応するセル数を超える場合、セル格納手段に対して当該コネクションのセルの出力を禁止する帯域監視手段とを設けるように構成したので、回路規模の増大を招くことなく、最小帯域が異なるコネクションに対して公平性を考慮したスケジューリングを実施することができる効果がある。
【００９１】
この発明によれば、カウント開始時期が相互に異なる複数の所定時間内においてコネクションの出力セル数を計数し、各計数結果毎に最大帯域に対応するセル数と比較して、セルの出力禁止の有無を決定する帯域監視手段を設けるように構成したので、セル出力のバースト性を抑制することができる効果がある。
【００９２】
この発明によれば、最大帯域に対応するセル数を超える計数結果が１個でもある時間帯では、セル格納手段に対して当該コネクションのセルの出力を禁止する帯域監視手段を設けるように構成したので、セル出力のバースト性を抑制することができる効果がある。
【００９３】
この発明によれば、所定時間内の出力セル数が最大帯域に対応するセル数を超えているコネクションを検出する検出手段と、その検出手段により検出されたコネクションをセルの出力対象から除外して、各コネクションの出力帯域と各コネクションの所定時間内の出力セル数を考慮したラウンドロビンを実行し、セル格納手段に対してセル出力対象のコネクションを指定するコネクション指定手段とを設けるように構成したので、回路規模の増大を招くことなく、最小帯域が異なるコネクションに対して公平性を考慮したスケジューリングを実施することができるとともに、出力帯域を有効利用することができる効果がある。
【００９４】
この発明によれば、メモリにセルが格納されていないコネクションが存在する場合、そのコネクションをセルの出力対象から除外して、セル出力対象のコネクションを指定するコネクション指定手段を設けるように構成したので、メモリにセルが格納されていないコネクションが存在する場合でも、最小帯域が異なるコネクションに対して公平性を考慮したスケジューリングを実施することができる効果がある。
【００９５】
この発明によれば、最小帯域を考慮して割り当てた各コネクションの出力帯域とメモリから出力された各コネクションの所定時間内の出力セル数を考慮したラウンドロビンを実行して、メモリに対してセル出力対象のコネクションを指定すると、そのコネクションの所定時間内の出力セル数が最大帯域に対応するセル数を超える場合、メモリに対して当該コネクションのセルの出力を禁止するように構成したので、セルスケジューリング方法を実行する装置の回路規模の増大を招くことなく、最小帯域が異なるコネクションに対して公平性を考慮したスケジューリングを実施することができる効果がある。
【００９６】
この発明によれば、カウント開始時期が相互に異なる複数の所定時間内においてコネクションの出力セル数を計数し、各計数結果毎に最大帯域に対応するセル数と比較して、セルの出力禁止の有無を決定するように構成したので、セル出力のバースト性を抑えることができる。
【００９７】
この発明によれば、最大帯域に対応するセル数を超える計数結果が１個でもある時間帯では、メモリに対して当該コネクションのセルの出力を禁止するように構成したので、セル出力のバースト性を抑えることができる。
【００９８】
この発明によれば、所定時間内の出力セル数が最大帯域に対応するセル数を超えているコネクションを検出すると、そのコネクションをセルの出力対象から除外して、各コネクションの出力帯域と各コネクションの所定時間内の出力セル数を考慮したラウンドロビンを実行し、メモリに対してセル出力対象のコネクションを指定するように構成したので、セルスケジューリング方法を実行する装置の回路規模の増大を招くことなく、最小帯域が異なるコネクションに対して公平性を考慮したスケジューリングを実施することができるとともに、出力帯域を有効利用することができる効果がある。
【００９９】
この発明によれば、メモリにセルが格納されていないコネクションが存在する場合、そのコネクションをセルの出力対象から除外して、セル出力対象のコネクションを指定するように構成したので、メモリにセルが格納されていないコネクションが存在する場合でも、最小帯域が異なるコネクションに対して公平性を考慮したスケジューリングを実施することができる効果がある。
【図面の簡単な説明】
【図１】この発明の実施の形態１によるセルスケジューリング装置を示す構成図である。
【図２】この発明の実施の形態１によるセルスケジューリング方法を示すフローチャートである。
【図３】出力帯域監視回路の内部構成を示す構成図である。
【図４】出力セル数保持回路の内部構成を示す構成図である。
【図５】出力セル数保持回路の内部構成を示す構成図である。
【図６】図１のセルスケジューリング装置におけるセル読み込み方法の具体的な動作例を示す説明図である。
【図７】この発明の実施の形態２によるセルスケジューリング装置における出力帯域監視回路の内部構成を示す構成図である。
【図８】出力帯域監視回路の動作例を示す説明図である。
【図９】この発明の実施の形態３によるセルスケジューリング装置を示す構成図である。
【図１０】帯域情報保持回路の内部構成を示す構成図である。
【図１１】帯域制限付ＷＲＲ回路の内部構成を示す構成図である。
【図１２】セル読み込み方法の具体的な動作例を示す説明図である。
【図１３】ＷＲＲ方式によるスケジューリング方式を模式的に示す説明図である。
【図１４】ＷＲＲスケジューラ１０４のスケジュール内容を示す説明図である。
【図１５】ＷＲＲ方式によるスケジューリング方式を模式的に示す説明図である。
【図１６】ＷＲＲスケジューラのスケジュール内容を示す説明図である。
【図１７】従来のセルスケジューリング装置を示す構成図である。
【図１８】優先順位制御レジスタとラウンドロビンテーブルの詳細内容を示す説明図である。
【図１９】優先順位制御レジスタの詳細内容を示す説明図である。
【図２０】ラウンドロビンテーブルの詳細内容を示す説明図である。
【符号の説明】
１  セルバッファメモリ（セル格納手段）、２  コネクション識別回路（セル格納手段）、３  セル書き込み制御回路（セル格納手段）、４  セル読み込み制御回路、（セル格納手段）、５  メモリインタフェース（セル格納手段）、６  セル有無情報テーブル、７  キュー管理テーブル、８，５１  ＷＲＲ回路（帯域割当手段、コネクション指定手段）、９  出力帯域監視回路（帯域監視手段）、１０  帯域情報保持回路（検出手段）、１１  帯域制限付ＷＲＲ回路（帯域割当手段、検出手段、コネクション指定手段）、２０，２０ａ，２０ｂ  出力セル数保持回路、２１  最大帯域設定メモリ、２２，２２ａ，２２ｂ  比較器、２３，２７，３１１  〜３１ｎ  ，４３  ＡＮＤゲート、２４  周期カウンタ、２５  １／２周期カウンタ、２６  リセット制御回路、３０  デコーダ、３２１  〜３２ｎ    出力セル数カウンタ、３３  セレクタ、３４  アドレス制御回路、３５ａ，３５ｂ  出力セル数メモリ、３６  データ制御回路、４０  出力セル数保持回路、４１  最大帯域設定メモリ、４２  比較器、４４  帯域超過フラグレジスタ、４５
周期カウンタ、５０１〜５０ｎ  ＮＯＴ付ＡＮＤゲート。
【図１】
0003578953.tif 000002
【図２】
0003578953.tif 000003
【図３】
0003578953.tif 000004
【図４】
0003578953.tif 000005
【図５】
0003578953.tif 000006
【図６】
0003578953.tif 000007
【図７】
0003578953.tif 000008
【図８】
0003578953.tif 000009
【図９】
0003578953.tif 000010
【図１０】
0003578953.tif 000011
【図１１】
0003578953.tif 000012
【図１２】
0003578953.tif 000013
【図１３】
0003578953.tif 000014
【図１４】
0003578953.tif 000015
【図１５】
0003578953.tif 000016
【図１６】
0003578953.tif 000017
【図１７】
0003578953.tif 000018
【図１８】
0003578953.tif 000019
【図１９】
0003578953.tif 000020
【図２０】
0003578953.tif 000021