(57)【要約】【課題】  オーバヘッドが少なく、送信データ発生と並行した高速な通信が可能なノード間データ転送制御装置を提供する。【解決手段】  分散共有メモリ１ａ−３−２領域は、ノード間通信路２に接続された全てのノード１ａ、１ｂでメモリ番地が同一である。ノード番地対応手段１ａ−６は、メモリ番地を入力されると、該メモリ番地を含むデータバッファ１ａ−３−２ａ〜ｎと対応づけられたノード番地を出力する。転送制御手段１ａ−５は、データバッファ１ａ−３−２ａ〜ｎに書込まれるデータと、該データが書込まれるメモリ番地とを取得し、該メモリ番地をノード番地対応手段１ａ−６に問い合わせてノード番地を取得し、前述のデータとメモリ番地を併せて、取得したノード番地に送信する。また、転送制御手段１ａ−５は、データを受信すると、該データからメモリ番地と受信データを抽出し、該メモリ番地の分散共有メモリ領域１ａ−３−２に、該受信データを書込む。【選択図】    図１
2007004312.tif 000002
【特許請求の範囲】
【請求項１】
演算装置を具備し、ネットワークに接続されたノード内に設けられ、他ノードとの間のデータ転送を制御するノード間データ転送制御装置において、
前記演算装置によって書き込み／読み出しが行われるメモリであって、ネットワークに接続された全てのノード間データ転送制御装置でメモリ番地が同一である分散共有メモリと、
メモリ番地を入力されると、該メモリ番地が含まれる前記分散共有メモリの領域と対応づけられたノード番地を出力するノード番地対応手段と、
前記分散共有メモリに書込まれるデータと、該データが書込まれるメモリ番地とを取得し、該メモリ番地を前記ノード番地対応手段に問い合わせてノード番地を取得し、前記データと前記メモリ番地を併せて、前記ノード番地に送信する送信手段と、
前記ネットワークから、データを受信し、該データからメモリ番地と受信データを抽出し、該メモリ番地の分散共有メモリに、該受信データを書込む受信手段と
を備えることを特徴とするノード間データ転送制御装置。
【請求項２】
前記送信手段は、各送信において共通の部分はあらかじめ書き込まれており、送信の際には送信ごとに異なる情報のみを書き込んでから送信するバッファを備えることを特徴とする請求項１に記載のノード間データ転送制御装置。
【請求項３】
前記送信手段は、前記メモリ番地を仮想メモリ番地に変換してから、前記送信データと該仮想メモリ番地を併せて送信し、
前記受信手段は、前記データから抽出した仮想メモリ番地を実メモリ番地に変換し、該実メモリ番地の前記分散共有メモリにデータを書き込むこと
を特徴とする請求項１または請求項２に記載のノード間データ転送制御装置。
【請求項４】
前記送信手段は、１番目の送信データはメモリ番地と併せて送信し、２番目以降の送信データにはメモリ番地は付与せずに送信し、
前記受信手段は、２番目以降の受信データについては、１番目の受信データに付与されたメモリ番地と各受信データのデータ長からメモリ番地を導出し、該メモリ番地の分散共有メモリに、前記受信データを書込むこと
を特徴とする請求項１から３のいずれかの項に記載のノード間データ転送制御装置。
【請求項５】
前記送信手段は、メモリ番地を前記ノード番地対応手段に問い合わせて取得したノード番地が、自ノード間データ転送制御装置のノード番地であった場合、前記送信データと前記メモリ番地を送信しないことを特徴とする請求項１から４のいずれかの項に記載のノード間データ転送制御装置。
【請求項６】
前記ノード番地対応手段は、現用と予備用の２つ以上の各ノード番地と前記分散共有メモリの領域との対応付けを有し、該対応付けを変更する際は、前記ネットワークに接続された全てのノード間データ転送制御装置で一斉に、現用と予備用とを切替えることを特徴とする請求項１から５のいずれかの項に記載のノード間データ転送制御装置。
【請求項７】
前記ノード番地対応手段は、入力されたメモリ番地が、ある特定の前記分散共有メモリの領域に含まれる場合は、前記ネットワークに接続された全てのノード間データ転送制御装置で、互いに異なるノード番地を出力することを特徴とする請求項１から６のいずれかの項に記載のノード間データ転送制御装置。
【請求項８】
前記ネットワークに新たにノード間データ転送制御装置が接続された場合は、従来対応付けられていなかった前記分散共有メモリの領域を新たなノード間データ転送制御装置のノード番地に対応づけ、
前記ネットワークに接続されたノード間データ転送制御装置が接続を解除された場合は、該ノード間データ転送制御装置のノード番地と前記分散共有メモリの領域との対応を解除するノード番地対応変更手段を備えること
を特徴とする請求項１から７のいずれかの項に記載のノード間データ転送制御装置。
【請求項９】
前記ネットワークに新たにノード間データ転送制御装置を接続する場合には、
新たに接続するノード間データ転送制御装置が、前記ネットワークに接続された全てのノード間データ転送制御装置に、前記新たに接続するノード間データ転送制御装置のノード番地と前記分散共有メモリの領域との対応追加を通知し、
前記ノード間データ転送制御装置の前記ネットワークとの接続を解除する場合には、
接続を解除するノード間データ転送制御装置が、前記ネットワークに接続された全てのノード間データ転送制御装置に、前記接続を解除するノード間データ転送制御装置のノード番地と前記分散共有メモリの領域との対応解除を通知し、
前記ノード番地対応変更手段は、前記通知を受けて、各ノード番地と前記分散共有メモリの各領域との対応付けを変更すること
を特徴とする請求項８に記載のノード間データ転送装置。
【請求項１０】
前記ネットワークに新たにノード間データ転送制御装置を接続する場合、または、前記ノード間データ転送制御装置の前記ネットワークとの接続を解除する場合には、
新たに接続するノード間データ転送制御装置または接続を解除するノード間データ転送制御装置が、特定のノード間データ転送制御装置に接続して前記分散共有メモリの各領域とノード番地との対応付けの更新を通知し、
該特定のノード間データ転送制御装置が、前記ネットワークに接続された、その他のノード間データ転送制御装置に前記更新を通知し、
各ノード間データ転送制御装置の前記ノード番地対応変更手段は、前記通知を受けて、各ノード間データ転送制御装置のノード番地と前記分散共有メモリの各領域との対応付けを変更すること
を特徴とする請求項８に記載のノード間データ転送制御装置。
【請求項１１】
前記特定のノード間データ転送制御装置が通知に失敗した前記ノード間データ転送制御装置へは、前記特定のノード間データ転送制御装置から通知を受けた前記ノード間データ転送制御装置が通知を行うことを特徴とする請求項１０に記載のノード間データ転送制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークに接続されたノード間或いはノード内で、効率のよいデータ転送を行うノード間データ転送制御装置に関する。
【背景技術】
【０００２】
従来、ネットワークで接続されたノード間の通信とその制御方法においては、送信の場合、アプリケーションプログラムにより生成されるプロセスからネットワーク内の送信先の番地としてソケットを指定し、送信データを、カーネル或いはＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）及びＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）のデータ構造を生成するプログラム、さらにイーサネット（登録商標）等のフレームを生成するデータリンク層のプログラムに渡し、相手ノードのノード番地或いは中継ノードのノード番地を指定して、各層において付加情報を加え、伝送媒体制御装置の駆動プログラムにより網に送出される。また、受信の場合、伝送媒体制御装置が受け取ったフレーム内のノード番地が自番地であるとデータリンク層のプログラム、さらにＩＰとＴＣＰのプログラムによりそれぞれ該当層の付加情報を取り外し、アプリケーションプログラムに割り当てられたメモリ位置に送る。従来は、ノード増減を容易にするには分散共有メモリをソフトウェアで実行する場合もあり、例えば図１５の従来のデータ転送順序を実現するプロトコル或いはプログラム構成のようにノードはプログラムにより実行される各層毎にデータを受け渡すため（非特許文献１）、夫々の層が夫々の層向けの所定フレームを生成して上下層とのデータ受け渡しを行い、各層毎に番地及び付加情報を加えて送信を行い、各層毎に番地や付加情報を取り外して受信アプリケーションプログラム読み取り可能なメモリ位置に書込みを行っている。さらに、各ノードの初期化の際に設定されているノード以外に新たなノードを追加したりノードが離脱したりする際は、新たなノード或いは離脱するノードの情報及び各ノードにおける通信相手ノードの情報集を手動で更新する必要があったり、ある特定のノードが追加される或いは離脱するノードの状態を収集しノード番地割り当て機能を有しており、該特定ノードが追加或いは離脱ノードの状態を収集し追加或いは離脱ノードへ番地を割り当てる処理を行い、全てのノードに該前記ノード情報の更新内容のブロードキャストを行う必要があったり、或いは、追加或いは離脱対象のノード自身から全てのノードに該前記ノード情報の更新内容のブロードキャストを行う必要があった。
【非特許文献１】小野  文豊、福田  晃、分散環境上の並列処理支援システムＤＹＡＭＯＮＤＳの設計、“情報処理学会研究報告”、１９９４年１２月、Ｖｏｌ．９４、Ｎｏ．１０６（ＯＳ−６７）、ｐ．９７−１０３
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ところが、このようなノード間の通信と制御方法においては、以下のような欠点がある。
（１）アプリケーションプログラムの送信要求によりカーネル或いはＴＣＰ及びＩＰ層に相当するライブラリ等で構成されるプログラムが起動しそれぞれの層において必要なフレーム構造が順次生成され付加情報を加え、送信データに前述の処理を行うため各層或いはプログラム毎にデータを一時蓄積するため、オーバヘッドが多大になりリアルタイム通信に不可欠な高速性が得られない。
（２）一つの送信データが送信可能な構造に作成されるまで、送信が行われないため、高速性が得られない。受信側も同様である。
（３）通信を行うノードの集団に新たなノードが加わる或いは集団から離脱するためには、集団内の各ノード或いは中継ノードが経路表を保持しており、少なくとも網階層が同じであるノード全てにおいて該経路表を書き換える処理を別途有する必要があり、必要機能の増加による複雑さ、他処理の実行の妨げになる。
（４）中継を行うノードが存在するためシステム全体の構造が複雑になりさらに高速性が損なわれる。また、中継ノードを介さないと多数のノード間で通信を行うことができないので、ノードの設定或いは通信手順が増加する。
本発明は、このような事情に鑑みてなされたもので、その目的は、オーバヘッドが少なく、送信データ発生と並行した高速な通信が可能で、各ノードの保持する経路表の書換え処理および通信手順の簡便なノード間データ転送制御装置を提供することにある。
【課題を解決するための手段】
【０００４】
この発明は上述した課題を解決するためになされたもので、請求項１に記載の発明は、演算装置を具備し、ネットワークに接続されたノード内に設けられ、他ノードとの間のデータ転送を制御するノード間データ転送制御装置において、前記演算装置によって書き込み／読み出しが行われるメモリであって、ネットワークに接続された全てのノード間データ転送制御装置でメモリ番地が同一である分散共有メモリと、メモリ番地を入力されると、該メモリ番地が含まれる前記分散共有メモリの領域と対応づけられたノード番地を出力するノード番地対応手段と、前記分散共有メモリに書込まれるデータと、該データが書込まれるメモリ番地とを取得し、該メモリ番地を前記ノード番地対応手段に問い合わせてノード番地を取得し、前記データと前記メモリ番地を併せて、前記ノード番地に送信する送信手段と、前記ネットワークから、データを受信し、該データからメモリ番地と受信データを抽出し、該メモリ番地の分散共有メモリに、該受信データを書込む受信手段とを備えることを特徴とするノード間データ転送制御装置である。
【０００５】
また、請求項２に記載の発明は、請求項１に記載のノード間データ転送制御装置であって、前記送信手段は、各送信において共通の部分はあらかじめ書き込まれており、送信の際には送信ごとに異なる情報のみを書き込んでから送信するバッファを備えることを特徴とする。
【０００６】
また、請求項３に記載の発明は、請求項１または請求項２に記載のノード間データ転送制御装置であって、前記送信手段は、前記メモリ番地を仮想メモリ番地に変換してから、前記送信データと該仮想メモリ番地を併せて送信し、前記受信手段は、前記データから抽出した仮想メモリ番地を実メモリ番地に変換し、該実メモリ番地の前記分散共有メモリにデータを書き込むことを特徴とする。
【０００７】
また、請求項４に記載の発明は、請求項１から３のいずれかの項に記載のノード間データ転送制御装置であって、前記送信手段は、１番目の送信データはメモリ番地と併せて送信し、２番目以降の送信データにはメモリ番地は付与せずに送信し、前記受信手段は、２番目以降の受信データについては、１番目の受信データに付与されたメモリ番地と各受信データのデータ長からメモリ番地を導出し、該メモリ番地の分散共有メモリに、前記受信データを書込むことを特徴とする。
【０００８】
また、請求項５に記載の発明は、請求項１から４のいずれかの項に記載のノード間データ転送制御装置であって、前記送信手段は、メモリ番地を前記ノード番地対応手段に問い合わせて取得したノード番地が、自ノード間データ転送制御装置のノード番地であった場合、前記送信データと前記メモリ番地を送信しないことを特徴とする。
【０００９】
また、請求項６に記載の発明は、請求項１から５のいずれかの項に記載のノード間データ転送制御装置であって、前記ノード番地対応手段は、現用と予備用の２つ以上の各ノード番地と前記分散共有メモリの領域との対応付けを有し、該対応付けを変更する際は、前記ネットワークに接続された全てのノード間データ転送制御装置で一斉に、現用と予備用とを切替えることを特徴とする。
【００１０】
また、請求項７に記載の発明は、請求項１から６のいずれかの項に記載のノード間データ転送制御装置であって、前記ノード番地対応手段は、入力されたメモリ番地が、ある特定の前記分散共有メモリの領域に含まれる場合は、前記ネットワークに接続された全てのノード間データ転送制御装置で、互いに異なるノード番地を出力することを特徴とする。
【００１１】
また、請求項８に記載の発明は、請求項１から７のいずれかの項に記載のノード間データ転送制御装置であって、前記ネットワークに新たにノード間データ転送制御装置が接続された場合は、従来対応付けられていなかった前記分散共有メモリの領域を新たなノード間データ転送制御装置のノード番地に対応づけ、前記ネットワークに接続されたノード間データ転送制御装置が接続を解除された場合は、該ノード間データ転送制御装置のノード番地と前記分散共有メモリの領域との対応を解除するノード番地対応変更手段を備えることを特徴とする。
【００１２】
また、請求項９に記載の発明は、請求項８に記載のノード間データ転送装置であって、前記ネットワークに新たにノード間データ転送制御装置を接続する場合には、新たに接続するノード間データ転送制御装置が、前記ネットワークに接続された全てのノード間データ転送制御装置に、前記新たに接続するノード間データ転送制御装置のノード番地と前記分散共有メモリの領域との対応追加を通知し、前記ノード間データ転送制御装置の前記ネットワークとの接続を解除する場合には、接続を解除するノード間データ転送制御装置が、前記ネットワークに接続された全てのノード間データ転送制御装置に、前記接続を解除するノード間データ転送制御装置のノード番地と前記分散共有メモリの領域との対応解除を通知し、前記ノード番地対応変更手段は、前記通知を受けて、各ノード番地と前記分散共有メモリの各領域との対応付けを変更することを特徴とする。
【００１３】
また、請求項１０に記載の発明は、請求項８に記載のノード間データ転送制御装置であって、前記ネットワークに新たにノード間データ転送制御装置を接続する場合、または、前記ノード間データ転送制御装置の前記ネットワークとの接続を解除する場合には、新たに接続するノード間データ転送制御装置または接続を解除するノード間データ転送制御装置が、特定のノード間データ転送制御装置に接続して前記分散共有メモリの各領域と各ノード間データ転送制御装置のノード番地との対応付けの更新を通知し、特定のノード間データ転送制御装置が、前記ネットワークに接続された、その他のノード間データ転送制御装置に前記更新を通知し、各ノード間データ転送制御装置の前記ノード番地対応変更手段は、前記通知を受けて、各ノード間データ転送制御装置のノード番地と前記分散共有メモリの各領域との対応付けを変更することを特徴とする。
【００１４】
また、請求項１１に記載の発明は、請求項１０に記載のノード間データ転送制御装置であって、前記特定のノード間データ転送制御装置が通知に失敗した前記ノード間データ転送制御装置へは、前記特定のノード間データ転送制御装置から通知を受けた前記ノード間データ転送制御装置が通知を行うことを特徴とする。
【発明の効果】
【００１５】
この発明によれば、データ転送を行う場合に、ノード間で共通の情報を有するノード番地対応手段と、ノード間に分散して配置される分散共有メモリとを用いてデータの受け渡しを行うことにより、プログラム、ライブラリ類における送受信処理の負荷を軽減する。また、分散共有メモリを介して、演算装置と送信手段、受信手段が並行して動作することにより、アプリケーションプログラムからの送信対象データ発生と並行して相手ノード或いは自ノードに送信し、データ受信と並行して受信側アプリケーションプログラムがデータを読み取れるようにして高速通信を行うことが可能である。また、ノードの追加や離脱を経路表類の特別な機能無しで簡易かつ自動で行い、中継のための特別な網構造を省き、従来システムの中継ノードを介しても容易に通信を行えるような簡易な通信システム構造が可能である。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の実施の形態について、図面を参照して説明する。図１から図３は、本実施形態を用いて構成されるシステムのブロック図である。１ａ及び１ｂは、ユビキタスコンピューティング環境をはじめとする複数のノードが存在する環境下で特に情報処理や計算機能（以下演算機能と呼称）ならびに他ノードとの通信機能を有するノードで構成されるシステム（以下、ユビキタスノードシステムと呼称する）内のノードである。１ａ−２は、ノード１ａの演算装置、１ａ−３は演算装置１ａ−２とノード内バス１ａ−４を介して結合され演算装置１ａ−２がアクセス可能なローカルメモリである。１ａ−３−１は該ノード１ａが占有して用いる専用領域、１ａ−３−２は該ユビキタスノードシステムの全て或いはシステム生成の際に定められる特定のノード間（以下特に断らない限り特定のノードの集合も含めて全ノードで代表する）で共通するように番地が確保されている分散共有メモリ領域である。１ａ−３−２ａ〜１ａ−３−２ｎは分散共有メモリ領域１ａ−３−２内を細分して確保されるデータバッファであり、特にこの内で特定のデータバッファは送信用に用いられ、他の特定のバッファは受信用に用いられる。例えば、ノード１ａでは、データバッファ１ａ−３−２ａは受信用とノード内通信用に、データバッファ１ａ−３−２ｂはノード１ｂへの送信用に用いられる。この場合、ノード１ｂでは、データバッファ１ａ−３−２ａと同じメモリ番地に配置されるデータバッファ１ｂ−３−２ａはノード１ａへの送信用に、データバッファ１ａ−３−２ｂと同じメモリ番地に配置されるデータバッファ１ｂ−３−２ｂは受信用とノード内通信用に用いられる。
【００１７】
１ａ−５はノード間でノード間通信路２を介してデータを転送する転送制御装置である。１ａ−５−１は、転送フレーム生成用のバッファであり、該バッファ１ａ−５−１を構成する１ａ−５−１−１ａ〜１ａ−５−１−１ｎは、各々が、ノード間通信路２の転送単位である１フレームを構成するバッファ内データ転送単位である。バッファ内データ転送単位１ａ−５−１−１ａは、ヘッダなどのバッファ内付加情報部１ａ−５−１−１ａ−１〜１ａ−５−１−１ａ−ｎおよびバッファ内データ部１ａ−５−１−１ａ−１ｘからなる。１ａ−５−２は、データの発生源或いはデータの受取先であるプログラム１ａ−１ａ〜１ａ−１ｎの命令により分散共有メモリ領域１ａ−３−２にデータが書き込まれた際に書き込まれた位置が含まれるデータバッファのメモリ番地を、ノード番地対応手段１ａ−６を参照して、ノード間通信路２にてノードの識別に用いられるノード番地に変換し、分散共有メモリ領域１ａ−３−２に書き込まれたデータをノード間通信手段１ａ−５−３或いはノード間通信路２が用いるデータ転送単位の構造に修正してノード番地とともにノード間通信手段１ａ−５−３に送るメモリ書込み装置である。ノード間通信手段１ａ−５−３はノード内及びノード間のメモリ書込み装置１ａ−５−２から受け取るデータ転送単位をノード間通信路２に送出するノード間のデータ転送を下位のプロトコル階層で実行する機能である。
【００１８】
ノード番地対応手段１ａ−６は、システム生成時に設定された分散共有メモリ領域１ａ−３−２内の個々のデータバッファを代表するメモリ番地とノード間通信路２内でユビキタスノードシステム内の各ノードを識別するノード番地の関連付けに基づきメモリ番地とノード番地の変換を行う。ノード番地対応手段１ａ−６内の関連付けは、分散共有メモリ領域１ａ−３−２の特定データバッファ１ａ−３−２ｘに、ノード番地対応関係１ａ−６−１として、分散共有メモリ番地１ａ−６−２とそれに対応するノード番地１ａ−６−３が書き込まれた状態で保持されている。特定データバッファ１ａ−３−２ｘには、さらに特定ノード番地対応関係１ａ−６−ｘがあり、これを構成する１ａ−６−２−ｘは、特定データバッファ１ａ−３−２ｘのメモリ番地が書込まれる特定分散共有メモリ番地であり、１ａ−６−３−ｘは、特定データバッファ１ａ−３−２ｘが変更された場合の送信先となるノードのノード番地が書込まれている特定ノード番地である。特定ノード番地１ａ−６−３−ｘは、ノードによって異なる値をとるように設定されており、この領域が変更されても、メモリ書込み装置１ａ−５−２は、他ノードへの送信を行わない。ノード１ａおよびノード１ｂの特定ノード番地１ａ−６−３−ｘと１ｂ−６−３−ｘには、それぞれ（１）（２）のノード番地が設定されている。
１ａ−６−３−ｘ：ノード１ｂ・・・（１）
１ｂ−６−３−ｘ：ノード１ａ・・・（２）
また、分散共有メモリ番地１ａ−６−２は、格納するメモリ番地毎に、書込み禁止と解除が設定できるように構成されており、自ノードで更新した後は書込み禁止に設定し、以降最初に該番地に書込み要求があった場合、該書込み要求を破棄した上で書込み禁止を解除する。
また、ノード１ｂおよび図６、図１４のノード１ｃ、１ｄもノード１ａと同様の構成を備えており、ノード１ｂ〜１ｄの各構成要素の符号については、ノード１ａにおける構成要素の符号の頭にある１ａを１ｂ〜１ｄに変えることで、その符号とする。
【００１９】
次に、本実施形態の動作を説明する。動作ケースとして、動作ケース１：ノード間でのデータ送受信と、動作ケース２：新規ノード追加の２ケースを説明する。
最初に、ケース１として、ノード１ａにて動作しており、ノード１ｂへのデータ送信を行うアプリケーション１ａ−１ａから、ノード１ｂにて動作しており、ノード１ａからのデータ受信を行うアプリケーション１ｂ−１ａへのデータ送受信の動作を図４および図５のフローチャートを用いて説明する。まず、ユーザ指示により、アプリケーション１ａ−１ａを演算装置１ａ−２が実行開始する。演算装置１ａ−２は、アプリケーション１ａ−１ａの記述に従って、特定データバッファ１ａ−３−２ｘを参照し、ノード１ｂのノード番地に一致するノード番地１ａ−６−３を検索し、該ノード番地１ａ−６−３に対応する分散共有メモリ番地１ａ−６−２を取得する（Ｓａ１）。ここでは、該分散共有メモリ番地１ａ−６−２には、分散共有メモリ領域１ａ−３−２ｂのメモリ番地が記載されているとする。次に、演算装置１ａ−２は、送信するデータを、ノード内バス１ａ−４を介して、分散共有メモリ領域１ａ−３−２ｂに書込む（Ｓａ２）。
【００２０】
分散共有メモリ領域１ａ−３−２ｂに書き込まれるためノード内バス１ａ−４を流れるデータを自動的に転送制御装置１ａ−５のメモリ書込み装置１ａ−５−２が取り込み、バッファ内データ部１ａ−５−１−１ａ−１ｘに、ノード内バス１ａ−４にて該データのメモリ番地として指定されていた値と併せて書込む（Ｓａ３）。さらに、メモリ書込み装置１ａ−５−２は、前述のノード内バス１ａ−４にて指定されていたメモリ番地（分散共有メモリ領域１ａ−３−２ｂ）を、ノード番地対応手段１ａ−６に出力して送信先のノード番地を問い合わせる（Ｓａ４）。ノード番地対応手段１ａ−６は、メモリ書込み装置１ａ−５−２からメモリ番地を受けると、分散共有メモリ番地１ａ−６−２から該メモリ番地を含む分散共有メモリ領域の分散共有メモリ番地１ａ−６−２を探し出し、該分散共有メモリ番地１ａ−６−２と対応するノード番地１ａ−６−３を取得する。この操作は、前述の演算装置１ａ−２がノード１ｂのノード番地から分散共有メモリ領域１ａ−３−２ｂのメモリ番地を得たのと逆の操作であるため、取得されるノード番地１ａ−６−３はノード１ｂのノード番地となる。ノード番地対応手段１ａ−６は、このノード番地１ｂをメモリ書込み装置１ａ−５−２に返す（Ｓａ５）。メモリ書込み装置１ａ−５−２は、ノード１ｂのノード番地を受けると、バッファ内付加情報部１ａ−５−１−１ａ−ａ〜１ａ−５−１−１ａ−ｎの該フレームの宛先として記述箇所に書込むとともに、データ長やチェックサムなどバッファ内データ部１ａ−５−１−１ａ−１ｘに依存する情報を該当箇所に書込む（Ｓａ６）。次に、メモリ書込み装置１ａ−５−２は、フレーム単位１ａ−５−１−１ａの送信をノード間通信手段１ａ−５−３に指示する（Ｓａ７）。ノード間通信手段１ａ−５−３は、該指示を受けると、フレーム単位１ａ−５−１−１ａを、ノード間通信路２に送信する（Ｓａ８）。
【００２１】
ノード間通信路２は、フレーム単位１ａ−５−１−１ａを受けると、そのヘッダを参照すると宛先がノード１ｂのノード番地となっているので、ノード１ｂに該フレーム単位１ａ−５−１−１ａを配送する。ノード１ｂのノード間通信手段１ｂ−５−３は、ノード間通信路２からフレーム単位１ａ−５−１−１ａを受けると、バッファ内データ部１ａ−５−１−１ａ−１ｘを抽出して、メモリ書込み装置１ｂ−５−２に出力する（Ｓｂ１）。メモリ書込み装置１ｂ−５−２は、バッファ内データ部１ａ−５−１−１ａ−１ｘを受けると、その先頭の値をメモリ番地（ここでは、分散共有メモリ領域１ａ−３−２ｂのメモリ番地）、以降を受信データとして抽出する。抽出した受信データは、ノード内バス１ｂ−４を介して、抽出したメモリ番地の分散共有メモリ領域１ｂ−３−２ｂに書込む（Ｓｂ２）。ノード１ｂの演算装置１ｂ−２は、アプリケーション１ｂ−１ａの記述に従い、定期的に分散共有メモリ領域１ｂ−３−２ｂを監視しており、前述の受信データの書き込みを検出して、該受信データを読み出す（Ｓｂ３）。
【００２２】
上記では、異なるノード間でのデータ送受信の動作について説明したが、アプリケーション１ａ−１ａが、アプリケーション１ａ−１ｂにデータを送信するなど、ノード１ａ内にて、データの転送を行う場合について概要を説明する。まず、演算装置１ａ−２は、特定データバッファ１ａ−３−２ｘを参照し、ノード１ａのノード番地に一致するノード番地１ａ−６−３を検索し、該ノード番地１ａ−６−３に対応する分散共有メモリ番地１ａ−６−２を取得する。ここでは、該当するメモリ番地は分散共有メモリ領域１ａ−３−２ａとなる。演算装置１ａ−２は、ノード内バス１ａ−４を介して、送信データを分散共有メモリ領域１ａ−３−２ａに書込む。メモリ書込み装置１ａ−５−２は、これを自動的に取得して、該送信データの書込みメモリ番地をノード番地対応手段１ａ−６に問い合わせるが、その結果は自身であるノード１ａのノード番地となる。この場合、メモリ書込み装置１ａ−５−２は、何もしない。一方、演算装置１ａ−２では、別のアプリケーション、例えばアプリケーション１ａ−１ｂの記述に従い、分散共有メモリ領域１ａ−３−２ａから該データを読み出す。
【００２３】
なお、本実施形態において、バッファ内データ部１ａ−５−１−１ａ−１ｘの先頭には、送信データのメモリ番地として、分散共有メモリ領域１ａ−３−２ｂのメモリ番地を直接書込むように説明したが、ノード毎に分散共有メモリ領域を配置する実メモリ番地が異なっており、バッファ内データ部１ａ−５−１−１ａ−１ｘの先頭には全ノードで共通の値となっている仮想メモリ番地をメモリ書込み装置１ａ−５−２にて実メモリ番地から変換して生成し、格納するようにしてもよい。この場合、受信したノード１ｂでは、メモリ書込み装置１ｂ−５−２にて、仮想メモリ番地を変換して、実メモリ番地として分散共有メモリ領域１ｂ−３−２ｂのメモリ番地を得て、分散共有メモリ領域１ｂ−３−２ｂに受信データを書込む。
【００２４】
また、各ノードで実際にメモリを配置するデータバッファは、受信用およびノード内通信用のデータバッファのみとし、送信用のデータバッファは配置しなくてもよい。この場合の動作は、ステップＳａ１０１にて、演算装置１ａ−２は、実際にはメモリが割り当てられていないデータバッファ１ａ−３−２ｂの領域に送信データを書込む動作を行い、ノード内バス１ａ−４を流れるこれらの送信データをメモリ書込み装置１ａ−５−２が取り込むことになるため、その他のステップも含めて、前述の実施形態にて説明した動作と同じとなる。
【００２５】
また、送信データのサイズが大きく、複数のフレームに分けて送信する場合は、バッファ内データ部１ａ−５−１−１ａ−１ｘの先頭には、メモリ番地ではなく、フレーム番号を記述し、先頭のフレームにのみ、フレーム番号に加えてメモリ番地を記述しておいてもよい。この場合、受信したノード１ｂでは、２番目以降のフレームについてはメモリ書込み装置１ｂ−５−２にて、先頭フレームに記述のメモリ番地と各フレームのデータ長に基づき、メモリ番地を算出する。
【００２６】
次に、動作ケース２の新規ノードの追加を説明する。図６は、ノード１ａおよびノード１ｂにて構成されるユビキタスノードシステムに、ノード１ｃを追加する場合のブロック図を示している。また、図７は、ノード１ｃを追加する場合の処理の流れを示すシーケンス図である。図８〜図１３は、図７のシーケンス図における処理Ｐｃ１〜Ｐｃ６の詳細をそれぞれ説明するフローチャートである。
【００２７】
まず、管理者が、ノード１ｃをユビキタスノードシステムに接続し、初期化の指示をすると、ノード１ｃの演算装置１ｃ−２は、特定ノード番地１ｃ−６−３−ｘに、ノード１ｃのノード番地を設定する（Ｓｃ１００）。これにより、特定データバッファ１ｃ−３−２ｘの送信先は自ノードになるため、特定データバッファ１ｃ−３−２ｘを変更しても、その変更は、他ノードに送信されない。次に、演算装置１ｃ−２は、ノード番地対応関係の取得先となるノードのノード番地と、取得コマンドの送信に使用するデータバッファのメモリ番地を入力するように管理者に促す。管理者がノード１ａのノード番地とデータバッファ１ｃ−３−２ａのメモリ番地を入力すると、演算装置１ｃ−２は、データバッファ１ｃ−３−２ａの送信先が、ノード１ａとなるように、ノード番地対応関係１ｃ−６−１に、入力されたデータバッファ１ｃ−３−２ａのメモリ番地と、ノード１ａのノード番地を、それぞれ、分散共有メモリ番地１ｃ−６−２とノード番地１ｃ−６−３に設定する（Ｓｃ１０１）。続いて、演算装置１ｃ−２は、ステップＳｃ１０１にて管理者に指定されて設定したデータバッファ１ｃ−３−２ａに、ノード番地対応関係取得コマンドと、パラメータとして自ノードのノード番地を書込む（Ｓｃ１０２）。メモリ書込み装置１ｃ−５−２は、ノード内バス１ｃ−４に流れる、これらのデータバッファ１ｃ−３−２ａへ書込まれるデータを読み取り、バッファ内データ転送単位１ｃ−５−１−１ａに設定する（Ｓｃ１０３）。さらに、ノード番地対応手段１ｃ−６に、データバッファ１ｃ−３−２ａのメモリ番地を渡すことで、データバッファ１ｃ−３−２ａと対応するノード番地を問い合わせる（Ｓｃ１０４）。ノード番地対応手段１ｃ−６は、データバッファ１ｃ−３−２ａのメモリ番地を受けると、ノード番地対応関係１ｃ−６−１を参照して、データバッファ１ｃ−３−２ａに対応するノード番地として、ノード１ａのノード番地を取得し、これをメモリ書込み装置１ｃ−５−２に返す（Ｓｃ１０５）。メモリ書込み装置１ｃ−５−２は、ノード１ａのノード番地を受けると、これを送信先ノード番地として、その他の項目も含めて、バッファ内付加情報部１ｃ−５−１−１ａ−１〜ｎを設定してフレームとして完成させ、バッファ内データ転送単位１ｃ−５−１−１ａの送信をノード間通信手段１ｃ−５−３に指示する（Ｓｃ１０６）。ノード間通信手段１ｃ−５−３は、該送信指示を受けると、バッファ内データ転送単位１ｃ−５−１−１ａから読み出したデータをそのままフレームとして、ノード間通信路２に送信する（Ｓｃ１０７）。ノード間通信路２は、ノード１ｃからフレームを受けると、その送信先ノードはノード１ａとなっているので、ノード１ａのノード間通信手段１ａ−５−３に、該フレームを配送する。
【００２８】
ノード１ａのノード間通信手段１ａ−５−３は、ノード間通信路２からフレームを受けると、該フレームのデータ部を抽出して、メモリ書込み装置１ａ−５−２に出力する（Ｓａ２００）。メモリ書込み装置１ａ−５−２は、受信フレームのデータ部を受けると、データ部がノード番地対応関係取得コマンドからなることを認識するとともに、送信元ノードのノード番地を抽出する（Ｓａ２０１）。ノード番地対応関係取得コマンドを受けたので、メモリ書込み装置１ａ−５−２は、特定データバッファ１ａ−３−２ｘからノード番地対応関係１ａ−６−１および特定ノード番地対応関係１ａ−６−ｘを読み出し、これらを送信するために、バッファ内データ部１ａ−５−１−１ａ−１ｘに格納する（Ｓａ２０２）。さらに、ステップＳａ２０１で抽出したノード１ｃのノード番地を送信先ノード番地として、その他の項目も含めて、バッファ内付加情報部１ａ−５−１−１ａ−１〜ｎを設定してフレームとして完成させ、ノード間通信手段１ａ−５−３に、バッファ内データ転送単位１ａ−５−１−１ａの送信を指示する（Ｓａ２０３）。ノード間通信手段１ａ−５−３は、該送信指示を受けると、バッファ内データ転送単位１ａ−５−１−１ａから読み出したデータをそのままフレームとして、ノード間通信路２に送信する（Ｓａ２０４）。ノード間通信路２は、ノード１ａからフレームを受けると、その送信先ノードはノード１ｃとなっているので、ノード１ｃのノード間通信手段１ｃ−５−３に、該フレームを配送する。
【００２９】
ノード１ｃのノード間通信手段１ｃ−５−３は、ノード間通信路２からフレームを受けると、該フレームのデータ部を抽出して、メモリ書込み装置１ｃ−５−２に出力する（Ｓｃ３００）。メモリ書込み装置１ｃ−５−２は、受信フレームのデータ部を受けると、ノード番地対応関係取得コマンドの返信なので、ステップＳａ２０２にて書き込まれたノード番地対応関係１ａ−６−１および特定ノード番地対応関係１ａ−６−ｘを抽出して、特定ノード番地１ａ−６−３−ｘの領域を除いて、特定データバッファ１ｃ−３−２ｘに書込む（Ｓｃ３０１）。メモリ書込み装置１ｃ−５−２は、前のステップで書込んだ特定データバッファ１ｃ−３−２ｘを参照し、ノード番地対応関係１ｃ−６−１へノード１ｃを追加した場合のノード番地１ｃ−６−３の並び順を確認する。ここでは、データバッファと送信先ノードとの関係が、次に示す（３）（４）の順に格納されており、ノード１ｃを追加した場合は、その末尾に追加されて（３）（４）（５）の順で格納されることになるとする。
１ｃ−３−２ａ：ノード１ａ・・・（３）
１ｃ−３−２ｂ：ノード１ｂ・・・（４）
１ｃ−３−２ｃ：ノード１ｃ・・・（５）
メモリ書込み装置１ｃ−５−２は、この並び順に基づき、特定データバッファ１ｃ−３−２ｘの送信先ノードを決める。ここでは、ノード１ｃについて定義している（５）の次の定義はないので、先頭の（３）で定義しているノード１ａを送信先とし、ノード１ａのノード番地を、特定ノード番地１ｃ−６−３−ｘに格納する（Ｓｃ３０２）。演算装置１ｃ−２は、ノード番地対応関係１ｃ−６−１に（３）（４）が設定されたのを確認して、ノード１ｃの定義である（５）を追加し、この設定領域に書込み禁止を設定する（Ｓｃ３０３）。メモリ書込み装置１ｃ−５−２は、通常の分散共有メモリへの書込みと同様に、ステップ３０３のノード番地対応関係１ｃ−６−１へのノード１ｃを追加するデータを、そのメモリ番地とともに取込み、  バッファ内データ部１ａ−５−１−１ａ−１ｘに格納する（Ｓｃ３０４）。メモリ書込み装置１ｃ−５−２は、ステップＳｃ３０４で取込んだメモリ番地を、ノード番地対応手段１ｃ−６に問い合わせる（Ｓｃ３０５）。ノード番地対応手段１ｃ−６は、メモリ番地を受けると、これは特定データバッファ１ｃ−３−２ｘの領域に含まれるメモリ番地なので、特定ノード番地１ｃ−６−３−ｘに格納されているノード１ａのノード番地をメモリ書込み装置１ｃ−５−２に返す（Ｓｃ３０６）。メモリ書込み装置１ｃ−５−２は、ノード番地対応手段１ｃ−６からノード１ａのノード番地を受けると、これを送信先ノード番地として、その他の項目も含めて、バッファ内付加情報部１ｃ−５−１−１ａ−１〜ｎを設定してフレームとして完成させ、ノード間通信手段１ｃ−５−３に、バッファ内データ転送単位１ｃ−５−１−１ａの送信を指示する（Ｓｃ３０７）。ノード間通信手段１ｃ−５−３は、該送信指示を受けると、バッファ内データ転送単位１ｃ−５−１−１ａから読み出したデータをそのままフレームとして、ノード間通信路２に送信する（Ｓｃ３０８）。ノード間通信路２は、ノード１ｃからフレームを受けると、その送信先ノードはノード１ａとなっているので、ノード１ａのノード間通信手段１ａ−５−３に、該フレームを配送する。
【００３０】
ノード１ａのノード間通信手段１ａ−５−３は、ノード間通信路２からフレームを受けると、該フレームのデータ部を抽出して、メモリ書込み装置１ａ−５−２に出力する（Ｓａ４００）。メモリ書込み装置１ａ−５−２は、受信フレームのデータ部を受けると、データ部よりノード１ｃ追加のデータとそのメモリ番地を取り出すが（Ｓａ４０１）、取り出したメモリ番地が、特定データバッファ１ａ−３−２ｘの領域に含まれるメモリ番地なので、該データバッファを参照し、これに今回変更を加えた場合のノード番地１ａ−６−３の並び順を確認する。同一のデータ内容に対して、同一論理で動くため、ステップＳｃ３０２と同様に、並び順は前述の（３）（４）（５）の順となる。自ノードについて定義している（３）の次は、（４）で定義しているノード１ｂとなっているが、特定ノード番地１ａ−６−３−ｘには既にノード１ｂのノード番地が格納されているので、変更はしない（Ｓａ４０２）。メモリ書込み装置１ａ−５−２は、次にステップＳａ４０１で取り出したノード１ｃ追加のデータを、特定データバッファ１ａ−３−２ｘ内の指定されたメモリ番地に反映し、ノード番地対応関係１ａ−６−１を更新する（Ｓａ４０３）。メモリ書込み装置１ａ-５−２は、自身で書込むためにノード内バス１ａ−４を流れたノード１ｃ追加のデータをメモリ番地とともに取込み、バッファ内データ部１ａ−５−１−１ａ−１ｘに書込む（Ｓａ４０４）。次に、メモリ書込み装置１ａ−５−２は、ステップＳａ４０４にて取り込んだメモリ番地を、ノード番地対応手段１ａ−６に問い合わせる（Ｓａ４０５）。ノード番地対応手段１ａ−６は、メモリ番地を受けると、これは特定データバッファ１ａ−３−２ｘの領域に含まれるメモリ番地なので、特定ノード番地１ａ−６−３−ｘに格納されているノード１ｂのノード番地をメモリ書込み装置１ａ−５−２に返す（Ｓａ４０６）。メモリ書込み装置１ａ−５−２は、ノード番地対応手段１ａ−６からノード１ｂのノード番地を受けると、これを送信先ノード番地として、その他の項目も含めて、バッファ内付加情報部１ａ−５−１−１ａ−１〜ｎを設定してフレームとして完成させ、ノード間通信手段１ａ−５−３に、バッファ内データ転送単位１ａ−５−１−１ａの送信を指示する（Ｓａ４０７）。ノード間通信手段１ａ−５−３は、該送信指示を受けると、バッファ内データ転送単位１ａ−５−１−１ａから読み出したデータをそのままフレームとして、ノード間通信路２に送信する（Ｓａ４０８）。ノード間通信路２は、ノード１ａからフレームを受けると、その送信先ノードはノード１ｂとなっているので、ノード１ｂのノード間通信手段１ｂ−５−３に、該フレームを配送する。
【００３１】
ノード１ｂのノード間通信手段１ｂ−５−３は、ノード間通信路２からフレームを受けると、該フレームのデータ部を抽出して、メモリ書込み装置１ｂ−５−２に出力する（Ｓｂ５００）。メモリ書込み装置１ｂ−５−２は、受信フレームのデータ部を受けると、データ部よりノード１ｃ追加のデータとそのメモリ番地を取り出す（Ｓｂ５０１）。取り出したメモリ番地は、特定データバッファ１ｂ−３−２ｘの領域に含まれるメモリ番地なので、該データバッファを参照し、これに今回変更を加えた場合のノード番地１ｂ−６−３の並び順を確認する。同一のデータ内容に対して、同一論理で動くため、ステップＳｃ３０２と同様に、並び順は前述の（３）（４）（５）の順となる。自ノードについて定義している（４）の次は、（５）で定義しているノード１ｃとなっているので、特定ノード番地１ｂ−６−３−ｘに、ノード１ｃのノード番地を格納する（Ｓｂ５０２）。メモリ書込み装置１ｂ−５−２は、次にステップＳｂ５０１で取り出したノード１ｃ追加のデータを、特定データバッファ１ｂ−３−２ｘ内の指定されたメモリ番地に反映し、ノード番地対応関係１ｂ−６−１を更新する（Ｓｂ５０３）。メモリ書込み装置１ｂ-５−２は、自身で書込むためにノード内バス１ｂ−４を流れたノード１ｃ追加のデータをメモリ番地とともに取込み、バッファ内データ部１ｂ−５−１−１ａ−１ｘに書込む（Ｓｂ５０４）。次に、メモリ書込み装置１ｂ−５−２は、ステップＳｂ５０４にて取り込んだメモリ番地を、ノード番地対応手段１ｂ−６に問い合わせる（Ｓｂ５０５）。ノード番地対応手段１ｂ−６は、メモリ番地を受けると、これは特定データバッファ１ｂ−３−２ｘの領域に含まれるメモリ番地なので、特定ノード番地１ｂ−６−３−ｘに格納されているノード１ｃのノード番地をメモリ書込み装置１ｂ−５−２に返す（Ｓｂ５０６）。メモリ書込み装置１ｂ−５−２は、ノード番地対応手段１ｂ−６からノード１ｃのノード番地を受けると、これを送信先ノード番地として、その他の項目も含めて、バッファ内付加情報部１ｂ−５−１−１ａ−１〜ｎを設定してフレームとして完成させ、ノード間通信手段１ｂ−５−３に、バッファ内データ転送単位１ｂ−５−１−１ａの送信を指示する（Ｓｂ５０７）。ノード間通信手段１ｂ−５−３は、該送信指示を受けると、バッファ内データ転送単位１ｂ−５−１−１ａから読み出したデータをそのままフレームとして、ノード間通信路２に送信する（Ｓｂ５０８）。ノード間通信路２は、ノード１ｂからフレームを受けると、その送信先ノードはノード１ｃとなっているので、ノード１ｃのノード間通信手段１ｃ−５−３に、該フレームを配送する。
【００３２】
ノード１ｃのノード間通信手段１ｃ−５−３は、ノード間通信路２からフレームを受けると、該フレームのデータ部を抽出して、メモリ書込み装置１ｃ−５−２に出力する（Ｓｃ６００）。メモリ書込み装置１ｃ−５−２は、受信フレームのデータ部を受けると、データ部よりノード１ｃ追加のデータとそのメモリ番地を取り出すが（Ｓｃ６０１）、取り出したメモリ番地が、ステップＳｃ３０３で書込み禁止に設定されているので、該書込み禁止を解除し、データの書込みは行わない（Ｓｃ６０２）。
【００３３】
このように、各ノードにおける特定ノード番地１ａ−６−３−ｘ〜１ｃ−６−３−ｘに格納するノード番地をノード毎に異なるように設定しておくことで、ノード番地対応手段１ａ−６内で更新された部分が送信元とは異なるノードに、ケース１のデータ送受信と同じ動作で送信することができ、該ノード番地対応手段１ａ−６内更新部分送信手順をリンクバイリンクに実施することでユビキタスノードシステム内の全てのノードのノード番地対応手段１ａ−６を更新することが可能になる。
【００３４】
ここでは、新規ノードの追加について説明したが、ノード間通信路２に接続されていたノードが接続を解除される場合においては、前記説明の手順において、解除対象ノード内で、特定データバッファ１ａ−３−２ｘ内の分散共有メモリ番地１ａ−６−２とノード番地１ａ−６−３関連付けの該ノード番地と関連付けられている分散共有メモリ番地との関連を解除して該分散共有メモリ番地を空にすることで以下追加の場合と同様の手順により、以後該ノードに対するデータ送信は行われなくなる。
【００３５】
なお、本実施形態では、新規ノード追加の際に、ノード番地対応関係の更新がリンクバイリンクで順次伝播していくように説明したが、図１４に示すブロック図のように、特定のノードが全ノードに更新を通知するようにしてもよい。この場合、ユビキタスノードシステムに接続されていないノード１ｃは最初に接続する際に特定のノード１ｄヘノード番地対応手段１ｄ−６の空データバッファの任意のメモリ番地に自ノード番地１ｃを関連付ける命令を分散共有メモリ領域１ｃ−３−２の空データバッファを用いて送信する。ノード１ｄではノード番地対応手段１ｄ−６内で空であった分散共有メモリ番地１ｄ−６−２−ｙにノード１ｃの番地が関連付けられ、即ち１ｄ−６−３−ｙにノード番地１ｃが代入する。ここで、ノード番地対応手段１ｄ−６が書き込まれている特定データバッファ１ｄ−３−２ｘにはノード１ａのノード番地が関連付けられており、ノード番地対応手段１ｄ−６の更新部分即ち分散共有メモリ番地１ｄ−６−２−ｙとノード番地１ｃとの関連付けがノード１ａに送られる。ノード番地から受信応答が戻ると、特定データバッファ１ｄ−３−２ｘにノード１ｂのノード番地が関連付けられ、ノード番地対応手段１ｄ−６内のユビキタスノードシステムに接続されているノードのノード番地一覧である１ｄ−８内のノード１ｂのノード番地にフラグを立てる。
ユビキタスノードシステム内の全ノードにノード番地対応手段１ｄ−６の更新部分を送信するまで、ノード番地対応手段１ｄ−６内のノード番地一覧１ｄ−８内にフラグの無いノード番地に対して同様の手順を繰り返す。
【００３６】
また、この特定のノードが全ノードに更新を通知する場合において、ユビキタスノードシステムに接続されていないノード１ｃは最初に接続する際に特定のノード１ｄヘノード番地対応手段１ｄ−６の空データバッファの任意のメモリ番地に自ノード１ｃのノード番地１ｃを関連付ける命令を分散共有メモリ領域１ｃ−３−２の空データバッファを用いて送信し、ノード１ｄではノード番地対応手段１ｄ−６内で空であった分散共有メモリ番地１ｄ−６−２−ｙにノード１ｃの番地が関連付けられ、即ち１ｄ−６−３−ｙにノード番地１ｃが代入され、ノード番地対応手段１ａ−６が書き込まれている特定データバッファ１ｄ−３−２ｘにはノード１ａのノード番地が関連付けられているが、なんらかの理由によりノード１ｄから、ノード番地対応手段１ｄ−６の更新部分即ち分散共有メモリ番地１ｄ−６−２−ｙとノード番地１ｃとの関連付けがノード１ａに送られ得ない場合、まず、ノード１ｂに該関連付け及びノード番地一覧１ｄ−８のノード番地１ｂにフラグを立てたものを送り、ノード１ｂにて、特定データバッファ１ｂ−３−２ｘにノード番地１ａが関連付けられ、ノード１ｂからノード１ａに対しノード番地対応手段１ａ−６の更新部分即ち分散共有メモリ番地１ｂ−６−２−ｙとノード番地１ｃとの関連付けを送り、ノード番地一覧１ｄ−８内のノード番地１ａにフラグを立て順次フラグの無いノード番地のノードに対し繰り返す。
【００３７】
また、新規ノード追加の際に、リンクバイリンクや特定ノードが全ノードに順次通知するのではなくブロードキャストを用いて通知してもよい。この場合、既に接続されているノード集団内の全てのノードに、新たに加わるノード１ｃが例えば下位プロトコル階層のイーサネット（登録商標）のブロードキャスト番地をバッファ（ノード１ａでは１ａ−５−１に相当）において構造部分に予め設定し、データ部にノード番地取得要求を格納して送信すると集団内の全てのノードから集団内全ノードの番地を取得し、その一つと通信してノード番地対応手段を取得してそこに自番地（仮番地以外でも良い）の分散共有メモリ番地とノード番地対応を追加し、追加情報を集団内全ノードに送信する。集団間は集団を隔てる機能を有する特定ノードで区切られるが、集団を隔てる特定ノード同士も同じ構造で集団追加を通知する。
どこの集団にあるかは、例えばノード番地の上位ビットを集団識別番地と定めておけば上位ビットを対象に上記手順を行えば集団を隔てる特定ノード同士でノード追加情報を伝達することが可能である。離脱の場合も同様である。
【００３８】
また、本実施形態では、ノード番地対応手段をノード毎に順次更新するように説明したが、ノード番地対応手段の予備面を備えておき、予備面に変更を加えておき、一斉に予備面に切り替えても良い。この場合、ノード１ｄにおいてはノード番地対応手段１ｄ−６の複製である予備のノード番地対応手段予備面１ｄ−６ｘをノード内に保持し、システムに接続されていないノード１ｃが接続される前にノード番地対応手段予備面１ｄ−６ｘにノード１ｃが接続された状態に更新しておく。同様に、ノード１ａや１ｂ等の全ての既接続のノードにおいて更新を完了しておく。また、全ての既接続ノードにおいて予備ノード番地対応手段に同じ値を持つ時刻情報１ａ−７、１ｂ−７等を関連付けておき、該時刻情報に保持された時刻において各ノードで割り込みを発生し、ノ−ド１ａにおいてはノード番地対応手段１ａ−６を示すポインタをノード番地対応手段予備面１ａ−６ｘに変更し、他既接続ノードでも同様に変更を行う。
【００３９】
或いは、通信手段がブロードキャスト機能を有するプロトコル階層（例えばイーサネット（登録商標））上に構成されている場合は、時刻情報を保持する代わりに、少なくとも新たに加わるノード１ｃが該階層のブロードキャスト番地が設定された構造を持つ特定バッファをバッファ１ａ−５−１内に持ち、該バッファ１ａ−５−１に特定データを書き込むことで既接続の全てのノードに該特定データが送られ、該データを受信した際に、ノード番地対応手段を示すポインタを予備ノード番地対応手段に変更する手段によっても可能である。離脱の場合も同様である。
【００４０】
また、本実施形態においては通信を行う実体となるシステムをノードと表記しているが、ユビキタスコンピューティング環境におけるセンサノード（デバイス）等の演算機能を有する各種デバイスを主に意図している。
以上、この発明の実施形態を、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【図面の簡単な説明】
【００４１】
【図１】この発明の一実施形態によるノード間データ転送制御装置の構成を示すブロック図である。
【図２】同実施形態におけるバッファ１ａ−５−１の構成を示すブロック図である。
【図３】同実施形態におけるメモリ１ａ−３の構成を示すブロック図である。
【図４】同実施形態におけるデータ送信の動作を説明するフローチャートである。
【図５】同実施形態におけるデータ受信の動作を説明するフローチャートである。
【図６】同実施形態における新規ノード追加を説明するブロック図である。
【図７】同実施形態における新規ノード追加の動作を説明するシーケンス図である。
【図８】同実施形態における新規ノード追加の動作を説明するフローチャートである。
【図９】同実施形態における新規ノード追加の動作を説明するフローチャートである。
【図１０】同実施形態における新規ノード追加の動作を説明するフローチャートである。
【図１１】同実施形態における新規ノード追加の動作を説明するフローチャートである。
【図１２】同実施形態における新規ノード追加の動作を説明するフローチャートである。
【図１３】同実施形態における新規ノード追加の動作を説明するフローチャートである。
【図１４】同実施形態における新規ノード追加を説明するブロック図である。
【図１５】従来の装置の階層構造を説明する図である。
【符号の説明】
【００４２】
１ａ〜１ｃ…ノード
１ａ−１ａ〜１ａ−１ｎ…アプリケーションプログラム
１ａ−２…演算手段
１ａ−３…ローカルメモリ
１ａ−３−１…該ノード専用領域
１ａ−３−２…分散共有メモリ領域
１ａ−３−２ａ〜１ａ−３−２ｎ…データバッファ
１ａ−３−２ｘ…特定データバッファ
１ａ−４…ノード内バス
１ａ−５…転送制御手段
１ａ−５−１…バッファ
１ａ−５−１−１ａ〜１ａ−５−１−１ｎ…バッファ内データ転送単位
１ａ−５−１−１ａ−１〜１ａ−５−１−１ａ−ｎ…バッファ内付加情報部
１ａ−５−１−１ａ−１ｘ…バッファ内データ部
１ａ−５−２…メモリ書込み装置
１ａ−５−３…ノード間通信手段
１ａ−６〜１ｄ−６…ノード番地対応手段
１ａ−６ｘ〜１ｄ−６ｘ…ノード番地対応手段予備面
１ａ−６−１〜１ｄ−６−１…ノード番地対応手段（通常用途）
１ａ−６−ｘ〜１ｄ−６−ｘ…特定ノード番地対応手段
１ａ−６−２〜１ｄ−６−２…分散共有メモリ番地
１ａ−６−２−ｘ〜１ｄ−６−２−ｘ…特定分散共有メモリ番地
１ａ−６−３〜１ｄ−６−３  ノード番地
１ａ−６−３−ｘ〜１ｄ−６−３−ｘ…特定ノード番地
１ａ−７〜１ｄ−７…時刻情報
１ｂ−８、１ｄ−８…ノード番地一覧
２…ノード間通信路
３…ノードを構成するシステム階層構造
３−１…アプリケーションプログラム
３−２…分散共有メモリやインタフェース
３−３…ライブラリ
３−４〜３−５…プロセッサ類
３−６…ＯＳ類
３−７…ハードウェア類
【図１】
2007004312.tif 000003
【図２】
2007004312.tif 000004
【図３】
2007004312.tif 000005
【図４】
2007004312.tif 000006
【図５】
2007004312.tif 000007
【図６】
2007004312.tif 000008
【図７】
2007004312.tif 000009
【図８】
2007004312.tif 000010
【図９】
2007004312.tif 000011
【図１０】
2007004312.tif 000012
【図１１】
2007004312.tif 000013
【図１２】
2007004312.tif 000014
【図１３】
2007004312.tif 000015
【図１４】
2007004312.tif 000016
【図１５】
2007004312.tif 000017