(57)【特許請求の範囲】
【請求項１】
ディスク上で隣接する複数のトラック及び当該各トラック内を分割する複数のブロックから構成される書き込み範囲にデータを書き込むライト手段と、
前記書き込み範囲の中で、隣接する複数のトラックと隣接する複数のブロックにより設定される各グループにおいて、前記各グループは、前記書き込み範囲が隣接する４トラック分の場合にトラック番号が偶数の偶数トラックとブロック番号が偶数の偶数ブロックにより設定される第１のグループと、トラック番号が奇数の奇数トラックと偶数ブロックにより設定される第２のグループと、偶数トラックとセクタ番号が奇数の奇数ブロックにより設定される第３のグループと、奇数トラックと奇数ブロックにより設定される第４のグループとを含み、前記各グループ毎のデータに対する排他的論理和演算を実行する演算手段と、
前記演算手段の演算結果である復元用データを指定のブロックに書き込むように前記ライト手段を制御する制御手段とを具備し、
前記制御手段は、
前記演算手段から前記各グループ毎の各復元用データを取得し、
前記各復元用データのそれぞれを前記書き込み範囲に含まれる複数のブロックに書き込むように前記ライト手段を制御するように構成されているディスク記憶装置。
【請求項２】
前記ディスク上からデータを読み出して再生するデータ再生手段と、
前記データ再生手段による再生時に、前記各復元用データの中で訂正不能なブロック単位のデータと同一のグループに対応する復元用データを使用して、当該訂正不能なブロック単位のデータを復元するデータ復元手段と
を含む請求項１に記載のディスク記憶装置。
【請求項３】
前記制御手段は、
前記書き込み範囲に全てのデータが書き込まれた後に、前記各復元用データを前記各指定のブロックに書き込むように前記ライト手段を制御する請求項１または請求項２に記載のディスク記憶装置。
【請求項４】
前記ライト手段は、
前記書き込み範囲に含まれる各トラックにデータを一括的に書き込むように構成されている請求項１から請求項３のいずれか１項に記載のディスク記憶装置。
【請求項５】
前記ライト手段は、
瓦書き動作により前記各トラックにデータを書き込むように構成されている請求項１から請求項４のいずれか１項に記載のディスク記憶装置。
【請求項６】
前記ブロック単位のデータは、
前記ディスク上に構成されるセクタ単位のデータであり、当該セクタ単位のデータとしてユーザデータあるいは前記ユーザデータとＥＣＣデータの両方を含む請求項１から請求項５のいずれか１項に記載のディスク記憶装置。
【請求項７】
前記各復元用データに対する各ＥＣＣデータを生成する手段を有し、
前記制御手段は、
前記各指定のブロックに前記各復元用データと対応する前記各ＥＣＣデータを書き込むように前記ライト手段を制御するように構成されている請求項１から請求項６のいずれか１項に記載のディスク記憶装置。
【請求項８】
ディスク上で隣接する複数のトラック及び当該各トラック内を分割する複数のブロックから構成される書き込み範囲にデータを書き込むディスク記憶装置に適用するデータ復元方法であって、
前記書き込み範囲の中で、隣接する複数のトラックと隣接する複数のブロックにより設定される各グループにおいて、前記各グループは、前記書き込み範囲が隣接する４トラック分の場合にトラック番号が偶数の偶数トラックとブロック番号が偶数の偶数ブロックにより設定される第１のグループと、トラック番号が奇数の奇数トラックと偶数ブロックにより設定される第２のグループと、偶数トラックとセクタ番号が奇数の奇数ブロックにより設定される第３のグループと、奇数トラックと奇数ブロックにより設定される第４のグループとを含み、各グループ毎のデータに対する排他的論理和演算を実行し、
前記排他的論理和演算の演算結果である復元用データを指定のブロックに書き込むように制御する場合に、
前記各グループ毎の各復元用データを取得し、
前記各復元用データのそれぞれを前記書き込み範囲に含まれる複数のブロックに書き込むように制御するデータ復元方法。
【請求項９】
前記ディスク上からデータを読み出して再生し、
前記再生時に、前記各復元用データの中で訂正不能なブロック単位のデータと同一のグループに対応する復元用データを使用して、当該訂正不能なブロック単位のデータを復元する請求項８に記載のデータ復元方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、ディスク記憶装置のデータ復元技術に関する。
【背景技術】
【０００２】
近年、ハードディスクドライブを代表とするディスク記憶装置（以下、ディスクドライブと表記する場合がある）では、記憶容量の増大化が推進されている。これに伴って、ディスクの高記録密度化が進み、ディスクからデータを読み出すときの読み出しエラーの影響が大きくなっている。
【０００３】
従来、ディスクドライブでは、ディスクに対してセクタ単位でデータを書き込み、または読み出すリード／ライト動作が実行される。ライト動作では、各セクタ内にライトデータとしてユーザデータ及びＥＣＣ（error correcting code:エラー訂正コード）データが書き込まれる。リード動作では、ユーザデータを再生（復号）する場合に、リードエラーが発生すると、ＥＣＣデータを使用してエラー訂正処理が実行される。
【０００４】
リード動作時に、ＥＣＣデータによりセクタ内のエラーを訂正することは可能である。しかしながら、ＥＣＣデータによるエラー訂正能力には限界があり、例えばセクタ単位のデータが消失するような場合には、データを復元することは困難である。このため、ＥＣＣデータによるエラー訂正処理以外に、有効なデータ復元方法が要求されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−７７７８２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従来から、ＥＣＣデータによるエラー訂正処理以外に、例えばセクタ単位の消失データを復元できる有効なデータ復元方法の開発が進められている。しかしながら、単にデータ復元能力を高める方法では、以下のようなオーバーヘッド（overhead）が問題となる。
【０００７】
即ち、復元用データの容量が増大し、ディスク上のデータ記録効率が低下する。また、ユーザデータ及びＥＣＣデータの書換えに伴って、復元用データも更新することになる。このため、大容量の復元用データを書き込むための時間の影響で、ライト動作の効率が低下する。
【０００８】
即ち、ディスクドライブでは、前述のオーバーヘッドを回避し、ＥＣＣデータによるエラー訂正処理以外に、有効なデータ復元を実現することが求められている。
【課題を解決するための手段】
【０００９】
本実施形態によれば、ディスク記憶装置は、ライト手段と、演算手段と、制御手段とを有する。前記ライト手段は、ディスク上で隣接する複数のトラック及び当該各トラック内を分割する複数のブロックから構成される書き込み範囲にデータを書き込む。前記演算手段は、前記書き込み範囲の中で、隣接する複数のトラックと隣接する複数のブロックにより設定される各グループ毎のデータに対する排他的論理和演算を実行する。前記各グループは、前記書き込み範囲が隣接する４トラック分の場合にトラック番号が偶数の偶数トラックとブロック番号が偶数の偶数ブロックにより設定される第１のグループと、トラック番号が奇数の奇数トラックと偶数ブロックにより設定される第２のグループと、偶数トラックとセクタ番号が奇数の奇数ブロックにより設定される第３のグループと、奇数トラックと奇数ブロックにより設定される第４のグループとを含む。前記制御手段は、前記演算手段の演算結果である復元用データを指定のブロックに書き込むように前記ライト手段を制御し、前記演算手段から前記各グループ毎の各復元用データを取得し、前記各復元用データのそれぞれを前記書き込み範囲に含まれる複数のブロックに書き込むように前記ライト手段を制御するように構成されている。
【図面の簡単な説明】
【００１０】
【図１】実施形態のディスクドライブの構成を説明するためのブロック図。
【図２】実施形態のXOR演算モジュールの構成を説明するためのブロック図。
【図３】実施形態の原理的動作を説明するための図。
【図４】実施形態に関する複数の復元用データを記録する場合の動作を説明するための図。
【図５】実施形態のライト動作を説明するためのフローチャート。
【図６】実施形態のデータ復元動作を説明するためのフローチャート。
【発明を実施するための形態】
【００１１】
以下図面を参照して、実施形態を説明する。
【００１２】
［ディスクドライブの構成］
図１に示すように、本実施形態のディスクドライブ１０は、磁気記録媒体であるディスク１１と、スピンドルモータ１２と、ヘッド１３と、ヘッドアンプ１４と、ハードディスクコントローラ（ＨＤＣ、単にディスクコントローラと表記する）１５と、バッファメモリ１６とを有する。スピンドルモータ１２は、ディスク１１を回転させる。ヘッド１３は、リードヘッド素子とライトヘッド素子とを含み、ディスク１１からデータを読み出し、またデータを書き込む。
【００１３】
ヘッドアンプ１４は、ヘッド１３により読み出された信号（リードデータ）を増幅して、ディスクコントローラ１５に伝送する。また、ヘッドアンプ１４は、ディスクコントローラ１５から出力される信号（ライトデータ）をライト電流に変換してヘッド１３に伝送する。
【００１４】
ディスクコントローラ１５は、リード／ライト（Ｒ／Ｗ）チャネル１７及びコントローラ１８を含む。Ｒ／Ｗチャネル１７は、データ記録再生の信号処理回路であり、ヘッド１３により読み出されたリードデータをデコードし、またライトデータをエンコードする機能を有する。
【００１５】
コントローラ１８はバッファメモリ１６を使用して、Ｒ／Ｗチャネル１７とホストシステム２０とのデータ転送を制御するインターフェースである。また、コントローラ１８は、Ｒ／Ｗチャネル１７を介してデータ記録再生動作を制御し、本実施形態に関するデータ復元処理を実行する。コントローラ１８は、後述するように、データ復元処理で必要なXOR演算モジュール１９を含む。
【００１６】
バッファメモリ１６は、コントローラ１８により制御されてリードデータ及びライデータを一時的に格納する。ホストシステム２０は、ディスクドライブ１０を外部記憶装置として使用するパーソナルコンピュータやディジタルテレビなどのディジタル機器である。
【００１７】
XOR演算モジュール１９は、図２に示すように、排他的論理和（exclusive OR : XORと略す場合がある）演算を実行するXOR回路３０と、第１のXOR-D選択回路３１と、第２のXOR-D選択回路３２と、XOR-D用バッファメモリ３３と、出力切り替え回路３４とを含む。
【００１８】
第１のXOR-D選択回路３１は、XOR回路３０の演算結果データ（XOR-Dと表記する場合がある）をバッファメモリ３３に格納するときに、当該バッファメモリ３３のバッファ領域を選択する。一方、第２のXOR-D選択回路３２は、バッファメモリ３３からXOR-Dを取り出すときに、当該バッファメモリ３３のバッファ領域を選択する。バッファメモリ３３は、XOR回路３０の演算結果データ（XOR-D）を順次格納する複数のバッファ領域を有する。
【００１９】
出力切り替え回路３４は、コントローラ１８の内部で生成するXOR-Dライト信号２００が無効（論理０）である場合に、バッファメモリ１６に格納されたライトデータをＲ／Ｗチャネル１７に出力する。一方、出力切り替え回路３４は、XOR-Dライト信号２００が有効（論理１）になると、バッファメモリ１６からのライトデータの出力を停止し、第２のXOR-D選択回路３２から取り出された復元用データ（XOR-D）をＲ／Ｗチャネル１７に出力する。
【００２０】
（データ復元処理）
以下、図３から図６を参照して本実施形態のデータ復元処理を説明する。
【００２１】
まず、図３（Ａ）〜（Ｄ）及び図５のフローチャートを参照して、本実施形態のライト動作を説明する。
【００２２】
本実施形態は、例えば瓦書き込み（shingle write）方式と呼ばれるライト動作時に、ブロック単位（ここではセクタ単位）のデータを復元する復元用データ（XOR-D）を書き込む。このライト動作は、ディスク１１上に、複数トラック分のデータを一度に纏め書きする動作である。
【００２３】
具体的には、図３（Ａ）に示すように、隣接する２トラックＡ，Ｂを、データを一度に纏め書きする場合の単位とする。ここで、瓦書き込み動作とは、隣接するトラックの領域までデータを書き込むことである。
【００２４】
図３（Ａ）に示すように、コントローラ１８は、トラックＡの先頭セクタＳ０から最後尾セクタＳ１４まで連続的にデータを書き込む。なお、コントローラ１８は、セクタ単位（ブロック単位）でデータを取り扱う。以下、復元用データ（XOR-D）と区別して、通常データと表記する場合がある。通常データは、ホストシステム２０から転送されるユーザデータとＥＣＣデータを含む。
【００２５】
次に、図３（Ｂ），（Ｃ）に示すように、コントローラ１８は、隣接するトラックＢの先頭セクタＳ０から連続的に通常データを書き込む。図３（Ｃ），（Ｄ）に示すように、コントローラ１８は、トラックＢに最後のセクタ（ここではセクタＳ１３となる）の通常データを書き込むと、その次のセクタ（ここでは最後尾セクタＳ１４）に復元用データ（XOR-D）を書き込む。
【００２６】
次に、図５のフローチャートを参照して、復元用データ（XOR-D）の生成及び書き込み動作を説明する。
【００２７】
まず、ライト動作では、コントローラ１８は、ホストシステム２０から転送されるセクタ単位のユーザデータを受信すると、バッファメモリ１６に格納する。コントローラ１８は、ディスク１１に通常データを書き込むときに、バッファメモリ１６からセクタ単位のユーザデータを読み出す（ブロック５００）。
【００２８】
本実施形態では、図２に示すように、XOR演算モジュール１９は、バッファメモリ１６から読み出されたセクタ単位のユーザデータ及びバッファメモリ３３から選択されたXOR-Dを読み出し、XOR回路３０によりXOR演算を実行する（ブロック５０１）。XOR演算モジュール１９は、セクタ単位の各データ（ユーザデータとXOR-D）のXOR演算を実行し、演算結果データであるXOR-Dをバッファメモリ３３の選択されたバッファ領域に格納する（ブロック５０２）。
【００２９】
即ち、XOR演算モジュール１９は、複数のトラックＡ，Ｂに書き込むべき全てのセクタのデータのXOR演算を実行し、最終的に算出されるXOR-Dを復元用データ（XOR-D）としてバッファメモリ３３の指定のバッファ領域に格納する。
【００３０】
一方、コントローラ１８は、XOR演算モジュール１９の演算処理時に、バッファメモリ１６から順次読み出されたデータを、出力切り替え回路３４を介してＲ／Ｗチャネル１７に転送する。Ｒ／Ｗチャネル１７は、ディスク１１上に記録するための符号化処理（ＥＣＣデータの付加も含む）を実行する。ヘッド１３は、ディスク１１上の指定されたトラックＡ，Ｂに、ヘッドアンプ１４により伝送されたセクタ単位のデータ（ＥＣＣデータも含む）を書き込む。この場合、本実施形態では、コントローラ１８は、トラックＡ，Ｂにデータを纏め書き動作を行なうように制御する。
【００３１】
コントローラ１８は、トラックＡ，Ｂに通常データの書き込み動作が完了すると、XOR-Dのライトタイミングに応じてXOR-Dライト信号２００が有効（論理１）にする（ブロック５０３のＹＥＳ）。コントローラ１８は、バッファメモリ１６からの通常データの読み出しを停止する（ブロック５０４）。コントローラ１８は、XOR演算モジュール１９のバッファメモリ３３から復元用データ（XOR-D）を読み出し、出力切り替え回路３４を介してＲ／Ｗチャネル１７に転送する。
【００３２】
Ｒ／Ｗチャネル１７は、ユーザデータの場合と同様に、復元用データ（XOR-D）に対してディスク１１上に記録するための符号化処理（ＥＣＣデータの付加も含む）を実行する。図３（Ｄ）に示すように、ヘッド１３は、ディスク１１上の指定されたトラックＢの指定のセクタ（最後尾セクタＳ１４）に復元用データ（XOR-D）を書き込む（ブロック５０５）。
【００３３】
以上のようして、バッファメモリ１６から読み出したユーザデータをディスク１１上に書き込むときに、XOR演算モジュール１９により自動的に復元用データ（XOR-D）を生成して専用のバッファメモリ３３に格納する。ディスク１１上にユーザデータを書き込みした後に、連続的に復元用データ（XOR-D）を書き込む。
【００３４】
即ち、トラックＡ，Ｂに通常データを纏め書きした後に、XOR演算モジュール１９により生成された復元用データ（XOR-D）をトラックＢの最後セクタに書き込む。この場合、復元用データ（XOR-D）のサイズ（データ量）は、セクタ単位（ブロック単位）のユーザデータと同じサイズである。即ち、ＥＣＣデータを付加するＥＣＣ処理単位と同じサイズである。具体的には、例えば５１２バイト毎のユーザデータにＥＣＣデータを付加する場合、復元用データ（XOR-D）のサイズも５１２バイトとなる。
【００３５】
次に、図６のフローチャートを参照して、復元用データ（XOR-D）を使用したデータ復元動作を説明する。
【００３６】
まず、ディスクドライブ１０では、ホストシステム２０からの要求に応じて、ディスク１１から指定のセクタ（ここではトラックＡ，Ｂに含まれるセクタ）のデータを読み出す通常のリード動作を実行する。コントローラ１８は、通常のリード動作時にリードエラーが発生すると、当該セクタのＥＣＣデータを使用してエラー訂正処理（ＥＣＣ処理）を実行する。
【００３７】
本実施形態では、ＥＣＣ処理では訂正不能なセクタが発生した場合に、コントローラ１８は、図６に示すように、当該セクタのユーザデータを復元するためのリード動作を実行する（ブロック６００）。コントローラ１８は、ディスク１１上のトラックＡ，Ｂから、復元用データ（XOR-D）を含む全てのデータを読み出す（ブロック６０１）。このとき、コントローラ１８は、訂正不能なセクタをスキップし、それ以外の全てのデータを読み出す（ブロック６０２，６０３，６０４）。
【００３８】
コントローラ１８は、訂正不能なセクタ以外の全セクタのデータと復元用データ（XOR-D）とを使用して、訂正不能なセクタのユーザデータを復元するデータ復元処理を実行する（ブロック６０５）。以下、データ復元処理を説明する。
【００３９】
まず、本実施形態のXOR演算の基本的動作を説明する。
【００４０】
仮に、所定のビット列からなるデータＸ，Ｙ，Ｚについて、XOR演算「Ｘ xor Ｙ xor Ｚ」を実行し、その演算結果データを「Ｄ」とする。この場合、XOR演算「Ｙ xor Ｚ xor Ｄ」の演算結果データは「Ｘ」となる。従って、XOR演算の演算結果データＤ（XOR-D）を生成することにより、元のデータＸ，Ｙ，Ｚのいずれかを復元することが可能となる。この具体例の場合、元データのＹ，Ｚ及びＤ（XOR-D）を使用することにより、データＸを復元できる。
【００４１】
本実施形態の復元用データ（XOR-D）は、トラックＡ，Ｂの各セクタのユーザデータUnのXOR演算「U0 xor U1 xor U2 xor ... Un」の演算結果データである。ここで、本実施形態の纏め書きの単位内（トラックＡ，Ｂ）において、１セクタのみ訂正不能なセクタのユーザデータUmを復元するには、XOR演算「Um = U0 xor U1 xor U2 xor ... xor Um-1 xor Um+1 xor ... xor Un xor XOR-D」を実行する。ここで、ユーザデータUm以外のデータUn及びXOR-Dは全て正常なデータであるとする。
【００４２】
以上のようなデータ復元動作により、通常のＥＣＣ処理では訂正できないセクタ単位（ブロック単位）のデータを復元することができる。ここで、本実施形態のデータ復元方法では、以下のようなオーバーヘッドが予想される。
【００４３】
まず、ＥＣＣデータ以外に、復元用データ（XOR-D）を記録するための領域が余分に必要になる。しかしながら、本実施形態の復元用データ（XOR-D）に必要な容量は、纏め書きの単位（本実施形態では、２トラック分）につき、１ブロック（１セクタ）である。纏め書きの単位を数百トラック分程度とすれば、１ブロック（１セクタ）の復元用データ（XOR-D）に必要な容量は、十分に無視できる程度の小さい容量である。
【００４４】
次に、復元用データ（XOR-D）を書き込むためのライト時間が余分にかかる。この場合も、纏め書きの単位を数百トラック分程度とすれば、ユーザデータを書き込む動作と比較して、頻度が十分に少なく、ライト時間は十分に無視できる程度の少ない時間である。
【００４５】
さらに、ディスク１１上に記録されている通常データが更新されると、これに伴って復元用データ（XOR-D）の更新が必要になる。しかしながら、ライト動作は纏め書き単位で一度に実行されるため、通常データの一部だけが更新されたとしても、そのデータのみ更新されることは無く、復元用データ（XOR-D）も同時に更新される事になるため、オーバーヘッドとはならない。
【００４６】
要するに、例えば１セクタ単位のデータ書き換えのような相対的に小さい単位でのライト動作を除いて、複数トラック分を纏めて書き込むような大きい単位でのライト動作に適用すれば、前述のようなオーバーヘッドは無視できるため、非常に有効である。
【００４７】
なお、本実施形態のXOR演算モジュール１９により復元用データ（XOR-D）を生成する場合に、必要な符号化がすべて線形符号の場合、符号化をしたデータ列（ＥＣＣデータを付加したデータ）に対するXOR演算を実行してもよい。この場合、Ｒ／Ｗチャネル１７において、復元用データ（XOR-D）に対する符号化処理は不要となる。
【００４８】
また、本実施形態のXOR演算はブロック単位として、セクタ単位又はＥＣＣ処理単位で実行される場合について説明したが、これに限ることなく、別の単位でも良い。
【００４９】
（複数の復元用データ）
本実施形態の具体例では、纏め書きの単位毎に１ブロックの復元用データ（XOR-D）を記録する場合について説明した。以下、図４を参照して、纏め書きの単位毎に複数ブロックの復元用データ（XOR-D）を書き込む場合の具体例を説明する。
【００５０】
本実施形態では、複数ブロック分の復元用データ（XOR-D）として、２×２の４ブロック分のXOR-Dを書き込む場合について説明する。各復元用データ（XOR-D）は、XOR-D0、XOR-D1、XOR-D2、XOR-D3と表記する。
【００５１】
更に、本実施形態は、図４に示すように、纏め書き範囲として隣接する４トラックである最初の偶数番号のトラック４nから、奇数番号のトラック４n+1、偶数番号のトラック４n+2、最後の奇数番号のトラック４n+3を想定する。
【００５２】
コントローラ１８は、XOR演算モジュール１９により、バッファメモリ１６から読み出されたセクタ単位のユーザデータを読み出し、XOR演算を実行することで復元用データ（XOR-D）を生成してバッファメモリ３３に格納する（図５を参照）。ここで、纏め書き範囲（４トラックッ分の範囲）を４グループに分割し、各グループ毎の復元用データ（XOR-D）、即ちXOR-D0、XOR-D1、XOR-D2、XOR-D3を生成する。
【００５３】
便宜的に、復元用データ（XOR-D0）は、偶数トラック（４n，４n+2）の偶数番目の各セクタの全データに対するXOR演算により算出される。復元用データ（XOR-D1）は、偶数トラック（４n，４n+2）の奇数番目の各セクタの全データに対するXOR演算により算出される。復元用データ（XOR-D2）は、奇数トラック（４n+1，４n+3）の偶数番目の各セクタの全データに対するXOR演算により算出される。さらに、復元用データ（XOR-D3）は、奇数トラック（４n+1，４n+3）の奇数番目の各セクタの全データに対するXOR演算により算出される。
【００５４】
ここで、コントローラ１８は、算出した復元用データ（XOR-D0）を、纏め書き範囲の最後のトラックではなく、当該纏め書き範囲の偶数及び奇数の最終２トラックに書き込む。具体的には、図４に示すように、復元用データ（XOR-D0），（XOR-D1）を偶数トラックの最後のトラック（４n+2）に書き込む。また、復元用データ（XOR-D2），（XOR-D3）を奇数トラックの最後のトラック（４n+3）に書き込む。従って、纏め書き範囲の途中のトラックに対しては、復元用データは何も書き込まれない。
【００５５】
このような各グループ毎の復元用データ（XOR-D0、XOR-D1、XOR-D2、XOR-D3）を偶数及び奇数の最終２トラックに書き込むことにより、近傍の２トラック範囲での２×２の４ブロック（４セクタ）分において、通常のＥＣＣ処理では訂正できないセクタ単位（ブロック単位）のデータを復元することができる。基本的に、データ復元動作は、図６に示す手順により実行される。
【００５６】
具体的には、図４に示すように、偶数トラック（４n）と奇数トラック（４n+1）の範囲で２×２の４ブロック３００について、各偶数セクタ（Ｓev）はそれぞれ、XOR-D0及びXOR-D2を使用することにより復元できる。また、各奇数セクタ（Ｓod）はそれぞれ、XOR-D1及びXOR-D3を使用することにより復元できる。また、奇数トラック（４n+1）と偶数トラック（４n+2）との範囲で２×２の４ブロック３１０について、各偶数セクタ（Ｓev）はそれぞれ、XOR-D2及びXOR-D0を使用することにより復元できる。また、各奇数セクタ（Ｓod）はそれぞれ、XOR-D3及びXOR-D1を使用することにより復元できる。
【００５７】
要するに、本実施形態では、偶数トラック及び奇数トラックの範囲での２×２の４ブロック（４セクタ）に関して、いずれのブロックも対応するグループの復元用データ（XOR-D）を使用して復元することができる。なお、復元用データ（XOR-D）の構成を変更することにより、これ以外の範囲のデータ復元処理に適応させることができる。
【００５８】
なお、本発明は上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【符号の説明】
【００５９】
１０…ディスクドライブ、１１…ディスク、１２…スピンドルモータ、
１３…ヘッド、１４…ヘッドアンプ、１５…ディスクコントローラ（ＨＤＣ）、
１６…バッファメモリ、１７…リード／ライト（Ｒ／Ｗ）チャネル、
１８…コントローラ、１９…XOR演算モジュール、２０…ホストシステム、
３０…XOR回路、３１…第１のXOR-D選択回路、３２…第２のXOR-D選択回路、
３３…XOR-D用バッファメモリ、３４…出力切り替え回路。
【図１】
0005380556.tif 000002
【図２】
0005380556.tif 000003
【図３】
0005380556.tif 000004
【図４】
0005380556.tif 000005
【図５】
0005380556.tif 000006
【図６】
0005380556.tif 000007