(57)【要約】【課題】メモリ容量を極力抑えながら、揮発メモリに復帰したデータの真偽を判断することにある。【解決手段】情報処理装置は、揮発メモリ１１と、不揮発メモリ１２と、当該情報処理装置の電源オフ時に動作するオフ時制御部１０ｂと、当該情報処理装置の起動時に動作する起動時制御部１０ｃと、を備えた情報処理装置において、起動時制御部１０ｃは、揮発メモリ１１の記憶エリア毎に算出したサム値と、不揮発メモリ１２の記憶エリア毎に算出したサム値とが一致した場合に、揮発メモリ１１の予備エリアのデータの真偽を判断する第１データ判断処理部１０ｄと、揮発メモリ１１の記憶エリア毎に算出したサム値と、不揮発メモリ１２の記憶エリア毎に算出したサム値とが一致しなかった場合に、揮発メモリ１１の予備エリアのデータの真偽を判断する第２データ判断処理部１０ｅと、を備えたことを特徴とする。【選択図】図１
2019149088.tif 000002
【特許請求の範囲】
【請求項１】
複数の記憶エリア及び予備エリアを有する揮発メモリと、
前記揮発メモリの各記憶エリア及び予備エリアに対応する各記憶エリア及び予備エリアを有する不揮発メモリと、
当該情報処理装置の電源オフ時に、前記揮発メモリの各記憶エリア及び予備エリアから前記不揮発メモリの各記憶エリア及び予備エリアにデータを退避させるオフ時制御部と、
当該情報処理装置の起動時に、前記不揮発メモリの各記憶エリア及び予備エリアから前記揮発メモリの各記憶エリア及び予備エリアにデータを展開する起動時制御部と、を備えた情報処理装置において、
前記起動時制御部は、
前記揮発メモリの記憶エリア毎に算出したサム値と、前記不揮発メモリの記憶エリア毎に算出したサム値とが一致した場合に、前記揮発メモリの予備エリアのデータの真偽を判断する第１データ判断処理部と、
前記揮発メモリの記憶エリア毎に算出したサム値と、前記不揮発メモリの記憶エリア毎に算出したサム値とが一致しなかった場合に、前記揮発メモリの予備エリアのデータの真偽を判断する第２データ判断処理部と、を備えたことを特徴とする情報処理装置。
【請求項２】
前記第１データ判断処理部は、
前記予備エリアにデータがある場合には、前記予備エリアに残されたアドレスに基づいて、対象アドレスにデータを書き戻し、サム値の比較を再度行うことを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記第１データ判断処理部は、
前記サム値が一致した場合には、前記予備エリアのデータを真として判断することを特徴とする請求項２記載の情報処理装置。
【請求項４】
前記第１データ判断処理部は、
前記サム値が不一致である場合には、前記元々の当該エリアのデータを真として判断することを特徴とする請求項２記載の情報処理装置。
【請求項５】
前記第２データ判断処理部は、
前記予備エリアにデータがある場合、かつ前記予備エリアのサム値が一致である場合に、前記予備エリアのデータを前記サム値が不一致であった記憶エリアに移動し、再度、当該記憶エリアのサム値が一致である場合には、前記予備エリアのデータを真として判断することを特徴とする請求項１記載の情報処理装置。
【請求項６】
前記第１データ判断処理部は、
前記予備エリアにデータがある場合、かつ前記予備エリアのサム値が不一致である場合には、通常起動することを特徴とする請求項１記載の情報処理装置。
【請求項７】
前記第２データ判断処理部は、
前記予備エリアにデータがある場合、かつ前記予備エリアのサム値が一致である場合に、前記予備エリアのデータを前記サム値が不一致であった記憶エリアに移動し、再度、当該記憶エリアのサム値が不一致である場合に、再再度、当該記憶エリアのサム値が一致である場合には、当該記憶エリアのデータを真として判断することを特徴とする請求項１記載の情報処理装置。
【請求項８】
前記第２データ判断処理部は、
前記再再度、当該記憶エリアのサム値が不一致である場合には、前記予備エリアのサム値が一致である場合には、前記予備エリアのデータを真として判断することを特徴とする請求項７記載の情報処理装置。
【請求項９】
前記第２データ判断処理部は、
前記再再度、当該記憶エリアのサム値が不一致であり、かつ前記予備エリアのサム値が不一致である場合には、前記揮発メモリに保持したデータをデフォルト値として通常起動することを特徴とする請求項８記載の情報処理装置。
【請求項１０】
前記第１データ判断処理部は、
前記予備エリアにデータが無い場合には、通常起動することを特徴とする請求項１記載の情報処理装置。
【請求項１１】
前記第２データ判断処理部は、
前記予備エリアにデータが無い場合に、前記サム値が不一致であった記憶エリアに対して、再度、サム値の比較を行い、サム値が一致である場合には、通常起動することを特徴とする請求項２記載の情報処理装置。
【請求項１２】
前記第２データ判断処理部は、
前記サム値が不一致であった記憶エリアに対して、再度、サム値の比較を行い、サム値が不一致である場合は、エラーがあることとして停止することを特徴とする請求項１０記載の情報処理装置。
【請求項１３】
複数の記憶エリア及び予備エリアを有する揮発メモリと、
前記揮発メモリの各記憶エリア及び予備エリアに対応する各記憶エリア及び予備エリアを有する不揮発メモリと、
当該情報処理装置の電源オフ時に、前記揮発メモリの各記憶エリア及び予備エリアから前記不揮発メモリの各記憶エリア及び予備エリアにデータを退避させるオフ時制御部と、
当該情報処理装置の起動時に、前記不揮発メモリの各記憶エリア及び予備エリアから前記揮発メモリの各記憶エリア及び予備エリアにデータを展開する起動時制御部と、を備えた情報処理装置による情報処理方法において、
前記起動時制御部は、
前記揮発メモリの記憶エリア毎に算出したサム値と、前記不揮発メモリの記憶エリア毎に算出したサム値とが一致した場合に、前記揮発メモリの予備エリアのデータの真偽を判断する第１データ判断処理ステップと、
前記揮発メモリの記憶エリア毎に算出したサム値と、前記不揮発メモリの記憶エリア毎に算出したサム値とが一致しなかった場合に、前記揮発メモリの予備エリアのデータの真偽を判断する第２データ判断処理ステップと、を実行することを特徴とする情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、及び情報処理方法に関する。
【背景技術】
【０００２】
従来、ＭＦＰ（Multi-Function Peripheral）などの電子機器では、電源ＯＦＦ時や停電時に、揮発メモリに格納されたデータが不揮発メモリに待避される。
一方、このような電子機器では、電源ＯＮ時に不揮発メモリからデータをリードして揮発メモリに格納し、通電中は必要に応じて揮発メモリのデータを書き換え、不揮発メモリへのライトを行う。
このような電子機器では、電源ＯＦＦ時は、揮発メモリ内のデータ（特に書き換えがあったもの）を不揮発メモリにライト（＝退避処理）する必要があり、さらに電源ＯＮ時にデータ誤り検出としてチェックサム制御を搭載してデータを保証する必要がある。
その退避処理時に、ノイズ重畳の可能性もあるため、ライトしたデータをリード（ライトベリファイ）してデータを保証している。
しかし、不揮発メモリの素子に異常がある場合、データをライトできないことが考えられ、その対応として故障と見なされたアドレスと書こうとしていたデータをメモリ内の別領域（予備エリア）に退避する技術が知られている。
【０００３】
特許文献１には、退避処理を確実に行うことを目的として、揮発メモリに記憶されたデータを、不揮発メモリに退避する技術が開示されている。
サイクル毎に異なる記憶領域にデータを記録することで、故障情報の記録が失敗しても、それまで蓄積した故障情報がすべて失われることを防止している。つまり、退避先を２重に設けてミラーリングして故障領域を保証する構成が開示されている。
詳しくは、特許文献１には、ある記憶領域に素子固着などの故障が発生すると、その記憶領域に故障情報を正常に記録することができなくなってしまう。故障が発生した記憶領域から故障情報を読み込むときに、チェックサムなどで故障発生が検知されると、故障が発生していない他の記憶領域、例えば、故障が発生した記憶領域の直前に故障情報を書き込んだ記憶領域から故障情報が読み込まれることが開示されている。
また、特許文献１には、プロセッサが、フラッシュメモリの各記憶領域について、例えば、書き込み順序を表すカウンタを参照し、開始印及び終了印が正常である記憶領域のうち、バックアップ領域に故障情報が書き込まれた時期が次に新しいものを選定した後、プロセッサが、変数ＳＵＭを０にリセットすることが開示されている。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、特許文献１にあっては、退避先を２重に設ける必要があり、退避先の容量が倍増することで、メモリの記憶エリアを圧迫するという問題があった。
本発明の一実施形態は、上記に鑑みてなされたもので、その目的は、メモリ容量を極力抑えながら、揮発メモリに復帰したデータの真偽を判断することにある。
【課題を解決するための手段】
【０００５】
上記課題を解決するたに、請求項１記載の発明は、複数の記憶エリア及び予備エリアを有する揮発メモリと、前記揮発メモリの各記憶エリア及び予備エリアに対応する各記憶エリア及び予備エリアを有する不揮発メモリと、当該情報処理装置の電源オフ時に、前記揮発メモリの各記憶エリア及び予備エリアから前記不揮発メモリの各記憶エリア及び予備エリアにデータを退避させるオフ時制御部と、当該情報処理装置の起動時に、前記不揮発メモリの各記憶エリア及び予備エリアから前記揮発メモリの各記憶エリア及び予備エリアにデータを展開する起動時制御部と、を備えた情報処理装置において、前記起動時制御部は、前記揮発メモリの記憶エリア毎に算出したサム値と、前記不揮発メモリの記憶エリア毎に算出したサム値とが一致した場合に、前記揮発メモリの予備エリアのデータの真偽を判断する第１データ判断処理部と、前記揮発メモリの記憶エリア毎に算出したサム値と、前記不揮発メモリの記憶エリア毎に算出したサム値とが一致しなかった場合に、前記揮発メモリの予備エリアのデータの真偽を判断する第２データ判断処理部と、を備えたことを特徴とする。
【発明の効果】
【０００６】
本発明によれば、メモリ容量を増やさずに揮発メモリに復帰したデータの真偽を判断することができる。
【図面の簡単な説明】
【０００７】
【図１】（ａ）は本発明の一実施形態に係る情報処理装置が組み込まれた電子機器のハードウエア構成を示すブロック図であり、（ｂ）は本発明の一実施形態に係る情報処理装置の機能構成を示す機能ブロック図である。
【図２】（ａ）は不揮発メモリの複数の記憶領域である各エリアの構成を示す図であり、（ｂ）は揮発メモリの複数の記憶領域である各エリアの構成を示す図である。
【図３】（ａ）〜（ｆ）は揮発メモリ及び不揮発メモリのデータ状態の推移を示す図である。
【図４】（ａ）〜（ｄ）はチェックサムによるデータ復元方法について説明するための図である。
【図５】（ａ）は起動時のデータ正誤判断パターンについて説明するための図であり、（ｂ）は６つのパターンを表す模式図である。
【図６】本発明の実施形態に係る電子機器の電源ＯＦＦ時の動作のー例を示すフローチャートである。
【図７】本発明の実施形態に係る電子機器の電源ＯＦＦ時の同期化処理の動作のー例を示すサブルーチンのフローチャートである。
【図８】本発明の実施形態に係る電子機器の電源ＯＮ時のメイン処理のー例を示すフローチャートである。
【図９】本発明の実施形態に係る電子機器の第１データ判断処理のサブルーチンのー例を示すフローチャートである。
【図１０】本発明の実施形態に係る電子機器の第２データ判断処理のサブルーチンのー例を示すフローチャートである。
【発明を実施するための形態】
【０００８】
以下、本発明を図面に示した実施の形態により詳細に説明する。
本発明は、メモリ容量を極力抑えながら、揮発メモリに復帰したデータの真偽を判断するために、以下の構成を有する。
すなわち、本発明の情報処理装置は、複数の記憶エリア及び予備エリアを有する揮発メモリと、揮発メモリの各記憶エリア及び予備エリアに対応する各記憶エリア及び予備エリアを有する不揮発メモリと、当該情報処理装置の電源オフ時に、揮発メモリの各記憶エリア及び予備エリアから不揮発メモリの各記憶エリア及び予備エリアにデータを退避させるオフ時制御部と、当該情報処理装置の起動時に、不揮発メモリの各記憶エリア及び予備エリアから揮発メモリの各記憶エリア及び予備エリアにデータを展開する起動時制御部と、を備えた情報処理装置において、起動時制御部は、揮発メモリの記憶エリア毎に算出したサム値と、不揮発メモリの記憶エリア毎に算出したサム値とが一致した場合に、揮発メモリの予備エリアのデータの真偽を判断する第１データ判断処理部と、揮発メモリの記憶エリア毎に算出したサム値と、不揮発メモリの記憶エリア毎に算出したサム値とが一致しなかった場合に、揮発メモリの予備エリアのデータの真偽を判断する第２データ判断処理部と、を備えたことを特徴とする。
以上の構成を備えることにより、メモリ容量を極力抑えながら、揮発メモリに復帰したデータの真偽を判断することができる。
上記記載の本発明の特徴について、以下の図面を用いて詳細に解説する。但し、この実施形態に記載される構成要素、種類、組み合わせ、形状、その相対配置などは特定的な記載がない限り、この発明の範囲をそれのみに限定する主旨ではなく単なる説明例に過ぎない。
上記の本発明の特徴に関して、以下、図面を用いて詳細に説明する。
【０００９】
＜情報処理装置の構成＞
図１（ａ）は、本発明の一実施形態に係る情報処理装置が組み込まれた電子機器のハードウエア構成を示すブロック図である。
電子機器１は、ＣＰＵ１０、揮発メモリ１１、不揮発メモリ１２を備えている。
なお、電子機器１は、不揮発メモリ１２を複数備えていてもよい。
ＣＰＵ１０は、データ転送およびエラー検出に関連する全ての処理を制御する。
ＣＰＵ１０は、制御部のー例である。電子機器１の制御部は、ＦＰＧＡ（Field Programmable Gate Array）、ＡＳＩＣ（Application Specified Integrated Circuit）、マイコンなどであつてもよい。ＣＰＵ１０は、プログラムを実行し、電子機器１の機能を実現する。ＣＰＵ１０が実行するプログラムは、不揮発メモリ１２に格納されていてもよいし、不揮発メモリ１２とは別に設けられたプログラムメモリに格納されていてもよい。また、ＣＰＵ１０は、揮発メモリ１１上のプログラムを実行してもよいし、揮発メモリ１１とは別に設けられたＲＡＭ上でプログラムを実行してもよい。
【００１０】
揮発メモリ１１は、ＤＲＡＭ（Dynamic Random Access Memory）やＳＲＡＭ（Static RAM）などである。揮発メモリ１１は、記憶領域を分割して形成された複数の分割領域を設けられている。各分割領域には、退避対象となるデー夕がそれぞれ格納される。揮発メモリ１１は、データ転送およびエラー検出に用いるデータを一時的に保持する。
【００１１】
不揮発メモリ１２は、ＥＥＰＲＯＭ（Electrically Erasable Programmable Read Only Memory）、フラッシュメモリ、ＭＲＡＭ（Magnetoresistive RAM）、ＲｅＲＡＭ（Resistive RAM）、ＦｅＲＡＭ（Ferroelectric RAM）などである。不揮発メモリ１２は、記憶領域を分割して形成された複数の分割領域を設けている。不揮発メモリ１２の各分割領域は、アドレスの特定ビッ卜が共通する記憶領域の集合として設けられる。また、不揮発メモリ１２の各分割領域は、それぞれ揮発メモリ１１の分割領域に対応する。不揮発メモリ１２の分割領域には、揮発メモリ１１の対応する分割領域のデータが退避される。
不揮発メモリ１２は、データの保持、かつ、データ復元が行えない場合を想定したデータのデフォルト値を保持する。
電源ＯＦＦ／停電検知回路１３は、情報処理装置が組み込まれた電子機器本体に入カされた電源ＯＦＦ要求を検知し、ＣＰＵ１０に通知する。また、電源ＯＦＦ／停電検知回路１３は、電子機器本体ヘの電力供給の停止、又は電源系統の停電を検知し、ＣＰＵ１０に通知する。
【００１２】
図１（ｂ）は、本発明の一実施形態に係る情報処理装置の機能構成を示す機能ブロック図である。
制御部１０ａは、オフ時制御部１０ｂ、起動時制御部１０ｃを備えている。
オフ時制御部１０ｂは、当該電子機器１の電源オフ時に、揮発メモリ１１の各記憶領域から不揮発メモリ１２の各記憶領域にデータを退避させる。
起動時制御部１０ｃは、当該電子機器１の起動時に、不揮発メモリ１２の各記憶領域から揮発メモリ１１の各記憶領域にデータを展開する。
起動時制御部１０ｃは、第１データ判断処理部１０ｄ、第２データ判断処理部１０ｅを備えている。
第１データ判断処理部１０ｄは、揮発メモリ１１の記憶エリア毎に算出したサム値と、不揮発メモリ１２の記憶エリア毎に算出したサム値とが一致した場合に、揮発メモリ１１の予備エリアのデータの真偽を判断する。
第２データ判断処理部１０ｅは、揮発メモリ１１の記憶エリア毎に算出したサム値と、不揮発メモリ１２の記憶エリア毎に算出したサム値とが一致しなかった場合に、揮発メモリ１１の予備エリアのデータの真偽を判断する。
【００１３】
＜不揮発メモリ、及び揮発メモリの記憶領域＞
図２（ａ）は、不揮発メモリの複数の記憶領域である各エリアの構成を示す図であり、（ｂ）は、揮発メモリの複数の記憶領域である各エリアの構成を示す図である。
図１、図２（ｂ）に示す構成では、電源ＯＮ前は保持する必要のあるデータを不揮発メモリ１２に保持している。
図２（ａ）において、１１１は、揮発メモリ１１の全体の領域を複数に分割した一つ一つの固まりであり、本実施形態ではエリアとよぶ。
さらに、必要なデータを保持する各エリアとは別に、退避先のエリアを予備エリア（予備領域）１１２とする。
エリア毎に、当該エリア内のデータのサム値を保存することで、エリア内のデータの誤り検出に利用される。
なお、図２（ｂ）において、１２１は、不揮発メモリ１２の全体の領域を複数に分割した一つ一つの固まりであり、本実施の形態ではエリアとよび、さらに退避先のエリアを予備エリア（予備領域）１２２とする。
【００１４】
＜データ状態の推移＞
図３（ａ）〜（ｆ）は、揮発メモリ及び不揮発メモリ１２のデータ状態の推移を示す図である。
図３において、揮発メモリ１１はエリアＸ、Ｙ、Ｚを備え、不揮発メモリ１２はエリアＡ、Ｂ、Ｃを備えることとして説明する。なお、揮発メモリ１１のエリアＸ、Ｙ、Ｚは、不揮発メモリ１２のエリアＡ、Ｂ、Ｃにそれぞれ対応することとする。
電子機器１において、電源をＯＦＦしても動作時に用いたデータを保持する必要がある場合、図１に示すように、揮発メモリ１１と不揮発メモリ１２を有する構成とすることが一般的である。
不揮発メモリ１２は、電源ＯＦＦ状態でもデータを保持できる一方、高速アクセスに向かない他、繰り返しのデータ書き換えによってデータ保持機能が劣化するという欠点がある。
このため、電子機器１が通電時（動作時）は、高速アクセスや膨大な書き換え回数に対応できる揮発メモリ１１を用いてデータ処理を行うことで、通電時のデータ処理の高速化と、不揮発メモリ１２の劣化を防止することに寄与できる。
【００１５】
＜電子機器の電源ＯＮ前のデータ状態＞
図３（ａ）は、電子機器の電源ＯＮ前のデータ状態２１を示す図である。
図３（ａ）に示すように、電源ＯＮ前では、揮発メモリ１１の各エリアには、データが格納されておらず、不揮発メモリ１２の各エリアには、それぞれ所定のデータが格納されている。例えば、不揮発メモリ１２のエリアＡには、データ０ｘａ１、０ｘａ２、０ｘａ３等が格納されている。
【００１６】
＜電子機器の電源ＯＮ直後のデータ状態＞
図３（ｂ）は、電子機器の電源ＯＮ直後のデータ状態２２を示す図である。
電子機器１の電源がＯＮすると、ＣＰＵ１０は、揮発メモリ１１を利用して処理を実行するため、不揮発メモリ１２の各エリアに格納されたデータを読み出し、読み出した各エリアのデータを、揮発メモリ１１の対応するエリアに書き込む。
これにより、揮発メモリ１１の各エリアには、不揮発メモリ１２の対応するエリアに格納されたデータと同一のデータが格納される。図３（ａ）に示す例では、例えば、揮発メモリ１１のエリアＸに、不揮発メモリ１２のエリアＡに格納されたデータと同一のデータ０ｘａ１、０ｘａ２、０ｘａ３が格納されている。
【００１７】
＜揮発メモリ１１のデータ更新後のデータ状態＞
図３（ｃ）は、揮発メモリ１１のデータ更新後のデータ状態２３を示す図である。
電子機器の電源がＯＮになり、ＣＰＵ１０が通常処理を実行すると、ＣＰＵ１０により揮発メモリ１１の各エリアに格納されたデータが更新される。揮発メモリ１１のデータが更新されると、揮発メモリ１１の更新されたエリアに格納されたデータと、不揮発メモリ１２の対応するエリアに格納されたデータとがー致しな＜なる。
図３（ｃ）に示す例では、揮発メモリ１１のエリアＸのデータが更新されており、エリアＸにはデータ０ｘａ４、０ｘａ５、０ｘａ６が格納されている。
これに対して、不揮発メモリ１２のエリアＡには、データ０ｘａ１、０ｘａ２、０ｘａ３が格納されている。
以降は、揮発メモリ１１でのデータ処理となるので、例えば揮発メモリ１１のエリアＸのデータのみ更新されて、これに対応する不揮発メモリ１２の領域であるエリアＡは更新されない、という状態が存在する。
【００１８】
＜不揮発メモリのデータ更新後のデータ状態＞
図３（ｄ）は、不揮発メモリ１２のデータ更新後のデータ状態２４を示す図である。
ＣＰＵ１０は、通常処理の実行中、所定のタイミングで不揮発メモリ１２のデータを更新する。
すなわち、ＣＰＵ１０は、揮発メモリ１１のエリアに格納されたデータを読み出し、読み出したデータを、不揮発メモリ１２の対応するエリアに書き込む。不揮発メモリ１２のデータが更新されると、不揮発メモリ１２の更新されたエリアに格納されたデータと、揮発メモリ１１の対応するエリアに格納されたデータとが一致する。
図２（ｄ）に示す例では、不揮発メモリ１２のエリアＡのデータが更新されており、エリアＡには、対応する揮発メモリ１１のエリアＸと同一のデータであるデータ０ｘａ４、０ｘａ５、０ｘａ６が格納されている。
【００１９】
なお、更新したデータを保持する目的で、揮発メモリ１１のエリアＸのデータを不揮発メモリ１２のエリアＡにライト（書き込む）する場合もある。ただし、不揮発メモリ１２へのライト頻度が高すぎると、データ処理が増えてパフォーマンスが低下する上に、不揮発メモリ１２のデータ書き換え回数増加による性能劣化を促進し、すなわち揮発メモリ１１を使用するメリットを潰してしまう。
このため、不揮発メモリ１２へのライトは、揮発メモリ１１が更新される度に常に行うわけではなく、システム要求に応じて適宜行われる。
また、ライトした場合はライトした箇所をリードすることにより、データを保証するケースが多い。これはライト時に外部から飛来する電磁ノイズの影響によりデータを誤認識する場合を想定している。
よって、リードしたデータが本来のデータと異なる場合は、再度ライト、リードを繰り返してデータを保証する。
【００２０】
＜不揮発メモリヘのデータ更新多発後のデータ状態＞
図３（ｅ）は、不揮発メモリ１２ヘのデータ更新多発後のデータ状態２５を示す図である。
ＣＰＵ１０が不揮発メモリ１２のデータの更新を繰り返し実行すると、外部から飛来する電磁ノイズなどの影響により、データエラーやアドレスエラーなどの書き込み異常が発生することがある。ここで、データエラーとは、書き込み対象のデータの一部のビットが反転するというエラーである。
データエラーが発生すると、不揮発メモリ１２の所望のアドレスに誤ったデータが書き込まれる。ここで、アドレスエラーとは、データの書き込み先を示すアドレスの一部のビットが反転するエラーである。
アドレスエラーが発生すると、不揮発メモリ１２の誤ったアドレスにデータが書き込まれる。
【００２１】
図３（ｅ）に示す例では、不揮発メモリ１２のエリアＣのデータの更新時に書き込み異常が発生している。
この結果、揮発メモリ１１のエリアＺにデータ０ｘｃ４、０ｘｃ５、０ｘｃ６が格納されているのに対して、不揮発メモリ１２のエリアＣにはデータ０ｘｃ４、０ｘｃ６、０ｘｃ６が格納されている。
すなわち、エラーＣには、データ０ｘｃ５の代わりに、データ０ｘｃ６が誤って書き込まれている。以下では、上記のデータ０ｘｃ６のような、書き込み異常によって不揮発メモリ１２に誤って書き込まれたデータを誤ライトデータという。
【００２２】
また、揮発メモリ１１の更新と不揮発メモリ１２へのライトが複数回行われた後のある時点では、揮発メモリ１１と不揮発メモリ１２の対応する領域間のデータが何箇所か異なる状態となる。
状態２５においては、揮発メモリ１１のエリアＹのデータが更新されているが、これに対応する不揮発メモリ１２の領域であるエリアＢには、更新データのライトを行っていない。
一方、エリアＹと同様にエリアＺも更新されており、こちらは対応する不揮発メモリ１２の領域であるエリアＣへのライトを行っているが、ライト時にアドレスエラーによる誤ライトが発生したために、エリアＣの一部データが正常に更新されていない。アドレスエラーはデータエラーと異なり検出・訂正が容易でないため、このようにアドレスエラーによる誤ライトが発生すると、意図しないデータが残ってしまう。
この状態で、ＣＰＵ１０に電源ＯＦＦ／停電が通知された場合、ＣＰＵ１０は、更新されてないデータや誤ライトにより正しくない誤ライトデータを持つ不揮発メモリ１２に対して、揮発メモリ１１のデータをライトする必要がある。（電源ＯＦＦ／停電時に不揮発メモリ１２に揮発メモリ１１のデータをライトする処理を「退避処理」と呼ぶ。）
【００２３】
しかし、電子機器１の電源ＯＦＦ時の動作においては、ハードウエア構成の制約上、ＣＰＵ１０、揮発メモリ１１、不揮発メモリ１２に通電する時間が限られているか、もしくは制御の中でタイムアウト処理を用いており、いずれも処理時間には上限が存在する。
そのため、全てのエリアについて退避処理を行おうとすると、制限時間内に退避処理が完了せずに、揮発メモリ１１のデータが失われる危険性がある。
さらに言うと、電源ＯＦＦの操作ではなく、電子機器１に停電が発生した場合は、さらに処理時間が短くなるため、その危険性もより大きい。
よって、退避処理においては、特定のデータのみを対象とすることで、処理時間を短縮したり、もしくは特定のデータを優先して退避させたりすることで、処理が完了しなかった際のリスクを軽減するような手法を取り入れることが望ましい。
【００２４】
＜不揮発メモリのデータ更新中に異常が発生した時のデータ状態＞
図３（ｆ）は、不揮発メモリのデータ更新中に異常が発生した時のデータ状態２６を示す図である。
状態２６では、状態２４、状態２５のような更新があった際に、不揮発メモリ１２内のあるエリアが故障した場合には、何度もライトを繰り返すため、更新期間内に更新しきれない場合がある。
その際は、本来ライトするエリアとは別の予備エリアに、不揮発メモリ１２内の本来ライトするはずのアドレスとデータを保持しておく技術が知られている。
【００２５】
＜チェックサムによるデータ復元方法＞
図４（ａ）〜（ｄ）は、チェックサムによるデータ復元方法について説明するための図である。図４では、チェックサムによるデータ復元時におけるデータ状態の推移を示す。
【００２６】
＜データ更新時に不揮発メモリに異常が発生した状態＞
まず、図４（ａ）は、データ更新時に不揮発メモリ１２に異常が発生した状態２７を示す図である。
電源ＯＦＦ時などデータ更新を行う際、不揮発メモリ１２内の特定アドレスが故障してしまった場合は、ライトチェック制御を繰り返すため、一定回数を超えたときは故障であると判断し、不揮発メモリ１２内の予備エリアＮ（予備領域）に特定アドレスと本来ライトするはずのアドレスとデータを保持する。
【００２７】
図４（ｂ）は、電子機器の電源ＯＮ前のデータ状態２８を示す図である。
状態２８では、図３（ａ）に示す状態２１と同様に、電源ＯＮ前は保持する必要のあるデータを不揮発メモリ１２に保持している。
この時、予備エリア内のサム値も保持する。なお、故障と認識されたアドレスには正しいデータがライトできなかったため、ライト誤ったデータが残ったままとなる。ただし、該当エリアのサム値は本来書くはずだったデータを考慮したサム値として更新される。
【００２８】
＜電源ＯＮ時のデータ更新時の不揮発メモリに異常が発生したデータ状態＞
図４（ｃ）は、電子機器の電源ＯＮ時のデータ更新時の不揮発メモリに異常が発生したデータ状態２９を示す図である。
状態２９では、電源ＯＮ時に、ＣＰＵ１０は不揮発メモリ１２からデータをリードして、揮発メモリ１１に同データをライトする。この時、不揮発メモリ１２から読み取ったサム値とＣＰＵ１０で演算したエリア内のサム値とを比較して、状態２７のように不揮発メモリ１２で異常と判断された場合に、サム値は一致しない。
【００２９】
＜サムチェックＮＧ時のバックアップ処理のデータ状態＞
図４（ｄ）は、サムチェックＮＧ時のバックアップ処理のデータ状態３０を示す図である。
状態３０では、状態２９のように、サム値が不一致の際は、揮発メモリ１１の予備エリアにあるアドレスとデータを書き戻した上でサム値の比較を行う。ここで、サム値が一致した場合、予備エリア（予備領域）のデータを正として判断し、揮発メモリ１１内に書き戻す。
【００３０】
＜データ正誤判断パターン＞
図５（ａ）は、起動時のデータ正誤判断パターンについて説明するための図である。状態２９、３０の処理は上記パターンの一例であり、全パターンの処理をここに示す。
パターンとしては、予備エリア内のデータの有無と、通常エリアと予備エリアそれぞれサム値に対する正誤判定結果に基づいて、６つのパターン（３１〜３６）が考えられ、そのパターンに応じて正しいデータの判断処理を行う。
【００３１】
図５（ｂ）は、６つのパターン（３１〜３６）を表す模式図である。
＜パターン３１＞
第１データ判断処理部１０ｄでは、パターン３１に表す処理を行う。
第１データ判断処理部１０ｄでは、予備エリアにデータがあり、かつ、全ての記憶エリアでサム値が一致した場合には、予備エリアに残されたアドレスから対象アドレスにデータを書き戻し、サム値の比較を再度行う。サム値が一致した場合には、予備エリアのデータを真と判断し、予備エリアのデータを書き戻した後に、予備エリアに残していたデータを消去する。サム値が不一致の場合には、予備エリアのデータを偽と判断し、通常起動する。
【００３２】
＜パターン３２＞
第２データ判断処理部１０ｅでは、パターン３２に表す処理を行う。
第２データ判断処理部１０ｅでは、予備エリアにデータがあり、かつ、予備エリアのサム値は一致しているが、予備エリア以外のサム値が不一致である場合には、予備エリアのデータを正と判断し、予備エリアに残されたアドレスから対象アドレスにデータを書き戻す。その後、予備エリアに残していたデータを消去する。
【００３３】
＜パターン３３＞
第１データ判断処理部１０ｄでは、パターン３３に表す処理を行う。
第１データ判断処理部１０ｄでは、予備エリアにデータがあり、かつ、予備エリアのサム値は不一致しているが、予備エリア以外のサム値が一致である場合には、予備エリアのデータを偽と判断し、通常起動する。
【００３４】
＜パターン３４＞
第２データ判断処理部１０ｅでは、パターン３４に表す処理を行う。
第２データ判断処理部１０ｅでは、予備エリアにデータがあり、かつ、予備エリアと予備エリア以外でサム値が不一致である場合には、ノイズ重畳の可能性もあるため、該当エリア／予備エリアそれぞれ再度、サム値の比較を行う。それでも、両者が不一致である場合は、どちらのデータも信用性がないため、揮発メモリ１１に保持したデータをデフォルト値として通常起動する。
【００３５】
＜パターン３５＞
第１データ判断処理部１０ｄでは、パターン３５に表す処理を行う。
第１データ判断処理部１０ｄでは、予備エリアにデータが無く、かつ、全てのエリアでサム値が一致である場合には、通常起動する。
【００３６】
＜パターン３６＞
第２データ判断処理部１０ｅでは、パターン３６に表す処理を行う。
第２データ判断処理部１０ｅでは、予備エリアにデータが無く、かつ、エリアでサム値が不一致であった場合には、不一致エリアに対してノイズ重畳の可能性もあるため、リトライを実施し、サム値が一致である場合には、通常起動する。両者が不一致である場合は、エラー停止とする。
【００３７】
＜電源ＯＦＦ時の動作＞
図６は、本発明の実施形態に係る電子機器の電源ＯＦＦ時の動作のー例を示すフローチャートである。
ＣＰＵ１０は、起動処理や初期化処理を完了した後に、通常処理を開始していることとする。ここで、電子機器の電源スイッチがユーザの操作に応じてＯＦＦされた場合に、ＣＰＵ１０は、電源ＯＦＦ／停電検知回路から電源ＯＦＦ要求が検知される。
ステップＳ１０では、ＣＰＵ１０は、電源ＯＦＦ／停電検知回路１３から電源ＯＦＦ要求が入力されたか否かを判定する。ＣＰＵ１０は、電源ＯＦＦ／停電検知回路１３から電源ＯＦＦ要求が入力されたと判定した場合には、ステップＳ１２に進み、一方、電源ＯＦＦ要求が入力されていないと判定した場合には、ステップＳ１０に戻る。
【００３８】
ステップＳ１２では、ＣＰＵ１０は、揮発メモリ１１上の各エリアからデータを読み出して、エリア毎のサム値を計算する。
ステップＳ１４では、ＣＰＵ１０は、計算したエリア毎のサム値を不揮発メモリ１２に書き込む。
ステップＳ１６では、ＣＰＵ１０は、不揮発メモリ１２の全領域からデータを読み出す。
ステップＳ１８では、ＣＰＵ１０は、エリア１を対象として揮発メモリ１１上のデータと、不揮発メモリ１２上のデータとの正誤判定を行う。ここで、両者が不一致である場合は、ＯＦＦ時同期化処理のサブルーチンとしてステップＳ２０をコールする。一方、両者が一致である場合は、次のステップＳ２２に移行する。
ステップＳ２２では、ＣＰＵ１０は、エリア２を対象として揮発メモリ１１上のデータと、不揮発メモリ１２上のデータとの正誤判定を行う。ここで、両者が不一致である場合は、ＯＦＦ時同期化処理のサブルーチンとしてステップＳ２４をコールする。一方、両者が一致である場合は、次のステップＳ２６に移行する。
【００３９】
ステップＳ２６では、ＣＰＵ１０は、エリアＺを対象として揮発メモリ１１上のデータと、不揮発メモリ１２上のデータとの正誤判定を行う。ここで、両者が不一致である場合は、ＯＦＦ時同期化処理のサブルーチンとしてステップＳ２８をコールする。一方、両者が一致である場合は、次のステップＳ３０に移行する。
ステップＳ３０では、ＣＰＵ１０は、予備エリアを対象として揮発メモリ１１上のデータと、不揮発メモリ１２上のデータとの正誤判定を行う。ここで、両者が不一致である場合は、ＯＦＦ時同期化処理のサブルーチンとしてステップＳ３２をコールする。一方、両者が一致である場合は、次のステップＳ３４に移行する。
ステップＳ３４では、ＣＰＵ１０は、エンジンをＯＦＦする。
【００４０】
＜電源ＯＦＦ時の同期化処理＞
図７は、本発明の実施形態に係る電子機器の電源ＯＦＦ時の同期化処理（故障判断）の動作のー例を示すサブルーチンのフローチャートである。
ステップＳ１１０では、ＣＰＵ１０は、代数Ｎ＝０に設定する。
ステップＳ１１２では、ＣＰＵ１０は、不一致アドレスに対して、揮発メモリ１１にデータを書き込む。
ステップＳ１１４では、ＣＰＵ１０は、揮発メモリ１１に書き込んだデータを読み出す。
ステップＳ１１６では、ＣＰＵ１０は、揮発メモリ１１に書き込んだデータと、揮発メモリ１１から読み出したデータを比較し、両者が一致するか否を判定する。ＣＰＵ１０は、両者が一致する場合には、メインルーチンに復帰（リターン）し、一方、両者が一致しない場合には、ステップＳ１１８に進む。
両者が一致しない場合に、ステップＳ１１８では、ＣＰＵ１０は、同期を判定するための基準となる同期判定時間Ｔｏｕｔを経過したか否を判定する。ＣＰＵ１０は、Ｔｏｕｔを経過した場合には、メインルーチンに復帰（リターン）し、一方、Ｔｏｕｔを経過していない場合には、ステップＳ１２０に進む。
【００４１】
ステップＳ１２０では、ＣＰＵ１０は、代数Ｎに１を加える。
ステップＳ１２２では、ＣＰＵ１０は、故障判断として、代数Ｎが３よりも大きいか否かを判定する。ＣＰＵ１０は、代数Ｎが３よりも大きい場合には、ステップＳ１２４に進み、一方、代数Ｎが３よりも大きくない場合には、ステップＳ１１２に進む。
代数Ｎが３よりも大きい場合には、ステップＳ１２４では、ＣＰＵ１０は、予備エリアに不一致アドレスと揮発メモリ１１のデータを書き込む。
ステップＳ１２６では、ＣＰＵ１０は、揮発メモリ１１に書き込んだデータを読み出す。
ステップＳ１２８では、ＣＰＵ１０は、揮発メモリ１１に書き込んだデータと、揮発メモリ１１から読み出したデータを比較し、両者が一致するか否を判定する。ＣＰＵ１０は、両者が一致する場合には、メインルーチンに復帰する。一方、両者が一致しない場合には、ステップＳ１３０に進む。
両者が一致しない場合に、ステップＳ１３０では、ＣＰＵ１０は、同期判定時間Ｔｏｕｔを経過したか否を判定する。ＣＰＵ１０は、Ｔｏｕｔを経過した場合には、メインルーチンに復帰する。一方、Ｔｏｕｔを経過していない場合には、ステップＳ１２４に戻る。
【００４２】
＜電源ＯＮ時のメイン処理＞
図８は、本発明の実施形態に係る電子機器の電源ＯＮ時のメイン処理のー例を示すフローチャートである。
ステップＳ２１０では、ＣＰＵ１０は、不揮発メモリ１２から揮発メモリ１１へデータを転送して展開する（１回目）。
ステップＳ２１２では、ＣＰＵ１０は、不揮発メモリ１２と揮発メモリ１１からそれぞれデータを読み出し、両者のサム値を計算する。
ステップＳ２１４では、ＣＰＵ１０は、両者のサム値を比較する。すなわち、ＣＰＵ１０は、リード値と計算値を比較する。
ステップＳ２１６では、ＣＰＵ１０は、チェックサムの結果が正常か否かを判定する。すなわち、リード値と計算値が等しいか否かを判定する。ＣＰＵ１０は、チェックサムの結果が正常である場合には、第１データ判断処理のサブルーチンとしてステップＳ２２８をコールする。一方、ＣＰＵ１０は、チェックサムの結果が正常ではない場合には、ステップＳ２１８に進む。
【００４３】
チェックサムの結果が正常ではない場合には、ステップＳ２１８では、ＣＰＵ１０は、不揮発メモリ１２から揮発メモリ１１へデータを転送して展開する（２回目）。
ステップＳ２２０では、ＣＰＵ１０は、１回目のデータと２回目のデータが同一か否かを判定する。ＣＰＵ１０は、両者が同一である場合には、第１データ判断処理のサブルーチンとしてステップＳ２２８をコールする。一方、ＣＰＵ１０は、両者が同一ではない場合には、ステップＳ２２２に進む。
【００４４】
両者が同一ではない場合には、ステップＳ２２２では、ＣＰＵ１０は、不揮発メモリ１２から揮発メモリ１１へデータを転送して展開する（３回目）。
次に、ステップＳ２２４では、ＣＰＵ１０は、不揮発メモリ１２から揮発メモリ１１へデータを転送して展開する（４回目）。
ステップＳ２２６では、ＣＰＵ１０は、３回目のデータと４回目のデータが同一か否かを判定する。ＣＰＵ１０は、両者が同一である場合には、第１データ判断処理のサブルーチンとしてステップＳ２２８をコールする。一方、ＣＰＵ１０は、両者が同一ではない場合には、第２データ判断処理のサブルーチンとしてステップＳ２３０をコールする。
【００４５】
＜第１データ判断処理＞
図９は、本発明の実施形態に係る電子機器の第１データ判断処理のサブルーチンのー例を示すフローチャートである。
ステップＳ３１０では、ＣＰＵ１０は、予備エリアにデータが無いか否かを判定する。ＣＰＵ１０は、予備エリアにデータが無いと判定した場合には、ステップＳ３１２に進み、一方、予備エリアにデータがあると判定した場合には、ステップＳ３１４に進む。
予備エリアにデータがあると判定した場合には、ステップＳ３１４では、ＣＰＵ１０は、予備エリアのサム値は一致しているか否かを判定する。ＣＰＵ１０は、予備エリアのサム値が一致していると判定した場合には、ステップＳ３１６に進み、予備エリアのサム値が一致していないと判定した場合には、ステップＳ３１２に進む。
予備エリアのサム値が一致していると判定した場合には、ステップＳ３１６では、ＣＰＵ１０は、予備エリアのデータを読み出して、このデータを該当エリアに書き込んで移動する。
ステップＳ３１８では、ＣＰＵ１０は、予備エリアのデータのサム値、該当エリアのデータのサム値を計算する。
【００４６】
ステップＳ３２０では、ＣＰＵ１０は、再度、予備エリアのサム値と該当エリアのサム値を比較する。
ステップＳ３２２では、ＣＰＵ１０は、両者のサム値が一致しているか否かを判定する。ＣＰＵ１０は、両者のサム値が一致していると判定した場合には、ステップＳ３２４に進み、両者のサム値が一致していないと判定した場合には、ステップＳ３２６に進む。
両者のサム値が一致していると判定した場合には、ステップＳ３２４では、ＣＰＵ１０は、予備エリアのデータを真として起動する。
両者のサム値が一致していないと判定した場合には、ステップＳ３２６では、ＣＰＵ１０は、元々の該当エリアのデータを真として起動する。
ステップＳ３２８では、ＣＰＵ１０は、予備エリアのデータをリフレッシュする。
ステップＳ３１２では、ＣＰＵ１０は、通常起動する。
【００４７】
＜第２データ判断処理＞
図１０は、本発明の実施形態に係る電子機器の第２データ判断処理のサブルーチンのー例を示すフローチャートである。
ステップＳ４１０では、ＣＰＵ１０は、予備エリアにデータが無いか否かを判定する。ＣＰＵ１０は、予備エリアにデータが無いと判定した場合には、ステップＳ４１２に進み、一方、予備エリアにデータがあると判定した場合には、ステップＳ４２０に進む。
予備エリアにデータが無いと判定した場合には、ステップＳ４１２では、ＣＰＵ１０は、当該エリアのサムチェックを再度行う。
ステップＳ４１４では、ＣＰＵ１０は、当該エリアのサム値は一致しているか否かを判定する。ＣＰＵ１０は、当該エリアのサム値が一致していると判定した場合には、ステップＳ４１６に進み、一方、当該エリアのサム値が一致していないと判定した場合には、ステップＳ４１８に進む。
当該エリアのサム値が一致していると判定した場合には、ステップＳ４１６では、ＣＰＵ１０は、通常起動する。
一方、当該エリアのサム値が一致していないと判定した場合には、ステップＳ４１８では、ＣＰＵ１０は、エラーであるため停止する。
【００４８】
予備エリアにデータがあると判定した場合には、ステップＳ４２０では、ＣＰＵ１０は、予備エリアのサム値が一致しているか否かを判定する。ＣＰＵ１０は、予備エリアのサム値が一致していると判定した場合には、ステップＳ４２８に進み、一方、予備エリアのサム値が一致していないと判定した場合には、ステップＳ４２２に進む。
予備エリアのサム値が一致していないと判定した場合には、ノイズ重畳による不一致を排除するためステップＳ４２２では、本当に予備エリアのサム値が一致しないかを判断する。ＣＰＵ１０は、予備エリアのサム値について、不一致が１回目か否かを判定する。もし一回だけの事象であればノイズの影響と判断し、2回以上発生する場合はノイズの影響ではないと判断する。ＣＰＵ１０は、予備エリアのサム値について、不一致が１回目であると判定した場合には、ステップＳ４２４に進み、一方、予備エリアのサム値について、不一致が１回目ではないと判定した場合には、ステップＳ４２６に進む。
予備エリアのサム値について、不一致が１回目ではないと判定した場合には、ステップＳ４２６では、ＣＰＵ１０は、デフォルト値として起動する。
一方、予備エリアのサム値について、不一致が１回目であると判定した場合には、ステップＳ４２４では、ＣＰＵ１０は、当該エリアのサムチェックを行うとともに、予備エリアのサムチェックを行い、ステップＳ４１０に戻る。
【００４９】
予備エリアのサム値が一致していると判定した場合には、ステップＳ４２８では、ＣＰＵ１０は、予備エリアのデータを該当エリアに移動する。
ステップＳ４３０では、ＣＰＵ１０は、予備エリアのデータのサム値、該当エリアのデータのサム値を計算する。
ステップＳ４３２では、ＣＰＵ１０は、再度、予備エリアのサム値と該当エリアのサム値を比較する。
【００５０】
ステップＳ４３４では、ＣＰＵ１０は、両者のサム値が一致しているか否かを判定する。ＣＰＵ１０は、両者のサム値が一致していると判定した場合には、ステップＳ４３６に進み、両者のサム値が一致していないと判定した場合には、ステップＳ４３８に進む。
両者のサム値が一致していると判定した場合には、ステップＳ４３６では、ＣＰＵ１０は、予備エリアのデータを真として起動する。
次に、ステップＳ４４４では、ＣＰＵ１０は、予備エリアのデータをリフレッシュする。
【００５１】
両者のサム値が一致していないと判定した場合には、ステップＳ４４６では、ＣＰＵ１０は、当該エリアのサムチェックを再度行う。
ステップＳ４４０では、ＣＰＵ１０は、当該エリアのサム値は一致しているか否かを判定する。ＣＰＵ１０は、当該エリアのサム値が一致していると判定した場合には、ステップＳ４４２に進み、一方、当該エリアのサム値が一致していないと判定した場合には、ステップＳ４４６に進む。
当該エリアのサム値が一致していると判定した場合には、ステップＳ４４２では、ＣＰＵ１０は、当該エリアのデータを真として起動する。
【００５２】
当該エリアのサム値が一致していないと判定した場合には、ステップＳ４４６では、ＣＰＵ１０は、予備エリアのサムチェックを再度行う。
次に、ステップＳ４４８では、ＣＰＵ１０は、予備エリアのサム値は一致しているか否かを判定する。ＣＰＵ１０は、予備エリアのサム値が一致していると判定した場合には、ステップＳ４５０に進み、一方、予備エリアのサム値が一致していないと判定した場合には、ステップＳ４５２に進む。
予備エリアのサム値が一致していると判定した場合には、ステップＳ４５０では、ＣＰＵ１０は、予備エリアのデータを真として起動する。
一方、予備エリアのサム値が一致していないと判定した場合には、ステップＳ４５２では、ＣＰＵ１０は、デフォルト値として起動する。
【００５３】
＜効果＞
本実施の形態によれば、電源ＯＮ時のデータ誤り検出として実行するチェックサム制御により（退避エリアを含む）リードして読まれたサム値と、計算されたサム値の一致／不一致の条件と、退避先のサム値の一致／不一致の条件と、退避エリア上のデータ有無の条件の全ての条件に基づいて、退避エリアのデータが誤ライトで書かれてしまったデータなのか、退避先データが正しいのか、通常立ち上げで良いのか、ノイズ重畳の可能性があるのかを判断できるので、メモリ容量を増やさずに不揮発メモリ１２の領域のデータの真偽を判断することができる。
【００５４】
＜本実施形態の態様例の作用、効果のまとめ＞
＜第１態様＞
本態様の情報処理装置は、複数の記憶エリア及び予備エリアを有する揮発メモリ１１と、揮発メモリ１１の各記憶エリア及び予備エリアに対応する各記憶エリア及び予備エリアを有する不揮発メモリ１２と、当該情報処理装置の電源オフ時に、揮発メモリ１１の各記憶エリア及び予備エリアから不揮発メモリ１２の各記憶エリア及び予備エリアにデータを退避させるオフ時制御部１０ｂと、当該情報処理装置の起動時に、不揮発メモリ１２の各記憶エリア及び予備エリアから揮発メモリ１１の各記憶エリア及び予備エリアにデータを展開する起動時制御部１０ｃと、を備えた情報処理装置において、起動時制御部１０ｃは、揮発メモリ１１の記憶エリア毎に算出したサム値と、不揮発メモリ１２の記憶エリア毎に算出したサム値とが一致した場合に、揮発メモリ１１の予備エリアのデータの真偽を判断する第１データ判断処理部１０ｄと、揮発メモリ１１の記憶エリア毎に算出したサム値と、不揮発メモリ１２の記憶エリア毎に算出したサム値とが一致しなかった場合に、揮発メモリ１１の予備エリアのデータの真偽を判断する第２データ判断処理部１０ｅと、を備えたことを特徴とする。
本態様によれば、当該情報処理装置の起動時において、起動時制御部１０ｃは、第１データ判断処理部１０ｄが、揮発メモリ１１の記憶エリア毎に算出したサム値と、不揮発メモリ１２の記憶エリア毎に算出したサム値とが一致した場合に、揮発メモリ１１の予備エリアのデータの真偽を判断する。一方、第２データ判断処理部１０ｅは、揮発メモリ１１の記憶エリア毎に算出したサム値と、不揮発メモリ１２の記憶エリア毎に算出したサム値とが一致しなかった場合に、揮発メモリ１１の予備エリアのデータの真偽を判断する。
これにより、メモリ容量を増やさずに揮発メモリ１１に復帰したデータの真偽を判断することができる。
【００５５】
＜第２態様＞
本態様の第１データ判断処理部１０ｄ（パターン３１−１）は、予備エリアにデータがある場合には、予備エリアに残されたアドレスに基づいて、対象アドレスにデータを書き戻し、サム値の比較を再度行うことを特徴とする。
本態様によれば、第１データ判断処理部１０ｄは、予備エリアにデータがある場合には、予備エリアに残されたアドレスに基づいて、対象アドレスにデータを書き戻し、サム値の比較を再度行うことで、揮発メモリ１１の記憶エリア毎に算出したサム値と、不揮発メモリ１２の記憶エリア毎に算出したサム値とが一致した場合に、揮発メモリ１１の予備エリアのデータの真偽を判断する。
これにより、メモリ容量を増やさずに揮発メモリ１１に復帰したデータの真偽を判断することができる。
【００５６】
＜第３態様＞
本態様の第１データ判断処理部１０ｄ（パターン３１−２）は、サム値が一致した場合には、予備エリアのデータを真として判断することを特徴とする。
本態様によれば、第１データ判断処理部１０ｄは、サム値が一致した場合には、予備エリアのデータを真として判断する。
これにより、メモリ容量を増やさずに揮発メモリ１１に復帰したデータの真偽を判断することができる。
【００５７】
＜第４態様＞
本態様の第１データ判断処理部１０ｄ（パターン３１−３）は、サム値が不一致である場合には、元々の当該エリアのデータを真として判断することを特徴とする。
本態様によれば、第１データ判断処理部１０ｄは、サム値が不一致である場合には、元々の当該エリアのデータを真として判断する。
これにより、メモリ容量を増やさずに揮発メモリ１１に復帰したデータの真偽を判断することができる。
【００５８】
＜第５態様＞
本態様の第２データ判断処理部１０ｅ（パターン３２）は、予備エリアにデータがある場合、かつ予備エリアのサム値が一致である場合に、予備エリアのデータをサム値が不一致であった記憶エリアに移動し、再度、当該記憶エリアのサム値が一致である場合には、予備エリアのデータを真として判断することを特徴とする。
本態様によれば、第２データ判断処理部１０ｅは、予備エリアにデータがある場合、かつ予備エリアのサム値が一致である場合に、予備エリアのデータをサム値が不一致であった記憶エリアに移動し、再度、当該記憶エリアのサム値が一致である場合には、予備エリアのデータを真として判断する。
これにより、メモリ容量を増やさずに揮発メモリ１１に復帰したデータの真偽を判断することができる。
【００５９】
＜第６態様＞
本態様の第１データ判断処理部１０ｄ（パターン３３）は、予備エリアにデータがある場合、かつ予備エリアのサム値が不一致である場合には、通常起動することを特徴とする。
本態様によれば、第１データ判断処理部１０ｄは、予備エリアにデータがある場合、かつ予備エリアのサム値が不一致である場合には、通常起動する。
これにより、予備エリアにデータがある場合、かつ予備エリアのサム値が不一致である場合には、通常起動することができる。
【００６０】
＜第７態様＞
本態様の第２データ判断処理部１０ｅ（パターン３４−１）は、予備エリアにデータがある場合、かつ予備エリアのサム値が一致である場合に、予備エリアのデータをサム値が不一致であった記憶エリアに移動し、再度、当該記憶エリアのサム値が不一致である場合に、再再度、当該記憶エリアのサム値が一致である場合には、当該記憶エリアのデータを真として判断することを特徴とする。
本態様によれば、第２データ判断処理部１０ｅは、予備エリアにデータがある場合、かつ予備エリアのサム値が一致である場合に、予備エリアのデータをサム値が不一致であった記憶エリアに移動し、再度、当該記憶エリアのサム値が不一致である場合に、再再度、当該記憶エリアのサム値が一致である場合には、当該記憶エリアのデータを真として判断する。
これにより、メモリ容量を増やさずに揮発メモリ１１に復帰したデータの真偽を判断することができる。
【００６１】
＜第８態様＞
本態様の第２データ判断処理部１０ｅ（パターン３４−２）は、再再度、当該記憶エリアのサム値が不一致である場合には、予備エリアのサム値が一致である場合には、予備エリアのデータを真として判断することを特徴とする。
本態様によれば、第２データ判断処理部１０ｅは、再再度、当該記憶エリアのサム値が不一致である場合には、予備エリアのサム値が一致である場合には、予備エリアのデータを真として判断する。
これにより、メモリ容量を増やさずに揮発メモリ１１に復帰したデータの真偽を判断することができる。
【００６２】
＜第９態様＞
本態様の第２データ判断処理部１０ｅ（パターン３４−３）は、再再度、当該記憶エリアのサム値が不一致であり。かつ予備エリアのサム値が不一致である場合には、揮発メモリ１１に保持したデータをデフォルト値として通常起動することを特徴とする。
本態様によれば、第２データ判断処理部１０ｅは、再再度、当該記憶エリアのサム値が不一致であり、かつ予備エリアのサム値が不一致である場合には、揮発メモリ１１に保持したデータをデフォルト値として通常起動する。
これにより、揮発メモリ１１に保持したデータをデフォルト値として通常起動することができる。
【００６３】
＜第１０態様＞
本態様の第１データ判断処理部１０ｄ（パターン３５）は、予備エリアにデータが無い場合には、通常起動することを特徴とする。
本態様によれば、第１データ判断処理部１０ｄは、予備エリアにデータが無い場合には、通常起動する。
これにより、通常起動することができる。
【００６４】
＜第１１態様＞
本態様の第２データ判断処理部１０ｅ（パターン３６−１）は、予備エリアにデータが無い場合に、サム値が不一致であった記憶エリアに対して、再度、サム値の比較を行い、サム値が一致である場合には、通常起動することを特徴とする。
本態様によれば、第２データ判断処理部１０ｅは、予備エリアにデータが無い場合に、サム値が不一致であった記憶エリアに対して、再度、サム値の比較を行い、サム値が一致である場合には、通常起動する。
これにより、通常起動することができる。
【００６５】
＜第１２態様＞
本態様の第２データ判断処理部１０ｅ（パターン３６−２）は、サム値が不一致であった記憶エリアに対して、再度、サム値の比較を行い、サム値が不一致である場合は、エラーがあることとして停止することを特徴とする。
本態様によれば、第２データ判断処理部１０ｅは、サム値が不一致であった記憶エリアに対して、再度、サム値の比較を行い、サム値が不一致である場合は、エラーがあることとして停止する。
これにより、起動動作を停止することができる。
【００６６】
＜第１３態様＞
本態様の情報処理方法は、複数の記憶エリア及び予備エリアを有する揮発メモリ１１と、揮発メモリ１１の各記憶エリア及び予備エリアに対応する各記憶エリア及び予備エリアを有する不揮発メモリ１２と、当該情報処理装置の電源オフ時に、揮発メモリ１１の各記憶エリア及び予備エリアから不揮発メモリ１２の各記憶エリア及び予備エリアにデータを退避させるオフ時制御部１０ｂと、当該情報処理装置の起動時に、不揮発メモリ１２の各記憶エリア及び予備エリアから揮発メモリ１１の各記憶エリア及び予備エリアにデータを展開する起動時制御部１０ｃと、を備えた情報処理装置による情報処理方法において、起動時制御部１０ｃは、
揮発メモリ１１の記憶エリア毎に算出したサム値と、不揮発メモリ１２の記憶エリア毎に算出したサム値とが一致した場合に、揮発メモリ１１の予備エリアのデータの真偽を判断する第１データ判断処理ステップと、揮発メモリ１１の記憶エリア毎に算出したサム値と、不揮発メモリ１２の記憶エリア毎に算出したサム値とが一致しなかった場合に、揮発メモリ１１の予備エリアのデータの真偽を判断する第２データ判断処理ステップと、を実行することを特徴とする。
第１３態様の作用、及び効果は第１態様と同様であるので、その説明を省略する。
【符号の説明】
【００６７】
１…電子機器、１０…ＣＰＵ、１０ａ…制御部、１０ｂ…オフ時制御部、１０ｃ…起動時制御部、１０ｄ…第１データ判断処理部、１０ｅ…第２データ判断処理部、１１…揮発メモリ、１２…不揮発メモリ、１３…電源ＯＦＦ／停電検知回路
【先行技術文献】
【特許文献】
【００６８】
【特許文献１】特開２０１２−２２６６７４公報
【図１】
2019149088.tif 000003
【図２】
2019149088.tif 000004
【図３】
2019149088.tif 000005
【図４】
2019149088.tif 000006
【図５】
2019149088.tif 000007
【図６】
2019149088.tif 000008
【図７】
2019149088.tif 000009
【図８】
2019149088.tif 000010
【図９】
2019149088.tif 000011
【図１０】
2019149088.tif 000012