(57)【要約】【課題】意図しない電源遮断時に、一の制御部は、他の制御部が不揮発性メモリーに対して処理中であっても、使用データを不揮発性メモリーに保存できるうえ、情報処理装置の次回の電源オン時に、不揮発性メモリーが電源遮断時の他の制御部の処理の中断による不適切な状態にあることを回避できる情報処理装置及び情報処理装置におけるデータ記憶処理方法を提供する。【解決手段】意図しない電源遮断が検出されると、第１システムは他のシステムを停止させ、保証データ及び遮断時状態データを書き込む。遮断時状態データには、他のシステムが停止した処理の処理内容が含まれる。次回の電源オン時に、遮断時状態データを読み出し、消去中であれば（Ｓ２３で肯定判定）、消去中の記憶領域を再消去する（Ｓ２４）。一方、書込み中であれば（Ｓ２５で肯定判定）、書込み中データの無効処理を行う（Ｓ２６）。【選択図】図６
2013218371.tif 000002
【特許請求の範囲】
【請求項１】
電源オフ中にデータの保存が可能な不揮発性メモリーを備えた情報処理装置であって、
前記不揮発性メモリーに対しデータの書込みと消去とを少なくとも行う複数の制御部と、
情報処理装置の電源遮断を検出する電源遮断検出部とを備え、
前記電源遮断の検出時に、前記複数の制御部のうち一の制御部以外の他の制御部が前記不揮発性メモリーに対して処理中の処理を停止させる停止処理部と、
前記一の制御部に設けられ、前記他の制御部の処理の停止後、次回電源オン時に使用する使用データと前記他の制御部が停止した処理の処理内容を少なくとも含む遮断時情報とを前記不揮発性メモリーに書き込む書込部と、
次回電源オン時に、前記不揮発性メモリーから読み出した前記遮断時情報に基づいて前記不揮発性メモリーに対して当該遮断時情報中の処理内容に応じた復旧処理を行う処理部と
を備えたことを特徴とする情報処理装置。
【請求項２】
前記一の制御部は、不揮発性メモリーが動作中であるか否かを判定する判定部を備え、前記電源遮断の検出時に、前記判定部が前記不揮発性メモリーが動作中と判定した場合は、前記不揮発性メモリーが書込み処理に要する設定時間を待った後に、さらに前記不揮発性メモリーが動作中であるか否かを判定し、動作中でなければ、前記書込部は、前記処理内容を書込み中とした前記遮断時情報を前記不揮発性メモリーに書き込み、
前記情報処理装置の次回電源オン時に、前記処理部は、前記遮断時情報中の処理内容が書込み中であると判定すると、当該遮断時情報に基づいて、前記復旧処理として前記不揮発性メモリーにおける書込み中データを無効にすることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記一の制御部は、不揮発性メモリーが動作中であるか否かを判定する判定部と、前記不揮発性メモリーの動作を中断させる中断指令部とを備え、前記電源遮断の検出時に、前記判定部が前記不揮発性メモリーが動作中と判定した場合は、前記不揮発性メモリーが書込み処理に要する設定時間を待った後に、さらに前記不揮発性メモリーが動作中であるか否かを判定し、動作中であれば、前記中断指令部が前記不揮発性メモリーの動作を中断させた後、前記書込部は、前記処理内容を消去中とした前記遮断時情報を前記不揮発性メモリーに書き込み、
前記情報処理装置の次回電源オン時に、前記処理部は、前記遮断時情報中の処理内容が消去中であると判定すると、当該遮断時情報に基づいて、前記復旧処理として前記不揮発性メモリーに対して電源遮断時に前記他の制御部が中断した消去の対象記憶領域の再消去を行うことを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
揮発性メモリーを更に備え、
前記他の制御部は停止した前記処理の処理内容を含む情報を前記揮発性メモリーに書き込み、
前記書込部は、前記揮発性メモリーから読み出した前記情報を基に少なくとも前記処理内容を取得することを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記一の制御部は、前記他の制御部が停止した前記処理が書込みである場合、前記他の制御部が停止した前記書込みの対象とした書込みデータ及び書込み先アドレスを取得し、前記書込部は、前記処理内容を書込み中とするとともに前記書込みデータ及び前記書込み先アドレスを少なくとも含む前記遮断時情報を前記不揮発性メモリーに書き込み、
前記処理部は、前記次回電源オン時に、前記遮断時情報に含まれる処理内容が書込み中であった場合、前記復旧処理として前記遮断時情報に含まれる前記書込みデータを前記不揮発性メモリーにおける前記書込み先アドレスに書き込むことを特徴とする請求項１乃至４のいずれか一項に記載の情報処理装置。
【請求項６】
前記一の制御部は、前記不揮発性メモリーの動作を中断させる中断指令部を更に備え、前記他の制御部が停止した前記処理が消去である場合、前記他の制御部が停止した前記消去の消去対象アドレスを取得し、前記書込部は、前記処理内容を消去中とするとともに消去対象アドレスを少なくとも含む前記遮断時情報を、前記中断指令部が前記不揮発性メモリーの動作を中断した後に前記不揮発性メモリーに書き込み、
前記処理部は、前記次回電源オン時に、前記遮断時情報に含まれる処理内容が消去中であった場合、前記復旧処理として前記不揮発性メモリーに対して前記遮断時情報に含まれる前記消去対象アドレスで示された記憶領域のデータを再消去することを特徴とする請求項１乃至５のいずれか一項に記載の情報処理装置。
【請求項７】
前記一の制御部は、前記使用データ及び前記遮断時情報を前記不揮発性メモリーに書き込んだ後、前記他の制御部が停止した処理を前記不揮発性メモリーに再開させる再開指令部を更に備え、前記再開指令部が前記不揮発性メモリーに前記処理を再開させた後、当該処理が完了したか否かを判断し、前記処理が完了したと判断した場合は、前記不揮発性メモリーに書き込んだ前記遮断時情報中の処理内容を、停止した処理のない旨の内容に変更することを特徴とする請求項１乃至６のいずれか一項に記載の情報処理装置。
【請求項８】
前記停止処理部及び前記処理部は前記一の制御部に設けられていることを特徴とする請求項１乃至７のいずれか一項に記載の情報処理装置。
【請求項９】
不揮発性メモリーに対しデータの書込みと消去とを少なくとも行う複数の制御部のうち一の制御部が電源遮断検出時に、次回の電源オン時に使用する使用データを不揮発性メモリーに書き込む処理を行う情報処理装置におけるデータ記憶制御方法であって、
情報処理装置の電源遮断を検出する電源遮断検出ステップと、
電源遮断の検出時に、前記一の制御部が、前記不揮発性メモリーに対して前記他の制御部が処理中の処理を停止させる停止ステップと、
前記停止ステップの後に前記一の制御部が前記使用データと前記他の制御部が停止した処理の処理内容を含む遮断時情報とを前記不揮発性メモリーに書き込む書込みステップと、
前記情報処理装置の次回電源オン時に、前記一の制御部が前記不揮発性メモリーから読み出した前記遮断時情報に基づいて前記不揮発性メモリーに対して当該遮断時情報中の処理内容に応じた復旧処理を行う処理ステップと
を備えたことを特徴とする情報処理装置におけるデータ記憶処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の制御部が共通の不揮発性メモリーにデータを書き込む構成であり、特に電源遮断時に一の制御部が次回電源オン時に使用されるデータ（使用データ）を、不揮発性メモリーに書き込む情報処理装置及び情報処理装置におけるデータ記憶処理方法に関する。
【背景技術】
【０００２】
例えばフラッシュメモリー等の不揮発性メモリーを備えた情報処理装置では、電源オフ時に、次回の電源オン時に使用するデータ（使用データ）を不揮発性メモリーに書き込み、次回の電源オン時に不揮発性メモリーから使用データを読み出して使用する。例えば特許文献１、２には、電源オフ時に不揮発性メモリーにこの種の更新データの１つとしてインクカートリッジの消耗情報（インク残量データ）を書き込む印刷装置（プリンター）などの情報処理装置が開示されている。
【０００３】
ところで、フラッシュメモリー等の不揮発性メモリーの記憶領域は、所定記憶容量を有する複数のブロックに分割されており、ブロック１つ分がデータ消去の最小単位となっている。また、フラッシュメモリーの構成上、ブロックをデータ消去により初期状態にした後でないと、任意データを書き込むことができない。このため、更新データを同じブロックに書き込むときには、旧いデータを消去する必要がある。しかし、消去処理は、書込処理や読出処理に比べ長時間を要する（例えば特許文献３）。
【０００４】
また、複合機などの情報処理装置では、複数（例えば２個）のＣＰＵを備えるものが知られている（例えば特許文献４）。さらに特許文献５、６には、複数のマイクロコンピューター（又はＣＰＵ）が１つの不揮発性メモリーを共有する照明装置やゲーム装置などの情報処理装置が開示されている。例えば特許文献５の照明装置では、一のマイクロコンピューターは電源がオフされたときに、それを検出して、データを不揮発性メモリー（ＥＥＰＯＭ）に書き込み、他のマイクロコンピューターは可動部の位置が変化して停止する毎に、そのデータを不揮発性メモリーに書き込む。この特許文献５に記載の複数のマイクロコンピューターは不揮発性メモリーにアクセスできるタイミングが異なっているので、不揮発性メモリーへのアクセス時に競合することはない。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−９８６１８号公報
【特許文献２】特開２００１−３１５３２３号公報
【特許文献３】特開２０００−２２２２９２号公報
【特許文献４】特開２０１１−３０６０号公報
【特許文献５】特開平７−１２２３７１号公報
【特許文献６】国際公開２００６／１０９５３０
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、複数のＣＰＵがフラッシュメモリー等の不揮発性メモリーにアクセスして書込処理や消去処理を行う情報処理装置では、電源遮断時に一のＣＰＵが次回電源オン時に使用する使用データを不揮発性メモリーに書き込もうとした際に、他のＣＰＵが不揮発性メモリーに対して処理中の場合がある。この場合、一のＣＰＵはデータを書き込む処理を行うことができず、他のＣＰＵが処理を終えるまで待たなければならない。しかし、停電やコンセント抜け等の意図しない電源遮断が発生した場合、二次電池の電力が極短時間（例えば１００ミリ秒〜１秒未満の範囲内の値）しか保持されないので、一のＣＰＵがデータを保存し終わる前に情報処理装置の電源が遮断されてしまうという問題があった。この場合、次回の電源オン時に、最新のデータを使用することができず、旧いデータを使用することになる。例えば複合機の場合、次の電源オン以降のインク残量のデータが間違ったものとなり、インク残量がデータ上はあると認識しているため、印刷が開始されるが、その印刷途中でインク切れが発生するなどの問題が発生する。なお、上記の問題は、複合機などの印刷機能を有する装置に限定されず、複数の制御部が共通の不揮発性メモリーにデータの書込みが可能な情報処理装置に広く当てはまる。例えば特許文献５の照明装置では、他のマイクロコンピューターがデータを不揮発性メモリーに書き込んでいる最中に、意図しない電源遮断が発生したとき、一のマイクロコンピューターは他のマイクロコンピューターの書込み処理を終えるまで待たなければならない。この場合、二次電池の電力による保持時間の残り時間のうちに一のマイクロコンピューターがデータを書き切れないことが起こりうる。
【０００７】
本発明は、上記課題に鑑みてなされたものであり、その目的の一つは、意図しない電源遮断時に、一の制御部は、他の制御部が不揮発性メモリーに対して処理中であっても、使用データを不揮発性メモリーに保存できるうえ、情報処理装置の次回の電源オン時に、不揮発性メモリーが電源遮断時の他の制御部の処理の中断による不適切な状態にあることを回避できる情報処理装置及び情報処理装置におけるデータ記憶処理方法を提供することにある。
【課題を解決するための手段】
【０００８】
上記目的の一つを達成するために、本発明の態様の一つは、電源オフ中にデータの保存が可能な不揮発性メモリーを備えた情報処理装置であって、前記不揮発性メモリーに対しデータの書込みと消去とを少なくとも行う複数の制御部と、情報処理装置の電源遮断を検出する電源遮断検出部とを備え、前記電源遮断の検出時に、前記複数の制御部のうち一の制御部以外の他の制御部が前記不揮発性メモリーに対して処理中の処理を停止させる停止処理部と、前記一の制御部に設けられ、前記他の制御部の処理の停止後、次回電源オン時に使用する使用データと前記他の制御部が停止した処理の処理内容を少なくとも含む遮断時情報とを前記不揮発性メモリーに書き込む書込部と、次回電源オン時に、前記不揮発性メモリーから読み出した前記遮断時情報に基づいて前記不揮発性メモリーに対して当該遮断時情報中の処理内容に応じた復旧処理を行う処理部とを備えたことを要旨とする。
【０００９】
上記構成によれば、電源遮断検出部により情報処理装置の電源遮断が検出されると、停止処理部は、他の制御部が不揮発性メモリーに対して処理中の処理を停止させる。一の制御部の書込部は、他の制御部の処理の停止（中断）後、使用データと他の制御部が停止した処理の処理内容を少なくとも含む遮断時情報とを不揮発性メモリーに書き込む。そして、情報処理装置の次回電源オン時に、処理部は、不揮発性メモリーから読み出した遮断時情報に基づいて不揮発性メモリーに対して当該遮断時情報中の処理内容に応じた復旧処理を行う。よって、情報処理装置の意図しない電源遮断時に、一の制御部は、他の制御部が不揮発性メモリーに対して処理中であっても、使用データを不揮発性メモリーに保存できるうえ、情報処理装置の次回電源オン時に、不揮発性メモリーが電源遮断時の他の制御部の処理の中断による不適切な状態にあることを回避できる。
【００１０】
本発明の態様の一つである情報処理装置では、前記一の制御部は、不揮発性メモリーが動作中であるか否かを判定する判定部を備え、前記電源遮断の検出時に、前記判定部が前記不揮発性メモリーが動作中と判定した場合は、前記不揮発性メモリーが書込み処理に要する設定時間を待った後に、さらに前記不揮発性メモリーが動作中であるか否かを判定し、動作中でなければ、前記書込部は、前記処理内容を書込み中とした前記遮断時情報を前記不揮発性メモリーに書き込み、前記情報処理装置の次回電源オン時に、前記処理部は、前記遮断時情報中の処理内容が書込み中であると判定すると、当該遮断時情報に基づいて、前記復旧処理として前記不揮発性メモリーにおける書込み中データを無効にすることが好ましい。
【００１１】
上記構成によれば、一の制御部は、電源遮断検出時に、判定部により不揮発性メモリーが動作中と判定した場合は、不揮発性メモリーが書込み処理に要する設定時間を待った後に、さらに判定部は不揮発性メモリーが動作中であるか否かを判定し、動作中でなければ、書込部は、処理内容を書込み中とした遮断時情報を不揮発性メモリーに書き込む。そして、情報処理装置の次回電源オン時に、処理部は、不揮発性メモリーから読み出した遮断時情報中の処理内容が書込み中であると判定すると、遮断時情報に基づいて、不揮発性メモリーにおける書込み中データを無効にする。よって、情報処理装置の次回電源オン時に、電源遮断時に書込みを中断した際の書込み中データが不揮発性メモリーに残ったままの状態を回避できる。
【００１２】
本発明の態様の一つである情報処理装置では、前記一の制御部は、不揮発性メモリーが動作中であるか否かを判定する判定部と、前記不揮発性メモリーの動作を中断させる中断指令部とを備え、前記電源遮断の検出時に、前記判定部が前記不揮発性メモリーが動作中と判定した場合は、前記不揮発性メモリーが書込み処理に要する設定時間を待った後に、さらに判定部は前記不揮発性メモリーが動作中であるか否かを判定し、動作中であれば、前記中断指令部が前記不揮発性メモリーの動作を中断させた後、前記書込部は、前記処理内容を消去中とした前記遮断時情報を前記不揮発性メモリーに書き込み、前記情報処理装置の次回電源オン時に、前記処理部は、前記遮断時情報中の処理内容が消去中であると判定すると、当該遮断時情報に基づいて、前記復旧処理として前記不揮発性メモリーに対して電源遮断時に前記他の制御部が中断した消去の対象記憶領域の再消去を行うことが好ましい。
【００１３】
上記構成によれば、一の制御部は、電源遮断検出時に、判定部により不揮発性メモリーが動作中と判定した場合は、不揮発性メモリーが書込み処理に要する設定時間を待った後に、さらに判定部は不揮発性メモリーが動作中であるか否かを判定する。そして、動作中であれば、中断指令部が不揮発性メモリーの動作を中断させた後、書込部は、処理内容を消去中とした遮断時情報を不揮発性メモリーに書き込む。そして、情報処理装置の次回電源オン時に、処理部は、不揮発性メモリーから読み出した遮断時情報中の処理内容が消去中であると判定すれば、不揮発性メモリーに対して電源遮断時に他の制御部が中断した消去の対象記憶領域の再消去を行う。よって、情報処理装置の次回オン時に、電源遮断時に中断した消去の対象記憶領域に不適切なデータが残ったままの状態を回避できる。
【００１４】
本発明の態様の一つである情報処理装置では、揮発性メモリーを更に備え、前記他の制御部は停止した前記処理の処理内容を含む情報を前記揮発性メモリーに書き込み、前記書込部は、前記揮発性メモリーから読み出した前記情報を基に少なくとも前記処理内容を取得することが好ましい。
【００１５】
上記構成によれば、他の制御部は停止した処理の処理内容を含む情報を揮発性メモリーに書き込む。一の制御部における書込部は、揮発性メモリーから他の制御部が書き込んだ情報を読み出し、その情報中の少なくとも処理内容を含む遮断時情報を不揮発性メモリーに書き込む。よって、一の制御部は他の制御部が不揮発性メモリーに対して行っていた処理の処理内容を含む詳細（例えば処理の対象アドレス等）を把握でき、その詳細を遮断時情報に含ませることが可能になる。
【００１６】
本発明の態様の一つである情報処理装置では、前記一の制御部は、前記他の制御部が停止した前記処理が書込みである場合、前記他の制御部が停止した前記書込みの対象とした書込みデータ及び書込み先アドレスを取得し、前記書込部は、前記処理内容を書込み中とするとともに前記書込みデータ及び前記書込み先アドレスを少なくとも含む前記遮断時情報を前記不揮発性メモリーに書き込み、前記処理部は、前記次回電源オン時に、前記遮断時情報に含まれる処理内容が書込み中であった場合、前記復旧処理として前記遮断時情報に含まれる前記書込みデータを前記不揮発性メモリーにおける前記書込み先アドレスに書き込むことが好ましい。
【００１７】
上記構成によれば、一の制御部は、他の制御部が停止した処理が書込みである場合、他の制御部が停止した書込みの対象とした書込みデータ及び書込み先アドレスを取得する。そして、書込部は、処理内容を書込み中とするとともに書込みデータ及び書込み先アドレスを少なくとも含む遮断時情報を不揮発性メモリーに書き込む。そして、情報処理装置の次回電源オン時に、処理部は、遮断時情報に含まれる処理内容が書込み中であった場合、復旧処理として、書込みデータを不揮発性メモリーにおける書込み先アドレスに書き込む。よって、情報処理装置の次回電源オン時に、不揮発性メモリーを電源遮断時に他の制御部が中断した書込み処理が行われた状態にすることができる。
【００１８】
本発明の態様の一つである情報処理装置では、前記一の制御部は、前記不揮発性メモリーの動作を中断させる中断指令部を更に備え、前記他の制御部が停止した前記処理が消去である場合、前記他の制御部が停止した前記消去の消去対象アドレスを取得し、前記書込部は、前記処理内容を消去中とするとともに消去対象アドレスを少なくとも含む前記遮断時情報を、前記中断指令部が前記不揮発性メモリーの動作を中断した後に前記不揮発性メモリーに書き込み、前記処理部は、前記次回電源オン時に、前記遮断時情報に含まれる処理内容が消去中であった場合、前記復旧処理として前記不揮発性メモリーに対して前記遮断時情報に含まれる前記消去対象アドレスで示された記憶領域のデータを再消去することが好ましい。
【００１９】
上記構成によれば、一の制御部は、他の制御部が停止した処理が消去である場合、他の制御部が停止した消去の消去対象アドレスを取得する。そして、書込部は、処理内容を消去中とするとともに消去先アドレスを少なくとも含む遮断時情報を、中断指令部が不揮発性メモリーの動作を中断した後に不揮発性メモリーに書き込む。そして、情報処理装置の次回電源オン時に、処理部は、復旧処理として、遮断時情報に含まれる処理内容が消去中であった場合、不揮発性メモリーに対して遮断時情報に含まれる消去対象アドレスで示される記憶領域のデータを消去する。よって、情報処理装置の次回電源オン時に、電源遮断時に中断した他の制御部によるデータ消去処理が行われた状態にすることができる。
【００２０】
本発明の態様の一つである情報処理装置では、前記一の制御部は、前記使用データ及び前記遮断時情報を前記不揮発性メモリーに書き込んだ後、前記他の制御部が停止した処理を前記不揮発性メモリーに再開させる再開指令部を更に備え、前記再開指令部が前記不揮発性メモリーに前記処理を再開させた後、当該処理が完了したか否かを判断し、前記処理が完了したと判断した場合は、前記不揮発性メモリーに書き込んだ前記遮断時情報中の処理内容を、停止した処理のない旨の内容に変更することが好ましい。
【００２１】
上記構成によれば、一の制御部は、書込部が使用データ及び遮断時情報を不揮発性メモリーに書き込んだ後、再開指令部に他の制御部が停止した処理を再開させる。一の制御部は、再開された処理が完了したか否かを判断し、処理が完了したと判断した場合は、不揮発性メモリーに書き込んだ遮断時情報の処理内容を、停止した処理のない旨の内容に変更する。このため、使用データ等を不揮発性メモリーに書き込んだ後、電源遮断までの残り時間を利用して再開した処理を行うことができる。そして、再開した処理を完了できた場合は、情報処理装置の次回電源オン時に、遮断時情報の処理内容が、停止した処理のない旨の内容になっているので、不揮発性メモリーに対する復旧処理を行わなくて済む。そして、電源遮断までの残り時間を利用しても、再開した処理を完了できなかった場合は、遮断時情報は変更されないので、情報処理装置の次回電源オン時に、遮断時情報の処理内容に応じた復旧処理が行われる。よって、情報処理装置の次回電源オン時に、復旧処理を行う頻度を低減できる。この結果、情報処理装置は起動後、速やかに本来の処理動作を開始できる頻度が高まる。
【００２２】
本発明の態様の一つである情報処理装置では、前記停止処理部及び前記処理部は前記一の制御部に設けられていることが好ましい。
上記構成によれば、一の制御部が停止処理部により他の制御部に処理の停止を指示することで、他の制御部は不揮発性メモリーに対する処理中の処理を停止する。また、電源オン時には、一の制御部が処理部により、電源遮断時に他の制御部が中断した処理の復旧処理を行う。一の制御部がメイン（第１優先度）となって電源遮断時における他の制御部に対する処理停止の指示、及び電源オン時の復旧処理を行うので、各処理を確実に行うことができる。
【００２３】
本発明の態様の一つは、不揮発性メモリーに対しデータの書込みと消去とを少なくとも行う複数の制御部のうち一の制御部が電源遮断検出時に、次回の電源オン時に使用する使用データを不揮発性メモリーに書き込む処理を行う情報処理装置におけるデータ記憶制御方法であって、情報処理装置の電源遮断を検出する電源遮断検出ステップと、電源遮断の検出時に、前記一の制御部が、前記不揮発性メモリーに対して前記他の制御部が処理中の処理を停止させる停止ステップと、前記停止ステップの後に前記一の制御部が前記使用データと前記他の制御部が停止した処理の処理内容を含む遮断時情報とを前記不揮発性メモリーに書き込む書込みステップと、前記情報処理装置の次回電源オン時に、前記一の制御部が前記不揮発性メモリーから読み出した前記遮断時情報に基づいて前記不揮発性メモリーに対して当該遮断時情報中の処理内容に応じた復旧処理を行う処理ステップとを備えたことを要旨とする。上記方法によれば、上記情報処理装置に係る発明と同様の作用効果を得ることができる。
【図面の簡単な説明】
【００２４】
【図１】本発明を具体化した第１実施形態における複合機の概略構成を示すブロック図。
【図２】三つのシステム（ＣＰＵ）とフラッシュメモリー装置との機能構成を示すブロック図。
【図３】（ａ）はフラッシュメモリーの構造、（ｂ）はデータ構造を示す模式図。
【図４】遮断時状態データのデータ構造を示す模式図。
【図５】電源遮断検出処理ルーチンを示すフローチャート。
【図６】電源起動処理ルーチンを示すフローチャート。
【図７】第２実施形態における遮断時状態データのデータ構造を示す模式図。
【図８】電源起動処理ルーチンを示すフローチャート。
【図９】第３実施形態における電源遮断検出処理ルーチンを示すフローチャート。
【発明を実施するための形態】
【００２５】
（第１実施形態）
以下、本発明を情報処理装置の一例である複合機に具体化した第１実施形態を、図１〜図６に基づいて説明する。図１に示すように、複合機１１は、装置全体の制御を司るコントローラー１２、装置内の各部に電力を供給する電源回路１３、操作部１４、表示部１５、スキャンエンジン１６、印刷エンジン１７、ファクシミリ通信部（以下、「ＦＡＸ通信部１８」という。）及びネットワーク通信部１９などを備える。
【００２６】
複合機１１は、インクジェット式の複合型プリンターであって、一台で、スキャン、プリント、コピーの３つの機能を備える他、ファクシミリ機能及びネットワーク通信機能を備える。
【００２７】
スキャンエンジン１６は、複合機本体に設けられた原稿台（図示省略）にセットされた原稿の画像を読み取る光学式（ＣＣＤ方式又はＣＭＯＳ方式）のラインセンサー、ライセンサーを有する読取ヘッドを走査させる動力源のスキャンモーター及びその駆動回路等により構成される。スキャンエンジン１６は、コントローラー１２からのコマンドに従って駆動し、読取ヘッドの走査中にラインセンサーが読み取った画像信号をコントローラー１２へ出力する。コントローラー１２はスキャンエンジン１６から入力した画像信号を基に画像データを生成する。
【００２８】
印刷エンジン１７は、図示しない用紙（記録媒体）を搬送する搬送機構、搬送機構を駆動する動力源となるモーター、搬送される用紙にインク滴を噴射して用紙に文書や画像等の印刷を施すインクジェット式の記録ヘッドなどにより構成される。複合機１１におけるプリンター部が例えばシリアルプリンターであれば、記録ヘッドが設けられたキャリッジを走査させる動力源となるモーターも印刷エンジン１７に備えられる。印刷エンジン１７は、コントローラー１２から入力する画像データ及び印刷コマンドに基づいて駆動される。このとき記録ヘッドは画像データのドット（画素）に応じてインク滴を噴射する。なお、記録ヘッドは、インクジェット記録方式以外に、ドットインパクト記録方式や、トナーを用紙に定着させて印刷するレーザー記録方式でもよい。
【００２９】
複合機１１には、印刷エンジン１７を構成する記録ヘッドへインク（トナーを含む）（流体）を供給するインク供給源であるインクカートリッジ２０が装着される。インクカートリッジ２０の本体には、インク種やインク残量などの情報を記憶する記憶素子２１（メモリー付き集積回路）が実装されている。コントローラー１２は、記憶素子２１に対してデータの読み出し及び書き込みが可能になっており、例えば電源オフ時に記憶素子２１に更新されたインク残量等を含むデータを書き込む。
【００３０】
コピーの場合、コントローラー１２は、スキャンエンジン１６からの画像信号を基に生成した原稿の画像データを印刷コマンドと共に印刷エンジン１７に送る。そして、印刷エンジン１７を構成する記録ヘッドが画像データを基にインク滴を噴射し、用紙に原稿の画像を印刷（コピー印刷）する。つまり、複合機１１は、コントローラー１２がスキャンエンジン１６及び印刷エンジン１７を駆動制御し、スキャンエンジン１６で読み取った原稿の画像データを基に印刷エンジン１７に原稿の画像を印刷させることにより、原稿の「コピー」を行う。
【００３１】
スキャンの場合、複合機１１は、コントローラー１２がスキャンエンジン１６を駆動して取得した原稿のスキャンデータを、ホスト装置へ転送する。また、複合機１１は、不図示のホスト装置から受信した印刷データ、あるいはメモリーカード等の外部記憶媒体から読み込んだ画像データを基に、コントローラー１２が印刷エンジン１７を駆動制御することにより、用紙に文書や画像を印刷する。
【００３２】
また、ＦＡＸ通信部１８は不図示の電話回線に接続され、電話回線を介した着信を検出可能なリング検出部を備える。コントローラー１２は、リング検出部からのリング検出信号の入力により電話回線を介したファックスの着信があることを認知すると、ＦＡＸ通信部１８を接続状態とし、電話回線を介して送られてきたファックスデータを、ＦＡＸ通信部１８を介して受信する。このＦＡＸ通信部１８は、複合機１１からファックスデータを送信する際にも使用される。
【００３３】
ネットワーク通信部１９は、家庭内ＬＡＮや社内ＬＡＮを構築するため、あるいはインターネットに接続するためのものであり、所定の通信プロトコルに従って通信制御を行う公知の通信インターフェイスである。複合機１１は、ネットワーク通信部１９を介してネットワーク上の他の通信機器、端末やサーバーとの通信が可能になる。
【００３４】
また、図１に示すように、複合機１１には、操作部１４の１つとして電源スイッチ１４Ａが設けられている。ユーザーは電源スイッチ１４Ａを操作することにより、複合機１１の電源をオン／オフする。電源スイッチ１４Ａは電源回路１３に接続されており、電源スイッチ１４Ａがオン操作された際の電源オン信号と、オフ操作された際の電源オフ信号とが電源回路１３に入力される。電源回路１３は、電源オフ状態で電源スイッチ１４Ａが操作された際の電源オン信号を入力すると、複合機１１の電源をオンして装置内の各部に所定電圧の電力を供給し、この電源オン状態で電源スイッチ１４Ａが操作された際の電源オフ信号を入力すると、複合機１１の電源をオフして装置内の各部への電力の供給を停止する。
【００３５】
また、図１に示すように、コントローラー１２は、コンピューター２５（マイクロコンピューター）及びリセットＩＣ２６を備えている。コンピューター２５は、コントローラー１２が行う各種制御等を司る。リセットＩＣ２６は、電源回路１３に接続されている。リセットＩＣ２６は、電源回路１３を監視し、停電やコンセント抜け（電源プラグのコンセントからの抜け）等が原因で、電源回路１３に意図しない電源遮断が発生したことを検出する。リセットＩＣ２６は、意図しない電源遮断を検出したときには、コンピューター２５にリセット信号ＲＳを出力する。また、コントローラー１２には電源回路１３と共に二次電池１３Ａが接続されており、意図しない電源遮断が発生したときには、二次電池１３Ａの電力により所定時間（例えば１０ミリ秒〜１秒未満の所定値）の間だけコンピューター２５は動作状態を維持でき、必要なデータの保存処理などを行うことが可能である。
【００３６】
コンピューター２５は、第１ＣＰＵ３１（中央処理装置）、第２ＣＰＵ３２、第３ＣＰＵ３３、ＡＳＩＣ３４（Application Specific IC（特定用途向けＩＣ））、ＲＡＭ３５及び不揮発性メモリーの一例であるフラッシュメモリー装置３６を備えている。各部３１〜３６はバス３７を介して互いに接続されている。第１ＣＰＵ３１は、フラッシュメモリー装置３６に記憶されたプログラムを実行することにより、インクカートリッジ２０の記憶素子２１にアクセスする処理、スキャンエンジン１６が読み取った原稿の画像データから印刷データを生成する処理、操作部１４の操作による指示の受付け、表示部１５の表示制御などを司る。第２ＣＰＵ３２は、フラッシュメモリー装置３６に記憶されたプログラムを実行することにより、スキャンエンジン１６の駆動制御及び印刷エンジン１７の駆動制御などを司る。第３ＣＰＵ３３は、フラッシュメモリー装置３６に記憶されたプログラムを実行することにより、ＦＡＸ通信部１８及びネットワーク通信部１９の制御などを司る。すなわち、本実施形態の複合機１１では、スキャンデータから印刷データを生成するデータ処理及びユーザーインターフェイス系の制御は第１ＣＰＵ３１が司り、スキャンエンジン１６及び印刷エンジン１７等のエンジン系の制御は第２ＣＰＵ３２が司り、さらにＦＡＸ通信及びネットワーク通信などの通信系の制御は第３ＣＰＵ３３が司る。もちろん、各ＣＰＵ３１〜３３が担当する制御内容等は適宜変更することができる。
【００３７】
ＡＳＩＣ３４は、複合機１１が入力した画像データ（スキャンデータを含む）を基に、記録ヘッド内のヘッド駆動回路（図示省略）が使用可能なデータ形式のヘッド制御データを生成する画像処理を行う。ＡＳＩＣ３４が生成したヘッド制御データは１回の印刷動作分ずつ記録ヘッドへ転送される。本例では、第１ＣＰＵ３１はスキャンデータからヘッド制御データを生成する過程でソフトウェアで処理する部分を担当し、ＡＳＩＣ３４は電子回路等のハードウェアで処理する部分を担当する。なお、ＡＳＩＣ３４を廃止し、第１ＣＰＵ３１が画像処理の全てをソフトウェア処理で行う構成としてもよい。
【００３８】
フラッシュメモリー装置３６には、各ＣＰＵ３１〜３３が実行するためのプログラム（例えばファームウェア）や各種の設定データなどが記憶されている。また、フラッシュメモリー装置３６には、複合機１１の稼動中に書き込まれることがあっても電源オフ時に書き込まれることのない非保証データＮＤと、電源オフ時に次回の電源オン時に使用するために書き込まれる使用データの一例としての保証データＧＤ（それぞれ図３（ｂ）参照）とが記憶される。
【００３９】
ここで、保証データＧＤには、複合機１１が印刷を行うことにより更新されるインク残量などの更新情報が含まれる。この更新情報には、インク残量の他、記録ヘッドのクリーニング回数（メンテナンス回数）、リアルタイムクロックの時刻情報などが含まれる。また、本実施形態の保証データＧＤには、更新情報以外に、メカ設定情報も含まれる。このメカ設定情報には、走査型の記録ヘッドの場合にその記録ヘッドを搭載するキャリッジの走査上の基準位置や走査速度に関する情報、搬送機構が用紙を搬送する際の基準位置や搬送速度に関する情報などが含まれる。さらに保証データＧＤには、複合機１１が印刷したテストパターンの中から最適な印刷結果であるとユーザーが判断して入力した１つのテストパターンに対応する番号を基に設定された噴射タイミング調整値なども含まれる。なお、保証データＧＤには、搬送系、記録ヘッド走査系、クリーニング系の各種モーター等の駆動時間や駆動回転数などの稼働履歴情報が含まれてもよい。
【００４０】
本実施形態では、フラッシュメモリー装置３６への保証データＧＤの書込みは、第１ＣＰＵ３１が行う。フラッシュメモリー装置３６に記憶されたプログラムには、図５にフローチャートで示す電源遮断検出処理ルーチンのプログラムが含まれており、第１ＣＰＵ３１は、停電やコンセント抜け等の意図しない電源遮断検出時にこのプログラムを実行することにより、保証データＧＤのフラッシュメモリー装置３６への書込みを行う。
【００４１】
一方、非保証データＮＤは、複合機１１の電源オンから電源オフまでの１回の稼動中にのみ使用されるデータである。非保証データＮＤには、各ＣＰＵ３１〜３３が、制御あるいは処理を行ううえで一時的に取得した各種情報や演算結果等のデータが含まれる。このため、非保証データＮＤは、次回の電源オン時に使用されることがない。
【００４２】
各ＣＰＵ３１〜３３はフラッシュメモリー装置３６にアクセスしてプログラム及び各種設定データを読み出す。フラッシュメモリー装置３６に記憶されたプログラムＰＲには、第１ＣＰＵ３１が実行すべき第１プログラムＰＲ１と、第２ＣＰＵ３２が実行すべき第２プログラムＰＲ２と、第３ＣＰＵ３３が実行すべき第３プログラムＰＲ３とを含む。なお、プログラムＰＲには、ブートプログラム、ＯＳ（オペレイティング・システム）用プログラムの他、スキャン、印刷、コピー等の所定動作を行わせるためのファームウェアプログラムなどが含まれる。
【００４３】
各ＣＰＵ３１〜３３は、複合機１１の電源オン時にフラッシュメモリー装置３６からプログラムＰＲ及びデータを読み出してＲＡＭ３５に展開する。各ＣＰＵ３１〜３３は複合機１１の稼動中に逐次更新されるデータをＲＡＭ３５に書き込む。また、第１ＣＰＵ３１は、複合機１１の電源オフ時にＲＡＭ３５から最新の保証データＧＤを読み出してその保証データＧＤをフラッシュメモリー装置３６に書き込むことにより、最新の保証データＧＤを電源オフ中においても保存する。
【００４４】
次に、各ＣＰＵ３１〜３３の機能構成及びフラッシュメモリー装置３６の構成を、図２を用いて説明する。
図２では、各ＣＰＵ３１〜３３が例えばフラッシュメモリー装置３６から読み出した所定のプログラムを実行することにより、その内部に構築される機能部分を示している。すなわち、図２に示すように、第１プログラムＰＲ１を実行する第１ＣＰＵ３１により第１システム４０が構築され、第２プログラムＰＲ２を実行する第２ＣＰＵ３２により第２システム５０が構築され、さらに第３プログラムＰＲ３を実行する第３ＣＰＵ３３により第３システム６０が構築される。
【００４５】
第１プログラムＰＲ１は、インク情報管理系、データ処理系及びユーザーインターフェイス系のプログラムを含む。さらに第１プログラムＰＲ１は、電源遮断検出処理用のプログラム（図５参照）を含む。共通プログラムには、フラッシュメモリー装置３６に対して読出し、書込み、消去などの基本的なメモリー制御を指示するためのメモリー制御プログラムが含まれている。よって、第１プログラムＰＲ１を第１ＣＰＵ３１が実行することにより構築される第１システム４０は、第１制御部４１、インク情報管理部４２、画像処理部４３、表示制御部４４、電源遮断検出部４５、停止指令部４６、第１判定部４７、第２判定部４８及びメモリー制御部４９を備えている。
【００４６】
また、第２プログラムＰＲ２は、スキャン、印刷及びコピーのためのエンジン系のプログラムを含む。よって、上記の第２プログラムＰＲ２を第２ＣＰＵ３２が実行することにより構築される第２システム５０は、第２制御部５１、スキャン制御部５２、印刷制御部５３、第１システム４０のものと同様の電源遮断検出部４５及びメモリー制御部５４を備えている。メモリー制御部５４は第１システム４０のメモリー制御部４９と基本構成は同じであるが、第１システム４０のメモリー制御部４９には、電源遮断検出処理（図５）で使用される機能が追加されている。
【００４７】
さらに第３プログラムＰＲ３は、ＦＡＸ系、通信系のプログラムを含む。よって、第３プログラムＰＲ３を第３ＣＰＵ３３が実行することにより構築される第３システム６０は、第３制御部６１、ＦＡＸ処理部６２、通信処理部６３、第１システム４０のものと同様の電源遮断検出部４５及びメモリー制御部６４を備えている。メモリー制御部６４は第２システム５０のメモリー制御部５４と基本構成は同じである。
【００４８】
メモリー制御部４９は、読出部７１、書込部７２、消去部７３、チップセレクト処理部７４（図２では「ＣＳ処理部７４」と記す）、状態確認部７５、中断指令部７６及び再開指令部７７を備えている。３つのシステム４０〜６０のメモリー制御部４９，５４，６４は、これらの各部７１〜７７をそれぞれの基本的な機能構成として備えるが、第１システム４０のメモリー制御部４９は、各部７２、７４〜７６を用いて、電源遮断検出処理における所定の処理を行う。なお、各システム４０〜６０を構成する各部の詳細は後述する。
【００４９】
次に、フラッシュメモリー装置３６の構成を説明する。図２に示すように、フラッシュメモリー装置３６（以下、単に「フラッシュメモリー３６」ともいう）は、メモリー制御回路８１及びフラッシュメモリー部８２を備えている。メモリー制御回路８１は、バス３７（図１参照）を介して３つのＣＰＵ３１〜３３と通信可能に接続されている。メモリー制御回路８１は、各ＣＰＵ３１〜３３から、読出し、書込み、消去などの処理を命令する各種のコマンドと、そのコマンドに従って処理する際のデータの読出し元、書込み先、消去先のアドレスとを入力する。
【００５０】
図２に示すように、メモリー制御回路８１はレジスター群８３を内蔵する。レジスター群８３のうちの状態レジスター８４は、フラッシュメモリー３６がＣＰＵ３１〜３３から受け付けたコマンドに基づいて、メモリー制御回路８１が行うデータの読出し、データの書込み、データの消去などの処理中であるかどうかその状態（ステイタス）を管理する。
【００５１】
また、メモリー制御回路８１は、中断処理部８５及び再開処理部８６を備える。中断処理部８５は、処理中の処理を中断させるとともに、フラッシュメモリー３６が動作中でなくなり処理の中断を終えると、状態レジスター８４をレディー状態の値に変更する。また、再開処理部８６は、中断処理部８５により中断していた処理を再開する。
【００５２】
状態レジスター８４には、メモリー制御回路８１が指示されたコマンドに基づく処理中はビジー状態の値が格納され、コマンドに基づく処理を終えるとレディー状態の値が格納される。このため、各システム４０〜６０は状態レジスター８４のフラグ値に基づき、指示したコマンドに基づく処理を終えたか否かの判定が可能となっている。
【００５３】
フラッシュメモリー部８２には、フラッシュメモリーセル８７、ロウデコーダー８８、カラムデコーダー８９などを備えている。また、フラッシュメモリー部８２は、その他に、公知のコマンドデコーダー、制御論理回路、ロウアドレスバッファー、カラムアドレスバッファー、データ制御回路、及び入出力バッファー（いずれも図示せず）を備えている。
【００５４】
フラッシュメモリーセル８７は、複数のメモリーセル（メモリー素子）（図示省略）がマトリクス配列されて構成されている。各メモリーセルは互いに交差する複数本のワード線と複数本のビット線の交差部に配置されている。ロウデコーダー８８はワード線の選択駆動等を行い、一方のカラムデコーダー８９はビット線の選択駆動等を行う。
【００５５】
メモリー制御回路８１から転送されるアドレス信号のうちロウアドレスがロウデコーダー８８に転送され、カラムアドレスがカラムデコーダー８９に転送される。これにより、指定のロウアドレスとカラムアドレスとで特定されるメモリーセルが選択される。
【００５６】
図３（ａ）に示すように、フラッシュメモリーセル８７は、ブロック０，１，…，Ｎの合計（Ｎ＋１）個のブロックＢＬに分割されている。本例では、ブロックＢＬは全て同じ記憶容量を有し、データを消去する際の最小単位（消去単位）となる。１つのブロックＢＬの記憶容量は、例えば０．５〜２０キロバイトの範囲内の所定値（一例として４キロバイト）である。
【００５７】
図３（ｂ）は、フラッシュメモリーセル８７に記憶された各種データを、図３（ａ）における各ブロックと対応させて示したものである。図３（ａ），（ｂ）に示す例では、プログラムＰＲ（プログラムＰＲ１〜ＰＲ３）は、ブロック０〜ブロックＪ−１に記憶されている。非保証データＮＤは、ブロックＪ〜ブロックＮ−２を使用して書き込まれる。また、保証データＧＤは、Ｎ−１番目のブロックＮ−１を使用して書き込まれる。さらに本実施形態では、Ｎ番目のブロックＮには、遮断時情報の一例である遮断時状態データＳＤを書き込むための記憶領域が確保されている。なお、遮断時状態データＳＤは、保証データＧＤの記憶領域の一部の空き領域を利用して書き込む構成としてもよい。
【００５８】
フラッシュメモリー装置３６では、ブロックのデータが消去されると、ブロック中の各１バイトは「ＦＦ」（16進数）の値（「11111111」）をとる。そして、ビットは「1」→「0」への変更は可能であるが、その逆は不可能である。このため、データを書き込むと、その書き込んだ記憶領域を再び使用するためには、その記憶領域の属するブロックＢＬのデータを消去する消去処理が必要になる。
【００５９】
ここで、保証データＧＤは、インクやトナー等の印刷用材料の残量など、所定動作の実施と共に変化する可変情報と、モーターの駆動開始位置（原点）などの工場出荷時に設定された不変情報（固定情報）とから構成される。印刷媒体の残量を検出するセンサーを備えたプリンター部を有する複合機１１であれば、可変情報の一情報として印刷媒体の残量を含めてもよい。また、複合機１１の使用料金をユーザーから徴収する構成の場合、所定動作の回数（例えば印刷枚数）などと共に変化する課金情報を、データの一情報として含めてもよい。なお、可変情報には時間情報（経過時間計測情報や時刻情報）も含めてよい。
【００６０】
ここで、本実施形態の第１システム４０は、停電やコンセント抜け等の意図しない電源遮断検出時に、保証データＧＤをフラッシュメモリー装置３６に書き込むため、他のシステム５０，６０のフラッシュメモリー装置３６に対する処理（消去処理又は書込み処理）を停止させる。そして、第１システム４０は、他のシステム５０，６０の処理を停止させた後、保証データＧＤをフラッシュメモリー装置３６の所定のブロックＢＬ（図３の例ではブロックＮ−１）に書き込む。遮断時状態データＳＤは、他のシステム５０，６０が停止（中断）した処理の処理内容を示すデータであり、フラッシュメモリー装置３６の所定のブロックＢＬ（図３の例ではブロックＮ）に書き込むものである。この遮断時状態データＳＤは、複合機１１の意図しない電源遮断の後、次回の電源オン（電源投入）時に、第１システム４０が電源遮断時に停止させた他のシステム５０，６０の処理内容に応じた処理を行うために使用される。
【００６１】
図４に示すように、遮断時状態データＳＤは、システム名Ｄ１、状態Ｄ２及び対象アドレスＡＤの各データを含む。システム名Ｄ１は、停止指令を受け付けたシステム名のデータであり、本例では第２システム５０の名称である「第２システム」と第３システム６０の名称である「第３システム」とがある。状態Ｄ２は、他のシステム５０，６０が第１システム４０から停止指令を受け付けたときのフラッシュメモリー装置３６に対する処理の状態、すなわち処理内容を示し、その内容には「消去中」、「書込み中」及び「実行なし」の３種類がある。対象アドレスＡＤは、状態が「消去中」又は「書込み中」のときに、その処理の対象となる記憶領域のアドレスを示す。
【００６２】
次に各システム４０〜６０の詳細を説明する。まず第１システム４０の構成を説明する。図２に示す第１制御部４１は、第１システム４０の制御を司る他、操作部１４（図１参照）からの入力を受付ける。インク情報管理部４２は、複合機１１の起動時にインクカートリッジ２０の記憶素子２１にアクセスしてインク残量等を含むインク関連データを読み出し、複合機１１の稼動中において更新されたインク残量等を含むインク関連データを記憶素子２１に書き込む。画像処理部４３は、スキャン時及びコピー時にスキャンエンジン１６（図１参照）が読み取ったスキャンデータを基に圧縮形式の画像データ（スキャン時）やヘッド制御データ（コピー時）等の所定形式のデータを生成する。表示制御部４４は、表示部１５（図１参照）にメニュー画面や設定画面等を表示するための表示制御を行う。
【００６３】
電源遮断検出部４５は、リセットＩＣ２６（図１参照）からリセット信号を入力したことをもって、停電やコンセント抜け等の意図しない電源遮断を検出する。詳しくは、電源遮断時にリセットＩＣ２６からのリセット信号に基づく割込要求（ＮＭＩ（Non-MaskableInterrupt）（マスク不可割込））を受け付けたことをもって、電源遮断を検出する。
【００６４】
停止指令部４６は、電源遮断検出部４５が意図しない電源遮断を検出すると、他のシステム５０，６０がフラッシュメモリー装置３６に対して現在行っている処理を停止させるべく各システム５０，６０に停止指令を出力する。
【００６５】
第１判定部４７は、割込要求（ＮＭＩ）を受け付けた電源遮断検出時に、フラッシュメモリー３６がビジー状態（動作中）であるか否かを判定する。また、第１判定部４７は、電源遮断検出時にビジー状態と判定すると、書込み処理に要する書込み時間を待った後に、フラッシュメモリー装置３６がビジー状態（動作中）であるか否かを判定する。さらに第１判定部４７は、メモリー制御部４９がフラッシュメモリー装置３６の動作を中断させるためのサスペンドコマンドを発行した後、フラッシュメモリー装置３６がビジー状態（動作中）であるか否かを判定する。この判定は、フラッシュメモリー装置３６の現在のステイタスを示すフラグ値が格納される状態レジスター８４の値に基づき行われる。すなわち、第１判定部４７は、フラッシュメモリー３６の状態レジスター８４からその値を読み出し、その読み出した値がビジーの旨の値であれば、ビジー状態であると判定する。なお、状態レジスター８４は、メモリー制御回路８１が読出処理中及び書込処理中等の処理中にある場合のビジー状態の値と、これらの処理を行っていないときのレディ状態の値とをとる。
【００６６】
メモリー制御部４９は、フラッシュメモリー装置３６に対して、データの読出処理、データの書込処理、データの消去処理、及びこれらの処理以外の所定のコマンドを出力するコマンド出力処理を行う。メモリー制御部４９の書込部７２は、非保証データＮＤの書込みの他、保証データＧＤの書込みも担当する。また、メモリー制御部４９は、意図しない電源遮断検出時に、フラッシュメモリー装置３６に対して保証データＧＤの書込みを行う。このときメモリー制御部４９は、停止指令部４６が各システム５０，６０に対して停止（中断）させたフラッシュメモリー装置３６に対する処理についての電源遮断時の処理状態を示す遮断時状態データＳＤ（図４参照）を作成し、保証データＧＤと共にこの遮断時状態データＳＤをフラッシュメモリー装置３６に書き込む処理を行う。
【００６７】
本実施形態では、各システム５０，６０の制御部５１，６１は、フラッシュメモリー装置３６に対する処理の停止指令を受け付けると、そのときフラッシュメモリー装置３６に対する処理の実行中にあれば、その実行中の処理を停止させる。
【００６８】
そして、第１制御部４１は、遮断時状態データＳＤを、フラッシュメモリー装置３６の予め用意された記憶領域に書き込むか、あるいは保証データＧＤの書込領域のうち一部の空き記憶領域に書き込む。この遮断時状態データＳＤには、第２システム５０又は第３システム６０がＲＡＭ３５に書き込んだ対象アドレスＡＤが含まれる。
【００６９】
また、第１制御部４１は、複合機１１が意図しない電源遮断をした後、次回の電源オン時（電源投入時）にフラッシュメモリー装置３６から保証データＧＤ及び遮断時状態データＳＤを読み出す。第２判定部４８は、遮断時状態データＳＤに基づいて電源遮断検出時に他のシステムに停止（中断）させた処理内容を判定する。処理内容には「消去中」、「書込み中」及び「実行なし」が含まれ、第２判定部４８は「消去中」であるか否かの判定と、「書込み中」であるか否かの判定とを行う。
【００７０】
次に第２システム５０の構成を説明する。第２制御部５１は、第２システム５０の制御を司る。スキャン制御部５２は、スキャン時及びコピー時にスキャンエンジン１６（図１参照）を制御する。印刷制御部５３は、コピー時及び印刷時に印刷エンジン１７（図１参照）を制御する。
【００７１】
電源遮断検出部４５は、第１システム４０のものと同様の構成であり、リセットＩＣ２６（図１参照）からリセット信号に基づく割込要求（ＮＭＩ）を入力したことをもって、停電やコンセント抜け等の意図しない電源遮断を検出する。
【００７２】
メモリー制御部５４は、第１システム４０側のメモリー制御部４９と同様の機能構成を有しており、フラッシュメモリー装置３６に対して、データの読出処理、データの書込処理、データの消去処理、及びこれらの処理以外の所定のコマンドを出力するコマンド出力処理を行う。但し、メモリー制御部５４の書込部７２は、非保証データＮＤの書込みは行うが、保証データＧＤの書込みは担当しない。
【００７３】
本例の第２制御部５１は、第１システム４０の停止指令部４６から停止指令を受け付けると、メモリー制御部５４に対して現在処理中の処理の停止を指示する。メモリー制御部５４は、第２制御部５１から停止の指示を受け付けると、そのときフラッシュメモリー装置３６に対して処理中の処理を停止（中断）する。メモリー制御部５４は、例えばフラッシュメモリー装置３６の所定記憶領域（ブロック）のデータ消去中であれば、そのデータ消去処理を中断する。また、メモリー制御部５４は、フラッシュメモリー装置３６へのデータの書込み処理中であれば、そのデータの書込み処理を中断する。
【００７４】
例えばデータの書込み処理中であって、第２システム５０のメモリー制御部５４がデータの書込み処理を中断したとき、データの転送開始前であってかつ書込コマンドが既に出力された後であれば、その書込コマンドはフラッシュメモリー装置３６に入力される。そのときチップセレクトされているので、メモリー制御回路８１は、データの入力を待つ。第２システム５０の処理停止後、第１システム４０が書込コマンドを出力した場合、メモリー制御回路８１は、第１システム４０からの書込コマンドをデータとみなしてフラッシュメモリーセル８７に書き込んでしまう。これを防ぐために、第１システム４０のＣＳ処理部７４は、ＣＳ信号をハイレベルにし、チップセレクトを解除する。
【００７５】
次に第３システム６０の構成を説明する。第３制御部６１は、第３システム６０の制御を司る。ＦＡＸ処理部６２は、ＦＡＸの受信及び送信時にＦＡＸ通信部１８（図１参照）を制御する。通信処理部６３は、ネットワークを介した通信時にネットワーク通信部１９（図１参照）を制御する。また、電源遮断検出部４５は、各システム４０，５０のものと同様の構成であり、停電やコンセント抜け等の意図しない電源遮断を検出する。
【００７６】
メモリー制御部６４は、第２システム５０側のメモリー制御部５４と同様の機能構成を有している。すなわち、メモリー制御部６４は、フラッシュメモリー装置３６に対して、データの読出処理、データの書込処理、データの消去処理、及びこれらの処理以外の所定のコマンドを出力するコマンド出力処理を行う。
【００７７】
第３制御部６１は、第１システム４０の停止指令部４６から停止指令を受け付けると、メモリー制御部６４に対して現在処理中の処理の停止を指示する。メモリー制御部６４は、第３制御部６１から停止の指示を受け付けると、そのとき処理中の処理を停止（中断）する。
【００７８】
次にメモリー制御部４９，５４，６４を構成する各部の詳細な構成を説明する。
読出部７１は、フラッシュメモリー装置３６から各種のデータを読み出す読出処理を行う。特に複合機１１の電源オン時には、読出部７１は、前回の電源オフ時に書き込まれた保証データＧＤをＲＡＭ３５上に読み出す読出処理を行う。また、読出部７１は、複合機１１の稼動中に必要な非保証データＮＤを読み出す読出処理も行う。
【００７９】
書込部７２は、フラッシュメモリー装置３６に各種データを書き込む書込処理を行う。特に複合機１１の電源オフ時に、複合機１１の稼動中に更新されたＲＡＭ３５上の保証データＧＤを、フラッシュメモリー装置３６に書き込む書込処理を行う。また、書込部７２は、非保証データＮＤのフラッシュメモリー装置３６への書込処理を行う。
【００８０】
消去部７３は、フラッシュメモリー装置３６のデータを消去する消去処理を行う。本例のフラッシュメモリー装置３６では、ブロックＢＬが消去の最小単位なので、消去部７３はブロック単位でデータの消去を行う。
【００８１】
ＣＳ処理部７４は、フラッシュメモリー装置３６に対してチップセレクトの指示と、チップセレクトの解除とを行う。ここで、読出部７１及び書込部７２はそれぞれのコマンド（読出コマンド又は書込コマンド）を出力するときにチップセレクトし、コマンドの出力を終えてデータの転送を開始する前にチップセレクトを解除する。本例では、チップセレクトは、各部７１，７２がチップセレクト信号（ＣＳ信号）をローレベルにすることにより行われ、チップセレクトの解除は、各部７１，７２がチップセレクト信号（ＣＳ信号）をハイレベルにすることにより行われる。ＣＳ処理部７４は、各部７１，７２が読出コマンド又は書込コマンドの出力のときに行ったチップセレクトを強制的に解除する処理を行う。
【００８２】
状態確認部７５は、フラッシュメモリー装置３６の状態レジスター８４の値を取得し、その取得した値に基づいてフラッシュメモリー装置３６（詳しくはメモリー制御回路８１）の処理状態（ステイタス）を確認する。状態確認部７５は、状態レジスター８４の値に基づいて、メモリー制御回路８１が、レディ状態、ビジー状態（読出中又は書込中等）のうちいずれの状態であるかを確認する。
【００８３】
中断指令部７６は、フラッシュメモリー装置３６のメモリー制御回路８１に現在処理中の処理を中断させるためのサスペンドコマンドを、フラッシュメモリー装置３６に対して発行する。
【００８４】
再開指令部７７は、フラッシュメモリー装置３６のメモリー制御回路８１にサスペンドコマンドの発行により中断させていた処理を再開させるためのレジュームコマンドを、フラッシュメモリー装置３６に対して発行する。
【００８５】
一方、第２システム５０内のメモリー制御部５４は、第１システム４０内のメモリー制御部４９と基本的に同様の機能構成を有している。すなわち、メモリー制御部５４は、読出部７１、書込部７２、消去部７３、チップセレクト処理部７４、状態確認部７５、中断指令部７６及び再開指令部７７を同様に有している。
【００８６】
メモリー制御回路８１は、ＣＰＵ３１〜３３から入力したコマンドに応じて、データの読出し、データの書込み、ブロックＢＬ単位でのデータの消去などをフラッシュメモリー部８２に指示する。これにより、読出し元のアドレスからのデータの読出し、書込み先のアドレスへのデータの書込み、消去先のアドレスにあるデータの消去が行われる。
【００８７】
メモリー制御回路８１は、書込コマンドを入力したときには、このコマンド入力に続いてＣＰＵ３１〜３３から転送されてきたデータを、フラッシュメモリーセル８７内の指定されたアドレスに書き込む。また、メモリー制御回路８１は、読出コマンドを入力すると、フラッシュメモリーセル８７内の指定されたアドレスからデータを読出し、そのデータをＣＰＵ３１〜３３のうちコマンド出力元の一方へ転送する。さらに、メモリー制御回路８１は、消去コマンドを入力すると、フラッシュメモリーセル８７内の指定されたアドレスのデータをブロックＢＬ単位で消去する。
【００８８】
メモリー制御回路８１は、ＣＰＵ３１〜３３からの読出し、書込み、消去などのコマンドに応じた制御信号、アドレスを指定するアドレス信号をフラッシュメモリー部８２へ出力する。また、メモリー制御回路８１とフラッシュメモリー部８２はデータ線で接続され、メモリー制御回路８１からフラッシュメモリー部８２への書込みデータの転送と、フラッシュメモリー部８２からメモリー制御回路８１への読出しデータの転送は、データ線を介して行われる。
【００８９】
ＣＰＵ３１〜３３は、メモリー制御回路８１へ消去コマンドを送った後、状態レジスター８４のフラグ値が、ビジー状態の値であるうちはデータの消去処理中であると判断する。そして、ＣＰＵ３１〜３３は、状態レジスター８４のフラグ値が、ビジー状態の値からレディー状態の値に切り換わったことをもって、消去処理が終了したと判断する。もちろん、状態レジスター８４に替えてもしくは追加して、消去処理専用の消去レジスターを設け、ＣＰＵ３１〜３３が消去レジスターの値に基づき消去処理の終了を把握する構成を採用してもよい。
【００９０】
第１ＣＰＵ３１は電源オン時にフラッシュメモリー装置３６に読出コマンドを送ることにより、保証データＧＤを読み出す読出処理を行い、メモリー制御回路８１から送られてきた保証データＧＤをＲＡＭ３５に書き込む。そして、複合機１１の稼働中（電源オン状態）は、ＲＡＭ３５にアクセスすることによりデータの読出し及び書込みを行い、書込みを行う度にデータは更新される。また、第１ＣＰＵ３１は電源オフ時にフラッシュメモリー装置３６に書込コマンドを送ることにより、ＲＡＭ３５のデータをフラッシュメモリー装置３６へ書き込む書込処理を行う。
【００９１】
次に、複合機１１の作用を、図５及び図６に示すフローチャートに基づいて説明する。複合機１１の稼動中において、停電やコンセント抜け等の意図しない電源遮断が発生したときには、この意図しない電源遮断がリセットＩＣ２６により検出され、リセットＩＣ２６からリセット信号ＲＳが出力される。第１システム４０内の電源遮断検出部４５は、リセットＩＣ２６からリセット信号ＲＳに基づく割込要求（ＮＭＩ）の入力があったことをもって、意図しない電源遮断の発生を検出する。この電源遮断検出部４５が意図しない電源遮断を検出すると、第１ＣＰＵ３１は、図５にフローチャートで示す電源遮断検出処理ルーチンを実行する。
【００９２】
まずステップＳ１では、他のシステムの停止処理を行う。すなわち、第１システム４０は、第２システム５０と第３システム６０に停止指令を送り、フラッシュメモリー装置３６に対する処理を停止させる。
【００９３】
ステップＳ２では、フラッシュメモリー３６のチップセレクトを解除する。例えば他のシステム５０，６０の処理停止時に既に書込コマンドを出力していた場合、第１システム４０がその後の処理で出力した書込コマンドがフラッシュメモリー３６にデータとして書き込まれてしまう。これを回避するためにチップセレクトを解除する。
【００９４】
ステップＳ３では、フラッシュメモリー３６のステイタスを確認する。すなわち、状態確認部７５がフラッシュメモリー３６の状態レジスター８４の値を取得し、その値からステイタスを把握する。例えばフラッシュメモリー３６が他のシステム５０，６０から入力したコマンド（例えば書込コマンド、読出コマンド、消去コマンド）の処理中である場合、状態レジスター８４はビジー（処理中）の値になっている。一方、フラッシュメモリー３６が処理中でない場合、状態レジスター８４はレディーの値になっている。
【００９５】
ステップＳ４では、フラッシュメモリー３６がビジーであるか否かを判断する。ここで、ビジー状態には、書込み中と読出し中と消去中の場合があるが、状態レジスター８４の値からはどの処理中であるかは判別できない。このため、第１判定部４７は、フラッシュメモリー３６がビジーであるか否かの判断をもって書込み中であるか否かを判断する。判定の結果、ビジーでなければ（例えばレディーであれば）ステップＳ５に進み、ビジーであればステップＳ６に進む。
【００９６】
ステップＳ５では、「実行なし」の状態とする。例えば他のシステム５０，６０がフラッシュメモリー３６に対する処理を実行していない場合と読出し中の場合は、「実行なし状態」とする。
【００９７】
ステップＳ６では、フラッシュメモリー３６が書込処理を終了するまでの書込み時間を待つ。本例では複合機１１で扱われるデータの容量から想定される書込所要時間の最大値にマージンを加えた書込み時間が設定されている。書込み時間は、消去処理に要する消去時間に比べ十分短いので、二次電池１３Ａの電力によりＣＰＵを動作状態に保持できる保持時間からみて、この書込み時間を待っても、保証データＧＤの書込み時間は十分確保される。但し、消去時間を待つと、その後の保証データＧＤの書込みができなくなる可能性が高くなるため、書込み時間だけ待つことにしている。また、書込み時間を待つことでフラッシュメモリー３６がビジーでなくなれば、他のシステム５０，６０の処理が書込みであったと判別でき、書込み時間を待ってもフラッシュメモリー３６がビジーであれば、他のシステム５０，６０の処理が消去であったと判別することが可能である。
【００９８】
次のステップＳ７では、フラッシュメモリー３６がビジーであるか否かを判断する。ここで、ビジー状態には、書込中の場合と読出中の場合と消去中の場合とがあるが、状態レジスター８４の値からはどの処理中であるかは判別できない。このため、第１判定部４７は、フラッシュメモリー３６がビジー（動作中）であるか否かの判断をもって、消去中であるか否かを判断する。すなわち、第１判定部４７は、状態レジスター８４の値を取得し、その値がフラッシュメモリー３６の動作中を示すビジーの値であるか否かを判定する。フラッシュメモリー３６がビジーでなければステップＳ８に進み、ビジーであればステップＳ９に進む。
【００９９】
ステップＳ８では、「書込み中」の状態とする。つまり、書込み時間を待った後にフラッシュメモリー３６が動作中でなくなった場合は、書込み中とする。このとき書込みが終了していても、１つのデータを複数回に分けて書き込む場合があるため、その書込みデータが断片的なデータとなっている可能性が高い。
【０１００】
ステップＳ９では、「消去中」の状態とする。つまり、書込み時間を待った後もフラッシュメモリー３６がビジー（動作中）である場合は、消去中とする。
ステップＳ１０では、サスペンドコマンドを発行する。すなわち、中断指令部７６がフラッシュメモリー３６に対してサスペンドコマンドを発行する。フラッシュメモリー３６内のメモリー制御回路８１はサスペンドコマンドを受け付けると、中断処理部８５に中断処理を指示する。中断処理部８５は、処理中の処理（例えば消去処理）を中断させるとともに、フラッシュメモリー３６が処理の中断を終えると、状態レジスター８４をレディーの値に変更する。例えば消去中であった場合、その消去処理は中断され、その中断が完了すると、状態レジスター８４がレディー状態の値になる。
【０１０１】
ステップＳ１１では、フラッシュメモリー３６がビジーであるか否かを判断する。すなわち、第１判定部４７は、状態レジスター８４の値を取得し、その値がビジーの値であれば、フラッシュメモリー３６の動作中を示すビジーと判断する。フラッシュメモリー３６がビジー（動作中）であるうちはそのまま待機し、ビジーでなければステップＳ１２に進む。つまり、サスペンドコマンドの発行から、そのサスペンドコマンドによって実際にフラッシュメモリー３６が動作を終了させるまで待機した後、ステップＳ１２に進む。
【０１０２】
ステップＳ１２では、保証データＧＤと遮断時状態データＳＤとを書き込む。すなわち、第１システム４０の書込部７２は、ＲＡＭ３５から読み出した保証データＧＤを、フラッシュメモリーセル８７内のブロックＮ−１の先頭アドレスを指定してフラッシュメモリー３６に書き込む。さらに第１システム４０の書込部７２は、ＲＡＭ３５から遮断時状態データＳＤを読み出し、その読み出した遮断時状態データＳＤを、フラッシュメモリーセル８７内のブロックＮの先頭アドレスを指定してフラッシュメモリー３６に書き込む。こうして、二次電池１３Ａの電力に基づく保持時間内に、保証データＧＤ及び遮断時状態データＳＤのフラッシュメモリー３６への書込処理を終了できる。
【０１０３】
ここで、第１システム４０は、遮断時状態データＳＤを次のように作成する。停止指令を受け付けた他のシステム５０，６０は、処理の停止後、システム名及び停止した処理の対象アドレスなどの必要な情報を、ＲＡＭ３５の所定記憶領域に書き込んでいる。第１システム４０は、ＲＡＭ３５の所定記憶領域から読み出したこれらの情報と、ステップＳ５，Ｓ８，Ｓ９で確定された処理内容（実行なし／書込み中／消去中のうちのいずれか１つ）の情報とを用いて、図４に示す遮断時状態データＳＤを作成する。こうして電源遮断検出時には、保証データＧＤと遮断時状態データＳＤとがフラッシュメモリー３６の所定ブロックに書き込まれる。このため、複合機１１が電源遮断された後の電源オフ中も、各データＧＤ，ＳＤはフラッシュメモリー３６に保存される。
【０１０４】
その後、停電の復旧、電源プラグのコンセントへの差し込みなどにより電源遮断の原因が取り除かれ、ユーザーが電源スイッチ１４Ａを操作して複合機１１を電源オンさせると（つまり電源が投入されると）、複合機１１は起動する。この起動時に第１ＣＰＵ３１は、図６に示す電源起動処理ルーチンを実行する。以下、第１ＣＰＵ３１が実行する電源起動処理ルーチンを図６に基づいて説明する。
【０１０５】
まずステップＳ１１では、プログラムをＲＡＭ３５に展開する処理を実行する。すなわち、第１ＣＰＵ３１はフラッシュメモリー３６から第１プログラムＰＲ１を読み出してＲＡＭ３５に展開し、その展開した第１プログラムＰＲ１を実行する。第１ＣＰＵ３１が第１プログラムＰＲ１を実行するにより、第１システム４０が起動する。
【０１０６】
次のステップＳ１２では、遮断時状態データＳＤをフラッシュメモリー３６から読み出す。遮断時状態データＳＤには、「消去中／書込み中／実行なし」のうちのいずれか１つの状態が、前回の電源遮断時の処理内容として含まれる。
【０１０７】
ステップＳ２３では、消去中であるか否かを判断する。すなわち、第２判定部４８は、遮断時状態データＳＤ中の「状態」の値を取得し、その値から消去中であるか否かを判断する。例えば遮断時状態データＳＤ中の状態値は２ビット値で表され、「00」が「実行なし」、「01」が「書込み中」、「10」が「消去中」となっており、第２判定部４８は状態値が「10」（消去中）であるか否かを判断する。消去中であればステップＳ２４に進み、消去中でなければステップＳ２５に進む。
【０１０８】
ステップＳ２４では、消去中の記憶領域（ブロックＢＬ）を再消去する。遮断時状態データＳＤには、前回の電源遮断時に停止した処理の対象アドレスが含まれている。第１制御部４１は消去部７３に対象アドレスを指定してデータの消去を指示する。そして、第１制御部４１から消去の指示を受け付けた消去部７３は、フラッシュメモリー３６の対象アドレスで示されたブロックＢＬ（対象記憶領域）のデータを消去する。
【０１０９】
ステップＳ２５では、書込み中であるか否かを判断する。すなわち、第２判定部４８は、遮断時状態データＳＤ中の「状態」の値を取得し、その値から書込み中であるか否かを判断する。詳しくは、第２判定部４８は状態値が「01」（書込み中）であるか否かを判断する。書込み中であればステップＳ２６に進み、書込み中でなければステップＳ２７に進む。
【０１１０】
ステップＳ２６では、書込み中データの無効処理を行う。第１制御部４１は消去部７３に対象アドレスを指定して書込み中データの消去を指示する。そして、第１制御部４１から消去の指示を受け付けた消去部７３は、フラッシュメモリー３６の対象アドレスで示されるブロックＢＬのデータを消去する。この消去によって、前回の電源遮断時の書込み中データが無効とされる。
【０１１１】
次のステップＳ２７では、第２システム５０及び第３システム６０の起動処理を行う。すなわち、第１ＣＰＵ３１は、第２及び第３ＣＰＵ３２，３３に各プログラムＰＲ２，ＰＲ３をそれぞれ実行させる。第２ＣＰＵ３２が第２プログラムＰＲ２を実行することで第２システム５０が起動され、第３ＣＰＵ３３が第３プログラムＰＲ３を実行することで第３システム６０が起動される。
【０１１２】
その後、第１ＣＰＵ３１は、フラッシュメモリー３６の所定ブロック（ブロックＮ−１）から保証データＧＤを読み出し、保証データＧＤを用いて所定の処理を行う。所定の処理としては、保証データＧＤ中の例えばインク残量情報を用いて行われる処理、すなわちインク残量カウンター（図示せず）へのインク残量設定処理、表示部１５に表示される印刷設定画面中のインク残量表示用画像（インジケーター画像）の作成処理及びインクエンド判定処理などが挙げられる。
【０１１３】
以上詳述したように、本実施形態では、以下に示す効果を得ることができる。
（１）電源遮断検出時にフラッシュメモリー装置３６に対する処理の優先度が高い第１システム４０と、第１システム４０よりも優先度の低い他のシステム５０，６０とが、同一のフラッシュメモリー３６にアクセス可能な構成において、意図しない電源遮断検出時に、第１システム４０は優先度の低い他のシステム５０，６０の処理を停止させる。このため、第１システム４０は保証データＧＤをフラッシュメモリー３６に書き込むことができる。このとき、処理を停止させた時の他のシステム５０，６０の状態（処理内容）を含む遮断時状態データＳＤをフラッシュメモリー３６に保存し、次回の電源オン時に遮断時状態データＳＤに基づき電源遮断時の処理内容を把握し、その処理を複合機１１の起動時に実行する。このため、意図しない電源遮断時に他のシステム５０，６０が処理を停止（中断）しても、その停止した処理が行われた状態で複合機１１を起動できる。
【０１１４】
（２）他のシステム５０，６０の停止を指令した後、フラッシュメモリー３６がビジーであるか否かを判定し（Ｓ４）、ビジーでなければ「実行なし」状態とする（Ｓ５）。このため、電源遮断検出時に他のシステム５０，６０が処理の実行中でないことを比較的簡単に判定できる。
【０１１５】
（３）フラッシュメモリー３６がビジーであれば（Ｓ４で肯定判定）、フラッシュメモリー３６の書込処理が終わると想定される書込み時間を待つ（Ｓ６）。そして、書込み時間を待った後もビジーである場合は消去中とし、ビジーでなくなった場合は書込み中とする。このため、他のシステム５０，６０から停止指令時の状態（処理内容）の情報を取得しなくても、他のシステム５０，６０の停止指令時の状態を把握できる。例えば他のシステム５０，６０が第１システム４０に知らせるべき情報の量を少なくできる。
【０１１６】
（４）他のシステム５０，６０の停止処理後、チップセレクトを解除する（Ｓ２）ので、第１システム４０が保証データＧＤを書き込むために発行した書込コマンドが、データとしてフラッシュメモリーセル８７に書き込まれてしまう事態を回避できる。
【０１１７】
（５）書込み時間を待った後にフラッシュメモリー３６がビジーであれば（Ｓ７で肯定判定）、サスペンドコマンドを発行するので、相対的に時間の短い書込処理は完了させつつ、相対的に時間の長い消去処理を中断させることができる。よって、消去処理の中断によって、第１システム４０が保証データＧＤを最後まで書込む時間を確保できる。
【０１１８】
（６）サスペンドコマンド発行後にフラッシュメモリー３６がビジー（動作中）であるか否かを判定し、ビジー（動作中）でなくなると、保証データＧＤをフラッシュメモリー３６に書き込む。よって、保証データＧＤの書込処理をより確実に行うことができる。例えばフラッシュメモリー３６の動作中（つまり消去処理中又は消去処理の中断処理中）に保証データＧＤの書込コマンドを出力した場合、保証データが消去されてしまう虞がある。しかし、フラッシュメモリー３６の動作中でないことを確認した後、保証データＧＤの書込みを行うので、保証データＧＤをその一部も消去されることなくフラッシュメモリー３６に書き込むことができる。
【０１１９】
（７）意図しない電源遮断が発生しても、保証データＧＤをフラッシュメモリー３６に書き込むことができるので、複合機１１の次回電源オン時に最新の保証データＧＤを読み出して使用できる。この結果、例えば正しいインク残量の情報を取得できる。よって、例えば、データ上はインク残量がインクエンドよりも多く残っているため、印刷を開始したものの、その印刷の途中でインク切れとなって印刷画像が途中までしか形成されない事態を極力防止できる。
【０１２０】
（第２実施形態）
次に第２実施形態を図７及び図８に基づいて説明する。前記第１実施形態では、他のシステムが書込処理を中断した場合、次回の電源オン時に書込み中データの無効処理を行ったが、本実施形態では、次回の電源オン時に書込み中データの再書込みを行う構成である。そのため、遮断時状態データＳＤと電源起動処理ルーチンが前記第１実施形態と異なる。なお、この第２実施形態では、上記の相違点以外は、前記第１実施形態と同様の構成なので、共通な構成部分については説明を省略し、同一の符号を用いて説明する。
【０１２１】
まず遮断時状態データＳＤについて説明する。図７に示すように、本実施形態の遮断時状態データＳＤは、システム名Ｄ１１、状態Ｄ１２、消去対象アドレスＡＤ１、書込み先アドレスＡＤ２及び書込みデータＷＤの各データを含む。システム名Ｄ１１は、第１実施形態と同様で、第２システム５０の名称である「第２システム」と第３システム６０の名称である「第３システム」とがある。状態Ｄ２には、第１実施形態と同様で、「消去中」、「書込み中」及び「実行なし」の３種類がある。消去対象アドレスＡＤ１は、状態が「消去中」のときにその消去の対象となるブロックＢＬ（記憶領域）のアドレス（消去対象アドレス）を示す。書込み先アドレスＡＤ２は、状態が「書込み中」のときに書込みデータＷＤの書込み先のアドレスを示す。
【０１２２】
第１システム４０（第１ＣＰＵ３１）は、第１実施形態と同様に図５に示す電源遮断処理ルーチンを実行する。但し、図５におけるステップＳ１２では、図４に示す遮断時状態データＳＤに替え、図７に示す遮断時状態データＳＤをフラッシュメモリー３６に書き込む。
【０１２３】
ここで、第１システム４０は、図７に示す遮断時状態データＳＤを次のように作成する。停止指令を受け付けた他のシステム５０，６０は、処理中であればその処理の停止後、システム名、停止した処理が消去処理であればそのときの消去の対象アドレス、停止した処理が書込み処理であればそのときの読出し元アドレス及び書込み先アドレスなどの必要な情報を、ＲＡＭ３５の所定記憶領域に書き込んでいる。なお、読出し元アドレスに替え、読出し元アドレスから読み出したデータ（書込みデータ）としてもよい。
【０１２４】
第１システム４０は、ＲＡＭ３５の所定記憶領域から読み出したこれらの情報と、ステップＳ５，Ｓ８，Ｓ９で確定された処理内容（実行なし／書込み中／消去中のうちのいずれか１つ）の情報とを用いて、図７に示す遮断時状態データＳＤを作成する。このとき、遮断時状態データＳＤ中の書込みデータは、前述の読出し元アドレスを用いて第１システム４０がＲＡＭ３５の読出し元アドレスから読み出したデータ、あるいは他のシステム５０，６０が先にＲＡＭ３５の読出し元アドレスから読み出してＲＡＭ３５の所定記憶領域に書き込んだデータである。こうして電源遮断検出時には、保証データＧＤと遮断時状態データＳＤとがフラッシュメモリー３６の所定ブロックに書き込まれる。このため、複合機１１が電源遮断された後の電源オフ中も、各データＧＤ，ＳＤはフラッシュメモリー３６に保存される。
【０１２５】
その後、意図しない電源遮断の原因が取り除かれ、ユーザーが電源スイッチ１４Ａを操作して複合機１１を電源オンさせると、複合機１１は起動する。この起動時に第１ＣＰＵ３１は、図８に示す電源起動処理ルーチンを実行する。
【０１２６】
ステップＳ３１〜Ｓ３４の処理は、第１実施形態の図６におけるステップＳ１〜Ｓ２４の処理と同様である。但し、遮断時状態データＳＤは図７に示すものが読み出される。すなわち、ステップＳ３２では、図７に示す遮断時状態データＳＤを読み出す。そして、次のステップＳ３３で第２判定部４８が消去中であると判断した場合（肯定判定）、ステップＳ３４において、消去中の記憶領域（ブロックＢＬ）を再消去する。
【０１２７】
前回の電源遮断時に他のシステムの消去処理を停止した場合、図７に示す遮断時状態データＳＤには消去対象アドレスが含まれている。第１制御部４１は消去部７３に消去対象アドレスを指定してデータの消去を指示する。そして、第１制御部４１から消去の指示を受け付けた消去部７３は、フラッシュメモリー３６の消去対象アドレスで示されたブロックＢＬのデータを消去する。
【０１２８】
ステップＳ３５では、書込み中であるか否かを判断する。すなわち、第２判定部４８は、遮断時状態データＳＤ中の「状態」の値を取得し、その状態値が書込み中を示す値（「01」）であるか否かを判断する。書込み中であればステップＳ３６に進み、書込み中でなければステップＳ３７に進む。
【０１２９】
ステップＳ３６では、書込み中データの再書込みを行う。第１制御部４１は遮断時状態データＳＤから取得した書込みデータを同じく遮断時状態データＳＤから取得した書込み先アドレスに書き込む書込み処理を書込部７２に指示する。そして、第１制御部４１から書込みの指示を受け付けた書込部７２は、フラッシュメモリー３６の書込み先アドレスに書込みデータを書き込む。この書込みによって、前回の電源遮断時の書込み中データが再書込みされる。
【０１３０】
そして、次のステップＳ３７では、第２システム５０及び第３システム６０の起動処理を行う。その後、第１ＣＰＵ３１は、フラッシュメモリー３６の所定ブロック（ブロックＮ−１）から保証データＧＤを読み出し、保証データＧＤを用いて、例えばインク残量に関する前述の所定処理を行う。
【０１３１】
以上詳述したように第２実施形態によれば、以下の効果を得ることができる。
（８）電源遮断検出時に、他のシステム５０，６０が書込み処理を停止（中断）した場合、書込み先アドレスＡＤ２及び書込みデータＷＤを含む遮断時状態データＳＤをフラッシュメモリー３６に書き込む（Ｓ１，Ｓ８，Ｓ１２）。そして、次回の電源オン時に、電源遮断時の状態が書込み中と判断した場合、遮断時状態データＳＤから取得した書込みデータＷＤをフラッシュメモリー３６の書込み先アドレスＡＤ２に書き込む書込み中データの再書込みを行う。よって、電源遮断時に他のシステムが書込み処理を中断しても、次回の電源オン時に他のシステムが書込み処理を完了した状態にすることができる。
【０１３２】
（第３実施形態）
次に第３実施形態を図８及び図９に基づいて説明する。前記第１及び第２実施形態では、電源遮断検出処理（図５）の中で、書込み時間を待つ処理（Ｓ６）を行って、その後、ビジーであるか否かを判断して、他のシステム５０，６０の状態を把握したが（Ｓ８，Ｓ９）、本実施形態では、書込み時間を待つことなく他のシステム５０，６０の処理を停止（中断）させる構成である。そのため、電源遮断検出処理ルーチンが前記各実施形態と異なる。また、電源オン時は図８に示す電源起動処理ルーチンを採用する。なお、第１実施形態と同様の構成については説明を省略し、同一の符号を用いて説明する。
【０１３３】
以下、本実施形態の複合機１１における電源遮断検出処理ルーチンを、図９に基づいて説明する。ステップＳ４１〜Ｓ４４の処理は、図５におけるステップＳ１〜４の処理と同様である。ステップＳ４４において、フラッシュメモリー３６がビジーでなければステップＳ４５に進み、保証データＧＤをフラッシュメモリー３６に書き込む。一方、フラッシュメモリー３６がビジーであればステップＳ４６に進む。
【０１３４】
ステップＳ４６では、サスペンドコマンドを発行する。すなわち、中断指令部７６がフラッシュメモリー３６に対してサスペンドコマンドを発行する。フラッシュメモリー３６内の中断処理部８５は、サスペンドコマンドを受け付けると、メモリー制御回路８１がフラッシュメモリー部８２に対して実行中の処理を中断させるとともに、その中断が完了すると、状態レジスター８４をレディーの値に変更する。例えばフラッシュメモリー３６が書込処理中であれば書込処理が中断され、消去処理中であれば消去処理が中断される。
【０１３５】
ステップＳ４７では、フラッシュメモリー３６がビジー（動作中）であるか否かを判断する。すなわち、第１判定部４７が状態レジスター８４の値がビジーの値であるか否かを判定する。フラッシュメモリー３６がビジーであればそのまま待機し、処理の中断が終了してビジーでなくなればステップＳ４８に進む。
【０１３６】
ステップＳ４８では、保証データＧＤと遮断時状態データＳＤとを書き込む。すなわち、第１システム４０の書込部７２は、ＲＡＭ３５から読み出した保証データＧＤを、フラッシュメモリーセル８７内のブロックＮ−１の先頭アドレスを指定してフラッシュメモリー３６に書き込む。さらに第１システム４０の書込部７２は、ＲＡＭ３５から図７に示す遮断時状態データＳＤを読み出し、その読み出した遮断時状態データＳＤを、フラッシュメモリーセル８７内のブロックＮの先頭アドレスを指定してフラッシュメモリー３６に書き込む。こうして、二次電池１３Ａの電力に基づく保持時間内に、保証データＧＤ及び遮断時状態データＳＤのフラッシュメモリー３６への書込処理を終了できる。
【０１３７】
ここで、第１システム４０は、図７に示す遮断時状態データＳＤを次のように作成する。停止指令を受け付けた他のシステム５０，６０は、処理中であればその処理の停止後、システム名、停止時の状態（消去中／書込み中／実行なし）、停止した処理が消去処理であれば消去対象アドレス、停止した処理が書込み処理であれば読出し元アドレス（又は書込みデータ）及び書込み先アドレスなどの必要な情報を、ＲＡＭ３５の所定記憶領域に書き込んでいる。
【０１３８】
第１システム４０は、ＲＡＭ３５の所定記憶領域から読み出したこれらの情報を用いて、図７に示す遮断時状態データＳＤを作成する。このとき、遮断時状態データＳＤ中の書込みデータＷＤは、第１システム４０がＲＡＭ３５の読出し元アドレスから読み出したデータ、あるいは他のシステム５０，６０がＲＡＭ３５の読出し元アドレスから読み出してＲＡＭ３５に書き込んだデータである。こうして電源遮断検出時に他のシステムの処理を中断させた場合は、保証データＧＤと遮断時状態データＳＤとがフラッシュメモリー３６の所定ブロックに書き込まれる。このため、複合機１１が電源遮断された後の電源オフ中も、各データＧＤ，ＳＤはフラッシュメモリー３６に保存される。
【０１３９】
こうして、二次電池１３Ａの電力でＣＰＵ３１を動作状態に保持しうる保持時間内に、フラッシュメモリー３６への保証データＧＤ及び遮断時状態データＳＤの書込処理を終了できる。本実施形態では、書込み時間を待つ処理（図５におけるＳ６）がないので、二次電池１３Ａによる保持時間に時間的余裕ができる。
【０１４０】
次のステップＳ４９では、レジュームコマンド（Resume command）を発行する。すなわち、再開指令部７７がフラッシュメモリー３６に対してレジュームコマンドを発行する。フラッシュメモリー３６内のメモリー制御回路８１はレジュームコマンドを受け付けると、再開処理部８６に再開処理を指示する。再開処理部８６は中断していた処理の再開する。すなわち、書込処理を中断していた場合はその書込処理を再開する。このため、二次電池１３Ａの電力が切れるまでに、中断されていたデータの書込みが完了する。また、消去処理を中断していた場合はその消去処理を再開する。但し、消去処理は書込処理に比べ時間を要するため、その処理時間を経過し終わる前に、二次電池１３Ａの電力が切れてしまう。このため、大抵の場合、消去処理は結局中断される。
【０１４１】
ステップＳ５０では、処理完了であるか否かを判断する。第１システム４０は、例えば他のシステム５０，６０のうち処理を中断した一方に処理の完了を確認する。中断した処理が書込み中でありかつ１つのデータを複数回に分けて書き込む構成の場合、他のシステムは処理を完了すると、ＲＡＭ３５に用意された処理完了フラグを「０」から「１」に変更するようにしており、第１システム４０はＲＡＭ３５の処理完了フラグの値に基づき処理完了を確認する。１回のデータ書込みでよい場合は、レジュームコマンド発行後のこの判断処理で、第１判定部４７が、フラッシュメモリー３６がビジーであるか否かを判断し、ビジーでなくなれば処理完了と判断する。処理完了と判断されないうちは、処理完了になるまでこの判断処理を繰り返す。そして、処理完了と判断すると、ステップＳ５１に進む。
【０１４２】
ステップＳ５１では、遮断時状態データＳＤ中の「状態」を「実行なし」に更新する。こうして複合機１１が意図せず電源遮断された後におけるフラッシュメモリー３６中の遮断時状態データＳＤ中の「状態」は、中断した処理を再開しても処理を完了できないまま電源遮断されたときは「消去中」又は「書込み中」となり、中断した処理を再開して完了できたときは「実行なし」となる。
【０１４３】
その後、複合機１１が電源オンされると、第１ＣＰＵ３１は図８に示す電源起動処理ルーチンを実行する。電源遮断時に中断した処理を再開して完了できたときは、フラッシュメモリー３６から読み出した遮断時状態データＳＤ中の状態が「実行なし」なので（Ｓ３３，Ｓ３５で否定判定）、再消去（Ｓ３４）も再書込み（Ｓ３６）も行われない。一方、電源遮断時に中断処理を再開しても完了できなかった場合は、フラッシュメモリー３６から読み出した遮断時状態データＳＤ中の状態が「消去中」又は「書込み中」なので（Ｓ３３又はＳ３５で肯定判定）、電源遮断時に再開しても完了できなかった処理を完了した状態とするため、再消去（Ｓ３４）又は再書込み（Ｓ３６）を行う。
【０１４４】
以上詳述した第３実施形態によれば、以下の効果を得ることができる。
（９）保証データＧＤをフラッシュメモリー３６に書き込んだ後、中断した処理を再開する。よって、保証データＧＤを保存するために中断した他のシステム５０，６０の処理を再開できる。例えば中断していた書込処理を再開し、他のシステム５０，６０からの非保証データＮＤをフラッシュメモリー３６に書き込むことができる。また、消去処理を中断したときには、場合によっては二次電池１３Ａの保持時間内に消去処理を終えることができる。なお、非保証データＮＤは、基本的に次回の電源投入後において複合機１１で使用されるものではないが、電源遮断時の最終の更新情報はエラー原因の特定などの診断に利用される。
【０１４５】
（１０）書込み時間を待つことなく直ちにサスペンドコマンドを発行してフラッシュメモリー３６の処理を中断させたうえで（Ｓ４６）、保証データＧＤ及び遮断時状態データＳＤを書き込む（Ｓ４８）。このため、保持時間の終了まで時間的余裕ができ、各データＧＤ，ＳＤをフラッシュメモリー３６に一層確実に保存できる。
【０１４６】
（１１）電源遮断時に他のシステム５０，６０の処理を中断しなかったとき（Ｓ４４でビジーでないとき）は、フラッシュメモリー３６に保証データＧＤを書き込むのみで遮断時状態データＳＤは書き込まない。このため、保証データＧＤの書き込みが終了しないまま電源遮断される頻度を一層低減できる。
【０１４７】
なお、上記実施形態は以下のような形態に変更することもできる。
・第１システム４０から他のシステム５０，６０へ停止指令を送る構成に替え、他のシステム５０，６０が電源遮断時にリセットＩＣ２６からのリセット信号に基づく割込要求（ＮＭＩ）を受け付けると、フラッシュメモリー３６に対する処理を中断する構成としてもよい。この場合、他のシステム５０，６０を停止させるためのリセット信号ＲＳを出力するリセットＩＣ２６が、停止処理部の一例を構成する。
【０１４８】
・一の制御部の一例である第１システム４０が電源オン時の復旧処理を行う構成に限定されない。例えば他の制御部の一例である第２システム５０又は第３システム６０が電源オン時の復旧処理を行ってもよい。つまり、遮断時情報を不揮発性メモリーに書き込む制御部と、電源オン時に遮断時情報に基づいて復旧処理を行う制御部とが別のものであってもよい。
【０１４９】
・復旧処理として、再消去は行うが、書込み中データの無効処理は行わない構成でもよい。また、これとは逆に、書込み中データの無効処理は行うが、再消去は行わない構成でもよい。
【０１５０】
・他のシステムが不揮発性メモリーにアクセスする記憶領域（例えばブロックＢＬ）が１つに特定されている場合は、図４の遮断時状態データＳＤ中の対象アドレスＡＤ、図７の遮断時状態データＳＤ中の消去対象アドレスＡＤ１、書込み先アドレスＡＤ２を無くしてもよい。この場合、システム名Ｄ１，Ｄ１１のデータから一義的に特定されるアドレス先の記憶領域に対して復旧処理を行えばよい。
【０１５１】
・フラッシュメモリー３６のチップセレクトの解除を行わない構成も採用できる。
・前記各実施形態において、電源遮断時には第２システム５０が保証データＧＤを書き込む構成を採用してもよい。つまり、一の制御部が第２システム５０で、他の制御部が第１及び第３システム４０，６０である構成でもよい。同様に、一の制御部が第３システム６０で、他の制御部が第１及び第２システム４０，５０である構成としてもよい。
【０１５２】
・制御部（システム（ＣＰＵ））が３つの構成に限定されず、２つ又は４つ以上の複数個の構成でもよい。そして、電源遮断検出時に複数の制御部のうち一の制御部が他の制御部に優先して不揮発性メモリーに保証データ及び遮断時状態データの書込みを行い、次回の電源オン時に遮断時状態データに基づいて復旧処理を行う構成であればよい。
【０１５３】
・各実施形態では、各システム４０〜６０を、プログラムＰＲ１〜ＰＲ３を実行するＣＰＵ３１〜３３により構築されるソフトウェアにより構成したが、各システム４０〜６０のうちの一部又は全てを、集積回路等のハードウェアにより構築したり、ソフトウェアとハードウェアの協働により構築したりしてもよい。
【０１５４】
・不揮発性メモリーはフラッシュメモリーに限定されない。例えばＥＥＰＲＯＭ、ＦｅＲＡＭ（強誘電体メモリー）、ＭＲＡＭ（Magnetoresistive ＲＡＭ）、ＰＲＡＭ（Phasechange ＲＡＭ）、ＲｅＲＡＭ（Resistive ＲＡＭ）などでもよい。
【０１５５】
・情報処理装置は、複合機１１などの印刷機能を有する印刷装置に限定されるものではなく、電源遮断時に、電源オン時に使用する使用データを不揮発性メモリーに書き込む装置に広く適用できる。情報処理装置は、例えばスキャナー、プロジェクター、デジタルフォトフレーム、デジタルカメラなどであってもよい。
【符号の説明】
【０１５６】
１１…情報処理装置の一例である複合機、１２…コントローラー、１３…電源回路、１３Ａ…二次電池、１４…操作部、１４Ａ…電源スイッチ、１６…スキャンエンジン、１７…印刷エンジン、１８…ＦＡＸ通信部、１９…ネットワーク通信部、２０…インクカートリッジ、２１…記憶素子、２５…コンピューター、２６…電源遮断検出部の一例を構成するリセットＩＣ、３１…一の制御部の一例である第１ＣＰＵ、３２…他の制御部の一例である第２ＣＰＵ、３３…他の制御部の一例である第３ＣＰＵ、３４…ＡＳＩＣ、３５…ＲＡＭ、３６…不揮発性メモリーの一例であるフラッシュメモリー装置（フラッシュメモリー）、４０…一の制御部の一例である第１システム、４１…処理部の一例を構成する第１制御部、４２…スキャン制御部、４３…印刷制御部、４４…表示制御部、４５…電源遮断検出部の一例を構成する電源遮断検出部、４６…停止処理部の一例である停止指令部、４７…第１判定部、４８…第２判定部、４９，５４，６４…メモリー制御部、５０…他の制御部の一例である第２システム、５１…第２制御部、５２…スキャン制御部、５３…印刷制御部、６０…他の制御部の一例である第３システム、６１…第３制御部、６２…ＦＡＸ処理部、６３…通信処理部、７１…読出部、７２…書込部、７３…消去部、７４…チップセレクト処理部、７５…状態確認部、７６…中断指令部、７７…再開指令部、８１…メモリー制御回路、８２…フラッシュメモリー部、８４…状態レジスター、８５…中断処理部、８６…再開処理部、８７…フラッシュメモリーセル、ＧＤ…使用データの一例である保証データ、ＮＤ…非保証データ、ＳＤ…遮断時情報の一例である遮断時状態データ、ＰＲ…プログラム、ＰＲ１…第１プログラム、ＰＲ２…第２プログラム、ＰＲ３…第３プログラム、ＢＬ…記憶領域の一例であるブロック、ＷＤ…書込みデータ、ＡＤ１…消去対象アドレス、ＡＤ２…書込み先アドレス。
【図１】
2013218371.tif 000003
【図２】
2013218371.tif 000004
【図３】
2013218371.tif 000005
【図４】
2013218371.tif 000006
【図５】
2013218371.tif 000007
【図６】
2013218371.tif 000008
【図７】
2013218371.tif 000009
【図８】
2013218371.tif 000010
【図９】
2013218371.tif 000011