(57)【要約】【課題】複数の記憶装置（ハードディスク装置）を搭載しているシステムにおいて、上位装置（メインコントローラ）の負荷を最小限に抑えてデータ消去処理を効率的に実行できる制御装置（ハードディスクコントローラ）を提供すること。【解決手段】ＨＤＤコントローラ２１６は、メインコントローラ２００から特定のハードディスク装置に対する上書き消去処理の実行中に新たなコマンドを受信した場合、該受信コマンドが特定のハードディスク装置に対するコマンドであれば少なくとも前記上書き消去処理が終了するまでは前記受信コマンドを保持する、若しくは、前記上書き消去処理の途中経過を保持して前記受信コマンドを優先的に処理するように制御し、一方、前記受信コマンドが前記特定のハードディスク装置に対するコマンドでなければ前記コマンドに対する処理を実行するよう制御する構成を特徴とする。【選択図】図１
2010257135.tif 000002
【特許請求の範囲】
【請求項１】
上位装置から受信するコマンドに基づいて複数の記憶装置を制御する制御装置であって、
前記上位装置から前記複数の記憶装置の少なくともいずれかを制御するためのコマンドを受信する受信手段と、
前記受信手段が受信したコマンドが特定の記憶装置に格納されたデータを消去するための消去コマンドである場合に、前記データが記憶された領域に上書きする上書きデータを前記特定の記憶装置へ送信する送信手段と、
前記送信手段が前記特定の記憶装置へ前記上書きデータを送信している際に前記受信手段が新たなコマンドを受信した場合、前記受信したコマンドが前記特定の記憶装置に対するコマンドであれば少なくとも前記送信手段による前記上書きデータの送信が終了するまでは前記受信したコマンドを保持する、若しくは、前記送信手段による前記上書きデータの送信の途中経過を示す情報を保持して前記受信したコマンドを優先的に処理するように制御し、一方、前記受信したコマンドが前記特定の記憶装置に対するコマンドでなければ前記コマンドに対する処理を実行するよう制御する制御手段と、
を有することを特徴とする制御装置。
【請求項２】
前記消去コマンドは、前記特定の記憶装置を指定する情報を含む属性データが付加されたものであり、
前記送信手段及び前記制御手段は、前記消去コマンドに付加された属性データに基づいて前記特定の記憶装置を選択することを特徴とする請求項１に記載の制御装置。
【請求項３】
前記属性データは、前記消去コマンドにて消去する範囲をセクタ単位で指定する情報を含むことを特徴とする請求項２に記載の制御装置。
【請求項４】
前記属性データは、前記上書きデータを指定する情報を含むことを特徴とする請求項２又は３に記載の制御装置。
【請求項５】
前記属性データは、前記上書きデータによる上書き回数を指定する情報を含むことを特徴とする請求項２乃至４のいずれか１項に記載の制御装置。
【請求項６】
前記制御手段は、前記送信手段が前記特定の記憶装置へ前記上書きデータを送信している際に前記受信手段が前記特定の記憶装置の電源を遮断するためのコマンドを受信した場合、前記送信手段による前記上書きデータの送信の途中経過を示す情報を不揮発性の記憶手段に保持し、また、前記特定の記憶装置が起動された場合、前記不揮発性の記憶手段に保持された前記上書きデータの送信の途中経過を示す情報に基づいて、前記送信手段による前記上書きデータの送信を再開するように制御する、ことを特徴とする請求項１乃至５のいずれか１項に記載の制御装置。
【請求項７】
上位装置から受信するコマンドに基づいて複数の記憶装置を制御する制御装置の制御方法であって、
受信手段が、前記上位装置から前記複数の記憶装置の少なくともいずれかを制御するためのコマンドを受信する受信ステップと、
送信手段が、前記受信ステップで受信したコマンドが特定の記憶装置に格納されたデータを消去するための消去コマンドである場合に、前記データが記憶された領域に上書きする上書きデータを前記特定の記憶装置へ送信する送信ステップと、
制御手段が、前記送信ステップで前記特定の記憶装置へ前記上書きデータを送信している際に前記受信ステップで新たなコマンドを受信した場合、前記受信したコマンドが前記特定の記憶装置に対するコマンドであれば少なくとも前記送信ステップによる前記上書きデータの送信が終了するまでは前記受信したコマンドを保持する、若しくは、前記送信ステップによる前記上書きデータの送信の途中経過を示す情報を保持して前記受信したコマンドを優先的に処理するように制御し、一方、前記受信したコマンドが前記特定の記憶装置に対するコマンドでなければ前記コマンドに対する処理を実行するよう制御する制御ステップと、
を有することを特徴とする制御装置の制御方法。
【請求項８】
請求項１乃至６のいずれか１項に記載された制御装置の手段としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶装置内のデータ消去を行う制御装置に関する。
【背景技術】
【０００２】
従来より、ＰＣ（パーソナルコンピュータ）や印刷装置等に搭載されるハードディスク装置等の記憶装置（以下、ハードディスク装置を例に説明する）を破棄する場合に、機密データの流出防止などを目的として、ハードディスク装置内のデータの消去が行われている。その際、ハードディスク装置内のファイル管理情報を消去するだけでなく、ファイルそのものを特定のパターンデータで所定の回数だけ上書き処理を行う完全消去を実施するケースが増えている。
【０００３】
近年、さらなるセキュリティ意識の向上により、ハードディスク装置の破棄時のみに限らず、印刷処理過程での印刷データ及び処理過程で生成される中間データを含むハードディスク装置内の作業領域を、印刷ジョブ単位で上書き消去する事が求められている。
【０００４】
従来の上書き消去方法として、システムを管理するＣＰＵ（中央処理演算装置）がメモリ上にパターンデータを生成し、前記パターンデータをハードディスク装置内のファイルに対して所定回数分上書きする方法が実施されていた。
【０００５】
しかしながら、メモリ上の連続領域が大きく確保できない場合や上書き消去するファイルサイズが巨大である場合には、前記処理内容を何度も繰り返す必要があり、ＣＰＵに大きな負荷を強いる不効率な方法であった。
【０００６】
前記従来方法に対して、ＯＳ（オペレーティングシステム）のファイルシステムで管理されるファイル管理情報に、さらに上書き消去条件を付加する事で上書き消去処理を実現する方法が提案されている（特許文献１）。
【０００７】
特許文献１の方法では、システムを管理するＣＰＵとハードディスク装置との間にハードディスクコントローラを設けている。そして、ハードディスク装置内に保存されるファイル管理情報が更新される際に、ハードディスクコントローラによってファイル管理情報内に記載されている上書き消去条件を読み取る。そして、その書き消去条件に基づいてハードディスクコントローラが自ら上書き消去処理を実行する。したがって、システムを管理するＣＰＵは、更新したファイル管理情報をハードディスク装置に書き込むだけで済み、該ＣＰＵに対する負荷を解消し、システム全体の処理効率を向上させることが可能である。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００５−３４６３０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかし、特許文献１の方法では、ファイルシステムのファイル管理情報を拡張することが必要である。
印刷装置など最近の組み込み系機器では、構成の複雑度が増し、例えば複数のＯＳで構成される例も珍しくない。ＯＳの種類も組み込み系ＯＳから汎用ＯＳまで混在するため、ファイル管理情報を独自に拡張する事が技術的及び政治的な問題で困難な場合がある。また、ハードディスクコントローラがファイル管理情報の書き換えを行う必要があり、複数のハードディスクでミラーリングシステムを構築している場合には、同じ管理情報を変更する対象が複数存在するため、その制御が煩雑である。このため、特許文献１の方法では、広い範囲のシステム形態に対応することが困難であった。
【００１０】
本発明は、上記の問題点を解決するためになされたものである。本発明は、複数の記憶装置を搭載しているシステムに適用することを前提としている。本発明は、消去対象とする特定の記憶装置を選択可能で、且つ消去処理中であっても次のコマンドを受信でき、前記特定の記憶装置以外の記憶装置に対しては通常アクセス可能な上書き消去の仕組みを提供することである。
【課題を解決するための手段】
【００１１】
本発明は、上位装置から受信するコマンドに基づいて複数の記憶装置を制御する制御装置であって、前記上位装置から前記複数の記憶装置の少なくともいずれかを制御するためのコマンドを受信する受信手段と、前記受信手段が受信したコマンドが特定の記憶装置に格納されたデータを消去するための消去コマンドである場合に、前記データが記憶された領域に上書きする上書きデータを前記特定の記憶装置へ送信する送信手段と、前記送信手段が前記特定の記憶装置へ前記上書きデータを送信している際に前記受信手段が新たなコマンドを受信した場合、前記受信したコマンドが前記特定の記憶装置に対するコマンドであれば少なくとも前記送信手段による前記上書きデータの送信が終了するまでは前記受信したコマンドを保持する、若しくは、前記送信手段による前記上書きデータの送信の途中経過を示す情報を保持して前記受信したコマンドを優先的に処理するように制御し、一方、前記受信したコマンドが前記特定の記憶装置に対するコマンドでなければ前記コマンドに対する処理を実行するよう制御する制御手段とを有することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、上書き消去処理に対する上位装置の負荷を最小限に抑え、且つ制御装置も簡単な構成で構築可能なため、広い範囲のシステム形態に対応可能である。また、上書き消去処理中も記憶装置への通常アクセスが可能であり、システム全体として効率的に上書き消去処理を実行することができる。
【図面の簡単な説明】
【００１３】
【図１】複合機の制御を行うメインコントローラシステムの構成例を示す図である。
【図２】ハードディスクコントローラの構成例を示す図である。
【図３】従来の上書き消去処理の方法を示す図である。
【図４】本発明に係る上書き消去処理の方法を示す図である。
【図５】上書き消去要求コマンドに付加される属性データの例を示す図である。
【図６】ミラーリングシステムに本発明の上書き消去処理を適用した図である。
【図７】上書き消去処理の設定及び表示画面例を示す図である。
【図８】メインコントローラ側での処理（ＣＬＲ１）を示す図である。
【図９】メインコントローラ側での処理（ＣＬＲ２）を示す図である。
【図１０】ＨＤＤコントローラ内部での上書き消去処理を示す図である。
【図１１】電源ＯＦＦシーケンスを示すフローチャートである。
【図１２】電源ＯＮシーケンスを示すフローチャートである。
【図１３】他の実施例１でのＨＤＤコントローラの処理を示すフローチャートである。
【図１４】他の実施例２でのＨＤＤコントローラの処理を示すフローチャートである。
【発明を実施するための形態】
【００１４】
以下、本発明を実施するための形態について図面を用いて説明する。
【実施例１】
【００１５】
図１は、本発明の制御装置を適用可能な印刷装置、特に複合機のコントローラの構成例を示す図である。なお、本実施例では、記憶装置及び記憶装置を制御する制御装置の例としてハードディスク及びハードディスクコントローラをそれぞれ用いて説明する。しかし、本発明は、ハードディスク以外の記憶装置及び該記憶装置を制御する制御装置に適用可能である。
図１において、２００は複合機のコントローラ（以下、単に「メインコントローラ」と呼ぶ）である。メインコントローラ２００において、２０１はＣＰＵ（中央処理演算器）である。ＣＰＵ２０１は、システム制御や演算処理を行う。メモリ制御部２０２は、各種メモリデバイスへの入出力制御やＤＭＡ（ダイレクト・メモリ・アクセス）制御を行う。
【００１６】
ＲＯＭ（リード・オンリー・メモリ）２０３は、不揮発性メモリである。ＲＯＭ２０３は、起動プログラムやフォント等の変更しないデータを格納する。本実施例では、ＲＯＭ２０３にＦｌａｓｈ-ＲＯＭを用い、書き換えも可能とする。ＲＡＭ（ランダム・リード・メモリ）２０４は、ＳＤＲＡＭやＤＤＲに代表される揮発性メモリである。ＲＡＭ２０４は、プログラムの作業領域や印刷データの格納領域等の書き換えが必要な用途に用いられる。
【００１７】
ＬＡＮ-ＩＦ部２０５は、印刷装置に接続されるローカル・エリア・ネットワーク２０６とのインターフェイスを行う。一般的にはＴＣＰ／ＩＰのプロトコルに対応する。なお、メインコントローラ２００は、ネットワークケーブルを介して、外部ＨＯＳＴ２０７などのネットワーク対応機器と接続され、ネットワーク経由でのプリントを行うことができる。
【００１８】
Ｒｅａｄｅｒ-ＩＦ部２０８は、スキャナ装置２０９との通信制御を行う。前記スキャナ装置２０９によってスキャンした画像データを入力することでコピー機能を実現する。ＦＡＸ-ＩＦ部２１０は、ＦＡＸ装置２１１との通信制御を行う。電話回線に接続された前記ＦＡＸ装置２１１に対して、ＦＡＸデータの送受信処理を実行する。
【００１９】
画像処理部２１２は、前記ＬＡＮ-ＩＦ部２０５、Ｒｅａｄｅｒ-ＩＦ部２０８、ＦＡＸ-ＩＦ部２１０を介して取り込んだ画像データに対して、各種画像処理を行う。パネル-ＩＦ部２１３は、パネル装置２１４との通信制御を行う。パネル装置２１４は、パネル上の液晶表示やボタン等を操作して印刷装置の各種設定操作及び状態の確認などを行うＵＩ（ユーザ・インターフェイス）である。
【００２０】
ＨＤＤ-ＩＦ部２１５は、ＨＤＤコントローラ２１６に対するデータの入出力制御を行う。前記ＨＤＤ（ハードディスク）コントローラ２１６には、１又は複数のハードディスク装置２１７が接続され、ＡＴＡ（AT Attachment）規格（Parallel-ATAやSerial-ATAなどがある）でのデータの入出力制御を行う。また、ＨＤＤコントローラ２１６は、複数のハードディスク装置を接続してミラーリング処理などのＲＡＩＤ（Redundant Arrays of Inexpensive）制御を行うことが可能である。ＨＤＤ（ハードディスク装置）２１７は、不揮発性の大容量記憶装置であり、ファイルの保存や印刷データの一時格納場所として使用する。
【００２１】
ビデオ制御部２１８は、印字部２１９とのコマンド／ステータスの通信、メモリ上に生成された印刷データの転送を行う。印字部２１９は、印刷装置本体であり、主に前記ビデオ制御部２１８からのコマンド情報に従い、印刷データを紙に印刷する。システムバス２２０は、制御バス及びデータバスと任意ブロック間のローカルなバス及び信号線を便宜的にまとめて表現したものである。
【００２２】
本発明は、前記ＨＤＤコントローラ２１６に接続されるハードディスク装置２１７内のデータ消去に関係する。なお、本実施例では、図１で説明したメインコントローラ２００の外部にＨＤＤコントローラが別チップ又はボードとして接続される場合を想定して説明を行うが、当然ながら、１チップとしてメインコントローラ２００と一体した構成でも構わない。
【００２３】
図２は、ＨＤＤコントローラ２１６の内部構成を示した図である。
図２において、３０１はＣＰＵ（中央処理演算器）である。ＣＰＵ３０１は、システム制御、ＲＡＩＤ制御、演算処理及びＡＴＡ規格のコマンド処理などを行う。
メモリ制御部３０２は、各種メモリデバイスへの入出力制御やＤＭＡ（ダイレクト・メモリ・アクセス）制御を行う。ＲＯＭ（リード・オンリー・メモリ）３０３は、不揮発性メモリである。起動プログラムや各種モード設定値等の頻繁に変更しないデータを格納する。本実施例では、ＲＯＭ３０３にＦｌａｓｈ-ＲＯＭを用い、書き換えも可能とする。
【００２４】
ＲＡＭ（ランダム・リード・メモリ）３０４は、ＳＲＡＭやＤＤＲに代表される揮発性メモリである。ＲＡＭ３０４は、プログラムの作業領域や一時的なデータの格納領域等の書き換えが必要な用途に用いられる。ＨＤＤ-ＩＦ２１５は、前記メインコントローラに接続されるＨＤＤコントローラ２１６に対する入出力部を表している。
【００２５】
Ｄｅｖｉｃｅ-ＩＦ部３０５は、ＡＴＡ規格のデバイス側コマンド及びデータの入出力制御を行う。Ｄｅｖｉｃｅ-ＩＦ部３０５は、図１に示したメインコントローラ２００のＨＤＤ-ＩＦ部２１５と接続される。
【００２６】
Ｈｏｓｔ-ＩＦ部３０８は、ＡＴＡ規格のホスト側コマンド及びデータの入出力制御を行う。Ｈｏｓｔ-ＩＦ部３０８は、外部のハードディスク装置２１７と接続される。なお、ハードディスク装置２１７は、ＲＡＩＤシステム構築（例えばミラーリング処理用に２個接続など）に必要個数が接続され、前記必要個数分のＨｏｓｔ制御回路が前記Ｈｏｓｔ-ＩＦ部３０８に含まれていてもよい。
【００２７】
割り込み制御部３０６は、各種割り込み信号のマスク及び出力制御を行う。システムバス３０９は、制御バス及びデータバスと任意ブロック間のローカルなバス及び信号線を便宜的にまとめて表現したものである。
【００２８】
以下、図３〜図５を用いて本実施例の上書き消去方法の詳細を説明する。
図３は、上書き消去方法の従来例を示す図である。ここで、上書き消去とは特定のパターンでハードディスク装置内の既存データを重ね書きすることでデータ消去を行う方法である。
【００２９】
図３に示すように、メインコントローラ４０１は、ＡＴＡ制御部４０４により、ＡＴＡバス４０７を介してハードディスク装置（ＨＤＤ）４０６と接続されている。
前記ＨＤＤ４０６の所定の領域（領域Ａ４０８、領域Ｂ４０９）を上書き消去したい場合には、まずシステムメモリ４０２上に連続領域４０５を確保して、前記領域に対して上書きしたいデータパターン（図３では"０"データ）の書き込みを行う。そして、前記メモリ上の準備完了後、図示しないメモリ制御部のＤＭＡＣ（ダイレクト・メモリ・アクセス・コントローラ）及びＡＴＡ制御部４０４に所望の設定を行い、起動をかける。これに応じて、ＤＭＡＣ及びＡＴＡ制御部４０４が、ＤＭＡ転送（ｒｅａｄ-ＤＭＡ）によってメモリ上の領域４０５のデータを、消去したいＨＤＤ４０６内領域Ａ４０８の同じサイズの範囲をライト処理する事で上書き消去を実行する。例えば、メモリ上の領域４０５のデータを、領域Ａ４０８の先頭の矩形領域分をライト処理（ＡＴＡ規格としては、ＤＭＡ-ｏｕｔ転送プロトコルのコマンドを発行）する事で上書き消去を実行する。
【００３０】
なお、所望の回数分だけ上書き消去を行いたい場合には、上記手順をその回数分だけ繰り返す必要がある。また、上書き消去したいＨＤＤ４０６上の領域（領域Ａ４０８、領域Ｂ４０９）は、ファイルシステムの管理情報に基づいてファイル単位（クラスタ単位）で、ファイルの一部又は全部を指定する。
【００３１】
上記メインコントローラのＣＰＵを用いて上書き消去を行う従来方法では、システムメモリ上に大きな連続領域を確保する事が難しい。このため、ハードディスク装置内の大きな領域（近年、高画質化・カラー化に伴い印刷データサイズは巨大化している）を消去するためには細かく分けて何度も繰り返し消去する必要がある。また、ＡＴＡ規格の転送では、通常連続したコマンド発行ができないため、シーケンシャルにしか処理ができない。これらの理由から、上記従来の方法は、システム制御用のメインＣＰＵへの負荷が重く、非効率的な処理方法であった。
【００３２】
図４は、本発明での上書き消去方法を示す構成図である。
図４に示すように、メインコントローラ５０１（図１では２００）とハードディスク装置ＨＤＤ５０３（図１では２１７）との間にＨＤＤコントローラ５０２（図１では２１６）がそれぞれＡＴＡバス５０４、５０５（又はケーブル）によって接続されている。なお、本実施例では、メインコントローラ５０１の外部に、ＨＤＤコントローラ５０２が存在する構成で説明するが、ＨＤＤコントローラ５０２は、前記メインコントローラ上（ボード及びチップ）に在っても構わない。
【００３３】
メインコントローラ５０１のシステム制御を行うＣＰＵ（図１では２０１）は、ファイルシステムの管理情報を取得して、ＨＤＤ５０３内の消去範囲（領域Ａ５０６、領域Ｂ５０７など）をセクタ単位で算出する。領域が離散している場合には、メインコントローラ５０１のシステム制御を行うＣＰＵは、その領域個数と各先頭セクタアドレス及び上書き消去サイズ（セクタ数）を求める。さらに、メインコントローラ５０１のシステム制御を行うＣＰＵは、予め定義された上書きデータパターン番号及び上書き回数を含む上書き消去要求データを生成する。ここで、前記上書き消去要求データの具体例を図５に示す。
【００３４】
図５は、本発明での上書き消去方法における上書き消去要求データの具体例を示す図である。
図５に示すように、上書き消去要求データ６０１は、先頭から上書き消去条件６０２と、消去領域及びサイズを指定する消去領域・サイズ指定６０３で構成される。
【００３５】
さらに詳細項目として、上書き消去条件６０２は、ＨＤＤ選択情報６０２１、重ね書き回数６０２２、消去パターン指定６０２３、リトライの有無及び回数６０２４、ベリファイの有無及び回数６０２５、消去領域個数Ｎ６０２６から構成される。なお、ＨＤＤ選択情報６０２１は、複数あるハードディスク装置のどれを上書き消去処理の対象にするのかを選択するものであり、１個以上全てを選択可能である。リトライの有無及び回数６０２４は、ハードディスク装置へのアクセスで何らかのエラーが発生した場合の再処理（リトライ）の回数を示す。ベリファイの有無及び回数６０２５は、上書き消去パターンと実際にハードディスク装置へ書き込んだ値が一致するかを比較検証する処理（ベリファイ）の回数を示す。
【００３６】
また、消去領域・サイズ指定６０３では、消去領域個数Ｎ６０２６で示される組数分の消去領域６０３１〜６０３Ｎが記載される。また、消去領域６０３１〜６０３Ｎは、開始セクタ先頭アドレス６０３０１と、その消去セクタ数６０３０２が記載される。
【００３７】
以下、図４に戻り、消去コマンドについて説明する。
本実施例では、ＨＤＤコントローラ５０２へ上書き消去要求を行う消去コマンドをＡＴＡ規格に基づいた拡張コマンドとして予め定義しておく。例えば、ＡＴＡ規格で定義されているベンダーユニークコマンドとユーザ定義のサブコマンドとを組み合わせた一連の消去コマンド群を定義しておく。これら一連の消去コマンド群をＮｏｎ-Ｄａｔａ転送又はＰＩＯ転送プロトコルに従う拡張コマンドとして、メインコントローラ５０１とＨＤＤコントローラ５０２との間で約束しておく事がＡＴＡ規格上可能である。従って、本実施例では、ＡＴＡ規格のバス（又はケーブル）以外に独自に拡張したバスを特に使用する必然性はない。なお、前述したように、ＨＤＤコントローラ５０２をメインコントローラ５０１上に一構成要素として取り込む場合には、特にＡＴＡ規格に従う必要性はなく独自なバス仕様であってもよい。
【００３８】
以下、上書き消去処理に対する一連の処理の流れを説明する。
まず、メインコントローラ５０１は、前記消去コマンド群の幾つかに対して、前記上書き消去要求データを属性データとして付加する形（ＡＴＡ規格上はＰＩＯ転送プロトコル）で、消去要求をＨＤＤコントローラ５０２へ発行する。
【００３９】
コマンドを受信したＨＤＤコントローラ５０２は、まず、この受信コマンドが、前記拡張コマンドであるのか、標準コマンド（ＡＴＡ規格に定義された通常のコマンド）であるのかの判定を行う。そして、受信コマンドが標準コマンドであると判定した場合には、ＨＤＤコントローラ５０２は、そのまま受信コマンドをＨＤＤ５０３へ発行して、通常アクセスの処理を実行する。一方、受信コマンドが拡張コマンドであると判定した場合には、ＨＤＤコントローラ５０２は、受信コマンドのＨＤＤ５０３へ発行を遮断して、所定の処理を実行する。以下、この処理について説明する。
【００４０】
ＨＤＤコントローラ５０２は、前記拡張コマンドが、上書き消去要求の消去コマンドであった場合には、付加された前記属性データ（図５の上書き消去要求データ）の解析を行う。そして、ＨＤＤコントローラ５０２は、前記消去領域６０３１〜６０３Ｎ個の開始セクタ先頭アドレス６０３０１から消去セクタ数６０３０２を、重ね書きする。この際、ＨＤＤコントローラ５０２は、消去パターン指定６０２３で指定されたパターンを用い、重ね書き回数６０２２で指定された回数分だけＷｒｉｔｅコマンド（ＡＴＡ規格のＤＭＡ-ｏｕｔ転送プロトコルに従うＤＭＡコマンド）をＨＤＤ５０３へ発行する。これにより、ハードディスク装置５０３内の領域Ａ５０６及び領域Ｂ５０７をセクタ単位で上書き（重ね書き）消去することができる。
【００４１】
なお、コマンドをメインコントローラ５０１は、上書き消去ステータス要求のコマンドをメインコントローラ５０１から発行することで、前記上書き消去処理の途中及び最終結果を、任意のタイミングで取得する事が可能である。
【００４２】
このように、本実施例の上書き消去処理は、メインコントローラ５０１のＣＰＵが、所定の属性データを生成して、基本的に１回の消去コマンドによる要求をＨＤＤコントローラ５０２に行うだけでよい。このように、本実施例では、メインコントローラ上のメモリ領域に連続した領域を確保して繰り返しＨＤＤにアクセスする必要がないため、システム全体としての処理効率を向上させる事ができる。
【００４３】
また、本発明では、ハードディスクコントローラが直接的にファイル管理情報の解析及び書き換えを行うことはせず、消去要求コマンド及びそれに付加される属性データの構成を採る。なお、前記属性データに上書き消去すべき領域の先頭セクタアドレス、消去セクタサイズ及びその他の消去条件が記載される。本発明では、ハードディスク装置に保存されるデータをファイル（又は、クラスタ単位）として扱うのではなく、セクタ単位で取り扱う。これにより、ハードディスクコントローラの処理を単純化し、広い範囲のシステム形態に対応可能にしている。
【００４４】
図６は、ミラーリング（ＲＡＩＤ１：Redundant Arrays of Inexpensive 1）システムの構築例を示す図である。なお、ミラーリングとは、マスターとなるハードディスク装置への書き込みデータを同時に複数台の他のハードディスク装置へも書き込みを行う事でバックアップを作成して障害発生時に備える方法である。
【００４５】
以下、図６を用いてミラーリングシステムの本発明への適用例を説明する。なお、図６の適用例は、ハードディスク装置を２個用いる例であるが、本発明は２個以上の任意個数のハードディスク装置を有するシステムへ適応可能である。
【００４６】
図６（ａ）において、ＡＴＡ規格のＨｏｓｔ-ＩＦを搭載するメインコントローラ１０１（図１では２００）は、ＡＴＡバス１０５を介してＨＤＤコントローラ１０２（図１では２１６）と接続されている。
【００４７】
ＨＤＤコントローラ１０２は、メインコントローラ１０１と接続するためのＤｅｖｉｃｅ-ＩＦを１つと、ハードディスク装置ＨＤＤ１（１０３）及びＨＤＤ２（１０４）（図１では２１７）とを接続するＨｏｓｔ-ＩＦを２つ搭載している。ＨＤＤ１（１０３）は、ＡＴＡバス１０６を介してＨＤＤコントローラ１０２と接続されている。また、ＨＤＤ２（１０４）は、ＡＴＡバス１０７を介してＨＤＤコントローラ１０２と接続されている。なお、ＨＤＤコントローラ１０２は、前述のミラーリング機能、及び、前述の図４，図５に示した上書き消去機能を有する。
【００４８】
ここで、前述した上書き消去要求コマンドとして、「ＣＬＲ１」及び「ＣＬＲ２」の２種類を定義する。ＣＬＲ１は、ハードディスク装置を破棄する場合に消去実行するコマンドである。ＣＬＲ２は、印刷ジョブ単位でその印刷に用いた作業領域も含む全てのデータの消去を実行するコマンドである。
【００４９】
ＣＬＲ１及びＣＬＲ２に付随する属性データは、図５に示した上書き消去要求データ６０１と同等である。ＣＬＲ１とＣＬＲ１の相違点は、メインコントローラ１０１へのレスポンスタイミングにある。ＣＬＲ１コマンドは、上書き消去要求を受付完了後直ちにレスポンスを返し、再び次のコマンド受付可能なレディ状態になる。一方、ＣＬＲ２コマンドは、その処理も含めて完了するまでレスポンスを返さないため、この間は次のコマンドを受け付けることができない。この事は、ＣＬＲ２コマンドが、他の標準コマンドと同等の扱いであることを意味している。
【００５０】
次に、ＣＬＲ１コマンド及びＣＬＲ２コマンドを用いて、破棄時及び印刷ジョブ単位での上書き消去コマンドの利用形態について説明する。
図６（ａ）では、ミラーリング処理時にＨＤＤ２（１０４）に何らかの異常が生じた場合の交換時を想定している。ハードディスク装置に異常が発生したからと言って、一概にアクセス不能状態になる場合のみとは限らない。一部セクタの破損、異音、ＳＭＡＲＴ情報による事前警告などによってアクセスは可能であるがハードディスク装置を交換するケースは多数存在する。このような異常ケースの場合には、例えば、担当営業技術者が交換して持ち帰る前に、ユーザ領域を消去する事が、セキュリティ性の向上のためにも顧客にとっては望ましい。
【００５１】
以下、図６（ａ），図６（ｂ）を用いて、ＨＤＤ２（１０４）を交換前に破棄時の上書き消去を実行する例について説明する。
図６（ａ）では、メインコントローラ１０１は、破棄するＨＤＤ２（１０４）を選択して、ＨＤＤコントローラ１０２に対して、ＣＬＲ１コマンドを発行する。ＣＬＲ１コマンドを受信したＨＤＤコントローラは、属性データの内容確認後、直ちにメインコントローラ１０１に対してレスポンスを返答する。
【００５２】
続いて、ＨＤＤコントローラ１０２は、ＣＬＲ１コマンドに添付される属性データの内容（ＨＤＤ選択情報６０２１）に基づき、対象ハードディスクを選択する。この場合、ＨＤＤ２（１０４）を、対象ハードディスクとして選択する。そして、ＨＤＤコントローラ１０２は、対象ハードディスクの指定セクタの先頭アドレスから指定セクタ数の領域を指定データパターン及び指定回数分の上書き消去処理を実行する。なお、図６（ａ）中のＷｒｉｔｅ（ＣＬＲ１）の表記は、ＣＬＲ１コマンド処理用に発行されるＷｒｉｔｅコマンド（ＡＴＡ規格のＤＭＡ-ｏｕｔ転送プロトコルであるＤＭＡコマンド）を意味する。
【００５３】
図６（ｂ）では、ＨＤＤ２（１１１）の上書き消去処理中（Ｗｒｉｔｅ（ＣＬＲ１））に、メインコントローラ１０１から他のコマンド（ＣＬＲ２又は標準コマンド）が発行された場合を示している。
【００５４】
ＨＤＤコントローラ１０２は、前記ＣＬＲ１の処理実行中に、他のコマンドを受け付けた場合、該受信したコマンドが前記ＣＬＲ１の処理実行中のＨＤＤ２（１１１）に対するものでなければ、該受信した他のコマンドに対する処理を実行する。この際、前記他のコマンドは、前記ＣＬＲ１処理と並行して処理される。なお、前記ＣＬＲ１処理を所定の区切りで一時中断して途中経過をＲＯＭ３０３に保持した後に、前記他のコマンドを優先的に処理するようにＨＤＤコントローラ１０２が制御する構成でもよい。なお、前記優先された他のコマンドの処理後は、一時中断していた前記ＣＬＲ１処理を自動的に再開するように、ＨＤＤコントローラ１０２が制御する。
【００５５】
一方、前記ＣＬＲ１の処理実行中に、前記ＣＬＲ１の処理実行中のＨＤＤ２（１１１）に対する他のコマンドを受け付けた場合、ＨＤＤコントローラ１０２は以下のように制御する。ＨＤＤコントローラ１０２は、少なくとも前記ＣＬＲ１処理が終了するまでは前記受信した他のコマンドを保持する、若しくは、前記ＣＬＲ１処理の途中経過をＲＯＭ３０３に保持して前記受信したコマンドを優先的に処理する。
【００５６】
なお、上記他のコマンドとして前記ＣＬＲ２（印刷ジョブ単位での上書き消去）コマンドも発行できる。ここで、前記ＣＬＲ１処理を実行中の破棄対象のＨＤＤ２（１１１）に対して、選択的に前記ＣＬＲ２コマンドが発行された場合には、無意味な行為として、所定のエラー処理を行ってもよい。また、前記ＣＬＲ２以外のコマンドが、前記ＣＬＲ１処理を実行中の破棄対象のＨＤＤ２（１１１）に対して選択的に発行された場合も、無意味な行為として、所定のエラー処理を行ってもよい。
【００５７】
前記ＣＬＲ１処理完了後は、ＨＤＤコントローラ１０２の内部ステータスを終了状態に変更する。前記内部ステータスを、図４で説明した前記上書き消去ステータス要求コマンドによって、メインコントローラ１０１は処理の完了を知る事が可能である。当然ながら前記ＣＬＲ１処理の完了通知をメインコントローラ１０１に対して割り込み信号で行っても構わない。
【００５８】
前述してきたように、本実施例によれば、障害発生のハードディスク装置の上書き消去処理を実行しながら、正常なハードディスク装置へは通常アクセス可能である。このため、ユーザに対するダウンタイムを除外した効率的で且つセキュリティ性を向上したミラーリングシステムを構築することが可能である。
【００５９】
次に、図７を参照して、上書き消去設定画面について説明する。
図７は、破棄時（ＣＬＲ１コマンド使用時）及び印刷ジョブ単位での消去時（ＣＬＲ２コマンド使用時）の設定又は表示画面例を示す図である。
図７（ａ）の画面７０１は、破棄時の上書き消去（ＣＬＲ１）設定画面を示す。この画面７０１は、ユーザがパネル装置２１４上の液晶表示やボタン等を操作して、破棄時の上書き消去（ＣＬＲ１）の設定指示を行うことにより、ＣＰＵ２０１がパネル装置２１４の表示部に表示する画面である。以下、設定項目例を上から順に説明する。
【００６０】
"対象ＨＤＤ（ハードディスク装置）の選択"７０２では、破棄対象のＨＤＤを最低１台〜全台（図では、２台）を選択する。"上書きデータパターンの設定"７０３では、固定値やランダム値の選択を行う。当然ながら、それらの組み合わせを項目としてもよい。例えば、（固定値：０ｘ００、ランダム値）を項目として、１回目は０ｘ００データで消去を行い、２回目はランダム値で消去を行うなど。
【００６１】
"上書き回数指定"７０４では、前記指定した上書きデータパターンによる上書き消去処理の繰り返し回数を指定する。"消去範囲指定"７０５では、全て又は一部など予め定義されている領域の指定を行う。また、消去範囲指定として、直接的に先頭セクタアアドレスと消去サイズを入力する構成であってもよい。
【００６２】
"リトライの有無及回数指定"７０６では、エラー発生時の再試行の有無と実行回数を指定する。"ベリファイの有無及び回数指定"７０７では、上書きしたデータパターンとの照合を実施するかの有無と回数を指定する。なお、前記"対象ＨＤＤの選択"７０２を除く他の項目は、予め決められたフローで処理を行う場合には特に入力する必要はない。
【００６３】
最後に開始ボタン７０８を押下する事で、選択したＨＤＤに対して上書き消去処理が開始される。
図７（ｂ）の画面７０９は、破棄時の上書き消去（ＣＬＲ１）の進行状況の確認及び制御画面である。この画面７０９は、ユーザがパネル装置２１４上の液晶表示やボタン等を操作して、破棄時の上書き消去（ＣＬＲ１）の進行状況確認指示を行うことにより、ＣＰＵ２０１がパネル装置２１４の表示部に表示する画面である。以下、表示項目例を上から順に説明する。
【００６４】
"バー表示"７１０は、前記上書き消去ステータス要求コマンドに対するステータス情報から進行状況を取得し、表示したものである。また、画面７０９の"一時停止ボタン"７１１を押下する事で前記消去処理を一時停止でき、"再開ボタン"７１２を押下する事で処理の再開が可能である。さらに、"中止ボタン"７１３を押下する事で、前記消去処理を中止（止める）事が可能である。ここでは図示しないが前記一時停止ボタン７１１、再開ボタン７１２及び中止ボタン７１３の各押下時に、それぞれの処理に対応する消去コマンドが前記ＨＤＤコントローラ５０２に対して発行される。
【００６５】
図７（ｃ）の画面７１４は、前記印刷ジョブ単位での上書き消去（ＣＬＲ２）設定画面である。この画面７１４は、ユーザがパネル装置２１４上の液晶表示やボタン等を操作して、印刷ジョブ単位での上書き消去の設定指示を行うことにより、ＣＰＵ２０１がパネル装置２１４の表示部に表示する画面である。以下、設定項目例を上から順に説明する。
【００６６】
"印刷単位の上書き消去を有効"７１５では、印刷ジョブ単位での上書き消去を実施するかどうかを指定する。"上書きデータパターンの指定"７１６及び"上書き回数指定"７１７等の項目は、前記破棄時の上書き消去設定画面で説明した内容と同等であるので省略する。また、"印刷単位の上書き消去を有効"７１５を除く他の項目は、予め決められたフローで処理を行う場合には特に入力する必要はない。
【００６７】
なお、印刷ジョブ単位での上書き消去（ＣＬＲ２）での対象ＨＤＤは、印刷ジョブで用いられるＨＤＤに対応する。即ち、印刷ジョブにおいて、いずれか１つのＨＤＤ（例えば、プライマリＨＤＤ）のみを用いる場合には、そのＨＤＤのみが対象ＨＤＤとなる。また、印刷ジョブにおいて、全て又はいずれか複数のＨＤＤが用いられるのであれば、それらのＨＤＤ（全て又はいずれか複数のＨＤＤ）が対象ＨＤＤとなる。
【００６８】
以下に、前記ハードディスク装置の破棄時の上書き消去（ＣＬＲ１）、及び、印刷ジョブ単位での上書き消去（ＣＬＲ２）の処理について、メインコントローラ側での処理フローについて説明する。
【００６９】
図８は、ＣＬＲ１処理時のメインコントローラ２００での処理を示すフローチャートである。このフローチャートの処理は、図１に示したメインコントローラ２００においてＲＯＭ２０３に記録されたプログラムをＣＰＵ２０１が読み出して実行することにより実現される機能の１つである。
【００７０】
パネル装置２１４から入力される、破棄時の上書き消去指示を受けると、メインコントローラ２００のＣＰＵ２０１は、本フローチャートの処理を開始する。まず、ＣＰＵ２０１は、ＨＤＤ（ハードディスク装置）ステータスの取得を行い、搭載されているＨＤＤの個数及び予め定義された消去領域情報等を所定の場所に記憶しておく（Ｓ８０１）。なお、このＳ８０１の処理は、上述のように、ユーザが破棄時の上書き消去指示を行った際に実行してもよいし、電源投入時等に予め実行しておいてもよい。
【００７１】
次に、メインコントローラ２００のＣＰＵ２０１は、破棄時の上書き消去設定画面７０１を、パネル装置２１４の表示部に表示し、ユーザからの設定入力を受け付ける（Ｓ８０２）。
【００７２】
そして、ユーザが消去開始ボタン７０８を押下したことを検知すると（Ｓ８０３）、メインコントローラ２００のＣＰＵ２０１は、画面７０１で設定された値と上記Ｓ８０１で記憶された情報から上書き消去要求データ６０１（図５）を作成する。さらに、ＣＰＵ２０１は、ＣＬＲ１コマンド及び属性データとしての上書き消去要求データ６０１を、ＨＤＤコントローラ２１６に送信する。
【００７３】
このＣＬＲ１コマンドを受信したＨＤＤコントローラ２１６は、メインコントローラ２００に対して応答を返し、前記ＣＬＲ１コマンドに付加された前記上書き消去要求データから上書き消去条件を判断する。さらに、ＨＤＤコントローラ２１６は、指定のＨＤＤに対してＣＬＲ１処理をバックグラウンドにて実行する。
【００７４】
一方、上記Ｓ８０３にてＣＬＲ１コマンドをＨＤＤコントローラ２１６に送信したメインコントローラ２００のＣＰＵ２０１は、ＨＤＤコントローラ２１６からの応答待ち状態となる。なお、この応答待ち状態の期間は、ＨＤＤコントローラ２１６に対するステータスのポーリング処理又は割り込み待ちのどちらでも構わない。
【００７５】
メインコントローラ２００のＣＰＵ２０１は、ＨＤＤコントローラ２１６からの応答を受信するまで待機し（Ｓ８０４）、応答を受信すると、ステップＳ８０５に処理を進める。なお、これ以降、メインコントローラ２００のＣＰＵ２０１は、次のコマンドをＨＤＤコントローラ２１６に送信可能となる。
【００７６】
次に、ステップＳ８０５では、メインコントローラ２００のＣＰＵ２０１は、ＨＤＤコントローラ２１６から消去ステータス（結果）を取得し（Ｓ８０５）、該取得した消去ステータスを判定する（Ｓ８０６）。
【００７７】
そして、上記Ｓ８０６において、消去処理が未完了であると判定した場合には、メインコントローラ２００のＣＰＵ２０１は、所定期間経過後、ステップＳ８０５に処理を戻し、再度、消去ステータスを取得するように制御する。
【００７８】
また、上記Ｓ８０６において、消去処理が成功したと判定した場合には、メインコントローラ２００のＣＰＵ２０１は、本フローチャートの処理を終了する。なお、消去処理が成功した旨のメッセージをパネル装置２１４に表示してもよい。
【００７９】
また、上記Ｓ８０６において、消去処理が失敗したと判定した場合には、メインコントローラ２００ＣＰＵ２０１は、物理的な破壊などの他の方法でＨＤＤ内部データの抹消をすすめる旨の警告メッセージをパネル装置２１４に表示する（Ｓ８０７）。そして本フローチャートの処理を終了する。
【００８０】
図９は、ＣＬＲ２処理時のメインコントローラ２００での処理を示すフローチャートである。このフローチャートの処理は、図１に示したメインコントローラ２００においてＲＯＭ２０３に記録されたプログラムをＣＰＵ２０１が読み出して実行することにより実現される機能の１つである。
【００８１】
図６に示したセキュリティ設定画面７１４で、印刷ジョブ単位での上書き消去処理が有効である場合には、メインコントローラ２００のＣＰＵ２０１は、印刷ジョブの実行単位で（印刷ジョブの実行直後に）、本フローチャートの処理を開始する。
【００８２】
まず、ＣＰＵ２０１は、現実行中の印刷ジョブの印刷ステータスを取得する（Ｓ９０１）。印刷ステータスとは、その印刷ジョブで使用されるＨＤＤ内の作業領域（印刷データも含む）などのステータス情報である。また、前記作業領域は、ファイル管理情報から取得するか、予め決められた固定領域であってもよい。
【００８３】
次に、ＣＰＵ２０１は、セキュリティ設定画面７１４（図６）で設定されＲＯＭ２０３に格納された上書き消去条件と上記Ｓ９０１で取得した印刷ステータス情報から上書き消去要求データ６０１（図５）を生成する（Ｓ９０２）。
【００８４】
次に、メインコントローラ２００のＣＰＵ２０１は、上記の現実行中の印刷ジョブの印刷完了待ち状態となる。メインコントローラ２００のＣＰＵ２０１は、上記の現実行中の印刷処理完了を確認するまで待機し、印刷完了を確認すると、ステップＳ９０４に処理を進める。
【００８５】
ステップＳ９０４では、ＣＰＵ２０１は、ＣＬＲ２コマンド及びＳ９０２で生成した上書き消去要求データ６０１（図５）を、ＨＤＤコントローラ２１６に送信する。なお、印刷処理完了後でないと作業領域を特定できないシステムの場合には、上記Ｓ９０２の上書き消去要求データの生成を印刷処理完了後に行っても構わない。
【００８６】
上記ＣＬＲ２コマンドを受信したＨＤＤコントローラ２１６は、前記ＣＬＲ２コマンドに付加された前記上書き消去要求データから上書き消去条件を判断して、指定のＨＤＤに対してＣＬＲ２処理を実行する。そして、該ＣＬＲ２処理を完了すると、ＨＤＤコントローラ２１６は、メインコントローラ２００に対して応答を返す。
【００８７】
一方、上記Ｓ９０４にてＣＬＲ２コマンドをＨＤＤコントローラ２１６に送信したメインコントローラ２００のＣＰＵ２０１は、ＨＤＤコントローラ２１６からの応答待ち状態となる。なお、この応答待ち状態の期間は、ＨＤＤコントローラ２１６に対するステータスのポーリング処理又は割り込み待ちのどちらでも構わない。
【００８８】
メインコントローラ２００のＣＰＵ２０１は、ＨＤＤコントローラ２１６からの応答を受信するまで待機し（Ｓ９０５）、応答を受信すると、ステップＳ９０６に処理を進める。なお、これ以降、メインコントローラ２００のＣＰＵ２０１は、次のコマンドをＨＤＤコントローラ２１６に送信可能となる。
【００８９】
次に、ステップＳ９０６では、メインコントローラ２００のＣＰＵ２０１は、ＨＤＤコントローラ２１６から消去ステータス（結果）を取得し（Ｓ９０６）、該取得した消去ステータスを判定する（Ｓ９０７）。
【００９０】
そして、上記Ｓ９０７において、消去処理が成功したと判定した場合には、メインコントローラ２００のＣＰＵ２０１は、本フローチャートの処理を終了する。なお、消去処理が成功した旨のメッセージをパネル装置２１４に表示してもよい。
【００９１】
一方、上記Ｓ９０７において、消去処理が失敗したと判定した場合には、メインコントローラ２００ＣＰＵ２０１は、消去処理が失敗した旨のメッセージをパネル装置２１４に表示し、所定のエラーハンドリングを実行する（Ｓ９０８）。そして本フローチャートの処理を終了する。
【００９２】
次に、ＨＤＤコントローラ２１６内部での処理フローについて説明する。
図１０は、メインコントローラ２００からの標準コマンド、前記ＣＬＲ１コマンド、又は前記ＣＬＲ２コマンドを受信したＨＤＤコントローラ２１６の内部処理を示すフローチャートである。このフローチャートの処理は、図２に示したＨＤＤコントローラ２１６においてＲＯＭ３０３に記録されたプログラムをＣＰＵ３０１が読み出して実行することにより実現される機能の１つである。
【００９３】
ＨＤＤコントローラ２１６のＣＰＵ３０１は、メインコントローラ２００からのコマンドを受信すると（Ｓ１００１）、ステップＳ１００２に処理を進める。
ステップＳ１００２では、ＨＤＤコントローラ２１６のＣＰＵ３０１は、上記Ｓ１００１で受信したコマンドがＡＴＡ規格に定義された標準コマンド、又は前記消去コマンド等の拡張コマンドなのかを判定する。なお、ここでは、拡張コマンドを、ＣＬＲ１及びＣＬＲ２に限定して説明する。
【００９４】
そして、上記Ｓ１００２において、上記受信したコマンドが標準コマンドであると判定した場合には、ＨＤＤコントローラ２１６のＣＰＵ３０１は、ステップＳ１００３に処理を進める。
【００９５】
ステップＳ１００３では、ＨＤＤコントローラ２１６のＣＰＵ３０１は、通常処理を実行し（Ｓ１００３）、処理完了後に、Ｈｏｓｔ（メインコントローラ２００）への応答を返し（Ｓ１００４）、本フローチャートの処理を終了する。
【００９６】
一方、上記Ｓ１００２において、上記受信したコマンドが標準コマンドでないと判定した場合には、ＨＤＤコントローラ２１６のＣＰＵ３０１は、ステップＳ１００５に処理を進める。
【００９７】
ステップＳ１００５では、ＨＤＤコントローラ２１６のＣＰＵ３０１は、上記Ｓ１００１で受信したコマンドがＣＬＲ１コマンドか否かを判定する。
そして、上記Ｓ１００５において、上記受信したコマンドがＣＬＲ１コマンドであると判定した場合には、ＨＤＤコントローラ２１６のＣＰＵ３０１は、ステップＳ１００６に処理を進める。
【００９８】
ステップＳ１００６では、ＨＤＤコントローラ２１６のＣＰＵ３０１は、直ぐにＨｏｓｔ（メインコントローラ２００）に対して応答を返し（Ｓ１００６）、バックグラウンドにて指定条件での上書き消去処理を実行する（Ｓ１００７）。
【００９９】
一方、上記Ｓ１００５において、上記受信したコマンドがＣＬＲ１コマンドでないと判定した場合には、ＨＤＤコントローラ２１６のＣＰＵ３０１は、ステップＳ１００８に処理を進める。
【０１００】
ステップＳ１００８では、ＨＤＤコントローラ２１６のＣＰＵ３０１は、上記Ｓ１００１で受信したコマンドがＣＬＲ２コマンドか否かを判定する。
そして、上記Ｓ１００８において、上記受信したコマンドがＣＬＲ２コマンドであると判定した場合には、ＨＤＤコントローラ２１６のＣＰＵ３０１は、ステップＳ１００９に処理を進める。
【０１０１】
ステップＳ１００９では、ＨＤＤコントローラ２１６のＣＰＵ３０１は、指定条件での上書き消去処理を実行し（Ｓ１００９）、該処理完了後に、Ｈｏｓｔ（メインコントローラ２００）への応答を返す（Ｓ１０１０）。そして、本フローチャートの処理を終了する。
【０１０２】
一方、上記Ｓ１００８において、上記受信したコマンドがＣＬＲ２コマンドでないと判定した場合には、ＨＤＤコントローラ２１６のＣＰＵ３０１は、ステップＳ１０１１に処理を進める。
【０１０３】
ステップＳ１０１１では、ＨＤＤコントローラ２１６のＣＰＵ３０１は、その他の処理（上記受信したコマンドに応じた処理）を実行し、本フローチャートの処理を終了する。
【０１０４】
なお、図１０では省略しているが、ＨＤＤコントローラ２１６のＣＰＵ３０１は、Ｈｏｓｔへの応答を返した後は、受信コマンド待機状態となり、Ｈｏｓｔから新たなコマンドを受信可能となる。
【０１０５】
また、図１０に示した処理では、標準コマンドの処理とＣＬＲ２コマンド（印刷ジョブ単位での消去処理）を比較すると同一の扱いである事がわかる。また、ＣＬＲ１コマンド受信後は、直ぐにＨｏｓｔへのレスポンスを返す事で、Ｈｏｓｔは次のコマンド発行可能状態となる。なお、本実施例では、前述のように、ＣＬＲ２コマンドを、標準コマンドと同等の形式としたが、全ての上書き消去要求コマンドを、ＣＬＲ１コマンドの形式で構築してもよく、特に限定するものではない。
【０１０６】
以下に、ＣＬＲ１処理中の電源ＯＦＦ時の処理フロー、及び電源ＯＮ時の処理フローについて説明する。
図１１は、上書き消去処理（ＣＬＲ１）中での電源ＯＦＦ時の処理を示すフローチャートである。このフローチャートの処理は、図２に示したＨＤＤコントローラ２１６においてＲＯＭ３０３に記録されたプログラムをＣＰＵ３０１が読み出して実行することにより実現される機能の１つである。ここで、前記拡張コマンドとして電源ＯＦＦ時の準備を促すＳｈｕｔ_Ｄｏｗｎコマンドを定義する。
【０１０７】
ＨＤＤコントローラ２１６のＣＰＵ３０１は、メインコントローラ２００からのコマンドを受信すると（Ｓ１１０１）、ステップＳ１１０２に処理を進める。
ステップＳ１１０２では、ＨＤＤコントローラ２１６のＣＰＵ３０１は、上記Ｓ１１０１で受信したコマンドがＳｈｕｔ_Ｄｏｗｎコマンドであるか否かを判定する。
そして、上記Ｓ１１０２において、上記受信したコマンドがＳｈｕｔ_Ｄｏｗｎコマンドないと判定した場合には、ＨＤＤコントローラ２１６のＣＰＵ３０１は、ステップＳ１１０３に処理を進める。
【０１０８】
ステップＳ１１０３では、ＨＤＤコントローラ２１６のＣＰＵ３０１は、所定の処理（上記受信したコマンドに応じた処理）を実行し、本フローチャートの処理を終了する。
【０１０９】
一方、上記Ｓ１１０２において、上記受信したコマンドがＳｈｕｔ_Ｄｏｗｎコマンドであると判定した場合には、ＨＤＤコントローラ２１６のＣＰＵ３０１は、ステップＳ１１０４に処理を進める。
【０１１０】
ステップＳ１１０４では、ＨＤＤコントローラ２１６のＣＰＵ３０１は、実行中の上書き消去処理（ＣＬＲ１）を一時停止する。なお、ＣＬＲ１処理中でない場合、Ｓ１１０４では、特に処理は行わない。
【０１１１】
次に、ＨＤＤコントローラ２１６のＣＰＵ３０１は、上記上書き消去処理（ＣＬＲ１）を停止するまでのパラメータ情報（停止時点でのセクタアドレス、上書き消去条件等）をＦｌａｓｈメモリ（ＲＯＭ３０３）に保存する（Ｓ１１０５）。なお、ＣＬＲ１処理中でなかった場合、Ｓ１１０５では、ＣＬＲ１処理中でなかった旨の情報をＦｌａｓｈメモリ（ＲＯＭ３０３）に保存する。
【０１１２】
次に、ステップＳ１１０６において、ＨＤＤコントローラ２１６のＣＰＵ３０１は、電源ＯＦＦ準備完了後に、Ｈｏｓｔ（メインコントローラ２００）への応答を返す。そして、本フローチャートの処理を終了する。
【０１１３】
応答を受信したＨｏｓｔ（メインコントローラ２００）のＣＰＵ２０１は、所定の電源ＯＦＦシーケンスを実行した後に電源をＯＦＦにする（Ｓ１１０７）。
なお、電源ＯＦＦシーケンスの一環として、例えば安全にハードディスク装置の電源をＯＦＦするために、Ｓｔａｎｄｂｙコマンド又はＳｌｅｅｐコマンドを発行するなどの処理も含まれる。しかし、ここでは、説明のため、電源ＯＦＦ処理の実行として省略的に示している。即ち、図１１のＳｈｕｔ_Ｄｏｗｎコマンドを、ＨＤＤの電源を遮断するためのコマンド（Ｓｈｕｔ_Ｄｏｗｎ、Ｓｔａｎｄｂｙ、又はＳｌｅｅｐ）に置き換えてもよい。例えば、ＨＤＤコントローラ２１６は、特定のハードディスク装置へ上書き消去処理中に前記特定のＨＤＤの電源を遮断するためのコマンドを受信した場合、前記上書き消去処理の途中経過を示す情報をフラッシュメモリに保持する。また、ＨＤＤコントローラ２１６は、前記特定のハードディスク装置が起動された場合、フラッシュメモリに保持された前記上書きデータの送信の途中経過を示す情報に基づいて、前記上書きデータの送信を再開するように制御する。
【０１１４】
また、ここでは、Ｆｌａｓｈメモリにパラメータ情報を保存した後に、Ｈｏｓｔへの応答を返す例を説明したが、保存に時間が要する場合には、まずＨｏｓｔへの応答を返してからパラメータ情報を保存してもよい。この場合には、Ｈｏｓｔ（メインコントローラ２００）は、ＨＤＤコントローラ２１６に対するステータス情報をポーリングで確認するか、もしくは割り込み待ちをすることになる。
【０１１５】
次に、図１２を用いて、ＣＬＲ処理中に電源ＯＦＦした後、再び電源ＯＮした場合の処理フローを説明する。
図１２は、ＣＬＲ処理中に電源ＯＦＦした後に再び電源ＯＮした場合の処理を示すフローチャートである。このフローチャートの処理は、図２に示したＨＤＤコントローラ２１６においてＲＯＭ３０３に記録されたプログラムをＣＰＵ３０１が読み出して実行することにより実現される機能の１つである。
【０１１６】
電源ＯＮされると（Ｓ１２０１）、ＨＤＤコントローラ２１６のＣＰＵ３０１は、所定の起動シーケンスを実行した後に、電源ＯＦＦ前の状態をＦｌａｓｈメモリ（ＲＯＭ３０３）から取得して、ステータスの確認を行う（Ｓ１２０２）。
【０１１７】
次に、ＨＤＤコントローラ２１６のＣＰＵ３０１は、上記ステータスの確認で、電源ＯＦＦ前にＣＬＲ１処理中であったか否かを判定する（Ｓ１２０３）。
そして、上記Ｓ１２０３において、電源ＯＦＦ前にＣＬＲ１処理中であったと判定した場合には、ＨＤＤコントローラ２１６のＣＰＵ３０１は、ステップＳ１２０４に処理を進める。
【０１１８】
ステップＳ１２０４では、ＨＤＤコントローラ２１６のＣＰＵ３０１は、上記取得したパラメータ情報（停止時点でのセクタアドレス、上書き消去条件）に基づいて、該停止時点でのセクタアドレス以降のＣＬＲ１処理の自動継続処理を実行する。そして、本フローチャートの処理を終了する。
【０１１９】
一方、上記Ｓ１２０３において、電源ＯＦＦ前にＣＬＲ１処理中でなかったと判定した場合には、ＨＤＤコントローラ２１６のＣＰＵ３０１は、そのまま本フローチャートの処理を終了する。
【０１２０】
以上、説明したようにＣＬＲ１処理中であっても、前記所定の電源ＯＦＦ・ＯＮ処理シーケンスを経ることで、処理途中のＣＬＲ１処理を、電源ＯＮ後に再び処理完了するまで継続実行することができる。
【０１２１】
〔他の実施例１〕
上記実施例１では、ＣＬＲ１コマンドはハードディスク装置を破棄する場合の消去を目的とし、前記ＣＬＲ２コマンドは印刷ジョブ単位での消去を目的としていた。また、ＣＬＲ１コマンドは、ハードディスクコントローラの受信後、直ちにメインコントローラに対してレスポンス（受け付け完了応答）を返すのに対して、ＣＬＲ２コマンドは、その処理の完了後にレスポンスを返す定義で説明をしてきた。
ここでは、他の実施例１として、ＣＬＲ２コマンドをＣＬＲ１コマンドと同じ定義とした場合、すなわち、ＨＤＤコントローラ２１６が、受信後、直ちにＨｏｓｔに応答を返して、次のコマンドを受信可能とした場合の制御方法を説明する。
【０１２２】
印刷中の消去処理であるＣＬＲ２処理では、例えば、図６で説明したハードディスク装置２個を使用したミラーリング構成の場合、同じ場所に格納されている印刷データ及び中間データなどがミラーリング処理として同時に上書き消去される。
【０１２３】
図１３を用いて、他の実施例１におけるＣＬＲ２処理に対するハードディスクコントローラ内部での制御フローについて説明する。
図１３は、他の実施例１において、メインコントローラ２００からの標準コマンド、前記ＣＬＲ１コマンド、又は前記ＣＬＲ２コマンドを受信したＨＤＤコントローラ２１６の内部処理を示すフローチャートである。このフローチャートの処理は、図２に示したＨＤＤコントローラ２１６においてＲＯＭ３０３に記録されたプログラムをＣＰＵ３０１が読み出して実行することにより実現される機能の１つである。
【０１２４】
ＨＤＤコントローラ２１６のＣＰＵ３０１は、メインコントローラ２００からのコマンドを受信するまで待機し、コマンドを受信したと判定した場合には（Ｓ１３０１でＹｅｓ）、ステップＳ１３０２に処理を進める。
【０１２５】
ステップＳ１３０２では、ＨＤＤコントローラ２１６のＣＰＵ３０１は、上記Ｓ１３０１で受信したコマンドがＣＬＲ２コマンドか否かを判定する。
そして、上記Ｓ１３０２において、上記受信したコマンドがＣＬＲ２コマンドであると判定した場合には、ＨＤＤコントローラ２１６のＣＰＵ３０１は、ステップＳ１３０３に処理を進める。
【０１２６】
ステップＳ１３０３では、ＨＤＤコントローラ２１６のＣＰＵ３０１は、直ぐにＨｏｓｔ（メインコントローラ２００）に対して応答を返する。そして、ＨＤＤコントローラ２１６のＣＰＵ３０１は、前記受信した属性データから上書き消去条件を解析し、バックグラウンドにて指定条件での上書き消去処理を実行する（Ｓ１３０４）。ここで、図１３では、説明を単純化するためにＣＬＲ２コマンドが多重に発行されないことを前提としている。
【０１２７】
一方、上記Ｓ１３０２において、上記受信したコマンドがＣＬＲ２コマンドでないと判定した場合には、ＨＤＤコントローラ２１６のＣＰＵ３０１は、ステップＳ１３０５に処理を進める。
【０１２８】
ステップＳ１３０５では、ＨＤＤコントローラ２１６のＣＰＵ３０１は、現在、ＣＬＲ２処理中であるか否かを判定する。
そして、上記Ｓ１３０５において、現在、ＣＬＲ２処理中でないと判定した場合には、ＨＤＤコントローラ２１６のＣＰＵ３０１は、ステップＳ１３０６に処理を進める。
ステップＳ１３０６では、ＨＤＤコントローラ２１６のＣＰＵ３０１は、上記Ｓ１３０１で受信コマンドを実行し（Ｓ１３０６）、所定のタイミングでＨｏｓｔへの応答を返し（Ｓ１３０７）、ステップＳ１３０１に処理を戻し、次のコマンドを待機する。
【０１２９】
一方、上記Ｓ１３０５において、現在、ＣＬＲ２処理中であると判定した場合には、ＨＤＤコントローラ２１６のＣＰＵ３０１は、ステップＳ１３０８に処理を進める。
ステップＳ１３０８では、ＨＤＤコントローラ２１６のＣＰＵ３０１は、一端、前記受信コマンドを保持し（Ｓ１３０８）、そのコマンドのアクセス要求領域を算出する（Ｓ１３０９）。
【０１３０】
次に、ＨＤＤコントローラ２１６のＣＰＵ３０１は、前記受信コマンドのアクセス要求領域と現在実行中のＣＬＲ２処理領域とを比較して重複の有無を判定する（Ｓ１３１０）。
そして、上記Ｓ１３１０において、前記受信コマンドのアクセス要求領域と現在実行中のＣＬＲ２処理領域とに重複がないと判定した場合には、ＨＤＤコントローラ２１６のＣＰＵ３０１は、Ｓ１３１１に処理を進める。
【０１３１】
ステップＳ１３１１では、ＨＤＤコントローラ２１６のＣＰＵ３０１は、実行中のＣＬＲ２処理を一時停止（必要なパラメータは保持）し（Ｓ１３１１）、前記受信コマンドを優先的に実行する（Ｓ１３１２）。さらに、該受信コマンドの処理完了後に、ＨＤＤコントローラ２１６のＣＰＵ３０１は、Ｈｏｓｔ（メインコントローラ２００）への応答を返し（Ｓ１３１３）、前記一時停止中のＣＬＲ２処理を再開する（Ｓ１３１４）。そして、ステップＳ１３０１に処理を戻し、次のコマンドを待機する。
【０１３２】
一方、上記Ｓ１３１０において、前記受信コマンドのアクセス要求領域と現在実行中のＣＬＲ２処理領域とに重複があると判定した場合には、ＨＤＤコントローラ２１６のＣＰＵ３０１は、Ｓ１３１５に処理を進める。
【０１３３】
ステップＳ１３１５では、ＨＤＤコントローラ２１６のＣＰＵ３０１は、実行中のＣＬＲ２処理を一時停止（必要なパラメータは保持）し（Ｓ１３１５）、前記受信コマンドを優先的に実行する（Ｓ１３１６）。さらに、該受信コマンドの処理完了後に、ＨＤＤコントローラ２１６のＣＰＵ３０１は、Ｈｏｓｔ（メインコントローラ２００）への応答を返す（Ｓ１３１７）。ここまでの処理は、前記重複なしの場合と同じである。次に、ＨＤＤコントローラ２１６のＣＰＵ３０１は、前記算出した重複した領域を考慮して前記一時停止中のＣＬＲ２処理を再開する（Ｓ１３１８）。そして、ステップＳ１３０１に処理を戻し、次のコマンドを待機する。
【０１３４】
ここで、上記Ｓ１３１８の重複を考慮したＣＬＲ２処理の再開について説明する。ＣＬＲ２処理中の受信コマンドのアクセス範囲が消去範囲に重複した場合、優先して処理するコマンドが特にＷｒｉｔｅ処理である場合には、ＣＬＲ２処理再開時に重複した領域を消去パターンで上書きしないように配慮する必要がある。具体的には、前記算出した重複領域の結果から、残りの消去範囲で重複する箇所はスキップして上書き消去処理を実行するように制御する。一方、優先して処理するコマンドが特にＲｅａｄコマンド処理の場合には、前記重複の有無は考慮する必要はない。
【０１３５】
〔他の実施例２〕
図１４を用いて、他の実施例２におけるＣＬＲ２処理に対するハードディスクコントローラ内部での制御フローについて説明する。
図１４は、他の実施例１において、メインコントローラ２００からの標準コマンド、前記ＣＬＲ１コマンド、又は前記ＣＬＲ２コマンドを受信したＨＤＤコントローラ２１６の内部処理を示すフローチャートである。このフローチャートの処理は、図２に示したＨＤＤコントローラ２１６においてＲＯＭ３０３に記録されたプログラムをＣＰＵ３０１が読み出して実行することにより実現される機能の１つである。
【０１３６】
なお、Ｓ１４０１〜Ｓ１４０４は、既に前記図１３のＳ１３０１〜Ｓ１３０４と同一の処理であるので説明は省略する。
ステップＳ１４０２において、ＨＤＤコントローラ２１６のＣＰＵ３０１が、Ｓ１４０１で受信したコマンドがＣＬＲ２コマンドでないと判定した場合には、ステップＳ１４０５に処理を進める。
【０１３７】
ステップＳ１４０５では、ＨＤＤコントローラ２１６のＣＰＵ３０１は、現在、ＣＬＲ２処理中であるか否かを判定する。
そして、上記Ｓ１４０５において、現在、ＣＬＲ２処理中でないと判定した場合には、ＨＤＤコントローラ２１６のＣＰＵ３０１は、ステップＳ１４０８に処理を進める。ステップＳ１４０８では、ＨＤＤコントローラ２１６のＣＰＵ３０１は、前記保持した受信コマンドを実行し（Ｓ１４０８）、該受信コマンドの処理完了後に、Ｈｏｓｔ（メインコントローラ２００）への応答を返す（Ｓ１４０９）。そして、ステップＳ１４０１に処理を戻し、次のコマンドを待機する。
【０１３８】
一方、上記Ｓ１４０５において、現在、ＣＬＲ２処理中であると判定した場合には、ＨＤＤコントローラ２１６のＣＰＵ３０１は、ステップＳ１４０６に処理を進める。
ステップＳ１４０６では、ＨＤＤコントローラ２１６のＣＰＵ３０１は、前記受信コマンドを一時保持する。なお、受信コマンドがＷｒｉｔｅ処理である場合には、ライトデータも含めて一時保持しなければならない。
【０１３９】
次に、ステップＳ１４０７において、ＨＤＤコントローラ２１６のＣＰＵ３０１は、現在実行中のＣＬＲ２処理が完了するまで待機する。
そして、上記Ｓ１４０７において、現在実行中のＣＬＲ２処理が完了したと判定した場合には（Ｓ１４０７でＹｅｓ）、ＨＤＤコントローラ２１６のＣＰＵ３０１は、ステップＳ１４０８に処理を進め、前記保持した受信コマンドを実行する。さらに、該受信コマンドの処理完了後に、ＨＤＤコントローラ２１６のＣＰＵ３０１は、Ｈｏｓｔ（メインコントローラ２００）への応答を返す（Ｓ１４０９）。そして、ステップＳ１４０１に処理を戻し、次のコマンドを待機する。
【０１４０】
以上、図１３及び図１４を用いて説明したように、ハードディスク装置の破棄時の消去コマンド（ＣＬＲ１）と印刷ジョブ単位での消去コマンド（ＣＬＲ２）とでは、目的を区別するためのコマンドコードが異なるだけで処理内容は同じであっても構わない。即ち、図１３及び図１４で示したＣＬＲ２を、ＣＬＲ１に置き換えてもよい。
【０１４１】
図１３では、上位装置であるメインコントローラ２００から上書き消去処理（ＣＬＲ１又はＣＬＲ２）中に新たなコマンドを受信した場合、ＨＤＤコントローラ２１６が、前記上書き消去処理の途中経過を保持して前記受信コマンドを優先的に処理する構成を説明した。また、図１４では、上位装置であるメインコントローラ２００から上書き消去処理中に新たなコマンドを受信した場合、ＨＤＤコントローラ２１６が、前記上書き消去処理が終了するまでは前記受信コマンドを保持する構成を説明した。しかし、前記上書き消去処理中に受信したコマンドが、前記上書き消去処理の対象ハードディスクに対するコマンドであるか否かで処理を変更するように制御してもよい。
【０１４２】
例えば、前記上書き消去処理中に受信したコマンドが、前記上書き消去処理の対象ハードディスクに対するコマンドである場合、ＨＤＤコントローラ２１６は、図１３又は図１４に示したように制御する。即ち、ＨＤＤコントローラ２１６は、前記上書き消去処理が終了するまでは前記受信コマンドを保持する、若しくは、前記上書き消去処理の途中経過を保持して前記受信コマンドを優先的に処理するように制御する。一方、前記上書き消去処理中に受信したコマンドが、前記上書き消去処理の対象ハードディスクに対するコマンドでない場合、ＨＤＤコントローラ２１６は、前記受信コマンドに対する処理を実行するよう制御する。
【０１４３】
以上示したように、各実施例によれば、上書き消去処理に対するメインコントローラの負荷を最小限に抑え、且つハードディスクコントローラも簡単な構成で構築可能なため、広い範囲のシステム形態に対応可能である。また、上書き消去処理中もハードディスク装置への通常アクセスが可能であり、システム全体として効率的に上書き消去処理を実行することができる。
【０１４４】
また、電源切断及び起動後も自動的に継続処理可能であることからシステム全体として効率的に上書き消去処理を実行することができる。
なお、上述した各種データの構成及びその内容はこれに限定されるものではなく、用途や目的に応じて、様々な構成や内容で構成されることは言うまでもない。
以上、一実施形態について示したが、本発明は、例えば、システム、装置、方法、プログラムもしくは記録媒体等としての実施態様をとることが可能である。具体的には、複数の機器から構成されるシステムに適用しても良いし、また、一つの機器からなる装置に適用しても良い。
また、上記各実施例では、本発明の制御装置の例として、ハードディスクを制御するハードディスクコントローラを用いて説明した。しかし、本発明の制御装置は、ハードディスク以外の記憶装置を制御する制御装置であってもよく、ハードディスクコントローラに限定されるものではない。例えば、フラッシュメモリを制御する制御装置であってもよい。
【０１４５】
以下、本発明に係る情報処理装置で読み取り可能な（コンピュータ読取り可能な）各種データ処理プログラムを格納する記憶媒体（記録媒体）について説明する。
本発明の各工程（上述した各機能）は、ネットワーク又は各種記憶媒体を介して取得したソフトウェア（プログラム）をパーソナルコンピュータ等の処理装置（ＣＰＵ，プロセッサ）にて実行することでも実現できる。
【０１４６】
また、本発明は、システム或いは装置にプログラムを供給することによって達成される場合にも適応できることは言うまでもない。この場合、本発明を達成するためのソフトウェアによって表されるプログラムを格納した記憶媒体を該システム或いは装置に読み出すことによって、そのシステム或いは装置が、本発明の効果を享受することが可能となる。
【０１４７】
本発明は上記実施例に限定されるものではなく、本発明の趣旨に基づき種々の変形（各実施例の有機的な組合せを含む）が可能であり、それらを本発明の範囲から除外するものではない。
本発明の様々な例と実施例を示して説明したが、当業者であれば、本発明の趣旨と範囲は、本明細書内の特定の説明に限定されるのではない。
なお、上述した各実施例及びその変形例を組み合わせた構成も全て本発明に含まれるものである。
【符号の説明】
【０１４８】
２００    メインコントローラ
２１６    ＨＤＤコントローラ
２１７    ハードディスク
【図１】
2010257135.tif 000003
【図２】
2010257135.tif 000004
【図３】
2010257135.tif 000005
【図４】
2010257135.tif 000006
【図５】
2010257135.tif 000007
【図６】
2010257135.tif 000008
【図７】
2010257135.tif 000009
【図８】
2010257135.tif 000010
【図９】
2010257135.tif 000011
【図１０】
2010257135.tif 000012
【図１１】
2010257135.tif 000013
【図１２】
2010257135.tif 000014
【図１３】
2010257135.tif 000015
【図１４】
2010257135.tif 000016