(57)【要約】【課題】不揮発性の記憶手段を効率良く使用して、電源立ち上げやアプリケーションプログラムの起動を高速化する。【解決手段】機器を作動させるのに必要なカーネルのテキスト領域、或いはアプリケーションプログラムのテキスト領域を、ＭＲＡＭなどの不揮発性の記憶領域に配置し、機器の起動時、或いはアプリケーションの実行時に、テキスト領域以外の領域だけを、プログラムの保持手段から読み出して、不揮発性の記憶領域に配置されたテキスト領域と、読み出された領域のデータとを使用して、機器の起動処理又はアプリケーションプログラムの起動処理を行うようにした。【選択図】      図３
2005011120.tif 000002
【特許請求の範囲】
【請求項１】
機器を作動させるのに必要なカーネルのテキスト領域を、不揮発性の記憶領域に配置し、
機器の起動時に、前記カーネルのテキスト領域以外の領域だけを、プログラムの保持手段から読み出して、前記不揮発性の記憶領域に配置されたテキスト領域と、前記読み出された領域のデータとを使用して、機器の起動処理を行う
情報処理方法。
【請求項２】
請求項１記載の情報処理方法において、
前記機器の終了時に、前記カーネルのデータ領域の前記不揮発性の記憶領域への読み込みを行う
情報処理方法。
【請求項３】
請求項２記載の情報処理方法において、
前記カーネルのデータ領域の前記不揮発性の記憶領域への読み込みを、所定の設定に基づいて選択的に行う
情報処理方法。
【請求項４】
請求項１記載の情報処理方法において、
前記カーネルの領域に関する情報をテーブルで管理して、前記不揮発性の記憶領域に配置されたテキスト領域及びデータ領域の有効性を、前記テーブルで管理される情報から判るようにした
情報処理方法。
【請求項５】
機器で実行されるアプリケーションプログラムのテキスト領域を、不揮発性の記憶領域に配置し、
前記アプリケーションプログラムの起動時に、前記アプリケーションプログラムのテキスト領域以外の領域だけを、プログラムの保持手段から読み出して、前記不揮発性の記憶領域に配置されたテキスト領域と、前記読み出された領域のデータとを使用して、アプリケーションプログラムの起動処理を行う
情報処理方法。
【請求項６】
請求項５記載の情報処理方法において、
前記アプリケーションプログラムの終了時に、前記アプリケーションプログラムのデータ領域の前記不揮発性の記憶領域への読み込みを行う
情報処理方法。
【請求項７】
請求項６記載の情報処理方法において、
前記アプリケーションプログラムのデータ領域の前記不揮発性の記憶領域への読み込みを、所定の設定に基づいて選択的に行う
情報処理方法。
【請求項８】
請求項５記載の情報処理方法において、
前記アプリケーションプログラムの領域に関する情報をテーブルで管理して、前記不揮発性の記憶領域に配置されたテキスト領域及びデータ領域の有効性を、前記テーブルで管理される情報から判るようにした
情報処理方法。
【請求項９】
請求項５記載の情報処理方法において、
前記アプリケーションプログラムの使用頻度を管理して、使用頻度の高いプログラムから優先的に、前記不揮発性の記憶領域に配置する
情報処理方法。
【請求項１０】
請求項５記載の情報処理方法において、
前記アプリケーションプログラムが使用される時間帯又は日付を判断して、前記時間帯又は日付毎に使用される可能性の高いプログラムから優先的に、前記不揮発性の記憶領域に配置する
情報処理方法。
【請求項１１】
装置を作動させるのに必要なカーネルを含むプログラムの保持手段と、
前記保持手段に保持されたデータを読み出して記憶する手段であり、少なくとも一部の記憶領域は不揮発性である記憶手段と、
前記記憶手段に記憶されたデータに基づいて起動処理を行う手段であり、前記記憶手段の不揮発性の記憶領域に、前記カーネルのテキスト領域を配置させる制御手段とを備えた
情報処理装置。
【請求項１２】
請求項１１記載の情報処理装置において、
前記制御手段は、装置の終了時に、前記記憶手段の不揮発性の記憶領域に、前記カーネルのデータ領域の読み込みを行う
情報処理装置。
【請求項１３】
請求項１２記載の情報処理装置において、
前記制御手段は、前記カーネルのデータ領域の前記不揮発性の記憶領域への読み込みを、所定の設定に基づいて選択的に行う
情報処理装置。
【請求項１４】
請求項１１記載の情報処理装置において、
前記記憶手段の不揮発性の記憶領域に配置されたテキスト領域及びデータ領域の有効性を管理するテーブルを備えた
情報処理装置。
【請求項１５】
装置で実行されるアプリケーションプログラムの保持手段と、
前記保持手段に保持されたデータを読み出して記憶する手段であり、少なくとも一部の記憶領域は不揮発性である記憶手段と、
前記記憶手段に記憶されたデータに基づいて前記アプリケーションプログラムを実行する手段であり、前記記憶手段の不揮発性の記憶領域に、前記アプリケーションプログラムのテキスト領域を配置させる制御手段とを備えた
情報処理装置。
【請求項１６】
請求項１５記載の情報処理装置において、
前記制御手段は、前記アプリケーションプログラムの終了時に、前記アプリケーションプログラムのデータ領域の前記記憶手段の不揮発性の記憶領域への読み込みを行う
情報処理装置。
【請求項１７】
請求項１６記載の情報処理装置において、
前記制御手段は、前記アプリケーションプログラムのデータ領域の前記記憶手段の不揮発性の記憶領域への読み込みを、所定の設定に基づいて選択的に行う
情報処理装置。
【請求項１８】
請求項１５記載の情報処理装置において、
前記記憶手段の不揮発性の記憶領域に配置されたテキスト領域及びデータ領域の有効性を管理するテーブルを備えた
情報処理装置。
【請求項１９】
請求項１５記載の情報処理装置において、
前記制御手段は、アプリケーションプログラムの使用頻度を管理して、使用頻度の高いプログラムから優先的に、前記記憶手段の不揮発性の記憶領域に配置する
情報処理装置。
【請求項２０】
請求項１５記載の情報処理装置において、
前記制御手段は、アプリケーションプログラムが使用される時間帯又は日付を判断して、前記時間帯又は日付毎に使用される可能性の高いプログラムから優先的に、前記不揮発性の記憶領域に配置する
情報処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、主記憶の少なくとも一部が不揮発性の記憶手段で構成される情報処理装置における情報処理に適用して好適な情報処理方法及び装置に関する。
【０００２】
【従来の技術】
従来、パーソナルコンピュータ装置などの情報処理装置においては、例えばハードディスクの如き比較的大容量の記憶媒体を備えて、その記憶媒体に情報処理装置を起動させるのに必要なオペレーティング・システム（以下ＯＳと称する）のプログラムや、その装置で実行される各種アプリケーションプログラムのデータを記憶させておき、装置を電源オフの状態から起動させる際には、ハードディスクからＯＳのプログラムを、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などで構成される主記憶に読み出して実行させる。また、アプリケーションプログラムを実行させる際にも、ハードディスクからそのプログラムをＤＲＡＭなどで構成される主記憶に読み出して実行させる。
【０００３】
従って、装置の電源を切ることで、主記憶の内容は消去されてしまい、電源を投入する毎に、ＯＳのプログラムを読み出して実行させる必要があり、各種アプリケーションプログラムを起動させる際にも、そのプログラムを読み出して実行させる必要があり、装置の立ち上げやプログラムの起動には、時間がかかる問題があった。
【０００４】
この問題点を解決するためには、例えば、ＤＲＡＭなどの揮発性のメモリで構成されていた主記憶を、不揮発性のメモリで構成させて、装置の起動時に必要なデータをその不揮発性のメモリに格納させるようにして、ハードディスクなどのデータ保存手段へのアクセスを行うことなく、装置の起動を可能とした装置が提案されている（特許文献１など参照）。
【０００５】
【特許文献１】
特開平９−５４７４２号公報
【０００６】
【発明が解決しようとする課題】
ところが、単純に起動に必要なデータを全て主記憶に記憶させるようにすると、主記憶として、非常に大容量の不揮発性メモリが必要になり、装置の構成が高価になってしまう問題がある。
【０００７】
また、主記憶としてＤＲＡＭの如き揮発性のメモリを使用した場合には、装置の電源オフ時にも、常時メモリにだけは電源を供給して、記憶データのバックアップを行うようにすれば、その装置の電源立ち上げ時に、主記憶に残っているデータを起動時に利用できるが、そのように電源バックアップを行うと、それだけ装置の電源オフ時の待機電力が多く必要になり、好ましくない。
【０００８】
なお、ここまでの説明では、電源立ち上げ時の問題について説明したが、例えばパーソナルコンピュータ装置で、何らかのアプリケーションプログラムを起動させる際にも、同様な問題がある。即ち、アプリケーションプログラムを起動させる際にも、ハードディスクに格納されたアプリケーションプログラムを読み出して、主記憶に転送させて実行するようにしてあり、ハードディスクから主記憶への転送に要する時間だけ、起動に時間がかかってしまう問題がある。
【０００９】
本発明の第１の目的は、不揮発性の記憶手段を効率良く使用して、電源立ち上げを高速化することにある。
【００１０】
本発明の第２の目的は、不揮発性の記憶手段を効率良く使用して、アプリケーションプログラム実行時の起動を高速化することにある。
【００１１】
【課題を解決するための手段】
第１の発明は、機器を作動させるのに必要なカーネルのテキスト領域を、不揮発性の記憶領域に配置し、機器の起動時に、カーネルのテキスト領域以外の領域だけを、プログラムの保持手段から読み出して、不揮発性の記憶領域に配置されたテキスト領域と、読み出された領域のデータとを使用して、機器の起動処理を行うようにしたものである。
【００１２】
このようにしたことで、カーネルのテキスト領域については、機器が起動してない状態であっても、不揮発性の記憶領域に配置されて保持されており、機器の起動時には、テキスト領域以外の領域だけを、プログラムの保持手段から読み出す処理を行うだけで、短時間で起動させることが可能になる。
【００１３】
第２の発明は、機器で実行されるアプリケーションプログラムのテキスト領域を、不揮発性の記憶領域に配置し、アプリケーションプログラムの起動時に、アプリケーションプログラムのテキスト領域以外の領域だけを、プログラムの保持手段から読み出して、不揮発性の記憶領域に配置されたテキスト領域と、読み出された領域のデータとを使用して、アプリケーションプログラムの起動処理を行うようにしたものである。
【００１４】
このようにしたことで、アプリケーションプログラムのテキスト領域については、そのアプリケーションプログラムが実行されてない状態であっても、不揮発性の記憶領域に配置されて保持されており、アプリケーションプログラムの実行時には、テキスト領域以外の領域だけを、プログラムの保持手段から読み出す処理を行うだけで、短時間で起動させることが可能になる。
【００１５】
【発明の実施の形態】
以下、本発明の一実施の形態を、添付図面を参照して説明する。
【００１６】
本例においては、パーソナルコンピュータ装置に適用したものである。図１は、本例のパーソナルコンピュータ装置の構成例を示した図である。中央制御ユニット（ＣＰＵ）１は、バスラインを介してハードディスクドライブ２と接続させてある。このハードディスクドライブ２に装填された記憶媒体であるハードディスクは、比較的大容量の記憶容量（記録容量）を有して、このコンピュータ装置を作動させるのに必要なＯＳのプログラムが記憶させてあり、またこのコンピュータ装置にインストールされた各種アプリケーションプログラムについても記憶させてある。ユーザがダウンロードしたデータなどもハードディスクに記憶される。
【００１７】
この機器を作動させるために用意されたデータやプログラムが格納されるＲＯＭ３と、何らかのネットワークに接続するためのインターフェース４と、主記憶１０とがバスラインに接続させてある。
【００１８】
主記憶１０は、このコンピュータ装置を作動させる際に必要なプログラムやデータを、ハードディスク２などから読み出して、その読み出されたプログラムなどがＣＰＵ１０の制御で実行される記憶手段である。ここで本例の主記憶１０は、揮発性のメモリであるＤＲＡＭ１１と、不揮発性のメモリであるＭＲＡＭ（Ｍａｇｎｅｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ  ）１２とを使用して構成してある。このＤＲＡＭ１１の記憶領域（揮発性の記憶領域）とＭＲＡＭ１２の記憶領域（不揮発性の記憶領域）の使い分けについては、ＣＰＵ１０の制御で設定される。
【００１９】
ＤＲＡＭ１１とＭＲＡＭ１２について説明すると、ＤＲＡＭ１１については電源の供給がなくなると、記憶データが消去される書換え可能なメモリであり、高速アクセスが可能なメモリである。ＭＲＡＭ１２は、電源を供給しない状態でも、記憶されたデータを保持し続ける書換え可能な不揮発性メモリである。
【００２０】
このＭＲＡＭは、ＴＭＲ（Ｔｕｎｎｅｌｉｎｇ  Ｍａｇｎｅｔｏｒｅｓｉｓｔｉｖｅ）素子と称されるトンネル型磁気抵抗効果素子を使用して、磁化状態の抵抗値などの違いを利用して情報を読み書きする記憶素子である。ＭＲＡＭは、記憶容量が比較的大容量で、かつ高速のデータ転送が可能であり、比較的大容量のデータを読み出す場合であっても、高速で転送可能である。さらにＭＲＡＭは、データの書込み回数もほぼ無制限であり、電源の瞬時の停電にも強く、低消費電力であり、記憶データを保持したままで、待機電力をゼロにすることができる効果を有する。
【００２１】
なお、以下の説明では、ＯＳのプログラムとアプリケーションプログラムの両方を単にプログラムと呼ぶ。また、ＯＳのプログラムの場合には、その中でも特に装置を作動させるのに必要な中核部分のプログラムを、カーネルと呼ぶ。
【００２２】
ＣＰＵ１は、プログラムについての管理テーブルを設定してある。この管理テーブルは、例えば主記憶１０のＭＲＡＭ１１の一部の記憶領域を使用して設定される。図２は、管理テーブルの一例を示した図である。本例の場合には、管理テーブルは、どのプログラムのどの領域が不揮発性の記憶領域（即ちＭＲＡＭ１１の記憶領域）のどこにあるのか、またその領域が有効かどうかが判るようにしたものである。この例では、領域の識別子、領域の種別、領域の開始アドレス、領域のサイズ、有効フラグを備えた例としてある。
【００２３】
それぞれの項目について説明すると、領域の識別子は、管理テーブルのエントリから指す領域の識別子である。領域がカーネルのものか、或いはどのアプリケーションのものかを識別する。領域の種別は、管理テーブルのエントリが指す領域の種類を示す。例えば１ビットを用いて、０ならばテキスト領域、１ならばデータ領域を表す。これにより、プログラムのテキスト領域とデータ領域を別々に管理することができる。領域の開始アドレスは、管理テーブルのエントリが指す領域の、不揮発性の記憶領域上の開始アドレスを示す。領域のサイズは、管理テーブルのエントリが指す領域の、不揮発性の記憶領域上のサイズを示す。有効フラグは、管理テーブルのエントリが指す領域の有効性を示す。例えば１ビットを用いて、１ならば有効、０ならば無効を表す。
【００２４】
このような管理テーブルを使用して、ＣＰＵ１は、主記憶１０に記憶させるデータの管理を行う。本例においては、ＣＰＵ１は、ハードディスク２などから主記憶１０に転送させる場合には、主記憶に占めるＭＲＡＭ１１の記憶容量に限らず、プログラムのテキスト領域は可能な限り、不揮発性の記憶領域上に配置する。これにより、機器の電源を切断しても主記憶からテキスト領域が消えないので、次回機器を利用するときにテキスト領域をハードディスク２などから読み込む必要がなく、素早くプログラムを実行することができる。ただし、プログラムが更新された場合（バージョンアップした場合やパッチを適用した場合など）には、不揮発性の記憶領域上のテキスト領域は内容が古くなっており、次回からは使うことができない。この場合は、図２に示した管理テーブルを参照して該当するテキスト領域を無効にする処理を行う（具体的には例えば有効フラグに０をセットする）。
【００２５】
プログラムが更新されて、主記憶１０のＭＲＡＭ１１上のテキスト領域が無効になった場合、ＯＳカーネルのテキスト領域に関しては、機器の電源を切るとき（ＯＳ終了時）に新しいテキスト領域読み込むようにする。これにより、次回機器の電源を入れたとき、素早くＯＳを起動することができる。ただし、ＯＳ終了時に、新しいテキスト領域を読み込むための時間を要する。新しいテキスト領域をいつ読み込むかは、ユーザの設定で選択できるようにすることができる。例えば、フラグを用意しておいて、そのフラグが１に設定されているときは機器終了時に読み込む、などの処理を行うことができる。この機器終了時に読み込むためのフラグを、後述する動作説明ではフラグＦ−ｋｔとして説明する。
【００２６】
アプリケーションプログラムのテキスト領域に関しても、ＯＳの場合と同様に、アプリケーションを終了するときに、新しいテキスト領域を読み込んでおくことができる。新しいテキスト領域をいつ読み込むかについては、ユーザが設定することができ、例えばフラグを用意しておいて、フラグが１に設定されているときはアプリケーション終了時に読み込む、などの処理を行うことができる。このフラグを、後述する動作説明ではフラグＦ−ａｔとして説明する。
【００２７】
プログラムのデータ領域については、プログラムを実行する前にハードディスク２などから読み込んで初期化しておく必要がある。主記憶１０がＤＲＡＭ１１と、ＭＲＡＭ１２で構成されている場合、データ領域はどちらのメモリに読み込んでも差し支えない。データ領域をＭＲＡＭ１２に配置した場合は、機器終了時あるいはアプリケーション終了時に、ハードディスク２などから読み込んで初期化しておくことが可能である。読み込まれたデータ領域は機器の電源を切っても消えないため、次回機器を起動した際に、ハードディスク２からの読み込みを省略してＯＳおよびアプリケーションを起動することができる。このようなデータ領域の読み込みタイミングについては、上述したテキスト領域の場合と同様に、ユーザが設定することが可能である。例えばフラグを用意しておき、フラグが１に設定されているときはアプリケーションの終了時にデータ領域の初期化を行うようにすることができる。このフラグを以後の動作説明ではカーネルのデータ領域に関してはフラグＦ−ｋｄ、アプリケーションのデータ領域に関してはフラグＦ−ａｄとして説明する。
【００２８】
主記憶１０内を構成するＤＲＡＭ１１やＭＲＡＭ１２の記憶容量は有限であり、利用しようとするプログラム全てを不揮発性のメモリであるＭＲＡＭ１２に配置することは不可能である。そのため、アプリケーションについてはよく使われるアプリケーションのテキスト領域およびデータ領域を優先的に不揮発性メモリ上に配置するようにしても良い。この場合、アプリケーションの使用頻度をＣＰＵ１が測定し、その使用頻度の測定結果から最も使用頻度が高いと思われるアプリケーションプログラムから、ＭＲＡＭ１２に配置する。アプリケーションプログラムの使用頻度の測定処理としては、例えば、アプリケーションが起動された回数をカウントして、回数の多いものを使用頻度が高いと判断する。あるいは、最近使われていないアプリケーションを使用頻度が低いと判断し、別の使用頻度の高いアプリケーションと入れ換える、などの処理が行える。あるいは、その他の処理で、使用頻度を測定（判断）又は推定しても良い。
【００２９】
このように単純に使用頻度だけからＭＲＡＭ１２に配置するアプリケーションを決めるのではなく、例えば、アプリケーションプログラムが使用される時間帯又は日付などを予め測定して集計しておき、それぞれの時間帯又は日付毎で、使用される可能性の高いアプリケーションプログラムから優先的に、不揮発性の記憶領域であるＭＲＡＭ１２に配置するようにしても良い。例えば、土曜日や日曜日などの特定の曜日（日付）に使用される可能性が高いアプリケーションプログラムを、その曜日（日付）になったら、ＭＲＡＭ１２に配置させたり、昼間の時間帯や夜間の時間帯に使用される可能性が高いアプリケーションプログラムを、それぞれの時間帯にＭＲＡＭ１２に配置させるようにしても良い。さらに、使用頻度や時間帯以外の要因で、ＭＲＡＭ１２に配置させるプログラムを選ぶようにしても良い。たとえば、電源オフされる前の機器の使用状況を判断して、ＭＲＡＭ１２に配置させるプログラムを選ぶようにしても良い。
【００３０】
次に、本例の構成での機器起動時、およびアプリケーション起動時のプログラムの配置処理動作の例を、図３以降のフローチャートを参照して説明する。
【００３１】
まず、機器が起動したときの処理、即ち、機器の電源が投入されて、ＯＳカーネルが起動するときの、ＣＰＵ１の制御に基づいて実行される処理を、図３のフローチャートを参照して説明する。このときには、まずＣＰＵ１は、管理テーブル（図２参照）にカーネルのテキスト領域のエントリがあるか調べる（ステップＳ１１）。ここで、テキスト領域のエントリがある場合には、既にテキスト領域がＭＲＡＭ１２に読み込まれているため、ハードディスク２などからテキスト領域を読み込む必要はない。
【００３２】
そして、ステップＳ１１でカーネルのテキスト領域のエントリがない場合には、ＭＲＡＭ１２に空き領域があるかどうかを調べる（ステップＳ１２）。ここで、ＭＲＡＭ１２に空き領域がない場合には、ＭＲＡＭ１２に配置されているアプリケーションプログラムのデータのうち、使用頻度の低いアプリケーションを管理テーブルから削除する（ステップＳ１３）。その後、管理テーブルにテキスト領域のエントリを作成する（ステップＳ１４）。そして、該当する領域にカーネルのテキスト領域を読み込む（ステップＳ１５）。
【００３３】
次に、管理テーブルにカーネルのデータ領域のエントリがあるか調べる（ステップＳ１６）。ここで、データ領域のエントリがある場合には、既にデータ領域がＭＲＡＭ１２に読み込まれているため、ハードディスク２などから読み込む必要はない。そして、ステップＳ１６でデータ領域のエントリがない場合には、ＭＲＡＭ１２に空き領域があるかどうかを調べる（ステップＳ１７）。ここで、ＭＲＡＭ１２に空き領域がない場合には、ＭＲＡＭ１２に配置されているアプリケーションプログラムのうち、使用頻度の低いアプリケーションプログラムのデータを管理テーブルから削除する（ステップＳ１８）。
【００３４】
その後、管理テーブルにカーネルのデータ領域のエントリを作成し（ステップＳ１９）、該当する領域にデータ領域を読み込む（ステップＳ２０）。
【００３５】
次に、本例の装置で何らかのアプリケーションプログラムを起動させたときのＣＰＵ１の制御による処理を、図４のフローチャートを参照して説明する。このアプリケーションプログラムの起動時には、最初にアプリケーションの使用頻度の情報を更新する（ステップＳ２１）。そして、管理テーブルに、このとき起動させたアプリケーションプログラムのテキスト領域のエントリがあるか調べる（ステップＳ２２）。
【００３６】
ここで、アプリケーションのテキスト領域のエントリがある場合には、既にテキスト領域がＭＲＡＭ１２に読み込まれているため、ハードディスク２などの装置から読み込む必要はない。そして、テキスト領域のエントリがない場合には、ＭＲＡＭ１２に空き領域があるかどうかを調べる（ステップＳ２３）。ここで、ＭＲＡＭ１２に空き領域がない場合には、現在実行中でないアプリケーションのうち、これから起動するアプリケーションよりも使用頻度の低いアプリケーションのテキスト領域を管理テーブルから削除する（ステップＳ２４）。
【００３７】
そして次に、管理テーブルにアプリケーションのテキスト領域のエントリを作成し（ステップＳ２５）、該当する領域にテキスト領域を読み込む（ステップＳ２６）。
【００３８】
その後、管理テーブルにアプリケーションのデータ領域のエントリがあるか調べる（ステップＳ２７）。ここで、データ領域のエントリがある場合には、既にデータ領域がＭＲＡＭ１２に読み込まれているため、ハードディスク２などの装置から読み込む必要はない。そして、データ領域のエントリがない場合には、ＭＲＡＭ１２に空き領域があるかどうかを調べる（ステップＳ２８）。
【００３９】
ここで、ＭＲＡＭ１２に空き領域がない場合には、現在実行中でないアプリケーションのうち、これから起動するアプリケーションよりも使用頻度の低いアプリケーションのデータ領域を管理テーブルから削除する（ステップＳ２９）。そして、管理テーブルにデータ領域のエントリを作成し（ステップＳ３０）、該当する領域にアプリケーションのデータ領域を読み込む（ステップＳ３１）。
【００４０】
次に、０Ｓ及びアプリケーションが更新されたときの処理例を、図５のフローチャートを参照して説明する。ＯＳ又はアプリケーションが更新された場合には、もしそれらのテキスト領域やデータ領域がＭＲＡＭ１２に配置されていたら、その領域を無効にして新しいテキスト領域およびデータ領域を読み込む必要がある。カーネルに関しては、管理テーブルのテキスト領域およびデータ領域のエントリに有効フラグ＝０をセットし、無効化する。これにより、機器終了時または次回起動時に新しいテキスト領域およびデータ領域が読み込まれることになる。アプリケーションに関しては、アプリケーションが実行中かどうかに応じて処理内容が変わる。
【００４１】
以下、図５のフローチャートに従って説明すると、まず更新されたアプリケーションのテキスト領域がＭＲＡＭ１２に配置されているかどうか調べる（ステップＳ４１）。ここで、テキスト領域が配置されている場合には、そのアプリケーションが実行中かどうか調べる（ステップＳ４２）。そして、実行中の場合には、管理テーブルの該当するアプリケーションのエントリに有効フラグ＝０を設定し、無効化する（ステップＳ４３）。ステップＳ４２で実行中でない場合には、ＭＲＡＭ１２に空き領域があるかどうか調べる（ステップＳ４４）。ここで、ＭＲＡＭ１２に空き領域がない場合には、それまでアプリケーションのテキスト領域を配置していた記憶領域に新しいテキスト領域が入らない場合があるため、ＭＲＡＭ１２に配置されているアプリケーションのうち、現在のアプリケーションよりも使用頻度の低いアプリケーションのテキスト領域を管理テーブルから削除して領域を確保する（ステップＳ４５）。
【００４２】
その後、新しいアプリケーションのテキスト領域をＭＲＡＭ１２に読み込み（ステップＳ４６）、管理テーブルのエントリを更新する（ステップＳ４７）。
【００４３】
そして次に、アプリケーションプログラムのデータ領域が、ＭＲＡＭ１２に配置されているかどうか調べる（ステップＳ４８）。ここで、データ領域が配置されてない場合には、処理を終了する。データ領域が配置されている場合には、該当するアプリケーションが実行中かどうか調べる（ステップＳ４９）。
【００４４】
ステップＳ４９で、アプリケーションが実行中である場合には、管理テーブルの該当するアプリケーションのエントリに有効フラグ＝０を設定し、無効化する（ステップＳ５０）。また、ステップＳ４８でアプリケーションが実行中でない場合には、ＭＲＡＭ１２に空き領域があるかどうか調べる（ステップＳ５１）。ここで、ＭＲＡＭ１２に空き領域がない場合には、それまでアプリケーションのデータ領域を配置していた記憶領域に新しいデータ領域が入らない場合があるので、ＭＲＡＭ１２に配置されているアプリケーションのうち、現在のアプリケーションよりも使用頻度の低いアプリケーションのデータ領域を管理テーブルから削除して領域を確保する（ステップＳ５２）。
【００４５】
その後、管理テーブルのエントリを更新し（ステップＳ５３）、新しいアプリケーションのデータ領域をＭＲＡＭ１２に読み込む（ステップＳ５４）。
【００４６】
次に、機器の電源を切るとき、即ちＯＳが終了するときの処理例を、図６のフローチャートを参照して説明する。この機器の電源を切るとき（ＯＳが終了するとき）には、ＯＳが更新されたか、その場合に終了時にテキスト領域を読み込むか、終了時にデータ領域の初期化を行うかなど、条件に応じた処理が必要となる。
【００４７】
まず、ＯＳが更新されているかどうかを調べる（ステップＳ６１）。この処理は、例えば管理テーブルのカーネルのテキスト領域のエントリに、有効フラグ＝０が設定されているかどうかから判断する。
【００４８】
この判断で、ＯＳが更新されている場合には、ＯＳ終了時に新しいテキスト領域を読み込む設定かどうか（即ちフラグＦ−ｋｔ＝１か）調べる（ステップＳ６２）。ここで読み込む場合には、ＭＲＡＭ１２に空き領域があるかどうか調べる（ステップＳ６４）。ここで、ＭＲＡＭ１２に空き領域がない状態でＯＳが更新されると、それまでテキスト領域を配置していた記憶領域に新しいテキスト領域が入らない場合があるので、ＭＲＡＭ１２に配置されているアプリケーションのうち、使用頻度の低いアプリケーションを管理テーブルから削除して領域を確保する（ステップＳ６５）。
【００４９】
その後、新しいカーネルのテキスト領域をＭＲＡＭ１２に読み込み（ステップＳ６６）、管理テーブルのエントリを更新する（ステップＳ６７）。この更新としては、有効フラグを１に設定して有効化し、領域のアドレスやサイズを更新する。
【００５０】
また、ステップＳ６２でＯＳ終了時に新しいテキスト領域を読み込まないと判断した場合には、管理テーブルのテキスト領域のエントリを削除する（ステップＳ６３）。
【００５１】
そして、ステップＳ６１でＯＳが更新されていないと判断した場合と、ステップＳ６３及びステップＳ６７の処理後に、ステップＳ６８へ進む。このステップＳ６８では、ＯＳ終了時にデータ領域を読み込む設定かどうか（即ちフラグＦ−ｋｄ＝１か）調べる。
【００５２】
ここで、読み込む設定の場合には、ＭＲＡＭ１２に空き領域があるかどうか調べる（ステップＳ７０）。そして、ＭＲＡＭ１２に空き領域がない場合には、ＭＲＡＭ１２に空き領域がない状態でＯＳが更新されると、それまでデータ領域を配置していたメモリ領域に新しいデータ領域が入らない場合があるので、ＭＲＡＭ１２に配置されているアプリケーションのうち、使用頻度の低いアプリケーションを管理テーブルから削除して領域を確保する（ステップＳ７１）。
【００５３】
その後、管理テーブルのエントリを更新し（ステップＳ７２）、新しいカーネルのデータ領域をＭＲＡＭ１２に読み込む（ステップＳ７３）。管理テーブルのエントリの更新としては、有効フラグを１に設定し、領域のアドレスやサイズを更新する。
【００５４】
また、ステップＳ６８でデータ領域を読み込まない場合には、管理テーブルからカーネルのデータ領域のエントリを削除する（ステップＳ６９）。
【００５５】
次に、アプリケーションを終了するときの処理を、図７のフローチャートを参照して説明する。アプリケーションを終了するときは、アプリケーションが更新されたか、その場合終了時にテキスト領域を読み込むか、終了時にデータ領域の初期化を行うかなど、条件に応じた処理が必要となる。
【００５６】
図７のフローチャートに従って説明すると、まず、アプリケーションが更新されているかどうかを調べる（ステップＳ８１）。この調べる処理としては、例えば管理テーブルのアプリケーションのテキスト領域のエントリに、有効フラグ＝０が設定されているか否か判断する。
【００５７】
この判断で、アプリケーションが更新されている場合には、アプリケーション終了時に新しいテキスト領域を読み込む設定かどうか（即ちフラグＦ−ａｔ＝１か）調べる（ステップＳ８２）。ここで、読み込む場合には、ＭＲＡＭ１２に空き領域があるかどうか調べる（ステップＳ８４）。
【００５８】
ステップＳ８４で、ＭＲＡＭ１２に空き領域がないと判断した場合には、ＭＲＡＭ１２に空き領域がない状態でアプリケーションが更新されると、それまでテキスト領域を配置していた記憶領域に新しいテキスト領域が入らない場合があるので、ＭＲＡＭ１２に配置されているアプリケーションのうち、現在のアプリケーションよりも使用頻度の低いアプリケーションを管理テーブルから削除して領域を確保する（ステップＳ８５）。
【００５９】
その後、管理テーブルのエントリを更新し（ステップＳ８６）、新しいアプリケーションのテキスト領域をＭＲＡＭ１２に読み込む（ステップＳ８７）。ここでの管理テーブルのエントリを更新としては、有効フラグを１に設定し、領域のアドレスやサイズを更新する。
【００６０】
また、ステップＳ８２で、テキスト領域を読み込まない場合には、管理テーブルのテキスト領域のエントリを削除する（ステップＳ８３）。
【００６１】
そして、ステップＳ８１でアプリケーションが更新されていない場合と、ステップＳ８３及びステップＳ８７の処理の後に、ステップＳ８８に進む。ステップＳ８８では、アプリケーション終了時にデータ領域を読み込む設定かどうか（即ちフラグＦ−ａｄ＝１か）調べる。
【００６２】
ここで、データ領域を読み込む場合には、ＭＲＡＭ１２に空き領域があるかどうか調べる（ステップＳ９０）。ここでＭＲＡＭ１２に空き領域がない場合には、空き領域がない状態でアプリケーションが更新されると、それまでデータ領域を配置していたメモリ領域に新しいデータ領域が入らない場合があるので、ＭＲＡＭ１２に配置されているアプリケーションのうち、現在のアプリケーションよりも使用頻度の低いアプリケーションを管理テーブルから削除して領域を確保する（ステップＳ９１）。
【００６３】
その後、管理テーブルのエントリを更新し（ステップＳ９２）、新しいアプリケーションのデータ領域をＭＲＡＭ９３に読み込む（ステップＳ９３）。ここでの更新処理としては、有効フラグを１に設定し、領域のアドレスやサイズを更新する。
【００６４】
また、ステップＳ８８でデータ領域を読み込まない場合には、管理テーブルからアプリケーションのデータ領域のエントリを削除する（ステップＳ８９）。
【００６５】
以上説明したように処理を行うことで、機器の起動時には、起動に必要な主要な部分であるＯＳのカーネルのテキスト領域については、主記憶１０の不揮発性記憶領域であるＭＲＡＭ１２が保持した情報を使用でき、テキスト領域以外の領域だけを、プログラムの保持手段であるハードディスク２などから読み出す処理を行うだけで、短時間で機器を起動させることが可能になる。同様に、アプリケーションプログラムのテキスト領域についても、そのアプリケーションの起動時に、主記憶１０の不揮発性記憶領域であるＭＲＡＭ１２が保持したテキスト領域を使用して起動させることができ、テキスト領域以外の領域だけを、プログラムの保持手段であるハードディスク２などから読み出す処理を行うだけで、短時間でアプリケーションを起動させることができる。それぞれテキスト領域だけでなく、データ領域についてもＭＲＡＭ１２に記憶させてある場合には、よりプログラムの保持手段からの読出しを少なくすることができ、より高速な起動が可能になる。
【００６６】
特に本例の場合には、主記憶１０の不揮発性記憶領域としてＭＲＡＭを使用したので、良好な起動処理が可能である。即ち、ＭＲＡＭのような不揮発性メモリは、記憶容量が比較的大容量で、かつ高速のデータ転送が可能であり、ＯＳのカーネルやアプリケーションプログラムなどの比較的大容量のデータを扱う場合であっても、ラインヒット時には高速でホスト側に転送でき、ＭＲＡＭに記憶されたデータに基づいて、ＣＰＵが迅速に必要としたデータ処理を行える。さらに、ＭＲＡＭのような不揮発性メモリは、データの書込み回数もほぼ無制限であり、電源の瞬時の停電にも強く、低消費電力であり待機電力をゼロにすることができる。
【００６７】
なお、上述した実施の形態では、主記憶１０の不揮発性記憶領域として、ＭＲＡＭを使用する例を示したが、その他の不揮発性メモリであっても、大容量性と高速性を備えたメモリであれば、適用可能である。例えば、強誘電体を利用した記憶素子であるＦｅＲＡＭ（Ｆｅｒｒｏｅｌｅｃｔｒｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＯＵＭ（Ｏｖｏｎｉｃ  Ｕｎｉｆｉｅｄ  Ｍｅｍｏｒｙ）、ＰＭＣ（Ｐｒｏｇｒａｍｍａｂｌｅ  Ｍｅｔａｌｌｉｚａｔｉｏｎ  Ｃｅｌｌ  ）などを使用することも可能である。ＯＵＭは、相変化膜を用いた記憶素子である。
【００６８】
また、上述した実施の形態では、パーソナルコンピュータ装置が備える主記憶の一部を不揮発性のメモリとして、その不揮発性の記憶領域に、カーネルのテキスト領域やアプリケーションプログラムのテキスト領域などを記憶させるようにしたが、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔｓ  ）、携帯電話端末、セットトップボックス、オーディオやビデオの再生装置、ロボットなどの各種組み込み機器において、主記憶の少なくとも一部の記憶領域を不揮発性メモリとして、同様の処理を行うようにしても良い。これらの機器の場合、ＯＳやアプリケーションのソフトウェアが格納された記憶手段としては、ハードディスク以外の記憶手段を使用する場合もあり、場合によっては圧縮されて記憶手段に格納されている場合もあるが、これらの場合にも起動時に主記憶に必要なプログラムを展開させる必要があるので、本発明のように、予めテキスト領域を主記憶の不揮発性の記憶領域に記憶させておくことで、起動時の高速化が図れる。
【００６９】
また、ここまでの説明では、主記憶の一部だけを不揮発性の記憶領域としたが、主記憶全てを不揮発性メモリで構成しても良い。
【００７０】
【発明の効果】
第１の発明によると、機器の起動時には、起動に必要な主要な部分であるテキスト領域については、主記憶が保持した情報を使用でき、テキスト領域以外の領域だけを、プログラムの保持手段から読み出す処理を行うだけで、短時間で機器を起動させることが可能になる。この場合、テキスト領域だけを記憶させれば良いので、主記憶の不揮発性の記憶領域として、少ない記憶容量で良いと共に、テキスト領域については、基本的にはプログラムが更新されない限り変更がないので、主記憶が保持し続けても、毎回の起動を確実に実行できる。
【００７１】
また、このようにした場合に、機器の終了時に、カーネルのデータ領域の不揮発性の記憶領域への読み込みを行うことで、データ領域についても一部が主記憶の不揮発性の記憶領域に保存させることが可能になり、より起動時間を短縮できるようになる。
【００７２】
また、このカーネルのデータ領域の不揮発性の記憶領域への読み込みを、所定の設定に基づいて選択的に行うことで、起動時に必要なデータか否かの判断に基づいて設定して、良好な起動処理が行える。
【００７３】
また、カーネルの領域に関する情報をテーブルで管理して、不揮発性の記憶領域に配置されたテキスト領域及びデータ領域の有効性を、テーブルで管理される情報から判るようにしたことで、保存された無効なデータが起動時に使用されることがなくなり、起動時のエラーの発生を効果的に防止できる。
【００７４】
また第２の発明によると、アプリケーションプログラムの実行時には、そのプログラムの主要な部分であるテキスト領域については、主記憶が保持した情報を使用でき、テキスト領域以外の領域だけを、プログラムの保持手段から読み出す処理を行うだけで、短時間でアプリケーションプログラムを起動させることが可能になる。この場合、テキスト領域だけを記憶させれば良いので、主記憶の不揮発性の記憶領域として、少ない記憶容量で良いと共に、テキスト領域については、基本的にはプログラムが更新されない限り変更がないので、主記憶が保持し続けても、毎回のアプリケーションの起動を確実に実行できる。
【００７５】
また、このようにした場合に、アプリケーションプログラムの終了時に、アプリケーションプログラムのデータ領域の不揮発性の記憶領域への読み込みを行うことで、データ領域についても一部が主記憶の不揮発性の記憶領域に保存させることが可能になり、よりアプリケーションの起動時間を短縮できるようになる。
【００７６】
また、アプリケーションプログラムのデータ領域の不揮発性の記憶領域への読み込みを、所定の設定に基づいて選択的に行うことで、アプリケーション起動時に必要なデータか否かの判断に基づいて設定して、良好なアプリケーションの起動処理が行える。
【００７７】
また、アプリケーションプログラムの領域に関する情報をテーブルで管理して、不揮発性の記憶領域に配置されたテキスト領域及びデータ領域の有効性を、テーブルで管理される情報から判るようにしたことで、保存された無効なデータが起動時に使用されることがなくなり、起動時のエラーの発生を効果的に防止できる。
【００７８】
また、アプリケーションプログラムの使用頻度を管理して、使用頻度の高いプログラムから優先的に、不揮発性の記憶領域に配置することで、限られた記憶容量の記憶領域が有効に活用される。
【００７９】
さらに、アプリケーションプログラムが使用される時間帯又は日付を判断して、時間帯又は日付毎に使用される可能性の高いプログラムから優先的に、不揮発性の記憶領域に配置するようにしたことで、それぞれの時間帯や日付などで、使用される可能性が高いアプリケーションプログラムが直ぐに読出せることになり、限られた記憶容量の記憶領域が有効に活用される。
【図面の簡単な説明】
【図１】本発明の一実施の形態による構成例を示す構成図である。
【図２】本発明の一実施の形態による管理テーブルの構成例を示す説明図である。
【図３】本発明の一実施の形態による機器起動時の処理例を示したフローチャートである。
【図４】本発明の一実施の形態によるアプリケーション起動時の処理例を示したフローチャートである。
【図５】本発明の一実施の形態によるＯＳ及びアプリケーション更新時の処理例を示したフローチャートである。
【図６】本発明の一実施の形態による電源切断時の処理例を示したフローチャートである。
【図７】本発明の一実施の形態によるアプリケーション終了時の処理例を示したフローチャートである。
【符号の説明】
１…中央制御ユニット（ＣＰＵ）、２…ハードディスクドライブ、３…ＲＯＭ、４…インターフェース（ネットワーク接続用）、１０…主記憶部、１１…ＤＲＡＭ、１２…ＭＲＡＭ
【図１】
2005011120.tif 000003
【図２】
2005011120.tif 000004
【図３】
2005011120.tif 000005
【図４】
2005011120.tif 000006
【図５】
2005011120.tif 000007
【図６】
2005011120.tif 000008
【図７】
2005011120.tif 000009