(57)【要約】【課題】物理消去を引き起こすコマンドの実行回数を減少させ、不揮発性記憶媒体の寿命を長くすることである。【解決手段】画像形成装置は、印刷ジョブを処理する画像形成装置であって、半導体を用いた不揮発性記憶媒体の使用量に関する情報を取得する第１の取得手段と、前記使用量に関する情報を基に、前記不揮発性記憶媒体の所定のブロックに対して物理消去を引き起こすコマンドの実行を指示する指示手段とを有する。【選択図】図６
2019199059.tif 000002
【特許請求の範囲】
【請求項１】
印刷ジョブを処理する画像形成装置であって、
半導体を用いた不揮発性記憶媒体の使用量に関する情報を取得する第１の取得手段と、
前記使用量に関する情報を基に、前記不揮発性記憶媒体の所定のブロックに対して物理消去を引き起こすコマンドの実行を指示する指示手段と
を有することを特徴とする画像形成装置。
【請求項２】
前記第１の取得手段は、前記不揮発性記憶媒体の総書き込み量を取得し、
前記指示手段は、前記不揮発性記憶媒体の総書き込み量を基に、前記不揮発性記憶媒体の所定のブロックに対して物理消去を引き起こすコマンドの実行を指示することを特徴とする請求項１に記載の画像形成装置。
【請求項３】
前記不揮発性記憶媒体の空き容量と総書き込み量を取得し、前記不揮発性記憶媒体の空き容量と総書き込み量との加算値を算出する算出手段をさらに有し、
前記第１の取得手段は、前記不揮発性記憶媒体の総書き込み量の取得を繰り返し、
前記指示手段は、前記第１の取得手段により取得された前記不揮発性記憶媒体の総書き込み量と前記加算値とを基に、前記不揮発性記憶媒体の所定のブロックに対して物理消去を引き起こすコマンドの実行を指示することを特徴とする請求項２に記載の画像形成装置。
【請求項４】
前記指示手段は、前記第１の取得手段により取得された前記不揮発性記憶媒体の総書き込み量が前記加算値より大きくなった場合に、前記不揮発性記憶媒体の所定のブロックに対して物理消去を引き起こすコマンドの実行を指示することを特徴とする請求項３に記載の画像形成装置。
【請求項５】
前記不揮発性記憶媒体の寿命に関する情報を取得する第２の取得手段をさらに有し、
前記指示手段は、前記不揮発性記憶媒体の総書き込み量と前記不揮発性記憶媒体の寿命に関する情報を基に、前記不揮発性記憶媒体の所定のブロックに対して物理消去を引き起こすコマンドの実行を指示することを特徴とする請求項２に記載の画像形成装置。
【請求項６】
前記不揮発性記憶媒体の寿命に関する情報は、メディア消耗指標または平均消去回数であることを特徴とする請求項５に記載の画像形成装置。
【請求項７】
前記不揮発性記憶媒体のメディア消耗指標を取得する第２の取得手段をさらに有し、
前記指示手段は、前記第１の取得手段により取得された前記不揮発性記憶媒体の総書き込み量が前記加算値より大きく、かつ、前記メディア消耗指標が第１の所定値より小さくない場合に、前記不揮発性記憶媒体の所定のブロックに対して物理消去を引き起こすコマンドの実行を指示することを特徴とする請求項４に記載の画像形成装置。
【請求項８】
前記不揮発性記憶媒体の書き込み速度を繰り返し取得する第３の取得手段をさらに有し、
前記指示手段は、前記第１の取得手段により取得された前記不揮発性記憶媒体の総書き込み量が前記加算値より大きく、かつ、前記メディア消耗指標が第１の所定値より小さく、かつ、前記書き込み速度の値が第２の所定値より小さい場合に、前記不揮発性記憶媒体の所定のブロックに対して物理消去を引き起こすコマンドの実行を指示することを特徴とする請求項７に記載の画像形成装置。
【請求項９】
前記不揮発性記憶媒体の平均消去回数を取得する第２の取得手段をさらに有し、
前記指示手段は、前記第１の取得手段により取得された前記不揮発性記憶媒体の総書き込み量が前記加算値より大きく、かつ、前記平均消去回数が第１の所定値より大きくない場合に、前記不揮発性記憶媒体の所定のブロックに対して物理消去を引き起こすコマンドの実行を指示することを特徴とする請求項４に記載の画像形成装置。
【請求項１０】
前記不揮発性記憶媒体の書き込み速度を繰り返し取得する第３の取得手段をさらに有し、
前記指示手段は、前記第１の取得手段により取得された前記不揮発性記憶媒体の総書き込み量が前記加算値より大きく、かつ、前記平均消去回数が第１の所定値より大きく、かつ、前記書き込み速度の値が第２の所定値より小さい場合に、前記不揮発性記憶媒体の所定のブロックに対して物理消去を引き起こすコマンドの実行を指示することを特徴とする請求項９に記載の画像形成装置。
【請求項１１】
前記指示手段は、画質調整処理を実行する時に、前記不揮発性記憶媒体の所定のブロックに対して物理消去を引き起こすコマンドの実行を指示することを特徴とする請求項２〜１０のいずれか１項に記載の画像形成装置。
【請求項１２】
前記指示手段は、前記不揮発性記憶媒体の電源停止条件が満たされた時に、前記不揮発性記憶媒体の所定のブロックに対して物理消去を引き起こすコマンドの実行を指示することを特徴とする請求項２〜１０のいずれか１項に記載の画像形成装置。
【請求項１３】
前記第１の取得手段は、前記不揮発性記憶媒体に書き込んだスプールデータ量を取得し、
前記指示手段は、前記不揮発性記憶媒体に書き込んだスプールデータ量の総量を基に、前記不揮発性記憶媒体の所定のブロックに対して物理消去を引き起こすコマンドの実行を指示することを特徴とする請求項１に記載の画像形成装置。
【請求項１４】
前記不揮発性記憶媒体の空き容量を取得する第２の取得手段をさらに有し、
前記指示手段は、前記不揮発性記憶媒体に書き込んだスプールデータ量の総量と前記不揮発性記憶媒体の空き容量とを基に、前記不揮発性記憶媒体の所定のブロックに対して物理消去を引き起こすコマンドの実行を指示することを特徴とする請求項１３に記載の画像形成装置。
【請求項１５】
前記指示手段は、前記不揮発性記憶媒体に書き込んだスプールデータ量の総量が前記不揮発性記憶媒体の空き容量より大きくなった場合に、前記不揮発性記憶媒体の所定のブロックに対して物理消去を引き起こすコマンドの実行を指示することを特徴とする請求項１４に記載の画像形成装置。
【請求項１６】
前記不揮発性記憶媒体は、ソリッドステートドライブであることを特徴とする請求項１〜１５のいずれか１項に記載の画像形成装置。
【請求項１７】
前記コマンドは、ガベージコレクション処理とブロック消去処理を行わせるためのトリムコマンドであることを特徴とする請求項１〜１６のいずれか１項に記載の画像形成装置。
【請求項１８】
印刷ジョブを処理する画像形成装置の制御方法であって、
半導体を用いた不揮発性記憶媒体の使用量に関する情報を取得する第１の取得ステップと、
前記使用量に関する情報を基に、前記不揮発性記憶媒体の所定のブロックに対して物理消去を引き起こすコマンドの実行を指示する指示ステップと
を有することを特徴とする画像形成装置の制御方法。
【請求項１９】
コンピュータを、請求項１〜１７のいずれか１項に記載された画像形成装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像形成装置、画像形成装置の制御方法及びプログラムに関する。
【背景技術】
【０００２】
画像形成装置内のハードディスクドライブ（ＨＤＤ）は、プログラムを格納すると共に、画像データの保存、編集などを実現するストレージ機能を実現する。ソリッドステートドライブ（ＳＳＤ）は、大容量化と低価格化が進んで、モバイルＰＣを中心に急速に普及が進んでいる。ＳＳＤは、フラッシュメモリで構成された半導体記憶装置である。ＳＳＤは、ＨＤＤと比べて、高速なランダムアクセスが可能であり、低消費電力、高い耐衝撃性、軽量、省スペースといった点に特長がある。特に、ＳＳＤは、システム起動時において、ＨＤＤで必要なスピンアップ等の初期動作が必要無い為、高速なデータ転送と相まって起動時間や復帰時間の短縮化には非常に効果があるため、画像形成装置のストレージデバイスとして採用されてきている。
【０００３】
特許文献１には、動画等の様なリアルタイム処理が必要なデータの記録中にトリムコマンドを実行しないようにして、バッファメモリのオーバーフローを抑制し、データの記録速度の低下を防止することが開示されている。トリムコマンドの実行により、ＳＳＤ内の不要データを削除することができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１６−１２２９２５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
パーソナルコンピュータでは、毎晩行われるディスクメンテナンス時に、トリムコマンドが実行されるものがある。トリムコマンドを実行すると、ＳＳＤの書き込み処理が行われるため、ＳＳＤの書き換え寿命が消費される。したがって、トリムコマンドが頻繁に実行されると、ＳＳＤの寿命が短くなってしまう。
【０００６】
本発明の目的は、物理消去を引き起こすコマンドの実行回数を減少させ、不揮発性記憶媒体の寿命を長くすることである。
【課題を解決するための手段】
【０００７】
本発明の画像形成装置は、印刷ジョブを処理する画像形成装置であって、半導体を用いた不揮発性記憶媒体の使用量に関する情報を取得する第１の取得手段と、前記使用量に関する情報を基に、前記不揮発性記憶媒体の所定のブロックに対して物理消去を引き起こすコマンドの実行を指示する指示手段とを有する。
【発明の効果】
【０００８】
本発明によれば、物理消去を引き起こすコマンドの実行回数を減少させ、不揮発性記憶媒体の寿命を長くすることができる。
【図面の簡単な説明】
【０００９】
【図１】画像形成装置の構成例を示すブロック図である。
【図２】ＳＳＤの構成例を示すブロック図である。
【図３】ＳＳＤの使用に伴うデータ領域の状態変化を説明する図である。
【図４】トリムコマンド実行に伴うデータ領域の状態変化を説明する図である。
【図５】トリムコマンド実行に伴うＳＳＤの内部状態の変化を説明する図である。
【図６】コントローラ部の制御方法を示すフローチャートである。
【図７】コントローラ部の制御方法を示すフローチャートである。
【図８】コントローラ部の制御方法を示すフローチャートである。
【図９】コントローラ部の制御方法を示すフローチャートである。
【図１０】コントローラ部の制御方法を示すフローチャートである。
【発明を実施するための形態】
【００１０】
（第１の実施形態）
図１は、本発明の第１の実施形態による画像形成装置４１０の構成例を示すブロック図である。画像形成装置４１０は、例えば、印刷ジョブを処理する複合機である。画像形成装置４１０は、コントローラ部４００と、操作部４２２と、原稿搬送装置制御部４２３と、イメージリーダ制御部４２４と、プリンタ制御部４２５と、折り装置制御部４２６と、フィニッシャ制御部４２７とを有する。さらに、画像形成装置４１０は、原稿搬送装置４３３と、イメージリーダ部４３４と、プリンタ部４３５と、折り装置４３６と、フィニッシャ部４３７とを有し、外部パーソナルコンピュータ４２１に接続される。
【００１１】
コントローラ部４００は、ＣＰＵ４０１と、ＲＯＭ４０２と、ＲＡＭ４０３と、バスブリッジ４０４とを有する。さらに、コントローラ部４００は、外部インターフェース制御部４０５と、操作制御部４０６と、デバイス制御部４１１と、ストレージ制御部４１２と、ＳＳＤ４１３と、外部インターフェース４５１とを有する。バスブリッジ４０４は、ＣＰＵ４０１と、ＲＯＭ４０２と、ＲＡＭ４０３と、外部インターフェース制御部４０５と、操作制御部４０６と、デバイス制御部４１１と、ストレージ制御部４１２に接続される。
【００１２】
ソリッドステートドライブ（ＳＳＤ）４１３は、フラッシュメモリで構成された半導体を用いた不揮発性記憶媒体である。ＳＳＤ４１３は、オペレーティングシステム（ＯＳ）を含むメインプログラムと、アプリケーションプログラムと、ユーザプリファレンスデータとを格納する。また、ＳＳＤ４１３は、イメージリーダ制御部４２４や外部インターフェース４５１により取得した画像と、操作部４２２により編集した画像を保存する。ストレージ制御部４１２は、ＳＳＤ４１３を制御する。ＣＰＵ４０１は、ストレージ制御部４１２を介して、ＳＳＤ４１３にアクセスすることができる。
【００１３】
ＲＯＭ４０２は、初期起動プログラムを格納している。ＲＡＭ４０３は、ＣＰＵ４０１の制御に伴う演算の作業領域として用いられる。ＣＰＵ４０１は、ＲＯＭ４０２から初期起動プログラムを読み出し、初期起動処理を行う。また、ＣＰＵ４０１は、ＳＳＤ４１３に格納されているメインプログラム及びアプリケーションプログラムをＲＡＭ４０３に展開して実行することにより、図６の処理等を行う。
【００１４】
外部インターフェース４５１は、例えばネットワークやＵＳＢなどの外部バスを介して、外部パーソナルコンピュータ４２１に接続される。外部インターフェース制御部４０５は、外部インターフェース４５１を制御する。ＣＰＵ４０１は、外部インターフェース４５１を介して、外部パーソナルコンピュータ４２１から受信したプリントデータを画像に展開したり、ＳＳＤ４１３内の画像を外部パーソナルコンピュータ４２１に送信する。 操作制御部４０６は、操作部４２２を制御する。
【００１５】
デバイス制御部４１１は、原稿搬送装置制御部４２３、イメージリーダ制御部４２４、プリンタ制御部４２５、折り装置制御部４２６及びフィニッシャ制御部４２７を制御する。原稿搬送装置制御部４２３は、原稿搬送装置４３３を制御する。イメージリーダ制御部４２４は、イメージリーダ部４３４を制御する。プリンタ制御部４２５は、プリンタ部４３５を制御する。折り装置制御部４２６は、折り装置４３６を制御する。フィニッシャ制御部４２７は、フィニッシャ部４３７を制御する。
【００１６】
コントローラ部４００は、操作部４２２や外部パーソナルコンピュータ４２１からの指示に基づいて、原稿搬送装置４３３とイメージリーダ部４３４を制御し、原稿の画像を取得する。また、コントローラ部４００は、プリンタ部４３５を制御し、画像をシートに印刷する。また、コントローラ部４００は、折り装置４３６とフィニッシャ部４３７を制御し、印刷されたシートにステイプルやパンチ穴を施す。
【００１７】
図２は、図１のＳＳＤ４１３の構成例を示すブロック図である。ＳＳＤ４１３は、ＳＳＤコントローラ１０００と、複数のフラッシュメモリ１００３とを有する。ＳＳＤコントローラ１０００は、ストレージインターフェース１００１と、メモリ制御部１００２とを有する。ストレージインターフェース１００１は、ストレージ制御部４１２に接続され、ストレージ制御部４１２と通信するためのモジュールである。例えば、ストレージインターフェース１００１は、シリアルＡＴＡ（Ｓｅｒｉａｌ  ＡＴ  Ａｔｔａｃｈｍｅｎｔ：ＳＡＴＡ）インターフェースである。メモリ制御部１００２は、複数のフラッシュメモリ１００３を制御する。フラッシュメモリ１００３は、プログラム及びデータを記憶することができる。
【００１８】
図３は、ＳＳＤ４１３の使用に伴うデータ領域の状態変化を説明するための図である。ＣＰＵ４０１は、ＯＳのファイルシステムにより、ＳＳＤ４１３に対して、読み出し／書き込み処理を行う。その際、ＣＰＵ４０１は、不要となったデータ（ファイル）を管理情報で不要データとするだけであり、実データの消去を行わない。ＳＳＤコントローラ１０００は、基本的にＳＳＤ４１３に搭載されるＮＡＮＤフラッシュメモリ１００３に未使用ブロック（完全空きブロック）が有る場合は、優先的に未使用ブロック（完全空きブロック）から書き込みを行う。これにより、高い書き込みパフォーマンスを維持することができる。ＳＳＤコントローラ１０００が書き込み処理を繰り返すことにより、図３のように、未使用ブロック（完全空きブロック）が徐々に減少する。最終的には、ＳＳＤ４１３の全体が使用済みブロック（使用中のデータブロック及び未使用ブロック（不要データ含有））で満たされる。
【００１９】
ＳＳＤコントローラ１０００は、未使用ブロック（完全空きブロック）が無くなると、データを書き込む際には、ガベージコレクション処理及びブロック消去処理を行ってから、書き込み処理を行うため、書き込みのパフォーマンスが大幅に低下する。パーソナルコンピュータで問題となるＳＳＤ４１３のプチフリーズ現象（プチフリ）は、上記の事象が要因となっている。この問題の解消のため、ＳＳＤ４１３内に散在する不要データを含んだブロックに対して一括して、ガベージコレクション処理とブロック消去処理を行わせるトリムコマンド（ＴＲＩＭコマンド）が一般化しつつある。
【００２０】
図４は、トリムコマンド実行に伴うＳＳＤ４１３のデータ領域の状態変化を説明するための図である。ＣＰＵ４０１は、トリムコマンドをＳＳＤコントローラ４１３に送信する。ＳＳＤコントローラ４１３は、トリムコマンドを受信すると、トリムコマンドの実行により、ガベージコレクション処理及びブロック消去処理を行い、フラッシュメモリ１００３内の不要データブロックを消去する。不要データブロックは、消去処理により、完全空きブロックになる。トリムコマンドは、ＳＳＤ４１３の所定のブロックに対して物理消去を引き起こすコマンドである。
【００２１】
図５（Ａ）はトリムコマンド実行前のフラッシュメモリ１００３のブロックの状態を示す図であり、図５（Ｂ）はトリムコマンド実行後のフラッシュメモリ１００３のブロックの状態を示す図である。図５（Ａ）では、フラッシュメモリ１００３は、使用中のデータ領域と、未使用領域（不要データ含有）と、未使用領域（完全空き領域）とを有する。
【００２２】
ＳＳＤコントローラ１０００は、図５（Ａ）のフラッシュメモリ１００３の状態で、トリムコマンドを実行することにより、図５（Ｂ）のフラッシュメモリ１００３の状態に変えることができる。ＳＳＤコントローラ１０００は、トリムコマンドの実行により、ガベージコレクション処理及びブロック消去処理を行う。ＳＳＤコントローラ１０００は、ブロック単位でしか、フラッシュメモリ１００３のデータを消去することができない。そこで、ＳＳＤコントローラ１０００は、フラッシュメモリ１００３のあるブロックに不要データと必要データの両方が存在する場合には、その必要データを不要データの無い別のブロックに移す処理（ガベージコレクション処理）を行う。そして、ＳＳＤコントローラ１０００は、必要データが無くて不要データが存在するブロックのデータを消去する処理（ブロック消去処理）を行う。これにより、図５（Ｂ）では、フラッシュメモリ１００３は、使用中のデータ領域と未使用領域（完全空き領域）のみを有し、未使用領域（不要データ含有）が無くなる。
【００２３】
ＣＰＵ４０１は、ＳＳＤ４１３がガベージコレクション処理中又はブロック消去処理中の場合には、ＳＳＤ４１３に対してアクセスすることができないため、パフォーマンスが低下する。また、ガベージコレクション処理は、基本的に書き込み処理のため、処理を行った分だけ、フラッシュメモリ１００３の書き換え寿命が消費される。トリムコマンドが実行されると、フラッシュメモリ１００３の不要データを含む全てのブロックに対して、ガベージコレクション処理とブロック消去処理が一括して行われる。トリムコマンドが頻繁に実行されると、ＳＳＤ４１３のパフォーマンスの低下とフラッシュメモリ１００３の書き換え寿命の消費が進行するという課題がある。従って、ＳＳＤ４１３の寿命とパフォーマンスの観点から、トリムコマンドは、頻繁に実行するものではなく、最適な頻度とタイミングで実行する必要がある。
【００２４】
図６は、第１の実施形態によるコントローラ部４００の制御方法を示すフローチャートである。ステップＳ１０１では、ＣＰＵ４０１は、ストレージ制御部４１２を介して、ＳＳＤ４１３に記録されているＯＳのファイルシステムの管理情報にアクセスし、ＳＳＤ４１３の論理空き容量を取得する。ステップＳ１０２では、ＣＰＵ４０１は、ＳＳＤ４１３のS.M.A.R.T情報（診断情報）を参照する。S.M.A.R.T情報は、ＳＳＤ４１３の総書き込み量を含む。ステップＳ１０３では、ＣＰＵ４０１は、ステップＳ１０２で参照したS.M.A.R.T情報から、ＳＳＤ４１３の総書き込み量を取得する。ステップＳ１０４では、ＣＰＵ４０１は、ステップＳ１０１で取得したＳＳＤ４１３の論理空き容量と、ステップＳ１０３で取得した総書き込み量を加算し、その加算値をトリムコマンド実行パラメータ（設定値）として得る。設定値は、ＳＳＤ４１３の全領域の合計容量である。ＣＰＵ４０１は、その設定値をコントローラ部４００内の何れかの記憶媒体に格納する。
【００２５】
ステップＳ１０５では、ＣＰＵ４０１は、ＳＳＤ４１３のS.M.A.R.T情報内のＳＳＤ４１３の総書き込み量を定期的に取得する。ステップＳ１０６では、ＣＰＵ４０１は、ステップＳ１０５で取得したＳＳＤ４１３の総書き込み量が、上記の設定値より大きいか否かを判定する。ＣＰＵ４０１は、ＳＳＤ４１３の総書き込み量が設定値より大きくない場合には、ステップＳ１０５に戻り、ＳＳＤ４１３の総書き込み量が設定値より大きい場合には、ステップＳ１０７に進む。ステップＳ１０７では、ＣＰＵ４０１は、トリムコマンドをＳＳＤ４１３に送信することにより、ＳＳＤ４１３に対してトリムコマンドの実行を指示する。ＳＳＤ４１３は、図５（Ａ）及び（Ｂ）に示したように、トリムコマンドを実行し、ガベージコレクション処理及びブロック消去処理を行う。ステップＳ１０８では、ＣＰＵ４０１は、設定値をクリアし、ステップＳ１０１に戻る。
【００２６】
以上のように、ステップＳ１０５では、ＣＰＵ４０１は、ＳＳＤ４１３の使用量に関する情報として、ＳＳＤ４１３の総書き込み量の取得を繰り返す。ステップＳ１０６では、コントローラ部４００は、ＳＳＤ４１３内の空きブロック（空き容量）がある場合には、ステップＳ１０５に戻り、ＳＳＤ４１３内の空きブロックがなくなった場合には、トリムコマンドを実行する。これにより、コントローラ部４００は、適切な頻度とタイミングで、トリムコマンドを実行することができるので、ＳＳＤ４１３の書き換え回数を減少させ、ＳＳＤ４１３の寿命を長くすることができる。
【００２７】
（第２の実施形態）
図７は、本発明の第２の実施形態によるコントローラ部４００の制御方法を示すフローチャートである。コントローラ部４００は、図６と同様に、ステップＳ１０１〜Ｓ１０６の処理を行う。ステップＳ１０６では、ＣＰＵ４０１は、ＳＳＤ４１３の総書き込み量が設定値より大きくない場合には、ステップＳ１０５に戻り、ＳＳＤ４１３の総書き込み量が設定値より大きい場合には、ステップＳ２０７に進む。
【００２８】
ステップＳ２０７では、ＣＰＵ４０１は、トリムコマンド実行フラグを生成する。ステップＳ２０８では、ＣＰＵ４０１は、上記の設定値をクリアする。ステップＳ１０２のS.M.A.R.T情報は、ＳＳＤ４１３のメディア消耗指標を含む。ステップＳ２０９では、ＣＰＵ４０１は、ステップＳ１０２で参照したS.M.A.R.T情報から、ＳＳＤ４１３の寿命に関する情報として、ＳＳＤ４１３のメディア消耗指標（Media Wearout Indicator）を取得する。メディア消耗指標は、初期時が１００であり、ＳＳＤ４１３の使用により減少する。メディア消耗指標は、小さいほど、ＳＳＤ４１３の寿命が短いことを意味する。
【００２９】
ステップＳ２１０では、ＣＰＵ４０１は、ステップＳ２０９で取得したＳＳＤ４１３のメディア消耗指標の値が所定値より小さいか否かを判定する。ＣＰＵ４０１は、ＳＳＤ４１３のメディア消耗指標の値が所定値より小さい場合には、ステップＳ２１１に進み、ＳＳＤ４１３のメディア消耗指標の値が所定値より小さくない場合には、ステップＳ２１３に進む。
【００３０】
ステップＳ２１１では、ＣＰＵ４０１は、ＳＳＤ４１３の書き込み速度を取得する。書き込み速度は、ＳＳＤ４１３の空きブロックが不足すると遅くなり、パフォーマンスが低下する。ステップＳ２１２では、ＣＰＵ４０１は、ステップＳ２１１で取得したＳＳＤ４１３の書き込み速度の値が所定値より小さいか否かを判定する。ＣＰＵ４０１は、ＳＳＤ４１３の書き込み速度の値が所定値より小さくない場合には、ステップＳ２１１に戻り、ＳＳＤ４１３の書き込み速度の値が所定値より小さい場合には、ステップＳ２１３に進む。
【００３１】
ステップＳ２１３では、ＣＰＵ４０１は、トリムコマンドをＳＳＤ４１３に送信することにより、ＳＳＤ４１３に対してトリムコマンドの実行を指示する。ＳＳＤ４１３は、図５（Ａ）及び（Ｂ）に示したように、トリムコマンドを実行し、ガベージコレクション処理及びブロック消去処理を行う。ステップＳ２１４では、ＣＰＵ４０１は、トリムコマンド実行フラグをクリアし、ステップＳ１０１に戻る。
【００３２】
以上のように、ステップＳ２１０では、ＣＰＵ４０１は、ＳＳＤ４１３のメディア消耗指標の値が所定値より小さい場合に、ＳＳＤ４１３の書き込み速度を取得する。ステップＳ２１１では、ＣＰＵ４０１は、ＳＳＤ４１３の書き込み速度を繰り返し取得する。ステップＳ２１２では、コントローラ部４００は、ＳＳＤ４１３の書き込み速度の値が所定値より小さい場合には、トリムコマンドを実行する。コントローラ部４００は、ＳＳＤ４１３の寿命が所定値より短くなり、かつ、ＳＳＤ４１３の空きブロック不足により書き込み速度が低下した場合に、トリムコマンドを実行する。これにより、さらに、ＳＳＤ４１３の書き換え回数を減少させ、ＳＳＤ４１３の寿命を長くすることができる。
【００３３】
（第３の実施形態）
図８は、本発明の第３の実施形態によるコントローラ部４００の制御方法を示すフローチャートである。図８は、図７に対して、ステップＳ２０９及びＳ２１０の代わりに、ステップＳ５０９及びＳ５１０を設けたものである。以下、図８が図７と異なる点を説明する。
【００３４】
現在流通しているＳＳＤにおける寿命に関するパラメータ（情報）は、図７のメディア消耗指標の他に、平均消去回数等があるが、搭載されるＳＳＤコントローラ１０００によってサポートされるパラメータが異なる。メディア消耗指標がサポートされない場合、ＣＰＵ４０１は、平均消去回数を用いて、寿命の消耗を判定することができる。
【００３５】
ステップＳ５０９では、ＣＰＵ４０１は、ステップＳ１０２で参照したS.M.A.R.T情報から、ＳＳＤ４１３の平均消去回数を取得する。平均消去回数は、多いほどＳＳＤ４１３の寿命が短いことを示す。ステップＳ５１０では、ＣＰＵ４０１は、ステップＳ５０９で取得したＳＳＤ４１３の平均消去回数の値が所定値より大きいか否かを判定する。ＣＰＵ４０１は、ＳＳＤ４１３の平均消去回数の値が所定値より大きい場合には、ステップＳ２１１に進み、ＳＳＤ４１３の平均消去回数の値が所定値より大きくない場合には、ステップＳ２１３に進む。
【００３６】
ステップＳ２１１では、ＣＰＵ４０１は、ＳＳＤ４１３の書き込み速度を取得する。ステップＳ２１２では、ＣＰＵ４０１は、ＳＳＤ４１３の書き込み速度の値が所定値より小さくない場合には、ステップＳ２１１に戻り、ＳＳＤ４１３の書き込み速度の値が所定値より小さい場合には、ステップＳ２１３に進む。ステップＳ２１３では、ＣＰＵ４０１は、トリムコマンドをＳＳＤ４１３に送信することにより、ＳＳＤ４１３に対してトリムコマンドの実行を指示する。ステップＳ２１４では、ＣＰＵ４０１は、トリムコマンド実行フラグをクリアし、ステップＳ１０１に戻る。
【００３７】
以上のように、ステップＳ５１０では、ＣＰＵ４０１は、ＳＳＤ４１３の平均消去回数が所定値より多い場合に、ＳＳＤ４１３の書き込み速度を取得する。ステップＳ２１２では、コントローラ部４００は、ＳＳＤ４１３の書き込み速度の値が所定値より小さい場合には、トリムコマンドを実行する。コントローラ部４００は、ＳＳＤ４１３の寿命が所定値より短くなり、かつ、ＳＳＤ４１３の空きブロック不足により書き込み速度が低下した場合に、トリムコマンドを実行する。これにより、さらに、ＳＳＤ４１３の書き換え回数を減少させ、ＳＳＤ４１３の寿命を長くすることができる。
【００３８】
（第４の実施形態）
図９は、本発明の第４の実施形態によるコントローラ部４００の制御方法を示すフローチャートである。第４の実施形態は、第１の実施形態に対して、ステップＳ３０７の追加条件を付加することで、画像形成装置４１０のパフォーマンスに影響の無いタイミングでトリムコマンドを実行する。
【００３９】
コントローラ部４００は、図６と同様に、ステップＳ１０１〜Ｓ１０６の処理を行う。ステップＳ１０６では、ＣＰＵ４０１は、ＳＳＤ４１３の総書き込み量が設定値より大きくない場合には、ステップＳ１０５に戻り、ＳＳＤ４１３の総書き込み量が設定値より大きい場合には、ステップＳ３０７に進む。
【００４０】
ステップＳ３０７では、ＣＰＵ４０１は、追加条件の有無を判定する。ここで、追加条件は、次の３条件（１）〜（３）のいずれかである。条件（２）及び（３）は、ＳＳＤ４１３の電源停止条件が満たされる条件である。
（１）画像形成装置４１０の画質調整処理を実行する時
（２）画像形成装置４１０のＳＳＤ４１３の電源停止を含む省電力モードへの移行条件が満たされた時
（３）画像形成装置４１０のシャットダウン条件が満たされた時
【００４１】
ステップＳ３０７では、ＣＰＵ４０１は、上記の３条件のうちのいずれかに該当するまで待機し、上記の３条件のうちのいずれかに該当する場合には、ステップＳ１０７に進む。
【００４２】
ステップＳ１０７では、ＣＰＵ４０１は、トリムコマンドをＳＳＤ４１３に送信することにより、ＳＳＤ４１３に対してトリムコマンドの実行を指示する。ＳＳＤ４１３は、図５（Ａ）及び（Ｂ）に示したように、トリムコマンドを実行し、ガベージコレクション処理及びブロック消去処理を行う。ステップＳ１０８では、ＣＰＵ４０１は、設定値をクリアし、ステップＳ１０１に戻る。
【００４３】
なお、本実施形態は、第１の実施形態に適用する例を説明したが、第２及び第３の実施形態に対して、追加条件を付加してもよい。その場合、図７及び図８のステップＳ２１２とＳ２１３の間に、ステップＳ３０７を追加する。
【００４４】
以上のように、本実施形態では、トリムコマンド実行の条件として、ステップＳ３０７の追加条件を付加する。これにより、画像形成装置４１０のパフォーマンスに影響のないタイミングで、トリムコマンドを実行することができる。例えば、コントローラ部４００は、画質調整処理の時、省電力モードへの移行条件が満たされた時、シャットダウン条件が満たされた時、又はＳＳＤ４１３の電源停止条件が満たされた時、トリムコマンドを実行することができる。これらの時は、トリムコマンドの実行が、画像形成装置４１０のパフォーマンスに影響がない時である。
【００４５】
（第５の実施形態）
図１０は、本発明の第５の実施形態によるコントローラ部４００の制御方法を示すフローチャートである。前述の通り、ＳＳＤ４１３のS.M.A.R.T情報（診断情報）から得られるパラメータ情報は、搭載されるＳＳＤコントローラ１０００によってサポートされる項目が異なる。従って、ＳＳＤコントローラ１０００によっては、第１の実施形態で使用した総書き込み量のパラメータが無い物も存在する。本実施形態では、総書き込み量のパラメータを持たないＳＳＤ４１３におけるトリムコマンドの実行タイミングを決める方法を説明する。
【００４６】
ステップＳ４０１では、ＣＰＵ４０１は、ストレージ制御部４１２を介して、ＳＳＤ４１３に記録されているＯＳのファイルシステムの管理情報にアクセスし、ＳＳＤ４１３の論理空き容量を取得する。ステップＳ４０２では、ＣＰＵ４０１は、ステップＳ４０１で取得したＳＳＤ４１３の論理空き容量をトリムコマンド実行パラメータ（設定値）とする。ＣＰＵ４０１は、その設定値をコントローラ部４００内の何れかの記憶媒体に格納する。
【００４７】
ステップＳ４０３では、ＣＰＵ４０１は、画像形成装置４１０で実行されるジョブを監視する。ステップＳ４０４では、ＣＰＵ４０１は、ジョブの実行に際して、ＳＳＤ４１３に書き込んだスプールデータ量を取得する。ステップＳ４０５では、ＣＰＵ４０１は、ステップＳ４０４で取得したスプールデータ量を逐次加算し、総スプールデータ量を算出する。
【００４８】
ステップＳ４０６では、ＣＰＵ４０１は、ステップＳ４０５で算出した総スプールデータ量の値が上記の設定値より大きいか否かを判定する。ＣＰＵ４０１は、総スプールデータ量の値が設定値より大きくない場合には、ステップＳ４０３に戻り、総スプールデータ量の値が設定値より大きい場合には、ステップＳ４０７に進む。
【００４９】
ステップＳ４０７では、ＣＰＵ４０１は、トリムコマンドをＳＳＤ４１３に送信することにより、ＳＳＤ４１３に対してトリムコマンドの実行を指示する。ＳＳＤ４１３は、図５（Ａ）及び（Ｂ）に示したように、トリムコマンドを実行し、ガベージコレクション処理及びブロック消去処理を行う。ステップＳ４０８では、ＣＰＵ４０１は、設定値をクリアし、ステップＳ４０１に戻る。
【００５０】
以上のように、ステップＳ４０４では、ＣＰＵ４０１は、ＳＳＤ４１３の使用量に関する情報として、ＳＳＤ４１３に書き込んだスプールデータ量を取得する。ステップＳ４０６では、コントローラ部４００は、ＳＳＤ４１３内の空きブロック（空き容量）がある場合には、ステップＳ４０３に戻り、ＳＳＤ４１３内の空きブロックがなくなった場合には、トリムコマンドを実行する。コントローラ部４００は、S.M.A.R.T情報として総書き込み量のパラメータをサポートしないＳＳＤ４１３であっても、ジョブで使用するスプールデータ量の総量に応じて、トリムコマンドを実行することができる。これにより、ＳＳＤ４１３の書き換え回数を減少させ、ＳＳＤ４１３の寿命を長くすることができる。
【００５１】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読み出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００５２】
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
【符号の説明】
【００５３】
４０１  ＣＰＵ、４１２  ストレージ制御部、４１３  ＳＳＤ、１０００  ＳＳＤコントローラ、１００１  ストレージインターフェース、１００２  メモリ制御部、１００３  フラッシュメモリ
【図１】
2019199059.tif 000003
【図２】
2019199059.tif 000004
【図３】
2019199059.tif 000005
【図４】
2019199059.tif 000006
【図５】
2019199059.tif 000007
【図６】
2019199059.tif 000008
【図７】
2019199059.tif 000009
【図８】
2019199059.tif 000010
【図９】
2019199059.tif 000011
【図１０】
2019199059.tif 000012