(57)【要約】【課題】効率よくプログラムを実行することが可能なプログラム実行装置を提供する。【解決手段】プログラム実行装置は、第１のプログラムを記憶した第１の記憶手段と、前記第１の記憶手段からロードされた一部プログラムを記憶するための第２の記憶手段と、前記第１の記憶手段の前記第１のプログラムの第１の記憶領域と仮想メモリの第１の仮想領域とを対応付ける第１の対応付けを実行し、この第１の対応付けに基づいて前記第１の記憶手段に記憶された前記第１のプログラムを実行し、前記一部プログラムの実行要求に対応して前記一部プログラムを前記第２の記憶手段へ書き込み、前記第２の記憶手段の前記一部プログラムの第２の記憶領域と仮想メモリの第２の仮想領域と対応付ける第２の対応付けを実行し、前記第２の対応付けに基づいて前記第２の記憶手段に記憶された前記一部プログラムを実行する制御手段と、を備える。【選択図】図２Ｃ
2010186411.tif 000002
【特許請求の範囲】
【請求項１】
第１のプログラムを記憶した第１の記憶手段と、
前記第１の記憶手段からロードされた一部プログラム、或いは他の記憶手段からロードされた第２のプログラムを記憶するための第２の記憶手段と、
前記第１の記憶手段の前記第１のプログラムの第１の記憶領域と仮想メモリの第１の仮想領域とを対応付ける第１の対応付けを実行し、前記第１のプログラムの実行要求に対応して前記第１の対応付けに基づいて前記第１の記憶手段に記憶された前記第１のプログラムを実行し、前記一部プログラムの実行要求或いは前記第２のプログラムの実行要求に対応して前記一部プログラム或いは前記第２のプログラムを前記第２の記憶手段へ書き込み、前記第２の記憶手段の前記一部プログラム或いは前記第２のプログラムの第２の記憶領域と仮想メモリの第２の仮想領域と対応付ける第２の対応付けを実行し、前記第２の対応付けに基づいて前記第２の記憶手段に記憶された前記一部プログラム或いは前記第２のプログラムを実行する制御手段と、
を備えたことを特徴とするプログラム実行装置。
【請求項２】
前記制御手段は、前記第１の対応付けに基づいて前記第１のプログラムを実行した後、前記第１の対応付けを無効に設定することを特徴とする請求項１に記載のプログラム実行装置。
【請求項３】
前記制御手段は、
前記第１の記憶手段の前記第１のプログラムの前記第１の記憶領域を構成する複数のページと仮想メモリの第１の仮想領域を構成する複数のページとを対応付けた第１の対応情報を有効に設定し、
前記有効に設定された前記第１の対応情報に基づいて前記第１の記憶手段に記憶された前記第１のプログラムを実行し、
前記有効に設定された前記第１の対応情報を無効に設定し、
前記一部プログラムの実行要求に対応して前記一部プログラムを前記第２の記憶手段へ書き込み、
前記第２の記憶手段の前記一部プログラムの前記第２の記憶領域を構成する一部プログラムページと前記仮想メモリの前記第２の仮想領域を構成するページとを対応付けた第２の対応情報を有効に設定し、
前記有効に設定された前記第２の対応情報に基づいて前記第２の記憶手段に記憶された前記一部プログラムを実行する、
ことを特徴とする請求項１に記載のプログラム実行装置。
【請求項４】
前記第１のプログラムは、起動プログラムであり、
前記制御手段は、前記第１のプログラムの実行によりシステムを起動し、起動完了後に前記有効に設定された前記第１の対応情報を無効に設定する、
ことを特徴とする請求項３に記載のプログラム実行装置。
【請求項５】
前記制御手段は、
前記第１の対応付けに基づいて前記第１のプログラムの実行の有無に関係なく前記第１の対応付けを維持し、前記第２のプログラムの実行要求に対応して前記第２のプログラムを前記第２の記憶手段へ書き込み、前記第２の対応付けを実行する、
ことを特徴とする請求項１に記載のプログラム実行装置。
【請求項６】
前記制御手段は、
前記第１の記憶手段の前記第１のプログラムの前記第１の記憶領域を構成する複数のページと仮想メモリの第１の仮想領域を構成する複数のページとを対応付けた第１の対応情報を有効に設定し、
前記第１のプログラムの実行要求があれば前記有効に設定された前記第１の対応情報に基づいて前記第１の記憶手段に記憶された前記第１のプログラムを実行し、前記第１のプログラムの実行要求が無くとも前記前記有効に設定された前記第１の対応情報を維持し、
前記第２のプログラムの実行要求に対応して前記第２のプログラムを第２の記憶手段へ書き込み、
前記第２の記憶手段の前記第２のプログラムの前記第２の記憶領域を構成する第２のプログラムページと前記仮想メモリの前記第２の仮想領域を構成するページとを対応付けた第２の対応情報を有効に設定し、
前記有効に設定された前記第２の対応情報に基づき前記第２の記憶手段に記憶された前記第２のプログラムを実行する、
ことを特徴とする請求項１に記載のプログラム実行装置。
【請求項７】
前記第１の記憶手段は、第１の使用頻度の前記第１のプログラムを記憶し、
前記第２の記憶手段は、前記第１の使用頻度より高い第２の使用頻度の前記第２のプログラムを記憶する、
ことを特徴とする請求項５に記載のプログラム実行装置。
【請求項８】
前記制御手段は、前記他の記憶手段に圧縮して記憶された前記第２のプログラムを伸張し第２の記憶手段へ書き込むことを特徴とする請求項５に記載のプログラム実行装置。
【請求項９】
第１の記憶手段の第１のプログラムの第１の記憶領域と仮想メモリの第１の仮想領域とを対応付ける第１の対応付けを実行する手順と、
前記第１のプログラムの実行要求に対応して前記第１の対応付けに基づいて前記第１の記憶手段に記憶された前記第１のプログラムを実行する手順と、
前記第１プログラムの一部プログラムの実行要求或いは第２のプログラムの実行要求に対応して前記一部プログラム或いは前記第２のプログラムを前記第２の記憶手段へ書き込む手順と、
前記第２の記憶手段の前記一部プログラム或いは前記第２のプログラムの第２の記憶領域と仮想メモリの第２の仮想領域と対応付ける第２の対応付けを実行する手順と、
前記第２の対応付けに基づいて前記第２の記憶手段に記憶された前記一部プログラム或いは前記第２のプログラムを実行する手順と、
をコンピュータに実行させるためのプログラム。
【請求項１０】
前記第１の対応付けに基づいて前記第１のプログラムを実行した後、前記第１の対応付けを無効に設定する手順をコンピュータに実行させるための請求項９に記載のプログラム。
【請求項１１】
前記第１の対応付けに基づいて前記第１のプログラムの実行の有無に関係なく前記第１の対応付けを維持し、前記第２のプログラムの実行要求に対応して前記第２のプログラムを前記第２の記憶手段へ書き込み、前記第２の対応付けを実行する手順をコンピュータに実行させることを特徴とする請求項９に記載のプログラム。
【請求項１２】
第１の記憶手段の第１のプログラムの第１の記憶領域と仮想メモリの第１の仮想領域とを対応付ける第１の対応付けを実行し、
前記第１のプログラムの実行要求に対応して前記第１の対応付けに基づいて前記第１の記憶手段に記憶された前記第１のプログラムを実行し、
前記第１プログラムの一部プログラムの実行要求或いは第２のプログラムの実行要求に対応して前記一部プログラム或いは前記第２のプログラムを前記第２の記憶手段へ書き込み、
前記第２の記憶手段の前記一部プログラム或いは前記第２のプログラムの第２の記憶領域と仮想メモリの第２の仮想領域と対応付ける第２の対応付けを実行し、
前記第２の対応付けに基づいて前記第２の記憶手段に記憶された前記一部プログラム或いは前記第２のプログラムを実行する、
ことを特徴とするプログラム実行方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば起動プログラムを実行するプログラム実行装置及びプログラム実行方法、並びにこのプログラム実行装置に適用可能なプログラムに関する。
【背景技術】
【０００２】
CPU（central processing unit）により制御される代表的な機器としてパーソナルコンピュータが挙げられるが、近年では、映像機器のデジタル化に伴いデジタルＴＶ及びハードディスクレコーダなどもCPUにより動作が制御されている。
【０００３】
CPUは、例えば、NOR Flash又はMask ROMなどの不揮発性メモリに記憶されたプログラムをRAMへ展開し、RAM上のプログラムを実行する。RAMは、上記した不揮発性メモリに比べて高速アクセスに優れているため、プログラムの実行速度を速めることができる。ところが、不揮発性メモリに記憶されたプログラムをロードしたり、不揮発性メモリにプログラムを展開したりするための時間が必要となり、機器の起動時間が遅くなる傾向にある。
【０００４】
機器の起動時間を短縮するために、例えば、ＣＰＵが、NOR Flash又はMask ROMなどのメモリに記憶されたプログラムを直接実行するシステムが提案されている。しかしながら、頻繁にプログラムを実行する場合には、ＣＰＵが、RAMに比して高速アクセスに劣る不揮発性メモリへ頻繁にアクセスしなければならず、全体の処理速度が低下してしまう。
【０００５】
そこで、電源がオンされたときに、プログラム実行領域である仮想アドレスをFlashメモリの物理メモリ領域にマップし、プログラムをFlashメモリ上で動作させ、その後、プログラムをRAMへロードし、仮想アドレスをRAMの物理メモリ領域へリマップする技術が提案されている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００８−１５７２５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上記特許文献１に開示された技術は、プログラムの全てをRAMへロードしている。そのため、例えば電源オンの直後（起動中）にしか参照しないプログラムであっても、起動後にRAMへロードされることになり、無駄なロード時間が生じるだけでなくシステムに余計な負荷がかかる。
【０００８】
本発明の目的は、より効率よくプログラムを実行することが可能なプログラム実行装置、プログラム実行方法、及びその実行プログラムを提供することにある。
【課題を解決するための手段】
【０００９】
本発明の一実施形態に係るプログラム実行装置は、第１のプログラムを記憶した第１の記憶手段と、前記第１の記憶手段からロードされた一部プログラムを記憶するための第２の記憶手段と、前記第１の記憶手段の前記第１のプログラムの第１の記憶領域と仮想メモリの第１の仮想領域とを対応付ける第１の対応付けを実行し、この第１の対応付けに基づいて前記第１の記憶手段に記憶された前記第１のプログラムを実行し、前記一部プログラムの実行要求に対応して前記一部プログラムを前記第２の記憶手段へ書き込み、前記第２の記憶手段の前記一部プログラムの第２の記憶領域と仮想メモリの第２の仮想領域と対応付ける第２の対応付けを実行し、前記第２の対応付けに基づいて前記第２の記憶手段に記憶された前記一部プログラムを実行する制御手段と、を備える。
【００１０】
本発明の一実施形態に係るプログラム実行方法は、第１の記憶手段の第１のプログラムの第１の記憶領域と仮想メモリの第１の仮想領域とを対応付ける第１の対応付けを実行し、前記第１のプログラムの実行要求に対応して前記第１の対応付けに基づいて前記第１の記憶手段に記憶された前記第１のプログラムを実行し、前記第１プログラムの一部プログラムの実行要求或いは第２のプログラムの実行要求に対応して前記一部プログラム或いは前記第２のプログラムを前記第２の記憶手段へ書き込み、前記第２の記憶手段の前記一部プログラム或いは前記第２のプログラムの第２の記憶領域と仮想メモリの第２の仮想領域と対応付ける第２の対応付けを実行し、前記第２の対応付けに基づいて前記第２の記憶手段に記憶された前記一部プログラム或いは前記第２のプログラムを実行する。
【００１１】
本発明の一実施形態に係るプログラムは、第１の記憶手段の第１のプログラムの第１の記憶領域と仮想メモリの第１の仮想領域とを対応付ける第１の対応付けを実行する手順と、前記第１のプログラムの実行要求に対応して前記第１の対応付けに基づいて前記第１の記憶手段に記憶された前記第１のプログラムを実行する手順と、前記第１プログラムの一部プログラムの実行要求或いは第２のプログラムの実行要求に対応して前記一部プログラム或いは前記第２のプログラムを前記第２の記憶手段へ書き込む手順と、前記第２の記憶手段の前記一部プログラム或いは前記第２のプログラムの第２の記憶領域と仮想メモリの第２の仮想領域と対応付ける第２の対応付けを実行する手順と、前記第２の対応付けに基づいて前記第２の記憶手段に記憶された前記一部プログラム或いは前記第２のプログラムを実行する手順と、をコンピュータに実行させる。
【発明の効果】
【００１２】
本発明によれば、より効率よくプログラムを実行することが可能なプログラム実行装置、プログラム実行方法、及びその実行プログラムを提供できる。
【図面の簡単な説明】
【００１３】
【図１】本発明の一実施形態に係るプログラム実行装置の概略構成を示す図である。
【図２Ａ】プログラム実行装置の起動中に仮想メモリとプログラムメモリとがマップされた状態を示す図である。
【図２Ｂ】プログラム実行装置の起動直後に仮想メモリとプログラムメモリとのマップが無効（Invalid）にされた状態を示す図である。
【図２Ｃ】プログラム実行装置の起動後に仮想メモリとメインメモリとがマップされた状態を示す図である。
【図３】第１のプログラム実行処理の動作を説明するための図である。
【図４】仮想メモリとプログラムメモリとがマップされ、且つ仮想メモリとメインメモリとがマップされた状態を示す図である。
【図５】第２のプログラム実行処理の動作を説明するための図である。
【発明を実施するための形態】
【００１４】
以下、図面を参照し、本発明の実施形態について説明する。
【００１５】
図１は、本発明の一実施形態に係るプログラム実行装置の概略構成を示す図である。このプログラム実行装置は、パーソナルコンピュータ、デジタルＴＶ、ハードディスクレコーダなどに適用することができる。
【００１６】
図１に示すようにプログラム実行装置は、CPUなどで構成することが可能な制御モジュール１、NOR Flash又はMask ROMなどのプログラムメモリ２、RAMなどで構成することが可能なメインメモリ３、HDD（ハードディスクドライブ）又はNAND Flashなどで構成することが可能なストレージ４を備え、制御モジュール１、プログラムメモリ２、メインメモリ３、ストレージ４は、バス５を介して接続されている。
【００１７】
次に、図２Ａ〜図２Ｃ及び図３を参照して、プログラム実行装置による第１のプログラム実行処理について説明する。図２Ａは、プログラム実行装置の起動中に仮想メモリとプログラムメモリ２とがマップ（対応付け）された状態を示す図である。図２Ｂは、プログラム実行装置の起動直後に仮想メモリとプログラムメモリ２とのマップが無効（Invalid）にされた状態を示す図である。図２Ｃは、プログラム実行装置の起動後に仮想メモリとメインメモリ３とがマップされた状態を示す図である。また、図３は、第１のプログラム実行処理の動作を説明するための図である。
【００１８】
プログラム実行装置は、起動中において、プログラムメモリ２に記憶されたプログラムを直接実行し、起動後は、プログラムメモリ２に記憶されたプログラムのうちの必要なプログラム（一部プログラム）だけをメインメモリ３へロードし、メインメモリ３にロードされた一部プログラムを実行する。詳細は、以下の通りである。
【００１９】
プログラム実行装置の電源がオンされると（ＳＴ１０１）、オペレーティングシステムにより、制御モジュール１は、プログラムメモリ２に記憶されたプログラムを起動するため、仮想メモリ空間を生成する。
【００２０】
さらに、図２Ａに示すように、制御モジュール１は、プログラムメモリ２に記憶されたプログラムを直接実行するために、プログラムメモリ２に記憶されたプログラムの第１の記憶領域と仮想メモリ空間の第１の仮想領域とをマップする（ＳＴ１０２）。即ち、制御モジュール１は、プログラムメモリ２のプログラムの第１の記憶領域を構成する複数のページと仮想メモリ空間の第１の仮想領域を構成する複数のページとを対応付けた第１の対応情報を設定し、第１の対応情報に含まれた各ページエントリを有効（V: Valid）に設定する。この各ページエントリの有効設定により、制御モジュール１は、仮想メモリ空間（第１の仮想領域）へアクセスした場合に、page faultと呼ばれる例外を発生させることなく、第１の対応情報に基づきプログラムメモリ２のプログラムへアクセスすることができ、このプログラムを実行することができる（ＳＴ１０３）。
【００２１】
プログラムの実行により起動処理が完了すると（ＳＴ１０４、ＹＥＳ）、図２Ｂに示すように、制御モジュール１は、第１の対応情報に含まれた各ページエントリを無効（IV: Invalid）に設定する（ＳＴ１０５）。プログラム実行装置がデジタルＴＶに適用されているケースを想定すると、上記した起動処理の完了とは、例えば放送表示の完了に相当する。
【００２２】
上記したように、第１の対応情報に含まれた各ページエントリを無効に設定することにより、制御モジュール１が、仮想メモリ空間（第１の仮想領域）へアクセスした場合に、例外が発生する。つまり、プログラムメモリ２に記憶されたプログラムの一部プログラムの実行要求に基づき（ＳＴ１０６）、制御モジュール１が仮想メモリ空間（第１の仮想領域）へアクセスすると、例外が発生する（ＳＴ１０７、ＹＥＳ）。
【００２３】
上記したように、起動処理の完了後に例外が発生すると（ＳＴ１０７、ＹＥＳ）、図２Ｃに示すように、制御モジュール１は、プログラムメモリ２に記憶されたプログラムの一部プログラム（要求された一部プログラム）をロードしメインメモリ３に書き込み（ＳＴ１０８）、メインメモリ３の一部プログラムの第２の記憶領域（第１の記憶領域の一部）を構成する一部プログラムページと仮想メモリ空間の第２の仮想領域（第１の仮想領域の一部）を構成するページとを対応付けた第２の対応情報を設定し、第２の対応情報に含まれた各ページエントリを有効（V: Valid）に設定する（ＳＴ１０９）。
【００２４】
なお、図２Ａ及び図２Ｃから明らかなように、第２の仮想領域の各ページエントリは、第１の仮想領域の一部領域の各ページエントリに対応する。図２Ａに示す第１の仮想領域の一部領域の各ページエントリは、プログラムメモリ２の一部プログラムが記憶された領域の物理アドレスを含むのに対して、図２Ｃに示す第２の仮想領域の各ページエントリは、メインメモリ３に書き込まれた一部プログラムが記憶された領域の物理アドレスを含む。
【００２５】
従って、上記した一部プログラムの実行要求に基づき（ＳＴ１０６）、制御モジュール１は、仮想メモリ空間（第２の仮想領域）へアクセスした場合に、例外を発生させることなく、第２の対応情報に基づきプログラムメモリ３の一部プログラムへアクセスすることができ、この一部プログラムを実行することができる。
【００２６】
上記したように、プログラム実行装置は、起動時には、プログラムメモリ２に記憶されたプログラムを直接実行する。これにより、ロード時間を省くことができ、起動時間を高速化することができる。また、プログラム実行装置は、起動後は、必要になったプログラムだけをメインメモリ３へ書き込み、起動にしか使用しないプログラムはメインメモリ３へ書き込まない。これにより、プログラム全体をメインメモリ３へ書き込むのに比して無駄なロード時間を省くことができるし、メインメモリ３の記憶領域を有効に活用することができる。また、プログラム実行装置は、起動後は、必要になったプログラムだけを逐次メインメモリ３へ書き込むので、プログラムの書き込み負荷を分散することができる。さらに、プログラム実行装置は、起動後は、上記したようにメインメモリ３に書き込まれた一部プログラムを実行するので、プログラムメモリ２に記憶されたプログラムを直接実行するのに比して高速処理が可能となる。
【００２７】
次に、図４及び図５を参照して、プログラム実行装置による第２のプログラム実行処理について説明する。図４は、仮想メモリとプログラムメモリ２とがマップされ、且つ仮想メモリとメインメモリ３とがマップされた状態を示す図である。また、図５は、第２のプログラム実行処理の動作を説明するための図である。
【００２８】
プログラム実行装置のプログラムメモリ２は、第１の使用頻度の第１のプログラムを記憶し、ストレージ４は第１の使用頻度より高い第２の使用頻度の第２のプログラムを記憶する。プログラム実行装置の出荷前のプログラム使用頻度チェックに基づき、使用頻度の低いプログラム（第１のプログラム）がプログラムメモリ２に格納され、使用頻度の高いプログラム（第２のプログラム）がストレージ４（又はプログラムメモリ２）に格納される。例えば、プログラム実行装置がデジタルＴＶに適用されるケースでは、ＴＶに映像が表示されるまでの間（起動完了までの間）に、どのプログラムがどの程度使用されるかをカウントし、この使用頻度チェックに基づき各プログラムの格納先を決定する。
【００２９】
プログラム実行装置は、プログラムメモリ２に記憶された第１のプログラムの第１の記憶領域と仮想メモリの第１の仮想領域とを第１の対応情報によりマップし、この第１のプログラムを実行する場合は、第１の対応情報に基づいてプログラムメモリ２上の第１のプログラムを直接実行する。さらに、プログラム実行装置は、第２のプログラムの実行が必要になった時点で、ストレージ４（又はプログラムメモリ２）に記憶された第２のプログラムをメインメモリ３に書き込み、メインメモリ３の第２のプログラムの第２の記憶領域と仮想メモリの第２の仮想領域とを第２の対応情報によりマップし、第２の対応情報に基づいてメインメモリ３上の第２のプログラムを実行する。
【００３０】
上記した第１のプログラム実行処理では、例えば、全てプログラム（第１のプログラム）をプログラムメモリ２に格納しておき、プログラムメモリ２上のプログラムを直接実行し、起動後は、必要なプログラム（一部プログラム）だけをメインメモリ３上に書き込んでメインメモリ３上のプログラムを実行することができる。
【００３１】
これに対して、第２のプログラム実行処理では、例えば、全ての起動プログラム（第１のプログラムと第２のプログラム）のうちの、アクセス頻度の低い第１のプログラムをプログラムメモリ２に格納し、アクセス頻度の高い第２のプログラムをストレージ４（又はプログラムメモリ２）に格納し、プログラムメモリ２上の第１のプログラムを直接実行し、第２のプログラムが必要になったときに、ストレージ４上（又はプログラムメモリ２上）の第２のプログラムをメインメモリ３へ書き込んで、メインメモリ３上の第２のプログラムを実行する。これにより、プログラムのアクセス頻度に応じたプログラムの実行方法を選択することができ、実行時間（起動時間）を速くすることができる。詳細は、以下の通りである。
【００３２】
プログラム実行装置の電源がオンされると（ＳＴ２０１）、オペレーティングシステムにより、制御モジュール１は、プログラムメモリ２に記憶された第１のプログラムを起動するため、仮想メモリ空間を生成する。
【００３３】
さらに、図４に示すように、制御モジュール１は、プログラムメモリ２に記憶された第１のプログラムを直接実行するために、プログラムメモリ２に記憶された第１のプログラムの第１の記憶領域と仮想メモリ空間の第１の仮想領域とをマップする（ＳＴ２０２）。即ち、制御モジュール１は、プログラムメモリ２の第１のプログラムの第１の記憶領域を構成する複数のページと仮想メモリ空間の第１の仮想領域を構成する複数のページとを対応付けた第１の対応情報を設定し、第１の対応情報に含まれた各ページエントリを有効（V: Valid）に設定する。この各ページエントリの有効設定により、制御モジュール１は、仮想メモリ空間（第１の仮想領域）へアクセスした場合に、page faultと呼ばれる例外を発生させることなく、第１の対応情報に基づきプログラムメモリ２の第１のプログラムへアクセスすることができ、この第１のプログラムを実行することができる（ＳＴ２０３）。
【００３４】
第１のプログラムを実行した後、或いは第１のプログラムを実行せずに、第２のプログラムを実行する場合、つまり第２のプログラムの実行要求に基づき、制御モジュール１が仮想メモリ空間へアクセスすると、例外が発生する（ＳＴ２０７、ＹＥＳ）。このように、例外が発生すると（ＳＴ２０７、ＹＥＳ）、制御モジュール１は、ストレージ４（又はプログラムメモリ２）に記憶された第２のプログラム（要求された第２のプログラム）をロードしメインメモリ３に書き込み（ＳＴ２０８）、メインメモリ３の第２のプログラムの第２の記憶領域を構成する各ページと仮想メモリ空間の第２の仮想領域を構成する各ページとを対応付けた第２の対応情報を設定し、第２の対応情報に含まれた各ページエントリを有効（V: Valid）に設定する（ＳＴ２０９）。なお、図４では、第２の対応情報に含まれた各ページエントリが無効（Invalidate）に設定されているように見えるが、第２の対応情報の設定完了前の状態を示しており、第２の対応情報の設定が完了すると、第２の対応情報に含まれた各ページエントリは有効に設定される。
【００３５】
従って、上記した第２のプログラムの実行要求に基づき（ＳＴ２０３）、制御モジュール１は、仮想メモリ空間（第２の仮想領域）へアクセスした場合に、例外を発生させることなく、第２の対応情報に基づきプログラムメモリ３の第２のプログラムへアクセスすることができ、この第２のプログラムを実行することができる。
【００３６】
また、ストレージ４（又はプログラムメモリ２）は、圧縮された第２のプログラムを格納し、制御モジュール１は、圧縮された第２のプログラムを伸張し、伸張された第２のプログラムをメインメモリ３へ書き込むようにしてもよい。
【００３７】
上記したように、プログラム実行装置は、プログラムメモリ２に記憶されたアクセス頻度の低い第１のプログラムを直接実行し、ストレージ４又はプログラムメモリ２に記憶されたアクセス頻度の高い第２のプログラムの実行が必要になった場合に、この第２のプログラムをメインメモリ３に書き込んでメインメモリ３上の第２のプログラムを実行する。これにより、プログラムのアクセス頻度に応じたプログラムの実行方法を選択することができ、実行時間（起動時間）を速くすることができる。アクセス頻度の高い第２のプログラムを比較的安価なストレージ４に格納することができるので、比較的高価なプログラムメモリ３の記憶容量を有効活用することができる。或いは、容量の小さいプログラムメモリ３を適用することができる。
【００３８】
上記説明した第１及び第２のプログラム実行処理は、例えば、ブート処理に適用することができる。また、第１及び第２のプログラム実行処理は、プログラム（以下、効率化プログラム）にて実現することができ、プログラム実行装置にはこの効率化プログラムが予めインストールされる。或いは、この効率化プログラムが記憶された記憶媒体を使用し、プログラム実行装置へこの効率化プログラムをインストールすることもできる。また、この効率化プログラムをネットワークを介してサーバからダウンロードし、プログラム実行装置へこの効率化プログラムをインストールすることもできる。また、上記説明した第１及び第２のプログラム実行処理は、上記した効率化プログラム、制御モジュール１、オペレーティングシステム等が共働して実現するものである。
【００３９】
なお、上記したモジュールとは、ハードウェアで実現するものであっても良いし、ＣＰＵ等を使ってソフトウェアで実現するものであってもよい。
【００４０】
なお、本願発明は、上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。また、各実施形態は可能な限り適宜組み合わせて実施してもよく、その場合組み合わせた効果が得られる。更に、上記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適当な組み合わせにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件からいくつかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
【符号の説明】
【００４１】
１…制御モジュール、２…プログラムメモリ、３…メインメモリ、４…ストレージ、５…バス
【図１】
2010186411.tif 000003
【図２Ａ】
2010186411.tif 000004
【図２Ｂ】
2010186411.tif 000005
【図２Ｃ】
2010186411.tif 000006
【図３】
2010186411.tif 000007
【図４】
2010186411.tif 000008
【図５】
2010186411.tif 000009
【手続補正書】
【提出日】平成22年5月17日(2010.5.17)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
第１のプログラムを記憶した第１の記憶手段と、
前記第１の記憶手段からロードされた一部プログラム、或いは他の記憶手段からロードされた第２のプログラムを記憶するための第２の記憶手段と、
起動中には、前記第１の記憶手段の前記第１のプログラムの第１の記憶領域と仮想メモリの第１の仮想領域とを対応付ける第１の対応付けを実行し、前記第１のプログラムの実行要求に対応して前記第１の対応付けに基づいて前記第１の記憶手段に記憶された前記第１のプログラムを実行し、起動後は、前記一部プログラムの実行要求或いは前記第２のプログラムの実行要求に対応して前記一部プログラム或いは前記第２のプログラムを前記第２の記憶手段へ書き込み、前記第２の記憶手段の前記一部プログラム或いは前記第２のプログラムの第２の記憶領域と仮想メモリの第２の仮想領域と対応付ける第２の対応付けを実行し、前記第２の対応付けに基づいて前記第２の記憶手段に記憶された前記一部プログラム或いは前記第２のプログラムを実行する制御手段と、
を備えたことを特徴とするプログラム実行装置。
【請求項２】
前記制御手段は、前記第１の対応付けに基づいて前記第１のプログラムを実行した後、前記第１の対応付けを無効に設定することを特徴とする請求項１に記載のプログラム実行装置。
【請求項３】
前記制御手段は、
前記第１の記憶手段の前記第１のプログラムの前記第１の記憶領域を構成する複数のページと仮想メモリの第１の仮想領域を構成する複数のページとを対応付けた第１の対応情報を有効に設定し、
前記有効に設定された前記第１の対応情報に基づいて前記第１の記憶手段に記憶された前記第１のプログラムを実行し、
前記有効に設定された前記第１の対応情報を無効に設定し、
前記一部プログラムの実行要求に対応して前記一部プログラムを前記第２の記憶手段へ書き込み、
前記第２の記憶手段の前記一部プログラムの前記第２の記憶領域を構成する一部プログラムページと前記仮想メモリの前記第２の仮想領域を構成するページとを対応付けた第２の対応情報を有効に設定し、
前記有効に設定された前記第２の対応情報に基づいて前記第２の記憶手段に記憶された前記一部プログラムを実行する、
ことを特徴とする請求項１に記載のプログラム実行装置。
【請求項４】
前記第１のプログラムは、起動プログラムであり、
前記制御手段は、前記第１のプログラムの実行によりシステムを起動し、起動完了後に前記有効に設定された前記第１の対応情報を無効に設定する、
ことを特徴とする請求項３に記載のプログラム実行装置。
【請求項５】
前記制御手段は、
前記第１の対応付けに基づいて前記第１のプログラムの実行の有無に関係なく前記第１の対応付けを維持し、前記第２のプログラムの実行要求に対応して前記第２のプログラムを前記第２の記憶手段へ書き込み、前記第２の対応付けを実行する、
ことを特徴とする請求項１に記載のプログラム実行装置。
【請求項６】
前記制御手段は、
前記第１の記憶手段の前記第１のプログラムの前記第１の記憶領域を構成する複数のページと仮想メモリの第１の仮想領域を構成する複数のページとを対応付けた第１の対応情報を有効に設定し、
前記第１のプログラムの実行要求があれば前記有効に設定された前記第１の対応情報に基づいて前記第１の記憶手段に記憶された前記第１のプログラムを実行し、前記第１のプログラムの実行要求が無くとも前記前記有効に設定された前記第１の対応情報を維持し、
前記第２のプログラムの実行要求に対応して前記第２のプログラムを第２の記憶手段へ書き込み、
前記第２の記憶手段の前記第２のプログラムの前記第２の記憶領域を構成する第２のプログラムページと前記仮想メモリの前記第２の仮想領域を構成するページとを対応付けた第２の対応情報を有効に設定し、
前記有効に設定された前記第２の対応情報に基づき前記第２の記憶手段に記憶された前記第２のプログラムを実行する、
ことを特徴とする請求項１に記載のプログラム実行装置。
【請求項７】
前記第１の記憶手段は、第１の使用頻度の前記第１のプログラムを記憶し、
前記第２の記憶手段は、前記第１の使用頻度より高い第２の使用頻度の前記第２のプログラムを記憶する、
ことを特徴とする請求項５に記載のプログラム実行装置。
【請求項８】
前記制御手段は、前記他の記憶手段に圧縮して記憶された前記第２のプログラムを伸張し第２の記憶手段へ書き込むことを特徴とする請求項５に記載のプログラム実行装置。
【請求項９】
起動中には、第１の記憶手段の第１のプログラムの第１の記憶領域と仮想メモリの第１の仮想領域とを対応付ける第１の対応付けを実行する手順と、
起動中には、前記第１のプログラムの実行要求に対応して前記第１の対応付けに基づいて前記第１の記憶手段に記憶された前記第１のプログラムを実行する手順と、
起動後は、前記第１プログラムの一部プログラムの実行要求或いは第２のプログラムの実行要求に対応して前記一部プログラム或いは前記第２のプログラムを前記第２の記憶手段へ書き込む手順と、
起動後は、前記第２の記憶手段の前記一部プログラム或いは前記第２のプログラムの第２の記憶領域と仮想メモリの第２の仮想領域と対応付ける第２の対応付けを実行する手順と、
起動後は、前記第２の対応付けに基づいて前記第２の記憶手段に記憶された前記一部プログラム或いは前記第２のプログラムを実行する手順と、
をコンピュータに実行させるためのプログラム。
【請求項１０】
前記第１の対応付けに基づいて前記第１のプログラムを実行した後、前記第１の対応付けを無効に設定する手順をコンピュータに実行させるための請求項９に記載のプログラム。
【請求項１１】
前記第１の対応付けに基づいて前記第１のプログラムの実行の有無に関係なく前記第１の対応付けを維持し、前記第２のプログラムの実行要求に対応して前記第２のプログラムを前記第２の記憶手段へ書き込み、前記第２の対応付けを実行する手順をコンピュータに実行させることを特徴とする請求項９に記載のプログラム。
【請求項１２】
制御手段は、起動中には、第１の記憶手段の第１のプログラムの第１の記憶領域と仮想メモリの第１の仮想領域とを対応付ける第１の対応付けを実行し、
前記制御手段は、起動中には、前記第１のプログラムの実行要求に対応して前記第１の対応付けに基づいて前記第１の記憶手段に記憶された前記第１のプログラムを実行し、
前記制御手段は、起動後においては、前記第１プログラムの一部プログラムの実行要求或いは第２のプログラムの実行要求に対応して前記一部プログラム或いは前記第２のプログラムを前記第２の記憶手段へ書き込み、
前記制御手段は、起動後においては、前記第２の記憶手段の前記一部プログラム或いは前記第２のプログラムの第２の記憶領域と仮想メモリの第２の仮想領域と対応付ける第２の対応付けを実行し、
前記制御手段は、起動後においては、前記第２の対応付けに基づいて前記第２の記憶手段に記憶された前記一部プログラム或いは前記第２のプログラムを実行する、
ことを特徴とするプログラム実行方法。