(57)【要約】【課題】異なる中継装置に属するノード同士でアドレスや識別子が重複する場合でも、既存の装置構造をほとんど変更することなく用いることができるノード間データ転送制御システム、ノード間データ転送制御装置及びコンピュータプログラムを提供する。【解決手段】ノード１ａ内のアプリケーションプログラム等が分散共有メモリ領域にデータを書き込むと、ノード内バスをデータと分散共有メモリ領域内のメモリ番地とが流れるので、ノード番地対応手段がメモリ番地を取り込み、該メモリ番地を対応するノード番地に変換し、転送制御装置に出力する。転送制御装置では該ノード番地を取得して、データをノード番地のノード１ｂへ送信する。ノード１ｂへの通信路の途中に中継装置が介在する場合は、中継装置で区分されるノード集団にノード集団を識別する識別子を付与しておき、中継装置を通過しても送信データの宛先ノード番地を維持するようにする。【選択図】図１
2007286754.tif 000002
【特許請求の範囲】
【請求項１】
複数のノードが接続されたセグメントと、該セグメント間を接続する中継装置とから構成されたネットワークについて、
ノード内のデータ処理の制御を行う演算手段と、
前記演算手段によって読み書き可能であって、複数のノードでメモリ番地が仮想的あるいは物理的に同様に参照される分散共有メモリと、
メモリ番地が入力されると、メモリ番地が示す前記分散共有メモリの領域と対応付けられたノード番地を出力するノード番地対応手段と、
前記分散共有メモリに書き込まれるデータと、該データが書き込まれるメモリ番地とを取得し、宛先のノードに送信する送信手段と、
ネットワークから受信データを受信し、該受信データからメモリ番地とデータを抽出し、該メモリ番地の分散共有メモリに該データを書き込む受信手段と、
を備えるノード間データ転送制御装置を具備するノード間データ転送制御システムであり、
前記中継装置を介して別セグメントに接続されたノード宛へのデータ送信時に、データが前記中継装置を通過する際には、メモリ番地とノード番地との対応関係を維持することを特徴とするノード間データ転送制御システム。
【請求項２】
前記送信手段は、同一セグメントのノード宛へのデータ送信時には、前記分散共有メモリの領域と対応付けられたノード番地を有するノードへデータを送信し、前記中継装置を介して別セグメントのノード宛へのデータ送信時には、メモリ番地に宛先のノードの属するセグメントを識別する識別子を付加して送信することを特徴とする請求項１に記載のノード間データ転送制御システム。
【請求項３】
複数のノードが接続されたセグメントと、該セグメント間を接続する中継装置とから構成されたネットワークについて、
ノード内のデータ処理の制御を行う演算手段と、
前記演算手段によって読み書き可能であって、複数のノードでメモリ番地が仮想的あるいは物理的に同様に参照される分散共有メモリと、
メモリ番地が入力されると、メモリ番地が示す前記分散共有メモリの領域と対応付けられたノード番地を出力するノード番地対応手段と、
前記分散共有メモリに書き込まれるデータと、該データが書き込まれるメモリ番地とを取得し、宛先のノードに送信する送信手段と、
ネットワークから受信データを受信し、該受信データからメモリ番地とデータを抽出し、該メモリ番地の分散共有メモリに該データを書き込む受信手段と、
を具備することを特徴とするノード間データ転送制御装置。
【請求項４】
前記送信手段は、同一セグメントのノード宛へのデータ送信時には、前記分散共有メモリの領域と対応付けられたノード番地を有するノードへデータを送信し、前記中継装置を介して別セグメントのノード宛へのデータ送信時には、メモリ番地に宛先のノードの属する該セグメントを識別する識別子を付加して送信することを特徴とする請求項３に記載のノード間データ転送制御装置。
【請求項５】
複数のノードが接続されたセグメントと、該セグメント間を接続する中継装置とから構成されたネットワークについて、
メモリ番地が入力されると、前記メモリ番地が示す前記分散共有メモリの領域と対応付けられたノード番地を出力するノード番地対応ステップと、
前記分散共有メモリに書き込まれるデータと前記メモリ番地とを取得し、同一セグメントのノード宛へのデータ送信時には、前記分散共有メモリの領域と対応付けられたノード番地を有するノードへデータを送信し、中継装置を介して別セグメントのノード宛へのデータ送信時には、メモリ番地に宛先のノードの属する該セグメントを識別する識別子を付加して送信する送信ステップと、
ネットワークから受信データを受信し、該受信データからメモリ番地とデータを抽出し、該メモリ番地の分散共有メモリに該データを書き込む受信ステップと、
をコンピュータに実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分散共有メモリを用いたノード間データ転送に関して、ノード内、或いはノード間で特に汎用の中継装置を介したノード間でデータ転送を行うノード間データ転送制御システム、ノード間データ転送制御装置及びコンピュータプログラムに関する。
【背景技術】
【０００２】
従来、分散共有メモリを用いたノード間データ転送制御システムは、転送プロトコルの中継装置を介して、ネットワークで接続された任意のノードにデータを送っている。この時の中継装置の動作としては、分散共有メモリの番地とＩＰ(インターネットプロトコル)アドレス、ＶＣＣ（ＶＣ  Ｃｏｎｎｅｃｔｉｏｎ）、Ｅｔｈｅｒｎｅｔ（登録商標）アドレス等のノード番地との関連付けを操作することはなく、データパケットをそのまま通過させるだけであった。
【０００３】
もしくは、中継装置に専用機能を有する場合として、メモリアクセス要求に伴うメモリアドレスに基づき、このアドレスを宛先の識別子の一種として中継装置或いは中継機能が経路を決定する場合もあった（例えば、特許文献１参照）。
【０００４】
上記のように、中継装置においてメモリアクセス自体に基づく経路決定を行うには、汎用の中継装置を改造するか、専用の中継装置あるいは中継機能を用いる必要があった。また、汎用の中継装置が分散共有メモリの番地とノード番地との関係付けを用いて、データを宛先ノードの属するノード集団や宛先ノードに届けることは困難であった。
【０００５】
ＩＰネットワークを用いる場合、ＩＰを実装するルータに配置されるルーティングテーブルを用いて、データに付随するＩＰアドレスから次のルータや宛先ノードを識別しており、分散共有メモリの番地を用いてルータが次のルータや宛先ノードを識別することはできない。
【特許文献１】特開平０７−２９５９５０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
汎用のネットワークで接続されたノード間通信では、該汎用のネットワーク専用の中継装置が用いられるために、該中継装置が提供するプロトコルによる宛先アドレスと方路或いは宛先ノードとの関連付けを用いて転送する宛先を識別しており、例えばＩＰネットワークの場合は、ＩＰを実装するルータに配置されるルーティングテーブルを用いてデータに付随するＩＰアドレスから次のルータや宛先ノードを識別している。このことは、ＡＴＭ（Ａｓｙｎｃｈｒｏｎｏｕｓ  Ｔｒａｎｓｆｅｒ  Ｍｏｄｅ）を用いる場合や、Ｅｔｈｅｒｎｅｔ（登録商標）を用いる場合も同様である。
【０００７】
通常はメモリ空間が十分大きく、ＩＰアドレス、ＡＴＭのＶＣＣ、Ｅｔｈｅｒｎｅｔ（登録商標）アドレス等の場合でも、対象となるノードのアドレスや識別子とメモリ番地とを重複しないように割り当てることができるので、対象となるノードの中では任意のノードと通信できる。
【０００８】
しかし、例えば国内の全携帯電話がメール通信を５年間消去せずに保持し続けるようなケースを更に上回るメモリ使用をする場合では必ずしも本発明に必要なメモリ番地が確保できない可能性も考慮する必要があり、非常にノード数が多くかつ多くのメモリ領域を使用する状況のように、或いは、センサの通信に用いる場合などメモリ空間が非常に小さい場合は、仮想メモリを用いてメモリ空間を拡張しても対象となるノードのアドレスや識別子の数がメモリ番地の数を上回る場合がある。そこで、ルータ等の中継装置によりアドレスや番地が重複するノードを区分する。
【０００９】
つまり、同一の中継装置に属するノード同士はアドレスや識別子が重複しないが、ノード数の拡張を容易にするため中継装置を通過するとアドレスや識別子が重複し得る状態である。この時、汎用の中継装置を改造することなく、或いは、分散共有メモリを用いたノード間データ転送制御システムをそのまま利用した中継装置をもちいて、ネットワークで接続された任意の分散共有メモリを用いた通信が可能でなかった。
【００１０】
上記のように、中継装置においてメモリアクセス自体に基づく経路決定を行うには、汎用の中継装置を改造するか、専用の中継装置あるいは中継機能を用いる必要があるという問題があると共に、ノード数が非常に多い場合又はセンサの通信に用いる場合などメモリ空間が非常に小さい場合に、汎用の中継装置を改造することなく、或いは、分散共有メモリを用いた中継装置を用いて転送できないという問題があった。
【００１１】
本発明はかかる課題を解決するためになされたもので、ノード数が非常に多い場合又はセンサの通信に用いる時などのメモリ空間が非常に小さい場合で、別の中継装置に属するノード同士でアドレスや識別子が重複する場合でも、既存の分散共有メモリを用いたノード間データ通信装置の構造をほとんど変更することなく用いることができるノード間データ転送制御システム、ノード間データ転送制御装置及びコンピュータプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明は、分散共有メモリを用いたノード間データ転送制御システムがネットワークで接続されたシステムにおいて、中継装置を介さないノード間は分散共有メモリの番地と、ネットワーク内でノードを識別する識別子であるノード番地との対応付けが重複しないが、一方で、中継装置を介する場合でノード間は分散共有メモリの番地と、ネットワーク内でノードを識別する識別子であるノード番地との対応付けが重複する可能性がある場合に、各中継装置に属するノードの集まりであるノード集団（セグメントに相当）間で宛先のノードにデータを送信するため、ノード番地にノード集団を示す部分とノード集団内のノードを識別する部分とを含むようにする。
【００１３】
また、ノード集団内ではノードを識別する部分のみを用い、ノード集団が異なる場合は中継装置においてノード集団を示す部分を用いて送信先を決定し、転送プロトコルを用いて宛先ノード或いは宛先ノード集団或いは宛先ノード集団が存在する方路へデータを送信する。これらにより、汎用の中継装置を用いる場合は転送プロトコルにおいて、どの中継装置に属する宛先ノードが存在するかを示す識別子を付加することで、汎用の中継装置を改造せずに使用できるようにする。
【００１４】
また、中継装置に通常の分散共有メモリを用いたノード間データ転送制御システムを用いる、もしくは汎用の中継装置に分散共有メモリ機構を加える場合は、通常のノードの分散共有メモリ機構と同じメモリ番地伝達手段を用いてノード集団を識別する部分を伝達する。
【００１５】
これにより、中継装置として専用のノードを用いる、もしくは汎用の中継装置に加えるための分散共有メモリ機構を改造する、又は転送プロトコルに依存した改造をすることなく分散共有メモリを用いたノード間データ転送制御システムを使用できる。
【００１６】
本発明は上記の課題を解決するためになされたもので、請求項１に記載の発明は、複数のノードが接続されたセグメントと、該セグメント間を接続する中継装置とから構成されたネットワークについて、ノード内のデータ処理の制御を行う演算手段と、前記演算手段によって読み書き可能であって、複数のノードでメモリ番地が仮想的あるいは物理的に同様に参照される分散共有メモリと、メモリ番地が入力されると、メモリ番地が示す前記分散共有メモリの領域と対応付けられたノード番地を出力するノード番地対応手段と、前記分散共有メモリに書き込まれるデータと、該データが書き込まれるメモリ番地とを取得し、宛先のノードに送信する送信手段と、ネットワークから受信データを受信し、該受信データからメモリ番地とデータを抽出し、該メモリ番地の分散共有メモリに該データを書き込む受信手段と、を備えるノード間データ転送制御装置を具備するノード間データ転送制御システムであり、前記中継装置を介して別セグメントに接続されたノード宛へのデータ送信時に、データが前記中継装置を通過する際には、メモリ番地とノード番地との対応関係を維持することを特徴とするノード間データ転送制御システムである。
【００１７】
また、請求項２に記載の発明は、前記送信手段は、同一セグメントのノード宛へのデータ送信時には、前記分散共有メモリの領域と対応付けられたノード番地を有するノードへデータを送信し、前記中継装置を介して別セグメントのノード宛へのデータ送信時には、メモリ番地に宛先のノードの属するセグメントを識別する識別子を付加して送信することを特徴とする請求項１に記載のノード間データ転送制御システムである。
【００１８】
また、請求項３に記載の発明は、複数のノードが接続されたセグメントと、該セグメント間を接続する中継装置とから構成されたネットワークについて、ノード内のデータ処理の制御を行う演算手段と、前記演算手段によって読み書き可能であって、複数のノードでメモリ番地が仮想的あるいは物理的に同様に参照される分散共有メモリと、メモリ番地が入力されると、メモリ番地が示す前記分散共有メモリの領域と対応付けられたノード番地を出力するノード番地対応手段と、前記分散共有メモリに書き込まれるデータと、該データが書き込まれるメモリ番地とを取得し、宛先のノードに送信する送信手段と、ネットワークから受信データを受信し、該受信データからメモリ番地とデータを抽出し、該メモリ番地の分散共有メモリに該データを書き込む受信手段と、を具備することを特徴とするノード間データ転送制御装置である。
【００１９】
また、請求項４に記載の発明は、前記送信手段は、同一セグメントのノード宛へのデータ送信時には、前記分散共有メモリの領域と対応付けられたノード番地を有するノードへデータを送信し、前記中継装置を介して別セグメントのノード宛へのデータ送信時には、メモリ番地に宛先のノードの属する該セグメントを識別する識別子を付加して送信することを特徴とする請求項３に記載のノード間データ転送制御装置である。
【００２０】
また、請求項５に記載の発明は、複数のノードが接続されたセグメントと、該セグメント間を接続する中継装置とから構成されたネットワークについて、メモリ番地が入力されると、前記メモリ番地が示す前記分散共有メモリの領域と対応付けられたノード番地を出力するノード番地対応ステップと、前記分散共有メモリに書き込まれるデータと前記メモリ番地とを取得し、同一セグメントのノード宛へのデータ送信時には、前記分散共有メモリの領域と対応付けられたノード番地を有するノードへデータを送信し、中継装置を介して別セグメントのノード宛へのデータ送信時には、メモリ番地に宛先のノードの属する該セグメントを識別する識別子を付加して送信する送信ステップと、ネットワークから受信データを受信し、該受信データからメモリ番地とデータを抽出し、該メモリ番地の分散共有メモリに該データを書き込む受信ステップと、をコンピュータに実行させるためのコンピュータプログラムである。
【発明の効果】
【００２１】
本発明によれば、ネットワークに接続されたセグメント内の任意のノードが、セグメントを区分する中継装置を介して接続されている場合、自ノードの接続されたセグメントにデータを送信する際即ち中継装置を介さずにデータを送信する際も、別のセグメントに接続されたノード宛にデータを送信する際も、同じ手段と同じ手続きとにより宛先のノードにデータを送信する事を可能にする効果をもたらし、かつ、既存の分散共有メモリを用いたノード間データ通信装置の構造をほとんど変更することなく実現することができる。また、本発明での中継装置の転送先は一方向である必要はなく、該中継装置により送信先までの方路の決定を行う事が可能になる。
【００２２】
また、本発明により、非常にノード数が多くかつ多くのメモリ領域を使用する状況や、小規模センサのように使用可能なメモリ領域が極めて小さい状況において、分散共有メモリを用いたネットワーク上のノード識別子の対応が重複する事となっても、ルータ等の中継装置を介しての重複を可能とし、少ないメモリ領域だけで分散共有メモリを用いたノード間データ転送が行う事が可能になる。
【発明を実施するための最良の形態】
【００２３】
以下、図面を参照して本発明の実施形態について説明する。図１は本実施形態によるノード間データ転送制御システムの全体構成を示すブロック図である。図１のノード間データ転送制御システムは、ネットワーク上の接続されたノード１ａ〜１ｅと、各ノードが接続されているノード間通信路２ａ、２ｂと、ノード間通信路２ａ、２ｂ間を接続しているルータ（中継装置に相当）１ｘとから構成されている。
【００２４】
ここで、ノード間通信路２ａはメモリ番地とノード番地との対応が互いに重複しないノード１ａ〜１ｃが接続されており、ノード間通信路２ｂはノードのメモリ番地とノード番地との対応が互いに重複しないノード１ｄ、１ｅが接続されている。また、ノード１ａ内には分散共有メモリ番地１ａ−６−２−１と、分散共有メモリ領域１ａ−３−２−１とを有しており、ノード１ｂ内には分散共有メモリ番地１ｂ−６−２−１と、分散共有メモリ領域１ｂ−３−２−１とを有している。
【００２５】
本システムは、ノード番地に対して少なくとも１つ以上の分散共有メモリのメモリ番地が対応付けられており、メモリ番地を指定することで対応するノードへデータが送られる。また、市販されているメモリであればメモリ番地は十分多いので、通常はノードに対応付けるメモリ領域が不足することはないが、何らかの理由でメモリ番地の数が不十分である場合は仮想メモリ番地を用いることにより、対応付けるメモリ番地の数を増やす事ができる。
【００２６】
さらにメモリ番地の不足する場合や、ノード間通信路同士を接続する中継装置が汎用にルーティング機能のみを有する場合には、中継装置を介する前提で、前者ではメモリ番地が同じであってもノード番地が異なるノードとの通信、後者では中継装置がデータを受信してもメモリ番地により送信相手を特定できない場合が生じる。このため、中継装置を境にネットワークを区分して、中継装置を挟んで異なるネットワーク区分（ノード間通信路に相当）に属するノードについてはメモリ番地とノード番地との対応を重複できるようにする。中継装置は、受信データを受け渡すノード間通信路を指定して、相手方のノードもしくは中継装置にデータを渡すことになる。
【００２７】
図２は本実施形態によるノード間データ転送制御システムでのノード１ａからノード１ｂに送信する時の処理を示す説明図である。図２を用いて、ノード１ａ内の分散共有メモリ領域１ａ−３−２のデータを、ノード１ｂに送信し、ノード１ｂ内の分散共有メモリ領域１ｂ−３−２に書き込む時のノード１ａでの処理について説明する。
【００２８】
図２のノード１ａ内には、アプリケーションプログラム１ａ−１と、演算装置１ａ−２と、ローカルメモリ１ａ−３と、ノード内の各構成要素を接続するためのノード内バス１ａ−４と、転送制御装置１ａ−５と、ノード番地対応手段１ａ−６とを有する。ローカルメモリ１ａ−３には、ノード専用領域１ａ−３−１と、分散共有メモリ領域１ａ−３−２（図２のローカルメモリ１ａ−３内の斜線部）とを有している。
【００２９】
ノード番地対応手段１ａ−６では、分散共有メモリのメモリ番地１ａ−６−２毎に、分散共有メモリが存在しているノードのノード番地１ａ−６−３と、分散共有メモリ領域が同一のノード間通信路内のノードに存在するものかどうかを判定するためのフラグ１ａ−６−４とが対応付けて記憶されている。ここで、フラグ１ａ−６−４のデータについては、対応する分散共有メモリのメモリ番地１ａ−６−２が例えばノード１ｂのような同一のノード間通信路内のノードのものである場合は０が格納されており、例えばノード１ｄのような別のノード間通信路内のノードのものである場合は１が格納されている。
【００３０】
ここでは、各分散共有メモリのメモリ番地１ａ−６−２−１〜１ａ−６−２−αに対して、それぞれノード番地１ａ−６−３−１〜１ａ−６−３−αが記憶されている。また、ノード番地対応手段１ａ−６には、ルータ１ｘのノード番地１ａ−６−３−ｘについても記憶されている。なお、ノード番地対応手段１ａ−６は図２のようなデータテーブルの形態をとるとは限らず、ある規則性に基づきメモリ番地をノード番地に変換するものでも良い。
【００３１】
ここで、アプリケーションプログラム１ａ−１等が分散共有メモリ領域１ａ−３−２にデータ４ａ−１を書き込むと、ノード内バス１ａ−４をデータ４ａ−１と分散共有メモリ領域１ａ−３−２内のメモリ番地１ａ−６−２−１とが流れるので、ノード番地対応手段１ａ−６がメモリ番地１ａ−６−２−１を取り込み、予め設定されている変換機能によりメモリ番地１ａ−６−２−１を対応するノード番地１ａ−６−３−１に変換し、転送制御装置１ａ−５に出力する。転送制御装置１ａ−５ではノード番地１ａ−６−３−１を取得して、データ４ａ−１をノード番地１ａ−６−３−１のノード１ｂへ送信する。
【００３２】
また、この時ノード番地対応手段１ａ−６は、送信データの宛先ノードが同一のノード間通信路２ａ内のノード１ｂであるので、ノード１ｂのノード番地１ａ−６−３−１のみを転送制御装置１ａ−５に出力する。尚、このとき出力するデータはノード番地１ａ−６−３−１に加え、対応するフラグ１ａ−６−４である０を出力するようにしても良い。転送制御装置１ａ−５は取得したノード番地１ａ−６−３−１をネットワークが通常使用するノード番地の形態に変形し、宛先のノード１ｂに向けてデータ４ａ−１を送信する。
【００３３】
次に、ノード１ａ内の分散共有メモリ領域１ａ−３−２のデータを、ルータ１ｘを介して接続されているノード１ｄに送信し、ノード１ｄ内の分散共有メモリ領域に書き込む時のノード１ａでの処理について説明する。
【００３４】
ここで、アプリケーションプログラム１ａ−１等が分散共有メモリ領域１ａ−３−２にデータ４ａ−２を書き込むと、ノード内バス１ａ−４をデータ４ａ−２と分散共有メモリ領域１ａ−３−２内のメモリ番地１ａ−６−２−αとが流れるので、ノード番地対応手段１ａ−６がメモリ番地１ａ−６−２−αを取り込み、予め設定されている変換機能によりメモリ番地１ａ−６−２−αを対応するノード番地１ａ−６−３−αに変換し、該ノード番地１ａ−６−３−αと、対応するフラグ１ａ−６−４である１とをあわせて転送制御装置１ａ−５に出力する。
【００３５】
転送制御装置１ａ−５ではノード番地１ａ−６−３−αとフラグ１ａ−６−４のデータである１とを取得すると、ルータ１ｘのノード番地１ａ−６−３−ｘをノード番地対応手段１ａ−６から取得し、ルータが送信先ノード番地として識別するヘッダの番地収容部分にノード番地１ａ−６−３−αを書き込み、ルータ１ｘ宛にデータ４ａ−２を送信する。
【００３６】
例えば、この時のネットワークがＩＰネットワークである場合は次のように適用される。メモリ番地と対応付けるノード番地とは、自ノードが属するセグメント内の番地あるいはサブネットマスク外の番地とする。宛先ノードが同一セグメント内にあるときは、データヘッダの宛先ＩＰアドレスとして、自サブネット番地をノード番地に加えたものをデータ転送手段が格納する。
【００３７】
宛先ノードがセグメント外の場合はアプリケーションプログラム又はＯＳがデータに付随して宛先ノードのセグメント情報或いはサブネットアドレスをデータに付け加えてメモリに書き込む。この場合はセグメント情報からサブネットアドレスを出力する機能をメモリ番地対応手段に保持させておく。メモリ番地対応手段がサブネット番地をデータ転送手段に渡す、或いは、データ内のサブネットアドレスを用いて、データ転送手段がデータヘッダの宛先ＩＰアドレスを構成する。
【００３８】
このことにより、ノード番地がネットワーク外のノードと重複していてサブネット内のノードに対応する数のメモリ番地しか確保できなくても、宛先ノード番地を取得でき、また、介在するルータが分散共有メモリ機構を有していなくても、宛先ノードにデータを送信する事ができる。
【００３９】
図３は、本発明の実施形態によるノード間データ転送制御システムを実装したルータ１ｘを使用する場合の処理の一例を示す説明図である。以下、前述の実施例と同様の構成である時には、適宜説明を省略する。以降、ルータ１ｘで区切られた同一ネットワークのノードの集合をセグメントと表記する。また、ノード１ｂもノード１ａと同様の各構成要素を保持しており、ノード１ｂの各構成要素の符号は例えばアプリケーションプログラム１ｂ−１のように、ノード１ａでの符号内のａをｂに置き換えた形で表記する。
【００４０】
アプリケーションプログラム１ａ−１は分散共有メモリにデータ４ａ−１を書き込むが、アプリケーションプログラム１ａ−１またはＯＳが指定するメモリの番地５ａ−１は複数の部分から構成されていて、その一部を分散共有メモリ上に確保された番地を示すために用い、一部はセグメントを示す識別子を格納するために用いる。ノード内バス１ａ−４上を分散共有メモリ番地５ａ−１−２とセグメント部５ａ−１−１とから構成されたメモリ番地５ａ−１が流れることになる。
【００４１】
メモリ番地５ａ−１にセグメント部５ａ−１−１が含まれることで実装メモリの番地の範囲外であるとして例外処理が発生する場合は、送信データ部の特定領域にセグメントを示す番地を書き込む。以降、メモリ番地にセグメント部を含む場合を中心に記述するが、そうでない場合についても同様である。データ４ａ−１はメモリ番地５ａ−１の分散共有メモリ番地部５ａ−１−２で示される領域に書き込まれるので、そのメモリ番地１ａ−６−２は分散共有メモリ番地部５ａ−１−２と同一である。尚、仮想メモリ番地を用いる場合についても同様である。
【００４２】
ノード番地対応手段１ａ−６は、書き込まれた分散共有メモリのメモリ番地１ａ−６−２即ち分散共有メモリ番地部５ａ−１−２に基づき宛先ノードのノード番地１ａ−６−３を出力するが、それに加えてメモリ番地５ａ−１にセグメント部５ａ−１−１が含まれない場合は、フラグ１ａ−６−４として０を出力し、セグメント部が含まれる場合はそのセグメントのルータのノード番地を宛先ノード番地として、転送装置１ａ−５に対して出力する。この時のルータのノード番地は、多くの場合セグメント部にセグメント内のノード番地を付加した構成となる。
【００４３】
転送制御装置１ａ−５は、ノード番地１ａ−６−３、フラグ１ａ−６−４、データ４ａ−１を低位レイヤのパケット７−１に書き込む。ここで、パケット７−１は、データ単位６−１と送信宛先番地部７−１−１とから構成される。また、データ単位６−１は、番地部６−１−１と、データ部６−１−２とを有し、番地部６−１−１は、セグメント部６−１−１−１と、分散共有メモリ番地６−１−１−２とから構成されている。パケット７−２、７−３についてもそれぞれ同様のデータ構成をとる。
【００４４】
転送制御装置１ａ−５は、フラグ１ａ−６−４が０であるノード番地１ａ−６−３を低位レイヤの送信宛先番地部７−１−１に書き込んで、その宛先にデータを送信する。送信パケットを構成する送信データ単位６−１の番地部６−１−１には分散共有メモリ番地６−１−１−２即ち５ａ−１−２或いは１ａ−６−２のみが書き込まれることになる。
【００４５】
フラグ１ａ−６−４が０でなく、フラグ１ａ−６−４に宛先セグメント部が格納されている場合、即ち転送制御装置１ａ−５がルータのノード番地を宛先のノード番地１ａ−６−３として受け取った時には、転送制御装置１ａ−５は受け取ったノード番地１ａ−６−３を低位レイヤの送信宛先番地部７−１−１に書き込んで、ルータ宛にデータを送信する。送信パケットを構成するデータ単位６−１の番地部６−１−１のセグメント部６−１−１−１にはセグメント識別子１ａ−６−４を格納して指定ルータ宛にデータを送信する。
【００４６】
フラグ１ａ−６−４が０の場合は、分散共有メモリ番地１ａ−６に対応するノード番地１ａ−６−３を持つセグメント内のノードが受信する事となる。フラグ１ａ−６−４が０でなければノード番地１ａ−６−３を持つルータが受信し、そのルータは到着したパケット７−１内のセグメント部６−１−１−１が自セグメントではないので上位ルータにデータ単位６−１を転送する。
【００４７】
転送の手順は、転送制御装置１ｂ−５が到着したパケット７−２からデータ単位６−２を取り出し、ノード内バス１ｂ−４を介してデータ部６−２−２を分散共有メモリ１ｂ−３−２に書き込む。その際に、メモリ番地部６−２−１についてもノード内バス１ｂ−４上に送信する。
【００４８】
ルータに到着したパケットが自ノード宛の場合を示す。この場合、ノード番地対応手段１ｂ−６がノード内バス１ｂ−４を流れるメモリ番地のセグメント部５ｂ−１−１即ち６−２−１−１が自セグメントを示すので、メモリ番地部６−３−１−２に書き込まれている分散共有メモリのメモリ番地の分散共有メモリ領域に書き込む。
【００４９】
この領域は他ノードから自ノード宛の領域なのでノード内バス１ｂ−４にデータ６−２−２とメモリ番地６−２−１−２が流れてもノード番地変換手段１ｂ−６や転送制御装置１ｂ−５は送信動作せず、データはアプリケーションプログラム１ｂ−１に読み取られる。
【００５０】
ルータに到着したパケットが自ノード宛ではなく、転送すべきデータである時は、次のような動作を行う。まず、メモリ番地部６−２−１のセグメント部６−２−１−１が自ノードの属すセグメントと異なる場合では、データ単位６−２のデータ部６−２−２に加え、メモリ番地部６−２−１のセグメント部６−２−１−１も、転送用のメモリ番地である分散共有メモリ番地１ｂ−６−２ｘに書き込まれる。つまり、転送先のセグメントを示すセグメント部６−２−１−１に対応する転送用の分散共有メモリ番地１ｂ−６−２ｘをノード番地変換手段１ｂ−６から取り出して該分散共有メモリ番地１ｂ−６−２ｘに書き込む。
【００５１】
分散共有メモリ番地１ｂ−６−２ｘのデータ内部の構成については、１ｂ−６−２ｘ−１がメモリ番地のセグメント部で１ｂ−６−２ｘ−２がデータ部である。ノード番地変換手段１ｂ−６は、ノード内バス１ｂ−４を流れるメモリ番地の分散共有メモリ番地５ｂ−１−２即ち６−２−１−２を取り込み、同じくノード内バス１ｂ−４を流れるメモリ番地１ｂ−６−２ｘ−１のセグメント部５ｂ−１−１即ち６−２−１−１即ち１ｂ−６−２ｘ−２に対応するセグメント方向のルータのノード番地１ｂ−６−３を出力する。
【００５２】
転送制御装置１ｂ−５は、ノード番地１ｂ−６−３を低位レイヤのパケット７−３の宛先ノード番地７−３−１に書き込み、そのノード番地向けにパケットを送信する。セグメント部は次のルータが更に先のルータにデータを転送する場合もあるので、データと合わせて送信される事となる。ルータに到着したパケットが自ノードの属するセグメント宛でありかつ自ノード宛以外の場合は、ノード内バス１ｂ−４を流れるメモリ番地のセグメント部５ｂ−１−１即ち６−２−１−１が自セグメントを示すので、ノード番地変換手段１ｂ−６がメモリ番地部６−３−１−２に書き込まれている分散共有メモリ番地の分散共有メモリ領域に書き込む。
【００５３】
この領域は、自ノード宛の領域ではなく、自セグメント内の他のノードと対応する分散共有メモリ領域であるので、ノード内バス１ｂ−４にデータ６−２−２とメモリ番地６−２−１−２が流れると、ノード番地変換手段１ｂ−６や転送制御装置１ｂ−５は送信動作をすることになる。よって、通常の同一セグメント内のノード間のデータ転送と同様の手順に沿って送信される事となる。尚、ルータは転送先のセグメントの数が単数即ち一方向である必要はなく、複数の転送先のルータに対して受信したデータを送信するようにしても良い。
【００５４】
図４は、本発明の実施形態によるノード間データ転送制御システムを他のプロトコルに適用した一例である。以下、前述の実施例と同様の構成である時には、適宜説明を省略する。図４は、セグメント８−１、８−２と、セグメント８−１、８−２間を接続するルータ１ｘとから構成されていて、セグメント８−１内にはノード１ａ、１ｂが、セグメント８−２内にはノード１ｄがそれぞれ接続されている。セグメント８−１内の各ノードは同一セグメント内のノードに対応する分散共有エリアのみを保持している。ノード番地変換手段１ａ−６は、分散共有メモリ番地１ａ−６−２とノード番号１ａ−６−３とが対応付けられて記憶されている。
【００５５】
ノード内バス１ａ−４を流れるデータ４ａ−１には、データ部４ａ−１−３と番地部４ａ−１−２とを含んでいる。また番地部４ａ−１−２には、分散共有メモリ番地１ａ−６−２の記載部分であるメモリ番号４ａ−１−２−１と、セグメントの記載部分であるセグメント番号４ａ−１−２−２とを含んでいる。
【００５６】
また、ノード内バス１ａ−４の番地部を流れるデータは、分散共有メモリ番地１ａ−６−２の記載部分のみであり、セグメントが記載されている部分については、ノード内バス１ａ−４のデータ部を流れる。同一セグメント内へ送信する場合はアプリケーションプログラム１ａ−１或いはＯＳから流されるデータのセグメント番号４ａ−１−２−２は空き状態であり、０の状態であるが、セグメント外に送られる場合は宛先のセグメント番号が書き込まれる。
【００５７】
いずれの場合にも分散共有メモリの同じメモリ番地に書き込まれることになるが、書き込まれたデータには前者ではセグメント番号に０が、後者ではセグメント番号が入っている。転送制御装置１ａ−５は、ノード番地変換手段１ａ−６から得たノード番号１ａ−６−３に加えセグメント番号４ａ−１−２−２を転送先ノードの識別子として読み取る。この時、セグメント番号が書き込まれている場合は、転送制御装置１ａ−５がルータ１ｘに転送する。
【００５８】
ルータ１ｘはノード番地１ａ−６−３が自番地であれば受信処理を行うが、そうでない場合は、セグメント番号４ａ−１−２−２がセグメント８−２のものであればセグメント８−２内のノード番地１ａ−６−３に対して転送し、セグメント番号４ａ−１−２−２がセグメント８−２になければ上位の中継装置に転送する。なお、上記の説明の内の中継装置が３個以上のセグメントに接続されている場合についても同様の処理を行う。
【００５９】
図５は、本実施形態によるノード間データ転送制御システムの処理内容の一例を示す処理フローである。ステップＳ１ではアプリケーション或いはＯＳが送信データを生成する。ステップＳ２では、ノード番地対応手段１ａ−６がデータ部内に含まれるセグメントを示す識別子が０であるかどうかを判定する。０である場合はステップＳ３へと進み、０でない場合はステップＳ４へと進む。ステップＳ３では、ノード番地対応手段１ａ−６が送信データのメモリ番地を宛先ノード番地に変換して、ステップＳ５へと進む。
【００６０】
ステップＳ４では、ノード番地対応手段１ａ−６が送信データのセグメント識別子を中継装置のノード番地に変換する。ステップＳ５では、転送制御装置１ａ−５が送信データのメモリ番地を送信フレームの番地部に書き込む。ステップＳ６では、転送制御装置１ａ−５がセグメント識別子を送信フレームの番地部のセグメントを示す部分に書き込む。ステップＳ７では、転送制御装置１ａ−５が送信データのデータ部を送信フレームのデータ部に書き込む。ステップＳ８では、転送制御装置１ａ−５が送信フレームを宛先ノードに向けて送信する。
【００６１】
なお、ステップＳ２では、ノード番地対応手段１ａ−６の代わりに転送制御装置１ａ−５やその他のハードウェアあるいはＯＳ、その他のソフトウェアが行うようにしても良い。また、各ステップを実行する装置及びブロックは、対象とするシステムにより異なっていても良い。
【００６２】
なお、本発明の実施形態によるノード間データ転送制御システム内の各装置及び各ブロックはコンピュータとプログラムとによって構成することでも実現可能であり、プログラムを記憶媒体に記憶する、又はネットワークを通して提供することも可能である。
【００６３】
なお、本発明では、ノード集団の識別子を用いることで複数のノード集団同士でメモリ番号とノード番地の対応が重複しても、ノードを一意に識別する事を可能とするが、中継装置が介在する場合は、中継装置による区分をノード集団の識別子と対応付けることで、中継装置を介在しなければノード集団の識別子は必ず同一であり、中継装置を介在するとノード終端の識別子が異なる場合がある、ように定めてもよい。
【００６４】
尚、ノードと記述した装置は、コンピュータ、サーバ、ルータ、センサ（ノード）、駆動装置、制御装置などで通信機能を有する装置であれば制限はない。また、宛先や送り元をノードと記載しているが、通常は送受信対象のデータをリードライトするのはノード内のプロセスであり、即ち、本発明ではメモリ番地にノード番地を対応付けるとの記載をしているが、メモリ番地にプロセスの番地を対応付けても良い。その場合、あるメモリ番地にデータが書き込まれたら、メモリ番地に対応するプロセスが存在するノードのノード識別子がノード番地変換手段から出力され、データが該ノードへ送信され同一番地（仮想的でも構わない）に書き込まれる、との処理であっても良い。このように、送信元受信先をノードと記載していてもノードをプロセスに置き換えて処理を行う場合も、本発明は対象とする。メモリ配置は、物理的でなくてもよく、仮想メモリを用いて本発明を実施しても構わない。本発明によるメモリ構成は、ネットワーク接続前に通信機能を初期化する段階で予め行ってもよく、すでに通信を行っている状況でメモリを再構成しても構わない。ノードの関係は、便宜上リング状のように表記しているが、バス状やスター上など、実際の物理的な接続状態はどのような形態であっても構わない。
【図面の簡単な説明】
【００６５】
【図１】本実施形態によるノード間データ転送制御システムの全体構成を示すブロック図である。
【図２】本実施形態によるノード間データ転送制御システムでのノード１ａからノード１ｂに送信する時の処理を示す説明図である。
【図３】本発明の実施形態によるノード間データ転送制御システムを実装したルータ１ｘを使用する場合の処理の一例を示す説明図である。
【図４】本発明の実施形態によるノード間データ転送制御システムを他のプロトコルに適用した一例である。
【図５】本実施形態によるノード間データ転送制御システムの処理内容の一例を示す処理フローである。
【符号の説明】
【００６６】
１ａ〜１ｅ…ノード、  ２ａ、２ｂ…ノード間通信路、  １ｘ…ルータ、  １ａ−１、１ｂ−１…アプリケーションプログラム、  １ａ−２、１ｂ−２…演算装置、  １ａ−３、１ｂ−３…ローカルメモリ、  １ａ−４、１ｂ−４…ノード内バス、  １ａ−５、１ｂ−５…転送制御装置、  １ａ−６、１ｂ−６…ノード番地対応手段、  ８−１、８−２…セグメント
【図１】
2007286754.tif 000003
【図２】
2007286754.tif 000004
【図３】
2007286754.tif 000005
【図４】
2007286754.tif 000006
【図５】
2007286754.tif 000007