(57)【要約】【課題】不揮発性メモリの高寿命化を図ることが可能な画像形成装置を提供する。【解決手段】画像形成装置１は、複数のデータを記憶する揮発性メモリ（ＲＡＭ等）と、当該複数のデータのバックアップ用の不揮発性メモリ（フラッシュメモリ等）と、揮発性メモリに記憶された複数のデータを不揮発性メモリへと書き込むタイミングを制御する制御手段とを備える。当該複数のデータは、そのデータ特性（未更新時のデータ利用可能性に関する特性等）に基づいて複数のグループＧＰ１，ＧＰ２に分類される。グループＧＰ１に帰属する第１のデータは、揮発性メモリ上での第１のデータの更新頻度よりも低い頻度で、不揮発性メモリに書き込まれる。一方、グループＧＰ２に帰属する第２のデータは、当該第２のデータの揮発性メモリ上での更新時において直ちに不揮発性メモリに書き込まれる。【選択図】図３
2012053255.tif 000002
【特許請求の範囲】
【請求項１】
画像形成装置であって、
複数のデータを記憶する揮発性メモリと、
前記複数のデータのバックアップ用の不揮発性メモリと、
前記揮発性メモリに記憶された前記複数のデータであってそのデータ特性に基づいて複数のグループに分類された前記複数のデータを前記不揮発性メモリへと書き込むタイミングを制御する制御手段と、
を備え、
前記複数のグループは、第１のグループと第２のグループとを有し、
前記制御手段は、
前記複数のデータのうち、前記第１のグループに帰属する第１のデータを、前記揮発性メモリ上での前記第１のデータの更新頻度よりも低い頻度で、前記不揮発性メモリに書き込み、
前記複数のデータのうち、前記第２のグループに帰属する第２のデータを、前記揮発性メモリ上での前記第２のデータの更新時において直ちに前記不揮発性メモリに書き込むことを特徴とする画像形成装置。
【請求項２】
請求項１に記載の画像形成装置において、
前記制御手段は、前記第１のグループに帰属する複数の第１のデータを前記不揮発性メモリに一のタイミングで纏めて書き込むことを特徴とする画像形成装置。
【請求項３】
請求項２に記載の画像形成装置において、
前記制御手段は、前記複数の第１のデータを、前記不揮発性メモリにおける同一書込単位内に纏めて書き込むことを特徴とする画像形成装置。
【請求項４】
請求項１に記載の画像形成装置において、
前記データ特性は、未更新時のデータ利用可能性に関する特性を含むことを特徴とする画像形成装置。
【請求項５】
請求項４に記載の画像形成装置において、
前記データ特性は、データ更新頻度に関する特性をも含むことを特徴とする画像形成装置。
【請求項６】
請求項５に記載の画像形成装置において、
前記制御手段は、
データ更新頻度が所定程度よりも小さく且つ未更新時のデータ利用可能性が所定程度よりも小さいデータを、前記第２のグループに帰属させ、
データ更新頻度が所定程度よりも大きく且つ未更新時のデータ利用可能性が所定程度よりも大きいデータを、前記第１のグループに帰属させることを特徴とする画像形成装置。
【請求項７】
請求項６に記載の画像形成装置において、
前記制御手段は、
データ更新頻度が所定程度よりも大きく且つ未更新時のデータ利用可能性が所定程度よりも小さいデータをも、前記第２のグループに帰属させることを特徴とする画像形成装置。
【請求項８】
請求項１に記載の画像形成装置において、
前記制御手段は、前記揮発性メモリ上での前記第１のデータに関する最小更新周期よりも大きな所定周期を有する周期的タイミングで、前記第１のグループに帰属する複数の第１のデータの更新の有無を検出し、前記複数の第１のデータのうち更新が検出されたデータを前記不揮発性メモリに書き込むことを特徴とする画像形成装置。
【請求項９】
請求項８に記載の画像形成装置において、
前記制御手段は、特定イベントの発生タイミングにおいても前記第１のデータを前記不揮発性メモリに書き込むことを特徴とする画像形成装置。
【請求項１０】
請求項８に記載の画像形成装置において、
前記所定周期は、前記画像形成装置の印字速度に応じて変更されることを特徴とする画像形成装置。
【請求項１１】
請求項８に記載の画像形成装置において、
前記所定周期は、前記画像形成装置の稼働状態に応じて変更されることを特徴とする画像形成装置。
【請求項１２】
請求項８に記載の画像形成装置において、
前記所定周期は、前記不揮発性メモリの寿命余裕に応じて変更されることを特徴とする画像形成装置。
【請求項１３】
請求項８に記載の画像形成装置において、
前記所定周期は、前記不揮発性メモリにおける書込頻度に応じて変更されることを特徴とする画像形成装置。
【請求項１４】
請求項８に記載の画像形成装置において、
前記所定周期は、前記不揮発性メモリの書込中ブロックにおけるデータ充填率に応じて変更されることを特徴とする画像形成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＭＦＰ（Multi Function Peripheral）などの画像形成装置に関し、特に画像形成装置に内蔵されるバックアップ用の不揮発性メモリの利用技術に関する。
【背景技術】
【０００２】
従来、画像形成装置においては、画像形成ユニット等に関する情報のバックアップメモリとしてＥＥＰＲＯＭ（Electrically Erasable Programmable ROM）が主に利用されている。
【０００３】
ＥＥＰＲＯＭに関しては、１アドレス当たりの書換許容回数は比較的大きく（例えば約１００万回）、その寿命は比較的長い。そのため、データの書き換えタイミングに関する制約は比較的少ない。
【０００４】
一方、近年、コスト削減のため、比較的安価なフラッシュメモリをバックアップメモリとして採用することが望まれている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−２２０１０１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、フラッシュメモリに関しては、１アドレス当たりの書換許容回数は比較的小さく（例えば約３万回）、その寿命は比較的短い。そのため、現状と同様のタイミングでバックアップを行う場合には、フラッシュメモリの寿命が比較的早期に到来してしまうという問題がある。特に、バックアップ対象のデータの数が増大すると、このような問題は顕著になる。
【０００７】
このような問題を解決するべく、フラッシュメモリの高寿命化を図ることが好ましい。
【０００８】
なお、特許文献１に記載の技術においては、フラッシュメモリにおける各データの書込ブロック（書込対象ブロック）を各データの変更頻度に応じて区別する技術が記載されている。具体的には、頻繁に変更するデータとそれ以外のデータとを互いに異なるブロックに割り当てて、各データを書き込むことが行われる。これによれば、無駄なマージ過程を削減し、メモリの速度を向上させることが可能である。しかしながら、特許文献１に記載の当該技術は、メモリの速度向上を図る技術であり、高寿命化を図る技術ではない。そして、当該技術を用いたとしても、非常に高頻度に更新されるデータを全ての更新タイミングでフラッシュメモリに書き込むと、上記のように比較的早期にフラッシュメモリの寿命が到来する。
【０００９】
そこで、この発明の課題は、不揮発性メモリの高寿命化を図ることが可能な画像形成装置を提供することにある。
【課題を解決するための手段】
【００１０】
上記課題を解決すべく、請求項１の発明は、画像形成装置であって、複数のデータを記憶する揮発性メモリと、前記複数のデータのバックアップ用の不揮発性メモリと、前記揮発性メモリに記憶された前記複数のデータであってそのデータ特性に基づいて複数のグループに分類された前記複数のデータを前記不揮発性メモリへと書き込むタイミングを制御する制御手段と、を備え、前記複数のグループは、第１のグループと第２のグループとを有し、前記制御手段は、前記複数のデータのうち、前記第１のグループに帰属する第１のデータを、前記揮発性メモリ上での前記第１のデータの更新頻度よりも低い頻度で、前記不揮発性メモリに書き込み、前記複数のデータのうち、前記第２のグループに帰属する第２のデータを、前記揮発性メモリ上での前記第２のデータの更新時において直ちに前記不揮発性メモリに書き込むことを特徴とする。
【００１１】
請求項２の発明は、請求項１の発明に係る画像形成装置において、前記制御手段は、前記第１のグループに帰属する複数の第１のデータを前記不揮発性メモリに一のタイミングで纏めて書き込むことを特徴とする。
【００１２】
請求項３の発明は、請求項２の発明に係る画像形成装置において、前記制御手段は、前記複数の第１のデータを、前記不揮発性メモリにおける同一書込単位内に纏めて書き込むことを特徴とする。
【００１３】
請求項４の発明は、請求項１の発明に係る画像形成装置において、前記データ特性は、未更新時のデータ利用可能性に関する特性を含むことを特徴とする。
【００１４】
請求項５の発明は、請求項４の発明に係る画像形成装置において、前記データ特性は、データ更新頻度に関する特性をも含むことを特徴とする。
【００１５】
請求項６の発明は、請求項５の発明に係る画像形成装置において、前記制御手段は、データ更新頻度が所定程度よりも小さく且つ未更新時のデータ利用可能性が所定程度よりも小さいデータを、前記第２のグループに帰属させ、データ更新頻度が所定程度よりも大きく且つ未更新時のデータ利用可能性が所定程度よりも大きいデータを、前記第１のグループに帰属させることを特徴とする。
【００１６】
請求項７の発明は、請求項６の発明に係る画像形成装置において、前記制御手段は、データ更新頻度が所定程度よりも大きく且つ未更新時のデータ利用可能性が所定程度よりも小さいデータをも、前記第２のグループに帰属させることを特徴とする。
【００１７】
請求項８の発明は、請求項１の発明に係る画像形成装置において、前記制御手段は、前記揮発性メモリ上での前記第１のデータに関する最小更新周期よりも大きな所定周期を有する周期的タイミングで、前記第１のグループに帰属する複数の第１のデータの更新の有無を検出し、前記複数の第１のデータのうち更新が検出されたデータを前記不揮発性メモリに書き込むことを特徴とする。
【００１８】
請求項９の発明は、請求項８の発明に係る画像形成装置において、前記制御手段は、特定イベントの発生タイミングにおいても前記第１のデータを前記不揮発性メモリに書き込むことを特徴とする。
【００１９】
請求項１０の発明は、請求項８の発明に係る画像形成装置において、前記所定周期は、前記画像形成装置の印字速度に応じて変更されることを特徴とする。
【００２０】
請求項１１の発明は、請求項８の発明に係る画像形成装置において、前記所定周期は、前記画像形成装置の稼働状態に応じて変更されることを特徴とする。
【００２１】
請求項１２の発明は、請求項８の発明に係る画像形成装置において、前記所定周期は、前記不揮発性メモリの寿命余裕に応じて変更されることを特徴とする。
【００２２】
請求項１３の発明は、請求項８の発明に係る画像形成装置において、前記所定周期は、前記不揮発性メモリにおける書込頻度に応じて変更されることを特徴とする。
【００２３】
請求項１４の発明は、請求項８の発明に係る画像形成装置において、前記所定周期は、前記不揮発性メモリの書込中ブロックにおけるデータ充填率に応じて変更されることを特徴とする。
【発明の効果】
【００２４】
請求項１ないし請求項１４に記載の発明によれば、第２のデータは揮発性メモリ上でのデータ更新時において直ちに不揮発性メモリ上でも更新される一方で、第１のデータは揮発性メモリ上での第１のデータの更新頻度よりも低い頻度で不揮発性メモリに書き込まれるので、不揮発性メモリへの書込回数を抑制して、不揮発性メモリの高寿命化を図ることが可能である。
【００２５】
特に、請求項２に記載の発明によれば、第１のグループに帰属する複数の第１のデータが、一のタイミングで纏めて更新されるので、複数の第１のデータがそれぞれの更新タイミングで個別に更新される場合に比べて、効率的に更新される。そのため、不揮発性メモリへの書込回数をさらに抑制して、不揮発性メモリの更なる高寿命化を図ることが可能である。
【００２６】
また特に、請求項３に記載の発明によれば、複数の第１のデータは同一書込単位内に纏めて書き込まれるため、非常に効率的である。
【００２７】
また特に、請求項９に記載の発明によれば、周期的タイミングのみならず、特定イベントの発生タイミングにおいても第１のデータが不揮発性メモリに書き込まれ得るので、不揮発性メモリへの第１のデータの書き込みタイミングをより柔軟に制御することができる。
【図面の簡単な説明】
【００２８】
【図１】画像形成装置の概略構成を示すブロック図である。
【図２】コントローラの詳細なハードウエア構成を示す図である。
【図３】データの分類例を示す図である。
【図４】データの分類例を示す図である。
【図５】データの分類例を示す図である。
【図６】データの分類例を示す図である。
【図７】分類例の詳細を示す図である。
【図８】フラッシュメモリ内の複数のブロックを示す概念図である。
【図９】第１のグループ用のブロックの構成を示す概念図である。
【図１０】第２のグループ用のブロックの構成を示す概念図である。
【図１１】第１のグループ用のブロックにおけるデータ格納例を示す図である。
【図１２】第２のグループ用のブロックにおけるデータ格納例を示す図である。
【図１３】ブロックにおけるデータの書込動作を説明する図である。
【図１４】ブロックにおけるデータの書込動作を説明する図である。
【図１５】ブロックにおけるデータの書込動作を説明する図である。
【図１６】ブロックにおけるデータの書込動作を説明する図である。
【図１７】ブロックにおけるデータの書込動作を説明する図である。
【図１８】ブロックにおけるデータの書込動作を説明する図である。
【図１９】ブロックにおけるデータの書込動作を説明する図である。
【図２０】ブロックにおけるデータの書込動作を説明する図である。
【図２１】バックアップ動作を示すフローチャートである。
【図２２】図２１の一部の動作を示すフローチャートである。
【図２３】図２１の一部の動作を示すフローチャートである。
【図２４】図２１の一部の動作を示すフローチャートである。
【図２５】図２１の一部の動作を示すフローチャートである。
【図２６】第１のデータが時系列で変化する様子を示す図である。
【図２７】第２のデータが時系列で変化する様子を示す図である。
【図２８】周期間隔とメモリ寿命余裕度との関係を示す図である。
【図２９】周期間隔と書込回数との関係を示す図である。
【発明を実施するための形態】
【００２９】
以下、本発明の実施形態を図面に基づいて説明する。
【００３０】
＜１．構成＞
図１は、画像形成装置１（１Ａとも称する）の概略構成を示すブロック図である。画像形成装置１は、ここではＭＦＰ（マルチ・ファンクション・ペリフェラル（Multi Function Peripheral）として構成されている。
【００３１】
図１のブロック図に示すように、ＭＦＰ１は、画像読取部２、印刷出力部３、通信部４、格納部５、入出力部６およびコントローラ９等を備えており、これらの各部を複合的に動作させることによって、各種の機能を実現する。
【００３２】
画像読取部２は、ＭＦＰ１の所定の位置に載置された原稿を光学的に読み取って、当該原稿の画像データ（原稿画像とも称する）を生成する処理部である。
【００３３】
印刷出力部３は、印刷対象に関するデータに基づいて紙などの各種の媒体に画像を印刷出力する出力部である。
【００３４】
通信部４は、公衆回線等を介したファクシミリ通信を行うことが可能な処理部である。さらに、通信部４は、通信ネットワークＮＷを介したネットワーク通信が可能である。このネットワーク通信では、ＴＣＰ／ＩＰ（Transmission Control Protocol / Internet Protocol）およびＦＴＰ（File Transfer Protocol）等の各種のプロトコルが利用される。当該ネットワーク通信を利用することによって、ＭＦＰ１は、所望の相手先との間で各種のデータを授受することが可能である。
【００３５】
格納部５は、ハードディスクドライブ（ＨＤＤ）等の格納装置で構成される。この格納部５には、画像読取部２等で生成された原稿画像（画像データ）が格納される。
【００３６】
入出力部６は、ＭＦＰ１に対する入力を受け付ける操作入力部６ａと、各種情報の表示出力を行う表示部６ｂとを備えている。
【００３７】
コントローラ９は、ＭＦＰ１に内蔵され、ＭＦＰ１を統括的に制御する制御装置である。コントローラ９は、ＣＰＵおよび各種の半導体メモリ（ＲＡＭおよびＲＯＭ等）等を備えるコンピュータシステムとして構成される。コントローラ９は、ＲＯＭ１３（図２参照）（例えば、ＥＥＰＲＯＭ等）内に格納されている所定のソフトウエアプログラム（以下、単にプログラムとも称する）を、ＣＰＵ１１において実行することによって、各種の処理部を実現する。
【００３８】
具体的には、コントローラ９は、メモリ制御部３１等を備える。
【００３９】
メモリ制御部３１は、ＲＡＭ１２、ＲＯＭ１３およびフラッシュメモリ１５（図２参照）等のメモリに対するアクセス動作等を制御する処理部である。たとえば、メモリ制御部３１は、ＲＡＭ１２に記憶されたデータをバックアップ用のフラッシュメモリ１５へと書き込むタイミング、すなわちバックアップタイミング（記録タイミング）等を制御する。
【００４０】
図２は、コントローラ９の詳細なハードウエア構成を示す図である。図２に示すように、コントローラ９は、ＣＰＵ１１とＲＡＭ（揮発性メモリ）１２とＲＯＭ（不揮発性メモリ）１３と入出力用ＬＳＩ１４とフラッシュメモリ（不揮発性メモリ）１５とを備える。入出力用ＬＳＩ１４は、各種の入力デバイス１６からの入力信号と各種の出力デバイス１７への出力信号とを制御する。
【００４１】
この画像形成装置１は、画像形成動作に関するデータ（以下、エンジン情報とも称する）をＲＡＭ１２に格納して管理するとともに、当該データのバックアップデータをフラッシュメモリ１５に格納して管理する。ここでは、データのバックアップ先の不揮発性メモリとして、電気的に書換が可能な不揮発性メモリであるフラッシュメモリ１５を用いるものとする。当該フラッシュメモリは、ＥＥＰＲＯＭ（Electrically Erasable Programmable ROM）に比べて安価であるため、画像形成装置１のコストダウンを図ることが可能である。
【００４２】
＜２．バックアップ対象のデータ＞
画像形成装置１は、そのエンジン情報に関するデータとして、たとえば、次の４種類のデータ、具体的には、「高頻度カウントデータ」（ＤＴ１）と「低頻度カウントデータ」（ＤＴ２）と「機械状態参照データ」（ＤＴ３）と「調整値データ」（ＤＴ４）とを有する（図３参照）。換言すれば、画像形成装置１のエンジン情報に関するデータは、これら４種類のデータ（「サブグループ」とも称される）ＤＴ１〜ＤＴ４に分類される。
【００４３】
高頻度カウントデータＤＴ１は、比較的高頻度で更新されるカウントデータである。高頻度カウントデータは、カウントアップされるものでもよく、カウントダウンされるものであってもよい。高頻度カウントデータＤＴ１としては、たとえば、消耗品の寿命管理等に使用するデータ（ドラムカートリッジの回転時間カウンタ、および現像ユニットの現像印字枚数カウンタ等）が例示される。
【００４４】
低頻度カウントデータＤＴ２は、比較的低頻度で更新されるカウントデータである。この低頻度カウントデータも、カウントアップされるものでもよく、カウントダウンされるものであってもよい。低頻度カウントデータＤＴ２としては、たとえば、サービスマン等により行われた部品交換実績データ（各色ドラムカートリッジの交換回数データ等）、および、ソフトウエアの管理データ（ＥＥＰＲＯＭ内のファームウエア書き換え回数等）が例示される。
【００４５】
機械状態参照データＤＴ３は、機械の状態を示すデータ（フラグデータ等）である。機械状態参照データＤＴ３としては、たとえば、電源再投入時において直前の電源オン状態での機械状態を参照するためのデータ（安定化完了情報およびトナー補給残量情報等）が例示される。なお、「安定化完了情報」は、安定化完了に関するフラグ値を示すデータ（安定化処理の実行中か否かに関するフラグデータ「安定化処理フラグ」）である。また、「トナー補給残量情報」は、トナー補給に関する端数を積算していくデータである。
【００４６】
調整値データＤＴ４は、装置各部の調整値に関するデータである。調整値データＤＴ４としては、たとえば、機械の特性等に応じてサービスマン等によって変更されるデータ（ループ量調整値および上端余白補正調整値等）が例示される。なお、ループ量調整値は、レジストローラに用紙先端を突き当てる際のタイミング調整用データであり、上端余白補正調整値は、印刷用紙内での印字データの位置調整用データ（用紙の上端側の余白の大きさを規定する調整値等）である。
【００４７】
機械状態参照データＤＴ３は、比較的高頻度で更新されるデータであり、調整値データＤＴ４は、比較的低頻度で更新されるデータである。
【００４８】
さらに、機械状態参照データＤＴ３に属する各データは、当該各データが未更新である場合において更新直前のデータの利用可能性が比較的低いデータである。同様に、調整値データＤＴ４に属する各データも、当該各データが未更新である場合において更新直前のデータの利用可能性が比較的低いデータである。
【００４９】
たとえば、「ループ量調整値」に関しては、サービスマン等によって調整される前の値は、機械の動作に比較的大きな悪影響を与えるため、その利用価値（換言すれば、利用可能性）は非常に小さい。これに対して、「高頻度（ないし低頻度）カウントデータ」（ＤＴ１，ＤＴ２）に関しては、更新直前の値を利用しても動作可能であり、当該更新直前データの利用可能性が比較的高い。
【００５０】
機械状態参照データＤＴ３および調整値データＤＴ４は、高頻度カウントデータＤＴ１および低頻度カウントデータＤＴ２に比べて、未更新時のデータ利用可能性が低いデータである。逆に言えば、高頻度カウントデータＤＴ１および低頻度カウントデータＤＴ２は、機械状態参照データＤＴ３および調整値データＤＴ４に比べて、未更新時のデータ利用可能性が高いデータである。
【００５１】
ここにおいて、各データＤＴ１〜ＤＴ４は、次のようにも表現される。
【００５２】
高頻度カウントデータＤＴ１は、データ更新頻度が所定程度よりも高く（大きく）且つ未更新時のデータ利用可能性が所定程度よりも高い（大きい）データである。端的に言えば、高頻度カウントデータＤＴ１は、データ更新頻度「高」且つデータ利用可能性「高」のデータである。
【００５３】
低頻度カウントデータＤＴ２は、データ更新頻度が所定程度よりも低く（小さく）且つ未更新時のデータ利用可能性が所定程度よりも高いデータである。端的に言えば、データ更新頻度「低」且つデータ利用可能性「高」のデータである。
【００５４】
機械状態参照データＤＴ３は、データ更新頻度が所定程度よりも高く且つ未更新時のデータ利用可能性が所定程度よりも低いデータである。端的に言えば、機械状態参照データＤＴ３は、データ更新頻度「高」且つデータ利用可能性「低」のデータである。
【００５５】
調整値データＤＴ４は、データ更新頻度が所定程度よりも低く且つ未更新時のデータ利用可能性が所定程度よりも低いデータである。端的に言えば、データ更新頻度「低」且つデータ利用可能性「低」のデータである。
【００５６】
そして、これらの４種類のデータＤＴ１〜ＤＴ４は、各データの特性に基づいて、大きく２つのグループＧＰ１，ＧＰ２に類別（分類）される。なお、図３においては、第１のグループＧＰ１に対応するデータ欄にはハッチングが付されている。
【００５７】
具体的には、高頻度カウントデータＤＴ１と低頻度カウントデータＤＴ２と機械状態参照データＤＴ３とが第１のグループＧＰ１に帰属し且つ調整値データＤＴ４が第２のデータグループＧＰ２に帰属するように、各データが分類される。換言すれば、第１のグループＧＰ１は、高頻度カウントデータＤＴ１と低頻度カウントデータＤＴ２と機械状態参照データＤＴ３とを含むように構成され、第２のグループＧＰ２は調整値データＤＴ４を含むように構成される。
【００５８】
ここでは、上記４種類のデータＤＴ１〜ＤＴ４は、データ更新頻度に関する特性と未更新時のデータ利用可能性に関する特性とに基づいて、２つのグループＧＰ１，ＧＰ２に類別される。より具体的には、データ更新頻度が所定程度よりも低く（小さく）且つ未更新時のデータ利用可能性が所定程度よりも低い（小さく）データである「調整値データＤＴ４」が第２のグループＧＰ２に帰属し、その他のデータＤＴ１〜ＤＴ３が第１のグループＧＰ１に帰属するように、各データが分類される。特に、データ更新頻度が所定程度よりも高く（大きく）且つ未更新時のデータ利用可能性が所定程度よりも高い（大きい）データである「高頻度カウントデータＤＴ１」は、第１のグループＧＰ１に分類される。
【００５９】
なお、２つのグループＧＰ１，ＧＰ２への類別は、図３の手法に限定されず、図４〜図６などに示す他の手法によるものであってもよい。図３〜図６の各手法については後に詳述する。
【００６０】
図７は、分類例の詳細を示す図である。たとえば、図７に示すように、画像形成装置１のエンジン情報に関する各データは、第１のグループＧＰ１と第２のグループＧＰ２とに分類される。
【００６１】
また、図７に示すように、各データには当該各データを互いに識別するための識別番号が付される。そして、画像形成装置１は、各データの識別番号によって各データの内容を互いに識別することができる。
【００６２】
たとえば、識別番号「１５」のデータは、ドラムカートリッジの回転時間カウンタの値（ドラムカートリッジの回転時間を表す値）を示すデータであり、識別番号「１６」のデータは、現像印字枚数カウンタの値を示すデータ（現像ユニットによる印字枚数を表すデータ）である。同様に、識別番号「１７」のデータは、安定化完了に関するフラグ値を示すデータ（安定化処理の実行中か否かに関するフラグデータ「安定化完了情報（フラグ）」）である。また、識別番号「１８」のデータは、「トナー補給残り（端数）量」に関する値を示すデータ（トナー補給量の小数点以下の端数の蓄積値を示すデータ）である。
【００６３】
識別番号「１５」のデータおよび識別番号「１６」のデータは、それぞれ、高頻度カウントデータＤＴ１であり、識別番号「１７」のデータおよび識別番号「１８」のデータは、それぞれ、機械状態参照データＤＴ３である。たとえば、これらのデータは、第１のグループＧＰ１に分類される。
【００６４】
また、識別番号「０」のデータは、グループＧＰ１の先頭を示すデータ（先頭識別番号）であり、識別番号「２０２」のデータは、グループＧＰ１の最後尾（終端）を示すデータ（終端識別番号）である。
【００６５】
さらに、識別番号「２７８」のデータは、ループ量調整値（用紙の先端をタイミングローラに突き当てて形成されるループ量の調整値）を示すデータであり、識別番号「２７９」のデータは、上端余白調整値を示すデータである。識別番号「２７８」のデータおよび識別番号「２７９」のデータは、それぞれ、調整値データＤＴ４である。これらのデータは、グループＧＰ２に分類される。
【００６６】
また、識別番号「２０３」のデータは、グループＧＰ２の先頭を示すデータ（先頭識別番号）であり、識別番号「５０３」のデータは、グループＧＰ２の最後尾（終端）を示すデータ（終端識別番号）である。
【００６７】
メモリ制御部３１は、第１のグループＧＰ１に帰属するデータを、当該データのＲＡＭ１２上での更新タイミングとは非同期のタイミングでフラッシュメモリ１５に書き込む（バックアップする）。詳細には、メモリ制御部３１は、ＲＡＭ１２上でのデータ更新頻度よりも低い頻度で、第１のグループＧＰ１に帰属するデータをフラッシュメモリ１５へ書き込む。一方、メモリ制御部３１は、第２のグループに帰属するデータを、当該データのＲＡＭ１２上での更新時において直ちにフラッシュメモリ１５に書き込む（バックアップする）。
【００６８】
このように、メモリ制御部３１は、第１のグループＧＰ１のデータと第２のグループＧＰ２のデータとに関して、互いに異なる書込タイミングで書込動作（バックアップ動作）を行う。端的に言えば、第２のグループＧＰ２に帰属するデータは、「逐次書込」でフラッシュメモリ１５にバックアップされ、第１のグループＧＰ１に帰属するデータは、「低頻度書込」でフラッシュメモリ１５にバックアップされる。このような動作については、後に詳述する。
【００６９】
＜３．フラッシュメモリにおけるデータ更新動作＞
つぎに、フラッシュメモリ１５における各データの更新動作について説明する。
【００７０】
図８は、フラッシュメモリ１５におけるブロック（データ保存領域）を示す概念図である。図８に示すように、このフラッシュメモリ１５は、第１のグループＧＰ１用の複数のブロック（ここでは２つのブロックＢａ，Ｂｂ）と、第２のグループＧＰ２用の複数のブロック（ここでは２つのブロックＢｃ，Ｂｄ）とを有する。ここでは、簡単化のため、各グループ用にそれぞれ２つのブロックが設けられる場合を例示するが、各グループ用に対して更に多数（３つ以上）のブロックが設けられるようにしてもよい。
【００７１】
フラッシュメモリ１５の書込動作はＥＥＰＲＯＭの書込動作とは異なる。
【００７２】
たとえば、ＥＥＰＲＯＭにおいては１アドレス単位で書き換えを行うことが可能である。しかしながら、フラッシュメモリ１５において或るアドレスに保存されたデータを書き換える際には、まずブロック単位でまず消去動作（イレース動作）を行い、その後に当該アドレスに新たなデータを書き込むことが求められる。なお、１ブロックの大きさは、たとえば８キロバイト（ＫＢ）である。
【００７３】
また、フラッシュメモリ１５の最小書込単位（「ユニット」とも称する）は、例えば８バイトであり、ＥＥＰＲＯＭの最小書込単位（例えば１〜２バイト）よりも大きい。
【００７４】
各ブロックＢａ，Ｂｂ，Ｂｃ，Ｂｄは、それぞれ、データの最小書込単位（ユニット）で区分される。たとえば、図９に示すように、第１のグループＧＰ１用のブロックＢａは、複数（たとえば１０２４個）のユニットＵＡｉに区分される。ブロックＢｂも、同様に、複数（たとえば１０２４個）のユニットＵＢｉに区分される。また、図１０に示すように、第２のグループＧＰ２用のブロックＢｃは、複数（たとえば１０２４個）のユニットＵＣｉに区分される。ブロックＢｄも、同様に、複数（たとえば１０２４個）のユニットＵＤｉに区分される。
【００７５】
図１１に示すように、たとえば、第１のグループＧＰ１用のユニットＵＡ１には、後述するように或るタイミングで第１のグループＧＰ１用のデータがＲＡＭ１２からコピーされてバックアップされる。同様に、他のユニットＵＡｉにも、第１のグループＧＰ１用のデータがＲＡＭ１２からコピーされてバックアップされる。
【００７６】
ただし、後述するように、第１のグループＧＰ１の各データに関しては、原則として、ＲＡＭ１２上での当該各データの更新タイミングとは非同期に且つ低頻度でバックアップされる。具体的には、各データの変更時点とは必ずしも同期していない比較的長い周期（例えば数十秒〜数分）間隔のチェック時点で各データの変更の有無がチェックされ、当該チェック時点で更新されていると判定されたデータが、ＲＡＭ１２からフラッシュメモリ１５へとバックアップされる。また、第１のグループＧＰ１に帰属する複数のデータは、フラッシュメモリ１５内の同一書込単位内（ユニット内）に出来るだけ纏めて書き込まれる。
【００７７】
また、図１２に示すように、たとえば、第２のグループＧＰ２用のユニットＵＣ１には、後述するように或るタイミングで第２のグループＧＰ２用のデータがＲＡＭ１２からコピーされてバックアップされる。同様に、他のユニットＵＣｉにも、第２のグループＧＰ２用のデータがＲＡＭ１２からコピーされてバックアップされる。ただし、第２のグループＧＰ２のデータに関しては、各データの変更時点でそれぞれ直ちにバックアップされる。
【００７８】
この実施形態においては、たとえば、第１のグループＧＰ１用の複数のブロックＢａ，Ｂｂを用いて、第１のグループＧＰ１のデータＤ１（ＤＴ１，ＤＴ２，ＤＴ３）が格納される。この格納動作について図１３〜図２０を用いて説明する。
【００７９】
たとえば、ブロックＢａ内のユニットＵＡ３までの書込動作が完了（図１３）した後に、さらにユニットＵＡ４の書込動作（図１４）が行われる。その後、同様に、各ユニットＵＡｉに対する書込処理が順次に実行される。そして、ブロックＢａ内の最後のユニットＵＡｎまでの書込動作が完了し、ブロックＢａがフル書込状態に到達する（図１５）。
【００８０】
このとき、メモリ制御部３１は、ブロックＢａ内のデータを再構成する。たとえば、同一種類（同一識別番号）の複数のデータのうち最新のデータのみを残すことによって、ブロックＢａ内のデータを整理し、最新のデータで構成されるデータを再構成後のデータとして生成する。そして、当該再構成後のデータを、次のブロックＢｂの先頭アドレスのユニットＵＢ１以降に順次に書き込む。図１６では、再構成後のデータがユニットＵＢ１，ＵＢ２，ＵＢ３に書き込まれている。さらに、図１７に示すように、メモリ制御部３１は、ブロックＢａの全ユニットＵＡｉの内容を一括的に消去する。すなわち、ブロックＢａをブロック単位で一斉に消去する。これにより、ブロックＢａに対する新たなデータの書込処理が可能になる。なお、後述するように、ブロックＢｂがフル書込状態（図１９）になると、ブロックＢａに対する書込処理（図２０）が再び開始され得る。
【００８１】
この時点では、ブロックＢａに対する書込処理は未だ行われず、ブロックＢａに対する書込処理が引き続き行われる。具体的には、ブロックＢｂのユニットＵＢ４に対する書込動作（図１８）、およびユニットＵＢ５以降に対する書込動作が順次に行われる。
【００８２】
そして、ブロックＢｂ内の最後のユニットＵＢｎまでの書込動作が完了すると、ブロックＢｂがフル書込状態に到達する（図１９）。
【００８３】
メモリ制御部３１は、今度は、ブロックＢｂ内のデータを再構成する。そして、再構成後のデータを、もう１つのブロックＢａの先頭アドレスのユニットＵＡ１以降に順次に書き込む。図２０では、再構成後のデータがユニットＵＡ１，ＵＡ２，ＵＡ３に書き込まれている。さらに、メモリ制御部３１は、ブロックＢｂの全ユニットＵＢｉの内容を一括的に消去する（図１３参照）。すなわち、ブロックＢｂがブロック単位で一斉に消去される。
【００８４】
以降、同様の動作が繰り返されることによって、グループＧＰ１のデータＤ１は２つのブロックＢａ，Ｂｂを交互に用いてバックアップされる。
【００８５】
また、同様にして、第２のグループＧＰ２向けのデータＤ２（ＤＴ４）は、第２のグループＧＰ２用の複数のブロックＢｃ，Ｂｄを用いてバックアップされる。具体的には、グループＧＰ２のデータＤ２は、２つのブロックＢｃ，Ｂｄを交互に用いてバックアップされる。
【００８６】
なお、各グループに対してそれぞれ３つ以上のブロックが設けられる場合には、当該３つ以上のブロックが上記と同様にして順次に用いられることが好ましい。
【００８７】
＜４．詳細動作＞
上述したように、この実施形態においては、メモリ制御部３１は、第２のグループに帰属するデータを、当該データのＲＡＭ１２上での更新時において直ちにフラッシュメモリ１５に書き込む。また、メモリ制御部３１は、第１のグループＧＰ１に帰属するデータを、当該データのＲＡＭ１２上での更新頻度よりも低い頻度でフラッシュメモリ１５へ書き込む。より詳細には、メモリ制御部３１は、ＲＡＭ１２上でのデータの最小更新周期（例えば２５秒）よりも大きな所定周期（例えば３０秒）を有する周期的タイミングで当該データの更新の有無を検出し、更新が検出される場合に当該データをフラッシュメモリ１５に書き込む。以下では、このような動作（バックアップ動作）について、さらに詳細に説明する。
【００８８】
図２１〜図２５は、画像形成装置１におけるバックアップ動作（バックアップルーチン）を示すフローチャートである。図２１は、当該動作に係る全体的なフローチャートであり、図２２〜図２５は、図２１の一部の動作をそれぞれ示すフローチャートである。図２１のルーチンは、所定の微小時間間隔（例えば、数十ミリ秒〜数百ミリ秒）ΔＴで繰り返し実行される。
【００８９】
図２１に示すように、まず、ステップＳ１において、メモリ制御部３１は、第２のグループＧＰ２のデータのうち、更新すべきデータを検索する。図２２は、ステップＳ１の詳細動作を示すフローチャートである。
【００９０】
図２２に示すように、ステップＳ２１において、注目データに関する識別番号ｋが第２のグループＧＰ２の先頭識別番号「２０３」（図７参照）の次の番号「２０４」に設定（初期設定）される。そして、注目データ（識別番号ｋのデータ）が更新されているか否かがチェックされる（ステップＳ２２）。
【００９１】
注目データが更新されていると判定される場合にはステップＳ２３からステップＳ２４に進み、更新データが有ると判定される。また、このときの識別番号ｋが更新データの識別番号として特定される。
【００９２】
一方、注目データが更新されていないと判定される場合にはステップＳ２３からステップＳ２５に進む。
【００９３】
ステップＳ２５では識別番号ｋがインクリメントされ、次のステップＳ２６では識別番号ｋが第２のグループＧＰ２の終端識別番号（「５０３」）に到達したか否かが判定される。識別番号ｋが当該終端識別番号に到達していない場合には、再びステップＳ２２に戻り、同様の動作が繰り返される。一方、識別番号ｋが当該終端識別番号に到達している場合には、ステップＳ２７に進み、更新データが無いと判定される。
【００９４】
その後、ステップＳ２（図２１）において、ステップＳ１での判定結果に応じた分岐処理が行われる。更新データが有ると判定される場合にはステップＳ３に進み、更新データが無いと判定される場合にはステップＳ４に進む。
【００９５】
ステップＳ３では、第２のグループＧＰ２の更新データの書込処理が実行される。これにより、上記ステップＳ１で検索された更新データ（識別番号ｋで特定された更新データ）がフラッシュメモリ１５（詳細にはブロックＢｃ，Ｂｄのいずれか）に書き込まれる。たとえば、識別番号「２７８」のデータ（「ループ量調整値」）が、ブロックＢｃのユニットＵＣ１に書き込まれる（図１２参照）。
【００９６】
その後、同様の動作が繰り返し実行されることによって、第２のグループＧＰ２の更新データが順次検出され、検出されたデータがＲＡＭ１２からフラッシュメモリ１５へとコピーされバックアップされる。
【００９７】
図２７は、データ識別番号「２７８」のデータ（「ループ量調整値」）が時系列で変化する様子を示す図である。図２７の最上段には、各時刻におけるＲＡＭ１２内の当該データ値が左から右へと時間経過に従って示されており、図２７の中段には、各時刻におけるＲＡＭ１２内のコピー用のデータ値が左から右へと時間経過に従って示されている。また、図２７の最下段には、各時刻におけるフラッシュメモリ１５（ブロックＢｃ，Ｂｄ）内の当該データの各値が左から右へと時間経過に従って示されている。
【００９８】
ここでは、或る時点Ｔ２０において、ＲＡＭ１２上の「ループ量調整値」が「３」から「８」に変更された様子が示されている。時刻Ｔ２０において「ループ量調整値」がＲＡＭ１２上で更新されると、直後に実行される上記ルーチン（図２１参照）によって、識別番号「２７８」のデータである「ループ量調整値」が更新データとして検出される。そして、更新データ（「ループ量調整値」）の更新後の値が、直ちにフラッシュメモリ１５に書き込まれる。このように、第２のグループＧＰ２に帰属するデータ「ループ量調整値」は、ＲＡＭ１２上での当該データの更新時Ｔ２０において直ちにフラッシュメモリ１５に書き込まれる。
【００９９】
そのため、第２のグループＧＰ２に帰属する各データは、フラッシュメモリ１５において非常に確実に更新される。
【０１００】
一方、第１のグループＧＰ１に帰属する各データは、ＲＡＭ１２上での当該データの更新タイミングとは非同期のタイミングでフラッシュメモリ１５に書き込まれる。具体的には、当該各データは、データのＲＡＭ１２上での更新頻度よりも低い頻度でフラッシュメモリ１５へ書き込まれる。より詳細には、ＲＡＭ１２上でのデータの最小更新周期（例えば２５秒）よりも大きな所定周期（例えば３０秒）ＴＭを有する周期的なチェックタイミング（比較的長周期のチェックタイミング）で当該各データの更新の有無が検出され、更新されたデータがＲＡＭ１２からフラッシュメモリ１５へとコピーされ、バックアップされる。また、第１のグループＧＰ１に帰属する複数のデータは、フラッシュメモリ１５内の同一書込単位内（ユニット内）に出来るだけ纏めて書き込まれる。さらに、この実施形態においては、比較的長周期の周期的なチェックタイミングのみならず、特定イベントの発生タイミングにおいても、第１のグループＧＰ１に帰属するデータがフラッシュメモリ１５に書き込まれる（バックアップされる）場合を例示する。
【０１０１】
以下、このような動作について図２１〜図２５等を参照しながら説明する。
【０１０２】
上述のステップＳ２の分岐処理でステップＳ４に進むと、図２３に示すような書込タイミング判定動作が実行される。図２３は、ステップＳ４の詳細動作を示すフローチャートである。
【０１０３】
まず、現在時刻が取得され（ステップＳ４１）、上述の所定周期（周期間隔とも称する）ＴＭが確認（取得）される（ステップＳ４２）。周期間隔ＴＭとしては、ＲＡＭ１２上でのデータの最小更新周期（例えば２５秒）よりも大きな値、例えば数十秒から数分程度の比較的大きな値が設定されればよい。ここでは周期間隔ＴＭとして３０秒が設定されるものとする。
【０１０４】
そして、周期間隔ＴＭが経過していると判定されると、ステップＳ４３からステップＳ４４に進み、書込タイミングフラグがオンに設定されるとともに、さらにステップＳ４５に進み、現在時刻が、次の周期間隔ＴＭ経過に関する期間計測用の基準時刻に設定される。
【０１０５】
一方、周期間隔ＴＭが未だ経過していないと判定されると、ステップＳ４３からステップＳ４６に進み、特定イベントの発生の有無が判定される。ここにおいて、特定イベントは、当該イベントの発生時点でフラッシュメモリ１５へのバックアップ動作を行うことが望ましいイベント等である。当該特定イベントとしては、画像形成装置１の電源オフ、安定化処理の実行開始、および安定化処理の実行終了等などが例示される。
【０１０６】
特定イベントが発生している場合には、ステップＳ４４に進む。そして、えステップＳ４４で書込タイミングフラグがオンに設定された後に、さらにステップＳ４５に進み、現在時刻が次の周期間隔ＴＭの期間計測用の基準時点に設定される。
【０１０７】
特定イベントが発生していない場合には、ステップＳ４７に進む。ステップＳ４７では、書込タイミングフラグがオフに設定される。
【０１０８】
その後、ステップＳ５（図２１）では、書込タイミングフラグがオンであるかオフであるかに基づく分岐処理が実行される。
【０１０９】
書込タイミングフラグがオフである場合には、書込動作の実行タイミングが未だ到来していないと判定され、グループＧＰ１内のデータの変更の有無にかかわらず、更新処理は行われず、本ルーチンは一旦終了する。
【０１１０】
一方、書込タイミングフラグがオンである場合には、ステップＳ６に進み、更新データの検索処理が実行される。
【０１１１】
図２４は、ステップＳ６の詳細動作を示すフローチャートである。図２４に示されるようにして、グループＧＰ１に複数のデータの中から、更新データが検索される。
【０１１２】
図２４に示すように、ステップＳ６１において、注目データに関する識別番号ｋが第１のグループＧＰ１の先頭識別番号「０」（図７参照）の次の番号「１」に設定（初期設定）される。そして、注目データ（識別番号ｋのデータ）が更新されているか否かがチェックされる（ステップＳ６２）。
【０１１３】
注目データが更新されていると判定される場合にはステップＳ６３からステップＳ６４に進み、更新データが有ると判定される。また、このときの識別番号ｋが最初の更新データの識別番号Ｋとして特定される。
【０１１４】
一方、注目データが更新されていないと判定される場合にはステップＳ６３からステップＳ６５に進む。
【０１１５】
ステップＳ６５では識別番号ｋがインクリメントされ、次のステップＳ６６では識別番号ｋが第１のグループＧＰ１の終端識別番号（「２０２」）に到達したか否かが判定される。識別番号ｋが当該終端識別番号に到達していない場合には、再びステップＳ６２に戻り、同様の動作が繰り返される。一方、識別番号ｋが当該終端識別番号に到達している場合には、ステップＳ６７に進み、更新データが無いと判定される。
【０１１６】
さらに、ステップＳ７（図２１）において、ステップＳ６での判定結果に応じた分岐処理が行われる。更新データが有ると判定される場合にはステップＳ８に進み、更新データが無いと判定される場合には本ルーチンを終了する。
【０１１７】
ステップＳ８では、第１のグループＧＰ１の書込用データ（更新用データとも書する）ＤＵの作成処理が実行される。ここでは、１つの書込単位（ユニット）（たとえばＵＡｉ）の容量（たとえば８バイト）に収まるように、出来るだけ多数の更新データ（周期間隔ＴＭにおける複数の更新データ）が纏められて書込用データＤＵが作成される。
【０１１８】
図２５は、ステップＳ８の詳細動作を示すフローチャートである。図２５に示されるようにして、第１のグループＧＰ１に関する書込用データＤＵが作成される。
【０１１９】
まず、ステップＳ８１においては、初期設定処理が実行される。具体的には、ステップＳ６（ステップＳ６２，Ｓ６３）で特定された更新データが注目データに設定される。詳細には、ステップＳ６（ステップＳ６２，Ｓ６３）で特定された更新データの識別番号Ｋが、注目データに関する識別番号ｋとして初期設定される。また、書込用データＤＵもクリアされる。
【０１２０】
次のステップＳ８２においては、識別番号ｋの更新データを書き込むためのデータサイズが算出され、さらにステップＳ８３においては識別番号ｋが、書込用データＤＵに収まるか否かが判定される。ここで、書込用データＤＵは、１つの書込単位のデータサイズ（例えば８バイト）を有する。
【０１２１】
ここでは、識別番号ｋ（＝Ｋ）の更新データは、１つ目の更新データであるため、書込用データＤＵに収まると判定される。次回以降のステップＳ８３においては、それまでに書込用データＤＵに追加されている更新データの合計データサイズと新たな識別番号ｋの更新データのデータサイズとの合計値ＳＺが、１つの書込単位のデータサイズ（例えば８バイト）以下であるとの条件が充足される場合には、当該新たな識別番号ｋの更新データも書込用データＤＵに収まると判定される。一方、当該条件が充足されない場合には、当該新たな識別番号ｋの更新データは書込用データＤＵに収まらないと判定される。
【０１２２】
新たな識別番号ｋの更新データが書込用データＤＵに収まらないとステップＳ８３で判定される場合には、ステップＳ８の処理を終了し、ステップＳ９（図２１）に進む。なお、この場合には、それまでに収容（追加）された１又は複数の更新データを有する書込用データＤＵを用いて、更新データの書込処理が実行される（ステップＳ９）。
【０１２３】
新たな識別番号ｋの更新データが書込用データＤＵに収まると判定される場合には、ステップＳ８３からステップＳ８４に進み、新たな識別番号ｋの更新データが書込用データＤＵに追加される。また、ステップＳ８５において、当該書込用データＤＵに他の更新データを収容する余地が未だ残っているか否かが判定される。
【０１２４】
書込用データＤＵの残り容量が僅かであり、書込用データＤＵに他の更新データを収容する余地が残っていない場合には、ステップＳ８の処理を終了し、ステップＳ９に進む。
【０１２５】
一方、書込用データＤＵに他の更新データを収容する余地がまだ残っている場合には、ステップＳ８６以降に進み、他の更新データを検索する。具体的には、ステップＳ８６で識別番号ｋがインクリメントされ、注目データ（識別番号ｋのデータ）が更新されているか否かがさらに判定される（ステップＳ８７）。
【０１２６】
識別番号ｋに係る注目データが更新されていると判定される場合には、ステップＳ８７からステップＳ８２以降に進み、上記の同様の動作が繰り返される。なお、その場合、特にステップＳ８３では、上述したように、上記合計値ＳＺが、書込単位のデータサイズ（例えば８バイト）以下であるとの条件が充足されるか否かに基づいて、新たな識別番号ｋの更新データも書込用データＤＵに収まるか否かが判定される。
【０１２７】
識別番号ｋに係る注目データが更新されていないと判定される場合には、ステップＳ８７からステップＳ８８に進む。ステップＳ８８では識別番号ｋが第１のグループＧＰ１の終端識別番号（「２０２」）に到達したか否かが判定される。識別番号ｋが当該終端識別番号に到達していない場合には、再びステップＳ８６に戻り、同様の動作が繰り返される。一方、識別番号ｋが当該終端識別番号に到達している場合には、ステップＳ８の処理を終了しステップＳ９に進む。
【０１２８】
ステップＳ８では、このようにして、単一の書込単位（ユニット）のデータサイズを有する書込用データＤＵ内に、出来るだけ多数の第１のデータＤ１が格納される。
【０１２９】
そして、ステップＳ９においては、第１のグループＧＰ１の書込用データＤＵを用いて、第１のグループＧＰ１の１つ又は複数の更新データの書込処理（バックアップ処理）が実行される。特に、書込用データＤＵが複数の更新データを含む場合には、更新データの書込処理が纏めて実行される。
【０１３０】
その後、同様の動作が繰り返し実行されることによって、第１のグループＧＰ１の書込用データＤＵが順次作成され、当該書込用データＤＵに含まれる更新データがＲＡＭ１２からフラッシュメモリ１５へとコピーされバックアップされる。
【０１３１】
たとえば、図１１に示すように、データ識別番号「１５」のデータ（「ドラムカートリッジの回転時間カウンタ」）と、データ識別番号「１６」のデータ（「現像印字枚数カウンタ」）とが、纏めて、フラッシュメモリ１５のブロックＢａのユニットＵＡ１等に書き込まれる。
【０１３２】
このような動作について、図２６を参照しながら説明する。図２６は、データ識別番号「１５」のデータとデータ識別番号「１６」のデータとが、それぞれ、時系列で変化する様子を示す図である。図２６において、データ識別番号「１５」のデータは、比較的上側に三段に亘って表示されており、その最上段には、各時刻におけるＲＡＭ１２の内部サブカウンタのデータ値が左から右へと時間経過に従って示されており、中段には、各時刻におけるＲＡＭ１２内のコピー用のデータ値が左から右へと時間経過に従って示されている。また、最下段には、各時刻におけるフラッシュメモリ１５（ブロックＢａ，Ｂｂ）内の当該データの各値が左から右へと時間経過に従って示されている。同様にして、データ識別番号「１６」のデータは、比較的下側に三段に亘って表示されている。
【０１３３】
ここでは、ＲＡＭ１２の内部サブカウンタは、実際の１回転に応じて１つカウントアップし、ＲＡＭ１２内のコピー用のデータ（フラッシュメモリ１５へのバックアップ用の「ドラムカートリッジの回転時間カウンタ」）（図２６の中段参照）は、実際の１０回のカウントごとに１つインクリメントされるものとする。また、「ドラムカートリッジの回転時間カウンタ」のフラッシュメモリ１５へのバックアップタイミングは、時刻Ｔ３２，Ｔ４２等であり、比較的長期（例えば３０秒）の周期的タイミングである。ドラムカートリッジの実際の回転周期（すなわち最小更新周期）が２．５秒であるとすると、１０回転に要する最小時間（すなわちＲＡＭ１２上でのデータの最小更新周期）は２５秒である。そして、「ドラムカートリッジの回転時間カウンタ」に関する比較的長期の周期的タイミングは、ＲＡＭ１２上でのデータの最小更新周期（例えば２５秒）よりも大きな所定周期ＴＭ（例えば３０秒）を有している。たとえば、３０秒の周期は、連続１２回転の計数に要する時間に相当する。
【０１３４】
図２６の左から５マス目においては、上側３段のうち、最上段には「９」と記載され且つ中段には「１５」と記述されている。これは、１５９回目のカウントが実際に行われたことに応じて、ＲＡＭ１２の内部サブカウンタには「９」が記憶され、ＲＡＭ１２のコピー用のカウンタには「１５」が記憶されていることを示している。また、図２６の左から５マス目においては、上側３段のうちの最下段にも「１５」が記述され、フラッシュメモリ１５には「ドラムカートリッジの回転時間カウンタ」の値として「１５」が記憶されていることが示されている。
【０１３５】
その後、１６０回目のカウントが行われると、時刻Ｔ３０においてＲＡＭ１２の内部サブカウンタには「０」が記憶され、ＲＡＭ１２のコピー用カウンタには「１６」が記憶される（図２６の左から６マス目参照）。
【０１３６】
ここにおいて、フラッシュメモリ１５の「ドラムカートリッジの回転時間カウンタ」の値をも直ちに「１６」に更新することも考えられるが、この実施形態においては、この時点ではフラッシュメモリ１５内の当該カウンタ値を未だ更新しない。カウンタ値の更新は、原則として所定周期ＴＭのタイミングで行われる。
【０１３７】
具体的には、図２１のルーチンにおいて、そのステップＳ４で書込タイミングの到来が判定されない場合には、バックアップ動作は行われない。たとえば、時刻Ｔ３０の直後から時刻Ｔ３２（後述）の直前までの期間に微小時間間隔ΔＴで複数回実行される上記ルーチン（図２１参照）においては、そのステップＳ４で書込タイミングの到来が判定されず、データ書込処理（データ更新処理）は実行されない。
【０１３８】
一方、書込タイミングの到来がステップＳ４で判定され且つ更新データがステップＳ６で検出されると、ステップＳ８，Ｓ９における動作が実行され、バックアップ動作が実現される。たとえば、時刻Ｔ３２において、フラッシュメモリ１５の「ドラムカートリッジの回転時間カウンタ」の値が「１６」に更新される。なお、時刻Ｔ３２は、その前のバックアップ時刻Ｔ２２（不図示）から所定周期ＴＭ（たとえば３０秒）が経過した時刻である。
【０１３９】
同様に、１７０回目のカウントが行われると、時刻Ｔ４０においてＲＡＭ１２の内部サブカウンタには「０」が記憶され、ＲＡＭ１２のコピー用カウンタには「１７」が記憶される（図２６の右から８マス目参照）。また、この時点では、フラッシュメモリ１５内のカウンタ値は「１６」のままである。
【０１４０】
そして、次の書込タイミングの到来がステップＳ４で判定され且つ更新データがステップＳ６で検出されると、ステップＳ８，Ｓ９における動作が実行され、バックアップ動作が実現される。たとえば、時刻Ｔ４２において、フラッシュメモリ１５の「ドラムカートリッジの回転時間カウンタ」の値が「１７」に更新される。なお、時刻Ｔ４２は、その前のバックアップ時刻Ｔ３２から所定周期ＴＭ（たとえば３０秒）が経過した時刻である。
【０１４１】
以上のように、この実施形態では、第２のデータＤ２はＲＡＭ１２上でのデータ更新時において直ちにフラッシュメモリ１５でも更新される一方で、第１のデータＤ１は、ＲＡＭ１２上でのデータ更新頻度よりも低い頻度で、フラッシュメモリ１５に書き込まれる。
【０１４２】
具体的には、図２６においては、第１のデータＤ１のフラッシュメモリ１５への書込タイミングは、時刻Ｔ３２，Ｔ４２等であり、比較的長期（例えば３０秒）の周期的タイミングである。当該比較的長期の周期的タイミングは、ＲＡＭ１２上での第１のデータＤ１の最小更新周期（例えば２５秒）よりも大きな所定周期（例えば３０秒）を有している。したがって、第１のデータＤ１（より詳細には、第１のグループＧＰ１に属する複数のデータのうち更新が検出されたデータ）は、ＲＡＭ１２上での当該第１のデータＤ１の更新頻度よりも低い頻度で不揮発性メモリに書き込まれるので、不揮発性メモリへの書込回数を抑制して、不揮発性メモリの高寿命化を図ることが可能である。
【０１４３】
特に、図２６においては、時刻Ｔ３２において、フラッシュメモリ１５における「現像印字枚数カウンタ」の値が「１９」に更新され、次の更新時刻Ｔ４２において、フラッシュメモリ１５における「現像印字枚数カウンタ」の値が「２１」に更新される。すなわち、ＲＡＭ１２上の「現像印字枚数カウンタ」が「２０」であるときにはバックアップ動作が行われない。そのため、比較的頻繁に更新されるカウンタ値のバックアップ動作に関して、バックアップ用の書込回数を抑制することが可能である。
【０１４４】
したがって、第１のデータＤ１に関しては、ＲＡＭ１２上でのデータの更新頻度が高い場合であっても、フラッシュメモリ１５への書込回数を抑制してフラッシュメモリ１５の高寿命化を図ることが可能である。換言すれば、フラッシュメモリ１５への書込動作は、データ更新時に直ちに行われるのではなく、比較的長周期の書き込みタイミングで行われるため、データの書込回数を抑制することができる。
【０１４５】
一方、第２のデータＤ２は、ＲＡＭ１２上でのデータ更新時において直ちにフラッシュメモリ１５上でも更新されるので、より確実に更新される。
【０１４６】
このように、各データの特性に応じて複数のデータを２つのグループＧＰ１，ＧＰ２に分類し、第２のグループＧＰ２に帰属するデータＤ２に関しては確実な更新を優先し、第１のグループＧＰ１に帰属するデータＤ１に関しては書込回数（バックアップ回数）を抑制することが可能である。すなわち、データの特性を考慮して、更新の確実化とバックアップ回数の抑制との両立を図ることが可能である。
【０１４７】
また、上記実施形態においては、第１のグループＧＰ１に帰属する複数の第１のデータＤ１（複数の個別データ）であって更新すべきもの（前回の値と異なる値を有するもの）が、一のタイミングで纏めて更新される。端的に言えば、書込タイミングにおいて、出来るだけ多数のデータが纏めて書き込まれる。たとえば、時刻Ｔ３２においてはデータ識別番号「１６」のデータ（「現像印字枚数カウンタ」）もが更新データとして検出され（ステップＳ８，Ｓ８７）、データ識別番号「１５」のデータ（「ドラムカートリッジの回転時間カウンタ」）とともにフラッシュメモリ１５に書き込まれる。時刻Ｔ４２においても同様に、データ識別番号「１５」のデータとデータ識別番号「１６」のデータとが同時に更新される。
【０１４８】
そのため、複数の第１のデータＤ１がそれぞれの更新タイミングで個別に更新される場合に比べて、書込回数が抑制され効率的な更新動作が実現される。したがって、第１のデータＤ１のＲＡＭ１２上での更新頻度が高い場合であっても、フラッシュメモリ１５への書込回数をさらに抑制して、フラッシュメモリ１５の更なる高寿命化を図ることが可能である。
【０１４９】
また特に、複数の第１のデータＤ１は、同一書込単位（ユニット）内に纏めて書き込まれるため、その書込動作は非常に効率的である。
【０１５０】
また、上記実施形態においては、比較的長周期の周期的タイミングのみならず、特定イベントの発生タイミングにおいても第１のデータＤ１がフラッシュメモリ１５に書き込まれ得る。したがって、周期的タイミング以外においてもフラッシュメモリ１５への書込動作が可能であり、フラッシュメモリ１５への第１のデータＤ１の書き込みタイミングをより柔軟に制御することができる。
【０１５１】
たとえば、「電源オフ（詳細には電源オフボタンの押下）」を特定イベントとして採用することによれば、周期的タイミング以外にも、電源がオフされる直前のタイミングで、各種のデータをフラッシュメモリ１５にバックアップすることが可能である。
【０１５２】
また特に、上記実施形態においては、データ利用可能性「低」のデータであるデータＤＴ３が第１のデータＤ１に含まれており、データＤＴ３が、特定イベント発生時においてもフラッシュメモリ１５に書き込まれ得る。
【０１５３】
たとえば、「安定化処理の開始」および「安定化処理の終了」を特定イベントとして採用することによれば、周期的タイミング以外にも、安定化処理の開始時点と安定化処理の終了時点とにおいて、各種のデータ（例えば、「安定化完了情報（フラグ）」と安定化処理に関連する他のデータとを含む、データＤＴ３の一部）をフラッシュメモリ１５にバックアップすることが可能である。
【０１５４】
これによれば、データ利用可能性「低」のデータでありデータ更新の確実性（換言すれば、バックアップデータにおける正確性）を要するデータＤＴ３が、特定イベント発生時においてもバックアップされ得る。したがって、バックアップデータにおける正確性を向上させることができる。
【０１５５】
さらに、上記実施形態においては、４種類のデータＤＴ１〜ＤＴ４のうちデータＤＴ１〜ＤＴ３が第１のグループＧＰ１に帰属し、「低頻度書込」でフラッシュメモリ１５にバックアップされる。一方、４種類のデータＤＴ１〜ＤＴ４のうち調整値データＤＴ４のみが、第２のグループＧＰ２に帰属し、「逐次書込」でフラッシュメモリ１５にバックアップされる。したがって、比較的少数のデータのみが「逐次書込」でバックアップされるので、フラッシュメモリ１５への書き込み回数を抑制することが可能である。
【０１５６】
なお、ここでは、ＲＡＭ１２のコピー用のカウンタ（中段）が実際の１０回のカウントごとに１つインクリメントされる場合を例示しているが、これに限定されず、ＲＡＭ１２のコピー用のカウンタ（中段）が実際の１回のカウントごとに１つインクリメントされるようにしてもよい。この場合には、ＲＡＭ１２上でのデータの最小更新周期は１／１０に低減され非常に小さな値（例えば「２．５秒」）になるため、周期期間ＴＭは、比較的小さな値に設定されるようにしてもよい。ただし、周期期間ＴＭは、ＲＡＭ１２上でのデータの最小更新周期（例えば２．５秒）よりも大きな値（たとえば、１０秒）であることが好ましい。
【０１５７】
＜５．周期変更例＞
また、上記では、周期間隔ＴＭが固定値である場合を例示したが、本発明はこれに限定されず、周期間隔（所定周期）ＴＭが各特性量に応じて変更されるようにしてもよい。
【０１５８】
たとえば、周期間隔ＴＭは、画像形成装置１の稼働状態に応じて変更されるようにしてもよい。具体的には、画像形成装置１がプリント中である場合には周期間隔ＴＭは比較的大きな値（例えば２分）に設定され、画像形成装置１が待機中である場合には周期間隔ＴＭは比較的小さな値（例えば３０秒）に設定されるようにしてもよい。プリント中においては、待機中に比べて電源ボタンをオフされる可能性が小さいため、周期間隔ＴＭを比較的大きくしても影響が比較的小さい。なお、このような改変例は、上述の特定イベントとして「電源オフ」が採用されない場合に特に有用である。
【０１５９】
また、周期間隔ＴＭは、フラッシュメモリ１５の寿命余裕に応じて変更されるようにしてもよい。具体的には、画像形成装置１の残りの機械寿命期間に対して、フラッシュメモリ１５の残りの寿命期間（イレース回数から算出される残りの寿命期間）が相対的に余裕を有している場合には、周期間隔ＴＭは比較的小さな値に変更されるようにしてもよい。これによれば、第１のデータＤ１を比較的高頻度にバックアップすることが可能であり、更新データをバックアップし損ねることを抑制することができる。
【０１６０】
詳細には、フラッシュメモリ１５の残りの寿命期間と画像形成装置１の残りの機械寿命期間との比を「メモリ寿命余裕度」として算出し、当該余裕度の値に応じて（詳細には当該値の大小に応じて）周期間隔ＴＭを設定するようにしてもよい。より詳細には、図２８に示すように、当該余裕度が大きくなる（Ｍ１→Ｍ５）につれて、周期間隔ＴＭが段階的に小さくなる（ＴＭ５→ＴＭ１）ように設定されるようにしてもよい。
【０１６１】
また、周期間隔ＴＭは、画像形成装置１におけるフラッシュメモリ１５への実際の書込頻度（たとえば、１日あたりの実際の書込回数（平均値等））に応じて（詳細には、当該書込頻度の大小）変更されるようにしてもよい。具体的には、１日あたりの実際の書込回数が所定値よりも多い場合には、周期間隔ＴＭは比較的大きな値に設定されればよい。これによれば、バックアップに関する周期間隔を広げることによって、フラッシュメモリ１５の寿命を延ばすことができる。また、図２９に示すように、１日あたりの実際の書込回数が大きくなる（Ｎ１→Ｎ５）につれて、周期間隔ＴＭが段階的に大きくなる（ＴＭ１→ＴＭ５）ように設定されるようにしてもよい。
【０１６２】
また、周期間隔ＴＭは、フラッシュメモリ１５の書込中ブロックに対するデータ充填率に応じて（詳細には、当該データ充填率の大小に応じて）変更されるようにしてもよい。たとえば、第１のグループＧＰ１用のブロックＢａ，Ｂｂのうちの書込中ブロック（たとえばＢａ）のデータ充填率が大きくなるにつれて、周期間隔ＴＭが比較的大きな値に設定されるようにしてもよい。周期間隔ＴＭを大きくすることによって、フラッシュメモリ１５の寿命を延ばすことが可能である。また、書込中ブロックのデータ充填率が比較的大きい場合には、前回バックアップされた同種のデータが残留している可能性が高い。すなわち、利用可能なデータが書込中ブロックに残留している可能性が高い。そのため、不意の事態（停電等）によりデータのバックアップ動作が失敗したときでも、書込中ブロック内に残留しているデータを用いて適切な処理を行うことが可能である。
【０１６３】
また、周期間隔ＴＭは、画像形成装置１の印字速度に応じて（詳細には、当該印字速度大小に応じて）変更されるようにしてもよい。より詳細には、画像形成装置１の印字速度が比較的大きい（速い）場合には、周期間隔ＴＭは比較的小さな値に設定されるようにしてもよい。逆に言えば、画像形成装置１の印字速度が比較的小さい（遅い）場合には、周期間隔ＴＭは比較的大きな値に設定されるようにしてもよい。これによれば、フラッシュメモリ１５の寿命を延ばすことが可能である。
【０１６４】
＜６．他の分類例＞
また、上記においては、４種類のデータＤＴ１〜ＤＴ４のうち、調整値データＤＴ４が第２のグループＧＰ２に分類され、その他のデータＤＴ１〜ＤＴ３が第１のグループＧＰ１に分類される場合を例示した（図３参照）。しかしながら、本発明はこれに限定されない。
【０１６５】
たとえば、図４に示すように、４種類のデータＤＴ１〜ＤＴ４のうち、調整値データＤＴ４に加えて機械状態参照データＤＴ３もが第２のグループＧＰ２に分類され、その他のデータＤＴ１，ＤＴ２が第１のグループＧＰ１に分類されるようにしてもよい。換言すれば、「未更新時のデータ利用可能性が所定程度よりも低い（小さい）データ」の全て（データＤＴ３，ＤＴ４）が第２のグループＧＰ２に分類されるようにしてもよい。
【０１６６】
これによれば、データ更新の確実性（換言すれば、バックアップデータにおける正確性）を要するデータＤＴ３，ＤＴ４（すなわち、データ利用可能性「低」のデータ）が、グループＧＰ２に分類され、当該データＤＴ３，ＤＴ４がＲＡＭ１２上でのデータ更新時において直ちに不揮発性メモリ上でも更新される。そのため、バックアップデータにおける正確性を確保することができる。
【０１６７】
特に、図４においては、データ利用可能性「低」の全データＤＴ３，ＤＴ４が第２のグループＧＰ２に帰属し、「逐次書込」でフラッシュメモリ１５にバックアップされる。そのため、特定イベントの発生タイミングでの書込動作を要さずとも、データ利用可能性「低」のデータＤＴ３，ＤＴ４が確実にバックアップされる。
【０１６８】
なお、データ利用可能性「低」のデータ（未更新時のデータ利用可能性が所定程度よりも低いデータ）の全てが第２のグループＧＰ２に分類されることを必ずしも要さず、上記第１実施形態のように、データ利用可能性「低」の一部（データＤＴ３）が第１のグループＧＰ１に分類されるようにしてもよい。ただし、この場合には、上述のように、特定イベントの発生タイミングでの書込動作をも実行し、データ利用可能性「低」のデータＤＴ３が，より確実にバックアップされるようにすることが好ましい。
【０１６９】
また、図６に示すように、４種類のデータＤＴ１〜ＤＴ４のうち、調整値データＤＴ４と機械状態参照データＤＴ３と低頻度カウントデータＤＴ２とが第２のグループＧＰ２に分類され、高頻度カウントデータＤＴ１のみが第１のグループＧＰ１に分類されるようにしてもよい。換言すれば、データ利用可能性「低」のデータ（未更新時のデータ利用可能性が所定程度よりも低いデータ）に加えて、データ更新頻度「低」のデータ（データ更新頻度が所定程度よりも低いデータ）もが第２のグループＧＰ２に分類されるようにしてもよい。そして、データ更新頻度「高」且つデータ利用可能性「高」のデータである「高頻度カウントデータＤＴ１」のみが、第１のグループＧＰ１に分類されるようにしてもよい。
【０１７０】
これによれば、図４の場合と同様に、データ利用可能性「低」の全データＤＴ３，ＤＴ４が第２のグループＧＰ２に帰属し、「逐次書込」でフラッシュメモリ１５にバックアップされる。そのため、特定イベントの発生タイミングでの書込動作を要さずとも、データ利用可能性「低」のデータＤＴ３，ＤＴ４が確実にバックアップされる。
【０１７１】
あるいは、図５に示すように、４種類のデータＤＴ１〜ＤＴ４のうち、調整値データＤＴ４と低頻度カウントデータＤＴ２とが第２のグループＧＰ２に分類され、その他のデータＤＴ１，ＤＴ３が第１のグループＧＰ１に分類されるようにしてもよい。換言すれば、データ更新頻度「低」のデータＤＴ２，ＤＴ４が第２のグループＧＰ２に分類され、且つ、データ利用可能性「高」のデータＤ１，ＤＴ３が第１のグループＧＰ１に分類されるようにしてもよい。特に、データ利用可能性「低」の全データＤＴ３，ＤＴ４のうち一部のデータＤＴ４が第２のグループＧＰ２に含まれるため、少なくともデータＤＴ４に関しては、より確実にバックアップすることができる。
【０１７２】
＜７．その他＞
以上、この発明の実施の形態等について説明したが、この発明は上記説明した内容のものに限定されるものではない。
【０１７３】
たとえば、上記実施形態においては、図２１のルーチンが１回実行される毎に、第２のグループＧＰ２における更新データが１つずつフラッシュメモリ１５にバックアップされる場合を例示している。しかしながら、本発明は、これに限定されず、図２１のルーチンが１回実行される毎に、第２のグループＧＰ２における複数の更新データが纏めて更新されるようにしてもよい。詳細には、図２１のルーチンが１回実行される期間内において、全ての更新データがフラッシュメモリ１５にバックアップされるまでステップＳ１〜Ｓ３の処理が繰り返されるようにしてもよい。
【０１７４】
また、上記実施形態においては、図２１のルーチンが１回実行される毎に、第１のグループＧＰ１の１つ又は複数のデータが単一の書込単位（ユニット）内に纏められ（ステップＳ８）、ステップＳ９において単一の書込単位（ユニット）に係る書込用データＤＵがフラッシュメモリ１５に書き込まれる場合を例示している。しかしながら、本発明は、これに限定されない。たとえば、図２１のルーチンが１回実行される毎に、第１のグループＧＰ１のデータが１つの書込単位（ユニット）（たとえばＵＡｉ）ごとに纏められた複数のユニットに亘る書込用データＤＵが作成され（ステップＳ８）、ステップＳ９において当該複数のユニットに亘る書込用データＤＵが纏めて書き込まれるようにしてもよい。
【符号の説明】
【０１７５】
１  ＭＦＰ（画像形成装置）
９  コントローラ
１１  ＣＰＵ
１２  ＲＡＭ
１３  ＲＯＭ
１５  フラッシュメモリ
Ｂａ，Ｂｂ，Ｂｃ，Ｂｄ  ブロック
ＤＴ１  高頻度カウントデータ
ＤＴ２  低頻度カウントデータ
ＤＴ３  機械状態参照データ
ＤＴ４  調整値データ
ＧＰ１，ＧＰ２  グループ
ＵＡｉ  ユニット
ＴＭ  周期間隔（周期）
【図１】
2012053255.tif 000003
【図２】
2012053255.tif 000004
【図３】
2012053255.tif 000005
【図４】
2012053255.tif 000006
【図５】
2012053255.tif 000007
【図６】
2012053255.tif 000008
【図７】
2012053255.tif 000009
【図８】
2012053255.tif 000010
【図９】
2012053255.tif 000011
【図１０】
2012053255.tif 000012
【図１１】
2012053255.tif 000013
【図１２】
2012053255.tif 000014
【図１３】
2012053255.tif 000015
【図１４】
2012053255.tif 000016
【図１５】
2012053255.tif 000017
【図１６】
2012053255.tif 000018
【図１７】
2012053255.tif 000019
【図１８】
2012053255.tif 000020
【図１９】
2012053255.tif 000021
【図２０】
2012053255.tif 000022
【図２１】
2012053255.tif 000023
【図２２】
2012053255.tif 000024
【図２３】
2012053255.tif 000025
【図２４】
2012053255.tif 000026
【図２５】
2012053255.tif 000027
【図２６】
2012053255.tif 000028
【図２７】
2012053255.tif 000029
【図２８】
2012053255.tif 000030
【図２９】
2012053255.tif 000031