(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-04-05
(45)【発行日】2022-04-13
(54)【発明の名称】情報処理装置、情報処理方法、及びプログラム
(51)【国際特許分類】
G06F 9/4401 20180101AFI20220406BHJP
【FI】
G06F9/4401
(21)【出願番号】P 2018124559
(22)【出願日】2018-06-29
【審査請求日】2020-10-12
(73)【特許権者】
【識別番号】000136136
【氏名又は名称】株式会社PFU
(73)【特許権者】
【識別番号】500112146
【氏名又は名称】サイレックス・テクノロジー株式会社
(74)【代理人】
【識別番号】100137394
【氏名又は名称】横井 敏弘
(72)【発明者】
【氏名】宮川 修
(72)【発明者】
【氏名】松尾 仁
(72)【発明者】
【氏名】吉田 壮一
(72)【発明者】
【氏名】香川 忠與
(72)【発明者】
【氏名】松浦 龍
【審査官】金木 陽一
(56)【参考文献】
【文献】特開2018-005683(JP,A)
【文献】特開2013-025426(JP,A)
【文献】特開2012-221325(JP,A)
【文献】特開2014-178913(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/4401
(57)【特許請求の範囲】
【請求項1】
一部の起動処理が実施された状態のメモリのスナップショットを格納する格納部と、
前記格納部に格納されたスナップショットを用いて、前記起動処理を実施する起動処理部と
を有し、
前記格納部は、メインメモリと、外部メモリとを用いた起動処理に関して、前記外部メモリにファームウェアを流し込む前の状態の前記メインメモリのスナップショットを格納し、
前記起動処理部は、少なくとも、前記メインメモリから前記外部メモリにファームウェアを流し込む処理を実施する
情報処理装置。
【請求項2】
前記起動処理部は、前記格納部に格納されたスナップショットを用いた後、残りの前記起動処理を実施する
請求項1に記載の情報処理装置。
【請求項3】
前記格納部は、メインメモリと、外部メモリとを用いた起動処理に関して、途中まで起動処理が実施された状態のスナップショットを格納する
請求項2に記載の情報処理装置。
【請求項4】
プログラムの言語設定が行われた後に、メモリのスナップショットを生成するスナップショット生成部
をさらに有し、
前記格納部は、前記スナップショット生成部により生成されたスナップショットを格納し、
前記起動処理部は、前記格納部に格納されたスナップショットに基づいて、言語設定が行われた後の起動処理を実施する
請求項1に記載の情報処理装置。
【請求項5】
一部の起動処理が実施された状態のメモリのスナップショットを生成し格納するステップと、
前記格納されたスナップショットを用いて、前記起動処理を実施するステップと
を有し、
前記生成し格納するステップにおいて、メインメモリと、外部メモリとを用いた起動処理に関して、前記外部メモリにファームウェアを流し込む前の状態の前記メインメモリのスナップショットを生成し、
前記起動処理を実施するステップにおいて、少なくとも、前記メインメモリから前記外部メモリにファームウェアを流し込む処理を実施する
情報処理方法。
【請求項6】
メインメモリと、外部メモリとを用いた起動処理に関して、前記外部メモリにファームウェアを流し込む前の状態の前記メインメモリのスナップショット
を生成し格納するステップと、
前記格納されたスナップショットを用いて、前記起動処理を実施するステップと
をコンピュータに実行させ、
前記起動処理を実施するステップにおいて、少なくとも、前記メインメモリから前記外部メモリにファームウェアを流し込む処理を実施する
プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理方法、及びプログラムに関するものである。
【背景技術】
【0002】
例えば、特許文献1には、RAM上に展開され実行されている対象ソフトウェアプログラムの命令コードおよびデータのスナップショットイメージをメモリに直接書き込むことにより装置起動時間を短縮する情報処理装置が開示されている。
また、特許文献2には、起動要因に関連付けられたスナップショットをフラッシュメモリから読出し、RAMに記憶する復帰手段を備える画像形成装置が開示されている。
【先行技術文献】
【特許文献】
【0003】
【文献】特開2009-176151
【文献】特開2016-046565
【発明の概要】
【発明が解決しようとする課題】
【0004】
装置起動を高速化した情報処理装置を提供する。
【課題を解決するための手段】
【0005】
本発明に係る情報処理装置は、一部の起動処理が実施された状態のメモリのスナップショットを格納する格納部と、前記格納部に格納されたスナップショットを用いて、前記起動処理を実施する起動処理部とを有する。
【0006】
好適には、前記起動処理部は、前記格納部に格納されたスナップショットを用いた後、残りの前記起動処理を実施する。
【0007】
好適には、前記格納部は、メインメモリと、外部メモリとを用いた起動処理に関して、途中まで起動処理が実施された状態のスナップショットを格納する。
【0008】
好適には、前記格納部は、メインメモリと、外部メモリとを用いた起動処理に関して、前記外部メモリにプログラムを流し込む前の状態の前記メインメモリのスナップショットを格納し、前記起動処理部は、少なくとも、前記メインメモリから前記外部メモリに外部メモリ用のプログラムを流し込む処理を実施する。
【0009】
好適には、プログラムの言語設定が行われた後に、メモリのスナップショットを生成するスナップショット生成部をさらに有し、前記格納部は、前記スナップショット生成部により生成されたスナップショットを格納し、前記起動処理部は、前記格納部に格納されたスナップショットに基づいて、言語設定が行われた後の起動処理を実施する。
【0010】
また、本発明に係る情報処理方法は、起動処理を途中まで実施した状態のメモリのスナップショットを生成するステップと、生成されたスナップショットを配信するステップとを有する。
【0011】
また、本発明に係るプログラムは、起動処理が途中まで実施された状態のメモリのスナップショットを含む。
【発明の効果】
【0012】
情報処理装置の装置起動を高速化できる。
【図面の簡単な説明】
【0013】
【
図1】情報処理システム1の全体構成を例示する図である。
【
図2】スキャナ装置2に内蔵される情報処理ユニット20のハードウェア構成及びソフトウェア構成を例示する図である。
【
図3】スキャナ装置2の起動処理において、ファームウェア40の起動順を説明する図である。
【
図4】更新配布サーバ7のスナップショット作成処理(S10)を説明するフローチャートである。
【
図5】本発明の別の実施形態として、言語選択後のスナップショット作成処理(S20)を説明するフローチャートである。
【
図6】通常起動モードにおけるスキャナ装置2の起動処理(S30)を説明するフローチャートである。
【発明を実施するための形態】
【0014】
(背景と概要)
情報処理装置の起動を高速化するために、装置起動後のメモリ状態を丸ごとスナップショット(SnapShot)として退避し、次回起動時にメモリ上にスナップショットをそのまま復元する方法がある。
しかしながら、メインメモリの他に、外部メモリが存在する情報処理装置においては、外部メモリの状態をスナップショットに含めることができない。例えば、スキャナ装置に搭載されている無線LANチップには、それ専用のファームウェア(チップファームウェア)が存在し、当該チップ内の揮発性メモリ上で動作するため、当該部分については、スナップショットに含めることができない。このため、無線LANドライバの初期化処理は、スナップショットを復元した後に、別途実施する必要があった。これでは、せっかくスナップショット起動を実施しても、無線LANドライバの初期化部分についてはスナップショット起動の効果が得られない。
【0015】
そこで、本実施形態の情報処理装置は、一部の起動処理が実施された状態のメモリのスナップショットを格納しておき、格納されたスナップショットを用いて、起動処理を実施する。より具体的には、スナップショットに無線LANドライバに関する部分を含めないのではなく、無線LANドライバの初期化処理においてチップファームウェアを流し込む直前で一時停止した状態を維持し(「init_pause」と呼ぶ)、この状態でスナップショットを作成するようにする。これにより、無線LANドライバの初期化処理部分についても一部短縮化できる。
【0016】
(実施形態)
図1は、情報処理システム1の全体構成を例示する図である。
図1に例示するように、情報処理システム1は、スキャナ装置2と、更新配布サーバ7とを含み、これらの構成がアクセスポイント80及びネットワーク8を介して互いに接続している。情報処理システム1には、さらに、スナップショット作成用のスキャナ装置6が設けられ、更新配布サーバ7に接続されている。
スキャナ装置2は、画像を読み取って、画像データを生成する画像読取装置であり、読み取られた画像データを処理する情報処理ユニット20(後述)を内蔵している。
スナップショット作成用のスキャナ装置6は、スキャナ装置2と実質的に同様の構成を有する。
更新配布サーバ7は、スナップショット作成用のスキャナ装置6を用いて、スキャナ装置2を起動するための起動プログラム(スナップショットを含む)を作成する。なお、本例では、更新配布サーバ7が、更新プログラム(例えば、ファームウェアの更新用プログラムなど)をスキャナ装置2に配布する際に、更新された起動プログラム(スナップショットを含む)を、ネットワーク8を介して配信する形態を具体例として説明するが、これに限定されるものではなく、例えば、工場出荷時のスキャナ装置2については、更新配布サーバ7により作成された起動プログラムを、USBケーブルやCD-ROMなどの記録媒体を介して、スキャナ装置2に書き込んでもよい。
【0017】
図2は、スキャナ装置2に内蔵される情報処理ユニット20のハードウェア構成及びソフトウェア構成を例示する図である。
図2に例示するように、情報処理ユニット20は、ハードウェア30として、CPU300、無線LANチップ310、RAM320、及び、ROM330を有している。
CPU300は、中央演算装置である。
無線LANチップ310は、無線接続するためのチップであり、例えば、Wi-Fi接続を実現する。なお、無線LANチップ310上の揮発性メモリが、本発明に係る外部メモリの一例であるが、これに限定されるものではない。
RAM320は、揮発性メモリであり、メインメモリ(主記憶装置)として機能する。
ROM330は、FlashROM等の不揮発性メモリであり、例えば、スナップショットを含む起動プログラムが格納される。
【0018】
また、
図2に例示するように、情報処理ユニット20は、ファームウェア40として、ブートプログラム400、Linuxカーネル410、無線LANドライバ420、Wi-Fi制御アプリ430、その他のデバイスドライバ440、及び、その他の制御アプリ450を有している。
ブートプログラム400は、スキャナ装置2の起動を行うブートプログラムである。
Linuxカーネル410は、オペレーティングシステム(OS)の一例であり、Linuxの中核部分である。
無線LANドライバ420は、無線LANチップ310のドライバである。
Wi-Fi制御アプリ430は、無線LANドライバ420を介して、無線LANチップ310を制御し、アクセスポイント80へのWi-Fi接続を実現する。
その他のデバイスドライバ440は、例えば、液晶ディスプレイやタッチパネル等のドライバである。
その他の制御アプリ450は、例えば、液晶ディスプレイやタッチパネルを制御して、ユーザの入力受付、及び、入力結果の表示等を行うアプリケーションプログラムである。
【0019】
図3は、スキャナ装置2の起動処理において、ファームウェア40の起動順を説明する図である。
図3に例示するように、Linuxカーネル410の初期化処理部412は、自身の初期化処理を行って、無線LANドライバ420と、その他のデバイスドライバ440とに起動を指示する。
無線LANドライバ420は、チップファームウェアのアップロードよりも前の初期化処理を実施する第1の初期化処理部422と、チップファームウェアのアップロード以降の初期化処理(続きの起動処理)を実施する第2の初期化処理部424とを含む。
Wi-Fi制御アプリ430は、無線LANドライバ420の初期化を制御する無線LANドライバ初期化制御部432と、Wi-Fi接続処理を制御するWi-Fi接続制御部434とを含む。無線LANドライバ初期化制御部432は、スナップショットの復元が完了すると、無線LANドライバ420の第2の初期化処理部424に対して、init_pauseの解除を指示する。無線LANドライバ420の第2の初期化処理部424は、この指示に応じて、チップファームウェアの流し込みを開始する。
その他のデバイスドライバ440は、初期化処理部442を含む。
【0020】
図4は、更新配布サーバ7のスナップショット作成処理(S10)を説明するフローチャートである。本例では、ユーザが、スナップショット作成用のスキャナ装置6に更新プログラムをインストールしておき、更新配布サーバ7を介して、このスキャナ装置2を操作して、更新が適用された状態のスナップショットを作成し配信する場合を具体例として説明する。
図4に例示するように、ステップ100(S100)において、スキャナ装置6は、ユーザがスナップショット作成モードの設定を指示すると、EEPROMなどのROM330に、スナップショット作成モードであることを書き込む。
【0021】
ステップ105(S105)において、スキャナ装置6は、ユーザの操作に応じて、情報処理ユニット20(
図2)をシャットダウンして、電源をOFFする。続いて、スキャナ装置6は、ユーザの操作に応じて、電源をONにする。
ステップ110(S110)において、スキャナ装置6のブートプログラム400(
図2、
図3)は、スキャナ装置6に電源が投入されると、起動し、ROM330に書き込まれた起動モード(本例では、スナップショット作成モード)を参照する。
【0022】
ステップ115(S115)において、ブートプログラム400は、起動モードがスナップショット作成モードであると判断すると、Linuxカーネル410をロードして起動させる。
【0023】
ステップ120(S120)において、Linuxカーネル410は、各ドライバを起動させる。その際に、本例のLinuxカーネル410は、無線LANドライバ420に関して、第1の初期化処理部422に相当する段階(チップファームウェアを流し込む直前の段階)で一時停止させて、init_pause状態で起動処理を停止させる。
【0024】
ステップ125(S125)において、各制御アプリ(Wi-Fi制御アプリ430及びその他の制御アプリ450)が起動する。
ステップ130(S130)において、更新配布サーバ7は、スキャナ装置6に対して、スナップショットイメージをRAM320上に生成するよう指示する。この時、Wi-Fi制御アプリ430と、その他のデバイスドライバ440と、その他の制御アプリ450と、無線LANドライバ420の第1の初期化処理部422に相当する部分とに関して、初期化処理が完了しており、無線LANドライバ420の第2の初期化処理部424に相当する部分は未実施状態である。
【0025】
ステップ135(S135)において、更新配布サーバ7は、RAM320上に生成されたスナップショットイメージをスナップショットファイルとして取り出す。
ステップ140(S140)において、更新配布サーバ7は、スキャナ装置6のRAM320から取り出されたスナップショットファイルと、他のファイルとを組み合わせて、起動プログラムとしてネットワーク8を経由して他のスキャナ装置2に配信する。
【0026】
このように、更新配布サーバ7は、スナップショット作成用のスキャナ装置6に対して、ファームウェアの起動処理を途中まで実行させた状態で一時停止させ、一時停止した状態でスナップショットを作成する。
【0027】
図5は、本発明の別の実施形態として、言語選択後のスナップショット作成処理(S20)を説明するフローチャートである。本例では、ユーザが、スキャナ装置2を起動させ、スキャナ装置2のユーザインタフェースで使用される言語を選択した後、この状態が含まれたスナップショットを作成する場合を説明する。この場合、スキャナ装置2のみでスナップショットの作成及び格納が行われる。
図5に例示するように、ステップ200(S200)において、スキャナ装置2は、ユーザが設定メニューの言語設定画面で言語を選択すると、選択された言語と、スナップショット作成モードであることとを、EEPROMなどのROM330に書き込む。
【0028】
ステップ205(S205)において、スキャナ装置2は、ユーザの操作に応じて、情報処理ユニット20(
図2)をシャットダウンして、電源をOFFし、続いて装置の電源をONにする。
ステップ210(S210)において、スキャナ装置2のブートプログラム400(
図2、
図3)は、スキャナ装置2に電源が投入されると、起動し、ROM330に書き込まれた起動モード(本例では、スナップショット作成モード)を参照する。
【0029】
ステップ215(S215)において、ブートプログラム400は、起動モードがスナップショット作成モードであると判断すると、Linuxカーネル410をロードして起動させる。
【0030】
ステップ220(S220)において、Linuxカーネル410は、各ドライバを起動させる。その際に、本例のLinuxカーネル410は、無線LANドライバ420に関して、第1の初期化処理部422に相当する段階で一時停止させて、init_pause状態で起動処理を停止させる。
【0031】
ステップ225(S225)において、各制御アプリ(Wi-Fi制御アプリ430及びその他の制御アプリ450)が起動する。
ステップ230(S230)において、ファームウェア40は、ROM330に書き込まれた言語に従って、言語設定変更を行う。
【0032】
ステップ235(S235)において、スキャナ装置2は、言語の設定変更が行われた状態でスナップショットイメージをRAM320上に生成する。
ステップ235(S235)において、スキャナ装置2は、RAM320上に生成されたスナップショットイメージをROM330に書き込み、起動モードを通常起動モードに変更する。
【0033】
このように、スキャナ装置2は、ユーザが言語設定を変更すると、自動的に、言語設定が変更された状態のスナップショットを作成する。高速起動用のスナップショットを言語数だけ準備して、ROMに書き込んでおくと、データサイズが大きくなってしまうため、本例のスキャナ装置2は、上記のように、言語設定が変更された時に、スナップショットを取り直すことで、リソースの無駄遣いを抑制する。
【0034】
図6は、通常起動モードにおけるスキャナ装置2の起動処理(S30)を説明するフローチャートである。
図6に例示するように、ステップ300(S300)において、スキャナ装置2は、ユーザの操作に応じて、電源をONにする。なお、電源をONにする処理は、更新プログラムを受信した後、スキャナ装置2が自ら行ってもよい。
ステップ305(S305)において、スキャナ装置2のブートプログラム400(
図2、
図3)は、スキャナ装置2に電源が投入されると、起動し、ROM330に書き込まれた起動モード(本例では、通常起動モード)を参照する。
【0035】
ステップ310(S310)において、ブートプログラム400は、起動モードが通常起動モードであると判断すると、ROM330から、スナップショットを読み出してRAM320に展開し、メモリ状態を復元する。この時、無線LANドライバ420は、
図3に示すように、init_pause状態であり、その他のデバイスドライバ440は初期化処理が完了した状態である。
【0036】
ステップ315(S315)において、Wi-Fi制御アプリ430のWi-Fi接続制御部434は、Wi-Fi接続制御を開始する。
ステップ320(S320)において、Wi-Fi制御アプリ430の無線LANドライバ初期化制御部432は、無線LANドライバ420に対して、init_pause状態を解除するよう指示する。
【0037】
ステップ325(S325)において、無線LANドライバ420の第2の初期化処理部424は、無線LANドライバ初期化制御部432からの指示に応じて、init_pause状態を解除し、チップファームウェアの流し込みを開始し、これ以降の初期化処理を実施する。
ステップ330(S330)において、無線LANドライバ420の第2の初期化処理部424は、無線LANドライバ420の初期化を完了させると、その旨をWi-Fi制御アプリ430に通知する。
【0038】
ステップ335(S335)において、Wi-Fi制御アプリ430は、無線LANドライバ420からの完了通知に応じて、Wi-Fi接続制御を続行する。
ステップ340(S340)において、Wi-Fi制御アプリ430は、Wi-Fi接続処理を完了し、スキャナ装置2は、起動処理を完了する。
このように、スキャナ装置2は、起動処理の一部が実施された状態のスナップショットを用いて、高速に起動することができる。
【0039】
以上説明したように、本実施形態のスキャナ装置2は、起動処理の一部が実施された状態のスナップショットを用いて、高速に起動することができる。
また、本例のスキャナ装置2は、言語設定が変更された場合には、言語設定が反映された状態でスナップショットを取り直すため、不揮発性メモリに書き込まれるスナップショットのデータ量を抑えることができる。
また、本例の更新配布サーバ7は、更新されたプログラムに関しても、スナップショットを作成して配信することにより、プログラムが更新された後であっても、高速起動を提供できる。
【符号の説明】
【0040】
2 スキャナ装置
7 更新配布サーバ
20 情報処理ユニット
310 無線LANチップ
420 無線LANドライバ
422 第1の初期化処理部
424 第2の初期化処理部