説明

メモリ管理装置、メモリ管理方法、および、制御プログラム

【課題】主記憶装置の使用量を削減する。
【解決手段】メモリマネージャのメモリ管理部は、ステップS41において、ROM上のページと値が合致するRAM上のページを検出した場合、ステップS43において、値が合致するROM上のページを参照するように変換テーブルを更新し、ステップS44において、検出したRAM上のページを破棄する。本技術は、例えば、組み込み機器に適用できる。

【発明の詳細な説明】
【技術分野】
【0001】
本技術は、メモリ管理装置、メモリ管理方法、および、制御プログラムに関し、特に、主記憶装置の使用量を削減できるようにしたメモリ管理装置、メモリ管理方法、および、制御プログラムに関する。
【背景技術】
【0002】
従来、RAM(Random Access Memory)と同様にCPU(Central Processing Unit)からランダムアクセス可能なROM(Read Only Memory)、すなわち、CPUから直接アドレス単位でデータを読み出すことが可能なROMを備えるシステムにおけるメモリ削減を実現する技術として、DRIP(Data Read In Place)が知られている。DRIPを適用したシステムにおいては、CPUは、データの初期値をRAMにコピーせずに直接ROMから読み出し、データの書き込みを行うときにはじめてRAMにデータをコピーする。
【0003】
また、従来、主記憶装置内のデータをスワップアウトするときに、読み込み専用ファイルシステムにある元のデータとの差分データを生成し、差分データを圧縮して主記憶装置内のスワップ領域に格納する技術が提案されている(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2008−140236号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、DRIPを適用したシステムでは、データの書き込みを行うまではメモリの削減効果があるものの、一度書き込みが行われたデータについては、そのデータの領域を解放するまでRAMにデータが残るため、メモリ削減の効果がなくなる。
【0006】
また、特許文献1に記載の技術では、スワップアウトするデータについては、メモリ削減の効果があるものの、スワップアウトせずに使用するデータについては、メモリ削減の効果が現れない。
【0007】
本技術は、主記憶装置の使用量を削減できるようにするものである。
【課題を解決するための手段】
【0008】
本技術の一側面のメモリ管理装置は、所定のプログラムの実行中に、補助記憶装置のデータと合致する主記憶装置のデータを破棄し、破棄したデータを前記補助記憶装置から読み出すように制御するメモリ管理部を備える。
【0009】
前記補助記憶装置のデータは、前記プログラムを実行する前の初期値を示す初期データ、および、前記プログラムの実行中に前記主記憶装置に出現すると予測される予測データを含むようにすることができる。
【0010】
前記予測データは、前記プログラムを実行させたときの前記主記憶装置の内容に基づいて予測されたデータとすることができる。
【0011】
前記予測データは、前記プログラムを実行させたときに前記主記憶装置に出現したデータから、出現した頻度および期間のうち少なくとも一方に基づいて抽出されたデータとすることができる。
【0012】
前記予測データは、所定のサイズのブロック単位で前記補助記憶装置に格納され、前記メモリ管理部には、前記プログラムからの要求に対して、前記ブロック単位で前記主記憶装置の領域を確保させるようにすることができる。
【0013】
前記予測データは、圧縮された状態で前記補助記憶装置に格納するようにすることができる。
【0014】
前記プログラムの実行中に、前記主記憶装置の内容に基づいて前記予測データを生成し、前記補助記憶装置に格納する予測データ生成部をさらに設けることができる。
【0015】
前記メモリ管理部には、前記補助記憶装置のデータを書き換える場合、当該データを前記主記憶装置にコピーし、前記主記憶装置にコピーしたデータを書き換えるように制御させることができる。
【0016】
本技術の一側面のメモリ管理方法は、所定のプログラムの実行中に、補助記憶装置のデータと合致する主記憶装置のデータを破棄し、破棄したデータを前記補助記憶装置から読み出すように制御するステップを含む。
【0017】
本技術の一側面の制御プログラムは、所定のプログラムの実行中に、補助記憶装置のデータと合致する主記憶装置のデータを破棄し、破棄したデータを前記補助記憶装置から読み出すように制御するステップを含む処理をコンピュータに実行させる。
【0018】
本技術の一側面においては、所定のプログラムの実行中に、補助記憶装置のデータと合致する主記憶装置のデータが破棄され、破棄されたデータが前記補助記憶装置から読み出される。
【発明の効果】
【0019】
本技術の一側面によれば、主記憶装置の使用量を削減することができる。
【図面の簡単な説明】
【0020】
【図1】本技術を適用した情報処理システムの一実施の形態を示すブロック図である。
【図2】メモリマネージャの機能の構成例を示すブロック図である。
【図3】ROMに格納されるデータの一例を示す図である。
【図4】データ読み出し処理を説明するためのフローチャートである。
【図5】データ書き込み処理を説明するためのフローチャートである。
【図6】データ読み出し処理および書き込み処理の具体例を説明するための図である。
【図7】データ読み出し処理および書き込み処理の具体例を説明するための図である。
【図8】データ読み出し処理および書き込み処理の具体例を説明するための図である。
【図9】メモリ再配置処理を説明するためのフローチャートである。
【図10】メモリ再配置処理の具体例を説明するための図である。
【図11】メモリ再配置処理の具体例を説明するための図である。
【図12】予測ページの格納方法の変形例を示す図である。
【図13】メモリ領域の確保方法の一例を示す図である。
【図14】メモリマネージャの機能の第2の構成例を示すブロック図である。
【図15】予測ページ生成処理を説明するためのフローチャートである。
【発明を実施するための形態】
【0021】
以下、本技術を実施するための形態(以下、実施の形態という)について説明する。なお、説明は以下の順序で行う。
1.実施の形態
2.変形例
【0022】
<1.実施の形態>
[情報処理システムの構成例]
図1は、本技術を適用した情報処理システム101の一実施の形態を示すブロック図である。
【0023】
情報処理システム101は、例えば、テレビジョン受像機、携帯電話機等の各種の組み込み機器や、コンピュータ等に適用可能なシステムである。
【0024】
情報処理システム101は、CPU(Central Processing Unit)111、RAM(Random Access Memory)112、および、ROM(Read Only Memory)113を含むように構成される。CPU111、RAM112、および、ROM113は、バス114を介して相互に接続されている。
【0025】
CPU111は、各種のプログラムを実行することにより、各種の機能を実現する。
【0026】
RAM112は、主記憶装置として設けられ、CPU111の処理に必要なプログラムおよびデータを一時的に記憶する。
【0027】
ROM113は、補助記憶装置として設けられ、CPU111の処理に必要なプログラムおよびデータが格納される。また、ROM113に格納されるデータは、初期データと予測データを含む。
【0028】
ここで、初期データとは、情報処理システム101の動作開始前の各種のデータの初期値を示すデータである。換言すれば、初期データとは、後述するプログラム124−1乃至124−nを実行する前の各種のデータの初期値を示すデータである。
【0029】
また、予測データとは、詳細は後述するが、情報処理システム101の動作中、すなわち、プログラム124−1乃至124−nの実行中にRAM112上に出現すると予測されるデータである。
【0030】
また、ROM113は、ランダムアクセスが可能なROM、すなわち、CPU111から直接アドレス単位でデータを読み出すことが可能なROMにより構成される。
【0031】
ここで、情報処理システム101のソフトウエアの構成例について説明する。
【0032】
情報処理システム101では、例えば、CPU111により実行されるOS(オペレーティングシステム)によりページング方式の仮想記憶が実現される。すなわち、ROM113のアドレス空間は所定のサイズのブロックであるページに分割され、ROM上のデータは必要に応じてページ単位でRAM112に配置される。
【0033】
メモリマネージャ121およびメモリアクセス部122は、例えば、そのOSの機能の一部として提供される。
【0034】
メモリマネージャ121は、ROM113上のプログラムおよびデータのRAM112への配置、並びに、RAM112の領域の確保および解放の制御を行う。また、メモリマネージャ121は、メモリマネージャ123からの要求に対する処理結果をメモリマネージャ123に通知する。
【0035】
さらに、メモリマネージャ121は、RAM112およびROM113にアクセスするために仮想アドレスを物理アドレスに変換する変換テーブルの生成および更新を行い、変換テーブルをRAM112に記憶させる。また、メモリマネージャ121は、変換テーブルを更新したことをメモリアクセス部122に通知する。なお、変換テーブルは、例えば、アドレス変換テーブル、ページテーブル、または、メモリマップなどにより構成される。
【0036】
さらに、メモリマネージャ121は、プログラム124−1乃至124−nを実行中のRAM112の内容のプロファイルを取り(RAM112の内容を分析し)、その結果を外部に出力する。
【0037】
メモリアクセス部122は、メモリマネージャ123からの要求に応じて、変換テーブルを用いて、RAM112またはROM113からアドレス単位でデータを読み出し、メモリマネージャ123に渡す。また、メモリアクセス部122は、メモリマネージャ123からの要求に応じて、変換テーブルを用いて、アドレス単位でRAM112にデータを書き込む。さらに、メモリアクセス部122は、書き込み対象のデータを含むページがRAM112上にない場合、そのことをメモリマネージャ121に通知する。
【0038】
メモリマネージャ123は、例えば、プログラム124−1乃至124−nに対して、RAM112およびROM113のデータを読み出したり、RAM112にデータを書き込んだりするためのライブラリ関数を提供する。そして、メモリマネージャ123は、プログラム124−1乃至124−nからのデータの読み出しまたは書き込みの要求を、メモリアクセス部122が実行可能な形式に変換して、メモリアクセス部122に通知する。
【0039】
また、メモリマネージャ123は、例えば、RAM112の領域を確保または解放するためのライブラリ関数を提供する。そして、メモリマネージャ123は、プログラム124−1乃至124−nからの領域の確保または解放の要求を、メモリマネージャ121が実行可能な形式に変換して、メモリマネージャ121に通知する。
【0040】
プログラム124−1乃至124−nは、CPU111が所定の機能を実現するためのアプリケーションプログラム等により構成される。
【0041】
なお、以下、プログラム124−1乃至124−nを個々に区別する必要がない場合、単にプログラム124と称する。
【0042】
[メモリマネージャ121の機能の構成例]
次に、図2を参照して、メモリマネージャ121の機能の構成例について説明する。
【0043】
メモリマネージャ121は、プロファイル取得部151およびメモリ管理部152を含むように構成される。
【0044】
プロファイル取得部151は、プログラム124を実行中のRAM112の内容のプロファイルを取り(RAM112の内容を分析し)、その結果を外部に出力する。
【0045】
メモリ管理部152は、ROM113上のプログラムおよびデータのRAM112への配置、並びに、RAM112の領域の確保および解放の制御を行う。また、メモリ管理部152は、メモリマネージャ123からの要求に対する処理結果をメモリマネージャ123に通知する。さらに、メモリ管理部152は、変換テーブルの生成および更新を行い、変換テーブルをRAM112に記憶させる。また、メモリ管理部152は、変換テーブルを更新したことをメモリアクセス部122に通知する。
【0046】
[予測データの予測方法]
ここで、ROM113に格納される予測データの予測方法について説明する。なお、予測データの予測は、例えば、情報処理システム101の開発段階に行われ、情報処理システム101は、予測データをROM113に格納した状態で出荷される。
【0047】
まず、プロファイル取得部151は、プログラム124を通常どおり実行させたときのRAM112の内容のプロファイルを取り、取得したプロファイルを情報処理システム101の外部に出力する。外部に出力されたプロファイルは、図示せぬ記録装置に記録される。
【0048】
このとき、連続してプロファイルを取るようにしてもよいし、所定の間隔毎または所定の条件を満たしたときなどに離散的にプロファイルを取るようにしてもよい。また、プロファイル取得部151が、RAM112の内容を、特に加工や分析を加えずにそのまま出力するようにしてもよいし、後の工程で処理しやすいように加工や分析を加えてから出力するようにしてもよい。
【0049】
そして、記録したプロファイルに基づいて、ROM113に格納されているページと値が異なるRAM112上のページを抽出する。換言すれば、プログラム124の実行中にRAM112にのみ出現するページを抽出する。このようなページには、例えば、ROM113からRAM112にコピーされた後、値が書き換えられたページや、CPU111によりRAM112に確保された後、値が書き込まれたページなどがある。
【0050】
そして、抽出されたページの全部または一部が、予測データとしてROM113に格納される。なお、ROM113に格納される予測データの量は、ROM113の容量により決定される。例えば、ROM113の容量に余裕があれば、全ての予測データをROM113に格納することが可能である。一方、ROM113の容量に余裕がなければ、予測データの一部を抽出して、ROM113に格納する必要がある。
【0051】
後者の場合、例えば、プログラム124の実行中にRAM112に出現した頻度および期間のうちの少なくとも一方に基づいて、予測データを抽出することが考えられる。すなわち、出現した頻度が高い予測データや、期間が長い予測データが優先して抽出される。また、例えば、RAM112に出現するページのうち、初期値と比べて差分が大きいページを、優先して予測ページとしてROM113に格納するようにしてもよい。
【0052】
また、プログラム124の特性上、プログラム124の実行中にRAM112に出現することが予め分かっているデータがある場合、そのデータを予測データとしてROM113に格納するようにすることが望ましい。
【0053】
なお、以下、初期データからなるページを初期ページと称し、予測データからなるページを予測ページと称する。
【0054】
[情報処理システム101の処理]
次に、図2乃至図11を参照して、情報処理システム101により実行される処理について説明する。
【0055】
なお、以下、図3に示されるように、ROM113に初期ページPaおよび予測ページPa’が格納されているものとする。また、予測ページPa’は、プログラム124の実行中に初期ページPa全体の値Aが値A’に書き換えられることによりRAM112に出現するページに対応するものとする。さらに、以下、初期ページPaおよび予測ページPa’ともにデータxが含まれるものとする。このデータxは、プログラム124により実際に処理される単位のデータである。
【0056】
[データ読み出し処理]
まず、図4のフローチャートを参照して、情報処理システム101により実行されるデータ読み出し処理について説明する。
【0057】
ステップS1において、プログラム124は、メモリマネージャ123に対して、データの読み出しを要求する。
【0058】
ステップS2において、メモリアクセス部122は、データの読み出しを行う物理アドレスを求める。具体的には、メモリマネージャ123は、プログラム124により読み出しが要求されたデータの仮想アドレスを求め、求めた仮想アドレスからのデータの読み出しをメモリアクセス部122に要求する。メモリアクセス部122は、変換テーブルに基づいて、メモリマネージャ123により指定された仮想アドレスを物理アドレスに変換する。
【0059】
ステップS3において、メモリアクセス部122は、求めた物理アドレスからデータを読み出す。すなわち、メモリアクセス部122は、求めた物理アドレスがROM113上のアドレスの場合、ROM113からデータを読み出し、RAM112上のアドレスの場合、RAM112からデータを読み出す。メモリアクセス部122は、読み出したデータを、メモリマネージャ123を介して、要求元のプログラム124に渡す。
【0060】
その後、データ読み出し処理は終了する。
【0061】
[データ書込み処理]
次に、図5のフローチャートを参照して、情報処理システム101により実行されるデータ書込み処理について説明する。
【0062】
ステップS21において、プログラム124は、メモリマネージャ123に対して、データの書き込みを要求する。
【0063】
ステップS22において、メモリアクセス部122は、データの書き込みを行う物理アドレスを求める。具体的には、メモリマネージャ123は、プログラム124によりデータの書き込みが要求された仮想アドレスを求め、求めた仮想アドレスへのデータの書き込みをメモリアクセス部122に要求する。メモリアクセス部122は、変換テーブルに基づいて、メモリマネージャ123により指定された仮想アドレスを物理アドレスに変換する。
【0064】
ステップS23において、メモリアクセス部122は、求めた物理アドレスに基づいて、書き込み対象のデータがRAM112上にあるか否かを判定する。書き込み対象のデータがRAM112上にないと判定された場合、処理はステップS24に進む。
【0065】
ステップS24において、メモリ管理部152は、書き込み対象のデータを含むページをRAM112にコピーする。具体的には、メモリアクセス部122は、書き込み対象のデータを含むページがRAM112上にないことをメモリ管理部152に通知する。メモリ管理部152は、メモリアクセス部122から通知されたROM113上のページをRAM112にコピーする。
【0066】
ステップS25において、メモリ管理部152は、コピーしたページを参照するように変換テーブルを更新する。すなわち、メモリ管理部152は、コピー元のROM113上のページ(初期ページまたは予測ページ)の物理アドレスに対応付けられている仮想アドレスの変換先を、コピーしたRAM112上のページの物理アドレスに変更することにより、変換テーブルを更新する。これにより、以降、メモリアクセス部122が、コピー元のROM113上のページの代わりに、コピー先のRAM112上のページにアクセスするようになる。そして、メモリ管理部152は、変換テーブルを更新したことをメモリアクセス部122に通知する。
【0067】
ステップS26において、メモリアクセス部122は、更新された変換テーブルに基づいて、ステップS22と同様の処理を行い、データの書き込みを行う物理アドレスを求める。
【0068】
その後、処理はステップS27に進む。
【0069】
一方、ステップS23において、書き込み対象のデータがRAM112上にあると判定された場合、ステップS24乃至S26の処理はスキップされ、処理はステップS27に進む。
【0070】
ステップS27において、メモリアクセス部122は、求めた物理アドレスにデータを書き込む。そして、メモリアクセス部122は、データの書き込みの完了を、メモリマネージャ123を介して、要求元のプログラム124に通知する。
【0071】
ここで、図6乃至図8を参照して、図4のデータ読み出し処理および図5のデータ書き込み処理の具体例について説明する。
【0072】
初期ページPa内のデータの値が書き換えられる前は、CPU111は、例えばデータxを読み出す場合、図6に示されるように、ROM113上の初期ページPaから直接読み出す。
【0073】
一方、初期ページPa内のデータの値を書き換える場合、図7に示されるように、CPU111は、ROM113上の初期ページPaをRAM112にコピーする。そして、図8に示されるように、CPU111は、RAM112にコピーされたページPb内のデータの値を書き換える。その結果、ページPb全体の値は、初期ページPa全体の値Aと異なる値Bになる。
【0074】
以降、CPU111は、例えばデータxを読み出す場合、図8に示されるように、RAM112上のページPbから読み出しを行う。同様に、CPU111は、例えばデータxの値を変更する場合、RAM上のページPb内のデータxに対して書き込みを行う。
【0075】
このように、RAM112上に書き込み対象のデータがない場合、書き込み対象のデータを含むページがROM113からRAM112にコピーされる。そして、RAM112にコピーされたページ内のデータに対して書き込みが行われる。それ以降、RAM112にコピーされたページ内のデータに対して、読み出しおよび書き込みが行われる。
【0076】
[メモリ再配置処理]
次に、図9のフローチャートを参照して、情報処理システム101により実行されるメモリ再配置処理について説明する。
【0077】
なお、この処理は、例えば、プログラム124からの要求に対して、RAM112の領域を確保できなくなったときや、RAM112の空き容量が所定の閾値以下になったときなど、RAM112の空き容量が不足しているときに実行される。あるいは、この処理は、例えば、CPU111の処理能力に余力があるとき、または、任意のタイミングで実行される。
【0078】
また、以下、図10に示されるように、CPU111が、RAM112上のページPbに対して書き込みを行うことにより、ページPb全体の値が、予測ページPa’全体の値A’と合致しているものとする。
【0079】
ステップS41において、メモリ管理部152は、ROM113上のページと値が合致するRAM112上のページを探索する。
【0080】
なお、ここで用いる探索方法には、任意のものを採用することができる。例えば、ROM113上の初期ページおよび予測ページに、各ページの値を表すハッシュ値を予め付加しておき、そのハッシュ値を用いて探索するようにすることが考えられる。
【0081】
ステップS42において、メモリ管理部152は、ステップS41の処理の結果、該当するページが検出されたか否かを判定する。該当するページ、すなわち、ROM113上のページと値が合致するRAM112上のページが検出されたと判定された場合、処理はステップS43に進む。
【0082】
ステップS43において、メモリ管理部152は、合致するROM113上のページを参照するように変換テーブルを更新する。すなわち、メモリ管理部152は、検出されたRAM112上の全てのページについて、当該RAM上のページの物理アドレスに対応付けられている仮想アドレスの変換先を、値が合致するROM113上のページの物理アドレスに変更することにより、変換テーブルを更新する。
【0083】
例えば、図10に示される例の場合、ページPbの物理アドレスに対応付けられている仮想アドレスの変換先が、ページPbと値が合致するROM113上の予測ページPa’の物理アドレスに変更される。これにより、以降、CPU111は、例えばデータxを読み出す場合、図11に示されるように、RAM112上のページPbの代わりに、ROM113上の予測ページPa’から読み出しを行うようになる。
【0084】
なお、もちろん、ページPbの値がRAM112上の初期ページPaと合致する場合は、初期ページPaを参照するように、変換テーブルが更新される。
【0085】
ステップS44において、メモリ管理部152は、検出されたRAM112上のページを破棄する。例えば、図11に示される例の場合、RAM112上のページPbが破棄される。
【0086】
その後、メモリ再配置処理は終了する。
【0087】
一方、ステップS42において、該当するページ、すなわち、ROM113上のページと値が合致するRAM112上のページが検出されなかったと判定された場合、ステップS43およびS44の処理はスキップされ、メモリ再配置処理は終了する。
【0088】
なお、この後、予測ページPa’内のデータを書き換える場合には、初期ページPa内のデータを書き換える場合と同様に、予測ページPa’がRAM112にコピーされ、コピーされたページに対して書き込みが行われる。
【0089】
このように、ROM113からRAM112にページをコピーした後も、RAM112上のページの値がROM113上のページと合致すれば、RAM112上のページが破棄され、ROM上のページが参照されるようになる。その結果、RAM112の使用量を削減することができる。
【0090】
従って、RAM112の容量を小さくすることができる。あるいは、同じ容量のRAM112を用いて、より多くのデータを保持したり、より多くのプログラム124を同時に実行させたりすることが可能になる。
【0091】
また、データをRAM112にスワップインせずに直接ROM113から読み出すことができるため、ROM113から直接読み出すことができるデータが多くなるほど、従来のスワップ機構と比較して、高速な動作を期待することができる。
【0092】
<2.変形例>
以下、本技術の実施の形態の変形例について説明する。
【0093】
[変形例1]
例えば、プログラム124が、RAM112のページの値をROM113の初期ページまたは予測ページと同じ値に書き換えたときに、メモリ管理部152にメモリの再配置を指令するようにしてもよい。例えば、上述した図10に示されるように、プログラム124が、RAM112上のページPbをROM113上の予測ページPa’と同じ値A’に書き換えたときに、メモリマネージャ123を介して、ページPbの再配置をメモリ管理部152に指令するようにしてもよい。
【0094】
[変形例2]
また、例えば、予測ページを圧縮した状態でROM113に格納するようにしてもよい。
【0095】
例えば、図12の予測ページPcは、図3等に示される予測ページPa’を圧縮したものである。この場合、例えば予測ページPc内のデータxを読み出す場合、予測ページPcが解凍されて、RAM112にコピーされる。そして、RAM112にコピーされたページPdからデータxが読み出される。
【0096】
これにより、ROM113の容量を削減したり、あるいは、より多くの予測ページをROM113に格納したりすることができる。また、メモリ再配置処理により、ROM113上の予測ページと値が合致するRAM112上のページを破棄した後、当該予測ページ内のデータを読み出したり、書き込んだりするまでの間、RAM112の使用量を削減することができる。
【0097】
なお、この場合、初期ページ内のデータも、該当する初期ページをROM113からRAM112に移してから読み出すようにしてもよい。このようにした場合、ROM113は、必ずしもランダムアクセス可能なものとする必要はない。
【0098】
[変形例3]
さらに、例えば、プログラム124からの要求によりRAM112の領域を確保する場合に、ページ単位で領域を確保するようにしてもよい。
【0099】
通常、各プログラム124は、実際に処理するデータ単位でRAM112の領域の確保をメモリマネージャ123に要求する。すなわち、各プログラム124は、アドレス単位で様々なサイズの領域の確保をメモリマネージャ123に要求する。
【0100】
これに対して、従来のメモリマネージャ123は、例えば、1つのページ内に複数のデータを配置するように調整して、メモリ管理部152にRAM112の領域の確保を要求する。その結果、例えば、図13の左側に示されるように、RAM112上のページP1a内にデータa乃至cが混在し、ページP3a内にデータxとデータyが混在した状態になる。これにより、RAM112の使用量を削減することができる。
【0101】
しかし、この場合、例えば、ページP1aについては、データa乃至データcの全ての値がROM113上の予測ページと合致しなければ、RAM112から破棄することができない。そのため、ページP1aがRAM112から破棄される確率が低くなる。これは、ページP3aについても同様である。
【0102】
そこで、図13の右側に示されるように、各ページに1つずつデータが格納されるようにRAM112の領域を確保するようにすることが考えられる。すなわち、各プログラム124からの要求に対して、データ毎にページ単位でRAM112の領域を確保するようにすることが考えられる。その結果、ページP1b乃至P5bには、データa乃至yが1つずつ格納されるようになる。
【0103】
これにより、ページP1b乃至P5bの値が、ROM113上の予測ページと合致し、ページP1b乃至P5bをRAM112から破棄できる確率が高くなる。その結果、RAM112の使用量を削減することができる。
【0104】
ただし、この場合、RAM112上のページの利用効率が低下し、一時的にRAM112の使用量が増大することが予測される。これに対しては、例えば、スワップデバイスやメモリ圧縮技術などを採用することにより解消することが可能である。
【0105】
例えば、長期間使用しないデータを格納するページを、圧縮してRAM112に保持するようにすることが考えられる。この場合、例えば、ページP1b乃至P5bは、未使用領域が多いため、圧縮率が高くなり、よりRAM112の使用量の削減効果が大きくなると考えられる。
【0106】
なお、この場合、RAM112に出現する頻度が高いページや、出現する期間が長いページの他に、圧縮率が悪いページを優先して予測ページとしてROM113に格納することが考えられる。これにより、RAM112の使用量をさらに削減することができる。
【0107】
[変形例4]
また、例えば、ROM113の代わりにフラッシュメモリ等の書き込み可能な記憶装置を補助記憶装置に用いるとともに、予測ページの学習処理を行い、動的に予測ページを生成し、補助記憶装置に格納するようにしてもよい。
【0108】
ここで、図14および図15を参照して、この場合の処理の具体例について説明する。
【0109】
図14は、予測ページの学習処理を行う場合に、図2のメモリマネージャ121の代わりに用いられるメモリマネージャ201の機能の構成例を示している。メモリマネージャ201は、プロファイル取得部151、メモリ管理部152、および、予測ページ生成部211を含むように構成される。なお、図中、図2と対応する部分には同じ符号を付してあり、処理が同じ部分については、適宜説明を省略する。
【0110】
プロファイル取得部151は、RAM112の内容のプロファイルを取り、取得したプロファイルを予測ページ生成部211に供給する。
【0111】
予測ページ生成部211は、RAM112の内容のプロファイルに基づいて、予測ページを生成し、生成した予測データを補助記憶装置に格納する。
【0112】
次に、図15のフローチャートを参照して、プログラム124の実行中にメモリマネージャ201により実行される予測ページ生成処理について説明する。なお、この処理は、例えば、連続して、所定の間隔ごとに定期的に、または、CPU111の処理能力に余力があるときに実行される。
【0113】
ステップS101において、プロファイル取得部151は、プログラム124を実行中のRAM112の内容のプロファイルを取り、取得したプロファイルを予測ページ生成部211に供給する。このとき、連続してプロファイルを取るようにしてもよいし、所定の間隔毎または所定の条件を満たしたときなどに離散的にプロファイルを取るようにしてもよい。
【0114】
ステップS102において、予測ページ生成部211は、プロファイルの結果に基づいて、予測ページを生成する。例えば、予測ページ生成部211は、補助記憶装置に格納されている予測ページと異なる値のページが補助記憶装置に出現した場合、そのページと同じ値のページを予測ページとして生成する。
【0115】
ステップS103において、予測ページ生成部211は、生成した予測ページを補助記憶装置に格納する。
【0116】
その後、予測ページ生成処理は終了する。
【0117】
これにより、RAM112上のページの値が、補助記憶装置上の予測ページと合致する確率が高くなり、よりRAM112の使用量を削減することができる。
【0118】
なお、例えば、出現頻度や出現時間に基づいて、補助記憶装置に格納する予測ページを選別するようにしてもよい。すなわち、RAM112に出現する頻度が高いページや、出現する期間が長いページを抽出して、補助記憶装置に格納するようにしてもよい。
【0119】
また、例えば、補助記憶装置に格納されている予測ページのうち長期間使用されていないものや、使用頻度が低いものを適宜削除するようにしてもよい。
【0120】
[変形例5]
さらに、本技術の実施の形態では、予測ページを用いなくても、RAM112の使用量の削減効果を得ることができる。すなわち、RAM112のページの値が初期ページと合致した場合にのみ、そのページを破棄し、初期ページを参照するようにするだけでも、RAM112の使用量の削減効果を得ることができる。
【0121】
[変形例6]
また、以上に示した情報処理システム101のソフトウエアの構成例は、その一例であり、他の構成にすることも可能である。例えば、メモリマネージャ121およびメモリアクセス部122の機能の全部または一部を、メモリマネージャ123やプログラム124が実行するようにしてもよい。また、例えば、メモリマネージャ121が、メモリアクセス部122の機能の一部または全部を実行するようにしてもよい。さらに、例えば、メモリマネージャ123を省略して、プログラム124が直接メモリマネージャ121およびメモリアクセス部122に処理を要求するようにしてもよい。
【0122】
[変形例7]
さらに、以上の説明では、RAM112およびROM113のデータの配置を同じサイズのブロックであるページ単位で行う例を示したが、本技術は、例えば、セグメント単位またはアドレス単位等、不均一なサイズでデータの配置を行う場合にも適用することができる。
【0123】
[変形例8]
また、上述した一連の処理は、ハードウエアにより実行することもできるし、ソフトウエアにより実行することもできる。例えば、メモリアクセス部122を、メモリ管理ユニット(MMU)等のハードウエアにより構成することも可能である。
【0124】
なお、一連の処理をソフトウエアにより実行する場合には、そのソフトウエアを構成するプログラムが、コンピュータにインストールされる。ここで、コンピュータには、専用のハードウエアに組み込まれているコンピュータや、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどが含まれる。
【0125】
コンピュータが実行するプログラムは、例えば、パッケージメディア等としてのリムーバブルメディアに記録して提供することができる。また、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供することができる。その他、プログラムは、装置に組み込まれている記憶装置(例えば、ROM113)に、あらかじめインストールしておくことができる。
【0126】
なお、コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
【0127】
また、本明細書において、システムの用語は、複数の装置、手段などより構成される全体的な装置を意味するものとする。
【0128】
さらに、本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
【0129】
また、例えば、本技術は以下のような構成も取ることができる。
【0130】
(1)
所定のプログラムの実行中に、補助記憶装置のデータと合致する主記憶装置のデータを破棄し、破棄したデータを前記補助記憶装置から読み出すように制御するメモリ管理部を
備えるメモリ管理装置。
(2)
前記補助記憶装置のデータは、前記プログラムを実行する前の初期値を示す初期データ、および、前記プログラムの実行中に前記主記憶装置に出現すると予測される予測データを含む
前記(1)に記載のメモリ管理装置。
(3)
前記予測データは、前記プログラムを実行させたときの前記主記憶装置の内容に基づいて予測されたデータである
前記(2)に記載のメモリ管理装置。
(4)
前記予測データは、前記プログラムを実行させたときに前記主記憶装置に出現したデータから、出現した頻度および期間のうち少なくとも一方に基づいて抽出されたデータである
前記(3)に記載のメモリ管理装置。
(5)
前記予測データは、所定のサイズのブロック単位で前記補助記憶装置に格納され、
前記メモリ管理部は、前記プログラムからの要求に対して、前記ブロック単位で前記主記憶装置の領域を確保する
前記(2)から(4)のいずれかに記載のメモリ管理装置。
(6)
前記予測データは、圧縮された状態で前記補助記憶装置に格納される
前記(2)から(5)のいずれかに記載のメモリ管理装置。
(7)
前記プログラムの実行中に、前記主記憶装置の内容に基づいて前記予測データを生成し、前記補助記憶装置に格納する予測データ生成部を
前記(2)から(6)のいずれかに記載のメモリ管理装置。
(8)
前記メモリ管理部は、前記補助記憶装置のデータを書き換える場合、当該データを前記主記憶装置にコピーし、前記主記憶装置にコピーしたデータを書き換えるように制御する
前記(1)から(7)のいずれかに記載のメモリ管理装置。
(9)
所定のプログラムの実行中に、補助記憶装置のデータと合致する主記憶装置のデータを破棄し、破棄したデータを前記補助記憶装置から読み出すように制御する
ステップを含むメモリ管理方法。
(10)
所定のプログラムの実行中に、補助記憶装置のデータと合致する主記憶装置のデータを破棄し、破棄したデータを前記補助記憶装置から読み出すように制御する
ステップを含む処理をコンピュータに実行させるための制御プログラム。
【符号の説明】
【0131】
101 情報処理システム, 111 CPU, 112 RAM, 113 ROM, 121 メモリマネージャ, 122 メモリアクセス部, 123 メモリマネージャ, 124−1乃至124−n プログラム, 151 プロファイル取得部, 152 プロファイル管理部, 201 メモリマネージャ, 211 予測ページ生成部

【特許請求の範囲】
【請求項1】
所定のプログラムの実行中に、補助記憶装置のデータと合致する主記憶装置のデータを破棄し、破棄したデータを前記補助記憶装置から読み出すように制御するメモリ管理部を
備えるメモリ管理装置。
【請求項2】
前記補助記憶装置のデータは、前記プログラムを実行する前の初期値を示す初期データ、および、前記プログラムの実行中に前記主記憶装置に出現すると予測される予測データを含む
請求項1に記載のメモリ管理装置。
【請求項3】
前記予測データは、前記プログラムを実行させたときの前記主記憶装置の内容に基づいて予測されたデータである
請求項2に記載のメモリ管理装置。
【請求項4】
前記予測データは、前記プログラムを実行させたときに前記主記憶装置に出現したデータから、出現した頻度および期間のうち少なくとも一方に基づいて抽出されたデータである
請求項3に記載のメモリ管理装置。
【請求項5】
前記予測データは、所定のサイズのブロック単位で前記補助記憶装置に格納され、
前記メモリ管理部は、前記プログラムからの要求に対して、前記ブロック単位で前記主記憶装置の領域を確保する
請求項2に記載のメモリ管理装置。
【請求項6】
前記予測データは、圧縮された状態で前記補助記憶装置に格納される
請求項2に記載のメモリ管理装置。
【請求項7】
前記プログラムの実行中に、前記主記憶装置の内容に基づいて前記予測データを生成し、前記補助記憶装置に格納する予測データ生成部を
さらに備える請求項2に記載のメモリ管理装置。
【請求項8】
前記メモリ管理部は、前記補助記憶装置のデータを書き換える場合、当該データを前記主記憶装置にコピーし、前記主記憶装置にコピーしたデータを書き換えるように制御する
請求項1に記載のメモリ管理装置。
【請求項9】
所定のプログラムの実行中に、補助記憶装置のデータと合致する主記憶装置のデータを破棄し、破棄したデータを前記補助記憶装置から読み出すように制御する
ステップを含むメモリ管理方法。
【請求項10】
所定のプログラムの実行中に、補助記憶装置のデータと合致する主記憶装置のデータを破棄し、破棄したデータを前記補助記憶装置から読み出すように制御する
ステップを含む処理をコンピュータに実行させるための制御プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate


【公開番号】特開2012−221333(P2012−221333A)
【公開日】平成24年11月12日(2012.11.12)
【国際特許分類】
【出願番号】特願2011−87945(P2011−87945)
【出願日】平成23年4月12日(2011.4.12)
【出願人】(000002185)ソニー株式会社 (34,172)
【Fターム(参考)】