(57)【要約】【課題】仮想メモリに対する物理メモリを効率的に使用し、処理の高速化を図ることができるメモリ管理装置を提供すること。【解決手段】仮想メモリＶに対する物理メモリ３の割り当て制御を行うメモリ管理装置１であって、仮想メモリＶに保持する値が、少なくとも１以上の値からなる代表値が連続する規則的な配列であるか否かを判断する判断手段４と、判断手段４により仮想メモリＶに保持する値が規則的な配列であると判断された場合に、仮想メモリＶ上の代表値にのみ物理メモリ３を割り当てる割当手段５と、を備えた。【選択図】図１
2008112332.tif 000002
【特許請求の範囲】
【請求項１】
仮想メモリに対する物理メモリの割り当て制御を行うメモリ管理装置であって、
前記仮想メモリに保持する値が、少なくとも１以上の値からなる代表値が連続する規則的な配列であるか否かを判断する判断手段と、
この判断手段により前記仮想メモリに保持する値が規則的な配列であると判断された場合に、当該仮想メモリ上の前記代表値にのみ前記物理メモリを割り当てる割当手段と、を備えた、
ことを特徴とするメモリ管理装置。
【請求項２】
前記メモリ管理装置は、前記仮想メモリに保持する値のいずれかが参照された時に、前記割当手段により割り当てられた前記物理メモリの前記代表値を使用する読出手段を備えた、ことを特徴とする請求項１記載のメモリ管理装置。
【請求項３】
前記判断手段は、前記仮想メモリに対する書き込み時に、当該仮想メモリに保持する値が規則的な配列であるか否かを判断する、ことを特徴とする請求項１又は２記載のメモリ管理装置。
【請求項４】
前記割当手段は、前記判断手段により前記仮想メモリに保持する値が規則的な配列でないと判断された場合に、当該仮想メモリに保持する値の全てに前記物理メモリを割り当てる、ことを特徴とする請求項３記載のメモリ管理装置。
【請求項５】
前記割当手段は、前記代表値が１つの値である場合に、当該代表値である１つの値にのみ前記物理メモリを割り当てる、ことを特徴とする請求項１，２，３又は４記載のメモリ管理装置。
【請求項６】
前記割当手段は、前記代表値が２以上の値である場合に、当該代表値である２以上の値に前記物理メモリを割り当てる、ことを特徴とする請求項１，２，３又は４記載のメモリ管理装置。
【請求項７】
請求項１乃至６記載のメモリ管理装置を備えた、ことを特徴とする情報処理装置。
【請求項８】
請求項１乃至６記載のメモリ管理装置を備えた、ことを特徴とする携帯電話機。
【請求項９】
制御装置にて、仮想メモリに対する物理メモリの割り当て制御を行うメモリ管理方法であって、
前記仮想メモリに保持する値が、少なくとも１以上の値からなる代表値が連続する規則的な配列であるか否かを判断する判断工程と、
この判断工程により前記仮想メモリに保持する値が規則的な配列であると判断された場合に、当該仮想メモリ上の前記代表値にのみ前記物理メモリを割り当てる割当工程と、
を有することを特徴とするメモリ管理方法。
【請求項１０】
前記割当工程の後に、前記仮想メモリに保持する値のいずれかが参照された時に、前記割当工程により割り当てられた前記物理メモリの前記代表値を使用する読出工程を有する、ことを特徴とする請求項９記載のメモリ管理方法。
【請求項１１】
前記判断工程は、前記仮想メモリに対する書き込み時に、当該仮想メモリに保持する値が規則的な配列であるか否かを判断する、ことを特徴とする請求項９又は１０記載のメモリ管理方法。
【請求項１２】
前記判断工程と前記割当工程とを繰り返し、所定の前記割当工程は、直前の前記判断工程により前記仮想メモリに保持する値が規則的な配列ではないと判断された場合に、当該仮想メモリに保持する値の全てに前記物理メモリを割り当てる、ことを特徴とする請求項１１記載のメモリ管理方法。
【請求項１３】
前記割当工程は、前記代表値が１つの値である場合に、当該代表値である１つの値にのみ前記物理メモリを割り当てる、ことを特徴とする請求項９，１０，１１又は１２記載のメモリ管理方法。
【請求項１４】
前記割当工程は、前記代表値が２以上の値である場合に、当該代表値である２以上の値に前記物理メモリを割り当てる、ことを特徴とする請求項９，１０，１１又は１２記載のメモリ管理装置。
【請求項１５】
仮想メモリに対する物理メモリの割り当て制御を行う制御装置に、
前記仮想メモリに保持する値が、少なくとも１以上の値からなる代表値が連続する規則的な配列であるか否かを判断する判断手段と、
この判断手段により前記仮想メモリに保持する値が規則的な配列であると判断された場合に、当該仮想メモリ上の前記代表値にのみ前記物理メモリを割り当てる割当手段と、
を実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリ管理装置にかかり、特に、仮想メモリ制御機能を備えたメモリ管理装置に関する。
【背景技術】
【０００２】
従来より、仮想メモリ制御機能を備えるメモリ管理装置において、オペレーティングシステム上でソフトウェアを動作させる際に、ソフトウェアが動的に仮想メモリ確保を実施し、このメモリ領域にアクセスした場合には、仮想メモリに同サイズ（容量）の物理メモリが割り当てられていた。
【０００３】
【特許文献１】特開２０００−２８５０１９号公報
【特許文献２】特許第２６３６４８４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、アクセスの種類によっては、物理メモリを割り当てる必要がない場合があり、このような場合に、仮想メモリと同サイズの物理メモリを割り当ててしまうと、物理メモリの使用量の増加により使用効率が低下し、物理メモリの更なる効率化を図ることができない、という問題が生じる。
【０００５】
また、キャッシュメモリを制御する制御回路の構成としては、特許文献１に示すような構成がある。この特許文献１に示す制御回路は、キャッシュデータを登録するキャッシュデータ部と、キャッシュデータ部に登録されているアドレス情報を登録するアドレスキャッシュ部と、キャッシュ書き込みデータのチェックを行い、この書き込みデータの全てが「０」もしくは「１」といった固定データであるか否かの判定を行うデータチェック部と、を備え、キャッシュの書き込み及び読み出し時間の短縮を図っている。
【０００６】
具体的には、キャッシュへの書き込み時に、データチェック部が、キャッシュ書き込みデータのチェックを行い、このデータが固定データであった場合には、データキャッシュ部へのデータ登録を行わず、アドレスキャッシュ部に、データを圧縮した固定データフラグの登録を行う。また、キャッシュからの読み出し時には、アドレスキャッシュ部に登録されている固定データフラグから、圧縮前のデータに伸張したデータを、キャッシュ読み出しデータとして転送する。
【０００７】
しかしながら、特許文献１に示した制御回路は、キャッシュの書き込み及び読み出し時間の短縮を図るものであるため、オペレーティングシステム上でソフトウェアを動作させる際にソフトウェアが動的に仮想メモリ確保を実施し、このメモリ領域にアクセスする場合には、依然として、仮想メモリと同サイズの物理メモリが割り当てられてしまう。したがって、物理メモリの効率化を図ることができず、処理の更なる高速化を図ることができない、という問題が生じる。
【０００８】
また、実メモリを再使用し易い状態で管理することができる構成としては、特許文献２に示すような構成がある。この特許文献２では、不要なバッファプールに対して、実メモリを再使用し易い状態で管理し、必要なときに、実メモリが固定状態のバッファを獲得できるよう、実メモリ割当装置と、実メモリ棄却装置と、バッファプール管理装置と、が設けられている。
【０００９】
具体的には、実メモリ棄却装置が、ユーザプログラムから返却され不要となったバッファに対して、参照／更新ビットをオフにする。そして、ユーザプログラムからのバッファ獲得要求があり、この獲得要求に応じて、バッファプール管理装置がバッファをプールから切り出す。このとき、切り出したバッファに実メモリが割り当てられていない場合には、実メモリ割当装置に実メモリの割当要求を送出する。そして、この割当要求を受けた実メモリ割当装置は、自己の管理している空き状態の実メモリを割り当てるが、自己の確保している空き状態の実メモリが無くなった時には、仮想メモリに割り当てられている（参照／更新ビットがオフとなっている）実メモリを奪ってバッファプール管理装置に渡す。すると、バッファプール管理装置が、実メモリを要求のあった論理アドレス空間に割り当て、ページテーブル上の該当エントリのバリッドビットをオンとするように動作する。
【００１０】
しかしながら、特許文献２に示した構成は、実メモリを再使用し易い状態で管理するものであり、オペレーティングシステム上でソフトウェアを動作させる際にソフトウェアが動的に仮想メモリ確保を実施し、このメモリ領域にアクセスする場合には、依然として、仮想メモリと同サイズの物理メモリが割り当てられてしまう。したがって、物理メモリの効率化を図ることができず、処理の更なる高速化を図ることができない、という問題が生じる。
【００１１】
このため、本発明では、上記従来例の有する不都合を改善し、特に、仮想メモリに対する物理メモリを効率的に使用し、処理の高速化を図ることができるメモリ管理装置を提供すること、をその目的とする。
【課題を解決するための手段】
【００１２】
そこで、本発明の一形態であるメモリ管理装置は、仮想メモリに対する物理メモリの割り当て制御を行うメモリ管理装置であって、仮想メモリに保持する値が、少なくとも１以上の値からなる代表値が連続する規則的な配列であるか否かを判断する判断手段と、判断手段により仮想メモリに保持する値が規則的な配列であると判断された場合に、仮想メモリ上の代表値にのみ物理メモリを割り当てる割当手段と、を備えた、ことを特徴としている。また、メモリ管理装置は、仮想メモリに保持する値のいずれかが参照された時に、割当手段により割り当てられた物理メモリの代表値を使用する読出手段を備えた、ことを特徴としている。
【００１３】
かかる構成によると、まず、仮想メモリが複数の値を保持している場合に、判断手段により、仮想メモリに保持する値が規則的な配列であるか否かの判断が行われる。そして、仮想メモリに保持する値が規則的な配列である場合には、割当手段により、仮想メモリ上の代表値にのみ物理メモリが割り当てられる。そして、仮想メモリに保持する値のいずれかが参照された時に、割当手段により割り当てられた物理メモリの代表値を使用することで、仮想メモリと同サイズの値を読み出すことができる。これにより、仮想メモリと同サイズ（容量）の物理メモリを割り当てることなく、仮想メモリに保持する値を全て物理メモリに格納することができる。したがって、物理メモリの使用量の減少を図り、物理メモリを効率的に使用して、処理の高速化を図ることができる。
【００１４】
そして、判断手段は、仮想メモリに対する書き込み時に、仮想メモリに保持する値が規則的な配列であるか否かを判断する、ことを特徴としている。
【００１５】
かかる構成によると、仮想メモリを確保した時点では物理メモリは割り当てられず、仮想メモリに対する書き込み時に初めて仮想メモリ上の代表値に物理メモリが割り当てられる。これにより、仮想メモリに対して書き込みが必要となるまで物理メモリの確保を抑制することができると共に、書き込みが必要となったときには、物理メモリの使用量の減少を図り、物理メモリを効率的に使用することができる。
【００１６】
また、割当手段は、判断手段により仮想メモリに保持する値が規則的な配列でないと判断された場合に、仮想メモリに保持する値の全てに物理メモリを割り当てる、ことを特徴としている。
【００１７】
かかる構成によると、仮想メモリに保持する値が規則的な配列でない場合には、仮想メモリに保持する値の全てに物理メモリが割り当てられる。したがって、例えば、仮想メモリ上の代表値にのみ物理メモリが割り当てられた後に、仮想メモリに保持する値が更新され、仮想メモリに保持する値が規則的な配列でなくなった場合に、仮想メモリと同サイズの物理メモリが割り当てられる。これにより、仮想メモリに保持する値が更新され規則的な配列でないものとなっても、仮想メモリに物理メモリを割り当てることができる。
【００１８】
そして、割当手段は、代表値が１つの値である場合に、代表値である１つの値にのみ物理メモリを割り当てる、ことを特徴としている。
【００１９】
これにより、判断手段によって仮想メモリに保持する値が規則的な配列であると判断され、この仮想メモリに保持する値が全て同じ値からなり、代表値が１つの値である場合に、代表値である１つの値にのみ物理メモリが割り当てられるため、仮想メモリに対して物理メモリの使用量を減少させることができる。したがって、物理メモリを効率的に使用し、処理の高速化を図ることができる。
【００２０】
また、割当手段は、代表値が２以上の値である場合に、代表値である２以上の値に物理メモリを割り当てる、ことを特徴としている。
【００２１】
これにより、判断手段によって仮想メモリに保持する値が規則的な配列であると判断され、この仮想メモリに保持する値が、２以上の値からなる代表値を連続するものである場合に、割当手段が、２以上からなる代表値に物理メモリを割り当てる。したがって、仮想メモリに対して物理メモリの使用量を減少させることができる。さらに、物理メモリを効率的に使用し、処理の高速化を図ることができる。
【００２２】
さらに、本発明は、上述したメモリ管理装置を備えた情報処理装置である、ことを特徴としている。
【００２３】
これにより、情報処理装置の物理メモリの使用量を少なくすることができるため、情報処理装置における物理メモリを効率的に使用し、処理の高速化を図ることができる情報処理装置を提供することができる。
【００２４】
また、本発明は、上述したメモリ管理装置を備えた携帯電話機である、ことを特徴としている。
【００２５】
これにより、携帯電話機の物理メモリの使用量を少なくすることができるため、実装メモリの少ない携帯電話機における物理メモリを効率的に使用し、処理の高速化を図ることができる携帯電話機を提供することができる。
【００２６】
さらに、本発明の他の形態であるメモリ管理方法は、制御装置にて、仮想メモリに対する物理メモリの割り当て制御を行うメモリ管理方法であって、仮想メモリに保持する値が、少なくとも１以上の値からなる代表値が連続する規則的な配列であるか否かを判断する判断工程と、判断工程により仮想メモリに保持する値が規則的な配列であると判断された場合に、仮想メモリ上の代表値にのみ物理メモリを割り当てる割当工程と、を有することを特徴としている。
【００２７】
また、割当工程の後に、仮想メモリに保持する値のいずれかが参照された時に、割当工程により割り当てられた物理メモリの代表値を使用する読出工程を有する、ことを特徴としている。
【００２８】
そして、判断工程は、仮想メモリに対する書き込み時に、仮想メモリに保持する値が規則的な配列であるか否かを判断する、ことを特徴としている。また、判断工程と割当工程とを繰り返し、所定の割当工程は、直前の判断工程により仮想メモリに保持する値が規則的な配列ではないと判断された場合に、仮想メモリに保持する値の全てに物理メモリを割り当てる、ことを特徴としている。
【００２９】
さらに、割当工程は、代表値が１つの値である場合に、代表値である１つの値にのみ物理メモリを割り当てる、ことを特徴としている。そして、割当工程は、代表値が２以上の値である場合に、代表値である２以上の値に物理メモリを割り当てる、ことを特徴としている。
【００３０】
さらに、本発明の他の形態であるプログラムは、仮想メモリに対する物理メモリの割り当て制御を行う制御装置に、仮想メモリに保持する値が、少なくとも１以上の値からなる代表値が連続する規則的な配列であるか否かを判断する判断手段と、判断手段により仮想メモリに保持する値が規則的な配列であると判断された場合に、仮想メモリ上の代表値にのみ物理メモリを割り当てる割当手段と、を実現させることを特徴としている。
【００３１】
なお、上記構成の方法及びプログラムであっても、上述したメモリ管理装置と同様に作用するため、上記本発明の目的を達成することができる。
【発明の効果】
【００３２】
本発明は、以上のように構成され機能するので、これによると、仮想メモリに対して物理メモリの使用量を減少させることができ、物理メモリを効率的に使用して、処理の高速化を図ることができる、という従来にない優れた効果を有する。
【発明を実施するための最良の形態】
【００３３】
本発明であるメモリ管理装置は、仮想メモリに保持する値が、少なくとも１以上の値からなる代表値が連続する規則的な配列である場合に、仮想メモリ上の代表値にのみ物理メモリを割り当てる、ことに特徴を有する。以下、具体的な構成及び作用を、実施例を参照して説明する。
【実施例１】
【００３４】
本発明の第１の実施例を、図１乃至図７を参照して説明する。図１は、本実施例におけるメモリ管理装置の構成を示すブロック図である。図２乃至図３は、本実施例における仮想メモリ及び物理メモリの関係を説明する説明図である。図４乃至図７は、メモリ管理装置の動作を示すフローチャートである。
【００３５】
［構成］
本発明におけるメモリ管理装置は、例えば、携帯電話１に実装されている。そして、この携帯電話１は、内部にＣＰＵ２と、物理メモリ３と、を備えている。
【００３６】
物理メモリ３は、例えば、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）であり、後述するＣＰＵ２によりデータが直接読み書きされる。そして、物理メモリ３は、後述するように、ソフトウェアにより確保された仮想メモリＶに保持する値に応じて、物理メモリ制御処理部５により判定フラグＰ、代表値Ｐ、空き領域Ｐ及び値Ｐ１乃至値ＰＮの領域が確保される。
【００３７】
仮想メモリＶは、ハードディスク（図示せず）などを物理メモリ３の代用として利用するＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）の機能により仮想的に確保されるメモリ領域である。この仮想メモリＶは、ソフトウェアによりＮ個の値が確保されたとき、図２乃至図３に示すように、後述する判定フラグＶ及び値Ｖ１乃至値ＶＮの領域が確保される。
【００３８】
ＣＰＵ２（制御装置）は、データの演算や転送などの処理を実行し、その処理結果をレジスタ（図示せず）や物理メモリ３に保持するものであり、携帯電話１の内部に備えられている。そして、プログラムが組み込まれることによって、要素判断処理部４と、物理メモリ制御処理部５と、が構築されている。
【００３９】
要素判断処理部４（判断手段）は、仮想メモリＶに対する書き込み時に、仮想メモリＶに保持する値が、一定の規則性を持った値（規則的な配列）であるか否かを判断するものである。本実施例では、仮想メモリＶに保持する値が、全て同じ値である場合（例えば、０００…）に、一定の規則性を持った値であると判断されるものとする。そして、要素判断処理部４による判断結果が後述する物理メモリ制御処理部５に送られる。また、仮想メモリＶに保持する値が、ソフトウェアにより更新された場合にも、更新された値が、全て同じ値であるか否かの判断がされる。これにより、仮想メモリＶに対して書き込みが必要となるまで物理メモリ３の確保を抑制することができると共に、書き込みが必要となったときには、物理メモリ３の使用量を減少させることで、物理メモリ３を効率的に使用して、処理の高速化を図ることができる。
【００４０】
物理メモリ制御処理部５（割当手段、読出手段）は、要素判断処理部４から送られる判断結果に基づいて、後述するように、判定フラグＶ及び判定フラグＰに、「有効」又は「無効」の設定を行い、さらに、値Ｖ１乃至値ＶＮに対して、代表値Ｐ又は値Ｐ１乃至値ＰＮの領域を割り当てるものである。例えば、要素判断処理部４により、仮想メモリＶに保持する値が、全て同じ値であると判断された場合に、判定フラグＶ及び判定フラグＰを「有効」に設定し、仮想メモリＶが保持する値の代表値にのみ、代表値Ｐの領域を割り当てる。具体的には、仮想メモリＶに保持する値が、０００…である場合には、代表値である１つの値の「０」にのみ、代表値Ｐの領域を割り当てる。また、この物理メモリ制御処理部５は、ソフトウェアにより、仮想メモリＶ上の値Ｖ１乃至値ＶＮのいずれかが参照された場合には、物理メモリ３の代表値Ｐの値を読み出す。
【００４１】
判定フラグＶは、ソフトウェアによりＮ個の値が確保されたときに、仮想メモリＶ上に確保される領域であって、後述する判定フラグＰと同サイズのメモリ空間である。そして、物理メモリ制御処理部５により、「有効」又は「無効」のいずれかの値が設定される。具体的には、要素判断処理部４によって、仮想メモリＶに保持する値が、全て同じ値であると判断された場合には、判定フラグＶが「有効」に設定され、全て同じ値ではないと判断された場合には、判定フラグＶが「無効」に設定される。
【００４２】
判定フラグＰは、物理メモリ制御処理部５により物理メモリ３に確保される領域であり、判定フラグＶに割り当てるものである。そして、判定フラグＶと同様、物理メモリ制御処理部５によって「有効」又は「無効」のいずれかの値が設定される。
【００４３】
値Ｖ１乃至値ＶＮは、仮想メモリＶ上の領域である。そして、ＯＳ上で動作するソフトウェアが、Ｎ個の値を仮想メモリＶ上に確保したときに、図２乃至図３に示すように値Ｖ１乃至値ＶＮの領域が確保され、仮想メモリＶ上に確保したＮ個の値が、値Ｖ１乃至値ＶＮに設定される。
【００４４】
値Ｐ１乃至値ＰＮは、図３に示すように、物理メモリ３の領域であり、値Ｖ１乃至値ＶＮに対して割り当てるものである。そして、この値Ｐ１乃至値ＰＮは、ＯＳ上で動作するソフトウェアが、全て同じ値ではないＮ個の値を、仮想メモリＶ上に確保したときに、物理メモリ制御処理部５により物理メモリ３に確保される。また、ソフトウェアにより仮想メモリＶに保持する値が更新され、全て同じ値ではなくなった場合にも、メモリ制御処理部５によって、値Ｐ１乃至値ＰＮの領域が確保される。
【００４５】
代表値Ｐは、図２に示すように、物理メモリ３の領域であり、仮想メモリＶに保持する値の代表値に対して割り当てるものである。ここで、代表値は、仮想メモリＶ上に確保した値が全て同じ値である場合の、１の値である。例えば、仮想メモリＶ上に確保した値が、０００…、である場合の「０」が代表値である。
【００４６】
空き領域Ｐは、物理メモリ３上で、仮想メモリＶに対して割り当てられていない領域である。
【００４７】
［動作］
次に、上記構成の携帯電話１の動作を、図４を参照して説明する。まず、仮想メモリ制御機能を備えた携帯電話１上で、ソフトウェアが起動され（ステップＳ１）、このソフトウェアが、Ｎ個の値を仮想メモリＶ上に確保する（ステップＳ２）。すると、図２に示すように、仮想メモリＶに、判定フラグＶ及び値Ｖ１乃至値ＶＮの領域が確保される。そして、仮想メモリＶに対する書き込みが発生したとき、この書き込み発生の情報を受けた要素判断処理部４によって、仮想メモリＶに保持する値が全て同じ値（規則的な配列）であるか否かの判断が行われ（判断工程）、この判断結果が物理メモリ制御処理部５に送られる。
【００４８】
このとき、仮想メモリＶに保持する値が、全て同じ値であると判断された場合には（ステップＳ３にて肯定判断）、物理メモリ制御処理部５により、判定フラグＶが「有効」に設定されると共に（ステップＳ４）、値Ｖ１乃至値ＶＮに同じ値が設定される。そして、判断結果を受けた物理メモリ制御処理部５は、図２に示すように、物理メモリ３に、判定フラグＰ、代表値Ｐの領域を確保する。さらに、物理メモリ制御処理部５は、判定フラグＶに対して、判定フラグＰの領域を割り当て、仮想メモリＶ上の代表値である値Ｖ１に対して、物理メモリ３の代表値Ｐの領域を割り当てる（ステップＳ５、割当工程）。ここで、判定フラグＶ及び判定フラグＰが「有効」のときは、仮想メモリＶ上の値Ｖ２乃至値ＶＮに対して、物理メモリ３を割り当てられることはない。したがって、仮想メモリＶに対する物理メモリ３の使用量を、空き領域Ｐの分だけ減少させることができるため、物理メモリ３を効率的に使用することができる。
【００４９】
ここで、要素判断処理部４により、仮想メモリＶに確保された値が、全て同じ値でないと判断された場合には（ステップＳ３にて否定判断、判断工程）、物理メモリ制御処理部５により、判定フラグＶが「無効」に設定され（ステップＳ６）、仮想メモリＶ上の値Ｖ１乃至値ＶＮにそれぞれ値が設定される。そして、物理メモリ制御処理部５は、図３に示すように、物理メモリ３に、判定フラグＰ及び値Ｐ１乃至値ＰＮの領域を確保する。さらに、物理メモリ制御処理部５は、判定フラグＶに対して判定フラグＰの領域を割り当てると共に、仮想メモリＶ上の値Ｖ１乃至値ＶＮに対して、物理メモリ３の値Ｐ１乃至値ＰＮの領域を割り当てる（ステップＳ７、割当工程）。
【００５０】
次に、仮想メモリＶ上の代表値である値Ｖ１に対して、代表値Ｐの領域が割り当てられた後に、ソフトウェアにより仮想メモリＶに保持する値が更新された場合の動作を、図５を参照して説明する。なお、ソフトウェアによる更新がなされる前は、仮想メモリＶに保持する値が全て同じ値であるため、判定フラグＶ及び判定フラグＰは、共に「有効」に設定されているものとする。
【００５１】
まず、ソフトウェアによって、仮想メモリＶに保持する値、具体的には、仮想メモリＶ上の値Ｖ１乃至値ＶＮに設定された値が更新される（ステップＳ１１）。すると、要素判断処理部４により、更新された値が、全て同じ値であるか否かが判断される（判断工程）。そして、この更新された値が、全て同じ値ではないと判断されると（ステップＳ１２にて否定判断）、この判断結果を受けた物理メモリ制御処理部５により、判定フラグＶ及び判定フラグＰが「無効」に設定変更される（ステップＳ１３）。さらに、更新された値が、仮想メモリＶ上の値Ｖ１乃至値ＶＮに設定されると共に、図３に示すように、この設定された値Ｖ１乃至値ＶＮに対して、物理メモリ制御処理部５は、物理メモリ３の値Ｐ１乃至値ＰＮ割り当てる（ステップＳ１４、割当工程）。
【００５２】
ここで、仮想メモリＶ上の値Ｖ１乃至値ＶＮに設定された値が更新され、更新される前の値と別の値となったものの、更新後の値もまた、全て同じ値である場合（例えば、０００…が更新されて１１１…となった場合）には（ステップＳ１２にて肯定判断、判断工程）、物理メモリ制御処理部５は、仮想メモリＶ上の代表値である値Ｖ１に対して、物理メモリ３の代表値Ｐの領域を割り当てる（ステップＳ１５、割当工程）。
【００５３】
続いて、仮想メモリＶ上の全ての値（値Ｖ１乃至値ＶＮ）に対して、物理メモリ３（値Ｐ１乃至値ＰＮ）が割り当てられた後に、ソフトウェアによって仮想メモリＶが保持する値が更新され、全て同じ値となった場合の動作を、図６を参照して説明する。なお、ソフトウェアによる更新がなされる前は、仮想メモリＶに保持する値が全て同じ値ではないため、判定フラグＶ及び判定フラグＰは、共に「無効」に設定されているものとする。
【００５４】
まず、ソフトウェアによって、仮想メモリＶに保持する値、具体的には、仮想メモリＶ上の値Ｖ１乃至値ＶＮに設定された値が更新される（ステップＳ２１）。すると、要素判断処理部４により、更新された値が全て同じ値であるか否かが判断される（判断工程）。そして、更新された値が全て同じ値であると判断されると（ステップＳ２２にて肯定判断）、この判断結果を受けた物理メモリ制御処理部５により、判定フラグＶ及び判定フラグＰが「有効」に設定変更される（ステップＳ２３）。そして、仮想メモリＶ上の値Ｖ１乃至値ＶＮに同じ値が設定される。すると、物理メモリ制御処理部５は、仮想メモリＶ上の値Ｖ１乃至値ＶＮに対して割り当てた物理メモリ３の値Ｐ１乃至値ＰＮを開放すると共に（ステップＳ２４）、仮想メモリＶ上の代表値である値Ｖ１に対して、物理メモリ３の代表値Ｐの領域を割り当てる（ステップＳ２５、割当工程）。
【００５５】
ここで、仮想メモリＶ上の値Ｖ１乃至値ＶＮに設定された値が更新されたものの、更新後の値が全て同じ値ではない場合には（ステップＳ２２にて否定判断、判断工程）、設定変更された全ての値に対して、物理メモリ３の値Ｐ１乃至値ＰＮを割り当てる（ステップＳ２６、割当工程）。
【００５６】
続いて、仮想メモリＶ上の代表値である値Ｖ１に対して、物理メモリ３の代表値Ｐの領域が割り当てられた場合において（割当工程）、ソフトウェアにより、仮想メモリＶ上の値Ｖ１乃至値ＶＮのいずれかが参照された場合の動作を、図８を参照して説明する。まず、ソフトウェアにより、仮想メモリＶ上の値Ｖ１乃至値ＶＮのいずれかの値が参照される（ステップＳ３１）。すると、物理メモリ制御処理部５は、物理メモリ３の代表値Ｐの値を読み出す（ステップＳ３２、読出工程）。
【００５７】
これにより、仮想メモリＶに保持する値が、一定の規則性を持った値（規則的な配列）である場合に、物理メモリ３の使用量の減少を図り、物理メモリ３を効率的に使用して、処理の高速化を図ることができる。また、仮想メモリＶに保持する値が更新され、一定の規則性を持った値でないものとなっても、仮想メモリＶに物理メモリ３を割り当てることができる。
【００５８】
さらに、アクセス対象である物理メモリ３の使用量が少ないため、仮想メモリＶを確保して初期値設定する際などには、高速な初期化が可能となる。また、例えば、メモリの初期化漏れによるソフトウェア動作不正を防止するために、仮想メモリＶ確保時に初期値設定するプログラミング手法などでは、初期値設定時点における物理メモリ３確保を、必要最小限に抑えることができるため、物理メモリ３の使用量を抑えながら、ソフトウェアによる処理の高速化を図ることができる。
【００５９】
なお、本実施例では、仮想メモリＶに保持する値が、全て同じ値である場合（例えば、０００…）に、一定の規則性を持った値であると判断されるものとしたが、これは一例であって、全て同じ値である場合に限られない。一定の規則性を持った値が、２つの値からなる代表値を連続する値である場合を、実施例２で説明するものとする。
【００６０】
また、本実施例では、メモリ管理装置が実装される電子機器が、携帯電話１である場合を説明したが、他の電子機器であってもよい。
【実施例２】
【００６１】
次に、本発明の第２の実施例を、図４乃至図９を参照して説明する。図４乃至図７は、メモリ管理装置の動作を示すフローチャートである。図８は、本実施例におけるメモリ管理装置の構成を示すブロック図である。図９は、仮想メモリ及び物理メモリの関係を説明する説明図である。本実施例では、上述した実施例１とほぼ同様の構成を採っているが、メモリ管理装置がパーソナルコンピュータに実装されていること、及び、一定の規則性を持った値（規則的な配列）が、２つの値からなる代表値を連続するものである点で異なる。以下、図４乃至図９を参照して、実施例１と異なる構成について詳述する。
【００６２】
本発明におけるメモリ管理装置は、例えば、パーソナルコンピュータ６に実装されている。そして、このパーソナルコンピュータ６は、内部にＣＰＵ２と、物理メモリ３と、を備えている。
【００６３】
要素判断処理部４（判断手段）は、仮想メモリＶに対する書き込み時に、仮想メモリＶに保持する値が一定の規則性を持った値（規則的な配列）であるか否かを判断するものである。本実施例では、仮想メモリＶに保持する値が、２つの値からなる代表値が連続する値である場合（例えば、０１０１０１…）に、一定の規則性を持った値であると判断される。そして、要素判断処理部４による判断結果が後述する物理メモリ制御処理部５に送られる。また、仮想メモリＶに保持する値が、ソフトウェアにより更新された場合にも、更新された値が、２つの値からなる代表値が連続する値であるか否かの判断がされる。
【００６４】
物理メモリ制御処理部５（割当手段、読出手段）は、要素判断処理部４から送られる判断結果に基づいて、判定フラグＶ及び判定フラグＰに、「有効」又は「無効」の設定を行うと共に、値Ｖ１乃至値ＶＮに対して、代表値Ｐ又は値Ｐ１乃至値ＰＮの領域を割り当てるものである。例えば、要素判断処理部４により、仮想メモリＶに保持する値が、２つの値からなる代表値が連続する値であると判断された場合には、判定フラグＶ及び判定フラグＰを「有効」に設定すると共に、仮想メモリＶが保持する値の代表値にのみ、物理メモリ３を割り当てる。具体的には、仮想メモリＶに保持する値が、０１０１０１…である場合には、代表値である２つの値、「０１」、に物理メモリ３の代表値Ｐの領域を割り当てる。また、この物理メモリ制御処理部５は、ソフトウェアにより、仮想メモリＶ上の値Ｖ１乃至値ＶＮのいずれかが参照された場合には、物理メモリ３の代表値Ｐの値を読み出す。
【００６５】
代表値Ｐは、図９に示すように、物理メモリ３の領域であり、仮想メモリＶに保持する値の代表値に対して割り当てるものである。ここで、代表値は、仮想メモリＶ上に確保した値が、２つの値からなる代表値が連続する値である場合の、２つの値である。例えば、仮想メモリＶ上に確保した値が、０１０１０１…、である場合の「０１」、が代表値である。
【００６６】
次に、上記構成のパーソナルコンピュータ６の動作を、図４を参照して説明する。まず、仮想メモリ制御機能を備えたパーソナルコンピュータ６上で、ソフトウェアが起動され（ステップＳ１）、このソフトウェアが、Ｎ個の値を仮想メモリＶ上に確保する（ステップＳ２）。すると、図９に示すように、仮想メモリＶに判定フラグＶ及び値Ｖ１乃至値ＶＮの領域が確保される。そして、仮想メモリＶに対する書き込みが発生したとき、この書き込み発生の情報を受けた要素判断処理部４は、仮想メモリＶに保持する値が、２つの値からなる代表値が連続する値（規則的な配列）であるか否かの判断を行い（判断工程）、この判断結果を物理メモリ制御処理部５に送る。
【００６７】
このとき、仮想メモリＶに保持する値が、２つの値からなる代表値が連続する値であると判断された場合には（ステップＳ３にて肯定判断）、物理メモリ制御処理部５により、判定フラグＶが「有効」に設定されると共に（ステップＳ４）、仮想メモリＶ上の値Ｖ１乃至値ＶＮに、それぞれ値が設定される。そして、物理メモリ制御処理部５は、図９に示すように、物理メモリ３に、判定フラグＰ、代表値Ｐの領域を確保する。さらに、物理メモリ制御処理部５は、判定フラグＶに対して判定フラグＰの領域を割り当て、仮想メモリＶ上の代表値である値Ｖ１及び値Ｖ２に対して、物理メモリ３の代表値Ｐの領域を割り当てる（ステップＳ５、割当工程）。ここで、判定フラグＶ及び判定フラグＰが「有効」のときは、仮想メモリＶ上の値Ｖ３乃至値ＶＮに対して、物理メモリ３を割り当てられることはない。したがって、仮想メモリＶに対する物理メモリ３の使用量を、空き領域Ｐの分だけ減少させることができるため、物理メモリ３を効率的に使用することができる。
【００６８】
ここで、要素判断処理部４により、仮想メモリＶに確保された値が、２つの値からなる代表値が連続する値でないと判断された場合には（ステップＳ３にて否定判断、判断工程）、物理メモリ制御処理部５により、判定フラグＶが「無効」に設定され（ステップＳ６）、仮想メモリＶ上の値Ｖ１乃至値ＶＮにそれぞれ値が設定される。そして、物理メモリ制御処理部５は、図３に示すように、物理メモリ３に、判定フラグＰ及び値Ｐ１乃至値ＰＮの領域を確保する。さらに、物理メモリ制御処理部５は、判定フラグＶに対して判定フラグＰの領域を割り当てると共に、仮想メモリＶ上の値Ｖ１乃至値ＶＮに対して、物理メモリ３の値Ｐ１乃至値ＰＮの領域を割り当てる（ステップＳ７、割当工程）。
【００６９】
次に、仮想メモリＶ上の代表値である値Ｖ１及び値Ｖ２に対して、物理メモリ３の代表値Ｐの領域が割り当てられた後に、ソフトウェアによって仮想メモリＶに保持する値が更新された場合の動作を、図５を参照して説明する。なお、ソフトウェアによる更新がなされる前は、仮想メモリＶに保持する値が、２つの値からなる代表値が連続する値であるため、判定フラグＶ及び判定フラグＰは、共に「有効」に設定されているものとする。
【００７０】
まず、ソフトウェアによって、仮想メモリＶに保持する値、具体的には、仮想メモリＶ上の値Ｖ１乃至値ＶＮに設定された値が更新される（ステップＳ１１）。すると、要素判断処理部４により、更新された値が、２つの値からなる代表値が連続する値であるか否かが判断される（判断工程）。そして、この更新された値が、２つの値からなる代表値が連続する値ではないと判断されると（ステップＳ１２にて否定判断）、この判断結果を受けた物理メモリ制御処理部５により、判定フラグＶ及び判定フラグＰが「無効」に設定変更される（ステップＳ１３）。さらに、更新された値が、仮想メモリＶ上の値Ｖ１乃至値ＶＮに設定されると共に、図３に示すように、この設定された値Ｖ１乃至値ＶＮに対して、物理メモリ制御処理部５は、物理メモリ３の値Ｐ１乃至値ＰＮ割り当てる（ステップＳ１４、割当工程）。
【００７１】
ここで、仮想メモリＶ上の値Ｖ１乃至値ＶＮに設定された値が更新され、更新される前の値と別の値となったものの、更新後の値もまた、２つの値からなる代表値が連続する値である場合（例えば、０１０１０１…が更新されて１０１０１０…となった場合）には（ステップＳ１２にて肯定判断、判断工程）、物理メモリ制御処理部５は、仮想メモリＶ上の代表値である値Ｖ１及び値Ｖ２に対して、物理メモリ３の代表値Ｐの領域を割り当てる（ステップＳ１５、割当工程）。
【００７２】
続いて、仮想メモリＶ上の全ての値（値Ｖ１乃至値ＶＮ）に対して、物理メモリ３（値Ｐ１乃至値ＰＮ）が割り当てられた後に、ソフトウェアによって仮想メモリＶが保持する値が更新され、２つの値からなる代表値が連続する値となった場合の動作を、図６を参照して説明する。なお、ソフトウェアによる更新がなされる前は、仮想メモリＶに保持する値が全て同じ値ではないため、判定フラグＶ及び判定フラグＰは共に「無効」に設定されているものとする。
【００７３】
まず、ソフトウェアによって、仮想メモリＶに保持する値、具体的には、仮想メモリＶ上の値Ｖ１乃至値ＶＮに設定された値が更新される（ステップＳ２１）。すると、要素判断処理部４により、更新された値が、２つの値からなる代表値が連続する値であるか否かが判断される（判断工程）。そして、この更新された値が、２つの値からなる代表値が連続する値であると判断されると（ステップＳ２２にて肯定判断）、この判断結果を受けた物理メモリ制御処理部５により、判定フラグＶ及び判定フラグＰが「有効」に設定変更される（ステップＳ２３）。そして、仮想メモリＶ上の値Ｖ１乃至値ＶＮにそれぞれ値が設定される。すると、物理メモリ制御処理部５は、仮想メモリＶ上の値Ｖ１乃至値ＶＮに対して割り当てた物理メモリ３の値Ｐ１乃至値ＰＮを開放すると共に（ステップＳ２４）、図９に示すように、仮想メモリＶ上の代表値である値Ｖ１及び値Ｖ２に対して、物理メモリ３の代表値Ｐの領域を割り当てる（ステップＳ２５、割当工程）。
【００７４】
ここで、仮想メモリＶ上の値Ｖ１乃至値ＶＮに設定された値が更新されたものの、更新後の値が全て同じ値ではない場合には（ステップＳ２２にて否定判断、判断工程）、設定変更された全ての値に対して、物理メモリ３の値Ｐ１乃至値ＰＮを割り当てる（ステップＳ２６、割当工程）。
【００７５】
これにより、仮想メモリＶに保持する値が、一定の規則性を持った値（規則的な配列）である場合に、物理メモリ３の使用量の減少を図り、物理メモリ３を効率的に使用して、処理の高速化を図ることができる。また、仮想メモリＶに保持する値が更新され、一定の規則性を持った値でないものとなっても、仮想メモリＶに物理メモリ３を割り当てることができる。
【００７６】
さらに、アクセス対象である物理メモリ３の使用量が少ないため、仮想メモリＶを確保して初期値設定する際などには、高速な初期化が可能となる。また、例えば、メモリの初期化漏れによるソフトウェア動作不正を防止するために、仮想メモリＶ確保時に初期値設定するプログラミング手法などでは、初期値設定時点における物理メモリ３確保を、必要最小限に抑えることができるため、物理メモリ３の使用量を抑えながら、ソフトウェアによる処理の高速化を図ることができる。
【００７７】
なお、本実施例では、仮想メモリＶに保持する値が、２つの値からなる代表値が連続する値（例えば、代表値０１が連続する配列、０１０１０１…）である場合に、一定の規則性を持った値であると判断される場合を説明したが、これは一例であって、２以上の値からなる代表値が連続する値（例えば、代表値１２３が連続する配列、１２３１２３１２３…）などであってもよい。
【００７８】
また、本実施例では、メモリ管理装置がパーソナルコンピュータ６に実装されている場合を説明したが、他の電子機器であってもよい。
【産業上の利用可能性】
【００７９】
本発明は、仮想メモリ制御機能を備えたメモリ管理装置に利用することができ、産業上の利用可能性を有する。
【図面の簡単な説明】
【００８０】
【図１】実施例１におけるメモリ管理装置の構成を示すブロック図である。
【図２】実施例１における仮想メモリ及び物理メモリの関係を説明する説明図である。
【図３】仮想メモリ及び物理メモリの関係を説明する説明図である。
【図４】メモリ管理装置の動作を示すフローチャートである。
【図５】メモリ管理装置の動作を示すフローチャートである。
【図６】メモリ管理装置の動作を示すフローチャートである。
【図７】メモリ管理装置の動作を示すフローチャートである。
【図８】実施例２におけるメモリ管理装置の構成を示すブロック図である。
【図９】実施例２における仮想メモリ及び物理メモリの関係を説明する説明図である。
【符号の説明】
【００８１】
１  携帯電話（メモリ管理装置）
２  ＣＰＵ（制御装置）
３  物理メモリ
４  要素判断処理部（判断手段）
５  物理メモリ制御処理部（割当手段、読出手段）
６  パーソナルコンピュータ（メモリ管理装置）
【図１】
2008112332.tif 000003
【図２】
2008112332.tif 000004
【図３】
2008112332.tif 000005
【図４】
2008112332.tif 000006
【図５】
2008112332.tif 000007
【図６】
2008112332.tif 000008
【図７】
2008112332.tif 000009
【図８】
2008112332.tif 000010
【図９】
2008112332.tif 000011