説明

パケット交換装置、マルチコアプロセッサ、パケット交換方法、パケット制御方法、プログラム

【課題】マルチコアプロセッサを用いて優先制御を行うにあたり、パケットフォワーディング処理性能と輻輳回避処理性能の両者について良好な性能が得られるようにする。
【解決手段】バッファ状態監視プロセッサコア41−1はバッファ21のパケット滞留数に基づいて輻輳回避処理が必要か否かを判定する。輻輳回避処理が必要と判定した場合、低優先度の第Mバッファ21−Mのパケットを廃棄処理用の第nバケット31−Nに転送する。フォワーディング処理プロセッサコア41−2〜Mは、フォワーディング処理を所定回数実行するごとに1回ずつ、第nバケット31−Nのパケットを廃棄する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、パケットを中継するパケット交換装置と、当該パケット交換装置において備えられるマルチコアプロセッサに関する。また、パケット交換装置におけるパケット交換方法と、マルチコアプロセッサにおけるパケット制御方法に関する。さらに、当該マルチコアプロセッサに実行させるプログラムに関する。当該パケット制御装置に実行させるプログラムに関する。
【背景技術】
【0002】
プロセッサとして、複数のプロセッサコアを1つのパッケージに集積したマルチプロセッサコアが知られている。マルチプロセッサコアにおける各プロセッサコアは、基本的に他のプロセッサコアには影響されることなく動作可能とされている。これにより、特定の処理を多数のプロセッサコアで分担させるように処理を実行させることで、処理性能が向上するという利点を有している。
【0003】
例えば特許文献1においては次のような技術が記載されている。つまり、マルチプロセッサシステムにおいて機能的に関連づけられる複数個のプロセッサごとに複数の障害検出グループに分けるとともに、1つの障害情報処理装置をシステムバス経由で接続する。そのうえで、障害検出グループで中枢となるプロセッサが自己およびグループ内の他のプロセッサの障害検出を行い、障害が検出された場合には障害情報を障害情報処理装置に送る。これに応じて、障害情報処理装置は、システムにおけるすべてのプロセッサについての障害を検出して処理を行うというものである。
【0004】
ルータなどのようにパケット交換を行う装置においては、QoS(Quality of Service)機能の1つとして優先制御が行われる。例えば、ファームウェアにより優先制御を行う構成を採るにあたっては、パケットの優先度ごとに対応させるようにして複数のバッファを備える。そのうえで、例えばWRR(Weighted Round Robin:加重ラウンドロビン)方式にしたがって各バッファからパケットを取り込むようにする。これによって優先制御が実現されるようになっている。
【0005】
しかし、上記の優先制御の構成においては、複数のバッファのうち少なくとも1つが輻輳状態となった場合には、輻輳状態から回復させるために、すべてのバッファに対してパケットを転送することなく廃棄するようにハードウェアが動作する。この動作では、少なくとも1つの受信パケットバッファに輻輳が発生すると、ファームウェアによりパケットを取り込むより以前の段階でパケットの廃棄が発生することになる。このため、ファームウェアによる優先制御が実行できなくなってしまうという不具合が生じる。
【0006】
この問題を回避するための対策として、ファームウェアによって受信パケットバッファの輻輳状態を回避するように構成することが考えられ、具体的には次のような構成が知られている。つまり、パケットフォワーディング処理を実行させるプロセッサとしてマルチコアプロセッサを採用する。そして、マルチコアプロセッサにおける複数のプロセッサコアのうち、特定のプロセッサコアに輻輳回避処理を実行させ、これ以外の他のプロセッサコアにパケットフォワーディング処理を実行させるように構成するというものである。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開平5−134998号公報(図1)
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかし、優先制御に関して上記のようにマルチコアプロセッサにおけるプロセッサコアの役割を分担させる構成を採る場合には、次のような問題を抱えることになる。例えば、マルチコアプロセッサにおいて、パケットフォワーディング処理用のプロセッサコアの数を多くし、輻輳回避処理用のプロセッサコアの数を少なくするように構成したとする。この場合、パケットフォワーディング処理については良好な性能を得ることが可能になるが、輻輳回避処理用のプロセッサの負荷が増加して必要な輻輳回避性能を満足できなくなる可能性がある。これに対して、パケットフォワーディング処理用のプロセッサコアの数を少なくし、輻輳回避処理用のプロセッサコアの数を多く構成したとする。この場合には、十分な輻輳回避処理性能が得られるが、パケットフォワーディング処理の性能が低下してしまう可能性が高くなってしまう。このように、優先制御に関しては、マルチコアプロセッサの利点を十分に発揮させることが難しい。つまり、パケットフォワーディング処理性能と輻輳回避処理性能がトレードオフの関係となり、両者について高い性能を得ることが非常に難しいという問題を抱えている。
【0009】
そこで本発明は、上述の課題を解決することのできる、パケット交換装置、マルチコアプロセッサ、パケット交換方法、パケット制御方法、プログラムを提供することを目的とする。
【課題を解決するための手段】
【0010】
本発明は、受信したパケットをその優先度別に分配するパケット分配部と、前記優先度ごとに対応して備えられ、前記パケット分配部により分配されたパケットのうち、自己に対応する優先度のパケットを格納する複数のバッファと、前記複数のバッファごとに対応し、自己に対応するバッファから転送されるパケットを保持する複数の優先制御用バケットと、自己に対して転送されるパケットを保持する少なくとも1つの廃棄処理用バケットと、複数のプロセッサコアを備えて成るマルチコアプロセッサとを備え、前記マルチコアプロセッサは、前記バッファにおけるパケットの格納状態に基づいて、輻輳状態に至らないようにするための輻輳回避処理が必要であるか否かについて判定し、前記輻輳回避処理が必要であると判定された場合に、前記複数のバッファのうちの輻輳回避処理対応バッファに格納されたパケットの転送先を、当該輻輳回避処理対応バッファに対応の前記優先制御用バケットから前記廃棄処理用バケットに切り替えるバッファ状態監視プロセッサコアと、前記優先制御用バケットにて保持されているパケットを取り込んで分配する優先制御プロセッサコアと、前記廃棄処理用バケットにパケットが保持されていない場合には、前記優先制御プロセッサコアから分配されたパケットのフォワーディング処理のみを実行し、前記廃棄処理用バケットにパケットが保持されている場合には、前記フォワーディング処理と前記廃棄処理用バケットに保持されたパケットを廃棄するパケット廃棄処理を実行する複数のフォワーディング処理プロセッサコアとを備えることを特徴とするパケット交換装置である。
【0011】
また、本発明は、受信されたバッファが優先度別に格納されるバッファにおけるパケットの格納状態に基づいて、輻輳状態に至らないようにするための輻輳回避処理が必要であるか否かについて判定し、前記輻輳回避処理が必要であると判定された場合に、複数の前記バッファのうちの輻輳回避処理対応バッファに格納されたパケットの転送先を、当該輻輳回避処理対応バッファ対応の優先制御用バケットから前記廃棄処理用バケットに切り替えるバッファ状態監視プロセッサコアと、前記優先制御用バケットにて保持されているパケットを取り込んで分配する優先制御プロセッサコアと、前記廃棄処理用バケットにパケットが保持されていない場合には、前記優先制御プロセッサコアから自己に対して分配されたパケットのフォワーディング処理のみを実行し、前記廃棄処理用バケットにパケットが保持されている場合には、前記フォワーディング処理と前記廃棄処理用バケットに保持されたパケットを廃棄するパケット廃棄処理を実行する複数のフォワーディング処理プロセッサコアとを備えることを特徴とするマルチコアプロセッサである。
【0012】
また、本発明は、受信したパケットをその優先度別に分配させる受信パケット分配手順と、前記優先度ごとに対応して備えられる複数のバッファの各々に、前記パケット分配部により分配された対応の優先度のパケットを格納するバッファリング手順と、前記複数のバッファごとに対応して備えられる複数の優先制御用バケットに、対応のバッファから転送されるパケットを保持させる優先制御対応パケット保持手順と、廃棄処理用バケットに転送されてきたパケットを保持させる廃棄処理対応パケット保持手順と、マルチコアプロセッサにおけるバッファ状態監視プロセッサコによって、前記バッファにおけるパケットの格納状態に基づいて、輻輳状態に至らないようにするための輻輳回避処理が必要であるか否かについて判定し、前記輻輳回避処理が必要であると判定された場合に、前記複数のバッファのうちの輻輳回避処理対応バッファに格納されたパケットの転送先を、当該輻輳回避処理対応バッファに対応の前記優先制御用バケットから前記廃棄処理用バケットに切り替える輻輳回避制御手順と、前記マルチコアプロセッサにおける優先制御プロセッサコアによって、前記優先制御用バケットにて保持されているパケットを取り込んだ後に分配する優先制御対応分配手順と、前記マルチコアプロセッサにおける複数のフォワーディング処理プロセッサコアによって、前記廃棄処理用バケットにパケットが保持されていない場合には、前記優先制御プロセッサコアから分配されたパケットのフォワーディング処理のみを実行し、前記廃棄処理用バケットにパケットが保持されている場合には、前記フォワーディング処理と前記廃棄処理用バケットに保持されたパケットを廃棄するパケット廃棄処理を実行するパケット処理手順とを備えることを特徴とするパケット交換方法である。
【0013】
また、本発明は、マルチコアプロセッサのパケット制御方法であって、前記マルチコアプロセッサにおけるバッファ状態監視プロセッサコアによって、受信されたバッファが優先度別に格納されるバッファにおけるパケットの格納状態に基づいて、輻輳状態に至らないようにするための輻輳回避処理が必要であるか否かについて判定し、前記輻輳回避処理が必要であると判定された場合に、複数の前記バッファのうちの輻輳回避処理対応バッファに格納されたパケットの転送先を、当該輻輳回避処理対応バッファ対応の優先制御用バケットから前記廃棄処理用バケットに切り替える輻輳回避制御手順と、前記マルチコアプロセッサにおける優先制御プロセッサコアによって、前記優先制御用バケットにて保持されているパケットを取り込んだ後に分配する優先制御対応分配手順と、前記マルチコアプロセッサにおける複数のフォワーディング処理プロセッサコアによって、前記廃棄処理用バケットにパケットが保持されていない場合には、前記優先制御プロセッサコアから分配されたパケットのフォワーディング処理のみを実行し、前記廃棄処理用バケットにパケットが保持されている場合には、前記フォワーディング処理と前記廃棄処理用バケットに保持されたパケットを廃棄するパケット廃棄処理を実行するパケット処理手順とを備えることを特徴とするパケット制御方法である。
【0014】
また、本発明は、マルチコアプロセッサにおけるバッファ状態監視プロセッサコアに、受信されたバッファが優先度別に格納されるバッファにおけるパケットの格納状態に基づいて、輻輳状態に至らないようにするための輻輳回避処理が必要であるか否かについて判定し、前記輻輳回避処理が必要であると判定された場合に、複数の前記バッファのうちの輻輳回避処理対応バッファに格納されたパケットの転送先を、当該輻輳回避処理対応バッファ対応の優先制御用バケットから前記廃棄処理用バケットに切り替える輻輳回避制御手順を実行させ、前記マルチコアプロセッサにおける優先制御プロセッサコアに、前記優先制御用バケットにて保持されているパケットを取り込んだ後に分配する優先制御対応分配手順を実行させ、前記マルチコアプロセッサにおける複数のフォワーディング処理プロセッサコアに、前記廃棄処理用バケットにパケットが保持されていない場合には、前記優先制御プロセッサコアから分配されたパケットのフォワーディング処理のみを実行し、前記廃棄処理用バケットにパケットが保持されている場合には、前記フォワーディング処理と前記廃棄処理用バケットに保持されたパケットを廃棄するパケット廃棄処理を行うパケット処理手順を実行させるためのプログラムである。
【発明の効果】
【0015】
本発明によれば、マルチコアプロセッサを用いて優先制御を行うにあたり、パケットフォワーディング処理性能と輻輳回避処理性能の両者について良好な性能が得られ、マルチコアプロセッサの利点が十分に発揮される。
【図面の簡単な説明】
【0016】
【図1】本発明の実施の形態としてのパケット交換装置の構成例を示す図である。
【図2】本発明の実施の形態としてのパケット交換装置における、輻輳状態のときの動作例を示す図である。
【図3】本発明の実施の形態におけるパケット分散デバイスが実行する処理手順例を示す図である。
【図4】本発明の実施の形態におけるバッファ状態監視プロセッサコアが実行する処理手順例を示す図である。
【図5】受信パケットバッファが実行する処理手順例を示す図である。
【図6】パケット優先制御プロセッサコアの処理手順例を示す図である。
【図7】フォワーディング処理プロセッサコアの処理手順例を示す図である。
【発明を実施するための形態】
【0017】
[パケット交換装置の構成]
図1は、本発明を実施するための形態(以下、実施の形態という)としてのパケット交換装置1の構成例を示すブロック図である。以降において、本実施の形態のパケット交換機1は、例えばルータなどに適用され、IP(Internet Protocol)パケットの交換、中継を行うものであることを前提とする。なお、以降においてパケット交換装置1において入出力されるIPパケットについては単にパケットと称する。
【0018】
図1に示すパケット交換装置1は、パケット分散デバイス(パケット分配部)10、受信パケットバッファ20、バケット部30およびマルチコアプロセッサ40を備えて成る。
【0019】
パケット分散デバイス10は、入力インターフェースから受信したパケットを受信パケットバッファ20における複数のバッファ21(第0バッファ21−0乃至第Mバッファ21−M)に分散するように受け渡す。この際、パケット分散デバイス10は、受信したパケットに格納される優先情報が示す優先度にしたがって、パケットを受け渡すべきバッファ21を決定する。
【0020】
受信パケットバッファ20は、図示するように(M+1)個のバッファ21(第0バッファ21−0乃至第Mバッファ21−M)を備え、パケット分散デバイス10から受け渡されたパケットを格納する。第0バッファ21−0乃至第Mバッファ21−Mは、それぞれ、パケットに設定され優先度に対応付けられている。ここでは、第0バッファ21−0が最高の優先度に対応しており、以降、第1バッファ21−1から第Mバッファ21−Mの順で優先度が低くなっていく。したがって、第Mバッファ21−Mが最も低い優先度に対応することになる。
【0021】
例えばパケット分散デバイス10により、複数の入力インターフェースから入力された複数のパケット0、1・・・Mを受信しており、これらのパケットは、優先度の高い方から低い方にかけてパケット0、1・・・Mの順となっているものとする。この場合、パケット分散デバイス10は、優先度が最も高いパケット0を第0バッファ21−0に受け渡し、2番目の優先度のパケット1を第1バッファ21−1に受け渡す。同様にして優先度に対応した順で他のパケットを対応の各バッファに受け渡していく。優先度が最も低いパケットMは第Mバッファ21−Mに受け渡される。
【0022】
受信パケットバッファ20におけるバッファ21は、受信パケットが相当に増加したような場合に輻輳状態となる可能性がある。バッファ21−0乃至21−Mの各々は、その容量に応じて複数のパケットを格納可能であり、対応の優先制御用のバケット31−0乃至31−Mの各々からパケットが取り出される都度、格納順にしたがって、対応の優先制御用のバケット31に対して格納していたパケットを転送している。ここで、優先制御プロセッサコア41−0によるバケット31−0乃至31−Mからのパケット取込処理速度を越えて受信パケット数が増加すると、バッファ21が格納するパケットの数が蓄積されていく。すなわち、パケットが滞留していく。そして、このままの状態が継続すれば、バッファ21においてパケットが最大数まで格納されてしまい、パケット分散デバイス10からパケットが転送されてきてもこれ以上パケットを格納できない状態に至る。ここでは、このような状態を輻輳状態として扱う。そして、パケット分散デバイス10は、バッファ21のうちの1つでも輻輳状態となっているときにパケットを受信すると、その受信したパケットを受信パケットバッファ20に受け渡すことなく廃棄する仕様となっている。
【0023】
バケット部30は、N個のバケット31(第0バケット31−0乃至第Nバケット31−Nを備える。これらのバケット31のうち、第0バケット31−0乃至第Nバケット31−Mは優先制御に対応して備えられ、それぞれ、受信パケットバッファ20における第0バッファ21−0乃至第Mバッファ21−Mと一対一で対応している。第0バッファ21−0は、パケットが格納されると、このパケットを対応する第0バケット31−0に対して転送する。同様に、第1バッファ21−1乃至第Mバッファ21−Mは、それぞれ、第1バケット31−1乃至第Nバケット31−Mに対して、格納したパケットを転送する。バケット31は、転送されたパケットを、次に説明するマルチコアプロセッサ40が取り込むまで一時保持する。
【0024】
また、バケット31のうち、第Nバケット31−Nは、パケット廃棄処理に対応して設けられ、後述するように輻輳状態において廃棄対象として受信パケットバッファ20から転送されるパケットを一時保持する。なお、バッファ21およびバケット31のパケット格納最大数は、コンフィグレーションで設定可能とされている。
【0025】
マルチコアプロセッサ40は、n+1個のプロセッサコア41として、1つの優先制御プロセッサコア41−0と、1つのバッファ状態監視プロセッサコア41−1と、n−1個のフォワーディング処理プロセッサコア41−2乃至41−nを備える。
【0026】
優先制御プロセッサコア41−0は、パケット優先制御処理を実行する。このために優先制御プロセッサコア41−0は、例えばRWW(Weighted Round Robin)方式により設定された重み付けにしたがったタイミングで、優先制御用の第0バケット31−0乃至第Nバケット31−Mにて保持されているパケットを取り込む処理を実行する。さらに、優先制御プロセッサコア41−0は、取り込んだパケットをラウンドロビン方式によりフォワーディング処理プロセッサコア41−2乃至41−nに対して分配していく。
【0027】
フォワーディング処理プロセッサコア41−2乃至41−nは、優先制御プロセッサコア41−0によって分配されたパケットのフォワーディング処理を実行する。また、本実施の形態におけるフォワーディング処理プロセッサコア41−2乃至41−nは、輻輳状態のときには、後述するように、所定の実行比率にしたがって、パケットフォワーディング処理に加えて、廃棄処理用の第Nバケット31−Nに転送された保持されたパケットの廃棄処理を実行するようにもされている。
【0028】
バッファ状態監視プロセッサコア41−1は、一定周期ごとにバッファ21のパケット滞留数を監視する。この監視アルゴリズムとしては、例えばすべてのバッファ21ごとにパケット滞留数を監視するようにしてもよい。しかし、受信パケットバッファ20においてパケットが滞留していくときには、通常、優先度の低いバッファから滞留数が増加していくため、第Mバッファ21−Mが最初に輻輳状態に陥ることになる。そこで、本実施の形態においては最低の優先度に対応する第Mバッファ21−Mのみのパケット滞留数を監視する。これにより、例えばすべてのバッファ21を監視しなくとも、受信パケットバッファ20の状態を的確に認識することができ、監視処理の負荷が軽減される。そして、これまでの説明から理解されるように、ここでのパケットの滞留数とは、すなわち、現在におけるバッファ21のパケット格納数となる。パケット滞留数が少ないほど輻輳状態となりにくく、輻輳回避のための対策を採る必要はないといえる。これに対して、パケット滞留数が多くなるほど輻輳状態に近づいており、輻輳回避のための対策を採るべき必要性が高いといえる。
【0029】
そこで、バッファ状態監視プロセッサコア41−1は、認識されたパケット滞留数が所定の閾値を越えていなければ輻輳回避処理の必要性がない状態であると判定する。これに対して、閾値を越えていれば輻輳回避処理の必要がある状態であると判定する。
【0030】
本実施の形態のパケット交換装置1は、次に説明するように、バッファ状態監視プロセッサコア41−1により輻輳回避処理が不要であると判定された場合には、輻輳回避処理を伴わない通常の動作を実行する。また、輻輳回避処理が必要であると判定した場合には、輻輳回避処理を伴う動作を実行する。
【0031】
[パケット交換装置の動作(輻輳回避処理が不要と判定された場合)]
まず、バッファ状態監視プロセッサコア41−1により輻輳回避処理が不要であると判定された場合に対応したパケット交換装置1の動作例について、図1を参照して説明する。この説明にあたり、パケット分散デバイス10においてパケット0、1・・・Mまでの(M+1)個の入力インターフェースからのパケットが受信されているものとする。また、パケットの優先度は、パケット0>1・・・>Mの順で設定されているものとする。パケット分散デバイス10は、これらのパケット0、1・・・Mを、それぞれの優先度にしたがって、受信パケットバッファ20の第0バッファ21−0乃至第Mバッファ21−Mに適宜分配する。
【0032】
そのうえで、バッファ状態監視プロセッサコア41−1は、受信パケットバッファ20において通常の優先制御に対応した動作が実行されるように制御する。すなわち、第0バッファ21−0乃至第Mバッファ21−Mに格納されたパケットを、それぞれ、バケット部30における優先制御用の第0バケット31−0乃至第Mバケット31−Mに対して転送させるように制御する。これにより、パケット0、1・・・Mは、それぞれ、第0バケット31−0乃至第Mバケット31−Mに転送されて保持される。この際、バケット部30における廃棄処理用の第Nバケット31−Nに対してパケットは転送されておらず、したがって、第Nバケット31−Nはパケットを保持することがない状態である。
【0033】
マルチコアプロセッサ40における優先制御プロセッサコア41−0は、優先制御用の第0バケット31−0乃至第Mバケット31−Mに格納されているパケット0、1・・・Mを、前述のWRR方式にしたがった順序で取り込む。そして、取り込んだパケットをラウンドロビン方式によりフォワーディング処理プロセッサコア41−2乃至41−nに対して転送する。この場合には、パケット0、1・・・Mを、それぞれ、フォワーディング処理プロセッサコア41−2乃至41−nに転送した例が示されている。
【0034】
前述のように、このときの廃棄処理用の第Nバケット31−Nはパケットを保持しておらず空の状態にある。廃棄処理用の第Nバケット31−Nが空である場合、フォワーディング処理プロセッサコア41−2乃至41−nは、パケット廃棄処理は実行せずに、優先制御プロセッサコア41−0から転送されたパケットを外部に転送するパケットフォワーディング処理のみを実行していく。このように、輻輳状態ではない場合には通常に優先制御が実行される。
【0035】
[パケット交換装置の動作(輻輳回避処理が必要と判定された場合)]
続いて、図2を参照して、輻輳回避処理が必要と判定された場合に応じたパケット交換装置1の動作例について説明する。図2には、図1と同じ構成のパケット交換装置1が示されている。そのうえで、輻輳回避処理を伴うパケットフォワーディング処理に応じたパケットの経路例が示されている。この図において、図1と同一部分には同一符号を付している。また、図2においてもパケット0、1・・・Mが入力されており、パケット0、1・・・Mの順で優先度が低くなっていくことを前提とする。
いることを前提とする。
【0036】
バッファ状態監視プロセッサコア41−1は、輻輳回避処理が必要と判定した場合には、輻輳状態に至ることを回避するための輻輳回避処理として次の制御を実行する。すなわち、第Mバッファ21−Mのパケットの転送先について、優先制御用の第Mバケット31−Mからパケット廃棄用の第Nバケット31−Nに切り替わるように制御を実行する。これにより、第Mバッファ21−Mに格納されたパケットMは、第Mバケット31−Mではなく、第Nバケット31−Nに転送されることになる。
【0037】
マルチコアプロセッサ40におけるフォワーディング処理プロセッサコア41−2乃至42−nは、バケット部30における状態としてパケット廃棄用の第Nバケット31−Nにパケットが保持されている状態のときには、次のように動作する。すなわち、フォワーディング処理プロセッサコア41−2乃至42−nの各々は、輻輳回避処理として、所定の実行比率にしたがってパケットフォワーディング処理とパケット廃棄処理とを実行する。ここでのパケットフォワーディング処理とは、非輻輳状態のときと同様に優先制御プロセッサコア41−0から転送されてくる優先度の高いパケット0、1・・・を外部に転送する処理をいう。また、パケット廃棄処理は、パケット廃棄用の第Nバケット31−Nに保持されたパケットMを取り込んだうえで廃棄する処理をいう。
【0038】
ここで、上記の実行比率の設定例について説明しておく。例えばこの実行比率について、パケットフォワーディング処理:パケット廃棄処理=X:1のように設定しているものとする。この実行比率に応じては、パケットフォワーディング処理をX回連続して実行した後にパケット廃棄処理を1回実行するというシーケンスを繰り返し実行させることとすればよい。この実行比率についても、コンフィグレーションによって設定が可能である。また、フォワーディング処理プロセッサコア41−2乃至42−nごとに異なる実行比率の値を設定することができる。
【0039】
ここで、フォワーディング処理プロセッサコア41−2乃至42−nは、互いに他のフォワーディング処理プロセッサコア41に依存することなく独立して動作する。したがって、上記の輻輳回避処理も、フォワーディング処理プロセッサコア41−2乃至42−nごとに異なるタイミングにより実行することになる。これにより、輻輳回避のためのパケット廃棄処理は、1つのフォワーディング処理プロセッサコアに集中することなく、複数のフォワーディング処理プロセッサコア41−2乃至42−nの間で適切に分散されることになる。
【0040】
このように、本実施の形態においては、バッファ状態を監視して輻輳回避処理の要否を決定する機能を1つのバッファ状態監視プロセッサコア41−1のみに与えることとしている。これにより、フォワーディング処理に多くのプロセッサコアを割り当てることができる。そのうえで、フォワーディング処理プロセッサコア41−2乃至42−nは、パケットフォワーディング処理とバッファ廃棄処理と所定の実行比率にしたがって時分割で実行する。この際、輻輳回避のためのパケット廃棄処理は、複数のフォワーディング処理プロセッサコア41−2乃至42−n間で分散して実行される。これにより、パケットフォワーディング処理と輻輳回避処理のいずれについても高い性能を確保することが可能になる。そして、このように輻輳回避処理が実行される結果として輻輳状態に至ることが回避されるため、パケット分散デバイス10が受信パケットを廃棄する動作も回避されることになる。これにより、本実施の形態のパケット交換装置1は、輻輳状態に至ったために優先制御が実行されなくなるという状況に陥ることがなくなる。
【0041】
[パケット分散デバイスの処理手順例]
続いて、これまでに説明したパケット交換装置1の動作に対応して主要の各部が実行する処理手順例について説明することとし、まず、図3のフローチャートを参照してパケット分散デバイス10が実行する処理手順例について説明する。
【0042】
パケット分散デバイス10は、ステップS101においてパケットを受信するとともに、ステップS102において、現在、輻輳状態にあるか否かについて判定する。
【0043】
上記ステップS102において輻輳状態ではないと判定した場合、パケット分散デバイス10は、ステップS103により、受信パケットが格納する優先情報を参照して優先度を認識する。そして、パケット分散デバイス10は、ステップS104により、受信パケットバッファ20におけるバッファ21のうちで、認識した優先度に対応するバッファ21に対して適宜パケットを転送して格納させる。これに対して、ステップS102において輻輳状態であると判定した場合、パケット分散デバイス10は、ステップS105において受信したパケットを廃棄する。
【0044】
[バッファ状態監視プロセッサコアの処理手順例]
続いて、図4のフローチャートを参照してバッファ状態監視プロセッサコア41−1が実行する処理手順例について説明する。バッファ状態監視プロセッサコア41−1はステップS201において監視タイミングに至るのを待機している。そして、前回の監視タイミングから一定時間が経過して今回の監視タイミングに至るとステップS201において監視タイミングに至ったと判定し、ステップS202以降の手順を実行する。
【0045】
ステップS202において、バッファ状態監視プロセッサコア41−1はバッファ状態として、最低優先度に対応する第Mバッファ21−Mにおけるパケット滞留数を認識する。次に、ステップS203により認識したパケット滞留数が閾値以下であるか否かについて判定する。この判定に際しては、例えば、所定数以上のバッファ21のパケット滞留数が閾値を越えていれば、肯定の判定結果が得られるようなアルゴリズムとすることが考えられる。また、すべてのバッファ21ごとに個別に認識されたパケット滞留数を利用して平均値演算などにより求めた値を、閾値と比較すべきパケット滞留数として扱うようにすることが考えられる。
【0046】
バッファ状態監視プロセッサコア41−1は、ステップS203にてパケット滞留数が閾値以下であるとの肯定の判定結果が得られた場合、ステップS204により、輻輳回避処理が不要であると判定する。これに対して、パケット滞留数が閾値以下ではないとの否定の判定結果が得られた場合には、輻輳回避処理が必要であると判定する。
【0047】
[受信パケットバッファの処理手順例]
図5のフローチャートは、受信パケットバッファ20が実行する処理手順例を示している。受信パケットバッファ20は、ステップS301において、パケット分散デバイス10から分配されるパケットを、その優先度に応じたバッファ21に格納する。
【0048】
続いて、受信パケットバッファ20は、ステップS302において、バッファ状態監視プロセッサコア41−1により輻輳回避処理が必要との判定結果が得られているか否かについて判定する。ここで、輻輳回避処理が必要ではないとの判定結果が得られている場合、受信パケットバッファ20は、ステップS303において、すべてのバッファ21−0乃至21−Mに格納されているパケットを、それぞれ、対応の優先制御用のバケット31に転送させる。
【0049】
これに対して、ステップS302において輻輳回避処理が必要であるとの判定結果が得られている場合、受信パケットバッファ20は、ステップS304において、高優先度に対応するバッファ21に格納されているパケットを、それぞれ、対応の優先制御用のバケット31に転送する。当該ステップS304の処理は、図1および図2との対応では、例えば第Mバッファ21−M以外のバッファ21に格納されたパケットを、それぞれ、対応の第Mバケット31−M以外のバケット31に転送する処理となる。
【0050】
また、受信パケットバッファ20は、ステップS305により、低優先度に対応するバッファ21に格納されているパケットを、対応のバケット31に転送する。この処理は、図1および図2との対応では、例えば第Mバッファ21−Mに格納されたパケットを、第Mバケット31−Mに転送する処理となる。このステップS304からステップS305に至る処理は、バッファ状態監視プロセッサコア41−1により、輻輳回避処理が必要であるときには低優先度のパケットを廃棄処理用のバケットに転送するように受信パケットバッファ20が制御されていることを示している。
【0051】
[パケット優先制御プロセッサコアの処理手順例]
続いて、図6のフローチャートを参照してパケット優先制御プロセッサコア41−0が実行する処理手順例について説明する。優先制御プロセッサコア41−0は、ステップS401において、バッファ状態監視プロセッサコア41−1により輻輳回避処理が必要と判定されている状態であるか否かについて判定する。輻輳回避処理が必要と判定されていない場合には、バケット部30におけるすべての優先制御用のバケット(31−0乃至31−M・・・)にパケットが転送されて保持される。そこで、優先制御プロセッサコア41−0は、ステップS402において、バケット部30におけるすべての優先制御用のバケット(31−0乃至31−M・・・)からバケットを取り込む処理を実行する。
【0052】
一方、輻輳回避処理が必要と判定されている場合には、バケット部30における優先制御用のバケットのうち、高優先度に対応するバケット(31−0乃至31−(M−1))のみに対してバケットが転送される。これに応じて、優先制御プロセッサコア41−0は、ステップS403により、バケット部30における高優先度に対応した優先制御用のバケット(31−0乃至31−(M−1))からバケットを取り込む処理を実行する。なお、上記ステップS402またはS403におけるパケットの取込処理は、いずれも前述のようにWRR方式にしたがって実行される。
【0053】
そして、優先制御プロセッサコア41−0は、上記ステップS402またはS403により取り込んだパケットを、ステップS404の処理によって、例えばラウンドロビン方式にしたがってフォワーディング処理プロセッサ41−2乃至41−nに対して分配する。
【0054】
[フォワーディング処理プロセッサコアの処理手順例]
図7のフローチャートは、フォワーディング処理プロセッサコア41−2乃至41−nの各々が実行する処理手順例を示している。まず、フォワーディング処理プロセッサコア41−2乃至41−nは、ステップS501において、廃棄処理用の第Nバケット31−Nにパケットが格納されている状態であるか否かについて判定する。
【0055】
上記ステップS501においてパケットが格納されていないと判定した場合、フォワーディング処理プロセッサコア41−2乃至41−nは、ステップS502において優先制御プロセッサコア41−0から自己宛に転送されてくるパケットを取り込む。次に、ステップS503により、取り込んだパケットを外部に転送するパケットフォワーディング処理を実行する。そして、次のステップS504により、今回のステップS503のパケットフォワーディング処理が反映されるように、パケットフォワーディング処理の実行履歴を更新し、この後ステップS501に戻る。
【0056】
一方、ステップS501において自己が廃棄すべきパケットが格納されていると判定した場合にはステップS501からステップS505に進む。ステップS505においては、現在のフォワーディング処理についての実行履歴を参照し、ステップS503によるパケットフォワーディング処理が連続してX回実行されたか否かについて判定する。なお、ここで閾値として扱われるXは、コンフィグレーションによって設定されるフォワーディング処理とパケット廃棄処理の実行比率に基づいて決定される。
【0057】
上記ステップS505においてX回連続して実行されていないと判定した場合には、ステップS502以降に進むことでパケットフォワーディング処理と、その実行履歴の更新を実行する。これに対して、ステップS505においてX回連続して実行されたと判定した場合には、ステップS506により廃棄処理用のバケット31−Nからパケットを取り込み、続くステップS507により、その取り込んだパケットの廃棄処理を実行する。ステップS507の処理を実行した後はステップS501に戻る。このように各部が処理を実行することで、本実施の形態のパケット交換装置1は、パケットフォワーディング処理と輻輳回避処理の双方について十分な性能を確保してファームウェアによる優先制御(パケット制御)を実現可能とされている。
【0058】
[他の実施の形態]
続いて、本発明における他の実施の形態について説明する。他の実施の形態における機能部位の構成は、図1および図2と同様となる。そのうえで、この他の実施の形態においては、輻輳回避処理に際して、フォワーディング処理プロセッサコア41−2乃至41−nに加えて、バッファ状態監視プロセッサコア41−1に対しても廃棄処理用の第Nバケット31−Nを割り当てる。これにより、輻輳回避処理において、フォワーディング処理プロセッサコア41−2乃至41−nとともにバッファ状態監視プロセッサコア41−1もパケット廃棄処理を実行することになる。なお、バッファ状態監視プロセッサコア41−1のパケット廃棄処理のタイミングについては、例えば先に説明した実行比率に相当する所定時間ごとに実行されるように設定すればよい。このような構成とすることで、パケット廃棄処理を分散して実行するプロセッサコア数が増加することとなって輻輳回避処理性能をさらに向上させることが可能になる。
【0059】
なお、これまでにおいては説明を簡単なものとすることの便宜上、廃棄処理用のバケットについては第Nバケット31−Nの1つのみとした構成を例に挙げている。しかし、例えば、廃棄処理用のバケットを複数として構成することも可能である。また、本実施の形態のパケット交換装置1はIPパケットを扱うこととしているが、例えばTCP/IP以外の通信プロトコルに対応するパケットにも対応可能である。
【0060】
また、本発明の実施の形態において説明した処理手順は、これら一連の手順を有する方法として捉えることができる。また、これら一連の手順をコンピュータに実行させるためのプログラムまたはそのプログラムを記憶する記録媒体として捉えることができる。この記録媒体としては、例えば、ブルーレイディスク(Blu−ray Disc(登録商標))、DVD(Digital Versatile Disk)、HDD(ハードディスク)、メモリカード等を挙げることができる。
【符号の説明】
【0061】
1 パケット交換装置
10 パケット分散デバイス
20 受信パケットバッファ
21−0乃至21−0 第0乃至第Mバッファ
30 バケット部
31−0乃至31−M (優先制御用)バケット
31−n (廃棄処理用)バケット
40 マルチコアプロセッサ
41−0 優先制御プロセッサコア
41−1 バッファ状態監視プロセッサコア
41−2乃至41−n フォワーディング処理プロセッサコア

【特許請求の範囲】
【請求項1】
受信したパケットをその優先度別に分配するパケット分配部と、
前記優先度ごとに対応して備えられ、前記パケット分配部により分配されたパケットのうち、自己に対応する優先度のパケットを格納する複数のバッファと、
前記複数のバッファごとに対応し、自己に対応するバッファから転送されるパケットを保持する複数の優先制御用バケットと、
自己に対して転送されるパケットを保持する少なくとも1つの廃棄処理用バケットと、
複数のプロセッサコアを備えて成るマルチコアプロセッサとを備え、
前記マルチコアプロセッサは、
前記バッファにおけるパケットの格納状態に基づいて、輻輳状態に至らないようにするための輻輳回避処理が必要であるか否かについて判定し、前記輻輳回避処理が必要であると判定された場合に、前記複数のバッファのうちの輻輳回避処理対応バッファに格納されたパケットの転送先を、当該輻輳回避処理対応バッファに対応の前記優先制御用バケットから前記廃棄処理用バケットに切り替えるバッファ状態監視プロセッサコアと、
前記優先制御用バケットにて保持されているパケットを取り込んで分配する優先制御プロセッサコアと、
前記廃棄処理用バケットにパケットが保持されていない場合には、前記優先制御プロセッサコアから分配されたパケットのフォワーディング処理のみを実行し、前記廃棄処理用バケットにパケットが保持されている場合には、前記フォワーディング処理と前記廃棄処理用バケットに保持されたパケットを廃棄するパケット廃棄処理を実行する複数のフォワーディング処理プロセッサコアとを備える、
ことを特徴とするパケット交換装置。
【請求項2】
前記バッファ状態監視プロセッサコアは、前記廃棄処理用バケットにパケットが保持されている場合には、前記複数のフォワーディング処理プロセッサコアとともに、前記廃棄処理用バケットに保持されたパケットを廃棄するパケット廃棄処理を実行する、
ことを特徴とする請求項1に記載のパケット交換装置。
【請求項3】
前記輻輳回避処理対応バッファは、前記複数のバッファにおいて優先度の低い順に選択された少なくとも1つのバッファである、
ことを特徴とする請求項1または請求項2に記載のパケット交換装置。
【請求項4】
前記バッファ状態監視プロセッサコアは、前記輻輳回避処理対応バッファにおけるパケットの格納状態に基づいて前記輻輳回避処理が必要であるか否かについて判定する、
ことを特徴とする請求項3に記載のパケット交換装置。
【請求項5】
前記フォワーディング処理プロセッサコアは、予め設定された実行比率に応じた頻度で前記フォワーディング処理と前記パケット廃棄処理を実行する、
ことを特徴とする請求項1乃至請求項4のいずれかに記載のパケット交換装置。
【請求項6】
受信されたバッファが優先度別に格納されるバッファにおけるパケットの格納状態に基づいて、輻輳状態に至らないようにするための輻輳回避処理が必要であるか否かについて判定し、前記輻輳回避処理が必要であると判定された場合に、複数の前記バッファのうちの輻輳回避処理対応バッファに格納されたパケットの転送先を、当該輻輳回避処理対応バッファ対応の優先制御用バケットから前記廃棄処理用バケットに切り替えるバッファ状態監視プロセッサコアと、
前記優先制御用バケットにて保持されているパケットを取り込んで分配する優先制御プロセッサコアと、
前記廃棄処理用バケットにパケットが保持されていない場合には、前記優先制御プロセッサコアから自己に対して分配されたパケットのフォワーディング処理のみを実行し、前記廃棄処理用バケットにパケットが保持されている場合には、前記フォワーディング処理と前記廃棄処理用バケットに保持されたパケットを廃棄するパケット廃棄処理を実行する複数のフォワーディング処理プロセッサコアと、
を備えることを特徴とするマルチコアプロセッサ。
【請求項7】
受信したパケットをその優先度別に分配させる受信パケット分配手順と、
前記優先度ごとに対応して備えられる複数のバッファの各々に、前記パケット分配部により分配された対応の優先度のパケットを格納するバッファリング手順と、
前記複数のバッファごとに対応して備えられる複数の優先制御用バケットに、対応のバッファから転送されるパケットを保持させる優先制御対応パケット保持手順と、
廃棄処理用バケットに転送されてきたパケットを保持させる廃棄処理対応パケット保持手順と、
マルチコアプロセッサにおけるバッファ状態監視プロセッサコによって、前記バッファにおけるパケットの格納状態に基づいて、輻輳状態に至らないようにするための輻輳回避処理が必要であるか否かについて判定し、前記輻輳回避処理が必要であると判定された場合に、前記複数のバッファのうちの輻輳回避処理対応バッファに格納されたパケットの転送先を、当該輻輳回避処理対応バッファに対応の前記優先制御用バケットから前記廃棄処理用バケットに切り替える輻輳回避制御手順と、
前記マルチコアプロセッサにおける優先制御プロセッサコアによって、前記優先制御用バケットにて保持されているパケットを取り込んだ後に分配する優先制御対応分配手順と、
前記マルチコアプロセッサにおける複数のフォワーディング処理プロセッサコアによって、前記廃棄処理用バケットにパケットが保持されていない場合には、前記優先制御プロセッサコアから分配されたパケットのフォワーディング処理のみを実行し、前記廃棄処理用バケットにパケットが保持されている場合には、前記フォワーディング処理と前記廃棄処理用バケットに保持されたパケットを廃棄するパケット廃棄処理を実行するパケット処理手順と、
を備えることを特徴とするパケット交換方法。
【請求項8】
マルチコアプロセッサのパケット制御方法であって、
前記マルチコアプロセッサにおけるバッファ状態監視プロセッサコアによって、受信されたバッファが優先度別に格納されるバッファにおけるパケットの格納状態に基づいて、輻輳状態に至らないようにするための輻輳回避処理が必要であるか否かについて判定し、前記輻輳回避処理が必要であると判定された場合に、複数の前記バッファのうちの輻輳回避処理対応バッファに格納されたパケットの転送先を、当該輻輳回避処理対応バッファ対応の優先制御用バケットから前記廃棄処理用バケットに切り替える輻輳回避制御手順と、
前記マルチコアプロセッサにおける優先制御プロセッサコアによって、前記優先制御用バケットにて保持されているパケットを取り込んだ後に分配する優先制御対応分配手順と、
前記マルチコアプロセッサにおける複数のフォワーディング処理プロセッサコアによって、前記廃棄処理用バケットにパケットが保持されていない場合には、前記優先制御プロセッサコアから分配されたパケットのフォワーディング処理のみを実行し、前記廃棄処理用バケットにパケットが保持されている場合には、前記フォワーディング処理と前記廃棄処理用バケットに保持されたパケットを廃棄するパケット廃棄処理を実行するパケット処理手順と、
を備えることを特徴とするパケット制御方法。
【請求項9】
マルチコアプロセッサにおけるバッファ状態監視プロセッサコアに、受信されたバッファが優先度別に格納されるバッファにおけるパケットの格納状態に基づいて、輻輳状態に至らないようにするための輻輳回避処理が必要であるか否かについて判定し、前記輻輳回避処理が必要であると判定された場合に、複数の前記バッファのうちの輻輳回避処理対応バッファに格納されたパケットの転送先を、当該輻輳回避処理対応バッファ対応の優先制御用バケットから前記廃棄処理用バケットに切り替える輻輳回避制御手順を実行させ、
前記マルチコアプロセッサにおける優先制御プロセッサコアに、前記優先制御用バケットにて保持されているパケットを取り込んだ後に分配する優先制御対応分配手順を実行させ、
前記マルチコアプロセッサにおける複数のフォワーディング処理プロセッサコアに、前記廃棄処理用バケットにパケットが保持されていない場合には、前記優先制御プロセッサコアから分配されたパケットのフォワーディング処理のみを実行し、前記廃棄処理用バケットにパケットが保持されている場合には、前記フォワーディング処理と前記廃棄処理用バケットに保持されたパケットを廃棄するパケット廃棄処理を行うパケット処理手順を実行させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2012−195723(P2012−195723A)
【公開日】平成24年10月11日(2012.10.11)
【国際特許分類】
【出願番号】特願2011−57618(P2011−57618)
【出願日】平成23年3月16日(2011.3.16)
【出願人】(000232254)日本電気通信システム株式会社 (586)
【Fターム(参考)】