(57)【特許請求の範囲】
【請求項１】
データを記録するための複数のデータトラックを有する記録媒体と、
前記記録媒体にデータを記録するための記録手段と、
前記記録手段により、前記データトラックに記録されたデータの一部が後続して記録されるデータによって上書きされる記録が実行された後に、前記記録されたデータに関する管理情報を記録するコントローラと、
を備え、
前記コントローラは、
前記管理情報が記録されなかったことに応じて、前記記録されたデータトラックからデータをリードし、
前記リードでエラーセクタが検出された場合、前記検出されたエラーセクタがある第１のデータトラックによってその一部が上書きされる第２のデータトラックの、前記エラーセクタの隣接セクタのデータをオフセットリードし、
前記オフセットリードで前記隣接セクタがリードできたか否かに応じて、前記記録されたデータに関する前記管理情報を復旧する、
情報記録装置。
【請求項２】
前記コントローラは、前記リードでアンコレクタブルエラーが発生したセクタを、前記エラーセクタとして検出する、
請求項１に記載の情報記録装置。
【請求項３】
前記オフセットリードは、前記第２のデータトラックにデータが記録された際のライトトラック幅の範囲内であって、前記第１のデータトラック側に寄った位置でのリードである、
請求項１又は請求項２に記載の情報記録装置。
【請求項４】
前記コントローラは、前記オフセットリードで前記隣接セクタがリードできた場合、前記エラーセクタよりも前に記録されたデータに関する前記管理情報を復旧する、
請求項１から請求項３の何れか１項に記載の情報記録装置。
【請求項５】
前記コントローラは、
前記ライトされた各データトラック内の１セクタを順次リードし、
前記各データトラック内の１セクタのリードで、前記第１のデータトラックで前記エラーセクタが検出された場合、前記第２のデータトラック内の１セクタをオフセットリードし、
前記オフセットリードで前記第２のデータトラック内の１セクタがリードできた場合、前記第２のデータトラックをリードした結果に応じて、前記記録されたデータに関する前記管理情報を復旧する、
請求項１から請求項４の何れか１項に記載の情報記録装置。
【請求項６】
データを記録するための複数のデータトラックを有する記録媒体を備え、前記データトラックに記録されたデータの一部が後続して記録されるデータによって上書きされる記録が実行された後に、前記記録されたデータに関する管理情報を記録する情報記録装置でのデータ復旧方法であって、
前記管理情報が記録されなかったことに応じて、前記ライトされたデータトラックからデータをリードし、
前記リードでエラーセクタが検出された場合、前記検出されたエラーセクタがある第１のデータトラックによってその一部が上書きされる第２のデータトラックの、前記エラーセクタの隣接セクタのデータをオフセットリードし、
前記オフセットリードで前記隣接セクタがリードできたか否かに応じて、前記記録されたデータに関する前記管理情報を復旧する、
データ復旧方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、情報記録装置およびデータ復旧方法に関する。
【背景技術】
【０００２】
近年、ハードディスクドライブ（ＨＤＤ）に代表される情報記録装置では、高記録密度および高記録容量の向上が推進されている。これを実現するため、トラックに記録されたデータの一部が後続して記録されるトラックによって上書きされる記録方法（瓦記録方法とも称される）が提案されている。ところで、データの記録中に、例えば情報記録装置の電源遮断により、データの記録動作が中断されて、記録されたデータが消失することがあった。記録動作が中断された場合でも、トラックに記録されたデータは正常に実行された可能性があり、このデータの復旧処理が行われる。データを復旧するためには、記録動作が中断された位置を特定する必要があり、従来から、記録動作が中断された位置を特定する技術が、複数提案されている。データの復旧処理は、例えば、情報記録装置が電源断から復帰した直後に行われることがあった。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００２−０４２３０３号公報
【特許文献２】特開２００３−０５９０５１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特に瓦記録方法では、以前に記録されたトラックの一部が上書きされるため、エラーデータとなり得る量（長さ）はより多く、記録動作が中断された位置の特定に、より多くの時間を要する。すなわち、瓦記録方法を適用した情報記録装置において、消失したデータの復旧処理を、より確実に且つ高速に特定することが求められている。そこで、本発明が解決しようとする課題は、瓦記録方法を適用したデータ記録処理において、消失される可能性のあるデータをより好適に復旧することができる情報記録装置およびデータ復旧方法を提供することである。
【課題を解決するための手段】
【０００５】
実施形態による情報記録装置は、データを記録するための複数のデータトラックを有する記録媒体と、前記記録媒体にデータを記録するための記録手段と、前記記録手段により、前記データトラックに記録されたデータの一部が後続して記録されるデータによって上書きされる記録が実行された後に、前記記録されたデータに関する管理情報を記録するコントローラと、を備え、前記コントローラは、前記管理情報が記録されなかったことに応じて、前記記録されたデータトラックからデータをリードし、前記リードでエラーセクタが検出された場合、前記検出されたエラーセクタがある第１のデータトラックによってその一部が上書きされる第２のデータトラックの、前記エラーセクタの隣接セクタのデータをオフセットリードし、前記オフセットリードで前記隣接セクタがリードできたか否かに応じて、前記記録されたデータに関する前記管理情報を復旧する。
【図面の簡単な説明】
【０００６】
【図１】複数の実施形態にかかる情報記録装置である磁気ディスク装置（ＨＤＤ）を備える電子システムの構成を示すブロック図。
【図２】複数の実施形態にかかるライト処理及びリカバリ処理を実行するブロックを説明するための構成図。
【図３】第１の実施形態にかかるリカバリ処理の動作を説明するためのフローチャート。
【図４】第１の実施形態にかかるリカバリ処理の動作を概念的に示す図。
【図５】第２の実施形態にかかるリカバリ処理の動作を説明するためのフローチャート。
【図６】第２の実施形態にかかるリカバリ処理の動作を概念的に示す図。
【発明を実施するための形態】
【０００７】
以下、いくつかの実施形態について図面を用いて説明する。なお、本発明は以下の実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、以下の実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
【０００８】
図１は、実施形態にかかる情報記録装置としての磁気ディスク装置（以下、ＨＤＤとも称する）１０を備える電子システム１５０の構成を示すブロック図である。電子システム１５０はホスト装置１００およびＨＤＤ１０を備えている。ホストＩ／Ｆ１２０は、ホスト装置１００とＨＤＤ１０とを接続し、ホスト装置１００とＨＤＤ１０との間のコマンドおよびユーザデータの送受信に利用される。ホストＩ／Ｆ１２０は、ＳＡＴＡ（Serial Advanced Technology Attachment）規格やＳＡＳ（Serial Attached SCSI）規格に準拠する。ＨＤＤ１０は、ホストＩ／Ｆ１２０を介してホスト装置１００と接続され、ホスト装置１００の情報記録装置として機能する。例えば、電子システム１５０は、パーソナルコンピュータやモバイル機器であり、ホスト装置１００は、パーソナルコンピュータ等に備えられるチップセットＩＣである。
【０００９】
ＨＤＤ１０は、磁気ディスク１、スライダ２、アーム３、ボイスコイルモータ（ＶＣＭ）４、及びスピンドルモータ（ＳＰＭ）５を含むヘッド・ディスクアセンブリ（Head-Disk Assembly：ＨＤＡ）を有する。またＨＤＤ１０は、モータドライバ２１、ヘッドＩＣ２２、不揮発性メモリ（ＮＶＲＡＭ）４３、及びコントローラ６０を含む回路ブロックを有する。
【００１０】
コントローラ６０は、リードライトチャネルＩＣ（以下、ＲＤＣとも称する）３１、ＣＰＵ４１、ＲＡＭ４２、及びＨＤＣ（Hard Disc Controller）５０を含む。ＲＡＭ４２は、磁気ディスク１よりも高速なデータ転送が可能な揮発性メモリであるＤＲＡＭ（ＳＤＲＡＭ）またはＳＲＡＭが適用される。ＮＶＲＡＭ４３は、不揮発性の記録部であり、フラッシュメモリやＮＡＮＤメモリといった半導体メモリや、磁気ディスク１の一部の記録領域が適用される。
【００１１】
実施形態にかかるＨＤＤ１０は、磁気ディスク１にデータを記録する処理（ライト処理）、及び、磁気ディスク１に記録されたがその管理情報が更新されていないデータを読み出し可能に復旧する処理（リカバリ処理）を実行する。本実施形態にかかるライト処理には、トラックに記録されたデータの一部が後続して記録されるトラックによって上書きされる記録方法（以下、瓦記録方法とも称する）が適用される。リカバリ処理は、例えば、ＨＤＤ１０の電源遮断が発生した後の電源復帰の直後に実行される。これら複数の処理は、ＣＰＵ４１で実行されるプログラム（ファームウェア）に従って制御される。プログラムのデータは、ＮＶＲＡＭ４３や磁気ディスク１に記憶されている。
【００１２】
磁気ディスク１は、ＳＰＭ５により回転する。ＳＰＭ５は、モータドライバ２１からの駆動電流により駆動制御される。アーム３とＶＣＭ４はアクチュエータを構成する。アクチュエータは、スライダ２に実装されたヘッド（不図示）を磁気ディスク１上の目標位置まで移動（シーク）させる。即ち、アクチュエータは、ＶＣＭ４の駆動により、アーム３に搭載されているスライダ２（更に詳細にはヘッド）をディスク１上の径方向に移動させる。ＶＣＭ４は、モータドライバ２１からの駆動電流により駆動制御される。
【００１３】
磁気ディスク１には、データが記録される多数のシリンダ（トラック）が構成される。各シリンダは、複数のセクタを含んで構成される。各シリンダには先頭セクタが定義される。磁気ディスク１は、ＨＤＤ１０の動作に関する管理情報や、ライト処理及びリカバリ処理に関する管理テーブルを記録するためのシステム領域と、ホスト装置１００から送信されるユーザデータを記録するためのデータ領域とを有する。磁気ディスク１はデータを記録するための記録媒体として構成される。なお、管理情報及び管理テーブルは、システム領域でなくＮＶＲＡＭ４３に記録されてもよい。管理テーブルは、ＨＤＤ１０の動作中は、ＲＡＭ４２に保存され、ＨＤＤ１０（より詳細にはＲＡＭ４２）の電源が落ちる前に、ＲＡＭ４２から不揮発の記録部であるＮＶＲＡＭ４３、又は磁気ディスク１のシステム領域に記録（複写）される。
【００１４】
ヘッドはスライダ２を本体として、当該スライダに実装されているリードヘッドＲＨ及びライトヘッドＷＨを有する。リードヘッドＲＨは、磁気ディスク１上のシリンダに記録されているデータを読み出す。読み出されるデータは、サーボ情報やユーザデータである。ライトヘッドＷＨは、磁気ディスク１上にユーザデータを書き込む。リードヘッドＲＨは読み出し手段として、ライトヘッドＷＨは記録手段として構成される。リードヘッドＲＨのトラック方向の幅は、ライトヘッドＷＨのトラック方向の幅よりも狭く形成される。
【００１５】
ヘッドＩＣ２２は、リードアンプ及びライトドライバ（共に不図示）を有する。リードアンプは、リードヘッドＲＨにより読み出されたリード信号を増幅してＲＤＣ３１に伝送する。ライトドライバは、ＲＤＣ３１から出力されるライトデータに応じたライト電流をライトヘッドＷＨに伝送する。
【００１６】
コントローラ６０は、ＲＤＣ３１、ＣＰＵ４１、ＲＡＭ４２、及びＨＤＣ５０を含む１チップの集積回路で構成されている。ＲＤＣ３１は、リードチャネル及びライトチャネル（共に不図示）を含む。リードチャネルは、リードヘッドＲＨにより読み出されたリード信号を処理してデータ（サーボ情報を含む）を復号する。ライトチャネルは、ＨＤＣ５０からのライトデータの信号処理を実行する。ＲＡＭ４２は、コントローラ６０の外部に設けられてもよい。
【００１７】
ＨＤＣ５０は、ＲＡＭ４２を制御して、ホスト装置１００とＲＤＣ３１との間のデータ転送を制御する。ＨＤＣ５０は、リードデータ及びライトデータをＲＡＭ４２に一時的に格納することでデータ転送制御を実行する。また、ＨＤＣ５０はＮＶＲＡＭ４３を制御して、例えばＣＰＵ４１が実行するプログラム及び装置パラメータの、格納及び読み出しを行う。ＨＤＣ５０は、ホスト装置１００とＨＤＤ１０との間のコマンド及びデータの送受を制御するインターフェース手段として構成される。
【００１８】
ＣＰＵ４１は、マイクロプロセッサまたはマイクロコントローラとも称される。ＣＰＵ４１は、モータドライバ２１を介してＶＣＭ４を制御してヘッドの位置決め制御（サーボ制御）を実行する。また、ＣＰＵ４１は、ＲＤＣ３１を介して磁気ディスク１に対するライト処理及びリカバリ処理を制御する。ＣＰＵ４１は、プログラムに従って、これらの処理をＨＤＡや回路ブロックを利用して制御する。
【００１９】
次に、図２を用いて、本実施形態にかかるＨＤＤ１０に備えられ、ライト処理及びリカバリ処理を実行するブロックを説明する。図２は、本実施形態にかかるライト処理及びリカバリ処理を実行するブロックを説明するための構成図である。
【００２０】
ＨＤＤ１０は、ライト処理部２０１、リード処理部２０２、リカバリ制御部２０３、及びテーブル管理部２０４を含む。これらのブロックは、ＨＤＤ１０が有するＨＤＡや回路ブロック、及びＣＰＵ４１により実行されるプログラムにより構成される。すなわち、本実施形態にかかるライト処理及びリカバリ処理は、これらのブロックによって実行される。
【００２１】
ライト処理部２０１は、ライトヘッドＷＨにより磁気ディスク１にデータを記録するライト処理を実行する。ライト処理部２０１は、ホスト装置１００から送信されるコマンド、又はＨＤＤ１０の内部からの要求に応じて、ライト処理を実行する。磁気ディスク１に記録されるデータは、ＲＤＣ３１からヘッドＩＣ２２に出力されるライトデータに対応する。ライト処理は、ＶＣＭ４によるリードヘッドＲＨ及びライトヘッドＷＨの位置決め制御、及びＳＰＭ５の回転制御を含む。本実施形態のライト処理では、瓦記録方法が適用される。ライト処理部２０１は、ライト動作毎に、管理テーブルを更新するようテーブル管理部２０４に要求する。
【００２２】
リード処理部２０２は、リードヘッドＲＨにより磁気ディスク１からデータを読み出すリード処理を実行する。リード処理部２０２は、ホスト装置１００から送信されるコマンド、又はＨＤＤ１０の内部からの要求に応じて、リード処理を実行する。本実施形態では、リード処理部２０２は、リカバリ制御部２０３からの要求に基づいて、リード処理を実行する。磁気ディスク１から読み出された信号は、ヘッドＩＣ２２を介してＲＤＣ３１に出力される。リード処理は、ＶＣＭ４によるリードヘッドＲＨの位置決め制御、及びＳＰＭ５の回転制御を含む。換言すると、リード処理では、ＳＰＭ５により回転する磁気ディスク１のトラック内の目標位置に対して、リードヘッドＲＨが位置決め制御される。本実施形態のリード処理では、磁気ディスク１のシステム領域及びデータ領域からデータが読み出される。
【００２３】
リカバリ制御部２０３は、磁気ディスク１のデータ領域に記録したが、その記録に関する管理情報が更新されていないデータが読み出し可能となるよう復旧するリカバリ処理を実行する。リカバリ処理では、磁気ディスク１のデータ領域にデータは記録できたが、その記録に関する管理情報（管理テーブル）が更新されたか否かが判定される。管理情報が更新されていない場合、記録されたデータの読み出しが可能となるように管理情報の復旧が行われる。管理情報が更新されない状態となるのは、例えば、記録動作中にＨＤＤ１０の電源遮断が発生したことによる。従って、リカバリ処理は、例えば、電源が投入されＨＤＤ１０が起動した直後に毎回実行されることが好ましい。また、リカバリ制御部２０３は、ＨＤＤ１０の起動毎に、テーブル管理部２０４に対して管理テーブルの情報を読み出すよう要求する。そしてリカバリ制御部２０３は、読み出した管理テーブルに応じて、リード処理部２０２及びテーブル管理部２０４を制御して、リカバリ処理の動作を実行する。本実施形態にかかるリカバリ処理によって、管理テーブルの情報は正しく更新されて、データ領域に記録されたデータの読み出しが可能となる。
【００２４】
テーブル管理部２０４は、ＲＡＭ４２、ＮＶＲＡＭ４３、又は磁気ディスク１のシステム領域を制御して管理テーブルを管理する。テーブル管理部２０４は、ライト処理部２０１によるライト処理、又はリカバリ制御部２０３によるリカバリ処理の際、管理テーブルの読み出し及び記録（更新）を実行する。テーブル管理部２０４は、重複する情報が存在しないように管理テーブルを管理する。
【００２５】
ここで、管理テーブルについて説明する。管理テーブルには、ライト処理の実行中か否かを示す情報、記録が実行された磁気ディスク１上の位置情報、記録開始の論理アドレス、及び記録データの量（ブロック長やセクタ長）を示す情報などが関連付けられる。磁気ディスク１上の位置情報には、各サーボ領域に記録されているＣＨＳ（Cylinder/Head/Sector）情報が適用されればよい。なお、管理テーブルは、１つのライト処理に関する情報が関連付けられていればよく、テーブル形式で管理されていていなくてもよい。
【００２６】
以上説明した構成により、本実施形態にかかるライト処理及びリカバリ処理が実行される。すなわち、ライト処理部２０１は、ライト処理の開始前に、対象となるライト処理に関する、磁気ディスク１上の位置情報、記録開始の論理アドレス、及び記録データの量などの情報と共に、ライト処理が実行中であることを示す情報で管理テーブルを更新する。ライト処理が完了した後、ライト処理部２０１は、管理テーブル中の対象となる情報に対して、ライト処理が実行中でない（完了した）ことを示す情報で更新する。またリカバリ制御部２０３は、例えばＨＤＤ１０の起動毎に、管理テーブルの情報を確認する。管理テーブル中のライト処理の実行中であるか否かを示す情報をチェックすることで、ライト処理後に管理テーブルが更新されたか否かを判定することができる。
【００２７】
すなわち、本実施形態にかかる情報記録装置及びデータ復旧方法によれば、以上で説明した構成により、瓦記録方法を適用したデータ記録処理において、消失される可能性のあるデータをより好適に復旧することができる。
【００２８】
［第１の実施形態］
次に、図３を用いて、本実施形態にかかるＨＤＤで実行されるリカバリ処理の動作を説明する。図３は、第１の実施形態にかかるリカバリ処理の動作を説明するためのフローチャートである。
【００２９】
前述したように、実施形態にかかるリカバリ処理は、ＨＤＤ１０が起動した直後にリカバリ制御部２０３が、テーブル管理部２０４を介して管理テーブルを確認することで開始する。リカバリ制御部２０３は、読み出された管理テーブルに基づいて、リカバリ処理が必要となる位置（トラック、セクタ、又は瓦記録の記録単位となるトラック群）を特定する。具体的には、管理テーブル中に、ライト処理の実行中であることを示す情報があれば、この情報に対応する位置が、リカバリ処理が必要となる位置として特定される。リカバリ処理が必要となる位置が特定されると、図３に示すフローチャートが開始する。
【００３０】
リカバリ制御部２０３は、変数Ａをリカバリ処理の開始セクタとなる先頭セクタとして設定し（Ｂ３０１）、リード処理部２０２による、変数Ａセクタ（先頭セクタ）からのシーケンシャルリードが開始する（Ｂ３０２）。何らかの要因により、リード動作が停止したことに応じて、リカバリ制御部２０３は、変数Ａをリード停止セクタとして設定する（Ｂ３０３）。そして、変数Ａセクタ（リード停止セクタ）が、ＵＮＣエラー（Un-Correctable Error）セクタであるか否かが判定される（Ｂ３０４）。変数ＡセクタがＵＮＣエラーセクタである場合（Ｂ３０４のＹｅｓ）、リカバリ制御部２０３は、リードしていたトラックによって上書きされる隣接トラックにおけるセクタＡ（リード停止セクタ）の隣接セクタに対して、リード処理部２０２によるオフセットリード処理を開始する（Ｂ３０５）。
【００３１】
このオフセットリード処理とは、リード対象セクタのある隣接トラックの通常のリードにおけるリードヘッドＲＨの位置決め目標位置に対して、リード停止セクタのあるトラック側にリードヘッドＲＨをオフセットさせてリードする処理である。リードヘッドＲＨをオフセットする量は、オフセットリードの対象トラックが記録された際のトラック幅（ライトトラック幅）の範囲内であって、リードヘッドＲＨが、リード停止セクタのあるトラック側に最も寄った位置となることが好ましい。換言すると、リードヘッドＲＨのオフセット量は、オフセットリードの対象トラックが記録された直後はライトトラックの範囲内であるが、リード停止セクタのあるトラックがライトされると上書きされる位置である。
【００３２】
次に、オフセットリード処理（Ｂ３０５）の結果が、リードＯＫであったか否かが判定される（Ｂ３０６）。リードＯＫでない場合（Ｂ３０６のＮｏ）、変数Ａは１インクリメントされ（Ｂ３０７）、リカバリ制御部２０３は、リード処理部２０２による、インクリメントされた変数Ａセクタからのシーケンシャルリードを再び開始する（Ｂ３０２）。その後、（Ｂ３０３）以降の処理が継続される。すなわち、リード停止セクタの隣接セクタに対するオフセットリードの結果がＯＫでない（ＮＧである）場合、リード停止セクタはスキップされて、次のセクタからのシーケンシャルリード処理が再び開始される。
【００３３】
一方、リード停止セクタがＵＮＣエラーセクタでない場合（Ｂ３０４のＮｏ）、及び、オフセットリード処理の結果がリードＯＫの場合（Ｂ３０６のＹｅｓ）、リカバリ制御部２０３は、セクタ（Ａ−１）（すなわち、リード停止セクタの１つ前のセクタ）までの管理テーブルを復旧する（Ｂ３０８）。またリカバリ制御部２０３は、テーブル管理部２０４に対して、復旧した管理テーブルを更新するよう要求する。そして、リカバリ処理は終了する。
【００３４】
なお以上で説明した手順でなく、（Ｂ３０７）にて変数Ａが１インクリメントされた後、インクリメントされた変数Ａセクタからのシーケンシャルリードを再び開始（Ｂ３０２）する前に、変数Ａを先頭セクタとして設定（Ｂ３０１）してもよい。また、この時、変数Ａが１インクリメントされる前に、先頭セクタからリード停止セクタの１つ前のセクタまでの管理テーブルを復旧しても構わない。復旧が確定している分の管理テーブルを復旧しておくことで、リカバリ処理中に再び電源遮断が発生した場合に、同じ処理を繰り返さずに済む。
【００３５】
また、リード停止セクタ（変数Ａ）の１つ前のセクタまでの管理テーブルを復旧（Ｂ３０８）した後、すぐにリカバリ処理を終了するのでなく、変数Ａを１インクリメントして、リード停止セクタであったセクタの次のセクタを再びリードしてもよい。そして再び、このセクタがＵＮＣセクタと判定され（Ｂ３０４のＹｅｓ）、隣接トラックにおけるこのセクタの隣接セクタのオフセットリード処理（Ｂ３０５）の結果が、リードＯＫとなった場合（Ｂ３０６のＮｏ）に、リカバリ処理を終了すればよい。この再確認処理により、最初のリード停止セクタをより確実に判定することができる。
【００３６】
次に、図４を用いて、第１の実施形態にかかるリカバリ処理の概念的な動作を説明する。図４は、第１の実施形態にかかるリカバリ処理の動作を概念的に示す図である。
【００３７】
図４（ａ）、（ｂ）、（ｃ）において、Ｒ−Ｔｒａｃｋとはリードトラックを示し、Ｗ−Ｔｒａｃｋとはライトトラックを示している。本実施形態では、リードヘッドＲＨのトラック方向の幅は、ライトヘッドＷＨのトラック方向の幅よりも狭く形成されている。瓦記録方法では、トラックに記録されたデータの一部が後続して記録されるトラックによって上書きされるため、リードトラックの幅はライトトラックの幅よりも狭いことが好ましい。ここで、リカバリ処理が必要な位置として、Ｒ−Ｔｒａｃｋ（Ｎ−１）の先頭セクタからＲ−Ｔｒａｃｋ（Ｎ＋１）を含む複数トラックが特定されたものとする。
【００３８】
図４（ａ）は、リードヘッドＲＨにより、Ｒ−Ｔｒａｃｋ（Ｎ−１）の先頭セクタからシーケンシャルリードが開始され、Ｒ−Ｔｒａｃｋ（Ｎ−１）とＲ−Ｔｒａｃｋ（Ｎ）は停止することなくリードされ、Ｒ−Ｔｒａｃｋ（Ｎ＋１）がリードされている状態である。Ｒ−Ｔｒａｃｋ（Ｎ＋１）のリードにおいて、斜線で示したセクタにてリードが停止し、このセクタがＵＮＣエラーセクタであると判定されたものとする。そして、図４（ｂ）又は図４（ｃ）に示すように、Ｒ−Ｔｒａｃｋ（Ｎ＋１）の隣接トラックであるＲ−Ｔｒａｃｋ（Ｎ）における、セクタＡ（リード停止セクタ）の隣接セクタでのオフセットリード処理が開始される。
【００３９】
図４（ｂ）の例では、オフセットリード処理の結果、リードＯＫとなったことから、Ｒ−Ｔｒａｃｋ（Ｎ−１）の先頭セクタからＲ−Ｔｒａｃｋ（Ｎ＋１）のセクタＡ（リード停止セクタ。すなわちＵＮＣエラーセクタ）の一つ前のセクタまでの管理テーブルが復旧される。すなわち、図４（ｂ）は、図３のフローチャートにおける（Ｂ３０６のＹｅｓ）のケースを示している。このケースは、セクタＡ（リード停止セクタ）は、ライトされておらず、隣接トラックのデータが上書きされずに残っている可能性が高い例である。換言すると、このケースは、Ｗ−Ｔｒａｃｋ（Ｎ＋１）へのライト処理中に、このトラックのセクタＡでライト処理が停止した可能性がある例である。
【００４０】
一方、図４（ｃ）の例では、オフセットリード処理の結果が、リードＮＧとなったことから、Ｒ−Ｔｒａｃｋ（Ｎ＋１）のＵＮＣエラーセクタの次のセクタからのシーケンシャルリードが再び開始される。すなわち、図４（ｃ）は、図３のフローチャートにおける（Ｂ３０６のＮｏ）のケースを示している。このケースは、セクタＡ（リード停止セクタ）は、ライトされたがリードＮＧとなるセクタであり、セクタＡの次のセクタはリード可能である可能性が高い例である。
【００４１】
このようにして、第１の実施形態にかかるリカバリ処理によれば、管理テーブルが適切に更新されなかったが、正常にライトされたデータを復旧することが可能となる。従来では、例えば、リカバリ処理の対象データにＵＮＣエラーが発生した場合、そのセクタ及び後続セクタに対して、リード処理に関するパラメータを変えながらリードリトライをしていたため、多くの時間を要することがあった。第１の実施形態によれば、リカバリ処理の対象データにＵＮＣエラーが発生した場合、そのセクタが、ライトされたがリードＮＧとなるセクタか、ライトが中断されたことによりリードＮＧとなるセクタかを、より短い時間で容易に判定することができる。従って、第１の実施形態にかかる情報記録装置及びデータ復旧方法によれば、瓦記録方法を適用したデータ記録処理において、消失される可能性のあるデータをより好適に復旧することができる。
【００４２】
［第２の実施形態］
次に、図５を用いて、本実施形態にかかるＨＤＤで実行される他のリカバリ処理の動作を説明する。図５は、第２の実施形態にかかるリカバリ処理の動作を説明するためのフローチャートである。
【００４３】
第２の実施形態にかかるリカバリ処理は、リカバリ処理の対象となる位置内の各トラックの先頭セクタをリードすることで、リカバリ処理をより高速に行うことを可能とするものである。
【００４４】
第２の実施形態にかかるリカバリ処理でも、前述したように、ＨＤＤ１０が起動した直後にリカバリ制御部２０３が、テーブル管理部２０４を介して管理テーブルを読み出すことで開始する。リカバリ制御部２０３は、読み出された管理テーブルに基づいて、リカバリ処理が必要となる位置（トラック又はセクタ）を特定する。リカバリ処理が必要となる位置が特定されると、図５に示すフローチャートが開始する。
【００４５】
リカバリ制御部２０３は、変数Ｔをリカバリ処理が必要な位置における先頭トラックとして設定し（Ｂ５０１）、リード処理部２０２による、変数Ｔトラック（先頭トラック）の先頭セクタのリードを実行する（Ｂ５０２）。そして、リードしたセクタにエラーが発生したか否かが判定される（Ｂ５０３）。エラーが発生していない場合（Ｂ５０３のＮｏ）、変数Ｔは１インクリメントされ（Ｂ５０４）、リカバリ制御部２０３は、リード処理部２０２による、インクリメントされた変数Ｔトラックの先頭セクタのリードを再び実行する（Ｂ５０２）。
【００４６】
リードしたセクタにエラーが発生した場合（Ｂ５０３のＹｅｓ）、そのエラーがＵＮＣエラーであるか否かが判定される（Ｂ５０５）。リードしたセクタのエラーがＵＮＣエラーであった場合（Ｂ５０５のＹｅｓ）、リカバリ制御部２０３は、リード処理部２０２による、変数（Ｔ−１）トラックの先頭セクタのオフセットリード処理を実行する（Ｂ５０６）。ここで実行されるオフセットリード処理は、図３で示したフローチャートで実行されるオフセットリード処理と同じ内容であるので詳細な説明は省略する。
【００４７】
次に、オフセットリード処理の結果が、リードＯＫであったか否かが判定される（Ｂ５０７）。リードＯＫでない場合（Ｂ５０７のＮｏ）、変数Ｔは１インクリメントされ（Ｂ５０８）、リカバリ制御部２０３は、リード処理部２０２による、インクリメントされた変数Ｔトラックの先頭セクタのリードを再び実行する（Ｂ５０２）。その後、（Ｂ５０３）以降の処理が継続される。すなわち、ＵＮＣエラーとなったセクタの隣接セクタに対するオフセットリードの結果がＯＫでない（ＮＧである）場合、ＵＮＣエラーとなったセクタがあるトラックはスキップされて、次のトラックの先頭セクタのリード処理が再び実行される。
【００４８】
一方、リードされたセクタのエラーがＵＮＣエラーでない場合（Ｂ５０５のＮｏ）、及び、オフセットリード処理の結果がリードＯＫの場合（Ｂ５０７のＹｅｓ）、リカバリ制御部２０３は、変数（Ｔ−１）トラックの先頭セクタを、リカバリ処理が必要な位置における先頭セクタとして設定し（Ｂ５０９）、図３で示した（第１の実施形態にかかる）リカバリ処理を実行する（Ｂ５１０）。そして、（第１の実施形態にかかる）リカバリ処理が完了すると、第２の実施形態にかかるリカバリ処理は終了する。
【００４９】
なお以上で説明した手順でなく、（Ｂ５０８）にて変数Ｔが１インクリメントされた後、インクリメントされた変数Ｔトラックの先頭セクタのリードを再び実行する（Ｂ５０２）する前に、変数Ｔを先頭トラックとして設定（Ｂ５０１）してもよい。また、リードしたセクタにエラーが発生した場合（Ｂ５０３のＹｅｓ）、及び、リードしたセクタのエラーがＵＮＣエラーであった場合（Ｂ５０５のＹｅｓ）、すぐに次の処理に移行するのでなく、リード処理に関するパラメータを変えて、同じセクタをリード（リードリトライ処理を実行）してもよい。このリードリトライ処理により、エラーセクタをより適切に検出することができる。
【００５０】
また、各トラックで確認するセクタは、先頭セクタでなくてもよく、各トラックの何れか１セクタのリードが実行されてもよい。さらに、リードしたセクタにエラーが発生したか否かの判定（Ｂ５０３）、及び、発生したエラーがＵＮＣエラーであるか否かの判定（Ｂ５０５）は、同時に実行されてもよい。即ち、リードしたセクタがＵＮＣエラーセクタであるか否かが判定されてもよい。このことにより、リカバリ処理をより容易に実行することができる。
【００５１】
次に、図６を用いて、第２の実施形態にかかるリカバリ処理の概念的な動作を説明する。図６は、第２の実施形態にかかるリカバリ処理の動作を概念的に示す図である。
【００５２】
図６（ａ）、（ｂ）、（ｃ）においても図４と同様に、Ｒ−Ｔｒａｃｋはリードトラックを示し、Ｗ−Ｔｒａｃｋはライトトラックを示している。本第２の実施形態でも、リードヘッドＲＨのトラック方向の幅は、ライトヘッドＷＨのトラック方向の幅よりも狭く形成されている。ここで、リカバリ処理が必要な位置として、Ｒ−Ｔｒａｃｋ（Ｎ−３）からＲ−Ｔｒａｃｋ（Ｎ＋１）までを含む複数トラックが特定されたものとする。
【００５３】
図６（ａ）に示すように、リードヘッドＲＨにより、Ｒ−Ｔｒａｃｋ（Ｎ−３）から順に各トラックの先頭セクタのリードが実行されてリードＯＫか否かが判定される。そして、Ｒ−Ｔｒａｃｋ（Ｎ＋１）の先頭セクタのリードにおいてリードＮＧとなり、このセクタがＵＮＣエラーセクタであると判定されたものとする。そして、図６（ｂ）に示すように、Ｒ−Ｔｒａｃｋ（Ｎ＋１）の１つ前の隣接トラックであるＲ−Ｔｒａｃｋ（Ｎ）の先頭セクタでのオフセットリード処理が開始される。
【００５４】
図６（ｂ）の例では、オフセットリード処理の結果が、リードＯＫとなったことから、Ｒ−Ｔｒａｃｋ（Ｎ）の先頭セクタが、第１の実施形態にかかるリカバリ処理における先頭セクタとして設定される。そして設定された先頭セクタ（Ｒ−Ｔｒａｃｋ（Ｎ）の先頭セクタ）から、第１の実施形態にかかるリカバリ処理が実行される。すなわち、図６（ｂ）は、図５のフローチャートにおける（Ｂ５０７のＹｅｓ）のケースを示している。このケースは、Ｒ−Ｔｒａｃｋ（Ｎ＋１）に対応するＷ−Ｔｒａｃｋ（Ｎ＋１）はライトされておらず、１つ前の隣接トラックであるＲ−Ｔｒａｃｋ（Ｎ）のデータが上書きされずに残っている可能性が高い例である。換言すると、このケースは、Ｗ−Ｔｒａｃｋ（Ｎ）へのライト処理中に、このトラックの何れかのセクタでライト処理が停止した可能性がある例である。従って、このトラックに対して、第１の実施形態にかかるリカバリ処理が実行されることで、ライトが停止したセクタを特定することが可能となる。
【００５５】
一方、図６（ｃ）の例では、オフセットリード処理の結果が、リードＮＧとなったことから、Ｒ−Ｔｒａｃｋ（Ｎ＋１）の次のトラックであるＲ−Ｔｒａｃｋ（Ｎ＋２）の先頭セクタのリードが再び開始される。すなわち、図６（ｃ）は、図５のフローチャートにおける（Ｂ５０７のＮｏ）のケースを示している。このケースは、Ｒ−Ｔｒａｃｋ（Ｎ＋１）の先頭セクタは、ライトされたがリードＮＧとなるセクタであり、次のトラックであるＲ−Ｔｒａｃｋ（Ｎ＋２）の先頭セクタはリード可能である可能性が高い例である。
【００５６】
このようにして、第２の実施形態にかかるリカバリ処理によっても、管理テーブルが適切に更新されなかったが、正常にライトされたデータを復旧することが可能となる。第２の実施形態によれば、リカバリ処理の対象データにＵＮＣエラーが発生した場合、そのセクタが、ライトされたがリードＮＧとなるセクタか、ライトが中断されたことによりリードＮＧとなるセクタかを、さらに、より短い時間で容易に判定することができる。従って、第２の実施形態にかかる情報記録装置及びデータ復旧方法によれば、瓦記録方法を適用したデータ記録処理において、消失される可能性のあるデータをより好適に復旧することができる。
【００５７】
以上説明した実施形態によれば、ＣＰＵ４１で実行されるプログラムに従って、ＨＤＤ１０に備えられたＨＤＡや回路ブロックが制御されて、リカバリ処理が実行される。すなわち、本実施形態にかかる情報記録装置及びデータ復旧方法によれば、瓦記録方法を適用したデータ記録処理において、消失される可能性のあるデータをより好適に復旧することができる。
【００５８】
なお、前述した実施形態では、情報記録装置としてＨＤＤ１０の例を説明したが、不揮発性の半導体記憶素子（例えば、ＮＡＮＤメモリ、ＭＲＡＭ、ＦｅＲＡＭなど）を磁気ディスク１のキャッシュとして利用するハイブリッド型ドライブに、実施形態の範囲が適用されてもよい。
【００５９】
また、前述した実施形態の例でなく、以下のような変形例であってもよい。リカバリ処理は、ＨＤＤ１０の電源が投入され起動した直後に実行されることが好ましいが、これ以外のタイミングで実施されてもよい。例えば、ホスト装置１００からのコマンド応答処理を実行していない、いわゆるアイドルタイミングで、リカバリ処理が実行されてもよい。
【００６０】
以上説明した実施形態（及びその変形例）が適用された情報記録装置及びデータ復旧方法によれば、リカバリ処理の実行をより容易化且つ高速化することが可能となる。リカバリ処理がＨＤＤ１０の起動直後に実行される場合、この処理の実行を高速化することで、ホスト装置１００からのコマンドを受領できる状態となるまでの時間が短縮され、ＨＤＤ１０の起動時性能を向上されることが期待できる。
【００６１】
以上、複数の実施形態を説明したが、説明した実施形態は一例として提示したものであり、発明の範囲はこの実施形態に限定されない。また、説明した実施形態は、本発明の要旨を変えない範囲において、種々の変更、改変等が可能である。さらに、前述した実施形態に開示されている複数の構成要素を適宜に組み合わせることにより、種々の発明を形成することができる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよく、さらに、異なる実施形態に係る構成要素を適宜組み合わせても良い。これらの実施形態やその変形は、発明の範囲や要旨に含まれ、特許請求の範囲に記載された発明と、その均等の範囲に含まれるものである。
【符号の説明】
【００６２】
１…磁気ディスク、２…スライダ、３…アーム、４…ボイスコイルモータ（ＶＣＭ）、５…スピンドルモータ（ＳＰＭ）、１０…磁気ディスク装置（ＨＤＤ）、２１…モータドライバ、２２…ヘッドＩＣ、３１…リードライトチャネルＩＣ（ＲＤＣ）、４１…ＣＰＵ、４２…ＲＡＭ、４３…不揮発性メモリ（ＮＶＲＡＭ）、５０…ＨＤＣ（Hard Disc Controller）、１００…ホスト装置、１２０…ホストＩ／Ｆ、１５０…電子システム、２０１…ライト処理部、２０２…リード処理部、２０３…リカバリ制御部、２０４…テーブル管理部。
【図１】
0005886803.tif 000002
【図２】
0005886803.tif 000003
【図３】
0005886803.tif 000004
【図４】
0005886803.tif 000005
【図５】
0005886803.tif 000006
【図６】
0005886803.tif 000007