(57)【要約】【課題】複数の起動モードを有し、終了時のモードに拘わらず、起動時に指定された起動モードへ短時間でウォーム・ブートする情報処理装置を提供する。【解決手段】一部の起動モードのＢＷＢＩのみをウォーム・ブート・イメージ領域３１２に記憶するとともに、他の起動モードについては、ＷＢＩ差分データをウォーム・ブート・イメージ領域３１２に記憶する。他の起動モードでのウォーム・ブートが指定されたときには、ウォーム・ブート・イメージ領域３１２からＢＷＢＩを一旦メモリー１１９にロードした後、ＷＢＩ差分データを適用して、指定された起動モード本来のＢＷＢＩをメモリー１１９上に復元する。【選択図】  図４Ｃ
2013134754.tif 000002
【特許請求の範囲】
【請求項１】
複数種類のアプリケーションを実行する実行部と、
前記実行部が実行するアプリケーションをロードするメモリーと、
ウォーム・ブートするためのウォーム・ブート・イメージを不揮発的に記憶するウォーム・ブート用メモリーと、
前記ウォーム・ブート用メモリー内のウォーム・ブート・イメージを前記メモリーにロードして当該装置をウォーム・ブートするウォーム・ブート部と、
を具備し、
前記ウォーム・ブート用メモリーは、第１の状態で前記メモリーのスナップショットを前記第１の状態におけるベストなウォーム・ブート・イメージＢＷＢＩとして記憶するとともに、第２の状態で前記メモリーのスナップショットと前記ＢＷＢＩとの差分からなるＷＢＩ差分データを記憶する、
情報処理装置。
【請求項２】
前記ウォーム・ブート部は、前記ウォーム・ブート用メモリー内のＢＷＢＩを前記メモリーにロードして前記第１の状態でウォーム・ブートし、又は、前記ウォーム・ブート用メモリー内のＢＷＢＩを前記メモリーに一旦ロードした後に前記ウォーム・ブート用メモリー内のＷＢＩ差分データを適用して前記第２の状態でウォーム・ブートする、
請求項１に記載の情報処理装置。
【請求項３】
前記第１の状態は第１のアプリケーションを起動した状態であり、
前記ウォーム・ブート用メモリーは、前記第１のアプリケーションを起動したときに前記メモリーに生成されるイメージ・データをＢＷＢＩとして記憶し、
前記第２の状態は前記第１のアプリケーション以外のアプリケーションを起動した状態であり、
前記ウォーム・ブート用メモリーは、前記第１のアプリケーション以外の各アプリケーションをそれぞれ起動したときに前記メモリーに生成されるイメージ・データと前記ＢＷＢＩとの差分からなるアプリケーション毎のＷＢＩ差分データを記憶する、
請求項１に記載の情報処理装置。
【請求項４】
前記第１の状態で起動する第１のアプリケーションは複数あり、
前記ウォーム・ブート用メモリーは、前記第１のアプリケーションに係る各アプリケーションをそれぞれ起動したときに前記メモリーに生成されるイメージ・データをアプリケーション毎のＢＷＢＩとして記憶する、
請求項３に記載の情報処理装置。
【請求項５】
前記ウォーム・ブート用メモリーは、前記第１のアプリケーション以外の第２のアプリケーションを起動したときに前記メモリーに生成されるイメージ・データと、前記前記第１のアプリケーションに係る各アプリケーションのＢＷＢＩのうち最も差分が小さくなるＷＢＩ差分データを記憶する、
請求項４に記載の情報処理装置。
【請求項６】
前記第１の状態はいずれのアプリケーションも起動していない  Ｎｅｕｔｒａｌ  Ｐｏｉｎｔ状態であり、
前記ウォーム・ブート用メモリーは、前記ＮｅｕｔｒａｌＰｏｉｎｔ状態で前記メモリーに生成されるイメージ・データをＢＷＢＩとして記憶し、
前記第２の状態はいずれかのアプリケーションを起動した状態であり、
前記ウォーム・ブート用メモリーは、前記いずれかのアプリケーションをそれぞれ起動したときに前記メモリーに生成されるイメージ・データと前記ＢＷＢＩとの差分からなるアプリケーション毎のＷＢＩ差分データを記憶する、
請求項１に記載の情報処理装置。
【請求項７】
複数種類のアプリケーションを実行する実行部と、
前記実行部が実行するアプリケーションをロードするメモリーと、
ウォーム・ブートするためのウォーム・ブート・イメージを生成するウォーム・ブート・イメージ生成部と、
前記ウォーム・ブート・イメージを不揮発的に記憶するウォーム・ブート用メモリーと、
前記ウォーム・ブート用メモリー内のウォーム・ブート・イメージを前記メモリーにロードして当該装置をウォーム・ブートするウォーム・ブート部と、
を具備し、
前記ウォーム・ブート・イメージ生成部は、第１の状態における前記メモリーのスナップショットを生成して前記第１の状態におけるベストなウォーム・ブート・イメージＢＷＢＩとして記憶するとともに、第２の状態で前記メモリーのスナップショットを生成し、前記ＢＷＢＩとの差分をとってＷＢＩ差分データを生成する、
情報処理装置。
【請求項８】
第１の状態でメモリーのスナップショットを前記第１の状態におけるベストなウォーム・ブート・イメージＢＷＢＩとして不揮発的に記憶するステップと、
第２の状態で前記メモリーのスナップショットと前記ＢＷＢＩとの差分からなるＷＢＩ差分データを不揮発的に記憶するステップと、
を有する情報処理装置の制御方法。
【請求項９】
不揮発的に記憶された前記ＢＷＢＩを前記メモリーにロードして前記第１の状態でウォーム・ブートするステップと、
前記メモリーにロードした前記ＢＷＢＩに、不揮発的に記憶された前記ＷＢＩ差分データを適用して前記第２の状態でウォーム・ブートするステップと、
をさらに有する請求項８に記載の情報処理装置の制御方法。
【請求項１０】
第１の状態におけるメモリーのスナップショットを生成して前記第１の状態におけるベストなウォーム・ブート・イメージＢＷＢＩを取得するステップと、
第２の状態で前記メモリーのスナップショットを生成し、前記ＢＷＢＩとの差分をとってＷＢＩ差分データを生成するステップと、
を有する情報処理装置の制御方法。
【請求項１１】
複数種類のアプリケーションを実行する実行部、
前記実行部が実行するアプリケーションをロードするメモリー、
ウォーム・ブートするためのウォーム・ブート・イメージを不揮発的に記憶するウォーム・ブート用メモリー、
前記ウォーム・ブート用メモリー内のウォーム・ブート・イメージを前記メモリーにロードして当該装置をウォーム・ブートするウォーム・ブート部、
としてコンピューターを機能させるようにコンピューター可読形式で記述され、
前記ウォーム・ブート用メモリーは、第１の状態で前記メモリーのスナップショットを前記第１の状態におけるベストなウォーム・ブート・イメージＢＷＢＩとして記憶するとともに、第２の状態で前記メモリーのスナップショットと前記ＢＷＢＩとの差分からなるＷＢＩ差分データを記憶する、
コンピューター・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書で開示する技術は、ウォーム・ブート方式のハイバーネーション機能を有する情報処理装置及び情報処理装置の制御方法、並びにコンピューター・プログラムに係り、特に、複数の起動モードを有し、起動時に指定された起動モードでウォーム・ブートする情報処理装置及び情報処理装置の制御方法、並びにコンピューター・プログラムに関する。
【背景技術】
【０００２】
従来、ノートブック・コンピューター（ＰＣ）などのバッテリー駆動の情報処理装置において、省電力のために「ハイバーネーション」機能が導入されてきた。ハイバーネーションがイネーブルされると、例えばロー・バッテリー状態になったときに、実行中のタスクに割り込みをかけ、後でタスクを再開するのに必要なすべてのデータをハード・ディスクなどの不揮発の記憶領域にストアした後に、装置全体の電源をオフして、ハイバーネーション状態に入る。また、後でユーザーがシステムのパワーをオンにすると、ストアしておいたデータが元の場所にリストアされ、中断していたタスクが自動的に再開する（例えば、特許文献１を参照のこと）。
【０００３】
また、最近では、パーソナル・コンピューターだけではなく、ディジタルカメラや携帯電話機などさまざまな情報処理装置においても、ハイバーネーション機能が導入されてきている。ハイバーネーション機能を用いれば、ウォーム・ブート、すなわちユーザーが電源をオンしてから装置の使用が可能になるまでの待機時間を短縮することができる。ある時点（電源オフ時など）にメモリーに展開されているデータをウォーム・ブート・イメージ（ＷＢＩ）として不揮発性メモリーに記憶しておけば、装置の起動時には不揮発性メモリー内のウォーム・ブート・イメージをそのままメモリーにロードすることにより、メモリーの状態を迅速に復元することができる。
【０００４】
ウォーム・ブート方式のハイバーネーション機能において、装置の終了をする度にウォーム・ブート・イメージの不揮発性メモリーへの書き込みを行なうのは、ＯｎｅＮａｎｄなど書き込み寿命がある不揮発性メモリーを使用する装置には不適切である。また、不揮発性メモリーへの書き込み処理のため、装置の終了すなわちハイバーネーション状態に遷移するまでの時間が遅くなる。
【０００５】
例えば、オペレーティング・システム、アプリケーション・プログラム、又はミドルウェアをアップデートして起動直後のウォーム・ブート・イメージを生成する、ディジタルスチルカメラなどの情報処理装置について提案がなされている（例えば、特許文献２を参照のこと）。この情報処理装置では、オペレーティング・システム、アプリケーション・プログラム、又はミドルウェアの初期化処理の実行結果をウォーム・ブート・イメージとして不揮発性メモリーに記憶するので、初期化処理した後にユーザーがいずれかのデータに変更を行なっても、装置を起動する度に初期の状態に戻る。
【０００６】
また、不揮発性メモリーに、ユーザーによって書き換える必要のない読み取り専用データを記憶する読み取り専用領域と、ユーザーによって書き換えられる可能性のある書き換え可能データを記憶する書き換え可能領域と、読み取り専用データの実行結果であるスナップショット・イメージを記憶するハイバーネーション用領域を設けるとともに、スナップショット・イメージを、揮発性メモリーにロードするハイバーネーション部と、書き換え可能領域に記憶される書き換え可能データを実行する書き換え可能データ実行部を有する端末装置について提案がなされている（例えば、特許文献３を参照のこと）。この端末装置は、起動の度に繰り返される読み取り専用データについてはスナップショット・イメージを用いたハイバーネーションでの起動を行ない、起動後にユーザーによって書き換えられる可能性があるデータについては起動の度に当該データに基づく処理を実行し、スナップショット・イメージの再取得による不揮発性メモリーの劣化を軽減することができる。
【０００７】
情報処理装置の中には、複数の起動モードを有するものがある。この種の装置では、終了時の状態へ復帰するとは限らないため、一旦終了時の状態にブートした後に、ユーザーが指定するモードへ遷移する処理が発生し、遅延要因になる。
【０００８】
例えば、ディジタルカメラは、「撮影ボタン」が押されたことにより、被写体を撮影することが可能な「撮影モード」で起動する場合、「再生ボタン」が押されたことにより既に撮影した（記録済みの）画像を再生する「再生モード」で起動する場合、「ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）接続モード」で起動する場合など、複数の起動モードを有する。例えば、撮影モード下でハイバーネーション状態に遷移した後に、ユーザーが再生ボタンを押すと（すなわち、ユーザーが再生モードでの復帰を指定すると）、終了時の撮影モードで一旦ウォーム・ブートした後、再生モードに遷移しなければならない。
【０００９】
特許文献２に記載の情報処理装置では、起動する度に初期の状態に戻るため、いずれのモードで起動するにせよ、復帰時にユーザーが指定したモードへの遷移処理が発生する。また、特許文献３に記載の端末装置（携帯電話）は、サスペンド状態から復帰した動作状態では、電話の発信、電子メールの送信、Ｗｅｂコンテンツの閲覧など各種操作が可能であるが、言い換えれば、いずれのモードにも移動しない状態（Ｎｅｕｔｒａｌ  Ｐｏｉｎｔ）にしか復帰できないので、ユーザーが指定したモードへの遷移処理が発生し、起動時間に限界がある。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特許第３２２７６２８号公報
【特許文献２】特開２００８−１６５５５３号公報
【特許文献３】特開２０１０−２７１９８０号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
本明細書で開示する技術の目的は、ウォーム・ブート方式のハイバーネーション機能を有する、優れた情報処理装置及び情報処理装置の制御方法、並びにコンピューター・プログラムを提供することにある。
【００１２】
本明細書で開示する技術のさらなる目的は、複数の起動モードを有し、終了時のモードに拘わらず、起動時に指定された起動モードへ短時間でウォーム・ブートすることができる、優れた情報処理装置及び情報処理装置の制御方法、並びにコンピューター・プログラムを提供することにある。
【課題を解決するための手段】
【００１３】
本願は、上記課題を参酌してなされたものであり、請求項１に記載の技術は、
複数種類のアプリケーションを実行する実行部と、
前記実行部が実行するアプリケーションをロードするメモリーと、
ウォーム・ブートするためのウォーム・ブート・イメージを不揮発的に記憶するウォーム・ブート用メモリーと、
前記ウォーム・ブート用メモリー内のウォーム・ブート・イメージを前記メモリーにロードして当該装置をウォーム・ブートするウォーム・ブート部と、
を具備し、
前記ウォーム・ブート用メモリーは、第１の状態で前記メモリーのスナップショットを前記第１の状態におけるベストなウォーム・ブート・イメージＢＷＢＩとして記憶するとともに、第２の状態で前記メモリーのスナップショットと前記ＢＷＢＩとの差分からなるＷＢＩ差分データを記憶する、
情報処理装置である。
【００１４】
本願の請求項２に記載の技術によれば、請求項１に記載の情報処理装置のウォーム・ブート部は、前記ウォーム・ブート用メモリー内のＢＷＢＩを前記メモリーにロードして前記第１の状態でウォーム・ブートし、又は、前記ウォーム・ブート用メモリー内のＢＷＢＩを前記メモリーに一旦ロードした後に前記ウォーム・ブート用メモリー内のＷＢＩ差分データを適用して前記第２の状態でウォーム・ブートするように構成されている。
【００１５】
本願の請求項３に記載の技術によれば、請求項１に記載の情報処理装置の第１の状態は第１のアプリケーションを起動した状態であり、前記ウォーム・ブート用メモリーは、前記第１のアプリケーションを起動したときに前記メモリーに生成されるスナップショットをＢＷＢＩとして記憶している。また、第２の状態は前記第１のアプリケーション以外のアプリケーションを起動した状態であり、前記ウォーム・ブート用メモリーは、前記第１のアプリケーション以外の各アプリケーションをそれぞれ起動したときに前記メモリーに生成されるスナップショットと前記ＢＷＢＩとの差分からなるアプリケーション毎のＷＢＩ差分データを記憶している。
【００１６】
本願の請求項４に記載の技術によれば、請求項３に記載の情報処理装置が第１の状態で起動する第１のアプリケーションは複数ある。そして、前記ウォーム・ブート用メモリーは、前記第１のアプリケーションに係る各アプリケーションをそれぞれ起動したときに前記メモリーに生成されるスナップショットをアプリケーション毎のＢＷＢＩとして記憶している。
【００１７】
本願の請求項５に記載の技術によれば、請求項４に記載の情報処理装置のウォーム・ブート用メモリーは、前記第１のアプリケーション以外の第２のアプリケーションを起動したときに前記メモリーに生成されるスナップショットと、前記前記第１のアプリケーションに係る各アプリケーションのＢＷＢＩのうち最も差分が小さくなるＷＢＩ差分データを記憶している。
【００１８】
本願の請求項６に記載の技術によれば、請求項１に記載の情報処理装置の第１の状態はいずれのアプリケーションも起動していない  Ｎｅｕｔｒａｌ  Ｐｏｉｎｔ状態であり、前記ウォーム・ブート用メモリーは、前記ＮｅｕｔｒａｌＰｏｉｎｔ状態で前記メモリーに生成されるスナップショットをＢＷＢＩとして記憶している。また、情報処理装置の第２の状態はいずれかのアプリケーションを起動した状態であり、前記ウォーム・ブート用メモリーは、前記いずれかのアプリケーションをそれぞれ起動したときに前記メモリーに生成されるスナップショットと前記ＢＷＢＩとの差分からなるアプリケーション毎のＷＢＩ差分データを記憶している。
【００１９】
また、本願の請求項７に記載の技術は、
複数種類のアプリケーションを実行する実行部と、
前記実行部が実行するアプリケーションをロードするメモリーと、
ウォーム・ブートするためのウォーム・ブート・イメージを生成するウォーム・ブート・イメージ生成部と、
前記ウォーム・ブート・イメージを不揮発的に記憶するウォーム・ブート用メモリーと、
前記ウォーム・ブート用メモリー内のウォーム・ブート・イメージを前記メモリーにロードして当該装置をウォーム・ブートするウォーム・ブート部と、
を具備し、
前記ウォーム・ブート・イメージ生成部は、第１の状態における前記メモリーのスナップショットを生成して前記第１の状態におけるベストなウォーム・ブート・イメージＢＷＢＩとして記憶するとともに、第２の状態で前記メモリーのスナップショットを生成し、前記ＢＷＢＩとの差分をとってＷＢＩ差分データを生成する、
情報処理装置である。
【００２０】
また、本願の請求項８に記載の技術は、
第１の状態でメモリーのスナップショットを前記第１の状態におけるベストなウォーム・ブート・イメージＢＷＢＩとして不揮発的に記憶するステップと、
第２の状態で前記メモリーのスナップショットと前記ＢＷＢＩとの差分からなるＷＢＩ差分データを不揮発的に記憶するステップと、
を有する情報処理装置の制御方法である。
【００２１】
本願の請求項９に記載の技術によれば、請求項８に記載の情報処理装置の制御方法は、不揮発的に記憶された前記ＢＷＢＩを前記メモリーにロードして前記第１の状態でウォーム・ブートするステップと、前記メモリーにロードした前記ＢＷＢＩに、不揮発的に記憶された前記ＷＢＩ差分データを適用して前記第２の状態でウォーム・ブートするステップをさらに有している。
【００２２】
また、本願の請求項１０に記載の技術は、
第１の状態におけるメモリーのスナップショットを生成して前記第１の状態におけるベストなウォーム・ブート・イメージＢＷＢＩを取得するステップと、
第２の状態で前記メモリーのスナップショットを生成し、前記ＢＷＢＩとの差分をとってＷＢＩ差分データを生成するステップと、
を有する情報処理装置の制御方法である。
【００２３】
また、本願の請求項に記載の技術は、
複数種類のアプリケーションを実行する実行部、
前記実行部が実行するアプリケーションをロードするメモリー、
ウォーム・ブートするためのウォーム・ブート・イメージを不揮発的に記憶するウォーム・ブート用メモリー、
前記ウォーム・ブート用メモリー内のウォーム・ブート・イメージを前記メモリーにロードして当該装置をウォーム・ブートするウォーム・ブート部、
としてコンピューターを機能させるようにコンピューター可読形式で記述され、
前記ウォーム・ブート用メモリーは、第１の状態で前記メモリーのスナップショットを前記第１の状態におけるベストなウォーム・ブート・イメージＢＷＢＩとして記憶するとともに、第２の状態で前記メモリーのスナップショットと前記ＢＷＢＩとの差分からなるＷＢＩ差分データを記憶する、
コンピューター・プログラムである。
【００２４】
本願の請求項１１に係るコンピューター・プログラムは、コンピューター上で所定の処理を実現するようにコンピューター可読形式で記述されたコンピューター・プログラムを定義したものである。換言すれば、本願の請求項１１に係るコンピューター・プログラムをコンピューターにインストールすることによって、コンピューター上では協働的作用が発揮され、本願の請求項１に係る情報処理装置と同様の作用効果を得ることができる。
【発明の効果】
【００２５】
本明細書で開示する技術によれば、複数の起動モードを有し、終了時のモードに拘わらず、起動時に指定された起動モードへ短時間でウォーム・ブートすることができる、優れた情報処理装置及び情報処理装置の制御方法、並びにコンピューター・プログラムを提供することができる。
【００２６】
また、本明細書で開示する技術によれば、情報処理装置は、起動したいモードそのままのウォーム・ブート・イメージを不揮発性メモリーに保存できるので、ウォーム・ブート時には、Ｎｅｕｔｒａｌ  Ｐｏｉｎｔから処理する必要がなくなり、所望のモードに高速で復帰することができる。
【００２７】
また、本明細書で開示する技術によれば、情報処理装置は、動作を終了する度若しくはハイバーネーション状態に遷移する度にハイバーネーション・イメージを作成する必要がないので、イメージを記憶する不揮発性メモリーの寿命を向上することができる。
【００２８】
本明細書で開示する技術のさらに他の目的、特徴や利点は、後述する実施形態や添付する図面に基づくより詳細な説明によって明らかになるであろう。
【図面の簡単な説明】
【００２９】
【図１】図１は、本明細書で開示する技術の一実施形態に係る情報処理装置１００のハードウェア構成を模式的に示した図である。
【図２】図２は、ＣＰＵ１０１により実行されるプログラムのスタック構造を示した図である。
【図３】図３は、不揮発性メモリー１０７のメモリー空間の構成例を示した図である。
【図４Ａ】図４Ａは、起動モード毎のＢＷＢＩをウォーム・ブート・イメージ領域３１２に記憶した場合の不揮発性メモリー１０７のメモリー空間の構成例を示した図である。
【図４Ｂ】図４Ｂは、単一の起動モードのＢＷＢＩのみをウォーム・ブート・イメージ領域３１２に記憶した場合の不揮発性メモリー１０７のメモリー空間の構成例を示した図である。
【図４Ｃ】図４Ｃは、単一の起動モードのＢＷＢＩのみをウォーム・ブート・イメージ領域３１２に記憶するとともに、他の起動モードのＷＢＩ差分データをウォーム・ブート・イメージ領域３１２に記憶した場合の不揮発性メモリー１０７のメモリー空間の構成例を示した図である。
【図４Ｄ】図４Ｄは、図４Ｃの変形例を示した図である。
【図４Ｅ】図４Ｅは、図４Ｃの変形例を示した図である。
【図５】図５は、情報処理装置１００がウォーム・ブートするための処理手順を示したフローチャートである。
【図６】図６は、モード遷移処理の手順を示したフローチャートである。
【図７】図７は、情報処理装置１００のＷＢＩ及びＷＢＩ差分データを作成するための処理手順を示したフローチャートである。
【図８】図８は、ＷＢＩ差分データを生成するアルゴリズムを説明するための図である。
【図９】図９は、ＷＢＩ差分データのフォーマットの一例を示した図である。
【発明を実施するための形態】
【００３０】
以下、図面を参照しながら本明細書で開示する技術の実施形態について詳細に説明する。
【００３１】
図１には、本明細書で開示する技術の一実施形態に係る情報処理装置１００のハードウェア構成を模式的に示している。図示の情報処理装置１００は、ディジタルカメラであり、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０１と、ＣＣＤ（Ｃｈａｒｇｅ  Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅ）などの撮像素子１０４と、アナログ・フロント・エンド部（ＡＦＥ）１０５と、信号処理部１０６と、ＮＡＮＤ型などの不揮発性メモリー１０７と、メモリー・コントローラー１０８と、シリアル・インターフェース１０９と、液晶表示パネル（ＬＣＤ）１１０と、表示コントローラー１１１と、メモリーカード１１２と、メモリーカード・インターフェース１１３と、無線ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）インターフェース１１４と、ＮＡＮＤ型などの不揮発性メモリー１１６と、メモリー・インターフェース１１７と、ＳＤＲＡＭ（Ｓｙｎｃｈｒｏｎｏｕｓ  Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などからなるメモリー１１９と、メモリー・コントローラー１２０、入力部１２１と、汎用入出力部１２２と、エンベデッド・コントローラー１２３と、ＤＣ（Ｄｉｒｅｃｔ  Ｃｕｒｒｅｎｔ）−ＤＣコンバーター１２４と、バッテリー１２５を備えている。
【００３２】
ＣＰＵ１０１、信号処理部１０６、メモリー・コントローラー１０８、シリアル・インターフェース１０９、表示コントローラー１１１、メモリーカード・インターフェース１１３、無線ＬＡＮインターフェース１１４、ＩＤＥインターフェース２８、メモリー・コントローラー１２０、及び汎用入出力部１２２は、バスにより相互に接続されている。
【００３３】
ＣＰＵ１０１は、オペレーティング・システム及びアプリケーション・プログラムを実行して、撮影画像のサイズ、画像データの圧縮率、露出若しくはシャッター・スピードなどのディジタルカメラに対する各種の設定を行なうためのＧＵＩ（Ｇｒａｐｈｉｃａｌ  ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）の処理や、情報処理装置１００の各部を制御するためのリアルタイム処理などを行なう。
【００３４】
撮像素子１０４は、図示しない光学系によってその受光面に結像された被写体像に応じたアナログの画像信号をＡＦＥ部１０５に出力する。ＡＦＥ部１０５は、このアナログ信号にノイズ除去などの所定の処理を適用した後、ディジタル画像信号に変換して、信号処理部１０６に供給する。
【００３５】
信号処理部１０６は、ディジタル画像信号に、ホワイト・バランスや符号化の処理など所定の処理を適用する。処理後の画像データは、バス、メモリー・インターフェース１１７を介して不揮発性メモリー１１６に格納されるか、又は、バス並びにメモリーカード・インターフェース１１３を介してメモリーカード１１２に格納される。
【００３６】
不揮発性メモリー１０７は、メモリー・コントローラー１０８と相互に接続され、ＣＰＵ１０１により実行されるプログラム（オペレーティング・システムやアプリケーション・プログラム、ミドルウェアなど）、並びに、プログラムの実行に必要なデータを記憶する。また、不揮発性メモリー１０７は、情報処理装置１００固有のデータや、起動のときにＣＰＵ１０１で実行されるブート・ローダーを記憶している。但し、ここで言う起動とは、電源の供給が停止された状態からの起動（クール・ブート）だけでなく、ハイバーネーション状態からの起動すなわちウォーム・ブートも含むものとする。さらに、不揮発性メモリー１０７には、情報処理装置１００がハイバーネーション状態からウォーム・ブートするときに使用するウォーム・ブート・イメージを記憶する。
【００３７】
メモリー・コントローラー１０８は、不揮発性メモリー１０７からのプログラム、データ、又はウォーム・ブート・イメージの読み出し、並びに、不揮発性メモリー１０７へのウォーム・ブート・イメージなどの各種データの書き込みを制御する。
【００３８】
ここで言うウォーム・ブート・イメージは、ある時点（電源オフ時など）にメモリー１１９に展開されているデータ（スナップショット）からなる。但し、ウォーム・ブート・イメージの構成、ウォーム・ブート・イメージの生成処理、並びにウォーム・ブートの処理手順の詳細については、後述に譲る。
【００３９】
シリアル・インターフェース１０９は、ＣＰＵ１０１とエンベデッド・コントローラー１２３間のシリアル通信を行なう。
【００４０】
液晶表示パネル１１０は、表示コントローラー１１１の制御下で、各種の画像又はテキストなどを表示する。表示コントローラー１１１は、液晶表示パネル１１０の表示を制御する。
【００４１】
メモリーカード１１２は、例えばメモリースティック（登録商標）により構成され、不揮発性記憶媒体を内蔵している。メモリーカード１１２は、情報処理装置１００に挿抜可能に装着され、メモリーカード・インターフェース１１３と電気的に接続される。メモリーカード・インターフェース１１３は、装着されたメモリーカード１１２のデータの記憶並びにデータの読み出しを制御する。
【００４２】
無線ＬＡＮインターフェース１１４は、ＩＥＥＥ（Ｉｎｓｔｉｔｕｔｅ  ｏｆ  Ｅｌｅｃｔｒｉｃａｌ  ａｎｄ  Ｅｌｅｃｔｒｏｎｉｃ  Ｅｎｇｉｎｅｅｒｓ）８０２．１１ａ、ｂ、ｇなどに準拠して、アクセスポイント又は他の機器などと無線通信する。
【００４３】
不揮発性メモリー１１６は、メモリー・インターフェース１１７の制御下で、撮影した画像などの各種のデータを記憶する。ＣＰＵ１０１は、メモリー・インターフェース１１７経由で不揮発性メモリー１１６を制御することができる。
【００４４】
メモリー１１９は、メモリー・コントローラー１２０と相互接続され、オペレーティング・システムやアプリケーション・プログラムなどを不揮発性メモリー１０７からロードする。ＣＰＵ１０１は、メモリー１１９にロードされたプログラムを実行する。メモリー１１９は、電源の供給により記憶動作が可能な揮発性メモリーであり、記憶データのリフレッシュも行なう。また、メモリー・コントローラー１２０は、メモリー１１９へのデータやプログラムの書き込みと読み出しを制御する。
【００４５】
入力部１２１は、電源ボタン、撮影ボタン、再生ボタン、ＵＳＢボタンなどの各種操作ボタンからなり（いずれも図示しない）、これらのボタンの押圧に応じた信号を汎用入出力部１２２及びエンベデッド・コントローラー１２３に供給する。汎用入出力部１２２は、これらのボタンの押圧に応じた信号に対応するデータをＣＰＵ１０１に供給する。また、汎用入出力部１２２には、ＵＳＢの規格に準拠した機器又はケーブルを接続するためのＵＳＢ接続端子１３１が設けられている。
【００４６】
エンベデッド・コントローラー１２３は、いわゆる組込用のＣＰＵで構成され、内蔵されているＲＯＭ又はＲＡＭに記憶されているプログラムを実行する。エンベデッド・コントローラー１２３は、入力部１２１から供給された信号を基に、電源ボタン、撮影ボタン、再生ボタン、ＵＳＢボタンの押圧に応じて、ＣＰＵ１０１のリセット及びその解除を制御する。また、エンベデッド・コントローラー１２３は、ＤＣ−ＤＣコンバーター１２４による情報処理装置１００の各部への電力の供給を制御する。
【００４７】
ＤＣ−ＤＣコンバーター１２４は、直流電圧電源であるバッテリー１２５又は外部電源（商用ＡＣ電源など）から供給される電圧を変換して、エンベデッド・コントローラー１２３の制御に基づいて、情報処理装置１００の各部への電源の供給、停止を制御する。バッテリー１２５は、情報処理装置１００に着脱自在の２次電池であり、ＤＣ−ＤＣコンバーター１２４を介して情報処理装置１００の全体を駆動するための電力を供給する。
【００４８】
ＣＰＵ１０１は、オペレーティング・システム、アプリケーション・プログラム、ミドルウェアを実行する。図２には、ＣＰＵ１０１により実行されるプログラムのスタック構造を示している。
【００４９】
オペレーティング・システム２１０は、例えばＬｉｎｕｘ（登録商標）であり、ハードウェアの管理など基本的な処理を行なう。図示の例では、オペレーティング・システム２１０は、カーネル２１１、デバイス・ドライバー２１２、電源管理機構２１３、ウォーム・ブート・イメージ生成プログラム２１４を含んでいる。
【００５０】
カーネル２１１は、オペレーティング・システム２１０の中核部分であり、アプリケーション・プログラム２３０や不揮発性メモリー１０７乃至汎用入出力部１２２などのデバイスの監視、メモリー１１９やメモリーカード１１２、不揮発性メモリー６などのメモリー・リソースの管理、割り込み処理、プロセス間通信など、オペレーティング・システム２１０としての基本機能を提供する。
【００５１】
デバイス・ドライバー２１２は、信号処理部１０６、シリアル・インターフェース１０９、表示コントローラー１１１、メモリーカード・インターフェース１１３、無線ＬＡＮインターフェース１１４、及び汎用入出力部１２２などのデバイスを制御する。
【００５２】
電源管理機構２１３は、ＡＣＰＩ（Ａｄｖａｎｃｅｄ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  ａｎｄ  Ｐｏｗｅｒ  Ｉｎｔｅｒｆａｃｅ）サブシステムなどであり、情報処理装置１００をハイバーネーションなどの状態で休止させるとともに、ハイバーネーション状態からウォーム・ブートして動作状態となるように、電源を管理する。
【００５３】
ウォーム・ブート・イメージ（ＷＢＩ）生成プログラム２１４は、ウォーム・ブート・イメージを生成する。ウォーム・ブート・イメージは、情報処理装置１００がウォーム・ブートすなわちハイバーネーション状態から動作状態に復帰する際に、メモリー１１９に復元すべきスナップショットである。ウォーム・ブート・イメージ作成プログラム２１４が作成したウォーム・ブート・イメージは、不揮発性メモリー１０７内に記憶される。ウォーム・ブート・イメージの生成処理は、情報処理装置１００の出荷時に製造元で行なわれるか、又は、ユーザーの手元で行なわれる。ウォーム・ブート・イメージの構成、並びにウォーム・ブート・イメージの生成処理の詳細については後述に譲る。
【００５４】
アプリケーション・プログラム２３０は、撮影しようとする被写体の画像の表示や、撮影処理、撮影画像の再生などの処理を行なう。本実施形態では、情報処理装置１００としてディジタルカメラを想定しており、アプリケーション・プログラム２３０は、撮影処理プログラム２３１、再生処理プログラム２３２、設定処理プログラム２３３、ＵＳＢマスストレージ・クラス処理プログラム２３４、及び電源管理プログラム２３５を含む。
【００５５】
撮影処理プログラム２３１は、撮影しようとする被写体画像の液晶表示パネル１１０への表示や、撮影画像の画像処理、画像データの符号化及びメモリー１０７やメモリーカード１１２への記憶など、すなわち撮影の処理を行なう。
【００５６】
再生処理プログラム２３２は、メモリー１０７やメモリーカード１１２に記憶した画像データの液晶表示パネル１１０への表示など、撮影画像の再生処理を行なう。
【００５７】
設定処理プログラム２３３は、シャッター・スピード、露出、ズーム、撮影する画像のサイズ、符号化の方式や符号化の圧縮率などの撮影に関する設定や、画像データの保存先や、画像再生時の表示方法など、各種の設定の処理を行なう。
【００５８】
ＵＳＢマスストレージ・クラス処理プログラム２３４は、情報処理装置１００がＵＳＢ接続端子１３１を介してパーソナル・コンピューターなどの外部機器（図示しない）にＵＳＢ接続されているときに、情報処理装置１００を記録デバイスとして動作させるＵＳＢマスストレージ・クラスの処理を行なう。
【００５９】
電源管理プログラム２３５は、例えばＬｉｎｕｘ（登録商標）  ｋｅｒｎｅｌが提供する電源管理プログラム（Ｐｏｗｅｒ  Ｍａｎａｇｅｍｅｎｔ  Ｉｎｔｅｒｆａｃｅ）であり、電源の状態に関する各種のコマンドを発行するなどして電源を管理する。
【００６０】
ミドルウェア２２０は、アプリケーション・プログラム２３０とオペレーティング・システム２１０から呼び出され、アプリケーション・プログラム２３０が実行されるときに必要とされる、各種のデータを生成する。
【００６１】
既に述べたように、不揮発性メモリー１０７には、ＣＰＵ１０１により実行されるプログラム並びにプログラムの実行に必要なデータや、情報処理装置１００がハイバーネーションから起動するときに使用するウォーム・ブート・イメージが記憶される。図３には、不揮発性メモリー１０７のメモリー空間の構成例を示している。但し、本明細書で開示する技術の要旨に直接関連しない領域に関しては、適宜図示を省略している。
【００６２】
不揮発メモリー１０７のメモリー空間３００は、システム領域３１０とユーザー領域３２０に大別される。
【００６３】
システム領域３１０には、ローダー３１１や、オペレーティング・システム、ウォーム・ブート・イメージ領域３１２が含まれる。また、ユーザー領域３２０には、アプリケーション・プログラムやその他のユーザー・データが記憶されている。アプリケーション・プログラムには、上述した撮影処理プログラム２３１、再生処理プログラム２３２、設定処理プログラム２３３、ＵＳＢマスストレージ・クラス処理プログラム２３４、及び電源管理プログラム２３５を含む。
【００６４】
ローダー３１１は、ブート処理を行なう。情報処理装置１００の動作が停止した状態として、電源が完全に遮断した状態、作業状態を揮発性のメモリー１１９に保存したまま電力の消費を抑制したサスペンド状態、メモリー１１９のデータを不揮発性メモリー１０７に丸ごとコピーして電源をほぼ完全に遮断したハイバーネーション状態がある。情報処理装置１００の動作が停止した状態毎に、ブート処理は異なる。電源が完全に遮断した状態から起動することを「コールド・ブート（Ｃｏｌｄ  Ｂｏｏｔ）」、サスペンド状態から復帰することを「ホット・ブート（Ｈｏｔ  Ｂｏｏｔ）」（若しくは「レジューム」）、ハイバーネーション状態から起動することを「ウォーム・ブート（Ｗａｒｍ  Ｂｏｏｔ）」と呼ぶ。システム領域内には、各ブート処理用のローダーが格納されているものとする。
【００６５】
ウォーム・ブート・イメージ領域３１２に格納されるウォーム・ブート・イメージは、情報処理装置１００がウォーム・ブートすなわちハイバーネーション状態から動作状態に復帰する際に、メモリー１１９に復元すべきスナップショットである。
【００６６】
本実施形態では、情報処理装置１００は複数の起動モードを有する。例えば、入力部１２１の撮影ボタンが押されたことにより、被写体を撮影することが可能な「撮影モード」で起動する場合、入力部１２１の再生ボタンが押されたことによりメモリー１０７などに記録済みの撮影画像を再生する「再生モード」で起動する場合、入力部１２１のＵＳＢボタンが押されたことによりＵＳＢ接続された外部機器に対してＵＳＢマスストレージとして動作する「ＵＳＢ接続モード」で起動する場合などである。したがって、入力部１２１のボタン操作などを通じて、ウォーム・ブートする起動モードを指定することができる。
【００６７】
ここで、情報処理装置１００が複数の起動モードでウォーム・ブートする場合に必要となる（すなわち、ウォーム・ブート・イメージ領域３１２に記憶させておくべき）ウォーム・ブート・イメージについて考察する。
【００６８】
撮影モードは、撮影処理プログラム２３１がメモリー１１９にロードされ、ＣＰＵ１０１が撮影処理プログラム２３１を実行している状態である。したがって、撮影モードでハイバーネーション状態に入るときに記憶されるウォーム・ブート・イメージ、言い換えれば撮影モードで起動するときのベストなウォーム・ブート・イメージ（以下、「ＢＷＢＩ」とも言う）は、撮影処理プログラム２３１を起動時のメモリー１１９のスナップショットである。このようなＢＷＢＩを用いれば、情報処理装置１００は最速で撮影モードにウォーム・ブートすることができる。同様に、再生モードでウォーム・ブートするためのＢＷＢＩは再生処理プログラム２３２を起動時のメモリー１１９のスナップショットであり、ＵＳＢ接続モードでウォーム・ブートするためのＢＷＢＩはＵＳＢマスストレージ・クラス処理プログラム２３４を起動時のメモリー１１９のスナップショットである。
【００６９】
要するに、各起動モードのベストなウォーム・ブート・イメージは、指定された起動モードに該当するアプリケーション・プログラムを起動しているとき（すなわち、メモリー１１９にロードして、ＣＰＵ１０１が実行しているとき）のメモリー１１９のスナップショットということができる。
【００７０】
例えば、図４Ａに示すように、起動モード毎のベストなウォーム・ブート・イメージＢＷＢＩを不揮発性メモリー１０７内のウォーム・ブート・イメージ領域３１２に記憶させておけば、ユーザーがウォーム・ブート時に任意の起動モードを入力部１２１から指定しても、情報処理装置１００は常に最速でウォーム・ブートすることができる。図示の例では、撮影、再生、ＵＳＢ接続の各起動モードのＢＷＢＩがウォーム・ブート・イメージ領域３１２に記憶されている。但し、サポートする起動モードの数が増えると、起動モード毎にＢＷＢＩを不揮発性メモリー１０７に記憶していかなければならないので、メモリー・リソースを消費するという問題がある。
【００７１】
また、図４Ｂに示すように、単一の起動モードのベストなウォーム・ブート・イメージＢＷＢＩのみを不揮発性メモリー１０７内のウォーム・ブート・イメージ領域３１２に記憶させる、あるいは、ＢＷＢＩを記憶する起動モードの数を制限する（言い換えれば、最速なウォーム・ブートをサポートする起動モードの数を制限する）という変形例も考えられる。情報処理装置１００にとって重要な起動モード（例えばディジタルカメラであれば撮影モード）に限定してＢＷＢＩを用意しておけば、多くの場面でユーザーが満足する時間内でブートすることができ、また、メモリー・リソースを節約することができる。但し、ＢＷＢＩをサポートしていない起動モードが指定されたときには、不揮発性メモリー１０７内のＢＷＢＩを用いて一旦は他の起動モードでウォーム・ブートした後、指定された起動モードに遷移するか、又は、通常のブート処理（コールド・ブート）を行なうしかなく、起動時間に限界がある。
【００７２】
図４Ｃには、ＢＷＢＩを記憶する起動モードの数を制限する他の例を示している。図示の例では、単一の起動モードのＢＷＢＩのみをウォーム・ブート・イメージ領域３１２に記憶するとともに、他の起動モードについては、自分のＢＷＢＩ（すなわち、該当するアプリケーションを起動したときのメモリー１１９のスナップショット）とウォーム・ブート・イメージ領域３１２に記憶されているＢＷＢＩとの差分をとったＷＢＩ差分データをウォーム・ブート・イメージ領域３１２に記憶する。図示の例では、撮影モードについてのＢＷＢＩと、再生モードについてのＷＢＩ差分データがウォーム・ブート・イメージ領域３１２に記憶されている。他の起動モードでのウォーム・ブートが指定されたときには、ウォーム・ブート・イメージ領域３１２に記憶されているＢＷＢＩを一旦メモリー１１９にロードした後、ＷＢＩ差分データを適用して、指定された起動モード本来のＢＷＢＩをメモリー１１９上に復元することができる。
【００７３】
情報処理装置１００にとって最重要な起動モード（例えばディジタルカメラであれば撮影モード）に限定してＢＷＢＩを用意しておく。また、最重要ではないが、比較的高い頻度で使用される起動モード（例えばディジタルカメラであれば再生モード）については、自分のＢＷＢＩとウォーム・ブート・イメージ領域３１２に記憶されているＢＷＢＩとの差分をとったＷＢＩ差分データをウォーム・ブート・イメージ領域３１２に記憶する。
【００７４】
この場合、最重要な起動モードについては、不揮発性メモリー１０７内にＢＷＢＩが用意されているので、最速でウォーム・ブートすることができる。また、比較的高い頻度で使用される起動モードについては、不揮発性メモリー１０７内に用意されているＢＷＢＩ及びＷＢＩ差分データを用いて本来のＢＷＢＩを復元すれば、コールド・ブートする場合よりもかなり高速でウォーム・ブートすることができる。また、情報処理装置１００にとって最重要な起動モード（例えばディジタルカメラであれば撮影モード）に限定してＢＷＢＩを記憶し、使用頻度が比較的高いその他の起動モードについてはＷＢＩ差分データのみを記憶するので、メモリー・リソースを節約することができる。
【００７５】
また、ＷＢＩ差分データをウォーム・ブート・イメージ領域３１２に記憶する起動モードを１つだけにすれば、その起動モードについてだけ高速でウォーム・ブートすることができる。図４Ｃに示すように複数の起動モードについてＷＢＩ差分データをウォーム・ブート・イメージ領域３１２に記憶すれば、複数の起動モードについてだけ高速でウォーム・ブートすることができるようになる。
【００７６】
図４Ｄには、図４Ｃの変形例を示している。図示の例では、複数の起動モードについてのベストなウォーム・ブート・イメージＢＷＢＩ＃１〜＃３を不揮発性メモリー１０７内のウォーム・ブート・イメージ領域３１２に記憶させている。また、ＢＷＢＩを記憶しない他の起動モードについては、不揮発性メモリー１０７内の複数のＢＷＢＩ＃１〜＃３のうちの１つ（例えば、最も差分が小さいもの）をベースにしてＷＢＩ差分データを作成して、不揮発性メモリー１０７内のウォーム・ブート・イメージ領域３１２に記憶させる。
【００７７】
図４Ｅには、図４Ｃのさらに他の変形例を示している。図示の例では、図示の例では、いずれかにアプリケーションを起動しているときのメモリー１１９のスナップショットではなく、いずれのアプリケーションも起動していないＮｅｕｔｒａｌ  Ｐｏｉｎｔ状態でのメモリー１１９のスナップショットを、単一のＢＷＢＩとして、ウォーム・ブート・イメージ領域３１２に記憶される。また、撮影、再生、ＵＳＢ接続の各起動モードについては、各々のＢＷＢＩ（すなわち、該当するアプリケーションを起動したときのメモリー１１９のスナップショット）とＮｅｕｔｒａｌ  Ｐｏｉｎｔ状態でのＢＷＢＩとの差分からなるＷＢＩ差分データがウォーム・ブート・イメージ領域３１２に記憶される。したがって、いずれかの起動モードを指定してウォーム・ブートするときには、ウォーム・ブート・イメージ領域３１２に記憶されているＢＷＢＩを一旦メモリー１１９にロードした後、ＷＢＩ差分データを適用して、指定された起動モード本来のＢＷＢＩをメモリー１１９上に復元する。
【００７８】
Ｎｅｕｔｒａｌ  Ｐｏｉｎｔ状態でのＢＷＢＩは、各起動モードでのＢＷＢＩよりもデータ・サイズが小さい。したがって、各起動モードでのＢＷＢＩをウォーム・ブート・イメージ領域３１２に記憶する場合よりもメモリー・リソースを節約することができる。また、いずれかの起動モードを最速でウォーム・ブートするのではなく、各起動モードで平均的に高速で起動させることができる。
【００７９】
図４Ａ〜図４Ｅのいずれを採用するにせよ、ＢＷＢＩやＷＢＩ差分データなどのウォーム・ブート・イメージの生成並びに不揮発性メモリー１０７への格納する処理は、出荷時に製造元又はユーザーの手元で一度行っておけばよい。したがって、情報処理装置１００は、動作を終了する度にハイバーネーション・イメージを作成し格納する必要がないので、イメージを記憶する不揮発性メモリー１０７の寿命を向上することができる。
【００８０】
不揮発性メモリー１０７内のウォーム・ブート・イメージ領域３１２にＢＷＢＩを格納しておいた起動モードは、最速でウォーム・ブートすることができるので、以下では「最速モード」と呼ぶことにする。ディジタルカメラにおける撮影モードのように、情報処理装置１００にとって最重要な起動モードについては、最速モードに設定することで、起動時に最速モードが指定されると（例えば、撮影ボタンが押されると）、短時間でウォーム・ブートすることができる。
【００８１】
また、ウォーム・ブート・イメージ領域３１２にＷＢＩ差分データを格納しておいた起動モードは、ＢＷＢＩを一旦メモリー１１９にロードした後、ＷＢＩ差分データを適用することで、比較的高速にウォーム・ブートすることができる。以下では、ＷＢＩ差分データが用意された起動モードのことを「高速モード」と呼ぶことにする。ディジタルカメラにおける再生モードのように、情報処理装置１００において比較的高い頻度で使用される起動モードについては、高速モードに設定することで、ウォーム・ブートの短縮化とメモリー・リソースの節約を両立するようにする。
【００８２】
他方、ウォーム・ブート・イメージ領域３１２にＢＷＢＩもＷＢＩ差分データも格納していない起動モードは、ＢＷＢＩを一旦メモリー１１９にロードした後、モード遷移処理が必要になるため、一般的なブート処理と比較して劇的に短時間になる訳ではない。以下では、ＢＷＢＩもＷＢＩ差分データも用意されない起動モードのことを「一般モード」と呼ぶことにする。ディジタルカメラにおけるＵＳＢ接続モードのように、情報処理装置１００においてそれほど重要でない、若しくは使用頻度の低い起動モードについては、一般モードに設定することで、メモリー・リソースの節約を優先するようにする。
【００８３】
図５には、情報処理装置１００がウォーム・ブートするための処理手順をフローチャートの形式で示している。
【００８４】
この処理手順は、ユーザーから起動モードが指定されたことによって開始する。情報処理装置１００がディジタルカメラの場合、例えば入力部１２１は、電源ボタン、撮影ボタン、再生ボタン、ＵＳＢボタンのうちいずれかが押されたことによって開始する。
【００８５】
まず、不揮発性メモリー１０７のシステム領域３１０からローダー３１１を、メモリー１１９にロードする（ステップＳ５０１）。
【００８６】
次いで、不揮発性メモリー１０７のシステム領域３１０内のウォーム・ブート・イメージ領域３１２に格納されているＢＷＢＩを、メモリー１１９にロードする。
【００８７】
ここで、ユーザーによって指定された起動モードに対応するＷＢＩ差分データがウォーム・ブート・イメージ領域３１２内に格納されているかどうかをチェックする（ステップＳ５０３）。
【００８８】
対応するＷＢＩ差分データがウォーム・ブート・イメージ領域３１２内にあるということは、指定された起動モードが高速モードということになる。この場合（ステップＳ５０３のＹｅｓ）、対応するＷＢＩ差分データをウォーム・ブート・イメージ領域３１２から読み出し、既にメモリー１１９にロードしているＢＷＢＩに適用して、指定された起動モードのウォーム・ブート・イメージにする（ステップＳ５０４）。ＷＢＩ差分データを適用することで、モードの復帰が終了する。
【００８９】
他方、対応するＷＢＩ差分データがウォーム・ブート・イメージ領域３１２内にないということは、指定された起動モードが最速モードの場合と一般モードの場合が考えられる。
【００９０】
次いで、指定された起動モードのアプリケーションを起動する。そして、起動されたモードと復帰されたモードが一致するかどうかをチェックする（ステップＳ５０５）。すなわち、メモリー１１９に復元されたウォーム・ブート・イメージが、指定された起動モードのものと一致するかどうかをチェックする。
【００９１】
指定された起動モードが一般モードの場合、ＢＷＢＩもＷＢＩ差分データも存在しないので、モードが一致しない（ステップＳ５０５のＮｏ）。この場合、モード遷移処理が必要になる（ステップＳ５０６）。
【００９２】
その後、情報処理装置１００は、指定された起動モードで定常動作することができるようになり（ステップＳ５０７）、本処理ルーチンを終了する。
【００９３】
図６には、ステップＳ５０６で実行されるモード遷移処理の手順をフローチャートの形式で示している。
【００９４】
まず、現モードの終了処理を行なう（ステップＳ６０１）。次いで、新モードの初期化を行なう（ステップＳ６０２）。
【００９５】
ステップＳ６０１で実行されるモード終了処理には、ステップＳ５０２でＢＷＢＩとしてメモリー１１９にロードされたライブラリーのアンロード、アンロードに伴うメモリー１１９などのリソースの開放、デバイスの電源オフなどが挙げられる。
【００９６】
また、ステップＳ６０２で実行されるモード初期化処理として、ライブラリーのメモリー１１９へのロード、メモリー１１９などのリソースの確保、デバイスの初期化などが挙げられる。特に、ライブラリーのロードは不揮発性メモリー１０７のパフォーマンスなどに依存し、処理時間がかかると思料される。
【００９７】
指定された起動モードが最速モードの場合、Ｓ５０１→Ｓ５０２→Ｓ５０３→Ｓ５０５→Ｓ５０７という手順により、最速で起動することができる。また、指定された起動モードが高速モードの場合、Ｓ５０１→Ｓ５０２→Ｓ５０３→Ｓ５０４→Ｓ５０５→Ｓ５０７という手順により、高速で起動することができる。他方、指定された起動モードが一般モードの場合、Ｓ５０１→Ｓ５０２→Ｓ５０３→Ｓ５０５→Ｓ５０６→Ｓ５０７という手順により起動することになり、図６に示したモード遷移処理を含んでしまうため、処理に時間を要する。
【００９８】
情報処理装置１００は、例えば処理シーケンスにおいてＷＢＩ及びＷＢＩ差分データを作成する。図７には、情報処理装置１００のＷＢＩ及びＷＢＩ差分データを作成するための処理手順をフローチャートの形式で示している。
【００９９】
まず、不揮発性メモリー１０７のウォーム・ブート・イメージ領域３１２に保存すべき、メモリー１１９のスナップショットを生成する（ステップＳ７０１）。
【０１００】
次いで、いま情報処理装置１００で起動しているアプリケーションの起動モードが最速モードであるかどうかをチェックする（ステップＳ７０２）。
【０１０１】
ここで、情報処理装置１００で起動中のアプリケーションが最速モードである場合には（ステップＳ７０２のＹｅｓ）、ステップＳ７０１で生成したスナップショットを、ＢＷＢＩとしてそのまま不揮発性メモリー１０７に記憶して（ステップＳ７０５）、本処理ルーチンを終了する。
【０１０２】
また、情報処理装置１００で起動中のアプリケーションが最速モードでない場合には（ステップＳ７０２のＮｏ）、続いて、起動中のアプリケーションが高速モードであるかどうかをチェックする（ステップＳ７０３）。
【０１０３】
そして、情報処理装置１００で起動中のアプリケーションが高速モードである場合には（ステップＳ７０３のＹｅｓ）、ステップＳ７０１で生成したスナップショットを、最速モードで生成したスナップショットと比較し、その差分からなるＷＢＩ差分データを生成する（ステップＳ７０４）。そして、ＷＢＩ差分データを不揮発性メモリー１０７に記憶して（ステップＳ７０５）、本処理ルーチンを終了する。
【０１０４】
他方、情報処理装置１００で起動中のアプリケーションが高速モードでもない、すなわち、一般モードの場合には（ステップＳ７０３のＮｏ）、メモリー１１９のスナップショットの記憶を行なうことなく、そのまま本処理ルーチンを終了する。
【０１０５】
したがって、指定された起動モードが最速モードの場合、Ｓ７０１→Ｓ７０５という手順により、ＢＷＢＩの生成が行なわれる。また、指定された起動モードが高速モードの場合、Ｓ７０１→Ｓ７０２→Ｓ７０３→Ｓ７０４→Ｓ７０５という手順により、ＷＢＩ差分データの生成が行なわれる。他方、指定された起動モードが一般モードの場合、Ｓ７０１→Ｓ７０２→Ｓ７０３という手順が実行され、ウォーム・ブート・イメージに関するデータは生成されない。
【０１０６】
図７に示したＷＢＩ及びＷＢＩ差分データの作成処理は、情報処理装置１００の出荷時に製造元で行なわれるか、又は、ユーザーの手元で行なわれる。
【０１０７】
図８には、ステップＳ７０４においてＷＢＩ差分データを生成するアルゴリズムを図解している。
【０１０８】
不揮発性メモリー１０７のウォーム・ブート・イメージ領域３１２に、めもりー１１９上のＡｄｄｒｅｓｓＡからＡｄｄｒｅｓｓＢのデータを記憶する。高速モードのウォーム・ブート・イメージのＡｄｄｒｅｓｓＢ〜ＡｄｄｒｅｓｓＣのデータがすべて０であるのに対し、最速モードのウォーム・ブート・イメージの同じアドレス範囲のデータが全て１であるとする。この場合、ＷＢＩ差分データとして、データが相違するアドレス範囲を示す「ＡｄｄｒｅｓｓＢ」、「ＡｄｄｒｅｓｓＣ」と、高速モードのウォーム・ブート・イメージのＡｄｄｒｅｓｓＢ〜ＡｄｄｒｅｓｓＣにあるデータ相当な「ＲＡＷ  Ｄａｔａ」を、ＷＢＩ差分データデータとして記憶する。
【０１０９】
図９には、ＷＢＩ差分データのフォーマットの一例を示している。図示の例では、ＷＢＩ差分データは、ヘッダーとＲＡＷ  Ｄａｔａで構成される。ヘッダーには、ＷＢＩ差分データの適用場所（Ａｄｄｒｅｓｓ）と、データのサイズ（ｓｉｚｅ）、ＷＢＩ差分データの不揮発性メモリー１０７のメモリー空間上の位置（ｏｆｆｓｅｔ）が格納される。また、ＲＡＷ  Ｄａｔａには、ＷＢＩ差分データがそのまま格納される。
【０１１０】
以上説明してきたように、本実施形態によれば、情報処理装置１００は、起動したいモードそのままのウォーム・ブート・イメージを不揮発性メモリーに保存できるので、ウォーム・ブート時には、Ｎｅｕｔｒａｌ  Ｐｏｉｎｔから処理する必要がなくなり、所望のモードに高速で復帰することができる。
【０１１１】
また、情報処理装置１００は、動作を終了する度若しくはハイバーネーション状態に遷移する度にハイバーネーション・イメージを作成する必要がないので、イメージを記憶する不揮発性メモリーの寿命を向上することができる。
【０１１２】
なお、本明細書の開示の技術は、以下のような構成をとることも可能である。
（１）複数種類のアプリケーションを実行する実行部と、前記実行部が実行するアプリケーションをロードするメモリーと、ウォーム・ブートするためのウォーム・ブート・イメージを不揮発的に記憶するウォーム・ブート用メモリーと、前記ウォーム・ブート用メモリー内のウォーム・ブート・イメージを前記メモリーにロードして当該装置をウォーム・ブートするウォーム・ブート部を具備し、前記ウォーム・ブート用メモリーは、第１の状態で前記メモリーのスナップショットを前記第１の状態におけるベストなウォーム・ブート・イメージＢＷＢＩとして記憶するとともに、第２の状態で前記メモリーのスナップショットと前記ＢＷＢＩとの差分からなるＷＢＩ差分データを記憶する、情報処理装置。
（２）前記ウォーム・ブート部は、前記ウォーム・ブート用メモリー内のＢＷＢＩを前記メモリーにロードして前記第１の状態でウォーム・ブートし、又は、前記ウォーム・ブート用メモリー内のＢＷＢＩを前記メモリーに一旦ロードした後に前記ウォーム・ブート用メモリー内のＷＢＩ差分データを適用して前記第２の状態でウォーム・ブートする、上記（１）に記載の情報処理装置。
（３）前記第１の状態は第１のアプリケーションを起動した状態であり、前記ウォーム・ブート用メモリーは、前記第１のアプリケーションを起動したときに前記メモリーに生成されるスナップショットをＢＷＢＩとして記憶し、前記第２の状態は前記第１のアプリケーション以外のアプリケーションを起動した状態であり、前記ウォーム・ブート用メモリーは、前記第１のアプリケーション以外の各アプリケーションをそれぞれ起動したときに前記メモリーに生成されるスナップショットと前記ＢＷＢＩとの差分からなるアプリケーション毎のＷＢＩ差分データを記憶する、上記（１）に記載の情報処理装置。
（４）前記第１の状態で起動する第１のアプリケーションは複数あり、前記ウォーム・ブート用メモリーは、前記第１のアプリケーションに係る各アプリケーションをそれぞれ起動したときに前記メモリーに生成されるスナップショットをアプリケーション毎のＢＷＢＩとして記憶する、上記（３）に記載の情報処理装置。
（５）前記ウォーム・ブート用メモリーは、前記第１のアプリケーション以外の第２のアプリケーションを起動したときに前記メモリーに生成されるスナップショットと、前記前記第１のアプリケーションに係る各アプリケーションのＢＷＢＩのうち最も差分が小さくなるＷＢＩ差分データを記憶する、上記（４）に記載の情報処理装置。
（６）前記第１の状態はいずれのアプリケーションも起動していない  Ｎｅｕｔｒａｌ  Ｐｏｉｎｔ状態であり、前記ウォーム・ブート用メモリーは、前記ＮｅｕｔｒａｌＰｏｉｎｔ状態で前記メモリーに生成されるスナップショットをＢＷＢＩとして記憶し、前記第２の状態はいずれかのアプリケーションを起動した状態であり、前記ウォーム・ブート用メモリーは、前記いずれかのアプリケーションをそれぞれ起動したときに前記メモリーに生成されるスナップショットと前記ＢＷＢＩとの差分からなるアプリケーション毎のＷＢＩ差分データを記憶する、上記（１）に記載の情報処理装置。
（７）複数種類のアプリケーションを実行する実行部と、前記実行部が実行するアプリケーションをロードするメモリーと、ウォーム・ブートするためのウォーム・ブート・イメージを生成するウォーム・ブート・イメージ生成部と、前記ウォーム・ブート・イメージを不揮発的に記憶するウォーム・ブート用メモリーと、前記ウォーム・ブート用メモリー内のウォーム・ブート・イメージを前記メモリーにロードして当該装置をウォーム・ブートするウォーム・ブート部を具備し、前記ウォーム・ブート・イメージ生成部は、第１の状態における前記メモリーのスナップショットを生成して前記第１の状態におけるベストなウォーム・ブート・イメージＢＷＢＩとして記憶するとともに、第２の状態で前記メモリーのスナップショットを生成し、前記ＢＷＢＩとの差分をとってＷＢＩ差分データを生成する、情報処理装置。
（８）第１の状態でメモリーのスナップショットを前記第１の状態におけるベストなウォーム・ブート・イメージＢＷＢＩとして不揮発的に記憶するステップと、第２の状態で前記メモリーのスナップショットと前記ＢＷＢＩとの差分からなるＷＢＩ差分データを不揮発的に記憶するステップと、を有する情報処理装置の制御方法。
（９）不揮発的に記憶された前記ＢＷＢＩを前記メモリーにロードして前記第１の状態でウォーム・ブートするステップと、前記メモリーにロードした前記ＢＷＢＩに、不揮発的に記憶された前記ＷＢＩ差分データを適用して前記第２の状態でウォーム・ブートするステップをさらに有する上記（８）に記載の情報処理装置の制御方法。
（１０）第１の状態におけるメモリーのスナップショットを生成して前記第１の状態におけるベストなウォーム・ブート・イメージＢＷＢＩを取得するステップと、第２の状態で前記メモリーのスナップショットを生成し、前記ＢＷＢＩとの差分をとってＷＢＩ差分データを生成するステップを有する情報処理装置の制御方法。
（１１）複数種類のアプリケーションを実行する実行部、前記実行部が実行するアプリケーションをロードするメモリー、ウォーム・ブートするためのウォーム・ブート・イメージを不揮発的に記憶するウォーム・ブート用メモリー、前記ウォーム・ブート用メモリー内のウォーム・ブート・イメージを前記メモリーにロードして当該装置をウォーム・ブートするウォーム・ブート部、としてコンピューターを機能させるようにコンピューター可読形式で記述され、前記ウォーム・ブート用メモリーは、第１の状態で前記メモリーのスナップショットを前記第１の状態におけるベストなウォーム・ブート・イメージＢＷＢＩとして記憶するとともに、第２の状態で前記メモリーのスナップショットと前記ＢＷＢＩとの差分からなるＷＢＩ差分データを記憶する、コンピューター・プログラム。
【産業上の利用可能性】
【０１１３】
以上、特定の実施形態を参照しながら、本明細書で開示する技術について詳細に説明してきた。しかしながら、本明細書で開示する技術の要旨を逸脱しない範囲で当業者が該実施形態の修正や代用を成し得ることは自明である。
【０１１４】
本明細書では、本明細書で開示する技術をディジタルカメラに適用した実施形態を中心に説明してきたが、本明細書で開示する技術の要旨はこれに限定されるものではない。携帯電話機やタブレット端末など、複数の起動モードを有するさまざまなタイプの情報処理装置に対しても同様に本明細書で開示する技術を適用することができる。
【０１１５】
要するに、例示という形態により本明細書で開示する技術について説明してきたのであり、本明細書の記載内容を限定的に解釈するべきではない。本明細書で開示する技術の要旨を判断するためには、特許請求の範囲を参酌すべきである。
【符号の説明】
【０１１６】
１００…情報処理装置
１０１…ＣＰＵ
１０４…撮像素子、１０５…ＡＦＥ、１０６…信号処理部
１０７…不揮発性メモリー、１０８…メモリー・コントローラー
１０９…シリアル・インターフェース
１１０…液晶表示パネル、１１１…表示コントローラー
１１２…メモリーカード、１１３…メモリーカード・インターフェース
１１４…無線ＬＡＮインターフェース
１１６…不揮発性メモリー、１１７…メモリー・インターフェース
１１９…メモリー、１２０…メモリー・コントローラー
１２１…入力部、１２２…汎用入出力部、１３１…ＵＳＢ接続端子
１２３…エンベデッド・コントローラー
１２４…ＤＣ−ＤＣコンバーター、１２５…バッテリー
２１０…オペレーティング・システム
２１１…カーネル、２１２…デバイス・ドライバー
２１３…電源管理機構、２１４…ウォーム・ブート・イメージ生成プログラム
２２０…ミドルウェア
２３０…アプリケーション・プログラム
２３１…撮影処理プログラム、２３２…再生処理プログラム
２３３…設定処理プログラム
２３４…ＵＳＢマスストレージ・クラス処理プログラム
２３５…電源管理プログラム
３００…メモリー空間
３１０…システム領域
３１１…ローダー
３１２…ウォーム・ブート・イメージ領域
３２０…ユーザー領域
【図１】
2013134754.tif 000003
【図２】
2013134754.tif 000004
【図３】
2013134754.tif 000005
【図４Ａ】
2013134754.tif 000006
【図４Ｂ】
2013134754.tif 000007
【図４Ｃ】
2013134754.tif 000008
【図４Ｄ】
2013134754.tif 000009
【図４Ｅ】
2013134754.tif 000010
【図５】
2013134754.tif 000011
【図６】
2013134754.tif 000012
【図７】
2013134754.tif 000013
【図８】
2013134754.tif 000014
【図９】
2013134754.tif 000015