(58)【調査した分野】(Int.Cl.,DB名)
前記制御部は、前記データの送信に要する時間が所定の閾値を超えている場合には、異なる通信方式を用いてデータを送信するように制御することを特徴とする請求項1、2又は3に記載の情報処理装置。
前記制御部は、前記距離記憶部に記憶された距離情報を所定の閾値と比較することにより、前記データを送信する通信方式を決定し、前記データの送信に要する時間に基づいて、前記閾値を増減させることを特徴とする請求項3に記載の情報処理装置。
【発明を実施するための形態】
【0014】
以下に、本願の開示する情報処理装置、情報処理システム、通信方法及び通信プログラムの実施例を図面に基づいて詳細に説明する。なお、以下の実施例は開示の技術を限定するものではない。
【実施例1】
【0015】
まず、実施例1に係る情報処理システムの構成について説明する。
図1は、実施例1に係る情報処理システムの構成を示す図である。
図1に示すように、情報処理システムは、ラック1にNWスイッチ2とAP3と99台のノード10が搭載された高集積サーバである。なお、ここでは、ラック1に1台のNWスイッチ2と99台のノード10を搭載しているが、より多くのNWスイッチ2やより多くのノード10あるいはより少ないノード10を1つのラックに搭載することができる。
【0016】
NWスイッチ2は、インターネット等の外部ネットワークと接続するためのスイッチである。AP3は、2.4GHz帯及び5GHz帯の周波数を使用するWLAN(Wireless Local Area Network)のアクセスポイントである。
図2は、AP3を用いたWLANの通信を説明するための図である。
図2は、AP3と3つのSTA(ステーション)4からなる無線システムである。
【0017】
図2に示すように、STA4は他のSTA4にデータを転送する場合、AP3を介してデータを転送する。したがって、STA4の数が多い場合には、AP3にデータが集中し、輻輳が生じる。また、WLANの通信速度は600メガビット/秒(Mbps)程度であり、有線の通信速度は1.0ギガビット/秒(Gbps)より大きいため、有線の通信に比べてWLANの通信速度は遅い。
【0018】
なお、
図2に示す通信のモードはインフラストラクチャモードと呼ばれ、装置間の通信はAP3を介して通信が行われる。一方、AP3を介さず装置間で直接通信するモードはアドホックモードと呼ばれる。インフラストラクチャモードは多数の装置が通信する場合に適しており、アドホックモードは少数の装置が通信する場合に適している。
【0019】
ノード10は、CPU11と、メモリ12と、ストレージ13と、XB14とを有する情報処理装置である。また、ノード10は、60G無線上用アンテナ15aと、60G無線下用アンテナ15bと、60G無線左用アンテナ15cと、60G無線右用アンテナ15dと、WLAN用アンテナ15eとを有する。なお、ノード10は、筐体内に収容されている。また、60G無線上用アンテナ15a、60G無線下用アンテナ15b、60G無線左用アンテナ15c、60G無線右用アンテナ15d及びWLAN用アンテナ15eは、XB14と接続されている。
【0020】
CPU11は、メモリ12からプログラムを読み出して実行する中央処理装置である。メモリ12は、プログラムやプログラムの実行途中結果などを記憶するRAM(Random Access Memory)である。ストレージ13は、データを記憶する不揮発性メモリであり、例えば、NANDフラッシュメモリである。また、ストレージ13は、ノード10にインストールされたプログラムを記憶する。
【0021】
XB14は、他のノード10と通信を行うためのクロスバースイッチである。XB14は、1つのLSIである。60G無線上用アンテナ15aは、60GHz帯の周波数を使用する無線通信である60G無線のアンテナであり、上向きの方向に設置され、ラック1内で上に隣接するノード10との通信に用いられる。同様に、60G無線下用アンテナ15bは、60G無線のアンテナであり、下向きの方向に設置され、ラック1内で下に隣接するノード10との通信に用いられる。
【0022】
また、60G無線左用アンテナ15cは、60G無線のアンテナであり、左向きの方向に設置され、ラック1内で左に隣接するノード10との通信に用いられる。60G無線右用アンテナ15dは、60G無線のアンテナであり、右向きの方向に設置され、ラック1内で右に隣接するノード10との通信に用いられる。
【0023】
60G無線は、通信速度が数Gbps程度実現可能であり、WLANと比較して高速である。しかしながら、60G無線は電波が届きにくく、筐体が電波の障壁となり、1つの60G無線モジュールを使用して隣接する上下左右のノード10と通信するのは困難である。そこで、ノード10は、隣接する上下左右のノード10とそれぞれ通信する4つの60G無線モジュールを有する。WLAN用アンテナ15eは、WLANのアンテナである。
【0024】
ノード10は、所定の閾値より距離が近いノード10とは60G無線を用いて通信を行い、所定の閾値以上の距離があるノード10とはWLANを用いて通信を行う。例えば、
図1において、ラック1のSに位置するノード10は、D
1に位置するノード10と通信を行う場合には、距離が近いので、60G無線を用いてラック1の下に位置するノードを経由して通信を行う。また、ラック1のSに位置するノード10は、D
2に位置するノード10と通信を行う場合には、距離が遠いので、AP3を経由してWLANで通信を行う。
【0025】
このように、ノード10は、所定の閾値
以下の距離のノード10とは60G無線を用いて通信を行い、所定の閾値
より大きい距離があるノード10とはWLANを用いて通信を行う。したがって、ノード10は、AP3に輻輳を発生させることなく、多数のノード10と高速に無線通信を行うことができる。
【0026】
次に、XB14の構成について説明する。
図3Aは、XB14の構成を示す図である。
図3Aに示すように、XB14は、ホストI/F141と、2つのルーティングテーブル142と、ルーティング部143と、5つのパケット解析部144と、5つのI/F145とを有する。また、XB14は、60G無線上部146aと、60G無線下部146bと、60G無線左部146cと、60G無線右部146dと、WLAN部147と、NIレジスタ148とを有する。
【0027】
ホストI/F141は、自ノードのCPU11とのインタフェースであり、CPU11から受け取ったパケットをルーティング部143に渡し、ルーティング部143から受け取ったパケットを自ノードのCPU11に渡す。また、ホストI/F141は、自ノードのCPU11から受け取ったパケットの宛先をルーティングテーブル142に渡す。
【0028】
ルーティングテーブル142は、パケットの宛先からルーティング先を示すルーティング情報を検索する検索テーブルである。ルーティング部143は、ホストI/F141からパケットを受け取り、ルーティングテーブル142から受け取ったルーティング情報及びNIレジスタ148の情報に基づいてパケットをいずれかのI/F145に渡す。また、ルーティング部143は、いずれかのパケット解析部144からパケットを受け取り、ルーティングテーブル142から受け取ったルーティング情報及びNIレジスタ148の情報に基づいてパケットをホストI/F141又はいずれかのI/F145に渡す。
【0029】
パケット解析部144は、I/F145からパケットを受け取り、NIレジスタ148の情報に基づいてパケットを解析し、宛先を抽出する。そして、パケット解析部144は、抽出した宛先をルーティングテーブル142に渡すとともに、パケットをルーティング部143に渡す。
【0030】
I/F145は、60G無線モジュール又はWLAN部147から受け取った信号をパケットに変換し、対応するパケット解析部144に渡す。また、I/F145は、ルーティング部143によりルーティングされたパケットを受け取り、それぞれ対応する60G無線モジュール又はWLANモジュールに送信を指示する。60G無線上部146a、60G無線下部146b、60G無線左部146c及び60G無線右部146dは、60GHZ帯の周波数を使用して無線通信を行う60G無線モジュールである。
【0031】
60G無線上部146aは、
図1に示した60G無線上用アンテナ15aを用いてラック1内で上に隣接するノード10と無線通信を行う。60G無線下部146bは、
図1に示した60G無線下用アンテナ15bを用いてラック1内で下に隣接するノード10と無線通信を行う。60G無線左部146cは、
図1に示した60G無線左用アンテナ15cを用いてラック1内で左に隣接するノード10と無線通信を行う。60G無線右部146dは、
図1に示した60G無線右用アンテナ15dを用いてラック1内で右に隣接するノード10と無線通信を行う。
【0032】
WLAN部147は、STA4の機能を備え、WLANを用いてAP3経由で他のノード10のWLAN部147と通信を行う。NIレジスタ148は、ノードID(Identifier)、IP(Internet Protocol)アドレス、MAC(Media Access Control)アドレスなど自ノードの情報を記憶するレジスタである。
【0033】
なお、
図3Aに示すXB14は、60G無線モジュール及びWLAN部147を有するが、60G無線モジュール及びWLAN部147をXBの外に設けることもできる。
図3Bは、60G無線モジュール及びWLAN部147を外に設けた他のXBの構成を示す図である。
【0034】
図3Bに示すように、XB14aは、60G無線上部146a、60G無線下部146b、60G無線左部146c、60G無線右部146d及びWLAN部147を有しない。XB14aは、外に設けられた60G無線上部10a、60G無線下部10b、60G無線左部10c、60G無線右部10d及びWLAN部10eを用いて無線通信を行う。
【0035】
次に、ルーティングテーブル142の詳細について
図4、
図5A及び
図5Bを用いて説明する。
図4は、ノード10の配置を示す図であり、
図5A及び
図5Bは、実施例1に係るルーティングテーブル142の一例を示す図である。
図4において、1、2、・・・、18は、ノード10をそれぞれ識別する番号を表す。すなわち、
図4は、ラック1内に左上から右に向かってノード
1、ノード
2、・・・、ノード
9が配置され、次の段にノード
10、ノード
11、・・・、ノード
18が配置されていることを示す。
【0036】
図5Aは、
図4に示したノード配置の場合に、ノード
1に設定されるルーティングテーブル142を示し、
図5Bは、
図4に示したノード配置の場合に、ノード
2に設定されるルーティングテーブル142を示す。
【0037】
図5Aに示すように、ノード
1のルーティングテーブル142では、パケットの宛先にルーティング先が対応付けられる。
図5Aにおいて、ルーティング先「60G無線 右」は、ルーティング先が60G無線右部146dであることを示し、ルーティング先「60G無線 下」は、ルーティング先が60G無線下部146bであることを示す。同様に、ルーティング先「60G無線 左」は、ルーティング先が60G無線左部146cであることを示し、ルーティング先「60G無線 上」は、ルーティング先が60G無線上部146aであることを示す。また、ルーティング先「WLAN」は、ルーティング先がWLAN部147であることを示す。
【0038】
例えば、パケットの宛先がノード
1すなわち自ノードである場合には、ルーティング先は、ホストすなわち自ノードのCPU11である。また、パケットの宛先がノード
2である場合には、ノード
2は右に配置されるので、ルーティング先は、60G無線右部146dである。
【0039】
また、パケットの宛先がノード
3である場合には、ノード
3は右方向に配置されるので、ルーティング先は、60G無線右部146dである。また、パケットの宛先がノード
10である場合には、ノード
10は下に配置されるので、ルーティング先は、60G無線下部146bである。また、パケットの宛先がノード
18である場合には、経由するノード10の数を距離として、ノード
18との距離は9であり、例えば距離の閾値を4とするとノード
18は遠いので、ルーティング先は、WLAN部147である。
【0040】
また、
図5Bに示すように、ノード
2のルーティングテーブル142では、パケットの宛先がノード
1である場合には、ノード
1は左に配置されるので、ルーティング先は、60G無線左部146cである。また、パケットの宛先がノード
2である場合にはルーティング先は、ホストすなわち自ノードのCPU11である。
【0041】
また、パケットの宛先がノード
3である場合には、ノード
3は右に配置されるので、ルーティング先は、60G無線右部146dである。また、パケットの宛先がノード
10である場合には、ノード
10は左下に配置されるので、ルーティング先は、60G無線下部146bである。この場合、ルーティング先は、60G無線左部146cであってもよい。また、パケットの宛先がノード
18である場合には、経由するノード10の数を距離として、ノード
18との距離は8であり、例えば距離の閾値を4とするとノード
18は遠いので、ルーティング先は、WLAN部147である。
【0042】
このように、近距離のノード10には60G無線モジュールへルーティングし、遠距離のノード10にはWLANモジュールへルーティングするようにルーティングテーブル142が設定される。このため、ノード10は、近距離のノード10へは60G無線モジュールを使用することで高速にデータを送信し、遠距離のノード10へはWLANモジュールを使用することで1ホップでデータを送信することができる。したがって、ノード10は、遠距離のノード10へも効率よくデータを送信することができる。
【0043】
次に、実施例1に係るノード10による送信処理のフローについて説明する。
図6は、実施例1に係るノード10による送信処理のフローを示すフローチャートである。
図6に示すように、ノード10は、ルーティングテーブル142を用いて宛先に対するテーブル検索を行い(ステップS1)、パケットを該当する無線モジュールへルーティングする(ステップS2)。
【0044】
そして、ルーティング先が、60G無線上部146aである場合には、60G無線上部146aが60G無線を用いてパケットを送信する(ステップS3)。また、ルーティング先が、60G無線下部146bである場合には、60G無線下部146bが60G無線を用いてパケットを送信する(ステップS4)。
【0045】
また、ルーティング先が、60G無線左部146cである場合には、60G無線左部146cが60G無線を用いてパケットを送信する(ステップS5)。また、ルーティング先が、60G無線右部146dである場合には、60G無線右部146dが60G無線を用いてパケットを送信する(ステップS6)。また、ルーティング先が、WLAN部147である場合には、WLAN部147がWLANを用いてパケットを送信する(ステップS7)。
【0046】
次に、実施例1に係るノード10による受信処理のフローについて説明する。
図7は、実施例1に係るノード10による受信処理のフローを示すフローチャートである。
図7に示すように、ノード10は、パケットを受信する(ステップS11)と、パケットの宛先が自ノードであるか否かを判定する(ステップS12)。その結果、パケットの宛先が自ノードである場合には、ホストへパケットを送信し(ステップS20)、ノード10は、ACKを送信元に送信する(ステップS21)。
【0047】
一方、パケットの宛先が自ノードでない場合には、ノード10は、ルーティングテーブル142を用いて宛先に対するテーブル検索を行い(ステップS13)、パケットを該当する無線モジュールへルーティングする(ステップ14)。
【0048】
そして、ルーティング先が、60G無線上部146aである場合には、60G無線上部146aが60G無線を用いてパケットを送信する(ステップS15)。また、ルーティング先が、60G無線下部146bである場合には、60G無線下部146bが60G無線を用いてパケットを送信する(ステップS16)。
【0049】
また、ルーティング先が、60G無線左部146cである場合には、60G無線左部146cが60G無線を用いてパケットを送信する(ステップS17)。また、ルーティング先が、60G無線右部146dである場合には、60G無線右部146dが60G無線を用いてパケットを送信する(ステップS18)。また、ルーティング先が、WLAN部147である場合には、WLAN部147がWLANを用いてパケットを送信する(ステップS19)。
【0050】
このように、ノード10は、ルーティングテーブル142を用いてパケットのルーティング先を決めるので、ノード10からの距離に基づくルーティング先をルーティングテーブル142に設定することで、60G無線とWLANを適切に使い分けることができる。
【0051】
上述してきたように、実施例1では、ルーティングテーブル142は、自ノードから宛先のノード10への距離に基づいてルーティング先が60G無線かWLANかを記憶する。したがって、ノード10は、ルーティングテーブル142を検索することにより、60G無線とWLANを適切に使い分けることができ、情報処理システムは、多数のノード10を無線で高速に接続することができる。
【0052】
また、実施例1では、ノード10は、上下左右の方向に設置された4つの60G無線アンテナをそれぞれ用いて上下左右に隣接するノード10と60G無線通信を行う。したがって、ノード10は、筐体が電波の障害となることを防ぎ、信頼性の高い無線通信を隣接するノード10と行うことができる。
【実施例2】
【0053】
ところで、上記実施例1では、自ノードから宛先のノード10への距離に基づいてルーティング先が60G無線かWLANかが設定されるルーティングテーブル142について説明した。しかしながら、自ノードから宛先のノード10への距離が設定されたルーティングテーブル142を用いてノード10がルーティング先をWLANか60G無線かに決定することもできる。そこで、実施例2では、自ノードから宛先のノード10への距離が設定されたルーティングテーブル142を用いてノード10がルーティング先をWLANか60G無線かに決定する場合について説明する。
【0054】
図8A及び
図8Bは、実施例2に係るルーティングテーブル142の一例を示す図である。
図8Aは、
図4に示したノード配置の場合に、ノード
1に設定されるルーティングテーブル142の一例を示し、
図8Bは、
図4に示したノード配置の場合に、ノード
2に設定されるルーティングテーブル142の一例を示す。
【0055】
図8Aに示すように、ノード
1のルーティングテーブル142では、パケットの宛先にルーティング先と距離Dが対応付けられる。ここで、距離Dは、宛先までのノード10のホップ数である。例えば、パケットの宛先がノード
1すなわち自ノードである場合には、ルーティング先は、ホストであり、距離Dはない。また、パケットの宛先がノード
2である場合には、ノード
2は右に配置されるので、ルーティング先は、60G無線右部146dであり、距離Dは1である。
【0056】
また、パケットの宛先がノード
3である場合には、ノード
3はノード
2の右に配置されるので、ルーティング先は、60G無線右部146dであり、距離Dは2である。また、パケットの宛先がノード
9である場合には、ノード
9は右端に配置されるので、ルーティング先は、60G無線右部146dであり、距離は8である。また、パケットの宛先がノード
10である場合には、ノード
10は下に配置されるので、ルーティング先は、60G無線下部146bであり、距離は1である。
【0057】
また、
図8Bに示すように、ノード
2のルーティングテーブル142では、パケットの宛先がノード
1である場合には、ノード
1は左に配置されるので、ルーティング先は、60G無線左部146cであり、距離Dは1である。また、パケットの宛先がノード
2である場合にはルーティング先は、ホストすなわち自ノードのCPU11であり、距離Dはない。
【0058】
また、パケットの宛先がノード
3である場合には、ノード
3は右に配置されるので、ルーティング先は、60G無線右部146dであり、距離Dは1である。また、パケットの宛先がノード
9である場合には、ノード
9は右端に配置されるので、ルーティング先は、60G無線右部146dであり、距離Dは7である。また、パケットの宛先がノード
10である場合には、ノード
10は左下に配置されるので、ルーティング先は、60G無線下部146bであり、距離Dは2である。この場合、ルーティング先は、60G無線左部146cであってもよい。
【0059】
このように、宛先のノード10までの距離Dがルーティングテーブル142に設定される。このため、ノード10は、距離Dを閾値Dthと比較し、D>Dthの場合には、WLANモジュールを使用し、D≦Dthの場合には60G無線モジュールを使用する。したがって、ノード10は、遠距離のノード10へも効率よくデータを送信することができる。なお、閾値Dthは、NIレジスタ148に記憶される。
【0060】
次に、実施例2に係るノード10による送信処理のフローについて説明する。
図9は、実施例2に係るノード10による送信処理のフローを示すフローチャートである。
図9に示すように、ノード10は、ルーティングテーブル142を用いて宛先に対するテーブル検索を行い(ステップS31)、ルーティング先及び距離Dを取得する。そして、ノード10は、DがDthより大きいか否かを判定し(ステップS32)、DがDthより大きくない場合には、パケットを該当する無線モジュールへルーティングする(ステップS33)。
【0061】
そして、ルーティング先が、60G無線上部146aである場合には、60G無線上部146aが60G無線を用いてパケットを送信する(ステップS34)。また、ルーティング先が、60G無線下部146bである場合には、60G無線下部146bが60G無線を用いてパケットを送信する(ステップS35)。
【0062】
また、ルーティング先が、60G無線左部146cである場合には、60G無線左部146cが60G無線を用いてパケットを送信する(ステップS36)。また、ルーティング先が、60G無線右部146dである場合には、60G無線右部146dが60G無線を用いてパケットを送信する(ステップS37)。
【0063】
一方、DがDthより大きい場合には、ノード10は、WLANモジュールへルーティングし(ステップS38)、WLAN部147がWLANを用いてパケットを送信する(ステップS39)。
【0064】
次に、実施例2に係るノード10による受信処理のフローについて説明する。
図10は、実施例2に係るノード10による受信処理のフローを示すフローチャートである。
図10に示すように、ノード10は、パケットを受信する(ステップS41)と、パケットの宛先が自ノードであるか否かを判定する(ステップS42)。その結果、パケットの宛先が自ノードである場合には、ホストへパケットを送信し(ステップS52)、ノード10は、ACKを送信元に送信する(ステップS53)。
【0065】
一方、パケットの宛先が自ノードでない場合には、ノード10は、ルーティングテーブル142を用いて宛先に対するテーブル検索を行い(ステップS43)、ルーティング先及び距離Dを取得する。そして、ノード10は、DがDthより大きいか否かを判定し(ステップS44)、DがDthより大きくない場合には、パケットを該当する無線モジュールへルーティングする(ステップS45)。
【0066】
そして、ルーティング先が、60G無線上部146aである場合には、60G無線上部146aが60G無線を用いてパケットを送信する(ステップS46)。また、ルーティング先が、60G無線下部146bである場合には、60G無線下部146bが60G無線を用いてパケットを送信する(ステップS47)。
【0067】
また、ルーティング先が、60G無線左部146cである場合には、60G無線左部146cが60G無線を用いてパケットを送信する(ステップS48)。また、ルーティング先が、60G無線右部146dである場合には、60G無線右部146dが60G無線を用いてパケットを送信する(ステップS49)。
【0068】
一方、DがDthより大きい場合には、ノード10は、WLANモジュールへルーティングし(ステップS50)、WLAN部147がWLANを用いてパケットを送信する(ステップS51)。
【0069】
このように、ノード10は、ルーティングテーブル142から取得した距離Dと閾値Dthとを比較してパケットのルーティング先を決める。したがって、ノード10からの距離Dをルーティングテーブル142に設定することで、ノード10は、60G無線とWLANを適切に使い分けることができる。
【0070】
上述してきたように、実施例2では、ルーティングテーブル142には、自ノードから宛先のノード10への距離Dが設定される。したがって、ノード10は、ルーティングテーブル142から距離Dを検索し、距離Dと閾値Dthを比較することにより、60G無線とWLANを適切に使い分けることができ、情報処理システムは、多数のノード10を無線で高速に接続することができる。
【実施例3】
【0071】
ところで、上記実施例1及び2では、各ノード10がWLANのSTA機能を有する場合について説明したが、STA機能を有するノード10を限定することもできる。そこで、STA機能を有するノード10を限定する場合について説明する。
【0072】
まず、ノード10のグループ化について説明する。
図11は、ノード10のグループ化の一例を示す図である。
図11に示すように、ノード10は近接する12個ごとにグループ化される。例えば、グループ
1には、ノード
1〜ノード
3、ノード
10〜ノード
12、ノード
19〜ノード
21及びノード
28〜ノード
30が含まれ、グループ
2には、ノード
4〜ノード
6、ノード
13〜ノード
15、ノード
22〜ノード
24及びノード
31〜ノード
33が含まれる。また、グループ
3には、ノード
7〜ノード
9、ノード
16〜ノード
18、ノード
25〜ノード
27及びノード
34〜ノード
36が含まれる。
【0073】
そして、各グループには、1つのノード10だけがWLANのSTA機能を備える。例えば、グループ
1では、ノード
11だけがSTA機能を備える。そして、各ノード10は、グループ内の他のノード10と通信する場合には、60G無線を用い、グループ外のノード10と通信する場合にはWLANを用いて通信する。
【0074】
例えば、ノード
1は、グループ内のノード
3にパケットを送る場合には60G無線を用いる。一方、ノード
1は、グループ外のノード
15にパケットを送る場合には、STA機能を有するノード
11を介して、WLANでノード
15にパケットを送る。また、ノード
1は、ノード
11へは60G無線を用いてパケットを送る。
【0075】
このように、ノード10をグループ化し、WLANのSTA機能を有するノード10をグループ内に1つだけに限定することによって、情報処理システムは、AP3に接続するノードを削減し、AP3の輻輳を防止することができる。
【0076】
図12A〜
図12Dは、実施例3に係るルーティングテーブル142の一例を示す図である。
図11に示したグループ化で、
図12Aは、ノード
1のルーティングテーブル142を示し、
図12Bは、ノード
2のルーティングテーブル142を示す。また、
図11に示したグループ化で、
図12Cは、ノード
10のルーティングテーブル142を示し、
図12Dは、ノード
11のルーティングテーブル142を示す。
【0077】
図12A〜
図12Dに示すように、ルーティングテーブル142は、宛先とルーティング先とグループIDとWSTAを対応付けて記憶する。グループIDは、宛先のノード10が属するグループを識別する識別子である。WSTAは、宛先のノード10がWLANのSTA機能を有するか否かを示し、「0」はSTA機能を有さないことを示し、「1」はSTA機能を有することを示す。
【0078】
例えば、
図12Aに示すように、ノード
1のルーティングテーブル142では、パケットの宛先がノード
1すなわち自ノードである場合には、ルーティング先はホストであり、グループIDは1であり、WSTAは0である。また、パケットの宛先がノード
2である場合には、ノード
2は右に配置されるので、ルーティング先は60G無線右部146dであり、グループIDは1であり、WSTAは0である。
【0079】
また、パケットの宛先がノード
11である場合には、ノード
11はノード
1の右下に配置されるので、ルーティング先は60G無線下部146bであり、グループIDは1であり、ノード
11はSTA機能を有するのでWSTAは1である。また、パケットの宛先がノード
14である場合には、ノード
14は別のグループであり、グループ内でSTA機能を有するノード
11は右下に配置されるので、ルーティング先は、60G無線下部146bであり、グループIDは2であり、ノード
14はSTA機能を有するのでWSTAは1である。
【0080】
また、
図12Bに示すように、ノード
2のルーティングテーブル142では、例えば、パケットの宛先がノード
1である場合には、ノード
1は左に配置されるので、ルーティング先は、60G無線左部146cであり、グループIDは1であり、WSTAは0である。また、パケットの宛先がノード
2である場合にはルーティング先は、ホストすなわち自ノードのCPU11であり、グループIDは1であり、WSTAは0である。
【0081】
また、
図12Cに示すように、ノード
10のルーティングテーブル142では、例えば、パケットの宛先がノード
1である場合には、ノード
1は上に配置されるので、ルーティング先は、60G無線上部146aであり、グループIDは1であり、WSTAは0である。また、パケットの宛先がノード
10である場合にはルーティング先は、ホストすなわち自ノードのCPU11であり、グループIDは1であり、WSTAは0である。
【0082】
また、
図12Dに示すように、ノード
11のルーティングテーブル142では、例えば、パケットの宛先がノード
1である場合には、ノード
1は左上に配置されるので、ルーティング先は、60G無線上部146aであり、グループIDは1であり、WSTAは0である。また、パケットの宛先がノード
11である場合にはルーティング先は、ホストすなわち自ノードのCPU11であり、グループIDは1であり、ノード
11はSTA機能を有するのでWSTAは1である。
【0083】
次に、実施例3に係るノード10による送信処理のフローについて説明する。
図13は、実施例3に係るノード10による送信処理のフローを示すフローチャートである。
図13に示すように、ノード10は、ルーティングテーブル142を用いて宛先に対するテーブル検索を行い(ステップS61)、ルーティング先及びグループIDを取得する。そして、ノード10は、GIDが自GIDと等しいか否か、すなわちグループIDが自ノードのグループIDと等しいか否かを判定し(ステップS62)、GIDが自GIDと等しい場合には、パケットを該当する無線モジュールへルーティングする(ステップS63)。
【0084】
そして、ルーティング先が、60G無線上部146aである場合には、60G無線上部146aが60G無線を用いてパケットを送信する(ステップS64)。また、ルーティング先が、60G無線下部146bである場合には、60G無線下部146bが60G無線を用いてパケットを送信する(ステップS65)。
【0085】
また、ルーティング先が、60G無線左部146cである場合には、60G無線左部146cが60G無線を用いてパケットを送信する(ステップS66)。また、ルーティング先が、60G無線右部146dである場合には、60G無線右部146dが60G無線を用いてパケットを送信する(ステップS67)。
【0086】
一方、GIDが自GIDと等しくない場合(ステップS62、No)には、別のグループへの送信なので、ノード10は、自ノードのWSTAが1であるか否かを判定する(ステップS68)。その結果、自ノードのWSTAが1でない場合には、ノード10は、グループ内のWSTAが1のノード10に送信する場合の無線モジュールへパケットをルーティングし(ステップS69)、ステップS64〜ステップS67のいずれかに進む。
【0087】
一方、自ノードのWSTAが1である場合には、ノード10は、WLANモジュールへルーティングし(ステップS70)、WLAN部147がWLANを用いてパケットを送信する(ステップS71)。
【0088】
次に、実施例3に係るノード10による受信処理のフローについて説明する。
図14は、実施例3に係るノード10による受信処理のフローを示すフローチャートである。
図14に示すように、ノード10は、パケットを受信する(ステップS81)と、パケットの宛先が自ノードであるか否かを判定する(ステップS82)。その結果、パケットの宛先が自ノードである場合には、ホストへパケットを送信し(ステップS94)、ノード10は、ACKを送信元に送信する(ステップS95)。
【0089】
一方、パケットの宛先が自ノードでない場合には、ノード10は、ルーティングテーブル142を用いて宛先に対するテーブル検索を行い(ステップS83)、ルーティング先及びグループIDを取得する。そして、ノード10は、GIDが自GIDと等しいか否かを判定し(ステップS84)、GIDが自GIDと等しい場合には、パケットを該当する無線モジュールへルーティングする(ステップS85)。
【0090】
そして、ルーティング先が、60G無線上部146aである場合には、60G無線上部146aが60G無線を用いてパケットを送信する(ステップS86)。また、ルーティング先が、60G無線下部146bである場合には、60G無線下部146bが60G無線を用いてパケットを送信する(ステップS87)。
【0091】
また、ルーティング先が、60G無線左部146cである場合には、60G無線左部146cが60G無線を用いてパケットを送信する(ステップS88)。また、ルーティング先が、60G無線右部146dである場合には、60G無線右部146dが60G無線を用いてパケットを送信する(ステップS89)。
【0092】
一方、GIDが自GIDと等しくない場合(ステップS84、No)には、別のグループへの送信なので、ノード10は、自ノードのWSTAが1であるか否かを判定する(ステップS90)。その結果、自ノードのWSTAが1でない場合には、ノード10は、グループ内のWSTAが1のノード10に送信する場合の無線モジュールへパケットをルーティングし(ステップS91)、ステップS86〜ステップS89のいずれかに進む。
【0093】
一方、自ノードのWSTAが1である場合には、ノード10は、WLANモジュールへルーティングし(ステップS92)、WLAN部147がWLANを用いてパケットを送信する(ステップS93)。
【0094】
このように、グループ外にパケットを送信する場合に、ノード10は、グループ内でSTA機能を有するノード10にパケットを送信し、STA機能を有するノード10がWLANを用いてパケットを送信する。したがって、情報処理システムは、AP3の輻輳を減らすことができる。
【0095】
上述してきたように、実施例3では、近接するノード10がグループ化され、ノード10は、同一グループ内では60G無線でパケットを送信し、別のグループへはWLANでパケットを送信する。したがって、ノード10は、グループIDを用いて60G無線とWLANを適切に使い分けることができ、情報処理システムは、多数のノード10を無線で高速に接続することができる。なお、ここでは、近接する12個のノード10をグループ化したが、情報処理システムは、任意の個数のノード10をグループ化することができる。
【実施例4】
【0096】
ところで、上記実施例1〜3では、2つのノード間では、60G無線を用いるかWLANを用いるかは固定されていた。しかしながら、通信の状態によっては、2つのノード間で使用する無線モジュールを変更したほうが、効率よく通信が行える場合がある。そこで、実施例4では、通信の状態により、2つのノード間で使用する無線モジュールを変更する場合について説明する。
【0097】
まず、実施例4に係るXBの構成について説明する。
図15Aは、実施例4に係るXBの構成を示す図である。なお、ここでは説明の便宜上、
図3Aに示した各部と同様の役割を果たす機能部については同一符号を付すこととしてその詳細な説明を省略する。
【0098】
図15Aに示すように、XB14bは、ホストI/F141と、2つのルーティングテーブル142bと、ルーティング部143bと、5つのパケット解析部144bと、5つのI/F145とを有する。また、XB14bは、60G無線上部146aと、60G無線下部146bと、60G無線左部146cと、60G無線右部146dと、WLAN部147と、NIレジスタ148と、タイマ149と、切替部150とを有する。
【0099】
ルーティングテーブル142bは、パケットの宛先からルーティング先を示すルーティング情報を検索する検索テーブルであるが、ルーティングテーブル142と異なり、2つのルーティング先を有する。
【0100】
ルーティング部143bは、ホストI/F141又はパケット解析部144bからパケットを受け取り、ルーティングテーブル142bから受け取ったルーティング情報及びNIレジスタ148の情報に基づいてパケットをホストI/F141又はI/F145に渡す。また、ルーティング部143bは、ルーティング部143と異なり、パケットの転送時間を測定するために、ルーティングする際にタイマ149をスタートさせる。
【0101】
パケット解析部144bは、I/F145からパケットを受け取り、NIレジスタ148の情報に基づいてパケットを解析し、宛先を抽出する。そして、パケット解析部144bは、抽出した宛先をルーティングテーブル142bに渡すとともに、パケットをルーティング部143bに渡す。また、パケット解析部144bは、パケットがACKである場合には、タイマ149をストップする。
【0102】
タイマ149は、パケットの転送時間を測定するための装置であり、パケットを送信するときにルーティング部143bによりスタートされ、ACKを受信したときにパケット解析部144bによりストップされる。
【0103】
切替部150は、タイマ149を参照してタイマ値を閾値Tthと比較し、タイマ値が閾値Tthを超えている場合には、ルーティング先を他の無線モジュールに切り替える。このように、切替部150がパケットの転送時間に基づいてルーティング先を他の無線モジュールに切り替えることによって、ノード10
fは通信状態に応じて無線モジュールを使い分けることができる。ここで、「ノード10
f」とは、実施例4に係るノードを示す。
【0104】
なお、
図15Aに示すXB14bは、60G無線モジュール及びWLAN部147を有するが、60G無線モジュール及びWLAN部147をXBの外に設けることもできる。
図15Bは、60G無線モジュール及びWLAN部147を外に設けた他のXBの構成を示す図である。
【0105】
図15Bに示すように、XB14cは、60G無線上部146a、60G無線下部146b、60G無線左部146c、60G無線右部146d及びWLAN部147を有しない。XB14cは、外に設けられた60G無線上部10a、60G無線下部10b、60G無線左部10c、60G無線右部10d及びWLAN部10eを用いて無線通信を行う。
【0106】
図16A及び
図16Bは、実施例4に係るルーティングテーブル142bの一例を示す図である。
図16Aは、
図4に示したノード配置の場合に、ノード
1のルーティングテーブル142bを示し、
図16Bは、
図4に示したノード配置の場合に、ノード
2のルーティングテーブル142bを示す。
【0107】
図16A及び
図16Bに示すように、ルーティングテーブル142bは、宛先と2つのルーティング先と使用するルーティング先とを対応付けて記憶する。使用するルーティング先は、ルーティング先
1及びルーティング先
2のうちのいずれのルーティング先を使用するかを示し、値は1又は2である。
【0108】
例えば、
図16Aに示すように、宛先ノード
2に対応するルーティング先
1は、ノード
2はノード
1の右に配置されているので、60G無線右部146dであり、宛先ノード
2に対応するルーティング先
2は、WLAN部147である。また、使用するルーティング先は、ルーティング先
1である。また、宛先ノード
3に対応するルーティング先
1は、ノード
3はノード
1の右方向に配置されているので、60G無線右部146dであり、宛先ノード
3に対応するルーティング先
2は、WLAN部147である。また、使用するルーティング先は、ルーティング先
2である。
【0109】
また、
図16Bに示すように、宛先ノード
2に対応するルーティング先
1及びルーティング先
2は、ホストであり、使用するルーティング先は、ルーティング先
1である。また、宛先ノード
3に対応するルーティング先
1は、ノード
3はノード
2の右に配置されているので、60G無線右部146dであり、宛先ノード
3に対応するルーティング先
2は、WLAN部147である。また、使用するルーティング先は、ルーティング先
1である。
【0110】
このように、ルーティングテーブル142bに2つのルーティング先を設けることにより、ノード10
fは、2つのルーティング先を使い分けて、効率よくパケットを送信することができる。
【0111】
次に、実施例4に係るノード10
fによる送信処理のフローについて説明する。
図17は、実施例4に係るノード10
fによる送信処理のフローを示すフローチャートである。
図17に示すように、ノード10
fは、ルーティングテーブル142bを用いて宛先に対するテーブル検索を行い(ステップS101)、パケットを該当する無線モジュールへルーティングする(ステップS102)。このとき、ノード10
fは、タイマ149をスタートさせる(ステップS103)。
【0112】
そして、ルーティング先が、60G無線上部146aである場合には、60G無線上部146aが60G無線を用いてパケットを送信する(ステップS104)。また、ルーティング先が、60G無線下部146bである場合には、60G無線下部146bが60G無線を用いてパケットを送信する(ステップS105)。
【0113】
また、ルーティング先が、60G無線左部146cである場合には、60G無線左部146cが60G無線を用いてパケットを送信する(ステップS106)。また、ルーティング先が、60G無線右部146dである場合には、60G無線右部146dが60G無線を用いてパケットを送信する(ステップS107)。また、ルーティング先が、WLAN部147である場合には、WLAN部147がWLANを用いてパケットを送信する(ステップS108)。
【0114】
そして、ノード10
fは、パケットの送信先のノード10
fからACKを受信する(ステップS109)と、タイマ149をストップする(ステップS110)。そして、ノード10
fは、タイマ値が閾値Tthより大きいか否かを判定し(ステップS111)、タイマ値が閾値Tthより大きい場合には、ルーティングテーブル142bのルーティング先を切り替える(ステップS112)。
【0115】
なお、ノード10
fによる受信処理のフローは、
図7に示したノード10による受信処理のフローと同じである。
【0116】
上述してきたように、実施例4では、ルーティングテーブル142bに2つのルーティング先を記憶させ、ノード10
fは、パケットの転送時間が所定の閾値Tthより大きい場合にルーティング先を切り替える。したがって、ノード10
fは、混んでいる無線モジュールを避けてパケットを送信することができ、パケットの送信速度を高速化することができる。
【実施例5】
【0117】
なお、上記実施例2では、60G無線モジュールを使うかWLAN無線モジュールを使うかの閾値Dthが固定値である場合について説明した。しかしながら、閾値Dthを通信状況に応じて変化させることもできる。そこで、実施例5では、閾値Dthを通信状況に応じて変化させる場合について説明する。なお、ラック1の構成、ノー
ドの構成、ルーティングテーブル142の構成及び受信処理のフローは、実施例2と同一であり、XBの構成は、実施例4と同一であるので、ノード10
fによる送信処理のフローについて説明する。ただし、NIレジスタ148は、タイマ値の閾値として2つの閾値Tth1とTth2を記憶する。
【0118】
図18は、実施例5に係るノード10
fによる送信処理のフローを示すフローチャートである。
図18に示すように、ノード10
fは、ルーティングテーブル142を用いて宛先に対するテーブル検索を行い(ステップS121)、ルーティング先及び距離Dを取得する。そして、ノード10
fは、DがDthより大きいか否かを判定し(ステップS122)、DがDthより大きくない場合には、DがDthと等しいか否かを判定する(ステップS123)。その結果、DがDthと等しい場合には、ノード10
fは、パケットを該当する無線モジュールへルーティングし(ステップS124)、タイマ149をスタートさせる(ステップS125)。
【0119】
そして、ルーティング先が、60G無線上部146aである場合には、60G無線上部146aが60G無線を用いてパケットを送信する(ステップS126)。また、ルーティング先が、60G無線下部146bである場合には、60G無線下部146bが60G無線を用いてパケットを送信する(ステップS127)。
【0120】
また、ルーティング先が、60G無線左部146cである場合には、60G無線左部146cが60G無線を用いてパケットを送信する(ステップS128)。また、ルーティング先が、60G無線右部146dである場合には、60G無線右部146dが60G無線を用いてパケットを送信する(ステップS129)。
【0121】
そして、ノード10
fは、パケットの送信先のノード10
fからACKを受信する(ステップS130)と、タイマ149をストップする(ステップS131)。そして、ノード10
fは、タイマ値が閾値Tth1より大きいか否かを判定し(ステップS132)、タイマ値が閾値Tth1より大きい場合には、60G無線による通信が混んでいるので、閾値Dthを1減らす(ステップS133)。一方、タイマ値が閾値Tth1より大きくない場合には、ノード10
fは、タイマ値が閾値Tth2より小さいか否かを判定し(ステップS134)、タイマ値が閾値Tth2より小さい場合には、60G無線による通信が空いているので、閾値Dthを1増やす(ステップS135)。
【0122】
一方、DがDthと等しくない場合(ステップS123、No)には、ノード10
fは、パケットを該当する無線モジュールへルーティングする(ステップS136)。
【0123】
そして、ルーティング先が、60G無線上部146aである場合には、60G無線上部146aが60G無線を用いてパケットを送信する(ステップS137)。また、ルーティング先が、60G無線下部146bである場合には、60G無線下部146bが60G無線を用いてパケットを送信する(ステップS138)。
【0124】
また、ルーティング先が、60G無線左部146cである場合には、60G無線左部146cが60G無線を用いてパケットを送信する(ステップS139)。また、ルーティング先が、60G無線右部146dである場合には、60G無線右部146dが60G無線を用いてパケットを送信する(ステップS140)。そして、ノード10
fは、送信処理を終了する。
【0125】
一方、DがDthより大きい場合には、ノード10
fは、WLANモジュールへルーティングし(ステップS141)、WLAN部147がWLANを用いてパケットを送信する(ステップS142)。
【0126】
上述してきたように、実施例5では、ノード10
fは、パケットの転送時間に基づいて閾値Dthを変化させるので、通信状況の変化に応じて適切に60G無線とWLANとを使い分けることができる。
【実施例6】
【0127】
上記実施例1〜5では、4つの60G無線モジュールを用いる場合について説明したが、1つの60G無線モジュールだけを用いて上下左右のノードと通信することもできる。そこで、1つの60G無線モジュールだけを用いて上下左右のノードと通信する場合について説明する。
【0128】
図19は、実施例6に係る情報処理システムの構成を示す図である。なお、ここでは説明の便宜上、
図1に示した各部と同様の役割を果たす機能部については同一符号を付すこととしてその詳細な説明を省略する。
図19に示すように、情報処理システムは、ラック5にNWスイッチ2とAP3と99台のノード20が搭載された高集積サーバである。ノード20は、ノード10と異なり、筐体の外に60G無線モジュール6を備える。
【0129】
60G無線モジュール6は、ビームフォーミングを使用することによって、上下左右のうちのいずれかのノード20のみに電波を送信する。ここで、ビームフォーミングとは、電波を細く絞ってとばすことにより、特定の方向だけに電波をとばすことである。
【0130】
このように、筐体の外に60G無線モジュール6を備え、ビームフォーミングを用いることによって、実施例6に係る情報処理システムは、60G無線モジュールの数を減らすことができる。
【0131】
なお、実施例1〜6では、XBをハードウェアで実現する場合について説明したが、XBが有するルーティング機能をソフトウェアによって実現することで、同様の機能を有する通信プログラムを得ることができる。そこで、通信プログラムを実行するXBのハードウェア構成について説明する。
【0132】
図20は、通信プログラムを実行するXBのハードウェア構成を示す図である。
図20に示すように、XB14dは、ホストI/F141と、5つのI/F145と、MPU(Micro Processing Unit)151と、フラッシュメモリ152と、RAM(Random Access Memory)153とを有する。
【0133】
ホストI/F141は、自ノードのCPU11とのインタフェースであり、CPU11から受け取ったパケットをMPU151に渡し、MPU151から受け取ったパケットを自ノードのCPU11に渡す。I/F145は、60G無線モジュール又はWLANモジュールから受け取った信号をパケットに変換し、MPU151に渡す。また、I/F145は、MPU151から受け取ったパケットを信号に変換して接続する60G無線モジュール又はWLANモジュールに渡す。
【0134】
MPU151は、フラッシュメモリ152から通信プログラムを読み出して実行する処理装置である。フラッシュメモリ152は、通信プログラムを記憶する不揮発性メモリである。また、フラッシュメモリ152は、ルーティングテーブル142の情報及びNIレジスタ148の情報を記憶する。RAM153は、プログラムの実行途中結果やテーブルなどを記憶するメモリである。ルーティングテーブル142の情報及びNIレジスタ148の情報は、通信プログラムの実行時にフラッシュメモリ152から読み出されてRAM153に書き込まれる。
【0135】
また、実施例1〜6では、60GHz帯の周波数を使用する60G無線及びWLANを用いる場合について説明した。しかしながら、本発明は60G無線及びWLANに限定されるものではなく、通信速度や電波の届く範囲が異なる2種類の無線モジュールあるいは有線通信を適宜組み合わせて用いる場合にも同様に適用することができる。