(57)【要約】【課題】  メモリ管理システム、電子機器及びメモリ管理プログラムにおいて、メモリのフラグメンテーションを効率的に回避することができない問題点と、高速に連続的なメモリ空間の割当、解放動作を行い、割当てられた連続的なメモリ空間のサイズの増減を行うことができない問題点を解決すること。【解決手段】  メモリ管理システム、電子機器及びメモリ管理プログラムにおいて、物理アドレス空間を小サイズ毎に区切ったマイクロパーテーション単位で扱い、アプリケーション等毎に区切った連続的な論理アドレス空間を必要数の前記マイクロパーテーションに割当てることによって解決した。【選択図】図５
2010108216.tif 000002
【特許請求の範囲】
【請求項１】
論理アドレス空間においてアプリケーションが使用する仮想メモリの割当と解放を管理する論理パーテーション管理部と、
物理アドレス空間において実メモリを小サイズ毎に切り分けて前記実メモリの割当と解放を管理する物理パーテーション管理部と、
前記論理アドレス空間と前記物理アドレス空間との間のアドレス変換を行う変換部とを有する
ことを特徴とするメモリ管理システム。
【請求項２】
請求項１のメモリ管理システムであって、
前記変換部は、前記論理アドレス空間と前記物理アドレス空間とを関連付ける変換テーブルを生成又は消去する
ことを特徴とするメモリ管理システム。
【請求項３】
請求項１または２のメモリ管理システムであって、
前記論理パーテーション管理部は、前記仮想メモリの割当をアプリケーション毎に連続した論理アドレス空間に確保する
ことを特徴とするメモリ管理システム。
【請求項４】
請求項１から３のいずれかのメモリ管理システムであって、
前記物理パーテーション管理部は、ハードウェア依存によるアクセス領域を固定領域とし、前記論理パーテーション管理部からの前記アプリケーションによる仮想メモリ割当に対して、前記固定領域には割当を行わない
ことを特徴とするメモリ管理システム。
【請求項５】
請求項１から４のいずれかのメモリ管理システムを有する
ことを特徴とする電子機器。
【請求項６】
コンピュータに、
論理アドレス空間においてアプリケーションが使用する仮想メモリの割当と解放を管理する論理パーテーション管理機能と、
物理アドレス空間において実メモリを小サイズ毎に切り分けて前記実メモリの割当と解放を管理する物理パーテーション管理機能と、
変換テーブルに基づき前記論理アドレス空間と前記物理アドレス空間との間のアドレス変換を行う変換機能とを実現させる
ことを特徴とするメモリ管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
メモリ管理システム、電子機器及びメモリ管理プログラムにおいて、メモリの割当・解放動作に関して、フラグメンテーションの発生を抑制し効率的なメモリ管理を行う技術に関する。
【背景技術】
【０００２】
半導体メモリや磁気回転ディスクなどの記憶装置を備える電子機器では、メモリの管理を効率的に行う技術的要求がある。メモリは使用時に必要領域を確保（割当）し、その使用が終わった後は解放して再使用に備える。このような、メモリの割当・解放動作を繰り返すと、フラグメンテーションと呼ばれる使用可能なメモリ空間がアドレス空間上に細かく分散して存在する状態になってしまい、メモリの使用率としては少ない状態であっても大きなアドレス空間が取れない状況が発生する。
【０００３】
従来技術として、画像形成装置などのデータ処理装置において、フラグメンテーションの発生を少なくし、メモリの空き待ちやメモリ内のデータ移動等によるスループットの低下を起こさないメモリ管理方法を実現する以下の方法がある。ページ検出処理部がページ開始を検出すると、メモリ資源取得処理部がメモリを確保し、パーティション（パーテーション）分割が行われ、入力データ用および加工データ用のパーティション（パーテーション）にメモリ領域がそれぞれ確保される。データ加工処理部によって加工データが生成され加工データ用メモリ領域に格納されると、メモリ資源解放処理部によって、不要となるメモリ領域の解放が行われる。解放されたメモリ領域は、加工データ用パーティション（パーテーション）の空き領域の一部となる（特許文献１参照）。
【０００４】
また、高い書き込み速度を実現可能なホスト機器を提供するために、管理システムがメモリ領域上で区画された単位領域を書き込みデータが記憶される書き込み領域として順次割り当てる機能を有し、単位領域の自然数倍の大きさからなる管理単位を割り当て位置の決定単位として用い、書き込み関数呼び出しを受けて管理単位ごとの実現可能な書き込み速度順に従って管理単位を前記書き込み領域として割り当てて、コントローラが、管理システムが割り当てた単位領域に書き込みデータを書き込む旨の指示をメモリカードに出す方法があった（特許文献２参照）。
【０００５】
しかし、特許文献１の方法では画像形成装置のページ単位毎の処理を前提としているため、複数ページに跨る処理には対応できない。また、パーテーションの区切りは２つという制限がある。さらに、パーテーションのサイズは、最初の割当時の容量で不足しても、その連続的メモリ空間の増量はできず、ひとつのパーテーションのサイズを減少する方向にしか容量変化に対応できない。
【０００６】
また、特許文献２の方法は、書き込みの際のメモリ割当に関するものであり、メモリが連続的に割当・解放動作を伴う際のフラグメンテーションの抑制には対応できない。
【特許文献１】特開２００２−３５１７３９号公報
【特許文献２】特開２００６−２８５６６９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
解決しようとする問題点は、メモリ管理システム、電子機器及びメモリ管理プログラムにおいて、メモリのフラグメンテーションを効率的に回避することができなかった点と、高速に連続的なメモリ空間の割当・解放動作を行い、割当てられた連続的なメモリ空間のサイズの増減を行うことができなかった点である。
【課題を解決するための手段】
【０００８】
本発明のメモリ管理システムは、論理アドレス空間においてアプリケーションが使用する仮想メモリの割当と解放を管理する論理パーテーション管理部と、物理アドレス空間において実メモリを小サイズ毎に切り分けて前記実メモリの割当と解放を管理する物理パーテーション管理部と、変換テーブルに基づき前記論理アドレス空間と前記物理アドレス空間との間のアドレス変換を行う変換部とを有することを特徴とする。
【０００９】
また、本発明のメモリ管理システムの前記変換部は、前記論理アドレス空間と前記物理アドレス空間とを関連付ける、前記変換テーブルを生成又は消去することを特徴としてもよい。
【００１０】
また、本発明のメモリ管理システムの前記論理パーテーション管理部は、前記仮想メモリの割当をアプリケーション毎に連続した論理アドレス空間に確保することを特徴としてもよい。
【００１１】
また、本発明のメモリ管理システムの前記物理パーテーション管理部は、ハードウェア依存によるアクセス領域を固定領域とし、前記論理パーテーション管理部からの前記アプリケーションによる仮想メモリ割当てに対して、前記固定領域には割当を行わないことを特徴としてもよい。
【００１２】
本発明の電子機器は、前記メモリ管理システムを有することを特徴とする。
【００１３】
本発明のメモリ管理プログラムは、コンピュータに、論理アドレス空間においてアプリケーションが使用する仮想メモリの割当と解放を管理する論理パーテーション管理機能と、物理アドレス空間において実メモリを小サイズ毎に切り分けて前記実メモリの割当と解放を管理する物理パーテーション管理機能と、変換テーブルに基づいて前記論理アドレス空間と前記物理アドレス空間との間のアドレス変換を行う変換機能とを実現させることを特徴とする。
【発明の効果】
【００１４】
本発明のメモリ管理システムは、論理アドレス空間においてアプリケーションが使用する仮想メモリの割当と解放を管理する論理パーテーション管理部と、物理アドレス空間において実メモリを小サイズ毎に切り分けて前記実メモリの割当と解放を管理する物理パーテーション管理部と、変換テーブルに基づき前記論理アドレス空間と前記物理アドレス空間との間のアドレス変換を行う変換部とを有することを特徴とする。
【００１５】
このため、論理アドレス空間におけるフラグメンテーションの効率を効率的に回避する。また、高速に連続的な仮想メモリ空間の割当、解放動作が可能となり、割当てられた連続的な仮想メモリ空間のサイズの増減を行うことが可能となる。
【００１６】
また、本発明のメモリ管理システムの前記変換部は、前記論理アドレス空間と前記物理アドレス空間とを関連付ける、前記変換テーブルを生成又は消去することを特徴としてもよい。
【００１７】
このため、アプリケーションが使用する仮想メモリの論理アドレス空間から、実メモリの物理アドレス空間へのアドレス変換が効率よく行うことができる。
【００１８】
また、本発明のメモリ管理システムの前記論理パーテーション管理部は、前記仮想メモリの割当をアプリケーション毎に連続した論理アドレス空間に確保することを特徴としてもよい。
【００１９】
このため、アプリケーション毎に区切られたパーテーションを一度に解放することにより、仮想メモリの解放が高速に行うことが可能となり、かつ、連続した大きな論理アドレス空間を得ることが可能となる。
【００２０】
また、本発明のメモリ管理システムの前記物理パーテーション管理部は、ハードウェア依存によるアクセス領域を固定領域とし、前記論理パーテーション管理部からの前記アプリケーションによる仮想メモリ割当てに対して、前記固定領域には割当を行わないことを特徴としてもよい。
【００２１】
このため、ＤＭＡ（Direct Memory Access）等のハードウェア依存アクセスがあっても、当該箇所が他のアプリケーション等に割当てられることがなく動作する。
【００２２】
本発明の電子機器は、前記メモリ管理システムを有することを特徴とする。
【００２３】
このため、論理アドレス空間におけるフラグメンテーションの発生を効率的に回避する。また、高速に連続的な仮想メモリ空間の割当、解放動作が可能となり、割当てられた連続的な仮想メモリ空間のサイズの増減を行うことが可能となる。また、アプリケーション毎に区切られたパーテーションを一度に解放することにより、仮想メモリの解放を高速に行うことが可能となり、かつ、連続した大きな論理アドレス空間を得ることが可能となる。また、ＤＭＡ（Direct Memory Access）等のハードウェア依存アクセスがあっても、当該箇所が他のアプリケーション等に割当てられることがなく動作する。
【００２４】
本発明のメモリ管理プログラムは、コンピュータに、論理アドレス空間においてアプリケーションが使用する仮想メモリの割当と解放を管理する論理パーテーション管理機能と、物理アドレス空間において実メモリを小サイズ毎に切り分けて前記実メモリの割当と解放を管理する物理パーテーション管理機能と、変換テーブルに基づいて前記論理アドレス空間と前記物理アドレス空間との間のアドレス変換を行う変換機能とを実現させることを特徴とする。
【００２５】
このため、論理アドレス空間におけるフラグメンテーションの発生を効率的に回避する。また、高速に連続的な仮想メモリ空間の割当、解放動作が可能となり、割当てられた連続的な仮想メモリ空間のサイズの増減を行うことが可能となる。
【発明を実施するための最良の形態】
【００２６】
メモリ管理システム、電子機器及びメモリ管理プログラムにおいて、メモリのフラグメンテーションを効率的に回避することができない問題点と、高速に連続的な仮想メモリ空間の割当、解放動作を行い、割当てられた連続的なメモリ空間のサイズの増減を行うことができない問題点を物理アドレス空間を小サイズ毎に区切ったマイクロパーテーション単位で扱い、アプリケーション等毎に区切った連続的な論理アドレス空間を必要数の前記マイクロパーテーションに割当てることによって解決した。
【実施例】
【００２７】
［パーテーション］
図１（Ａ）は、従来のメモリ管理システムにおけるアドレス空間での実メモリの割り当てに関する説明図である。従来は、アドレス空間を単一のパーテーションとして区切り、これら単一のパーテーションをメモリ管理のＡＰＩ（Application Protocol Interface）によって、実メモリの割り当て（malloc()）、解放（free()）を行っていた。このようなメモリ管理の下では、実メモリの割当・解放を繰り返した結果として、図２（Ａ）から図２（Ｂ）に示すように使用中、未使用中のアドレス空間が分散してフラグメンテーションを発生し、実メモリ内のデータ移動処理を行わなければ連続的な大容量の実メモリ空間を確保することができない。しかし、実メモリ内のデータ移動処理には時間がかかり、データ移動中は実メモリの使用が大きく制限されるため、画像形成装置などのリアルタイム処理が必要な電子機器では非常に問題となる。
【００２８】
図１（Ｂ）は、本発明のメモリ管理システムにおける、物理アドレス空間をパーテーション毎に区切って使用する場合の物理アドレス空間の割当てに関する説明図である。図３（Ａ）に示すように全体の物理アドレス空間を複数のパーテーション毎にＩＤを与えて区切り、ＩＤをアプリケーション毎に関連付けて割当てるようにすると、ひとつのアプリケーションが終了した場合（図３（Ｂ）におけるＩＤ＝２のアプリケーション）には、パーテーション２をＩＤ指定による一括解放（free_all(ID=2)、図１（Ｂ）参照）を行うことにより大きな連続アドレス空間を得ることができる。
【００２９】
しかし、このパーテーションを区切る方法だけでは、最初に割当てられたパーテーションサイズと実際に使用されるメモリサイズとの間に大きな差異があった場合、特にパーテーションで割当てられた実メモリサイズでは、容量が足りなくなった場合には、連続した大きな物理アドレス空間を得ることはできない。
【００３０】
そこで、本発明ではアプリケーション側が要求する論理アドレス空間を、物理メモリ空間を小サイズに区切ったマイクロパーテーションの物理アドレス空間に変換することにより、前記の問題を解決した。
【００３１】
［構成］
図４は、本発明の実施例に係わるメモリ管理システムの機能ブロック図である。
【００３２】
メモリ管理部Ｍ１０は、物理パーテーション管理部Ｍ１７、変換部Ｍ１９，論理パーテーション管理部Ｍ２１の機能部を有する。
【００３３】
上記の各機能部は、物理アドレス空間での物理マイクロパーテーションＭ１１にアクセスし、物理アドレスと論理アドレスの間の変換テーブルＭ１３を生成又は消去し、論理アドレス空間での論理パーテーションＭ１５にアクセスする。
【００３４】
以下に各機能部毎にその動作について説明する。
【００３５】
論理パーテーション管理部Ｍ２１は、論理アドレス空間においてアプリケーションが使用する仮想メモリの割当を管理し、該仮想メモリ割当てについてはアプリケーション毎に連続した論理アドレスのパーテーション毎（論理パーテーションＭ１５）に区切って管理する。
【００３６】
変換部Ｍ１９は、論理アドレス空間と物理アドレス空間との間のアドレス変換を行う。アドレス変換には前記論理アドレス空間と前記物理アドレス空間とを関連付ける変換テーブルＭ１３を用いる（詳細後述）。すなわち、変換部Ｍ１９は、仮想メモリ及び実メモリの未使用領域を、それぞれ論理パーテーション管理部Ｍ１９及び物理パーテーション管理部Ｍ１７から取得し、前記論理アドレス空間に前記物理アドレス空間を関連付ける。変換部Ｍ１９は、アプリケーションの使用状況に応じて、変換テーブルＭ１３の生成と消去を行う。詳細には、変換部Ｍ１９は、アプリケーションの起動や動作に伴う要求に応じて変換テーブルＭ１３を生成し、アプリケーションの終了に応じて変換テーブルＭ１３を消去する。
【００３７】
物理パーテーション管理部Ｍ１７は、物理アドレス空間において実メモリを小サイズ毎の物理マイクロパーテーションＭ１１に切り分けて実メモリの割当と解放を管理する。
【００３８】
［変換テーブル及びマイクロパーテーション］
図５を用いて変換テーブルについて説明する。
【００３９】
物理アドレス空間は、変換テーブルＴ０１に示すように、サイズが０ｘ０８００（このサイズは、一例であって、その他のサイズであってもよい）毎のマイクロパーテーションに区切られている。各マイクロパーテーションは、どのアプリケーションによって使用されているかを示すＩＤを有し、その物理アドレス及び対応する論理アドレスの値を有する。
【００４０】
例えばＩＤ＝２のアプリケーションに使用されているマイクロパーテーションについてみると、変換テーブルＴ１１に示すようにマイクロパーテーション番号＝１がＩＤ＝２での先頭のマイクロパーテーションであり、そのリンク先ポインタは次の変換テーブルＴ３１でマイクロパーテーション番号＝３を示し、次がマイクロパーテーション番号＝６を示している。
【００４１】
このように、変換部Ｍ１９は、物理パーテーション管理部Ｍ１７によって物理アドレス空間ではとびとびに割当てられている実メモリの物理アドレスを連続した論理アドレスに変換することができる。更に、論理パーテーション管理部Ｍ１５は、変換部Ｍ１９から取得した変換された連続した論理アドレスを、仮想メモリ空間に割当てることが可能である。
【００４２】
図６（Ａ）にＩＤ指定による実メモリ一括解放の場合を示す。この場合にマイクロパーテーション２は、グラフィックスアプリケーションによって占有されていたが、グラフィックアプリケーションが終了したため、その実メモリを必要としなくなる。そこで、物理パーテーション管理部Ｍ１７は、ＩＤ＝グラフィックスを指定してメモリの一括解放を行う。この場合、前記変換テーブルのＴ１１からＴ６１に示したようなリンク先ポインタを用いて、ＩＤ＝グラフィックスに割当てられていた実メモリをすべて解放することが可能である。解放されたマイクロパーテーションは他のアプリケーションにより使用が可能である。
【００４３】
図６（Ｂ）に最初に割当てられた実メモリのパーテーションを再割当する場合についての図を示す。最初に物理パーテーション管理部Ｍ１７により割当てられた物理メモリ空間が足りなくなった場合には、未使用であったマイクロパーテーション５をＩＤ＝グラフィックスのために割当てる。この場合、物理アドレス空間は、とびとびに存在するが、論理アドレス空間は連続的に存在する。
【００４４】
図６（Ｃ）では、新規にマイクロパーテーションを複数割当てる場合について説明する。割当てに必要なアドレス空間がマイクロパーテーションのひとつのサイズより大きい場合には、例えば図のようにマイクロパーテーション３，４，５の３つを割当てるようにしてもよい。
【００４５】
図７を用いて、物理アドレス空間ではマイクロパーテーションの使用空間が分散して存在している場合でも、連続した論理アドレス空間が得られることを説明する。図７では、例えばＩＤ＝インタープリタのアプリケーションは、その使用実メモリがマイクロパーテーションの１，６，９に分散して存在している。しかしながら、変換部Ｍ１９が前記した変換テーブルＭ１３を用いて物理アドレスと論理アドレス間のアドレス変換を行うために、論理パーテーション管理部Ｍ２１へは、常に連続したメモリ空間への論理アドレスでのアクセスが可能である。グラフィックス及びレンダリングのアプリケーションについても同様にメモリ管理される。
【００４６】
図８を用いて、特定のマイクロパーテーションを固定メモリ領域に指定する例について示す。実メモリのアドレス空間においては、ＤＭＡ（Direct Memory Access）などのハードウェアから直接メモリ空間をアクセスする場合などがあるが、本メモリ管理システムにおいて、そのようなハードウェア依存アクセスがあっても、問題なく動作する。その場合は、変換部Ｍ１９は、変換テーブルＭ１３中の該当マイクロパーテーションにＩＤ＝ハードウェア依存のようなマークを付ける。当該ＩＤを有するマイクロパーテーションは固定領域であるために、物理パーテーション管理部Ｍ１７は、論理パーテーション管理部Ｍ２１からのメモリ割当要求がきても、該当部分（固定領域）には割当を行わない。図８に示すように、論理パーテーション管理部Ｍ２１に割当て要求があったアプリケーションのインタープリタ、グラフィックス、レンダリングのいずれも、ＩＤ＝ハードウェア依存のマイクロパーテーション領域（固定領域）を避けてメモリの物理アドレスの割り当てを行うために、これらＤＭＡ等によってアクセスされる領域との競合は生じない。
【００４７】
［実施例の効果］
本発明実施例のメモリ管理システムにより、以下のことが可能となる。
【００４８】
フラグメンテーションを効率的に回避することが可能となる。
【００４９】
フラグメンテーションを回避する為の手段であるパーテーションを複数化することが可能となる。
【００５０】
フラグメンテーションを回避する為の手段であるパーテーションの区切り位置を動的に変更することが可能となる。
【００５１】
メモリの解放順序に制限を必要とせず、不要になったメモリから解放可能となる。
【図面の簡単な説明】
【００５２】
【図１】従来例と本発明実施例のパーテーションの違いを示す説明図である。
【図２】従来例のパーテーションのメモリ割当ての図である。
【図３】本実施例のパーテーションのメモリ割当ての図である。
【図４】本発明実施例のメモリ管理システムの機能ブロック図である。
【図５】本発明実施例の変換テーブルの例である。
【図６】本発明実施例のマイクロパーテーションの使用例の説明図である。
【図７】本発明実施例のマイクロパーテーションのサイズ確保の例の説明図である。
【図８】本発明実施例のマイクロパーテーションの固定領域の説明図である。
【符号の説明】
【００５３】
Ｍ１０  メモリ管理部（メモリ管理システム）
Ｍ１３  変換テーブル
Ｍ１７  物理パーテーション管理部
Ｍ１９  変換部
Ｍ２１  論理パーテーション管理部
【図１】
2010108216.tif 000003
【図２】
2010108216.tif 000004
【図３】
2010108216.tif 000005
【図４】
2010108216.tif 000006
【図５】
2010108216.tif 000007
【図６】
2010108216.tif 000008
【図７】
2010108216.tif 000009
【図８】
2010108216.tif 000010