(57)【要約】【課題】可変長フレームの優先度に対応するフレームバッファに空きがない場合、その可変長フレームを他の優先度のフレームバッファに格納するようにしても、フレームバッファにおける可変長フレームの蓄積量をフレーム単位で算出することができるようにする。【解決手段】積算値メモリ８に格納されている積算値、フレームＩＤメモリ９に格納されているフレームＩＤ及び積算値ポインタメモリ１０に格納されている対応関係を参照して、全てのキューにおける可変長フレームの閾値以内での最大蓄積量及び最大フレーム数を算出して出力する。【選択図】図１
2010166502.tif 000002
【特許請求の範囲】
【請求項１】
可変長フレームを受信するフレーム受信手段と、優先度別のフレームバッファと、上記フレーム受信手段により受信された可変長フレームの優先度に対応するフレームバッファに空きがあれば、上記可変長フレームを当該フレームバッファに格納し、上記可変長フレームの優先度に対応するフレームバッファに空きがなければ、上記可変長フレームを他の優先度のフレームバッファに格納する可変長フレーム格納手段と、上記可変長フレーム格納手段により可変長フレームがフレームバッファに格納される毎に、各フレームバッファにおける可変長フレームの蓄積量を積算して、上記蓄積量の積算値を記憶する積算値記憶手段と、上記可変長フレーム格納手段により可変長フレームがフレームバッファに格納されることで、上記フレームバッファにおける可変長フレームの蓄積量が指定値を超えた場合、上記可変長フレームのフレームＩＤを記憶するフレームＩＤ記憶手段と、優先度別のフレームバッファ毎に、当該フレームバッファに格納された可変長フレームのフレームＩＤと上記積算値記憶手段により記憶された積算値の対応関係を記憶する対応関係記憶手段と、上記積算値記憶手段により記憶されている積算値、上記フレームＩＤ記憶手段により記憶されているフレームＩＤ及び上記対応関係記憶手段により記憶されている対応関係を参照して、各フレームバッファにおける可変長フレームの閾値以内での最大蓄積量及び最大フレーム数を算出して出力する最大算出手段とを備えた可変長フレームバッファ装置。
【請求項２】
最大算出手段は、各フレームバッファにおける可変長フレームの蓄積量が閾値未満であれば、上記蓄積量を閾値以内での最大蓄積量として出力するとともに、各フレームバッファに格納されている可変長フレームのフレーム数を閾値以内での最大フレーム数として出力することを特徴とする請求項１記載の可変長フレームバッファ装置。
【請求項３】
最大算出手段は、各フレームバッファにおける可変長フレームの蓄積量が閾値以上であれば、対応関係記憶手段により記憶されている対応関係を参照して、フレームＩＤ記憶手段により記憶されているフレームＩＤに対応する積算値記憶手段により記憶されている積算値を特定し、上記積算値から閾値以内での最大蓄積量を算出し、上記フレームＩＤから閾値以内での最大フレーム数を算出することを特徴とする請求項２記載の可変長フレームバッファ装置。
【請求項４】
積算値記憶手段は、可変長フレームの蓄積量を積算する際、各可変長フレームのオーバヘッドを含めて積算することを特徴とする請求項１から請求項３のうちのいずれか１項記載の可変長フレームバッファ装置。
【請求項５】
可変長フレーム格納手段は、可変長フレームを他の優先度のフレームバッファに格納する場合、以降、上記可変長フレームと同一優先度の可変長フレームを上記フレームバッファに格納して、本来、上記フレームバッファに対応する優先度の可変長フレームを廃棄することを特徴とする請求項１から請求項４のうちのいずれか１項記載の可変長フレームバッファ装置。
【請求項６】
最大算出手段により算出された最大蓄積量となる場合の可変長フレームの出力順序を保持し、閾値として帯域割当量が指定されると、上記出力順序で可変長フレームを優先的に出力するフレーム出力手段を設けたことを特徴とする請求項１から請求項５のうちのいずれか１項記載の可変長フレームバッファ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、可変長フレームをフレームバッファに蓄積する可変長フレームバッファ装置に関するものである。
【背景技術】
【０００２】
可変長フレームバッファ装置は、ＦＩＦＯ（Ｆｉｒｓｔ  ｉｎ  Ｆｉｒｓｔ  ｏｕｔ）方式のフレームバッファを優先度別に複数備えており、可変長フレームを受信すると、その可変長フレームの優先度に対応するフレームバッファに当該可変長フレームを格納するものである。
可変長フレームバッファ装置は、フレームバッファにおける可変長フレームの蓄積量を算出する機能を有している。
【０００３】
例えば、ＧＥ−ＰＯＮシステムでは、加入者側終端装置（以下、「ＯＮＵ」と称する）がフレーム蓄積量を局側装置（以下、「ＯＬＴ」と称する）に報告し、ＯＬＴがＯＮＵから報告されたフレーム蓄積量に応じてＯＮＵに帯域を割り当て、ＯＮＵがＯＬＴにより割り当てられた帯域で上り伝送を行うようにしている。
このとき、例えば、ＥＴＨＥＲＮＥＴ（登録商標）などの可変長フレームを扱う場合、ＯＮＵがフレームバッファにおける可変長フレームの蓄積量をフレーム単位で報告するようにすれば、より効率的な帯域割り当てが可能となる。
この蓄積量を計算している可変長フレームバッファ装置が、例えば、以下の特許文献１に開示されている。
【０００４】
この可変長フレームバッファ装置では、フレームバッファにおける可変長フレームの蓄積量をフレーム単位で求めるに際して、そのフレームバッファのサイズを初期設定し、積算値用メモリとフレーム位置検索用メモリをフレームバッファのサイズに応じて分割している。
この可変長フレームバッファ装置では、分割したメモリの中で、可変長フレームの順番が保たれていなければならないため、可変長フレームの優先度に対応するフレームバッファ以外のフレームバッファには、当該可変長フレームを格納することができない。
このため、可変長フレームの優先度に対応するフレームバッファに空きがない場合、その可変長フレームが廃棄される。
【０００５】
換言すると、可変長フレームの優先度に対応するフレームバッファに空きがない場合、可変長フレームを他の優先度のフレームバッファに格納すれば、その可変長フレームを廃棄せずに済むが、フレームバッファが固定長であって、順番に可変長フレームが格納されることを前提としているため、可変長フレームを他の優先度のフレームバッファに格納すると、可変長フレーム単位の蓄積量を求めることができなくなる。
したがって、可変長フレームを他の優先度のフレームバッファに格納することができない。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００７−３２４８８６号公報（段落番号［０００８］、図１）
【発明の概要】
【発明が解決しようとする課題】
【０００７】
従来の可変長フレームバッファ装置は以上のように構成されているので、可変長フレームの優先度に対応するフレームバッファに空きがない場合、その可変長フレームを他の優先度のフレームバッファに格納しようとすると、フレームバッファにおける可変長フレームの蓄積量をフレーム単位で算出することができなくなる。そのため、可変長フレームの優先度に対応するフレームバッファに空きがない場合、その可変長フレームを廃棄せざるを得ないなどの課題があった。
【０００８】
この発明は上記のような課題を解決するためになされたもので、可変長フレームの優先度に対応するフレームバッファに空きがない場合、その可変長フレームを他の優先度のフレームバッファに格納するようにしても、フレームバッファにおける可変長フレームの蓄積量をフレーム単位で算出することができる可変長フレームバッファ装置を得ることを目的とする。
【課題を解決するための手段】
【０００９】
この発明に係る可変長フレームバッファ装置は、フレーム受信手段により受信された可変長フレームの優先度に対応するフレームバッファに空きがあれば、その可変長フレームを当該フレームバッファに格納し、その可変長フレームの優先度に対応するフレームバッファに空きがなければ、その可変長フレームを他の優先度のフレームバッファに格納する可変長フレーム格納手段と、その可変長フレーム格納手段により可変長フレームがフレームバッファに格納される毎に、各フレームバッファにおける可変長フレームの蓄積量を積算して、その蓄積量の積算値を記憶する積算値記憶手段と、その可変長フレーム格納手段により可変長フレームがフレームバッファに格納されることで、そのフレームバッファにおける可変長フレームの蓄積量が指定値を超えた場合、その可変長フレームのフレームＩＤを記憶するフレームＩＤ記憶手段と、優先度別のフレームバッファ毎に、当該フレームバッファに格納された可変長フレームのフレームＩＤと積算値記憶手段により記憶された積算値の対応関係を記憶する対応関係記憶手段とを設け、最大算出手段が積算値記憶手段により記憶されている積算値、フレームＩＤ記憶手段により記憶されているフレームＩＤ及び対応関係記憶手段により記憶されている対応関係を参照して、各フレームバッファにおける可変長フレームの閾値以内での最大蓄積量及び最大フレーム数を算出して出力するようにしたものである。
【発明の効果】
【００１０】
この発明によれば、フレーム受信手段により受信された可変長フレームの優先度に対応するフレームバッファに空きがあれば、その可変長フレームを当該フレームバッファに格納し、その可変長フレームの優先度に対応するフレームバッファに空きがなければ、その可変長フレームを他の優先度のフレームバッファに格納する可変長フレーム格納手段と、その可変長フレーム格納手段により可変長フレームがフレームバッファに格納される毎に、各フレームバッファにおける可変長フレームの蓄積量を積算して、その蓄積量の積算値を記憶する積算値記憶手段と、その可変長フレーム格納手段により可変長フレームがフレームバッファに格納されることで、そのフレームバッファにおける可変長フレームの蓄積量が指定値を超えた場合、その可変長フレームのフレームＩＤを記憶するフレームＩＤ記憶手段と、優先度別のフレームバッファ毎に、当該フレームバッファに格納された可変長フレームのフレームＩＤと積算値記憶手段により記憶された積算値の対応関係を記憶する対応関係記憶手段とを設け、最大算出手段が積算値記憶手段により記憶されている積算値、フレームＩＤ記憶手段により記憶されているフレームＩＤ及び対応関係記憶手段により記憶されている対応関係を参照して、各フレームバッファにおける可変長フレームの閾値以内での最大蓄積量及び最大フレーム数を算出して出力するように構成したので、可変長フレームの優先度に対応するフレームバッファに空きがない場合、その可変長フレームを他の優先度のフレームバッファに格納するようにしても、フレームバッファにおける可変長フレームの蓄積量をフレーム単位で算出することができるようになり、その結果、閾値以内での最大蓄積量及び最大フレーム数を算出することができる効果がある。
【図面の簡単な説明】
【００１１】
【図１】この発明の実施の形態１による可変長フレームバッファ装置を示す構成図である。
【図２】この発明の実施の形態１による可変長フレームバッファ装置の処理内容を示すフローチャートである。
【図３】この発明の実施の形態１による可変長フレームバッファ装置の処理内容を示すフローチャートである。
【図４】フレーム格納メモリ２内のキューに格納される可変長フレームＦ（ｋ）と、積算値メモリ８、フレームＩＤメモリ９及び積算値ポインタメモリ１０の格納内容などを示す説明図である。
【図５】可変長フレームＦ（ｋ）のフレーム長ＬＥＮ（ｋ）、積算値Ｓ（ｋ）、フレームポインタＰ’（ｋ）及び積算値ポインタＰ（ｋ）の一例を示す説明図である。
【図６】蓄積量ＴＳＡ、閾値Ｌ、積算値ベースの閾値ＳＬ及び最終リード位置ｒなどを示している説明図である。
【発明を実施するための形態】
【００１２】
実施の形態１．
図１はこの発明の実施の形態１による可変長フレームバッファ装置を示す構成図であり、図において、フレーム受信制御部１は可変長フレームＦ（ｋ）（ｋ:自然数）の受信処理を実施し、その可変長フレームＦ（ｋ）を受信すると、その可変長フレームＦ（ｋ）のフレーム長Ｌｅｎ（ｋ）をカウントするとともに、その可変長フレームＦ（ｋ）の優先度を判別する処理を実施する。なお、フレーム受信制御部１はフレーム受信手段を構成している。
【００１３】
フレーム格納メモリ２は可変長フレームＦ（ｋ）を入力順に記憶するＦＩＦＯ形式のキュー（フレームバッファ）を優先度別に複数有している。
なお、優先度別のキューは、指定されたｎバイト単位（例えば、１ｋバイト単位）で区切りが設けられている。
フレーム長情報バッファ３はフレーム受信制御部１によりカウントされたフレーム長Ｌｅｎ（ｋ）を記憶するメモリである。
共有バッファ情報管理部４はフレーム格納メモリ２内の一部のキューを共有して使う際、フレームの格納場所と空き情報を管理するメモリである。
【００１４】
フレームバッファアクセス制御部５はフレーム受信制御部１により受信された可変長フレームＦ（ｋ）の優先度に対応するフレーム格納メモリ２内のキューに空きがあれば、その可変長フレームＦ（ｋ）を当該キューに格納し、その可変長フレームＦ（ｋ）の優先度に対応するキューに空きがなければ、その可変長フレームＦ（ｋ）を他の優先度のキューに格納、あるいは、廃棄する処理を実施する。
また、フレームバッファアクセス制御部５はフレーム受信制御部１によりカウントされたフレーム長Ｌｅｎ（ｋ）をフレーム長情報バッファ３に格納する処理や、フレームの格納場所と空き情報をフレーム長情報バッファ３に格納する処理のほか、フレーム出力制御部６から出力要求を受けると、フレーム格納メモリ２内のキューから可変長フレームＦ（ｋ）を読み出して、その可変長フレームＦ（ｋ）をフレーム出力制御部６に出力する処理などを実施する。なお、フレームバッファアクセス制御部５は可変長フレーム格納手段を構成している。
フレーム出力制御部６はＯＬＴから可変長フレームの出力要求を受けると、フレームバッファアクセス制御部５を介して、フレーム格納メモリ２内のキューから可変長フレームを取得し、その可変長フレームをＯＬＴに出力する処理を実施する。
【００１５】
フレーム情報格納部７はフレームバッファアクセス制御部５により可変長フレームＦ（ｋ）がフレーム格納メモリ２内のキューに格納される毎に、各キューにおける可変長フレームＦ（ｋ）の蓄積量を積算して、その蓄積量の積算値Ｓ（ｋ）を積算値メモリ８に格納する処理を実施する。
また、フレーム情報格納部７はフレームバッファアクセス制御部５により可変長フレームＦ（ｋ）がフレーム格納メモリ２内のキューに格納されることで、そのキューにおける可変長フレームＦ（ｋ）の蓄積量が指定されたｎバイト単位の区切り（指定値）を超えた場合、その可変長フレームＦ（ｋ）のフレームＩＤであるＰ’（ｋ）をフレームＩＤメモリ９に格納する処理を実施する。
また、フレーム情報格納部７は優先度別のキュー毎に、当該キューに格納された可変長フレームＦ（ｋ）のフレームＩＤであるＰ’（ｋ）と積算値メモリ８に格納された積算値Ｓ（ｋ）の対応関係を積算値ポインタメモリ１０に格納する処理を実施する。
【００１６】
積算値メモリ８はフレーム格納メモリ２内のキューに格納された可変長フレームＦ（ｋ）に対応する積算値Ｓ（ｋ）を格納するメモリである。
なお、フレーム情報格納部７及び積算値メモリ８から積算値記憶手段が構成されている。
【００１７】
フレームＩＤメモリ９は可変長フレームＦ（ｋ）の蓄積量が指定されたｎバイト単位の区切りを超えた場合、その可変長フレームＦ（ｋ）のフレームＩＤであるＰ’（ｋ）を格納するメモリである。
なお、フレーム情報格納部７及びフレームＩＤメモリ９からフレームＩＤ記憶手段が構成されている。
【００１８】
積算値ポインタメモリ１０はフレーム格納メモリ２内のキューに格納された可変長フレームＦ（ｋ）のフレームＩＤであるＰ’（ｋ）と積算値メモリ８に格納された積算値Ｓ（ｋ）の対応関係、即ち、フレーム格納メモリ２内のキューに格納された可変長フレームＦ（ｋ）のフレームＩＤであるＰ’（ｋ）に対応する積算値メモリ８内の積算値Ｓ（ｋ）を指し示す積算値ポインタＰ（ｋ）を格納するメモリである。
なお、フレーム情報格納部７及び積算値ポインタメモリ１０から対応関係記憶手段が構成されている。
【００１９】
比較判定部１１は例えば帯域割当量として閾値Ｌを受けると、フレーム格納メモリ２内の各キューにおける可変長フレームＦ（ｋ）の蓄積量ＴＳＡと閾値Ｌを比較するなどの処理を実施する。
ポインタ管理部１２は比較判定部１１の比較結果が、各キューにおける可変長フレームＦ（ｋ）の蓄積量ＴＳＡが閾値Ｌ以上である旨を示す場合、積算値ポインタメモリ１０に格納されている対応関係を参照して、フレームＩＤメモリ９に格納されているフレームＩＤであるＰ’（ｋ）に対応する積算値メモリ８内の積算値Ｓ（ｋ）を特定するなどの処理を実施する。
【００２０】
蓄積量演算部１３はポインタ管理部１２により特定された積算値Ｓ（ｋ）から閾値Ｌ以内での最大蓄積量ＳＡMAXを算出し、そのフレームＩＤであるＰ’（ｋ）から閾値Ｌ以内での最大フレーム数ＦＣMAXを算出する処理を実施する。
ただし、蓄積量演算部１３は比較判定部１１の比較結果が、各キューにおける可変長フレームＦ（ｋ）の蓄積量ＴＳＡが閾値Ｌ未満である旨を示す場合、その蓄積量ＴＳＡを閾値Ｌ以内での最大蓄積量ＳＡMAXとし、各キューに格納されている可変長フレームのフレーム数を閾値Ｌ以内での最大フレーム数ＦＣMAXとする。
なお、比較判定部１１、ポインタ管理部１２及び蓄積量演算部１３から最大算出手段が構成されている。
【００２１】
図２及び図３はこの発明の実施の形態１による可変長フレームバッファ装置の処理内容を示すフローチャートである。
図４はフレーム格納メモリ２内のキューに格納される可変長フレームＦ（ｋ）と、積算値メモリ８、フレームＩＤメモリ９及び積算値ポインタメモリ１０の格納内容などを示す説明図である。
図４では、フレーム格納メモリ２が３つのキュー（１）〜（３）を有しており、本来、キュー（１）に格納される可変長フレームＦ（１３）が、キュー（１）に空きがないために、キュー（３）に格納される例を示している。
なお、可変長フレームＦ（１１），（１２）の優先度に対応するキューはキュー（１）、可変長フレームＦ（２１），（２２），（２３）の優先度に対応するキューはキュー（２）、可変長フレームＦ（３１），（３２）の優先度に対応するキューはキュー（３）であるとする。
【００２２】
次に動作について説明する。
フレーム受信制御部１は、可変長フレームＦ（１３）を受信すると、その可変長フレームＦ（１３）のフレーム長Ｌｅｎ（１３）をカウントするとともに、その可変長フレームＦ（１３）の優先度を判別する。
このとき、可変長フレームＦ（１３）の優先度に対応するキューがキュー（１）であるため、その可変長フレームＦ（１３）をキュー（１）に格納すべきであるが、キュー（１）に空きがないために、その可変長フレームＦ（１３）をキュー（３）に格納する。
【００２３】
この実施の形態１では、上記の通り、フレームバッファアクセス制御部５が可変長フレームＦ（１３）をフレーム格納メモリ２内のキュー（３）に格納するが、本来、可変長フレームＦ（１３）はキュー（１）に格納すべきフレームであるため、フレーム情報格納部７が、可変長フレームＦ（１３）をキュー（１）に格納したものとして、キュー（１）における可変長フレームＦ（ｋ）の蓄積量を積算して、その蓄積量の積算値Ｓ（１３）を積算値メモリ８に格納する（図４を参照）。
例えば、可変長フレームＦ（ｋ）がＦ（１１）→Ｆ（１２）→Ｆ（２１）→Ｆ（２２）→Ｆ（２３）→Ｆ（３１）→Ｆ（３２）→Ｆ（１３）の順番に受信されており、可変長フレームＦ（ｋ）のフレーム長Ｌｅｎ（ｋ）が図５の通りであるとすると、積算値Ｓ（１３）は下記のようになる。ただし、各可変長フレームのオーバヘッドＯＨを１００、キュー（１）における最終リード位置１ｒ（図６を参照）の積算値Ｓ（１ｒ）を１００とする。
【００２４】
Ｓ（１３）＝Ｓ（１ｒ）＋Ｆ（１１）＋ＯＨ＋Ｆ（１２）＋ＯＨ＋Ｆ（１３）＋ＯＨ
＝１００＋７００＋１００＋１０００＋１００＋６００＋１００
＝２７００
【００２５】
また、フレーム情報格納部７は、フレームバッファアクセス制御部５により可変長フレームＦ（１３）のキュー（１）に対する積算値Ｓ（１３）が、指定されたｎバイト単位の区切り（２ｋバイト）を超えているので、図４に示すように、その可変長フレームＦ（１３）のフレームＩＤであるＰ’（１３）をフレームＩＤメモリ９に格納する。
【００２６】
ここでは、説明の便宜上、キュー（１）に格納される可変長フレームＦ（ｋ）のフレームＩＤとして０〜１５の値、キュー（２）に格納される可変長フレームＦ（ｋ）のフレームＩＤとして１６〜３１の値、キュー（３）に格納される可変長フレームＦ（ｋ）のフレームＩＤとして３２〜４７の値が割り当てられるものとする。
図４の例では、可変長フレームＦ（１３）がキュー（３）に格納されるが、可変長フレームＦ（１３）は本来キュー（１）に格納されるフレームであるため、フレームＩＤとして０〜１５の値が割り当てられる。ただし、図５の例では、先にキュー（１）に格納されている可変長フレームＦ（１１），Ｆ（１２）には、フレームＩＤとして、Ｐ’（１１）＝４、Ｐ’（１２）＝５が割り当てられているので、可変長フレームＦ（１３）のフレームＩＤには、５に１を加えた６が割り当てられる。
【００２７】
また、フレーム情報格納部７は、図４に示すように、可変長フレームＦ（１３）のフレームＩＤであるＰ’（１３）と積算値メモリ８内の積算値Ｓ（１３）の対応関係を示す情報として、Ｐ’（１３）に対応する積算値Ｓ（１３）を指し示す積算値ポインタＰ（３３）を積算値ポインタメモリ１０に格納する。
【００２８】
ここでは、説明の便宜上、キュー（１）に格納される可変長フレームＦ（ｋ）の積算値ポインタＰ（ｋ）として０〜１５の値、キュー（２）に格納される可変長フレームＦ（ｋ）の積算値ポインタＰ（ｋ）として１６〜３１の値、キュー（３）に格納される可変長フレームＦ（ｋ）の積算値ポインタＰ（ｋ）として３２〜４７の値が割り当てられるものとする。
図４の例では、可変長フレームＦ（１３）がキュー（３）に格納されるので、Ｐ’（１３）に対応する積算値Ｓ（１３）を指し示す積算値ポインタＰ（３３）として３２〜４７の値が割り当てられる。ただし、図５の例では、先にキュー（３）に格納されている可変長フレームＦ（３１），Ｆ（３２）には、積算値ポインタとして、Ｐ（３１）＝４１、Ｐ（４２）＝４２が割り当てられているので、可変長フレームＦ（１３）の積算値ポインタＰ（３３）には、４３が割り当てられる。
【００２９】
ここまでの処理内容は、可変長フレームＦ（１３）を受信してフレーム格納メモリ２内のキュー（３）に格納する際の動作である。
次に、例えばＯＬＴから帯域割当量として閾値Ｌを受けて、閾値Ｌ以内での最大蓄積量ＳＡMAXをＯＬＴに報告する際の動作を説明する。
ただし、ＯＬＴが、例えば、出力フレーム数を調べる必要がある場合などには、必要に応じて最大フレーム数ＦＣMAXをＯＬＴに報告する。
【００３０】
比較判定部１１は、ＯＬＴから帯域割当量として閾値Ｌを受けると、フレーム格納メモリ２内の各キュー（１）〜（３）における可変長フレームＦ（ｋ）の蓄積量ＴＳＡ（１），ＴＳＡ（２），ＴＳＡ（３）と閾値Ｌとを順次比較する（図２のステップＳＴ１）。
ＴＳＡ（１）＝Ｓ（１３）−Ｓ（１ｒ）
＝２７００−１００
＝２６００
ＴＳＡ（２）＝Ｓ（２３）−Ｓ（２ｒ）
＝６７００−４５００
＝２２００
ＴＳＡ（３）＝Ｓ（３２）−Ｓ（３ｒ）
＝９７００−８２００
＝１５００
図２では、説明の簡略化のため、各キュー（１）〜（３）における蓄積量ＴＳＡ（１），ＴＳＡ（２），ＴＳＡ（３）を“ＴＳＡ”で表記し、各キュー（１）〜（３）における最終リード位置１ｒ，２ｒ，３ｒを“最終リード位置ｒ”で表記し、各キュー（１）〜（３）における最終リード位置１ｒ，２ｒ，３ｒの積算値Ｓ（１ｒ），Ｓ（２ｒ），Ｓ（３ｒ）を“積算値Ｓ（ｒ）”で表記している。
【００３１】
ポインタ管理部１２は、比較判定部１１の比較結果が、各キュー（１）〜（３）における可変長フレームＦ（ｋ）の蓄積量ＴＳＡ（１），ＴＳＡ（２），ＴＳＡ（３）が閾値Ｌ以上である旨を示す場合、積算値ポインタメモリ１０に格納されている対応関係を参照して、フレームＩＤメモリ９に格納されているフレームＩＤであるＰ’（ｋ）に対応する積算値メモリ８内の積算値Ｓ（ｋ）を特定する。
以下、ポインタ管理部１２におけるＰ’（ｋ）に対応する積算値Ｓ（ｋ）の特定処理を具体的に説明する。
【００３２】
例えば、閾値Ｌが２１００であれば、比較判定部１１の比較結果は、蓄積量ＴＳＡ（１）が閾値Ｌ以上である旨を示すので、ポインタ管理部１２は、その閾値Ｌと最終リード位置１ｒの積算値Ｓ（１ｒ）から、積算値ベースの閾値ＳＬを算出する（ステップＳＴ２）。
ＳＬ＝Ｌ＋Ｓ（１ｒ）
＝２１００＋１００
＝２２００
【００３３】
ここで、図６は蓄積量ＴＳＡ、閾値Ｌ、積算値ベースの閾値ＳＬ及び最終リード位置１ｒなどを示している説明図である。
ただし、図６では、説明の簡単化のため、フレーム格納メモリ２内のキューが１つだけである例を示している。
【００３４】
ポインタ管理部１２は、積算値ベースの閾値ＳＬを算出すると、その閾値ＳＬを検索単位ｎ（１ｋバイト＝１０２４バイト）で除算して、その除算結果ＳＮＬを求め、また、最終リード位置ｒの積算値Ｓ（ｒ）を検索単位ｎで除算して、その除算結果ＳＮｒを求める（ステップＳＴ３）。
ＳＮＬ＝ＳＬ÷ｎ
＝２２００÷１０２４
＝２．１４＝２（小数点以下は切り捨て）
ＳＮｒ＝Ｓ（ｒ）÷ｎ
＝１００÷１０２４
＝０．０９７＝０（小数点以下は切り捨て）
【００３５】
次に、ポインタ管理部１２は、上記のＳＮＬとＳＮｒを比較し（ステップＳＴ４）、両者が一致すれば（ＳＮＬ＝ＳＮｒ）、最終リード位置ｒの積算値Ｓ（ｒ）のポインタであるＰ’（ｒ）を検索開始位置に設定する（ステップＳＴ５）。
ただし、上記の例では、ＳＮＬ＝２、ＳＮｒ＝０であり、ＳＮＬとＳＮｒが一致しないので、ステップＳＴ５は実行されない。
ポインタ管理部１２は、ＳＮＬとＳＮｒが一致しない場合（ＳＮＬ≠ＳＮｒ）、ＳＮＬ＝２をフレームＩＤメモリ９に対するポインタとして用いて、フレームＩＤであるＰ’（１３）を取得する（ステップＳＴ６）。
図４の例では、Ｐ’（１３）のアドレスが２ｋであるので、ＳＮＬ＝２をアドレス（フレームＩＤメモリ９に対するポインタ）とすると、Ｐ’（１３）＝６が取得される。
【００３６】
ポインタ管理部１２は、フレームＩＤであるＰ’（１３）を取得すると、Ｐ’（１３）−１＝Ｐ’（１２）を検索開始位置に設定する（ステップＳＴ７）。
Ｐ’（１３）の位置より一つ前の可変長フレームは確実に閾値Ｌ以下となるため、Ｐ’（１２）を検索開始位置に設定している。
【００３７】
ポインタ管理部１２は、Ｐ’（１２）を検索開始位置に設定すると、積算値ポインタメモリ１０から、Ｐ’（１２）に対応する積算値Ｓ（１２）を指し示す積算値ポインタＰ（１２）の読み出しを行う（ステップＳＴ８）。図５の例では、積算値ポインタＰ（１２）は１５である。
ポインタ管理部１２は、積算値ポインタメモリ１０から積算値ポインタＰ（１２）を読み出すと、積算値メモリ８から積算値ポインタＰ（１２）が指し示す積算値Ｓ（１２）の読み出しを行う（ステップＳＴ９）。図５の例では、積算値Ｓ（１２）は２０００である。
【００３８】
ポインタ管理部１２は、積算値メモリ８から積算値Ｓ（１２）を読み出すと、その積算値Ｓ（１２）と積算値ベースの閾値ＳＬとを比較する（図３のステップＳＴ１０）。
図５の例では、積算値Ｓ（１２）が２０００であり、積算値ベースの閾値ＳＬが２２００であるため、ＳＬ＞Ｓ（１２）である。
ポインタ管理部１２は、積算値Ｓ（１２）が積算値ベースの閾値ＳＬより小さい場合、積算値ポインタメモリ１０に対するポインタ（この段階では、検索開始位置Ｐ’（１２）＝５）が、フレーム最終位置Ｐ’（１３）＝６と同じ位置であるか否かを判断する（ステップＳＴ１１）。
ポインタ管理部１２は、同じ位置でない場合、積算値ポインタメモリ１０に対するポインタに１を加算して、図２のステップＳＴ８の処理に戻る（ステップＳＴ１２）。
ここでは、検索開始位置Ｐ’（１２）＝５に１を加算して、Ｐ’（１３）＝６を次のポインタとする。
【００３９】
ポインタ管理部１２は、Ｐ’（１３）を次のポインタとすると、積算値ポインタメモリ１０から、Ｐ’（１３）に対応する積算値Ｓ（１３）を指し示す積算値ポインタＰ（３３）の読み出しを行う（図２のステップＳＴ８）。図５の例では、積算値ポインタＰ（３３）は４３である。
ポインタ管理部１２は、積算値ポインタメモリ１０から積算値ポインタＰ（３３）を読み出すと、積算値メモリ８から積算値ポインタＰ（３３）が指し示す積算値Ｓ（１３）の読み出しを行う（ステップＳＴ９）。図５の例では、積算値Ｓ（１３）は２７００である。
【００４０】
ポインタ管理部１２は、積算値メモリ８から積算値Ｓ（１３）を読み出すと、その積算値Ｓ（１３）と積算値ベースの閾値ＳＬとを比較する（図３のステップＳＴ１０）。
図５の例では、積算値Ｓ（１３）が２７００であり、積算値ベースの閾値ＳＬが２２００であるため、ＳＬ＜Ｓ（１３）である。
ポインタ管理部１２は、積算値Ｓ（１３）が積算値ベースの閾値ＳＬより大きい場合、一つ前のフレームが閾値Ｌ内で最大となるフレームとなるので、ポインタＰ’（１３）の一つ前のポインタＰ’（１２）を閾値Ｌ内で最大となるフレームのフレームＩＤとして蓄積量演算部１３に出力する。また、ポインタＰ’（１２）に対応する積算値Ｓ（１２）を蓄積量演算部１３に出力する（ステップＳＴ１３）。
なお、ポインタ管理部１２は、ステップＳＴ１１において、積算値ポインタメモリ１０に対するポインタが、フレーム最終位置Ｐ’（１３）と同じ位置であると判断する場合、このときのポインタを閾値Ｌ内で最大となるフレームのフレームＩＤとして蓄積量演算部１３に出力する。また、このポインタに対応する積算値を蓄積量演算部１３に出力する（ステップＳＴ１４）。
【００４１】
蓄積量演算部１３は、ポインタ管理部１２からポインタＰ’（１２）に対応する積算値Ｓ（１２）を受けると、その積算値Ｓ（１２）から最終リード位置１ｒの積算値Ｓ（１ｒ）を減算することで、閾値Ｌ以内での最大蓄積量ＳＡMAXを算出する。
ＳＡMAX＝Ｓ（１２）−Ｓ（１ｒ）
＝２０００−１００
＝１９００
また、蓄積量演算部１３は、ポインタＰ’（１２）から最終リード位置１ｒの積算値Ｓ（１ｒ）のポインタであるＰ’（１ｒ）を減算することで、閾値Ｌ以内での最大フレーム数ＦＣMAXとする。
ＦＣMAX＝Ｐ’（１２）−Ｐ’（１ｒ）
＝５−３
＝２
【００４２】
ただし、蓄積量演算部１３は、比較判定部１１の比較結果が、各キューにおける可変長フレームＦ（ｋ）の蓄積量ＴＳＡ（１），ＴＳＡ（２），ＴＳＡ（３）が閾値Ｌ未満である旨を示す場合（図２のステップＳＴ１）、その蓄積量ＴＳＡ（１），ＴＳＡ（２），ＴＳＡ（３）を閾値Ｌ以内での最大蓄積量ＳＡMAXとし、各キューに格納されている可変長フレームのフレーム数を閾値Ｌ以内での最大フレーム数ＦＣMAXとする（ステップＳＴ１６）。
蓄積量演算部１３は、上記のようにして、閾値Ｌ以内での最大蓄積量ＳＡMAXを算出すると、その最大蓄積量ＳＡMAXをＯＬＴに出力する。
なお、蓄積量演算部１３は、ＯＬＴが、例えば、出力フレーム数を調べる必要がある場合などには、必要に応じて最大フレーム数ＦＣMAXをＯＬＴに出力する。
【００４３】
以上で明らかなように、この実施の形態１によれば、フレーム受信制御部１により受信された可変長フレームの優先度に対応するフレーム格納メモリ２内のキューに空きがあれば、その可変長フレームを当該キューに格納し、その可変長フレームの優先度に対応するキューに空きがなければ、その可変長フレームを他の優先度のキューに格納するフレームバッファアクセス制御部５と、フレームバッファアクセス制御部５により可変長フレームがフレーム格納メモリ２内のキューに格納される毎に、各キューにおける可変長フレームの蓄積量を積算して、その蓄積量の積算値を積算値メモリ８に格納し、フレームバッファアクセス制御部５により可変長フレームがキューに格納されることで、そのキューにおける可変長フレームの蓄積量が指定値を超えた場合、その可変長フレームのフレームＩＤをフレームＩＤメモリ９に格納し、優先度別のキュー毎に、当該キューに格納された可変長フレームのフレームＩＤと積算値メモリ８に格納された積算値の対応関係を積算値ポインタメモリ１０に格納するフレーム情報格納部８とを設け、積算値メモリ８に格納されている積算値、フレームＩＤメモリ９に格納されているフレームＩＤ及び積算値ポインタメモリ１０に格納されている対応関係を参照して、各キューにおける可変長フレームの閾値以内での最大蓄積量及び最大フレーム数を算出して出力するように構成したので、可変長フレームの優先度に対応するキューに空きがない場合、その可変長フレームを他の優先度のキューに格納するようにしても、キューにおける可変長フレームの蓄積量をフレーム単位で算出することができるようになり、その結果、閾値以内での最大蓄積量及び最大フレーム数を算出することができる効果を奏する。
【００４４】
実施の形態２．
上記実施の形態１では、フレームバッファアクセス制御部５が、フレーム受信制御部１により受信された可変長フレームの優先度に対応するフレーム格納メモリ２内のキューに空きがあれば、その可変長フレームを当該キューに格納し、その可変長フレームの優先度に対応するキューに空きがなければ、その可変長フレームを他の優先度のキューに格納するものについて示したが、その可変長フレームを他の優先度のキューに格納する場合、以降、その可変長フレームと同一優先度の可変長フレームを上記キューに格納して、本来、上記キューに対応する優先度の可変長フレームを廃棄するようにしてもよい。
【００４５】
例えば、フレーム受信制御部１により受信された可変長フレームＦ（１３）の優先度に対応するフレーム格納メモリ２内のキュー（１）に空きがないために、その可変長フレームＦ（１３）を他の優先度のキュー（３）に格納する場合、以降、可変長フレームＦ（１３）と同一優先度の可変長フレーム（例えば、Ｆ（１４）やＦ（１５））をキュー（３）に格納して、本来、キュー（３）に対応する優先度の可変長フレーム（例えば、Ｆ（３３）やＦ（３４））を廃棄するようにする。
フレームバッファアクセス制御部５は、その後、キュー（３）に格納されている他の優先度の可変長フレームＦ（３）やＦ（４）などが全て出力されると、本来格納する元の優先度の可変長フレーム（例えば、Ｆ（３５）やＦ（３６））をキュー（３）に格納するようにする。
【００４６】
以上で明らかなように、この実施の形態２によれば、可変長フレームを他の優先度のキューに格納する場合、以降、その可変長フレームと同一優先度の可変長フレームを上記キューに格納して、本来、上記キューに対応する優先度の可変長フレームを廃棄するように構成したので、一部のキューを共有させるときの情報管理が簡潔になり、装置内部で必要なメモリ量を抑えることができる効果を奏する。
【００４７】
実施の形態３．
上記実施の形態１では、フレーム出力制御部６がＯＬＴから可変長フレームの出力要求を受けると、フレームバッファアクセス制御部５を介して、フレーム格納メモリ２内のキューから可変長フレームを取得して、その可変長フレームをＯＬＴに出力するものについて示したが、フレーム出力手段であるフレーム出力制御部６が、蓄積量算出部１３により算出された最大蓄積量ＳＡMAXとなる場合の可変長フレームの出力順序を保持し、ＯＬＴから閾値として帯域割当量が指定されると、その出力順序で可変長フレームを優先的にＯＬＴに出力するようにしてもよい。
【００４８】
例えば、図４に示すように、フレーム格納メモリ２内のキュー（１）〜（３）に８個の可変長フレームが格納されているとき、蓄積量算出部１３により最大蓄積量ＳＡMAXが算出された場合、フレーム出力制御部６が、キュー（１）〜（３）に格納されている８個の可変長フレームの出力順序（優先度が高い可変長フレームから先に出力する順序）を保持し、ＯＬＴから閾値として帯域割当量が指定されると、その出力順序でキュー（１）〜（３）に格納されている８個の可変長フレームを優先的にＯＬＴに出力するようにする。
したがって、８個の可変長フレームの出力順序を保持したのち、ＯＬＴから閾値として帯域割当量が指定される前に、例えば、ある可変長フレームがいずれかのキューに格納されても、その可変長フレームについてはＯＬＴに出力されない。
ただし、帯域に余剰があり、出力が可能であれば、その可変長フレームをＯＬＴに出力するようにしてもよい。
【００４９】
ＯＬＴは、可変長フレームバッファ装置から最大蓄積量ＳＡMAXの報告を受けると、その最大蓄積量ＳＡMAXに見合う帯域を可変長フレームバッファ装置に割り当てるので、可変長フレームバッファ装置は、その帯域に見合う分の可変長フレームをＯＬＴに出力することができるようになる。
ここでは、可変長フレームバッファ装置が最大蓄積量ＳＡMAXをＯＬＴに報告するものについて示しているが、必要に応じて最大フレーム数ＦＣMAXをＯＬＴに報告するようにしてもよい。
【符号の説明】
【００５０】
１  フレーム受信制御部（フレーム受信手段）、２  フレーム格納メモリ、３  フレーム長情報バッファ、４  共有バッファ情報管理部、５  フレームバッファアクセス制御部（可変長フレーム格納手段）、６  フレーム出力制御部（フレーム出力手段）、７  フレーム情報格納部（積算値記憶手段、フレームＩＤ記憶手段、対応関係記憶手段）、８  積算値メモリ（積算値記憶手段）、９  フレームＩＤメモリ（フレームＩＤ記憶手段）、１０  積算値ポインタメモリ（対応関係記憶手段）、１１  比較判定部（最大算出手段）、１２  ポインタ管理部（最大算出手段）、１３  蓄積量演算部（最大算出手段）。
【図１】
2010166502.tif 000003
【図２】
2010166502.tif 000004
【図３】
2010166502.tif 000005
【図４】
2010166502.tif 000006
【図５】
2010166502.tif 000007
【図６】
2010166502.tif 000008