(57)【要約】【課題】ローカルメモリの一部の分散共有メモリの構成の効率化を図ることのできるノード間データ転送制御装置を提供する。【解決手段】通信ネットワークに接続されたノード内に設けられ、分散共有メモリを用いて、他プロセスとの間のデータ転送を制御するノード間データ転送制御装置において、ノード番地に割り当てるローカルメモリ領域のサイズを可変にして、使用可能なローカルメモリのサイズに適したサイズを分散共有メモリとして割り当てる。【選択図】図１
2008305201.tif 000002
【特許請求の範囲】
【請求項１】
通信ネットワークに接続されたノード内に設けられ、分散共有メモリを用いて、他プロセスとの間のデータ転送を制御するノード間データ転送制御装置であって、
分散共有メモリの領域内の空き領域を、分散共有メモリの不足がより多い領域に追加して割り当てる
ことを特徴とするノード間データ転送制御装置。
【請求項２】
通信ネットワークに接続されたノード内に設けられ、他ノードとの間のデータ転送を制御するノード間データ転送制御装置であって、
書き込みまたは読み出しが行われるメモリであって、前記通信ネットワークに接続された複数のノード間データ転送制御装置に対応するメモリ番地を仮想的あるいは物理的に割り当てられる分散共有メモリと、
メモリ番地が入力されると、該メモリ番地が含まれる前記分散共有メモリの領域と対応づけられたノード番地を出力するノード番地変換手段と、
前記分散共有メモリに書き込まれるデータと、該データが書き込まれるメモリ番地とを取得し、前記データと前記メモリ番地を併せて、前記ノード番地に送信する送信手段と、
前記通信ネットワークを介してデータを受信し、該データからメモリ番地と受信データを抽出し、該抽出したメモリ番地の分散共有メモリに、該受信データを書き込む受信手段と、
を備え、
ノード番地に割り当てるローカルメモリ領域のサイズを可変にして、使用可能なローカルメモリのサイズに適したサイズを分散共有メモリとして割り当てる
こと特徴とするノード間データ転送制御装置。
【請求項３】
通信ネットワークに接続されたノード内に設けられ、他プロセスとの間のデータ転送を制御するノード間データ転送制御装置であって、
自装置内で生成されたプロセスによって書き込みまたは読み出しが行われるメモリであって、前記通信ネットワークに接続された複数のノード間データ転送制御装置に対応するメモリ番地を仮想的あるいは物理的に割り当てられる分散共有メモリと、
メモリ番地が入力されると、該メモリ番地が含まれる前記分散共有メモリの領域と対応づけられたプロセスの存在するノード番地を出力するノード番地変換手段と、
前記分散共有メモリに書き込まれるデータを取得し、該データを前記ノード番地に対応するプロセスまたはノード宛に送信する送信手段と、
前記通信ネットワークを介してデータを受信し、送信元プロセスまたはノードにおいて該データが書き込まれている分散共有メモリのメモリ番地と仮想的あるいは物理的に同一のメモリ番地に該受信データを書き込む受信手段と、
を備え、
ノード番地に割り当てるローカルメモリ領域のサイズを、複数に区分されたネットワークの構造と分散共有メモリの対応付けを保ち可変にすることにより、使用可能なローカルメモリのサイズに適したサイズを分散共有メモリとして割り当てる
こと特徴とするノード間データ転送制御装置。
【請求項４】
通信ネットワークに接続されたノード内に設けられ、他ノードとの間のデータ転送を制御するノード間データ転送制御装置におけるメモリ構成変更方法であって、
前記ノード間データ転送制御装置が、書き込みまたは読み出しが行われるメモリであって、前記通信ネットワークに接続された複数のノード間データ転送制御装置に対応するメモリ番地を仮想的あるいは物理的に割り当てられる分散共有メモリを有し、
前記ノード間データ転送制御装置のノード番地変換手段が、メモリ番地が入力されると、該メモリ番地が含まれる前記分散共有メモリの領域と対応づけられたノード番地を出力し、
前記ノード間データ転送制御装置の送信手段が、前記分散共有メモリに書き込まれるデータと、該データが書き込まれるメモリ番地とを取得し、前記データと前記メモリ番地を併せて、前記ノード番地に送信し、
前記ノード間データ転送制御装置の受信手段が、前記通信ネットワークを介してデータを受信し、該データからメモリ番地と受信データを抽出し、該抽出したメモリ番地の分散共有メモリに、該受信データを書き込み、
ノード番地に割り当てるローカルメモリ領域のサイズを可変にして、使用可能なローカルメモリのサイズに適したサイズを分散共有メモリとして割り当てる
こと特徴とするメモリ構成変更方法。
【請求項５】
コンピュータを、
請求項１から３のいずれかに記載のノード間データ転送制御装置として機能させるためのデータ転送制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、演算装置を具備し、複数に区分されたネットワークに接続されたノード内に設けられ、他ノードとの間のデータ転送を制御するノード間データ転送制御装置およびメモリ構成変更方法ならびにプログラムに関する。
【背景技術】
【０００２】
従来、分散共有メモリの技術を用いたプロセッサ間（或いはノード間）のノード間データ転送制御装置においては、ローカルメモリの一部を分散共有メモリとして割り当てる場合、特許文献１で示されるような、技術が存在する。また、現在使用している分散共有メモリにおける、ネットワーク内の個々のノード（端末装置やサーバなど）に対応する個々のメモリ領域の集合の中で、ある定まったメモリサイズを超過しているものがあるかどうかを判定し、超過しているメモリ領域の集合に対して、新たなメモリ領域を確保し、確保したメモリ領域に対して、ノード番地対応手段に関する機能を修正することにより、超過しているメモリ領域の集合に追加して確保したメモリ領域を利用していた。なお、新たに確保するメモリ領域のサイズも、現在使用している分散共有メモリのメモリ領域の集合のサイズと同じである。より詳しく述べると、分散共有メモリとして、ネットワークの個々のノードと対応して、ある定まった大きさのメモリの領域が確保されている。新たに分散共有メモリにメモリを追加する際は、この定まったサイズで追加する。
【０００３】
このため、個々のメモリ領域の集合に対して、ある定まったメモリサイズを超過しているかどうかを判定する必要があり、また、新たに割り当てるメモリ領域のサイズを多く必要としなくても多く割り当てられ、或いは、より多く必要としても割り当てサイズが少ない、または、分散共有メモリの割り当て方法がどのノードに対しても共通であるためネットワークが複数に区分されている場合は分散共有メモリとノードの対応付けが複雑になる等の欠点がある。
【特許文献１】特開平１０−１３３９４１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ここで、分散共有メモリを用いたノード間データ転送制御装置は、通常、ＬＡＮ、ＡＴＭ、ＴＣＰ／ＩＰ等の既存の伝送方式を利用してデータ転送を行うものである。この技術においては、ネットワーク内のノード番地（ＩＰアドレス等を指すが、ＩＰアドレスでなくてもネットワーク内でノードを識別する識別子であれば良い）を分散共有メモリ番地に対応付けている。
【０００５】
ところで、分散共有メモリは、ローカルメモリの一部をノード間データ転送用に割り当てたものであり、従ってノード間におけるデータ転送のために、常に十分な領域が確保されているわけではなく、ローカルメモリの一部を分散共有メモリに割り当てる手段が必要になる。そして、現在使用している分散共有メモリにおける、ネットワーク内の個々のノードと対応する個々の前記メモリ領域の集合の中で、ある定まったメモリサイズを超過しているものがあるかどうかを判定し、超過しているメモリ領域の集合に対し新たなメモリ領域を確保し、確保したメモリ領域に対して、ノード番地対応手段に関する機能を修正することにより、超過している前記メモリ領域の集合に追加して確保したメモリ領域を利用していた。
【０００６】
分散共有メモリは、ローカルメモリの一部であることから、メモリ番地のみでそのメモリ内の記憶位置を識別することになり、新たに確保するメモリ領域のサイズも、現在使用している分散共有メモリの前記メモリ領域の集合のサイズと同じであれば、割り当てが容易である。
【０００７】
しかし、このような技術においては、個々の前記メモリ領域の集合に対して、サイズ超過判定する必要がある。また、新たなメモリ割り当てに不足や無駄が生じるため、使用状況を識別したメモリの構成と処理のフローを適用することが必要となる。また、ネットワーク構造に適合したメモリ構成と割り当て処理を提供することが必要となる。このような処理により、ローカルメモリの一部の分散共有メモリの構成の効率化を図る必要がある。
【０００８】
そこでこの発明は、ローカルメモリの一部の分散共有メモリの構成の効率化を図ることのできるノード間データ転送制御装置およびメモリ構成変更方法ならびにプログラムを提供することを目的としている。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、本発明は、通信ネットワークに接続されたノード内に設けられ、分散共有メモリを用いて、他プロセスとの間のデータ転送を制御するノード間データ転送制御装置であって、分散共有メモリの領域内の空き領域を、分散共有メモリの不足がより多い領域に追加して割り当てることを特徴とするノード間データ転送制御装置である。
【００１０】
また本発明は、通信ネットワークに接続されたノード内に設けられ、他ノードとの間のデータ転送を制御するノード間データ転送制御装置であって、書き込みまたは読み出しが行われるメモリであって、前記通信ネットワークに接続された複数のノード間データ転送制御装置に対応するメモリ番地を仮想的あるいは物理的に割り当てられる分散共有メモリと、メモリ番地が入力されると、該メモリ番地が含まれる前記分散共有メモリの領域と対応づけられたノード番地を出力するノード番地変換手段と、前記分散共有メモリに書き込まれるデータと、該データが書き込まれるメモリ番地とを取得し、前記データと前記メモリ番地を併せて、前記ノード番地に送信する送信手段と、前記通信ネットワークを介してデータを受信し、該データからメモリ番地と受信データを抽出し、該抽出したメモリ番地の分散共有メモリに、該受信データを書き込む受信手段と、を備え、ノード番地に割り当てるローカルメモリ領域のサイズを可変にして、使用可能なローカルメモリのサイズに適したサイズを分散共有メモリとして割り当てること特徴とするノード間データ転送制御装置である。
【００１１】
また本発明は、通信ネットワークに接続されたノード内に設けられ、他プロセスとの間のデータ転送を制御するノード間データ転送制御装置であって、自装置内で生成されたプロセスによって書き込みまたは読み出しが行われるメモリであって、前記通信ネットワークに接続された複数のノード間データ転送制御装置に対応するメモリ番地を仮想的あるいは物理的に割り当てられる分散共有メモリと、メモリ番地が入力されると、該メモリ番地が含まれる前記分散共有メモリの領域と対応づけられたプロセスの存在するノード番地を出力するノード番地変換手段と、前記分散共有メモリに書き込まれるデータを取得し、該データを前記ノード番地に対応するプロセスまたはノード宛に送信する送信手段と、前記通信ネットワークを介してデータを受信し、送信元プロセスまたはノードにおいて該データが書き込まれている分散共有メモリのメモリ番地と仮想的あるいは物理的に同一のメモリ番地に該受信データを書き込む受信手段と、を備え、ノード番地に割り当てるローカルメモリ領域のサイズを、複数に区分されたネットワークの構造と分散共有メモリの対応付けを保ち可変にすることにより、使用可能なローカルメモリのサイズに適したサイズを分散共有メモリとして割り当てること特徴とするノード間データ転送制御装置である。
【００１２】
また本発明は、通信ネットワークに接続されたノード内に設けられ、他ノードとの間のデータ転送を制御するノード間データ転送制御装置におけるメモリ構成変更方法であって、前記ノード間データ転送制御装置が、書き込みまたは読み出しが行われるメモリであって、前記通信ネットワークに接続された複数のノード間データ転送制御装置に対応するメモリ番地を仮想的あるいは物理的に割り当てられる分散共有メモリを有し、前記ノード間データ転送制御装置のノード番地変換手段が、メモリ番地が入力されると、該メモリ番地が含まれる前記分散共有メモリの領域と対応づけられたノード番地を出力し、前記ノード間データ転送制御装置の送信手段が、前記分散共有メモリに書き込まれるデータと、該データが書き込まれるメモリ番地とを取得し、前記データと前記メモリ番地を併せて、前記ノード番地に送信し、前記ノード間データ転送制御装置の受信手段が、前記通信ネットワークを介してデータを受信し、該データからメモリ番地と受信データを抽出し、該抽出したメモリ番地の分散共有メモリに、該受信データを書き込み、ノード番地に割り当てるローカルメモリ領域のサイズを可変にして、使用可能なローカルメモリのサイズに適したサイズを分散共有メモリとして割り当てること特徴とするメモリ構成変更方法である。
【００１３】
また本発明は、コンピュータを、上記ノード間データ転送制御装置として機能させるためのデータ転送制御プログラムである。
【発明の効果】
【００１４】
本発明によれば、分散共有メモリの中で使用されている領域、あるいは、バッファがある定まったメモリサイズを超過しているものがあり、領域不足が起こり得るような場合においては、使用状況を識別したメモリの構成と処理のフローを適用することで、効率的にサイズ超過を判定し効率的に割り当てを行うことができる。
【００１５】
また、本発明によれば、使用状況を識別したメモリの構成と処理のフローを適用することで、分散共有メモリを効率的に利用でき、また、ローカルメモリを効率的に割り当てることができる。またノードの変更規則を用いる場合は、必ずしも個々の領域の不足に対してメモリを追加する必要はなく、変更規則を修正することにより、あるまとまった単位の領域に対し不足を判定し、追加するといった、効率的な割り当てが可能になる。また、ネットワーク構造に適合したメモリ構成と割り当て処理のフローにより、複数に区分されたネットワークに容易に対応付けを行うことができる。これらにより、個々のメモリ領域の集合に対して、サイズ超過判定する必要はなく、また、新たなメモリ割り当てに不足や無駄が減少し、ノード関係にあわせたメモリ割り当てが可能になる。
【発明を実施するための最良の形態】
【００１６】
以下、本発明の一実施形態によるノード間データ転送制御装置を図面を参照して説明する。図１は同実施形態によるノード間データ転送制御装置の構成を示すブロック図である。この図において、符号１−Ｆ，１−Ｊ，１−Ｋ，１−Ｌ，１−Ｍ，１−Ｎは通信ネットワークに接続された各ノード（サーバや端末などの装置）である。そして、ノード１−Ｆにおける内部処理を例として示すと、まず、アプリケーションプログラム１−Ａがローカルメモリ上に確保された分散共有メモリ１−Ｃにデータ１−Ｇを書き込む処理を行う。そしてその番地が１−Ｃ−１であるとすると、ノード番地変換手段１−Ｂが、内部バス１−Ｅを通過するデータ１−Ｇのメモリ番地をデータテーブルから参照する。そして、その参照したメモリ番地は１−Ｃ−１であるので、ノード番地変換手段１−Ｂにおいて、ノード番地に変換され、転送制御手段１−Ｄに通知され、転送制御手段１−Ｄは、通知されたノード番地１−Ｈ宛のデータ１−Ｇを通信ネットワーク１−Ｉに送信する。
【００１７】
ノード番地変換手段１−Ｂは、（ａ）メモリ番地とノード番地とを対応付けたデータテーブルを記憶しており、このデータテーブルを検索して、ノード番地を取得する。（ｂ）またはノード番地変換手段１−Ｂは、メモリ番地のシフトや一部のマスク或いは演算といった定められた規則に基づき、メモリ番地に対応するノード番地を算出する。なお、ノード番地が転送制御手段１−Ｄに通知される処理以外に、例えば、転送制御手段１−Ｄがノード番地変換手段１−Ｂにメモリ番地を問い合わせたり、ノード番地変換手段１−Ｂ内の変換後のノード番地を参照したりすることにより、転送制御手段１−Ｄはノード番地を取得してもよい。
【００１８】
受信したノードにおいては、データ１−Ｇのメモリ番地を参照して、受信ノードのローカルメモリ上に確保された分散共有メモリ上の該番地にデータ１−Ｇを書き込むことで、送信ノードと受信ノードはそれぞれ自ノード内の分散共有メモリの同一番地に同じデータを有することになる。そして、これの技術を利用して１−Ｆ，１−Ｊ，１−Ｋ，１−Ｌ，１−Ｍ，１−Ｎの各ノードはデータの送受信を行う。なお、図１においては、受信側のノードがデータの送信先である場合を示しているが、この場合、ノード１−Ｍにおいては、当該ノードの転送制御手段１−Ｄ’が自ノードのローカルメモリに確保された分散共有メモリ１−Ｃ’内の番地であって、送信側と同じメモリ番地１−Ｃ−１にデータを書き込む。この処理は、他の１−Ｊ，１−Ｋ，１−Ｌ，１−Ｎのノードでも同じ動作を行う。
【００１９】
なお、図１で示すシステムは、ノード番地に対して少なくとも１つ以上の分散共有メモリ番地が対応付けられており、メモリ番地を指定することで対応するノードへデータが送られる仕組み有している。しかし、市販されているメモリであっても番地は十分多いので、通常はノードに対応付けるメモリ領域が不足することはないが、何らかの理由でメモリ番地の数が不十分である場合は仮想メモリ番地を用いて、対応付けるメモリ番地の数を増やすことができる。しかし、さらにメモリ番地の数が不足する場合や、ノードの下位にさらにネットワークが接続されるようなネットワーク構造等においては、ノードの識別子に子番号を用意し、階層的に分散共有メモリの領域を構成することになる。その場合、下位にネットワークを接続したノードを介してネットワークを区分し、即ち、下位にネットワークを接続したノードの下位ネットワークに属するノードは親のノード番地を共有して、子のノード番地が異なるようにして、分散共有メモリ領域を構成しておく。ノード間の構造がリング上の場合など、メモリ領域をノード間構造に割り当てにくい場合、メモリの構成をノードの関係の構造に一致あるいは近づけて構成することになる。
【００２０】
図２は通信ネットワークに接続されたノードの関係の概略を示す図である。
この図において（ウ）のネットワーク区分の構成は、（イ）のネットワーク区分の集合Ｃ−１のある区分に、ノードの集合Ｃ−２（ノード１−ａ’，１−ｂ’，１−ｃ’）が増加している場合の例を示している。
図３はノード内部のメモリの構造の概略を示す第１の図である。図３ではあるノード宛のデータが書き込まれる分散共有メモリ上の領域を示している。また図３の（イ）は、あるネットワーク区分に対応する分散共有メモリ上の領域を示している。
図４はノード内部のメモリの構造の概略を示す第２の図である。図４（ウ）では個々のネットワーク区分に対応する分散メモリ上の領域（Ｃ−１，Ｃ−２）の集合を示している。
図５はノード内部のメモリの構造の概略を示す第３の図である。図５の（エ）では、図３（イ）の分散共有メモリ上の領域１−ａの設定状態の２例を示している。
図６はノード内部のメモリの構造の概略を示す第４の図である。図６の（オ）では、図３（イ）の分散共有メモリ上の領域の他の設定例を示している。
【００２１】
図２（イ）のように、ネットワーク区分が複数(１−ａ，２−ａ，・・，ｍ−ａ；１−ｂ，・・，ｍ−ｂ；・・)ある場合、ネットワーク区分の集まりがこの一つだけであれば分散共有メモリの構成を図３（イ）のように、ノード１−ａ（便宜上、ノード番地或いはノード番地をノード名で兼ねた表記とする）宛の共有メモリ領域を、メモリ番地上位が1、メモリ番地下位がａ、のように設定し、ノード番地変換手段１−Ｂにその対応関係の情報を記憶させておく。
【００２２】
但し、メモリ番地はマスクを設定することができ、各メモリ領域は複数のバッファ（以降、区別可能と思われる箇所は、前記バッファを単にメモリ領域と記す）から構成されるので、同一のノード宛に複数のデータを送ることもできる。つまり、図２（イ）の１−ａに対応したメモリ領域を図３（イ）の１−ａとすると、図３（ア）のようにｐ個の番地で構成されるバッファが複数個集まった構成をとることを意味する。
【００２３】
分散共有メモリをある単位で区切った場合（ハードディスクのセクタに相当）、セクタの最大数は共有メモリサイズ÷（セクタの中の最大バッファ数×バッファサイズ）となるので、使用セクタ数をｍ、セクタ内のバッファ数をｎとすると、搭載するメモリに余裕がある限りｍは大きくできるがｎはセクタ内の最大バッファ数までしか大きくできない。このようにセクタ内のバッファ数ｎまたは使用セクタ数ｍのどちらかはメモリ空間を使いきる程度までは十分大きくとれるが、他方は制限が生じるので、図５（エ）のように制限が生じにくい側（前述の例では、使用セクタ数ｍは余裕があるがメモリサイズに制限があるので、セクタ内のバッファ数ｎに比較し制限が生じにくい）の複数番地を一つの番地に代表して扱い、他方の不足を避ける。
【００２４】
あるいは、図６（オ）のように不足番号に相当する部分が途中で不連続（図６（オ）ではｃとｄの間やｗとｘの間が不連続になっている）になっても仮想番地を用いて別のメモリ領域を割り当てるが、ネットワーク内のノード関係とメモリ番地の関係は同じ配列で識別可能とする。このように、ネットワーク区分の構造にあわせてメモリ構造をブロック化しておく。例えば、図３（イ）で示すように、分散共有メモリにおける「ａ〜ｍ・・」と「１〜ｎ」で示される領域が、連続して確保できない場合には、図６（オ）のように幾つかの領域に分けて確保することになる。尚、図２（イ）（ウ）と図３および図４の（イ）（ウ）がそれぞれ対応しているので、そのことを示すため、図２の図番は（イ）からとしている。そして、ネットワーク上でノードが増減し、例えば図２（イ）で示すネットワークのノード１−ａのネットワーク区分に、ノード１−ｎが追加されても、図３（イ）のメモリ上のｍに続く位置にノード１−ｎに対応する領域を、分散共有メモリにおいて割り当てればよい。
【００２５】
また図２（ウ）のようにネットワーク区分Ｃ−１に、ノードの集合Ｃ−２が増加する場合は、前述のノード１−ａにノード１−ｎ−を追加した場合と同様に、１−（ｎ＋１），１−（ｎ＋２），・・・，と追加しても良いが、これらノードを新たなネットワーク区分として、１―ａ，・・，１−ｎや２−ａ，・・２−ｐ等と並列となるよう、分散共有メモリ上にバッファを割り当てても良い。この場合、図４（ウ）ではＣ−１が既存のノード用の分散共有メモリであって図２（ウ）のＣ−１のネットワーク区分に対応し、また、図４（ウ）のＣ−２が図２（ウ）のＣ−２のネットワーク区分に対応し、既存の分散共有メモリ領域（図４（ウ）のＣ−１で示される領域）に、新たな分散共有メモリ領域（図２の（ウ）で示すネットワーク区分Ｃ−２に対応する領域）を追加することとなる。このような、メモリの割り当てには、ノードの変更規則を用意しておくので、従って、新たなノードが加わったり、ノードが減少したり、新たなネットワーク区分が追加されたり削除されたりしても、メモリ構成変更処理のフェーズを表す第１の図である図７（ア）で示すように、送信データを生成し、また宛先を指定するアプリケーションプログラムやＯＳは、ノード関係が変更されたために変更／追加／削除になる個々のノードの変更／追加／削除後のノード番号を登録設定などの操作をすることはない。
【００２６】
そして、メモリ構成変更処理のフェーズを表す第２の図である図８（イ）で示すように、メモリ構造の変更規則を参照できる状態にありさえすれば、ノード関係の変更に対応して変更されたメモリ構造の指定領域にデータを書き込むだけで、変更後の所定のノード宛にデータを送信することができる。なお図８（イ）に示すように、ネットワークやネットワーク区分でノードが増減する場合（ステップＳ８０１）、ノード関係変更のため通信停止状態へ遷移する（ステップＳ８０２）。また分散共有メモリ構成規則に従いメモリ位置を決定する（ステップＳ８０３）。そして、ノード関係変更後の通信可能状態へ遷移する（ステップＳ８０４）。
【００２７】
なお、変更規則はメモリ構造とノード関係の対応を意味しており、変更規則の決め方によっては、セグメントとメモリブロックを対応させたり、ノード番地(ＩＰアドレス等)とメモリ番地の一部同士を一致させたり単純な演算で対応付けたりすることが容易になる。例えば、セグメント毎にメモリのブロックを区分し、ＩＰアドレスの非マスク部分とメモリ番地を一致させる変更規則の場合、セグメントとメモリブロックの対応付けの情報は変更があるとノード番地変換手段１−Ｂに登録する必要はある。
【００２８】
しかし、新たなノードが加わった場合、即ち、新たにノードに対応するメモリ番地を割り当てることになる場合は、図８（ウ）のように、割り当てられたメモリ番地の対応を登録することはない。つまり、アプリケーションが変更規則さえ参照できる状態であれば、目的ノードが対応するメモリ番地を指定してデータを書き込み送信することができる。参照できる状態とは、用いる変更規則をソフトウェアとして或いはメモリ上に保持されたテーブルや、プログラム或いは組み込みロジックなどとして、アプリケーションやＯＳがデータを送信する処理の中、或いはその前にリードする、或いは目的ノード名やプロセス名を指定するとメモリ番地が出力され該メモリ番地を取得することが可能な状態である。
【００２９】
変更規則を用いる場合、分散共有メモリの領域に不足が生じても、一つ一つのメモリ領域（例えば、図３（イ）の１とａで示されたメモリの部分、つまり、図２（イ）のノード１−ａ宛ての領域がその一つ）の不足があったとしても、必ずしも個々のメモリ毎に不足を判定する必要はない。つまり、あるまとまった複数のメモリ領域で構成された単位で不足を判定し、その複数のメモリ領域の単位が、ある不足の基準を超えない間は、その単位の中で、メモリ領域の不足があるところに、余剰のあるところからのメモリを追加する、といった方法を、変更規則を修正するだけで容易に適用できる。尚、ノードと記述した装置は、コンピュータ、サーバ、ルータ、センサ、駆動装置、制御装置などの通信機能を有する装置であれば特に制限はない。
【００３０】
なお、メモリ配置は、物理的でなくてもよく、仮想メモリを用いて本発明を実施しても構わない。また本発明によるメモリ構成は、ネットワーク接続前に通信機能を初期化する段階で予め行ってもよく、すでに通信を行っている状況でメモリを再構成しても構わない。またノードの関係は、便宜上バス構造のように表記しているが、リング状やスター状など、実際の物理的な接続状態はどのような形態であっても構わない。また、ノードの増減やメモリ構成の変更があっても、ノード番地変換手段１−Ｂは、ノード番地とメモリ番地の対応を示すデータテーブルを保持し、そのテーブルにおいてノード番地とメモリ番地の対応を変更する構造をとる。或いはメモリ番地のシフトや一部のマスク或いは演算といった事前に定められた規則に基づき、メモリ番地に加工をしたものがノード番地となる、等の手段によって、メモリ番地とノード番地の変換を行う。そのため、分散共有メモリの領域が不足しても、ノード番地変換手段１−Ｂを、大規模に書き換え、或いは、修正することなしに、ノード番地変換手段１−Ｂのデータテーブルに、新たな、番地とノードの対応を付け加えるだけで、或いは、ノード番地変換手段１−Ｂの演算を、新たな、番地とノードの対応を可能にするように修正するだけで、容易に、不足を解消できる。
【００３１】
図９はメモリ構成の変更の処理の概略を示す第１の図である。
図１０はメモリ構成の変更の処理の概略を示す第２の図である。
次に、図９、図１０を用いて、ネットワーク構造が、図２の（ウ）で示すネットワーク区分Ｃ−１とＣ−２のみのであった場合を例に、メモリ構成の設定方法の一例を説明する。なお、図９、図１０において、分散共有メモリの領域を特定する１，２，ｑ（１）という記載は、本来１，２，３，・・・，ｑ（１）の、合計１個の領域集合を示しているが、その記載を簡略化している。他の領域についても同様である。なお、図９において、｛［Ｇ１−１，ａ］，［Ｇ１−１，ｂ］，・・・，［Ｇ１−１，ｘ］｝，・・・，｛［Ｇｓ−ｑ（ｓ），ａ］，［Ｇｓ−ｑ（ｓ），ｂ］，・・・，［Ｇｓ−ｑ（ｓ），ｘ］｝は領域集合を示している。また、図９で示すａ，ｂ，ｃ，・・・，ｘは領域集合内の区分を示している。また、図９における｛１，２，・・・ｑ（１）｝，｛１，２，・・・ｑ（２）｝，・・・，｛１，２，・・・ｑ（ｓ）｝、は領域グループ内の領域集合の区分を示している。また図９、図１０における網掛け部分の領域は、ノード番地とメモリ番地が既に対応付けられているメモリ領域である。
【００３２】
また、領域のグループを示す符号Ｇ５と記した１，２，ｎ＝５の次の領域を、領域のグループを示す符号Ｇｓと記した１，２，ｑ（ｓ）と記載しているが、これも、領域のグループを示す符号Ｇ１と記した領域のグループである、１，２，ｑ（１）の次に、領域のグループを示す符号Ｇ２と記した次の領域のグループの１，２，ｑ（２）があり、・・、最左にＧ５と記した次に領域のグループの１，２，ｎ＝５があり、・・、領域のグループを示す符号Ｇｓと記した次に領域のグループの１，２，ｑ（ｓ）がある。即ち、同種の領域のグループがs個ある、との意味であるが、記載の簡略化のために省略してある。また図９におけるＭ１とＭ２は、図２（ウ）のＣ−１，Ｃ−２，・・，Ｃ−ｉのいずれかのネットワーク区分に相当するメモリ領域であって、また、図６（オ）の、“１，２，・・，ｎ”及び“ａ，ｂ，・・，ｄ，ｆ”の正方領域で示されるメモリ領域と同等のメモリ領域の何れかに相当するメモリ領域である（メモリ領域のサイズは図６と図９は異なっているが、これらはメモリ構成の一例を示しているのであって、メモリ領域のサイズは考慮せず、構成が互いに相当していることを述べている）。従って、ローカルメモリ内に、図４（ウ）や図６（オ）の正方領域で示される、メモリ領域が複数あって、Ｍ１やＭ２はその中の２つのメモリ領域であり、物理的に連続した位置に確保される必要はない。
【００３３】
また、仮想メモリにより、図４（ウ）や図６（オ）の正方領域で示される、メモリ領域個々が、物理的な位置に関して、複数に分かれていて、物理的に不連続であっても構わない。また、図９の記載においてＭ１やＭ２の最小領域として記されている、番地［Ｇ１−１，ａ］，［Ｇ１−２，ｂ］，・・・，［Ｇ４−１，ｃ］，・・・，［Ｇｓ−ｑ（ｓ），ｃ］等は、物理的なメモリの最小構成でなくて構わない。つまり、これらは、上位レイヤから見たデータ転送の最小単位であり(データ転送最小単位領域と記す)、“このデータ転送最小単位領域にデータが書きこまれると、そのデータがこのデータ転送最小単位領域のサイズに達していなくても、目的ノードに転送される”といった用途の領域であり、ある程度のサイズを有している。
【００３４】
図９、図１０においては、その位置を示す記号として数字やアルフアベットの組み合わせを用いているが、その一文字は、一つの番地であっても構わないし、図５（エ）のように複数番地（或いは図５（エ）より更に多い、多数番地）を示しても構わない。メモリ構成の設定方法は、分散共有メモリとして現在使用されているメモリ領域の不足が予測される場合に、分散共有メモリにメモリ領域を新たに割り当てる必要が生じる。従って、現在使用されているメモリ領域をＭ１として、Ｍ１の不足が予測されると、ローカルメモリ内で空き領域として存在していて、かつ分散共有メモリとして割り当て可能なメモリ領域が存在すれば、これをＭ２として、Ｍ２の領域をＭ１の領域に追加することで、分散共有メモリのメモリ領域不足を解消する。
【００３５】
既に分散共有メモリのメモリ領域として使用されている図９のＭ１のメモリ領域において、網掛したデータ転送最小単位領域が、現在ネットワークの各ノードと対応付けられているものとする。即ち、例えば、図９のＭ１領域における番地［Ｇ１−１，ａ］が、図１のノード１−Ｊと対応している、或いは、図２（イ）のノード１−ａと対応している、といったように、データ転送最小単位領域とネットワークの各ノードと対応付けられている。また、領域のグループ（Ｇ１，Ｇ２，・・，Ｇｓ）においては、例えば、Ｇ１の［Ｇ１−１，ａ］，［Ｇ１−１，ｂ］，・・，［Ｇ１−１，ｘ］が図３（イ）のノード１−ａに対応している、または、Ｇ１の［Ｇ１−２，ａ］，［Ｇ１−２，ｂ］，・・，［Ｇ１−２，ｘ］が図２（イ）のノード１−ｂに対応している、または、Ｇ２の［Ｇ２−１，ａ］，［Ｇ２−１，ｂ］，・・，［Ｇ２−１，ｘ］が図２（イ）のノード２−ａに対応している、等のように、複数のデータ転送最小単位領域を有する領域とネットワーク区分とが対応していてもよい。
【００３６】
このような状態において、図９のＭ１の領域においては、予め定めておいたある値で、ある領域グループの不足基準（通常、適用するシステムにより適切な値は異なるため、システムによって適切な値を選び定めて構わない。また、複数存在しても構わない。例えば、図９のＭ１の領域では、Ｌ１とＬ２の２つの不足基準が存在しているものとする。つまりこの不足基準は、閾値に相当する値である）を、上回った状況を示している。つまり図９のＭ１では領域グループＧ１、領域グループＧ５が不足基準Ｌ２を上回っており、また領域グループＧ３と、領域グループＧ４が不足基準Ｌ１を上回った状況を示している。
【００３７】
また、図９、図１０の網掛け部分は、ノード番地とメモリ番地が既に対応付けられている、即ち、ノード番地変換手段１−Ｂにおいて、メモリ番地が入力されればノード番地が出力される状態とされているような、分散共有メモリ内の領域を示している。例えば、領域グループ内に、対応付け済みメモリ領域が領域集合内の区分を超えた位置に存在する場合、即ち図においてＬ１を右側方向に超えた位置に存在する場合を、不足基準を超えたとし、さらに、Ｌ２を右側に超えた位置に存在する場合は、不足基準を２回超えたとする。そして、図９の領域Ｍ１で不足基準を超えた領域グループが存在するかどうかを判定することにより、まず、領域グループＧ１、領域グループＧ３、領域グループＧ４と、領域グループＧ５が、不足基準を超えたと判定される。
【００３８】
ここで述べた不足基準は、領域グループ内ではメモリ領域割り当て基準として扱われる。不足基準を上回った領域グループＧ１、領域グループＧ３、領域グループＧ４と、領域グループＧ５の夫々に対し、メモリ領域割り当て基準を超えているかどうかを判定する。但し、メモリ領域割り当て基準は、複数存在していても構わないし（例えば、図９のＭ１では、Ｌ１とＬ２の２つのメモリ領域割り当て基準が存在している）、複数の場合は、それぞれのメモリ領域割り当て基準に対して、メモリ領域割り当て基準を超えているかどうかを判定する。即ち、図９のＭ１領域では、Ｌ１とＬ２の２個のメモリ領域割り当て基準が存在しており、領域グループＧ１、領域グループＧ３、領域グループＧ４と、領域グループＧ５、が、メモリ領域割り当て基準Ｌ１を超えていて、領域グループＧ１と領域グループＧ５が、メモリ領域割り当て基準Ｌ２を超えている例を示している。
【００３９】
そして、メモリ領域割り当て基準を超えた領域グループに対しては、新たなメモリ領域の追加割り当てを行うが、メモリ領域割り当て基準を幾つ超えているかを判定することにより、追加割り当てを行うメモリ領域のサイズを決定することで、メモリ領域の不足が多いメモリグループに対して、より大きなメモリ領域を新たに割り当てることになる。即ち、いかに大きなサイズのメモリ領域を割り当てるかが、メモリ領域割り当て基準をどの区分（領域グループ内の領域集合の区分）に定めるかによって決定されるため、この例で説明したように、領域グループ内の最大のメモリ領域を使用している領域集合のメモリ領域使用量を、メモリ領域割り当て基準との比較判定の対象としないで、他の値をメモリ領域割り当て基準との比較判定の対象とする場合があっても構わない。つまり、適用対象とするシステム、或いは、メモリ領域の使用状況によっては、他の値をメモリ領域割り当て基準との比較判定の対象とする場合がある。
【００４０】
図９のメモリ領域Ｍ２は、メモリ領域Ｍ１において不足している領域グループに対して新たに割り当てるメモリ領域の例であって、新たに割り当てるメモリのサイズは、メモリ領域割り当て基準を幾つ超えているかに基づくが、例えば、図９のメモリ領域Ｍ１で、メモリ領域割り当て基準（基準Ｌ１）を１個超えている、領域グループＧ３と領域グループＧ４に対しては、１個の新たな領域グループに相当するサイズのメモリ領域を割り当て、それぞれ領域グループＧ３２とＧ４２で示している。また図９のメモリ領域Ｍ１においてメモリ領域割り当て基準（基準Ｌ１およびＬ２）を２個超えている領域グループＧ１と領域グループＧ５に対しては、２個の新たな領域グループに相当するサイズのメモリ領域を割り当てており、領域グループＧ１に対してはＭ２のＧ１２で示すメモリ領域を、また領域グループＧ５に対してはＭ２のＧ５２で示すメモリ領域を、それぞれ割り当てている。
【００４１】
なお、メモリ領域割り当て基準（Ｌ１またはＬ２）を超えていない、領域グループＧ２と領域グループＧｓについては、新たなメモリ領域を割り当てていない。また、本例では、１つの領域グループのメモリサイズに相当するサイズのメモリ領域を単位として、メモリ領域割り当て基準を超えた領域グループに対して、新たなメモリ領域を割り当てている。しかし、これは一例であって、適用対象とするシステム、或いは、メモリ領域の使用状況によっては、別のサイズを単位として割り当てても構わないし、メモリ領域割り当て基準を超えていない領域グループに対しても、メモリ領域割り当て基準を超えている領域グループに対して割り当てるメモリサイズに比較して小さなサイズの新たなメモリ領域の割り当てを行うなどしても構わない。なお図９において、メモリ領域Ｍ１とメモリ領域Ｍ２との間を結ぶ点線の矢印は、メモリ領域Ｍ１における領域集合の境界が、メモリ領Ｍ２のどこに対応するかを示している。
【００４２】
次に、新たなメモリ領域の割り当てを行った後、引き続き分散共有メモリが使用されている状況の一例を、図１０のメモリ領域Ｍ１’とメモリ領域Ｍ２’を用いて説明する。ここで、新たな割り当て前に、分散共有メモリＭ１のみで使用されていた際と同じ使用量増加率で分散共有メモリが使用されたとした場合などには、領域グループＧ１、領域グループＧ５は、Ｍ１’内の領域が全て、またＭ２’の領域が使用され、さらに、領域グループＧ１、領域グループＧ３、領域グループＧ４のそれぞれの領域グループにおいては、Ｍ１’の領域が全て使用されていないものの、Ｍ２’の領域も使用されている状況となり、図１０はそのような状況におけるメモリ領域Ｍ１’とメモリ領域Ｍ２’の使用状況を示している。なお、図１０においてメモリ領域Ｍ１’とメモリ領域Ｍ２’が物理的に隣接しているように記載されているが、物理的なメモリの位置が隣接している必要はない。
【００４３】
図１１は従来のメモリ構成の変更の処理フローを示す図である。
図１２はメモリ構成の変更の処理フローを示す図である。
次に、図１１、図１２を用いて、本発明のメモリ構成の設定および変更の処理について説明する。尚、下記の処理の説明において、メモリ領域Ｍ１とメモリ領域Ｍ２の記載があれるが、これは、図９の説明において示したＭ１およびＭ２である。そして、メモリ領域Ｍ１およびメモリ領域Ｍ２は、それぞれ、既に分散共有メモリとして使用されている領域と、新たに分散共有メモリとして割り当てる領域とを示すものであり、また領域グループ長単位とは、図９の太線で囲まれた領域グループのデータ量を示す単位であり、新たにメモリ領域を割り当てる際の、メモリ領域のデータサイズの単位である。
【００４４】
まず、従来のメモリ構成の変更の処理について図１１を用いて説明する。
従来は、現在使用している分散共有メモリＭ１のメモリ領域集合の中で、メモリ割り当て基準を超過しているものがあるかどうかを判定し（ステップＳ１１０１）、超過しているメモリ領域集合が存在すれば、次に、ローカルメモリ内の未使用領域において、分散共有メモリとして使用できる領域集合のサイズを確保することが可能か否かを判定する（ステップＳ１１０２）。そして、確保できる場合には、分散共有メモリ用の新たなメモリ領域を確保し（ステップＳ１１０３）、次に、確保したメモリ領域の番地を、超過しているメモリ領域集合の番地であって、ノード番地変換手段１−Ｂが参照するデータテーブルに記述されている番地に対応付けて（例えば追加して）データテーブルを修正し記録する（ステップＳ１１０４）。または、演算によりノード番地変換を行う場合は、ステップＳ１２０９の代わりに、演算処理手順を修正するようにしてもよい。なお、ステップＳ１１０２において、分散共有メモリとして使用できる領域集合のサイズを確保することができない場合にはエラーを出力する（ステップＳ１１０５）。
【００４５】
このことにより、超過しているメモリ領域集合の後続として確保したメモリ領域を利用できる。即ち、超過しているメモリ領域集合が、“超過しているメモリ領域集合及び確保したメモリ領域”に置き換えられることになる。確保したメモリ領域のサイズは、通常は、現在使用している分散共有メモリのメモリ領域集合のサイズと同じであるが、これは、メモリ領域集合を全て同じ大きさにしておき、さらに、追加する領域も同じサイズにすることでローカルメモリから分散共有メモリへの割り当てを容易にするからである。超過するメモリ領域集合があるかどうかの判定は、定期的或いは非定期に、ノード間データ転送制御装置の利用者や利用システムからの指示を契機に行う。そして、従来は、図９のような領域の集合やグループを構成していないため、分散共有メモリの使用状況や、ノード間の関係にあわせた効率的な、メモリ割り当てが困難である。
【００４６】
次に、本実施形態によるメモリ構成の変更の処理について図１２を用いて説明する。
まず、現在使用している分散共有メモリのメモリ領域集合が複数集まった領域グループの中で、不足基準を超過しているものがあるかどうかを判定し（ステップＳ１２０１）、ある場合は、対象の領域グループの中で最もメモリ領域を多く使用しているメモリ領域集合が、メモリ領域割り当て基準を超えているかを判定する（ステップＳ１２０２）。なお、通常、不足基準とメモリ領域割り当て基準は同じ値であるが、これを異なった値に設定してもよく、それによりマージンを確保し、メモリ領域追加の時期を変え、他の領域グループへのメモリ領域追加と時期をあわせるなどを行うことも可能である。
【００４７】
メモリ領域割り当て基準を超過しているメモリ領域集合があれば、当該メモリ領域集合を含む領域グループへの新たな領域グループ割り当て数を１だけ加算する（ステップＳ１２０３）。そして、対象の領域グループ内で最もメモリ領域を多く使用しているメモリ領域集合のメモリ使用量の値を、対象の領域グループ内の最大メモリ使用量として、対象の領域グループ内の最大メモリ使用量から領域グループ長単位のデータ量を引き（ステップＳ１２０４）、領域Ｍ１で不足基準を超過する領域グループがなくなったか否かを判定する（ステップＳ１２０５）。そして、領域Ｍ１で不足基準を超過する領域グループがなくなるまで、即ち、領域グループ内の最大メモリ使用量が不足基準以下になるまで、ステップＳ１２０１〜ステップＳ１２０５の処理を繰り返す。
【００４８】
次に、領域Ｍ１で不足基準を超過する領域グループがなくなると、領域グループ割り当て数と領域グループ長単位の積をとり、その積を各領域グループについて合計して（ステップＳ１２０６）、その合計サイズが、分散共有メモリとして割り当て可能なローカルメモリ内に確保できるか否かを判定し（ステップＳ１２０７）、確保できれば、そのサイズを領域Ｍ２とする（ステップＳ１２０８）。そして、確保できる場合には、分散共有メモリ用の新たなメモリ領域として確保する（ステップＳ１２０９）。そして、領域Ｍ２のメモリ番地を、ノード番地変換手段１−Ｂが参照するデータテーブル内の番地の、Ｍ１を示している番地、かつ、超過している領域グループの番地であって、ノード番地変換手段１−Ｂが参照するデータテーブルに記述されている番地に対応付けて（例えば追加して）、データテーブルを修正し記録する（ステップＳ１２１０）。このことにより、ノード番地変換手段１−Ｂによりノード番地とメモリ番地が互いに変換される際、ノード番地と対応するメモリ番地が増加する。
または、演算によりノード番地変換を行う場合は、ステップＳ１２０９の代わりに、演算処理手順を修正するようにしてもよい。
【００４９】
なお、領域グループ割り当て数の初期値は０である。不足基準を超過する領域グループがあるかどうかの判定は、定期的或いは非定期に、ノード間データ転送制御装置の利用者や利用システムからの指示を契機に行う。また、領域グループ割り当て数と領域グループ長単位の積をとり、その積を各領域グループについて合計したサイズが、分散共有メモリとして割り当て可能なローカルメモリ内に確保できなければ、新たに割り当てる領域グループ長＝（空きサイズ÷合計サイズ）×領域グループ長の値を算出し（ステップＳ１２１１）、合計サイズが未使用領域で、分散共有メモリとして確保可能か否かを判定し（ステップＳ１２１２）、合計サイズの値を確保可能なサイズに縮小した上で、そのサイズを領域Ｍ２とする。縮小の一例としては、通常は、領域グループ長は一定であるが、前述のように合計サイズがローカルメモリ内に確保できない場合には、新たに割り当てる際の領域グループ長を縮小して割り当てる。合計サイズが分散共有メモリとして割り当て可能なサイズに達しなければ、エラーをノード間データ転送制御装置の利用者や利用システムに通知する（ステップＳ１２１３）。
【００５０】
尚、本発明においては、概ねメモリ構成を物理的に想定して説明しているが、仮想メモリを用いることで、使用するメモリ番地が実メモリ番地と異なっても構わない。その場合は、上述で説明したメモリ構成は、仮想メモリ上の説明となり、仮想番地と実番地の変換を経て、物理メモリ番地に基づいて処理が行われることになる。また、あるメモリ領域について、仮想的なメモリ番地が連続していても、物理的なメモリ配置が不連続となる場合も可能なので、例えば、図９のＭ１はメモリ領域が連続しているように記されているが、これは仮想メモリ上のことであり、実メモリ上では、離散的に割り当てられたものであっても構わない。ノード番地の変換は、ノード番地と分散共有メモリのメモリ番地を対応付けるデータテーブルを用いる場合もあるが、その他、メモリ番地の下位をマスクするとノード番地となるように設定する等して、演算或いは、メモリ操作等により、ノード番地と分散共有メモリのメモリ番地を対応付けるようにしてもよい。
【００５１】
以上、本発明の実施形態について説明したが、上述の処理によれば、分散共有メモリの中で使用されている領域、あるいは、バッファがある定まったメモリサイズを超過しているものがあり、領域不足が起こり得るような場合においては、使用状況を識別したメモリの構成と処理のフローを適用することで、効率的にサイズ超過を判定し効率的に割り当てを行うことができる。
【００５２】
また、使用状況を識別したメモリの構成と処理のフローを適用することで、分散共有メモリを効率的に利用でき、また、ローカルメモリを効率的に割り当てることができる。またノードの変更規則を用いる場合は、必ずしも個々の領域の不足に対してメモリを追加する必要はなく、変更規則を修正することにより、あるまとまった単位の領域に対し不足を判定し、追加するといった、効率的な割り当てが可能になる。また、ネットワーク構造に適合したメモリ構成と割り当て処理のフローにより、複数に区分されたネットワークに容易に対応付けを行うことができる。これらにより、個々のメモリ領域の集合に対して、サイズ超過判定する必要はなく、また、新たなメモリ割り当てに不足や無駄が減少し、ノード関係にあわせたメモリ割り当てが可能になる。
【００５３】
なお、上述の説明においては、簡易化のため、分散共有メモリのメモリ番地１−Ｃ−１は、ノード番地１−Ｈに変換される、とだけ記載しているが、実際は、図１を例に説明すると、次のように動作する。１−Ｃ−１は宛先のアプリケーションプログラム類があるノードのノード番地１−Ｈに変換されることにより、そのノード番地の示すノードにデータ１−Ｇが送達され、受信したノード内のメモリ番地１−Ｃ−１にデータ１−Ｇが書き込まれる。この１−Ｃ−１は宛先のアプリケーションプログラム類をも識別可能に設定されており（つまり送信側アプリケーションプログラム１−Ａが書き込み先として１−Ｃ−１を指定することで、宛先ノードだけでなくノード宛先アプリケーションプログラム類をも指定できるように、実際は、分散共有メモリは宛先ノード別に区分されているだけでなく宛先アプリケーションプログラムを識別できるように区分されている）、１−Ｃ−１に書き込まれたことがノード１−Ｍ内の宛先のアプリケーションプログラムに通知される（或いは、定期的にアプリケーションプログラムが書き込みを検出する）ことで、宛先のアプリケーションプログラムが１−Ｇを読む、すなわちデータを受信する。
【００５４】
本発明のノード間データ転送装置は、データを送信する主体（例えばアプリケーションプログラムやＯＳ）と、データを受信する主体（例えばアプリケーションプログラムやＯＳ）が、異なるノードにある場合だけでなく、同一のノード内にあってもよい。その場合は、例えば図１のアプリケーションプログラム類の一つの１−Ａが、他のアプリケーションプログラム類である１−Ａ’に送信するとする。１−Ａが分散共有メモリ１−Ｃ内に書き込んだデータ１−Ｇのメモリ番地である１−Ｃ−１は、通常はノード番地に変換されるが、変換されたノード番地１−Ｈは自ノード１−Ｆを示すことになるので、この変換手段を経由する必要はない。宛先がノード１−Ｆを示すことになるメモリ番地にデータが書き込まれた段階で、送信手順の処理は終了する。その後、１−Ａ’において前記データを読み取る受信手順が実行される。
【００５５】
なお、上述のノード間データ転送制御装置は内部に、コンピュータシステムを有している。そして、上述した処理の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしても良い。
【００５６】
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【図面の簡単な説明】
【００５７】
【図１】ノード間データ転送制御装置の構成を示すブロック図である。
【図２】通信ネットワークに接続されたノードの関係の概略を示す図である。
【図３】ノード内部のメモリの構造の概略を示す第１の図である。
【図４】ノード内部のメモリの構造の概略を示す第２の図である。
【図５】ノード内部のメモリの構造の概略を示す第３の図である。
【図６】ノード内部のメモリの構造の概略を示す第４の図である。
【図７】メモリ構成変更処理のフェーズを表す第１の図である。
【図８】メモリ構成変更処理のフェーズを表す第２の図である。
【図９】メモリ構成の変更の処理の概略を示す第１の図である。
【図１０】メモリ構成の変更の処理の概略を示す第２の図である。
【図１１】従来のメモリ構成変更の処理フローを示す図である。
【図１２】メモリ構成変更の処理フローを示す図である。
【符号の説明】
【００５８】
１―Ａ、１−Ａ’・・・アプリケーションプログラムまたはＯＳ類
１―Ｂ・・・ノード番地変換手段
１―Ｃ、１−Ｃ’・・・分散共有メモリ
１―Ｃ−１、１−Ｃ−ｎ・・・メモリ番地
１―Ｄ、１−Ｄ’・・・転送制御手段
１―Ｅ・・・内部バス
１−Ｆ，１−Ｊ，１−Ｋ，１−Ｌ，１−Ｍ，１−Ｎ・・・ノード
１−Ｇ・・・データ
１−Ｈ・・・ノード番地
１−Ｉ・・・通信ネットワーク
Ｇ１，Ｇ２，・・・，Ｇｓ・・・領域グループ
Ｍ１，Ｍ２，Ｍ１’，Ｍ２’，・・・分散共有メモリとして用いられているローカルメモリ内の領域
Ｌ１・・・領域集合内の領域の不足を判定する基準又はメモリ領域割り当て基準
Ｌ２・・・領域集合内の領域の不足を判定する基準又はメモリ領域割り当て基準
【図１】
2008305201.tif 000003
【図２】
2008305201.tif 000004
【図３】
2008305201.tif 000005
【図４】
2008305201.tif 000006
【図５】
2008305201.tif 000007
【図６】
2008305201.tif 000008
【図７】
2008305201.tif 000009
【図８】
2008305201.tif 000010
【図９】
2008305201.tif 000011
【図１０】
2008305201.tif 000012
【図１１】
2008305201.tif 000013
【図１２】
2008305201.tif 000014