(57)【特許請求の範囲】
【請求項１】
画像に関する処理に使用するデータを一時的に記憶するフラッシュメモリを備える画像処理装置において、
前記フラッシュメモリの空き領域の分散の状態を判定する状態判定部と、
前記フラッシュメモリへのデータの書き込みを制御する書き込み制御部と、を備え、
前記書き込み制御部は、画像に関する所定の処理に使用するデータを前記フラッシュメモリに書き込む際に、前記フラッシュメモリの空き容量と前記フラッシュメモリの空き領域の分散の状態に基づいて設定される特定容量とを比較し、前記空き容量が前記特定容量以上の場合は、前記データの書き込みを行い、前記空き容量が前記特定容量よりも小さい場合は、前記フラッシュメモリに記憶されている所定のデータを他の記憶手段に待避させて前記特定容量を確保した後、前記データの書き込みを行う、ことを特徴とする画像処理装置。
【請求項２】
前記フラッシュメモリの空き領域の分散の状態は、前記フラッシュメモリのサイズ、使用時間、書き込み回数の少なくとも一つに基づいて規定され、
前記特定容量は、書き込むデータのデータ量に前記フラッシュメモリの空き領域の分散の状態に応じて変化する容量を付加した容量であり、
前記特定容量を確保することにより、前記所定の処理のパフォーマンスが維持される、ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記書き込み制御部は、コレート印刷を行う場合に、前記空き容量と前記特定容量との比較を行う、ことを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記書き込み制御部は、自動紙送り装置から搬送される複数の原稿をスキャンする場合に、前記空き容量と前記特定容量との比較を行う、ことを特徴とする請求項３に記載の画像処理装置。
【請求項５】
画像に関する処理に使用するデータを一時的に記憶するフラッシュメモリを備える画像処理装置において、
画像に関する所定の処理の実行時に前記フラッシュメモリに書き込まれるデータ量を予測するデータ予測部と、
前記フラッシュメモリへのデータの書き込みを制御する書き込み制御部と、を備え、
前記書き込み制御部は、前記所定の処理に使用するデータを前記フラッシュメモリに書き込む際に、前記予測したデータ量のデータを前記フラッシュメモリに書き込んだ場合に前記所定の処理のパフォーマンスを維持できるか否かを前記フラッシュメモリの空き領域の分散の状態に基づいて判断し、前記パフォーマンスを維持できると判断した場合は、前記データの書き込みを行い、前記パフォーマンスを維持できないと判断した場合は、前記フラッシュメモリに記憶されている所定のデータを他の記憶手段に待避させた後、前記データの書き込みを行う、ことを特徴とする画像処理装置。
【請求項６】
前記書き込み制御部は、コレート印刷を行う場合に、前記パフォーマンスを維持できるか否かの判断を行う、ことを特徴とする請求項５に記載の画像処理装置。
【請求項７】
前記書き込み制御部は、自動紙送り装置から搬送される複数の原稿をスキャンする場合に、前記パフォーマンスを維持できるか否かの判断を行う、ことを特徴とする請求項６に記載の画像処理装置。
【請求項８】
前記書き込み制御部は、前記所定の処理が終了した後、前記待避させた所定のデータを前記フラッシュメモリに書き戻す、ことを特徴とする請求項１乃至７のいずれか一に記載の画像処理装置。
【請求項９】
前記書き込み制御部は、前記所定のデータを圧縮して前記他の記憶手段に待避させる、ことを特徴とする請求項１乃至８のいずれか一に記載の画像処理装置。
【請求項１０】
前記書き込み制御部は、前記フラッシュメモリに記憶されているデータの内の、最後のアクセスが相対的に古い、アクセス頻度が相対的に低い、又は、重要度が相対的に低いデータを前記所定のデータとして選択する、ことを特徴とする請求項１乃至９のいずれか一に記載の画像処理装置。
【請求項１１】
前記フラッシュメモリは、複数のセルからなるページ単位で書き込みを行い、複数のページからなるブロック単位で消去を行うＮＡＮＤフラッシュメモリである、ことを特徴とする請求項１乃至１０のいずれか一に記載の画像処理装置。
【請求項１２】
前記画像処理装置は、画像形成装置であり、
前記フラッシュメモリは、スキャン処理又は印刷処理に使用するデータを一時的に記憶するバッファメモリとして使用される、ことを特徴とする請求項１乃至１１のいずれか一に記載の画像処理装置。
【請求項１３】
画像に関する処理に使用するデータを一時的に記憶するフラッシュメモリを備える、画像処理装置を制御する制御装置で動作する書き込み制御プログラムであって、
前記制御装置に、
前記フラッシュメモリの空き領域の分散の状態を判定する状態判定処理、
前記フラッシュメモリへのデータの書き込みを制御する書き込み制御処理、を実行させ、
前記書き込み制御処理では、画像に関する所定の処理に使用するデータを前記フラッシュメモリに書き込む際に、前記フラッシュメモリの空き容量と前記フラッシュメモリの空き領域の分散の状態に基づいて設定される特定容量とを比較し、前記空き容量が前記特定容量以上の場合は、前記データの書き込みを行い、前記空き容量が前記特定容量よりも小さい場合は、前記フラッシュメモリに記憶されている所定のデータを他の記憶手段に待避させて前記特定容量を確保した後、前記データの書き込みを行う、ことを特徴とする書き込み制御プログラム。
【請求項１４】
前記フラッシュメモリの空き領域の分散の状態は、前記フラッシュメモリのサイズ、使用時間、書き込み回数の少なくとも一つに基づいて規定され、
前記特定容量は、書き込むデータのデータ量に前記フラッシュメモリの空き領域の分散の状態に応じて変化する容量を付加した容量であり、
前記特定容量を確保することにより、前記所定の処理のパフォーマンスが維持される、ことを特徴とする請求項１３に記載の書き込み制御プログラム。
【請求項１５】
画像に関する処理に使用するデータを一時的に記憶するフラッシュメモリを備える、画像処理装置を制御する制御装置で動作する書き込み制御プログラムであって、
前記制御装置に、
画像に関する所定の処理の実行時に前記フラッシュメモリに書き込まれるデータ量を予測するデータ予測処理、
前記フラッシュメモリへのデータの書き込みを制御する書き込み制御処理、を実行させ、
前記書き込み制御処理では、前記所定の処理に使用するデータを前記フラッシュメモリに書き込む際に、前記予測したデータ量のデータを前記フラッシュメモリに書き込んだ場合に前記所定の処理のパフォーマンスを維持できるか否かを前記フラッシュメモリの空き領域の分散の状態に基づいて判断し、前記パフォーマンスを維持できると判断した場合は、前記データの書き込みを行い、前記パフォーマンスを維持できないと判断した場合は、前記フラッシュメモリに記憶されている所定のデータを他の記憶手段に待避させた後、前記データの書き込みを行う、ことを特徴とする書き込み制御プログラム。
【請求項１６】
前記書き込み制御処理では、前記所定の処理が終了した後、前記待避させた所定のデータを前記フラッシュメモリに書き戻す、ことを特徴とする請求項１３乃至１５のいずれか一に記載の書き込み制御プログラム。
【請求項１７】
前記書き込み制御処理では、前記所定のデータを圧縮して前記他の記憶手段に待避させる、ことを特徴とする請求項１３乃至１６のいずれか一に記載の書き込み制御プログラム。
【請求項１８】
前記書き込み制御処理では、前記フラッシュメモリに記憶されているデータの内の、最後のアクセスが相対的に古い、アクセス頻度が相対的に低い、又は、重要度が相対的に低いデータを前記所定のデータとして選択する、ことを特徴とする請求項１３乃至１７のいずれか一に記載の書き込み制御プログラム。
【請求項１９】
前記フラッシュメモリは、複数のセルからなるページ単位で書き込みを行い、複数のページからなるブロック単位で消去を行うＮＡＮＤフラッシュメモリである、ことを特徴とする請求項１３乃至１８のいずれか一に記載の書き込み制御プログラム。
【請求項２０】
画像に関する処理に使用するデータを一時的に記憶するフラッシュメモリを備える画像処理装置における書き込み制御方法であって、
前記フラッシュメモリの空き領域の分散の状態を判定する状態判定処理と、
前記フラッシュメモリへのデータの書き込みを制御する書き込み制御処理と、を実行し、
前記書き込み制御処理では、画像に関する所定の処理に使用するデータを前記フラッシュメモリに書き込む際に、前記フラッシュメモリの空き容量と前記フラッシュメモリの空き領域の分散の状態に基づいて設定される特定容量とを比較し、前記空き容量が前記特定容量以上の場合は、前記データの書き込みを行い、前記空き容量が前記特定容量よりも小さい場合は、前記フラッシュメモリに記憶されている所定のデータを他の記憶手段に待避させて前記特定容量を確保した後、前記データの書き込みを行う、ことを特徴とする書き込み制御方法。
【請求項２１】
前記フラッシュメモリの空き領域の分散の状態は、前記フラッシュメモリのサイズ、使用時間、書き込み回数の少なくとも一つに基づいて規定され、
前記特定容量は、書き込むデータのデータ量に前記フラッシュメモリの空き領域の分散の状態に応じて変化する容量を付加した容量であり、
前記特定容量を確保することにより、前記所定の処理のパフォーマンスが維持される、ことを特徴とする請求項２０に記載の書き込み制御方法。
【請求項２２】
画像に関する処理に使用するデータを一時的に記憶するフラッシュメモリを備える画像処理装置における書き込み制御方法であって、
画像に関する所定の処理の実行時に前記フラッシュメモリに書き込まれるデータ量を予測するデータ予測処理と、
前記フラッシュメモリへのデータの書き込みを制御する書き込み制御処理と、を実行し、
前記書き込み制御処理では、前記所定の処理に使用するデータを前記フラッシュメモリに書き込む際に、前記予測したデータ量のデータを前記フラッシュメモリに書き込んだ場合に前記所定の処理のパフォーマンスを維持できるか否かを前記フラッシュメモリの空き領域の分散の状態に基づいて判断し、前記パフォーマンスを維持できると判断した場合は、前記データの書き込みを行い、前記パフォーマンスを維持できないと判断した場合は、前記フラッシュメモリに記憶されている所定のデータを他の記憶手段に待避させた後、前記データの書き込みを行う、ことを特徴とする書き込み制御方法。
【請求項２３】
前記書き込み制御処理では、前記所定の処理が終了した後、前記待避させた所定のデータを前記フラッシュメモリに書き戻す、ことを特徴とする請求項２０乃至２２のいずれか一に記載の書き込み制御方法。
【請求項２４】
前記書き込み制御処理では、前記所定のデータを圧縮して前記他の記憶手段に待避させる、ことを特徴とする請求項２０乃至２３のいずれか一に記載の書き込み制御方法。
【請求項２５】
前記書き込み制御処理では、前記フラッシュメモリに記憶されているデータの内の、最後のアクセスが相対的に古い、アクセス頻度が相対的に低い、又は、重要度が相対的に低いデータを前記所定のデータとして選択する、ことを特徴とする請求項２０乃至２４のいずれか一に記載の書き込み制御方法。
【請求項２６】
前記フラッシュメモリは、複数のセルからなるページ単位で書き込みを行い、複数のページからなるブロック単位で消去を行うＮＡＮＤフラッシュメモリである、ことを特徴とする請求項２０乃至２５のいずれか一に記載の書き込み制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置及び制御プログラム並びに制御方法に関し、特に、フラッシュメモリを備える画像処理装置及び当該フラッシュメモリへのデータの書き込みを制御する制御プログラム並びに制御方法に関する。
【背景技術】
【０００２】
記憶媒体としてＳＳＤ（Solid State Drive）やｅＭＭＣ（embedded Multi Media Card）などの不揮発性メモリ（フラッシュメモリ）を採用する画像形成装置が増加してきている。フラッシュメモリの用途としては、プログラムの格納だけでなく、画像データのバッファメモリとして使用し、頻繁にデータの書き換えを行うような使い方も行われている。
【０００３】
このようなフラッシュメモリを利用する装置に関して、例えば、下記特許文献１には、ホスト装置から書き込み要求されたデータを記憶する不揮発性メモリと、前記不揮発性メモリにかかるリソースの使用量が所定量に達したとき前記不揮発性メモリにかかるリソースを整理してリソースを増加させるリソース管理部と、前記ホスト装置からの書き込みデータの受信にかかる転送速度の設定値を算出する転送速度設定部と、前記ホスト装置から書き込みデータを受信して、当該受信した書き込みデータを前記不揮発性メモリに転送する転送制御部と、を備え、前記転送速度設定部は、前記不揮発性メモリにかかるリソースの使用量が増加するほど低い設定値を算出し、前記転送制御部は、前記リソース管理部がリソースを整理している間、前記ホスト装置からの書き込みデータの受信を前記転送速度設定部が算出した設定値の転送速度で実行するメモリシステムが開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１２−１４１９９４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
後述するように、フラッシュメモリはデバイスの構造上、オーバーライトができず、データを消去してからでないと新たなデータを書き込むことができない。また、ブロック単位でしかデータを消去することができない。そのため、小さいサイズのデータを書こうとすると、ブロックサイズに対して小さいサイズのデータが書き込まれることになり、無駄が多くなる。また、データの書き込みを繰り返し行うと、空きブロックが減少し、部分的にデータが書き込まれたブロックにデータを分割して書き込まなければならなくなるため、多くのブロックにアクセスすることによってデータの書き込みに時間がかかり、フラッシュメモリを使用する処理のパフォーマンスに大きな影響を与える。
【０００６】
この空きブロックの減少に関して、リソースを整理してリソースを増加させる処理（後述するガベージコレクション）が行われており、上記特許文献１では、リソース管理部がリソースを整理している間、書き込みデータの転送速度を低く設定する制御を行っている。しかしながら、この方法はガベージコレクションを円滑に進めて空きブロックを作り出すことを目的としており、データの書き込み時にガベージコレクションを行うと、書き込みデータの転送速度が低くなることによってパフォーマンスは低下してしまう。
【０００７】
本発明は、上記問題点に鑑みてなされたものであって、その主たる目的は、フラッシュメモリを使用する処理のパフォーマンスを低下させることなく、適切にデータを書き込むことができる画像処理装置及び制御プログラム並びに制御方法を提供することにある。
【課題を解決するための手段】
【０００８】
本発明の一側面は、画像に関する処理に使用するデータを一時的に記憶するフラッシュメモリを備える画像処理装置において、前記フラッシュメモリの空き領域の分散の状態を判定する状態判定部と、前記フラッシュメモリへのデータの書き込みを制御する書き込み制御部と、を備え、前記書き込み制御部は、画像に関する所定の処理に使用するデータを前記フラッシュメモリに書き込む際に、前記フラッシュメモリの空き容量と前記フラッシュメモリの空き領域の分散の状態に基づいて設定される特定容量とを比較し、前記空き容量が前記特定容量以上の場合は、前記データの書き込みを行い、前記空き容量が前記特定容量よりも小さい場合は、前記フラッシュメモリに記憶されている所定のデータを他の記憶手段に待避させて前記特定容量を確保した後、前記データの書き込みを行うことを特徴とする。
【０００９】
本発明の一側面は、画像に関する処理に使用するデータを一時的に記憶するフラッシュメモリを備える、画像処理装置を制御する制御装置で動作する書き込み制御プログラムであって、前記制御装置に、前記フラッシュメモリの空き領域の分散の状態を判定する状態判定処理、前記フラッシュメモリへのデータの書き込みを制御する書き込み制御処理、を実行させ、前記書き込み制御処理では、画像に関する所定の処理に使用するデータを前記フラッシュメモリに書き込む際に、前記フラッシュメモリの空き容量と前記フラッシュメモリの空き領域の分散の状態に基づいて設定される特定容量とを比較し、前記空き容量が前記特定容量以上の場合は、前記データの書き込みを行い、前記空き容量が前記特定容量よりも小さい場合は、前記フラッシュメモリに記憶されている所定のデータを他の記憶手段に待避させて前記特定容量を確保した後、前記データの書き込みを行うことを特徴とする。
【００１０】
本発明の一側面は、画像に関する処理に使用するデータを一時的に記憶するフラッシュメモリを備える画像処理装置における書き込み制御方法であって、前記フラッシュメモリの空き領域の分散の状態を判定する状態判定処理と、前記フラッシュメモリへのデータの書き込みを制御する書き込み制御処理と、を実行し、前記書き込み制御処理では、画像に関する所定の処理に使用するデータを前記フラッシュメモリに書き込む際に、前記フラッシュメモリの空き容量と前記フラッシュメモリの空き領域の分散の状態に基づいて設定される特定容量とを比較し、前記空き容量が前記特定容量以上の場合は、前記データの書き込みを行い、前記空き容量が前記特定容量よりも小さい場合は、前記フラッシュメモリに記憶されている所定のデータを他の記憶手段に待避させて前記特定容量を確保した後、前記データの書き込みを行うことを特徴とする。
【発明の効果】
【００１１】
本発明の画像処理装置及び書き込み制御プログラム並びに書き込み制御方法によれば、フラッシュメモリを使用する処理のパフォーマンスを低下させることなく、適切にデータを書き込むことができる。
【００１２】
その理由は、画像処理装置の制御部（制御プログラム）は、フラッシュメモリのサイズや使用時間、書き込み回数などに基づいてフラッシュメモリの状態を判定し、フラッシュメモリの空き容量とフラッシュメモリの状態に基づいて設定される特定容量とを比較し、空き容量が特定容量以上の場合はデータの書き込みを行い、空き容量が特定容量よりも小さい場合は、フラッシュメモリに記憶されている所定のデータを他の記憶手段に待避させて特定容量を確保した後、データの書き込みを行うからである。
【００１３】
また、画像処理装置の制御部（制御プログラム）は、フラッシュメモリに書き込むデータ量を予測し、予測したデータ量のデータをフラッシュメモリに書き込んだ場合にパフォーマンスを維持できるかを判断し、パフォーマンスを維持できると判断した場合はデータを書き込み、パフォーマンスを維持できないと判断した場合は、フラッシュメモリに記憶されている所定のデータを他の記憶手段に待避させた後に、データの書き込みを行うからである。
【図面の簡単な説明】
【００１４】
【図１】フラッシュメモリへのデータの書き込みの一例を模式的に示す図である。
【図２】フラッシュメモリへのデータの書き込みの他の例を模式的に示す図である。
【図３】フラッシュメモリへのデータの書き込みの他の例を模式的に示す図である。
【図４】本発明の第１の実施例に係る画像処理装置（画像形成装置）の外観を示す模式図である。
【図５】本発明の第１の実施例に係る画像処理装置（画像形成装置）の構成を示すブロック図である。
【図６】本発明の第１の実施例に係る画像処理装置（画像形成装置）の制御部の構成を示すブロック図である。
【図７】本発明の第１の実施例に係る画像処理装置の動作を示すフローチャート図である。
【図８】本発明の第２の実施例に係る画像処理装置（画像形成装置）の制御部の構成を示すブロック図である。
【図９】本発明の第２の実施例に係る画像処理装置の動作を示すフローチャート図である。
【発明を実施するための形態】
【００１５】
フラッシュメモリは、一般に、ゲート電極が２層構造となったＭＯＳ（Metal Oxide Semiconductor）トランジスタ（セル）からなり、ソース線とビット線が個々のセルに繋がっているＮＯＲ型と、複数のセルがソース線とビット線の間に直列に接続されたＮＡＮＤ型と、があり、頻繁に書き換えを行うデータの記録媒体としては、高集積化が可能なＮＡＮＤ型のフラッシュメモリ（以下、単にＮＡＮＤフラッシュメモリと称する。）が広く使用されている。いずれの場合も、浮遊ゲートとシリコン基板の間に高電界を加え、ゲート絶縁膜をトンネリングさせて電子を浮遊ゲートに注入することによってデータの書き込みを行う。このようなフラッシュメモリは、以下のような特徴を有する。
【００１６】
［書き込み／消去単位］
上述したように、フラッシュメモリでは、浮遊ゲートに電子を注入することによりデータを記憶するため、データを書き込む場合には、浮遊ゲートから電子を取り出した後、浮遊ゲートに電子を注入する必要がある。すなわち、フラッシュメモリはオーバーライトができないため、一旦データを消去して、次に新しいデータを書き込むという２段階の動作が必要となる。その際、ＮＡＮＤフラッシュメモリでは、セルを駆動するのに必要な導線を複数のセルで共有しており、その構造上、データの書き込み、読み込みは複数ビットからなるページ単位（例えば、2kbyte）で行うことができるが、消去は複数ページからなるブロック単位（例えば、128kbyte）で行うため、小さいデータを書き込む場合でもブロック全体を消去しなければならない。例えば、ユーザから見て１ビットの変更を加える場合であっても、フラッシュメモリの内部では最低でも１ブロック分（128kB）の消去が必要となり、フラッシュメモリ上でデータを管理するための大きなオーバーヘッドが発生する。そして、オーバーヘッドが大きいと不必要な読み書きが増え、その結果、トンネル酸化膜に格子欠陥が発生することに起因してフラッシュメモリの性能（データ保持期間）が低下し、同時に寿命も短くなる。
【００１７】
［ウェアレベリング］
フラッシュメモリの書き換え限度回数は、フラッシュメモリ全体に対しての回数ではなく、記憶素子（セル）一つに対しての回数によって決定され、一つの記憶素子の書き換え回数が限度を超えただけでもフラッシュメモリ全体として機能しなくなる。そのため、ユーザから見て同じ場所に連続して書いているつもりでもフラッシュメモリ全体で書き換え回数が一定になるように、物理ブロックではデータの移し替えを行っている。この制御をウェアレベリングと呼んでおり、ウェアレベリングにより特定の物理ブロックに書き込みが集中しないように制御している。
【００１８】
［Write Amplification（Ｗ／Ａ）］
フラッシュメモリでは、上述した書き込みと消去の関係やウェアレベリングでの内部でのデータの移し替えにより、ユーザから見た書き込みデータのデータサイズに対し、実際にデバイス内部に書き込まれるデータサイズは大きくなる。このデバイス内部の書き込みデータサイズがどの程度大きくなるかを倍率で示したものが、Ｗ／Ａである。Ｗ／Ａが１になるのが理想的な書き込みであるが、一般には書き込む単位が小さければ小さいほどＷ／Ａの値は大きくなり、それだけＮＡＮＤフラッシュの書き換え可能回数が減っていく。
【００１９】
［ガベージコレクション］
ＮＡＮＤフラッシュメモリはブロック単位の消去しかできないために、不要なデータがあってもそのままでは消去できない。そこで、ＮＡＮＤフラッシュメモリでは、使用されていない領域（空き領域）を整理し、未使用領域（未使用ブロック）を作り出す機能を持たせており、この機能をガベージコレクションと呼んでいる。
【００２０】
このように、ＮＡＮＤフラッシュメモリは、その構造上、本来のデータの書き込み以外の読み書きが発生して性能が低下することから、各メーカーでは、Ｗ／Ａが小さくなるような書き込みとウェアレベリングの両立を図りながら、時にガベージコレクションを行なってパフォーマンスと寿命を確保できるように、ＮＡＮＤコントローラやファームウェアを設計している。しかしながら、設計を工夫しても、ＮＡＮＤフラッシュメモリの状態によっては、パフォーマンスの低下が生じる。以下、具体的なデータを例示してＮＡＮＤフラッシュメモリにおける問題を説明する。
【００２１】
［空のブロックにデータを書き込むケース］
図１に示すように、１ブロックサイズが128kBのフラッシュメモリ（右図参照）に対して、200kBのデータ（左図参照）を書き込む場合、200kB／128kB＝1.56となることから、２ブロック分のデータを消去してから書き込む必要があり（右図のドットのハッチング領域）、上述したＷ／Ａは、128kB×２／200kB＝1.28となる。
【００２２】
［データが保存されているブロックにデータを書き込むケース］
フラッシュメモリに対する書き込みを繰り返し行った場合や、ウェアレベリングによってデータの移し替えが行われた場合、データは分散して記憶される。例えば、図２に示すような空き領域（破線の斜線のハッチング示す部分）が生じた状態のフラッシュメモリに対して、図１と同様のデータを書き込む場合、書き込みデータを更に分割しなければならない。例えば、図３に示すように、物理的には４ブロック分のデータを消去してからマージして書き込みを行わなければならない。このとき、Ｗ／Ａは、4×128kB／200kB＝2.56となり、空きブロックにデータを書き込む場合に比べて、実際の書き込み量は２倍に増えることになる。
【００２３】
特に、ブロックの空き領域が小さくなるほどデータが分散されて書き込まれるため、１ブロックあたりに新たに書き込むサイズｘは小さくなる。そして、Ｗ／Ａはサイズｘに反比例するため、書き込み単位が小さくなるほどＷ／Ａの値は大きくなり、書き込み量の増加に伴ってパフォーマンスが低下する。また、図２の状態でガベージコレクションを行った場合、空きブロックを作ってからデータの書き込みが行われるため、データ書き込み時のブロックの消去量は図１と同様に２ブロック分となるが、ガベージコレクション時にデータの移し替えを行うため、このデータの移し替えも加味すると、図１の場合に比べてデータの書き込み効率は悪くなり、やはりパフォーマンスが低下する。
【００２４】
このように、フラッシュメモリにデータを書き込む場合、実際の書き込み量は大きくなり、パフォーマンスを低下させてしまう。特に、書き込みを繰り返し行ったり、ウェアレベリングによってデータの移し替えが行われたりすると、データが分散するため、実際の書き込み量は更に大きくなり、パフォーマンスを更に低下させてしまう。また、データの書き込み時にガベージコレクションを行うと、データの移し替えによってパフォーマンスを低下させてしまう。
【００２５】
そこで、本発明の一実施の形態では、フラッシュメモリのサイズや使用時間、書き込み回数などに基づいて規定されるフラッシュメモリの状態に応じて、パフォーマンスを維持してデータを書き込むことができる容量（以下、特定容量と呼ぶ。）が動的に変化することから、データの書き込みに際して、特定容量を確保できると判断した場合はデータの書き込みを行い、特定容量を確保できないと判断した場合はフラッシュメモリ内の所定のデータを待避させて特定容量を確保してから、データの書き込みを行うように制御する。別の言い方をすると、書き込むデータ量を予測し、予測したデータ量のデータを書き込んでも処理のパフォーマンスを維持できると判断した場合はデータの書き込みを行い、処理のパフォーマンスを維持できないと判断した場合は、フラッシュメモリ内の所定のデータを待避させてパフォーマンスを維持できる状態にしてから、データの書き込みを行うように制御する。
【００２６】
このように、フラッシュメモリをバッファメモリとして使用する装置の動作時に、フラッシュメモリに特定容量を確保できない若しくは処理のパフォーマンスを維持できない場合はフラッシュメモリ内の所定のデータを一旦退避させてからフラッシュメモリを使用する処理（例えば、画像形成装置のコピー処理やスキャン処理）を実行するため、パフォーマンの低下を回避しつつ、適切にデータを書き込むことができる。
【実施例１】
【００２７】
上記した本発明の実施の形態についてさらに詳細に説明すべく、本発明の第１の実施例に係る画像処理装置及び書き込み制御プログラム並びに書き込み制御方法について、図４乃至図７を参照して説明する。図４は、本実施例の画像処理装置の外観構成を示す模式図であり、図５は、画像処理装置の構成を示すブロック図である。また、図６は、画像処理装置の制御部の構成を示すブロック図であり、図７は、画像処理装置の動作を示すフローチャート図である。
【００２８】
図４に示すように、本実施例の画像処理装置は、ＭＦＰなどの画像形成装置１０であり、原稿を光学的に読み取って画像データを取得し、その画像データに基づく画像を記録紙に印刷したり、外部のコンピュータ装置などから印刷ジョブを取得し、印刷ジョブで指定された原稿の画像データに基づく画像を記録紙に印刷したり、画像データを記憶／出力したりする。
【００２９】
具体的には、図５に示すように、画像形成装置１０は、制御部２０と装置本体３０とで構成される。
【００３０】
制御部２０は、ＣＰＵ（Central Processing Unit）２１と、ＲＡＭ２２と、フラッシュメモリ２３などで構成される。ＣＰＵ２１は、フラッシュメモリ２３からプログラムやデータを読み出し、ＲＡＭ２２に展開して実行することにより、画像形成装置１０の全体制御や画像処理などを行う。フラッシュメモリ２３は、ＣＰＵ２１が実行するプログラムやデータなどを格納する。ＲＡＭ２２は、ＣＰＵ２１の演算処理結果や一時的に記憶するデータなどを格納する。
【００３１】
上記フラッシュメモリ２３は、ＮＡＮＤ型のフラッシュメモリであり、データの読み出し／書き込み／消去を制御するＮＡＮＤコントローラとデータを記憶するＮＡＮＤフラッシュメモリ本体とを含み、ＮＡＮＤフラッシュメモリ本体には、装置を起動するためのブートプログラムや起動時に使用するデータ、後述する書き込み制御プログラムなどに加えて、好ましくは別のパーティションに、画像形成装置１０が有する機能（スキャンやコピーなど）を実行する際に使用する画像データが格納される。このフラッシュメモリには、単一メモリセルあたりにデータを多値で記録する構造（ＭＬＣ：Multi Level Cellと呼ぶ。）、単一メモリセルあたりにデータを２値で記録する構造（ＳＬＣ：Single Level Cellと呼ぶ。）があり、本実施例ではどちらの構造でもよいが、ＳＬＣとＭＬＣとが１つのメモリ内で動作するデュアルモードを搭載したｅＭＭＣを使用し、例えば、ＳＬＣの領域にプログラム等を記憶し、ＭＬＣの領域に画像データを記憶する。なお、フラッシュメモリ２３は上記構成に限定されず、プログラム等をＮＯＲ型のフラッシュメモリに格納し、画像データ等をＮＡＮＤ型のフラッシュメモリに格納する構成としてもよい。
【００３２】
装置本体３０は、パネル３１と、スキャナ３２と、エンジン３３などで構成される。
【００３３】
パネル３１は、ＬＣＤ（Liquid Crystal Display）や有機ＥＬ（Electro Luminescence）表示装置上に、電極が格子状に配列されたタッチパネルなどであり、スキャンやコピーなどの機能を実現するための各種画面を表示すると共に、これらの機能に対する各種指示を受け付ける。
【００３４】
スキャナ３２は、原稿台に載置された原稿の画像を光学的に読み取る部分であり、原稿を走査する光源と、原稿で反射された光を電気信号に変換するＣＣＤ（Charge Coupled Devices）等のイメージセンサと、電気信号をＡ／Ｄ変換するＡ／Ｄ変換器等により構成される。
【００３５】
エンジン３３は、電子写真方式や静電記録方式等の作像プロセスを利用した画像形成に必要な構成要素で構成され、フラッシュメモリ２３に記憶した画像データに基づいて記録紙に画像を形成する。具体的には、帯電装置により帯電された感光体ドラムに露光装置から画像に応じた光を照射して静電潜像を形成し、現像装置で帯電したトナーを付着させて現像し、そのトナー像を転写ベルトに１次転写し、転写ベルトから紙媒体に２次転写し、更に定着装置で紙媒体にトナー像を定着させる処理を行う。
【００３６】
なお、図５は本実施例の画像形成装置１０の一例であり、その構成は適宜変更可能である。例えば、通信Ｉ／Ｆ部を設け、ネットワークに接続されるコンピュータ装置などから取得した印刷ジョブに基づいて印刷処理を実行できるようにしたり、ＦＡＸの送受信ができるようにしたりしてもよい。また、図５では、画像形成装置１０を制御部２０と装置本体３０とで構成したが、画像形成装置１０を制御する制御装置（プリンタコントローラ）に制御部２０（書き込み制御プログラム）の機能を持たせるようにしてもよい。
【００３７】
上記構成の画像形成装置１０では、スキャナ３２で読み取った画像データ、外部のコンピュータ装置から取得した印刷ジョブなどは通常はＲＡＭ２２に記憶して制御部２０で画像処理されるが、フラッシュメモリ２３をバッファメモリとして使用して一時的に記憶する場合もある。例えば、複数ページの画像を片面１ページで複数部形成する際に、複数ページの画像を一部ずつ印刷するコレート印刷を行う場合は、フラッシュメモリ２３に複数ページの画像データを一時的に保存して一部ずつ印刷処理を実行する。また、スキャン時の画像処理において、中間データを一時的にフラッシュメモリ２３に保存する場合がある。
【００３８】
このような処理を行う場合に、フラッシュメモリ２３には複数ページの画像データや中間データを記憶可能な空き容量（各ブロックの空き領域を合計した容量）が必要であることはもちろんであるが、これらのデータを記憶可能な空き容量があったとしても、フラッシュメモリでは実際の書き込み量は大きくなり、更に、個々の空き領域が分散している場合には、これらのデータを分割して書き込まなければならないため、データの書き込みに時間がかかることにより印刷処理やスキャン処理のパフォーマンスが低下する。特に、フラッシュメモリ２３の状態（サイズや使用時間、書き込み回数等）に応じて空き領域の分散の程度が異なり、空き領域が散在している場合はデータの分割数が増え、印刷処理やスキャン処理のパフォーマンスが著しく低下する。
【００３９】
そこで本実施例では、図６に示すように、制御部２０を、状態判定部２４及び書き込み制御部２５として機能させることによって、パフォーマンスの低下を抑制する。
【００４０】
状態判定部２４は、フラッシュメモリ２３のサイズ、使用時間、書き込み回数などの情報をＮＡＮＤコントローラから取得し、これらの情報に基づいてフラッシュメモリ２３の状態（データがどの程度、分散して記憶されているか、データが記憶されていない空きブロックがどの程度あるかなど）を判定する。なお、フラッシュメモリ２３のサイズ、使用時間、書き込み回数などとフラッシュメモリ２３の状態とは、予め行った実験やシミュレーションの結果などに基づいて関連付けることができる。
【００４１】
書き込み制御部２５は、画像形成装置１０が有する機能を用いて処理を実行するためにフラッシュメモリ２３にデータを書き込む際に、フラッシュメモリ２３の状態に基づいて設定される特定容量（パフォーマンスを維持してデータを書き込むことができる容量、すなわち、データを極力分散させずに書き込むことができる領域であり、書き込むデータのデータ量にフラッシュメモリ２３の状態に応じて動的に変化する容量を付加した容量）を確保できるかを判断する。具体的には、フラッシュメモリ２３の状態に基づいて特定容量を設定し、空き容量が特定容量以上であれば、フラッシュメモリ２３にデータを書き込む。一方、空き容量が特定容量よりも小さければ、書き込み済みのデータの中の所定のデータを、必要に応じて圧縮してＲＡＭ２２などの他の記憶手段に待避させて特定容量を確保した後、フラッシュメモリ２３にデータを書き込み、処理が終了した後、ＲＡＭ２２などに退避させたデータを必要に応じて解凍（伸張若しくは展開）してフラッシュメモリ２３に書き戻す。なお、パフォーマンスをどの程度のレベルに維持するかは機能毎に設定することができ、データが記憶されていない状態のフラッシュメモリ２３をバッファメモリとして使用した場合のパフォーマンスを基準にして設定することができる。また、特定容量は、予め行った実験やシミュレーションの結果などに基づいて、フラッシュメモリ２３の状態に関連付けることができる。また、待避させる所定のデータは、最後のアクセスが相対的に古い、アクセス頻度が相対的に低い、又は、重要度が相対的に低いものから順に選択することができる。また、他の記憶手段はＲＡＭ２２に限らず、画像形成装置１０に内蔵若しくは外付けされたＨＤＤ（Hard Disk Drive）などとしてもよい。
【００４２】
また、上記状態判定部２４及び書き込み制御部２５はハードウェアとして構成してもよいし、制御部２０を、状態判定部２４及び書き込み制御部２５として機能させる書き込み制御プログラムとして構成し、当該書き込み制御プログラムをＣＰＵ２１に実行させるようにしてもよい。
【００４３】
以下、上記構成の画像形成装置１０の動作について説明する。ＣＰＵ２１は、フラッシュメモリ２３に記憶した書き込み制御プログラムをＲＡＭ２２に展開して実行することにより、図７のフローチャート図に示す各ステップの処理を実行する。なお、図７では印刷処理を例にして説明する。
【００４４】
まず、制御部２０は、パネル３１を用いて指示された処理がコレート印刷であるかを判断する（Ｓ１０１）。コレート印刷でない場合は、フラッシュメモリ２３に複数ページの画像データを一時的に記憶する必要がない（ＲＡＭ２２に記憶すればよい）ため、通常の印刷処理を行う（Ｓ１０２）。
【００４５】
一方、指示された処理がコレート印刷の場合は、制御部２０（状態判定部２４）は、フラッシュメモリ２３のサイズ、使用時間、書き込み回数などに基づいてフラッシュメモリ２３の状態を判定する（Ｓ１０３）。次に、制御部２０（書き込み制御部２５）は、フラッシュメモリ２３の状態に基づき、コレート印刷のパフォーマンスを維持してデータを書き込むことができる特定容量を設定し（Ｓ１０４）、特定容量を確保可能であるかを判断する（Ｓ１０５）。空き容量が特定容量以上であれば、制御部２０（書き込み制御部２５）は、フラッシュメモリ２３をバッファメモリとして使用して画像データを書き込みながら印刷処理を実行する（Ｓ１０６）。
【００４６】
一方、空き容量が特定容量よりも小さければ、制御部２０（書き込み制御部２５）は、予めフラッシュメモリ２３に記憶されているデータの中の所定のデータを必要に応じて圧縮してＲＡＭ２２などの他の記憶手段に退避させて特定容量を確保する（Ｓ１０７）。なお、待避させるデータは特に限定されないが、使用する可能性が低いものを選択することが好ましく、例えば、予め記憶した履歴情報に基づき、最後のアクセスが相対的に古い、又はアクセス頻度が相対的に低い、又は重要度が相対的に低い順に選択することができる。その後、フラッシュメモリ２３をバッファメモリとして使用して画像データを書き込みながら印刷処理を実行する（Ｓ１０８）。そして、コレート印刷処理が終了した後、又は一定時間操作がなく電力消費を抑えるモードに入る直前に、ＲＡＭ２２などに退避させたデータを必要に応じて解凍してフラッシュメモリ２３に書き戻す（Ｓ１０９）。
【００４７】
図７は、印刷処理の場合の例であるが、スキャン処理の場合は、自動紙送り装置（ＡＤＦ：Auto Document Feeder）を用いるスキャンであるか、原稿台（フラットベット）を用いるスキャンであるかを判断し、ＡＤＦを用いるスキャンの場合は、連続して原稿を読み取ることによりフラッシュメモリ２３に多くの空き容量が必要になることから、上記と同様にフラッシュメモリ２３の空き容量をチェックする。そして、フラッシュメモリ２３の空き容量が特定容量以上であれば、フラッシュメモリ２３をバッファメモリとして使用してスキャンデータを書き込みながらスキャン処理を実行する。一方、空き容量が特定容量よりも小さければ、予めフラッシュメモリ２３に記憶されているデータの中の所定のデータ（例えば、最後のアクセスが相対的に古いデータ）を必要に応じて圧縮してＲＡＭ２２などの他の記憶手段に退避させて特定容量を確保した後、フラッシュメモリ２３をバッファメモリとして使用してスキャンデータを書き込みながらスキャン処理を実行する。そして、スキャン処理が終了した後、又は一定時間操作がなく電力消費を抑えるモードに入る直前に、ＲＡＭ２２などに退避させたデータを必要に応じて解凍してフラッシュメモリ２３に書き戻すようにすればよい。
【００４８】
このように、本実施例では、フラッシュメモリ２３の状態に応じて動的に変化する、指示された処理のパフォーマンスを維持してデータを書き込むことができる特定容量を確保できるようにデータを待避させる制御を行うため、パフォーマンスの低下を回避しつつ、適切にデータを書き込むことができる。
【実施例２】
【００４９】
次に、本発明の第２の実施例に係る画像処理装置及び書き込み制御プログラム並びに書き込み制御方法について、図８及び図９を参照して説明する。図８は、本実施例の画像処理装置の制御部の構成を示すブロック図であり、図９は、画像処理装置の動作を示すフローチャート図である。
【００５０】
前記した第１の実施例では、フラッシュメモリ２３の状態を判定し、その状態に応じて特定容量を設定し、特定容量を確保できるかを判断したが、書き込みデータのデータ量を予測し、そのデータ量のデータを書き込んだ際に指示された処理のパフォーマンスを維持できるかを判断することもできる。
【００５１】
その場合、画像処理装置（画像形成装置１０）の構成は第１の実施例の図４と同様であるが、制御部２０は、図８に示すように、データ予測部２６、書き込み制御部２５として機能する。
【００５２】
データ予測部２６は、指示された処理を特定し、その処理の設定情報（カラー／モノクロ、解像度、用紙サイズ、ページ数など）に基づいて、フラッシュメモリ２３に書き込むデータのデータ量を予測する。
【００５３】
書き込み制御部２５は、フラッシュメモリ２３の空き領域に予測したデータ量のデータを書き込んだ場合に、指示された処理のパフォーマンスを維持できるか否かを判断する。そして、指示された処理のパフォーマンスを維持できないと判断した場合は、書き込み済みのデータの中の所定のデータ（例えば、最終アクセスが相対的に古いデータ）をＲＡＭ２２に待避させて空き容量を増やした後、フラッシュメモリ２３にデータを書き込み、指示された処理が終了した後、ＲＡＭ２２などに退避させたデータをフラッシュメモリ２３に書き戻す。なお、どの程度のデータ量のデータを書き込んだ場合に、指示された処理のパフォーマンスを維持できるか否かは、予め行った実験やシミュレーションの結果などに基づいて判断することができる。
【００５４】
また、上記データ予測部２６及び書き込み制御部２５はハードウェアとして構成してもよいし、制御部を、データ予測部２６及び書き込み制御部２５として機能させる書き込み制御プログラムとして構成し、当該書き込み制御プログラムをＣＰＵ２１に実行させるようにしてもよい。
【００５５】
以下、上記構成の画像形成装置１０の動作について説明する。ＣＰＵ２１は、フラッシュメモリ２３に記憶した書き込み制御プログラムをＲＡＭ２２に展開して実行することにより、図９のフローチャート図に示す各ステップの処理を実行する。なお、図９では印刷処理を例にして説明する。
【００５６】
まず、制御部２０は、パネル３１を用いて指示された処理がコレート印刷であるかを判断する（Ｓ２０１）。コレート印刷でない場合は、フラッシュメモリ２３に複数ページの画像データを一時的に記憶する必要がない（ＲＡＭ２２に記憶すればよい）ため、通常の印刷処理を行う（Ｓ２０２）。
【００５７】
一方、指示された処理がコレート印刷の場合は、制御部２０（データ予測部２６）は、指示された処理の設定情報（カラー／モノクロ、解像度、用紙サイズ、ページ数など）に基づいて、フラッシュメモリ２３に書き込むデータ量を予測する（Ｓ２０３）。次に、制御部２０（書き込み制御部２５）は、予測したデータ量のデータをフラッシュメモリ２３に書き込んだ場合に、指示された処理のパフォーマンスを維持できるかを判断する（Ｓ２０４）。パフォーマンスを維持できると判断した場合は、制御部２０（書き込み制御部２５）は、フラッシュメモリ２３をバッファメモリとして使用して画像データを書き込みながら印刷処理を実行する（Ｓ２０５）。一方、パフォーマンスを維持できないと判断した場合は、制御部２０（書き込み制御部２５）は、予めフラッシュメモリ２３に記憶されているデータの中の所定のデータ（例えば、最後のアクセスが相対的に古いデータ）を必要に応じて圧縮してＲＡＭ２２などの他の記憶手段に退避させた後（Ｓ２０６）、フラッシュメモリ２３をバッファメモリとして使用して画像データを書き込みながら印刷処理を実行する（Ｓ２０７）。そして、コレート印刷処理が終了した後、又は一定時間操作がなく電力消費を抑えるモードに入る直前に、ＲＡＭ２２などに退避させたデータを必要に応じて解凍してフラッシュメモリ２３に書き戻す（Ｓ２０８）。
【００５８】
図９は、印刷処理の場合の例であるが、スキャン処理の場合は、ＡＤＦを用いるスキャンであるか、フラットベットを用いるスキャンであるかで判断し、ＡＤＦを用いるスキャンの場合は、連続して原稿を読み取ることによりフラッシュメモリ２３に多くの空き容量が必要になることから、上記と同様に書き込むデータ量を予測し、予測したデータ量のデータをフラッシュメモリ２３に書き込んだ場合に、スキャン処理のパフォーマンスを維持できるかを判断する。そして、パフォーマンスを維持できると判断した場合は、フラッシュメモリ２３をバッファメモリとして使用してスキャンデータを書き込みながらスキャン処理を実行する。一方、パフォーマンスを維持できないと判断した場合は、予めフラッシュメモリ２３に記憶されているデータの中の所定のデータ（例えば、最後のアクセスが相対的に古いデータ）を必要に応じて圧縮してＲＡＭ２２などの他の記憶手段に退避させた後、フラッシュメモリ２３をバッファメモリとして使用してスキャンデータを書き込みながらスキャン処理を実行する。そして、スキャン処理が終了した後、又は一定時間操作がなく電力消費を抑えるモードに入る直前に、ＲＡＭ２２などに退避させたデータを必要に応じて解凍してフラッシュメモリ２３に書き戻すようにすればよい。
【００５９】
このように、本実施例では、書き込むデータ量を予測し、予測したデータ量のデータをフラッシュメモリ２３に書き込んだら処理のパフォーマンスを維持できないと判断した場合にデータを待避させる制御を行うため、パフォーマンスの低下を回避しつつ、適切にデータを書き込むことができる。
【００６０】
なお、本発明は上記実施例に限定されるものではなく、本発明の趣旨を逸脱しない限りにおいて、その構成や制御は適宜変更可能である。
【００６１】
例えば、上記実施例では、画像処理装置として画像形成装置１０を例にして説明したが、フラッシュメモリを備える任意の画像処理装置に対して、本発明の制御を同様に適用することができる。
【産業上の利用可能性】
【００６２】
本発明は、フラッシュメモリを備える画像処理装置、当該フラッシュメモリへのデータの書き込みを制御する書き込み制御プログラム及び当該書き込み制御プログラムを記憶した記録媒体並びに当該画像処理装置における書き込み制御方法に利用可能である。
【符号の説明】
【００６３】
１０  画像形成装置
２０  制御部
２１  ＣＰＵ
２２  ＲＡＭ
２３  フラッシュメモリ
２４  状態判定部
２５  書き込み制御部
２６  データ予測部
３０  装置本体
３１  パネル
３２  スキャナ
３３  エンジン
【図１】
0006405736.tif 000002
【図２】
0006405736.tif 000003
【図３】
0006405736.tif 000004
【図４】
0006405736.tif 000005
【図５】
0006405736.tif 000006
【図６】
0006405736.tif 000007
【図７】
0006405736.tif 000008
【図８】
0006405736.tif 000009
【図９】
0006405736.tif 000010