JP2009187134A - 情報処理装置、情報処理装置の起動制御方法、プログラム及び記録媒体 - Google Patents

情報処理装置、情報処理装置の起動制御方法、プログラム及び記録媒体 Download PDF

Info

Publication number
JP2009187134A
JP2009187134A JP2008024342A JP2008024342A JP2009187134A JP 2009187134 A JP2009187134 A JP 2009187134A JP 2008024342 A JP2008024342 A JP 2008024342A JP 2008024342 A JP2008024342 A JP 2008024342A JP 2009187134 A JP2009187134 A JP 2009187134A
Authority
JP
Japan
Prior art keywords
program
snapshot
unit
application
processing apparatus
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2008024342A
Other languages
English (en)
Inventor
Katsuhiko Kato
勝彦 加藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2008024342A priority Critical patent/JP2009187134A/ja
Publication of JP2009187134A publication Critical patent/JP2009187134A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Stored Programmes (AREA)

Abstract

【課題】スナップショットからの起動をより高速に行うことが可能な情報処理装置、情報処理装置の起動制御方法、プログラム及び記録媒体を提供する。
【解決手段】休止状態への移行時に、主記憶装置のスナップショットをプロセス及びアプリケーションの単位で取得し、休止状態からの復帰時に、取得したスナップショットのうち、自己の装置の起動に必要なプログラムにかかるプロセス又はアプリケーションのスナップショットから優先的に主記憶装置に復元する。
【選択図】 図8

Description

本発明は、情報処理装置、情報処理装置の起動制御方法、プログラム及び記録媒体に関し、特に、記憶媒体に記憶された基本ソフトウェア及び応用ソフトウェアを読み出して実行するCPUを備えた情報処理装置、情報処理装置の起動制御方法、起動制御プログラム及び記録媒体に関する。
近年、低価格で且つ大容量のNAND型フラッシュメモリ(NAND Flash Memory)が各種の電子機器に搭載されるようになってきている。このNAND型フラッシュメモリは、NOR型フラッシュメモリ(NOR Flash Memory)と比較し、記憶セル中に不良(不良セル)が発生する確率が高いという特性を有している。NAND型フラッシュメモリにプログラムが格納されている場合には、プログラムの読み出し時に記憶されていたデータ値が誤った値で読み出されることがあるため、誤り検出及び訂正が付随して行われることが一般的である。なお、この場合、各種の装置でCPUが最初に実行するブートコードについては、誤り検出及び訂正の実行に必要なプログラム自体をも含んでいるため、自己のブートコードについての誤りを訂正することができないという実情がある。
このような理由から、CPUが最初に実行するブートコードについては、上述したNOR型フラッシュメモリ等の比較的信頼度の高い不揮発性メモリに格納することが行われている。また、ブートコード以外の基本ソフトウェアや応用ソフトウェア等のプログラム部分についてもNOR型フラッシュメモリに格納されることが好ましいが、記憶容量あたりのコストが高額となるため、圧縮した状態でNOR型フラッシュメモリに格納されることが多い。なお、プログラム部分については比較的大容量となるため、所定の形式で圧縮された状態で格納されることが一般的である。そのため、ブートコード実行後に圧縮されたプログラムを揮発性メモリ(主記憶装置)にコピーした後、主記憶装置上に伸長して実行するという形態が採用されている。
一方、メモリの状態をイメージ化したスナップショットを保持しておき、このスナップショットをメモリの元の位置に展開しなおすことで、当該メモリの状態をスナップショット取得時の状態に復元する技術が知られている。例えば、特許文献1には、パーティション、ファイル、ディレクトリ単位でのスナップショットの取得方法について開示されている。また、ハイバネーションと呼ばれる技術では、主記憶装置の状態を丸ごとイメージ化したスナップショットをハードディスク等に保持することで、省電力モード等の休止状態から復帰する際の起動の高速化が行われている。
特開2004−178289号公報
ところで、主記憶装置の状態をイメージ化したスナップショットには、スナップショット取得時に実行していた基本ソフトウェアや応用ソフトウェア等の実行単位(プロセス、アプリケーション)が含まれることになる。この場合、上述した従来の技術では、主記憶装置の状態が丸ごとイメージ化されているため、自己の装置の起動に必要なプログラム以外の応用ソフトウェア等の実行単位についても復元が完了するまで待機しなければならないという問題がある。なお、特許文献1に記載のスナップショット取得方法では、主記憶装置に適用することはできない。
本発明は、上記に鑑みてなされたものであって、スナップショットからの起動をより高速に行うことが可能な情報処理装置、情報処理装置の起動制御方法、プログラム及び記録媒体を提供することを目的とする。
上述した課題を解決し、目的を達成するために、請求項1にかかる発明は、自己の装置の起動に必要なプログラムを少なくとも記憶するプログラム記憶手段と、揮発性の主記憶手段と、前記プログラム記憶手段に記憶されたプログラムを実行し、当該プログラムにより実現される各機能の実行単位を前記主記憶手段に展開する制御手段と、休止状態への移行を指示する指示信号に応じ、前記主記憶手段の状態をイメージ化したスナップショットを前記実行単位毎に取得する取得手段と、不揮発性のスナップ記憶手段と、前記取得手段により取得されたスナップショットを前記スナップ記憶手段に格納した後、自己の装置の電源をオフとする休止手段と、前記休止状態からの復帰を指示する指示信号に応じて自己の装置の電源をオンとし、前記スナップ記憶手段に記憶されたスナップショットのうち、前記自己の装置の起動に必要なプログラムにかかる実行単位のスナップショットから優先的に前記主記憶手段に復元する復元手段と、を備えたことを特徴とする。
また、請求項2にかかる発明は、請求項1にかかる発明において、前記プログラム記憶手段は、基本ソフトウェアを少なくとも含む自己の装置の起動に必要な第1プログラムと、当該第1プログラム以外の応用ソフトウェアを含む第2プログラムとを記憶し、前記制御手段は、前記基本ソフトウェアの実行単位となるプロセスと、当該基本ソフトウェア以外の特定の用途に特化したプログラム実行時の実行単位となるアプリケーションとを前記主記憶手段に展開し、前記取得手段は、前記プロセス及びアプリケーションの単位でスナップショットを取得し、前記復元手段は、前記スナップ記憶手段に記憶されたスナップショットのうち、前記第1プログラムにかかるプロセス又はアプリケーションのスナップショットから優先的に前記主記憶手段に復元することを特徴とする。
また、請求項3にかかる発明は、請求項2にかかる発明において、前記休止手段は、前記取得手段により取得されたスナップショットのうち、前記第1プログラムにかかるプロセス又はアプリケーションのスナップショットから優先的に前記スナップ記憶手段に格納し、前記復元手段は、前記スナップ記憶手段に記憶された順に前記スナップショットを前記主記憶手段に復元することを特徴とする。
また、請求項4にかかる発明は、請求項2にかかる発明において、前記休止手段は、前記取得手段により取得された各スナップショットに対し、自己の装置の起動に必要なプロセス又はアプリケーションにかかるものか否かを識別するための識別情報を夫々付与し、前記復元手段は、前記スナップ記憶手段に記憶されたスナップショットのうち、自己の装置の起動に必要なプロセス又はアプリケーションであることを指示する識別情報が付与されたスナップショットから優先的に前記主記憶手段に復元することを特徴とする。
また、請求項5にかかる発明は、請求項2〜4の何れか一項にかかる発明において、前記第1プログラムは、ユーザインターフェースの提供にかかるプログラムを含み、前記復元手段は、前記第1プログラムにかかるスナップショットのうち、ユーザインターフェースの提供にかかる機能を実現するプロセス又はアプリケーションのスナップショットから優先的に前記主記憶手段に復元することを特徴とする。
また、請求項6にかかる発明は、請求項2〜5の何れか一項にかかる発明において、前記第1プログラムは、外部装置とのデータの授受にかかるプログラムを含み、前記復元手段は、前記第1プログラムにかかるスナップショットのうち、外部装置とのデータの授受にかかる機能を実現するプロセス又はアプリケーションのスナップショットから優先的に前記主記憶手段に展開することを特徴とする。
また、請求項7にかかる発明は、請求項2にかかる発明において、前記休止手段は、前記第1プログラムにかかるプロセス又はアプリケーションのスナップショットと、前記第2プログラムにかかるプロセス又はアプリケーションのスナップショットとを、前記スナップ記憶手段の異なる記憶領域に区分けして記憶することを特徴とする。
また、請求項8にかかる発明は、請求項2にかかる発明において、前記主記憶手段に展開されたプロセス及びアプリケーション毎にハッシュ値を算出するハッシュ値算出手段と、前記ハッシュ値算出手段により算出された、前記スナップショット取得前の各ハッシュ値と、前記復元手段により復元された直後の各ハッシュ値とを、同一のプロセス又はアプリケーションについて夫々照合する照合手段と、を更に備えたことを特徴とする。
また、請求項9にかかる発明は、請求項8にかかる発明において、前記ハッシュ値算出手段により算出された前記スナップショット取得前の各ハッシュ値を、対応するプロセス又はアプリケーションを一意に識別するための識別情報と関連付けて記憶するハッシュ値記憶手段を更に備え、前記照合手段は、前記復元手段により復元された直後の各プロセス及びアプリケーションのハッシュ値と、前記ハッシュ値記憶手段に記憶された当該各プロセス及びアプリケーションの識別情報に関連付けられたハッシュ値とを比較することを特徴とする。
また、請求項10にかかる発明は、請求項8又は9にかかる発明において、前記照合手段は、前記復元手段により前記第1プログラムにかかるプロセス又はアプリケーションのスナップショットが前記主記憶手段に復元される毎に、前記ハッシュ値の比較を行うことを特徴とする。
また、請求項11にかかる発明は、請求項8〜10の何れか一項にかかる発明において、前記照合手段は、前記復元手段により前記第2プログラムにかかる全てのプロセス及びアプリケーションのスナップショットが前記主記憶手段に復元された後、当該プロセス及びアプリケーションについてのハッシュ値の比較を連続的に行うことを特徴とする。
また、請求項12にかかる発明は、請求項8〜11の何れか一項にかかる発明において、前記照合手段による照合の結果、不一致となるハッシュ値が検出された場合、エラーが発生した旨を提示する提示手段を更に備えたことを特徴とする。
また、請求項13にかかる発明は、請求項8〜12の何れか一項にかかる発明において、前記復元手段は、前記照合手段による照合の結果、不一致となるハッシュ値が検出された場合、このハッシュ値に対応する前記プロセス又はアプリケーションの実行を停止することを特徴とする。
また、請求項14にかかる発明は、自己の装置の起動に必要なプログラムを少なくとも記憶するプログラム記憶手段と、揮発性の主記憶手段と、不揮発性のスナップ記憶手段とを備えた情報処理装置の起動制御方法であって、制御手段が、前記プログラム記憶手段に記憶されたプログラムを実行し、当該プログラムにより実現される各機能の実行単位を前記主記憶手段に展開する制御工程と、取得手段が、休止状態への移行を指示する指示信号に応じ、前記主記憶手段の状態をイメージ化したスナップショットを前記実行単位毎に取得する取得工程と、休止手段が、前記取得工程で取得されたスナップショットを前記スナップ記憶手段に格納した後、自己の装置の電源をオフとする休止工程と、復元手段が、前記休止状態からの復帰を指示する指示信号に応じて自己の装置の電源をオンとし、前記スナップ記憶手段に記憶されたスナップショットのうち、前記自己の装置の起動に必要なプログラムにかかる実行単位のスナップショットから優先的に前記主記憶手段に復元する復元工程と、を含むことを特徴とする。
また、請求項15にかかる発明は、自己の装置の起動に必要なプログラムを少なくとも記憶するプログラム記憶手段と、揮発性の主記憶手段と、不揮発性のスナップ記憶手段とを備えたコンピュータを、前記プログラム記憶手段に記憶されたプログラムを実行し、当該プログラムにより実現される各機能の実行単位を前記主記憶手段に展開する制御手段と、休止状態への移行を指示する指示信号に応じ、前記主記憶手段の状態をイメージ化したスナップショットを前記実行単位毎に取得する取得手段と、前記取得手段により取得されたスナップショットを前記スナップ記憶手段に格納した後、自己の装置の電源をオフとする休止手段と、前記休止状態からの復帰を指示する指示信号に応じて自己の装置の電源をオンとし、前記スナップ記憶手段に記憶されたスナップショットのうち、前記自己の装置の起動に必要なプログラムにかかる実行単位のスナップショットから優先的に前記主記憶手段に復元する復元手段と、して機能させることを特徴とする。
また、請求項16にかかる発明は、請求項15に記載のプログラムが記録されていることを特徴とする。
本発明によれば、スナップ記憶手段に記憶されたスナップショットのうち、自己の装置の起動に必要なプログラムにかかる実行単位のスナップショットから優先的に主記憶手段に復元することができるため、スナップショットからの起動をより高速に行うことができる。
以下に添付図面を参照して、本発明にかかる情報処理装置、情報処理装置の起動制御方法、プログラム及び記録媒体の最良な実施の形態を詳細に説明する。なお、以下の実施形態では、本発明を画像処理装置に適用した例について説明するが、これに限定されるものではなく、PC(Personal Computer)や携帯端末等の他の情報機器にも適用することが可能である。
[第1の実施形態]
図1は、本実施形態にかかる画像処理装置100の構成を示したブロック図である。図1に示したように、画像処理装置100は、CPU(Central Processing Unit)10と、ROM(Read Only Memory)11と、RAM(Random Access Memory)12と、第1不揮発性メモリ13と、第2不揮発性メモリ14と、TPM(Trusted Platform Module)15と、エンジン制御部16と、エンジン17と、操作部18と、表示部19とを備えている。
CPU10は、ROM11及び第1不揮発性メモリ13に記憶された所定のプログラムとの協働により、画像処理装置100の各部を統括的に制御する。
具体的に、CPU10は、画像処理装置100のコールドスタート時に、第1不揮発性メモリ13に格納されたブートコードを実行することで画像処理装置100の各部の初期化を行う。また、CPU10は、ブートコードの実行後、第1不揮発性メモリ13に格納された各種のプログラムをRAM12にコピーし実行することで、当該プログラムとの協働により画像処理装置100の動作にかかる各種の機能を実現する。
また、CPU10は、操作部18等を介して画像処理装置100をスリープモードに移行させる旨の指示を受け付けると、RAM12の状態をプロセス及びアプリケーション単位でイメージ化したスナップショットを夫々取得し、第2不揮発性メモリ14に格納した後、画像処理装置100をスリープモードへと移行させる。
ここで「スリープモード」とは、画像処理装置100の各部への電力供給を停止又は抑制することで画像処理装置100の消費電力を低下させることを意味する。このとき、画像処理装置100は停止又は休止状態となるため再度起動処理を行う必要があるが、スリープモード移行時に取得したスナップショットをRAM12に戻すことで、このスリープモード移行直前の動作状態に復元することが可能である。なお、スナップショットの格納にかかる動作については後述する。
また、「プロセス」とは、基本ソフトウェアにかかる各種プログラム実行時の実行単位を意味しており、プログラム実行にかかる実行コードやプロセッサ状態(コンテキスト)、物理メモリのアドレッシング等の情報が含まれているものとする。また「アプリケーション」とは、基本ソフトウェア以外の特定の用途に特化した各種プログラム実行時の実行単位を意味し、例えば、プリンタの制御に特化したプリンタアプリや、スキャナの制御に特化したスキャナアプリ等が挙げられる。
また、CPU10は、操作部18等を介して画像処理装置100をスリープモードから復帰する旨の指示を受け付けると、各部への電力供給を開始した後、第2不揮発性メモリ14に格納されたスナップショットのうち、画像処理装置100の起動に必要なプログラムにかかるプロセス及びアプリケーションのスナップショットから優先的に読み出し、スリープモード移行前のRAM12上での従前の位置に展開し直すことで、スリープモード移行時のメモリ状態を復元する。なお、スナップショットの読み出しにかかる動作については後述する。
ここで「起動に必要なプログラム」とは、例えば、基本ソフトウェア等であって、画像処理装置100が有する機能のうち、画像処理装置100の起動時において正常に動作することが要求された機能の実現にかかるプログラムである。なお、任意の機能を実現するプログラムを起動に必要と設定することが可能であるものとするが、ユーザインターフェースの提供や外部装置との入出力に関係する機能を実現するプログラムとすることが好ましい。また、本実施形態では、画像処理装置100の起動に必要なプログラムが、基本プログラム132に含まれるものとして説明を進めるが、起動に必要なプログラムか否かを定義した情報を第1不揮発性メモリ13に予め格納しておき、この情報に基づいて起動に必要なプログラムか否かを判定する態様としてもよい。
また、TPM15の後述する記憶部151(起動時検証領域1511)には、工場出荷時等においてCPU10により算出された、第1不揮発性メモリ13に記憶された各プログラムについてのハッシュ値(検証用ハッシュ値)が予め格納されている。CPU10は、画像処理装置100のコールドスタート時において、第1不揮発性メモリ13に記憶された各プログラムのハッシュ値(被検証用ハッシュ値)を算出し、TPM15の起動時検証領域1511に予め保持しておいた各プログラムについての検証用ハッシュ値と比較することで、当該各プログラムの完全性を検証する。
また、CPU10は、画像処理装置100のスリープモードへの移行時において、RAM12に展開されたプロセス及びアプリケーション毎にハッシュ値(検証用ハッシュ値)を夫々算出し、当該ハッシュ値に対応するプロセス又はアプリケーションを一意に識別することが可能な識別情報と関連付けてTPM15の後述する記憶部151(復帰時検証領域1512)に格納する。そして、CPU10は、スリープモードからの復帰時において、第2不揮発性メモリ14からRAM12に展開したスナップショットのハッシュ値(被検証用ハッシュ値)を夫々算出し、TPM15の復帰時検証領域1512に保持した各スナップショットの識別情報に対応する検証用ハッシュ値との比較を夫々行うことで、各スナップショットの完全性を検証する。
ここで、プロセス又はアプリケーションを一意に識別することが可能な識別情報は、特に問わないものとするが、例えば、第2不揮発性メモリ14に格納したスナップショットの格納アドレス(先頭アドレス)や、RAM12上での展開先アドレス等を用いることができる。
ROM11は、読み出し専用の記憶装置であって、後述するコールドスタート処理、スリープ移行処理、スリープ復帰処理等にかかる種々のプログラムをCPU10が読み出し可能に記憶する。
RAM12は、DRAM(Dynamic RAM)やSDRAM(Synchronous DRAM)等の揮発性メモリであって、CPU10のワークエリア、即ち、画像処理装置100の主記憶装置として機能する。
第1不揮発性メモリ13は、不揮発性メモリであって、画像処理装置100の起動にかかるブートコード131を記憶するとともに、基本プログラム132及び応用プログラム133を所定の圧縮形式で圧縮した状態で記憶している。ここで、基本プログラム132は、基本ソフトウェア等の画像処理装置100の起動に必要なプログラム群を含み、応用プログラム133は、画像処理装置100の起動に不必要な、その他のプログラム群(応用ソフトウェア)を含むものとする。なお、第1不揮発性メモリ13は、NAND型フラッシュメモリと比較し、より信頼度の高いNOR型フラッシュメモリ等の不揮発性メモリを用いることが好ましい。
本実施形態では、画像処理装置100が実行するプログラムを基本ソフトウェアと応用ソフトウェアとに大別する態様としたが、これに限らず、より詳細な単位でプログラムを細分化する態様としてもよい。また、基本プログラム132、応用プログラム133の圧縮形式は特に問わないものとするが、例えば、zip形式やcab(cabinet)形式等の汎用的な圧縮形式を用いることとしてもよい。
また、本実施形態では、完全性検証の精度をより高くするため、CPU10は、第1不揮発性メモリ13に格納された基本プログラム132及び応用プログラム133の夫々について完全性を検証するための被検証用ハッシュ値を算出するものとするが、これに限らず、第1不揮発性メモリ13の各プログラムに被検証ハッシュ値を予め付帯させておく態様としてもよい。
第2不揮発性メモリ14は、NAND型フラッシュメモリやHDD(Hard Disk Drive)等の不揮発性メモリであって、画像処理装置100のスリープモードへの移行時において、CPU10から転送されるRAM12のスナップショットを記憶する。
TPM15は、不揮発性の記憶部151を備え、CPU10の制御の下、当該CPU10により算出された完全性検証の為のハッシュ値を記憶する。
図2は、TPM15が備える記憶部151の構成を模式的に示した図である。同図に示したように、記憶部151は、起動時検証領域1511と復帰時検証領域1512とを有している。ここで、起動時検証領域1511は、コールドスタート時にCPU10により生成された各プログラムについての被検証用ハッシュ値と比較するための検証用ハッシュ値を記憶している領域である。また、復帰時検証領域1512は、CPU10により生成された各プロセス及びアプリケーションについての検証用ハッシュ値と、当該ハッシュ値に対応するプロセス又はアプリケーションの識別情報とを関連付けて記憶する領域である。
図1に戻り、エンジン制御部16は、画像処理用に特化したASIC(Application Specific Integrated Circuit)やCPU等であって、CPU10の制御の下、エンジン17の動作を制御する。エンジン17は、スキャナ装置やプリンタ装置等であって、エンジン制御部16の制御の下、各種の動作を行う。
操作部18は、各種入力キー等を備え、ユーザから操作入力された情報を入力信号として受け付け、CPU10に出力する。
表示部19は、LCD(Liquid Crystal Display)等により構成され、CPU10からの表示信号に基づいて各種情報を表示する。なお、表示部19は、操作部18と一体的にタッチパネルを構成する態様としてもよい。
以下、画像処理装置100の動作について説明する。まず、画像処理装置100のコールドスタート時の動作について説明する。
図3は、画像処理装置100のコールドスタート時において、CPU10により実行されるコールドスタート処理の手順を示したフローチャートである。まず前処理として図示しない主電源のオンに伴い画像処理装置100の各部に電力が供給されると(ステップS11)、CPU10は、第1不揮発性メモリ13に記憶されたブートコード131を実行し、画像処理装置100の各部を初期化する(ステップS12)。
続いて、CPU10は、第1不揮発性メモリ13に記憶された基本プログラム132及び応用プログラム133を順次読み出し、RAM12の所定の領域に夫々コピーする(ステップS13、S14)。次いで、CPU10は、RAM12にコピーした基本プログラム132、応用プログラム133を、当該RAM12上の所定の領域に順次伸張する(ステップS15、S16)。
次に、CPU10は、RAM12上に伸張した基本プログラム132及び応用プログラム133に対して起動時検証処理を実行する(ステップS17)。以下、図4を参照して、ステップS17の起動時検証処理を説明する。
図4は、起動時検証処理の手順を示したフローチャートである。まず、CPU10は、ステップS15、S16の処理で伸張した基本プログラム132及び応用プログラム133のハッシュ値を夫々算出すると(ステップS171)、被検証用ハッシュ値としてRAM12に格納する(ステップS172)。
続いて、CPU10は、TPM15の起動時検証領域1511に保持されている基本プログラム132及び応用プログラム133の検証用ハッシュ値と、RAM12に格納した被検証用ハッシュ値とを夫々比較する(ステップS173)。ステップS175の比較により、基本プログラム132及び応用プログラム133の何れか一方又は両方のハッシュ値が異なると判定した場合(ステップS174;No)、CPU10は、完全性検証にエラーが発生したと判定し(ステップS175)、図3のステップS18の処理に移行する。
また、ステップS173の比較により、基本プログラム132及び応用プログラム133の両ハッシュ値が一致する判定した場合(ステップS174;Yes)、CPU10は、完全性検証が正常に終了したと判定し(ステップS176)、図3のステップS18の処理に移行する。
このように、画像処理装置100のコールドスタート時において、CPU10により、基本プログラム132及び応用プログラム133の完全性を検証することで、データの破損したプログラムや不正なプログラムが実行されてしまうことを未然に防ぐことが可能となるため、画像処理装置100の安全性をより向上させることができる。
図3に戻り、CPU10は、ステップS17の起動時検証処理の結果に基づき、当該起動時検証処理が正常に終了したか否かを判定する(ステップS18)。ここで、起動時検証処理にエラーが発生したと判定した場合(ステップS18;No)CPU10は、表示部19にエラーが発生した旨の情報を表示した後(ステップS19)、本処理を終了する。
一方、ステップS18において、起動時検証処理が成功したと判定した場合(ステップS18;Yes)、CPU10は、RAM12上に伸張した基本プログラム132及び応用プログラム133を実行し(ステップS20)、本処理を終了する。
図5は、コールドスタート処理時における第1不揮発性メモリ13とRAM12との状態を模式的に示した図である。CPU10は、第1不揮発性メモリ13に記憶されたブートコード131を実行すると(図中(1)参照)、ステップS13、S14の処理において、当該第1不揮発性メモリ13に記憶された基本プログラム132と応用プログラム133とをRAM12にコピーする(図中(2)、(3)参照)。
続いて、CPU10は、ステップS15、S16の処理でRAM12にコピーした基本プログラム132、応用プログラム133を伸張し、RAM12上に展開する(図中(4)、(5)参照)。そして、CPU10は、各プログラムのハッシュ値を算出すると、TPM15の起動時検証領域1511に格納されているハッシュ値に基づいて、ステップS17の起動時検証処理を実行する(図中(6)参照)。
起動時検証処理の後、CPU10により基本プログラム132及び応用プログラム133が実行されると、各種のアプリケーションやプロセス実行用の領域がRAM12内に動的に確保される。図6は、基本プログラム132及び応用プログラム133の実行後、画像処理装置100の動作時におけるRAM12の状態の一例を模式的に示した図である。同図に示したように、CPU10により複数のアプリケーションやプロセスの実行に必要なデータがRAM12に展開されることになる。
次に、図7を参照して、画像処理装置100がスリープモードに移行する際の動作について説明する。なお、スリープモード移行の指示は、操作部18を介してユーザから明示的に指示される態様としてもよいし、画像処理装置100の無動作状態が所定時間続いた際にCPU10が自発的に移行させる態様としてもよい。
図7は、スリープモード移行時において、CPU10により実行されるスリープ移行処理の手順を示したフローチャートである。まず、CPU10は、操作部18等を介してスリープモードへの移行を指示する要求を受け付けると(ステップS31)、RAM12に展開されたプロセス及びアプリケーションのうち一つを処理対象として選択する(ステップS32)。ここで、処理対象のプロセス又はアプリケーションは、RAM12での格納順序、即ち格納アドレスの昇順に順次選択されるものとする。
次いで、CPU10は、処理対象のプロセス又はアプリケーションのRAM12上での格納位置を示す先頭アドレスを、後述するスリープモード復帰処理時の展開先アドレスとして取得する(ステップS33)。次に、CPU10は、処理対象のプロセス又はアプリケーションが、画像処理装置100の起動に必要なプログラムにかかるものか否かを判定する(ステップS34)。なお、起動に必要なものか否かの判定は、そのプロセス又はアプリケーションが、プログラム132にかかるものか否かにより行うものとする。
ステップS34において、処理対象のプロセス又はアプリケーションが画像処理装置100の起動に必要と判定した場合(ステップS34;Yes)、CPU10は、処理対象のプロセス又はアプリケーションをイメージ化したスナップショットをRAM12から取得し、第2不揮発性メモリ14の第1格納領域141に格納する(ステップS35)。
一方、ステップS33において処理対象のプロセス又はアプリケーションが、画像処理装置100の起動に必要ではないと判定した場合(ステップS33;No)、CPU10は、処理対象のプロセス又はアプリケーションをイメージ化したスナップショットをRAM12から取得し、第2不揮発性メモリ14の第2格納領域142に格納する(ステップS36)。
なお、上述した第1格納領域141及び第2格納領域142は、起動に必要なプログラムにかかるプロセス及びアプリケーションのスナップショットか否かを区分けするため、CPU10により第2不揮発性メモリ14上に固定的又は動的に確保された記憶領域である。
続いて、CPU10は、ステップS33で取得した展開先アドレスを、ステップS35又はS36で格納したスナップショットと関連付けて、第2不揮発性メモリ14に格納する(ステップS37)。なお、本実施形態では、展開先アドレスを第2不揮発性メモリ14に格納する態様としたが、これに限らず、記憶部151に格納する態様としてもよい。
ここで、図8、9を参照して、ステップS35、S36で、スナップショットが第2不揮発性メモリ14に格納される際の動作について説明する。
図8は、ステップS35及びステップS36でのスナップショットの格納にかかる動作を模式的に示した図である。同図において、図中左図がRAM12のメモリ状態を示しており、右図が第2不揮発性メモリ14のメモリ状態を示している。また、ハッチングを施したプロセス1〜4及びアプリケーション1は画像処理装置100の起動に必要なプログラムにかかるプロセス及びアプリケーションを示しており、プロセス5、6及びアプリケーション2、3、n(nは1、2、3以外の任意の整数)は画像処理装置100の起動に不必要なプログラムにかかるプロセス及びアプリケーションを示している。
上記の条件のとき、CPU10は、プロセス1〜4及びアプリケーション1のスナップショットを第2不揮発性メモリ14の第1格納領域141に格納する(実線矢印参照)。また、CPU10は、プロセス5、6及びアプリケーション2、3、nのスナップショットを第2不揮発性メモリ14の第2格納領域142に格納する(破線矢印参照)。
なお、起動に必須なデータか否かを示す情報を各スナップショットに関連付けて記憶するような場合には、この関連付けられた情報に基づいて、起動に必須なデータか否かを判定することができる。そのため、このような態様の場合には、第1格納領域141、第2格納領域142といった領域分けを行わないこととしてもよい。
図9は、スナップショットが格納された第2不揮発性メモリ14の状態を模式的に示した図である。同図において、ページ1からページm(mは整数)は、第2不揮発性メモリ14の記憶単位となる各ページ領域を示している。なお、ここではページ1〜6を第1格納領域141としており、ページ7〜mを第2格納領域142としているが、この態様に限らないものとする。
ここで、CPU10は、各スナップショットを第2不揮発性メモリ14に格納する際、ページ番号の昇順にスナップショットを順次格納し、格納後のページに余り領域が生じた場合には、この余り領域に次のスナップショットが収まるときのみ、次のスナップショットを同一のページ内に格納する。
図9の例では、プロセス1のスナップショットが3ページ分にまたがるサイズとなっているため、第2不揮発性メモリ14のページ1〜3に格納されているが、ページ3の余り領域にプロセス2のスナップショットが収まらないため、余り領域は空の状態となっている。そして、続くページ4にプロセス2のスナップショットが格納された後、その余り領域にプロセス3のスナップショットが収まるため、ページ4にプロセス3が格納されている。また、アプリケーション1のスナップショットと、プロセス4のスナップショットとは同一ページ内に収まるサイズではないため、夫々ページ5、6に個別に格納されている。なお、第2格納領域142についても、第1格納領域141と同様の制御によりスナップショットが順次格納される。
このように、第2不揮発性メモリ14の記憶の単位となるページに基づいて、スナップショットを順次格納することで、第2不揮発性メモリ14から各スナップショットの読み出しをより効率的且つ高速に行うことができるため、スリープモードからの復帰をより高速に行うことが可能となる。
なお、第2不揮発性メモリ14への展開先アドレスの格納方法は種々の形態が可能である。例えば、スナップショットの格納位置の前段(或いは後段)に、このスナップショットの展開先アドレスを格納することで、対となるスナップショットと展開先アドレスとを関連付ける態様としてもよい。
また、図10に示したように、展開先アドレスと、この展開先アドレスと対応するスナップショットの第2不揮発性メモリ14での格納アドレスと、当該スナップショットのサイズとを対応付けたテーブルを生成し、第2不揮発性メモリ14の所定の領域に格納する態様としてもよい。この場合、図10に示したように、各プロセス及びアプリケーションの単位でテーブルを生成する態様としてもよいが、RAM12での展開先と、第2不揮発性メモリ14での格納先とが連続したアドレス空間である場合には、複数のプロセスやアプリケーションを一纏めにした単位でテーブルを生成する態様としてもよい。
図7に戻り、CPU10は、処理対象のプロセス又はアプリケーションについてのハッシュ値を算出すると(ステップS38)、後述するスリープモード復帰処理時の検証用ハッシュ値として処理対象のプロセス又はアプリケーションの識別情報と関連付けてTPM15の記憶部151(復帰時検証領域1512)に格納する(ステップS39)。
次いで、CPU10は、RAM12に展開されたプロセス及びアプリケーションの全てを処理対象としたか否かを判定する(ステップS40)。ここで、CPU10は、未処理のプロセス又はアプリケーションが存在すると判定した場合(ステップS40;No)、ステップS32へと再び戻り未処理のプロセス又はアプリケーションを処理対象とする。
一方、ステップS40において、現在稼働中のプロセス、アプリケーションの全てを処理対象としたと判定した場合には(ステップS40;Yes)、CPU10は、図示しない電源供給ユニットを制御することで各部への電力供給を停止又は抑制し(ステップS41)、本処理を終了する。
図11は、スリープモード移行後の画像処理装置100への電力供給状態を模式的に示した図である。同図において、ハッチングを施した機能部は、電力供給の停止又は抑制が行われた機能を意味している。ここで、RAM12への電力供給が停止又は抑制されるため、RAM12上に展開されたデータは消去されることになる。なお、電源供給を停止又は抑制する機能部の個数や種別は、図11の例に限らないものとする。
次に、画像処理装置100がスリープモードから復帰する際の動作について説明する。図12は、スリープモードからの復帰時にCPU10により実行されるスリープモード復帰処理の手順を示したフローチャートである。
まず、CPU10は、操作部18や図示しない復帰指示用の電源スイッチ等を介して、スリープ状態からの復帰を指示する信号を受け付けると、図示しない電源供給ユニットを制御することで、画像処理装置100の各部へ電力の供給を開始し(ステップS51)、第1不揮発性メモリ13に記憶されたブートコード131を実行することで、画像処理装置100の各部を初期化する(ステップS52)。
次いで、CPU10は、第2不揮発性メモリ14の第1格納領域141からページ番号の昇順で、スナップショットの一つを読み出すと(ステップS53)、このスナップショットを当該スナップショットに関連付けられた展開先アドレスが示すRAM12上の領域に展開する(ステップS54)。ここで、RAM12に展開されたスナップショット、即ち、一のプロセス又はアプリケーションは、スリープモード移行直前のRAM12での格納位置と同一であるため、スリープモード移行直前の状態が復元されたことになる。
続いて、CPU10は、ステップS54でRAM12上に展開したプロセス又はアプリケーションの完全性を検証する復帰時検証処理を実行する(ステップS55)。以下、図13を参照して、ステップS55の復帰時検証処理について説明する。
図13は、復帰時検証処理の手順を示したフローチャートである。まず、CPU10は、今回のステップS54の処理でRAM12に展開したプロセス又はアプリケーションのハッシュ値を算出する(ステップS551)。
次いで、CPU10は、ステップS54で展開したプロセス又はアプリケーションの識別情報に基づいて、当該識別情報に関連付けられた検証用ハッシュ値を、TPM15の記憶部151(復帰時検証領域1512)から読み出すと(ステップS552)、ステップS551で算出したハッシュ値との比較を行う(ステップS553)。ここで、両ハッシュ値が異なると判定した場合(ステップS554;No)、CPU10は、完全性検証にエラーが発生したと判定し(ステップS555)、図12のステップS56の処理に移行する。
一方、両ハッシュ値が一致すると判定した場合(ステップS554;Yes)、CPU10は、完全性検証が正常に終了したと判定し(ステップS556)、図12のステップS56の処理に移行する。
このように、画像処理装置100のスリープモードからの復帰時において、CPU10により、各スナップショットの完全性を検証することで、データに破損が生じたスナップショットや不正なスナップショットが実行されてしまうことを未然に防ぐことが可能となるため、画像処理装置100の安全性をより向上させることができる。
図12に戻り、CPU10は、ステップS55の復帰時検証処理の結果に基づき、当該復帰時検証処理が正常に終了したか否かを判定する(ステップS56)。ここで、復帰時検証処理にエラーが発生したと判定した場合(ステップS56;No)CPU10は、表示部19にエラーが発生した旨の情報を表示した後(ステップS57)、コールドスタート処理を実行することで画像処理装置100を再起動し(ステップS58)、本処理を終了する。なお、ステップS58のコールドスタート処理は、上述した図3のコールドスタート処理と同様であるため説明は省略する。
このように、画像処理装置100の起動に必要なプログラムにかかるプロセス又はアプリケーションの完全性にエラーが発生した場合には、再起動を行うことで画像処理装置100を正常な状態とすることができる。なお、本処理では、ステップS56においてエラー発生と判定した場合には、再起動を行う態様としたが、これに限らず、例えば、ステップS57で処理を終了し、ユーザが手動で再起動を行う態様としてもよい。
一方、ステップS56において、復帰時検証処理が正常に終了したと判定した場合(ステップS56;Yes)、CPU10は、第2不揮発性メモリ14の第1格納領域141に格納された全てのスナップショットを読み出したか否かを判定する(ステップS59)。ここで、CPU10が未処理のスナップショットが存在すると判定した場合には(ステップS59;No)、ステップS53の処理へと再び戻り未処理のスナップショットを一つ読み出す。
また、ステップS59において、CPU10が、全てのスナップショットを読み出したと判定した場合には(ステップS59;Yes)、続くステップS60の処理へと移行する。
ここまでの処理で、画像処理装置100の起動に必要なプログラムにかかる全てのプロセス及びアプリケーションが、スリープモード移行直前の状態に復元され(図8参照)、画像処理装置100は起動完了状態となる。即ち、第2不揮発性メモリ14に記憶されたプロセス及びアプリケーション単位のスナップショットにおいて、画像処理装置100の起動に必要なプログラムにかかるプロセス及びアプリケーションのスナップショットから優先的にRAM12に復元される。
例えば、ユーザインターフェースの提供や外部装置との入出力に関係する機能を実現するプログラムを、画像処理装置100の起動に必要なプログラムとしていた場合、ユーザは、この時点で操作部18を操作することが可能となり、また、外部装置との入出力を行うことが可能となる。このように、ユーザや他の装置との遣り取りにかかる機能を優先的に起動することで、指示情報等を受け付ける間に残りのスナップショットの復元を進めることが可能となるため、ユーザの利便性を向上させることができる。
続いて、CPU10は、第2不揮発性メモリ14の第2格納領域142から一のプロセス又はアプリに対応するスナップショットをページ番号の昇順で一つ読み出すと(ステップS60)、このスナップショットを当該スナップショットに関連付けられた展開先アドレスが示すRAM12上の領域に展開する(ステップS61)。
次いで、CPU10は、第2不揮発性メモリ14の第2格納領域142に格納された全てのスナップショットを読み出したか否かを判定する(ステップS62)。ここで、CPU10が、第2格納領域142に読み出していないスナップショットが存在すると判定した場合には(ステップS62;No)、ステップS60へと再び戻り、読み出しが完了していないスナップショットを一つ読み出す。
また、ステップS62において、第2格納領域142に格納された全てのスナップショットを読み出したと判定した場合(ステップS62;Yes)、CPU10は、ステップS61で展開された各スナップショットについて、復帰時検証処理を実行する(ステップS63)。なお、ステップS63の復帰時検証処理は、上述したステップS55の復帰時検証処理をステップS61で展開した各プロセス及びアプリケーションに対して連続的に実行するのみであるため、説明を省略する。
続いて、CPU10は、ステップS61で展開した全てのプロセス及びアプリケーションについて、ステップS63の復帰時検証処理が正常に終了したか否かを判定する(ステップS64)。ここで、CPU10は、全てのプロセス及びアプリケーションについての復帰時検証処理が正常に終了したと判定すると(ステップS64;Yes)、本処理を終了する。
一方、ステップS64において、何れかのプロセス及び/又はアプリケーションについての復帰時検証処理にエラーが生じたと判定した場合(ステップS64;No)、CPU10は、エラーが発生したプロセス及び/又はアプリケーションを示すための情報を表示部19に表示し、エラーが発生したプロセス及び/又はアプリケーションを停止した後(ステップS65)、本処理を終了する。
図14は、スリープモード復帰処理時における第1不揮発性メモリ13と、第2不揮発性メモリ14と、RAM12との状態を模式的に示した図である。まず、CPU10は、第1不揮発性メモリ13に記憶されたブートコード131を実行すると(図中(1)参照)、ステップS53、S54の処理において、第2不揮発性メモリ14の第1格納領域141に記憶されたスナップショットをRAM12に個別的に復元する(図中(2)参照)。
続いて、CPU10は、ステップS55において、ステップS53、S54の処理でRAM12に復元したスナップショット(プロセス又はアプリケーション)に対し、復帰時検証処理を個別的に実行する(図中(3)参照)。
CPU10は、ステップS56→S59の判定処理において、ステップS55の復帰時検証処理が正常に終了したことを確認すると、続くステップS60〜S62で、第2不揮発性メモリ14の第2格納領域142に記憶された全てのスナップショットをRAM12に復元する(図中(4)参照)。
続いて、CPU10は、ステップS63において、ステップS60〜S62の処理でRAM12に復元した全てのスナップショット(プロセス又はアプリケーション)に対し、ステップS62の復帰時検証処理を連続的に実行する(図中(5)参照)。そしてCPU10は、ステップS63の判定処理において、復帰時検証処理でエラーが発生したプロセス及び/又はアプリケーションの実行を停止する。
画像処理装置100の起動に不必要なプロセス又はアプリケーションの完全性にエラーが発生した場合であっても、使用するアプリケーションによっては画像処理装置100の動作に支障が生じない場合がある。そのため、本処理では、画像処理装置100の起動に不必要なプロセス又はアプリケーションの完全性にエラーが発生した場合であっても、再起動を行わず画像処理装置100の動作を継続する態様としている。なお、画像処理装置100の起動に必要なプログラムにかかるプロセス又はアプリケーションの場合と同様に、再起動(コールドスタート処理)を行う態様としてもよい。
また、本処理では、第2不揮発性メモリ14の第2格納領域142に格納された全てのスナップショット、即ち、画像処理装置100の起動に不必要なプロセス及びアプリケーションについては、RAM12に全て展開した後、完全性検証を連続的に行うこととしたが、完全性検証を行うタイミングはこれに限らないものとする。例えば、第1格納領域141に格納されたスナップショット、即ち、画像処理装置100の起動に必須のプロセス、アプリケーションと同様、スナップショットの展開毎に完全性検証を行う態様としてもよい。
一般的に完全性検証に要する時間は検証対象のデータが増えるほど長くなる傾向にある。そこで、画像処理装置100の起動に必須のプロセス及びアプリケーションのスナップショットをRAM12に展開し起動完了状態となった後に、ユーザからの操作やネットワークやUSB等の各種I/Fからの指示により、画像処理装置100の起動に不必須のプロセス、アプリケーションの完全性検証を行う態様としてもよい。この場合、特定のプロセス及び/又はアプリケーションが選択された場合には、この選択されたプロセス及び/又はアプリケーションについてのみ完全性の検証を行う態様としてもよい。
また、本処理では、画像処理装置100の起動に必要なプログラムにかかるプロセス、アプリケーションを復元した後、画像処理装置100の起動に不必要なプログラムにかかるプロセス、アプリケーションを復元する処理を行う態様としたが、これに限らないものとする。例えば、画像処理装置100の起動に不必要なプログラムにかかるプロセス、アプリケーションについては、画像処理装置100の起動に必要なプログラムにかかるプロセス、アプリケーションを復元した後、操作部18を介して起動が指示された場合に該当するプロセス又はアプリケーションの復元を個別に行う態様としてもよい。
以上のように、本実施形態によれば、第2不揮発性メモリ14に記憶されたスナップショットのうち、自己の装置の起動に必要なプログラムにかかる実行単位(プロセス及び/又はアプリケーション)のスナップショットから優先的にRAM12に復元することができるため、スナップショットからの起動をより高速に行うことができる。
なお、第2不揮発性メモリ14をNAND型フラッシュメモリとした場合、第2不揮発性メモリ14の各ページはデータ格納領域と、誤り訂正符号(以下、ECCという)格納用の冗長領域とから構成されるため、この構成に応じた制御が必要となる。以下、第1の実施形態の変形例1として、第2不揮発性メモリ14をNAND型フラッシュメモリとした場合の動作について説明する。なお、上述した第1の実施形態と同様の構成については、同一の符号を付与しその説明を省略する。
[変形例]
図15は、第1の実施形態の変形例にかかる画像処理装置200の構成を示した図である。同図に示したように、画像処理装置200は、CPU20と、ROM11、RAM12と、第1不揮発性メモリ13と、第2不揮発性メモリ21と、TPM15と、エンジン制御部16と、エンジン17と、操作部18と、表示部19とを備えている。
第2不揮発性メモリ21は、上述した第2不揮発性メモリ14に対応するものであって、NANDフラッシュメモリから構成されている。NANDフラッシュメモリを用いた場合、第2不揮発性メモリ21の記憶単位となる各ページ領域は、図16に示したようにデータ格納領域211と冗長領域212とから構成される。
CPU20は、CPU10と同様に画像処理装置200のスリープモード移行時に、RAM12に展開されているプロセス及び/又はアプリケーションを、画像処理装置200の起動に必須か否かに応じて、第2不揮発性メモリ21のデータ格納領域211と冗長領域212とに区分けして格納する。このとき、CPU20は、データ格納領域211にスナップショットを格納するとともに、このスナップショットについて算出した誤り訂正符号(以下、ECCという)を冗長領域212に格納する。
なお、スナップショットが複数のページにわたるような場合、CPU20は、ページ毎にECCを算出し、対応するページの冗長領域212に夫々格納する。また、同一ページに複数のスナップショットを格納する場合、CPU20は、これら複数のスナップショット分のECCを纏めて算出する態様としてもよいし、個別に算出する態様としてもよい。
第2不揮発性メモリ21に接続される図示しないコントローラに、例えばDMAコントローラが搭載されている場合、このDMAコントローラを用いてスナップショットがRAM12に転送される。ここで、DMAコントローラがNANDフラッシュメモリ専用である場合には、冗長領域212に格納されたECCがRAM12に転送されることはないが、汎用のDMAコントローラや汎用の制御装置により転送を行う場合、データ格納領域211とともに冗長領域212を読み出さないと正常な動作が行えないため、冗長領域212に格納されたECCもRAM12に転送することになる。
しかしながら、スナップショットとそのECCをそのままRAM12に転送していくと、第2不揮発性メモリ21上に格納されていたとおりの配置でRAM12に転送されてしまうため、スナップショット→ECC→スナップショット→ECCという順番となり、RAM12に展開されたスナップショット間に間隔が生じる。この場合、スリープモード移行前のデータ配置と同じとならないため、正常に復帰することができない。なお、スナップショットは元々がプログラムであるため、そのデータ配置の間隔を加味してコンパイルを行うことで対応する方策も考えられるが、RAM12のプロセス、アプリケーションの状態は一様でないため、プログラムの配置アドレスを事前に制御することは不可能である。
そこで、CPU20は、第2不揮発性メモリ21からスナップショットとECCとをページ毎に読み出すと、図17に示したように、このスナップショットの展開先アドレスに基づいて当該スナップショットとECCとをRAM12に展開した後、RAM12に予め確保したECC専用の格納領域(ECC格納領域121)にECCのみを移動する。なお、スナップショットが複数のページにわたって格納されている場合には、先に転送されたスナップショットの最終アドレスに連続するアドレス位置から、次ぎのスナップショットとECCとの組を格納した後、このECCをECC格納領域121に移動する。なお、ECCは連続的にECC格納領域121に格納されるものとする。
CPU20は、上記の動作を繰り返すことで、図16に示した第2不揮発性メモリ21の各スナップショット及びECCを、図17に示したように、スナップショット1〜m+nと、ECC1〜m+nとを夫々分離した状態でRAM12に格納する(m、nは整数)。なお、スナップショット1〜m+nまでの誤り訂正を行う場合には、ECC1の開始アドレスと何個目のスナップショットか分かっていれば、容易にそのスナップショットの誤り訂正を行うことが可能となる。
このとき、画像処理装置200に誤り訂正符号の復号回路が搭載されていないのであれば、CPU20は、第2不揮発性メモリ21から誤り訂正用のシンドローム生成を行いながらRAM12に転送し、このシンドロームとECCとに基づいてRAM12に格納したスナップショットの誤りの検出及び訂正を行う。なお、誤りの検出及び訂正は、ECC格納領域121にECCが移動された後に行うものとするが、そのタイミングは特に問わないものとする。例えば、スナップショットの格納毎としてもよいし、画像処理装置200の起動に必須又は不必須な全てのスナップショットを格納したタイミングで、行う態様としてもよい。
また、画像処理装置200が、誤り訂正符号の復号回路を搭載している場合には、この復号回路により、第2不揮発性メモリ21に先に格納したスナップショットの誤り訂正が実施された後に、次のスナップショットの第2不揮発性メモリ21への転送が行われるものとする。
なお、スナップショット1〜m+nの誤り訂正が完了した後には、ECC1〜m+nは不必要となるため、RAM12の一部をECC格納領域121として占有しておくのは無駄である。そこで、CPU20は、誤り訂正の終了を確認すると、ECCを削除することでECC格納領域121を他のデータを格納可能な使用可能状態とする。なお、ECCの削除は、スナップショット単位で行う態様としてもよいし、画像処理装置200の起動に必須又は不必須な全てのスナップショットの誤り訂正が終了した際に行う態様としてもよい。
[第2の実施形態]
第2の実施形態では、スナップショットの保持の仕方について他の態様を説明する。なお、上述した第1の実施形態と同様の構成については、同一の符号を付与しその説明を省略する。
図18は、第2の実施形態にかかる画像処理装置300のハードウェア構成を示したブロック図である。図18に示したように、画像処理装置300は、CPU30と、ROM11と、RAM12と、第1不揮発性メモリ13と、第2不揮発性メモリ14と、TPM15と、エンジン制御部16と、エンジン17と、操作部18とを備えている。
CPU30は、上述したCPU10と同様の機能を有するとともに、操作部18を介して画像処理装置100をスリープモードに移行させる旨の指示を受け付けると、RAM12に展開されたプロセス及びアプリケーション単位でイメージ化し、これらスナップショットをRAM12と同様の順序(状態)で第2不揮発性メモリ14に格納する。このとき、CPU30は、各スナップショットに対応するプロセス又はアプリケーションが起動に必要なプログラムにかかるものか否かを示した必要識別情報と、第2不揮発性メモリ14上でのスナップショットの格納アドレスと、スナップショットの展開先アドレスとを関連付けたテーブル(以下、復帰制御テーブルという)を生成し、第2不揮発性メモリ14の所定の領域に格納する。なお、本実施形態では、復帰制御テーブルを第2不揮発性メモリ14に格納する態様としたが、これに限らず、TPM15の記憶部151に格納する態様としてもよい。
図19は、復帰制御テーブルの一例を示した図である。同図に示したように、復帰制御テーブルには、スナップショットに対応するプロセス又はアプリケーションが起動に必要なプログラムにかかるものか否かを識別するための必要識別情報(必要/不必要)と、第2不揮発性メモリ14上でのスナップショットの格納アドレスと、スナップショットの展開先アドレスとが関連付けて登録されている。なお、復帰制御テーブルの各行は、スナップショットの各々に対応している。
また、CPU30は、操作部18等を介して画像処理装置100をスリープモードから復帰する旨の指示を受け付けると、復帰制御テーブルに基づいて第2不揮発性メモリ14から、画像処理装置100の起動に必須なプロセス及びアプリケーションのスナップショットを優先して読み出し、RAM12上の展開先アドレスに夫々格納することでスリープモード移行時のメモリ状態を復元する。
以下、図20を参照して、画像処理装置300がスリープモードに移行する際の動作について説明する。なお、スリープモード移行の指示は、操作部18を介してユーザから明示的に指示される態様としてもよいし、画像処理装置300の無動作状態が所定時間続いた際にCPU30が自発的に移行させる態様としてもよい。
図20は、CPU30により実行されるスリープモード移行処理の手順を示したフローチャートである。まず、CPU30は、スリープモードへの移行を指示する要求を受け付けると(ステップS71)、RAM12に展開されたプロセス及びアプリケーションのうち一つを処理対象とし(ステップS72)、この処理対象のプロセス又はアプリケーションが、画像処理装置300の起動に必要なプログラムにかかるものか否かを判定する(ステップS73)。なお、ステップS72において、処理対象となるプロセス又はアプリケーションは、RAM12での格納順序、即ち格納アドレスの昇順に順次選択されるものとする。
ステップS73において、処理対象のプロセス又はアプリケーションが画像処理装置300の起動に必須なものと判定した場合(ステップS73;Yes)、CPU30は、復帰管理テーブルの「必要識別情報」に、画像処理装置300の起動に必要である旨の情報を登録し(ステップS74)、ステップS76の処理に移行する。
一方、ステップS73において、処理対象のプロセス又はアプリケーションが画像処理装置300の起動に不必要と判定した場合(ステップS73;No)、CPU30は、復帰制御テーブルの「必須識別情報」に、画像処理装置300の起動に不必要である旨の情報を登録し(ステップS75)、ステップS76の処理に移行する。
続くステップS76において、CPU10は、RAM12上における処理対象のプロセス又はアプリケーションの先頭アドレスを、スリープモード復帰時における展開先アドレスとして復帰制御テーブルの「展開先アドレス」に登録する(ステップS76)。
次いで、CPU30は、処理対象のプロセス又はアプリケーションのイメージ化したスナップショットをRAM12から取得し、スナップショットとして第2不揮発性メモリ14に順次格納する(ステップS77)。そして、CPU30は、この格納先となった第2不揮発性メモリ14上のアドレス(先頭アドレス)を格納アドレスとして復帰制御テーブルの「格納アドレス」に登録する(ステップS78)。
続いて、CPU10は、処理対象のプロセス又はアプリケーションについてのハッシュ値(検証用ハッシュ値)を算出すると(ステップS79)、この検証用ハッシュ値を処理対象のプロセス又はアプリケーションの識別情報と関連付けて、TPM15の記憶部151(復帰時検証領域1512)に格納する(ステップS80)。
次いで、CPU30は、RAM12に展開されたプロセス及びアプリケーションの全ての処理対象としたか否かを判定し、未処理のプロセス又はアプリケーションが存在すると判定した場合には(ステップS81;No)、ステップS72へと再び戻り未処理のプロセス又はアプリケーションの一つを処理対象とする。
一方、ステップS81において、RAM12に展開されたプロセス及びアプリケーションの全てを処理対象にしたと判定した場合には(ステップS81;Yes)、CPU30は、図示しない電源供給ユニットを制御することで各部への電力供給を遮断し(ステップS82)、本処理を終了する。
図21は、上述した本実施形態のスリープモード移行処理を説明するための図である。ここで、図中左図はRAM12の状態を示しており、右図は第2不揮発性メモリ14の状態を模式的に示している。スリープモード移行処理(ステップS72〜S81)により、RAM12に展開された全てのプロセス、アプリケーションが処理されると、同図に示したようにRAM12と同様の順序で、第2不揮発性メモリ14にスナップショットが格納されることになる。
次に、画像処理装置300がスリープモードから復帰する際の動作について説明する。図22は、スリープモードから復帰時にCPU30により実行されるスリープモード復帰処理の手順を示したフローチャートである。
まず、CPU30は、操作部18や図示しない復帰指示用の電源スイッチ等を介して、スリープ状態からの復帰を指示する信号を受け付けると、図示しない電源供給ユニットを制御することで、画像処理装置300の各部へ電力の供給を開始し(ステップS91)、第1不揮発性メモリ13に記憶されたブートコード131を実行することで、画像処理装置300の各部を初期化する(ステップS92)。
次いで、CPU30は、復帰制御テーブルに含まれた必要識別情報のうち、起動に必要を示す情報が登録されたものを一つ選択すると(ステップS93)、この必要識別情報に関連付けられた格納アドレスに基づいて、第2不揮発性メモリ14からスナップショットを読み出す(ステップS94)。なお、ステップS93で選択する必要識別情報は、復帰制御テーブルの登録順に応じた順序で順次選択されることが好ましい。
続いて、CPU30は、ステップS94で読み出したスナップショットをRAM12に転送すると、必要識別情報に関連付けられた展開先アドレスに基づいて、RAM12上の展開先アドレスに対応する位置にスナップショットを展開する(ステップS95)。
CPU30は、ステップS95でRAM12上に展開したプロセス又はアプリの完全性を検証する復帰時検証処理を実行する(ステップS96)。なお、ステップS96の復帰時検証処理は、上述したステップS55の復帰時検証処理と同様であるため、説明は省略する。
次いで、CPU30は、ステップS96の復帰時検証処理が正常に終了したか否かを判定する。ここで、復帰時検証処理にエラーが発生したと判定した場合(ステップS97;No)、CPU30は、表示部19にエラーが発生した旨の情報を表示した後(ステップS98)、コールドスタート処理を実行することで画像処理装置100の再起動を行い(ステップS99)、本処理を終了する。なお、ステップS99のコールドスタート処理は、図3で説明したコールドスタート処理と同様であるため説明は省略する。
また、ステップS97において、ステップS96の復帰時検証処理が正常に終了したと判定した場合(ステップS97;Yes)、CPU30は、復帰制御テーブルに登録された起動に必要を示す全ての必要識別情報についてステップS93の処理を実行したか否かを判定する(ステップS100)。ここで、CPU30が未処理の必要識別情報が存在すると判定した場合には(ステップS100;No)、ステップS93の処理へと再び戻り未処理の必要識別情報を一つ選択する。
一方、ステップS100において、CPU30が、起動に必要を示す全ての必要識別情報についてステップS93の処理を実行したと判定した場合には(ステップS100;Yes)、続くステップS101の処理へと移行する。なお、ここまでの処理で、画像処理装置300の起動に必要なプログラムにかかる全てのプロセス及びアプリケーションが、スリープモード移行直前の状態に復元されたことになる(図21参照)。即ち、第2不揮発性メモリ14に記憶されたプロセス及びアプリケーション単位のスナップショットにおいて、画像処理装置100の起動に必要なプログラムにかかるプロセス及びアプリケーションのスナップショットから優先的にRAM12に復元される。
次いで、CPU30は、復帰制御テーブルに登録された必要識別情報のうち、起動に不必要を示す情報が登録されたものを一つ選択すると(ステップS101)、この必要識別情報に関連付けられた格納アドレスに基づいて、第2不揮発性メモリ14からスナップショットを読み出す(ステップS102)。
続いて、CPU30は、ステップS101で読み出したスナップショットをRAM12に転送すると、必須識別情報に関連付けられた展開先アドレスに基づいて、RAM12上の展開先アドレスに対応する位置にスナップショットを展開する(ステップS103)。
次に、CPU30は、復帰制御テーブルに登録された起動に不必要を示す全ての必要識別情報についてステップS101の処理を実行したか否かを判定する(ステップS104)。ここで、CPU30が未処理の必要識別情報が存在すると判定した場合には(ステップS104;No)、ステップS101の処理へと再び戻り未処理の必要識別情報を一つ選択する。
また、ステップS104において、起動に不必要を示す全ての必要識別情報についてステップS101の処理を実行したと判定した場合(ステップS104;Yes)、CPU30は、ステップS103で展開された各プロセス及びアプリケーションについて、復帰時検証処理を実行する(ステップS105)。なお、ステップS105の復帰時検証処理は、上述したステップS55の復帰時検証処理をステップS103で展開された各プロセス及びアプリケーションに対して連続的に実行するのみであるため、説明を省略する。
続いて、CPU30は、ステップS103で展開した全てのプロセス及びアプリケーションについて、ステップS105の復帰時検証処理が正常に終了したか否かを判定する(ステップS106)。ここで、CPU30は、全てのプロセス及びアプリケーションについての復帰時検証処理が正常に終了したと判定した場合には(ステップS106;Yes)、本処理を終了する。
一方、ステップS106において、何れかのプロセス及び/又はアプリケーションについての復帰時検証処理にエラーが生じたと判定した場合(ステップS106;No)、CPU30は、エラーが発生したプロセス及び/又はアプリケーションを示すための情報を表示部19に表示し、エラーが発生したプロセス及び/又はアプリケーションを停止した後(ステップS107)、本処理を終了する。
以上のように、本実施形態によれば、第2不揮発性メモリ21に記憶されたスナップショットのうち、自己の装置の起動に必要なプログラムにかかる実行単位(プロセス及び/又はアプリケーション)のスナップショットから優先的にRAM12に復元することができるため、スナップショットからの起動をより高速に行うことができる。
なお、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化することができる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成することができる。
例えば、上記実施形態では、TPM15を備えた構成としたが、プログラムやスナップショットの完全性を検証する必要がない場合には、TPM15を除いた構成としてもよい。
また、上記実施形態で実行される各種処理にかかるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成しても良い。
また、上記実施形態で実行される各種処理にかかるプログラムを、インターネット等のネットワーク経由で提供または配布するように構成しても良い。
また、上記実施形態で実行される各種処理にかかるプログラムを、ROM等の不揮発性の記録媒体に予め組み込んで提供するように構成してもよい。
本発明にかかる情報処理装置、情報処理装置の起動制御方法、プログラム及び記録媒体は、主記憶装置の状態をイメージ化したスナップショットを用いて起動を行う装置に有効であり、特に、プログラムの実行単位毎にスナップショットの取得を行う装置に適している。
第1の実施形態にかかる画像形成装置の構成を示したブロック図である。 図1に示したTPMの記憶部のデータ構成を模式的に示した図である。 コールドスタート処理の手順を示したフローチャートである。 図3に示した起動時検証処理の手順を示したフローチャートである。 コールドスタート処理時における第1不揮発性メモリと、RAMとの状態を模式的に示した図である。 画像形成装置の動作時におけるRAMの状態を模式的に示した図である。 第1の実施形態にかかるスリープモード移行処理の手順を示したフローチャートである。 スナップショットの格納にかかるRAMと第2不揮発性メモリとの状態を模式的に示した図である。 第2不揮発性メモリの状態を模式的に示した図である。 スナップショットの展開先アドレスと、格納アドレスと、サイズとを対応付けたテーブルを示した図である。 スリープモード移行時における電源供給状態の一例を示した図である。 第1の実施形態にかかるスリープモード復帰処理の手順を示したフローチャートである。 図12に示した復帰時検証処理の手順を示したフローチャートである。 図12のスリープモード復帰処理時における第1不揮発性メモリと、第2不揮発性メモリと、RAMとの状態を模式的に示した図である。 第1の実施形態の変形例にかかる画像形成装置の構成を示したブロック図である。 図15に示した第2不揮発性メモリの状態を模式的に示した図である。 スナップショット展開後のRAMの状態を模式的に示した図である。 第2の実施形態にかかる画像形成装置の構成を示したブロック図である。 復帰制御テーブルの一例を示した図である。 第2の実施形態にかかるスリープモード移行処理の手順を示したフローチャートである。 スナップショットの格納にかかるRAMと第2不揮発性メモリとの状態を模式的に示した図である。 第2の実施形態にかかるスリープモード復帰処理の手順を示したフローチャートである。
符号の説明
100 画像処理装置
10 CPU
11 ROM
12 RAM
13 第1不揮発性メモリ
131 ブートコード
132 基本プログラム
133 応用プログラム
14 第2不揮発性メモリ
141 第1格納領域
142 第2格納領域
15 TPM
151 記憶部
1511 起動時検証領域
1512 復帰時検証領域
16 エンジン制御部
17 エンジン
18 操作部
19 表示部
200 画像処理装置
20 CPU
21 第2不揮発性メモリ
211 データ格納領域
212 冗長領域
300 画像処理装置
30 CPU

Claims (16)

  1. 自己の装置の起動に必要なプログラムを少なくとも記憶するプログラム記憶手段と、
    揮発性の主記憶手段と、
    前記プログラム記憶手段に記憶されたプログラムを実行し、当該プログラムにより実現される各機能の実行単位を前記主記憶手段に展開する制御手段と、
    休止状態への移行を指示する指示信号に応じ、前記主記憶手段の状態をイメージ化したスナップショットを前記実行単位毎に取得する取得手段と、
    不揮発性のスナップ記憶手段と、
    前記取得手段により取得されたスナップショットを前記スナップ記憶手段に格納した後、自己の装置の電源をオフとする休止手段と、
    前記休止状態からの復帰を指示する指示信号に応じて自己の装置の電源をオンとし、前記スナップ記憶手段に記憶されたスナップショットのうち、前記自己の装置の起動に必要なプログラムにかかる実行単位のスナップショットから優先的に前記主記憶手段に復元する復元手段と、
    を備えたことを特徴とする情報処理装置。
  2. 前記プログラム記憶手段は、基本ソフトウェアを少なくとも含む自己の装置の起動に必要な第1プログラムと、当該第1プログラム以外の応用ソフトウェアを含む第2プログラムとを記憶し、
    前記制御手段は、前記基本ソフトウェアの実行単位となるプロセスと、当該基本ソフトウェア以外の特定の用途に特化したプログラム実行時の実行単位となるアプリケーションとを前記主記憶手段に展開し、
    前記取得手段は、前記プロセス及びアプリケーションの単位でスナップショットを取得し、
    前記復元手段は、前記スナップ記憶手段に記憶されたスナップショットのうち、前記第1プログラムにかかるプロセス又はアプリケーションのスナップショットから優先的に前記主記憶手段に復元することを特徴とする請求項1に記載の情報処理装置。
  3. 前記休止手段は、前記取得手段により取得されたスナップショットのうち、前記第1プログラムにかかるプロセス又はアプリケーションのスナップショットから優先的に前記スナップ記憶手段に格納し、
    前記復元手段は、前記スナップ記憶手段に記憶された順に前記スナップショットを前記主記憶手段に復元することを特徴とする請求項2に記載の情報処理装置。
  4. 前記休止手段は、前記取得手段により取得された各スナップショットに対し、自己の装置の起動に必要なプロセス又はアプリケーションにかかるものか否かを識別するための識別情報を夫々付与し、
    前記復元手段は、前記スナップ記憶手段に記憶されたスナップショットのうち、自己の装置の起動に必要なプロセス又はアプリケーションであることを指示する識別情報が付与されたスナップショットから優先的に前記主記憶手段に復元することを特徴とする請求項2に記載の情報処理装置。
  5. 前記第1プログラムは、ユーザインターフェースの提供にかかるプログラムを含み、
    前記復元手段は、前記第1プログラムにかかるスナップショットのうち、ユーザインターフェースの提供にかかる機能を実現するプロセス又はアプリケーションのスナップショットから優先的に前記主記憶手段に復元することを特徴とする請求項2〜4の何れか一項に記載の情報処理装置。
  6. 前記第1プログラムは、外部装置とのデータの授受にかかるプログラムを含み、
    前記復元手段は、前記第1プログラムにかかるスナップショットのうち、外部装置とのデータの授受にかかる機能を実現するプロセス又はアプリケーションのスナップショットから優先的に前記主記憶手段に展開することを特徴とする請求項2〜5の何れか一項に記載の情報処理装置。
  7. 前記休止手段は、前記第1プログラムにかかるプロセス又はアプリケーションのスナップショットと、前記第2プログラムにかかるプロセス又はアプリケーションのスナップショットとを、前記スナップ記憶手段の異なる記憶領域に区分けして記憶することを特徴とする請求項2に記載の情報処理装置。
  8. 前記主記憶手段に展開されたプロセス及びアプリケーション毎にハッシュ値を算出するハッシュ値算出手段と、
    前記ハッシュ値算出手段により算出された、前記スナップショット取得前の各ハッシュ値と、前記復元手段により復元された直後の各ハッシュ値とを、同一のプロセス又はアプリケーションについて夫々照合する照合手段と、
    を更に備えたことを特徴とする請求項2に記載の情報処理装置。
  9. 前記ハッシュ値算出手段により算出された前記スナップショット取得前の各ハッシュ値を、対応するプロセス又はアプリケーションを一意に識別するための識別情報と関連付けて記憶するハッシュ値記憶手段を更に備え、
    前記照合手段は、前記復元手段により復元された直後の各プロセス及びアプリケーションのハッシュ値と、前記ハッシュ値記憶手段に記憶された当該各プロセス及びアプリケーションの識別情報に関連付けられたハッシュ値とを比較することを特徴とする請求項8に記載の情報処理装置。
  10. 前記照合手段は、前記復元手段により前記第1プログラムにかかるプロセス又はアプリケーションのスナップショットが前記主記憶手段に復元される毎に、前記ハッシュ値の比較を行うことを特徴とする請求項8又は9に記載の情報処理装置。
  11. 前記照合手段は、前記復元手段により前記第2プログラムにかかる全てのプロセス及びアプリケーションのスナップショットが前記主記憶手段に復元された後、当該プロセス及びアプリケーションについてのハッシュ値の比較を連続的に行うことを特徴とする請求項8〜10の何れか一項に記載の情報処理装置。
  12. 前記照合手段による照合の結果、不一致となるハッシュ値が検出された場合、エラーが発生した旨を提示する提示手段を更に備えたことを特徴とする請求項8〜11の何れか一項に記載の情報処理装置。
  13. 前記復元手段は、前記照合手段による照合の結果、不一致となるハッシュ値が検出された場合、このハッシュ値に対応する前記プロセス又はアプリケーションの実行を停止することを特徴とする請求項8〜12の何れか一項に記載の情報処理装置。
  14. 自己の装置の起動に必要なプログラムを少なくとも記憶するプログラム記憶手段と、揮発性の主記憶手段と、不揮発性のスナップ記憶手段とを備えた情報処理装置の起動制御方法であって、
    制御手段が、前記プログラム記憶手段に記憶されたプログラムを実行し、当該プログラムにより実現される各機能の実行単位を前記主記憶手段に展開する制御工程と、
    取得手段が、休止状態への移行を指示する指示信号に応じ、前記主記憶手段の状態をイメージ化したスナップショットを前記実行単位毎に取得する取得工程と、
    休止手段が、前記取得工程で取得されたスナップショットを前記スナップ記憶手段に格納した後、自己の装置の電源をオフとする休止工程と、
    復元手段が、前記休止状態からの復帰を指示する指示信号に応じて自己の装置の電源をオンとし、前記スナップ記憶手段に記憶されたスナップショットのうち、前記自己の装置の起動に必要なプログラムにかかる実行単位のスナップショットから優先的に前記主記憶手段に復元する復元工程と、
    を含むことを特徴とする起動制御方法。
  15. 自己の装置の起動に必要なプログラムを少なくとも記憶するプログラム記憶手段と、揮発性の主記憶手段と、不揮発性のスナップ記憶手段とを備えたコンピュータを、
    前記プログラム記憶手段に記憶されたプログラムを実行し、当該プログラムにより実現される各機能の実行単位を前記主記憶手段に展開する制御手段と、
    休止状態への移行を指示する指示信号に応じ、前記主記憶手段の状態をイメージ化したスナップショットを前記実行単位毎に取得する取得手段と、
    前記取得手段により取得されたスナップショットを前記スナップ記憶手段に格納した後、自己の装置の電源をオフとする休止手段と、
    前記休止状態からの復帰を指示する指示信号に応じて自己の装置の電源をオンとし、前記スナップ記憶手段に記憶されたスナップショットのうち、前記自己の装置の起動に必要なプログラムにかかる実行単位のスナップショットから優先的に前記主記憶手段に復元する復元手段と、
    して機能させることを特徴とするプログラム。
  16. 請求項15に記載のプログラムが記録されていることを特徴とするコンピュータが読み取り可能な記録媒体。
JP2008024342A 2008-02-04 2008-02-04 情報処理装置、情報処理装置の起動制御方法、プログラム及び記録媒体 Pending JP2009187134A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008024342A JP2009187134A (ja) 2008-02-04 2008-02-04 情報処理装置、情報処理装置の起動制御方法、プログラム及び記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008024342A JP2009187134A (ja) 2008-02-04 2008-02-04 情報処理装置、情報処理装置の起動制御方法、プログラム及び記録媒体

Publications (1)

Publication Number Publication Date
JP2009187134A true JP2009187134A (ja) 2009-08-20

Family

ID=41070333

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008024342A Pending JP2009187134A (ja) 2008-02-04 2008-02-04 情報処理装置、情報処理装置の起動制御方法、プログラム及び記録媒体

Country Status (1)

Country Link
JP (1) JP2009187134A (ja)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011070654A (ja) * 2009-09-25 2011-04-07 Intel Corp アンチマルウェアを有するコンピュータシステムおよび方法
JP2011123802A (ja) * 2009-12-14 2011-06-23 Ricoh Co Ltd 電子装置、起動制御方法、起動制御プログラム及び記録媒体
JP2012098978A (ja) * 2010-11-04 2012-05-24 Seiko Epson Corp 情報処理装置およびデータの配布方法
JP2013004045A (ja) * 2011-06-22 2013-01-07 Konica Minolta Business Technologies Inc 情報処理装置、情報処理装置の起動方法および起動プログラム
US8893135B2 (en) 2010-07-30 2014-11-18 Mitsubishi Electric Corporation Digital broadcast receiver and software startup method
US8918659B2 (en) 2011-01-04 2014-12-23 Ricoh Company, Limited Control device, image forming apparatus, and control method
JP2015039058A (ja) * 2010-07-30 2015-02-26 株式会社東芝 電子機器および起動方法
JP5804176B1 (ja) * 2014-12-19 2015-11-04 富士ゼロックス株式会社 情報処理装置
WO2016098147A1 (ja) * 2014-12-19 2016-06-23 三菱電機株式会社 情報処理装置および起動制御方法
EP3076324A1 (en) 2015-03-31 2016-10-05 Canon Kabushiki Kaisha Information processing apparatus and method of controlling the apparatus
US9813577B2 (en) 2014-08-20 2017-11-07 Konica Minolta, Inc. Image forming apparatus, activation control method, and non-transitory computer-readable recording medium encoded with activation control program
JP2019028749A (ja) * 2017-07-31 2019-02-21 コニカミノルタ株式会社 画像処理装置、スナップショット取得方法、およびコンピュータプログラム
WO2020241918A1 (ko) * 2019-05-29 2020-12-03 엘지전자 주식회사 부팅 프로세스를 수행하는 디지털 디바이스 및 그 제어 방법
JP2020197923A (ja) * 2019-06-03 2020-12-10 株式会社デンソー 情報処理装置および情報処理方法
WO2023145666A1 (ja) * 2022-01-25 2023-08-03 株式会社Jvcケンウッド 組み込みシステムの起動方法、及び、起動プログラム、並びに、組み込みシステム

Cited By (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011070654A (ja) * 2009-09-25 2011-04-07 Intel Corp アンチマルウェアを有するコンピュータシステムおよび方法
US8635705B2 (en) 2009-09-25 2014-01-21 Intel Corporation Computer system and method with anti-malware
JP2011123802A (ja) * 2009-12-14 2011-06-23 Ricoh Co Ltd 電子装置、起動制御方法、起動制御プログラム及び記録媒体
US8893135B2 (en) 2010-07-30 2014-11-18 Mitsubishi Electric Corporation Digital broadcast receiver and software startup method
JP2015039058A (ja) * 2010-07-30 2015-02-26 株式会社東芝 電子機器および起動方法
JP2012098978A (ja) * 2010-11-04 2012-05-24 Seiko Epson Corp 情報処理装置およびデータの配布方法
US8918659B2 (en) 2011-01-04 2014-12-23 Ricoh Company, Limited Control device, image forming apparatus, and control method
JP2013004045A (ja) * 2011-06-22 2013-01-07 Konica Minolta Business Technologies Inc 情報処理装置、情報処理装置の起動方法および起動プログラム
US8996849B2 (en) 2011-06-22 2015-03-31 Konica Minolta Business Technologies, Inc. Starting of an image processing device using predetermined data stored in a storage for rapid powered on and power down
US9813577B2 (en) 2014-08-20 2017-11-07 Konica Minolta, Inc. Image forming apparatus, activation control method, and non-transitory computer-readable recording medium encoded with activation control program
JP5804176B1 (ja) * 2014-12-19 2015-11-04 富士ゼロックス株式会社 情報処理装置
WO2016098147A1 (ja) * 2014-12-19 2016-06-23 三菱電機株式会社 情報処理装置および起動制御方法
CN106022136A (zh) * 2015-03-31 2016-10-12 佳能株式会社 信息处理装置及该装置的控制方法
JP2016192159A (ja) * 2015-03-31 2016-11-10 キヤノン株式会社 情報処理装置、情報処理装置の制御方法、およびコンピュータプログラム
EP3076324A1 (en) 2015-03-31 2016-10-05 Canon Kabushiki Kaisha Information processing apparatus and method of controlling the apparatus
CN106022136B (zh) * 2015-03-31 2019-10-22 佳能株式会社 信息处理装置及该装置的控制方法
US10482256B2 (en) 2015-03-31 2019-11-19 Canon Kabushiki Kaisha Information processing apparatus and method of controlling the apparatus
JP2019028749A (ja) * 2017-07-31 2019-02-21 コニカミノルタ株式会社 画像処理装置、スナップショット取得方法、およびコンピュータプログラム
WO2020241918A1 (ko) * 2019-05-29 2020-12-03 엘지전자 주식회사 부팅 프로세스를 수행하는 디지털 디바이스 및 그 제어 방법
CN113316766A (zh) * 2019-05-29 2021-08-27 Lg电子株式会社 用于执行启动过程的数字装置及其控制方法
US11579892B2 (en) 2019-05-29 2023-02-14 Lg Electronics Inc. Digital device for performing booting process and control method therefor
CN113316766B (zh) * 2019-05-29 2023-09-26 Lg电子株式会社 用于执行启动过程的数字装置及其控制方法
JP2020197923A (ja) * 2019-06-03 2020-12-10 株式会社デンソー 情報処理装置および情報処理方法
JP7180542B2 (ja) 2019-06-03 2022-11-30 株式会社デンソー 情報処理装置および情報処理方法
WO2023145666A1 (ja) * 2022-01-25 2023-08-03 株式会社Jvcケンウッド 組み込みシステムの起動方法、及び、起動プログラム、並びに、組み込みシステム

Similar Documents

Publication Publication Date Title
JP2009187134A (ja) 情報処理装置、情報処理装置の起動制御方法、プログラム及び記録媒体
WO2014161339A1 (zh) 固件升级方法及装置
JP2009134692A (ja) 単一キー制御を使用するシステム構成の自動修復方法
JP6270616B2 (ja) 情報処理装置及びその制御方法、並びにプログラム
JP2007058699A (ja) 情報処理装置、情報処理装置制御プログラム、情報処理装置制御方法
CN105786545B (zh) 基于异构混合内存的断点恢复方法和系统
JP5747680B2 (ja) 情報処理装置、画像形成装置およびプログラム
JP2007052520A (ja) 情報処理装置および方法、並びにプログラム
JP5961059B2 (ja) 情報処理装置およびその起動方法
JP5545432B2 (ja) Biosアップデート方法、biosアップデート装置及びbiosアップデートプログラム
JP2010536112A (ja) 中断された書込みの回復のためのデータ記憶方法、機器およびシステム
JP6554881B2 (ja) 半導体装置および記憶媒体の制御方法
JP6000655B2 (ja) 情報処理装置、情報処理装置の制御方法及びプログラム
JP2004355560A (ja) 起動装置
JP5470124B2 (ja) 電子機器及び電子機器用プログラム
JP2011085977A (ja) 信号処理装置
JP5969528B2 (ja) 情報処理システム、情報処理装置起動方法および起動プログラム
JP2018045725A (ja) 情報処理装置及びその制御方法、並びにプログラム
JP5944017B2 (ja) 情報処理装置およびプログラム
JP6149624B2 (ja) ファームウェア実行装置、ファームウェア実行方法、コンピュータ・プログラム、および、コンピュータ装置
JP2007265230A (ja) 情報処理装置及びそのファイル読み込み方法
CN117215835A (zh) 设备开机方法、装置、电子设备及存储介质
JP2006344022A (ja) 機器及びプログラム起動方法
JP2007148773A (ja) Bios搭載コンピュータ及びbiosローディングプログラム
JP2021131709A (ja) 情報処理装置及び方法