複数種類のアプリケーションを実行する実行部と、前記実行部が実行するアプリケーションをロードするメモリーと、ウォームブートするためのウォームブートイメージを不揮発的に記憶するウォームブート用メモリーと、前記ウォームブート用メモリー内のウォームブートイメージを前記メモリーにロードして当該装置をウォームブートするウォームブート部と、を具備し、前記ウォームブート用メモリーは、第1の状態で前記メモリーのスナップショットを前記第1の状態におけるベストなウォームブートイメージBWBIとして記憶するとともに、第2の状態で前記メモリーのスナップショットと前記BWBIとの差分からなるWBI差分データを記憶する、情報処理装置。前記ウォームブート部は、前記ウォームブート用メモリー内のBWBIを前記メモリーにロードして前記第1の状態でウォームブートし、又は、前記ウォームブート用メモリー内のBWBIを前記メモリーに一旦ロードした後に前記ウォームブート用メモリー内のWBI差分データを適用して前記第2の状態でウォームブートする、請求項1に記載の情報処理装置。前記第1の状態は第1のアプリケーションを起動した状態であり、前記ウォームブート用メモリーは、前記第1のアプリケーションを起動したときに前記メモリーに生成されるイメージデータをBWBIとして記憶し、前記第2の状態は前記第1のアプリケーション以外のアプリケーションを起動した状態であり、前記ウォームブート用メモリーは、前記第1のアプリケーション以外の各アプリケーションをそれぞれ起動したときに前記メモリーに生成されるイメージデータと前記BWBIとの差分からなるアプリケーション毎のWBI差分データを記憶する、請求項1に記載の情報処理装置。前記第1の状態で起動する第1のアプリケーションは複数あり、前記ウォームブート用メモリーは、前記第1のアプリケーションに係る各アプリケーションをそれぞれ起動したときに前記メモリーに生成されるイメージデータをアプリケーション毎のBWBIとして記憶する、請求項3に記載の情報処理装置。前記ウォームブート用メモリーは、前記第1のアプリケーション以外の第2のアプリケーションを起動したときに前記メモリーに生成されるイメージデータと、前記前記第1のアプリケーションに係る各アプリケーションのBWBIのうち最も差分が小さくなるWBI差分データを記憶する、請求項4に記載の情報処理装置。前記第1の状態はいずれのアプリケーションも起動していないNeutralPoint状態であり、前記ウォームブート用メモリーは、前記NeutralPoint状態で前記メモリーに生成されるイメージデータをBWBIとして記憶し、前記第2の状態はいずれかのアプリケーションを起動した状態であり、前記ウォームブート用メモリーは、前記いずれかのアプリケーションをそれぞれ起動したときに前記メモリーに生成されるイメージデータと前記BWBIとの差分からなるアプリケーション毎のWBI差分データを記憶する、請求項1に記載の情報処理装置。複数種類のアプリケーションを実行する実行部と、前記実行部が実行するアプリケーションをロードするメモリーと、ウォームブートするためのウォームブートイメージを生成するウォームブートイメージ生成部と、前記ウォームブートイメージを不揮発的に記憶するウォームブート用メモリーと、前記ウォームブート用メモリー内のウォームブートイメージを前記メモリーにロードして当該装置をウォームブートするウォームブート部と、を具備し、前記ウォームブートイメージ生成部は、第1の状態における前記メモリーのスナップショットを生成して前記第1の状態におけるベストなウォームブートイメージBWBIとして記憶するとともに、第2の状態で前記メモリーのスナップショットを生成し、前記BWBIとの差分をとってWBI差分データを生成する、情報処理装置。第1の状態でメモリーのスナップショットを前記第1の状態におけるベストなウォームブートイメージBWBIとして不揮発的に記憶するステップと、第2の状態で前記メモリーのスナップショットと前記BWBIとの差分からなるWBI差分データを不揮発的に記憶するステップと、を有する情報処理装置の制御方法。不揮発的に記憶された前記BWBIを前記メモリーにロードして前記第1の状態でウォームブートするステップと、前記メモリーにロードした前記BWBIに、不揮発的に記憶された前記WBI差分データを適用して前記第2の状態でウォームブートするステップと、をさらに有する請求項8に記載の情報処理装置の制御方法。第1の状態におけるメモリーのスナップショットを生成して前記第1の状態におけるベストなウォームブートイメージBWBIを取得するステップと、第2の状態で前記メモリーのスナップショットを生成し、前記BWBIとの差分をとってWBI差分データを生成するステップと、を有する情報処理装置の制御方法。複数種類のアプリケーションを実行する実行部、前記実行部が実行するアプリケーションをロードするメモリー、ウォームブートするためのウォームブートイメージを不揮発的に記憶するウォームブート用メモリー、前記ウォームブート用メモリー内のウォームブートイメージを前記メモリーにロードして当該装置をウォームブートするウォームブート部、としてコンピューターを機能させるようにコンピューター可読形式で記述され、前記ウォームブート用メモリーは、第1の状態で前記メモリーのスナップショットを前記第1の状態におけるベストなウォームブートイメージBWBIとして記憶するとともに、第2の状態で前記メモリーのスナップショットと前記BWBIとの差分からなるWBI差分データを記憶する、コンピュータープログラム。本明細書で開示する技術の目的は、ウォームブート方式のハイバーネーション機能を有する、優れた情報処理装置及び情報処理装置の制御方法、並びにコンピュータープログラムを提供することにある。本明細書で開示する技術のさらなる目的は、複数の起動モードを有し、終了時のモードに拘わらず、起動時に指定された起動モードへ短時間でウォームブートすることができる、優れた情報処理装置及び情報処理装置の制御方法、並びにコンピュータープログラムを提供することにある。本願は、上記課題を参酌してなされたものであり、請求項1に記載の技術は、複数種類のアプリケーションを実行する実行部と、前記実行部が実行するアプリケーションをロードするメモリーと、ウォームブートするためのウォームブートイメージを不揮発的に記憶するウォームブート用メモリーと、前記ウォームブート用メモリー内のウォームブートイメージを前記メモリーにロードして当該装置をウォームブートするウォームブート部と、を具備し、前記ウォームブート用メモリーは、第1の状態で前記メモリーのスナップショットを前記第1の状態におけるベストなウォームブートイメージBWBIとして記憶するとともに、第2の状態で前記メモリーのスナップショットと前記BWBIとの差分からなるWBI差分データを記憶する、情報処理装置である。本願の請求項2に記載の技術によれば、請求項1に記載の情報処理装置のウォームブート部は、前記ウォームブート用メモリー内のBWBIを前記メモリーにロードして前記第1の状態でウォームブートし、又は、前記ウォームブート用メモリー内のBWBIを前記メモリーに一旦ロードした後に前記ウォームブート用メモリー内のWBI差分データを適用して前記第2の状態でウォームブートするように構成されている。本願の請求項3に記載の技術によれば、請求項1に記載の情報処理装置の第1の状態は第1のアプリケーションを起動した状態であり、前記ウォームブート用メモリーは、前記第1のアプリケーションを起動したときに前記メモリーに生成されるスナップショットをBWBIとして記憶している。また、第2の状態は前記第1のアプリケーション以外のアプリケーションを起動した状態であり、前記ウォームブート用メモリーは、前記第1のアプリケーション以外の各アプリケーションをそれぞれ起動したときに前記メモリーに生成されるスナップショットと前記BWBIとの差分からなるアプリケーション毎のWBI差分データを記憶している。本願の請求項4に記載の技術によれば、請求項3に記載の情報処理装置が第1の状態で起動する第1のアプリケーションは複数ある。そして、前記ウォームブート用メモリーは、前記第1のアプリケーションに係る各アプリケーションをそれぞれ起動したときに前記メモリーに生成されるスナップショットをアプリケーション毎のBWBIとして記憶している。本願の請求項5に記載の技術によれば、請求項4に記載の情報処理装置のウォームブート用メモリーは、前記第1のアプリケーション以外の第2のアプリケーションを起動したときに前記メモリーに生成されるスナップショットと、前記前記第1のアプリケーションに係る各アプリケーションのBWBIのうち最も差分が小さくなるWBI差分データを記憶している。本願の請求項6に記載の技術によれば、請求項1に記載の情報処理装置の第1の状態はいずれのアプリケーションも起動していないNeutralPoint状態であり、前記ウォームブート用メモリーは、前記NeutralPoint状態で前記メモリーに生成されるスナップショットをBWBIとして記憶している。また、情報処理装置の第2の状態はいずれかのアプリケーションを起動した状態であり、前記ウォームブート用メモリーは、前記いずれかのアプリケーションをそれぞれ起動したときに前記メモリーに生成されるスナップショットと前記BWBIとの差分からなるアプリケーション毎のWBI差分データを記憶している。また、本願の請求項7に記載の技術は、複数種類のアプリケーションを実行する実行部と、前記実行部が実行するアプリケーションをロードするメモリーと、ウォームブートするためのウォームブートイメージを生成するウォームブートイメージ生成部と、前記ウォームブートイメージを不揮発的に記憶するウォームブート用メモリーと、前記ウォームブート用メモリー内のウォームブートイメージを前記メモリーにロードして当該装置をウォームブートするウォームブート部と、を具備し、前記ウォームブートイメージ生成部は、第1の状態における前記メモリーのスナップショットを生成して前記第1の状態におけるベストなウォームブートイメージBWBIとして記憶するとともに、第2の状態で前記メモリーのスナップショットを生成し、前記BWBIとの差分をとってWBI差分データを生成する、情報処理装置である。また、本願の請求項8に記載の技術は、第1の状態でメモリーのスナップショットを前記第1の状態におけるベストなウォームブートイメージBWBIとして不揮発的に記憶するステップと、第2の状態で前記メモリーのスナップショットと前記BWBIとの差分からなるWBI差分データを不揮発的に記憶するステップと、を有する情報処理装置の制御方法である。本願の請求項9に記載の技術によれば、請求項8に記載の情報処理装置の制御方法は、不揮発的に記憶された前記BWBIを前記メモリーにロードして前記第1の状態でウォームブートするステップと、前記メモリーにロードした前記BWBIに、不揮発的に記憶された前記WBI差分データを適用して前記第2の状態でウォームブートするステップをさらに有している。また、本願の請求項10に記載の技術は、第1の状態におけるメモリーのスナップショットを生成して前記第1の状態におけるベストなウォームブートイメージBWBIを取得するステップと、第2の状態で前記メモリーのスナップショットを生成し、前記BWBIとの差分をとってWBI差分データを生成するステップと、を有する情報処理装置の制御方法である。また、本願の請求項に記載の技術は、複数種類のアプリケーションを実行する実行部、前記実行部が実行するアプリケーションをロードするメモリー、ウォームブートするためのウォームブートイメージを不揮発的に記憶するウォームブート用メモリー、前記ウォームブート用メモリー内のウォームブートイメージを前記メモリーにロードして当該装置をウォームブートするウォームブート部、としてコンピューターを機能させるようにコンピューター可読形式で記述され、前記ウォームブート用メモリーは、第1の状態で前記メモリーのスナップショットを前記第1の状態におけるベストなウォームブートイメージBWBIとして記憶するとともに、第2の状態で前記メモリーのスナップショットと前記BWBIとの差分からなるWBI差分データを記憶する、コンピュータープログラムである。本願の請求項11に係るコンピュータープログラムは、コンピューター上で所定の処理を実現するようにコンピューター可読形式で記述されたコンピュータープログラムを定義したものである。換言すれば、本願の請求項11に係るコンピュータープログラムをコンピューターにインストールすることによって、コンピューター上では協働的作用が発揮され、本願の請求項1に係る情報処理装置と同様の作用効果を得ることができる。本明細書で開示する技術によれば、複数の起動モードを有し、終了時のモードに拘わらず、起動時に指定された起動モードへ短時間でウォームブートすることができる、優れた情報処理装置及び情報処理装置の制御方法、並びにコンピュータープログラムを提供することができる。また、本明細書で開示する技術によれば、情報処理装置は、起動したいモードそのままのウォームブートイメージを不揮発性メモリーに保存できるので、ウォームブート時には、NeutralPointから処理する必要がなくなり、所望のモードに高速で復帰することができる。また、本明細書で開示する技術によれば、情報処理装置は、動作を終了する度若しくはハイバーネーション状態に遷移する度にハイバーネーションイメージを作成する必要がないので、イメージを記憶する不揮発性メモリーの寿命を向上することができる。本明細書で開示する技術のさらに他の目的、特徴や利点は、後述する実施形態や添付する図面に基づくより詳細な説明によって明らかになるであろう。以下、図面を参照しながら本明細書で開示する技術の実施形態について詳細に説明する。図1には、本明細書で開示する技術の一実施形態に係る情報処理装置100のハードウェア構成を模式的に示している。図示の情報処理装置100は、ディジタルカメラであり、CPUCentralProcessingUnit101と、CCDChargeCoupledDeviceなどの撮像素子104と、アナログフロントエンド部AFE105と、信号処理部106と、NAND型などの不揮発性メモリー107と、メモリーコントローラー108と、シリアルインターフェース109と、液晶表示パネルLCD110と、表示コントローラー111と、メモリーカード112と、メモリーカードインターフェース113と、無線LANLocalAreaNetworkインターフェース114と、NAND型などの不揮発性メモリー116と、メモリーインターフェース117と、SDRAMSynchronousDynamicRandomAccessMemoryなどからなるメモリー119と、メモリーコントローラー120、入力部121と、汎用入出力部122と、エンベデッドコントローラー123と、DCDirectCurrent-DCコンバーター124と、バッテリー125を備えている。CPU101、信号処理部106、メモリーコントローラー108、シリアルインターフェース109、表示コントローラー111、メモリーカードインターフェース113、無線LANインターフェース114、IDEインターフェース28、メモリーコントローラー120、及び汎用入出力部122は、バスにより相互に接続されている。CPU101は、オペレーティングシステム及びアプリケーションプログラムを実行して、撮影画像のサイズ、画像データの圧縮率、露出若しくはシャッタースピードなどのディジタルカメラに対する各種の設定を行なうためのGUIGraphicaluserInterfaceの処理や、情報処理装置100の各部を制御するためのリアルタイム処理などを行なう。撮像素子104は、図示しない光学系によってその受光面に結像された被写体像に応じたアナログの画像信号をAFE部105に出力する。AFE部105は、このアナログ信号にノイズ除去などの所定の処理を適用した後、ディジタル画像信号に変換して、信号処理部106に供給する。信号処理部106は、ディジタル画像信号に、ホワイトバランスや符号化の処理など所定の処理を適用する。処理後の画像データは、バス、メモリーインターフェース117を介して不揮発性メモリー116に格納されるか、又は、バス並びにメモリーカードインターフェース113を介してメモリーカード112に格納される。不揮発性メモリー107は、メモリーコントローラー108と相互に接続され、CPU101により実行されるプログラムオペレーティングシステムやアプリケーションプログラム、ミドルウェアなど、並びに、プログラムの実行に必要なデータを記憶する。また、不揮発性メモリー107は、情報処理装置100固有のデータや、起動のときにCPU101で実行されるブートローダーを記憶している。但し、ここで言う起動とは、電源の供給が停止された状態からの起動クールブートだけでなく、ハイバーネーション状態からの起動すなわちウォームブートも含むものとする。さらに、不揮発性メモリー107には、情報処理装置100がハイバーネーション状態からウォームブートするときに使用するウォームブートイメージを記憶する。メモリーコントローラー108は、不揮発性メモリー107からのプログラム、データ、又はウォームブートイメージの読み出し、並びに、不揮発性メモリー107へのウォームブートイメージなどの各種データの書き込みを制御する。ここで言うウォームブートイメージは、ある時点電源オフ時などにメモリー119に展開されているデータスナップショットからなる。但し、ウォームブートイメージの構成、ウォームブートイメージの生成処理、並びにウォームブートの処理手順の詳細については、後述に譲る。シリアルインターフェース109は、CPU101とエンベデッドコントローラー123間のシリアル通信を行なう。液晶表示パネル110は、表示コントローラー111の制御下で、各種の画像又はテキストなどを表示する。表示コントローラー111は、液晶表示パネル110の表示を制御する。メモリーカード112は、例えばメモリースティック登録商標により構成され、不揮発性記憶媒体を内蔵している。メモリーカード112は、情報処理装置100に挿抜可能に装着され、メモリーカードインターフェース113と電気的に接続される。メモリーカードインターフェース113は、装着されたメモリーカード112のデータの記憶並びにデータの読み出しを制御する。無線LANインターフェース114は、IEEEInstituteofElectricalandElectronicEngineers802.11a、b、gなどに準拠して、アクセスポイント又は他の機器などと無線通信する。不揮発性メモリー116は、メモリーインターフェース117の制御下で、撮影した画像などの各種のデータを記憶する。CPU101は、メモリーインターフェース117経由で不揮発性メモリー116を制御することができる。メモリー119は、メモリーコントローラー120と相互接続され、オペレーティングシステムやアプリケーションプログラムなどを不揮発性メモリー107からロードする。CPU101は、メモリー119にロードされたプログラムを実行する。メモリー119は、電源の供給により記憶動作が可能な揮発性メモリーであり、記憶データのリフレッシュも行なう。また、メモリーコントローラー120は、メモリー119へのデータやプログラムの書き込みと読み出しを制御する。入力部121は、電源ボタン、撮影ボタン、再生ボタン、USBボタンなどの各種操作ボタンからなりいずれも図示しない、これらのボタンの押圧に応じた信号を汎用入出力部122及びエンベデッドコントローラー123に供給する。汎用入出力部122は、これらのボタンの押圧に応じた信号に対応するデータをCPU101に供給する。また、汎用入出力部122には、USBの規格に準拠した機器又はケーブルを接続するためのUSB接続端子131が設けられている。エンベデッドコントローラー123は、いわゆる組込用のCPUで構成され、内蔵されているROM又はRAMに記憶されているプログラムを実行する。エンベデッドコントローラー123は、入力部121から供給された信号を基に、電源ボタン、撮影ボタン、再生ボタン、USBボタンの押圧に応じて、CPU101のリセット及びその解除を制御する。また、エンベデッドコントローラー123は、DC-DCコンバーター124による情報処理装置100の各部への電力の供給を制御する。DC-DCコンバーター124は、直流電圧電源であるバッテリー125又は外部電源商用AC電源などから供給される電圧を変換して、エンベデッドコントローラー123の制御に基づいて、情報処理装置100の各部への電源の供給、停止を制御する。バッテリー125は、情報処理装置100に着脱自在の2次電池であり、DC-DCコンバーター124を介して情報処理装置100の全体を駆動するための電力を供給する。CPU101は、オペレーティングシステム、アプリケーションプログラム、ミドルウェアを実行する。図2には、CPU101により実行されるプログラムのスタック構造を示している。オペレーティングシステム210は、例えばLinux登録商標であり、ハードウェアの管理など基本的な処理を行なう。図示の例では、オペレーティングシステム210は、カーネル211、デバイスドライバー212、電源管理機構213、ウォームブートイメージ生成プログラム214を含んでいる。カーネル211は、オペレーティングシステム210の中核部分であり、アプリケーションプログラム230や不揮発性メモリー107乃至汎用入出力部122などのデバイスの監視、メモリー119やメモリーカード112、不揮発性メモリー6などのメモリーリソースの管理、割り込み処理、プロセス間通信など、オペレーティングシステム210としての基本機能を提供する。デバイスドライバー212は、信号処理部106、シリアルインターフェース109、表示コントローラー111、メモリーカードインターフェース113、無線LANインターフェース114、及び汎用入出力部122などのデバイスを制御する。電源管理機構213は、ACPIAdvancedConfigurationandPowerInterfaceサブシステムなどであり、情報処理装置100をハイバーネーションなどの状態で休止させるとともに、ハイバーネーション状態からウォームブートして動作状態となるように、電源を管理する。ウォームブートイメージWBI生成プログラム214は、ウォームブートイメージを生成する。ウォームブートイメージは、情報処理装置100がウォームブートすなわちハイバーネーション状態から動作状態に復帰する際に、メモリー119に復元すべきスナップショットである。ウォームブートイメージ作成プログラム214が作成したウォームブートイメージは、不揮発性メモリー107内に記憶される。ウォームブートイメージの生成処理は、情報処理装置100の出荷時に製造元で行なわれるか、又は、ユーザーの手元で行なわれる。ウォームブートイメージの構成、並びにウォームブートイメージの生成処理の詳細については後述に譲る。アプリケーションプログラム230は、撮影しようとする被写体の画像の表示や、撮影処理、撮影画像の再生などの処理を行なう。本実施形態では、情報処理装置100としてディジタルカメラを想定しており、アプリケーションプログラム230は、撮影処理プログラム231、再生処理プログラム232、設定処理プログラム233、USBマスストレージクラス処理プログラム234、及び電源管理プログラム235を含む。撮影処理プログラム231は、撮影しようとする被写体画像の液晶表示パネル110への表示や、撮影画像の画像処理、画像データの符号化及びメモリー107やメモリーカード112への記憶など、すなわち撮影の処理を行なう。再生処理プログラム232は、メモリー107やメモリーカード112に記憶した画像データの液晶表示パネル110への表示など、撮影画像の再生処理を行なう。設定処理プログラム233は、シャッタースピード、露出、ズーム、撮影する画像のサイズ、符号化の方式や符号化の圧縮率などの撮影に関する設定や、画像データの保存先や、画像再生時の表示方法など、各種の設定の処理を行なう。USBマスストレージクラス処理プログラム234は、情報処理装置100がUSB接続端子131を介してパーソナルコンピューターなどの外部機器図示しないにUSB接続されているときに、情報処理装置100を記録デバイスとして動作させるUSBマスストレージクラスの処理を行なう。電源管理プログラム235は、例えばLinux登録商標kernelが提供する電源管理プログラムPowerManagementInterfaceであり、電源の状態に関する各種のコマンドを発行するなどして電源を管理する。ミドルウェア220は、アプリケーションプログラム230とオペレーティングシステム210から呼び出され、アプリケーションプログラム230が実行されるときに必要とされる、各種のデータを生成する。既に述べたように、不揮発性メモリー107には、CPU101により実行されるプログラム並びにプログラムの実行に必要なデータや、情報処理装置100がハイバーネーションから起動するときに使用するウォームブートイメージが記憶される。図3には、不揮発性メモリー107のメモリー空間の構成例を示している。但し、本明細書で開示する技術の要旨に直接関連しない領域に関しては、適宜図示を省略している。不揮発メモリー107のメモリー空間300は、システム領域310とユーザー領域320に大別される。システム領域310には、ローダー311や、オペレーティングシステム、ウォームブートイメージ領域312が含まれる。また、ユーザー領域320には、アプリケーションプログラムやその他のユーザーデータが記憶されている。アプリケーションプログラムには、上述した撮影処理プログラム231、再生処理プログラム232、設定処理プログラム233、USBマスストレージクラス処理プログラム234、及び電源管理プログラム235を含む。ローダー311は、ブート処理を行なう。情報処理装置100の動作が停止した状態として、電源が完全に遮断した状態、作業状態を揮発性のメモリー119に保存したまま電力の消費を抑制したサスペンド状態、メモリー119のデータを不揮発性メモリー107に丸ごとコピーして電源をほぼ完全に遮断したハイバーネーション状態がある。情報処理装置100の動作が停止した状態毎に、ブート処理は異なる。電源が完全に遮断した状態から起動することをコールドブートColdBoot、サスペンド状態から復帰することをホットブートHotBoot若しくはレジューム、ハイバーネーション状態から起動することをウォームブートWarmBootと呼ぶ。システム領域内には、各ブート処理用のローダーが格納されているものとする。ウォームブートイメージ領域312に格納されるウォームブートイメージは、情報処理装置100がウォームブートすなわちハイバーネーション状態から動作状態に復帰する際に、メモリー119に復元すべきスナップショットである。本実施形態では、情報処理装置100は複数の起動モードを有する。例えば、入力部121の撮影ボタンが押されたことにより、被写体を撮影することが可能な撮影モードで起動する場合、入力部121の再生ボタンが押されたことによりメモリー107などに記録済みの撮影画像を再生する再生モードで起動する場合、入力部121のUSBボタンが押されたことによりUSB接続された外部機器に対してUSBマスストレージとして動作するUSB接続モードで起動する場合などである。したがって、入力部121のボタン操作などを通じて、ウォームブートする起動モードを指定することができる。ここで、情報処理装置100が複数の起動モードでウォームブートする場合に必要となるすなわち、ウォームブートイメージ領域312に記憶させておくべきウォームブートイメージについて考察する。撮影モードは、撮影処理プログラム231がメモリー119にロードされ、CPU101が撮影処理プログラム231を実行している状態である。したがって、撮影モードでハイバーネーション状態に入るときに記憶されるウォームブートイメージ、言い換えれば撮影モードで起動するときのベストなウォームブートイメージ以下、BWBIとも言うは、撮影処理プログラム231を起動時のメモリー119のスナップショットである。このようなBWBIを用いれば、情報処理装置100は最速で撮影モードにウォームブートすることができる。同様に、再生モードでウォームブートするためのBWBIは再生処理プログラム232を起動時のメモリー119のスナップショットであり、USB接続モードでウォームブートするためのBWBIはUSBマスストレージクラス処理プログラム234を起動時のメモリー119のスナップショットである。要するに、各起動モードのベストなウォームブートイメージは、指定された起動モードに該当するアプリケーションプログラムを起動しているときすなわち、メモリー119にロードして、CPU101が実行しているときのメモリー119のスナップショットということができる。例えば、図4Aに示すように、起動モード毎のベストなウォームブートイメージBWBIを不揮発性メモリー107内のウォームブートイメージ領域312に記憶させておけば、ユーザーがウォームブート時に任意の起動モードを入力部121から指定しても、情報処理装置100は常に最速でウォームブートすることができる。図示の例では、撮影、再生、USB接続の各起動モードのBWBIがウォームブートイメージ領域312に記憶されている。但し、サポートする起動モードの数が増えると、起動モード毎にBWBIを不揮発性メモリー107に記憶していかなければならないので、メモリーリソースを消費するという問題がある。また、図4Bに示すように、単一の起動モードのベストなウォームブートイメージBWBIのみを不揮発性メモリー107内のウォームブートイメージ領域312に記憶させる、あるいは、BWBIを記憶する起動モードの数を制限する言い換えれば、最速なウォームブートをサポートする起動モードの数を制限するという変形例も考えられる。情報処理装置100にとって重要な起動モード例えばディジタルカメラであれば撮影モードに限定してBWBIを用意しておけば、多くの場面でユーザーが満足する時間内でブートすることができ、また、メモリーリソースを節約することができる。但し、BWBIをサポートしていない起動モードが指定されたときには、不揮発性メモリー107内のBWBIを用いて一旦は他の起動モードでウォームブートした後、指定された起動モードに遷移するか、又は、通常のブート処理コールドブートを行なうしかなく、起動時間に限界がある。図4Cには、BWBIを記憶する起動モードの数を制限する他の例を示している。図示の例では、単一の起動モードのBWBIのみをウォームブートイメージ領域312に記憶するとともに、他の起動モードについては、自分のBWBIすなわち、該当するアプリケーションを起動したときのメモリー119のスナップショットとウォームブートイメージ領域312に記憶されているBWBIとの差分をとったWBI差分データをウォームブートイメージ領域312に記憶する。図示の例では、撮影モードについてのBWBIと、再生モードについてのWBI差分データがウォームブートイメージ領域312に記憶されている。他の起動モードでのウォームブートが指定されたときには、ウォームブートイメージ領域312に記憶されているBWBIを一旦メモリー119にロードした後、WBI差分データを適用して、指定された起動モード本来のBWBIをメモリー119上に復元することができる。情報処理装置100にとって最重要な起動モード例えばディジタルカメラであれば撮影モードに限定してBWBIを用意しておく。また、最重要ではないが、比較的高い頻度で使用される起動モード例えばディジタルカメラであれば再生モードについては、自分のBWBIとウォームブートイメージ領域312に記憶されているBWBIとの差分をとったWBI差分データをウォームブートイメージ領域312に記憶する。この場合、最重要な起動モードについては、不揮発性メモリー107内にBWBIが用意されているので、最速でウォームブートすることができる。また、比較的高い頻度で使用される起動モードについては、不揮発性メモリー107内に用意されているBWBI及びWBI差分データを用いて本来のBWBIを復元すれば、コールドブートする場合よりもかなり高速でウォームブートすることができる。また、情報処理装置100にとって最重要な起動モード例えばディジタルカメラであれば撮影モードに限定してBWBIを記憶し、使用頻度が比較的高いその他の起動モードについてはWBI差分データのみを記憶するので、メモリーリソースを節約することができる。また、WBI差分データをウォームブートイメージ領域312に記憶する起動モードを1つだけにすれば、その起動モードについてだけ高速でウォームブートすることができる。図4Cに示すように複数の起動モードについてWBI差分データをウォームブートイメージ領域312に記憶すれば、複数の起動モードについてだけ高速でウォームブートすることができるようになる。図4Dには、図4Cの変形例を示している。図示の例では、複数の起動モードについてのベストなウォームブートイメージBWBI1~3を不揮発性メモリー107内のウォームブートイメージ領域312に記憶させている。また、BWBIを記憶しない他の起動モードについては、不揮発性メモリー107内の複数のBWBI1~3のうちの1つ例えば、最も差分が小さいものをベースにしてWBI差分データを作成して、不揮発性メモリー107内のウォームブートイメージ領域312に記憶させる。図4Eには、図4Cのさらに他の変形例を示している。図示の例では、図示の例では、いずれかにアプリケーションを起動しているときのメモリー119のスナップショットではなく、いずれのアプリケーションも起動していないNeutralPoint状態でのメモリー119のスナップショットを、単一のBWBIとして、ウォームブートイメージ領域312に記憶される。また、撮影、再生、USB接続の各起動モードについては、各々のBWBIすなわち、該当するアプリケーションを起動したときのメモリー119のスナップショットとNeutralPoint状態でのBWBIとの差分からなるWBI差分データがウォームブートイメージ領域312に記憶される。したがって、いずれかの起動モードを指定してウォームブートするときには、ウォームブートイメージ領域312に記憶されているBWBIを一旦メモリー119にロードした後、WBI差分データを適用して、指定された起動モード本来のBWBIをメモリー119上に復元する。NeutralPoint状態でのBWBIは、各起動モードでのBWBIよりもデータサイズが小さい。したがって、各起動モードでのBWBIをウォームブートイメージ領域312に記憶する場合よりもメモリーリソースを節約することができる。また、いずれかの起動モードを最速でウォームブートするのではなく、各起動モードで平均的に高速で起動させることができる。図4A~図4Eのいずれを採用するにせよ、BWBIやWBI差分データなどのウォームブートイメージの生成並びに不揮発性メモリー107への格納する処理は、出荷時に製造元又はユーザーの手元で一度行っておけばよい。したがって、情報処理装置100は、動作を終了する度にハイバーネーションイメージを作成し格納する必要がないので、イメージを記憶する不揮発性メモリー107の寿命を向上することができる。不揮発性メモリー107内のウォームブートイメージ領域312にBWBIを格納しておいた起動モードは、最速でウォームブートすることができるので、以下では最速モードと呼ぶことにする。ディジタルカメラにおける撮影モードのように、情報処理装置100にとって最重要な起動モードについては、最速モードに設定することで、起動時に最速モードが指定されると例えば、撮影ボタンが押されると、短時間でウォームブートすることができる。また、ウォームブートイメージ領域312にWBI差分データを格納しておいた起動モードは、BWBIを一旦メモリー119にロードした後、WBI差分データを適用することで、比較的高速にウォームブートすることができる。以下では、WBI差分データが用意された起動モードのことを高速モードと呼ぶことにする。ディジタルカメラにおける再生モードのように、情報処理装置100において比較的高い頻度で使用される起動モードについては、高速モードに設定することで、ウォームブートの短縮化とメモリーリソースの節約を両立するようにする。他方、ウォームブートイメージ領域312にBWBIもWBI差分データも格納していない起動モードは、BWBIを一旦メモリー119にロードした後、モード遷移処理が必要になるため、一般的なブート処理と比較して劇的に短時間になる訳ではない。以下では、BWBIもWBI差分データも用意されない起動モードのことを一般モードと呼ぶことにする。ディジタルカメラにおけるUSB接続モードのように、情報処理装置100においてそれほど重要でない、若しくは使用頻度の低い起動モードについては、一般モードに設定することで、メモリーリソースの節約を優先するようにする。図5には、情報処理装置100がウォームブートするための処理手順をフローチャートの形式で示している。この処理手順は、ユーザーから起動モードが指定されたことによって開始する。情報処理装置100がディジタルカメラの場合、例えば入力部121は、電源ボタン、撮影ボタン、再生ボタン、USBボタンのうちいずれかが押されたことによって開始する。まず、不揮発性メモリー107のシステム領域310からローダー311を、メモリー119にロードするステップS501。次いで、不揮発性メモリー107のシステム領域310内のウォームブートイメージ領域312に格納されているBWBIを、メモリー119にロードする。ここで、ユーザーによって指定された起動モードに対応するWBI差分データがウォームブートイメージ領域312内に格納されているかどうかをチェックするステップS503。対応するWBI差分データがウォームブートイメージ領域312内にあるということは、指定された起動モードが高速モードということになる。この場合ステップS503のYes、対応するWBI差分データをウォームブートイメージ領域312から読み出し、既にメモリー119にロードしているBWBIに適用して、指定された起動モードのウォームブートイメージにするステップS504。WBI差分データを適用することで、モードの復帰が終了する。他方、対応するWBI差分データがウォームブートイメージ領域312内にないということは、指定された起動モードが最速モードの場合と一般モードの場合が考えられる。次いで、指定された起動モードのアプリケーションを起動する。そして、起動されたモードと復帰されたモードが一致するかどうかをチェックするステップS505。すなわち、メモリー119に復元されたウォームブートイメージが、指定された起動モードのものと一致するかどうかをチェックする。指定された起動モードが一般モードの場合、BWBIもWBI差分データも存在しないので、モードが一致しないステップS505のNo。この場合、モード遷移処理が必要になるステップS506。その後、情報処理装置100は、指定された起動モードで定常動作することができるようになりステップS507、本処理ルーチンを終了する。図6には、ステップS506で実行されるモード遷移処理の手順をフローチャートの形式で示している。まず、現モードの終了処理を行なうステップS601。次いで、新モードの初期化を行なうステップS602。ステップS601で実行されるモード終了処理には、ステップS502でBWBIとしてメモリー119にロードされたライブラリーのアンロード、アンロードに伴うメモリー119などのリソースの開放、デバイスの電源オフなどが挙げられる。また、ステップS602で実行されるモード初期化処理として、ライブラリーのメモリー119へのロード、メモリー119などのリソースの確保、デバイスの初期化などが挙げられる。特に、ライブラリーのロードは不揮発性メモリー107のパフォーマンスなどに依存し、処理時間がかかると思料される。指定された起動モードが最速モードの場合、S501→S502→S503→S505→S507という手順により、最速で起動することができる。また、指定された起動モードが高速モードの場合、S501→S502→S503→S504→S505→S507という手順により、高速で起動することができる。他方、指定された起動モードが一般モードの場合、S501→S502→S503→S505→S506→S507という手順により起動することになり、図6に示したモード遷移処理を含んでしまうため、処理に時間を要する。情報処理装置100は、例えば処理シーケンスにおいてWBI及びWBI差分データを作成する。図7には、情報処理装置100のWBI及びWBI差分データを作成するための処理手順をフローチャートの形式で示している。まず、不揮発性メモリー107のウォームブートイメージ領域312に保存すべき、メモリー119のスナップショットを生成するステップS701。次いで、いま情報処理装置100で起動しているアプリケーションの起動モードが最速モードであるかどうかをチェックするステップS702。ここで、情報処理装置100で起動中のアプリケーションが最速モードである場合にはステップS702のYes、ステップS701で生成したスナップショットを、BWBIとしてそのまま不揮発性メモリー107に記憶してステップS705、本処理ルーチンを終了する。また、情報処理装置100で起動中のアプリケーションが最速モードでない場合にはステップS702のNo、続いて、起動中のアプリケーションが高速モードであるかどうかをチェックするステップS703。そして、情報処理装置100で起動中のアプリケーションが高速モードである場合にはステップS703のYes、ステップS701で生成したスナップショットを、最速モードで生成したスナップショットと比較し、その差分からなるWBI差分データを生成するステップS704。そして、WBI差分データを不揮発性メモリー107に記憶してステップS705、本処理ルーチンを終了する。他方、情報処理装置100で起動中のアプリケーションが高速モードでもない、すなわち、一般モードの場合にはステップS703のNo、メモリー119のスナップショットの記憶を行なうことなく、そのまま本処理ルーチンを終了する。したがって、指定された起動モードが最速モードの場合、S701→S705という手順により、BWBIの生成が行なわれる。また、指定された起動モードが高速モードの場合、S701→S702→S703→S704→S705という手順により、WBI差分データの生成が行なわれる。他方、指定された起動モードが一般モードの場合、S701→S702→S703という手順が実行され、ウォームブートイメージに関するデータは生成されない。図7に示したWBI及びWBI差分データの作成処理は、情報処理装置100の出荷時に製造元で行なわれるか、又は、ユーザーの手元で行なわれる。図8には、ステップS704においてWBI差分データを生成するアルゴリズムを図解している。不揮発性メモリー107のウォームブートイメージ領域312に、めもりー119上のAddressAからAddressBのデータを記憶する。高速モードのウォームブートイメージのAddressB~AddressCのデータがすべて0であるのに対し、最速モードのウォームブートイメージの同じアドレス範囲のデータが全て1であるとする。この場合、WBI差分データとして、データが相違するアドレス範囲を示すAddressB、AddressCと、高速モードのウォームブートイメージのAddressB~AddressCにあるデータ相当なRAWDataを、WBI差分データデータとして記憶する。図9には、WBI差分データのフォーマットの一例を示している。図示の例では、WBI差分データは、ヘッダーとRAWDataで構成される。ヘッダーには、WBI差分データの適用場所Addressと、データのサイズsize、WBI差分データの不揮発性メモリー107のメモリー空間上の位置offsetが格納される。また、RAWDataには、WBI差分データがそのまま格納される。以上説明してきたように、本実施形態によれば、情報処理装置100は、起動したいモードそのままのウォームブートイメージを不揮発性メモリーに保存できるので、ウォームブート時には、NeutralPointから処理する必要がなくなり、所望のモードに高速で復帰することができる。また、情報処理装置100は、動作を終了する度若しくはハイバーネーション状態に遷移する度にハイバーネーションイメージを作成する必要がないので、イメージを記憶する不揮発性メモリーの寿命を向上することができる。なお、本明細書の開示の技術は、以下のような構成をとることも可能である。1複数種類のアプリケーションを実行する実行部と、前記実行部が実行するアプリケーションをロードするメモリーと、ウォームブートするためのウォームブートイメージを不揮発的に記憶するウォームブート用メモリーと、前記ウォームブート用メモリー内のウォームブートイメージを前記メモリーにロードして当該装置をウォームブートするウォームブート部を具備し、前記ウォームブート用メモリーは、第1の状態で前記メモリーのスナップショットを前記第1の状態におけるベストなウォームブートイメージBWBIとして記憶するとともに、第2の状態で前記メモリーのスナップショットと前記BWBIとの差分からなるWBI差分データを記憶する、情報処理装置。2前記ウォームブート部は、前記ウォームブート用メモリー内のBWBIを前記メモリーにロードして前記第1の状態でウォームブートし、又は、前記ウォームブート用メモリー内のBWBIを前記メモリーに一旦ロードした後に前記ウォームブート用メモリー内のWBI差分データを適用して前記第2の状態でウォームブートする、上記1に記載の情報処理装置。3前記第1の状態は第1のアプリケーションを起動した状態であり、前記ウォームブート用メモリーは、前記第1のアプリケーションを起動したときに前記メモリーに生成されるスナップショットをBWBIとして記憶し、前記第2の状態は前記第1のアプリケーション以外のアプリケーションを起動した状態であり、前記ウォームブート用メモリーは、前記第1のアプリケーション以外の各アプリケーションをそれぞれ起動したときに前記メモリーに生成されるスナップショットと前記BWBIとの差分からなるアプリケーション毎のWBI差分データを記憶する、上記1に記載の情報処理装置。4前記第1の状態で起動する第1のアプリケーションは複数あり、前記ウォームブート用メモリーは、前記第1のアプリケーションに係る各アプリケーションをそれぞれ起動したときに前記メモリーに生成されるスナップショットをアプリケーション毎のBWBIとして記憶する、上記3に記載の情報処理装置。5前記ウォームブート用メモリーは、前記第1のアプリケーション以外の第2のアプリケーションを起動したときに前記メモリーに生成されるスナップショットと、前記前記第1のアプリケーションに係る各アプリケーションのBWBIのうち最も差分が小さくなるWBI差分データを記憶する、上記4に記載の情報処理装置。6前記第1の状態はいずれのアプリケーションも起動していないNeutralPoint状態であり、前記ウォームブート用メモリーは、前記NeutralPoint状態で前記メモリーに生成されるスナップショットをBWBIとして記憶し、前記第2の状態はいずれかのアプリケーションを起動した状態であり、前記ウォームブート用メモリーは、前記いずれかのアプリケーションをそれぞれ起動したときに前記メモリーに生成されるスナップショットと前記BWBIとの差分からなるアプリケーション毎のWBI差分データを記憶する、上記1に記載の情報処理装置。7複数種類のアプリケーションを実行する実行部と、前記実行部が実行するアプリケーションをロードするメモリーと、ウォームブートするためのウォームブートイメージを生成するウォームブートイメージ生成部と、前記ウォームブートイメージを不揮発的に記憶するウォームブート用メモリーと、前記ウォームブート用メモリー内のウォームブートイメージを前記メモリーにロードして当該装置をウォームブートするウォームブート部を具備し、前記ウォームブートイメージ生成部は、第1の状態における前記メモリーのスナップショットを生成して前記第1の状態におけるベストなウォームブートイメージBWBIとして記憶するとともに、第2の状態で前記メモリーのスナップショットを生成し、前記BWBIとの差分をとってWBI差分データを生成する、情報処理装置。8第1の状態でメモリーのスナップショットを前記第1の状態におけるベストなウォームブートイメージBWBIとして不揮発的に記憶するステップと、第2の状態で前記メモリーのスナップショットと前記BWBIとの差分からなるWBI差分データを不揮発的に記憶するステップと、を有する情報処理装置の制御方法。9不揮発的に記憶された前記BWBIを前記メモリーにロードして前記第1の状態でウォームブートするステップと、前記メモリーにロードした前記BWBIに、不揮発的に記憶された前記WBI差分データを適用して前記第2の状態でウォームブートするステップをさらに有する上記8に記載の情報処理装置の制御方法。10第1の状態におけるメモリーのスナップショットを生成して前記第1の状態におけるベストなウォームブートイメージBWBIを取得するステップと、第2の状態で前記メモリーのスナップショットを生成し、前記BWBIとの差分をとってWBI差分データを生成するステップを有する情報処理装置の制御方法。11複数種類のアプリケーションを実行する実行部、前記実行部が実行するアプリケーションをロードするメモリー、ウォームブートするためのウォームブートイメージを不揮発的に記憶するウォームブート用メモリー、前記ウォームブート用メモリー内のウォームブートイメージを前記メモリーにロードして当該装置をウォームブートするウォームブート部、としてコンピューターを機能させるようにコンピューター可読形式で記述され、前記ウォームブート用メモリーは、第1の状態で前記メモリーのスナップショットを前記第1の状態におけるベストなウォームブートイメージBWBIとして記憶するとともに、第2の状態で前記メモリーのスナップショットと前記BWBIとの差分からなるWBI差分データを記憶する、コンピュータープログラム。