(57)【要約】      （修正有）【課題】不揮発メモリに記憶されたデータに対するアクセスの効率を向上させる管理装置を提供する。【解決手段】管理装置１８は、アクセス処理部２８と、管理部４０とを備える。アクセス処理部は、複数のページの何れかのページに対して書き込みまたは読み出しの要求を受けた場合、不揮発メモリに記憶されたデータに対して書き込みまたは読み出しをする。管理部は、複数のページのそれぞれについての不揮発メモリにおける記憶位置を制御する。不揮発メモリは、高温領域と、動作時において高温領域より温度が相対的に低い低温領域とを含む。管理部は、複数のページをアクセス量が相対的に高い高アクセスページ群とアクセス量が相対的に低い低アクセスページ群に分類した場合に、高アクセスページ群に含まれるページが高温領域より低温領域に多く記憶されるように、複数のページの記憶位置を移動させる。【選択図】図２
2020046761.tif 000002
【特許請求の範囲】
【請求項１】
複数のページを記憶する不揮発メモリに対する、処理回路によるデータの読み出しおよび書き込みを制御する管理装置であって、
前記複数のページの何れかのページに対して書き込みまたは読み出しの要求を受けた場合、前記不揮発メモリに記憶されたデータに対して書き込みまたは読み出しをするアクセス処理部と、
前記複数のページのそれぞれについての前記不揮発メモリにおける記憶位置を制御する管理部と、
を備え、
前記不揮発メモリは、高温領域と、動作時において前記高温領域より温度が相対的に低い低温領域とを含み、
前記管理部は、前記複数のページをアクセス量が相対的に高い高アクセスページ群と前記アクセス量が相対的に低い低アクセスページ群に分類した場合に、前記高アクセスページ群に含まれるページが前記高温領域より前記低温領域に多く記憶されるように、前記複数のページの記憶位置を移動させる
管理装置。
【請求項２】
前記管理部は、前記低アクセスページ群に含まれるページが前記低温領域より前記高温領域に多く記憶されるように、前記複数のページの記憶位置を移動させる
請求項１に記載の管理装置。
【請求項３】
前記アクセス量は、一定期間における書き込み回数である
請求項１または２に記載の管理装置。
【請求項４】
前記アクセス量は、一定期間における書き込み回数および読み出し回数の総数である
請求項１または２に記載の管理装置。
【請求項５】
前記管理部は、前記複数のページのうち前記アクセス量が第１基準値より多いページを前記低温領域に移動させる
請求項１から４の何れか１項に記載の管理装置。
【請求項６】
前記管理部は、前記複数のページのうち前記アクセス量が第２基準値より少ないページを前記高温領域に移動させる
請求項２に記載の管理装置。
【請求項７】
前記不揮発メモリは、ヒートシンクにより放熱がされ、
前記低温領域は、前記高温領域より前記ヒートシンクに近い
請求項１から６の何れか１項に記載の管理装置。
【請求項８】
前記不揮発メモリは、基板またはインターポーザの上に積層された複数のチップを含み、
前記低温領域は、前記高温領域より前記基板または前記インターポーザから遠い
請求項１から６の何れか１項に記載の管理装置。
【請求項９】
前記不揮発メモリは、複数のチップと、前記複数のチップのうちの何れか１つのチップの下または上に設けられたロジックチップとをさらに含み、
前記低温領域は、前記高温領域より前記ロジックチップから遠い
請求項１から６の何れか１項に記載の管理装置。
【請求項１０】
当該管理装置は、第１メモリおよび前記不揮発メモリに対する、前記処理回路によるデータの読み出しおよび書き込みを制御する
請求項１または２に記載の管理装置。
【請求項１１】
前記複数のページのそれぞれについて、前記不揮発メモリから前記第１メモリに転送したデータに対して書き込みおよび読み出しをする第１アクセス処理、または、前記不揮発メモリに記憶されたデータに対して直接書き込みおよび読み出しをする第２アクセス処理の何れを実行するかを示すアクセス方法を記憶する設定記憶部をさらに備え、
前記アクセス処理部は、
前記第１アクセス処理に設定されているページに対して書き込みまたは読み出しの要求を受けた場合、前記第１アクセス処理を実行し、前記第２アクセス処理に設定されているページに対して書き込みまたは読み出しの要求を受けた場合、前記第２アクセス処理を実行する
請求項１０に記載の管理装置。
【請求項１２】
前記管理部は、前記アクセス方法が前記第２アクセス処理に設定されているページを、前記低温領域に記憶させる
請求項１１に記載の管理装置。
【請求項１３】
前記管理部は、前記アクセス方法が前記第１アクセス処理に設定されているページを、前記低温領域に記憶させる
請求項１１に記載の管理装置。
【請求項１４】
前記処理回路と、
前記第１メモリと、
前記不揮発メモリと、
請求項１０から請求項１３の何れか１項に記載の管理装置と、
を備える情報処理装置。
【請求項１５】
複数のページを記憶した不揮発メモリに対する、処理回路によるデータの読み出しおよび書き込みを制御する管理装置によるメモリ制御方法であって、
前記不揮発メモリは、高温領域と、動作時において前記高温領域より温度が相対的に低い低温領域とを含み、
前記複数のページの何れかのページに対して書き込みまたは読み出しの要求を受けた場合、前記不揮発メモリに記憶されたデータに対して書き込みまたは読み出しをし、
前記複数のページをアクセス量が相対的に高い高アクセスページ群とアクセス量が相対的に低い低アクセスページ群に分類した場合に、前記高アクセスページ群に含まれるページが前記高温領域より前記低温領域に多く記憶されるように、前記複数のページの記憶位置を移動させる
メモリ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、管理装置、情報処理装置およびメモリ制御方法に関する。
【背景技術】
【０００２】
近年、ストレージクラスメモリと呼ばれる高速な不揮発メモリが開発されている。ストレージクラスメモリは、ページ単位でのデータの書き換えに加えて、ページよりも小さい例えばバイト単位でのデータの書き込みが可能である。このようにバイト単位でデータの書き込み可能となった不揮発メモリは、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）から直接アクセスが可能となる。
【０００３】
ところで、半導体装置は、温度が高くなった場合、動作を一時的に停止させたり、動作周波数を下げたりしなければならない。このため、半導体装置は、温度が高くなった領域の動作性能が悪くなってしまっていた。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１７−１３８８５２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
本発明が解決しようとする課題は、不揮発メモリに記憶されたデータに対するアクセスの効率を向上させることにある。
【課題を解決するための手段】
【０００６】
実施形態に係る管理装置は、複数のページを記憶する不揮発メモリに対する、処理回路によるデータの読み出しおよび書き込みを制御する。前記管理装置は、アクセス処理部と、管理部とを備える。前記アクセス処理部は、前記複数のページの何れかのページに対して書き込みまたは読み出しの要求を受けた場合、前記不揮発メモリに記憶されたデータに対して書き込みまたは読み出しをする。前記管理部は、前記複数のページのそれぞれについての前記不揮発メモリにおける記憶位置を制御する。前記不揮発メモリは、高温領域と、動作時において前記高温領域より温度が相対的に低い低温領域とを含む。前記管理部は、前記複数のページをアクセス量が相対的に高い高アクセスページ群と前記アクセス量が相対的に低い低アクセスページ群に分類した場合に、前記高アクセスページ群に含まれるページが高温領域より低温領域に多く記憶されるように、前記複数のページの記憶位置を移動させる。
【図面の簡単な説明】
【０００７】
【図１】情報処理装置のハードウェア構成の一例を示す図。
【図２】管理装置の構成を示す図。
【図３】変換テーブルの一例を示す図。
【図４】第１アクセス処理および第２アクセス処理の内容を示す図。
【図５】アクセス処理部によるアクセス処理を示すフローチャート。
【図６】アクセス量テーブルの一例を示す図。
【図７】不揮発メモリの構造の第１例を示す図。
【図８】不揮発メモリの構造の第２例を示す図。
【図９】不揮発メモリの構造の第３例を示す図。
【図１０】管理部による処理の第１例を示すフローチャート。
【図１１】管理部による処理の第２例を示すフローチャート。
【図１２】不揮発メモリの構造の第４例を示す図。
【図１３】識別情報の変形例を示す図。
【図１４】情報処理装置の構成の第１変形例を示す図。
【図１５】情報処理装置の構成の第２変形例を示す図。
【図１６】情報処理装置の構成の第３変形例を示す図。
【発明を実施するための形態】
【０００８】
以下、図面を参照しながら実施形態に係る情報処理装置１０について詳細に説明する。
【０００９】
図１は、情報処理装置１０のハードウェア構成の一例を示す図である。情報処理装置１０は、処理回路１２と、第１メモリ１４と、不揮発メモリ１６と、管理装置１８とを備える。
【００１０】
処理回路１２は、１または複数のプロセッサを有する。プロセッサは、例えば、ＣＰＵである。プロセッサは、１または複数のＣＰＵコアを含んでいてもよい。処理回路１２は、プログラムを実行して、データを処理する。処理回路１２は、プログラムの実行に応じて、第１メモリ１４または不揮発メモリ１６からデータを読み出したり、第１メモリ１４または不揮発メモリ１６にデータを書き込んだりする。
【００１１】
また、処理回路１２は、Ｌ１データキャッシュ、Ｌ１命令キャッシュ、Ｌ２キャッシュおよびＬ３キャッシュ等の階層的なキャッシュメモリを有する。処理回路１２は、このようなキャッシュメモリを用いて、第１メモリ１４または不揮発メモリ１６に記憶されているデータを一時的に記憶する。処理回路１２は、例えば、階層的なキャッシュにおける最下層のキャッシュ（ラストレベルキャッシュ）でキャッシュミスをした場合、キャッシュライン単位で第１メモリ１４または不揮発メモリ１６に対してアクセスして必要なデータを読み出したり書き込んだりする。
【００１２】
なお、処理回路１２は、データ処理を実行できれば、どのような回路であってもよい。例えば、処理回路１２は、アクセラレータなどであってもよい。例えば、処理回路１２は、ＧＰＧＰＵ（Ｇｅｎｅｒａｌ−ｐｕｒｐｏｓｅ  ｃｏｍｐｕｔｉｎｇ  ｏｎ  Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）などで利用されるＧＰＵ（Ｇｒａｐｈｉｃｓ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）であってもよい。また、処理回路１２は、人工知能処理用のアクセラレータなどでもよい。
【００１３】
第１メモリ１４は、処理回路１２による作業領域として用いられる主記憶装置（メインメモリ）である。第１メモリ１４は、例えば、電源の供給を停止すると記憶しているデータが消える揮発メモリである。第１メモリ１４は、例えば、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）である。なお、第１メモリ１４は、ＤＲＡＭと同様に高速アクセスが可能な、ＭＲＡＭ（Ｍａｇｎｅｔｏｒｅｓｉｓｔｉｖｅ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等の不揮発メモリであってもよい。
【００１４】
また、第１メモリ１４は、不揮発メモリ１６よりも書き込み可能回数が多い。例えば、第１メモリ１４は、書き込み可能回数を考慮した設計をしなくてよい程度（例えば、書き込み回数に制限が無いとして設計をすることが可能な程度）、書き込み可能回数が多い。
【００１５】
不揮発メモリ１６は、電源の供給を停止してもデータを記憶し続けるメモリである。不揮発メモリ１６は、第１メモリ１４とともに処理回路１２の主記憶装置として機能する。
【００１６】
不揮発メモリ１６は、例えば、ＤＲＡＭより大容量な大容量高速不揮発メモリ（Ｎｏｎ−ｖｏｌａｔｉｌｅ  Ｍｅｍｏｒｙ）を含む。不揮発メモリ１６は、例えば、ＭＲＡＭ、ＰＣＭ（Ｐｈａｓｅ  Ｃｈａｎｇｅ  Ｍｅｍｏｒｙ）、ＰＲＡＭ（Ｐｈａｓｅ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＰＣＲＡＭ（Ｐｈａｓｅ  Ｃｈａｎｇｅ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＲｅＲＡＭ（Ｒｅｓｉｓｔａｎｃｅ  Ｃｈａｎｇｅ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＦｅＲＡＭ（Ｆｅｒｒｏｅｌｅｃｔｒｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、３ＤＸＰｏｉｎｔまたはＭｅｍｒｉｓｔｏｒ等である。不揮発メモリ１６は、いわゆるストレージクラスメモリ（ＳＣＭ）と呼ばれるメモリであってもよい。また、不揮発メモリ１６は、複数の半導体装置を１つの基板または筐体等に設けたモジュールであってもよい。
【００１７】
不揮発メモリ１６は、第１メモリ１４と比較して容量が大きい。不揮発メモリ１６の容量は、第１メモリ１４と同じであってもよい。また、不揮発メモリ１６は、第１メモリ１４のアクセス速度と同等または少し遅い程度である。また、不揮発メモリ１６は、待機電力がゼロか、または、第１メモリ１４と比較して待機電力が非常に少ない。不揮発メモリ１６は、一例として、アクセスレイテンシが１０ｎ秒から数μ秒程度の間のメモリである。
【００１８】
不揮発メモリ１６は、バイト単位等の小領域単位でデータを書き込みおよび読み出し可能である。従って、処理回路１２は、ロード命令またはストア命令により不揮発メモリ１６に対して直接アクセスが可能である。処理回路１２は、例えばキャッシュライン単位等で不揮発メモリ１６に直接アクセスする。
【００１９】
また、不揮発メモリ１６は、高温領域と、低温領域とを含む。低温領域は、動作時において、高温領域より温度が相対的に低い。例えば、不揮発メモリ１６が積層された複数の半導体チップを含む場合、放熱装置等に近いため放熱効率が良い半導体チップを低温領域とし、放熱装置等から遠いため放熱効率が悪い半導体チップを高温領域とする。
【００２０】
管理装置１８は、第１メモリ１４および不揮発メモリ１６に対する、処理回路１２によるデータの読み出しおよび書き込みを制御する。管理装置１８は、処理回路１２からの第１メモリ１４および不揮発メモリ１６に対するアクセス要求を処理する。すなわち、管理装置１８は、処理回路１２からの書込命令に応じて、データを第１メモリ１４または不揮発メモリ１６に書き込む。また、管理装置１８は、処理回路１２からの読出命令に応じて、データを第１メモリ１４または不揮発メモリ１６から読み出し、読み出したデータを処理回路１２に与える。
【００２１】
なお、管理装置１８は、例えば、処理回路１２とは別体のハードウェアで構成されたメモリコントローラである。また、管理装置１８は、処理回路１２の一部のハードウェア（例えば、処理回路１２と同一の半導体基板に形成された回路）であってもよいし、処理回路１２の一部のハードウェアとメモリコントローラとの組み合わせにより実現されてもよい。また、管理装置１８は、処理回路１２が実行するオペレーティングシステムの一部の機能により実現されてもよいし、オペレーティングシステムの一部の機能とメモリコントローラとの組み合わせにより実現されてもよい。
【００２２】
また、管理装置１８は、例えば、処理回路１２とは別体のハードウェアで構成されたメモリ管理ユニット（ＭＭＵ）であってもよい。また、管理装置１８は、処理回路１２の一部のハードウェアとメモリ管理ユニットとの組み合わせにより実現されてもよい。また、管理装置１８は、処理回路１２が実行するオペレーティングシステムの一部の機能とメモリ管理ユニットとの組み合わせにより実現されてもよい。
【００２３】
また、管理装置１８は、メモリコントローラと、ＭＭＵ（メモリ管理ユニット）との組み合わせにより実現されてもよい。また、管理装置１８は、処理回路１２の一部のハードウェアと、メモリコントローラと、メモリ管理ユニットとの組み合わせにより実現されてもよい。また、管理装置１８は、処理回路１２が実行するオペレーティングシステムの一部の機能と、メモリコントローラと、メモリ管理ユニットとの組み合わせにより実現されてもよい。
【００２４】
図２は、管理装置１８の構成を示す図である。管理装置１８は、設定記憶部２６と、アクセス処理部２８と、アクセス量記憶部３２と、更新部３６と、管理部４０とを有する。
【００２５】
設定記憶部２６は、変換テーブルを記憶する。変換テーブルは、処理回路１２がアクセス要求をするそれぞれのページについて、要求アドレスと、第１メモリ１４または不揮発メモリ１６におけるページが記憶された対応する領域を識別する番号（物理アドレス）との対応関係を記憶する。
【００２６】
さらに、変換テーブルは、処理回路１２がアクセス要求をするそれぞれのページについて、第１アクセス処理または第２アクセス処理の何れを実行するか示すアクセス方法を記憶する。
【００２７】
第１アクセス処理は、不揮発メモリ１６から第１メモリ１４に転送したデータに対して、書き込みおよび読み出しをする方法である。第２アクセス処理は、不揮発メモリ１６に記憶されるデータに対して直接書き込みおよび読み出しをする方法である。なお、変換テーブルの詳細については、図３を参照して後述する。
【００２８】
アクセス処理部２８は、処理回路１２からの第１メモリ１４および不揮発メモリ１６に対するアクセス要求を処理する。すなわち、アクセス処理部２８は、処理回路１２からの書込命令に応じて、データを第１メモリ１４または不揮発メモリ１６に書き込む。また、アクセス処理部２８は、処理回路１２からの読出命令に応じて、データを第１メモリ１４または不揮発メモリ１６から読み出し、読み出したデータを処理回路１２に与える。
【００２９】
また、アクセス処理部２８は、処理回路１２がアクセス要求をしたページについて、変換テーブルに記憶されたアクセス方法により第１メモリ１４および不揮発メモリ１６にアクセスする。つまり、アクセス処理部２８は、第１アクセス処理に設定されているページに対して書き込みまたは読み出しの要求を受けた場合、第１アクセス処理を実行する。また、アクセス処理部２８は、第２アクセス処理に設定されているページに対して書き込みまたは読み出しの要求を受けた場合、第２アクセス処理を実行する。アクセス方法の詳細については、図３、図４および図５を参照して後述する。
【００３０】
アクセス量記憶部３２は、アクセス量テーブルを記憶する。アクセス量テーブルは、不揮発メモリ１６に記憶された複数のページのそれぞれについて、一定期間におけるデータのアクセス量を格納する。アクセス量テーブルの詳細については、図６を参照して後述する。
【００３１】
更新部３６は、アクセス量テーブルに格納されたそれぞれのアクセス量を更新する。更新部３６は、処理回路１２が不揮発メモリ１６にアクセスした場合、アクセスしたデータのアドレス情報を取得し、取得したアドレス情報に基づきアクセス量テーブルを更新する。そして、更新部３６は、一定期間毎に、アクセス量テーブルをリセットする。
【００３２】
ここで、アクセス量は、例えば、一定期間における書き込み回数である。この場合、更新部３６は、処理回路１２が不揮発メモリ１６に書き込んだデータのアドレス情報を取得し、取得したアドレス情報に基づきアクセス量テーブルを更新する。また、アクセス量は、一定期間における書き込み回数および読み出し回数の総数であってもよい。この場合、更新部３６は、処理回路１２が不揮発メモリ１６に書き込んだまたは不揮発メモリ１６から読み出したデータのアドレス情報を取得し、取得したアドレス情報に基づきアクセス量テーブルを更新する。
【００３３】
管理部４０は、複数のページのそれぞれについての不揮発メモリ１６における記憶位置を制御する。より具体的には、管理部４０は、複数のページをアクセス量が相対的に高い高アクセスページ群とアクセス量が相対的に低い低アクセスページ群に分類した場合に、高アクセスページ群に含まれるページが高温領域より低温領域に多く記憶されるように、複数のページの記憶位置を移動させる。さらに、管理部４０は、低アクセスページ群に含まれるページが低温領域より高温領域に多く記憶されるように、複数のページの記憶位置を移動させてもよい。なお、管理部４０の詳細な処理については、図１０および図１１においてさらに説明する。
【００３４】
図３は、変換テーブルの一例を示す図である。変換テーブルは、処理回路１２がアクセス要求をするそれぞれのページについて、要求アドレスと、第１メモリ１４または不揮発メモリ１６における対応するページ番号（物理アドレス）との対応関係を記憶する。すなわち、変換テーブルは、処理回路１２による要求アドレスに対応するデータが、第１メモリ１４または不揮発メモリ１６における何れのページに記憶されているのかを示すマッピング情報を記憶する。
【００３５】
例えば、図３の例では、変換テーブルにおけるページ番号の列に“Ｓｘｘｘｘ”と記述されたページは、不揮発メモリ１６におけるページ番号が“ｘｘｘｘ”のページを示す。例えば、図３の例では、ページ番号の列に“Ｄｘｘｘｘ”と記述されたページは、第１メモリ１４におけるページ番号が“ｘｘｘｘ”のページを示す。なお、ここでのｘは、任意の値である。
【００３６】
さらに、変換テーブルは、処理回路１２がアクセス要求をするそれぞれのページについて、第１アクセス処理または第２アクセス処理の何れを実行するか示すアクセス方法を記憶する。なお、変換テーブルは、図３に示すような構成に限らず、他の構成であってもよい。
【００３７】
図４は、第１アクセス処理および第２アクセス処理の内容を示す図である。アクセス処理部２８は、第１アクセス処理に設定されている第１ページに対して書き込みまたは読み出しの要求を受けた場合、不揮発メモリ１６に対して、第１アクセス処理を実行する。
【００３８】
例えば、図４に示すように、第１アクセス処理において、アクセス処理部２８は、不揮発メモリ１６に記憶された第１ページのデータを転送して、第１メモリ１４に記憶させる。これにより、第１メモリ１４は、不揮発メモリ１６に記憶された第１ページのデータのコピーを記憶することができる。続いて、第１アクセス処理において、アクセス処理部２８は、第１メモリ１４に記憶されている、不揮発メモリ１６から転送された第１ページのデータに対して、読み出しおよび書き込みをする。例えば、アクセス処理部２８は、不揮発メモリ１６から第１メモリ１４に転送された第１ページのデータに対して、ページより小さいサイズ（例えばプロセッサのキャッシュラインサイズ）でデータの読み出しおよび書き込みをする。そして、第１アクセス処理において、アクセス処理部２８は、第１メモリ１４の空き容量が無くなり不揮発メモリ１６から第１メモリ１４にデータを転送できなくなった場合、および、第１メモリ１４に記憶させておくことが不要と判断された場合等において、第１メモリ１４に転送された第１ページのデータを、不揮発メモリ１６に書き戻す。
【００３９】
なお、アクセス処理部２８は、第１メモリ１４に転送された第１ページのデータを、元の場所に書き戻してもよいし、他の場所に書き戻してもよい。例えば、アクセス処理部２８は、第１アクセス処理において、不揮発メモリ１６から第１メモリ１４に転送された第１ページのデータを、何れの要求アドレスも対応付けられていない未使用領域に書き戻してよい。これにより、アクセス処理部２８は、ページ毎の書き換え回数の隔たりを小さくし、特定のページの品質劣化を抑制することができる。
【００４０】
また、アクセス処理部２８は、第２アクセス処理に設定されている第２ページに対して書き込みまたは読み出しの要求を受けた場合、不揮発メモリ１６に対して、第２アクセス処理を実行する。
【００４１】
例えば、図４に示すように、第２アクセス処理において、アクセス処理部２８は、不揮発メモリ１６に記憶された第２ページに対して、直接読み出しおよび書き込みをする。例えば、アクセス処理部２８は、ページより小さいサイズでデータの読み出しおよび書き込みをする。
【００４２】
このように、アクセス処理部２８は、２種類のアクセス方法により不揮発メモリ１６に対してアクセスする。例えば、メモリアクセスに局所性が高いアプリケーションを実行した場合、アクセス処理部２８は、第１アクセス処理により不揮発メモリ１６に記憶されたページを第１メモリ１４に転送してアクセスする。これにより、アクセス処理部２８は、メモリアクセスに局所性が高いアプリケーションを実行した場合、同一のページに対してより高速に処理をすることができる。
【００４３】
また、例えば、ランダムアクセスのようにメモリアクセスに局所性が低い処理を実行する場合、アクセス処理部２８は、第２アクセス処理により不揮発メモリ１６に記憶されたページをアクセスする。これにより、アクセス処理部２８は、局所性が低い処理を実行する場合、不揮発メモリ１６から第１メモリ１４への転送処理のオーバヘッドを無くして、効率良く処理をすることができる。このように、アクセス処理部２８は、第１アクセス処理および第２アクセス処理の２種類のアクセス方法を用いることにより、処理の効率化を図ることができる。
【００４４】
図５は、アクセス処理部２８によるアクセス処理を示すフローチャートである。アクセス処理部２８は、図５に示すフローチャートに従って、第１メモリ１４および不揮発メモリ１６に対してアクセスをする。
【００４５】
まず、Ｓ１１において、アクセス処理部２８は、処理回路１２からアクセス要求があったか否かを判断する。アクセス処理部２８は、アクセス要求が無い場合（Ｓ１１のＮｏ）、処理をＳ１１で待機する。アクセス処理部２８は、アクセス要求が有った場合（Ｓ１１のＹｅｓ）、処理をＳ１２に進める。
【００４６】
Ｓ１２において、アクセス処理部２８は、変換テーブルを参照して、アクセス要求に含まれる要求アドレスから、第１メモリ１４または不揮発メモリ１６におけるアクセス先となる対象ページのページ番号を特定する。これにより、アクセス処理部２８は、要求アドレスから物理アドレスへのアドレス変換処理を実行することができる。
【００４７】
続いて、Ｓ１３において、アクセス処理部２８は、対象ページに対するアクセス方法が、第１アクセス処理か否かを判断する。対象ページに対するアクセス方法が第１アクセス処理ではない場合、すなわち、アクセス方法が第２アクセス処理である場合（Ｓ１３のＮｏ）、アクセス処理部２８は、処理をＳ１４に進める。Ｓ１４において、アクセス処理部２８は、不揮発メモリ１６における対象ページに直接アクセスする。そして、アクセス処理部２８は、Ｓ１４の処理を終えると本フローを終了する。
【００４８】
また、対象ページに対するアクセス方法が第１アクセス処理である場合（Ｓ１３のＹｅｓ）、アクセス処理部２８は、処理をＳ１５に進める。Ｓ１５において、アクセス処理部２８は、データが第１メモリ１４に転送済みか未転送かを判断する。アクセス処理部２８は、データが第１メモリ１４に転送済みか未転送かを、変換テーブルにおけるページ番号（物理アドレス）を参照することにより判断することができる。転送済みの場合（Ｓ１５のＹｅｓ）、アクセス処理部２８は、処理をＳ１７に進める。
【００４９】
未転送の場合（Ｓ１５のＮｏ）、アクセス処理部２８は、処理をＳ１６に進める。Ｓ１６において、アクセス処理部２８は、対象ページのデータを第１メモリ１４に転送する。さらに、アクセス処理部２８は、変換テーブルにおける転送したデータのページ番号（物理アドレス）を、第１メモリ１４における転送先のページ番号に変更する。アクセス処理部２８は、Ｓ１６の処理を終えると、処理をＳ１７に進める。
【００５０】
Ｓ１７において、アクセス処理部２８は、第１メモリ１４における対象ページにアクセスする。そして、アクセス処理部２８は、Ｓ１７の処理を終えると本フローを終了する。以上のように処理を実行することにより、アクセス処理部２８は、変換テーブルに示されたアクセス方法により第１メモリ１４および不揮発メモリ１６にアクセスすることができる。
【００５１】
図６は、アクセス量テーブルの一例を示す図である。アクセス量テーブルは、不揮発メモリ１６に記憶された複数のページのそれぞれについての、一定期間におけるアクセス量を格納する。例えば、アクセス量テーブルは、不揮発メモリ１６に記憶された複数のページのそれぞれのアドレスに対応させて、アクセス量を格納する。
【００５２】
それぞれのアクセス量は、対応するページの読み出し回数あるいは読み出し回数の推定値を表してもよい。それぞれのアクセス量は、対応するページの書き換え回数あるいは書き換え回数の推定値を表してもよい。それぞれのアクセス量は、対応するページの書き込み回数および読み出し回数の総数あるいは書き込み回数の推定値と読み出し回数の推定値の総数を表してもよい。それぞれのアクセス量は、例えば、一定期間毎に０にリセットされる。
【００５３】
図７は、不揮発メモリ１６の構造の第１例を示す図である。例えば、不揮発メモリ１６は、積層された複数のチップ５０を含む。複数のチップ５０のそれぞれは、複数のページを記憶することができる。また、積層された複数のチップ５０は、基板５２またはインターポーザの上に設けられる。また、積層された複数のチップ５０の上には、ヒートシンク５４が設けられる。
【００５４】
このような構成の不揮発メモリ１６は、ヒートシンク５４により放熱がされる。このため、不揮発メモリ１６は、ヒートシンク５４に近い領域のチップ５０の温度が低くなり、ヒートシンク５４から遠い領域のチップ５０の温度が高くなる傾向がある。そこで、このような構成の不揮発メモリ１６は、ヒートシンク５４から遠い１または複数のチップ５０が高温領域と設定され、高温領域よりヒートシンク５４に近い１または複数のチップ５０が低温領域として設定される。
【００５５】
図８は、不揮発メモリ１６の構造の第２例を示す図である。不揮発メモリ１６は、図８に示すように、ヒートシンク５４が設けられない構成であってもよい。
【００５６】
この場合、不揮発メモリ１６は、基板５２またはインターポーザに近い１または複数のチップ５０が高温領域と設定され、高温領域より基板５２またはインターポーザから遠い１または複数のチップ５０が低温領域として設定される。
【００５７】
図９は、不揮発メモリ１６の構造の第３例を示す図である。不揮発メモリ１６は、複数のチップ５０のうちの何れか１つのチップ５０の下または上に設けられたロジックチップ５６をさらに含んでもよい。
【００５８】
ロジックチップ５６は、データ処理を実行する回路を含む。ロジックチップ５６は、一般に、発熱量が大きい。そこで、このような不揮発メモリ１６は、ロジックチップ５６に近い１または複数のチップ５０が高温領域と設定され、高温領域よりロジックチップ５６から遠い１または複数のチップ５０が低温領域として設定される。
【００５９】
図１０は、管理部４０による処理の第１例を示すフローチャートである。管理部４０は、例えば一定期間毎に、不揮発メモリ１６に記憶されている複数のページのそれぞれについて、図１０に示す処理を実行する。
【００６０】
Ｓ２１において、管理部４０は、アクセス量記憶部３２に記憶されたアクセス量テーブルを参照して、対象ページにおける一定期間におけるアクセス量を取得する。続いて、Ｓ２２において、管理部４０は、設定記憶部２６の変換テーブルのページ番号（物理アドレス）を参照して、対象ページが高温領域に属しているか否かを判断する。管理部４０は、対象ページが高温領域に属している場合（Ｓ２２のＹｅｓ）、処理をＳ２３に進め、対象ページが高温領域に属していない場合（Ｓ２２のＮｏ）、処理をＳ２６に進める。
【００６１】
Ｓ２３において、管理部４０は、高温領域に属している対象ページの一定期間におけるアクセス量が、予め定められた第１基準値より多いか否かを判断する。第１基準値より多くない場合（Ｓ２３のＮｏ）、管理部４０は、本フローを終了して、次のページについての本フローの処理を続ける。
【００６２】
第１基準値より多い場合（Ｓ２３のＹｅｓ）、管理部４０は、処理をＳ２４に進める。Ｓ２４において、管理部４０は、低温領域にページを記憶させる空き領域を確保する。続いて、Ｓ２５において、管理部４０は、対象ページを高温領域から低温領域に移動させ、変換テーブルにおける対象ページのページ番号（物理アドレス）を変更する。管理部４０は、Ｓ２５を終了した後、本フローを終了して、次のページについての本フローの処理を続ける。
【００６３】
Ｓ２４およびＳ２５の処理を実行することにより、管理部４０は、高アクセスページ群に含まれるページが高温領域より低温領域に多く記憶されるように、複数のページの記憶位置を移動させることができる。
【００６４】
また、Ｓ２６において、管理部４０は、高温領域に属していない対象ページ、つまり、低温領域に属している対象ページの一定期間におけるアクセス量が、予め定められた第２基準値より少ないか否かを判断する。第２基準値は、例えば、第１基準値より少ない量である。第２基準値より少なくない場合（Ｓ２６のＮｏ）、管理部４０は、本フローを終了して、次のページについての本フローの処理を続ける。
【００６５】
第２基準値より少ない場合（Ｓ２６のＹｅｓ）、管理部４０は、処理をＳ２７に進める。Ｓ２７において、管理部４０は、高温領域にページを記憶させる空き領域を確保する。続いて、Ｓ２８において、管理部４０は、対象ページを低温領域から高温領域に移動させ、変換テーブルにおける対象ページのページ番号（物理アドレス）を変更する。管理部４０は、Ｓ２８を終了した後、本フローを終了して、次のページについての本フローの処理を続ける。
【００６６】
Ｓ２７およびＳ２８の処理を実行することにより、管理部４０は、低アクセスページ群に含まれるページが低温領域より高温領域に多く記憶されるように、複数のページの記憶位置を移動させることができる。
【００６７】
図１１は、管理部４０による処理の第２例を示すフローチャートである。管理部４０は、例えば一定期間毎に、不揮発メモリ１６に記憶されている複数のページのそれぞれについて、図１１に示す処理を実行してもよい。図１１に示す処理は、図１０に示した第１例の処理のＳ２３の処理に代えてＳ３１の処理が実行され、Ｓ２６の処理に代えてＳ３２の処理が実行される。
【００６８】
Ｓ３１において、管理部４０は、設定記憶部２６の変換テーブルのアクセス方法を参照して、対象ページが第２アクセス処理でアクセスがされるか否かを判断する。第２アクセス処理ではない場合（Ｓ３１のＮｏ）、管理部４０は、本フローを終了して、次のページについての本フローの処理を続ける。第２アクセス処理である場合（Ｓ３１のＹｅｓ）、管理部４０は、処理をＳ２４に進める。これにより、管理部４０は、第２アクセス処理である場合、つまり、不揮発メモリ１６にデータを直接書き込みおよび読み出しをする処理である場合、そのページを低温領域に移動させることができる。
【００６９】
また、Ｓ３２において、管理部４０は、設定記憶部２６の変換テーブルのアクセス方法を参照して、対象ページが第１アクセス処理でアクセスがされるか否かを判断する。第１アクセス処理ではない場合（Ｓ３２のＮｏ）、管理部４０は、本フローを終了して、次のページについての本フローの処理を続ける。第１アクセス処理である場合（Ｓ３２のＹｅｓ）、管理部４０は、処理をＳ２７に進める。これにより、管理部４０は、第１アクセス処理である場合、つまり、第１メモリ１４にコピーしてデータを書き込みおよび読み出しをする処理である場合、そのページを高温領域に移動させることができる。
【００７０】
以上の処理に代えて、Ｓ３１において、管理部４０は、対象ページが第１アクセス処理でアクセスがされるか否かを判断してもよい。そして、第１アクセス処理である場合（Ｓ３１のＹｅｓ）、管理部４０は、処理をＳ２４に進める。これにより、管理部４０は、第１アクセス処理である場合、つまり、そのページに対するアクセス量が多い場合、そのページを低温領域に移動させることができる。
【００７１】
さらに、Ｓ３２において、管理部４０は、対象ページが第２アクセス処理でアクセスがされるか否かを判断してもよい。そして、第２アクセス処理である場合（Ｓ３２のＹｅｓ）、管理部４０は、処理をＳ２７に進める。これにより、管理部４０は、第２アクセス処理である場合、つまり、そのページに対するアクセス量が少ない場合、そのページを高温領域に移動させることができる。
【００７２】
図１２は、不揮発メモリ１６の構造の第４例を示す図である。不揮発メモリ１６は、高温側（例えば、ヒートシンク５４から遠い側、基板５２またはインターポーザに近い側、または、ロジックチップ５６に近い側）から、低温側（例えば、ヒートシンク５４に近い側、基板５２またはインターポーザから遠い側、または、ロジックチップ５６から遠い側）の間に、３以上の領域を設定してもよい。
【００７３】
このような場合、例えば、管理部４０は、対象ページに対するアクセス量を複数の段階に分類し、それぞれの分類に対応した領域に対象ページを移動させる。具体的には、管理部４０は、アクセス量が多い程、低温側に近い領域に記憶されるように移動する。換言すると、管理部４０は、アクセス量が少ない程、高温側に近い領域に記憶されるように移動する。
【００７４】
このようにしても、管理部４０は、高アクセスページ群に含まれるページが高温領域より低温領域に多く記憶されるように、複数のページの記憶位置を移動させることができる。さらに、管理部４０は、低アクセスページ群に含まれるページが低温領域より高温領域に多く記憶されるように、複数のページの記憶位置を移動させることができる。
【００７５】
以上のように、本実施形態に係る情報処理装置１０は、アクセス量が多いページを低温領域に記憶させ、アクセス量が少ないページを高温領域に記憶させることができる。高温領域は、低温領域よりも、動作性能が悪くなる可能性がある。従って、本実施形態に係る情報処理装置１０は、低温領域にアクセス量が多いページを記憶させて、全体として不揮発メモリ１６に対するアクセス効率を向上させることができる。
【００７６】
（変形例）
以下、各実施形態の変形例について説明する。
【００７７】
図１３は、識別情報の変形例を示す図である。管理装置１８は、ページ番号を用いて、管理テーブルに格納される管理情報を識別していた。これに代えて、管理装置１８は、ＴＬＢ（Ｔｒａｎｓｌａｔｉｏｎ  Ｌｏｏｋａｓｉｄｅ  Ｂｕｆｆｅｒ）により管理されるアドレスに対応させて、管理テーブルに格納される管理情報を識別してもよい。
【００７８】
処理回路１２は、ＴＬＢと呼ばれる仮想記憶機構を有する。ＴＬＢは、仮想アドレスから物理アドレスへアドレス変換を行うために、ページにおける要求アドレス（論理アドレス）と物理アドレスとの対応を示す対応関係情報を記憶する。しかし、ＴＬＢは、保有しているエントリが限られているので、対応関係情報を必要に応じて入れ替える。ＴＬＢは、例えば、直近において高い頻度でアクセスされるページについての対応関係情報を優先して記憶する。
【００７９】
そこで、管理装置１８は、ＴＬＢに対応関係情報が記憶されているページについて、管理テーブルに記憶させてもよい。例えば、管理装置１８は、ＴＬＢのエントリの数と同一の数のエントリを有する管理テーブルを記憶する。そして、更新部３６は、ＴＬＢのエントリから対応関係情報が追い出されたタイミングにおいて、対応する管理テーブルに記憶されている管理情報を消去する。この場合、更新部３６は、管理情報が他の管理情報に書き込みされた場合と同様の処理を実行する。なお、管理テーブルは、ＴＬＢのエントリと同一のエントリを有するので、識別情報を格納するエントリを含まなくてもよい。
【００８０】
図１４は、情報処理装置１０の構成の第１変形例を示す図である。例えば、第１変形例に係る処理回路１２は、管理装置１８を内部に備える。第１変形例に係る第１メモリ１４および不揮発メモリ１６は、この処理回路１２の外部に設けられる。
【００８１】
図１５は、情報処理装置１０の構成の第２変形例を示す図である。例えば、第２変形例に係る処理回路１２は、管理装置１８を内部に備える。第２変形例に係る処理回路１２は、第１メモリ１４も内部に備える。
【００８２】
図１６は、情報処理装置１０の構成の第３変形例を示す図である。例えば、情報処理装置１０は、処理回路１２と、不揮発記憶モジュール８０とを備えてもよい。この場合、不揮発記憶モジュール８０は、不揮発メモリ１６と、管理装置１８とを有する。
【００８３】
また、第１メモリ１４は、例えば、プロセッサ内のＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）であってもよい。また、第１メモリ１４は、不揮発メモリ１６よりも書き換え可能回数が多いＭＲＡＭ等の不揮発メモリであってもよい。
【００８４】
以上、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００８５】
１０  情報処理装置
１２  処理回路
１４  第１メモリ
１６  不揮発メモリ
１８  管理装置
２６  設定記憶部
２８  アクセス処理部
３２  アクセス量記憶部
３６  更新部
４０  管理部
５０  チップ
５２  基板
５４  ヒートシンク
５６  ロジックチップ
【図１】
2020046761.tif 000003
【図２】
2020046761.tif 000004
【図３】
2020046761.tif 000005
【図４】
2020046761.tif 000006
【図５】
2020046761.tif 000007
【図６】
2020046761.tif 000008
【図７】
2020046761.tif 000009
【図８】
2020046761.tif 000010
【図９】
2020046761.tif 000011
【図１０】
2020046761.tif 000012
【図１１】
2020046761.tif 000013
【図１２】
2020046761.tif 000014
【図１３】
2020046761.tif 000015
【図１４】
2020046761.tif 000016
【図１５】
2020046761.tif 000017
【図１６】
2020046761.tif 000018