(57)【要約】【課題】  動作する機器が異なったとしても、また、動作する機器の状況が変化したとしても、動作する機器に応じてその性能を充分に発揮することが出来るアプリケーションプログラム及び実行装置を提供する。【解決手段】  実行装置は、アプリケーションプログラムが実行に際し使用する１又は複数のメモリを有し、実行装置のメモリの使用状況などにより、アプリケーションプログラムの実行に必要なメモリ領域に関する複数種類の条件のうち1条件を選択し、選択した条件に応じて、前記１又は複数のメモリからメモリ領域を確保し、確保したメモリ領域を使用して前記アプリケーションプログラムの実行を行なう。【選択図】  図１
2007026094.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションプログラムが実行に際し使用する１又は複数のメモリを有する実行装置であって、
アプリケーションプログラムの実行に必要なメモリ領域に関する条件を複数種類記憶する記憶手段と、
前記記憶手段に記憶されている複数種類の条件のうち1条件を選択する選択手段と、
前記選択手段で選択した条件に応じて、前記１又は複数のメモリからメモリ領域を確保する確保手段と、
前記確保手段で確保したメモリ領域を使用して前記アプリケーションプログラムの実行を行なう実行手段と
を備えることを特徴とする実行装置。
【請求項２】
前記アプリケーションプログラムは、前記記憶手段に記憶されている複数種類の条件それぞれに応じた処理手順を有し、
前記実行手段は、前記確保手段で確保したメモリ領域を使用して、少なくとも、選択された条件に応じた処理手順を実行する
ことを特徴とする請求項１記載の実行装置。
【請求項３】
前記実行装置は、更に、前記１又は複数のメモリの空き領域に関する情報を取得する取得手段を備え、
前記選択手段は、前記取得手段で取得された情報に基づいて、前記記憶手段に記憶されている複数種類の条件のうちから１条件を選択する
ことを特徴とする請求項１記載の実行装置。
【請求項４】
前記複数のメモリは、アクセス速度の異なる複数種類以上のメモリを有し、
前記メモリ領域に関する条件は、前記複数種類のメモリそれぞれに確保することが必要なメモリ量である
ことを特徴とする請求項１記載の実行装置。
【請求項５】
前記実行装置は、更に、前記アプリケーションプログラムが実行される際に使用する1以上のデータそれぞれの使用頻度を記憶する使用頻度記憶手段と、
前記実行手段がアプリケーションプログラムの実行を行なう際に、前記確保手段で確保したメモリ領域に前記１以上のデータを配置する配置手段とを備え、
前記配置手段は、前記使用頻度記憶手段に記憶されている使用頻度に応じて、前記データを配置する
ことを特徴とする請求項４記載の実行装置。
【請求項６】
前記実行装置は、更に、前記アプリケーションプログラムが実行される際に使用する1以上のデータそれぞれの重要度を記憶する重要度記憶手段と、
前記実行手段がアプリケーションプログラムの実行を行なう際に、前記確保手段で確保したメモリ領域に前記１以上のデータを配置する配置手段とを備え、
前記配置手段は、前記重要度記憶手段に記憶されている重要度が高い順に、前記データを配置し、
前記実行手段は、前記アプリケーションプログラムの実行を行なう際に、前記配置手段で配置されなかった前記データを使用する実行を抑止する
ことを特徴とする請求項１記載の実行装置。
【請求項７】
メモリを確保および解放する機能を含む実行環境に処理を実行させるアプリケーションプログラムであって、
前記アプリケーションプログラムの実行に際して使用するメモリ領域に関する複数種類の条件を前記実行環境に伝達する伝達ステップと、
前記伝達ステップで伝達した複数種類の条件のうち1条件を前記実行環境から取得する取得ステップとを備え、
前記取得ステップで取得した条件に合致するように確保されたメモリ領域を使用して、前記実行環境に行なわせる所定の処理を定義している
ことを特徴とするアプリケーションプログラム。
【請求項８】
前記アプリケーションプログラムは、実行に際して1以上のデータを使用し、前記実行環境に行わせる所定の処理は、前記1以上のデータそれぞれに対応して定義され、
前記確保されたメモリ領域に、前記１以上のデータのうちのいずれのデータが配置されているかを判別する判別ステップと、
前記判別ステップで配置されていると判別されたデータに対応する所定の処理を前記実行環境に行なわせる制御ステップとを備える
ことを特徴とする請求項７記載のアプリケーションプログラム。
【請求項９】
アプリケーションプログラムが実行に際し使用する１又は複数のメモリを有する実行装置であって、
アプリケーションプログラムの実行に必要なメモリ領域に関する複数種類の条件を取得する取得手段と、
前記取得手段で取得された複数種類の条件のうち1条件を選択する選択手段と、
前記選択手段で選択した条件に関する情報を前記アプリケーションプログラムに通知する通知手段と
を備えることを特徴とする実行装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーションプログラム実行装置に関し、特にメモリの有効利用を図る技術に関する。
【背景技術】
【０００２】
近年、家電やＡＶ機器など多くの機器が、コンピュータシステムを搭載し、制御されるようになってきている。
このような大量生産される機器のシステムは、コストダウンの要請からプロセッサの処理能力やメモリ資源などに制限が課されている場合が多く、そのようなシステムは、アプリケーションプログラムが使う機能のみを備えるように、ハードウェアやＯＳ（Operating System）を最適化しているのが通常である。
【０００３】
メモリ資源の最適な割り当て方法については、事前にシステムをモデル化してプログラムをシミュレーションし、システムにおけるメモリ配置の最適解を求める技術が公開されている（特許文献１参照）。
アプリケーションプログラムは、その実行に必要なメモリを確保する場合、ＯＳ（Operating System）に対し必要な量のメモリ確保を要求する。
【０００４】
例えば、あるＤＳＰ（Digital Signal Processor）には、図９に示すように、そのアプリケーション開発を容易にする為にフレームワーク１０と呼ばれるソフトウェア部品群が提供されており、アプリケーションプログラムのソフトウェアモジュール（１１，１２，１３）はメモリ資源１４を確保する際には、フレームワークのＡＰＩ（Application Program Interface）を通じてメモリの確保を行う（非特許文献１参照）。
【０００５】
このように、ハードウェアやＯＳの使われ方が限定され専用化されたシステムは、限定されたメモリの効率的な利用と、アプリケーションプログラムの開発の容易化によるコストダウンを図りつつ、処理性能を向上させている。
【非特許文献１】Texas Instruments Incorporated, “TMS320 DSP Algorithm Standard - Rules and Guidelines”, Oct 2002.
【特許文献１】特開２００４−７０８６２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし、このようなアプリケーションプログラムは、特定機器のシステムに特化されているがゆえに、別の機器上ではその性能が充分に発揮できない場合が多い。
すなわち、そのままでは、例えばメモリ資源が足りずに実行できない場合や、実行できたとしても、少ないメモリ資源では期待される処理性能を発揮できない場合、また、期待された処理性能は発揮できるが、その機器のメモリ資源を有効に利用できずにメモリ量に見合う性能が発揮できていない場合などである。
【０００７】
従って、機器に応じた性能を充分に発揮させる為には、例え同じ目的を有するアプリケーションプログラムであっても、動作する機器ごとにプログラムを用意する必要があることになる。
しかしながら、アプリケーションプログラムの開発コスト、ユーザの利便性などを考えると、１つのアプリケーションプログラムが異なった機器においても充分に性能を発揮して動作するのが望ましい。
【０００８】
更に、動作する機器で他のプログラムが実行されているなどして、メモリ不足になり実行できない場合もあることから、１つのアプリケーションプログラムが、実行装置の現時点での状況に応じて動作できるのが望ましい。
そこで、本発明は、動作する機器が異なったとしても、また、動作する機器の状況が変化したとしても、動作する機器に応じてその性能を充分に発揮することが出来るアプリケーションプログラム及び実行装置の提供を目的とする。
【課題を解決するための手段】
【０００９】
上記課題を解決する為に、本発明の実行装置は、アプリケーションプログラムが実行に際し使用する１又は複数のメモリを有する実行装置であって、アプリケーションプログラムの実行に必要なメモリ領域に関する条件を複数種類記憶する記憶手段と、前記記憶手段に記憶されている複数種類の条件のうち1条件を選択する選択手段と、前記選択手段で選択した条件に応じて、前記１又は複数のメモリからメモリ領域を確保する確保手段と、前記確保手段で確保したメモリ領域を使用して前記アプリケーションプログラムの実行を行なう実行手段とを備えることを特徴とする。
【発明の効果】
【００１０】
本発明に係る実行装置は、上述の構成を備えることにより、自装置のメモリ資源の使用状況に応じて提供可能なメモリ資源であって、アプリケーションプログラムが要求するメモリ資源を提供することができるので、自装置の状況に応じてアプリケーションプログラムを実行させることが出来る。
例えば、アプリケーションプログラムが、自プログラムが実行に際して性能を充分に発揮できるようなメモリ量を複数パターン持っているとする。この場合、その複数パターンのうちから実行装置は自装置が提供可能なメモリ量を提供することとなり、アプリケーションプログラムは実行装置が提供できるメモリ量に応じた性能を充分に発揮して動作でき、一方、実行装置はメモリ資源を効率よく利用することができるようになる。
【００１１】
また、前記アプリケーションプログラムは、前記記憶手段に記憶されている複数種類の条件それぞれに応じた処理手順を有し、前記実行手段は、前記確保手段で確保したメモリ領域を使用して、少なくとも、選択された条件に応じた処理手順を実行することとしてもよい。
これにより、アプリケーションプログラムは、確保できたメモリ資源に応じた処理を行うことが出来るので、メモリ資源に応じて処理性能を発揮することができるようになる。例えば、メモリ資源が複数種類ある場合には、データの種類と量に応じてメモリを割り当てることで、処理速度を上げるなどである。
【００１２】
また、前記実行装置は、更に、前記１又は複数のメモリの空き領域に関する情報を取得する取得手段を備え、前記選択手段は、前記取得手段で取得された情報に基づいて、前記記憶手段に記憶されている複数種類の条件のうちから１条件を選択することとしてもよい。
これにより、メモリ資源の空き領域の範囲内でメモリ資源の提供がなされるので、メモリ資源の不足が原因でアプリケーションプログラムが実行できないことという事態を避けることができるようになる。
【００１３】
また、前記複数のメモリは、アクセス速度の異なる複数種類以上のメモリを有し、前記メモリ領域に関する条件は、前記複数種類のメモリそれぞれに確保することが必要なメモリ量であることとしてもよい。
これにより、アクセス速度が異なるメモリ資源ごとに必要量の確保がなされるので、アプリケーションプログラムの処理を効率よく行うことが出来、性能を発揮することができるようになる。
【００１４】
また、前記実行装置は、更に、前記アプリケーションプログラムが実行される際に使用する1以上のデータそれぞれの使用頻度を記憶する使用頻度記憶手段と、前記実行手段がアプリケーションプログラムの実行を行なう際に、前記確保手段で確保したメモリ領域に前記１以上のデータを配置する配置手段とを備え、前記配置手段は、前記使用頻度記憶手段に記憶されている使用頻度に応じて、前記データを配置することとしてもよい。
【００１５】
これにより、データが、その使用頻度に応じてメモリ上に配置されるので、アプリケーションプログラムのデータへのアクセス時間を全体として短くすることができるようになる。
また、前記実行装置は、更に、前記アプリケーションプログラムが実行される際に使用する1以上のデータそれぞれの重要度を記憶する重要度記憶手段と、前記実行手段がアプリケーションプログラムの実行を行なう際に、前記確保手段で確保したメモリ領域に前記１以上のデータを配置する配置手段とを備え、前記配置手段は、前記重要度記憶手段に記憶されている重要度が高い順に、前記データを配置し、前記実行手段は、前記アプリケーションプログラムの実行を行なう際に、前記配置手段で配置されなかった前記データを使用する実行を抑止することとしてもよい。
【００１６】
これにより、アプリケーションプログラムで使用するデータのうち、使用頻度が高いデータはアクセス速度の速いメモリに配置することができるので、全体としてアプリケーションプログラムの処理速度を向上させることができるようになる。
本発明のアプリケーションプログラムは、メモリを確保および解放する機能を含む実行環境に処理を実行させるアプリケーションプログラムであって、前記アプリケーションプログラムの実行に際して使用するメモリ領域に関する複数種類の条件を前記実行環境に伝達する伝達ステップと、前記伝達ステップで伝達した複数種類の条件のうち1条件を前記実行環境から取得する取得ステップとを備え、前記取得ステップで取得した条件に合致するように確保されたメモリ領域を使用して、前記実行環境に行なわせる所定の処理を定義していることを特徴とする。
【００１７】
本発明に係るアプリケーションプログラムは、上述の構成を備えることにより、実行環境の状況に応じて確保できたメモリ資源であって、性能を発揮できる無駄の無いメモリ資源で動作できるので、様々な実行環境で性能を発揮して実行することができる。
また、前記アプリケーションプログラムは、実行に際して1以上のデータを使用し、前記実行環境に行わせる所定の処理は、前記1以上のデータそれぞれに対応して定義され、前記確保されたメモリ領域に、前記１以上のデータのうちのいずれのデータが配置されているかを判別する判別ステップと、前記判別ステップで配置されていると判別されたデータに対応する所定の処理を前記実行環境に行なわせる制御ステップとを備えることとしてもよい。
【００１８】
これにより、実行環境で確保できたメモリ資源の量に応じて処理を選んでアプリケーションプログラムは動作できるので、さまざまな実行環境上で実行することができるようになる。
本発明の実行装置は、アプリケーションプログラムが実行に際し使用する１又は複数のメモリを有する実行装置であって、アプリケーションプログラムの実行に必要なメモリ領域に関する複数種類の条件を取得する取得手段と、前記取得手段で取得された複数種類の条件のうち1条件を選択する選択手段と、前記選択手段で選択した条件に関する情報を前記アプリケーションプログラムに通知する通知手段とを備えることを特徴とする。
【００１９】
本発明に係る実行装置は、上述の構成を備えることにより、自装置のメモリ資源の使用状況に応じて、アプリケーションプログラムが要求するメモリ資源を提供することができるので、自装置の状況に応じてアプリケーションプログラムを実行させることが出来る。
【発明を実施するための最良の形態】
【００２０】
＜概要＞
本発明は、アプリケーションプログラム（以下、「プログラム」という。）が実行時に要求するメモリ資源と、その時に実行装置が提供できるメモリ資源とを、動的に調整するものである。
本発明に係る実行装置のプログラムは、予め、確保したいメモリ資源の情報を複数パターンもっており、その複数パターンに応じた処理を備えていることを特徴とする。例えば、確保したメモリ資源パターンごとのデータ配置の処理や、確保したメモリ資源パターンごとのプログラム本来の目的を達成するための処理などである。
【００２１】
このプログラムが持っているメモリ資源のパターンは、プログラムが一定の性能を発揮するのに必要なメモリ量とメモリ性能との組合せであり、予め求めておいたものである。
そして、その実行装置は、プログラムがメモリを要求してきた際に、その装置が備えるメモリ資源と他のプログラムの実行状況から、割り当てることが出来るメモリ資源パターンを判断し、メモリ資源を割り当てる。
【００２２】
メモリ資源を確保できたプログラムは、そのパターンに応じて処理を切り替えて実行することで、その実行時に、その機器で確保できたメモリ資源を最大限に利用する処理を行うことができ、その性能を充分に発揮することが出来るのである。
また、実行装置では、無駄なくメモリ資源をプログラムに割り当てることができ、他のプログラムの実行を妨げることもない。
【００２３】
以下、本発明に係るプログラムおよび実行装置について説明する。
尚、確保したいメモリの総量は変わらずに性能の異なるメモリへの割り振りが異なる例を実施形態１に、確保したいメモリの総量が異なる例を実施形態２に記載する。
＜実施形態１＞
＜構成＞
以下、本発明の実施形態１に係る実行装置について図１を用いて説明する。
【００２４】
ここでは、本発明に係るプログラムは、既に、実行装置に搭載されているものとして説明する。
図１は、実行装置の構成を示す機能ブロック図である。
実行装置１０００は、アプリケーション実行制御部１１００、アプリケーションプログラム１２００、高速メモリ１５００、低速メモリ１６００およびＯＳ１７００から構成される。
【００２５】
まず、ＯＳ１７００は、実行装置の各種資源などの管理制御、プログラムの実行の管理制御などを行う、いわゆる基本ソフトウェアである。例えば、アプリケーションプログラムのために、メモリの確保、解放の処理を行う。
高速メモリ１５００および低速メモリ１６００は、それぞれアクセス速度が異なるメモリである。ここでは、ＯＳ１７００とのやり取りを明示するために、機能ブロック図内に記載している。
【００２６】
これらのメモリとしては、例えば、アクセス速度がより速い高速メモリ１５００としては、ＳＲＡＭ（Static RAM）、低速メモリ１６００としては、ＤＲＡＭ（Dynamic RAM）が上げられる。
まず、アプリケーションプログラム１２００は、特定の仕事を行う為のソフトウェアプログラムであり、例えば、動画再生ソフト、ワープロソフトなどである。  アプリケーションプログラム１２００は、ＯＳ１７００などを介して必要な量のメモリを、実行装置１０００内のメモリ（１５００、１６００）から確保し、確保したメモリを使用しながら処理を実行する。
【００２７】
実行装置１０００には、複数のアプリケーションプログラムが搭載可能であり、それらは並行して実行される場合もあることとする。本説明では、説明の便宜上１つのアプリケーションプログラム１２００について説明する。
アプリケーションプログラム１２００は、目的である特定の仕事に関する実行処理、制御処理などを行う他、本発明に特有の処理を行う。
【００２８】
本アプリケーションプログラム１２００は、メモリ資源パターン記憶部１３００、メモリ資源要求部１２２０およびデータ配置部１２３０で構成される。
メモリ資源パターン記憶部１３００は、アプリケーションプログラム１２００が効率よく動作できる複数パターンを記憶する機能を有する。記憶されているメモリ資源のパターンの詳細は、図２を用いてあとで説明する。
【００２９】
アプリケーションプログラム１２００は、これら記憶されている複数パターンのうちのいずれのパターンであっても、一定の性能を発揮することができ、かつ、それぞれのパターンのメモリ量は、無駄の無い量となっている。
メモリ資源要求部１２２０は、アプリケーションプログラム１２００が必要とするメモリ資源を確保する機能を有する。具体的には、後で詳しく説明するアプリケーション実行制御部１１００に、メモリ資源を要求し、確保されたメモリの先頭アドレスを受取る。この確保されたメモリは、メモリ資源パターン記憶部１３００に記憶してあるメモリ資源のパターンのうちの1つのパターンで確保されたものである。
【００３０】
データ配置部１２３０は、メモリ資源要求部１２２０で確保したメモリにアプリケーションプログラム１２００で使用するデータなどを配置する機能を有する。
データ配置部１２３０は、確保できたメモリ資源パターンに応じて、データを配置することになる。
データ配置部１２３０が扱うデータとは、ある一塊のデータをいい、連続するメモリ領域に配置されるべきものをいうものとする（以下、同様）。また、ここで言うデータは、プログラムやワーク領域などであってもよい。
【００３１】
次に、アプリケーション実行制御部１１００は、プログラムの実行に必要な一般的な制御処理を行う他、本発明に特有の制御処理を行う。
本アプリケーション実行制御部１１００は、メモリ資源パターン決定部１１１０、環境情報取得部１１２０およびメモリ資源確保部１１３０から構成される。
メモリ資源パターン決定部１１１０は、アプリケーションプログラム１２００のメモリ資源要求に対して、メモリ資源を確保して、確保したメモリの先頭アドレスとメモリを確保したメモリ資源パターンとを返す機能を有する。
【００３２】
このメモリ資源パターン決定部１１１０は、実行装置１０００のメモリ資源の使用状況や、使用予測などに基づいて、アプリケーションプログラム１２００に割り当てることができるメモリ資源の量を求め、その量に応じてメモリ資源パターンを決定する。
環境情報取得部１１２０は、実行装置１０００のメモリ資源（１５００、１６００）の空き容量など、アプリケーションプログラムの実行環境に関する情報をＯＳ１７００などから取得する機能を有する。
【００３３】
メモリ資源確保部１１３０は、ＯＳ１７００に依頼して、高速メモリ１５００又は低速メモリ１６００に所定量のメモリを確保する機能を有する。
ここでアプリケーション実行制御部１１００等の各部による各処理の全部または一部は、ＣＰＵ（Central Processing Unit、図示していない。）が各種プログラムを実行することにより実現されるものである。
【００３４】
＜データ＞
以下、実行装置１０００が用いる主なデータについて、図２および図３を用いて説明する。
図２は、メモリ資源パターン情報１３１０の内容例を示す図である。
このメモリ資源パターン情報１３１０は、メモリ資源パターン記憶部１３００に記憶されており、１つとは限らず、アプリケーションプログラム１２００が確保するメモリごとにあっても良い。
【００３５】
また、このメモリ資源パターン情報１３１０は、アプリケーションプログラム１２００がアプリケーション実行制御部１１００に対してメモリ確保を要求する際に、渡される情報である。
メモリ資源パターン情報１３１０で示されているメモリ資源パターンは、予めシミュレーション等によって決められている高速メモリ１５００と低速メモリ１６００とのそれぞれの量である。これらの量は、アプリケーションプログラム１２００が一定の性能を発揮するための無駄の無い量となっている。本実施形態では、メモリの総量は変わらず、高速メモリと低速メモリの配分が異なる場合を示している。
【００３６】
メモリ資源パターン情報１３１０は、メモリ資源パターン１３１１、メモリ量１３１２および優先順位１３１３で構成される。
メモリ資源パターン１３１１は、パターン名を表し、パターンを識別するものである。
メモリ量１３１２は、高速メモリ１５００と低速メモリ１６００のそれぞれのメモリ量を表している。例えば、メモリ資源パターン１３１１「パターンＣ」は、メモリ量１３１２「高速メモリ：６ＫＢ  低速メモリ：６ＫＢ」とあり、高速メモリ１５００に６ＫＢ（キロバイト）、低速メモリ１６００に６ＫＢを確保するパターンである。
【００３７】
また、優先順位１３１３は、効率よく性能を発揮できる順序を示したものである。例えば、メモリ資源パターン１３１１「パターンＣ」は、優先順位１３１３「１」であり、この「パターンＡ」から「パターンＤ」までの４パターンのうちで、最も推奨されるパターンであることを示している。
一般的には、高速メモリの割合が多ければ多いほど、処理性能が上がると考えられるが、この例では高速メモリの量が２番目に多い「パターンＣ」の優先順位１３１３が「１」となっている。その理由は、このアプリケーションプログラム１２００は、高速メモリが６ＫＢ以上あったとしても処理性能がほとんど変わらないからであり、高速メモリが６ＫＢの「パターンＣ」が最もメモリ資源を効率的に利用できるパターンであるからである。
【００３８】
次に、図３は、確保されたメモリ資源に関する情報の内容例を示す図である。
このメモリ資源情報１２５０は、アプリケーション実行制御部１１００からアプリケーションプログラム１２００に渡される情報である。
この情報は、メモリ資源を確保する度にメモリ資源パターン決定部１１１０により作成され、メモリ資源要求部１２２０に渡される。
【００３９】
メモリ資源情報１２５０は、メモリ資源パターン１２５１、高速メモリアドレス１２５２および低速メモリアドレス１２５３で構成される。
メモリ資源パターン１２５１は、メモリ資源が実際に確保されたパターンを示すもので、メモリ資源パターン情報１３１０のメモリ資源パターン１３１１のうちのいずれかが示される。例えば、「パターンＣ」などである。この情報により、それぞれのメモリに確保されたメモリ量を知ることができる。
【００４０】
高速メモリアドレス１２５２および低速メモリアドレス１２５３は、それぞれ確保されたメモリの先頭アドレスである。例えば、メモリ資源パターン１２５１「パターンＣ」の場合、高速メモリは、高速メモリアドレス１２５２「0x06001000」から６ＫＢのメモリが確保されていることになる。
＜動作＞
以下、上述した実行装置１０００の動作について図４および図５を用いて説明する。
【００４１】
図４は、アプリケーションプログラムがメモリを確保する処理を示すフローチャートである。
アプリケーションプログラム１２００は、実行開始直後の初期化処理において、または、その実行中にメモリ資源が必要になった場合には、メモリ資源要求部１２２０に対してメモリの確保を要求する。
【００４２】
メモリの確保の要求を受けたメモリ資源要求部１２２０は、メモリ資源パターン記憶部１３００に記憶されている該当するメモリ資源パターン情報１３１０を読出し、アプリケーション実行制御部１１００のメモリ資源パターン決定部１１１０に渡し、メモリ資源の確保を依頼する（ステップＳ１００）。
メモリ資源の確保を依頼されたメモリ資源パターン決定部１１１０は、環境情報取得部１１２０に、高速メモリ１５００と低速メモリ１６００の、それぞれの空き領域に関する情報を問い合わせる。
【００４３】
環境情報取得部１１２０は、ＯＳ１７００に問い合わせを行い、それぞれのメモリの空き領域に関する情報をメモリ資源パターン決定部１１１０に返す（ステップＳ２００）。
空き領域に関する情報を受取ったメモリ資源パターン決定部１１１０は、確保できるメモリ資源パターン１３１１を選択し、そのうちの優先順位１３１３が最も高いものに決定する（ステップＳ２１０）。
【００４４】
例えば、空き領域が、高速メモリ１０ＫＢ、低速メモリ６ＫＢだった場合には、「パターンＣ」に決定される。この場合には、メモリ資源パターン１３１１「パターンＣ」と「パターンＤ」のメモリ資源を確保することが可能であるが、それぞれのパターンの優先順位１３１３は、「１」、「２」であるので、優先順位１３１３の高い「パターンＣ」に決定されることになる。
【００４５】
メモリ資源パターン１３１１を決定したメモリ資源パターン決定部１１１０は、メモリ資源確保部１１３０に、決定したメモリ資源パターンを渡し、メモリの確保を依頼する。
メモリ資源の確保依頼を受けたメモリ資源確保部１１３０は、ＯＳ１７００に高速メモリ１５００および低速メモリ１６００のメモリ確保を依頼する。例えば、「パターンＣ」の場合、高速メモリ１５００に６ＫＢ，低速メモリ１６００に６ＫＢを確保するように依頼する。
【００４６】
ＯＳ１７００は、高速メモリ１５００および低速メモリ１６００に依頼された量を確保し、それぞれの確保したメモリの先頭アドレスをメモリ資源確保部１１３０に返す（ステップＳ２２０）。
メモリ資源確保部１１３０は、ＯＳ１７００から受取ったアドレスを、メモリ資源確保部１１３０に渡す。
【００４７】
確保したメモリの先頭アドレスを受取ったメモリ資源確保部１１３０は、受取った先頭アドレスと決定したメモリ資源パターンからメモリ資源情報１２５０を作成し、メモリ資源要求部１２２０に返す（ステップＳ２３０）。例えば、「パターンＣ」である旨をメモリ資源パターン１２５１にセットし、高速メモリ１５００に確保した６ＫＢの先頭アドレスと低速メモリ１６００に確保した６ＫＢの先頭アドレスを、それぞれ高速メモリアドレス１２５２、低速メモリアドレス１２５３にセットしてメモリ資源情報１２５０を作成する。
【００４８】
メモリ資源情報１２５０を受取ったメモリ資源要求部１２２０は、受取った情報をデータ配置部１２３０に渡し、データのロードを依頼する。
依頼を受けたデータ配置部１２３０は、それぞれのメモリにデータを配置して（ステップＳ１１０）、配置後、アプリケーションプログラム１２００の処理を続行する。
データの配置の方法としては、予め決められている順序でデータを配置することとしても良いが、本実施形態では、データ配置部１２３０は、データの使用頻度に応じて、高速メモリ１５００と低速メモリ１６００に配置するデータを決めることとする。
【００４９】
以下に、データの配置方法の例を説明する。
本実施形態では、データの使用頻度の高さを、データのキャッシュヒット率で判断するものとする。この判断の方法を、図５を用いて説明する。
図５は、データ領域のキャッシュヒット率の例を表すグラフである。
このグラフ１３２０は、低速メモリ１６００に、アプリケーションプログラム１２００で使用する全データを置き、低速メモリ１６００のアクセスにキャッシュメモリを利用した場合のデータＦ〜データＩ（１３２１）ごとのキャッシュヒット率を示すものである。
【００５０】
ここでは、キャッシュヒット率として、アプリケーションプログラム１２００が一定期間ないし、一定アクセス回数内にデータにアクセスしたときに、低速メモリ１６００ではなくキャッシュメモリ上にデータが存在した割合を示している。
例えば、データＦのキャッシュヒット率が９９．８％であり、データＩのキャッシュヒット率は９５％である。
【００５１】
データ配置部１２３０は、予め、このキャッシュヒット率の情報を保持しており、キャッシュヒット率の低いデータＩ、データＨ、データＧ、データＦの優先順にデータ領域を高速メモリに配置し、高速データメモリに配置できなかったデータ領域については低速メモリに配置する。
このように配置することでキャッシュヒット率の低いデータのアクセスが高速化され、アプリケーションプログラム１２００の処理速度が高速化される。
【００５２】
低速メモリはキャッシュメモリを用いてアクセスを高速化することが一般的なため、このキャッシュヒット率を改善するとプログラムの処理速度の高速化を図ることができるためである。
尚、データ配置部１２３０に保持しているキャッシュヒット率の情報は、予め測定しておいたものとする。また、実行中に随時更新しておき、適当なタイミングでデータの配置を変えることとしてもよい。
【００５３】
＜実施形態２＞
実施形態１との相違点は、実施形態１では要求するメモリ資源の総量は一定であったが、本実施形態２では要求するメモリ資源の総量が異なる点である。
メモリ資源の要求総量が異なることから、動作できる機器が大幅に増えるという利点がある。
【００５４】
確保したメモリ資源が少ない場合に対応するため、メモリに配置するデータを選択するための仕組みを追加している。
＜構成＞
以下、本発明の実施形態２に係る実行装置について図６を用いて説明する。
図６は、実施形態２の実行装置の構成を示す機能ブロック図である。
【００５５】
実施形態１の実行装置との違いは、アプリケーションプログラム２２００が、データ重要度記憶部２４００を備える点である。
データ重要度記憶部２４００は、アプリケーションプログラム２２００が使用するデータに重要度を付けた情報を記憶する。この重要度の情報は、図８を用いて後で説明する。この重要度に応じて、データ配置部２２３０は、データを配置していくことになる。
【００５６】
この相違点に伴い若干異なるものの、実行装置２０００の各機能部は、実行装置１０００（図１参照）の各機能部とほぼ同じ機能を有する。
各機能部について、簡単に説明する。
実行装置２０００は、アプリケーション実行制御部２１００、アプリケーションプログラム２２００、高速メモリ１５００、低速メモリ１６００およびＯＳ１７００から構成される。
【００５７】
ＯＳ１７００、高速メモリ１５００および低速メモリ１６００は、実行装置１０００のと同じである。
アプリケーションプログラム２２００は、メモリ資源パターン記憶部２３００、メモリ資源要求部２２２０、データ配置部２２３０およびデータ重要度記憶部２４００で構成される。
【００５８】
メモリ資源パターン記憶部２３００は、図７を用いて後で説明するメモリ資源パターンと必須メモリ量とを記憶している。
メモリ資源要求部２２２０は、メモリ資源パターン記憶部２３００に記憶してあるメモリ資源のパターンを示してメモリを要求する点が異なるのみで、実行装置１０００のメモリ資源要求部１２２０と同じ機能を有する。
【００５９】
データ配置部２２３０は、メモリ資源要求部２２２０で確保したメモリにデータなどを配置する機能を有し、その配置の際にデータ重要度記憶部２４００に記憶されている情報を参照する。
次に、アプリケーション実行制御部２１００は、メモリ資源パターン決定部２１１０、環境情報取得部２１２０およびメモリ資源確保部２１３０から構成される。
【００６０】
メモリ資源パターン決定部２１１０が有する機能で、実行装置１０００のメモリ資源パターン決定部１１１０と異なる点は、メモリ資源を確保する場合に、必須メモリ量を参照する点である。メモリ資源パターン決定部２１１０は、この必須メモリ量を確保出来ない場合は、メモリを確保しない。
また、環境情報取得部２１２０およびメモリ資源確保部２１３０の有する機能は、実行装置１０００の環境情報取得部１１２０およびメモリ資源確保部１１３０と同じである。
【００６１】
＜データ＞
以下、実行装置２０００が用いる主なデータについて、図７および図８を用いて説明する。
図７（ａ）は、メモリ資源パターン情報２３１０の内容例を示す図である。
このメモリ資源パターン情報２３１０は、メモリ資源パターン記憶部２３００に記憶されており、実施形態１のメモリ資源パターン情報１３１０との違いは、優先順位１３１３の替わりにメモリ合計２３１３を有している点である。
【００６２】
このメモリ資源パターン情報２３１０は、アプリケーションプログラム２２００がアプリケーション実行制御部２１００に対してメモリ確保を要求する際に、渡される情報である。
また、実施形態１と同様に、メモリ資源パターン情報２３１０で示されているメモリ資源パターンは、予めシミュレーション等によって決められている高速メモリ１５００と低速メモリ１６００とのそれぞれの量である。
【００６３】
メモリ資源パターン情報２３１０は、メモリ資源パターン２３１１、メモリ量２３１２およびメモリ合計２３１３で構成される。
メモリ資源パターン２３１１およびメモリ量２３１２は、実施形態１のメモリ資源パターン１３１１およびメモリ量１３１２と同様である。
メモリ合計２３１３は、高速メモリと低速メモリに要求するメモリ量の合計を示している。
【００６４】
次に、図７（ｂ）は、必須メモリ量情報の内容例を示す図である。
この必須メモリ量情報２３２０は、アプリケーションプログラム２２００が動作するために必要な最小限度のメモリ量を示している。
この必須メモリ量情報２３２０は、メモリ資源パターン記憶部２３００に記憶されており、メモリ資源要求部２２２０を介してメモリ資源パターン決定部２１１０に渡されることになる。
【００６５】
次に、図８（ａ）は、データ重要度情報２４１０の内容例を示す図である。
このデータ重要度情報２４１０は、データ重要度記憶部２４００に記憶されている。
データ重要度情報２４１０は、データ名２４１１、データサイズ２４１２および重要度２４１３で構成される。
データ名２４１１は、アプリケーションプログラム２２００が使用するデータの名前であり、識別子の役割を果たす。
【００６６】
データサイズ２４１２は、データ名２４１１で表されるデータの長さを表す。例えば、データ名２４１１「データＭ」は、データサイズ２４１２「４ＫＢ」であることから「データＭ」は４キロバイトのデータであることがわかる。
重要度２４１３は、データ名２４１１で表されるデータの重要度を示す値であり、値が大きいほど重要度が高いことを表している。この重要度の順にデータは高速メモリ、低速メモリの順で配置されることになる。尚、重要度に応じて、配置場所を決めておくなどとしてもよい。
【００６７】
この重要度は、アプリケーションプログラムのアルゴリズム上の重要度を数値化したものである。
具体的には、「１」は、アプリケーションプログラム２２００が動作するためには必須のデータであることを示す。従って、重要度２４１３「１」のデータの合計が、必須メモリ量２３２０となる。
【００６８】
例えば、重要度２４１３「１」のデータはデータ名２４１１が「データＭ」と「データＮ」で表されるデータであり、それぞれのデータサイズ２４１２は「４ＫＢ」と「２ＫＢ」であることから、必須メモリ量２３２０は「６ＫＢ」となる。
図８（ｂ）は、メモリにデータを配置した例を示す図である。
この例では、メモリ資源パターン２３１１「パターンＫ」の場合である（図７（ａ）参照）。４ＫＢの高速メモリ１５００には、「データＭ」が、６ＫＢの低速メモリには、「データＮ」と「データＯ」が配置されている。ここでは「データＰ」は配置されない。
【００６９】
ここで、データの重要度２４１３とアプリケーションプログラム２２００の処理との関係について説明する。
重要度２４１３が「１」のデータは、必ず配置されなければならないものであり、アプリケーションプログラムの必須の処理に必要なデータである。
一方、重要度２４１３が１未満のデータは、配置しなくても、アプリケーションプログラムの必須の処理には影響がないデータである。
【００７０】
例えば、アルゴリズム上実行しなくてもかまわない付加的処理や、実行するタイミングが特定の動作モードのときのみに限定でき普段は動作させなくて良い処理のデータである。従って、これらのデータがメモリ上に配置されていない場合は、それらに対応するアプリケーションプログラムの処理は動作しないようにプログラムは作成されている。
例えば、アプリケーションプログラムが、音楽ビデオを再生するものであるとする。この場合、符号化されたデータを復号する処理および音楽を再生する処理は、必須の処理といえるので、これらの処理で必要なデータ（「データＭ」と「データＮ」）の重要度は「１」となる。しかし、映像を再生する処理は、必ずしも必須の処理とはいえないので、その処理で使用するデータ（「データＯ」）重要度は「０．８」となる。さらに、歌詞などの文字データを表示する処理で使用するデータ（「データＰ」）は、重要度が低く「０．５」となる。
【００７１】
＜動作＞
以下、上述した実行装置２０００の動作について図４を用いて説明する。
図４は、アプリケーションプログラムがメモリを確保する処理を示すフローチャートであり、実施形態１と同じものである。
ステップＳ１００、ステップ１１０、ステップＳ２００〜ステップＳ２３０の各処理は、実行装置１０００の処理とほぼ同じである。
【００７２】
異なる点は次の３点である。
１つ目は、メモリ資源パターン情報１３１０（図２参照）がメモリ資源パターン情報２３１０（図７参照）に変わった点であり、２つ目は、メモリ資源パターン決定部２１１０が、必須メモリ量２３２０を参照する点である。３つ目は、データ配置部２２３０が、データ重要度情報２４１０を基にデータを配置する点である。
【００７３】
以下、簡単に実行装置２０００の動作を説明する。
アプリケーションプログラム２２００は、メモリ資源要求部２２２０に対してメモリの確保を要求する。
メモリの確保の要求を受けたメモリ資源要求部２２２０は、メモリ資源パターン記憶部２３００に記憶されている該当するメモリ資源パターン情報２３１０を読出し、アプリケーション実行制御部２１００のメモリ資源パターン決定部２１１０に渡し、メモリ資源の確保を依頼する（ステップＳ１００）。
【００７４】
メモリ資源の確保を依頼されたメモリ資源パターン決定部２１１０は、環境情報取得部２１２０からメモリの空き領域に関する情報を取得する（ステップＳ２００）。
空き領域に関する情報を受取ったメモリ資源パターン決定部２１１０は、必須メモリ量２３２０を確保できるかを判断し、確保できる場合は、メモリ資源パターン２３１１を選択する。メモリ資源パターン２３１１に合致するメモリ資源を確保出来ない場合は、高速メモリまたは低速メモリで、必須メモリ量を確保することとする（ステップＳ２１０）。
【００７５】
メモリ資源パターン２３１１を決定したメモリ資源パターン決定部２１１０は、メモリ資源確保部２１３０を介してメモリを確保し（ステップＳ２２０）、確保したメモリの先頭アドレスを受取る。
メモリ資源確保部２１３０は、受取った先頭アドレスと決定したメモリ資源パターンからメモリ資源情報２２５０を作成し、メモリ資源要求部２２２０に返す（ステップＳ２３０）。
【００７６】
メモリ資源情報２２５０を受取ったメモリ資源要求部２２２０は、受取った情報をデータ配置部２２３０に渡し、データのロードを依頼し、依頼を受けたデータ配置部２２３０は、それぞれのメモリにデータを配置して（ステップＳ１１０）、配置後、アプリケーションプログラム２２００の処理を続行する。
以下に、データの配置方法の例を説明する。
【００７７】
実施形態１では、データの使用頻度に応じて、データを配置したが、本実施形態２では、データの重要度に応じて、データを配置するものとする。
データ配置部２２３０は、まず重要度２４１３は「１」のデータを高速メモリに配置する。重要度２４１３が同じ場合は、より多くのデータが高速メモリに配置できるように調整する。次に、重要度２４１３の値が高いデータから配置していく。
【００７８】
例えば、図８（ｂ）に示すように、高速メモリが４ＫＢある場合には、重要度「１」の「データＭ」を配置し、低速メモリには、重要度「１」の「データＮ」、重要度「０．８」の「データＯ」を配置する。この「パターンＫ」の場合には、「データＰ」は配置されず、「データＰ」を使用するアプリケーション部分は実行できないことになる。
＜補足＞
以上、本発明に係る実行装置およびプログラムについて実施形態に基づいて説明したが、この実行装置およびプログラムを部分的に変形することもでき、本発明は上述の実施形態に限られないことは勿論である。即ち、
（１）実施形態１では、データの使用頻度をキャッシュヒット率で判断することとしているが、他の方法でもよい。
【００７９】
例えば、キャッシュヒット率の代わりにキャッシュのミスヒット率、データ領域へのアクセス数、プログラムのアルゴリズム上推定される使用頻度などを基にデータの使用頻度を判断することとしてもよい。
（２）実施形態では、メモリ資源は高速メモリと低速メモリの２種類のメモリで構成されることとしているが、この構成に限らず、１種類のメモリでも、３種類以上のメモリでもよい。
【００８０】
また、メモリ資源パターンとしてメモリ種別ごとの使用サイズのみを規定しているが、メモリのアドレスやアライメント、メモリの確保方法などを規定してもよい。ここで、メモリの確保方法とは、例えば、他のアプリケーションプログラムとの共有が可能である、自プログラムだけで占有して使用するなどである。
またさらに、データごとにメモリ種別とメモリ量を指定しておいてもよい。
（３）実施形態１では、データ配置部でデータを配置する際に、データごとのキャッシュヒット率（図５参照）を参照し、実施形態２では、データの重要度(図８参照）を参照しているが、これらの双方を参照したりなどして配置順などを決めることとしてもよい。
（４）実施形態では、メモリ資源の空き領域を基に、アプリケーションプログラムに提供するメモリ量を決めているが、他の基準で提供するメモリ量をきめることとしてもよい。
【００８１】
例えば、モバイル機器などの内蔵バッテリで動作している機器の場合には、バッテリ残量に応じて通電するメモリを変えることとしてもよい。すなわち、バッテリ残量が少なくなれば、提供するメモリ性能や量を少なくするなどを行う。
（５）実施形態で示した実行装置の各機能を実現させる為の各制御処理（図１等参照）をＣＰＵに実行させる為のプログラムを、記録媒体に記録し又は各種通信路等を介して、流通させ頒布することもできる。このような記録媒体には、ＩＣカード、光ディスク、フレキシブルディスク、ＲＯＭ、フラッシュメモリ等がある。流通、頒布されたプログラムは、機器におけるＣＰＵで読み取り可能なメモリ等に格納されることにより利用に供され、そのＣＰＵがそのプログラムを実行することにより実施形態で示した実行装置の各機能が実現される。
【産業上の利用可能性】
【００８２】
メモリを持つプロセッサシステムを用いた組み込みシステムを製造、使用する技術として有用である。
【図面の簡単な説明】
【００８３】
【図１】実施形態１の実行装置の構成を示す機能ブロック図である。
【図２】メモリ資源パターン情報１３１０の内容例を示す図である。
【図３】確保されたメモリ資源に関する情報の内容例を示す図である。
【図４】アプリケーションプログラムがメモリを確保する処理を示すフローチャートである。
【図５】データのキャッシュヒット率の例を表すグラフである。
【図６】実施形態２の実行装置の構成を示す機能ブロック図である。
【図７】図７（ａ）は、メモリ資源パターン情報２３１０の内容例を示す図であり、図７（ｂ）は、必須メモリ量情報の内容例を示す図である。
【図８】図８（ａ）は、データ重要度情報２４１０の内容例を示す図であり、図８（ｂ）は、メモリにデータを配置した例を示す図である。
【図９】フレームワークを介してメモリを確保する従来例を示す図である。
【符号の説明】
【００８４】
１０００    実行装置
１１００  ２１００    アプリケーション実行制御部
１１１０  ２１１０    メモリ資源パターン決定部
１１２０  ２１２０    環境情報取得部
１１３０  ２１３０    メモリ資源確保部
１２００  ２２００    アプリケーションプログラム
１２２０  ２２００    メモリ資源要求部
１２３０  ２２３０    データ配置部
１２５０  ２２５０    メモリ資源情報
１３００  ２３００    メモリ資源パターン記憶部
１３１０  ２３１０    メモリ資源パターン情報
１３１１  ２３１１    メモリ資源パターン
１３１２  ２３１２    メモリ量
１３１３    優先順位
１３２０    グラフ
１５００    高速メモリ
１６００    低速メモリ
１７００    ＯＳ
２０００    実行装置
２３１３    メモリ合計
２３２０    必須メモリ量情報
２４００    データ重要度記憶部
２４１０    データ重要度情報
【図１】
2007026094.tif 000003
【図２】
2007026094.tif 000004
【図３】
2007026094.tif 000005
【図４】
2007026094.tif 000006
【図５】
2007026094.tif 000007
【図６】
2007026094.tif 000008
【図７】
2007026094.tif 000009
【図８】
2007026094.tif 000010
【図９】
2007026094.tif 000011