(57)【要約】【課題】  宛先が同じ場合に異なる中継回路を経由させる所定の規則のもとで宛先が異なる複数のデータを送信する場合に、宛先が異なる複数のデータが特定の中継回路に偏って送信されてしまうことがある。【解決手段】  コンピュータが、宛先が同じ場合には異なる中継回路を経由させる所定の規則のもとで宛先が異なる複数のデータを送信し、前記宛先が異なる複数のデータが第１中継回路に偏って送信される場合に、前記所定の規則に基づいて前記第１中継回路に送信される予定のデータを第２中継回路に送信する。【選択図】  図８
2014121040.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータが、
宛先が同じ場合には異なる中継回路を経由させる所定の規則のもとで宛先が異なる複数のデータを送信し、
前記宛先が異なる複数のデータが第１中継回路に偏って送信される場合に、前記所定の規則に基づいて前記第１中継回路に送信される予定のデータを第２中継回路に送信する
ことを特徴とする情報処理方法。
【請求項２】
前記コンピュータは、前記宛先が異なる複数のデータが前記第１中継回路に連続して所定数送信される場合に、前記宛先が異なる複数のデータが前記第１中継回路に偏って送信されると判定する
ことを特徴とする請求項１に記載の情報処理方法。
【請求項３】
前記コンピュータは、前記所定の規則に基づいて前記第１中継回路に送信される予定のデータを前記第２中継回路に送信することで、前記所定の規則に基づいて前記第１中継回路に送信される予定のデータと同じ宛先のデータが前記第２中継回路に連続して所定数送信される場合に、前記同じ宛先のデータを前記第２中継回路とは異なる中継回路に送信する
ことを特徴とする請求項１又は２の何れか１項に記載の情報処理方法。
【請求項４】
前記コンピュータは、前記第１中継回路に含まれるバッファの容量を超えるデータ量になるように前記宛先が異なる複数のデータが前記第１中継回路に連続して前記所定数送信される場合に、前記宛先が異なる複数のデータが前記第１中継回路に偏って送信されると判定する
ことを特徴とする請求項２又は３に記載の情報処理方法。
【請求項５】
前記コンピュータは、前記異なる複数のデータの送信順序を変更したとしても前記バッファの容量を超えるデータ量になるように前記宛先が異なる複数のデータが前記第１中継回路に連続して前記所定数送信される場合に、前記宛先が異なる複数のデータが前記第１中継回路に偏って送信されると判定する
ことを特徴とする請求項４に記載の情報処理方法。
【請求項６】
前記コンピュータは、前記宛先が異なる複数のデータが前記第１中継回路に偏って送信されることが予定されると、前記所定の規則に基づいて前記第１中継回路に送信される予定のデータを前記第２中継回路に送信する
請求項１〜５の何れか１項に記載の情報処理方法。
【請求項７】
前記コンピュータは、前記宛先が異なる複数のデータが前記第１中継回路に偏って送信されると、前記所定の規則に基づいて前記第１中継回路に送信される予定のデータを前記第２中継回路に送信する
請求項１〜５の何れか１項に記載の情報処理方法。
【請求項８】
前記所定の規則は、前記宛先が同じ場合には前記異なる中継回路を等しい確率で経由させる規則である
ことを特徴とする請求項１〜７の何れか１項に記載の情報処理方法。
【請求項９】
第１中継回路及び第２中継回路と、
宛先が同じ場合には前記第１中継回路及び第２中継回路のうち異なる中継回路を経由させる所定の規則のもとで宛先が異なる複数のデータを送信し、前記宛先が異なる複数のデータが前記第１中継回路に偏って送信される場合に、前記所定の規則に基づいて前記第１中継回路に送信される予定のデータを前記第２中継回路に送信する処理部と
を有することを特徴とする情報処理装置。
【請求項１０】
宛先が同じ場合には異なる中継回路を経由させる所定の規則のもとで宛先が異なる複数のデータを送信し、前記宛先が異なる複数のデータが第１中継回路に偏って送信される場合に、前記所定の規則に基づいて前記第１中継回路に送信される予定のデータを第２中継回路に送信する処理部
を有することを特徴とする情報処理回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理方法、情報処理回路、及び情報処理装置に関する。
【背景技術】
【０００２】
パケットのスイッチングをする際にパケットの転送品質をコネクション間で公平にさせるためのスケジューラが知られている。また、このスケジューラは、パケットの転送ルートを決定する際に、宛て先グループ別にパケット配分履歴負荷を計算し、パケット配分履歴負荷が最小となるルートが複数ある場合には、それらを等しい確率で選択してパケットの転送ルートとする。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００１−１３６２００号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
宛先が同じ場合に異なる中継回路を経由させる所定の規則のもとで宛先が異なる複数のデータを送信する場合に、宛先が異なる複数のデータが特定の中継回路に偏って送信されてしまうことがある。
【０００５】
本願は、特定の中継回路に偏ってデータが送信されることを抑制する情報処理方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
開示の情報処理方法によれば、コンピュータが、宛先が同じ場合には異なる中継回路を経由させる所定の規則のもとで宛先が異なる複数のデータを送信し、前記宛先が異なる複数のデータが第１中継回路に偏って送信される場合に、前記所定の規則に基づいて前記第１中継回路に送信される予定のデータを第２中継回路に送信する。
【発明の効果】
【０００７】
本開示の一側面によれば、特定の中継回路に偏ってデータが送信されることを抑制できる。
【図面の簡単な説明】
【０００８】
【図１】実施例の情報処理装置及び情報処理回路の例。
【図２】実施例の情報処理回路及びスイッチ回路の例。
【図３】スイッチングされる送信データの例。
【図４】スイッチングされる送信データの他の例。
【図５】スイッチングされる送信データの他の例。
【図６】実施例の情報処理装置及び情報処理回路の機能ブロックの例。
【図７】情報処理装置及び情報処理回路で使用される情報の例。
【図８】実施例の情報処理装置又は情報処理回路において実行される処理の例。
【図９】実施例の情報処理装置又は情報処理回路による処理に従った通信の例。
【図１０】実施例の情報処理装置又は情報処理回路による処理により更新される情報の例。
【図１１】他の通信の例。
【図１２】他の通信の例に対応して更新される情報の例。
【図１３】実施例の情報処理装置又は情報処理回路による処理に従った通信の他の例。
【図１４】実施例の情報処理装置又は情報処理回路による処理により更新される情報の他の例。
【図１５】実施例の情報処理装置及び情報処理回路の他の例。
【図１６】実施例の情報処理装置及び情報処理回路に関連するシミュレーション結果の例。
【発明を実施するための形態】
【０００９】
図１に、実施例の情報処理装置及び情報処理回路の例が示される。実施例の情報処理装置の一例である通信装置１００は、コントローラ１１０、バス１２０、ＮＩＣ（Ｎｅｔｗｏｒｋ  Ｉｎｔｅｒｆａｃｅ  Ｃａｒｄ）１３０、ＮＩＣ１４０、スイッチユニット１５０、及び信号線１６０を含む。コントローラ１１０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１１、及びメモリ１１２を有し、バス１２０に接続されている。ＮＩＣ１３０、ＮＩＣ１４０、及びスイッチユニット１５０は、バス１２０に接続されている。そして、この通信装置１００は、ネットワークにおけるルータやブリッジ等のパケット等を処理する装置として適用可能な装置である。
【００１０】
通信装置１００における各種処理を実行するためのプログラムがメモリ１１２に格納され、ＣＰＵ１１１がメモリ１１２からこのプログラムを読み出し、各種処理を実行する。ＣＰＵ１１１によって実行される各種処理に従って、ＮＩＣ１３０、ＮＩＣ１４０、及びスイッチユニット１５０の動作がバス１２０を介して制御される。なお、メモリ１１２に格納されるプログラムは、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）やフラッシュメモリなどの不揮発性メモリ、又はＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）等の磁気ディスク装置に格納されたプログラムがメモリ１１２に読み込まれたプログラムである。
【００１１】
なお、ＣＰＵ１１１は、各種処理を実行するための１以上のＣＰＵコアを含んでいてもよい。また、各ＣＰＵコアは１以上のプロセッサを含んでいてもよい。メモリ１１２は、例えばＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などのＲＡＭである。
【００１２】
ＮＩＣ１３０は、ＮＩＣ１３０にパケット等のデータを入力するための入力回路１３１、ＮＩＣ１３０からパケット等のデータを出力するための出力回路１３２、プロセッサ１３３、及びバッファ１３４を含む。ＮＩＣ１３０は、通信装置１００の外部に接続される外部装置と物理ポート及び信号線１３５を介して接続される。なお、物理ポート及び信号線１３５の数や構成に従って、ＮＩＣ１３０に含まれる入力回路１３１及び出力回路１３２の各々を１以上の数としてもよい。なお、入力回路１３１及び出力回路１３２の各々は、ハードウェア構成として、終端回路やレベルシフト回路等を含んでもよい。他方で、ＮＩＣ１４０は、ＮＩＣ１３０にパケット等のデータを入力するための入力回路１４１、ＮＩＣ１３０からパケット等のデータを出力するための出力回路１４２、プロセッサ１４３、及びバッファ１４４を含む。ＮＩＣ１４０は、通信装置１００の外部に接続される外部装置と物理ポート及び信号線１４５を介して接続される。なお、物理ポート及び信号線１４５の数や構成に従って、ＮＩＣ１４０に含まれる入力回路１４１及び出力回路１４２の各々を１以上の数としてもよい。なお、入力回路１４１及び出力回路１４２の各々は、ハードウェア構成として、終端回路やレベルシフト回路等を含んでもよい。
【００１３】
上述されたＮＩＣ１３０及びＮＩＣ１４０に含まれる通信回路である入力回路１３１や入力回路１４１が情報処理回路の一例である。なお、実施例の通信装置１００はＮＩＣ１３０やＮＩＣ１４０の数や構成等に限定されない。
【００１４】
ＮＩＣ１３０及びＮＩＣ１４０は、信号線１６０を介してスイッチユニット１５０と接続される。例えば、通信装置１００の外部から物理ポート及び信号線１３５を介してＮＩＣ１３０に入力されるパケット等のデータは、入力回路１３１により信号線１６０に送信され、信号線１６０を介してスイッチユニット１５０に含まれるスイッチ回路１５１又はスイッチ回路１５２に送信される。スイッチ回路１５１及びスイッチ回路１５２は、送信されたパケット等のヘッダに含まれる送信先の情報に基づいて、例えばＮＩＣ１４０が送信先であると判定すると、信号線１６０を介してＮＩＣ１４０の出力回路１４２にパケット等を送信する。出力回路１４２は、パケットの送り先に関する情報に従って、物理ポート及び信号線１４５を介してこのパケット等を送信する。なお、通信装置１００おいてスイッチユニット１５０に含まれるスイッチ回路はスイッチ回路１５１及びスイッチ回路１５２に限定されず、１以上の数であればよい。後述されるように、スイッチ回路１５１及びスイッチ回路１５２は、通信装置１００におけるパケット送信の負荷を分散するためのスイッチングを実行する。
【００１５】
図１に示されるハードウェア構成によって、実施例の情報処理装置及び情報処理回路が、後述される機能ブロックとして機能し、後述される処理が実行される。
【００１６】
図２に、実施例の情報処理回路及びスイッチ回路の例が示される。図２には、図１に例示された入力回路１３１、出力回路１３２、入力回路１４１、出力回路１４２、スイッチ回路１５１、及びスイッチ回路１５２が信号線１６０を介して接続される関係が示される。入力回路１３１はデマルチプレクサ２３１を含み、出力回路１３２はマルチプレクサ２３２を含み、入力回路１４１はデマルチプレクサ２４１を含み、出力回路１４２はマルチプレクサ２４２を含む。ここで、後述の説明のために、ｎ番目の入力回路をＩＧ［ｎ］、ｎ番目の出力回路をＥＧ［ｎ］、及びｎ番目のスイッチ回路をＳＷ［ｎ］と表記するものとし、入力回路１３１をＩＧ［０］、出力回路１３２をＥＧ［０］、入力回路１４１をＩＧ［１］、出力回路１４２をＥＧ［１］、スイッチ回路１５１をＳＷ［０］、及びスイッチ回路１５２をＳＷ［１］などと表記することとする。なお、各々の回路が２つずつであるのは例示であり、実施例はこれに限定されない。また、入力回路の数と出力回路の数が異なっていてもよい。
【００１７】
例えば、ＩＧ［０］に入力されたパケット等のデータは、デマルチプレクサ２３１によりＳＷ［０］又はＳＷ［１］の何れかが送信先として選択されることで、選択されたスイッチ回路に信号線１６０を介して送信される。例えば、ＳＷ［０］にパケット等のデータが送信されると、ＳＷ［０］は、パケット等のヘッダに含まれる宛先の情報に従って、宛先となるＥＧ［０］又はＥＧ［１］に信号線１６０を介してパケット等のデータを送信する。
【００１８】
このように、複数のスイッチ回路ＳＷ［０］及びＳＷ［１］を用いることによって、通信装置１００内の通信の負荷分散を実行し、高速なスイッチングを行うことが可能となる。例えば、ＩＧ［０］にパケットを入力するための信号線が１０Ｇｂｐｓ、４０Ｇｂｐｓ、１００Ｇｂｐｓやそれ以上といった帯域を許容するような信号線であったとしても、複数のスイッチ回路はパケットの中身を見て、転送先を確認しながら複数の出力回路の１つを選択しなければならず、スイッチ回路の負荷は大きい。ここでパケットを分散させることで並列的にスイッチを動作させ、これにより高速な通信が可能となる。また、ＩＧ［０］に入力されるパケットの信号線の一つが１Ｇｂｐｓであっても入力ポートが４８個あるような仕様の場合、ＩＧ［０］に入力される通信量は最大４８Ｇｂｐｓとなるが、この通信を複数のスイッチ回路に分散させる並列的な通信を実行することで、これにより高速な通信が可能となる。例えば、ＩＧ［０］にパケットを入力するための信号線が１０Ｇｂｐｓの帯域を許容するような信号線であった場合に、ＩＧ［０］と複数のスイッチ回路ＳＷ［０］及びＳＷ［１］の間の信号線１６０の各々の許容帯域が５Ｇｂｐｓであったとしても、複数のスイッチ回路ＳＷ［０］及びＳＷ［１］にパケットを振り分けることによって、通信装置１００内では１０Ｇｂｐｓの通信が可能となる。このように振り分けられたパケットは、パケットの宛先に従って、複数のスイッチ回路ＳＷ［０］及びＳＷ［１］からＥＧ［０］又はＥＧ［１］に並列的に送信され、それらがＥＧ［０］又はＥＧ［１］においてマルチプレクシングされて通信装置１００から出力される。
【００１９】
上述したように、通信装置１００内のスイッチ回路の数によって、通信装置１００内で許容できる帯域を変えることができる。例えば、スイッチ回路の数を増やした場合には、スイッチ回路の数と信号線１６０が許容する帯域との関係により、通信装置１００内で許容できる帯域を増やすことができる。反対に、スイッチ回路の数を減らした場合には、通信装置１００内で許容できる帯域は減ることになるが、スイッチ回路の数を減らした分、通信装置１００の回路規模を小さくできる。このように、スイッチ回路の数によって、用途に応じた効率性の高いスイッチングが可能となる。
【００２０】
なお、ＳＷ［０］又はＳＷ［１］の何れかの選択は、図１に示されるプロセッサ１３３又は１４３によって実行されてもよく、ＳＷ［０］又はＳＷ［１］に送信されるパケット等のスケジューリングのために、送信されるパケットが一時的にバッファ１３４又はバッファ１４４に格納されてもよい。また、通信装置１００内の処理単位に合わせてデータが分割される場合には、ＳＷ［０］又はＳＷ［１］に送信されるパケット等のデータが、通信装置１００が受信するパケットとは異なるデータサイズであってもよい。
【００２１】
図３に、スイッチングされる送信データの例が示される。図３に示されるＩＧ［０］、ＥＧ［０］、ＩＧ［１］、ＥＧ［１］、ＳＷ［０］、及びＳＷ［１］の接続関係は、図２に示される接続関係と同じように信号線によって接続されているものとする。ここで、ＩＧ［０］及びＩＧ［１］に入力されるデータをパケットとして説明するが、上述した通り、通信装置内の処理単位に分割された単位であってもよい。なお、以下、パケットの表記として、宛先となる出力回路がＥＧ［０］である場合には［０］と表記し、宛先となる出力回路がＥＧ［１］である場合には［１］と表記する。また、以下、ＩＧ［０］又はＩＧ［１］に入力されるパケット［０］のうち、入力される順序を上付き文字で表記する。例えば、ＩＧ［０］に１番目に入力されるパケットを［０］１、２番目に入力されるパケットを［０］２などと表記する。さらに、図３に図示されるように、ＩＧ［０］に入力されるパケットを実線の四角で表記し、ＩＧ［１］に入力されるパケットを点線の四角で表記することとする。
【００２２】
ＩＧ［０］には、ＥＧ［０］及びＥＧ［１］を宛先とするパケットの各々が５Ｇｂｐｓの通信量で交互に、全体として１０Ｇｂｐｓの通信量で入力されているとし、これが、図３の区間３００において実線の四角と共に［０］１、［１］１、［０］２、［１］２、［０］３、［１］３・・・と示される。また、ＩＧ［１］には、ＥＧ［０］及びＥＧ［１］を宛先とするパケットの各々が５Ｇｂｐｓの通信量で交互に、全体として１０Ｇｂｐｓの通信量で入力されているとし、これが、図３の区間３１０において点線の四角と共に［０］１、［１］１、［０］２、［１］２、［０］３、［１］３・・・と示される。なお、ＩＧ［０］とＳＷ［０］及びＳＷ［１］との間を接続するための信号線は、最大５Ｇｂｐｓの帯域を許容する信号線であるとする。また、ＩＧ［１］とＳＷ［０］及びＳＷ［１］との間の信号線、ＥＧ［０］とＳＷ［０］及びＳＷ［１］との間の信号線、ＥＧ［１］とＳＷ［０］及びＳＷ［１］との間の信号線も同様に最大５Ｇｂｐｓの帯域を許容する信号線であるとする。
【００２３】
ＩＧ［０］に入力されたパケットは、負荷分散のためにＳＷ［０］及びＳＷ［１］が送信先として交互に選択されることで、ＳＷ［０］及びＳＷ［１］に交互に送信されることとする。この場合、ＩＧ［０］に入力されたパケット［０］１、［１］１、［０］２、［１］２、［０］３、［１］３・・・が、ＳＷ［０］及びＳＷ［１］に交互に振り分けられる。結果として、区間３２０に示されるように、実線で示されるパケット［０］１、［０］２、［０］３・・・がＩＧ［０］からＳＷ［０］に送信され、実線で示されるパケット［１］１、［１］２、［１］３・・・がＩＧ［０］からＳＷ［１］に送信される。他方で、ＩＧ［１］に入力されたパケットも、負荷分散のためにＳＷ［０］及びＳＷ［１］が送信先として交互に選択されることで、ＳＷ［０］及びＳＷ［１］に交互に送信されることとする。この場合、ＩＧ［１］に入力されたパケット［０］１、［１］１、［０］２、［１］２、［０］３、［１］３・・・が、ＳＷ［０］及びＳＷ［１］に交互に振り分けられる。結果として、区間３２０に示されるように、点線で示されるパケット［０］１、［０］２、［０］３・・・がＩＧ［０］からＳＷ［０］に送信され、点線で示されるパケット［１］１、［１］２、［１］３・・・がＩＧ［１］からＳＷ［１］に送信される。
【００２４】
このようにしてＳＷ［０］に送信された実線で示されるパケット［０］１、［０］２、［０］３・・・、及び点線で示されるパケット［０］１、［０］２、［０］３・・・がＳＷ［０］から宛先であるＥＧ［０］に順次送信されることとなるが、ＳＷ［０］とＥＧ［０］との間の信号線では輻輳が生じてしまう。その理由は、上述したようにＳＷ［０］とＥＧ［０］との間の信号線の帯域は５Ｇｂｐｓであるものの、実線で示されるパケット［０］１、［０］２、［０］３・・・の通信量が５Ｇｂｐｓであり、かつ、点線で示されるパケット［０］１、［０］２、［０］３・・・の通信量が５Ｇｂｐｓであるため、それらの合計である１０Ｇｂｐｓの通信がＳＷ［０］とＥＧ［０］との間に発生してしまうからである。実際には、ＳＷ［０］からＥＧ［０］へのパケット送信の通信量は、信号線の帯域である５Ｇｂｐｓに制約されてしまい、所望のスループットが得られない。この場合、図３に示されるように、ＥＧ［０］への通信経路としてはＳＷ［１］とＥＧ［０］との間の通信経路があるにもかかわらず、この通信経路にはパケットが流れずに効率的に負荷分散されていないことがわかる。このような非効率な通信状況は、宛先をＥＧ［１］とするパケットの通信にも生じてしまっている。
【００２５】
図３に沿って説明したように、複数の入力回路に入力されるパケットの順序と複数のスイッチ回路の選択順序の関係によっては、複数の入力回路と複数のスイッチ回路との間のパケット振り分けが一見分散されているようになっていても、特定の宛先のパケットが特定のスイッチ回路に偏って送信されてしまうことがある。このため、複数のスイッチ回路と複数の出力回路との間の特定の信号線に通信が偏ってしまい、複数のスイッチ回路と複数の出力回路の間に通信に使用されていない信号線があるにもかかわらず、通信のスループットが特定の信号線の許容帯域に制約されてしまう。この場合、複数のスイッチ回路を使用した通信の負荷分散が効率的に実行されていないこととなってしまう。
【００２６】
図４に、スイッチングされる送信データの他の例が示される。図４Ａに示されるＩＧ［０］、ＥＧ［０］、ＩＧ［１］、ＥＧ［１］、ＳＷ［０］、及びＳＷ［１］の接続関係は、図２に示される接続関係と同じように信号線によって接続されているものとする。図４Ｂには、ＩＧ［０］及びＩＧ［１］においてパケットを送信する際にスイッチ回路を選択するために参照される情報が示される。
【００２７】
図４Ａに示されるように、ＩＧ［０］には、ＥＧ［０］及びＥＧ［１］を宛先とするパケットの各々が５Ｇｂｐｓの通信量で交互に、全体として１０Ｇｂｐｓの通信量で入力されているとし、これが、図４の区間４００において実線の四角と共に［０］１、［１］１、［０］２、［１］２、［０］３、［１］３・・・と示される。また、ＩＧ［１］には、ＥＧ［０］及びＥＧ［１］を宛先とするパケットの各々が５Ｇｂｐｓの通信量で交互に、全体として１０Ｇｂｐｓの通信量で入力されているとし、これが、図４の区間４１０において点線の四角と共に［０］１、［１］１、［０］２、［１］２、［０］３、［１］３・・・と示される。なお、ＩＧ［０］とＳＷ［０］及びＳＷ［１］との間を接続するための信号線が最大５Ｇｂｐｓの帯域を許容する信号線であるとする。
【００２８】
図４Ｂに示される情報では、ＥＧ［ｎ］に対応する宛先Ｎｏ．と選択されるスイッチ回路ＳＷ［ｎ］とが関連付けられており、ＩＧ［０］に入力されたパケットは、負荷分散のために、図４Ｂに示される情報に従ってＳＷ［０］又はＳＷ［１］に送信される。例えば、ＥＧ［０］にＳＷ［０］が関連付けられている場合には、ＥＧ［０］を宛先とするパケットがＩＧ［０］からＳＷ［０］に送信される。そして、ＥＧ［０］を宛先とするパケットがＩＧ［０］からＳＷ［０］に送信されると、図４Ｂに示される情報において、ＥＧ［０］に関連付けられるスイッチ回路がＳＷ［１］に更新される。図４Ｂに示される情報に従うと、宛先毎を同じにするパケットである場合には異なるスイッチ回路がパケットの送信先として順次選ばれることとなる。このようなパケットの振り分け規則としては、宛先を同じにするパケットが異なるスイッチ回路に連続して送信されないようにすればよいため、宛先毎にラウンドロビン方式を適用することで選択されるスイッチ回路を変更していったり、選択されるスイッチ回路を宛先毎にランダムに変更することで複数のスイッチ回路が宛先毎に等しい確率で選択されるようにしてもよい。なお、ＩＧ［１］におけるパケットを振り分けも上述されたＩＧ［０］における振り分けと実質的に同じように実行されるため説明を省略する。
【００２９】
図４Ｂに示される情報に従ってＳＷ［０］又はＳＷ［１］が選択されたため、例えば、区間４２０に示されるように宛先をＥＧ［０］とするパケット［０］１がＩＧ［０］からＳＷ［０］に送信され、図３の区間３２０とは異なりＩＧ［０］からＳＷ［１］に宛先をＥＧ［０］とするパケット［０］２が送信されることとなる。従って、図３の区間３３０とは異なり、パケット［０］１及びパケット［０］２が共にＳＷ［０］からＥＧ［０］に送信されるのではなく、区間４３０において、パケット［０］１がＳＷ［０］からＥＧ［０］に送信され、かつパケット［０］２がＳＷ［１］からＥＧ［０］に送信されることとなる。このようにして、図３の場合とは異なり、ＩＧ［０］及びＩＧ［１］とＳＷ［０］及びＳＷ［１］との間だけでなく、ＳＷ［０］及びＳＷ［１］とＥＧ［０］及びＥＧ［１］との間でも通信経路の選択割合に偏りなくなり、パケット送信が分散され、通信の負荷分散が効率的に実行されることとなる。
【００３０】
図５に、スイッチングされる送信データの他の例が示される。図５Ａには示される構成は、実質的には図２に示される接続関係と同じであるが、スイッチ回路ＳＷ［０］及びＳＷ［１］に対して、ｎ（ｎは２以上）の数の入力回路ＩＧ［ｎ］及び出力回路ＥＧ［ｎ］が接続される例であり、ＩＧ［ｎ］及びＥＧ［ｎ］の一部は省略して示されている。図５Ｂには、図４Ｂに示される情報と同じであり、ＩＧ［０］及びＩＧ［１］においてパケットを送信する際にスイッチ回路を選択するために参照される情報が示される。
【００３１】
図５Ａの区間５００に示されるように、例えば、ＩＧ［０］にパケット［０］１、［１］１、・・・、［ｎ］１が入力され、次いで、パケット［０］２、［１］２、・・・、［ｎ］２が入力されるとする。ここで、ＩＧ［０］が、図５Ｂに示される情報に従ってｎの数のスイッチ回路の何れかを選択して、パケットを振り分けようとした場合、例えば宛先毎にラウンドロビン方式が適用されているもとで、図５Ｂにおいて宛先毎に関連付けられているスイッチ回路が同じだとすると、区間５２０に示されるように、ｎの数のパケットが特定のスイッチに連続して送信されることになってしまう。例えば、パケット［０］１、［１］１、・・・、［ｎ］１は宛先が全て異なるものの、宛先毎に適用されたラウンドロビン方式に従って選択されるスイッチ回路が同じスイッチ回路ＳＷ［０］に重なってしまった場合に、ｎの数のパケットが連続してＳＷ［０］に送信されてしまう。そして、ＩＧ［０］とＳＷ［０］との間の信号線が許容できる通信量以上でパケット［０］１、［１］１、・・・、［ｎ］１がＳＷ［０］に連続して送信された場合には、通信量の大きな通信が局所的に発生し、輻輳が発生してしまう。このような局所的な通信の偏りが発生してしまうことを考慮して、連続送信されるパケットを一時的に格納する冗長バッファをスイッチ回路に実装したり、冗長なバッファに格納しきれない送信状態になった場合にはスイッチ回路から入力回路に対してバックプレッシャをかけてパケットを送信させないようにしたり、又はパケットを廃棄したりする。しかし、冗長なバッファは回路規模を大きくさせ、バックプレッシャやパケットの廃棄は通信効率を低下させてしまうといったジレンマがある。
【００３２】
ところで、このような局所的な通信の偏りは、入力されるパケットの宛先の順序に対して、宛先毎に選択されるスイッチ回路が同じスイッチ回路になってしまうことによって発生するため、選択されるスイッチ回路の選択肢が相対的に少ない場合によりいっそう発生しやすい。例えば、宛先となる出力回路ＥＧ［ｎ］の数に対してスイッチ回路ＳＷ［ｎ］の数が相対的に少ないと、異なる宛先に対して選択されるスイッチ回路の選択肢が少なくなるので、異なる宛先のパケットが特定のスイッチ回路に連続送信されるような局所的な通信が発生しやすい。これは、上述したようなスイッチ回路の数を減らして通信装置１００の回路規模を小さくするような用途の場合には、よりいっそう顕著になってしまう。例えば、回路規模を小さくするためにスイッチ回路ＳＷ［ｎ］の数を減らした場合に、宛先毎に選択されるスイッチ回路が連続する可能性が高まり、その結果、局所的な通信を吸収するためのバッファサイズを上回るようなパケットの連続送信が発生してしまう。そして、局所的な通信を吸収するために冗長なバッファのサイズを大きくしてしまっては、回路規模が小さくしたい目的と相反してしまうことになる。
【００３３】
以下に説明する実施例によれば、宛先が同じ場合に異なる中継回路を経由させる所定の規則のもとで異なる宛先に送られる複数のデータが特定の中継回路に偏って送信されないよう送信予定のデータを他の中継回路に送ることで、特定の中継回路へ偏ってデータが送信されることが抑制される。例えば、特定の中継回路に連続的にデータが送信されることが抑制される。なお、中継回路とは、パケットや処理単位のデータを中継させる中継回路等であり、宛先への経路変更を実行するスイッチ回路や、パケットや処理単位のデータに対して所定の処理を実行したうえでそれらを中継させる処理回路等も含まれる。
【００３４】
図６に、実施例の情報処理装置及び情報処理回路の機能ブロックの例が示される。実施例の情報処理装置や情報処理回路では、図１に示されるＮＩＣ１３０やＮＩＣ１４０に含まれるプロセッサ１３３や１４３によってプログラムが実行されることにより、識別部６００、情報管理部６１０、第１判定部（全体判定用）６３１及び第２判定部（宛先単位判定用）６３２を含む判定部６３０、及び選択部６４０として機能する。また、図１に示されるＮＩＣ１３０やＮＩＣ１４０に含まれるメモリやレジスタにより記憶部６２０が実現される。パケット等の送信データが識別部６００に入力され、図６に示される機能ブロックによって選択された中継回路へパケット等の送信データが送信される。各機能ブロックにより実行される処理を、図８に示される処理と対応させて後述する。
【００３５】
図７に、実施例の情報処理装置及び情報処理回路で使用される情報の例が示される。図７に示される情報は、図６に示される記憶部６２０に格納される情報であり、図１に示されるＮＩＣ１３０やＮＩＣ１４０に含まれるプロセッサ１３３やプロセッサ１４３によって参照される情報である。ここでは、中継装置としてのスイッチ回路が２つの場合に沿って例示する。ただし、実施例はこれに限定されず、中継装置としてのスイッチ回路が複数であってもよい。
【００３６】
図７Ａに、宛先毎のカウント情報の例が示される。宛先毎のカウント情報では、宛先Ｎｏ．と宛先毎のカウント値とが関連付けられており、例えば、宛先Ｎｏ．は出力回路ＥＧ［ｎ］の番号である。このカウント値として登録される値は入力回路ＩＧ［ｎ］毎に管理される。例示すると、中継装置としてのスイッチ回路がＳＷ［０］及びＳＷ［１］の２つの場合、宛先をＥＧ［０］とするパケットがＩＧ［０］からＳＷ［０］に送信されるとカウンタにより“−１”とカウントされ、かつ宛先をＥＧ［０］とするパケットがＩＧ［０］からパケットがＳＷ［１］に送信されるとカウンタにより“＋１”とカウントされ、それらの累積値がＩＧ［０］に対応するカウント値として図７Ａに示される情報に登録される。例えば、図７Ａに示される宛先毎のカウント情報では、宛先をＥＧ［０］とするパケットらがＩＧ［０］からＳＷ［０］及びＳＷ［１］に送信された累積結果として、カウント値“＋１”が登録されている。なお、この宛先毎のカウント情報は、後述される処理８０２等において参照される情報である。
【００３７】
図７Ｂに、送信データ全体に対するカウント情報の例が示される。送信データ全体に対するカウント情報では、パケット等の宛先にかかわらず、パケット等を送信先として選択されたスイッチ回路の累積結果が入力回路ＩＧ［ｎ］毎に管理される。例えば、中継装置としてのスイッチ回路がＳＷ［０］及びＳＷ［１］の２つの場合、パケット等の宛先にかかわらず、パケット［０］、［１］、・・・、［ｎ］がＩＧ［０］からＳＷ［０］に送信されるとカウンタにより“−１”とカウントされ、かつパケット［０］、［１］、・・・、［ｎ］がＩＧ［０］からＳＷ［１］に送信されるとカウンタにより“＋１”とカウントされ、それらの累積値がＩＧ［０］に対応するカウント値として図７Ｂに示される情報に登録される。なお、この宛先毎のカウント情報は、後述される処理８０７等において参照される情報である。
【００３８】
図７Ｃに、所定の規則に従った振り分け情報の例が示される。所定の規則に従った振り分け情報では、宛先Ｎｏ．と選択される中継装置Ｎｏ．とが関連付けられており、例えば、宛先Ｎｏ．は出力回路ＥＧ［ｎ］の番号であって、選択される中継装置はスイッチ回路ＳＷ［ｎ］の番号である。また、所定の規則に従った振り分け情報は、入力回路ＩＧ［ｎ］毎に管理される情報である。例えば、所定の規則がラウンドロビン方式であって、中継装置としてのスイッチ回路がＳＷ［０］及びＳＷ［１］の２つの場合、入力回路ＩＧ［０］において、出力回路ＥＧ［ｎ］の番号に対して何れのスイッチ回路ＳＷ［ｎ］を選択するのかが関連付けられている。そして、図７Ｃに示される情報に従ってスイッチ回路が選択されると、ラウンドロビン方式に従って、同じスイッチ回路が連続して選択されないように、出力回路ＥＧ［ｎ］の番号に関連付けられるスイッチ回路ＳＷ［ｎ］の番号が更新されることとなる。なお、この宛先毎のカウント情報は、後述される処理８０４及び８０９等において参照される情報である。
【００３９】
図８に、実施例の情報処理装置又は情報処理回路において実行される処理の例が示される。実施例の情報処理装置又は情報処理回路がパケット等の送信データを受信すると、図８に示される処理を開始するための処理８００が実行される。
【００４０】
送信データの宛先を識別する処理８０１が、識別部６００によって実行される。処理８０１では、パケット等の送信データのヘッダに含まれる宛先情報に基づいて、例えば出力回路ＥＧ［ｎ］の番号が識別される。なお、通信回路において処理されるデータの処理単位が、通信装置１００が受信するパケットとは異なるデータサイズに分割されている場合には、処理８０１において、この分割されたデータ毎に付与された宛先情報に基づいて宛先を識別すればよい。
【００４１】
識別された宛先に基づき、宛先毎のカウント情報を参照する処理８０２が、情報管理部６１０によって実行される。図７Ａに例示された宛先毎のカウント情報が図６に示される記憶部６２０に格納されており、処理８０２では情報管理部６１０によって、この宛先毎のカウント情報が参照される。
【００４２】
識別された宛先のカウント情報が所定の条件を満たすか否かを判定する処理８０３が、判定部６３０に含まれる第２判定部（宛先単位判定用）６３２によって実行される。所定の条件を満たすと判定された場合には処理８０７に移り、所定の条件を満たさないと判定された場合には処理８０４に移る。処理８０３では、図７Ａに例示された宛先毎のカウント情報に基づいて、識別された宛先に関連付けられたカウント値が所定の条件を満たすか否かが判定される。例えば、所定の条件を、ＳＷ［０］又はＳＷ［１］に連続して２回以上送信先として選択された場合とすると、カウント値が“±２”未満であるか否かが処理８０３において判定される。さらに例示すれば、図７ＡにおいてＥＧ［０］に関連付けられたカウント値は“＋１”でありこれが“±２”未満なので、ＥＧ［０］が識別された宛先である場合には所定の条件を満たすと処理８０３において判定される。他方で、図７ＡにおいてＥＧ［１］に関連付けられたカウント値は“−２”でありこれが“±２”未満ではないため、ＥＧ［１］が識別された宛先である場合には所定の条件を満たさないと処理８０３において判定される。なお、所定の条件は任意であり、実施例は上述の数値に限定されず適宜変更してよい。
【００４３】
識別された宛先に対応する振り分け情報を参照する処理８０４が、情報管理部６１０によって実行される。図７Ｃに例示された所定の規則に従った振り分け情報が図６に示される記憶部６２０に格納されており、処理８０４では情報管理部６１０によって、この所定の規則に従った振り分け情報が参照される。
【００４４】
振り分け情報に従って予定される送信先の中継回路を選択した場合に、識別された宛先のカウント情報に従った送信先の選択割合の偏りが減少するか否かを判定する処理８０５が、判定部６３０に含まれる第２判定部（宛先単位判定用）６３２によって実行される。偏りが減少すると判定された場合には処理８１２に移り、偏りが減少しないと判定された場合には処理８０６に移る。処理８０５では、例えば、識別された宛先がＥＧ［１］である場合、図７Ｃ例示された振り分け情報において、判定時にＥＧ［１］に関連付けられている中継回路の番号が参照される。そして、参照された中継回路を選択した場合に、ＥＧ［１］に関連付けられたカウント値が減少するか否かが判定される。すなわち、参照された中継回路を選択することで、ＥＧ［１］を宛先とするパケットが連続して同じ中継装置に送信されるか否かが判定される。これによって、ＥＧ［１］を宛先とするパケットの送信先となる中継装置の選択割合の偏りが減少するか否かが判定されることとなる。仮に、振り分け情報に従った中継装置を送信先としても、ＥＧ［１］を宛先とするパケットが連続して同じ中継装置に送信されないのであれば、振り分け情報に従った中継装置にパケットを送ることで中継装置の選択割合の偏りが解消され、通信装置及び通信回路のスイッチングの負荷が分散されるので、振り分け情報に従った中継装置を送信先として選択すればよい。逆に、振り分け情報に従った中継装置を送信先とすることで、ＥＧ［１］を宛先とするパケットが連続して同じ中継装置に送信される場合には、中継装置の選択割合がさらに偏ることで通信装置及び通信回路のスイッチングの負荷が分散されなくなるため、後述される処理８０６により宛先毎のカウント情報に従って送信先となる中継回路を選択して、この連続送信されてしまう偏りを解消することとなる。なお、実施例でいう連続送信とは、同じ宛先のパケットが特定の中継装置に連続して送信される場合や、例えば同じ宛先の２つのパケットが他の宛先のパケットを挟んで同じ中継装置に連続で送信されるような時間的に離れた連続送信の場合も含む。また、処理８０３の所定の条件の設定を調整して、予定される送信先にパケットが送信された後に処理８０５などの処理が実行されるようにしてもよい。
【００４５】
宛先毎のカウント情報に従って送信先となる中継回路を選択する処理８０６が、選択部６４０によって実行される。処理８０６では、ある宛先のパケットの送信先として特定の中継装置が連続して選択されてしまうことで通信経路の選択割合に偏りが生じてしまうことを抑制するために、所定の規則に従った振り分け情報に従って中継装置を選択するのではなく、宛先毎のカウント情報に従って中継装置を選択する。例えば、識別された宛先がＥＧ［１］である場合、所定の規則に従った振り分け情報において、処理の実行時にＥＧ［１］に関連付けられている中継装置の番号がＳＷ［０］であると、ＥＧ［１］に関連付けられていたカウント値が“−２”であったため、ＳＷ［０］を選択することでこのカウント値が“−３”となってしまう。すなわち、ＥＧ［１］を宛先とするパケットがＳＷ［０］に連続して送信されることになってしまい、通信経路の選択割合に偏りが生じてしまう。その偏りを抑制するために、処理８０６では、所定の規則に従った振り分け情報ではなく、カウント値の符号に従い、仮にカウント値がマイナスであればＳＷ［１］を送信先として選択し、カウント値がプラスであればＳＷ［０］を送信先として選択する。例えば、処理の実行時にＥＧ［１］に関連付けられたカウント値が“−２”であるため、この符号に従い、ＳＷ［１］を送信先として選択することになる。そして、ＳＷ［１］が選択されたことで、後述される処理８１３により、ＥＧ［１］に関連付けられたカウント値が“＋１”されることで“−１”に更新される。
【００４６】
送信データ全体に対応するカウント情報を参照する処理８０７が、情報管理部６１０によって実行される。図７Ｂに例示された送信データ全体に対応するカウント情報が図６に示される記憶部６２０に格納されており、処理８０７では情報管理部６１０によって、この送信データ全体に対応するカウント情報が参照される。
【００４７】
送信データ全体のカウント情報が所定の条件を満たすか否かを判定する処理８０８が、判定部６３０に含まれる第１判定部（全体判定用）６３１によって実行される。所定の条件を満たすと判定された場合には処理８１２に移り、所定の条件を満たさないと判定された場合には処理８０９に移る。処理８０８では、図７Ｂに例示された送信データ全体のカウント情報に基づいて、カウント値が所定の条件を満たすか否かが判定される。例えば、所定の条件を、ＳＷ［０］又はＳＷ［１］が連続して４回以上送信先として選択された場合とすると、カウント値が“±４”未満であるか否かが処理８０８において判定される。さらに例示すれば、図７Ｂではカウント値は“−４”でありこれが“±４”未満ではないので、カウント値が所定の条件を満たさないと処理８０８において判定される。なお、カウント値が所定の条件を満たさないとは、出力回路ＥＧ［ｎ］の宛先にかかわらず、パケットの送信先として特定の中継装置が連続して選択されており、図５に沿って説明したように、通信経路の選択割合に偏りが生じている場合である。図７Ｂの例では、ＳＷ［１］にパケットが連続して４回送信されてしまっており、通信経路の選択割合に偏りが生じている。なお、所定の条件は任意であり、実施例は上述の数値に限定されず適宜変更してよい。
【００４８】
識別された宛先に対応する振り分け情報を参照する処理８０９が、情報管理部６１０によって実行される。図７Ｃに例示された所定の規則に従った振り分け情報が図６に示される記憶部６２０に格納されており、処理８０９では情報管理部６１０によって、この所定の規則に従った振り分け情報が参照される。
【００４９】
振り分け情報に従って予定される送信先の中継回路を選択した場合に、送信データ全体のカウント情報に従う送信先の選択割合の偏りが減少するか否かを判定する処理８１０が、判定部６３０によって実行される。偏りが減少すると判定された場合には処理８１２に移り、偏りが減少しないと判定された場合には処理８１１に移る。処理８０５では、例えば、識別された宛先がＥＧ［１］である場合、図７Ｃ例示された振り分け情報においてＥＧ［１］に関連付けられた中継回路の番号が参照される。そして、参照された中継回路を選択した場合に、送信データ全体のカウント値が減少するか否かが判定される。すなわち、参照された中継回路を選択することで、宛先によらずパケットが同じ中継装置に送信されるか否かが判定される。これによって、パケットの送信先となる中継装置の選択割合の偏りが減少するか否かが判定されることとなる。仮に、振り分け情報に従った中継装置を送信先としても、宛先によらずパケットが連続して同じ中継装置に送信されないのであれば、振り分け情報に従った中継装置にパケットを送ることで中継装置の選択割合の偏りが解消され、通信装置及び通信回路のスイッチングの負荷が分散されるので、振り分け情報に従った中継装置を送信先として選択すればよい。逆に、振り分け情報に従った中継装置を送信先とすることで、パケットが連続して同じ中継装置に送信される場合には、中継装置の選択割合がさらに偏ることで通信装置及び通信回路のスイッチングの負荷が分散されなくなるため、後述される処理８１１により送信データ全体のカウント情報に従って送信先となる中継回路を選択して、この連続送信されてしまう偏りを解消することとなる。なお、実施例でいう連続送信とは、処理８０５の説明と併せて上述した連続送信の場合に加え、このように宛先によらずパケットが特定の中継装置に連続して送信される場合も含む。また、処理８０８の所定の条件の設定を調整して、予定される送信先にパケットが送信された後に処理８１０などの処理が実行されるようにしてもよい。
【００５０】
送信データ全体に対応するカウント情報に従って送信先となる中継回路を選択する処理８１１が、選択部６４０によって実行される。処理８１１では、パケットの宛先によらず、パケットの送信先として特定の中継装置が連続して選択されてしまうことで通信経路の選択割合に偏りが生じてしまうことを抑制するために、所定の規則に従った振り分け情報に従って中継装置を選択するのではなく、送信データ全体に対応するカウント情報に従って中継装置を選択する。例えば、全体の送信データに関連付けられたカウント値が“−４”であるにもかかわらず、所定の規則に従った振り分け情報に従ってＳＷ［０］が送信先として選択されてしまうと、ＳＷ［０］へパケットが５回連続で送信されることとなり、通信経路の選択割合に偏りが生じてしまう。その偏りを抑制するために、処理８０６では、所定の規則に従った振り分け情報ではなく、カウント値の符号に従い、仮にカウント値がマイナスであればＳＷ［１］を送信先として選択し、カウント値がプラスであればＳＷ［０］を送信先として選択する。例えば、全体の送信データに関連付けられたカウント値が“−４”であるため、この符号に従い、ＳＷ［１］を送信先として選択することになる。そして、ＳＷ［１］が選択されたことで、後述される処理８１３により、全体の送信データに関連付けられたカウント値が“＋１”されることで“−３”に更新される。これにより、図５に示されるような特定の中継装置にパケットが連続転送されてしまうことが抑制される。
【００５１】
所定の規則に従った振り分け情報に基づいて中継回路を選択する処理８１２が、選択部６４０によって実行される。処理８１２は、振り分け情報に従ってもパケットの連続送信が特定の範囲内に収まると判定された上で実行される処理のため、図７Ｃに示される振り分け情報に従って、パケットの送信先である中継装置が選択される。例えば、識別された宛先がＥＧ［１］の場合、図７Ｃに示される振り分け情報において、処理８１２の実行時にＥＧ［１］に関連付けられているＳＷ［０］又はＳＷ［１］の何れか一方が送信先として選択される。
【００５２】
選択された中継回路に従って宛先毎のカウント情報、送信データ全体に対応するカウント情報及び振り分け情報を更新する処理８１３が、情報管理部６１０によって実行される。処理８１３では、処理８０６、処理８１１、又は処理８１２により選択された中継回路に合わせて、図７Ａに示される宛先毎のカウント情報、図７Ｂに示される送信データ全体に対応するカウント情報、及び図７Ｃに示される振り分け情報が更新される。例えば、処理８０６、処理８１１、又は処理８１２により選択された中継回路がＳＷ［０］の場合には、図７Ａに示される宛先毎のカウント情報において該当する出力回路ＥＧ［ｎ］のカウント値が“−１”され、図７Ｂに示される送信データ全体に対応するカウント情報においてカウント値が“−１”され、かつ図７Ｃに示される振り分け情報において該当する出力回路ＥＧ［ｎ］に関連付けられる中継回路が連続しないようにＳＷ［１］に更新される。また、処理８０６、処理８１１、又は処理８１２により選択された中継回路がＳＷ［１］の場合には、図７Ａに示される宛先毎のカウント情報において該当する出力回路ＥＧ［ｎ］のカウント値が“＋１”され、図７Ｂに示される送信データ全体に対応するカウント情報においてカウント値が“＋１”され、かつ図７Ｃに示される振り分け情報において該当する出力回路ＥＧ［ｎ］に関連付けられる中継回路が連続しないようにＳＷ［０］に更新される。さらに例示すれば、処理８０６により、識別された宛先がＥＧ［１］のパケットの送信先としてＳＷ［１］が選択されると、図７Ａに示される宛先毎のカウント情報においてＥＧ［１］に関連付けられるカウント値“−２”が“＋１”されて“−１”となり、図７Ｂに示される送信データ全体に対応するカウント値“−４”が“＋１”されて“−３”となり、図７Ｃに示される振り分け情報においてＥＧ［１］に関連付けられる中継装置がＳＷ［０］になるように更新される。
【００５３】
処理８１３が終了すると、図８に示される処理を終えるための処理８１４が実行される。
【００５４】
図９に、実施例の情報処理装置又は情報処理回路による処理に従った通信の例が示される。図９Ａの表では、第１行目には入力回路に入力されるパケット等の順序が示され、第２行目には宛先Ｎｏ．が第１行目の順序に対応するように示され、第３行目には第２行目に示された宛先のパケットの送信先を判定する際に宛先毎のカウント情報において宛先Ｎｏ．に関連付けられていたカウント値が第１行目の順序に対応するように示され、第４行目には第２行目に示された宛先のパケットの送信先を判定する際に送信データ全体に対するカウント値が第１行目の順序に対応するように示され、第５行目には第２行目に示された宛先のパケットの送信先を判定する際に振り分け情報において宛先Ｎｏ．に関連付けられていた中継回路の番号が第１行目の順序に対応するように示され、第６行目には図８に示された処理の結果として第２行目に示された宛先のパケットの送信先として選択された中継回路の番号が第１行目の順序に対応するように示される。図９Ｂには、図９Ａに示される情報をパケット列として表現したものである。
【００５５】
例えば、図９Ａに示されるように、４番目に入力されるパケットの宛先がＥＧ［３］であり、このパケットの送信先として選択される中継回路がＳＷ［０］である。これは、図９Ａの３行目においてＥＧ［３］を宛先とするパケット［３］の送信先を判定する際にＥＧ［３］に関連付けられていたカウント値が“０”であって“±２”未満であるため、図８に示される処理８０３において所定の条件を満たすと判定され、図９Ａの４行目においてＥＧ［３］を宛先とするパケット［３］の送信先を判定する際に送信データ全体のカウント値が“−３”であって“±４”未満であるため図８に示される処理８０８により所定の条件を満たす判定され、かつ図９Ａの５行目においてＥＧ［３］を宛先とするパケット［３］の送信先を判定する際にＥＧ［３］に関連付けられていた中継回路の番号が“０”であるためこれに従って図８に示される処理８１２によりＳＷ［０］が選択された結果である。図９Ｂに示されるように、区間９２０において、宛先をＥＧ［３］とするパケット［３］がＳＷ［０］に送信されることが示される。
【００５６】
さらに例示すると、図９Ａに示されるように、５番目に入力されるパケットの宛先がＥＧ［４］であり、図９Ａの５行目においてＥＧ［４］を宛先とするパケット［４］の送信先を判定する際にＥＧ［４］に関連付けられていた中継回路の番号が“０”であるにもかかわらず、このパケットの送信先として選択される中継回路がＳＷ［１］になっている。これは、図９Ａの３行目においてＥＧ［４］を宛先とするパケット［４］の送信先を判定する際にＥＧ［４］に関連付けられていたカウント値が“０”であって“±２”未満であるため図８に示される処理８０３により所定の条件を満たすと判定されたが、図９Ａの４行目においてＥＧ［４］を宛先とするパケット［４］の送信先を判定する際に送信データ全体のカウント値が“−４”であって“±４”未満でないため図８に示される処理８０８において所定の条件を満たさないと判定された結果、処理８１０が実行されたことによる。この場合、図９Ａの５行目においてＥＧ［４］を宛先とするパケット［４］の送信先を判定する際にＥＧ［４］に関連付けられていた中継回路の番号が“０”であるため、これに従って送信先を選択すると送信データ全体のカウント値“−４”が“−１”されて“−５”となり、通信経路の選択割合がさらに偏ってしまうため、図８に示される処理８１１において送信データ全体のカウント値“−４”の符号がマイナスであることに基づいてＳＷ［１］が選択された結果である。図９Ｂに示されるように、区間９２０において、宛先をＥＧ［４］とするパケット［４］がＳＷ［１］に送信されることが示されている。すなわち、振り分け情報においては、宛先をＥＧ［４］とするパケット［４］をＳＷ［０］に振り分けることが関連付けられていたとしてもこれに従わずに、処理８１１により送信先がＳＷ［１］に変更されることによって、通信経路の選択割合の偏りが抑制され、ＳＷ［０］に連続送信されるパケットが抑制されている。従って、通信経路が偏りなく選択されることでパケット送信が分散され、通信の負荷分散が効率的に実行されることとなる。また、冗長なバッファサイズを小さくすることができるので回路規模を小さくでき、バックプレッシャやパケットの廃棄の頻度が減るため、通信効率を向上させることができる。
【００５７】
図１０に、実施例の情報処理装置又は情報処理回路による処理により更新される情報の例が示される。図１０に示される情報は、図８の処理に従った結果、更新される宛先毎のカウント情報、送信データ全体に対するカウント情報、及び振り分け情報の例である。
【００５８】
図１０Ａに示される情報は、図９Ａに示される５番目のパケット［４］の送信先としてＳＷ［１］を選択すると決定した後に、情報管理部６１０により更新された宛先毎のカウント情報である。図１０Ａに示されるように、パケット［４］がＳＷ［１］に振り分けられたことにより、ＥＧ［４］に関連付けられるカウント値が“＋１”されて“０”から“＋１”に更新される。
【００５９】
図１０Ｂに示される情報は、図９Ａに示される５番目のパケット［４］の送信先としてＳＷ［１］を選択すると決定した後に、情報管理部６１０により更新された送信データ全体に対するカウント情報である。図１０Ｂに示されるように、パケット［４］がＳＷ［１］に振り分けられたことにより、送信データ全体のカウント値が“＋１”されて“−４”から“−３”に更新される。
【００６０】
図１０Ｃに示される情報は、図９Ａに示される５番目のパケット［４］の送信先としてＳＷ［１］を選択すると決定した後に、情報管理部６１０により更新された振り分け情報である。図１０Ｃに示されるように、パケット［４］がＳＷ［１］に振り分けられたことにより、振り分け情報においてＥＧ［４］にＳＷ［０］が関連付けられることとなる。これは、ＥＧ［４］にはＳＷ［０］がもともと関連付けられていたところ、図８に示される処理によってＳＷ［０］ではなくＳＷ［１］が選択されたため、振り分け情報においてＥＧ［４］に関連付けられるスイッチ回路の番号が変更されないことによる。
【００６１】
図１１に、他の通信の例が示される。図１１Ａの表では、第１行目には入力回路に入力されるパケット等の順序が示され、第２行目には宛先Ｎｏ．が第１行目の順序に対応するように示され、第３行目には第２行目に示された宛先のパケットの送信先を判定する際に送信データ全体に対するカウント値が第１行目の順序に対応するように示され、第４行目には第２行目に示された宛先のパケットの送信先を判定する際に振り分け情報において宛先Ｎｏ．に関連付けられていた中継回路の番号が第１行目の順序に対応するように示され、第５行目には図８に示された処理の結果として第２行目に示された宛先のパケットの送信先として選択された中継回路の番号が第１行目の順序に対応するように示される。図１１Ｂには、図１１Ａに示される情報をパケット列として表現したものである。
【００６２】
図１１に沿って、入力されるパケットの順序によっては、図８に示された処理８１１により同じ宛先のパケットが特定のスイッチ回路に連続して送信されてしまうことが例示される。例えば、５番目に入力されるパケット［０］５、７番目に入力されるパケット［０］７、９番目に入力されるパケット［０］９、１１番目に入力されるパケット０］１１、１３番目に入力されるパケット［０］１３などがＳＷ［１］に連続して送信されてしまい、通信経路の選択割合が偏ってしまうことが例示される。
【００６３】
例えば、図１１Ａに示されるように、５番目に入力されるパケットの宛先がＥＧ［０］であり、図１１Ａの３行目においてＥＧ［０］を宛先とするパケット［０］５の送信先を判定する際に送信データ全体のカウント値が“−４”であって“±４”未満でない。この下で、図１１Ａの４行目においてＥＧ［０］を宛先とするパケット［０］５の送信先を判定する際にＥＧ［０］に関連付けられていた中継回路の番号が“１”であるため、これに従って送信先を選択しても、送信データ全体のカウント値“−４”が“＋１”されて“−３”となり、通信経路の選択割合の偏りが抑制される。従って、ＥＧ［０］を宛先とするパケット［０］５の送信先としてＳＷ［１］が選択される。
【００６４】
さらに例示すると、図１１Ａに示されるように、７番目に入力されるパケットの宛先がＥＧ［０］であり、図１１Ａの３行目においてＥＧ［０］を宛先とするパケット［０］７の送信先を判定する際に送信データ全体のカウント値が“−４”であって“±４”未満でない。ここで、図１１Ａの４行目においてＥＧ［０］を宛先とするパケット［０］７の送信先を判定する際にＥＧ［０］に関連付けられていた中継回路の番号が“０”であるが、ＥＧ［０］を宛先とするパケット［０］７の送信先として選択される中継回路がＳＷ［１］になっている。これは、振り分け情報に従って中継回路を選択するとＳＷ［０］が選択されてしまい、これによって、送信データ全体のカウント値“−４”が“−１”されて“−５”となり、通信経路の選択割合がさらに偏ってしまうからである。そこで、送信データ全体のカウント値“−４”の符号がマイナスであることに基づいてＳＷ［１］が選択される。
【００６５】
しかし、図１１Ｂにも示されるように、区間１１２０において、ＥＧ［０］を宛先とするパケット［０］７がＥＧ［０］５に次いでＳＷ［１］に送信されることとなる。同様にして、パケット［０］９、パケット［０］１１、パケット［０］１３などがＳＷ［１］に送信される。このように、入力されるパケットの順序によっては、特定の宛先のパケットが特定の中継回路に偏って送信されてしまうことになる。ここでは説明のために、宛先をＥＧ［０］とするパケットらがＩＧ［０］からＳＷ［１］に連続して送信される例を示したが、同時に他のＩＧ［ｎ］からも宛先をＥＧ［０］とするパケットがＳＷ［１］に連続して送信される場合もある。この場合には、ＳＷ［１］に入力されるパケット数が許容できる数を超えてしまい輻輳が発生してしまうことがある。
【００６６】
図１２に、他の通信の例に対応して更新される情報の例が示される。図１２に示される情報は、図１１の通信の他の例に対応して更新される送信データ全体に対するカウント情報、及び振り分け情報の他の例である。
【００６７】
図１２Ａに示される情報は、図１１Ａに示される７番目のパケット［０］７の送信先としてＳＷ［１］を選択すると決定した後に、更新された送信データ全体に対するカウント情報である。図１２Ａに示されるように、パケット［０］７がＳＷ［１］に振り分けられたことにより、送信データ全体のカウント値が“＋１”されて“−４”から“−３”に更新される。
【００６８】
図１２Ｂに示される情報は、図１１Ａに示される７番目のパケット［０］７の送信先としてＳＷ［１］を選択すると決定した後に、更新された振り分け情報である。図１２Ｂに示されるように、パケット［０］７がＳＷ［１］に振り分けられたことにより、振り分け情報においてＥＧ［０］にＳＷ［０］が関連付けられることとなる。これは、ＥＧ［０］にはＳＷ［０］がもともと関連付けられていたところ、図８に示される処理によってＳＷ［０］ではなくＳＷ［１］が選択されたため、振り分け情報においてＥＧ［０］に関連付けられるスイッチ回路の番号が変更されないことによる。
【００６９】
図１３に、実施例の情報処理装置又は情報処理回路による処理に従った通信の他の例が示される。図１３Ａの表では、第１行目には入力回路に入力されるパケット等の順序が示され、第２行目には宛先Ｎｏ．が第１行目の順序に対応するように示され、第３行目には第２行目に示された宛先のパケットの送信先を判定する際に宛先毎のカウント情報において宛先Ｎｏ．に関連付けられていたカウント値が第１行目の順序に対応するように示され、第４行目には第２行目に示された宛先のパケットの送信先を判定する際に送信データ全体に対するカウント値が第１行目の順序に対応するように示され、第５行目には第２行目に示された宛先のパケットの送信先を判定する際に振り分け情報において宛先Ｎｏ．に関連付けられていた中継回路の番号が第１行目の順序に対応するように示され、第６行目には図８に示された処理の結果として第２行目に示された宛先のパケットの送信先として選択された中継回路の番号が第１行目の順序に対応するように示される。図１３Ｂには、図１３Ａに示される情報をパケット列として表現したものである。なお、図１３ＢにおいてＩＧ［０］に入力されるパケット列の順序は、図１１Ｂに示される順序と同じであるとして例示される。
【００７０】
例えば、図１３Ａに示されるように、９番目に入力されるパケットの宛先がＥＧ［０］９であり、図１３Ａの３行目においてＥＧ［０］を宛先とするパケット［０］９の送信先を判定する際にＥＧ［０］に関連付けられていたカウント値が“＋１”であって“±２”未満であるため、図８に示される処理８０３において所定の条件を満たすと判定され、図１３Ａの４行目においてＥＧ［０］を宛先とするパケット［０］９の送信先を判定する際に送信データ全体のカウント値が“−４”であって“±４”未満でないため、図８に示される処理８０８において所定の条件を満たさないと判定され、処理８１０が実行される。この場合、図１３Ａの４行目においてＥＧ［０］を宛先とするパケット［０］９の送信先を判定する際にＥＧ［０］に関連付けられていた中継回路の番号が“０”であるが、ＥＧ［０］を宛先とするパケット［０］９のパケットの送信先として選択される中継回路がＳＷ［１］になっている。これは、図８に示される処理８１０において、振り分け情報に従って中継回路を選択するとＳＷ［０］が選択されてしまい、これによって、送信データ全体のカウント値“−４”が“−１”されて“−５”となり、通信経路の選択割合がさらに偏ってしまうと判定されるからである。そこで、図８に示される処理８１１が実行され、送信データ全体のカウント値“−４”の符号がマイナスであることに基づいてＳＷ［１］が選択される。この結果、図１３Ｂの区間１３２０に示されるように、パケット［０］５、パケットＥＧ［０］７、及びパケットＥＧ［０］９が連続してＳＷ［１］に送信されている。
【００７１】
さらに例示すると、図１３Ａに示されるように、１１番目に入力されるパケットの宛先がＥＧ［０］１１であり、このパケットの送信先として選択される中継回路がＳＷ［０］となっている。これは、図１１Ａの３行目においてＥＧ［０］１１を宛先とするパケット［０］１１の送信先を判定する際にＥＧ［０］に関連付けられていたカウント値が“＋２”であって“±２”未満でないため、図８に示される処理８０３により所定の条件を満たさないと判定され、処理８０５が実行されることによる。処理８０５では、図１３Ａの５行目においてＥＧ［０］１１を宛先とするパケット［０］１１の送信先を判定する際にＥＧ［０］に関連付けられていた中継回路の番号が“０”であるため、これに従って送信先を選択しても、ＥＧ［０］に関連付けられていたカウント値“＋２”が“−１”されて“＋１”となり、通信経路の選択割合の偏りが抑制されるため、図８に示される処理８１０において偏りが減少すると判定される。そして、図８に示される処理８１２により、ＥＧ［０］１１を宛先とするパケット［０］１１の送信先としてＳＷ［１］が選択される。これは、送信データ全体のカウント値が“−４”ではあるがそれに従わずに中継回路が選択される例であり、図１３Ｂに示されるように、図１１Ｂとは異なってＥＧ［０］１１を宛先とするパケット［０］１１がＳＷ［０］に送信されることとなる。これによって、宛先をＥＧ［０］とするパケットが連続してＳＷ［１］に送信されてしまうことが抑制される。つまり、パケットの入力順序によっては、特定の宛先のパケットが特定の中継回路に偏って送信されてしまう場合に送信先を変更することで、通信経路の選択割合の偏りが抑制される。
【００７２】
以上に述べたように、実施例によれば、通信経路が偏りなく選択されることでパケット送信が分散され、通信の負荷分散が効率的に実行されることとなる。また、冗長なバッファサイズを小さくすることができるので回路規模を小さくでき、バックプレッシャやパケットの廃棄の頻度が減るため、通信効率を向上させることができる。なお、冗長化のためのバッファサイズは、パケットの順序の入れ替えスケジューリングをしたとしても連続送信されてしまうパケットを収容しきれないようなサイズである。実施例によれば、このようなサイズであっても、パケットの送信先を変更して連続送信を抑制するので、バッファに格納されるパケットをあふれさせずに、通信を継続させることができる。
【００７３】
図１４に、実施例の通信装置又は通信回路による処理に従った通信に対応する情報の他の例が示される。図１４に示される情報は、図８の処理に従った結果、更新される宛先毎のカウント情報、送信データ全体に対するカウント情報、及び振り分け情報の他の例である。
【００７４】
図１４Ａに示される情報は、図１３Ａに示される１１番目のパケット［０］１１の送信先としてＳＷ［０］を選択すると決定した後に、情報管理部６１０により更新された宛先毎のカウント情報である。図１３Ａに示されるように、パケット［０］１１がＳＷ［０］に振り分けられたことにより、ＥＧ［０］に関連付けられるカウント値が“−１”されて“＋２”から“＋１”に更新される。
【００７５】
図１４Ｂに示される情報は、図１３Ａに示される１１番目のパケット［０］１１の送信先としてＳＷ［０］を選択すると決定した後に、情報管理部６１０により更新された送信データ全体に対するカウント情報である。図１３Ｂに示されるように、パケット［０］１１がＳＷ［０］に振り分けられたことにより、送信データ全体のカウント値が“−１”されて“−４”から“−５”に更新される。
【００７６】
図１４Ｃに示される情報は、図１３Ａに示される１１番目のパケット［０］１１の送信先としてＳＷ［０］を選択すると決定した後に、情報管理部６１０により更新された振り分け情報である。図１３Ｃに示されるように、パケット［０］１１がＳＷ［０］に振り分けられたことにより、振り分け情報においてＥＧ［０］にＳＷ［１］が関連付けられることとなる。これは、ＥＧ［０］にはＳＷ［０］がもともと関連付けられていたところ、図８に示される処理によってＳＷ［０］が選択されたため、振り分け情報においてＥＧ［０］に関連付けられるスイッチ回路の番号が変更されたことによる。
【００７７】
図１５に、実施例の情報処理装置及び情報処理回路の他の例が示される。図１５に示される情報処理装置の例では、情報処理回路の一例である入力回路２０００に入力されるパケット等のデータが処理回路２１００によって処理され、処理回路２１００が出力されるデータが情報処理回路の例であるデマルチプレクサ２２００により（時）分割されて、部分処理回路２３００及び２４００に入力される。例えば、入力回路２０００に入力されるパケット等のデータの通信速度が高速な場合、通信品質を保つためのパケットの識別など内部処理が間に合わないため、これを並列的に処理させるために部分処理回路２３００及び２４００が用いられる。そして、部分処理回路２３００及び２４００の各々で処理されたデータがデマルチプレクサ２５００やデマルチプレクサ２６００を介してスイッチユニット１５０に送信される。スイッチユニット１５０では、上述したように宛先に基づいたスイッチングを行い、宛先に従って出力回路３０００に含まれる部分処理回路３３００又は３４００にマルチプレクサ３５００やマルチプレクサ３６００を介してデータを送信する。部分処理回路３３００及び部分処理回路３４００から出力されるデータは、マルチプレクサ３２００によりマルチプレクスされて処理回路３１００に入力される。そして、処理回路３１００から所定の宛先にパケット等のデータが送信される。
【００７８】
処理回路２１００が出力されるデータをデマルチプレクサ２２００により部分処理回路２３００及び２４００に振り分ける際に振り分け方が偏ってしまうと、図３、図５、又は図１１に沿って説明したようなデータの送信経路の選択割合に偏りが発生してしまう。そこで、図１５に示されたような並列処理させるためデータを振り分ける際に、図６の機能ブロックや図８の処理を適用して、送信経路の選択割合に偏りが発生しないようにしてもよい。この場合、部分処理回路２３００及び２４００に備えておく冗長なバッファサイズを小さくすることができるので回路規模を小さくでき、バックプレッシャやパケットの廃棄の頻度が減るため、入力装置２０００に入力される通信速度のスループットに合わせた送信効率を実現できる。
【００７９】
なお、上述した実施例は、情報処理装置及び情報処理回路の一例であり発明はこれに限定されず、発明に実施にあたって装置や回路の周辺構成を適宜変更してもよい。
【００８０】
図１６に、実施例の情報処理装置及び情報処理回路に関連するシミュレーション結果の例が示される。このシミュレーションでは、実施例の情報処理装置及び情報処理回路に対して、入力されるパケットの宛先をランダムに変更した場合に、連続送信されるパケット数の時間変化が見積もられている。ここでは、宛先がランダムに変更されたパケットをラウンドロビン方式に従ってスイッチ回路に振り分けた場合に連続送信されるパケット数が四角のプロットで示される。他方で、実施例に基づきパケットが振り分けられた場合に連続送信されるパケット数が菱形のプロットで示される。図１６に示されるように、実施例によれば、連続送信されるパケット数を抑制することができる。そのため、実施例の情報処理装置又は情報処理回路を使用することで、連続送信されるパケットを一時的に記憶しておく冗長バッファのサイズを小さくできる。
【００８１】
上述の実施例によれば、宛先が同じ場合に異なる中継回路を経由させる所定の規則のもとで異なる宛先に送られる複数のデータが特定の中継回路に偏って送信されないよう送信予定のデータを他の中継回路に送ることで、特定の中継回路へ偏ってデータが送信されることが抑制される。例えば、特定の中継回路に連続的にデータが送信されることが抑制される。
【符号の説明】
【００８２】
１００  通信装置
１１０  コントローラ
１１１  ＣＰＵ
１１２  メモリ
１２０  バス
１３０、１４０  ＮＩＣ
１３１、１４１、２０００  入力回路
１３２、１４２、３０００  出力回路
１３３、１４３  プロセッサ
１３４、１４４  バッファ
１３５、１４５  物理ポート及び信号線
１５０  スイッチユニット
１５１、１５２  スイッチ回路
１６０  信号線
２３１、２４１、２２００、２５００、２６００  デマルチプレクサ
２３２、２４２、３２００、３５００、３６００  マルチプレクサ
６００  識別部
６１０  情報管理部
６２０  記憶部
６３０  判定部
６３１  第１判定部（全体判定用）
６３２  第２判定部（宛先単位判定用）
６４０  選択部
２１００、３１００  処理回路
２３００、２４００、３３００、３４００  部分処理回路
【図１】
2014121040.tif 000003
【図２】
2014121040.tif 000004
【図３】
2014121040.tif 000005
【図４】
2014121040.tif 000006
【図５】
2014121040.tif 000007
【図６】
2014121040.tif 000008
【図７】
2014121040.tif 000009
【図８】
2014121040.tif 000010
【図９】
2014121040.tif 000011
【図１０】
2014121040.tif 000012
【図１１】
2014121040.tif 000013
【図１２】
2014121040.tif 000014
【図１３】
2014121040.tif 000015
【図１４】
2014121040.tif 000016
【図１５】
2014121040.tif 000017
【図１６】
2014121040.tif 000018