(57)【特許請求の範囲】
【請求項１】
到着セルを複数のキューのうちの対応するキューに記憶し、そのキューの格納セルに対する読出時刻を設定して、そのキューにセル出力指示するスケジューリング装置であって、
上記到着セルが記憶されるキューのキュー番号をアドレスに対応付けて、データ記憶領域には、そのキューに対する読出時刻とそのキューがもつ格納セルの有無を表す有効セル情報とを記憶する連想記憶手段と、
設定された読出時刻に読み出されなかったキューの読出時刻と、その読出時刻と同じ時刻に読み出されるべき他のキューの有無を表す読出時刻比較状態とをキュー番号に関係なく記憶する読出時刻記憶手段と、
上記読出時刻記憶手段に読み出されなかった読出時刻が記憶されている場合に、その読出時刻を仮想時刻、上記読出時刻比較状態を仮想時刻比較状態とし、上記読出時刻記憶手段に読み出されなかった読出時刻が記憶されていない場合に、セル入出力周期を計時する実時刻を仮想時刻とする仮想時刻選択手段と、
各キュー毎に予め設定された周期的な間隔を持つ読出周期と更新された各キューの次読出時刻の繰越値とを記憶する読出周期記憶手段と、
上記連想記憶手段に、実時刻を与えてセル送出指示され得るアドレスを読み出し、そのアドレスと実時刻の上記有効セル情報とに基づいて求められる、実時刻一致キュー番号、実時刻データ一致情報と実時刻多重一致キュー情報及び上記仮想時刻を与えてセル送出指示され得るアドレスを読み出し、そのアドレスと仮想時刻の上記有効セル情報とに基づいて求められる、仮想時刻一致キュー番号、仮想時刻データ一致情報と仮想時刻多重一致キュー情報に応じて、または、上記読出周期記憶手段の上記読出周期及び上記繰越値に応じて、上記読出時刻記憶手段の読出時刻及び上記読出時刻比較状態とを更新する読出時刻制御手段と、
上記到着セルを対応するキューに記憶させるときに、そのキューに格納セルが存在せず、実時刻が上記連想記憶手段の読出時刻より大きい場合に、上記連想記憶手段の読出時刻を実時刻に更新し、または、上記セル出力制御手段が上記仮想時刻でセル出力指示した後に、上記仮想時刻での有効セル情報と上記読出周期記憶手段の上記読出周期及び上記繰越値とに応じて、上記連想記憶手段の読出時刻と上記有効セル情報とを更新する連想記憶制御手段と、
上記仮想時刻一致キュー番号に基づいて、上記連想記憶手段における上記仮想時刻でセル送出指示され得るアドレスが示すキュー番号と上記仮想時刻におけるアドレスが示すキュー番号とが一致する場合に、その対応するキューのセル出力指示をするセル出力指示手段と、
上記セル出力指示手段のセル出力指示に従って、そのキューに対してセル出力指示の実行をするセル出力制御手段と
を備えることを特徴とするスケジューリング装置。
【請求項２】
上記読出時刻制御手段は、実時刻と仮想時刻とが異なる場合で、上記仮想時刻で多重一致し、上記仮想時刻比較状態でも多重一致するときには、上記読出時刻記憶手段の上記読出時刻を上記仮想時刻に、上記読出時刻比較状態を多重一致するものと更新することを特徴とする請求項１に記載のスケジューリング装置。
【請求項３】
上記読出時刻制御手段は、上記仮想時刻で多重一致せず、実時刻と仮想時刻とが異なる場合で、実時刻でアドレスが一致するときには、上記読出時刻記憶手段の読出時刻を実時刻に更新することを特徴とする請求項１に記載のスケジューリング装置。
【請求項４】
実時刻において多重一致する場合には、上記読出時刻比較状態を多重一致するものと更新し、
実時刻において多重一致しないとする場合には、上記読出時刻比較状態を多重一致しないものと更新する
ことを特徴とする請求項３に記載のスケジューリング装置。
【請求項５】
上記読出時刻制御手段は、実時刻が、上記読出周期記憶手段の読出周期と繰越値とから求めた次読出時刻よりも大きい場合で、実時刻と仮想時刻とが異なるときには、上記読出時刻記憶手段の読出時刻を次読出時刻に更新することを特徴とする請求項１に記載のスケジューリング装置。
【請求項６】
請求項１〜５のいずれかに記載のスケジューリング装置を備えたセル通信装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、スケジューリング装置及びセル通信装置に関する。例えば、ＡＴＭ通信において、サービスクラスあるいはコネクション個別にセル出力制御を行なうスケジューリング装置とそれを具備するＡＴＭノード装置に適用できる。
【０００２】
【従来の技術】
例えばＡＴＭ通信システムは、音声、画像、データ、その他多様なサービス情報を統合して処理を行なうシステムであるため、それぞれ異なるサービス間での使用帯域の干渉が問題になる。
【０００３】
ＩＴＵ−ＴＳ（国際電気通信連合の下部機関：International  Telecommunication  Union  Telecommunication  Standardzation  Secter）が勧告するＩＴＵ−Ｔ勧告では、サービスのトラヒック特性に応じて、ＤＢＲ（Deterministic  Bit  Rate）、ＳＢＲ（Statistical  Bit  Rate）、ＡＢＲ（Available  Bit  Rate）、ＵＢＲ（Unspecified  Bit  Rate）、ＧＦＲ（Guaranteed  Frame  Rate）というＡＴＣ（ATM  Transfer  Capability）が標準化されている。また、セル損失率、セル遅延ゆらぎ等のサービス品質に応じてクラス１、クラス２、クラス３、Ｕクラスというサービスクラス（ＱｏＳ）が標準化されている。したがって、ＡＴＭ通信ネットワークでは、各ＡＴＣ／ＱｏＳ間で使用帯域の干渉が発生している。
【０００４】
このような、各ＡＴＣ／ＱｏＳ間での使用帯域の干渉を回避するために、ＡＴＭノード装置は、ＡＴＣ／ＱｏＳ間あるいはコネクション間でのスケジューリング機能装置を設け、このスケジューリングに従ってセル読み出しを行なっている。
【０００５】
従来のスケジューリング装置は、通常各ＡＴＣ／ＱｏＳ毎あるいはコネクション毎にセルバッファを備えられ、規定された間隔でセル読み出しを行なうことで実現している。このセルバッファおよびスケジューリング機能として様々な方式が開発されている。例えば、特開平１１−３５５３０４ではスケジューリング手段として、各ＱｏＳ毎にタイミングテーブルをもち、このタイミングテーブルに従ってセルバッファからセル読み出しを行い、読み出しが発生した時点で該当するタイミングテーブルを更新するという方式が開示されている。
【０００６】
図２は、従来のスケジューリング手段によるタイミングテーブルを示したものである。図２に示すように、タイミングテーブルは各ＱｏＳ毎にＴ１からＴｘまでの２値情報記憶領域をもち、各ＱｏＳ毎にセルが読み出されるべき時刻に１が設定される。
【０００７】
例えば、時刻がＴ２になったときタイミングテーブルに１が設定されているＱｏＳＮのセルバッファからセル読み出しが行われ、その時点でＱｏＳＮの時刻Ｔ２の２値情報をクリア（０に）し、Ｔ２から読み出し間隔分の時間だけ経過した時刻に１を設定する。例えば、このときのＱｏＳＮの読み出し間隔を５とすると、Ｔ７に１が設定される。
【０００８】
同様に時刻Ｔ３では、ＱｏＳ２のセルバッファからセル読み出しが行われ、そのＱｏＳ２の時刻Ｔ３の２値情報をクリア（０に）し、Ｔ３からＱｏＳ２の読み出し間隔分の時間だけ経過した時刻に１を設定する。
【０００９】
Ｔ４以降もこのような動作が順次繰り返される。同一時刻に複数ＱｏＳで１が設定されている場合の競合制御についてはここでは省略する。
【００１０】
このように、従来のスケジューリング方式は、時系列に対応したタイミングテーブルに基づいて、ＡＴＣ／ＱｏＳ等毎のセルバッファからセルが読み出されている。
【００１１】
【発明が解決しようとする課題】
しかしながら、上述した特開平１１−３５５３０４に示されるスケジューリング方式は、時系列に対応したタイミングテーブルに（ＱｏＳ数Ｎ）×（時刻Ｔｘ）分の記憶領域が必要であり、またこのＴｘは、収容されるサービスのセル読み出し間隔に依存しているので、そのうちの最大読み出し間隔（最低レート）分が必要である。
【００１２】
その結果として、スケジューリング機能に必要となる記憶領域容量が大きくなってしまうという問題がある。また、これに伴い、スケジューリング装置を装備したＡＴＭノード装置全体も大きくなってしまうという問題がある。
【００１３】
例えば、ＩＴＵ−Ｔ  Ｉ．３７１ではセルレート（Ａ：単位［セル／秒］）を浮動小数点表示で規定しており、それで設定可能な最低レートである１［セル／秒］を提供しようとすると、仮に通信路の物理速度を６２２．０８［Ｍｂｉｔ／ｓ］とした場合、読み出し間隔は１．５×１０＾６［セル］程度になりたとえＮが１としても１．５Ｍビットもの記憶領域容量が必要である。
【００１４】
そのため、上記の事情に対処すべくなされたもので、スケジューリング機能に必要となる記憶領域容量を大幅に削減できるスケジューリング装置が求められている。
【００１５】
【課題を解決するための手段】
【００１６】
かかる課題を解決するために、第１の本発明のスケジューリング装置は、到着セルを複数のキューのうちの対応するキューに記憶し、そのキューの格納セルに対する読出時刻を設定して、そのキューにセル出力指示するスケジューリング装置であって、到着セルが記憶されるキューのキュー番号をアドレスに対応付けて、データ記憶領域には、そのキューに対する読出時刻とそのキューがもつ格納セルの有無を表す有効セル情報とを記憶する連想記憶手段と、設定された読出時刻に読み出されなかったキューの読出時刻と、その読出時刻と同じ時刻に読み出されるべき他のキューの有無を表す読出時刻比較状態とをキュー番号に関係なく記憶する読出時刻記憶手段と、読出時刻記憶手段に読み出されなかった読出時刻が記憶されている場合に、その読出時刻を仮想時刻、読出時刻比較状態を仮想時刻比較状態とし、読出時刻記憶手段に読み出されなかった読出時刻が記憶されていない場合に、セル入出力周期を計時する実時刻を仮想時刻とする仮想時刻選択手段と、各キュー毎に予め設定された周期的な間隔を持つ読出周期と更新された各キューの次読出時刻の繰越値とを記憶する読出周期記憶手段と、連想記憶手段に、実時刻を与えてセル送出指示され得るアドレスを読み出し、そのアドレスと実時刻の有効セル情報とに基づいて求められる、実時刻一致キュー番号、実時刻データ一致情報と実時刻多重一致キュー情報及び仮想時刻を与えてセル送出指示され得るアドレスを読み出し、そのアドレスと仮想時刻の上記有効セル情報とに基づいて求められる、仮想時刻一致キュー番号、仮想時刻データ一致情報と仮想時刻多重一致キュー情報に応じて、または、読出周期記憶手段の読出周期及び上記繰越値に応じて、読出時刻記憶手段の読出時刻及び読出時刻比較状態とを更新する読出時刻制御手段と、到着セルを対応するキューに記憶させるときに、そのキューに他の格納セルが存在せず、実時刻が連想記憶手段の読出時刻より大きい場合に、連想記憶手段の読出時刻を実時刻に更新し、または、セル出力制御手段が仮想時刻でセル出力指示した後に、仮想時刻での有効セル情報と読出周期記憶手段の上記読出周期及び繰越値とに応じて、連想記憶手段の読出時刻と有効セル情報とを更新する連想記憶制御手段と、仮想時刻一致キュー番号に基づいて、連想記憶手段における仮想時刻でセル送出指示され得るアドレスが示すキュー番号と仮想時刻におけるアドレスが示すキュー番号とが一致する場合に、その対応するキューのセル出力指示をするセル出力指示手段と、セル出力指示手段のセル出力指示に従って、そのキューに対してセル出力指示の実行をするセル出力制御手段とを備えることを特徴とする。
【００１７】
さらに第２の本発明のセル通信装置は、上述した第１の発明を備えることを特徴とする。
【００１８】
【発明の実施の形態】
（Ａ）第１の実施形態
以下、本発明のスケジューリング装置及びセル通信装置の第１の実施形態の適用について図を参照して詳説する。
【００１９】
本実施形態は、ＡＴＭ通信網に介在するセル通信装置（例えばＡＴＭノード装置）のスケジューリング装置が、連想記憶手段を備えて、受信したＡＴＭセルが記憶されるキュー毎にセル送出指示するスケジューリング機能を備えた装置に適用したものである。
【００２０】
まず、本実施形態に係るセル通信装置（例えばＡＴＭノード装置）のスケジューリング装置が備える連想記憶装置についての一般的説明と本実施形態における特徴とを説明する。
【００２１】
（Ａ−１−１）連想記憶装置
一般的に、ＡＴＭノード装置は半導体記憶装置を装備しており、通常の半導体記憶装置は、アドレスバスに示されるアドレスの記憶領域に、データバスに示されるデータを書き込んだり（書き込み処理）、アドレスバスに示されるアドレスの記憶領域のデータを、データバスに読み出したり（読み出し処理）できるものである。
【００２２】
一方、連想記憶装置は、通常の半導体記憶装置同様、データ書き込み処理及びデータ読み出し処理ができることはもちろん、これら処理の他に、データバスに示されるデータと記憶領域のデータとを比較し、一致したデータが記憶されているアドレス（一致アドレス）をアドレスバスに出力する連想記憶比較処理機能を備えている。
【００２３】
連想記憶比較処理の際、連想記憶装置は、記憶領域にデータバスの示すデータと一致するデータが存在した場合は、一致を示すための信号（一致フラグ）を出力する。
【００２４】
また、記憶領域にデータバスの示すデータと一致するデータが複数存在した場合は、多重一致を示すための信号（多重一致フラグ）を出力する。多重一致が発生した場合のアドレスバスヘの出力は、連想記憶装置の構成により異なるが、例えば、最も値の小さい一致アドレスが出力するというものがある。
【００２５】
本実施形態の連想記憶装置は、従来の半導体記憶装置がアドレスに時刻を、データに読み出しを示す２値情報を割り付けていたものを、アドレスにキュー番号を、データの記憶領域に読出時刻を割り付けたものである。これにより、現在時刻で連想記憶装置のデータ記憶領域と連想記憶比較処理行うことにより出力される一致アドレス（キュー番号）に対応するキューからセルを読み出すことで、スケジューリング機能を実現することが可能になる。
【００２６】
このとき必要となる記憶領域容量は（キュー数Ｎ）×（ｌｏｇ２（最大読み出し間隔））となるため、大幅な記憶容量の削減ができる。
【００２７】
以下、このような連想記憶装置を装備した本実施形態のスケジューリング装置及びＡＴＭノード装置（セル通信装置）について図を参照して詳説する。
【００２８】
（Ａ−１−２）第１の実施形態の構成
図１は、本実施形態のＡＴＭノード装置の内部構成を示した図である。
【００２９】
図１に示すように、ＡＴＭノード装置は、セル入力処理部１、セル記憶部２、読出周期記憶部３、読出時刻記憶部４、連想記憶部５、時刻管理部６、セル出力制御部７を備えている。
【００３０】
セル入力処理部１は、到着したセルのヘッダ情報（例えばＶＰＩ（Virtual  Pass  Identifier）、ＶＣＩ（Virtual  Channel  Identifier）等）に基づいて、セル記憶部２のキューのうち、どのキューに記憶すべきか（キュー番号（Ｑｉｎ））を調べ、対応するキュー番号（Ｑｉｎ）のキューに到着したセルを記憶するようにセル記憶部２に与えるものである。また、セル入力処理部１は、連想記憶部５からキュー番号をアドレスとした領域に記憶されている記憶データを読み出し、適切な処理をした後、再度連想記憶部５にデータを書き込むものである。
【００３１】
セル記憶部２は、セル入力処理部１から入力したセルを対応するキューに記憶し、セル出力制御部７からのキューに対する出力指示されたセルを出力するものである。セル記憶部２は、複数のＡＴＣ／ＱｏＳあるいはコネクションに個別に対応するファーストイン・ファーストアウト方式のセルバッファメモリで構成されている。
【００３２】
読出周期記憶部３は、セル記憶部２の各キューの読出周期と読出周期の繰越値とを記憶するものである。通常、スケジューリング機能は１セル時間を単位として処理が行われるため、セルを読み出す間隔は整数（１セル時間の整数倍）になる。従って、読出周期は実数であるため、繰越値は、読出周期と実際にセルを読み出す間隔との差分の小数部分である。読出周期記憶部３は、セル入力処理部１および時刻管理部６によって、読出周期記憶部３に記憶されている読出周期の読み出しや繰越値の書き込み（更新）／読み出しを行うものである。
【００３３】
読出時刻記憶部４は、ファーストイン・ファーストアウト方式のバッファメモリで構成され、セル記憶部２の各キューの読出時刻を記憶するものである。読出時刻記憶部４は、時刻管理部６により、読出時刻記憶部４の読出時刻の書き込み／読み出しが行われるものである。
【００３４】
連想記憶部５は、上述した連想記憶装置で構成され、各キューの読出時刻、有効フラグを記憶するものである。有効フラグは有効なセルの有無を示すフラグであり、各キューにセルがあるとき「１」を、セルがないとき「０」を示す２値情報である。連想記憶部５は、「Ｑｉｎ１」の読出時刻、有効フラグはアドレス１に、「Ｑｉｎ２」の読出時刻、有効フラグはアドレス２に、「ＱｉｎＮ」の読出時刻、有効フラグはアドレスＮにそれぞれ記憶するものである。すなわち、各キュー毎に読出時刻と有効フラグが割り当てられている。セル入力処理部１および時刻管理部６により書き込み／読み出し処理及び連想記憶比較処理が実行される。
【００３５】
時刻管理部６は、到着セルのスケジューリングを統括管理する機能を備えているものである。時刻管理部６は仮想時刻処理、連想記憶比較処理、読出時刻処理、セル出力処理、実時刻処理の統括管理を行うものである。これらの各処理に関しては、後述する。
【００３６】
セル出力制御部７は、時刻管理部６からの指示により、指示されたキューのセルをセル記憶部２の該当キューより読み出し出力する。
【００３７】
（Ａ−２）第１の実施形態の動作
以下、第１の実施形態のＡＴＭノード装置のスケジューリングの動作について説明する。
【００３８】
まず、本実施形態に係るスケジューリング動作を説明するにあたり、本実施形態に係るスケジューリング装置が行なう全体動作及びその動作の各処理について以下に説明する。
【００３９】
（Ａ−２−１）スケジューリング装置の全体動作
図３は、本実施形態に係るスケジューリング動作の全体処理の流れを示したフローチャートである。図３で示した各処理の詳細は、図４〜図８のフローチャートに示す。
【００４０】
図３に示すように、本実施形態のスケジューリング装置にセルが到着すると、セル入力処理部１、連想記憶部５及び時刻管理部６によって、セル入力処理が行なわれ、到着セルをセル記憶部２の対応するキューに記憶させる（セル入力処理）（ステップ３０２）。
【００４１】
セル入出力周期を計時する実時刻と読出時刻部４に記憶されている読出時刻とから仮想時刻が選択され（仮想時刻処理）（ステップ３０３）、連想記憶部５に実時刻及び仮想時刻を与えて、これらの時刻における各アドレスを読み出し比較する（連想比較処理）（ステップ３０４）。
【００４２】
連想比較結果に基づいて、読出時刻記憶部４に記憶されている読出時刻を更新する（読出時刻処理）（ステップ３０５）。
【００４３】
また、連想比較結果に基づいて、対応するキュー番号のキューからセルを出力し、連想記憶部５に記憶されている読出時刻を更新する（セル出力処理）（ステップ３０６）。
【００４４】
セル出力処理の後に、実時刻のカウントを「１」だけインクリメントさせ、セル入力処理に戻り繰り返しスケジューリング処理を行なう。
【００４５】
以下、これらスケジューリング処理について説明する。
【００４６】
（Ａ−２−２）セル入力処理
図４は、セル入力処理のフローチャートを示したものである。
【００４７】
セル入力処理は、主にセル入力処理部１と時刻管理部６と連想記憶部５とにより行なわれ、到着セルを対応するセル記憶部２のキューに記憶させる処理である。
【００４８】
本実施形態に係るスケジューリング装置のセル入力処理部１にセルが到着すると（ステップ４０１）、その到着セルのヘッダ情報（例えばＶＰＩ、ＶＣＩ等）に基づいて、キュー番号が調べられる（ステップ４０２）。
【００４９】
調べられたキュー番号に基づいて、連想記憶部５から、そのキュー番号の読出時刻とそのキュー番号が示すキューの格納セルの有無を表す有効フラグを読み出す（ステップ４０３）。
【００５０】
読み出した有効フラグが「１」であるときには、そのキュー番号が示すキューに到着セルを保存する（ステップ４０４及びステップ４０８）。
【００５１】
読み出した有効フラグが「０」であるときには、そのキュー番号の読出時刻と実時刻との大小比較が行なわれ（ステップ４０５）、実時刻の方がそのキュー番号の読出時刻よりも大きいときには、そのキュー番号の読出時刻を実時刻に更新し、有効フラグを「１」に書き換える（ステップ４０７）。また、実時刻が、そのキュー番号の読出時刻以下であるときには、有効フラグを「１」に書き換える（ステップ４０８）。
【００５２】
このように、連想記憶部５の読出時刻及び有効フラグを書き換えて、到着セルをセル記憶部２のキューに保存する（ステップ４０８）。
【００５３】
（Ａ−２−３）仮想時刻処理
図５は、仮想時刻処理のフローチャートを示したものである。
【００５４】
仮想時刻処理は、読出時刻記憶部４の記憶状態に応じて、仮想時刻を、実時刻にするか又は読出時刻記憶部４に記憶された読出時刻にするかの選択を行う処理である。
【００５５】
読出時刻記憶部４に読出時刻が記憶されている場合には、仮想時刻は読出時刻記憶部４の読出時刻を設定し、前比較状態として読出時刻記憶部４の比較状態を書き換える（ステップ５０２）。
【００５６】
また、読出時刻記憶部４に読出時刻が記憶されていない場合には、仮想時刻は実時刻を設定し、前比較状態として「０」を書き換える（ステップ５０３）。
【００５７】
（Ａ−２−４）連想記憶比較処理
図６は、連想記憶比較処理のフローチャートを示したものである。
【００５８】
連想記憶比較処理は、有効フラグを「１」であり読出時刻を実時刻として連想記憶部５と比較処理を行う処理である。また有効フラグを「１」であり読出時刻を仮想時刻として連想記憶部５と比較処理を行う処理である。
【００５９】
つまり、キューにセルが存在している状態で、連想記憶部５に記憶されている読出時刻と実時刻とを比較し、一致する読出時刻が記憶されているアドレスを実時刻一致キュー番号とするとともに、実時刻一致フラグを「１」とする。また、多重一致がある場合には、実時刻多重一致フラグを「１」とする（ステップ６０１）。
【００６０】
また、連想記憶部５に記憶されている読出時刻と仮想時刻と比較し、一致する読出時刻が記憶されているアドレスを、仮想時刻一致キュー番号とするとともに、仮想時刻一致フラグを「１」とする。また、多重一致がある場合には仮想時刻多重一致フラグを「１」とする。（ステップ６０２）。
【００６１】
また、実時刻及び仮想時刻において、多重一致についても比較する処理である。
【００６２】
（Ａ−２−５）読出時刻処理
図７は、読出時刻処理のフローチャートを示したものである。
【００６３】
読出時刻処理は、読出時刻記憶部４に記憶する読出時刻（次回キュー番号を読出しする読出時刻）を設定する処理であり、Ｓ１、Ｓ２、Ｓ３の工程から構成されている。
【００６４】
Ｓ１は、仮想時刻において連想記憶部５に多重一致があった場合の読出時刻の設定処理である。
【００６５】
連想記憶比較処理により、仮想時刻多重一致があり、前比較状態も多重一致であり、実時刻と仮想時刻とが異なるとされた場合には、読出時刻記憶部４の読出時刻を仮想時刻に、比較状態を仮想時刻多重一致フラグに更新する（ステップ７０２）。
【００６６】
Ｓ２は、読み出されたキューに対する次読出時刻を設定する処理である。
【００６７】
次読出時刻は、読出周期記憶部３に記憶されているキューの読出周期と繰越値に基づいて（ステップ７０３）、仮想時刻と読出周期と繰越値との和の整数部から設定される（ステップ７０４）。また、繰越値は、仮想時刻と読出周期と繰越値との和の小数部から設定される（ステップ７０４）
実時刻とその次読出時刻との大小比較をして、実時刻が次読出時刻以上であり、実時刻と仮想時刻とが異なる場合、この設定された次読出時刻を読出時刻記憶部４の読出時刻に更新し、比較状態を「０」とする（ステップ７０６）。
【００６８】
Ｓ３は、実時刻において連想記憶部５に多重一致があった場合の読出時刻の設定処理である。
【００６９】
連想比較記憶処理により、実時刻多重一致があるとされた場合には、読出時刻記憶部４の読出時刻を実時刻に、比較状態を多重一致ありと更新する（ステップ７１０）。
【００７０】
また、連想比較記憶処理により、実時刻多重一致がなく、実時刻一致があり、実時刻と仮想時刻とが異なるとされた場合には、読出時刻記憶部４の読出時刻を実時刻に、比較状態を「０」に更新する（ステップ７０９）。
【００７１】
（Ａ−２−６）セル出力処理
セル出力処理は、仮想時刻一致フラグが「１」であるときに、そのキュー番号のキューからセルを出力し、連想記憶部５におけるそのキュー番号の読出時刻及び有効フラグの更新処理である。実際のセル出力はセル出力制御部７により行われる。
【００７２】
連想記憶比較処理により、仮想一致フラグ「１」であるときには、そのキュー番号のキューからセルを出力する（ステップ８０２）。
【００７３】
読出時刻処理のＳ２で設定した繰越値を、読出周期記憶部３に書き換えられる（ステップ８０３）。
【００７４】
その後、連想記憶部のそのキュー番号の読出時刻を次読出時刻に書き換えられ（ステップ８０６及びステップ８０５）、仮想時刻の一致したキューにセルがあるときには、連想記憶部のそのキュー番号の有効フラグを「１」に書き換え（ステップ８０６）、仮想時刻の一致したキューにセルがないときには、連想記憶部のそのキュー番号の有効フラグを「０」に書き換える（ステップ８０５）。
【００７５】
このような処理が行なわれるスケジューリング装置のスケジューリング動作について説明する。
【００７６】
（Ａ−２−７）スケジューリング装置の動作例
図９〜図１１は、到着したセル列例と本実施形態に係るスケジューリング装置の記憶内容との変化を表した関係図である。
【００７７】
図９〜図１１の動作条件は、セル記憶部２のキューの設定数Ｎは５個であり、各キューの読出周期は、「Ｑｉｎ１」の読出周期＝２．２［セル期間］、「Ｑｉｎ２」の読出周期＝６．２［セル期間］、「Ｑｉｎ３」の読出周期＝７．４［セル期間］、「Ｑｉｎ４」の読出周期＝８．６［セル期間］、「Ｑｉｎ５」の読出周期＝９．８［セル期間］である。また、ｑ１、ｑ２、…、ｑ５は到着セル若しくは出力セルであり、それぞれセル記憶部２の各キューｑ１、ｑ２、…、ｑ５に記憶されるべきセルである。
【００７８】
また、読出周期記憶部３の初期状態は、各キュー毎に予め設定された上記読出周期と繰越値に「０.０」が設定されている。連想記憶部５の初期設定値は、有効フラグに「０」が設定されている。実時刻は１セル時間毎にカウントアップされる時刻である。
【００７９】
以下、図９〜図１１と図４〜図８を参照しながら、１セル時間毎に順を追って本実施形態のスケジューリング動作の説明する。
【００８０】
図９において、実時刻＝０、１ではセル到着がないため各記憶部の変更は発生しない。
【００８１】
実時刻＝２では、到着セルｑ５がセル入力処理部１に到着し（ステップ４０１）、到着セルｑ５が保存されるＱｉｎ（キュー番号）＝「５」であることが調べられる（ステップ４０２）。連想記憶部５から「Ｑｉｎ５」の読出時刻「０」と有効フラグ「０」とが読み出され（ステップ４０３）、その有効フラグと読出時刻に基づいて（ステップ４０４及びステップ４０５）連想記憶部５の「Ｑｉｎ５」に対応する読出時刻は実時刻「２」に、有効フラグは「１」に更新される（ステップ４０７）。到着セルｑ５がセル記憶部２のＱｉｎ５に記憶される（ステップ４０８）。
【００８２】
読出時刻記憶部４において、記憶されている読出時刻が設定されていないので、仮想時刻は実時刻「２」が設定され、前比較状態は「０（多重一致なし）」が設定される（ステップ５０１〜５０３）。
【００８３】
実時刻と仮想時刻とで連想記憶比較処理が行なわれる。つまり、実時刻「２」における到着セルｑ５の実時刻一致キュー番号が「５」、実時刻「２」において、連想記憶部５に記憶されている読出時刻「２」と一致するので、実時刻一致フラグが「１」、複数の読み出されるデータがないので、実時刻多重一致フラグが「０」になる（ステップ６０１）。仮想時刻「２」においても、実時刻と同じなので、仮想時刻一致キュー番号が「５」、仮想時刻一致フラグ「１」、仮想時刻多重一致フラグ「０」となる（ステップ６０２）。
【００８４】
この連想記憶比較処理により仮想時刻多重一致フラグが「０」、実時刻及び仮想時刻が同じであるので（ステップ７０１）、読出周期記憶部３に記憶されている「Ｑｉｎ５」の読出周期に基づいて、次読出時刻と繰越値とが設定される（ステップ７０４）。
【００８５】
つまり、次読出時刻は、読出周期記憶部３から「Ｑｉｎ５」の読出周期「９.８」と繰越値「０.０」とを読出し、（仮想時刻＋読出周期＋繰越値）の整数部が設定される。また繰越値は、（仮想時刻＋読出周期＋繰越値）の小数部が設定される。従って、この場合の次読出時刻は「１１」（＝（２＋９.８＋０.０）の整数部）に設定され、繰越値は「０．８」（＝（２＋９．８＋０．０）の小数部）に設定される。
【００８６】
また、実時刻多重一致フラグ「０」、実時刻一致フラグ「１」かつ実時刻＝仮想時刻であることから、読出時刻記憶部４には、読出時刻が書き込まれない（ステップ７０７〜７０９）。
【００８７】
次に、仮想時刻一致フラグが「１」であるので（ステップ８０１）、セル記憶部２の「Ｑｉｎ５」のキューよりセルｑ５が出力される（ステップ８０２）。
【００８８】
キューからのセル出力後に、上述した新しく設定された繰越値「０．８」は読出周期記憶部３に書きこまれて繰越値が更新される（ステップ８０３）。また、仮想時刻一致キュー番号のキューにセルがないので（ステップ８０４）、連想記憶部５に上述した次読出時刻「１１」が書き込まれて更新され、さらに仮想時刻一致キュー番号の有効フラグが「０」に更新される（ステップ８０５）。
【００８９】
実時刻＝３、４、５においても、それぞれ到着セルｑ４、ｑ３、ｑ２が到着し、それぞれのキューに対して実時刻＝２の処理と同様の処理が行われる。
【００９０】
実時刻＝６では、セル入力処理部１に到着セルｑ２が到着し（ステップ４０１）、Ｑｉｎ＝「２」であることが調べられる（ステップ４０２）。連想記憶部５から「Ｑｉｎ２」の読出時刻「１１」と有効フラグ「０」とが読み出される（ステップ４０３）。有効フラグが「０」であることから（ステップ４０４）、実時刻「６」と連想記憶部５の「Ｑｉｎ２」の読出時刻「１１」との大小比較され（ステップ４０５）、「Ｑｉｎ２」の読出時刻「１１」の方が大きいので、「Ｑｉｎ２」の読出時刻は書き込まれずに、有効フラグ「０」のみが「１」に更新されて（ステップ４０６）、セル記憶部２のＱｉｎに到着セルｑ２が記憶される（ステップ４０８）。
【００９１】
ここでは、実時刻よりも連想記憶部５の読出時刻の方が大きいので、連想記憶部５の読出時刻が更新されない点が実時刻０〜５の場合と異なる。
【００９２】
読出時刻記憶部４に記憶されている読出時刻がないので、仮想時刻は実時刻「６」が設定され、前比較状態は「０」が設定される（ステップ５０１及び５０３）。上述と同様にして、実時刻「６」及び仮想時刻「６」における実時刻一致フラグ及び実時刻多重一致フラグ、仮想時刻一致フラグ及び仮想時刻多重一致フラグは、それぞれ「０」を示す（ステップ６０１及び６０２）。
【００９３】
したがって、ステップ７０１〜７１０の読出時刻処理は行なわれず、読出時刻記憶部４に読出時刻は書き込まれない。
【００９４】
また、実時刻一致フラグ及び仮想時刻一致フラグが共に「０」であることから、セル記憶部２からのセル出力されず、セル記憶部２に記憶されたままである（ステップ８０１〜８０６）。
【００９５】
実時刻＝７、８、９についても、それぞれ到着セルｑ３、ｑ４、ｑ５が到着し、それぞれのキューに対して実時刻＝６と同様の処理が行われる。
【００９６】
実時刻＝１０では、セル入力処理部１に到着セルｑ２が到着し（ステップ４０１）、Ｑｉｎが「２」であることが調べられる（ステップ４０２）。連想記憶部５から、「Ｑｉｎ２」の読出時刻「１１」と有効フラグ「１」とが読み出される（ステップ４０３）。連想記憶部５の「Ｑｉｎ２」の有効フラグが「１」を示していることから、セル記憶部２のｑ２にセルが記憶される（ステップ４０８）。
【００９７】
ここでは、連想記憶部５の「Ｑｉｎ２」の有効フラグが「１」を示しているときには、この段階で連想記憶部５のキュー番号の読出時刻が更新されずに、到着セルを対応するキューに記憶させる点が実時刻０〜９と異なる。
【００９８】
実時刻「１０」において、読出時刻記憶部４に記憶されている読出時刻がないことから、仮想時刻は実時刻「１０」が設定され、前比較状態は「０」が設定される（ステップ５０１〜５０３）。
【００９９】
連想記憶比較処理では、実時刻６〜９までと同様に、実時刻及び仮想時刻における、実時刻一致フラグ及び仮想時刻一致フラグ、実時刻多重一致フラグ及び仮想時刻一致フラグが、それぞれ「０」である。従って、セル記憶部２からのセル出力はされないので、この後の処理の説明を省略する。
【０１００】
実時刻＝１１では、セル入力処理部１に到着セルｑ３が到着がする。連想記憶部５の「Ｑｉｎ３」の有効フラグが「１」であるので、セル記憶部２のｑ３にセルが記憶される（ステップ４０１〜４０８）。
【０１０１】
読出時刻記憶部４に記憶されている読出時刻が設定されていないので（ステップ５０１）、仮想時刻は実時刻「１１」が設定され、前比較状態は「０」が設定される（ステップ５０３）。
【０１０２】
実時刻「１１」において、実時刻一致キュー番号が「２」、実時刻一致フラグが「１」、実時刻多重一致フラグが「１」になり、仮想時刻一致キュー番号が「２」、仮想時刻一致フラグが「１」、仮想時刻多重一致フラグが「１」になる（ステップ６０１及び６０２）。
【０１０３】
本実施形態では、同時刻におけるセル出力指示の順番は、キュー番号の小さいものから順に出力指示している。従って、実時刻６〜９及び実時刻１１の到着セルが保存されているキュー番号のうち、キュー番号「２」が一番小さいので、実時刻一致キュー番号「２」を選択した。しかし、例えば、読出周期が短いものから順に設定する等その設定が限定されるものではない。
【０１０４】
実時刻と仮想時刻が同じであるので（ステップ７０１）、上述したように、読出周期記憶部３の読出周期に基づいて、次読出時刻「１１」が設定され（ステップ７０３及び７０４）、実時刻とその次読出時刻との大小関係を比較された後に（ステップ７０５）、実時刻多重一致フラグ「１」であることから、読出時刻記憶部４の読出時刻は実時刻「１１」が設定され、比較状態は「１」が記憶される（ステップ７１０）。
【０１０５】
このようにして、セル記憶部２の「Ｑｉｎ２」のキューからセルｑ２が出力される（ステップ８０２）。
【０１０６】
また、セル出力後に、読出周期記憶部３の繰越値及び連想記憶部５の仮想時刻一致キュー番号の読出時刻が更新される（ステップ８０３〜８０６）。
【０１０７】
実時刻＝１２では、セル入力処理部１に到着セルｑ１が到着し、連想記憶部５の「Ｑｉｎ１」の読出時刻が「０」、有効フラグが「０」であるので、読出周期が実時刻「１２」、有効フラグが「１」に更新され（ステップ４０７）、セル記憶部２のＱｉｎ１に到着セルｑ１が記憶される（ステップ４０８）。
【０１０８】
読出時刻記憶部４に読出時刻「１１」が記憶されているので、仮想時刻は読出時刻「１１」が、また比較状態「１」が設定される（ステップ５０１及び５０２）。
【０１０９】
実時刻「１２」において、先ほど到着したセルｑ１の読出時刻と一致するため、実時刻一致キュー番号が「１」、実時刻一致フラグが「１」、実時刻多重一致フラクが「０」と設定され（ステップ６０１）、仮想時刻「１１」における仮想時刻一致キュー番号が「３」、仮想時刻一致フラグが「１」、仮想時刻多重一致フラグが「１」になる（ステップ６０２）。
【０１１０】
このとき、仮想時刻多重一致フラグ「１」かつ前比較状態「１」かつ実時刻と仮想時刻とが異なることから、読出時刻記憶部４の読出時刻は仮想時間「１１」が、比較状態は仮想時刻多重一致フラグ「１」が記憶される（ステップ７０２）。
【０１１１】
さらに、上述したように、読出周期記憶部３の読出周期に基づいて次読出時刻が求められ（ステップ７０３〜７０４）、実時刻「１２」と次読出時刻との大小比較された後に（ステップ７０５）、実時刻多重一致フラグが「０」であることから、読出時刻記憶部４の読出時刻は実時刻「１２」が、比較状態は仮想時刻多重一致フラグ「０」が記憶される（ステップ７０９）。
【０１１２】
セル記憶部２の「Ｑｉｎ３」に記憶されているセルｑ３が出力される（ステップ８０１）。また、読出時刻周期記憶部３のＱｉｎ３の繰越値は「０．８」に、連想記憶部５のＱｉｎ３の読出時刻は「１８」に更新される（ステップ８０３〜８０６）。
【０１１３】
実時刻＝１３では、セル入力処理部１に到着セルｑ１が到着し、セル記憶部２のＱｉｎ１にセルが記憶される（ステップ４０１〜４０８）。
【０１１４】
仮想時刻は、読出時刻記憶部４の読出時刻「１１」が設定され、前比較状態は「１」が設定される（ステップ５０１及び５０２）。
【０１１５】
実時刻「１３」における実時刻一致フラグは「０」になり（ステップ６０１）、仮想時刻「１１」における仮想時刻一致キュー番号は「４」、仮想時刻一致フラグは「１」、仮想時刻多重一致フラグは「１」になる（ステップ６０２）。
【０１１６】
ここで、仮想時刻「１１」での仮想時刻一致キュー番号「４」が選択されたのは、実時刻１２において、読出時刻記憶部３がファーストイン・ファーストアウト方式のバッファメモリであるためである。
【０１１７】
仮想時刻多重一致フラグ「１」、前比較処理「１」、実時刻≠仮想時刻であることから（ステップ６０１）、読出時刻に仮想時刻「１１」、比較状態に仮想時刻多重一致フラグ「１」が記憶される（ステップ７０２）。
【０１１８】
セル記憶部２のＱｉｎ４のセルｑ４が出力され、連想記憶部５のｑ４の読出時刻が「２０」、有効フラグが「０」に更新される（ステップ８０５）。また読出時刻周期記憶部３のｑ４の繰越値が「０．２」に更新される（ステップ８０３）。
【０１１９】
実時刻＝１４〜２１に関しても、実時刻＝１３と同様の動作が行なわれる。
【０１２０】
実時刻＝２２では、セル入力処理部１に到着するセルがないので、セル入力処理（ステップ４０１〜４０８）は行なわれず仮想時刻の設定が行なわれる。
【０１２１】
読出時刻記憶部４に読出時刻が記憶されているので、仮想時刻は読出時刻「２０」が設定され、前比較状態は比較状態「１」に設定される（ステップ５０１及び５０２）。
【０１２２】
実時刻一致フラグは「０」になり（ステップ６０１）、仮想時刻一致キュー番号が「４」、仮想時刻一致フラグが「１」、仮想時刻多重一致フラグが「０」になる（ステップ６０２）。
【０１２３】
次に、セル記憶部２からセルｑ４が出力され（ステップ８０２）、連想記憶部５のＱｉｎ４の読出時刻が「２８」、有効フラグが「０」に更新される（ステップ８０５）。また、読出時刻周期記憶部３のＱｉｎ４の繰越値が「０．８」に更新される（ステップ８０３）。
【０１２４】
実時刻＝２３〜２５に関しても、実時刻＝２２と同様に動作する。
【０１２５】
実時刻＝２６でも、セルが入力しないので、セル入力処理は行なわれずに仮想時刻処理が行なわれる。
【０１２６】
読出時刻記憶部３において、仮想時刻は読出時刻「２５」が設定され、前比較状態は比較状態「０」が設定される（ステップ５０１及び５０２）。実時刻一致フラグは「０」になり（ステップ６０１）、仮想時刻一致キュー番号が「１」、仮想時刻一致フラグが「１」、仮想時刻多重一致フラグが「０」になる（ステップ６０２）。
【０１２７】
次に、セル記憶部２からセルｑ１が出力され（ステップ８０２）、連想記憶部のＱｉｎ１の読出時刻が「２７」、有効フラグが「０」に更新される（ステップ８０５）。また、読出時刻周期記憶部３のＱｉｎ１の繰越値が「０．４」に更新される（ステップ８０３）。
【０１２８】
また、図１２に示すように本実施形態のスケジューリング装置の実際のインプリメントの際には、実時刻をカウントするカウンタは有限である。従って、実時刻をサイクリックに利用するため、実時刻が最大値から０に戻るときには、時刻の比較処理に不具合が生じる場合がある。例えば、実時刻をカウントするカウンタが、０〜９９をカウントするものである場合、ステップ６０５において、実時刻と次読出時刻との時刻の大小比較をする際に、次読出時刻が「９８」を示し、実時刻が読出時刻よりも先の「２」を示している場合、本来ならば実時刻が次読出時刻より大きくなくてはいけないが、単なる数値の大小を比較することにより比較判定が逆転してしまう不具合が生じる場合がある。
【０１２９】
このような場合には、実時刻の周期を図１０に示すようにして解決できる。
【０１３０】
例えば、実時刻用カウンタの周期を、本来必要となる周期より３倍周期のカウンタを使用し、各キュー毎に定期的（例えば、１周期（０〜９９）に１回）に、実時刻と読出時刻の比較を行い実時刻が読出時刻を過ぎていれば、読出時刻を実時刻に更新するといった処理（読出時刻定期更新処理）を行うことである。
【０１３１】
図９に示すように、例えば、本来必要となる周期を「１００」とし、その３倍周期実時刻カウンタを用い、１周期（０〜９９のカウント）に１回この例では時刻「２」、「１０２」、「２０２」で読出時刻定期更新処理を行う。
【０１３２】
時刻「２」では、読出時刻を過ぎていないため読出時刻の更新は行われない。時刻「１０２」では、読出時刻が１０２に更新される。時刻「２０２」では、読出時刻が２０２に更新される。
【０１３３】
さらに次の時刻「２」では、「２００〜２９９」の周期より次の「０〜９９」の周期の値の方が大きいと判断して読出時刻が「２」に更新されるようにする。以上のような動作により、本実施形態のスケジューリング装置のスケジューリング機能が実現できる。
【０１３４】
（Ａ−３）第１の実施形態の効果
以上、第１の実施形態のスケジューリング装置は、連想記憶部を備え、この連想記憶部のアドレスに到着セルが記憶されているキュー番号を、データ記憶領域に読出時刻を割り当てることにより、現在時刻で連想記憶部のデータ記憶領域と比較処理を行なうことができ一致アドレスに対応するキューからセルを読み出すことができるので、必要となる記憶領域の容量を削減することができる。
【０１３５】
例えば、従来のスケジューリング処理に必要となる記憶容量は（キュー数Ｎ）×（ｌｏｇ２（最大読み出し間隔））となるため、通信路の物理速度を６２２．０８［Ｍｂｉｔ／ｓ］とした場合、キュー数Ｎが１としても１．４Ｍビットである。
【０１３６】
しかし、本実施形態のスケジューリング処理の場合、たとえＮを１０００としても（１０００）×（ｌｏｇ２（１．５×１０＾６）＋１）＝２２ｋビットの記憶容量で実現できるという効果が得られる。
【０１３７】
また、本実施形態に係るスケジューリング装置は、別途本機能特有の読出時刻記憶部が必要になるが、この容量もＮを１０００としても最大１０００×（ｌｏｇ２（１．５×１０＾６）＋１）＝２２ｋビットあればよく、あわせても４４ｋビット程度の容量であるため、従来より大幅な記憶容量の削減ができる。
【０１３８】
（Ｂ）その他の実施形態
上述した第１の実施形態では、セル通信装置としてＡＴＭ網に介在するＡＴＭノード装置について説明した。しかし、本発明のスケジューリング装置は、伝送情報を有するパケットにも適用することができるので、ＡＴＭノード装置に限られるものではなく、固定長パケット通信を構成する固定長パケット通信装置についても適用できる。
【０１３９】
上述した第１の実施形態で説明したスケジューリング処理の読出時刻処理動作において、Ｓ１、Ｓ２、Ｓ３の順に処理しているが、この読出時刻処理動作の順番はこれに限らない。つまり、例えば、Ｓ２のセルの読み出しが行われたキューに対する次読出時刻を設定する処理を本実施形態の読出時刻処理のＳ３の後でしても良い。すなわち、Ｓ１、Ｓ３、Ｓ２の順で処理を進めて良い。
【０１４０】
【発明の効果】
第１の本発明のスケジューリング装置によれば、連想記憶手段を備え、到着セルが格納されているキュー毎に送出指示をすることにより、スケジューリングに係る記憶領域容量を大幅に削減することができる。
【０１４１】
第２の本発明のセル通信装置によれば、記憶領域容量が削減されたスケジューリング装置を、セル通信に用いることにより、ネットワーク資源を有効に使用できる。
【図面の簡単な説明】
【図１】本発明に係るＡＴＭノード装置の内部構成を示す図である。
【図２】従来のスケジューリング処理のタイムテーブルを示す図である。
【図３】本発明に係るスケジューリング処理のフローチャートを示す図である。
【図４】本発明に係るセル入力処理のフローチャートを示す図である。
【図５】本発明に係る仮想時刻処理のフローチャートを示す図である。
【図６】本発明に係る連想記憶比較処理のフローチャートを示す図である。
【図７】本発明に係る読出時刻処理のフローチャートを示す図である。
【図８】本発明に係るセル出力処理のフローチャートを示す図である。
【図９】本発明に係るスケジューリング処理の動作例を示す図である。
【図１０】本発明に係るスケジューリング処理の動作例を示す図である。
【図１１】本発明に係るスケジューリング処理の動作例を示す図である。
【図１２】本発明に係る読出時刻定期更新処理の例を示す図である。
【符号の説明】
１…セル入力処理部、２…セル記憶部、３…読出周期記憶部、
４…読出時刻記憶部、５…連想記憶部、６…時刻管理部、７…セル出力制御部。
【図１】
0004258996.tif 000002
【図２】
0004258996.tif 000003
【図３】
0004258996.tif 000004
【図４】
0004258996.tif 000005
【図５】
0004258996.tif 000006
【図６】
0004258996.tif 000007
【図７】
0004258996.tif 000008
【図８】
0004258996.tif 000009
【図９】
0004258996.tif 000010
【図１０】
0004258996.tif 000011
【図１１】
0004258996.tif 000012
【図１２】
0004258996.tif 000013