以下に、本願の開示する情報処理装置、通信方法及び通信プログラムの実施例を図面に基づいて詳細に説明する。なお、実施例は開示の技術を限定するものではない。
まず、実施例1に係る情報処理システムの構成について説明する。図1は、実施例1に係る情報処理システムの構成を示す図である。図1に示すように、実施例1に係る情報処理システムは、ラック1に数十から数百のノード10が搭載された高集積サーバと管理サーバ20を有するシステムである。また、情報処理システムは、TORにインターネット等の外部と接続するネットワークスイッチ2と無線LANのアクセスポイントであるAP3とを有する。
管理サーバ20は、ネットワークスイッチ2を介して高集積サーバに接続される。管理サーバ20は、ラック内のどこにどのMAC(Media Access Control)アドレスのノード10が収容されているかを示す情報を有し、ラック内の各ノード10を管理する。
各ノード10は、無線LANのステーション機能を有し、AP3を介して他のノード10や管理サーバ20と無線通信することができる。また、ノード間は60G無線でも接続され、各ノード10は上下左右の隣接ノードと通信するために4つの60G無線モジュールを備える。ここで、60G無線とは、周波数帯域として60ギガ(G)Hz帯を用いる無線である。
図2は、60GHz帯のチャネルの割り当てを示す図である。図2に示すように、60GHz帯では、チャネルプランとして4つのチャネルが割り当てられている。4つのチャネルをCH1、CH2、CH3及びCH4とすると、CH1の中心周波数は58.32GHzであり、CH2の中心周波数は60.48GHzであり、CH3の中心周波数は62.64GHzであり、CH4の中心周波数は64.80GHzである。
図3は、図1に示したノード10の構成を示す図である。図3に示すように、ノード10は、CPU11と、メモリ12と、ストレージ13と、XB14とを有する情報処理装置である。また、ノード10は、60G無線上部15aと、60G無線下部15bと、60G無線左部15cと、60G無線右部15dと、WLAN部15eとを有する。なお、ノード10は、筐体内に収容されている。
CPU11は、メモリ12からプログラムを読み出して実行する中央処理装置である。メモリ12は、プログラムやプログラムの実行途中結果などを記憶するRAM(Random Access Memory)である。ストレージ13は、データを記憶する不揮発性メモリであり、例えば、NANDフラッシュメモリである。また、ストレージ13は、ノード10にインストールされたプログラムを記憶する。
XB14は、他のノード10と通信を行うためのクロスバースイッチである。XB14は、1つのLSIである。60G無線上部15aは、ラック内で上に隣接するノード10との60G無線通信に用いられる。60G無線下部15bは、ラック内で下に隣接するノード10との通信に用いられる。60G無線左部15cは、ラック内で左に隣接するノード10との通信に用いられる。60G無線右部15dは、ラック内で右に隣接するノード10との通信に用いられる。
60G無線は、通信速度が数ギガビット/秒(Gbps)程度実現可能であり、無線LANと比較して高速である。しかしながら、60G無線は電波が届きにくく、筐体が電波の障壁となり、1つの60G無線モジュールを使用して隣接する上下左右のノード10と通信するのは困難である。そこで、ノード10は、隣接する上下左右のノード10とそれぞれ通信する4つの60G無線モジュールを有する。4つの60G無線モジュールは、4つのチャネルを使用して通信を行う。WLAN部15eは、無線LANのステーション機能を備え、AP3と無線通信を行う。
図4は、60G無線で使用する4つのチャネルの割り当てを示す図である。図4において、1、2、3、...、n+5、n+6は、各ノード10を識別するノードIDであり、ノード1、ノード2、ノード3、...、ノードn+5、ノードn+6を表わす。図4に示すように、各ノード10は、4つのチャネルCH1、CH2、CH3及びCH4をそれぞれの60G無線モジュールに割り当てる。60G無線上部15a及び60G無線下部15bは、CH1又はCH2を用いて上下に隣接するノード10と通信を行う。また、60G無線左部15c及び60G無線右部15dは、CH3又はCH4を用いて左右に隣接するノード10と通信を行う。
例えば、ノード8は、CH1を用いて上のノード14と通信し、CH2を用いて下のノード2と通信し、CH3を用いて左のノード7と通信し、CH4を用いて右のノード9と通信する。ノード9は、CH2を用いて上のノード15と通信し、CH1を用いて下のノード3と通信し、CH4を用いて左のノード8と通信し、CH3を用いて右のノード10と通信する。ノード14は、CH2を用いて上のノード20と通信し、CH1を用いて下のノード8と通信し、CH4を用いて左のノード13と通信し、CH3を用いて右のノード15と通信する。
すなわち、左右に隣り合うノード8とノード9は、上に隣り合うノード10と通信する場合にそれぞれ異なるCH1とCH2を用いる。また、左右に隣り合うノード8とノード9は下に隣り合うノード10と通信する場合にそれぞれ異なるCH2とCH1を用いる。また、上下に隣り合うノード8とノード14は左に隣り合うノード10と通信する場合にそれぞれ異なるCH3とCH4を用いる。また、上下に隣り合うノード8とノード14は右に隣り合うノード10と通信する場合にそれぞれ異なるCH4とCH3を用いる。
このように、隣り合うノード10が同一のチャネルを使用して同方向の60G無線モジュールで通信を行うことがないようにすることによって、電波干渉が生じないようにすることができる。
なお、ラック1の各段では、ノードIDが奇数であるノード10は同じようにチャネルが割り当てられ、ノードIDが偶数であるノード10も同じようにチャネルが割り当てられる。例えば、ノード13とノード15とノード17とは、チャネルの割り当てが同じとなり、ノード14とノード16とノード18とは、チャネルの割り当てが同じとなる。すなわち、ラック1の各段では、ノードIDが奇数であるか偶数であるかでチャネルの割り当て方が決まる。
また、ラック1の最下段を1として上の方向に段数を数えて、奇数段と偶数段では、ノードIDが奇数と偶数のノード10に割り当てられるチャネルのルールが反転する。例えば、1段目では、ノードIDが奇数のノード10において60G無線上部15aに割り当てられるチャネルはCH1であるが、2段目では、ノードIDが偶数のノード10において60G無線上部15aに割り当てられるチャネルがCH1である。これは、各段に搭載されるノード数が偶数の6であるためで、各段に搭載されるノード数が奇数の場合には、奇数段と偶数段で、ノードIDが奇数と偶数のノード10に割り当てられるチャネルのルールは変わらない。
また、隣接するノード10がない場合には、対応する60G無線モジュールは使用されない。例えば、ラック1の最下段に搭載されたノード1〜ノード6は、60G無線下部15bを使用しない。ラック1の最上段に搭載されたノードn+1〜ノードn+6は、60G無線上部15aを使用しない。また、ラック1の左端に搭載されたノード10は、60G無線左部15cを使用しない。ラック1の右端に搭載されたノード10は、60G無線右部15dを使用しない。
次に、実施例1に係るXB14及び60G無線モジュールの構成について説明する。図5は、実施例1に係るXB14及び60G無線モジュールの構成を示す図である。なお、60G無線上部15a、60G無線下部15b、60G無線左部15c及び60G無線右部15dは、同様の構成を有するので、図5では、60G無線上部15aの構成だけを示す。
図5に示すように、XB14は、ホストI/F141と、ルーティング部142と、5つのパケット解析部143と、5つのI/F144と、NAT145と、リバースレジスタ146と、ディスエーブルレジスタ147と、CH判断部148とを有する。
ホストI/F141は、自ノードのCPU11とのインタフェースであり、CPU11から受け取ったパケットをルーティング部142に渡し、ルーティング部142から受け取ったパケットを自ノードのCPU11に渡す。
ルーティング部142は、ホストI/F141からパケットを受け取り、受け取ったパケットのルーティング先をルーティングテーブルを用いて決定する。ここで、ルーティングテーブルとは、パケットの宛先とルーティング先を対応付けるテーブルである。そして、ルーティング部142は、ルーティング先に基づいてパケットをいずれかのI/F144に渡す。
また、ルーティング部142は、いずれかのパケット解析部143からパケットを受け取り、受け取ったパケットのルーティング先をルーティングテーブルを用いて決定する。そして、ルーティング部142は、ルーティング先に基づいてパケットをホストI/F141又はいずれかのI/F144に渡す。
パケット解析部143は、対応するI/F144からパケットを受け取り、パケットを解析し、解析結果とともにパケットをルーティング部142に渡す。I/F144は、60G無線モジュール又はWLAN部15eから受け取った信号をパケットに変換し、対応するパケット解析部143に渡す。また、I/F144は、ルーティング部142によりルーティングされたパケットを受け取り、それぞれ対応する60G無線モジュール又はWLAN部15eに送信を指示する。
NAT(Name Address Table)145は、各ノード10を識別する識別子を検索する検索テーブルである。ノード10は、NAT145を用いて自ノードの識別子を検索し、検索した識別子をCH判断部148に渡す。
図6は、実施例1に係るNAT145が記憶する識別子の一例を示す図である。図6に示すように、NAT145は、MACアドレスとノード10の識別子としてのノードIDを対応付けて記憶する。ノード10は、NAT145を用いてMACアドレスからノードIDを検索する。
例えば、MACアドレスが48’h****_****_****に対応するノード10のノードIDは1である。MACアドレスは48ビットであり、「h」は16進数表示することを示し、「*」は16進数表示の1つの数を示す。1つの「*」は4ビットの情報を示し、12個の「*」で4×12=48ビットを示す。なお、ここでは、MACアドレスを用いる場合を説明したが、MACアドレス以外を用いることもできる。
リバースレジスタ146は、ラック1の最下段を1として上の方向に段数を数えて、段数が奇数である場合には値が0であり、段数が偶数である場合には値が1である1ビットのレジスタである。図4に示したように、ラック1の奇数段と偶数段では、ノードIDが奇数と偶数のノード10に設定するチャネルのルールが異なる。例えば、1段目では、ノードIDが奇数であるノード1、ノード3及びノード5の60G無線上部15aが使用するチャネルがCH1であるが、2段目では、ノードIDが奇数であるノード7、ノード9及びノード11の60G無線上部15aが使用するチャネルはCH2である。そこで、CH判断部148は、リバースレジスタ146の1ビット情報を用いてノードIDが奇数であるか偶数であるかに基づくチャネルの割り当てルールを反転する。
なお、図4では、各段に搭載されるノードの数が偶数の6であるため、ラック1の奇数段と偶数段では、ノードIDが奇数であるか偶数であるかに基づくチャネルの割り当てルールが異なる。しかしながら、各段に搭載されるノードの数が奇数の場合には、ラック1の奇数段と偶数段で、ノードIDが奇数であるか偶数であるかに基づくチャネルの割り当てルールが同じになり、リバースレジスタ146は不要となる。
ディスエーブルレジスタ147は、各60G無線モジュールを使用するか否かを示す情報を記憶するレジスタである。図7は、ディスエーブルレジスタ147の一例を示す図である。図7に示すように、ディスエーブルレジスタ147は、32ビットのレジスタであり、ビット0の60G無線右ディスエーブルは60G無線右部15dを使用するか否かを示し、ビット1の60G無線左ディスエーブルは60G無線左部15cを使用するか否かを示す。ビット2の60G無線下ディスエーブルは60G無線下部15bを使用するか否かを示し、ビット3の60G無線上ディスエーブルは60G無線上部15aを使用するか否かを示す。残りのビット4〜31は将来の利用のためにとってある(reserved)。
CH判断部148は、NAT145、リバースレジスタ146及びディスエーブルレジスタ147を用いて各60G無線モジュールにチャネルを割り当てる。すなわち、CH判断部148は、NAT145から受け取ったノードIDと、リバースレジスタ146が示すチャネルの割り当てルールの反転の有無と、ディスエーブルレジスタ147が示す各60G無線モジュールの使用情報に基づいてチャネルを割り当てる。
60G無線上部15aは、受信部151と、復調部152と、変調部153と、送信部154と、周波数シンセサイザ155と、制御部156と、I/F157とを有する。
受信部151は、60G無線アンテナ150を介し、CH判断部148により割り当てられたチャネルの無線信号を受信し、周波数シンセサイザ155からの発信信号を用いて無線信号を60G無線モジュール内部の周波数へ変換する。そして、受信部151は、60G無線モジュール内部の周波数へ変換した信号を復調部152へ渡す。
復調部152は、受信部151から受け取った信号を復調して制御部156に渡す。変調部153は、制御部156から受け取った送信信号を変調して送信部154に渡す。
送信部154は、変調部153から送信信号を受信し、周波数シンセサイザ155からの発信信号を用いて送信信号をCH判断部148により割り当てられたチャネルの周波数へ変換する。そして、送信部154は、変換した信号を60G無線アンテナ150を介して送信する。
周波数シンセサイザ155は、CH判断部148により割り当てられたチャネルの情報を制御部156から受信する。そして、受信部151が受信した無線信号を内部周波数へ変換するための発信信号を生成する。また、周波数シンセサイザ155は、送信部154が送信する信号を内部周波数からCH判断部148により割り当てられたチャネルの周波数へ変換するための発信信号を生成する。
制御部156は、受信信号を復調部152から受け取り、I/F157を介してXB14に渡す。また、制御部156は、送信信号をI/F157を介してXB14から受け取り、変調部153に渡す。また、制御部156は、CH判断部148により割り当てられたチャネルの情報をI/F157を介してXB14から受け取り、周波数シンセサイザ155に渡す。
I/F157は、XB14と信号を送受信するためのインタフェースであり、制御部156から受け取った信号をI/F144に渡し、I/F144から受け取った信号を制御部156に渡す。
次に、実施例1に係る情報処理システムによる初期設定処理について説明する。ここで、初期設定処理とは、情報処理システムの初期化時に行われる処理である。図8は、実施例1に係る情報処理システムによる初期設定処理のフローを示すフローチャートである。
図8に示すように、初期設定処理では、管理サーバ20は、NAT設定値、すなわちNAT145に設定するMACアドレスとノードIDの対応関係を示す設定値を各ノード10に送信する(ステップS1)。この設定値は、ノード間で共通のため、管理サーバ20から各ノード10へブロードキャストされる。
そして、管理サーバ20は、ディスエーブルレジスタ147の設定値を隣接ノードが存在しないノード10に送信する(ステップS2)。上下左右の60G無線モジュールを全て使用するノード10には、管理サーバ20は、ディスエーブルレジスタ147の設定値を送信しない。
そして、管理サーバ20は、リバースレジスタ146の設定値を各ノード10に送信する(ステップS3)。ノードIDが奇数であるか偶数であるかに基づくチャネルの割り当てルールを反転する必要がないノード10には、管理サーバ20は、リバースレジスタ146の設定値を送信しない。
そして、各ノード10が、送信された設定値を基にNAT145、ディスエーブルレジスタ147及びリバースレジスタ146を設定する(ステップS4)。
このように、管理サーバ20が初期化時にNAT145、ディスエーブルレジスタ147及びリバースレジスタ146の設定値を送信することによって、各ノード10は、各60G無線モジュールにチャネルを割り当てることができる。なお、管理サーバ20は、無線LANを用いて設定値を各ノード10に送信する。
図9は、ノードID、リバースレジスタ、ディスエーブルレジスタの割り当て例を示す図である。図9に示すように、ノードIDは、ラック1の左下のノード10から右方向に1から順番に6まで割り当てられる。そして、1段上の左端のノード10から右方向に右端のノード10まで順番に7〜12がノードIDに割り当てられる。以下同様にノードIDが各段の左端から右端へ順番に割り当てられ、最上段では、n+1〜n+6が左端から右端へ順番にノードIDとして割り当てられる。
リバースレジスタ146の値は、下から奇数段目のノード10については0が設定され、下から偶数段目のノード10については、ノードIDが奇数であるか偶数であるかに基づくチャネルの割り当てルールを反転する必要があるので、1が設定される。
ディスエーブルレジスタ147については、最下段のノード10は下に隣接するノード10がないので60G無線下ディスエーブルが1に設定され、最上段のノード10は上に隣接するノード10がないので60G無線上ディスエーブルが1に設定される。また、左端のノード10は左に隣接するノード10がないので60G無線左ディスエーブルが1に設定され、右端のノード10は右に隣接するノード10がないので60G無線右ディスエーブルが1に設定される。
次に、実施例1に係るCH判断部148によるチャネル割り当て処理のフローについて説明する。図10は、実施例1に係るCH判断部148によるチャネル割り当て処理のフローを示すフローチャートである。
図10に示すように、CH判断部148は、NAT検索、すなわちNAT145を用いて自ノードのノードIDの検索を行う(ステップS11)。そして、CH判断部148は、リバースレジスタ146の設定値を検索し(ステップS12)、ディスエーブルレジスタ147の設定値を検索する(ステップS13)。
そして、CH判断部148は、各60G無線モジュールについて以下の処理を並行して行う。すなわち、CH判断部148は、60G無線上部15aについて、60G無線上ディスエーブル=1であるか否か判定し(ステップS14)、60G無線上ディスエーブル=1である場合には、チャネルを割り当てることなく処理を終了する。
一方、60G無線上ディスエーブル=1でない場合には、CH判断部148は、ノードIDが奇数かつリバースレジスタ146=0であるか、又は、ノードIDが偶数かつリバースレジスタ146=1であるか、否かを判定する(ステップS15)。ここで、リバースレジスタ146=0は、リバースレジスタ146の値が0であることを示し、リバースレジスタ146=1は、リバースレジスタ146の値が1であることを示す。
その結果、ノードIDが奇数かつリバースレジスタ146=0であるか、又は、ノードIDが偶数かつリバースレジスタ146=1である場合には、CH判断部148は、60G無線上部15aのチャネル設定をCH1とする(ステップS16)。一方、ノードIDが奇数かつリバースレジスタ146=0でなく、かつ、ノードIDが偶数かつリバースレジスタ146=1でもない場合には、CH判断部148は、60G無線上部15aのチャネル設定をCH2とする(ステップS17)。
並行して、CH判断部148は、60G無線下部15bについて、60G無線下ディスエーブル=1であるか否か判定し(ステップS18)、60G無線下ディスエーブル=1である場合には、チャネルを割り当てることなく処理を終了する。
一方、60G無線下ディスエーブル=1でない場合には、CH判断部148は、ノードIDが奇数かつリバースレジスタ146=0であるか、又は、ノードIDが偶数かつリバースレジスタ146=1であるか、否かを判定する(ステップS19)。
その結果、ノードIDが奇数かつリバースレジスタ146=0であるか、又は、ノードIDが偶数かつリバースレジスタ146=1である場合には、CH判断部148は、60G無線下部15bのチャネル設定をCH2とする(ステップS20)。一方、ノードIDが奇数かつリバースレジスタ146=0でなく、かつ、ノードIDが偶数かつリバースレジスタ146=1でもない場合には、CH判断部148は、60G無線下部15bのチャネル設定をCH1とする(ステップS21)。
並行して、CH判断部148は、60G無線左部15cについて、60G無線左ディスエーブル=1であるか否か判定し(ステップS22)、60G無線左ディスエーブル=1である場合には、チャネルを割り当てることなく処理を終了する。
一方、60G無線左ディスエーブル=1でない場合には、CH判断部148は、ノードIDが奇数かつリバースレジスタ146=0であるか、又は、ノードIDが偶数かつリバースレジスタ146=1であるか、否かを判定する(ステップS23)。
その結果、ノードIDが奇数かつリバースレジスタ146=0であるか、又は、ノードIDが偶数かつリバースレジスタ146=1である場合には、CH判断部148は、60G無線左部15cのチャネル設定をCH3とする(ステップS24)。一方、ノードIDが奇数かつリバースレジスタ146=0でなく、かつ、ノードIDが偶数かつリバースレジスタ146=1でもない場合には、CH判断部148は、60G無線左部15cのチャネル設定をCH4とする(ステップS25)。
並行して、CH判断部148は、60G無線右部15dについて、60G無線右ディスエーブル=1であるか否か判定し(ステップS26)、60G無線右ディスエーブル=1である場合には、チャネルを割り当てることなく処理を終了する。
一方、60G無線右ディスエーブル=1でない場合には、CH判断部148は、ノードIDが奇数かつリバースレジスタ146=0であるか、又は、ノードIDが偶数かつリバースレジスタ146=1であるか、否かを判定する(ステップS27)。
その結果、ノードIDが奇数かつリバースレジスタ146=0であるか、又は、ノードIDが偶数かつリバースレジスタ146=1である場合には、CH判断部148は、60G無線右部15dのチャネル設定をCH4とする(ステップS28)。一方、ノードIDが奇数かつリバースレジスタ146=0でなく、かつ、ノードIDが偶数かつリバースレジスタ146=1でもない場合には、CH判断部148は、60G無線右部15dのチャネル設定をCH3とする(ステップS29)。
上述してきたように、実施例1では、NAT145にMACアドレスに対応させてノードIDを記憶し、リバースレジスタ146にノードIDが奇数であるか偶数であるかに基づくチャネルの割り当てルールを反転するか否かのビット情報を記憶する。また、ディスエーブルレジスタ147に各60G無線モジュールを使用するか否かの情報を記憶する。そして、CH判断部148が、NAT145、リバースレジスタ146及びディスエーブルレジスタ147に基づいて各60G無線モジュールにチャネルを割り当てる。
すなわち、CH判断部148は、NAT145を用いて自ノードのノードIDを検出する。また、CH判断部148は、ディスエーブルレジスタ147を参照して使用する60G無線モジュールを選択する。そして、CH判断部148は、使用する60G無線モジュールについて、ノードIDが奇数か偶数か、及び、ノードIDが奇数であるか偶数であるかに基づくチャネルの割り当てルールを反転するか否か、に基づいてチャネルを割り当てる。したがって、各ノード10は、各60G無線モジュールが使用するチャネルを自動的に割り当てることができる。
また、実施例1に係る情報処理システムは、隣接するノード10で同一方向の通信を行う60G無線モジュールで同一チャネルが割り当てられることを防止し、高速無線通信の電波干渉を防止することができる。
なお、実施例1では、60G無線上部15a及び60G無線下部15bにCH1及びCH2又はCH2及びCH1を割り当て、60G無線左部15c及び60G無線右部15dにCH3及びCH4又はCH4及びCH3を割り当てる場合について説明した。しかしながら、チャネルの割り当ては、隣接するノード10で同一方向の通信を行う60G無線モジュールで使用するチャネルが同一とならなければよく、上記の組み合わせに限定されることなく、他の組み合わせの割り当てとすることもできる。
また、実施例1では、60GHz帯の周波数帯を利用した無線モジュールを用いる場合について説明したが、本発明はこれに限定されるものではなく、他の周波数帯を利用した無線モジュールを用いる場合にも同様に適用することができる。
なお、空きチャネルをサーチすることにより60G無線モジュールにチャネルを割り当てることもできる。図11は、空きチャネルをサーチすることにより60G無線モジュールにチャネルを割り当てる処理のフローを示すフローチャートである。
図11に示すように、ノードは、60G無線モジュールのチャネルをCH1に設定し(ステップS41)、チャネルサーチを行う(ステップS42)。すなわち、ノードは、一定期間周囲の電波状況をサーチし、CH1が空いているか否かを調べる。
そして、ノードは、全チャネルのサーチが完了したか否かを判定し(ステップS43)、サーチしていないチャネルがある場合には、チャネルを変更し(ステップS44)、ステップS42に戻る。一方、全チャネルのサーチが完了した場合には、ノードは、サーチしたチャネルのうち空いているチャネルに設定する(ステップS45)。
このように、チャネルサーチにより、ノードはチャネルを自動的に割り当てることができる。ただし、例えば、隣接ノードでCH1が設定されていた場合でも、自ノードがCH1でチャネルサーチを行ったときに隣接ノードが電波を発していなければ、ノードはCH1が空いていると認識する。したがって、チャネルサーチによりチャネルを割り当てる場合には、ノードは、隣接したノードの同一方向の60G無線モジュールのチャネルが同一にならないように、別途管理を行う必要がある。また、実施例1に係るノード10は、チャネルサーチによりチャネルを割り当てる場合と比較して、チャネルの設定を短時間で行うことができる。
ところで、上記実施例1では、CH判断部は、リバースレジスタ146を用いてチャネルの割り当てを行ったが、リバースレジスタ146を用いることなくチャネルを割り当てることもできる。そこで、実施例2では、CH判断部がリバースレジスタ146を用いることなくチャネルを割り当てる場合について説明する。
まず、実施例2に係るXBの構成について説明する。図12は、実施例2に係るXBの構成を示す図である。なお、ここでは説明の便宜上、図5に示した各部と同様の役割を果たす機能部については同一符号を付すこととしてその詳細な説明を省略する。
図12に示すように、XB24は、ホストI/F141と、ルーティング部142と、5つのパケット解析部143と、5つのI/F144と、NAT245と、ディスエーブルレジスタ147と、CH判断部248とを有する。
NAT245は、実施例1に係るNAT145と同様に、各ノード10を識別する識別子を検索する検索テーブルであるが、NAT145とは異なる識別子を記憶する。図13は、実施例2に係るNAT245が記憶する識別子の一例を示す図である。図13に示すように、NAT245は、ノード毎にMACアドレスとノードIDとを対応付けて記憶する。
ノードIDは、各ノード10を識別する識別子であるとともにラック内の座標を示す。ノードIDは、*を16進数として12’h*_*_*の形式であり、先頭の16進数がX座標を示し、残りの2つの16進数がY座標を示す。座標の原点はラック1の左下部であり、ラック1の横方向がX軸であり、ラック1の高さ方向がY軸である。
例えば、12’h1_0_1は、座標(1,1)を表し、ノード10はラック1の左下に配置されていることを示す。また、12’h5_0_1は、座標(5,1)を表し、ノード10はラック1の一番下の段の左端から5番目に配置されていることを示す。
CH判断部248は、NAT245及びディスエーブルレジスタ147を用いて各60G無線モジュールにチャネルを割り当てる。すなわち、CH判断部248は、NAT245から検索したノードIDから自ノードの座標を算出し、算出したX座標とY座標の組み合わせが(奇数、奇数)又は(偶数、偶数)である場合と、(奇数、偶数)又は(偶数、奇数)である場合とで割り当てを反転する。
具体的には、CH判断部248は、X座標とY座標の組み合わせが(奇数、奇数)又は(偶数、偶数)である場合は、60G無線上部15aにCH1を割り当て、60G無線下部15bにCH2を割り当てる。また、CH判断部248は、X座標とY座標の組み合わせが(奇数、奇数)又は(偶数、偶数)である場合は、60G無線左部15cにCH3を割り当て、60G無線右部15dにCH4を割り当てる。
また、CH判断部248は、X座標とY座標の組み合わせが(偶数、奇数)又は(奇数、偶数)である場合は、60G無線上部15aにCH2を割り当て、60G無線下部15bにCH1を割り当てる。また、CH判断部248は、X座標とY座標の組み合わせが(偶数、奇数)又は(奇数、偶数)である場合は、60G無線左部15cにCH4を割り当て、60G無線右部15dにCH3を割り当てる。
CH判断部248は、自ノードのX座標とY座標の組み合わせに基づいてチャネルを割り当てることにより、リバースレジスタ146を用いることなくチャネルを割り当てることができる。
次に、実施例2に係る情報処理システムによる初期設定処理について説明する。図14は、実施例2に係る情報処理システムによる初期設定処理のフローを示すフローチャートである。図14に示すように、初期設定処理では、管理サーバ20は、NAT設定値、すなわちNAT245に設定するMACアドレスとノードIDの対応関係を示す設定値を各ノード10に送信する(ステップS51)。この設定値はノード間で共通のため、管理サーバ20から各ノード10へブロードキャストされる。
そして、管理サーバ20は、ディスエーブルレジスタ147の設定値を隣接ノードが存在しないノード10に送信する(ステップS52)。上下左右の60G無線モジュールを全て使用するノード10には、管理サーバ20は、ディスエーブルレジスタ147の設定値を送信しない。
そして、各ノード10が、送信された設定値を基にNAT245及びディスエーブルレジスタ147を設定する(ステップS53)。
このように、管理サーバ20が初期化時にNAT245及びディスエーブルレジスタ147の設定値を送信することによって、各ノード10は、各60G無線モジュールにチャネルを割り当てることができる。
図15は、ノードID及びディスエーブルレジスタ147の割り当て例を示す図である。図15に示すように、ノードIDは、ラック1の下から1段目のノード10に対しては12’h1_0_1から12’h6_0_1までが割り当てられる。また、ラック1の下から2段目のノード10に対しては12’h1_0_2から12’h6_0_2までが割り当てられる。以下同様にノードIDが各段に割り当てられ、最上段を下からn段目とすると、12’h1_*_*から12’h6_*_*までが割り当てられる。ここで、「**」はnに対応する16進数である。また、図15において、各ノードIDに続く(x,y)は座標を示す。
ディスエーブルレジスタ147については、最上段のノード10は上に隣接するノード10がないので60G無線上ディスエーブルが1に設定され、右端のノード10は右に隣接するノード10がないので60G無線右ディスエーブルが1に設定される。最下段のノード10は、Y座標が1であり、左端のノード10はX座標が1であるので、CH判断部248は、最下段及び左端のノード10を座標から判断することができるため、ディスエーブルレジスタ147を用いない。
次に、実施例2に係るCH判断部248によるチャネル割り当て処理のフローについて説明する。図16は、実施例2に係るCH判断部248によるチャネル割り当て処理のフローを示すフローチャートである。
図16に示すように、CH判断部248は、NAT検索、すなわちNAT245を用いて自ノードのノードIDの検索を行い(ステップS61)、ディスエーブルレジスタ147の設定値を検索する(ステップS62)。
そして、CH判断部248は、各60G無線モジュールについて以下の処理を並行して行う。すなわち、CH判断部248は、60G無線上部15aについて、60G無線上ディスエーブル=1であるか否か判定し(ステップS63)、60G無線上ディスエーブル=1である場合には、チャネルを割り当てることなく処理を終了する。
一方、60G無線上ディスエーブル=1でない場合には、CH判断部248は、ノードIDが(奇、奇)であるか、又は、ノードIDが(偶、偶)であるか、否かを判定する(ステップS64)。ここで、(奇、奇)とはX座標とY座標の両方が奇数であることを示し、(偶、偶)とはX座標とY座標の両方が偶数であることを示す。
その結果、ノードIDが(奇、奇)であるか、又は、ノードIDが(偶、偶)である場合には、CH判断部248は、60G無線上部15aのチャネル設定をCH1とする(ステップS65)。一方、ノードIDが(奇、奇)でもなく、かつ、ノードIDが(偶、偶)でもない場合には、CH判断部248は、60G無線上部15aのチャネル設定をCH2とする(ステップS66)。
並行して、CH判断部248は、60G無線下部15bについて、自ノードのY座標が1であるか否かを判定し(ステップS67)、Y座標が1である場合には、ラック1の最下段のノード10である場合なので、チャネルを割り当てることなく処理を終了する。
一方、Y座標が1でない場合には、CH判断部248は、ノードIDが(奇、奇)であるか、又は、ノードIDが(偶、偶)であるか、否かを判定する(ステップS68)。その結果、ノードIDが(奇、奇)であるか、又は、ノードIDが(偶、偶)である場合には、CH判断部248は、60G無線下部15bのチャネル設定をCH2とする(ステップS69)。一方、ノードIDが(奇、奇)でもなく、かつ、ノードIDが(偶、偶)でもない場合には、CH判断部248は、60G無線下部15bのチャネル設定をCH1とする(ステップS70)。
並行して、CH判断部248は、60G無線左部15cについて、自ノードのX座標が1であるか否かを判定し(ステップS71)、X座標が1である場合には、ラック1の左端のノード10である場合なので、チャネルを割り当てることなく処理を終了する。
一方、X座標が1でない場合には、CH判断部248は、ノードIDが(奇、奇)であるか、又は、ノードIDが(偶、偶)であるか、否かを判定する(ステップS72)。その結果、ノードIDが(奇、奇)であるか、又は、ノードIDが(偶、偶)である場合には、CH判断部248は、60G無線左部15cのチャネル設定をCH3とする(ステップS73)。一方、ノードIDが(奇、奇)でもなく、かつ、ノードIDが(偶、偶)でもない場合には、CH判断部248は、60G無線左部15cのチャネル設定をCH4とする(ステップS74)。
並行して、CH判断部248は、60G無線右部15dについて、60G無線右ディスエーブル=1であるか否か判定し(ステップS75)、60G無線右ディスエーブル=1である場合には、チャネルを割り当てることなく処理を終了する。
一方、60G無線右ディスエーブル=1でない場合には、CH判断部248は、ノードIDが(奇、奇)であるか、又は、ノードIDが(偶、偶)であるか、否かを判定する(ステップS76)。その結果、ノードIDが(奇、奇)であるか、又は、ノードIDが(偶、偶)である場合には、CH判断部248は、60G無線右部15dのチャネル設定をCH4とする(ステップS77)。一方、ノードIDが(奇、奇)でもなく、かつ、ノードIDが(偶、偶)でもない場合には、CH判断部248は、60G無線右部15dのチャネル設定をCH3とする(ステップS78)。
例えば、ノードIDが12’h1_0_1のノード10は、自己のノードIDのX座標、Y座標が(1,1)であり、(奇数、奇数)であるので、60G無線上部15aをCH1に設定し、60G無線右部15dをCH4に設定する。また、このノード10は、X座標が1、Y座標が1であるので60G無線下部15bと60G無線左部15cのチャネルは設定しない。
また、ノードIDが12’h1_0_2のノード10は、自己のノードIDのX座標、Y座標が(1,2)であり、(奇数、偶数)であるので、60G無線上部15aをCH2に、60G無線右部15dをCH3に、60G無線下部15bをCH1に設定する。また、このノード10は、X座標が1であるので60G無線左部15cのチャネルは設定しない。
また、ノードIDが12’h6_0_1のノード10は、自己のノードIDのX座標、Y座標が(6,1)であり、(偶数、奇数)であるので、60G無線上部15aをCH2に、60G無線左部15cをCH4に設定する。また、このノード10は、Y座標が1であるので60G無線下部15bのチャネルは設定しない。また、このノード10は、ラック内で右端に位置しており該当ノードの右にはノードが存在しない。したがって、60G無線ディスエーブルレジスタ内の60G無線右ディスエーブルが1にセットされているので、このノード10は、60G無線右部15dのチャネルは設定しない。
上述してきたように、実施例2では、NAT245は、ノード10のラック内の座標を表すノードIDを記憶し、CH判断部248は、自ノードの座標に基づいてチャネルを割り当てる。したがって、各ノード10は、リバースレジスタ146を用いることなくチャネルを割り当てることができる。
ところで、上記実施例1及び2では、CH判断部は、NATを用いてチャネルの割り当てを行ったが、NATを用いることなくチャネルを割り当てることもできる。そこで、実施例3では、CH判断部がNATを用いることなくチャネルを割り当てる場合について説明する。
まず、実施例3に係るXBの構成について説明する。図17は、実施例3に係るXBの構成を示す図である。なお、ここでは説明の便宜上、図5に示した各部と同様の役割を果たす機能部については同一符号を付すこととしてその詳細な説明を省略する。
図17に示すように、XB34は、ホストI/F141と、ルーティング部142と、5つのパケット解析部143と、5つのI/F144と、リバースレジスタ346と、ディスエーブルレジスタ147と、CH判断部348とを有する。
リバースレジスタ346は、チャネルの割り当てを反転させるか否かを示す1ビット情報を記憶するレジスタである。リバースレジスタ346の値は、隣接するノードで値が反転するように設定される。
CH判断部348は、ディスエーブルレジスタ147で使用することが指定されている60G無線モジュールに、リバースレジスタ346に基づいてチャネルの割り当てを行う。具体的には、CH判断部348は、リバースレジスタ346の値が0である場合には、60G無線上部15aにCH1を割り当て、60G無線下部15bにCH2を割り当て、60G無線左部15cにCH3を割り当て、60G無線右部15dにCH4を割り当てる。一方、リバースレジスタ346の値が1である場合には、CH判断部348は、60G無線上部15aにCH2を割り当て、60G無線下部15bにCH1を割り当て、60G無線左部15cにCH4を割り当て、60G無線右部15dにCH3を割り当てる。
このように、各ノード10は、隣接するノードで値が反転するようにリバースレジスタ346の値を設定し、リバースレジスタ346を参照して各60G無線モジュールにチャネルを割り当てることにより、60G無線の電波干渉を防ぐことができる。
次に、実施例3に係る情報処理システムによる初期設定処理について説明する。図18は、実施例3に係る情報処理システムによる初期設定処理のフローを示すフローチャートである。図18に示すように、初期設定処理では、管理サーバ20は、ディスエーブルレジスタ147の設定値を隣接ノードが存在しないノード10に送信する(ステップS81)。上下左右の60G無線モジュールを全て使用するノード10には、管理サーバ20は、ディスエーブルレジスタ147の設定値を送信しない。
そして、管理サーバ20は、リバースレジスタ346の設定値を各ノード10に送信する(ステップS82)。そして、各ノード10が、送信された設定値を基にディスエーブルレジスタ147及びリバースレジスタ346を設定する(ステップS83)。
このように、管理サーバ20が初期化時にディスエーブルレジスタ147及びリバースレジスタ346の設定値を送信することによって、各ノード10は、各60G無線モジュールにチャネルを割り当てることができる。
図19は、リバースレジスタ346及びディスエーブルレジスタ147の割り当て例を示す図である。図19に示すように、リバースレジスタ346は、隣接するノード10で値が反転するように各ノード10に値が割り当てられる。
次に、実施例3に係るCH判断部348によるチャネル割り当て処理のフローについて説明する。図20は、実施例3に係るCH判断部348によるチャネル割り当て処理のフローを示すフローチャートである。図20に示すように、CH判断部348は、リバースレジスタ346の設定値を検索し(ステップS91)、ディスエーブルレジスタ147の設定値を検索する(ステップS92)。
そして、CH判断部348は、各60G無線モジュールについて以下の処理を並行して行う。すなわち、CH判断部348は、60G無線上部15aについて、60G無線上ディスエーブル=1であるか否か判定し(ステップS93)、60G無線上ディスエーブル=1である場合には、チャネルを割り当てることなく処理を終了する。
一方、60G無線上ディスエーブル=1でない場合には、CH判断部348は、リバースレジスタ346の値が0であるか否かを判定する(ステップS94)。その結果、リバースレジスタ346の値が0である場合には、CH判断部348は、60G無線上部15aのチャネル設定をCH1とする(ステップS95)。一方、リバースレジスタ346の値が0でない場合には、CH判断部348は、60G無線上部15aのチャネル設定をCH2とする(ステップS96)。
並行して、CH判断部348は、60G無線下部15bについて、60G無線下ディスエーブル=1であるか否か判定し(ステップS97)、60G無線下ディスエーブル=1である場合には、チャネルを割り当てることなく処理を終了する。
一方、60G無線下ディスエーブル=1でない場合には、CH判断部348は、リバースレジスタ346の値が0であるか否かを判定する(ステップS98)。その結果、リバースレジスタ346の値が0である場合には、CH判断部348は、60G無線下部15bのチャネル設定をCH2とする(ステップS99)。一方、リバースレジスタ346の値が0でない場合には、CH判断部348は、60G無線下部15bのチャネル設定をCH1とする(ステップS100)。
並行して、CH判断部348は、60G無線左部15cについて、60G無線左ディスエーブル=1であるか否か判定し(ステップS101)、60G無線左ディスエーブル=1である場合には、チャネルを割り当てることなく処理を終了する。
一方、60G無線左ディスエーブル=1でない場合には、CH判断部348は、リバースレジスタ346の値が0であるか否かを判定する(ステップS102)。その結果、リバースレジスタ346の値が0である場合には、CH判断部348は、60G無線左部15cのチャネル設定をCH3とする(ステップS103)。一方、リバースレジスタ346の値が0でない場合には、CH判断部348は、60G無線左部15cのチャネル設定をCH4とする(ステップS104)。
並行して、CH判断部348は、60G無線右部15dについて、60G無線右ディスエーブル=1であるか否か判定し(ステップS105)、60G無線右ディスエーブル=1である場合には、チャネルを割り当てることなく処理を終了する。
一方、60G無線右ディスエーブル=1でない場合には、CH判断部348は、リバースレジスタ346の値が0であるか否かを判定する(ステップS106)。その結果、リバースレジスタ346の値が0である場合には、CH判断部348は、60G無線右部15dのチャネル設定をCH4とする(ステップS107)。一方、リバースレジスタ346の値が0でない場合には、CH判断部348は、60G無線右部15dのチャネル設定をCH3とする(ステップS108)。
上述してきたように、実施例3では、リバースレジスタ346が、隣接するノード10で値が反転する値を記憶し、CH判断部348がリバースレジスタ346を参照して60G無線モジュールにチャネルを割り当てる。したがって、情報処理システムは、隣接するノード10で同じ方向の60G無線モジュールに異なるチャネルを割り当てることができ、電波干渉を防止することができる。なお、実施例3では、XB34がリバースレジスタ346及びディスエーブルレジスタ147を有する場合について説明したが、リバースレジスタ346及びディスエーブルレジスタ147をXB34の外に設けることもできる。
ところで、上記実施例1〜3では、4つのチャネルが利用できる60GHz帯を使用する無線モジュールで無線通信を行う場合について説明したが、5チャネル以上利用できる周波数帯を使用する無線モジュールで無線通信を行うこともできる。そこで、実施例4では、一例として、5チャネル利用できる周波数帯を使用する無線モジュールで無線通信を行う場合について説明する。なお、説明の便宜上、5チャネル利用できる周波数帯を使用する無線モジュールも60G無線モジュールと呼ぶこととする。
図21は、実施例4に係る60G無線に使用するチャネルの割り当てを示す図である。図21では、利用できる5つのチャネルCH1〜CH5のうち、CH1及びCH2が上又は下に隣接するノード10との通信に用いられ、CH4及びCH5が左又は右に隣接するノード10との通信に用いられる。
このように、5チャネル利用できる周波数帯を使用する場合には、5チャネルから任意の4チャネルを選択することによって、情報処理システムは、4チャネル利用できる周波数帯を使用する場合と同様にチャネルを割り当てることができる。
次に、実施例4に係るCH判断部448によるチャネル割り当て処理のフローについて説明する。なお、実施例4に係るXBは、CH判断部148の替わりにCH判断部448を有する点を除いて図5に示したXB14と同様の構成を有する。図22は、実施例4に係るCH判断部448によるチャネル割り当て処理のフローを示すフローチャートである。
図22に示すように、CH判断部448は、NAT検索を行う(ステップS111)。そして、CH判断部448は、リバースレジスタ146の設定値を検索し(ステップS112)、ディスエーブルレジスタ147の設定値を検索する(ステップS113)。
そして、CH判断部448は、各60G無線モジュールについて以下の処理を並行して行う。すなわち、CH判断部448は、60G無線上部15aについて、60G無線上ディスエーブル=1であるか否か判定し(ステップS114)、60G無線上ディスエーブル=1である場合には、チャネルを割り当てることなく処理を終了する。
一方、60G無線上ディスエーブル=1でない場合には、CH判断部448は、ノードIDが奇数かつリバースレジスタ146=0であるか、又は、ノードIDが偶数かつリバースレジスタ146=1であるか、否かを判定する(ステップS115)。
その結果、ノードIDが奇数かつリバースレジスタ146=0であるか、又は、ノードIDが偶数かつリバースレジスタ146=1である場合には、CH判断部448は、60G無線上部15aのチャネル設定をCH1とする(ステップS116)。一方、ノードIDが奇数かつリバースレジスタ146=0でなく、かつ、ノードIDが偶数かつリバースレジスタ146=1でもない場合には、CH判断部448は、60G無線上部15aのチャネル設定をCH2とする(ステップS117)。
並行して、CH判断部448は、60G無線下部15bについて、60G無線下ディスエーブル=1であるか否か判定し(ステップS118)、60G無線下ディスエーブル=1である場合には、チャネルを割り当てることなく処理を終了する。
一方、60G無線下ディスエーブル=1でない場合には、CH判断部448は、ノードIDが奇数かつリバースレジスタ146=0であるか、又は、ノードIDが偶数かつリバースレジスタ146=1であるか、否かを判定する(ステップS119)。
その結果、ノードIDが奇数かつリバースレジスタ146=0であるか、又は、ノードIDが偶数かつリバースレジスタ146=1である場合には、CH判断部448は、60G無線下部15bのチャネル設定をCH2とする(ステップS120)。一方、ノードIDが奇数かつリバースレジスタ146=0でなく、かつ、ノードIDが偶数かつリバースレジスタ146=1でもない場合には、CH判断部448は、60G無線下部15bのチャネル設定をCH1とする(ステップS121)。
並行して、CH判断部448は、60G無線左部15cについて、60G無線左ディスエーブル=1であるか否か判定し(ステップS122)、60G無線左ディスエーブル=1である場合には、チャネルを割り当てることなく処理を終了する。
一方、60G無線左ディスエーブル=1でない場合には、CH判断部448は、ノードIDが奇数かつリバースレジスタ146=0であるか、又は、ノードIDが偶数かつリバースレジスタ146=1であるか、否かを判定する(ステップS123)。
その結果、ノードIDが奇数かつリバースレジスタ146=0であるか、又は、ノードIDが偶数かつリバースレジスタ146=1である場合には、CH判断部448は、60G無線左部15cのチャネル設定をCH5とする(ステップS124)。一方、ノードIDが奇数かつリバースレジスタ146=0でなく、かつ、ノードIDが偶数かつリバースレジスタ146=1でもない場合には、CH判断部448は、60G無線左部15cのチャネル設定をCH4とする(ステップS125)。
並行して、CH判断部448は、60G無線右部15dについて、60G無線右ディスエーブル=1であるか否か判定し(ステップS126)、60G無線右ディスエーブル=1である場合には、チャネルを割り当てることなく処理を終了する。
一方、60G無線右ディスエーブル=1でない場合には、CH判断部448は、ノードIDが奇数かつリバースレジスタ146=0であるか、又は、ノードIDが偶数かつリバースレジスタ146=1であるか、否かを判定する(ステップS127)。
その結果、ノードIDが奇数かつリバースレジスタ146=0であるか、又は、ノードIDが偶数かつリバースレジスタ146=1である場合には、CH判断部448は、60G無線右部15dのチャネル設定をCH4とする(ステップS128)。一方、ノードIDが奇数かつリバースレジスタ146=0でなく、かつ、ノードIDが偶数かつリバースレジスタ146=1でもない場合には、CH判断部448は、60G無線右部15dのチャネル設定をCH5とする(ステップS129)。
上述してきたように、実施例4では、CH判断部448が、利用可能な5つのチャネルから4つのチャネルを選択して60G無線モジュールに割り当てる。したがって、ノード10は、5チャネル以上利用できる周波数帯を使用する無線モジュールで無線通信を行う場合にも、自動で無線モジュールにチャネルを割り当てることができる。
なお、実施例1〜4では、XBをハードウェアで実現する場合について説明したが、XBが有するルーティング機能やチャネル割当機能をソフトウェアによって実現することで、同様の機能を有する通信プログラムを得ることができる。そこで、通信プログラムを実行するXBのハードウェア構成について説明する。
図23は、通信プログラムを実行するXBのハードウェア構成を示す図である。図23に示すように、XB14aは、ホストI/F141と、5つのI/F144と、MPU(Micro Processing Unit)161と、フラッシュメモリ162と、RAM(Random Access Memory)163とを有する。
ホストI/F141は、自ノードのCPU11とのインタフェースであり、CPU11から受け取ったパケットをMPU161に渡し、MPU161から受け取ったパケットを自ノードのCPU11に渡す。I/F144は、60G無線モジュール又はWLANモジュールから受け取った信号をパケットに変換し、MPU161に渡す。また、I/F144は、MPU161から受け取ったパケットを信号に変換して接続する60G無線モジュール又はWLANモジュールに渡す。
MPU161は、フラッシュメモリ162から通信プログラムを読み出して実行する処理装置である。フラッシュメモリ162は、通信プログラムを記憶する不揮発性メモリである。また、フラッシュメモリ162は、NAT145、リバースレジスタ146及びディスエーブルレジスタ147が記憶する情報を記憶する。RAM163は、プログラムの実行途中結果やテーブルなどを記憶するメモリである。NAT145、リバースレジスタ146及びディスエーブルレジスタ147が記憶する情報は、通信プログラムの実行時にフラッシュメモリ162から読み出されてRAM163に書き込まれる。
また、実施例1〜4では、情報処理装置がラック内に2次元配置される場合について説明したが、本発明はこれに限定されるものではなく、情報処理装置をラック内に3次元配置される場合にも同様に適用することができる。
また、実施例1〜4では、情報処理装置が上下左右の4方向に無線通信する場合について説明した。しかしながら、本発明はこれに限定されるものではなく、上、下、左、右、右上、右下、左上及び左下の8方向などより多くの方向に無線通信する場合にも同様に適用することができる。
また、実施例1〜4では、ラック内の全ての情報処理装置が上下左右の4方向に無線通信する場合について説明した。しかしながら、本発明はこれに限定されるものではなく、上下左右の4方向に無線通信する情報処理装置と上下又は左右の2方向に無線通信する情報処理装置がラック内に混在する場合にも、同様に適用することができる。
また、実施例1〜4では、ディスエーブルレジスタ147を使用する場合について説明した。しかしながら、本発明はこれに限定されるものではなく、使用しない60G無線モジュールにもチャネルを割り当てる場合には、ディスエーブルレジスタ147を使用することなくチャネルを割り当てる場合にも同様に適用することができる。