(57)【要約】【課題】１または複数の情報処理装置を用いたシステムに対して、効率良く処理をさせる。【解決手段】メモリ装置は、１または複数の情報処理装置に接続される。メモリ装置は、共通記憶部と、解析部と、設定部とを備える。解析部は、１または複数の情報処理装置による共通記憶部に対するアクセスを解析して、共通記憶部に対する１または複数の情報処理装置によるアクセス方法を決定する。設定部は、決定されたアクセス方法を１または複数の情報処理装置に対して指示する。【選択図】図３
2018156573.tif 000002
【特許請求の範囲】
【請求項１】
１または複数の情報処理装置に接続されたメモリ装置であって、
共通記憶部と、
前記１または複数の情報処理装置による前記共通記憶部に対するアクセスを解析して、前記共通記憶部に対する前記１または複数の情報処理装置によるアクセス方法を決定する解析部と、
決定された前記アクセス方法を前記１または複数の情報処理装置に対して指示する設定部と、
を備えるメモリ装置。
【請求項２】
前記１または複数の情報処理装置による前記共通記憶部に対するアクセス要求に応じて、前記共通記憶部に対するデータの書き込みおよびデータの読み出しを制御するアクセス制御部をさらに備え、
前記設定部は、決定された前記アクセス方法を前記アクセス制御部に設定し、
前記アクセス制御部は、設定された前記アクセス方法に従って前記共通記憶部に対するデータの書き込みおよびデータの読み出しをする
請求項１に記載のメモリ装置。
【請求項３】
前記１または複数の情報処理装置のそれぞれは、個別メモリを有し、
前記解析部は、前記アクセス方法として、前記共通記憶部から前記個別メモリに転送したデータに対して書き込みおよび読み出しをする第１アクセス処理、または、前記共通記憶部に記憶されたデータに対して直接書き込みおよび読み出しをする第２アクセス処理を決定し、
前記１または複数の情報処理装置のそれぞれは、
前記第１アクセス処理が指示された場合、前記アクセス制御部に前記共通記憶部から前記個別メモリにデータを転送させ、前記個別メモリに転送したデータに対して書き込みおよび読み出しをし、
前記第２アクセス処理が指示された場合、前記共通記憶部に記憶されたデータの書き込みおよび読み出しの要求を前記アクセス制御部に対して与える
請求項２に記載のメモリ装置。
【請求項４】
前記解析部は、前記アクセス方法として前記第１アクセス処理を決定した場合、前記個別メモリにおける使用容量をさらに決定し、
前記設定部は、前記使用容量を、前記１または複数の情報処理装置に対してさらに指示し、
前記１または複数の情報処理装置のそれぞれは、前記共通記憶部から転送したデータを、指示された前記使用容量の範囲内で前記個別メモリに記憶させる
請求項３に記載のメモリ装置。
【請求項５】
前記解析部は、前記アクセス方法として前記第１アクセス処理を決定した場合、前記個別メモリからデータを前記共通記憶部に退避させるための退避方法をさらに決定し、
前記設定部は、前記退避方法を、前記１または複数の情報処理装置に対してさらに指示し、
前記１または複数の情報処理装置のそれぞれは、前記共通記憶部から転送したデータを、指示された前記退避方法で前記個別メモリから前記共通記憶部に退避させる
請求項３または４に記載のメモリ装置。
【請求項６】
前記共通記憶部は、第１共通メモリと、前記第１共通メモリよりも応答速度が速い第２共通メモリをさらに備え、
前記解析部は、前記アクセス方法として前記第２アクセス処理を決定する場合、低速処理または高速処理をさらに決定し、
前記アクセス制御部は、
前記アクセス方法として低速の前記第２アクセス処理が設定された場合、前記１または複数の情報処理装置のそれぞれからの前記第２アクセス処理によるアクセス要求に応じて、前記第１共通メモリに記憶されたデータに対して直接書き込みおよび読み出しをし、
前記アクセス方法として高速の前記第２アクセス処理が設定された場合、前記１または複数の情報処理装置のそれぞれからの前記第２アクセス処理によるアクセス要求に応じて、前記第１共通メモリから前記第２共通メモリに予め転送したデータに対して直接書き込みおよび読み出しをする
請求項３から５の何れか１項に記載のメモリ装置。
【請求項７】
前記設定部は、前記第２アクセス処理によりアクセス要求をする情報処理装置に対して、並列に実行する処理の数を表す並列度を指示し、
前記解析部は、前記高速処理に決定された場合、さらに、前記第１共通メモリにおけるアクセスされる可能性が高いサブ領域を検出し、
前記アクセス制御部は、前記第１共通メモリにおける前記サブ領域のデータを前記第２共通メモリに予め転送し、前記１または複数の情報処理装置のそれぞれからの前記サブ領域に対する前記第２アクセス処理によるアクセス要求に応じて、前記第２共通メモリに予め転送したデータに対して直接書き込みおよび読み出しをし、
前記アクセス制御部は、前記１または複数の情報処理装置のそれぞれからの前記サブ領域とは異なる領域に対する前記第２アクセス処理によるアクセス要求に応じて、前記第１共通メモリに対して直接書き込みおよび読み出しをし、
前記設定部は、前記第２共通メモリにデータの書き込みまたは読み出しをする情報処理装置に対して第１並列度を指示し、前記第１共通メモリにデータの書き込みまたは読み出しをする情報処理装置に対して前記第１並列度よりも高い第２並列度を指示する
請求項６に記載のメモリ装置。
【請求項８】
前記設定部は、前記第２アクセス処理によりアクセス要求をする情報処理装置に対して、並列に実行する処理の数を表す並列度を指示し、
前記解析部は、前記第２アクセス処理によりデータが書き込まれる領域のアクセスレイテンシに応じて前記並列度を決定する
請求項３から５の何れか１項に記載のメモリ装置。
【請求項９】
前記共通記憶部は、複数の領域に分割され、
前記解析部は、前記複数の領域のそれぞれに対する前記１または複数の情報処理装置によるアクセスを解析して、前記複数の領域のそれぞれに対する前記アクセス方法を決定し、
前記設定部は、前記複数の領域のそれぞれについて、決定された前記アクセス方法を前記アクセス制御部に設定するとともに、決定された前記アクセス方法を前記１または複数の情報処理装置に対して指示し、
前記１または複数の情報処理装置のそれぞれは、前記複数の領域のそれぞれに対して、指示された前記アクセス方法に従ってアクセスし、
前記アクセス制御部は、前記複数の領域のそれぞれに対して設定された前記アクセス方法に従って、対応する領域に対するデータの書き込みおよびデータの読み出しを制御する
請求項３に記載のメモリ装置。
【請求項１０】
前記解析部は、
前記複数の領域のそれぞれについて、アクセスの局所性が所定値より高いか否かを判断し、
アクセスの局所性が所定値より高い第１領域に対する前記アクセス方法を、前記第１アクセス処理に決定し、
アクセスの局所性が所定値以下である第２領域に対する前記アクセス方法を、前記第２アクセス処理に決定する
請求項９に記載のメモリ装置。
【請求項１１】
前記共通記憶部は、前記複数の領域のそれぞれを含む第１共通メモリと、前記第１共通メモリよりも応答速度が速い第２共通メモリをさらに備え、
前記解析部は、
前記アクセス方法が前記第２アクセス処理に決定された前記第２領域について、高速処理をする領域か、高速処理をしない領域かを決定し、
前記アクセス制御部は、
高速処理をする領域に対して前記第２アクセス処理によるアクセス要求を受けた場合、前記第１共通メモリから前記第２共通メモリに予め転送したデータに対して直接書き込みおよび読み出しをし、
高速処理をしない領域に対して前記第２アクセス処理によるアクセス要求を受けた場合、前記第１共通メモリに記憶されたデータに対して直接書き込みおよび読み出しをする
請求項１０に記載のメモリ装置。
【請求項１２】
前記解析部は、前記アクセス方法が前記第１アクセス処理に決定された前記第１領域について、省電力化をする領域か、省電力化をしない領域かを決定し、
前記設定部は、
前記１または複数の情報処理装置に、省電力化をする領域に対する前記個別メモリにおける使用容量として第１値を指示し、省電力化をしない領域に対する前記使用容量として、前記第１値より大きい第２値を指示し、
前記１または複数の情報処理装置のそれぞれは、前記アクセス方法が前記第１アクセス処理に指示された前記第１領域について、前記共通記憶部から転送したデータを、指示された前記使用容量の範囲内で前記個別メモリに記憶させる
請求項１０または１１に記載のメモリ装置。
【請求項１３】
前記解析部は、単位時間当たりのアクセス数が予め定められた値以下の前記第１領域を、省電力化をする領域に決定し、単位時間当たりのアクセス数が前記予め定められた値より大きい前記第１領域を、省電力化をしない領域に決定する
請求項１２に記載のメモリ装置。
【請求項１４】
前記解析部は、前記アクセス方法が前記第１アクセス処理に決定された前記第１領域について、前記個別メモリからデータを前記共通記憶部に退避させるための退避方法をさらに決定し、
前記設定部は、それぞれの前記第１領域について決定した前記退避方法を、前記１または複数の情報処理装置に対してさらに指示し、
前記１または複数の情報処理装置のそれぞれは、前記共通記憶部のそれぞれの前記第１領域から転送したデータを、指示された前記退避方法で前記個別メモリから前記共通記憶部に退避させる
請求項１２または１３に記載のメモリ装置。
【請求項１５】
前記１または複数の情報処理装置による前記共通記憶部に対するアクセスのパターンを取得し、取得したアクセスのパターンに基づき、前記１または複数の情報処理装置がアクセスすると予測される第１データを特定する予測部をさらに備え、
前記予測部は、前記第１データを特定した場合、前記１または複数の情報処理装置のうち、前記第１データにアクセスすると予測される情報処理装置に対して、前記第１データを予め取得するように指示する
請求項３から１４の何れか１項に記載のメモリ装置。
【請求項１６】
前記解析部は、
前記１または複数の情報処理装置から、プログラムの実行動作を解析した結果を取得し、
取得した前記結果にさらに基づき前記アクセス方法を決定する
請求項３から１５の何れか１項に記載のメモリ装置。
【請求項１７】
前記解析部は、
前記１または複数の情報処理装置においてプログラムの実行が開始された後予め定められた測定期間、前記共通記憶部に記憶されたデータに対して直接書き込みおよび読み出しをさせることにより、前記１または複数の情報処理装置による前記共通記憶部に対するアクセスを解析し、
前記測定期間を経過した後に、前記アクセス方法を決定する
請求項３から１６の何れか１項に記載のメモリ装置。
【請求項１８】
前記解析部は、
学習フェーズにおいて、前記１または複数の情報処理装置を動作させながら、前記アクセス方法を変更することにより、前記１または複数の情報処理装置がアプリケーションプログラムを実行した結果得られる動作情報から最適な前記アクセス方法を得るための判定モデルを訓練し、
利用フェーズにおいて、前記１または複数の情報処理装置を動作させて前記動作情報を取得し、取得した前記動作情報および前記判定モデルに基づき、前記アクセス方法を決定する
請求項３から１６の何れか１項に記載のメモリ装置。
【請求項１９】
前記解析部は、前記１または複数の情報処理装置に対して指示する前記使用容量に基づき、前記１または複数の情報処理装置のうちの何れか２以上の対象の情報処理装置において実行されているプログラムを、前記１または複数の情報処理装置のうちの１つである第１情報処理装置により実行させることが可能か否かを判断し、
可能と判断した場合、前記設定部は、
前記第１情報処理装置に対して、前記２以上の対象の情報処理装置に対して指示した前記使用容量の合計量を前記使用容量として指示するとともに、前記第１情報処理装置に前記２以上の対象の情報処理装置において実行されているプログラムの実行の開始を指示し、
前記２以上の対象の情報処理装置のうち前記第１情報処理装置ではない情報処理装置に、プログラムの実行を停止して省電力状態に移行させる指示をする
請求項４に記載のメモリ装置。
【請求項２０】
前記共通記憶部における書き換え回数が予め定められた値以上となっている記憶領域を管理するウェアレベリング管理部をさらに備え、
前記アクセス制御部は、前記書き換え回数が予め定められた値以上となっている記憶領域に対してデータの書き込みおよび読み出しをする場合には、設定された前記アクセス方法に関わらず、前記第１アクセス処理を実行する
請求項３から１９の何れか１項に記載のメモリ装置。
【請求項２１】
１または複数の情報処理装置に接続されたメモリ装置であって、
複数の領域に分割された共通記憶部と、
前記１または複数の情報処理装置による前記複数の領域のそれぞれに対するアクセスからメモリアクセスの統計情報を生成し、生成した前記統計情報を解析して前記複数の領域毎のメモリアクセス情報を取得する解析部と、
を備えるメモリ装置。
【請求項２２】
１または複数の情報処理装置と、
共通記憶部を有し、前記１または複数の情報処理装置のそれぞれとインタフェースにより接続されたメモリ装置と、
を備える情報処理システムであって、
前記インタフェースは、
前記１または複数の情報処理装置の動作統計情報を、前記１または複数の情報処理装置のそれぞれから前記メモリ装置へと転送し、
前記共通記憶部に対する前記１または複数の情報処理装置によるアクセス方法を示す情報を、前記メモリ装置から前記１または複数の情報処理装置のそれぞれに転送する
情報処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、メモリ装置および情報処理システムに関する。
【背景技術】
【０００２】
近年、コンピュータシステムは、オンラインリアルタイム処理、ビッグデータ処理およびディープラーニング処理等の大規模データ処理を実行する。このような処理を実行する場合、コンピュータシステムは、巨大な容量の主記憶装置を用いなければならない。しかし、従来、サーバ等の情報処理装置は、主記憶装置として、待機電力が大きいＤＲＡＭ（Ｄｙｎａｍｉｃ−Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）を備える。このため、従来のコンピュータシステムでは、大規模データ処理を実行する場合、消費電力が大きくなってしまっていた。
【０００３】
また、近年、複数のサーバをイーサーネットまたはインフィニバンド等のネットワークにより接続して分散処理を行うコンピュータシステムが知られている。このようなコンピュータシステムは、サーバが単体で処理を実行するよりも、高速に処理を実行することができる。しかし、このようなコンピュータシステムは、サーバのデータ転送が大量に発生する。このため、分散処理を行うコンピュータシステムでは、大規模データ処理を実行する場合、処理速度が低下してしまっていた。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】R.  F.  Freitas  and  W.  W.  Wilcke，  “Storage-class  Memory:  The  Next  Storage  System  Technology”，  IBM  Journal  of  Research  and  Development  Vol.52  No.4，  pp.439-447，  2008.
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明が解決しようとする課題は、１または複数の情報処理装置を用いたシステムに対して、効率良く処理をさせることにある。
【課題を解決するための手段】
【０００６】
実施形態のメモリ装置は、１または複数の情報処理装置に接続される。前記メモリ装置は、共通記憶部と、解析部と、設定部とを備える。前記解析部は、前記１または複数の情報処理装置による前記共通記憶部に対するアクセスを解析して、前記共通記憶部に対する前記１または複数の情報処理装置によるアクセス方法を決定する。前記設定部は、決定された前記アクセス方法を前記１または複数の情報処理装置に対して指示する。
【図面の簡単な説明】
【０００７】
【図１】第１実施形態に係る情報処理システムの構成を示す図。
【図２】情報処理システムの外観構成の一例を示す図。
【図３】第１実施形態に係るメモリコントローラの構成を示す図。
【図４】第１アクセス処理および第２アクセス処理を説明するための図。
【図５】第２アクセス処理における高速処理および低速処理を説明するための図。
【図６】第２アクセス処理における最高速処理をさらに説明するための図。
【図７】個別メモリにおける使用容量の指示の内容を説明するための図。
【図８】通常退避処理を説明するための図。
【図９】積極退避処理における第１処理を説明するための図。
【図１０】積極退避処理における第２処理を説明するための図。
【図１１】第１実施形態に係る情報処理システムの処理の手順を示す図。
【図１２】解析結果の一例を示す図。
【図１３】アクセス方法の決定処理の手順の一例を示す図。
【図１４】アクセス方法の設定テーブルの一例を示す図。
【図１５】第２実施形態に係るメモリコントローラの構成を示す図。
【図１６】第３実施形態に係る情報処理システムの構成を示す図。
【図１７】第４実施形態に係るメモリコントローラの構成を示す図。
【図１８】第４実施形態に係る情報処理システムの処理の手順を示す図。
【図１９】第５実施形態に係るメモリコントローラの構成を示す図。
【図２０】第６実施形態に係る情報処理システムの処理の一例を示す図。
【図２１】第７実施形態に係るメモリコントローラの構成を示す図。
【発明を実施するための形態】
【０００８】
以下、図面を参照しながら実施形態に係る情報処理システム１０について詳細に説明する。なお、以下、複数の実施形態について説明をするが、略同一の機能および構成を有するブロックに同一の符号を付け、第２実施形態以降においては重複する内容の説明を省略する。
【０００９】
（第１実施形態）
図１は、第１実施形態に係る情報処理システム１０の構成を示す図である。情報処理システム１０は、複数の情報処理装置２０と、メモリ装置３０とを備える。
【００１０】
複数の情報処理装置２０のそれぞれは、情報処理を独立に実行するコンピュータである。複数の情報処理装置２０のそれぞれは、例えば、別個のオペレーティングシステムを実行する。複数の情報処理装置２０のそれぞれは、例えば、異なる筐体に収納されていたり、異なる基板に設けられていたりする。
【００１１】
なお、実施形態では、複数の情報処理装置２０を備える情報処理システム１０を示す。しかし、情報処理システム１０は、１つの情報処理装置２０を備える構成であってもよい。
【００１２】
メモリ装置３０は、複数の情報処理装置２０のそれぞれに接続される。メモリ装置３０は、複数の情報処理装置２０のそれぞれの共通の主記憶装置として機能する。メモリ装置３０は、複数の情報処理装置２０のそれぞれから、データの書き込みおよびデータの読み出しのためのアクセス要求を受け付ける。メモリ装置３０は、受け付けたアクセス要求に応じて内部にデータを記憶したり、内部に記憶しているデータを読み出して情報処理装置２０へと出力したりする。メモリ装置３０は、例えば、複数の情報処理装置２０とは異なる筐体に収納されていたり、異なる基板に設けられていたりする。
【００１３】
情報処理装置２０は、処理回路２２と、個別メモリ２４とを有する。
【００１４】
処理回路２２は、１または複数のプロセッサを有する。プロセッサは、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。プロセッサは、１または複数のＣＰＵコアを含んでいてもよい。処理回路２２は、プログラムを実行して、データを処理する。処理回路２２は、プログラムを実行して、データ処理をすることができれば、どのような回路であってもよい。例えば、処理回路２２は、ＧＰＧＰＵ（Ｇｅｎｅｒａｌ−ｐｕｒｐｏｓｅ  ｃｏｍｐｕｔｉｎｇ  ｏｎ  Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）で利用されるＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）であってもよい。また、処理回路２２は、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）等のアクセラレータであってもよい。
【００１５】
処理回路２２は、プログラムの実行に応じて、個別メモリ２４またはメモリ装置３０からデータを読み出したり、個別メモリ２４またはメモリ装置３０にデータを書き込んだりする。例えば、処理回路２２は、Ｌ１データキャッシュ、Ｌ１命令キャッシュ、Ｌ２キャッシュおよびＬ３キャッシュ等の階層的なキャッシュを有する。処理回路２２は、このようなキャッシュを用いて、データを一時的に記憶する。処理回路２２は、例えば、階層的なキャッシュにおける最下層のキャッシュ（ラストレベルキャッシュ）でキャッシュミスをした場合、キャッシュライン単位で個別メモリ２４またはメモリ装置３０に対してアクセスして必要なデータを読み出したり書き込んだりする。
【００１６】
個別メモリ２４は、処理回路２２による作業領域として用いられる記憶装置である。個別メモリ２４は、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等の電源の供給を停止すると記憶しているデータが消える揮発メモリである。個別メモリ２４は、ＤＲＡＭと同様に高速アクセスが可能な、ＭＲＡＭ（Ｍａｇｎｅｔｏｒｅｓｉｓｔｉｖｅ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等の不揮発メモリであってもよい。あるいは、個別メモリ２４は、揮発メモリと不揮発メモリとを混載していてもよい。個別メモリ２４は、例えばＤＩＭＭ接続のメモリモジュールとして実装されている。
【００１７】
処理回路２２は、ストア命令またはロード命令等のメモリアクセスのための命令を実行することにより、個別メモリ２４およびメモリ装置３０にアクセスすることができる。また、処理回路２２は、個別メモリ２４およびメモリ装置３０のそれぞれに対して、キャッシュライン単位またはバイト単位等の小領域単位でアクセスすることができる。処理回路２２は、個別メモリ２４とメモリバスで接続される。また、処理回路２２は、メモリ装置３０と、共有メモリインタフェースを介して接続される。
【００１８】
例えば、処理回路２２は、メモリ装置３０および個別メモリ２４を主記憶装置として用いる。また、処理回路２２は、個別メモリ２４をメモリ装置３０のキャッシュメモリとして用いてよい。すなわち、処理回路２２は、個別メモリ２４を、メモリ装置３０に記憶されたデータを一時的に記憶するメモリとして用いてよい。
【００１９】
メモリ装置３０は、共通記憶部３１と、メモリコントローラ４０とを有する。共通記憶部３１は、第１共通メモリ３２と、第２共通メモリ３４と、第３共通メモリ３６とを含む。
【００２０】
第１共通メモリ３２および第２共通メモリ３４は、大容量の不揮発性メモリ（ＮＶＭ）であり、個別メモリ２４より待機電力が小さい。例えば、第１共通メモリ３２および第２共通メモリ３４は、待機電力がゼロである。
【００２１】
第２共通メモリ３４は、第１共通メモリ３２より応答速度が速い（別の言い方をするとアクセスレイテンシが小さい）。また、第２共通メモリ３４は、第１共通メモリ３２より記憶容量が小さくてもよい。
【００２２】
また、第１共通メモリ３２および第２共通メモリ３４は、例えば、個別メモリ２４よりも応答速度が遅くてよい。第１共通メモリ３２および第２共通メモリ３４は、一例として、アクセスレイテンシが、１０ｎ秒から数μｓ程度の間のメモリである。
【００２３】
また、第１共通メモリ３２および第２共通メモリ３４は、個別メモリ２４と同様のデータ単位でデータの書き込みおよび読み出しが可能である。例えば、第１共通メモリ３２および第２共通メモリ３４は、バイト単位等の小領域単位でデータの書き込みおよび読み出しが可能である。
【００２４】
第１共通メモリ３２および第２共通メモリ３４は、例えば、ＭＲＡＭ、ＰＣＭ（Ｐｈａｓｅ  Ｃｈａｎｇｅ  Ｍｅｍｏｒｙ）、ＰＲＡＭ（Ｐｈａｓｅ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＰＣＲＡＭ（Ｐｈａｓｅ  Ｃｈａｎｇｅ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＲｅＲＡＭ（Ｒｅｓｉｓｔａｎｃｅ  Ｃｈａｎｇｅ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＦｅＲＡＭ（Ｆｅｒｒｏｅｌｅｃｔｒｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、３ＤＸＰｏｉｎｔまたはＭｅｍｒｉｓｔｏｒ等である。第１共通メモリ３２および第２共通メモリ３４は、いわゆるストレージクラスメモリ（ＳＣＭ）と呼ばれるメモリであってもよい。なお、第１共通メモリ３２および第２共通メモリ３４は、待機電力が非常に低くバイト単位等の小領域単位でアクセス可能な揮発性メモリに対して、電力を継続して投入し続けて実現されてもよい。
【００２５】
第３共通メモリ３６は、ＤＲＡＭ等の電源の供給を停止すると記憶しているデータが消える揮発メモリである。第３共通メモリ３６は、ＤＲＡＭと同様に高速アクセスが可能な、ＭＲＡＭ等の不揮発メモリであってもよい。
【００２６】
第３共通メモリ３６は、第１共通メモリ３２および第２共通メモリ３４より応答速度が速い。また、第３共通メモリ３６は、第１共通メモリ３２および第２共通メモリ３４より記憶容量が小さくてもよく、待機電力が大きくてもよい。
【００２７】
なお、共通記憶部３１は、第３共通メモリ３６を含まない構成であってもよい。また、共通記憶部３１は、第２共通メモリ３４を含まない構成であってもよい。また、メモリ装置３０は、第２共通メモリ３４より高速であって、バイト単位等の小領域単位でアクセス可能な不揮発メモリをさらに備える構成であってもよい。
【００２８】
メモリコントローラ４０は、複数の情報処理装置２０のそれぞれが有する処理回路２２から、共通記憶部３１に対するアクセス要求を受け付ける。メモリコントローラ４０は、アクセス要求に応じて、第１共通メモリ３２、第２共通メモリ３４または第３共通メモリ３６に対してデータの書き込みおよび読み出しをする。メモリコントローラ４０は、読み出し要求を受けた場合には、第１共通メモリ３２、第２共通メモリ３４または第３共通メモリ３６から読み出したデータを、アクセス要求を送信した情報処理装置２０が有する処理回路２２に対して返信する。
【００２９】
例えば、メモリコントローラ４０は、第１共通メモリ３２、第２共通メモリ３４および第３共通メモリ３６を、処理回路２２の混在型の主記憶装置として機能させる。また、例えば、メモリコントローラ４０は、第２共通メモリ３４および第３共通メモリ３６を、第１共通メモリ３２のキャッシュメモリのように用いてもよい。すなわち、メモリコントローラ４０は、第２共通メモリ３４および第３共通メモリ３６を、第１共通メモリ３２に記憶されたデータを、アクセスの高速化を目的として一時的に記憶するためのメモリとして機能させることもできる。共通記憶部３１は、３つの特性が異なるメモリが混在した主記憶装置であり、主記憶装置のなかに応答速度が速いところもあるし、遅いところもある。メモリコントローラ４０は、アクセスの高速化等を目的として、主記憶装置の内部でデータを適切に移動させたり、主記憶装置の内部のデータの配置を工夫したりする。これにより、メモリコントローラ４０は、共通記憶部３１の内部の異なる特性のメモリを効率良く使用するように、データを記憶させることができる。
【００３０】
ここで、共通記憶部３１の記憶領域は、論理的な複数の領域に分割されている。そして、メモリコントローラ４０には、複数の領域のそれぞれに対するアクセス方法が設定されている。メモリコントローラ４０は、情報処理装置２０から何れかの領域に対するアクセス要求を受け付けた場合、その領域に対して設定されたアクセス方法により、その領域にアクセスする。
【００３１】
例えば、メモリコントローラ４０には、アクセス方法として、個別メモリ２４をキャッシュメモリとして用いた階層的なアクセスをする処理、第１共通メモリ３２をアクセス対象として直接的なアクセスをする処理、第２共通メモリ３４をアクセス対象として直接的なアクセスをする処理および第３共通メモリ３６をアクセス対象として直接的なアクセスをする処理等が設定されている。なお、アクセス方法の具体的な例については、詳細を後述する。
【００３２】
メモリコントローラ４０は、アクセス方法が設定された場合に、複数の領域のそれぞれについてのアクセス方法を複数の情報処理装置２０へと指示する。例えば、メモリコントローラ４０は、複数の領域のそれぞれについてのアクセス方法をその領域にアクセスする可能性がある情報処理装置２０に対して指示する。そして、情報処理装置２０は、メモリ装置３０に対してアクセスをする場合、アクセス対象の領域について指示されたアクセス方法に従って、データの書き込みおよび読み出しを実行する。また、複数の情報処理装置２０のそれぞれとメモリ装置３０とを接続する共有メモリインタフェースは、アクセス方法を示す情報を、メモリ装置３０のメモリコントローラ４０から複数の情報処理装置２０のそれぞれに転送する機能を有する。
【００３３】
図２は、情報処理システム１０の外観構成の一例を示す図である。情報処理システム１０は、例えば、ラック４２を備えてもよい。ラック４２は、複数の情報処理装置２０、および、メモリ装置３０を収納する。複数の情報処理装置２０は、ラック４２に収納された状態でメモリ装置３０に接続される。なお、情報処理システム１０は、図２に示すような構成に限らず、他の構成であってもよい。
【００３４】
図３は、第１実施形態に係るメモリコントローラ４０の構成を示す図である。メモリコントローラ４０は、アクセス制御部５２と、解析部５４と、設定部５６とを有する。
【００３５】
アクセス制御部５２は、複数の情報処理装置２０のそれぞれから共通記憶部３１に対するアクセス要求を受け付ける。例えば、アクセス制御部５２は、複数の情報処理装置２０のそれぞれから共通記憶部３１に対する書き込み要求または読み出し要求を受け付ける。そして、アクセス制御部５２は、複数の情報処理装置２０による共通記憶部３１に対するアクセス要求に応じて、共通記憶部３１に対するデータの書き込みおよびデータの読み出しを制御する。
【００３６】
解析部５４は、複数の情報処理装置２０による共通記憶部３１に対するアクセスを解析する。具体的には、例えば、解析部５４は、アクセスの統計情報を生成し、統計情報を解析する。そして、解析部５４は、解析結果に基づき、共通記憶部３１に対する複数の情報処理装置２０によるアクセス方法を決定する。
【００３７】
設定部５６は、解析部５４により決定されたアクセス方法をアクセス制御部５２に設定する。これとともに、設定部５６は、決定されたアクセス方法を複数の情報処理装置２０のそれぞれに対して指示する。
【００３８】
また、情報処理装置２０は、設定部５６から指示されたアクセス方法により、共通記憶部３１に対してアクセスをする。具体的には、複数の情報処理装置２０のそれぞれは、指示されたアクセス方法に従ってアクセス制御部５２にアクセス要求を与える。また、アクセス制御部５２は、情報処理装置２０から共通記憶部３１に対するアクセス要求を受け付けた場合、設定部５６により設定されたアクセス方法に従って共通記憶部３１に対するデータの書き込みおよびデータの読み出しをする。
【００３９】
ここで、共通記憶部３１の記憶領域は、論理的に複数の領域に分割されている。解析部５４は、複数の領域のそれぞれに対する複数の情報処理装置２０によるアクセスを解析して、複数の領域のそれぞれに対するアクセス方法を決定する。そして、設定部５６は、複数の領域のそれぞれについて、決定されたアクセス方法をアクセス制御部５２に設定する。これとともに、設定部５６は、複数の領域のそれぞれについて決定されたアクセス方法を複数の情報処理装置２０に対して指示する。
【００４０】
情報処理装置２０は、アクセス対象の領域について指示されたアクセス方法に従って、共通記憶部３１に対してアクセスする。具体的には、情報処理装置２０は、アクセス対象の領域について指示されたアクセス方法に従って、アクセス制御部５２にアクセス要求を与える。また、アクセス制御部５２は、情報処理装置２０からアクセス要求を受け付けた場合、アクセス対象の領域に対して設定されたアクセス方法に従って、対応する領域に対してデータの書き込みおよびデータの読み出しをする。
【００４１】
例えば、解析部５４は、複数の領域のそれぞれに対して、アクセス方法として、共通記憶部３１から個別メモリ２４に転送したデータに対して書き込みおよび読み出しをする第１アクセス処理、または、共通記憶部３１に記憶されたデータに対して直接書き込みおよび読み出しをする第２アクセス処理を決定する。そして、設定部５６は、複数の領域のそれぞれについて、第１アクセス処理または第２アクセス処理の何れかをアクセス制御部５２に設定するとともに、第１アクセス処理または第２アクセス処理の何れかを複数の情報処理装置２０に指示する。
【００４２】
そして、複数の情報処理装置２０のそれぞれは、第１アクセス処理が指示された領域に対してアクセスする場合、アクセス制御部５２に共通記憶部３１から個別メモリ２４にデータを転送させ、個別メモリ２４に転送したデータに対して書き込みおよび読み出しをする。また、複数の情報処理装置２０のそれぞれは、第２アクセス処理が指示された領域に対してアクセスする場合、共通記憶部３１に記憶されたデータの書き込みおよび読み出しの要求をアクセス制御部５２に対して与える。なお、第１アクセス処理および第２アクセス処理の詳細については、図４を参照してさらに説明する。
【００４３】
また、解析部５４は、アクセス方法として第１アクセス処理を決定した場合、個別メモリ２４の使用容量をさらに決定してもよい。この場合、設定部５６は、複数の情報処理装置２０に対して、決定した使用容量をさらに指示する。そして、複数の情報処理装置２０のそれぞれは、共通記憶部３１から転送されたデータを、指示された使用容量の範囲内で個別メモリ２４に記憶させる。なお、個別メモリ２４における使用容量については、図７を参照してさらに説明する。
【００４４】
さらに、解析部５４は、アクセス方法として第１アクセス処理を決定した場合、個別メモリ２４における退避方法をさらに決定してもよい。この場合、設定部５６は、複数の情報処理装置２０に対して、決定した退避方法をさらに指示する。そして、複数の情報処理装置２０のそれぞれは、共通記憶部３１から個別メモリ２４に転送したデータが、指示された使用容量を超える場合、指示された退避方法により、個別メモリ２４から共通記憶部３１にデータを退避させる。なお、個別メモリ２４における退避方法については、図８、図９および図１０を参照してさらに説明する。
【００４５】
また、共通記憶部３１は、第１共通メモリ３２と、第１共通メモリ３２よりも応答速度が速い第２共通メモリ３４とを含んでよい。この場合、第１共通メモリ３２は、共通記憶部３１における論理的に分割された複数の領域のそれぞれに対応して、物理的な複数の記憶領域を含む。解析部５４は、第２アクセス処理が設定されている領域に対して、アクセス方法として高速処理または低速処理をさらに決定する。そして、設定部５６は、アクセス制御部５２に対して、第２アクセス処理を決定した領域について高速処理か低速処理かをさらに設定する。
【００４６】
アクセス制御部５２は、低速処理が設定された領域に対して情報処理装置２０から第２アクセス処理によるアクセス要求を受けた場合、第１共通メモリ３２における対応する領域に対してデータを直接書き込みおよび読み出しをする。また、アクセス制御部５２は、高速処理が設定された場合、予め、第１共通メモリ３２における対応する領域のデータを、第２共通メモリ３４に転送する。そして、アクセス制御部５２は、高速処理が設定された領域に対して情報処理装置２０から第２アクセス処理によるアクセス要求を受けた場合、第１共通メモリ３２から第２共通メモリ３４に予め転送されたデータに対して直接書き込みおよび読み出しをする。
【００４７】
第２アクセス処理によりアクセスした場合、アクセスレイテンシが大きいほど、情報処理装置２０は、処理性能が低下する。従って、アクセス制御部５２は、アクセスレイテンシが大きい第１共通メモリ３２から、アクセスレイテンシが小さい第２共通メモリ３４に予めデータを転送することにより、情報処理装置２０での処理性能を向上させることができる。なお、高速処理および低速処理については、図５を参照してさらに説明する。
【００４８】
また、解析部５４は、第２アクセス処理が設定されている領域に対して、アクセス方法として、並列に実行する処理の数を表す並列度をさらに決定してもよい。そして、設定部５６は、第２アクセス処理を決定した領域にアクセス要求をする情報処理装置２０に対して、決定した並列度を指示してもよい。
【００４９】
並列度の指示を受けた場合、情報処理装置２０の処理回路２２は、指示された並列度で並列処理を実行する。例えば、並列度として１が指示された場合には、処理回路２２は、例えば１つのリソース（１つのスレッド）で処理を実行する。また、並列度として２が指示された場合には、処理回路２２は、例えば２つのリソース（２つのスレッド）で並列処理を実行する。また、並列度として４が指示された場合には、処理回路２２は、例えば４つのリソース（４つのスレッド）で並列処理を実行する。
【００５０】
より具体的には、例えば、処理回路２２は、ハイパースレッディング（Ｈｙｐｅｒ−Ｔｈｒｅａｄｉｎｇ）などの１つのプロセッサを複数の仮想的にプロセッサとして機能させる仕組みを用いて、実行するスレッドの数（並列度）を変更する。また、処理回路２２は、異なる複数のアプリケーションプログラムを同時に実行することでスレッドの数（並列度）を変更してもよい。また、情報処理装置２０上で動作するオペレーティングシステムは、コンテキストの切り換えを行うコンテキストスイッチにおける切り換え速度を、指示された並列度に応じて変更してもよい。例えば、オペレーティングシステムは、コンテキストスイッチのスイッチング方法を切り換えることができ、指示された並列度に応じてスイッチング方法を切り換えてもよい。
【００５１】
解析部５４は、第２アクセス処理によりデータが書き込まれる領域のアクセスレイテンシに応じて並列度を決定してよい。この場合、解析部５４は、アクセスレイテンシが大きい程、並列度を高くするように、並列度を決定する。例えば、解析部５４は、アクセスレイテンシが小さい（応答速度が速い）第２共通メモリ３４にデータが書き込まれる領域に対する並列度を、第１並列度（例えば、並列度＝２）に決定する。また、解析部５４は、アクセスレイテンシが大きい（応答速度が遅い）第１共通メモリ３２にデータが書き込まれる領域に対する並列度を、第１並列度よりも高い第２並列度（例えば、並列度＝３）に決定する。
【００５２】
並列度を高くした場合、処理回路２２は、メモリ装置３０のアクセスレイテンシが大きいためにあるスレッドでの処理が遅延したとしても、他のスレッドでの処理は進む。従って、並列度を高くした場合、アクセスレイテンシが大きい領域に記憶されたデータを用いて処理をしても、処理回路２２は、ストールせずに高速に処理を実行することができる。
【００５３】
また、解析部５４は、複数の情報処理装置２０の処理回路２２のＣＰＵ利用率をストールサイクル数などの形式で取得することができた場合、取得したＣＰＵ利用率に応じて、並列度を変化させてもよい。例えば、この場合、解析部５４は、ＣＰＵ利用率が低い領域についての並列度を高くし、ＣＰＵ利用率が高い領域についての並列度を低くする。ＣＰＵ利用率が高い場合、処理回路２２は、並列度を高くしても、高速に処理をすることができない。従って、このような並列度を変化させることにより、解析部５４は、効率良く処理回路２２を動作させることができる。
【００５４】
また、解析部５４は、第２アクセス処理が設定されている領域に対して、低速処理または高速処理を決定するとともに、並列度を決定してもよい。例えば、解析部５４は、高速処理に決定した領域（すなわち、第２共通メモリ３４にデータの書き込みまたは読み出しがされる領域）を第１並列度に決定する。また、解析部５４は、低速処理に決定した領域（すなわち、第１共通メモリ３２にデータの書き込みおよび読み出しがされる領域）を、第１並列度より高い第２並列度に決定する。
【００５５】
これにより、高速処理に決定された領域については、アクセスレイテンシの小さい第２共通メモリ３４に対してデータの書き込みおよび読み出しをするので、情報処理装置２０は、高速に処理を実行することができる。また、低速処理に決定された領域については、情報処理装置２０は、並列度のより高い並列処理を実行するので、高速に処理を実行することができる。第２アクセス処理は、アクセス制御部５２が、第１共通メモリ３２から第２共通メモリ３４への転送処理を実行するので、消費電力が大きい。従って、少ない消費電力で高速に第２アクセス処理を実行させたい場合、解析部５４は、低速処理に決定するとともに、並列度を高く設定してもよい。
【００５６】
また、解析部５４は、高速処理に決定された場合、高速処理に決定された領域内において、アクセスされる可能性が高いサブ領域を検出してもよい。この場合、アクセス制御部５２は、サブ領域のデータを第２共通メモリ３４に予め転送する。つまり、アクセス制御部５２は、高速処理に決定された領域内における、サブ領域以外の領域については、データを第２共通メモリ３４に転送しない。そして、アクセス制御部５２は、複数の情報処理装置２０のそれぞれからのサブ領域に対する第２アクセス処理によるアクセス要求に応じて、第２共通メモリ３４に予め転送したデータに対して直接書き込みおよび読み出しをする。また、アクセス制御部５２は、複数の情報処理装置２０のそれぞれからの、高速処理に決定された領域内におけるサブ領域とは異なる領域に対する第２アクセス処理によるアクセス要求に応じて、第１共通メモリ３２に対して直接書き込みおよび読み出しをする。
【００５７】
そして、設定部５６は、サブ領域にデータの書き込みおよび読み出しをする情報処理装置２０（すなわち、第２共通メモリ３４にデータの書き込みまたは読み出しをする情報処理装置２０）に対して第１並列度を指示する。また、設定部５６は、高速処理に決定された領域内におけるサブ領域以外の領域にデータの書き込みおよび読み出しをする情報処理装置２０（すなわち、第１共通メモリ３２にデータの書き込みまたは読み出しをする情報処理装置２０）に対して、第１並列度よりも高い第２並列度を指示する。これにより、サブ領域については、アクセスレイテンシの小さい第２共通メモリ３４に対してデータの書き込みおよび読み出しをするので、情報処理装置２０は、高速に処理を実行することができる。また、高速処理に決定された領域のうちのサブ領域外の領域については、情報処理装置２０は、並列処理を実行するので、高速に処理を実行することができる。
【００５８】
図４は、第１アクセス処理および第２アクセス処理を説明するための図である。
【００５９】
情報処理装置２０の処理回路２２は、アクセス方法として第１アクセス処理が指示されている第１領域に対してデータの書き込みまたは読み出しをする場合、メモリ装置３０に対して、第１アクセス処理によるアクセス要求をする。
【００６０】
メモリ装置３０のアクセス制御部５２は、情報処理装置２０から第１アクセス処理が設定されている第１領域に対するアクセス要求を受けた場合、対象データを含むデータブロック（例えば、ページと呼ばれる単位）を第１共通メモリ３２から読み出して、アクセス要求を送信した情報処理装置２０に転送する。処理回路２２は、アクセス制御部５２からデータブロックを受け取ると、個別メモリ２４に記憶させる。これにより、個別メモリ２４は、第１共通メモリ３２におけるアクセス対象のデータを含むデータブロックを記憶することができる。そして、処理回路２２は、個別メモリ２４に転送されたデータブロックに含まれる対象データに対して、例えばバイト単位で書き込みまたは読み出しをする。
【００６１】
そして、以後、処理回路２２は、第１領域に対してデータの書き込みまたは読み出しをする場合、個別メモリ２４に対してデータの書き込みおよび読み出しをする。また、処理回路２２は、個別メモリ２４に記憶されていない新たな対象データの書き込みまたは読み出しをする場合、メモリ装置３０に対して第１アクセス処理によるアクセス要求をして、新たな対象データを含むデータブロックを個別メモリ２４に記憶させる。
【００６２】
また、第１アクセス処理において、処理回路２２は、個別メモリ２４に転送したデータの量が予め指示された使用容量に達したことにより新たなデータブロックを転送できなくなった場合、個別メモリ２４に記憶された不要なデータブロックを、共通記憶部３１に退避させる。また、処理回路２２は、個別メモリ２４に記憶させておくことが不要と判断されたデータブロックが存在する場合も、個別メモリ２４に記憶された不要なデータブロックを、共通記憶部３１に退避させる。
【００６３】
このような第１アクセス処理を実行することにより、情報処理装置２０は、高速にデータにアクセスすることができる。これにより、情報処理装置２０は、例えば同一のデータに対して繰り返しデータをアクセスするようなアプリケーションプログラム、つまり、局所的の高いメモリアクセスを行うアプリケーションプログラムを実行した場合、メモリにアクセスしている時間を短くして、効率良い処理を実現することができる。
【００６４】
また、情報処理装置２０の処理回路２２は、アクセス方法として第２アクセス処理が指示されている第２領域に対してデータの書き込みまたは読み出しをする場合、メモリ装置３０に対して、第２アクセス処理によるアクセス要求をする。メモリ装置３０のアクセス制御部５２は、情報処理装置２０から第２アクセス処理が設定されている第２領域に対するアクセス要求を受けた場合、共通記憶部３１に記憶されている対象データに対して、バイト単位で直接書き込みおよび読み出しをする。
【００６５】
このような第２アクセス処理を実行することにより、情報処理装置２０は、少ない処理量でデータにアクセスすることができる。これにより、情報処理装置２０は、例えば異なる多数のデータに対して１回ずつアクセスをするようなアプリケーションプログラム、つまり、局所性の低いメモリアクセスをするアプリケーションプログラムを実行した場合、転送処理のオーバヘッドを無くして、効率良い処理を実現することができる。
【００６６】
図５は、第２アクセス処理における高速処理および低速処理を説明するための図である。
【００６７】
アクセス制御部５２は、アクセス方法として高速処理が設定されている第３領域に対して、情報処理装置２０から第２アクセス処理によるアクセス要求を受けた場合、高速処理を実行する。
【００６８】
具体的には、アクセス制御部５２は、設定部５６が第３領域を高速処理に設定した場合、予め、第１共通メモリ３２における第３領域に記憶されたデータを、第２共通メモリ３４に転送する。そして、アクセス制御部５２は、高速処理が設定された第３領域に対して情報処理装置２０から第２アクセス処理によるアクセス要求を受けた場合、第２共通メモリ３４に予め転送したデータに対して、キャッシュライン単位あるいはバイト単位で直接書き込みおよび読み出しをする。
【００６９】
なお、アクセス制御部５２は、第３領域に含まれる全てのデータを第２共通メモリ３４に予め転送してもよいし、第３領域の一部のデータを第２共通メモリ３４に転送してもよい。第３領域における、第２共通メモリ３４に転送されていないデータに対するアクセス要求を受けた場合には、アクセス制御部５２は、第１共通メモリ３２に直接書き込みおよび読み出しをする。これに代えて、アクセス制御部５２は、閾値以上の数のアクセス要求を受けた時点で、第１共通メモリ３２に記憶されたデータを第２共通メモリ３４に転送してから、第２共通メモリ３４に書き込みおよび読み出しをしてもよい。
【００７０】
また、アクセス制御部５２は、第３領域をさらに複数のサブ領域に分割し、閾値以上の数のアクセス要求を受けたサブ領域について、そのサブ領域の第１共通メモリ３２に記憶されたすべてのデータを第２共通メモリ３４に転送してもよい。そして、その後、アクセス制御部５２は、第２共通メモリ３４へのメモリアクセスが、転送したサブ領域以外に対して連続して閾値以上の数発生するなどした場合、サブ領域における第２共通メモリ３４に転送されたデータを、第１共通メモリ３２に書き戻してもよい。例えば、複数の層から構成されるディープラーニングにおけるニューラルネットワークの各層を表すデータが各サブ領域に対応していてもよい。
【００７１】
また、アクセス制御部５２は、例えば、予め定められた数以上の情報処理装置２０により並行して第３領域に含まれるデータが読み出される場合、または、単位時間当たりのアクセス数が多い場合、第２共通メモリ３４における複数の箇所に第３領域に含まれるデータを転送してもよい。これにより、アクセス制御部５２は、第２共通メモリ３４におけるアクセス箇所を分散させることができる。
【００７２】
また、高速処理において、アクセス制御部５２は、例えば、第２共通メモリ３４に転送したデータ量が予め設定された容量を超えた場合、または、第２共通メモリ３４に記憶させておくことが不要と判断された領域が存在する場合、第２共通メモリ３４に記憶されたデータを、第１共通メモリ３２に書き戻してもよい。
【００７３】
また、アクセス制御部５２は、アクセス方法として低速処理が設定されている第４領域に対して、情報処理装置２０から第２アクセス処理によるアクセス要求を受けた場合、低速処理を実行する。具体的には、アクセス制御部５２は、低速処理が設定された第４領域に対して情報処理装置２０から第２アクセス処理によるアクセス要求を受けた場合、第１共通メモリ３２における第４領域に対して、バイト単位でデータを直接書き込みおよび読み出しをする。
【００７４】
第２共通メモリ３４は、第１共通メモリ３２よりも応答速度が速い。従って、高速処理を実行した場合、アクセス制御部５２は、アクセス要求に対して高速に応答をすることができる。
【００７５】
また、低速処理をする場合、アクセス制御部５２は、第１共通メモリ３２から第２共通メモリ３４への転送をしなくてよい。従って、低速処理を実行した場合、アクセス制御部５２は、処理量を少なくすることができる。
【００７６】
図６は、第２アクセス処理における最高速処理をさらに説明するための図である。共通記憶部３１は、第１共通メモリ３２および第２共通メモリ３４に加えて、第３共通メモリ３６をさらに含んでよい。この場合、設定部５６は、第２アクセス処理が設定されている領域に対して、アクセス方法として、さらに最高速処理を設定してもよい。
【００７７】
アクセス制御部５２は、アクセス方法として最高速処理が設定されている第５領域に対して、情報処理装置２０から第２アクセス処理によるアクセス要求を受けた場合、最高速処理を実行する。
【００７８】
具体的には、アクセス制御部５２は、設定部５６から第５領域が最高速処理に設定された場合、予め、第１共通メモリ３２における第５領域に記憶されたデータを、第３共通メモリ３６に転送する。そして、アクセス制御部５２は、最高速処理が設定された第５領域に対して情報処理装置２０から第２アクセス処理によるアクセス要求を受けた場合、第３共通メモリ３６における予め転送したデータに対して、バイト単位で直接書き込みおよび読み出しをする。
【００７９】
なお、アクセス制御部５２は、高速処理と同様に、第５領域の一部を第３共通メモリ３６に転送してもよい。この場合、アクセス制御部５２は、高速処理と同様の処理を実行する。また、最高速処理において、アクセス制御部５２は、例えば、第３共通メモリ３６に転送したデータ量が予め設定された容量を超えた場合、または、第３共通メモリ３６に記憶させておくことが不要と判断された領域が存在する場合等において、第３共通メモリ３６に記憶されたデータを、第１共通メモリ３２に書き戻す。
【００８０】
第３共通メモリ３６は、ＤＲＡＭであるので、第１共通メモリ３２および第２共通メモリ３４よりも応答速度が速い。従って、このような最高速処理を実行することにより、アクセス制御部５２は、例えば、非常に多くの複数の情報処理装置２０から同時にアクセス要求を受けた場合等において、さらに高速に応答することができる。
【００８１】
図７は、個別メモリ２４における使用容量の指示の内容を説明するための図である。第１アクセス処理に決定された第１領域に対してアクセスをする情報処理装置２０は、個別メモリ２４の使用容量がさらに指示される。使用容量が指示された情報処理装置２０は、共通記憶部３１から転送したデータを、指示された使用容量の範囲内で個別メモリ２４に記憶させる。
【００８２】
例えば、情報処理装置２０は、指示された使用容量分の記憶領域を構成するＤＲＡＭに電力を投入し、他の記憶領域を構成するＤＲＡＭへの電源投入を停止したりセルフリフレッシュ状態等にしたりする。情報処理装置２０は、例えば、オペレーティングシステムとしてＬｉｎｕｘ（登録商標）を実行する場合、ｃｇｒｏｕｐｓ機能を用いることにより、このようなＤＲＡＭの動作サイズを制御することができる。
【００８３】
解析部５４は、アクセス方法が第１アクセス処理に決定された第１領域について、省電力化をする領域（第６領域）か、省電力化をしない領域（第７領域）かを決定してもよい。例えば、解析部５４は、単位時間当たりのアクセス数が予め定められた値以下の第１領域を、省電力化をする領域（第６領域）に決定し、単位時間当たりのアクセス数が予め定められた値より大きい第１領域を、省電力化をしない領域（第７領域）に決定してもよい。
【００８４】
この場合、設定部５６は、省電力化をする領域（第６領域）に対してアクセスをする情報処理装置２０に、第６領域のデータを個別メモリ２４に記憶させるための使用容量として、第１値を指示する。第１値は、例えば、第６領域のサイズに対する第１割合（例えば、１／５のサイズ）であってよい。そして、第６領域に対してアクセスをする情報処理装置２０は、第６領域に記憶されたデータを個別メモリ２４に記憶させるために、個別メモリ２４における指示された使用容量分の記憶領域を動作させ、他の記憶領域の動作を停止させる。
【００８５】
また、設定部５６は、省電力化をしない領域（第７領域）に対してアクセスをする情報処理装置２０に、第７領域のデータを個別メモリ２４に記憶させるための使用容量として、第１値より大きい第２値を指示する。第２値は、例えば、第７領域のサイズに対する第２割合（例えば、１／２のサイズ）であってよい。そして、第７領域に対してアクセスをする情報処理装置２０は、第７領域に記憶されたデータを個別メモリ２４に記憶させるために、個別メモリ２４における指示された使用容量分の記憶領域を動作させ、他の記憶領域の動作を停止させる。
【００８６】
このように、情報処理装置２０は、個別メモリ２４を適切な使用容量で動作させることができる。これにより、情報処理装置２０は、個別メモリ２４での無駄な電力消費を抑制することができる。
【００８７】
図８は、通常退避処理を説明するための図である。第１アクセス処理をする場合、情報処理装置２０は、個別メモリ２４に記憶されたデータ量が指示された使用容量に達した場合、個別メモリ２４に記憶されている何れかのデータブロックを共通記憶部３１に退避させた後（書き戻した後）、個別メモリ２４に新たなデータブロックを記憶させる。
【００８８】
設定部５６は、複数の情報処理装置２０に対して、アクセス方法として第１アクセス処理を指示する場合、個別メモリ２４に記憶されているデータブロックのうち、何れのデータブロックを退避させるか決定するための退避方法を指示してもよい。
【００８９】
設定部５６は、退避方法として、例えば、通常退避処理または積極退避処理を指示してよい。例えば、設定部５６は、省電力化をする領域（第６領域）に対する退避方法として、積極退避処理を指示し、省電力化をしない領域（第７領域）に対する退避方法として、通常退避処理を指示する。
【００９０】
通常退避処理において、情報処理装置２０は、個別メモリ２４にキュー領域を設定する。キュー領域の容量は、指示された使用容量である。図８の例においては、キュー領域は、４個分のページを記憶可能である。
【００９１】
通常退避処理において、情報処理装置２０は、ＬＲＵ（Ｌｅａｓｔ  Ｒｅｃｅｎｔｌｙ  Ｕｓｅｄ）方式でキュー領域からデータブロックを退避させる領域である。すなわち、通常退避処理において、情報処理装置２０は、共通記憶部３１から転送された新たなデータブロックを、キュー領域の末尾に記憶させる。情報処理装置２０は、キュー領域に空き容量が無い状態で、さらに新たなデータブロックが転送された場合、キュー領域の先頭のデータブロック（すなわち、最も過去に書き込まれたデータブロック）を共通記憶部３１に退避させる（書き戻す）。図８の例においては、情報処理装置２０は、先頭のデータブロックであるページ＃１を共通記憶部３１に退避させる。そして、情報処理装置２０は、先頭のデータブロックを退避させた後、新たなデータブロックをキュー領域の先頭に記憶させる。
【００９２】
図９は、積極退避処理における第１処理を説明するための図である。図１０は、積極退避処理における第２処理を説明するための図である。
【００９３】
積極退避処理において、情報処理装置２０は、個別メモリ２４に、初回領域と、キュー領域とを設定する。初回領域およびキュー領域の合計の容量は、指示された使用容量である。初回領域は、ＬＲＵ方式でデータブロックを退避させる領域である。キュー領域は、ＬＲＵ方式でデータブロックを退避させる領域である。図９および図１０の例においては、初回領域は、１個分のページを記憶可能である。キュー領域は、４個分のページを記憶可能である。
【００９４】
積極退避処理において、情報処理装置２０は、共通記憶部３１から転送された新たなデータブロックを、初回領域の末尾に記憶させる。情報処理装置２０は、初回領域に空き容量が無い状態で、さらに新たなデータブロックが転送された場合、初回領域の先頭のデータブロック（すなわち、最も過去に初回領域に書き込まれたデータブロック）に対して、再アクセス、すなわち、再度のデータの書き込みまたは読み出しがされたか否かを判断する。
【００９５】
再アクセスがされていない場合、情報処理装置２０は、初回領域の先頭のデータブロックを共通記憶部３１に退避させる。図９の例においては、初回領域の先頭のデータブロックであるページ＃５は、再アクセスがされていない。従って、図９の例においては、情報処理装置２０は、ページ＃５を共通記憶部３１に退避させる。そして、情報処理装置２０は、初回領域の先頭のデータブロックを退避させた後、新たなデータブロックを初回領域の先頭に記憶させる。
【００９６】
一方、再アクセスがされていた場合、情報処理装置２０は、初回領域の先頭のデータブロックを、キュー領域の末尾に記憶させる。情報処理装置２０は、キュー領域に空き容量が無い状態で、初回領域の先頭のデータブロックが転送された場合、キュー領域の先頭のデータブロック（すなわち、最も過去にキュー領域に書き込まれたデータブロック）を共通記憶部３１に退避させる。図１０の例においては、情報処理装置２０は、キュー領域の先頭のデータブロックであるページ＃１を共通記憶部３１に退避させる。そして、情報処理装置２０は、先頭のデータブロックを退避させた後、初回領域の先頭のデータブロックを、キュー領域の先頭に記憶させる。
【００９７】
このような退避処理を用いることにより、情報処理装置２０は、アクセス頻度の高いデータを効率良くキュー領域に残すことができる。これにより、情報処理装置２０は、省電力化を図るために個別メモリ２４の使用容量が小さい場合であっても、効率良くキャッシングをさせることができる。
【００９８】
なお、設定部５６は、通常退避処理および積極退避処理に限らず、どのようなアルゴリズムを用いた退避方法を指示してもよい。例えば、機械学習を用いてデータブロックを退避させる退避方法を指示してもよい。また、設定部５６は、常に同一の退避方法を指示してもよい。また、設定部５６は、退避方法を指示せず、情報処理装置２０に予め登録された退避方法で退避処理を実行させてもよい。
【００９９】
図１１は、第１実施形態に係る情報処理システム１０の処理の手順の一例を示す図である。例えば、情報処理システム１０は、図１１に示す流れで処理を実行する。
【０１００】
まず、Ｓ１１において、複数の情報処理装置２０は、アプリケーションプログラムの実行を開始する。続いて、Ｓ１２において、メモリ装置３０の設定部５６は、アクセス制御部５２に対して全ての領域のアクセス方法を第２アクセス処理に設定する。これとともに、設定部５６は、複数の情報処理装置２０に対して全ての領域のアクセス方法として第２アクセス処理を指示する。
【０１０１】
続いて、Ｓ１３において、メモリ装置３０の解析部５４は、複数の領域のそれぞれについて、複数の情報処理装置２０による共通記憶部３１に対するアクセスを解析する。例えば、解析部５４は、アクセスの局所性、単位時間当たりのアクセス数（アクセスレート）、および、アクセスした情報処理装置２０等を取得する。
【０１０２】
続いて、Ｓ１４において、メモリ装置３０の解析部５４は、アプリケーションプログラムの実行が開始されてから、予め定められた測定期間が経過したか否かを判断する。メモリ装置３０の解析部５４は、測定期間が経過していない場合（Ｓ１４のＮｏ）、処理をＳ１４で待機する。メモリ装置３０の解析部５４は、測定期間が経過した場合（Ｓ１４のＹｅｓ）、処理をＳ１５に進める。
【０１０３】
Ｓ１５において、メモリ装置３０の解析部５４は、解析結果に基づき、領域毎のアクセス方法を決定する。続いて、Ｓ１６において、メモリ装置３０の設定部５６は、決定したアクセス方法をアクセス制御部５２に設定するとともに、複数の情報処理装置２０にアクセス方法を指示する。
【０１０４】
以上の処理により、メモリ装置３０の解析部５４は、アプリケーションプログラムの実行が開始されてから予め定められた測定期間、共通記憶部３１に記憶されたデータに対して直接書き込みおよび読み出しをさせる。これにより、解析部５４は、全ての領域に対するアクセスを精度良く解析して、適切なアクセス方法を決定することができる。なお、情報処理システム１０は、アクセス方法を決定してからも、一定期間毎に、Ｓ１２からＳ１６までの処理を実行してもよい。
【０１０５】
図１２は、解析結果の一例を示す図である。解析部５４は、一例として、複数の領域のそれぞれについて、図１２に示すような、メモリアクセス情報を解析結果として取得する。
【０１０６】
例えば、解析部５４は、複数の情報処理装置２０によるアクセスの統計情報を解析して、複数の領域のそれぞれについて、局所性が所定値より高いかまたは局所性が所定値以下であるか（低い）を示すメモリアクセス情報を取得する。より具体的には、例えば、解析部５４は、複数の領域のそれぞれについて、領域内における微小単位（例えばページまたはバイト等）毎のアクセス回数を計測する。解析部５４は、計測した微小単位毎のアクセス回数に基づき、領域内のアクセスのばらつき（例えば分散）を算出する。そして、解析部５４は、算出したばらつきが予め定められた値より小さければ局所性が所定値より高いと判断し、ばらつきが予め定められた値以上であれば局所性が所定値以下であると判断してよい。なお、解析部５４は、他の方法により局所性が所定値より高いか否かを判断してもよい。
【０１０７】
また、例えば、解析部５４は、複数の情報処理装置２０によるアクセスの統計情報を解析して、複数の領域のそれぞれについて、アクセスした情報処理装置２０を示すメモリアクセス情報を取得してもよい。例えば、解析部５４は、それぞれの領域について、アクセスした情報処理装置２０の識別番号を取得してもよい。
【０１０８】
また、例えば、解析部５４は、複数の情報処理装置２０によるアクセスの統計情報を解析して、複数の領域のそれぞれについて、単位時間当たりのアクセス数（アクセスレート）が予め定められた値より高いか、または、アクセスレートが予め定められた値以下であるか（低い）を示すアクセス情報を取得する。より具体的には、例えば、解析部５４は、それぞれの領域について、一定時間毎のアクセス回数を検出し、一定時間毎のアクセス回数の平均値をアクセスレートとして算出してもよい。
【０１０９】
なお、解析部５４は、以上に挙げたアクセスの統計情報に限らず、複数の情報処理装置２０によるアクセスについての他の統計情報を取得してもよい。さらに、解析部５４は、以上に挙げた解析結果（メモリアクセス情報）に限らず、他の解析結果をこれらの統計情報から取得してもよい。
【０１１０】
図１３は、アクセス方法の決定処理の手順の一例を示す図である。複数の領域のそれぞれについて、解析部５４は、例えば、図１３に示す流れでアクセス方法を決定する。
【０１１１】
まず、Ｓ２１において、解析部５４は、局所性が所定値より高い領域であるか否かを判断する。解析部５４は、当該領域が、局所性が所定値以下の第２領域である場合（Ｓ２１のＮｏ）、処理をＳ２２に進める。解析部５４は、当該領域が、局所性が所定値より高い第１領域である場合（Ｓ２１のＹｅｓ）、処理をＳ２６に進める。
【０１１２】
Ｓ２２において、解析部５４は、当該領域のアクセス方法を第２アクセス処理に決定する。解析部５４は、Ｓ２２に続いて、処理をＳ２３に進める。
【０１１３】
Ｓ２３において、解析部５４は、アクセス方法が第２アクセス処理に決定された第２領域について、高速処理をする領域であるか否かを判断する。例えば、解析部５４は、当該第２領域が予め定められた数以上の情報処理装置２０からアクセスされた領域であるか否かを判断する。
【０１１４】
解析部５４は、当該領域が高速処理をする領域である場合、例えば、当該領域が予め定められた数以上の情報処理装置２０からアクセスされた場合（Ｓ２３のＹｅｓ）、処理をＳ２４に進める。そして、Ｓ２４において、解析部５４は、当該第２領域を、高速処理をする第３領域に決定する。
【０１１５】
また、解析部５４は、当該領域が高速処理をしない領域である場合、例えば、当該領域が予め定められた数以上の情報処理装置２０からアクセスされなかった場合（Ｓ２３のＮｏ）、処理をＳ２５に進める。そして、Ｓ２５において、解析部５４は、当該第２領域を、低速処理をする第４領域に決定する。
【０１１６】
一方、Ｓ２６において、解析部５４は、当該領域のアクセス方法を第１アクセス処理に決定する。解析部５４は、Ｓ２６に続いて、処理をＳ２７に進める。
【０１１７】
Ｓ２７において、解析部５４は、アクセス方法が第１アクセス処理に決定された第１領域について、省電力化をする領域であるか否かを判断する。例えば、解析部５４は、当該第１領域が、単位時間当たりのアクセス数が予め定められた値以下であるか否かを判断する。
【０１１８】
解析部５４は、当該領域が省電力化をする領域である場合、例えば、単位時間当たりのアクセス数が予め定められた値以下の領域である場合（Ｓ２７のＹｅｓ）、処理をＳ２８に進める。そして、Ｓ２８において、解析部５４は、当該第１領域についての個別メモリ２４の使用容量を第１値（例えば、領域の１／５のサイズ）に決定する。
【０１１９】
また、解析部５４は、当該領域が省電力化をしない領域である場合、例えば、単位時間当たりのアクセス数が予め定められた値より大きい領域である場合（Ｓ２７のＮｏ）、処理をＳ２９に進める。そして、Ｓ２９において、解析部５４は、当該第１領域についての個別メモリ２４の使用容量を第１値より大きい第２値（例えば、領域の１／２のサイズ）に決定する。
【０１２０】
解析部５４は、Ｓ２４、Ｓ２５、Ｓ２８またはＳ２９の処理を終えると、当該領域について本フローを終了する。
【０１２１】
図１４は、アクセス方法の設定テーブルの一例を示す図である。設定部５６は、解析部５４により決定されたアクセス方法を例えば設定テーブルに設定する。例えば、設定部５６は、図１４に示すように、設定テーブルに対して、領域毎にアクセス方法として第１アクセス処理または第２アクセス処理を設定する。
【０１２２】
さらに、設定部５６は、アクセス方法として第１アクセス処理を設定した場合、設定テーブルに対して、さらに個別メモリ２４の使用容量を設定する。また、設定部５６は、アクセス方法として第２アクセス処理を設定した場合、設定テーブルに対して、さらに低速処理か高速処理かを設定する。
【０１２３】
また、さらに、設定部５６は、設定テーブルに対して、領域毎に、アクセスをする情報処理装置２０の識別番号を設定する。そして、設定部５６は、複数の領域のそれぞれにアクセスをする情報処理装置２０に対して、当該領域に対して設定されたアクセス方法および使用容量を指示する。
【０１２４】
（効果）
以上のように、情報処理システム１０は、メモリ装置３０が複数の情報処理装置２０のそれぞれに対して、共通記憶部３１に対するアクセス方法を指示する。従来の一般的なメモリ制御装置は、データの書き込みまたは読み出しの要求を受けたことに応じて処理を行うパッシブ処理を実行していた。これに対して、メモリ装置３０は、複数の情報処理装２２０に対してどのように動作するかを指示するアクティブ処理を実行する。
【０１２５】
これにより、情報処理システム１０は、複数の情報処理装置２０で実行されるアプリケーションプログラムの組み合わせ等によって、複数の情報処理装置２０のそれぞれに対して適切なアクセス方法でメモリ装置３０に対してアクセスさせることができる。従って、情報処理システム１０によれば、システム全体の消費電力を抑制したり、処理速度を速くしたり、メモリ装置３０の劣化速度を遅くして信頼性を向上させたりすることができる。
【０１２６】
また、メモリ装置３０は、２以上の情報処理装置２０に対して同一のデータにアクセスさせることができる。従って、情報処理システム１０は、ネットワークを介さずに、２以上の情報処理装置２０の間でのデータのやり取りをすることができる。これにより、情報処理システム１０によれば、大規模データ処理を実行する場合にも、転送処理がボトルネックとならず、高速に処理を実行することができる。
【０１２７】
また、情報処理システム１０は、待機電力の小さいメモリ装置３０を複数の情報処理装置２０の主記憶装置として機能させる。これにより、情報処理システム１０は、大規模データ処理を実行する場合にも、消費電力を少なくすることができる。
【０１２８】
以上のように本実施形態に係る情報処理システム１０は、複数の情報処理装置２０を用いて、効率良くデータ処理を実行することができる。
【０１２９】
（第２実施形態）
図１５は、第２実施形態に係るメモリコントローラ４０の構成を示す図である。第２実施形態に係るメモリコントローラ４０は、予測モデル記憶部７２と、予測部７４とをさらに有する。
【０１３０】
予測モデル記憶部７２は、予測モデルを記憶する。予測モデルは、複数の情報処理装置２０による共通記憶部３１に対するアクセスのパターンから、複数の情報処理装置２０がアクセスすると予測されるデータを特定するためのモデルである。予測モデルは、学習等により予め生成されている。予測モデル記憶部７２は、メモリ装置３０の外部に設けられていてもよい。
【０１３１】
予測部７４は、アクセス制御部５２から、複数の情報処理装置２０のそれぞれによる共通記憶部３１に対するアクセスのパターンを取得する。例えば、予測部７４は、複数の情報処理装置２０のそれぞれがアクセスした共通記憶部３１のデータ位置等のパターンを取得する。
【０１３２】
予測部７４は、取得したパターンおよび予測モデルに基づき、情報処理装置２０がアクセスすると予測される第１データを特定する。第１データは、バイト単位のデータであってもよいし、アクセスすると予測されるデータを含むブロック単位のデータであってもよい。予測部７４は、第１データを特定した場合、複数の情報処理装置２０のうち、第１データにアクセスすると予測される情報処理装置２０に対して、第１データを予め取得するように指示する。そして、指示を受けた情報処理装置２０は、第１データを取得するためのアクセス要求をアクセス制御部５２に与える。例えば、指示を受けた情報処理装置２０は、第２アクセス処理により第１データを取得してもよい。
【０１３３】
これにより、情報処理装置２０は、将来アクセスすると予測される第１データを予め取得することができる。これにより、情報処理装置２０は、第１データに対するデータ処理をより高速に実行することができる。
【０１３４】
また、予測部７４は、取得したパターンおよび予測モデルに基づき、複数の情報処理装置２０がアクセスすると予測される第２データを特定する。そして、予測部７４は、第２データを特定した場合、アクセス制御部５２に対して、第２データを記憶している記憶部よりも応答速度が速い他の記憶部に予め転送させる。
【０１３５】
例えば、アクセス制御部５２は、第２データにアクセスすると予測される情報処理装置２０に対して、特定した第２データを予め個別メモリ２４に転送するように指示する。そして、この場合、指示を受けた情報処理装置２０は、第２データを取得するために、第１アクセス処理によるアクセス要求をアクセス制御部５２に与える。これにより、情報処理装置２０は、将来アクセスすると予測される第２データを予め個別メモリ２４に転送することができる。
【０１３６】
また、例えば、共通記憶部３１が、第１共通メモリ３２と第２共通メモリ３４とを含む場合、第１共通メモリ３２に記憶されている第２データを、第２共通メモリ３４に転送してもよい。第２共通メモリ３４は、第１共通メモリ３２によりも応答速度が速い。
【０１３７】
このように、アクセス制御部５２は、将来アクセスすると予測される第２データを予め高速なメモリに記憶させておくことができる。これにより、情報処理装置２０は、第２データに対するデータ処理をより高速に実行することができる。
【０１３８】
（第３実施形態）
図１６は、第３実施形態に係る情報処理システム１０の構成を示す図である。第３実施形態に係る情報処理装置２０は、パフォーマンス収集部７６をさらに有する。
【０１３９】
パフォーマンス収集部７６は、処理回路２２によるプログラムの実行動作を解析して、解析結果を取得する。パフォーマンス収集部７６は、一例として、処理回路２２がプログラムを実行した場合に発生したキャッシュミスを検出する。また、パフォーマンス収集部７６は、一例として、処理回路２２がプログラムを実行した場合に発生した分岐処理を検出する。また、パフォーマンス収集部７６は、一例として、処理回路２２によるプロセッサの利用率を検出する。パフォーマンス収集部７６は、一例として、キャッシュミス率、ＣＰＵの分岐予測ミス率およびＣＰＵの利用率等を取得するパフォーマンスカウンタであってよい。そして、パフォーマンス収集部７６は、このような解析結果を、動作統計情報としてメモリ装置３０のメモリコントローラ４０に与える。
【０１４０】
複数の情報処理装置２０のそれぞれとメモリ装置３０とを接続する共有メモリインタフェースは、動作統計情報を、複数の情報処理装置２０のそれぞれから、メモリ装置３０のメモリコントローラ４０に転送する機能を有する。パフォーマンス収集部７６は、共有メモリインタフェースを介して、動作統計情報をメモリ装置３０のメモリコントローラ４０に与える。
【０１４１】
メモリコントローラ４０が有する解析部５４は、複数の情報処理装置２０のそれぞれが有するパフォーマンス収集部７６から、解析結果である動作統計情報を取得する。そして、解析部５４は、取得した解析結果にさらに基づき、共通記憶部３１における領域毎のアクセス方法を決定する。
【０１４２】
例えば、解析部５４は、キャッシュミスの単位時間当たりの頻度が予め定められた値より大きい領域を、局所性が所定値以下であると判断してもよい。また、例えば、解析部５４は、分岐処理の単位時間当たりの頻度が予め定められた値より大きい領域も、局所性が所定値以下であると判断してもよい。また、解析部５４は、プロセッサの利用率に基づき、処理回路２２が実行する処理の並列度を決定してもよい。例えば、解析部５４は、プロセッサの利用率が低い場合、並列度を高くするように変更してもよい。
【０１４３】
このように、処理回路２２によるプログラムの実行動作の解析結果を利用することにより、解析部５４は、複数の情報処理装置２０による共通記憶部３１に対するアクセスを、より精度良く解析することができる。従って、解析部５４は、より適切なアクセス方法を決定することができる。
【０１４４】
（第４実施形態）
図１７は、第４実施形態に係るメモリコントローラ４０の構成を示す図である。第４実施形態に係るメモリコントローラ４０は、履歴記憶部７８をさらに有する。履歴記憶部７８は、過去に設定されたアクセス方法の履歴を、複数の情報処理装置２０において実行されていたアプリケーションプログラムに対応させて記憶する。
【０１４５】
解析部５４は、複数の情報処理装置２０において実行されるアプリケーションプログラムを識別する情報を取得する。解析部５４は、アクセス方法を決定した場合、決定したアクセス方法を、複数の情報処理装置２０において実行されていたアプリケーションプログラムに対応させて履歴記憶部７８に記憶させる。
【０１４６】
さらに、解析部５４は、複数の情報処理装置２０において実行されるアプリケーションプログラムに対応する履歴が履歴記憶部７８に記憶されている場合、測定期間の経過前に、履歴に基づき、アクセス方法を決定する。
【０１４７】
図１８は、第４実施形態に係る情報処理システム１０の処理の手順の一例を示す図である。第４実施形態に係る情報処理システム１０は、図１８に示す流れで処理を実行する。
【０１４８】
まず、Ｓ１１において、複数の情報処理装置２０は、アプリケーションプログラムの実行を開始する。
【０１４９】
続いて、Ｓ４１において、メモリ装置３０の解析部５４は、複数の情報処理装置２０のそれぞれから、実行しているアプリケーションプログラムを識別する情報を取得する。そして、解析部５４は、過去に同一のアプリケーションプログラムを実行したか否かを判断する。過去に同一のアプリケーションプログラムを実行していない場合には（Ｓ４１のＮｏ）、解析部５４は、処理をＳ１２に進める。Ｓ１２に以降の処理は、図１１で示した処理と同一であるので、説明を省略する。
【０１５０】
過去に同一のアプリケーションプログラムを実行した場合には（Ｓ４１のＹｅｓ）、解析部５４は、処理をＳ４２に進める。Ｓ４２において、解析部５４は、履歴記憶部７８から、複数の情報処理装置２０において実行されるアプリケーションプログラムに対応するアクセス方法の履歴を取得する。
【０１５１】
Ｓ４２に続いて、Ｓ４３において、解析部５４は、取得した履歴に基づき、アクセス方法を決定する。例えば、解析部５４は、アクセス方法を、取得した履歴と同一の内容に決定する。そして、解析部５４は、Ｓ４３の処理を終えると、処理をＳ１６に進める。Ｓ１６の処理は、図１１で示した処理と同一であるので、説明を省略する。
【０１５２】
以上のように、第４実施形態に係る解析部５４は、複数の情報処理装置２０のそれぞれが実行しているアプリケーションプログラムが過去に実行されている場合、測定期間の経過前に、アクセス方法を決定することができる。これにより、情報処理装置２０は、アプリケーションプログラムの実行を開始してから短時間で適切なアクセス方法でメモリ装置３０にアクセスすることができる。
【０１５３】
（第５実施形態）
図１９は、第５実施形態に係るメモリコントローラ４０の構成を示す図である。第５実施形態に係る解析部５４は、判定モデル記憶部８２と、学習部８４と、決定部８６とを含む。第５実施形態において、解析部５４は、学習フェーズと、利用フェーズとが切り替えられる。
【０１５４】
判定モデル記憶部８２は、判定モデル（決定モデル）を記憶する。判定モデルは、動作情報から最適なアクセス方法を得るためのモデルである。判定モデルは、例えば、決定木などで実現されていてもよい。動作情報は、複数の情報処理装置２０がアプリケーションプログラムを実行した結果得られる情報であって、例えば、プロセッサの動作に関する統計情報、実行時間（例えば、複数のアプリケーションプログラムを同時に動作させる場合は、スループット）、システム全体の消費電力、共通記憶部３１に対するアクセスの統計情報、および、統計情報を解析した解析結果等を含む情報である。プロセッサの動作に関する統計情報とは、例えば、プロセッサのパフォーマンスカウンタ等で取得できる情報であり、具体的には、キャッシュミス率、ＣＰＵの分岐予測ミス率、ＣＰＵの利用率などである。
【０１５５】
学習部８４は、学習フェーズにおいて、判定モデルを訓練する。具体的には、学習フェーズにおいて、学習部８４は、複数の情報処理装置２０を動作させながら、設定部５６を制御してアクセス制御部５２に対するアクセス方法の設定および複数の情報処理装置２０に対するアクセス方法の指示を変更させて、判定モデルを訓練する。より具体的には、例えば、学習部８４は、設定部５６にアクセス方法の指示を変更させて、複数の情報処理装置２０に同一のアプリケーションプログラムを複数回実行させる。学習部８４は、アプリケーションプログラムのそれぞれの実行で得られる、共通記憶部３１に対するアクセスの統計情報、プロセッサの動作に関する統計情報、実行時間および／または消費電力のトレース情報等を収集する。そして、これらの収集した情報を入力として、学習部８４は、例えばアプリケーションプログラムの実行時間および消費電力等が最適となるように、判定モデルを訓練する。さらに、学習フェーズにおいて、学習部８４は、複数の情報処理装置２０に実行させるアプリケーションプログラムを変更して、判定モデルを訓練する。また、学習フェーズにおいて、学習部８４は、複数の情報処理装置２０が複数のアプリケーションプログラムを同時に実行する場合には、これらの組み合わせも変更して判定モデルを訓練する。
【０１５６】
利用フェーズにおいて、決定部８６は、複数の情報処理装置２０を動作させて動作情報を取得する。そして、決定部８６は、取得した動作情報および訓練済みの判定モデルに基づき、アクセス方法を決定する。決定部８６は、決定したアクセス方法を設定部５６に与える。
【０１５７】
以上のように第５実施形態に係る解析部５４は、予め訓練をした判定モデルを用いて、アクセス方法を決定する。これにより、解析部５４によれば、より適切なアクセス方法を決定することができる。
【０１５８】
（第６実施形態）
図２０は、第６実施形態に係る情報処理システム１０の処理の一例を示す図である。解析部５４は、複数の情報処理装置２０に対して指示する使用容量に基づき、複数の情報処理装置２０のうちの何れか２以上の対象の情報処理装置２０において実行されているアプリケーションプログラムを、複数の情報処理装置２０のうちの１つである第１情報処理装置２０−１により実行させることが可能か否かを判断する。
【０１５９】
例えば、図２０の（Ａ）に示すように、第１情報処理装置２０−１および第２情報処理装置２０−２に対して、個別メモリ２４の使用容量が指示されている。第１情報処理装置２０−１は、アプリケーションプログラムとして“Ａ”を実行している。第２情報処理装置２０−２は、アプリケーションプログラムとして“Ｂ”を実行している。また、設定部５６は、第１情報処理装置２０−１に対して個別メモリ２４の使用容量として“ａ”を指示する。また、設定部５６は、第２情報処理装置２０−２に対して個別メモリ２４の使用容量として“ｂ”を指示する。
【０１６０】
解析部５４は、第１情報処理装置２０−１が有する個別メモリ２４の空き容量が、第２情報処理装置２０−２に指示した使用容量より大きいか否かを比較する。第１情報処理装置２０−１が有する個別メモリ２４の空き容量が、第２情報処理装置２０−２に指示した使用容量より大きい場合、解析部５４は、第１情報処理装置２０−１が、第１情報処理装置２０−１および第２情報処理装置２０−２の両者で実行されているアプリケーションプログラムを実行可能であると判断する。
【０１６１】
可能と判断した場合、設定部５６は、第１情報処理装置２０−１に対して、２以上の対象の情報処理装置２０に対して指示する使用容量の合計量を使用容量として指示する。これともに、設定部５６は、第１情報処理装置２０−１に、２以上の対象の情報処理装置２０において実行されていたプログラムの実行の開始を指示する。さらに、設定部５６は、２以上の対象の情報処理装置２０のうち第１情報処理装置２０−１ではない情報処理装置２０に、プログラムの実行を停止して省電力状態に移行させる指示をする。そして、第１情報処理装置２０−１ではない情報処理装置２０は、処理回路２２と個別メモリ２４を電源オフあるいはローパワーモード等の省電力状態にする。これにより、情報処理システム１０は、全体で必要な消費電力を第１情報処理装置２０−１を動作させるための電力だけにして、システム全体で消費電力を削減することができる。
【０１６２】
例えば、図２０の（Ｂ）に示すように、設定部５６は、第１情報処理装置２０−１に対し指示する使用容量と第２情報処理装置２０−２に対して指示する使用容量の合計である“ａ＋ｂ”を指示する。これとともに、設定部５６は、第１情報処理装置２０−１に、第１情報処理装置２０−１で実行されていたアプリケーションプログラムである“Ａ”と、第２情報処理装置２０−２で実行されていたアプリケーションプログラムである“Ｂ”との実行開始を指示する。さらに、設定部５６は、第２情報処理装置２０−２に、アプリケーションプログラムであるＢの実行停止を指示する。
【０１６３】
このような処理をすることにより、第６実施形態に係るメモリ装置３０は、一部の情報処理装置２０によるアプリケーションプログラムの実行を停止させることができる。これにより、アプリケーションプログラムの実行を停止した情報処理装置２０は、個別メモリ２４に投入していた電源を停止したり、セルフリフレッシュ状態等にしたりすることができる。従って、第６実施形態に係るメモリ装置３０は、消費電力をより小さくすることができる。
【０１６４】
なお、解析部５４は、２以上の情報処理装置２０を第１情報処理装置２０−１として選択することが可能な場合には、さらにハイパースレッディング等による仮想プロセッサの数が多い処理回路２２を有する情報処理装置２０を第１情報処理装置２０−１と選択してもよい。これにより、解析部５４は、アクセスレイテンシの小さいメモリに対してデータの書き込みおよび読み出しをする場合であっても、処理の並列度を高くして、高速に処理を実行させることができる。
【０１６５】
（第７実施形態）
図２１は、第７実施形態に係るメモリコントローラ４０の構成を示す図である。第７実施形態に係るメモリコントローラ４０は、ウェアレベリング管理部８８をさらに有する。
【０１６６】
ウェアレベリング管理部８８は、共通記憶部３１における、書き換え回数が予め定められた値以上となっている記憶領域を管理する。例えば、ウェアレベリング管理部８８は、共通記憶部３１に対する書き込み処理を監視し、記憶領域毎の書き換え回数をカウントする。
【０１６７】
アクセス制御部５２は、ウェアレベリング管理部８８から記憶領域毎の書き換え回数を取得する。そして、アクセス制御部５２は、書き換え回数が予め定められた値以上となっている記憶領域に対してデータの書き込みおよび読み出しをする場合には、設定されたアクセス方法に関わらず、第１アクセス処理を実行してもよい。第１アクセス処理を実行した場合、アクセス制御部５２は、局所性の高い書き込みをしないので、書き換え回数が局所的に増加しない。従って、メモリ装置３０は、書き換え回数が予め定められた値以上となっている記憶領域の全体に対して平均的にデータを書き込むことができ、その寿命を延ばすことができる。
【０１６８】
また、設定部５６は、領域毎にアクセス方法を判定する場合、寿命を延ばす処理をする領域か、寿命を延ばす処理をしなくてよい領域かを判断してもよい。例えば、設定部５６は、領域の書き換え回数に基づき、寿命を延ばす処理をする領域か否かを判断してもよい。そして、設定部５６は、寿命を延ばす処理をする領域に対するアクセス方法として、第１アクセス処理を設定する。これにより、メモリ装置３０は、寿命を延ばす処理をする領域の全体に対して平均的にデータを書き込むことができ、その領域の寿命を延ばすことができる。
【０１６９】
以上、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、請求の範囲に記載された発明とその均等の範囲に含まれる。
【０１７０】
（態様例１）
１または複数の情報処理装置に接続されたメモリ装置であって、
共通記憶部と、
前記１または複数の情報処理装置による前記共通記憶部に対するアクセスを解析して、前記共通記憶部に対する前記１または複数の情報処理装置によるアクセス方法を決定する解析部と、
決定された前記アクセス方法を前記１または複数の情報処理装置に対して指示する設定部と、
を備えるメモリ装置。
（態様例２）
前記１または複数の情報処理装置による前記共通記憶部に対するアクセス要求に応じて、前記共通記憶部に対するデータの書き込みおよびデータの読み出しを制御するアクセス制御部をさらに備え、
前記設定部は、決定された前記アクセス方法を前記アクセス制御部に設定し、
前記アクセス制御部は、設定された前記アクセス方法に従って前記共通記憶部に対するデータの書き込みおよびデータの読み出しをする
態様例１に記載のメモリ装置。
（態様例３）
前記１または複数の情報処理装置のそれぞれは、個別メモリを有し、
前記解析部は、前記アクセス方法として、前記共通記憶部から前記個別メモリに転送したデータに対して書き込みおよび読み出しをする第１アクセス処理、または、前記共通記憶部に記憶されたデータに対して直接書き込みおよび読み出しをする第２アクセス処理を決定し、
前記１または複数の情報処理装置のそれぞれは、
前記第１アクセス処理が指示された場合、前記アクセス制御部に前記共通記憶部から前記個別メモリにデータを転送させ、前記個別メモリに転送したデータに対して書き込みおよび読み出しをし、
前記第２アクセス処理が指示された場合、前記共通記憶部に記憶されたデータの書き込みおよび読み出しの要求を前記アクセス制御部に対して与える
態様例２に記載のメモリ装置。
（態様例４）
前記解析部は、前記アクセス方法として前記第１アクセス処理を決定した場合、前記個別メモリにおける使用容量をさらに決定し、
前記設定部は、前記使用容量を、前記１または複数の情報処理装置に対してさらに指示し、
前記１または複数の情報処理装置のそれぞれは、前記共通記憶部から転送したデータを、指示された前記使用容量の範囲内で前記個別メモリに記憶させる
態様例３に記載のメモリ装置。
（態様例５）
前記解析部は、前記アクセス方法として前記第１アクセス処理を決定した場合、前記個別メモリからデータを前記共通記憶部に退避させるための退避方法をさらに決定し、
前記設定部は、前記退避方法を、前記１または複数の情報処理装置に対してさらに指示し、
前記１または複数の情報処理装置のそれぞれは、前記共通記憶部から転送したデータを、指示された前記退避方法で前記個別メモリから前記共通記憶部に退避させる
態様例３または４に記載のメモリ装置。
（態様例６）
前記共通記憶部は、第１共通メモリと、前記第１共通メモリよりも応答速度が速い第２共通メモリをさらに備え、
前記解析部は、前記アクセス方法として前記第２アクセス処理を決定する場合、低速処理または高速処理をさらに決定し、
前記アクセス制御部は、
前記アクセス方法として低速の前記第２アクセス処理が設定された場合、前記１または複数の情報処理装置のそれぞれからの前記第２アクセス処理によるアクセス要求に応じて、前記第１共通メモリに記憶されたデータに対して直接書き込みおよび読み出しをし、
前記アクセス方法として高速の前記第２アクセス処理が設定された場合、前記１または複数の情報処理装置のそれぞれからの前記第２アクセス処理によるアクセス要求に応じて、前記第１共通メモリから前記第２共通メモリに予め転送したデータに対して直接書き込みおよび読み出しをする
態様例３から５の何れか１項に記載のメモリ装置。
（態様例７）
前記設定部は、前記第２アクセス処理によりアクセス要求をする情報処理装置に対して、並列に実行する処理の数を表す並列度を指示し、
前記解析部は、前記高速処理に決定された場合、さらに、前記第１共通メモリにおけるアクセスされる可能性が高いサブ領域を検出し、
前記アクセス制御部は、前記第１共通メモリにおける前記サブ領域のデータを前記第２共通メモリに予め転送し、前記１または複数の情報処理装置のそれぞれからの前記サブ領域に対する前記第２アクセス処理によるアクセス要求に応じて、前記第２共通メモリに予め転送したデータに対して直接書き込みおよび読み出しをし、
前記アクセス制御部は、前記１または複数の情報処理装置のそれぞれからの前記サブ領域とは異なる領域に対する前記第２アクセス処理によるアクセス要求に応じて、前記第１共通メモリに対して直接書き込みおよび読み出しをし、
前記設定部は、前記第２共通メモリにデータの書き込みまたは読み出しをする情報処理装置に対して第１並列度を指示し、前記第１共通メモリにデータの書き込みまたは読み出しをする情報処理装置に対して前記第１並列度よりも高い第２並列度を指示する
態様例６に記載のメモリ装置。
（態様例８）
前記設定部は、前記第２アクセス処理によりアクセス要求をする情報処理装置に対して、並列に実行する処理の数を表す並列度を指示し、
前記解析部は、前記第２アクセス処理によりデータが書き込まれる領域のアクセスレイテンシに応じて前記並列度を決定する
態様例３から５の何れか１項に記載のメモリ装置。
（態様例９）
前記共通記憶部は、複数の領域に分割され、
前記解析部は、前記複数の領域のそれぞれに対する前記１または複数の情報処理装置によるアクセスを解析して、前記複数の領域のそれぞれに対する前記アクセス方法を決定し、
前記設定部は、前記複数の領域のそれぞれについて、決定された前記アクセス方法を前記アクセス制御部に設定するとともに、決定された前記アクセス方法を前記１または複数の情報処理装置に対して指示し、
前記１または複数の情報処理装置のそれぞれは、前記複数の領域のそれぞれに対して、指示された前記アクセス方法に従ってアクセスし、
前記アクセス制御部は、前記複数の領域のそれぞれに対して設定された前記アクセス方法に従って、対応する領域に対するデータの書き込みおよびデータの読み出しを制御する
態様例３に記載のメモリ装置。
（態様例１０）
前記解析部は、
前記複数の領域のそれぞれについて、アクセスの局所性が所定値より高いか否かを判断し、
アクセスの局所性が所定値より高い第１領域に対する前記アクセス方法を、前記第１アクセス処理に決定し、
アクセスの局所性が所定値以下である第２領域に対する前記アクセス方法を、前記第２アクセス処理に決定する
態様例９に記載のメモリ装置。
（態様例１１）
前記共通記憶部は、前記複数の領域のそれぞれを含む第１共通メモリと、前記第１共通メモリよりも応答速度が速い第２共通メモリをさらに備え、
前記解析部は、
前記アクセス方法が前記第２アクセス処理に決定された前記第２領域について、高速処理をする領域か、高速処理をしない領域かを決定し、
前記アクセス制御部は、
高速処理をする領域に対して前記第２アクセス処理によるアクセス要求を受けた場合、前記第１共通メモリから前記第２共通メモリに予め転送したデータに対して直接書き込みおよび読み出しをし、
高速処理をしない領域に対して前記第２アクセス処理によるアクセス要求を受けた場合、前記第１共通メモリに記憶されたデータに対して直接書き込みおよび読み出しをする
態様例１０に記載のメモリ装置。
（態様例１２）
前記解析部は、予め定められた数以上の情報処理装置からアクセスされた前記第２領域を、高速処理をする領域に決定し、前記予め定められた数未満の情報処理装置からアクセスされた前記第２領域を、高速処理をしない領域に決定する
態様例１１に記載のメモリ装置。
（態様例１３）
前記解析部は、前記アクセス方法が前記第１アクセス処理に決定された前記第１領域について、省電力化をする領域か、省電力化をしない領域かを決定し、
前記設定部は、
前記１または複数の情報処理装置に、省電力化をする領域に対する前記個別メモリにおける使用容量として第１値を指示し、省電力化をしない領域に対する前記使用容量として、前記第１値より大きい第２値を指示し、
前記１または複数の情報処理装置のそれぞれは、前記アクセス方法が前記第１アクセス処理に指示された前記第１領域について、前記共通記憶部から転送したデータを、指示された前記使用容量の範囲内で前記個別メモリに記憶させる
態様例１０から１２の何れか１項に記載のメモリ装置。
（態様例１４）
前記解析部は、単位時間当たりのアクセス数が予め定められた値以下の前記第１領域を、省電力化をする領域に決定し、単位時間当たりのアクセス数が前記予め定められた値より大きい前記第１領域を、省電力化をしない領域に決定する
態様例１３に記載のメモリ装置。
（態様例１５）
前記解析部は、前記アクセス方法が前記第１アクセス処理に決定された前記第１領域について、前記個別メモリからデータを前記共通記憶部に退避させるための退避方法をさらに決定し、
前記設定部は、それぞれの前記第１領域について決定した前記退避方法を、前記１または複数の情報処理装置に対してさらに指示し、
前記１または複数の情報処理装置のそれぞれは、前記共通記憶部のそれぞれの前記第１領域から転送したデータを、指示された前記退避方法で前記個別メモリから前記共通記憶部に退避させる
態様例１３または１４に記載のメモリ装置。
（態様例１６）
前記１または複数の情報処理装置による前記共通記憶部に対するアクセスのパターンを取得し、取得したアクセスのパターンに基づき、前記１または複数の情報処理装置がアクセスすると予測される第１データを特定する予測部をさらに備え、
前記予測部は、前記第１データを特定した場合、前記１または複数の情報処理装置のうち、前記第１データにアクセスすると予測される情報処理装置に対して、前記第１データを予め取得するように指示する
態様例３から１５の何れか１項に記載のメモリ装置。
（態様例１７）
前記１または複数の情報処理装置による前記共通記憶部に対するアクセスのパターンを取得し、取得したアクセスのパターンに基づき、前記１または複数の情報処理装置がアクセスすると予測される第２データを特定する予測部をさらに備え、
前記予測部は、前記第２データを特定した場合、前記アクセス制御部に対して、前記第２データを、前記第２データを記憶している記憶部よりも応答速度が速い他の記憶部に予め転送させる
態様例３から１５の何れか１項に記載のメモリ装置。
（態様例１８）
前記解析部は、
前記１または複数の情報処理装置から、プログラムの実行動作を解析した結果を取得し、
取得した前記結果にさらに基づき前記アクセス方法を決定する
態様例３から１７の何れか１項に記載のメモリ装置。
（態様例１９）
前記解析部は、
前記１または複数の情報処理装置においてプログラムの実行が開始された後予め定められた測定期間、前記共通記憶部に記憶されたデータに対して直接書き込みおよび読み出しをさせることにより、前記１または複数の情報処理装置による前記共通記憶部に対するアクセスを解析し、
前記測定期間を経過した後に、前記アクセス方法を決定する
態様例３から１８の何れか１項に記載のメモリ装置。
（態様例２０）
過去に決定された前記アクセス方法の履歴を、前記１または複数の情報処理装置において実行されていたプログラムに対応させて記憶する履歴記憶部をさらに備え、
前記解析部は、前記１または複数の情報処理装置において実行されるプログラムに対応する前記履歴が前記履歴記憶部に記憶されている場合、前記測定期間の経過前に、前記履歴に基づき、前記アクセス方法を決定する
態様例１９に記載のメモリ装置。
（態様例２１）
前記解析部は、
学習フェーズにおいて、前記１または複数の情報処理装置を動作させながら、前記アクセス方法を変更することにより、前記１または複数の情報処理装置がアプリケーションプログラムを実行した結果得られる動作情報から最適な前記アクセス方法を得るための判定モデルを訓練し、
利用フェーズにおいて、前記１または複数の情報処理装置を動作させて前記動作情報を取得し、取得した前記動作情報および前記判定モデルに基づき、前記アクセス方法を決定する
態様例３から１８の何れか１項に記載のメモリ装置。
（態様例２２）
前記解析部は、前記１または複数の情報処理装置に対して指示する前記使用容量に基づき、前記１または複数の情報処理装置のうちの何れか２以上の対象の情報処理装置において実行されているプログラムを、前記１または複数の情報処理装置のうちの１つである第１情報処理装置により実行させることが可能か否かを判断し、
可能と判断した場合、前記設定部は、
前記第１情報処理装置に対して、前記２以上の対象の情報処理装置に対して指示した前記使用容量の合計量を前記使用容量として指示するとともに、前記第１情報処理装置に前記２以上の対象の情報処理装置において実行されているプログラムの実行の開始を指示し、
前記２以上の対象の情報処理装置のうち前記第１情報処理装置ではない情報処理装置に、プログラムの実行を停止して省電力状態に移行させる指示をする
態様例４に記載のメモリ装置。
（態様例２３）
前記共通記憶部における書き換え回数が予め定められた値以上となっている記憶領域を管理するウェアレベリング管理部をさらに備え、
前記アクセス制御部は、前記書き換え回数が予め定められた値以上となっている記憶領域に対してデータの書き込みおよび読み出しをする場合には、設定された前記アクセス方法に関わらず、前記第１アクセス処理を実行する
態様例３から２２の何れか１項に記載のメモリ装置。
（態様例２４）
１または複数の情報処理装置に接続されたメモリ装置であって、
複数の領域に分割された共通記憶部と、
前記１または複数の情報処理装置による前記複数の領域のそれぞれに対するアクセスからメモリアクセスの統計情報を生成し、生成した前記統計情報を解析して前記複数の領域毎のメモリアクセス情報を取得する解析部と、
を備えるメモリ装置。
（態様例２５）
１または複数の情報処理装置と、
共通記憶部を有し、前記１または複数の情報処理装置のそれぞれとインタフェースにより接続されたメモリ装置と、
を備える情報処理システムであって、
前記インタフェースは、
前記１または複数の情報処理装置の動作統計情報を、前記１または複数の情報処理装置のそれぞれから前記メモリ装置へと転送し、
前記共通記憶部に対する前記１または複数の情報処理装置によるアクセス方法を示す情報を、前記メモリ装置から前記１または複数の情報処理装置のそれぞれに転送する
情報処理システム。
（態様例２６）
１または複数の情報処理装置と、
前記１または複数の情報処理装置とネットワークを介して接続されるメモリ装置と
を備え、
前記メモリ装置は、
共通記憶部と、
前記１または複数の情報処理装置による前記共通記憶部に対するアクセスを解析して、前記共通記憶部に対する前記１または複数の情報処理装置によるアクセス方法を決定する解析部と、
決定された前記アクセス方法を前記１または複数の情報処理装置に対して指示する設定部と、
を備える
情報処理システム。
（態様例２７）
１または複数の情報処理装置に接続されたメモリ装置を制御するメモリ制御方法であって、
前記メモリ装置は、
共通記憶部  を有し、
前記１または複数の情報処理装置による前記共通記憶部に対するアクセスを解析して、前記共通記憶部に対する前記１または複数の情報処理装置によるアクセス方法を決定するステップと、
決定された前記アクセス方法を前記１または複数の情報処理装置に対して指示するステップと、
を含む
メモリ制御方法。
【符号の説明】
【０１７１】
１０  情報処理システム
２０  情報処理装置
２０−１  第１情報処理装置
２０−２  第２情報処理装置
２２  処理回路
２４  個別メモリ
３０  メモリ装置
３１  共通記憶部
３２  第１共通メモリ
３４  第２共通メモリ
３６  第３共通メモリ
４０  メモリコントローラ
４２  ラック
５２  アクセス制御部
５４  解析部
５６  設定部
７２  予測モデル記憶部
７４  予測部
７６  パフォーマンス収集部
７８  履歴記憶部
８２  判定モデル記憶部
８４  学習部
８６  決定部
８８  ウェアレベリング管理部
【図１】
2018156573.tif 000003
【図２】
2018156573.tif 000004
【図３】
2018156573.tif 000005
【図４】
2018156573.tif 000006
【図５】
2018156573.tif 000007
【図６】
2018156573.tif 000008
【図７】
2018156573.tif 000009
【図８】
2018156573.tif 000010
【図９】
2018156573.tif 000011
【図１０】
2018156573.tif 000012
【図１１】
2018156573.tif 000013
【図１２】
2018156573.tif 000014
【図１３】
2018156573.tif 000015
【図１４】
2018156573.tif 000016
【図１５】
2018156573.tif 000017
【図１６】
2018156573.tif 000018
【図１７】
2018156573.tif 000019
【図１８】
2018156573.tif 000020
【図１９】
2018156573.tif 000021
【図２０】
2018156573.tif 000022
【図２１】
2018156573.tif 000023