(57)【特許請求の範囲】
【請求項１】
ホストから転送される書き込み要求および読み出し要求に基づいて、書き込み処理または読み出し処理を行うヘッドと、
前記ヘッドの前記書き込み処理によって書き込みデータが記憶され、かつ前記読み出し処理によって読み出しデータが読み出される記憶媒体と、
前記ヘッドが前記記憶媒体の所定領域において複数回読み出した読み出しデータを一時的に各々記憶する記憶手段と、
各々記憶された前記読み出しデータの対応する部位のデータ値について多数決を取る比較手段と、
を備えることを特徴とするデータ記憶装置。
【請求項２】
前記比較手段は、
前記多数決により最も多く読めた値を前記部位における真正なデータ値とみなし、かつ前記真正なデータ値の組み合わせによる読み出しデータを生成し、
前記エラー訂正手段は、
前記組み合わせによる読み出しデータに対してエラー訂正を行なうことを特徴とする
請求項１に記載のデータ記憶装置。
【請求項３】
複数のセクタから構成されるトラックが形成された記憶媒体から前記セクタ単位で読み出したデータを処理する読み出しデータの処理装置であって、
所定のセクタについてｎ回だけ（ｎは２以上の自然数）読み出したｎ個の前記読み出しデータを一時的に記憶する記憶手段と、
ｎ個の前記読み出しデータについて、前記セクタ内のロケーション毎に最大頻度の値を特定する特定手段と、
前記特定手段によって前記ロケーション毎に特定された前記最大頻度の値による生成データを構成する読み出しデータ構成手段と、
を備えることを特徴とする読み出しデータの処理装置。
【請求項４】
前記特定手段は、
ｎ個の前記読み出しデータについて、前記セクタ内のロケーション毎に最大頻度の値を特定することができない場合に、所定の読み出し回数時に読み出された前記読み出しデータの値を、当該ロケーションにおける前記生成データを構成する値として特定することを特徴とする
請求項３に記載の読み出しデータの処理装置。
【請求項５】
前記読み出しデータ構成手段により構成された前記生成データについて、エラー訂正処理を行なうエラー訂正手段を備えることを特徴とする
請求項４に記載の読み出しデータの処理装置。
【請求項６】
記憶媒体からセクタの単位でユーザ・データを読み出し、
前記ユーザ・データについてのエラー発生有・無を判定し、
エラー発生有と判定された前記ユーザ・データを含む前記セクタをさらに１または２回以上読み出し対象として前記ユーザ・データを再度読み出し、
当初に読み出された前記ユーザ・データと再度読み出された前記ユーザ・データについて、同一のロケーションに存在するデータ値を比較するにあたって、一致したデータ値の頻度がもっとも高い当該データ値を真正なデータ値として取り扱うことを特徴とする
読み出しデータの処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ハード・ディスク・ドライブに代表されるデータ記憶装置に関し、特に、データ記憶媒体から読み出したデータのエラーの判定、さらにはエラーデータの訂正に関するものである。
【０００２】
【従来の技術】
ハード・ディスク・ドライブは最も普及しているコンピュータの外部記憶装置の一つである。ハード・ディスク・ドライブの記憶媒体である磁気ディスクは、周知のようにディスク表面を木の年輪状に分割したトラックをさらに放射状に区切ったセクタをデータの記録最小単位としている。磁気ディスク外周になるほど線記録密度を高くすることができる。そこで、現在磁気ディスクのデータ記録方式として主流をなすゾーン・ビット・レコーディング（Zoned Bit Recording）方式では、全てのトラックをいくつかのゾーンにグループ分けし、各ゾーン内では線記録密度を一定とする。すると、セクタの長さは通常５１２バイト（bytes）であるから、磁気ディスクの外周に近いトラックほどセクタ数は多くなる。
ハード・ディスク・ドライブは、磁気ディスクに記憶されているデータを読み出し、または磁気ディスクにデータを書き込むための磁気ヘッドを備えている。この磁気ヘッドは、ＶＣＭ（Voice Coil Motor）によって揺動するアクチュエータ機構に装着されている。
磁気ヘッドがデータの読み出しまたはデータの書き込みを行う場合、アクチュエータ機構を駆動することにより、磁気ヘッドを所定のトラックに移動かつ位置決めする。磁気ヘッドは、磁気ディスク上に記憶されたサーボ情報を手がかりに所定の位置への移動制御がなされる。
【０００３】
ハード・ディスク・ドライブにおいて、単位面積当たりの記録密度が非常に大きなものとなり、信号処理系のＳ／Ｎが低くなり、磁気ディスク上の磁気的欠陥の存在が無視できなくなる。そのため、磁気ディスク上のデフェクトが存在しても読み書きされるデータの信頼性を高めるために、エラー訂正が重要になってきている。
エラー訂正は、読み出したデータがエラーを含んでいる場合などに行われる。エラーは、磁気ディスク上に形成された磁気層の剥がれや、磁気ヘッドとの擦れによるスクラッチ、磁気ディスク上のゴミなどにより発生する。ハード・ディスク・ドライブは、このエラー訂正のために磁気ディスク上に、１セクタのデータ（通常５１２バイト）毎に、それに基づくパリティを数１０バイト付加している。このパリティをＥＣＣ（エラー訂正符号：Error Correcting Code）という。読み出し時には、ハード・ディスク・ドライブに設けられたＥＣＣ回路で読み出されたデータと読み出されたパリティ（ＥＣＣ）からシンドロームを生成し、そのシンドロームからエラー位置の検出を行うとともにエラー訂正処理が施される。
エラー訂正能力は、一例として、５１２バイト／１セクタのデータに、４ウェイ・インタリーブ（１セクタのデータを先頭から順次４つの部分［インタリーブ］に振り分け、インタリーブごとにパリティを求める方法）を考える。この場合、１２バイト／インタリーブすなわち４８バイト/セクタのＥＣＣ byteを付加した場合では、求め方にもよるが、１インタリーブ当たり５バイトすなわち、１セクタ当たり２０バイトまでのエラーを訂正することができる。このため、再生データ中のエラーがエラー訂正能力以内ならば、データを順次読み出しながら、データの転送を中断することなくエラー訂正を行うことができる。これをＯＴＦ(On The Fly Collection)と呼ぶ。
【０００４】
ところが、エラーの発生しているバイト数が訂正能力を超えてしまった場合は、ハード・ディスク・ドライブに備えられたＭＰＵやＨＤＣ（ハード・ディスク・コントローラ）は、読み出しヘッドのトラック幅方向のオフセットやチャネル・イコライザーの係数など、読み出しパラメータを変化させながら読み出しのリトライを行う。これをエラー・リカバリ・オペレーション（Error Recovery Operation）という。エラー・リカバリ・オペレーションによってもエラー訂正が行えない場合には、何らかの方法でエラー位置が特定されると、ＯＴＦによる訂正よりも多くの量のエラーを訂正することができるようになる。これを、消失訂正（Erasure Correction）という。エラー位置の検出には、従来、例えば特開２０００−５７７０７号公報に示すように、リード／ライト・チャネルのビタビ・デコーダ（Viterbi Decoder）からのパリティ・エラー信号等に基づくエラー位置情報を使う方法などが用いられてきた。
【０００５】
【発明が解決しようとする課題】
しかしながら、以上の方法では、ソフト・エラー・レートなど個々のヘッド特性のばらつきなどにより、過剰にエラー位置が求められたり、特にランダム・ノイズ（Random Noise）がエラー訂正不能の要因になっている場合には、読み出しの度に誤りが発生する箇所が変動することがある。さらに、ビダビ・デコーダから得られるエラー位置の精度が不確かになったりするなどの問題があった。そのため、エラー訂正能力を超えた場合には、エラー訂正を行っても、適切に訂正できる確率はあまり高くなかったといえる。
したがって本発明は、エラー訂正の確率を上げ、正しい読み出しデータを生成することを課題とする。
【０００６】
【課題を解決するための手段】
前述のように、ランダム・ノイズがエラー訂正不能の要因になっている場合には、読み出しの度にエラーが発生する箇所が変動する。ところが、この特質を利用すればエラー発生位置を特定できる。つまり、同一のセクタについてデータを複数回読み出すとともに、読み出したデータを比較し、読み出されたデータが読み出し回数に係わらず一致していれば、そのデータについてはエラーが発生しておらず、逆に、そのデータが一致していなければエラーが発生しているとみなすのである。例えば、ハード・ディスク・ドライブの場合、同一のセクタ内における所定位置の値が、読み出しの回数に係わらず“０”の場合には、前記所定位置のデータは真正なデータとみなすことができる。逆に、所定位置の値が、一度目の読み出しの際には“１”であったにも係わらず、２度目の読み出しの際には“０”の場合には、前記所定位置のデータにはエラーが発生しているものとみなすことができる。
【０００７】
本発明は以上の知見に基づくものであり、ホストから転送される書き込み要求および読み出し要求に基づいて、書き込み処理または読み出し処理を行うヘッドと、ヘッドの書き込み処理によって書き込みデータが記憶され、かつ読み出し処理によって読み出しデータが読み出される記憶媒体と、ヘッドが記憶媒体の所定領域において複数回読み出した読み出しデータを一時的に各々記憶する記憶手段と、各々記憶された読み出しデータを比較する比較手段とを備えることを特徴とするデータ記憶装置である。
本発明のデータ記憶装置は、複数回読み出した読み出しデータを比較することができるので、前述したように、比較されたデータにエラーが発生しているか否かの判断を行うことができる。
【０００８】
本発明のデータ記憶装置において、比較手段は、各々記憶された読み出しデータの対応する部位のデータ値の一致および不一致を判断することができる。データ値が不一致であれば、当該データ値にはエラーがあるものとみなすことができる。一方、データ値が一致していれば、当該データ値にはエラーが発生しておらず、真正なデータとして取り扱うことができる。
本発明のデータ記憶装置によれば、データの比較によりエラー発生箇所を精度よく見つけることができるので、比較手段により不一致と判断された部位のデータ値に対してエラー訂正を行うエラー訂正手段を備えれば、出力される読み出しデータは極めて精度の高いものとなる。
【０００９】
本発明のデータ記憶装置において、読み出したデータの比較によって真正なデータを特定するに際し、その精度を向上するために、読み出しの回数を３回以上とすることが望ましい。その場合、各々記憶された読み出しデータの対応する部位のデータ値について多数決を取ることが考えられる。そして、比較手段は、多数決により最も多く読めた値を当該部位における真正なデータ値とみなし、かつこの真正なデータの値の組み合わせによる読み出しデータを生成することができる。逆に、真正とみなされたデータ以外のデータにはエラーがあるものとみなし、このデータをエラー訂正の対象とする。
【００１０】
本発明は以上のデータ記憶装置に用いることのできる以下の読み出しデータの処理装置を提供する。この読み出しデータの処理装置は所定の容量を有するセクタ単位で読み出された第１のデータについてデータ・エラーが発生しているか否か判定する第１の判定手段と、第１の判定手段によってデータ・エラーが発生していると判定された前記第１のデータを含むセクタについて、再度読み出し処理を実行して第２のデータを取得する再読み出し指示手段と、相互に対応する位置における第１のデータの値と第２のデータの値の変動有無を判定する第２の判定手段と、第２の判定手段により変動したと判定された第１のデータおよび第２のデータについてエラー訂正を施すエラー訂正手段と、を備えることを特徴とする。
本発明の読み出しデータの処理装置は、相互に対応する位置における第１のデータの値と第２のデータの値の変動有無を判定することにより、エラーの発生しているデータを特定する。そして、この特定されたデータについて、エラー訂正処理を施す。したがって、エラー訂正の確率を向上することができる。
【００１１】
本発明の読み出しデータの処理装置において、相互に対応する位置における第１のデータの値と第２のデータの値の変動有無の判定は、常に行う必要はない。エラーが発生していない場合には、このような判定はほとんど意味をなさない。したがって、第２の判定手段は、第１の判定手段によりデータ・エラーが発生しているものと判定した場合に、第２のデータについて、相互に対応する位置における第１のデータの値と第２のデータの値の変動有無を判定することが望ましい。
【００１２】
また本発明は、複数のセクタから構成されるトラックが形成された記憶媒体から前記セクタ単位で読み出したデータを処理する以下の読み出しデータの処理装置を提供する。この読み出しデータの処理装置は、所定のセクタについてｎ回だけ（ｎは自然数）読み出したｎ個の前記読み出しデータを一時的に記憶する記憶手段と、ｎ個の読み出しデータについて、セクタ内のロケーション毎に最大頻度の値を特定する特定手段と、特定手段によってロケーション毎に特定された最大頻度の値による生成データを構成する読み出しデータ構成手段とを備えることを特徴としている。
以上の読み出しデータの処理装置は、ロケーション毎に特定された最大頻度の値を真正なデータとみなし、他のデータについてエラー訂正等の処理を施して出力のためのデータを生成することができる。
【００１３】
本発明の読み出しデータの処理装置において、ｎ個の読み出しデータについて、セクタ内のロケーション毎に最大頻度の値を特定することができない場合もある。その場合には、所定の読み出し回数時、例えば１回目に読み出された読み出しデータの値を、当該ロケーションにおける生成データを構成する値として特定し、以後のエラー訂正処理の対象とすることができる。
本発明の読み出しデータの処理装置は、読み出しデータ構成手段により構成された生成データについて、エラー訂正処理を行うエラー訂正手段を備えることができる。
【００１４】
現在、ハード・ディスク・ドライブにおいて、磁気ディスクから読み出されたデータは、前述のように、インタリーブという所定単位に区分される。ここで、４ウェイ・インタリービング（４Way  Interleaving）とは、１セクタのユーザ・データが、 00 01 02 03 04 05 06 ...... 511  という場合に、インタリーブ０には、00,04,08....、インタリーブ１には、01,05,09....、インタリーブ２には、02,06,10....、インタリーブ３には、03,07,11....、というように、それぞれのインタリーブではユーザ・データを４個飛ばしたロケーション（Location）のデータのみを符号化の際に使用するというものである。
【００１５】
以上のインタリービングにおいて、使用しているＥＣＣ(エラー訂正符号)では訂正しきれない誤りが１セクタのデータ中で発生したとする。ところが、インタリーブの単位で捉えると、ＥＣＣによって訂正可能なインタリーブと訂正不可能なインタリーブが存在するであろう。そこで、インタリーブ毎にエラー訂正を実行し、エラー訂正されたインタリーブを組み合わせることにより、従来、読み出しすることができなかったセクタの読み出しを可能にすることができる。
本発明は、以上の観点に基づくデータ記憶装置をも提供する。本発明のデータ記憶装置は、ホストから転送される書き込み要求および読み出し要求に基づいて、書き込み処理または読み出し処理を行うヘッドと、ヘッドの書き込み処理によって書き込みデータが記憶され、かつ読み出し処理によって読み出しデータが読み出される記憶媒体と、ヘッドが記憶媒体から読み出した読み出しデータを所定の規則に基づいて分割して所定単位ごとに一時的に記憶する第１の記憶手段と、分割して記憶された所定単位ごとに、読み出しデータにエラーが生じているか否か判定する判定手段とを備えることを特徴とする。
【００１６】
本発明のデータ記憶装置は、読み出しデータについてエラー判定がなされた際に、所定単位ごとに当該読み出しデータについてエラー訂正処理を施すエラー訂正手段をさらに備える。そして、判定手段は、エラー判定がなされた読み出しデータについて、分割して記憶された所定単位ごとに、エラー訂正手段によるエラー訂正処理を行った後にエラー訂正が可能であったか否かを認識する。
次いで、本発明のデ―タ記憶装置は、判定手段によりエラー訂正が可能と認識されかつエラー訂正がなされた読み出しデータを、所定単位として記憶する第２の記憶手段をさらに備えることができる。
一方で本発明のデータ記憶装置は、判定手段によりエラー訂正が不可能と認識された読み出しデータを含む所定単位について、エラー訂正を可能とする所定の処理を施す。エラー訂正を可能とする所定の処理とは、読み出しヘッドのトラック幅方向のオフセットやチャネル・イコライザーの係数など、読み出しパラメータを変化させながら読み出しのリトライを行なうエラー・リカバリ・オペレーションを含む。
エラー訂正手段は、エラー訂正を可能とする所定の処理を施した所定単位に対してエラー訂正処理を施し、エラー訂正処理が施された所定単位は第２の記憶手段に記憶される。
そして、第２の記憶手段に記憶された、エラー訂正が可能と認識されかつエラー訂正手段により訂正された読み出しデータおよびエラー訂正が不可能と認識されかつエラー訂正手段により訂正された読み出しデータに基づいて、ホストへの出力対象とする所定単位を生成する編集手段を備えることができる。
【００１７】
本発明は、以上のデータ記憶装置に適用することができる以下の読み出しデータの処理装置を提供する。この処理装置は、記憶媒体からセクタ単位で読み出したデータを複数のインタリーブに区分して処理する読み出しデータの処理装置であって、インタリーブ毎にデータを記憶する記憶手段と、インタリーブ毎にエラー発生の有無を判定するエラー判定手段と、インタリーブ毎にエラー訂正処理を施すエラー訂正手段とを備えるという基本構成を有している。そしてこの読み出しデータの処理装置は、エラー判定手段によりエラーが発生していると判定されかつエラー訂正手段によりエラーが訂正されたインタリーブの組み合わせによって外部への出力対象となる読み出しデータを構成することを特徴としている。
【００１８】
先に、エラーデータの特定あるいは真正データの特定についてデータ記憶装置および読み出しデータの処理装置について説明した。本発明は、このデータ記憶装置および読み出しデータの処理装置に適用することのできる以下の読み出しデータの処理方法を提供する。
本発明は、記憶媒体からセクタの単位でユーザ・データを読み出し、ユーザ・データについてのエラー発生有・無を判定し、エラー発生有と判定されたユーザ・データを含むセクタをさらに１または２回以上読み出し対象としてユーザ・データを再度読み出す。そして、当初に読み出されたユーザ・データと再度読み出されたユーザ・データについて、同一のロケーションに存在するデータ値を比較する。
この比較において、読み出しの度にデータ値が変動するか否かを判定する。データ値が変動していれば、変動しているデータがエラー発生の要因と認定することができる。一方、データ値が変動していなければ、変動していないデータについては、エラーが発生していないものと認定する。ここで、すべてのデータが一致していない場合でも、一致したデータ値の頻度がもっとも高いデータ値を真正なデータ値として取り扱うことができる。
【００１９】
また、インタリーブに関するデータ記憶装置および読み出しデータの処理装置に適用することのできる以下の読み出しデータの処理方法を提供する。
本発明は、記憶媒体からセクタの単位でユーザ・データを読み出し、読み出したユーザ・データを複数のインタリーブに分類し、インタリーブ毎にユーザ・データにエラーが発生しているか否か判定し、エラーが発生していると判定されたインタリーブ毎に第１のエラー訂正処理を施し、第１のエラー訂正処理によってエラーが訂正されなかったインタリーブについて、第１のエラー訂正処理とは異なる第２のエラー訂正処理を施すことを特徴とする読み出しデータの処理方法である。この読み出しデータの処理方法において、エラーが発生していないと判定されたインタリーブ、第１のエラー訂正処理によりエラー訂正がなされたインタリーブおよび第２のエラー訂正処理によりエラー訂正がなされたインタリーブの１または２以上の組み合わせによって、出力としての１セクタ分の読み出しデータを構成することになる。
【００２０】
【発明の実施の形態】
以下本発明を実施の形態に基づいてより具体的に説明する。
図１は、本実施の形態によるハード・ディスク・ドライブ１の主要部を示すブロック図である。ハード・ディスク・ドライブ１は、スピンドル・モータ３によって回転駆動される磁気ディスク２上を磁気ヘッド４がシークしかつ所定のトラック（位置）に留まって磁気ディスク２に対してデータを書き込み、または磁気ディスク２に書き込まれたデータを読み出すデータ記憶再生装置である。磁気ディスク２は、必要に応じて単数または複数搭載されるが、本実施の形態においては、単数の例を示している。
【００２１】
磁気ディスク２は、ハード・ディスク・ドライブ１が動作しているとき、スピンドル・モータ３のスピンドル軸を中心にして回転駆動され、ハード・ディスク・ドライブ１が非動作のとき、回転停止（静止）する。磁気ディスク２の表面には、磁気ディスク２の半径方向に沿って複数の位置情報（サーボ情報）記憶領域が放射状に形成されており、他の領域にはデータ記憶領域が形成されている。このサーボ情報を磁気ヘッド４が読み取ることにより磁気ヘッド４の位置を知ることができる。サーボ情報は、トラック識別データおよびバースト・パターンとから構成される。トラック識別情報は各データ・トラックのトラック・アドレスを表す情報である。磁気ヘッド４がこのトラック識別情報を読み取ることにより、磁気ヘッド４の現在位置するトラック位置が判断可能となる。バースト・パターンは各々信号が記憶された領域が磁気ディスク２の半径方向に沿って一定間隔で配列されたもので、互いに信号記憶領域の位相が異なる複数の信号記憶領域列で構成されている。このバースト・パターンから出力される信号に基づいて、データ・トラックに対する磁気ヘッド４のずれ量が判定可能となる。
【００２２】
磁気ヘッド４は、アクチュエータ５の先端部に磁気ディスク２の表裏面に対応して２つ保持されている。磁気ヘッド４は、磁気ディスク２に対してデータの書き込みおよび読み出しを実行する。また、磁気ディスク２に記憶されているサーボ情報を読み取る。磁気ヘッド４は、アクチュエータ５と一体となって磁気ディスク２の半径方向に移動する。磁気ヘッド４が駆動しない場合に退避するためのランプ（図示せず）が、磁気ディスク２よりも外方に配置されている。
リード／ライト・チャネル１１は、データの読み／書き処理を実行する。つまり、ＨＤＣ（ハード・ディスク・コントローラ）１３を介してホスト・コンピュータ２００から転送された書き込みデータを書き込み信号（電流）に変換して磁気ヘッド４に供給する。磁気ヘッド４は、この書き込み電流に基づいて磁気ディスク２に対してデータの書き込みを実行する。一方、磁気ディスク２から読み出した読み出し信号（電流）をデジタル・データに変換してＨＤＣ１３を介してホスト・コンピュータ２００に出力する。
サーボ・コントローラ１４は、リード／ライト・チャネル１１から出力される読み出しデータの中からサーボ情報を抽出する。前述のように、サーボ情報は、トラック識別データおよびバースト・パターンを含んでいる。サーボ情報は、抽出したサーボ情報をＭＰＵ（Micro Processing Unit）１２に転送する。また、サーボ情報から磁気ヘッド４のトラック・センタに対するずれ量を求めＨＤＣ１３に送る。
【００２３】
アクチュエータ５は、ＶＣＭ（ボイス・コイル・モータ）６によって駆動される。したがって、ＶＣＭ６が磁気ヘッド４を駆動するということもできる。ＶＣＭ６は、コイルを要素とする可動子と永久磁石を要素とする固定子とから構成されており、このコイルに所定の電流をＶＣＭドライバ８から供給することにより、可動子を駆動させ、磁気ヘッド４を磁気ディスク２上の所定位置に移動あるいは停止させる。
【００２４】
ＨＤＣ（ハード・ディスク・コントローラ）１３は、ハード・ディスク・ドライブ１のインターフェースとしての機能を有している。その機能の１つは、ホスト・コンピュータ２００から転送された書き込みデータを受けるとともに、受けた書き込みデータをセクタ・バッファ１５に転送する機能である。
セクタ・バッファ１５に一時的に記憶された書き込みデータは、ＭＰＵ１２の指示に基づきＨＤＣ１３が読み出して、リード／ライト・チャネル１１に転送する。また、ＨＤＣ１３はリード／ライト・チャネル１１から転送される読み出しデータを、セクタ・バッファ１５に一時的に記憶した後に、ホスト・コンピュータ２００に転送する。ＨＤＣ１３は、また、読み出しデータについて、エラー訂正を行う機能を有している。
【００２５】
メモリ１６は、セクタ・バッファ１５に一時的に記憶された読み出しデータについて、本実施の形態による特徴的な処理を施すための作業領域として機能する。この機能については、追って詳しく説明する。
ＭＰＵ１２とＨＤＣ１３は連動して、ハード・ディスク・ドライブ１の制御を担う。ＭＰＵ１２は、メモリ１６に記憶されたプログラムを解釈、実行する。ＭＰＵ１２は、サーボ・コントローラ１４から転送されたサーボ情報に基づいて磁気ヘッド４の位置を判断し、判断した磁気ヘッド４の位置とターゲット位置との距離に基づいて磁気ヘッド４への位置決め制御電流をデジタル／アナログ変換器（ＤＡＣ）７に出力する。
ＤＡＣ７は、ＭＰＵ１２から出力された位置決め制御電流をアナログ信号（電圧信号）に変換するとともに、ＶＣＭドライバ８に出力する。
ＶＣＭドライバ８は、ＤＡＣ７から受けた電圧信号を駆動電流に変換してＶＣＭ６に供給する。
【００２６】
図２は、ハード・ディスク・ドライブ１が、読み出しデータを処理する際の機能ブロックを示す図である。
図２において、ドライブ・コントロール・ロジック１７は、リード／ライト・チャネル１１から転送された読み出しデータをＥＣＣ回路１８に転送する。
ＥＣＣ回路１８は、ＥＣＣを含む読み出しデータに基づいて、エラー判定を行うとともに、エラー訂正を行う。このエラー訂正は、前述のＯＴＦおよび消失訂正の両者を含む。エラー判定およびエラー訂正は、デコーダ（Decoder）１８１およびシンドローム発生器（Syndrome Generator）１８２によって実行される。ここで、シンドロームとは、所定の多項式の演算を行ない、各データに誤りがなければ所定の多項式は０となるような、誤り（エラー）にのみ依存する値である。
メモリ・マネージャ・ロジック（Memory Manager Logic）１９は、セクタ・バッファ１５およびメモリ１６に対する読み出しデータの記憶を制御する。
データ比較ロジック２０は、セクタ・バッファ１５および／またはメモリ１６に記憶されている複数の読み出しデータについて、同一のロケーションにおけるデータを比較する。この比較は、データ値の変動、つまり一致または不一致を判定することを含む。また、同一のロケーションにおけるデータ値の多数決を取ることができる。
多数決後データ転送ロジック（Data Feed Logic）２１は、詳しくは後述するが、データ比較ロジック２０により多数決が採用された後のデータをＥＣＣ回路１８に転送する。
【００２７】
さて、磁気ディスク２にスクラッチが生じているために読み出しエラーが発生した場合の読み出し波形を図３に示す。このような磁気ディスク２上の欠陥部分が読み出しの対象になると、読み出し波形が欠落する。この波形が失われている部分は、不定な値が読み出されることになる。この欠陥部分のデータはノイズの影響などにより、読み出される毎に異なった値となる。このため、複数回読み出せば、１セクタ中でこの部分だけが異なる値となるため、１セクタ内のエラー位置を特定することができる。この情報に基づいて、消失訂正を施せば、より多くのエラーを訂正することができることになる。
【００２８】
例えば、磁気ヘッド４により書き込んだ１セクタ分のユーザ・データが図４に示すように、すべてのバイトが０（ゼロ）であったものとする。なお、１セクタ中のデータ数は５１２バイトとしている。なお、ＥＣＣバイトの記載は省略している。
以上のユーザ・データを磁気ディスク２に書き込んだ後に、磁気ヘッド４により読み出したユーザ・データ（当初読み出しデータ）は、図５に示す通りである。つまり、下線を付した部位（ロケーション）のデータ値が、書き込みデータによるデータ値“０”と相違している。この相違部分の２０バイト分だけデータが壊れている、つまりエラーとなっている。この当初読み出しデータは、ＥＣＣ回路１８により、エラーが発生しているものと判定される。そうすると、この当初読み出しデータと読み出されたＥＣＣバイトは、メモリ・マネージャ・ロジック１９の指示により、メモリ１６に記憶される。
当初読み出しデータについてエラー発生の判定がなされているため、同一のセクタが２回目の読み出し対象となる。この２回目の読み出しは、ドライブ・コントローラ・ロジック１７が指示する。２回目の読み出しにより読み出されたユーザ・データを図６に示す。この２回目の読み出しデータと読み出されたＥＣＣバイトはセクタ・バッファ１５に記憶される。２回目の読み出しデータにおいては、下線を付した２３バイトのデータがエラーとなっている。
【００２９】
データ比較ロジック２０は、メモリ１６に記憶された当初読み出しデータ、読み出されたＥＣＣバイトと、セクタ・バッファ１５に記憶された２回目の読み出しデータ、読み出されたＥＣＣバイトとを比較する。なお、ＥＣＣバイト部分での誤りは無かったものとして以下の説明をする。図５および図６を比較すれば、１８９ｈ〜１９Ｄｈのデータ値は、当初読み出しデータは、“00ACDB3436FD1D 12AFB6A32698DD53 6753A792BB21”であるのに対して、２回目の読み出しデータは、“328F992B5A1617 728E771B3C265FA7 24729DEC3689”である。つまり、当初読み出しデータと２回目の読み出しデータは、１８９ｈ〜１９Ｄｈの範囲で一致せず変動している。この１８９ｈ〜１９Ｄｈは、エラーが発生している箇所としてメモリ１６に記憶する。そして、消失訂正を行うことで真正なデータを生成することが可能となる。消失訂正によってエラー訂正をすることができない場合には、エラー・リカバリ・オペレーションを実施する。
また、上記説明では、ユーザ・データ部分について行われているが、ＥＣＣバイト部分にエラーが発生していることもあるので、ＥＣＣバイト部分についても同様に読み出された値の比較を行うことによりエラーが発生している箇所を特定し、エラー訂正を行えば良いことになる。
【００３０】
次に、本実施の形態により、同一のセクタに対して複数回データの読み出しを行って真正なデータを特定する手法について説明する。この手法は、複数回読み出したデータについて多数決を適用するものである。
なお、説明の便宜上、セクタにはあらかじめ、図７のＷＴ  ｄａｔａに示すように、すべてのバイトに０（ゼロ）が書き込まれていたものとする。また、この例は、セクタについてエラー訂正不可能になったことを前提とする。
ＥＣＣ回路１８によりエラー訂正不可能と判定された後の１回目に読み出されたユーザ・データとパリティが、図７のＲｅａｄ１のように読めたとする。このデータは、ドライブ・コントロール・ロジック１７、ＥＣＣ回路１８を経由してからメモリ・マネージャ・ロジック１９によりセクタ・バッファ１５に記憶される。
【００３１】
２回目以降の読み出しでエラーの個数がエラー訂正可能な数以下の場合には正常に読み出しできたと判断されるが、本発明の効果を説明するため、これ以降の読み出しで発生するエラーの個数は必ず、ＥＣＣ回路１８におけるエラー訂正能力を超えていると仮定する。２回目の読み出しでは、図７のＲｅａｄ２のように、さらに３,４,５回目の読み出しでは図７のＲｅａｄ３〜５のように読めたとする。
以上の５回の読み出しデータにおいて、Address（アドレス）が００ｈのデータ値についてみると、“００”ｈが３回、“ｆｂ”ｈおよび“３４”ｈが各々１回ずつとなっている。この場合、多数決として“００”が採用され、このセクタのアドレス００ｈには、“００”ｈが書き込まれていたものと判断し、この値を多数決後のデータとして、セクタ・バッファ１５に記憶する。これと同様な操作をデータとパリティ全てについて行い、セクタ・バッファ１５に記憶する。アドレス０４ｈのように一度も同じ値のデータが読めなかったところは、例えば１回目の読み出しデータの値を選択するようにする。そして、当該アドレスに対応するロケーションは消去位置（Erasure Location）とする。以上の操作はデータ比較ロジック２０で行うが、ハードウェアで行っても、ソフトウェアで行っても良い。
【００３２】
次に、多数決を行った後のデータからシンドロームを再計算する。多数決後データ転送ロジック２１は、セクタ・バッファ１５から多数決後のデータを読み出し、ＥＣＣ回路１８内のシンドローム発生器１８２に多数決後のデータを転送し、シンドローム発生器１８２は多数決後のデータに対するシンドロームを生成する。
もし、シンドローム発生器１８２と多数決後データ転送ロジック２１とクロック（Clock）が異なる場合には、多数決後データ転送ロジック２１内で同期化してから、シンドローム発生器１８２にデータを転送する。シンドロームの生成もソフトウェアで行っても構わない。
シンドロームが生成されたら、ＥＣＣ回路１８内のデコーダ１８１と、多数決後データを決める際に取得した消去位置を使用して、消失訂正を行う。消失訂正が行われた後のデータは、ホスト・コンピュータ２００に対する出力データとなる。
【００３３】
以上のように、本実施の形態によれば、複数回読み出したデータから多数決を取ることによって、従来よりも高い確度の消失位置情報が得られ、また、エラー訂正符号を使用せずに真正データに修正されることもあることから、従来では不可能であったランダム・ノイズが大きい状態での読み出しが可能になる。
例えば、スクラッチのように数１０バイトの長さにわたってデータが壊れている場合であっても、エラーが発生している部分とエラーが発生していない部分の境界付近の、正しく読めたり読めなかったりするデータに対してもこの手法を用いれば、エラーの個数を減らせるので、エラー訂正符号による復号の成功確率を上げることができる。
【００３４】
図８〜図１３は、多数決により真正なデータを特定するより具体的な例を示す。図８〜図１２は、１回目〜５回目の読み出しデータを示している。各読み出し回において、エラーが発生したと判定された部位には、下線を付している。各読み出し回ごとのエラーは、６〜１６バイトである。しかし、多数決を採用することにより、図１３に示すように、エラーの数が２バイトまで減ることがわかる。
【００３５】
次に、インタリーブ毎にエラー訂正を行う形態について、図１４を参照しつつ説明する。
図１４は、この形態を実行する際の機能ブロックを示している。
ＥＣＣ回路１８は、インタリーブ毎に復号を行う。したがって、インタリーブ毎にエラー訂正可能であったか、否か、及びエラー訂正可能な場合には、そのインタリーブ内の誤り位置および誤りの値を保持している。
図１４において、第１の訂正・記憶手段２２は、エラー訂正可能と判定されたインタリーブのデータを訂正して、セクタ・バッファ１５に記憶する機能を有する。第２の訂正・記憶手段２３は、エラー訂正が不可能と判定されたインタリーブについて、エラー・リカバリ・オペレーションを適用することによりエラー訂正を完了させ、セクタ・バッファ１５に記憶する機能を有する。
セクタ・バッファ１５には、あるセクタについての読み出された状態の読み出しデータ（図中、original）が記憶される。また、セクタ・バッファ１５には、訂正が加えられた読み出しデータ（図中、corrected）も記憶される。
メモリ１６には、エラー訂正されたインタリーブのデータが記憶される。本実施の形態では、４ウェイ・インタリーブを適用しているため、０〜３の４つの記憶領域に記憶される。
インタリーブ編集手段２４は、メモリ１６内に記憶されたインタリーブのデータを組み合わせてセクタ・データを生成する。ここで生成されたデータは、セクタ・バッファ１５に記憶される。
【００３６】
あるセクタの読み出しを行い、エラー訂正不可能であったとＥＣＣ回路１８により判断されたとする。その時に全てのインタリーブがエラー訂正不可能であったのか否かをＥＣＣ回路１８からの情報で判断する。
ＥＣＣ回路１８は、インタリーブ毎にデコーダ１８１により復号を行うのでインタリーブ毎にエラー訂正可能であったか、否か、及びエラー訂正可能な場合には、そのインタリーブ内エラー位置およびエラーの値を保持している。
次に、エラー訂正可能なインタリーブが存在した場合には、そのインタリーブをメモリ１６上に記憶し、ＥＣＣ回路１８から得られた、そのインタリーブのエラー位置、エラーの値からエラー訂正を行い、訂正データとして保持しておく。複数のインタリーブがエラー訂正可能であった場合には、エラー訂正可能であったインタリーブ全てに対して、この操作を行う。
【００３７】
次に、ＥＣＣ回路１８において、エラー訂正不可能と判定されたインタリーブがエラー訂正可能になるまで、従来のエラー・リカバリ・オペレーション等を行う。
従来は、このエラー・リカバリ・オペレーションで、そのセクタが１セクタの単位でエラー訂正可能な状態で読み出しできないとリカバリすることができなかった。しかし、本実施の形態では、エラー訂正不可能であったインタリーブだけに着目し、そのインタリーブがエラー訂正可能な状態で読み出しできたか否かだけを判断する。
エラー訂正が不可能であったインタリーブがエラー訂正可能になった場合にも、そのインタリーブの訂正をして、メモリ１６上に記憶しておく。もし、複数のインタリーブがエラー訂正不可能であった場合には、それぞれのインタリーブがエラー訂正可能な状態になるまで、エラー・リカバリ・オペレーションを行うことになるが、その際にも、それらのインタリーブが同時にエラー訂正可能な状態でリードされなければならないわけではない。
【００３８】
すべてのインタリーブが訂正された後で、インタリーブ編集手段２４は、あらかじめ記憶しておいた各インタリーブのデータを１セクタ分のデータとして構成しながら、セクタ・バッファ１５上に記憶し直す。これにより、従来はエラー訂正不可能であったセクタの読み出しデータの提供を可能にする。
なお、以上の場合であっても、ＣＲＣシンドロームによるデータの認証を行う。このデータの認証は、訂正がなされたインタリーブ毎に行ってもよいし、インタリーブ編集手段２４によって、１セクタのデータとして編集された後に行ってもよい。どちらの方式で行うかはＣＲＣをインタリーブ毎に生成しているか、１セクタのデータから生成しているかに依存している。このＣＲＣは、通常ＥＣＣ回路１８によるエラー訂正の検出を行うために用意されており、ＥＣＣバイトの一部としてメディア上に記憶されている。ＥＣＣ回路１８はエラー訂正時には必ずＣＲＣシンドロームによる認証を行う。
また、ＥＣＣ回路１８によって、エラー訂正が不要と判断されるインタリーブも存在する。その場合には、インタリーブ編集手段２４は、訂正が不要と判断されるインタリーブも考慮して、１セクタのデータを生成することになる。
【００３９】
以上の形態は、例えば、ソフト・エラー・レート(Soft Error Rate)が低くランダム・ノイズが非常に多い時には有効である。ある瞬間の読み出しと次の読み出しでエラー訂正不可能になるインタリーブが変動する可能性が高いからである。しかし、ソフト・エラー・レートが低いので１セクタがきれいにエラー訂正可能な状態で読めることはない。
このような場合に、本実施の形態では、１度でもエラー訂正可能な状態で読み出せたインタリーブを蓄積していくことによって、従来リカバリ不能であったセクタの読み出しを可能にする。つまり、インタリーブ単位のリカバリを行うことで、セクタ単位でリカバリ不能なセクタのリカバリを可能にするのである。
【００４０】
また、本発明は、例えばリード／ライト・チャネル１１の復号器等が隣接バイト(Symbol)の値によって影響を受けるような構造の場合には，磁気ディスク２からの読み出しを行わずに、エラー訂正可能であったインタリーブのデータを使用して再度リード／ライト・チャネル１１内の復号器等で復号する。そうすることによって、エラー訂正不可能であったインタリーブの訂正を行うことも可能になる。この場合には、エラー訂正されたインタリーブのデータと誤り不可能なインタリーブのデータを１セクタの形に並び替えながら、リード／ライト・チャネル１１にそのデータを転送する手段が必要になる。
【００４１】
【発明の効果】
以上説明したように、本発明によれば、エラー訂正の確率を上げ、正しい読み出しデータの生成に寄与する。
【図面の簡単な説明】
【図１】  本実施の形態によるハード・ディスク・ドライブの主要構成を示すブロック図である。
【図２】   ハード・ディスク・ドライブが、読み出しデータを処理する際の機能ブロックを示す図である。
【図３】  磁気ディスクにスクラッチが生じている場合の読み出し波形を示すグラフである。
【図４】  本実施の形態により磁気ディスクに書き込んだ１セクタ分のユーザ・データを示す図である。
【図５】  本実施の形態における１回目の読み出しデータを示す図である。
【図６】  本実施の形態における２回目の読み出しデータを示す図である。
【図７】  本実施の形態において、１〜５回目のデータおよび多数決によるデータを対比して示す図である。
【図８】  本実施の形態における１回目の読み出しデータを示す図である。
【図９】  本実施の形態における２回目の読み出しデータを示す図である。
【図１０】  本実施の形態における３回目の読み出しデータを示す図である。
【図１１】  本実施の形態における４回目の読み出しデータを示す図である。
【図１２】  本実施の形態における５回目の読み出しデータを示す図である。
【図１３】  本実施の形態において、多数決によって特定された真正なデータを示す図である。
【図１４】  本実施の形態において、インタリーブ毎にエラー訂正を行う際の機能ブロック図である。
【符号の説明】
１…ハード・ディスク・ドライブ、２…磁気ディスク、３…スピンドル・モータ、４…磁気ヘッド、５…アクチュエータ、６…ＶＣＭ（ボイス・コイル・モータ）、７…ＤＡＣ、１１…リード／ライト・チャネル、１２…ＭＰＵ、１３…ＨＤＣ（ハード・ディスク・コントローラ）、１４…サーボ・コントローラ、１５…セクタ・バッファ、１６…メモリ、１７…ドライブ・コントロール・ロジック、１８…ＥＣＣ回路、１９…メモリ・マネージャ・ロジック、２０…データ比較ロジック、２１…多数決後データ転送ロジック、２２…第１の訂正・記憶手段、２３…第２の訂正・記憶手段、２４…インタリーブ編集手段、１８１…デコーダ、１８２…シンドローム発生器、２００…ホスト・コンピュータ
【図１】
0003663377.tif 000002
【図２】
0003663377.tif 000003
【図３】
0003663377.tif 000004
【図４】
0003663377.tif 000005
【図５】
0003663377.tif 000006
【図６】
0003663377.tif 000007
【図７】
0003663377.tif 000008
【図８】
0003663377.tif 000009
【図９】
0003663377.tif 000010
【図１０】
0003663377.tif 000011
【図１１】
0003663377.tif 000012
【図１２】
0003663377.tif 000013
【図１３】
0003663377.tif 000014
【図１４】
0003663377.tif 000015