説明

ノード間データ転送制御システム、ノード間データ転送制御装置及びコンピュータプログラム

【課題】異なる中継装置に属するノード同士でアドレスや識別子が重複する場合でも、既存の装置構造をほとんど変更することなく用いることができるノード間データ転送制御システム、ノード間データ転送制御装置及びコンピュータプログラムを提供する。
【解決手段】ノード1a内のアプリケーションプログラム等が分散共有メモリ領域にデータを書き込むと、ノード内バスをデータと分散共有メモリ領域内のメモリ番地とが流れるので、ノード番地対応手段がメモリ番地を取り込み、該メモリ番地を対応するノード番地に変換し、転送制御装置に出力する。転送制御装置では該ノード番地を取得して、データをノード番地のノード1bへ送信する。ノード1bへの通信路の途中に中継装置が介在する場合は、中継装置で区分されるノード集団にノード集団を識別する識別子を付与しておき、中継装置を通過しても送信データの宛先ノード番地を維持するようにする。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、分散共有メモリを用いたノード間データ転送に関して、ノード内、或いはノード間で特に汎用の中継装置を介したノード間でデータ転送を行うノード間データ転送制御システム、ノード間データ転送制御装置及びコンピュータプログラムに関する。
【背景技術】
【0002】
従来、分散共有メモリを用いたノード間データ転送制御システムは、転送プロトコルの中継装置を介して、ネットワークで接続された任意のノードにデータを送っている。この時の中継装置の動作としては、分散共有メモリの番地とIP(インターネットプロトコル)アドレス、VCC(VC Connection)、Ethernet(登録商標)アドレス等のノード番地との関連付けを操作することはなく、データパケットをそのまま通過させるだけであった。
【0003】
もしくは、中継装置に専用機能を有する場合として、メモリアクセス要求に伴うメモリアドレスに基づき、このアドレスを宛先の識別子の一種として中継装置或いは中継機能が経路を決定する場合もあった(例えば、特許文献1参照)。
【0004】
上記のように、中継装置においてメモリアクセス自体に基づく経路決定を行うには、汎用の中継装置を改造するか、専用の中継装置あるいは中継機能を用いる必要があった。また、汎用の中継装置が分散共有メモリの番地とノード番地との関係付けを用いて、データを宛先ノードの属するノード集団や宛先ノードに届けることは困難であった。
【0005】
IPネットワークを用いる場合、IPを実装するルータに配置されるルーティングテーブルを用いて、データに付随するIPアドレスから次のルータや宛先ノードを識別しており、分散共有メモリの番地を用いてルータが次のルータや宛先ノードを識別することはできない。
【特許文献1】特開平07−295950号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
汎用のネットワークで接続されたノード間通信では、該汎用のネットワーク専用の中継装置が用いられるために、該中継装置が提供するプロトコルによる宛先アドレスと方路或いは宛先ノードとの関連付けを用いて転送する宛先を識別しており、例えばIPネットワークの場合は、IPを実装するルータに配置されるルーティングテーブルを用いてデータに付随するIPアドレスから次のルータや宛先ノードを識別している。このことは、ATM(Asynchronous Transfer Mode)を用いる場合や、Ethernet(登録商標)を用いる場合も同様である。
【0007】
通常はメモリ空間が十分大きく、IPアドレス、ATMのVCC、Ethernet(登録商標)アドレス等の場合でも、対象となるノードのアドレスや識別子とメモリ番地とを重複しないように割り当てることができるので、対象となるノードの中では任意のノードと通信できる。
【0008】
しかし、例えば国内の全携帯電話がメール通信を5年間消去せずに保持し続けるようなケースを更に上回るメモリ使用をする場合では必ずしも本発明に必要なメモリ番地が確保できない可能性も考慮する必要があり、非常にノード数が多くかつ多くのメモリ領域を使用する状況のように、或いは、センサの通信に用いる場合などメモリ空間が非常に小さい場合は、仮想メモリを用いてメモリ空間を拡張しても対象となるノードのアドレスや識別子の数がメモリ番地の数を上回る場合がある。そこで、ルータ等の中継装置によりアドレスや番地が重複するノードを区分する。
【0009】
つまり、同一の中継装置に属するノード同士はアドレスや識別子が重複しないが、ノード数の拡張を容易にするため中継装置を通過するとアドレスや識別子が重複し得る状態である。この時、汎用の中継装置を改造することなく、或いは、分散共有メモリを用いたノード間データ転送制御システムをそのまま利用した中継装置をもちいて、ネットワークで接続された任意の分散共有メモリを用いた通信が可能でなかった。
【0010】
上記のように、中継装置においてメモリアクセス自体に基づく経路決定を行うには、汎用の中継装置を改造するか、専用の中継装置あるいは中継機能を用いる必要があるという問題があると共に、ノード数が非常に多い場合又はセンサの通信に用いる場合などメモリ空間が非常に小さい場合に、汎用の中継装置を改造することなく、或いは、分散共有メモリを用いた中継装置を用いて転送できないという問題があった。
【0011】
本発明はかかる課題を解決するためになされたもので、ノード数が非常に多い場合又はセンサの通信に用いる時などのメモリ空間が非常に小さい場合で、別の中継装置に属するノード同士でアドレスや識別子が重複する場合でも、既存の分散共有メモリを用いたノード間データ通信装置の構造をほとんど変更することなく用いることができるノード間データ転送制御システム、ノード間データ転送制御装置及びコンピュータプログラムを提供することを目的とする。
【課題を解決するための手段】
【0012】
本発明は、分散共有メモリを用いたノード間データ転送制御システムがネットワークで接続されたシステムにおいて、中継装置を介さないノード間は分散共有メモリの番地と、ネットワーク内でノードを識別する識別子であるノード番地との対応付けが重複しないが、一方で、中継装置を介する場合でノード間は分散共有メモリの番地と、ネットワーク内でノードを識別する識別子であるノード番地との対応付けが重複する可能性がある場合に、各中継装置に属するノードの集まりであるノード集団(セグメントに相当)間で宛先のノードにデータを送信するため、ノード番地にノード集団を示す部分とノード集団内のノードを識別する部分とを含むようにする。
【0013】
また、ノード集団内ではノードを識別する部分のみを用い、ノード集団が異なる場合は中継装置においてノード集団を示す部分を用いて送信先を決定し、転送プロトコルを用いて宛先ノード或いは宛先ノード集団或いは宛先ノード集団が存在する方路へデータを送信する。これらにより、汎用の中継装置を用いる場合は転送プロトコルにおいて、どの中継装置に属する宛先ノードが存在するかを示す識別子を付加することで、汎用の中継装置を改造せずに使用できるようにする。
【0014】
また、中継装置に通常の分散共有メモリを用いたノード間データ転送制御システムを用いる、もしくは汎用の中継装置に分散共有メモリ機構を加える場合は、通常のノードの分散共有メモリ機構と同じメモリ番地伝達手段を用いてノード集団を識別する部分を伝達する。
【0015】
これにより、中継装置として専用のノードを用いる、もしくは汎用の中継装置に加えるための分散共有メモリ機構を改造する、又は転送プロトコルに依存した改造をすることなく分散共有メモリを用いたノード間データ転送制御システムを使用できる。
【0016】
本発明は上記の課題を解決するためになされたもので、請求項1に記載の発明は、複数のノードが接続されたセグメントと、該セグメント間を接続する中継装置とから構成されたネットワークについて、ノード内のデータ処理の制御を行う演算手段と、前記演算手段によって読み書き可能であって、複数のノードでメモリ番地が仮想的あるいは物理的に同様に参照される分散共有メモリと、メモリ番地が入力されると、メモリ番地が示す前記分散共有メモリの領域と対応付けられたノード番地を出力するノード番地対応手段と、前記分散共有メモリに書き込まれるデータと、該データが書き込まれるメモリ番地とを取得し、宛先のノードに送信する送信手段と、ネットワークから受信データを受信し、該受信データからメモリ番地とデータを抽出し、該メモリ番地の分散共有メモリに該データを書き込む受信手段と、を備えるノード間データ転送制御装置を具備するノード間データ転送制御システムであり、前記中継装置を介して別セグメントに接続されたノード宛へのデータ送信時に、データが前記中継装置を通過する際には、メモリ番地とノード番地との対応関係を維持することを特徴とするノード間データ転送制御システムである。
【0017】
また、請求項2に記載の発明は、前記送信手段は、同一セグメントのノード宛へのデータ送信時には、前記分散共有メモリの領域と対応付けられたノード番地を有するノードへデータを送信し、前記中継装置を介して別セグメントのノード宛へのデータ送信時には、メモリ番地に宛先のノードの属するセグメントを識別する識別子を付加して送信することを特徴とする請求項1に記載のノード間データ転送制御システムである。
【0018】
また、請求項3に記載の発明は、複数のノードが接続されたセグメントと、該セグメント間を接続する中継装置とから構成されたネットワークについて、ノード内のデータ処理の制御を行う演算手段と、前記演算手段によって読み書き可能であって、複数のノードでメモリ番地が仮想的あるいは物理的に同様に参照される分散共有メモリと、メモリ番地が入力されると、メモリ番地が示す前記分散共有メモリの領域と対応付けられたノード番地を出力するノード番地対応手段と、前記分散共有メモリに書き込まれるデータと、該データが書き込まれるメモリ番地とを取得し、宛先のノードに送信する送信手段と、ネットワークから受信データを受信し、該受信データからメモリ番地とデータを抽出し、該メモリ番地の分散共有メモリに該データを書き込む受信手段と、を具備することを特徴とするノード間データ転送制御装置である。
【0019】
また、請求項4に記載の発明は、前記送信手段は、同一セグメントのノード宛へのデータ送信時には、前記分散共有メモリの領域と対応付けられたノード番地を有するノードへデータを送信し、前記中継装置を介して別セグメントのノード宛へのデータ送信時には、メモリ番地に宛先のノードの属する該セグメントを識別する識別子を付加して送信することを特徴とする請求項3に記載のノード間データ転送制御装置である。
【0020】
また、請求項5に記載の発明は、複数のノードが接続されたセグメントと、該セグメント間を接続する中継装置とから構成されたネットワークについて、メモリ番地が入力されると、前記メモリ番地が示す前記分散共有メモリの領域と対応付けられたノード番地を出力するノード番地対応ステップと、前記分散共有メモリに書き込まれるデータと前記メモリ番地とを取得し、同一セグメントのノード宛へのデータ送信時には、前記分散共有メモリの領域と対応付けられたノード番地を有するノードへデータを送信し、中継装置を介して別セグメントのノード宛へのデータ送信時には、メモリ番地に宛先のノードの属する該セグメントを識別する識別子を付加して送信する送信ステップと、ネットワークから受信データを受信し、該受信データからメモリ番地とデータを抽出し、該メモリ番地の分散共有メモリに該データを書き込む受信ステップと、をコンピュータに実行させるためのコンピュータプログラムである。
【発明の効果】
【0021】
本発明によれば、ネットワークに接続されたセグメント内の任意のノードが、セグメントを区分する中継装置を介して接続されている場合、自ノードの接続されたセグメントにデータを送信する際即ち中継装置を介さずにデータを送信する際も、別のセグメントに接続されたノード宛にデータを送信する際も、同じ手段と同じ手続きとにより宛先のノードにデータを送信する事を可能にする効果をもたらし、かつ、既存の分散共有メモリを用いたノード間データ通信装置の構造をほとんど変更することなく実現することができる。また、本発明での中継装置の転送先は一方向である必要はなく、該中継装置により送信先までの方路の決定を行う事が可能になる。
【0022】
また、本発明により、非常にノード数が多くかつ多くのメモリ領域を使用する状況や、小規模センサのように使用可能なメモリ領域が極めて小さい状況において、分散共有メモリを用いたネットワーク上のノード識別子の対応が重複する事となっても、ルータ等の中継装置を介しての重複を可能とし、少ないメモリ領域だけで分散共有メモリを用いたノード間データ転送が行う事が可能になる。
【発明を実施するための最良の形態】
【0023】
以下、図面を参照して本発明の実施形態について説明する。図1は本実施形態によるノード間データ転送制御システムの全体構成を示すブロック図である。図1のノード間データ転送制御システムは、ネットワーク上の接続されたノード1a〜1eと、各ノードが接続されているノード間通信路2a、2bと、ノード間通信路2a、2b間を接続しているルータ(中継装置に相当)1xとから構成されている。
【0024】
ここで、ノード間通信路2aはメモリ番地とノード番地との対応が互いに重複しないノード1a〜1cが接続されており、ノード間通信路2bはノードのメモリ番地とノード番地との対応が互いに重複しないノード1d、1eが接続されている。また、ノード1a内には分散共有メモリ番地1a−6−2−1と、分散共有メモリ領域1a−3−2−1とを有しており、ノード1b内には分散共有メモリ番地1b−6−2−1と、分散共有メモリ領域1b−3−2−1とを有している。
【0025】
本システムは、ノード番地に対して少なくとも1つ以上の分散共有メモリのメモリ番地が対応付けられており、メモリ番地を指定することで対応するノードへデータが送られる。また、市販されているメモリであればメモリ番地は十分多いので、通常はノードに対応付けるメモリ領域が不足することはないが、何らかの理由でメモリ番地の数が不十分である場合は仮想メモリ番地を用いることにより、対応付けるメモリ番地の数を増やす事ができる。
【0026】
さらにメモリ番地の不足する場合や、ノード間通信路同士を接続する中継装置が汎用にルーティング機能のみを有する場合には、中継装置を介する前提で、前者ではメモリ番地が同じであってもノード番地が異なるノードとの通信、後者では中継装置がデータを受信してもメモリ番地により送信相手を特定できない場合が生じる。このため、中継装置を境にネットワークを区分して、中継装置を挟んで異なるネットワーク区分(ノード間通信路に相当)に属するノードについてはメモリ番地とノード番地との対応を重複できるようにする。中継装置は、受信データを受け渡すノード間通信路を指定して、相手方のノードもしくは中継装置にデータを渡すことになる。
【0027】
図2は本実施形態によるノード間データ転送制御システムでのノード1aからノード1bに送信する時の処理を示す説明図である。図2を用いて、ノード1a内の分散共有メモリ領域1a−3−2のデータを、ノード1bに送信し、ノード1b内の分散共有メモリ領域1b−3−2に書き込む時のノード1aでの処理について説明する。
【0028】
図2のノード1a内には、アプリケーションプログラム1a−1と、演算装置1a−2と、ローカルメモリ1a−3と、ノード内の各構成要素を接続するためのノード内バス1a−4と、転送制御装置1a−5と、ノード番地対応手段1a−6とを有する。ローカルメモリ1a−3には、ノード専用領域1a−3−1と、分散共有メモリ領域1a−3−2(図2のローカルメモリ1a−3内の斜線部)とを有している。
【0029】
ノード番地対応手段1a−6では、分散共有メモリのメモリ番地1a−6−2毎に、分散共有メモリが存在しているノードのノード番地1a−6−3と、分散共有メモリ領域が同一のノード間通信路内のノードに存在するものかどうかを判定するためのフラグ1a−6−4とが対応付けて記憶されている。ここで、フラグ1a−6−4のデータについては、対応する分散共有メモリのメモリ番地1a−6−2が例えばノード1bのような同一のノード間通信路内のノードのものである場合は0が格納されており、例えばノード1dのような別のノード間通信路内のノードのものである場合は1が格納されている。
【0030】
ここでは、各分散共有メモリのメモリ番地1a−6−2−1〜1a−6−2−αに対して、それぞれノード番地1a−6−3−1〜1a−6−3−αが記憶されている。また、ノード番地対応手段1a−6には、ルータ1xのノード番地1a−6−3−xについても記憶されている。なお、ノード番地対応手段1a−6は図2のようなデータテーブルの形態をとるとは限らず、ある規則性に基づきメモリ番地をノード番地に変換するものでも良い。
【0031】
ここで、アプリケーションプログラム1a−1等が分散共有メモリ領域1a−3−2にデータ4a−1を書き込むと、ノード内バス1a−4をデータ4a−1と分散共有メモリ領域1a−3−2内のメモリ番地1a−6−2−1とが流れるので、ノード番地対応手段1a−6がメモリ番地1a−6−2−1を取り込み、予め設定されている変換機能によりメモリ番地1a−6−2−1を対応するノード番地1a−6−3−1に変換し、転送制御装置1a−5に出力する。転送制御装置1a−5ではノード番地1a−6−3−1を取得して、データ4a−1をノード番地1a−6−3−1のノード1bへ送信する。
【0032】
また、この時ノード番地対応手段1a−6は、送信データの宛先ノードが同一のノード間通信路2a内のノード1bであるので、ノード1bのノード番地1a−6−3−1のみを転送制御装置1a−5に出力する。尚、このとき出力するデータはノード番地1a−6−3−1に加え、対応するフラグ1a−6−4である0を出力するようにしても良い。転送制御装置1a−5は取得したノード番地1a−6−3−1をネットワークが通常使用するノード番地の形態に変形し、宛先のノード1bに向けてデータ4a−1を送信する。
【0033】
次に、ノード1a内の分散共有メモリ領域1a−3−2のデータを、ルータ1xを介して接続されているノード1dに送信し、ノード1d内の分散共有メモリ領域に書き込む時のノード1aでの処理について説明する。
【0034】
ここで、アプリケーションプログラム1a−1等が分散共有メモリ領域1a−3−2にデータ4a−2を書き込むと、ノード内バス1a−4をデータ4a−2と分散共有メモリ領域1a−3−2内のメモリ番地1a−6−2−αとが流れるので、ノード番地対応手段1a−6がメモリ番地1a−6−2−αを取り込み、予め設定されている変換機能によりメモリ番地1a−6−2−αを対応するノード番地1a−6−3−αに変換し、該ノード番地1a−6−3−αと、対応するフラグ1a−6−4である1とをあわせて転送制御装置1a−5に出力する。
【0035】
転送制御装置1a−5ではノード番地1a−6−3−αとフラグ1a−6−4のデータである1とを取得すると、ルータ1xのノード番地1a−6−3−xをノード番地対応手段1a−6から取得し、ルータが送信先ノード番地として識別するヘッダの番地収容部分にノード番地1a−6−3−αを書き込み、ルータ1x宛にデータ4a−2を送信する。
【0036】
例えば、この時のネットワークがIPネットワークである場合は次のように適用される。メモリ番地と対応付けるノード番地とは、自ノードが属するセグメント内の番地あるいはサブネットマスク外の番地とする。宛先ノードが同一セグメント内にあるときは、データヘッダの宛先IPアドレスとして、自サブネット番地をノード番地に加えたものをデータ転送手段が格納する。
【0037】
宛先ノードがセグメント外の場合はアプリケーションプログラム又はOSがデータに付随して宛先ノードのセグメント情報或いはサブネットアドレスをデータに付け加えてメモリに書き込む。この場合はセグメント情報からサブネットアドレスを出力する機能をメモリ番地対応手段に保持させておく。メモリ番地対応手段がサブネット番地をデータ転送手段に渡す、或いは、データ内のサブネットアドレスを用いて、データ転送手段がデータヘッダの宛先IPアドレスを構成する。
【0038】
このことにより、ノード番地がネットワーク外のノードと重複していてサブネット内のノードに対応する数のメモリ番地しか確保できなくても、宛先ノード番地を取得でき、また、介在するルータが分散共有メモリ機構を有していなくても、宛先ノードにデータを送信する事ができる。
【0039】
図3は、本発明の実施形態によるノード間データ転送制御システムを実装したルータ1xを使用する場合の処理の一例を示す説明図である。以下、前述の実施例と同様の構成である時には、適宜説明を省略する。以降、ルータ1xで区切られた同一ネットワークのノードの集合をセグメントと表記する。また、ノード1bもノード1aと同様の各構成要素を保持しており、ノード1bの各構成要素の符号は例えばアプリケーションプログラム1b−1のように、ノード1aでの符号内のaをbに置き換えた形で表記する。
【0040】
アプリケーションプログラム1a−1は分散共有メモリにデータ4a−1を書き込むが、アプリケーションプログラム1a−1またはOSが指定するメモリの番地5a−1は複数の部分から構成されていて、その一部を分散共有メモリ上に確保された番地を示すために用い、一部はセグメントを示す識別子を格納するために用いる。ノード内バス1a−4上を分散共有メモリ番地5a−1−2とセグメント部5a−1−1とから構成されたメモリ番地5a−1が流れることになる。
【0041】
メモリ番地5a−1にセグメント部5a−1−1が含まれることで実装メモリの番地の範囲外であるとして例外処理が発生する場合は、送信データ部の特定領域にセグメントを示す番地を書き込む。以降、メモリ番地にセグメント部を含む場合を中心に記述するが、そうでない場合についても同様である。データ4a−1はメモリ番地5a−1の分散共有メモリ番地部5a−1−2で示される領域に書き込まれるので、そのメモリ番地1a−6−2は分散共有メモリ番地部5a−1−2と同一である。尚、仮想メモリ番地を用いる場合についても同様である。
【0042】
ノード番地対応手段1a−6は、書き込まれた分散共有メモリのメモリ番地1a−6−2即ち分散共有メモリ番地部5a−1−2に基づき宛先ノードのノード番地1a−6−3を出力するが、それに加えてメモリ番地5a−1にセグメント部5a−1−1が含まれない場合は、フラグ1a−6−4として0を出力し、セグメント部が含まれる場合はそのセグメントのルータのノード番地を宛先ノード番地として、転送装置1a−5に対して出力する。この時のルータのノード番地は、多くの場合セグメント部にセグメント内のノード番地を付加した構成となる。
【0043】
転送制御装置1a−5は、ノード番地1a−6−3、フラグ1a−6−4、データ4a−1を低位レイヤのパケット7−1に書き込む。ここで、パケット7−1は、データ単位6−1と送信宛先番地部7−1−1とから構成される。また、データ単位6−1は、番地部6−1−1と、データ部6−1−2とを有し、番地部6−1−1は、セグメント部6−1−1−1と、分散共有メモリ番地6−1−1−2とから構成されている。パケット7−2、7−3についてもそれぞれ同様のデータ構成をとる。
【0044】
転送制御装置1a−5は、フラグ1a−6−4が0であるノード番地1a−6−3を低位レイヤの送信宛先番地部7−1−1に書き込んで、その宛先にデータを送信する。送信パケットを構成する送信データ単位6−1の番地部6−1−1には分散共有メモリ番地6−1−1−2即ち5a−1−2或いは1a−6−2のみが書き込まれることになる。
【0045】
フラグ1a−6−4が0でなく、フラグ1a−6−4に宛先セグメント部が格納されている場合、即ち転送制御装置1a−5がルータのノード番地を宛先のノード番地1a−6−3として受け取った時には、転送制御装置1a−5は受け取ったノード番地1a−6−3を低位レイヤの送信宛先番地部7−1−1に書き込んで、ルータ宛にデータを送信する。送信パケットを構成するデータ単位6−1の番地部6−1−1のセグメント部6−1−1−1にはセグメント識別子1a−6−4を格納して指定ルータ宛にデータを送信する。
【0046】
フラグ1a−6−4が0の場合は、分散共有メモリ番地1a−6に対応するノード番地1a−6−3を持つセグメント内のノードが受信する事となる。フラグ1a−6−4が0でなければノード番地1a−6−3を持つルータが受信し、そのルータは到着したパケット7−1内のセグメント部6−1−1−1が自セグメントではないので上位ルータにデータ単位6−1を転送する。
【0047】
転送の手順は、転送制御装置1b−5が到着したパケット7−2からデータ単位6−2を取り出し、ノード内バス1b−4を介してデータ部6−2−2を分散共有メモリ1b−3−2に書き込む。その際に、メモリ番地部6−2−1についてもノード内バス1b−4上に送信する。
【0048】
ルータに到着したパケットが自ノード宛の場合を示す。この場合、ノード番地対応手段1b−6がノード内バス1b−4を流れるメモリ番地のセグメント部5b−1−1即ち6−2−1−1が自セグメントを示すので、メモリ番地部6−3−1−2に書き込まれている分散共有メモリのメモリ番地の分散共有メモリ領域に書き込む。
【0049】
この領域は他ノードから自ノード宛の領域なのでノード内バス1b−4にデータ6−2−2とメモリ番地6−2−1−2が流れてもノード番地変換手段1b−6や転送制御装置1b−5は送信動作せず、データはアプリケーションプログラム1b−1に読み取られる。
【0050】
ルータに到着したパケットが自ノード宛ではなく、転送すべきデータである時は、次のような動作を行う。まず、メモリ番地部6−2−1のセグメント部6−2−1−1が自ノードの属すセグメントと異なる場合では、データ単位6−2のデータ部6−2−2に加え、メモリ番地部6−2−1のセグメント部6−2−1−1も、転送用のメモリ番地である分散共有メモリ番地1b−6−2xに書き込まれる。つまり、転送先のセグメントを示すセグメント部6−2−1−1に対応する転送用の分散共有メモリ番地1b−6−2xをノード番地変換手段1b−6から取り出して該分散共有メモリ番地1b−6−2xに書き込む。
【0051】
分散共有メモリ番地1b−6−2xのデータ内部の構成については、1b−6−2x−1がメモリ番地のセグメント部で1b−6−2x−2がデータ部である。ノード番地変換手段1b−6は、ノード内バス1b−4を流れるメモリ番地の分散共有メモリ番地5b−1−2即ち6−2−1−2を取り込み、同じくノード内バス1b−4を流れるメモリ番地1b−6−2x−1のセグメント部5b−1−1即ち6−2−1−1即ち1b−6−2x−2に対応するセグメント方向のルータのノード番地1b−6−3を出力する。
【0052】
転送制御装置1b−5は、ノード番地1b−6−3を低位レイヤのパケット7−3の宛先ノード番地7−3−1に書き込み、そのノード番地向けにパケットを送信する。セグメント部は次のルータが更に先のルータにデータを転送する場合もあるので、データと合わせて送信される事となる。ルータに到着したパケットが自ノードの属するセグメント宛でありかつ自ノード宛以外の場合は、ノード内バス1b−4を流れるメモリ番地のセグメント部5b−1−1即ち6−2−1−1が自セグメントを示すので、ノード番地変換手段1b−6がメモリ番地部6−3−1−2に書き込まれている分散共有メモリ番地の分散共有メモリ領域に書き込む。
【0053】
この領域は、自ノード宛の領域ではなく、自セグメント内の他のノードと対応する分散共有メモリ領域であるので、ノード内バス1b−4にデータ6−2−2とメモリ番地6−2−1−2が流れると、ノード番地変換手段1b−6や転送制御装置1b−5は送信動作をすることになる。よって、通常の同一セグメント内のノード間のデータ転送と同様の手順に沿って送信される事となる。尚、ルータは転送先のセグメントの数が単数即ち一方向である必要はなく、複数の転送先のルータに対して受信したデータを送信するようにしても良い。
【0054】
図4は、本発明の実施形態によるノード間データ転送制御システムを他のプロトコルに適用した一例である。以下、前述の実施例と同様の構成である時には、適宜説明を省略する。図4は、セグメント8−1、8−2と、セグメント8−1、8−2間を接続するルータ1xとから構成されていて、セグメント8−1内にはノード1a、1bが、セグメント8−2内にはノード1dがそれぞれ接続されている。セグメント8−1内の各ノードは同一セグメント内のノードに対応する分散共有エリアのみを保持している。ノード番地変換手段1a−6は、分散共有メモリ番地1a−6−2とノード番号1a−6−3とが対応付けられて記憶されている。
【0055】
ノード内バス1a−4を流れるデータ4a−1には、データ部4a−1−3と番地部4a−1−2とを含んでいる。また番地部4a−1−2には、分散共有メモリ番地1a−6−2の記載部分であるメモリ番号4a−1−2−1と、セグメントの記載部分であるセグメント番号4a−1−2−2とを含んでいる。
【0056】
また、ノード内バス1a−4の番地部を流れるデータは、分散共有メモリ番地1a−6−2の記載部分のみであり、セグメントが記載されている部分については、ノード内バス1a−4のデータ部を流れる。同一セグメント内へ送信する場合はアプリケーションプログラム1a−1或いはOSから流されるデータのセグメント番号4a−1−2−2は空き状態であり、0の状態であるが、セグメント外に送られる場合は宛先のセグメント番号が書き込まれる。
【0057】
いずれの場合にも分散共有メモリの同じメモリ番地に書き込まれることになるが、書き込まれたデータには前者ではセグメント番号に0が、後者ではセグメント番号が入っている。転送制御装置1a−5は、ノード番地変換手段1a−6から得たノード番号1a−6−3に加えセグメント番号4a−1−2−2を転送先ノードの識別子として読み取る。この時、セグメント番号が書き込まれている場合は、転送制御装置1a−5がルータ1xに転送する。
【0058】
ルータ1xはノード番地1a−6−3が自番地であれば受信処理を行うが、そうでない場合は、セグメント番号4a−1−2−2がセグメント8−2のものであればセグメント8−2内のノード番地1a−6−3に対して転送し、セグメント番号4a−1−2−2がセグメント8−2になければ上位の中継装置に転送する。なお、上記の説明の内の中継装置が3個以上のセグメントに接続されている場合についても同様の処理を行う。
【0059】
図5は、本実施形態によるノード間データ転送制御システムの処理内容の一例を示す処理フローである。ステップS1ではアプリケーション或いはOSが送信データを生成する。ステップS2では、ノード番地対応手段1a−6がデータ部内に含まれるセグメントを示す識別子が0であるかどうかを判定する。0である場合はステップS3へと進み、0でない場合はステップS4へと進む。ステップS3では、ノード番地対応手段1a−6が送信データのメモリ番地を宛先ノード番地に変換して、ステップS5へと進む。
【0060】
ステップS4では、ノード番地対応手段1a−6が送信データのセグメント識別子を中継装置のノード番地に変換する。ステップS5では、転送制御装置1a−5が送信データのメモリ番地を送信フレームの番地部に書き込む。ステップS6では、転送制御装置1a−5がセグメント識別子を送信フレームの番地部のセグメントを示す部分に書き込む。ステップS7では、転送制御装置1a−5が送信データのデータ部を送信フレームのデータ部に書き込む。ステップS8では、転送制御装置1a−5が送信フレームを宛先ノードに向けて送信する。
【0061】
なお、ステップS2では、ノード番地対応手段1a−6の代わりに転送制御装置1a−5やその他のハードウェアあるいはOS、その他のソフトウェアが行うようにしても良い。また、各ステップを実行する装置及びブロックは、対象とするシステムにより異なっていても良い。
【0062】
なお、本発明の実施形態によるノード間データ転送制御システム内の各装置及び各ブロックはコンピュータとプログラムとによって構成することでも実現可能であり、プログラムを記憶媒体に記憶する、又はネットワークを通して提供することも可能である。
【0063】
なお、本発明では、ノード集団の識別子を用いることで複数のノード集団同士でメモリ番号とノード番地の対応が重複しても、ノードを一意に識別する事を可能とするが、中継装置が介在する場合は、中継装置による区分をノード集団の識別子と対応付けることで、中継装置を介在しなければノード集団の識別子は必ず同一であり、中継装置を介在するとノード終端の識別子が異なる場合がある、ように定めてもよい。
【0064】
尚、ノードと記述した装置は、コンピュータ、サーバ、ルータ、センサ(ノード)、駆動装置、制御装置などで通信機能を有する装置であれば制限はない。また、宛先や送り元をノードと記載しているが、通常は送受信対象のデータをリードライトするのはノード内のプロセスであり、即ち、本発明ではメモリ番地にノード番地を対応付けるとの記載をしているが、メモリ番地にプロセスの番地を対応付けても良い。その場合、あるメモリ番地にデータが書き込まれたら、メモリ番地に対応するプロセスが存在するノードのノード識別子がノード番地変換手段から出力され、データが該ノードへ送信され同一番地(仮想的でも構わない)に書き込まれる、との処理であっても良い。このように、送信元受信先をノードと記載していてもノードをプロセスに置き換えて処理を行う場合も、本発明は対象とする。メモリ配置は、物理的でなくてもよく、仮想メモリを用いて本発明を実施しても構わない。本発明によるメモリ構成は、ネットワーク接続前に通信機能を初期化する段階で予め行ってもよく、すでに通信を行っている状況でメモリを再構成しても構わない。ノードの関係は、便宜上リング状のように表記しているが、バス状やスター上など、実際の物理的な接続状態はどのような形態であっても構わない。
【図面の簡単な説明】
【0065】
【図1】本実施形態によるノード間データ転送制御システムの全体構成を示すブロック図である。
【図2】本実施形態によるノード間データ転送制御システムでのノード1aからノード1bに送信する時の処理を示す説明図である。
【図3】本発明の実施形態によるノード間データ転送制御システムを実装したルータ1xを使用する場合の処理の一例を示す説明図である。
【図4】本発明の実施形態によるノード間データ転送制御システムを他のプロトコルに適用した一例である。
【図5】本実施形態によるノード間データ転送制御システムの処理内容の一例を示す処理フローである。
【符号の説明】
【0066】
1a〜1e…ノード、 2a、2b…ノード間通信路、 1x…ルータ、 1a−1、1b−1…アプリケーションプログラム、 1a−2、1b−2…演算装置、 1a−3、1b−3…ローカルメモリ、 1a−4、1b−4…ノード内バス、 1a−5、1b−5…転送制御装置、 1a−6、1b−6…ノード番地対応手段、 8−1、8−2…セグメント

【特許請求の範囲】
【請求項1】
複数のノードが接続されたセグメントと、該セグメント間を接続する中継装置とから構成されたネットワークについて、
ノード内のデータ処理の制御を行う演算手段と、
前記演算手段によって読み書き可能であって、複数のノードでメモリ番地が仮想的あるいは物理的に同様に参照される分散共有メモリと、
メモリ番地が入力されると、メモリ番地が示す前記分散共有メモリの領域と対応付けられたノード番地を出力するノード番地対応手段と、
前記分散共有メモリに書き込まれるデータと、該データが書き込まれるメモリ番地とを取得し、宛先のノードに送信する送信手段と、
ネットワークから受信データを受信し、該受信データからメモリ番地とデータを抽出し、該メモリ番地の分散共有メモリに該データを書き込む受信手段と、
を備えるノード間データ転送制御装置を具備するノード間データ転送制御システムであり、
前記中継装置を介して別セグメントに接続されたノード宛へのデータ送信時に、データが前記中継装置を通過する際には、メモリ番地とノード番地との対応関係を維持することを特徴とするノード間データ転送制御システム。
【請求項2】
前記送信手段は、同一セグメントのノード宛へのデータ送信時には、前記分散共有メモリの領域と対応付けられたノード番地を有するノードへデータを送信し、前記中継装置を介して別セグメントのノード宛へのデータ送信時には、メモリ番地に宛先のノードの属するセグメントを識別する識別子を付加して送信することを特徴とする請求項1に記載のノード間データ転送制御システム。
【請求項3】
複数のノードが接続されたセグメントと、該セグメント間を接続する中継装置とから構成されたネットワークについて、
ノード内のデータ処理の制御を行う演算手段と、
前記演算手段によって読み書き可能であって、複数のノードでメモリ番地が仮想的あるいは物理的に同様に参照される分散共有メモリと、
メモリ番地が入力されると、メモリ番地が示す前記分散共有メモリの領域と対応付けられたノード番地を出力するノード番地対応手段と、
前記分散共有メモリに書き込まれるデータと、該データが書き込まれるメモリ番地とを取得し、宛先のノードに送信する送信手段と、
ネットワークから受信データを受信し、該受信データからメモリ番地とデータを抽出し、該メモリ番地の分散共有メモリに該データを書き込む受信手段と、
を具備することを特徴とするノード間データ転送制御装置。
【請求項4】
前記送信手段は、同一セグメントのノード宛へのデータ送信時には、前記分散共有メモリの領域と対応付けられたノード番地を有するノードへデータを送信し、前記中継装置を介して別セグメントのノード宛へのデータ送信時には、メモリ番地に宛先のノードの属する該セグメントを識別する識別子を付加して送信することを特徴とする請求項3に記載のノード間データ転送制御装置。
【請求項5】
複数のノードが接続されたセグメントと、該セグメント間を接続する中継装置とから構成されたネットワークについて、
メモリ番地が入力されると、前記メモリ番地が示す前記分散共有メモリの領域と対応付けられたノード番地を出力するノード番地対応ステップと、
前記分散共有メモリに書き込まれるデータと前記メモリ番地とを取得し、同一セグメントのノード宛へのデータ送信時には、前記分散共有メモリの領域と対応付けられたノード番地を有するノードへデータを送信し、中継装置を介して別セグメントのノード宛へのデータ送信時には、メモリ番地に宛先のノードの属する該セグメントを識別する識別子を付加して送信する送信ステップと、
ネットワークから受信データを受信し、該受信データからメモリ番地とデータを抽出し、該メモリ番地の分散共有メモリに該データを書き込む受信ステップと、
をコンピュータに実行させるためのコンピュータプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2007−286754(P2007−286754A)
【公開日】平成19年11月1日(2007.11.1)
【国際特許分類】
【出願番号】特願2006−111207(P2006−111207)
【出願日】平成18年4月13日(2006.4.13)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】