(57)【要約】【課題】ユーザが所望の領域をＨＰＡとして利用することを可能とすることにある。【解決手段】マイコン１０２は、本体装置によって任意に指定可能な位置情報であって、プラッタ１０９におけるデータの読み書き可能な領域を制限する位置情報を受信し、その位置情報に基づいて、プラッタ１０９内のデータの読み書き可能な領域を設定する。【選択図】図１
2007316736.tif 000002
【特許請求の範囲】
【請求項１】
記録媒体に対するデータの読み書きが可能な記録制御装置であって、
外部装置によって任意に指定可能な位置情報であって、前記記録媒体におけるデータの読み書き可能な領域を制限する位置情報を前記外部装置から受信する受信手段と、
前記位置情報に基づいて、前記記録媒体内のデータの読み書き可能な領域を設定する第１の設定手段とを有することを特徴とする記録制御装置。
【請求項２】
前記第１の設定手段によって設定可能な前記記録媒体内のデータの読み書き可能な領域の設定内容を示す複数の設定内容情報を保持する保持手段と、
前記位置情報に応じた設定内容情報を前記複数の設定内容情報から選択する選択手段と、
前記選択手段により選択された設定内容情報を前記外部装置が読み取り可能な状態に設定する第２の設定手段とを更に有することを特徴とする請求項１に記載の記録制御装置。
【請求項３】
前記位置情報に対応する設定内容情報が前記複数の設定内容情報内に存在しない場合、新たに前記位置情報に対応する設定内容情報を生成する生成手段を更に有し、
前記第２の設定手段は、前記生成手段により新たに生成された設定内容情報を前記外部装置が読み取り可能な情報に設定することを特徴とする請求項２に記載の記録制御装置。
【請求項４】
記録媒体に対するデータの読み書きが可能な記録制御装置の制御方法であって、
外部装置によって任意に指定可能な位置情報であって、前記記録媒体におけるデータの読み書き可能な領域を制限する位置情報を前記外部装置から受信する受信ステップと、
前記位置情報に基づいて、前記記録媒体内のデータの読み書き可能な領域を設定する設定ステップとを含むことを特徴とする記録制御装置の制御方法。
【請求項５】
請求項４に記載の記録制御装置の制御方法をコンピュータに実行させるためのプログラム。
【請求項６】
請求項５に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ハードディスク等の記録媒体内にＨＰＡ（Host Protected Area）を設定することが可能な記録制御装置及びその制御方法に関するものである。
【背景技術】
【０００２】
昨今、パーソナルコンピュータ（以下、ＰＣと称す）を始めとして、ハードディスクを備えた情報処理装置が広く使われている。
【０００３】
例えば、一台のＰＣを複数のユーザで共用する場合、そのＰＣの管理者のみが必要とする設定情報等、一般のユーザに不用意に書き換えられたりしたら困る情報がある。こういう場合、ＰＣの管理者は、オペレーティングシステム（以下、ＯＳと称す）やアプリケーションソフトのユーザ認証機能を使い、管理者のみがアクセス可能な領域をハードディスク装置内に設け、その領域に設定情報等を記憶しておく方法が用いられている。また、隠しパーティションと呼ばれるパーティションをハードディスク装置内に設け、ＯＳやアプリケーションソフトから容易にアクセスできないようにする方法も用いられている。隠しパーティションを利用する方法の一つが、特許文献１に開示されている。
【０００４】
一方、ハードディスク装置の標準インタフェースとして知られるＡＴＡインタフェース規格（非特許文献１参照）では、ホスト保護領域（Host Protected Area、以下、ＨＰＡと称す）として、ハードディスク装置内のファームウェアレベルで保護可能な領域を規定している。ＨＰＡは、ＡＴＡコマンドによる読み書きをできなくすることにより、領域内のデータ保護を実現している。
【０００５】
ここで、ＨＰＡについて説明する。ＨＰＡを設定するためには、Ｓｅｔ Ｍａｘ Ａｄｄｒｅｓｓコマンドを用いる。Ｓｅｔ Ｍａｘ Ａｄｄｒｅｓｓコマンドは、読み書き可能な領域の最大アドレス（Ｍａｘ Ａｄｄｒｅｓｓ）を設定するためのコマンドである。
Ｍａｘ Ａｄｄｒｅｓｓと、ハードディスク装置が本来有する最大アドレス（Ｎａｔｉｖｅ Ｍａｘ Ａｄｄｒｅｓｓ）とで囲まれた領域がＨＰＡとなる。
【０００６】
【特許文献１】特開平１０−６９３７５号公報
【非特許文献１】ＡＴ Ａｔｔａｃｈｍｅｎｔ、http://www.t13.org/
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、ＰＣの管理者のみがアクセスできる領域をハードディスク装置内に確保するための方法として、ＯＳやアプリケーションソフトのユーザ認証機能を用いた場合、ハードディスク装置内の領域としては読み書き可能な領域にデータを記憶している。従って、ハードディスク装置に対するローレーベルの読み書きコマンドを制限することはできず、データを確実に保護できるとは言い難い状態にある。
【０００８】
具体的には、管理者以外のユーザであっても、ＣＤ−ＲＯＭ等に記憶されたソフトウェアを用いてＰＣを起動した場合、ハードディスク装置内の読み書き可能な領域に記憶した情報は書き換えることが可能である。
【０００９】
また、情報が暗号化されている場合は、情報の内容を読まれることはないが、ＣＤ−ＲＯＭ等からの起動によりハードディスク装置のフォーマットは可能なため、ハードディスク装置に記憶している情報を消去してしまうことは可能である。これは、ＰＣの管理者が保存している設定情報等を誰でも書き換えたり消したりすることが可能ということであり、大きな問題である。このような問題は、隠しパーティションと呼ばれる方法を用いた場合も同様に発生する。
【００１０】
一方、ＨＰＡは、これまでＢＩＯＳがＰＣの設定を管理するための領域としてしか活用されておらず、ＨＰＡをユーザに対しても使用可能とする装置や方法は提案されていない。
【００１１】
そこで、本発明の目的は、ユーザが所望の領域をＨＰＡとして利用することを可能とすることにある。
【課題を解決するための手段】
【００１２】
本発明の記録制御装置は、記録媒体に対するデータの読み書きが可能な記録制御装置であって、外部装置によって任意に指定可能な位置情報であって、前記記録媒体におけるデータの読み書き可能な領域を制限する位置情報を前記外部装置から受信する受信手段と、前記位置情報に基づいて、前記記録媒体内のデータの読み書き可能な領域を設定する第１の設定手段とを有することを特徴とする。
本発明の記録制御装置の制御方法は、記録媒体に対するデータの読み書きが可能な記録制御装置の制御方法であって、外部装置によって任意に指定可能な位置情報であって、前記記録媒体におけるデータの読み書き可能な領域を制限する位置情報を前記外部装置から受信する受信ステップと、前記位置情報に基づいて、前記記録媒体内のデータの読み書き可能な領域を設定する設定ステップとを含むことを特徴とする。
本発明のプログラムは、前記記録制御装置の制御方法をコンピュータに実行させることを特徴とする。
本発明のコンピュータ読み取り可能な記録媒体は、前記プログラムを記録したことを特徴とする。
【発明の効果】
【００１３】
本発明においては、外部装置から指定された位置情報に基づいて、記録媒体内のデータの読み書き可能な領域を設定するように構成している。従って、本発明によれば、外部装置のユーザは、位置情報を指定して所望の領域をＨＰＡとして利用することが可能となる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明を適用した好適な実施形態を、添付図面を参照しながら詳細に説明する。
【００１５】
図１は、本発明の実施形態に係るハードディスク装置の構成図である。図１の１０１〜１１１はハードディスク装置１００の個々の構成要素である。ハードディスク装置１００には、ＰＣ等の本体装置（図示せず）との接続のためのコネクタ１０１が配置されている。
【００１６】
次にハードディスク装置１００の個々の構成要素について説明する。１０２はハードディスク装置１００全体の制御を司るワンチップマイコンである。マイコン１０２にはインタフェース回路１０３、ヘッド駆動回路１０４、モータ制御回路１０５、半導体記憶部１０６が接続されている。
【００１７】
モータ制御回路１０５はモータ１０７、１０８を駆動制御するもので、モータ１０７には磁気記憶媒体（プラッタ）１０９が係合されている。また、モータ１０８にはヘッドアーム１１０が係合されている。それぞれでプラッタ１０９の回転動作、ヘッドアーム１１０のシーク動作を実現する。
【００１８】
ヘッド駆動回路１０４は磁気ヘッド１１１を駆動制御するもので、プラッタ１０９の所望の位置でのデータの読み書きを実現する。半導体記憶部１０６は、フラッシュメモリ等により構成され、ハードディスク装置１００の制御に関わる情報を記憶するためのものである。
【００１９】
読み書きするデータはインタフェース回路１０３及びコネクタ１０１を介して、本体装置とで相互に転送される。ここで、インタフェース回路１０１のインタフェースはＡＴＡインタフェースであり、ハードディスク装置１００は、ＡＴＡインタフェースで接続されるディスク装置として機能する。
【００２０】
次に、図２及び図３を用いて、プラッタ１０９上のデータ構造について説明する。プラッタ１０９に記憶するデータは、セクタと呼ぶブロックに分割して管理する。それぞれのセクタには、その位置を指し示すアドレスを付与し、アドレスとセクタ数とを指定することによりデータ読み書きを行う。
【００２１】
第１パーティション２０３と第２パーティション２０４は、本体装置が使用するＯＳ、アプリケーションソフトや各種データを記憶するための領域である。
【００２２】
パーティション情報Ａ２０１とパーティション情報Ｂ２０２は、第１パーティション２０３と第２パーティション２０４の構成を示す情報である。本実施形態では、パーティション情報Ａ２０１とパーティション情報Ｂ２０２はそれぞれ図３（ａ）、（ｂ）で示す情報を記憶している。
【００２３】
パーティション情報Ａ２０１は、第１パーティション２０３に関する情報のみを記憶している。パーティション情報Ｂ２０２は、第１パーティション２０３と第２パーティション２０４の２つのパーティションに関する情報を記憶している。
【００２４】
一般に本体装置からハードディスク装置１００に記憶される情報の読み書きを行うためにＬＢＡ（Logical Block Address）が用いられている。本実施形態では図４及び図５に示す方法で、プラッタ１０９上のアドレスとＬＢＡとの対応付けを行っている。
【００２５】
図４では、パーティション情報Ａ２０１を記憶しているプラッタ１０９上のアドレス０をＬＢＡ０に対応させている。また、第１パーティション２０３の先頭アドレス（図４では「１０」）をＬＢＡ１に対応させている。また、第１パーティション２０３の最終アドレス（図４では「３００００」）をＭａｘ Ａｄｄｒｅｓｓに対応させている。
【００２６】
図５では、パーティション情報Ｂ２０２を記憶しているプラッタ１０９上のアドレス１をＬＢＡ０に対応させている。また、第１パーティション２０３の先頭アドレス（図５では「１０」）をＬＢＡ１に対応させている。また、第２パーティション２０４の最終アドレス（図５では「５００００」）をＭａｘ Ａｄｄｒｅｓｓに対応させている。
【００２７】
これにより、パーティション情報とそれに対応したパーティションを、連続したＬＢＡに割り当てることが可能である。
【００２８】
図６は、プラッタ１０９上のアドレスとＬＢＡの対応、及び、現在使用しているパーティション情報を表す「パーティション情報リスト」のフォーマット例を模式的に示す図である。このパーティション情報リストは、半導体記憶部１０６に記憶されている。
【００２９】
図６の例では、パーティション情報Ａ２０１は、Ｍａｘ Ａｄｄｒｅｓｓが３００００のときに使用し、その情報はアドレス０に記憶していることを表している。パーティション情報Ｂ２０２は、Ｍａｘ Ａｄｄｒｅｓｓが５００００のときに使用し、その情報はアドレス１に記憶していることを表している。また、現在、パーティション情報Ａ２０１の設定になっていることも表している。
【００３０】
プラッタ１０９上のアドレスをＬＢＡに割り当てる処理の流れを図７のフローチャートを参照しながら説明する。本処理は、マイコン１０２によって実行される処理である。
【００３１】
マイコン１０２は、ハードディスク装置の起動時、半導体記憶部１０６に記憶しているパーティション情報リストを基に、現在設定されているパーティション情報を得る（ステップＳ７０１）。
【００３２】
次に、マイコン１０２は、ステップＳ７０１で得たパーティション情報を格納しているアドレスをＬＢＡ０に割り当て（ステップＳ７０２）、当該パーティション情報に対応するパーティションの開始アドレスをＬＢＡ１に割り当てる（ステップＳ７０３）。例えば、図６の例であると、現在、パーティション情報Ａ２０１の設定となっているため、パーティション情報ＡがステップＳ７０１で得られる。また、ステップＳ７０２では、第１パーティション２０３の開始アドレス"１０"がＬＢＡ１に割り当てられることになる。
【００３３】
次に、マイコン１０２は、当該パーティションの最終アドレスにＭａｘ Ａｄｄｒｅｓｓを対応付ける設定を行う（ステップＳ７０４）。例えば上記の例では、第１パーティション２０３の最終アドレス"３００００"をＭａｘ Ａｄｄｒｅｓｓに対応付ける。
【００３４】
これにより、第２パーティション２０４の部分がＨＰＡに該当することになり、不用意なアクセスによるデータの書き換え等を防止することができる。
【００３５】
次に、マイコン１０２は、Ｍａｘ Ａｄｄｒｅｓｓを変更するためのＳｅｔ Ｍａｘ Ａｄｄｒｅｓｓコマンドを受信したか否かを判定する（ステップＳ７０５）。マイコン１０２は、コマンドを受信すると、コマンドで指定されたＭａｘ Ａｄｄｒｅｓｓに対応したパーティション情報（ここでは、パーティション情報Ｂ）をパーティション情報リストに基づいて得る（ステップＳ７０６）。そして、マイコン１０２は、パーティション情報リスト内の「現在の設定」項目を更新する（ステップＳ７０７）。さらにステップＳ７０２からＳ７０４の処理に戻って、マイコン１０２は、パーティション情報のＬＢＡ０への割り当て（ステップＳ７０２）、ＬＢＡ１の割り当て（ステップＳ７０３）、Ｍａｘ Ａｄｄｒｅｓｓの設定（Ｓ７０４）を行う。上記の例であれば、ステップＳ７０２ではパーティション情報ＢをＬＢＡ０に割り当てる。また、ステップＳ７０３では、第１パーティション２０３の開始アドレスをＬＢＡ１に割り当てる。また、ステップＳ７０４では、第２パーティション２０４の最終アドレスをＭａｘ Ａｄｄｒｅｓｓに割り当てる。
【００３６】
このように、本体装置からのＳｅｔ Ｍａｘ Ａｄｄｒｅｓｓコマンドに応じてプラッタ１０９上の任意の領域を書き込み禁止に設定することで、本体装置のユーザは、このコマンドを本体装置から発行させることでＨＰＡを任意に使用することができる。また、本実施形態では、Ｓｅｔ Ｍａｘ Ａｄｄｒｅｓｓで指定されたアドレスに応じたパーティション情報をＬＢＡ０に適宜割り当てている。これにより、そのパーティション情報を本体装置が読み取ることができる。即ち、本体装置は、Ｓｅｔ Ｍａｘ Ａｄｄｒｅｓｓで指定したＭａｘ Ａｄｄｒｅｓｓに対応する、ＬＢＡ０に記録されるパーティション情報から、プラッタ１０９上において書き換え可能なパーティションの構成を得ることができる。従って、本体装置を操作するユーザは、パーティション情報に基づいて現在のプラッタ１０９上における書き換え可能なパーティションの構成を把握することが可能となる。
【００３７】
次に、図６で示したパーティション情報リストを、本体装置からハードディスク装置１００に対して登録、変更するために使用する専用ＡＴＡコマンド「パーティション情報リスト設定コマンド」について図８を参照しながら説明する。
【００３８】
本コマンドは、ＣｏｍｍａｎｄレジスタにＦＦｈ、Ｆｅａｔｕｒｅｓレジスタに８０ｈ、その他のレジスタには００ｈをセットする。本コマンドはデータ転送を伴わないコマンドである。本コマンドを受信したハードディスク装置１００の動作について図９のフローチャートを参照しながら説明する。
【００３９】
マイコン１０２は、パーティション情報リスト設定コマンドを受信したか否かを判定する（ステップＳ９０１）。マイコン１０２は、コマンドを受信した場合、その時現在のＭａｘ Ａｄｄｒｅｓｓに対応したパーティション情報がパーティション情報リスト内に存在するか否かを調べる（ステップＳ９０２）。マイコン１０２は、現在のＭａｘ Ａｄｄｒｅｓｓに対応したパーティション情報がリスト内に存在する場合、当該パーティション情報を格納しているプラッタ１０９上のアドレスにＬＢＡ０情報を対応付けるように変更する（ステップＳ９０３）。一方、対応したパーティション情報がリスト内に存在しないと判定した場合、マイコン１０２は、そのＭａｘ Ａｄｄｒｅｓｓに対応する新たなパーティション情報を作成する。そして、マイコン１０２は、当該パーティション情報を格納するプラッタ１０９上のアドレスにＬＢＡ０情報を対応付けるように設定する（ステップＳ９０４）。
【００４０】
次に、図６で示したパーティション情報リストから、登録内容を削除するために使用する専用ＡＴＡコマンド「パーティション情報リスト削除コマンド」について図１０を参照しながら説明する。
【００４１】
本コマンドは、ＣｏｍｍａｎｄレジスタにＦＦｈ、Ｆｅａｔｕｒｅｓレジスタに８１ｈ、ＬＢＡ Ｌｏｗレジスタ、ＬＢＡ Ｍｉｄレジスタ、ＬＢＡ Ｈｉｇｈレジスタ、Ｄｅｖｉｃｅレジスタの下位４ビットに削除対象となるＭａｘ Ａｄｄｒｅｓｓをセットする。また、その他のレジスタには００ｈをセットする。本コマンドはデータ転送を伴わないコマンドである。
【００４２】
本コマンドを受信したハードディスク装置は、コマンドで指定されたＭａｘ Ａｄｄｒｅｓｓに対応するパーティション情報の登録内容をパーティション情報リストから削除する。
【００４３】
なお、本実施形態では、プラッタ１０９上のアドレスを表す値として、０、１、１０、３００００、５００００などの値を用いて説明を行ったが、これは説明上の便宜的な値であり、本発明はこれらの値に限定されるものではない。
【００４４】
本実施形態においては、本体装置からのＳｅｔ Ｍａｘ Ａｄｄｒｅｓｓに基づき、ハードディスク装置内の処理によってＬＡＢのＭａｘ Ａｄｄｒｅｓｓとプラッタ１０９上のアドレスとの対応付けを行なっている。従って、本体装置側で特別な処理を行なうことなく、ＨＰＡを利用したデータ管理が可能となり、不用意なアクセスによるデータの書き換え等を防止することができる。
【００４５】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体をシステム或いは装置に供給し、そのシステム等のコンピュータが記憶媒体からプログラムコードを読み出し実行することによっても達成される。
【００４６】
この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、プログラムコード自体及びそのプログラムコードを記憶した記憶媒体は本発明を構成することになる。
【００４７】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。
【００４８】
また、コンピュータが読み出したプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ等が実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれる。
【００４９】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに接続された機能拡張ユニット等に備わるメモリに書込まれた後、そのプログラムコードの指示に基づきＣＰＵ等が実際の処理を行い、前述した実施形態の機能が実現される場合も含まれる。
【図面の簡単な説明】
【００５０】
【図１】本発明の実施形態に係るハードディスク装置の構成図である。
【図２】プラッタ上のデータ構造を説明するための図である。
【図３】プラッタ上のデータ構造を説明するための図である。
【図４】プラッタ上のアドレスとＬＢＡ（Logical Block Address）との対応付けを説明するための図である。
【図５】プラッタ上のアドレスとＬＢＡ（Logical Block Address）との対応付けを説明するための図である。
【図６】パーティション情報リストのフォーマット例を模式的に示す図である。
【図７】パーティション情報をＬＢＡ０に割り当てる処理の流れを示すフローチャートである。
【図８】専用ＡＴＡコマンド「パーティション情報リスト設定コマンド」を説明するための図である。
【図９】「パーティション情報リスト設定コマンド」を受信したハードディスク装置の動作を説明するためのフローチャートである。
【図１０】専用ＡＴＡコマンド「パーティション情報リスト削除コマンド」を説明するための図である。
【符号の説明】
【００５１】
１００  ハードディスク装置
１０１  コネクタ
１０２  マイコン
１０３  インタフェース回路
１０４  ヘッド駆動回路
１０５  モータ制御回路
１０６  半導体記憶部
１０７、１０８  モータ
１０９  磁気記憶媒体
１１０  ヘッドアーム
１１１  磁気ヘッド
２０１  パーティション情報Ａ
２０２  パーティション情報Ｂ
２０３  第１パーティション
２０４  第２パーティション
【図１】
2007316736.tif 000003
【図２】
2007316736.tif 000004
【図３】
2007316736.tif 000005
【図４】
2007316736.tif 000006
【図５】
2007316736.tif 000007
【図６】
2007316736.tif 000008
【図７】
2007316736.tif 000009
【図８】
2007316736.tif 000010
【図９】
2007316736.tif 000011
【図１０】
2007316736.tif 000012