(57)【特許請求の範囲】
【請求項１】
通信データを連続してバッファに蓄積した後に、その通信データを複数のセルに分割し、そのセルを所定の時間間隔で回線に送信するシェーピング装置であって、
前記連続してバッファに蓄積された通信データを特定する識別符号と、該通信データに割り当てられたセルの送信間隔時間を基準時間で除算した送信間隔値と、前記送信間隔時間の残り時間を表す送信カウンタと、前記通信データの送信すべき残りのセルの数を表す残セル数と、を有する送信制御情報を前記通信データごとに生成して記憶する記憶手段と、
通信データを蓄積したときに、その送信間隔値を演算し、前記送信カウンタに該送信間隔値を設定して、前記送信制御情報を前記記憶手段に記憶する登録手段と、
前記基準時間を経過するごとに報知するタイマ手段と、
前記タイマ手段が報知するごとに、前記記憶手段に記憶されている送信制御情報を順にすべて読み出し、それぞれの送信制御情報について、
前記送信カウンタを減算する送信カウンタ減算手段と、
前記送信カウンタの値が所定の値以下の場合に、前記識別符号で特定される通信データのセルを送信すると判断する送信判断手段と、
前記送信判断手段でセルを送信すると判断した場合に、前記残セル数を減算し、前記送信カウンタに前記送信間隔値を設定する送信セル数減算手段と、
前記残セル数が０以下でないならば、再度前記記憶手段にその送信制御情報を記憶する再登録手段と、
を含む送信処理手段と、
を備えることを特徴とするシェーピング装置。
【請求項２】
前記タイマ手段が報知する間隔の基準時間は、前記送信間隔時間に比較して十分小さく、前記送信処理手段が、前記記憶手段に記憶された送信制御情報すべてを読み出して、該すべての送信制御情報について処理ができる時間である、ことを特徴とする請求項１に記載のシェーピング装置。
【請求項３】
前記記憶手段は、先入れ先出し記憶装置であることを特徴とする請求項１に記載のシェーピング装置。
【請求項４】
前記記憶手段は、記憶されているデータ数を表示するカウンタを備える先入れ先出し記憶装置であることを特徴とする請求項３に記載のシェーピング装置。
【請求項５】
通信データを連続してバッファに蓄積した後に、その通信データを複数のセルに分割し、そのセルを決まった時間間隔で回線に送信するシェーピング方法であって、
通信データを連続して蓄積したときに、該通信データに割り当てられたセルの送信間隔時間を基準時間で除算した送信間隔値を演算する送信間隔演算ステップと、
前記バッファに蓄積された通信データを特定する識別符号と、前記送信間隔値と、該送信間隔値が設定され前記基準時間間隔ごとに減算される送信カウンタと、前記通信データの送信すべき残りのセルの数を表す残セル数と、を有する送信制御情報を、前記通信データごとに生成して記憶部に記憶する登録ステップと、
前記基準時間を経過するごとに、前記記憶部に記憶されている前記送信制御情報を順にすべて読み出し、それぞれの送信制御情報について、
前記送信カウンタを減算する送信カウンタ減算ステップと、
前記送信カウンタが所定の値以下の場合に前記識別符号で特定される通信データのセルを送信すると判断する送信判断ステップと、
前記送信判断ステップでセルを送信すると判断した場合に、前記残セル数を減算し、前記送信カウンタに送信間隔値を設定する送信セル数減算ステップと、
前記残セル数が０以下でないならば、再度前記記憶部にその送信制御情報を記憶する再登録ステップと、
を含む送信処理ステップと、
を備えることを特徴とするシェーピング方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信データを複数のセルに分割し、そのセルを決まった時間間隔で回線に送信する、シェーピング装置およびシェーピング方法に関する。
【背景技術】
【０００２】
ＡＴＭ（Asynchronous Transfer Mode）通信方式は、複数のチャンネルの通信データを、それぞれセル（ＡＴＭセル）と呼ぶ一定長の長さのデータに区切り、それぞれの通信データの特性に合わせた統計的なレートで、一つの伝送路に多重化して伝送する通信方式である。ＡＴＭ通信方式によって、多種多様な特性を持つメディアの通信データをそれぞれの特性に応じて通信しながら、伝送路の帯域を有効に利用できる。
【０００３】
ＡＴＭ通信方式では、通信データごとに割り当てられたレートで、それぞれ等間隔にセル化してＡＴＭスイッチに入力する必要がある。これをシェーピングという。ＡＴＭ通信方式は、特に高速の伝送路に効果がある。伝送路が高速になるほど、それぞれの通信データのシェーピングを的確に、かつ高速に行う必要がある。
【０００４】
例えば特許文献１には、品質クラスの異なるＡＴＭ方式のセルを、各品質クラスの要求を満足させながら多重化する方法において、セルバッファの使用効率を高める技術が記載されている。特許文献１の技術は、セルバッファを１つとして、このセルバッファの記憶領域をポインタ値で管理する。セルバッファには品質クラスの異なるＡＴＭセルを混在して蓄積し、セルバッファからの品質クラス別の読み出しはポインタバッファに品質クラス別に設けるクラスバッファ（ＦＩＦＯ（First In First Out：先入れ先出し記憶））に記憶されたセルバッファのポインタ値を基に行う。
【０００５】
特許文献３は、データ端末の情報転送速度に応じた間隔でＡＴＭセルをＡＴＭスイッチに送出することが記載されている。特許文献３の技術は、情報転送速度に対応させて該速度で転送する端末の番号を登録すると共に、情報転送速度と登録端末数とを乗じて得られる乗算値に応じた読み出し間隔を指示するマークを記憶する。シェーピング制御部は回線速度での１セル送信時間内に、マークがあるか調べ、マークがある場合には対応する登録された端末番号を１つ出力してセル送信ＦＩＦＯに入力する。ＡＴＭセル組み立て部は、セル送信ＦＩＦＯに記憶されている端末番号を回線速度での１セル送信時間間隔で読み出し、端末番号が指示するデータ端末からのデータをＡＴＭセルに組み立ててＡＴＭスイッチに送信する。
【０００６】
特許文献４は、セル転送タイミング情報の訂正不能な誤りを生じたとき短時間で正常に復帰させる方法が記載されている。送信局はユーザ情報セル数の累積値を制御フレーム毎に得て、その累積値をセル間隔情報として受信局に転送する。受信局は受信セル間隔情報を基にユーザ情報セル数の累積値の制御フレーム毎の差分から個々の制御フレーム単位でのユーザ情報セル数を求める。送信局で、セル間隔情報に訂正不可能な符号誤りを検出した時、符号誤りを含む制御フレームとその直後の符号誤りを含まない制御フレームをまとめた複数制御フレーム単位でセルの送出タイミング制御を行う。セル出力タイミング制御回路ではセル間隔情報を基にセルの出力タイミングを作成し、このタイミングに従ってメモリからセルを読み出して出力する。
【０００７】
特許文献５は、ＡＢＲ（Available Bit Rate）サービスを実行するＡＴＭ網に於ける仮想端末装置の技術が記載されている。データセルを送出するセル間隔情報を格納するセル間隔テーブルを備える。逆方向の制御用セルの制御情報によりデータセルを送出するセル間隔情報の書換えを行い、データセルの所定数毎に順方向の制御用セルを挿入する。セル間隔情報に従ってデータセルを読出して送出する毎に、セル間隔情報をカウンタに設定し、カウント動作によるセル間隔の計数を行わせる。
【０００８】
その他、ホストコンピュータ等からのイメージデータをコマンド解析せずにイメージバッファに描画して、印字処理速度の向上を図る技術が、特許文献２に記載されている。印字制御データ及びイメージデータをそれぞれ別々に受信する制御データ用ＦＩＦＯ及びイメージデータ用ＦＩＦＯを備える。制御データ用ＦＩＦＯで受信された印字制御データのみをコマンド解析し、イメージデータ転送コマンドの解析時にはＤＭＡ転送許可の信号を出力する。このコマンド解析部からのＤＭＡ転送許可の信号を入力するとイメージデータ用ＦＩＦＯで受信されたイメージデータをイメージバッファへＤＭＡ転送する。
【特許文献１】特開２０００−７８１３９号公報
【特許文献２】特開平６−２２７０５９号公報
【特許文献３】特開平６−２６８６７１号公報
【特許文献４】特開平７−８７０９５号公報
【特許文献５】特開平９−１２１２１０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
上述の関連する技術のシェーピング方式では、想定されたフレーム数分の送信制御情報を記憶するメモリをもち、送信の有無に関わらず想定されたフレーム数分の送信制御情報を検査する必要がある。また、メモリのどこに送信制御情報が記憶されているかアドレス管理をする必要があった。そのため、エントリ数の増加によってアドレス管理の処理が増大し、シェーピング処理の制約になる不都合があった。
【００１０】
本発明は上述の状況に鑑みてなされたもので、送信制御情報を記憶するメモリのアドレス管理を不要として、エントリ数の増大に容易に対応可能なシェーピング装置を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記の目的を達成するために、本発明の第１の観点に係るシェーピング装置は、
通信データを連続してバッファに蓄積した後に、その通信データを複数のセルに分割し、そのセルを所定の時間間隔で回線に送信するシェーピング装置であって、
前記連続してバッファに蓄積された通信データを特定する識別符号と、該通信データに割り当てられたセルの送信間隔時間を基準時間で除算した送信間隔値と、前記送信間隔時間の残り時間を表す送信カウンタと、前記通信データの送信すべき残りのセルの数を表す残セル数と、を有する送信制御情報を前記通信データごとに生成して記憶する記憶手段と、
通信データを蓄積したときに、その送信間隔値を演算し、前記送信カウンタに該送信間隔値を設定して、前記送信制御情報を前記記憶手段に記憶する登録手段と、
前記基準時間を経過するごとに報知するタイマ手段と、
前記タイマ手段が報知するごとに、前記記憶手段に記憶されている送信制御情報を順にすべて読み出し、それぞれの送信制御情報について、
前記送信カウンタを減算する送信カウンタ減算手段と、
前記送信カウンタの値が所定の値以下の場合に、前記識別符号で特定される通信データのセルを送信すると判断する送信判断手段と、
前記送信判断手段でセルを送信すると判断した場合に、前記残セル数を減算し、前記送信カウンタに前記送信間隔値を設定する送信セル数減算手段と、
前記残セル数が０以下でないならば、再度前記記憶手段にその送信制御情報を記憶する再登録手段と、
を含む送信処理手段と、
を備えることを特徴とする。
【００１２】
好ましくは、前記タイマ手段が報知する間隔の基準時間は、前記送信間隔時間に比較して十分小さく、前記送信処理手段が、前記記憶手段に記憶された送信制御情報すべてを読み出して、該すべての送信制御情報について処理ができる時間である。
【００１３】
好ましくは、前記記憶手段は、先入れ先出し記憶装置であることを特徴とする。
【００１４】
さらに好ましくは、前記記憶手段は、記憶されているデータ数を表示するカウンタを備える先入れ先出し記憶装置である。
【００１５】
本発明の第２の観点に係るシェーピング方法は、
通信データを連続してバッファに蓄積した後に、その通信データを複数のセルに分割し、そのセルを決まった時間間隔で回線に送信するシェーピング方法であって、
通信データを連続して蓄積したときに、該通信データに割り当てられたセルの送信間隔時間を基準時間で除算した送信間隔値を演算する送信間隔演算ステップと、
前記バッファに蓄積された通信データを特定する識別符号と、前記送信間隔値と、該送信間隔値が設定され前記基準時間間隔ごとに減算される送信カウンタと、前記通信データの送信すべき残りのセルの数を表す残セル数と、を有する送信制御情報を、前記通信データごとに生成して記憶部に記憶する登録ステップと、
前記基準時間を経過するごとに、前記記憶部に記憶されている前記送信制御情報を順にすべて読み出し、それぞれの送信制御情報について、
前記送信カウンタを減算する送信カウンタ減算ステップと、
前記送信カウンタが所定の値以下の場合に前記識別符号で特定される通信データのセルを送信すると判断する送信判断ステップと、
前記送信判断ステップでセルを送信すると判断した場合に、前記残セル数を減算し、前記送信カウンタに送信間隔値を設定する送信セル数減算ステップと、
前記残セル数が０以下でないならば、再度前記記憶部にその送信制御情報を記憶する再登録ステップと、
を含む送信処理ステップと、
を備えることを特徴とする。
【発明の効果】
【００１６】
本発明のシェーピング装置によれば、送信すべきデータが存在する場合のみ送信制御情報を記憶することにより、送信制御情報を記憶するメモリのアドレス管理が不要となり、エントリ数の増大にたいして容易に対応可能となる。
【発明を実施するための最良の形態】
【００１７】
以下、この発明の実施の形態について図面を参照しながら詳細に説明する。なお、図中同一または相当部分には同一符号を付し、その説明は繰り返さない。本実施の形態では、通信データを複数のセルに分割し、そのセルを決まった時間間隔で回線に送信するシェーピング装置について説明する。
【００１８】
図１は、本発明の実施の形態に係るシェーピング装置１００の構成の一例を示すブロック図である。
【００１９】
シェーピング装置１００は、バッファ１と、送信制御部２と、送信バッファ（送信ＦＩＦＯ）４から構成される。送信制御部２はスケジュール部３を含む。送信制御部２には、入力線Ｌが接続されている。送信ＦＩＦＯ４には回線Ｎが接続されている。送信制御部２は入力線Ｌから通信データ６を受信する。シェーピング装置１００は、受信した通信データ６をバッファ１に蓄積し、セルに分割して、通信データ６に応じた所定の時間間隔で送信ＦＩＦＯ４に出力する。送信ＦＩＦＯ４は、入力したセルを所定の伝送レートで回線Ｎに送信する。
【００２０】
通信データ６は、タグ６１とデータ６２から構成される。タグ６１は、その通信を識別する情報と、例えば、保証伝送レート、最大伝送レート、誤り制御のレベルなどのサービス情報を指定する情報を含む。データ６２は、１つのセルで伝送されるデータ（ペイロード）ごとに区切られる。セルは１つのペイロードにセルヘッダを付加したデータである。図１では、セルとペイロードを同一視して、セル１等と記載しているが、通信データ６にはセルヘッダは含まれない。
【００２１】
図２は、シェーピング装置１００のスケジュール部３の一例を示すブロック図である。スケジュール部３は、記憶部７と、制御部８と、生成部９と、記憶部入力部１０とを備える。記憶部７は、先入れ先出し記憶装置（ＦＩＦＯ：First In First Out。以下、ＦＩＦＯという）から構成される。記憶部入力部（以下、ＦＩＦＯ入力部ともいう）１０は、ＦＩＦＯ７にデータを入力する順序とタイミングを調整する。ＦＩＦＯ７は、ＦＩＦＯ入力部１０からデータが入力され、制御部８へデータが読み出される。ＦＩＦＯ７から制御部８へ読み出されるデータの順は、ＦＩＦＯ入力部１０から入力された順である。
【００２２】
ＦＩＦＯ７には、送信制御情報７０が記憶される。１つの送信制御情報７０は、１つの通信データ６に対応している。ＦＩＦＯ７には、バッファ１に蓄積された通信データ６の数だけ、通信制御情報７０が記憶される。
【００２３】
送信制御情報７０は、通信データＩＤ７１、送信カウンタ７２、送信間隔値７３および残セル数７４を含む。通信データＩＤ７１は、その送信制御情報７０の対象である通信データ６を識別する符号である。通信データＩＤ７１でバッファ１に蓄積された通信データ６を参照できる。
【００２４】
送信カウンタ７２は、通信データ６の次のセルを送信するまでの残り時間を所定の基準時間単位で表した値である。送信間隔値７３は、対象となる通信データ６のセルを送信する時間間隔を、所定の基準時間単位で表した値である。送信カウンタ７２には、最初に送信間隔値７３が設定される。基準時間が経過するごとに、送信カウンタ７２が減算される。送信カウンタ７２の値が０になったときが、セルを送信するタイミングである。
【００２５】
残セル数は、対象となる通信データ６のうち、まだ送信されていないデータをセル（のペイロード長さ）単位で表した値である。残セル数は、最初に通信データ６のデータ６２の長さをセル単位で表した値が設定される。セルを送信するごとに、残セル数から送信したセルの数が減算される。残セル数が０以下になったとき、通信データ６は送信が完了したことを表す。
【００２６】
生成部９は、通信データ６がバッファ１に蓄積されたとき、その通信データ６に対応する送信制御情報７０を生成して、ＦＩＦＯ入力部１０に入力する。ＦＩＦＯ入力部１０は、生成部９から入力されるデータと制御部８から入力されるデータとを、順序とタイミングを調節して、送信制御情報７０を単位としてＦＩＦＯ７に入力する。
【００２７】
生成部９は、通信データ６を参照するための識別符号を通信データＩＤ７１に設定する。つぎに、通信データ６のタグ６１で指定される初期パラメータ５を参照して、送信制御情報７０を生成する。すなわち、タグ６１と同じタグ５１を有する初期パラメータ５を参照する。初期パラメータ５の送信時間＝Ｔを所定の基準時間で除した値を、送信間隔値７３に設定する。そして、送信カウンタ７２を送信間隔値７３と同じ値に設定する。また、通信データ６のデータ長さをセルのペイロード長さで除した値を残セル数７４に設定する。
【００２８】
初期パラメータ５は、例えば、通信のＱｏＳ（Quality of Service：サービス品質）に応じて複数のセットが予め用意されている。または、通信のコネクションを確立するときに、ネゴシエーションして設定する。初期パラメータ５は通信ごとに異なるが、１つの通信（コネクション）については、通信データ６ごとに同じである。１つの通信について通信データ６ごとに変更する場合もあり得る。
【００２９】
制御部８は、所定の基準時間ごとに、ＦＩＦＯ７に記憶されているすべての送信制御情報７０を読み出し、それぞれの送信制御情報７０について送信セルの有無を判定する。そして、対応する通信データ６からデータを読み出してセルに設定し、送信ＦＩＦＯ４に入力する。また、送信するセルが残っている通信データ６の送信制御情報７０を、再度ＦＩＦＯ入力部１０に入力する。
【００３０】
制御部８は、ベースタイマ部８１、送信カウンタ減算部８２、送信判断部８３、残セル数減算部８４、再登録判断部８５および送信カウンタ設定部８６を備える。ベースタイマ部８１は、前述の所定の基準時間が経過するごとに、クロックパルスを発生するなどして報知する。
【００３１】
送信カウンタ減算部８２は、送信制御情報７０の送信カウンタ７２の値を減算する。送信判断部８３は、送信カウンタ７２が０以下の場合に、対応する通信データ６から送信するセルがあると判定する。残セル数減算部８４は、送信するセルがあると判定された場合に、残セル数７４から送信したセル数を減算する。再登録判断部８５は、残セル数７４が０以下でない場合に、その送信制御情報７０を再度ＦＩＦＯ入力部１０に入力すると判断する。送信カウンタ設定部８６は、送信するセルがあると判定された（すなわち、送信カウンタ７２が０以下だった）場合に、送信カウンタ７２に送信間隔値７３の値を設定する。
【００３２】
制御部８は、１つの送信制御情報７０を処理すると、次の送信制御情報７０を読み込んで、送信カウンタ７２の減算、送信セルの有無判定、ならびに、送信セルがあった場合に、残セル数減算、再登録判定および送信カウンタ設定を行う。ＦＩＦＯ７に記憶されている送信制御情報７０の数だけ処理を繰り返し、処理する送信制御情報７０が尽きたら、次のベースタイマ部８１の報知を待機する。
【００３３】
送信制御情報７０が尽きたことは、例えばつぎのようにして判定できる。ＦＩＦＯ７に記憶されているデータの数を表すカウンタ７Ｃを設ける。ベースタイマ部８１の報知によって、送信制御情報７０の読み込みを開始するときに、制御部８は、カウンタ７Ｃの値を読み込んで内部のレジスタにセットする。制御部８はＦＩＦＯ７からデータを読み出すごとに、読み出したデータ数をカウンタ７Ｃの値をセットしたレジスタから減算する。レジスタの値が０になったとき、読み出しを開始したときに記憶されていたデータを全部読み出したことになる。
【００３４】
カウンタ７Ｃは、ＦＩＦＯ７にデータが入力されると、そのデータ数だけ加算される。また、データが読み出されるとそのデータ数だけ減算される。ＦＩＦＯ７がリセットされてデータが全部消去されたときに、カウンタ７Ｃも０にリセットされる。したがって、カウンタ７ＣはＦＩＦＯ７に記憶されているデータの数を表す。
【００３５】
制御部８が送信制御情報７０を処理したのちに、送信制御情報７０を再登録することがあり、また、制御部８の処理中に新たに送信制御情報７０が生成部９によって生成されることがあるので、ＦＩＦＯ７に記憶されているデータは変動する。しかし、制御部８が一連の送信制御情報７０の読み込みを開始したときに記憶されていた送信制御情報７０は、カウンタ７Ｃの値を読み込んだレジスタを減算していくことによって、ちょうど読み込まれることになる。
【００３６】
図３は、通信データ６の構成を示す概念図である。回線Ｎは、複数の通信を多重化して伝送する。バッファ１には複数の通信データ６が蓄積される。通信データ６は、入力線Ｌが回線交換網の場合は通信フレームである。入力線Ｌが、例えばＬＡＮのように、コネクションレス通信の場合は、通信データ６はパケットである。
【００３７】
それぞれの通信データ６は、例えば図３に示すように、タグ６１とデータ６２で構成される。データ６２は複数のセルに分けて、それぞれセルのペイロードに格納されて伝送される。図３の例では、通信データａは、ＰＬａ１〜ＰＬａｐのデータに分割されて伝送される。通信データｍは、ＰＬｍ１〜ＰＬｍｑのデータに分割されて伝送される。データ６２の長さが異なれば、セルに分割される数は異なる。
【００３８】
図４は、一般的なセルの構造を示す。セルＣは、通信ごとの経路情報を表すセルヘッダＣＨと、通信するデータを格納するペイロードＰの部分に分けられる。通信データ６のデータのうち、例えば図３のＰＬａ１が１つのセルＣのペイロードＰに格納されて伝送される。
【００３９】
図５は、通信データ６ごとのセルが送信されるタイミングの例を示す。図５の上段のセルは通信データａ、下段のセルは通信データｂを示す。セルが送信される時間間隔は、通信データ６ごとに異なる。図５の例では、通信データａは、時間Ｔ１間隔でセル（セルａ１等）が送信され、通信データｂは時間Ｔ２間隔でセル（セルｂ１等）が送信される。
【００４０】
ベースタイマ部８１が報知する所定の基準時間は、通常１つのセルが回線Ｎで伝送される時間より短い。制御部８は、基準時間の間、すなわち１つのセルが回線Ｎで伝送される間に、ＦＩＦＯ７に記憶されている送信制御情報７０をすべて読み込んで処理する。１つの回線Ｎに対して、複数のスケジュール部３を並列に設けて、通信データ６をそれらのスケジュール部３に割り振って同時に送信処理してもよい。その場合、基準時間は１つのセルが回線Ｎで伝送される時間より長くできる。回線Ｎの伝送レートが高く、１つの制御部８で処理が間に合わない場合に有効である。
【００４１】
図３ないし図５で説明したとおり、通信データ６ごとに、分割して送信するセルの数と、セルを送信する時間間隔が異なっている。しかし、上述のスケジュール部３の構成と作用によって、セルの数と送信する時間間隔が異なる複数の通信データ６を、機械的に簡単にセルに分割して送信処理することができる。
【００４２】
次に、図６および図７のフローチャートを参照して本実施の形態に係るシェーピング装置１００の動作について説明する。図６は、送信制御情報７０を生成して登録する動作の一例を示すフローチャートである。
【００４３】
通信データ６がバッファ１に蓄積されると、生成部９の通信ＩＤ生成部９１は、その通信データを参照するための通信データＩＤ７１を生成する（ステップＳ１）。送信間隔設定部９２は、通信データ６のタグ６１と同じタグ５１を有する初期パラメータ５から、送信時間５２を読み込み、所定の基準時間で除して送信間隔値７３を算出する（ステップＳ２）。送信カウンタ設定部９３は、送信間隔の値を送信カウンタ７２に設定する（ステップＳ３）。
【００４４】
残セル数設定部９４は、初期パラメータ５から通信データ６の通信データ長５３とセル長５４を読み込み、通信データ長５３をセル長５４で除してセル数を算出し、残セル数７４に設定する（ステップＳ４）。通信データＩＤ７１、送信カウンタ７２、送信間隔値７３および残セル数７４を設定した送信制御情報７０をＦＩＦＯ入力部１０に入力する（ステップＳ５）。
【００４５】
上述のとおり、ＦＩＦＯ入力部１０は、送信制御情報７０を単位としてＦＩＦＯ７に入力する。このようにして、ＦＩＦＯ７に新しく送信制御情報７０が登録される。１つの通信データ６が処理されて送信される間に、他の通信データ６が蓄積されると、ＦＩＦＯ７には、複数の送信制御情報７０が記憶されることになる。
【００４６】
図７は、スケジュール部３が行う送信処理の動作の一例を示すフローチャートである。ベースタイマ部８１が、所定の基準時間の経過ごとに報知すると、スケジュール部３の送信処理が起動される。
【００４７】
制御部８は、内部変数ｉ（レジスタ）にカウンタ７Ｃの値を初期設定して（ステップＳ１１）、ＦＩＦＯ７から送信制御情報７０を入力する（ステップＳ１２）。読み込んだ送信制御情報７０の送信カウンタ７２を減算し（ステップＳ１３）、送信カウンタ７２と０を比較する（ステップＳ１４）。送信カウンタ７２が０以下の場合（ステップＳ１４；ＹＥＳ）、通信データＩＤ７１で指定される通信データ６からセルの送信を設定し、残セル数７４を減算する（ステップＳ１５）。
【００４８】
残セル数７４が０以下でなければ（ステップＳ１６；ＹＥＳ）、送信カウンタ７２に送信間隔値７３をセットする（ステップＳ１７）。そして、送信制御情報７０をＦＩＦＯ入力部１０に入力する（ステップＳ１８）。ＦＩＦＯ入力部１０は、その送信制御情報７０を、生成部９で新たに生成された送信制御情報７０と調整して、ＦＩＦＯ７に入力する。
【００４９】
残セル数７４が０以下であれば（ステップ１６；ＮＯ）、その送信制御情報７０を廃棄する（ステップＳ１９）。そして、次の送信制御情報７０の処理に移る（ステップＳ２０）。全てのデータを送信処理し終えた通信データ６の送信制御情報７０は、その時刻情報とともに、トレースのためのジャーナル情報としてリングバッファなどに格納してもよい。
【００５０】
ステップＳ１４に戻って、送信カウンタ７２が０以下でなければ（ステップＳ１４；ＮＯ）、送信処理などを行わす、送信カウンタ７２以外のデータを変更することなく、その送信制御情報７０をＦＩＦＯ入力部１０に入力する（ステップＳ１８）。前述のとおり、ＦＩＦＯ入力部１０が調整して、ＦＩＦＯ７へ入力する。
【００５１】
送信制御情報７０を再登録したか（ステップＳ１８）、または、廃棄した（ステップＳ１９）のち、内部変数ｉをデクリメントして（ステップＳ２０）、内部変数ｉが０かどうか調べる（ステップＳ２１）。ステップＳ２０の記号“−＝”は、左辺の変数の値から右辺の値を減算して、改めて左辺の変数に代入することを表す。ここでは、カウンタ７Ｃの値は、送信制御情報７０を単位とするデータ数を表すことを仮定している。
【００５２】
内部変数ｉが０以下でなければ（読み込むべき送信制御情報７０があれば）（ステップＳ２１；ＹＥＳ）、ステップＳ１２に戻って、送信制御情報入力から繰り返す。内部変数が０以下であれば（読み込むべき送信制御情報７０がなければ）（ステップＳ２１；ＮＯ）、１回の基準時間内の送信処理を終了する。
【００５３】
１つの送信制御情報７０についてみれば、生成部９によってＦＩＦＯ７に登録されたのち、ベースタイマ部８１の報知ごとに、送信カウンタ７２が減算され、送信カウンタ７２が０になったときに、セルが送信されて、送信カウンタ７２が送信間隔値７３に再設定される。セルの送信を繰り返して、残セル数が０になったときに、ちょうど送信データ６はすべてのデータがセルに分割して送信されている。
【００５４】
複数の通信データ６について、それぞれ１回の基準時間以内に送信カウンタ７２が減算されて、セルの送信が判断される。複数の通信データ６の蓄積のタイミングとセルの送信間隔が異なっていても、それらの送信制御情報７０に合わせて正しく送信処理が行われる。
【００５５】
以上説明したとおり、本発明のシェーピング装置１００によれば、送信すべきデータ（通信データ６）が存在する場合のみ送信制御情報７０を記憶部（ＦＩＦＯ）７に記憶し、１回の基準時間ですべての送信制御情報７０の送信カウンタ７２を減算しながら、送信処理することにより、送信制御情報７０を蓄積するメモリのアドレス管理が不要となり、エントリ数の増大にたいして単純なＦＩＦＯ７で容易に対応可能となる。
【００５６】
送信間隔の精度はベースタイマ部８１の基準時間によって決まる。そこで、送信間隔について複数の精度が必要な場合には、ＦＩＦＯ７とベースタイマ部８１を複数備えて、異なる基準時間でそれぞれのＦＩＦＯ７の送信制御情報７０を処理することによって、容易に対応できる。
【００５７】
なお、実施の形態では、ＦＩＦＯの場合について説明したが、記憶部７はＦＩＦＯに限らず、例えば、２系統の後入れ先出し（ＬＩＦＯ：Last In First Out）記憶装置（スタックともいう）を用いることができる。その場合、一方のＬＩＦＯは書込、他方のＬＩＦＯは読み出しとして、書込と読み出しを交互に切り替える。すなわち、制御部８が一方のＬＩＦＯから送信制御情報７０を読み出す場合に、記憶部入力部１０は他方のＬＩＦＯに書き込む。次の基準時間のタイミングでは、ＬＩＦＯを切り替えて、前回書き込んでいたＬＩＦＯから読み出し、前回読み出していたＬＩＦＯに書き込む。ＬＩＦＯの場合は、カウンタ７Ｃがなくても、記憶されたデータが尽きたことがわかる。例えば、ＮＵＬデータを読み出したときに、記憶されたデータがないと判断できる。
【００５８】
また、ＦＩＦＯ７のカウンタ７Ｃに代えて、ＦＩＦＯ入力部１０が送信制御情報７０の数を記憶するカウンタを備えてもよい。その場合、制御部８がベースタイマ部８１の起動で読み込みを開始するときに、送信制御情報７０の数を読み込んで、ＦＩＦＯ入力部１０のカウンタを０にリセットする。制御部８は、読み込んだ数だけ送信制御情報７０を処理すればよい。次のベースタイマ部８１による起動のときには、次の期間で処理すべき送信制御情報７０の数がＦＩＦＯ入力部１０によってカウンタに設定されている。
【００５９】
以上、好ましい実施の形態をあげて本発明を説明したが、本発明は必ずしも、上記実施の形態に限定されるものではなく、その技術的思想の範囲内において様々に変形して実施することができる。例えば、送信制御情報７０に優先度を表す情報や第２の送信カウンタなどを追加して、送信ＦＩＦＯの混雑度に応じて、通信データ６ごとに最大伝送レートと保証最低伝送レートの間でセルが送信されるように制御することも可能である。例えば、送信カウンタの値が所定の閾値以下になった場合に優先度を加算していって、送信ＦＩＦＯの混雑度−優先度が０以下の場合にセルを送信するというようなことが考えられる。
【００６０】
その他、前記のハードウエア構成やフローチャートは一例であり、任意に変更および修正が可能である。
【図面の簡単な説明】
【００６１】
【図１】本発明の実施の形態に係るシェーピング装置の構成の一例を示すブロック図である。
【図２】図１のシェーピング装置の送信制御部の構成の一例を示すブロック図である。
【図３】通信データの構成の例を示す図である。
【図４】セルの構成を説明する図である。
【図５】セルを送信する時間間隔を説明する図である。
【図６】実施の形態に係る送信制御情報の登録の動作の一例を示すフローチャートである。
【図７】実施の形態に係る送信処理の動作の一例を示すフローチャートである。
【符号の説明】
【００６２】
１  バッファ
２  送信制御部
３  スケジュール部
４  送信バッファ（送信ＦＩＦＯ）
５  初期パラメータ
６  通信データ
７  記憶部（ＦＩＦＯ）
８  制御部
９  生成部
１０  記憶部入力部（ＦＩＦＯ入力部）
５１  タグ
５２  送信時間
５３  通信データ長
５４  セル長
６１  タグ
６２  データ
７０  送信制御情報
７１  通信データＩＤ
７２  送信カウンタ
７３  送信間隔値
７４  残セル数
７Ｃ  カウンタ
８１  ベースタイマ部
８２  送信カウンタ減算部
８３  送信判断部
８４  残セル数減算部
８５  再登録判断部
８６  送信カウンタ設定部
９１  通信データＩＤ生成部
９２  送信間隔設定部
９３  送信カウンタ設定部
９４  残セル数設定部
【図１】
0004716194.tif 000002
【図２】
0004716194.tif 000003
【図３】
0004716194.tif 000004
【図４】
0004716194.tif 000005
【図５】
0004716194.tif 000006
【図６】
0004716194.tif 000007
【図７】
0004716194.tif 000008