(57)【要約】      （修正有）【課題】空きブロック数の減少による、フラッシュメモリを利用したストレージの動作不良を防止することができるメモリ制御装置及びその制御方法並びに制御プログラムを提供する。【解決手段】画像形成装置１は、コントローラ部１００と、フラッシュメモリを含むソリッドステートドライブ（ＳＳＤ）１１３を備える。ＣＰＵ１０１は、ストレージ制御部１１２を介してＳＳＤを制御する。ＳＳＤが備えるメモリ制御部は、フラッシュメモリに対してデータの書き込みのみを実施する第１の書き込みモードと、フラッシュメモリに対してデータの書き込み後にガベージコレクションを実施する第２の書き込みモードとを有する。ＣＰＵ１０１は、フラッシュメモリの空きブロック数を検出し、その検出された空きブロック数に応じて、ＳＳＤのメモリ制御部に対して第１及び第２の書き込みモードの一方への切り替え指示を行う。【選択図】図１
2020177415.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性メモリと前記不揮発性メモリを制御するメモリ制御部とを有するストレージを制御する情報処理装置であって、
前記不揮発性メモリの空きブロック数を検出する検出手段と、
前記不揮発性メモリに対してデータの書き込みのみを前記メモリ制御部に実施させる第１の書き込みモード、及び前記不揮発性メモリに対してデータの書き込みを前記メモリ制御部に実施させた後にガベージコレクションを前記メモリ制御部に実施させる第２の書き込みモードの一方への切り替えを前記検出された空きブロック数に応じて前記メモリ制御部に対して指示する指示手段とを備えることを特徴とする情報処理装置。
【請求項２】
前記指示手段は、前記不揮発性メモリの空きブロック数が閾値を下回った場合、前記メモリ制御部に対して前記第２の書き込みモードへの切り替え指示を行うことを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記指示手段は、前記不揮発性メモリの空きブロック数が閾値を下回った場合、前記メモリ制御部に対して前記第１の書き込みモードへの切り替え指示を行うことを特徴とする請求項１記載の情報処理装置。
【請求項４】
前記指示手段は、前記メモリ制御部に対して前記第１及び第２の書き込みモードの一方への切り替え指示を行ってから予め設定された時間が経過した場合、前記不揮発性メモリの空きブロック数に応じて、前記メモリ制御部に対して前記第１及び第２の書き込みモードの一方への切り替え指示を再度行うことを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記指示手段は、前記メモリ制御部に対して前記第１及び第２の書き込みモードの一方への切り替え指示を行ってから前記不揮発性メモリに対するデータの書き込み回数が予め設定された値となった場合、前記不揮発性メモリの空きブロック数に応じて、前記メモリ制御部に対して前記第１及び第２の書き込みモードの一方への切り替え指示を再度行うことを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項６】
前記指示手段は、前記ストレージに対して電源投入がされたときに、前記不揮発性メモリの空きブロック数に応じて、前記メモリ制御部に対して前記第１及び第２の書き込みモードの一方への切り替え指示を行うことを特徴とする請求項４又は５記載の情報処理装置。
【請求項７】
前記指示手段は、データの書き込みのユーザ指示がある毎に、前記不揮発性メモリの空きブロック数に応じて、前記メモリ制御部に対して前記第１及び第２の書き込みモードの一方への切り替え指示を行うことを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項８】
前記検出手段は、前記空きブロック数の情報を前記メモリ制御部を介して前記不揮発性メモリから取得することを特徴とする請求項１乃至７のいずれか１項に記載の情報処理装置。
【請求項９】
不揮発性メモリと前記不揮発性メモリを制御するメモリ制御部とを有するストレージを制御する情報処理装置の制御方法であって、
前記不揮発性メモリの空きブロック数を検出する検出ステップと、
前記不揮発性メモリに対してデータの書き込みのみを前記メモリ制御部に実施させる第１の書き込みモード、及び前記不揮発性メモリに対してデータの書き込みを前記メモリ制御部に実施させた後にガベージコレクションを前記メモリ制御部に実施させる第２の書き込みモードの一方への切り替えを前記検出された空きブロック数に応じて前記メモリ制御部に対して指示する指示ステップとを有することを特徴とする制御方法。
【請求項１０】
請求項９記載の制御方法を実行することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及びその制御方法並びにプログラムに関し、特に、フラッシュメモリを利用したストレージを搭載するホスト装置として機能する情報処理装置及びその制御方法並びにプログラムに関する。
【背景技術】
【０００２】
一般に、画像形成装置等の情報処理装置のストレージにはハードディスクドライブ（ＨＤＤ）が用いられており、ＨＤＤへのプログラムの格納や画像データの保存や編集などが行われる。
【０００３】
ところで、近年、フラッシュメモリを利用したストレージ、特にソリッドステートドライブ（ＳＳＤ）は、大容量化および低価格化が進み、モバイルＰＣ等のパソコンを中心として急速にストレージとしての普及が進んでいる。
【０００４】
ＳＳＤはＨＤＤと比べて高速なランダムアクセスが可能であるばかりでなく、低消費電力、軽量、および省スペースという利点がある。また、ＳＳＤにおいては、システム起動の際にＨＤＤにおいて必要となるスピンアップ等の初期動作が不要なため、ＨＤＤと比較して起動時間をかなり短縮することができる。さらに、ＳＳＤにはＨＤＤと異なり衝撃によって破損しやすいディスクの駆動部分が存在しないので、耐衝撃性及び耐熱性に優れている。このため、ＳＳＤは画像形成装置のストレージとしても注目されている。
【０００５】
但し、ＳＳＤに搭載される記憶デバイスであるフラッシュメモリには書き込み可能回数に上限があり、且つそのタイプによってその上限回数も異なる。例えば、ＳＬＣ（Ｓｉｎｇｌｅ  Ｌｅｖｅｌ  Ｃｅｌｌ）のタイプで約１０万回、ＭＬＣ（Ｍｕｌｔｉｐｌｅ  Ｌｅｖｅｌ  Ｃｅｌｌ）のタイプで約１万回である。さらに、半導体の微細化に起因して、フラッシュメモリにおける書き換え可能回数は減少する傾向にある。
【０００６】
フラッシュメモリにおける書き込み可能回数の制限（上限）に対処するため、ＳＳＤに搭載されるメモリ制御部は、フラッシュメモリにおいて同一の領域に対する書き込みの頻度が集中しないように、書き込み先の領域を平均化させている。これによって、フラッシュメモリ、ひいては、これを搭載するストレージとしてのＳＳＤの寿命を延伸化している。この技術はウェアレベリングと呼ばれている。
【０００７】
また、メモリ制御部はフラッシュメモリの空き容量を確保する為、消去対象データが記憶された領域に対して書き込み時と逆方向に電圧をかけることにより、ブロックと呼ばれる単位でデータの消去を行っている（特許文献１，２参照）。以下、かかる方法でのデータの消去をガベージコレクションという。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００７−１９３８８３号公報
【特許文献２】特開２０１８−１５６６００号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、特許文献１，２に記載されるガベージコレクションは、ＳＳＤに搭載されるメモリ制御部が実行条件に達したかを判断し実行している。すなわち、従来技術では、ＳＳＤをストレージとして搭載するホスト装置側で実行条件に達したかを判断したり、その判断結果に基づき、ホスト装置側からガベージコレクションを実行する旨のコマンドをＳＳＤに送信したりすることは出来ない。またガベージコレクションの実行条件はメモリ制御部の仕様にて異なる。
【００１０】
一方、ＳＳＤからホスト装置に通知するＲｅｔｕｒｎ  Ｓｔａｔｕｓ  Ｅｒｒｏｒの発生条件の一つに、データが保管されていないブロックの数（以下「空きブロック数」という）が一定値以下であるという要件がある。すなわち、メモリ制御部の仕様によっては、空きブロック数がメモリ制御部での処理ができなくなるまで減ったとしてもガベージコレクションが実行されない事態が生じる。この場合、ＳＳＤが動作不良となってしまう。
【００１１】
従って、本発明の目的は、空きブロック数の減少による、フラッシュメモリを利用したストレージの動作不良を防止することができる情報処理装置及びその制御方法並びに制御プログラムを提供することにある。
【課題を解決するための手段】
【００１２】
本発明の請求項１に係る情報処理装置は、揮発性メモリと前記不揮発性メモリを制御するメモリ制御部とを有するストレージを制御する情報処理装置であって、前記不揮発性メモリの空きブロック数を検出する検出手段と、前記不揮発性メモリに対してデータの書き込みのみを前記メモリ制御部に実施させる第１の書き込みモード、及び前記不揮発性メモリに対してデータの書き込みを前記メモリ制御部に実施させた後にガベージコレクションを前記メモリ制御部に実施させる第２の書き込みモードの一方への切り替えを前記検出された空きブロック数に応じて前記メモリ制御部に対して指示する指示手段とを備えることを特徴とする。
【発明の効果】
【００１３】
本発明によれば、空きブロック数の減少による、フラッシュメモリを利用したストレージの動作不良を防止することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施例１に係る情報処理装置としての画像形成装置が有するコントローラ部の構成を示すブロック図である。
【図２】図１におけるＳＳＤの内部構成を示すブロック図である。
【図３】実施例１における書き込みモード切り替え処理のフローチャートである。
【図４】実施例２における書き込みモード切り替え処理のフローチャートである。
【図５】実施例３における書き込みモード切り替え処理のフローチャートである。
【発明を実施するための形態】
【００１５】
［実施例１］
以下、本実施例におけるメモリ制御装置を備える画像形成装置１を例に挙げ、図面を用いて説明する。但し、以下の実施例は本発明をそれらのみに限定するものではなく、また、以下の実施例に記載されている特徴の組み合わせの全てが本発明の解決に必須のものとは限らない。尚、同一の構成については、同一の符号を付して説明する。
【００１６】
図１は、本実施例における画像形成装置１が有するコントローラ部１００の構成を示すブロック図である。
【００１７】
コントローラ部１００は、ＣＰＵ１０１、ＲＯＭ１０２、ＲＡＭ１０３、バスブリッジ１０４、を有し、ＣＰＵ１０１は、オペレーティングシステム（以下、ＯＳ）に基づき制御される。ＣＰＵ１０１は、リアルタイムクロック（以下ＲＴＣ）１１５及びバスブリッジ１０４と接続されており、バスブリッジ１０４を介して、ＣＰＵ１０１の初期起動用プログラムをＲＯＭ１０２から読み出す。また、ＣＰＵ１０１は不図示のタイマーを内蔵する。
【００１８】
バスブリッジ１０４には、ＣＰＵ１０１及びＲＯＭ１０２の他、ＲＡＭ１０３、操作部インターフェース（操作部Ｉ／Ｆ）１０６、及びストレージ制御部１１２が接続されている。
【００１９】
ＲＡＭ１０３は、ＣＰＵ１０１が制御に伴う演算を行う際の作業領域として用いられる
操作部インターフェース（操作部Ｉ／Ｆ）１０６は、操作部に接続され、ＣＰＵ１０１は操作部Ｉ／Ｆ１０６を介し操作部の制御を行う。
【００２０】
ストレージ制御部１１２は、ＣＰＵ１０１からの指示に基づき、ＳＳＤ１１３の電源投入を行なったり、ＳＳＤ１１３へのプログラムの格納やデータの保存・編集を行う。
【００２１】
ＳＳＤ１１３には、ＣＰＵ１０１のＯＳを含むメインプログラムの他、画像データが格納される。この画像データは例えば、イメージリーダを用いて、又は、外部ＰＣから外部Ｉ／Ｆ１５１を介して取得された画像データや、ユーザの操作部への操作により作成された画像データ等である。また、ＳＳＤ１１３には、アプリケーションプログラムや、プリファレンスデータ等も格納される。プリファレンスデータは、操作部の表示、省電力モードへの移行時間等のユーザ設定に関する情報（いわゆる設定情報）と、アドレス帳等の登録情報が格納される。尚、本実施例に係る情報処理装置は画像形成装置１であるが、ＳＳＤ１１３をストレージとして搭載するホスト装置としての機能を有する情報処理装置であれば、画像形成装置に限定されない。例えば、ビデオカメラがかかる情報処理装置であってもよい。この場合、ＳＳＤ１１３への書き込みデータは画像データではなく映像データや音声データとなる。
【００２２】
また、バスブリッジ１０４には、外部Ｉ／Ｆ制御部１０５、操作部Ｉ／Ｆ１０６、及びデバイス制御部１１１が接続されている。
【００２３】
外部Ｉ／Ｆ制御部１０５は、外部インターフェース（外部Ｉ／Ｆ）１５１を制御する。また、外部Ｉ／Ｆ１５１は、ネットワークやＵＳＢインターフェース等から構成され、ネットワークやＵＳＢ等の外部バスを介して外部ＰＣと接続するインターフェースである。例えば、外部Ｉ／Ｆ１５１は、外部ＰＣから受信した印刷データを画像データに展開して出力したり、後述するＳＳＤ１１３内の画像データを外部ＰＣに送信したりする。
【００２４】
操作部Ｉ／Ｆ１０６は、操作部と接続され。その制御を司る。
【００２５】
デバイス制御部１１１は、不図示の原稿搬送装置制御部、イメージリーダ制御部、プリンタ制御部、折り装置制御部、フィニッシャ制御部と接続され、これらの制御を司る。
【００２６】
コントローラ部１００は、操作部Ｉ／Ｆ１０６や外部Ｉ／Ｆ１５１を介して操作部や外部コンピュータ（外部ＰＣ）からの指示を受信する。また、コントローラ部１００は、この受信した指示に基づき、デバイス制御部１１１を介して原稿搬送装置制御部やイメージリーダ制御部と通信することで入力される原稿の画像データを取得する。また、コントローラ部１００は、デバイス制御部１１１を介してプリンタ制御部と通信することで、取得した画像データに基づき、用紙等の記録媒体に画像を形成する。さらに、コントローラ部１００は、折り装置制御部やフィニッシャ制御部と通信することで、画像形成した用紙を折ったり、ステイプルやパンチといった後加工を実現する。
【００２７】
ＲＴＣ１１５は、現在時刻を取得可能であり、取得した現在時刻を示すタイムスタンプをＣＰＵ１０１に通知する。
【００２８】
図２は、ＳＳＤ１１３の内部構成を示すブロック図である。
【００２９】
ＳＳＤ１１３は、フラッシュ制御部２００および不揮発性メモリである複数のフラッシュメモリ２０３を有する。
【００３０】
フラッシュ制御部２００は、ストレージＩ／Ｆ２０１およびメモリ制御部２０２を備えており、ストレージＩ／Ｆ２０１はストレージ制御部１１２に接続されている。つまり、ストレージＩ／Ｆ２０１はストレージ制御部１１２との通信するためのモジュールである。本実施例では、ストレージＩ／Ｆ２０１として、シリアルＡＴＡ（Ｓｅｒｉａｌ  ＡＴ  Ａｔｔａｃｈｍｅｎｔ：以下ＳＡＴＡという）インターフェースが用いられる。
【００３１】
メモリ制御部２０２は、ストレージＩ／Ｆ２０１を介して受信したストレージ制御部１１２からの指示に基づいてフラッシュメモリ２０３に対するデータのリード／ライトを行う。
【００３２】
メモリ制御部２０２は、後述する画像形成装置１のコントローラ部１００からの書き込みモードの切り替え指示に応じて第１および第２の書き込みモードの一方の書き込みモードに切り替える。その後、メモリ制御部２０２は、その切り替えられた書き込みモードに応じて、フラッシュメモリ２０３に対する処理を実施する。
【００３３】
第１の書き込みモードでは、メモリ制御部２０２は、フラッシュメモリ２０３のデータが保管されていないページ（以下「空きページ」という。）に書き込みデータを書き込む処理を実施する。
【００３４】
第２の書き込みモードでは、まず、メモリ制御部２０２は、フラッシュメモリ２０３内のデータが保管されていないブロック（以下「空きブロック」という。）に書き込みデータを書き込む処理を実施する。その後、消去対象データが含まれるブロックに存在する必要なデータのコピーを書き込みデータが保管されたブロックに行い、不要となったコピー元ブロックのデータを消去する処理（ガベージコレクション）を実施する。
【００３５】
尚、ブロックとは、フラッシュメモリ２０３内のデータを消去する単位であり、データにアクセスする単位であるページよりも大きい。
【００３６】
以下後述する空きブロック数等を管理するＳＭＡＲＴ情報はフラッシュメモリ２０３に保存される。また、ストレージ制御部１１２からの指示に応じて、メモリ制御部２０２はＳＭＡＲＴ情報をフラッシュメモリ２０３から取得し、ストレージＩ／Ｆ２０１を介し、ストレージ制御部１１２へ通知する。
【００３７】
図３は、本実施例における書き込みモード切り替え処理を説明するためのフローチャートである。なお、図３に示す処理は、図１に示すコントローラ部１００のＣＰＵ１０１がストレージ制御部１１２を介してＳＳＤ１１３に対して電源投入することに応じて開始する。
【００３８】
ステップＳ３０１において、まず、ＣＰＵ１０１はメモリ制御部２０２に対しＳＭＡＲＴ情報の提示要求を行う。この提示要求に応じてメモリ制御部２０２はフラッシュメモリ２０３内に管理されるＳＭＡＲＴ情報を取得し、ＣＰＵ１０１に通知する。この通知により、ＣＰＵはＳＭＡＲＴ情報を取得すると、ＣＰＵ１０１はそのＳＭＡＲＴ情報に含まれるフラッシュメモリ２０３の空きブロック数を検出する。
【００３９】
尚、ＳＭＡＲＴ情報にはフラッシュメモリの空きブロック数の他に、ディスクの概要（メーカ、型版、シリアル番号等）、ディスク状態（温度、不良セクタ数、作業時間等）等が登録されている。
【００４０】
ステップＳ３０２において、ＣＰＵ１０１はステップＳ３０１で検出したフラッシュメモリ２０３の空きブロック数が予め設定された空きブロック数の閾値Ａ（以下単に閾値Ａという）を下回ったかを判定する。この判定の結果、フラッシュメモリ２０３の空きブロック数が閾値Ａを下回った場合（ステップＳ３０２でＹＥＳ）、ステップＳ３０３へ進む。一方、この判定の結果、フラッシュメモリ２０３の空きブロック数が閾値Ａ以上である場合（ステップＳ３０２でＮＯ）、ステップＳ３０４へ進む。尚、閾値Ａはメモリ制御部２０２の動作不良が発生する値より大きい値が設定される。
【００４１】
ステップＳ３０３において、ＣＰＵ１０１は書き込みモードを第２の書き込みモードへ切り替えるよう、メモリ制御部２０２に指示する。またこの指示と並行してＣＰＵ１０１は、ＲＴＣ１１５に現在時刻を示すタイムスタンプの提示要求を行う。
【００４２】
ステップＳ３０４において、ＣＰＵ１０１は書き込みモードを第１の書き込みモードへ切り替えるよう、メモリ制御部２０２に指示する。またこの指示と並行してＣＰＵ１０１は、ＲＴＣ１１５に現在時刻を示すタイムスタンプの提示要求を行う。
【００４３】
ステップＳ３０５において、ＣＰＵ１０１は、ステップＳ３０３もしくはステップＳ３０４の提示要求に応じてＲＴＣ１１５から提示されたタイムスタンプを確認し、タイマーで時間の計測を開始する。
【００４４】
ステップＳ３０６において、ＣＰＵ１０１はタイマーで計測された時間が予め設定された時間Ｂを経過したかを判定する。この判定の結果、時間Ｂを経過した場合（ステップＳ３０６でＹＥＳ）、時間Ｂ内にステップＳ３０３，Ｓ３０４の一方の指示で切り替えられた書き込みモードでの処理がメモリ制御部２０２において実施された判断し、タイマーをリセットする。その後、ステップＳ３０３，Ｓ３０４の一方の指示を再度行うべくステップＳ３０１へ戻る。一方、この判定の結果、時間Ｂをまだ経過していない場合（ステップＳ３０６でＮＯ）、ステップＳ３０７へ進む。
【００４５】
ステップＳ３０７において、ＣＰＵ１０１は画像形成装置１が省電力モードに移行したか判定する。この判定の結果、画像形成装置１が省電力モードに移行した場合（ステップＳ３０７でＹＥＳ）、ＣＰＵ１０１はＳＳＤ１１３への電源を遮断し、本処理を終了する。一方、この判定の結果、画像形成装置１が省電力モードに移行していない場合（ステップＳ３０７でＮＯ）、ステップＳ３０６へ戻る。尚、ステップＳ３０７では、画像形成装置１がＳＳＤ１１３への電源が遮断される状態に移行するかが判定されればよい。例えば、ステップＳ３０７で画像形成装置１がシャットダウンされるかを判定するようにしてもよい。
【００４６】
以上実施例１によれば、ＣＰＵ１０１は、まず、フラッシュメモリ２０３の空きブロック数が閾値Ａを下回ったと判定した場合、データの書き込み後にガベージコレクションを行う第２の書き込みモードへの切り替え指示をメモリ制御部２０２に行う。これにより、適切なタイミングにて消去対象データがフラッシュメモリ２０３から消去されるため、空きブロック数の減少によるＳＳＤ１１３の動作不良を防止することができる。
【００４７】
更にＣＰＵ１０１は、上記切り替え指示後、時間Ｂが経過した後に、再度上記判定を行う。この判定の結果、フラッシュメモリ２０３の空きブロック数が閾値Ａを下回っていないと判定した場合、第２の書き込みモードからガベージコレクションは行わずデータの書き込みのみを行う第１の書き込みモードへの切り替え指示をメモリ制御部２０２に行う。これにより、第２の書き込みモードでの処理において実行されるガベージコレクションによるＳＳＤ１１３のパフォーマンス低下を抑制することが可能となる。
【００４８】
［実施例２］
次に、実施例２について説明する。尚、本実施例において、実施例１と同一の構成及びステップについては同一の符号を付し、重複した説明は省略する。
【００４９】
図４は、本実施例における書き込みモード切り替え処理を説明するためのフローチャートである。なお、図４に示す処理は、図３と同様、図１に示すコントローラ部１００のＣＰＵ１０１がストレージ制御部１１２を介してＳＳＤ１１３に対して電源投入することに応じて開始する。
【００５０】
まず、本処理が開始すると、ステップＳ３０１〜ステップＳ３０４と同じ処理が実行される。但し、ステップＳ３０３，Ｓ３０４においてＣＰＵ１０１は、ＲＴＣ１１５に現在時刻を示すタイムスタンプの提示要求は行わない。
【００５１】
次に、ステップＳ４０１において、ＣＰＵ１０１はステップＳ３０３もしくはステップＳ３０４での書き込みモードの切り替えが完了した後、ＳＳＤ１１３へのデータの書き込み回数をカウントする。
【００５２】
ステップＳ４０２において、ＣＰＵ１０１はカウントされた書き込み回数が予め設定された値Ｃとなったかを判断する。この判定の結果、カウントされた書き込み回数が値Ｃとなった場合（ステップＳ４０２でＹＥＳ）、カウントされた書き込み回数をリセットした後に、ステップＳ３０１へ戻る。一方、この判定の結果、カウントされた書き込み回数が値Ｃとなっていない場合（ステップＳ４０２でＮＯ）、ステップＳ３０７へ進む。
【００５３】
ステップＳ３０７は図３と同じ処理が実行される。
【００５４】
以上実施例２によれば、ＣＰＵ１０１は、第２の書き込みモードへの切り替え指示をメモリ制御部２０２に行った後、ＳＳＤ１１３へのデータの書き込み回数が値Ｃとなったと判定した場合、第１の書き込みモードへの切り替え指示をメモリ制御部２０２に行う。これにより、第２の書き込みモードにおいて実行されるガベージコレクションによるＳＳＤ１１３のパフォーマンス低下を抑制することが可能となる。
【００５５】
［実施例３］
次に、実施例３について説明する。尚、本実施例において、実施例１と同一の構成及びステップについては同一の符号を付し、重複した説明は省略する。
【００５６】
図５は、本実施例における書き込みモード切り替え処理を説明するためのフローチャートである。
【００５７】
まず、ステップＳ５０１において、図１に示すコントローラ部１００のＣＰＵ１０１は、操作部に対してＳＳＤ１１３へのデータ書き込みのユーザ指示があったか判定する。この判定の結果、データ書き込みのユーザ指示があった場合、図１のステップＳ３０１〜Ｓ３０４と同じ処理が実行された後、本処理を終了する。但し、ステップＳ３０３，Ｓ３０４においてＣＰＵ１０１は、ＲＴＣ１１５に現在時刻を示すタイムスタンプの提示要求は行わない。
【００５８】
以上実施例３によれば、ＳＳＤ１１３へのデータ書き込みのユーザ指示がある毎に、フラッシュメモリ２０３の空きブロック数が閾値Ａを下回ったか否かを判定する。この判定の結果、フラッシュメモリ２０３の空きブロック数が閾値Ａを下回った場合、データの書き込み後にガベージコレクションを行う第２の書き込みモードへの切り替える指示をメモリ制御部２０２に対して行う。一方、この判定の結果、フラッシュメモリ２０３の空きブロック数が閾値Ａを下回っていないと判定した場合、ガベージコレクションは行わずデータの書き込みのみを行う第１の書き込みモードへの切り替え指示をメモリ制御部２０２に行う。これにより、適切なタイミングで消去対象データがフラッシュメモリ２０３から消去されるため、空きブロック数の減少によるＳＳＤ１１３の動作不良を防止することができる。
【００５９】
尚、実施例１〜３では、本発明における空きブロック数の減少によるＳＳＤ１１３の動作不良を防止する方法を説明したが、これに限定されない。例えば、フラッシュメモリを利用した他のストレージ、例えばｅＭＭＣに対しても実施例１〜３で説明した方法を適用することができる。
【００６０】
［その他の実施例］
本発明の目的は、前述した実施例の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体を、装置に供給することによっても、達成されることは言うまでもない。このとき、供給された装置の制御部を含むコンピュータ（またはＣＰＵやＭＰＵ）は、記憶媒体に格納されたプログラムコードを読み出し実行する。
【００６１】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施例の機能を実現することになり、プログラムコード自体及びそのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００６２】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。
【００６３】
また、上述のプログラムコードの指示に基づき、装置上で稼動しているＯＳ（基本システムやオペレーティングシステム）などが処理の一部又は全部を行い、その処理によって前述した実施例の機能が実現される場合も含まれることは言うまでもない。
【００６４】
さらに、記憶媒体から読み出されたプログラムコードが、装置に挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれ、前述した実施例の機能が実現される場合も含まれることは言うまでもない。このとき、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部又は全部を行う。
【符号の説明】
【００６５】
１  画像形成装置
１００  コントローラ部
１０１  ＣＰＵ
１０６  操作部Ｉ／Ｆ
１１２  ストレージ制御部
１１３  ＳＳＤ
１１５  ＲＴＣ
２００  フラッシュ制御部
２０２  メモリ制御部
２０３  フラッシュメモリ
【図１】
2020177415.tif 000003
【図２】
2020177415.tif 000004
【図３】
2020177415.tif 000005
【図４】
2020177415.tif 000006
【図５】
2020177415.tif 000007