(57)【要約】【課題】ディスク装置の信頼性を向上させること。【解決手段】ＯＳなどシステムデータを最初に書き込む前に、容量制限処理部１０２がホスト２から受信した容量制限コマンドに基づいて多重度および高多重度領域サイズを算出して多重度管理テーブル１７１に設定し、ライト処理部１０３が多重度管理テーブル１７１に基づいてデータを多重で書き込み、リード処理部１０４がリードエラーが発生した場合に、多重に書き込まれた他のデータを読み出してホスト２に転送するよう構成する。【選択図】        図２
2007193886.tif 000002
【特許請求の範囲】
【請求項１】
ホストからの指示に基づいてデータの書込みを少なくとも行うディスク装置であって、
データの書込みに使用する記録容量を指定する情報を含む容量制限コマンドをホストから受信し、該受信した容量制限コマンドで指定された記録容量に基づいて、ディスクに書き込むデータの多重度を算出する多重度算出手段と、
ホストから送信されてくるデータを前記多重度算出手段により算出された多重度で書き込む書込手段と、
を備えたことを特徴とするディスク装置。
【請求項２】
前記多重度算出手段は、使用する最終論理ブロックアドレスをホストから受信し、該受信した最終論理ブロックアドレスと装置の容量とに基づいて多重度を算出することを特徴とする請求項１に記載のディスク装置。
【請求項３】
前記多重度算出手段は、装置の容量を前記最終論理ブロックアドレスで割った商を多重度とし、該最終論理ブロックアドレスと多重度の積を装置の容量から引いた大きさのデータについては多重度を一つ増加させることを特徴とする請求項２に記載のディスク装置。
【請求項４】
ホストからの指示に基づいてディスクへのデータの書込み制御を行うデータ書込み制御方法であって、
データの書込みに使用する記録容量を指定する情報を含む容量制限コマンドをホストから受信し、該受信した容量制限コマンドで指定された記録容量に基づいて、ディスクに書き込むデータの多重度を算出する多重度算出工程と、
ホストから送信されてくるデータを前記多重度算出工程により算出された多重度で書き込む書込工程と、
を含んだことを特徴とするデータ書込み制御方法。
【請求項５】
ディスク装置に対して所定のコマンドを発行するコマンド制御方法であって、
データの書込みを実行させるライトコマンドを前記ディスク装置に発行する制御工程と、
データの書込みに使用する記録容量を指定する情報を含む容量制限コマンドを前記ディスク装置に発行する制御工程とを少なくとも有し、
容量制限コマンドで指定される記録容量に基づいて定められた多重度に応じて、前記ディスク装置に対してデータを多重化して書込みを行なわせることを特徴とするコマンド制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ホストからの指示に基づいてデータの書込みを少なくとも行うディスク装置、データ書込み制御方法およびコマンド制御方法に関し、特に、簡単な操作だけでデータを多重化して記録する信頼性の高いディスク装置、データ書込み制御方法およびコマンド制御方法に関するものである。
【背景技術】
【０００２】
近年、磁気ディスク装置はパソコンだけでなく、デジタルＡＶ機器やモバイル機器などのホスト(上位コントローラ)にインタフェース接続されて様々な分野で使われており、磁気ディスク装置の応用分野が拡大するにしたがって、磁気ディスク装置への要求も多様なものとなってきている。
【０００３】
例えば、モバイル機器で使われる場合には、さまざまな環境の下で動作する必要があるため、容量が大きいことよりも信頼性が高いことが重要となる。そこで、高い信頼性を要求されるデータについては、２重化して記録する磁気ディスク装置が開発されている（例えば、特許文献１参照。）。
【０００４】
【特許文献１】特開２００５−１０８０４０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、高い信頼性を要求するデータに対して２重化を指定して記録することとすると、信頼性が高いデータの割合が多い場合には、データを記録するたびに２重化を指定する必要があり、指定が煩わしいという問題がある。特に、記録したいデータ量に比べて磁気ディスク装置の容量がはるかに大きい場合には、２重化指定の煩わしさが顕著なものとなる。
【０００６】
また、一部のデータだけを２重化する場合には、データを２重化する割合に応じて記録容量が異なってくるため、記録可能なデータの容量が特定できないという問題もある。また、モバイル環境などでは、より多重度をあげてデータを記録したいという要求もある。
【０００７】
この発明は、上述した従来技術による問題点を解消するためになされたものであり、簡単な操作だけでデータを多重化して記録する信頼性の高いディスク装置、データ書込み制御方法およびコマンド制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決し、目的を達成するため、請求項１の発明に係るディスク装置は、ホストからの指示に基づいてデータの書込みを少なくとも行うディスク装置であって、データの書込みに使用する記録容量を指定する情報を含む容量制限コマンドをホストから受信し、該受信した容量制限コマンドで指定された記録容量に基づいて、ディスクに書き込むデータの多重度を算出する多重度算出手段と、ホストから送信されてくるデータを前記多重度算出手段により算出された多重度で書き込む書込手段と、を備えたことを特徴とする。
【０００９】
この請求項１の発明によれば、データの書込みに使用する記録容量を指定する情報を含む容量制限コマンドをホストから受信し、受信した容量制限コマンドで指定された記録容量に基づいて、ディスクに書き込むデータの多重度を算出し、ホストから送信されてくるデータを、算出した多重度で書き込むよう構成したので、データの書込みに使用する記録容量を指定するだけで、データの多重記録を行うことができる。
【００１０】
また、請求項２の発明に係るディスク装置は、請求項１の発明において、前記多重度算出手段は、使用する最終論理ブロックアドレスをホストから受信し、該受信した最終論理ブロックアドレスと装置の容量とに基づいて多重度を算出することを特徴とする。
【００１１】
この請求項２の発明によれば、使用する最終論理ブロックアドレスをホストから受信し、受信した最終論理ブロックアドレスと装置の容量とに基づいて多重度を算出するよう構成したので、使用する最終論理ブロックアドレスを指定するだけで、データの多重記録を行うことができる。
【００１２】
また、請求項３の発明に係るディスク装置は、請求項２の発明において、前記多重度算出手段は、装置の容量を前記最終論理ブロックアドレスで割った商を多重度とし、該最終論理ブロックアドレスと多重度の積を装置の容量から引いた大きさのデータについては多重度を一つ増加させることを特徴とする。
【００１３】
この請求項３の発明によれば、装置の容量を最終論理ブロックアドレスで割った商を多重度とし、最終論理ブロックアドレスと多重度の積を装置の容量から引いた大きさのデータについては多重度を一つ増加させるよう構成したので、一部のデータについて多重度を増加させることができる。
【００１４】
また、請求項４の発明に係るデータ書込み制御方法は、ホストからの指示に基づいてディスクへのデータの書込み制御を行うデータ書込み制御方法であって、データの書込みに使用する記録容量を指定する情報を含む容量制限コマンドをホストから受信し、該受信した容量制限コマンドで指定された記録容量に基づいて、ディスクに書き込むデータの多重度を算出する多重度算出工程と、ホストから送信されてくるデータを前記多重度算出工程により算出された多重度で書き込む書込工程と、を含んだことを特徴とする。
【００１５】
この請求項４の発明によれば、データの書込みに使用する記録容量を指定する情報を含む容量制限コマンドをホストから受信し、受信した容量制限コマンドで指定された記録容量に基づいて、ディスクに書き込むデータの多重度を算出し、ホストから送信されてくるデータを、算出した多重度で書き込むよう構成したので、データの書込みに使用する記録容量を指定するだけで、データの多重記録を行うことができる。
【００１６】
また、請求項５の発明に係るコマンド制御方法は、ディスク装置に対して所定のコマンドを発行するコマンド制御方法であって、データの書込みを実行させるライトコマンドを前記ディスク装置に発行する制御工程と、データの書込みに使用する記録容量を指定する情報を含む容量制限コマンドを前記ディスク装置に発行する制御工程とを少なくとも有し、容量制限コマンドで指定される記録容量に基づいて定められた多重度に応じて、前記ディスク装置に対してデータを多重化して書込みを行なわせることを特徴とする。
【００１７】
この請求項５の発明によれば、データの書込みを実行させるライトコマンドをディスク装置に発行し、データの書込みに使用する記録容量を指定する情報を含む容量制限コマンドをディスク装置に発行し、容量制限コマンドで指定される記録容量に基づいて定められた多重度に応じて、ディスク装置に対してデータを多重化して書込みを行なわせるよう構成したので、データの書込みに使用する記録容量を指定するだけで、データの多重記録を行うことができる。
【発明の効果】
【００１８】
請求項１、４および５の発明によれば、データの書込みに使用する記録容量を指定するだけで、データの多重記録を行うので、簡単な操作だけでデータを多重化して記録し、信頼性を向上することができるという効果を奏する。
【００１９】
また、請求項２の発明によれば、使用する最終論理ブロックアドレスを指定するだけで、データの多重記録を行うので、簡単な操作だけでデータを多重化して記録し、信頼性を向上することができるという効果を奏する。
【００２０】
また、請求項３の発明によれば、一部のデータについて多重度を増加させるので、特に高い信頼性を必要とするデータだけについて多重度を増加させることができるという効果を奏する。
【発明を実施するための最良の形態】
【００２１】
以下に添付図面を参照して、この発明に係るディスク装置、データ書込み制御方法およびコマンド制御方法の好適な実施例を詳細に説明する。なお、本実施例では、本発明を磁気ディスク装置に適用した場合を中心に説明する。
【実施例】
【００２２】
まず、本実施例に係る磁気ディスク装置の構成について説明する。図１は、本実施例に係る磁気ディスク装置の構成を示すハードウェア構成図である。同図に示すように、この磁気ディスク装置１は、ＰＣＢＡ（Printed Circuit Board Assembly）１０と、ディスクドライブ２０とにより構成される。この磁気ディスク装置１は、ＡＴＡインタフェースによりホスト２と接続され、磁気ディスク装置１とホスト２との間でデータや制御コマンドなどが伝送される。
【００２３】
ＰＣＢＡ１０は、磁気ディスク装置１を制御する種々のＬＳＩが配置されたプリント基板である。このＰＣＢＡ１０は、ＨＤＣ（Hard Disk Controller）１１と、ＲＤＣ（Read Channel）１２と、バッファ１３と、ＦＲＯＭ１４と、ＣＰＵ１５と、ＲＯＭ１６と、ＳＲＡＭ１７とを有しており、これらは互いにバスで接続されている。
【００２４】
ＨＤＣ１１は、バッファ１３に格納されたデータをディスクドライブ２０に書き込む際の動作や、ディスクドライブ２０に記録されたデータを読み出してバッファ１３に格納する際の動作を制御するコントローラである。ＲＤＣ１２は、バッファ１３とディスクドライブ２０との間を仲介し、データを変調または復調するＬＳＩである。
【００２５】
バッファ１３は、ホスト２とディスクドライブ２０との間でリードまたはライトされるデータを一時的に格納するキャッシュである。ＦＲＯＭ１４は、この磁気ディスク装置１の動作を制御するファームウェアを記憶する不揮発性のメモリである。
【００２６】
ＣＰＵ１５は、ＳＲＡＭ１７に展開されたファームウェアを読み出して実行する中央処理装置であり、そのファームウェアの一部はリード／ライト制御部１００としてＣＰＵ１５の内部で実行される。ここで、リード／ライト制御部１００は、ホスト２からの指示に基づいてデータライトおよびデータリードをＨＤＣ１１に指示し、制御する処理部である。
【００２７】
ＲＯＭ１６は、磁気ディスク装置１を動作させる際に必要となる各種定数を記憶する不揮発性のメモリである。ＳＲＡＭ１７は、ＦＲＯＭ１４に記憶されたファームウェアを展開するための揮発性のメモリである。また、このＳＲＡＭ１７は、データを多重化して記録した記録先などの情報を、多重化管理テーブル１７１（図４参照）として記憶する。
【００２８】
ディスクドライブ２０は、この磁気ディスク装置１においてデータが記録される部分であり、４つのプラッタ２１（プラッタ２１−０〜２１−３）と、ＤＣＭ２２と、８つのヘッド２３（ヘッド２３−０〜２３−７）と、ＶＣＭ２４とを有する。
【００２９】
プラッタ２１は、裏表両面に磁気記録面を有する中空円盤状の基板である。ＤＣＭ２２は、積層された複数のプラッタ２１を回転させる駆動装置である。ヘッド２３は、プラッタ２１の磁気記録面に対して磁気的にデータのリード／ライトを行う磁気ヘッドである。ＶＣＭ２４は、ヘッド２３をディスク半径方向に移動させて、ヘッド２３を目的のデータリード／ライト先へと移動させる駆動装置である。
【００３０】
次に、リード／ライト制御部１００の構成について説明する。図２は、リード／ライト制御部１００の構成を示す機能ブロック図である。同図に示すように、リード／ライト制御部１００は、ホスト２との間でコマンドレジスタ１５１を用いて通信を行う。
【００３１】
コマンドレジスタ１５１は、ホスト２が磁気ディスク装置１に対して発行する制御コマンドを格納するレジスタである。リード／ライト制御部１００は、このコマンドレジスタ１５１に格納された制御コマンドを読み出し、その制御コマンドに対応する処理を実行する。
【００３２】
このコマンドレジスタ１５１に格納される制御コマンドの一つとして、磁気ディスク装置１の使用容量を制限するとともに記録するデータの多重度を指定する容量制限コマンドがある。なお、この容量制限コマンドは本発明の実現のためにホスト２のインタフェースプログラムにプロトコルとして新設したものである。
【００３３】
図３−１は、容量制限コマンドのフォーマットを示す図である。同図に示すように、この容量制限コマンドでは、コマンドレジスタ１５１のうち「ＬＢＡ低」、「ＬＢＡ中」、「ＬＢＡ高」および「デバイス」の一部を用いてＬＢＡ(Logical Block Address)が指定され、「コマンド」として容量制限コマンドが指定される。
【００３４】
容量制限コマンドのＬＢＡは、磁気ディスク装置１を使用する上での制限容量および多重度を指定する。例えば、磁気ディスク装置１の容量が１００ＧＢであり、容量制限コマンドのＬＢＡとして１００ＧＢの１／４にあたるアドレスが指定された場合には、磁気ディスク装置１は、２５ＧＢに容量が制限され、全てのデータが４重化されて記録される。なお、容量制限コマンドは、ＯＳなどのシステムデータをインストール際に、ホスト２がユーザ環境に合わせて発行する。
【００３５】
また、リード／ライト制御部１００は、容量制限コマンドなどの制御コマンドを受領すると、コマンドレジスタ１５１に現在のステータスに対応する値を返す。図３−２は、容量制限コマンド受領時にコマンドレジスタ１５１に格納される値を示す図である。同図に示す各値は、図３−１に示した容量制限コマンドのフォーマットと対応しており、最上段は「フィーチャ」に代えて「エラー」として利用され、最下段は「コマンド」に代えて「ステータス」として利用される。
【００３６】
同図の最上段に示す「エラー」では、リード／ライト制御部１００が容量制限コマンドを正常に認識できたか否かが設定され、正常に認識できれば「００ｈ」、正常に認識できずにエラーが発生したときには「０４ｈ」が設定される。
【００３７】
また、同図の最下段に示す「ステータス」では、リード／ライト制御部１００が返すステータスとして「５０ｈ（ドライブレディ）」または「５１ｈ（エラー）」が設定される。
【００３８】
リード／ライト制御部１００は、コマンド解析部１０１と、容量制限処理部１０２と、ライト処理部１０３と、リード処理部１０４と、データ修復部１０５とを有する。
【００３９】
コマンド解析部１０１は、コマンドレジスタ１５１に格納された制御コマンドの種別を解析し、その制御コマンドが容量制限コマンドであれば容量制限処理部１０２へ、ライトコマンドであればライト処理部１０３へ、リードコマンドであればリード処理部１０４へと処理を振り分ける処理部である。このコマンド解析部１０１は、コマンドレジスタ１５１におけるコマンドの値を参照することで、制御コマンドの種別を判別する。
【００４０】
容量制限処理部１０２は、ホスト２が発行した容量制限コマンドを処理する処理部である。具体的には、この容量制限処理部１０２は、磁気ディスク装置１の容量をコマンドレジスタ１５１に格納されたＬＢＡの値で割った商を求め、多重度として多重化管理テーブル１７１に格納し、多重度とＬＢＡとの積を磁気ディスク装置１の容量から引いた値を高多重度領域サイズとして多重化管理テーブル１７１に格納する。
【００４１】
図４は、多重化管理テーブル１７１の一例を示す図である。同図に示すように、この多重化管理テーブル１７１には、多重度と、高多重度領域サイズと、ホスト指定開始ＬＢＡと、そのデータのサイズと、多重ライトされたデータの全ての記録先であるデータ記録先とが含まれる。
【００４２】
例えば、磁気ディスク装置１の容量が１００ＧＢであり、ＬＢＡの値が２５ＧＢである場合には、多重度は１００／２５＝４となり、高多重度領域サイズは１００−４×２５＝０となる。また、容量が１００ＧＢの磁気ディスク装置１で先頭から１０ＧＢをＯＳ領域として使用し、先頭から１０ＧＢのデータの信頼性を向上させたい場合には、ＬＢＡの値を９０ＧＢとすることによって、多重度は１００／９０の商＝１となり、高多重度領域サイズは１００−９０＝１０となって、先頭の１０ＧＢすなわちＯＳ領域を２重化することができる。
【００４３】
また、図４に示す例では、ホスト指定開始ＬＢＡが「Ａ」のデータは、サイズが「Ｓ＿Ａ」で、ヘッド多重により３多重されており、３多重された各データのデータ記録先は「Ａ０」、「Ａ１」、「Ａ２」であることを示している。なお、このデータ記録先では、データの記録を開始するアドレスが、ＣＨＳ形式により指定される。
【００４４】
容量制限処理部１０２が、容量制限コマンドに基づいて多重度と高多重度領域サイズを決定して多重化管理テーブル１７１に格納することによって、多重度に基づくデータの読書きを行うことができる。
【００４５】
ライト処理部１０３は、ディスクドライブ２０へのデータの書き込みをＨＤＣ１１に指示する処理部である。このライト処理部１０３は、コマンド解析部１０１からライトコマンドを受領すると、データを記録するデータ記録先を、多重化管理テーブル１７１が記憶する多重度の個数分決定して多重化管理テーブル１７１に格納するとともに、決定した多重度の個数分のデータ記録先にバッファ１３に格納されたデータを書き込むようＨＤＣ１１に対して指示する。
【００４６】
また、このライト処理部１０３は、先頭ＬＢＡから多重化管理テーブル１７１の高多重度領域サイズ内にデータを書き込むようにホストが指定した場合には、データを記録するデータ記録先を、多重化管理テーブル１７１が記憶する多重度に１を加えた多重度の個数分決定して多重化管理テーブル１７１に格納するとともに、決定した個数分のデータ記録先にバッファ１３に格納されたデータを書き込むようＨＤＣ１１に対して指示する。
【００４７】
このライト処理部１０３が、データを記録するデータ記録先を、多重化管理テーブル１７１が記憶する多重度の個数分決定し、決定した多重度の個数分のデータ記録先にバッファ１３に格納されたデータを書き込むようＨＤＣ１１に対して指示することによって、容量制限コマンドで指定された多重度で常にデータを記録することができる。
【００４８】
リード処理部１０４は、ディスクドライブ２０からのデータの読み出しをＨＤＣ１１に指示する処理部である。このリード処理部１０４は、コマンド解析部１０１からリードコマンドを受領すると、多重化管理テーブル１７１が記憶するデータ記録先の一つからデータを読み出してバッファ１３に格納するようＨＤＣ１１に対して指示する。
【００４９】
また、このリード処理部１０４は、データを読み出す際にエラーが発生した場合には、他のデータ記録先からデータを読み出すようにＨＤＣ１１に対して指示し、多重化されて記録されたいずれかのデータ記録先からデータを読み出すことができた場合には、データ修復部１０５に対してエラーが発生したデータに修復を指示する。
【００５０】
データ修復部１０５は、多重化して記録されたデータを読み出す際にエラーが発生した場合に、リード処理部１０４の指示にしたがって、多重化されたデータのうち読み出すことができたデータに基づいてエラーが発生したデータをＨＤＣ１１と連携して修復する処理部である。
【００５１】
次に、容量制限処理部１０２の処理手順について説明する。図５は、容量制限処理部１０２の処理手順を示すフローチャートである。なお、この容量制限処理部１０２による処理は、ＯＳなどシステムデータをインストールするときに最初に起動される。
【００５２】
図５に示すように、この容量制限処理部１０２は、まず、ステータスを「Ｄ０ｈ（ビジー）」に設定し（ステップＳ１０１）、コマンドレジスタ１５１に格納されたＬＢＡの値から多重度および高多重度領域サイズを算出する（ステップＳ１０２）。
【００５３】
具体的には、磁気ディスク装置１の容量をコマンドレジスタ１５１に格納されたＬＢＡの値で割った商を求めて多重度とし、多重度とＬＢＡとの積を磁気ディスク装置１の容量から引いた値を高多重度領域サイズとする。
【００５４】
そして、多重度および高多重度領域サイズを多重度管理テーブル１７１に設定し（ステップＳ１０３）、エラーレジスタに「００ｈ（正常）」を設定する（ステップＳ１０４）。そして、ステータスを「５０ｈ（ドライブレディ）に設定する（ステップＳ１０５）。
【００５５】
このように、容量制限処理部１０２が、ＯＳなどシステムデータをインストールするときに最初に多重度および高多重度領域サイズを求めて多重度管理テーブル１７１に設定することによって、ライト処理部１０３が多重度管理テーブル１７１に基づいて自動的に多重書込みを行うことができる。
【００５６】
次に、ライト処理部１０３の処理手順について説明する。図６は、ライト処理部１０３の処理手順を示すフローチャートである。同図に示すように、このライト処理部１０３は、まず、ステータスを「Ｄ０ｈ（ビジー）」に設定し（ステップＳ２０１）、多重度管理テーブル１７１の多重度および高多重度領域サイズに基づいてデータ記録回数およびデータ記録先を決定する（ステップＳ２０２）。
【００５７】
具体的には、ライトコマンドで指定されたＬＢＡおよびデータサイズからデータの書込み領域が先頭から高多重度領域サイズ内でない場合には、多重度の個数分のデータ記録先を決定し、ライトコマンドで指定されたＬＢＡおよびデータサイズからデータの書込み領域が先頭から高多重度領域サイズ内である場合には、多重度＋１の個数分のデータ記録先を決定する。
【００５８】
そして、繰返しの数をカウントする変数ｉに初期値１を設定し（ステップＳ２０３）、データ記録先を一つ選択してＨＤＣ１１に対してヘッド２３のシークを指示する（ステップＳ２０４）。そして、データを受け取る準備が完了すると、ステータスを「５８ｈ（データ要求）」に設定し、ＨＤＣ１１に指示してホスト２に割り込みを発生させ、データ転送をホスト２に要求する（ステップＳ２０６）。
【００５９】
そして、ホスト２がバッファ１３にデータを転送するとＨＤＣ１１に媒体へのデータ書込みを指示し（ステップＳ２０７）、データの書込みが正常に終了すると、ｉがデータ記録回数より小さいか否かを判定し（ステップＳ２０８）、ｉがデータ記録回数より小さい場合には、ｉに１を加え（ステップＳ２０９）、ステップＳ２０４に戻る。
【００６０】
一方、ｉがデータ記録回数より小さくない場合には、ＬＢＡや決定したデータ書込先に基づいて多重度管理テーブル１７１を更新し（ステップＳ２１０）、ステータスを「５０ｈ（ドライブレディ）」に設定する（ステップＳ２１１）。
【００６１】
このように、ライト処理部１０３が多重度管理テーブル１７１の多重度および高多重度領域サイズに基づいてデータを多重書込みすることによって、磁気ディスク装置１の信頼性を高めることができる。
【００６２】
なお、ここでは、データ記録回数の書込みが終了した時点でステータスを「５０ｈ（ドライブレディ）」に設定することとしたが、媒体にデータを１回書込んだ時点でステータスを「５０ｈ（ドライブレディ）」に設定し、ホスト２に対してより早く書込み処理の完了を通知することもできる。
【００６３】
次に、リード処理部１０４の処理手順について説明する。図７は、リード処理部１０４の処理手順を示すフローチャートである。同図に示すように、このリード処理部１０４は、まず、ステータスを「Ｄ０ｈ（ビジー）」に設定し（ステップＳ３０１）、リードコマンドで指定されたＬＢＡを用いて多重度管理テーブル１７１を検索し、データの格納先を取得する（ステップＳ３０２）。
【００６４】
そして、ＨＤＣ１１に対してデータリードを指示し（ステップＳ３０３）、リードエラーが発生したか否かを判定する（ステップＳ３０４）。その結果、リードエラーが発生した場合には、多重化された他のデータを読み込み（ステップＳ３０５）、多重化された他のデータのうちいずれかのデータの読み込みが成功したか否かを判定する（ステップＳ３０６）。
【００６５】
そして、多重化された他のデータの読み込みに全て失敗した場合には、ホスト２にエラーを通知し（ステップＳ３０７）、その後、ステータスを「５０ｈ（ドライブレディ）」に設定する（ステップＳ３０８）。
【００６６】
一方、多重化された他のデータのうちいずれかのデータの読み込みに成功した場合には、ステータスを「５８ｈ（データリクエスト）」にし、ＨＤＣ１１に指示してホスト２に割り込みを発生させ、ホスト２に対してデータを転送する（ステップＳ３０９）。そして、エラーデータの修復をデータ修復部１０５に指示し（ステップＳ３１０）、ステータスを「５０ｈ（ドライブレディ）」に設定する（ステップＳ３０８）。
【００６７】
また、リードエラーが発生しなかった場合には、ステータスを「５８ｈ（データリクエスト）」にし、ＨＤＣ１１に指示してホスト２に割り込みを発生させ、ホスト２に対してデータを転送する（ステップＳ３１１）。そして、ステータスを「５０ｈ（ドライブレディ）」に設定する（ステップＳ３０８）。
【００６８】
このように、リード処理部１０４が、データを媒体から読み出す際にエラーが発生した場合に、多重に書き込まれた他のデータを読み出してホスト２に転送することによって、磁気ディスク装置１の信頼性を高めることができる。
【００６９】
上述してきたように、本実施例では、容量制限処理部１０２がホスト２から受信した容量制限コマンドに基づいて多重度および高多重度領域サイズを算出して多重度管理テーブル１７１に設定し、ライト処理部１０３が多重度管理テーブル１７１に基づいてデータを多重で書き込み、リード処理部１０４がリードエラーが発生した場合に、多重に書き込まれた他のデータを読み出してホスト２に転送することとしたので、ＯＳなどのシステムデータを書き込む最初に容量制限コマンドを磁気ディスク装置１に対して発行する簡単な操作だけで磁気ディスク装置１の信頼性を向上することができる。
【００７０】
また、本実施例では、磁気ディスク装置について説明したが、本発明はこれに限定されるものではなく、例えば、光ディスク装置など他のディスク装置にも同様に適用することができる。
【００７１】
（付記１）ホストからの指示に基づいてデータの書込みを少なくとも行うディスク装置であって、
データの書込みに使用する記録容量を指定する情報を含む容量制限コマンドをホストから受信し、該受信した容量制限コマンドで指定された記録容量に基づいて、ディスクに書き込むデータの多重度を算出する多重度算出手段と、
ホストから送信されてくるデータを前記多重度算出手段により算出された多重度で書き込む書込手段と、
を備えたことを特徴とするディスク装置。
【００７２】
（付記２）前記多重度算出手段は、使用する最終論理ブロックアドレスをホストから受信し、該受信した最終論理ブロックアドレスと装置の容量とに基づいて多重度を算出することを特徴とする付記１に記載のディスク装置。
【００７３】
（付記３）前記多重度算出手段は、装置の容量を前記最終論理ブロックアドレスで割った商を多重度とし、該最終論理ブロックアドレスと多重度の積を装置の容量から引いた大きさのデータについては多重度を一つ増加させることを特徴とする付記２に記載のディスク装置。
【００７４】
（付記４）多重化されたデータのうちの一つを記録媒体から読み出した際にエラーが発生した場合に該多重化されたデータの他のデータを記録媒体から読み出す読出手段をさらに備えたことを特徴とする付記１、２または３に記載のディスク装置。
【００７５】
（付記５）多重化されたデータのうち記録媒体から読み出した際にエラーが発生したデータに対して正しく読み出しが行われたデータを用いて修復を行う修復手段をさらに備えたことを特徴とする付記４に記載のディスク装置。
【００７６】
（付記６）ホストからの指示に基づいてディスクへのデータの書込み制御を行うデータ書込み制御方法であって、
データの書込みに使用する記録容量を指定する情報を含む容量制限コマンドをホストから受信し、該受信した容量制限コマンドで指定された記録容量に基づいて、ディスクに書き込むデータの多重度を算出する多重度算出工程と、
ホストから送信されてくるデータを前記多重度算出工程により算出された多重度で書き込む書込工程と、
を含んだことを特徴とするデータ書込み制御方法。
【００７７】
（付記７）前記多重度算出工程は、使用する最終論理ブロックアドレスをホストから受信し、該受信した最終論理ブロックアドレスと装置の容量とに基づいて多重度を算出することを特徴とする付記６に記載のデータ書込み制御方法。
【００７８】
（付記８）前記多重度算出工程は、装置の容量を前記最終論理ブロックアドレスで割った商を多重度とし、該最終論理ブロックアドレスと多重度の積を装置の容量から引いた大きさのデータについては多重度を一つ増加させることを特徴とする付記７に記載のデータ書込み制御方法。
【００７９】
（付記９）ディスク装置に対して所定のコマンドを発行するコマンド制御方法であって、
データの書込みを実行させるライトコマンドを前記ディスク装置に発行する制御工程と、
データの書込みに使用する記録容量を指定する情報を含む容量制限コマンドを前記ディスク装置に発行する制御工程とを少なくとも有し、
容量制限コマンドで指定される記録容量に基づいて定められた多重度に応じて、前記ディスク装置に対してデータを多重化して書込みを行なわせることを特徴とするコマンド制御方法。
【００８０】
（付記１０）ディスク装置に対して所定のコマンドを発行するコマンド制御プログラムであって、
データの書込みを実行させるライトコマンドを前記ディスク装置に発行する制御手順と、
データの書込みに使用する記録容量を指定する情報を含む容量制限コマンドを前記ディスク装置に発行する制御手順とを少なくともコンピュータに実行させ、
容量制限コマンドで指定される記録容量に基づいて定められた多重度に応じて、前記ディスク装置に対してデータを多重化して書込みを行なわせることを特徴とするコマンド制御プログラム。
【産業上の利用可能性】
【００８１】
以上のように、本発明に係るディスク装置、データ書込み制御方法およびコマンド制御方法は、パソコンなどの記憶装置として有用であり、特に、高い信頼性を必要とする記憶装置に適している。
【図面の簡単な説明】
【００８２】
【図１】本実施例に係る磁気ディスク装置の構成を示すハードウェア構成図である。
【図２】リード／ライト制御部の構成を示す機能ブロック図である。
【図３−１】容量制限コマンドのフォーマットを示す図である。
【図３−２】容量制限コマンド受領時にコマンドレジスタが格納する値を示す図である。
【図４】多重化管理テーブルの一例を示す図である。
【図５】容量制限処理部の処理手順を示すフローチャートである。
【図６】ライト処理部の処理手順を示すフローチャートである。
【図７】リード処理部の処理手順を示すフローチャートである。
【符号の説明】
【００８３】
１    磁気ディスク装置
２    ホスト
１０    ＰＣＢＡ
１１    ＨＤＣ
１２    ＲＤＣ
１３    バッファ
１４    ＦＲＯＭ
１５    ＣＰＵ
１６    ＲＯＭ
１７    ＳＲＡＭ
２０    ディスクドライブ
２１    プラッタ
２２    ＤＣＭ
２３    ヘッド
２４    ＶＣＭ
１００    リード／ライト制御部
１０１    コマンド解析部
１０２    容量制限処理部
１０３    ライト処理部
１０４    リード処理部
１５１    コマンドレジスタ
１７１    多重化管理テーブル
【図１】
2007193886.tif 000003
【図２】
2007193886.tif 000004
【図３−１】
2007193886.tif 000005
【図３−２】
2007193886.tif 000006
【図４】
2007193886.tif 000007
【図５】
2007193886.tif 000008
【図６】
2007193886.tif 000009
【図７】
2007193886.tif 000010