(57)【要約】【課題】不揮発性メモリへの書き込みを抑制して、アプリケーションプログラムの実行時は揮発性メモリへの書き込みと同等のパフォーマンスを維持し、不揮発性メモリの寿命の短縮を防ぐようにした情報処理装置を提供する。【解決手段】不揮発性メモリ及び揮発性メモリを有している情報処理装置であって、指示受付手段は、アプリケーションプログラムからファイルの書き込み指示を受け付け、判断手段は、前記アプリケーションプログラムの種別に基づいて、前記不揮発性メモリ又は前記揮発性メモリのいずれに前記ファイルを書き込むかを判断し、書込手段は、前記判断手段によって前記揮発性メモリに書き込むと判断された場合は、該揮発性メモリに前記ファイルを書き込む。【選択図】図１
2010128829.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性メモリ及び揮発性メモリを有している情報処理装置であって、
アプリケーションプログラムからファイルの書き込み指示を受け付ける指示受付手段と、
前記アプリケーションプログラムの種別に基づいて、前記不揮発性メモリ又は前記揮発性メモリのいずれに前記ファイルを書き込むかを判断する判断手段と、
前記判断手段によって前記揮発性メモリに書き込むと判断された場合は、該揮発性メモリに前記ファイルを書き込む書込手段
を具備することを特徴とする情報処理装置。
【請求項２】
前記判断手段は、前記アプリケーションプログラムの種別として、公開型のアプリケーションプログラムである場合は、前記揮発性メモリに対して前記ファイルを書き込むと判断する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記揮発性メモリに記憶されているファイルの存在を確認する確認手段と、
前記確認手段によってファイルが存在すると確認された場合は、該ファイルを揮発性メモリから不揮発性メモリへ転送する転送手段
をさらに具備することを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記転送手段は、前記ファイルを前記揮発性メモリから前記不揮発性メモリへ転送するときに、前記不揮発性メモリ内で一時的なファイルとして生成し、転送終了後に該一時的なファイルを前記アプリケーションプログラムによって書き込まれたファイルとする
ことを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記転送手段は、定期的に、又は前記アプリケーションプログラムの実行が終了したとき若しくは一時停止したときに、転送を行う
ことを特徴とする請求項３又は４に記載の情報処理装置。
【請求項６】
不揮発性メモリ及び揮発性メモリを有している情報処理装置であって、
アプリケーションプログラムからファイルの読み込み指示を受け付ける指示受付手段と、
前記アプリケーションプログラムの種別に基づいて、前記ファイルが前記不揮発性メモリ又は前記揮発性メモリのいずれに記憶されているかを判断する判断手段と、
前記判断手段によって前記揮発性メモリに記憶されていると判断された場合は、該揮発性メモリ内に記憶されている前記ファイルを読み込む読込手段
を具備することを特徴とする情報処理装置。
【請求項７】
前記揮発性メモリに記憶されているファイルの名称及び記憶されている位置を記憶する揮発性メモリファイル管理手段と、
前記不揮発性メモリに記憶されているファイルの名称及び記憶されている位置を記憶する不揮発性メモリファイル管理手段
をさらに具備し、
前記判断手段は、前記アプリケーションプログラムの種別として、公開型のアプリケーションプログラムである場合は、前記ファイルが前記揮発性メモリ又は前記不揮発性メモリのいずれに記憶されているかを前記揮発性メモリファイル管理手段又は不揮発性メモリファイル管理手段を用いて判断する
ことを特徴とする請求項６に記載の情報処理装置。
【請求項８】
不揮発性メモリ及び揮発性メモリを有している情報処理装置が行う情報処理方法であって、
アプリケーションプログラムからファイルの書き込み指示を受け付ける指示受付ステップと、
前記アプリケーションプログラムの種別に基づいて、前記不揮発性メモリ又は前記揮発性メモリのいずれに前記ファイルを書き込むかを判断する判断ステップと、
前記判断ステップによって前記揮発性メモリに書き込むと判断された場合は、該揮発性メモリに前記ファイルを書き込む書込ステップ
を具備することを特徴とする情報処理方法。
【請求項９】
不揮発性メモリ及び揮発性メモリを有している情報処理装置が行う情報処理方法であって、
アプリケーションプログラムからファイルの読み込み指示を受け付ける指示受付ステップと、
前記アプリケーションプログラムの種別に基づいて、前記ファイルが前記不揮発性メモリ又は前記揮発性メモリのいずれに記憶されているかを判断する判断ステップと、
前記判断ステップによって前記揮発性メモリに記憶されていると判断された場合は、該揮発性メモリ内に記憶されている前記ファイルを読み込む読込ステップ
を具備することを特徴とする情報処理方法。
【請求項１０】
不揮発性メモリ及び揮発性メモリを有している情報処理装置で動作する情報処理プログラムであって、
前記情報処理装置を、
アプリケーションプログラムからファイルの書き込み指示を受け付ける指示受付手段と、
前記アプリケーションプログラムの種別に基づいて、前記不揮発性メモリ又は前記揮発性メモリのいずれに前記ファイルを書き込むかを判断する判断手段と、
前記判断手段によって前記揮発性メモリに書き込むと判断された場合は、該揮発性メモリに前記ファイルを書き込む書込手段
として機能させることを特徴とする情報処理プログラム。
【請求項１１】
不揮発性メモリ及び揮発性メモリを有している情報処理装置で動作する情報処理プログラムであって、
前記情報処理装置を、
アプリケーションプログラムからファイルの読み込み指示を受け付ける指示受付手段と、
前記アプリケーションプログラムの種別に基づいて、前記ファイルが前記不揮発性メモリ又は前記揮発性メモリのいずれに記憶されているかを判断する判断手段と、
前記判断手段によって前記揮発性メモリに記憶されていると判断された場合は、該揮発性メモリ内に記憶されている前記ファイルを読み込む読込手段
として機能させることを特徴とする情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性メモリ及び揮発性メモリを有している情報処理装置、情報処理方法及び情報処理プログラムに関する。
【背景技術】
【０００２】
携帯電話端末等の情報処理装置では、不揮発性メモリ及び揮発性メモリを有しているものがある。一般に、長期保存しておきたいデータについては、揮発性メモリに記憶されてる内容（データ）を不揮発性メモリに転送することが行われる。
【０００３】
これに関連する技術として、例えば、特許文献１には、ゲームデータの喪失を防止することができる手段を提供することを課題とし、ゲーム機はＣＰＵを含み、ゲーム機にゲームカートリッジが装着されると、ＣＰＵは、ゲームカートリッジ内のＲＯＭ及び２つのバックアップ領域を有するフラッシュメモリに電気的に接続され、ゲームの進行状況に応じて発生するゲームデータはワークメモリに保存（更新）され、例えば、ユーザの指示に従って最新ゲームデータがバックアップ領域に書き込まれ、ＣＰＵは、最新ゲームデータを書き込むとき、２つのバックアップ領域のうち、書き込まれた時間がより古いゲームデータを記憶するバックアップ領域を書込対象のバックアップ領域として選択し、このとき、選択されたバックアップ領域への書込みができなければ、直前に書き込まれたゲームデータへの上書きを禁止して、１世代前のゲームデータを残すことが開示されている。
【０００４】
例えば、特許文献２には、不慮の電源断等に対しても、機器内部の情報、データ、及びプログラムの更新等の情報の保護を図り、また、電源復帰後に電源断が発生する前の正常な最新の情報を自動的に復帰させることを課題とし、情報処理装置の情報管理部によって、主記憶手段であるＲＡＭ、不揮発性記憶手段であるＮＶＲＡＭ、補助記憶手段であるＳＤカードの制御を行い、不揮発性記憶手段であるＮＶＲＡＭと補助記憶手段であるＳＤカードによって情報の交互保存を行い、電源断等により主記憶手段であるＲＡＭ上のデータが消去された場合には、ＮＶＲＡＭ、ＳＤカード上の保存情報を基に、情報管理部により電源断発生前の正常な最新のデータを復帰させることが開示されている。
【特許文献１】特開２００７−２７５６１１号公報
【特許文献２】特開２００６−１２７２８７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、このような従来の技術では、不揮発性メモリを有している情報処理装置にて不特定の者によって作成されたアプリケーションプログラムを実行させることは想定されていない。例えば、アプリケーション実行環境にて不揮発性メモリを何ら制限なしに利用させるインタフェースを提供した場合に、アプリケーションプログラムから、不揮発性メモリに対して頻繁にファイルの書き込みが行われる可能性がある。そのような場合、以下のような問題点がある。
（１）携帯型の情報処理装置のように性能がそれほど高いものでない場合に、不揮発性メモリに対するファイルの読み書き処理による著しいパフォーマンス低下が発生する可能性がある。
（２）また、高い頻度で、不揮発性メモリに対してファイルを読み書きした場合、その不揮発性メモリの寿命への影響も無視できなくなる。
【０００６】
本発明は、このような問題点に着目してなされたもので、不揮発性メモリへの書き込みを抑制して、アプリケーションプログラムの実行時は揮発性メモリへの書き込みと同等のパフォーマンスを維持し、不揮発性メモリの寿命の短縮を防ぐようにした情報処理装置、情報処理方法及び情報処理プログラムを提供することを目的としている。
【課題を解決するための手段】
【０００７】
かかる目的を達成するための本発明の要旨とするところは、次の各項の発明に存する。
［１］  不揮発性メモリ及び揮発性メモリを有している情報処理装置であって、アプリケーションプログラムからファイルの書き込み指示を受け付ける指示受付手段と、前記アプリケーションプログラムの種別に基づいて、前記不揮発性メモリ又は前記揮発性メモリのいずれに前記ファイルを書き込むかを判断する判断手段と、前記判断手段によって前記揮発性メモリに書き込むと判断された場合は、該揮発性メモリに前記ファイルを書き込む書込手段を具備することを特徴とする情報処理装置。
【０００８】
［２］  前記判断手段は、前記アプリケーションプログラムの種別として、公開型のアプリケーションプログラムである場合は、前記揮発性メモリに対して前記ファイルを書き込むと判断することを特徴とする［１］に記載の情報処理装置。
【０００９】
［３］  前記揮発性メモリに記憶されているファイルの存在を確認する確認手段と、前記確認手段によってファイルが存在すると確認された場合は、該ファイルを揮発性メモリから不揮発性メモリへ転送する転送手段をさらに具備することを特徴とする［１］又は［２］に記載の情報処理装置。
【００１０】
［４］  前記転送手段は、前記ファイルを前記揮発性メモリから前記不揮発性メモリへ転送するときに、前記不揮発性メモリ内で一時的なファイルとして生成し、転送終了後に該一時的なファイルを前記アプリケーションプログラムによって書き込まれたファイルとすることを特徴とする［３］に記載の情報処理装置。
【００１１】
［５］  前記転送手段は、定期的に、又は前記アプリケーションプログラムの実行が終了したとき若しくは一時停止したときに、転送を行うことを特徴とする［３］又は［４］に記載の情報処理装置。
【００１２】
［６］  不揮発性メモリ及び揮発性メモリを有している情報処理装置であって、アプリケーションプログラムからファイルの読み込み指示を受け付ける指示受付手段と、前記アプリケーションプログラムの種別に基づいて、前記ファイルが前記不揮発性メモリ又は前記揮発性メモリのいずれに記憶されているかを判断する判断手段と、前記判断手段によって前記揮発性メモリに記憶されていると判断された場合は、該揮発性メモリ内に記憶されている前記ファイルを読み込む読込手段を具備することを特徴とする情報処理装置。
【００１３】
［７］  前記揮発性メモリに記憶されているファイルの名称及び記憶されている位置を記憶する揮発性メモリファイル管理手段と、前記不揮発性メモリに記憶されているファイルの名称及び記憶されている位置を記憶する不揮発性メモリファイル管理手段をさらに具備し、前記判断手段は、前記アプリケーションプログラムの種別として、公開型のアプリケーションプログラムである場合は、前記ファイルが前記揮発性メモリ又は前記不揮発性メモリのいずれに記憶されているかを前記揮発性メモリファイル管理手段又は不揮発性メモリファイル管理手段を用いて判断することを特徴とする［６］に記載の情報処理装置。
【００１４】
［８］  不揮発性メモリ及び揮発性メモリを有している情報処理装置が行う情報処理方法であって、アプリケーションプログラムからファイルの書き込み指示を受け付ける指示受付ステップと、前記アプリケーションプログラムの種別に基づいて、前記不揮発性メモリ又は前記揮発性メモリのいずれに前記ファイルを書き込むかを判断する判断ステップと、前記判断ステップによって前記揮発性メモリに書き込むと判断された場合は、該揮発性メモリに前記ファイルを書き込む書込ステップを具備することを特徴とする情報処理方法。
【００１５】
［９］  不揮発性メモリ及び揮発性メモリを有している情報処理装置が行う情報処理方法であって、アプリケーションプログラムからファイルの読み込み指示を受け付ける指示受付ステップと、前記アプリケーションプログラムの種別に基づいて、前記ファイルが前記不揮発性メモリ又は前記揮発性メモリのいずれに記憶されているかを判断する判断ステップと、前記判断ステップによって前記揮発性メモリに記憶されていると判断された場合は、該揮発性メモリ内に記憶されている前記ファイルを読み込む読込ステップを具備することを特徴とする情報処理方法。
【００１６】
［１０］  不揮発性メモリ及び揮発性メモリを有している情報処理装置で動作する情報処理プログラムであって、前記情報処理装置を、アプリケーションプログラムからファイルの書き込み指示を受け付ける指示受付手段と、前記アプリケーションプログラムの種別に基づいて、前記不揮発性メモリ又は前記揮発性メモリのいずれに前記ファイルを書き込むかを判断する判断手段と、前記判断手段によって前記揮発性メモリに書き込むと判断された場合は、該揮発性メモリに前記ファイルを書き込む書込手段として機能させることを特徴とする情報処理プログラム。
【００１７】
［１１］  不揮発性メモリ及び揮発性メモリを有している情報処理装置で動作する情報処理プログラムであって、前記情報処理装置を、アプリケーションプログラムからファイルの読み込み指示を受け付ける指示受付手段と、前記アプリケーションプログラムの種別に基づいて、前記ファイルが前記不揮発性メモリ又は前記揮発性メモリのいずれに記憶されているかを判断する判断手段と、前記判断手段によって前記揮発性メモリに記憶されていると判断された場合は、該揮発性メモリ内に記憶されている前記ファイルを読み込む読込手段として機能させることを特徴とする情報処理プログラム。
【００１８】
前記本発明は次のように作用する。
本発明における情報処理装置、情報処理方法及び情報処理プログラムでは、指示受付手段は、アプリケーションプログラムからファイルの書き込み指示を受け付け、判断手段は、前記アプリケーションプログラムの種別に基づいて、前記不揮発性メモリ又は前記揮発性メモリのいずれに前記ファイルを書き込むかを判断し、書込手段は、前記判断手段によって前記揮発性メモリに書き込むと判断された場合は、該揮発性メモリに前記ファイルを書き込む。これによって、不揮発性メモリへの書き込みを抑制して、アプリケーションプログラムの実行時は揮発性メモリへの書き込みと同等のパフォーマンスを維持し、不揮発性メモリの寿命の短縮を防ぐことができる。
また、別の発明において、指示受付手段は、アプリケーションプログラムからファイルの読み込み指示を受け付け、判断手段は、前記アプリケーションプログラムの種別に基づいて、前記ファイルが前記不揮発性メモリ又は前記揮発性メモリのいずれに記憶されているかを判断し、読込手段は、前記判断手段によって前記揮発性メモリに記憶されていると判断された場合は、該揮発性メモリ内に記憶されている前記ファイルを読み込む。これによって、不揮発性メモリへの書き込みを抑制した情報処理装置、情報処理方法及び情報処理プログラムによってファイルが書き込まれた場合であっても、アプリケーションプログラムにとっては、ファイルが不揮発性メモリ又は揮発性メモリのどちらにあるかにかかわらずに読み込むことができる。
【発明の効果】
【００１９】
本発明にかかる情報処理装置、情報処理方法及び情報処理プログラムによれば、不揮発性メモリへの書き込みを抑制して、アプリケーションプログラムの実行時は揮発性メモリへの書き込みと同等のパフォーマンスを維持し、不揮発性メモリの寿命の短縮を防ぐことができる。そして、情報処理装置の利用者にとって、操作性、利便性がより一層向上する。
また、ファイルを読み込む発明にあっては、不揮発性メモリへの書き込みを抑制した情報処理装置、情報処理方法及び情報処理プログラムによってファイルが書き込まれた場合であっても、アプリケーションプログラムにとっては、ファイルが不揮発性メモリ又は揮発性メモリのどちらにあるかにかかわらずに読み込むことができる。
【発明を実施するための最良の形態】
【００２０】
以下、図面に基づき本発明を実現するにあたっての好適な一実施の形態の例を説明する。
図１は、本実施の形態の構成例についての概念的なモジュール構成図を示している。
なお、モジュールとは、一般的に論理的に分離可能なソフトウェア、ハードウェア等の部品を指す。したがって、本実施の形態におけるモジュールはプログラムにおけるモジュールのことだけでなく、ハードウェア構成におけるモジュールも指す。それゆえ、本実施の形態は、プログラム、システム及び方法の説明をも兼ねている。ただし、説明の都合上、「記憶する」、「記憶させる」、これらと同等の文言を用いるが、これらの文言は、実施の形態がプログラムの場合は、記憶装置に記憶させるように制御するの意である。また、モジュールは機能にほぼ一対一に対応しているが、実装においては、１モジュールを１プログラムで構成してもよいし、複数モジュールを１プログラムで構成してもよく、逆に１モジュールを複数プログラムで構成してもよい。また、複数モジュールは１コンピュータによって実行されてもよいし、分散又は並列環境におけるコンピュータによって１モジュールが複数コンピュータで実行されてもよい。なお、１つのモジュールに他のモジュールが含まれていてもよい。また、以下、「接続」とは物理的な接続の他、論理的な接続（データの授受、指示、データ間の参照関係等）を含む。
また、システム又は装置とは、複数のコンピュータ、ハードウェア、装置等がネットワーク等で接続されて構成されるほか、１つのコンピュータ、ハードウェア、装置等によって実現される場合も含まれる。「所定」という用語は、予め定められたの意の他に、そのときの状況・状態に応じて、又はそれまでの状況・状態に応じての意を含めて用いる。
以下、情報処理装置として、携帯電話を主に例示して説明する。また、ファイルとは、情報処理装置で処理する目的で構成したデータの集合であるが、１単位のデータからなるファイル、データ（内容）がないファイルも含む。
【００２１】
本実施の形態である情報処理装置は、図１に示すように、アプリケーションモジュール１１０、アプリケーション実行制御モジュール１２０、揮発性メモリ１３０、不揮発性メモリ１４０を備えている。
【００２２】
アプリケーションモジュール１１０は、アプリケーション実行制御モジュール１２０と接続されており、アプリケーション実行制御モジュール１２０上で実行するアプリケーションプログラムである。このアプリケーションプログラムには、公開型のアプリケーションプログラムが含まれる。
公開型のアプリケーションプログラムとは、仕様が公開された実行環境において動作するものであって、不特定の者によって作成されるものである。不特定の者であるので、実行環境を十分に理解した後に、アプリケーションプログラムを作成しているとは限らない。したがって、この公開型のアプリケーションプログラムによる動作は、かならずしも情報処理装置を効率的に用いるものとはならない。また、公開型のアプリケーションプログラムを作成する者の中には、悪意を有している者も含まれる可能性もあり、そのような者が作成したアプリケーションプログラムでは、例えば、頻繁に不揮発性メモリ１４０への読み書きを行い、情報処理装置のパフォーマンスを低下させてしまうものもありえる。
逆に公開型でないアプリケーションプログラムとは、特定の者（情報処理装置である携帯電話を供給する通信事業者、その通信事業者から許可を得ているいわゆるサードパーティ等）によって作成されるものである。
【００２３】
揮発性メモリ１３０は、アプリケーション実行制御モジュール１２０と接続されている。揮発性メモリ１３０は、ヒープメモリ等として利用されるものである。ファイルの書き込みは、一般的に不揮発性メモリ１４０に書き込まれるが、本実施の形態において、公開型のアプリケーションプログラムによるファイルの書き込みは、不揮発性メモリ１４０ではなく、いったん揮発性メモリ１３０に書き込まれる。
【００２４】
不揮発性メモリ１４０は、アプリケーション実行制御モジュール１２０と接続されている。一般的にはファイルシステムの一部として、つまりファイルの読み書きが行われるメモリである。ここで、不揮発性メモリとは、電源を切ってもデータが消えない半導体メモリであって、データの書き換えができるものである。具体的には、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  ａｎｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＥＥＰＲＯＭ（Ｅｌｅｃｔｒｉｃａｌｌｙ  Ｅｒａｓａｂｌｅ  ａｎｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）等が該当する。揮発性メモリ１３０と比較すると、その読み書きの速度は遅く、また、書き込み回数による寿命がある。
【００２５】
アプリケーション実行制御モジュール１２０は、アプリケーションモジュール１１０、揮発性メモリ１３０、不揮発性メモリ１４０と接続されている。アプリケーション実行制御モジュール１２０は、アプリケーションモジュール１１０からのファイルの読み書きの指示に基づいて、揮発性メモリ１３０又は不揮発性メモリ１４０へのファイルの読み書きの処理を行う。
アプリケーション実行制御モジュール１２０は、制御モジュール１２１、揮発性メモリ制御モジュール１２２、転送モジュール１２３、不揮発性メモリ制御モジュール１２４を有している。
【００２６】
制御モジュール１２１は、アプリケーションモジュール１１０からファイルの書き込み指示を受け付ける。そして、アプリケーションモジュール１１０の種別に基づいて、揮発性メモリ１３０又は不揮発性メモリ１４０のいずれにファイルを書き込むかを判断する。そして、判断結果によって揮発性メモリ１３０に書き込むと判断した場合は、揮発性メモリ制御モジュール１２２を制御して、揮発性メモリ１３０にそのファイルを書き込む。また、判断結果によって不揮発性メモリ１４０に書き込むと判断した場合は、不揮発性メモリ制御モジュール１２４を制御して、不揮発性メモリ１４０にそのファイルを書き込む。
なお、ファイルの書き込み指示は、ファイルシステムを用いたファイルの書き込みであり、アプリケーションモジュール１１０は、不揮発性メモリ１４０への書き込みを意図したものである。
【００２７】
アプリケーションプログラムの種別として、公開型のアプリケーションプログラムである場合は、揮発性メモリ１３０に対してファイルを書き込むと判断するようにしてもよい。そして、公開型でないアプリケーションプログラムである場合は、不揮発性メモリ１４０に対してファイルを書き込むと判断するようにしてもよい。
ファイルの読み書きの指示が、公開型のアプリケーションプログラムからのものであるか公開型でないアプリケーションプログラムからのものであるかは、制御モジュール１２１が次のように判断する。
（１）予め公開型でないアプリケーションプログラムの名称を記憶したテーブルを用意しておく。ファイルの読み書きの指示を行ったアプリケーションプログラムがそのテーブル内に登録されていない場合は、公開型のアプリケーションプログラムと判断する。
（２）公開型でないアプリケーションプログラムには、所定の名称又は所定の指示等を行うように定めておき、それ以外の名称又は所定の指示がない場合は、公開型のアプリケーションプログラムと判断する。
（３）電子証明書等を利用して、登録されているアプリケーションプログラムであるか否かを判断し、所定の電子証明書等を有していないアプリケーションプログラムの場合は、公開型のアプリケーションプログラムと判断する。
【００２８】
また、制御モジュール１２１は、揮発性メモリ１３０に記憶されているファイルの存在を確認し、ファイルが存在すると確認された場合は、転送モジュール１２３を制御して、そのファイルを揮発性メモリ１３０から不揮発性メモリ１４０へ転送する。そして、そのファイルを揮発性メモリ１３０から不揮発性メモリ１４０へ転送するときに、不揮発性メモリ１４０内で一時的なファイルとして生成し、転送終了後にその一時的なファイルをアプリケーションモジュール１１０によって書き込まれたファイルとする。つまり、いわゆるテンポラリのファイルとしていったん不揮発性メモリ１４０内に別名のファイルに複製して、その複製が完了した時点で、いわゆるマスタとしてのファイルとするために、元のファイル名への書き換えを行う。これは、不揮発性メモリ１４０への書き込みは速度が遅いために発生する可能性があるファイルの書き込み失敗に備えて、ファイルのバックアップを保持して冗長構成とするものである。
また、この転送処理は、定期的に、又はアプリケーションモジュール１１０の実行が終了したとき若しくは一時停止（サスペンド）したときに行うようにしてもよい。つまり、アプリケーションモジュール１１０による書き込み指示とは非同期に、ファイルを不揮発性メモリ１４０に書き込む。
【００２９】
また、制御モジュール１２１は、アプリケーションモジュール１１０からファイルの読み込み指示を受け付ける。そして、アプリケーションモジュール１１０の種別に基づいて、そのファイルが揮発性メモリ１３０又は不揮発性メモリ１４０のいずれに記憶されているかを判断する。そして、判断結果によって揮発性メモリ１３０に記憶されていると判断した場合は、揮発性メモリ制御モジュール１２２を制御して、揮発性メモリ１３０内に記憶されているファイルを読み込む。また、判断結果によって不揮発性メモリ１４０に記憶されていると判断した場合は、不揮発性メモリ制御モジュール１２４を制御して、不揮発性メモリ１４０内に記憶されているファイルを読み込む。
【００３０】
また、制御モジュール１２１内には、揮発性メモリ１３０に記憶されているファイルの名称及び記憶されている位置を記憶する揮発性メモリ用のファイル管理テーブルと、不揮発性メモリ１４０に記憶されているファイルの名称及び記憶されている位置を記憶する不揮発性メモリ用のファイル管理テーブルを有していてもよい。
そして、制御モジュール１２１は、アプリケーションモジュール１１０の種別として、公開型のアプリケーションプログラムである場合は、そのファイルが不揮発性メモリ１４０又は揮発性メモリ１３０のいずれに記憶されているかを揮発性メモリ用のファイル管理テーブル又は不揮発性メモリ用のファイル管理テーブルを用いて判断するようにしてもよい。公開型でないアプリケーションプログラムである場合は、不揮発性メモリ１４０に記憶されていると判断して、不揮発性メモリ用のファイル管理テーブルを用いて読み込みを行うようにしてもよい。
【００３１】
揮発性メモリ用のファイル管理テーブルと不揮発性メモリ用のファイル管理テーブルは、同等のデータ構成であってもよい。
ファイル管理テーブルは、ファイルの名称、記憶されている位置以外に、記憶した日時、記憶容量を記憶してもよい。例えば、図５の例に示すファイル管理テーブル５００である。図５は、ファイル管理テーブル５００のデータ構造例を示す説明図である。ファイル管理テーブル５００は、ＮＯ．欄５０１、ファイル名欄５０２、記憶日時欄５０３、記憶位置欄５０４、記憶容量欄５０５を有している。ＮＯ．欄５０１は、揮発性メモリ１３０又は不揮発性メモリ１４０に記憶されているファイルの一意に識別できる符号を記憶する。ファイル名欄５０２は、ファイル名を記憶する。記憶日時欄５０３は、揮発性メモリ１３０又は不揮発性メモリ１４０にファイルが書き込まれ日時（年、分、秒等を含めてもよい）を記憶する。記憶位置欄５０４は、揮発性メモリ１３０又は不揮発性メモリ１４０内での記憶位置（アドレス）を記憶する。記憶容量欄５０５は、そのファイルの記憶容量を記憶する。
なお、ファイル管理テーブル５００に揮発性メモリであるか不揮発性メモリであるかを示す欄を設け、１つのファイル管理テーブル５００によって、揮発性メモリ用のファイル管理テーブルと不揮発性メモリ用のファイル管理テーブルを兼ねるようにしてもよい。
【００３２】
揮発性メモリ制御モジュール１２２は、制御モジュール１２１からの制御によって、揮発性メモリ１３０に対してファイルの読み書きを行う。
転送モジュール１２３は、制御モジュール１２１からの制御によって、揮発性メモリ１３０から不揮発性メモリ１４０へのファイルの転送を行う。
不揮発性メモリ制御モジュール１２４は、制御モジュール１２１からの制御によって、不揮発性メモリ１４０に対してファイルの読み書きを行う。
【００３３】
図２は、本実施の形態による処理をより概念的に示す説明図である。
アプリケーションプログラム２１０、ヒープメモリ２３０、ファイルシステム２４０の関係を示している。図１の例に示したものとの対応関係は、アプリケーションプログラム２１０はアプリケーションモジュール１１０に主に該当し、ヒープメモリ２３０はアプリケーション実行制御モジュール１２０と揮発性メモリ１３０の組み合わせに主に該当し、ファイルシステム２４０はアプリケーション実行制御モジュール１２０と不揮発性メモリ１４０の組み合わせに主に該当する。ただし、図２の例は、理解を容易にするための概念的な説明であり、アプリケーションプログラム２１０は、ヒープメモリ２３０とファイルシステム２４０の区別なく、ファイルの読み書きを行うことができる。
【００３４】
アプリケーションプログラム２１０が、ファイルの書き込みを行う場合は、まずヒープメモリ２３０への書き込みとなる。ファイルシステム２４０へアプリケーションプログラム２１０が直接書き込むことはできない。そして、定期的等の所定のタイミングでヒープメモリ２３０に記憶されているファイルがファイルシステム２４０に転送される。アプリケーションプログラム２１０が、ファイルの読み込みを行う場合は、ヒープメモリ２３０又はファイルシステム２４０からの読み込みとなる。つまり、ヒープメモリ２３０からファイルシステム２４０に転送される前に、ファイルの読み込みが行われるときは、ヒープメモリ２３０からの読み込みとなり、ヒープメモリ２３０からファイルシステム２４０に転送された後に、ファイルの読み込みが行われるときは、ファイルシステム２４０からの読み込みとなる。
【００３５】
図３は、情報処理装置の一例である携帯電話を示す説明図である。
本実施の形態が実装される情報処理装置は、図３に示すような折り畳み型の携帯電話３００であってもよい。携帯電話３００は、例えば、電話としての機能を有するように音声入力できるマイク３０５と、音声出力できるスピーカー３０４と、電話番号又はアプリケーションプログラム等の要求等により文字を入力するための文字入力装置であるキー３０２と、電波を送受信してデータ通信を行うためのアンテナ３０３と、キー３０２による文字入力の結果、アプリケーションプログラムに関する表示、表示モジュール１２０による表示等を行うディスプレイ３０１等を有している。携帯電話３００内には、アプリケーションプログラム等を実行するＣＰＵ、不揮発性メモリ、揮発性メモリ、通信用回路等のハードウェア等が内蔵されており、情報処理装置を実現するためのソフトウェアであるコンピュータ・プログラムをメモリに記憶させ、ソフトウェアとハードウェア資源とが協働して、情報処理装置が実現される。
【００３６】
図４は、本実施の形態の制御モジュール１２１による書き込み処理例を示すフローチャートである。
ステップＳ４０２では、アプリケーションモジュール１１０から受け付けた書き込み指示がファイルの書き込みであるか否かを判断する。ファイルの書き込み指示である場合はステップＳ４０４へ進み、それ以外の場合はステップＳ４１２へ進む。
ステップＳ４０４では、ファイルの書き込み指示を行ったアプリケーションモジュール１１０は、公開型のアプリケーションプログラムであるか否かを判断する。公開型のアプリケーションプログラムである場合はステップＳ４０６へ進み、それ以外の場合はステップＳ４１４へ進む。
ステップＳ４０６では、揮発性メモリ制御モジュール１２２を制御して、ヒープメモリである揮発性メモリ１３０にファイルを書き込む。
【００３７】
ステップＳ４０８では、揮発性メモリ１３０用のファイル管理テーブル５００に書き込んだファイルに関する情報を登録する。つまり、ファイル名称をファイル名欄５０２に、記憶した日時を記憶日時欄５０３に、揮発性メモリ１３０内の記憶位置を記憶位置欄５０４に、ファイルの記憶容量を記憶容量欄５０５にそれぞれ記憶する。
ステップＳ４１０では、揮発性メモリ１３０から不揮発性メモリ１４０へのファイルの転送が必要であることを示す「ファイルシステム書込フラグ」をセットする。
ステップＳ４１２では、ファイルの書き込みではないので、ヒープメモリである揮発性メモリ１３０にデータの書き込みを行う。
ステップＳ４１４では、不揮発性メモリ制御モジュール１２４を制御して、公開型ではないアプリケーションプログラムによるファイルの書き込みであるので、通常のファイルシステムを用いて不揮発性メモリ１４０にファイルを書き込む。
【００３８】
図６は、本実施の形態の制御モジュール１２１による読み込み処理例を示すフローチャートである。
ステップＳ６０２では、アプリケーションモジュール１１０から受け付けた読み込み指示がファイルの読み込みであるか否かを判断する。ファイルの読み込み指示である場合はステップＳ６０４へ進み、それ以外の場合はステップＳ６０８へ進む。
ステップＳ６０４では、ファイルの読み込み指示を行ったアプリケーションモジュール１１０は、公開型のアプリケーションプログラムであるか否かを判断する。公開型のアプリケーションプログラムである場合はステップＳ６０６へ進み、それ以外の場合はステップＳ６１０へ進む。
【００３９】
ステップＳ６０６では、そのファイルはヒープメモリである揮発性メモリ１３０内にあるか否かを揮発性メモリ１３０用のファイル管理テーブル５００を用いて判断する。つまり、揮発性メモリ１３０用のファイル管理テーブル５００を検索した結果、該当のファイルがある場合はステップＳ６０８へ進み、それ以外の場合はステップＳ６１０へ進む。
ステップＳ６０８では、ヒープメモリである揮発性メモリ１３０からデータ又はファイルを読み込む。
ステップＳ６１０では、通常のファイルシステムを用いて不揮発性メモリ１４０からファイルを読み込む。
【００４０】
図７は、本実施の形態の制御モジュール１２１による転送処理例を示すフローチャートである。この転送処理は、定期的に又はアプリケーションモジュール１１０の実行が終了したとき若しくは一時停止したときに行う。
ステップＳ７０２では、ヒープメモリである揮発性メモリ１３０にファイルは書き込まれているか否かを判断する。ある場合はステップＳ７０４へ進み、それ以外の場合は終了する（ステップＳ７９９）。例えば、図４の例に示したフローチャート内のステップＳ４１０でファイルシステム書込フラグがセットされているか否かによって判断する。また、揮発性メモリ１３０用のファイル管理テーブル５００にファイルがあるか否かによって判断するようにしてもよい。
ステップＳ７０４では、揮発性メモリ１３０内にあるファイルのファイル名称は、既に不揮発性メモリ１４０内にあるか否かを不揮発性メモリ１４０用のファイル管理テーブル５００を用いて判断する。ある場合（マスタファイルがある場合）はステップＳ７０６へ進み、それ以外の場合はステップＳ７１６へ進む。
ステップＳ７０６では、転送モジュール１２３を用いて、揮発性メモリ１３０内にあるファイルを不揮発性メモリ１４０に転送する。ただし、その場合、不揮発性メモリ１４０内でテンポラリのファイルとして書き込む。
【００４１】
ステップＳ７０８では、ステップＳ７０６の転送処理が正常終了したか否かを判断する。正常終了した場合はステップＳ７１０へ進み、それ以外の場合はステップＳ７１８へ進む。
ステップＳ７１０では、マスタファイル（既に不揮発性メモリ１４０内にある同一名称のファイル）を消去する。また、バージョン管理を行う場合は、そのマスタファイルを旧バージョンのファイルとして管理する。
ステップＳ７１２では、ステップＳ７０６でテンポラリのファイルとして書き込まれたファイルをマスタファイルに変更する。例えば、ファイル名称をテンポラリのファイル名からマスタファイルのファイル名に変更する。バージョン管理を行う場合は、テンポラリのファイルをマスタファイルの最新バージョンとして管理する。そして、不揮発性メモリ１４０用のファイル管理テーブル５００の該当ファイルの行を修正する。
【００４２】
ステップＳ７１４では、ヒープメモリである揮発性メモリ１３０から転送したファイルを消去する。そして、揮発性メモリ１３０用のファイル管理テーブル５００からも該当の行を消去する。
ステップＳ７１６では、転送モジュール１２３を用いて、揮発性メモリ１３０内にあるファイルを不揮発性メモリ１４０に転送する。転送した不揮発性メモリ１４０内のファイルがマスタのファイルとなる。そして、不揮発性メモリ１４０用のファイル管理テーブル５００に該当ファイルの行を追加する。
ステップＳ７１８では、正常終了しなかった場合のエラー処理を行う。例えば、ステップＳ７０６の処理を繰り返す、ディスプレイに正常終了しなかった旨を表示する等がある。
揮発性メモリ１３０内にあるファイルを全て転送し終えた場合に、ファイルシステム書込フラグをリセットする。
【００４３】
なお、本実施の形態としてのプログラムが実行されるコンピュータのハードウェア構成は、図８に示すように、一般的なコンピュータであり、具体的には携帯電話３００に内蔵されるようなコンピュータである。制御モジュール１２１、揮発性メモリ制御モジュール１２２、転送モジュール１２３、不揮発性メモリ制御モジュール１２４等のプログラムを実行するＣＰＵ８１０と、そのプログラムやデータ（ファイル）を記憶する揮発性メモリであるＲＡＭ８３０と、本コンピュータを起動するためのプログラム等が格納されているＲＯＭ８２０と、不揮発性メモリであるＥＰＲＯＭ、ＥＥＰＲＯＭ等のＮＶＲＡＭ８４０と、キー、キーボード、マウス等から操作者の操作によってデータを入力又は液晶ディスプレイ等にデータを出力して操作者とのインタフェースとなるＵＩ／Ｆ８５０と、補助記憶装置であるＨＤ８６０と、通信ネットワークと接続するための通信回線Ｉ／Ｆ８７０と、ＳＤ（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ）カード等のリムーバブルメディアに対して読み書きするリムーバブルメディアリーダーライター８８０と、そして、それらをつないでデータのやりとりをするためのバス８９０により構成されている。これらのコンピュータが複数台互いにネットワークによって接続されていてもよい。なお、不揮発性メモリ１４０として、リムーバブルメディアを用いてもよい。
【００４４】
前述の実施の形態の説明において、情報処理装置の例として携帯電話を主に説明したが、アプリケーション実行制御モジュール１２０が搭載されている情報処理装置である、ＰＨＳ（Ｐｅｒｓｏｎａｌ  Ｈａｎｄｙ  ｐｈｏｎｅ  Ｓｙｓｔｅｍ）等のデータ通信端末、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）、ゲーム端末やナビゲーションシステム等にも適用が可能である。なお、本実施の形態を搭載する情報処理装置として、携帯情報処理端末のように、ＰＣ（パーソナルコンピュータ）等より比較的性能の低いもの（ハードディスク等を備えていない等）の場合により好適である。
【００４５】
なお、制御モジュール１２１は、アプリケーションモジュール１１０からのファイル書き込み指示によってファイルを揮発性メモリ１３０に書き込むときに、そのファイルのファイル名と一致するものが揮発性メモリ１３０用のファイル管理テーブル５００にあるか否かを判断し、さらに不揮発性メモリ１４０用のファイル管理テーブル５００にあるか否かを判断する。つまり、揮発性メモリ１３０にファイルを書き込むにもかかわらず、不揮発性メモリ１４０用のファイル管理テーブル５００をもチェックする。
そして、いずれか一方のテーブルに一致するものがある場合は、上書きとして書き込みを行うか、エラーとして戻す。両方のテーブルに一致するものがない場合は、新規のファイルとして書き込みを行う。これによって、揮発性メモリ１３０に書き込む場合に、上書きではなく新規のファイルであるにもかかわらず不揮発性メモリ１４０内にあるファイルと重複したファイル名となることを防止することができるようになる。
【００４６】
なお、説明したプログラムについては、記録媒体に格納することも可能であり、その場合は、「プログラムを記録したコンピュータ読み取り可能な記録媒体」の発明としても把握することができる。
「プログラムを記録したコンピュータ読み取り可能な記録媒体」とは、プログラムのインストール、実行、プログラムの流通などのために用いられる、プログラムが記録されたコンピュータで読み取り可能な記録媒体をいう。
なお、記録媒体としては、例えば、デジタル・バーサタイル・ディスク（ＤＶＤ）であって、ＤＶＤフォーラムで策定された規格である「ＤＶＤ−Ｒ、ＤＶＤ−ＲＷ、ＤＶＤ−ＲＡＭ等」、ＤＶＤ＋ＲＷで策定された規格である「ＤＶＤ＋Ｒ、ＤＶＤ＋ＲＷ等」、コンパクトディスク（ＣＤ）であって、読出し専用メモリ（ＣＤ−ＲＯＭ）、ＣＤレコーダブル（ＣＤ−Ｒ）、ＣＤリライタブル（ＣＤ−ＲＷ）等、ブルーレイ・ディスク（Ｂｌｕ−ｒａｙ  Ｄｉｓｃ（登録商標））、光磁気ディスク（ＭＯ）、フレキシブルディスク（ＦＤ）、磁気テープ、ハードディスク、読出し専用メモリ（ＲＯＭ）、電気的消去及び書換可能な読出し専用メモリ（ＥＥＰＲＯＭ）、フラッシュ・メモリ、ランダム・アクセス・メモリ（ＲＡＭ）等が含まれる。
そして、前記のプログラム又はその一部は、前記記録媒体に記録して保存や流通等させることが可能である。また、通信によって、例えば、ローカル・エリア・ネットワーク（ＬＡＮ）、メトロポリタン・エリア・ネットワーク（ＭＡＮ）、ワイド・エリア・ネットワーク（ＷＡＮ）、インターネット、イントラネット、エクストラネット等に用いられる有線ネットワーク、あるいは無線通信ネットワーク、さらにこれらの組合せ等の伝送媒体を用いて伝送することが可能であり、また、搬送波に乗せて搬送することも可能である。
さらに、前記のプログラムは、他のプログラムの一部分であってもよく、あるいは別個のプログラムと共に記録媒体に記録されていてもよい。
【図面の簡単な説明】
【００４７】
【図１】本発明の一実施の形態のモジュール構成例を示す図である。
【図２】本実施の形態による処理をより概念的に示す説明図である。
【図３】情報処理装置の一例である携帯電話を示す説明図である。
【図４】本実施の形態による書き込み処理例を示すフローチャートである。
【図５】ファイル管理テーブルのデータ構造例を示す説明図である。
【図６】本実施の形態による読み込み処理例を示すフローチャートである。
【図７】本実施の形態による転送処理例を示すフローチャートである。
【図８】本実施の形態を実現するコンピュータのハードウェア構成例を示すブロック図である。
【符号の説明】
【００４８】
１１０…アプリケーションモジュール
１２０…アプリケーション実行制御モジュール
１２１…制御モジュール
１２２…揮発性メモリ制御モジュール
１２３…転送モジュール
１２４…不揮発性メモリ制御モジュール
１３０…揮発性メモリ
１４０…不揮発性メモリ
【図１】
2010128829.tif 000003
【図２】
2010128829.tif 000004
【図３】
2010128829.tif 000005
【図４】
2010128829.tif 000006
【図５】
2010128829.tif 000007
【図６】
2010128829.tif 000008
【図７】
2010128829.tif 000009
【図８】
2010128829.tif 000010