(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6405736
(24)【登録日】2018年9月28日
(45)【発行日】2018年10月17日
(54)【発明の名称】画像処理装置及び書き込み制御プログラム並びに書き込み制御方法
(51)【国際特許分類】
G06F 12/02 20060101AFI20181004BHJP
G06F 12/00 20060101ALI20181004BHJP
【FI】
G06F12/02 530E
G06F12/00 597U
【請求項の数】26
【全頁数】17
(21)【出願番号】特願2014-123951(P2014-123951)
(22)【出願日】2014年6月17日
(65)【公開番号】特開2016-4403(P2016-4403A)
(43)【公開日】2016年1月12日
【審査請求日】2017年4月19日
(73)【特許権者】
【識別番号】000001270
【氏名又は名称】コニカミノルタ株式会社
(74)【代理人】
【識別番号】100114672
【弁理士】
【氏名又は名称】宮本 恵司
(72)【発明者】
【氏名】中山 佳実
【審査官】
酒井 恭信
(56)【参考文献】
【文献】
特開2006−238316(JP,A)
【文献】
特開2012−133651(JP,A)
【文献】
特開平11−003255(JP,A)
【文献】
米国特許第06603509(US,B1)
【文献】
特開2008−028727(JP,A)
【文献】
特開2012−178656(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/02
G06F 12/00
(57)【特許請求の範囲】
【請求項1】
画像に関する処理に使用するデータを一時的に記憶するフラッシュメモリを備える画像処理装置において、
前記フラッシュメモリの空き領域の分散の状態を判定する状態判定部と、
前記フラッシュメモリへのデータの書き込みを制御する書き込み制御部と、を備え、
前記書き込み制御部は、画像に関する所定の処理に使用するデータを前記フラッシュメモリに書き込む際に、前記フラッシュメモリの空き容量と前記フラッシュメモリの空き領域の分散の状態に基づいて設定される特定容量とを比較し、前記空き容量が前記特定容量以上の場合は、前記データの書き込みを行い、前記空き容量が前記特定容量よりも小さい場合は、前記フラッシュメモリに記憶されている所定のデータを他の記憶手段に待避させて前記特定容量を確保した後、前記データの書き込みを行う、ことを特徴とする画像処理装置。
【請求項2】
前記フラッシュメモリの空き領域の分散の状態は、前記フラッシュメモリのサイズ、使用時間、書き込み回数の少なくとも一つに基づいて規定され、
前記特定容量は、書き込むデータのデータ量に前記フラッシュメモリの空き領域の分散の状態に応じて変化する容量を付加した容量であり、
前記特定容量を確保することにより、前記所定の処理のパフォーマンスが維持される、ことを特徴とする請求項1に記載の画像処理装置。
【請求項3】
前記書き込み制御部は、コレート印刷を行う場合に、前記空き容量と前記特定容量との比較を行う、ことを特徴とする請求項2に記載の画像処理装置。
【請求項4】
前記書き込み制御部は、自動紙送り装置から搬送される複数の原稿をスキャンする場合に、前記空き容量と前記特定容量との比較を行う、ことを特徴とする請求項3に記載の画像処理装置。
【請求項5】
画像に関する処理に使用するデータを一時的に記憶するフラッシュメモリを備える画像処理装置において、
画像に関する所定の処理の実行時に前記フラッシュメモリに書き込まれるデータ量を予測するデータ予測部と、
前記フラッシュメモリへのデータの書き込みを制御する書き込み制御部と、を備え、
前記書き込み制御部は、前記所定の処理に使用するデータを前記フラッシュメモリに書き込む際に、前記予測したデータ量のデータを前記フラッシュメモリに書き込んだ場合に前記所定の処理のパフォーマンスを維持できるか否かを前記フラッシュメモリの空き領域の分散の状態に基づいて判断し、前記パフォーマンスを維持できると判断した場合は、前記データの書き込みを行い、前記パフォーマンスを維持できないと判断した場合は、前記フラッシュメモリに記憶されている所定のデータを他の記憶手段に待避させた後、前記データの書き込みを行う、ことを特徴とする画像処理装置。
【請求項6】
前記書き込み制御部は、コレート印刷を行う場合に、前記パフォーマンスを維持できるか否かの判断を行う、ことを特徴とする請求項5に記載の画像処理装置。
【請求項7】
前記書き込み制御部は、自動紙送り装置から搬送される複数の原稿をスキャンする場合に、前記パフォーマンスを維持できるか否かの判断を行う、ことを特徴とする請求項6に記載の画像処理装置。
【請求項8】
前記書き込み制御部は、前記所定の処理が終了した後、前記待避させた所定のデータを前記フラッシュメモリに書き戻す、ことを特徴とする請求項1乃至7のいずれか一に記載の画像処理装置。
【請求項9】
前記書き込み制御部は、前記所定のデータを圧縮して前記他の記憶手段に待避させる、ことを特徴とする請求項1乃至8のいずれか一に記載の画像処理装置。
【請求項10】
前記書き込み制御部は、前記フラッシュメモリに記憶されているデータの内の、最後のアクセスが相対的に古い、アクセス頻度が相対的に低い、又は、重要度が相対的に低いデータを前記所定のデータとして選択する、ことを特徴とする請求項1乃至9のいずれか一に記載の画像処理装置。
【請求項11】
前記フラッシュメモリは、複数のセルからなるページ単位で書き込みを行い、複数のページからなるブロック単位で消去を行うNANDフラッシュメモリである、ことを特徴とする請求項1乃至10のいずれか一に記載の画像処理装置。
【請求項12】
前記画像処理装置は、画像形成装置であり、
前記フラッシュメモリは、スキャン処理又は印刷処理に使用するデータを一時的に記憶するバッファメモリとして使用される、ことを特徴とする請求項1乃至11のいずれか一に記載の画像処理装置。
【請求項13】
画像に関する処理に使用するデータを一時的に記憶するフラッシュメモリを備える、画像処理装置を制御する制御装置で動作する書き込み制御プログラムであって、
前記制御装置に、
前記フラッシュメモリの空き領域の分散の状態を判定する状態判定処理、
前記フラッシュメモリへのデータの書き込みを制御する書き込み制御処理、を実行させ、
前記書き込み制御処理では、画像に関する所定の処理に使用するデータを前記フラッシュメモリに書き込む際に、前記フラッシュメモリの空き容量と前記フラッシュメモリの空き領域の分散の状態に基づいて設定される特定容量とを比較し、前記空き容量が前記特定容量以上の場合は、前記データの書き込みを行い、前記空き容量が前記特定容量よりも小さい場合は、前記フラッシュメモリに記憶されている所定のデータを他の記憶手段に待避させて前記特定容量を確保した後、前記データの書き込みを行う、ことを特徴とする書き込み制御プログラム。
【請求項14】
前記フラッシュメモリの空き領域の分散の状態は、前記フラッシュメモリのサイズ、使用時間、書き込み回数の少なくとも一つに基づいて規定され、
前記特定容量は、書き込むデータのデータ量に前記フラッシュメモリの空き領域の分散の状態に応じて変化する容量を付加した容量であり、
前記特定容量を確保することにより、前記所定の処理のパフォーマンスが維持される、ことを特徴とする請求項13に記載の書き込み制御プログラム。
【請求項15】
画像に関する処理に使用するデータを一時的に記憶するフラッシュメモリを備える、画像処理装置を制御する制御装置で動作する書き込み制御プログラムであって、
前記制御装置に、
画像に関する所定の処理の実行時に前記フラッシュメモリに書き込まれるデータ量を予測するデータ予測処理、
前記フラッシュメモリへのデータの書き込みを制御する書き込み制御処理、を実行させ、
前記書き込み制御処理では、前記所定の処理に使用するデータを前記フラッシュメモリに書き込む際に、前記予測したデータ量のデータを前記フラッシュメモリに書き込んだ場合に前記所定の処理のパフォーマンスを維持できるか否かを前記フラッシュメモリの空き領域の分散の状態に基づいて判断し、前記パフォーマンスを維持できると判断した場合は、前記データの書き込みを行い、前記パフォーマンスを維持できないと判断した場合は、前記フラッシュメモリに記憶されている所定のデータを他の記憶手段に待避させた後、前記データの書き込みを行う、ことを特徴とする書き込み制御プログラム。
【請求項16】
前記書き込み制御処理では、前記所定の処理が終了した後、前記待避させた所定のデータを前記フラッシュメモリに書き戻す、ことを特徴とする請求項13乃至15のいずれか一に記載の書き込み制御プログラム。
【請求項17】
前記書き込み制御処理では、前記所定のデータを圧縮して前記他の記憶手段に待避させる、ことを特徴とする請求項13乃至16のいずれか一に記載の書き込み制御プログラム。
【請求項18】
前記書き込み制御処理では、前記フラッシュメモリに記憶されているデータの内の、最後のアクセスが相対的に古い、アクセス頻度が相対的に低い、又は、重要度が相対的に低いデータを前記所定のデータとして選択する、ことを特徴とする請求項13乃至17のいずれか一に記載の書き込み制御プログラム。
【請求項19】
前記フラッシュメモリは、複数のセルからなるページ単位で書き込みを行い、複数のページからなるブロック単位で消去を行うNANDフラッシュメモリである、ことを特徴とする請求項13乃至18のいずれか一に記載の書き込み制御プログラム。
【請求項20】
画像に関する処理に使用するデータを一時的に記憶するフラッシュメモリを備える画像処理装置における書き込み制御方法であって、
前記フラッシュメモリの空き領域の分散の状態を判定する状態判定処理と、
前記フラッシュメモリへのデータの書き込みを制御する書き込み制御処理と、を実行し、
前記書き込み制御処理では、画像に関する所定の処理に使用するデータを前記フラッシュメモリに書き込む際に、前記フラッシュメモリの空き容量と前記フラッシュメモリの空き領域の分散の状態に基づいて設定される特定容量とを比較し、前記空き容量が前記特定容量以上の場合は、前記データの書き込みを行い、前記空き容量が前記特定容量よりも小さい場合は、前記フラッシュメモリに記憶されている所定のデータを他の記憶手段に待避させて前記特定容量を確保した後、前記データの書き込みを行う、ことを特徴とする書き込み制御方法。
【請求項21】
前記フラッシュメモリの空き領域の分散の状態は、前記フラッシュメモリのサイズ、使用時間、書き込み回数の少なくとも一つに基づいて規定され、
前記特定容量は、書き込むデータのデータ量に前記フラッシュメモリの空き領域の分散の状態に応じて変化する容量を付加した容量であり、
前記特定容量を確保することにより、前記所定の処理のパフォーマンスが維持される、ことを特徴とする請求項20に記載の書き込み制御方法。
【請求項22】
画像に関する処理に使用するデータを一時的に記憶するフラッシュメモリを備える画像処理装置における書き込み制御方法であって、
画像に関する所定の処理の実行時に前記フラッシュメモリに書き込まれるデータ量を予測するデータ予測処理と、
前記フラッシュメモリへのデータの書き込みを制御する書き込み制御処理と、を実行し、
前記書き込み制御処理では、前記所定の処理に使用するデータを前記フラッシュメモリに書き込む際に、前記予測したデータ量のデータを前記フラッシュメモリに書き込んだ場合に前記所定の処理のパフォーマンスを維持できるか否かを前記フラッシュメモリの空き領域の分散の状態に基づいて判断し、前記パフォーマンスを維持できると判断した場合は、前記データの書き込みを行い、前記パフォーマンスを維持できないと判断した場合は、前記フラッシュメモリに記憶されている所定のデータを他の記憶手段に待避させた後、前記データの書き込みを行う、ことを特徴とする書き込み制御方法。
【請求項23】
前記書き込み制御処理では、前記所定の処理が終了した後、前記待避させた所定のデータを前記フラッシュメモリに書き戻す、ことを特徴とする請求項20乃至22のいずれか一に記載の書き込み制御方法。
【請求項24】
前記書き込み制御処理では、前記所定のデータを圧縮して前記他の記憶手段に待避させる、ことを特徴とする請求項20乃至23のいずれか一に記載の書き込み制御方法。
【請求項25】
前記書き込み制御処理では、前記フラッシュメモリに記憶されているデータの内の、最後のアクセスが相対的に古い、アクセス頻度が相対的に低い、又は、重要度が相対的に低いデータを前記所定のデータとして選択する、ことを特徴とする請求項20乃至24のいずれか一に記載の書き込み制御方法。
【請求項26】
前記フラッシュメモリは、複数のセルからなるページ単位で書き込みを行い、複数のページからなるブロック単位で消去を行うNANDフラッシュメモリである、ことを特徴とする請求項20乃至25のいずれか一に記載の書き込み制御方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、画像処理装置及び制御プログラム並びに制御方法に関し、特に、フラッシュメモリを備える画像処理装置及び当該フラッシュメモリへのデータの書き込みを制御する制御プログラム並びに制御方法に関する。
【背景技術】
【0002】
記憶媒体としてSSD(Solid State Drive)やeMMC(embedded Multi Media Card)などの不揮発性メモリ(フラッシュメモリ)を採用する画像形成装置が増加してきている。フラッシュメモリの用途としては、プログラムの格納だけでなく、画像データのバッファメモリとして使用し、頻繁にデータの書き換えを行うような使い方も行われている。
【0003】
このようなフラッシュメモリを利用する装置に関して、例えば、下記特許文献1には、ホスト装置から書き込み要求されたデータを記憶する不揮発性メモリと、前記不揮発性メモリにかかるリソースの使用量が所定量に達したとき前記不揮発性メモリにかかるリソースを整理してリソースを増加させるリソース管理部と、前記ホスト装置からの書き込みデータの受信にかかる転送速度の設定値を算出する転送速度設定部と、前記ホスト装置から書き込みデータを受信して、当該受信した書き込みデータを前記不揮発性メモリに転送する転送制御部と、を備え、前記転送速度設定部は、前記不揮発性メモリにかかるリソースの使用量が増加するほど低い設定値を算出し、前記転送制御部は、前記リソース管理部がリソースを整理している間、前記ホスト装置からの書き込みデータの受信を前記転送速度設定部が算出した設定値の転送速度で実行するメモリシステムが開示されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2012−141994号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
後述するように、フラッシュメモリはデバイスの構造上、オーバーライトができず、データを消去してからでないと新たなデータを書き込むことができない。また、ブロック単位でしかデータを消去することができない。そのため、小さいサイズのデータを書こうとすると、ブロックサイズに対して小さいサイズのデータが書き込まれることになり、無駄が多くなる。また、データの書き込みを繰り返し行うと、空きブロックが減少し、部分的にデータが書き込まれたブロックにデータを分割して書き込まなければならなくなるため、多くのブロックにアクセスすることによってデータの書き込みに時間がかかり、フラッシュメモリを使用する処理のパフォーマンスに大きな影響を与える。
【0006】
この空きブロックの減少に関して、リソースを整理してリソースを増加させる処理(後述するガベージコレクション)が行われており、上記特許文献1では、リソース管理部がリソースを整理している間、書き込みデータの転送速度を低く設定する制御を行っている。しかしながら、この方法はガベージコレクションを円滑に進めて空きブロックを作り出すことを目的としており、データの書き込み時にガベージコレクションを行うと、書き込みデータの転送速度が低くなることによってパフォーマンスは低下してしまう。
【0007】
本発明は、上記問題点に鑑みてなされたものであって、その主たる目的は、フラッシュメモリを使用する処理のパフォーマンスを低下させることなく、適切にデータを書き込むことができる画像処理装置及び制御プログラム並びに制御方法を提供することにある。
【課題を解決するための手段】
【0008】
本発明の一側面は、画像に関する処理に使用するデータを一時的に記憶するフラッシュメモリを備える画像処理装置において、前記フラッシュメモリの空き領域の分散の状態を判定する状態判定部と、前記フラッシュメモリへのデータの書き込みを制御する書き込み制御部と、を備え、前記書き込み制御部は、画像に関する所定の処理に使用するデータを前記フラッシュメモリに書き込む際に、前記フラッシュメモリの空き容量と前記フラッシュメモリの
空き領域の分散の状態に基づいて設定される特定容量とを比較し、前記空き容量が前記特定容量以上の場合は、前記データの書き込みを行い、前記空き容量が前記特定容量よりも小さい場合は、前記フラッシュメモリに記憶されている所定のデータを他の記憶手段に待避させて前記特定容量を確保した後、前記データの書き込みを行うことを特徴とする。
【0009】
本発明の一側面は、画像に関する処理に使用するデータを一時的に記憶するフラッシュメモリを備える、画像処理装置を制御する制御装置で動作する書き込み制御プログラムであって、前記制御装置に、前記フラッシュメモリの空き領域の分散の状態を判定する状態判定処理、前記フラッシュメモリへのデータの書き込みを制御する書き込み制御処理、を実行させ、前記書き込み制御処理では、画像に関する所定の処理に使用するデータを前記フラッシュメモリに書き込む際に、前記フラッシュメモリの空き容量と前記フラッシュメモリの
空き領域の分散の状態に基づいて設定される特定容量とを比較し、前記空き容量が前記特定容量以上の場合は、前記データの書き込みを行い、前記空き容量が前記特定容量よりも小さい場合は、前記フラッシュメモリに記憶されている所定のデータを他の記憶手段に待避させて前記特定容量を確保した後、前記データの書き込みを行うことを特徴とする。
【0010】
本発明の一側面は、画像に関する処理に使用するデータを一時的に記憶するフラッシュメモリを備える画像処理装置における書き込み制御方法であって、前記フラッシュメモリの空き領域の分散の状態を判定する状態判定処理と、前記フラッシュメモリへのデータの書き込みを制御する書き込み制御処理と、を実行し、前記書き込み制御処理では、画像に関する所定の処理に使用するデータを前記フラッシュメモリに書き込む際に、前記フラッシュメモリの空き容量と前記フラッシュメモリの
空き領域の分散の状態に基づいて設定される特定容量とを比較し、前記空き容量が前記特定容量以上の場合は、前記データの書き込みを行い、前記空き容量が前記特定容量よりも小さい場合は、前記フラッシュメモリに記憶されている所定のデータを他の記憶手段に待避させて前記特定容量を確保した後、前記データの書き込みを行うことを特徴とする。
【発明の効果】
【0011】
本発明の画像処理装置及び書き込み制御プログラム並びに書き込み制御方法によれば、フラッシュメモリを使用する処理のパフォーマンスを低下させることなく、適切にデータを書き込むことができる。
【0012】
その理由は、画像処理装置の制御部(制御プログラム)は、フラッシュメモリのサイズや使用時間、書き込み回数などに基づいてフラッシュメモリの状態を判定し、フラッシュメモリの空き容量とフラッシュメモリの状態に基づいて設定される特定容量とを比較し、空き容量が特定容量以上の場合はデータの書き込みを行い、空き容量が特定容量よりも小さい場合は、フラッシュメモリに記憶されている所定のデータを他の記憶手段に待避させて特定容量を確保した後、データの書き込みを行うからである。
【0013】
また、画像処理装置の制御部(制御プログラム)は、フラッシュメモリに書き込むデータ量を予測し、予測したデータ量のデータをフラッシュメモリに書き込んだ場合にパフォーマンスを維持できるかを判断し、パフォーマンスを維持できると判断した場合はデータを書き込み、パフォーマンスを維持できないと判断した場合は、フラッシュメモリに記憶されている所定のデータを他の記憶手段に待避させた後に、データの書き込みを行うからである。
【図面の簡単な説明】
【0014】
【
図1】フラッシュメモリへのデータの書き込みの一例を模式的に示す図である。
【
図2】フラッシュメモリへのデータの書き込みの他の例を模式的に示す図である。
【
図3】フラッシュメモリへのデータの書き込みの他の例を模式的に示す図である。
【
図4】本発明の第1の実施例に係る画像処理装置(画像形成装置)の外観を示す模式図である。
【
図5】本発明の第1の実施例に係る画像処理装置(画像形成装置)の構成を示すブロック図である。
【
図6】本発明の第1の実施例に係る画像処理装置(画像形成装置)の制御部の構成を示すブロック図である。
【
図7】本発明の第1の実施例に係る画像処理装置の動作を示すフローチャート図である。
【
図8】本発明の第2の実施例に係る画像処理装置(画像形成装置)の制御部の構成を示すブロック図である。
【
図9】本発明の第2の実施例に係る画像処理装置の動作を示すフローチャート図である。
【発明を実施するための形態】
【0015】
フラッシュメモリは、一般に、ゲート電極が2層構造となったMOS(Metal Oxide Semiconductor)トランジスタ(セル)からなり、ソース線とビット線が個々のセルに繋がっているNOR型と、複数のセルがソース線とビット線の間に直列に接続されたNAND型と、があり、頻繁に書き換えを行うデータの記録媒体としては、高集積化が可能なNAND型のフラッシュメモリ(以下、単にNANDフラッシュメモリと称する。)が広く使用されている。いずれの場合も、浮遊ゲートとシリコン基板の間に高電界を加え、ゲート絶縁膜をトンネリングさせて電子を浮遊ゲートに注入することによってデータの書き込みを行う。このようなフラッシュメモリは、以下のような特徴を有する。
【0016】
[書き込み/消去単位]
上述したように、フラッシュメモリでは、浮遊ゲートに電子を注入することによりデータを記憶するため、データを書き込む場合には、浮遊ゲートから電子を取り出した後、浮遊ゲートに電子を注入する必要がある。すなわち、フラッシュメモリはオーバーライトができないため、一旦データを消去して、次に新しいデータを書き込むという2段階の動作が必要となる。その際、NANDフラッシュメモリでは、セルを駆動するのに必要な導線を複数のセルで共有しており、その構造上、データの書き込み、読み込みは複数ビットからなるページ単位(例えば、2kbyte)で行うことができるが、消去は複数ページからなるブロック単位(例えば、128kbyte)で行うため、小さいデータを書き込む場合でもブロック全体を消去しなければならない。例えば、ユーザから見て1ビットの変更を加える場合であっても、フラッシュメモリの内部では最低でも1ブロック分(128kB)の消去が必要となり、フラッシュメモリ上でデータを管理するための大きなオーバーヘッドが発生する。そして、オーバーヘッドが大きいと不必要な読み書きが増え、その結果、トンネル酸化膜に格子欠陥が発生することに起因してフラッシュメモリの性能(データ保持期間)が低下し、同時に寿命も短くなる。
【0017】
[ウェアレベリング]
フラッシュメモリの書き換え限度回数は、フラッシュメモリ全体に対しての回数ではなく、記憶素子(セル)一つに対しての回数によって決定され、一つの記憶素子の書き換え回数が限度を超えただけでもフラッシュメモリ全体として機能しなくなる。そのため、ユーザから見て同じ場所に連続して書いているつもりでもフラッシュメモリ全体で書き換え回数が一定になるように、物理ブロックではデータの移し替えを行っている。この制御をウェアレベリングと呼んでおり、ウェアレベリングにより特定の物理ブロックに書き込みが集中しないように制御している。
【0018】
[Write Amplification(W/A)]
フラッシュメモリでは、上述した書き込みと消去の関係やウェアレベリングでの内部でのデータの移し替えにより、ユーザから見た書き込みデータのデータサイズに対し、実際にデバイス内部に書き込まれるデータサイズは大きくなる。このデバイス内部の書き込みデータサイズがどの程度大きくなるかを倍率で示したものが、W/Aである。W/Aが1になるのが理想的な書き込みであるが、一般には書き込む単位が小さければ小さいほどW/Aの値は大きくなり、それだけNANDフラッシュの書き換え可能回数が減っていく。
【0019】
[ガベージコレクション]
NANDフラッシュメモリはブロック単位の消去しかできないために、不要なデータがあってもそのままでは消去できない。そこで、NANDフラッシュメモリでは、使用されていない領域(空き領域)を整理し、未使用領域(未使用ブロック)を作り出す機能を持たせており、この機能をガベージコレクションと呼んでいる。
【0020】
このように、NANDフラッシュメモリは、その構造上、本来のデータの書き込み以外の読み書きが発生して性能が低下することから、各メーカーでは、W/Aが小さくなるような書き込みとウェアレベリングの両立を図りながら、時にガベージコレクションを行なってパフォーマンスと寿命を確保できるように、NANDコントローラやファームウェアを設計している。しかしながら、設計を工夫しても、NANDフラッシュメモリの状態によっては、パフォーマンスの低下が生じる。以下、具体的なデータを例示してNANDフラッシュメモリにおける問題を説明する。
【0021】
[空のブロックにデータを書き込むケース]
図1に示すように、1ブロックサイズが128kBのフラッシュメモリ(右図参照)に対して、200kBのデータ(左図参照)を書き込む場合、200kB/128kB=1.56となることから、2ブロック分のデータを消去してから書き込む必要があり(右図のドットのハッチング領域)、上述したW/Aは、128kB×2/200kB=1.28となる。
【0022】
[データが保存されているブロックにデータを書き込むケース]
フラッシュメモリに対する書き込みを繰り返し行った場合や、ウェアレベリングによってデータの移し替えが行われた場合、データは分散して記憶される。例えば、
図2に示すような空き領域(破線の斜線のハッチング示す部分)が生じた状態のフラッシュメモリに対して、
図1と同様のデータを書き込む場合、書き込みデータを更に分割しなければならない。例えば、
図3に示すように、物理的には4ブロック分のデータを消去してからマージして書き込みを行わなければならない。このとき、W/Aは、4×128kB/200kB=2.56となり、空きブロックにデータを書き込む場合に比べて、実際の書き込み量は2倍に増えることになる。
【0023】
特に、ブロックの空き領域が小さくなるほどデータが分散されて書き込まれるため、1ブロックあたりに新たに書き込むサイズxは小さくなる。そして、W/Aはサイズxに反比例するため、書き込み単位が小さくなるほどW/Aの値は大きくなり、書き込み量の増加に伴ってパフォーマンスが低下する。また、
図2の状態でガベージコレクションを行った場合、空きブロックを作ってからデータの書き込みが行われるため、データ書き込み時のブロックの消去量は
図1と同様に2ブロック分となるが、ガベージコレクション時にデータの移し替えを行うため、このデータの移し替えも加味すると、
図1の場合に比べてデータの書き込み効率は悪くなり、やはりパフォーマンスが低下する。
【0024】
このように、フラッシュメモリにデータを書き込む場合、実際の書き込み量は大きくなり、パフォーマンスを低下させてしまう。特に、書き込みを繰り返し行ったり、ウェアレベリングによってデータの移し替えが行われたりすると、データが分散するため、実際の書き込み量は更に大きくなり、パフォーマンスを更に低下させてしまう。また、データの書き込み時にガベージコレクションを行うと、データの移し替えによってパフォーマンスを低下させてしまう。
【0025】
そこで、本発明の一実施の形態では、フラッシュメモリのサイズや使用時間、書き込み回数などに基づいて規定されるフラッシュメモリの状態に応じて、パフォーマンスを維持してデータを書き込むことができる容量(以下、特定容量と呼ぶ。)が動的に変化することから、データの書き込みに際して、特定容量を確保できると判断した場合はデータの書き込みを行い、特定容量を確保できないと判断した場合はフラッシュメモリ内の所定のデータを待避させて特定容量を確保してから、データの書き込みを行うように制御する。別の言い方をすると、書き込むデータ量を予測し、予測したデータ量のデータを書き込んでも処理のパフォーマンスを維持できると判断した場合はデータの書き込みを行い、処理のパフォーマンスを維持できないと判断した場合は、フラッシュメモリ内の所定のデータを待避させてパフォーマンスを維持できる状態にしてから、データの書き込みを行うように制御する。
【0026】
このように、フラッシュメモリをバッファメモリとして使用する装置の動作時に、フラッシュメモリに特定容量を確保できない若しくは処理のパフォーマンスを維持できない場合はフラッシュメモリ内の所定のデータを一旦退避させてからフラッシュメモリを使用する処理(例えば、画像形成装置のコピー処理やスキャン処理)を実行するため、パフォーマンの低下を回避しつつ、適切にデータを書き込むことができる。
【実施例1】
【0027】
上記した本発明の実施の形態についてさらに詳細に説明すべく、本発明の第1の実施例に係る画像処理装置及び書き込み制御プログラム並びに書き込み制御方法について、
図4乃至
図7を参照して説明する。
図4は、本実施例の画像処理装置の外観構成を示す模式図であり、
図5は、画像処理装置の構成を示すブロック図である。また、
図6は、画像処理装置の制御部の構成を示すブロック図であり、
図7は、画像処理装置の動作を示すフローチャート図である。
【0028】
図4に示すように、本実施例の画像処理装置は、MFPなどの画像形成装置10であり、原稿を光学的に読み取って画像データを取得し、その画像データに基づく画像を記録紙に印刷したり、外部のコンピュータ装置などから印刷ジョブを取得し、印刷ジョブで指定された原稿の画像データに基づく画像を記録紙に印刷したり、画像データを記憶/出力したりする。
【0029】
具体的には、
図5に示すように、画像形成装置10は、制御部20と装置本体30とで構成される。
【0030】
制御部20は、CPU(Central Processing Unit)21と、RAM22と、フラッシュメモリ23などで構成される。CPU21は、フラッシュメモリ23からプログラムやデータを読み出し、RAM22に展開して実行することにより、画像形成装置10の全体制御や画像処理などを行う。フラッシュメモリ23は、CPU21が実行するプログラムやデータなどを格納する。RAM22は、CPU21の演算処理結果や一時的に記憶するデータなどを格納する。
【0031】
上記フラッシュメモリ23は、NAND型のフラッシュメモリであり、データの読み出し/書き込み/消去を制御するNANDコントローラとデータを記憶するNANDフラッシュメモリ本体とを含み、NANDフラッシュメモリ本体には、装置を起動するためのブートプログラムや起動時に使用するデータ、後述する書き込み制御プログラムなどに加えて、好ましくは別のパーティションに、画像形成装置10が有する機能(スキャンやコピーなど)を実行する際に使用する画像データが格納される。このフラッシュメモリには、単一メモリセルあたりにデータを多値で記録する構造(MLC:Multi Level Cellと呼ぶ。)、単一メモリセルあたりにデータを2値で記録する構造(SLC:Single Level Cellと呼ぶ。)があり、本実施例ではどちらの構造でもよいが、SLCとMLCとが1つのメモリ内で動作するデュアルモードを搭載したeMMCを使用し、例えば、SLCの領域にプログラム等を記憶し、MLCの領域に画像データを記憶する。なお、フラッシュメモリ23は上記構成に限定されず、プログラム等をNOR型のフラッシュメモリに格納し、画像データ等をNAND型のフラッシュメモリに格納する構成としてもよい。
【0032】
装置本体30は、パネル31と、スキャナ32と、エンジン33などで構成される。
【0033】
パネル31は、LCD(Liquid Crystal Display)や有機EL(Electro Luminescence)表示装置上に、電極が格子状に配列されたタッチパネルなどであり、スキャンやコピーなどの機能を実現するための各種画面を表示すると共に、これらの機能に対する各種指示を受け付ける。
【0034】
スキャナ32は、原稿台に載置された原稿の画像を光学的に読み取る部分であり、原稿を走査する光源と、原稿で反射された光を電気信号に変換するCCD(Charge Coupled Devices)等のイメージセンサと、電気信号をA/D変換するA/D変換器等により構成される。
【0035】
エンジン33は、電子写真方式や静電記録方式等の作像プロセスを利用した画像形成に必要な構成要素で構成され、フラッシュメモリ23に記憶した画像データに基づいて記録紙に画像を形成する。具体的には、帯電装置により帯電された感光体ドラムに露光装置から画像に応じた光を照射して静電潜像を形成し、現像装置で帯電したトナーを付着させて現像し、そのトナー像を転写ベルトに1次転写し、転写ベルトから紙媒体に2次転写し、更に定着装置で紙媒体にトナー像を定着させる処理を行う。
【0036】
なお、
図5は本実施例の画像形成装置10の一例であり、その構成は適宜変更可能である。例えば、通信I/F部を設け、ネットワークに接続されるコンピュータ装置などから取得した印刷ジョブに基づいて印刷処理を実行できるようにしたり、FAXの送受信ができるようにしたりしてもよい。また、
図5では、画像形成装置10を制御部20と装置本体30とで構成したが、画像形成装置10を制御する制御装置(プリンタコントローラ)に制御部20(書き込み制御プログラム)の機能を持たせるようにしてもよい。
【0037】
上記構成の画像形成装置10では、スキャナ32で読み取った画像データ、外部のコンピュータ装置から取得した印刷ジョブなどは通常はRAM22に記憶して制御部20で画像処理されるが、フラッシュメモリ23をバッファメモリとして使用して一時的に記憶する場合もある。例えば、複数ページの画像を片面1ページで複数部形成する際に、複数ページの画像を一部ずつ印刷するコレート印刷を行う場合は、フラッシュメモリ23に複数ページの画像データを一時的に保存して一部ずつ印刷処理を実行する。また、スキャン時の画像処理において、中間データを一時的にフラッシュメモリ23に保存する場合がある。
【0038】
このような処理を行う場合に、フラッシュメモリ23には複数ページの画像データや中間データを記憶可能な空き容量(各ブロックの空き領域を合計した容量)が必要であることはもちろんであるが、これらのデータを記憶可能な空き容量があったとしても、フラッシュメモリでは実際の書き込み量は大きくなり、更に、個々の空き領域が分散している場合には、これらのデータを分割して書き込まなければならないため、データの書き込みに時間がかかることにより印刷処理やスキャン処理のパフォーマンスが低下する。特に、フラッシュメモリ23の状態(サイズや使用時間、書き込み回数等)に応じて空き領域の分散の程度が異なり、空き領域が散在している場合はデータの分割数が増え、印刷処理やスキャン処理のパフォーマンスが著しく低下する。
【0039】
そこで本実施例では、
図6に示すように、制御部20を、状態判定部24及び書き込み制御部25として機能させることによって、パフォーマンスの低下を抑制する。
【0040】
状態判定部24は、フラッシュメモリ23のサイズ、使用時間、書き込み回数などの情報をNANDコントローラから取得し、これらの情報に基づいてフラッシュメモリ23の状態(データがどの程度、分散して記憶されているか、データが記憶されていない空きブロックがどの程度あるかなど)を判定する。なお、フラッシュメモリ23のサイズ、使用時間、書き込み回数などとフラッシュメモリ23の状態とは、予め行った実験やシミュレーションの結果などに基づいて関連付けることができる。
【0041】
書き込み制御部25は、画像形成装置10が有する機能を用いて処理を実行するためにフラッシュメモリ23にデータを書き込む際に、フラッシュメモリ23の状態に基づいて設定される特定容量(パフォーマンスを維持してデータを書き込むことができる容量、すなわち、データを極力分散させずに書き込むことができる領域であり、書き込むデータのデータ量にフラッシュメモリ23の状態に応じて動的に変化する容量を付加した容量)を確保できるかを判断する。具体的には、フラッシュメモリ23の状態に基づいて特定容量を設定し、空き容量が特定容量以上であれば、フラッシュメモリ23にデータを書き込む。一方、空き容量が特定容量よりも小さければ、書き込み済みのデータの中の所定のデータを、必要に応じて圧縮してRAM22などの他の記憶手段に待避させて特定容量を確保した後、フラッシュメモリ23にデータを書き込み、処理が終了した後、RAM22などに退避させたデータを必要に応じて解凍(伸張若しくは展開)してフラッシュメモリ23に書き戻す。なお、パフォーマンスをどの程度のレベルに維持するかは機能毎に設定することができ、データが記憶されていない状態のフラッシュメモリ23をバッファメモリとして使用した場合のパフォーマンスを基準にして設定することができる。また、特定容量は、予め行った実験やシミュレーションの結果などに基づいて、フラッシュメモリ23の状態に関連付けることができる。また、待避させる所定のデータは、最後のアクセスが相対的に古い、アクセス頻度が相対的に低い、又は、重要度が相対的に低いものから順に選択することができる。また、他の記憶手段はRAM22に限らず、画像形成装置10に内蔵若しくは外付けされたHDD(Hard Disk Drive)などとしてもよい。
【0042】
また、上記状態判定部24及び書き込み制御部25はハードウェアとして構成してもよいし、制御部20を、状態判定部24及び書き込み制御部25として機能させる書き込み制御プログラムとして構成し、当該書き込み制御プログラムをCPU21に実行させるようにしてもよい。
【0043】
以下、上記構成の画像形成装置10の動作について説明する。CPU21は、フラッシュメモリ23に記憶した書き込み制御プログラムをRAM22に展開して実行することにより、
図7のフローチャート図に示す各ステップの処理を実行する。なお、
図7では印刷処理を例にして説明する。
【0044】
まず、制御部20は、パネル31を用いて指示された処理がコレート印刷であるかを判断する(S101)。コレート印刷でない場合は、フラッシュメモリ23に複数ページの画像データを一時的に記憶する必要がない(RAM22に記憶すればよい)ため、通常の印刷処理を行う(S102)。
【0045】
一方、指示された処理がコレート印刷の場合は、制御部20(状態判定部24)は、フラッシュメモリ23のサイズ、使用時間、書き込み回数などに基づいてフラッシュメモリ23の状態を判定する(S103)。次に、制御部20(書き込み制御部25)は、フラッシュメモリ23の状態に基づき、コレート印刷のパフォーマンスを維持してデータを書き込むことができる特定容量を設定し(S104)、特定容量を確保可能であるかを判断する(S105)。空き容量が特定容量以上であれば、制御部20(書き込み制御部25)は、フラッシュメモリ23をバッファメモリとして使用して画像データを書き込みながら印刷処理を実行する(S106)。
【0046】
一方、空き容量が特定容量よりも小さければ、制御部20(書き込み制御部25)は、予めフラッシュメモリ23に記憶されているデータの中の所定のデータを必要に応じて圧縮してRAM22などの他の記憶手段に退避させて特定容量を確保する(S107)。なお、待避させるデータは特に限定されないが、使用する可能性が低いものを選択することが好ましく、例えば、予め記憶した履歴情報に基づき、最後のアクセスが相対的に古い、又はアクセス頻度が相対的に低い、又は重要度が相対的に低い順に選択することができる。その後、フラッシュメモリ23をバッファメモリとして使用して画像データを書き込みながら印刷処理を実行する(S108)。そして、コレート印刷処理が終了した後、又は一定時間操作がなく電力消費を抑えるモードに入る直前に、RAM22などに退避させたデータを必要に応じて解凍してフラッシュメモリ23に書き戻す(S109)。
【0047】
図7は、印刷処理の場合の例であるが、スキャン処理の場合は、自動紙送り装置(ADF:Auto Document Feeder)を用いるスキャンであるか、原稿台(フラットベット)を用いるスキャンであるかを判断し、ADFを用いるスキャンの場合は、連続して原稿を読み取ることによりフラッシュメモリ23に多くの空き容量が必要になることから、上記と同様にフラッシュメモリ23の空き容量をチェックする。そして、フラッシュメモリ23の空き容量が特定容量以上であれば、フラッシュメモリ23をバッファメモリとして使用してスキャンデータを書き込みながらスキャン処理を実行する。一方、空き容量が特定容量よりも小さければ、予めフラッシュメモリ23に記憶されているデータの中の所定のデータ(例えば、最後のアクセスが相対的に古いデータ)を必要に応じて圧縮してRAM22などの他の記憶手段に退避させて特定容量を確保した後、フラッシュメモリ23をバッファメモリとして使用してスキャンデータを書き込みながらスキャン処理を実行する。そして、スキャン処理が終了した後、又は一定時間操作がなく電力消費を抑えるモードに入る直前に、RAM22などに退避させたデータを必要に応じて解凍してフラッシュメモリ23に書き戻すようにすればよい。
【0048】
このように、本実施例では、フラッシュメモリ23の状態に応じて動的に変化する、指示された処理のパフォーマンスを維持してデータを書き込むことができる特定容量を確保できるようにデータを待避させる制御を行うため、パフォーマンスの低下を回避しつつ、適切にデータを書き込むことができる。
【実施例2】
【0049】
次に、本発明の第2の実施例に係る画像処理装置及び書き込み制御プログラム並びに書き込み制御方法について、
図8及び
図9を参照して説明する。
図8は、本実施例の画像処理装置の制御部の構成を示すブロック図であり、
図9は、画像処理装置の動作を示すフローチャート図である。
【0050】
前記した第1の実施例では、フラッシュメモリ23の状態を判定し、その状態に応じて特定容量を設定し、特定容量を確保できるかを判断したが、書き込みデータのデータ量を予測し、そのデータ量のデータを書き込んだ際に指示された処理のパフォーマンスを維持できるかを判断することもできる。
【0051】
その場合、画像処理装置(画像形成装置10)の構成は第1の実施例の
図4と同様であるが、制御部20は、
図8に示すように、データ予測部26、書き込み制御部25として機能する。
【0052】
データ予測部26は、指示された処理を特定し、その処理の設定情報(カラー/モノクロ、解像度、用紙サイズ、ページ数など)に基づいて、フラッシュメモリ23に書き込むデータのデータ量を予測する。
【0053】
書き込み制御部25は、フラッシュメモリ23の空き領域に予測したデータ量のデータを書き込んだ場合に、指示された処理のパフォーマンスを維持できるか否かを判断する。そして、指示された処理のパフォーマンスを維持できないと判断した場合は、書き込み済みのデータの中の所定のデータ(例えば、最終アクセスが相対的に古いデータ)をRAM22に待避させて空き容量を増やした後、フラッシュメモリ23にデータを書き込み、指示された処理が終了した後、RAM22などに退避させたデータをフラッシュメモリ23に書き戻す。なお、どの程度のデータ量のデータを書き込んだ場合に、指示された処理のパフォーマンスを維持できるか否かは、予め行った実験やシミュレーションの結果などに基づいて判断することができる。
【0054】
また、上記データ予測部26及び書き込み制御部25はハードウェアとして構成してもよいし、制御部を、データ予測部26及び書き込み制御部25として機能させる書き込み制御プログラムとして構成し、当該書き込み制御プログラムをCPU21に実行させるようにしてもよい。
【0055】
以下、上記構成の画像形成装置10の動作について説明する。CPU21は、フラッシュメモリ23に記憶した書き込み制御プログラムをRAM22に展開して実行することにより、
図9のフローチャート図に示す各ステップの処理を実行する。なお、
図9では印刷処理を例にして説明する。
【0056】
まず、制御部20は、パネル31を用いて指示された処理がコレート印刷であるかを判断する(S201)。コレート印刷でない場合は、フラッシュメモリ23に複数ページの画像データを一時的に記憶する必要がない(RAM22に記憶すればよい)ため、通常の印刷処理を行う(S202)。
【0057】
一方、指示された処理がコレート印刷の場合は、制御部20(データ予測部26)は、指示された処理の設定情報(カラー/モノクロ、解像度、用紙サイズ、ページ数など)に基づいて、フラッシュメモリ23に書き込むデータ量を予測する(S203)。次に、制御部20(書き込み制御部25)は、予測したデータ量のデータをフラッシュメモリ23に書き込んだ場合に、指示された処理のパフォーマンスを維持できるかを判断する(S204)。パフォーマンスを維持できると判断した場合は、制御部20(書き込み制御部25)は、フラッシュメモリ23をバッファメモリとして使用して画像データを書き込みながら印刷処理を実行する(S205)。一方、パフォーマンスを維持できないと判断した場合は、制御部20(書き込み制御部25)は、予めフラッシュメモリ23に記憶されているデータの中の所定のデータ(例えば、最後のアクセスが相対的に古いデータ)を必要に応じて圧縮してRAM22などの他の記憶手段に退避させた後(S206)、フラッシュメモリ23をバッファメモリとして使用して画像データを書き込みながら印刷処理を実行する(S207)。そして、コレート印刷処理が終了した後、又は一定時間操作がなく電力消費を抑えるモードに入る直前に、RAM22などに退避させたデータを必要に応じて解凍してフラッシュメモリ23に書き戻す(S208)。
【0058】
図9は、印刷処理の場合の例であるが、スキャン処理の場合は、ADFを用いるスキャンであるか、フラットベットを用いるスキャンであるかで判断し、ADFを用いるスキャンの場合は、連続して原稿を読み取ることによりフラッシュメモリ23に多くの空き容量が必要になることから、上記と同様に書き込むデータ量を予測し、予測したデータ量のデータをフラッシュメモリ23に書き込んだ場合に、スキャン処理のパフォーマンスを維持できるかを判断する。そして、パフォーマンスを維持できると判断した場合は、フラッシュメモリ23をバッファメモリとして使用してスキャンデータを書き込みながらスキャン処理を実行する。一方、パフォーマンスを維持できないと判断した場合は、予めフラッシュメモリ23に記憶されているデータの中の所定のデータ(例えば、最後のアクセスが相対的に古いデータ)を必要に応じて圧縮してRAM22などの他の記憶手段に退避させた後、フラッシュメモリ23をバッファメモリとして使用してスキャンデータを書き込みながらスキャン処理を実行する。そして、スキャン処理が終了した後、又は一定時間操作がなく電力消費を抑えるモードに入る直前に、RAM22などに退避させたデータを必要に応じて解凍してフラッシュメモリ23に書き戻すようにすればよい。
【0059】
このように、本実施例では、書き込むデータ量を予測し、予測したデータ量のデータをフラッシュメモリ23に書き込んだら処理のパフォーマンスを維持できないと判断した場合にデータを待避させる制御を行うため、パフォーマンスの低下を回避しつつ、適切にデータを書き込むことができる。
【0060】
なお、本発明は上記実施例に限定されるものではなく、本発明の趣旨を逸脱しない限りにおいて、その構成や制御は適宜変更可能である。
【0061】
例えば、上記実施例では、画像処理装置として画像形成装置10を例にして説明したが、フラッシュメモリを備える任意の画像処理装置に対して、本発明の制御を同様に適用することができる。
【産業上の利用可能性】
【0062】
本発明は、フラッシュメモリを備える画像処理装置、当該フラッシュメモリへのデータの書き込みを制御する書き込み制御プログラム及び当該書き込み制御プログラムを記憶した記録媒体並びに当該画像処理装置における書き込み制御方法に利用可能である。
【符号の説明】
【0063】
10 画像形成装置
20 制御部
21 CPU
22 RAM
23 フラッシュメモリ
24 状態判定部
25 書き込み制御部
26 データ予測部
30 装置本体
31 パネル
32 スキャナ
33 エンジン