(57)【要約】【課題】Ｊａｖａオブジェクトを生成するためのコピー処理によるオーバーヘッドを避け、効率的にメモリ領域を使用することができるメモリ管理方法を提供すること。【解決手段】Ｊａｖａアプリケーションで実行されるＪａｖａオブジェクトが記憶され、Ｊａｖａ仮想マシンによって再配置される可変アドレスメモリ領域と、他のプログラムに割り当てられた固定的なアドレスで生成されたデータが記憶される固定アドレスメモリ領域とを有するメモリにおいて、Ｊａｖａアプリケーションからの要求に応じて、他のプログラムによって固定アドレスメモリ領域に生成されたデータをＪａｖａオブジェクトとして読み出す。【選択図】図１
2008234668.tif 000002
【特許請求の範囲】
【請求項１】
オブジェクト指向型プログラムの実行のための仮想マシンプログラムをプロセッサが実行することにより実現される仮想マシンと、
前記オブジェクト指向型プログラムとは異なるプログラムであって、プロセッサにより直接実行可能な他のプログラムを当該プロセッサが実行することにより実現され、通信媒体を介して画像データをダウンロードするダウンロード管理部と、
前記オブジェクト指向型プログラムの実行の際に用いられるオブジェクトが配置され、当該オブジェクトの格納位置を前記仮想マシンにより変更できるようにした可変アドレスメモリ領域、及び前記プロセッサにて直接実行される他のプログラムにより管理される画像データであって、前記ダウンロード管理部によりダウンロードされた画像データが配置され、当該画像データの格納位置を前記仮想マシンにより直接変更できないようにした固定アドレスメモリ領域を有するメモリと、
前記仮想マシンが前記可変アドレスメモリ領域のオブジェクトにアクセスするために利用する第１のオブジェクト管理情報および前記仮想マシンが前記固定アドレス領域の画像データをオブジェクトとして読み出すために利用する第２のオブジェクト管理情報を記憶するオブジェクト管理情報記憶部と
を備え、
前記仮想マシンが、
前記可変アドレスメモリ領域に前記オブジェクトを生成すると共に、予め内部のデータ構造を定義したクラス情報を含んだクラスライブラリを用いて当該オブジェクトに対応するクラス情報および前記オブジェクトの格納位置に関連する情報を含む第１のオブジェクト管理情報を生成し、前記オブジェクトに対する前記第１のオブジェクト管理情報を前記オブジェクト管理情報記憶部に記録する第１の生成部と、
前記仮想マシンからのダウンロード要求を受け、前記ダウンロード管理部が前記固定アドレスメモリ領域に画像データをダウンロードする場合、前記ダウンロード管理部からの生成要求に従って、前記クラスライブラリに含まれるクラス情報であって、当該画像データに対応するクラス情報および前記画像データの格納位置に関連する情報を含む前記第２のオブジェクト管理情報を生成すると共に、前記画像データに対する前記第２のオブジェクト管理情報を前記オブジェクト管理情報記憶部に記録する第２の生成部と
を有することを特徴とするメモリ管理装置において、
前記仮想マシンが、
前記ダウンロードされた画像データのサイズがしきい値以上の場合に、当該画像データを前記可変アドレスメモリ領域にコピーしないと判定する判定部を更に有し、
前記ダウンロード管理部から前記ダウンロードされた画像データに対する前記第２のオブジェクト管理情報の生成要求があった場合、前記判定部は当該画像データを前記可変アドレスメモリ領域にコピーしないかどうかを判定し、前記判定部により前記ダウンロードされた画像データを前記可変アドレスメモリ領域にコピーしないと判定された場合に、前記第２の生成部は、前記ダウンロードされた画像データに対する前記第２のオブジェクト管理情報を生成すると共に、該第２のオブジェクト管理情報を前記オブジェクト管理情報記憶部に記録することを特徴とするメモリ管理装置。
【請求項２】
前記第１のオブジェクト管理情報に含まれるオブジェクトの格納位置に関連する情報は前記可変アドレスメモリ領域におけるオブジェクトのアドレスを示すポインタであり、
前記第２のオブジェクト管理情報に含まれる前記画像データの格納位置に関連する情報は前記固定アドレスメモリ領域における前記画像データのアドレスを示すポインタである請求項１記載のメモリ管理装置。
【請求項３】
前記判定部は、前記ダウンロードされた画像データのサイズがしきい値より小さい場合に、当該画像データを前記可変アドレスメモリ領域にコピーすると判定することを特徴とする請求項１記載のメモリ管理装置。
【請求項４】
前記仮想マシンおよび前記ダウンロード管理部から前記固定アドレスメモリ領域にダウンロードされた画像データの削除要求がある場合、前記削除要求に対応する前記固定アドレスメモリ領域にダウンロードされた画像データを削除すると共に、当該画像データに対応する第２のオブジェクト管理情報を前記オブジェクト管理情報記憶部から削除する削除部をさらに有することを特徴とする請求項１記載のメモリ管理装置。
【請求項５】
前記オブジェクト指向型プログラムはＪａｖａ（登録商標）言語で記述されていることを特徴とする請求項１記載のメモリ管理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デジタルコンピュータ・ソフトウェアの分野に関し、詳細には、オブジェクト指向型プログラムで実行される実行オブジェクトが記憶されるメモリを管理するメモリ管理装置、メモリ管理方法、メモリ管理プログラム及び該プログラムを記録したコンピュータ読み取り可能な記録媒体に関する。
【背景技術】
【０００２】
近年、コンピュータ技術、通信、及び放送技術の発達に伴い、画像、音声、動画像のような多様な情報メディアを提供するマルチメディアシステムが普及しつつある。このようなマルチメディアシステムとして、対話型デジタルテレビ、移動体端末、ゲーム装置などが市場に提供されている。
【０００３】
マルチメディアシステムにおいては、インターネット等の通信媒体を介して伝送される画像、音声及び動画像データのような大量のデータがマルチメディアシステム内のアプリケーションと結合されて、画面やスピーカなどから映像や音声としてユーザに提供される。故に、ダウンロードされる大量のデータを効率的に処理する技術がマルチメディアシステムに要求される。
【０００４】
画像、音声及び動画像データのような大量のデータの通信メディアからのストリーム処理の効率化を実現する手法として、近年、サン・マイクロシステムズ社のオブジェクト指向型言語であるＪａｖａ（登録商標）環境が普及している。
【０００５】
ここで、Ｊａｖａで記述されたプログラムで構成されるアプリケーション（以下、Ｊａｖａアプリケーション）に関する一般的な従来の技術の一例として、Ｊａｖａアプリケーションからの要求に応じて、インターネットなどの通信媒体を介して画像データがダウンロードされてＪａｖａアプリケーションに用いられるまでの処理の流れについて説明する。
【０００６】
図１０は、マルチメディア環境の下で、Ｊａｖａアプリケーションからの要求に応じて、画像データをダウンロードして実行する一般的なメモリ管理装置の機能ブロック図である。
【０００７】
図１０に示すメモリ管理装置は、Ｊａｖａ言語で構成されたプログラムであるＪａｖａアプリケーション１１、Ｊａｖａ仮想マシンプログラム（以下、ＪａｖａＶＭ）１２、ネイティブプログラム１３、オペレーティングシステム（以下、ＯＳ）１４、オブジェクト記憶部１５とで構成されている。
【０００８】
Ｊａｖａアプリケーション１１は、Ｊａｖａで記述されたソースコードを有しており、コンパイルされて低級な擬似コードである中間コード（以下、バイトコード）に変換される。ＪａｖａＶＭ１２によって、そのバイトコードがコンピュータで解釈・実行可能な機械語（以下、ネイティブコード）に変換されて実行される。ＪａｖａＶＭ１２のこの機能によって、特定のＯＳやプロセッサに依存することなく、いかなるプラットフォームでもＪａｖａの実行可能な環境が実現される。
【０００９】
ＪａｖａＶＭ１２は、インタプリタ部１２ａ、オブジェクト管理部１２ｂ、ＪＮＩ（ＪＮＩ：Ｊａｖａ Ｎａｔｉｖｅ Ｉｎｔｅｒｆａｃｅ）部１２ｃで構成される。インタプリタ部１２ａは、Ｊａｖａアプリケーション１１から１つの命令を表すバイトコードを読み出し、その命令をネイティブコードに変換した後に実行する。オブジェクト管理部１２ｂは、Ｊａｖａアプリケーション１１の実行処理で用いられるデータやソースコード（以下、Ｊａｖａオブジェクト）を生成したり、生成されたＪａｖａオブジェクトを参照したりする。
【００１０】
ここで、Ｊａｖａオブジェクトは、Ｊａｖａのクラスで定義されたバイトコードであって、Ｊａｖａアプリケーション１１からの要求に応じて、オブジェクト管理部１２ｂによってオブジェクト記憶部１５に生成（インスタンス）される。インスタンスされたＪａｖａオブジェクトのみが、実行オブジェクトとして、Ｊａｖａアプリケーション１１による実行処理で用いられることとなる。
【００１１】
ＪＮＩ部１２ｃは、Ｃ言語などで記述されたネイティブコードであるネイティブプログラム１３をＪａｖａアプリケーション１１の要求に応じて実行するための命令や関数の集合からなるＡＰＩ（Application Program Interface）を実現する。また、ＪＮＩ部１２ｃは、ネイティブプログラム１３からの要求に応じてＪａｖａアプリケーション１１を実行させることもできる。
【００１２】
オブジェクト記憶部１５はＲＡＭなどで構成され、Ｊａｖａオブジェクトを記憶したり生成するためのワークエリアとなる可変アドレスメモリ領域１５ａと、ネイティブプログラム１３やＯＳ１４のワークエリアとなる固定アドレスメモリ領域１５ｂとを備えている。
【００１３】
可変アドレスメモリ領域１５ａは、ＪａｖａＶＭ１２による、不要なＪａｖａオブジェクトを回収する機能（以下、ＧＣ：Garbage Collection機能）で使用され、記憶されているデータのアドレスは可変制御可能となっている。このＧＣ機能によって、使用されなくなったメモリ領域が集約されて連続した利用可能なメモリ領域が提供され、メモリを効率良く使用することが可能となる。一方、固定アドレスメモリ領域１５ｂは、ネイティブプログラム１３やＯＳ１４等のモジュールの実行処理に利用されるデータが記憶され、ＯＳ１４の管理下で各プログラムにアドレスが割り当てられ、可変アドレスメモリ領域１５ａのようにデータの再配置は実行されない。
【００１４】
このように、Ｊａｖａアプリケーション１１の実行環境におけるメモリ管理では、ＪａｖａＶＭ１２のＧＣ機能を利用するため、一般的に、Ｊａｖａオブジェクトはメモリ上の可変アドレスメモリ領域１５ａに記憶され、ネイティブプログラム１３やＯＳ１４が用いるデータが記憶される領域とは区分けされている。
【００１５】
ネイティブプログラム１３は、Ｃ言語などで記述されたネイティブコードである。Ｊａｖａアプリケーション１１からの要求に応じて、インターネット、衛星放送、ケーブル放送などの通信媒体を介して画像データを固定アドレスメモリ領域１５ｂにダウンロードするリアルタイム処理を可能とするモジュールでネイティブプログラム１３は構成される。
【００１６】
続いて、ダウンロードされた画像データがＪａｖａアプリケーション１１の実行処理で用いられる場合における処理の流れを説明する。ここで、Ｊａｖａアプリケーション１１は、可変アドレスメモリ領域１５ａに記憶されたＪａｖａオブジェクトしか参照することができないため、ダウンロードされた画像データをＪａｖａオブジェクトとして直接参照することができない。
【００１７】
図１０において、オブジェクト記憶部１５の可変アドレスメモリ領域１５ａにＪａｖａオブジェクトＯＢＡ、ＯＢＢが記憶されている。固定アドレスメモリ領域１５ｂには、ネイティブプログラム１３によってダウンロードされたダウンロードデータＤＡが記憶されている。図１０に示す例では、ＪａｖａオブジェクトＯＢＡ、ＯＢＢのみがＪａｖａアプリケーション１１によって参照可能であり、ダウンロードデータＤＡは参照不可能である。
【００１８】
図１１は、ダウンロードデータＤＡがＪａｖａオブジェクトとして参照可能とされる場合のオブジェクト記憶部１５の状態を示す図である。まず、Ｊａｖａアプリケーション１１からの要求に応じて、オブジェクト管理部１２ｂが可変アドレスメモリ領域１５ａの空き領域にダウンロードデータＤＡに応じたメモリ領域が確保される。
【００１９】
次に、ネイティブプログラム１３が、ＪＮＩ部１２ｃを介して、固定アドレスメモリ領域１５ｂのダウンロードデータＤＡを可変アドレスメモリ領域１５ａにダウンロードデータＤＢとしてコピーする。可変メモリアドレス領域１５ａにコピーされたダウンロードデータＤＢは、Ｊａｖａオブジェクトとして、最終的にＪａｖａアプリケーション１１の実行処理で用いられることとなる。
【発明の開示】
【発明が解決しようとする課題】
【００２０】
上述のようにネイティブプログラム１３で管理される固定アドレスメモリ領域１５ｂのデータがＪａｖａアプリケーション１１の実行処理で用いられる場合、固定アドレスメモリ領域１５ｂから可変アドレスメモリ領域１５ａへのダウンロードデータＤＡのコピー処理が必要となっていた。そのため、コピー処理によるオーバーヘッドが発生し実行処理が遅れる恐れがある。またコピー処理の実行中、コピー先である可変アドレスメモリ領域１５ａとコピー元である固定アドレスメモリ領域１５ｂとのそれぞれにダウンロードデータＤＡのメモリ領域が確保される必要があり、メモリ領域が効率的に使用されない場合があった。
【００２１】
そこで、本発明は、Ｊａｖａオブジェクトを生成するためのコピー処理によるオーバーヘッドを避け、より効率的にメモリ領域を使用することができるようなメモリ管理を行うことを目的とする。
【課題を解決するための手段】
【００２２】
本発明では、オブジェクト指向型の言語で構成されるオブジェクト指向型プログラムを実行する仮想マシンプログラムによって実行される実行オブジェクトが記憶されるメモリが管理される。
【００２３】
このメモリは、実行オブジェクトが記憶され、実行オブジェクトが仮想マシンプログラムによって再配置される可変アドレスメモリ領域と、そのオブジェクト指向型の言語以外の言語で構成される他のプログラムによって生成されたデータが記憶される固定アドレスメモリ領域とを有している。
【００２４】
本発明がメモリ管理装置として実施される場合、メモリ管理装置には、生成手段と読出手段が備えられる。生成手段は、オブジェクト指向型プログラムからの要求に応じて、そのオブジェクト指向型プログラムがデータを読み出すための管理情報を生成する。読出手段は、生成手段で生成された管理情報にしたがって、固定アドレスメモリ領域に生成されたデータを読み出す。
【００２５】
また、メモリ管理装置には、メモリの固定アドレスメモリ領域にデータを受信する通信手段が備えられることがある。この場合、他のプログラムによって生成されたデータは、通信手段を用いて受信されたデータである。また、生成手段は、通信手段を用いて受信されたデータをオブジェクト指向型プログラムが読み出すための管理情報を生成する。
【００２６】
さらに、メモリ管理装置は、検出手段、種別判定手段、削除要求記憶手段、削除判定手段及び削除手段を備えてもよい。検出手段は、オブジェクト指向型プログラムの実行処理の後、オブジェクト指向型プログラムからの削除要求に応じて、当該削除要求されたデータを検出する。種別判定手段は、検出手段で検出されたデータが、可変アドレスメモリ領域または固定アドレスメモリ領域のいずれに記憶されているかを判定する。削除要求記憶手段は、検出手段で検出されたデータが固定アドレスメモリ領域に記憶されていると種別判定手段によって判定された場合、検出手段で検出されたデータに対するオブジェクト指向型プログラムからの削除要求を記憶する。削除判定手段は、削除要求記憶手段で削除要求が記憶されたデータに対する他のプログラムからの削除要求があるか否かを判定する。そして、削除手段は、削除要求記憶手段で削除要求が記憶されたデータに対し、他のプログラムからの削除要求があると削除判定手段で判定された場合、検出されたデータ及びその管理情報を削除する。
【００２７】
さらに、メモリ管理装置は、固定アドレスメモリ領域に記憶されたデータに応じて、当該データの実行オブジェクトが可変アドレスメモリ領域に記憶されるか否かを判定するデータ判定手段を備えてもよい。生成手段は、固定アドレスメモリ領域に記憶されたデータの実行オブジェクトが可変アドレスメモリ領域に記憶されないとデータ判定手段によって判定された場合に、そのデータの管理情報を生成する。
【００２８】
また、本発明は、メモリ管理方法として実施されることもある。このメモリ管理方法では、生成ステップ、読出ステップが行われる。生成ステップでは、オブジェクト指向型プログラムからの要求に応じて、オブジェクト指向型プログラムがデータを読み出すための管理情報が生成される。また、読出ステップでは、生成ステップで生成された管理情報にしたがって、固定アドレスメモリ領域に生成されたデータが読み出される。
【００２９】
また、メモリ管理方法には、メモリの固定アドレスメモリ領域にデータを受信する通信ステップが含まれることがある。この場合、他のプログラムによって生成されたデータは、通信ステップで受信されたデータである。さらに、生成ステップでは、通信ステップで受信されたデータをオブジェクト指向型プログラムが読み出すための管理情報が生成される。
【００３０】
また、メモリ管理方法は、検出ステップ、種別判定ステップ、削除要求記憶ステップ、削除判定ステップ、削除ステップを更に含むようにしてもよい。この場合、まず検出ステップにおいて、オブジェクト指向型プログラムの実行処理の後、オブジェクト指向型プログラムからの削除要求に応じて、当該削除要求されたデータが検出される。次に種別判定ステップにおいて、検出ステップで検出されたデータが、可変アドレスメモリ領域または固定アドレスメモリ領域のいずれに記憶されているかが判定される。削除要求記憶ステップでは、検出ステップで検出されたデータが固定アドレスメモリ領域に記憶されていると種別判定ステップによって判定された場合、検出ステップで検出されたデータに対するオブジェクト指向型プログラムからの削除要求が記憶される。さらに削除要求ステップでは、削除要求記憶ステップで削除要求が記憶されたデータに対する他のプログラムからの削除要求があるか否かが判定される。そして、削除ステップでは、削除要求記憶ステップで削除要求が記憶されたデータに対し、他のプログラムからの削除要求があると削除判定ステップで判定された場合、検出されたデータ及びその管理情報が削除される。
【００３１】
さらに、メモリ管理方法は、固定アドレスメモリ領域に記憶されたデータに応じて、当該データの実行オブジェクトが可変アドレスメモリ領域に記憶されるか否かを判定するデータ判定ステップを含むことがある。生成ステップでは、固定アドレスメモリ領域に記憶されたデータの実行オブジェクトが可変アドレスメモリ領域に記憶されないとデータ判定手段によって判定された場合に、そのデータの管理情報が生成される。
【００３２】
また、本発明は、メモリ管理プログラム又は該プログラムを記録したコンピュータ読み取り可能な記録媒体として実施されることもある。
【００３３】
このメモリ管理プログラムは、上述のメモリ管理方法をコンピュータに実行させるためのプログラムである。メモリ管理プログラムがコンピュータに読み込まれることにより、ソフトウェアとハードウェア資源とが協働し、固定アドレスメモリ領域に記憶されたデータの管理情報の生成、管理情報に基づくデータの読み出しが実現される。その結果、コンピュータを利用して、例えばメモリ管理装置が構築される。また、メモリ管理プログラムが読み込まれたコンピュータが動作すれば、メモリ管理方法が構築される。
【００３４】
メモリ管理プログラムは、例えばインターネットなどの通信媒体を介した通信によって配布、販売されることもあれば、記録媒体に記録された状態で配布、販売されることもある。
【発明の効果】
【００３５】
本発明によれば、オブジェクト指向型プログラムからの要求に応じて、他のプログラムによって固定アドレスメモリ領域に生成されたデータをオブジェクト指向型プログラムが読み出すための管理情報が生成されるので、従来のように、ダウンロードされたデータをオブジェクト指向型言語のプログラムで管理されるメモリ領域へのコピー処理が不要となる。また、処理のオーバーヘッドがなくなって処理負荷が軽減され、効率的にメモリ領域を使用することができるようになる。
【００３６】
また、Ｊａｖａアプリケーションの実行処理が終了して、固定アドレスメモリ領域のデータが不要になった場合、固定アドレスメモリ領域から不要なデータが削除されるので、ネイティブプログラムやＯＳのワークエリアとしての空きメモリ領域を有効に確保することができる。
【００３７】
さらに、固定アドレスメモリ領域に記憶されたデータに応じて、そのデータが可変アドレスメモリ領域に記憶されないと判定された場合にのみ、管理情報が生成されるようにすることによって、データに応じた最適なメモリ管理が行われる。
【発明を実施するための最良の形態】
【００３８】
以下、本発明の実施の形態について図面を参照しながら詳細に説明する。
（実施の形態１）
図１は、本発明の実施の形態１に係るメモリ管理装置１００の概略構成を示す機能ブロック図である。図１において、メモリ管理装置１００は、例えば、Ｊａｖａアプリケーション記憶部１０１、ＪａｖａＶＭ１０２、Ｊａｖａオブジェクトテーブル１０３、Ｊａｖａオブジェクト管理情報記憶部１０４、オブジェクト記憶部１０５、ダウンロード管理部１０６、ネットワーク制御部１０７、ネットワークデバイス１０８、固定アドレスメモリ提供部１０９を備えている。
【００３９】
Ｊａｖａアプリケーション記憶部１０１には、Ｊａｖａアプリケーション１１１とクラスライブラリ１１２とが記憶されている。Ｊａｖａアプリケーション１１１は、オブジェクト指向言語であるＪａｖａで記述されたプログラムで構成される。Ｊａｖａアプリケーション１１１のソースコードは、コンパイルされることによって、バイトコードに変換される。ＪａｖａＶＭ１０２には、このバイトコードが送信される。また、クラスライブラリ１１２は、Ｊａｖａオブジェクト内部のデータ構造をひとまとめに定義したクラスが集められたライブラリである。本実施の形態のＪａｖａアプリケーション記憶部１０１はＲＡＭ（Random Access Memory）で構成されているが、ＲＯＭ（Read Only Memory）、ハードディスク等で実現してもよい。
【００４０】
ＪａｖａＶＭ１０２は、例えば、Ｊａｖａインタプリタ部１０２ａ、Ｊａｖａオブジェクト参照部１０２ｂ、可変アドレスメモリ用Ｊａｖａオブジェクト生成部（以下、ＧＯＢＶ部）１０２ｃ、固定アドレスメモリ用Ｊａｖａオブジェクト生成部１０２ｄ（ＧＯＢＦ部）を備えている。
【００４１】
Ｊａｖａインタプリタ部１０２ａは、Ｊａｖａアプリケーション１１１から１つの命令ずつ読み出して解釈実行する。なお、本メモリ管理装置１００はインタプリタの実行機構を採用しているが、コンパイラ等の実行機構にも適宜変更可能である。また、Ｊａｖａオブジェクト参照部１０２ｂは、Ｊａｖａアプリケーション１１１からの要求に応じて、既に生成されたＪａｖａオブジェクトの読み出し処理を実現する。ＧＯＢＶ部１０２ｃ、ＧＯＢＦ部１０２ｄは、Ｊａｖａアプリケーション１１１からの要求に応じて、Ｊａｖａオブジェクトをオブジェクト記憶部１０５に生成する。
【００４２】
Ｊａｖａオブジェクトテーブル１０３には、Ｊａｖａオブジェクト管理情報のアドレスを示すポインタが格納される。また、Ｊａｖａオブジェクト管理情報記憶部１０４には、Ｊａｖａオブジェクト管理情報が記憶される。Ｊａｖａオブジェクト管理情報は、オブジェクト記憶部１０５のＪａｖａオブジェクトやそのＪａｖａオブジェクトのクラスに関するデータを管理するための情報である。Ｊａｖａオブジェクトに関する情報は、例えばオブジェクト記憶部１０５におけるＪａｖａオブジェクトのアドレスを示すポインタ、データサイズである。また、クラスに関する情報は、具体的には、Ｊａｖａオブジェクトの型を示すクラス名や実行コード等、アプリケーション１１１による実行や参照に必要な情報である。
【００４３】
オブジェクト記憶部１０５は、ＲＡＭなどで構成される。また、オブジェクト記憶部１０５は、Ｊａｖａオブジェクトを生成するためのワークエリアとなる可変アドレスメモリ領域１０５ａと、図示しないＯＳや他のアプリケーションで管理されるデータが記憶される固定アドレスメモリ１０５ｂとを備えている。
【００４４】
可変アドレスメモリ領域１０５ａには、ＪａｖａＶＭ１０２のＧＯＢＶ部１０２ｃによってＪａｖａオブジェクトが生成される。また、ＪａｖａＶＭ１０２のＧＣ機能で使用され、記憶されているＪａｖａオブジェクトのアドレスは可変制御可能である。
【００４５】
一方、固定アドレスメモリ領域１０５ｂは、図示しないＯＳの管理下で各プログラムによって生成されるデータが記憶され、可変アドレスメモリ領域１０５ａのようにＪａｖａＶＭ１０２のＧＣ機能によってデータの再配置は実行されない。
【００４６】
ダウンロード管理部１０６は、プラットフォームに依存したネイティブコードを生成するＣ言語等のネイティブ言語とＪａｖａ言語との両方で記述されたプログラムによって実現され、インターネット３００を介して受信されるデータの固定アドレスメモリ領域１０５ｂにおけるメモリ管理を実行する。
【００４７】
ネットワーク制御部１０７は、モデムやＴＡ（ＴＡ：Terminal Adapter）などで構成されるネットワークデバイス１０８を制御して、インターネット３００からデータを受信する。また、ネットワーク制御部１０７は、リアルタイム処理が要求され、Ｃ言語などのネイティブ言語で構成されたプログラムで実現される。
【００４８】
固定アドレスメモリ提供部１０９は、Ｊａｖａアプリケーション１１１の要求に応じてデータが受信される場合、固定アドレスメモリ領域１０５ｂの空き領域から受信されたデータを記憶するためのメモリ領域をダウンロード管理部１０６に提供する。
【００４９】
なお、図示しない中央演算処理装置（ＣＰＵ）を含む制御部が、本発明のプログラムにしたがってＣＰＵ以外の各回路と協働してメモリ管理装置１００で実行される制御動作を実現している。しかし、以下では、説明の便宜上、ＣＰＵが関係する制御動作を、Ｊａｖａアプリケーションなどのプログラムが直接的に制御しているとものとする。
【００５０】
次に、メモリ管理装置１００におけるＪａｖａオブジェクト管理のデータ構成について、図面を用いて具体的に説明する。図２は、オブジェクトテーブル１０３、Ｊａｖａオブジェクト管理情報記憶部１０４、オブジェクト記憶部１０５に記憶されるデータ構成を示す図である。
【００５１】
図２において、ＯＢ１はＧＯＢＶ部１０２ｃによって可変アドレスメモリ領域１０５ａに生成されたＪａｖａオブジェクトである。また、ＯＭ１は、ＪａｖａオブジェクトＯＢ１のＪａｖａオブジェクト管理情報である。このＪａｖａオブジェクト情報は、可変アドレスメモリ領域１０５ａにおけるＪａｖａオブジェクトＯＢ１のアドレスを示すポインタやクラス情報を含む。Ｐ１は、Ｊａｖａオブジェクト管理情報ＯＭ１のＪａｖａオブジェクト管理情報記憶部１０４におけるアドレスを示すポインタである。ポインタＰ１、Ｊａｖａオブジェクト管理情報ＯＭ１を参照することによって、Ｊａｖａアプリケーション１１１はＪａｖａオブジェクト参照部１０２ｂを介してＪａｖａオブジェクトＯＢ１を読み出して実行処理に用いることができる。
【００５２】
同様に、ＯＢ２はＧＯＢＶ部１０２ｃによって可変アドレスメモリ領域１０５ａに生成されたＪａｖａオブジェクトである。ＯＭ２は、ＪａｖａオブジェクトＯＢ２のＪａｖａオブジェクト管理情報である。このＪａｖａオブジェクト管理情報は、可変アドレスメモリ領域１０５ａにおけるＪａｖａオブジェクトＯＢ２のアドレスを示すポインタやクラス情報を含む。Ｐ２は、Ｊａｖａオブジェクト管理情報ＯＭ２のＪａｖａオブジェクト管理情報記憶部１０４におけるアドレスを示すポインタである。ポインタＰ２、Ｊａｖａオブジェクト管理情報ＯＭ２を参照することによって、Ｊａｖａアプリケーション１１１はＪａｖａオブジェクト参照部１０２ｂを介してＪａｖａオブジェクトＯＢ２を読み出して実行処理に用いることができる。
【００５３】
また、Ｄ１は、ダウンロード管理部１０６によってインターネット３００から固定アドレスメモリ領域１０５ｂにダウンロードされたデータを示す。ここで、本メモリ管理装置１００では、ダウンロード管理部１０６のようなＪａｖａアプリケーション以外のネイティブプログラムによって固定アドレスメモリ領域１０５ｂに生成されたデータが、Ｊａｖａアプリケーション１１１の要求に応じてＪａｖａオブジェクトとして読み出せるようになっている。図２に示す例では、ＧＯＢＦ部１０２ｄによってダウンロードデータＤ１を読み出すためのＪａｖａオブジェクト管理情報が生成される。これにより、インターネット３００から固定アドレスメモリ領域１０５ｂに受信されたダウンロードデータＤ１が、可変アドレスメモリ領域１０５ａへのコピー処理を経ずにＪａｖａオブジェクトとして読み出せるようになる。
【００５４】
図３は、ＧＯＢＦ部１０２ｄによって、図２に示したダウンロードデータＤ１のＪａｖａオブジェクト管理情報が生成された状態を示す図である。ＯＭＤは、ダウンロードデータＤ１の固定アドレスメモリ領域におけるアドレスを示すポインタやクラス情報を含むＪａｖａオブジェクト管理情報である。また、ＰＤはＪａｖａオブジェクト管理情報ＯＭＤのＪａｖａオブジェクト管理情報記憶部１０４におけるアドレスを示すポインタである。ポインタＰＤ、Ｊａｖａオブジェクト管理情報ＯＭＤを参照することによって、Ｊａｖａアプリケーション１１１はＪａｖａオブジェクト参照部１０２ｂを介してダウンロードデータＤ１をＪａｖａオブジェクトとして読み出して実行処理に用いることが可能となる。
【００５５】
以下、本実施の形態に係るメモリ管理装置１００において、ダウンロードデータＤ１がダウンロードされてからＪａｖａオブジェクトとして読み出されるまでの処理の流れを説明する。図４は、ダウンロードデータＤ１の受信から、ＪａｖａオブジェクトとしてダウンロードデータＤ１が読み出されるまでの処理の流れを示す図である。
【００５６】
Ｊａｖａアプリケーション１１１が、ＪａｖａＶＭ１０２を介しダウンロード管理部１０６に対して、ダウンロードすべきデータの識別情報を指定して受信要求を実行する（ステップＳ１）。ダウンロードすべきデータの識別情報として、データの識別番号や格納場所（例えば、ＵＲＬ：Uniform Resource Locater）が指示される。
【００５７】
次に、ダウンロード管理部１０６が、ダウンロードされるデータの識別番号や固定アドレスメモリ領域１０５ｂで格納されるアドレスを指定して、ネットワーク制御部１０７に対してダウンロード要求を実行する（ステップＳ２）。ネットワーク制御部１０７は、ステップＳ１で指定されたインターネット３００上のデータの格納場所にネットワークデバイス１０８を介して接続し、指定されたデータをダウンロードする。そのダウンロードされたデータはダウンロードデータＤ１（図２参照）として固定アドレスメモリ領域１０５ｂのステップＳ２で指定されたアドレスに格納される（ステップＳ３）。
【００５８】
ダウンロードデータＤ１のダウンロードが終了した後、ネットワーク制御部１０７は、ダウンロードが完了したことをダウンロード管理部１０６に通知する（ステップＳ４）。ダウンロードが完了した後、ダウンロードデータＤ１に基づいて、後述するＪａｖａオブジェクト生成処理がＪａｖａＶＭ１０２によって実行される（ステップＳ５）。ステップＳ５のＪａｖａオブジェクト生成処理によってＪａｖａオブジェクト管理情報ＯＭＤが生成された後、ダウンロードデータＤ１がＪａｖａオブジェクトとして、Ｊａｖａアプリケーション１１１によって読み出されて実行処理に用いられる（ステップＳ６）。
【００５９】
次に、Ｊａｖａオブジェクト生成処理（ステップＳ５）の処理の流れを説明する。図５は、Ｊａｖａオブジェクト生成処理（ステップＳ５）の流れを示すフローチャートである。
【００６０】
ダウンロード管理部１０６は、ＧＯＢＦ部１０２ｄに対して、固定アドレスメモリ領域１０５ｂのダウンロードデータＤ１を指定して、そのダウンロードデータＤ１に基づくＪａｖａオブジェクトの生成を要求する（ステップＳ１１）。次に、ダウンロードデータＤ１が固定アドレスメモリ領域１０５ｂで格納されるアドレスが指定されているか否かが判定される（ステップＳ１２）。アドレスが指定されていなければ（ステップＳ１２；Ｎｏ）、固定アドレスメモリ提供部１０９によって、固定アドレスメモリ領域１０５ｂにおける所定容量分のメモリ領域が提供される（ステップＳ１３）。図２の場合、既にステップＳ２でダウンロードデータＤ１のアドレスがダウンロード管理部１０６によって指定されているので、ステップＳ１３の処理は実行されずにステップＳ１４の処理に移行する。
【００６１】
Ｊａｖａオブジェクトに変換されるダウンロードデータＤ１のアドレスが指定されている場合（ステップＳ１２；Ｙｅｓ）、生成されるＪａｖａオブジェクトに対応したクラス情報がクラスライブラリ１１２からＪａｖａＶＭ１０２を介して読み出され、Ｊａｖａオブジェクト管理情報記憶部１０４のＪａｖａオブジェクト管理情報ＯＭＤとして記憶される（ステップＳ１４）。
【００６２】
次に、ダウンロードデータＤ１のアドレスを示すポインタがＪａｖａオブジェクト管理情報ＯＭＤとして記憶されるメモリ領域がＪａｖａオブジェクト管理情報記憶部１０４に確保される（ステップＳ１５）。固定アドレスメモリ領域１０５ｂのダウンロードデータＤ１のアドレスを示すポインタは、確保されたメモリ領域にＪａｖａオブジェクト管理情報ＯＭＤとして記憶される(ステップＳ１６)。
【００６３】
続いて、Ｊａｖａオブジェクト管理情報ＯＭＤのアドレスを示すポインタＰＤがＪａｖａオブジェクトテーブル１０３に記憶される(ステップＳ１７)。その後、ダウンロードデータＤ１はダウンロード管理部１０６によってＪａｖａアプリケーション１１１に渡される。更に、ダウンロードデータＤ１は、Ｊａｖａオブジェクト管理情報ＯＭＤにしたがって、Ｊａｖａオブジェクト参照部１０２ｂによって読み出され、Ｊａｖａアプリケーション１１１の実行処理で用いられる（図４のステップＳ６）。
【００６４】
このように、固定アドレスメモリ領域１０５ｂに生成されたダウンロードデータをＪａｖａオブジェクトとして直接読み出すことが可能となるので、ダウンロードしたデータを可変アドレスメモリ領域１０５ａへのコピー処理が不要となり、処理のオーバーヘッドがなくなってメモリ管理装置の処理負荷が軽減される。
【００６５】
また、コピー処理の実行中、可変アドレスメモリ領域１０５ａ、固定アドレスメモリ領域１０５ｂそれぞれに、Ｊａｖａオブジェクトを生成するために２つのメモリ領域を確保する必要がなくなり、効率的にメモリ領域を使用できるようになる。音声、画像データのような大容量のデータをダウンロードしてＪａｖａアプリケーション１１１で参照する際にとりわけ有効である。大容量のデータを受信する場合、コピー処理中に、可変アドレスメモリ領域１０５ａ、固定アドレスメモリ領域１０５ｂの双方に大容量のメモリ領域を確保する必要がなくなるためである。なお、ソースコードをダウンロードする際も本発明を適用可能であることは言うまでもない。
【００６６】
また、図４において、ダウンロードが終了した後に（ステップＳ３）、ダウンロードデータのＪａｖａオブジェクト管理情報を生成して（ステップＳ５）、Ｊａｖａアプリケーション１１１からダウンロードデータが直接参照されるようになっているが、リアルタイム処理の効率を更に向上させるために処理手順を変更可能である。具体的には、ダウンロードデータのダウンロードが完了せずとも、ダウンロード途中のデータを、Ｊａｖａアプリケーション１１１から参照可能にすることができる。
【００６７】
例えば、図４において、Ｊａｖａアプリケーション１１１によって、ダウンロードすべきデータの識別情報が指定された後（ステップＳ１）、ステップＳ５のＪａｖａオブジェクト生成処理によって、Ｊａｖａオブジェクト管理情報を予め生成するようにするようにすればよい。これにより、Ｊａｖａアプリケーション１１１が要求するデータが固定アドレスメモリ領域１０５ｂへのダウンロード中であっても、ダウンロード中のデータを直接Ｊａｖａオブジェクトとして読み出せるようになる。その結果、固定アドレスメモリ領域１０５ｂから可変アドレスメモリ領域１０５ａへのコピー処理を経る従来の技術よりも、リアルタイム処理の効率を更に向上させることができる。この場合、図５のＪａｖａオブジェクト生成処理において、固定アドレスメモリ領域１０５ｂのアドレスが指定されていないので（図５のステップＳ１２；Ｎｏ）、固定アドレスメモリ提供部１０９によって、固定アドレスメモリ領域１０５ｂにおけるメモリ領域が提供されることになる（図５のステップＳ１３）。
（実施の形態２）
以下、本発明の実施の形態２について図面を参照しながら詳細に説明する。
【００６８】
本実施の形態に係るメモリ管理装置においては、実施の形態１に係るメモリ管理装置１００と同様に、固定アドレスメモリ領域１０５ｂのデータが、Ｊａｖａオブジェクト管理情報にしたがって読み出されるようになっている。しかも、Ｊａｖａアプリケーションの実行処理が終了して、固定アドレスメモリ領域１０５ｂのデータが不要になった場合、固定アドレスメモリ領域から不要なデータが削除されるようになっている。固定アドレスメモリ領域１０５ｂの不要なデータが削除されることにより、ネイティブプログラムやＯＳのワークエリアとしての空きメモリ領域を有効に確保することができる。
【００６９】
図６は、本発明の実施の形態２に係るメモリ管理装置２００の概略構成を示す機能ブロック図である。本実施の形態に係るメモリ管理装置２００は、例えば、Ｊａｖａアプリケーション記憶部１０１、ＪａｖａＶＭ２０２、Ｊａｖａオブジェクトテーブル１０３、Ｊａｖａオブジェクト管理情報記憶部１０４、オブジェクト記憶部１０５、ダウンロード管理部１０６、ネットワーク制御部１０７、ネットワークデバイス１０８、固定アドレスメモリ提供部１０９を備えている。Ｊａｖａアプリケーション記憶部１０１、Ｊａｖａオブジェクトテーブル１０３、Ｊａｖａオブジェクト管理情報記憶部１０４、オブジェクト記憶部１０５、ダウンロード管理部１０６、ネットワーク制御部１０７、ネットワークデバイス１０８、固定アドレスメモリ提供部１０９は、基本的な構成や機能は実施の形態１と同様であるので、ここでは各部の詳細な説明は省略する。
【００７０】
本実施の形態に係るメモリ管理装置２００と実施の形態１に係るメモリ管理装置１００との構成上の差異は、ＪａｖａＶＭ２０２にガベージ処理部２０２ａを更に備えていることである。
【００７１】
ガベージ処理部２０２ａは、例えば、非参照オブジェクト検出部２０３、オブジェクト種別判定部２０４、可変アドレスメモリ用削除部２０５、固定アドレスメモリ用削除判定部２０６、固定アドレスメモリ用削除部２０７を備えている。ガベージ処理部２０２ａは、Ｊａｖａアプリケーション１１１やダウンロード管理部１０６からの要求に応じて、可変アドレスメモリ領域１０５ａや固定アドレスメモリ領域１０５ｂに記憶されている不要なＪａｖａオブジェクトを削除する機能を実現する。
【００７２】
非参照オブジェクト検出部２０３は、オブジェクト記憶部１０５に記憶されているＪａｖａオブジェクトの中から、Ｊａｖａアプリケーション１１１によって参照されていない不要なオブジェクトを検出する。
【００７３】
Ｊａｖａオブジェクト種別判定部２０４は、非参照オブジェクト検出部２０３によって検出された不要なＪａｖａオブジェクトが可変アドレスメモリ領域１０５ａ、固定アドレスメモリ領域１０５ｂのいずれに記憶されているかを判定する。
【００７４】
可変アドレスメモリ用削除部２０５は、可変アドレスメモリ領域１０５ａに記憶されている不要なＪａｖａオブジェクトを削除する。
【００７５】
固定アドレスメモリ用削除判定部２０６は、オブジェクト種別判定部２０４によって不要なＪａｖａオブジェクトに対応するデータが固定メモリアドレス領域１０５ｂに存在すると判定されたか否か、及びダウンロード管理部１０６からの不要なＪａｖａオブジェクトに対応するデータの削除要求があるか否かを判定する。
【００７６】
固定アドレスメモリ用削除部２０７は、固定アドレスメモリ用削除判定部２０６の判定結果に応じて固定アドレスメモリ領域１０５ｂに記憶されている不要なＪａｖａオブジェクトに対応するデータを削除する。
【００７７】
以下、オブジェクト記憶部１０５中の不要なＪａｖａオブジェクトを削除する処理の流れを説明する。図７は、オブジェクト記憶部１０５の不要なＪａｖａオブジェクトを削除する処理の流れを示すフローチャートである。
【００７８】
まず、Ｊａｖａアプリケーション１１１の実行処理が終了した後、オブジェクト記憶部１０５中のＪａｖａオブジェクトへの参照が外される(ステップＳ２１)。続いて、参照が外された不要なＪａｖａオブジェクトを削除する要求が、Ｊａｖａアプリケーション１１１からＪａｖａＶＭ２０２へ実行される(ステップＳ２２)。
【００７９】
次に、ＪａｖａＶＭ２０２の非参照オブジェクト検出部２０３によって、削除する要求があったＪａｖａオブジェクトが検出される。検出されたＪａｖａオブジェクトが、可変アドレスメモリ領域１０５ａまたは固定メモリアドレス領域１０５ｂのいずれに属するかがＪａｖａオブジェクト種別判別部２０４によって判定される(ステップＳ２３)。検出されたＪａｖａオブジェクトが可変アドレスメモリ領域１０５ａに属する場合、可変アドレスメモリ用削除部２０５によって検出されたＪａｖａオブジェクトが削除される。
【００８０】
また、削除する要求があったＪａｖａオブジェクトが固定アドレスメモリ領域１０５ｂに記憶されたデータに基づくとステップＳ２３で判定された場合、固定アドレスメモリ用削除判定部２０６によって、そのＪａｖａオブジェクトに対応するデータを削除する要求が記憶される(ステップＳ２４)。
【００８１】
その後、ステップＳ２４でオブジェクト種別判定部２０４からの削除要求が記憶されたデータに対して、ダウンロード管理部１０６から削除要求が実行される（ステップＳ２５）。ダウンロード管理部１０６からの削除要求が実行されると、固定アドレスメモリ用削除判定部２０６は固定アドレス用削除部２０７に対してステップＳ２４で削除要求が記憶されたデータの削除要求を実行する。ダウンロード管理部１０６による削除要求が無ければ、固定アドレスメモリ用削除判定部２０６から固定アドレス用削除部２０７に対する削除要求は実行されない。
【００８２】
つまり、Ｊａｖａアプリケーション１１１からの削除要求とダウンロード管理部１０６からの削除要求とが共に実行された場合のみ、固定アドレスメモリ用削除部２０７によって、固定アドレスメモリ領域１０５ｂの不要なデータが削除されるようになる。これにより、メモリ管理装置２００内の全てのアプリケーションから参照されなくなった場合のみ不要なデータが削除されるので、アプリケーション実行時でのデータの欠落が回避でき、安全にメモリの共有化が実現される。なお、Ｊａｖａアプリケーション１１１からの削除要求とダウンロード管理部１０６からの削除要求との順番が入れ替わってもよい。
【００８３】
次に、固定アドレスメモリ用削除部２０７は、削除対象のデータに対応するＪａｖａオブジェクトテーブル１０３のポインタ、Ｊａｖａオブジェクト管理情報記憶部１０４に記憶されたＪａｖａオブジェクト管理情報を削除する（ステップＳ２６）。
【００８４】
更に、固定アドレスメモリ用削除部２０７は、固定アドレスメモリ提供部１０９に、削除対象のデータが記憶された固定アドレスメモリ領域１０５ｂにおけるメモリ領域を開放させる要求を実行する（ステップＳ２７）。削除要求の受信後、固定アドレスメモリ提供部１０９は、削除対象のデータを削除してメモリを開放する（ステップＳ２８）。
【００８５】
以上、説明したように、メモリ管理装置２００内の全てのアプリケーションから参照されなくなった場合のみ、固定アドレスメモリ領域１０５ｂの不要なデータが削除されるので、アプリケーション実行時でのデータの欠落が回避でき、安全にメモリの共有化が実現される。
（実施の形態３）
上述の実施の形態１では、Ｊａｖａアプリケーション１１１が、ネイティブプログラムによって固定アドレスメモリ領域１０５ｂに生成されたデータを読み出すために、ＧＯＢＦ部１０２ｄによって、そのデータの管理情報が生成された。
【００８６】
もっとも、ネイティブプログラムによって固定アドレスメモリ領域１０５ｂに生成されたデータ全てについて、ＧＯＢＦ部１０２ｄにより管理情報を生成する必要はない。固定アドレスメモリ領域１０５ｂを管理するＯＳや装置の仕様、機能によっては、固定アドレスメモリ領域１０５ｂにあるデータをＪａｖａオブジェクトとして扱わない方が好ましい。
【００８７】
例えばネイティブプログラムによって固定アドレスメモリ領域１０５ｂに生成されるデータのサイズが小さければ、そのデータのＪａｖａオブジェクトが可変アドレスメモリ領域１０５ａに生成されるとしても、ＧＣ機能によるＪａｖａオブジェクトの再配置の頻度も少なく、処理オーバーヘッドやメモリ効率の低下も発生せず、その処理によるデメリットは比較的小さい。しかしながら、固定アドレスメモリ領域１０５ｂを管理するＯＳがＧＣ機能を有していない場合、固定アドレスメモリ領域１０５ｂにあるサイズの小さなデータがＪａｖａオブジェクトとして扱われると、サイズの小さなデータは、固定アドレスメモリ領域１０５ｂにフラグメンテーションを発生させる要因となる。
【００８８】
また、例えば音声、画像データのような大容量のデータの場合、既述の通り、そのデータのＪａｖａオブジェクトが可変アドレスメモリ領域１０５ａに生成されると、オーバーヘッドやメモリ効率の低下が大きくなる。さらに、大容量のデータによって可変アドレスメモリ領域１０５ａが圧迫されると、ＧＣ機能によるＪａｖａオブジェクトの再配置が頻繁に発生し、システムの負荷が大きくなる。固定アドレスメモリ領域１０５ｂのサイズが小さくても、データの有効期限が短ければ、固定アドレスメモリ領域１０５ｂが圧迫されることよりも、これらのデメリットが問題になる。しかしながら、固定アドレスメモリ領域１０５ｂのサイズが小さい場合、大容量のデータの有効期限が長ければ、データのＪａｖａオブジェクトが可変アドレスメモリ領域１０５ａに生成される方が好ましい。
【００８９】
そこで、図８に示すように、この実施の形態３におけるメモリ管理装置４００は、実施の形態１におけるメモリ管理装置１００の構成に加え、判定部４０１を備えている。
【００９０】
判定部４０１は、固定アドレスメモリ領域１０５ｂに記憶されたデータに応じて、当該データのＪａｖａオブジェクトが可変アドレスメモリ領域１０５ａに記憶されるか否かを判定する。
【００９１】
判定の基準は、データのサイズ、種別、有効期限などである。これらの基準は、メモリ全体のサイズや、その内訳（可変アドレスメモリ領域１０５ａ、固定アドレスメモリ領域１０５ｂの各サイズ）、ダウンロードされるデータのサイズやデータの扱い方、固定アドレスメモリ領域を管理するＯＳの機能などにより定められる。
【００９２】
例えばデータのサイズが所定サイズ以上である場合やデータの有効期限が所定期間以上である場合、データの種別が音声、映像データなどのＡＶデータを表す場合には、Ｊａｖａオブジェクトは可変アドレスメモリ領域１０５ａに記憶されないと判定される。この場合、実施の形態１で説明したのと同様に、固定アドレスメモリ領域１０５ｂに記憶されたデータの管理情報が、ＧＯＢＦ部１０２ｄによって生成される。Ｊａｖａオブジェクト参照部１０２ｂは、この管理情報にしたがって、固定アドレスメモリ領域１０５ｂに記憶されたデータをＪａｖａオブジェクトとして読み出す。
【００９３】
これに対し、例えばデータのサイズが所定サイズより小さい場合やデータの有効期限が所定期間より短い場合、データの種別がＡＶデータでない通常のデータを表す場合には、Ｊａｖａオブジェクトは可変アドレスメモリ領域１０５ａに記憶されると判定される。この場合、従来通り、固定アドレスメモリ領域１０５ｂに記憶されたＪａｖａオブジェクトが可変アドレスメモリ領域１０５ａに生成されてもよい。
【００９４】
本実施の形態３におけるメモリ管理装置４００において、ダウンロードデータＤ１がダウンロードされてからＪａｖａオブジェクトとして読み出されるまでの処理の流れは、図４を用いて説明された実施の形態１の場合と基本的に変わらない。
【００９５】
但し、本実施の形態３におけるメモリ管理装置４００では、実施の形態１の場合とステップＳ５におけるＪａｖａオブジェクト生成処理が一部異なる。図９は、実施の形態３におけるＪａｖａオブジェクト生成処理の流れを示すフローチャートである。
【００９６】
図９に示すように、実施の形態３におけるＪａｖａオブジェクト生成処理の流れが、実施の形態１の場合と異なるのは、ステップＳ４０、Ｓ４１が設けられている点である。
【００９７】
ステップＳ１１において、Ｊａｖａオブジェクトの生成要求が行われたとき、固定アドレスメモリ領域１０５ｂに記憶されたダウンロードデータＤ１のサイズや種別、有効期限などが得られる。
【００９８】
ステップＳ４０では、判定部４０１が、固定アドレスメモリ領域１０５ｂに記憶されたダウンロードデータＤ１のサイズや種別、有効期限などに基づいて、そのデータＤ１がＪａｖａオブジェクトとして可変アドレスメモリ領域１０５ａに記憶されるか否かを判定する。
【００９９】
ダウンロードデータＤ１がＪａｖａオブジェクトとして可変アドレスメモリ領域１０５ａに記憶されないと判定された場合にのみ、実施の形態１と同様に、ステップＳ１２以降の処理が行われる。
【０１００】
一方、ステップＳ４０において、ダウンロードデータＤ１がＪａｖａオブジェクトとして可変アドレスメモリ領域１０５ａに記憶されると判定された場合には、ダウンロードデータＤ１のＪａｖａオブジェクトが可変アドレスメモリ領域１０５ａに生成される（ステップＳ４１）。なお、ステップＳ４１の処理は、従来と同様であるので、この処理の詳細な説明は省略する。
【０１０１】
このように、本実施の形態３では、固定アドレスメモリ領域に記憶されたデータのサイズなどに応じて、そのデータが可変アドレスメモリ領域に記憶されないと判定された場合にのみ、管理情報が生成される。固定アドレスメモリ領域を管理するＯＳや装置の仕様などによって判定基準が変更されれば、扱われるデータが多様であっても、固定アドレスメモリ領域を管理するＯＳや装置の仕様などに応じて、それらのデータを記憶する最適なメモリ領域が選択される。その結果、メモリ管理の最適化が図られる。
【０１０２】
以上、各実施の形態において本発明を具体的に説明したが、本発明はこれらの実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で適宜変更可能であることはもちろんである。
【０１０３】
なお、本発明に係るメモリ管理装置はインターネット３００を介してダウンロードされたデータに基づいてＪａｖａオブジェクトが生成されるようになっているが、デジタルＴＶ、セットトップボックス、携帯電話等の移動体端末にも適用可能である。例えば、デジタルＴＶにおいては、デジタル放送網を介して送信されている搬送波に重畳されたデータを受信することができるデジタルＴＶ受信装置にも本発明に係るメモリ管理装置を適用できる。デジタルＴＶに本発明が適用された場合、ネットワークデバイス（図１参照）をデジタル放送受信チューナで構成してデータを受信するようにすればよい。
【０１０４】
また、本発明のプログラムは、インターネットなどの通信媒体を介して接続されるサーバからクライアントコンピュータのメモリやハードディスクドライブにダウンロードされるなどの形態で、配布、販売されることがある。この場合、クライアントコンピュータに本発明のプログラムが読み込まれることにより、そのコンピュータを利用して、本発明のメモリ管理装置やメモリ管理方法が構築される。さらに、他の機器側のメモリなどに記憶されたプログラムやデータを、通信媒体を介して使用する形態が採用されてもよい。
【０１０５】
また、本発明のプログラムがＣＤ−ＲＯＭ、ＦＤ、ＤＶＤ等の記録媒体に格納され、汎用コンピュータに対して着脱自在な形で提供される形態でもよい。これにより、本発明のプログラムが格納されたソフトウェア商品として装置と独立して容易に配布、販売することができるようになる。汎用コンピュータや汎用ゲーム装置などのハードウェアを用いてこのソフトウェアを使用することにより、これらのハードウェアで本発明が容易に実施できるようになる。
【図面の簡単な説明】
【０１０６】
【図１】本発明の実施の形態１に係るメモリ管理装置の概略構成を示す機能ブロック図
【図２】同実施の形態に係るオブジェクトテーブル、オブジェクト管理情報記憶部、オブジェクト記憶部に記憶されるデータ構成を示す図
【図３】同実施の形態に係るダウンロードデータのＪａｖａオブジェクト管理情報が生成された状態を示す図
【図４】同実施の形態に係る、ダウンロードデータの受信から、Ｊａｖａオブジェクトとしてダウンロードデータが読み出されるまでの処理の流れを示す図
【図５】実施の形態１におけるＪａｖａオブジェクト生成処理の流れを表すフローチャート
【図６】本発明の実施の形態２に係るメモリ管理装置の概略構成を示す機能ブロック図
【図７】同実施の形態に係るオブジェクト記憶部中の不要なＪａｖａオブジェクトを削除する処理の流れのフローチャート
【図８】本発明の実施の形態３に係るメモリ管理装置の概略構成を示す機能ブロック図
【図９】実施の形態３におけるＪａｖａオブジェクト生成処理の流れを表すフローチャート
【図１０】従来の技術における、画像データをダウンロードして実行する一般的なメモリ管理装置の機能ブロック図
【図１１】ダウンロードデータがＪａｖａオブジェクトとして参照可能とされる場合のオブジェクト記憶部の状態を示す図
【符号の説明】
【０１０７】
１００  メモリ管理装置
１０１  Ｊａｖａアプリケーション記憶部
１０２  ＪａｖａＶＭ
１０３  Ｊａｖａオブジェクトテーブル
１０４  Ｊａｖａオブジェクト管理情報記憶部
１０５  オブジェクト記憶部
１０５ａ  可変アドレスメモリ領域
１０５ｂ  固定アドレスメモリ領域
１０６  ダウンロード管理部
１０７  ネットワーク制御部
１０８  ネットワークデバイス
１０９  固定アドレスメモリ提供部
４０１  判定部
【図１】
2008234668.tif 000003
【図２】
2008234668.tif 000004
【図３】
2008234668.tif 000005
【図４】
2008234668.tif 000006
【図５】
2008234668.tif 000007
【図６】
2008234668.tif 000008
【図７】
2008234668.tif 000009
【図８】
2008234668.tif 000010
【図９】
2008234668.tif 000011
【図１０】
2008234668.tif 000012
【図１１】
2008234668.tif 000013