【実施例】
【0022】
上記した本発明の実施の形態についてさらに詳細に説明すべく、本発明の一実施例に係る画像形成装置及びフラッシュメモリの制御方法について、
図1乃至
図14を参照して説明する。
図1は、本実施例の画像形成装置の概略構成を示すブロック図であり、
図2は、本実施例の画像形成装置におけるデータのバッファリング制御を説明する図である。また、
図3及び
図4は、フラッシュメモリの特性を説明する図であり、
図5及び
図6は、ウェアレベリングによるブロック書き込み制御を説明する図である。また、
図7は、データのバッファリング制御の具体例を示す図であり、
図8は、ウェアレベリングによるデータ書き込み制御の具体例を示す図である。また、
図9は、本実施例のフラッシュメモリのデータバス監視による書き込み負荷超過状態の予測方法の一例を示す図であり、
図10及び
図11は、本実施例の書き込み負荷軽減制御の一例を示す図である。また、
図12は、本実施例の画像形成装置の動作を示すフローチャート図であり、
図13は、フラッシュメモリのW/Aを説明する図、
図14は、フラッシュメモリの特性(W/A係数の転送データサイズ依存性)の測定結果を示す図である。なお、以下の説明において、フラッシュメモリへのデータ書き込みとは、データが保持されていないブロックにデータを書き込む場合の他、ブロックに保持されているデータを他のデータに書き換える場合も含む。
【0023】
以下、本実施例では、フラッシュメモリを備える装置として、画像形成装置を例にして説明する。本実施例の画像形成装置10は、
図1に示すように、CPU(Central Processing Unit)11、メインメモリ12、フラッシュメモリ13、画像入力装置14、画像処理装置15、画像出力装置16などから構成される。なお、画像入力装置14や画像出力装置16は、画像形成装置10内部に含まれる構成としてもよいし(その場合は、画像入力部や画像出力部となる。)、画像形成装置10とは別体の装置とし、画像形成装置10と有線又は無線で接続される構成としてもよい。
【0024】
CPU11とメインメモリ12とで制御部が構成され、制御部は、画像形成装置10全体の制御、各動作モードに応じた各構成要素の制御を行う。また、制御部は、フラッシュメモリ制御機能を内蔵し、フラッシュメモリ13に対するデータの読み出し/書き込み、消去、書き換え(これらを総称して書き込みと称する。)を制御する。具体的には、フラッシュメモリ制御機能は、画像入力装置14から入力され、必要に応じて画像処理装置15で処理された画像データを一旦メインメモリ12に格納し、ウェアレベリングによってフラッシュメモリ13の各ブロックに書き込むと共に、フラッシュメモリ13から画像データを読み出し、画像出力装置15に出力する。
【0025】
このフラッシュメモリ制御機能は、所定期間内にフラッシュメモリ13に書き込まれる画像データのデータ量(累積書き込みデータ量と呼ぶ。)を計算し、累積書き込みデータ量が予め定めた所定量を越えるか否かに基づいて、フラッシュメモリ13の状態が書き込み負荷超過状態になるかを予測する機能と、書き込み負荷超過状態になると予測される場合に、画像入力装置14などの機構部の動作条件を変更するなどして画像データの入力、及び/又は、データのバッファリングの速度を抑制する制御(書き込み負荷軽減制御と呼ぶ。)を行う機能と、を有する。なお、上記所定期間は、フラッシュメモリ13の各ブロックのデータ保持期間を十分な期間に保つために必要となるデータの書き込み間隔であり、具体的には、フラッシュメモリ13の寿命が画像形成装置10の寿命と同等以上となるようなデータ保持期間で特定されるデータの書き込み間隔などである。また、上記所定量は、フラッシュメモリ13の記憶容量などである。
【0026】
フラッシュメモリ13は、データの読み出し/書き込み、消去、書き換えが可能なNOR型又はNAND型の不揮発性メモリであり、制御部の指示に従って、画像入力装置14から入力され、必要に応じて画像処理装置15で処理された画像データを保持し、制御部の指示に従って、保持した画像データを画像出力装置16に出力するバッファメモリとして機能する。また、フラッシュメモリ13は、CPU11が実行するプログラムを記憶する。
【0027】
画像入力装置14は、例えば、スキャナなどであり、原稿台に載置された原稿をスキャンし、光学的に読み取った画像データを画像処理装置15に出力(画像処理が不要な場合は、制御部の指示に従ってメインメモリ12を経由してフラッシュメモリ13に格納)する。その際、画像入力装置14は、制御部の指示に従って、入力する画像データを多く(データサイズを大きく)する高速動作モード、若しくは、入力する画像データを少なく(データサイズを小さく)する低速動作モードで画像データの入力処理を行う。
【0028】
画像処理装置15は、必要に応じて、画像入力装置14から転送された画像データに対して、エッジ強調処理や、スムージング処理、色変換処理等の画像処理を行う。また、必要に応じて、画像処理装置15は、他の装置から、PostScriptやPCL(Printer Control Language)に代表されるPDL(Page Description Language)で記述された印刷データを取得した場合は、印刷データに含まれる各ページをラスタライズしてページ毎の画像データを生成し、生成した画像データに対して上記画像処理を行う。そして、画像処理後の画像データを、制御部の指示に従ってメインメモリ12を経由してフラッシュメモリ13に格納する。
【0029】
画像出力装置16は、例えば、印刷エンジンであり、フラッシュメモリ13に格納された画像データに基づき、用紙への印刷処理を行う。その際、画像出力装置16は、制御部の指示に従って、処理する画像データを多く(データサイズを大きく)する高速動作モード、若しくは、処理する画像データを少なく(データサイズを小さく)する低速動作モードで画像データの出力処理を行う。具体的には、電子写真方式の場合は、帯電装置により帯電された感光体ドラムに、露光装置から画像に応じた光を照射して静電潜像を形成し、現像装置で帯電したトナーを付着させて現像し、そのトナー像を転写ベルトに1次転写し、転写ベルトから用紙に2次転写し、更に定着装置で用紙上のトナー像を定着させる処理を行う。
【0030】
図1に示す画像形成装置において、例えば、スキャンやコピーといった動作によって、画像データの入力が行われた場合、一般的に、
図2に示すようなデータのバッファリング制御が行われる。
【0031】
まず、画像入力装置14が取得した画像データを、画像処理装置15が画像処理を行った後、メインメモリ12へ格納する(
図2のA参照)。次に、メインメモリ12上の画像データを、フラッシュメモリ13にバッファリングする(
図2のB参照)。バッファリングされた画像データは、画像出力装置16のデータ受け入れ準備が出来次第、フラッシュメモリ13から読み出され、画像出力装置16に出力される(
図2のC参照)。
【0032】
上記のようなフラッシュメモリ13へのデータバッファリング制御は、以下の理由で実施される。画像入力装置14と画像出力装置16のデータ転送速度に差異があり、特に、画像入力装置14側のデータ転送速度が速い場合、入力された画像データを何れかのメモリにバッファする必要がある。また、画像入力装置14側は連続的にデータ入力を行い、画像出力装置16側は断続的にデータ出力を行う場合も、入力された画像データを何れかのメモリにバッファする必要がある。一般的に、
図1に示すようなシステムでは、メインメモリ12としてDRAM(Dynamic Random Access Memory)等が使用されることが多いが、DRAMは、HDD(Hard Disk Drive)やフラッシュメモリ13と比較してビット単価が高いため、画像データのような大容量データの一時格納先としては適さない。そのため、コスト削減の目的で、メインメモリ12以外のHDDやフラッシュメモリ13に画像データのバッファリングが行われる。
【0033】
次に、上述したフラッシュメモリ13へのデータバッファリング時の問題点について、
図3及び
図4を参照して説明する。
図3は、フラッシュメモリ13を構成する各ブロックの各セルに関して、データ書き込み直後からセルを構成するトランジスタの閾値電圧が変化し始めるまでの時間(time offset T0と表記)の書き込み間隔依存性を示している。また、
図4は、セルを構成するトランジスタの閾値電圧(ΔVthと表記)の放置時間依存性を示している。
【0034】
図3及び
図4に示すように、データの書き込み間隔が長い場合、ゲート絶縁膜の劣化は遅くなるため、トランジスタの閾値電圧が変化し始めるまでの時間は長くなり(例えば、
図3のT0_L)、その結果、閾値電圧の変化の許容レベルで規定されるデータ保持期間(いわゆるデータリテンション)を長くすることができる。一方、データの書き込み間隔が短くなるにつれて、ゲート絶縁膜の劣化が進行するため、トランジスタの閾値電圧が変化し始めるまでの時間は短くなり(例えば、
図3のT0_S)、その結果、閾値電圧の変化の許容レベルで規定されるデータ保持期間は短くなる。
【0035】
このように、複数のブロックで構成されるフラッシュメモリ13のいずれかのブロックに対して、短い時間間隔でデータの書き込みを連続して行うと、当該ブロックに格納されたデータの保持期間が低下し、フラッシュメモリ13全体の寿命が低下する。そこで、通常、ウェアレベリングの機能を用いて、同一のブロックに対して書き込みが集中しないよう制御しているが、
図2に示すようなデータのバッファリング制御を継続した場合、ウェアレベリングが機能していても尚、何れかのブロックのデータの書き込み間隔が短くなり、当該ブロックに格納されたデータの保持期間が低下することがある。
【0036】
この問題について、
図5及び
図6を参照して具体的に説明する。
図5及び
図6は、ウェアレベリングによるブロック書き込み制御を説明する図である。例えば、
図5に示すように、データの書き込みを行う際、フラッシュメモリの外部からのデータ書き込み要求(図のa参照)に対して、書き込み先のアドレスとして論理アドレスが指定される。この時、フラッシュメモリ内では、ウェアレベリングの機能により、指定された論理アドレスに対して、1対1で紐付けられた物理アドレスが選択され(
図5のb参照)、当該物理アドレスにデータの書き込みが行われる(
図5のc参照)。
【0037】
この物理アドレスの選択に際し、フラッシュメモリ内の各ブロックの中で、最後の書き込みからの経過時間が最も長いブロックが選択され、当該ブロックに対応する物理アドレスが選択される。つまり、外部からのデータ書き込み要求において、どのような論理アドレスを指定しても、フラッシュメモリ内部では、最後の書き込みからの経過時間が最も長いブロックに対してデータの書き込みが行われる。本制御により、短期間内の同一ブロックへの連続したデータの書き込みは抑制される。
【0038】
しかしながら、
図6に示すように、全てのブロックに対して最後の書き込みから十分な経過時間を確保できていない状態において、外部からのデータ書き込み要求があった場合には、最後の書き込みからの経過時間が最も長いブロックでも経過時間は短いため、ウェアレベリングの機能によっても尚、何れかのブロックのデータの書き込み間隔が短くなり、当該ブロックに格納されたデータの保持期間が低下する。
【0039】
十分な書き込み間隔を確保できないケースの発生要因について説明する。例えば、画像形成装置において、記憶容量が4GBのフラッシュメモリを使用するものとし、当該フラッシュメモリにおいて、各ブロックに書き込んだデータに対して十分なデータ保持期間を持たせる(例えば、フラッシュメモリの寿命を画像形成装置の寿命と同程度若しくは画像形成装置の寿命以上にする)ために必要となる、データの書き込み間隔(推奨書き込み間隔と呼ぶ。)を5minとする。
【0040】
図6の状態では、フラッシュメモリ内のブロックの最後の書き込みからの経過時間は1〜4minであるため、その状態でデータの書き込みが発生すると、いずれのブロックでも、書き込み間隔を推奨書き込み間隔である5min以上確保することができず、データ保持期間が低下する。全てのブロックの最後の書き込みからの経過時間が5min以内となるのは、過去5min以内に、フラッシュメモリ13内の全ブロックに対して書き込みが発生した時である。つまり、5min以内にフラッシュメモリの記憶容量(ここでは4GB)以上のデータの書き込みが発生した時(この状態を書き込み負荷超過状態と呼ぶ。)である。
【0041】
フラッシュメモリに画像データをバッファリングする画像形成装置を例にして説明すると、画像形成装置では、
図7に示すように、画像データのバッファリングと、バッファリングされた画像データの順次読み出しを繰り返し行う。この時、予めフラッシュメモリ上に用意したバッファ領域以上のデータ量の画像データが入力された場合、当該画像データは、既にデータの出力が完了し、不要となったデータが格納されているアドレス(物理アドレス)に上書きされる。
【0042】
例えば、画像形成装置において、コピーやスキャンなどの画像データ入力を断続的に行い、入力された画像データを、
図7に示すような制御により、フラッシュメモリにバッファリングし続けたとすると、容易に、短期間内にフラッシュメモリの記憶容量を超えるデータの書き込みが発生し、書き込み負荷超過状態となる。この状態になってからも、データのバッファリング制御を継続した場合、フラッシュメモリ内の何れかのブロックにおいて、データの書き込み間隔が短くなり、データ保持期間が低下することになる。
【0043】
このようにデータ保持期間が低下した場合、画像データが消失するだけでなく、画像形成装置の動作に支障をきたすリスクもある。例えば、
図7に示すように、フラッシュメモリ内に、プログラム等の重要データが格納されている固定データ領域と、一時的なデータを格納するバッファ領域とを設けた状態で、バッファ領域に対してデータ書き込みを行った結果、書き込み負荷超過状態となったとする。この時、どのブロックに対してどのデータを書き込むかは、予めフラッシュメモリが備えるウェアレベリングの制御により決定されることがあるため、その場合にはフラッシュメモリ内の全ブロック及び全データが書き込み対象となる可能性がある。
【0044】
一般的に、ウェアレベリングは、フラッシュメモリ内の全ブロックに対して行われるため、バッファ領域のみにデータの書き込みを行ったとしても、
図8に示すような、ブロック毎の書き込み回数の分散を目的とした置き換え処理により、固定データ領域に対しても置き換えが発生する。そのため、書き込み負荷超過状態になって以降のデータの書き込みにおいて、固定データ領域のデータが置き換えられた場合、当該データの保持期間が低下する。特に、当該データが、プログラム等の重要データであった場合、フラッシュメモリに対するデータバッファリングを原因として、システムに対して致命的なエラーを発生させる大きなリスクを負う事となる。
【0045】
具体的に説明すると、
図8(a)に示すように、バッファ領域のみにデータの書き込みを行うと、各ブロック間で書き込み回数の偏りが発生する。そこで、ウェアレベリングでは、書き込み回数の偏りが大きくなった時点で、偏り是正のためにデータの置き換え処理を行う。まず、
図8(b)に示すように、バッファ領域へのデータの書き込みが発生した時点で、固定データ領域の固定データを、バッファ領域の空き領域に移動する。続いて、
図8(c)に示すように、元々固定データが格納されていた固定データ領域のデータを消去した後、当該固定データ領域へのデータの書き込みを行う。この一連の置き換え処理により、重要なデータである固定データは書き込み回数が多いバッファ領域に格納されることになり、その結果、固定データの保持期間が低下し、固定データが消失したり読み出せなくなったりした場合には画像形成装置に致命的なエラーが発生する恐れがある。
【0046】
このようなリスクを回避するために、本実施例では、フラッシュメモリにデータを書き込む際に、書き込み負荷超過状態となることを事前に予測し、書き込み負荷超過状態となると予測される場合には、書き込み負荷を軽減する制御を行う。具体的には、書き込み負荷超過状態は、例えば、フラッシュメモリの各ブロックのデータ保持期間を十分に確保可能な書き込み間隔(推奨書き込み間隔)を5minとし、フラッシュメモリの記憶容量を4GBとすると、過去5min間に、4GBを超えるデータ書き込みがあった場合に生じる。そこで、上記の推奨書き込み間隔とフラッシュメモリの記憶容量とを用いて、書き込み負荷超過状態となることを事前に予測する。この書き込み負荷超過状態を事前に予測する方法としては、以下に示す方法がある。
【0047】
[第1の予測方法]
第1の予測方法は、フラッシュメモリのデータバスを監視する方法である。例えば、
図9(a)に示すように画像データのバッファリング制御を実施する時に、フラッシュメモリ13へのデータの書き込み速度(所定時間の平均値でもよいし、所定時間の最大値でもよい。)を計測し、この書き込み速度に基づいて、5分間の累積書き込みデータ量(すなわち、推奨書き込み間隔に達していないブロックに書き込まれるデータの総量)を計算する。そして、
図9(b)に示すように、計算した5分間の累計書き込みデータ量がフラッシュメモリの記憶容量である4GBを超える場合、該データ書き込み速度でバッファリングを継続した時、書き込み負荷超過状態となると予測することができる。
【0048】
[第2の予測方法]
第2の予測方法は、画像入力の動作モードに基づいて予測する方法である。例えば、画像形成装置の画像入力装置14によって入力される画像データのサイズが、画像入力装置14の動作モードや画像の種類によって決定される場合、予め表1に示すようなテーブルを作成する。具体的には、スキャンの解像度とスキャンサイズから画像データのサイズを求め、画像データのサイズとスキャナ生産性(ppm:page per minute)から単位時間あたりのデータ量を求め、この単位時間あたりのデータ量から5分間の累積書き込みデータ量を算出する。そして、累積書き込みデータ量がフラッシュメモリの記憶容量(4GB)を越える時に書き込み負荷超過状態と判定する。表1のパターンでは、No.2、4、6の動作モードにおいて、書き込み負荷超過状態になると予測することができる。
【0049】
【表1】
【0050】
このような方法を用いて書き込み負荷超過状態になると予測された場合の書き込み負荷軽減方法について説明する。ここでは一例として、画像入力装置14をスキャナとした場合のフラッシュメモリ13への書き込み負荷軽減方法を示す。
【0051】
図10(a)に示すように、スキャナを高速動作モードにて動作させて連続読み取りを実施し、断続的な画像データのバッファリング制御を行う際、上述した第1の予測方法又は第2の予測方法により、5分間の累計書き込みデータ量を計算する。そして、
図10(b)に示すように、5分間の累計書き込みデータ量がフラッシュメモリの記憶容量を越える(すなわち、書き込み負荷超過状態になる)と予測された場合、スキャナの動作モードを低速動作モードに切り替えるなどして、スキャナ生産性(画像入力速度)を低下させて書き込み負荷の軽減を行い、書き込み負荷超過状態となることを回避する。
【0052】
なお、スキャナ生産性(ここでは動作モード)の切り替えタイミングは、高速動作モード時及び低速動作モード時のスキャナ生産性から閾値(時間)を適切に設定し、データバッファリング開始からの経過時間が閾値を超えた時点で、スキャナ生産性の切り替え制御を行えばよい。例えば、
図10の例で、高速動作モード時のスキャナ生産性をH[ppm]、低速動作モードの生産性をL[ppm]、フラッシュメモリの容量をC[GB]、データ保持期間を十分な期間に保つために必要となるデータの書き込み間隔をT[min]、画像データのサイズをS[MB]とすると、閾値Tth[min]は以下のように計算できる。
【0053】
((H×Tth×S)+(L×(T−Tth)×S))/1024<C
Tth<(1024×C−L×T×S)/(H−L)×S … (1)
【0054】
このように、上記式(1)に従って閾値Tthを設定し、バッファリング開始からの経過時間がTthを超えた時点で、スキャナ生産性の切り替えを行うことで、書き込み負荷超過状態を回避することができる。
【0055】
具体的な数値で説明すると、
図10(b)の(1)は、4.88GB/5分のペースでデータを書き込んでいる状態を示しており、このペースでデータを書き込むと書き込み開始から約4分(4GB/4.88GB×5分)でフラッシュメモリ13の記憶容量を越えてしまう。(2)〜(4)は、閾値である3分(図の5分)経過後から2.44GB/5分のペースでデータを書き込んでいる状態を示しており、書き込み開始から3分経過後5分までの間(図の5分から7分)は、2.44GB/5分のペースでデータが書き込まれ、5分経過後の累積書き込みデータ量は約3.9GBとなり、フラッシュメモリ13の記憶容量である4GB以下となる((2)参照)。書き込み開始から5分経過後8分までの間(図の7分から10分)は、2.44GB/5分のペースでデータを書き込むが、(1)でデータが書き込まれたブロックは推奨書き込み間隔を越え、4.88GB/5分のペースで累計書き込みデータ量が減るため、累計書き込みデータ量は、2.44GB/5分のペースで減っていく((3)参照)。書き込み開始から8分経過後(図の10分以降)は、全てのブロックに2.44GB/5分のペースでデータを書き込むため、累計書き込みデータ量は2.44GB/5分で一定の値となる。
【0056】
図10では、閾値経過後にスキャナの動作モードを切り替えてから、低速動作モードを継続しているが、低速動作モードに切り替えることによって5分間の累積書き込みデータ量が十分に小さい値になる場合は、例えば、
図10(c)に示すように、5分間の累積書き込みデータ量が安定した段階で動作モードを元の高速動作モードに切り替え、この動作モードの切り替えを繰り返すようにしてもよい。
【0057】
また、
図10では、閾値時間を求め、閾値時間経過後にスキャナの動作モードを切り替える(すなわち、書き込み開始からの時間に基づいて書き込み負荷超過状態を予測する)ようにしたが、フラッシュメモリ13の記憶容量よりも小さい閾値容量を基準にし、5分間の累積書き込みデータ量が閾値容量を越えた時にスキャナの動作モードを切り替える(すなわち、容量に基づいて書き込み負荷超過状態を予測する)こともできる。
【0058】
例えば、
図11(a)に示すように、スキャナを高速動作モードにて動作させて連続読み取りを実施し、断続的な画像データのバッファリング制御を行う際、5分間の累計書き込みデータ量を計算する。そして、
図11(b)に示すように、フラッシュメモリ13の記憶容量4GBよりもαだけ小さい値を閾値容量として設定し、この閾値容量を超えた時にスキャナの動作モードを切り替えるようにしてもよい。また、上記と同様に、
図11(c)に示すように、5分間の累積書き込みデータ量が安定した段階(若しくは、累積書き込みデータ量が上記閾値容量よりも小さい第2の閾値容量以下となった段階)で動作モードを元の高速動作モードに切り替え、この動作モードの切り替えを繰り返すようにしてもよい。
【0059】
なお、
図10及び
図11では、動作モードを切り替えることによって書き込み負荷超過状態を回避したが、例えば、スキャンの解像度のみを下げたり、スキャン速度のみを遅くしたり、スキャンの時間間隔(次のスキャンを開始するまでの時間)を長くしたり、画像入力装置14又は画像処理装置15で、画像データの色数を減らしたり(例えば1677万色から256色に減色)、画像データのカラーモードを変えたり(例えば、カラーから白黒)、これらを任意に組み合わせたりして、書き込み負荷超過状態を回避してもよい。
【0060】
また、画像入力装置14側の機構部の動作を制御する代わりに、若しくは、画像入力装置14側の機構部の動作の制御と共に、画像出力装置16側の機構部の動作を制御してもよい。例えば、画像出力装置16の動作モードを変更して、出力(印刷)速度を遅くしたり、出力(印刷)の時間間隔(次のページの印刷を開始するまでの時間)を長くしたりすることによって、画像データのバッファリングの速度を抑制してもよい。また、CPU11がメインメモリ12から画像データを読み出すタイミングやフラッシュメモリ13に画像データを書き込むタイミング、フラッシュメモリ13から画像データを読み出すタイミングを遅くするなどして、画像データのバッファリング自体を抑制してもよい。
【0061】
以下、本実施例の画像形成装置における書き込み負荷軽減制御について、
図12のフローチャート図を参照して説明する。CPU11は、フラッシュメモリ13が記憶するプログラムを実行することにより、
図12のフローチャートに示す処理を実行する。なお、
図12では、
図10の閾値時間(Tth)に基づいて書き込み負荷軽減制御を行うものとする。
【0062】
画像入力装置14が画像データの入力を開始すると(S101)、制御部はデータのバッファリングを開始する(S102)。例えば、画像入力装置14(スキャナ)は高速動作モードにて画像データを取り込み、取り込んだ画像データを画像処理装置15に出力する。画像処理装置15は所定の画像処理を行った後、処理後の画像データをメインメモリ12に格納する。そして、CPU11は、メインメモリ12に格納された画像データをフラッシュメモリ13の所定のブロックに書き込む。その際、フラッシュメモリ13は、ウェアレベリング機能を用いて、画像データを書き込む。その後、画像出力装置16のデータ受け入れ準備が整ったら、CPU11は、フラッシュメモリ13から順次画像データを読み出して画像出力装置16に出力し、画像出力装置16(印刷エンジン)は出力を開始する(S103)。
【0063】
次に、CPU11は、上述した第1の予測方法又は第2の予測方法などにより、所定期間(推奨書き込み間隔)内の累積書き込みデータ量を計算し、その累積書き込みデータ量が所定値(フラッシュメモリ13の記憶容量)を越えるか否かを判断することによって、書き込み負荷超過状態となるかを判断する(S104)。
【0064】
書き込み負荷超過状態とならない場合は、書き込み負荷軽減制御を行う必要がないため、S107にスキップし、書き込み負荷超過状態となる場合は、CPU11は、バッファリング開始から所定期間(上記の閾値Tth)が経過したかを判断する(S105)。バッファリング開始から所定期間が経過していない場合は、まだ書き込み負荷軽減制御を行う必要がないため、S107にスキップする。
【0065】
一方、バッファリング開始から所定期間が経過した場合は、このままフラッシュメモリ13への書き込みを継続すると、いずれかのブロックでデータの書き込み間隔が推奨書き込み間隔よりも短くなり、当該ブロックのデータ保持期間が短くなってしまうため、CPU11は、書き込み負荷軽減制御を行う(S106)。具体的には、スキャナの動作モードを低速動作モードに切り替えたり、解像度を下げたり、スキャン速度を遅くしたり、スキャン間隔を長くしたり、画像データの色数を減らしたり、画像データのカラーモードを変えたり、印刷速度を遅くしたり、印刷間隔を長くしたり、画像データのバッファリング速度を遅くしたりする。
【0066】
その後、CPU11は、画像データの入力が完了したかを判断し(S107)、画像データの入力が完了していない場合はS105に戻って同様の処理を繰り返し、画像データの入力が完了した場合は、CPU11は、データのバッファリングを終了し(S108)、画像出力装置16は、画像出力を終了する(S109)。
【0067】
なお、以上の説明では、入力される画像データのサイズから累積書き込みデータ量を計算したが、NAND型のフラッシュメモリは、デバイス構造上の制約により、データのリード/ライトはページサイズ単位、データの消去はブロックサイズ単位で行う必要があり、この制約に起因して、フラッシュメモリに実際に書き込まれるデータのサイズは、入力されるデータのサイズよりも大きくなる。従って、上記所定期間内の累積書き込みデータ量を計算する際に、入力されるデータのサイズではなく、フラッシュメモリに実際に書き込まれるデータのサイズを用いることで、書き込み負荷超過状態となるか否かをより正確に予測することができる。
【0068】
具体的には、
図13に示すように、外部(Host Controller)からの書き込みデータサイズに対して、フラッシュメモリ内部の書き込みデータサイズがどの程度大きくなるかを現す指標として、W/A(Write Amplification)係数がある。例えば、外部(Host Controller)からの書き込みデータサイズが4KBで、フラッシュメモリ内部の書き込みデータサイズが160KBの場合、W/A係数は160KB/4KB=40となる。
【0069】
このW/A係数は、
図14の測定結果に示すように、外部からの書き込みデータサイズが大きくなるほど減少し、外部からの書き込みデータサイズが小さくなるほど増加する。つまり、外部からの書き込みデータサイズを小サイズに制約すると、外部からの書き込みデータサイズに対してフラッシュメモリ内部の書き込みデータサイズは増加し、外部バスでのデータ転送サイズを大サイズにすると、外部からの書き込みデータサイズとフラッシュメモリ内部の書き込みデータサイズとの差異はほぼなくなる。
【0070】
そこで、データバッファリング時の書き込み負荷超過状態を予測する第1及び第2の予測方法において、この指標を用いて累積書き込みデータ量を計算する。つまり、所定期間内の累積書き込みデータ量にW/A係数を乗算した値が、フラッシュメモリ13の記憶容量を超える場合に、書き込み負荷超過状態になると予測することができる。
【0071】
以上説明したように、フラッシュメモリ13を画像データのバッファメモリとして使用する画像形成装置10において、入力画像データのバッファリングを実施する際に、フラッシュメモリ13に所定期間(データ保持期間を十分な期間に保つために必要となるデータの書き込み間隔)内に書き込まれる累積書き込みデータ量(好ましくはW/A係数を考慮した累積書き込みデータ量)が所定量(フラッシュメモリ13の記憶容量)を超える(すなわち、書き込み負荷超過状態となる)と予測される場合に、動作モードを変更するなどして画像データの入力を抑制する書き込み負荷軽減制御を行うことにより、ゲート絶縁膜の劣化を抑制することができ、フラッシュメモリ13の各ブロックのデータ保持期間を向上させることができ、フラッシュメモリ13の寿命を延長することができる。
【0072】
なお、本発明は上記実施例に限定されるものではなく、本発明の趣旨を逸脱しない限りにおいて、フラッシュメモリを備える装置の構成やフラッシュメモリの制御方法は適宜変更可能である。例えば、上記実施例では、書き込み負荷超過状態の予測方法として、データバスを監視する方法と画像入力の動作モードに基づいて予測する方法を例示したが、累積書き込みデータ量を算出可能な任意の方法を用いることができる。また、上記実施例では、書き込み負荷軽減制御として、高速動作モードと低速動作モードの切り替える場合を例示したが、データの入力、及び/又は、データのバッファリングを抑制可能な任意の制御を行うことができる。