(57)【要約】【課題】全てのキューの容量値を予め大きく設定しておかなくても、所定条件の成立により特定のキューの容量値を増やすことのできる中継装置を提供する。【解決手段】中継装置１は、ポートＰ０〜Ｐ７と、ポートＰ０〜Ｐ７毎に設けられ、対応するポートから送信される予定のフレームが格納されるキューＱ０，Ｑ１と、各キューＱ０，Ｑ１の容量を制御する容量制御部９と、を備える。そして、各キューＱ０，Ｑ１に割り当てられる容量値の配分パターン（以下、容量配分パターン）として、初期状態の容量配分パターンであるプライマリパターンと、プライマリパターンとは異なるセカンダリパターンとがある。容量制御部９は、所定の切替条件が成立した場合に、容量配分パターンをプライマリパターンからセカンダリパターンに切り替える。【選択図】図１
2020156038.tif 000002
【特許請求の範囲】
【請求項１】
受信したフレームを転送する中継装置であって、
フレームを送受信するための複数のポート（Ｐ０〜Ｐ７）と、
前記各ポートに対して少なくとも１つずつ設けられ、対応するポートから送信される予定のフレームが格納されるキューであって、容量が可変のキュー（Ｑ０，Ｑ１）と、
前記各キューの容量を制御するように構成された容量制御部（９）と、を備え、
前記各キューに割り当てられる容量値の配分パターンである容量配分パターンとして、初期状態の容量配分パターンである第１パターンと、当該第１パターンとは異なる第２パターンとがあり、
前記容量制御部は、所定の切替条件が成立した場合に、前記容量配分パターンを前記第１パターンから前記第２パターンに切り替えるように構成されている、
中継装置。
【請求項２】
請求項１に記載の中継装置であって、
前記第１パターンと前記第２パターンとにおいて、前記各キューのうちの少なくとも１つについては、前記第１パターンにおける容量値よりも前記第２パターンにおける容量値の方が大きい、
中継装置。
【請求項３】
請求項１又は請求項２に記載の中継装置であって、
前記容量制御部は、前記容量配分パターンを前記第２パターンに切り替えてから、所定時間が経過すると、前記容量配分パターンを前記第１パターンに切り替えるように構成されている、
中継装置。
【請求項４】
請求項１ないし請求項３の何れか１項に記載の中継装置であって、
前記容量制御部は、前記容量配分パターンを切り替える場合において、前記キューのうち、使用容量が、切り替え後の前記容量配分パターンにおける容量値である切替後容量値を超えているキューについては、当該キューに格納されているフレームのうち、前記切替後容量値を超える分のフレームを破棄するように構成されている、
中継装置。
【請求項５】
請求項１ないし請求項３の何れか１項に記載の中継装置であって、
前記容量制御部は、前記容量配分パターンを切り替える場合に、前記キューのうち、使用容量が、切り替え後の前記容量配分パターンにおける容量値である切替後容量値を超えているキューである超過キューについて、当該超過キューに格納されたフレームの送信により当該超過キューの使用容量が前記切替後容量値以下となるまで、下記の容量変更処理を所定時間毎に実施するように構成され、
前記容量制御部は、前記容量変更処理として、
前記超過キューの容量値を当該超過キューの現在の使用容量に設定すると共に、当該設定による当該超過キューの容量値の減少分を、他のキューのうち、切り替え前の前記容量配分パターンにおける容量値である切替前容量値よりも前記切替後容量値の方が大きい少なくとも１つのキューの容量値として割り当てる処理、を行うように構成されている、
中継装置。
【請求項６】
請求項１ないし請求項５の何れか１項に記載の中継装置であって、
前記容量制御部は、受信されたフレームに含まれる特定の情報に基づいて、前記切替条件が成立したか否かを判断するように構成されている、
中継装置。
【請求項７】
請求項１ないし請求項６の何れか１項に記載の中継装置であって、
前記切替条件が複数あり、
前記複数の切替条件毎に、異なる前記第２パターンがあり、
前記容量制御部は、前記複数の切替条件のうちの何れかが成立したと判断すると、前記容量配分パターンを、前記第１パターンから、前記成立したと判断した切替条件に対応する第２パターンに切り替えるように構成されている、
中継装置。
【請求項８】
請求項１ないし請求項７の何れか１項に記載の中継装置であって、
前記容量制御部は、前記切替条件が成立した場合に受信されたフレームに含まれている情報に基づいて、前記第２パターンでの前記各キューの容量値を変更するように構成されている、
中継装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、中継装置に関する。
【背景技術】
【０００２】
ネットワークを構成する中継装置として、例えばイーサネットのスイッチがある。尚、イーサネットは、登録商標である。スイッチは、複数のポートの何れかから受信されたフレームを、複数のポートのうち、そのフレームの宛先の装置がつながっているポートから送信することにより、フレームの中継を行う。
【０００３】
また例えば、下記の特許文献１には、複数の送信回路毎に、その送信回路から送信する予定のパケットが蓄積されるパケット蓄積ＦＩＦＯを備え、このパケット蓄積ＦＩＦＯに蓄積されたパケットを送信回路から送信するように構成された中継装置、が記載されている。そして、イーサネットのスイッチにおいても、複数の各ポートに対して、送信予定のフレームが格納されるキューが設けられ、各キューに格納されたフレームが、当該キューに対応するポートから送信される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００１−３２６６８８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
複数の各ポートに対して送信予定のフレームが格納されるキューを備える中継装置に関して、発明者の詳細な検討の結果、下記の課題が見出された。
複数のポートから特定のポートにフレームが集中するなどの原因により、特定のポートにつながる通信経路の帯域が一時的に増加した場合、即ち、バーストトラフィックが発生した場合には、その特定のポートに対応するキューに、送信待ちの複数のフレームが蓄積される。そして、キューがオーバーフローすると、フレームをキューに蓄積することができなくなりフレームロスに至る。ここで言うフレームロスとは、送信予定のフレーム（即ち、中継対象フレーム）が失われてしまうことである。このようなバーストトラフィックによるフレームロスの抑制性能（以下、バースト耐性）を向上させるためには、全てのキューの容量を予め十分大きく設定しておくことが考えられる。しかし、バーストトラフィックが発生しない通常時においては、キューの大きな容量が無駄になる。
【０００６】
そこで、本開示の１つの局面は、全てのキューの容量値を予め大きく設定しておかなくても、所定の条件の成立により特定のキューの容量値を増やすことのできる中継装置を提供する。
【課題を解決するための手段】
【０００７】
本開示の１つの態様による中継装置は、受信したフレームを転送する中継装置であり、フレームを送受信するための複数のポート（Ｐ０〜Ｐ７）と、各ポートに対して少なくとも１つずつ設けられ、対応するポートから送信される予定のフレームが格納されるキューであって、容量が可変のキュー（Ｑ０，Ｑ１）と、各キューの容量を制御する容量制御部（９）と、を備える。
【０００８】
更に、この中継装置においては、各キューに割り当てられる容量値の配分パターンである容量配分パターンとして、初期状態の容量配分パターンである第１パターンと、第１パターンとは異なる第２パターンとがある。そして、容量制御部は、所定の切替条件が成立した場合に、容量配分パターンを第１パターンから第２パターンに切り替える。
【０００９】
このような構成によれば、全てのキューの容量値を予め大きく設定しておかなくても、切替条件の成立に伴う第２パターンへの切り替えにより、少なくとも１つの、特定のキューの容量値が増えるようにすることができる。
【００１０】
よって、ある特定のポートにつながる通信経路でバーストトラフィックが発生する可能性がある条件が成立した場合に、上記特定のポートに対応するキューの容量値が増えるようにすることができる。このため、全てのキューの容量値を予め大きく設定しておかなくても、バースト耐性を高めることができる。
【図面の簡単な説明】
【００１１】
【図１】第１実施形態の中継装置の構成を示すブロック図である。
【図２】プライマリパターンにおける各キューの容量値の一例を表す説明図である。
【図３】セカンダリパターンにおける各キューの容量値の一例を表す説明図である。
【図４】容量制御処理を表すフローチャートである。
【図５】セカンダリ切替処理を表すフローチャートである。
【図６】第２実施形態のプライマリ切替処理を表すフローチャートである。
【図７】第２実施形態の作用例を表す第１の説明図である。
【図８】第２実施形態の作用例を表す第２の説明図である。
【発明を実施するための形態】
【００１２】
以下、図面を参照しながら、本開示の実施形態を説明する。
［１．第１実施形態］
［１−１．構成］
図１に示す第１実施形態の中継装置１は、例えば、車両に搭載されるＥＣＵ２に備えられる。そして、中継装置１は、車両に搭載された他のＥＣＵ間の通信を中継する。ＥＣＵは、「Electronic Control Unit」の略であり、即ち、電子制御装置の略である。また、ＥＣＵ２には、当該ＥＣＵ２の動作を司るための各処理を行う処理部として、マイクロコンピュータ（以下、マイコン）３も備えられている。
【００１３】
中継装置１は、フレームを送受信するための複数のポートＰ０〜Ｐ７を備える。以下では、各ポートＰ０〜Ｐ７において、フレームを受信するためのハードウェア（例えば、受信回路）の部分を、受信ポートＰ０Ｒ〜Ｐ７Ｒと言い、フレームを送信するためのハードウェア（例えば、送信回路）の部分を、送信ポートＰ０Ｔ〜Ｐ７Ｔと言う。そして、受信ポートＰ０Ｒ〜Ｐ７Ｒと送信ポートＰ０Ｔ〜Ｐ７Ｔを、区別せずに総称する場合には、ポートＰ０〜Ｐ７と言う。尚、ポートの数は８以外であっても良い。
【００１４】
ポートＰ０〜Ｐ７の各々には、ＥＣＵ２とは別の複数のＥＣＵの何れかが、当該中継装置１と同じ構成を有する中継装置を介して、あるいは、中継装置を介さずに、接続される。
【００１５】
中継装置１は、ポートＰ０〜Ｐ７の何れかで受信されたフレーム（即ち、受信フレーム）を、ポートＰ０〜Ｐ７のうち、当該フレームの宛先のＥＣＵが接続されているポートから送信する。本実施形態において、フレームは、イーサネットの規格に基づくフレーム（即ち、イーサネットフレーム）である。
【００１６】
中継装置１は、更に、受信ポートＰ０Ｒ〜Ｐ７Ｒに接続された入力処理部５と、送信ポートＰ０Ｔ〜Ｐ７Ｔの各々に対応するバッファ部Ｂ０〜Ｂ７と、を備える。そして、バッファ部Ｂ０〜Ｂ７の各々は、第１のキューＱ０と、第２のキューＱ１と、スケジューラ７と、を備える。
【００１７】
キューＱ０，Ｑ１の各々には、当該キューＱ０，Ｑ１に対応するポートから送信される予定のフレーム（即ち、送信予定フレーム）であって、詳しくは、当該キューＱ０，Ｑ１が備えられたバッファ部に対応する送信ポートから送信される予定のフレームが、格納される。また、中継装置１によって中継されるフレームには、少なくとも２段階の優先度が設定されている。そして、例えば、優先度が低い方（即ち、低優先度）のフレームは、第１のキューＱ０に格納され、優先度が高い方（即ち、高優先度）のフレームは、第２のキューＱ１に格納される。
【００１８】
受信されたフレームの転送先ポートの決定、即ち、どのポートＰ０〜Ｐ７から送信するかの決定と、転送先のポートに対応するキューＱ０，Ｑ１の何れかへのフレームの格納は、入力処理部５によって行われる。そして、入力処理部５は、各キューＱ０，Ｑ１の容量を制御する機能部分として、容量制御部９を備える。また、各キューＱ０，Ｑ１に格納されたフレームのポートからの送信は、当該キューに対応するスケジューラ７によって行われる。尚、各キューＱ０，Ｑ１とは、ポートＰ０〜Ｐ７毎のキューＱ０，Ｑ１の各々を意味する。
【００１９】
入力処理部５とスケジューラ７は、例えば、デジタル回路又はアナログ回路、あるいはこれらの組合せによって実現されて良い。また、入力処理部５とスケジューラ７は、マイコンを用いて実現されても良い。この場合、入力処理部５とスケジューラ７の機能は、ＣＰＵが非遷移的実体的記録媒体に格納されたプログラムを実行することにより実現されて良い。
【００２０】
［１−２．キューに関連する事項の説明］
各キューＱ０，Ｑ１は、容量が可変である。そして、中継装置１には、各キューＱ０，Ｑ１として使用される共用記憶領域１１が備えられている。各キューＱ０，Ｑ１に割り当てられる容量値の合計値（以下、全キュー容量）は、共用記憶領域１１の容量値である。つまり、各キューＱ０，Ｑ１には、共用記憶領域１１の容量が配分される。共用記憶領域１１は、例えばメモリの記憶領域で良い。メモリとしては、例えばＲＡＭ又は書き換え可能な不揮発性メモリ等で良い。
【００２１】
各キューＱ０，Ｑ１に割り当てられる容量値の配分パターン（以下、容量配分パターン）として、初期状態の容量配分パターンであるプライマリパターンと、このプライマリパターンとは異なるセカンダリパターンとがある。プライマリパターンは、第１パターンに相当する、セカンダリパターンは、プライマリパターンから切り替えられる容量配分パターンであり、第２パターンに相当する。
【００２２】
例えば、全キュー容量が１２８ＫＢであるとすると、プライマリパターンにおける各キューＱ０，Ｑ１の容量値（以下、プライマリ容量値）は、図２に例示するように定められて良い。また、セカンダリパターンにおける各キューＱ０，Ｑ１の容量値（以下、セカンダリ容量値）は、図３に例示するように定められて良い。プライマリパターンとセカンダリパターンとの何れにおいても、全キュー容量は１２８ＫＢであり、各キューＱ０，Ｑ１に割り当てられる容量値は、少なくとも１つのフレームを格納可能な容量値以上である。尚、図２及び図３において、記載された数字の値は容量値であり、この容量値の単位は「ＫＢ」である。「ＫＢ」は「キロバイト」を意味する。数値は一例であり、限定されるものではない。
【００２３】
本実施形態においては、図２に示すように、プライマリパターンでは、各キューＱ０，Ｑ１の容量値が８ＫＢに設定される。つまり、全キュー容量が各キューＱ０，Ｑ１に均等に配分される。尚、全キューＱ０，Ｑ１のうちの一部又は全部の容量値が、他のキューの容量値とは異なる値に設定されても良い。全キューＱ０，Ｑ１とは、ポートＰ０〜Ｐ７毎のキューＱ０，Ｑ１の全てを意味する。
【００２４】
また、図３に示すように、セカンダリパターンでは、ポートＰ０のキューＱ１の容量値がプライマリ容量値（本実施形態では、８ＫＢ）よりも大きい９０ＫＢに設定され、他のキューについては、容量値がプライマリ容量値（本実施形態では、８ＫＢ）より小さいか、あるいはプライマリ容量値と同じ値に設定されている。具体的には、ポートＰ０，Ｐ６，Ｐ７のキューＱ０及びポートＰ１〜Ｐ５のキューＱ０，Ｑ１の容量値は、プライマリ容量値より小さい２ＫＢに設定される。また、Ｐ７のキューＱ１の容量値は、プライマリ容量値より小さい４ＫＢに設定される。また、ポートＰ６のキューＱ１の容量値は、プライマリ容量値と同じ８ＫＢに設定される。
【００２５】
つまり、図３のセカンダリパターンは、転送先ポートがポートＰ０となる高優先度のフレームが、他のポートＰ１〜Ｐ７の何れかから高い頻度で（例えば連続して）受信されて、バーストトラフィックが発生した場合の、フレームロスを抑制するための容量配分パターンになっている。
【００２６】
例えば、ポートＰ１〜Ｐ７の何れかには、車両の周囲をカメラで撮影した画像データを送信するＥＣＵ（以下、撮影ＥＣＵ）が接続されている。そして、ポートＰ０には、撮影ＥＣＵからの画像データに基づいて車両を制御するＥＣＵ（以下、車両制御ＥＣＵ）が接続されている。このため、中継装置１は、撮影ＥＣＵから送信されたフレームであって、データ領域（即ち、ペイロード）に上記画像データが含まれるフレーム（以下、画像データフレーム）を、ポートＰ１〜Ｐ７の何れかから受信すると、その受信したフレームをポートＰ０から送信する。そして、撮影ＥＣＵは、複数の画像データフレームを所定の時間内に連続的に送信する。また、画像データフレームは、ポートＰ０のキューＱ０，Ｑ１のうち、キューＱ１の方に格納される高優先度のフレームに設定されている。
【００２７】
このため、撮影ＥＣＵから画像データフレームが送信され出すと、ポートＰ０につながる通信経路の帯域が一時的に増加する。即ち、ポートＰ０につながる通信経路においてバーストラフィックが発生する。この場合に、中継装置１では、画像データフレームが、ポートＰ０のキューＱ１に一時的に格納されるが、当該キューＱ１の容量値が小さいと、当該キューＱ１がオーバーフローして、フレームを当該キューＱ１に蓄積できなくなりフレームロスを招く。つまり、車両制御ＥＣＵへ送られるべき画像データフレームが失われてしまう。このように、撮影ＥＣＵから車両制御ＥＣＵへの画像データフレームは、特定のポートのキューについて、バーストトラフィックによるオーバーフローの要因となるフレーム（以下、バースト要因フレーム）の具体例である。ここで言う特定のポートのキューは、本実施形態ではポートＰ０のキューＱ１である。
【００２８】
そこで、セカンダリパターンでは、ポートＰ０のキューＱ１の容量値をプライマリ容量値と比べて１０倍以上に設定し、その代わりに、他の１つ以上キューの容量値をプライマリ容量値よりも小さくしている。そして、容量制御部９は、受信フレームがバースト要因フレーム（即ち、上記画像データフレーム）であると判断した場合に、容量配分パターンをプライマリパターンからセカンダリパターンに切り替える。
【００２９】
また、図１に示すように、中継装置１には、プライマリパターン及びセカンダリパターンが記憶されるパターン記憶部１３と、プライマリパターンからセカンダリパターンへ切り替える条件（即ち、切替条件）が記憶される条件記憶部１４とが、備えられている。そして、容量制御部９は、パターン記憶部１３と条件記憶部１４に対して、少なくともリードアクセス可能である。また、パターン記憶部１３には、例えばマイコン３によってプライマリパターン及びセカンダリパターンが書き込まれる。同様に、条件記憶部１４には、例えばマイコン３によって切替条件が書き込まれる。
【００３０】
本実施形態において、切替条件は、受信フレームがバースト要因フレームである、という条件であり、言い換えると、受信フレームが、バースト要因フレームと判断可能な所定の条件（以下、バースト要因フレーム条件）を満たしている、という条件である。条件記憶部１４には、切替条件として、上記バースト要因フレーム条件が記憶されて良い。バースト要因フレーム条件としては、受信フレームに含まれる特定の情報の値が所定値である、という条件であって良い。特定の情報としては、フレームの宛先と、フレームに含まれるデータの種別との、少なくとも一方を特定可能な情報であって良い。
【００３１】
例えば、特定の情報の値としては、イーサネットヘッダ、ＩＰヘッダ、ＵＤＰ／ＴＣＰヘッダのうちの何れかにおける所定のフィールド値と、ペイロードの所定位置に含まれる情報の値との、両方又は一方であっても良い。上記所定のフィールド値としては、少なくとも宛先を特定可能なフィールド値であって良く、例えば、宛先アドレスの値、あるいは、宛先アプリケーションが使用するポート番号（即ち、宛先ポート番号）の値であって良い。また、ペイロードの所定位置に含まれる情報としては、例えば、当該ペイロードに含まれるデータの種別を示すデータ種別情報であって良い。
【００３２】
また、バースト要因フレーム条件としては、フレームが受信されたポートが所定のポートである、という条件が更に含まれても良い。本実施形態において、所定のポートは、上記撮影ＥＣＵが接続されたポートであって良い。
【００３３】
［１−３．容量制御部が行う処理］
次に、容量制御部９が行う容量制御処理について、図４，図５を用いて説明する。
容量制御部９は、ポートＰ０〜Ｐ７の何れかでフレームが受信されると、図４の容量制御処理を行う。
【００３４】
図４に示すように、容量制御部９は、容量制御処理では、Ｓ１１０にて、受信フレームがバースト要因フレームであるか否かを判定する。言い換えると、受信フレームが切替条件としてのバースト要因フレーム条件を満たしているか否かを判定する。例えば、受信フレームのイーサネットヘッダにおける宛先アドレスが、車両制御ＥＣＵのアドレスで、受信フレームのペイロードに含まれるデータ種別情報が、上記画像データを示す情報である場合に、受信フレームがバースト要因フレームであると判定されて良い。このＳ１１０でバースト要因フレームであると判定される受信フレームは、ポートＰ０のキューＱ１に格納された後、当該キューＱ１から取り出されてポートＰ０から送信されるフレームである。
【００３５】
容量制御部９は、上記Ｓ１１０にて、受信フレームがバースト要因フレームではないと判定した場合には、当該容量制御処理を終了するが、受信フレームがバースト要因フレームであると判定した場合には、切替条件が成立したと判断して、Ｓ１２０に進む。
【００３６】
そして、容量制御部９は、Ｓ１２０では、容量配分パターンをプライマリパターンからセカンダリパターンに切り替えるための処理として、図５のセカンダリ切替処理を行う。
図５に示すように、容量制御部９は、セカンダリ切替処理を開始すると、Ｓ２１０にて、各キューＱ０，Ｑ１のうち、現在の使用容量が切替後容量値を超えているキュー（以下、超過キュー）があるか否かを判定する。使用容量とは、キューにおけるフレームの格納に使用されている容量である。切替後容量値とは、切り替え後の容量配分パターンにおけるキューの容量値のことである。切替後の容量配分パターンは、言い換えると、今から切り替えようとしている切り替え先の容量配分パターンである。このため、セカンダリ切替処理における切替後容量値は、セカンダリ容量値である。
【００３７】
容量制御部９は、上記Ｓ２１０にて、超過キューがあると判定した場合には、Ｓ２２０に進み、超過キューの各々について、当該キューに格納されているフレームのうち、切替後容量値（即ち、セカンダリ容量値）を超える分のフレームを破棄する。そして、その後、Ｓ２３０に進む。また、容量制御部９は、上記Ｓ２１０にて、超過キューがないと判定した場合には、そのままＳ２３０に進む。
【００３８】
容量制御部９は、Ｓ２３０では、各キューＱ０，Ｑ１の容量値を、当該キューの切替後容量値に設定し、その後、当該セカンダリ切替処理を終了する。
図４に示すように、容量制御部９は、Ｓ１２０にてセカンダリ切替処理を終了すると、Ｓ１３０に進み、セカンダリ切替処理を終了してから、即ち、容量配分パターンをセカンダリパターンに切り替えてから、所定時間Ｔ１が経過したか否かを判定する。そして、Ｓ１３０では、所定時間Ｔ１が経過するまで待つ。
【００３９】
容量制御部９は、上記Ｓ１３０にて、所定時間Ｔ１が経過したと判定すると、Ｓ１４０に進み、容量配分パターンをセカンダリパターンからプライマリパターンに切り替えるための処理として、図５のセカンダリ切替処理と同様のプライマリ切替処理を行う。
【００４０】
Ｓ１４０で実施されるプライマリ切替処理は、図５のセカンダリ切替処理と比較すると、「切替後容量値」が、セカンダリ容量値ではなく、プライマリ容量値である点が異なり、他の内容は同じである。そして、Ｓ１４０でプライマリ切替処理が終了すると、当該容量制御処理が終了する。
【００４１】
［１−４．作用例］
中継装置１では、ポートＰ１〜Ｐ７の何れかから、ポートＰ０のキューＱ１に格納される画像データフレームが受信されると、容量制御部９により、切替条件が成立したと判断されて、容量配分パターンがプライマリパターンからセカンダリパターンに切り替わる。
【００４２】
このため、図１に示すように、ポートＰ０のキューＱ１，Ｑ０のうち、キューＱ１の容量値は、プライマリ容量値（例えば、８ＫＢ）よりも大きいセカンダリ容量値（例えば、９０ＫＢ）になって増加し、キューＱ０の容量値は、プライマリ容量値（例えば、８ＫＢ）よりも小さいセカンダリ容量値（例えば、２ＫＢ）になって減少する。
【００４３】
そして、容量配分パターンの切り替え時において、容量値が減少するポートＰ０のキューＱ０に、切替後容量値を超えるフレームが格納されていたなら、図１におけるクロスハッチングの部分に示すように、切替後容量値（即ち、セカンダリ容量値）を超える分のフレームは破棄される。
【００４４】
また、他のポートＰ１〜Ｐ７のキューＱ０，Ｑ１のうち、ポートＰ６のキューＱ１以外の容量値も、ポートＰ０のキューＱ０と同様に、セカンダリパターンへの切り替えによって減少する。また、ポートＰ６のキューＱ１については、プライマリ容量値とセカンダリ容量値とが同じであるため、容量配分パターンが切り替えられても容量値が変わらない。
【００４５】
［１−５．効果］
以上詳述した第１実施形態によれば、以下の効果を奏する。
（１ａ）容量制御部９は、ポートＰ０のキューＱ１に一旦格納されてから送信されるフレームであって、所定の時間内に連続的に送られてくる画像データフレームを、バースト要因フレームとして認識する。そして、容量制御部９は、受信フレームがバースト要因フレームであると判定すると、切替条件が成立したと判断して、容量配分パターンを、プライマリパターンから、ポートＰ０のキューＱ１への容量配分量が増加するセカンダリパターンに切り替える。つまり、容量制御部９は、キューのオーバーフローの要因となる特定のフレームが受信されはじめた場合に、容量配分パターンを、当該特定のフレームが格納されるキューへの容量配分が増加するセカンダリパターンに切り替える。よって、全キューＱ０，Ｑ１の容量値を予め大きく設定しておかなくても、ポートＰ０につながる通信経路でバーストトラフィックが発生する可能性がある場合に、ポートＰ０のキューＱ１の容量値が増えるようにすることができる。このため、全キューＱ０，Ｑ１の容量値を予め大きく設定しておかなくても、バースト耐性を高めることができる。
【００４６】
（１ｂ）プライマリパターンとセカンダリパターンとにおいて、各キューＱ０，Ｑ１に割り当てられる容量値は少なくとも１つのフレームを格納可能な容量値以上であると共に、全キュー容量は同じである。そして、各キューＱ０，Ｑ１のうち、バースト要因フレームの格納先となるポートＰ０のキューＱ１については、プライマリ容量値よりもセカンダリ容量値の方が大きい値に設定されている。
【００４７】
このため、プライマリパターンとセカンダリパターンとにおいて、各キューＱ０，Ｑ１の最低限のフレーム蓄積性能を確保することができると共に、全キュー容量を増やさずに、ポートＰ０のキューＱ１についてバースト耐性を高めることができる。よって、全キュー容量を抑制しつつ、バースト耐性と最低限のフレーム蓄積性能とを、両立させることができる。
【００４８】
比較例として、各キューＱ０，Ｑ１が共用記憶領域１１の容量を早い者勝ちで使用する、という構成が考えられる。この比較例の構成では、ある１つ以上のキューの使用容量が大きくなった場合に、他のキューの容量が全く確保できなくなる可能性があり、即ち、フレームを１つも格納できないキューが生じる可能性がある。すると、フレームの転送が実施できないポートが生じることになり、延いては、フレームの中継機能が損なわれる。しかし、本実施形態によれば、この比較例の問題が回避される。
【００４９】
（１ｃ）容量制御部９は、容量配分パターンをセカンダリパターンに切り替えてから、所定時間Ｔ１が経過すると、容量配分パターンをプライマリパターンに切り替えるように構成されている。このため、セカンダリパターンからプライマリパターンに戻すか否かの判定を、経過時間とは別の情報を取得することなく簡単に実施することができる。
【００５０】
（１ｄ）容量制御部９は、受信フレームに含まれる特定の情報に基づいて、切替条件が成立したか否かを判断するように構成されている。このため、プライマリパターンからセカンダリパターンへの切り替えを、受信フレームの解析によって実施することができる。よって、例えば実際のトラフィックの演算や検出等、受信フレームとは別の状況解析が不要となり、処理を簡単なものにし易い。
【００５１】
（１ｅ）容量制御部９は、容量配分パターンを切り替える場合に、使用容量が切替後容量値を超えているキューについては、当該キューに格納されているフレームのうち、切替後容量値を超える分のフレームを破棄するように構成されている。このため、容量配分パターンを切り替えるための処理を簡単なものにし易い。
【００５２】
［２．第２実施形態］
［２−１．第１実施形態との相違点］
第２実施形態は、基本的な構成は第１実施形態と同様であるため、相違点について以下に説明する。尚、第１実施形態と同じ符号は、同一の構成を示すものであって、先行する説明を参照する。
【００５３】
第２実施形態は、第１実施形態と比較すると、容量制御部９が、図４のＳ１４０にて、容量配分パターンをセカンダリパターンからプライマリパターンに切り替える（即ち、戻す）ための処理として、図６のプライマリ切替処理を行う点が異なる。
【００５４】
［２−２．処理］
容量制御部９が行うプライマリ切替処理について、図６を用い説明する。尚、図６のプライマリ切替処理では、Ｓ３２０〜Ｓ３７０の処理により、各キューＱ０１，Ｑ０の容量値をセカンダリ容量値からプライマリ容量値に切り替える。第２実施形態のプライマリ切替処理におけるセカンダリ容量値が切替前容量値であり、プライマリ容量値が切替後容量値である。切替前容量値とは、切り替え前の容量配分パターンにおけるキューの容量値のことである。
【００５５】
図６に示すように、容量制御部９は、プライマリ切替処理では、Ｓ３１０にて、全キューＱ０，Ｑ１の容量値がプライマリ容量値に設定されたか否かを判定する。そして、全キューＱ０，Ｑ１の容量値がプライマリ容量値に設定されたと判定した場合、即ち、セカンダリパターンからプライマリパターンへの切り替えが完了したと判定した場合には、当該プライマリ切替処理を終了する。
【００５６】
また、容量制御部９は、上記Ｓ３１０にて否定判定した場合、即ち、全キューＱ０，Ｑ１のうちの少なくとも１つの容量値が未だプライマリ容量値に設定されていない場合には、Ｓ３２０に進む。
【００５７】
容量制御部９は、Ｓ３２０では、容量配分パターンの切り替えにより容量値が減少するキュー（以下、容量減少キュー）のうち、現在の使用容量が切替後容量値としてのプライマリ容量値を超えているキュー（即ち、超過キュー）があるか否かを判定する。
【００５８】
尚、セカンダリパターンからプライマリパターンへの切り替えが実施される場合、容量減少キューは、セカンダリ容量値よりもプライマリ容量値の方が小さいキューである。図２，図３に示した具体例では、ポートＰ０のキューＱ１が、容量減少キューである。また、全キューＱ０，Ｑ１のうち、容量減少キューが、超過キューになり得る。
【００５９】
容量制御部９は、上記Ｓ３２０にて、超過キューがあると判定した場合には、Ｓ３３０に進み、当該超過キューの容量値を、当該超過キューの現在の使用容量に設定し、その後、Ｓ３４０に進む。また、容量制御部９は、上記Ｓ３２０にて、超過キューがないと判定した場合には、そのままＳ３４０に進む。
【００６０】
容量制御部９は、Ｓ３４０では、容量減少キューのうち、現在の使用容量がプライマリ容量値以下であるキュー、即ち、容量減少キューであり且つ現在の使用容量がプライマリ容量値以下のキュー（以下、容量減少非超過キュー）があるか否かを判定する。尚、上記Ｓ３２０にて「ある」と判定された超過キューであっても、当該キューに格納されているフレームが送信されていくことにより、やがては容量減少非超過キューとなる。
【００６１】
容量制御部９は、上記Ｓ３４０にて、容量減少非超過キューがあると判定した場合には、Ｓ３５０に進み、当該容量減少非超過キューの容量値を、当該キューのプライマリ容量値に設定し、その後、Ｓ３６０に進む。また、容量制御部９は、上記Ｓ３４０にて、容量減少非超過キューがないと判定した場合には、そのままＳ３６０に進む。
【００６２】
容量制御部９は、Ｓ３６０では、上記Ｓ３３０又はＳ３５０の処理によって超過キュー又は容量減少非超過キューから解放された容量（以下、解放容量）を、容量配分パターンの切り替えにより容量値が増加するキュー（以下、容量増加キュー）の容量値として割り当てる。
【００６３】
尚、セカンダリパターンからプライマリパターンへの切り替えが実施される場合、容量増加キューは、セカンダリ容量値よりもプライマリ容量値の方が大きいキューである。図２，図３に示した具体例では、ポートＰ０，Ｐ６のキューＱ０と、ポートＰ１〜Ｐ５，Ｐ７のキューＱ０，Ｑ１が、容量増加キューである。また、上記Ｓ３３０の処理による解放容量は、超過キューの容量値が使用容量に設定されることによる、当該キューの容量値の減少分である。また、上記Ｓ３５０の処理による解放容量は、容量減少非超過キューの容量値がプライマリ容量値に設定されることによる、当該キューの容量値の減少分である。
【００６４】
また、Ｓ３６０では、容量増加キューへの解放容量の割り当てを、キューの容量値が当該キューのプライマリ容量値を超えない範囲で実施する。また、容量値がプライマリ容量値になっていない容量増加キューが複数ある場合、Ｓ３６０では、当該複数の容量増加キューに対して、解放容量を均等に割り当てる（即ち、配分する）ようになっていて良い。尚、ここで言う均等とは、厳密に均等ということであっても良いが、可能な限り均等ということであっても良い。
【００６５】
例えば、容量値がプライマリ容量値になっていない容量増加キューとして、４つのキューＡ，Ｂ，Ｃ，Ｄがあり、解放容量がＭであるとする。そして、キューＡ〜Ｄの各々について、現在の容量値とプライマリ容量値との差は「Ｍ／４」以上であるとする。この場合、Ｓ３６０では、キューＡ〜Ｄの各々に対して、「Ｍ／４」の容量を割り当てて良い。
【００６６】
また、キューＡ〜Ｄのうち、キューＤについては、現在の容量値とプライマリ容量値との差ΔＤが「Ｍ／４」未満であり、キューＡ〜Ｃの各々については、現在の容量値とプライマリ容量値との差が「（Ｍ−ΔＤ）／３」以上であるとする。この場合、Ｓ３６０では、キューＤについては、解放容量であるＭのうちのΔＤを割り当てることにより、当該キューＤの容量値をプライマリ容量値とし、他のキューＡ〜Ｃについては、解放容量の残りの分である「Ｍ−ΔＤ」を均等に割った容量、即ち「（Ｍ−ΔＤ）／３」を、割り当てて良い。
【００６７】
容量制御部９は、上記Ｓ３６０の処理を行った後、Ｓ３７０に進み、上記Ｓ３１０で否定判定してＳ３２０に進んでから、所定時間Ｔ２が経過したか否かを判定する。そして、Ｓ３７０では、所定時間Ｔ２が経過するまで待つ。尚、所定時間Ｔ２は、例えば、前述の所定時間Ｔ１よりも短い。また、Ｓ３７０では、例えば、Ｓ３６０の処理を行ってから所定時間Ｔ２が経過したか否かを判定しても良い。
【００６８】
そして、容量制御部９は、上記Ｓ３７０にて、所定時間Ｔ２が経過したと判定すると、Ｓ３１０に戻る。
［２−３．作用例］
図６の処理による作用例を、図７，図８を用いて説明する。尚、図７，図８において、実線の波形は、ポートＰ０のキューＱ１の容量値を示し、点線の波形は、ポートＰ０のキューＱ１の使用容量を示している。そして、点線の波形において、高さが徐々に減少している部分は、ポートＰ０のキューＱ１に格納されたフレームが順次送信されていることを表している。
【００６９】
図７は、図４のＳ１４０で図６のプライマリ切替処理が開始された時点において、ポートＰ０のキューＱ１（即ち、容量減少キュー）の使用容量が当該キューのプライマリ容量値を超えていた場合を表している。
【００７０】
図７に示すように、時刻ｔ０で図５のセカンダリ切替処理が実施され、その後、所定時間Ｔ１が経過した時刻ｔ１にて、図６のプライマリ切替処理が開始されたとする。
そして、この時刻ｔ１において、ポートＰ０のキューＱ１の使用容量が当該キューのプライマリ容量値を超えていた場合には、図６のＳ３２０にて、超過キューがあると判定され、図６のＳ３３０の処理が行われる。よって、超過キューであるポートＰ０のキューＱ１の容量値が、当該キューの現在の使用容量に設定される。そして、ポートＰ０のキューＱ１の容量値が使用容量に設定されることによる、当該キューの容量値の減少分Ｄｃ１が、解放容量となり、この解放容量が、図６のＳ３６０にて、前述した容量増加キューの容量値として割り当てられる。
【００７１】
その後、所定時間Ｔ２が経過した時刻ｔ２において、図６のＳ３２０の判定が再び行われ、この時点において、ポートＰ０のキューＱ１の使用容量が未だプライマリ容量値を超えていた場合には、図６のＳ３３０の処理が再び行われる。よって、超過キューであるポートＰ０のキューＱ１の容量値が、当該キューの現在の使用容量に設定される。そして、ポートＰ０のキューＱ１の容量値が使用容量に設定されることによる、当該キューの容量値の減少分Ｄｃ２が、解放容量となり、この解放容量が、図６のＳ３６０にて、前述した容量増加キューの容量値として割り当てられる。
【００７２】
その後、所定時間Ｔ２が経過した時刻ｔ３においても、時刻ｔ２と同様の処理が行われる。尚、図７における「Ｄｃ３」は、時刻ｔ３での解放容量である。
更にその後、所定時間Ｔ２が経過した時刻ｔ４において、図６のＳ３２０の判定が再び行われ、この時点において、ポートＰ０のキューＱ１の使用容量がプライマリ容量値以下になっていた場合には、図６のＳ３４０にて、容量減少非超過キューがあると判定される。そして、図６のＳ３５０の処理が行われる。よって、容量減少非超過キューとなったポートＰ０のキューＱ１の容量値が、プライマリ容量値に設定される。そして、ポートＰ０のキューＱ１の容量値がプライマリ容量値に設定されることによる、当該キューの容量値の減少分Ｄｃ４が、解放容量となり、この解放容量が、図６のＳ３６０にて、容量増加キューの容量値として割り当てられる。
【００７３】
また、本実施形態では、プライマリパターンへの切り替えにおいて、容量減少キューはポートＰ０のキューＱ１だけである。このため、ポートＰ０のキューＱ１について図６のＳ３５０の処理が行われた後、図６のＳ３６０の処理が行われると、全キューＱ０，Ｑ１の容量値が当該キューのプライマリ容量値となる。よって、その後、図６のＳ３１０にて「ＹＥＳ」と判定されて、図６のプライマリ切替処理が終了する。
【００７４】
一方、図８は、図４のＳ１４０で図６のプライマリ切替処理が開始された時点で、ポートＰ０のキューＱ１の使用容量が当該キューのプライマリ容量値以下になっていた場合を表している。
【００７５】
図８に示すように、時刻ｔ０で図５のセカンダリ切替処理が実施され、その後、所定時間Ｔ１が経過した時刻ｔ１にて、図６のプライマリ切替処理が開始されたとする。
そして、この時刻ｔ１において、ポートＰ０のキューＱ１の使用容量が当該キューのプライマリ容量値以下であった場合には、図６のＳ３４０にて、容量減少非超過キューがあると判定され、図６のＳ３５０の処理が行われる。よって、容量減少非超過キューであるポートＰ０のキューＱ１の容量値が、当該キューのプライマリ容量値に設定される。
【００７６】
そして、ポートＰ０のキューＱ１の容量値がプライマリ容量値に設定されることによる、当該キューの容量値の減少分Ｄｃ５が、解放容量となり、この解放容量が、図６のＳ３６０にて、容量増加キューの容量値として割り当てられる。尚、図８におけるＤｃ５は、図７におけるＤｃ１〜Ｄｃ４の和に等しい。その後、図６のＳ３１０にて「ＹＥＳ」と判定されて、図６のプライマリ切替処理が終了する。
【００７７】
［２−４．効果］
以上詳述した第２実施形態によれば、第１実施形態で述べた効果（１ａ）〜（１ｄ）を奏し、また、プライマリパターンからセカンダリパターンへの切り替えについては、第１実施形態で述べた効果（１ｅ）も奏する。そして更に、以下の効果を奏する。
【００７８】
（２ａ）容量制御部９は、セカンダリパターンからプライマリパターンに切り替える場合に、超過キューについて、当該キューに格納されたフレームの送信により当該キューの使用容量がプライマリ容量値以下となるまで、図６のＳ３３０及びＳ３６０の処理を、所定時間Ｔ２毎に実施する。そして、Ｓ３３０及びＳ３６０の処理では、超過キューの容量値を当該キューの現在の使用容量に設定すると共に、当該設定による超過キューの容量値の減少分（即ち、解放容量）を、少なくとも１つの容量増加キューの容量値として割り当てる。このため、セカンダリパターンからプライマリパターンに切り替える場合に、超過キューに格納されていたフレームを破棄することなく、プライマリパターンへの切り替えを完了することができる。尚、図６のＳ３３０及びＳ３６０の処理は、容量変更処理に相当する。一方、容量配分パターンをプライマリパターンからセカンダリパターンへ切り替える場合に、図６の処理と同様の処理が行われても良い。
【００７９】
［３．他の実施形態］
以上、本開示の実施形態について説明したが、本開示は上述の実施形態に限定されることなく、種々変形して実施することができる。
【００８０】
［３−１．他の実施形態１］
条件記憶部１４には、複数の切替条件（例えば、バースト要因フレーム条件）が記憶されて良い。そして、パターン記憶部１３には、条件記憶部１４に記憶された複数の切替条件毎に対応付けて、異なる複数のセカンダリパターンが記憶されて良い。
【００８１】
この場合、容量制御部９は、図４のＳ１１０では、条件記憶部１４に記憶された複数の切替条件のうちの何れかが成立したか否かを判断して良い。具体的には、受信フレームが、複数の切替条件としてのバースト要因フレーム条件の何れかを満たしているか否かを判断して良く、言い換えると、受信フレームが複数通りのバースト要因フレームの何れかであるか否かを判断して良い。そして、容量制御部９は、何れかの切替条件が成立したと判断した場合には、図４のＳ１２０に進み、このＳ１２０で行うセカンダリ切替処理では、容量配分パターンを、上記Ｓ１１０で成立したと判断した切替条件に対応するセカンダリパターンに切り替えて良い。このような構成によれば、複数通りのバースト要因フレームについて、バースト耐性を高めることができる。
【００８２】
［３−２．他の実施形態２］
容量制御部９は、図４のＳ１１０で切替条件が成立した場合に受信されたフレームに含まれている情報に基づいて、セカンダリパターンでの各キューＱ０，Ｑ１の容量値（即ち、セカンダリ容量値）を変更するように構成されても良い。
【００８３】
例えば、図４のＳ１１０でバースト要因フレームと判定されるフレームには、各キューＱ０，Ｑ１のセカンダリ容量値を指示可能な容量値情報が含まれるようになっていて良い。そして、容量制御部９は、図４のＳ１１０でバースト要因フレームであると判定した受信フレームに含まれている容量値情報に基づいて、セカンダリ切替処理で用いる各キューＱ０，Ｑ１のセカンダリ容量値（即ち、切替後容量値）を決定するように構成されて良い。
【００８４】
［３−３．他の実施形態３］
また、ポート毎のキューの数は、２に限らず、１であっても、３以上であっても良い。
また、プライマリ容量値よりもセカンダリ容量値の方が大きくなるキューは、１つに限らず、２つ以上であっても良い。
また、切替条件は、バーストトラフィックによりフレームロスが発生したことを検出した、という条件であっても良い。
また、容量制御部９は、容量配分パターンをセカンダリパターンに切り替えてから、所定時間Ｔ１が経過すると、容量配分パターンをプライマリパターンに切り替えるように構成されているとしたが、これに限定されない。例えば、特定のフレームを受信した場合に容量配分パターンをセカンダリパターンからプライマリパターンに切り替える構成にしても良い。また、特定のフレームを受信してから所定時間が経過した場合に容量配分パターンをセカンダリパターンからプライマリパターンに切り替える構成にして良い。
また、異なる複数のセカンダリパターンを有する場合、容量配分パターンをセカンダリパターンからプライマリパターンに切り替える所定時間を各々異なる時間に設定しても良い。さらに、異なる複数のセカンダリパターンを有する場合、容量配分パターンをプライマリパターンからセカンダリパターン又はセカンダリパターンからプライマリパターンに切り替えるだけでなく、１つのセカンダリパターンからその他のセカンダリパターンに切り替えることが可能であっても良い。
【００８５】
また、本開示に記載の中継装置１及びその手法は、コンピュータプログラムにより具体化された一つ乃至は複数の機能を実行するようにプログラムされたプロセッサ及びメモリを構成することによって提供された専用コンピュータにより、実現されてもよい。あるいは、本開示に記載の中継装置１及びその手法は、一つ以上の専用ハードウェア論理回路によってプロセッサを構成することによって提供された専用コンピュータにより、実現されてもよい。もしくは、本開示に記載の中継装置１及びその手法は、一つ乃至は複数の機能を実行するようにプログラムされたプロセッサ及びメモリと一つ以上のハードウェア論理回路によって構成されたプロセッサとの組み合わせにより構成された一つ以上の専用コンピュータにより、実現されてもよい。また、コンピュータプログラムは、コンピュータにより実行されるインストラクションとして、コンピュータ読み取り可能な非遷移有形記録媒体に記憶されてもよい。中継装置１に含まれる各部の機能を実現する手法には、必ずしもソフトウェアが含まれている必要はなく、その全部の機能が、一つあるいは複数のハードウェアを用いて実現されてもよい。
【００８６】
また、上記実施形態における１つの構成要素が有する複数の機能を、複数の構成要素によって実現したり、１つの構成要素が有する１つの機能を、複数の構成要素によって実現したりしてもよい。また、複数の構成要素が有する複数の機能を、１つの構成要素によって実現したり、複数の構成要素によって実現される１つの機能を、１つの構成要素によって実現したりしてもよい。また、上記実施形態の構成の一部を省略してもよい。また、上記実施形態の構成の少なくとも一部を、他の上記実施形態の構成に対して付加又は置換してもよい。
【００８７】
また、上述した中継装置１の他、当該中継装置１を構成要素とするシステム、当該中継装置１としてコンピュータを機能させるためのプログラム、このプログラムを記録した半導体メモリ等の非遷移的実態的記録媒体、中継装置１におけるフレーム格納用キューの容量制御方法など、種々の形態で本開示を実現することもできる。
【符号の説明】
【００８８】
１…中継装置、９…容量制御部、Ｐ０〜Ｐ７…ポート、Ｑ０，Ｑ１…キュー
【図１】
2020156038.tif 000003
【図２】
2020156038.tif 000004
【図３】
2020156038.tif 000005
【図４】
2020156038.tif 000006
【図５】
2020156038.tif 000007
【図６】
2020156038.tif 000008
【図７】
2020156038.tif 000009
【図８】
2020156038.tif 000010