(57)【特許請求の範囲】
【請求項１】
第１のメモリを有しオペレーティングシステムが組み込まれたメインプロセッサコアと、第２のメモリを有し、前記メインプロセッサコアにより制御される、オペレーティングシステムが組み込まれていないサブプロセッサコアと、を有し、
前記第１のメモリと前記第２のメモリとには、当該第１のメモリと当該第２のメモリとでデータの内容を同期する共有メモリ領域がそれぞれ形成されており、
前記メインプロセッサコアは、前記サブプロセッサコアの動作が停止しているときに、前記第１のメモリと前記第２のメモリとにそれぞれ形成されている前記共有メモリ領域内のデータの同期を行うよう構成された
情報処理装置。
【請求項２】
請求項１に記載の情報処理装置であって、
前記サブプロセッサコアは、所定の情報処理を行うよう前記メインプロセッサコアに依頼するとともに動作を停止し、
前記メインプロセッサコアは、前記サブプロセッサコアから依頼された前記所定の情報処理を行った後、当該所定の情報処理により更新された一方の共有メモリ領域内のデータの内容を他方の共有メモリ領域内に複製し、その後、前記サブプロセッサコアの動作を再開するよう制御する
情報処理装置。
【請求項３】
請求項１又は２に記載の情報処理装置であって、
前記サブプロセッサコアは、前記第２のメモリに形成されている共有メモリ領域内のデータの更新を行う情報処理を行うよう前記メインプロセッサコアに依頼するとともに動作を停止し、
前記メインプロセッサコアは、前記サブプロセッサコアから依頼された前記第２のメモリに形成されている共有メモリ領域内のデータの更新を行う情報処理を行った後、当該情報処理により更新された前記第２のメモリに形成されている共有メモリ領域内のデータの内容を前記第１のメモリに形成されている共有メモリ領域内に複製し、その後、前記サブプロセッサコアの動作を再開するよう制御する
情報処理装置。
【請求項４】
請求項２又は３に記載の情報処理装置であって、
前記情報処理は、システムコールである
情報処理装置。
【請求項５】
請求項１乃至４のいずれかに記載の情報処理装置であって、
前記メインプロセッサコアは、前記サブプロセッサコアの動作が停止したときに、前記第２のメモリに形成されている共有メモリ領域内のデータの内容に更新があるか否かを確認し、当該第２のメモリに形成されている共有メモリ領域内のデータの更新の内容を前記第１のメモリに形成されている共有メモリ領域内に複製する
情報処理装置。
【請求項６】
請求項１乃至５のいずれかに記載の情報処理装置であって、
前記メインプロセッサコアは、前記サブプロセッサコアの動作が停止したときに、前記第１のメモリに形成されている共有メモリ領域内のデータの更新の内容を前記第２のメモリに形成されている共有メモリ領域内に複製する
情報処理装置。
【請求項７】
請求項１乃至６のいずれかに記載の情報処理装置であって、
前記サブプロセッサコアは、共有メモリ領域を形成するよう前記メインプロセッサコアに依頼するとともに動作を停止し、
前記メインプロセッサコアは、前記サブプロセッサコアからの依頼に応じて、前記第１のメモリと前記第２のメモリとに前記共有メモリ領域を形成した後、前記サブプロセッサコアの動作を再開するよう制御する
情報処理装置。
【請求項８】
第１のメモリを有しオペレーティングシステムが組み込まれたメインプロセッサコアと、第２のメモリを有し、前記メインプロセッサコアにより制御される、オペレーティングシステムが組み込まれていないサブプロセッサコアと、を有し、前記第１のメモリと前記第２のメモリとには、当該第１のメモリと当該第２のメモリとでデータの内容を同期する共有メモリ領域がそれぞれ形成されている情報処理装置で実行される情報処理方法であって、
前記メインプロセッサコアは、前記サブプロセッサコアの動作が停止しているときに、前記第１のメモリと前記第２のメモリとにそれぞれ形成されている前記共有メモリ領域内のデータの同期を行う
情報処理方法。
【請求項９】
請求項８に記載の情報処理方法であって、
前記サブプロセッサコアは、所定の情報処理を行うよう前記メインプロセッサコアに依頼するとともに動作を停止し、
前記メインプロセッサコアは、前記サブプロセッサコアから依頼された前記所定の情報処理を行った後、当該所定の情報処理により更新された一方の共有メモリ領域内のデータの内容を他方の共有メモリ内に複製し、その後、前記サブプロセッサコアの動作を再開するよう制御する
情報処理方法。
【請求項１０】
オペレーティングシステムが組み込まれていないサブプロセッサコアを制御する機能を有する、オペレーティングシステムが組み込まれたメインプロセッサコアであって、
第１のメモリを有し、
前記第１のメモリには、前記サブプロセッサコアが有する第２のメモリとの間でデータの内容を同期する共有メモリ領域が形成されており、
前記サブプロセッサコアの動作が停止しているときに、前記第１のメモリに形成されている共有メモリ領域のデータと、前記第２のメモリに形成されている共有メモリ領域のデータとの同期を行う共有メモリ同期手段を有する
メインプロセッサコア。
【請求項１１】
第１のメモリを有し、当該第１のメモリには、サブプロセッサコアが有する第２のメモリとの間でデータの内容を同期する共有メモリ領域が形成されている、オペレーティングシステムが組み込まれていないサブプロセッサコアを制御する機能を有する、オペレーティングシステムが組み込まれたメインプロセッサコアを、
前記サブプロセッサコアの動作が停止しているときに、前記第１のメモリに形成されている共有メモリ領域のデータと、前記第２のメモリに形成されている共有メモリ領域のデータとの同期を行う共有メモリ同期手段として機能させるためのプログラム。
【請求項１２】
オペレーティングシステムが組み込まれていないサブプロセッサコアを制御する機能を有する、オペレーティングシステムが組み込まれたメインプロセッサコアが実行する情報処理方法であって、
前記サブプロセッサコアの動作が停止しているときに、前記メインプロセッサコアが有する第１のメモリと前記サブプロセッサコアが有する第２のメモリとにそれぞれ形成されている共有メモリ領域内のデータの同期を行う
情報処理方法。
【請求項１３】
オペレーティングシステムが組み込まれたメインプロセッサコアによって制御される、オペレーティングシステムが組み込まれていないサブプロセッサコアであって、
第２のメモリを有し、
前記第２のメモリには、前記メインプロセッサコアが有する第１のメモリとの間でデータの内容を同期する共有メモリ領域が形成されており、
前記第２のメモリに形成されている共有メモリ領域のデータの内容は、前記サブプロセッサコアの動作が停止しているときに、前記第１のメモリに形成されている共有メモリ領域のデータと同期される
サブプロセッサコア。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法、メインプロセッサコア、プログラム、情報処理方法、サブプロセッサコア、に関する。
【背景技術】
【０００２】
制御用ノード（制御ノード）と演算用ノード（計算ノード）とを備える計算機が知られている（例えば、特許文献１）。特許文献１に記載の技術では、制御用ノードによって割り当てられたリモートプロセスを演算用ノードにより実行する。また、演算用ノードにて実行されるリモートプロセスが発行するＩｎｐｕｔ／Ｏｕｔｐｕｔ処理は、制御用ノードを介して行われることになる。
【０００３】
また、上記のように複数のノードを備える場合、ノード間（プログラム間）でデータをやり取りするために共有メモリが用いられることがある。この場合、共有メモリ間のデータの同期を制御することが必要になる。このような共有メモリのデータを制御するための技術として、例えば、特許文献２、３が知られている。特許文献２には、中央演算装置それぞれのメモリバスそれぞれに設けた共有メモリを同期するための方式が記載されている。また、特許文献３には、伝送装置に設けられた共有メモリのデータを周期的に送信することでデータを一致化する際に用いられる方法が記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−１６５３１８号公報
【特許文献２】特開Ｈ３−２６８１５８号公報
【特許文献３】特開Ｈ９−２６９９３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記のような制御ノードと計算ノードとを備える計算機においては、計算ノードの性能を出すために、計算ノードにプリサイスエクセプション機能を持たせない場合がある。このような場合、計算ノードは、例外が発生した瞬間の命令で停止し、例外処理後に停止した命令から処理を復帰することが出来ないことになる。その結果、空間不在例外を契機に動作を行うメモリマップドファイル機能を使用することが難しくなり、異なるプロセス間でメモリ共有を行うことが難しくなることがあった。
【０００６】
つまり、一般的なメモリマップドファイルでは、空間不在例外の処理においてページング処理が行われ、実際にメモリ上にファイルの内容が作成される。そのため、メモリマップドファイルはプリサイスエクセプションが可能なＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）で実行することが前提となっていた。その結果、プリサイスエクセプションをサポートしないＣＰＵを持つ計算ノードでは、メモリマップドファイル機能を使用する事が難しくなり、異なるプロセス間でメモリ共有を行うことが難しくなる、という問題があった。
【０００７】
このように、プリサイスエクセプションをサポートしないＣＰＵを持つ計算ノードでは、メモリマップドファイル機能を用いることが出来ず、プロセス間でメモリ共有を行うことが難しい、という問題が生じていた。
【０００８】
そこで、本発明の目的は、プリサイスエクセプションをサポートしないＣＰＵを持つ計算ノードでは、メモリマップドファイル機能を用いることが出来ず、プロセス間でメモリ共有を行うことが難しい、という問題を解決する情報処理装置を提供することにある。
【課題を解決するための手段】
【０００９】
かかる目的を達成するため本発明の一形態である情報処理装置は、
第１のメモリを有しオペレーティングシステムが組み込まれたメインプロセッサコアと、第２のメモリを有し、前記メインプロセッサコアにより制御される、オペレーティングシステムが組み込まれていないサブプロセッサコアと、を有し、
前記第１のメモリと前記第２のメモリとには、当該第１のメモリと当該第２のメモリとでデータの内容を同期する共有メモリがそれぞれ作成されており、
前記メインプロセッサコアは、前記サブプロセッサコアの動作が停止しているときに、前記第１のメモリと前記第２のメモリとにそれぞれ作成された前記共有メモリのデータの同期を行うよう構成された
という構成を採る。
【００１０】
また、本発明の他の形態である情報処理方法は、
第１のメモリを有しオペレーティングシステムが組み込まれたメインプロセッサコアと、第２のメモリを有し、前記メインプロセッサコアにより制御される、オペレーティングシステムが組み込まれていないサブプロセッサコアと、を有し、前記第１のメモリと前記第２のメモリとには、当該第１のメモリと当該第２のメモリとでデータの内容を同期する共有メモリがそれぞれ作成されている情報処理装置で実行される情報処理方法であって、
前記メインプロセッサコアは、前記サブプロセッサコアの動作が停止しているときに、前記第１のメモリと前記第２のメモリとにそれぞれ作成された前記共有メモリのデータの同期を行う
という構成を採る。
【００１１】
また、本発明の他の形態であるメインプロセッサコアは、
オペレーティングシステムが組み込まれていないサブプロセッサコアを制御する機能を有するメインプロセッサコアであって、
第１のメモリを有し、
前記第１のメモリには、前記サブプロセッサコアが有する第２のメモリとの間でデータの内容を同期する共有メモリが作成されており、
前記サブプロセッサコアの動作が停止しているときに、前記第１のメモリと前記第２のメモリとにそれぞれ作成された前記共有メモリのデータの同期を行う共有メモリ同期手段を有する
という構成を採る。
【００１２】
また、本発明の他の形態であるプログラムは、
第１のメモリを有し、前記第１のメモリには、前記サブプロセッサコアが有する第２のメモリとの間でデータの内容を同期する共有メモリが作成されている、オペレーティングシステムが組み込まれていないサブプロセッサコアを制御する機能を有するメインプロセッサコアを、
前記サブプロセッサコアの動作が停止しているときに、前記第１のメモリと前記第２のメモリとにそれぞれ作成された前記共有メモリのデータの同期を行う共有メモリ同期手段として機能させるためのプログラムである。
【００１３】
また、本発明の他の形態である情報処理方法は、
オペレーティングシステムが組み込まれていないサブプロセッサコアを制御する機能を有するメインプロセッサコアが実行する情報処理方法であって、
前記サブプロセッサコアの動作が停止しているときに、前記メインプロセッサコアに作成された第１のメモリと前記サブプロセッサコアに作成された第２のメモリとにそれぞれ作成された共有メモリのデータの同期を行う
という構成を採る。
【００１４】
また、本発明の他の形態であるサブプロセッサコアは、
オペレーティングシステムが組み込まれたメインプロセッサコアによって制御される、オペレーティングシステムが組み込まれていないサブプロセッサコアであって、
第２のメモリを有し、
前記第２のメモリには、前記メインプロセッサコアが有する第１のメモリとの間でデータの内容を同期する共有メモリ領域が形成されており、
前記第２のメモリに形成されている共有メモリ領域のデータの内容は、前記サブプロセッサコアの動作が停止しているときに、前記第１のメモリに形成されている共有メモリ領域のデータと同期される
サブプロセッサコア。
【発明の効果】
【００１５】
本発明は、以上のように構成されることにより、プリサイスエクセプションをサポートしないＣＰＵを持つ計算ノードでは、メモリマップドファイル機能を用いることが出来ず、プロセス間でメモリ共有を行うことが難しい、という問題を解決する情報処理装置を提供することが可能となる。
【図面の簡単な説明】
【００１６】
【図１】本発明の第１の実施形態に係る情報処理装置の構成の一例を示すブロック図である。
【図２】本発明の第１の実施形態に係る情報処理装置における計算コアの構成の一例を示すブロック図である。
【図３】本発明の第１の実施形態に係る情報処理装置の処理の説明するための図である。
【図４】本発明の第１の実施形態に係る情報処理装置において、制御ノードと計算ノードの構成の一例を示すブロック図である。
【図５】本発明の第１の実施形態に係る情報処理装置における計算ノードが計算プロセスを実行する際の構成の一例を示すブロック図である。
【図６】本発明の第１の実施形態に係る情報処理装置で使用するプロセス対応表の一例を示す図である。
【図７】本発明の第１の実施形態に係る情報処理装置における計算プロセスが共有メモリを取得する際の動作の一例を示すフローチャートである。
【図８】本発明の第１の実施形態に係る情報処置装置における計算プロセスがシステムコールを実行した際の共有メモリの同期処理の一例を示すフローチャートである。
【図９】計算プロセスがシステムコールを実行した際の共有メモリの同期処理の流れの一例を示す図である。
【図１０】本発明の第１の実施形態に係る情報処置装置における計算プロセスがＣＰＵ命令によってメモリ更新を行った際の同期処理の一例を示すフローチャートである。
【図１１】計算プロセスがＣＰＵ命令によってメモリ更新を行った際の同期処理の流れの一例を示す図である。
【図１２】本発明の第１の実施形態に係る情報処置装置における制御ノードのプロセスがシステムコールによって共有メモリを更新した際の同期処理の一例を示すフローチャートである。
【図１３】制御ノードのプロセスがシステムコールによって共有メモリを更新した際の同期処理の流れの一例を示す図である。
【図１４】本発明の第１の実施形態に係る情報処理装置における制御ノードのプロセスがＣＰＵ命令によって共有メモリを更新した際の同期処理の一例を示すフローチャートである。
【図１５】制御ノードのプロセスがＣＰＵ命令によって共有メモリを更新した際の同期処理の一例を示す図である。
【図１６】本発明の第２の実施形態にかかる情報処理装置の構成の概略を示す概略ブロック図である。
【図１７】本発明の第２の実施形態にかかる情報処理装置の他の構成の概略を示す概略ブロック図である。
【発明を実施するための形態】
【００１７】
［第１の実施形態］
本発明の第１の実施形態について、図１乃至図１５を参照して説明する。図１は、情報処理装置の構成の一例を示すブロック図である。図２は、計算コア２４の構成の一例を示すブロック図である。図３は、情報処理装置の処理を説明するための図である。図４は、制御ノード１と計算ノード２の構成の一例を示すブロック図である。図５は、計算ノード２が計算プロセスｗｐ実行する際の構成の一例を示す図である。図６は、プロセス対応表１３０３の一例を示す図である。図７は、計算プロセスが共有メモリを取得する際の動作の一例を示すフローチャートである。図８は、計算プロセスがシステムコールを実行した際の共有メモリの同期処理の一例を示すフローチャートである。図９は、計算プロセスがシステムコールを実行した際の共有メモリの同期処理の流れの一例を示す図である。図１０は、計算プロセスがＣＰＵ命令によってメモリ更新を行った際の同期処理の一例を示すフローチャートである。図１１は、計算プロセスがＣＰＵ命令によってメモリ更新を行った際の同期処理の流れの一例を示す図である。図１２は、制御ノードのプロセスがシステムコールによって共有メモリを更新した際の同期処理の一例を示すフローチャートである。図１３は、制御ノードのプロセスがシステムコールによって共有メモリを更新した際の同期処理の流れの一例を示す図である。図１４は、制御ノードのプロセスがＣＰＵ命令によって共有メモリを更新した際の同期処理の一例を示すフローチャートである。図１５は、制御ノードのプロセスがＣＰＵ命令によって共有メモリを更新した際の同期処理の一例を示す図である。
【００１８】
図１を参照すると、本実施形態における情報処理装置は、メインプロセッサであるノード１と、サブプロセッサであるノード２と、を有している。また、ノード１とノード２とは、ノード間通信手段３を介して相互に通信可能なよう構成されている。本実施形態における情報処理装置は、例えば、ＨＰＣ（Ｈｉｇｈ  Ｐｅｒｆｏｒｍａｎｃｅ  Ｃｏｍｐｕｔｉｎｇ）向けの並列計算機として利用される。
【００１９】
なお、本実施形態では、情報処理装置がノード１とノード２の２つのノードから構成されている場合について説明する。しかしながら、情報処理装置の構成はこのような場合に限定されない。つまり、情報処理装置は、３つ以上の複数のノードから構成されていても構わない。また、本実施形態では、ノード１とノード２とは、同じコンピュータアーキテクチャを有している。しかしながら、ノード１とノード２とは、異なるコンピュータアーキテクチャを採用していても構わない。
【００２０】
図１で示すように、ノード１、２は、メモリ１１、２１と、ＣＰＵ１２、２２と、データ転送手段１３、２３とを有している。また、ＣＰＵ１２、２２は、ｍ個（ｍは１以上の正の整数）のプロセッサコア１４、２４を有している。メモリ１１、２１と、ＣＰＵ１２、２２と、データ転送手段１３、２３と、は、ノード内ではＰＣＩ  Ｅｘｐｒｅｓｓなどによって接続されており、プロセッサコア１４、２４は、自ノード内のメモリ１１、２１、データ転送手段１３，２３に上記ＰＣＩ  Ｅｘｐｒｅｓｓなどを通じてアクセス可能である。なお、本実施形態における情報処理装置は、ＮＵＭＡ（Ｎｏｎ−Ｕｎｉｆｏｒｍｅｄ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）型の情報処理装置であり、各ノードが他方のノードのメモリへアクセスするとき（例えば、ノード１がノード２のメモリ２１へアクセスするとき）は、ノード間通信手段３を用いることになる。
【００２１】
メモリ１１、２１は、ノード内のプロセッサコア１４、２４から共有される。
【００２２】
データ転送手段１３、２３は、ＣＰＵ１２、２２を介さずにメモリ１１、２１に対してアクセスするＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）エンジン１５、２５と、ＣＰＵ１２、２２上のレジスタ等の資源に対してアクセスする対ＣＰＵ通信機能１６、２６とを有している。なお、対ＣＰＵ通信機能１６、２６は、ＣＰＵ１２、２２上のレジスタ等の資源をメモリ空間にマップし、ＤＭＡエンジン１５、２５からアクセスするように構成しても構わない。
【００２３】
ノード間通信手段３は、ＰＣＩ  Ｅｘｐｒｅｓｓ、ＩｎｆｉｎｉｂａｎｄなどのＤＭＡ機能若しくはＲＤＭＡ（Ｒｅｍｏｔｅ  Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）機能を持つインターコネクトによって実現することが出来る。
【００２４】
本実施形態では、ＮＵＭＡ型メモリを持つ情報処理装置のノードの１つを制御ノードと呼び、残りを計算ノードと呼び、区別する。本実施形態では、制御ノードがオペレーティングシステム（ＯＳ、Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）機能を有するのに対して、計算ノードはオペレーティングシステム機能を有していない。また、計算ノードはプリサイスエクセプションをサポートしないＣＰＵ２２を有している。なお、ＣＰＵ２２は、アウトオブオーダー実行を行うよう構成されていても構わないし、インオーダー実行を行うよう構成されていても構わない。図１では、ノード１が制御ノードであり、ノード２が計算ノードである。つまり、制御ノード１は、メモリ１１と、ＣＰＵ１２と、データ転送手段１３と、を有している。また、計算ノード２は、メモリ２１と、ＣＰＵ２２と、データ転送手段２３と、を有している。なお、以下においては、計算ノード２上のプロセッサコア２４を計算コアと呼ぶ。
【００２５】
図２を参照すると、計算コア２４は、汎用レジスタ群２４０と、制御レジスタ群２４１と、例外検出手段２４２と、レジスタ群アクセス手段２４３と、例外通知手段２４４と、を有している。
【００２６】
汎用レジスタ群２４０は、ｘ８６やＡＲＭなどの一般的なプロセッサと同様に、プログラムカウンタ（ＰＣ）や演算結果を格納するための汎用レジスタ（ＧＰＲ）などから構成される。これらのレジスタは、計算コア２４での命令の実行に伴い書き換えられることになる。また、計算コア２４がロード命令、ストア命令を実行することで、汎用レジスタ群２４０とメモリとの間でデータ転送が行われる。
【００２７】
制御レジスタ群２４１は、計算コア２４の実行を制御するためのレジスタである。制御ノード１は、計算ノード２の制御レジスタ２４１に対して、ノード間通信手段３及びデータ転送手段１３、２３を通じて、命令の実行の開始及び実行の停止を指示することになる。制御ノード１が計算コア２４に実行の開始を指示すると、計算コア２４は汎用レジスタ２４０の内容に従って処理を開始する。具体的には、計算コア２４は、プログラムカウンタの値に従い命令をフェッチして、フェッチされた命令の実行を行い、汎用レジスタ群２４０やメモリ２３の内容の更新を実施する。この状態を命令実行状態と呼ぶ。また、制御ノード１が計算コア２４に実行の停止を指示すると、計算コア２４は、新規の命令実行を停止させる。実行の停止が指示された状態で、計算コア２４上に仕掛中の命令が無い状態を、命令実行停止状態と呼ぶ。計算コア２４は、一旦命令実行停止状態に遷移すると、制御ノード１から実行の開始の指示があるまで、新規の命令実行を行わない。計算コア２４が命令実行状態であるか、あるいは、命令実行停止状態であるかは、ノード間通信手段３、データ転送手段１３、レジスタ群アクセス手段２４３を通じて、制御ノード１から参照することが出来る。なお、仮に、参照を行う機能が無い場合には、例外情報の送出によって、命令実行状態であるか、命令実行停止状態であるかを制御ノードに対して通知するように構成することが出来る。
【００２８】
例外検出手段２４２は、命令の実行中に何らかの例外を検出した場合に、制御レジスタ群２４１に実行の停止の指示を行う。同時に、例外検出手段２４２は、例外通知手段２４４に対して、例外通知の依頼を行う（例外発生情報を送信する）。上記の例外とは、ゼロ除算例外などの演算例外、メモリアクセス境界違反などのメモリアクセス系例外、システムコール呼び出しのためのソフトウェアトラップなどの一般のプロセッサで発生する例外を指す。
【００２９】
例外通知手段２４４は、例外検出手段２４２から取得した例外発生情報に基づき、ノード間通信手段３を用いて、制御ノード１に対して、計算コア２４の実行停止を通知する。この例外通知手段２４４は、例外の発生を制御ノード１に通知することが出来れば、実装方法は問わない。ゆえに、（Ａ）ＰＣＩ  ＥｘｐｒｅｓｓのＭＳＩ／ＭＳＩ−Ｘのようなノード間通信手段３が持つ割り込み機能、（Ｂ）事前に予約したメモリ領域へのＤＭＡ書き込み、などの方法で実現することが出来る。（Ｂ）の方法の場合には、制御ノード１上で後述する計算ノード管理手段１２０が、計算ノード２からの例外通知の有無をポーリング等の方式で監視する必要がある。さらに、例外通知手段２４４は、制御ノード１からの設定により、制御ノード１への例外発生の通知を抑止することも出来る。その場合には、例えば、（Ｃ）制御ノード１が直接に制御レジスタ群２４１の実行状態を監視（ポーリング）することで、例外の発生を制御ノード１が検知するように構成することが出来る。
【００３０】
レジスタ群アクセス手段２４３は、制御ノード１から発行された指示に基づいて、汎用レジスタ群２４０及び制御レジスタ群２４１の各レジスタに対して読み出し・書き込みを行う。ただし、汎用レジスタ群２４０への読み出し及び書き込みは、命令実行停止状態の計算コア２４にのみ発行が許可される。命令実行状態の計算コア２４の汎用レジスタ群２４０へアクセスがあったときの計算コア２４の動作は不定である（例えば、当該アクセスは無視される）。
【００３１】
本実施形態における情報処理装置は、例えば、このような構成を有している。つまり、本実施形態の情報処理装置は、１つの制御ノード１と１つ以上の計算ノード２とから構成される。また、制御ノード１にはオペレーティングシステムが組み込まれている。制御ノード１は、計算ノード２上に複数のプロセスを展開して、同時に実行を行うことになる。一方、計算ノード２では、オペレーティングシステムが動作しない。また、本実施形態における計算コア２４は、プリサイスエクセプションをサポートしない。
【００３２】
図３で示すように、本実施形態における情報処理装置は、上記のような構成を有する制御ノード１上のメモリ１１内のデータ内容と計算ノード２上のメモリ２１内のデータ内容とを最新の内容で同期することで、制御ノード１と計算ノード２間の実質的なメモリ共有を可能とする。具体的には、後述するように、本実施形態における情報処理装置は、メモリマップドファイルの共有マッピングによる共有メモリを制御ノード１と計算ノード２に作成し、制御ノード１と計算ノード２とに作成された共有メモリを適切なタイミングで更新することで、実質的なメモリ共有を可能とする。
【００３３】
図４は、本実施形態における情報処理装置において、上記のような実質的なメモリ共有を可能とするための構成の一例を示している。以下、計算ノード２、制御ノード１についてより詳細に説明する。
【００３４】
＜計算ノード＞
上述したように、計算ノード２は、オペレーティングシステムが動作しない。このため、ＯＳジッタなどのＯＳの悪影響を排除することが出来る。また、計算ノード２の計算コア２４は、プリサイスエクセプションをサポートしていない。この構成は、計算ノード２でより高い性能を出したい場合などに考えられる。
【００３５】
この計算ノード２上で一般の計算機が実現する計算モデルを採用するために、一般のオペレーティングシステムが提供するサービスの代替機能を、制御ノード１がノード間通信手段３を介して計算ノード２に対して提供する。
【００３６】
図４で示すように、計算ノード２上には、複数の計算プロセス２００−ｍが展開されている。なお、計算プロセス２００−ｍとは、計算ノード２上に展開されたプロセスのことをいう。計算プロセス２００−ｍは、計算ノード２上で動作するアプリケーションプログラムの開始等に伴い生成され、その実行の終了に伴って破棄されることになる。
【００３７】
具体的には、図５で示すように、計算ノード２のメモリ２１内には、計算プロセス２００−ｍに関連するデータであるプロセスイメージ２１０−ｍが複数格納されている。また、計算コア２４−ｍには、それぞれ、１つの計算プロセス２００−ｍのコンテキストが格納されている。各計算コア２４−ｍは、格納されたコンテキストに対応するメモリ２１上のプロセスイメージ２１０―ｍを用いて、計算プロセス２００−ｍの処理を行うことになる。なお、メモリ２１に格納されるプロセスイメージ２１０−ｍの数は、計算コア２４−ｍの数と異なっていても構わない。
【００３８】
また、計算ノード２が有するメモリ２１には、後述する処理により、共有メモリ２１１が作成される（図４参照）。共有メモリ２１１には、計算プロセス２００−ｍが取得した共有メモリが配置される。後述するように、本実施形態における情報処理装置は、共有メモリ２１１のデータの内容と、制御ノード１が有する共有メモリ１１１のデータの内容と、を同期することになる。
【００３９】
また、計算ノード２は、計算プロセス２００−ｍが共有メモリ２１１内のデータの更新を行った際に、当該共有メモリ２１１内のデータに変更があったことを示すための共有メモリ更新識別子２０１を有している。共有メモリ更新識別子２０１は、計算プロセス２００−ｍが共有メモリ２１１を更新した場合、当該共有メモリ２１１内のデータに更新があった旨を示すよう計算プロセス２００−ｍなどにより操作されることになる。
【００４０】
＜制御ノード＞
制御ノード１は、オペレーティングシステムを採用する通常のスタンドアローン型の計算機システムと同じ構成を採用し、計算ノード２のためのオペレーティングシステム機能のサービスを提供する。なお、本明細書では、制御ノード１上に搭載されるオペレーティングシステムを、制御ノード用ＯＳ１１０と呼ぶ。制御ノード用ＯＳ１１０は、例えば、メモリマップドファイル機能などのオペレーティングシステムとしての一般的な機能を有している。制御ノード用ＯＳ１１０は、Ｌｉｎｕｘ（登録商標）やＷｉｎｄｏｗｓ（登録商標）などに代表される計算機に用いられるコモディティのオペレーティングシステムであってよい。
【００４１】
制御ノード１は、制御ノード用ＯＳ１１０が動作するため、計算ノード２と異なり制御ノード用ＯＳ１１０のシステム管理機能を用いて、ハードウェア（プロセッサコア１４及びメモリ１１）の仮想化を行うことが出来る。また、制御ノード１のメモリ１１には、計算ノード２と同様に、後述する処理により、共有メモリ１１１が作成される。
【００４２】
制御ノード１は、制御ノード用ＯＳ１１０上に、複数の代理プロセス１２０−ｍと計算ノード管理手段１３０とを有する。また、制御ノード用ＯＳ１１０は、例えば、ページテーブル１１０１と、メモリ属性設定手段１１０３と、システムコール１１０４と、の機能を有している。
【００４３】
ページテーブル１１０１は、ページング方式を用いる際のメモリに関する情報を保持する。ページテーブル１１０１には、仮想アドレスと物理アドレスとのマッピングが格納されている。また、ページテーブル１１０１は、メモリ１ページごとに対応するページテーブルエントリ１１０２を有している。ページの使用状況やページに設定される属性については、ページテーブルエントリ１１０２に保持されることになる。
【００４４】
メモリ属性設定手段１１０３は、後述する共有メモリ１１１の取得時にメモリの属性を設定する。例えば、メモリ属性設定手段１１０３は、共有メモリ１１１の取得時にメモリの属性を書き込み禁止に設定する。
【００４５】
システムコール１１０４は、制御ノード１と計算ノード２に対して、ＯＳ機能を提供する。例えば、計算ノード２は、代理プロセス１２０−ｍを介して、システムコール１１０４を利用することになる。
【００４６】
代理プロセス１２０−ｍは、計算ノード２上の計算プロセス２００−ｍの一つ一つに対応して生成される。ゆえに、計算ノード２上のメモリ２１の各プロセスイメージ２１０−ｍに対して、それぞれ一つの代理プロセス１２０−ｍがあることになる。代理プロセス１２０−ｍは、計算ノード２上の計算プロセス２００−ｍと対応付けられており、計算プロセス２００−ｍが発行するシステムコール要求を、ノード間通信手段３、計算ノード管理手段１３０、を介して受け付ける。そして、代理プロセス１２０−ｍは、システムコール１１０４を用いて、計算ノード２上に存在するべきオペレーティングシステムの代替でシステムコール処理を行う。
【００４７】
代理プロセス１２０−ｍは、システムコール要求を代理実行する機能を複数有する。代理プロセス１２０−ｍは、例えば、メモリ更新代理実行手段１２０１−ｍと、メモリマッピング代理実行手段１２０２−ｍと、しての機能を有している。メモリ更新代理実行手段１２０１−ｍは、計算プロセス２００−ｍのメモリ更新を行うシステムコールを代理実行する。また、メモリマッピング代理実行手段１２０２−ｍは、計算プロセス２００−ｍが、本発明によるメモリマップドファイル機能を実行するために用いられる。
【００４８】
また、代理プロセス１２０−ｍは、代理プロセス１２０−ｍが利用する共有メモリ１１１と、計算プロセス２００−ｍが利用する共有メモリ２１１と、の対応状態を保持する共有メモリ情報１２０３−ｍを有している。例えば、共有メモリ情報１２０３−ｍには、代理プロセス１２０−ｍが利用する共有メモリ１１１の領域情報と、対応する計算プロセス２００−ｍが利用する共有メモリ２１１の領域情報と、が対応付けて格納されている。
【００４９】
計算ノード管理手段１３０は、計算ノード２に対して生成され、その計算ノード２上のプロセッサコア２４（計算コア２４）、メモリ２１などのハードウェア資源の管理を行う。従って、情報処理装置が複数の計算ノード２を有する場合には、当該計算ノード２ごとに計算ノード管理手段１３０が生成されることになる。また、計算ノード管理手段１３０は、一部のリソースに対する代理プロセス１２０−ｍから計算コア２４へのアクセスの仲介なども実施する。例えば、計算ノード管理手段１３０は、計算プロセス２００−ｍを生成する際の計算コア２４の割り当て、計算ノード２上のメモリ管理、計算プロセス２００−ｍからの代理プロセス１２０−ｍに対するシステムコールの仲介、などを行う。
【００５０】
上記の操作を実現するために、計算ノード管理手段１３０は、計算ノード２上の計算コア２４及びメモリ２１などのハードウェア資源と計算プロセス２００−ｍや代理プロセス１２０−ｍなどの仮想化された資源との紐付けを行って、これらを管理する。例えば、計算ノード管理手段１３０は、代理プロセス１２０−ｍと、計算コア２４と、の対応をプロセス対応表１３０３に格納する。
【００５１】
図６は、プロセス対応表１３０３の一例を示している。図６を参照すると、プロセス対応表１３０３では、代理プロセスＩＤ１３０３１と計算コア番号１３０３２とが紐付けられている。ここで、代理プロセス１３０３１は、代理プロセス１２０−ｍを識別するためのＩＤである。また、計算コア番号１３０３２は、代理プロセス１２０−ｍに対応する計算プロセス２００−ｍが動作中の計算コア２４の番号を示している。例えば、図６の一行目では、代理プロセス１２０−ｍ「３１９９６」に対応する計算プロセス２００−ｍが動作中の計算コア２４の番号が「Ｃｏｒｅ＃０」であることを示している。
【００５２】
このようなプロセス対応表１３０３を用いることで、計算ノード管理手段１３０は、計算コア番号１３０３２から、対応する代理プロセスＩＤ１３０３１を求めることが出来る。また、計算ノード管理手段１３０は、代理プロセスＩＤ１３０３１から、動作中の計算コア２４の番号である計算コア番号１３０３２を求めることが出来る。
【００５３】
また、計算ノード管理手段１３０は、例えば、計算ノードメモリ更新確認手段１３０１と、共有メモリ同期手段１３０２と、しての機能を有している。計算ノードメモリ更新確認手段１３０１は、計算ノード２上の共有メモリ２１１内のデータの更新状態を確認する。計算ノードメモリ更新確認手段１３０１は、例えば、計算ノード２上の共有メモリ更新識別子２０１を参照することで、共有メモリ２１１内のデータの内容の更新の有無を確認することになる。共有メモリ同期手段１３０２は、制御ノード１上の共有メモリ１１１と、計算ノード２上の共有メモリ２１１との同期をとる。共有メモリ同期手段１３０２は、例えば、計算ノード２上の共有メモリ２１１内のデータの更新内容を、制御ノード１上の共有メモリ１１１に複製する。または、共有メモリ同期手段１３０２は、例えば、制御ノード１上の共有メモリ１１１内のデータの更新内容を、計算ノード２上の共有メモリ２１１に複製する。
【００５４】
以上が、本実施形態における情報処理装置が有する計算ノード２と制御ノード１の詳細な説明である。計算ノード２と制御ノード１とは、上述した構成を用いて、共有メモリ１１１、２１１を取得することになる。また、計算ノード２と制御ノード１とは、後述する所定のタイミングで、共有メモリ１１１、２１１の同期を行うことになる。以下、本実施形態における情報処理装置が共有メモリ１１１、２１１を取得する際の動作と、共有メモリ１１１、２１１を同期する際の動作について説明する。
【００５５】
まず、計算ノード２上の計算プロセス２００−ｍが、メモリマップドファイルの共有マッピングによる共有メモリ１１１、２１１を取得する際の動作の一例について図７を用いて説明する。
【００５６】
［共有メモリ取得時］
図７（Ａ）は、計算ノード２側の処理を示すフローチャートである。図７（Ａ）を参照すると、まず、計算ノード２で動作する計算プロセス２００−ｍは、制御ノード１の代理プロセス１２０−ｍに対して、共有メモリ１１１、２１１の割り当て（システムコール実行）を要求する（ステップＳ１０１）。また、計算プロセス２００−ｍは、上記割り当ての要求を行うとともに、自身の実行を停止する（ステップＳ１０２）。これにより、計算プロセス２００−ｍは、代理プロセス１２０−ｍがシステムコールを代理実行して計算プロセス２００−ｍの実行を再開させるのを待つことになる（計算プロセス２００−ｍは、代理プロセス１２０−ｍが再開させるまで停止し続ける）。その後、共有メモリ１１１、２１１の割り当てが代理プロセス１２０−ｍによって完了した後、代理プロセス１２０−ｍによって、計算プロセス２００−ｍの実行が再開される（ステップＳ１０３）。
【００５７】
図７（Ｂ）は、制御ノード１側の処理を示すフローチャートである。図７（Ｂ）を参照すると、まず、計算ノード管理手段１３０が、計算ノード２（計算プロセス２００−ｍ）が発行する共有メモリ割り当てのシステムコールを取得する（ステップＳ１１１）。すると、計算ノード管理手段１３０は、当該取得したシステムコールを、代理プロセス１２０−ｍに通知する。これにより、代理プロセス１２０−ｍで、共有メモリ割り当てのシステムコール処理が開始されることになる。
【００５８】
まず、代理プロセス１２０−ｍは、メモリマッピング代理実行手段１２０２−ｍを用いて、制御ノード用ＯＳ１１０が提供するメモリマップドファイル機能により、例えば外部のディスクなどから共有対象のファイルを読み込み、共有メモリ１１１を制御ノード１のメモリ１１上に作成する（ステップＳ１１２）。また、このとき、代理プロセス１２０−ｍのメモリマッピング代理実行手段１２０２−ｍは、メモリ属性設定手段１１０３を用いて、作成した共有メモリ１１１の属性を書き込み禁止に設定する（ステップＳ１１３）。
【００５９】
続いて、代理プロセス１２０−ｍのメモリマッピング代理実行手段１２０２−ｍは、計算ノード２のメモリ２１上に、共有メモリ２１１の領域を作成する。そして、メモリマッピング代理実行手段１２０２−ｍは、制御ノード１上の共有メモリ１１１の内容を、計算ノード２上の共有メモリ２１１にコピーする（ステップＳ１１４）。
【００６０】
そして、代理プロセス１２０−ｍは、作成した制御ノード１上の共有メモリ１１１と、対応する制御ノード２上の共有メモリ２１１と、の領域情報を共有メモリ情報１２０３−ｍに保持する（ステップＳ１１５）。その後、代理プロセス１２０−ｍは、計算プロセス２００−ｍの実行を再開させる（ステップＳ１１６）。
【００６１】
以上が、共有メモリ１１１、２１１を取得する際の動作の一例である。続いて、制御ノード１上に作成された共有メモリ１１１と計算ノード２上に作成された共有メモリ２１１との同期を行う際の動作について説明する。
【００６２】
本実施形態における情報処理装置は、計算プロセス２００−ｍが実行を停止しているときに、共有メモリ１１１、２１１の同期を行うことになる。具体的には、情報処理装置は、以下の４つのタイミングで共有メモリ１１１、２１１の同期を行う。
（１）計算ノード２の計算プロセス２００−ｍが、メモリ更新（共有メモリ２１１の更新）を行うシステムコールを発行したとき
（２）計算プロセス２００−ｍが命令実行停止状態に移行したとき（計算プロセス２００−ｍがＣＰＵ命令によって共有メモリ２１１を更新していた場合）
（３）制御ノード１がシステムコールによって共有メモリ１１１を更新した後、対応する計算プロセス２００−ｍが命令実行停止状態に移行したとき
（４）制御ノード１がＣＰＵ命令によって共有メモリ１１１を更新した後、対応する計算プロセス２００−ｍが命令実行停止状態に移行したとき
【００６３】
［（１）のタイミングについて］
まず、計算ノード２の計算プロセス２００−ｍが、メモリ更新を行うシステムコールを発行したときに行う同期処理の一例について、図８を用いて説明する。図８（Ａ）は、計算ノード２側の処理を示すフローチャートである。図８（Ａ）を参照すると、まず、計算ノード２で動作する計算プロセス２００−ｍは、制御ノード１の代理プロセス１２０−ｍに対して、メモリ更新を行うシステムコールを発行する（ステップＳ２０１）。また、計算プロセス２００−ｍは、上記システムコールを発行するとともに、自身の実行を停止する（ステップＳ２０２）。これにより、計算プロセス２００−ｍは、代理プロセス１２０−ｍがシステムコールを代理実行して計算プロセス２００−ｍの実行を再開させるのを待つことになる（計算プロセス２００−ｍは、代理プロセス１２０−ｍが再開させるまで停止し続ける）。その後、代理プロセス１２０−ｍによってシステムコールの実行とメモリの同期が行われた後、代理プロセス１２０−ｍによって、計算プロセス２００−ｍの実行が再開される（ステップＳ２０３）。
【００６４】
図８（Ｂ）は、制御ノード１側の処理を示すフローチャートである。図８（Ｂ）を参照すると、まず、計算ノード管理手段１３０が、計算ノード２（計算プロセス２００−ｍ）が発行するメモリ更新を行うシステムコールを取得する（ステップＳ２１１）。すると、計算ノード管理手段１３０は、当該取得したシステムコールを、代理プロセス１２０−ｍに通知する。これにより、代理プロセス１２０−ｍで、メモリ更新を行うシステムコール処理が開始されることになる。
【００６５】
まず、代理プロセス１２０−ｍは、メモリ更新代理実行手段１２０１−ｍを用いて、システムコールの要求に基づいて、計算ノード２上のメモリ２１の内容を更新する（ステップＳ２１２）。続いて、代理プロセス１２０−ｍのメモリ更新代理実行手段１２０１−ｍは、共有メモリ情報１２０３−ｍを参照して、上記データの更新が共有メモリ２１１のデータの更新であったか否かを確認する（ステップＳ２１３）。
【００６６】
そして、上記システムコールによるデータの更新が共有メモリ２１１のデータの更新であった場合（ステップＳ２１３、Ｙｅｓ）には、代理プロセス１２０−ｍは、共有メモリ同期手段１３０２を用いて、更新された共有メモリ２１１の内容を、制御ノード１の共有メモリ１１１にコピーする（ステップＳ２１４）。その後、代理プロセス１２０−ｍは、計算プロセス２００−ｍの実行を再開させる（ステップＳ２１５）。
【００６７】
一方、上記システムコールによるデータの更新が共有メモリ２１１のデータの更新でなかった場合（ステップＳ２１３、Ｎｏ）には、代理プロセス１２０−ｍは、共有メモリ１１１、２１１の同期を行わずに計算プロセス２００−ｍの実行を再開させる（ステップＳ２１５）。
【００６８】
本実施形態における情報処理装置は、例えば以上のような処理により、共有メモリ１１１、２１１の同期を行う。つまり、図９を参照すると、まず、計算ノード２の計算プロセス２００が、制御ノード１の代理プロセス１２０に対して、共有メモリ２１１の更新を行うシステムコールを代理実行するよう依頼する（Ｙ１）。上記依頼とともに、計算プロセス２００は停止することになる。続いて、上記依頼を受け取った代理プロセス１２０は、システムコールの要求通りに、計算ノード２上の共有メモリ２１１の内容を更新する（Ｙ２）。そして、代理プロセス１２０は、共有メモリ同期手段１３０２を用いて、共有メモリ２１１内のデータの更新内容を共有メモリ１１１にコピーする（Ｙ３）。その後、代理プロセス１２０は、停止した計算プロセス２００を再開させることになる。
【００６９】
［（２）のタイミングについて］
続いて、計算プロセス２００−ｍが命令実行停止状態に移行したときに行う同期処理の一例について、図１０を用いて説明する。
【００７０】
なお、計算ノード２では、上述したように、オペレーティングシステムが動作しないため、タイマ割り込みなどの定期的な処理も行わない。そのため、プロセススケジューリング等のために、制御ノード１は定期的に計算プロセス２００−ｍを命令実行状態から命令実行停止状態に移行させることになる。そこで、制御ノード１は、計算プロセス２００−ｍを命令実行停止状態に移行させたタイミングで、計算プロセス２００−ｍにより更新された共有メモリ２１１の内容を共有メモリ１１１にコピーする。これにより、共有メモリ１１１、２１１を同期することになる。また、計算プロセス２００−ｍは、当該プロセスの処理の中で、ＣＰＵ命令により共有メモリ２１１内のデータを更新することがある。この場合、本実施形態における計算プロセス２００−ｍは、共有メモリ更新識別子２０１を用いて、共有メモリ２１１内のデータを更新したことを示すことになる。
【００７１】
図１０を参照すると、代理プロセス１２０−ｍは、計算プロセス２００−ｍがプロセススイッチなどにより実行を停止したタイミングで、計算ノードメモリ更新確認手段１３０１を用いて、共有メモリ更新識別子２０１を確認する（ステップＳ３１１）。
【００７２】
そして、共有メモリ２１１のデータの更新があった場合（ステップＳ３１２、Ｙｅｓ）、代理プロセス１２０−ｍは、共有メモリ同期手段１３０２を用いて、更新された共有メモリ２１１の内容を、制御ノード１の共有メモリ１１１にコピーする（ステップＳ３１３）。一方、共有メモリ２１１のデータの更新が無かった場合（ステップＳ３１３、Ｎｏ）、代理プロセス１２０−ｍは、共有メモリ１１１、２１１の同期を行わない。その後の処理は、プロセススイッチなど、他の処理を続行することになる。
【００７３】
例えば以上のような処理により、情報処理装置は、計算プロセス２００−ｍが命令実行停止状態に移行したときに共有メモリ１１１、２１１の同期を行う。つまり、図１１を参照すると、まず、計算プロセス２００が、ＣＰＵ命令によって共有メモリ２１１内のデータを更新する（Ｙ１１）。その後、プロセススイッチなどにより、計算プロセス２００は、実行を停止する。すると、計算プロセス２００が停止したタイミングで、代理プロセス１２０は、計算ノードメモリ更新確認手段１３０１を用いて共有メモリ更新識別子２０１を確認する（Ｙ１２）。そして、共有メモリ２１１内のデータが更新されていた場合、代理プロセス１２０は、共有メモリ同期手段１３０２を用いて、共有メモリ２１１内のデータの更新内容を共有メモリ１１１にコピーする（Ｙ１３）。その後の処理は、プロセススイッチなど、他の処理を続行することになる。
【００７４】
なお、上述したように、計算コア２４が命令実行状態であるか、あるいは、命令実行停止状態であるかは、制御ノード１から参照することが出来るよう構成されている。そのため、代理プロセス１２０−ｍは、計算プロセス２００−ｍが実行状態にあるか、実行停止状態にあるかを判別することが可能である。
【００７５】
［（３）のタイミングについて］
続いて、制御ノード１上のプロセスがシステムコールによって共有メモリ１１１を更新した場合の、共有メモリ１１１、２１１の同期処理の一例について、図１２を用いて説明する。
【００７６】
図１２を参照すると、まず、制御ノード１上のプロセスが、システムコール１１０４を用いて、共有メモリ１１１を更新するシステムコールを実行する（ステップＳ４１１）。これにより、共有メモリ１１１の内容が更新されることになる（ステップＳ４１２）。
【００７７】
その後、制御ノード１は、共有メモリ情報１２０３−ｍを参照して、当該更新された共有メモリ１１１の領域と対応する共有メモリ２１１の領域を特定する。そして、制御ノード１は、上記共有メモリ２１１の領域を用いる計算プロセス２００−ｍの命令実行状態を確認する（ステップＳ４１３）。続いて、制御ノード１は、上記計算プロセス２００−ｍが実行を停止したタイミングで（ステップＳ４１３、Ｙｅｓ）、共有メモリ同期手段１３０２によって、更新された共有メモリ１１１の内容を共有メモリ２１１にコピーする（ステップＳ４１４）。これにより、共有メモリ１１１、２１１を同期することになる。なお、このとき、計算ノード２上の共有メモリ２１１が意図しないタイミングで更新されるのを防ぐために、排他制御を適宜行う。
【００７８】
例えば、以上のような処理により、情報処理装置は、制御ノード１上のプロセスがシステムコールによって共有メモリ１１１を更新した場合の、共有メモリ１１１、２１１の同期処理を行う。つまり、図１３を参照すると、まず、制御ノード１上のプロセスが、システムコール１１０４を用いて、共有メモリ１１１を更新するシステムコールを実行する（ｙ１）。その後、制御ノード１は、共有メモリ情報１２０３−ｍを参照して、更新された共有メモリ１１１の領域と対応する共有メモリ２１１の領域を特定する。そして、制御ノード１は、上記共有メモリ２１１の領域を用いる計算プロセス２００−ｍの命令実行状態を確認する。その後、上記特定した共有メモリ２１１の領域を用いる計算プロセス２００−ｍが実行を停止したタイミングで、制御ノード１は、共有メモリ同期手段１３０２を用いて、共有メモリ１１１内のデータの更新内容を共有メモリ２１１にコピーすることになる（ｙ２）。
【００７９】
［（４）のタイミングについて］
続いて、制御ノード１上のプロセスがＣＰＵ命令によって共有メモリ１１１を更新した場合の、共有メモリ１１１、２１１の同期処理の一例について、図１４を用いて説明する。
【００８０】
図１４を参照すると、まず、制御ノード１上のプロセスが、ＣＰＵ命令によって共有メモリ１１１を更新しようとする（ステップＳ５１１）。すると、上述したように、対象の領域にはメモリ属性設定手段１１０３によって書き込み禁止の属性が与えられているため、書き込み禁止例外が発生する（ステップＳ５１２）。そこで、制御ノード１は、上記例外処理を行い（ステップＳ５１３）、例外処理の処理中で、書き込み禁止を一時解除し共有メモリ１１１を更新する（ステップＳ５１４）。そして、制御ノード１は、共有メモリ１１１の更新後、メモリ属性設定手段１１０３を用いて、再び、共有メモリ１１１の属性を書き込み禁止に設定する（ステップＳ５１５）。
【００８１】
その後、制御ノード１は、共有メモリ情報１２０３−ｍを参照して、当該更新された共有メモリ１１１と対応する共有メモリ２１１を用いる計算プロセス２００−ｍの命令実行状態を確認する（ステップＳ５１６）。そして、制御ノード１は、上記計算プロセス２００−ｍが実行を停止したタイミングで（ステップＳ５１６、Ｙｅｓ）、共有メモリ同期手段１３０２によって、更新された共有メモリ１１１の内容を共有メモリ２１１にコピーする（ステップＳ５１７）。これにより、共有メモリ１１１、２１１を同期することになる。なお、このとき、計算ノード２上の共有メモリ２１１が意図しないタイミングで更新されるのを防ぐために、排他制御を適宜行う。
【００８２】
例えば、以上のような処理により、情報処理装置は、制御ノード１上のプロセスがＣＰＵ命令によって共有メモリ１１１を更新した場合の、共有メモリ１１１、２１１の同期処理を行う。つまり、図１５を参照すると、まず、制御ノード１上のプロセスが、ＣＰＵ命令によって共有メモリ１１１を更新しようとして発生する例外の処理中で、書き込み禁止を一時解除し共有メモリ１１１を更新する（ｙ１１）。そして、制御ノード１は、再び共有メモリ１１１の属性を書き込み禁止に設定する。その後、制御ノード１は、共有メモリ情報１２０３−ｍを参照して、更新された共有メモリ１１１の領域と対応する共有メモリ２１１の領域を特定する。そして、制御ノード１は、上記共有メモリ２１１の領域を用いる計算プロセス２００−ｍの命令実行状態を確認する。その後、上記特定した共有メモリ２１１の領域を用いる計算プロセス２００−ｍが実行を停止したタイミングで、制御ノード１は、共有メモリ同期手段１３０２を用いて、共有メモリ１１１内のデータの更新内容を共有メモリ２１１にコピーすることになる（ｙ１２）。
【００８３】
以上の処理により、制御ノード１の共有メモリ１１１と計算ノード２の共有メモリ２１１とは、最新の状態で同期されることになる。なお、共有元のファイルの更新は、従来ＯＯＳ（制御ノード用ＯＳ１１０）がサポートするメモリマップドファイル機能によって行われることになる。
【００８４】
このように、本実施形態における情報処理装置は、オペレーティングシステムが組み込まれた制御ノード１とオペレーティングシステムが組み込まれておらず、プリサイスエクセプションをサポートしないＣＰＵ２２を有する計算ノード２とを有している。また、制御ノード１のメモリ１１には共有メモリ１１１が作成されており、計算ノード２のメモリ２１には、共有メモリ２１１が作成されている。そして、計算プロセス２００−ｍが実行を停止しているときに、制御ノード１の代理プロセス１２０−ｍが、共有メモリ同期手段１３０２を用いて、共有メモリ１１１、２１１の同期を行うよう構成されている。このような構成により、制御ノード１の共有メモリ１１１と計算ノード２の共有メモリ２１１とを、同期することが可能となる。その結果、プリサイスエクセプションをサポートしないＣＰＵ２２を持つ計算ノード２で、メモリマップドファイル機能を利用することが可能となり、プロセス間でメモリ共有を行うことが可能となる。
【００８５】
また、本実施形態における情報処理装置は、上述した４つのタイミングで共有メモリ１１１、２１１の同期を行うよう構成されている。このような構成により、共有メモリ１１１、２１１を最新の状態で同期することが可能となる。
【００８６】
なお、本実施形態では、情報処理装置がノード１とノード２の２つのノードから構成されている場合について説明した。しかしながら、上述したように、情報処理装置は、３つ以上の複数のノードから構成されていても構わない。つまり、情報処理装置は、１つの制御ノード１と２つ以上の複数の計算ノード２とから構成されている場合がある。この場合、共有メモリ同期手段１３０２は、対応する共有メモリ２１１のそれぞれと、共有メモリ１１１と、の同期をとることになる。
【００８７】
また、計算ノード２の共有メモリ２１１の更新を制御ノード１に反映する方法は、本実施形態で説明した場合に限定されない。
【００８８】
例えば、制御ノード１上の共有メモリ１１１を共有しているプロセスのページテーブル１１０１において、共有メモリ１１１のページテーブルエントリ１１０２の属性を無効にしておく。すると、制御ノード１上のプロセスが共有メモリ１１１にアクセスしようとする際、ページ不在例外が発生することになる。そこで、この例外処理の中で、計算ノード２上の共有メモリ２１１の内容を制御ノード１上の共有メモリ１１１にコピーする。例えば、このような方法で、計算ノード２の共有メモリ２１１の更新を制御ノード１に反映することが考えられる。なお、この方法の場合、共有メモリ２１１の更新がシステムコールによるメモリ更新かＣＰＵ命令によるメモリ更新かを区別する必要がないことになる。
【００８９】
また、例えば、計算プロセス２００−ｍが、そのプログラム上で、明示的に共有メモリ２１１の更新内容を共有メモリ１１１にコピーする命令を実行することも考えられる。この方法の場合も、共有メモリ２１１の更新がシステムコールによるメモリ更新かＣＰＵ命令によるメモリ更新かを区別する必要はないことになる。
【００９０】
また、制御ノード１の供給メモリ１１１の更新を計算ノード２に反映する方法も、本実施形態で説明した場合に限定されない。
【００９１】
例えば、計算プロセス２００−ｍが実行を停止するタイミングで、代理プロセス１２０−ｍが、制御ノード１上の共有メモリ１１１の更新状態を調査するように構成する。共有メモリ１１１の更新の確認例としては、ページテーブルエントリ１１０２のＤｉｒｔｙビットを利用することが考えられる。そして、共有メモリ１１１に更新があった場合、制御ノード１は、共有メモリ同期手段１３０２を用いて、更新された共有メモリ１１１の内容を共有メモリ２１１にコピーする。この方法の場合も、共有メモリ２１１の更新がシステムコールによるメモリ更新かＣＰＵ命令によるメモリ更新かを区別する必要はない。
【００９２】
［第２の実施形態］
次に、本発明の第２の実施形態について、図１６を参照して説明する。本実施形態おいては、メインプロセッサコアとサブプロセッサコアとを有し、それぞれに作成された共有メモリの同期を行う情報処理装置の構成の概略について説明する。
【００９３】
図１６を参照すると、本実施形態における情報処理装置は、オペレーティングシステムが組み込まれたメインプロセッサコア４と、メインプロセッサコア４によって制御され、オペレーティングシステムが組み込まれていないサブプロセッサコア５と、を有している。
【００９４】
メインプロセッサコア４は、第１のメモリ４１を有している。また、サブプロセッサコア５は、第２のメモリ５１を有している。
【００９５】
第１のメモリ４１と第２のメモリ５１とには、当該第１のメモリ４１と第２のメモリ５１とでデータの内容を同期する共有メモリ４１１、５１１が作成されている。つまり、第１のメモリ４１には、共有メモリ４１１が作成されている。また、第２のメモリ５１には、共有メモリ５１１が作成されている。そして、共有メモリ４１１と、共有メモリ５１１とは、互いに所定のタイミングでデータの内容を同期することになる。具体的には、本実施形態においては、サブプロセッサコア５の動作が停止しているときに、メインプロセッサコア４が共有メモリ４１１と共有メモリ５１１とのデータの同期を行う。例えば、このような処理により、共有データ４１１、５１１の同期を行うことになる。
【００９６】
このように、本実施形態における情報処理装置は、オペレーティングシステムが組み込まれたメインプロセッサコア４と、メインプロセッサコア４によって制御され、オペレーティングシステムが組み込まれていないサブプロセッサコア５と、を有している。また、メインプロセッサコア４が有する第１のメモリ４１には共有メモリ４１１が作成され、サブプロセッサコア５が有する第２のメモリ５１には共有メモリ５１１が作成されている。そして、サブプロセッサコア５の動作が停止しているときに、メインプロセッサコア４が共有メモリ４１１と共有メモリ５１１とのデータの同期を行うよう構成されている。このような構成により、メインプロセッサコア４に作成された共有メモリ４１１とサブプロセッサコア５に作成された共有メモリ５１１とを、同期することが可能となる。その結果、例えば、メインプロセッサコア４とサブプロセッサコア５とのプロセス間でメモリ共有を行うことが可能となる。
【００９７】
なお、上述した情報処理装置が動作することにより実行される情報処理方法は、第１のメモリ４１を有しオペレーティングシステムが組み込まれたメインプロセッサコア４と、第２のメモリ５１を有し、メインプロセッサコア４により制御される、オペレーティングシステムが組み込まれていないサブプロセッサコア５と、を有し、第１のメモリ４１と第２のメモリ５１とには、当該第１のメモリ４１と当該第２のメモリ５１とでデータを共有する共有メモリ４１１、５１１がそれぞれ作成されている情報処理装置で実行される情報処理方法であって、メインプロセッサコア４は、サブプロセッサコア５の動作が停止しているときに、第１のメモリ４１と第２のメモリ５１とにそれぞれ作成された共有メモリ４１１、５１１の同期を行う、という方法である。
【００９８】
上述した構成を有する情報処理方法の発明であっても、上記情報処理装置と同様の作用を有するために、上述した本発明の目的を達成することが出来る。
【００９９】
また、例えば、オペレーティングシステムが組み込まれていないサブプロセッサコア５を制御する機能を有するメインプロセッサコア４であって、第１のメモリ４１を有し、第１のメモリ４１には、サブプロセッサコア５が有する第２のメモリ５１との間でデータを共有する共有メモリ４１１が作成されており、サブプロセッサコア５の動作が停止しているときに、第１のメモリ４１と第２のメモリ５１とにそれぞれ作成された共有メモリ４１１、５１１の同期を行う共有メモリ同期手段４２を有するメインプロセッサコアも、本発明の目的を達成することが出来る（図１７参照）。
【０１００】
また、上記メインプロセッサコア４は、第１のメモリ４１を有し、第１のメモリ４１には、サブプロセッサコア５が有する第２のメモリ５１との間でデータを共有する共有メモリ４１１が作成されている、オペレーティングシステムが組み込まれていないサブプロセッサコア５を制御する機能を有するメインプロセッサコア４を、サブプロセッサコア５の動作が停止しているときに、第１のメモリ４１と第２のメモリ５１とにそれぞれ作成された共有メモリ４１１、５１１の同期を行う共有メモリ同期手段４２として機能させるためのプログラムを組み込むことで実現できる。
【０１０１】
また、上記メインプロセッサコア４が動作することにより実行される情報処理方法は、オペレーティングシステムが組み込まれていないサブプロセッサコア５を制御する機能を有するメインプロセッサコア４が実行する情報処理方法であって、サブプロセッサコア５の動作が停止しているときに、メインプロセッサコア４に作成された第１のメモリ４１とサブプロセッサコア５に作成された第２のメモリ５１とにそれぞれ作成された共有メモリ４１１、５１１の同期を行う、という方法である。
【０１０２】
上述した構成を有するプログラム、情報処理方法の発明であっても、上記メインプロセッサコアと同様の作用を有するために、上述した本発明の目的を達成することが出来る。
【０１０３】
＜付記＞
上記実施形態の一部又は全部は、以下の付記のようにも記載されうる。以下、本発明における情報処理装置などの概略を説明する。但し、本発明は、以下の構成に限定されない。
【０１０４】
（付記１）
第１のメモリを有しオペレーティングシステムが組み込まれたメインプロセッサコアと、第２のメモリを有し、前記メインプロセッサコアにより制御される、オペレーティングシステムが組み込まれていないサブプロセッサコアと、を有し、
前記第１のメモリと前記第２のメモリとには、当該第１のメモリと当該第２のメモリとでデータの内容を同期する共有メモリ領域がそれぞれ形成されており、
前記メインプロセッサコアは、前記サブプロセッサコアの動作が停止しているときに、前記第１のメモリと前記第２のメモリとにそれぞれ形成されている前記共有メモリ領域内のデータの同期を行うよう構成された
情報処理装置。
【０１０５】
（付記２）
付記１に記載の情報処理装置であって、
前記サブプロセッサコアは、所定の情報処理を行うよう前記メインプロセッサコアに依頼するとともに動作を停止し、
前記メインプロセッサコアは、前記サブプロセッサコアから依頼された前記所定の情報処理を行った後、当該所定の情報処理により更新された一方の共有メモリ領域内のデータの内容を他方の共有メモリ領域内に複製し、その後、前記サブプロセッサコアの動作を再開するよう制御する
情報処理装置。
【０１０６】
（付記３）
付記１又は２に記載の情報処理装置であって、
前記サブプロセッサコアは、前記第２のメモリに形成されている共有メモリ領域内のデータの更新を行う情報処理を行うよう前記メインプロセッサコアに依頼するとともに動作を停止し、
前記メインプロセッサコアは、前記サブプロセッサコアから依頼された前記第２のメモリに形成されている共有メモリ領域内のデータの更新を行う情報処理を行った後、当該更新した内容を前記第１のメモリに形成されている共有メモリ領域内に複製し、その後、前記サブプロセッサコアの動作を再開するよう制御する
情報処理装置。
【０１０７】
（付記４）
付記２又は３に記載の情報処理装置であって、
前記情報処理は、システムコールである
情報処理装置。
【０１０８】
（付記５）
付記１乃至４のいずれかに記載の情報処理装置であって、
前記メインプロセッサコアは、前記サブプロセッサコアの動作が停止したときに、前記第２のメモリに形成されている共有メモリ領域内のデータの内容に更新があるか否かを確認し、当該第２のメモリに形成されている共有メモリ領域内のデータの更新の内容を前記第１のメモリに形成されている共有メモリ領域内に複製する
情報処理装置。
【０１０９】
（付記６）
付記１乃至５のいずれかに記載の情報処理装置であって、
前記メインプロセッサコアは、前記サブプロセッサコアの動作が停止したときに、前記第１のメモリに形成されている共有メモリ領域内のデータの更新の内容を前記第２のメモリに形成されている共有メモリ領域内に複製する
情報処理装置。
【０１１０】
（付記７）
付記１乃至６のいずれかに記載の情報処理装置であって、
前記サブプロセッサコアは、共有メモリ領域を形成するよう前記メインプロセッサコアに依頼するとともに動作を停止し、
前記メインプロセッサコアは、前記サブプロセッサコアからの依頼に応じて、前記第１のメモリと前記第２のメモリとに前記共有メモリ領域を形成した後、前記サブプロセッサコアの動作を再開するよう制御する
情報処理装置。
【０１１１】
（付記８）
第１のメモリを有しオペレーティングシステムが組み込まれたメインプロセッサコアと、第２のメモリを有し、前記メインプロセッサコアにより制御される、オペレーティングシステムが組み込まれていないサブプロセッサコアと、を有し、前記第１のメモリと前記第２のメモリとには、当該第１のメモリと当該第２のメモリとでデータの内容を同期する共有メモリ領域がそれぞれ形成されている情報処理装置で実行される情報処理方法であって、
前記メインプロセッサコアは、前記サブプロセッサコアの動作が停止しているときに、前記第１のメモリと前記第２のメモリとにそれぞれ形成されている前記共有メモリ領域内のデータの同期を行う
情報処理方法。
【０１１２】
（付記９）
付記８に記載の情報処理方法であって、
前記サブプロセッサコアは、所定の情報処理を行うよう前記メインプロセッサコアに依頼するとともに動作を停止し、
前記メインプロセッサコアは、前記サブプロセッサコアから依頼された前記所定の情報処理を行った後、当該所定の情報処理により更新された一方の共有メモリ領域内のデータの内容を他方の共有メモリ内に複製し、その後、前記サブプロセッサコアの動作を再開するよう制御する
情報処理方法。
【０１１３】
（付記９−１）
付記９に記載の情報処理方法であって、
前記サブプロセッサコアは、前記第２のメモリに形成されている共有メモリ領域内のデータの更新を行う情報処理を行うよう前記メインプロセッサコアに依頼するとともに動作を停止し、
前記メインプロセッサコアは、前記サブプロセッサコアから依頼された前記第２のメモリに形成されている共有メモリ領域内のデータの更新を行う情報処理を行った後、当該情報処理により更新された前記第２のメモリに形成されている共有メモリ領域内のデータの内容を前記第１のメモリに形成されている共有メモリ領域内に複製し、その後、前記サブプロセッサコアの動作を再開するよう制御する
情報処理方法。
【０１１４】
（付記１０）
オペレーティングシステムが組み込まれていないサブプロセッサコアを制御する機能を有する、オペレーティングシステムが組み込まれたメインプロセッサコアであって、
第１のメモリを有し、
前記第１のメモリには、前記サブプロセッサコアが有する第２のメモリとの間でデータの内容を同期する共有メモリ領域が形成されており、
前記サブプロセッサコアの動作が停止しているときに、前記第１のメモリに形成されている共有メモリ領域のデータと、前記第２のメモリに形成されている共有メモリ領域のデータとの同期を行う共有メモリ同期手段を有する
メインプロセッサコア。
【０１１５】
（付記１０−１）
付記１０に記載のメインプロセッサコアであって、
前記サブプロセッサコアからの依頼に応じて所定の情報処理を行った後、前記共有メモリ同期手段を用いて、前記所定の情報処理により更新された一方の共有メモリ領域内のデータの内容を他方の共有メモリ領域内に複製し、その後、前記サブプロセッサコアの動作を再開するよう制御する
メインプロセッサコア。
【０１１６】
（付記１０−２）
付記１０−１に記載のメインプロセッサコアであって、
前記サブプロセッサコアからの依頼に応じて前記第２のメモリに形成されている共有メモリ領域内のデータの更新を行う情報処理を行った後、前記共有メモリ同期手段を用いて、当該情報処理により更新された前記第２のメモリに形成されている共有メモリ領域内のデータの内容を前記第１のメモリに形成されている共有メモリ領域内に複製し、その後、前記サブプロセッサコアの動作を再開するよう制御する
メインプロセッサコア。
【０１１７】
（付記１１）
第１のメモリを有し、当該第１のメモリには、サブプロセッサコアが有する第２のメモリとの間でデータの内容を同期する共有メモリ領域が形成されている、オペレーティングシステムが組み込まれていないサブプロセッサコアを制御する機能を有する、オペレーティングシステムが組み込まれたメインプロセッサコアを、
前記サブプロセッサコアの動作が停止しているときに、前記第１のメモリに形成されている共有メモリ領域のデータと、前記第２のメモリに形成されている共有メモリ領域のデータとの同期を行う共有メモリ同期手段として機能させるためのプログラム。
【０１１８】
（付記１１−１）
付記１１に記載のプログラムであって、
前記サブプロセッサコアからの依頼に応じて所定の情報処理を行った後、前記共有メモリ同期手段により、前記所定の情報処理により更新された一方の共有メモリ領域内のデータの内容を他方の共有メモリ領域内に複製させ、その後、前記サブプロセッサコアの動作を再開するよう制御する
プログラム。
【０１１９】
（付記１１−２）
付記１１又は１１−１に記載のプログラムであって、
前記サブプロセッサコアからの依頼に応じて前記第２のメモリに形成されている共有メモリ領域内のデータの更新を行う情報処理を行った後、前記共有メモリ同期手段により、当該情報処理により更新された前記第２のメモリに形成されている共有メモリ領域内のデータの内容を前記第１のメモリに形成されている共有メモリ領域内に複製し、その後、前記サブプロセッサコアの動作を再開するよう制御する
プログラム。
【０１２０】
（付記１２）
オペレーティングシステムが組み込まれていないサブプロセッサコアを制御する機能を有する、オペレーティングシステムが組み込まれたメインプロセッサコアが実行する情報処理方法であって、
前記サブプロセッサコアの動作が停止しているときに、前記メインプロセッサコアが有する第１のメモリと前記サブプロセッサコアが有する第２のメモリとにそれぞれ形成されている共有メモリ領域内のデータの同期を行う
情報処理方法。
【０１２１】
（付記１２−１）
付記１２に記載の情報処理方法であって、
前記サブプロセッサコアからの依頼に応じて所定の情報処理を行った後、前記所定の情報処理により更新された一方の共有メモリ領域内のデータの内容を他方の共有メモリ領域内に複製させ、その後、前記サブプロセッサコアの動作を再開するよう制御する
情報処理方法。
【０１２２】
（付記１２−２）
付記１２又は１２−１に記載の情報処理方法であって、
前記サブプロセッサコアからの依頼に応じて前記第２のメモリに形成されている共有メモリ領域内のデータの更新を行う情報処理を行った後、当該情報処理により更新された前記第２のメモリに形成されている共有メモリ領域内のデータの内容を前記第１のメモリに形成されている共有メモリ領域内に複製し、その後、前記サブプロセッサコアの動作を再開するよう制御する
情報処理方法。
【０１２３】
（付記１３）
オペレーティングシステムが組み込まれたメインプロセッサコアによって制御される、オペレーティングシステムが組み込まれていないサブプロセッサコアであって、
第２のメモリを有し、
前記第２のメモリには、前記メインプロセッサコアが有する第１のメモリとの間でデータの内容を同期する共有メモリ領域が形成されており、
前記第２のメモリに形成されている共有メモリ領域のデータの内容は、前記サブプロセッサコアの動作が停止しているときに、前記第１のメモリに形成されている共有メモリ領域のデータと同期される
サブプロセッサコア。
【０１２４】
なお、上記各実施形態及び付記において記載したプログラムは、記憶装置に記憶されていたり、コンピュータが読み取り可能な記録媒体に記録されていたりする。例えば、記録媒体は、フレキシブルディスク、光ディスク、光磁気ディスク、及び、半導体メモリ等の可搬性を有する媒体である。
【０１２５】
以上、上記各実施形態を参照して本願発明を説明したが、本願発明は、上述した実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明の範囲内で当業者が理解しうる様々な変更をすることが出来る。
【符号の説明】
【０１２６】
１  ノード、制御ノード
２  ノード、計算ノード
１１、２１  メモリ
１２、２２  ＣＰＵ
１３、２３  データ転送手段
１４、２４  プロセッサコア（２４  計算コア）
１５、２５  ＤＭＡエンジン
１６、２６  対ＣＰＵ通信機能
２４０  汎用レジスタ群
２４１  制御レジスタ群
２４２  例外検出手段
２４３  レジスタ群アクセス手段
２４４  例外通知手段
１１０  制御ノード用ＯＳ
１１０１  ページテーブル
１１０２  ページテーブルエントリ
１１０３  メモリ属性設定手段
１１０４  システムコール
１２０  代理プロセス
１２０１  メモリ更新代理実行手段
１２０２  メモリマッピング代理実行手段
１２０３  共有メモリ情報
１１１、２１１  共有メモリ
１３０  計算ノード管理手段
１３０１  計算ノードメモリ更新確認手段
１３０２  共有メモリ同期手段
１３０３  プロセス対応表
１３０３１  代理プロセスＩＤ
１３０３２  計算コア番号
２００  計算プロセス
２０１  共有メモリ更新識別子
２１０  プロセスイメージ
４  メインプロセッサコア
４１  第１のメモリ
４１１  共有メモリ
４２  共有メモリ同期手段
５  サブプロセッサコア
５１  第２のメモリ
５１１  共有メモリ
【要約】      （修正有）【課題】プロセス間でメモリ共有を行う情報処理装置、方法及びプログラムを提供する。【解決手段】第１のメモリ１１を有しオペレーティングシステム１１０が組み込まれたメインプロセッサコア１と、第２のメモリ２１を有し、メインプロセッサコアにより制御される、オペレーティングシステムが組み込まれていないサブプロセッサコア２と、を有する。第１のメモリと第２のメモリには、第１のメモリと第２のメモリとでデータの内容を同期する共有メモリ１１１、２１１がそれぞれ作成される。メインプロセッサコアは、サブプロセッサコアの動作が停止しているときに、第１のメモリと第２のメモリとにそれぞれ作成された共有メモリのデータの同期を行う。【選択図】図４【図１】
0005949977.tif 000002
【図２】
0005949977.tif 000003
【図３】
0005949977.tif 000004
【図４】
0005949977.tif 000005
【図５】
0005949977.tif 000006
【図６】
0005949977.tif 000007
【図７】
0005949977.tif 000008
【図８】
0005949977.tif 000009
【図９】
0005949977.tif 000010
【図１０】
0005949977.tif 000011
【図１１】
0005949977.tif 000012
【図１２】
0005949977.tif 000013
【図１３】
0005949977.tif 000014
【図１４】
0005949977.tif 000015
【図１５】
0005949977.tif 000016
【図１６】
0005949977.tif 000017
【図１７】
0005949977.tif 000018