(57)【要約】【課題】  装置起動を高速化した情報処理装置を提供する。【解決手段】  情報処理装置は、一部の起動処理が実施された状態のメモリのスナップショットを格納する格納部と、前記格納部に格納されたスナップショットを用いて、前記起動処理を実施する起動処理部とを有する。より具体的には、前記格納部は、外部メモリにプログラムを流し込む前の状態のメインメモリのスナップショットを格納し、前記起動処理部は、前記スナップショットに基づいて、少なくとも、前記メインメモリから前記外部メモリにプログラムを流し込む処理を実施する。【選択図】図３
2020004205.tif 000002
【特許請求の範囲】
【請求項１】
一部の起動処理が実施された状態のメモリのスナップショットを格納する格納部と、
前記格納部に格納されたスナップショットを用いて、前記起動処理を実施する起動処理部と
を有する情報処理装置。
【請求項２】
前記起動処理部は、前記格納部に格納されたスナップショットを用いた後、残りの前記起動処理を実施する
請求項１に記載の情報処理装置。
【請求項３】
前記格納部は、メインメモリと、外部メモリとを用いた起動処理に関して、途中まで起動処理が実施された状態のスナップショットを格納する
請求項２に記載の情報処理装置。
【請求項４】
前記格納部は、メインメモリと、外部メモリとを用いた起動処理に関して、前記外部メモリにプログラムを流し込む前の状態の前記メインメモリのスナップショットを格納し、
前記起動処理部は、少なくとも、前記メインメモリから前記外部メモリに外部メモリ用のプログラムを流し込む処理を実施する
請求項３に記載の情報処理装置。
【請求項５】
プログラムの言語設定が行われた後に、メモリのスナップショットを生成するスナップショット生成部
をさらに有し、
前記格納部は、前記スナップショット生成部により生成されたスナップショットを格納し、
前記起動処理部は、前記格納部に格納されたスナップショットに基づいて、言語設定が行われた後の起動処理を実施する
請求項１に記載の情報処理装置。
【請求項６】
起動処理を途中まで実施した状態のメモリのスナップショットを生成するステップと、
生成されたスナップショットを配信するステップと
を有する情報処理方法。
【請求項７】
起動処理が途中まで実施された状態のメモリのスナップショットを含むプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法、及びプログラムに関するものである。
【背景技術】
【０００２】
例えば、特許文献１には、ＲＡＭ上に展開され実行されている対象ソフトウェアプログラムの命令コードおよびデータのスナップショットイメージをメモリに直接書き込むことにより装置起動時間を短縮する情報処理装置が開示されている。
また、特許文献２には、起動要因に関連付けられたスナップショットをフラッシュメモリから読出し、ＲＡＭに記憶する復帰手段を備える画像形成装置が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−１７６１５１
【特許文献２】特開２０１６−０４６５６５
【発明の概要】
【発明が解決しようとする課題】
【０００４】
装置起動を高速化した情報処理装置を提供する。
【課題を解決するための手段】
【０００５】
本発明に係る情報処理装置は、一部の起動処理が実施された状態のメモリのスナップショットを格納する格納部と、前記格納部に格納されたスナップショットを用いて、前記起動処理を実施する起動処理部とを有する。
【０００６】
好適には、前記起動処理部は、前記格納部に格納されたスナップショットを用いた後、残りの前記起動処理を実施する。
【０００７】
好適には、前記格納部は、メインメモリと、外部メモリとを用いた起動処理に関して、途中まで起動処理が実施された状態のスナップショットを格納する。
【０００８】
好適には、前記格納部は、メインメモリと、外部メモリとを用いた起動処理に関して、前記外部メモリにプログラムを流し込む前の状態の前記メインメモリのスナップショットを格納し、前記起動処理部は、少なくとも、前記メインメモリから前記外部メモリに外部メモリ用のプログラムを流し込む処理を実施する。
【０００９】
好適には、プログラムの言語設定が行われた後に、メモリのスナップショットを生成するスナップショット生成部をさらに有し、前記格納部は、前記スナップショット生成部により生成されたスナップショットを格納し、前記起動処理部は、前記格納部に格納されたスナップショットに基づいて、言語設定が行われた後の起動処理を実施する。
【００１０】
また、本発明に係る情報処理方法は、起動処理を途中まで実施した状態のメモリのスナップショットを生成するステップと、生成されたスナップショットを配信するステップとを有する。
【００１１】
また、本発明に係るプログラムは、起動処理が途中まで実施された状態のメモリのスナップショットを含む。
【発明の効果】
【００１２】
情報処理装置の装置起動を高速化できる。
【図面の簡単な説明】
【００１３】
【図１】情報処理システム１の全体構成を例示する図である。
【図２】スキャナ装置２に内蔵される情報処理ユニット２０のハードウェア構成及びソフトウェア構成を例示する図である。
【図３】スキャナ装置２の起動処理において、ファームウェア４０の起動順を説明する図である。
【図４】更新配布サーバ７のスナップショット作成処理（Ｓ１０）を説明するフローチャートである。
【図５】本発明の別の実施形態として、言語選択後のスナップショット作成処理（Ｓ２０）を説明するフローチャートである。
【図６】通常起動モードにおけるスキャナ装置２の起動処理（Ｓ３０）を説明するフローチャートである。
【発明を実施するための形態】
【００１４】
（背景と概要）
情報処理装置の起動を高速化するために、装置起動後のメモリ状態を丸ごとスナップショット（ＳｎａｐＳｈｏｔ）として退避し、次回起動時にメモリ上にスナップショットをそのまま復元する方法がある。
しかしながら、メインメモリの他に、外部メモリが存在する情報処理装置においては、外部メモリの状態をスナップショットに含めることができない。例えば、スキャナ装置に搭載されている無線ＬＡＮチップには、それ専用のファームウェア（チップファームウェア）が存在し、当該チップ内の揮発性メモリ上で動作するため、当該部分については、スナップショットに含めることができない。このため、無線ＬＡＮドライバの初期化処理は、スナップショットを復元した後に、別途実施する必要があった。これでは、せっかくスナップショット起動を実施しても、無線ＬＡＮドライバの初期化部分についてはスナップショット起動の効果が得られない。
【００１５】
そこで、本実施形態の情報処理装置は、一部の起動処理が実施された状態のメモリのスナップショットを格納しておき、格納されたスナップショットを用いて、起動処理を実施する。より具体的には、スナップショットに無線ＬＡＮドライバに関する部分を含めないのではなく、無線ＬＡＮドライバの初期化処理においてチップファームウェアを流し込む直前で一時停止した状態を維持し（「ｉｎｉｔ＿ｐａｕｓｅ」と呼ぶ）、この状態でスナップショットを作成するようにする。これにより、無線ＬＡＮドライバの初期化処理部分についても一部短縮化できる。
【００１６】
（実施形態）
図１は、情報処理システム１の全体構成を例示する図である。
図１に例示するように、情報処理システム１は、スキャナ装置２と、更新配布サーバ７とを含み、これらの構成がアクセスポイント８０及びネットワーク８を介して互いに接続している。情報処理システム１には、さらに、スナップショット作成用のスキャナ装置６が設けられ、更新配布サーバ７に接続されている。
スキャナ装置２は、画像を読み取って、画像データを生成する画像読取装置であり、読み取られた画像データを処理する情報処理ユニット２０（後述）を内蔵している。
スナップショット作成用のスキャナ装置６は、スキャナ装置２と実質的に同様の構成を有する。
更新配布サーバ７は、スナップショット作成用のスキャナ装置６を用いて、スキャナ装置２を起動するための起動プログラム（スナップショットを含む）を作成する。なお、本例では、更新配布サーバ７が、更新プログラム（例えば、ファームウェアの更新用プログラムなど）をスキャナ装置２に配布する際に、更新された起動プログラム（スナップショットを含む）を、ネットワーク８を介して配信する形態を具体例として説明するが、これに限定されるものではなく、例えば、工場出荷時のスキャナ装置２については、更新配布サーバ７により作成された起動プログラムを、ＵＳＢケーブルやＣＤ−ＲＯＭなどの記録媒体を介して、スキャナ装置２に書き込んでもよい。
【００１７】
図２は、スキャナ装置２に内蔵される情報処理ユニット２０のハードウェア構成及びソフトウェア構成を例示する図である。
図２に例示するように、情報処理ユニット２０は、ハードウェア３０として、ＣＰＵ３００、無線ＬＡＮチップ３１０、ＲＡＭ３２０、及び、ＲＯＭ３３０を有している。
ＣＰＵ３００は、中央演算装置である。
無線ＬＡＮチップ３１０は、無線接続するためのチップであり、例えば、Ｗｉ−Ｆｉ接続を実現する。なお、無線ＬＡＮチップ３１０上の揮発性メモリが、本発明に係る外部メモリの一例であるが、これに限定されるものではない。
ＲＡＭ３２０は、揮発性メモリであり、メインメモリ（主記憶装置）として機能する。
ＲＯＭ３３０は、ＦｌａｓｈＲＯＭ等の不揮発性メモリであり、例えば、スナップショットを含む起動プログラムが格納される。
【００１８】
また、図２に例示するように、情報処理ユニット２０は、ファームウェア４０として、ブートプログラム４００、Ｌｉｎｕｘカーネル４１０、無線ＬＡＮドライバ４２０、Ｗｉ−Ｆｉ制御アプリ４３０、その他のデバイスドライバ４４０、及び、その他の制御アプリ４５０を有している。
ブートプログラム４００は、スキャナ装置２の起動を行うブートプログラムである。
Ｌｉｎｕｘカーネル４１０は、オペレーティングシステム（ＯＳ）の一例であり、Ｌｉｎｕｘの中核部分である。
無線ＬＡＮドライバ４２０は、無線ＬＡＮチップ３１０のドライバである。
Ｗｉ−Ｆｉ制御アプリ４３０は、無線ＬＡＮドライバ４２０を介して、無線ＬＡＮチップ３１０を制御し、アクセスポイント８０へのＷｉ−Ｆｉ接続を実現する。
その他のデバイスドライバ４４０は、例えば、液晶ディスプレイやタッチパネル等のドライバである。
その他の制御アプリ４５０は、例えば、液晶ディスプレイやタッチパネルを制御して、ユーザの入力受付、及び、入力結果の表示等を行うアプリケーションプログラムである。
【００１９】
図３は、スキャナ装置２の起動処理において、ファームウェア４０の起動順を説明する図である。
図３に例示するように、Ｌｉｎｕｘカーネル４１０の初期化処理部４１２は、自身の初期化処理を行って、無線ＬＡＮドライバ４２０と、その他のデバイスドライバ４４０とに起動を指示する。
無線ＬＡＮドライバ４２０は、チップファームウェアのアップロードよりも前の初期化処理を実施する第１の初期化処理部４２２と、チップファームウェアのアップロード以降の初期化処理（続きの起動処理）を実施する第２の初期化処理部４２４とを含む。
Ｗｉ−Ｆｉ制御アプリ４３０は、無線ＬＡＮドライバ４２０の初期化を制御する無線ＬＡＮドライバ初期化制御部４３２と、Ｗｉ−Ｆｉ接続処理を制御するＷｉ−Ｆｉ接続制御部４３４とを含む。無線ＬＡＮドライバ初期化制御部４３２は、スナップショットの復元が完了すると、無線ＬＡＮドライバ４２０の第２の初期化処理部４２４に対して、ｉｎｉｔ＿ｐａｕｓｅの解除を指示する。無線ＬＡＮドライバ４２０の第２の初期化処理部４２４は、この指示に応じて、チップファームウェアの流し込みを開始する。
その他のデバイスドライバ４４０は、初期化処理部４４２を含む。
【００２０】
図４は、更新配布サーバ７のスナップショット作成処理（Ｓ１０）を説明するフローチャートである。本例では、ユーザが、スナップショット作成用のスキャナ装置６に更新プログラムをインストールしておき、更新配布サーバ７を介して、このスキャナ装置２を操作して、更新が適用された状態のスナップショットを作成し配信する場合を具体例として説明する。
図４に例示するように、ステップ１００（Ｓ１００）において、スキャナ装置６は、ユーザがスナップショット作成モードの設定を指示すると、ＥＥＰＲＯＭなどのＲＯＭ３３０に、スナップショット作成モードであることを書き込む。
【００２１】
ステップ１０５（Ｓ１０５）において、スキャナ装置６は、ユーザの操作に応じて、情報処理ユニット２０（図２）をシャットダウンして、電源をＯＦＦする。続いて、スキャナ装置６は、ユーザの操作に応じて、電源をＯＮにする。
ステップ１１０（Ｓ１１０）において、スキャナ装置６のブートプログラム４００（図２、図３）は、スキャナ装置６に電源が投入されると、起動し、ＲＯＭ３３０に書き込まれた起動モード（本例では、スナップショット作成モード）を参照する。
【００２２】
ステップ１１５（Ｓ１１５）において、ブートプログラム４００は、起動モードがスナップショット作成モードであると判断すると、Ｌｉｎｕｘカーネル４１０をロードして起動させる。
【００２３】
ステップ１２０（Ｓ１２０）において、Ｌｉｎｕｘカーネル４１０は、各ドライバを起動させる。その際に、本例のＬｉｎｕｘカーネル４１０は、無線ＬＡＮドライバ４２０に関して、第１の初期化処理部４２２に相当する段階（チップファームウェアを流し込む直前の段階）で一時停止させて、ｉｎｉｔ＿ｐａｕｓｅ状態で起動処理を停止させる。
【００２４】
ステップ１２５（Ｓ１２５）において、各制御アプリ（Ｗｉ−Ｆｉ制御アプリ４３０及びその他の制御アプリ４５０）が起動する。
ステップ１３０（Ｓ１３０）において、更新配布サーバ７は、スキャナ装置６に対して、スナップショットイメージをＲＡＭ３２０上に生成するよう指示する。この時、Ｗｉ−Ｆｉ制御アプリ４３０と、その他のデバイスドライバ４４０と、その他の制御アプリ４５０と、無線ＬＡＮドライバ４２０の第１の初期化処理部４２２に相当する部分とに関して、初期化処理が完了しており、無線ＬＡＮドライバ４２０の第２の初期化処理部４２４に相当する部分は未実施状態である。
【００２５】
ステップ１３５（Ｓ１３５）において、更新配布サーバ７は、ＲＡＭ３２０上に生成されたスナップショットイメージをスナップショットファイルとして取り出す。
ステップ１４０（Ｓ１４０）において、更新配布サーバ７は、スキャナ装置６のＲＡＭ３２０から取り出されたスナップショットファイルと、他のファイルとを組み合わせて、起動プログラムとしてネットワーク８を経由して他のスキャナ装置２に配信する。
【００２６】
このように、更新配布サーバ７は、スナップショット作成用のスキャナ装置６に対して、ファームウェアの起動処理を途中まで実行させた状態で一時停止させ、一時停止した状態でスナップショットを作成する。
【００２７】
図５は、本発明の別の実施形態として、言語選択後のスナップショット作成処理（Ｓ２０）を説明するフローチャートである。本例では、ユーザが、スキャナ装置２を起動させ、スキャナ装置２のユーザインタフェースで使用される言語を選択した後、この状態が含まれたスナップショットを作成する場合を説明する。この場合、スキャナ装置２のみでスナップショットの作成及び格納が行われる。
図５に例示するように、ステップ２００（Ｓ２００）において、スキャナ装置２は、ユーザが設定メニューの言語設定画面で言語を選択すると、選択された言語と、スナップショット作成モードであることとを、ＥＥＰＲＯＭなどのＲＯＭ３３０に書き込む。
【００２８】
ステップ２０５（Ｓ２０５）において、スキャナ装置２は、ユーザの操作に応じて、情報処理ユニット２０（図２）をシャットダウンして、電源をＯＦＦし、続いて装置の電源をＯＮにする。
ステップ２１０（Ｓ２１０）において、スキャナ装置２のブートプログラム４００（図２、図３）は、スキャナ装置２に電源が投入されると、起動し、ＲＯＭ３３０に書き込まれた起動モード（本例では、スナップショット作成モード）を参照する。
【００２９】
ステップ２１５（Ｓ２１５）において、ブートプログラム４００は、起動モードがスナップショット作成モードであると判断すると、Ｌｉｎｕｘカーネル４１０をロードして起動させる。
【００３０】
ステップ２２０（Ｓ２２０）において、Ｌｉｎｕｘカーネル４１０は、各ドライバを起動させる。その際に、本例のＬｉｎｕｘカーネル４１０は、無線ＬＡＮドライバ４２０に関して、第１の初期化処理部４２２に相当する段階で一時停止させて、ｉｎｉｔ＿ｐａｕｓｅ状態で起動処理を停止させる。
【００３１】
ステップ２２５（Ｓ２２５）において、各制御アプリ（Ｗｉ−Ｆｉ制御アプリ４３０及びその他の制御アプリ４５０）が起動する。
ステップ２３０（Ｓ２３０）において、ファームウェア４０は、ＲＯＭ３３０に書き込まれた言語に従って、言語設定変更を行う。
【００３２】
ステップ２３５（Ｓ２３５）において、スキャナ装置２は、言語の設定変更が行われた状態でスナップショットイメージをＲＡＭ３２０上に生成する。
ステップ２３５（Ｓ２３５）において、スキャナ装置２は、ＲＡＭ３２０上に生成されたスナップショットイメージをＲＯＭ３３０に書き込み、起動モードを通常起動モードに変更する。
【００３３】
このように、スキャナ装置２は、ユーザが言語設定を変更すると、自動的に、言語設定が変更された状態のスナップショットを作成する。高速起動用のスナップショットを言語数だけ準備して、ＲＯＭに書き込んでおくと、データサイズが大きくなってしまうため、本例のスキャナ装置２は、上記のように、言語設定が変更された時に、スナップショットを取り直すことで、リソースの無駄遣いを抑制する。
【００３４】
図６は、通常起動モードにおけるスキャナ装置２の起動処理（Ｓ３０）を説明するフローチャートである。
図６に例示するように、ステップ３００（Ｓ３００）において、スキャナ装置２は、ユーザの操作に応じて、電源をＯＮにする。なお、電源をＯＮにする処理は、更新プログラムを受信した後、スキャナ装置２が自ら行ってもよい。
ステップ３０５（Ｓ３０５）において、スキャナ装置２のブートプログラム４００（図２、図３）は、スキャナ装置２に電源が投入されると、起動し、ＲＯＭ３３０に書き込まれた起動モード（本例では、通常起動モード）を参照する。
【００３５】
ステップ３１０（Ｓ３１０）において、ブートプログラム４００は、起動モードが通常起動モードであると判断すると、ＲＯＭ３３０から、スナップショットを読み出してＲＡＭ３２０に展開し、メモリ状態を復元する。この時、無線ＬＡＮドライバ４２０は、図３に示すように、ｉｎｉｔ＿ｐａｕｓｅ状態であり、その他のデバイスドライバ４４０は初期化処理が完了した状態である。
【００３６】
ステップ３１５（Ｓ３１５）において、Ｗｉ−Ｆｉ制御アプリ４３０のＷｉ−Ｆｉ接続制御部４３４は、Ｗｉ−Ｆｉ接続制御を開始する。
ステップ３２０（Ｓ３２０）において、Ｗｉ−Ｆｉ制御アプリ４３０の無線ＬＡＮドライバ初期化制御部４３２は、無線ＬＡＮドライバ４２０に対して、ｉｎｉｔ＿ｐａｕｓｅ状態を解除するよう指示する。
【００３７】
ステップ３２５（Ｓ３２５）において、無線ＬＡＮドライバ４２０の第２の初期化処理部４２４は、無線ＬＡＮドライバ初期化制御部４３２からの指示に応じて、ｉｎｉｔ＿ｐａｕｓｅ状態を解除し、チップファームウェアの流し込みを開始し、これ以降の初期化処理を実施する。
ステップ３３０（Ｓ３３０）において、無線ＬＡＮドライバ４２０の第２の初期化処理部４２４は、無線ＬＡＮドライバ４２０の初期化を完了させると、その旨をＷｉ−Ｆｉ制御アプリ４３０に通知する。
【００３８】
ステップ３３５（Ｓ３３５）において、Ｗｉ−Ｆｉ制御アプリ４３０は、無線ＬＡＮドライバ４２０からの完了通知に応じて、Ｗｉ−Ｆｉ接続制御を続行する。
ステップ３４０（Ｓ３４０）において、Ｗｉ−Ｆｉ制御アプリ４３０は、Ｗｉ−Ｆｉ接続処理を完了し、スキャナ装置２は、起動処理を完了する。
このように、スキャナ装置２は、起動処理の一部が実施された状態のスナップショットを用いて、高速に起動することができる。
【００３９】
以上説明したように、本実施形態のスキャナ装置２は、起動処理の一部が実施された状態のスナップショットを用いて、高速に起動することができる。
また、本例のスキャナ装置２は、言語設定が変更された場合には、言語設定が反映された状態でスナップショットを取り直すため、不揮発性メモリに書き込まれるスナップショットのデータ量を抑えることができる。
また、本例の更新配布サーバ７は、更新されたプログラムに関しても、スナップショットを作成して配信することにより、プログラムが更新された後であっても、高速起動を提供できる。
【符号の説明】
【００４０】
２      スキャナ装置
７      更新配布サーバ
２０    情報処理ユニット
３１０  無線ＬＡＮチップ
４２０  無線ＬＡＮドライバ
４２２  第１の初期化処理部
４２４  第２の初期化処理部
【図１】
2020004205.tif 000003
【図２】
2020004205.tif 000004
【図３】
2020004205.tif 000005
【図４】
2020004205.tif 000006
【図５】
2020004205.tif 000007
【図６】
2020004205.tif 000008