以下、図面を参照しながら実施形態に係る情報処理システム10について詳細に説明する。なお、以下、複数の実施形態について説明をするが、略同一の機能および構成を有するブロックに同一の符号を付け、第2実施形態以降においては重複する内容の説明を省略する。
(第1実施形態)
第1実施形態について説明する。
図1は、第1実施形態に係る情報処理システム10の構成の一例を示す図である。情報処理システム10は、第1記憶部14と、不揮発記憶部16と、情報処理装置18とを備える。
第1記憶部14は、情報処理装置18による作業領域として用いられる主記憶装置(メインメモリ)である。第1記憶部14は、例えば、電源の供給を停止すると記憶しているデータが消える揮発記憶部である。第1記憶部14は、例えば、DRAMである。なお、第1記憶部14は、DRAMと同様に高速アクセスが可能な、MRAM(Magnetoresistive Random Acces Memory)等の不揮発メモリであってもよい。
また、第1記憶部14は、不揮発記憶部16よりも書き込み可能回数が多い。例えば、第1記憶部14は、書き込み可能回数を考慮した設計をしなくてよい程度(例えば、書き込み回数に制限が無いとして設計をすることが可能な程度)、書き込み可能回数が多い。
不揮発記憶部16は、電源の供給を停止してもデータを記憶し続けるメモリである。不揮発記憶部16は、第1記憶部14とともに情報処理装置18の主記憶装置として機能する。
不揮発記憶部16は、例えば、DRAMより大容量な大容量高速不揮発メモリ(Non−volatile Memory)を含む。不揮発記憶部16は、例えば、MRAM、PCM(Phase Change Memory)、PRAM(Phase Random Access Memory)、PCRAM(Phase Change Random Access Memory)、ReRAM(Resistance Change Random Access Memory)、FeRAM(Ferroelectric Random Access Memory)、3DXPointまたはMemristor等のいわゆるストレージクラスメモリ(SCM)と呼ばれるメモリである。また、不揮発記憶部16は、複数の半導体装置を1つの基板または筐体等に設けたモジュールであってもよい。
不揮発記憶部16は、第1記憶部14と比較して容量が大きい。不揮発記憶部16の容量は、第1記憶部14と同じであってもよい。また、不揮発記憶部16は、第1記憶部14のアクセス速度と同等または少し遅い程度である。また、不揮発記憶部16は、待機電力がゼロか、または、第1記憶部14と比較して待機電力が非常に少ない。不揮発記憶部16は、一例として、アクセスレイテンシが10n秒から数μ秒程度の間のメモリである。
不揮発記憶部16は、バイト単位等の小領域単位でデータを書き込みおよび読み出し可能である。従って、情報処理装置18は、ロード命令またはストア命令により不揮発記憶部16に対して直接アクセスが可能である。情報処理装置18は、例えばキャッシュライン単位等で不揮発記憶部16に直接アクセスすることが可能である。
不揮発記憶部16は、複数のページを含む。ページは、情報処理装置18が管理するデータ単位に対応する。ページは、例えば、オペレーティングシステムが管理する仮想記憶装置のページに対応する。ページは、例えば、4Kバイトであってよい。情報処理装置18は、第1記憶部14と不揮発記憶部16の間ではページ単位でもデータ転送が可能である。
情報処理装置18は、処理回路20と、管理装置22と、動作情報検出部24と、推定モデル記憶部26とを有する。
処理回路20は、1または複数のプロセッサを有する。プロセッサは、例えば、CPU(Central Processing Unit)である。プロセッサは、1または複数のCPUコアを含んでいてもよい。処理回路20は、プログラムを実行して、データを処理する。処理回路20は、プログラムの実行に応じて、第1記憶部14または不揮発記憶部16からデータを読み出したり、第1記憶部14または不揮発記憶部16にデータを書き込んだりする。
また、処理回路20は、L1データキャッシュ、L1命令キャッシュ、L2キャッシュおよびL3キャッシュ等の階層的なキャッシュメモリを有する。処理回路20は、このようなキャッシュメモリを用いて、第1記憶部14または不揮発記憶部16に記憶されているデータを一時的に記憶する。処理回路20は、例えば、階層的なキャッシュにおける最下層のキャッシュ(ラストレベルキャッシュ)でキャッシュミスをした場合、キャッシュライン単位で第1記憶部14または不揮発記憶部16に対してアクセスして必要なデータを読み出したり書き込んだりする。
なお、処理回路20は、データ処理を実行できれば、どのような回路であってもよい。例えば、処理回路20は、GPGPU(General−purpose computing on Graphics Processing Unit)で利用されるGPU(Graphics Processing Unit)であってもよい。また、処理回路20は、FPGA(Field Programmable Gate Array)等のアクセラレータであってもよい。
管理装置22は、第1記憶部14および不揮発記憶部16に対する、処理回路20によるデータの読み出しおよび書き込みを制御する。管理装置22は、処理回路20からの第1記憶部14および不揮発記憶部16に対するアクセス要求を処理する。すなわち、管理装置22は、処理回路20からの書込命令に応じて、データを第1記憶部14または不揮発記憶部16に書き込む。また、管理装置22は、処理回路20からの読出命令に応じて、データを第1記憶部14または不揮発記憶部16から読み出し、読み出したデータを処理回路20に与える。
また、管理装置22は、不揮発記憶部16に対するウェアレベリング制御を実行する。より具体的には、管理装置22は、不揮発記憶部16における領域毎のデータの書き換え回数を管理する。そして、管理装置22は、領域毎の書き換え回数に基づき、不揮発記憶部16における全体の領域に平均的にデータが書き込まれるように、データの書き込み位置を制御する。
なお、管理装置22は、処理回路20と同一の半導体基板に形成された回路である。また、管理装置22は、処理回路20とは別体のハードウェアで構成されたメモリコントローラであってもよい。また、管理装置22は、処理回路20の一部のハードウェアとメモリコントローラとの組み合わせにより実現されてもよい。また、管理装置22は、処理回路20が実行するオペレーティングシステムの一部の機能により実現されてもよい。また、管理装置22は、処理回路20が実行するオペレーティングシステムの一部の機能により実現されてもよいし、オペレーティングシステムの一部の機能とメモリコントローラとの組み合わせにより実現されてもよい。
また、管理装置22は、例えば、処理回路20とは別体のハードウェアで構成されたメモリ管理ユニット(MMU)であってもよい。また、管理装置22は、処理回路20の一部のハードウェアとメモリ管理ユニットとの組み合わせにより実現されてもよい。また、管理装置22は、処理回路20が実行するオペレーティングシステムの一部の機能とメモリ管理ユニットとの組み合わせにより実現されてもよい。
また、管理装置22は、メモリコントローラと、MMUとの組み合わせにより実現されてもよい。また、管理装置22は、処理回路20の一部のハードウェアと、メモリコントローラと、メモリ管理ユニットとの組み合わせにより実現されてもよい。また、管理装置22は、処理回路20が実行するオペレーティングシステムの一部の機能と、メモリコントローラと、メモリ管理ユニットとの組み合わせにより実現されてもよい。
動作情報検出部24は、処理回路20および管理装置22の少なくとも一方における動作情報を検出する。動作情報検出部24は、処理回路20内のハードウェア回路として実現されてもよい。また、動作情報検出部24は、管理装置22内の一部のハードウェア回路または一部の機能として実現されてもよい。また、動作情報検出部24は、処理回路20が実行するオペレーティングシステムの一部の機能として実現されてもよい。動作情報検出部24は、いわゆるパフォーマンスカウンタと呼ばれる回路であってもよい。なお、動作情報については、図4を参照してさらに説明する。
推定モデル記憶部26は、動作情報から、管理装置22による第1記憶部14および不揮発記憶部16に対するメモリアクセスの実行性能を推定するための推定モデルを記憶する。なお、推定モデルについては、図10および図11を参照してさらに説明する。
処理回路20は、データ処理部32と、アクセス管理部34と、方式決定部36とを含む。データ処理部32は、例えば、処理回路20がアプリケーションプログラムを実行することにより実現される。また、方式決定部36およびアクセス管理部34は、例えば、処理回路20がオペレーティングシステムの一部の機能を実行することにより実現される。
データ処理部32は、アプリケーションプログラムに従った情報処理を実行する。さらに、データ処理部32は、管理装置22に対して、第1記憶部14および不揮発記憶部16に対するアクセス要求を与える。すなわち、データ処理部32は、データを第1記憶部14または不揮発記憶部16に書き込む書込命令を管理装置22に与える。また、データ処理部32は、データを第1記憶部14または不揮発記憶部16から読み出す読出命令を管理装置22に与える。
アクセス管理部34は、管理装置22が第1記憶部14および不揮発記憶部16に対してアクセスするためのメモリ制御方式を管理する。管理装置22は、第1記憶部14および不揮発記憶部16に対して、複数のメモリ制御方式によりアクセスすることが可能である。アクセス管理部34は、管理装置22が複数のメモリ制御方式のうち何れのメモリ制御方式によりアクセスするかを管理する。
また、アクセス管理部34は、変換テーブルを記憶する。変換テーブルは、アクセス要求をするそれぞれのページについて、要求アドレスと、第1記憶部14または不揮発記憶部16における対応するページ番号(物理アドレス)との対応関係を記憶する。さらに、変換テーブルは、処理回路20がアクセス要求をするそれぞれのページについて、第1アクセス処理または第2アクセス処理の何れを実行するか示すアクセス方法を記憶する。
第1アクセス処理は、不揮発記憶部16から第1記憶部14に転送したデータに対して、書き込みおよび読み出しをする方法である。第2アクセス処理は、不揮発記憶部16に記憶されるデータに対して直接書き込みおよび読み出しをする方法である。
そして、管理装置22は、データ処理部32がアクセス要求をしたページについて、変換テーブルに記憶されたアクセス方法により第1記憶部14および不揮発記憶部16にアクセスする。つまり、管理装置22は、第1アクセス処理に設定されているページに対して書き込みまたは読み出しの要求を受けた場合、第1アクセス処理を実行する。また、管理装置22は、第2アクセス処理に設定されているページに対して書き込みまたは読み出しの要求を受けた場合、第2アクセス処理を実行する。なお、変換テーブルの詳細については、図2を参照してさらに説明する。また、アクセス方法については、図3を参照してさらに説明する。
方式決定部36は、動作情報検出部24により検出された動作情報、および、推定モデル記憶部26に記憶された推定モデルに基づき、複数のメモリ制御方式のうちの何れか1つのメモリ制御方式を決定する。そして、方式決定部36は、管理装置22が、決定したメモリ制御方式により第1記憶部14および不揮発記憶部16に対してアクセスするように、アクセス管理部34に対して設定処理をする。メモリ制御方式については、図5および図6を参照してさらに説明する。
図2は、変換テーブルの一例を示す図である。変換テーブルは、処理回路20がアクセス要求をするそれぞれのページについて、要求アドレス(例えば論理アドレス)と、第1記憶部14または不揮発記憶部16における対応するページ番号(物理アドレス)との対応関係を記憶する。すなわち、変換テーブルは、処理回路20による要求アドレスに対応するデータが、第1記憶部14または不揮発記憶部16における何れのページに記憶されているのかを示すマッピング情報を記憶する。
例えば、図2の例では、変換テーブルにおけるページ番号の列に“Sxxxx”と記述されたページは、不揮発記憶部16におけるページ番号が“xxxx”のページを示す。例えば、図2の例では、ページ番号の列に“Dxxxx”と記述されたページは、第1記憶部14におけるページ番号が“xxxx”のページを示す。なお、ここでのxは、任意の値である。
さらに、変換テーブルは、処理回路20がアクセス要求をするそれぞれのページについて、第1アクセス処理または第2アクセス処理の何れを実行するか示すアクセス方法を記憶する。なお、変換テーブルは、図2に示すような構成に限らず、他の構成であってもよい。
図3は、第1アクセス処理および第2アクセス処理の内容を示す図である。管理装置22は、第1アクセス処理に設定されている第1ページに対して書き込みまたは読み出しの要求を受けた場合、不揮発記憶部16に対して、第1アクセス処理を実行する。
例えば、図3に示すように、第1アクセス処理において、管理装置22は、不揮発記憶部16における第1ページに記憶された全てのデータを転送して、第1記憶部14に記憶させる。これにより、第1記憶部14は、不揮発記憶部16における第1ページに記憶されたデータのコピーを記憶することができる。続いて、第1アクセス処理において、管理装置22は、第1記憶部14に記憶されている、不揮発記憶部16から転送されたデータに対して、読み出しおよび書き込みをする。例えば、管理装置22は、不揮発記憶部16から第1記憶部14に転送されたデータに対して、ページより小さいサイズ(例えばプロセッサのキャッシュラインサイズ)でデータの読み出しおよび書き込みをする。そして、第1アクセス処理において、管理装置22は、第1記憶部14の空き容量が無くなり不揮発記憶部16から第1記憶部14にデータを転送できなくなった場合、および、第1記憶部14に記憶させておくことが不要と判断された場合等において、第1記憶部14に転送されたデータを、不揮発記憶部16における第1ページに書き戻す。
なお、管理装置22は、第1記憶部14に転送されたデータを、第1ページ(同じ場所)以外に書き戻してもよい。例えば、管理装置22は、第1アクセス処理において、不揮発記憶部16から第1記憶部14に転送されたデータを、何れの要求アドレスも対応付けられていない未使用ページに書き戻してよい。これにより、管理装置22は、ページ毎の書き換え回数の隔たりを小さくし、特定のページの品質劣化を抑制することができる。
また、管理装置22は、第2アクセス処理に設定されている第2ページに対して書き込みまたは読み出しの要求を受けた場合、不揮発記憶部16に対して、第2アクセス処理を実行する。
例えば、図3に示すように、第2アクセス処理において、管理装置22は、不揮発記憶部16における第2ページに対して、直接読み出しおよび書き込みをする。例えば、管理装置22は、ページより小さいサイズ(例えばプロセッサのキャッシュラインサイズ)でデータの読み出しおよび書き込みをする。
このように、管理装置22は、2種類のアクセス方法により不揮発記憶部16に対してアクセスする。例えば、メモリアクセスに局所性が高いアプリケーションを実行した場合、管理装置22は、第1アクセス処理により不揮発記憶部16に記憶されたページをアクセスする。これにより、管理装置22は、メモリアクセスに局所性が高いアプリケーションを実行した場合、同一のページに対してより高速に処理をすることができる。
また、例えば、ランダムアクセスのようにメモリアクセスに局所性が低い処理を実行する場合、管理装置22は、第2アクセス処理により不揮発記憶部16に記憶されたページをアクセスする。これにより、管理装置22は、局所性が低い処理を実行する場合、不揮発記憶部16から第1記憶部14への転送処理のオーバヘッドを無くして、効率良く処理をすることができる。このように、管理装置22は、第1アクセス処理および第2アクセス処理の2種類のアクセス方法を用いることにより、処理の効率化を図ることができる。
図4は、動作情報の時系列データの一例を示す図である。動作情報検出部24は、一定時間毎に、処理回路20および管理装置22の少なくとも一方における動作情報を検出する。動作情報は、例えば、OS(オペレーティングシステム)内のイベントの統計情報(OSの挙動を表す情報)などのシステムレベルの情報であってもよい。
動作情報は、例えば、処理回路20による主記憶装置に対する書き込み回数、処理回路20による主記憶装置に対する読み出し回数、処理回路20のプリフェッチ成功率、処理回路20のキャッシュヒット数、処理回路20のキャッシュミス数、またはTLBミス回数等である。また、これらに限らず、動作情報は、例えば、処理回路20または管理装置22内での所定のイベントの回数、リタイアした命令数、コアクロック数およびキャッシュメモリにおける階層毎(L1キャッシュ、L2キャッシュ、L3キャッシュおよびラストレベルキャッシュ)のキャッシュヒット数/キャッシュミス数、ラストレベルキャッシュから追い出されたキャッシュライン数、各階層のキャッシュがキャッシュミスでストールするサイクル数等であってもよい。
動作情報検出部24は、このような動作情報を検出した時刻に対応付けて出力する。方式決定部36は、動作情報検出部24により検出された動作情報を時刻に対応付けた時系列データとして取得する。
図5は、メモリ制御方式の内容の第1例を示す図である。管理装置22は、複数のメモリ制御方式のうちの何れか1つのメモリ制御方式により第1記憶部14および不揮発記憶部16にアクセスする。
例えば、複数のメモリ制御方式のそれぞれは、複数のページのうちの第1アクセス処理に設定されるページの数と第2アクセス処理に設定されるページの数との比率により区別されてもよい。例えば、図5の例では、管理装置22は、比率が異なる第1から第4の方式の何れかにより、第1記憶部14および不揮発記憶部16にアクセスする。
例えば、図5の第1方式は、100%のページが第2アクセス処理に設定された方式である。また、図5の第2方式は、10%のページが第1アクセス処理に設定され、90%のページが第2アクセス処理に設定された方式である。また、図5の第3方式は、20%のページが第1アクセス処理に設定され、80%のページが第2アクセス処理に設定された方式である。また、図6の第4方式は、30%のページが第1アクセス処理に設定され、70%のページが第2アクセス処理に設定された方式である。なお、複数のメモリ制御方式は、図5よりもさらに細かい比率により区別されてもよい。
図6は、メモリ制御方式の内容の第2例を示す図である。また、複数のメモリ制御方式のそれぞれは、さらに、第1記憶部14のメモリ使用量の上限値で区別されてもよい。例えば、図5の例では、管理装置22は、比率およびメモリ使用量が異なる8つの方式の何れかにより、第1記憶部14および不揮発記憶部16にアクセスする。
例えば、図6の第1方式は、100%のページが第2アクセス処理に設定され、第1記憶部14のメモリ使用量に制限がない方式である。図6の第2方式は、10%のページが第1アクセス処理に設定され、第1記憶部14のメモリ使用量の上限値が不揮発記憶部16の5%に設定された方式である。図6の第3方式は、10%のページが第1アクセス処理に設定され、メモリ使用量の上限値が10%に設定された方式である。
図6の第4方式は、20%のページが第1アクセス処理に設定され、メモリ使用量の上限値が10%に設定された方式である。図6の第5方式は、20%のページが第1アクセス処理に設定され、メモリ使用量の上限値が20%に設定された方式である。
図6の第6方式は、30%のページが第1アクセス処理に設定され、メモリ使用量の上限値が15%に設定された方式である。図6の第7方式は、30%のページが第1アクセス処理に設定され、メモリ使用量の上限値が30%に設定された方式である。なお、複数のメモリ制御方式は、比率および上限値がさらに細かく区別されていてもよい。
処理回路20は、図5および図6に示したようなメモリ制御方式に限らず、他の方式を設定してもよい。また、例えば、情報処理システム10は、主記憶装置として、第1記憶部14および不揮発記憶部16とは特性が異なる、第2記憶部を備えてもよい。このような場合、管理装置22は、例えば、アクセス方法として、不揮発記憶部16から第2記憶部にデータをコピーしてからアクセスさせるような第3アクセス処理をさらに実行してもよい。そして、管理装置22は、複数のメモリ制御方式の中に、第1アクセス処理、第2アクセス処理および第3アクセス処理に設定されるページ数の比率等を設定する方式を含めてもよい。
図7は、第1実施形態に係る方式決定部36の構成を推定モデル記憶部26とともに示す図である。方式決定部36は、タイミング発生部42と、取得部44と、推定部46と、選択部48と、設定部50とを有する。
タイミング発生部42は、メモリ制御方式の切り替えタイミングとなった時に、検出期間を開始する指示を取得部44および設定部50に与える。例えば、タイミング発生部42は、一定時間毎に検出期間を開始する指示を取得部44および設定部50に与える。
取得部44は、タイミング発生部42から開始指示を受け取る。取得部44は、開始指示を受け取ってから一定の期間(検出期間)における、処理回路20および管理装置22の少なくとも一方における動作情報を、動作情報検出部24から取得する。
推定部46は、取得部44が取得した動作情報および推定モデル記憶部26に記憶された推定モデルに基づき、管理装置22が複数のメモリ制御方式のそれぞれにより動作する場合における、第1記憶部14および不揮発記憶部16に対するメモリアクセスの実行性能を推定する。推定部46は、実行性能として、例えば、管理装置22が検出期間において実行した処理を、管理装置22が対応するメモリ制御方式で実行した場合における実行時間を推定する。また、推定部46は、実行性能として、例えば、管理装置22が検出期間において実行した処理を、管理装置22が対応するメモリ制御方式で実行した場合における消費電力、または、不揮発記憶部16の寿命減少量(摩耗度)を推定してもよい。
推定モデルは、動作情報から、複数のメモリ制御方式のそれぞれについての実行性能(例えば、実行時間、消費電力または寿命減少量)を算出するための、例えば演算式である。推定モデルは、例えば、決定木、線形回帰、ニューラルネットワークおよびサポートベクタマシン等であってもよい。なお、推定モデルについては、図10および図11を参照してさらに説明する。
選択部48は、推定された複数のメモリ制御方式のそれぞれについての実行性能に基づき、複数のメモリ制御方式のうちの何れか1つのメモリ制御方式を選択する。例えば、選択部48は、実行性能が最も小さいまたは最も大きいメモリ制御方式を選択する。また、例えば、選択部48は、実行性能が予め定められた条件を満たすメモリ制御方式のうちの、実行性能が最も小さいまたは最も大きいメモリ制御方式を選択してもよい。メモリ制御方式の選択方法については、図12から図15を参照してさらに説明する。
設定部50は、タイミング発生部42から開始指示を受け取る。設定部50は、開始指示を受け取ってから一定の期間(検出期間)において、管理装置22が基準のメモリ制御方式により第1記憶部14および不揮発記憶部16にアクセスするようにアクセス管理部34に対して設定処理をする。これにより、管理装置22は、検出期間において、管理装置22が基準のメモリ制御方式により第1記憶部14および不揮発記憶部16にアクセスすることができる。
例えば、設定部50は、検出期間において、アクセスするページの全てのアクセス方法を第2アクセス処理に設定する。これにより、管理装置22は、検出期間において、第2アクセス処理により第1記憶部14および不揮発記憶部16にアクセスすることができる。なお、設定部50は、検出期間において、推定モデルにより実行性能を推定可能な動作情報が得られるメモリ制御方式に設定すればよい。もし、取得部44が取得する動作情報が、メモリ制御方式の違いによる影響を受けない場合には、設定部50は、検出期間において、何れのメモリ制御方式を設定してもよい。
検出期間を経過した後の期間において、設定部50は、選択されたメモリ制御方式により管理装置22が第1記憶部14および不揮発記憶部16にアクセスするように、アクセス管理部34に対して設定処理をする。これにより、管理装置22は、検出期間が経過した後において、選択されたメモリ制御方式により第1記憶部14および不揮発記憶部16にアクセスすることができる。
例えば、設定部50は、変換テーブルにおける複数のページのそれぞれのアクセス方法を、選択されたメモリ制御方式に応じて第1アクセス処理または第2アクセス処理に設定する。例えば、複数のメモリ制御方式が、第1アクセス処理に設定されるページの数と第2アクセス処理に設定されるページの数との比率で区別される場合、設定部50は、変換テーブルにおける複数のページのそれぞれのアクセス方法を、選択されたメモリ制御方式に示された比率に応じて第1アクセス処理または第2アクセス処理に設定する。
なお、設定部50は、変換テーブルに管理されている全てのページのアクセス方法を変更するのではなく、直近(例えば、所定期間前まで)にアクセスしたページおよび検出期間後に新たにアクセスするページについてのアクセス方法を変更してもよい。また、設定部50は、検出期間後に新たにアクセスするページに対してアクセス方法を変更してもよい。
また、設定部50は、処理回路20により管理されるTLB(Translation Lookaside Buffer)と呼ばれる仮想管理機構により管理されるページのアクセス方法を変更してもよい。TLBは、仮想アドレスから物理アドレスへアドレス変換を行うために、ページにおける要求アドレス(論理アドレス)と物理アドレスとの対応を示す対応関係情報を記憶する。しかし、TLBは、保有しているエントリが限られているので、対応関係情報を必要に応じて入れ替える。TLBは、例えば、直近において高い頻度でアクセスされるページについての対応関係情報を優先して記憶する。
さらに、複数のメモリ制御方式が、第1記憶部14のメモリ使用量の上限値で区別される場合、設定部50は、選択されたメモリ制御方式に示された上限値を、第1記憶部14のメモリ使用量として設定する。第1記憶部14のメモリ使用量の上限値が設定された場合、管理装置22は、第1記憶部14にコピーしたデータ量が上限値を超えないように、第1記憶部14および不揮発記憶部16に対してアクセス制御をする。具体的には、管理装置22は、第1アクセス処理に設定された第1ページにアクセスするために第1ページのデータを不揮発記憶部16から第1記憶部14に転送すると、第1記憶部14のメモリ使用量が上限値を超えてしまう場合には、第1記憶部14に記憶された何れかのページのデータを不揮発記憶部16に書き戻した後に、第1ページのデータを不揮発記憶部16から第1記憶部14に転送する。上限値を超えないようにするためのアクセス制御は、処理回路20(アクセス管理部34など)がおこなってもよい。
図8は、動作情報の波形図および選択されたメモリ制御方式の一例を示す図である。図8に示すように、方式決定部36は、一定期間毎に、メモリ制御方式の選択および切り替えを行う。方式決定部36は、メモリ制御方式の切り替えタイミングの直前に検出期間を設定し、検出期間において動作情報を取得する。そして、方式決定部36は、取得した動作情報に基づきメモリ制御方式を決定し、新たなメモリ制御方式に切り替える。
なお、図8の例では、方式決定部36は、検出期間において、基準のメモリ制御方式に設定している。しかし、方式決定部36は、メモリ制御方式の違いが、取得する動作情報に影響を与えない場合には、検出期間において、直前のメモリ制御方式を継続させてもよい。
図9は、第1実施形態に係る方式決定部36による処理の流れを示すフローチャートである。第1実施形態に係る方式決定部36は、図9に示すフローチャートに従って処理を実行する。
まず、S11において、方式決定部36は、動作情報の取得タイミングとなったか否かを判断する。取得タイミングとなっていない場合(S11のNo)、方式決定部36は、処理をS11で待機する。取得タイミングとなった場合(S11のYes)、方式決定部36は、処理をS12に進める。
S12において、方式決定部36は、管理装置22が基準のメモリ制御方式により第1記憶部14および不揮発記憶部16にアクセスするように、アクセス管理部34に対して設定処理をする。続いて、S13において、方式決定部36は、動作情報検出部24から動作情報を取得する。続いて、S14において、方式決定部36は、検出期間が経過したか否かを判断する。検出期間が経過していない場合(S14のNo)、方式決定部36は、処理をS13に戻して、検出期間が経過するまで、動作情報の取得を継続する。検出期間が経過した場合(S14のYes)、方式決定部36は、処理をS15に進める。
S15、S16およびS17のループ処理において、方式決定部36は、推定モデルおよび検出期間における動作情報に基づき、複数のメモリ制御方式のそれぞれについての実行性能を推定する。全てのメモリ制御方式について実行性能を推定した場合、方式決定部36は、処理をS18に進める。
S18において、方式決定部36は、実行性能を推定した複数のメモリ制御方式の中から、最適メモリ制御方式を選択する。続いて、S19において、方式決定部36は、管理装置22が、選択した最適メモリ制御方式により第1記憶部14および不揮発記憶部16にアクセスするように、アクセス管理部34に対して設定処理をする。方式決定部36は、S19の処理を終了すると本フローを終了する。
図10は、実行時間の算出処理の第1例を説明するための図である。実行性能として、実行時間を推定する場合、取得部44は、検出期間におけるメモリアクセス回数、検出期間にアクセスしたページ数、および、実行時間の実測値を取得する。そして、推定部46は、予め定められた推定モデル(例えば演算式)に、メモリアクセス回数、ページ数および実行時間の実測値を代入して、複数のメモリ制御方式のそれぞれについての実行時間の推定値を算出する。
例えば、100%のページを第2アクセス処理に設定するメモリ制御方式により管理装置22を動作させ、100%のページを第1アクセス処理に設定するメモリ制御方式により管理装置22を動作させた場合における実行時間を推定する場合、推定部46は、下記の式(1)および式(2)に表される式を演算して、実行時間を算出する。
T1=T2−Δt…(1)
Δt=(NA×(LS−LD))−(NP×T)…(2)
式(1)において、T1は、100%のページを第1アクセス処理に設定するメモリ制御方式により管理装置22を動作させた場合における実行時間の推定値である。T2は、100%のページを第2アクセス処理に設定するメモリ制御方式により管理装置22を動作させた場合における実行時間の実測値である。
また、式(2)において、NAは、メモリアクセス回数である。NPは、アクセスしたページ数である。
また、式(2)において、LDは、第1記憶部14に対するメモリアクセスのレイテンシである。LSは、不揮発記憶部16に対するメモリアクセスのレイテンシである。また、Tは、1ページ分のデータを不揮発記憶部16から第1記憶部14に転送する転送時間である。LD、LSおよびTは、予め測定済みの値であり、推定モデルに定数として組み込まれる。
従って、例えば、推定モデル記憶部26は、上述の式(1)および式(2)により表される演算式を推定モデルとして記憶する。推定部46は、100%のページを第2アクセス処理に設定するメモリ制御方式により管理装置22を動作させた場合における、検出期間におけるメモリアクセス回数、ページ数および実行時間の実測値を取得する。そして、推定部46は、上述の式(1)および式(2)により表される演算式と、検出期間におけるメモリアクセス回数、ページ数および実行時間の実測値とに基づき、100%のページを第1アクセス処理に設定するメモリ制御方式により管理装置22を動作させた場合の実行時間を推定する。
また、X%のページ(Xは、0より大きく100より小さい値)を第1アクセス処理に設定するメモリ制御方式により管理装置22を動作させた場合の実行時間を推定する場合、推定部46は、次のような処理を行う。
まず、推定部46は、100%のページを第2アクセス処理に設定するメモリ制御方式により管理装置22を動作させた場合における、検出期間におけるメモリアクセス回数、ページ数および実行時間の実測値を取得する。続いて、推定部46は、検出期間にアクセスしたページの中から、アクセス数の多い上位のX%のページを選択する。推定部46は、選択したX%のページのページ数を、式(2)におけるNPに代入する。
さらに、推定部46は、選択したX%のページに対するメモリアクセス回数を算出する。推定部46は、算出したX%のページに対するメモリアクセス回数を、式(2)におけるNAに代入する。そして、推定部46は、上記の式(1)および式(2)に表される式を演算して、実行時間を算出する。これにより、推定部46は、X%のページを第1アクセス処理に設定するメモリ制御方式により管理装置22を動作させた場合の実行時間を推定することができる。
図11は、実行時間の算出処理の第2例を説明するための図である。図10に示した例は、アクセス数の多い上位X%のページ数(NP)に対する、上位X%のページへのメモリアクセス回数(NA)の割合が大きいため、Δtが正の値となる場合を示している。しかし、図11に示すように、アクセス数の多い上位X%のページ数(NP)に対する、上位X%のページ数へのメモリアクセス回数(NA)の割合が小さい場合、Δtが負の値となる。つまり、メモリアクセスが多数のページに分散している場合、Δtが負の値となる。この場合、ページ転送によるオーバヘッドが相対的に大きくなり、管理装置22は、第1アクセス処理を実行しても、実行時間を短くすることができない。
従って、推定部46は、第1アクセス処理に設定するページのパーセンテージ(つまり、X)を変えた複数のメモリ制御方式についての実行時間を推定する。そして、選択部48は、複数のメモリ制御方式の中から、より適切な実行時間となるような1つのメモリ制御方式を選択する。
図12は、第1アクセス処理に設定されたページの比率に対する実行性能を示す図である。情報処理システム10は、複数のアプリケーションプログラムを同時に並行して実行することができる。
複数のアプリケーションプログラムを同時に実行する場合、アプリケーションプログラム毎に、メモリ制御方式に対する実行性能を表す特性が異なる。例えば、図12の例では、第1のアプリケーションプログラムは、第1アクセス処理に設定されたページの比率が低いメモリ制御方式で動作させた場合でも、実行性能は高い。これは、第1のアプリケーションプログラムが局所性の高いメモリアクセス(同一の領域に繰り返して書き込みをするようなアクセス)を実行するためであると考えられる。
また、例えば、図12の例では、第2のアプリケーションプログラムは、第1アクセス処理に設定されたページの比率が小さいと、実行性能が著しく低い。これは、第1のアプリケーションプログラムが局所性の低いメモリアクセス(多数の領域に分散して書き込みがされるようなアクセス)を実行するためであると考えられる。
従って、推定部46は、複数のアプリケーションプログラムを実行する場合、それぞれのアプリケーションプログラムがアクセスする記憶領域毎に、実行性能を推定する。選択部48は、それぞれのアプリケーションプログラムがアクセスする記憶領域毎に、メモリ制御方式を選択する。そして、設定部50は、それぞれのアプリケーションプログラムがアクセスする記憶領域毎に、メモリ制御方式を設定する。
図13は、メモリ制御方式の選択方法の第1例を説明するための図である。例えば、選択部48は、実行性能が予め定められた条件を満たすメモリ制御方式のうち、実行性能が最も小さいまたは最も大きいメモリ制御方式を選択する。
例えば、選択部48は、管理装置22が基準のメモリ制御方式で動作した場合における実行性能の実測値を所定数倍して基準値を算出する。例えば、選択部48は、100%のページが第2アクセス処理に設定されたメモリ制御方式により管理装置22が動作した場合における実行性能の実測値を所定数倍して基準値を算出する。
そして、推定された実行性能が基準値より大きいことが条件である場合、選択部48は、推定された実行性能が基準値より大きいメモリ制御方式のうちの、最小の実行性能のメモリ制御方式を選択する。あるいは、推定された実行性能が基準値より小さいことが条件である場合、選択部48は、推定された実行性能が基準値より小さいメモリ制御方式のうちの、最大の実行性能のメモリ制御方式を選択する。これにより、選択部48は、少なくとも基準の条件を満たしながら、最低のコストで管理装置22を動作させることができる。
図14は、メモリ制御方式の選択方法の第2例を説明するための図である。また、選択部48は、実行性能が予め定められた条件を満たす制御方式が存在しない場合には、実行性能が最も小さいまたは最も大きいメモリ制御方式を選択する。
例えば、選択部48は、管理装置22が基準のメモリ制御方式で動作した場合における実行性能の実測値の所定数倍の値を基準値とする。そして、推定された実行性能が基準値より大きいことが条件である場合において、推定された実行性能が基準値より大きいメモリ制御方式が存在しない場合、選択部48は、最大の実行性能のメモリ制御方式を選択する。あるいは、推定された実行性能が基準値より小さいことが条件である場合において、推定された実行性能が基準値より小さいメモリ制御方式が存在しない場合には、選択部48は、最小の実行性能のメモリ制御方式を選択する。これにより、選択部48は、最も実行性能の良いメモリ制御方式により管理装置22を動作させることができる。
図15は、メモリ制御方式の選択方法の第3例を説明するための図である。例えば、選択部48は、管理装置22が、最もコストの高いメモリ制御方式で動作した場合における実行性能の推定値を所定割合低下させて基準値を算出してもよい。例えば、選択部48は、100%のページが第1アクセス処理に設定されたメモリ制御方式により管理装置22が動作した場合における実行性能の推定値における所定割合低下した値を基準値として算出してもよい。
例えば、選択部48は、複数のページの全てを第1アクセス処理に設定するメモリ制御方式により管理装置22が動作した場合における実行時間の推定値より所定割合長い基準値(基準時間)を算出する。そして、選択部48は、推定した実行時間が基準値(基準時間)より短いメモリ制御方式のうちの、推定した実行時間が最も長いメモリ制御方式を選択してもよい。これにより、選択部48は、基準のコストを超えない最も実行性能の良いメモリ制御方式を選択することができる。
以上のように、第1実施形態に係る情報処理システム10は、方式決定部36が、動作情報に基づき適切なメモリ制御方式を選択し、選択したメモリ制御方式により管理装置22に第1記憶部14および不揮発記憶部16にアクセスさせる。これにより、第1実施形態に係る情報処理システム10によれば、例えば実行するアプリケーションプログラム毎に適切な実行性能が得られるように、管理装置22を動作させることができる。
(第2実施形態)
つぎに、第2実施形態について説明する。第2実施形態は、第1実施形態の変形例である。
図16は、第2実施形態に係る方式決定部36の構成を推定モデル記憶部26とともに示す図である。第2実施形態に係る方式決定部36は、第1実施形態に係る方式決定部36と比較して、タイミング発生部42に代えて、変化検出部52を有する。
変化検出部52は、情報処理システム10の動作中の全期間において、動作情報を動作情報検出部24から取得する。変化検出部52は、取得した動作情報が所定の変化をした場合に、取得部44に対して検出期間を開始する指示を与える。所定の変化とは、例えば、動作情報における特定のパラメータが一定時間内に所定値以上増加した場合または減少した場合である。
取得部44は、変化検出部52から開始指示を受け取る。そして、取得部44は、開始指示を受け取ってから一定の期間(検出期間)における、動作情報を動作情報検出部24から取得する。
図17は、動作情報の波形図、動作情報の変化点および選択されたメモリ制御方式の一例を示す図である。第2実施形態において、方式決定部36は、動作情報に所定の変化が検出される毎に、メモリ制御方式の選択および設定を行う。より具体的には、方式決定部36は、所定の変化が検出された後に検出期間を設定し、検出期間において動作情報を取得する。続いて、方式決定部36は、取得した動作情報に基づきメモリ制御方式を選択する。そして、方式決定部36は、選択したメモリ制御方式により管理装置22が第1記憶部14および不揮発記憶部16にアクセスするように、アクセス管理部34に対して設定処理をする。
変化検出部52が取得する動作情報と取得部44が取得する動作情報とは、同一であっても異なってもよい。変化検出部52が取得する動作情報と取得部44が取得する動作情報とが同一であり、且つ、検出期間において基準のメモリ制御方式に切り換えない場合、方式決定部36は、所定の変化を検出した時点までに取得している動作情報を用いて、メモリ制御方式を選択してもよい。これにより、方式決定部36は、検出期間を設定せずに、メモリ制御方式の切り換えをすることができる。
また、変化検出部52が取得する動作情報と取得部44が取得する動作情報とが異なる場合において、動作情報検出部24は、制約により、変化検出部52が取得する動作情報と取得部44が取得する動作情報とを同時に出力することができない場合がある。このような場合、変化検出部52は、情報処理システム10の動作中において、変化点を検出するために必要な動作情報を動作情報検出部24に出力させる。続いて、変化検出部52は、所定の変化を検出した場合、動作情報検出部24に切り換え指示を与え、メモリ制御方式を選択するために必要な動作情報を動作情報検出部24に出力させる。そして、変化検出部52は、検出期間が経過した後、動作情報検出部24に切り換え指示を与え、変化点を検出するために必要な動作情報を動作情報検出部24に出力させる。
変化検出部52は、例えば、プリフェッチ成功率が一定期間内に所定値以上増加または減少する点を、所定の変化が生じた点として検出してもよい。プリフェッチ成功率とは、プリフェッチのための先読みアルゴリズムが、アプリケーションプログラムにどの程度適合しているかを表す値である。具体的には、第1記憶部14または不揮発記憶部16からラストレベルキャッシュ(例えば、L3)へロードされたデータ総量(総メモリアクセス量)を、Mとする。プリフェッチにより、アプリケーションプログラムによる実際の使用前にラストレベルキャッシュへロードされたデータ量をPとする。プリフェッチ成功率は、Mに対するPの割合である。
なお、変化検出部52は、プリフェッチ成功率に限らず、各種キャッシュミス率(L1キャッシュミス率、L2キャッシュミス率、L3キャッシュミス率またはラストレベルキャッシュミス率)等に所定の変化が生じたか否かを判断してもよい。
以上のように、第2実施形態に係る情報処理システム10は、方式決定部36が、動作情報の変化点においてメモリ制御方式を切り換える。これにより、第2実施形態に係る情報処理システム10によれば、適切な位置でメモリ制御方式を切り換えて、適切な実行性能が得られるように管理装置22を動作させることができる。
(第3実施形態)
つぎに、第3実施形態について説明する。第3実施形態は、第2実施形態の変形例である。
図18は、第3実施形態に係る情報処理システム10の構成を示す図である。第3実施形態に係る情報処理装置18は、第2実施形態に係る情報処理装置18と比較して、結果記憶部62と、決定モデル記憶部64とをさらに有する。
結果記憶部62は、過去の動作情報の変化内容を表す変化情報を記憶する。さらに、結果記憶部62は、過去に選択されたメモリ制御方式を記憶する。結果記憶部62は、動作情報の変化内容と選択されたメモリ制御方式とを時系列に対応付けて記憶する。
決定モデル記憶部64は、動作情報の変化内容から、直接、メモリ制御方式を決定するための決定モデルを記憶する。決定モデルは、方式決定部36により生成されて、決定モデル記憶部64に書き込まれる。
図19は、第3実施形態に係る方式決定部36の構成を推定モデル記憶部26、結果記憶部62および決定モデル記憶部64とともに示す図である。第3実施形態に係る情報処理装置18は、第2実施形態に係る方式決定部36と比較して、学習部68と、決定部70と、モード設定部72とをさらに有する。
変化検出部52は、検出した動作情報の変化内容を表す変化情報を結果記憶部62に書き込む。例えば、変化検出部52は、所定の変化を検出したそれぞれの時点における、動作情報の変化の方向(例えば立ち上がりまたは立ち下り)および変化の大きさを表す変化情報を結果記憶部62に書き込む。
また、選択部48は、所定の変化を検出したことにより選択したメモリ制御方式を結果記憶部62に書き込む。結果記憶部62は、動作情報の変化内容を表す変化情報と選択されたメモリ制御方式とを対応付けて記憶する。
学習部68は、結果記憶部62に記憶された、動作情報の変化内容を表す変化情報と選択されたメモリ制御方式との関係に基づき、動作情報の変化内容からメモリ制御方式を決定するための決定モデルを生成する。例えば、学習部68は、学習処理またはクラスタリング処理等を実行することにより動作情報の複数の変化内容のそれぞれと、選択されたメモリ制御方式との対応関係を検出する。そして、学習部68は、複数の変化内容のそれぞれと選択されたメモリ制御方式との対応関係に基づき、決定モデルを生成する。学習部68は、生成した決定モデルを決定モデル記憶部64に書き込む。
決定部70は、変化検出部52が動作情報から所定の変化を検出した時点における、動作情報の変化の内容を表す変化情報を取得する。例えば、決定部70は、変化情報として、変化検出部52が動作情報から所定の変化を検出した時点における、動作情報の変化の方向および動作情報の変化の大きさを取得する。そして、決定部70は、取得した変化情報と決定モデル記憶部64に記憶された決定モデルとに基づき、メモリ制御方式を決定する。決定部70は、決定したメモリ制御方式を設定部50に通知する。
モード設定部72は、実行性能を推定してメモリ制御方式を選択する第1のモードと、実行性能を推定せずにメモリ制御方式を決定する第2のモードとを切り換える。モード設定部72は、情報処理システム10が動作を開始した段階においては、第1のモードに設定する。モード設定部72は、結果記憶部62に十分な変化情報および選択情報が蓄積されたことにより精度の良い決定モデルが生成された後に、第2のモードに設定する。また、モード設定部72は、ユーザの指示により第1のモードと第2のモードとを切り換えてもよい。
第1のモードに設定されている場合、取得部44、推定部46、選択部48、設定部50および変化検出部52は、第2実施形態と同様に動作する。また、第1のモードに設定されている場合、決定部70は、機能を停止している。
第2のモードに設定されている場合、取得部44、推定部46および選択部48は、機能を停止している。また、第2のモードに設定されている場合、変化検出部52は、取得部44への検出期間を開始する指示の出力を停止し、決定部70へ変化情報を与える。第2のモードに設定されている場合、決定部70は、取得した変化情報と決定モデル記憶部64に記憶された決定モデルとに基づき、メモリ制御方式を決定する。そして、第2のモードに設定されている場合、設定部50は、決定部70により決定されたメモリ制御方式により管理装置22が第1記憶部14および不揮発記憶部16にアクセスするように、アクセス管理部34に対して設定処理をする。
図20は、動作情報の変化、実行性能および決定されたメモリ制御方式を示す図である。学習部68が学習した結果、決定モデルは、動作情報が第1閾値より大きい変化で立ち上がった場合に第1方式を選択し、動作情報が第2閾値より大きい変化で立ち下がった場合および第1閾値以下の変化で立ち上がった場合に第2方式を選択するモデルとなったとする。
このような決定モデルを用いると、図20の時刻t1のように、方式決定部36は、動作情報が第1閾値より大きい変化で立ち上がった場合、第1方式に決定する。また、図20の時刻t2およびt4のように、方式決定部36は、動作情報が第2閾値より大きい変化で立ち下がった場合、第2方式に決定する。また、図20の時刻t3のように、方式決定部36は、動作情報が第1閾値以下の変化で立ち上がった場合、第2方式に決定する。
以上のように、第3実施形態に係る情報処理システム10は、方式決定部36が、過去の動作情報の変化を表す変化情報と過去に選択されたメモリ制御方式を表す選択情報との関係に基づき、変化情報から直接メモリ制御方式を決定するための決定モデルを生成する。そして、方式決定部36は、第2モードに設定された場合、動作情報の変化を表す変化情報から、メモリ制御方式を決定する。これにより、第3実施形態に係る情報処理システム10によれば、実行性能を推定せずにメモリ制御方式を決定することができる。従って、情報処理システム10によれば、少ない演算量でメモリ制御方式を高速に決定することができる。
(第4実施形態)
つぎに、第4実施形態について説明する。
図21は、第1情報処理システム110および第2情報処理システム120を示す図である。例えば、社会インフラシステム等に用いられるエッジシステムは、長期に運用がされる。このようなエッジシステムは、高機能化および高精度化等を図るために、運用途中にアプリケーションプログラムが変更される場合がある。このような場合、設計者は、エッジシステムのハードウェア構成を再設計しなければならない。
例えば、現在、現行アプリケーションプログラムを実行する第1情報処理システム110を運用しているとする。現行アプリケーションプログラムをバージョンアップして、新アプリケーションプログラムを実行しようとした場合、第1情報処理システム110のハードウェア能力が足りないと予測される。この場合、設計者は、第1情報処理システム110のハードウェア構成を変更することにより、新アプリケーションプログラムを実行するために十分なハードウェア構成を有する第2情報処理システム120を設計しなければならない。
例えば、第1情報処理システム110は、情報処理装置18と、第1記憶部14とを備える。設計者は、このような構成の第1情報処理システム110に、さらに、主記憶装置として不揮発記憶部16を加えた第2情報処理システム120を設計する。第2情報処理システム120は、主記憶装置の容量が増えることにより、二次記憶装置へのデータの退避が少なくなったり、あるいは、データが不揮発記憶部16上に保存されるようになるため二次記憶装置が不要になりデータの移動が削減されるため、より短い実行時間で処理を完了させることができる。
ここで、設計者は、第2情報処理システム120がどの程度の仕様の不揮発記憶部16を備えればよいかを判断しなければならない。例えば、第2情報処理システム120は、高速な不揮発記憶部16を備えれば、高速に動作することはできるが、コストは高くなる。反対に、第2情報処理システム120は、低速な不揮発記憶部16を備えれば、コストは低いが、高速に動作することはできない。従って、設計者は、新アプリケーションプログラムを実行した場合の実行性能を考慮しながら、第2情報処理システム120を設計しなければならない。
しかし、第2情報処理システム120を実際に製造して実行性能を測定した場合、第2情報処理システム120の設計時間が長くなり、設計コストが高くなってしまう。
図22は、第4実施形態に係る推定システム130の構成を示す図である。推定システム130は、第1情報処理システム110と、推定装置140とを備える。第1情報処理システム110は、第2情報処理システム120により実行される予定のアプリケーションプログラムを実行する。
推定装置140は、第2情報処理システム120がアプリケーションプログラムを実行した場合におけるメモリアクセスの実行性能を推定する。第2情報処理システム120は、第1情報処理システム110のハードウェア構成を変更したシステムである。例えば、第2情報処理システム120は、情報処理装置18と第1記憶部14とを備える第1情報処理システム110に、不揮発記憶部16を加えた構成である。第2情報処理システム120は、第1実施形態において説明した情報処理システム10と同一の構成である。推定装置140は、通常のコンピュータ等であってもよい。
推定装置140は、アプリケーションプログラムを実行した第1情報処理システム110の動作情報の時系列データを取得する。そして、推定装置140は、取得した動作情報の時系列データに基づき、第2情報処理システム120がアプリケーションプログラムを実行した場合における、第1記憶部14および不揮発記憶部16に対するメモリアクセスの実行性能を推定して出力する。
図23は、第4実施形態に係る推定装置140の構成を示す図である。推定装置140は、取得部44と、動作情報記憶部142と、分割部144と、推定モデル記憶部26と、推定部46と、選択部48と、出力部146とを備える。
取得部44は、アプリケーションプログラムを実行した第1情報処理システム110の動作情報の時系列データを取得する。例えば、取得部44は、アプリケーションプログラムの全実行期間の動作情報の時系列データを取得する。取得部44は、取得した動作情報の時系列データを動作情報記憶部142に書き込む。動作情報記憶部142は、取得部44により取得された動作情報の時系列データを記憶する。
分割部144は、動作情報記憶部142に記憶された動作情報の時系列データを時間方向に分割することにより複数の部分情報を生成する。分割部144は、例えば、動作情報の時系列データを一定時間毎に区切って複数の部分情報を生成する。また、分割部144は、動作情報の時系列データを不均等な間隔毎に区切って複数の部分情報を生成してもよい。また、分割部144は、第2実施形態と同様に、動作情報の時系列データから動作情報の変化点を検出し、変化点において動作情報の時系列データを区切って複数の部分情報を生成してもよい。
推定モデル記憶部26は、動作情報から、第1記憶部14および不揮発記憶部16に対するメモリアクセスの実行性能を推定するための推定モデルを記憶する。推定モデルは、第1実施形態において説明した推定モデルと同一である。
推定部46は、複数の部分情報のそれぞれについて、第1情報処理システム110が実行した処理を、第2情報処理システム120が複数のメモリ制御方式のそれぞれにより実行した場合における、第1記憶部14および不揮発記憶部16に対するメモリアクセスの実行性能を推定する。この場合において、推定部46は、対応する部分情報および推定モデルに基づき、複数のメモリ制御方式のそれぞれについての実行性能を推定する。
例えば、推定部46は、実行性能として、第1情報処理システム110が実行した処理を、第2情報処理システム120が対応するメモリ制御方式で実行した場合における実行時間を推定する。また、推定部46は、実行性能として、第1情報処理システム110が実行した処理を、第2情報処理システム120が対応するメモリ制御方式で実行した場合における消費電力または寿命減少量(摩耗度)を推定してもよい。1つの部分情報に対する推定部46による推定処理は、第1実施形態において説明した推定処理と同一である。
選択部48は、複数の部分情報のそれぞれについて、推定された複数のメモリ制御方式のそれぞれについての実行性能に基づき複数のメモリ制御方式のうちの何れか1つの最適メモリ制御方式を選択する。1つの部分情報についての選択部48による選択処理は、第1実施形態において説明した選択処理と同一である。
出力部146は、選択部48から、複数の部分情報のそれぞれについて選択された複数の最適メモリ制御方式を取得する。さらに、出力部146は、複数の部分情報のそれぞれについて選択された複数の最適メモリ制御方式のそれぞれについて、推定部46から、対応する実行性能を取得する。
出力部146は、複数の部分情報のそれぞれについて選択された複数の最適メモリ制御方式についての複数の実行性能を合計した合計実行性能を算出する。そして、出力部146は、算出した合計実行性能を出力する。例えば、出力部146は、算出した合計実行性能を表示装置等に表示させる。
さらに、出力部146は、複数の部分情報のそれぞれについて選択された複数の最適メモリ制御方式の時系列の並びを示す方式選択情報を出力してもよい。さらに、出力部146は、メモリ制御方式の切り換え時刻も併せて出力してもよい。
図24は、第4実施形態に係る推定装置140による処理の流れを示すフローチャートである。第1実施形態に係る推定装置140は、図24に示すフローチャートに従って処理を実行する。
まず、S111において、推定装置140は、アプリケーションプログラムを実行した第1情報処理システム110の動作情報の時系列データを取得する。例えば、推定装置140は、アプリケーションプログラムの全実行期間の動作情報の時系列データを取得する。そして、推定装置140は、取得した動作情報の時系列データを記憶する。
続いて、S112において、推定装置140は、記憶した動作情報の時系列データを時間方向に分割して複数の部分情報を生成する。続いて、推定装置140は、複数の部分情報のそれぞれ毎に、S113とS118との間のループ処理を実行する。
S113とS118との間のループ処理内において、まず、S114、S115およびS116のサブループ処理を実行する。サブループ処理において、推定装置140は、対応する部分情報および推定モデルに基づき、複数のメモリ制御方式のそれぞれについての実行性能を推定する。全てのメモリ制御方式について実行性能を推定した場合、推定装置140は、処理をS117に進める。
S117において、推定装置140は、実行性能を推定した複数のメモリ制御方式の中から、1つの最適メモリ制御方式を選択する。そして、複数の部分情報の全てについて、最適メモリ制御方式を選択した場合、推定装置140は、処理をS119に進める。
S119において、推定装置140は、複数の部分情報について選択した複数の最適メモリ制御方式についての複数の実行性能を取得し、取得した複数の実行性能を合計した合計実行性能を算出する。そして、推定装置140は、算出した合計実行性能を出力する。さらに、推定装置140は、選択された複数の最適メモリ制御方式を時系列に並べた方式選択情報を出力してもよい。さらに、推定装置140は、メモリ制御方式の切り換え時刻も出力してもよい。推定装置140は、S119の処理を終えると、本フローを終了する。
図25は、動作情報、実行性能、および、部分情報毎に決定されたメモリ制御方式を示す図である。推定装置140は、動作情報の時系列データを時間方向に分割して、複数の部分情報を生成する。さらに、推定装置140は、複数の部分情報毎に、複数のメモリ制御方式のそれぞれについての実行性能を推定する。図25の例においては、推定装置140は、第1方式、第2方式および第3方式のそれぞれについて、実行性能を推定している。
続いて、推定装置140は、複数の部分情報毎に、推定した実行性能に基づき最適メモリ制御方式を選択する。そして、推定装置140は、複数の部分情報について選択した複数の最適メモリ制御方式についての複数の実行性能を合計した合計実行性能を算出する。
図26は、アプリケーションプログラムの種類毎および不揮発記憶部16の種類毎の処理時間の推定値の一例を示す図である。
例えば、現在、第1記憶部14のみを主記憶装置として備える第1情報処理システム110は、現行アプリケーションプログラムを実行している。例えば、画像認識処理のアプリケーションを例に説明する。設計者は、将来、現行アプリケーションプログラムに代えて、現行アプリケーションより認識精度が高い(高性能な)結果が得られるアルゴリズムが実装されている第1の新アプリケーションプログラム、または、第1の新アプリケーションプログラムよりも高性能の第2の新アプリケーションプログラムの採用を検討している。さらに、アプリケーションプログラムの変更に伴い、ハードウェアを、不揮発記憶部16を備えた第2情報処理システム120へ変更することも検討している。このような場合、設計者は、推定装置140を用いて、第1の新アプリケーションプログラムまたは第2の新アプリケーションプログラムの何れを採用するか、および、第2情報処理システム120の構成をどうすればよいかを検討することができる。
以上の検討をする場合、まず、推定装置140は、第1情報処理システム110に第1の新アプリケーションプログラムを実行させ、第1情報処理システム110から動作情報の時系列データを取得する。そして、推定装置140は、低速の不揮発記憶部16を備えた第2情報処理システム120が第1の新アプリケーションプログラムを実行した場合の実行時間と、高速の不揮発記憶部16を備えた第2情報処理システム120が第1の新アプリケーションプログラムを実行した場合の実行時間とを推定する。
続いて、推定装置140は、第1情報処理システム110に第2の新アプリケーションプログラムを実行させ、第1情報処理システム110から動作情報の時系列データを取得する。そして、推定装置140は、低速の不揮発記憶部16を備えた第2情報処理システム120が第2の新アプリケーションプログラムを実行した場合の実行時間と、高速の不揮発記憶部16を備えた第2情報処理システム120が第2の新アプリケーションプログラムを実行した場合の実行時間とを推定する。
そして、設計者は、このように推定された各実行時間を参照して、第1の新アプリケーションプログラムまたは第2の新アプリケーションプログラムの何れを採用するかを決定する。さらに、設計者は、低速の不揮発記憶部16を備えた第2情報処理システム120または高速の不揮発記憶部16を備えた第2情報処理システム120の何れを採用するかを決定する。
ここで、設計者は、第1情報処理システム110により現行アプリケーションプログラムを実行させた場合の実行時間を基準の処理時間とし、この基準の処理時間よりも推定された処理時間が短いことを第1の条件とした。さらに、設計者は、第1の条件を満たすなかで、コストが低く認識性能が高い(高性能)ことを第2の条件とした。
第2の新アプリケーションプログラムは、第1の新アプリケーションプログラムよりも認識性能が高い(高性能)ので条件をクリアすれば、前者がのぞましい。低速の不揮発記憶部16は、高速の不揮発記憶部16よりもコストが低い。従って、図26の例のような結果が得られた場合、第1の条件および第2の条件を満たすのは、第2の新アプリケーションプログラムを、低速の不揮発記憶部16を備える第2情報処理システム120により実行した場合となる。これは、例えば、第2の新アプリケーションプログラムの方が使用するメモリが大きいため、第1記憶部14のみの処理では、第1記憶部14とOSの仮想記憶のスワップ領域との間のデータの入れ替え処理であるスワップ処理が多く、第2の新アプリケーションプログラムの方が遅かった。しかし、第2の新アプリケーションプログラムの処理の方が、大容量メモリを利用すると性能が出やすい処理だった。このため、第2の新アプリケーションプログラムの方が、第1の新アプリケーションプログラムよりも認識性能が高い(高性能)のにもかかわらず、不揮発記憶部16と組み合わせて処理する場合は、逆に処理時間が短く、低速の不揮発記憶部16の利用でも処理時間の基準を満たしたという例である。このように設計者は、推定装置140により推定された結果を参照することにより、将来実行するアプリケーションプログラムおよびシステムのハードウェア構成を決定することができる。
図27は、不揮発記憶部16の種類毎およびメモリ制御方式毎の処理時間の推定値の一例を示す図である。推定装置140は、メモリ制御方式毎に、合成実行性能を算出してもよい。この場合、推定装置140は、部分情報毎に最適メモリ制御方式を選択する処理は実行せずに、メモリ制御方式毎に合計の実行性能を算出する。
図27において、推定された実行時間を表す棒グラフに付けられている比率は、下記のように、第1アクセス処理に設定されたページ数の割合(a)と第2アクセス処理に設定されたページ数の割合(b)との比率(a:b)を表す。
例えば、設計者は、第1情報処理システム110により現行アプリケーションプログラムを実行させた場合の実行時間を基準の処理時間とし、この基準の処理時間よりも推定された処理時間が短いことを第1の条件とした。さらに、設計者は、第1の条件を満たすなかで、コストが最も低いことを第2の条件とした。
第2情報処理システム120は、第1アクセス処理に設定されたページの比率が多い方が、使用する第1記憶部14の容量(DRAM量)が大きくなるため消費電力が大きくなり、実行コストが高い。また、低速の不揮発記憶部16は、高速の不揮発記憶部16よりもコストが低い。従って、図27の例のような結果が得られた場合、第1の条件および第2の条件を満たすのは、新アプリケーションプログラムを、低速の不揮発記憶部16を備える第2情報処理システム120により、比率が2:8のメモリ制御方式で実行した場合となる。このように設計者は、推定装置140により推定された結果を参照することにより、将来実行するシステムのハードウェア構成およびメモリ制御方式を決定することができる。
以上のように、第4実施形態に係る推定システム130は、第1情報処理システム110がアプリケーションプログラムを実行した場合に得られる動作情報から、第1情報処理システム110のハードウェア構成を変更した第2情報処理システム120の実行性能を推定する。この場合において、推定システム130は、動作情報の時系列データを時間方向に分割した複数の部分情報を生成し、複数の部分情報のそれぞれ毎に実行性能を推定する。これにより、推定システム130は、精度良く第2情報処理システム120の実行性能を推定することができる。
(第5実施形態)
つぎに、第5実施形態について説明する。第5実施形態は、第4実施形態の変形例である。
図28は、第5実施形態に係る推定装置140の構成を示す図である。第5実施形態に係る推定装置140は、第5実施形態に係る推定装置140と比較して、修正部152をさらに有する。
修正部152は、選択部48により、複数の部分情報について選択された複数の最適メモリ制御方式を取得する。修正部152は、メモリ制御方式の切り替えにより生じるオーバヘッド実行性能を加えた合計実行性能が最適となるように、複数の部分情報について選択された複数の最適メモリ制御方式を修正する。オーバヘッド実行性能は、メモリ制御方式の切り替えにより生じるオーバヘッドの実行性能(例えば、実行時間、消費電力または寿命減少量)である。そして、修正部152は、修正した後における、複数の最適メモリ制御方式を出力部146に与える。
出力部146は、修正後における複数の最適メモリ制御方式についての複数の実行性能を取得する。そして、出力部146は、修正後における複数の最適メモリ制御方式についての複数の実行性能を合計した合計実行性能を算出する。
図29は、メモリ制御方式の切り替え時におけるオーバヘッド時間を考慮した場合の実行時間の一例を示す図である。例えば、推定部46は、実行性能として、第2情報処理システム120においてアプリケーションプログラムを対応するメモリ制御方式で実行した場合における実行時間を推定する。この場合、修正部152は、メモリ制御方式の切り替えにより生じるオーバヘッド時間を加えた合計実行時間が短くなるように、複数の部分情報について選択された複数の最適メモリ制御方式を修正する。
例えば、第1方式→第2方式→第1方式と切り替わる場合について考える。オーバヘッドを考慮せずにメモリ制御方式の切り換えをした場合には、合計実行時間は、図29のAのようになる。
一方、切り替えをしない場合、つまり、第1方式を継続する場合、合計実行時間は、図29のBのようになる。第1方式よりも第2方式の方が実行時間が短いので、AとBとを比較すると、Aの方が合計実行時間は短くなる。
ここで、第1方式から第2方式への切り替わりにより生じるオーバヘッド時間および第2方式から第1方式への切り替わりにより生じるオーバヘッド時間の合計値が、第1方式の実行時間と第2方式の実行時間の差より小さい場合(第1オーバヘッド時間の場合)、図29のCのように、切り替えを行った方が合計実行時間が短くなる。しかし、合計値が第1方式の実行時間と第2方式の実行時間の差より大きい場合(第2オーバヘッド時間の場合)、図29のDのように、切り替えを行った方が合計実行時間が長くなる。
従って、修正部152は、第1方式→第2方式→第1方式と切り替わる場合、第1方式から第2方式への切り替わりにより生じるオーバヘッド時間および第2方式から第1方式への切り替わりにより生じるオーバヘッド時間の合計値が、第1方式の実行時間から第2方式の実行時間を減じた値より大きい場合、図29のBのように、切り替えを行わずに、第1方式を継続する。これにより、修正部152は、メモリ制御方式の切り替えにより生じるオーバヘッド時間を加えた合計実行時間が短くなるように、複数の部分情報について選択された複数の最適メモリ制御方式を修正することができる。
図30は、選択部48による選択後のメモリ制御方式および修正部152による修正後のメモリ制御方式を示す図である。例えば、推定部46は、実行性能として、第2情報処理システム120においてアプリケーションプログラムを対応するメモリ制御方式で実行した場合における実行時間を推定する。この場合、修正部152は、選択された複数の最適メモリ制御方式の中で、2つの第1メモリ制御方式に挟まれた第2メモリ制御方式の実行時間が、後段の第1メモリ制御方式の実行時間の所定数倍より短い場合、第2メモリ制御方式を第1メモリ制御方式に置き換える。
例えば、図30における、R1、R3、R5、R7、R9およびR11のメモリ制御方式は、第1方式である。R2、R4、R6、R8およびR10のメモリ制御方式は、第2方式である。R2、R3、R4、R5、R6、R7、R8、R9およびR11の実行時間は、1である。R10の実行時間は、8である。
ここで、修正部152は、2つの第1メモリ制御方式に挟まれた第2メモリ制御方式の実行時間が、後段の第1メモリ制御方式の実行時間の2倍より短い場合、第2メモリ制御方式を第1メモリ制御方式に置き換えるとする。この場合、R1およびR3に挟まれたR2の実行時間は1であり、R1およびR3のうちの後段のR3の実行時間は1である。従って、R2の実行時間は、R3の実行時間の2倍よりも短いので、修正部152は、R2のメモリ制御方式を第2方式から第1方式に置き換える。同様に、修正部152は、R4、R6およびR8のメモリ制御方式も、第2方式から第1方式に置き換える。これにより、修正部152は、切り替えにより生じるオーバヘッド時間を加えた場合の合計実行時間が、切り替えをしない場合の実行時間より長くなる場合には、切り換えしないようにメモリ制御方式を修正することができる。
一方、R9およびR11に挟まれたR10の実行時間は8であり、R9およびR11のうちの後段のR11の実行時間は1である。従って、R10の実行時間は、R1の実行時間の2倍よりも長いので、修正部152は、R10のメモリ制御方式を、そのまま第2方式とする。これにより、修正部152は、切り替えにより生じるオーバヘッド時間を加えた場合の合計実行時間が、切り替えをしない場合の実行時間より短い場合には、切り換えするようにメモリ制御方式を修正することができる。
従って、修正部152は、メモリ制御方式の切り替えにより生じるオーバヘッド時間を加えた合計実行時間が短くなるように、複数の部分情報のそれぞれについて選択されたメモリ制御方式を修正することができる。
以上のように、第5実施形態に係る推定システム130は、メモリ制御方式の切り替えにより生じるオーバヘッド実行性能を考慮して、第2情報処理システム120の実行性能を推定する。これにより、第5実施形態に係る推定システム130によれば、より精度良く第2情報処理システム120の実行性能を推定することができる。
(第6実施形態)
つぎに、第6実施形態について説明する。第6実施形態は、第3実施形態の変形例である。
図31は、第6実施形態に係る方式決定部36の構成を推定モデル記憶部26、結果記憶部62および決定モデル記憶部64とともに示す図である。第6実施形態に係る情報処理装置18は、第3実施形態に係る方式決定部36と比較して、修正部152をさらに有する。
結果記憶部62は、過去の動作情報の変化の時系列データを記憶する。さらに、結果記憶部62は、過去に選択された複数のメモリ制御方式の履歴を記憶する。結果記憶部62は、動作情報の変化の時系列データと、選択された複数のメモリ制御方式とを時系列に対応付けて記憶する。
修正部152は、結果記憶部62に記憶された、選択された複数のメモリ制御方式の履歴を読み出す。修正部152は、時系列に選択された複数のメモリ制御方式を、メモリ制御方式の切り替えにより生じるオーバヘッド実行性能を加えた合計実行性能が最適となるように修正する。例えば、修正部152は、第5実施形態と同様の処理を実行して、メモリ制御方式を修正する。そして、修正部152は、修正後における時系列に選択された複数のメモリ制御方式を学習部68に与える。
学習部68は、動作情報の変化パターン(変化の周期性)と、修正後におけるメモリ制御方式との関係に基づき、動作情報の変化パターンからメモリ制御方式を決定するための決定モデルを生成する。例えば、学習部68は、学習処理またはクラスタリング処理等を実行することにより動作情報の複数の変化パターン(変化の周期性)のそれぞれと、メモリ制御方式との対応関係を検出する。そして、学習部68は、複数の変化パターン(周期性)のそれぞれとメモリ制御方式との対応関係に基づき、決定モデルを生成する。学習部68は、生成した決定モデルを決定モデル記憶部64に書き込む。
決定部70は、変化検出部52が動作情報から所定の変化を検出した時点における、動作情報の変化パターンを取得する。例えば、決定部70は、変化検出部52が動作情報から所定の変化を検出した時点における、動作情報の変化方向のパターンを取得する。そして、決定部70は、取得した動作情報の変化パターン(変化の周期性)が、決定モデルに示された変化パターンと一致した場合には、メモリ制御方式を決定する。決定部70は、決定したメモリ制御方式を設定部50に通知する。
図32は、実際に選択されたメモリ制御方式および修正後のメモリ制御方式を示す図である。例えば、アプリケーションプログラムを実行した場合、情報処理システム10は、複数の種類のデータに対して処理を実行する。例えば、顔認識処理をする場合、情報処理システム10は、複数人の顔画像データに対して処理を実行する。
このような場合、情報処理システム10は、複数の顔画像データ毎に近似した動作情報を出力する。この結果、情報処理システム10は、同一の時系列パターンで複数のメモリ制御方式を選択する。従って、情報処理システム10が複数のデータ(例えば、第1データおよび第2データ)に対する処理を実行した場合、修正部152は、複数のデータのそれぞれについて選択された複数のメモリ制御方式を、同様に修正することができる。
図33は、修正後のメモリ制御方式と動作情報の変化のパターンとの関係を示す図である。学習部68は、動作情報の変化パターン(変化の周期性)と、修正後におけるメモリ制御方式との関係を検出する。図33の例であれば、学習部68は、第1方式に設定された状態において、動作情報に5個の変化点が発生した場合、次に選択されるメモリ制御方式が第2方式であることを学習できる。また、図33の例であれば、学習部68は、第2方式に設定された状態において、動作情報に1個の変化点が発生した場合、次に選択されるメモリ制御方式が第1方式であることが学習できる。
従って、学習部68は、このような変化点の発生パターンと次に選択されるメモリ制御方式との関係を定義した決定モデルを生成することができる。
以上のように、第6実施形態に係る情報処理システム10は、過去の動作情報の変化パターンと、修正後におけるメモリ制御方式との関係に基づき、動作情報の変化パターンからメモリ制御方式を決定するための決定モデルを生成する。そして、情報処理システム10は、動作情報の変化パターンからメモリ制御方式を決定する。これにより、第6実施形態に係る情報処理システム10によれば、実行性能を推定せずにメモリ制御方式を決定することができる。従って、情報処理システム10によれば、少ない演算量でメモリ制御方式を決定することができる。
(情報処理装置200のハードウェア構成)
図34は、情報処理装置200のハードウェアブロック図である。情報処理装置200は、一例として、一般のコンピュータと同様のハードウェア構成により実現される。情報処理装置200は、所定プログラムを実行することにより、推定装置140として機能することができる。
情報処理装置200は、CPU202と、ROM(Read Only MemoryRead Only Memory)204と、RAM(Random Acces Memory)206と、操作部208と、表示部210と、通信装置212と、記憶装置214とを備える。各部は、バスにより接続される。
CPU202は、情報処理を実行するプロセッサであって、記憶装置214に記憶されたプログラムをRAM206に展開して実行し、各部を制御して入出力を行ったり、データの加工を行ったりする。CPU202は、1または複数のプロセッサにより構成されていてもよい。また、情報処理装置200は、プログラムを実行することが可能であれば、CPU202に限らず他のプロセッサを備えてもよい。ROM204には、起動用プログラムを記憶装置214からRAM206に読み出すスタートプログラムが記憶されている。RAM206は、CPU202の作業領域としてデータを記憶する。
操作部208は、マウスまたはキーボード等の入力デバイスであって、ユーザから操作入力された情報を指示信号として受け付け、その指示信号をCPU202に出力する。表示部210は、例えばLCD(Liquid Crystal Display)等の表示装置である。表示部210は、CPU202からの表示信号に基づいて、各種情報を表示する。通信装置212は、ネットワーク等を介して、外部機器と情報をやり取りする。記憶装置214は、例えば、ハードディスクドライブまたはフラッシュメモリ等である。記憶装置214は、情報処理装置200で実行されるプログラム、および、オペレーティングシステムを記憶している。
本実施形態の情報処理装置200で実行されるプログラムは、インストール可能な形式または実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD等のコンピュータで読み取り可能な記録媒体に記録されて提供される。また、本実施形態の情報処理装置200で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、本実施形態の情報処理装置200で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。また、本実施形態のプログラムを、ROM204等に予め組み込んで提供するように構成してもよい。
情報処理装置200を推定装置140として機能させるためのプログラムは、取得モジュールと、分割モジュールと、推定モジュールと、選択モジュールと、出力モジュールとを有する。情報処理装置200は、プロセッサ(CPU202)が記憶媒体(記憶装置214等)からプログラムを読み出して実行することにより各モジュールが主記憶装置(RAM206)上にロードされ、プロセッサ(CPU202)が、取得部44、分割部144、推定部46、選択部48および出力部146として機能する。また、RAM206または記憶装置214等が、動作情報記憶部142および推定モデル記憶部26として機能する。なお、これらの一部または全部がプロセッサ以外のハードウェアにより実現されてもよい。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、請求の範囲に記載された発明とその均等の範囲に含まれる。