(57)【要約】【課題】異なる情報処理システムの実行性能を推定する。【解決手段】推定装置は、取得部と、分割部と、推定部と、選択部と、出力部とを有する。取得部は、第１情報処理システムの動作情報の時系列データを取得する。分割部は、動作情報の時系列データを時間方向に分割することにより複数の部分情報を生成する。推定部は、複数の部分情報のそれぞれについて、第２情報処理システムが複数のメモリ制御方式のそれぞれにより実行した場合における、第１記憶部および不揮発記憶部に対するメモリアクセスの実行性能を推定する。選択部は、複数の部分情報のそれぞれについて、複数のメモリ制御方式のそれぞれについて推定した実行性能に基づき複数のメモリ制御方式のうちの何れか１つの最適メモリ制御方式を選択する。出力部は、複数の部分情報について選択された複数の最適メモリ制御方式についての複数の実行性能を合計した合計実行性能を出力する。【選択図】図２３
2019164630.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.
【発明の概要】
【発明が解決しようとする課題】
【００１２】
本発明が解決しようとする課題は、異なる情報処理システムの実行性能を推定することにある。
【課題を解決するための手段】
【００１３】
実施形態に係る推定装置は、第１情報処理システムのハードウェア構成を変更した第２情報処理システムがアプリケーションプログラムを実行した場合におけるメモリアクセスの実行性能を推定する。前記第２情報処理システムは、処理回路と、第１記憶部と、不揮発記憶部と、管理装置とを備える。前記管理装置は、前記処理回路から書き込みまたは読み出しの要求を受けたことに応じて、前記第１記憶部および前記不揮発記憶部にアクセスする。前記処理回路は、前記管理装置が前記第１記憶部および前記不揮発記憶部に対してアクセスするためのメモリ制御方式を管理する。前記推定装置は、取得部と、分割部と、推定部と、選択部と、出力部とを有する。前記取得部は、前記アプリケーションプログラムを実行した前記第１情報処理システムの動作情報の時系列データを取得する。前記分割部は、前記動作情報の時系列データを時間方向に分割することにより複数の部分情報を生成する。前記推定部は、前記複数の部分情報のそれぞれについて、前記第１情報処理システムが実行した処理を、前記第２情報処理システムが複数のメモリ制御方式のそれぞれにより実行した場合における、前記第１記憶部および前記不揮発記憶部に対するメモリアクセスの実行性能を推定する。前記選択部は、前記複数の部分情報のそれぞれについて、前記複数のメモリ制御方式のそれぞれについて推定した前記実行性能に基づき前記複数のメモリ制御方式のうちの何れか１つの最適メモリ制御方式を選択する。前記出力部は、前記複数の部分情報について選択された複数の最適メモリ制御方式についての複数の実行性能を合計した合計実行性能を出力する。
【図面の簡単な説明】
【００１４】
【図１】第１実施形態に係る情報処理システムの構成を示す図。
【図２】変換テーブルの一例を示す図。
【図３】第１アクセス処理および第２アクセス処理の内容を示す図。
【図４】動作情報の時系列データの一例を示す図。
【図５】メモリ制御方式の内容の第１例を示す図。
【図６】メモリ制御方式の内容の第２例を示す図。
【図７】第１実施形態に係る方式決定部の構成を推定モデル記憶部とともに示す図。
【図８】動作情報の波形図および選択されたメモリ制御方式の一例を示す図。
【図９】第１実施形態に係る方式決定部による処理の流れを示すフローチャート。
【図１０】実行時間の算出処理の第１例を説明するための図。
【図１１】実行時間の算出処理の第２例を説明するための図。
【図１２】第１アクセス処理に設定されたページの比率に対する実行性能を示す図。
【図１３】メモリ制御方式の選択方法の第１例を説明するための図。
【図１４】メモリ制御方式の選択方法の第２例を説明するための図。
【図１５】メモリ制御方式の選択方法の第３例を説明するための図。
【図１６】第２実施形態に係る方式決定部の構成を示す図。
【図１７】動作情報の波形図および選択されたメモリ制御方式の一例を示す図。
【図１８】第３実施形態に係る情報処理システムの構成を示す図。
【図１９】第３実施形態に係る方式決定部の構成を示す図。
【図２０】動作情報の変化、実行性能および決定されたメモリ制御方式を示す図。
【図２１】第１情報処理システムおよび第２情報処理システムを示す図。
【図２２】第４実施形態に係る推定システムの構成を示す図。
【図２３】第４実施形態に係る推定装置の構成を示す図。
【図２４】第４実施形態に係る推定装置による処理の流れを示すフローチャート。
【図２５】動作情報および部分情報毎に決定されたメモリ制御方式を示す図。
【図２６】アプリケーションプログラム毎の処理時間の推定値の一例を示す図。
【図２７】不揮発記憶部の種類毎の処理時間の推定値の一例を示す図。
【図２８】第５実施形態に係る推定装置の構成を示す図。
【図２９】オーバヘッド時間を考慮した場合の実行時間の一例を示す図。
【図３０】選択後のメモリ制御方式および修正後のメモリ制御方式を示す図。
【図３１】第６実施形態に係る方式決定部の構成を示す図。
【図３２】選択されたメモリ制御方式および修正後のメモリ制御方式を示す図。
【図３３】修正後のメモリ制御方式と動作情報の変化のパターンとの関係を示す図。
【図３４】情報処理装置のハードウェアブロック図。
【発明を実施するための形態】
【００１５】
以下、図面を参照しながら実施形態に係る情報処理システム１０について詳細に説明する。なお、以下、複数の実施形態について説明をするが、略同一の機能および構成を有するブロックに同一の符号を付け、第２実施形態以降においては重複する内容の説明を省略する。
【００１６】
（第１実施形態）
第１実施形態について説明する。
【００１７】
図１は、第１実施形態に係る情報処理システム１０の構成の一例を示す図である。情報処理システム１０は、第１記憶部１４と、不揮発記憶部１６と、情報処理装置１８とを備える。
【００１８】
第１記憶部１４は、情報処理装置１８による作業領域として用いられる主記憶装置（メインメモリ）である。第１記憶部１４は、例えば、電源の供給を停止すると記憶しているデータが消える揮発記憶部である。第１記憶部１４は、例えば、ＤＲＡＭである。なお、第１記憶部１４は、ＤＲＡＭと同様に高速アクセスが可能な、ＭＲＡＭ（Ｍａｇｎｅｔｏｒｅｓｉｓｔｉｖｅ  Ｒａｎｄｏｍ  Ａｃｃｅｓ  Ｍｅｍｏｒｙ）等の不揮発メモリであってもよい。
【００１９】
また、第１記憶部１４は、不揮発記憶部１６よりも書き込み可能回数が多い。例えば、第１記憶部１４は、書き込み可能回数を考慮した設計をしなくてよい程度（例えば、書き込み回数に制限が無いとして設計をすることが可能な程度）、書き込み可能回数が多い。
【００２０】
不揮発記憶部１６は、電源の供給を停止してもデータを記憶し続けるメモリである。不揮発記憶部１６は、第１記憶部１４とともに情報処理装置１８の主記憶装置として機能する。
【００２１】
不揮発記憶部１６は、例えば、ＤＲＡＭより大容量な大容量高速不揮発メモリ（Ｎｏｎ−ｖｏｌａｔｉｌｅ  Ｍｅｍｏｒｙ）を含む。不揮発記憶部１６は、例えば、ＭＲＡＭ、ＰＣＭ（Ｐｈａｓｅ  Ｃｈａｎｇｅ  Ｍｅｍｏｒｙ）、ＰＲＡＭ（Ｐｈａｓｅ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＰＣＲＡＭ（Ｐｈａｓｅ  Ｃｈａｎｇｅ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＲｅＲＡＭ（Ｒｅｓｉｓｔａｎｃｅ  Ｃｈａｎｇｅ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＦｅＲＡＭ（Ｆｅｒｒｏｅｌｅｃｔｒｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、３ＤＸＰｏｉｎｔまたはＭｅｍｒｉｓｔｏｒ等のいわゆるストレージクラスメモリ（ＳＣＭ）と呼ばれるメモリである。また、不揮発記憶部１６は、複数の半導体装置を１つの基板または筐体等に設けたモジュールであってもよい。
【００２２】
不揮発記憶部１６は、第１記憶部１４と比較して容量が大きい。不揮発記憶部１６の容量は、第１記憶部１４と同じであってもよい。また、不揮発記憶部１６は、第１記憶部１４のアクセス速度と同等または少し遅い程度である。また、不揮発記憶部１６は、待機電力がゼロか、または、第１記憶部１４と比較して待機電力が非常に少ない。不揮発記憶部１６は、一例として、アクセスレイテンシが１０ｎ秒から数μ秒程度の間のメモリである。
【００２３】
不揮発記憶部１６は、バイト単位等の小領域単位でデータを書き込みおよび読み出し可能である。従って、情報処理装置１８は、ロード命令またはストア命令により不揮発記憶部１６に対して直接アクセスが可能である。情報処理装置１８は、例えばキャッシュライン単位等で不揮発記憶部１６に直接アクセスすることが可能である。
【００２４】
不揮発記憶部１６は、複数のページを含む。ページは、情報処理装置１８が管理するデータ単位に対応する。ページは、例えば、オペレーティングシステムが管理する仮想記憶装置のページに対応する。ページは、例えば、４Ｋバイトであってよい。情報処理装置１８は、第１記憶部１４と不揮発記憶部１６の間ではページ単位でもデータ転送が可能である。
【００２５】
情報処理装置１８は、処理回路２０と、管理装置２２と、動作情報検出部２４と、推定モデル記憶部２６とを有する。
【００２６】
処理回路２０は、１または複数のプロセッサを有する。プロセッサは、例えば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）である。プロセッサは、１または複数のＣＰＵコアを含んでいてもよい。処理回路２０は、プログラムを実行して、データを処理する。処理回路２０は、プログラムの実行に応じて、第１記憶部１４または不揮発記憶部１６からデータを読み出したり、第１記憶部１４または不揮発記憶部１６にデータを書き込んだりする。
【００２７】
また、処理回路２０は、Ｌ１データキャッシュ、Ｌ１命令キャッシュ、Ｌ２キャッシュおよびＬ３キャッシュ等の階層的なキャッシュメモリを有する。処理回路２０は、このようなキャッシュメモリを用いて、第１記憶部１４または不揮発記憶部１６に記憶されているデータを一時的に記憶する。処理回路２０は、例えば、階層的なキャッシュにおける最下層のキャッシュ（ラストレベルキャッシュ）でキャッシュミスをした場合、キャッシュライン単位で第１記憶部１４または不揮発記憶部１６に対してアクセスして必要なデータを読み出したり書き込んだりする。
【００２８】
なお、処理回路２０は、データ処理を実行できれば、どのような回路であってもよい。例えば、処理回路２０は、ＧＰＧＰＵ（Ｇｅｎｅｒａｌ−ｐｕｒｐｏｓｅ  ｃｏｍｐｕｔｉｎｇ  ｏｎ  Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）で利用されるＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）であってもよい。また、処理回路２０は、ＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）等のアクセラレータであってもよい。
【００２９】
管理装置２２は、第１記憶部１４および不揮発記憶部１６に対する、処理回路２０によるデータの読み出しおよび書き込みを制御する。管理装置２２は、処理回路２０からの第１記憶部１４および不揮発記憶部１６に対するアクセス要求を処理する。すなわち、管理装置２２は、処理回路２０からの書込命令に応じて、データを第１記憶部１４または不揮発記憶部１６に書き込む。また、管理装置２２は、処理回路２０からの読出命令に応じて、データを第１記憶部１４または不揮発記憶部１６から読み出し、読み出したデータを処理回路２０に与える。
【００３０】
また、管理装置２２は、不揮発記憶部１６に対するウェアレベリング制御を実行する。より具体的には、管理装置２２は、不揮発記憶部１６における領域毎のデータの書き換え回数を管理する。そして、管理装置２２は、領域毎の書き換え回数に基づき、不揮発記憶部１６における全体の領域に平均的にデータが書き込まれるように、データの書き込み位置を制御する。
【００３１】
なお、管理装置２２は、処理回路２０と同一の半導体基板に形成された回路である。また、管理装置２２は、処理回路２０とは別体のハードウェアで構成されたメモリコントローラであってもよい。また、管理装置２２は、処理回路２０の一部のハードウェアとメモリコントローラとの組み合わせにより実現されてもよい。また、管理装置２２は、処理回路２０が実行するオペレーティングシステムの一部の機能により実現されてもよい。また、管理装置２２は、処理回路２０が実行するオペレーティングシステムの一部の機能により実現されてもよいし、オペレーティングシステムの一部の機能とメモリコントローラとの組み合わせにより実現されてもよい。
【００３２】
また、管理装置２２は、例えば、処理回路２０とは別体のハードウェアで構成されたメモリ管理ユニット（ＭＭＵ）であってもよい。また、管理装置２２は、処理回路２０の一部のハードウェアとメモリ管理ユニットとの組み合わせにより実現されてもよい。また、管理装置２２は、処理回路２０が実行するオペレーティングシステムの一部の機能とメモリ管理ユニットとの組み合わせにより実現されてもよい。
【００３３】
また、管理装置２２は、メモリコントローラと、ＭＭＵとの組み合わせにより実現されてもよい。また、管理装置２２は、処理回路２０の一部のハードウェアと、メモリコントローラと、メモリ管理ユニットとの組み合わせにより実現されてもよい。また、管理装置２２は、処理回路２０が実行するオペレーティングシステムの一部の機能と、メモリコントローラと、メモリ管理ユニットとの組み合わせにより実現されてもよい。
【００３４】
動作情報検出部２４は、処理回路２０および管理装置２２の少なくとも一方における動作情報を検出する。動作情報検出部２４は、処理回路２０内のハードウェア回路として実現されてもよい。また、動作情報検出部２４は、管理装置２２内の一部のハードウェア回路または一部の機能として実現されてもよい。また、動作情報検出部２４は、処理回路２０が実行するオペレーティングシステムの一部の機能として実現されてもよい。動作情報検出部２４は、いわゆるパフォーマンスカウンタと呼ばれる回路であってもよい。なお、動作情報については、図４を参照してさらに説明する。
【００３５】
推定モデル記憶部２６は、動作情報から、管理装置２２による第１記憶部１４および不揮発記憶部１６に対するメモリアクセスの実行性能を推定するための推定モデルを記憶する。なお、推定モデルについては、図１０および図１１を参照してさらに説明する。
【００３６】
処理回路２０は、データ処理部３２と、アクセス管理部３４と、方式決定部３６とを含む。データ処理部３２は、例えば、処理回路２０がアプリケーションプログラムを実行することにより実現される。また、方式決定部３６およびアクセス管理部３４は、例えば、処理回路２０がオペレーティングシステムの一部の機能を実行することにより実現される。
【００３７】
データ処理部３２は、アプリケーションプログラムに従った情報処理を実行する。さらに、データ処理部３２は、管理装置２２に対して、第１記憶部１４および不揮発記憶部１６に対するアクセス要求を与える。すなわち、データ処理部３２は、データを第１記憶部１４または不揮発記憶部１６に書き込む書込命令を管理装置２２に与える。また、データ処理部３２は、データを第１記憶部１４または不揮発記憶部１６から読み出す読出命令を管理装置２２に与える。
【００３８】
アクセス管理部３４は、管理装置２２が第１記憶部１４および不揮発記憶部１６に対してアクセスするためのメモリ制御方式を管理する。管理装置２２は、第１記憶部１４および不揮発記憶部１６に対して、複数のメモリ制御方式によりアクセスすることが可能である。アクセス管理部３４は、管理装置２２が複数のメモリ制御方式のうち何れのメモリ制御方式によりアクセスするかを管理する。
【００３９】
また、アクセス管理部３４は、変換テーブルを記憶する。変換テーブルは、アクセス要求をするそれぞれのページについて、要求アドレスと、第１記憶部１４または不揮発記憶部１６における対応するページ番号（物理アドレス）との対応関係を記憶する。さらに、変換テーブルは、処理回路２０がアクセス要求をするそれぞれのページについて、第１アクセス処理または第２アクセス処理の何れを実行するか示すアクセス方法を記憶する。
【００４０】
第１アクセス処理は、不揮発記憶部１６から第１記憶部１４に転送したデータに対して、書き込みおよび読み出しをする方法である。第２アクセス処理は、不揮発記憶部１６に記憶されるデータに対して直接書き込みおよび読み出しをする方法である。
【００４１】
そして、管理装置２２は、データ処理部３２がアクセス要求をしたページについて、変換テーブルに記憶されたアクセス方法により第１記憶部１４および不揮発記憶部１６にアクセスする。つまり、管理装置２２は、第１アクセス処理に設定されているページに対して書き込みまたは読み出しの要求を受けた場合、第１アクセス処理を実行する。また、管理装置２２は、第２アクセス処理に設定されているページに対して書き込みまたは読み出しの要求を受けた場合、第２アクセス処理を実行する。なお、変換テーブルの詳細については、図２を参照してさらに説明する。また、アクセス方法については、図３を参照してさらに説明する。
【００４２】
方式決定部３６は、動作情報検出部２４により検出された動作情報、および、推定モデル記憶部２６に記憶された推定モデルに基づき、複数のメモリ制御方式のうちの何れか１つのメモリ制御方式を決定する。そして、方式決定部３６は、管理装置２２が、決定したメモリ制御方式により第１記憶部１４および不揮発記憶部１６に対してアクセスするように、アクセス管理部３４に対して設定処理をする。メモリ制御方式については、図５および図６を参照してさらに説明する。
【００４３】
図２は、変換テーブルの一例を示す図である。変換テーブルは、処理回路２０がアクセス要求をするそれぞれのページについて、要求アドレス（例えば論理アドレス）と、第１記憶部１４または不揮発記憶部１６における対応するページ番号（物理アドレス）との対応関係を記憶する。すなわち、変換テーブルは、処理回路２０による要求アドレスに対応するデータが、第１記憶部１４または不揮発記憶部１６における何れのページに記憶されているのかを示すマッピング情報を記憶する。
【００４４】
例えば、図２の例では、変換テーブルにおけるページ番号の列に“Ｓｘｘｘｘ”と記述されたページは、不揮発記憶部１６におけるページ番号が“ｘｘｘｘ”のページを示す。例えば、図２の例では、ページ番号の列に“Ｄｘｘｘｘ”と記述されたページは、第１記憶部１４におけるページ番号が“ｘｘｘｘ”のページを示す。なお、ここでのｘは、任意の値である。
【００４５】
さらに、変換テーブルは、処理回路２０がアクセス要求をするそれぞれのページについて、第１アクセス処理または第２アクセス処理の何れを実行するか示すアクセス方法を記憶する。なお、変換テーブルは、図２に示すような構成に限らず、他の構成であってもよい。
【００４６】
図３は、第１アクセス処理および第２アクセス処理の内容を示す図である。管理装置２２は、第１アクセス処理に設定されている第１ページに対して書き込みまたは読み出しの要求を受けた場合、不揮発記憶部１６に対して、第１アクセス処理を実行する。
【００４７】
例えば、図３に示すように、第１アクセス処理において、管理装置２２は、不揮発記憶部１６における第１ページに記憶された全てのデータを転送して、第１記憶部１４に記憶させる。これにより、第１記憶部１４は、不揮発記憶部１６における第１ページに記憶されたデータのコピーを記憶することができる。続いて、第１アクセス処理において、管理装置２２は、第１記憶部１４に記憶されている、不揮発記憶部１６から転送されたデータに対して、読み出しおよび書き込みをする。例えば、管理装置２２は、不揮発記憶部１６から第１記憶部１４に転送されたデータに対して、ページより小さいサイズ（例えばプロセッサのキャッシュラインサイズ）でデータの読み出しおよび書き込みをする。そして、第１アクセス処理において、管理装置２２は、第１記憶部１４の空き容量が無くなり不揮発記憶部１６から第１記憶部１４にデータを転送できなくなった場合、および、第１記憶部１４に記憶させておくことが不要と判断された場合等において、第１記憶部１４に転送されたデータを、不揮発記憶部１６における第１ページに書き戻す。
【００４８】
なお、管理装置２２は、第１記憶部１４に転送されたデータを、第１ページ（同じ場所）以外に書き戻してもよい。例えば、管理装置２２は、第１アクセス処理において、不揮発記憶部１６から第１記憶部１４に転送されたデータを、何れの要求アドレスも対応付けられていない未使用ページに書き戻してよい。これにより、管理装置２２は、ページ毎の書き換え回数の隔たりを小さくし、特定のページの品質劣化を抑制することができる。
【００４９】
また、管理装置２２は、第２アクセス処理に設定されている第２ページに対して書き込みまたは読み出しの要求を受けた場合、不揮発記憶部１６に対して、第２アクセス処理を実行する。
【００５０】
例えば、図３に示すように、第２アクセス処理において、管理装置２２は、不揮発記憶部１６における第２ページに対して、直接読み出しおよび書き込みをする。例えば、管理装置２２は、ページより小さいサイズ（例えばプロセッサのキャッシュラインサイズ）でデータの読み出しおよび書き込みをする。
【００５１】
このように、管理装置２２は、２種類のアクセス方法により不揮発記憶部１６に対してアクセスする。例えば、メモリアクセスに局所性が高いアプリケーションを実行した場合、管理装置２２は、第１アクセス処理により不揮発記憶部１６に記憶されたページをアクセスする。これにより、管理装置２２は、メモリアクセスに局所性が高いアプリケーションを実行した場合、同一のページに対してより高速に処理をすることができる。
【００５２】
また、例えば、ランダムアクセスのようにメモリアクセスに局所性が低い処理を実行する場合、管理装置２２は、第２アクセス処理により不揮発記憶部１６に記憶されたページをアクセスする。これにより、管理装置２２は、局所性が低い処理を実行する場合、不揮発記憶部１６から第１記憶部１４への転送処理のオーバヘッドを無くして、効率良く処理をすることができる。このように、管理装置２２は、第１アクセス処理および第２アクセス処理の２種類のアクセス方法を用いることにより、処理の効率化を図ることができる。
【００５３】
図４は、動作情報の時系列データの一例を示す図である。動作情報検出部２４は、一定時間毎に、処理回路２０および管理装置２２の少なくとも一方における動作情報を検出する。動作情報は、例えば、ＯＳ（オペレーティングシステム）内のイベントの統計情報（ＯＳの挙動を表す情報）などのシステムレベルの情報であってもよい。
【００５４】
動作情報は、例えば、処理回路２０による主記憶装置に対する書き込み回数、処理回路２０による主記憶装置に対する読み出し回数、処理回路２０のプリフェッチ成功率、処理回路２０のキャッシュヒット数、処理回路２０のキャッシュミス数、またはＴＬＢミス回数等である。また、これらに限らず、動作情報は、例えば、処理回路２０または管理装置２２内での所定のイベントの回数、リタイアした命令数、コアクロック数およびキャッシュメモリにおける階層毎（Ｌ１キャッシュ、Ｌ２キャッシュ、Ｌ３キャッシュおよびラストレベルキャッシュ）のキャッシュヒット数／キャッシュミス数、ラストレベルキャッシュから追い出されたキャッシュライン数、各階層のキャッシュがキャッシュミスでストールするサイクル数等であってもよい。
【００５５】
動作情報検出部２４は、このような動作情報を検出した時刻に対応付けて出力する。方式決定部３６は、動作情報検出部２４により検出された動作情報を時刻に対応付けた時系列データとして取得する。
【００５６】
図５は、メモリ制御方式の内容の第１例を示す図である。管理装置２２は、複数のメモリ制御方式のうちの何れか１つのメモリ制御方式により第１記憶部１４および不揮発記憶部１６にアクセスする。
【００５７】
例えば、複数のメモリ制御方式のそれぞれは、複数のページのうちの第１アクセス処理に設定されるページの数と第２アクセス処理に設定されるページの数との比率により区別されてもよい。例えば、図５の例では、管理装置２２は、比率が異なる第１から第４の方式の何れかにより、第１記憶部１４および不揮発記憶部１６にアクセスする。
【００５８】
例えば、図５の第１方式は、１００％のページが第２アクセス処理に設定された方式である。また、図５の第２方式は、１０％のページが第１アクセス処理に設定され、９０％のページが第２アクセス処理に設定された方式である。また、図５の第３方式は、２０％のページが第１アクセス処理に設定され、８０％のページが第２アクセス処理に設定された方式である。また、図６の第４方式は、３０％のページが第１アクセス処理に設定され、７０％のページが第２アクセス処理に設定された方式である。なお、複数のメモリ制御方式は、図５よりもさらに細かい比率により区別されてもよい。
【００５９】
図６は、メモリ制御方式の内容の第２例を示す図である。また、複数のメモリ制御方式のそれぞれは、さらに、第１記憶部１４のメモリ使用量の上限値で区別されてもよい。例えば、図５の例では、管理装置２２は、比率およびメモリ使用量が異なる８つの方式の何れかにより、第１記憶部１４および不揮発記憶部１６にアクセスする。
【００６０】
例えば、図６の第１方式は、１００％のページが第２アクセス処理に設定され、第１記憶部１４のメモリ使用量に制限がない方式である。図６の第２方式は、１０％のページが第１アクセス処理に設定され、第１記憶部１４のメモリ使用量の上限値が不揮発記憶部１６の５％に設定された方式である。図６の第３方式は、１０％のページが第１アクセス処理に設定され、メモリ使用量の上限値が１０％に設定された方式である。
【００６１】
図６の第４方式は、２０％のページが第１アクセス処理に設定され、メモリ使用量の上限値が１０％に設定された方式である。図６の第５方式は、２０％のページが第１アクセス処理に設定され、メモリ使用量の上限値が２０％に設定された方式である。
【００６２】
図６の第６方式は、３０％のページが第１アクセス処理に設定され、メモリ使用量の上限値が１５％に設定された方式である。図６の第７方式は、３０％のページが第１アクセス処理に設定され、メモリ使用量の上限値が３０％に設定された方式である。なお、複数のメモリ制御方式は、比率および上限値がさらに細かく区別されていてもよい。
【００６３】
処理回路２０は、図５および図６に示したようなメモリ制御方式に限らず、他の方式を設定してもよい。また、例えば、情報処理システム１０は、主記憶装置として、第１記憶部１４および不揮発記憶部１６とは特性が異なる、第２記憶部を備えてもよい。このような場合、管理装置２２は、例えば、アクセス方法として、不揮発記憶部１６から第２記憶部にデータをコピーしてからアクセスさせるような第３アクセス処理をさらに実行してもよい。そして、管理装置２２は、複数のメモリ制御方式の中に、第１アクセス処理、第２アクセス処理および第３アクセス処理に設定されるページ数の比率等を設定する方式を含めてもよい。
【００６４】
図７は、第１実施形態に係る方式決定部３６の構成を推定モデル記憶部２６とともに示す図である。方式決定部３６は、タイミング発生部４２と、取得部４４と、推定部４６と、選択部４８と、設定部５０とを有する。
【００６５】
タイミング発生部４２は、メモリ制御方式の切り替えタイミングとなった時に、検出期間を開始する指示を取得部４４および設定部５０に与える。例えば、タイミング発生部４２は、一定時間毎に検出期間を開始する指示を取得部４４および設定部５０に与える。
【００６６】
取得部４４は、タイミング発生部４２から開始指示を受け取る。取得部４４は、開始指示を受け取ってから一定の期間（検出期間）における、処理回路２０および管理装置２２の少なくとも一方における動作情報を、動作情報検出部２４から取得する。
【００６７】
推定部４６は、取得部４４が取得した動作情報および推定モデル記憶部２６に記憶された推定モデルに基づき、管理装置２２が複数のメモリ制御方式のそれぞれにより動作する場合における、第１記憶部１４および不揮発記憶部１６に対するメモリアクセスの実行性能を推定する。推定部４６は、実行性能として、例えば、管理装置２２が検出期間において実行した処理を、管理装置２２が対応するメモリ制御方式で実行した場合における実行時間を推定する。また、推定部４６は、実行性能として、例えば、管理装置２２が検出期間において実行した処理を、管理装置２２が対応するメモリ制御方式で実行した場合における消費電力、または、不揮発記憶部１６の寿命減少量（摩耗度）を推定してもよい。
【００６８】
推定モデルは、動作情報から、複数のメモリ制御方式のそれぞれについての実行性能（例えば、実行時間、消費電力または寿命減少量）を算出するための、例えば演算式である。推定モデルは、例えば、決定木、線形回帰、ニューラルネットワークおよびサポートベクタマシン等であってもよい。なお、推定モデルについては、図１０および図１１を参照してさらに説明する。
【００６９】
選択部４８は、推定された複数のメモリ制御方式のそれぞれについての実行性能に基づき、複数のメモリ制御方式のうちの何れか１つのメモリ制御方式を選択する。例えば、選択部４８は、実行性能が最も小さいまたは最も大きいメモリ制御方式を選択する。また、例えば、選択部４８は、実行性能が予め定められた条件を満たすメモリ制御方式のうちの、実行性能が最も小さいまたは最も大きいメモリ制御方式を選択してもよい。メモリ制御方式の選択方法については、図１２から図１５を参照してさらに説明する。
【００７０】
設定部５０は、タイミング発生部４２から開始指示を受け取る。設定部５０は、開始指示を受け取ってから一定の期間（検出期間）において、管理装置２２が基準のメモリ制御方式により第１記憶部１４および不揮発記憶部１６にアクセスするようにアクセス管理部３４に対して設定処理をする。これにより、管理装置２２は、検出期間において、管理装置２２が基準のメモリ制御方式により第１記憶部１４および不揮発記憶部１６にアクセスすることができる。
【００７１】
例えば、設定部５０は、検出期間において、アクセスするページの全てのアクセス方法を第２アクセス処理に設定する。これにより、管理装置２２は、検出期間において、第２アクセス処理により第１記憶部１４および不揮発記憶部１６にアクセスすることができる。なお、設定部５０は、検出期間において、推定モデルにより実行性能を推定可能な動作情報が得られるメモリ制御方式に設定すればよい。もし、取得部４４が取得する動作情報が、メモリ制御方式の違いによる影響を受けない場合には、設定部５０は、検出期間において、何れのメモリ制御方式を設定してもよい。
【００７２】
検出期間を経過した後の期間において、設定部５０は、選択されたメモリ制御方式により管理装置２２が第１記憶部１４および不揮発記憶部１６にアクセスするように、アクセス管理部３４に対して設定処理をする。これにより、管理装置２２は、検出期間が経過した後において、選択されたメモリ制御方式により第１記憶部１４および不揮発記憶部１６にアクセスすることができる。
【００７３】
例えば、設定部５０は、変換テーブルにおける複数のページのそれぞれのアクセス方法を、選択されたメモリ制御方式に応じて第１アクセス処理または第２アクセス処理に設定する。例えば、複数のメモリ制御方式が、第１アクセス処理に設定されるページの数と第２アクセス処理に設定されるページの数との比率で区別される場合、設定部５０は、変換テーブルにおける複数のページのそれぞれのアクセス方法を、選択されたメモリ制御方式に示された比率に応じて第１アクセス処理または第２アクセス処理に設定する。
【００７４】
なお、設定部５０は、変換テーブルに管理されている全てのページのアクセス方法を変更するのではなく、直近（例えば、所定期間前まで）にアクセスしたページおよび検出期間後に新たにアクセスするページについてのアクセス方法を変更してもよい。また、設定部５０は、検出期間後に新たにアクセスするページに対してアクセス方法を変更してもよい。
【００７５】
また、設定部５０は、処理回路２０により管理されるＴＬＢ（Ｔｒａｎｓｌａｔｉｏｎ  Ｌｏｏｋａｓｉｄｅ  Ｂｕｆｆｅｒ）と呼ばれる仮想管理機構により管理されるページのアクセス方法を変更してもよい。ＴＬＢは、仮想アドレスから物理アドレスへアドレス変換を行うために、ページにおける要求アドレス（論理アドレス）と物理アドレスとの対応を示す対応関係情報を記憶する。しかし、ＴＬＢは、保有しているエントリが限られているので、対応関係情報を必要に応じて入れ替える。ＴＬＢは、例えば、直近において高い頻度でアクセスされるページについての対応関係情報を優先して記憶する。
【００７６】
さらに、複数のメモリ制御方式が、第１記憶部１４のメモリ使用量の上限値で区別される場合、設定部５０は、選択されたメモリ制御方式に示された上限値を、第１記憶部１４のメモリ使用量として設定する。第１記憶部１４のメモリ使用量の上限値が設定された場合、管理装置２２は、第１記憶部１４にコピーしたデータ量が上限値を超えないように、第１記憶部１４および不揮発記憶部１６に対してアクセス制御をする。具体的には、管理装置２２は、第１アクセス処理に設定された第１ページにアクセスするために第１ページのデータを不揮発記憶部１６から第１記憶部１４に転送すると、第１記憶部１４のメモリ使用量が上限値を超えてしまう場合には、第１記憶部１４に記憶された何れかのページのデータを不揮発記憶部１６に書き戻した後に、第１ページのデータを不揮発記憶部１６から第１記憶部１４に転送する。上限値を超えないようにするためのアクセス制御は、処理回路２０（アクセス管理部３４など）がおこなってもよい。
【００７７】
図８は、動作情報の波形図および選択されたメモリ制御方式の一例を示す図である。図８に示すように、方式決定部３６は、一定期間毎に、メモリ制御方式の選択および切り替えを行う。方式決定部３６は、メモリ制御方式の切り替えタイミングの直前に検出期間を設定し、検出期間において動作情報を取得する。そして、方式決定部３６は、取得した動作情報に基づきメモリ制御方式を決定し、新たなメモリ制御方式に切り替える。
【００７８】
なお、図８の例では、方式決定部３６は、検出期間において、基準のメモリ制御方式に設定している。しかし、方式決定部３６は、メモリ制御方式の違いが、取得する動作情報に影響を与えない場合には、検出期間において、直前のメモリ制御方式を継続させてもよい。
【００７９】
図９は、第１実施形態に係る方式決定部３６による処理の流れを示すフローチャートである。第１実施形態に係る方式決定部３６は、図９に示すフローチャートに従って処理を実行する。
【００８０】
まず、Ｓ１１において、方式決定部３６は、動作情報の取得タイミングとなったか否かを判断する。取得タイミングとなっていない場合（Ｓ１１のＮｏ）、方式決定部３６は、処理をＳ１１で待機する。取得タイミングとなった場合（Ｓ１１のＹｅｓ）、方式決定部３６は、処理をＳ１２に進める。
【００８１】
Ｓ１２において、方式決定部３６は、管理装置２２が基準のメモリ制御方式により第１記憶部１４および不揮発記憶部１６にアクセスするように、アクセス管理部３４に対して設定処理をする。続いて、Ｓ１３において、方式決定部３６は、動作情報検出部２４から動作情報を取得する。続いて、Ｓ１４において、方式決定部３６は、検出期間が経過したか否かを判断する。検出期間が経過していない場合（Ｓ１４のＮｏ）、方式決定部３６は、処理をＳ１３に戻して、検出期間が経過するまで、動作情報の取得を継続する。検出期間が経過した場合（Ｓ１４のＹｅｓ）、方式決定部３６は、処理をＳ１５に進める。
【００８２】
Ｓ１５、Ｓ１６およびＳ１７のループ処理において、方式決定部３６は、推定モデルおよび検出期間における動作情報に基づき、複数のメモリ制御方式のそれぞれについての実行性能を推定する。全てのメモリ制御方式について実行性能を推定した場合、方式決定部３６は、処理をＳ１８に進める。
【００８３】
Ｓ１８において、方式決定部３６は、実行性能を推定した複数のメモリ制御方式の中から、最適メモリ制御方式を選択する。続いて、Ｓ１９において、方式決定部３６は、管理装置２２が、選択した最適メモリ制御方式により第１記憶部１４および不揮発記憶部１６にアクセスするように、アクセス管理部３４に対して設定処理をする。方式決定部３６は、Ｓ１９の処理を終了すると本フローを終了する。
【００８４】
図１０は、実行時間の算出処理の第１例を説明するための図である。実行性能として、実行時間を推定する場合、取得部４４は、検出期間におけるメモリアクセス回数、検出期間にアクセスしたページ数、および、実行時間の実測値を取得する。そして、推定部４６は、予め定められた推定モデル（例えば演算式）に、メモリアクセス回数、ページ数および実行時間の実測値を代入して、複数のメモリ制御方式のそれぞれについての実行時間の推定値を算出する。
【００８５】
例えば、１００％のページを第２アクセス処理に設定するメモリ制御方式により管理装置２２を動作させ、１００％のページを第１アクセス処理に設定するメモリ制御方式により管理装置２２を動作させた場合における実行時間を推定する場合、推定部４６は、下記の式（１）および式（２）に表される式を演算して、実行時間を算出する。
Ｔ１＝Ｔ２−Δｔ…（１）
Δｔ＝（ＮＡ×（ＬＳ−ＬＤ））−（ＮＰ×Ｔ）…（２）
【００８６】
式（１）において、Ｔ１は、１００％のページを第１アクセス処理に設定するメモリ制御方式により管理装置２２を動作させた場合における実行時間の推定値である。Ｔ２は、１００％のページを第２アクセス処理に設定するメモリ制御方式により管理装置２２を動作させた場合における実行時間の実測値である。
【００８７】
また、式（２）において、ＮＡは、メモリアクセス回数である。ＮＰは、アクセスしたページ数である。
【００８８】
また、式（２）において、ＬＤは、第１記憶部１４に対するメモリアクセスのレイテンシである。ＬＳは、不揮発記憶部１６に対するメモリアクセスのレイテンシである。また、Ｔは、１ページ分のデータを不揮発記憶部１６から第１記憶部１４に転送する転送時間である。ＬＤ、ＬＳおよびＴは、予め測定済みの値であり、推定モデルに定数として組み込まれる。
【００８９】
従って、例えば、推定モデル記憶部２６は、上述の式（１）および式（２）により表される演算式を推定モデルとして記憶する。推定部４６は、１００％のページを第２アクセス処理に設定するメモリ制御方式により管理装置２２を動作させた場合における、検出期間におけるメモリアクセス回数、ページ数および実行時間の実測値を取得する。そして、推定部４６は、上述の式（１）および式（２）により表される演算式と、検出期間におけるメモリアクセス回数、ページ数および実行時間の実測値とに基づき、１００％のページを第１アクセス処理に設定するメモリ制御方式により管理装置２２を動作させた場合の実行時間を推定する。
【００９０】
また、Ｘ％のページ（Ｘは、０より大きく１００より小さい値）を第１アクセス処理に設定するメモリ制御方式により管理装置２２を動作させた場合の実行時間を推定する場合、推定部４６は、次のような処理を行う。
【００９１】
まず、推定部４６は、１００％のページを第２アクセス処理に設定するメモリ制御方式により管理装置２２を動作させた場合における、検出期間におけるメモリアクセス回数、ページ数および実行時間の実測値を取得する。続いて、推定部４６は、検出期間にアクセスしたページの中から、アクセス数の多い上位のＸ％のページを選択する。推定部４６は、選択したＸ％のページのページ数を、式（２）におけるＮＰに代入する。
【００９２】
さらに、推定部４６は、選択したＸ％のページに対するメモリアクセス回数を算出する。推定部４６は、算出したＸ％のページに対するメモリアクセス回数を、式（２）におけるＮＡに代入する。そして、推定部４６は、上記の式（１）および式（２）に表される式を演算して、実行時間を算出する。これにより、推定部４６は、Ｘ％のページを第１アクセス処理に設定するメモリ制御方式により管理装置２２を動作させた場合の実行時間を推定することができる。
【００９３】
図１１は、実行時間の算出処理の第２例を説明するための図である。図１０に示した例は、アクセス数の多い上位Ｘ％のページ数（ＮＰ）に対する、上位Ｘ％のページへのメモリアクセス回数（ＮＡ）の割合が大きいため、Δｔが正の値となる場合を示している。しかし、図１１に示すように、アクセス数の多い上位Ｘ％のページ数（ＮＰ）に対する、上位Ｘ％のページ数へのメモリアクセス回数（ＮＡ）の割合が小さい場合、Δｔが負の値となる。つまり、メモリアクセスが多数のページに分散している場合、Δｔが負の値となる。この場合、ページ転送によるオーバヘッドが相対的に大きくなり、管理装置２２は、第１アクセス処理を実行しても、実行時間を短くすることができない。
【００９４】
従って、推定部４６は、第１アクセス処理に設定するページのパーセンテージ（つまり、Ｘ）を変えた複数のメモリ制御方式についての実行時間を推定する。そして、選択部４８は、複数のメモリ制御方式の中から、より適切な実行時間となるような１つのメモリ制御方式を選択する。
【００９５】
図１２は、第１アクセス処理に設定されたページの比率に対する実行性能を示す図である。情報処理システム１０は、複数のアプリケーションプログラムを同時に並行して実行することができる。
【００９６】
複数のアプリケーションプログラムを同時に実行する場合、アプリケーションプログラム毎に、メモリ制御方式に対する実行性能を表す特性が異なる。例えば、図１２の例では、第１のアプリケーションプログラムは、第１アクセス処理に設定されたページの比率が低いメモリ制御方式で動作させた場合でも、実行性能は高い。これは、第１のアプリケーションプログラムが局所性の高いメモリアクセス（同一の領域に繰り返して書き込みをするようなアクセス）を実行するためであると考えられる。
【００９７】
また、例えば、図１２の例では、第２のアプリケーションプログラムは、第１アクセス処理に設定されたページの比率が小さいと、実行性能が著しく低い。これは、第１のアプリケーションプログラムが局所性の低いメモリアクセス（多数の領域に分散して書き込みがされるようなアクセス）を実行するためであると考えられる。
【００９８】
従って、推定部４６は、複数のアプリケーションプログラムを実行する場合、それぞれのアプリケーションプログラムがアクセスする記憶領域毎に、実行性能を推定する。選択部４８は、それぞれのアプリケーションプログラムがアクセスする記憶領域毎に、メモリ制御方式を選択する。そして、設定部５０は、それぞれのアプリケーションプログラムがアクセスする記憶領域毎に、メモリ制御方式を設定する。
【００９９】
図１３は、メモリ制御方式の選択方法の第１例を説明するための図である。例えば、選択部４８は、実行性能が予め定められた条件を満たすメモリ制御方式のうち、実行性能が最も小さいまたは最も大きいメモリ制御方式を選択する。
【０１００】
例えば、選択部４８は、管理装置２２が基準のメモリ制御方式で動作した場合における実行性能の実測値を所定数倍して基準値を算出する。例えば、選択部４８は、１００％のページが第２アクセス処理に設定されたメモリ制御方式により管理装置２２が動作した場合における実行性能の実測値を所定数倍して基準値を算出する。
【０１０１】
そして、推定された実行性能が基準値より大きいことが条件である場合、選択部４８は、推定された実行性能が基準値より大きいメモリ制御方式のうちの、最小の実行性能のメモリ制御方式を選択する。あるいは、推定された実行性能が基準値より小さいことが条件である場合、選択部４８は、推定された実行性能が基準値より小さいメモリ制御方式のうちの、最大の実行性能のメモリ制御方式を選択する。これにより、選択部４８は、少なくとも基準の条件を満たしながら、最低のコストで管理装置２２を動作させることができる。
【０１０２】
図１４は、メモリ制御方式の選択方法の第２例を説明するための図である。また、選択部４８は、実行性能が予め定められた条件を満たす制御方式が存在しない場合には、実行性能が最も小さいまたは最も大きいメモリ制御方式を選択する。
【０１０３】
例えば、選択部４８は、管理装置２２が基準のメモリ制御方式で動作した場合における実行性能の実測値の所定数倍の値を基準値とする。そして、推定された実行性能が基準値より大きいことが条件である場合において、推定された実行性能が基準値より大きいメモリ制御方式が存在しない場合、選択部４８は、最大の実行性能のメモリ制御方式を選択する。あるいは、推定された実行性能が基準値より小さいことが条件である場合において、推定された実行性能が基準値より小さいメモリ制御方式が存在しない場合には、選択部４８は、最小の実行性能のメモリ制御方式を選択する。これにより、選択部４８は、最も実行性能の良いメモリ制御方式により管理装置２２を動作させることができる。
【０１０４】
図１５は、メモリ制御方式の選択方法の第３例を説明するための図である。例えば、選択部４８は、管理装置２２が、最もコストの高いメモリ制御方式で動作した場合における実行性能の推定値を所定割合低下させて基準値を算出してもよい。例えば、選択部４８は、１００％のページが第１アクセス処理に設定されたメモリ制御方式により管理装置２２が動作した場合における実行性能の推定値における所定割合低下した値を基準値として算出してもよい。
【０１０５】
例えば、選択部４８は、複数のページの全てを第１アクセス処理に設定するメモリ制御方式により管理装置２２が動作した場合における実行時間の推定値より所定割合長い基準値（基準時間）を算出する。そして、選択部４８は、推定した実行時間が基準値（基準時間）より短いメモリ制御方式のうちの、推定した実行時間が最も長いメモリ制御方式を選択してもよい。これにより、選択部４８は、基準のコストを超えない最も実行性能の良いメモリ制御方式を選択することができる。
【０１０６】
以上のように、第１実施形態に係る情報処理システム１０は、方式決定部３６が、動作情報に基づき適切なメモリ制御方式を選択し、選択したメモリ制御方式により管理装置２２に第１記憶部１４および不揮発記憶部１６にアクセスさせる。これにより、第１実施形態に係る情報処理システム１０によれば、例えば実行するアプリケーションプログラム毎に適切な実行性能が得られるように、管理装置２２を動作させることができる。
【０１０７】
（第２実施形態）
つぎに、第２実施形態について説明する。第２実施形態は、第１実施形態の変形例である。
【０１０８】
図１６は、第２実施形態に係る方式決定部３６の構成を推定モデル記憶部２６とともに示す図である。第２実施形態に係る方式決定部３６は、第１実施形態に係る方式決定部３６と比較して、タイミング発生部４２に代えて、変化検出部５２を有する。
【０１０９】
変化検出部５２は、情報処理システム１０の動作中の全期間において、動作情報を動作情報検出部２４から取得する。変化検出部５２は、取得した動作情報が所定の変化をした場合に、取得部４４に対して検出期間を開始する指示を与える。所定の変化とは、例えば、動作情報における特定のパラメータが一定時間内に所定値以上増加した場合または減少した場合である。
【０１１０】
取得部４４は、変化検出部５２から開始指示を受け取る。そして、取得部４４は、開始指示を受け取ってから一定の期間（検出期間）における、動作情報を動作情報検出部２４から取得する。
【０１１１】
図１７は、動作情報の波形図、動作情報の変化点および選択されたメモリ制御方式の一例を示す図である。第２実施形態において、方式決定部３６は、動作情報に所定の変化が検出される毎に、メモリ制御方式の選択および設定を行う。より具体的には、方式決定部３６は、所定の変化が検出された後に検出期間を設定し、検出期間において動作情報を取得する。続いて、方式決定部３６は、取得した動作情報に基づきメモリ制御方式を選択する。そして、方式決定部３６は、選択したメモリ制御方式により管理装置２２が第１記憶部１４および不揮発記憶部１６にアクセスするように、アクセス管理部３４に対して設定処理をする。
【０１１２】
変化検出部５２が取得する動作情報と取得部４４が取得する動作情報とは、同一であっても異なってもよい。変化検出部５２が取得する動作情報と取得部４４が取得する動作情報とが同一であり、且つ、検出期間において基準のメモリ制御方式に切り換えない場合、方式決定部３６は、所定の変化を検出した時点までに取得している動作情報を用いて、メモリ制御方式を選択してもよい。これにより、方式決定部３６は、検出期間を設定せずに、メモリ制御方式の切り換えをすることができる。
【０１１３】
また、変化検出部５２が取得する動作情報と取得部４４が取得する動作情報とが異なる場合において、動作情報検出部２４は、制約により、変化検出部５２が取得する動作情報と取得部４４が取得する動作情報とを同時に出力することができない場合がある。このような場合、変化検出部５２は、情報処理システム１０の動作中において、変化点を検出するために必要な動作情報を動作情報検出部２４に出力させる。続いて、変化検出部５２は、所定の変化を検出した場合、動作情報検出部２４に切り換え指示を与え、メモリ制御方式を選択するために必要な動作情報を動作情報検出部２４に出力させる。そして、変化検出部５２は、検出期間が経過した後、動作情報検出部２４に切り換え指示を与え、変化点を検出するために必要な動作情報を動作情報検出部２４に出力させる。
【０１１４】
変化検出部５２は、例えば、プリフェッチ成功率が一定期間内に所定値以上増加または減少する点を、所定の変化が生じた点として検出してもよい。プリフェッチ成功率とは、プリフェッチのための先読みアルゴリズムが、アプリケーションプログラムにどの程度適合しているかを表す値である。具体的には、第１記憶部１４または不揮発記憶部１６からラストレベルキャッシュ（例えば、Ｌ３）へロードされたデータ総量（総メモリアクセス量）を、Ｍとする。プリフェッチにより、アプリケーションプログラムによる実際の使用前にラストレベルキャッシュへロードされたデータ量をＰとする。プリフェッチ成功率は、Ｍに対するＰの割合である。
【０１１５】
なお、変化検出部５２は、プリフェッチ成功率に限らず、各種キャッシュミス率（Ｌ１キャッシュミス率、Ｌ２キャッシュミス率、Ｌ３キャッシュミス率またはラストレベルキャッシュミス率）等に所定の変化が生じたか否かを判断してもよい。
【０１１６】
以上のように、第２実施形態に係る情報処理システム１０は、方式決定部３６が、動作情報の変化点においてメモリ制御方式を切り換える。これにより、第２実施形態に係る情報処理システム１０によれば、適切な位置でメモリ制御方式を切り換えて、適切な実行性能が得られるように管理装置２２を動作させることができる。
【０１１７】
（第３実施形態）
つぎに、第３実施形態について説明する。第３実施形態は、第２実施形態の変形例である。
【０１１８】
図１８は、第３実施形態に係る情報処理システム１０の構成を示す図である。第３実施形態に係る情報処理装置１８は、第２実施形態に係る情報処理装置１８と比較して、結果記憶部６２と、決定モデル記憶部６４とをさらに有する。
【０１１９】
結果記憶部６２は、過去の動作情報の変化内容を表す変化情報を記憶する。さらに、結果記憶部６２は、過去に選択されたメモリ制御方式を記憶する。結果記憶部６２は、動作情報の変化内容と選択されたメモリ制御方式とを時系列に対応付けて記憶する。
【０１２０】
決定モデル記憶部６４は、動作情報の変化内容から、直接、メモリ制御方式を決定するための決定モデルを記憶する。決定モデルは、方式決定部３６により生成されて、決定モデル記憶部６４に書き込まれる。
【０１２１】
図１９は、第３実施形態に係る方式決定部３６の構成を推定モデル記憶部２６、結果記憶部６２および決定モデル記憶部６４とともに示す図である。第３実施形態に係る情報処理装置１８は、第２実施形態に係る方式決定部３６と比較して、学習部６８と、決定部７０と、モード設定部７２とをさらに有する。
【０１２２】
変化検出部５２は、検出した動作情報の変化内容を表す変化情報を結果記憶部６２に書き込む。例えば、変化検出部５２は、所定の変化を検出したそれぞれの時点における、動作情報の変化の方向（例えば立ち上がりまたは立ち下り）および変化の大きさを表す変化情報を結果記憶部６２に書き込む。
【０１２３】
また、選択部４８は、所定の変化を検出したことにより選択したメモリ制御方式を結果記憶部６２に書き込む。結果記憶部６２は、動作情報の変化内容を表す変化情報と選択されたメモリ制御方式とを対応付けて記憶する。
【０１２４】
学習部６８は、結果記憶部６２に記憶された、動作情報の変化内容を表す変化情報と選択されたメモリ制御方式との関係に基づき、動作情報の変化内容からメモリ制御方式を決定するための決定モデルを生成する。例えば、学習部６８は、学習処理またはクラスタリング処理等を実行することにより動作情報の複数の変化内容のそれぞれと、選択されたメモリ制御方式との対応関係を検出する。そして、学習部６８は、複数の変化内容のそれぞれと選択されたメモリ制御方式との対応関係に基づき、決定モデルを生成する。学習部６８は、生成した決定モデルを決定モデル記憶部６４に書き込む。
【０１２５】
決定部７０は、変化検出部５２が動作情報から所定の変化を検出した時点における、動作情報の変化の内容を表す変化情報を取得する。例えば、決定部７０は、変化情報として、変化検出部５２が動作情報から所定の変化を検出した時点における、動作情報の変化の方向および動作情報の変化の大きさを取得する。そして、決定部７０は、取得した変化情報と決定モデル記憶部６４に記憶された決定モデルとに基づき、メモリ制御方式を決定する。決定部７０は、決定したメモリ制御方式を設定部５０に通知する。
【０１２６】
モード設定部７２は、実行性能を推定してメモリ制御方式を選択する第１のモードと、実行性能を推定せずにメモリ制御方式を決定する第２のモードとを切り換える。モード設定部７２は、情報処理システム１０が動作を開始した段階においては、第１のモードに設定する。モード設定部７２は、結果記憶部６２に十分な変化情報および選択情報が蓄積されたことにより精度の良い決定モデルが生成された後に、第２のモードに設定する。また、モード設定部７２は、ユーザの指示により第１のモードと第２のモードとを切り換えてもよい。
【０１２７】
第１のモードに設定されている場合、取得部４４、推定部４６、選択部４８、設定部５０および変化検出部５２は、第２実施形態と同様に動作する。また、第１のモードに設定されている場合、決定部７０は、機能を停止している。
【０１２８】
第２のモードに設定されている場合、取得部４４、推定部４６および選択部４８は、機能を停止している。また、第２のモードに設定されている場合、変化検出部５２は、取得部４４への検出期間を開始する指示の出力を停止し、決定部７０へ変化情報を与える。第２のモードに設定されている場合、決定部７０は、取得した変化情報と決定モデル記憶部６４に記憶された決定モデルとに基づき、メモリ制御方式を決定する。そして、第２のモードに設定されている場合、設定部５０は、決定部７０により決定されたメモリ制御方式により管理装置２２が第１記憶部１４および不揮発記憶部１６にアクセスするように、アクセス管理部３４に対して設定処理をする。
【０１２９】
図２０は、動作情報の変化、実行性能および決定されたメモリ制御方式を示す図である。学習部６８が学習した結果、決定モデルは、動作情報が第１閾値より大きい変化で立ち上がった場合に第１方式を選択し、動作情報が第２閾値より大きい変化で立ち下がった場合および第１閾値以下の変化で立ち上がった場合に第２方式を選択するモデルとなったとする。
【０１３０】
このような決定モデルを用いると、図２０の時刻ｔ１のように、方式決定部３６は、動作情報が第１閾値より大きい変化で立ち上がった場合、第１方式に決定する。また、図２０の時刻ｔ２およびｔ４のように、方式決定部３６は、動作情報が第２閾値より大きい変化で立ち下がった場合、第２方式に決定する。また、図２０の時刻ｔ３のように、方式決定部３６は、動作情報が第１閾値以下の変化で立ち上がった場合、第２方式に決定する。
【０１３１】
以上のように、第３実施形態に係る情報処理システム１０は、方式決定部３６が、過去の動作情報の変化を表す変化情報と過去に選択されたメモリ制御方式を表す選択情報との関係に基づき、変化情報から直接メモリ制御方式を決定するための決定モデルを生成する。そして、方式決定部３６は、第２モードに設定された場合、動作情報の変化を表す変化情報から、メモリ制御方式を決定する。これにより、第３実施形態に係る情報処理システム１０によれば、実行性能を推定せずにメモリ制御方式を決定することができる。従って、情報処理システム１０によれば、少ない演算量でメモリ制御方式を高速に決定することができる。
【０１３２】
（第４実施形態）
つぎに、第４実施形態について説明する。
【０１３３】
図２１は、第１情報処理システム１１０および第２情報処理システム１２０を示す図である。例えば、社会インフラシステム等に用いられるエッジシステムは、長期に運用がされる。このようなエッジシステムは、高機能化および高精度化等を図るために、運用途中にアプリケーションプログラムが変更される場合がある。このような場合、設計者は、エッジシステムのハードウェア構成を再設計しなければならない。
【０１３４】
例えば、現在、現行アプリケーションプログラムを実行する第１情報処理システム１１０を運用しているとする。現行アプリケーションプログラムをバージョンアップして、新アプリケーションプログラムを実行しようとした場合、第１情報処理システム１１０のハードウェア能力が足りないと予測される。この場合、設計者は、第１情報処理システム１１０のハードウェア構成を変更することにより、新アプリケーションプログラムを実行するために十分なハードウェア構成を有する第２情報処理システム１２０を設計しなければならない。
【０１３５】
例えば、第１情報処理システム１１０は、情報処理装置１８と、第１記憶部１４とを備える。設計者は、このような構成の第１情報処理システム１１０に、さらに、主記憶装置として不揮発記憶部１６を加えた第２情報処理システム１２０を設計する。第２情報処理システム１２０は、主記憶装置の容量が増えることにより、二次記憶装置へのデータの退避が少なくなったり、あるいは、データが不揮発記憶部１６上に保存されるようになるため二次記憶装置が不要になりデータの移動が削減されるため、より短い実行時間で処理を完了させることができる。
【０１３６】
ここで、設計者は、第２情報処理システム１２０がどの程度の仕様の不揮発記憶部１６を備えればよいかを判断しなければならない。例えば、第２情報処理システム１２０は、高速な不揮発記憶部１６を備えれば、高速に動作することはできるが、コストは高くなる。反対に、第２情報処理システム１２０は、低速な不揮発記憶部１６を備えれば、コストは低いが、高速に動作することはできない。従って、設計者は、新アプリケーションプログラムを実行した場合の実行性能を考慮しながら、第２情報処理システム１２０を設計しなければならない。
【０１３７】
しかし、第２情報処理システム１２０を実際に製造して実行性能を測定した場合、第２情報処理システム１２０の設計時間が長くなり、設計コストが高くなってしまう。
【０１３８】
図２２は、第４実施形態に係る推定システム１３０の構成を示す図である。推定システム１３０は、第１情報処理システム１１０と、推定装置１４０とを備える。第１情報処理システム１１０は、第２情報処理システム１２０により実行される予定のアプリケーションプログラムを実行する。
【０１３９】
推定装置１４０は、第２情報処理システム１２０がアプリケーションプログラムを実行した場合におけるメモリアクセスの実行性能を推定する。第２情報処理システム１２０は、第１情報処理システム１１０のハードウェア構成を変更したシステムである。例えば、第２情報処理システム１２０は、情報処理装置１８と第１記憶部１４とを備える第１情報処理システム１１０に、不揮発記憶部１６を加えた構成である。第２情報処理システム１２０は、第１実施形態において説明した情報処理システム１０と同一の構成である。推定装置１４０は、通常のコンピュータ等であってもよい。
【０１４０】
推定装置１４０は、アプリケーションプログラムを実行した第１情報処理システム１１０の動作情報の時系列データを取得する。そして、推定装置１４０は、取得した動作情報の時系列データに基づき、第２情報処理システム１２０がアプリケーションプログラムを実行した場合における、第１記憶部１４および不揮発記憶部１６に対するメモリアクセスの実行性能を推定して出力する。
【０１４１】
図２３は、第４実施形態に係る推定装置１４０の構成を示す図である。推定装置１４０は、取得部４４と、動作情報記憶部１４２と、分割部１４４と、推定モデル記憶部２６と、推定部４６と、選択部４８と、出力部１４６とを備える。
【０１４２】
取得部４４は、アプリケーションプログラムを実行した第１情報処理システム１１０の動作情報の時系列データを取得する。例えば、取得部４４は、アプリケーションプログラムの全実行期間の動作情報の時系列データを取得する。取得部４４は、取得した動作情報の時系列データを動作情報記憶部１４２に書き込む。動作情報記憶部１４２は、取得部４４により取得された動作情報の時系列データを記憶する。
【０１４３】
分割部１４４は、動作情報記憶部１４２に記憶された動作情報の時系列データを時間方向に分割することにより複数の部分情報を生成する。分割部１４４は、例えば、動作情報の時系列データを一定時間毎に区切って複数の部分情報を生成する。また、分割部１４４は、動作情報の時系列データを不均等な間隔毎に区切って複数の部分情報を生成してもよい。また、分割部１４４は、第２実施形態と同様に、動作情報の時系列データから動作情報の変化点を検出し、変化点において動作情報の時系列データを区切って複数の部分情報を生成してもよい。
【０１４４】
推定モデル記憶部２６は、動作情報から、第１記憶部１４および不揮発記憶部１６に対するメモリアクセスの実行性能を推定するための推定モデルを記憶する。推定モデルは、第１実施形態において説明した推定モデルと同一である。
【０１４５】
推定部４６は、複数の部分情報のそれぞれについて、第１情報処理システム１１０が実行した処理を、第２情報処理システム１２０が複数のメモリ制御方式のそれぞれにより実行した場合における、第１記憶部１４および不揮発記憶部１６に対するメモリアクセスの実行性能を推定する。この場合において、推定部４６は、対応する部分情報および推定モデルに基づき、複数のメモリ制御方式のそれぞれについての実行性能を推定する。
【０１４６】
例えば、推定部４６は、実行性能として、第１情報処理システム１１０が実行した処理を、第２情報処理システム１２０が対応するメモリ制御方式で実行した場合における実行時間を推定する。また、推定部４６は、実行性能として、第１情報処理システム１１０が実行した処理を、第２情報処理システム１２０が対応するメモリ制御方式で実行した場合における消費電力または寿命減少量（摩耗度）を推定してもよい。１つの部分情報に対する推定部４６による推定処理は、第１実施形態において説明した推定処理と同一である。
【０１４７】
選択部４８は、複数の部分情報のそれぞれについて、推定された複数のメモリ制御方式のそれぞれについての実行性能に基づき複数のメモリ制御方式のうちの何れか１つの最適メモリ制御方式を選択する。１つの部分情報についての選択部４８による選択処理は、第１実施形態において説明した選択処理と同一である。
【０１４８】
出力部１４６は、選択部４８から、複数の部分情報のそれぞれについて選択された複数の最適メモリ制御方式を取得する。さらに、出力部１４６は、複数の部分情報のそれぞれについて選択された複数の最適メモリ制御方式のそれぞれについて、推定部４６から、対応する実行性能を取得する。
【０１４９】
出力部１４６は、複数の部分情報のそれぞれについて選択された複数の最適メモリ制御方式についての複数の実行性能を合計した合計実行性能を算出する。そして、出力部１４６は、算出した合計実行性能を出力する。例えば、出力部１４６は、算出した合計実行性能を表示装置等に表示させる。
【０１５０】
さらに、出力部１４６は、複数の部分情報のそれぞれについて選択された複数の最適メモリ制御方式の時系列の並びを示す方式選択情報を出力してもよい。さらに、出力部１４６は、メモリ制御方式の切り換え時刻も併せて出力してもよい。
【０１５１】
図２４は、第４実施形態に係る推定装置１４０による処理の流れを示すフローチャートである。第１実施形態に係る推定装置１４０は、図２４に示すフローチャートに従って処理を実行する。
【０１５２】
まず、Ｓ１１１において、推定装置１４０は、アプリケーションプログラムを実行した第１情報処理システム１１０の動作情報の時系列データを取得する。例えば、推定装置１４０は、アプリケーションプログラムの全実行期間の動作情報の時系列データを取得する。そして、推定装置１４０は、取得した動作情報の時系列データを記憶する。
【０１５３】
続いて、Ｓ１１２において、推定装置１４０は、記憶した動作情報の時系列データを時間方向に分割して複数の部分情報を生成する。続いて、推定装置１４０は、複数の部分情報のそれぞれ毎に、Ｓ１１３とＳ１１８との間のループ処理を実行する。
【０１５４】
Ｓ１１３とＳ１１８との間のループ処理内において、まず、Ｓ１１４、Ｓ１１５およびＳ１１６のサブループ処理を実行する。サブループ処理において、推定装置１４０は、対応する部分情報および推定モデルに基づき、複数のメモリ制御方式のそれぞれについての実行性能を推定する。全てのメモリ制御方式について実行性能を推定した場合、推定装置１４０は、処理をＳ１１７に進める。
【０１５５】
Ｓ１１７において、推定装置１４０は、実行性能を推定した複数のメモリ制御方式の中から、１つの最適メモリ制御方式を選択する。そして、複数の部分情報の全てについて、最適メモリ制御方式を選択した場合、推定装置１４０は、処理をＳ１１９に進める。
【０１５６】
Ｓ１１９において、推定装置１４０は、複数の部分情報について選択した複数の最適メモリ制御方式についての複数の実行性能を取得し、取得した複数の実行性能を合計した合計実行性能を算出する。そして、推定装置１４０は、算出した合計実行性能を出力する。さらに、推定装置１４０は、選択された複数の最適メモリ制御方式を時系列に並べた方式選択情報を出力してもよい。さらに、推定装置１４０は、メモリ制御方式の切り換え時刻も出力してもよい。推定装置１４０は、Ｓ１１９の処理を終えると、本フローを終了する。
【０１５７】
図２５は、動作情報、実行性能、および、部分情報毎に決定されたメモリ制御方式を示す図である。推定装置１４０は、動作情報の時系列データを時間方向に分割して、複数の部分情報を生成する。さらに、推定装置１４０は、複数の部分情報毎に、複数のメモリ制御方式のそれぞれについての実行性能を推定する。図２５の例においては、推定装置１４０は、第１方式、第２方式および第３方式のそれぞれについて、実行性能を推定している。
【０１５８】
続いて、推定装置１４０は、複数の部分情報毎に、推定した実行性能に基づき最適メモリ制御方式を選択する。そして、推定装置１４０は、複数の部分情報について選択した複数の最適メモリ制御方式についての複数の実行性能を合計した合計実行性能を算出する。
【０１５９】
図２６は、アプリケーションプログラムの種類毎および不揮発記憶部１６の種類毎の処理時間の推定値の一例を示す図である。
【０１６０】
例えば、現在、第１記憶部１４のみを主記憶装置として備える第１情報処理システム１１０は、現行アプリケーションプログラムを実行している。例えば、画像認識処理のアプリケーションを例に説明する。設計者は、将来、現行アプリケーションプログラムに代えて、現行アプリケーションより認識精度が高い（高性能な）結果が得られるアルゴリズムが実装されている第１の新アプリケーションプログラム、または、第１の新アプリケーションプログラムよりも高性能の第２の新アプリケーションプログラムの採用を検討している。さらに、アプリケーションプログラムの変更に伴い、ハードウェアを、不揮発記憶部１６を備えた第２情報処理システム１２０へ変更することも検討している。このような場合、設計者は、推定装置１４０を用いて、第１の新アプリケーションプログラムまたは第２の新アプリケーションプログラムの何れを採用するか、および、第２情報処理システム１２０の構成をどうすればよいかを検討することができる。
【０１６１】
以上の検討をする場合、まず、推定装置１４０は、第１情報処理システム１１０に第１の新アプリケーションプログラムを実行させ、第１情報処理システム１１０から動作情報の時系列データを取得する。そして、推定装置１４０は、低速の不揮発記憶部１６を備えた第２情報処理システム１２０が第１の新アプリケーションプログラムを実行した場合の実行時間と、高速の不揮発記憶部１６を備えた第２情報処理システム１２０が第１の新アプリケーションプログラムを実行した場合の実行時間とを推定する。
【０１６２】
続いて、推定装置１４０は、第１情報処理システム１１０に第２の新アプリケーションプログラムを実行させ、第１情報処理システム１１０から動作情報の時系列データを取得する。そして、推定装置１４０は、低速の不揮発記憶部１６を備えた第２情報処理システム１２０が第２の新アプリケーションプログラムを実行した場合の実行時間と、高速の不揮発記憶部１６を備えた第２情報処理システム１２０が第２の新アプリケーションプログラムを実行した場合の実行時間とを推定する。
【０１６３】
そして、設計者は、このように推定された各実行時間を参照して、第１の新アプリケーションプログラムまたは第２の新アプリケーションプログラムの何れを採用するかを決定する。さらに、設計者は、低速の不揮発記憶部１６を備えた第２情報処理システム１２０または高速の不揮発記憶部１６を備えた第２情報処理システム１２０の何れを採用するかを決定する。
【０１６４】
ここで、設計者は、第１情報処理システム１１０により現行アプリケーションプログラムを実行させた場合の実行時間を基準の処理時間とし、この基準の処理時間よりも推定された処理時間が短いことを第１の条件とした。さらに、設計者は、第１の条件を満たすなかで、コストが低く認識性能が高い（高性能）ことを第２の条件とした。
【０１６５】
第２の新アプリケーションプログラムは、第１の新アプリケーションプログラムよりも認識性能が高い（高性能）ので条件をクリアすれば、前者がのぞましい。低速の不揮発記憶部１６は、高速の不揮発記憶部１６よりもコストが低い。従って、図２６の例のような結果が得られた場合、第１の条件および第２の条件を満たすのは、第２の新アプリケーションプログラムを、低速の不揮発記憶部１６を備える第２情報処理システム１２０により実行した場合となる。これは、例えば、第２の新アプリケーションプログラムの方が使用するメモリが大きいため、第１記憶部１４のみの処理では、第１記憶部１４とＯＳの仮想記憶のスワップ領域との間のデータの入れ替え処理であるスワップ処理が多く、第２の新アプリケーションプログラムの方が遅かった。しかし、第２の新アプリケーションプログラムの処理の方が、大容量メモリを利用すると性能が出やすい処理だった。このため、第２の新アプリケーションプログラムの方が、第１の新アプリケーションプログラムよりも認識性能が高い(高性能)のにもかかわらず、不揮発記憶部１６と組み合わせて処理する場合は、逆に処理時間が短く、低速の不揮発記憶部１６の利用でも処理時間の基準を満たしたという例である。このように設計者は、推定装置１４０により推定された結果を参照することにより、将来実行するアプリケーションプログラムおよびシステムのハードウェア構成を決定することができる。
【０１６６】
図２７は、不揮発記憶部１６の種類毎およびメモリ制御方式毎の処理時間の推定値の一例を示す図である。推定装置１４０は、メモリ制御方式毎に、合成実行性能を算出してもよい。この場合、推定装置１４０は、部分情報毎に最適メモリ制御方式を選択する処理は実行せずに、メモリ制御方式毎に合計の実行性能を算出する。
【０１６７】
図２７において、推定された実行時間を表す棒グラフに付けられている比率は、下記のように、第１アクセス処理に設定されたページ数の割合（ａ）と第２アクセス処理に設定されたページ数の割合（ｂ）との比率（ａ：ｂ）を表す。
【０１６８】
例えば、設計者は、第１情報処理システム１１０により現行アプリケーションプログラムを実行させた場合の実行時間を基準の処理時間とし、この基準の処理時間よりも推定された処理時間が短いことを第１の条件とした。さらに、設計者は、第１の条件を満たすなかで、コストが最も低いことを第２の条件とした。
【０１６９】
第２情報処理システム１２０は、第１アクセス処理に設定されたページの比率が多い方が、使用する第１記憶部１４の容量（ＤＲＡＭ量）が大きくなるため消費電力が大きくなり、実行コストが高い。また、低速の不揮発記憶部１６は、高速の不揮発記憶部１６よりもコストが低い。従って、図２７の例のような結果が得られた場合、第１の条件および第２の条件を満たすのは、新アプリケーションプログラムを、低速の不揮発記憶部１６を備える第２情報処理システム１２０により、比率が２：８のメモリ制御方式で実行した場合となる。このように設計者は、推定装置１４０により推定された結果を参照することにより、将来実行するシステムのハードウェア構成およびメモリ制御方式を決定することができる。
【０１７０】
以上のように、第４実施形態に係る推定システム１３０は、第１情報処理システム１１０がアプリケーションプログラムを実行した場合に得られる動作情報から、第１情報処理システム１１０のハードウェア構成を変更した第２情報処理システム１２０の実行性能を推定する。この場合において、推定システム１３０は、動作情報の時系列データを時間方向に分割した複数の部分情報を生成し、複数の部分情報のそれぞれ毎に実行性能を推定する。これにより、推定システム１３０は、精度良く第２情報処理システム１２０の実行性能を推定することができる。
【０１７１】
（第５実施形態）
つぎに、第５実施形態について説明する。第５実施形態は、第４実施形態の変形例である。
【０１７２】
図２８は、第５実施形態に係る推定装置１４０の構成を示す図である。第５実施形態に係る推定装置１４０は、第５実施形態に係る推定装置１４０と比較して、修正部１５２をさらに有する。
【０１７３】
修正部１５２は、選択部４８により、複数の部分情報について選択された複数の最適メモリ制御方式を取得する。修正部１５２は、メモリ制御方式の切り替えにより生じるオーバヘッド実行性能を加えた合計実行性能が最適となるように、複数の部分情報について選択された複数の最適メモリ制御方式を修正する。オーバヘッド実行性能は、メモリ制御方式の切り替えにより生じるオーバヘッドの実行性能（例えば、実行時間、消費電力または寿命減少量）である。そして、修正部１５２は、修正した後における、複数の最適メモリ制御方式を出力部１４６に与える。
【０１７４】
出力部１４６は、修正後における複数の最適メモリ制御方式についての複数の実行性能を取得する。そして、出力部１４６は、修正後における複数の最適メモリ制御方式についての複数の実行性能を合計した合計実行性能を算出する。
【０１７５】
図２９は、メモリ制御方式の切り替え時におけるオーバヘッド時間を考慮した場合の実行時間の一例を示す図である。例えば、推定部４６は、実行性能として、第２情報処理システム１２０においてアプリケーションプログラムを対応するメモリ制御方式で実行した場合における実行時間を推定する。この場合、修正部１５２は、メモリ制御方式の切り替えにより生じるオーバヘッド時間を加えた合計実行時間が短くなるように、複数の部分情報について選択された複数の最適メモリ制御方式を修正する。
【０１７６】
例えば、第１方式→第２方式→第１方式と切り替わる場合について考える。オーバヘッドを考慮せずにメモリ制御方式の切り換えをした場合には、合計実行時間は、図２９のＡのようになる。
【０１７７】
一方、切り替えをしない場合、つまり、第１方式を継続する場合、合計実行時間は、図２９のＢのようになる。第１方式よりも第２方式の方が実行時間が短いので、ＡとＢとを比較すると、Ａの方が合計実行時間は短くなる。
【０１７８】
ここで、第１方式から第２方式への切り替わりにより生じるオーバヘッド時間および第２方式から第１方式への切り替わりにより生じるオーバヘッド時間の合計値が、第１方式の実行時間と第２方式の実行時間の差より小さい場合（第１オーバヘッド時間の場合）、図２９のＣのように、切り替えを行った方が合計実行時間が短くなる。しかし、合計値が第１方式の実行時間と第２方式の実行時間の差より大きい場合（第２オーバヘッド時間の場合）、図２９のＤのように、切り替えを行った方が合計実行時間が長くなる。
【０１７９】
従って、修正部１５２は、第１方式→第２方式→第１方式と切り替わる場合、第１方式から第２方式への切り替わりにより生じるオーバヘッド時間および第２方式から第１方式への切り替わりにより生じるオーバヘッド時間の合計値が、第１方式の実行時間から第２方式の実行時間を減じた値より大きい場合、図２９のＢのように、切り替えを行わずに、第１方式を継続する。これにより、修正部１５２は、メモリ制御方式の切り替えにより生じるオーバヘッド時間を加えた合計実行時間が短くなるように、複数の部分情報について選択された複数の最適メモリ制御方式を修正することができる。
【０１８０】
図３０は、選択部４８による選択後のメモリ制御方式および修正部１５２による修正後のメモリ制御方式を示す図である。例えば、推定部４６は、実行性能として、第２情報処理システム１２０においてアプリケーションプログラムを対応するメモリ制御方式で実行した場合における実行時間を推定する。この場合、修正部１５２は、選択された複数の最適メモリ制御方式の中で、２つの第１メモリ制御方式に挟まれた第２メモリ制御方式の実行時間が、後段の第１メモリ制御方式の実行時間の所定数倍より短い場合、第２メモリ制御方式を第１メモリ制御方式に置き換える。
【０１８１】
例えば、図３０における、Ｒ１、Ｒ３、Ｒ５、Ｒ７、Ｒ９およびＲ１１のメモリ制御方式は、第１方式である。Ｒ２、Ｒ４、Ｒ６、Ｒ８およびＲ１０のメモリ制御方式は、第２方式である。Ｒ２、Ｒ３、Ｒ４、Ｒ５、Ｒ６、Ｒ７、Ｒ８、Ｒ９およびＲ１１の実行時間は、１である。Ｒ１０の実行時間は、８である。
【０１８２】
ここで、修正部１５２は、２つの第１メモリ制御方式に挟まれた第２メモリ制御方式の実行時間が、後段の第１メモリ制御方式の実行時間の２倍より短い場合、第２メモリ制御方式を第１メモリ制御方式に置き換えるとする。この場合、Ｒ１およびＲ３に挟まれたＲ２の実行時間は１であり、Ｒ１およびＲ３のうちの後段のＲ３の実行時間は１である。従って、Ｒ２の実行時間は、Ｒ３の実行時間の２倍よりも短いので、修正部１５２は、Ｒ２のメモリ制御方式を第２方式から第１方式に置き換える。同様に、修正部１５２は、Ｒ４、Ｒ６およびＲ８のメモリ制御方式も、第２方式から第１方式に置き換える。これにより、修正部１５２は、切り替えにより生じるオーバヘッド時間を加えた場合の合計実行時間が、切り替えをしない場合の実行時間より長くなる場合には、切り換えしないようにメモリ制御方式を修正することができる。
【０１８３】
一方、Ｒ９およびＲ１１に挟まれたＲ１０の実行時間は８であり、Ｒ９およびＲ１１のうちの後段のＲ１１の実行時間は１である。従って、Ｒ１０の実行時間は、Ｒ１の実行時間の２倍よりも長いので、修正部１５２は、Ｒ１０のメモリ制御方式を、そのまま第２方式とする。これにより、修正部１５２は、切り替えにより生じるオーバヘッド時間を加えた場合の合計実行時間が、切り替えをしない場合の実行時間より短い場合には、切り換えするようにメモリ制御方式を修正することができる。
【０１８４】
従って、修正部１５２は、メモリ制御方式の切り替えにより生じるオーバヘッド時間を加えた合計実行時間が短くなるように、複数の部分情報のそれぞれについて選択されたメモリ制御方式を修正することができる。
【０１８５】
以上のように、第５実施形態に係る推定システム１３０は、メモリ制御方式の切り替えにより生じるオーバヘッド実行性能を考慮して、第２情報処理システム１２０の実行性能を推定する。これにより、第５実施形態に係る推定システム１３０によれば、より精度良く第２情報処理システム１２０の実行性能を推定することができる。
【０１８６】
（第６実施形態）
つぎに、第６実施形態について説明する。第６実施形態は、第３実施形態の変形例である。
【０１８７】
図３１は、第６実施形態に係る方式決定部３６の構成を推定モデル記憶部２６、結果記憶部６２および決定モデル記憶部６４とともに示す図である。第６実施形態に係る情報処理装置１８は、第３実施形態に係る方式決定部３６と比較して、修正部１５２をさらに有する。
【０１８８】
結果記憶部６２は、過去の動作情報の変化の時系列データを記憶する。さらに、結果記憶部６２は、過去に選択された複数のメモリ制御方式の履歴を記憶する。結果記憶部６２は、動作情報の変化の時系列データと、選択された複数のメモリ制御方式とを時系列に対応付けて記憶する。
【０１８９】
修正部１５２は、結果記憶部６２に記憶された、選択された複数のメモリ制御方式の履歴を読み出す。修正部１５２は、時系列に選択された複数のメモリ制御方式を、メモリ制御方式の切り替えにより生じるオーバヘッド実行性能を加えた合計実行性能が最適となるように修正する。例えば、修正部１５２は、第５実施形態と同様の処理を実行して、メモリ制御方式を修正する。そして、修正部１５２は、修正後における時系列に選択された複数のメモリ制御方式を学習部６８に与える。
【０１９０】
学習部６８は、動作情報の変化パターン（変化の周期性）と、修正後におけるメモリ制御方式との関係に基づき、動作情報の変化パターンからメモリ制御方式を決定するための決定モデルを生成する。例えば、学習部６８は、学習処理またはクラスタリング処理等を実行することにより動作情報の複数の変化パターン（変化の周期性）のそれぞれと、メモリ制御方式との対応関係を検出する。そして、学習部６８は、複数の変化パターン（周期性）のそれぞれとメモリ制御方式との対応関係に基づき、決定モデルを生成する。学習部６８は、生成した決定モデルを決定モデル記憶部６４に書き込む。
【０１９１】
決定部７０は、変化検出部５２が動作情報から所定の変化を検出した時点における、動作情報の変化パターンを取得する。例えば、決定部７０は、変化検出部５２が動作情報から所定の変化を検出した時点における、動作情報の変化方向のパターンを取得する。そして、決定部７０は、取得した動作情報の変化パターン（変化の周期性）が、決定モデルに示された変化パターンと一致した場合には、メモリ制御方式を決定する。決定部７０は、決定したメモリ制御方式を設定部５０に通知する。
【０１９２】
図３２は、実際に選択されたメモリ制御方式および修正後のメモリ制御方式を示す図である。例えば、アプリケーションプログラムを実行した場合、情報処理システム１０は、複数の種類のデータに対して処理を実行する。例えば、顔認識処理をする場合、情報処理システム１０は、複数人の顔画像データに対して処理を実行する。
【０１９３】
このような場合、情報処理システム１０は、複数の顔画像データ毎に近似した動作情報を出力する。この結果、情報処理システム１０は、同一の時系列パターンで複数のメモリ制御方式を選択する。従って、情報処理システム１０が複数のデータ（例えば、第１データおよび第２データ）に対する処理を実行した場合、修正部１５２は、複数のデータのそれぞれについて選択された複数のメモリ制御方式を、同様に修正することができる。
【０１９４】
図３３は、修正後のメモリ制御方式と動作情報の変化のパターンとの関係を示す図である。学習部６８は、動作情報の変化パターン（変化の周期性）と、修正後におけるメモリ制御方式との関係を検出する。図３３の例であれば、学習部６８は、第１方式に設定された状態において、動作情報に５個の変化点が発生した場合、次に選択されるメモリ制御方式が第２方式であることを学習できる。また、図３３の例であれば、学習部６８は、第２方式に設定された状態において、動作情報に１個の変化点が発生した場合、次に選択されるメモリ制御方式が第１方式であることが学習できる。
【０１９５】
従って、学習部６８は、このような変化点の発生パターンと次に選択されるメモリ制御方式との関係を定義した決定モデルを生成することができる。
【０１９６】
以上のように、第６実施形態に係る情報処理システム１０は、過去の動作情報の変化パターンと、修正後におけるメモリ制御方式との関係に基づき、動作情報の変化パターンからメモリ制御方式を決定するための決定モデルを生成する。そして、情報処理システム１０は、動作情報の変化パターンからメモリ制御方式を決定する。これにより、第６実施形態に係る情報処理システム１０によれば、実行性能を推定せずにメモリ制御方式を決定することができる。従って、情報処理システム１０によれば、少ない演算量でメモリ制御方式を決定することができる。
【０１９７】
（情報処理装置２００のハードウェア構成）
図３４は、情報処理装置２００のハードウェアブロック図である。情報処理装置２００は、一例として、一般のコンピュータと同様のハードウェア構成により実現される。情報処理装置２００は、所定プログラムを実行することにより、推定装置１４０として機能することができる。
【０１９８】
情報処理装置２００は、ＣＰＵ２０２と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  ＭｅｍｏｒｙRead  Only  Memory）２０４と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓ  Ｍｅｍｏｒｙ）２０６と、操作部２０８と、表示部２１０と、通信装置２１２と、記憶装置２１４とを備える。各部は、バスにより接続される。
【０１９９】
ＣＰＵ２０２は、情報処理を実行するプロセッサであって、記憶装置２１４に記憶されたプログラムをＲＡＭ２０６に展開して実行し、各部を制御して入出力を行ったり、データの加工を行ったりする。ＣＰＵ２０２は、１または複数のプロセッサにより構成されていてもよい。また、情報処理装置２００は、プログラムを実行することが可能であれば、ＣＰＵ２０２に限らず他のプロセッサを備えてもよい。ＲＯＭ２０４には、起動用プログラムを記憶装置２１４からＲＡＭ２０６に読み出すスタートプログラムが記憶されている。ＲＡＭ２０６は、ＣＰＵ２０２の作業領域としてデータを記憶する。
【０２００】
操作部２０８は、マウスまたはキーボード等の入力デバイスであって、ユーザから操作入力された情報を指示信号として受け付け、その指示信号をＣＰＵ２０２に出力する。表示部２１０は、例えばＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ）等の表示装置である。表示部２１０は、ＣＰＵ２０２からの表示信号に基づいて、各種情報を表示する。通信装置２１２は、ネットワーク等を介して、外部機器と情報をやり取りする。記憶装置２１４は、例えば、ハードディスクドライブまたはフラッシュメモリ等である。記憶装置２１４は、情報処理装置２００で実行されるプログラム、および、オペレーティングシステムを記憶している。
【０２０１】
本実施形態の情報処理装置２００で実行されるプログラムは、インストール可能な形式または実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録されて提供される。また、本実施形態の情報処理装置２００で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、本実施形態の情報処理装置２００で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。また、本実施形態のプログラムを、ＲＯＭ２０４等に予め組み込んで提供するように構成してもよい。
【０２０２】
情報処理装置２００を推定装置１４０として機能させるためのプログラムは、取得モジュールと、分割モジュールと、推定モジュールと、選択モジュールと、出力モジュールとを有する。情報処理装置２００は、プロセッサ（ＣＰＵ２０２）が記憶媒体（記憶装置２１４等）からプログラムを読み出して実行することにより各モジュールが主記憶装置（ＲＡＭ２０６）上にロードされ、プロセッサ（ＣＰＵ２０２）が、取得部４４、分割部１４４、推定部４６、選択部４８および出力部１４６として機能する。また、ＲＡＭ２０６または記憶装置２１４等が、動作情報記憶部１４２および推定モデル記憶部２６として機能する。なお、これらの一部または全部がプロセッサ以外のハードウェアにより実現されてもよい。
【０２０３】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０２０４】
１０  情報処理システム
１４  第１記憶部
１６  不揮発記憶部
１８  情報処理装置
２０  処理回路
２２  管理装置
２４  動作情報検出部
２６  推定モデル記憶部
３２  データ処理部
３４  アクセス管理部
３６  方式決定部
４２  タイミング発生部
４４  取得部
４６  推定部
４８  選択部
５０  設定部
５２  変化検出部
６２  結果記憶部
６４  決定モデル記憶部
６８  学習部
７０  決定部
７２  モード設定部
１１０  第１情報処理システム
１２０  第２情報処理システム
１３０  推定システム
１４０  推定装置
１４２  動作情報記憶部
１４４  分割部
１４６  出力部
１５２  修正部
【図１】
2019164630.tif 000003
【図２】
2019164630.tif 000004
【図３】
2019164630.tif 000005
【図４】
2019164630.tif 000006
【図５】
2019164630.tif 000007
【図６】
2019164630.tif 000008
【図７】
2019164630.tif 000009
【図８】
2019164630.tif 000010
【図９】
2019164630.tif 000011
【図１０】
2019164630.tif 000012
【図１１】
2019164630.tif 000013
【図１２】
2019164630.tif 000014
【図１３】
2019164630.tif 000015
【図１４】
2019164630.tif 000016
【図１５】
2019164630.tif 000017
【図１６】
2019164630.tif 000018
【図１７】
2019164630.tif 000019
【図１８】
2019164630.tif 000020
【図１９】
2019164630.tif 000021
【図２０】
2019164630.tif 000022
【図２１】
2019164630.tif 000023
【図２２】
2019164630.tif 000024
【図２３】
2019164630.tif 000025
【図２４】
2019164630.tif 000026
【図２５】
2019164630.tif 000027
【図２６】
2019164630.tif 000028
【図２７】
2019164630.tif 000029
【図２８】
2019164630.tif 000030
【図２９】
2019164630.tif 000031
【図３０】
2019164630.tif 000032
【図３１】
2019164630.tif 000033
【図３２】
2019164630.tif 000034
【図３３】
2019164630.tif 000035
【図３４】
2019164630.tif 000036