(57)【要約】【課題】データの誤り位置を特定することができない場合でも、データの誤り訂正に要する時間を短縮してイレージャー・モードによる誤り訂正を行うことができる情報記憶装置を提供すること。【解決手段】制御部３３４は、ＦＩＦＯ３３０に格納されている磁気ディスクから読み出したユーザデータおよびＥＣＣをデータ・バッファ３３に転送する。イレージャー位置移動制御部３３３２が、予め定められた初期値から予め定められたイレージャー移動ステップ刻みでイレージャー開始位置を更新し、イレージャー位置指定部３３３１が、イレージャー開始位置と予め定められたイレージャー長とに基づいてイレージャー訂正位置を決定する。ＥＣＣ処理部３３１は、データ・バッファ３３に格納されているデータおよびＥＣＣに対してイレージャー・モードでＥＣＣ演算処理による誤り訂正を行なう。【選択図】        図９
2006127635.tif 000002
【特許請求の範囲】
【請求項１】
ユーザデータと誤り訂正に用いる冗長データであるＥＣＣとを含むデータを記録媒体から読み出し、読み出したデータに対してＥＣＣ演算処理による誤り訂正を施して前記データの誤りを訂正する機能を有し、前記ＥＣＣ演算処理によってデータを訂正できなかった場合にリトライする情報記憶装置において、
前記記録媒体から読み出したデータを格納するデータ・バッファと、
このデータ・バッファに格納されているデータを格納するバッファと、
前記ＥＣＣ演算処理による誤り訂正のイレージャー訂正位置をリトライ毎に選択するイレージャー制御部と、
このイレージャー制御部によって選択されたイレージャー訂正位置に基づいて、前記データ・バッファに格納されているデータに対してイレージャー・モードでＥＣＣ演算処理による誤り訂正を行ない、誤り訂正が可能な場合には前記バッファに格納されているデータを訂正するＥＣＣ処理部と、
このＥＣＣ処理部によってデータを訂正することができずにリトライする場合には、前記データ・バッファに格納されているデータを前記バッファと前記ＥＣＣ処理部とに転送する制御部と、
を備えることを特徴とする情報記憶装置。
【請求項２】
前記イレージャー制御部は、
前記データ内に含まれるＥＣＣで訂正可能なシンボル数より少ないシンボル数の範囲をイレージャー訂正位置として選択し、
前記ＥＣＣ処理部は、
前記イレージャー訂正位置によるイレージャー・モード、および誤り位置を検出して誤り訂正を行なうオン・ザ・フライ・モードによって前記データ・バッファに格納されているデータに対してＥＣＣ演算処理による誤り訂正を行なうこと、
を特徴とする請求項１に記載の情報記憶装置。
【請求項３】
前記イレージャー制御部は、
複数のイレージャー訂正位置を選択すること、
を特徴とする請求項１または２に記載の情報記憶装置。
【請求項４】
前記イレージャー制御部は、
予め定められた初期値から予め定められたイレージャー移動ステップ刻みでイレージャー開始位置を更新するイレージャー移動位置制御部と、
前記イレージャー開始位置と予め定められたイレージャー長とに基づいて、前記イレージャー訂正位置を選択するイレージャー位置指定部と、
を備えることを特徴とする請求項１〜３の何れか一つに記載の情報記憶装置。
【請求項５】
前記記録媒体として磁気によってデータを記録する磁気ディスクを用いること、
を特徴とする請求項１〜４の何れか一つに記載の情報記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、記録媒体に記録されているデータの読み取りに関するものであり、特に、ＥＣＣ（Error Correcting Code）を用いて読み出したデータの誤り訂正を行なう情報記憶装置に関するものである。
【背景技術】
【０００２】
磁気ディスクや光ディスクなどの記録媒体に情報（データ）を読み書きする情報記憶装置は、パーソナルコンピュータやサーバなどの各種システムの記憶装置として利用されている。
【０００３】
パーソナルコンピュータやサーバなどの上位装置（ホスト）からのライト命令を受けて記録媒体にデータを記録する場合、情報記憶装置は、予め定められた変調方式を用いてホストから入力される記録すべきデータに変調処理を施して、変調されたデータを記録媒体に記憶させる。ホストからのリード命令を受けて記録媒体からデータを読み出す場合、情報記憶装置は、予め定められた復調方式を用いて、読み出したデータに復調処理を施して、復調されたデータをホストに出力する。リード時に、記録媒体の傷などによってデータに誤りが発生することがある。そのため、情報記憶装置は、ライト時にデータの誤り訂正のための冗長データ（ＥＣＣ）を付加しておき、読み出したデータに対する誤り訂正を行なうのが一般的である。
【０００４】
一方、パーソナルコンピュータやサーバなどの各種システムは、処理の高速化が望まれている。そのため、情報記憶装置のデータ読み出しについても高速化が要求され、従来から種々の技術が考えられている。
【０００５】
たとえば、特許文献１に記載の従来技術には、記録媒体からデータを読み出してバッファメモリに格納した後、そのデータを読み出しながらエラー訂正を行ない、エラー訂正を行なったデータをバッファメモリに書き戻すことなく直ちに上位装置に送出するディスク装置に関する技術が開示されている。具体的には、光ディスクコントローラは、ＥＳＤＩユニットを介して光ディスク・ドライブ・ユニットを制御して光ディスクから記録情報を読み出し、記録情報に含まれるユーザデータをバッファメモリとエラー検出ユニットと転送した後に、記録情報に含まれるＥＣＣをエラー検出ユニットに転送する。光ディスクコントローラは、バッファメモリに格納したユーザデータを１バイトずつ読み出してＳＣＳＩコントローラに転送し、エラー検出ユニットがＥＣＣに基づいてユーザデータのビットエラーを検出し、検出したビットエラーの発生位置を示す誤り情報を１バイトずつＳＣＳＩコントローラに順次転送する。ＳＣＳＩコントローラは、バッファメモリから読み出されるユーザデータに対してエラー検出ユニットから転送される誤り情報に基づいてビットエラーを訂正し、訂正したユーザデータをＦＩＦＯ回路に一時格納した後に、バッファメモリに書き戻すことなくＦＩＦＯ回路に格納されているエラー訂正されたユーザデータを上位装置に出力する。
【０００６】
【特許文献１】特開平６−２０２８１９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ところで、ＥＣＣによる誤り訂正には２つのモードがある。１つは、ＥＣＣによってデータの誤り位置を検出し、検出した位置のデータを訂正するオン・ザ・フライ・モード（on the fly mode）であり、もう１つは、データの誤り位置を指定し、指定した位置のデータを訂正するイレージャー・モード（Erasure mode）である。
【０００８】
オン・ザ・フライ・モードは、１シンボルのデータを訂正するために２シンボルのＥＣＣが必要であり、イレージャー・モードは、１シンボルのデータを訂正するために１シンボルのＥＣＣが必要となる。たとえば、１データセクタのデータとＥＣＣとの合計シンボル数をｎとし、ＥＣＣを４シンボルとすると、オン・ザ・フライ・モードでは２シンボルのデータの誤り訂正が可能であり、イレージャー・モードでは４シンボルのデータの誤り訂正が可能となる。換言すれば、ｎ−４シンボルのデータと４シンボルのＥＣＣとで構成されるデータセクタの場合、オン・ザ・フライ・モードでは３シンボル以上のデータに誤りが発生するとデータを訂正することができず、イレージャー・モードでは５シンボル以上のデータに誤りが発生するとデータを訂正することができない。
【０００９】
したがって、上記特許文献１に記載の従来技術では、ＥＣＣ演算処理によって誤り訂正ができない場合には、再度光ディスクから記録情報を読み出さなければならず、データの誤り訂正に多大な時間を要するという問題があった。
【００１０】
また、磁気によって情報を記録する磁気ディスクを記録媒体として用いる磁気ディスク装置では、サーマル・アスペリティによって誤り位置を特定することができる場合には、イレージャー・モードによる誤り訂正を行なうことができるが、磁気ディスクの欠陥などで生じるデータの誤り位置は特定することができない。そのため、オン・ザ・フライ・モードによる誤り訂正を行なうしかなく、訂正長を長くすることができないという問題があった。
【００１１】
また、訂正長を長くするためにイレージャー・モードによる誤り訂正を行うと、誤り位置を特定することができないため、イレージャー訂正位置を変化させなければならない。そのため、誤り位置がイレージャー訂正位置の範囲になるまで、磁気ディスクから何度も記録情報を読み出さなければならず、データの誤り訂正に膨大な時間を要するという問題があった。
【００１２】
この発明は、上述した従来技術による問題点を解消するためになされたものであり、データの誤り位置を特定することができない場合でも、データの誤り訂正に要する時間を短縮してイレージャー・モードによる誤り訂正を行うことができる情報記憶装置を提供することを目的とする。
【課題を解決するための手段】
【００１３】
上述した課題を解決し、目的を達成するため、請求項１の発明にかかる情報記憶装置は、ユーザデータと誤り訂正に用いる冗長データであるＥＣＣとを含むデータを記録媒体から読み出し、読み出したデータに対してＥＣＣ演算処理による誤り訂正を施して前記データの誤りを訂正する機能を有し、前記ＥＣＣ演算処理によってデータを訂正できなかった場合にリトライする情報記憶装置において、前記記録媒体から読み出したデータを格納するデータ・バッファと、このデータ・バッファに格納されているデータを格納するバッファと、前記ＥＣＣ演算処理による誤り訂正のイレージャー訂正位置をリトライ毎に選択するイレージャー制御部と、このイレージャー制御部によって選択されたイレージャー訂正位置に基づいて、前記データ・バッファに格納されているデータに対してイレージャー・モードでＥＣＣ演算処理による誤り訂正を行ない、誤り訂正が可能な場合には前記バッファに格納されているデータを訂正するＥＣＣ処理部と、このＥＣＣ処理部によってデータを訂正することができずにリトライする場合には、前記データ・バッファに格納されているデータを前記バッファと前記ＥＣＣ処理部とに転送する制御部と、を備えることを特徴とする。
【００１４】
また、請求項２の発明にかかる情報記憶装置は、請求項１の発明において、前記イレージャー制御部は、前記データ内に含まれるＥＣＣで訂正可能なシンボル数より少ないシンボル数の範囲をイレージャー訂正位置として選択し、前記ＥＣＣ処理部は、前記イレージャー訂正位置によるイレージャー・モード、および誤り位置を検出して誤り訂正を行なうオン・ザ・フライ・モードによって前記データ・バッファに格納されているデータに対してＥＣＣ演算処理による誤り訂正を行なうこと、を特徴とする。
【００１５】
また、請求項３の発明にかかる情報記憶装置は、請求項１または請求項２の発明において、前記イレージャー制御部は、複数のイレージャー訂正位置を選択すること、を特徴とする。
【００１６】
また、請求項４の発明にかかる情報記憶装置は、請求項１〜３の何れか一つの発明において、前記イレージャー制御部は、予め定められた初期値から予め定められたイレージャー移動ステップ刻みでイレージャー開始位置を更新するイレージャー移動位置制御部と、前記イレージャー開始位置と予め定められたイレージャー長とに基づいて、前記イレージャー訂正位置を選択するイレージャー位置指定部と、を備えることを特徴とする。
【００１７】
また、請求項５の発明にかかる情報記憶装置は、請求項１〜４の何れか一つの発明において、前記記録媒体として磁気によってデータを記録する磁気ディスクを用いること、を特徴とする。
【発明の効果】
【００１８】
請求項１の発明によれば、リトライ毎にイレージャー訂正位置を選択し、選択したイレージャー訂正位置に基づいて、データ・バッファに格納されている記録媒体から読み出したデータに対してイレージャー・モードでＥＣＣ演算処理による誤り訂正を行なうようにしているため、データの誤り位置を特定することができない場合でも、リトライの度に記録媒体からデータを読み出す必要が無くなり、データの誤り訂正に要する時間を短縮してイレージャー・モードによる誤り訂正を行うことができる情報記憶装置を得られるという効果を奏する。
【００１９】
また、請求項２の発明によれば、誤り位置としてイレージャー訂正位置を指定するイレージャー・モード、および誤り位置を検出して誤り訂正を行なうオン・ザ・フライ・モードによってＥＣＣ演算処理による誤り訂正を行なうようにしているので、連続して発生するデータ誤りだけでなく、データ内にランダムに発生するデータ誤りを訂正することができる情報記憶装置を得られるという効果を奏する。
【００２０】
また、請求項３の発明によれば、複数のイレージャー訂正位置を選択するようにしているので、データ内にランダムに発生するデータ誤りに対してもイレージャー・モードで誤り訂正を行なうことができる情報記憶装置を得られるという効果を奏する。
【００２１】
また、請求項４の発明によれば、イレージャー訂正位置を、予め定められた初期値から予め定められたイレージャー移動ステップ刻みで移動させるようにしているので、データの誤り位置を特定することができない場合でも、イレージャー・モードによる誤り訂正を行うことができる情報記憶装置を得られるという効果を奏する。
【００２２】
また、請求項５の発明によれば、記録媒体として磁気によってデータを記録する磁気ディスクを用いるようにしているので、サーマル・アスペリティによってデータの誤り位置を特定することができない場合でも、リトライの度に磁気ディスクからデータを読み出す必要が無くなり、データの誤り訂正に要する時間を短縮してイレージャー・モードによる誤り訂正を行うことができる情報記憶装置を得られるという効果を奏する。
【発明を実施するための最良の形態】
【００２３】
以下に添付図面を参照して、本発明にかかる情報記憶装置の好適な実施例を詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【００２４】
［概要および特徴］
図１〜図７を用いて、この発明にかかる情報記憶装置の概要および特徴を説明する。図１は、この発明にかかる情報記憶装置が記録媒体に記録するデータセクタの構成の一例を示している。図１に示すように、データセクタはＰＬＬ部６０、ＳＢ部６１、ユーザデータ部６２、ＣＲＣ部６３、およびＥＣＣ部６４で構成される。
【００２５】
ＰＬＬ部６０には、情報記憶装置が記録媒体からデータセクタを読み出す際に位相同期、および出力一定化を行なうための情報が格納される。ＳＢ部６１には、以後データが格納されていることを示す同期情報が格納される。ユーザデータ部６２には記憶すべきユーザデータが格納される。ＣＲＣ部６３には、記録媒体のアドレス情報が格納される。ＥＣＣ部６４には、ＥＣＣ演算処理による誤り訂正に必要なコード（以下、ＥＣＣとする）が格納される。なお、この発明にかかる情報記憶装置の記録媒体に記憶するセクタの構成は、図１に示したデータセクタの構成に限るものではなく、たとえば、同期情報が格納されるＳＢ部６１を２つ備えてもよいが、ユーザデータ部６２およびＥＣＣ部６４は必須である。以降、ユーザデータ部６２に格納されるユーザデータ、およびＥＣＣ部６４に格納されるＥＣＣをＥＣＣ演算処理による誤り訂正の対象のデータとして説明する。
【００２６】
ここで、図２に示すように、図１に示したデータセクタのユーザデータおよびＥＣＣがｎ（７＜ｎ，ｎは自然数）シンボルで構成され、ＥＣＣが４シンボルであり、データがｎ−４シンボルであるとする。
【００２７】
オン・ザ・フライ・モードではＥＣＣのシンボル数の１／２のシンボル数の誤り訂正が可能であるので、ＥＣＣが４シンボルの場合には２シンボル以内のデータ誤り（データエラー）を訂正することができる。すなわち、図３に示すように、１２シンボルと１３シンボルとにエラーが発生した場合は誤り訂正が可能である。しかし、図４に示すように、１２〜１４シンボルの３箇所にエラーが発生した場合は誤り訂正を行なうことができない。
【００２８】
また、イレージャー・モードではエラーが発生した位置を予め指定する必要があるが、ＥＣＣのシンボル数と同じ数のシンボルの誤り訂正が可能である。記録媒体として磁気ディスクを用いる情報記憶装置（磁気ディスク装置）では、リード時の温度や圧力などの環境変化によって、磁気ディスクと磁気ヘッドとが接触すると、リード信号にサーマル・アスペリティ（ＴＡ：Thermal Asperity）と呼ばれるパルス上のノイズによりバーストエラーが発生することがある。この場合、図５に示すように、リード信号のレベルが予め定められたＴＡスライスレベル７０を越えたか否かによってサーマル・アスペリティを検出してＴＡ検出信号をアサート（この場合は、“Ｈ”）にする。ＴＡ検出信号がアサートになると、イレージャー・モード指定をオン（この場合は、“Ｈ”）にして、ＴＡ検出信号がアサートとなった位置（この場合は、１２シンボル目）から４シンボルをイレージャー訂正位置としてＥＣＣ演算処理による誤り訂正を行なうことで、サーマル・アスペリティによる３シンボル（１２〜１４シンボル目）のエラーを訂正することができる。
【００２９】
しかしながら、傷などによる媒体欠陥によって発生するエラーの場合、図６に示すように、リード信号のレベルはＴＡスライスレベル７０を超えないため、ＴＡ検出信号はアサートになることはない。したがって、ＴＡ検出信号を用いても媒体欠陥によって発生したエラーの位置を検出することはできない。すなわち、ＴＡスライスレベル７０を用いてエラーの位置を検出してイレージャー・モードを動作させる方法では、媒体欠陥によって発生するエラーを訂正することはできない。
【００３０】
１２〜１４シンボルの３箇所にエラーが発生しているため、上述したように、ＥＣＣが４シンボルの場合にはオン・ザ・フライ・モードでもエラーを訂正することはできない。しかし、３シンボルのエラーであるため、エラーの位置を特定することができれば、特定した位置をイレージャー訂正位置としてイレージャー・モードでエラーを訂正することはできる。すなわち、図７に示すように、イレージャー・モードで訂正可能なシンボル数（ここでは、４シンボル）のイレージャー訂正位置を、１〜４シンボル、２〜５シンボル、３〜６シンボル、・・・、というように１シンボルずつ順次ずらしていけば、イレージャー訂正位置が１１〜１４シンボルとなったときに、媒体欠陥によって発生した１２〜１４シンボルのエラーを訂正することができる。
【００３１】
しかしながら、図７に示すようにイレージャー訂正位置を順次指定する度（誤り訂正のリトライ毎）に記録媒体からデータを読み出すと、データを訂正することはできるが誤り訂正に多大な時間がかかってしまい現実的ではない。そこで、この発明にかかる情報記憶装置は、記録媒体から読み出したデータをデータ・バッファに格納しておき、リトライ時には、記録媒体からデータを読み出すのではなく、データ・バッファに格納されているデータを用いてイレージャー訂正位置を移動させながら、イレージャー・モードを動作させて、高速に誤り訂正を行なう。
【実施例１】
【００３２】
図８、図９、図１０−１、図１０−２を用いてこの発明の実施例１を説明する。図８は、この発明にかかる情報記憶装置である磁気ディスク装置１の構成を示すブロック図である。図８に示した磁気ディスク装置１は、磁気ディスク装置１を記憶装置として用いるパーソナルコンピュータやサーバなどの上位装置であるホスト５に制御される。
【００３３】
磁気ディスク装置１は、ホスト５からのユーザデータをデータセクタ単位で記録する磁気ディスク１１、磁気ディスク１１にデータセクタを記録するライト用ヘッド１２１と磁気ディスク１１に記録されているデータセクタを読み出すリード用ヘッド１２２を有する磁気ヘッド１２、ライト用ヘッド１２１に供給するライト電流を制御するとともに、リード用ヘッド１２２の磁化波形を増幅するヘッドアンプ（Head Amp）１３、磁気ヘッド１２の位置を制御するＶＣＭ（Voice Coil Motor）１４、および磁気ディスク１１を回転させるＤＣＭ（DC Motor）１５を有するディスク・エンクロジャ（ＤＥ：Disk Enclosure）１０と、磁気ディスク１１に記録するデータに予め定められたコーディング処理を施すとともに、磁気ディスク１１から読み出されたデータに予め定められたデコーディング処理を施すリードチャネル回路３１、データの誤り訂正に関する処理を行なうハードディスク・コントローラ３２、磁気ディスク１１に記録するデータおよび磁気ディスク１１から読み出されたデータを格納するデータ・バッファ３３、ＤＣＭ１５、ＶＣＭ１４、およびヘッドアンプ１３を制御する制御情報を生成するＭＣＵ（Micro Controller Unit）３４、およびＭＣＵ３４が生成した制御情報に基づいてＤＣＭ１５およびＶＣＭ１４を制御するサーボ・コントローラ（以下、ＳＶＣとする）３５を有するリード・ライト処理部３０とを備えている。なお、図８では、ライト用ヘッド１２１とリード用ヘッド１２２を備えているが、磁気ディスク１１にデータを記録し、記録したデータを磁気ディスク１１から読み出すことができれば１つのヘッドでもかまわない。
【００３４】
ディスク・エンクロジャ１０は、塵埃から磁気ディスク１１や磁気ヘッド１２を保護するためにフィルタによって外界とは遮断されている。また、リード・ライト処理部３０の構成部分はプリント版（ＰＣＢＡ）に実装されている。なお、ハードディスク・コントローラ３２やＭＣＵ３４、リードチャネル回路３１は１つのＬＳＩ（Large Scale Integration）で実現されていても、個別のＬＳＩで実現されていてもかまわない。
【００３５】
磁気ディスク装置１は、回転する磁気ディスク１１に磁気ヘッド１２を浮上させ、ライト時にはライト用ヘッド１２１によって磁気ディスク１１を磁化させ、リード時には磁気ディスク１１の磁化からリード用ヘッド１２２によって磁気信号を読み取って磁気ディスク１１に記録されているユーザデータを再生する。
【００３６】
磁気ディスク１１のトラックは、ライト用ヘッド１２１またはリード用ヘッド１２２の位置を示すサーボ情報と、ユーザデータが格納されるデータ部とに分類される。リード用ヘッド１２２によって読み出されたサーボ信号は、リードチャネル回路３１によって位置情報にデコードされ、ＭＣＵ３４が位置情報に基づいてライト用ヘッド１２１またはリード用ヘッド１２２をトラックに正確に位置付けられるようにＳＶＣ３５を介してＶＣＭ１４を制御する。
【００３７】
ホスト５からライト命令を受けると、ハードディスク・コントローラ３２は、ライト命令とともにホスト５から入力されるユーザデータをデータ・バッファ３３に格納する。ハードディスク・コントローラ３２は、ライト命令に含まれる論理アドレス（ＬＢＡ：Logical Block Address）から磁気ディスク１１の物理トラック位置を算出する。ハードディスク・コントローラ３２は、算出した物理トラック位置であるアドレス情報をＭＣＵ３４に出力する。
【００３８】
ＭＣＵ３４は、アドレス情報のトラック番号に応じた位置にヘッドを移動させるヘッド位置制御情報をＳＶＣ３５に出力する。ＳＶＣ３５は、ヘッド位置制御情報に基づいて、ＶＣＭ１４を制御する電流値を決定してＶＣＭ１４を移動させてライト用ヘッド１２１を磁気ディスク１１の所望のトラックに位置決めする。
【００３９】
一方、ハードディスク・コントローラ３２は、データ・バッファ３３に格納したユーザデータを読み出してＥＣＣを算出する。ハードディスク・コントローラ３２は、先の図１に示したデータセクタのユーザデータ部６２にユーザデータを設定し、ＣＲＣ部６３にアドレス情報を設定し、ＥＣＣ部６４に算出したＥＣＣを設定してリードチャネル回路３１に出力する。
【００４０】
リードチャネル回路３１は、先の図１に示したデータセクタのＰＬＬ部６０に位相同期、および出力一定化を行なうための情報を設定し、ＳＢ部６１に同期情報を設定する。リードチャネル回路３１は、データセクタに予め定められたコーディング処理を施して磁気ディスク１１に記録するライト信号を生成する。リードチャネル回路３１は、ライト信号をヘッドアンプ１３に出力する。
【００４１】
ヘッドアンプ１３は、ライト信号のビットに基づいてライト用ヘッド１２１に流すライト電流の方向を変化させて、磁気ディスク１１の磁化方向を異ならせてホスト５から入力されたユーザデータを磁気ディスク１１に記録する。
【００４２】
ホスト５からリード命令を受けると、ハードディスク・コントローラ３２は、リード命令に含まれる論理アドレスから磁気ディスク１１の物理トラック位置を算出する。ハードディスク・コントローラ３２は、算出した物理トラック位置であるアドレス情報をＭＣＵ３４に出力する。
【００４３】
ＭＣＵ３４は、アドレス情報のトラック番号に応じた位置にヘッドを移動させるヘッド位置制御情報をＳＶＣ３５に出力する。ＳＶＣ３５は、ヘッド位置制御情報に基づいて、ＶＣＭ１４を制御する電流値を決定してＶＣＭ１４を移動させてリード用ヘッド１２２を磁気ディスク１１の所望のトラックに位置決めする。
【００４４】
ヘッドアンプ１３は、リード用ヘッド１２２を介して磁気ディスク１１から読み出された磁化波形を増幅してリード信号を生成する。ヘッドアンプ１３は、リード信号をリードチャネル回路３１に出力する。
【００４５】
リードチャネル回路３１は、ＰＬＬ部６０に設定されている位相同期、およびＳＢ部６１に設定されている同期情報に基づいてユーザデータ部６２に設定されているユーザデータ、ＣＲＣ部６３に設定されているアドレス情報、およびＥＣＣ部６４に設定されているＥＣＣに対して予め定められたデコーディング処理を施してＮＲＺ(Non Return to Zero）データに変換する。リードチャネル回路３１は、ＮＲＺデータのうち、先の図１に示したユーザデータ部６２に格納されているユーザデータおよびＥＣＣ部６４に格納されているＥＣＣ（以下、ユーザデータとＥＣＣとをデータとする）をハードディスク・コントローラ３２に出力する。
【００４６】
ハードディスク・コントローラ３２は、データに対してＥＣＣ演算処理を行なって、データに誤りがあるか否かを判定して、データに誤りがある場合にはデータを訂正する。図９は、図８に示したハードディスク・コントローラ３２のデータの誤り訂正に関する構成を示すブロック図である。ハードディスク・コントローラ３２は、ＦＩＦＯ（First-IN First-Out）３３０、ＥＣＣ処理部３３１、ホストインタフェース部（以下、ホストＩ／Ｆ部とする）３３２、イレージャー制御部３３３、および制御部３３４を備えている。なお、ＦＩＦＯ３３０は、特許請求の範囲でいうところのバッファである。
【００４７】
制御部３３４は、ハードディスク・コントローラ３２の各構成要素を統括的に制御するとともに、オン・ザ・フライ・モードで動作するのか、ＴＡ検出信号によるイレージャー・モードで動作するのか、位置移動訂正によるイレージャー・モードで動作するのかを決定する。また、動作モードおよびＥＣＣ処理部３３１から通知される処理完了通知に基づいて、ＦＩＦＯ３３０に格納されているデータ（ユーザデータおよびＥＣＣ）をデータ・バッファ３３に転送させたり、データ・バッファ３３に格納されているデータ（ユーザデータおよびＥＣＣ）をＦＩＦＯ３３０とＥＣＣ処理部３３１とに転送させる制御を行なう。また、制御部３３４は、ホスト５からのリード命令に含まれる論理アドレスから磁気ディスク１１の物理トラック位置を算出し、算出した物理トラック位置であるアドレス情報をＭＣＵ３４に出力する。
【００４８】
ＦＩＦＯ３３０は、図１に示したデータセクタのユーザデータ部６２およびＥＣＣ部６４に格納されているｎシンボル分のユーザデータおよびＥＣＣを格納する先入れ先出し構成のレジスタで、制御部３３４によってリードチャネル回路３１から入力されるＮＲＺデータ、またはデータ・バッファ３３に格納されているデータを格納する。
【００４９】
イレージャー制御部３３３は、イレージャー・モードで動作する場合に、イレージャー訂正位置を決定し、決定したイレージャー訂正位置をＥＣＣ処理部３３１に指定する。イレージャー制御部３３３は、イレージャー位置移動制御部３３３２と、イレージャー位置指定部３３３１とを備えている。
【００５０】
イレージャー位置移動制御部３３３２は、位置移動訂正によるイレージャー・モードで動作する場合、イレージャー開始位置を所定のシンボル幅で移動させる。イレージャー位置指定部３３３１は、ＴＡ検出によるイレージャー・モードで動作する場合、リードチャネル回路３１から入力されるＴＡ検出信号に基づいてイレージャー訂正位置を選択し、選択したイレージャー訂正位置をＥＣＣ処理部３３１に出力する。
【００５１】
また、イレージャー位置指定部３３３１は、位置移動訂正によるイレージャー・モードで動作する場合、イレージャー位置移動制御部３３３２から入力されるイレージャー開始位置とイレージャー長とに基づいてイレージャー訂正位置を選択し、選択したイレージャー訂正値をＥＣＣ処理部３３１に出力する。
【００５２】
ＥＣＣ処理部３３１は、リードチャネル回路３１から入力されるデータ、またはデータ・バッファ３３から入力されるデータに対してＥＣＣ演算処理による誤り訂正を行なう。ＥＣＣ処理部３３１は、位置移動訂正によるイレージャー・モードの場合には、データ・バッファ３３から入力されるデータに対してＥＣＣ演算処理を行なって、イレージャー位置指定部３３３１から指定されたイレージャー訂正位置のデータに誤りがある場合にはデータを訂正し、訂正したデータに対応するＦＩＦＯ３３０のデータを訂正する。
【００５３】
ＥＣＣ処理部３３１は、ＴＡ検出によるイレージャー・モードの場合には、リードチャネル回路３１から入力されるデータに対してＥＣＣ演算処理を行なって、データに誤りがある場合には、誤り位置を特定してデータを訂正し、訂正したデータに対応するＦＩＦＯ３３０のデータを訂正する。
【００５４】
ＥＣＣ処理部３３１は、オン・ザ・フライ・モードの場合には、データ・バッファ３３から入力されるデータに対してＥＣＣ演算処理を行なって、データに誤りがある場合には、誤り位置を特定してデータを訂正し、訂正したデータに対応するＦＩＦＯ３３０のデータを訂正する。
【００５５】
ＥＣＣ処理部３３１は、データに誤りが無かった場合、またはデータを訂正することができた場合には、データが正常であることを含む処理完了通知を制御部３３４に通知し、データの誤りを訂正することができなかった場合にリードエラーであることを含む処理完了通知を制御部３３４に通知する。
【００５６】
ホストＩ／Ｆ部３３２は、制御部３３４からの指示によってデータ・バッファ３３に格納されているデータをホスト５に出力する。
【００５７】
つぎに、図１０−１および図１０−２のフローチャートを参照して、磁気ディスク装置１のリード時の動作を説明する。なお、制御部３３４には、リード命令による磁気ディスク１１のリード時にデータエラーが発生した際のリトライ最大回数、リトライ回数に対応付けたリトライ動作モード（たとえば、リード命令を受けてからリトライ回数「５」まではオン・ザ・フライ・モードで動作し、リトライ回数「６」〜「１０」まではＴＡ検出によるイレージャー・モードで動作し、リトライ回数「１１」でリード用ヘッド１２２の位置をずらすオフセットリードを行ない、リトライ回数「１５」で位置移動訂正によるイレージャー・モードで動作するなど）、位置移動訂正によるイレージャー・モード時のイレージャー開始位置を何シンボル移動させるかを示すイレージャー位置移動ステップ数、位置移動訂正によるイレージャー・モード時に誤り訂正対象とするシンボル数を示すイレージャー長などリード時に必要なパラメータが予め設定されているものとする。なお、これらのパラメータは磁気ディスク装置１の外部から設定するようにしてもよい。
【００５８】
ホスト５からリード命令を受けると、制御部３３４は、磁気ディスク１１に記録されているデータを読み出すリトライ回数をカウントするリトライカウンタを初期化（０）にする（図１０−１のステップＳ１００）。制御部３３４は、位置移動訂正によるイレージャー・モードを動作させるリトライ回数の値を位置移動訂正開始ステップとして指定する（図１０−１のステップＳ１０１）。制御部３３４は、リトライ回数に対応付けたリトライ動作モードに基づいて誤り訂正モードを選択し、選択した誤り訂正モードをＥＣＣ処理部３３１に設定する。リード命令を受けて最初に磁気ディスク１１からデータを読み出す場合には、オン・ザ・フライ・モードで動作させるのが一般的であるが、ＴＡ検出によるイレージャー・モードであってもかまわない。
【００５９】
制御部３３４は、リード命令に含まれる論理アドレスから磁気ディスク１１の物理トラック位置を算出し、算出した物理トラック位置であるアドレス情報をＭＣＵ３４に出力して、リード処理を実行させる（図１０−１のステップＳ１０２）。具体的には、ＭＣＵ３４は、ハードディスク・コントローラ３２の制御部３３４から入力されたアドレス情報のトラック番号に応じた位置にヘッドを移動させる位置制御情報をＳＶＣ３５に出力し、ＳＶＣ３５はヘッド位置制御情報に基づいてヘッド位置制御情報に基づいて、ＶＣＭ１４を制御する電流値を決定してＶＣＭ１４を移動させてリード用ヘッド１２２を磁気ディスク１１の所望のトラックに位置決めする。ヘッドアンプ１３は、リード用ヘッド１２２を介して磁気ディスク１１から読み出された磁化波形を増幅したリード信号をリードチャネル回路３１に出力し、リードチャネル回路３１はＰＬＬ部６０に設定されている位相同期、およびＳＢ部６１に設定されている同期情報に基づいてユーザデータ部６２に設定されているユーザデータ、ＣＲＣ部６３に設定されているアドレス情報、およびＥＣＣ部６４に設定されているＥＣＣに対して予め定められたデコーディング処理を施してＮＲＺデータに変換する。リードチャネル回路３１は、ＮＲＺデータに変換したデータ（ユーザデータおよびＥＣＣ）をＦＩＦＯ３３０およびＥＣＣ処理部３３１に出力する。また、リードチャネル回路３１は、リード信号のレベルがＴＡスライスレベル７０を越えた場合にはＴＡ検出信号をアサートにする。ＥＣＣ処理部３３１は、リードチャネル回路３１から入力されるデータに対してＥＣＣ演算処理による誤り訂正を行なって、データにエラーがある場合には指定された誤り訂正モード（オン・ザ・フライ・モードまたはＴＡ検出によるイレージャー・モード）でデータを訂正し、訂正したデータに対応するＦＩＦＯ３３０のデータを訂正する。リードチャネル回路３１からのＴＡ検出信号がアサートになると、イレージャー位置指定部３３３１は、ＴＡ検出信号がアサートとなったシンボル位置に基づいてイレージャー訂正位置を選択し、選択したイレージャー訂正位置をＥＣＣ処理部３３１に出力し、ＥＣＣ処理部３３１はイレージャー訂正位置に基づいてイレージャー・モードによる誤り訂正を行なう。データに誤りが無い場合、またはデータを訂正することができた場合、ＥＣＣ処理部３３１は、データが正常であることを含む処理完了通知を制御部３３４に通知する。データの誤りを訂正することができなかった場合、ＥＣＣ処理部３３１は、リードエラーであることを含む処理完了通知を制御部３３４に通知する。
【００６０】
制御部３３４は、処理完了通知に基づいてリードエラーであるか否かを判定する（図１０−１のステップＳ１０３）。リードエラーではない場合、制御部３３４は、ＦＩＦＯ３３０に格納されているデータをデータ・バッファ３３に格納させる。制御部３３４は、データ・バッファ３３に格納されたデータをホストＩ／Ｆ部３３２を介してホスト５に出力して処理を終了する（図１０−１のステップＳ１０４）。
【００６１】
リードエラーの場合、制御部３３４は、リトライカウンタをインクリメントする（図１０−１のステップＳ１０５）。制御部３３４は、予め定められたリトライ最大回数とリトライカウンタのリトライカウント値とを比較する（図１０−１のステップＳ１０６）。リトライカウント値がリトライ最大回数以上の場合、制御部３３４は、リードエラーであることをホスト５に通知して処理を終了する（図１０−１のステップＳ１０７）。
【００６２】
リトライカウント値がリトライ最大回数より小さい場合、制御部３３４は、位置移動訂正開始ステップであるか否かを判定する（図１０−１のステップＳ１０８）。位置移動訂正開始ステップでは無い場合（リトライカウント値が位置移動訂正開始ステップと異なる場合）、制御部３３４は、リトライ回数に対応付けたリトライ動作モードに基づいて誤り訂正モードを選択し、選択した誤り訂正モードをＥＣＣ処理部３３１に設定するとともに、オフセットリードなどのリトライモードを設定する（図１０−１のステップＳ１０９）。制御部３３４は、設定したリトライモードに基づいてリード処理を実行させて磁気ディスク１１から読み出したデータがリードエラーであるのを判定し、リードエラーでは無い場合にはデータをホスト５に出力し、リードエラーの場合にはリトライモードを設定してリトライする動作を、リトライカウンタのリトライカウント値が位置移動訂正開始ステップになるまで繰り返す（図１０−１のステップＳ１０２〜Ｓ１０９）。
【００６３】
位置移動訂正開始ステップになると（リトライカウント値と位置移動訂正開始ステップとが等しい場合）、制御部３３４は、ＦＩＦＯ３３０に格納されているデータをデータ・バッファ３３に格納させる（図１０−２のステップＳ１１０）。制御部３３４は、位置移動訂正によるイレージャー・モードで動作することを示す位置移動訂正開始指示をイレージャー位置指定部３３３１とイレージャー位置移動制御部３３３２とに出力する。この時、イレージャー位置指定部３３３１にはイレージャー長を、イレージャー位置移動制御部３３３２にはイレージャー長およびイレージャー位置移動ステップを通知する（図１０−２のステップＳ１１１）。位置移動訂正開始指示を受けると、イレージャー位置移動制御部３３３２は、イレージャー開始位置を初期化（１）する（図１０−２のステップＳ１１２）。
【００６４】
制御部３３４は、データ・バッファ３３、ＦＩＦＯ３３０およびＥＣＣ処理部３３１を制御して、データ・バッファ３３に格納されているデータをＦＩＦＯ３３０とＥＣＣ処理部３３１とに転送する（図１０−２のステップＳ１１３）。
【００６５】
イレージャー位置移動制御部３３３２は、イレージャー開始位置をイレージャー位置指定部３３３１に出力する。イレージャー位置指定部３３３１は、イレージャー開始位置とイレージャー長とに基づいてイレージャー訂正位置を選択してＥＣＣ処理部３３１に出力する（図１０−２のステップＳ１１４）。
【００６６】
ＥＣＣ処理部３３１は、データ・バッファ３３から転送されたデータに対してＥＣＣ演算処理による誤り訂正を行なう（図１０−２のステップＳ１１５）。具体的には、ＥＣＣ処理部３３１は、データ・バッファ３３から転送されたデータに対してＥＣＣ演算処理を行なって、イレージャー位置指定部３３３１から入力されたイレージャー訂正位置にデータ誤りがある場合にはデータを訂正し、訂正したデータに対応するＦＩＦＯ３３０のデータを訂正する。データに誤りが無い場合、またはデータを訂正することができた場合、ＥＣＣ処理部３３１は、データが正常であることを含む処理完了通知を制御部３３４に通知する。データの誤りを訂正することができなかった場合、ＥＣＣ処理部３３１は、訂正不可であることを含む処理完了通知を制御部３３４に通知する。
【００６７】
制御部３３４は、処理完了通知に基づいてデータを訂正することができたか否かを判定する（図１０−２のステップＳ１１６）。データを訂正することができた場合（処理完了通知がデータ正常であることを含む場合）、制御部３３４は、ＦＩＦＯ３３０に格納されているデータをデータ・バッファ３３に格納し、データ・バッファ３３に格納されているデータをホストＩ／Ｆ部３３２を介してホスト５に出力して処理を終了する（図１０−２のステップＳ１１７）。
【００６８】
データを訂正することができなかった場合（処理完了通知が訂正不可であることを含む場合）、制御部３３４は、位置移動訂正によるイレージャー・モードによる誤り訂正を継続することを通知する。
【００６９】
イレージャー位置移動制御部３３３２は、データ全てに対して位置移動訂正によるイレージャー・モードを実行したか否かを判定する（図１０−２のステップＳ１１８）。具体的には、イレージャー位置移動制御部３３３２は、データのシンボル数（データ長）からイレージャー長を減算した値を終了判定値とし、終了判定値と現在のイレージャー開始位置のシンボル値とを比較する。イレージャー位置移動制御部３３３２は、現在のイレージャー開始位置のシンボル値が終了判定値以下の場合には未処理のデータがあると判定し、現在のイレージャー開始位置のシンボル値が終了判定値を越えた場合にデータ全てに対して位置移動訂正によるイレージャー・モードを実行したと判定する。
【００７０】
未処理のデータがあると判定した場合、イレージャー位置移動制御部３３３２は、現在のイレージャー開始位置が示すシンボル値にイレージャー移動ステップを加算して、新たなイレージャー開始位置を算出する（図１０−２のステップＳ１１９）。イレージャー位置移動制御部３３３２は算出したイレージャー開始位置をイレージャー位置指定部３３３１に出力し、制御部３３４はＦＩＦＯ３３０に格納されているデータをデータ・バッファ３３に格納させ、イレージャー位置指定部３３３１はイレージャー開始位置とイレージャー長とに基づいてイレージャー訂正位置を選択し、ＥＣＣ処理部３３１はデータ・バッファ３３から転送されたデータに対してＥＣＣ演算処理による誤り訂正を行なう動作を、データが訂正できるか、データ全てに対して位置移動訂正によるイレージャー・モードを実行するまで繰り返す（図１０−２のステップＳ１１３〜Ｓ１１９）。
【００７１】
データ全てに対して位置移動訂正によるイレージャー・モードを実行してもデータの誤りが訂正できなかった場合、制御部３３４は、リトライ回数に対応付けたリトライ動作モードに基づいて誤り訂正モードを選択し、選択した誤り訂正モードをＥＣＣ処理部３３１に設定するとともに、オフセットリードなどのリトライモードを設定し、上述した動作（図１０−１のステップＳ１０２〜Ｓ１０９、図１０−２のステップＳ１１０〜Ｓ１１９）を、データを正しく読み出すことができるか、リトライ回数がリトライ最大回数になるまで繰り返す。これにより、制御部３３４は、最終的にデータを正しく読み出すことができた場合にはデータをホスト５に出力し、リトライ最大回数だけリトライを実行してもデータを正しく読み出すことができなかった場合には、リードエラーをホスト５に通知してリード命令による処理を終了する。
【００７２】
先の図７は、イレージャー長が「４」、イレージャー移動ステップが「１」の場合のイレージャー訂正位置が移動する様子を示している。位置移動訂正によるイレージャー・モードになると、イレージャー位置移動制御部３３３２は、１シンボル、２シンボル、３シンボル、・・・、１１シンボルというようにイレージャー開始位置を初期値からイレージャー移動ステップ刻みで更新し、イレージャー位置指定部３３３１は、１〜４シンボル、２〜５シンボル、３〜７シンボル、・・・、１１〜１４シンボルというようにイレージャー訂正位置を更新している。１２〜１４シンボルに媒体欠陥によるエラーが発生しているので、イレージャー訂正位置が１１〜１４シンボルとなった時にＥＣＣ処理部３３１による誤り訂正が可能となる。
【００７３】
このようにこの実施例１では、リトライ時に、制御部３３４は、ＦＩＦＯ３３０に格納されている磁気ディスク１１から読み出したデータをデータ・バッファ３３に転送する。イレージャー位置移動制御部３３３２が、予め定められた初期値から予め定められたイレージャー移動ステップ刻みでイレージャー開始位置を更新し、イレージャー位置指定部３３３１が、イレージャー開始位置と予め定められたイレージャー長とに基づいてイレージャー訂正位置を決定する。ＥＣＣ処理部３３１は、データ・バッファ３３に格納されているデータに対してイレージャー・モードでＥＣＣ演算処理による誤り訂正を行なう。これにより、データの誤り位置を特定することができない場合でも、リトライの度に磁気ディスク１１からデータをリードする必要が無くなり、データの誤り訂正に要する時間を短縮してイレージャー・モードによる誤り訂正を行なうことができる。
【００７４】
具体的には、ユーザデータとＥＣＣとがｎシンボルの場合にイレージャー訂正位置を１シンボルから順次１シンボル刻みで移動させた場合、従来技術では最大で「ｎ−イレージャー長＋１」回磁気ディスク１１からデータを読み出す必要があるが、この実施例１の磁気ディスク装置１では１回だけ磁気ディスク１１からデータを読み出せばよいので、磁気ディスク１１からデータを読み出す処理の時間だけデータの誤り訂正に要する時間を短縮することができる。
【実施例２】
【００７５】
図１１および図１２を用いてこの発明の実施例２を説明する。実施例１では、全てのＥＣＣを位置移動訂正によるイレージャー・モードに用いて、イレージャー指定位置をＥＣＣのシンボル数の範囲で指定して誤り訂正を行なうようにしている。しかしながら、データエラーは連続して発生するとは限らない。媒体欠陥によるエラーとは別にエラーがランダムに発生している場合、イレージャー指定位置をＥＣＣのシンボル数の範囲で指定する実施例１の磁気ディスク装置１では、誤り訂正可能なシンボル数以内のエラーであっても、全てのエラーがイレージャー指定位置の範囲に入らなければ、データの誤り訂正を行なうことができない。
【００７６】
このような問題を改善するために、実施例２の磁気ディスク装置１は、ＥＣＣを位置移動訂正によるイレージャー・モードと、オン・ザ・フライ・モードとに割当てて誤り訂正を行なうものである。
【００７７】
この発明にかかる実施例２の磁気ディスク装置１の構成は、図８に示した実施例１の磁気ディスク装置１と同じであるのでここではその説明を省略する。実施例１と実施例２との相違点は、ＥＣＣ処理部３３１が、位置移動訂正によるイレージャー・モードによる誤り訂正を行なう際に、ＥＣＣのシンボル数からイレージャー位置指定部３３３１から入力されるイレージャー訂正位置のシンボル数を減算した数のシンボル数でオン・ザ・フライ・モードによる誤り訂正を行なうことである。
【００７８】
図１１および図１２は、イレージャー長が「２」で、イレージャー移動ステップが「２」で、４シンボルあるＥＣＣのうち２シンボルを位置移動訂正によるイレージャー・モードに割当て、２シンボルをオン・ザ・フライ・モードに割当ている場合を示している。この場合、ＥＣＣ処理部３３１によって３シンボルの誤り訂正を行なうことができる。
【００７９】
まず、図１１を参照して、１２〜１４シンボルに連続して媒体欠陥によるエラーが発生している場合について説明する。位置移動訂正によるイレージャー・モードになると、イレージャー位置移動制御部３３３２は、１シンボル、３シンボル、５シンボル、・・・、１３シンボルというようにイレージャー開始位置を初期値からイレージャー移動ステップ刻み（この場合は、２シンボル刻み）で更新し、イレージャー位置指定部３３３１は、１，２シンボル、３，４シンボル、５，６シンボル、・・・、１３，１４シンボルというようにイレージャー訂正位置を更新している。
【００８０】
イレージャー訂正位置が１，２シンボル、３，４シンボル、５，６シンボル、７，８シンボル、９，１０シンボルの何れの場合も、エラーが発生しているシンボルがイレージャー訂正位置の範囲外であるので、１２シンボル目のデータをオン・ザ・フライ・モードの対象としても１３，１４シンボル目にエラーがあるのでＥＣＣ処理部３３１はデータを訂正することはできない。
【００８１】
イレージャー位置指定が１１，１２シンボルの場合、１３シンボルをオン・ザ・フライ・モードの対象としても１４シンボルにエラーがあるためＥＣＣ処理部３３１はデータを訂正することはできない。しかし、イレージャー位置指定が１３，１４シンボルになると、エラーが発生している１３，１４シンボルがイレージャー位置指定の範囲内となり、１２シンボル目をオン・ザ・フライ・モードの対象とすると、エラーが発生している１２〜１４シンボルが誤り訂正の対象となり、ＥＣＣ処理部３３１はデータを訂正することができる。
【００８２】
つぎに、図１２を参照して、媒体欠陥によるエラーとランダムにエラーとが発生している場合について説明する。図１２では、１３，１４シンボルに媒体欠陥によるエラーが発生し、１７シンボルにランダムエラーが発生している。イレージャー位置移動制御部３３３２は、１シンボル、３シンボル、５シンボル、・・・、１３シンボルというようにイレージャー開始位置を初期値からイレージャー移動ステップ刻み（この場合は、２シンボル刻み）で更新し、イレージャー位置指定部３３３１は、１，２シンボル、３，４シンボル、５，６シンボル、・・・、１３，１４シンボルというようにイレージャー訂正位置を更新している。
【００８３】
イレージャー訂正位置が１，２シンボル、３，４シンボル、５，６シンボル、７，８シンボル、９，１０シンボル、１１，１２シンボルの何れの場合、エラーが発生しているシンボルがイレージャー訂正位置の範囲外であるので、１３シンボルのデータをオン・ザ・フライ・モードの対象としても１４，１７シンボルにエラーがあるのでＥＣＣ処理部３３１はデータを訂正することはできない。
【００８４】
イレージャー位置指定が１３，１４シンボルの場合、エラーが発生している１３，１４シンボルがイレージャー位置指定の範囲内となり、１７シンボルをオン・ザ・フライ・モードの対象とすると、エラーが発生している１３，１４，１７シンボルが誤り訂正の対象となり、ＥＣＣ処理部３３１はデータを訂正することができる。
【００８５】
このようにこの実施例２では、ＥＣＣのシンボル数をオン・ザ・フライ・モードと位置移動訂正によるイレージャー・モードとに割当てて、オン・ザ・フライ・モードおよび位置移動訂正によるイレージャー・モードを用いてＥＣＣ演算処理による誤り訂正を行なうようにしているので、ＥＣＣを全て位置移動訂正によるイレージャー・モードを用いる場合と比較して誤り訂正能力は低下するが、イレージャー訂正位置の範囲外となる不連続のデータエラーが発生した場合でもデータを訂正することができ、効率よく誤り訂正を行なうことができる。
【００８６】
なお、この実施例２では、ＥＣＣが４シンボルであるので、オン・ザ・フライ・モードと位置移動訂正によるイレージャー・モードとにそれぞれＥＣＣを２シンボルずつ割当てるようにしたが、オン・ザ・フライ・モードおよび位置移動訂正によるイレージャー・モードに割当てるＥＣＣのシンボル数はこれに限るものではなく、どのように割当ててもかまわない。
【実施例３】
【００８７】
図１３を用いてこの発明の実施例３を説明する。実施例２では、ＥＣＣを位置移動訂正によるイレージャー・モードと、オン・ザ・フライ・モードとに割当てて誤り訂正を行なうことで、媒体欠陥によるエラーとは別にエラーがランダムに発生している場合でもデータを訂正できるようにした。しかしながら、オン・ザ・フライ・モードは、１シンボルに対して２シンボルのＥＣＣが必要であるため、ＥＣＣを全てイレージャー・モードで用いる場合と比較して訂正能力が低くなってしまう。
【００８８】
このような問題を改善するために、この実施例３の磁気ディスク装置１は、位置移動訂正によるイレージャー・モードのイレージャー位置指定を複数行って、ランダムに発生したエラーを訂正するものである。
【００８９】
この発明にかかる実施例３の磁気ディスク装置１の構成は、図８に示した実施例１の磁気ディスク装置１と同じであるのでここではその説明を省略する。実施例１と実施例３との相違点は、イレージャー位置移動制御部３３３２が複数のイレージャー開始位置をイレージャー位置指定部３３３１に出力し、イレージャー位置指定部３３３１が複数のイレージャー開始位置と、各イレージャー開始位置に対応するイレージャー長とに基づいて複数のイレージャー訂正位置を選択してＥＣＣ処理部３３１に出力し、ＥＣＣ処理部３３１が複数のイレージャー訂正位置によって誤り訂正を行なうことである。
【００９０】
図１３を参照して、イレージャー位置指定の数が「２」であり、第１のイレージャー位置指定のイレージャー移動ステップが「０」（イレージャー位置が固定）、第２のイレージャー位置指定のイレージャー移動ステップが「２」、第１および第２のイレージャー長が「２」の場合を例に挙げて、この発明にかかる実施例３のイレージャー位置指定について説明する。
【００９１】
図１３では、１，２、１３，１４シンボルに媒体欠陥によるエラーが発生している。イレージャー位置移動制御部３３３２は、第１のイレージャー開始位置を１シンボルに固定し、第２のイレージャー開始位置を３シンボル、５シンボル、７シンボル、・・・、１３シンボルというように更新し、イレージャー位置指定部３３３１は、第１のイレージャー訂正位置を１，２シンボルとし、第２のイレージャー訂正位置を３，４シンボル、５，６シンボル、７，８シンボル、・・・、１３，１４シンボルというように更新する。
【００９２】
第１のイレージャー訂正位置が１，２シンボルであって、かつ第２のイレージャー訂正位置が、３，４シンボル、５，６シンボル、７，８シンボル、９，１０シンボル、１１，１２シンボルの何れの場合も、エラーが発生している１，２シンボルは第１のイレージャー訂正位置の範囲内であるが、エラーが発生している１３，１４シンボルが第１および第２のイレージャー訂正位置の範囲外であるので、ＥＣＣ処理部３３１はデータを訂正することはできない。
【００９３】
第１のイレージャー訂正位置が１，２シンボルであって、かつ第２のイレージャー訂正位置が１３，１４シンボルの場合、エラーが発生している１，２，１３，１４シンボルがすべて第１および第２のイレージャー訂正位置の範囲内となり、ＥＣＣ処理部３３１はデータを訂正することができる。
【００９４】
このようにこの実施例３では、イレージャー訂正位置を複数設け、それぞれのイレージャー訂正位置を変化させるようにしているので、データ内に不連続に複数発生するデータ誤りに対してもイレージャー・モードで誤り訂正を行なうことができる。
【００９５】
なお、この実施例３では、第１のイレージャー訂正位置を固定し、第２のイレージャー訂正位置を移動させる場合について説明したが、これに限るものではなく、第１および第２のイレージャー訂正位置はどのように移動させてもかまわない。
【００９６】
また、この実施例３では、イレージャー訂正位置が２つの場合を例に挙げて説明したが、イレージャー訂正位置の数はこれに限るものではない。たとえば、ＥＣＣが４シンボルの場合、各イレージャー訂正位置のイレージャー長を１シンボルにすれば、最大４つのイレージャー訂正位置を設けることができる。すなわち、イレージャー訂正位置の分割数が多くなるほど、ランダムに発生するデータ誤りに対して有効となり、オン・ザ・フライ・モードでは１シンボルのデータ誤りを訂正するために２シンボルのＥＣＣが必要であるのに対して、最大４シンボルの誤り訂正が可能となり、データの信頼性を向上することができる。
【００９７】
また、この実施例３では、位置移動訂正によるイレージャー・モードのみで動作する場合について説明したが、この実施例３の位置移動訂正によるイレージャー・モードと、オン・ザ・フライ・モードとを組み合わせてＥＣＣ演算処理による誤り訂正を行なうようにしてもよい。
【００９８】
さらに、実施例１〜３では、ＥＣＣを４シンボルとして説明したが、ＥＣＣのシンボル数はこれに限るものではない。また、記録媒体として磁気ディスクを用いる磁気ディスク装置を例に挙げて説明したが、記録媒体に記憶される記録情報のデータに対してＥＣＣ演算処理によって誤り訂正を行なう装置であれば、記録媒体は磁気ディスクに限るものではない。
【図面の簡単な説明】
【００９９】
【図１】記録媒体に記録されるデータセクタの構成の一例を示す図である。
【図２】ＥＣＣ演算処理による誤り訂正の対象となるシンボルの一例を示す図である。
【図３】データに２シンボルのエラーが発生している場合の一例を示す図である。
【図４】データに３シンボルのエラーが発生している場合の一例を示す図である。
【図５】サーマル・アスペリティによって３シンボルのエラーが発生している場合の一例を示す図である。
【図６】媒体欠陥によって３シンボルのエラーが発生している場合の一例を示す図である。
【図７】イレージャー訂正位置を移動させる様子を示す図である。
【図８】磁気ディスク装置の構成を示すブロック図である。
【図９】ハードディスク・コントローラのデータの誤り訂正に関する構成を示すブロック図である。
【図１０−１】本実施例１にかかる磁気ディスク装置の動作を示すフローチャート（１）である。
【図１０−２】本実施例１にかかる磁気ディスク装置の動作を示すフローチャート（２）である。
【図１１】イレージャー訂正位置を移動させる様子を示す図である。
【図１２】イレージャー訂正位置を移動させる様子を示す図である。
【図１３】イレージャー訂正位置を移動させる様子を示す図である。
【符号の説明】
【０１００】
１    磁気ディスク装置
５    ホスト
１０    ディスク・エンクロジャ
１１    磁気ディスク
１２    磁気ヘッド
１３    ヘッドアンプ
１４    ＶＣＭ
１５    ＤＣＭ
３０    リード・ライト処理部
３１    リードチャネル回路
３２    ハードディスク・コントローラ
３３    データ・バッファ
３４    ＭＣＵ
３５    ＳＶＣ
１２１    ライト用ヘッド
１２２    リード用ヘッド
３３０    ＦＩＦＯ
３３１    ＥＣＣ処理部
３３２    ホストＩ／Ｆ部
３３３    イレージャー制御部
３３４    制御部
３３３１    イレージャー位置指定部
３３３２    イレージャー位置移動制御部
【図１】
2006127635.tif 000003
【図２】
2006127635.tif 000004
【図３】
2006127635.tif 000005
【図４】
2006127635.tif 000006
【図５】
2006127635.tif 000007
【図６】
2006127635.tif 000008
【図７】
2006127635.tif 000009
【図８】
2006127635.tif 000010
【図９】
2006127635.tif 000011
【図１０−１】
2006127635.tif 000012
【図１０−２】
2006127635.tif 000013
【図１１】
2006127635.tif 000014
【図１２】
2006127635.tif 000015
【図１３】
2006127635.tif 000016