(57)【要約】【課題】ＲＡＭ上に展開され実行されている対象ソフトウェアプログラムの命令コードおよびデータのスナップショットイメージをメモリに直接書き込むことにより画期的に装置起動時間を短縮すること。【解決手段】メモリ復元部３０１により、ＲＡＭをスナップショットイメージを採取したときと同じメモリ状態に復元する（Ｓ６０２）。この際、ＣＰＵ１０２により処理が行われるので、スナップショットイメージ２１１を所定の区分に分けて、メモリ状態を変化させないような順序でＲＡＭ上に書き込んでいく。次に、システム設定部３０２によって、システム設定情報を読み込んでＣＰＵ１０２のレジスタ内の状態や、システムで保持している状態情報などを設定して元のシステム状態に復元する（Ｓ６０３）。【選択図】図６
2009176151.tif 000002
【特許請求の範囲】
【請求項１】
メモリと演算処理手段とを備え、対象ソフトウェアプログラムを該メモリ上に展開し、展開された命令コードを逐次読み出して該演算処理手段により実行する情報処理装置であって、
装置起動後の所定の状態におけるメモリ上の対象ソフトウェアプログラムの展開イメージと、該所定の状態におけるシステム状態を示すシステム設定情報とを格納する記憶手段と、
装置起動が実行されると、メモリ上に前記対象ソフトウェアプログラムの展開イメージを相互に上書きされない順番に前記記憶手段から読み出して書き込むメモリ復元手段と、
前記対象ソフトウェアプログラムの展開イメージ書き込み後、前記所定の状態におけるシステム設定情報を前記記憶手段から読み出して設定するシステム設定手段と
を備えたことを特徴とする情報処理装置。
【請求項２】
前記所定の状態におけるシステム設定情報は、前記所定の状態における前記演算処理手段で使用するレジスタ内の情報および周辺機器の状態情報であることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記メモリ復元手段および前記システム設定手段の処理が終了した後、前記周辺機器を初期化する周辺機器初期化処理手段さらに備えたことを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記対象ソフトウェアプログラムは、アプリケーションを含むことを特徴とする請求項１、２または３に記載の情報処理装置。
【請求項５】
データの書き込みまたは読み込みを行うメモリと、
所定の対象ソフトウェアプログラムを前記メモリ上に展開し、展開された命令コードを逐次読み出して実行する演算処理手段と、
装置起動後の所定の状態におけるメモリ上の対象ソフトウェアプログラムの展開イメージと、該所定の状態におけるシステム状態を示すシステム設定情報とを格納する記憶手段と
を備えた情報処理装置であって、
装置起動を実行する場合、メモリ上に前記対象ソフトウェアプログラムの展開イメージを相互に上書きされない順番に前記記憶手段から読み出して書き込み、
前記対象ソフトウェアプログラムの展開イメージ書き込み後、前記所定の状態におけるシステム設定情報を前記記憶手段から読み出して設定することを特徴とする情報処理装置。
【請求項６】
メモリと演算処理手段とを備え、対象ソフトウェアプログラムを該メモリ上に展開し、展開された命令コードを逐次読み出して該演算処理手段により実行する情報処理装置を起動する方法であって、
装置起動が実行されると、装置起動後の所定の状態におけるメモリ上の対象ソフトウェアプログラムの展開イメージを格納する記憶手段から、メモリ上に前記対象ソフトウェアプログラムの展開イメージを相互に上書きされない順番に読み出して書き込むメモリ復元ステップと、
前記対象ソフトウェアプログラムの展開イメージ書き込み後、装置起動後の所定の状態におけるシステム状態を示すシステム設定情報を格納する記憶手段から、前記所定の状態におけるシステム設定情報を読み出して設定するシステム設定ステップと
を備えたことを特徴とする方法。
【請求項７】
メモリと演算処理手段とを備え、対象ソフトウェアプログラムを該メモリ上に展開し、展開された命令コードを逐次読み出して該演算処理手段により実行する情報処理装置を起動する方法を実行させるプログラムであって、該方法は、
装置起動が実行されると、装置起動後の所定の状態におけるメモリ上の対象ソフトウェアプログラムの展開イメージを格納する記憶手段から、メモリ上に前記対象ソフトウェアプログラムの展開イメージを相互に上書きされない順番に読み出して書き込むメモリ復元ステップと、
前記対象ソフトウェアプログラムの展開イメージ書き込み後、装置起動後の所定の状態におけるシステム状態を示すシステム設定情報を格納する記憶手段から、前記所定の状態におけるシステム設定情報を読み出して設定するシステム設定ステップと
を備えたことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置およびその起動方法に関し、より詳細には対象ソフトウェアプログラムをメモリ上に展開し、展開された命令コードを逐次実行する情報処理装置およびその起動方法に関する。
【背景技術】
【０００２】
従来から、パーソナルコンピュータやサーバなどの汎用コンピュータおよび金融端末等の商用端末やテレビ装置等の家電製品等に組み込まれた組み込み型コンピュータなどの専用コンピュータが様々な分野で用いられているが、これらのコンピュータは、共通して演算処理装置あるいは中央処理装置と呼ばれるＣＰＵを備え、入力情報に応じてプログラムに書き込まれた命令を実行処理し、何らかの情報を出力するという一連の処理を行うことによって目的を達成するものである。一般にコンピュータは、このような処理を行うためＣＰＵに加えデータのランダムな読み書きが可能なＲＡＭおよび読み取り専用のＲＯＭを備えており、ＲＡＭまたはＲＯＭ上の所定の部分にプログラムの命令コードを配置しておいているが、非常に専用化された装置などＲＯＭ上に予め書き込まれているような装置の場合以外は、装置の電源が投入（装置起動）されて初めてＲＡＭ上にプログラムの命令コードを配置するいわゆるブートあるいはロード処理を行う必要がある。つまり、ＲＯＭ上に書き込まれたプログラムの命令コードを読取って実行するようなコンピュータ以外の通常のコンピュータでは、装置が起動されるといくつかの付加的な処理を実行しながらＲＯＭやその他の記憶装置に格納されたプログラムの命令コードをＲＡＭ上に展開する作業を行って初めて本来のプログラムに記述された処理の実行が可能になる。
【０００３】
このようにコンピュータシステムでは、汎用、専用にかかわらず装置起動後、本来の処理を実行する前に一定のブートや初期化などの時間が必要であるため、従来からこのような時間を短縮する方法が種々提案されている（例えば、特許文献１参照）。
【０００４】
【特許文献１】特開平１１−２４２５９６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来の装置立ち上げあるいは起動時間を短縮する方法は、設定すべきデータの一部をメモリカードなどにより設定しないようにするなど、一部の処理を省略したり、ユーザが他の作業をしている間にバックグラウンドでブート作業をしておいて、全体として本来の処理の完了までの時間を短縮したりするといった対症療法的なものであり劇的に短縮するものではない。
【０００６】
本発明は、このような問題に鑑みて為されたものであり、ＲＡＭ上に展開された実行中対象ソフトウェアプログラムの命令コードおよびデータのスナップショットイメージをメモリに直接書き込み、格納された対象ソフトウェアプログラムを１つ１つ展開してブートするといった最も時間のかかる処理を省略することにより画期的に装置起動時間を短縮することが可能な情報処理装置およびその起動方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
このような目的を達成するために、本出願の請求項１に記載の発明は、メモリと演算処理手段とを備え、対象ソフトウェアプログラムをメモリ上に展開し、展開された命令コードを逐次読み出して演算処理手段により実行する情報処理装置であって、装置起動後の所定の状態におけるメモリ上の対象ソフトウェアプログラムの展開イメージと、所定の状態におけるシステム状態を示すシステム設定情報とを格納する記憶手段と、装置起動が実行されると、メモリ上に対象ソフトウェアプログラムの展開イメージを相互に上書きされない順番に記憶手段から読み出して書き込むメモリ復元手段と、対象ソフトウェアプログラムの展開イメージ書き込み後、所定の状態におけるシステム設定情報を記憶手段から読み出して設定するシステム設定手段とを備えたことを特徴とする。
【０００８】
請求項２に記載の発明は、請求項１に記載の情報処理装置において、所定の状態におけるシステム設定情報は、所定の状態における演算処理手段で使用するレジスタ内の情報および周辺機器の状態情報であることを特徴とする。
【０００９】
請求項３に記載の発明は、請求項２に記載の情報処理装置は、メモリ復元手段およびシステム設定手段の処理が終了した後、周辺機器を初期化する周辺機器初期化処理手段さらに備えたことを特徴とする。
【００１０】
請求項４に記載の発明は、請求項１、２または３に記載の情報処理装置において、対象ソフトウェアプログラムは、アプリケーションを含むことを特徴とする。
【００１１】
請求項５に記載の発明は、情報処理装置であって、データの書き込みまたは読み込みを行うメモリと、所定の対象ソフトウェアプログラムをメモリ上に展開し、展開された命令コードを逐次読み出して実行する演算処理手段と、装置起動後の所定の状態におけるメモリ上の対象ソフトウェアプログラムの展開イメージと、所定の状態におけるシステム状態を示すシステム設定情報とを格納する記憶手段とを備えた情報処理装置であって、装置起動を実行する場合、メモリ上に対象ソフトウェアプログラムの展開イメージを相互に上書きされない順番に記憶手段から読み出して書き込み、対象ソフトウェアプログラムの展開イメージ書き込み後、所定の状態におけるシステム設定情報を記憶手段から読み出して設定することを特徴とする。
【００１２】
請求項６に記載の発明は、メモリと演算処理手段とを備え、対象ソフトウェアプログラムをメモリ上に展開し、展開された命令コードを逐次読み出して演算処理手段により実行する情報処理装置を起動する方法であって、装置起動が実行されると、装置起動後の所定の状態におけるメモリ上の対象ソフトウェアプログラムの展開イメージを格納する記憶手段から、メモリ上に対象ソフトウェアプログラムの展開イメージを相互に上書きされない順番に読み出して書き込むメモリ復元ステップと、対象ソフトウェアプログラムの展開イメージ書き込み後、装置起動後の所定の状態におけるシステム状態を示すシステム設定情報を格納する記憶手段から、所定の状態におけるシステム設定情報を読み出して設定するシステム設定ステップとを備えたことを特徴とする。
【００１３】
請求項７に記載の発明は、メモリと演算処理手段とを備え、対象ソフトウェアプログラムをメモリ上に展開し、展開された命令コードを逐次読み出して演算処理手段により実行する情報処理装置を起動する方法を実行させるプログラムであって、方法は、装置起動が実行されると、装置起動後の所定の状態におけるメモリ上の対象ソフトウェアプログラムの展開イメージを格納する記憶手段から、メモリ上に対象ソフトウェアプログラムの展開イメージを相互に上書きされない順番に読み出して書き込むメモリ復元ステップと、対象ソフトウェアプログラムの展開イメージ書き込み後、装置起動後の所定の状態におけるシステム状態を示すシステム設定情報を格納する記憶手段から、所定の状態におけるシステム設定情報を読み出して設定するシステム設定ステップとを備えたことを特徴とする。
【発明の効果】
【００１４】
以上説明したように、本発明によれば、装置起動後の所定の状態におけるメモリ上の対象ソフトウェアプログラムの展開イメージと、所定の状態におけるシステム状態を示すシステム設定情報とを格納する記憶手段と、装置起動が実行されると、メモリ上に対象ソフトウェアプログラムの展開イメージを相互に上書きされない順番に記憶手段から読み出して書き込むメモリ復元手段と、対象ソフトウェアプログラムの展開イメージ書き込み後、所定の状態におけるシステム設定情報を記憶手段から読み出して設定するシステム設定手段とを備えているので、ＲＡＭ上に展開された対象ソフトウェアプログラムの命令コードおよびデータのスナップショットイメージをメモリに直接書き込み、格納された対象ソフトウェアプログラムを１つ１つ展開してブートするといった最も時間のかかる処理を省略することにより画期的に装置起動時間を短縮することが可能となる。
【発明を実施するための最良の形態】
【００１５】
（実施形態の説明）
以下、図面を参照しながら本発明の実施形態について詳細に説明する。本実施形態は、本発明を用いて、装置の起動時間を短縮するものであり、ブートされるプログラムは予め固定されている方がより効果的であるため、ここでは例えばテレビジョンシステムに組み込まれる組み込みソフトなどを想定して説明するがこれに限られず、パーソナルコンピュータ等の汎用的な情報処理装置にも適用することができる。図１は、本発明にかかる一実施形態の情報処理装置の構成を示すブロック図である。本実施形態では、情報処理装置１０１は、本実施形態の処理を制御する制御部であるＣＰＵ１０２、バス等により接続されてＣＰＵ１０２とデータのやり取りを行うことができるＲＡＭ１０３、対象ソフトウェアプログラムで使用するデータ等予め設定されている固定データや、場合によってプログラムコードなどを記憶するＲＯＭ１０４および対象ソフトウェアプログラムを記憶する記憶部１０５を備える。通常は、さらに処理結果等を表示するディスプレイ、データ等の入力を行う入力機器、および種々の情報を格納するハードディスクなどのデータベースなどを備えることもできる。さらに、通常ＣＰＵ１０１は、ＲＡＭ上に展開されたプログラムの命令コードを読み込んで演算処理する際に、内部に一時的に使用するデータやコードを記憶または蓄積しておくレジスタ１０６を備える。
【００１６】
本実施形態では、情報処理装置１０１が実行する対象ソフトウェアプログラムは、後述するように所定の動作状態、例えばアイドル状態やメニュー表示の状態などにおけるＲＡＭ１０３のスナップショットを所定の方法で記憶部１０５に格納しておき、情報処理装置１０１が起動されると、ＲＡＭ１０３上に格納されたスナップショットと同じイメージになるよう展開する。すなわち、従来の装置であれば例えばハードディスクやＲＯＭなどに対象ソフトウェアプログラムの実行可能形式のオブジェクト等を格納しておくが、本実施形態では全く別の形態で対象ソフトウェアプログラムを記憶部１０５に格納しておく。また、一般的には実行されるプログラムは、アプリケーションを実現するアプリケーションプログラム、基本的な処理を行うオペレーティングシステムおよびその他の複数のプログラムから構成され、さらにこれらのプログラムは機能ごと、カテゴリごとなどにより複数のモジュールといったプログラムに分割されている。したがって、対象ソフトウェアプログラムを格納する従来の記憶部は、多くの独立した実行可能形式のオブジェクトの塊であるが、本実施形態の情報処理装置１０１では、対象ソフトウェアプログラムは基本的に１個のスナップショットイメージのみである。ただし、後述するように、本実施形態の起動処理を行うため幾つかの情報やモジュールが必要なため、このような情報やモジュールも付随的に記憶部１０５に格納されている。
【００１７】
次に、図２〜図４を参照して本願発明の原理の概略を説明する。上述のとおり、本願発明は、従来の情報処理装置が起動後、対象ソフトウェアプログラムを１つ１つＲＡＭ上に展開して初期化処理を行うのに対し、予め所定の動作状態のＲＡＭの状態を写し取ったスナップショットを作成しておき、装置が起動されると対象ソフトウェアプログラムの各プログラムやモジュールを個別に展開、あるいはブートするのではなく、ＲＡＭ上に予め作成しておいたスナップショットイメージを展開するのである。このようにすることにより、原理的には所定の動作状態から対象ソフトウェアプログラムは動作できることとなる。図２は、このような本実施形態の一連の流れを説明するための図である。また、図３は、本実施形態の情報処理装置１０１を構成する機能ブロックを示す図である。図３に示すように、本実施形態の情報処理装置１０１の起動処理において、メモリ復元部３０１、システム設定部３０２および周辺機器初期化処理部３０３などのモジュールが実行されて電源投入後の対象ソフトウェアプログラムの本来の処理の実行が行われる状態までの起動処理が行われる。なお、ここではこのようなモジュール構成で本実施形態を説明するが、これは単なる例示であり、各モジュールの機能をさらにいくつかのモジュールで分担したり、いくつかのモジュールの機能を統合したモジュールを想定したりすることができるのはいうまでもない。また、これらの機能モジュールは、具体的には後述するブートローダ拡張部２１２に含まれるが、基本的な意味では図２に示すように情報処理装置１０１全体のいずれかに含まれるのであって、ブートローダ拡張部２１２に必ずしも含まれる必要はない。
【００１８】
また、図４は、システムイメージ２１０の採取から最終的に起動処理を行うまでの処理の流れを示すフローチャートである。アプリケーションが所定の状態にある時点で、インスタントブートドライバが呼び出されると、システムイメージ２１０が採取されて保存される（Ｓ４０１、Ｓ４０２）。その後、スナップショットイメージ２１１に加工されたシステムイメージ２１０がブートローダ拡張部によりメモリ上に復元され、インスタントブートローダに制御が移され所定の処理が実行されてアプリケーションに制御が移行する（Ｓ４０３〜Ｓ４０５）。
【００１９】
一般に、情報処理装置１０１においては図２に示すようにオペレーティングシステム（本実施形態ではＬｉｎｕｘカーネル）上でアプリケーションプログラムが実行されている。ある動作状態の情報処理装置１０１のＲＡＭ内容をイメージとしてホストＰＣ２０１で読取ると図２のシステムイメージ２１０のような情報が得られるが、本願発明の起動方法に用いることを考えると7実際には図２に示すような不要部分があり、また、最終的に情報処理装置１０１の起動時ＲＡＭ上に展開する場合を考慮して加工が施されスナップショットイメージ２１１がインスタントブートユーティリティにより生成される。この際に、ＣＰＵ１０２内のレジスタ１０６の状態や、周辺機器を含むシステムの状態を示すシステム設定情報も採取しておいて、システムイメージ２１０とともに加工を行いスナップショットイメージ２１１とともに本実施形態の起動処理に用いられるようにしておく。
【００２０】
このように生成されたスナップショットイメージ２１１はブートローダ拡張部２１２およびシステム設定情報などとともに記憶部１０５に格納されて情報処理装置１０１に組み込まれる。本実施形態では、記憶部１０５としてＲＯＭなどのＩＣ部品を使用するため、図２はそのような記載となっているが、本願発明ではこれに限られることなく、ハードディスクなどの補助記憶や、ＤＶＤなどの可搬型記憶など種々の記憶機器用いることができる。
【００２１】
このようにして、スナップショットイメージ２１１等を格納した記憶部１０５を組み込んだ情報処理装置１０１の電源スイッチがオンされ装置起動処理が開始されると、まずブートローダ２１３がブート処理を開始させる。従来の情報処理装置では、図５に示すようにブートローダ２１３がカーネルやオペレーティングシステムなど基本ソフトウェア群をロードし、その後アプリケーションがロードされて起動が終了する。すなわち、ブートローダが起動されて、カーネルがロードされると（Ｓ５０１、Ｓ５０２）、カーネルは初期化され、周辺処理の初期化を行って、全体のシステムの初期化処理を終了する（Ｓ５０３〜Ｓ５０５）。その後、必要なアプリケーションが起動され、全体の起動が完了する（Ｓ５０６、Ｓ５０７）。一方、本実施形態ではブートローダ２１３はブートローダ拡張部２１２に制御を移すのみでカーネルのロードなどは行わず、対象ソフトウェアプログラムのロードは専らブートローダ拡張部２１２により実行される。
【００２２】
図６は、本実施形態の対象ソフトウェアプログラムのロードの全体の流れを示すフローチャートである。図５のフローチャートと比較すると明らかなように、従来の情報処理装置で個別に実行されるプログラムのロードは本実施形態では行われず、ブートローダが処理を開始した（Ｓ６０１）後は、ブートローダ拡張部２１２により処理が行われることが理解される。具体的には、図２に示すメモリ復元部３０１により、ＲＡＭをスナップショットイメージを採取したときと同じメモリ状態に復元する（Ｓ６０２）。この際、ＣＰＵ１０２により処理が行われるので、スナップショットイメージ２１１を所定の区分に分けて、メモリ状態を変化させないような順序でＲＡＭ上に書き込んでいく。次に、システム設定部３０２によって、記憶部１０５に含まれるシステム設定情報を読み込んでＣＰＵ１０２のレジスタの状態や、システム保持している状態情報などを設定して元のシステム状態に復元する（Ｓ６０３）。この復元が完了するまでの間、メモリへの書き込みを行いようにすることによってシステム状態が復元される。以上により、スナップショットイメージ２１１を採取した時点のシステム状態に情報処理装置１０１は復元されるので、その後、周辺機器初期化処理部３０３によって、周辺機器の初期化を行って起動処理を終了する（Ｓ６０４、Ｓ６０５）。
【図面の簡単な説明】
【００２３】
【図１】本発明にかかる一実施形態の情報処理装置の構成を示すブロック図である。
【図２】本願発明の原理の概略を説明するための図である。
【図３】本実施形態の情報処理装置の機能ブロックを示す図である。
【図４】本発明の一実施形態のシステムイメージの採取から最終的に起動処理を行うまでの処理の流れを示すフローチャートである。
【図５】従来の情報処理装置における対象ソフトウェアプログラムのロードの全体の流れを示すフローチャートである。
【図６】本実施形態の対象ソフトウェアプログラムのロードの全体の流れを示すフローチャートである。
【符号の説明】
【００２４】
１０１  情報処理装置
１０２  ＣＰＵ
１０３  ＲＡＭ
１０４  ＲＯＭ
１０５  記憶部
１０６  レジスタ
２０１  ホストＰＣ
２１０  システムイメージ
２１１  スナップショットイメージ
２１２  ブートローダ拡張部
２１３  ブートローダ
２２０  電源
３０１  メモリ復元部
３０２  システム設定部
３０３  周辺機器初期化処理部
【図１】
2009176151.tif 000003
【図２】
2009176151.tif 000004
【図３】
2009176151.tif 000005
【図４】
2009176151.tif 000006
【図５】
2009176151.tif 000007
【図６】
2009176151.tif 000008