(57)【要約】【課題】  ディスクから読取られたデータに含まれるエラーを補正することを目的とする。【解決手段】  データが、回転ディスク上でトラック内のセクタから読取られ、バッファメモリ内に一時的に記憶される。セクタを解放する前に、各セクタはエラーチェックされ、エラーありの場合、選択されたエラー補正機構を用いて補正エンジンでエラー補正が試みられる。その補正機構を用いてエラーが補正されない場合、不良セクタは、補正エンジンがアイドル状態となるまでバッファメモリ内に保持される。補正エンジンは、良好セクタが読取られてホストアクセスのため直ちに解放されたとき、アイドル状態となる。このアイドル時間に、別の補正機構を用いてエラー補正を試みる。このアイドル時間にエラーが補正された場合、セクタを再度読取る必要はない。【選択図】      図３
2006079810.tif 000002
【特許請求の範囲】
【請求項１】
ホストによるアクセスのため記憶媒体から読取られたデータ内のエラーを補正するための方法において、少なくとも１つのトラック上に記憶される該データが複数のセクタを有しており、
前記記憶媒体から選択されたセクタを読取る段階と、
バッファメモリ内にその選択されたセクタを記憶する段階と、
各セクタをエラーに関してチェックし、ホストアクセスのためにエラーのないセクタを解放する段階と、
エラーが検出された場合には、エラー補正エンジン内の選択された補正機構を用いてエラー補正を試みる段階と、
エラーが識別された場合、前記バッファメモリ内のデータを補正し、ホストアクセスのために該セクタを解放する段階と
不良セクタ内のエラーが識別されない場合、前記バッファメモリ内に不良セクタを保持し、前記エラー補正エンジンがアイドル状態であるときに、異なる別の選択された補正機構を用いてエラー補正を試みる段階と、
を含んでなる方法。
【請求項２】
シンドロームを生成することにより、エラーに関してセクタをチェックする請求項１に記載の方法。
【請求項３】
シンドローム生成の結果が、固定番号であり、第１の固定番号はエラーなしを表わし、その他の固定番号はエラーが検出されたことを表わす請求項２に記載の方法。
【請求項４】
シンドローム生成の結果は、エラーを補正するために使用される請求項２に記載の方法。
【請求項５】
記憶媒体に情報を記録し、ホストによるアクセスのために該記憶媒体から情報を再生するための装置において、該記憶媒体は、複数のセクタを有する少なくとも１つのトラック上に記憶された情報を格納する装置において、
前記記憶媒体上に情報を記録するための手段と、
前記記憶媒体から情報を読取るための手段と、
選択されたセクタから読取られた情報を一時的に記憶するバッファメモリと、
各セクタをエラーに関して逐次チェックし、ホストアクセスのためにエラーのないセクタを解放するエラー補正ユニットと、
を含んでなり、
エラーが検出された場合、前記エラー補正ユニットはエラー補正エンジン内の選択された補正機構を用いて補正を試み、
エラーが補正された場合、前記エラー補正エンジンは前記メモリバッファ内のデータを補正し、ホストアクセスのためにセクタを解放し、
不良セクタ内のエラーが補正されない場合、前記補正エンジンは、前記バッファメモリ内に該不良セクタを保持し、該エラー補正エンジンがアイドル状態であるとき、異なる別の選択された補正機構を用いてエラー補正を試みる装置。
【請求項６】
前記エラー補正ユニットは、さらにシンドローム発生器を含み、
該シンドローム発生器は、各セクタをエラーに関して逐次チェックしてシンドローム結果を生成し、
該エラー補正エンジンは、エラーを識別および補正するために該シンドロームを使用する請求項５に記載の装置。
【請求項７】
前記シンドローム発生器は、選択されたセクタ内にエラーが検出されない場合に第１の固定値を生成し、エラーが検出された場合に第２の固定値を生成する請求項６に記載の装置。
【請求項８】
前記装置はディスクドライブである請求項５に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディスクドライブといった記憶デバイスから読取られたデータ内のエラーを補正するための方法および装置、そしてより特定的には、エラー補正のために必要とされる時間を短縮するためにエラー補正エンジン内のアイドル時間を利用するエラー補正方法および装置に関する。
【背景技術】
【０００２】
従来のディスクドライブにおいては、データは、ヘッドスライダ上に搭載された書込みヘッドおよび読取りヘッドにより回転磁気媒体（ディスク）に書込まれ、そこから読取られる。ディスクドライブは、パーソナルコンピュータといったホストからの指令に応答してデータを書込みおよび読取る。
【０００３】
ディスクドライブ内では、データは、同心トラック上でトラック内に画定されたセクタ内にて、ディスクに書込まれる。ディスクドライブが、そのホストからのデータに対する要求を受信したとき、該ディスクドライブは、読取りヘッドを要求されたデータを有する第１のトラックまで移動させ、ディスクから該当するセクタを読取り、要求されたデータの全てが検索されるまでその工程を反復する。
【０００４】
データが読取られると、この読取られたデータは、エラーの有無がチェックされる一方でディスクドライブ内の内部メモリの中に一時的に記憶される。エラーがない場合、データはホストによるアクセスのために解放される。しかし、セクタ内でエラーが検出された場合には、エラー補正エンジンが１またはそれ以上のアルゴリズムを用いて、エラーを補正するよう試みる。不良セクタ内のエラーが補正されない場合、データは典型的にはディスクから再度読取られ、このためには不良セクタ全体にわたってディスクのさらなる回転が必要とされる。このことは効率が悪く、エラーを補正しホストアクセスのためにデータを解放するのに要する時間を増大させる。従って、かかるデータエラーを補正するための、さらに効率が良く、かつエラー補正工程の間にディスクからデータを再度読取る必要性を低減または排除する方法および装置に対するニーズが存在する。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
従って、本発明の１つの目的は、ディスクドライブから読取られたデータ内のエラーを補正するための新規な改良された方法および装置を提供することにある。
【０００６】
もう１つの目的は、エラー補正に必要とされる時間を低減する新規な改良されたエラー補正方法および装置を提供することにある。
【課題を解決するための手段】
【０００７】
本発明の１つの態様によると、ホストによりディスクドライブから要求されたデータは、回転ディスク上のトラック内のセクタから読取られ、ディスクドライブ内のバッファメモリに一時的に記憶される。ホストアクセスのためにセクタを解放する前に、各セクタがエラーに関してチェックされ、エラーが検出された場合、選択されたエラー補正機構を用いて、補正エンジン内でエラー補正が試みられる。不良セクタ内のエラーが第１の選択された補正機構を用いて補正された場合、不良セクタはバッファメモリ内で補正される。その後、該セクタはホストアクセスのために解放される。
【０００８】
第１の選択された補正機構を用いて、エラーが補正されない場合、不良セクタは、補正エンジンがアイドル状態となるまでバッファメモリ内に保持される。補正エンジンは、例えば良好（エラーのない）セクタが読取られホストアクセスのために直ちに解放されて、アイドル状態になる。補正エンジン内のこのアイドル時間は、１またはそれ以上の異なる補正機構を用いてエラー補正を試みるために使用される。補正エンジンのアイドル時間を用いてエラーが補正される場合、当該セクタを再度読取る必要はない。
【発明を実施するための最良の形態】
【０００９】
本発明の上述のおよびその他の特徴、およびそれらを得る要領は、添付図面と合わせて本発明の実施形態についての以下の説明を参照することにより、さらに明らかとなり、発明自体、最も良く理解されることになるだろう。
【００１０】
図１を見ると分かるように、ディスクドライブ１０は、回転可能な記憶媒体ディスク１２と、読取り／書込みヘッドまたは別々の読取りヘッドおよび書込みヘッド（図示せず）をその上に含むヘッドスライダ１４とを含む。ディスクが回転すると、スライダ１４は、アクチュエータ１６によりディスクを横断して移動させられる。
【００１１】
ディスク１２は、複数の連続するセクタ１９へとそれぞれが分割される複数の同心トラック１８を有する。記憶媒体はまた、ＣＤ−ＲＯＭといったらせん状に配置された単一のトラックを有するディスク、または単一のトラックを有する可能性のあるテープでもあり得る。いずれの場合でも、各セクタ１９は、なかんずく予め定められた量の情報データを含む。
【００１２】
ディスクドライブ１０はセクタ毎に、ディスクに情報を書込み、またディスク内のセクタから情報を読取る。当該データは、所定のフォーマットで、符号化された形によりディスクに書込まれる。パーソナルコンピュータといった図２に示すホストデバイス２０が書込み指令を出した場合、そのホストからホストインタフェース２２にデータが送信され、バッファマネージャ２４が一時的にＳＤＲＡＭ２６といったメモリ内にデータを記憶する。そのデータは、後にディスクからデータが読取られたときに、エラーを検出、識別および補正するために使用可能な情報と共に、データを符号化するフォーマッタ２８においてフォーマティングされる。
【００１３】
ヘッドは、アクチュエータ制御デバイス（図示せず）を通して所望のトラック上に配置され、書込みヘッドが選択されたセクタ上にあるときに書込みが始まる。その書込み動作は、内部制御ユニット３４によって制御される。図１には示されていないが、制御ユニット３４は、ディスクドライブの構成要素のほぼ全てとインタフェースする。典型的な制御ユニットは、中央処理装置またはプロセッサ、ステートマシン等を伴って実現されることになる。
【００１４】
ホスト２０が読取り指令を出すと、制御ユニット３４は、要求されたデータを有するセクタを識別する。読取りヘッドは、所望のトラックおよびセクタまで移動され、一般的には逐次そのトラック上の選択されたセクタを読取る。そのデータは、プリアンプ３６、読取りチャネル３８およびフォーマッタ２８を介して、バッファマネージャ２４およびエラー補正コード（ＥＣＣ）ユニット４０の双方まで転送される。バッファマネージャ２４は、ＳＤＲＡＭ２６またはその他の一時記憶機構内にセクタデータを記憶する。
【００１５】
ＥＣＣユニット４０は、図３でより詳細に示されている。ＥＣＣユニット４０は、シンドローム発生器４２とエラー補正エンジン４４とを含む。補正エンジン４４は、多数のアルゴリズムを実行し、さまざまな技術を用いてデータ内のエラーを識別するようにプログラミングされたソフトウェア、ファームウェアおよび／またはハードウェアであり得る。このとき、エンジン４４は、バッファメモリ２６内のエラーを直接または間接的に補正できる。シンドローム発生器４２は、各セクタ内にエラーが存在するか否かを見極めるため、一度に１つのセクタ毎に、データ上にてアルゴリズムを実行する。エラーが全く存在しない場合、標準的なシンドロームは「全０」または他の何らかの固定された結果となる。その場合、「全０」の結果は、ＯＲゲート４６に送信され、「良好セクタ」信号が制御ユニット３４に送信される。
【００１６】
シンドローム発生器４２は、セクタがエラーを含むことを示す非「全０」の結果を得た場合、該シンドロームは一時的シンドローム記憶装置４７内に記憶され、該シンドロームはエラー補正エンジン４４まで送信される。エンジン４４は、エラーを識別するために選択されたアルゴリズムを実行する。ある時間内にエラーを識別することができる場合、補正エンジン４４は、バッファマネージャ２４とインタフェースしてエラーを補正し、出力ＣＯＲＲＣをＯＲゲート４６に対し生成し、これが制御ユニットへの「良好セクタ」信号を生成する。エラーを補正できない場合、補正エンジン４４はＵＮＣＯＲＲ出力を制御ユニット３４に送信し、「不良セクタ」が存在することを表示する。
【００１７】
図２を見れば分かるように、セクタは、ＥＣＣユニット４０を通して送信されるときにバッファマネージャ２４に送られる。制御ユニットがバッファメモリ２６からホストアクセスへデータを解放するまで、バッファマネージャは、ＳＤ−ＲＡＭ２６内に読取りデータを記憶する。セクタが良好である場合、データは直ちに解放され得る。不良セクタが発見された場合、データはエラーが補正されるまで解放され得ない。
【００１８】
要求対象のセクタがディスクから読取られる要領は、図４のタイミング図の中で例示されている。読取りゲートは、セクタ０，１，２，３，４および５について、連続的に逐次開成される。シンドローム発生器４２は基本的に、読取りゲートが開成されるのと同時にそのセクタでビジー状態である。しかしながら、シンドローム発生器の結果または出力は、各セクタが読取られた後で生成され、従ってシンドローム発生器の出力は、読取りゲートから、およそそれが１セクタを読取るのにかかる時間だけ遅れる。
【００１９】
図４のシンドローム非ゼロ信号は、セクタ０、セクタ１、セクタ３およびセクタ５がエラーを含み、セクタ２およびセクタ４が良好セクタであることを表わす。エラー補正エンジンは、セクタ０および１を補正しているときビジー状態であるが、セクタ２およびセクタ４がチェックされて、これらのセクタがエラーを全く有していないことから、アイドル状態となる。エンジンはまた、セクタ３および５がチェックされて、これらのエラーもまた補正されなくてはならないことから、ビジー状態となる。
【００２０】
図４は、セクタ０がエラー補正エンジンにより即座には補正され得ず、従って、セクタ０についての不良セクタパルスが生成されたことを表わす。図４はまた、セクタ１について良好セクタパルスが生成され、そのエラーが即座に補正されたことを示している。セクタ２が全くエラーを有していなかったため、セクタ２については即座に良好セクタパルスが生成された。同様にして、セクタ３については、そのエラーが即座に補正されて良好セクタパルスが生成され、さらにセクタ４はエラーを全く含んでいなかったため、セクタ４については良好セクタパルスがすぐ後に生成された。セクタ５中のエラーは補正され、こうしてセクタ５については良好セクタパルスが生成された。
【００２１】
従来のディスクドライブにおいては、不良セクタ０は、ディスクから再度読取られて、その読取り工程に時間を費やすことになったはずである。しかしながら本発明では、ディスクから不良セクタを再度読取ることなしに、セクタ０を固定しようと試みて、補正エンジンのアイドル時間が利用される。図４の例においては、補正エンジンは、セクタ２および４に割当てられた時間内でアイドル状態にある。
【００２２】
補正エンジンのアイドル時間使用方法は、図５に例示されている。要求対象のセクタは、ステップＳ５０で連続的に読取られ、ステップＳ５２でバッファメモリ内に連続的に記憶される。ステップＳ５４では、ホストアクセスのために解放されたセクタが、指令通りにホストに送られる。
【００２３】
セクタが読取られバッファメモリ内に記憶されると、シンドロームがステップＳ５５で生成され、その結果はステップＳ５６でチェックされる。セクタ内でいかなるエラーも発見されない（すなわち、シンドローム結果が全０である）場合、そのセクタは、ステップＳ５８でバッファメモリからホストアクセスのために解放される。
【００２４】
ステップＳ５６でエラーが検出された（すなわち、シンドロームの結果が全０ではない）場合、そのシンドロームはステップＳ５７で補正エンジン４４に渡され、補正エンジン４４は、選択された補正機構を用いて不良セクタ内のエラーを識別しようと試みる。第１の選択された補正機構を用いてエラーが識別された場合、不良セクタは、ステップＳ６２でバッファメモリ２６内で補正される。補正されたセクタは次に、ステップＳ５８でバッファからホストアクセスのために解放される。
【００２５】
エラーが上記第１の選択された補正機構を用いて補正エンジン４４内で補正されない場合、制御ユニット３４は、ステップＳ６４で、全ての補正機構が使い尽されたか否かを判定する。使い尽されていない場合、不良セクタはバッファメモリ２６内に保持され、シンドロームは、補正エンジンがアイドル時間を有するまで一時的シンドローム記憶装置４７内に保持される（ステップＳ６６）。ステップＳ７０でアイドル時間が検出された場合、エラー補正エンジン４４は、異なる別の選択された補正機構を用いて再度エラー補正を試みる。制御ユニットは、エラーが補正されるかまたは全ての補正機構が使い尽されてしまうまで、さまざまな補正機構を通して補正エンジンをまわし続ける。全ての補正機構が使い尽されてもエラーが補正されていない場合、ステップ７２でセクタは再度読取られるかまたは、制御ユニットは読取りの試みが失敗したことを表示する。このように、全ての補正機構が使い尽されてしまうまで、ディスクからの不良セクタの再読取りを回避すべく、補正エンジンのアイドル時間が利用される。
【００２６】
本発明では、セクタを再度読取ることなく、セクタデータ内のエラーがより一層頻繁に補正され得、これによりディスクの追加の回転を排除する。これは、従来のシステムよりさらに効率が良く、ディスクドライブの応答時間を短縮させる。
【００２７】
本発明の原理が、特定の装置および利用分野との関連において記述されてきたが、この記述が、本発明の範囲に対する制限としてではなく一例として行われているにすぎないということを理解すべきである。
【図面の簡単な説明】
【００２８】
【図１】本発明によって作成されたディスクドライブの平面図である。
【図２】図１のディスクドライブ内で使用される種々の構成要素およびインタフェースのブロック図である。
【図３】図１のディスクドライブ内で使用されるエラー補正ユニットのブロック図である。
【図４】本発明によるエラー補正ユニットの全体動作を例示するタイミング図である。
【図５】本発明を用いてエラーが補正される要領を示すフローチャートである。
【符号の説明】
【００２９】
１０    ディスクドライブ
１２    記憶媒体デバイス
１４    ヘッドスライダ
１６    アクチュエータ
１８    同心トラック
１９    セクタ
２０    ホストデバイス
２２    ホストインタフェース
２４    バッファマネージャ
２６    バッファメモリ
２８    フォーマッタ
３４    制御ユニット
３６    プリアンプ
４０    エラー補正コード（ＥＣＣ）ユニット
４２    シンドローム発生器
４４    エラー補正エンジン
４６    ＯＲゲート
４７    一時的シンドローム記憶装置
【図１】
2006079810.tif 000003
【図２】
2006079810.tif 000004
【図３】
2006079810.tif 000005
【図４】
2006079810.tif 000006
【図５】
2006079810.tif 000007