(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B1)
(11)【特許番号】
(24)【登録日】2025-04-07
(45)【発行日】2025-04-15
(54)【発明の名称】通信装置、通信方法およびプログラム
(51)【国際特許分類】
H04L 49/9005 20220101AFI20250408BHJP
【FI】
H04L49/9005
(21)【出願番号】P 2024003671
(22)【出願日】2024-01-15
【審査請求日】2024-01-15
(73)【特許権者】
【識別番号】000227205
【氏名又は名称】NECプラットフォームズ株式会社
(74)【代理人】
【識別番号】100080816
【氏名又は名称】加藤 朝道
(74)【代理人】
【識別番号】100098648
【氏名又は名称】内田 潔人
(72)【発明者】
【氏名】齋藤 雅之
(72)【発明者】
【氏名】片山 富史
【審査官】岩田 玲彦
(56)【参考文献】
【文献】特開2012-235263(JP,A)
【文献】特開平06-085840(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 49/9005
(57)【特許請求の範囲】
【請求項1】
複数種類の優先度毎に設けられたメインバッファを備えるメインバッファ部と、
複数の予備バッファを備える予備バッファ部と、
前記メインバッファと前記予備バッファのデータ滞留量を、前記優先度毎に監視する監視部と、
高い前記優先度から順に、前記優先度毎の前記データ滞留量に応じて、複数の前記予備バッファを当該優先度に割り当て、割り当てた前記予備バッファに、当該優先度のパケットが格納されるよう制御する割当制御部と、を備え
、
前記監視部は、前記優先度毎に、当該優先度用に設けられた前記メインバッファの前記データ滞留量と当該優先度が割り当てられた前記予備バッファの前記データ滞留量との合計である合計滞留量を監視し、前記合計滞留量に基づいて、必要な前記予備バッファの数である要求数を決定して前記割当制御部に通知し、
前記割当制御部は、高い前記優先度から順に、前記要求数の前記予備バッファを当該優先度に割り当てる、通信装置。
【請求項2】
請求項
1記載の通信装置であって、
前記監視部は、前記合計滞留量に応じた要求数を記憶した判定基準テーブルに従って、前記要求数を決定する、通信装置。
【請求項3】
請求項
1記載の通信装置であって、
前記割当制御部は、前記優先度毎の前記要求数に応じて割り当てる予備バッファを記憶した割当テーブルに従って、前記予備バッファを各前記優先度に割り当てる、通信装置。
【請求項4】
複数種類の優先度毎に設けられたメインバッファを備えるメインバッファ部と、
複数の予備バッファを備える予備バッファ部と、
前記メインバッファと前記予備バッファのデータ滞留量を、前記優先度毎に監視する監視部と、
高い前記優先度から順に、前記優先度毎の前記データ滞留量に応じて、複数の前記予備バッファを当該優先度に割り当て、割り当てた前記予備バッファに、当該優先度のパケットが格納されるよう制御する割当制御部と、
複数の前記予備バッファの前段にそれぞれ設けられる入力セレクタと、
複数の前記メインバッファの前段にそれぞれ設けられる出力セレクタと、を備え
、
前記割当制御部は、各前記入力セレクタおよび各前記出力セレクタに制御信号を送信することにより、前記パケットの格納を制御する、通信装置。
【請求項5】
複数種類の優先度毎に設けられたメインバッファを備えるメインバッファ部と、
複数の予備バッファを備える予備バッファ部と、
前記メインバッファと前記予備バッファのデータ滞留量を、前記優先度毎に監視する監視部と、
高い前記優先度から順に、前記優先度毎の前記データ滞留量に応じて、複数の前記予備バッファを当該優先度に割り当て、割り当てた前記予備バッファに、当該優先度のパケットが格納されるよう制御する割当制御部と
、
複数の前記予備バッファと前記監視部との間に設けられたセレクタと、を備え、
前記割当制御部は、当該セレクタに制御信号を送信することにより、複数の前記予備バッファから、前記優先度毎の前記データ滞留量を前記監視部に取得させる、通信装置。
【請求項6】
複数種類の優先度毎に設けられたメインバッファを備えるメインバッファ部と、
複数の予備バッファを備える予備バッファ部と、を備える通信装置における通信方法であって、
前記メインバッファと前記予備バッファのデータ滞留量を、前記優先度毎に監視
するステップと、
高い前記優先度から順に、前記優先度毎の前記データ滞留量に応じて、複数の前記予備バッファを当該優先度に割り当て、割り当てた前記予備バッファに、当該優先度のパケットが格納されるよう制御する
ステップと、を備え、
前記監視するステップでは、前記優先度毎に、当該優先度用に設けられた前記メインバッファの前記データ滞留量と当該優先度が割り当てられた前記予備バッファの前記データ滞留量との合計である合計滞留量を監視し、前記合計滞留量に基づいて、必要な前記予備バッファの数である要求数を決定し、
前記制御するステップでは、高い前記優先度から順に、決定した前記要求数の前記予備バッファを当該優先度に割り当てる、通信方法。
【請求項7】
請求項6記載の通信方法であって、
前記監視するステップでは、前記合計滞留量に応じた要求数を記憶した判定基準テーブルに従って、前記要求数を決定する、通信方法。
【請求項8】
請求項6記載の通信方法であって、
前記制御するステップでは、前記優先度毎の前記要求数に応じて割り当てる予備バッファを記憶した割当テーブルに従って、前記予備バッファを各前記優先度に割り当てる、通信方法。
【請求項9】
複数種類の優先度毎に設けられたメインバッファを備えるメインバッファ部と、
複数の予備バッファを備える予備バッファ部と、
複数の前記予備バッファの前段にそれぞれ設けられる入力セレクタと、
複数の前記メインバッファの前段にそれぞれ設けられる出力セレクタと、備える通信装置における通信方法であって、
前記メインバッファと前記予備バッファのデータ滞留量を、前記優先度毎に監視するステップと、
高い前記優先度から順に、前記優先度毎の前記データ滞留量に応じて、複数の前記予備バッファを当該優先度に割り当て、割り当てた前記予備バッファに、当該優先度のパケットが格納されるよう制御するステップと、を備え、
前記制御するステップでは、各前記入力セレクタおよび各前記出力セレクタに制御信号を送信することにより、前記パケットの格納を制御する、通信方法。
【請求項10】
複数種類の優先度毎に設けられたメインバッファを備えるメインバッファ部と、
複数の予備バッファを備える予備バッファ部と、
監視部と、
複数の前記予備バッファと前記監視部との間に設けられたセレクタと、備える通信装置における通信方法であって、
前記メインバッファと前記予備バッファのデータ滞留量を、前記優先度毎に前記監視部が監視するステップと、
高い前記優先度から順に、前記優先度毎の前記データ滞留量に応じて、複数の前記予備バッファを当該優先度に割り当て、割り当てた前記予備バッファに、当該優先度のパケットが格納されるよう制御するステップと、を備え、
前記制御するステップでは、前記セレクタに制御信号を送信することにより、複数の前記予備バッファから、前記優先度毎の前記データ滞留量を前記監視部に取得させる、通信方法。
【請求項11】
複数種類の優先度毎に設けられたメインバッファを備えるメインバッファ部と、複数の予備バッファを備える予備バッファ部と、を備える
通信装置に、
請求項6から8のいずれか1項に記載の通信方法を実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、通信装置、通信方法およびプログラムに関する。
【背景技術】
【0002】
複数の入出力ポートを備える通信装置では、各出力先ポートの輻輳発生時に、データ(パケット)廃棄を抑制するため、一時的にパケットを格納するバッファを、出力ポート別に備える。また、優先度の高いパケットを優先的に転送するQoS(Quarity of Service)制御をサポートする通信装置は、優先度の高いパケットの廃棄を抑制するため、優先度別にサイズや廃棄閾値を制御できるバッファを備える。バッファの構成としては、パケットの優先度別に専用メモリを用いる方式と、各優先度間で単一のメモリを共有する共有バッファ方式と、が知られている。
【0003】
共有バッファ方式において、数種類の優先度のパケットを共有バッファに格納する場合に、高優先のパケットの廃棄を抑制するため、「パケット書込部は、共有バッファに格納されたパケット量が所定の優先度に対応する閾値を超過した場合、その優先度のパケットを共有バッファへ書込むことを抑制する(要約抜粋)」技術がある(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
以下の分析は、本発明の発明者によって与えられたものである。
【0006】
共有バッファ方式は、メモリの空き領域を各優先度のパケットが使用できるため、メモリの使用効率が高い。その結果、優先度別に専用メモリを用いる方式に比べ、トータルメモリサイズを小さくできる。その反面、共有バッファ方式では、1つのメモリ領域を複数の優先度パケットがランダムにアクセスできるようにするために、メモリのアドレス管理とアクセス制御が複雑になる。
【0007】
例えば、特許文献1に開示の技術によれば、パケット読出部は、共有バッファに格納された未読出しのフレームを、絶対優先(Strict Priority)方式で読出す。具体的には、パケット読出部は、フレーム読出し時に相対的に高優先のフレームが共有バッファに格納されている場合、相対的に低優先のフレームが大量に格納されていても、また先に格納されていても、高優先のフレームを読出す。したがって、優先度別の受信パケット格納アドレスと格納順序管理、パケット送受信時におけるそれら管理情報の更新制御とメモリアクセス制御が必要となる。
【0008】
本発明は、上記事情に鑑みてなされたもので、優先度の高いパケットを優先的に転送するQoS制御を行う通信装置において、簡易な構成で複雑な制御を行うことなく、メモリの使用効率の向上と、優先度の高いパケットの廃棄の抑制とを両立させる技術を提供することを目的とする。
【課題を解決するための手段】
【0009】
本発明の第一の視点によれば、
複数種類の優先度毎に設けられたメインバッファを備えるメインバッファ部と、
複数の予備バッファを備える予備バッファ部と、
前記メインバッファと前記予備バッファのデータ滞留量を、前記優先度毎に監視する監視部と、
高い前記優先度から順に、前記優先度毎の前記データ滞留量に応じて、複数の前記予備バッファを当該優先度に割り当て、割り当てた前記予備バッファに、当該優先度のパケットが格納されるよう制御する割当制御部と、を備え、前記監視部は、前記優先度毎に、当該優先度用に設けられた前記メインバッファの前記データ滞留量と当該優先度が割り当てられた前記予備バッファの前記データ滞留量との合計である合計滞留量を監視し、前記合計滞留量に基づいて、必要な前記予備バッファの数である要求数を決定して前記割当制御部に通知し、前記割当制御部は、高い前記優先度から順に、前記要求数の前記予備バッファを当該優先度に割り当てる、通信装置が提供される。
【0010】
本発明の第二の視点によれば、
複数種類の優先度毎に設けられたメインバッファを備えるメインバッファ部と、
複数の予備バッファを備える予備バッファ部と、を備える通信装置における通信方法であって、
前記メインバッファと前記予備バッファのデータ滞留量を、前記優先度毎に監視するステップと、
高い前記優先度から順に、前記優先度毎の前記データ滞留量に応じて、複数の前記予備バッファを当該優先度に割り当て、割り当てた前記予備バッファに、当該優先度のパケットが格納されるよう制御するステップと、を備え、
前記監視するステップでは、前記優先度毎に、当該優先度用に設けられた前記メインバッファの前記データ滞留量と当該優先度が割り当てられた前記予備バッファの前記データ滞留量との合計である合計滞留量を監視し、前記合計滞留量に基づいて、必要な前記予備バッファの数である要求数を決定し、
前記制御するステップでは、高い前記優先度から順に、決定した前記要求数の前記予備バッファを当該優先度に割り当てる、通信方法が提供される。
【0011】
本発明の第三の視点によれば、
複数種類の優先度毎に設けられたメインバッファを備えるメインバッファ部と、複数の予備バッファを備える予備バッファ部と、を備える通信装置に、
上述の通信方法を実行させるプログラムが提供される。
【0012】
なお、このプログラムは、コンピュータが読み取り可能な記憶媒体に記録することができる。記憶媒体は、半導体メモリ、ハードディスク、磁気記録媒体、光記録媒体等の非トランジェント(non-transient)なものとすることができる。本発明は、コンピュータプログラム製品として具現することも可能である。
【発明の効果】
【0013】
本発明によれば、優先度の高いパケットを優先的に転送するQoS制御を行う通信装置において、簡易な構成で複雑な制御を行うことなく、メモリの使用効率の向上と、優先度の高いパケットの廃棄の抑制とを両立させることができる。
【図面の簡単な説明】
【0014】
【
図4】本開示の判定基準テーブルの一例を説明するための説明図である。
【
図5】本開示の合計残留量と閾値と要求数との関係を説明するための説明図である。
【
図6】本開示の割当テーブルの一例を説明するための説明図である。
【
図7】本開示の具体例を説明するための説明図である。
【
図8】本開示の他の具体例を説明するための説明図である。
【
図9】本開示のバッファ部の転送経路の一例を説明するための説明図である。
【
図10】本開示の制御装置のハードウェア構成の一例を示す構成図である。
【発明を実施するための形態】
【0015】
以下、本発明の一実施形態(以下、本実施形態と呼ぶ。)の概要について図面を参照して説明する。なお、図面の参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、本発明を図示の態様に限定することを意図するものではない。また、以降の説明で参照する図面等のブロック間の接続線は、双方向および単方向の双方を含む。一方向矢印については、主たる信号(データ)の流れを模式的に示すものであり、双方向性を排除するものではない。
【0016】
また、図中の各ブロックの入出力の接続点には、ポートやインタフェースがあるが図示を省略する。また、以下の説明において、「Aおよび/またはB」は、AまたはB、または、AおよびBという意味で用いる。
【0017】
<<第一実施形態>>
まず、本発明の第一実施形態について説明する。
【0018】
本実施形態の通信装置100aは、輻輳発生時に一時的にパケットを格納するバッファとして、優先度別に専用に設けられるメインバッファと、複数個の予備バッファとを備える。優先度毎のデータの滞留量に応じて、各予備バッファに、個別に、動的に優先度を割り当てることにより、FIFO(First In First Out)制御が行われるFIFOメモリで、優先度の高いパケットを優先的に転送するQoS(Quality of Service)制御を、高優先パケットの廃棄を抑え、実現する。
【0019】
以下、これを実現する本実施形態の通信装置100aについて説明する。
図1は、本実施形態の通信装置100aの、本実施形態の機能実現に関連する構成の構成図である。
【0020】
本実施形態の通信装置100aは、複数の入出力ポートを備え、複数種類の優先度のいずれかが設定されたパケットが入力される。以下では、一例として、パケットには、高優先度、中優先度、低優先度の3種類の優先度のいずれかが設定されているものとする。以下、高優先度が設定されているパケットを、高優先パケット、中優先度が設定されているパケットを中優先パケット、低優先度が設定されているパケットを、低優先パケットとそれぞれ呼ぶ。
【0021】
通信装置100aは、各出力先ポートへの輻輳発生時のパケット廃棄を抑制するために、一時的にパケットを格納するバッファ部200aを、出力ポート別に備える。バッファ部200aは、メインバッファ部300aと予備バッファ部400aと制御部500aと、を備える。
【0022】
メインバッファ部300aは、複数種類の優先度毎に、当該優先度が設定されたパケット(当該優先度のパケット)を格納するために設けられた、専用のメインバッファを備える。本実施形態では、高優先パケット用のメインバッファ(高優先MB)310aと、中優先パケット用のメインバッファ(中優先MB)320aと、低優先パケット用のメインバッファ(低優先MB)330aと、を備える。いずれのメインバッファも、FIFOメモリである。
【0023】
予備バッファ部400aは、パケット格納用の物理的リソースとして、複数の予備バッファを備える。これらは、輻輳発生下において、メインバッファ部300aの各優先度専用バッファのいずれか1つ以上にパケットを格納する空きがなくなった場合に使用する予備のバッファである。
【0024】
本実施形態では、一例として3つの予備バッファを備えるものとする。具体的には、第一予備バッファ(第一B)410aと、第二予備バッファ(第二B)420aと、第三予備バッファ(第三B)430aと、を備える。なお、予備バッファの数は、複数であればよい。いずれの予備バッファも、FIFOメモリである。
【0025】
これらの予備バッファは、後述する割当制御部520aにより、個別に(予備バッファ単位で)、いずれかの優先度に動的に割り当てられる。なお、優先度に割り当てるとは、当該優先度が設定されたパケットの予備バッファとして用いる、という意味である。
【0026】
制御部500aは、予備バッファ部400aの各予備バッファをいずれかの優先度に割り当てる。本実施形態では、監視部510aと、割当制御部520aと、を備える。
【0027】
監視部510aは、メインバッファ部300aと予備バッファ部400aの各バッファのデータ滞留量(パケット滞留量)を、優先度別に監視し、その結果を割当制御部520aに通知する。
【0028】
割当制御部520aは、監視部510aの監視結果に応じて、複数の予備バッファそれぞれを、どの優先度に割り当てるかを決定する。すなわち、監視部510aから通知された各優先度のデータ滞留量に応じて、第一B410a、第二B420a、第三B430aをいずれの優先度に割り当てるか決定する。決定にあたっては、高い優先度を優先して決定する。すなわち、高い優先度のものから順に、データ滞留量に応じて、必要な予備バッファを割り当てる。
【0029】
また、割当制御部520aは、予備バッファ部400aの動作を制御し、決定した割当に従って、各優先度のパケットが、第一B410a、第二B420a、および第三B430aに格納されるよう制御する。
【0030】
以上説明したように、本実施形態の通信装置100aによれば、FIFOメモリで構成されるバッファを、複数、予備バッファとして備え、データ滞留量に応じて、高い優先度のものから順に、FIFOメモリ単位で割り当てて、使用する。予備バッファは、必要に応じて各優先度で使い分けられる。したがって、優先度別にそれぞれ専用メモリをバッファとして設ける方式に比べ、少ないメモリで、各優先度のパケットを一時的に格納できる。また、割り当ては、FIFOメモリ単位で行われるため、各優先度間で単一のメモリを共有する方式に比べ、メモリ管理とアクセス制御が簡易である。そして、割り当ては、高い優先度から順に行われる。
【0031】
このため、本実施形態によれば、優先度の高いパケットを優先的に転送するQoS制御を行う通信装置100aにおいて、簡易な構成で複雑な制御を行うことなく、メモリの使用効率の向上と、優先度の高いパケットの廃棄の抑制とを両立できる。
【0032】
<<第二実施形態>>
次に、本実施形態の第二実施形態を説明する。本実施形態は、第一実施形態を、より、詳細に具体化した実施形態である。本実施形態では、第一実施形態と同名の構成は、基本的に第一実施形態と同機能を有する。以下、本実施形態について、第一実施形態と異なる点に主眼をおいて説明する。
【0033】
本実施形態では、通信装置100として、レイヤ2スイッチを用いる場合を例にあげて説明する。なお、レイヤ2スイッチは、OSI(Open Systems Interconnection)参照モデルのレイヤ2であるデータリンク層に基づいて、ネットワークを構成する機器である。具体的には、レイヤ2スイッチはLAN(Local Area Network)ケーブルで接続された機器のMACアドレスを記憶し、どの機器がどのポートに接続されているかを把握して通信を行う。
【0034】
本実施形態においても、複数種類の優先度のパケットは、高優先パケット、中優先パケット、低優先パケットである場合を例にあげて説明する。なお、高優先パケットは、例えば、VoIP(Voice over Internet Protocol)サービスのパケットや映像・音声ストリーミングサービスのパケットであってもよい。中優先パケットは、例えば、電子メールサービスのパケットであってもよい。低優先パケットは、例えば、ファイル転送サービスのパケットであってもよい。
【0035】
図2は、本実施形態のレイヤ2スイッチである通信装置100の構成図である。本図に示すように、通信装置100は、入力ポート120と、出力ポート170(出力ポート170aおよび170b)と、受信部130、スイッチ部140と、送信部150(150aおよび150b)と、を備える。なお、各構成の数は一例であり、例えば2以上の受信部130、3以上の出力ポート170を備えてもよい。
【0036】
入力ポート120と、出力ポート170(170aおよび170b)は、伝送路と接続される物理ポートである。
【0037】
受信部130は、入力ポート120を介して、外部装置から送信されたイーサネット(登録商標)フレームであるMACフレーム(以下、単に、パケットと呼ぶ。)を受信し、そのパケットの出力ポート170(170aまたは170b)を決定する。各パケットには、優先度が設定される。本実施形態では、高優先度、中優先度、低優先度のいずれかが設定される。
【0038】
スイッチ部140は、受信部130で受信し、出力ポート170を決定したパケットを、その出力ポート170に対応づけられた送信部150へ転送する。
【0039】
送信部150は、外部装置へのパケット転送処理を実行する。その際、QoS制御を実行する。送信部150は、出力ポート170に対応付けて設けられる。本実施形態では、例えば、送信部150aと送信部150bとを備える。例えば、送信部150aは、出力ポート170aに対応づけて設けられる。送信部150bは、出力ポート170bに対応づけて設けられる。以下、区別する必要がない場合は、送信部150で代表する。
【0040】
送信部150は、QoS制御を行いながら、パケット転送処理を実行するため、パケット書込部210と、バッファ部200と、パケット読出部220と、を備える。また、バッファ部200は、予備バッファ部400と、メインバッファ部300と、を備える。
【0041】
なお、各部は、優先度別データ信号線610、620、630、650でそれぞれ接続される。優先度別データ信号線610、620、630、650は、転送するパケットに設定された優先度に応じてそれぞれ設けられる。
【0042】
パケット書込部210は、スイッチ部140から入力されたパケットを、当該パケットに設定された優先度に応じて、対応する優先度別データ信号線(第一信号線)610を介して予備バッファ部400に転送する。
【0043】
なお、パケット書込部210は、予備バッファ部400から優先度別廃棄制御信号線(廃棄信号線)640を介して廃棄制御信号を受信すると、以降、当該優先度のパケットのバッファ部200への転送を停止する。廃棄信号線640も、優先度に応じて、それぞれ設けられる。なお、廃棄制御信号は、該当する優先度のパケットの転送停止を指示する信号である。
【0044】
予備バッファ部400は、パケット書込部210から入力されたパケットを、当該パケットに設定された優先度に応じて、優先度別データ信号線(第二信号線)620を介して、メインバッファ部300に転送する。本実施形態においても、第一実施形態の同名の構成と同様に、FIFOメモリで構成された、複数の予備バッファを備える。
【0045】
なお、本実施形態では、予備バッファ部400は、監視部510と割当制御部520とを備える(
図3参照)。
【0046】
監視部510は、第一実施形態の同名の構成と同様に、優先度別に、メインバッファと予備バッファのデータ(パケット)の滞留量を監視し、その結果を割当制御部520に通知する。詳細は、後述する。
【0047】
割当制御部520は、第一実施形態の同名の構成と同様に、監視部510の監視結果に応じて、複数の予備バッファそれぞれを、どの優先度用の予備バッファとして使用するか(どの優先度に割り当てるか)を決定する。詳細は、後述する。
【0048】
メインバッファ部300は、優先度別データ信号線(第三信号線)630を介して、優先度別に専用に設けられたメインバッファのデータ滞留量を示す情報を、優先度毎に予備バッファ部400に通知する。また、第一実施形態の同名の構成と同様に、複数種類の優先度毎に、専用のメインバッファ(FIFOメモリ)を備える。
【0049】
パケット読出部220は、優先度別データ信号線(第五信号線)650を介して、メインバッファ部300に格納された未読出しのパケットを、絶対優先(Strict Priority)方式で読出す。具体的には、パケット読出部220は、読出し時に相対的に高優先のパケットがメインバッファ部300に格納されている場合、相対的に低優先のパケットが大量に格納されていても、または、先に格納されていても、高優先のパケットを読出す。読出したパケットは出力ポート170を介して伝送路へ出力される。
【0050】
次に、本実施形態のバッファ部200の詳細を説明する。
図3は、本実施形態のバッファ部200の詳細な構成図である。上述のように、バッファ部200は、メインバッファ部300と、予備バッファ部400とを備える。
【0051】
まず、メインバッファ部300の構成を説明する。メインバッファ部300は、各優先度の専用メインバッファを備える。具体的には、高優先パケットを格納する高優先メインバッファ(MB)310と、中優先パケットを格納する中優先メインバッファ(MB)320と、低優先パケットを格納する低優先メインバッファ(MB)330と、を備える。これらは、いずれも、FIFOメモリで構成される。
【0052】
メインバッファ部300は、予備バッファ部400から転送されるパケットを、当該パケットの優先度に応じて、順次、各優先度の専用のメインバッファ(高優先MB310、中優先MN320、低優先MB330)に格納する。また、パケット読出部220の読出し制御に従い、優先度の高いものから順に、優先度毎に、先に格納されたパケットから、順次、パケット読出部220に転送する。
【0053】
各優先度の専用のメインバッファには、それぞれ、第二信号線620を介して、予備バッファ部400からパケットが格納される。すなわち、高優先MB310には、第二信号線620の第二高優先信号線621を介して高優先度パケットが格納される。中優先MB320には、第二信号線620の第二中優先信号線622を介して中優先パケットが格納される。低優先MB330には、第二信号線620の第二低優先信号線623を介して低優先度パケットが格納される。
【0054】
また、メインバッファ部300は、各優先度の専用のメインバッファそれぞれの、読出しを待つ、データ滞留量(パケット滞留量)を、MB滞留量として予備バッファ部400に通知する。
【0055】
高優先MB310のMB滞留量は、後述する高優先パケット監視部511に通知される。通知は、第三信号線630の第三高優先信号線631を介して行われる。中優先MB320のMB滞留量は、中優先パケット監視部512に通知される。通知は、第三信号線630の第三中優先度信号線632を介して行われる。低優先MB330のMB滞留量は、低優先パケット監視部513に通知される。通知は、第三信号線630の第三低優先信号線633を介して行われる。
【0056】
次に、予備バッファ部400の構成を説明する。予備バッファ部400は、第一予備バッファ(第一B)410と、第二予備バッファ(第二B)420と、第三予備バッファ(第三B)430とを備える。これらは、いずれも、FIFOメモリで構成される。
【0057】
また、予備バッファ部400は、監視部510と、割当制御部520と、を備える。
【0058】
監視部510は、第一実施形態同様、メインバッファ部300および予備バッファ部400の各バッファのデータ滞留量を、優先度別に監視する。本実施形態では、監視部510は、優先度別に設けられる。すなわち、高優先パケットが格納されるバッファのデータ滞留量を監視する高優先パケット監視部511と、中優先パケットが格納されるバッファのデータ滞留量を監視する中優先パケット監視部512と、低優先パケットが格納されるバッファのデータ滞留量を監視する低優先パケット監視部513と、を備える。
【0059】
監視部510は、それぞれの優先度において、メインバッファ部300から送られるデータ滞留量であるMB滞留量と、予備バッファ部400の、当該優先度に割り当てられた予備バッファから送られるデータ滞留量である予備滞留量とを合計した合計滞留量を監視する。そして、合計滞留量に応じて、優先度毎に、必要な予備バッファの数(要求数)を決定し、割当制御部520に通知する。
【0060】
各予備バッファ(第一B410、第二B420、第三B430)それぞれの予備滞留量は、信号線560を介して監視部510に送信される。いずれの予備バッファからの予備滞留量を、いずれの監視部510に通知するかは、例えば、セレクタ550で制御される。セレクタ550は、割当制御部520からの指示(制御信号)に従って動作する。
【0061】
割当制御部520は、第一実施形態同様、監視部510の監視結果に応じて、複数の予備バッファそれぞれを、どの優先度用の予備バッファとして使用するかを決定する。すなわち、各優先度の予備バッファの要求数に応じて、第一B410、第二B420、第三B430をいずれの優先度に割り当てるか決定する。割当は、優先度順(高い優先度から順)に行われる。
【0062】
また、各予備バッファ(第一B410、第二B420、第三B430)の入力には、入力セレクタ530(第一入力セレクタ531、第二入力セレクタ532、第三入力セレクタ533)が、それぞれ、接続される。入力セレクタ530は、接続される予備バッファへの入力信号を選択する、FIFO書込みデータセレクタである。また、予備バッファ部400の出力側には、出力セレクタ540(高優先出力セレクタ541、中優先出力セレクタ542、低優先出力セレクタ543)が設けられる。これらは、後段のメインバッファへの出力信号を選択する。これらのセレクタは、割当制御部520からの指示(制御信号)に従って、動作する。制御信号は、制御線521を介して、割当制御部520から、各セレクタ530、540、550に送信される。
【0063】
このように、本実施形態の予備バッファ部400は、パケット書込部210から転送される優先度別パケットを、割当制御部520の指示に従い、割り当てられた予備バッファに、入力セレクタ530を介して格納する。そして、先に格納されたパケットから、優先度別に、出力セレクタ540を介してメインバッファ部300に転送する。
【0064】
なお、予備バッファの割当手法は後述する。優先度によっては、予備バッファを使用しないパケットもあり得る。このような、予備バッファが1つも割り当てられない優先度のパケットは、予備バッファ(第一B410、第二B420、第三B430)への格納は行わず、出力セレクタ540を介してメインバッファ部300に転送される。
【0065】
また、セレクタ550は備えなくてもよい。各監視部510(高優先パケット監視部511、中優先パケット監視部512、低優先パケット監視部513)に、高中低全ての予備バッファ(第一B410、第二B420、第三B430)の滞留量を通知して、各監視部510の中で、必要な情報のみ使用するよう構成してもよい。
【0066】
[予備バッファ割当]
次に、本実施形態の監視部510と割当制御部520とによる、予備バッファ割当処理について説明する。
【0067】
上述のように、監視部510は、それぞれの優先度において、合計滞留量に応じて、必要な予備バッファの数(要求数)を決定し、割当制御部520に通知する。要求数は、例えば、予め記憶された、合計滞留量と閾値と要求数とを対応付けた判定基準テーブル710に従って、決定される。
【0068】
図4は、判定基準テーブル710の一例である。本図に示すように、判定基準テーブル710は、合計滞留量と閾値の関係を示す判定基準711毎に、要求する予備バッファ数(予備バッファ要求数712)が要求数として対応づけて記憶される。
【0069】
本実施形態では、例えば、4つの閾値(第一閾値、第二閾値、第三閾値、第四閾値)を用いる場合を例にあげて説明する。これらは、例えば、
図5に示すように、以下の意味を持つ。なお、
図5では、第一B410、第二B420、第三B430の順に割り当てるものとして説明する。
【0070】
第一閾値は、メインバッファ部300の各優先度のメインバッファ(高優先MB310、中優先MN320、低優先MB330)の空きの有無の判定用の閾値である。
第二閾値は、予備バッファ部400の1個目の予備バッファ(第一B410)の空きの有無の判定用の閾値である。
第三閾値は、予備バッファ部400の2個目の予備バッファ(第二B420)の空きの有無の判定用の閾値である。
第四閾値は、予備バッファ部400の3個目の予備バッファ(第三B430)の空きの有無の判定用の閾値である。
これらの閾値は、第一閾値<第二閾値<第三閾値<第四閾値の関係を有する。
【0071】
図5(a)に示すように、合計滞留量が第一閾値未満である場合、予備バッファは不要である。このため、
図4に示すように、要求数は0である。
図5(b)に示すように、合計滞留量が第一閾値以上であり、かつ、第二閾値未満である場合、1つ予備バッファが必要である。このため、要求数は1とする。
図5(c)に示すように、合計滞留量が第二閾値以上であり、かつ、第三閾値未満である場合、2つ予備バッファが必要である。このため、要求数は2とする。
図5(d)に示すように、合計滞留量が第三閾値以上であり、かつ、第四閾値未満である場合、予備バッファが3つ必要である。このため、要求数は3とする。また、合計滞留量が第四閾値以上である場合、本実施形態では、予備バッファ数が3つであるため、この場合も要求数は3とする。
【0072】
各優先度の監視部510は、それぞれの優先度のデータ滞留量について、これらの判定を行い、それぞれ、割当制御部520に要求数を決定し、通知する。例えば、高優先パケット監視部511は、高優先パケットの合計滞留量について、上記判定を行い、高優先度パケットに関する予備バッファ要求数(高優先要求数)を割当制御部520に通知する。中優先パケット監視部512は、中優先パケットの合計滞留量について、上記判定を行い、中優先パケットに関する予備バッファ要求数(中優先要求数)を割当制御部520に通知する。低優先パケット監視部513は、低優先パケットの合計滞留量について、上記判定を行い、低優先パケットに関する予備バッファ要求数(低優先要求数)を割当制御部520に通知する。
【0073】
各優先度の監視部510は、例えば、これらの判定を、所定の時間間隔で、同期して行い、割当制御部520に通知する。
【0074】
割当制御部520は、それぞれの監視部510から要求数を入力されると、入力された要求数に基づき、優先度順に、各予備バッファを、予備バッファの総数を限度に、特定の優先度に割り当てる割当処理(調停処理)を実行する。
【0075】
すなわち、割当制御部520は、まず、高優先要求数に従って、各予備バッファを高優先パケット用に割り当て、残りの予備バッファを、中優先要求数に従って中優先パケット用に割り当て、さらに残りの予備バッファを、低優先要求数に従って低優先パケット用に割り当てる。すなわち、高優先パケット用>中優先パケット用>低優先パケット用の関係となるよう割り当ての優先制御を行う。
【0076】
割当は、例えば、予め記憶された割当テーブル720に従って、行われる。例えば、予備バッファの中で、第一B410、第二B420、第三B430の順に優先的に割り当てる場合の、判定条件(各優先度の要求数の組み合わせ)毎の、各予備バッファの割り当てを記憶した割当テーブル720の一例を、
図6に示す。
【0077】
本図に示すように、割当テーブル720は、各要求数の組み合わせを条件として一意に識別する条件No.721毎に、当該条件の各優先度の要求数722と、当該条件における、各予備バッファの割当723が登録される。
【0078】
具体的には、予備バッファ部400の各予備バッファ(第一B410、第二B420、第三B430)は、それぞれ、以下の条件を満たす場合、以下の優先度のパケット用に割り当てられる。
第一B410:
・高優先パケット用に割り当てられる条件
条件No.1~9 高優先要求数が1以上
・中優先パケット用に割り当てられる条件
条件No.10~14 高優先要求数が0、かつ中優先要求数が1以上
・低優先パケット用に割り当てられる条件
条件No.15~17 高優先要求数および中優先要求数が0、かつ、低優先要求数が1以上
第二B420:
・高優先パケット用に割り当てられる条件
条件No.1~4 高優先要求数が2以上
・中優先パケット用に割り当てられる条件
条件No.5~6 高優先要求数が1、かつ、中優先要求数が1以上、または、
条件No.10~11 高優先要求数が0、かつ、中優先要求数が2以上
・低優先パケット用に割り当てられる条件
条件No.7~8 高優先要求数が1、かつ、中優先要求数が0、かつ、低優先要求数が1以上、
条件No.12~13 高優先要求数が0、かつ、中優先要求数が1、かつ、低優要求数が1以上、または、
条件No.15~16 高優先要求数が0、かつ中優先要求数が0、かつ低優先要求数が2以上
第三B430:
・高優先パケット用に割り当てられる条件
条件No.1 高優先要求数が3
・中優先パケット用に割り当てられる条件
条件No.2 高優先要求数が2、かつ、中優先要求数が1以上、
条件No.5 高優先要求数が1、かつ、中優先要求数が2以上、または、
条件No.10 高優先要求数が0、かつ、中優先要求数が3
・低優先パケット用に割り当てられる条件
条件No.3 高優先要求数が2、かつ、中優先要求数が0、かつ、低優先要求数が1以上、
条件No.6 高優先要求数が1、かつ、中優先要求数が1、かつ、低優先要求数が1以上、
条件No.7 高優先要求数が1、かつ、中優先要求数が0、かつ、低優要求数が2以上、
条件No.11 高優先要求数が0、かつ、中優先要求数が2、かつ、低優先要求数が1以上、
条件No.12 高優先要求数が0、かつ、中優先要求数が1、かつ、低優先要求数が2以上、または、
条件No.15 高優先要求数が0、かつ、中優先要求数が0、かつ、低優先要求数が3以上
【0079】
割当制御部520は、各予備バッファを、いずれの優先度のパケットに割り当てるかを決定したら、それに従って、入力セレクタ530(531、532、533)、出力セレクタ540(541、542、543)およびセレクタ550を制御する。
【0080】
なお、例えば、各閾値(第一閾値、第二閾値、第三閾値、第四閾値)、判定基準テーブル710および割当テーブル720は、通信装置100が備える記憶装置に記憶される。
【0081】
ここで、割当制御部520は、上述のように、割当テーブル720に従って、第一B410、第二B420、第三B430の順に割り当てる。割当テーブル720は、割当数が複数の場合、先に割り当てた予備バッファの入力に接続される(前段の)入力セレクタ530にその出力が接続されている予備バッファを順に割り当てられるよう、作成される。具体的には、例えば、割当数が2の場合、まず、第一B410および第二B420、または、第二B420および第三B430、である。
【0082】
割当制御部520は、各優先度について、要求数の予備バッファを割り当てられない場合、すなわち、割り当てる予備バッファ数が要求数未満の場合、それぞれの監視部510に通知する。監視部510は、その通知を受け、優先度別に、廃棄信号線640を介して廃棄制御信号をパケット書込部210に通知する。なお、割当制御の結果、要求数の予備バッファが割り当てられた場合は、廃棄制御停止信号を、廃棄信号線640を介してパケット書込部210に通知する。
【0083】
[割当制御]
割当制御部520による各入力セレクタ530、出力セレクタ540、およびセレクタ550の制御の詳細を説明する。ここでは、説明のため、例えば、1つの予備バッファの前段の入力セレクタ530に、出力が接続されている他の予備バッファを、上流の予備バッファと呼ぶ。例えば、
図3の例では、第一B410の上流の予備バッファは、第二B420である。また、第二B420の上流の予備バッファは、第三B430である。また、
図3の例では、第一B410が、最下流の予備バッファであり、第三B430が、最上流の予備バッファである。
【0084】
図3に示すように、最上流の予備バッファの前段の入力セレクタ530には、第一信号線610から各優先度のパケットが入力される。当該入力セレクタ530は、制御信号に従って、その中から1つを選択する。最上流以外の予備バッファの前段の入力セレクタ530には、第一信号線610からの各優先度のパケットと、その予備バッファの上流の予備バッファの出力とが入力される。当該入力セレクタ530は、制御信号に従って、その中から1つを選択する。
【0085】
割当制御部520は、同じ優先度用に割り当てられた1以上の予備バッファの中で、最上流予備バッファの入力セレクタ530において、第一信号線610の当該優先度用の信号線を当該最上流予備バッファの入力に接続する。すなわち、入力セレクタ530を、第一信号線610の当該優先度の信号線からのパケットを選択して出力するよう制御する。最上流予備バッファより下流側の予備バッファの入力セレクタ530において、その入力に1つ上流の予備バッファの出力を接続する。
【0086】
また、
図3に示すように、各出力セレクタ540には、第一信号線610からその出力セレクタが接続されるメインバッファの優先度のパケットが入力される。さらに、各予備バッファの出力が入力される。
【0087】
割当制御部520は、ある優先度のメインバッファに接続する出力セレクタ540において、当該優先度用に割り当てられた予備バッファの中で最下流の予備バッファの出力を当該メインバッファの入力に接続する。言い換えれば、各出力セレクタ540は、その出力セレクタ540の出力先のメインバッファと同じ優先度に割り当てられた最も下流の予備バッファから出力されたパケットを、当該出力先のメインバッファに出力するよう制御される。なお、当該優先度に割り当てられた予備バッファがない場合、第一信号線610を、当該メインバッファの入力に接続する。
【0088】
また、割当制御部520は、セレクタ550を、各優先度に割り当てられた予備バッファのデータ滞留量が、当該優先度のパケットを監視する監視部510に入力されるよう制御する。
【0089】
ここで、具体的な制御例を説明する。
【0090】
例えば、第一B410が高優先パケット用に割り当てられた場合の、予備バッファ部400内での高優先パケットの流れと、予備滞留量情報の流れを、
図7に、それぞれ、太線、太一点鎖線でそれぞれ示す。
【0091】
この場合、割当制御部520は、高優先出力セレクタ541と、第一入力セレクタ531と、セレクタ550に制御信号を送信し、動作を制御する。
【0092】
本図に示すように、割当制御部520は、高優先出力セレクタ541を、第一B410から出力されたパケット(読出しデータ)(S411)が、メインバッファ部300(高優先MB310)に出力されるよう動作させる。なお、他の出力セレクタ540(中優先出力セレクタ542および低優先出力セレクタ543)には、第一B410から出力されたパケットを出力しないよう指示する信号を送信する。
【0093】
また、割当制御部520は、第一入力セレクタ531を、第一信号線610のうち、高優先パケットが送信される第一高優先信号線611からのパケット(S412)が、第一B410へ入力されるよう動作させる。なお、他の入力セレクタ530(第二入力セレクタ532および第三入力セレクタ533)には、第一高優先信号線611からのパケットが入力されないよう指示する信号を送信する。
【0094】
また、割当制御部520は、セレクタ550を、第一B410からの予備滞留量(S413)が、高優先パケット監視部511に入力されるよう動作させる。このとき、セレクタ550を、第一B410からの予備滞留量が、他の監視部510(中優先パケット監視部512および低優先パケット監視部513)に入力されないよう動作させるとともに、他の予備バッファ(第二B420および第三B430)からの予備滞留量が、高優先パケット監視部511に入力されないよう動作させる。
【0095】
このように、割当制御部520が、高優先出力セレクタ541と第一入力セレクタ531とを制御することにより、第一B410を、高優先パケット用のバッファリソースとして使用したデータ転送動作が可能となる。また、第一B410のデータ滞留量を、高優先パケットの予備滞留量として監視部510に監視させることができる。
【0096】
例えば、第一B410および第二B420が高優先パケット用に割り当てられた場合の、予備バッファ部400内でのパケットの流れと、データ滞留量の流れを、
図8に太線、太一点鎖線でそれぞれ示す。
【0097】
割当制御部520は、高優先出力セレクタ541と、第一入力セレクタ531と、第二入力セレクタ532と、セレクタ550とに制御信号を送信する。
【0098】
割当制御部520は、高優先出力セレクタ541を、第一B410から出力されたパケット(読出しデータ)(S411)が、メインバッファ部300に出力されるよう動作させる。なお、他の出力セレクタ540(中優先出力セレクタ542および低優先出力セレクタ543)には、第一B410から出力されたパケットを出力しないよう指示する信号を送信する。
【0099】
また、割当制御部520は、第一入力セレクタ531を、第二B420の出力パケット(S414)が、第一B510へ入力されるよう動作させる。さらに、第二入力セレクタ532を、第一高優先信号線611からのパケット(S412)が、第二B420へ入力されるよう動作させる。なお、他の入力セレクタ530(第三入力セレクタ533)には、第一高優先信号線611からのパケットが入力されないよう指示する信号を送信する。
【0100】
また、セレクタ550を、第一B410および第二B420からの予備滞留量(S413、S415)が、高優先パケット監視部511に入力されるよう動作させる。このとき、セレクタ550を、第一B410および第二B420からの予備滞留量が、他の監視部510(中優先パケット監視部512および低優先パケット監視部513)に入力されないよう動作させるとともに、他の予備バッファ(第三B430)からの予備滞留量が、高優先パケット監視部511に入力されないよう動作させる。
【0101】
このように、割当制御部520が、高優先出力セレクタ541と、第一入力セレクタ531と、第二入力セレクタ532とを制御することにより、第一B410および第二B420を、高優先パケット用のバッファリソースとして使用したデータ転送動作が可能となる。また、第一B410および第二B420の予備滞留量を、高優先パケットのデータ滞留量として監視部510に監視させることができる。
【0102】
図9は、バッファ部200(メインバッファ部300と予備バッファ部400)における各優先度のパケットの転送経路の一例である。ここでは、予備バッファ部400の第一B410および第二B420が、高優先パケットに割り当てられ、第三B430が中優先パケットに割り当てられた時の、第一信号線610(611、612、613)を介して入力されるパケットが、メインバッファ部300から出力されるまでに経由するバッファを示す。
【0103】
高優先パケット用のバッファは、メインバッファ部300の高優先MB310と、予備バッファ部400の、第一B410および第二B420である。これらが、1つのFIFOメモリとして機能する。具体的には、第一高優先信号線611から入力されるパケットは、まず、第二B420に格納される。そして、第一B410と高優先MB310を経由して出力される。
【0104】
中優先パケット用のバッファは、メインバッファ部300の中優先MB320と、予備バッファ部400の第三B430である。これらが、1つのFIFOメモリとして機能する。具体的には、第一中優先信号線612から入力されるパケットは、まず、第三B430に格納される。そして、中優先MB320を経由して出力される。
【0105】
低優先パケット用のバッファは、メインバッファ部300の低優先MB330のみである。第一低優先信号線613から入力されるパケットは、低優先MB330のみを経由して出力される。
【0106】
以上説明したように、本実施形態の通信装置100は、第一の実施形態と同様の構成を備える。したがって、第一の実施形態と同様に、データ滞留量に応じて、高い優先度のものから順に、複数のFIFOメモリで構成される予備バッファを、FIFOメモリ単位で割り当てて、使用する。すなわち、同じ予備バッファを必要に応じて各優先度でFIFOメモリ単位で使い分ける。したがって、優先度別にそれぞれ専用メモリをバッファとして設ける方式に比べ、少ないメモリで、各優先度のパケットを一時的に格納する領域を、優先度の高いものから順に確保できる。また、割り当ては、FIFOメモリ単位で行われるため、各優先度間で単一のメモリを共有する方式に比べ、メモリ管理とアクセス制御が簡易である。
【0107】
このため、本実施形態によれば、優先度の高いパケットを優先的に転送するQoS制御を行う通信装置100において、簡易な構成で複雑な制御を行うことなく、メモリの使用効率の向上と、優先度の高いパケットの廃棄の抑制とを両立できる。
【0108】
<変形例1>
なお、上記各実施形態では、パケットの優先度が3種類(高優先、中優先、低優先)であり、予備バッファ部400の、予備バッファ数が3個の場合を例にあげて説明した。しかし、優先度の種類の数や、予備バッファ数は、これに限定されない。いずれも、複数であればよい。
【0109】
例えば、優先度の種類の数を変化させる場合は、優先度毎に設けられる、メインバッファ部300の専用バッファ、予備バッファ部400の出力セレクタ540および監視部510の数を、優先度の種類の数に合わせて変化させる。さらに、割当テーブル720の条件も優先度の種類数に応じて変化させる。
【0110】
例えば、予備バッファ部400内の予備バッファ数を変化させる場合は、予備バッファ毎に設けられる入力セレクタ530の数、出力セレクタ540の入力データ数を予備バッファ数に合わせて変化させる。また、判定基準テーブル710内の閾値の数も、予備バッファ数に応じて変化させる。さらに、割当テーブル720の条件の数も、それに伴い、変化させる。
【0111】
<変形例2>
上記各実施形態では、割当制御部520は、予備バッファ割当後、各予備バッファの接続関係に従って、入力セレクタ530、出力セレクタ540およびセレクタ550に制御信号を送信しているが、これに限定されない。例えば、割当テーブル720の条件毎に、各セレクタに送信する制御信号を、予め記憶しておいてもよい。
【0112】
<変形例3>
また、上記各実施形態では、各優先度の監視部510は、要求数の判定を、所定の時間間隔で、同期して行っているが、これに限定されない。例えば、判定は、同期していなくてもよい。各監視部510が、それぞれのタイミングで判定を行い、割当制御部520に通知してもよい。この場合、割当制御部520は、例えば、所定の時間間隔で割当制御を実行してもよい。そして、割当制御を実行する際、各監視部510から通知された最新の要求数を用いる。
【0113】
また、割当制御部520は、例えば、予め定めたイベントに応じて実行してもよい。また、ユーザからの指示に従って、実行するよう構成してもよい。
【0114】
例えば、パケット書込みで閾値を超えたタイミング、あるいは、パケット読み出しで閾値を下回ったタイミングで、監視部510がこれらの判定を行い、割当制御部520に通知してもよい。
【0115】
<変形例4>
また、上記各実施形態ではパケットを外部装置に転送する送信部150において、メインバッファ部300と予備バッファ部400とを用いてQoS制御を実行している。しかし、これに限定されない。例えば、受信部130等、通信装置100内の、他の機能部において、これらのバッファ部を用意し、QoS制御を実行してもよい。
【0116】
<変形例5>
また、上記各実施形態では、通信装置100の例としてレイヤ2スイッチを挙げて説明した。しかし、通信装置100は、これに限定されない。例えば、レイヤ3スイッチ、ルータ、レイヤ4スイッチ等、パケット格納バッファを使用したQoS制御を実施する他の装置であってもよい。
【0117】
<変形例6>
また、上記各実施形態では、予備バッファの割当は、割当テーブル720に従って行われる。そして、割当テーブル720では、最も下流の予備バッファから高優先に割り当て、同じ優先度を割り当てる場合も、連続した予備バッファに割り当てている。しかし、これに限定されない。例えば、パケットの転送順が逆転しても問題ないサービスの場合、割り当て順は固定しなくてもよい。また、同じ優先度を割り当てる予備バッファも連続している必要はない。
【0118】
[ハードウェア構成]
上記の監視部510および割当制御部520は、例えば、
図10に示す、制御装置900により実現されてもよい。制御装置900は、内部バスにより相互に接続される、CPU(Central Processing Unit)991と、主記憶装置(メモリ)992と、補助記憶装置993と、I/F994と、を備える。
【0119】
CPU991は、例えば、補助記憶装置993に記憶されたプログラムを主記憶装置992にロードして実行することにより、上記各機能を実現するとともに、通信装置100(または、100a)の全体を統括的に制御する。なお、CPU991の代わりにMPU(Micro Processing Unit)等の1以上のプロセッサを用いてもよい。
【0120】
主記憶装置992は、RAM(Random Access Memory)等のメモリである。主記憶装置992は、監視部510および割当制御部520それぞれが実行するプログラム等を、CPU991が処理する際のワーク領域である。
【0121】
補助記憶装置993は、例えば、ROM(Read Only Memory)、HDD(Hard Disk Drive)、SSD(Solid State Drive)等である。補助記憶装置993は、監視部510および割当制御部520それぞれが実行する各種プログラムを記憶する。なお、補助記憶装置993は、フレキシブルディスク、ハードディスク、光ディスク、CD-ROM、CD-R、磁気テープ、不揮発性メモリカード、DVD等の記憶媒体を備えてもよい。
【0122】
なお、補助記憶装置993に記憶されたプログラムは、非一時的なコンピュータ可読記録媒体(non-transitory computer-readable storage medium)に記録されたプログラム製品として提供することができる。補助記憶装置993は、非一時的なコンピュータ可読記録媒体に記録された各種プログラムを中長期的に記憶することに利用することが可能である。
【0123】
I/F994は、制御信号、通知等の各種データの入出力のインタフェースである。また、拡張インタフェースとして、表示装置、入力装置等が接続されてもよい。表示装置は、例えば、液晶モニタ等である。入力装置は、例えば、キーボードやマウス等のユーザ操作を受け付ける装置である。
【0124】
監視部510および割当制御部520それぞれの上記各機能は、それぞれ、補助記憶装置993に記憶されたプログラムを、CPU991が、主記憶装置992にロードして実行することにより実現される。
【0125】
また、各閾値、各テーブル等は、例えば、補助記憶装置993に記憶される。
【0126】
なお、監視部510および割当制御部520それぞれのハードウェア構成は、これに限定されない。図示しないハードウェアを含んでもよい。
【0127】
また、本実施形態の監視部510および割当制御部520それぞれの上記各機能を実現するプログラムは、コンピュータが読み取り可能な記憶媒体に記録することができる。記憶媒体は、半導体メモリ、ハードディスク、磁気記録媒体、光記録媒体等の非トランジェント(non-transient)なものとすることができる。本発明は、コンピュータプログラム製品として具現することも可能である。
【0128】
また、監視部510および割当制御部520それぞれの各機能は、例えば、各処理専用の集積回路(IC)、特定用途向け集積回路(ASIC)、システムオンチップ(SOC)、フィールドプログラマブルゲートアレイ(FPGA)などで実装されてもよい。
【0129】
なお、上述の説明で用いた処理の流れでは、複数の工程(処理)が順番に記載されているが、各工程の実行順序は、その記載の順番に制限されない。例えば、各処理を並行して実行する等、図示される工程の順番を内容的に支障のない範囲で変更することができる。
【0130】
以上、本発明の各実施形態および変形例を説明したが、本発明は、上記した実施形態に限定されるものではなく、当業者が理解し得る様々な変更を行うことができる。そして、各実施形態および変形例は、適宜他の実施の形態と組み合わせることができる。また、例えば、各図面に示したネットワーク構成、各要素の構成は、本発明の理解を助けるための一例であり、これらの図面に示した構成に限定されるものではない。
【0131】
最後に、本発明の好ましい形態を要約する。上記の実施形態の一部または全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)
通信装置は、
複数種類の優先度毎に設けられたメインバッファを備えるメインバッファ部と、
複数の予備バッファを備える予備バッファ部と、
前記メインバッファと前記予備バッファのデータ滞留量を、前記優先度毎に監視する監視部と、
高い前記優先度から順に、前記優先度毎の前記データ滞留量に応じて、複数の前記予備バッファを当該優先度に割り当て、割り当てた前記予備バッファに、当該優先度のパケットが格納されるよう制御する割当制御部と、を備える。
(付記2)
付記1に記載の通信装置において、
前記監視部は、前記優先度毎に、当該優先度用に設けられた前記メインバッファの前記データ滞留量と当該優先度が割り当てられた前記予備バッファの前記データ滞留量との合計である合計滞留量を監視し、前記合計滞留量に基づいて、必要な前記予備バッファの数である要求数を決定して前記割当制御部に通知し、
前記割当制御部は、高い前記優先度から順に、前記要求数の前記予備バッファを当該優先度に割り当てることが望ましい。
(付記3)
付記2に記載の通信装置において、
前記監視部は、前記合計滞留量に応じた要求数を記憶した判定基準テーブルに従って、前記要求数を決定することが望ましい。
(付記4)
付記2または3に記載の通信装置において、
前記割当制御部は、前記優先度毎の前記要求数に応じて割り当てる予備バッファを記憶した割当テーブルに従って、前記予備バッファを各前記優先度に割り当てることが望ましい。
(付記5)
付記1から4のいずれかに記載の通信装置において、
複数の前記予備バッファの前段に、それぞれ入力セレクタを備え、
複数の前記メインバッファの前段に、それぞれ出力セレクタを備え、
前記割当制御部は、各前記入力セレクタおよび各前記出力セレクタに制御信号を送信することにより、前記パケットの格納を制御することが望ましい。
(付記6)
付記1から5のいずれかに記載の通信装置において、
複数の前記予備バッファと前記監視部との間にセレクタを備え、
前記割当制御部は、当該セレクタに制御信号を送信することにより、複数の前記予備バッファから、前記優先度毎の前記データ滞留量を前記監視部に取得させることが望ましい。
(付記7)
通信方法は、
複数種類の優先度毎に設けられたメインバッファを備えるメインバッファ部と、
複数の予備バッファを備える予備バッファ部と、を備える通信装置における通信方法であって、
前記メインバッファと前記予備バッファのデータ滞留量を、前記優先度毎に監視し、
高い前記優先度から順に、前記優先度毎の前記データ滞留量に応じて、複数の前記予備バッファを当該優先度に割り当て、
割り当てた前記予備バッファに、当該優先度のパケットが格納されるよう制御する。
(付記8)
プログラムは、
複数種類の優先度毎に設けられたメインバッファを備えるメインバッファ部と、複数の予備バッファを備える予備バッファ部と、を備える通信装置のコンピュータに、
前記メインバッファと前記予備バッファのデータ滞留量を、前記優先度毎に監視する手順と、
高い前記優先度から順に、前記優先度毎の前記データ滞留量に応じて、複数の前記予備バッファを当該優先度に割り当てる手順と、
割り当てた前記予備バッファに、当該優先度のパケットが格納されるよう制御する手順と、を実行させる。
なお、付記7、8の形態は、付記1と同様に、付記2-6の形態に展開することが可能である。
【0132】
なお、上記の特許文献等の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし変形例の変更・調整が可能である。また、本発明の開示の枠内において種々の開示要素(各請求項の各要素、各実施形態ないし変形例の各要素、各図面の各要素等を含む)の多様な組み合わせ、ないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
【符号の説明】
【0133】
100:通信装置、100a:通信装置、120:入力ポート、130:受信部、140:スイッチ部、150:送信部、150a:送信部、150b:送信部、170:出力ポート、170a:出力ポート、170b:出力ポート、
200:バッファ部、200a:バッファ部、210:パケット書込部、220:パケット読出部、
300:メインバッファ部、300a:メインバッファ部、310:高優先メインバッファ(高優先MB)、310a:高優先メインバッファ(高優先MB)、320:中優先メインバッファ(中優先MB)、320a:中優先メインバッファ(中優先MB)、330:低優先メインバッファ(低優先MB)、330a:低優先メインバッファ(低優先MB)、
400:予備バッファ部、400a:予備バッファ部、410:第一予備バッファ(第一B)、410a:第一予備バッファ(第一B)、420:第二予備バッファ(第二B)、420a:第二予備バッファ(第二B)、430:第三予備バッファ(第三B)、430a:第三予備バッファ(第三B)、
500a:制御部、510:監視部、510a:監視部、511:高優先パケット監視部、512:中優先パケット監視部、513:低優先パケット監視部、520:割当制御部、520a:割当制御部、521:制御線、530:入力セレクタ、531:第一入力セレクタ、532:第二入力セレクタ、533:第三入力セレクタ、540:出力セレクタ、541:高優先出力セレクタ、542:中優先出力セレクタ、543:低優先出力セレクタ、550:セレクタ、560:信号線、
610:優先度別データ信号線(第一信号線)、611:第一高優先信号線、612:第一中優先信号線、613:第一低優先信号線、620:優先度別データ信号線(第二信号線)、621:第二高優先信号線、622:第二中優先信号線、623:第二低優先信号線、630:優先度別データ信号線(第三信号線)、631:第三高優先信号線、632:第三中優先度信号線、633:第三低優先信号線、640:廃棄信号線、650:優先度別データ信号線、
710:判定基準テーブル、711:判定基準、712:予備バッファ要求数、720:割当テーブル、721:条件No.、722:要求数、723:割当、
900:制御装置、991:CPU、992:主記憶装置、993:補助記憶装置、994:I/F、
S411:高優先パケット、S412:高優先パケット、S413:予備滞留量、S414:高優先パケット、S415:予備滞留量
【要約】
【課題】QoS制御を行う通信装置において、簡易な構成で複雑な制御を行うことなく、メモリの使用効率の向上と、優先度の高いパケットの廃棄の抑制とを両立させる。
【解決手段】通信装置は、複数種類の優先度毎に設けられたメインバッファを備えるメインバッファ部と、複数の予備バッファを備える予備バッファ部と、前記メインバッファと前記予備バッファのデータ滞留量を、前記優先度毎に監視する監視部と、高い前記優先度から順に、前記優先度毎の前記データ滞留量に応じて、複数の前記予備バッファを当該優先度に割り当て、割り当てた前記予備バッファに、当該優先度のパケットが格納されるよう制御する割当制御部と、を備える。
【選択図】
図1