JP3776884B2 - イレージャ訂正機能の検証に適した記録再生制御装置、同制御装置を備えた記録再生装置、及びイレージャ訂正機能を検証する方法 - Google Patents
イレージャ訂正機能の検証に適した記録再生制御装置、同制御装置を備えた記録再生装置、及びイレージャ訂正機能を検証する方法 Download PDFInfo
- Publication number
- JP3776884B2 JP3776884B2 JP2002382258A JP2002382258A JP3776884B2 JP 3776884 B2 JP3776884 B2 JP 3776884B2 JP 2002382258 A JP2002382258 A JP 2002382258A JP 2002382258 A JP2002382258 A JP 2002382258A JP 3776884 B2 JP3776884 B2 JP 3776884B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- read
- erasure
- recording medium
- error
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/10527—Audio or video recording; Data buffering arrangements
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/18—Error detection or correction; Testing, e.g. of drop-outs
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/10009—Improvement or modification of read or write signals
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/10527—Audio or video recording; Data buffering arrangements
- G11B2020/1062—Data buffering arrangements, e.g. recording or playback buffers
- G11B2020/10675—Data buffering arrangements, e.g. recording or playback buffers aspects of buffer control
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/18—Error detection or correction; Testing, e.g. of drop-outs
- G11B20/1816—Testing
- G11B2020/183—Testing wherein at least one additional attempt is made to read or write the data when a first attempt is unsuccessful
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/18—Error detection or correction; Testing, e.g. of drop-outs
- G11B20/1833—Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
- G11B2020/1836—Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information using a Reed Solomon [RS] code
Description
【発明の属する技術分野】
本発明は、記録媒体へのデータ記録時に当該データの誤り訂正符号を生成し、この記録媒体から再生されたデータの誤りを、その誤りの位置を示すポインタ情報と当該データに付されている誤り訂正符号とから訂正する記録再生装置に係り、特にイレージャ訂正機能の検証に適した記録再生制御装置、同制御装置を備えた記録再生装置、及びイレージャ訂正機能を検証する方法に関する。
【0002】
【従来の技術】
磁気ディスク装置は、記録媒体にディスクを用いたディスク記憶装置の代表として知られている。最近の磁気ディスク装置では、ディスクから読み出されて復号されたデータの誤りを、ランダム訂正とイレージャ訂正とを組み合わせて訂正することが多くなっている(例えば、特許文献1参照)。特許文献1には、データの誤り(エラー)の開始位置と終了位置を検出し、ランダム訂正ができなかった場合、このエラー位置を示す情報(つまりイレージャポインタと呼ばれるポインタ情報)を利用して、再度エラー訂正を行う方法が記載されている。
【0003】
磁気ディスク装置が有するランダム訂正の機能は、ロング(Long)コマンドを使用することで、当該ディスク装置にて検査可能である。ロングコマンドは、ディスクへのデータ書き込みを指示するライトロングコマンドと、ディスクからのデータ読み出しを指示するリードロングコマンドとに大別される。ライトロングコマンドは、ホストから指定されたデータ(1セクタタのデータ)をそのままディスクに書き込ませるためのコマンドである。ライトロングコマンドの実行では、エラー訂正符号(ECC)を生成するECC生成器の動作が抑止される。ECCは、データのエラーを検出して訂正するのに用いられる冗長データである。リードロングコマンドは、ディスクから読み出されたデータ(1セクタのデータ)をエラー訂正することなく、そのままリードデータバッファに格納させるためのコマンドである。
【0004】
さて、上記ランダム訂正機能の検査は、以下に述べるように、ECCを用いたランダム訂正回路が正しく動作しているかを検証することで実現可能である。まず、ホストから磁気ディスク装置に対してリードロングコマンドが発行される。すると、磁気ディスク装置では、ホストからのリードロングコマンドが実行される。これにより、ディスクからECCを含むデータが読み出される。ディスクから読み出されたデータは、リード/ライトチャネルで復号された後、エラー訂正回路によってエラー訂正されることなく、リードデータバッファに格納される。このリードデータバッファに格納されたデータの一部は意図的に壊される(書き換えられる)。この、一部が壊されたデータはライトデータバッファにコピーされた後、ディスクに書き込まれる。その後、ディスクに書き込まれた一部が壊されたデータを、通常のリードコマンドで当該ディスクから読み出す動作が行われる。もし、ランダム訂正回路が正しく動作しているならば、上記一部が壊されたデータは正しくエラー訂正されるはずである。そこで、一部が壊されたデータが正しくエラー訂正されたかを検査することで、ランダム訂正回路が正しく動作しているかを検証できる。
【0005】
【特許文献1】
米国特許第6,119,261号明細書
【0006】
【発明が解決しようとする課題】
上記したように従来技術において、ランダム訂正回路が正しく動作しているかの検証は、ロングコマンドを用いて実現可能である。これに対し、イレージャ訂正回路が正しく動作しているかは、ポインタ情報がないと検証できない。ところが従来の磁気ディスク装置では、ポインタ情報はリード/ライトチャネルに依存して出力される。このため、リード/ライトチャネルにおけるポインタ生成条件を満足するデータがディスクから読み出されない限り、イレージャ訂正回路の動作を検証できない。しかも、リード/ライトチャネルからポインタ情報が再現性よく出力されるには、ディスクから読み出されるデータに明らかなデータ欠陥が含まれている必要がある。むしろ、正しいポインタ位置を、繰り返しリード等で集計し推測する必要さえある場合もある。このように、ランダム訂正とイレージャ訂正とを組み合わせてエラー訂正を行う従来の磁気ディスク装置には、イレージャ訂正に関し、ロングコマンドを使用してランダム訂正機能を検証するのと同様の検証機能(イレージャ訂正検証機能)は存在しない。
【0007】
本発明は上記事情を考慮してなされたものでその目的は、イレージャ訂正に必要な、エラー位置を示すポインタ情報を、記録媒体から読み出されるデータに依存せずに任意に設定でき、もってイレージャ訂正機能を容易に検証できる、イレージャ訂正機能の検証に適した記録再生制御装置、同制御装置を備えた記録再生装置、及びイレージャ訂正機能を検証する方法を提供することにある。
【0008】
【課題を解決するための手段】
本発明の1つの観点によれば、ホストから送られたリード/ライトコマンドの指定に応じて、記録媒体からのデータの読み出しまたは上記記録媒体へのデータの書き込みを制御すると共に、上記ホストとの間の読み出しデータまたは書き込みデータの転送を制御する記録再生制御装置が提供される。この記録再生制御装置は、上記記録媒体に書き込むべきデータをもとに当該データに付加される誤り訂正符号を生成する誤り訂正符号生成器と、上記記録媒体から読み出されたデータの誤りのある位置を示すポインタ情報が格納されるイレージャポインタメモリと、上記記録媒体から読み出されたデータの誤りを、当該データに付加されている誤り訂正符号と上記イレージャポインタメモリに格納されているポインタ情報とを利用して、イレージャ訂正とランダム訂正とにより訂正するエラー訂正回路と、上記ホストからの特定ライトコマンドの実行時に、上記記録媒体に書き込むべきデータに上記誤り訂正符号生成器によって誤り訂正符号が付加されるのを抑止する回路と、上記ホストからのイレージャポインタ設定コマンドに応じ、当該設定コマンドで指定される位置を誤り位置として示し、且つ上記特定ライトコマンドの実行により上記記録媒体に書き込まれたデータを読み出す際に使用される特定ポインタ情報を、上記イレージャポインタメモリに設定するプログラマブルイレージャポインタ生成器とから構成される。
【0009】
このような構成の記録再生制御装置においては、ホストからのイレージャポインタ設定コマンドに応じ、当該設定コマンドで指定される位置を誤り位置として示す特定ポインタ情報がイレージャポインタメモリに設定される。つまり、本発明の1つの観点によれば、イレージャ訂正に用いられるポインタ情報をイレージャポインタ設定コマンドに応じてイレージャポインタメモリ内にプログラマブルに設定できる。したがって、このポインタ情報(特定ポインタ情報)の指定する位置に対応する部分が書き換えられた(破壊された)データ(第1のデータ)であって、書き換え前のデータ(第2のデータ)をもとに生成された誤り訂正符号が付加されたデータ(第1のデータ)を、そのまま上記記録媒体に書き込むことができるならば、後述するように、この記録媒体に書き込まれたデータを読み出して、上記特定ポインタ情報を利用したイレージャ訂正を含むエラー訂正が正しく行われたかを調べることにより、イレージャ訂正機能を検証できる。
【0010】
さて、上記構成の記録再生制御装置においては、ホストからの特定ライトコマンド(例えば、ライトロングコマンド)に従って記録媒体へのデータの書き込みが行われる場合、誤り訂正符号生成器によって当該データに新たに誤り訂正符号が付加されることが、抑止回路により抑止される。これにより、誤り訂正符号が付加されたデータの記録媒体への書き込みが上記特定ライトコマンドにより指定された場合、当該誤り訂正符号が付加されたデータを、そのまま記録媒体に書き込むことができる。したがって、イレージャ訂正機能の検証に用いられる第1のデータであって、第2のデータをもとに生成された誤り訂正符号が付加され、且つ当該第2のデータの一部が書き換えられた第1のデータの書き込みが、上記特定ライトコマンドにより指定されたならば、誤り訂正符号生成器によって当該第1のデータに新たに誤り訂正符号が付加されることが、抑止回路により抑止される。つまり、第2のデータの一部を破壊することにより生成された第1のデータが、当該第1のデータに、破壊前の第2のデータをもとに生成された誤り訂正符号が付された状態で、記録媒体に書き込まれる。この破壊された部分は、明らかなようにエラーとなる。したがって、上記第1のデータのうちの上記破壊された部分に対応する位置をエラー位置として示す特定ポインタ情報をイレージャポインタ設定コマンドに応じてイレージャポインタメモリに設定し、しかる後にリードコマンドを実行して当該第1のデータを記録媒体から読み出し、当該第1のデータが上記特定ポインタ情報と当該データに付加されている誤り訂正符号とをもとに訂正可能かを判定するだけで、イレージャ訂正機能が正しく働いているかを容易に検証することができる。その理由は、生成された特定ポインタ情報の示す位置と、破壊された位置とが対応していることから、イレージャ訂正機能が正しく働いているならば、破壊された部分が正しく訂正され、リードが正常完了することによる。
【0011】
ここで、上記記録媒体から読み出され、上記エラー訂正回路によって誤りが訂正されたデータをデータセクタ単位で格納するリードデータバッファと、上記記録媒体に書き込むべきデータをデータセクタ単位で格納するライトデータバッファとに加えて、上記ホストからの特定リードコマンド(例えば、リードロングコマンド)の実行時に、上記記録媒体から読み出されるデータを、当該データに誤り符号が付加された状態で、そのまま上記リードデータバッファに伝達する回路を備えるとよい。このようにすると、上記記録媒体からの上記第2のデータの読み出しを指定する特定リードコマンドを実行して、当該第2のデータを上記リードデータバッファに格納した後に、当該第2のデータが上記第1のデータに書き換えられた状態で、上記特定ライトコマンドを実行することにより、当該第1のデータを、当該第1のデータに誤り符号が付加されている状態で、そのまま記録媒体に書き込むことができる。つまり、第2のデータの一部を破壊することにより生成された、エラー部分を含む第1のデータを、当該第1のデータに、破壊前の第2のデータ(エラーのない第2のデータ)をもとに生成された誤り訂正符号が付された状態で、記録媒体に書き込むことができる。
【0012】
上記記録再生制御装置に係る本発明は、当該記録再生制御装置を備えた記録再生装置に係る発明としても、記録再生装置で実行されるイレージャ訂正機能を検証する方法に係る発明としても成立する。
【0013】
【発明の実施の形態】
以下、本発明を磁気ディスク装置に適用した実施の形態につき図面を参照して説明する。図1は本発明の一実施形態に係る磁気ディスク装置の構成を示すブロック図である。図1において、磁気ディスク装置(以下、HDDと称する)10は、大きく分けて、ディスクエンクロージャ(以下、DEと称する)11と、リード/ライトチャネル(以下、R/Wチャネルと称する)12と、ハードディスクコントローラ(以下、HDCと称する)13と、CPU14とから構成される。
【0014】
DE11は、R/Wチャネル12と接続され、記録信号の受信、再生信号の送信を行う。DE11は、データが磁気記録されるディスク111と、ヘッド(磁気ヘッド)112とを含む。ヘッド112は、ディスク111へのデータの書き込み(記録)及び当該ディスク111からのデータの読み出し(再生)に用いられる。ディスク111は、MR素子からなるリードヘッド(MRヘッド)と、誘導型の記録用薄膜素子からなるライトヘッド(インダクティブヘッド)とから構成される複合ヘッドである。DE11は更に、ディスク111を回転させるスピンドルモータ(以下、SPMと称する)113と、アクチュエータ114と、ヘッドIC(Integrated Circuit)115とを含む。アクチュエータ114は、ヘッド112を支持して当該ヘッド112をディスク111の半径方向に移動させる。アクチュエータ114は、当該アクチュエータ114の駆動源となるボイスコイルモータ(以下、VCMと称する)114aを含む。ヘッドIC115は、R/Wチャネル12から送られる記録信号を増幅するライトアンプ115aと、ヘッド112により読み出された再生信号を増幅するリードアンプ115bとを含む。
【0015】
図1では、説明を簡略化するために、ディスク111が1枚であり、且つヘッド112がディスク111の一方の面側にのみ配置されている場合を想定している。しかし、複数のディスク111が積層配置された構成であっても構わない。また、ヘッド112は、ディスク111の各記録面に対応してそれぞれ設けられるのが一般的である。
【0016】
R/Wチャネル12は、各種の信号処理を実行する。この信号処理は、リード信号に対するA/D(アナログ/ディジタル)変換処理、ライトデータの符号化処理及びリードデータの復号化処理を含む。
【0017】
HDC13は、R/Wチャネル12、CPU14、及びホスト(ホストシステム)20と接続されている。ホスト20は図1のHDDを利用するパーソナルコンピュータ等のデジタル機器である。HDC13は、ホストインタフェース制御機能と、ディスク制御機能と、ECC処理機能とを有する。HDC13はホストインタフェース制御機能により、ホスト20から転送されるコマンド(ライトコマンド、リードコマンド等)を受信すると共に、ホスト20とHDC13との間のデータ転送を制御する。HDC13はディスク制御機能により、R/Wチャネル12を介してディスク111と当該HDC13との間のデータ転送を制御する。HDC13はECC処理機能により、ディスク111に記録されるデータ(ライトデータ)に付加されるECCを生成すると共に、ディスク111から読み出されたデータに付されているECCを用いて当該データのエラーを訂正する。このエラー訂正は、ランダム訂正とイレージャ訂正とを組み合わせて行われる。
【0018】
CPU14は、HDD10の主コントローラである。CPU14は、図示せぬROMに格納されている制御プログラムに従って、DE11、R/Wチャネル12及びHDC13を制御する。CPU14は特に、ホスト20からの指示により、HDD10におけるイレージャ訂正機能を検証するための制御を行う。
【0019】
図2は、図1中のR/Wチャネル12のブロック構成を示す。R/Wチャネル12は、アナログフロントエンド121と、イコライザ(等化器)122と、ビタビデコーダ(ビタビ復号器)123と、タイミング回復回路124とを含む。アナログフロントエンド121は、VGA(可変利得増幅器)とアナログフィルタとA/Dコンバータ(いずれも図示せず)とを含む。A/Dコンバータのサンプリングクロック(再生クロック)は、ディスク111に書き込まれたデータのクロック(チャネルクロック)に、タイミング回復回路124によって同期化されている。
【0020】
R/Wチャネル12はまた、エンコーダ/デコーダ(以下、ENDECと称する)125と、ライトシンセサイザ126と、NRZクロック生成器127と、熱アスペリティ検出器(以下、TA検出器と称する)128と、コード違反検出器129とを含む。ENDEC125は、ビタビデコーダ123により復号されたデータをNRZ(Non-Return to Zero)データに変換する。この変換されたNRZデータはリードデータとしてHDC13に転送される。ENDEC125はまた、HDC13から転送されるライトデータ(NRZデータ)をコード変換すると共に、ディスク111への記録に適したNRZI(Non-Return to Zero Inverse)データに変換する。ここでのコード変換では、例えば32ビット(4バイト)単位に34ビットに変換される。ライトシンセサイザ126は、主として書き込みのためのクロック信号の生成に必要な基本クロック信号を生成する。ライトシンセサイザ126は、この基本クロック信号の周波数を可変することが可能である。NRZクロック生成器127は、ライトシンセサイザ126からの基本クロック信号とイコライザ122の出力とをもとにNRZデータに対応したNRZクロック信号を生成する。このNRZクロック信号はHDC13に転送される。TA検出器128は、アナログフロントエンド121の出力レベルを監視することで熱アスペリティ(以下、TAと称する)の発生を検出する。TA(Thermal Asperity)とは、ヘッド112がディスク111の表面と衝突することによって生じる熱エネルギによってMRヘッド(MR素子)の磁気抵抗が変化し、再生信号のDCレベルが大きく変化する現象をいう。そこでTA検出器128は、アナログフロントエンド121の出力レベルを予め設定された閾値と比較する。TA検出器128は、アナログフロントエンド121の出力レベルが閾値を超えている場合にTAが発生しているとして、その期間だけ例えば“1”となるフラグ(TAフラグ)F1を出力する。コード違反検出器129は、ビタビデコーダ123からENDEC125に入力されたデータ列の中から、予め定められたサイズ(ここでは、34ビット)のブロック単位に、コード違反のデータ列を検出する。コード違反のデータ列は、予め誤りであると定められている例えば値が全て“1”の特定パターンのデータ列である。コード違反検出器129は、検出されたコード違反データ列に対応する期間だけ“1”となるフラグ(コード違反フラグ)F2を出力する。
【0021】
R/Wチャネル12はまた、エラー位置検出器12Aと、イレージャポインタ生成器12Bとを含む。エラー位置検出器12Aは、TA検出器128からのTAフラグF1、コード違反検出器129からのコード違反フラグF2、及びHDC13からのイレージャポインタ選択信号EPSSに応じて、イレージャポインタの生成に必要なリードデータ中のエラー位置(エラーの開始位置及びエラーの終了位置)を検出する。イレージャポインタ選択信号EPSSは、エラー位置を、フラグF1のみ、フラグF2のみ、フラグF1及びF2の論理和、またはフラグF1及びF2の論理積のいずれをもとに検出するかを指定する。イレージャポインタ生成器12Bは、エラー位置検出器12Aによって検出されたエラー位置を示すイレージャポインタEP1を生成する。イレージャポインタEP1は、1セクタ分のデータのエラー位置を、例えばバイト単位に、一種のビットマップ形式で示すポインタ情報である。本実施形態では、イレージャポインタEP1を構成するビットのうち、エラー位置検出器12Aによって検出されたエラー位置(即ちエラーの開始位置及びエラーの終了位置で指定される範囲)のバイトに対応するビットだけ“1”となる。DE11は更に、書き込み補償回路12Cを含む。書き込み補償回路12Cは、ENDEC125から出力されるNRZIデータを対象に、記録波形のタイミングの補正を行う。このタイミング補正後のデータは、書き込みデータとして、ヘッドIC115内のライトアンプ115aに出力される。
【0022】
図3は、図1中のHDC13のブロック構成を示す。HDC13は、ホストインタフェース制御部131と、ディスクインタフェース制御部132と、CPUインタフェース133とを含む。ホストインタフェース制御部131は、上述のホストインタフェース制御機能を有する。ディスクインタフェース制御部132は、上述のディスク制御機能を有する。CPUインタフェース133は、CPU14とのインタフェースをなす。上記イレージャポインタ選択信号EPSSは、CPU14からCPUインタフェース133を介して図示せぬコントロールレジスタの所定のビットがセットされることにより、HDC13からR/Wチャネル12に供給される。
【0023】
HDC13はまた、ECCエラー訂正回路134を含む。ECCエラー訂正回路134は、R/Wチャネル12からディスクインタフェース制御部132を介して転送されたNRZデータ(リードデータ)のエラーを、当該データに付されているECCを使用して訂正する。ECCエラー訂正回路134は、ランダム訂正回路134aとイレージャ訂正回路134bとから構成される。ランダム訂正回路134aは、上記NRZデータのエラーを、当該データに付されているECCのみを使用して訂正する。イレージャ訂正回路134bは、上記NRZデータのエラーを、当該データに付されているECCとイレージャポインタとを使用して訂正する。このイレージャ訂正回路134bによるエラー訂正はイレージャ訂正と呼ばれる。
【0024】
ここで、ECCエラー訂正回路134における、イレージャポインタを用いたエラー訂正について述べる。ECCのエラー訂正能力は当該ECCのバイト数(シンボル数)と関係がある。一般に、ECCとしてリードソロモン(RS)符号を利用して誤り訂正を行う場合、1バイト(シンボル)のエラーを訂正するには、2バイト(シンボル)のECCが必要とされる。この2バイトのECCのうちの1バイトは、エラーの位置を特定するのに用いられ、残りの1バイトはエラーの訂正に用いられる。しかし、予め誤りの位置が分かっている場合、その位置をイレージャとして扱うことでECCのバイト数(冗長シンボル数)までのエラーを訂正できる。したがって、データのエラー位置を適切に検出し、そのエラー位置を示す位置情報(エラー位置情報)、即ちイレージャポインタを使用することにより、1バイトのECCで1バイトのエラー訂正(イレージャ訂正)が可能となる。このイレージャ訂正の効果の具体例を図4を参照して説明する。
【0025】
図4は、3インターリーブ(3i)*7バースト(7b)の例を示す。“3インターリーブ*7バースト”とは、データ(例えばバイト1〜512の512バイトから構成される1セクタのデータ)のインターリーブ数が3で、各インターリーブ当たり7バイトまでのランダムエラーの訂正(ランダム訂正)ができることをいう。つまり、“7バースト”は、インターリーブ毎の、ECCを用いたランダム訂正(ランダムECC訂正)可能な総バースト長(ランダム訂正バースト長)が7であることを示す。ここでは、各インターリーブ当たり、14バイトのECCが付加される。
【0026】
図4の例では、バイト5〜26の連続する22バイト(記号×が付されている部分)でエラーが発生したものとする。この場合、第2のインターリーブには8バイトエラーが発生することから、この部分のエラーは訂正できない。そこで、第2のインターリーブに“2イレージャ(2バイトのイレージャ訂正)+6バースト”を適用してECCエラー訂正回路134によるエラー訂正を行う。“2イレージャ”とは、2バイトのECCと2バイトのイレージャポインタとにより、2バイトエラーまで訂正できることをいう。つまり、“2イレージャ”は、イレージャ訂正可能なバースト長(イレージャ訂正バースト長)が2であることを示す。この第2のインターリーブへの“2イレージャ+6バースト”の適用により、連続する22バイトのエラーでも訂正できるようになる。
【0027】
再び図3を参照すると、HDC13は、リードデータバッファ135と、スイッチ136とを含む。リードデータバッファ135は、リードデータをデータセクタ単位で一時格納するのに用いられる。リードデータバッファ135には、R/Wチャネル12から転送されたエラー訂正前のNRZデータ、またはランダム訂正回路134aもしくはイレージャ訂正回路134bによりエラーが訂正されたNRZデータが格納される。スイッチ136は、R/Wチャネル12から転送されたNRZデータの出力先を切り替えるのに用いられる。スイッチ136は、通常状態では、上記NRZデータの出力先を、リードデータバッファ135に切り替える。またスイッチ136は、第1の特定状態では、上記NRZデータの出力先を、ECCエラー訂正回路134に切り替える。第1の特定状態は、ホスト20からリードロングコマンドが与えられた場合に、CPU14によってホストインタフェース制御部131を介して設定される。
【0028】
HDC13はまた、プログラマブルイレージャポインタ生成器137と、イレージャポインタメモリ138とを含む。プログラマブルイレージャポインタ生成器137は、ホスト20からの特定コマンドで指定されるイレージャポインタEP2を生成する。イレージャポインタメモリ138は、イレージャポインタEP1及びEP2のいずれか一方を格納するのに用いられる。このイレージャポインタメモリ138に格納されたイレージャポインタEP1またはEP2は、イレージャ訂正回路135によるイレージャ訂正に用いられる。
【0029】
HDC13は更に、ライトデータバッファ139と、ECC生成器13Aと、スイッチ13Bとを含む。ライトデータバッファ139は、上記リードデータバッファ135と共に、図示せぬRAM(Random Access Memory)の記憶領域内に確保される。ライトデータバッファ139は、ホスト20からホストインタフェース制御部131を介して転送されるライトデータをデータセクタ単位で一時格納するのに用いられる。ECC生成器13Aは、ライトデータバッファ139から読み出されるライトデータをもとに、データセクタ単位でECCを生成する。生成されたECCが付加されたライトデータはディスクインタフェース制御部132を介してR/Wチャネル12に転送される。スイッチ13Bは、ライトデータバッファ139から読み出されるライトデータの出力先を切り替えるのに用いられる。スイッチ13Bは、通常状態では、上記ライトデータの出力先を、ECC生成器13Aに切り替える。またスイッチ13Bは、第2の特定状態(第2の特定モード)では、上記ライトデータの出力先を、ディスクインタフェース制御部132に切り替える。第2の特定状態は、ホスト20からライトロングコマンドが与えられた場合に、ホストインタフェース制御部131により設定される。
【0030】
次に、本発明の一実施形態の動作について、ECCエラー訂正回路134のエラー訂正機能(特にECCエラー訂正回路134に含まれているイレージャ訂正回路134bのイレージャ訂正機能)を検証する場合を例に説明する。まず、エラー訂正機能の検証に用いるデータセクタを選択する処理について、図5のフローチャートを参照して説明する。
【0031】
まずCPU14は、ホスト20からHDD10に与えられるコマンドに従って、HDC13内のランダム訂正回路134aの訂正バースト長をA1に設定する(ステップ501)。次にCPU14は、ホスト20からのコマンドに従って1セクタ分のテストデータ(NRZデータ)を生成し、当該データをライトデータバッファ139に格納する(ステップ502)。次にCPU14は、ホスト20からのコマンド(シークコマンド)に従って、当該コマンドに含まれている論理ブロックアドレスLBA1により指定される、ディスク111上のトラック(第1のテストの対象となるトラック)T1にヘッド112を移動させる、シーク制御を実行する(ステップ503)。このときCPU14は、ロングコマンドの実行を想定して、アクセスすべきブロック(セクタ)数blkを1に設定する(ステップ504)。
【0032】
この状態で、CPU14は、ディスク111へのテストデータの書き込みと、ディスク111からのテストデータの読み出しとを制御する(ステップ504)。これにより以下に述べる、テストデータ書き込みとテストデータ読み出しとが実行される。
【0033】
まず、ライトデータバッファ139に格納されている1セクタ分のテストデータがスイッチ13Bを介してECC生成器13Aに転送される。ECC生成器13Aは、この1セクタ分のテストデータに基づき、インターリーブ毎にECCを生成する。生成されたインターリーブ毎のECCはテストデータに付加される。このECCが付加された1セクタ分のテストデータは、ディスクインタフェース制御部132を介してHDC13からR/Wチャネル12に転送される。R/Wチャネル12は、HDC13から転送されたテストデータ(NRZデータ)を、32ビット単位に34ビットのコードに変換する。R/Wチャネル12はまた、コード変換されたNRZデータをNRZIデータに変換する。このNRZIデータ(ECCが付されているテストデータ)は、ヘッドIC115を介してヘッド112に送られて、当該ヘッド112により、ディスク111に書き込まれる。ここでは、NRZIデータは、LBA1で指定される、トラックT1上のデータセクタS1に書き込まれる。
【0034】
次に、トラックT1上のデータセクタS1に書き込まれたデータが、ヘッド112により読み出される。読み出されたデータはヘッドIC115を介してR/Wチャネル12に転送される。R/Wチャネル12では、上記読み出されたデータがNRZデータに変換され、更に元のコードに変換される。また、上記読み出されたデータのエラー位置が、R/Wチャネル12内のエラー位置検出器12Aにより検出される。そして、この検出されたエラー位置を示すイレージャポインタEP1が、イレージャポインタ生成器12Bにより生成される。このイレージャポインタEP1は、上記コード変換後のデータ(NRZデータ)と共にHDC13に転送される。HDC13に転送されたイレージャポインタEP1はイレージャポインタメモリ138に格納される。また、HDC13に転送されたNRZデータ(リードデータ)は、ディスクインタフェース制御部132及びスイッチ136を介して、ECCエラー訂正回路134に入力される。ECCエラー訂正回路134内のイレージャ訂正回路134bは、ECCエラー訂正回路134に入力されたNRZデータに付されているECCと、イレージャポインタメモリ138に格納されているイレージャポインタとを用いて、当該データのエラーをイレージャ訂正により訂正する。一方、ランダム訂正回路134aは、イレージャポインタによりエラー位置として示されていない部分のエラーをランダム訂正により訂正する。このように、ECCエラー訂正回路134では、ランダム訂正とイレージャ訂正とを組み合わせて、リードデータのエラーが訂正される。このエラーが訂正されたデータはリードデータバッファ135に格納される。
【0035】
さて、ECCエラー訂正回路134によるエラー訂正に成功した場合(ステップ505)、CPU14は、データの書き込み及び読み出しに用いられたデータセクタはエラー訂正機能の検証に適していると判定する。この場合、ランダム訂正機能を検証するための処理(ランダム訂正機能テスト)が行われる。これに対し、ECCエラー訂正回路134によるエラー訂正に失敗した場合、つまりデータ読み出しに失敗した場合(ステップ505)、CPU14は、上述のデータ読み出し(ここではトラックT1上のデータセクタS1からのデータ読み出し)の再実行(即ちリードリトライ)を制御する(ステップ506)。このリトライ(ステップ506)は、データ読み出しに成功するまで(ステップ505)、所定のリトライ回数(例えば10回)を超えない範囲で繰り返される(ステップ507)。
【0036】
もし、所定の回数のリトライを実行しても、データ読み出しに成功しなかった場合(ステップ507)、CPU14は、データの書き込み及び読み出しに用いられたデータセクタはエラー訂正機能の検証に不適であると判定する。この場合、CPU14は、ヘッド112を、ディスク111上のトラックT1から別のトラック(第2のテストの対象となるトラック)T2に移動させるシーク制御を実行する(ステップ509)。このトラックT2は、第2のテストのためにホスト20から与えられるコマンド(シークコマンド)に含まれている論理ブロックアドレスLBA2により指定される。CPU14はステップ509を実行すると、上記ステップ504に戻る。ここでは、LBA2により指定される、トラックT2上のデータセクタS2へのテストデータの書き込みと、当該データセクタS2からのテストデータの読み出しとが行われる。もし、テストデータ読み出しに成功したならば(ステップ505)、ランダム訂正機能テストが行われる。また、所定の回数のリトライを実行しても、トラックT2上のデータセクタS2からのテストデータ読み出し(第2のテスト)に成功しなかったならば(ステップ508)、CPU14はリードエラーを示すエラーメッセージをホスト20に通知する(ステップ510)。
【0037】
次に、ランダム訂正機能テストについて、図6のフローチャートを参照して説明する。ホスト20は、トラックTk(kは1または2)上のデータセクタSkからのテストデータの読み出しに成功した場合、ランダム訂正機能テストを実行するために、HDD10に対してリードロングコマンドを発行する。このリードロングコマンドは、ECCエラー訂正回路134を動作させずに、トラックTk上のデータセクタSkからのデータ読み出しを指定する。HDD10内のCPU14は、ホスト20からリードロングコマンドを受け取ると、当該コマンドを実行する(ステップ601)。即ちCPU14は、リードロングコマンドにより指定されるトラックTk上のデータセクタSkからのデータ読み出しを制御する。このとき、HDD10はリードロングコマンドに応じて通常状態から第1の特定状態(第1の特定モード)に切り替えられる。これにより、当該HDC13内のスイッチ136は、R/Wチャネル12からディスクインタフェース制御部132を介して転送されるNRZデータ(リードデータ)の出力先を、ECCエラー訂正回路134からリードデータバッファ135に切り替える。この状態で、トラックTk上のデータセクタSkから読み出されたデータは、ヘッドIC115及びR/Wチャネル12を介してHDC13に転送される。このHDC13に転送されたデータ(リードデータ)は、ECCが付された状態で、ディスクインタフェース制御部132及びスイッチ136を介してリードデータバッファ135に格納される。
【0038】
次にホスト20は、HDD10に対してコピーコマンドを発行する。このコピーコマンドは、リードデータバッファ135からライトデータバッファ139へのデータコピーを指定する。HDD10内のCPU14は、ホスト20からコピーコマンドを受け取ると、リードデータバッファ135に格納されたリードデータを、ECCが付された状態で、ホストインタフェース制御部131を介してライトデータバッファ139にコピーする(ステップ602)。次にCPU14は、ライトデータバッファ139にコピーされたデータの一部を書き換える(破壊する)(ステップ603)。この書き換えが行われる箇所は、図9(a)に示すように、上記コピーされたデータ中の第n1バイト〜第(n1+m−1)バイトのmバイトである。この書き換えが行われる箇所はホスト20から指定される。ここで、mは、m≦(インターリーブ数i*訂正バースト長b)を満足する任意のバイト数を示す。“インターリーブ数i*訂正バースト長b”は、ECCエラー訂正回路134(ランダム訂正回路134a)でランダム訂正が可能な総バイト(シンボル)数を示す。例えば、インターリーブ数iが3で、訂正バースト長bが7バイトの場合、mはm≦3*7(=21バイト)を満足する整数である。ここでは、m=21であるものとする。なお、ステップ602及び603の順番は逆であっても構わない。即ち、リードデータバッファ135に格納されたリードデータ中の第n1バイト〜第(n1+m−1)バイトを書き換え、その書き換え後のデータを、ECCが付された状態で、ライトデータバッファ139にコピーしてもよい。
【0039】
ECCエラー訂正回路134のランダム訂正機能が正常であるか否かを検証するには、主として次の2つの処理を実行すればよい。第1は、上記mバイトが書き換えられた(破壊された)データをロングライトコマンドの実行によりディスク111に書き込む処理である。第2は、ディスク111に書き込まれた、上記mバイトが書き換えられたデータが正しく訂正可能かを判定するために、当該データを通常のリードコマンドの実行により読み出す処理である。
【0040】
そこでホスト20は、ライトデータバッファ139にコピーされたデータの一部(第n1バイト〜第(n1+m−1)バイトのmバイト)が書き換えられると、その書き換え後のデータをディスク111に書き込むためのライトロングコマンドをHDD10に発行する。このライトロングコマンドは、ECC生成器13Aを動作させずに、トラックTk上のデータセクタSkへのデータ書き込みを指定する。HDD10内のCPU14は、ホスト20からライトロングコマンドを受け取ると、当該コマンドを実行する(ステップ604)。即ちCPU14は、ライトデータバッファ139にコピーされている、上記書き換え後のデータを、ライトロングコマンドにより指定されるトラックTk上のデータセクタSkに書き込むための制御を実行する。このとき、HDD10はライトロングコマンドに応じて第2の特定状態(第2の特定モード)に切り替えられる。すると、当該HDC13内のスイッチ139は、ライトデータバッファ139に格納されているデータ(ライトデータ)の出力先を、ディスクインタフェース制御部132に切り替える。これにより、ライトデータバッファ139に格納されている、一部(第n1バイト〜第(n1+m−1)バイト)が書き換えられたデータ(ライトデータ)が、そのまま(即ち、ECCが付されている状態で)、スイッチ13Bを介してディスクインタフェース制御部132に転送される。このディスクインタフェース制御部132に転送されたデータは、ディスクインタフェース制御部132からR/Wチャネル12及びヘッドIC115を介してヘッド112に送られて、当該ヘッド112により、ディスク111に書き込まれる。ここでは、データ(つまり第n1バイト〜第(n1+m−1)バイト)が書き換えられたデータ)は、トラックTk上のデータセクタSkに書き込まれる。
【0041】
すると、ホスト20からHDD10に対し、トラックTk上のデータセクタSkからデータを読み出すための、通常のリードコマンドが発行される。このコマンドでは、“3i(3インターリーブ)*7b(7バースト)”によるランダム訂正が指定される。HDD10内のCPU14は、ホスト20から通常のリードコマンドを受け取ると、当該コマンドを実行する(ステップ605)。即ちCPU14は、通常のリードコマンドにより指定されるトラックTk上のデータセクタSkからのデータ読み出しを制御する。このとき、HDD10は通常のリードコマンドに応じて通常状態に切り替えられる。すると、HDC13内のスイッチ136は、R/Wチャネル12からディスクインタフェース制御部132を介して転送されるNRZデータ(リードデータ)の出力先を、ECCエラー訂正回路134に切り替える。この状態で、トラックTk上のデータセクタSkから読み出されたデータ(リードデータ)は、ヘッドIC115及びR/Wチャネル12を介してHDC13に転送される。このHDC13に転送されたデータ(リードデータ)は、ECCが付された状態で、ディスクインタフェース制御部132及びスイッチ136を介して、ECCエラー訂正回路134に入力される。ここでは、上記通常のリードコマンドにより、“3i(3インターリーブ)*7b(7バースト)”によるランダム訂正が指定されている。この場合、ECCエラー訂正回路134内のランダム訂正回路134aは、リードデータに付されているECC(3*7バイトのECC)を用いて、当該データのエラーをランダム訂正により訂正する。このエラーが訂正されたデータはリードデータバッファ135に格納される。
【0042】
さて、リードデータのエラー訂正に成功してリードが正常に完了した場合(ステップ606)、CPU14は、ECCエラー訂正回路134(ランダム訂正回路134a)のランダム訂正機能は正常であると判定する。この場合、イレージャ訂正機能を検証するための処理(イレージャ訂正機能テスト)が行われる。これに対し、リードデータのエラー訂正に失敗した場合、つまりデータ読み出しに失敗した場合(ステップ606)、CPU14は、上述のデータ読み出しの再実行(即ちリードリトライ)を制御する(ステップ607)。このリトライ(ステップ607)は、データ読み出しに成功するまで(ステップ606)、所定のリトライ回数(例えば10回)を超えない範囲で繰り返される(ステップ608)。
【0043】
もし、所定の回数のリトライを実行しても、データ読み出しに成功しなかった場合(ステップ608)、CPU14は、ECCエラー訂正回路134のランダム訂正機能が正常に働いていないと判断する。この場合、CPU14は、ランダム訂正エラーを示すエラーメッセージをホスト20に通知する(ステップ609)。
【0044】
次に、イレージャ訂正機能テストについて、図7及び図8のフローチャートを参照して説明する。ホスト20は、ランダム訂正機能テストでランダム訂正機能が正常に働いていると判定できた場合、イレージャ訂正機能テストを実行するために、まずHDD10に対してコピーコマンドを発行する。このコピーコマンドは、リードデータバッファ135からライトデータバッファ139へのデータコピーを指定する。HDD10内のCPU14は、ホスト20からコピーコマンドを受け取ると、当該コマンドに従って、リードデータバッファ135からライトデータバッファ139へのデータコピーを実行する(ステップ701)。ここでは、先のランダム訂正機能テストでリードデータバッファ135に格納された、エラー訂正後のリードデータが、ライトデータバッファ139にライトデータとしてコピーされる。
【0045】
次にホスト20は、ライトデータバッファ139にコピーされたデータ(1セクタ分のデータ)をディスク111に書き込むための通常のライトコマンドをHDD10に発行する。HDD10内のCPU14は、ホスト20から通常のライトコマンドを受け取ると、当該コマンドを実行する(ステップ702)。即ちCPU14は、ライトデータバッファ139にコピーされている1セクタ分のデータを、通常のライトコマンドにより指定されるトラックTk上のデータセクタSkに書き込むための制御を実行する。これにより、ライトデータバッファ139にコピーされた1セクタ分のデータがスイッチ13Bを介してECC生成器13Aに転送される。ECC生成器13Aは、このデータに基づき、インターリーブ毎にECCを生成する。生成されたインターリーブ毎のECCは上記1セクタ分のデータに付加される。このECCが付加された1セクタ分のデータは、ディスクインタフェース制御部132からR/Wチャネル12及びヘッドIC115を介してヘッド112に送られて、当該ヘッド112により、ディスク111に書き込まれる。ここでは、上記1セクタ分のデータは、トラックTk上のデータセクタSkに書き込まれる。つまり、先のランダム訂正機能テストでトラックTk上のデータセクタSkに書き込まれた、一部が破壊されたデータが、元の正しいデータに書き換えられる。
【0046】
次に、ホスト20は、トラックTk上のデータセクタSkに書き込まれたデータを、ECCエラー訂正回路134を動作させずに読み出すために、HDD10に対してリードロングコマンドを発行する。HDD10内のCPU14は、ホスト20からリードロングコマンドを受け取ると、当該コマンドを実行する(ステップ703)。即ちCPU14は、リードロングコマンドにより指定されるトラックTk上のデータセクタSkからのデータ読み出しを制御する。これにより、トラックTk上のデータセクタSkから読み出されたデータは、ヘッドIC115及びR/Wチャネル12を介してHDC13に転送される。このHDC13に転送されたデータ(リードデータ)は、ECCが付された状態で、ディスクインタフェース制御部132及びスイッチ136を介してリードデータバッファ135に格納される。
【0047】
次にCPU14は、前記ステップ602と同様に、リードデータバッファ135に格納されたリードデータを、ECCが付された状態で、ホストインタフェース制御部131を介してリードデータバッファ135にコピーする(ステップ704)。このコピー動作は、ホスト20から発行されるコピーコマンドにより指定される。次にCPU14は、前記ステップ603と同様に、ライトデータバッファ139にコピーされたデータの一部を書き換える(破壊する)(ステップ704)。但し、この書き換えが行われる箇所は、図9(b)に示すように、上記コピーされたデータ中の第n2バイト〜第(n2+h−1)バイトのhバイトである。この書き換えが行われる箇所はホスト20から指定される。ここで、hは、h≦(ランダム訂正バースト長+イレージャ訂正バースト長)を満足する任意のバイト数を示す。ここでは、ランダム訂正バースト長はランダム訂正回路134aでランダム訂正が可能な総バイト(シンボル)数を示す。本実施形態では、ランダム訂正バースト長は、3*2=6(インターリーブ数i=3、インタリーブ毎の訂正バースト長b=2)であるものとする。一方、イレージャ訂正バースト長はイレージャ訂正回路134bでイレージャ訂正が可能な最長の連続するバイト(シンボル)数を示す。本実施形態では、イレージャ訂正バースト長は、3*8=24(インターリーブ数i=3、インタリーブ毎の訂正バースト長b=8)である。この場合、“ランダム訂正バースト長+イレージャ訂正バースト長”は6+24=30(バイト)であり、hはh≦30(バイト)を満足する整数である。ここでは、h=28であるものとする。インタリーブ毎のECCが14バイトの本実施形態では、ランダム訂正のみでエラーを訂正する場合、図4に示したように、連続する22バイトのエラーは訂正できない。そこで、hに下限を設定し、hを22バイト以上、“ランダム訂正バースト長+イレージャ訂正バースト長”以下とするとよい。このようにすると、イレージャ訂正機能の検証がより有効に行える。なお、、ステップ704及び705の順番は逆であっても構わない。即ち、リードデータバッファ135に格納されたリードデータ中の第n2バイト〜第(n2+h−1)バイトを書き換え、その書き換え後のデータを、ECCが付された状態で、ライトデータバッファ139にコピーしてもよい。
【0048】
さて、ECCエラー訂正回路134のイレージャ訂正機能が正常であるか否かを検証するには、主として次の3つの処理を実行すればよい。第1は、上記hバイトが書き換えられた(破壊された)データをロングライトコマンドの実行によりディスク111に書き込む処理である。第2は、上記書き換えられた位置に対応するエラー位置を指定するイレージャポインタEP2を外部からのコマンドに応じてイレージャポインタメモリ138に設定する処理である。第3は、ディスク111に書き込まれた、上記hバイトが書き換えられたデータが正しく訂正可能かを判定するために、当該データを通常のリードコマンドの実行により読み出す処理である。
【0049】
そこでホスト20は、ライトデータバッファ139にコピーされたデータの一部(第n2バイト〜第(n2+h−1)バイトのhバイト)が書き換えられると、その書き換え後のデータをディスク111に書き込むためのライトロングコマンドをHDD10に発行する。HDD10内のCPU14は、このライトロングコマンドを実行する(ステップ706)。このライトロングコマンドの実行により、ライトデータバッファ139に格納されている、一部(第n2バイト〜第(n2+h−1)バイト)が書き換えられたデータ(ライトデータ)が、そのまま(即ち、ECCが付されている状態で)、スイッチ13Bを介してディスクインタフェース制御部132に転送される。このディスクインタフェース制御部132に転送されたデータは、R/Wチャネル12及びヘッドIC115を介してヘッド112に送られて、当該ヘッド112により、ディスク111に書き込まれる。ここでは、データ(つまり第n2バイト〜第(n2+h−1)バイトが書き換えられたデータ)は、トラックTk上のデータセクタSkに書き込まれる。
【0050】
すると、ホスト20からHDD10に対し、当該HDD10内のイレージャポインタメモリ138にイレージャポインタEP2を設定するためのイレージャポインタ設定コマンドが発行される。HDD10内のCPU14は、ホスト20からイレージャポインタ設定コマンドを受け取ると、当該コマンドを実行する(ステップ707)。即ちCPU14は、ホストインタフェース制御部131を介してプログラマブルイレージャポインタ生成器137を制御することにより、イレージャポインタ設定コマンドで指定されたイレージャポインタEP2を生成させる(ステップ707a)。プログラマブルイレージャポインタ生成器137は、生成されたイレージャポインタEP2をイレージャポインタメモリ138に格納する。ここでは、上記書き換えられた第n2バイト〜第(n2+h−1)バイトに対応する箇所をエラー位置として指定するイレージャポインタEP2が生成される。例えば、図9(c)に示すように、1セクタ分のデータ中の第(n2+ランダム訂正バースト長)バイト〜第(n2+h−1)バイト(h=28)をエラー位置として指定するイレージャポインタEP2が生成される。このイレージャポインタEP2は、上記書き換えられた第n2バイト〜第(n2+h−1)バイトのうち、ランダム訂正バースト長に相当する第n2バイト〜第(n2+ランダム訂正バースト長−1)バイトを除いた部分をエラー位置として指定する。プログラマブルイレージャポインタ生成器137は、イレージャポインタEP2をイレージャポインタメモリ138に格納すると、当該メモリ138の内容がR/Wチャネル12からのイレージャポインタEP1によって書き換えられるのを禁止する(ステップ707b)。この禁止状態は、イレージャ訂正機能テストの終了時に解除される。
【0051】
次に、ホスト20からHDD10に対し、トラックTk上のデータセクタSkからデータを読み出すための、通常のリードコマンドが発行される。このコマンドでは、“3i(3インターリーブ)*2b(2バースト)”によるランダム訂正と、“3i(3インターリーブ)*8b(8バースト)”によるイレージャ訂正とが指定される。HDD10内のCPU14は、ホスト20から通常のリードコマンドを受け取ると、当該コマンドを実行する(ステップ708)。即ちCPU14は、通常のリードコマンドにより指定されるトラックTk上のデータセクタSkからのデータ読み出しを制御する。これにより、トラックTk上のデータセクタSkからデータが読み出され、当該データはヘッドIC115及びR/Wチャネル12を介してHDC13に転送される。このHDC13に転送されたデータ(リードデータ)は、ECCが付された状態で、ディスクインタフェース制御部132及びスイッチ136を介して、ECCエラー訂正回路134に入力される。ここでは、上記通常のリードコマンドにより、“3i*2b”によるランダム訂正と、“3i*8b”によるイレージャ訂正とが指定されている。ECCエラー訂正回路134内のイレージャ訂正回路134bは、ECCエラー訂正回路134に入力されたデータに付されているECCと、イレージャポインタメモリ138に格納されているイレージャポインタEP2とを用いて、当該データのエラーをイレージャ訂正により訂正する。イレージャポインタEP2は、上記したように1セクタ分のデータ中の第(n2+ランダム訂正バースト長)バイト〜第(n2+h−1)バイトをエラー位置として指定している。これにより、イレージャ訂正回路134bは、この位置のエラーをイレージャ訂正により訂正する。一方、ランダム訂正回路134aは、イレージャポインタEP2によって示されていないエラー部分、例えば上記書き換えられた第n2バイト〜第(n2+h−1)バイトのうちのランダム訂正バースト長に等しい先頭のデータ部分(即ち第n2バイト〜第(n2+ランダム訂正バースト長−1)バイト)をランダム訂正により訂正する。このように、ECCエラー訂正回路134では、ランダム訂正とイレージャ訂正とを組み合わせて、リードデータのエラーが訂正される。このエラーが訂正されたデータはリードデータバッファ135に格納される。
【0052】
さて、リードデータ(即ち、第n2バイト〜第(n2+h−1)バイトが意図的に書き換えられたデータ)のエラー訂正に成功してリードが正常に完了した場合(ステップ709)、CPU14は、ECCエラー訂正回路134内のランダム訂正回路134aのランダム訂正機能だけでなく、ECCエラー訂正回路134内のイレージャ訂正回路134bのイレージャ訂正機能も正常であると判定する。この場合、CPU14は、HDD10がランダム訂正機能及びイレージャ訂正機能の両機能のテストに合格したことを示すメッセージをホスト20に通知する(ステップ710)。これに対し、リードデータのエラー訂正に失敗した場合、つまりデータ読み出しに失敗した場合(ステップ709)、CPU14は、上述のデータ読み出しの再実行(即ちリードリトライ)を制御する(ステップ711)。このリトライ(ステップ711)は、データ読み出しに成功するまで(ステップ709)、所定のリトライ回数(例えば10回)を超えない範囲で繰り返される(ステップ712)。
【0053】
もし、所定の回数のリトライを実行しても、データ読み出しに成功しなかった場合(ステップ712)、CPU14は、ECCエラー訂正回路134のイレージャ訂正機能が正常に働いていないと判断する。この場合、CPU14は、イレージャ訂正エラーを示すエラーメッセージをホスト20に通知する(ステップ713)。
【0054】
上記実施形態においては、本発明を磁気ディスク装置(HDD)に適用した場合について説明した。しかし本発明は、光ディスク装置、光磁気ディスク装置、磁気テープ装置など、記録媒体を対象とするデータの記録再生が可能な記録再生装置全般に適用することができる。
【0055】
なお、本発明は、上記実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。更に、上記実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件から幾つかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
【0056】
【発明の効果】
以上詳述したように本発明によれば、イレージャ訂正に必要な、エラー位置を示すポインタ情報を、記録媒体から読み出されるデータに依存せずに任意に設定できるため、イレージャ訂正機能を容易に検証できる。
【図面の簡単な説明】
【図1】 本発明の一実施形態に係る磁気ディスク装置の構成を示すブロック図。
【図2】 図1中のR/Wチャネル12の構成を示すブロック図。
【図3】 図1中のHDC13の構成を示すブロック図。
【図4】 イレージャ訂正の効果の具体例を説明するための図。
【図5】 エラー訂正機能の検証に用いるデータセクタを選択する処理を説明するためのフローチャート。
【図6】 ランダム訂正機能テストを説明するためのフローチャート。
【図7】 イレージャ訂正機能テストを説明するためのフローチャートの一部を示す図。
【図8】 イレージャ訂正機能テストを説明するためのフローチャートの残りを示す図。
【図9】 ランダム訂正機能テスト用のデータを生成するために書き換えられる箇所、イレージャ訂正機能テスト用のデータを生成するために書き換えられる箇所、及びイレージャ訂正機能テストのために生成されるイレージャポインタEP2の示すエラー位置を説明するための図。
【符号の説明】
10…HDD(磁気ディスク装置、記録再生装置)、12…R/Wチャネル、12A…エラー位置検出器、12B…イレージャポインタ生成器、13…HDC(ディスクコントローラ、記録再生制御装置)、14…CPU、20…ホスト、111…ディスク(記録媒体)、131…ホストインタフェース制御部、132…ディスクインタフェース制御部、134…ECCエラー訂正回路、134a…ランダム訂正回路、134b…イレージャ訂正回路、135…リードデータバッファ、136,13B…スイッチ、137…プログラマブルイレージャポインタ生成器、138…イレージャポインタメモリ、139…ライトデータバッファ、13A…ECC生成器(誤り訂正符号生成器)。
Claims (14)
- ホストから送られたリード/ライトコマンドの指定に応じて、記録媒体からのデータの読み出しまたは前記記録媒体へのデータの書き込みを制御すると共に、前記ホストとの間の読み出しデータまたは書き込みデータの転送を制御する記録再生制御装置において、
前記記録媒体に書き込むべきデータをもとに当該データに付加される誤り訂正符号を生成する誤り訂正符号生成器と、
前記記録媒体から読み出されたデータの誤りのある位置を示すポインタ情報が格納されるイレージャポインタメモリと、
前記記録媒体から読み出されたデータの誤りを、当該データに付加されている誤り訂正符号と前記イレージャポインタメモリに格納されているポインタ情報とを利用して、イレージャ訂正とランダム訂正とにより訂正するエラー訂正回路と、
前記ホストからの特定ライトコマンドの実行時に、前記記録媒体に書き込むべきデータに前記誤り訂正符号生成器によって誤り訂正符号が付加されるのを抑止する回路と、
前記ホストからのイレージャポインタ設定コマンドに応じ、当該設定コマンドで指定される位置を誤り位置として示し、且つ前記特定ライトコマンドの実行により前記記録媒体に書き込まれたデータを読み出す際に使用される特定ポインタ情報を、前記イレージャポインタメモリに設定するプログラマブルイレージャポインタ生成器と
を具備することを特徴とする記録再生制御装置。 - 前記イレージャポインタ設定コマンドに応じて前記イレージャポインタメモリに設定された前記特定ポインタ情報が後続のリードコマンドの実行時に書き換えられるのを禁止する手段を更に具備することを特徴とする請求項1記載の記録再生制御装置。
- 前記抑止回路は、前記記録媒体に書き込むべきデータを前記誤り訂正符号生成器に入力させるか、或いは当該誤り訂正符号生成器を迂回させるかを切り替えるスイッチであり、前記特定ライトコマンドの実行時、前記記録媒体に書き込むべきデータが前記誤り訂正符号生成器を迂回させられることを特徴とする請求項1記載の記録再生制御装置。
- 前記記録媒体から読み出され、前記エラー訂正回路によって誤りが訂正されたデータをデータセクタ単位で格納するリードデータバッファと、
前記記録媒体に書き込むべきデータをデータセクタ単位で格納するライトデータバッファと、
前記ホストからの特定リードコマンドの実行時に、前記記録媒体から読み出されるデータを、当該データに誤り符号が付加された状態で、そのまま前記リードデータバッファに伝達する回路と
を更に具備することを特徴とする請求項1記載の記録再生制御装置。 - 前記伝達回路が、前記記録媒体から読み出されたデータを、前記エラー訂正回路に入力させるか、或いは当該エラー訂正回路を迂回させてそのまま前記リードデータバッファに伝達するかを切り替えるスイッチであり、前記特定リードコマンドの実行時、前記記録媒体から読み出されたデータが前記エラー訂正回路を迂回させられることを特徴とする請求項4記載の記録再生制御装置。
- イレージャ訂正機能の検証に用いられる第1のデータであって、第2のデータをもとに生成された誤り訂正符号が付加され、且つ当該第2のデータの一部が書き換えられた第1のデータの前記記録媒体への書き込みが、前記ホストからの前記特定ライトコマンドにより指定され、且つ前記第1のデータのうちの前記書き換えられた部分に対応する位置を誤り位置として示す特定ポインタ情報の設定が、前記ホストからの前記イレージャポインタ設定コマンドにより指定され、しかる後に前記ホストから前記第1のデータを前記記録媒体から読み出すことが指定された場合、前記記録媒体から読み出される前記第1のデータのイレージャ訂正が、当該第1のデータに付加されている誤り訂正符号と前記イレージャポインタ設定コマンドに応じて前記イレージャポインタメモリに設定されている前記特定ポインタ情報とを利用して実行されることを特徴とする請求項1記載の記録再生制御装置。
- 前記記録媒体から読み出され、前記エラー訂正回路によって誤りが訂正されたデータをデータセクタ単位で格納するリードデータバッファと、
前記記録媒体に書き込むべきデータをデータセクタ単位で格納するライトデータバッファと、
前記ホストからの特定リードコマンドの実行時に、前記記録媒体から読み出されるデータを、当該データに誤り符号が付加された状態で、そのまま前記リードデータバッファに伝達する回路を更に具備し、
前記第1のデータは、前記第2のデータを前記記録媒体から読み出すことが前記ホストからの前記特定リードコマンドにより指定された結果、前記記録媒体から前記第2のデータが読み出されて、当該第2のデータに誤り符号が付加された状態で前記リードデータバッファに格納された後に、当該第2のデータをもとに生成されることを特徴とする請求項6記載の記録再生制御装置。 - 請求項1記載の記録再生制御装置を備えた記録再生装置。
- 記録媒体からのデータの読み出し時には、読み出されたデータのうち誤りのある位置を検出し、その誤りの位置を示すポインタ情報を生成してイレージャポインタメモリに格納し、前記読み出されたデータの誤りを、当該データに付加されている誤り訂正符号と前記イレージャポインタメモリに格納されているポインタ情報とを利用したイレージャ訂正及び当該データに付加されている誤り訂正符号を利用したランダム訂正とにより訂正する記録再生装置におけるイレージャ訂正機能を検証する方法であって、
前記記録媒体に書き込むべき第1のデータであって、第2のデータをもとに生成された誤り訂正符号が付加され、且つ当該第2のデータの一部が書き換えられた第1のデータをライトデータバッファに用意するステップと、
前記ライトバッファに用意された、前記誤り訂正符号が付加されている前記第1のデータを、当該第1のデータに基づく誤り訂正符号の生成を伴わずに前記記録媒体に書き込むための特定ライトコマンドを実行するステップと、
前記一部が書き換えられた前記第1のデータのうちの当該一部に対応する位置を誤り位置として示す特定ポインタ情報を、前記記録媒体からのデータ読み出しとは無関係に前記イレージャポインタメモリに設定するステップと、
前記特定ライトコマンドの実行により前記記録媒体に書き込まれた前記第1のデータを読み出すステップと、
前記記録媒体から読み出された前記第1のデータの誤りが正常に訂正されたかにより、イレージャ訂正機能が正常に働いているかを判定するステップと
を具備することを特徴とするイレージャ訂正機能を検証する方法。 - 前記イレージャポインタメモリに設定された特定ポインタ情報が書き換えられるのを禁止するステップを更に具備し、
前記読み出すステップが前記禁止ステップの後に実行されることを特徴とすることを特徴とする請求項9記載のイレージャ訂正機能を検証する方法。 - 前記第1のデータを用意するステップは、
前記第2のデータを、当該第2のデータをもとに生成された誤り訂正符号が当該第2のデータに付加された状態で、前記ライトデータバッファに用意するステップと、
前記ライトデータバッファに用意された前記第2のデータの一部を書き換えることにより前記第1のデータを生成するステップと
を含むことを特徴とする請求項9記載のイレージャ訂正機能を検証する方法。 - 前記第2のデータを用意するステップは、
前記第2のデータを、誤り訂正符号が付加されていない状態で、前記ライトデータバッファに用意するステップと、
前記ライトバッファに用意された、誤り訂正符号が付加されていない前記第2のデータを前記記録媒体に書き込むための通常のライトコマンドを実行するステップと、
前記通常のライトコマンドの実行により前記記憶媒体に書き込まれた前記第2のデータであって、当該第2のデータをもとに生成された誤り訂正符号が付加された前記第2のデータを、当該第2のデータに誤り訂正符号が付加されている状態でリードデータバッファに格納するための特定のリードコマンドを実行するステップと、
前記リードデータバッファに格納された前記第2のデータを当該第2のデータに誤り訂正符号が付加されている状態で前記ライトデータバッファにコピーするステップと
を含むことを特徴とする請求項11記載のイレージャ訂正機能を検証する方法。 - 前記一部の長さが、イレージャ訂正可能な長さとランダム訂正可能な長さとの和を超えないことを特徴とする請求項9記載のイレージャ訂正機能を検証する方法。
- 前記特定ポインタ情報は、前記一部のうち、ランダム訂正で訂正可能なバースト長を除く連続する範囲を、誤り位置として示すことを特徴とする請求項13記載のイレージャ訂正機能を検証する方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002382258A JP3776884B2 (ja) | 2002-12-27 | 2002-12-27 | イレージャ訂正機能の検証に適した記録再生制御装置、同制御装置を備えた記録再生装置、及びイレージャ訂正機能を検証する方法 |
SG200307411A SG105596A1 (en) | 2002-12-27 | 2003-12-11 | Apparatus and method for verifying erasure correction function |
US10/743,551 US7171607B2 (en) | 2002-12-27 | 2003-12-23 | Apparatus and method for verifying erasure correction function |
CNB2003101243318A CN1314046C (zh) | 2002-12-27 | 2003-12-26 | 存储控制器、存储设备和检验擦除校正功能的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002382258A JP3776884B2 (ja) | 2002-12-27 | 2002-12-27 | イレージャ訂正機能の検証に適した記録再生制御装置、同制御装置を備えた記録再生装置、及びイレージャ訂正機能を検証する方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004213765A JP2004213765A (ja) | 2004-07-29 |
JP3776884B2 true JP3776884B2 (ja) | 2006-05-17 |
Family
ID=32817875
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002382258A Expired - Fee Related JP3776884B2 (ja) | 2002-12-27 | 2002-12-27 | イレージャ訂正機能の検証に適した記録再生制御装置、同制御装置を備えた記録再生装置、及びイレージャ訂正機能を検証する方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US7171607B2 (ja) |
JP (1) | JP3776884B2 (ja) |
CN (1) | CN1314046C (ja) |
SG (1) | SG105596A1 (ja) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3708064B2 (ja) * | 2002-05-31 | 2005-10-19 | 株式会社東芝 | ディスク記憶装置、ディスクコントローラ及び同装置に適用するエラー訂正方法 |
JP2006127635A (ja) * | 2004-10-28 | 2006-05-18 | Fujitsu Ltd | 情報記憶装置 |
US20080005749A1 (en) * | 2006-06-01 | 2008-01-03 | Broadcom Corporation, A California Corporation | Hard disk controller having multiple, distributed processors |
US7844878B2 (en) | 2006-08-09 | 2010-11-30 | Microsoft Corporation | Dynamic electronic correction code feedback to extend memory device lifetime |
US8144413B2 (en) | 2007-04-30 | 2012-03-27 | Broadcom Corporation | Reduced instruction set computer (RISC) processor based disk manager architecture for hard disk drive (HDD) controllers |
US8832495B2 (en) | 2007-05-11 | 2014-09-09 | Kip Cr P1 Lp | Method and system for non-intrusive monitoring of library components |
US8650241B2 (en) | 2008-02-01 | 2014-02-11 | Kip Cr P1 Lp | System and method for identifying failing drives or media in media library |
US9015005B1 (en) | 2008-02-04 | 2015-04-21 | Kip Cr P1 Lp | Determining, displaying, and using tape drive session information |
US7974215B1 (en) * | 2008-02-04 | 2011-07-05 | Crossroads Systems, Inc. | System and method of network diagnosis |
US8645328B2 (en) * | 2008-02-04 | 2014-02-04 | Kip Cr P1 Lp | System and method for archive verification |
JP2010073259A (ja) * | 2008-09-18 | 2010-04-02 | Nec Electronics Corp | アドレス取得回路及びアドレス取得方法 |
KR20100120991A (ko) * | 2009-05-07 | 2010-11-17 | 삼성전자주식회사 | 이레이저 조작을 수행하는 메모리 시스템 및 그것의 읽기 방법 |
US9866633B1 (en) | 2009-09-25 | 2018-01-09 | Kip Cr P1 Lp | System and method for eliminating performance impact of information collection from media drives |
US8843787B1 (en) | 2009-12-16 | 2014-09-23 | Kip Cr P1 Lp | System and method for archive verification according to policies |
US8589726B2 (en) * | 2011-09-01 | 2013-11-19 | Infinidat Ltd. | System and method for uncovering data errors |
US9378083B2 (en) | 2013-12-04 | 2016-06-28 | Seagate Technology Llc | Adaptive read error recovery for memory devices |
US9397703B2 (en) * | 2013-12-04 | 2016-07-19 | Seagate Technology Llc | Adaptive read error recovery for memory devices |
US11740973B2 (en) * | 2020-11-23 | 2023-08-29 | Cadence Design Systems, Inc. | Instruction error handling |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5701314A (en) | 1995-12-21 | 1997-12-23 | Cirrus Logic, Inc. | On-the-fly error correction using thermal asperity erasure pointers from a sampled amplitude read channel in a magnetic disk drive |
US5732093A (en) * | 1996-02-08 | 1998-03-24 | United Microelectronics Corporation | Error correction method and apparatus on optical disc system |
KR100195015B1 (ko) * | 1996-06-21 | 1999-06-15 | 윤종용 | 메모리 제어장치 및 방법 |
US5925144A (en) * | 1997-03-13 | 1999-07-20 | Western Digital Corporation | Error correction code circuit that performs built-in self test |
US6073209A (en) * | 1997-03-31 | 2000-06-06 | Ark Research Corporation | Data storage controller providing multiple hosts with access to multiple storage subsystems |
US6119261A (en) * | 1998-03-17 | 2000-09-12 | Quantum Corporation | Method for recovering data from disk with a dynamic erasure offset ECC data recovery protocol |
JP3190901B2 (ja) * | 1998-12-24 | 2001-07-23 | 茨城日本電気株式会社 | 磁気テープ装置および磁気テープ装置の書き込みリトライ制御方法 |
JP3450756B2 (ja) * | 1999-09-08 | 2003-09-29 | 松下電器産業株式会社 | 誤り訂正方法および誤り訂正装置 |
US7055082B2 (en) * | 2002-10-29 | 2006-05-30 | Victor Company Of Japan, Ltd. | Information recording and reproducing apparatus |
-
2002
- 2002-12-27 JP JP2002382258A patent/JP3776884B2/ja not_active Expired - Fee Related
-
2003
- 2003-12-11 SG SG200307411A patent/SG105596A1/en unknown
- 2003-12-23 US US10/743,551 patent/US7171607B2/en not_active Expired - Fee Related
- 2003-12-26 CN CNB2003101243318A patent/CN1314046C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US20040168102A1 (en) | 2004-08-26 |
SG105596A1 (en) | 2004-08-27 |
CN1519846A (zh) | 2004-08-11 |
JP2004213765A (ja) | 2004-07-29 |
CN1314046C (zh) | 2007-05-02 |
US7171607B2 (en) | 2007-01-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3776884B2 (ja) | イレージャ訂正機能の検証に適した記録再生制御装置、同制御装置を備えた記録再生装置、及びイレージャ訂正機能を検証する方法 | |
JP3663377B2 (ja) | データ記憶装置、読み出しデータの処理装置および読み出しデータの処理方法 | |
US6892249B1 (en) | Dependently adjusting at least three operating levels of a disk drive by dependently adjusting a plurality of disk drive parameters | |
EP0926671B1 (en) | Magnetic disk device and error correction therefor | |
US7423828B2 (en) | Off-track write error recovery | |
KR100872011B1 (ko) | 기록 매체, 및 기록 및 재생 장치 | |
US7322003B2 (en) | Information storage device | |
JPH04219677A (ja) | 磁気ディスク記憶装置からのデータの回復方法 | |
US5701304A (en) | Method for correcting unrecoverable sectors using track level redundancy in a disc drive storage system | |
US7206990B2 (en) | Data sector error handling mechanism | |
JP3865723B2 (ja) | ハードディスクドライブにデータを記録する方法及びその制御装置 | |
JP2009289310A (ja) | エラー訂正方法及びエラー訂正回路、並びに磁気ディスク装置 | |
US7941729B2 (en) | Data storage device and error processing method in its read processing | |
US6266202B1 (en) | Closed loop write verification in a disc drive | |
JP2006269027A (ja) | データ記憶装置 | |
JP2006079810A (ja) | 読取られたデータ内のエラーを補正するための方法及び装置 | |
US11366602B2 (en) | Data storage device with burn-after-read mode | |
US20070101189A1 (en) | Storage apparatus, and control method and program | |
JP2008299978A (ja) | ディスク・ドライブ装置及びディスクからのデータ再生方法 | |
JPH0620403A (ja) | 磁気ディスク装置 | |
JP2007293988A (ja) | 磁気ディスク装置 | |
JP3264528B2 (ja) | ライトプロテクトされた情報記録媒体の情報交替処理方法 | |
JP2003346433A (ja) | イレージャーポインターの機能を検証する方法及びそのための記録再生装置 | |
JP2002298512A (ja) | ディスクアクセス制御装置及び方法 | |
JPH05274815A (ja) | 光ディスク装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20051124 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20051129 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060127 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060221 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060223 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100303 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |