JPWO2013103023A1 - 情報処理装置、情報処理方法、およびコンピュータプログラム - Google Patents

情報処理装置、情報処理方法、およびコンピュータプログラム Download PDF

Info

Publication number
JPWO2013103023A1
JPWO2013103023A1 JP2013552383A JP2013552383A JPWO2013103023A1 JP WO2013103023 A1 JPWO2013103023 A1 JP WO2013103023A1 JP 2013552383 A JP2013552383 A JP 2013552383A JP 2013552383 A JP2013552383 A JP 2013552383A JP WO2013103023 A1 JPWO2013103023 A1 JP WO2013103023A1
Authority
JP
Japan
Prior art keywords
program
backup
file
application configuration
rewriting
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.)
Granted
Application number
JP2013552383A
Other languages
English (en)
Other versions
JP5575338B2 (ja
Inventor
聡 道籏
聡 道籏
丸山 清泰
清泰 丸山
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2013552383A priority Critical patent/JP5575338B2/ja
Application granted granted Critical
Publication of JP5575338B2 publication Critical patent/JP5575338B2/ja
Publication of JPWO2013103023A1 publication Critical patent/JPWO2013103023A1/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1441Resetting or repowering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1417Boot up procedures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

本発明は、システムの起動処理の開始を早くするとともに、起動プログラムに誤りが検出された場合に信頼性の高いプログラムで再起動を行う。情報処理装置(1)は、システムを起動するためのプログラムを記憶したプログラム領域と、複数のバックアッププログラムをそれぞれ記憶した複数のバックアップ領域とを含む不揮発性メモリと、プログラムを実行してシステムの起動処理を行う処理実行部(11)と、起動処理と並行してプログラムに対して誤り検出を行う誤り検出部(12)と、誤りが検出された場合にプログラムをバックアッププログラムで書き換える復旧処理を行い、書き換え後のプログラムによりシステムの再起動を行う再起動部(13)とを備える。再起動部は、復旧処理を行う際、プログラムの書き換えの履歴を示す履歴情報を参照し、書き換えに用いるバックアッププログラムを選択し、プログラムを選択されたバックアッププログラムで書き換える。

Description

本発明は、情報処理装置、情報処理方法、およびコンピュータプログラムに関する。
近年、不揮発性メモリであるNAND型フラッシュメモリが広く普及している。NAND型フラッシュメモリは、NOR型フラッシュメモリに比べて大容量化が進んでおりビット単価が安いといったメリットがある。一方で、記憶データの読み出しを繰り返すと電荷が抜けてしまうことによりビットエラーの発生する可能性があり、データの信頼性におけるデメリットがある。このため、NAND型フラッシュメモリにシステムを起動するためのプログラムを記憶させた場合、ビットエラーにより、システムが起動できない場合や、起動した後にシステムがハングアップしてしまう場合がある。
これに対し、特許文献1には、システム用不揮発性メモリから第1のブートプログラムを読み出し、当該第1のブートプログラムに対して誤り検出を行い、読み出した第1のブートプログラムが不正に変化していると判定したとき、バックアップ用不揮発性メモリから第2のブートプログラムを読み出し、当該第2のブートプログラムに対して誤り検出を行い、読み出した第2のブートプログラムが不正に変化していると判定したとき、エラーを出力する制御装置が記載されている。この制御装置では、ブートプログラムに対する誤り検出の結果、ブートプログラムが不正に変化していないと判定されると、そのブートプログラムを用いてブート処理が行われる。
特開2010−26650号公報
特許文献1に記載された制御装置では、システム用不揮発性メモリから読み出されたブートプログラムに対して誤り検出が行われ、誤り検出の結果、ブートプログラムが不正に変化していないと判定されてから、ブートプログラムを用いたブート処理が開始される。このため、ブート処理の開始が遅くなるという問題がある。
本発明は、システムの起動処理の開始を早くすることができるとともに、起動用のプログラムに誤りが検出された場合に信頼性の高いプログラムで再起動を行うことができる情報処理装置、情報処理方法、およびコンピュータプログラムを提供することを目的とする。
本発明に係る情報処理装置は、
システムを起動するためのプログラムを記憶したプログラム領域と、前記プログラムと同一内容の複数のバックアッププログラムをそれぞれ記憶した複数のバックアップ領域とを含む不揮発性メモリと、
前記プログラム領域に記憶されているプログラムを実行して前記システムの起動処理を行う処理実行手段と、
前記処理実行手段による起動処理と並行して、前記プログラム領域に記憶されているプログラムに対して誤り検出を行う誤り検出手段と、
前記誤り検出手段により前記プログラムに誤りが検出された場合に、前記プログラム領域に記憶されているプログラムを、前記バックアップ領域に記憶されているバックアッププログラムで書き換える復旧処理を行い、前記プログラム領域に記憶されている前記書き換え後のプログラムにより前記システムの再起動を行う再起動手段とを備え、
前記再起動手段は、前記復旧処理を行う際、前記プログラムの前記バックアッププログラムによる書き換えの履歴を示す履歴情報を参照し、前記履歴情報に基づいて、前記複数のバックアッププログラムの中から前記書き換えに用いるバックアッププログラムを選択し、前記プログラムを前記選択されたバックアッププログラムで書き換えることを特徴とする。
また、本発明に係る情報処理方法は、
システムを起動するためのプログラムを記憶したプログラム領域と、前記プログラムと同一内容の複数のバックアッププログラムをそれぞれ記憶した複数のバックアップ領域とを含む不揮発性メモリのうち、前記プログラム領域に記憶されているプログラムを実行して前記システムの起動処理を行う処理実行工程と、
前記処理実行工程による起動処理と並行して、前記プログラム領域に記憶されているプログラムに対して誤り検出を行う誤り検出工程と、
前記誤り検出工程により前記プログラムに誤りが検出された場合に、前記プログラム領域に記憶されているプログラムを、前記バックアップ領域に記憶されているバックアッププログラムで書き換える復旧処理を行い、前記プログラム領域に記憶されている前記書き換え後のプログラムにより前記システムの再起動を行う再起動工程とを含み、
前記再起動工程では、前記復旧処理を行う際、前記プログラムの前記バックアッププログラムによる書き換えの履歴を示す履歴情報を参照し、前記履歴情報に基づいて、前記複数のバックアッププログラムの中から前記書き換えに用いるバックアッププログラムを選択し、前記プログラムを前記選択されたバックアッププログラムで書き換えることを特徴とする。
また、本発明に係るコンピュータプログラムは、
システムを起動するためのプログラムを記憶したプログラム領域と、前記プログラムと同一内容の複数のバックアッププログラムをそれぞれ記憶した複数のバックアップ領域とを含む不揮発性メモリのうち、前記プログラム領域に記憶されているプログラムを実行して前記システムの起動処理を行う処理実行工程と、
前記処理実行工程による起動処理と並行して、前記プログラム領域に記憶されているプログラムに対して誤り検出を行う誤り検出工程と、
前記誤り検出工程により前記プログラムに誤りが検出された場合に、前記プログラム領域に記憶されているプログラムを、前記バックアップ領域に記憶されているバックアッププログラムで書き換える復旧処理を行い、前記プログラム領域に記憶されている前記書き換え後のプログラムにより前記システムの再起動を行う再起動工程とをコンピュータに実行させ、
前記再起動工程では、前記復旧処理を行う際、前記プログラムの前記バックアッププログラムによる書き換えの履歴を示す履歴情報を参照し、前記履歴情報に基づいて、前記複数のバックアッププログラムの中から前記書き換えに用いるバックアッププログラムを選択し、前記プログラムを前記選択されたバックアッププログラムで書き換えることを特徴とする。
本発明によれば、システムの起動処理の開始を早くすることができるとともに、起動用のプログラムに誤りが検出された場合に信頼性の高いプログラムで再起動を行うことができる。
実施の形態における情報処理装置の構成を概略的に示すブロック図である。 不揮発性メモリの記憶フォーマットを示す概略図である。 実施の形態における情報処理装置の機能構成を示すブロック図である。 実施の形態における情報処理装置の動作を示すフローチャートである。 再起動処理を示すフローチャートである。 起動履歴情報のフォーマットを示す概略図である。 プログラム(またはファイル)書き換え処理を示すフローチャートである。 書き換えフラグ情報のフォーマットを示す概略図である。 バックアップ確認処理を示すフローチャートである。 誤り検出後に起動処理を行う構成における処理時間を示す概略図である。 実施の形態の構成における処理時間を示す概略図である。 起動処理と誤り検出処理とを別々の処理装置で並行して実行する構成における処理時間を示す概略図である。
以下、本発明の実施の形態を図面に従って説明する。
[情報処理装置の構成]
図1は、本実施の形態に係る情報処理装置1の構成を概略的に示すブロック図である。図1において、情報処理装置1は、不揮発性メモリ2、ワークメモリ3、中央処理装置(CPU:Central Processing Unit)4、通信部5、および外部インタフェース(外部IF)6を備える。
不揮発性メモリ2は、各種のプログラムやデータを記憶する読み書き可能なメモリであり、例えばNAND型フラッシュメモリである。不揮発性メモリ2は、システムを起動するためのプログラム(以下、「起動プログラム」と称す)を記憶したプログラム領域と、上記起動プログラムと同一内容のバックアッププログラム(複製プログラムともいう)を記憶したバックアップ領域とを含む。上記システムは、具体的にはコンピュータシステムであり、より具体的には情報処理装置1の(CPU4を中心とする)コンピュータシステムである。本例では、不揮発性メモリ2は、さらに、アプリケーションを起動するためのアプリケーション構成ファイルを記憶したファイル領域と、上記アプリケーション構成ファイルと同一内容のバックアップファイル(複製ファイルともいう)を記憶したバックアップファイル領域とをさらに含む。また、バックアップ領域およびバックアップファイル領域は、それぞれ複数設けられる。さらに、不揮発性メモリ2には、起動プログラム、バックアッププログラム、アプリケーション構成ファイル、およびバックアップファイルの各々について、当該プログラムまたはファイルの誤りを検出するための誤り検出用データが記憶される。
ワークメモリ3は、CPU4の作業領域として使用されるメモリであり、不揮発性メモリ2から読み出されたプログラムやデータを記憶する。
CPU4は、不揮発性メモリ2に記憶されている起動プログラム等のプログラムを実行する。具体的には、CPU4は、不揮発性メモリ2にブロックごとに記憶されているプログラムやデータのうち必要となるブロックをワークメモリ3に読み出し(またはコピーし)、ワークメモリ3にアクセスし、ワークメモリ3に読み出されたプログラムに記述されている処理を実行する。
通信部5は、CPU4が情報処理装置1に接続された外部の機器(外部接続機器)と外部インタフェース6を介して通信を行う際に、送受信データを外部接続機器との通信プロトコルに従ってデータ変換する。
外部インタフェース6は、情報処理装置1と外部接続機器とを接続するためのインタフェースであり、例えばUSBインタフェースである。
図2は、不揮発性メモリ2の記憶フォーマットを示す概略図である。図2の例では、不揮発性メモリ2には、起動プログラムとして、情報処理装置1のシステムリセット後にブート処理を行うためのブートプログラム100と、オペレーティングシステム(OS:Operating System)を起動するためのカーネルプログラム106とが記憶されている。また、不揮発性メモリ2には、アプリケーション構成ファイルとして、カーネル上で動作するアプリケーションを起動するために必要なアプリケーション構成ファイルA112およびアプリケーション構成ファイルB114が記憶されている。
また、不揮発性メモリ2には、バックアッププログラムとして、ブートプログラム100と同じ内容であるブートプログラム第1バックアップ102およびブートプログラム第2バックアップ104と、カーネルプログラム106と同じ内容であるカーネルプログラム第1バックアップ108およびカーネルプログラム第2バックアップ110とが記憶されている。また、不揮発性メモリ2には、バックアップファイルとして、アプリケーション構成ファイルA112と同じ内容であるアプリケーション構成ファイルA第1バックアップ116およびアプリケーション構成ファイルA第2バックアップ120と、アプリケーション構成ファイルB114と同じ内容であるアプリケーション構成ファイルB第1バックアップ118およびアプリケーション構成ファイルB第2バックアップ122とが記憶されている。
さらに、不揮発性メモリ2に記憶されている上記のブートプログラム100、ブートプログラム第1バックアップ102、ブートプログラム第2バックアップ104、カーネルプログラム106、カーネルプログラム第1バックアップ108、カーネルプログラム第2バックアップ110、アプリケーション構成ファイルA112、アプリケーション構成ファイルB114、アプリケーション構成ファイルA第1バックアップ116、アプリケーション構成ファイルB第1バックアップ118、アプリケーション構成ファイルA第2バックアップ120、およびアプリケーション構成ファイルB第2バックアップ122には、それぞれ、対応する誤り検出用データとして、チェックサム値101、103、105、107、109、111、113、115、117、119、121、123が付加されている。
図2に示されるように、ブートプログラム100とそのチェックサム値101は同一ブロックB1に記憶されており、ブートプログラム第1バックアップ102とそのチェックサム値103は同一ブロックB2に記憶されており、ブートプログラム第2バックアップ104とそのチェックサム値105は同一ブロックB3に記憶されている。ここで、ブロックB1はプログラム領域(純正ブロックともいう)であり、ブロックB2およびB3はバックアップ領域(複製ブロックともいう)である。同様に、カーネルプログラム106とそのチェックサム値107は同一ブロックB4に記憶されており、カーネルプログラム第1バックアップ108とそのチェックサム値109は同一ブロックB5に記憶されており、カーネルプログラム第2バックアップ110とそのチェックサム値111は同一ブロックB6に記憶されている。ブロックB4はプログラム領域(純正ブロックともいう)であり、ブロックB5およびB6はバックアップ領域(複製ブロックともいう)である。アプリケーション構成ファイルについては、アプリケーション構成ファイルA112とそのチェックサム値113およびアプリケーション構成ファイルB114とそのチェックサム値115は同一ブロックB7に記憶されている。また、アプリケーション構成ファイルA第1バックアップ116とそのチェックサム値117およびアプリケーション構成ファイルB第1バックアップ118とそのチェックサム値119は同一ブロックB8に記憶されている。さらに、アプリケーション構成ファイルA第2バックアップ120とそのチェックサム値121およびアプリケーション構成ファイルB第2バックアップ122とそのチェックサム値123は同一ブロックB9に記憶されている。ブロックB7はファイル領域(純正ブロックともいう)であり、ブロックB8およびB9はバックアップファイル領域(複製ブロックともいう)である。
これらに加え、不揮発性メモリ2には、後述のプログラム書き換え処理およびファイル書き換え処理の際に使用される書き換えフラグ情報124と、システム起動の履歴情報を記録する起動履歴情報126とが記憶されている。さらに、不揮発性メモリ2には、バックアッププログラムの書き換えの順番を示す書き換え順番情報128が記憶されていてもよい。
なお、図2に示される不揮発性メモリ2の記憶フォーマットは一例であり、これに限るものではない。
ここで、ブートプログラム100は、CPU4に、不揮発性メモリ2に記憶されているブートプログラム100自身とそのチェックサム値101をワークメモリ3に転送させ、情報処理装置1の初期化処理を実行させ、初期化処理の後、カーネルプログラム106に読み出し先をジャンプさせるようにプログラムされている。このように、ブートプログラム100には、起動処理としてのブート処理が記述されている。また、ブートプログラム100は、CPU4に、上記のブート処理に並行して、ワークメモリ3に転送されたブートプログラム100についてチェックサム演算を行い、演算の結果とチェックサム値101とを比較してブートプログラム100の誤りの有無(または正当性)を確認する誤り検出処理を実行させるようにプログラムされている。すなわち、ブートプログラム100には、誤り検出処理が記述されており、さらに、起動処理と誤り検出処理とを並行して行うための並列制御が記述されている。
カーネルプログラム106は、CPU4に、不揮発性メモリ2に記憶されているカーネルプログラム106自身とそのチェックサム値107をワークメモリ3に転送させ、通信部5を含めた周辺機器の有効化などのシステム設定を行うシステム制御処理を実行させるようにプログラムされている。このように、カーネルプログラム106には、OSを起動するための起動処理が記述されている。また、カーネルプログラム106は、CPU4に、上記のシステム制御処理に並行して、ワークメモリ3に転送されたカーネルプログラム106についてチェックサム演算を行い、演算の結果とワークメモリ3上のチェックサム値107とを比較してカーネルプログラム106の誤りの有無(または正当性)を確認する誤り検出処理を実行させるようにプログラムされている。すなわち、カーネルプログラム106には、誤り検出処理が記述されており、さらに、起動処理と誤り検出処理とを並行して行うための並列制御が記述されている。
アプリケーション構成ファイルA112は、カーネルプログラム106が起動した後に実行されるものであり、CPU4に、不揮発性メモリ2に記憶されているアプリケーション構成ファイルA112自身とそのチェックサム値113をワークメモリ3に転送させ、アプリケーションを起動するための所定の処理を実行させるようにプログラムされている。すなわち、アプリケーション構成ファイルA112には、アプリケーションを起動するための起動処理が記述されている。また、アプリケーション構成ファイルA112は、CPU4に、上記の処理に並行して、ワークメモリ3に転送されたアプリケーション構成ファイルA112についてチェックサム演算を行い、演算の結果とワークメモリ3上のチェックサム値113とを比較してアプリケーション構成ファイルA112の誤りの有無(または正当性)を確認する誤り検出処理を実行させるようにプログラムされている。すなわち、アプリケーション構成ファイルA112には、誤り検出処理が記述されており、さらに、起動処理と誤り検出処理とを並行して行うための並列制御が記述されている。
アプリケーション構成ファイルB114は、上記アプリケーション構成ファイルA112と同様のものであり、アプリケーション構成ファイルB114にも、起動処理、誤り検出処理、および並列制御が記述されている。
さらに、ブートプログラム100、カーネルプログラム106、アプリケーション構成ファイルA112、およびアプリケーション構成ファイルB114のそれぞれには、再起動処理および書き換え制御が記述されている。
図3は、本実施の形態に係る情報処理装置1の機能構成を示すブロック図である。図3において、情報処理装置1は、並列処理部10、処理実行部11、誤り検出部12、再起動部13、および書き換え制御部14を有する。
具体的には、並列処理部10、処理実行部11、誤り検出部12、再起動部13、および書き換え制御部14は、それぞれ、CPU4が、ブートプログラム100、カーネルプログラム106、アプリケーション構成ファイルA112、およびアプリケーション構成ファイルB114に記述されている、並列制御、起動処理、誤り検出処理、再起動処理、および書き換え制御を実行することにより実現される。
並列処理部10は、起動処理および誤り検出処理を含む複数の処理を時分割により並行処理するための制御を行う。具体的には、並列処理部10は、CPU4内の処理を並行して行うために、CPU4の処理時間を短い単位に分割し、分割された単位時間を順番に各処理に割り当てることによって、複数の処理が並行して行われるようにCPU4の処理を制御する。
処理実行部11は、不揮発性メモリ2のプログラム領域に記憶されている起動プログラムを実行してシステムを起動するための起動処理を行う。具体的には、処理実行部11は、システムリセット後に呼び出されるブートプログラム100に記述された起動処理を実行し、ブートプログラム100により呼び出されるカーネルプログラム106に記述された起動処理を実行し、アプリケーション構成ファイルA112およびアプリケーション構成ファイルB114に記述された起動処理を実行し、アプリケーションを起動するまでの処理を実行する。さらに、処理実行部11は、アプリケーション上の演算処理などを行ってもよい。
誤り検出部12は、処理実行部11による起動処理と並行して、プログラム領域に記憶されている起動プログラムやアプリケーション構成ファイルに対して誤り検出を行い、起動プログラムやアプリケーション構成ファイルの正当性を確認する。具体的には、誤り検出部12は、ブートプログラム100、カーネルプログラム106、アプリケーション構成ファイルA112、およびアプリケーション構成ファイルB114に対して、それぞれの誤り検出用データを用いて誤り検出を行う。より具体的には、誤り検出部12は、不揮発性メモリ2に記憶されている、ブートプログラム100、カーネルプログラム106、アプリケーション構成ファイルA112、およびアプリケーション構成ファイルB114に対してチェックサム値の計算を行い、計算されたチェックサム値を予め不揮発性メモリ2に記憶されている対応するチェックサム値と比較し、起動プログラムやファイルが不当に変化していないかどうかを検出し、検出結果を再起動部13に通知する。
再起動部13は、誤り検出部12により起動プログラム(ブートプログラム100またはカーネルプログラム106)に誤りが検出された場合に、システムが起動しないことやフリーズしてしまうことを避けるために、バックアップ領域に記憶されているバックアッププログラム(ブートプログラム第1バックアップ102、ブートプログラム第2バックアップ104、カーネルプログラム第1バックアップ108、またはカーネルプログラム第2バックアップ110)を用いてシステムの再起動を行う。本例では、再起動部13は、誤り検出部12により起動プログラムに誤りが検出された場合に、プログラム領域に記憶されている起動プログラムを、バックアップ領域に記憶されているバックアッププログラムで書き換える復旧処理を行い、当該書き換え後の起動プログラムによりシステムの再起動を行う。また、再起動部13は、復旧処理を行う際、起動プログラムのバックアッププログラムによる書き換えの履歴を示す履歴情報(または、起動プログラムをバックアッププログラムによって書き換えた過去の履歴についての履歴情報)を参照し、当該履歴情報に基づいて、複数のバックアッププログラムの中から書き換えに用いるバックアッププログラムを選択し、プログラム領域に記憶されている起動プログラムを上記選択されたバックアッププログラムで書き換える。上記履歴情報は、不揮発性メモリ2内の起動履歴情報126に含まれる。再起動部13は、さらにバックアッププログラムの書き換えの順番を示す書き換え順番情報を参照し、書き換え順番情報と履歴情報とに基づいて、複数のバックアッププログラムの中から書き換えに用いるバックアッププログラムを選択し、プログラム領域に記憶されている起動プログラムを上記選択されたバックアッププログラムで書き換えてもよい。上記書き換え順番情報は、複数のバックアッププログラムを書き換えに用いる順番を示す情報であり、不揮発性メモリ2内の書き換え順番情報128に含まれる。再起動部13は、復旧処理を行う際、書き換え順番情報により示される順番でバックアッププログラムが用いられるように、履歴情報に基づいて、当該復旧処理で書き換えに用いるバックアッププログラムを選択する。一つの態様では、復旧処理を行う場合、再起動部13は、履歴情報(または履歴情報および書き換え順番情報)に基づいて、複数のバックアップ領域に記憶されている複数のバックアッププログラムのうち、まだ書き換えに用いられていないバックアッププログラムを選択し、プログラム領域に記憶されている起動プログラムを上記選択されたバックアッププログラムで書き換える。一方、誤り検出部12により起動プログラムに誤りが検出された場合において、まだ書き換えに用いられていないバックアッププログラムが複数のバックアップ領域に存在しないときには、再起動部13は、書き換え制御部14に対して後述のプログラム書き換え処理を実行させる。
また、再起動部13は、誤り検出部12によりアプリケーション構成ファイル(アプリケーション構成ファイルA112またはB114)に誤りが検出された場合に、バックアップファイル領域に記憶されているバックアップファイル(アプリケーション構成ファイルA第1バックアップ116、アプリケーション構成ファイルA第2バックアップ120、アプリケーション構成ファイルB第1バックアップ118、またはアプリケーション構成ファイルB第2バックアップ122)を用いてアプリケーションの再起動を行う。本例では、再起動部13は、誤り検出部12によりアプリケーション構成ファイルに誤りが検出された場合に、ファイル領域に記憶されているアプリケーション構成ファイルを、バックアップファイル領域に記憶されているバックアップファイルに書き換える復旧処理を行い、当該書き換え後のアプリケーション構成ファイルによりアプリケーションの再起動を行う。また、再起動部13は、復旧処理を行う際、アプリケーション構成ファイルのバックアップファイルによる書き換えの履歴を示す履歴情報(または、アプリケーション構成ファイルをバックアップファイルによって書き換えた過去の履歴についての履歴情報)を参照し、当該履歴情報に基づいて、複数のバックアップファイルの中から書き換えに用いるバックアップファイルを選択し、ファイル領域に記憶されているアプリケーション構成ファイルを上記選択されたバックアップファイルで書き換える。上記履歴情報は、不揮発性メモリ2内の起動履歴情報126に含まれる。再起動部13は、さらにバックアップファイルの書き換えの順番を示す書き換え順番情報を参照し、書き換え順番情報と履歴情報とに基づいて、複数のバックアップファイルの中から書き換えに用いるバックアップファイルを選択し、ファイル領域に記憶されているアプリケーション構成ファイルを上記選択されたバックアップファイルで書き換えてもよい。上記書き換え順番情報は、複数のバックアップファイルを書き換えに用いる順番を示す情報であり、不揮発性メモリ2内の書き換え順番情報128に含まれる。再起動部13は、復旧処理を行う際、書き換え順番情報により示される順番でバックアップファイルが用いられるように、履歴情報に基づいて、当該復旧処理で書き換えに用いるバックアップファイルを選択する。一つの態様では、復旧処理を行う場合、再起動部13は、履歴情報(または履歴情報および書き換え順番情報)に基づいて、複数のバックアップファイル領域に記憶されている複数のバックアップファイルのうち、まだ書き換えに用いられていないバックアップファイルを選択し、ファイル領域に記憶されているアプリケーション構成ファイルを上記選択されたバックアップファイルで書き換える。一方、誤り検出部12によりアプリケーション構成ファイルに誤りが検出された場合において、まだ書き換えに用いられていないバックアップファイルが複数のバックアップファイル領域に存在しないときには、再起動部13は、書き換え制御部14に対して後述のファイル書き換え処理を実行させる。
なお、再起動部13は、復旧処理において起動プログラムをバックアッププログラムで書き換える場合、例えば、バックアップ領域に記憶されているバックアッププログラムを新たな起動プログラムとしてプログラム領域にコピーする。また例えば、再起動部13は、プログラム領域に記憶されている起動プログラムをバックアップ領域に記憶されているバックアッププログラムで上書きする。アプリケーション構成ファイルをバックアップファイルで書き換える場合についても同様である。
書き換え制御部14は、外部から新たな起動プログラムを取得し、当該新たな起動プログラムで起動プログラムを書き換えるプログラム書き換え処理を行う。このプログラム書き換え処理は、起動プログラム(ブートプログラム100またはカーネルプログラム106)に誤りが検出された場合において、まだ書き換えに用いられていないバックアッププログラムが複数のバックアップ領域に存在しないときに実行される。また、プログラム書き換え処理は、起動プログラム(ブートプログラム100またはカーネルプログラム106)をアップデート(更新)する場合にも実行される。本例では、プログラム書き換え処理において、書き換え制御部14は、情報処理装置1の外部から書き換え用の新たな起動プログラムを取得し、複数のバックアップ領域に記憶されている複数のバックアッププログラムのうち、所定のバックアッププログラムを上記新たな起動プログラムで書き換え、プログラム領域に記憶されている起動プログラムを上記書き換え後の所定のバックアッププログラムで書き換える。そして、書き換え制御部14は、当該書き換え後の起動プログラムが実行された際に、異常がない場合は、複数のバックアッププログラムのうち、上記所定のバックアッププログラム以外のすべてのバックアッププログラムを、書き換え後の所定のバックアッププログラムまたは書き換え後の起動プログラムで書き換え、異常があった場合は、プログラム領域に記憶されている起動プログラムを、所定のバックアッププログラム以外のバックアッププログラムで書き換える。
また、書き換え制御部14は、外部から新たなアプリケーション構成ファイルを取得し、当該新たなアプリケーション構成ファイルでアプリケーション構成ファイルを書き換えるファイル書き換え処理を行う。このファイル書き換え処理は、アプリケーション構成ファイル(アプリケーション構成ファイルA112またはB114)に誤りが検出された場合において、まだ書き換えに用いられていないバックアップファイルが複数のバックアップファイル領域に存在しないときに実行される。また、ファイル書き換え処理は、アプリケーション構成ファイル(アプリケーション構成ファイルA112またはB114)をアップデート(更新)する場合にも実行される。本例では、ファイル書き換え処理において、書き換え制御部14は、情報処理装置1の外部から書き換え用の新たなアプリケーション構成ファイルを取得し、複数のバックアップファイル領域に記憶されている複数のバックアップファイルのうち、所定のバックアップファイルを上記新たなアプリケーション構成ファイルで書き換え、ファイル領域に記憶されているアプリケーション構成ファイルを上記書き換え後の所定のバックアップファイルで書き換える。そして、書き換え制御部14は、当該書き換え後のアプリケーション構成ファイルが実行された際に、異常がない場合は、複数のバックアップファイルのうち、所定のバックアップファイル以外のすべてのバックアップファイルを、書き換え後の所定のバックアップファイルまたは書き換え後のアプリケーション構成ファイルで書き換え、異常があった場合は、ファイル領域に記憶されているアプリケーション構成ファイルを、所定のバックアップファイル以外のバックアップファイルで書き換える。
なお、書き換え制御部14は、バックアッププログラムを新たな起動プログラムで書き換える場合、例えば、新たな起動プログラムを新たなバックアッププログラムとしてバックアップ領域にコピーする。また例えば、書き換え制御部14は、バックアップ領域に記憶されているバックアッププログラムを新たな起動プログラムで上書きする。起動プログラムをバックアッププログラムで書き換える場合や、バックアップファイルを新たなアプリケーション構成ファイルで書き換える場合などについても同様である。
また、プログラム書き換え処理およびファイル書き換え処理において、書き換え制御部14により外部から取得される新たな起動プログラムおよびアプリケーション構成ファイルは、現在不揮発性メモリ2に記憶されている起動プログラム等と同じものであってもよいし、現在記憶されている起動プログラム等より新しいバージョンのものであってもよい。
[情報処理装置の動作]
図4は、本実施の形態に係る情報処理装置1の動作を示すフローチャートである。以下、図4を参照して、情報処理装置1の動作について説明する。
システムリセットが解除されると、CPU4は、不揮発性メモリ2内のブートプログラム100が記憶されている所定のアドレス(以下、「ブートアドレス」と称す)へとアクセスし、ワークメモリ3へブートプログラム100とそのチェックサム値101を転送する。そして、CPU4は、ワークメモリ3からブートプログラム100を読み出し、ブートプログラム100に記述されている初期化処理を含む起動処理を実行する(S1)。なお、本例では、ブートアドレスは固定のアドレスである。
次に、CPU4は、ブートプログラム100に記述されている命令に従い、カーネルプログラム106が記憶されているアドレスへジャンプし、カーネルプログラム106とそのチェックサム値107をワークメモリ3へ転送する。そして、CPU4は、ワークメモリ3からカーネルプログラム106を読み出し、カーネルプログラム106に記述されている起動処理を実行する(S5)。
次に、カーネルプログラム106の起動が完了すると、CPU4は、不揮発性メモリ2からカーネル内で予め指定されているアプリケーションを起動するためのアプリケーション構成ファイルA112およびアプリケーション構成ファイルB114と、それぞれのチェックサム値113および115とをワークメモリ3へ転送する。そして、CPU4は、ワークメモリ3からアプリケーション構成ファイルA112およびアプリケーション構成ファイルB114を読み出し、アプリケーション構成ファイルA112およびアプリケーション構成ファイルB114に記述されている起動処理を実行することでアプリケーションを起動し、ユーザへ所望のアプリケーションを提供する(S10)。なお、アプリケーション構成ファイルA112およびアプリケーション構成ファイルB114は、1つずつ順番に実行されてもよいし、互いに並行して実行されてもよい。
一方で、CPU4は、ブートプログラム100に記述されている並列制御を実行することにより、ステップS1のブートプログラム100の起動処理に並行して、ブートプログラム100に記述されている誤り検出処理を実行し、ブートプログラム100のチェックサム値を計算する(S2)。そして、CPU4は、計算されたチェックサム値とブートプログラム100のチェックサム値101とが一致するか否かを判断し(S3)、両者が一致しない場合は(S3:NO)、ブートプログラム100に不正なビット変化があると判定し、再起動処理(S4)へと進む。この再起動処理では、CPU4は、ブートプログラム100をブートプログラム第1バックアップ102またはブートプログラム第2バックアップ104で書き換える復旧処理を行い、書き換え後のブートプログラム100によりシステムの再起動を行う。再起動処理(S4)については後に詳しく説明する。
一方、計算されたブートプログラム100のチェックサム値がチェックサム値101と一致している場合(S3:YES)、CPU4は、ブートプログラム100に不正なビット変化がないと判定し、ブートプログラム100に続いて読み出されるカーネルプログラム106のチェックサム値を計算する(S6)。そして、CPU4は、計算されたチェックサム値とカーネルプログラム106のチェックサム値107とが一致するか否かを判断し(S7)、両者が一致しない場合は(S7:NO)、カーネルプログラム106に不正なビット変化があると判定し、再起動処理(S8)へと進む。この再起動処理では、CPU4は、カーネルプログラム106をカーネルプログラム第1バックアップ108またはカーネルプログラム第2バックアップ110で書き換える復旧処理を行い、書き換え後のカーネルプログラム106によりシステムの再起動を行う。再起動処理(S8)については後に詳しく説明する。
一方、計算されたカーネルプログラム106のチェックサム値がチェックサム値107と一致している場合(S7:YES)、CPU4は、カーネルプログラム106に不正なビット変化がないと判定し、カーネルプログラム106に続いて読み出されるアプリケーション構成ファイルA112のチェックサム値を計算する(S11)。そして、CPU4は、計算されたチェックサム値とアプリケーション構成ファイルA112のチェックサム値113とが一致するか否かを判断し(S12)、両者が一致しない場合は(S12:NO)、アプリケーション構成ファイルA112に不正なビット変化があると判定し、再起動処理(S13)へと進む。この再起動処理では、CPU4は、アプリケーション構成ファイルA112をアプリケーション構成ファイルA第1バックアップ116またはアプリケーション構成ファイル第2バックアップ120で書き換える復旧処理を行い、書き換え後のアプリケーション構成ファイルA112によりアプリケーションの再起動を行う。再起動処理(S13)については後に詳しく説明する。
一方、計算されたアプリケーション構成ファイルA112のチェックサム値がチェックサム値113と一致している場合は(S12:YES)、CPU4は、アプリケーション構成ファイルA112に不正なビット変化がないと判定し、他に読み出されるアプリケーション構成ファイルがある場合は、読み出されたアプリケーション構成ファイルについて上記アプリケーション構成ファイルA112に対する処理と同様の処理を行い(S11,S12)、他に読み出されるアプリケーション構成ファイルが無い場合は、待機状態となる。例えば、アプリケーション構成ファイルA112に続いてアプリケーション構成ファイルB114が読み出される場合、CPU4は、アプリケーション構成ファイルA112に対する処理に続いて、アプリケーション構成ファイルB114に対する処理を行い(S11,S12)、待機状態となる。ただし、アプリケーション構成ファイルB114がアプリケーション構成ファイルA112と並行して実行される場合、CPU4は、アプリケーション構成ファイルA112に対する処理と並行して、アプリケーション構成ファイルB114に対する処理を行ってもよい。
なお、図4のステップS1、S5、およびS10は、それぞれ、CPU4が、ブートプログラム、カーネルプログラム、およびアプリケーション構成ファイルに記述されている起動処理を実行することにより実現される。ステップS2とS3、ステップS6とS7、およびステップS11とS12は、それぞれ、CPU4が、ブートプログラム、カーネルプログラム、およびアプリケーション構成ファイルに記述されている誤り検出処理を実行することにより実現される。ステップS4、ステップS8、およびステップS13は、それぞれ、CPU4が、ブートプログラム、カーネルプログラム、およびアプリケーション構成ファイルに記述されている再起動処理を実行することにより実現される。すなわち、ステップS1、S5、およびS10は処理実行部11の処理であり、ステップS2、S3、S6、S7、S11、およびS12は誤り検出部12の処理であり、ステップS4、S8、およびS13は再起動部13の処理である。
[再起動処理]
図5は、再起動処理を示すフローチャートである。以下、図5を参照して、図4のステップS4、S8、およびS13における再起動処理について説明する。
まず、ステップS4の再起動処理について説明する。ステップS4の再起動処理では、図5に示されるように、まず、CPU4は、起動処理(ステップS1の処理)を停止する(S21)。次に、CPU4は、不揮発性メモリ2に記憶されている起動履歴情報126を参照し、変更する(S22)。
ここで、起動履歴情報126について説明する。本例では、起動履歴情報126は、起動を行っているプログラムやファイルの書き換え元(またはコピー元)を表す情報である。図6は、起動履歴情報126のフォーマットを示す図である。図6において、起動履歴情報126は、ブートプログラム100、カーネルプログラム106、アプリケーション構成ファイルA112、およびアプリケーション構成ファイルB114の各々に対応する起動履歴値を含む。ブートプログラム100、カーネルプログラム106、アプリケーション構成ファイルA112、およびアプリケーション構成ファイルB114の起動履歴値は、それぞれ不揮発性メモリ2のアドレスN、N+1、N+2、およびN+3に記録される。アドレスNには、ブートプログラム100が初めて起動される場合は「0」が書き込まれており、再起動処理(S4)が行われるまでアドレスNの値は「0」のままとなる。再起動処理(S4)が行われ、ブートプログラム100がブートプログラム第1バックアップ102で書き換えられたプログラムとなっている場合は、アドレスNに「1」が書き込まれ、ブートプログラム100がブートプログラム第2バックアップ104で書き換えられたプログラムとなっている場合は、アドレスNに「2」が書き込まれる。すなわち、アドレスNには、「0」、「1」、または「2」が書き込まれ、アドレスNの起動履歴値「0」は、ブロックB1に記憶されているブートプログラム100が再起動処理(S4)で書き換えられたものでないこと(すなわち初期プログラムであること)を示し、起動履歴値「1」は、ブロックB1に記憶されているブートプログラム100が再起動処理(S4)においてブートプログラム第1バックアップ102で書き換えられたものであることを示し、起動履歴値「2」は、ブロックB1に記憶されているブートプログラム100が再起動処理(S4)においてブートプログラム第2バックアップ104で書き換えられたものであることを示す。したがって、CPU4は、起動履歴情報126のアドレスNの起動履歴値を参照することで、現在起動に用いられているブートプログラム100の書き換え元(またはコピー元)となるプログラムを知ることができる。
ここで、本例では、再起動処理(S4)におけるブートプログラム100の書き換えの順序を、最初の再起動処理ではブートプログラム第1バックアップ102で書き換え、次の再起動処理ではブートプログラム第2バックアップ104で書き換えるという順番としている。この書き換えの順序は、カーネルプログラム106、アプリケーション構成ファイルA112、およびアプリケーション構成ファイルB114についても同様である。
例えば、不揮発性メモリ2内には、ブートプログラム100、カーネルプログラム106、アプリケーション構成ファイルA112、およびアプリケーション構成ファイルB114のそれぞれについて、バックアッププログラムまたはバックアップファイルの書き換えの順序を示した書き換え順番情報128が記録されており、CPU4は、書き換え順番情報128を参照して書き換えの順番を決定する。すなわち、CPU4は、書き換え順番情報128に基づいて、下記ステップS22以降の処理を行う。この構成では、書き換えの順番を変更したい場合は、書き換え順番情報を変更すればよい。例えば、情報処理装置1の製造者は、所望の順番を示す書き換え順番情報を不揮発性メモリ2に記録することにより、書き換えの順番を所望の順番に設定することができる。また、情報処理装置1は、例えば各ブロックの誤り検出率等の情報や使用者からの操作に応じて、書き換え順番情報を変更してもよい。
図5に戻り、ステップS22において、CPU4は、ブートプログラム100の起動履歴値が「0」の場合、ブートプログラム100をブートプログラム第1バックアップ102で書き換えることになるため、ブートプログラム100の起動履歴値を「1」に変更する。また、CPU4は、ブートプログラム100の起動履歴値が「1」の場合、ブートプログラム100をブートプログラム第2バックアップ104で書き換えることになるため、ブートプログラム100の起動履歴値を「2」に変更する。また、CPU4は、ブートプログラム100の起動履歴値が「2」の場合には、ブートプログラム100の起動履歴値を変更しない。
ついで、CPU4は、バックアッププログラムによるブートプログラム100の書き換えが可能か否かを判断する(S23)。具体的には、CPU4は、アドレスNのブートプログラム100の起動履歴値が「0」または「1」である場合には書き換えが可能であると判断し、起動履歴値が「2」である場合には書き換えが可能でないと判断する。なお、当該ステップS23の判断は、ステップS22で参照された起動履歴値、すなわちステップS22で変更される前の起動履歴値に基づいて行われる。
そして、書き換えが可能と判断された場合(S23:YES)、CPU4は、ブロックB1に記憶されているブートプログラム100とそのチェックサム値101を、バックアッププログラムとそのチェックサム値で書き換える(S24)。具体的には、CPU4は、ブートプログラム100の起動履歴値が「0」となっている場合、ブートプログラム第1バックアップ102とそのチェックサム値103を新たなブートプログラム100とそのチェックサム値101としてブロックB1にコピーし、ブートプログラム100の起動履歴値が「1」となっている場合、ブートプログラム第2バックアップ104とそのチェックサム値105を新たなブートプログラム100とそのチェックサム値101としてブロックB1にコピーする。ブートプログラム100およびチェックサム値101の書き換えが完了すると、CPU4は、システムの再起動を行う(S25)。具体的には、CPU4は、書き換えが完了すると、ソフトウェアリセットをかけて、ブートアドレスへアクセスし、図4の処理を最初から行う。すなわち、図4において、処理がステップS4からステップS1に戻り、再度ブートプログラム100の起動処理が行われる。この場合、書き換え後のブートプログラム100が読み出されて実行されることになる。なお、上記ステップS24の処理は、ステップS22で参照された起動履歴値、すなわちステップS22で変更される前の起動履歴値に基づいて行われる。
一方、ブートプログラム100の書き換えが可能でないと判断された場合(S23:NO)、CPU4は、新たに外部からブートプログラムを取得する必要がある旨を知らせるメッセージを不図示の表示部などに出力し(S26)、ブートプログラムを外部からのブートプログラムで書き換えるためのプログラム書き換え処理(S27)へと進む。プログラム書き換え処理については後に詳しく説明する。
なお、上記の説明では、ブートプログラム100の書き換えの順番として、ブートプログラム第1バックアップ102、ブートプログラム第2バックアップ104という順番を例示したが、ブートプログラム第2バックアップ104、ブートプログラム第1バックアップ102という順番であってもよい。この場合、CPU4は、ブートプログラム100の起動履歴値が「0」の場合、起動履歴値を「2」に変更するとともにブートプログラム100をブートプログラム第2バックアップ104で書き換え、起動履歴値が「2」の場合、起動履歴値を「1」に変更するとともにブートプログラム100をブートプログラム第1バックアップ102で書き換え、起動履歴値が「1」の場合、起動履歴値を変更せずにプログラム書き換え処理を行う。これは、カーネルプログラム106、アプリケーション構成ファイルA112、およびアプリケーション構成ファイルB114についても同様である。
次に、ステップS8の再起動処理について説明する。ステップS8の再起動処理では、図5に示されるように、まず、CPU4は、起動処理(ステップS5の処理)を停止する(S21)。次に、CPU4は、不揮発性メモリ2に記憶されている起動履歴情報126のアドレスN+1の起動履歴値を参照し、変更する(S22)。
ここで、起動履歴情報126のアドレスN+1の起動履歴値について説明する。図6において、起動履歴情報126のアドレスN+1には、上記アドレスNの場合と同様に、カーネルプログラム106の起動履歴値として、「0」、「1」、または「2」が記録される。カーネルプログラム106の起動履歴値「0」は、ブロックB4に記憶されているカーネルプログラム106が再起動処理(S8)で書き換えられたものでないことを示し、起動履歴値「1」は、ブロックB4に記憶されているカーネルプログラム106が再起動処理(S8)においてカーネルプログラム第1バックアップ108で書き換えられたものであることを示し、起動履歴値「2」は、ブロックB4に記憶されているカーネルプログラム106が再起動処理(S8)においてカーネルプログラム第2バックアップ110で書き換えられたものであることを示す。
図5に戻り、ステップS22において、CPU4は、カーネルプログラム106の起動履歴値が「0」の場合、カーネルプログラム106をカーネルプログラム第1バックアップ108で書き換えることになるため、カーネルプログラム106の起動履歴値を「1」に変更する。また、CPU4は、カーネルプログラム106の起動履歴値が「1」の場合、カーネルプログラム106をカーネルプログラム第2バックアップ110で書き換えることになるため、カーネルプログラム106の起動履歴値を「2」に変更する。また、CPU4は、カーネルプログラム106の起動履歴値が「2」の場合には、カーネルプログラム106の起動履歴値を変更しない。
ついで、CPU4は、バックアッププログラムによるカーネルプログラム106の書き換えが可能か否かを判断する(S23)。具体的には、CPU4は、アドレスN+1のカーネルプログラム106の起動履歴値が「0」または「1」である場合には書き換えが可能であると判断し、起動履歴値が「2」である場合には書き換えが可能でないと判断する。なお、当該ステップS23の判断は、ステップS22で参照された起動履歴値、すなわちステップS22で変更される前の起動履歴値に基づいて行われる。
そして、書き換えが可能と判断された場合(S23:YES)、CPU4は、ブロックB4に記憶されているカーネルプログラム106とそのチェックサム値107を、バックアッププログラムとそのチェックサム値で書き換える(S24)。具体的には、CPU4は、カーネルプログラム106の起動履歴値が「0」となっている場合、カーネルプログラム第1バックアップ108とそのチェックサム値109を新たなカーネルプログラム106とそのチェックサム値107としてブロックB4にコピーし、カーネルプログラム106の起動履歴値が「1」となっている場合、カーネルプログラム第2バックアップ110とそのチェックサム値111を新たなカーネルプログラム106とそのチェックサム値107としてブロックB4にコピーする。カーネルプログラム106およびチェックサム値107の書き換えが完了すると、CPU4は、システムの再起動を行う(S25)。具体的には、CPU4は、書き換えが完了すると、ソフトウェアリセットをかけて、ブートプログラム100が記憶されているブートアドレスへアクセスし、図4の処理を最初から行う。すなわち、図4において、処理がステップS8からステップS1に戻り、再度ブートプログラム100の起動処理が行われる。再起動後の処理では、書き換え後のカーネルプログラム106が読み出されて実行されることになる。なお、上記ステップS24の処理は、ステップS22で参照された起動履歴値、すなわちステップS22で変更される前の起動履歴値に基づいて行われる。
一方、カーネルプログラム106の書き換えが可能でないと判断された場合(S23:NO)、CPU4は、新たに外部からカーネルプログラムを取得する必要がある旨を知らせるメッセージを出力し(S26)、カーネルプログラム106を外部からのカーネルプログラムで書き換えるためのプログラム書き換え処理(S27)へと進む。プログラム書き換え処理については後に詳しく説明する。
次に、ステップS13の再起動処理について説明する。ステップS13の再起動処理では、図5に示されるように、まず、CPU4は、起動処理(ステップS10の処理)を停止する(S21)。次に、CPU4は、不揮発性メモリ2に記憶されている起動履歴情報126のアドレスN+2の起動履歴値を参照し、変更する(S22)。
ここで、起動履歴情報126のアドレスN+2の起動履歴値について説明する。図6において、起動履歴情報126のアドレスN+2には、上記アドレスNの場合と同様に、アプリケーション構成ファイルA112の起動履歴値として、「0」、「1」、または「2」が記録される。アプリケーション構成ファイルA112の起動履歴値「0」は、ブロックB7に記憶されているアプリケーション構成ファイルA112が再起動処理(S13)で書き換えられたものでないことを示し、起動履歴値「1」は、ブロックB7に記憶されているアプリケーション構成ファイルA112が再起動処理(S13)においてアプリケーション構成ファイルA第1バックアップ116で書き換えられたものであることを示し、起動履歴値「2」は、ブロックB7に記憶されているアプリケーション構成ファイルA112が再起動処理(S13)においてアプリケーション構成ファイルA第2バックアップ120で書き換えられたものであることを示す。
図5に戻り、ステップS22において、CPU4は、アプリケーション構成ファイルA112の起動履歴値が「0」の場合、アプリケーション構成ファイルA112をアプリケーション構成ファイルA第1バックアップ116で書き換えることになるため、アプリケーション構成ファイルA112の起動履歴値を「1」に変更する。また、CPU4は、アプリケーション構成ファイルA112の起動履歴値が「1」の場合、アプリケーション構成ファイルA112をアプリケーション構成ファイルA第2バックアップ120で書き換えることになるため、アプリケーション構成ファイルA112の起動履歴値を「2」に変更する。また、CPU4は、アプリケーション構成ファイルA112の起動履歴値が「2」の場合には、アプリケーション構成ファイルA112の起動履歴値を変更しない。
ついで、CPU4は、バックアップファイルによるアプリケーション構成ファイルA112の書き換えが可能か否かを判断する(S23)。具体的には、CPU4は、アドレスN+2のアプリケーション構成ファイルA112の起動履歴値が「0」または「1」である場合には書き換えが可能であると判断し、起動履歴値が「2」である場合には書き換えが可能でないと判断する。なお、当該ステップS23の判断は、ステップS22で参照された起動履歴値、すなわちステップS22で変更される前の起動履歴値に基づいて行われる。
そして、書き換えが可能と判断された場合(S23:YES)、CPU4は、ブロックB7に記憶されているアプリケーション構成ファイルA112とそのチェックサム値113を、バックアップファイルとそのチェックサム値で書き換える(S24)。具体的には、CPU4は、アプリケーション構成ファイルA112の起動履歴値が「0」となっている場合、アプリケーション構成ファイルA第1バックアップ116とそのチェックサム値117を新たなアプリケーション構成ファイルA112とそのチェックサム値113としてブロックB7にコピーし、アプリケーション構成ファイルA112の起動履歴値が「1」となっている場合、アプリケーション構成ファイルA第2バックアップ120とそのチェックサム値121を新たなアプリケーション構成ファイルA112とそのチェックサム値113としてブロックB7にコピーする。アプリケーション構成ファイルA112およびチェックサム値113の書き換えが完了すると、CPU4は、アプリケーションの再起動を行う(S25)。具体的には、CPU4は、書き換えが完了すると、システムが起動した状態(具体的にはカーネルが起動した状態)で、再度アプリケーション構成ファイルA112をロードする。すなわち、図4において、処理がステップS13からステップS10に移行し、再度アプリケーション構成ファイルA112が読み出されてアプリケーションの起動処理が行われる。この場合、書き換え後のアプリケーション構成ファイルA112が読み出されて実行されることになる。なお、上記ステップS24の処理は、ステップS22で参照された起動履歴値、すなわちステップS22で変更される前の起動履歴値に基づいて行われる。
一方、アプリケーション構成ファイルA112の書き換えが可能でないと判断された場合(S23:NO)、CPU4は、新たに外部からアプリケーション構成ファイルを取得する必要がある旨を知らせるメッセージを出力し(S26)、アプリケーション構成ファイルA112を外部からのアプリケーション構成ファイルで書き換えるためのファイル書き換え処理(S27)へと進む。ファイル書き換え処理については後に詳しく説明する。
なお、アプリケーション構成ファイルB114についての再起動処理は、上記アプリケーション構成ファイルA112についての再起動処理と同様である。
このように、ブートプログラム100、カーネルプログラム106、アプリケーション構成ファイルA112、およびアプリケーション構成ファイルB114のバックアッププログラムによる書き換えを行う際に、起動履歴情報126を参照し、書き換えに用いるバックアッププログラムを選択することで、過去にプログラムの書き換えに用いられて当該書き換え後のプログラムに誤りが検出されたバックアッププログラム以外のバックアッププログラム(または過去に誤りが検出されたバックアッププログラム以外のバックアッププログラム)を選択することができ、より信頼性の高いバックアッププログラムにより再起動処理を行うことができる。例えば、起動プログラムを第1バックアップで書き換えた直後に起動プログラムに誤りが検出された場合に、誤りのある可能性の高い第1バックアップ以外のバックアッププログラム(例えば第2バックアップ)を選択して再起動処理を行うことができ、より信頼性の高いバックアッププログラムで再起動処理を行うことができる。
[プログラム(ファイル)書き換え処理]
図7は、図5のステップS27のプログラム(またはファイル)書き換え処理を示すフローチャートである。以下、図7を参照して、ブートプログラムのプログラム書き換え処理、カーネルプログラムのプログラム書き換え処理、およびアプリケーション構成ファイルのファイル書き換え処理について説明する。なお、ブートプログラム、カーネルプログラム、およびアプリケーション構成ファイルのプログラム(またはファイル)書き換え処理は、それぞれ、CPU4が、ブートプログラム、カーネルプログラム、およびアプリケーション構成ファイルに記述されている書き換え制御を実行することによって実現される。
まず、ブートプログラムのプログラム書き換え処理について説明する。ブートプログラムのプログラム書き換え処理では、図7に示されるように、CPU4は、外部インタフェース6に外部メモリが接続されたことを認識すると、通信部5を介して当該外部メモリから、書き換え用の新たなブートプログラムおよびそのチェックサム値を読み出し、当該新たなブートプログラムとチェックサム値で、ブートプログラム第1バックアップ102とチェックサム値103を書き換える(S31)。なお、上記外部メモリは、例えば図5のステップS26のメッセージを見たユーザによって情報処理装置1の外部インタフェース6に接続されるものであり、例えばUSBメモリ等の可搬型メモリである。
上記の書き換えが完了すると、CPU4は、書き換えフラグ情報124を変更する(S32)。
ここで、書き換えフラグ情報124について説明する。書き換えフラグ情報124は、プログラム(またはファイル)書き換え処理の実行中であるか否かを表す情報である。図8は、書き換えフラグ情報124のフォーマットを示す図である。図8において、書き換えフラグ情報124は、ブートプログラム100、カーネルプログラム106、アプリケーション構成ファイルA112、およびアプリケーション構成ファイルB114の各々に対応する書き換えフラグを含む。ブートプログラム100、カーネルプログラム106、アプリケーション構成ファイルA112、およびアプリケーション構成ファイルB114の書き換えフラグは、それぞれ不揮発性メモリ2のアドレスM、M+1、M+2、およびM+3に記録される。書き換えフラグは、通常は「0」であり、プログラム(またはファイル)書き換え処理が実行される際に「1」にされるフラグである。アドレスM、M+1、M+2、およびM+3の各々には、「0」または「1」が記録され、「0」は対応するプログラム(またはファイル)について書き換え処理中でないことを示し、「1」は対応するプログラム(またはファイル)について書き換え処理中であることを示す。
図7に戻り、ステップS32において、CPU4は、アドレスMのブートプログラム100の書き換えフラグを「0」から「1」に変更する。ブートプログラム100の書き換えフラグ「1」は、ブートプログラム第1バックアップ102が新たなブートプログラムで書き換えられたことで、ブートプログラム100およびブートプログラム第2バックアップ104と、ブートプログラム第1バックアップ102とで内容が異なっていることを表す。
次に、CPU4は、ブートプログラム100とチェックサム値101を、上記書き換え後のブートプログラム第1バックアップ102とチェックサム値103で書き換える(S33)。
上記書き換えが完了すると、CPU4は、起動履歴情報126におけるブートプログラム100に対応する起動履歴値を「1」に変更し(S34)、システムを再起動する(S35)。すなわち、CPU4は、ソフトウェアリセットをかけ、ブートアドレスへアクセスし、書き換え後のブートプログラム100を読み出して実行し、起動処理(図4のステップS1)と並行してチェックサム計算(図4のステップS2)を行う。
上記チェックサム計算が終わると、CPU4は、ブートプログラム100の書き換えフラグおよび起動履歴値を参照し、書き換えフラグが「1」となっており、かつ起動履歴値が「1」となっている場合には、図7のステップS36に進む。なお、書き換えフラグが「0」となっている場合には、図4のステップS3に進むことになり、書き換えフラグが「1」で起動履歴値が「2」の場合には、後述のステップS43に進むことになる。
ステップS36では、CPU4は、ブートプログラム100に異常があるか否かを判断する。具体的には、CPU4は、ブートプログラム100が正常に起動し、かつ計算されたチェックサム値がチェックサム値101と一致する場合には異常がないと判断し、ブートプログラム100が正常に起動しないか、またはチェックサム値が一致しない場合には異常があると判断する。
そして、異常がないと判断された場合(S36:NO)、CPU4は、ブートプログラム100に対応する起動履歴値を「0」に変更し(S37)、ブートプログラム第2バックアップ106をブートプログラム第1バックアップ104で書き換える(S38)。そして、CPU4は、ブートプログラム100の書き換えフラグを「0」に戻し(S39)、プログラム書き換え処理を終了させる。プログラム書き換え処理の終了後は、図4のステップS6に進む。
一方、異常があると判断された場合(S36:YES)、CPU4は、ブートプログラム100をブートプログラム第2バックアップ104で書き換え(S40)、ブートプログラム100に対応する起動履歴値を「2」に変更し(S41)、システムの再起動を行う(S42)。すなわち、CPU4は、ソフトウェアリセットをかけて、ブートアドレスへとアクセスし、書き換え後のブートプログラム100を読み出して実行し、起動処理(図4のステップS1)と並行してチェックサム計算(図4のステップS2)を行う。
上記チェックサム計算が終わると、CPU4は、ブートプログラム100の書き換えフラグおよび起動履歴値を参照し、書き換えフラグが「1」となっており、かつ起動履歴値が「2」となっている場合には、図7のステップS43に進む。
ステップS43では、CPU4は、上記ステップS36と同様に、ブートプログラム100に異常があるか否かを判断する。
そして、異常がないと判断された場合(S43:NO)、CPU4は、外部から取得された新たなブートプログラムに異常があった旨を、例えば不図示の表示部に表示してユーザに通知し(S44)、プログラム書き換え処理を終了させる。プログラム書き換え処理の終了後は、図4のステップS6に進む。
一方、異常があると判断された場合(S43:YES)、CPU4は、図5のステップS26に戻り、再度、新たに外部からブートプログラムを取得する必要がある旨を知らせるメッセージを出力し、プログラム書き換え処理(S27)を実行する。
次に、カーネルプログラムのプログラム書き換え処理について説明する。カーネルプログラムのプログラム書き換え処理では、図7に示されるように、CPU4は、外部インタフェース6に外部メモリが接続されたことを認識すると、当該外部メモリから、書き換え用の新たなカーネルプログラムおよびそのチェックサム値を読み出し、当該新たなカーネルプログラムとチェックサム値で、カーネルプログラム第1バックアップ108とチェックサム値109を書き換える(S31)。
上記の書き換えが完了すると、CPU4は、書き換えフラグ情報124におけるアドレスM+1のカーネルプログラム106の書き換えフラグを「0」から「1」に変更する(S32)。
次に、CPU4は、カーネルプログラム106とチェックサム値107を、上記書き換え後のカーネルプログラム第1バックアップ108とチェックサム値109で書き換える(S33)。
上記書き換えが完了すると、CPU4は、起動履歴情報126におけるカーネルプログラム106に対応する起動履歴値を「1」に変更し(S34)、システムを再起動する(S35)。すなわち、CPU4は、ソフトウェアリセットをかけ、ブートアドレスへアクセスし、ブートプログラム100を読み出して実行し、続いてカーネルプログラム106を読み出し、カーネルプログラム106の起動処理(図4のステップS5)と並行してチェックサム計算(図4のステップS6)を行う。
上記チェックサム計算が終わると、CPU4は、カーネルプログラム106の書き換えフラグおよび起動履歴値を参照し、書き換えフラグが「1」となっており、かつ起動履歴値が「1」となっている場合には、図7のステップS36に進む。なお、書き換えフラグが「0」となっている場合には、図4のステップS7に進むことになり、書き換えフラグが「1」で起動履歴値が「2」の場合には、後述のステップS43に進むことになる。
ステップS36では、CPU4は、カーネルプログラム106に異常があるか否かを判断する。具体的には、CPU4は、カーネルプログラム106が正常に起動し、かつ計算されたチェックサム値がチェックサム値107と一致する場合には異常がないと判断し、カーネルプログラム106が正常に起動しないか、またはチェックサム値が一致しない場合には異常があると判断する。
そして、異常がないと判断された場合(S36:NO)、CPU4は、カーネルプログラム106に対応する起動履歴値を「0」に変更し(S37)、カーネルプログラム第2バックアップ110をカーネルプログラム第1バックアップ108で書き換える(S38)。そして、CPU4は、カーネルプログラム106の書き換えフラグを「0」に戻し(S39)、プログラム書き換え処理を終了させる。プログラム書き換え処理の終了後は、図4のステップS11に進む。
一方、異常があると判断された場合(S36:YES)、CPU4は、カーネルプログラム106をカーネルプログラム第2バックアップ110で書き換え(S40)、カーネルプログラム106に対応する起動履歴値を「2」に変更し(S41)、システムの再起動を行う(S42)。すなわち、CPU4は、ソフトウェアリセットをかけて、ブートアドレスへとアクセスし、ブートプログラム100を読み出して実行し、続いてカーネルプログラム106を読み出し、カーネルプログラム106の起動処理(図4のステップS5)と並行してチェックサム計算(図4のステップS6)を行う。
上記チェックサム計算が終わると、CPU4は、カーネルプログラム106の書き換えフラグおよび起動履歴値を参照し、書き換えフラグが「1」となっており、かつ起動履歴値が「2」となっている場合には、図7のステップS43に進む。
ステップS43では、CPU4は、上記ステップS36と同様に、カーネルプログラム106に異常があるか否かを判断する。
そして、異常がないと判断された場合(S43:NO)、CPU4は、外部から取得された新たなカーネルプログラムに異常があった旨をユーザに通知し(S44)、プログラム書き換え処理を終了させる。プログラム書き換え処理の終了後は、図4のステップS11に進む。
一方、異常があると判断された場合(S43:YES)、CPU4は、図5のステップS26に戻り、再度、新たに外部からカーネルプログラムを取得する必要がある旨を知らせるメッセージを出力し、プログラム書き換え処理(S27)を実行する。
次に、アプリケーション構成ファイルのファイル書き換え処理について説明する。アプリケーション構成ファイルA112のファイル書き換え処理では、図7に示されるように、CPU4は、外部インタフェース6に外部メモリが接続されたことを認識すると、当該外部メモリから、書き換え用の新たなアプリケーション構成ファイルおよびそのチェックサム値を読み出し、当該新たなアプリケーション構成ファイルとチェックサム値で、アプリケーション構成ファイルA第1バックアップ116とチェックサム値117を書き換える(S31)。
上記の書き換えが完了すると、CPU4は、書き換えフラグ情報124におけるアドレスM+2のアプリケーション構成ファイルA112の書き換えフラグを「0」から「1」に変更する(S32)。
次に、CPU4は、アプリケーション構成ファイルA112とチェックサム値113を、上記書き換え後のアプリケーション構成ファイルA第1バックアップ116とチェックサム値117で書き換える(S33)。
上記書き換えが完了すると、CPU4は、起動履歴情報126におけるアプリケーション構成ファイルA112に対応する起動履歴値を「1」に変更し(S34)、アプリケーションの再起動を行う(S35)。具体的には、CPU4は、システムが起動した状態(具体的にはカーネルが起動した状態)で、再度アプリケーション構成ファイルA112を読み出し、アプリケーション構成ファイルA112の起動処理(図4のステップS10)と並行してチェックサム計算(図4のステップS11)を行う。
上記チェックサム計算が終わると、CPU4は、アプリケーション構成ファイルA112の書き換えフラグおよび起動履歴値を参照し、書き換えフラグが「1」となっており、かつ起動履歴値が「1」となっている場合には、図7のステップS36に進む。なお、書き換えフラグが「0」となっている場合には、図4のステップS12に進むことになり、書き換えフラグが「1」で起動履歴値が「2」の場合には、後述のステップS43に進むことになる。
ステップS36では、CPU4は、アプリケーション構成ファイルA112に異常があるか否かを判断する。具体的には、CPU4は、アプリケーション構成ファイルA112が正常に起動し、かつ計算されたチェックサム値がチェックサム値113と一致する場合には異常がないと判断し、アプリケーション構成ファイルA112が正常に起動しないか、またはチェックサム値が一致しない場合には異常があると判断する。
そして、異常がないと判断された場合(S36:NO)、CPU4は、アプリケーション構成ファイルA112に対応する起動履歴値を「0」に変更し(S37)、アプリケーション構成ファイルA第2バックアップ120をアプリケーション構成ファイルA第1バックアップ116で書き換える(S38)。そして、CPU4は、アプリケーション構成ファイルA112の書き換えフラグを「0」に戻し(S39)、ファイル書き換え処理を終了させる。ファイル書き換え処理の終了後は、待機状態となる。
一方、異常があると判断された場合(S36:YES)、CPU4は、アプリケーション構成ファイルA112をアプリケーション構成ファイルA第2バックアップ120で書き換え(S40)、アプリケーション構成ファイルA112に対応する起動履歴値を「2」に変更し(S41)、アプリケーションの再起動を行う(S42)。具体的には、CPU4は、システムが起動した状態(具体的にはカーネルが起動した状態)で、再度アプリケーション構成ファイルA112を読み出し、アプリケーション構成ファイルA112の起動処理(図4のステップS10)と並行してチェックサム計算(図4のステップS11)を行う。
上記チェックサム計算が終わると、CPU4は、アプリケーション構成ファイルA112の書き換えフラグおよび起動履歴値を参照し、書き換えフラグが「1」となっており、かつ起動履歴値が「2」となっている場合には、図7のステップS43に進む。
ステップS43では、CPU4は、上記ステップS36と同様に、アプリケーション構成ファイルA112に異常があるか否かを判断する。
そして、異常がないと判断された場合(S43:NO)、CPU4は、外部から取得された新たなアプリケーション構成ファイルに異常があった旨をユーザに通知し(S44)、ファイル書き換え処理を終了させる。ファイル書き換え処理の終了後は、待機状態となる。
一方、異常があると判断された場合(S43:YES)、CPU4は、図5のステップS26に戻り、再度、新たに外部からアプリケーション構成ファイルを取得する必要がある旨を知らせるメッセージを出力し、ファイル書き換え処理(S27)を実行する。
なお、アプリケーション構成ファイルB114のファイル書き換え処理は、上記アプリケーション構成ファイルA112のファイル書き換え処理と同様である。
[バックアップ確認処理]
さらに、情報処理装置1は、図4の処理において誤り検出処理が待機状態となっている間に、バックアッププログラムやバックアップファイルの誤りの有無(正当性)を確認するバックアップ確認処理を行ってもよい。上記待機状態となっている間とは、具体的には、図4のステップS3でYESと判定された後、ステップS6が開始されるまでの待機期間、ステップS7でYESと判定された後、ステップS11が開始されるまでの待機期間、および、ステップS12でYESと判定された後、ステップS10が終了するまでの待機期間である。図9は、バックアップ確認処理を示すフローチャートである。以下、図9を参照して、バックアップ確認処理について説明する。
CPU4は、ブートプログラム第1バックアップ102とブートプログラム第2バックアップ104とを比較し、両者が一致するか否かを判断し(S51)、一致しない場合(S51:NO)、ステップS52へ進み、一致する場合(S51:YES)、ステップS53へ進む。
ステップS52では、CPU4は、ブートプログラム第1バックアップ102およびブートプログラム第2バックアップ104の各々のチェックサム値を演算し、演算されたブートプログラム第1バックアップ102のチェックサム値がチェックサム値103と一致するかどうか、演算されたブートプログラム第2バックアップ104のチェックサム値がチェックサム値105と一致するかどうかを判定し、一致した方のバックアッププログラムで他方のバックアッププログラムを書き換え、ステップS53へ進む。なお、ブートプログラム第1バックアップ102およびブートプログラム第2バックアップ104の両方ともチェックサム値が一致しなかった場合には、例えば、ブートプログラム第1バックアップ102およびブートプログラム第2バックアップ104を、ブートプログラム100で書き換えてもよいし、外部から取得される新たなブートプログラムで書き換えてもよい。
ステップS53では、CPU4は、カーネルプログラム第1バックアップ108とカーネルプログラム第2バックアップ110とを比較し、両者が一致するか否かを判断し、一致しない場合(S53:NO)、ステップS54へ進み、一致する場合(S53:YES)、ステップS55へ進む。
ステップS54では、CPU4は、カーネルプログラム第1バックアップ108およびカーネルプログラム第2バックアップ110の各々のチェックサム値を演算し、演算されたカーネルプログラム第1バックアップ108のチェックサム値がチェックサム値109と一致するかどうか、演算されたカーネルプログラム第2バックアップ110のチェックサム値がチェックサム値111と一致するかどうかを判定し、一致した方のバックアッププログラムで他方のバックアッププログラムを書き換え、ステップS55へ進む。なお、カーネルプログラム第1バックアップ108およびカーネルプログラム第2バックアップ110の両方ともチェックサム値が一致しなかった場合には、例えば、カーネルプログラム第1バックアップ108およびカーネルプログラム第2バックアップ110を、カーネルプログラム106で書き換えてもよいし、外部から取得される新たなカーネルプログラムで書き換えてもよい。
ステップS55では、CPU4は、アプリケーション構成ファイルA第1バックアップ116とアプリケーション構成ファイルA第2バックアップ120とを比較し、両者が一致するか否かを判断し、一致しない場合(S55:NO)、ステップS56へ進み、一致する場合(S55:YES)、ステップS57へ進む。
ステップS56では、CPU4は、アプリケーション構成ファイルA第1バックアップ116およびアプリケーション構成ファイルA第2バックアップ120の各々のチェックサム値を演算し、演算されたアプリケーション構成ファイルA第1バックアップ116のチェックサム値がチェックサム値117と一致するかどうか、演算されたアプリケーション構成ファイルA第2バックアップ120のチェックサム値がチェックサム値121と一致するかどうかを判定し、一致した方のバックアップファイルで他方のバックアップファイルを書き換え、ステップS57へ進む。なお、アプリケーション構成ファイルA第1バックアップ116およびアプリケーション構成ファイルA第2バックアップ120の両方ともチェックサム値が一致しなかった場合には、例えば、アプリケーション構成ファイルA第1バックアップ116およびアプリケーション構成ファイルA第2バックアップ120を、アプリケーション構成ファイルA112で書き換えてもよいし、外部から取得される新たなアプリケーション構成ファイルで書き換えてもよい。
ステップS57では、CPU4は、アプリケーション構成ファイルB第1バックアップ118とアプリケーション構成ファイルB第2バックアップ122とを比較し、両者が一致するか否かを判断し、一致しない場合(S57:NO)、ステップS58へ進み、一致する場合(S57:YES)、バックアップ確認処理を終了して待機状態となる。
ステップS58では、CPU4は、アプリケーション構成ファイルB第1バックアップ118およびアプリケーション構成ファイルB第2バックアップ122に対して上記ステップS56と同様の処理を行った後、バックアップ確認処理を終了して待機状態となる。
[効果]
以上説明した本実施の形態によれば、下記(1)〜(16)の効果が得られ得る。
(1)本実施の形態に係る情報処理装置は、起動プログラムを実行してシステムの起動処理を行い、この起動処理と並行して起動プログラムに対して誤り検出を行うように構成されている。このため、本実施の形態によれば、起動プログラムに対して誤り検出を行った後にシステムの起動処理を開始する構成と比較して、システムの起動処理の開始を早くすることができる。これにより、例えば、システムの起動画面が表示されるタイミングを早くすることができる。また、本実施の形態に係る情報処理装置は、起動プログラムに誤りが検出された場合に、バックアッププログラムを用いてシステムの再起動を行う。このため、起動プログラムに誤りがある場合、より信頼性の高い起動プログラムによりシステムの起動を行うことができる。
特に、近年、機器の高機能化が進むに伴って起動プログラムのデータ容量が著しく増えており、これにより起動プログラムに対する誤り検出処理の処理時間が長くなっており、起動プログラムに対して誤り検出を行った後にシステムの起動処理を開始する構成では、システムの起動処理の開始が著しく遅くなるという問題がある。本実施の形態によれば、この問題を解決することができる。
図10は、誤り検出後に起動処理を行う構成における処理時間を示すグラフである。図10の横軸は時間であり、図10には、ブートプログラムの誤り検出処理の処理時間T1、ブートプログラムの起動処理の処理時間T2、カーネルプログラムの誤り検出処理の処理時間T3、カーネルプログラムの起動処理の処理時間T4、アプリケーション構成ファイルの誤り検出処理の処理時間T5、およびアプリケーション構成ファイルの起動処理の処理時間T6が示されている。
図11は、本実施の形態の構成における処理時間を示すグラフである。図11の横軸は時間であり、図11には、ブートプログラムの誤り検出処理の処理時間T11、ブートプログラムの起動処理の処理時間T12、カーネルプログラムの誤り検出処理の処理時間T13、カーネルプログラムの起動処理の処理時間T14、アプリケーション構成ファイルの誤り検出処理の処理時間T15、およびアプリケーション構成ファイルの起動処理の処理時間T16が示されている。
図10および図11から、本実施の形態では、誤り検出後に起動処理を行う構成と比較して、ブートプログラム、カーネルプログラム、およびアプリケーション構成ファイルの起動処理の開始タイミングが早くなっていることが分かる。
(2)情報処理装置は、起動プログラムに誤りが検出された場合に、プログラム領域に記憶されている起動プログラムを、バックアップ領域に記憶されているバックアッププログラムで書き換える復旧処理を行い、当該書き換え後のプログラムによりシステムの再起動を行う。本態様によれば、誤りのある起動プログラムをバックアッププログラムで書き換えることで、正しい起動プログラムを増やすことができ、システムの起動の信頼性を高めることができる。
(3)情報処理装置は、復旧処理を行う際、起動プログラムのバックアッププログラムによる書き換えの履歴を示す履歴情報を参照し、書き換えに用いるバックアッププログラムを選択する。これにより、起動プログラムに誤りが検出された場合に、信頼性の高いプログラムで再起動を行うことができる。具体的には、過去にプログラムの書き換えに用いられて当該書き換え後のプログラムに誤りが検出されたバックアッププログラム以外のバックアッププログラム(または過去に誤りが検出されたバックアッププログラム以外のバックアッププログラム)を選択することができ、より信頼性の高いバックアッププログラムにより再起動処理を行うことができる。
(4)情報処理装置は、復旧処理にて、バックアッププログラムの書き換えの順番を示す書き換え順番情報を参照し、書き換え順番情報と履歴情報とに基づいて、書き換えに用いるバックアッププログラムを選択する。本態様によれば、書き換え順番情報を変更することによって書き換えの順番を変更することができる。これにより、例えば、不揮発性メモリのデッドブロックや誤り検出率が多いブロックに記録されているバックアッププログラムの順番を遅くすることができ、より信頼性の高いバックアッププログラムを優先的に用いて書き換えを行うことができる。ここで、デッドブロックとは、所定の書き換え制限回数を超えてしまったブロックや半導体の初期不良ブロックなど、正常なリード/ライトが行えなくなってしまったブロックである。
(5)情報処理装置は、復旧処理にて、書き換えに用いるバックアッププログラムとして、まだ書き換えに用いられていないバックアッププログラムを選択する。本態様によれば、信頼性の高いバックアッププログラムにより再起動処理を行うことができる。
(6)情報処理装置は、起動プログラムを新たな起動プログラムで書き換えるプログラム書き換え処理において、新たな起動プログラムを取得し、複数のバックアップ領域に記憶されている複数のバックアッププログラムのうち、所定のバックアッププログラムを新たな起動プログラムで書き換え、プログラム領域に記憶されている起動プログラムを所定のバックアッププログラムで書き換え、当該書き換え後の起動プログラムが実行された際に、異常がない場合は、複数のバックアッププログラムのうち、所定のバックアッププログラム以外のバックアッププログラムを、書き換え後の所定のバックアッププログラムまたは書き換え後の起動プログラムで書き換え、異常があった場合は、プログラム領域に記憶されている起動プログラムを、所定のバックアッププログラム以外のバックアッププログラムで書き換える。本態様によれば、起動プログラムを新たな起動プログラムで書き換える際に、書き換え後の新たな起動プログラムに異常があった場合に(例えば、正常に起動できない場合や、不正なビット変化が確認された場合に)、新たな起動プログラムのバックアップを確保しつつ、プログラム領域の起動プログラムを書き換え前の状態に戻すことができる。このため、例えば、新たな起動プログラムにエラーがあり、システムを起動できない場合に、元の起動プログラムに戻すことができずシステムの起動ができなくなってしまうことを防ぐことができる。
(7)情報処理装置は、アプリケーション構成ファイルを実行してアプリケーションの起動処理を行い、この起動処理と並行してアプリケーション構成ファイルに対して誤り検出を行う。本態様によれば、アプリケーション構成ファイルに対して誤り検出を行った後にアプリケーションの起動処理を開始する構成と比較して、アプリケーションの起動処理の開始を早くすることができる。これにより、例えば、アプリケーションの起動画面が表示されるタイミングを早くすることができる。また、情報処理装置は、アプリケーション構成ファイルに誤りが検出された場合に、バックアップファイルを用いてアプリケーションの再起動を行う。このため、アプリケーション構成ファイルに誤りがある場合、より信頼性の高いアプリケーション構成ファイルによりアプリケーションの起動を行うことができる。
(8)情報処理装置は、アプリケーション構成ファイルに誤りが検出された場合に、ファイル領域に記憶されているアプリケーション構成ファイルを、バックアップファイル領域に記憶されているバックアップファイルで書き換える復旧処理を行い、当該書き換え後のアプリケーション構成ファイルによりアプリケーションの再起動を行う。本態様によれば、誤りのあるアプリケーション構成ファイルをバックアップファイルで書き換えることで、正しいアプリケーション構成ファイルを増やすことができ、アプリケーションの起動の信頼性を高めることができる。
(9)情報処理装置は、復旧処理の際に、アプリケーション構成ファイルのバックアップファイルによる書き換えの履歴を示す履歴情報を参照し、書き換えに用いるバックアップファイルを選択する。これにより、アプリケーション構成ファイルに誤りが検出された場合に、信頼性の高いファイルで再起動を行うことができる。具体的には、過去にアプリケーション構成ファイルの書き換えに用いられて当該書き換え後のアプリケーション構成ファイルに誤りが検出されたバックアップファイル以外のバックアップファイル(または過去に誤りが検出されたバックアップファイル以外のバックアップファイル)を選択することができ、より信頼性の高いバックアップファイルにより再起動処理を行うことができる。
(10)情報処理装置は、復旧処理にて、バックアップファイルの書き換えの順番を示す書き換え順番情報を参照し、書き換え順番情報と履歴情報とに基づいて、書き換えに用いるバックアップファイルを選択する。本態様によれば、書き換え順番情報を変更することによって書き換えの順番を変更することができる。これにより、例えば、不揮発性メモリのデッドブロックや誤り検出率が多いブロックに記録されているバックアップファイルの順番を遅くすることができ、より信頼性の高いバックアップファイルを優先的に用いて書き換えを行うことができる。
(11)情報処理装置は、復旧処理にて、書き換えに用いるバックアップファイルとして、まだ書き換えに用いられていないバックアップファイルを選択する。本態様によれば、信頼性の高いバックアップファイルにより再起動処理を行うことができる。
(12)情報処理装置は、アプリケーション構成ファイルを新たなアプリケーション構成ファイルで書き換えるファイル書き換え処理において、新たなアプリケーション構成ファイルを取得し、複数のバックアップファイル領域に記憶されている複数のバックアップファイルのうち、所定のバックアップファイルを新たなアプリケーション構成ファイルで書き換え、ファイル領域に記憶されているアプリケーション構成ファイルを所定のバックアップファイルで書き換え、当該書き換え後のアプリケーション構成ファイルが実行された際に、異常がない場合は、複数のバックアップファイルのうち、所定のバックアップファイル以外のバックアップファイルを、書き換え後の所定のバックアップファイルまたは書き換え後のアプリケーション構成ファイルで書き換え、異常があった場合は、ファイル領域に記憶されているアプリケーション構成ファイルを、所定のバックアップファイル以外のバックアップファイルで書き換える。本態様によれば、アプリケーション構成ファイルを新たなアプリケーション構成ファイルで書き換える際に、書き換え後の新たなアプリケーション構成ファイルに異常があった場合に(例えば、正常に起動できない場合や、不正なビット変化が確認された場合に)、新たなアプリケーション構成ファイルのバックアップを確保しつつ、ファイル領域のアプリケーション構成ファイルを書き換え前の状態に戻すことができる。このため、例えば、新たなアプリケーション構成ファイルにエラーがあり、アプリケーションを起動できない場合に、元のアプリケーション構成ファイルに戻すことができずアプリケーションの起動ができなくなってしまうことを防ぐことができる。
(13)不揮発性メモリのファイル領域は、複数のアプリケーション構成ファイルをアプリケーション構成ファイルごとに読み出し可能に記憶する。本態様によれば、アプリケーション構成ファイルごとに不揮発性メモリからワークメモリへのデータ転送が可能となるため、ワークメモリへの転送時間を短縮することができる。
(14)不揮発性メモリのファイル領域は、複数のアプリケーション構成ファイルと、当該複数のアプリケーション構成ファイルの各々の誤り検出用データとを記憶する。本態様では、アプリケーション構成ファイルごとに個別の誤り検出用データ(例えばチェックサム値)を付加しているため、複数のアプリケーション構成ファイルをまとめたファイル群に対して誤り検出用データ(例えばチェックサム値)を付加した場合に比べて、誤り検出用データを用いた誤り検出の処理時間(例えばチェックサム値の演算時間)を短くすることができる。
(15)情報処理装置は、バックアップ領域に記憶されているバックアッププログラムに対して誤り検出を行い、誤りが検出されたバックアッププログラムを誤りが検出されなかったバックアッププログラムで書き換える。本態様によれば、バックアッププログラムの信頼性を高めることができる。これにより、例えば、図4の再起動処理(S4,S8)内のステップS23にて、バックアッププログラムによる起動プログラムの書き換えが不可能と判断される確率を低く抑えることができる。
(16)情報処理装置は、バックアップファイル領域に記憶されているバックアップファイルに対して誤り検出を行い、誤りが検出されたバックアップファイルを誤りが検出されなかったバックアップファイルで書き換える。本態様によれば、バックアップファイルの信頼性を高めることができる。これにより、例えば、図4の再起動処理(S13)内のステップS23にて、バックアップファイルによるアプリケーション構成ファイルの書き換えが不可能と判断される確率を低く抑えることができる。
なお、本発明は、上記実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の態様で実施することができる。
例えば、上記の説明では、起動プログラムに誤りが検出された場合に、バックアッププログラムによる起動プログラムの書き換え(復旧処理)を行った後にシステムの再起動を行う構成を例示したが、情報処理装置1は、起動プログラムの書き換え(復旧処理)を行わずに、バックアッププログラムをワークメモリ3に読み出してシステムの再起動を行ってもよい。同様に、情報処理装置1は、バックアップファイルによるアプリケーション構成ファイルの書き換え(復旧処理)を行わずに、バックアップファイルをワークメモリ3に読み出してアプリケーションの再起動を行ってもよい。なお、起動プログラムのうち、最初に読み出されて実行される起動プログラム(具体的にはブートプログラム100)については、ブートアドレスが固定である場合には上記復旧処理が必要であるが、ブートアドレスを変更可能な構成であれば、ブートアドレスをバックアッププログラムの先頭アドレスに変更することで、復旧処理を行わずに再起動することが可能である。
また、上記の説明では、不揮発性メモリ2に複数のバックアッププログラムが記憶される構成を例示したが、バックアッププログラムの個数は、複数に限られず、1つであってもよい。これはバックアップファイルについても同様である。
また、上記の説明では、アプリケーション構成ファイルとして、アプリケーション構成ファイルA112およびアプリケーション構成ファイルB114の2つのファイルを用いる場合を例示したが、アプリケーション構成ファイルは1つ以上であればよく、実際にはさらに多くのアプリケーション構成ファイルが必要となる場合が多い。
また、上記の説明では、処理実行部11および誤り検出部12が、共通のCPU4と共通のプログラムにより実現される構成を例示したが、誤り検出部12は、下記(a)〜(d)のような態様で実現されることも可能である。
(a)誤り検出部12は、CPU4が、起動プログラムとは別の誤り検出用のプログラムを実行することにより実現される。
(b)誤り検出部12は、CPU4とは別のCPUが、起動プログラムまたは起動プログラムとは別の誤り検出用のプログラムに記述されている誤り検出処理を実行することにより実現される。
(c)CPU4は複数個のプロセッサコアを含み、誤り検出部12は、複数個のプロセッサコアのうち処理実行部11を実現するものとは別のプロセッサコアが、起動プログラムまたは起動プログラムとは別の誤り検出用のプログラムに記述されている誤り検出処理を実行することにより実現される。
(d)誤り検出部12は、誤り検出用のハードウェア回路により実現される。
上記(b)〜(d)のように、起動処理と誤り検出処理とを別々の処理装置で並行して実行する構成では、起動処理と誤り検出処理とを実際に並行処理することができ、起動プログラムに対して誤り検出を行った後にシステムの起動処理を開始する構成と比較して、起動時間を短くすることができる。
図12は、起動処理と誤り検出処理とを別々の処理装置で並行して実行する構成における処理時間を示すグラフである。図12の横軸は時間であり、図12には、ブートプログラムの誤り検出処理の処理時間T21、ブートプログラムの起動処理の処理時間T22、カーネルプログラムの誤り検出処理の処理時間T23、カーネルプログラムの起動処理の処理時間T24、アプリケーション構成ファイルの誤り検出処理の処理時間T25、およびアプリケーション構成ファイルの起動処理の処理時間T26が示されている。
図10および図12から、起動処理と誤り検出処理とを別々の処理装置で並行して実行する構成では、誤り検出後に起動処理を行う構成と比較して、ブートプログラム、カーネルプログラム、およびアプリケーション構成ファイルのそれぞれの起動処理の終了時刻が早くなっていることが分かる。
また、再起動部13および書き換え制御部14についても、誤り検出部12と同様に、上記(a)〜(d)のような態様で実現されてもよい。
また、上記の説明では、プログラムのバックアッププログラムによる書き換えの履歴を示す履歴情報として、プログラムの書き換え元を表す起動履歴値を例示したが、履歴情報はこれに限られず、例えば、複数のバックアッププログラムのうち過去にプログラムの書き換えに用いられたバックアッププログラムを示す情報であってもよい。また、履歴情報は、バックアッププログラム毎に用意されてもよい。例えば、不揮発性メモリ2には、バックアッププログラム毎に、当該バックアッププログラムが過去にプログラムの書き換えに用いられたか否かを示す履歴フラグが記録されてもよい。履歴フラグは、例えば、書き換えに用いられていない場合には「0」であり、書き換えに用いられた場合に「1」となる。なお、上記のことは、アプリケーション構成ファイルについても同様である。
また、上記の説明では、履歴情報に基づいて、まだ書き換えに用いられていないバックアッププログラムを選択する構成を例示したが、これ以外のバックアッププログラムを選択する構成であってもよい。例えば、不揮発性メモリでは、長い期間リードを行っていないブロックは経時的な電荷抜けが起きてしまい、不正にデータ内容が変化してしまう。そのため、復旧処理の際には出来るだけまんべんなくバックアッププログラムをリードすることで、電荷抜けが起きてしまうリスクを抑えることが可能である。この観点より、再起動部13は、履歴情報を参照して、長い期間リードが行われていないバックアッププログラムを選択するように構成されてもよい。この構成によれば、不揮発性メモリにおける電荷抜けを未然に防止することが出来る。上記長い期間リードが行われていないバックアッププログラムとしては、例えば、複数のバックアッププログラムのうち、リードが行われていない期間が最も長いバックアッププログラムや、所定期間以上リードが行われていないバックアッププログラムがある。また、この構成では、履歴情報は、例えば、各バックアッププログラムのリードが行われていない期間を示す情報である。
1 情報処理装置、 2 不揮発性メモリ、 3 ワークメモリ、 4 CPU、 5 通信部、 6 外部インタフェース、 10 並列処理部、 11 処理実行部、 12 誤り検出部、 13 再起動部、 14 書き換え制御部、 100 ブートプログラム、 101,103,105,107,109,111,113,115,117,119,121,123 チェックサム値、 102 ブートプログラム第1バックアップ、 104 ブートプログラム第2バックアップ、 106 カーネルプログラム、 108 カーネルプログラム第1バックアップ、 110 カーネルプログラム第2バックアップ、 112 アプリケーション構成ファイルA、 114 アプリケーション構成ファイルB、 116 アプリケーション構成ファイルA第1バックアップ、 118 アプリケーション構成ファイルB第1バックアップ、 120 アプリケーション構成ファイルA第2バックアップ、 122 アプリケーション構成ファイルB第2バックアップ、 124 書き換えフラグ情報、 126 起動履歴情報、 128 書き換え順番情報。
本発明に係る情報処理装置は、
システムを起動するためのプログラムを記憶したプログラム領域と、前記プログラムと同一内容のバックアッププログラムを記憶したバックアップ領域とを含む不揮発性メモリと、
前記プログラム領域に記憶されているプログラムを実行して前記システムの起動処理を行う処理実行手段と、
記プログラム領域に記憶されているプログラムに対して誤り検出を行う誤り検出手段と、
前記誤り検出手段により前記プログラムに誤りが検出された場合に、前記プログラム領域に記憶されているプログラムを、前記バックアップ領域に記憶されているバックアッププログラムで書き換える復旧処理を行い、前記プログラム領域に記憶されている前記書き換え後のプログラムにより前記システムの再起動を行う再起動手段と
を備えことを特徴とする。
また、本発明に係る情報処理方法は、
システムを起動するためのプログラムを記憶したプログラム領域と、前記プログラムと同一内容のバックアッププログラムを記憶したバックアップ領域とを含む不揮発性メモリのうち、前記プログラム領域に記憶されているプログラムを実行して前記システムの起動処理を行う処理実行工程と、
記プログラム領域に記憶されているプログラムに対して誤り検出を行う誤り検出工程と、
前記誤り検出工程により前記プログラムに誤りが検出された場合に、前記プログラム領域に記憶されているプログラムを、前記バックアップ領域に記憶されているバックアッププログラムで書き換える復旧処理を行い、前記プログラム領域に記憶されている前記書き換え後のプログラムにより前記システムの再起動を行う再起動工程と
を含ことを特徴とする。
また、本発明に係るコンピュータプログラムは、
システムを起動するためのプログラムを記憶したプログラム領域と、前記プログラムと同一内容のバックアッププログラムを記憶したバックアップ領域とを含む不揮発性メモリのうち、前記プログラム領域に記憶されているプログラムを実行して前記システムの起動処理を行う処理実行工程と、
記プログラム領域に記憶されているプログラムに対して誤り検出を行う誤り検出工程と、
前記誤り検出工程により前記プログラムに誤りが検出された場合に、前記プログラム領域に記憶されているプログラムを、前記バックアップ領域に記憶されているバックアッププログラムで書き換える復旧処理を行い、前記プログラム領域に記憶されている前記書き換え後のプログラムにより前記システムの再起動を行う再起動工程と
をコンピュータに実行させことを特徴とする。
本発明に係る情報処理装置は、
システムを起動するためのプログラムを記憶したプログラム領域と、前記プログラムと同一内容の複数のバックアッププログラムをそれぞれ記憶した複数のバックアップ領域とを含む不揮発性メモリと、
前記プログラム領域に記憶されているプログラムを実行して前記システムの起動処理を行う処理実行手段と、
前記プログラム領域に記憶されているプログラムに対して誤り検出を行う誤り検出手段と、
前記誤り検出手段により前記プログラムに誤りが検出された場合に、前記プログラム領域に記憶されているプログラムを、前記バックアップ領域に記憶されているバックアッププログラムで書き換える復旧処理を行い、前記プログラム領域に記憶されている前記書き換え後のプログラムにより前記システムの再起動を行う再起動手段とを備え
前記再起動手段は、前記復旧処理を行う際、前記プログラムの前記バックアッププログラムによる書き換えの履歴を示す履歴情報を参照し、前記履歴情報に基づいて、前記複数のバックアッププログラムの中から前記書き換えに用いるバックアッププログラムを選択し、前記プログラムを前記選択されたバックアッププログラムで書き換えることを特徴とする。
また、本発明に係る情報処理方法は、
システムを起動するためのプログラムを記憶したプログラム領域と、前記プログラムと同一内容の複数のバックアッププログラムをそれぞれ記憶した複数のバックアップ領域とを含む不揮発性メモリのうち、前記プログラム領域に記憶されているプログラムを実行して前記システムの起動処理を行う処理実行工程と、
前記プログラム領域に記憶されているプログラムに対して誤り検出を行う誤り検出工程と、
前記誤り検出工程により前記プログラムに誤りが検出された場合に、前記プログラム領域に記憶されているプログラムを、前記バックアップ領域に記憶されているバックアッププログラムで書き換える復旧処理を行い、前記プログラム領域に記憶されている前記書き換え後のプログラムにより前記システムの再起動を行う再起動工程とを含み、
前記再起動工程では、前記復旧処理を行う際、前記プログラムの前記バックアッププログラムによる書き換えの履歴を示す履歴情報を参照し、前記履歴情報に基づいて、前記複数のバックアッププログラムの中から前記書き換えに用いるバックアッププログラムを選択し、前記プログラムを前記選択されたバックアッププログラムで書き換えることを特徴とする。
また、本発明に係るコンピュータプログラムは、
システムを起動するためのプログラムを記憶したプログラム領域と、前記プログラムと同一内容の複数のバックアッププログラムをそれぞれ記憶した複数のバックアップ領域とを含む不揮発性メモリのうち、前記プログラム領域に記憶されているプログラムを実行して前記システムの起動処理を行う処理実行工程と、
前記プログラム領域に記憶されているプログラムに対して誤り検出を行う誤り検出工程と、
前記誤り検出工程により前記プログラムに誤りが検出された場合に、前記プログラム領域に記憶されているプログラムを、前記バックアップ領域に記憶されているバックアッププログラムで書き換える復旧処理を行い、前記プログラム領域に記憶されている前記書き換え後のプログラムにより前記システムの再起動を行う再起動工程とをコンピュータに実行させ
前記再起動工程では、前記復旧処理を行う際、前記プログラムの前記バックアッププログラムによる書き換えの履歴を示す履歴情報を参照し、前記履歴情報に基づいて、前記複数のバックアッププログラムの中から前記書き換えに用いるバックアッププログラムを選択し、前記プログラムを前記選択されたバックアッププログラムで書き換えることを特徴とする。

Claims (29)

  1. システムを起動するためのプログラムを記憶したプログラム領域と、前記プログラムと同一内容の複数のバックアッププログラムをそれぞれ記憶した複数のバックアップ領域とを含む不揮発性メモリと、
    前記プログラム領域に記憶されているプログラムを実行して前記システムの起動処理を行う処理実行手段と、
    前記処理実行手段による起動処理と並行して、前記プログラム領域に記憶されているプログラムに対して誤り検出を行う誤り検出手段と、
    前記誤り検出手段により前記プログラムに誤りが検出された場合に、前記プログラム領域に記憶されているプログラムを、前記バックアップ領域に記憶されているバックアッププログラムで書き換える復旧処理を行い、前記プログラム領域に記憶されている前記書き換え後のプログラムにより前記システムの再起動を行う再起動手段とを備え、
    前記再起動手段は、前記復旧処理を行う際、前記プログラムの前記バックアッププログラムによる書き換えの履歴を示す履歴情報を参照し、前記履歴情報に基づいて、前記複数のバックアッププログラムの中から前記書き換えに用いるバックアッププログラムを選択し、前記プログラムを前記選択されたバックアッププログラムで書き換える、
    ことを特徴とする情報処理装置。
  2. 前記再起動手段は、前記復旧処理にて、さらに前記バックアッププログラムの書き換えの順番を示す書き換え順番情報を参照し、前記書き換え順番情報と前記履歴情報とに基づいて、前記複数のバックアッププログラムの中から前記書き換えに用いるバックアッププログラムを選択し、前記プログラムを前記選択されたバックアッププログラムで書き換える、
    ことを特徴とする請求項1に記載の情報処理装置。
  3. 前記復旧処理にて選択されるバックアッププログラムは、まだ書き換えに用いられていないバックアッププログラムである、
    ことを特徴とする請求項1または2に記載の情報処理装置。
  4. 前記情報処理装置は、前記プログラムを前記バックアップ領域に記憶されていない新たなプログラムで書き換えるプログラム書き換え処理を行う書き換え手段をさらに備え、
    前記書き換え手段は、前記プログラム書き換え処理において、前記新たなプログラムを取得し、前記複数のバックアップ領域に記憶されている複数のバックアッププログラムのうち、所定のバックアッププログラムを前記新たなプログラムで書き換え、前記プログラム領域に記憶されているプログラムを前記所定のバックアッププログラムで書き換え、当該書き換え後のプログラムが実行された際に、異常がない場合は、前記複数のバックアッププログラムのうち、前記所定のバックアッププログラム以外のバックアッププログラムを、前記書き換え後の所定のバックアッププログラムまたは前記書き換え後のプログラムで書き換え、異常があった場合は、前記プログラム領域に記憶されているプログラムを、前記所定のバックアッププログラム以外のバックアッププログラムで書き換える、
    ことを特徴とする請求項1から3のいずれか1項に記載の情報処理装置。
  5. 前記誤り検出手段により前記プログラムに誤りが検出された場合において、まだ書き換えに用いられていないバックアッププログラムが前記複数のバックアップ領域に存在しないときには、前記書き換え手段が前記プログラム書き換え処理を行うことを特徴とする請求項4に記載の情報処理装置。
  6. 前記不揮発性メモリは、アプリケーションを起動するためのアプリケーション構成ファイルを記憶したファイル領域と、前記アプリケーション構成ファイルと同一内容のバックアップファイルを記憶したバックアップファイル領域とをさらに含み、
    前記処理実行手段は、前記ファイル領域に記憶されているアプリケーション構成ファイルを実行してアプリケーションの起動処理を行い、
    前記誤り検出手段は、前記処理実行手段による前記アプリケーションの起動処理と並行して、前記ファイル領域に記憶されているアプリケーション構成ファイルに対して誤り検出を行い、
    前記再起動手段は、前記誤り検出手段により前記アプリケーション構成ファイルに誤りが検出された場合に、前記バックアップファイル領域に記憶されているバックアップファイルを用いて前記アプリケーションの再起動を行う、
    ことを特徴とする請求項1から5のいずれか1項に記載の情報処理装置。
  7. 前記再起動手段は、前記誤り検出手段により前記アプリケーション構成ファイルに誤りが検出された場合に、前記ファイル領域に記憶されているアプリケーション構成ファイルを、前記バックアップファイル領域に記憶されているバックアップファイルで書き換える復旧処理を行い、前記ファイル領域に記憶されている前記書き換え後のアプリケーション構成ファイルにより前記アプリケーションの再起動を行うことを特徴とする請求項6に記載の情報処理装置。
  8. 前記バックアップファイル領域は複数であり、
    前記再起動手段は、前記復旧処理を行う際、前記アプリケーション構成ファイルの前記バックアップファイルによる書き換えの履歴を示す履歴情報を参照し、前記履歴情報に基づいて、前記複数のバックアップファイル領域に記憶されている複数のバックアップファイルの中から前記書き換えに用いるバックアップファイルを選択し、前記アプリケーション構成ファイルを前記選択されたバックアップファイルで書き換える、
    ことを特徴とする請求項7に記載の情報処理装置。
  9. 前記再起動手段は、前記復旧処理にて、さらに前記バックアップファイルの書き換えの順番を示す書き換え順番情報を参照し、前記書き換え順番情報と前記履歴情報とに基づいて、前記複数のバックアップファイルの中から前記書き換えに用いるバックアップファイルを選択し、前記アプリケーション構成ファイルを前記選択されたバックアップファイルで書き換える、
    ことを特徴とする請求項8に記載の情報処理装置。
  10. 前記バックアップファイル領域は複数であり、
    前記再起動手段は、前記復旧処理を行う場合、前記複数のバックアップファイル領域に記憶されている複数のバックアップファイルのうち、まだ書き換えに用いられていないバックアップファイルを選択し、前記ファイル領域に記憶されているアプリケーション構成ファイルを前記選択されたバックアップファイルで書き換える、
    ことを特徴とする請求項7から9のいずれか1項に記載の情報処理装置。
  11. 前記バックアップファイル領域は複数であり、
    前記書き換え手段は、前記アプリケーション構成ファイルを新たなアプリケーション構成ファイルで書き換えるファイル書き換え処理を行い、
    前記書き換え手段は、前記ファイル書き換え処理において、前記新たなアプリケーション構成ファイルを取得し、前記複数のバックアップファイル領域に記憶されている複数のバックアップファイルのうち、所定のバックアップファイルを前記新たなアプリケーション構成ファイルで書き換え、前記ファイル領域に記憶されているアプリケーション構成ファイルを前記所定のバックアップファイルで書き換え、当該書き換え後のアプリケーション構成ファイルが実行された際に、異常がない場合は、前記複数のバックアップファイルのうち、前記所定のバックアップファイル以外のバックアップファイルを、前記書き換え後の所定のバックアップファイルまたは前記書き換え後のアプリケーション構成ファイルで書き換え、異常があった場合は、前記ファイル領域に記憶されているアプリケーション構成ファイルを、前記所定のバックアップファイル以外のバックアップファイルで書き換える、
    ことを特徴とする請求項6から10のいずれか1項に記載の情報処理装置。
  12. 前記誤り検出手段により前記アプリケーション構成ファイルに誤りが検出された場合において、まだ書き換えに用いられていないバックアップファイルが前記複数のバックアップファイル領域に存在しないときには、前記書き換え手段が前記ファイル書き換え処理を行うことを特徴とする請求項11に記載の情報処理装置。
  13. 前記アプリケーション構成ファイルは複数であり、
    前記ファイル領域は、前記複数のアプリケーション構成ファイルを前記アプリケーション構成ファイルごとに読み出し可能に記憶し、
    前記バックアップファイル領域は、前記複数のアプリケーション構成ファイルと同一内容の複数のバックアップファイルを記憶する、
    ことを特徴とする請求項6から12のいずれか1項に記載の情報処理装置。
  14. 前記ファイル領域は、前記複数のアプリケーション構成ファイルと、当該複数のアプリケーション構成ファイルの各々の誤り検出用データとを記憶し、
    前記誤り検出手段は、前記ファイル領域に記憶されているアプリケーション構成ファイルに対し、当該アプリケーション構成ファイルの前記誤り検出用データを用いて誤り検出を行う、
    ことを特徴とする請求項13に記載の情報処理装置。
  15. システムを起動するためのプログラムを記憶したプログラム領域と、前記プログラムと同一内容の複数のバックアッププログラムをそれぞれ記憶した複数のバックアップ領域とを含む不揮発性メモリのうち、前記プログラム領域に記憶されているプログラムを実行して前記システムの起動処理を行う処理実行工程と、
    前記処理実行工程による起動処理と並行して、前記プログラム領域に記憶されているプログラムに対して誤り検出を行う誤り検出工程と、
    前記誤り検出工程により前記プログラムに誤りが検出された場合に、前記プログラム領域に記憶されているプログラムを、前記バックアップ領域に記憶されているバックアッププログラムで書き換える復旧処理を行い、前記プログラム領域に記憶されている前記書き換え後のプログラムにより前記システムの再起動を行う再起動工程とを含み、
    前記再起動工程では、前記復旧処理を行う際、前記プログラムの前記バックアッププログラムによる書き換えの履歴を示す履歴情報を参照し、前記履歴情報に基づいて、前記複数のバックアッププログラムの中から前記書き換えに用いるバックアッププログラムを選択し、前記プログラムを前記選択されたバックアッププログラムで書き換える、
    ことを特徴とする情報処理方法。
  16. 前記再起動工程では、前記復旧処理にて、さらに前記バックアッププログラムの書き換えの順番を示す書き換え順番情報を参照し、前記書き換え順番情報と前記履歴情報とに基づいて、前記複数のバックアッププログラムの中から前記書き換えに用いるバックアッププログラムを選択し、前記プログラムを前記選択されたバックアッププログラムで書き換える、
    ことを特徴とする請求項15に記載の情報処理方法。
  17. 前記復旧処理にて選択されるバックアッププログラムは、まだ書き換えに用いられていないバックアッププログラムである、
    ことを特徴とする請求項15または16に記載の情報処理方法。
  18. 前記情報処理方法は、前記プログラムを前記バックアップ領域に記憶されていない新たなプログラムで書き換えるプログラム書き換え処理を行う書き換え工程をさらに含み、
    前記書き換え工程では、前記プログラム書き換え処理において、前記新たなプログラムを取得し、前記複数のバックアップ領域に記憶されている複数のバックアッププログラムのうち、所定のバックアッププログラムを前記新たなプログラムで書き換え、前記プログラム領域に記憶されているプログラムを前記所定のバックアッププログラムで書き換え、当該書き換え後のプログラムが実行された際に、異常がない場合は、前記複数のバックアッププログラムのうち、前記所定のバックアッププログラム以外のバックアッププログラムを、前記書き換え後の所定のバックアッププログラムまたは前記書き換え後のプログラムで書き換え、異常があった場合は、前記プログラム領域に記憶されているプログラムを、前記所定のバックアッププログラム以外のバックアッププログラムで書き換える、
    ことを特徴とする請求項15から17のいずれか1項に記載の情報処理方法。
  19. 前記誤り検出工程により前記プログラムに誤りが検出された場合において、まだ書き換えに用いられていないバックアッププログラムが前記複数のバックアップ領域に存在しないときには、前記プログラム書き換え処理を行うことを特徴とする請求項18に記載の情報処理方法。
  20. 前記不揮発性メモリは、アプリケーションを起動するためのアプリケーション構成ファイルを記憶したファイル領域と、前記アプリケーション構成ファイルと同一内容のバックアップファイルを記憶したバックアップファイル領域とをさらに含み、
    前記処理実行工程では、前記ファイル領域に記憶されているアプリケーション構成ファイルを実行してアプリケーションの起動処理を行い、
    前記誤り検出工程では、前記処理実行工程による前記アプリケーションの起動処理と並行して、前記ファイル領域に記憶されているアプリケーション構成ファイルに対して誤り検出を行い、
    前記再起動工程では、前記誤り検出工程により前記アプリケーション構成ファイルに誤りが検出された場合に、前記バックアップファイル領域に記憶されているバックアップファイルを用いて前記アプリケーションの再起動を行う、
    ことを特徴とする請求項15から19のいずれか1項に記載の情報処理方法。
  21. 前記再起動工程では、前記誤り検出工程により前記アプリケーション構成ファイルに誤りが検出された場合に、前記ファイル領域に記憶されているアプリケーション構成ファイルを、前記バックアップファイル領域に記憶されているバックアップファイルで書き換える復旧処理を行い、前記ファイル領域に記憶されている前記書き換え後のアプリケーション構成ファイルにより前記アプリケーションの再起動を行うことを特徴とする請求項20に記載の情報処理方法。
  22. 前記バックアップファイル領域は複数であり、
    前記再起動工程では、前記復旧処理を行う際、前記アプリケーション構成ファイルの前記バックアップファイルによる書き換えの履歴を示す履歴情報を参照し、前記履歴情報に基づいて、前記複数のバックアップファイル領域に記憶されている複数のバックアップファイルの中から前記書き換えに用いるバックアップファイルを選択し、前記アプリケーション構成ファイルを前記選択されたバックアップファイルで書き換える、
    ことを特徴とする請求項21に記載の情報処理方法。
  23. 前記再起動工程では、前記復旧処理にて、さらに前記バックアップファイルの書き換えの順番を示す書き換え順番情報を参照し、前記書き換え順番情報と前記履歴情報とに基づいて、前記複数のバックアップファイルの中から前記書き換えに用いるバックアップファイルを選択し、前記アプリケーション構成ファイルを前記選択されたバックアップファイルで書き換える、
    ことを特徴とする請求項22に記載の情報処理方法。
  24. 前記バックアップファイル領域は複数であり、
    前記再起動工程では、前記復旧処理を行う場合、前記複数のバックアップファイル領域に記憶されている複数のバックアップファイルのうち、まだ書き換えに用いられていないバックアップファイルを選択し、前記ファイル領域に記憶されているアプリケーション構成ファイルを前記選択されたバックアップファイルで書き換える、
    ことを特徴とする請求項21から23のいずれか1項に記載の情報処理方法。
  25. 前記バックアップファイル領域は複数であり、
    前記書き換え工程では、前記アプリケーション構成ファイルを新たなアプリケーション構成ファイルで書き換えるファイル書き換え処理を行い、
    前記ファイル書き換え処理において、前記新たなアプリケーション構成ファイルを取得し、前記複数のバックアップファイル領域に記憶されている複数のバックアップファイルのうち、所定のバックアップファイルを前記新たなアプリケーション構成ファイルで書き換え、前記ファイル領域に記憶されているアプリケーション構成ファイルを前記所定のバックアップファイルで書き換え、当該書き換え後のアプリケーション構成ファイルが実行された際に、異常がない場合は、前記複数のバックアップファイルのうち、前記所定のバックアップファイル以外のバックアップファイルを、前記書き換え後の所定のバックアップファイルまたは前記書き換え後のアプリケーション構成ファイルで書き換え、異常があった場合は、前記ファイル領域に記憶されているアプリケーション構成ファイルを、前記所定のバックアップファイル以外のバックアップファイルで書き換える、
    ことを特徴とする請求項20から24のいずれか1項に記載の情報処理方法。
  26. 前記誤り検出工程により前記アプリケーション構成ファイルに誤りが検出された場合において、まだ書き換えに用いられていないバックアップファイルが前記複数のバックアップファイル領域に存在しないときには、前記ファイル書き換え処理を行うことを特徴とする請求項25に記載の情報処理方法。
  27. 前記アプリケーション構成ファイルは複数であり、
    前記ファイル領域は、前記複数のアプリケーション構成ファイルを前記アプリケーション構成ファイルごとに読み出し可能に記憶し、
    前記バックアップファイル領域は、前記複数のアプリケーション構成ファイルと同一内容の複数のバックアップファイルを記憶する、
    ことを特徴とする請求項20から26のいずれか1項に記載の情報処理方法。
  28. 前記ファイル領域は、前記複数のアプリケーション構成ファイルと、当該複数のアプリケーション構成ファイルの各々の誤り検出用データとを記憶し、
    前記誤り検出工程では、前記ファイル領域に記憶されているアプリケーション構成ファイルに対し、当該アプリケーション構成ファイルの前記誤り検出用データを用いて誤り検出を行う、
    ことを特徴とする請求項27に記載の情報処理方法。
  29. システムを起動するためのプログラムを記憶したプログラム領域と、前記プログラムと同一内容の複数のバックアッププログラムをそれぞれ記憶した複数のバックアップ領域とを含む不揮発性メモリのうち、前記プログラム領域に記憶されているプログラムを実行して前記システムの起動処理を行う処理実行工程と、
    前記処理実行工程による起動処理と並行して、前記プログラム領域に記憶されているプログラムに対して誤り検出を行う誤り検出工程と、
    前記誤り検出工程により前記プログラムに誤りが検出された場合に、前記プログラム領域に記憶されているプログラムを、前記バックアップ領域に記憶されているバックアッププログラムで書き換える復旧処理を行い、前記プログラム領域に記憶されている前記書き換え後のプログラムにより前記システムの再起動を行う再起動工程とをコンピュータに実行させ、
    前記再起動工程では、前記復旧処理を行う際、前記プログラムの前記バックアッププログラムによる書き換えの履歴を示す履歴情報を参照し、前記履歴情報に基づいて、前記複数のバックアッププログラムの中から前記書き換えに用いるバックアッププログラムを選択し、前記プログラムを前記選択されたバックアッププログラムで書き換える、
    ことを特徴とするコンピュータプログラム。
JP2013552383A 2012-01-05 2012-06-11 情報処理装置、情報処理方法、およびコンピュータプログラム Active JP5575338B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013552383A JP5575338B2 (ja) 2012-01-05 2012-06-11 情報処理装置、情報処理方法、およびコンピュータプログラム

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2012000492 2012-01-05
JP2012000492 2012-01-05
JP2013552383A JP5575338B2 (ja) 2012-01-05 2012-06-11 情報処理装置、情報処理方法、およびコンピュータプログラム
PCT/JP2012/064885 WO2013103023A1 (ja) 2012-01-05 2012-06-11 情報処理装置、情報処理方法、およびコンピュータプログラム

Publications (2)

Publication Number Publication Date
JP5575338B2 JP5575338B2 (ja) 2014-08-20
JPWO2013103023A1 true JPWO2013103023A1 (ja) 2015-05-11

Family

ID=48745093

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013552383A Active JP5575338B2 (ja) 2012-01-05 2012-06-11 情報処理装置、情報処理方法、およびコンピュータプログラム

Country Status (5)

Country Link
US (1) US9471435B2 (ja)
JP (1) JP5575338B2 (ja)
CN (1) CN104025047B (ja)
DE (1) DE112012005589T5 (ja)
WO (1) WO2013103023A1 (ja)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160006630A1 (en) * 2013-05-17 2016-01-07 Hitachi, Ltd. Computer system evaluation method, computer system control method, and computer system
FR3024869B1 (fr) * 2014-08-14 2016-08-26 Zodiac Aero Electric Systeme de distribution electrique pour un aeronef et procede de commande correspondant
JP6248910B2 (ja) * 2014-11-28 2017-12-20 京セラドキュメントソリューションズ株式会社 画像処理装置及びプログラムのバックアップ方法
JP6334832B2 (ja) * 2016-04-18 2018-05-30 オリンパス株式会社 電池駆動型医療装置
US10534618B2 (en) * 2016-09-27 2020-01-14 American Megatrends International, Llc Auto bootloader recovery in BMC
CN106850342B (zh) * 2017-01-20 2020-11-24 苏州浪潮智能科技有限公司 测试交换机兼容性和稳定性的方法及装置
JP6719020B2 (ja) * 2017-03-24 2020-07-08 日立オートモティブシステムズ株式会社 車載制御装置、及び、プログラム更新ソフトウェア
JP6644753B2 (ja) * 2017-10-31 2020-02-12 株式会社 ニューテック 記憶装置および情報処理装置
JP6915565B2 (ja) * 2018-02-22 2021-08-04 京セラドキュメントソリューションズ株式会社 画像処理装置
US11010249B2 (en) * 2019-01-08 2021-05-18 Dell Products L.P. Kernel reset to recover from operating system errors
CN110060726B (zh) * 2019-01-30 2022-12-16 北京品驰医疗设备有限公司 快闪存储器的程序检测方法和植入式医疗设备
CN110059005B (zh) * 2019-01-30 2022-12-16 北京品驰医疗设备有限公司 快闪存储器的程序检测方法和植入式医疗设备
CN110083393B (zh) * 2019-01-30 2022-12-16 北京品驰医疗设备有限公司 快闪存储器和植入式医疗设备
WO2020158075A1 (ja) * 2019-01-30 2020-08-06 デンソートリム株式会社 メモリの書き換え履歴記録装置
JP2020201637A (ja) * 2019-06-07 2020-12-17 京セラドキュメントソリューションズ株式会社 情報処理システム
JP7477328B2 (ja) 2020-03-16 2024-05-01 Fdk株式会社 制御装置及び制御プログラムの書き換え方法
JP2022066084A (ja) * 2020-10-16 2022-04-28 キヤノン株式会社 情報処理装置
CN112596766A (zh) * 2020-12-24 2021-04-02 浙江合众新能源汽车有限公司 基于Bootloader的软件升级方法及装置
CN115185722A (zh) * 2021-04-02 2022-10-14 广州三星通信技术研究有限公司 异常规避方法和异常规避装置
JP7292328B2 (ja) * 2021-05-28 2023-06-16 キヤノン株式会社 情報処理装置及びその制御方法
CN114253761A (zh) * 2021-12-20 2022-03-29 中国科学院微小卫星创新研究院 一种基于校验的程序块三模存储方法
US11922175B2 (en) * 2022-07-29 2024-03-05 Arista Networks, Inc. Unplanned reboot expedited recovery for network devices
US12014056B2 (en) * 2022-08-23 2024-06-18 Netapp, Inc. Slice file recovery using dead replica slice files
CN116319269B (zh) * 2023-05-19 2023-09-15 南方电网数字电网研究院有限公司 具备通讯故障自检及快速隔离的新能源边缘侧通信模块
CN118363783A (zh) * 2024-06-13 2024-07-19 惠科股份有限公司 检测结构及显示装置

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0816408A (ja) * 1994-06-29 1996-01-19 Mitsubishi Electric Corp 情報処理装置
JP2001331327A (ja) * 2000-05-24 2001-11-30 Matsushita Electric Ind Co Ltd 電子機器
JP2005275697A (ja) * 2004-03-24 2005-10-06 Toshiba Microelectronics Corp マイクロプロセッサブートアップ制御装置、不揮発性メモリの制御装置及び情報処理システム
JP2008084291A (ja) * 2006-08-28 2008-04-10 Fujitsu Ltd 記憶装置、制御方法及び制御装置
WO2008075646A1 (ja) * 2006-12-18 2008-06-26 International Business Machines Corporation 情報処理システムおよび該システムの起動/リカバリ方法
JP2008217636A (ja) * 2007-03-07 2008-09-18 Alpine Electronics Inc データ処理装置及びプログラム起動方法

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05173965A (ja) 1991-12-24 1993-07-13 Hitachi Denshi Ltd 端末局プログラムの書替え方式
JP3069877B2 (ja) 1992-08-26 2000-07-24 株式会社東芝 情報送受信装置
JPH07255080A (ja) 1994-03-16 1995-10-03 Fujitsu Ltd 無線基地局装置
JP3589433B2 (ja) 1995-11-27 2004-11-17 富士通株式会社 データベース保証方式
JPH1011293A (ja) 1996-06-27 1998-01-16 Nec Corp 情報処理装置
JP2940480B2 (ja) 1996-07-05 1999-08-25 日本電気株式会社 コンピュータシステム
JPH1091405A (ja) 1996-09-18 1998-04-10 Hitachi Ltd ソフトウェア保守方法
US6754855B1 (en) * 1999-12-01 2004-06-22 Microsoft Corporation Automated recovery of computer appliances
GB2367656A (en) * 2000-10-06 2002-04-10 Hewlett Packard Co Self-repairing operating system for computer entities
US6651188B2 (en) * 2001-06-29 2003-11-18 Intel Corporation Automatic replacement of corrupted BIOS image
JP3677252B2 (ja) * 2002-03-22 2005-07-27 株式会社東芝 情報機器、記憶媒体、及び初期状態復元方法
US7340638B2 (en) * 2003-01-30 2008-03-04 Microsoft Corporation Operating system update and boot failure recovery
US20040268116A1 (en) * 2003-06-30 2004-12-30 Vasisht Virender K Fault tolerant recovery block with reduced flash footprint
US7370234B2 (en) * 2004-10-14 2008-05-06 International Business Machines Corporation Method for system recovery
JP2008117148A (ja) 2006-11-02 2008-05-22 Ricoh Co Ltd 情報処理装置および情報処理方法
US7900036B2 (en) * 2006-12-18 2011-03-01 International Business Machines Corporation System and method for implementing boot/recovery on a data processing sysem
JP5072092B2 (ja) 2007-12-18 2012-11-14 株式会社リコー リカバリー制御装置、制御方法、プログラム及びコンピュータ読み取り可能な記憶媒体
JP2010026650A (ja) 2008-07-16 2010-02-04 Mitsubishi Electric Corp 制御装置
TW201030518A (en) * 2009-02-11 2010-08-16 Inventec Corp BIOS, computer device and BIOS recovery
TW201115341A (en) * 2009-10-20 2011-05-01 Inventec Corp Method for protecting redundant data
CN102053875B (zh) * 2009-10-29 2013-03-27 纬创资通股份有限公司 恢复计算机系统的基本输入输出系统的方法及计算机系统
US20120246384A1 (en) * 2011-03-21 2012-09-27 Winbond Electronics Corp. Flash memory and flash memory accessing method
US8826080B2 (en) * 2011-07-29 2014-09-02 The Boeing Company Methods and systems for preboot data verification
US9183091B2 (en) * 2012-09-27 2015-11-10 Intel Corporation Configuration information backup in memory systems

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0816408A (ja) * 1994-06-29 1996-01-19 Mitsubishi Electric Corp 情報処理装置
JP2001331327A (ja) * 2000-05-24 2001-11-30 Matsushita Electric Ind Co Ltd 電子機器
JP2005275697A (ja) * 2004-03-24 2005-10-06 Toshiba Microelectronics Corp マイクロプロセッサブートアップ制御装置、不揮発性メモリの制御装置及び情報処理システム
JP2008084291A (ja) * 2006-08-28 2008-04-10 Fujitsu Ltd 記憶装置、制御方法及び制御装置
WO2008075646A1 (ja) * 2006-12-18 2008-06-26 International Business Machines Corporation 情報処理システムおよび該システムの起動/リカバリ方法
JP2008217636A (ja) * 2007-03-07 2008-09-18 Alpine Electronics Inc データ処理装置及びプログラム起動方法

Also Published As

Publication number Publication date
CN104025047B (zh) 2017-06-06
JP5575338B2 (ja) 2014-08-20
US9471435B2 (en) 2016-10-18
CN104025047A (zh) 2014-09-03
DE112012005589T5 (de) 2014-10-16
US20140365823A1 (en) 2014-12-11
WO2013103023A1 (ja) 2013-07-11

Similar Documents

Publication Publication Date Title
JP5575338B2 (ja) 情報処理装置、情報処理方法、およびコンピュータプログラム
US8423991B2 (en) Embedded network device and firmware upgrading method
TWI501253B (zh) 於裝置開機期間處置來自非揮發性記憶體之錯誤
TWI515660B (zh) 韌體變量更新方法
JP5431111B2 (ja) 情報処理装置及びシステム設定方法
US9703635B2 (en) Method, computer program, and computer for restoring set of variables
US9205809B2 (en) Vehicle unit and method for operating the vehicle unit
WO2016206514A1 (zh) 启动处理方法及装置
US20090271660A1 (en) Motherboard, a method for recovering the bios thereof and a method for booting a computer
CN106775674B (zh) 一种基于通用引导加载程序的设备及其启动方法
CN101807152A (zh) 自我验证选择只读存储器的基本输出入系统及其验证方法
US20130080751A1 (en) Method and device for updating bios program for computer system
TW202131170A (zh) 韌體損壞恢復技術
WO2016155524A1 (zh) 一种系统安全升级的方法和装置
CN115113905A (zh) 固件升级方法和固件升级装置
JP6021597B2 (ja) 情報処理装置、情報処理方法、およびコンピュータプログラム
JP2022142263A (ja) 情報処理装置及び情報処理プログラム
JPWO2004081791A1 (ja) 仮想計算機システム、仮想計算機システムにおけるファームウェアアップデート方法
CN114115958A (zh) 程序启动方法及终端设备
US10592329B2 (en) Method and electronic device for continuing executing procedure being aborted from physical address where error occurs
TWI839136B (zh) 基板管理控制器的下游裝置的韌體更新方法
US20240211257A1 (en) Cache to Receive Firmware Generated Data During Firmware Update
TWI480799B (zh) 嵌入式系統之韌體更新方法及設備
TWI448967B (zh) 軟體更新方法與電腦可讀取媒體
CN106970809A (zh) 一种安全升级文件系统的方法和装置

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140603

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140701

R150 Certificate of patent or registration of utility model

Ref document number: 5575338

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250