(57)【要約】【課題】停電が発生した際に確実に書き込みを行うことができるように書き込みアドレスを設定することができる画像形成装置を提供する。【解決手段】画像形成装置は、不揮発性記憶部と、電源回路と、前記電源回路のための電源スイッチと、起動後尚且つ電源オフ又は電圧が低下する前に所定の方法でアドレスを決定する決定手段と、電源オン処理の後に、前記電源スイッチの操作指示があった場合には、電源オフ処理を行い、前記電源オン処理の後に前記電源回路の電圧の低下が検出された場合には、前記不揮発性記憶部における前記決定手段により予め決定されたアドレスに対して退避すべき情報の書き込みを行う電源制御部とを有する。【選択図】図５
2018050248.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性記憶部と、
電源回路と、
前記電源回路のための電源スイッチと、
起動後尚且つ電源オフ又は電圧が低下する前に所定の方法でアドレスを決定する決定手段と、
電源オン処理の後に、前記電源スイッチの操作指示があった場合には、電源オフ処理を行い、前記電源オン処理の後に前記電源回路の電圧の低下が検出された場合には、前記不揮発性記憶部における前記決定手段により予め決定されたアドレスに対して退避すべき情報の書き込みを行う電源制御部と
を有することを特徴とする画像形成装置。
【請求項２】
不揮発性記憶部と、
電源スイッチと、
電源供給開始時又は停電後の復電時に、前記不揮発性記憶部に書き込みが行われている領域の最後のアドレスの次のアドレスが偶数である場合には、前記最後のアドレスの次のアドレスに書き込みを行い、前記書き込みを行ったアドレスの次のアドレスを書き込みアドレスとして設定し、前記電源スイッチの操作指示を待たずに、電源オン処理を行い、前記最後のアドレスの次のアドレスが奇数である場合には、前記最後のアドレスの次のアドレスを書き込みアドレスとして設定し、前記電源スイッチの操作指示があった場合に電源オン処理を行う電源制御部とを有し、
前記電源制御部は、前記電源オン処理の後に、前記電源スイッチの操作指示があった場合には、電源オフ処理を行い、前記電源オン処理の後に、電源電圧の低下が検出された場合には、電源オフ処理を行うと共に、前記不揮発性記憶部の前記書き込みアドレスに書き込みを行うことを特徴とする情報処理装置。
【請求項３】
前記電源制御部は、電源供給開始時又は停電後の復電時に、前記不揮発性記憶部に書き込みが行われているアドレスを順にサーチし、前記不揮発性記憶部に書き込みが行われている最後のアドレスの次のアドレスを書き込みアドレスとして設定し、前記書き込みアドレスが偶数である場合には、前記書き込みアドレスに書き込みを行い、前記書き込みアドレスを更新し、前記電源スイッチの操作指示を待たずに、電源オン処理を行い、前記書き込みアドレスが奇数である場合には、前記電源スイッチの操作指示があった場合に電源オン処理を行うことを特徴とする請求項２記載の情報処理装置。
【請求項４】
前記電源制御部は、電源供給開始時又は停電後の復電時に、前記不揮発性記憶部に書き込みが行われている奇数アドレスを順にサーチし、前記不揮発性記憶部に書き込みが行われている最後の奇数アドレスの次の奇数アドレスを書き込みアドレスとして設定し、前記最後の奇数アドレスと前記次の奇数アドレスの間のアドレスに書き込みが行われていない場合には、前記最後の奇数アドレスと前記次の奇数アドレスの間のアドレスに書き込みを行い、前記電源スイッチの操作指示を待たずに、電源オン処理を行い、前記最後の奇数アドレスと前記次の奇数アドレスの間のアドレスに書き込みが行われている場合には、前記電源スイッチの操作指示があった場合に電源オン処理を行うことを特徴とする請求項２記載の情報処理装置。
【請求項５】
不揮発性記憶部と、
電源スイッチと、
電源供給開始時又は停電後の復電時に、前記不揮発性記憶部に書き込みが行われている領域の最後のアドレスの次のアドレスが奇数である場合には、前記最後のアドレスの次のアドレスに書き込みを行い、前記書き込みを行ったアドレスの次のアドレスを書き込みアドレスとして設定し、前記電源スイッチの操作指示を待たずに、電源オン処理を行い、前記最後のアドレスの次のアドレスが偶数である場合には、前記最後のアドレスの次のアドレスを書き込みアドレスとして設定し、前記電源スイッチの操作指示があった場合に電源オン処理を行う電源制御部とを有し、
前記電源制御部は、前記電源オン処理の後に、前記電源スイッチの操作指示があった場合には、電源オフ処理を行い、前記電源オン処理の後に、電源電圧の低下が検出された場合には、電源オフ処理を行うと共に、前記不揮発性記憶部の前記書き込みアドレスに書き込みを行うことを特徴とする情報処理装置。
【請求項６】
前記電源制御部は、電源供給開始時又は停電後の復電時に、前記不揮発性記憶部に書き込みが行われているアドレスを順にサーチし、前記不揮発性記憶部に書き込みが行われている最後のアドレスの次のアドレスを書き込みアドレスとして設定し、前記書き込みアドレスが奇数である場合には、前記書き込みアドレスに書き込みを行い、前記書き込みアドレスを更新し、前記電源スイッチの操作指示を待たずに、電源オン処理を行い、前記書き込みアドレスが偶数である場合には、前記電源スイッチの操作指示があった場合に電源オン処理を行うことを特徴とする請求項５記載の情報処理装置。
【請求項７】
前記電源制御部は、電源供給開始時又は停電後の復電時に、前記不揮発性記憶部に書き込みが行われている偶数アドレスを順にサーチし、前記不揮発性記憶部に書き込みが行われている最後の偶数アドレスの次の偶数アドレスを書き込みアドレスとして設定し、前記最後の偶数アドレスと前記次の偶数アドレスの間のアドレスに書き込みが行われていない場合には、前記最後の偶数アドレスと前記次の偶数アドレスの間のアドレスに書き込みを行い、前記電源スイッチの操作指示を待たずに、電源オン処理を行い、前記最後の偶数アドレスと前記次の偶数アドレスの間のアドレスに書き込みが行われている場合には、前記電源スイッチの操作指示があった場合に電源オン処理を行うことを特徴とする請求項５記載の情報処理装置。
【請求項８】
前記不揮発性記憶部に書き込みが行われた状態は、前記不揮発性記憶部に１が記憶されている状態であり、
前記不揮発性記憶部に書き込みが行われていない状態は、前記不揮発性記憶部に０が記憶されている状態であることを特徴とする請求項２〜７のいずれか１項に記載の情報処理装置。
【請求項９】
前記電源制御部は、前記不揮発性記憶部にアドレスの小さい方から順に書き込みを行うことを特徴とする請求項２〜８のいずれか１項に記載の情報処理装置。
【請求項１０】
前記電源制御部は、前記不揮発性記憶部の全アドレスが書き込まれた状態である場合には、前記不揮発性記憶部の全アドレスの記憶状態をクリアすることを特徴とする請求項２〜９のいずれか１項に記載の情報処理装置。
【請求項１１】
さらに、処理ユニットと、
電源電圧を処理ユニットに供給する開閉回路とを有し、
前記電源制御部は、前記電源電圧を前記処理ユニットに供給するように前記開閉回路を制御することにより前記電源オン処理を行い、前記電源電圧を前記処理ユニットに供給しないように前記開閉回路を制御することにより前記電源オフ処理を行うことを特徴とする請求項２〜１０のいずれか１項に記載の情報処理装置。
【請求項１２】
さらに、電源電圧が閾値より低下したか否かを検出する電圧検出部を有することを特徴とする請求項２〜１１のいずれか１項に記載の情報処理装置。
【請求項１３】
前記電源スイッチは、プッシュスイッチ式の電源オン／オフボタンであることを特徴とする請求項２〜１２のいずれか１項に記載の情報処理装置。
【請求項１４】
不揮発性記憶部と電源スイッチとを有する情報処理装置の制御方法であって、
電源制御部により、電源供給開始時又は停電後の復電時に、前記不揮発性記憶部に書き込みが行われている領域の最後のアドレスの次のアドレスが偶数である場合には、前記最後のアドレスの次のアドレスに書き込みを行い、前記書き込みを行ったアドレスの次のアドレスを書き込みアドレスとして設定し、前記電源スイッチの操作指示を待たずに、電源オン処理を行い、前記最後のアドレスの次のアドレスが奇数である場合には、前記最後のアドレスの次のアドレスを書き込みアドレスとして設定し、前記電源スイッチの操作指示があった場合に電源オン処理を行うステップと、
前記電源制御部により、前記電源オン処理の後に、前記電源スイッチの操作指示があった場合には、電源オフ処理を行い、前記電源オン処理の後に、電源電圧の低下が検出された場合には、電源オフ処理を行うと共に、前記不揮発性記憶部の前記書き込みアドレスに書き込みを行うステップと
を有することを特徴とする情報処理装置の制御方法。
【請求項１５】
不揮発性記憶部と電源スイッチとを有する情報処理装置の制御方法であって、
電源制御部により、電源供給開始時又は停電後の復電時に、前記不揮発性記憶部に書き込みが行われている領域の最後のアドレスの次のアドレスが奇数である場合には、前記最後のアドレスの次のアドレスに書き込みを行い、前記書き込みを行ったアドレスの次のアドレスを書き込みアドレスとして設定し、前記電源スイッチの操作指示を待たずに、電源オン処理を行い、前記最後のアドレスの次のアドレスが偶数である場合には、前記最後のアドレスの次のアドレスを書き込みアドレスとして設定し、前記電源スイッチの操作指示があった場合に電源オン処理を行うステップと、
前記電源制御部により、前記電源オン処理の後に、前記電源スイッチの操作指示があった場合には、電源オフ処理を行い、前記電源オン処理の後に、電源電圧の低下が検出された場合には、電源オフ処理を行うと共に、前記不揮発性記憶部の前記書き込みアドレスに書き込みを行うステップと
を有することを特徴とする情報処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置、情報処理装置及び情報処理装置の制御方法に関する。
【背景技術】
【０００２】
画像形成装置のように、常時、通電され、稼働し続けることができる機器が存在する。これらの機器は、ＦＡＸ機能等を備えており、停電が発生したとしても、復電時に自動で再起動し、ＦＡＸ待機状態に戻ることが求められる。また、パーソナルコンピュータ等のように、プッシュスイッチを電源オン／オフボタンとして用いる機器が存在する。このような機器においては、スイッチがプッシュされたことを検知して、機器の起動処理／終了処理を開始する。このプッシュスイッチを、常時、通電され、稼働し続ける機器に用いた場合、停電等でＡＣ電源がロスし、その後に復電したとしても、スイッチがプッシュされたというイベントが発生しないため、復電後に機器が再起動せず、稼働できない。
【０００３】
特許文献１には、機器が正常終了したか否かを識別するためのフラグを設け、復電時にフラグを毎回確認することでＡＣ電源ロスを識別し、停電時には残電荷を用いて停電情報フラグを書き込む技術が開示されている。また、ＡＣ電源ロスからの復電時には、スイッチのプッシュイベントを待たずに、再起動する。このフラグは、停電時でも保持される必要があるため、不揮発性メモリに書き込まれる。しかし、一般的に使用される不揮発性メモリは、書き込み回数に上限がある。
【０００４】
特許文献２には、不揮発性メモリの書き込み寿命を延ばすため、１ビットずつ毎回ずらして書き込み、不揮発性メモリが情報でいっぱいになったら消去する方法が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−２４３５４７号公報
【特許文献２】特開平８−０１７１９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
不揮発性メモリの寿命を延ばすためにアドレス単位で停電情報フラグ書き込みを行おうとする場合、フラグ書き込みを行うアドレスを明示する必要がある。しかし、その次回書き込みアドレスを不揮発性メモリに保存してしまうと、次回書き込みアドレスを保存しているブロックばかり書き込み回数が増え、早々に書き込み寿命に至ってしまう。そのため、次回書き込みアドレスは、書き込みを行う際に不揮発性メモリ内をスキャンして特定する必要がある。この際に、特許文献１のように、停電が発生してから回路内の残電荷を用いて不揮発性メモリをスキャンしていると、残電荷が足りず間に合わないおそれがある。
【０００７】
本発明の目的は、停電が発生した際に確実に書き込みを行うことができるように書き込みアドレスを設定することができる画像形成装置、情報処理装置及び情報処理装置の制御方法を提供することである。
【課題を解決するための手段】
【０００８】
本発明の画像形成装置は、不揮発性記憶部と、電源回路と、前記電源回路のための電源スイッチと、起動後尚且つ電源オフ又は電圧が低下する前に所定の方法でアドレスを決定する決定手段と、電源オン処理の後に、前記電源スイッチの操作指示があった場合には、電源オフ処理を行い、前記電源オン処理の後に前記電源回路の電圧の低下が検出された場合には、前記不揮発性記憶部における前記決定手段により予め決定されたアドレスに対して退避すべき情報の書き込みを行う電源制御部とを有する。
【発明の効果】
【０００９】
本発明によれば、停電が発生した際に確実に書き込みを行うことができるように書き込みアドレスを設定することができる。
【図面の簡単な説明】
【００１０】
【図１】情報処理装置の構成例を示す図である。
【図２】電源制御ＩＣの構成例を示す図である。
【図３】前回に正常終了した時の電源制御ＩＣの内部を示す図である。
【図４】前回に異常終了した時の電源制御ＩＣの内部を示す図である。
【図５】第１の実施形態による復電時処理を示すフローチャートである。
【図６】第１の実施形態による停電時処理を示すフローチャートである。
【図７】第２の実施形態による復電時処理を示すフローチャートである。
【発明を実施するための形態】
【００１１】
（第１の実施形態）
図１は、本発明の第１の実施形態による情報処理装置１００の構成例を示す図である。情報処理装置１００は、例えば画像形成装置であり、ＡＣプラグ１０１、ＰＳＵ１０２、ＣＰＵ１０７、開閉回路１０６、電圧監視ＩＣ１０５、電源制御ＩＣ１０４、及び電源スイッチ１０８を有する。電源スイッチ１０８は、プッシュスイッチ式の電源オン／オフボタンである。ＡＣプラグ１０１は、外部商用ＡＣ電源に接続され、受電したＡＣ電力をＰＳＵ１０２に伝える。ＡＣプラグ１０１は、ユーザによって任意のタイミングで挿抜することができる。ＰＳＵ１０２は、電源装置（Ｐｏｗｅｒ  Ｓｕｐｐｌｙ  Ｕｎｉｔ）又は電源回路であり、ＡＣプラグ１０１に接続され、ＡＣ（交流）電力を受電し、直流電力を生成する。ＰＳＵ１０２は、直流電力を、電源供給ライン１０３を介して、情報処理装置１００内の各デバイスに供給する。ＣＰＵ１０７は、中央処理ユニットであり、ＰＳＵ１０２から直流電力が供給されている下で、情報処理装置１００全体を制御する。開閉回路１０６は、ＰＳＵ１０２とＣＰＵ１０７との間に接続され、スイッチングにより、ＣＰＵ１０７に直流電力（電源電圧）を供給することができる。開閉回路１０６が閉状態になると、ＣＰＵ１０７はＰＳＵ１０２から直流電力が供給される。開閉回路１０６が開状態になると、ＣＰＵ１０７はＰＳＵ１０２から直流電力が供給されない。ＣＰＵ１０７への直流電力供給が停止すると、情報処理装置１００は、強制的にシャットダウン状態になる。電源制御ＩＣ１０４は、ＰＳＵ１０２から供給される直流電力によって稼働し、情報処理装置１００全体の電源制御を行う。電圧監視ＩＣ１０５は、電圧検出部であり、電源供給ライン１０３に接続され、ＰＳＵ１０２により出力される直流電源電圧が閾値より低下したか否かを検出し、直流電源電圧が閾値より低下した場合に、電圧低下通知信号１１２を電源制御ＩＣ１０４に出力する。電源スイッチ１０８は、ユーザによって任意のタイミングで押下可能な物理スイッチであり、電源制御ＩＣ１０４に接続される。ユーザが電源スイッチ１０８を押下すると、電源スイッチ１０８は、スイッチ押下信号１０９を電源制御ＩＣ１０４に出力する。電源制御ＩＣ１０４は、開閉回路１０６に制御信号１１１を出力し、ＣＰＵ１０７に対して信号１１０を入出力する。
【００１２】
図２は、電源制御ＩＣ１０４の構成例を示す図である。電源制御ＩＣ１０４は、コントローラ２０１と、不揮発性メモリ２０２とを有する。コントローラ２０１は、ＳＲＡＭ２０３を有する。コントローラ２０１は、電源制御部であり、電源制御ＩＣ１０４の電源制御機能、通信機能、及び不揮発性メモリ２０２へのアクセス機能を有する。不揮発性メモリ２０２は、不揮発性記憶部であり、コントローラ２０１に接続され、コントローラ２０１の制御の下、保存すべき情報を記録する。不揮発性メモリ２０２は、アドレス単位で書き込みを行い、アドレス［００］からアドレス［ＦＦ］までのメモリ領域を有する。ＳＲＡＭ２０３は、揮発性メモリであり、コントローラ２０１が使用可能な値を保持する。
【００１３】
図３及び図４は、不揮発性メモリ２０２に書き込みが行われている電源制御ＩＣ１０４を示す図である。不揮発性メモリ２０２は、１アドレスに多ビットのデータを保持可能であるが、ここでは説明上、１アドレスに１ビットのデータを保持する例を説明する。不揮発性メモリ２０２の各アドレスの初期値は、値“０”である。図３では、アドレス［００］にのみ値“１”が書き込まれ使用済みであり、それ以外のアドレスはすべて初期値“０”であり未使用となっている。これに対し、図４では、アドレス［００］とアドレス［０１］に値“１”が書き込まれ使用済みであり、それ以外のアドレスはすべて初期値“０”で未使用となっている。コントローラ２０１は、不揮発性メモリ２０２に対して、小さいアドレスから順に書き込みを行う。コントローラ２０１は、電源投入時に、不揮発性メモリ２０２の偶数アドレスに値“１”を書き込む。情報処理装置１００が停電等のように正常ではないシャットダウンをした場合には、コントローラ２０１は、不揮発性メモリ２０２の奇数アドレスに値“１”を書き込む。電源制御ＩＣ１０４が開閉回路１０６の制御により電源をオンしようとするときに、コントローラ２０１は、不揮発性メモリ２０２をアドレス［００］から順に確認し、最も小さい未使用（値が“０”）のアドレスが奇数であれば、前回は正常終了されたことがわかる。また、コントローラ２０１は、不揮発性メモリ２０２をアドレス［００］から順に確認し、最も小さい未使用（値が“０”）のアドレスが偶数であれば、前回は異常終了されたことがわかる。図３では、最も小さい未使用アドレスが［０１］の奇数アドレスであるため、前回は正常シャットダウンしていることになる。これに対して、図４では、最も小さい未使用アドレスが［０２］の偶数アドレスであるため、前回終了時は停電等の異常シャットダウンしていることがわかる。
【００１４】
図５は、ＡＣ商用電源が投入されたときの情報処理装置１００の制御方法を説明するためのフローチャートである。以下、ＡＣ商用電源にＡＣプラグ１０１が接続されていない情報処理装置１００に対して、ＡＣプラグ１０１をＡＣ商用電源に接続した場合、又は停電からの復電時における情報処理装置１００の制御方法を示す。
【００１５】
ステップＳ５０１では、ＰＳＵ１０２は、交流電力を受電し、電源供給ライン１０３に直流電力を供給する。すると、電源制御ＩＣ１０４には、直流電力が供給される。次に、ステップＳ５０３では、電源制御ＩＣ１０４は、電源供給ライン１０３から直流電力の供給を受け、リセットが解除するまで待機し、リセットが解除された場合にはステップＳ５０５に処理を進める。次に、ステップＳ５０５では、電源制御ＩＣ１０４のコントローラ２０１は、ＳＲＡＭ２０３内のアドレス保持変数に初期値［００］を代入して初期化する。
【００１６】
次に、ステップＳ５０７では、電源制御ＩＣ１０４のコントローラ２０１は、ＳＲＡＭ２０３内のアドレス保持変数が示すアドレスの値を不揮発性メモリ２０２から読み出す。この時点では、アドレス保持変数は初期値［００］であるため、コントローラ２０１は、図３及び図４のように不揮発性メモリ２０２のアドレス［００］の値“１”を読み出す。次に、ステップＳ５０９では、コントローラ２０１は、読み出した値が“１”であるか否かを判定し、“１”である場合にはステップＳ５１１に処理を進め、“０”である場合にはステップＳ５２１に処理を進める。この時点では、読み出した値が“１”であるので、ステップＳ５１１に処理を進める。ステップＳ５１１では、コントローラ２０１は、アドレス保持変数が示すアドレスが使用済みであると判断し、次のアドレスサーチに移行するために、ＳＲＡＭ２０３内のアドレス保持変数をインクリメントし（１増加させ）、ステップＳ５０７に処理を戻す。ステップＳ５０７では、コントローラ２０１は、不揮発性メモリ２０２のアドレス［０１］の値を読み出す。次に、ステップＳ５０９では、コントローラ２０１は、図３の場合にはステップＳ５２１に処理を進め、図４の場合にはステップＳ５１１に処理を進める。不揮発性メモリ２０２から読み出した値が“０”だった場合、不揮発性メモリ２０２において最も小さい未使用のアドレスを見つけたことになるため、アドレスサーチを終了し、ステップＳ５２１に処理を進める。図３の場合にはアドレス［０１］の値“０”を読み出した時にステップＳ５２１に進み、図４の場合にはアドレス［０２］の値“０”を読み出した時にステップＳ５２１に進む。
【００１７】
ステップＳ５２１では、コントローラ２０１は、ＳＲＡＭ２０３内のアドレス保持変数が示すアドレスが偶数であるか否かを判定し、偶数である場合にはステップＳ５２３に処理を進め、奇数である場合にはステップＳ５３１に処理を進める。アドレス保持変数（この時点では最も小さい未使用のアドレス）が図４のように偶数であった場合、前回の終了時に奇数アドレスに対して値“１”の書き込みがなされているということになるため、異常終了であったことがわかる。この場合、電源スイッチ１０８の押下イベント無しに情報処理装置１００を起動させるため、ステップＳ５２３に進む。
【００１８】
ステップＳ５２３では、コントローラ２０１は、次回の異常終了に備えて、不揮発性メモリ２０２において、アドレス保持変数が示す偶数アドレスに“１”を書き込むことにより使用済みとする。次に、ステップＳ５２５では、コントローラ２０１は、ＳＲＡＭ２０３内のアドレス保持変数をインクリメントし、アドレス保持変数が示すアドレスを奇数に変え、ステップＳ５４３に処理を進める。ステップＳ５４３では、電源制御ＩＣ１０４は、開閉回路１０６をオンにし、ＣＰＵ１０７にスイッチ押下割り込み信号を出力することにより、情報処理装置１００を起動させる。すなわち、電源制御ＩＣ１０４のコントローラ２０１は、電源供給ライン１０３の電源電圧をＣＰＵ１０７に供給するように開閉回路１０６を制御する。
【００１９】
ステップＳ５２１において、アドレス保持変数（この時点では最も小さい未使用のアドレス）が図３のように奇数であった場合、前回の終了時に奇数アドレスに対して値“１”の書き込みがなされていないため、正常終了であったことがわかる。この場合、電源スイッチ１０８の押下イベントにより情報処理装置１００を起動させるため、ステップＳ５３１に進む。
【００２０】
ステップＳ５３１では、コントローラ２０１は、ＳＲＡＭ２０３内のアドレス保持変数が［ＦＦ］であるか否かを判定し、［ＦＦ］である場合にはステップＳ５３５に処理を進め、［ＦＦ］でない場合にはステップＳ５３３に処理を進める。
【００２１】
ステップＳ５３５では、コントローラ２０１は、不揮発性メモリ２０２の全アドレスが使用済みであるため、不揮発性メモリ２０２の全アドレスの値を０にクリアして初期化する。すなわち、コントローラ２０１は、不揮発性メモリ２０２の全アドレスが書き込まれた状態である場合には、不揮発性メモリの全アドレスの記憶状態をクリアする。次に、ステップＳ５３７では、コントローラ２０１は、不揮発性メモリ２０２のアドレス［００］に“１”を書き込むことにより使用済みにする。次に、ステップＳ５３９では、コントローラ２０１は、ＳＲＡＭ２０３内のアドレス保持変数に［０１」を代入し、ステップＳ５３３に処理を進める。
【００２２】
ステップＳ５３３では、電源制御ＩＣ１０４は、電源オンのために、電源スイッチ１０８が押下されたか否かを検出する。次に、ステップＳ５４１では、コントローラ２０１は、電源スイッチ１０８が押下された場合には、ステップＳ５４３に処理を進め、電源スイッチ１０８が押下されていない場合には、ステップＳ５３３に処理を戻す。ステップＳ５４３では、電源制御ＩＣ１０４は、開閉回路１０６をオンにし、ＣＰＵ１０７にスイッチ押下割り込み信号を出力し、情報処理装置１００を起動させる。
【００２３】
以上のように、電源スイッチ１０８は、電源オン及びオフを指示するプッシュスイッチであり、停電等で電力供給が停止し、その後に復電した時には、電源スイッチ１０８の押下イベントが発生しない。本実施形態によれば、情報処理装置１００は、その場合でも、最も小さい未使用アドレスが偶数である場合には、停電後の復電であると判断し、復電後に再起動し、稼働することができる。
【００２４】
図６は、シャットダウン時の情報処理装置１００の制御方法を示すフローチャートである。以下、情報処理装置１００の終了時、又は停電発生時の情報処理装置１００の制御方法を説明する。
【００２５】
ステップＳ６０１では、電源制御ＩＣ１０４は、電源スイッチ１０８の状態を検出する。次に、ステップＳ６０３では、電源制御ＩＣ１０４は、電源オフのために、電源スイッチ１０８が押下されたか否かを判定し、押下された場合にはステップＳ６０５に処理を進め、押下されていない場合にはステップＳ６２１に処理を進める。
【００２６】
ステップＳ６０５では、電源制御ＩＣ１０４は、ＣＰＵ１０７に電源スイッチ１０８のスイッチ押下割り込み信号を出力する。次に、ステップＳ６０７では、ＣＰＵ１０７は、シャットダウン処理を実行する。次に、ステップＳ６０９では、ＣＰＵ１０７は、シャットダウン処理が完了したか否かを判定し、完了していない場合にはステップＳ６０７に処理を戻し、完了した場合にはステップＳ６１１に処理を進める。ステップＳ６１１では、ＣＰＵ１０７は、電源制御ＩＣ１０４にシャットダウン完了信号を出力する。次に、ステップＳ６１３では、電源制御ＩＣ１０４は、開閉回路１０６をオフにし、シャットダウンを完了する。すなわち、電源制御ＩＣ１０４のコントローラ２０１は、電源供給ライン１０３の電源電圧をＣＰＵ１０７に供給しないように開閉回路１０６を制御する。この場合、電源スイッチ１０８による正常終了であるため、上記のように、不揮発性メモリ２０２の奇数アドレスに“１”が書き込まれず、不揮発性メモリ２０２の偶数アドレスに“１”が書き込まれた状態を維持する。
【００２７】
ステップＳ６２１では、電源制御ＩＣ１０４は、電圧監視ＩＣ１０５が電源供給ライン１０３の電源電圧の電圧低下を検出していない場合には、ステップＳ６０１に処理を戻す。また、電源制御ＩＣ１０４は、電圧監視ＩＣ１０５が電源供給ライン１０３の電源電圧の電圧低下を検出した場合には、停電発生を意味するので、ステップＳ６２３に処理を進める。
【００２８】
ステップＳ６２３では、電源制御ＩＣ１０４は、ＣＰＵ１０７のシャットダウン完了を待つことなく、開閉回路１０６をオフにし、ＣＰＵ１０７への直流電力供給を強制停止する。すなわち、電源制御ＩＣ１０４のコントローラ２０１は、電源供給ライン１０３の電源電圧をＣＰＵ１０７に供給しないように開閉回路１０６を制御する。次に、ステップＳ６２５では、電源制御ＩＣ１０４のコントローラ２０１は、ＳＲＡＭ２０３内のアドレス保持変数が示すアドレスを読み出す。次に、ステップＳ６２７では、コントローラ２０１は、不揮発性メモリ２０２において、アドレス保持変数が示すアドレスに値“１”を書き込み、シャットダウンを完了する。この場合、停電による異常終了であるため、上記のように、不揮発性メモリ２０２の奇数アドレスに“１”が書き込まれる。
【００２９】
本実施形態によれば、情報処理装置１００は、図５の電源オン時のアドレスサーチによりＳＲＡＭ２０３内のアドレス保持変数が示すアドレスを設定する。そして、情報処理装置１００は、停電が発生した際に、不揮発性メモリ２０２において、上記の設定されたアドレス保持変数が示すアドレスに値“１”を書き込む。その結果、停電が発生してから不揮発性メモリ２０２内をサーチしてアドレスを探す時間を短縮することができ、短時間で指定アドレスに値“１”を書き込むことができる。
【００３０】
不揮発性メモリ２０２のアドレスサーチは、アドレスの小さい方から順に読み出す方法に限定されない。情報処理装置１００は、アドレスの数や不揮発性メモリ２０２の使い方に応じて、順番を変更することにより、より高速にサーチすることができる。
【００３１】
（第２の実施形態）
図７は、本発明の第２の実施形態による情報処理装置１００の制御方法を示すフローチャートである。以下、ＡＣ商用電源にＡＣプラグ１０１が接続されていない情報処理装置１００に対して、ＡＣプラグ１０１をＡＣ商用電源に接続した場合、又は停電からの復電時における情報処理装置１００の制御方法を示す。本実施形態は、第１の実施形態に対して、アドレスサーチの時間をより短縮することができる。以下、本実施形態が第１の実施形態と異なる点を説明する。
【００３２】
ステップＳ７０１及びＳ７０３では、情報処理装置１００は、図５のステップＳ５０１及びＳ５０３と同じ処理を行う。次に、ステップＳ７５１では、電源制御ＩＣ１０４のコントローラ２０１は、ＳＲＡＭ２０３内のアドレス保持変数に初期値［０１］を代入する。次に、ステップＳ７５３では、電源制御ＩＣ１０４のコントローラ２０１は、不揮発性メモリ２０２において、アドレス保持変数が示すアドレスの値を読み出す。ステップＳ７５５では、コントローラ２０１は、読み出した値が“１”であった場合には、ステップＳ７６３に処理を進め、読み出した値が“０”であった場合には、ステップＳ７５７に処理を進める。ステップＳ７６３では、コントローラ２０１は、アドレス保持変数が示すアドレスは使用済みであると判断し、次のアドレスサーチに移行するために、ＳＲＡＭ２０３内のアドレス保持変数を２増加させ、ステップＳ７５３に処理を戻す。
【００３３】
ステップＳ７５７では、コントローラ２０１は、［アドレス保持変数−１］のアドレスの値を不揮発性メモリ２０２から読み出す。次に、ステップＳ７５９では、コントローラ２０１は、読み出した値が“０”である場合にはステップＳ７６１に処理を進め、読み出した値が“１”である場合にはステップＳ７３１に処理を進める。ステップＳ７６１では、コントローラ２０１は、不揮発性メモリ２０２において、［アドレス保持変数−１］のアドレスに値“１”を書き込み、ステップＳ７４３に処理を進める。ステップＳ７３１〜Ｓ７４１では、情報処理装置１００は、図５のステップＳ５３１〜Ｓ５４３と同じ処理を行い、ステップＳ７４３に処理を進める。ステップＳ７４３では、電源制御ＩＣ１０４は、開閉回路１０６をオンさせる。
【００３４】
本実施形態によれば、ステップＳ７５１では、アドレス保持変数に初期値［０１］を代入し、その後、ステップＳ７６３では、アドレス保持変数を２増加させるので、アドレス保持変数が示すアドレスは常に奇数アドレスになる。そのため、図６の停電時に書き込まれる不揮発性メモリ２０２のアドレスは奇数アドレスになる。図７の不揮発性メモリ２０２のアドレスサーチは、奇数アドレスのみのアドレスサーチであるので、アドレスサーチに必要な時間を短縮し、起動時間を削減することができる。
【００３５】
以上の第１及び第２の実施形態は例示である。第１及び第２の実施形態は、それらの各構成要素や値の組み合わせにはいろいろな変形例が可能であり、アドレスのサーチ方法に関しては既存の多様な検索アルゴリズムが適用可能であり、情報処理装置１００に例示されていない一般的な構成要素を付加してよい。
【００３６】
コントローラ２０１は、決定手段であり、起動後尚且つ電源オフ又は電圧が低下する前に所定の方法でアドレスを決定する。また、コントローラ２０１は、電源オン処理の後に、電源スイッチの操作指示があった場合には、電源オフ処理を行う。そして、コントローラ２０１は、その電源オン処理の後にＰＳＵ１０２の電圧の低下が検出された場合には、不揮発性メモリ２０２における決定手段により予め決定されたアドレスに対して退避すべき情報の書き込みを行う。
【００３７】
コントローラ２０１は、電源供給開始時又は停電後の復電時に、図５又は図７の処理を行う。その際、コントローラ２０１は、不揮発性メモリ２０２に書き込みが行われている領域の最後のアドレスの次のアドレスが偶数である場合には、ステップＳ５２３又はＳ７６１で、上記の最後のアドレスの次のアドレスに書き込みを行う。そして、コントローラ２０１は、上記の書き込みを行ったアドレスの次のアドレスをアドレス保持変数（書き込みアドレス）として設定する。そして、コントローラ２０１は、ステップＳ５４１又はＳ７４１の電源スイッチ１０８の操作指示を待たずに、ステップＳ５４３又はＳ７４３の電源オン処理を行う。
【００３８】
また、図５又は図７において、コントローラ２０１は、上記の最後のアドレスの次のアドレスが奇数である場合には、上記の最後のアドレスの次のアドレスをアドレス保持変数（書き込みアドレス）として設定する。そして、コントローラ２０１は、ステップＳ５４１又はＳ７４１の電源スイッチ１０８の操作指示があった場合に、ステップＳ５４３又はＳ７４３の電源オン処理を行う。
【００３９】
また、図６において、コントローラ２０１は、図５又は図７の電源オン処理の後に、ステップＳ６０３の電源スイッチ１０８の操作指示があった場合には、ステップＳ６１３の電源オフ処理を行う。また、コントローラ２０１は、図５又は図７の電源オン処理の後に、ステップＳ６２１の電源電圧の低下が検出された場合には、ステップＳ６２３の電源オフ処理を行うと共に、ステップＳ６２７で、不揮発性メモリ２０２にて書き込みアドレスに書き込みを行う。
【００４０】
図５では、コントローラ２０１は、電源供給開始時又は停電後の復電時に、不揮発性メモリ２０２に書き込みが行われているアドレスを順にサーチする。そして、コントローラ２０１は、ステップＳ５１１で、不揮発性メモリ２０２に書き込みが行われている最後のアドレスの次のアドレスをアドレス保持変数（書き込みアドレス）として設定する。コントローラ２０１は、上記のアドレス保持変数（書き込みアドレス）が偶数である場合には、ステップＳ５２３でアドレス保持変数（書き込みアドレス）に書き込みを行い、ステップＳ５２５でアドレス保持変数（書き込みアドレス）を更新する。そして、コントローラ２０１は、ステップＳ５４１の電源スイッチ５４１の操作指示を待たずに、ステップＳ５４３の電源オン処理を行う。また、コントローラ２０１は、アドレス保持変数（書き込みアドレス）が奇数である場合には、ステップＳ５４１の電源スイッチ１０８の操作指示があった場合に、ステップＳ５４３の電源オン処理を行う。
【００４１】
図７では、コントローラ２０１は、電源供給開始時又は停電後の復電時に、不揮発性メモリ２０２に書き込みが行われている奇数アドレスを順にサーチする。そして、コントローラ２０１は、ステップＳ７６３で、不揮発性メモリ２０２に書き込みが行われている最後の奇数アドレスの次の奇数アドレスをアドレス保持変数（書き込みアドレス）として設定する。コントローラ２０１は、上記の最後の奇数アドレスと上記の次の奇数アドレスの間のアドレスに書き込みが行われていない場合には、ステップＳ７６１で、上記の最後の奇数アドレスと上記の次の奇数アドレスの間のアドレスに書き込みを行う。そして、コントローラ２０１は、ステップＳ７４１の電源スイッチ１０８の操作指示を待たずに、ステップＳ７４３の電源オン処理を行う。また、コントローラ２０１は、上記の最後の奇数アドレスと上記の次の奇数アドレスの間のアドレスに書き込みが行われている場合には、ステップＳ７４１の電源スイッチ１０８の操作指示があった場合に、ステップＳ７４３の電源オン処理を行う。
【００４２】
なお、図５〜図７の処理では、奇数と偶数を逆にしてもよい。また、上記の不揮発性メモリ２０２に書き込みが行われた状態は、不揮発性メモリ２０２に１が記憶されている状態である。逆に、上記の不揮発性メモリ２０２に書き込みが行われていない状態は、不揮発性メモリ２０２に０が記憶されている状態である。なお、記憶状態の０と１は、逆でもよい。
【００４３】
また、図５〜図７の処理では、コントローラ２０１は、不揮発性メモリ２０２にアドレスの小さい方から順に書き込みを行う場合を例に説明したが、アドレスの大きい方から順に書き込んでもよい。
【００４４】
第１及び第２の実施形態によれば、不揮発性メモリ２０２の同一アドレスに書き込みを行うのではなく、小さいアドレスから又は大きいアドレスから順に書き込みを行うことにより、不揮発性メモリ２０２の寿命を延ばすことができる。
【００４５】
仮に停電を検出してからアドレスサーチによりアドレス保持変数（書き込みアドレス）を設定すると、長時間を要し、不揮発性メモリ２０２において書き込みアドレスに書き込み処理が完了しないおそれがある。第１及び第２の実施形態によれば、停電時ではなく、電源供給開始時又は停電後の復電時にアドレスサーチにより書き込みアドレスを設定するので、停電時には不揮発性メモリ２０２において書き込みアドレスへの書き込みを短時間で行うことができる。これにより、不揮発性メモリ２０２に停電があった旨を確実に書き込むことができる。
【００４６】
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【００４７】
１００  情報処理装置、１０４  電源制御ＩＣ、１０５  電圧監視ＩＣ、１０７  ＣＰＵ、１０８  電源スイッチ、２０１  コントローラ、２０２  不揮発性メモリ、２０３  ＳＲＡＭ
【図１】
2018050248.tif 000003
【図２】
2018050248.tif 000004
【図３】
2018050248.tif 000005
【図４】
2018050248.tif 000006
【図５】
2018050248.tif 000007
【図６】
2018050248.tif 000008
【図７】
2018050248.tif 000009