【国等の委託研究の成果に係る記載事項】(出願人による申告)平成28年度 国立研究開発法人新エネルギー・産業技術総合開発機構「IoT推進のための横断技術開発プロジェクト/高速大容量ストレージデバイス・システムの研究開発」委託研究、産業技術力強化法第19条の適用を受ける特許出願
(58)【調査した分野】(Int.Cl.,DB名)
前記選択部は、含まれる前記複数のセグメントについて推定された前記実行性能の合計値が基準値より良い分割パターンを選択し、選択した分割パターンに含まれる前記複数のセグメントから教師セグメントを選択する
請求項1から3の何れか1項に記載のモデル生成装置。
情報処理装置に、異なる複数の種類の主記憶メモリにアクセスする情報処理装置によるメモリ制御方式を決定するための決定モデルを生成させるためのプログラムであって、
前記情報処理装置に、
前記情報処理装置を動作させた場合における、前記情報処理装置の前記主記憶メモリに対するアクセス動作の頻度または時間を表す動作情報の時系列データを取得する取得ステップと、
前記動作情報の時系列データを時間方向に分割することにより複数のセグメントを生成する分割ステップと、
前記複数のセグメントのそれぞれに対して、複数のメモリ制御方式のうちの何れか1つのメモリ制御方式を割り当てる割当ステップと、
前記複数のセグメントのそれぞれについて、対応するセグメントの処理を、割り当てられたメモリ制御方式により前記情報処理装置が実行した場合におけるメモリアクセスの実行性能を推定する推定ステップと、
前記複数のセグメントの中から、推定された前記実行性能が予め定められた条件を満たす複数の教師セグメントを選択する選択ステップと、
前記複数の教師セグメントと前記複数の教師セグメントのそれぞれに割り当てられたメモリ制御方式とに基づき、前記動作情報に基づきメモリ制御方式を決定するための前記決定モデルを生成する生成ステップと、
を実行させるプログラム。
【発明を実施するための形態】
【0013】
以下、図面を参照しながら実施形態に係る情報処理システム10について詳細に説明する。なお、以下、複数の実施形態および変形例について説明をするが、略同一の機能および構成を有するブロックに同一の符号を付け、変形例および第2実施形態以降においては重複する内容の説明を省略する。
【0014】
(第1実施形態)
第1実施形態について説明する。
【0015】
図1は、第1実施形態に係る情報処理システム10の構成の一例を示す図である。情報処理システム10は、第1記憶部14と、不揮発記憶部16と、情報処理装置18と、モデル生成装置40とを備える。
【0016】
第1記憶部14は、情報処理装置18による作業領域として用いられる主記憶装置(メインメモリ)である。第1記憶部14は、例えば、電源の供給を停止すると記憶しているデータが消える揮発記憶部である。第1記憶部14は、例えば、DRAMである。なお、第1記憶部14は、DRAMと同様に高速アクセスが可能な、MRAM(Magnetoresistive Random Acces Memory)等の不揮発メモリであってもよい。
【0017】
また、第1記憶部14は、不揮発記憶部16よりも書き込み可能回数が多い。例えば、第1記憶部14は、書き込み可能回数を考慮した設計をしなくてよい程度(例えば、書き込み回数に制限が無いとして設計をすることが可能な程度)、書き込み可能回数が多い。
【0018】
不揮発記憶部16は、電源の供給を停止してもデータを記憶し続けるメモリである。不揮発記憶部16は、第1記憶部14とともに情報処理装置18の主記憶装置として機能する。
【0019】
不揮発記憶部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等である。不揮発記憶部16は、いわゆるストレージクラスメモリ(SCM)と呼ばれるメモリであってもよい。また、不揮発記憶部16は、複数の半導体装置を1つの基板または筐体等に設けたモジュールであってもよい。
【0020】
不揮発記憶部16は、第1記憶部14と比較して容量が大きい。不揮発記憶部16の容量は、第1記憶部14と同じであってもよい。また、不揮発記憶部16は、第1記憶部14のアクセス速度と同等または少し遅い程度である。また、不揮発記憶部16は、待機電力がゼロか、または、第1記憶部14と比較して待機電力が非常に少ない。不揮発記憶部16は、一例として、アクセスレイテンシが10n秒から数μ秒程度の間のメモリである。
【0021】
不揮発記憶部16は、バイト単位等の小領域単位でデータを書き込みおよび読み出し可能である。従って、情報処理装置18は、ロード命令またはストア命令により不揮発記憶部16に対して直接アクセスが可能である。情報処理装置18は、例えばキャッシュライン単位等で不揮発記憶部16に直接アクセスする。
【0022】
不揮発記憶部16は、複数のページを含む。ページは、情報処理装置18が管理するデータ単位に対応する。ページは、例えば、オペレーティングシステムが管理する仮想記憶装置のページに対応する。ページは、例えば、4Kバイトであってよい。情報処理装置18は、ページ単位でもデータの書き込みおよび読み出しが可能である。
【0023】
情報処理装置18は、異なる複数の種類の主記憶メモリにアクセスする。本実施形態においては、情報処理装置18は、第1記憶部14および不揮発記憶部16にアクセスする。情報処理装置18は、第1記憶部14および不揮発記憶部16とは異なる種類の他のメインメモリにさらにアクセスしてもよい。
【0024】
情報処理装置18は、処理回路20と、管理装置22と、動作情報検出部24と、決定モデル記憶部28とを有する。
【0025】
処理回路20は、1または複数のプロセッサを有する。プロセッサは、例えば、CPU(Central Processing Unit)である。プロセッサは、1または複数のCPUコアを含んでいてもよい。処理回路20は、プログラムを実行して、データを処理する。処理回路20は、プログラムの実行に応じて、第1記憶部14または不揮発記憶部16からデータを読み出したり、第1記憶部14または不揮発記憶部16にデータを書き込んだりする。
【0026】
また、処理回路20は、L1データキャッシュ、L1命令キャッシュ、L2キャッシュおよびL3キャッシュ等の階層的なキャッシュメモリを有する。処理回路20は、このようなキャッシュメモリを用いて、第1記憶部14または不揮発記憶部16に記憶されているデータを一時的に記憶する。処理回路20は、例えば、階層的なキャッシュにおける最下層のキャッシュ(ラストレベルキャッシュ)でキャッシュミスをした場合、キャッシュライン単位で第1記憶部14または不揮発記憶部16に対してアクセスして必要なデータを読み出したり書き込んだりする。
【0027】
なお、処理回路20は、データ処理を実行できれば、どのような回路であってもよい。例えば、処理回路20は、GPGPU(General−purpose computing on Graphics Processing Unit)で利用されるGPU(Graphics Processing Unit)であってもよい。また、処理回路20は、FPGA(Field Programmable Gate Array)等のアクセラレータであってもよい。
【0028】
管理装置22は、第1記憶部14および不揮発記憶部16に対する、処理回路20によるデータの読み出しおよび書き込みを制御する。管理装置22は、処理回路20からの第1記憶部14および不揮発記憶部16に対するアクセス要求を処理する。すなわち、管理装置22は、処理回路20からの書込命令に応じて、データを第1記憶部14または不揮発記憶部16に書き込む。また、管理装置22は、処理回路20からの読出命令に応じて、データを第1記憶部14または不揮発記憶部16から読み出し、読み出したデータを処理回路20に与える。
【0029】
また、管理装置22は、不揮発記憶部16に対するウェアレベリング制御を実行する。より具体的には、管理装置22は、不揮発記憶部16における領域毎のデータの書き換え回数を管理する。そして、管理装置22は、領域毎の書き換え回数に基づき、不揮発記憶部16における全体の領域に平均的にデータが書き込まれるように、データの書き込み位置を制御する。
【0030】
なお、管理装置22は、処理回路20と同一の半導体基板に形成された回路である。また、管理装置22は、処理回路20とは別体のハードウェアで構成されたメモリコントローラであってもよい。また、管理装置22は、処理回路20の一部のハードウェアとメモリコントローラとの組み合わせにより実現されてもよい。また、管理装置22は、処理回路20が実行するオペレーティングシステムの一部の機能により実現されてもよい。また、管理装置22は、処理回路20が実行するオペレーティングシステムの一部の機能により実現されてもよいし、オペレーティングシステムの一部の機能とメモリコントローラとの組み合わせにより実現されてもよい。
【0031】
また、管理装置22は、例えば、処理回路20とは別体のハードウェアで構成されたメモリ管理ユニット(MMU)であってもよい。また、管理装置22は、処理回路20の一部のハードウェアとメモリ管理ユニットとの組み合わせにより実現されてもよい。また、管理装置22は、処理回路20が実行するオペレーティングシステムの一部の機能とメモリ管理ユニットとの組み合わせにより実現されてもよい。
【0032】
また、管理装置22は、メモリコントローラと、MMUとの組み合わせにより実現されてもよい。また、管理装置22は、処理回路20の一部のハードウェアと、メモリコントローラと、メモリ管理ユニットとの組み合わせにより実現されてもよい。また、管理装置22は、処理回路20が実行するオペレーティングシステムの一部の機能と、メモリコントローラと、メモリ管理ユニットとの組み合わせにより実現されてもよい。
【0033】
動作情報検出部24は、処理回路20および管理装置22の少なくとも一方における動作情報を検出する。動作情報検出部24は、処理回路20内のハードウェア回路として実現されてもよい。また、動作情報検出部24は、管理装置22内の一部のハードウェア回路または一部の機能として実現されてもよい。また、動作情報検出部24は、処理回路20が実行するオペレーティングシステムの一部の機能として実現されてもよい。動作情報検出部24は、いわゆるパフォーマンスカウンタと呼ばれる回路であってもよい。なお、動作情報については、
図4を参照してさらに説明する。
【0034】
決定モデル記憶部28は、動作情報から、メモリ制御方式を決定するための決定モデルを記憶する。決定モデルは、モデル生成装置40により生成されて、決定モデル記憶部28に書き込まれる。決定モデルおよびモデル生成装置40については、
図10以降においてさらに説明する。
【0035】
処理回路20は、データ処理部32と、アクセス管理部34と、方式決定部36とを含む。データ処理部32は、例えば、処理回路20がアプリケーションプログラムを実行することにより実現される。また、方式決定部36およびアクセス管理部34は、例えば、処理回路20がオペレーティングシステムの一部の機能を実行することにより実現される。
【0036】
データ処理部32は、アプリケーションプログラムに従った情報処理を実行する。さらに、データ処理部32は、管理装置22に対して、第1記憶部14および不揮発記憶部16に対するアクセス要求を与える。すなわち、データ処理部32は、データを第1記憶部14または不揮発記憶部16に書き込む書込命令を管理装置22に与える。また、データ処理部32は、データを第1記憶部14または不揮発記憶部16から読み出す読出命令を管理装置22に与える。
【0037】
アクセス管理部34は、管理装置22が第1記憶部14および不揮発記憶部16に対してアクセスするためのメモリ制御方式を管理する。管理装置22は、第1記憶部14および不揮発記憶部16に対して、複数のメモリ制御方式によりアクセスすることが可能である。アクセス管理部34は、管理装置22が複数のメモリ制御方式のうち何れのメモリ制御方式によりアクセスするかを管理する。
【0038】
また、アクセス管理部34は、変換テーブルを記憶する。変換テーブルは、アクセス要求をするそれぞれのページについて、要求アドレスと、第1記憶部14または不揮発記憶部16における対応するページ番号(物理アドレス)との対応関係を記憶する。さらに、変換テーブルは、処理回路20がアクセス要求をするそれぞれのページについて、第1アクセス処理または第2アクセス処理の何れを実行するか示すアクセス方法を記憶する。
【0039】
第1アクセス処理は、不揮発記憶部16から第1記憶部14に転送したデータに対して、書き込みおよび読み出しをする方法である。第2アクセス処理は、不揮発記憶部16に記憶されるデータに対して直接書き込みおよび読み出しをする方法である。
【0040】
そして、管理装置22は、データ処理部32がアクセス要求をしたページについて、変換テーブルに記憶されたアクセス方法により第1記憶部14および不揮発記憶部16にアクセスする。つまり、管理装置22は、第1アクセス処理に設定されているページに対して書き込みまたは読み出しの要求を受けた場合、第1アクセス処理を実行する。また、管理装置22は、第2アクセス処理に設定されているページに対して書き込みまたは読み出しの要求を受けた場合、第2アクセス処理を実行する。なお、変換テーブルの詳細については、
図2を参照してさらに説明する。また、アクセス方法については、
図3を参照してさらに説明する。
【0041】
方式決定部36は、動作情報検出部24により検出された動作情報、および、決定モデル記憶部28に記憶された決定モデルに基づき、複数のメモリ制御方式のうちの何れか1つのメモリ制御方式を決定する。そして、方式決定部36は、管理装置22が、決定したメモリ制御方式により第1記憶部14および不揮発記憶部16に対してアクセスするように、アクセス管理部34等に対して設定処理をする。メモリ制御方式については、
図5および
図6を参照してさらに説明する。
【0042】
図2は、変換テーブルの一例を示す図である。変換テーブルは、処理回路20がアクセス要求をするそれぞれのページについて、要求アドレスと、第1記憶部14または不揮発記憶部16における対応するページ番号(物理アドレス)との対応関係を記憶する。すなわち、変換テーブルは、処理回路20による要求アドレスに対応するデータが、第1記憶部14または不揮発記憶部16における何れのページに記憶されているのかを示すマッピング情報を記憶する。
【0043】
例えば、
図2の例では、変換テーブルにおけるページ番号の列に“Sxxxx”と記述されたページは、不揮発記憶部16におけるページ番号が“xxxx”のページを示す。例えば、
図2の例では、ページ番号の列に“Dxxxx”と記述されたページは、第1記憶部14におけるページ番号が“xxxx”のページを示す。なお、ここでのxは、任意の値である。
【0044】
さらに、変換テーブルは、処理回路20がアクセス要求をするそれぞれのページについて、第1アクセス処理または第2アクセス処理の何れを実行するか示すアクセス方法を記憶する。なお、変換テーブルは、
図2に示すような構成に限らず、他の構成であってもよい。
【0045】
図3は、第1アクセス処理および第2アクセス処理の内容を示す図である。管理装置22は、第1アクセス処理に設定されている第1ページに対して書き込みまたは読み出しの要求を受けた場合、不揮発記憶部16に対して、第1アクセス処理を実行する。
【0046】
例えば、
図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ページに書き戻す。
【0047】
なお、管理装置22は、第1記憶部14に転送されたデータを、第1ページ(同じ場所)以外に書き戻してもよい。例えば、管理装置22は、第1アクセス処理において、不揮発記憶部16から第1記憶部14に転送されたデータを、何れの要求アドレスも対応付けられていない未使用ページに書き戻してよい。これにより、管理装置22は、ページ毎の書き換え回数の隔たりを小さくし、特定のページの品質劣化を抑制することができる。
【0048】
また、管理装置22は、第2アクセス処理に設定されている第2ページに対して書き込みまたは読み出しの要求を受けた場合、不揮発記憶部16に対して、第2アクセス処理を実行する。
【0049】
例えば、
図3に示すように、第2アクセス処理において、管理装置22は、不揮発記憶部16における第2ページに対して、直接読み出しおよび書き込みをする。例えば、管理装置22は、ページより小さいサイズでデータの読み出しおよび書き込みをする。
【0050】
このように、管理装置22は、2種類のアクセス方法により不揮発記憶部16に対してアクセスする。例えば、メモリアクセスに局所性が高いアプリケーションを実行した場合、管理装置22は、第1アクセス処理により不揮発記憶部16に記憶されたページをアクセスする。これにより、管理装置22は、メモリアクセスに局所性が高いアプリケーションを実行した場合、同一のページに対してより高速に処理をすることができる。
【0051】
また、例えば、ランダムアクセスのようにメモリアクセスに局所性が低い処理を実行する場合、管理装置22は、第2アクセス処理により不揮発記憶部16に記憶されたページをアクセスする。これにより、管理装置22は、局所性が低い処理を実行する場合、不揮発記憶部16から第1記憶部14への転送処理のオーバヘッドを無くして、効率良く処理をすることができる。このように、管理装置22は、第1アクセス処理および第2アクセス処理の2種類のアクセス方法を用いることにより、処理の効率化を図ることができる。
【0052】
図4は、動作情報の時系列データの一例を示す図である。動作情報検出部24は、一定時間毎に、処理回路20および管理装置22の少なくとも一方における動作情報を検出する。
【0053】
動作情報は、例えば、処理回路20による主記憶装置に対する書き込み回数、処理回路20による主記憶装置に対する読み出し回数、処理回路20のプリフェッチ成功率、処理回路20のキャッシュヒット数、処理回路20のキャッシュミス数等である。また、これらに限らず、動作情報は、例えば、処理回路20または管理装置22内での所定のイベントの回数、リタイアした命令数、コアクロック数およびキャッシュメモリにおける階層毎(L1キャッシュ、L2キャッシュ、L3キャッシュおよびラストレベルキャッシュ)のキャッシュヒット数/キャッシュミス数、ストール時間等であってもよい。
【0054】
動作情報検出部24は、このような動作情報を検出した時刻に対応付けて出力する。方式決定部36は、動作情報検出部24により検出された動作情報を時刻に対応付けた時系列データとして取得する。
【0055】
図5は、メモリ制御方式の内容の第1例を示す図である。管理装置22は、複数のメモリ制御方式のうちの何れか1つのメモリ制御方式により第1記憶部14および不揮発記憶部16にアクセスする。
【0056】
例えば、複数のメモリ制御方式のそれぞれは、複数のページのうちの第1アクセス処理に設定されるページの数と第2アクセス処理に設定されるページの数との比率により区別されてもよい。例えば、
図5の例では、管理装置22は、比率が異なる第1から第4の方式の何れかにより、第1記憶部14および不揮発記憶部16にアクセスする。
【0057】
例えば、
図5の第1方式は、100%のページが第2アクセス処理に設定された方式である。また、
図5の第2方式は、10%のページが第1アクセス処理に設定され、90%のページが第2アクセス処理に設定された方式である。また、
図5の第3方式は、20%のページが第1アクセス処理に設定され、80%のページが第2アクセス処理に設定された方式である。また、
図6の第4方式は、30%のページが第1アクセス処理に設定され、70%のページが第2アクセス処理に設定された方式である。なお、複数のメモリ制御方式は、
図5よりもさらに細かい比率により区別されてもよい。
【0058】
図6は、メモリ制御方式の内容の第2例を示す図である。また、複数のメモリ制御方式のそれぞれは、さらに、第1記憶部14のメモリ使用量の上限値で区別されてもよい。例えば、
図5の例では、管理装置22は、比率およびメモリ使用量が異なる8つの方式の何れかにより、第1記憶部14および不揮発記憶部16にアクセスする。
【0059】
例えば、
図6の第1方式は、100%のページが第2アクセス処理に設定され、第1記憶部14のメモリ使用量に制限がない方式である。
図6の第2方式は、10%のページが第1アクセス処理に設定され、第1記憶部14のメモリ使用量の上限値が不揮発記憶部16の5%に設定された方式である。
図6の第3方式は、10%のページが第1アクセス処理に設定され、メモリ使用量の上限値が10%に設定された方式である。
【0060】
図6の第4方式は、20%のページが第1アクセス処理に設定され、メモリ使用量の上限値が10%に設定された方式である。
図6の第5方式は、20%のページが第1アクセス処理に設定され、メモリ使用量の上限値が20%に設定された方式である。
【0061】
図6の第6方式は、30%のページが第1アクセス処理に設定され、メモリ使用量の上限値が15%に設定された方式である。
図6の第7方式は、30%のページが第1アクセス処理に設定され、メモリ使用量の上限値が30%に設定された方式である。なお、複数のメモリ制御方式は、比率および上限値がさらに細かく区別されていてもよい。
【0062】
処理回路20は、
図5および
図6に示したようなメモリ制御方式に限らず、他の方式を設定してもよい。また、例えば、情報処理システム10は、主記憶装置として、第1記憶部14および不揮発記憶部16とは特性が異なる、第2記憶部を備えてもよい。このような場合、管理装置22は、例えば、アクセス方法として、不揮発記憶部16から第2記憶部にデータをコピーしてからアクセスさせるような第3アクセス処理をさらに実行してもよい。そして、管理装置22は、複数のメモリ制御方式の中に、第1アクセス処理、第2アクセス処理および第3アクセス処理に設定されるページ数の比率等を設定する方式を含めてもよい。
【0063】
図7は、第1実施形態に係る方式決定部36の構成を決定モデル記憶部28とともに示す図である。方式決定部36は、タイミング発生部52と、抽出部54と、決定部56と、設定部58とを有する。
【0064】
タイミング発生部52は、情報処理装置18が動作を開始したタイミング、および、動作を開始した後の一定時間毎に、検出期間を開始する指示を抽出部54および設定部58に与える。なお、タイミング発生部52は、不定な時間毎に検出期間を開始する指示を抽出部54および設定部58に与えてもよい。
【0065】
抽出部54は、タイミング発生部52から開始指示を受け取る。抽出部54は、開始指示を受け取ってから一定の期間(検出期間)における、処理回路20および管理装置22の少なくとも一方における動作情報を、動作情報検出部24から取得する。
【0066】
決定部56は、抽出部54が取得した動作情報および決定モデル記憶部28に記憶された決定モデルに基づき、メモリ制御方式を決定する。例えば、決定部56は、
図5または
図6に示したような複数のメモリ制御方式の中から、適切な1つのメモリ制御方式を決定する。
【0067】
決定モデルは、動作情報から、複数のメモリ制御方式の何れか最適な1つのメモリ制御方式を決定するための、例えば演算式である。決定モデルは、例えば、決定木、線形回帰、ニューラルネットワークおよびサポートベクタマシン等であってもよい。なお、決定モデルについては、
図10以降においてさらに説明する。
【0068】
設定部58は、タイミング発生部52から開始指示を受け取る。設定部58は、開始指示を受け取ってから一定の期間(検出期間)において、管理装置22が基準のメモリ制御方式により第1記憶部14および不揮発記憶部16にアクセスするようにアクセス管理部34に対して設定処理をする。これにより、管理装置22は、検出期間において、管理装置22が基準のメモリ制御方式により第1記憶部14および不揮発記憶部16にアクセスすることができる。
【0069】
例えば、設定部58は、検出期間において、アクセスするページの全てのアクセス方法を第2アクセス処理に設定する。これにより、管理装置22は、検出期間において、第2アクセス処理により第1記憶部14および不揮発記憶部16にアクセスすることができる。なお、設定部58は、検出期間において、決定モデルによりメモリ制御方式が決定可能であれば、どのようなメモリ制御方式に設定してもよい。もし、抽出部54が取得する動作情報が、メモリ制御方式の違いによる影響を受けない場合には、設定部58は、検出期間において、何れのメモリ制御方式を設定してもよい。
【0070】
検出期間を経過した後の期間において、設定部58は、選択された最適なメモリ制御方式により管理装置22が第1記憶部14および不揮発記憶部16にアクセスするように、アクセス管理部34に対して設定処理をする。これにより、管理装置22は、検出期間が経過した後において、選択されたメモリ制御方式により第1記憶部14および不揮発記憶部16にアクセスすることができる。
【0071】
例えば、設定部58は、変換テーブルにおける複数のページのそれぞれのアクセス方法を、選択されたメモリ制御方式に応じて第1アクセス処理または第2アクセス処理に設定する。例えば、複数のメモリ制御方式が、第1アクセス処理に設定されるページの数と第2アクセス処理に設定されるページの数との比率で区別される場合、設定部58は、変換テーブルにおける複数のページのそれぞれのアクセス方法を、選択されたメモリ制御方式に示された比率に応じて第1アクセス処理または第2アクセス処理に設定する。
【0072】
なお、設定部58は、変換テーブルに管理されている全てのページのアクセス方法を変更するのではなく、直近(例えば、所定期間前まで)にアクセスしたページおよび検出期間後に新たにアクセスするページについてのアクセス方法を変更してもよい。また、設定部58は、検出期間後に新たにアクセスするページに対してアクセス方法を変更してもよい。
【0073】
また、設定部58は、処理回路20により管理されるTLB(Translation Lookaside Buffer)と呼ばれる仮想管理機構により管理されるページのアクセス方法を変更してもよい。TLBは、仮想アドレスから物理アドレスへアドレス変換を行うために、ページにおける要求アドレス(論理アドレス)と物理アドレスとの対応を示す対応関係情報を記憶する。しかし、TLBは、保有しているエントリが限られているので、対応関係情報を必要に応じて入れ替える。TLBは、例えば、直近において高い頻度でアクセスされるページについての対応関係情報を優先して記憶する。
【0074】
さらに、複数のメモリ制御方式が、第1記憶部14のメモリ使用量の上限値で区別される場合、設定部58は、選択されたメモリ制御方式に示された上限値を、第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に転送する。
【0075】
図8は、動作情報の波形図および選択されたメモリ制御方式の一例を示す図である。
図8に示すように、方式決定部36は、例えば一定期間毎に、メモリ制御方式の選択および切り替えを行う。方式決定部36は、メモリ制御方式の切り替えタイミングの直前に検出期間を設定し、検出期間において動作情報を取得する。そして、方式決定部36は、取得した動作情報に基づきメモリ制御方式を決定し、新たなメモリ制御方式に切り替える。
【0076】
なお、
図8の例では、方式決定部36は、検出期間において、基準のメモリ制御方式に設定している。しかし、方式決定部36は、メモリ制御方式の違いが、取得する動作情報に影響を与えない場合には、検出期間において、直前のメモリ制御方式を継続させてもよい。
【0077】
図9は、方式決定部36による処理の流れを示すフローチャートである。第1実施形態に係る方式決定部36は、
図9に示すフローチャートに従って処理を実行する。
【0078】
まず、S11において、方式決定部36は、動作情報の取得タイミングとなったか否かを判断する。取得タイミングとなっていない場合(S11のNo)、方式決定部36は、処理をS11で待機する。取得タイミングとなった場合(S11のYes)、方式決定部36は、処理をS12に進める。
【0079】
S12において、方式決定部36は、管理装置22が基準のメモリ制御方式により第1記憶部14および不揮発記憶部16にアクセスするように、アクセス管理部34に対して設定処理をする。なお、方式決定部36は、メモリ制御方式の違いが、取得する動作情報に影響を与えない場合には、検出期間において、直前のメモリ制御方式を継続させてもよい。
【0080】
続いて、S13において、方式決定部36は、動作情報検出部24から動作情報を取得する。続いて、S14において、方式決定部36は、検出期間が経過したか否かを判断する。検出期間が経過していない場合(S14のNo)、方式決定部36は、処理をS13に戻して、検出期間が経過するまで、動作情報の取得を継続する。検出期間が経過した場合(S14のYes)、方式決定部36は、処理をS15に進める。
【0081】
S15において、方式決定部36は、取得した動作情報および決定モデル記憶部28に記憶された決定モデルに基づき、最適なメモリ制御方式を決定する。例えば、方式決定部36は、複数のメモリ制御方式の中から、適切な1つのメモリ制御方式を決定する。
める。
【0082】
続いて、S16において、方式決定部36は、管理装置22が、決定した最適なメモリ制御方式により第1記憶部14および不揮発記憶部16にアクセスするように、アクセス管理部34に対して設定処理をする。方式決定部36は、S16の処理を終了すると本フローを終了する。
【0083】
このような構成の情報処理装置18は、方式決定部36が、動作情報に基づき適切なメモリ制御方式を選択し、選択したメモリ制御方式により管理装置22に第1記憶部14および不揮発記憶部16にアクセスさせる。これにより、情報処理装置18によれば、例えば、実行するアプリケーションプログラム毎に適切な実行性能が得られるように、管理装置22を動作させることができる。
【0084】
図10は、モデル生成装置40の構成を示す図である。モデル生成装置40は、取得部62と、動作情報記憶部64と、分割部66と、割当部68と、推定モデル記憶部70と、推定部72と、選択部74と、教師セグメント記憶部76と、生成部78とを備える。
【0085】
取得部62は、情報処理装置18を動作させた場合における動作情報の時系列データを、情報処理装置18の動作情報検出部24から取得する。例えば、取得部62は、アプリケーションプログラムを実行した情報処理装置18の動作情報の時系列データを取得する。例えば、取得部62は、アプリケーションプログラムの全実行期間の動作情報の時系列データを取得する。取得部62は、取得した動作情報の時系列データを動作情報記憶部64に書き込む。動作情報記憶部64は、取得部62により取得された動作情報の時系列データを記憶する。
【0086】
分割部66は、動作情報記憶部64に記憶された動作情報の時系列データを時間方向に分割することにより複数のセグメントを生成する。また、分割部66は、互いに異なる複数の分割パターンのそれぞれ毎に、対応する分割パターンに従って動作情報の時系列データを分割して複数のセグメントを生成する。分割部66は、動作情報の時系列データを一定時間毎や一定命令数毎に区切って複数のセグメントを生成してもよい。また、分割部66は、動作情報の時系列データを不均等な間隔毎に区切って複数のセグメントを生成してもよい。
【0087】
割当部68は、分割部66により分割された複数のセグメントのそれぞれに対して、複数のメモリ制御方式のうちの何れか1つのメモリ制御方式を割り当てる。また、複数の分割パターンのそれぞれ毎に、複数のセグメントが生成された場合、割当部68は、複数の分割パターンのそれぞれおよび複数のセグメントのそれぞれ毎に、メモリ制御方式を割り当てる。割当部68は、割り当て可能な複数のメモリ制御方式の中からランダムに1つのメモリ制御方式を選択し、選択したメモリ制御方式をセグメントに割り当ててもよい。また、割当部68は、割り当て可能な複数のメモリ制御方式の中から所定の規則に基づき1つのメモリ制御方式を選択し、選択したメモリ制御方式をセグメントに割り当ててもよい。
【0088】
推定モデル記憶部70は、動作情報から、第1記憶部14および不揮発記憶部16に対するメモリアクセスの実行性能を推定するための推定モデルを記憶する。推定モデルは、動作情報から、複数のメモリ制御方式のそれぞれについての実行性能(例えば、実行時間、消費電力または寿命減少量)を算出するための、例えば演算式である。推定モデルは、例えば、決定木、線形回帰、ニューラルネットワークおよびサポートベクタマシン等であってもよい。
【0089】
推定部72は、複数の分割パターンのそれぞれおよび複数のセグメントのそれぞれについて、対応するセグメントの処理を、割り当てられたメモリ制御方式により情報処理装置18が実行した場合における、第1記憶部14および不揮発記憶部16に対するメモリアクセスの実行性能を推定する。この場合において、推定部72は、対応するセグメントおよび推定モデル記憶部70に記憶された推定モデルに基づき、割り当てられたメモリ制御方式についての実行性能を推定する。
【0090】
例えば、推定部72は、実行性能として、対応するセグメントの処理を、割り当てられたメモリ制御方式で情報処理装置18が実行した場合における実行時間を推定してもよい。また、例えば、推定部72は、実行性能として、対応するセグメントの処理を、割り当てられたメモリ制御方式で情報処理装置18が実行した場合における消費電力を推定してもよい。また、例えば、推定部72は、実行性能として、対応するセグメントの処理を、割り当てられたメモリ制御方式で情報処理装置18が実行した場合における寿命減少量(摩耗度)を推定してもよい。
【0091】
選択部74は、複数の分割パターンに含まれる複数のセグメントの中から、推定された実行性能が予め定められた条件を満たす複数の教師セグメントを選択する。例えば、選択部74は、実行性能が基準値より良い複数のセグメントの中から、複数の教師セグメントを選択する。また、例えば、選択部74は、含まれる複数のセグメントについて推定された実行性能の合計値が基準値より良い分割パターンを選択し、選択した分割パターンに含まれる複数のセグメントから教師セグメントを選択してもよい。
【0092】
基準値は、設計者が予め設定してもよい。また、基準値は、複数のセグメントについて推定された実行性能から得られた統計情報に基づき設定されてもよい。例えば、基準値は、実行性能の平均値であってもよいし、平均値から所定倍した値であってもよいし、実行性能の上位10%のセグメントと下位90%のセグメントを区切る値であってもよい。
【0093】
選択部74は、選択した教師セグメントと、教師セグメントに割り当てられたメモリ制御方式との組を教師セグメント記憶部76に書き込む。教師セグメント記憶部76は、複数の教師セグメントと、複数の教師セグメントのそれぞれに割り当てられたメモリ制御方式とを対応付けて記憶する。
【0094】
生成部78は、教師セグメント記憶部76に記憶された複数の教師セグメントと複数の教師セグメントのそれぞれに割り当てられたメモリ制御方式とに基づき、動作情報に基づきメモリ制御方式を決定するための決定モデルを生成する。
【0095】
決定モデルは、教師セグメントと割り当てられたメモリ制御方式との組の集合を含む。この場合、例えば、情報処理装置18における方式決定部36は、検出期間において抽出した動作情報と最も近似した教師セグメントを、決定モデルに含まれる集合の中から検出し、検出した教師セグメントに割り当てられたメモリ制御方式を出力する。
【0096】
また、生成部78は、教師セグメントに含まれる動作情報の1または複数のパラメータに対して演算処理をすることにより、教師セグメントを、複数の特徴パラメータで表されたベクトル情報に変換してもよい。この場合、決定モデルは、教師セグメントを表すベクトル情報と、割り当てられたメモリ制御方式との組の集合を含む。そして、例えば、情報処理装置18における方式決定部36は、検出期間において抽出した動作情報をベクトル情報に変換して、決定モデルに含まれる集合の中から最も近似した教師セグメントのベクトル情報を検出し、検出した教師セグメントのベクトル情報に割り当てられたメモリ制御方式を出力する。
【0097】
また、さらに、生成部78は、複数の教師セグメントのベクトル情報をクラスタリングして、決定木、線形回帰、ニューラルネットワークおよびサポートベクタマシン等で表された決定モデルを生成してもよい。この場合、方式決定部36は、検出期間において抽出した動作情報または動作情報のベクトル情報を決定モデルに与え、決定モデルから得られたメモリ制御方式を出力する。
【0098】
生成部78は、このような決定モデルを情報処理装置18の決定モデル記憶部28に登録する。
【0099】
図11は、実行時間の算出処理例を説明するための図である。実行性能として、実行時間を推定する場合、取得部62は、メモリアクセス回数、アクセスしたページ数、および、実行時間の実測値を取得する。そして、推定部72は、予め定められた推定モデル(例えば演算式)に、メモリアクセス回数、ページ数および実行時間の実測値を代入して、割り当てられたメモリ制御方式についての実行時間の推定値を算出する。
【0100】
例えば、100%のページを第2アクセス処理に設定するメモリ制御方式により管理装置22を動作させ、100%のページを第1アクセス処理に設定するメモリ制御方式により管理装置22を動作させた場合における実行時間を推定する場合、推定部72は、下記の式(1)および式(2)に表される式を演算して、実行時間を算出する。
T1=T2−Δt…(1)
Δt=(N
A×(L
S−L
D))−(N
P×T)…(2)
【0101】
式(1)において、T1は、100%のページを第1アクセス処理に設定するメモリ制御方式により管理装置22を動作させた場合における実行時間の推定値である。T2は、100%のページを第2アクセス処理に設定するメモリ制御方式により管理装置22を動作させた場合における実行時間の実測値である。
【0102】
また、式(2)において、N
Aは、メモリアクセス回数である。N
Pは、アクセスしたページ数である。
【0103】
また、式(2)において、L
Dは、第1記憶部14に対するメモリアクセスのレイテンシである。L
Sは、不揮発記憶部16に対するメモリアクセスのレイテンシである。また、Tは、1ページ分のデータを不揮発記憶部16から第1記憶部14に転送する転送時間である。L
D、L
SおよびTは、予め測定済みの値であり、推定モデルに定数として組み込まれる。
【0104】
従って、例えば、推定モデル記憶部70は、上述の式(1)および式(2)により表される演算式を推定モデルとして記憶する。推定部72は、100%のページを第2アクセス処理に設定するメモリ制御方式により管理装置22を動作させた場合における、メモリアクセス回数、ページ数および実行時間の実測値を取得する。そして、推定部72は、上述の式(1)および式(2)により表される演算式と、メモリアクセス回数、ページ数および実行時間の実測値とに基づき、100%のページを第1アクセス処理に設定するメモリ制御方式により管理装置22を動作させた場合の実行時間を推定する。
【0105】
また、X%のページ(Xは、0より大きく100より小さい値)を第1アクセス処理に設定するメモリ制御方式により管理装置22を動作させた場合の実行時間を推定する場合、推定部72は、次のような処理を行う。
【0106】
まず、推定部72は、100%のページを第2アクセス処理に設定するメモリ制御方式により管理装置22を動作させた場合における、メモリアクセス回数、ページ数および実行時間の実測値を取得する。続いて、推定部72は、アクセスしたページの中から、アクセス数の多い上位のX%のページを選択する。推定部72は、選択したX%のページのページ数を、式(2)におけるN
Pに代入する。
【0107】
さらに、推定部72は、選択したX%のページに対するメモリアクセス回数を算出する。推定部72は、算出したX%のページに対するメモリアクセス回数を、式(2)におけるN
Aに代入する。そして、推定部72は、上記の式(1)および式(2)に表される式を演算して、実行時間を算出する。これにより、推定部72は、X%のページを第1アクセス処理に設定するメモリ制御方式により管理装置22を動作させた場合の実行時間を推定することができる。
【0108】
図12は、モデル生成装置40による処理の流れを示すフローチャートである。第1実施形態に係るモデル生成装置40は、
図12に示すフローチャートに従って処理を実行する。以下、
図12のフローチャートにおける各ステップの処理を、
図13〜
図20を参照しながら説明する。
【0109】
まず、S21において、モデル生成装置40は、情報処理装置18にアプリケーションプログラムを実行させ、情報処理装置18から動作情報の時系列データを取得する。例えば、モデル生成装置40は、アプリケーションプログラムの全実行期間の動作情報の時系列データを取得する。
【0110】
この場合、モデル生成装置40は、情報処理装置18の管理装置22が基準のメモリ制御方式により第1記憶部14および不揮発記憶部16にアクセスするように、情報処理装置18に対して設定処理をする。例えば、モデル生成装置40は、情報処理装置18に、アクセスするページの全てのアクセス方法を第2アクセス処理に設定させる。なお、モデル生成装置40は、推定モデルにより実行性能を推定可能な動作情報が得られるメモリ制御方式であれば、どのようなメモリ制御方式に設定してもよい。もし、S21で取得する動作情報が、メモリ制御方式の違いによる影響を受けない場合には、モデル生成装置40は、何れのメモリ制御方式を設定してもよい。
【0111】
図13は、S21で取得された動作情報の時系列データの一例を示す図である。例えば、S21において、モデル生成装置40は、
図13に示すような動作情報を取得する。
図13のAは、L3キャッシュのキャッシュミスを表すパラメータの時系列データである。また、
図13のBは、L2キャッシュのストール時間を表すパラメータの時系列データである。モデル生成装置40は、他のパラメータをさらに動作情報として取得してもよいし、
図13に示したパラメータ以外のパラメータを動作情報として取得してもよい。
【0112】
続いて、S22において、モデル生成装置40は、取得した動作情報の時系列データを保存する。これにより、モデル生成装置40は、例えば、アプリケーションプログラムの全実行期間の動作情報の時系列データを記憶することができる。
【0113】
続いて、S23において、モデル生成装置40は、動作情報の時系列データを時間方向に分割することにより複数のセグメントを生成する。また、モデル生成装置40は、後述のS26において分割を終了すると判断されるまで、繰り返して動作情報の時系列データを時間方向に分割する。この場合、モデル生成装置40は、互いに異なる複数の分割パターンにより動作情報の時系列データを分割して、複数のセグメントを生成する。
【0114】
図14は、S23で分割された複数のセグメントの第1例を示す図である。
図15は、S23で分割された複数のセグメントの第2例を示す図である。
図16は、S23で分割された複数のセグメントの第3例を示す図である。
【0115】
例えば、モデル生成装置40は、
図14および
図15に示すように、動作情報の時系列データを一定時間毎に区切って複数のセグメントを生成してもよい。また、モデル生成装置40は、
図16に示すように、動作情報の時系列データを不均等な間隔毎に区切って複数のセグメントを生成してもよい。例えば、モデル生成装置40は、予め準備された複数の分割パターンの中からランダムに分割パターンを選択してもよいし、毎回ランダムに分割パターンを生成してもよい。
【0116】
また、モデル生成装置40は、S27のセグメントの選択処理において教師セグメントが選択される確率を高くするように、過去の分割パターンに基づき分割位置を探索してもよい。例えば、モデル生成装置40は、動的計画法等を用いて、分割位置を探索してもよい。なお、S27のセグメントの選択処理において教師セグメントが選択される確率を高くするように分割パターンを生成する場合、モデル生成装置40は、後述のS26の処理を、S28の後に実行する。
【0117】
続いて、S24において、モデル生成装置40は、分割された複数のセグメントのそれぞれに対して、複数のメモリ制御方式のうちの何れか1つのメモリ制御方式を割り当てる。モデル生成装置40は、例えば、分割された複数のセグメントのそれぞれに対して、割り当て可能な複数のメモリ制御方式の中からランダムに1つのメモリ制御方式を選択して割り当ててもよい。また、モデル生成装置40は、分割された複数のセグメントのそれぞれに対して、割り当て可能な複数のメモリ制御方式の中から所定の規則に基づき1つのメモリ制御方式を選択して割り当ててもよい。また、モデル生成装置40は、割された複数のセグメントのそれぞれに対して、対応するセグメントに含まれるパラメータの値を参照して、適切であると推定されるメモリ制御方式を選択して、割り当ててもよい。
【0118】
図17は、S24で割り当てられたメモリ制御方式の一例を示す図である。例えば、モデル生成装置40は、
図17に示すように、割り当て可能な2つのメモリ制御方式(第1方式および第2方式)の中から選択した1つのメモリ制御方式を、複数のセグメントのそれぞれに対して割り当てる。
【0119】
続いて、S25において、モデル生成装置40は、複数の分割パターンのそれぞれについて、対応するセグメントの処理を、割り当てられたメモリ制御方式により情報処理装置18が実行した場合における、第1記憶部14および不揮発記憶部16に対するメモリアクセスの実行性能を推定する。この場合において、モデル生成装置40は、対応するセグメントおよび推定モデル記憶部70に記憶された推定モデルに基づき、割り当てられたメモリ制御方式についての実行性能を推定する。
【0120】
図18は、S25で推定された実行性能の一例を示す図である。例えば、S25において、モデル生成装置40は、実行性能として、
図18に示すような、割り当てられたメモリ制御方式で情報処理装置18がセグメントの処理を実行した場合における消費電力を推定する。また、例えば、モデル生成装置40は、実行性能として、割り当てられたメモリ制御方式で情報処理装置18がセグメントの処理を実行した場合における実行時間または寿命減少量(摩耗度)を推定してもよい。なお、
図18は、実行性能の時系列データを示しているが、情報処理装置18は、セグメント毎に実行性能の合計値を算出してもよい。
【0121】
続いて、S26において、モデル生成装置40は、セグメントの分割処理が終了したか否かを判断する。例えば、モデル生成装置40は、S23からS26までのループ処理を、予め定められた回数実行した場合には、セグメントの分割処理が終了したと判定する。また、例えば、モデル生成装置40は、S23からS26までのループ処理を、予め定められた時間実行した場合に、セグメントの分割処理が終了したと判定してもよい。また、モデル生成装置40は、生成した合計のセグメントの個数が、予め定められた個数を超えた場合に、セグメントの分割処理が終了したと判定してもよい。また、例えば、モデル生成装置40は、S27で選択された教師セグメントの合計数が予め定められた個数を超えた場合に、セグメントの分割処理が終了したと判定してもよい。なお、S27で選択された教師セグメントの合計数が予め定められた個数を超えたか否かを判断する場合には、モデル生成装置40は、S26の処理を、S28の後に実行する。
【0122】
モデル生成装置40は、セグメントの分割処理が終了していない場合(S26のNo)、処理をS23に戻して、S23から処理を繰り返す。モデル生成装置40は、セグメントの分割処理が終了した場合(S26のYes)、処理をS27に進める。
【0123】
S27において、モデル生成装置40は、複数の分割パターンに含まれる複数のセグメントの中から、推定された実行性能が予め定められた条件を満たす複数の教師セグメントを選択する。例えば、モデル生成装置40は、実行性能が基準値より良い複数のセグメントの中から、複数の教師セグメントを選択する。
【0124】
図19は、S27で選択される複数のセグメントの一例を示す図である。例えば、S27において、モデル生成装置40は、
図19に示すように、消費電力が基準値を下回るセグメントを教師セグメントとして選択してもよい。
【0125】
続いて、S28において、モデル生成装置40は、選択した教師セグメントと、教師セグメントに割り当てられたメモリ制御方式との組を保存する。これにより、モデル生成装置40は、複数の教師セグメントと、複数の教師セグメントのそれぞれに割り当てられたメモリ制御方式とを対応付けて記憶することができる。
【0126】
続いて、S29において、モデル生成装置40は、保存された複数の教師セグメントと複数の教師セグメントのそれぞれに割り当てられたメモリ制御方式とに基づき、決定モデルを生成する。決定モデルは、教師セグメントとメモリ制御方式との組の集合を含んでもよい。
【0127】
図20は、S29で生成される決定モデルの一例を示す図である。モデル生成装置40は、
図20に示すように、教師セグメントに含まれる動作情報の各パラメータに対して演算処理をして、教師セグメントを、複数の特徴パラメータで表されたベクトル情報に変換してもよい。そして、モデル生成装置40は、このようなベクトル情報で表された教師セグメントとメモリ制御方式との組の集合を含む決定モデルを生成してもよい。
【0128】
また、モデル生成装置40は、複数の教師セグメントのベクトル情報をクラスタリングして、決定木、線形回帰、ニューラルネットワークおよびサポートベクタマシン等で表された決定モデルを生成してもよい。このような決定モデルを生成することにより、情報処理装置18は、取得した動作情報から、最適なメモリ制御方式を決定することができる。
【0129】
続いて、S30において、モデル生成装置40は、生成した決定モデルを情報処理装置18の決定モデル記憶部28に登録する。モデル生成装置40は、S30の処理を終えると、本フローを終了する。
【0130】
以上のように、モデル生成装置40は、多数のセグメントの中から複数の教師セグメントを選択し、選択した複数の教師セグメントに基づき動作情報からメモリ制御方式を決定するための決定モデルを生成する。そして、モデル生成装置40は、生成した決定モデルを情報処理装置18に登録する。これにより、モデル生成装置40は、情報処理装置18に、適切なメモリ制御方式により第1記憶部14および不揮発記憶部16にアクセスさせることができる。
【0131】
(第1変形例)
つぎに、第1変形例に係るモデル生成装置40について説明する。
【0132】
図21は、第1変形例において割り当てられたメモリ制御方式の一例を示す図である。第1変形例において、モデル生成装置40の割当部68は、
図21に示すように、同一の分割パターンで分割された複数のセグメントのそれぞれに対して、異なる複数の割当パターンによりメモリ制御方式を割り当てる。そして、第1変形例において、モデル生成装置40の推定部72は、複数の分割パターンのそれぞれ毎および複数の割当パターンのそれぞれ毎に、対応する複数のセグメントのそれぞれについての実行性能を推定する。
【0133】
図22は、第1変形例に係るモデル生成装置40による処理の流れを示すフローチャートである。第1変形例に係るモデル生成装置40は、S25とS26との間において、S40の処理をさらに実行する。
【0134】
S40において、モデル生成装置40は、割り当て処理が終了したか否かを判断する。例えば、モデル生成装置40は、S24からS40までのループ処理を、予め定められた回数実行した場合には、割り当て処理が終了したと判定する。また、例えば、モデル生成装置40は、S24からS40までのループ処理を、予め定められた時間実行した場合に、割り当て処理が終了したと判定してもよい。
【0135】
モデル生成装置40は、割り当て処理が終了していない場合(S40のNo)、処理をS24に戻して、S24から処理を繰り返す。S24に処理が戻された場合、モデル生成装置40は、同一の分割パターンに対してこれまでに割り当てたパターンとは異なるパターンで、分割された複数のセグメントのそれぞれに対してメモリ制御方式を割り当てる。そして、モデル生成装置40は、割り当て処理が終了した場合(S40のYes)、処理をS26に進める。
【0136】
第1変形例に係るモデル生成装置40は、1つのセグメントに対して複数のメモリ制御方式を割り当てる。従って、モデル生成装置40は、教師セグメントを選択できる確率を高くすることができる。これにより、モデル生成装置40は、より精度の良い決定モデルを生成することができる。
【0137】
(第2変形例)
つぎに、第2変形例に係る情報処理装置18について説明する。
【0138】
図23は、第2変形例に係る方式決定部36の構成を決定モデル記憶部28とともに示す図である。第2変形例に係る方式決定部36は、モデル修正部90をさらに有する。モデル修正部90は、抽出部54が取得した動作情報、および、取得した動作情報に基づき決定されたメモリ制御方式により、決定モデル記憶部28に記憶されている決定モデルを修正する。
【0139】
図24は、第2変形例において教師セグメントが追加された決定モデルの一例を示す図である。例えば、決定モデルが、教師セグメントと割り当てられたメモリ制御方式との組の集合である場合、モデル修正部90は、
図24に示すように、取得した動作情報を教師セグメントとする。そして、モデル修正部90は、教師セグメントと、決定したメモリ制御方式と組にして決定モデルに追加する。これにより、決定モデルは、同一のメモリ制御方式として決定される範囲が、新たなに追加した教師モデルにより修正される。
【0140】
また、決定モデルが、教師セグメントのベクトル情報とメモリ制御方式との組の集合である場合、モデル修正部90は、動作情報をベクトル情報に変換して、変換後のベクトル情報とメモリ制御方式との組を決定モデルに追加する。また、決定モデルが、決定木、線形回帰、ニューラルネットワークまたはサポートベクタマシン等である場合には、モデル修正部90は、動作情報およびメモリ制御方式に基づき、決定モデルに含まれる分岐判断のための閾値または重み係数等のパラメータを修正する。
【0141】
なお、モデル修正部90は、抽出した全ての動作情報により決定モデルを修正するのではなく、例えば、管理装置22が特定のメモリ制御方式により第1記憶部14および不揮発記憶部16にアクセスしている場合に取得された動作情報に基づき、決定モデルを修正してもよい。
【0142】
第2変形例に係る情報処理装置18は、生成された決定モデルに基づき動作を開始した後にも、決定モデルを修正することができる。これにより、情報処理装置18は、決定モデルによる決定精度を向上させることができる。
【0143】
(第2実施形態)
第2実施形態について説明する。
【0144】
図25は、第2実施形態に係る情報処理システム100の構成を示す図である。第2実施形態に係る情報処理システム100は、第1記憶部14と、不揮発記憶部16と、第1情報処理装置18−1と、第2情報処理装置18−2と、モデル生成装置40とを備える。
【0145】
第1情報処理装置18−1および第2情報処理装置18−2は、第1実施形態に係る情報処理装置18と同一の構成である。第1情報処理装置18−1および第2情報処理装置18−2は、共に第1記憶部14および不揮発記憶部16にアクセスする。すなわち、第1情報処理装置18−1および第2情報処理装置18−2は、共通の主記憶メモリにアクセスする。
【0146】
モデル生成装置40は、第1情報処理装置18−1および第2情報処理装置18−2を同時に動作させる。そして、モデル生成装置40は、第1情報処理装置18−1および第2情報処理装置18−2から、共に動作した結果得られた動作情報の時系列データを取得する。
【0147】
モデル生成装置40は、第1情報処理装置18−1から取得した動作情報の時系列データに基づき、第1情報処理装置18−1が用いる決定モデルを生成する。そして、モデル生成装置40は、生成した決定モデルを第1情報処理装置18−1が備える決定モデル記憶部28に記憶させる。
【0148】
また、モデル生成装置40は、第2情報処理装置18−2から取得した動作情報の時系列データに基づき、第2情報処理装置18−2が用いる決定モデルを生成する。そして、モデル生成装置40は、生成した決定モデルを第2情報処理装置18−2が備える決定モデル記憶部28に記憶させる。
【0149】
情報処理システム100において、第1情報処理装置18−1および第2情報処理装置18−2は、主記憶メモリを共通に用いるので、メモリアクセスの実行性能が互いの動作情報に影響する。第2実施形態に係るモデル生成装置40は、第2情報処理装置18−2の動作による影響を反映した動作情報に基づき、第1情報処理装置18−1が用いる決定モデルを生成することができる。また、第2実施形態に係るモデル生成装置40は、第1情報処理装置18−1の動作による影響を反映した動作情報に基づき、第2情報処理装置18−2が用いる決定モデルを生成することができる。
【0150】
(情報処理装置200のハードウェア構成)
図26は、情報処理装置200のハードウェアブロック図である。情報処理装置200は、一例として、一般のコンピュータと同様のハードウェア構成により実現される。情報処理装置200は、所定プログラムを実行することにより、モデル生成装置40として機能することができる。
【0151】
情報処理装置200は、CPU202と、ROM(Read Only MemoryRead Only Memory)204と、RAM(Random Acces Memory)206と、操作部208と、表示部210と、通信装置212と、記憶装置214とを備える。各部は、バスにより接続される。
【0152】
CPU202は、情報処理を実行するプロセッサであって、記憶装置214に記憶されたプログラムをRAM206に展開して実行し、各部を制御して入出力を行ったり、データの加工を行ったりする。CPU202は、1または複数のプロセッサにより構成されていてもよい。また、情報処理装置200は、プログラムを実行することが可能であれば、CPU202に限らず他のプロセッサを備えてもよい。ROM204には、起動用プログラムを記憶装置214からRAM206に読み出すスタートプログラムが記憶されている。RAM206は、CPU202の作業領域としてデータを記憶する。
【0153】
操作部208は、マウスまたはキーボード等の入力デバイスであって、ユーザから操作入力された情報を指示信号として受け付け、その指示信号をCPU202に出力する。表示部210は、例えばLCD(Liquid Crystal Display)等の表示装置である。表示部210は、CPU202からの表示信号に基づいて、各種情報を表示する。通信装置212は、ネットワーク等を介して、外部機器と情報をやり取りする。記憶装置214は、例えば、ハードディスクドライブまたはフラッシュメモリ等である。記憶装置214は、情報処理装置200で実行されるプログラム、および、オペレーティングシステムを記憶している。
【0154】
本実施形態の情報処理装置200で実行されるプログラムは、インストール可能な形式または実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD等のコンピュータで読み取り可能な記録媒体に記録されて提供される。また、本実施形態の情報処理装置200で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、本実施形態の情報処理装置200で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。また、本実施形態のプログラムを、ROM204等に予め組み込んで提供するように構成してもよい。
【0155】
情報処理装置200をモデル生成装置40として機能させるためのプログラムは、取得モジュールと、分割モジュールと、割当モジュール、推定モジュールと、選択モジュールと、生成モジュールとを有する。情報処理装置200は、プロセッサ(CPU202)が記憶媒体(記憶装置214等)からプログラムを読み出して実行することにより各モジュールが主記憶装置(RAM206)上にロードされ、プロセッサ(CPU202)が、取得部62、分割部66、割当部68、推定部72、選択部74および生成部78として機能する。また、RAM206または記憶装置214等が、動作情報記憶部64、推定モデル記憶部70および教師セグメント記憶部76として機能する。なお、これらの一部または全部がプロセッサ以外のハードウェアにより実現されてもよい。
【0156】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、請求の範囲に記載された発明とその均等の範囲に含まれる。