(57)【要約】      （修正有）【課題】不揮発性メモリの書き換え寿命は、メモリの種類によって異なるため、複数種類のメモリを用いたシステムなどにおける書き換え寿命の管理により、より効率的にメモリを利用することができるようにする。【解決手段】書き換え可能回数の上限値が異なる複数のメモリを組み合わせて構成される主記憶装置と、前記主記憶装置に記憶すべきデータの記憶領域を、前記データの書き換え頻度１０７に基づいて、前記複数のメモリのいずれかに割り当てる割り当て管理部１０２とを備える。【選択図】図２
2013254403.tif 000002
【特許請求の範囲】
【請求項１】
書き換え可能回数の上限値が異なる複数のメモリを組み合わせて構成される主記憶装置と、
前記主記憶装置に記憶すべきデータの記憶領域を、前記データの書き換え頻度に基づいて、前記複数のメモリのいずれかに割り当てる割り当て管理部と
を備える情報処理装置。
【請求項２】
前記割り当て管理部は、
前記書き換え頻度が大きいデータの記憶領域を、前記複数のメモリのうちの第１のメモリに割り当て、
前記書き換え頻度が小さいデータの記憶領域を、前記複数のメモリのうちの第１のメモリより書き換え可能回数の上限値が小さい第２のメモリに割り当てる
請求項１に記載の情報処理装置。
【請求項３】
前記割り当て管理部は、
前記第２のメモリの１ページ当たりの記憶容量を、第１のメモリの１ページ当たりの記憶容量より大きく設定する
請求項２に記載の情報処理装置。
【請求項４】
前記第２のメモリは、前記第１のメモリより記憶容量が大きい
請求項２に記載の情報処理装置。
【請求項５】
前記第１のメモリは、ＭＲＡＭ（Magnetoresistive Random Access Memory）とされ、前記第２のメモリは、ＲｅＲＡＭ（Resistance Random Access Memory）、または、ＰＣＭ（Phase Change Memory）とされる
請求項２に記載の情報処理装置。
【請求項６】
前記主記憶装置に記憶すべきデータの付加情報に基づいて、前記データの書き換え頻度を推定する書き換え頻度推定部をさらに備える
請求項１に記載の情報処理装置。
【請求項７】
前記書き換え頻度推定部は、
前記主記憶装置に記憶すべきデータのデータ型毎に、前記データを構成する各部の書き換え頻度を推定する
請求項１に記載の情報処理装置。
【請求項８】
前記データを構成する各部の書き換え頻度が、前記データのデータ型毎に学習されて生成されたテンプレートに基づいて推定される
請求項７に記載の情報処理装置。
【請求項９】
中央演算処理装置により実行されるプログラムの中の予め指定された特定のステップの処理が実行される場合、前記特定のステップが実行されることを、前記割り当て管理部に通知する特定ステップ実行通知部をさらに備え、
前記割り当て管理部は、
前記実行通知部からの通知を受けた場合、
前記複数のメモリのうちの１つのメモリに割り当てられていた前記データの記憶領域を、前記複数のメモリのうちの他のメモリに割り当てる
請求項１に記載の情報処理装置。
【請求項１０】
前記割り当て管理部は、
前記実行通知部からの通知を受けた場合、
前記複数のメモリのうちの第１のメモリより書き換え可能回数の上限値が小さい第２のメモリに記憶されているデータの記憶領域を、前記第１のメモリに割り当てる
請求項９に記載の情報処理装置。
【請求項１１】
前記複数のメモリのうち、比較的書き換え可能回数の上限値が小さいメモリが、補助記憶装置と兼用される
請求項１に記載の情報処理装置。
【請求項１２】
前記複数のメモリのうち、比較的書き換え可能回数の上限値が小さいメモリが、不揮発性メモリとして構成され、
前記複数のメモリのうち、比較的書き換え可能回数の上限値が大きいメモリが、揮発性メモリとして構成される
請求項１に記載の情報処理装置。
【請求項１３】
書き換え可能回数の上限値が異なる複数のメモリを組み合わせて構成される主記憶装置を備える情報処理装置の情報処理方法であって、
前記主記憶装置に記憶すべきデータの記憶領域を、前記データの書き換え頻度に基づいて、前記複数のメモリのいずれかに割り当てるステップ
を含む情報処理方法。
【請求項１４】
コンピュータを、
書き換え可能回数の上限値が異なる複数のメモリを組み合わせて構成される主記憶装置と、
前記主記憶装置に記憶すべきデータの記憶領域を、前記データの書き換え頻度に基づいて、前記複数のメモリのいずれかに割り当てる割り当て管理部とを備える情報処理装置として機能させる
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、情報処理装置および方法、並びに、プログラムに関し、特に、より効率的にメモリを利用することができるようにする情報処理装置および方法、並びに、プログラムに関する。
【背景技術】
【０００２】
近年、不揮発性メモリの開発が進んでいる。
【０００３】
例えば、ＭＲＡＭ（Magnetoresistive Random Access Memory）は、記憶媒体にハードディスクなどと同じ磁性体を用いたメモリ技術である。ＭＲＡＭは、原子数個程度の厚さの絶縁体薄膜を２層の磁性体薄膜で挟み、両側から加える磁化方向を変化させることで抵抗値が変化するＴＭＲ効果を応用している。
【０００４】
ＭＲＡＭは、アドレスアクセスタイムが約１０ns、サイクルタイムが約２０nsであり、ＤＲＡＭの５倍程度高速な読み書きが可能である。また、フラッシュメモリの１０分の１程度の低消費電力、高集積性が可能などの長所がある。
【０００５】
また、ＲｅＲＡＭ（Resistance Random Access Memory）は、電圧印加による電気抵抗の大きな変化（電界誘起巨大抵抗変化、ＣＥＲ（Colossal Electro-Resistance ）効果）を利用している。
【０００６】
ＲｅＲＡＭは、比較的単純な構造のためセル面積が小さく、高密度化（=低コスト化）が可能である。また、電気抵抗の変化率が数十倍にものぼり、多値化も容易であるため、大容量化が期待できる。
【０００７】
一方で上述したような不揮発性メモリには、書き換え回数に上限がある。すなわち、個々の記憶領域に対して一定の回数以上の書き換えを行うことができない。このような、書き換え回数の上限値は、書き換え寿命と称されることもある。上述したような不揮発性メモリを利用するシステムなどにおいては、書き換え寿命の管理が重要となっている。
【０００８】
例えば、書き換え寿命のあるメモリ内の各ページについての書き換え可能回数を記録し、書き換えの都度書き換え可能回数を更新し、書き換え可能回数がゼロになった場合、他のページに記憶内容を移すという方式が提案されている（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２０１０−１８６４７７号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
ところで、不揮発性メモリの書き換え寿命は、メモリの種類によって異なるものである。例えば、ＭＲＡＭは、比較的書き換え寿命が長く、ＲｅＲＡＭは、比較的書き換え寿命が短い。一方で、ＲｅＲＡＭは、ＭＲＡＭと比較して、低コストで記憶容量を大きくすることが可能である。
【００１１】
しかしながら、例えば、特許文献１の技術では、メモリの種類に応じた書き換えが考慮されておらず、例えば、書き換え寿命の異なる複数種類のメモリを用いたシステムなどにおける書き換え寿命の管理が期待されていた。
【００１２】
本技術はこのような状況に鑑みて開示するものであり、より効率的にメモリを利用することができるようにするものである。
【課題を解決するための手段】
【００１３】
本技術の一側面は、書き換え可能回数の上限値が異なる複数のメモリを組み合わせて構成される主記憶装置と、前記主記憶装置に記憶すべきデータの記憶領域を、前記データの書き換え頻度に基づいて、前記複数のメモリのいずれかに割り当てる割り当て管理部とを備える情報処理装置である。
【００１４】
前記割り当て管理部は、前記書き換え頻度が大きいデータの記憶領域を、前記複数のメモリのうちの第１のメモリに割り当て、前記書き換え頻度が小さいデータの記憶領域を、前記複数のメモリのうちの第１のメモリより書き換え可能回数の上限値が小さい第２のメモリに割り当てるようにすることができる。
【００１５】
前記割り当て管理部は、前記第２のメモリの１ページ当たりの記憶容量を、第１のメモリの１ページ当たりの記憶容量より大きく設定するようにすることができる。
【００１６】
前記第２のメモリは、前記第１のメモリより記憶容量が大きいようにすることができる。
【００１７】
前記第１のメモリは、ＭＲＡＭ（Magnetoresistive Random Access Memory）とされ、前記第２のメモリは、ＲｅＲＡＭ（Resistance Random Access Memory）、または、ＰＣＭ（Phase Change Memory）とされるようにすることができる。
【００１８】
前記主記憶装置に記憶すべきデータの付加情報に基づいて、前記データの書き換え頻度を推定する書き換え頻度推定部をさらに備えるようにすることができる。
【００１９】
前記書き換え頻度推定部は、前記主記憶装置に記憶すべきデータのデータ型毎に、前記データを構成する各部の書き換え頻度を推定するようにすることができる。
【００２０】
前記データを構成する各部の書き換え頻度が、前記データのデータ型毎に学習されて生成されたテンプレートに基づいて推定されるようにすることができる。
【００２１】
中央演算処理装置により実行されるプログラムの中の予め指定された特定のステップの処理が実行される場合、前記特定のステップが実行されることを、前記割り当て管理部に通知する特定ステップ実行通知部をさらに備え、前記割り当て管理部は、前記実行通知部からの通知を受けた場合、前記複数のメモリのうちの１つのメモリに割り当てられていた前記データの記憶領域を、前記複数のメモリのうちの他のメモリに割り当てるようにすることができる。
【００２２】
前記割り当て管理部は、前記実行通知部からの通知を受けた場合、前記複数のメモリのうちの第１のメモリより書き換え可能回数の上限値が小さい第２のメモリに記憶されているデータの記憶領域を、前記第１のメモリに割り当てるようにすることができる。
【００２３】
前記複数のメモリのうち、比較的書き換え可能回数の上限値が小さいメモリが、補助記憶装置と兼用されるようにすることができる。
【００２４】
前記複数のメモリのうち、比較的書き換え可能回数の上限値が小さいメモリが、不揮発性メモリとして構成され、前記複数のメモリのうち、比較的書き換え可能回数の上限値が大きいメモリが、揮発性メモリとして構成されるようにすることができる。
【００２５】
本技術の一側面は、書き換え可能回数の上限値が異なる複数のメモリを組み合わせて構成される主記憶装置を備える情報処理装置の情報処理方法であって、前記主記憶装置に記憶すべきデータの記憶領域を、前記データの書き換え頻度に基づいて、前記複数のメモリのいずれかに割り当てるステップを含む情報処理方法である。
【００２６】
本技術の一側面は、コンピュータを、書き換え可能回数の上限値が異なる複数のメモリを組み合わせて構成される主記憶装置と、前記主記憶装置に記憶すべきデータの記憶領域を、前記データの書き換え頻度に基づいて、前記複数のメモリのいずれかに割り当てる割り当て管理部とを備える情報処理装置として機能させるプログラムである。
【００２７】
本技術の一側面においては、書き換え可能回数の上限値が異なる複数のメモリを組み合わせて構成される主記憶装置に記憶すべきデータの記憶領域が、前記データの書き換え頻度に基づいて、前記複数のメモリのいずれかに割り当てられる。
【発明の効果】
【００２８】
本技術によれば、より効率的にメモリを利用することができる。
【図面の簡単な説明】
【００２９】
【図１】本技術の一実施の形態に係る演算処理システムの構成例を示すブロック図である。
【図２】図１のＣＰＵ、およびＭＭＵにより実行されるプログラムなどのソフトウェアの機能的構成例を示すブロック図である。
【図３】各データの仮想アドレス空間および物理アドレス空間への対応づけを説明する図である。
【図４】図１のＣＰＵ、およびＭＭＵにより実行されるプログラムなどのソフトウェアの別の機能的構成例を示すブロック図である。
【図５】長寿命メモリと短寿命メモリの１ページ当たりの容量の違いを説明する図である。
【図６】図１のＣＰＵ、およびＭＭＵにより実行されるプログラムなどのソフトウェアのさらに別の機能的構成例を示すブロック図である。
【図７】図１のＣＰＵ、およびＭＭＵにより実行されるプログラムなどのソフトウェアのさらに別の機能的構成例を示すブロック図である。
【図８】メモリ書き込み処理の例を説明するフローチャートである。
【図９】メモリ書き込み処理の別の例を説明するフローチャートである。
【図１０】書き換え頻度推定処理の例を説明するフローチャートである。
【図１１】データ移動制御処理の例を説明するフローチャートである。
【図１２】パーソナルコンピュータの構成例を示すブロック図である。
【発明を実施するための形態】
【００３０】
以下、図面を参照して、ここで開示する技術の実施の形態について説明する。
【００３１】
図１は、本技術の一実施の形態に係る演算処理システムの構成例を示すブロック図である。
【００３２】
同図に示される演算処理システム１０は、ＣＰＵ２１、ＭＭＵ(Memory Management Unit)２２、並びにＲＡＭ２３およびＲＡＭ２４を有する構成とされている。演算処理システム１０は、例えば、携帯電話機やスマートフォンなどに実装され、ダウンロードされたアプリケーションプログラムなどを実行するようになされている。
【００３３】
ここで、ＲＡＭ２３は、書き換え寿命の長い（書き換え可能回数の上限値が大きい）メモリとされ、ＲＡＭ２４は、書き換え寿命の短い（書き換え可能回数の上限値が小さい）メモリとされる。なお、ＲＡＭ２３を、適宜、長寿命メモリと称し、ＲＡＭ２４を適宜、短寿命メモリとも称することにする。
【００３４】
長寿命メモリは、例えば、書き換え可能回数の上限値が大きいという利点を有する一方で、高密度化が困難であり、大容量化し辛いという欠点を有している。また、短寿命メモリは、書き換え可能回数の上限値が小さいという欠点を有する一方で、高密度化が容易で大容量化しやすいという利点を有している。
【００３５】
演算処理システム１０は、このような利点と欠点とを有する長寿命メモリと短寿命メモリとを組み合わせて主記憶装置を構成するようになされている。
【００３６】
ＲＡＭ２３は、例えば、ＭＲＡＭ（Magnetoresistive Random Access Memory）などにより構成される。ＲＡＭ２４は、例えば、ＲｅＲＡＭ（Resistance Random Access Memory）、ＰＣＭ（Phase Change Memory）などにより構成される。
【００３７】
ＲＡＭ２３およびＲＡＭ２４は、ＣＰＵ２１に対応する主記憶装置（メインメモリ）として設けられており、ＭＭＵ２２の制御に基づいてデータの書き込みまたは読み出しが行われるようになされている。ＭＭＵ２２は、仮想アドレスと物理アドレスとの変換、メモリ保護などに係る機能を有し、ＣＰＵ２１のメモリアクセス制御に係る処理を実行する機能ブロックとされる。ＭＭＵ２２は、例えば、ＣＰＵ２１の一部として構成されるようにしてもよい。
【００３８】
図２は、図１のＣＰＵ２１、およびＭＭＵ２２により実行されるプログラムなどのソフトウェアの機能的構成例を示すブロック図である。
【００３９】
同図においてアプリケーション１０１は、ダウンロードされたアプリケーションプログラムなどが実行されたプロセスとされ、処理中に必要となるファイルなどの読み出し、書き込みなどの指令をメモリ割り当て管理部１０２に出力する。
【００４０】
例えば、アプリケーション１０１が、処理中に必要となるデータを、ＲＡＭ２３またはＲＡＭ２４から読み出す場合、アドレス変換部１０３に当該ファイルを構成するデータの格納位置を特定する仮想アドレスを供給し、仮想アドレスの物理アドレスへの変換を要求する。
【００４１】
アドレス変換部１０３は、アプリケーション１０１から供給された仮想アドレスを、ページテーブル１０４に基づいて物理アドレスに変換する。これによりアプリケーション１０１は、当該データに係る物理アドレスを取得し、メモリ割り当て管理部１０２に、その物理アドレスへのアクセス要求を出力する。
【００４２】
メモリ割り当て管理部１０２は、アプリケーション１０１から供給された物理アドレスに対応する記憶領域であって、ＲＡＭ２３またはＲＡＭ２４の記憶領域からのデータの読み出しを制御する。ＲＡＭ２３の記憶領域からファイルが読み出される場合、メモリ割り当て管理部１０２は、長寿命メモリアクセス制御部１０６に読出し要求を出力する。また、ＲＡＭ２４の記憶領域からデータが読み出される場合、メモリ割り当て管理部１０２は、短寿命メモリアクセス制御部１０５に読出し要求を出力する。
【００４３】
長寿命メモリアクセス制御部１０６は、ＲＡＭ２３の所定の記憶領域からデータを読み出し、短寿命メモリアクセス制御部１０５は、ＲＡＭ２４の所定の記憶領域からデータを読み出すようになされている。
【００４４】
一方、例えば、アプリケーション１０１が、処理中に生成されたファイルなどを、ＲＡＭ２３またはＲＡＭ２４に書き込む場合、メモリ割り当て管理部１０２に書き込み要求を出力する。この際、アプリケーション１０１は、例えば、ファイルを構成するデータのヘッダなどに、当該データの書き換え頻度に係るラベルを付加するようになされている。
【００４５】
メモリ割り当て管理部１０２は、アプリケーション１０１から書き込み要求のあったファイルを構成するデータのサイズに応じた記憶領域を、ＲＡＭ２３またはＲＡＭ２４に割り当てる。この際、メモリ割り当て管理部１０２は、当該データの記憶領域を、ＲＡＭ２３またはＲＡＭ２４のいずれに割り当てるべきかを決めるために、書き換え頻度推定部１０７に書き換え頻度を問い合わせる。
【００４６】
書き換え頻度推定部１０７は、データのヘッダに付加されたラベルを参照して、当該データの書き換え頻度が大（頻度が高い）または小（頻度が低い）のいずれであるかを判定（推定）し、メモリ割り当て管理部１０２に通知する。
【００４７】
メモリ割り当て管理部１０２は、書き換え頻度推定部１０７から通知された書き換え頻度が大である場合、当該データの記憶領域を長寿命メモリであるＲＡＭ２３に割り当てる。そして、メモリ割り当て管理部１０２は、長寿命メモリアクセス制御部１０６を介して、当該データを、ＲＡＭ２３に記憶させる。
【００４８】
また、メモリ割り当て管理部１０２は、書き換え頻度推定部１０７から通知された書き換え頻度が小である場合、当該データの記憶領域を短寿命メモリであるＲＡＭ２４に割り当てる。そして、メモリ割り当て管理部１０２は、短寿命メモリアクセス制御部１０５を介して、当該データを、ＲＡＭ２４に記憶させる。
【００４９】
さらに、メモリ割り当て管理部１０２は、上述のように、ＲＡＭ２３またはＲＡＭ２４に割り当てられた当該データの記憶領域を特定する物理アドレスと、アプリケーション１０１により参照される仮想アドレスとを対応づけるページテーブル１０４の情報を更新する。
【００５０】
例えば、図３に示されるように、アプリケーション１０１において処理中に生成されたファイル１５１がデータＡ乃至Ｄで構成されていたものとする。ここで、データＡとデータＤは書き換え頻度が大であり、データＢとデータＣは書き換え頻度が小であるものとする。
【００５１】
ファイル１５１を構成するデータＡ乃至データＤは、アドレスＶ１、アドレスＶ２、アドレスＶ３、アドレスＶ４、アドレスＶ５、・・・により構成される仮想アドレス空間１５２において、アドレスＶ２乃至アドレスＶ５にそれぞれマップされる。
【００５２】
上述したように、データＡとデータＤは書き換え頻度が大であるため、長寿命メモリであるＲＡＭ２３に記憶される。長寿命メモリの物理アドレス空間１５３は、アドレスＬ１、アドレスＬ２、アドレスＬ３、アドレスＬ４、アドレスＬ５、・・・により構成されている。ここでは、データＡが記憶される記憶領域を特定する物理アドレスがアドレスＬ２であり、データＤが記憶される記憶領域を特定する物理アドレスがアドレスＬ３であったものとする。
【００５３】
また、上述したように、データＢとデータＣは書き換え頻度が小であるため、短寿命メモリであるＲＡＭ２４に記憶される。短寿命メモリの物理アドレス空間１５３は、アドレスＳ１、アドレスＳ２、アドレスＳ３、アドレスＳ４、アドレスＳ５、・・・により構成されている。ここでは、データＢが記憶される記憶領域を特定する物理アドレスがアドレスＳ１であり、データＣが記憶される記憶領域を特定する物理アドレスがアドレスＳ２であったものとする。
【００５４】
このとき、ページテーブル１０４には、仮想アドレス空間１５２のアドレスＶ２と物理アドレス空間１５３のアドレスＬ２、仮想アドレス空間１５２のアドレスＶ３と物理アドレス空間１５４のアドレスＳ１、仮想アドレス空間１５２のアドレスＶ４と物理アドレス空間１５４のアドレスＳ２、および仮想アドレス空間１５２のアドレスＶ５と物理アドレス空間１５３のアドレスＬ３のそれぞれを対応づける情報が記述される。
【００５５】
このように、書き換え頻度が大きいデータは、長寿命メモリに記憶され、書き換え頻度が小さいデータは、短寿命メモリに記憶されるので、ＲＡＭ２３およびＲＡＭ２４全体の寿命を長くすることができる。このように、本技術では、メモリをより効率的に利用することができる。
【００５６】
ところで、書き換え寿命のあるメモリを利用するシステムにおいては、メモリ内の各記憶領域の残り寿命が分かるように、書き換え回数を管理するための管理情報などを用意する必要がある。このような管理情報は、通常、メモリの記憶単位または管理単位であるページ毎に付加されることが多い。例えば、１ページが１００ＫＢである場合、１００ＭＢのメモリの記憶領域は、１０００ページに分割されて管理される。
【００５７】
しかし、例えば、メモリが大容量化された場合、１ページ当たりの容量が同一であったとすると、ページ数が増加して管理情報も増加してしまう。このような場合、管理コストの増加につながりやすい。
【００５８】
そこで、例えば、データの書き換え頻度に応じて１ページ当たりの容量を変化させるようにしてもよい。
【００５９】
図４は、図１のＣＰＵ２１、およびＭＭＵ２２により実行されるプログラムなどのソフトウェアの別の機能的構成例を示すブロック図である。図４の例の場合、データの書き換え頻度に応じて１ページ当たりの容量を変化させるようになされている。
【００６０】
同図において、アプリケーション管理部１０９は、共有ライブラリ１０８として補助記憶装置などに記憶されているシステム共有ファイル、プログラムを構成するファイルなどを主記憶装置にロードする処理を実行するようになされている。このとき、アプリケーション管理部１０９は、各ファイルを構成するデータを仮想アドレス空間にマップする。
【００６１】
なお、共有ライブラリ１０８の各ファイルを構成するデータには、予め書き換え頻度を表すラベルが、それらのデータのヘッダなどに付されているものとする。ここでラベルは、例えば、書き換え頻度がゼロ（リードオンリーのデータ）、小、または、大のいずれかを表すものとされる。
【００６２】
アプリケーション管理部１０９は、各ファイルを構成するデータを仮想アドレス空間にマップする際に、各データのヘッダなどを参照して、書き換え頻度を特定する。そして、アプリケーション管理部１０９は、特定された書き換え頻度をメモリ割り当て管理部１０２に通知する。
【００６３】
メモリ割り当て管理部１０２は、アプリケーション管理部１０９から通知された書き換え頻度が大である場合、当該データの記憶領域を長寿命メモリであるＲＡＭ２３に割り当てる。そして、メモリ割り当て管理部１０２は、長寿命メモリアクセス制御部１０６を介して、当該データを、ＲＡＭ２３に記憶させる。
【００６４】
この際、メモリ割り当て管理部１０２は、ＲＡＭ２３に割り当てる記憶領域のページサイズを小さく設定する。
【００６５】
また、メモリ割り当て管理部１０２は、アプリケーション管理部１０９から通知された書き換え頻度がゼロまたは小である場合、当該データの記憶領域を短寿命メモリであるＲＡＭ２４に割り当てる。そして、メモリ割り当て管理部１０２は、短寿命メモリアクセス制御部１０５を介して、当該データを、ＲＡＭ２４に記憶させる。
【００６６】
この際、メモリ割り当て管理部１０２は、ＲＡＭ２４に割り当てる記憶領域のページサイズを大きく設定する。
【００６７】
すなわち、例えば、図５に示されるように、長寿命メモリであるＲＡＭ２３のページサイズは小さく設定され、短寿命メモリであるＲＡＭ２４のページサイズは大きく設定される。なお、図５において、ＲＡＭ２３またはＲＡＭ２４を表す長方形の中の小さい矩形がそれぞれのページサイズを表している。
【００６８】
図４における他の部分の構成は、図２を参照して上述した場合と同様なので、詳細な説明は省略する。
【００６９】
例えば、ページサイズを小さく設定すると、メモリの記憶容量をより効率的に使用することができる。小さいサイズのデータを書き込む際には、使用される記憶容量を小さくすることができ、１回の書き換えで使用される記憶容量を充分小さくすることができるからである。つまり、ページサイズを小さく設定すれば、例えば、小さいサイズのデータを何度も書き換える際に、１回の書き換えで使用される記憶容量を充分小さくすることができ、書き換え寿命のあるメモリをできるだけ長く利用できるようになる。
【００７０】
一方で、ページサイズを小さく設定すると、演算処理システム１０における管理負担が増大する。書き換え寿命のあるメモリを利用するシステムにおいては、メモリ内の各記憶領域の残り寿命が分かるように、書き換え回数を管理するための管理情報などを用意する必要があり、このような管理情報は、通常、メモリの記憶単位であるページ毎に付加されるからである。
【００７１】
例えば、ページサイズを大きく設定すると、メモリの記憶容量をより効率的に使用することができない。小さいサイズのデータを書き込む際にも、使用される記憶容量を小さくすることができず、１回の書き換えで使用される記憶容量を充分小さくすることができないからである。つまり、ページサイズを大きく設定すれば、例えば、小さいサイズのデータを何度も書き換える際に、１回の書き換えで使用される記憶容量も大きくなり、書き換え寿命のあるメモリを長く利用することはできない。
【００７２】
本技術では、書き換え頻度が大である場合、当該データの記憶領域が長寿命メモリに割り当てられるとともに、ページサイズが小さく設定される。これにより、例えば、小さいサイズのデータを何度も書き換える際に、１回の書き換えで使用される記憶容量を充分小さくすることができ、書き換え寿命のあるメモリをできるだけ長く利用できるようになる。
【００７３】
また、本技術では、書き換え頻度がゼロまたは小である場合、当該データの記憶領域が短寿命メモリに割り当てられるとともに、ページサイズが大きく設定される。これにより、小さいサイズのデータを書き込む際にも、使用される記憶容量を小さくすることができなくなるが、書き換え頻度がゼロまたは小であるため書き換え寿命に対する影響は小さい。また、短寿命メモリは、高密度化が容易で大容量化しやすいので、ある程度余裕をもって記憶領域を割り当てることも可能である。
【００７４】
そして、ページサイズが大きく設定されたことにより、上述した管理負担を軽減することも可能となる。
【００７５】
このように本技術では、長寿命メモリおよび短寿命メモリからなるメモリ全体を効率的に利用することができる。
【００７６】
ところで、上述した例では、データの書き換え頻度はラベルに基づいて特定されるとしたが、例えば、データの書き換え頻度が学習によって特定されるようにしてもよい。
【００７７】
図６は、図１のＣＰＵ２１、およびＭＭＵ２２により実行されるプログラムなどのソフトウェアのさらに別の機能的構成例を示すブロック図である。図６の例の場合、データの書き換え頻度が学習によって特定されるようになされている。
【００７８】
例えば、センサから出力されるセンシングデータなどは、センサから得られる生データに加え、管理情報などの各種メタデータを付加したデータ型を定義し、このデータ型単位で取り扱うことが一般的である。通常、センサから得られる生データを書き換えることはないが、管理情報などは頻繁に書き換えが発生することが考えられる。このような場合、データ型の中で頻繁に書き換える部分は長寿命メモリに記憶領域を割り当て、ほとんど書き換えない部分は短寿命メモリに記憶領域を割り当てるようにする。
【００７９】
書き換え頻度学習部１１１は、ＲＡＭ２３またはＲＡＭ２４に記憶されるデータのデータ型を識別し、データ型毎に書き換え頻度を学習するようになされている。書き換え頻度学習部１１１は、例えば、ＲＡＭ２３またはＲＡＭ２４に記憶される所定のデータ型のデータの中の各部（例えば、ページ毎）の書き換え頻度を監視する。そして、書き換え頻度学習部１１１は、例えば、各部の書き換え頻度をゼロ、小、大のいずれかに特定し、当該データ型の各部の書き換え頻度を表す情報を書き換えパターンテンプレート１１２として生成する。すなわち、書き換えパターンテンプレート１１２は、データ型毎に複数生成される。
【００８０】
メモリ割り当て管理部１０２は、アプリケーション１０１から書き込み要求のあったデータの記憶領域をＲＡＭ２３またはＲＡＭ２４に割り当てる際に、書き換え頻度推定部１０７に書き換え頻度を問い合わせる。書き換え頻度推定部１０７は、メモリ割り当て管理部１０２からの問い合わせを受けて、書き込み要求のあったデータのデータ型を特定し、そのデータ型に対応する書き換えパターンテンプレート１１２を検索する。
【００８１】
書き換え頻度推定部１０７は、書き込み要求のあったデータのデータ型に対応する書き換えパターンテンプレート１１２が存在する場合、その書き換えパターンテンプレート１１２に基づいて、書き込み要求のあったデータの各部の書き換え頻度を特定し、メモリ割り当て管理部１０２に通知する。
【００８２】
一方、書き換え頻度推定部１０７は、書き込み要求のあったデータのデータ型に対応する書き換えパターンテンプレート１１２が存在しない場合、書き込み要求のあったデータの全ての部分の書き換え頻度を大とし、メモリ割り当て管理部１０２に通知する。
【００８３】
メモリ割り当て管理部１０２は、書き換え頻度推定部１０７から通知された書き換え頻度が大である部分について、記憶領域を長寿命メモリであるＲＡＭ２３に割り当てる。そして、メモリ割り当て管理部１０２は、長寿命メモリアクセス制御部１０６を介して、その部分をＲＡＭ２３に記憶させる。
【００８４】
また、メモリ割り当て管理部１０２は、書き換え頻度推定部１０７から通知された書き換え頻度がゼロまたは小である部分について、記憶領域を短寿命メモリであるＲＡＭ２４に割り当てる。そして、メモリ割り当て管理部１０２は、短寿命メモリアクセス制御部１０５を介して、その部分をＲＡＭ２４に記憶させる。
【００８５】
図６における他の部分の構成は、図２を参照して上述した場合と同様なので、詳細な説明は省略する。
【００８６】
このように、データの書き換え頻度が学習によって特定されるようにすることもできる。
【００８７】
ところで、一度、ＲＡＭ２４（またはＲＡＭ２３）に記憶されたデータが、その後、ＲＡＭ２３（またはＲＡＭ２４）に移動されるようにしてもよい。
【００８８】
例えば、アプリケーション１０１が処理するデータの中には、通常時にはほとんど書き換えられないが、エラー処理など、プログラム内の特定のステップやルーチンでは頻繁に書き換えられるものがある。このようなデータは、通常時には短寿命メモリに記憶しておき、プログラム内の特定のステップやルーチンが実行されるときだけ、長寿命メモリに移動させるようにすると、メモリ全体を効率的に利用できる。
【００８９】
図７は、図１のＣＰＵ２１、およびＭＭＵ２２により実行されるプログラムなどのソフトウェアのさらに別の機能的構成例を示すブロック図である。図７の例の場合、一度、ＲＡＭ２４（またはＲＡＭ２３）に記憶されたデータが、その後、ＲＡＭ２３（またはＲＡＭ２４）に移動されるようになされている。
【００９０】
同図において、アプリケーション１０１のプログラム内で、例えば、エラー処理などに対応する特定のステップやルーチンが予め指定されているものとする。また、特定のステップやルーチンが実行される時、頻繁に書き換えが行われるデータも予め指定されているものとする。なお、特定のステップやルーチンが実行される時、頻繁に書き換えられるデータを、特定時書き換えデータと称することとし、特定時書き換えデータは、通常、短寿命メモリ（ＲＡＭ２４）に記憶されている。
【００９１】
アプリケーション１０１は、特定のステップやルーチンが実行される時に、割り当て変更指示部１１３にその旨を通知する。
【００９２】
割り当て変更指示部１１３は、特定のステップやルーチンが実行されることが通知された場合、特定時書き換えデータの移動を制御する。すなわち、割り当て変更指示部１１３は、特定のステップやルーチンが実行されることが通知された場合、メモリ割り当て管理部１０２に、特定時書き換えデータを長寿命メモリ（ＲＡＭ２３）に移動させるように要求する。
【００９３】
メモリ割り当て管理部１０２は、割り当て変更指示部１１３からの要求を受けると、短寿命メモリ（ＲＡＭ２４）に記憶されている特定時書き換えデータを、長寿命メモリ（ＲＡＭ２３）に移動させる。
【００９４】
また、この際、メモリ割り当て管理部１０２は、ＲＡＭ２４に割り当てられた特定時書き換えデータの記憶領域を特定する物理アドレスと、アプリケーション１０１により参照される仮想アドレスとを対応づけるため、ページテーブル１０４の情報を更新する。
【００９５】
さらに、アプリケーション１０１は、特定のステップやルーチンの実行が終了される時に、割り当て変更指示部１１３にその旨を通知する。
【００９６】
割り当て変更指示部１１３は、特定のステップやルーチンの実行が終了されることが通知された場合、特定時書き換えデータの移動を制御する。すなわち、割り当て変更指示部１１３は、特定のステップやルーチンの実行が終了されることが通知された場合、メモリ割り当て管理部１０２に、特定時書き換えデータを短寿命メモリ（ＲＡＭ２４）に移動させるように要求する。
【００９７】
メモリ割り当て管理部１０２は、割り当て変更指示部１１３からの要求を受けると、長寿命メモリ（ＲＡＭ２３）に記憶されている特定時書き換えデータを、短寿命メモリ（ＲＡＭ２４）に移動させる。
【００９８】
また、この際、メモリ割り当て管理部１０２は、ＲＡＭ２３に割り当てられた特定時書き換えデータの記憶領域を特定する物理アドレスと、アプリケーション１０１により参照される仮想アドレスとを対応づけるため、ページテーブル１０４の情報を更新する。
【００９９】
図７における他の部分の構成は、図２を参照して上述した場合と同様なので、詳細な説明は省略する。
【０１００】
このように、特定時書き換えデータを通常時には短寿命メモリに記憶しておき、特定のステップやルーチンが実行されるときだけ、長寿命メモリに移動させるようにすることもできる。
【０１０１】
次に、図８のフローチャートを参照して、本技術を適用した演算処理システム１０によるメモリ書き込み処理の例について説明する。この処理は、例えば、図２を参照して上述した機能的構成に対応する処理とされる。
【０１０２】
ステップＳ２１において、アプリケーション１０１は、処理中に生成されたファイルなどをＲＡＭ２３またはＲＡＭ２４に書き込むために、メモリ割り当て管理部１０２に書き込み要求を出力する。この際、アプリケーション１０１は、例えば、ファイルを構成するデータのヘッダなどに、当該データの書き換え頻度に係るラベルを付加するようになされている。
【０１０３】
これにより、メモリ割り当て管理部１０２は、当該データの記憶領域を、ＲＡＭ２３またはＲＡＭ２４のいずれに割り当てるべきかを決めるために、書き換え頻度推定部１０７に書き換え頻度を問い合わせる。
【０１０４】
ステップＳ２２において、書き換え頻度推定部１０７は、データのヘッダに付加されたラベルを参照して、当該データの書き換え頻度が大または小のいずれであるかを推定する。この推定結果は、メモリ割り当て管理部１０２に通知される。
【０１０５】
ステップＳ２３において、メモリ割り当て管理部１０２は、ステップＳ２２の推定結果に基づいて、当該データの書き換え頻度を判定する。
【０１０６】
ステップＳ２３において、当該データの書き換え頻度が大であると判定された場合、処理は、ステップＳ２４に進む。
【０１０７】
ステップＳ２４において、メモリ割り当て管理部１０２は、当該データの記憶領域を長寿命メモリであるＲＡＭ２３に割り当てる。そして、メモリ割り当て管理部１０２は、長寿命メモリアクセス制御部１０６を介して、当該データを、ＲＡＭ２３に記憶させる。
【０１０８】
一方、ステップＳ２３において、当該データの書き換え頻度が小であると判定された場合、処理は、ステップＳ２５に進む。
【０１０９】
ステップＳ２５において、メモリ割り当て管理部１０２は、当該データの記憶領域を短寿命メモリであるＲＡＭ２４に割り当てる。そして、メモリ割り当て管理部１０２は、短寿命メモリアクセス制御部１０５を介して、当該データを、ＲＡＭ２４に記憶させる。
【０１１０】
なお、メモリ割り当て管理部１０２は、上述のように割り当てられた当該データの記憶領域を特定する物理アドレスと、アプリケーション１０１により参照される仮想アドレスとを対応づけるページテーブル１０４の情報を更新する。
【０１１１】
このようにして、メモリ書き込み処理が実行される。
【０１１２】
次に、図９のフローチャートを参照して、本技術を適用した演算処理システム１０によるメモリ書き込み処理の別の例について説明する。この処理は、例えば、図４を参照して上述した機能的構成に対応する処理とされる。
【０１１３】
ステップＳ４１において、アプリケーション管理部１０９は、共有ライブラリ１０８として補助記憶装置などに記憶されているシステム共有ファイル、プログラムを構成するファイルなどを主記憶装置にロードする。
【０１１４】
ステップＳ４２において、アプリケーション管理部１０９は、各ファイルを構成するデータを仮想アドレス空間にマップする。
【０１１５】
なお、共有ライブラリ１０８の各ファイルを構成するデータには、予め書き換え頻度を表すラベルが、それらのデータのヘッダなどに付されているものとする。ここでラベルは、例えば、書き換え頻度がゼロ（リードオンリーのデータ）、小、または、大のいずれかを表すものとされる。
【０１１６】
ステップＳ４３において、アプリケーション管理部１０９は、各データのヘッダなどを参照して、書き換え頻度を判定する。このとき、アプリケーション管理部１０９は、判定結果をメモリ割り当て管理部１０２に通知する。
【０１１７】
ステップＳ４３において、書き換え頻度は大であると判定された場合、処理は、ステップＳ４４に進む。
【０１１８】
ステップＳ４４において、メモリ割り当て管理部１０２は、当該データの記憶領域を長寿命メモリであるＲＡＭ２３に割り当てる。この際、メモリ割り当て管理部１０２は、ＲＡＭ２３に割り当てる記憶領域のページサイズを小さく設定する。そして、メモリ割り当て管理部１０２は、長寿命メモリアクセス制御部１０６を介して、当該データを、ＲＡＭ２３に記憶させる。
【０１１９】
一方、ステップＳ４３において、書き換え頻度は小であると判定された場合、処理は、ステップＳ４５に進む。
【０１２０】
ステップＳ４５において、メモリ割り当て管理部１０２は、当該データの記憶領域を短寿命メモリであるＲＡＭ２４に割り当てる。この際、メモリ割り当て管理部１０２は、ＲＡＭ２４に割り当てる記憶領域のページサイズを大きく設定する。そして、メモリ割り当て管理部１０２は、短寿命メモリアクセス制御部１０５を介して、当該データを、ＲＡＭ２４に記憶させる。
【０１２１】
なお、メモリ割り当て管理部１０２は、上述のように割り当てられた当該データの記憶領域を特定する物理アドレスと、アプリケーション１０１により参照される仮想アドレスとを対応づけるページテーブル１０４の情報を更新する。
【０１２２】
このようにしてメモリ書き込み処理が実行される。
【０１２３】
次に、図１０のフローチャートを参照して、本技術を適用した演算処理システム１０による書き換え頻度推定処理の例について説明する。この処理は、図６を参照して上述した機能的構成に対応する処理とされ、例えば、図８のステップＳ２２の処理に代えて実行される処理とされる。
【０１２４】
いまの場合、書き換え頻度学習部１１１が、ＲＡＭ２３またはＲＡＭ２４に記憶されるデータのデータ型を識別し、データ型毎に書き換え頻度を学習する。書き換え頻度学習部１１１は、例えば、ＲＡＭ２３またはＲＡＭ２４に記憶される所定のデータ型のデータの中の各部（例えば、ページ毎）の書き換え頻度を監視して、各部の書き換え頻度をゼロ、小、大のいずれかに特定する。そして、当該データ型の各部の書き換え頻度を表す情報が書き換えパターンテンプレート１１２として生成される。
【０１２５】
メモリ割り当て管理部１０２は、例えば、アプリケーション１０１から書き込み要求のあったデータの記憶領域をＲＡＭ２３またはＲＡＭ２４に割り当てる際に、書き換え頻度推定部１０７に書き換え頻度を問い合わせる。これにより、ステップＳ６１において、問い合わせがあったと判定され、処理は、ステップＳ６２に進む。
【０１２６】
ステップＳ６２において、書き換え頻度推定部１０７は、書き込み要求のあったデータのデータ型を特定する。
【０１２７】
ステップＳ６３において、書き換え頻度推定部１０７は、ステップＳ６２の処理で特定されたデータ型に対応する書き換えパターンテンプレート１１２を検索する。
【０１２８】
ステップＳ６４において、書き換え頻度推定部１０７は、ステップＳ６３の処理による検索結果に基づいて、当該データ型に対応する書き換えパターンテンプレート１１２が存在するか否かを判定する。
【０１２９】
ステップＳ６４において、当該データ型に対応する書き換えパターンテンプレート１１２が存在すると判定された場合、処理は、ステップＳ６５に進む。
【０１３０】
ステップＳ６５において、書き換え頻度推定部１０７は、その書き換えパターンテンプレート１１２に基づいて、書き込み要求のあったデータの各部の書き換え頻度を特定する。
【０１３１】
一方、ステップＳ６４において、当該データ型に対応する書き換えパターンテンプレート１１２が存在しないと判定された場合、処理は、ステップＳ６６に進む。
【０１３２】
ステップＳ６６において書き換え頻度推定部１０７は、書き込み要求のあったデータの全ての部分の書き換え頻度を大とする。
【０１３３】
ステップＳ６７において、書き換え頻度推定部１０７は、ステップＳ６５、または、ステップＳ６６の処理による特定結果を、メモリ割り当て管理部１０２に通知する。
【０１３４】
このようにして、書き換え頻度推定処理が実行される。
【０１３５】
次に、図１１のフローチャートを参照して、本技術を適用した演算処理システム１０によるデータ移動制御処理の例について説明する。この処理は、例えば、図７を参照して上述した機能的構成に対応する処理とされる。
【０１３６】
いまの場合、アプリケーション１０１のプログラム内で、例えば、エラー処理などに対応する特定のステップやルーチンが予め指定されているものとする。また、特定のステップやルーチンが実行される時、頻繁に書き換えが行われるデータ（特定時書き換えデータ）も予め指定されているものとする。なお、特定時書き換えデータは、通常、短寿命メモリ（ＲＡＭ２４）に記憶されているものとする。
【０１３７】
ステップＳ８１において、アプリケーション１０１は、これから特定のステップやルーチンが実行されるか否かを判定し、これから特定のステップやルーチンが実行されると判定されるまで待機する。
【０１３８】
ステップＳ８１において、これから特定のステップやルーチンが実行されると判定された場合、処理は、ステップＳ８２に進む。
【０１３９】
ステップＳ８２において、アプリケーション１０１は、割り当て変更指示部１１３に特定のステップやルーチンが実行される旨を通知する。
【０１４０】
ステップＳ８３において、割り当て変更指示部１１３は、メモリ割り当て管理部１０２に、特定時書き換えデータを長寿命メモリ（ＲＡＭ２３）に移動させるように要求する。
【０１４１】
ステップＳ８４において、メモリ割り当て管理部１０２は、短寿命メモリ（ＲＡＭ２４）に記憶されている特定時書き換えデータを、長寿命メモリ（ＲＡＭ２３）に移動させる。
【０１４２】
ステップＳ８５において、メモリ割り当て管理部１０２は、ＲＡＭ２３に割り当てられた特定時書き換えデータの記憶領域を特定する物理アドレスと、アプリケーション１０１により参照される仮想アドレスとを対応づけるため、ページテーブル１０４の情報を更新する。
【０１４３】
ステップＳ８６において、アプリケーション１０１は、特定のステップやルーチンの実行が終了されるか否かを判定し、特定のステップやルーチンの実行が終了されると判定されるまで待機する。
【０１４４】
ステップＳ８６において、特定のステップやルーチンの実行が終了されると判定された場合、処理は、ステップＳ８７に進む。
【０１４５】
ステップＳ８７において、アプリケーション１０１は、割り当て変更指示部１１３に、特定のステップやルーチンの実行が終了される旨を通知する。
【０１４６】
ステップＳ８８において、割り当て変更指示部１１３は、メモリ割り当て管理部１０２に、特定時書き換えデータを短寿命メモリ（ＲＡＭ２４）に移動させるように要求する。
【０１４７】
ステップＳ８９において、メモリ割り当て管理部１０２は、割り当て変更指示部１１３からの要求を受けると、長寿命メモリ（ＲＡＭ２３）に記憶されている特定時書き換えデータを、短寿命メモリ（ＲＡＭ２４）に移動させる。
【０１４８】
ステップＳ９０において、メモリ割り当て管理部１０２は、ＲＡＭ２４に割り当てられた特定時書き換えデータの記憶領域を特定する物理アドレスと、アプリケーション１０１により参照される仮想アドレスとを対応づけるため、ページテーブル１０４の情報を更新する。
【０１４９】
このようにして、データ移動制御処理が実行される。
【０１５０】
以上においては、長寿命メモリと短寿命メモリを主記憶装置として利用する例について説明したが、例えば、大容量の短寿命メモリについては、補助記憶装置と兼用するようにしてもよい。
【０１５１】
また、以上においては、短寿命メモリおよび長寿命メモリを不揮発性メモリによって構成する例について説明したが、例えば、長寿命メモリをＤＲＡＭなどの揮発性メモリによって構成するようにしてもよい。要は、書き換え寿命の異なるメモリを組み合わせて主記憶装置として利用するシステムであれば、本技術を適用することが可能である。
【０１５２】
さらに、以上においては、ＲＡＭ２３およびＲＡＭ２４の２つのメモリを組み合わせて主記憶装置を構成する例について説明したが、３つ以上のメモリを組み合わせて主記憶装置を構成するようにしても構わない。
【０１５３】
なお、上述した一連の処理は、ハードウェアにより実行させることもできるし、ソフトウェアにより実行させることもできる。上述した一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば図１２に示されるような汎用のパーソナルコンピュータ７００などに、ネットワークや記録媒体からインストールされる。
【０１５４】
図１２において、ＣＰＵ（Central Processing Unit）７０１は、ＲＯＭ（Read Only Memory）７０２に記憶されているプログラム、または記憶部７０８からＲＡＭ（Random Access Memory）７０３にロードされたプログラムに従って各種の処理を実行する。ＲＡＭ７０３にはまた、ＣＰＵ７０１が各種の処理を実行する上において必要なデータなども適宜記憶される。
【０１５５】
ＣＰＵ７０１、ＲＯＭ７０２、およびＲＡＭ７０３は、バス７０４を介して相互に接続されている。このバス７０４にはまた、入出力インタフェース７０５も接続されている。
【０１５６】
入出力インタフェース７０５には、キーボード、マウスなどよりなる入力部７０６、ＬＣＤ(Liquid Crystal display)などよりなるディスプレイ、並びにスピーカなどよりなる出力部７０７、ハードディスクなどより構成される記憶部７０８、モデム、ＬＡＮカードなどのネットワークインタフェースカードなどより構成される通信部７０９が接続されている。通信部７０９は、インターネットを含むネットワークを介しての通信処理を行う。
【０１５７】
入出力インタフェース７０５にはまた、必要に応じてドライブ７１０が接続され、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア７１１が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記憶部７０８にインストールされる。
【０１５８】
上述した一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、インターネットなどのネットワークや、リムーバブルメディア７１１などからなる記録媒体からインストールされる。
【０１５９】
なお、この記録媒体は、図１２に示される、装置本体とは別に、ユーザにプログラムを配信するために配布される、プログラムが記録されている磁気ディスク（フロッピディスク（登録商標）を含む）、光ディスク（CD-ROM(Compact Disk-Read Only Memory),DVD(Digital Versatile Disk)を含む）、光磁気ディスク（MD（Mini-Disk）（登録商標）を含む）、もしくは半導体メモリなどよりなるリムーバブルメディア７１１により構成されるものだけでなく、装置本体に予め組み込まれた状態でユーザに配信される、プログラムが記録されているＲＯＭ７０２や、記憶部７０８に含まれるハードディスクなどで構成されるものも含む。
【０１６０】
なお、本明細書において上述した一連の処理は、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０１６１】
また、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
【０１６２】
なお、本技術は以下のような構成も取ることができる。
【０１６３】
（１）
書き換え可能回数の上限値が異なる複数のメモリを組み合わせて構成される主記憶装置と、
前記主記憶装置に記憶すべきデータの記憶領域を、前記データの書き換え頻度に基づいて、前記複数のメモリのいずれかに割り当てる割り当て管理部と
を備える情報処理装置。
（２）
前記割り当て管理部は、
前記書き換え頻度が大きいデータの記憶領域を、前記複数のメモリのうちの第１のメモリに割り当て、
前記書き換え頻度が小さいデータの記憶領域を、前記複数のメモリのうちの第１のメモリより書き換え可能回数の上限値が小さい第２のメモリに割り当てる
（１）に記載の情報処理装置。
（３）
前記割り当て管理部は、
前記第２のメモリの１ページ当たりの記憶容量を、第１のメモリの１ページ当たりの記憶容量より大きく設定する
（２）に記載の情報処理装置。
（４）
前記第２のメモリは、前記第１のメモリより記憶容量が大きい
（２）に記載の情報処理装置。
（５）
前記第１のメモリは、ＭＲＡＭ（Magnetoresistive Random Access Memory）とされ、前記第２のメモリは、ＲｅＲＡＭ（Resistance Random Access Memory）、または、ＰＣＭ（Phase Change Memory）とされる
（２）に記載の情報処理装置。
（６）
前記主記憶装置に記憶すべきデータの付加情報に基づいて、前記データの書き換え頻度を推定する書き換え頻度推定部をさらに備える
（１）乃至（５）のいずれかに記載の情報処理装置。
（７）
前記書き換え頻度推定部は、
前記主記憶装置に記憶すべきデータのデータ型毎に、前記データを構成する各部の書き換え頻度を推定する
（１）乃至（６）のいずれかに記載の情報処理装置。
（８）
前記データを構成する各部の書き換え頻度が、前記データのデータ型毎に学習されて生成されたテンプレートに基づいて推定される
（７）に記載の情報処理装置。
（９）
中央演算処理装置により実行されるプログラムの中の予め指定された特定のステップの処理が実行される場合、前記特定のステップが実行されることを、前記割り当て管理部に通知する特定ステップ実行通知部をさらに備え、
前記割り当て管理部は、
前記実行通知部からの通知を受けた場合、
前記複数のメモリのうちの１つのメモリに割り当てられていた前記データの記憶領域を、前記複数のメモリのうちの他のメモリに割り当てる
（１）乃至（８）のいずれかに記載の情報処理装置。
（１０）
前記割り当て管理部は、
前記実行通知部からの通知を受けた場合、
前記複数のメモリのうちの第１のメモリより書き換え可能回数の上限値が小さい第２のメモリに記憶されているデータの記憶領域を、前記第１のメモリに割り当てる
（９）に記載の情報処理装置。
（１１）
前記複数のメモリのうち、比較的書き換え可能回数の上限値が小さいメモリが、補助記憶装置と兼用される
（１）乃至（１０）のいずれかに記載の情報処理装置。
（１２）
前記複数のメモリのうち、比較的書き換え可能回数の上限値が小さいメモリが、不揮発性メモリとして構成され、
前記複数のメモリのうち、比較的書き換え可能回数の上限値が大きいメモリが、揮発性メモリとして構成される
（１）乃至（１１）のいずれかに記載の情報処理装置。
（１３）
書き換え可能回数の上限値が異なる複数のメモリを組み合わせて構成される主記憶装置を備える情報処理装置の情報処理方法であって、
前記主記憶装置に記憶すべきデータの記憶領域を、前記データの書き換え頻度に基づいて、前記複数のメモリのいずれかに割り当てるステップ
を含む情報処理方法。
（１４）
コンピュータを、
書き換え可能回数の上限値が異なる複数のメモリを組み合わせて構成される主記憶装置と、
前記主記憶装置に記憶すべきデータの記憶領域を、前記データの書き換え頻度に基づいて、前記複数のメモリのいずれかに割り当てる割り当て管理部とを備える情報処理装置として機能させる
プログラム。
【符号の説明】
【０１６４】
１０  演算処理システム，  ２１  ＣＰＵ，  ２２  ＭＭＵ，  ２３  ＲＡＭ，  ２４  ＲＡＭ
【図１】
2013254403.tif 000003
【図２】
2013254403.tif 000004
【図３】
2013254403.tif 000005
【図４】
2013254403.tif 000006
【図５】
2013254403.tif 000007
【図６】
2013254403.tif 000008
【図７】
2013254403.tif 000009
【図８】
2013254403.tif 000010
【図９】
2013254403.tif 000011
【図１０】
2013254403.tif 000012
【図１１】
2013254403.tif 000013
【図１２】
2013254403.tif 000014