(57)【特許請求の範囲】
【請求項１】
種別の異なる不揮発性記憶装置を接続可能な情報処理装置において、
前記不揮発性記憶装置に対して消去指示された消去領域の消去方法を前記不揮発性記憶装置から取得する属性情報に従って生成される管理テーブルに応じて決定する決定手段と、
前記決定手段が決定した消去方法に従い前記消去領域に記憶された情報を消去する消去手段と、
を具備することを特徴とした情報処理装置。
【請求項２】
前記属性情報は、半導体記憶装置であるか、前記半導体記憶装置とは異なる不揮発性記憶装置であるかを示す情報を含むことを特徴とした請求項１記載の情報処理装置。
【請求項３】
前記属性情報は、前記半導体記憶装置が特定の消去コマンドに対応しているか否かを示すコマンド情報を含むことを特徴とした請求項２に記載の情報処理装置。
【請求項４】
前記記憶された情報は、ユーザ情報、ログ情報、画像情報を含むことを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記消去手段は、不揮発性記憶装置が半導体記憶装置であって、前記属性情報からコマンド情報を取得できた場合は、特定の消去コマンドに従い前記消去領域に記憶された情報を消去することを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項６】
前記消去手段は、不揮発性記憶装置が半導体記憶装置であって、前記属性情報からコマンド情報を取得できない場合は、特定のデータを前記消去領域に書き込んで記憶された情報を消去することを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項７】
種別の異なる不揮発性記憶装置を接続可能な情報処理装置におけるデータ処理方法において、
前記不揮発性記憶装置に対して消去指示された消去領域の消去方法を前記不揮発性記憶装置から取得する属性情報に従って生成される管理テーブルに応じて決定する決定工程と、
前記決定工程が決定した消去方法に従い前記消去領域に記憶された情報を消去する消去工程と、
を具備することを特徴としたデータ処理方法。
【請求項８】
請求項７に記載のデータ処理方法をコンピュータに実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、種別の異なる不揮発性記憶装置を接続可能な情報処理装置に関する。
【背景技術】
【０００２】
近年、セキュリティに関する機能として、ディスクに格納されたユーザデータを消去する機能をもつ装置がある。例えば、画像形成装置では、ユーザが格納した原稿画像データやアドレス帳などを一括消去する機能が上げられる。また、近年はＳＳＤ（ソリッドステートドライブ）と呼ばれるようなフラッシュメモリを用いた半導体記憶装置を磁気ＨＤＤの代わりに利用する装置が増えてきている。
【０００３】
磁気で記録すＨＤＤで完全消去を行う場合、ユーザデータが格納された領域に対し、確実に磁気的な痕跡が消えるように、複数回ランダムな値を上書きして消去を行う方法が一般的である。例えば、特許文献１に記載された発明では、セキュリティのレベルに応じて消去回数を任意に設定でき、設定された消去回数に従い、消去を実行する装置を実現している。
【０００４】
一方、半導体記憶装置の場合はチップ内の半導体に情報が記憶されるため、磁気ＨＤＤのように分解してディスク上の磁性体の値を読み取るようなことは非常に困難である。
しかしながら、近年の半導体記憶装置は、記憶装置内のフラッシュメモリの寿命を延ばすために、ウェアレベリングと呼ばれる分散書き込みを行う半導体記憶装置が存在する。ウェアレベリングを行う半導体記憶装置は、書き込み回数の少ないブロックをなるべく使用するようにブロックを置き換えて書き込みを行っていく。そのため、ウェアレベリングのブロック置換え制御方法によっては、置換え前のブロックに情報が残っている可能性も考えられる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００４−１５３５１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１に記載された発明では、セキュリティレベルが高い設定の場合には、装置に搭載されたディスクの種類に関わらず複数回の消去処理を行うため、消去にかかる時間が長くなってしまう。
また、半導体記憶装置の場合、単純に複数回上書きをしても先に述べたウェアレベリングの置換え制御方法によっては、ユーザデータがフラッシュメモリ上のブロックに残ってしまう可能性も考えられる。
【０００７】
本発明は、上記の課題を解決するためになされたもので、本発明の目的は、接続される不揮発性記憶装置の種別に応じて、ユーザデータが再現できない消去方法で、かつ、消去時間がより短い消去方法を適切に自動選択して消去できる仕組みを提供することである。
【課題を解決するための手段】
【０００８】
上記目的を達成する本発明の情報処理装置は以下に示す構成を備える。
種別の異なる不揮発性記憶装置を接続可能な情報処理装置であって、前記不揮発性記憶装置に対して消去指示された消去領域の消去方法を前記不揮発性記憶装置から取得する属性情報に従って生成される管理テーブルに応じて決定する決定手段と、前記決定手段が決定した消去方法に従い前記消去領域に記憶された情報を消去する消去手段とを具備することを特徴とする。
【発明の効果】
【０００９】
本発明によれば、接続される不揮発性記憶装置の種別に応じて、ユーザデータが再現できない消去方法で、かつ、消去時間がより短い消去方法を適切に自動選択して消去できる。
【図面の簡単な説明】
【００１０】
【図１】画像形成装置の構成を示すブロック図である。
【図２】不揮発性記憶装置の領域構成をイメージ化した図である。
【図３】図２に示した不揮発性記憶装置の領域構成情報テーブルを示す図である。
【図４】情報処理装置のデータ処理手順を示すフローチャートである。
【図５】情報処理装置のデータ処理手順を示すフローチャートである。
【図６】情報処理装置のデータ処理手順を示すフローチャートである。
【図７】情報処理装置におけるストレージ情報テーブルの構成要素を説明する図である。
【図８】情報処理装置におけるストレージデータベースの構成要素を説明する図である。
【図９】情報処理装置のデータ処理手順を示すフローチャートである。
【図１０】図１に示した不揮発性記憶装置の領域構成情報テーブルを示した図である。
【図１１】図１に示したＰＡＮＥＬに表示されるＵＩの一例を示す図である。
【図１２】情報処理装置のデータ処理手順の一例を示すフローチャートである。
【図１３】情報処理装置におけるストレージ情報テーブルの構成要素を示す図である。
【図１４】情報処理装置におけるストレージデータベースの構成要素を示す図である。
【図１５】情報処理装置における半導体ストレージのチップ構成を示すブロック図である。
【図１６】情報処理装置におけるウェアレベリング制御の種別を示す図である。
【図１７】情報処理装置のデータ処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００１１】
次に本発明を実施するための最良の形態について図面を参照して説明する。
〔第１実施形態〕
図１は、第１実施形態に係る画像形成装置の構成を示すブロック図である。なお、本実施形態では情報処理装置として画像形成装置を例に説明するが、情報処理装置としては画像形成装置以外の装置であってもかまわない。
【００１２】
図１において、１００は画像形成装置で、ＲＯＭ１０２あるいは例えばハードディスクなどの不揮発性記憶装置（Ｓｔｏｒａｇｅ１）１１０に記憶されたソフトウェアを実行するＣＰＵ１０１を備える。なお、本実施形態において、不揮発性記憶装置として、半導体記憶装置、磁気ディスク装置のいずれをも搭載可能であり、システム構成によっては、半導体記憶装置、磁気ディスク装置を組み合わせることも可能である。なお、不揮発性記憶装置は、プログラム領域、ユーザ情報等を格納する領域として使用され、ＣＰＵ１０１が管理テーブルによりその領域を管理している。
【００１３】
ＣＰＵ１０１はシステムバス１１５に接続される各デバイスを総括的に制御する。不揮発性記憶装置は複数台接続可能であり、オプションとして不揮発性記憶装置（Ｓｔｏｒａｇｅ）１１１を拡張可能である。この際、不揮発性記憶装置の種別をそれぞれ異なるものとするか、同一種別として構成するかは任意である。
【００１４】
なお、不揮発性記憶装置（Ｓｔｏｒａｇｅ）１１０および（Ｓｔｏｒａｇｅ）１１１は、ＣＰＵ１０１の制御下において、ディスクコントローラ１０９によって読み書きの制御が行われる。すなわち、ディスクコントローラ１０９は、ＣＰＵ１０１からの消去指示に従い、接続されたＳｔｏｒａｇｅ１１０、１１１等に記憶された情報を後述する制御手順に従い実行する。不揮発性記憶装置（Ｓｔｏｒａｇｅ）１１０は、画像データの一時記憶場所としても使われる。
【００１５】
１０３はＲＡＭで、ＣＰＵ１０１の主メモリ、ワークエリア等として機能する。１０５は外部入力コントローラ（ＰＡＮＥＬＣ）で、画像形成装置に備えられた各種ボタンあるいはタッチパネルで構成される表示部１０６等からの指示入力を制御する。１０７はディスプレイコントローラ（ＤＩＳＰＣ）で、例えば液晶ディスプレイなどで構成される表示部（ＤＩＳＰＬＡＹ）１０８の表示を制御する。
【００１６】
１０４はネットワークインタフェースカード（ＮＩＣ）で、他のネットワーク機器あるいはファイルサーバ等と双方向にデータをやりとりする。
１１２は、例えば電子写真方式あるいはインクジェット方式などで実現される紙への印字部（ＰＲＩＮＴＥＲ）である。１１３は紙に印字された画像を読み込むための画像読み取り部（ＳＣＡＮＮＥＲ）である。多くの場合、画像読み取り部１１３にはオプションとしてオートドキュメントフィーダ（不図示）が装着されており、複数枚の原稿を自動的に読み込むことができる。
【００１７】
図２は、第１実施形態に係る画像形成装置に装着された不揮発性記憶装置１１０および不揮発性記憶装置１１１の領域構成をイメージ化した図である。
なお、図２では、不揮発性記憶装置１１０、１１１の全ての領域を構築する形で構成した例で説明するが、不揮発性記憶装置１１１が存在する場合に、不揮発性記憶装置１１０の一部の領域が利用されなくなっても構わないものとしている。
【００１８】
Ｓｔｏｒａｇｅ１１０内の記憶領域全体２００は、いくつかの領域（パーティション）に分割して目的別に利用する。例として、プログラム領域２０１、拡張ソフト格納領域２０２、拡張ソフト一時格納領域２０３、画像データ処理領域２０４、ユーザボックス領域２０５、ログデータ保存領域２０６に領域分割して使用する。
Ｓｔｏｒａｇｅ１１１内の記憶領域全体２１０も同様に、いくつかの領域（パーティション）に分割して目的別に利用する。例として、拡張プログラム領域２１１、拡張ソフト格納領域２１２、拡張印刷キュー領域２１３、拡張画像データ領域２１４、拡張ボックス領域２１５、拡張ログデータ保存領域２１６に領域分割して使用する。
【００１９】
プログラム領域２０１および拡張プログラム領域２１１はＯＳを含むプログラムや辞書や言語などのリソースデータが格納される。拡張ソフト格納領域２０２および拡張ソフト格納領域２１２は追加機能を実現するソフトが格納される。プログラムおよびソフト格納領域の２系統の領域は、システムによって利用され、ユーザデータが格納されることはない。
【００２０】
拡張ソフト一時格納領域２０３は、拡張ソフトが実行時に一時的にファイルを作成するための領域である。拡張印刷キュー領域２１３は、ネットワークインタフェースカード（ＮＩＣ）１０４から受信した印刷データを一時的に蓄積するスプール領域である。画像データ処理領域２０４および拡張画像データ領域２１４は、印刷するデータの画像処理結果を一時格納する領域である。
ユーザボックス領域２０５および拡張ボックス領域２１５は、ユーザが格納した画像データ（画像情報）等を格納する領域である。ログ情報保存領域として確保されるログデータ保存領域２０６および拡張ログデータ保存領域２１６は、プログラムの動作状況や、ジョブ状況をロギングするための領域である。
Ｓｔｏｒａｇｅ１１０およびＳｔｏｒａｇｅ１１１は、このように目的に分けて領域分割して使用する。この中でユーザが作成したデータが残る可能性があるのは、以下の８領域である。
【００２１】
それは、拡張ソフト一時格納領域２０３、拡張印刷キュー領域２１３、画像データ処理領域２０４、拡張画像データ領域２１４、ユーザボックス領域２０５、拡張ボックス領域２１５、ログデータ保存領域２０６、拡張ログデータ保存領域２１６である。
つまり、これらの格納領域のファイルを消去あるいは更新する場合、ファイルのデータ部分を確実に消去する必要がある。
【００２２】
図３は、図２に示したＳｔｏｒａｇｅ１１０、１１１の領域構成情報テーブル（パーティション管理テーブル）を示す図である。
図３において、領域構成情報テーブル３００は、第１実施形態の例では以下の情報から構成される。なお、領域構成情報テーブル３００は、Ｓｔｏｒａｇｅ１１０に保持されて管理される。
本例は、Ｎｏ３０１、ＣＬＥＡＲ−Ｆｌａｇ３０２、ＣＬＥＡＲ−Ｌｏｇｉｃ３０３、Ｌａｂｅｌ３０４、ＳｔｏｒａｇｅＭａｊｏｒＮｏ３０５、ＳｔｏｒａｇｅＭｉｎｏｒＮｏ３０６、ＳｔｏｒａｇｅＳｉｚｅ３０７、Ｕｓｅ３０８の情報で構成される。なお、これらの情報は、ＣＰＵ１０１が後述する図５に示す手順に従い、接続されたＳｔｏｒａｇｅ１１０、１１１から取得する属性情報を解析して生成され、ＲＡＭ１０３上で管理される。
Ｎｏ３０１は、パーティションを識別する単なる管理上の通し番号である。ＣＬＥＡＲ−Ｆｌａｇ３０２は、パーティション上のファイルを削除する際に、完全消去処理を行うか否かを示すフラグであり、「０」の場合は、完全消去しないことを、「１」の場合は、完全消去することを示している。
ここで、完全消去とは、管理領域を消去するだけでなく、ファイルの利用しているデータ領域を複数回、特定パターンで上書きを行うことを指している。
ＣＬＥＡＲ−Ｌｏｇｉｃ３０３とは、この消去ロジックをどのタイプを利用するかを示している。「０」の場合は、特殊な消去ロジックを利用しないことを意味する。「１」の場合は、ユーザ設定に従って上書き回数と書き込みパターンを決定することを意味する。「２」の場合は、１度のみ「０」を上書きすることで消去することを意味している。
「３」の場合は、ＥＲＡＳＥ  ＳＥＣＴＯＲコマンドを発行して消去することを意味している。
ＣＬＥＡＲ−Ｌｏｇｉｃの３番は、後述のデバイス種別識別手段により、Ｐａｒｔｉｔｉｏｎの属するデバイスが、ＥＲＡＳＥ  ＳＥＣＴＯＲコマンドに対応している場合に限られる。
【００２３】
Ｌａｂｅｌ３０４は、パーティションを名称で識別するための文字列である。ＳｔｏｒａｇｅＭａｊｏｒＮｏ３０５は、該当パーティションが存在するストレージデバイスファイルのメジャー番号を識別する番号である。
ＳｔｏｒａｇｅＭｉｎｏｒＮｏ３０６は、該当パーティションが存在するストレージデバイスファイルのマイナー番号を識別する番号である。
これらの識別番号は起動時に、画像形成装置１００に接続されている不揮発性記憶装置１１０、不揮発性記憶装置１１１の情報を取得し、該当パーティションが存在する場合には、管理テーブル内のブロック番号が格納される。
【００２４】
ＳｔｏｒａｇｅＳｉｚｅ３０７は、該当するパーティションのサイズをＭＢ単位で示したものである。Ｕｓｅ３０８は、補助的な情報であり、パーティションにどういった情報が格納されるかを示したものである。領域構成情報テーブル（パーティション管理テーブル）３００を参照することにより、ユーザデータファイルのファイルディスクリプタが特定されれば、ファイルの存在する領域やその領域をどういった消去ロジックで削除するべきか特定できる。
以上が第１実施形態に係る画像形成装置の構成および、不揮発性記憶装置内の領域構成である。以下、本発明における特徴的な部分について更に述べる。
【００２５】
図４は、本実施形態を示す情報処理装置のデータ処理手順を示すフローチャートである。本例は、図３に示した領域構成情報テーブル３００の生成手順を示した例である。なお、各ステップは、ＣＰＵ１０１がＲＯＭ１０２、Ｓｔｏｒａｇｅ１１０等に記憶される制御プログラムをＲＡＭ１０３にロードして実行することで実現される。
【００２６】
Ｓ４０１で、ＣＰＵ１０１は、機器に接続されたデバイスの一覧を取得する。例えばＬｉｎｕｘ（商品名）であれば、これは、"／ｓｙｓ／ｂｌｏｃｋ"の下のファイルを検出することで、デバイスの一覧を取得できる。
次に、Ｓ４０２で、ＣＰＵ１０１は、デバイス毎のパーティション一覧を取得する。例えばＬｉｎｕｘ（商品名）であれば、これは、"／ｓｙｓ／ｂｌｏｃｋ／ｓｄａ"など、Ｓ４０１で検出したブロックデバイスの下のファイルを検出することで、パーティションの一覧を取得できる。
【００２７】
次に、Ｓ４０３で、ＣＰＵ１０１は、デバイス毎のマウント設定を検出する。これは、ＣＰＵ１０１がＳ４０２で取得したパーティションのラベルを調べることで実現する。例えばＬｉｎｕｘであれば、ｅｘｔ３などは、図４に示すテーブル４０５に従って、ブロックデバイスを当てはめると、ラベルの位置にラベルを取得することができる。
また、ｓｗａｐは、図４に示すテーブル４０６に従って、ブロックデバイスをあてはめると、ラベルの位置にラベルを取得することができる。これらは、ｍａｇｉｃが示すマジック番号で区別することができる。
【００２８】
また、ラベルと同名のパーティションのマウント位置のｓｔａｔを得ることによって、図４に示すテーブル４０７に従って、パーティションが配置されているデバイスのメジャー番号とマイナー番号を取得することができる。この情報を元に、前述のＳｔｏｒａｇｅＭａｊｏｒＮｏ３０５、ＳｔｏｒａｇｅＭｉｎｏｒＮｏ３０６を決定する。最後に、Ｓ４０４で、ＣＰＵ１０１は、ユーザ消去設定を読み出し、前述のＣＬＥＡＲ−Ｌｏｇｉｃ３０３に応じた消去ロジックとパラメータを決定して、テーブル生成処理を終了する。
本実施形態では、システム起動時に図３に示す領域構成情報テーブル（パーティション管理テーブル）３００を生成し、ユーザデータの消去がセットアップされる。なお、領域構成情報テーブル３００は、Ｓｔｏｒａｇｅ１１０のプログラム領域上で管理される。
【００２９】
図５は、本実施形態を示す情報処理装置のデータ処理手順を示すフローチャートである。本例は、データ消去処理の開始から終了までの流れの概要を説明した例である。なお、各ステップは、ＣＰＵ１０１がＲＯＭ１０２、Ｓｔｏｒａｇｅ１１０等に記憶される制御プログラムをＲＡＭ１０３にロードして実行することで実現される。
まず、Ｓ５０１で、ＣＰＵ１０１は、消去するファイルから、デバイス番号を取得する消去領域決定処理を行う。例えばＬｉｎｕｘであれば、消去対象ファイルのディスクリプタに対して、ｓｔａｔ処理を実行することで、デバイス番号を取得できる。
次に、Ｓ５０２で、ＣＰＵ１０１は、前述の領域構成情報テーブル（パーティション管理テーブル）３００で、デバイス番号に一致する消去ロジックを特定する消去方法決定処理を行う。次に、Ｓ５０３で、ＣＰＵ１０１は、消去処理を実行して、指定されたファイルに対し実際に消去処理を行い、本処理を終了する。
【００３０】
図６は、本実施形態を示す情報処理装置のデータ処理手順を示すフローチャートである。図５に示した消去領域決定処理におけるＳ５０１に対応するオプショナルのデバイス特性決定処理についての詳細手順例である。また、本処理は、図４のＳ４０１の機器に接続されたデバイスの一覧を取得する処理と、Ｓ４０２のデバイス毎のパーティション一覧を取得する処理の間に実行される。
なお、各ステップは、ＣＰＵ１０１がＲＯＭ１０２、Ｓｔｏｒａｇｅ１１０等に記憶される制御プログラムをＲＡＭ１０３にロードして実行することで実現される。
まず、Ｓ６０１で、ＣＰＵ１０１は、ストレージ情報取得処理を行い、画像形成装置１００に接続されたＳｔｏｒａｇｅ１１０からメーカ名や型番等のストレージ情報を取得する。ここで、ストレージ情報は、ＣＰＵ１０１がディスクコントローラ１０９経由で、コマンドをＳｔｏｒａｇｅ１１０に送ることで、ＣＰＵ１０１が情報取得することが可能であるが、本特許の特徴となる所ではないので詳細な説明は割愛する。
なお、Ｌｉｎｕｘであれば、デバイスファイルに対して、ｉｏｃｔｌを発行することで、得られる。以下、取得したストレージ情報の内、本実施形態の処理に必要な情報を抜き出したストレージ情報について図７を用いて説明する。
【００３１】
図７は、本実施形態を示す情報処理装置におけるストレージ情報テーブル８００の構成要素を説明する図である。
図７において、ＳｔｏｒａｇｅＮｏ８０１は、画像形成装置１００に接続されたＳｔｏｒａｇｅ１１０、Ｓｔｏｒａｇｅ１１１を識別するための識別番号である。
メーカ名８０２は、接続された不揮発性記憶装置の製造メーカ名を示す文字列が格納される。型番８０３は、不揮発性記憶装置の型番を示す文字列が格納される。メーカ名８０２、型番８０３の文字列を用いることで、後ほど説明するストレージデータベースから照合を行うことが出来る。次にサポートコマンド８０４は接続された不揮発性記憶装置が対応しているコマンド情報が記載される。このように取得したストレージ情報を図８のストレージ情報テーブル８００としてＲＡＭ１０３上に格納しておき、後のストレージ種別の判断や消去方法の選択に用いる。なお、本実施形態では、サポートコマンド８０４を属性情報中のコマンド情報として取得することで、接続されたＳｔｏｒａｇｅ１１０、Ｓｔｏｒａｇｅ１１１が特定の消去コマンドに対応しているかどうかをＣＰＵ１０１が判断することが可能である。ここで、特定の消去コマンドとして、本実施形態では、図８に示すセクタ−イレーズコマンドの例を示す。図６のフローチャートの説明に戻る。
次に、Ｓ６０２で、ＣＰＵ１０１は、Ｓ６０１においてストレージ情報取得処理で取得したストレージ情報をストレージＤＢ７００と照合することにより、ストレージ種別の判断を行う。ストレージＤＢ７００の詳細な内容については図８を用いて説明する。
【００３２】
図８は、本実施形態を示す情報処理装置におけるストレージＤＢ７００の構成要素について説明する図である。ストレージＤＢ７００は、Ｓｔｏｒａｇｅ１１０のプログラム領域に保持されて管理される。
図８において、ＩＤ７０１は、データベースのエントリ識別のための番号である。メーカ名７０２は、そのエントリの不揮発性記憶装置の製造メーカ名を示す文字列が格納される。
型番７０３は、そのエントリの不揮発性記憶装置に対応する型番を示す文字列が格納される。媒体種別７０４は、そのエントリの不揮発性記憶装置に対応する記憶媒体の種別が格納され、磁気ＨＤＤなのか半導体ディスクなのかが文字列（ＳｅｍｉｃｏｎｄｕｃｔｏｒＤｉｓｋ／ＭａｇｎｅｔｉｃＨａｒｄＤｉｓｋ）で記憶される。
【００３３】
ウェアレベリング領域情報７０５は、そのエントリの不揮発性記憶装置にウェアレベリング領域が存在するか、存在する場合は全領域か、特定領域なのかといった情報が記載される。
例えば、「Ａｌｌ」と記載されていれば、全領域を対象としてウェアレベリング制御が行われていることを示す。「−」と記載されていれば、ウェアレベリング制御は行われていないことを示す。特定のアドレス範囲が記載されていれば、その論理アドレス範囲に対してウェアレベリング制御が行われることを示す。
【００３４】
型番７０３の文字列をキーとしてストレージＤＢ７００を検索する。ストレージＤＢ７００の検索により、画像形成装置１００に接続されたＳｔｏｒａｇｅ１１０やＳｔｏｒａｇｅ１１１の詳細な種別情報をデータベースから取得できる。
【００３５】
次に、Ｓ６０３で、ＣＰＵ１０１は、ストレージ特性判断により判明したＳｔｏｒａｇｅ１１０のストレージ種別が半導体ストレージであるか否かをストレージデータベースの媒体種別７０４を判断する。ここで、ＣＰＵ１０１は、接続された不揮発性記憶装置が半導体記憶装置であるのか、それとも半導体記憶装置とは異なる不揮発性記憶装置であるかを判断する。
特に未知のストレージモデルを接続された場合、すなわち検出されたデバイスが、ストレージＤＢ７００に合致するモデルがない場合には、ストレージの回転特性をさらに取得する。
【００３６】
回転数は、ストレージデバイス内のメディアの毎分あたりの回転数を示している。ハードディスクドライブであれば、回転数が出力されるが、ソリッドステートドライブなど、回転を伴わないデバイスは、「０」あるいは、「１」を返す。回転数は、公知のＡＴＡ８−ＡＣＳ規格に定義されている。
ここで、ＣＰＵ１０１が検出されたデバイスが図８に示したストレージＤＢ７００に合致するモデルであると判断した場合には、Ｓ６０８へ進む。そして、Ｓ６０８で、ストレージＤＢ７００の媒体種別７０４の結果を元に、半導体ストレージでなければ、消去ロジック３０３を「１」に設定し、上書きデータ、消去回数ともに、ユーザ設定に準じた消去ロジックを選択して、本処理を終了する。
【００３７】
一方、Ｓ６０３で、半導体ストレージであるとＣＰＵ１０１が判断した場合には、Ｓ６０４へ進む。
そして、Ｓ６０４で、既に先に説明したストレージ情報取得処理によって取得したストレージ情報テーブル８００のサポートコマンド８０４を参照するセクタ消去コマンドサポート有無を判断する。なお、セクタ消去コマンドサポート有無は、ストレージＤＢ７００において、判定してもよい。
【００３８】
ここで、セクタ消去コマンドをサポートした半導体ストレージであるとＣＰＵ１０１が判断した場合は、Ｓ６０７へ進む。
そして、Ｓ６０７で、ＣＰＵ１０１は、消去ロジック３０３を「３」に設定し、上書きデータは、セクタ消去コマンドで代替し、消去回数が一回である消去ロジックを選択して、本処理を終了する。
【００３９】
一方、Ｓ６０４で、セクタ消去コマンドをサポートしない半導体ストレージであるとＣＰＵ１０１が判断した場合は、Ｓ６０５へ進む。
そして、Ｓ６０５で、ＣＰＵ１０１はストレージデータベースのウェアレベリング領域情報７０５で、ウェアレベリングをサポートしているか否かを判断する。ここで、ウェアレベリングをサポートしていないとＣＰＵ１０１が判断した場合には、Ｓ６０８へ進む。そして、Ｓ６０８で、消去ロジック３０３を「１」に設定し、上書きデータ、消去回数ともに、ユーザ設定に準じた消去ロジックを選択して、本処理を終了する。
一方、Ｓ６０５で、判定結果がウェアレベリングをサポートした半導体ストレージであるとＣＰＵ１０１が判断した場合は、Ｓ６０６へ進む。
そして、Ｓ６０６で、ＣＰＵ１０１は消去ロジック３０３を「２」に設定し、上書きデータを「０」、消去回数を「１」にした消去ロジックを選択して、本処理を終了する。
これらの消去領域判定処理を行うことにより、不揮発性記憶装置のストレージ種別を細かく判断し、ユーザデータを安全に消去し、なおかつ、効率的な消去ロジックを決定することが可能となる。
【００４０】
上記の通り本実施形態における消去領域を判定する処理について説明したが、次に消去方法の決定と決定された消去方法によるデータ消去処理について、図９のフローチャートを用いて説明する。
図９は、本実施形態を示す情報処理装置のデータ処理手順を示すフローチャートである。本例は、Ｓ５０２、Ｓ５０３に対応する消去方法の決定処理と消去実行処理の詳細手順である。なお、各ステップは、ＣＰＵ１０１がＲＯＭ１０２等の記憶される制御プログラムをＲＡＭ１０３にロードして実行することで実現される。また、先に図４を用いて説明した消去ロジックテーブル生成処理により、消去ロジック（消去方法）を決定するためのテーブルが生成されているものとする。
【００４１】
Ｓ９０１で、図示しないユーザインタフェースを介してファイルを消去するための消去指示をＣＰＵ１０１が受け付けたと判断した場合、ＣＰＵ１０１は、指定されたファイルが、どのデバイスに属するかデバイス番号を特定する。
なお、通常ＯＳがＬｉｎｕｘであれば、ＣＰＵ１０１はファイルディスクリプタのｓｔａｔ情報を得ることで特定できる。
次に、Ｓ９０２で、ＣＰＵ１０１は、前述の消去ロジックを決定するための領域構成情報テーブル３００（図３）に従って、識別番号３０５、３０６と対比し、合致する行の消去可否を示すフラグ３０２、消去ロジック３０３を判断する。この判断の結果、消去必要なユーザデータ領域であるとＣＰＵ１０１が判断した場合、消去ロジック３０３の番号の値に応じて、処理を分岐する。
例えば消去ロジック番号の値が「１」であるとＣＰＵ１０１が判断した場合には、Ｓ９０３へ進む。
そして、Ｓ９０３で、ＣＰＵ１０１は、複数回の書き込みを行わないと磁気的に値が残る場合があるとして、データ領域をランダム値のＮ回の上書き消去を実行して、Ｓ９０６へ進む。
また、Ｓ９０２で、例えば消去ロジック番号の値が「２」であるとＣＰＵ１０１が判断した場合には、Ｓ９０４へ進む。
そして、Ｓ９０４で、ＣＰＵ１０１は、半導体ストレージで、ウェアレベリングによる無駄な磨耗を避けるためとして、データ領域を０値で、１回のみ消去を行い、Ｓ９０６へ進む。
【００４２】
さらに、Ｓ９０２で、例えば消去ロジック番号の値が「３」であるとＣＰＵ１０１が判断した場合には、Ｓ９０５へ進む。
そして、Ｓ９０５で、ＣＰＵ１０１は、セクタイレースコマンドと呼ばれる安全にセクタ領域を消去できるコマンドに対応した不揮発性記憶装置であるとして、セクタイレースコマンドを発行することにより、データ領域の消去を行い、Ｓ９０６へ進む。
これらの消去方法でファイルのデータ領域を上書き消去処理した後に、Ｓ９０６で、ＣＰＵ１０１はファイルの管理領域上の存在を消去して、本処理を終了する。
このように、画像形成装置１００に接続された不揮発性記憶装置のストレージ種別を細かく判断し、ユーザデータを安全に消去し、なおかつ、効率的な消去ロジックを決定することが可能となる。
【００４３】
上記実施形態では、不揮発性記憶装置の種別が半導体記憶装置であると判断した場合に、さらに、特定のコマンドに対応しているかどうかを判断して、記憶された情報の消去ロジックを決定して、半導体記憶装置に記憶された情報を消去する場合について説明した。
以下、不揮発性記憶装置に記憶された情報の削除対象がユーザ情報であるかそれ以外の情報であるかを判断して、さらに、不揮発性記憶装置の種別が半導体記憶装置であるかどうかを判断して記憶された情報の消去ロジックを決定する場合について説明する。なお、ハードウエアの構成については、第１実施形態と同様であるので、その説明を省略する。
〔第２実施形態〕
図１０は、図１に示したＳｔｏｒａｇｅ１１０の領域構成情報テーブル（パーティションテーブル）を示した図である。
【００４４】
図１０において、領域構成情報テーブル（パーティションテーブル）１３００は、第２実施形態の例では以下から構成される。
本例は、Ｎｏ１３０１、Ｌａｂｅｌ１３０２、ＳｔｏｒａｇｅＮｏ１３０３、ＳｔａｒｔＢｌｏｃｋＡｄｒｅｓｓ１３０４，ＥｎｄＢｌｏｃｋＡｄｄｒｅｓｓ１３０５、Ｓｉｚｅ１３０６、ＥｘｉｓｔＵｓｅｒＤａｔａ１３０７の情報で構成される。
【００４５】
ここで、Ｎｏ１３０１はパーティションを識別する番号である。Ｌａｂｅｌ１３０２はパーティションを名称で識別するたの文字列である。
ＳｔｏｒａｇｅＮｏ１３０３は該当パーティションが存在するストレージを識別する番号である。
Ｓｔｏｒａｇｅ１１０に該当パーティションが存在する場合には、値として「１」が格納される。Ｓｔｏｒａｇｅ１１１に該当パーティションが存在する場合には、値として２が格納される。
【００４６】
ＳｔａｒｔＢｌｏｃｋＡｄｄｒｅｓｓ１３０４は、該当するパーティションが存在する領域の開始アドレスを論理ブロックアドレスとして１６進値で示したものである。ＥｎｄＢｌｏｃｋＡｄｄｒｅｓｓ１３０５は、該当するパーティションが存在する領域の終了アドレスを論理ブロックアドレスとして１６進値で示したものである。
【００４７】
Ｓｉｚｅ１３０６は、該当するパーティションのサイズをブロック数として１６進値で示したものである。ＥｘｉｓｔＵｓｅｒＤａｔａ１３０７は、補助的な情報であり、ユーザデータが格納される可能性があるか否かを示したものである。
ＤＩＳＫＣ１０９は、領域構成情報テーブル（パーティションテーブル）１３００を参照することにより、ユーザデータが存在する可能性がある領域やその領域の論理ブロックの範囲が特定できる。
【００４８】
ここまでで、第２実施形態に係る画像形成装置の構成および、不揮発性記憶装置内の領域構成について説明したが、次に、本発明における特徴的な部分について更に述べる。
図１１は、図１に示したＰＡＮＥＬ１０６に表示されるユーザインタフェースの一例を示す図である。本例は、実際にユーザデータ消去を行う際の操作画面表示例である。
図１１において、ユーザデータ全消去の操作画面１４００は、表示部（ＤＩＳＰＬＡＹ）１０８上に表示され、ユーザが実行を指示することが出来る。
タイトル１４０１は、ユーザデータ全消去を行う旨を示すタイトル表示であり、実行ボタン１４０２をタッチすることにより、ユーザデータ消去が実行される。また、キャンセルボタン１４０３をタッチすることにより、ユーザデータ全消去の操作画面をキャンセルすることができる。
本実施形態は、図５に示した手順に従いまず、ＣＰＵ１０１が消去する領域を決定する。次に、ＣＰＵ１０１が消去の方法を決定して、当該決定した消去領域に対し実際に消去処理を行う、という流れでユーザデータの消去処理を行う。
【００４９】
図１２は、本実施形態を示す情報処理装置のデータ処理手順の一例を示すフローチャートである。本例は、図５に示したＳ５０１の消去領域決定処理の詳細手順である。なお、各ステップは、ＣＰＵ１０１がＲＯＭ１０２、Ｓｔｏｒａｇｅ１１０等の記憶される制御プログラムをＲＡＭ１０３にロードして実行することで実現される。
まず、Ｓ１２０１で、ＣＰＵ１０１は、ストレージ情報取得処理を行い、画像形成装置１００に接続されたＳｔｏｒａｇｅ１１０からメーカ名や型番等のストレージ情報を取得する。ここで、ストレージ情報は、ＤＩＳＫ１０９経由で、コマンドをＳｔｏｒａｇｅ１１０に送ることで、情報取得することが可能であるが、本特許の特徴となる所ではないので詳細な説明は割愛する。
【００５０】
次に、Ｓｔｏｒａｇｅ１１０から取得したストレージ情報の内、本特許の処理に必要な情報を抜き出したストレージ情報について図１３を用いて説明する。
図１３は、図１に示したＲＡＭ１０３に保持されるストレージ情報テーブル１８００の構成要素を説明する図である。
図１３において、ＳｔｏｒａｇｅＮｏ１８０１は、画像形成装置１００に接続されたＳｔｏｒａｇｅ１１０、Ｓｔｏｒａｇｅ１１１を識別するための識別番号である。
メーカ名１８０２は、接続された不揮発性記憶装置の製造メーカ名を示す文字列が格納される。型番１８０３は、不揮発性記憶装置の型番を示す文字列が格納される。メーカ名１８０２、型番１８０３の文字列を用いることで、後ほど説明するストレージデータベースから照合を行うことが出来る。
【００５１】
サポートコマンド１８０４は、接続された不揮発性記憶装置が対応しているコマンド情報が記載される。このようにＳｔｏｒａｇｅ１１０から取得したストレージ情報を図１３に示すストレージ情報テーブル１８００に格納しておき、後のストレージ種別の判断や消去方法の選択に用いる。図１２のフローチャートの説明に戻る。
Ｓ１２０２で、Ｓ１２０１においてＣＰＵ１０１がストレージ情報取得処理で取得したストレージ情報を図１４に一例を示すストレージデータベース（ストレージＤＢ）１７００と照合する。そして、ＣＰＵ１０１は、ストレージ種別の判断を行う。
【００５２】
図１４は、図１に示したＲＡＭ１０３に保持されるストレージＤＢ１７００の構成要素を説明する図である。ストレージＤＢ１７００は、Ｓｔｏｒａｇｅ１１０のプログラム領域に保持されて管理される。
図１４において、ＩＤ１７０１は、データベースのエントリ識別のための番号である。メーカ名１７０２は、そのエントリの不揮発性記憶装置の製造メーカ名を示す文字列が格納される。型番１７０３は、そのエントリ不揮発性記憶装置の型番を示す文字列が格納される。
媒体種別１７０４は、そのエントリの不揮発性記憶装置の記憶媒体の種別が格納され、磁気ＨＤＤなのか半導体ディスクなのかが記載される。
ウェアレベリング領域情報１７０５は、そのエントリの不揮発性記憶装置のウェアレベリング領域が存在するか、存在する場合は全領域か、特定領域なのかといった情報が記載される。
例えば、「Ａｌｌ」と記載されていれば、全領域を対象としてウェアレベリング制御が行われていることを示す。「−」と記載されていれば、ウェアレベリング制御は行われていないことを示す。特定のアドレス範囲が記載されていれば、その論理アドレス範囲に対してウェアレベリング制御が行われることを示す。
【００５３】
ウェアレベリング置換え前ＢｌｏｃｋＥｒａｓｅ１７０６は、ウェアレベリング制御で書き込み先物理ブロックが変更された場合、置き換わる前の物理ブロックに対して消去処理がされるか否かが記載される。
ここで、「Ｙｅｓ」と記載されている場合、ブロック置換え時に旧物理ブロックに消去処理をおこなってから新物理ブロックに置き換わる制御が行われる。また、「Ｎｏ」と記載されている場合、ブロック置換え時に旧物理ブロックは未使用ブロックにエントリされるだけで消去処理は行われず、新物理ブロックに置き換える制御が行われる。
【００５４】
パッケージ種別１７０７は、半導体ストレージの場合に、コントローラとＦｌａｓｈメモリが一体化されているか否かが記載される。ここで、「ＯｎｅＣｈｉｐ」と記載されていれば、コントローラとＦｌａｓｈメモリがワンチップ化されたパッケージで構成された半導体ストレージである。また、「Ｓｅｐａｒａｔｅ」と記載されていれば、コントローラチップとＦｌａｓｈメモリチップが別体で構成された半導体ストレージである。
このように構成されているので、ＣＰＵ１０１は、先に述べたストレージ情報のメーカ名１８０２、型番１８０３の文字列をキーとしてストレージデータベース（ストレージＤＢ）１７００を検索する。ストレージデータベース（ストレージＤＢ）１７００の検索により、画像形成装置１００に接続されたＳｔｏｒａｇｅ１１０やＳｔｏｒａｇｅ１１１の詳細な種別情報をデータベースから取得出来る。
【００５５】
次に、Ｓ１２０３で、ＣＰＵ１０１は、Ｓ１２０２におけるストレージ種別判断により判明したＳｔｏｒａｇｅ１１０のストレージ種別が半導体ストレージであるか否かをストレージデータベースの媒体種別１７０４で判断する。
ここで、半導体ストレージでないとＣＰＵ１０１が判断した場合、磁気ＨＤＤであるため、ウェアレベリングによる分散書き込みで論理ブロックと物理ブロックが書き込みのたびに変化していくという心配が無い。よって、Ｓ１２０５へ進み、消去領域はユーザデータ領域のみ消去すると判断して、本処理を終了する。
【００５６】
一方、Ｓ１２０３で、半導体ストレージであると判断した場合は、Ｓ１２０４で、ＣＰＵ１０１は、次にウェアレベリングを行う半導体ストレージか否かをストレージデータベースのウェアレベリング領域情報１７０５から判断する。
なお、半導体ストレージの中にはウェアレベリングを行わないものも存在する。
ここで、ウェアレベリングを行わない半導体ストレージであると判断した場合は、Ｓ１２０５へ進み、磁気ＨＤＤと同じ扱いで構わないため、消去領域はユーザデータ領域のみ消去すると判断いて、本処理を終了する。
【００５７】
一方、Ｓ１２０４で、ウェアレベリングを行う半導体ストレージであるとＣＰＵ１０１が判断した場合には、Ｓ１２０６へ進む。
そして、Ｓ１２０６で、ＣＰＵ１０１は、ウェアレベリングがストレージ全領域に対して行われているか否かをストレージデータベースのウェアレベリング領域情報１７０５から判断する。
なお、ウェアレベリングを部分的な領域に対してしか実施していない半導体ストレージの場合には、ユーザデータが格納される可能性の有る領域がウェアレベリング対象領域でなければ、磁気ＨＤＤと同じ扱いで構わない。
【００５８】
そして、Ｓ１２０６で、ウェアレベリングがストレージ全領域に対して行われていないとＣＰＵ１０１が判断した場合は、Ｓ１２０７へ進む。そして、Ｓ１２０７で、ＣＰＵ１０１は、領域構成情報テーブル１３００（図１０）及びストレージデータベース（ストレージＤＢ）１７００のウェアレベリング領域情報１７０５を照合し、ユーザデータ領域マッピング調査処理を行う。
【００５９】
なお、調査方法は、領域構成情報テーブル１３００のＥｘｉｓｔＵｓｅｒＤａｔａ１３０７が「Ｙｅｓ」の領域全てについて、ＳｔａｒｔＢｌｏｃｋＡｄｄｒｅｓｓ１３０４〜ＥｎｄＢｌｏｃｋＡｄｄｒｅｓｓ１３０５までのアドレス範囲を取得する。
そして、Ｓ１２０８で、ＣＰＵ１０１は、ユーザデータ領域マッピング調査により、ユーザデータ領域がウェアレベリング対象領域か否かを判断する。具体的には、ＣＰＵ１０１が取得したユーザデータの存在する可能性のあるアドレス範囲が、ウェアレベリング領域情報１７０５に記載されたアドレス範囲と重複するか否かで判定する。
ここで、ウェアレベリング対象領域でないとＣＰＵ１０１が判断した場合、ユーザデータはウェアレベリングしていない領域にしか存在しない。この場合は、磁気ＨＤＤと同じ扱いで構わない。よって、Ｓ１２０５へ進み、消去領域はユーザデータ領域のみ消去すると判断して、本処理を終了する。
【００６０】
一方、Ｓ１２０６で、ウェアレベリングがストレージ全領域を対象として実施している半導体ストレージであるとＣＰＵ１０１が判断した場合はＳ１２０９へ進む。同様に、Ｓ１２０８で、ユーザデータ領域がウェアレベリング対象領域であると判断した場合は、Ｓ１２０９へ進む。
そして、Ｓ１２０９で、ＣＰＵ１０１は、ＦｌａｓｈコントローラとＦｌａｓｈメモリがワンチップ化されているか否かをストレージデータベースのパッケージ種別１７０７から判断する。ここで、ウェアレベリング制御を行うＦｌａｓｈコントローラとＦｌａｓｈメモリが同一チップ内にパッケージングされているとＣＰＵ１０１が判断した場合は、ウェアレベリングで物理ブロックを置換えた際の置換え前ブロックにデータが残っていたとしても、それを読み出すことは出来ない。これは、置換え前のブロックは置換え後に未使用ブロックに割り当てられるため、Ｆｌａｓｈコントローラ経由では置換え前の物理ブロックを読み出すことが出来ないからである。
また、ＦｌａｓｈコントローラとＦｌａｓｈメモリが別チップで構成されている場合、Ｆｌａｓｈメモリチップのみを基盤から剥がして置換え前に使用していた旧物理ブロックを読み取られる危険性がある。この点について、図１５を用いて詳述する。
【００６１】
図１５は、本実施形態を示す情報処理装置における半導体ストレージのチップ構成を説明するブロック図である。
図１５において、図１５の（Ａ）は、Ｆｌａｓｈコントローラ１５０２とＦｌａｓｈメモリ１５０３が同一チップ内にパッケージングされている例である。チップ１５０１の中にＦｌａｓｈコントローラ１５０２とＦｌａｓｈメモリ１５０３が両方存在し、バス１５０４で接続されている。
本例ではＩ／Ｆ１５０５を経由して本チップに対する読み書き指示やデータをやり取りする。
このような構成の半導体ストレージの場合、チップ内のＦｌａｓｈメモリは完全にＦｌａｓｈコントローラの管轄内にあり、Ｆｌａｓｈコントローラが未使用領域に対する読み出しを許さない。そのため、未使用領域に回された物理ブロックのデータは読み出すことが出来ない。
図１５の（Ｂ）の方は、ＦｌａｓｈコントローラとＦｌａｓｈメモリが別チップで構成されている例である。
Ｆｌａｓｈコントローラ１５０６がバス１５０４を介してＦｌａｓｈメモリ１５０７、１５０８、１５０９のＦｌａｓｈメモリチップと接続されており、Ｉ／Ｆ１５０５を経由して本チップに対する読み書き指示やデータをやり取りする。
【００６２】
図１５の（Ｂ）のような１チップ化されていない構成の半導体ストレージの場合、ＦｌａｓｈメモリのチップがＦｌａｓｈコントローラ１５０６と独立しているため、Ｆｌａｓｈメモリチップのみを剥がすことが可能である。このため、剥がしたＦｌａｓｈメモリを別のＦｌａｓｈコントローラに装着して置換え前に使用していた旧物理ブロックを読み取られる危険性がある。
以下、図１２のフローチャートに戻るが、図１５を用いて説明したように、ワンチップ化されている場合には、ＣＰＵ１０１は、読み取られる危険性はないと判断し、Ｓ１２０５に進み、ユーザデータ領域のみ消去と判断して、本処理終了する。
【００６３】
一方、Ｓ１２０９で、ワンチップ化されていないとＣＰＵ１０１が判断した場合には、Ｓ１２１０へ進む。
そして、Ｓ１２１０で、ＣＰＵ１０１は、ウェアレベリング制御による置換え実行時に、置換え前ブロックが消去されてから置換えが行われるか否かを判断する。具体的は、ＣＰＵ１０１は、置換え前ブロックが消去されてから置換えが行われるか否かをストレージデータベースのウェアレベリング置換え前ＢｌｏｃｋＥｒａｓｅ１７０６から判断する。
ここで、置換え前の物理ブロックが消去されて新しい物理ブロックが割り当てられるとＣＰＵ１０１が判断した場合は、Ｓ１２０５へ進む。そして、Ｓ１２０５で、置換え前の物理ブロックからはユーザデータが消されるため、ユーザデータ領域のみを消去すると判断して、本処理を終了する。
一方、Ｓ１２１０で、置換え前の物理ブロックが消去されずに新しい物理ブロックが割り当てられるとＣＰＵ１０１が判断した場合には、Ｓ１２１１へ進む。
この場合、Ｆｌａｓｈメモリチップのみを基盤から剥がして置換え前の物理ブロックを読み取られる危険性が考えられる。そのため、Ｓ１２１１で、ＣＰＵ１０１は、ストレージ全領域を消去すると判断して、本処理を終了する。この点について、図１６を参照して説明する。
【００６４】
図１６は、本実施形態を示す情報処理装置におけるウェアレベリング制御の種別を示す図である。
図１６の（Ａ）は、置換え前の旧物理ブロックを消去してから新しい物理ブロックに書き込みを行うタイプのウェアレベリング制御の処理の流れを示す。
まず、ＣＰＵ１０１は、Ｆｌａｓｈメモリの物理ブロック空間１６００に書き込み処理でウェアレベリング制御が発生した場合、まず、置換え前の旧物理ブロック１６０１を消去する（１）。
【００６５】
それから、ＣＰＵ１０１は、旧物理ブロック１６０１を未使用ブロックに割り当て（２）、新しい物理ブロック１６０２に書き込みを行う（３）。このような処理手順でブロックの置換えを行うウェアレベリング制御であれば、ユーザデータ消去を上書きで行った場合、ウェアレベリングが働いても、旧物理ブロックが消去されるため、安全である。
図１６の（Ｂ）は、置換え前の物理ブロックが消去されずに新しい物理ブロックが割り当てられるウェアレベリング制御の流れである。
ＣＰＵ１０１は、Ｆｌａｓｈメモリの物理ブロック空間１６００に書き込み処理でウェアレベリング制御が発生した場合、置換え前の旧物理ブロック１６０１を単純に未使用ブロックに割り当てる（１）。そして、新しい物理ブロック１６０２に書き込みを行う（２）。
【００６６】
図１６の（Ｂ）の場合、ユーザデータ消去を上書きで行った場合、ウェアレベリングが働いて未使用ブロックに割り当てられた旧物理ブロック１６０１にユーザデータが残ってしまう。
通常はＦｌａｓｈコントローラが未使用ブロックを読みに行かないように制御するので、問題はない。
しかし、先に述べたようにＦｌａｓｈメモリのチップが独立している場合、チップを取り外されてユーザデータが残った物理ブロックを読み取られてしまう可能性がある。そのため、Ｆｌａｓｈメモリのチップが独立していて、かつ、ウェアレベリングによるブロック置換え時に旧物理ブロックが消去されない半導体ストレージでは、ストレージ全領域を消去すると判断するのである。
【００６７】
図１２に示すフローチャートに戻るが、これらの消去領域判定処理を行うことにより、不揮発性記憶装置のストレージ種別を細かく判断し、ユーザデータを安全に消去し、なおかつ、効率的な消去範囲を決定することが可能となる。
次に消去方法の決定と消去実行を行う処理について、図１７を参照して説明する。
図１７は、本実施形態を示す情報処理装置のデータ処理手順の一例を示すフローチャートである。本例は、図５に示したＳ５０２、Ｓ５０３の消去方法決定処理／消去実行処理の詳細手順である。なお、各ステップは、ＣＰＵ１０１がＲＯＭ１０２等の記憶される制御プログラムをＲＡＭ１０３にロードして実行することで実現される。
まず、Ｓ１７０１で、ＣＰＵ１０１は、先に図６を用いて説明した消去領域判定処理により判断した結果が、消去領域がユーザデータ領域のみ消去するであるかどうかを判断する。
ここで、消去領域がユーザデータ領域のみ消去するであるとＣＰＵ１０１が判断した場合は、Ｓ１７０２へ進む。そして、Ｓ１７０２で、ＣＰＵ１０１は、次に消去対象が半導体ストレージか否かを判断する。ここで、半導体ストレージでユーザデータ領域のみ消去とＣＰＵ１０１が判断した場合は、１回のユーザデータ領域のみの消去で安全に消去できる。
【００６８】
よって、Ｓ１７０４で、ＣＰＵ１０１は、Ｓｔｏｒａｇｅ１１０のユーザデータ領域に１回の書き込みを行うことでデータ消去を行い、本処理を終了する。
一方、Ｓ１７０２で、半導体ストレージでないとＣＰＵ１０１が判断した場合は、ストレージの種別が磁気ＨＤＤであるため、複数回の書き込みを行わないと磁気的に値が残る場合がある。よって、Ｓ１７０３で、ＣＰＵ１０１は、複数回の上書きデータ消去をＳｔｏｒａｇｅ１１０のユーザデータ領域に対して行い、本処理を終了する。
【００６９】
一方、Ｓ１７０１で、ユーザデータ領域のみの消去でないとＣＰＵ１０１が判断した場合は、Ｓ１７０５へ進む。
そして、Ｓ１７０５で、ＣＰＵ１０１は、安全に全領域を消去できるセキュリティユニットイレーズコマンドをサポートしているか否かを判断する。なお、ストレージデバイスとしてセキュリティユニットイレーズコマンドと呼ばれる安全に全領域を消去できるコマンドに対応したものがあり、特に半導体ストレージの場合はサポートしている場合が多い。
【００７０】
ここで、セキュリティユニットイレーズコマンドサポートしているか否かは、既に先に説明したストレージ情報取得処理によって取得したストレージ情報テーブル１８００（図１３）のサポートコマンド１８０４を参照することによって判断できる。
ここで、ＣＰＵ１０１が安全に全領域を消去できるコマンドに対応した不揮発性記憶装置であると判断した場合は、Ｓ１７０６へ進む。
そして、Ｓ１７０６で、ＣＰＵ１０１は、セキュリティユニットイレーズコマンドをＳｔｏｒａｇｅ１１０に発行することにより、全ブロック消去を行い、本処理を終了する。
一方、Ｓｔｏｒａｇｅ１１０が安全に全領域を消去できるコマンドに対応していない不揮発性記憶装置であると判断した場合は、Ｓ１７０７へ進む。
そして、Ｓ１７０７で、ＣＰＵ１０１は、Ｓｔｏｒａｇｅ１１０の全ブロックに対して複数回の書き込みを行い、本処理を終了する。
なお、本処理は、ウェアレベリング制御により、全物理ブロックに対して書き込みが行われるまで相当な回数くりかえし書き込み処理を行う必要がある。
【００７１】
このような安全に全領域を消去できるコマンドに対応していない半導体ストレージで相当な回数の全領域消去をしないとならない場合は、時間も相当な時間が必要である。
よって、表示部（ＤＩＳＰＬＡＹ）１０８に長時間かかる旨のメッセージを表示しても良いし、上書き回数をユーザに指定させても良い。
これらの消去方法処理を行うことにより、画像形成装置１００に接続された不揮発性記憶装置のストレージ種別を細かく判断し、ユーザデータを安全に消去し、なおかつ、効率的な消去範囲を決定することが可能となる。
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【００７２】
本発明は上記実施形態に限定されるものではなく、本発明の趣旨に基づき種々の変形（各実施形態の有機的な組合せを含む）が可能であり、それらを本発明の範囲から除外するものではない。
本発明の様々な例と実施形態を示して説明したが、当業者であれば、本発明の趣旨と範囲は、本明細書内の特定の説明に限定されるのではない。
【符号の説明】
【００７３】
１０１  ＣＰＵ
１０９  ＤＩＳＫＣ
１１０、１１１  不揮発性記憶装置
【図１】
0005538970.tif 000002
【図２】
0005538970.tif 000003
【図３】
0005538970.tif 000004
【図４】
0005538970.tif 000005
【図５】
0005538970.tif 000006
【図６】
0005538970.tif 000007
【図７】
0005538970.tif 000008
【図８】
0005538970.tif 000009
【図９】
0005538970.tif 000010
【図１０】
0005538970.tif 000011
【図１１】
0005538970.tif 000012
【図１２】
0005538970.tif 000013
【図１３】
0005538970.tif 000014
【図１４】
0005538970.tif 000015
【図１５】
0005538970.tif 000016
【図１６】
0005538970.tif 000017
【図１７】
0005538970.tif 000018