(57)【要約】【課題】  ＥＥＰＲＯＭ等の不揮発性メモリへのデータの書込回数を効率的に減少させ、寿命を延長させる。【解決手段】  メモリ制御装置１の制御部１１は、不揮発性メモリ２に書き込むべきデータを揮発性メモリ１２のデータ領域に一旦書き込む。このとき制御部１１は、書き込んだデータを示すＩＤを揮発性メモリ１２のＩＤ領域に書き込む。不揮発性メモリ２にデータを書き込むとき、制御部１１は、ＩＤ領域に登録されたＩＤに基づいて、データ領域に書き込まれたデータから同一のブロックに書き込まれるデータを特定し、このとき特定されたデータを不揮発性メモリ２に一括して書き込む。【選択図】    図１
2007034431.tif 000002
【特許請求の範囲】
【請求項１】
記憶領域がブロック単位で区分されている不揮発性メモリに対して、揮発性メモリを介してデータの読み出しまたは書き込みを行うメモリ制御装置において、
前記不揮発性メモリの所定のブロックに書き込むべきデータを、当該ブロックを示す識別情報とともに前記揮発性メモリに書き込む第１の書込手段と、
前記第１の書込手段により書き込まれた識別情報を用いて、前記揮発性メモリに書き込まれたデータの中から同一のブロックに書き込まれるデータを特定する検索手段と、
前記検索手段により特定されたデータを、その書き込むべきブロックに一括して書き込む第２の書込手段と
を備えることを特徴とするメモリ制御装置。
【請求項２】
前記検索手段により特定されたデータを、そのデータが書き込まれるべきブロックである被書込ブロックに書き込まれているデータと比較し、両者に差違があるか否かを判断する判断手段を備え、
前記第２の書込手段は、前記判断手段により両者に差違がないと判断された場合には、前記被書込ブロックに対する書き込みを行わない
ことを特徴とする請求項１記載のメモリ制御装置。
【請求項３】
決められた処理の発生を検知する検知手段を備え、
前記第２の書込手段は、前記検知手段が前記処理の発生を検知した場合にデータの書き込みを行う
ことを特徴とする請求項１記載のメモリ制御装置。
【請求項４】
前記検知手段は、
電源の遮断を前記決められた処理として検知する
ことを特徴とする請求項３記載のメモリ制御装置。
【請求項５】
前記検知手段は、
接続される上位装置が行う電力消費を抑えるための処理を前記決められた処理として検知する
ことを特徴とする請求項３記載のメモリ制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性メモリに効率良くデータを書き込む技術に関する。
【背景技術】
【０００２】
不揮発性メモリのなかには、データが繰り返し書き込まれることによって記憶領域の値が不定となってしまうものがある。この種のメモリは、メーカーによって書込回数の制限値が設けられており、その値は、例えばＥＥＰＲＯＭ（Electronically Erasable and Programmable Read Only Memory）の場合は１０万〜１００万回程度である。ＥＥＰＲＯＭにおいては所定のサイズの記憶領域毎にブロックが形成されており、このブロック毎に上述の制限値が設定されている。
【０００３】
このような不揮発性メモリをコンピュータに用いる場合には、不揮発性メモリの寿命を延長すべく、不揮発性メモリへの書込処理の回数が少なくなるような制御を行っている。例えば、特許文献１に記載の技術においては、不揮発性メモリ（不揮発メモリ回路部２２）に書き込むべきデータを揮発性メモリ（揮発メモリ回路部２１）に記憶させながら更新していき、電源オフ時に揮発性メモリ内のデータを不揮発性メモリに一括で書き込む処理を行うことによって、不揮発性メモリへの書込回数を減らしている。また、特許文献２に記載の技術においては、モータの駆動回数や光源の点灯時間等を計数値として不揮発性メモリ（ＥＥＰＲＯＭ）に書き込む際に、本来１回カウントする度に「１」を書き込むところを、ｎ回カウントしたら１回「ｎ」を書き込むという処理を行うことによって、不揮発性メモリへの書込回数を減らしている。
【特許文献１】特開平８−２４１５９９号公報
【特許文献２】特開２０００−３３９５０６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、上述の特許文献１および２に記載された技術には、以下のような不都合が認められる。特許文献１に記載の技術の場合、電源オフ時に一括して書き込むとはいえ、１個のデータを書き込むには１回の書込処理を必要としていた。すなわち、ｘ個のデータを書き込もうとすれば、結局ｘ回の書込処理が発生することとなり、書込回数を効率的に減らしているとは言えなかった。
【０００５】
また、特許文献２に記載の技術の場合にも、上述の特許文献１と同様の不都合が生じ得る。加えて、特許文献２に記載の技術の場合は、書込処理を間引くことによって書込回数を減らしているに過ぎないため、本来書き込まれているべき値と実際に書き込まれている値との間に誤差が生じることもあった。
【０００６】
本発明は上述の事情に鑑みてなされたものであり、その目的は、不揮発性メモリへのデータの書込回数を効率的に減少させ、その寿命を延長させる技術を提供することにある。
【課題を解決するための手段】
【０００７】
上述の目的を達成するために、本発明は、記憶領域がブロック単位で区分されている不揮発性メモリに対して、揮発性メモリを介してデータの読み出しまたは書き込みを行うメモリ制御装置において、前記不揮発性メモリの所定のブロックに書き込むべきデータを、当該ブロックを示す識別情報とともに前記揮発性メモリに書き込む第１の書込手段と、前記第１の書込手段により書き込まれた識別情報を用いて、前記揮発性メモリに書き込まれたデータの中から同一のブロックに書き込まれるデータを特定する検索手段と、前記検索手段により特定されたデータを、その書き込むべきブロックに一括して書き込む第２の書込手段とを備えることを特徴としている。
【０００８】
かかるメモリ制御装置によれば、第１の書込手段が不揮発性メモリに書き込むべきデータを一旦揮発性メモリに書き込み、この揮発性メモリに書き込まれたデータの中から、検索手段が同一のブロックに書き込まれるデータを特定する。このとき特定された１ないし複数のデータを第２の書込手段が一括して不揮発性メモリに書き込むことによって、同一のブロックに書き込まれるデータを、その個数によらず１回の書込処理で書き込むことができる。
【０００９】
本発明において、メモリ制御装置は、前記検索手段により特定されたデータを、そのデータが書き込まれるべきブロックである被書込ブロックに書き込まれているデータと比較し、両者に差違があるか否かを判断する判断手段を備え、前記第２の書込手段は、前記判断手段により両者に差違がないと判断された場合には、前記被書込ブロックに対する書き込みを行わない構成を有していると、より望ましい。このようにすれば、書き込みの前後において差違が生じるブロックだけ書込処理が行われる。
【００１０】
また、本発明において、メモリ制御装置は、決められた処理の発生を検知する検知手段を備え、前記第２の書込手段は、前記検知手段が前記処理の発生を検知した場合にデータの書き込みを行う構成を有していてもよい。この場合において、「決められた処理」とは、例えば電源を遮断する処理や、接続される上位装置が節電モードを開始する処理のことである。もちろん、この指示は、ユーザにより直接入力されるものであってもよい。
【発明の効果】
【００１１】
以上のように、本発明によれば、不揮発性メモリへのデータの書込回数を効率的に減少させ、その寿命を延長させることが可能となる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明の実施の形態について、図面を参照しつつ説明する。
［１．構成］
図１は、本発明の一実施形態に係るデータ処理装置１００を示したブロック図である。データ処理装置１００は、例えば電子写真方式の画像形成装置に搭載され、不揮発性メモリ２に対するデータの読み書きを制御するものである。このデータ処理装置１００は、メモリ制御装置１と、不揮発性メモリ２と、ＡＳＩＣ（Application Specific Integrated Circuit）３とに大別される。
【００１３】
メモリ制御装置１は、制御部１１と揮発性メモリ１２とを備える。制御部１１は例えばＣＰＵ（Central Processing Unit）であり、図示せぬ所定のプログラムを実行することによってデータ処理装置１００におけるデータの読み書きを制御する。揮発性メモリ１２は例えばＲＡＭ（Random Access Memory）であり、制御部１１のワーキングエリアとして利用される。揮発性メモリ１２の一部は、「データ領域」または「ＩＤ領域」として利用される。データ領域には不揮発性メモリ２に記憶されたデータが書き込まれ、ＩＤ領域には不揮発性メモリ２に書き込むべきデータを識別するＩＤが書き込まれる。
【００１４】
なお、制御部１１は、スイッチＳＷおよびタイマＴＭの状態を検知することが可能なように構成されている。ここで、スイッチＳＷは画像形成装置等の上位装置のオン・オフを制御する操作子であり、制御部１１はこのスイッチＳＷがオフ状態となることで上位装置を停止させる。また、タイマＴＭは上位装置のアイドル時間、すなわちユーザにより動作を指示されないでいる時間を計測する計時装置である。ここでは、ユーザが上位装置に何も動作を指示しないでいる状態のことを「アイドル状態」という。
【００１５】
不揮発性メモリ２は例えばＥＥＰＲＯＭであり、上位装置がオフ状態となったときにもその記憶内容を保持している。不揮発性メモリ２に記憶されるデータは、例えば上位装置が電子写真方式の画像形成装置である場合、用紙上の画像位置を決定する「レジ調整値」や、トナーを転写させるための「転写電位」、あるいはトナーを用紙に定着させるための「定着温度」等の各種パラメータである。これらの値は、ユーザからの指示や周知のキャリブレーションの実行結果に基づいて書き換えが行われる。
【００１６】
ここで、不揮発性メモリ２のデータ構成を図２に例示する。同図において、各セルは１バイトの記憶領域を表しており、ｎバイトで１つのブロックを形成している。このようなブロックをｍ個設けることで、不揮発性メモリ２は全体で「ｍ×ｎ」バイトの記憶容量を有している。
【００１７】
また、不揮発性メモリ２は内部にカウンタを設けた構成となっている。ここでは、各ブロックの左端のセルがカウンタＢ１＿Ｃｎｔ〜Ｂｍ＿Ｃｎｔとして確保されており、該当するブロックにデータが書き込まれると、その値が「１」だけ増加する。これらのセルは専ら書込回数のカウンタとして用いられるため、上述した記憶容量には含まないものとする。
【００１８】
なお、以下においては、第ｉ行のセル全体を「ブロックＢｉ」といい、第ｉ行第ｊ列のセルを「セルＢｉＤｊ」という。すなわち、ブロック「Ｂ１」の左端のセルは「Ｂ１Ｄ１」、その右および下にあるセルはそれぞれ「Ｂ１Ｄ２」および「Ｂ２Ｄ１」、といった具合である。このような要領で、同図の右下端にあるセル「ＢｍＤｎ」まで定義する。また、ブロックＢｍを「最終ブロック」ともいう。
【００１９】
ＡＳＩＣ３は特定の画像処理を実行するための集積回路である。本実施形態においては、メモリ制御装置１の制御の下に不揮発性メモリ２に対して読み出しまたは書き込みの動作を行う。ＡＳＩＣ３は不揮発性メモリ２と有線または無線で接続されており、この不揮発性メモリ２とシリアル通信を行う。
【００２０】
［２．動作］
以上の構成のもと、データ処理装置１００はデータの読み出しおよび書き込みを行う。以下ではデータ処理装置１００の具体的な動作を説明するが、特許文献１および２に代表される従来のデータ書込処理との差違を明確にすべく、はじめにデータ処理装置１００を用いて従来の動作例を説明し、その後に本実施形態の動作例を２つ示す。
【００２１】
［２−１．従来例］
図３は、従来の書込処理を示したフローチャートである。同図に沿って説明すると、はじめにデータ処理装置１００の制御部１１は、ユーザにより電源が投入されてスイッチＳＷがオン状態となることを検知する（ステップＳ１０１）。スイッチＳＷのオン状態を検知すると、制御部１１は不揮発性メモリ２の全データを読み出して揮発性メモリ１２のデータ領域にコピーする（ステップＳ１０２）。
【００２２】
ここで、制御部１１は不揮発性メモリ２のデータに対して書き換え指示が発生するか否かを判断する（ステップＳ１０３）。不揮発性メモリ２のデータの書き換え指示は、上述したユーザからの指示やキャリブレーションの実行結果に基づいて生じる。データの書き換え指示が発生すると（ステップＳ１０３；ＹＥＳ）、制御部１１は揮発性メモリ１２のデータ領域から書き換え対象のデータを特定し、その値を書き込む（ステップＳ１０４）。なお、このとき書き込まれるデータは単一のセルに相当するデータとは限らず、複数のセルに相当するデータの場合もある。
【００２３】
揮発性メモリ１２にデータを書き込んだら、制御部１１はそのデータの位置を特定するためのＩＤを揮発性メモリ１２のＩＤ領域に登録する（ステップＳ１０５）。なお、ＩＤ領域に登録するＩＤは、そのデータの不揮発性メモリ２における位置の識別および特定が可能であればいかなる形式でもよいが、ここでは説明の便宜上、各セルの符号、すなわち「Ｂ１Ｄ１」〜「ＢｍＤｎ」をＩＤとして用いることとする。
【００２４】
続いて制御部１１は、揮発性メモリ１２のＩＤ領域にＩＤが登録されているか否かを判断する（ステップＳ１０６）。ＩＤ領域にＩＤが登録されている場合（ステップＳ１０６；ＹＥＳ）、これは不揮発性メモリ２に書き込むべきデータが存在していることを意味するので、制御部１１は不揮発性メモリ２にデータを書き込むための処理を行う。一方、ＩＤ領域にＩＤが登録されていない場合には（ステップＳ１０６；ＮＯ）、制御部１１は再び不揮発性メモリ２のデータの書き換え指示を待機する（ステップＳ１０３）。
【００２５】
不揮発性メモリ２にデータを書き込む処理は、次のような手順で行われる。まず、制御部１１は、ＩＤ領域に登録された先頭のＩＤに基づいて、不揮発性メモリ２から書き換え対象のデータをブロック単位で読み出す（ステップＳ１０７）。例えば、ＩＤ領域のＩＤがセル「Ｂ１Ｄ１」のデータを示している場合、制御部１１は不揮発性メモリ２のブロック「Ｂ１」のデータ全体を読み出す。このとき読み出されたブロックのことを、以下では「被書込ブロック」という。
【００２６】
続いて制御部１１は、読み出された被書込ブロックのデータを揮発性メモリ１２のデータ領域に記憶されたデータを用いて更新する（ステップＳ１０８）。このとき、制御部１１は被書込ブロック全体を一括して更新するが、ＩＤ領域に登録されたＩＤが示すデータ以外の部分については、更新の前後において値に変化はない。その後、制御部１１は読み出した被書込ブロックのカウンタに「１」を加算し（ステップＳ１０９）、更新されたデータを不揮発性メモリ２に書き込む（ステップＳ１１０）。
【００２７】
不揮発性メモリ２にデータを書き込んだら、制御部１１は書き込んだデータに相当するＩＤを揮発性メモリ１２のＩＤ領域から削除する（ステップＳ１１１）。そして、制御部１１は再度ＩＤの有無を判断し（ステップＳ１０６）、揮発性メモリ１２のＩＤ領域に登録されているＩＤがあれば上述したステップＳ１０７〜Ｓ１１１の処理を繰り返す。
【００２８】
以上のように、制御部１１はＩＤ領域に登録されたＩＤの有無を判断し、このＩＤに基づいて、書き換えられたデータを順次不揮発性メモリ２に書き込んでいく。以下では、この処理を具体的な例を挙げて説明する。ここでは、ＩＤ領域にセル「Ｂ１Ｄ１」、「Ｂ２Ｄ１」、「Ｂ１Ｄ３」、「Ｂ１Ｄｎ」のデータを示す４つのＩＤが順に登録されている場合を例に説明する（「Ｂ１Ｄ１」を先頭のＩＤとする）。また、このとき各セルに書き込まれるデータは、「Ｂ１Ｄ１」が「α」、「Ｂ２Ｄ１」が「β」、「Ｂ１Ｄ３」が「γ」、「Ｂ１Ｄｎ」が「δ」であるとし、各ブロックのカウンタはいずれも「０」であるとする。
【００２９】
図４は、上述の例にしたがって行われる書込処理を示した模式図である。まず、データ「α」が書き込まれる場合には、制御部１１はＩＤ領域のＩＤから書き込み対象のブロックを「Ｂ１」であると特定し、このデータを更新して不揮発性メモリ２に書き込む。その結果、図４（１）に示すように、セル「Ｂ１Ｄ１」は「α」に書き換えられ、ブロックＢ１のカウンタ「Ｂ１＿Ｃｎｔ」が増加して「１」となる。また、セル「Ｂ１Ｄ１」を示すＩＤがＩＤ領域から削除され、セル「Ｂ２Ｄ１」を示すＩＤが先頭、すなわち処理対象となる。
【００３０】
続いて、データ「β」が書き込まれる場合には、制御部１１はＩＤ領域のＩＤから書き込み対象のブロックを「Ｂ２」であると特定する。以下、図４（１）の場合と同様の要領で不揮発性メモリ２にデータが書き込まれる。その結果、図４（２）に示すように、セル「Ｂ２Ｄ１」は「β」に書き換えられ、ブロックＢ２のカウンタ「Ｂ２＿Ｃｎｔ」が増加して「１」となる。また、セル「Ｂ２Ｄ１」を示すＩＤがＩＤ領域から削除され、セル「Ｂ１Ｄ３」を示すＩＤが先頭となる。
【００３１】
続いて、データ「γ」が書き込まれる場合にも、制御部１１は同様に書き込み対象のブロックを特定し、データの書き込みを行う。その結果、図４（３）に示すように、セル「Ｂ１Ｄ３」は「γ」に書き換えられ、ブロックＢ１のカウンタ「Ｂ１＿Ｃｎｔ」が増加して「２」となる。さらに、データ「δ」が書き込まれると、セル「Ｂ１Ｄｎ」は図４（４）に示すように「δ」に書き換えられ、ブロックＢ１のカウンタ「Ｂ１＿Ｃｎｔ」は「３」に増加する。これらの処理が終了すると、揮発性メモリ１２のＩＤ領域は空となり、ＩＤが未登録の状態に戻る。
【００３２】
以上のように、従来例にしたがってデータα〜δを書き込む処理を行った場合、その回数は合計で４回となる。これらの処理の結果、ブロックＢ１のカウンタ「Ｂ１＿Ｃｎｔ」は処理前から「３」増加し、ブロックＢ２のカウンタ「Ｂ２＿Ｃｎｔ」は処理前から「１」増加する。
【００３３】
［２−２．動作例１］
続いて、本実施形態に係る第１の動作例を図５を用いて説明する。図５は、本動作例の書込処理を示したフローチャートである。なお、本動作例の書込処理においては、データ処理装置１００のオン状態を検知してから不揮発性メモリ２のデータを読み出すまでの手順（ステップＳ１０１〜Ｓ１０７）が上述の従来例と同様である。そこで、これらの処理についてはその説明を省略する。
【００３４】
本動作例において、制御部１１は、ステップＳ１０７において不揮発性メモリ２から書き換え対象のデータをブロック単位で読み出した後、揮発性メモリ１２のＩＤ領域の先頭にあるＩＤと同一のブロックに書き込まれるデータのＩＤを揮発性メモリ１２から検索する（ステップＳ２０１）。すなわち、ＩＤ領域の先頭のＩＤが示すデータがブロック「Ｂ１」に書き込まれるデータであった場合、制御部１１は揮発性メモリ１２のＩＤ領域から被書込ブロックが「Ｂ１」を示すＩＤを検索する。この検索結果に基づき、制御部１１は被書込ブロックが同一であるＩＤが他にも登録されているか判断する（ステップＳ２０２）。
【００３５】
被書込ブロックが同一であるＩＤが登録されている場合（ステップＳ２０２；ＹＥＳ）、制御部１１は読み出された被書込ブロックのデータをこれらのＩＤが示すデータを用いて更新する（ステップＳ２０３）。このとき、被書込ブロックが同一であるＩＤは複数存在するため、同時に複数のデータの値が変化する。データを更新した後、制御部１１は被書込ブロックのカウンタに「１」を加算し（ステップＳ２０４）、更新されたデータを不揮発性メモリ２に書き込む（ステップＳ２０７）。
【００３６】
一方、被書込ブロックが同一であるＩＤが登録されていない場合には（ステップＳ２０２；ＮＯ）、上述した従来例のステップＳ１０８、Ｓ１０９と同様の処理が行われる。すなわち、制御部１１は読み出された被書込ブロックのデータを揮発性メモリ１２のデータ領域に記憶されたデータを用いて更新する（ステップＳ２０５）。この更新の前後において値が変化するデータは、従来例と同様、ＩＤ領域に登録されたＩＤが示す１つのデータのみである。データを更新したら、制御部１１は被書込ブロックのカウンタに「１」を加算し（ステップＳ２０６）、更新されたデータを不揮発性メモリ２に書き込む（ステップＳ２０７）。
【００３７】
不揮発性メモリ２にデータを書き込んだら、制御部１１は書き込んだデータに相当するＩＤを揮発性メモリ１２のＩＤ領域から削除する（ステップＳ２０８）。このとき、上述のステップＳ２０２の判断が「ＹＥＳ」であった場合には、同一ブロックを示す複数のＩＤが同時に削除される。そして、制御部１１は再度ＩＤの有無を判断し（ステップＳ１０６）、その後の処理を繰り返す。
【００３８】
本動作例の書込処理は以上の通りである。続いて、このような書込処理を行った場合の動作を説明し、従来例との相違点を明らかにする。そのため、ここでは上述の従来例と同様に、ＩＤ領域にセル「Ｂ１Ｄ１」、「Ｂ２Ｄ１」、「Ｂ１Ｄ３」、「Ｂ１Ｄｎ」のデータを示す４つのＩＤが登録されている場合を例に説明する。このとき各セルに書き込まれるデータは、「Ｂ１Ｄ１」が「α」、「Ｂ２Ｄ１」が「β」、「Ｂ１Ｄ３」が「γ」、「Ｂ１Ｄｎ」が「δ」であるとし、各ブロックのカウンタはいずれも「０」であるとする。
【００３９】
図６は、上述の例にしたがって行われる書込処理を示した模式図である。まず、データ「α」が書き込まれる場合には、制御部１１はＩＤ領域のＩＤから書き込み対象のブロックを「Ｂ１」であると特定し、このブロック「Ｂ１」に書き込まれるデータを示すＩＤを検索する。この場合、データ「α」に加えてデータ「γ」、「δ」もブロック「Ｂ１」に書き込まれるデータであるため、「Ｂ１Ｄ３」と「Ｂ１Ｄｎ」とが特定される。制御部１１はこれらのデータ「α」、「γ」および「δ」を同時に更新し、不揮発性メモリ２の被書込ブロックに書き込む。
【００４０】
この結果、図６（１）に示すように、セル「Ｂ１Ｄ１」、「Ｂ１Ｄ３」および「Ｂ１Ｄｎ」は「α」、「γ」および「δ」にそれぞれ書き換えられ、ブロックＢ１のカウンタ「Ｂ１＿Ｃｎｔ」が増加して「１」となる。このとき、セル「Ｂ１Ｄ１」、「Ｂ１Ｄ３」および「Ｂ１Ｄｎ」を示す３つのＩＤがＩＤ領域から削除され、セル「Ｂ２Ｄ１」を示すＩＤが先頭、すなわち処理対象となる。
【００４１】
続いて、データ「β」が書き込まれる場合を説明する。このとき、制御部１１はＩＤ領域のＩＤから書き込み対象のブロックを「Ｂ２」であると特定し、被書込ブロックにセル「Ｂ２Ｄ１」だけ更新した値を書き込む。制御部１１はブロックＢ２のカウンタ「Ｂ２＿Ｃｎｔ」を「１」に増加させるとともに、セル「Ｂ２Ｄ１」を示すＩＤをＩＤ領域から削除する。この結果、図６（２）に示すように、揮発性メモリ１２のＩＤ領域は空となって、ＩＤが未登録の状態に戻る。
【００４２】
以上のように、本動作例にしたがってデータα〜δを書き込む処理を行った場合、その回数は合計で２回となる。これらの処理の結果、ブロックＢ１およびＢ２のカウンタ「Ｂ１＿Ｃｎｔ」および「Ｂ２＿Ｃｎｔ」は、それぞれ処理前から「１」だけ増加する。図６を図４と比較すれば明らかなように、本動作例においては、上述の従来例と同様のデータを書き込む場合に、その書込回数を減少させ、カウンタの値の増加を抑えることが可能となる。ゆえに、このような書込処理を行うことによって、不揮発性メモリ２の寿命を延長させることが可能となる。
【００４３】
［２−３．動作例２］
次に、本実施形態に係る第２の動作例を説明する。本動作例が上述の動作例１と相違する点は２点である。第１の点は、本動作例においては、揮発性メモリ１２への書き込みを指示する所定のイベントが発生するまでは、制御部１１が揮発性メモリ１２のＩＤ領域にＩＤを登録しない点である。第２の点は、本動作例においては、被書込ブロックのデータとそのブロックに書き込まれるべきデータとの間に差違がない場合には、データの更新を行わない点である。以下では、これらの相違点を中心に説明を行い、上述の動作例１と同様の処理が行われる部分については、その説明を適宜省略する。
【００４４】
図７は、本動作例の書込処理を示したフローチャートである。なお、本動作例の書込処理においては、データ処理装置１００のオン状態を検知してから揮発性メモリ１２にデータを書き込むまでの手順（ステップＳ１０１〜Ｓ１０４）が上述の従来例および動作例１と同様である。
【００４５】
揮発性メモリ１２にデータを書き込んだら、制御部１１は書込指示イベントを待機する（ステップＳ３０１）。ここで「書込指示イベント」とは、上位装置において発生する不揮発性メモリ２へのデータの書き込みが必要となる事象（イベント）のことである。書込指示イベントが発生したとき、制御部１１にはイベントの発生を表す信号が上位装置から供給される。
【００４６】
なお、書込指示イベントには複数のイベントが含まれるが、例えば、上位装置の電力消費を抑える「節電モード」を開始する指示や、ユーザによる上位装置の電源を遮断する指示がその一例である。ここで「節電モード」とは、上位装置がある時間以上アイドル状態（データの入力や操作がされない状態）にあったときに開始されるモードのことである。また、ユーザによる所定の操作を書込指示イベントに含んでもよい。
【００４７】
書込指示イベントがない間は（ステップＳ３０１；ＮＯ）、制御部１１は不揮発性メモリ２のデータに対する書き換え指示を待機し（ステップＳ１０３）、書き換え指示に応じてデータを随時揮発性メモリ１２に書き込んでいく（ステップＳ１０４）。そして、書込指示イベントの発生を検知すると（ステップＳ３０１；ＹＥＳ）、それまでの間に揮発性メモリ１２のデータ領域に書き込んだ全データに相当するＩＤを揮発性メモリ１２のＩＤ領域に登録する（ステップＳ３０２）。
【００４８】
ＩＤの登録が終了したら、制御部１１は被書込ブロックをブロック「Ｂ１」とするＩＤを検索する（ステップＳ３０３）。なお、図７においては、説明の便宜上、被書込ブロックを「Ｂｉ」と記載している。ここでは、値「ｉ」を、「１」を初期値として１ずつ増加する変数として定義する。この変数ｉは後述するステップＳ３１２においてインクリメントされる。そのため、以下の説明においては、ステップＳ３１２の処理が行われるまでの各ステップは「Ｂｉ」を「Ｂ１」と読み替えるものとし、以後、ステップＳ３１２の処理を行うごとに「Ｂ２」、「Ｂ３」と適宜読み替えていくものとする。
【００４９】
続いて制御部１１は、上述の検索の結果に基づき、被書込ブロックがブロック「Ｂ１」であるＩＤの有無を判断する（ステップＳ３０４）。データの被書込ブロックがブロック「Ｂ１」であるＩＤが存在する場合（ステップＳ３０４；ＹＥＳ）、制御部１１は不揮発性メモリ２のブロック「Ｂ１」からデータをブロック単位で読み出し（ステップＳ３０５）、読み出したブロック「Ｂ１」のデータとこのブロック「Ｂ１」に書き込まれるべきデータとを比較して、それぞれに差違があるか否かを判断する（ステップＳ３０６）。
【００５０】
この比較において、両者に１箇所でも差違があれば（ステップＳ３０６；ＹＥＳ）、制御部１１はブロック「Ｂ１」のデータ全体を更新する（ステップＳ３０７）。そして制御部１１はブロック「Ｂ１」のカウンタに「１」を加算し（ステップＳ３０８）、更新されたデータを不揮発性メモリ２のブロック「Ｂ１」に書き込む（ステップＳ３０９）。このときも上述の動作例１と同様に、複数のＩＤに相当するデータを１回の書込処理で書き込むため、カウンタの増加は「１」となる。不揮発性メモリ２へのデータの書き込みが終了したら、制御部１１は書き込んだデータに相当するＩＤを揮発性メモリ１２のＩＤ領域から削除する（ステップＳ３１０）。
【００５１】
一方、ステップＳ３０６の比較において両者に差違がなかった場合（ステップＳ３０６；ＮＯ）、制御部１１は上述のステップＳ３０７〜Ｓ３０９の処理をスキップしてＩＤの削除を行う（ステップＳ３１０）。つまりこのとき、制御部１１は不揮発性メモリ２への書き込みを行わずに処理を続行する。ステップＳ３０８の処理も行われないため、このときカウンタも加算されない。
【００５２】
ＩＤを削除したら、続いて制御部１１は被書込ブロックが「Ｂｍ」であるか否かを判断する（ステップＳ３１１）。すなわちこれは、被書込ブロックがデータ領域の最終ブロックであるか否かを判断することを意味している。ここでは、被書込ブロックがブロック「Ｂ１」であるから、最終ブロックではない（ステップＳ３１１；ＮＯ）。そのため、制御部１１は、変数ｉをインクリメントしてその値を「２」とし（ステップＳ３１２）、被書込ブロックをブロック「Ｂ２」としてステップＳ３０３からの処理を繰り返す。
【００５３】
なお、データの被書込ブロックがブロック「Ｂ１」であるＩＤが存在しない場合には（ステップＳ３０４；ＮＯ）、制御部１１はステップＳ３０５〜Ｓ３１０までの処理をスキップする。つまり、このとき制御部１１は、被書込ブロックに対していかなる処理も行わずに次のブロックへと処理を進めていく。
【００５４】
制御部１１は上述の要領でブロック「Ｂ１」から順番にデータの書き込みを行っていく。そして、最終的に被書込ブロックがブロック「Ｂｍ」、すなわち最終ブロックとなったときには、制御部１１は本処理を終了させる。本処理の終了後、データ処理装置１００は、書込指示イベントの種類に応じて、電源の遮断や節電モードの開始等のための動作を行う。
【００５５】
以上のような処理を行うことで、不揮発性メモリ２への書込回数を上述の動作例１よりもさらに少なくすることが可能となる。本動作例においては、ステップＳ３０１が示すように、書込指示イベントをトリガ（契機）として不揮発性メモリ２へのデータの書き込みが行われる。そのため、ＩＤの登録をトリガに不揮発性メモリ２へデータを書き込む動作例１に比べ、より多くのＩＤをＩＤ領域に登録させることができる。より多くのＩＤが登録されていれば、当然、１回で同時に書き込むデータの数も増加するので、その分書込回数を減少させることが可能となる。しかも、本処理においては、各ブロックに対して書き込みを行うのは０ないし１回のみであるため、書き換えを指示されたデータの個数が多くても、各ブロックのカウンタは「２」以上増加することがない。
【００５６】
また、本動作例においては、ステップＳ３０６において不揮発性メモリ２から読み出したブロックのデータをこのブロックに書き込むべきデータと比較し、両者に差違がない場合には不揮発性メモリ２へデータを書き込まないような処理を行うことによっても、書込回数の減少を図っている。
【００５７】
上述したように、不揮発性メモリ２に書き込まれるデータは、「レジ調整値」、「転写電位」、または「定着温度」といった各種パラメータである。これらのパラメータは、書き換える指示は生じたものの、指示されたデータが書き換え前と同一となることがある。上述の従来例や動作例１においては、書き換え前後のデータの内容を比較判断せずに、書き換えを指示されたデータは全て書き込みを行っていた。そのため、書き込み前後のデータに差違がない場合にも不揮発性メモリ２に書き込みを行い、カウンタの値を無駄に消費してしまうことがあった。本動作例はこのような場合に不揮発性メモリ２への書き込みをスキップし、書込回数を増加させないように工夫したものである。
【００５８】
［３．変形例］
上述の実施形態においては、データ処理装置１００を例示して本発明を説明したが、本発明はこの実施形態に限定されるものではなく、種々の変形が可能である。以下にその変形例を示す。
【００５９】
上述の実施形態においては、データ処理装置１００がＡＳＩＣ３を備える構成を示したが、メモリ制御装置１が不揮発性メモリ２に対して直接データの読み書きを行う構成であってもよい。すなわち、本発明において、ＡＳＩＣは必須の構成要素ではない。また、上述の実施形態においては、データ処理装置１００の上位装置が画像形成装置である場合を説明したが、上位装置はこれに限定されず、種々の制御装置やコンピュータに適用可能である。さらに、データ処理装置１００は上位装置の内部に搭載されている必要はなく、データ処理装置１００と上位装置とが無線ないし有線で接続される構成であってもよい。
【００６０】
また、上述の実施形態においては、不揮発性メモリ２をＥＥＰＲＯＭであると説明したが、本発明の適用はこの種のメモリに限定されるものではない。要するに、本発明における不揮発性メモリとは、記憶領域がブロック単位で区分されており、それぞれのブロックに対して書込回数の制限が加えられているようなメモリであれば、いかなるメモリを用いてもよい。
【００６１】
なお、上述の実施形態から明らかなように、本発明は、メモリ制御装置１の制御部１１が行うデータの書込処理に特徴を有するものである。したがって、本発明は、メモリ制御装置１が行うデータの書込方法や、その書込方法を記述したプログラムとしても特定され得るものである。また、本発明は、メモリ制御装置１としてではなく、制御部１１単体でも実施可能である。
【図面の簡単な説明】
【００６２】
【図１】本発明の一実施形態に係るデータ処理装置を示したブロック図である。
【図２】同装置の不揮発性メモリのデータ構成を例示した図である。
【図３】従来の書込処理を示したフローチャートである。
【図４】図３の例にしたがって行われる書込処理を示した模式図である。
【図５】本発明に係る書込処理を示したフローチャートである。
【図６】図５の例にしたがって行われる書込処理を示した模式図である。
【図７】本発明に係る書込処理を示したフローチャートである。
【符号の説明】
【００６３】
１００…データ処理装置、１…メモリ制御装置、１１…制御部、１２…揮発性メモリ、２…不揮発性メモリ、３…ＡＳＩＣ
【図１】
2007034431.tif 000003
【図２】
2007034431.tif 000004
【図３】
2007034431.tif 000005
【図４】
2007034431.tif 000006
【図５】
2007034431.tif 000007
【図６】
2007034431.tif 000008
【図７】
2007034431.tif 000009