(57)【要約】【課題】磁気ディスク装置がデータを受け付けることが可能な期間を延長すること。【解決手段】磁気ディスク装置は、第１領域、第２領域および第３領域がアロケートされたディスク媒体と、制御回路と、を備える。第１領域は、ホストから受信した第１データが書き込まれる領域である。第２領域は、第１データが第１領域に書き込まれる前に第１データが一時的に記録される領域である。第３領域は、冗長な領域である。制御回路は、第１領域に発生する欠陥の検出を実行し、第１領域に欠陥が検出された場合、欠陥が検出された第１領域内の第１の位置を第３領域内の第２の位置で代替する。制御回路は、第３領域の空き領域の合計サイズに応じて第２領域のうちの一部または全部である第４領域を第２領域から削除して第４領域を第３領域に追加する。【選択図】図１０
2020038740.tif 000002
【特許請求の範囲】
【請求項１】
ホストから受信した第１データが書き込まれる第１領域と、前記第１データが前記第１領域に書き込まれる前に前記第１データが一時的に記録される第２領域と、冗長な領域である第３領域と、がアロケートされたディスク媒体と、
前記第１領域に発生する欠陥の検出を実行し、前記第１領域に前記欠陥が検出された場合、前記欠陥が検出された前記第１領域内の第１の位置を前記第３領域内の第２の位置で代替し、前記第３領域の空き領域の合計サイズに応じて前記第２領域のうちの一部または全部である第４領域を前記第２領域から削除して前記第４領域を前記第３領域に追加する、制御回路と、
を備える磁気ディスク装置。
【請求項２】
前記制御回路は、前記第３領域に空き領域がなくなった場合に前記第４領域を前記第２領域から削除して前記第４領域を前記第３領域に追加する、
請求項１に記載の磁気ディスク装置。
【請求項３】
前記第４領域のサイズは予め設定されいる、
請求項２に記載の磁気ディスク装置。
【請求項４】
前記制御回路は、
前記ホストから新規のデータを受け付けることができる第１モードと、前記ホストからの新規のデータの受け付けが禁止された第２モードと、を含む複数のモードで動作し、
前記第３領域に空き領域がなくなった場合、前記第１モードから前記第２モードに遷移し、
前記第２モードにおいて前記ホストからコマンドを受信した場合、前記第４領域を前記第２領域から削除して前記第３領域に追加し、前記第２モードから前記第１モードに遷移する、
請求項１に記載の磁気ディスク装置。
【請求項５】
前記コマンドは、前記第４領域のサイズを指定する情報を含む、
請求項４に記載の磁気ディスク装置。
【請求項６】
前記制御回路は、
前記ホストから新規のデータを受け付けることができる第１モードと、前記ホストからの新規のデータの受け付けが禁止された第２モードと、を含む複数のモードで動作し、
前記第３領域に空き領域がなくなった場合、前記第１モードに維持したまま前記第４領域を前記第２領域から削除して前記第３領域に追加し、
前記第４領域の追加後、前記第３領域に空き領域がなくなった場合、前記第１モードから前記第２モードに遷移する、
請求項１に記載の磁気ディスク装置。
【請求項７】
前記制御回路は、前記第１領域に書き込まれたデータである第２データのリードを実行し、前記第２データのリードの結果に基づいて前記第２データが書き込まれた位置に欠陥が発生しているか否かを判定する、
請求項１に記載の磁気ディスク装置。
【請求項８】
前記制御回路は、前記第２データを第３データで上書きした後、前記第３データのベリファイを実行し、前記第２データのリードの結果と前記ベリファイの結果とに基づいて前記第２データが書き込まれ前記第３データが上書きされた位置に欠陥が発生しているか否かを判定する、
請求項７に記載の磁気ディスク装置。
【請求項９】
ホストから受信したデータが書き込まれる第１領域がアロケートされたディスク媒体と、
磁気ヘッドと、
前記第１領域に含まれた欠陥領域への書き込みを連続して実行する場合には、まず、前記磁気ヘッドを前記第１領域と異なる第２領域に移動させて書き込みを実行し、前記第２領域への書き込みを継続した後、前記磁気ヘッドを前記第２領域から前記第１領域および前記第２領域の何れとも異なる第３領域に移動させて書き込みを再開する、制御回路と、
を備える磁気ディスク装置。
【請求項１０】
ディスク媒体にアロケートされた、ホストから受信した第１データが書き込まれる第１領域と、前記第１データが前記第１領域に書き込まれる前に前記第１データが一時的に記録される第２領域と、冗長な領域である第３領域と、のうちの前記第１領域に発生する欠陥を検出するステップと、
前記第１領域に前記欠陥が検出された場合、前記欠陥が検出された前記第１領域内の第１の位置を前記第３領域内の第２の位置で代替するステップと、
前記第３領域の空き領域の合計サイズに応じて、前記第２領域のうちの一部または全部である第４領域を前記第２領域から削除して前記第４領域を前記第３領域に追加するステップと、
を備える制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本実施形態は、磁気ディスク装置および制御方法に関する。
【背景技術】
【０００２】
従来、磁気ディスク装置では、動作中に、データを正常にリードできないセクタがユーザ領域に生じる場合がある。磁気ディスク装置は、そのようなセクタを欠陥セクタとして検出する。そして、磁気ディスク装置は、データのライト先が欠陥セクタである場合には、そのデータを、ユーザ領域ではなく、予め設けられた代替領域にライトする。磁気ディスク装置は、代替領域に空き領域がなくなった場合、新たなデータの受け付けを禁止する。つまり、代替領域に空き領域がなくなった場合、ホストは、磁気ディスク装置に新たにデータを書き込むことができなくなる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許第９５４２３０６号明細書
【特許文献２】特開平５−６６９９９号公報
【特許文献３】米国特許出願公開第２０１４／１２２７９３号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００４】
一つの実施形態は、データを受け付けることが可能な期間を延長することを目的とする。
【課題を解決するための手段】
【０００５】
一つの実施形態によれば、磁気ディスク装置は、第１領域、第２領域および第３領域がアロケートされたディスク媒体と、制御回路と、を備える。第１領域は、ホストから受信した第１データが書き込まれる領域である。第２領域は、第１データが第１領域に書き込まれる前に第１データが一時的に記録される領域である。第３領域は、冗長な領域である。制御回路は、第１領域に発生する欠陥の検出を実行し、第１領域に欠陥が検出された場合、欠陥が検出された第１領域内の第１の位置を第３領域内の第２の位置で代替する。制御回路は、第３領域の空き領域の合計サイズに応じて第２領域のうちの一部または全部である第４領域を第２領域から削除して第４領域を第３領域に追加する。
【図面の簡単な説明】
【０００６】
【図１】図１は、第１の実施形態にかかる磁気ディスク装置のハードウェア構成の一例を示す図である。
【図２】図２は、第１の実施形態にかかる磁気ディスクの構成の一例を示す図である。
【図３】図３は、第１の実施形態にかかる磁気ディスクにアロケートされた各領域の位置の一例を示す図である。
【図４】図４は、第１の実施形態の特徴的な処理の概要を説明するための模式的かつ例示的な図である。
【図５】図５は、第１の実施形態の特徴的な処理の概要を説明するための模式的かつ例示的な図である。
【図６】図６は、第１の実施形態の特徴的な処理の概要を説明するための模式的かつ例示的な図である。
【図７】図７は、第１の実施形態にかかる制御回路の構成の一例を示す図である。
【図８】図８は、第１の実施形態にかかるリード処理の手順の一例を示すフローチャートである。
【図９】図９は、第１の実施形態にかかるライト処理の手順の一例を示すフローチャートである。
【図１０】図１０は、第１の実施形態にかかるアロケーションの更新に関する手順の一例を示すフローチャートである。
【図１１】図１１は、第２の実施形態にかかるアロケーションの更新に関する手順の一例を示すフローチャートである。
【図１２】図１２は、第３の実施形態にかかるアロケーションの更新に関する手順の一例を示すフローチャートである。
【発明を実施するための形態】
【０００７】
以下に添付図面を参照して、実施形態にかかる磁気ディスク装置および制御方法を詳細に説明する。なお、これらの実施形態により本発明が限定されるものではない。
【０００８】
（第１の実施形態）
図１は、第１の実施形態にかかる磁気ディスク装置のハードウェア構成の一例を示す図である。図１には、磁気ディスク装置１の上部カバーを外した場合の筐体１００内部の構成を示している。図１に示すように、磁気ディスク装置１は、磁気ディスク１０１、データのリード（読み出し）およびライト（書き込み）を行う磁気ヘッド１０２、などを備えている。
【０００９】
磁気ディスク１０１は、データのリードおよびライトが可能なディスク媒体である。磁気ディスク１０１は、２枚設けられている磁気ディスクの内の１枚（第１の磁気ディスク１０１）であり、もう１枚（第２の磁気ディスク１０１（図７参照））は、第１の磁気ディスク１０１の背面側（図１の紙面の奥行側）に配置されている。なお、本実施形態では、磁気ディスクの枚数を２枚として説明するが、磁気ディスクの枚数は、１枚だけでもよいし、また３枚以上であってもよい。
【００１０】
第１の磁気ディスク１０１および第２の磁気ディスク１０１は、スピンドルモータの回転軸１０３に対し、回転軸１０３の軸方向に所定ピッチで装着されており、当該回転軸１０３の回転駆動により同じ回転数で一体的に回転する。
【００１１】
磁気ヘッド１０２はアーム１０４の先端部に取り付けられている。アーム１０４は、ＶＣＭ（Voice  Coil  Motor）１０５により駆動され、軸１０６を中心に正負の両方向に決められた範囲内で回転する。この動作により、磁気ヘッド１０２は破線Ｔ上を移動し、磁気ディスク１０１の径方向の何れかのトラック上に位置決めする。磁気ヘッド１０２とアーム１０４とからなるヘッドユニットは、各磁気ディスク１０１の表（おもて）面と裏面のそれぞれに１組ずつの計４組が設けられている。各組のヘッドユニットは、ヘッド番号によって特定され得る。
【００１２】
磁気ヘッド１０２は、具体的に、アーム１０４の先端部に設けられているサスペンション１０７の先端にあるヘッドスライダ１０８に搭載されている。磁気ヘッド１０２は、リード素子およびライト素子を有し、リード素子により磁気ディスク１０１上の走査対象の面のデータをリードし、ライト素子により磁気ディスク１０１上の上記走査対象の面にデータをライトする。つまり、磁気ヘッド１０２は、磁気ディスク１０１に設けられた記録面（記憶領域１１０）にアクセスする。図１に示す例では、磁気ヘッド１０２は第１の磁気ディスク１０１上の表面に対しデータのリードおよびライトを行う。
【００１３】
これらの他、磁気ディスク装置１は、磁気ヘッド１０２を磁気ディスク１０１上から退避してパーキングするランプロード機構１０９などを備える。
【００１４】
図１の紙面の奥行側に位置する磁気ディスク装置１の底部には、磁気ディスク装置１の各部を制御する制御回路２０（図７参照）が設けられている。制御回路２０は、磁気ディスク装置１の筐体１００に外部接続のために設けられている接続ピン等のインターフェイスを介してホスト２（図７参照）と通信し、ホスト２からのコマンドなどに応じて磁気ディスク装置１の各部を制御する。
【００１５】
図２は、第１の実施形態にかかる磁気ディスク１０１の構成の一例を示す図である。磁気ディスク１０１は、プラッタの両面に磁性体を有し、出荷前にサーボライタなどによりサーボ情報がライトされたものである。サーボ情報は、例えばバーストパターンである。図２には、サーボ情報がライトされたサーボゾーンの配置の一例として放射状に配置されたサーボゾーン１０１ａを示している。磁気ディスク１０１の径方向には同心円の複数のトラック１０１ｂが所定のピッチで設けられている。各トラック１０１ｂの周回上は多数のセクタが連続的に形成されている。各セクタは磁性領域を有し、データの書き換えが自在である。それぞれ多数のセクタを有する複数のトラック１０１ｂによって、記憶領域１１０が構成される。
【００１６】
実施形態では、記憶領域１１０には、ホスト２から受信したデータがライトされるユーザ領域１２１と、ホスト２から受信したデータがユーザ領域１２１にライトされる前に当該データが一時的に記録されるメディアキャッシュ領域１２０と、冗長な領域である代替領域１２２と、がアロケートされている。
【００１７】
図３は、第１の実施形態にかかる磁気ディスク１０１にアロケートされた各領域の位置の一例を示す図である。本図の例によれば、磁気ディスク１０１の径方向の中心から最も遠い位置から磁気ディスク１０１の径方向の中心に最も近い位置に向かって、メディアキャッシュ領域１２０、ユーザ領域１２１、代替領域１２２が、この順番でアロケートされている。
【００１８】
ユーザ領域１２１は、多数のセクタによって構成される。ユーザ領域１２１内の各セクタには論理アドレスが対応付けられる。論理アドレスは、磁気ディスク装置１がホスト２に提供する論理アドレス空間内の位置を示す情報である。つまり、ユーザ領域１２１は、表記容量に対応した数のセクタを有する。
【００１９】
メディアキャッシュ領域１２０は、例えば複数のセクタによって構成される。また、代替領域１２２は、少なくとも１つのセクタを備えている。
【００２０】
磁気ディスク装置１では、動作中に、データが正常にリードできないセクタが発生する場合がある。そのセクタでは、書き込まれたデータと同じデータ（即ち、正しいデータ）が読み出すことができないか、あるいは書き込まれたデータと同じデータが読み出すことが困難である。磁気ディスク装置１は、このようなセクタを欠陥セクタとして検出する。
【００２１】
磁気ディスク装置１は、ホスト２からデータを受信すると、当該データをメディアキャッシュ領域１２０にライトして、ホスト２にはライトが完了した旨の通知を送信する。磁気ディスク装置１は、メディアキャッシュ領域１２０にライトされたデータを、所定のタイミングで、ユーザ領域１２１に転送する。ユーザ領域１２１内の転送先の位置は、例えばそのデータの位置を示す論理アドレスが対応付けられたセクタである。
【００２２】
ユーザ領域１２１内の転送先のセクタが欠陥セクタである場合、磁気ディスク装置１は、そのデータを代替領域１２２にライトする。そして、磁気ディスク装置１は、当該データの位置を示す論理アドレスに対応するセクタを、当該欠陥セクタから前記データが書き込まれた代替領域１２２内のセクタに変更する。これによって、欠陥セクタは、代替領域１２２内のセクタによって代替される。
【００２３】
代替するとは、ユーザ領域１２１内の欠陥セクタの代わりに代替領域１２２内の当該欠陥セクタのサイズの記憶領域を使用することである。使用するとは、ライトだけでなくリードも含む。ユーザ領域１２１内の欠陥セクタと論理アドレスとの対応関係を解消して、当該論理アドレスを代替領域１２２内のセクタに対応付けることは、代替を実現するための方法の一例である。当該論理アドレスが代替領域１２２内のセクタに対応付けられることによって、当該論理アドレスを指定したリード要求を受領した場合に、前記した欠陥セクタの代わりに代替領域１２２にライトされたデータがリードされる。
【００２４】
本明細書では、データのライト先をユーザ領域１２１内のセクタから代替領域１２２内のセクタに変更する処理を、交代処理と表記する。
【００２５】
従来は、代替領域に空き領域、つまり代替が可能なセクタ、がなくなった場合、磁気ディスク装置は、新たなデータの受け付けが禁止されたモード（ライト禁止モード）に遷移する。データをユーザ領域に書き込んだとしても、交代処理が実行できないためにそのデータのリードが不可能になる虞があるからである。新たなデータの受け付けが禁止される、とは、換言すると、新たなデータのライトのためのライトコマンドの処理が禁止されていることである。つまり、ライト禁止モードでは、ホストは、磁気ディスク装置にライトコマンドを実行させることができない。
【００２６】
実施形態では、メディアキャッシュ領域１２０を活用することによって、データの受け付けが可能な期間を延長する。具体的には、磁気ディスク装置１は、代替領域１２２に空き領域がなくなった場合、メディアキャッシュ領域１２０から一部の領域を削除して、当該一部の領域を代替領域１２２に追加する。
【００２７】
図４〜図６は、第１の実施形態の特徴的な処理の概要を説明するための模式的かつ例示的な図である。
【００２８】
図４は、メディアキャッシュ領域１２０、ユーザ領域１２１、および代替領域１２２がアロケートされた記憶領域１１０の模式図である。説明をわかりやすくするために、ここでは一例として、代替領域１２２は、３つのセクタ１３０を有することとする。本図の例では、まだユーザ領域１２１には欠陥セクタが発生しておらず、代替領域１２２が備える３つのセクタ１３０は未使用の状態（空き領域）になっている。
【００２９】
ユーザ領域１２１に３つの欠陥セクタが発生した場合（符号１３１）、図５に示されるように、３つの欠陥セクタ１３１は、代替領域１２２の３つのセクタ１３０によって代替される。これによって、代替領域１２２は空き領域がない状態となる。
【００３０】
代替領域１２２に空き領域がなくなった場合、図６に示されるように、メディアキャッシュ領域１２０に含まれていた領域１２３が、代替領域１２２に追加される。領域１２３は、空き領域として代替領域１２２に追加される。これによって、磁気ディスク装置１は、データの受け付けを継続することが可能になる。なお、図６の例では、メディアキャッシュ領域１２０から３つのセクタ１３２が削除されて、当該３つのセクタ１３２が代替領域１２２に追加された場合を示している。
【００３１】
以降の説明では、新たなデータの受け付けが禁止されていないモードを、通常モードと表記する。つまり、磁気ディスク装置１は、通常モードかまたはライト禁止モードで動作することができる。
【００３２】
通常モードは、新たなデータを受け付けることが可能なモード、つまりデータのライトが禁止されていないモードである。通常モードでは、データの受け付けだけでなくデータの出力（リード）も可能である。なお、ライト禁止モードにおいては、データの出力（リード）が可能であってもよいし、データの出力（リード）が禁止されていてもよい。
【００３３】
なお、磁気ディスク装置１の動作モードは、通常モードおよびライト禁止モードの他に任意のモードを含んでいてもよい。
【００３４】
構成の説明に戻る。
図７は、第１の実施形態にかかる制御回路２０の構成の一例を示す図である。本図に示されるように、制御回路２０は、プリアンプ（ＰｒｅＡｍｐ）２１、リードチャネル回路（ＲＤＣ）２２、ハードディスクコントローラ（ＨＤＣ）２３、ＤＳＰ（Digital  Signal  Processor）２４、ＭＰＵ（Micro  Processing  Unit）２５、およびメモリ２６を備える。
【００３５】
プリアンプ２１は、磁気ヘッド１０２（リード素子）が磁気ディスク１０１から読み取った信号を増幅して出力し、ＲＤＣ２２に供給する。また、プリアンプ２１は、ＲＤＣ２２から供給された信号を増幅して、磁気ヘッド１０２（ライト素子）に供給する。
【００３６】
ＲＤＣ２２は、誤り訂正のための符号化および復号化を実行するＥＣＣ（Error  Correction  Code）回路２７を備える。ＲＤＣ２２は、磁気ディスク１０１にライトされるデータをＥＣＣ回路２７によって符号化して、符号化後のデータを信号としてプリアンプ２１に供給する。また、ＲＤＣ２２は、磁気ディスク１０１から読み取られプリアンプ２１から供給された信号をＥＣＣ回路２７によって復号化することによって、信号に含まれるエラーの検出および訂正を実行する。そして、ＲＤＣ２２は、エラーが訂正された信号をディジタルデータとしてＨＤＣ２３へ出力する。
【００３７】
なお、ＥＣＣ回路２７が使用する誤り訂正のための符号化および復号化の方式は、特定の方式に限定されない。一例では、ＬＤＰＣ（Low  Density  Parity  Check）が採用され得る。
【００３８】
誤り訂正のための符号化および復号化のうちの１つまたは全部は、後述するＭＰＵ２５によって実行されてもよい。
【００３９】
ＤＳＰ２４は、スピンドルモータおよびＶＣＭ１０５を制御して、シークおよびフォローイングなどの位置決め制御を行う。具体的に、ＤＳＰ２４は、ＲＤＣ２２からの信号から得たサーボ情報を復調し、サーボ情報から復調した位置と目標位置との誤差に従いＶＣＭ駆動指令値を演算することにより、上記位置決め制御を行う。
【００４０】
ＨＤＣ２３は、ホスト２と所定のインタフェースで接続され、ホスト２との通信を実行する。インタフェースが準拠する規格は特定の規格に限定されない。ＨＤＣ２３は、ＲＤＣ２２からデータを受け、当該データをホスト２へ転送する。また、ＨＤＣ２３は、ホスト２からデータを受け、当該データをＲＤＣ２２へ出力する。
【００４１】
ＭＰＵ２５は、ＨＤＣ２３が受け取ったホストからのコマンドを解析し、解析された結果に基づいて磁気ディスク装置１の各部の制御を行う。特に、ＭＰＵ２５は、ホスト２から受信したデータのライト処理や、ホスト２に送信するデータのリード処理や、交代処理や、図４〜６を用いて説明したアロケーションの変更などを制御する。また、ＭＰＵ２５は、動作モードの遷移などの制御を行う。
【００４２】
メモリ２６は、データの書き換えが自在な記憶装置である。メモリ２６は、ＭＰＵ２５が実行する各種処理のためのプログラムおよび各種管理情報が格納される領域、バッファとしての領域、キャッシュとしての領域、などとして機能する。メモリ２６は、揮発性メモリ、不揮発性メモリ、またはこれらの組み合わせによって構成される。揮発性メモリは、例えば、ＳＲＡＭ（Static  Random  Access  Memory）、ＤＲＡＭ（Dynamic  Random  Access  Memory）などであってもよい。不揮発性メモリは、フラッシュメモリなどであってもよい。
【００４３】
メモリ２６には、各種管理情報の一例として、アロケーション情報２６１、マッピング情報２６２、および候補情報２６３が格納される。アロケーション情報２６１は、各領域（メディアキャッシュ領域１２０、ユーザ領域１２１、および代替領域１２２）の位置を示す情報である。マッピング情報２６２は、論理アドレスと記憶領域１１０内のセクタとの対応関係を示す情報である。候補情報２６３は、欠陥セクタである可能性が高いセクタが記録される情報である。アロケーション情報２６１、マッピング情報２６２および候補情報２６３の使用方法の詳細は、磁気ディスク装置１の動作の説明において明らかにする。
【００４４】
続いて、第１の実施形態の磁気ディスク装置１の動作について説明する。
【００４５】
図８は、第１の実施形態にかかるリード処理の手順の一例を示すフローチャートである。制御回路２０は、例えばホスト２からリードコマンドを受領した際に、本図に示されるリード処理を実行する。リードコマンドは、リード位置を示す論理アドレスを含んでいる。
【００４６】
まず、制御回路２０は、リードコマンドに含まれる論理アドレスに対応するユーザ領域１２１内のセクタから、データをリードする（Ｓ１０１）。
【００４７】
初期状態においては、例えば、論理アドレス空間内の各論理アドレスは、マッピング情報２６２によってユーザ領域１２１内の何れかのセクタと１対１に対応付けられている。マッピング情報２６２のデータ構造は任意に構成され得る。一例では、マッピング情報２６２は、論理アドレス順にそれぞれの論理アドレスに対応するセクタを示す物理アドレスが記録されている。別の例では、マッピング情報２６２には、論理アドレスと物理アドレスとの対が多数、記録されている。
【００４８】
Ｓ１０１では、制御回路２０（例えばＭＰＵ２５）がマッピング情報２６２を参照することによって、当該論理アドレスに対応するユーザ領域１２１内のセクタ（リード先のセクタ）を特定する。
【００４９】
また、Ｓ１０１では、制御回路２０は、リード先のセクタに対し、複数回のリードを実行することができる。制御回路２０は、磁気ディスク１０１からリードされたデータに対し、ＥＣＣ回路２７によって誤り訂正を実施する。誤り訂正が失敗した場合、制御回路２０は、リードのためのパラメータを変更して、リードと誤り訂正とを再び実行する。制御回路２０は、正しいデータが得られるまで（即ち誤り訂正が成功するまで）、パラメータを変更しながら、複数回のリードを実行することができる。パラメータは、例えば、リード素子の電流値の設定値などである。なお、パラメータは、これに限定されない。
【００５０】
続いて、制御回路２０（例えばＭＰＵ２５）は、Ｓ１０１のリードの結果に基づいて、リード先のセクタは欠陥セクタである可能性が高いか否かを判定する（Ｓ１０２）。
【００５１】
リード先のセクタは欠陥セクタである可能性が高いか否かの判定の基準は、特定の基準に限定されない。一例では、ＭＰＵ２５は、Ｓ１０１において実行されたリードの回数をカウントする。そして、リードの回数のカウント値が所定のしきい値を超えた場合には、ＭＰＵ２５は、リード先のセクタは欠陥セクタである可能性が高いと判定する。リードの回数のカウント値が前記したしきい値を超えていない場合には、ＭＰＵ２５は、リード先のセクタは欠陥セクタである可能性は高くないと判定する。
【００５２】
リード先のセクタが欠陥セクタの可能性が高いと判定された場合（Ｓ１０２、Ｙｅｓ）、制御回路２０（例えばＭＰＵ２５）は、リード先のセクタを候補情報２６３に登録する（Ｓ１０３）。
【００５３】
つまり、候補情報２６３には、リード先のセクタが欠陥セクタの候補として記録される。候補情報２６３には、欠陥セクタである可能性が高いセクタ、即ち欠陥セクタの候補、に対応付けられている論理アドレスが記録されてもよいし、そのセクタを示す物理アドレスが記録されてもよい。
【００５４】
リード先のセクタは欠陥セクタである可能性が高くないと判定された場合（Ｓ１０２、Ｎｏ）、またはＳ１０３の処理によって、リード処理が終了する。なお、制御回路２０（例えばＨＤＣ２３）は、誤り訂正によって訂正されたデータをホスト２に送信する。
【００５５】
図９は、第１の実施形態にかかるライト処理の手順の一例を示すフローチャートである。制御回路２０は、例えばホスト２からライトコマンドを受信した際に、本図に示されるライト処理を実行する。ライトコマンドは、ライト位置を示す論理アドレスを含んでいる。
【００５６】
まず、制御回路２０は、ホスト２から受信したデータを、メディアキャッシュ領域１２０にライトする（Ｓ２０１）。メディアキャッシュ領域１２０へのライトが完了した場合、ＨＤＣ２３は、ホスト２にライトコマンドの実行の完了を通知し得る。
【００５７】
なお、制御回路２０は、ホスト２から受信したデータをメモリ２６に蓄積し、メモリ２６に蓄積されたデータの量が所定量を超えたときに、メモリ２６に蓄積されたデータをまとめてメディアキャッシュ領域１２０にライトしてもよい。
【００５８】
制御回路２０（例えばＭＰＵ２５）は、転送のタイミング、即ちメディアキャッシュ領域１２０に書き込まれたデータをユーザ領域１２１に移動させるタイミング、が到来したか否かを判定する（Ｓ２０２）。
【００５９】
転送のタイミングの判定基準は、特定の基準に限定されない。例えば、制御回路２０は、メディアキャッシュ領域１２０に書き込まれたデータの量が所定量を超えたときに、転送のタイミングが到来したと判定してもよい。別の例では、制御回路２０は、制御回路２０がアイドル状態、即ち処理を実行中でない場合や、他に重要な処理を実行中でない場合に、転送のタイミングが到来したと判定してもよい。
【００６０】
転送のタイミングが到来したと判定されていない場合（Ｓ２０２、Ｎｏ）、Ｓ２０１の処理が再び実行される。なお、転送のタイミングが到来したと判断されていない場合（Ｓ２０２、Ｎｏ）、Ｓ２０２の処理が再び実行されてもよい。
【００６１】
転送のタイミングが到来したと判定された場合（Ｓ２０２、Ｙｅｓ）、制御回路２０は、制御回路２０は、メディアキャッシュ領域１２０内のデータをユーザ領域１２１にライトする（Ｓ２０３）。
【００６２】
例えばＳ２０３の処理では、制御回路２０（例えばＭＰＵ２５）がマッピング情報２６２を参照することによって、メディアキャッシュ領域１２０内のデータの論理アドレス空間内の位置を示す論理アドレスに対応するユーザ領域１２１内のセクタ（ライト先のセクタ）を特定する。
【００６３】
なお、メディアキャッシュ領域１２０内に複数セクタのデータが書き込まれている場合には、Ｓ２０３以降の処理は、セクタ毎に実行される。
【００６４】
続いて、制御回路２０（例えばＭＰＵ２５）は、ユーザ領域１２１内のライト先のセクタが候補情報２６３に登録されているか否かを判定する（Ｓ２０４）。
【００６５】
つまり、Ｓ２０４では、ユーザ領域１２１内のライト先のセクタが欠陥セクタである可能性が高いか否かが判定される。
【００６６】
ユーザ領域１２１内のライト先のセクタが候補情報２６３に登録されていると判定された場合（Ｓ２０４、Ｙｅｓ）、制御回路２０は、データが正常にライトされたか否かを確認する処理であるベリファイを実行する（Ｓ２０５）。
【００６７】
Ｓ２０５では、例えば、制御回路２０は、ライトされたデータのリードを試みる。そして、制御回路２０は、リードの試みによって、当該データが正常にリードされたか否かを確認する。つまり、制御回路２０は、ライト前のデータと同じデータがリードによって得られたか否かを確認する。ベリファイ時には、ＥＣＣ回路２７は、誤り訂正を実行してもよいし、誤り訂正を実行しなくてもよい。例えば、ライト前のデータと同じデータがリードによって得られた場合、制御回路２０は、ベリファイＯＫと判定する。ライト前のデータと同じデータがリードによって得られなかった場合、制御回路２０は、ベリファイＮＧと判定する。
【００６８】
なお、ベリファイの処理の詳細はこれに限定されない。制御回路２０は、ベリファイにおいても複数回のリードを行ってもよい。
【００６９】
ベリファイの結果がベリファイＮＧである場合（Ｓ２０６、Ｙｅｓ）、制御回路２０は、ユーザ領域１２１内のライト先のセクタは欠陥セクタであると決定する。つまり、制御回路２０は、ユーザ領域１２１内のライト先のセクタを欠陥セクタとして検出（特定）する。その場合、制御回路２０は、データ、つまりＳ２０３の処理によって欠陥セクタにライトされたデータと同じデータを、メディアキャッシュ領域１２０から代替領域１２２にライトする（Ｓ２０７）。
【００７０】
Ｓ２０７では、例えば、制御回路２０（例えばＭＰＵ２５）は、アロケーション情報２６１を参照することによって代替領域１２２の位置を特定することができる。制御回路２０（例えばＭＰＵ２５）は、代替領域１２２に含まれる１以上のセクタのうちの、空いているセクタ、つまりまだ代替されていないセクタを、ライト先として選択する。
【００７１】
Ｓ２０７に続いて、制御回路２０（例えばＭＰＵ２５）は、マッピング情報２６２を更新する（Ｓ２０８）。つまり、制御回路２０は、Ｓ２０３の処理によって欠陥セクタにライトされたデータの論理アドレス空間内の位置を示す論理アドレスが対応するセクタを、欠陥セクタとして決定されたセクタから、代替領域１２２内のライト先のセクタに更新する。
【００７２】
これによって、制御回路２０は、当該論理アドレスを含むリードコマンドを処理する際には、マッピング情報２６２の参照によって、代替領域１２２内のセクタをリード先として特定することができる。つまり、欠陥セクタとして決定されたセクタは、代替領域１２２内のセクタによって代替される。
【００７３】
ユーザ領域１２１内のライト先のセクタが候補情報に登録されていないと判定された場合（Ｓ２０４、Ｎｏ）、ベリファイの結果がベリファイＯＫである場合（Ｓ２０６、Ｎｏ）、またはＳ２０８の処理の後、ライト処理が完了する。
【００７４】
なお、制御回路２０は、ライト処理の完了の直前に、メディアキャッシュ領域１２０の転送元のセクタに格納されたデータは消去され得る。
【００７５】
図１０は、第１の実施形態にかかる各領域（メディアキャッシュ領域１２０、ユーザ領域１２１、および代替領域１２２）のアロケーションの更新に関する手順の一例を示すフローチャートである。
【００７６】
制御回路２０（例えばＭＰＵ２５）は、代替領域１２２に空き領域、つまり代替可能なセクタがあるか否かを判定する（Ｓ３０１）。
【００７７】
Ｓ３０１の処理は、任意の方法で実現できる。例えば、制御回路２０（例えばＭＰＵ２５）は、代替領域１２２のセクタのうちのデータがライトされたセクタをカウントし、代替領域１２２を構成するセクタの数からデータがライトされたセクタの数を減算することによって、代替可能なセクタの数を取得することができる。制御回路２０（例えばＭＰＵ２５）は、代替可能なセクタの数がゼロでない場合、代替領域１２２に空き領域があると判定する。制御回路２０（例えばＭＰＵ２５）は、代替可能なセクタの数がゼロである場合、代替領域１２２に空き領域がないと判定する。
【００７８】
代替領域１２２に空き領域があると判定された場合（Ｓ３０１、Ｙｅｓ）、制御回路２０（例えばＭＰＵ２５）は、Ｓ３０１の処理を再び実行する。代替領域１２２に空き領域がないと判定された場合（Ｓ３０１、Ｎｏ）、制御回路２０（例えばＭＰＵ２５）は、アロケーション情報２６１を更新することによって、メディアキャッシュ領域１２０のうちの所定サイズの領域を代替領域１２２に追加する（Ｓ３０２）。
【００７９】
空き領域の追加の後、制御回路２０（例えばＭＰＵ２５）は、Ｓ３０１の処理と同様に、代替領域１２２に空き領域があるか否かを判定する（Ｓ３０３）。
【００８０】
代替領域１２２に空き領域があると判定された場合（Ｓ３０３、Ｙｅｓ）、制御回路２０（例えばＭＰＵ２５）は、Ｓ３０３の処理を再び実行する。
【００８１】
代替領域１２２に空き領域がないと判定された場合（Ｓ３０３、Ｎｏ）、制御回路２０（例えばＭＰＵ２５）は、通常モードからライト禁止モードに遷移する（Ｓ３０４）。そして、アロケーションの更新の処理が終了する。
【００８２】
このように、第１の実施形態によれば、制御回路２０は、ユーザ領域１２１に発生する欠陥の検出を実行する（図８のＳ１０２およびＳ１０３、図９のＳ２０４〜Ｓ２０６）。ユーザ領域１２１に欠陥が検出された場合（図９のＳ２０６，Ｙｅｓ）、制御回路２０は、ユーザ領域１２１内の欠陥が検出されたセクタを代替領域１２２内のセクタで代替する（図９のＳ２０７，Ｓ２０８）。制御回路２０は、代替領域１２２に空き領域がなくなった場合（図１０のＳ３０１，Ｎｏ）、メディアキャッシュ領域１２０のうちの所定サイズの領域を代替領域１２２に追加する（図１０のＳ３０２）。
【００８３】
つまり、制御回路２０は、代替領域１２２に空き領域がなくなった場合に直ちにライト禁止モードに遷移するのではなく、メディアキャッシュ領域１２０を利用することによって代替領域１２２に空き領域を追加する。これによって、データを受け付けることが可能な期間を延長することができる。
【００８４】
磁気ディスク装置１が上記のように構成されたことから、例えば制御回路２０が複数の欠陥領域に対して連続してライトを実行する場合には、磁気ヘッド１０２が特徴的な動きをすることになる。この特徴的な動きについて、図３の例に従って説明する。
【００８５】
即ち、制御回路２０は、複数の欠陥領域に対して連続してライトが実行する場合、まず、磁気ディスク１０１の径方向の中心に最も近い位置に設けられた領域（図３の代替領域１２２）に磁気ヘッド１０２を移動させてライトを実行する。制御回路２０は、その領域へのライトを継続した後、磁気ディスク１０１の径方向の中心から最も遠い位置に設けられた領域（図３のメディアキャッシュ領域１２０）に磁気ヘッド１０２を移動させてライトを再開する。
【００８６】
以上の説明では、アロケーションの代替がセクタ単位で実行されることとして説明した。アロケーションの代替は、セクタと異なる任意の単位で実行され得る。
【００８７】
また、代替領域１２２に空き領域がなくなった場合に代替領域１２２への領域の追加が実行されることとして説明した。代替領域１２２への領域の追加の実行のトリガ条件は、代替領域１２２に空き領域がなくなった場合に限定されない。例えば、制御回路２０は、代替領域１２２に空き領域の合計サイズが所定値を下回ったことを検知した場合に、代替領域１２２への領域の追加を実行してもよい。
【００８８】
また、メディアキャッシュ領域１２０のうちの一部の領域が代替領域１２２に追加されるとして説明した。メディアキャッシュ領域１２０の全部が代替領域１２２に追加されてもよい。
【００８９】
また、メディアキャッシュ領域１２０のうちの所定サイズの領域が代替領域１２２に追加されるとして説明した。追加される領域のサイズは、メディアキャッシュ領域１２０のサイズに対する割合として定められていてもよい。
【００９０】
また、代替領域１２２に空き領域が２回目になくなった場合（Ｓ３０３、Ｎｏ）、制御回路２０は通常モードからライト禁止モードに遷移する（Ｓ３０４）、として説明した。制御回路２０は、代替領域１２２に空き領域が２回目になくなった場合にも、メディアキャッシュ領域１２０のうちのさらに別の一部の領域を代替領域１２２に追加してもよい。つまり、代替領域１２２への領域の追加は、メディアキャッシュ領域１２０が余っている限り、２回以上、実行され得る。
【００９１】
また、制御回路２０は、データのリードの際にリードの結果に基づいて欠陥セクタの候補を特定し（図８のＳ１０２，Ｓ１０３）、欠陥セクタの候補に対して別のデータを上書きした際にベリファイを実行し（図９のＳ２０４，Ｓ２０５）、ベリファイの結果に基づいて当該欠陥セクタの候補が欠陥セクタであるか否かを判定した（図９のＳ２０６）。欠陥の検出方法はこれに限定されない。例えば、制御回路２０は、リード処理の際にリードの結果のみに基づいて欠陥を検出してもよい。
【００９２】
また、欠陥セクタの検出は、任意の方法で任意のタイミングに実行され得る。また、代替領域１２２への領域の追加のタイミングは、ライト処理の際だけに限定されない。
【００９３】
また、磁気ディスク１０１の径方向の中心から最も遠い位置から磁気ディスク１０１の径方向の中心に最も近い位置に向かって、メディアキャッシュ領域１２０、ユーザ領域１２１、代替領域１２２が、この順番でアロケートされている、と説明した。メディアキャッシュ領域１２０、ユーザ領域１２１、および代替領域１２２がアロケートされる位置はこれに限定されない。
【００９４】
例えば、記憶領域１１０が、径方向に複数のゾーンに分割される場合がある。各ゾーンに対して個別に記録密度が設定される。このような方式は、Ｚｏｎｅ  ＣＡＶ（Constant  Angular  Velocity）方式として知られている。Ｚｏｎｅ  ＣＡＶが適用される場合、代替領域１２２が各ゾーンに分散して設けらてもよい。つまり、各ゾーンに、ユーザ領域１２１と代替領域１２２とがアロケートされ得る。
【００９５】
別の例では、磁気ディスク１０１の径方向の中心から最も遠い位置から磁気ディスク１０１の径方向の中心に最も近い位置に向かって、代替領域１２２、ユーザ領域１２１、メディアキャッシュ領域１２０が、この順番でアロケートされてもよい。
【００９６】
複数の磁気ディスク１０１に対して共通する方法で各領域がアロケートされてもよいし、磁気ディスク１０１毎に異なる方法で各領域がアロケートされてもよい。
【００９７】
（第２の実施形態）
第１の実施形態では、代替領域１２２の空き領域がなくなった場合（図１０のＳ３０１，Ｎｏ）、制御回路２０は、動作モードを通常モードを維持したまま代替領域１２２への領域の追加を実行した。
【００９８】
第２の実施形態では、代替領域１２２への領域の追加が実行される前に動作モードが一時的に通常モードからライト禁止モードに遷移せしめられる例について説明する。
【００９９】
なお、第２の実施形態では、第１の実施形態と異なる処理についてのみ説明する。第１の実施形態と同じ処理については説明を省略する。
【０１００】
図１１は、第２の実施形態にかかる各領域（メディアキャッシュ領域１２０、ユーザ領域１２１、および代替領域１２２）のアロケーションの更新に関するの手順の一例を示すフローチャートである。
【０１０１】
制御回路２０（例えばＭＰＵ２５）は、代替領域１２２に空き領域、つまり代替可能なセクタがあるか否かを判定する（Ｓ４０１）。Ｓ４０１の処理は、例えばＳ３０１の処理と同じである。
【０１０２】
代替領域１２２に空き領域があると判定された場合（Ｓ４０１、Ｙｅｓ）、制御回路２０（例えばＭＰＵ２５）は、Ｓ４０１の処理を再び実行する。代替領域１２２に空き領域がないと判定された場合（Ｓ４０１、Ｎｏ）、制御回路２０は、通常モードからライト禁止モードに遷移する（Ｓ４０２）。
【０１０３】
例えば、制御回路２０（例えばＨＤＣ２３）は、Ｓ４０２で実行された動作モードの遷移をホスト２に通知する。第２の実施形態では、ホスト２は、通常モードでの動作期間を延長するためのコマンド（延長コマンド）を磁気ディスク装置１に送信することができる。
【０１０４】
なお、制御回路２０（例えばＨＤＣ２３）は、必ずしもＳ４０２で実行された動作モードの遷移をホスト２に通知しなくてもよい。制御回路２０（例えばＨＤＣ２３）は、ライト禁止モードにおいてホストからライトコマンドを受信すると、ライトコマンドを受け付けない旨の応答をホスト２に送信してもよい。ホスト２は、当該応答の受信によって、ライト禁止モードへの遷移を認識できる。ホスト２は、ライト禁止モードへの遷移を認識した後、延長コマンドを送信することができる。
【０１０５】
延長コマンドのフォーマットは特定のフォーマットに限定されない。例えば磁気ディスク１０１とホスト２との通信路がSCSI(Small  Computer  System  Interface)規格に準拠している場合、延長コマンドは、ModeSelectコマンドの一つとして用意されていてもよい。
【０１０６】
ライト禁止モードでは、制御回路２０は、延長コマンドを待ち受ける（Ｓ４０３、Ｎｏ）。制御回路２０が延長コマンドを受信した場合（Ｓ４０３、Ｙｅｓ）、制御回路２０（例えばＭＰＵ２５）は、アロケーション情報２６１を更新することによって、メディアキャッシュ領域１２０のうちの所定サイズの領域を代替領域１２２に追加する（Ｓ４０４）。そして、制御回路２０（例えばＭＰＵ２５）は、ライト禁止モードから通常モードに遷移する（Ｓ４０５）。
【０１０７】
例えば、制御回路２０（例えばＨＤＣ２３）は、Ｓ４０５で実行された動作モードの遷移をホスト２に通知する。ホスト２は、通常モードへの遷移を認識した後、ライトコマンドの送信を実行することができる。
【０１０８】
続いて、Ｓ４０６，Ｓ４０７において、図１０のＳ３０３，Ｓ３０４と同じ処理が実行されて、アロケーションの更新に関する処理が終了する。
【０１０９】
このように、第２の実施形態では、代替領域１２２に空き領域がなくなった場合（図１１のＳ４０１、Ｎｏ）、制御回路２０は、通常モードからライト禁止モードに遷移する（図１１のＳ４０２）。制御回路２０は、ライト禁止モードにおいて、ホスト２から延長コマンドを受信した場合（図１１のＳ４０３、Ｙｅｓ）、メディアキャッシュ領域１２０のうちの所定サイズの領域を代替領域１２２に追加して（図１１のＳ４０４）、ライト禁止モードから通常モードに遷移する（図１１のＳ４０５）。
【０１１０】
これによって、下記の運用が可能となる。例えば、磁気ディスク装置１の動作モードが通常モードからライト禁止モードに遷移した場合、使用者は、磁気ディスク装置１の製品寿命が尽きかけていることを認識することができる。使用者は、磁気ディスク装置１の製品寿命が尽きかけていることを認識すると、ホスト２を操作することによって、ホスト２から延長コマンドを磁気ディスク装置１に送信する。磁気ディスク装置１は、代替領域１２２への空き領域の追加によって、しばらく通常モードでの動作が可能となる。使用者は、次に磁気ディスク装置１の動作モードが通常モードからライト禁止モードに遷移するまえに、別の磁気ディスク装置を用意して、磁気ディスク装置１を当該別の磁気ディスク装置に交換することができる。
【０１１１】
つまり、いったん磁気ディスク装置１の動作モードが通常モードからライト禁止モードに遷移した場合であっても、しばらくの間、磁気ディスク装置１の使用可能な期間を延長することができる。使用者が延長された期間内に別の磁気ディスク装置を用意することができれば、ホスト２の運用を停止する期間を最小にすることが可能となる。
【０１１２】
なお、第２の実施形態に関しても、第１の実施形態と同様に、アロケーションの代替の単位、代替領域１２２に追加される領域のサイズの定め方、代替領域１２２に領域を追加する回数、などについて種々の変形が可能である。
【０１１３】
（第３の実施形態）
第２の実施形態では、代替領域１２２に追加される領域のサイズが予め設定されていた。
【０１１４】
第３の実施形態では、代替領域１２２に追加される領域のサイズがホスト２によって設定され得る例について説明する。
【０１１５】
なお、第３の実施形態では、第１、第２の実施形態と異なる処理についてのみ説明する。第１、第２の実施形態と同じ処理については説明を省略する。
【０１１６】
図１２は、第３の実施形態にかかる各領域（メディアキャッシュ領域１２０、ユーザ領域１２１、および代替領域１２２）のアロケーションの更新に関するの手順の一例を示すフローチャートである。
【０１１７】
Ｓ５０１，Ｓ５０２では、図１１のＳ４０１，Ｓ４０２と同じ処理が実行される。
【０１１８】
第３の実施形態では、延長コマンドは、サイズの指定を含み得る。サイズは、メディアキャッシュ領域１２０のサイズに対する割合によって指定されてもよい。
【０１１９】
ライト禁止モードでは、制御回路２０は、サイズの指定を含む延長コマンドを待ち受ける（Ｓ５０３、Ｎｏ）。制御回路２０がサイズの指定を含む延長コマンドを受信した場合（Ｓ５０３、Ｙｅｓ）、制御回路２０（例えばＭＰＵ２５）は、アロケーション情報２６１を更新することによって、メディアキャッシュ領域１２０のうちの延長コマンドによって指定されたサイズの領域を代替領域１２２に追加する（Ｓ５０４）。そして、制御回路２０（例えばＭＰＵ２５）は、ライト禁止モードから通常モードに遷移する（Ｓ４０５）。
【０１２０】
続いて、Ｓ５０５〜Ｓ５０７において、図１１のＳ４０５〜Ｓ４０７と同じ処理が実行されて、アロケーションの更新に関する処理が終了する。
【０１２１】
このように、磁気ディスク装置１は、代替領域１２２に追加される領域のサイズまたは割合がコマンドによって指定可能に構成され得る。
【０１２２】
第１〜第３の実施形態は、適宜、組み合わせ得る。第１〜第３の実施形態によれば、制御回路２０は、ユーザ領域１２１に発生する欠陥の検出を実行し、ユーザ領域１２１に欠陥が検出された場合、欠陥が検出された第１の位置を代替領域１２２内の第２の位置で代替する。制御回路２０は、代替領域１２２の空き領域の合計サイズに応じてメディアキャッシュ領域１２０ののうちの一部または全部の領域をメディアキャッシュ領域１２０から削除して代替領域１２２に追加する。
【０１２３】
これによって、データを受け付けることが可能な期間を延長することが可能となる。
【０１２４】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１２５】
１  磁気ディスク装置、２  ホスト、２０  制御回路、２５  ＭＰＵ、２６  メモリ、２７  ＥＣＣ回路、１００  筐体、１０１  磁気ディスク、１０２  磁気ヘッド、１１０  記憶領域、１２０  メディアキャッシュ領域、１２１  ユーザ領域、１２２  代替領域、１２３  領域、２６１  アロケーション情報、２６２  マッピング情報、２６３  候補情報。
【図１】
2020038740.tif 000003
【図２】
2020038740.tif 000004
【図３】
2020038740.tif 000005
【図４】
2020038740.tif 000006
【図５】
2020038740.tif 000007
【図６】
2020038740.tif 000008
【図７】
2020038740.tif 000009
【図８】
2020038740.tif 000010
【図９】
2020038740.tif 000011
【図１０】
2020038740.tif 000012
【図１１】
2020038740.tif 000013
【図１２】
2020038740.tif 000014