(57)【要約】【課題】複数のチャネルのそれぞれを介して送信される複数のパケットのそれぞれに対して所定の処理を施す際の未稼働時間を低減する。【解決手段】Ｍ個の入力端子と、Ｍ個の入力端子にて受信された複数のパケットのそれぞれに所定の処理を施す演算部と、Ｍ個の入力端子のそれぞれに対応するＭ個の出力端子とを有する処理装置において、所定の処理が施された複数のパケットのそれぞれを記憶するＳ（Ｓ＞Ｍ）個の出力バッファと、所定の処理が施された複数のパケットのそれぞれを記憶させる出力バッファを、受信された順番に従って決定し、決定した出力バッファを識別し、そのパケットを受信した入力端子と対応付けられたバッファ情報を生成する制御部と、接続された出力端子に対応する入力端子に対応付けられたバッファ情報にて識別される出力バッファに記憶されているパケットを、接続された出力端子から出力させるＭ個の出力セレクタと、を有する。【選択図】図１
2012191305.tif 000002
【特許請求の範囲】
【請求項１】
Ｍ本の入力チャネルのそれぞれを介して送信されてきた複数のパケットのそれぞれを受信するＭ個の入力端子と、前記受信された複数のパケットのそれぞれに対して所定の処理を施す演算部と、前記Ｍ個の入力端子のそれぞれに対応付けられ、Ｍ本の出力チャネルのそれぞれと接続されたＭ個の出力端子とを有する処理装置において、
前記所定の処理が施された複数のパケットのそれぞれを記憶するＳ（Ｓ＞Ｍ）個の出力バッファと、
前記所定の処理が施された複数のパケットのそれぞれを記憶させる出力バッファを、前記Ｓ個の出力バッファの中から当該複数のパケットのそれぞれが受信された順番に従って決定し、該決定した出力バッファを識別するとともに、当該パケットを受信した入力端子に対応付けられたバッファ情報を生成する制御部と、
前記Ｍ個の出力端子のそれぞれに接続されることにより、前記Ｍ本の出力チャネルのそれぞれと接続されたＭ個の出力セレクタと、を有し、
前記Ｍ個の出力セレクタのそれぞれは、当該出力セレクタに接続された出力端子に対応する入力端子に対応付けられたバッファ情報を前記生成された順番に従って取得し、該取得したバッファ情報にて識別される出力バッファに記憶されているパケットを、当該出力セレクタに接続された出力端子から出力させる処理装置。
【請求項２】
請求項１に記載の処理装置において、
前記Ｓ個の出力バッファのうちＭ個の出力バッファのそれぞれは、前記Ｍ個の入力端子のそれぞれと対応付けられており、
前記制御部は、前記所定の処理が施された複数のパケットのそれぞれを記憶させる出力バッファを、前記Ｓ個の出力バッファのうち当該パケットを受信した入力端子に対応する出力バッファとする処理装置。
【請求項３】
請求項２に記載の処理装置において、
前記制御部は、前記所定の処理が施された複数のパケットのそれぞれを、当該パケットを受信した入力端子に対応する出力バッファに記憶させることができない場合、当該パケットを記憶させる出力バッファを、前記Ｓ個の出力バッファのうち前記Ｍ個の出力バッファ以外の出力バッファとする処理装置。
【請求項４】
Ｍ本の入力チャネルのそれぞれを介して送信されてきた複数のパケットのそれぞれを受信するＭ個の入力端子と、前記受信された複数のパケットのそれぞれに対して所定の処理を施す演算部と、前記Ｍ個の入力端子のそれぞれに対応付けられ、Ｍ本の出力チャネルのそれぞれと接続されたＭ個の出力端子と、前記所定の処理が施された複数のパケットのそれぞれを記憶するＳ（Ｓ＞Ｍ）個の出力バッファと、前記Ｍ個の出力端子のそれぞれに接続されることにより、前記Ｍ本の出力チャネルのそれぞれと接続されたＭ個の出力セレクタとを有する処理装置における未稼働時間低減方法であって、
前記所定の処理が施された複数のパケットのそれぞれを記憶させる出力バッファを、前記Ｓ個の出力バッファの中から当該複数のパケットのそれぞれが受信された順番に従って決定する決定処理と、
前記決定した出力バッファを識別するとともに、当該パケットを受信した入力端子に対応付けられたバッファ情報を生成する処理と、
前記Ｍ個の出力セレクタのそれぞれに接続された出力端子に対応する入力端子に対応付けられたバッファ情報を前記生成された順番に従って取得する処理と、
前記取得したバッファ情報にて識別される出力バッファに記憶されているパケットを、当該出力セレクタに接続された出力端子から出力させる処理と、を有する未稼働時間低減方法。
【請求項５】
請求項４に記載の未稼働時間低減方法において、
前記Ｓ個の出力バッファのうちＭ個の出力バッファのそれぞれは、前記Ｍ個の入力端子のそれぞれと対応付けられており、
前記決定処理では、前記所定の処理が施された複数のパケットのそれぞれを記憶させる出力バッファを、前記Ｓ個の出力バッファのうち当該パケットを受信した入力端子に対応する出力バッファとする未稼働時間低減方法。
【請求項６】
請求項５に記載の未稼働時間低減方法において、
前記決定処理では、前記所定の処理が施された複数のパケットのそれぞれを、当該パケットを受信した入力端子に対応する出力バッファに記憶させることができない場合、当該パケットを記憶させる出力バッファを、前記Ｓ個の出力バッファのうち前記Ｍ個の出力バッファ以外の出力バッファとする未稼働時間低減方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、受信したパケットに所定の処理を施して出力する処理装置および未稼働時間低減方法に関する。
【背景技術】
【０００２】
複数のパケットから構成されるストリームに対して所定の処理を施す処理装置が通信回線によって接続されたコンピュータシステムにおいて、その通信回線に設定された複数のチャネルのそれぞれの帯域の長時間の平均値は確定している。しかし、複数のチャネルのそれぞれを介して送信される複数のパケットのゆらぎによっては、その複数のチャネルを合わせた帯域の瞬時値は、その複数のチャネルを合わせた帯域の長時間の平均値の合計よりも大きくなることがある。この場合、処理装置に大きな負荷がかかることになる。
【０００３】
この負荷の最大値に合わせて処理装置を設計した場合、その処理装置において所定の処理を施していない時間である未稼働時間が長くなってしまう。
【０００４】
そこで、複数のチャネルのそれぞれを介して送信される複数のストリームのそれぞれを構成するパケットのゆらぎを抑制し、処理装置にかかる負荷の最大値を低減するために、処理装置とは別にトラフィックシェーパを設ける必要がある。
【０００５】
なお、一般的に利用されるトラフィックシェーパに関する技術が例えば、非特許文献１、２に開示されている。
【０００６】
図６は、トラフィックシェーパの動作を説明するための図であり、（ａ）はトラフィックシェーパを設けたコンピュータシステムの構成の一例を示す図、（ｂ）はトラフィックシェーパがパケットのゆらぎを抑制する動作を説明するための図である。なお、図６（ａ）においては、パケットが図中左から右の方向へ送信されているものとする。
【０００７】
図６（ａ）に示すコンピュータシステムは、処理装置１００と、処理装置１００の前段に設けられたトラフィックシェーパ２００と、ネットワーク／スイッチ３００とを備えている。
【０００８】
なお、トラフィックシェーパ２００は、接続された通信回線に設定された複数のチャネルのそれぞれと対応付けられた複数のバッファ（不図示）を備えている。
【０００９】
また、ネットワーク／スイッチ３００は通信回線１５１，１５２に接続され、ネットワーク／スイッチ３００とトラフィックシェーパ２００とは通信回線１５３によって接続され、トラフィックシェーパ２００と処理装置１００とは通信回線１５４によって接続されている。なお、通信回線１５１，１５２には１本のチャネルが設定されており、通信回線１５３，１５４には２本のチャネルが設定されているものとする。
【００１０】
また、図６（ｂ）においては、通信回線１５１に設定されたチャネルを介して送信されてきた複数のパケットのそれぞれを白の長方形で表しており、通信回線１５２に設定されたチャネルを介して送信されてきた複数のパケットのそれぞれを黒の長方形で表している。
【００１１】
ここで、通信回線１５１，１５２のそれぞれに設定されたチャネルを介して複数のパケットが送信されてきた場合を考えてみる。
【００１２】
図６（ｂ）に示すように、通信回線１５１，１５２のそれぞれに設定されたチャネルを介して送信されてきた複数のパケットは、ネットワーク／スイッチ３００によって統合され、通信回線１５３を介してトラフィックシェーパ２００へ送信される。
【００１３】
図６（ｂ）を参照すると、通信回線１５３によって送信されている複数のパケットは、その間隔が狭い部分と広い部分とがある。この状態のままこれら複数のパケットを処理装置１００へ送信すると、処理装置１００にかかる負荷が大きくなってしまう可能性がある。
【００１４】
このような場合、トラフィックシェーパ２００は、受信した複数のパケットのそれぞれを、そのパケットが送信されてきたチャネルに対応するバッファに一時的に記憶させてから処理装置１００へ送信する。図６（ｂ）に示すように、通信回線１５４によって送信されている複数のパケットは、通信回線１５３によって送信されている複数のパケットと比べ、その間隔が平均化されている。
【００１５】
このように、トラフィックシェーパを設けることにより、処理装置を設計する際の負荷の最大値を抑制することができ、処理装置における未稼働時間を低減することが可能となる。
【００１６】
図７は、トラフィックシェーパおよび処理装置の動作の具体例を説明するための図であり、（ａ）は複数のパケットのそれぞれがトラフィックシェーパにて受信された時刻をチャネル毎に示す図、（ｂ）はトラフィックシェーパが備える複数のバッファに記憶されたパケットの数をチャネル毎に示す図、（ｃ）は複数のパケットのそれぞれがトラフィックシェーパから出力される時刻をチャネル毎に示す図、（ｄ）は所定の処理が施された複数のパケットのそれぞれが処理装置から出力される時刻をチャネル毎に示す図である。
【００１７】
なお、図７は、チャネル数が４である場合を示している。また、図７（ａ）、（ｃ）、（ｄ）において、４つのチャネルのそれぞれの行の数字は、パケットを示しており、例えば図７（ａ）において、時刻１とチャネル１とに対応する「１」は、チャネル１を介して送信されてきた１番目のパケットを示している。同様に、時刻１０とチャネル１とに対応する「２」は、チャネル１を介して送信されてきた２番目のパケットを示している。
【００１８】
図７（ａ）を参照すると、トラフィックシェーパは、時刻９までの間、チャネル２を介して送信されてきた多くのパケットを受信する。
【００１９】
トラフィックシェーパは、図７（ｂ）に示すように、これらのパケットをチャネル２に対応するバッファに記憶させる。そして、トラフィックシェーパは、図７（ｃ）に示すように、チャネル２を介して送信されてきたパケットを、他のチャネルを介して送信されてきたパケットとほぼ同じ頻度で出力する。
【００２０】
処理装置は、トラフィックシェーパから送信されてきた複数のパケットのそれぞれを受信し、図７（ｄ）に示すように、受信した複数のパケットのそれぞれに所定の処理を単位時間で施して出力する。なお、図７（ｄ）は、チャネル１〜４のいずれも帯域制御がされておらず、パケットに所定の処理を施した後、そのパケットをすぐに出力できた場合を示している。
【先行技術文献】
【非特許文献】
【００２１】
【非特許文献１】http://www.sii.co.jp/ns/product/BlueBrickEX/BlueBrickEX_tc1.html
【非特許文献２】http://www.anritsu.com/ja-JP/Products-Solutions/Products/EC2201A-EC2211A.aspx
【発明の概要】
【発明が解決しようとする課題】
【００２２】
上述したように、トラフィックシェーパは、受信したパケットをバッファに一時的に記憶させる。例えばチャネル２を介して送信されてきた６番目のパケットは図７（ａ）に示すように、時刻９においてトラフィックシェーパにて受信されているが、このパケットは図７（ｄ）に示すように時刻２４にて処理装置から出力されることになる。
【００２３】
つまり、トラフィックシェーパを設けることにより、遅延が発生してしまうという問題点がある。また、処理装置とは別にトラフィックシェーパを設けることにより、システム規模が増大してしまう。
【００２４】
ここで、処理装置を並列化および多段化した場合を考えてみる。
【００２５】
図８は、図６（ａ）に示した構成を並列化および多段化した場合の構成の一例を示す図である。
【００２６】
図８に示すように複数のトラフィックシェーパが設けられることにより、システム規模や遅延がさらに増大してしまう。
【００２７】
また、図７（ｃ）を参照すると、時刻３、４、８、９においては、トラフィックシェーパからパケットが出力されていない。つまり、パケットが処理装置へ送信されていない。これは、トラフィックシェーパが、チャネル２を介して送信されてきたパケットをバッファに一時的に記憶させることにより、チャネル２を介して送信されるパケットを出力する頻度を抑制したためである。
【００２８】
このように、トラフィックシェーパを設けることによって却って、処理装置における未稼働時間が増大してしまう可能性がある。
【００２９】
本発明は、複数のチャネルのそれぞれを介して送信される複数のパケットのそれぞれに対して所定の処理を施す際の未稼働時間を低減することができる処理装置および未稼働時間低減方法を提供することを目的とする。
【課題を解決するための手段】
【００３０】
上記目的を達成するために本発明の処理装置は、Ｍ本の入力チャネルのそれぞれを介して送信されてきた複数のパケットのそれぞれを受信するＭ個の入力端子と、前記受信された複数のパケットのそれぞれに対して所定の処理を施す演算部と、前記Ｍ個の入力端子のそれぞれに対応付けられ、Ｍ本の出力チャネルのそれぞれと接続されたＭ個の出力端子とを有する処理装置において、
前記所定の処理が施された複数のパケットのそれぞれを記憶するＳ（Ｓ＞Ｍ）個の出力バッファと、
前記所定の処理が施された複数のパケットのそれぞれを記憶させる出力バッファを、前記Ｓ個の出力バッファの中から当該複数のパケットのそれぞれが受信された順番に従って決定し、該決定した出力バッファを識別するとともに、当該パケットを受信した入力端子に対応付けられたバッファ情報を生成する制御部と、
前記Ｍ個の出力端子のそれぞれに接続されることにより、前記Ｍ本の出力チャネルのそれぞれと接続されたＭ個の出力セレクタと、を有し、
前記Ｍ個の出力セレクタのそれぞれは、当該出力セレクタに接続された出力端子に対応する入力端子に対応付けられたバッファ情報を前記生成された順番に従って取得し、該取得したバッファ情報にて識別される出力バッファに記憶されているパケットを、当該出力セレクタに接続された出力端子から出力させる。
【００３１】
また、上記目的を達成するために本発明の未稼働時間低減方法は、Ｍ本の入力チャネルのそれぞれを介して送信されてきた複数のパケットのそれぞれを受信するＭ個の入力端子と、前記受信された複数のパケットのそれぞれに対して所定の処理を施す演算部と、前記Ｍ個の入力端子のそれぞれに対応付けられ、Ｍ本の出力チャネルのそれぞれと接続されたＭ個の出力端子と、前記所定の処理が施された複数のパケットのそれぞれを記憶するＳ（Ｓ＞Ｍ）個の出力バッファと、前記Ｍ個の出力端子のそれぞれに接続されることにより、前記Ｍ本の出力チャネルのそれぞれと接続されたＭ個の出力セレクタとを有する処理装置における未稼働時間低減方法であって、
前記所定の処理が施された複数のパケットのそれぞれを記憶させる出力バッファを、前記Ｓ個の出力バッファの中から当該複数のパケットのそれぞれが受信された順番に従って決定する決定処理と、
前記決定した出力バッファを識別するとともに、当該パケットを受信した入力端子に対応付けられたバッファ情報を生成する処理と、
前記Ｍ個の出力セレクタのそれぞれに接続された出力端子に対応する入力端子に対応付けられたバッファ情報を前記生成された順番に従って取得する処理と、
前記取得したバッファ情報にて識別される出力バッファに記憶されているパケットを、当該出力セレクタに接続された出力端子から出力させる処理と、を有する。
【発明の効果】
【００３２】
本発明は以上説明したように構成されているので、処理装置の処理能力を最大限に利用できるように、処理装置が備えるＭ個の入力端子のそれぞれにおける帯域の平均値の総和をＭ本のチャネルのそれぞれに分配していることになる。これにより、処理装置における未稼働時間が最小化される。
【００３３】
従って、複数のチャネルのそれぞれの帯域がパケットのゆらぎによって変動する場合でも、複数のチャネルのそれぞれを介して送信される複数のパケットのそれぞれに対して所定の処理を施す際の未稼働時間を低減することができる。
【図面の簡単な説明】
【００３４】
【図１】本発明の処理装置の実施の一形態の構成を示すブロック図である。
【図２】図１に示した処理装置を並列化および多段化した場合の構成の一例を示す図である。
【図３】図１および図２に示した処理装置の動作を説明するためのフローチャートである。
【図４】図１および図２に示した処理装置の動作の具体例を説明するための図であり、（ａ）は複数のパケットのそれぞれが処理装置にて受信された時刻をチャネル毎に示す図、（ｂ）は出力バッファにて記憶されているパケットの数をチャネル毎に示す図、（ｃ）は所定の処理が施された複数のパケットのそれぞれが処理装置から出力される時刻をチャネル毎に示す図である。
【図５】図１および図２に示した処理装置の動作の他の具体例を説明するための図であり、（ａ）は複数のパケットのそれぞれが処理装置にて受信された時刻をチャネル毎に示す図、（ｂ）は出力バッファにて記憶されているパケットの数をチャネル毎に示す図、（ｃ）は所定の処理が施された複数のパケットのそれぞれが処理装置から出力される時刻をチャネル毎に示す図である。
【図６】トラフィックシェーパの動作を説明するための図であり、（ａ）はトラフィックシェーパを設けたコンピュータシステムの構成の一例を示す図、（ｂ）はトラフィックシェーパがパケットのゆらぎを抑制する動作を説明するための図である。
【図７】トラフィックシェーパおよび処理装置の動作の具体例を説明するための図であり、（ａ）は複数のパケットのそれぞれがトラフィックシェーパにて受信された時刻をチャネル毎に示す図、（ｂ）はトラフィックシェーパが備える複数のバッファに記憶されたパケットの数をチャネル毎に示す図、（ｃ）は複数のパケットのそれぞれがトラフィックシェーパから出力される時刻をチャネル毎に示す図、（ｄ）は所定の処理が施された複数のパケットのそれぞれが処理装置から出力される時刻をチャネル毎に示す図である。
【図８】図６（ａ）に示した構成を並列化および多段化した場合の構成の一例を示す図である。
【発明を実施するための形態】
【００３５】
以下に、本発明の実施の形態について図面を参照して説明する。
【００３６】
図１は、本発明の処理装置の実施の一形態の構成を示すブロック図である。
【００３７】
本実施形態の処理装置１０は図１に示すように、入力端子１１−１〜１１−４と、出力端子１２−１〜１２−４と、入力セレクタ１３と、演算部１４と、出力バッファスイッチ１５と、出力バッファ１６−１〜１６−ｎと、記憶部１７−１〜１７−４と、出力セレクタ１８−１〜１８−４と、制御部１９とを備えている。
【００３８】
なお、入力端子、出力端子、記憶部および出力セレクタのそれぞれは、Ｍ個備えられており、図１はＭ＝４の場合を一例として示している。また、出力バッファは、Ｓ（Ｓ＞Ｍ）個備えられている。
【００３９】
入力端子１１−１〜１１−４のそれぞれは、４本の入力チャネルのそれぞれと接続され、その４本の入力チャネルを介して送信されてきたパケットを受信する。入力端子１１−１〜１１−４のそれぞれは、４本の入力チャネルのそれぞれと対応付けられている。なお、４本の入力チャネルのそれぞれには、チャネル番号が付与されている。従って、入力端子１１−１〜１１−４のそれぞれは、チャネル番号にて識別することが可能となる。ここでは、入力端子１１−１がチャネル番号１にて識別され、入力端子１１−２がチャネル番号２にて識別され、入力端子１１−３がチャネル番号３にて識別され、入力端子１１−４がチャネル番号４にて識別されるものとする。
【００４０】
出力端子１２−１〜１２−４のそれぞれは、４本の出力チャネルのそれぞれと接続されている。また、出力端子１２−１〜１２−４のそれぞれは、入力端子１１−１〜１１−４のそれぞれと対応付けられている。従って、出力端子１２−１〜１２−４のそれぞれは、入力端子１１−１〜１１−４のそれぞれと同様に、チャネル番号にて識別することが可能となる。ここでは、出力端子１２−１がチャネル番号１にて識別され、出力端子１２−２がチャネル番号２にて識別され、出力端子１２−３がチャネル番号３にて識別され、出力端子１２−４がチャネル番号４にて識別されるものとする。つまり、出力端子１２−１は入力端子１１−１と対応付けられ、出力端子１２−２は入力端子１１−２と対応付けられ、出力端子１２−３は入力端子１１−３と対応付けられ、出力端子１２−４は入力端子１１−４と対応付けられていることになる。
【００４１】
なお、以降、入力チャネルと出力チャネルとをまとめていうときは、単にチャネルという。
【００４２】
入力セレクタ１３は、入力端子１１−１〜１１−４のそれぞれにて受信された複数のパケットのそれぞれを、後述する制御部１９からの指示に従って演算部１４へ出力する。
【００４３】
演算部１４は、入力セレクタ１３から出力された複数のパケットのそれぞれを受け付ける。そして、演算部１４は、受け付けた複数のパケットのそれぞれに対して所定の処理を施して出力バッファスイッチ１５へ出力する。
【００４４】
出力バッファスイッチ１５は、演算部１４から出力された複数のパケットのそれぞれを受け付ける。そして、出力バッファスイッチ１５は、受け付けた複数のパケットのそれぞれを、出力バッファ１６−１〜１６−ｎのうち制御部１９から指示された出力バッファへ出力する。
【００４５】
出力バッファ１６−１〜１６−ｎのそれぞれは、出力バッファスイッチ１５から出力されたパケットを受け付ける。そして、出力バッファ１６−１〜１６−ｎのそれぞれは、受け付けたパケットを一時的に記憶する。なお、出力バッファ１６−１〜１６−ｎは、１つのパケットを記憶する容量を持つ。また、出力バッファ１６−１〜１６−ｎのそれぞれは、バッファ情報であるバッファ番号にて識別される。ここでは、出力バッファ１６−１がバッファ番号１にて識別され、出力バッファ１６−２がバッファ番号２にて識別され、以降、出力バッファ１６−ｋがバッファ番号ｋにて識別されているものとする。ここで、あるチャネル番号にて識別される入力端子と、そのチャネル番号と同じバッファ番号にて識別される出力バッファとは対応付けられている。従って、ここでは、チャネル番号１にて識別される入力端子１１−１と、バッファ番号１にて識別される出力バッファ１６−１とが対応付けられていることになる。また、ここでは、５以上のバッファ番号にて識別される出力バッファには、対応する入力端子がないことになる。また、出力バッファ１６−１〜１６−ｎのそれぞれに記憶されたパケットは後述する出力セレクタ１８−１〜１８−４のいずれかを介して出力される。このとき、出力バッファ１６−１〜１６−ｎのそれぞれは、その出力バッファに記憶されているパケットのすべてを出力するまで、その出力セレクタを占有する。
【００４６】
記憶部１７−１〜１７−４のそれぞれは、チャネル番号にて識別される。ここでは、記憶部１７−１がチャネル番号１にて識別され、記憶部１７−２がチャネル番号２にて識別され、記憶部１７−３がチャネル番号３にて識別され、記憶部１７−４がチャネル番号４にて識別されるものとする。記憶部１７−１〜１７−４のそれぞれは、制御部１９から出力されるバッファ番号を受け付ける。そして、記憶部１７−１〜１７−４のそれぞれは、受け付けたバッファ番号を記憶する。なお、記憶部１７−１〜１７−４のそれぞれは、ＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）に従い、制御部１９から出力されたバッファ番号を記憶する。つまり、記憶部１７−１〜１７−４のそれぞれは、制御部１９から出力された順番を維持しながらバッファ番号を記憶する。これにより、記憶された順番が最も古いものが出力端に記憶されることになる。
【００４７】
出力セレクタ１８−１〜１８−４のそれぞれは、出力端子１２−１〜１２−４のそれぞれと接続されている。従って、出力セレクタ１８−１〜１８−４のそれぞれは、出力端子１２−１〜１２−４のそれぞれに接続された４本の出力チャネルのそれぞれと接続されていることになる。また、出力セレクタ１８−１〜１８−４のそれぞれは、記憶部１７−１〜１７−４のそれぞれと接続されている。出力セレクタ１８−１〜１８−４のそれぞれは、その出力セレクタが出力バッファ１６−１〜１６−ｎのいずれかによって占有されていない場合、記憶部１７−１〜１７−４のうちその出力セレクタに接続された記憶部の出力端に記憶されたバッファ番号を取得する。そして、出力セレクタ１８−１〜１８−４のそれぞれは、出力バッファ１６−１〜１６−ｎのうち、取得したバッファ番号にて識別される出力バッファに記憶されたパケットを、その出力セレクタに接続された出力端子から出力する。
【００４８】
制御部１９は、入力端子１１−１〜１１−４にてパケットが受信されたことを検知する。そして、制御部１９は、入力端子１１−１〜１１−４のそれぞれにて受信された複数のパケットのそれぞれを、受信された順番に従って演算部１４へ出力するように入力セレクタ１３へ指示する。また、制御部１９は、出力バッファ１６−１〜１６−ｎの中から所定の処理が施された複数のパケットのそれぞれを記憶させる出力バッファを、それら複数のパケットのそれぞれが受信された順番に従って決定する。そして、制御部１９は、決定した出力バッファへパケットを出力するように、出力バッファスイッチ１５に指示する。具体的には、制御部１９はまず、複数のパケットのそれぞれが受信された入力端子を識別するチャネル番号と同じバッファ番号にて識別される出力バッファが空いているかどうかを確認する。つまり、制御部１９は、複数のパケットのそれぞれが受信された入力端子を識別するチャネル番号と同じバッファ番号にて識別される出力バッファに、そのパケットを記憶させることができるかどうかを確認する。確認の結果、複数のパケットのそれぞれが受信された入力端子を識別するチャネル番号と同じバッファ番号にて識別される出力バッファが空いている場合、制御部１９は、その出力バッファへパケットを出力するように、出力バッファスイッチ１５に指示する。一方、確認の結果、複数のパケットのそれぞれが受信された入力端子を識別するチャネル番号と同じバッファ番号にて識別される出力バッファが空いていない場合、制御部１９は、出力バッファ１６−１〜１６−ｎのうち、チャネル番号と同じバッファ番号にて識別される出力バッファ以外の出力バッファのいずれかが空いているかどうかを確認する。すなわち、本実施形態では、制御部１９は、５以上のバッファ番号にて識別される出力バッファのいずれかが空いているかどうかを確認する。確認の結果、出力バッファ１６−１〜１６−ｎのうち、チャネル番号と同じバッファ番号にて識別される出力バッファ以外の出力バッファのいずれかが空いている場合、制御部１９は、その出力バッファへパケットを出力するように、出力バッファスイッチ１５に指示する。一方、確認の結果、出力バッファ１６−１〜１６−ｎのうち、チャネル番号と同じバッファ番号にて識別される出力バッファ以外の出力バッファのいずれも空いていない場合、制御部１９は、例えば以下の（１）〜（４）に示す動作のいずれかを出力バッファスイッチ１５を介して実行する。
（１）受信したパケットを破棄する。
（２）チャネル番号と同じバッファ番号にて識別される出力バッファの中から、何らかの方法でいくつかの出力バッファを選択し、選択した出力バッファに記憶されているパケットを破棄する。
（３）チャネル番号と同じバッファ番号にて識別されるすべての出力バッファに記憶されているパケットを破棄する。
（４）任意のバッファ番号を選択し、選択されたバッファ番号にて識別される出力バッファに記憶されたパケットを破棄する。
【００４９】
そして、制御部１９は、上述した（２）〜（４）のように、出力バッファに記憶されているパケットを破棄した場合、その出力バッファにパケットを出力するように、出力バッファスイッチ１５に指示する。次に、制御部１９は、所定の処理が施された複数のパケットのそれぞれが出力バッファ１６−１〜１６−ｎのいずれかに記憶されると、その出力バッファを識別するバッファ番号を生成する。そして、制御部１９は、その複数のパケットのそれぞれが受信された入力端子を識別するチャネル番号にて識別される記憶部に、生成したバッファ番号を、生成した順番に従って出力する。また、制御部１９は、出力セレクタ１８−１〜１８−４のそれぞれが出力バッファ１６−１〜１６−ｎのそれぞれに記憶されたパケットを出力すると、その出力セレクタに接続された記憶部が記憶している出力端のバッファ番号を削除する。
【００５０】
図２は、図１に示した処理装置１０を並列化および多段化した場合の構成の一例を示す図である。
【００５１】
図１に示した処理装置１０を並列化および多段化した場合の構成は図２に示すように、図８に示した構成と比較すると、トラフィックシェーパが設けられていない点が異なり、２つの処理装置１０が直接接続されている。
【００５２】
以下に、上記のように構成された処理装置の動作について説明する。
【００５３】
図３は、図１および図２に示した処理装置１０の動作を説明するためのフローチャートである。
【００５４】
まず、入力端子１１−１〜１１−４のそれぞれは、４本の入力チャネルのそれぞれを介して送信されてきた複数のパケットのそれぞれを受信する（ステップＳ１）。
【００５５】
次に、制御部１９は、入力端子１１−１〜１１−４のそれぞれにてパケットが受信されたことを検知する。そして、制御部１９は、入力端子１１−１〜１１−４のそれぞれにて受信された複数のパケットのそれぞれを、受信された順番に従って演算部１４へ出力するように入力セレクタ１３へ指示する。
【００５６】
入力セレクタ１３は、制御部１９からの指示に従い、入力端子１１−１〜１１−４のそれぞれにて受信された複数のパケットのそれぞれを、受信された順番に従って演算部１４へ出力する。
【００５７】
入力セレクタ１３から出力された複数のパケットのそれぞれを受け付けた演算部１４は、受け付けた複数のパケットのそれぞれに対して所定の処理の処理を施す（ステップＳ２）。
【００５８】
次に、制御部１９は、複数のパケットのそれぞれが受信された入力端子を識別するチャネル番号と同じバッファ番号にて識別される出力バッファが空いているかどうかを確認する（ステップＳ３）。
【００５９】
ステップＳ３における確認の結果、複数のパケットのそれぞれが受信された入力端子を識別するチャネル番号と同じバッファ番号にて識別される出力バッファが空いている場合、制御部１９は、所定の処理が施されたパケットをその出力バッファへ出力するように、出力バッファスイッチ１５に指示する。
【００６０】
次に、出力バッファスイッチ１５は、所定の処理が施されたパケットをその出力バッファへ記憶させる（ステップＳ４）。
【００６１】
次に、制御部１９は、出力バッファ１６−１〜１６−ｎのうち、ステップＳ４にてパケットを記憶した出力バッファを識別するバッファ番号を生成する。
【００６２】
そして、制御部１９は、記憶部１７−１〜１７−４のうち、ステップＳ４にて記憶させたパケットが受信された入力端子を識別するチャネル番号にて識別される記憶部に、生成したバッファ番号を出力する。
【００６３】
制御部１９から出力されたバッファ番号を受け付けた記憶部１７−１〜１７−４のそれぞれは、ＦＩＦＯに従い、受け付けたバッファ番号を記憶する（ステップＳ５）
次に、出力セレクタ１８−１〜１８−４のそれぞれは、その出力セレクタが出力バッファ１６−１〜１６−ｎのいずれかによって占有されていない状態において、記憶部１７−１〜１７−４のうちその出力セレクタに接続された記憶部の出力端に記憶されたバッファ番号を取得する（ステップＳ６）。
【００６４】
そして、出力セレクタ１８−１〜１８−４のそれぞれは、出力バッファ１６−１〜１６−ｎのうち、取得したバッファ番号にて識別される出力バッファに記憶されたパケットを、その出力セレクタに接続された出力端子から出力する（ステップＳ７）。
【００６５】
ここで、ステップＳ３における確認の結果、複数のパケットのそれぞれが受信された入力端子を識別するチャネル番号と同じバッファ番号にて識別される出力バッファが空いていない場合、制御部１９は、チャネル番号と同じバッファ番号にて識別される出力バッファ以外の出力バッファのいずれかが空いているかどうかを確認する（ステップＳ８）。
【００６６】
ステップＳ８における確認の結果、チャネル番号と同じバッファ番号にて識別される出力バッファ以外の出力バッファのいずれかが空いている場合、制御部１９は、所定の処理が施されたパケットをその出力バッファへ出力するように、出力バッファスイッチ１５に指示する。
【００６７】
そして、出力バッファスイッチ１５は、所定の処理が施されたパケットをその出力バッファへ記憶させる（ステップＳ９）。そして、ステップＳ５の動作へ遷移する。
【００６８】
一方、ステップＳ８における確認の結果、チャネル番号と同じバッファ番号にて識別される出力バッファ以外の出力バッファのいずれも空いていない場合、制御部１９は、例えば上述した（２）〜（４）等の動作により、出力バッファ１６−１〜１６−ｎのうちのいずれかに記憶されているパケットを破棄する（ステップＳ１０）。なお、上述した（１）のように、受信したパケットを破棄することも可能である。
【００６９】
そして、制御部１９は、記憶されているパケットを破棄した出力バッファに、所定の処理が施されたパケットを出力するように、出力バッファスイッチ１５に指示する。
【００７０】
そして、出力バッファスイッチ１５は、所定の処理が施されたパケットをその出力バッファへ記憶させる（ステップＳ１１）。そして、ステップＳ５の動作へ遷移する。
【００７１】
次に、図３を参照しながら説明した動作の具体例を示す。
【００７２】
図４は、図１および図２に示した処理装置１０の動作の具体例を説明するための図であり、（ａ）は複数のパケットのそれぞれが処理装置１０にて受信された時刻をチャネル毎に示す図、（ｂ）は出力バッファ１６−１〜１６−ｎにて記憶されているパケットの数をチャネル毎に示す図、（ｃ）は所定の処理が施された複数のパケットのそれぞれが処理装置１０から出力される時刻をチャネル毎に示す図である。
【００７３】
なお、本具体例では、説明をわかりやすくするため、処理装置は、あるパケットに所定の処理を施した副作用を、その後に所定の処理が施されるパケットに残さないものとしている。
【００７４】
また、図４は、複数の出力チャネルのいずれも帯域制御がされていない場合を示している。また、図４（ａ）に示す複数のパケットのそれぞれが受信された時刻は、比較をしやすいように、図７（ａ）に示す複数のパケットのそれぞれが受信された時刻と同じにしている。
【００７５】
図４（ｃ）を参照すると、図７（ｄ）に示した場合と異なり、チャネル番号２にて識別される入力端子にて受信された２番目および３番目のパケットに所定の処理を施した２つのパケットのそれぞれが時刻４および時刻５で出力されている。つまり、図７に示した場合と比べて遅延が小さくなる。
【００７６】
図５は、図１および図２に示した処理装置１０の動作の他の具体例を説明するための図であり、（ａ）は複数のパケットのそれぞれが処理装置１０にて受信された時刻をチャネル毎に示す図、（ｂ）は出力バッファ１６−１〜１６−ｎにて記憶されているパケットの数をチャネル毎に示す図、（ｃ）は所定の処理が施された複数のパケットのそれぞれが処理装置１０から出力される時刻をチャネル毎に示す図である。
【００７７】
なお、図５は、出力端子１２−２に接続された出力チャネルにおいて帯域制御がされている場合を示している。また、図５（ａ）に示す複数のパケットのそれぞれが受信された時刻は、比較をしやすいように、図７（ａ）に示す複数のパケットのそれぞれが受信された時刻と同じにしている。
【００７８】
時刻３において出力端子１２−２に接続された出力チャネルにおいて帯域制御が開始されている。この時点では、出力端子１２−１〜１２−４のうち出力端子１２−２以外の出力端子に接続された出力チャネルへ出力するパケットがない。そのため、図５（ｃ）に示すように、時刻３において出力されるパケットはない。
【００７９】
出力端子１２−２から出力されるはずであったチャネル番号２にて識別される入力端子にて受信された１番目のパケットは、出力バッファ１６−２に記憶されている。そして、時刻４以降、チャネル番号２にて識別される入力端子にて受信されたパケットは、受信された順番どおりに出力されている。
【００８０】
このように本実施形態において処理装置１０は、所定の処理が施された複数のパケットのそれぞれを記憶させる出力バッファを、出力バッファ１６−１〜１６−ｎの中から当該複数のパケットのそれぞれが受信された順番に従って決定する。
【００８１】
また、処理装置１０は、決定した出力バッファを識別するとともに、当該パケットを受信した入力端子に対応付けられたバッファ情報を生成する。
【００８２】
また、処理装置１０は、出力セレクタ１８−１〜１８−４のそれぞれに接続された出力端子に対応する入力端子に対応付けられたバッファ情報を、生成された順番に従って取得する。
【００８３】
そして、処理装置１０は、取得したバッファ情報にて識別される出力バッファに記憶されているパケットを、当該出力セレクタに接続された出力端子から出力させる。
【００８４】
ここで、図２に示したように、図１に示した処理装置１０を並列化および多段化した場合、複数の処理装置１０間の結線と、最後の処理装置１０の入力端子に接続された入力チャネルの帯域とにより、各処理装置１０のＭ個の入力端子のそれぞれにおける帯域の単位時間あたりの平均値がわかる。
【００８５】
具体的には、以下に説明するとおりである。まず、複数の処理装置１０のうちのある処理装置を処理装置ｉとし、処理装置ｉが備えるある入力端子を入力端子ａiとし、処理装置ｉ内において入力端子ａiに対応する出力端子を出力端子ｂiとする。このとき、入力端子ａiにて複数のパケットが受信されたときの帯域をｒ（ａi）とすると、出力端子ｂiにおける帯域は、ｆ（ｒ（ａi））にて計算される。これを、最後の処理装置１０の入力端子から、着目した処理装置１０の入力端子まで繰り返し計算することにより、その着目した処理装置１０のＭ個の入力端子のそれぞれにおける帯域の単位時間あたりの平均値がわかる。
【００８６】
この場合、処理装置１０が備えるＭ個の入力端子のそれぞれにおける帯域の単位時間あたりの平均値の総和は、複数の処理装置１０の接続形態によって異なるが、本実施形態では、処理装置１０の処理能力を最大限に利用できるように、この総和をＭ本のチャネルのそれぞれに分配していることになる。これにより、処理装置１０における未稼働時間が最小化される。
【００８７】
従って、複数のチャネルのそれぞれの帯域がパケットのゆらぎによって変動する場合でも、複数のチャネルのそれぞれを介して送信される複数のパケットのそれぞれに対して所定の処理を施す際の未稼働時間を低減することができる。
【００８８】
また、本実施形態において所定の処理が施されたパケットは、原則としてすぐに出力される。従って、トラフィックシェーパを設けた場合と比較すると、パケットを一時的に記憶する回数を低減することができ、システム規模や遅延の増大を回避することが可能となる。また、処理装置１０を並列化および多段化した場合でも図２に示すように、トラフィックシェーパを設ける必要がない。そのため、システム規模や遅延のさらなる増大を回避することが可能となる。
【００８９】
また、本実施形態においては、１つの入力チャネルに対して１つの出力バッファが固定的に確保されている。これにより、ある入力端子にて受信されるパケットのゆらぎが大きくなり、かつ、その入力端子に対応する出力端子における帯域が小さくなった場合でも、その入力端子にて受信されるパケットがすべての出力バッファを占有してしまうということがない。すなわち、あるチャネルが他のチャネルに悪影響を及ぼすのを回避することもできる。
【符号の説明】
【００９０】
１０    処理装置
１１−１〜１１−４    入力端子
１２−１〜１２−４    出力端子
１３    入力セレクタ
１４    演算部
１５    出力バッファスイッチ
１６−１〜１６−ｎ    出力バッファ
１７−１〜１７−４    記憶部
１８−１〜１８−４    出力セレクタ
１９    制御部
【図１】
2012191305.tif 000003
【図２】
2012191305.tif 000004
【図３】
2012191305.tif 000005
【図４】
2012191305.tif 000006
【図５】
2012191305.tif 000007
【図６】
2012191305.tif 000008
【図７】
2012191305.tif 000009
【図８】
2012191305.tif 000010