(57)【要約】      （修正有）【課題】ＭＦＰの異常状態に起因して意図しないデータがＳＳＤから消去されるのを防止することができる情報処理装置を提供する。【解決手段】ＣＰＵは、ＳＳＤからＳＭＡＲＴ情報を取得するＳ７１１。ＳＭＡＲＴ情報は、ＳＳＤの自己診断機能による診断結果情報である。ＳＭＡＲＴ情報は、例えば、積算起動時間といったＳＳＤの寿命に関する情報、読み込み書き込みエラーに関する情報、電力供給状態を示す情報を含む。次いでＣＰＵは、ＳＭＡＲＴ情報に基づいてＳＳＤが異常状態であるか否かを判別するＳ７１２。ステップＳ７１２では、ＳＳＤの稼働中に電源が落ちたことを示すフラグステータスを取得した場合や、積算起動時間や読み込み書き込みエラーの発生回数が寿命として定められた所定の閾値を超えた場合、ＣＰＵは、ＳＳＤが異常状態であると判別する。一方、上述した何れの条件も満たさない場合、ＣＰＵは、ＳＳＤが異常状態でないと判別する。【選択図】図７
2020145583.tif 000002
【特許請求の範囲】
【請求項１】
上書き不可能な不揮発性の半導体メモリを備える情報処理装置であって、
前記半導体メモリにデータを格納する処理を含むジョブを実行している間に検知した前記情報処理装置の異常状態に関する情報を管理する管理手段と、
前記データを前記半導体メモリから消去する消去コマンドの発行を制御する消去コマンド発行制御手段とを備え、
前記消去コマンド発行制御手段は、前記情報処理装置の異常状態に関する情報に基づいて前記データを前記半導体メモリから消去する消去コマンドの発行を制御することを特徴とする情報処理装置。
【請求項２】
前記管理手段は、前記情報処理装置の異常状態に関する情報を所定の管理テーブルによって管理することを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記情報処理装置の異常状態に関する情報は、前記データを前記半導体メモリに格納する処理を含むジョブが正常に終了しなかったことを示す情報を含むことを特徴とする請求項２記載の情報処理装置。
【請求項４】
前記情報処理装置の異常状態に関する情報は、前記データを前記半導体メモリに格納する処理を含むジョブを実行している間の前記情報処理装置における電力の供給状況に関する情報を含むことを特徴とする請求項２又は３記載の情報処理装置。
【請求項５】
前記情報処理装置の異常状態に関する情報は、前記データの種別を示す属性情報を含むことを特徴とする請求項２乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記情報処理装置の異常状態に関する情報は、前記データのユーザ情報を含むことを特徴とする請求項２乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
前記管理手段は、前記情報処理装置の異常状態に関する情報を異常検知フラグによって管理することを特徴とする請求項１記載の情報処理装置。
【請求項８】
前記半導体メモリは、ＳＳＤであることを特徴とする請求項１乃至７のいずれか１項に記載の情報処理装置。
【請求項９】
プリント機能、コピー機能、スキャン機能、ファックス機能を備える画像形成装置であることを特徴とする請求項１乃至８のいずれか１項に記載の情報処理装置。
【請求項１０】
上書き不可能な不揮発性の半導体メモリを備える情報処理装置の制御方法であって、
前記半導体メモリにデータを格納する処理を含むジョブを実行している間に検知した前記情報処理装置の異常状態に関する情報を管理する管理ステップと、
前記データを前記半導体メモリから消去する消去コマンドの発行を制御する消去コマンド発行制御ステップとを有し、
前記消去コマンド発行制御ステップは、前記情報処理装置の異常状態に関する情報に基づいて前記データを前記半導体メモリから消去する消去コマンドの発行を制御することを特徴とする情報処理装置の制御方法。
【請求項１１】
上書き不可能な不揮発性の半導体メモリを備える情報処理装置の制御方法をコンピュータに実行させるプログラムであって、
前記情報処理装置の制御方法は、
前記半導体メモリにデータを格納する処理を含むジョブを実行している間に検知した前記情報処理装置の異常状態に関する情報を管理する管理ステップと、
前記データを前記半導体メモリから消去する消去コマンドの発行を制御する消去コマンド発行制御ステップとを有し、
前記消去コマンド発行制御ステップは、前記情報処理装置の異常状態に関する情報に基づいて前記データを前記半導体メモリから消去する消去コマンドの発行を制御することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、その制御方法、及びプログラムに関する。
【背景技術】
【０００２】
不揮発性の半導体メモリであるＳＳＤ（Solid State Drive）を備える情報処理装置としてのＭＦＰが知られている。ＭＦＰは、画像データの送信先を指定する際に用いられるアドレス帳等の長期的な保持が必要とされる保持必要データや、ジョブの実行に伴って生成される中間データ等の長期的な保持が必要とされない保持不要データといった複数種のデータをＳＳＤに格納する。
【０００３】
ところで、ＳＳＤでは、データが書き込まれたブロックに別のデータを上書きすることができない。このため、ＭＦＰは、ＳＳＤの書き換え対象ブロックに書き込まれたデータをＭＦＰのバッファに一旦読み出し、バッファ上で当該データを書き換え、書き換え対象ブロックのデータを消去した後に書き換え済みのデータをバッファから書き換え対象ブロックに書き戻す。
【０００４】
ＭＦＰは、ＳＳＤにおけるデータの格納状況をＭＦＰのファイルシステムで管理する。ＭＦＰでは、例えば、ＳＳＤに格納されたデータの削除指示をユーザから受け付けた際にファイルシステム上でデータが削除されるが、当該データはＳＳＤから即座に消去されずに不要データとして残存する。不要データが格納されたブロックは、ＴｒｉｍコマンドによってＳＳＤに通知され、ＳＳＤはＴｒｉｍコマンドに基づいて所定のタイミングでガベージコレクションを実行する。これにより、Ｔｒｉｍコマンドにて指定されたブロックのデータがＳＳＤから物理的に消去される（例えば、特許文献１参照）。また、ＳＳＤにおいて、データを書き込み可能な領域が無くなった場合には、ＳＳＤの全記憶領域が指定されたＴｒｉｍコマンドに基づいてＳＳＤに格納された全データを消去するガベージコレクションが実行される（例えば、特許文献２参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１６―２０６９３８号公報
【特許文献２】特開２００１―１８４２５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来のＭＦＰでは、ＭＦＰの異常状態に起因して意図しないデータがＳＳＤから消去されることがある。例えば、瞬電等の電気的トラブルに起因してＴｒｉｍコマンドを発行するシステムコントローラに不具合が生じた場合、意図しない内容のＴｒｉｍコマンドが発行され、不要データだけでなく、保持必要データもＳＳＤから消去されてしまうという問題が生じる。
【０００７】
本発明の目的は、ＭＦＰの異常状態に起因して意図しないデータがＳＳＤから消去されるのを防止することができる情報処理装置、その制御方法、及びプログラムを提供することにある。
【課題を解決するための手段】
【０００８】
上記目的を達成するために、本発明の情報処理装置は、上書き不可能な不揮発性の半導体メモリを備える情報処理装置であって、前記半導体メモリにデータを格納する処理を含むジョブを実行している間に検知した前記情報処理装置の異常状態に関する情報を管理する管理手段と、前記データを前記半導体メモリから消去する消去コマンドの発行を制御する消去コマンド発行制御手段とを備え、前記消去コマンド発行制御手段は、前記情報処理装置の異常状態に関する情報に基づいて前記データを前記半導体メモリから消去する消去コマンドの発行を制御することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、ＭＦＰの異常状態に起因して意図しないデータがＳＳＤから消去されるのを防止することができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の実施の形態に係る情報処理装置としてのＭＦＰの構成を概略的に示す構成図である。
【図２】図１のＳＳＤのメモリマップを示す図である。
【図３】図１の操作部に表示されるＵＩ画面の一例を示す図である。
【図４】図１のＭＦＰにおけるＴｒｉｍコマンドの発行を説明するためのシーケンス図である。
【図５】図１のストレージ制御部が発行するＴｒｉｍコマンドの構成を説明するための図である。
【図６】図１のＳＳＤにおけるデータの消去を説明するための図である。
【図７】図１のＭＦＰによって実行されるＴｒｉｍコマンド発行処理の手順を示すフローチャートである。
【図８】図１のメモリに格納される属性管理テーブルの一例を示す図である。
【図９】図１のＳＳＤによって実行されるデータ消去処理の手順を示すフローチャートである。
【図１０】図７のＴｒｉｍコマンド発行処理の変形例の手順を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下、本発明の実施の形態について図面を参照しながら詳述する。なお、本実施の形態では、ＳＳＤを備えるＭＦＰに本発明を適用した場合について説明するが、本発明は、ＭＦＰに限られず、ＳＳＤを備えるクライアントＰＣ等の情報処理装置に適用してもよい。
【００１２】
図１は、本発明の実施の形態に係る情報処理装置としてのＭＦＰ１００の構成を概略的に示す構成図である。
【００１３】
図１において、ＭＦＰ１００は、ＡＣ／ＤＣ電源部１０１、コントローラ１０２、印刷部１０６、原稿読取部１０７、操作部１０８、及びＳＳＤ１１１を備える。コントローラ１０２は、ＡＣ／ＤＣ電源部１０１、印刷部１０６、原稿読取部１０７、操作部１０８、及びＳＳＤ１１１と接続されている。また、コントローラ１０２は、ＣＰＵ１０３、メモリ１０４、画像処理部１０５、ストレージ制御部１０９、ＤＣＤＣコンバータ１１６、電源監視部１１７、及び電源制御部１１８を備える。
【００１４】
ＡＣ／ＤＣ電源部１０１は、コントローラ１０２に電力を供給する。コントローラ１０２は、ＭＦＰ１００のシステム全体を制御する。例えば、コントローラ１０２は、ＳＳＤ１１１のデータの格納状況を管理するＳＳＤ１１１のファイルシステム（不図示）を制御する。ＣＰＵ１０３は、メモリ１０４、画像処理部１０５、ストレージ制御部１０９、及び電源制御部１１８と接続されている。ＣＰＵ１０３は、メモリ１０４に格納されたプログラムを実行して各種制御を行う。例えば、ＳＳＤ１１１へデータを書き込む場合やＳＳＤ１１１からデータを読み出す場合に、ＣＰＵ１０３は、ストレージ制御部１０９に書き込み又は読み出しの指示を送信する。メモリ１０４は、ＣＰＵ１０３が実行するプログラムや設定データ等を格納する。画像処理部１０５は、印刷部１０６が印刷する画像データや原稿読取部１０７が生成したスキャンデータに対して画像処理を施す。印刷部１０６は、画像を用紙に印刷する。原稿読取部１０７は、設置された原稿を読み取ってスキャンデータを生成する。操作部１０８は、ユーザからの指示を受け付ける。また、操作部１０８は、ＭＦＰ１００の設定を行う設定画面等を表示する。
【００１５】
ストレージ制御部１０９は、ＳＳＤ１１１と通信するためのＳＡＴＡＩ／Ｆ部１１０を備える。ストレージ制御部１０９は、データの書き込みや読み出しのためのコマンドをＳＳＤ１１１に送信する。また、ストレージ制御部１０９は、後述する図５のＴｒｉｍコマンド５００（消去コマンド）をＳＳＤ１１１に送信する。さらに、ストレージ制御部１０９は、ＳＳＤ１１１のステータスを受信してＳＳＤ１１１を制御する。ＳＳＤ１１１は、ＮＡＮＤコントローラ１１２、ＮＡＮＤフラッシュメモリ１１３、及びメモリ１１４を備える。また、ＳＳＤ１１１は、コントローラ１０２と通信するためのＳＡＴＡＩ／Ｆ部１１５を備える。ＳＳＤ１１１は、データを上書き不可能な不揮発性の半導体メモリである。ＳＳＤ１１１は、当該ＳＳＤ１１１への電力の供給が停止されてもデータを保持する。ＮＡＮＤコントローラ１１２は、ＳＳＤ１１１全体を制御する。ＮＡＮＤフラッシュメモリ１１３は、ＮＡＮＤコントローラ１１２の指示に従ってデータを記憶する。メモリ１１４は、ＳＳＤ１１１のワークメモリである。メモリ１１４は、ＮＡＮＤコントローラ１１２が実行するプログラムや制御に必要な各種データを一時的に記憶するデータバッファとして機能する。ＳＳＤ１１１は、コントローラ１０２から受信したデータをＮＡＮＤフラッシュメモリ１１３に書き込む。また、ＳＳＤ１１１は、ＮＡＮＤフラッシュメモリ１１３からデータを読み出し、当該データをコントローラ１０２へ送信する。さらに、ＳＳＤ１１１は、コントローラ１０２から受信したコマンドに基づいてＳＳＤ１１１の設定を行うと共に、ＳＳＤ１１１のステータスをコントローラ１０２に送信する。
【００１６】
ＤＣＤＣコンバータ１１６は、ＡＣＤＣコンバータ（不図示）で変換された電源電圧をＳＳＤ１１１の駆動に必要な電源電圧へ変換する。電源監視部１１７は、ＤＣＤＣコンバータ１１６の入力電圧レベルを監視する。電源制御部１１８は、ＤＣＤＣコンバータ１１６の電源電圧のＯＮ／ＯＦＦ制御を行う。
【００１７】
図２は、図１のＳＳＤ１１１のメモリマップを示す図である。図２において、ＳＳＤ１１１の記憶領域は、少なくともプリントスプール領域２０１、読み取りデータ格納領域２０２、ユーザ設定格納領域２０３、及びログデータ格納領域２０４で構成される。
【００１８】
プリントスプール領域２０１には、長期間保持する必要がない保持不要データ、例えば、プリントジョブデータが一時的に格納される。本実施の形態では、ＳＳＤ１１１の記憶領域のうち、コントローラ１０２やユーザに指定された所定の領域がプリントスプール領域２０１として使用される。読み取りデータ格納領域２０２には、ジョブを実行した結果生成される結果物データ、例えば、スキャンジョブを実行した結果生成されるスキャンデータが格納される。本実施の形態では、ＳＳＤ１１１の記憶領域のうち、コントローラ１０２やユーザに指定された所定の領域が読み取りデータ格納領域２０２として使用される。
【００１９】
ユーザ設定格納領域２０３には、アドレス帳やユーザ固有情報が格納される。アドレス帳は、例えば、ＦＡＸ送信やｅｍａｉｌ送信を行う際にユーザが指定する送信先の電話番号やメールアドレスを含む。ユーザ固有情報は、例えば、ＭＦＰ１００におけるユーザ固有のカスタマイズ設定情報である。ログデータ格納領域２０４には、ＭＦＰ１００の稼働履歴やＭＦＰ１００のエラーの発生状況を示すログデータが格納される。本実施の形態では、ログデータ格納領域２０４において、ＭＦＰ１００を使用するユーザ毎に異なる領域が割り当てられる。
【００２０】
図３は、図１の操作部１０８に表示されるＵＩ画面３０１の一例を示す図である。図３（ａ）において、ＵＩ画面３０１は、原稿読取部１０７が生成したスキャンデータの一覧を表示する画面である。ＵＩ画面３０１のウィンドウ３０２には、原稿読取部１０７が生成したスキャンデータのファイル名、サイズ、及び生成日時が表示される。また、ウィンドウ３０２には、各スキャンデータに対応する複数のチェックボックスが表示される。ユーザは、複数のチェックボックスの中の少なくとも１つのチェックボックスを選択可能である。ウィンドウ３０２において、例えば、チェックボックス３０３が選択された状態でユーザがファイル編集ボタン３０４を選択した場合、ウィンドウ３０２に重畳して図３（ｂ）のポップアップウィンドウ３０５が表示される。ポップアップウィンドウ３０５では、ウィンドウ３０２でユーザが選択したチェックボックスに対応するスキャンデータの削除、複製、ファイル名変更が指示される。例えば、ポップアップウィンドウ３０５においてユーザが削除ボタン３０６を選択した場合、ＭＦＰ１００は、ウィンドウ３０２において選択されたチェックボックスに対応するスキャンデータの削除指示として受け付ける。本実施の形態では、ＵＩ画面３０１においてデータの削除指示を受け付けた場合、ＳＳＤ１１１のファイルシステム上からデータが削除されるが、当該データはＳＳＤ１１１から即座に消去されずに不要データとして残存する。
【００２１】
図４は、図１のＭＦＰ１００におけるＴｒｉｍコマンドの発行を説明するためのシーケンス図である。
【００２２】
図４において、ＭＦＰ１００では、残存する不要データをＳＳＤ１１１の記憶領域から物理的に消去するために、ＣＰＵ１０３が、後述する図７のＴｒｉｍコマンド発行処理を実行して、ストレージ制御部１０９にＴｒｉｍコマンドの発行を指示する（消去コマンド発行制御手段）。Ｔｒｉｍコマンドの発行の指示を受けたストレージ制御部１０９は、図５のＴｒｉｍコマンド５００を発行し、Ｔｒｉｍコマンド５００をＳＳＤ１１１に送信する。Ｔｒｉｍコマンド５００を受信したＳＳＤ１１１のＮＡＮＤコントローラ１１２は、Ｔｒｉｍコマンド５００を受信した旨を示す受付通知をコントローラ１０２に送信する。また、ＮＡＮＤコントローラ１１２は、図９のデータ消去処理を実行して、Ｔｒｉｍコマンド５００にて指定されたＳＳＤ１１１のブロックに格納されたデータを消去する。
【００２３】
図５は、図１のストレージ制御部１０９が発行するＴｒｉｍコマンド５００の構成を説明するための図である。Ｔｒｉｍコマンド５００は、ＳＳＤ１１１の記憶領域を構成する複数のブロックのうち不要データが書き込まれたブロックをＳＳＤ１１１に通知するためのコマンドである。Ｔｒｉｍコマンド５００では、不要データが書き込まれたブロックを示す情報として、当該ブロックを示すＳＳＤ１１１のファイルシステム上の論理アドレスが設定される。ＭＦＰ１００では、或るブロックを示すＳＳＤ１１１のファイルシステム上の論理アドレスとして、ＳＳＤ１１１のＮＡＮＤフラッシュメモリ１１３の記憶領域における上記或るブロックを示す物理アドレスと異なるアドレスが割り当てられる。ＭＦＰ１００では、ＳＳＤ１１１のメモリ１１４に格納された下記表１のアドレス変換テーブルに基づいて論理アドレス及び物理アドレスが管理されている。
【００２４】
【表１】
2020145583.tif 000003
【００２５】
アドレス変換テーブルでは、論理アドレスと物理アドレスとが一対一に対応付けられている。上記アドレス変換テーブルは、ＮＡＮＤコントローラ１１２によって管理される。ガベージコレクション等によってＮＡＮＤフラッシュメモリ１１３における不要データが書き込まれたブロックが変更された場合には、上記アドレス変換テーブルが更新される。
【００２６】
図５において、Ｔｒｉｍコマンド５００は、Ｔｒｉｍ領域５０１、開始論理アドレス領域５０２、及びサイズ領域５０３で構成される。Ｔｒｉｍ領域５０１には、Ｔｒｉｍ機能の有効化及び無効化の何れかを示す設定値が設定される。Ｔｒｉｍ機能を有効化する場合、Ｔｒｉｍ領域５０１にはこの旨を示す『１』が設定される。また、Ｔｒｉｍ機能を無効化する場合、Ｔｒｉｍ領域５０１にはこの旨を示す『０』が設定される。開始論理アドレス領域５０２には、Ｔｒｉｍコマンドの実行対象となるブロックを示す論理アドレスが設定される。サイズ領域５０３には、Ｔｒｉｍコマンドの実行対象となるブロックのサイズが設定される。Ｔｒｉｍ領域５０１に『１』が設定されている場合、ＳＳＤ１１１の記憶領域のうち、開始論理アドレス領域５０２に記述された論理アドレスのブロックを基準にサイズ領域５０３に記述されたサイズで形成される領域に対してＴｒｉｍコマンドが実行される。例えば、不要データのみが書き込まれた図６（ａ）のブロック３，４で構成される領域６０１が実行対象として指定されたＴｒｉｍコマンドが実行されると、ＳＳＤ１１１の記憶領域では、図６（ｂ）に示すように、領域６０１のデータが物理的に消去される。Ｔｒｉｍコマンド５００は、ＡＴＡ（ＡＴ  Ａｔｔａｃｈｍｅｎｔ）インタフェース規格で定められており、ストレージ制御部１０９からＳＳＤ１１１へ送信される。ＳＳＤ１１１では、ＳＡＴＡ Ｉ／Ｆ１１５がＴｒｉｍコマンド５００を受信し、ＮＡＮＤコントローラ１１２がＴｒｉｍコマンド５００を解釈して実行する。
【００２７】
ここで、従来では、ＭＦＰの異常状態に起因して意図しないデータがＳＳＤから消去されることがあった。例えば、瞬電等の電気的トラブルに起因してＴｒｉｍコマンドを発行するストレージ制御部に不具合が生じた場合、意図しない内容のＴｒｉｍコマンドが発行されることがある。この場合、不要データだけでなく、アドレス帳等の長期的な保持が必要とされるデータもＳＳＤから消去されてしまうという問題が生じる。
【００２８】
これに対応して、本実施の形態では、ＭＦＰ１００の異常状態に関する情報に基づいてＴｒｉｍコマンド５００の発行が制御される。
【００２９】
図７は、図１のＭＦＰ１００によって実行されるＴｒｉｍコマンド発行処理の手順を示すフローチャートである。図７の処理は、ＣＰＵ１０３がメモリ１０４に格納されたプログラムを実行することによって行われる。
【００３０】
図７（ａ）において、ＣＰＵ１０３は、ＳＳＤ１１１に格納されたデータの削除指示を受け付けるまで待機する。例えば、ウィンドウ３０２でＳＳＤ１１１に格納されたデータに対応するチェックボックスが選択された状態でユーザが削除ボタン３０６を選択した場合、ＣＰＵ１０３は、ＳＳＤ１１１に格納されたデータの削除指示を受け付けたと判別する。ＳＳＤ１１１に格納されたデータの削除指示を受け付けると（ステップＳ７０１でＹＥＳ）、ＣＰＵ１０３は、ＭＦＰ１００の異常状態に関する情報を管理するための図８の属性管理テーブル８０１を参照する。
【００３１】
属性管理テーブル８０１は、メモリ１０４に格納されている。属性管理テーブル８０１は、論理アドレス８０２、データサイズ８０３、データ属性８０４、ユーザ情報８０５、ＪＯＢ状態８０６、電源状態８０７、記録日時８０８、及び消去日時８０９で構成される。論理アドレス８０２には、格納されたデータに関するＳＳＤ１１１のファイルシステム上の論理アドレスが設定される。データサイズ８０３には、ＳＳＤ１１１に格納されたデータのデータサイズが設定される。データ属性８０４には、ＳＳＤ１１１に格納されたデータの種別を示す属性が設定される。データ属性８０４には、データの属性として、例えば、『スプール』、『読み取り画像』、『アドレス帳』、『ログ』が設定される。『スプール』は、保持不要データに対して設定され、例えば、ＳＳＤ１１１におけるプリントスプール領域２０１に格納されたデータに対して設定される。『読み取り画像』は、ジョブを実行した結果生成される結果物データに対して生成され、例えば、ＳＳＤ１１１における読み取りデータ格納領域２０２に格納されたデータに対して設定される。『アドレス帳』は、アドレス帳やユーザ固有情報に対して設定され、例えば、ＳＳＤ１１１におけるユーザ設定格納領域２０３に格納されたデータに対して設定される。『ログ』は、ＭＦＰ１００の稼働履歴やＭＦＰ１００のエラーの発生状況を示すログデータに対して設定され、例えば、ＳＳＤ１１１におけるログデータ格納領域２０４に格納されたデータに対して設定される。
【００３２】
ユーザ情報８０５には、ＳＳＤ１１１に格納されたデータを所有するユーザを特定する情報が設定される。ＪＯＢ状態８０６には、データをＳＳＤ１１１に格納する処理を含むジョブが正常に終了しなかった際にこの旨を示す『Error』が設定される。電源状態８０７には、データをＳＳＤ１１１に格納する処理を含むジョブを実行している間のＭＦＰ１００における電力の供給状況に関する情報が設定される。具体的に、電源状態８０７には、ＳＳＤ１１１へ安定的に電力が供給されていないと判別された際にこの旨を示す『Error』が設定される。例えば、或るデータに関連するジョブを実行中に、電源監視部１１７による入力電圧レベルの監視結果に基づいてＳＳＤ１１１へ安定的に電力が供給されていないと判別されると、電源制御部１１８がＣＰＵ１０３にこの旨を通知する。通知を受けたＣＰＵ１０３は、属性管理テーブル８０１において、上記データに対応する電源状態８０７に『Error』を入力する。記録日時８０８には、ＳＳＤ１１１にデータが記録された日付が設定される。消去日時８０９には、ＳＳＤ１１１からデータが消去された日付が設定される。
【００３３】
図７（ａ）に戻り、ＣＰＵ１０３は、属性管理テーブル８０１に基づいて削除指示を受けたデータ（以下、「削除指示データ」という。）の属性を判別する（ステップＳ７０２）。次いで、ＣＰＵ１０３は、図７（ｂ）の異常検知処理を実行する（ステップＳ７０３）。
【００３４】
図７（ｂ）において、ＣＰＵ１０３は、ＳＳＤ１１１からＳＭＡＲＴ情報を取得する(ステップＳ７１１)。ＳＭＡＲＴ情報は、ＳＳＤ１１１の自己診断機能による診断結果情報である。ＳＭＡＲＴ情報は、例えば、積算起動時間といったＳＳＤ１１１の寿命に関する情報、読み込み書き込みエラーに関する情報、電力供給状態を示す情報を含む。次いで、ＣＰＵ１０３は、ＳＭＡＲＴ情報に基づいてＳＳＤ１１１が異常状態であるか否かを判別する（ステップＳ７１２）。ステップＳ７１２では、例えば、ＳＳＤ１１１の稼働中に電源が落ちたことを示すフラグステータスを取得した場合や、積算起動時間や読み込み書き込みエラーの発生回数が寿命として定められた所定の閾値を超えた場合、ＣＰＵ１０３は、ＳＳＤ１１１が異常状態であると判別する。一方、上述した何れの条件も満たさない場合、ＣＰＵ１０３は、ＳＳＤ１１１が異常状態でないと判別する。
【００３５】
ステップＳ７１２の判別の結果、ＳＳＤ１１１が異常状態であるとき、ＣＰＵ１０３は、ストレージ制御部１０９にＴｒｉｍコマンド５００の発行を指示せずに、本処理を終了する。すなわち、本実施の形態では、ＳＳＤ１１１が異常状態である場合、Ｔｒｉｍコマンド５００が発行されない。ステップＳ７１２の判別の結果、ＳＳＤ１１１が異常状態でないとき、ＣＰＵ１０３は、ログデータ格納領域２０４に格納されたログデータに基づいてＭＦＰ１００の本体エラーステータスを確認する（ステップＳ７１３）。次いで、ＣＰＵ１０３は、属性管理テーブル８０１における削除指示データのＪＯＢ状態８０６及び電源状態８０７を参照し、削除指示データのＪＯＢ状態８０６に『Error』が設定されているか否かを判別する（ステップＳ７１４）。
【００３６】
ステップＳ７１４の判別の結果、削除指示データのＪＯＢ状態８０６に『Error』が設定されているとき、ＣＰＵ１０３は、ストレージ制御部１０９にＴｒｉｍコマンド５００の発行を指示せずに、本処理を終了する。例えば、削除指示データが、属性管理テーブル８０１における論理アドレス『１１００』のデータのように、ＪＯＢ状態８０６に『Error』が設定されたデータである場合、Ｔｒｉｍコマンド５００が発行されない。また、属性管理テーブル８０１においてユーザ情報８０５の値が論理アドレス『１１００』と同じ『Ｂ』である論理アドレス『６１００』が削除指示データである場合にも、Ｔｒｉｍコマンド５００が発行されない。
【００３７】
ステップＳ７１４の判別の結果、削除指示データのＪＯＢ状態８０６に『Error』が設定されていないとき、ＣＰＵ１０３は、削除指示データの電源状態８０７に『Error』が設定されているか否かを判別する（ステップＳ７１５）。
【００３８】
ステップＳ７１５の判別の結果、削除指示データの電源状態８０７に『Error』が設定されているとき、ＣＰＵ１０３は、ストレージ制御部１０９にＴｒｉｍコマンド５００の発行を指示せずに、本処理を終了する。例えば、削除指示データが、属性管理テーブル８０１における論理アドレス『１２００』のデータのように、電源状態８０７に『Error』が設定されたデータである場合、Ｔｒｉｍコマンド５００が発行されない。また、属性管理テーブル８０１においてユーザ情報８０５の値が論理アドレス『１２００』と同じ『Ｃ』である論理アドレス『６２００』が削除指示データである場合にも、Ｔｒｉｍコマンド５００が発行されない。
【００３９】
ステップＳ７１５の判別の結果、削除指示データの電源状態８０７に『Error』が設定されていないとき、ＣＰＵ１０３は、データの不整合が生じているか否かを判別する（ステップＳ７１６）。ステップＳ７１６では、例えば、ＭＦＰ１００の起動に必要なデータに不整合が生じている場合、ＣＰＵ１０３は、データの不整合が生じていると判別する。一方、ＭＦＰ１００の起動に必要なデータに不整合が生じていない場合、ＣＰＵ１０３は、データの不整合が生じていないと判別する。本実施の形態では、ユーザによるシャットダウン指示を受け付けた場合、ＭＦＰ１００は、シャットダウン処理が正常に終了したか否かを示す情報を記録する。シャットダウン処理において、ＭＦＰ１００は、ＤＤＲ等の揮発性メモリで構成されるメモリ１０４に記録されていたデータを不揮発性記録デバイスであるＳＳＤ１１１にバックアップするバックアップ処理を実行する。バックアップ処理では、メモリ１０４に格納されたデータとして、例えば、ＭＦＰ１００のシステムの起動に必要なファイルや設定データがＳＳＤ１１１にバックアップされる。ここで、停電等によって上記バックアップ処理が正常に終了しないまま、ＭＦＰ１００への電力の供給が停止された場合、揮発性メモリで構成されるメモリ１０４に記録されていたデータが消失し、例えば、ＭＦＰ１００の起動に必要なデータに不整合が生じる。データの不整合を容易に解消できるように、ＣＰＵ１０３は、以下の処理を行う。
【００４０】
具体的に、ステップＳ７１６の判別の結果、データの不整合が生じているとき、ＣＰＵ１０３は、ストレージ制御部１０９にＴｒｉｍコマンド５００の発行を指示せずに、本処理を終了する。すなわち、本実施の形態では、データの不整合が生じている場合、Ｔｒｉｍコマンド５００が発行されない。ステップＳ７１６の判別の結果、データの不整合が生じていないとき、ＣＰＵ１０３は、削除指示データの属性が『スプール』であるか否かを判別する（ステップＳ７０４）。
【００４１】
ステップＳ７０４の判別の結果、削除指示データの属性が『スプール』であるとき、ＣＰＵ１０３は、削除指示データが格納されたプリントスプール領域２０１の論理アドレス及びサイズを取得する（ステップＳ７０５）。次いで、ＣＰＵ１０３は、ストレージ制御部１０９にＴｒｉｍコマンド５００の発行を指示する（ステップＳ７０６）。指示を受けたストレージ制御部１０９は、Ｔｒｉｍ領域５０１に『１』を設定し、更に開始論理アドレス領域５０２及びサイズ領域５０３にステップＳ７０５で取得した論理アドレス及びサイズを設定したＴｒｉｍコマンド５００を発行する。次いで、ＣＰＵ１０３は、ストレージ制御部１０９からＳＳＤ１１１へＴｒｉｍコマンド５００を送信させ（ステップＳ７０７）、本処理を終了する。
【００４２】
ステップＳ７０４の判別の結果、削除指示データの属性が『スプール』でないとき、ＣＰＵ１０３は、ファイルシステム上のＳＳＤ１１１のディスクの残容量Ｘを取得する(ステップＳ７０８)。次いで、ＣＰＵ１０３は、残容量Ｘが所定の閾値Ｙ未満であるか否かを判別する（ステップＳ７０９）。所定の閾値Ｙは、ＭＦＰ１００が情報処理システムとして性能を一定に維持するために必要な容量である。所定の閾値Ｙは、ＮＡＮＤコントローラ１１２によって決定される、若しくはユーザによって設定される。
【００４３】
ステップＳ７０９の判別の結果、残容量Ｘが所定の閾値Ｙ以上であるとき、ＣＰＵ１０３は、ストレージ制御部１０９にＴｒｉｍコマンド５００の発行を指示せずに、本処理を終了する。ステップＳ７０９の判別の結果、残容量Ｘが所定の閾値Ｙ未満であるとき、ＣＰＵ１０３は、Ｔｒｉｍコマンドの実行対象データを決定する（ステップＳ７１０）。ステップＳ７１０では、ＣＰＵ１０３は、属性管理テーブル８０１を参照し、残容量Ｘが所定の閾値Ｙを超えるように、Ｔｒｉｍコマンドの実行対象データを決定する。具体的に、ＣＰＵ１０３は、Ｙ−Ｘに相当する容量となるデータを属性管理テーブル８０１の記録日時８０８が古いデータから順にＴｒｉｍコマンドの実行対象データとして決定する。次いで、ＣＰＵ１０３は、ステップＳ７０５以降の処理を行う。
【００４４】
図９は、図１のＳＳＤ１１１によって実行されるデータ消去処理の手順を示すフローチャートである。図９の処理は、ＮＡＮＤコントローラ１１２がメモリ１１４に格納されたプログラムを実行することによって行われる。
【００４５】
図９において、ＮＡＮＤコントローラ１１２は、コントローラ１０２からコマンドを受信すると（ステップＳ９０１）、受信したコマンドがＴｒｉｍコマンド５００であるか否かを判別する（ステップＳ９０２）。
【００４６】
ステップＳ９０２の判別の結果、受信したコマンドがＴｒｉｍコマンド５００でないとき、ＮＡＮＤコントローラ１１２は、受信したコマンドを実行し（ステップＳ９０３）、本処理を終了する。
【００４７】
ステップＳ９０２の判別の結果、受信したコマンドがＴｒｉｍコマンド５００であるとき、ＮＡＮＤコントローラ１１２は、Ｔｒｉｍコマンド５００における領域指定オプションに値が設定されているか否かを判別する（ステップＳ９０４）。領域指定オプションは、例えば、Ｔｒｉｍコマンド５００の開始論理アドレス領域５０２及びサイズ領域５０３である。
【００４８】
ステップＳ９０４の判別の結果、Ｔｒｉｍコマンド５００の領域指定オプションに値が設定されているとき、ＮＡＮＤコントローラ１１２は、開始論理アドレス領域５０２に設定された論理アドレスを取得する。ＮＡＮＤコントローラ１１２は、上記アドレス変換テーブルに基づいて、取得した論理アドレスに対応付けられた物理アドレスを取得する（ステップＳ９０５）。次いで、ＮＡＮＤコントローラ１１２は、取得した物理アドレス及びサイズ領域５０３に設定された値で示されるＳＳＤ１１１の指定領域に不要データが存在するか否かを判別する（ステップＳ９０６）。
【００４９】
ステップＳ９０６の判別の結果、ＳＳＤ１１１の指定領域に不要データが存在しないとき、ＮＡＮＤコントローラ１１２は、本処理を終了する。ステップＳ９０６の判別の結果、ＳＳＤ１１１の指定領域に不要データが存在するとき、ＮＡＮＤコントローラ１１２は、ＳＳＤ１１１においてデータが書き込まれていない空きブロックを探し（ステップＳ９０７）、処理に適した所定のタイミングを待つ（ステップＳ９０８）。所定のタイミングは、例えば、コントローラ１０２からのアクセスが少ない時、又は予め定められた所定の時間を経過した時である。ＮＡＮＤコントローラ１１２は、上述した所定のタイミングで、指定領域における一のブロックに書き込まれている有効データを空きブロックにコピーする（ステップＳ９０９）。次いで、ＮＡＮＤコントローラ１１２は、一のブロックのデータを物理的に消去し（ステップＳ９１０）、ステップＳ９０６の処理に戻る。
【００５０】
ステップＳ９０４の判別の結果、Ｔｒｉｍコマンド５００の領域指定オプションに値が設定されていないとき、ＮＡＮＤコントローラ１１２は、ＳＳＤ１１１の記憶領域に不要データが存在するか否かを判別する（ステップＳ９１１）。
【００５１】
ステップＳ９１１の判別の結果、ＳＳＤ１１１の記憶領域に不要データが存在しないとき、ＮＡＮＤコントローラ１１２は、本処理を終了する。ステップＳ９１１の判別の結果、ＳＳＤ１１１の記憶領域に不要データが存在するとき、ＮＡＮＤコントローラ１１２は、ＳＳＤ１１１においてデータが書き込まれていない空きブロックを探し（ステップＳ９１２）、上記所定のタイミングを待つ（ステップＳ９１３）。ＮＡＮＤコントローラ１１２は、上述した所定のタイミングで、ＳＳＤ１１１の記憶領域における一のブロックに書き込まれている有効データを空きブロックにコピーする（ステップＳ９１４）。次いで、ＮＡＮＤコントローラ１１２は、一のブロックのデータを物理的に消去し（ステップＳ９１５）、ステップＳ９１１の処理に戻る。
【００５２】
上述した実施の形態によれば、ＭＦＰ１００の異常状態に関する情報に基づいてＴｒｉｍコマンド５００の発行が制御される。これにより、ＭＦＰ１００の異常状態に起因して意図しない内容のＴｒｉｍコマンド５００が発行されるのを防止することができる。その結果、ＭＦＰ１００の異常状態に起因して意図しないデータがＳＳＤ１１１から消去されるのを防止することができる。
【００５３】
また、上述した実施の形態では、ＭＦＰ１００の異常状態に関する情報が、属性管理テーブル８０１によって管理される。これにより、Ｔｒｉｍコマンド５００の発行を制御するためのＭＦＰ１００の異常状態に関する情報を確実に管理することができる。
【００５４】
上述した実施の形態では、ＭＦＰ１００の異常状態に関する情報は、データをＳＳＤ１１１に格納する処理を含むジョブが正常に終了しなかったことを示す情報を含む。これにより、ジョブを正常に終了できないようなＭＦＰ１００の異常状態に起因して意図しない内容のＴｒｉｍコマンド５００が発行されるのを防止することができる。
【００５５】
また、上述した実施の形態では、ＭＦＰ１００の異常状態に関する情報は、データをＳＳＤ１１１に格納する処理を含むジョブを実行している間のＭＦＰ１００における電力の供給状況に関する情報を含む。これにより、電力の供給に関するＭＦＰ１００の異常状態に起因して意図しない内容のＴｒｉｍコマンド５００が発行されるのを防止することができる。
【００５６】
さらに、上述した実施の形態では、ＭＦＰ１００の異常状態に関する情報は、データの種別を示す属性情報を含む。これにより、ＭＦＰ１００の異常状態に起因する特定の種別のデータがＳＳＤ１１１から消去されるのを防止することができる。
【００５７】
上述した実施の形態では、ＭＦＰ１００の異常状態に関する情報は、データのユーザ情報を含む。これにより、ＭＦＰ１００の異常状態に起因する特定のユーザのデータがＳＳＤ１１１から消去されるのを防止することができる。
【００５８】
上述した実施の形態では、ＭＦＰ１００は、プリント機能、コピー機能、スキャン機能、ファックス機能を備える画像形成装置である。これにより、ＭＦＰ１００の異常状態に起因してプリント機能、コピー機能、スキャン機能、ファックス機能で必要となるデータがＳＳＤ１１１から消去されるのを防止することができる。
【００５９】
以上、本発明について、上述した実施の形態を用いて説明したが、本発明は上述した実施の形態に限定されるものではない。例えば、ステップＳ７０３の異常検知処理において異常を検知した結果を異常検知フラグとして保持しても良い。
【００６０】
図１０は、図７のＴｒｉｍコマンド発行処理の変形例の手順を示すフローチャートである。図１０の処理も、ＣＰＵ１０３がメモリ１０４に格納されたプログラムを実行することによって行われる。
【００６１】
図１０において、ＣＰＵ１０３は、ステップＳ７０１〜Ｓ７０３の処理を行う。ステップＳ７０３において、ＣＰＵ１０３は、上述したようにステップＳ７１１，Ｓ７１２の処理を行う。
【００６２】
ステップＳ７１２の判別の結果、ＳＳＤ１１１が異常状態であるとき、ステップＳ７１４の判別の結果、削除指示データのＪＯＢ状態８０６に『Error』が設定されているとき、ステップＳ７１５の判別の結果、削除指示データの電源状態８０７に『Error』が設定されているとき、又はステップＳ７１６の判別の結果、データの不整合が生じているとき、ＣＰＵ１０３は、異常を検知した旨を示す異常検知フラグをメモリ１０４に記録する（ステップＳ１００１）。具体的に、ＣＰＵ１０３は、異常検知フラグを、正常状態であることを示す『０』から異常を検知した旨を示す『１』に変更する。次いで、ＣＰＵ１０３は、本処理を終了する。
【００６３】
ステップＳ７１２の判別の結果、ＳＳＤ１１１が異常状態でないとき、ＣＰＵ１０３は、ステップＳ７１３，Ｓ７１４の処理を行う。ステップＳ７１４の判別の結果、削除指示データのＪＯＢ状態８０６に『Error』が設定されていないとき、ＣＰＵ１０３は、ステップＳ７１５の処理を行う。ステップＳ７１５の判別の結果、削除指示データの電源状態８０７に『Error』が設定されていないとき、ＣＰＵ１０３は、ステップＳ７１６の処理を行う。ステップＳ７１６の判別の結果、データの不整合が生じていないとき、ＣＰＵ１０３は、異常検知フラグを使用する旨が設定されているか否かを判別する（ステップＳ１００２）。本実施の形態では、異常検知フラグを使用するか否かがユーザによって設定される。
【００６４】
ステップＳ１００２の判別の結果、異常検知フラグを使用する旨が設定されていないとき、ＣＰＵ１０３は、ステップＳ７０４以降の処理を行う。ステップＳ１００２の判別の結果、異常検知フラグを使用する旨が設定されているとき、ＣＰＵ１０３は、異常検知フラグが『０』及び『１』の何れであるかを判別する（ステップＳ１００３）。
【００６５】
ステップＳ１００３の判別の結果、異常検知フラグが『０』であるとき、ＣＰＵ１０３は、ステップＳ７０４以降の処理を行う。ステップＳ１００３の判別の結果、異常検知フラグが『１』であるとき、ＣＰＵ１０３は、ストレージ制御部１０９にＴｒｉｍコマンド５００の発行を指示せずに、本処理を終了する。
【００６６】
上述した実施の形態にでは、ＭＦＰ１００の異常状態に関する情報は、異常検知フラグによって管理される。これにより、属性管理テーブル８０１を作成することなく、ＭＦＰ１００の異常状態に起因して意図しないデータがＳＳＤ１１１から消去されるのを容易に防止することができる。
【００６７】
本発明は、上述の実施の形態の１以上の機能を実現するプログラムをネットワーク又は記憶媒体を介してシステム又は装置に供給し、該システム又は装置のコンピュータにおける１つ以上のプロセッサがプログラムを読み出して実行する処理でも実現可能である。また、本発明は、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００６８】
１００  ＭＦＰ
１０２  コントローラ
１０３  ＣＰＵ
１１１  ＳＳＤ
５００  Ｔｒｉｍコマンド
８０１  属性管理テーブル
８０４  データ属性
８０５  ユーザ情報
８０６  ＪＯＢ状態
８０７  電源状態
【図１】
2020145583.tif 000004
【図２】
2020145583.tif 000005
【図３】
2020145583.tif 000006
【図４】
2020145583.tif 000007
【図５】
2020145583.tif 000008
【図６】
2020145583.tif 000009
【図７】
2020145583.tif 000010
【図８】
2020145583.tif 000011
【図９】
2020145583.tif 000012
【図１０】
2020145583.tif 000013