(57)【要約】【課題】ノード間データ転送制御装置において、ノードおよびネットワークへの負荷が少なく、同報のための手順が簡易な、分散共有メモリを用いた同報通信方法および装置を提供する。【解決手段】分散共有メモリを用いたノード間のプロセス間通信において、同報手順においては、同報宛先ノード等にデータの送信にあわせて通知を送ることでデータ送信にあわせて特定（または、１つの選択したメモリ番地）のメモリ番地を同報用に用いることを通知し、各同報先プロセスに個別に送付するデータは宛て先の識別情報のみとして、同報対象のデータのメモリ書込みはノード毎に一箇所として（通知した同報用メモリ領域のみに書き込む）、メモリ番地をノード番地に変換し、ネットワーク内もノード毎に一つのデータが送信されるようにしながら複数プロセス宛てにデータを送信する。【選択図】図１
2008015617.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークなどの伝送手段に接続されたノード内に設けられ、他プロセスとの間のデータ転送を制御するノード間データ転送制御装置において、
データ送信後或いは予めデータ送信前に、分散共有メモリ上の特定の番地を複数プロセス或いはノード向けの送信に用いることを、自ノードを含むネットワークなどの伝送手段で接続された一つ以上のプロセス或いはノードに通知或いは設定する、
ことを特徴とする分散共有メモリを用いた同報通信方式。
【請求項２】
ネットワークなどの伝送手段に接続されたノード内に設けられ、他プロセスとの間のデータ転送を制御するノード間データ転送制御装置であって、
プロセスによって書き込みおよび読み出しが行われるメモリであって、ネットワークに接続された複数のノード間データ転送制御装置でメモリ番地が仮想的あるいは物理的に同一である分散共有メモリと、
メモリ番地が入力されると、該メモリ番地が含まれる前記分散共有メモリの領域と対応づけられたプロセスの存在するノード番地を出力するノード番地対応手段と、
前記分散共有メモリに書き込まれるデータを取得し、前記ノード番地を有するプロセス或いはノード宛てに前記取得したデータを送信する送信手段と、
前記ネットワークからデータを受信し、送信元プロセス或いはノードにおいて該データが書き込まれた分散共有のメモリ番地と仮想的或いは物理的に同一のメモリ番地に該受信データを書き込む受信手段と、
を備える、ノード間データ転送制御装置であって、
データ送信後或いは予めデータ送信前に、分散共有メモリ上の特定の番地を複数プロセス或いはノード向けの送信に用いることを、自ノードを含むネットワークなどの伝送手段で接続された一つ以上のプロセス或いはノードに通知或いは設定する、
ことを特徴とする分散共有メモリを用いた同報通信方式。
【請求項３】
ネットワークなどの伝送手段に接続されたノード内に設けられ、他プロセスとの間のデータ転送を制御するノード間データ転送制御装置において、
隣接する中継ノード或いは隣接する宛先ノードに各１個だけ送信データを送信し、宛先プロセスを識別する情報を宛先プロセス数だけ或いは宛先プロセス数分を一括して、宛先プロセスが存在するノードに送信することにより、同一データをネットワークなどの伝送手段で接続された複数プロセス或いはノードに送信する、
ことを特徴とする分散共有メモリを用いた同報通信方式。
【請求項４】
ネットワークなどの伝送手段に接続されたノード内に設けられ、他プロセスとの間のデータ転送を制御するノード間データ転送制御装置において、
複数の宛先プロセス或いはノードに対応する複数のメモリ番地に同一データを書き込むことにより、同一データをネットワークなどの伝送手段で接続された複数プロセス或いはノードに送信する、
ことを特徴とする分散共有メモリを用いた同報通信方式。
【請求項５】
複数のノード間またはプロセス間の通信のために用いる分散共有メモリと、
送信データと送信宛先となるプロセスと関連する前記分散共有メモリのメモリ番地情報とを受信し、前記受信したメモリ番地情報に基づきノード情報を取得し、前記取得したノード情報が同一のメモリ番地がある場合には、１つのメモリ番地を同一ノードメモリ番地情報として前記取得したノード情報が同一のメモリ番地から選択し、前記選択した同一ノードメモリ番地情報に前記受信した送信データを書き込み、前記同一ノードメモリ番地情報に書き込んだ送信データを参照するための識別情報を前記ノード情報が同一のメモリ番地毎に生成し、前記生成した識別情報を前記ノード情報が同一のメモリ番地に書き込む、分散共有メモリ管理手段と、
前記分散共有メモリにデータが書き込まれるメモリ番地情報を取得し、前記取得したメモリ番地情報に基づきノード情報を取得し、前記取得したノード情報を送信するノード番地対応手段と、
前記ノード番地対応手段からのノード情報を受信し、前記分散共有メモリに書き込まれた送信データと前記識別情報と前記受信したノード情報とに基づき送信処理を実行する転送制御装置と、
を有することを特徴とする分散共有メモリを用いた同報通信装置。
【請求項６】
複数のノード間またはプロセス間の通信のために用いる分散共有メモリと、
送信データを前記分散共有メモリに書き込む分散共有メモリ管理手段と、
前記分散共有メモリ管理手段が書き込んだ前記分散共有メモリのメモリ番地を検出し、前記検出したメモリ番地に基づき宛先ノード番地情報を取得し出力するノード番地対応手段と、
前記ノード番地対応手段の出力した宛先ノード番地情報を取得し、前記取得した宛先ノード番地情報と前記分散共有メモリ管理手段に書き込まれた送信データとに基づき送信する転送制御手段と、
を有することを特徴とする分散共有メモリを用いた同報通信装置。
【請求項７】
複数のノード間またはプロセス間の通信のために用いる分散共有メモリと、
前記宛先識別子と複数の宛先ノード番地情報とを関連づけて予め記憶している展開テーブルと、
送信データを前記分散共有メモリに書き込む分散共有メモリ管理手段と、
前記分散共有メモリ管理手段が書き込んだ前記分散共有メモリのメモリ番地を検出し、前記
検出したメモリ番地に基づき宛先識別子を取得し出力するノード番地対応手段と、
前記ノード番地対応手段の出力した宛先識別子を取得し、前記取得した宛先識別子と関連する宛先ノード番地情報を前記展開テーブルから取得する展開手段と、
前記展開手段の出力した宛先ノード番地情報を取得し、前記取得した宛先ノード番地情報と前記分散共有メモリ管理手段に書き込まれた送信データとに基づき送信する転送制御手段と、
を有することを特徴とする分散共有メモリを用いた同報通信装置。
【請求項８】
複数のノード間またはプロセス間の通信のために用いる分散共有メモリと、
前記宛先識別子と複数の宛先ノード番地情報とを関連づけて予め記憶している展開テーブルと、
送信データを前記分散共有メモリに書き込む分散共有メモリ管理手段と、
前記分散共有メモリ管理手段が書き込んだ前記分散共有メモリのメモリ番地を検出し、前記検出したメモリ番地に基づき宛先識別子を取得し出力するノード番地対応手段と、
前記ノード番地対応手段の出力した宛先識別子を取得し、前記取得した宛先識別子と前記分散共有メモリ管理手段に書き込まれた送信データと前記展開テーブルとに基づき送信する転送制御手段と、
を有することを特徴とする分散共有メモリを用いた同報通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ノード内、或いはノード間で分散共有メモリを用いてデータ転送を行う転送制御装置の技術に関わり、特に同報通信方式の技術に関する。
【背景技術】
【０００２】
分散共有メモリを用いたノード間データ転送制御装置は、通常、ＬＡＮ、ＡＴＭ、ＴＣＰ／ＩＰ等の既存の伝送方式を利用して、これら伝送方式のネットワーク内のノード識別子を分散共有メモリ番地に対応付けることで、データ転送を行うものである。
【０００３】
このような分散共有メモリを用いたノード間データ転送制御装置を用いた通信では、ローカルメモリにデータを書き込むだけで宛先ノードに送信される簡易性を有す上、さらに、メモリ解放通知を利用した送達確認が行われる特徴から、少ない手順で一貫性を保った同報通信を行うことができ、通信処理機能やネットワークヘの負荷も小さくてすむことが特徴の一つである（特許文献１）。
【特許文献１】特開平０６−２６６６８３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、分散共有メモリ通信においてはメモリを用いていることから、メモリ領域の一貫性を維持（排他制御のように、不要な上書きを避ける必要性がある）した上で、分散共有メモリを用いて同報通信を行おうとすると、ネットワーク、或いは、分散共有メモリ機構に複雑な手順が必要になりノードの通信処理機能やネットワークに大きな負荷が生じるという問題がある。
【０００５】
また、分散共有メモリを用いる転送制御装置は、ノード内の処理がネットワークなどの伝送手段の転送速度より高速であり、同報通信のように多量のデータを送出することは、ネットワークにその処理能力を上回る負荷を与えるなど、ネットワークの処理能力を阻害する可能性があり、転送制御装置の高速性を維持したまま、同報通信のような多量のデータを送出することは困難であるという問題がある。
【０００６】
また、ネットワークを介したノード間の同報は、上位層の同報機能を用いることによって宛先プロセス数のデータを送信することになり、上位層の通信処理機能、上位層と分散共有メモリ機構との整合性を保つ制御、或いは、ネットワーク等の伝送機能のみならず上位層の負荷も多大となる問題がある。
【０００７】
本発明は、このような事情に鑑みてなされたもので、その目的は、ノード間データ転送制御装置において、ノードおよびネットワークへの負荷が少なく、同報のための手順が簡易な、分散共有メモリを用いた同報通信方法および装置を提供することにある。
【課題を解決するための手段】
【０００８】
この発明は上述した課題を解決するためになされたもので、請求項１に記載の発明は、ネットワークなどの伝送手段に接続されたノード内に設けられ、他プロセスとの間のデータ転送を制御するノード間データ転送制御装置において、データ送信後或いは予めデータ送信前に、分散共有メモリ上の特定の番地を複数プロセス或いはノード向けの送信に用いることを、自ノードを含むネットワークなどの伝送手段で接続された一つ以上のプロセス或いはノードに通知或いは設定する、ことを特徴とする分散共有メモリを用いた同報通信方式である。
【０００９】
請求項２に記載の発明は、ネットワークなどの伝送手段に接続されたノード内に設けられ、他プロセスとの間のデータ転送を制御するノード間データ転送制御装置であって、プロセスによって書き込みおよび読み出しが行われるメモリであって、ネットワークに接続された複数のノード間データ転送制御装置でメモリ番地が仮想的あるいは物理的に同一である分散共有メモリと、メモリ番地が入力されると、該メモリ番地が含まれる前記分散共有メモリの領域と対応づけられたプロセスの存在するノード番地を出力するノード番地対応手段と、前記分散共有メモリに書き込まれるデータを取得し、前記ノード番地を有するプロセス或いはノード宛てに前記取得したデータを送信する送信手段と、前記ネットワークからデータを受信し、送信元プロセス或いはノードにおいて該データが書き込まれた分散共有のメモリ番地と仮想的或いは物理的に同一のメモリ番地に該受信データを書き込む受信手段と、を備える、ノード間データ転送制御装置であって、データ送信後或いは予めデータ送信前に、分散共有メモリ上の特定の番地を複数プロセス或いはノード向けの送信に用いることを、自ノードを含むネットワークなどの伝送手段で接続された一つ以上のプロセス或いはノードに通知或いは設定する、ことを特徴とする分散共有メモリを用いた同報通信方式である。
【００１０】
請求項３に記載の発明は、ネットワークなどの伝送手段に接続されたノード内に設けられ、他プロセスとの間のデータ転送を制御するノード間データ転送制御装置において、隣接する中継ノード或いは隣接する宛先ノードに各１個だけ送信データを送信し、宛先プロセスを識別する情報を宛先プロセス数だけ或いは宛先プロセス数分を一括して、宛先プロセスが存在するノードに送信することにより、同一データをネットワークなどの伝送手段で接続された複数プロセス或いはノードに送信する、ことを特徴とする分散共有メモリを用いた同報通信方式である。
【００１１】
請求項４に記載の発明は、ネットワークなどの伝送手段に接続されたノード内に設けられ、他プロセスとの間のデータ転送を制御するノード間データ転送制御装置において、複数の宛先プロセス或いはノードに対応する複数のメモリ番地に同一データを書き込むことにより、同一データをネットワークなどの伝送手段で接続された複数プロセス或いはノードに送信する、ことを特徴とする分散共有メモリを用いた同報通信方式である。
【００１２】
請求項５に記載の発明は、複数のノード間またはプロセス間の通信のために用いる分散共有メモリと、送信データと送信宛先となるプロセスと関連する前記分散共有メモリのメモリ番地情報とを受信し、前記受信したメモリ番地情報に基づきノード情報を取得し、前記取得したノード情報が同一のメモリ番地がある場合には、１つのメモリ番地を同一ノードメモリ番地情報として前記取得したノード情報が同一のメモリ番地から選択し、前記選択した同一ノードメモリ番地情報に前記受信した送信データを書き込み、前記同一ノードメモリ番地情報に書き込んだ送信データを参照するための識別情報を前記ノード情報が同一のメモリ番地毎に生成し、前記生成した識別情報を前記ノード情報が同一のメモリ番地に書き込む、分散共有メモリ管理手段と、前記分散共有メモリにデータが書き込まれるメモリ番地情報を取得し、前記取得したメモリ番地情報に基づきノード情報を取得し、前記取得したノード情報を送信するノード番地対応手段と、前記ノード番地対応手段からのノード情報を受信し、前記分散共有メモリに書き込まれた送信データと前記識別情報と前記受信したノード情報とに基づき送信処理を実行する転送制御装置と、を有することを特徴とする分散共有メモリを用いた同報通信装置である。
【００１３】
請求項６に記載の発明は、複数のノード間またはプロセス間の通信のために用いる分散共有メモリと、送信データを前記分散共有メモリに書き込む分散共有メモリ管理手段と、
前記分散共有メモリ管理手段が書き込んだ前記分散共有メモリのメモリ番地を検出し、前記検出したメモリ番地に基づき宛先ノード番地情報を取得し出力するノード番地対応手段と、前記ノード番地対応手段の出力した宛先ノード番地情報を取得し、前記取得した宛先ノード番地情報と前記分散共有メモリ管理手段に書き込まれた送信データとに基づき送信する転送制御手段と、を有することを特徴とする分散共有メモリを用いた同報通信装置である。
【００１４】
請求項７に記載の発明は、複数のノード間またはプロセス間の通信のために用いる分散共有メモリと、前記宛先識別子と複数の宛先ノード番地情報とを関連づけて予め記憶している展開テーブルと、送信データを前記分散共有メモリに書き込む分散共有メモリ管理手段と、前記分散共有メモリ管理手段が書き込んだ前記分散共有メモリのメモリ番地を検出し、前記検出したメモリ番地基づき宛先識別子を取得し出力するノード番地対応手段と、前記ノード番地対応手段の出力した宛先識別子を取得し、前記取得した宛先識別子と関連する宛先ノード番地情報を前記展開テーブルから取得する展開手段と、前記展開手段の出力した宛先ノード番地情報を取得し、前記取得した宛先ノード番地情報と前記分散共有メモリ管理手段に書き込まれた送信データとに基づき送信する転送制御手段と、を有することを特徴とする分散共有メモリを用いた同報通信装置である。
【００１５】
請求項８に記載の発明は、複数のノード間またはプロセス間の通信のために用いる分散共有メモリと、前記宛先識別子と複数の宛先ノード番地情報とを関連づけて予め記憶している展開テーブルと、送信データを前記分散共有メモリに書き込む分散共有メモリ管理手段と、前記分散共有メモリ管理手段が書き込んだ前記分散共有メモリのメモリ番地を検出し、前記検出したメモリ番地に基づき宛先識別子を取得し出力するノード番地対応手段と、前記ノード番地対応手段の出力した宛先識別子を取得し、前記取得した宛先識別子と前記分散共有メモリ管理手段に書き込まれた送信データと前記展開テーブルとに基づき送信する転送制御手段と、を有することを特徴とする分散共有メモリを用いた同報通信装置である。
【発明の効果】
【００１６】
この発明によれば、分散共有メモリを用いる転送制御装置において、データ送信後或いは予めデータ送信前に、分散共有メモリ上の特定の番地（１つの選択したメモリ番地）を複数ノード向けの送信に用いることを、自ノードを含むネットワーク内の一つ以上のノードに対して通知し、分散共有メモリを管理する機能が対応する通信層が、全ての同報先に個別に送信データを送信しないで一部の宛先或いは中継ノードに対してのみデータを送信することにより、分散共有メモリを管理する機能が対応する通信層の負荷を低減することができるという効果を奏する。
また、この発明によれば、従来、送信元のデータ発生源であるアプリケーションプログラム、プロセス或いはＯＳなどが、同一のデータを同報先に対応する複数の分散共有メモリの同報先番地に書き込む必要があったが、このような負荷を軽減する効果を奏する。
【発明を実施するための最良の形態】
【００１７】
以下、図面を参照して、本発明の実施の形態について説明する。図１は、この発明の一実施形態による分散共有メモリを用いた同報通信装置の構成を示す概略ブロック図である。また、図２は、ノード番地対応手段の機能概要を説明するための説明図である。
【００１８】
まず、図１と図２を用いて、分散共有メモリを用いた通信システムについて説明する。なお、図２において、図１の各部に対応する部分には同一の符号を付け、その説明を省略する。
図１に示すように、各ノード（例えば、ノード１ａと１ｂ）は、ネットワーク２を介して接続されている。また、各ノード（例えば、ノード１ａと１ｂ）は、それぞれ固有のノード番地を有しており、ノード番地によりそれぞれのノードが識別される。
【００１９】
次に、各ノードの構成について説明する。例えば、１つのノードであるノード１ａの構成を説明する。なお、他のノード（例えばノード１ｂ）の構成も、ノード１ａと同様である。
ノード１ａは、演算装置１ａ−２と、ノード内メモリ１ａ−３と、内部バス１ａ−４と、転送制御装置１ａ−５と、ノード番地対応手段１ａ−６と、を有する。
内部バス１ａ−４には、演算装置１ａ−２と、ノード内メモリ１ａ−３と、転送制御装置１ａ−５が接続されている。
ノード番地対応手段１ａ−６は、内部バス１ａ−４と転送制御装置１ａ−５と接続される。なお、ノード番地対応手段１ａ−６は、内部バス１ａ−４または転送制御装置１ａ−５のうち、一方のみに接続されていてもよい。
【００２０】
ノード内メモリ１ａ−３の一部は、分散共有メモリ領域１ａ−３−１としてノード間の通信のために用いられる。例えば、分散共有メモリ領域１ａ−３−１は、１ａ−３−１ａから１ａ−３−１ｎのデータバッファの領域に更に区分され、各区分が送信先のノードに関連づけられて設定してある。各区分とノードとの関連付けは、後述のノード番地対応手段１ａ−６にてなされている。
なお、図示はしていないが、分散共有メモリ領域１ａ−３−１は送信データ部、送信要求データ領域、識別データ領域に分かれている。
【００２１】
ノード番地対応手段１ａ−６は、例えば図２のテーブルＴ１に示すように、メモリ番地（例えば、分散共有メモリ領域１ａ−３−１の区分の先頭番地である１ａ−６−１）とノード番地（1ａ−６−２）とを対応づける対応手段を有している。
また、ノード番地対応手段１ａ−６は、分散共有メモリ領域１ａ−３−１にデータが書き込まれることを監視しており、分散共有メモリ領域１ａ−３−１に送信データが書き込またことを検出した場合、送信データが書き込まれたメモリ番地を検出し、検出したメモリ番地に対応するノード番地を対応手段に基づき転送制御装置１ａ−５に出力する機能を有する。
ノード番地対応手段１ａ−６は、例えば、図２に示すように、メモリ番地を読み込み（ステップＳ２１）、読み込んだノード番地を、シフトおよびマスク等演算或いは対応表（テーブルＴ１）を参照する等により、ノード番地に変換し（ステップＳ２２）、ノード番地を出力する（ステップＳ２２）。
【００２２】
なお、ノード番地対応手段１ａ−６においては、通常はメモリ番地が決まればノード番地は一意に決まるが、１つのメモリ番地が１つのノード番が対応するものに限定しているものではなく、後述する本発明の第２の実施の形態に示すように、１つのメモリ番地に複数のノード番地が対応する、或いは、１つのノード番地に対応付け可能な何らかの識別子が対応するものであっても良い。
【００２３】
転送制御装置１ａ−５は、内部バス１ａ−４上を流れる送信データと、メモリ番地と、ノード番地対応手段１ａ−６から出力されるノード番地とを取得し、該ノード番地宛の送信用ペイロードに、送信データとメモリ番地を書き込む機能を有する。
また、転送制御装置１ａ−５は、送信要求データと識別データとを、前記の取得済みのノード番地宛のペイロードに書き込み、宛先ノードに送出する機能を有する。ここで、送信要求データと識別データとは、後述の分散共有メモリ管理部１ａ−９が生成する情報である。
また、転送制御装置は、ペイロードを受信した場合には、前記送信要求データを自ノードの分散共有メモリのキューを構成する送信要求データ受信領域に書き込み、識別データと送信データをペイロードに書き込まれているメモリ番地に書き込む機能を有している。
【００２４】
アプリケーションプログラム１ａ−１（１ａ−１ａから１ａ−１ｎのそれぞれ）は、ノード１ａで実行されるプログラムであり、演算装置１ａ−２で実行される。ここでは、プログラムと記載しているが、プログラムにより実行されるプロセスを示してもよい。また、アプリケーションプログラム１ａ−１ａは、アプリケーションプログラムで代表しているが、ＯＳ（オペレーティングシステム）或いはミドルウェア、ライブラリなどであっても良い。
なお、説明においては、アプリケーションプログラム１ａ−１が、他のノード（のプロセス）に対して送信要求を送信する。また、アプリケーションプログラム１ａ−１を、プロセス１ａ−１として説明する。
【００２５】
分散共有メモリ管理部１ａ−９は、メモリ番地１ａ−３−１ａや送信データ長を含む識別データと識別データの番地を含む送信要求データとを生成し、各々分散共有メモリ内の送信要求データ領域と識別データ領域に書き込む機能を有している。
【００２６】
次に、プロセスが他のノードのプロセスへ送信する場合の動作を説明する。
演算装置１ａ−２で実行されるプロセスは、送信するためのデータ（以下、送信データ）を、内部バス１ａ−４を通してノード内メモリ１ａ−３の中にある分散共有メモリ領域１ａ−３−１に送信データを書き込むことにより、送信データ）を他のノード（のプロセス）へ送信する。
例えば、プロセス１ａ−１ａが、分散共有メモリ管理部１ａ−９を介して、メモリ番地１ａ−３−１ａで示される領域にデータを書き込むと、ノード番地対応手段１ａ−６が内部バス１ａ−４上を流れる該メモリ番地を読み込み、書き込んだメモリ番地１ａ−３−１ａに対応するノード番地を出力する。
【００２７】
転送制御装置１ａ−５は、内部バス１ａ−４上を流れる送信対象データ、メモリ番地、そして１ａ−６から出力されるノード番地を取得し、該ノード番地宛の送信用ペイロードに送信データとメモリ番地を書き込む。
また、分散共有メモリ管理部１ａ−９は、メモリ番地１ａ−３−１ａや送信データ長を含む識別データと識別データの番地を含む送信要求データとを生成し、夫々分散共有メモリ内の送信要求データ領域と識別データ領域に書き込む。
【００２８】
転送制御装置１ａ−５は、前送信要求データと識別データ何れも、前記の取得済みのノード番地宛のペイロードに書き込み、宛先ノードに送出する。
前記ペイロードを受信した受信ノードでは、転送制御装置が、前送信要求データを自ノードの分散共有メモリのキューを構成する送信要求データ受信領域に書き込み、識別データと送信データをペイロードに書き込まれているメモリ番地に書き込む。
【００２９】
こうして識別データと送信データは送信元のメモリ１ａ−３上の同一データと同じメモリ番地に書かれることになり、分散共有メモリ管理部１ａ−９が受信した送信要求データのキューから送信要求を読み、書き込まれた識別データの番地を読み、識別データに書かれた送信データのメモリ番地からはじまるメモリ領域を識別データに書かれた送信データ長だけ読み取ることで、ノード１ａからノード１ｂへの通信が行われる。ただし、送信順序は、送信要求データが最後になるようにする。
【００３０】
受信側のノードで、受信対象のプロセスが送信データを読めば、分散共有メモリ管理部１ａ−９が該メモリ領域を解放する通知をデータを送信したノードに応答として送信する（受信ノード内の分散共有メモリ上の、送信元ノードに対応したデータバッファ領域に書き込む）。
【００３１】
以上のように、例えば、送信ノードが送信する情報は、送信データ（プロセスが送りたい情報）、識別データ（送信データのメモリ番地、データ長等）、送信要求データ（識別データのメモリ番地等）、の３種類を含む。なお、送信ノードが送信する情報は、これに限られるものではなく、他の情報が含まれてもよい。
送信データと識別データとは、送受信とも分散共有メモリの送信元ノード毎に区別される領域に書かれるが、送信要求データのみは、送信側では送信元ノード毎に区別され、受信側ではキューに書かれ、キューから取り出された順に、送信要求データが示す識別データのメモリ番地に基づいて、識別データや送信データに関する読み取りなどの処理が行われる。
なお、実施の形態の説明においては、送信データと、識別データと、送信要求データとを、１つのペイロードとして送信するものとして説明しているが、これに限られるものではなく、送信データと、識別データと、送信要求データとを、任意に組み合わせたものを１つのペイロードとし、そのペイロードを送信してもよい。
【００３２】
なお、下位プロトコルがパケットを生成する際、送信データのメモリ番地やデータ長を送信データにつけて下位プロトコルのペイロードに書き込む構造をとってもよく、この場合、受信ノードが送信データの番地を読む際、識別データでなく送信データに付随する番地を読んでもよい（識別データも同じく番地をつけて送る構造でよく、識別データの受信側も送信データの場合と同様である）。
【００３３】
なお、分散共有メモリ上で送信データ（送受信側）、識別データ（送受信側）、送信要求データ（送信側）が、書き込まれる「番地」とは、あるメモリ番地においてある範囲を示すものである。例えば、データバッファ１ａ−３−１ａが０番地から９９番地まであるとすれば、さらにこれが複数に区分されており、０番地から９番地に１つの送信データを書き、次の送信データは１０番地から１９番地に書く、のような使用方法をとる。
書き込むデータが短ければ空きが生じるが、通常はこのように固定長で区分しておく。また、０から９番地にデータを書き込み、次に、２０から２９番地にデータを書き込んでもよい。
なお、ある「番地」に書き込む、とは、処理上、例えば、０から９番地の領域を、０番地で代表して、「０番地に書き込む」ことを意味する。
【００３４】
なお、図１では分散共有メモリ管理部１ａ−９は、演算装置１ａ−２内に存在するように示しているが、ＯＳの機能の一部としてもよい。または、分散共有メモリ管理部１ａ−９は、ノード１ａの演算装置１ａ−２ではなく、分散共有メモリ管理部１ａ−９を実行するノード内の他演算装置と該演算装置に付随する記憶領域に置かれて実行される機能であるが、他の位置に置いても良い。
なお、ノード番地対応手段１ａ−６は、図２ではテーブルのように示してあるが、テーブルでなくてビットのシフトやマスク、或いは、演算によってメモリ番地とノード番地を対応付ける機能を有するようにしてもよい。
または、ノード番地対応手段１ａ−６は、何らかの演算により、検出したメモリ番地をノード番地に変換し、出力するようにしてもよい。
【００３５】
次に、図３と図４とを用いて、ノードが送信を行う場合の処理と受信を行う場合との処理の手順を説明する。
ノードが、送信を行う場合には、図３に示すように、まず、プロセス１ａ−１ａが送信データを生成する（ステップＳ３１０）。ここでプロセスは、書き込むべきメモリ番地は検出済みである。プロセスは、生成した送信データと書き込むべきメモリ番地を、分散共有メモリ管理部１ａ−９へ送信する。
次に、分散共有メモリ管理部１ａ−９が、受信した送信データとメモリ番地とに基づき、分散共有メモリの検出した番地に生成した送信データを書き込む（ステップS３２０）。
次に、分散共有メモリ管理部１ａ−９が識別データと送信要求データとを生成する。また、分散共有メモリ管理部１ａ−９が、使用するメモリ番地をロックする（ステップS３３０）。
分散共有メモリ管理部１ａ−９が識別データと送信要求データとを指定番地に書き込む（ステップＳ３４０）。
次に、ノード番地対応手段がメモリ番地からノード番地（IPアドレス等）を出力する（ステップS３５０）。
次に、転送制御装置がメモリ番地書き込みと並行して送信データ、識別データ、送信要求データを読み取り、ノード番地宛の送信用フレーム（つまり、送信用ペイロード）を生成し、送出する（ステップS３６０）。
図には示していないが、送信元ノードで、その後、送信先ノードからの開放通知を受信すると、使用したメモリ番地のロックを解除する（後述のステップS４５０に相当）。
【００３６】
次に図４を用いて、ノードが受信を行う場合についての動作を説明する。
ノードが、受信を行う場合には、図４に示すように、まず、送信データと識別データと送信要求データが転送制御装置に到着すると」、これを転送制御装置が受信する（ステップS４１）。
次に、転送制御装置が、送信要求データはメモリ上のキューに格納し、識別データに付随してペイロードに書かれたメモリ番地（或いは送信要求データに書かれた番地）に識別データを書き、送信データに付随してペイロードに書かれたメモリ番地（或いは識別データ内に書かれた番地）に送信データを書き込む（ステップS４２０）。
【００３７】
次に、プロセスが、送信要求を先頭から読み込み、そこに書かれた識別データの番地から、識別データを読み、そこに書かれた番地とデータ長に従い送信データを読む（ステップS４３０）。
次に、プロセスが（或いはOS経由で）開放通知を生成し、送信と同じ手段で、データ送信元に返送する（ステップS４４０）。
送信元ノードで、開放通知を受信すると、開放通知に該当するメモリ番地のロックを解除する（ステップS４５０）。なお、ステップS４５０は、送信元ノードでの動作処理である。
【００３８】
次に、分散共有メモリを用いた通信において、同報通信を行う第１の実施の形態について詳しく説明する。
【００３９】
なお、本説明において用いる同報通信とは、マルチキャストおよびブロードキャストの両方を示す。
また、プロセス或いはアプリケーション或いはＯＳ（少なくとも転送制御装置より上位層であり、以下、プロセスとする）が、プロセスを実行するにあたり、他のどのプロセスが関連するかは検出しているか、あるいは、検出可能である。
例えば、それら関連するプロセスは、同一のメモリを参照して処理を行う。従って、関連するプロセスが参照するメモリ上の領域が、分散共有メモリのどのアドレス番地であるかは、プロセス自体が検出することができる。言い換えると、メモリ上のどの領域が、他のプロセスが参照する領域であるかを、プロセス自体が検出できる。
なお、ここでいう、「同一のメモリ」とは、分散共有メモリの構造をとり、複数ノードで分散して保持しているものである。
そのため、例えば、プロセスが同報通信を行う宛先とするプロセスを、プロセスが関連するプロセスとし、そのため宛先となるプロセスのメモリ番地を決定することが可能である。
また、この場合、プロセスは分散共有メモリのメモリ番地により識別される。
【００４０】
同報通信を行う場合、プロセス１ａ−１ａは、送信データと、同報対象の複数の分散共有メモリのメモリ番地（ここでは、分散共有メモリのメモリ番地がノードとプロセスを指定する情報となる）とを分散共有メモリ管理部１ａ−９へ送信する。また、対象データが同報である場合には、プロセス１ａ−１ａは、同報の通信を開始する通知（同報通知）を、分散共有メモリ管理部１ａ−９に送信する。
【００４１】
分散共有メモリ管理部１ａ−９は、プロセス１ａ−１ａから同報通知を受信し、該通知を契機に同報開始を示す識別子（以下、同報識別子）を生成し（送信データ領域のメモリ番地或いは該番地を識別可能な識別子を有する）、同報宛先ノード向けに送信する。分散共有メモリ管理部１ａ−９は、宛先ノードまでの間に中継ノードがある場合には、宛先ノードと中継ノードとに同報識別子を送信する。
なお、分散共有メモリ管理部１ａ−９は、例えば、ルーティングテーブルを有しており、ルーティングテーブルに基づき宛先ノードや中継ノードを決定する。
【００４２】
次に、分散共有メモリ管理部１ａ−９は、プロセス１ａ−１ａから受信した送信データと複数のメモリ番地情報とに基づき、直接通信する１個のノードに複数の宛先プロセスが存在する場合は、そのうち一つのプロセス宛のメモリ番地に書き込むことにより、１個のノードへ１つの送信データのみを送信する。
【００４３】
また、分散共有メモリ管理部１ａ−９は、送信データに関連する識別データ１ａ−８−ｂと送信要求データ１ａ−８−ｃを生成し、生成した識別データ１ａ−８−ｂは同報先の全てのプロセス宛のものを生成しておき中継或いは宛先ノードヘ送信し（図１、２で説明した送信手段による）、生成した送信要求データ１ａ−８−ｃは同報宛先ノード向けの番地に書き込むが（中継ノードが存在する場合は中継ノードに送信される。但し、送信データは中継ノードでなく、直接宛先ノードに送られても構わない）、一つのノードに複数の宛先プロセスが存在する場合は、そのうち一つのプロセス宛に送信する。
例えば、１つのノードに複数の送信先となるプロセスがある場合には、送信先となるプロセスのうち、プロセスの該当するメモリ番地の値が一番小さいメモリ番地を選択し、選択したメモリ番地のみに書き込み送信するようにする。または、例えば、特定の予め決めておいたメモリ番地を選択し、選択したメモリ番地のみに書き込み送信するようにする。
尚、分散共有メモリ管理部１ａ−９は、同報対象の送信データが全て送信された後に、送信要求データを送信する。
【００４４】
なお、例えば、宛先プロセスとノードとの関係を予め登録しているテーブルがあり、分散共有メモリ管理部１ａ−９は、そのテーブルに基づき、どの宛先プロセスがどのノードにあるかを検出し、１つのノードの複数の宛先プロセスがある場合には、１つのノードにおける１つの宛先プロセスのみに送信データと送信要求データとを送信する。
また、例えば、それぞれの分散共有メモリ管理部１ａ−９はルーティングテーブルを有しており、宛先ノードとルーティングテーブルとに基づき、宛先ノードまでの間にあるノード（中継ノード）を決定する。
【００４５】
分散共有メモリ管理部１ａ−９からの同報識別子を受信したノード（中継ノードまたは宛先ノード）は、受信した識別データが自ノード宛番地を示せば、つまり、同報識別子を受信したノードが宛先ノードであれば、受信した識別データで指定されるメモリ番地に自ノード宛のデータバッファに受信した送信データを書き込み、送信要求データが到着した後に、送信元ノード或いは中継ノードにメッセージ解放通知を送信する。なお、識別データはプロセスと対応する対応のメモリ番地を示している。
【００４６】
また、同報識別子を受信したノードは、受信した識別データが他ノード宛番地を示せばつまり中継ノードである場合、宛先ノード毎に、プロセス１ａ−１ａから同報通知を受信した分散共有メモリ管理部１ａ−９と同様の処理を実行し、同報通信の処理を実行する。また、同報識別子を受信したノードは、送信要求データが到着するまでは、識別データを自ノードの識別データ領域に書き込みを行う。
また、同報識別子を受信したノードは、記録した送信元ノードを参照して全ての後段ノード（送信宛先に至るまでに通過するノード及び宛先ノード）からの解放通知が到着した後、前段ノードヘ解放通知を送信する。
【００４７】
つまり、同報通信を行うとき、プロセスから同報通信であることを示す同報通知を受信することにより、分散共有メモリ管理部１ａ−９や他の装置は、以下のような送信処理を実行する。
まずノードは、複数のノード間の通信のために用いる分散共有メモリと、分散共有メモリのメモリ番地の情報であるメモリ番地情報と送信宛先となるノードを識別するノード情報とが予め関連付けられて記憶してあるノード番地対応テーブルと、を有している。
【００４８】
分散共有メモリ管理部１ａ−９は、送信データと送信宛先となるプロセスと関連する分散共有メモリのメモリ番地情報とを（プロセスより）受信し、受信したメモリ番地情報に対応するノード情報をノード番地対応テーブルに基づき取得し、取得したノード情報が同一のメモリ番地がある場合には、１つのメモリ番地を同一ノードメモリ番地情報として取得したノード情報が同一のメモリ番地から選択し、選択した同一ノードメモリ番地情報に受信した送信データを書き込み、同一ノードメモリ番地情報に書き込んだ送信データを参照するための識別情報をノード情報が同一のメモリ番地毎に生成し、生成した識別情報をノード情報が同一のメモリ番地に書き込む。
【００４９】
ノード番地対応手段は、分散共有メモリにデータが書き込まれるメモリ番地情報を取得し、取得したメモリ番地情報からノード番地対応テーブルに基づいてノード情報を取得し、取得したノード情報を転送制御装置に送信する。
転送制御装置は、ノード番地対応手段からのノード情報を受信し、分散共有メモリに書き込まれた送信データと識別情報と受信したノード情報とに基づき送信処理を実行する。
【００５０】
なお、この場合、転送制御装置は、複数のメモリ番地が１つのノードに送信する場合、例えば、１つのノードへ送信する１つのペイロードに、１つの送信データと、複数の識別データと、１つの送信要求データを書き込んで送信する。
【００５１】
ペイロードを受信したノードにおいては、分散共有メモリ管理部１ａ−９が、受信したペイロードの送信データを識別データに基づき、分散共有メモリに書き込む。また、ペイロードを受信したノードにおいては、分散共有メモリに、送信データが書き込まれることにより、送信の処理がなされる。
つまり、他のノード宛の分散共有メモリに書き込まれた送信データは、送信の時と同じ手順により、送信される。
なお、自身のノード（のプロセス）宛へのデータは、それ以上転送されることはない。そのため、転送される宛先は、転送により減少していく。
【００５２】
なお、受信元ノードから転送先ノードに転送を行った転送ノードは、転送先ノードから開放通知を受信するのを待ち、転送先ノードの全てから開放通知を受信した後、受信元ノードへ開放通知を送信する。
転送ノードが、それ以上転送しない場合には、転送ノードは、開放通知を、受信元ノードへ送信する。
転送ノードが、転送するか否かの検出は、識別ノードが自身のノードだけであり、他のノードの情報が無いことにより検出する。
【００５３】
次に、図５と図６とを用いて、ノードが送信を行う場合の処理と受信を行う場合との処理の手順を説明する。
ノードが、送信を行う場合には、図５に示すように、まず、プロセスが、同報通信のための送信データを生成する（ステップＳ５１０）。ここでプロセスは、書き込むべきメモリ番地（送信先のプロセス）は検出済みである。プロセスは、生成した送信データと書き込むべきメモリ番地とを、分散共有メモリ管理部１ａ−９へ送信する。ただし、ここでは、宛先となるメモリ番地は複数あり、プロセスは、複数のメモリ番地を送信するものとする。また、プロセスは、同報を示す通知を分散共有メモリ管理部１ａ−９へ送信する。
【００５４】
次に、同報を示す通知を受信した分散共有メモリ管理部１ａ−９が、同報識別子を宛先ノードおよび中継ノードに送信する（ステップS５１５）。
次に、分散共有メモリ管理部１ａ−９が、同報を示す通知を受信し、受信した送信データとメモリ番地とに基づき、分散共有メモリの検出した番地に生成した送信データを書き込む（ステップS５２０）。ただし、複数の宛先が同じノードである場合には、１つの宛先のみに送信データを書き込む。
【００５５】
次に、分散共有メモリ管理部１ａ−９が識別データと送信要求データを生成する。また、分散共有メモリ管理部１ａ−９が、使用するメモリ番地をロックする（ステップS５３０）。
分散共有メモリ管理部１ａ−９が識別データと送信要求データとを指定番地に書き込む（ステップＳ５４０）。
次に、ノード番地対応手段がメモリ番地からIPアドレス等のノード番地を出力する（ステップS５５０）。
次に、転送制御装置がメモリ番地書き込みと並行して送信データ、識別データ、送信要求データを読み取り、ノード番地宛の送信用フレームを生成し、送出する（ステップS５６０）。ただし、複数の宛先プロセス毎に、識別データを送信する。
【００５６】
図には示していないが、送信元ノードで、その後、送信先ノードからの開放通知を受信すると、使用したメモリ番地のロックを解除する。
【００５７】
次に図６を用いて、同報識別子を受信した場合における、ノード（宛先ノードまたは中継ノード）が受信を行う場合についての動作を説明する。なお、同報識別子を受信していない場合のノードの受信を行う場合の動作は、図４を用いて説明した受信と同じである。
まず、送信要求データのキューの先頭データを読む（ステップＳ６１０）。
送信要求データが示す識別データが示すメモリ番地が他ノードを含むか否かを検出する（ステップＳ６５０）。
ステップＳ６５０の検出において、他ノードを含む場合には、宛先ノード（或いは宛先ノード向けの中継ノード）を決定する（ステップＳ６６０）。
宛先ノード（或いは中継ノード）に対応するメモリ番地（送信データ領域内）に、識別データが示す送信データ番地に書かれたデータを書き込む（ステップＳ６７０）。
宛先ノード（或いは中継ノード）に対応するメモリ番地（識別データ、送信要求領域内）に、宛先のメモリ番地やデータ長を含む識別データ、識別データの番地を含む送信要求を生成し、書き込む（ステップＳ６６０）。
【００５８】
ステップＳ６５０の検出において、他ノードを含まない場合には、１対１通信の受信処理を実行する（ステップＳ６９０）。なお、Ｓ６９０において、識別データ内のメモリ番地が複数含まれる場合は、各番地に対して、１対１通信の受信処理を実行する。これは、図４に説明した、受信処理を同じである。
【００５９】
次に、図７は、同報対象となるデータの送信の後或いは、データとあわせて、或いは、データ送信前であって、該データが同報データであることを送信元プロセスが指示した後に、該データが書き込まれたメモリ領域を同報データが存在する領域として通知し処理する場合を説明する図である。ここでは、図１、２もあわせて参照している。
なお、図７において、同一の処理については同一の番号を付け、その説明を省略している。
【００６０】
動作の説明においては、ノード１ａのプロセス１ａ−１ａが、ノード１ｃの２つのプロセスと、ノード１ｂの１つのプロセスとに同報通信する場合について説明する。また、ノード１ｂが、ノード１ａとノード１ｃとの間の通信を中継する場合について説明する。
【００６１】
処理（ａ）プロセス１ａ−１ａは、同報対象の送信データを生成し、生成した送信データと、同報の通信を開始する通知（１ａ−１０）と、同報対象のプロセス名（メモリ番地で識別するのでメモリ番地）とを、分散共有メモリ管理部１ａ−９に送信する。
【００６２】
分散共有メモリ管理部１ａ−９は、同報対象の送信データを生成し同報宛先ノード向けの番地に書き込むが、１個のノードに複数の宛先プロセスが存在する場合は、特定の予め決められたメモリ番地（または、１つの選択したメモリ番地）に書き込む（１ａ−８−ａ）。この書き込み領域が、複数のプロセス宛の送信に用いられる。
なお、図７において、「※１」で示す、プロセス１ａ−１ａが同報対象の送信データを生成するステップが、同報通信の開始である。
【００６３】
処理（ｂ−１）分散共有メモリ管理部１ａ−９は、該通知を契機に同報開始を示す識別子（以下、同報識別子）を生成し（送信データ領域のメモリ番地或いは該番地を識別可能な識別子を有する）、同報宛先ノード向けに送信する（図１、２で説明した送信手段による）。
送信データは、ひとつノードに複数の宛先プロセスが存在する場合は、一つのノードにつき一つだけ送信される（図１、２で説明した送信手段による）。
【００６４】
処理（ｂ−２）分散共有メモリ管理部１ａ−９は、送信データに関連する識別データ１ａ−８−ｂと送信要求データ１ａ−８−ｃを生成し、前者は同報先の全てのプロセス宛のものを生成しておき中継或いは宛先ノードヘ送信し（図１、２で説明した送信手段による）、後者は同報宛先ノード向けの番地に書き込むが（中継ノードが存在する場合は中継ノードに送信される。但し、送信データは中継ノードでなく、直接宛先ノードに送られても構わない）、ひとつノードに複数の宛先プロセスが存在する場合は、そのうち一つのプロセス宛に送信する（図１、２で説明した送信手段による）。
尚、送信要求データは同報対象の送信データが全て送信された後に送信される（図１、２の説明と同じ）。
また、送信宛先のノード番地を記録する。（ａ）で書き込まれた送信データもやはり中継ノードか宛先ノードに送られる（図７の※２である）。
【００６５】
処理（ｃ−１およびｄ）同報識別子を受信した中継ノードまたは宛先ノードは、受信した識別データが自ノード宛番地を示せば（同報識別子を受信した中継ノードが宛先ノードである）、識別データで指定される（識別子はプロセス対応の番地を示す）メモリ番地に自ノード宛のデータバッファに受信した送信データを書き込む。
また、同報識別子を受信した中継ノードまたは宛先ノードは、送信元ノード或いは中継ノードにメッセージ解放通知を送信する（解放通知は送信要求データが到着した後に行う）。
【００６６】
処理（ｃ−２）同報識別子を受信した中継ノードまたは宛先ノードは、識別データが他ノード宛番地を示せば宛先ノード毎に、処理（ｂ−１）と処理（ｂ−２）とを実行する。また、同報識別子を受信した中継ノードまたは宛先ノードは、送信要求データが到着するまでは、識別データを自ノードの識別データ領域に書き込みを行う。
【００６７】
処理（ｅ）中継ノードは、記録した送信元ノードを参照して全ての後段ノード（送信宛先に至るまでに通過するノード及び宛先ノード）からの解放通知が到着した後、前段ノードヘ解放通知を送信する。
【００６８】
処理（ｆ）送信元ノードは、記録した送信先ノードを参照して全ての後段ノードからの解放通知が到着した後、この同報で使用した全てのデータバッファを解放する。
尚、送信要求データは識別データを介して送信データとの対応付けが可能なので、受信ノード或いは中継ノードでは同報終了をも示すこととなり、本一連の通信に用いたデータバッファは、以降の通信においては前記処理（ａ）〜（ｆ）の処理ではなく、通常の通信に用いることができる。送信元ノードは送信要求データ以外に同報終了通知を別途送信しても良い。
【００６９】
なお、図７の説明において、同報の通信を開始する通知１ａ−１０は、送信データ１ａ−８−ａ、或いは、識別データ１ａ−８−ｂで各ノード向けのものから１つ選択したもの、或いは、送信要求データ１ａ−８−ｃ、の内の何れかに含めて送信してもよい。
これは、通常、一回のデータ送信に関わる一連の送信は、連続して行われ（下位レイヤーの１つのペイロードに書き込まれる場合は、１つに書き込まれることも有り得る）、受信側でプログラムが読み出し処理が完結するのは、送信側で最後に送信される送信要求データ１ａ−８−ｃが到着してからとなるので、たとえ、最後尾の送信要求データ１ａ−８−ｃに同報の通信を開始する通知１ａ−１０が含まれていたとしても、受信側の処理は問題なく行われるからである。
【００７０】
なお、図７のノードＡの処理において、処理（ａ）と処理（ｂ−１）との組が２回記載されているが、これは、最初に処理される処理（ａ）と処理（ｂ−１）との組とが同報通知に関する処理であり、次に処理される処理（ａ）と処理（ｂ−１）との組とが送信データに関する処理である。
【００７１】
また、図７における信号送信を示す線は、ネットワーク等の伝送手段により一本の線が複数の伝送に分けられることや、複数の線が一回の伝送で行われることもあり、ノード内の情報伝達も同様である。
【００７２】
なお、説明において、プロセス１ａ−１ａと分散共有メモリ管理部１ａ−９とが別のものであるとして説明したが、これは一体としてもよい。
また、プロセス１ａ−１ａまたは分散共有メモリ管理部１ａ−９が、ノードのＯＳの一部として機能するようにしてもよい。
【００７３】
第１の実施形態においては、送信データを、１つの宛先ノードの複数のプロセスにおいて送信データを送信する場合、１つの宛先ノードについて、１つの送信データしか送信しないため、送信におけるネットワークの負荷が低減するという効果がある。
【００７４】
次に、図８を用いて、同報通信を行う第２の実施形態について説明する。図８は、同報対象となるデータの送信如何にかかわらず、予め、分散共有メモリの特定の領域に対応するノード番地を、同報を示す番地に定めておく場合を説明する図である。ここでは図１、２もあわせて参照して説明する。
【００７５】
第２の実施形態においては、プロセス１ａ−１ａは１つの宛先（メモリ番地）を通知してくるのみであり、ノード番地対応手段１ａ−６または展開手段４が、１つの宛先を複数の宛先ノード番地に展開することにより、同報通信を行う。
【００７６】
なお、ここで用いる「展開する」とは、個別の宛先に変換することであり、該変換により何らかの手段で送信データは個別の宛先向けに複製されることになる。但し変換しなくても個別の宛先に到達する場合は変換不要であるので、「展開」は「個別の宛先に変換しなければ個別の宛先に到達しない場合は個別の宛先に変換し、変換しなくても個別の宛先に到達する場合は変換しない」ことを示す。
【００７７】
展開する第１の方法は、ノード番地対応手段において、予め１つのメモリ番地と、複数の宛先ノード番地とを関連付けて複数ノード番地対応手段として記憶しておき、ノード番地対応手段が、受信したメモリ番地に対応する複数の宛先ノード番地を複数ノード番地対応手段より取得し、取得した複数の宛先ノード番地を転送制御装置へ送信し、転送制御装置が受信した複数の宛先ノード番地への通信を実行することにより、同報通信を実行する方法である。
【００７８】
第２と第３の方法は、展開手段を用いる方法である。展開手段は、同報の宛先を示すための同報識別子と複数の宛先ノード番地とを予め関連付けて同報識別子対応手段として記憶しており、同報識別子を受信すると、受信した同報識別子に対応する複数の宛先ノード番地を同報識別子対応手段より取得し、取得した複数の宛先ノード番地を出力する機能を有する。
つまり、展開手段は、同報識別子を複数の宛先ノード番地に展開する機能を有する。なお、同報識別子とは、一意に識別されるものである。
【００７９】
展開する第２の方法は、ノード番地対応手段において、メモリ番地に同報を示す同報識別子を予め関連付けて記憶しておき、１つのメモリ番地を受信したノード番地対応手段がメモリ番地を受信すると、メモリ番地に対応する同報識別子を展開手段に送信し、ノード番地対応手段からの同報識別子を受信した展開手段が、受信した同報識別子に対応する複数の宛先ノード番地を同報識別子対応手段に基づいて取得し、取得した複数の宛先ノード番地を転送制御装置へ送信し、受信した複数の宛先ノード番地へ転送制御装置が送信することにより、同報通信を実行する方法である。
【００８０】
展開する第３の方法は、ノード番地対応手段において、メモリ番地に同報を示す同報識別子を予め関連付けて記憶しておき、１つのメモリ番地を受信したノード番地対応手段がメモリ番地を受信すると、メモリ番地に対応する同報識別子を転送制御装置へ送信し、ノード番地対応手段からの同報識別子を受信した転送制御装置が、受信した同報識別子を展開手段に送信し、転送制御装置からの同報識別子を受信した展開手段が、受信した同報識別子に対応する複数の宛先ノード番地を同報識別子対応手段に基づいて取得し、取得した複数の宛先ノード番地に基づいて送信することにより、同報通信を実行する方法である。
【００８１】
次に図８を用いて、第１から第３の展開の方法について説明する。
なお同図において、同様の構成においては同一の記号番号を付け、異なる方法については「’」、「’’」または「’’’」を付けて、説明する。
【００８２】
ノード番地対応手段１ａ−６は、図８に示すように、通常の用途（相手ノードが１個）に対応する領域１ａ−６Ａと、同報用途に対応する領域１ａ−６Ｂと、を有する。
ノード番地対応手段１ａ−６の中で、通常の用途である１ａ−６Ａにおいては、例えば１つのメモリ番地１ａ−６−１−ａに、１つのノード番地１ａ−６−２−aに対応付けて記憶されている。
ノード番地対応手段１ａ−６の中で、同報用途に用いる１ａ−６Ｂにおいては、例えば１つのメモリ番地１ａ−６−１−xに、３つのノード番地１ａ−６−ｘ−１と、１ａ−６−ｘ−２と、１ａ−６−ｘ−３とが対応付けて記憶されている。
第２の実施形態の第１例においては、このように、ノード番地対応手段１ａ−６の中で、予め１つのメモリ番地に複数のノード番地の対応を記憶しておき、１つのメモリ番地が入力された場合には、入力された１つのメモリ番地に対応する複数のノード番地を予め記憶している対応より取得し、取得した複数のノード番地を出力することにより、取得した複数のノード番地への同報通信を行う。
【００８３】
ノード番地対応手段１ａ−６はメモリ番地を入力すれば１個のノード番地を出力するように設定するが、特定のメモリ番地の入力に対しては複数のノード番地を出力する、或いは、下位プロトコルにおいて同報を示す識別子（例えば下位層がＥｔｈｅｒｎｅｔ（登録商標）であればブロードキャストアドレス、下位層がＩＰ層であればマルチキャストアドレス、のように、前記識別子はアドレスであっても構わない）を出力する。
【００８４】
通常、ノード番地対応手段１ａ−６は、例えばメモリ番地１ａ−６−１−ａが入力されれば、１個のノード番地１ａ−６−２−ａが出力する。
ノード番地対応手段１ａ−６は、メモリ番地１ａ−６−１−ｘが入力されれば１ａ−６−２−ｘの複数（図４では１ａ−６−２−ｘは３つのノード番地１ａ−６−２−ｘ−１、２、３が含まれている）の番地が出力する。
【００８５】
転送制御装置１ａ−５’が、分散共有メモリ領域１ａ−３−１のメモリ番地１ａ−６−１−ｘに書き込まれたデータ１ａ−８−ｘを、ノード番地１ａ−６−２−ｘの複数のノード番地宛に送り、或いは、メモリ番地１ａ−６−１−ｙが入力されれば同報を示す識別子１ａ−６−２−ｙが出力され、転送制御装置１ａ−５’’が１ａ−６−ａのメモリ番地１ａ−６−１−ｙに書き込まれたデータ１ａ−８−ｙを送出するが、識別子１ａ−６−２−ｙは下位層所定のデータ構造の宛先識別子を書き込む領域に転送制御装置１ａ−５’’により書き込まれて下位層の処理装置３（該送信ノードが有する機能でなくてもよく、例えばネットワーク内に置かれる機能であっても良い）に渡され、或いは転送制御装置１ａ−５’’が下位層の処理装置３に書き込む指示などの処理を実行し、下位層（下位層でなくても良いが下位層に相当する機能）３が識別子１ａ−６−２−ｙを”展開”して、該当する複数のノード（番地１ａ−６−２−ｙ−１、２、３）宛にデータを送る。
【００８６】
尚、前記展開を行なう手段は、図８で符号４（４’’または４’’’）で示す展開手段であり、通常下位層の機構や規約に依存する手段であるが（例えば、Ｅｔｈｅｒｎｅｔ（登録商標）のブロードキャスト番地やＴＣＰ／ＩＰではＩＰマルチキャスト番地等）、予め決められた下位層の機構や規約に依存しない手段で展開しても構わない。
つまり、図８で、分散共有メモリ側と下位層側とに区切りを示し、展開手段がどちらか一方に含まれる記載としているが、どちらにも含まれない形態でも良い。
【００８７】
また、図８では、ノード番地対応手段１ａ−６で一つのメモリ番地を複数のメモリ番地に対応付ける場合（メモリ番地１ａ−６−１−ｘの例）と、ノード番地対応手段１ａ−６で一つのメモリ番地を同報を示す識別子（メモリ番地１ａ−６−２−ｙの例）に対応付ける場合を両方記載しているが、どちらか一方しか有しない構成でも良い。
【００８８】
さらに、一つのメモリ番地を複数の“同報を示す識別子”に対応付けても良い。その場合は、「展開手段」が転送制御装置（を含む）より上位層にある場合では、同報を示す識別子１ａ−６−２−ｘ’が展開手段４”で同報先複数ノード番地１ａ−６−２−ｘ’−１、１ａ−６−２−ｘ’−２、１ａ−６−２−ｘ’−３に展開され、転送制御装置１ａ−５”に入力された同報対象の送信データ１ａ−８−ｘ’を、前記複数ノード番地毎に転送する。
【００８９】
この展開手段が転送制御装置（を含む）より下位層にある場合は、同報を示す識別子１ａ−６−２−ｙが転送制御装置に送信対象データ１ａ−８−ｙとともに入力され、同報を示す識別子１ａ−６−２−ｙが展開手段４’’’で展開され下位層３で個別の宛先に送られる。
【００９０】
尚、メモリ番地１ａ−６−１−ａ１が単一のノード番地１ａ−６−２−ａに変換される場合は、相手のノードから解放通知が到着してからメモリ領域を解放するが、第２の実施形態における同報通信においては、解放通知が到着しなくてもメモリ領域を解放するような一貫性を保証しない方式としても構わない。
宛先ノードでは、プロセスが受信確認後、解放通知を生成し送信元ノードに送り、送信元ノードは全ての宛先ノードからの解放通知を受信した後、通信に利用したメモリ領域を開放する。
【００９１】
第２の実施形態においては、プロセスは１つのメモリ番地にのみをノード番地対応手段１ａ−６に送信するだけで同報通信が出来るようになり、プロセスが同報通信を行う手順が簡易になるという効果がある。
【００９２】
図９は、プロセス（アプリケーションプログラム）或いはＯＳ（分散共有メモリ管理部１ａ−９などの機能であるが、そうでなくても良い。プロセスが１個のデータを生成し、ＯＳ或いは分散共有メモリ管理部１ａ−９などが宛先毎の複数データとしてもよいし、プロセス自体が宛先毎の複数データを生成しても良い）が送信データを、複数の宛先ノードが対応した複数のメモリ番地に、それぞれ書き込む場合である同報通信の第３の実施形態を示している。
【００９３】
プロセス１ａ−１ａが送信データを生成し、ＯＳ或いは分散共有メモリ管理部１ａ−９経由で分散共有メモリの番地１ａ−６−１−ｉで示される領域に書込み（１ａ−８−ｉ）、同じく、メモリ番地１ａ−６−１−ｊにも同じデータ（１ａ−８−ｉ）を書込み、同じくメモリ番地１ａ−６−１−ｋにも同じデータ（１ａ−８−ｉ）を書込むと、ノード番地対応手段１ａ−６においてメモリ番地１ａ−６−１−ｉがノード番地１ａ−６−２−ｉに変換され、メモリ番地１ａ−６−１−ｊがノード番地１ａ−６−２−ｊに変換され、メモリ番地１ａ−６−１−ｋがノード番地１ａ−６−２−ｋに変換され、転送制御装置１ａ−５で、それぞれノード番地１ａ−６−２−ｉ、ｊ、ｋ宛のペイロードに書き込まれて該宛先に送信される。
【００９４】
以上のように、第３の実施形態においては、プロセス（或いはＯＳ）が、宛先プロセスに対応するメモリ領域に夫々同一のデータを書き込むことにより、複数プロセスに同一データを送信する。
【００９５】
ノード番地１ａ−６−２−ｉを有するノードは自ノード宛のデータのみを受信することになり、自ノードの分散共有メモリ番地１ａ−６−１−ｉにデータ１ａ−８−ｉが書き込まれ、プロセスが該データを読み、該メモリ領域解放通知を送信元ノード１ａに送り、ノード１ａ−６−２−ｊ、ｋも同様の動作となり、同報が実行される。
【００９６】
第３の実施形態においては、プロセスは１つのデータのみを生成するのみ同報通信が出来るようになり、プロセスが同報通信を行う手順が簡易になるという効果がある。
【００９７】
以上説明したように、本発明は、分散共有メモリを用いたノード間転送制御装置がネットワークなどのデータ伝達手段を用いて同報通信を行う際に、メモリ番地が宛先プロセス毎に区分されたローカルメモリの分散共有メモリ領域にデータを書き込めば、メモリ番地と宛先プロセスの番地が対応付けられて、メモリ番地に対応したノード番地を有する相手プロセスに転送される特徴等の、簡易な転送手順やシステム構造を利用して、少ない手順でデータ送信を可能にすることにより、他の通信手段のように通信処理機能やネットワークなどのデータ伝達手段に大きな負荷をかけることなく、容易に同報通信の実現を可能にする。以下にその方式（第１から第３の実施形態における方法）を、次のＡ、Ｂ−１、Ｂ−２とＣの手順としてまとめる。
【００９８】
（手順Ａ）同報手順においては、同報宛先ノード等にデータの送信にあわせて通知を送ることでデータ送信にあわせて特定のメモリ番地（または、１つの選択したメモリ番地）を同報用に用いることを通知し、各同報先プロセスに個別に送付するデータは宛て先の識別情報のみとして、同報対象のデータのメモリ書込みはノード毎に一箇所として（通知した同報用メモリ領域のみに書き込む）、メモリ番地をノード番地に変換し、ネットワーク内もノード毎に一つのデータが送信されるようにしながら複数プロセス宛てにデータを送信する。
【００９９】
（手順Ｂ−１）データの送信と無関係に予め特定のメモリ番地を同報用に用いることを決定しておき、同報用メモリ領域が複数の宛先プロセス毎のノード番地に対応しているように設定しておき（或いは同報を示す識別子に対応しているように設定しておき）、メモリ番地をノード番地（或いは識別子）に変換し、該メモリ領域に書き込まれたデータをプロセス毎の宛先番地に送信する（或いは同報を示す識別子から宛先ノード番地を展開して宛先ノードに送達する）。
【０１００】
（手順Ｂ−２）データの送信と無関係に予め特定のメモリ番地を同報用に用いることを決定しておき、同報用メモリ領域が下位層の同報を示す識別子に対応しているように設定しておき、メモリ番地をノード番地（或いは識別子）に変換し、該メモリ領域に書き込まれたデータを下位層が同報を示す識別子から宛先ノード番地を展開して宛先ノードに送達する。
【０１０１】
（手順Ｃ）プロセス（或いはＯＳ）が、宛先プロセスに対応するメモリ領域に夫々同一のデータを書き込むことにより、複数プロセスに同一データを送信する。
【０１０２】
なお、上記説明した手順（（手順Ａ）（手順Ｂ−１）（手順Ｂ−２）（手順Ｃ））を任意に組み合わせることにより、宛先プロセスが複数含まれるノードには１個の送信データしか送信しないが、送信データが書き込まれたメモリ領域に対応するノード番地はプロセス毎にせず、ノードに宛先プロセスが複数含まれる場合は対応するノード毎にして、宛先ノードで宛先プロセスに分配するようにしてもよい。
【０１０３】
尚、ノードと記述した装置は、コンピュータ、サーバ、ルータ、センサ（ノード）、駆動装置、制御装置などで通信機能を有する装置であれば制限はない。
また、宛先や送り元をノードと記載しているが、通常は送受信対象のデータをリードライトするのはノード内のプロセスであり、即ち、本発明ではメモリ番地にノード番地を対応付けるとの記載をしているが、メモリ番地にプロセスの番地を対応付けても良い。
その場合、あるメモリ番地にデータが書き込まれたら、メモリ番地に対応するプロセスが存在するノードのノード識別子がノード番地対応手段から出力され、データが該ノードヘ送信され同一番地（仮想的でも構わない）に書き込まれる、との処理であっても良い。
【０１０４】
このように、送信元受信先をノードと記載していてもノードをプロセスに置き換えて処理を行う場合も、本発明は対象とする。
ノード番地とノード識別子はＥｔｈｅｒｎｅｔ（登録商標）アドレス、ＡＴＭアドレス、ＩＰアドレス等、ノードを識別する識別子を示していて、呼称はどちらであっても区別しなくて良い。また、送信データを生成したり送信指示をするのはプロセスを示すように記してあるが、ＯＳ内の機能が送信データを生成したり送信を指示しても構わない。
【０１０５】
なお、メモリ配置は、物理的でなくてもよく、仮想メモリを用いて本発明を実施しても構わない。本発明によるメモリ柄成は、ネットワーク接続前に通信機能を初期化する段階で予め行ってもよく、すでに通信を行っている状況でメモリを再構成しても構わない。ノードの関係は、便宜上一列のように表記しているが、リング状やスター上など、実際の物理的な接続状態はどのような形態であっても構わない。
【０１０６】
以上、詳細に説明を記述した如くに、本発明により、分散共有メモリを用いる転送制御装置において、データ送信後或いは予めデータ送信前に、分散共有メモリ上の特定の番地を複数ノード向けの送信に用いることを、自ノードを含むネットワーク内の一つ以上のノードに対して通知し、分散共有メモリを管理する機能が対応する通信層が、全ての同報先に個別に送信データを送信しないで一部の宛先或いは中継ノードに対してのみデータを送信することにより、分散共有メモリを管理する機能が対応する通信層の負荷を低減することができる。
【０１０７】
即ち、分散共有メモリを用いたデータ転送機能は、宛先のプロセス数のデータ送信処理を行う必要があったが、隣接する中継ノード或いは宛先ノードの数だけ送信処理を行えば良い。
或いは、分散共有メモリを管理する機能が対応する通信層の下位層の同報機能を利用して、同報通信を行うことにより、分散共有メモリを管理する機能が対応する通信層の負荷を低減することができる。
さらに、ＩＰ通信など、既存の普及した同報通信方式においては、情報の送達確認が簡略化されていたり、或いは、確実な送達確認を行う場合は複雑な手順が必要になるなどの例が多く、一方、分散共有メモリを用いた同報通信では簡易な手段でかつ一貫性を保つことが可能になる。
【０１０８】
なお、図１におけるノード（１ａまたは１ｂ）の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより同報通信を行ってもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。
【０１０９】
図１０と図１１を用いて、本発明の動作の一例を、更に説明する。
図１０はルーティングテーブルに基づき宛先ノードや中継ノードを決定する分散共有メモリを用いた通信を示す図である。
図１０を用いて、ノードＡ、ノードＢ、ノードＣの３つのノードがあり、ノードＡがノードＣへ送信し、ノードＢがノードＡとノードＣとの間の通信を中継する場合について説明する。
なお、説明においては、ルーティングテーブルとメモリ領域と対応テーブルとを用いた動作について説明する。なお、説明はしないが、他の構成も、本発明に従い動作している。また、説明においては、プロセスが動作するとして説明するが、プロセスに限定されるものではなく、ＯＳなど他の構成により動作してもよい。
【０１１０】
まず、各ノードは、ルーティングテーブルと、メモリ領域と、メモリ領域のアドレス番地とノード番地とを対応付けた対応テーブルと、を有している。
まず、ノードＡの（図に示していない）プロセスＰＡ１が、ノードＣのプロセスＰＣ１へ送信する。そのため、まずプロセスＰＡ１が、宛先がノードＣであることより、ルーティングテーブルＲＡに基づき、ノードＣへ送信するにはノードＢ宛に送信すればいいことを検出する（ステップＳ１０１）。
次に、プロセスＰＡ１は、ノードＢに対応するメモリ領域ＭＡのメモリ番地に送信する送信データを書き込む（ステップＳ１０２）。
アドレスＢに書き込まれた送信データは、対応テーブルＴＡに基づき宛先が決定され（ステップＳ１０３）、決定されたノードであるノードＢに送信データが送信され、ノードＢのアドレスＢに書き込まれる（ステップＳ１０４）。なお、ステップ１０３で送信されたデータには、宛先がノードＣであるという情報が付けられている。
【０１１１】
ノードＢでは、ノードＢの（図に示していない）プロセスＰＢ１が、ノードＢのアドレスＢに書き込まれた送信データの情報に基づき、宛先がノードＣであることより、ルーティングテーブルＲＢに基づき、ノードＣへの転送はノードＣ宛に送信すればいいことを検出する（ステップＳ１０５）。
次に、検出したノードＣ宛のメモリ領域ＭＢのメモリ番地に送信データを書き込む（ステプＳ１０６）。
ノードＣに書き込まれた送信データは、対応テーブルＴＢに基づき宛先が決定され（ステップＳ１０７）、決定されたノードであるノードＣに送信データが送信され、ノードＣのアドレスＣに書き込まれる（ステップＳ１０８）。
例えば、以上のようにして、ルーティングテーブルを用いて、分散共有メモリを用いてノード間の通信がなされる。
【０１１２】
次に、図１１を用いて、同報通信時における送信データの書き込み方を説明する。
図１１に示すように、ノードＡにはノードＢとノードＥとが接続し、ノードＢはノードＣとノードＤとが接続し、ノードＥにはノードＦとノードＧとが接続するとする。
また、ノードＡにはプロセスＰ＿Ａ１があり、ノードＢにはプロセスＰ＿Ｂ１とＰ＿Ｂ２とがあり、ノードＣにはプロセスＰ＿Ｃ１とＰ＿Ｃ２とがあり、ノードＥにはプロセスＰ＿Ｅ１とＰ＿Ｅ２とがあり、ノードＦにはプロセスＰ＿Ｆ１とＰ＿Ｆ２とＰ＿Ｆ３とがあるとする。
【０１１３】
ここで、ノードＡのプロセスＰ＿Ａ１が、ノードＣのプロセスＰ＿Ｃ１とＰ＿Ｃ２、および、ノードＦのプロセスＰ＿Ｆ１とＰ＿Ｆ２とＰ＿Ｆ３とに、同報通信を行う場合に、ノードＡの分散共有メモリにどのように送信データを書き込むかを説明する。
まず、ノードＡのプロセスＰ＿Ａ１は、どのノードがどのプロセスと対応するのかを検出することが可能であるので、プロセスＰ＿Ｃ１とＰ＿Ｃ２とは、同じノードＣであることを検出し、また、プロセスＰ＿Ｆ１とＰ＿Ｆ２とＰ＿Ｆ３とは、同じノードＦであることを検出する。
【０１１４】
従って、ノードＡのプロセスＰ＿Ａ１は、同じノードＣである、プロセスＰ＿Ｃ１とＰ＿Ｃ２へは、１つの送信データを送信し、同じノードＦである、プロセスＰ＿Ｆ１とＰ＿Ｆ２とＰ＿Ｆ３へは、１つの送信データを送信することを検出する。
また、ノードＡのプロセスＰ＿Ａ１は、同じノードであるノードＣへはプロセスＰ＿Ｃ１宛てのメモリ番地のみへ、同じノードであるノードＦへはプロセスＰ＿Ｆ１宛てのメモリ番地のみへ、送信データを書き込み送信することを検出する。
【０１１５】
次に、ノードＡのプロセスＰ＿Ａ１は、ルーティングテーブルに基づき、ノードＣへ送信するためには、ノードＢへ送信することを検出し、また、ノードＦへ送信するためには、ノードＥへ送信することを検出する。
【０１１６】
次に、ノードＡのプロセスＰ＿Ａ１は、例えばプロセスＰ＿Ｂ１宛てのメモリ番地に、プロセスＰ＿Ｃ１とＰ＿Ｃ２宛てのための１つの送信データを書き込む。また、ノードＡのプロセスＰ＿Ａ１は、例えばプロセスＰ＿Ｅ１宛てのメモリ番地に、プロセスＰ＿Ｆ１とＰ＿Ｆ２宛てのための１つの送信データを書き込む。
なお、ノードＡのプロセスＰ＿Ａ１は、識別データは、プロセスＰ＿Ｃ１とＰ＿Ｃ２、および、プロセスＰ＿Ｆ１とＰ＿Ｆ２とＰ＿Ｆ３宛てに生成する。
【０１１７】
以降、ノードＢとノードＥとで、送信データと識別データに基づいて転送処理がなされ、ノードＡからの、プロセスＰ＿Ｃ１とＰ＿Ｃ２、および、プロセスＰ＿Ｆ１とＰ＿Ｆ２とＰ＿Ｆ３への同報通信がなされる。
【０１１８】
以上、この発明の実施形態を図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【産業上の利用可能性】
【０１１９】
本発明は、分散共有メモリを用いた通信装置に用いて好適である。
【図面の簡単な説明】
【０１２０】
【図１】この発明の一実施形態による分散共有メモリを用いた同報通信装置の構成を示すブロック図である。
【図２】図１のノード番地対応手段１ａ−６を詳細に説明するための説明図である。
【図３】図１のノードが送信をする場合の動作を示すフローチャート図である。
【図４】図１のノードが受信をする場合の動作を示すフローチャート図である。
【図５】図１のノードが同報通信の送信をする場合の動作を示すフローチャート図である。
【図６】図１のノードが同報通信の受信または転送をする場合の動作を示すフローチャート図である。
【図７】本発明の第１の実施形態による同報通信を説明する説明図である。
【図８】本発明の第２の実施形態による同報通信を説明する説明図である。
【図９】本発明の第３の実施形態による同報通信を説明する説明図である。
【図１０】ルーティングテーブルを用いた本発明の動作について説明する説明図である。
【図１１】同報通信時における送信データの書き込み方を説明する説明図である。
【符号の説明】
【０１２１】
１ａ、１ｂ、１ｃ  ノード
１ａ−１ａ、・・、１ａ−１ｎ、１ｂ〜１ａ、・・、１ｂ−１ｎ、１ｃ−１ａ  プロセス
１ａ−２、１ｂ−２  演算装置
１ａ−３、１ｂ−３  ローカルメモリ
１ａ−３−１  分散共有メモリ領域
１ａ−３−１ａ、・・、１ａ−３−１ｎ  データバッファ
１ａ−４、１ｂ−４、１ｃ−４  内部バス
１ａ−５、１ａ−５’、１ａ−５’’、１ａ−５’’’、１ｂ−５  転送制御装置
１ａ−６、１ｂ−６  ノード番地対応手段
１ａ−６−１  分散共有メモリのメモリ番地の領域
１ａ−６−２  分散共有メモリのノード番地の領域
１ａ−６−１−ａ、ｘ、ｙ、Ｉ、ｊ、ｋ、ｘ’分散共有メモリのメモリ番地
１ａ−６−２−ａ、ｘ−１、ｘ−２、ｘ−３、ｙ、ｙ−１、ｙ−２、ｙ−３、Ｉ、ｊ、ｋ、ｘ’、ｘ’−１、ｘ’−２、ｘ’−３  分散共有メモリのノード番地
１ａ−６−２−ｘ  分散共有メモリのノード番地展開表の位置を示す識別子
１ａ−６−ｘ  ノード番地展開表
１ａ−６Ａ  ノード番地対応手段の通常領域
１ａ−６Ｂ  ノード番地対応手段の同報用領域
１ａ−８−ａ、ｘ、ｙ、ｉ．ｘ’  送信対象のデータ
１ａ−８−ｂ  識別データ
１ａ−８−ｃ  送信要求データ
１ａ−８−ｄ  解放通知
１ａ−９、１ｂ−９、１ｃ−９  分散共有メモリ管理部（ＯＳ）
１ａ−１０  同報開始通知
２  ノード間通信路
３  下位層或いは下位層に相当する機能
４、４’、４’’  展開手段
【図１】
2008015617.tif 000003
【図２】
2008015617.tif 000004
【図３】
2008015617.tif 000005
【図４】
2008015617.tif 000006
【図５】
2008015617.tif 000007
【図６】
2008015617.tif 000008
【図７】
2008015617.tif 000009
【図８】
2008015617.tif 000010
【図９】
2008015617.tif 000011
【図１０】
2008015617.tif 000012
【図１１】
2008015617.tif 000013