JP2008299978A - ディスク・ドライブ装置及びディスクからのデータ再生方法 - Google Patents
ディスク・ドライブ装置及びディスクからのデータ再生方法 Download PDFInfo
- Publication number
- JP2008299978A JP2008299978A JP2007146333A JP2007146333A JP2008299978A JP 2008299978 A JP2008299978 A JP 2008299978A JP 2007146333 A JP2007146333 A JP 2007146333A JP 2007146333 A JP2007146333 A JP 2007146333A JP 2008299978 A JP2008299978 A JP 2008299978A
- Authority
- JP
- Japan
- Prior art keywords
- data
- data sectors
- sectors
- sector
- disk
- 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.)
- Pending
Links
Images
Landscapes
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
【課題】限られたリトライ回数内において、ディスクからの正確なデータ再生比率を高める。
【解決手段】本発明の一形態において、HDD1は、磁気ディスク11からの複数データ・セクタを再生する際、磁気ディスクから読み出したデータのECC(Error Correction Code)エラーの有無に係らず、全データ・セクタを読み出す。その後、ECCエラーを起こしたデータ・セクタについてのみ、再生のリトライを行う。これによって、エラーが発生する場合において、複数データ・セクタを正確に再生するための処理時間を短縮することができ、特に、リトライ回数が制限されている場合において、正確なデータ再生率を上げることができる。
【選択図】図4
【解決手段】本発明の一形態において、HDD1は、磁気ディスク11からの複数データ・セクタを再生する際、磁気ディスクから読み出したデータのECC(Error Correction Code)エラーの有無に係らず、全データ・セクタを読み出す。その後、ECCエラーを起こしたデータ・セクタについてのみ、再生のリトライを行う。これによって、エラーが発生する場合において、複数データ・セクタを正確に再生するための処理時間を短縮することができ、特に、リトライ回数が制限されている場合において、正確なデータ再生率を上げることができる。
【選択図】図4
Description
本発明はディスク・ドライブ装置及びディスクからのデータ再生方法に関し、特に、ディスクからのデータ読み出しのリトライに関する。
データ記憶装置として、光ディスク、光磁気ディスク、あるいはフレキシブル磁気ディスクなどの様々な態様のメディアを使用する装置が知られているが、その中で、ハードディスク・ドライブ(HDD)は、コンピュータの記憶装置として広く普及し、現在のコンピュータ・システムにおいて欠かすことができない記憶装置の一つとなっている。さらに、コンピュータにとどまらず、動画像記録再生装置、カーナビゲーション・システム、携帯電話、あるいはデジタル・カメラなどで使用されるリムーバブルメモリなど、HDDの用途は、その優れた特性により益々拡大している。
一般に、HDDがホストからリード・コマンドを受信してから、ホストにデータ転送するまでの時間が規定されている。特に、AV機器向けなどのHDDにおいては、短い時間内にデータを読み出す必要があるため、リトライ回数は通常よりも少ない回数に制限されている。このため、回復不能エラーとなる頻度は高まる。非圧縮データの場合、数データ・セクタが回復不能であっても、連続フレームに影響しないために視覚的には問題ない。このことから、データ・セクタがECCエラーであっても、それを訂正することなくホストに転送するRead Continuousモードが存在する。
しかし、最近のAV機器が採用する圧縮は、MPEGを代表とする圧縮手法が主流であり、前後のフレームとの差分を保存する。このため、数データ・セクタのロストが視覚的に影響するようになってきている。最近のAVシステム・ユーザの要求は「単位時間内に要求データを転送し、さらに、回復不能データの転送は許されない」という厳しいものになってきている。実質、「HDDの高密度化によるサステイン転送レートの向上/高密度化エラー・レートの悪化」との勝負という状況となっている。
将来的にAV情報の高品質化・多様化に伴い要求転送レートも上がるようになると、「HDDの高密度化によるサステイン転送レートの向上/高密度化エラー・レートの悪化」が大変厳しいものとなると予想される。一方、AVサーバなどにおいて、RAID構成を有しているシステム、あるいは、上位ECCを持っているシステムにおいては、当該データ・セクタが回復不能データ・セクタであることが上位装置で判明すれば、上位装置がエラーを回復することができる。そこで、HDDがデータを上位装置に転送する際に、各データ・セクタがECCエラーを有するか否かを示すビット・マップをHDDがホストに送る技術が、特許文献1において提案されている。
特開2001−331337号公報
上記ビット・マップによって、上位装置でのエラー訂正を的確に行い、より正確なデータを再生することができる。しかし、コンシューマ・ユースのMP3プレイヤ、携帯電話、あるいはCamcorderなどの超小型HDDを使用する装置では、上位でECCを使用したエラー訂正を行わないことが一般的である。このように、上位におけるエラー訂正やRAID構成が存在しない場合、限られたリトライ回数内で、HDDができるだけ多くのデータ・セクタを正確に再生することが要求される。また、上位装置がこれらのエラー回復手段を有している場合であっても、上位装置へ転送されるエラー・データ・セクタをできるだけ少なくし、上位装置の処理負担を軽減することが好ましい。
本発明の一態様は、ディスクからデータを読み出すディスク・ドライブ装置である。この装置は、前記磁気ディスクからデータを読み出すヘッドと、前記ディスクから読み出したデータ・セクタを格納するバッファと、前記ヘッドを使用して目的とする複数データ・セクタの読み出しを順次試み、前記ディスクから順次読み出したデータ・セクタをバッファに格納し、読み出しを順次試みた複数データ・セクタの内前記ディスクから正確に再生することができなかったデータ・セクタの読み出しのみを再度試みるコントローラとを有する。読み出しを順次試みた複数データ・セクタの内、正確に再生することができなかったデータ・セクタの読み出しのみを再度試みることで、限られたリトライ回数内においてディスクからの正確なデータ再生比率を高めることができる。
好ましくは、前記コントローラはファームウェアに従って動作するプロセッサと、そのプロセッサからの指示に応じて動作するロジック回路とを有し、前記ロジック回路は、前記正確に再生することができなかったデータ・セクタを特定するマップを生成し、そのマップにより前記正確に再生することができなかったデータ・セクタの読み出しを再度試みる。これによって、プロセッサに過度に負担を要求することなく必要な処理を行うことができる。
前記目的とする複数データ・セクタは、コマンド指定されたデータ・セクタとそれと異なるデータ・セクタとを含むことが好ましい。これによって、パフォーマンスを向上し、さらに、正確なデータ再生比率を高めることができる。
前記異なるデータ・セクタの読み出しを再度試みる回数は、コマンド指定されたデータ・セクタの読み出しを再度試みる回数以下であることが好ましい。これによって、パフォーマンス低下を抑制することができる。
前記目的とする複数データ・セクタは、コマンド指定されたデータ・セクタとそれと異なるデータ・セクタとを含むことが好ましい。これによって、パフォーマンスを向上し、さらに、正確なデータ再生比率を高めることができる。
前記異なるデータ・セクタの読み出しを再度試みる回数は、コマンド指定されたデータ・セクタの読み出しを再度試みる回数以下であることが好ましい。これによって、パフォーマンス低下を抑制することができる。
好ましい例において、前記コントローラは、前記異なるデータ・セクタの内の正確に再生されずバッファ内に格納されているデータ・セクタを特定するマップを保存し、前記コマンド指定されたデータ・セクタをホストに転送した後、前記マップにより特定される前記異なるデータ・セクタの内の正確に再生することができなかったデータ・セクタの再読み出しを、コマンドに対応した処理から解放されている時間内に行うこと。これによって、パフォーマンス低下を抑制しつつ、正確なデータ再生比率を高めることができる。
好ましい一例において、前記バッファは前記異なるデータ・セクタの内の正確に再生されたデータ・セクタのみを保存しておく。これによってメモリ消費を抑制しつつ、キャッシュ・ヒット率を向上することができる。
好ましい一例において、前記バッファは、前記異なるデータ・セクタの内正確に再生された最初の連続データ・セクタのみを保存しておく。これによって、よりシンプルな制御で、メモリ消費を抑制しつつキャッシュ・ヒット率を向上することができる。
好ましい一例において、前記バッファは前記異なるデータ・セクタの内の正確に再生されたデータ・セクタのみを保存しておく。これによってメモリ消費を抑制しつつ、キャッシュ・ヒット率を向上することができる。
好ましい一例において、前記バッファは、前記異なるデータ・セクタの内正確に再生された最初の連続データ・セクタのみを保存しておく。これによって、よりシンプルな制御で、メモリ消費を抑制しつつキャッシュ・ヒット率を向上することができる。
本発明の他の態様に係るディスク・ドライブ装置は、前記磁気ディスクからデータを読み出すヘッドと、前記ディスクから読み出したデータ・セクタを格納するバッファと、前記ヘッドにより順次読み出されたデータ・セクタが正確に再生できたか否かに関わらず前記順次読み出されたデータ・セクタを前記バッファに格納し、正確に再生することができなかったデータ・セクタを特定するマップを生成し、前記マップにより特定されるデータ・セクタの読み出しを再度試みるコントローラと、を有する。正確に再生することができなかったデータ・セクタを特定するマップを生成し、前記マップにより特定されるデータ・セクタの読み出しを再度試みることによって、限られたリトライ回数内においてディスクからの正確なデータ再生比率を高めることができる。
好ましくは、前記マップは、コマンド指定されたデータ・セクタの内の正確に再生できなかったデータ・セクタを特定する情報を有し、前記バッファは、前記異なるデータ・セクタの内正確に再生された最初の連続データ・セクタのみを保存する。これによって、よりシンプルな制御で、メモリ消費を抑制しつつキャッシュ・ヒット率を向上することができる。
本発明の他の態様は、ディスク・ドライブ装置においてディスクからデータを再生する方法である。この方法は、目的とする複数データ・セクタの前記磁気ディスクからの読み出しを順次試みる。前記ディスクから順次読み出したデータ・セクタをバッファに格納する。前記読み出しを順次試みた複数データ・セクタの内、正確に再生することができなかったデータ・セクタのみ読み出しを再度試みる。読み出しを順次試みた複数データ・セクタの内、正確に再生することができなかったデータ・セクタの読み出しのみを再度試みることで、限られたリトライ回数内においてディスクからの正確なデータ再生比率を高めることができる。
本発明によれば、限られたリトライ回数内においてディスクからの正確なデータ再生比率を高めることができる。
以下に、本発明を適用可能な実施の形態を説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略及び簡略化がなされている。又、各図面において、同一要素には同一の符号が付されており、必要に応じて重複説明は省略されている。以下においては、ディスク・ドライブ装置の一例であるハードディスク・ドライブ(HDD)について説明する。
本形態のHDDは、磁気ディスクからの複数データ・セクタを再生する際、磁気ディスクから読み出したデータのECC(Error Correction Code)エラーの有無に係らず、全データ・セクタを読み出す。その後、ECCエラーを起こしたデータ・セクタについてのみ、再生のリトライを行う。これによって、エラーが発生する場合において、複数データ・セクタを正確に再生するための処理時間を短縮することができ、特に、リトライ回数が制限されている場合において、正確なデータ再生率を上げることができる。
まず、HDDの全体構成を説明する。図1は、HDD1の全体構成を模式的に示すブロック図である。HDD1は、エンクロージャ10の外側に固定された回路基板20を備えている。回路基板20上には、リード・ライト・チャネル(RWチャネル)21、モータ・ドライバ・ユニット22、ハードディスク・コントローラ(HDC)とMPUの集積回路(HDC/MPU)23及び半導体メモリのRAM24などの各回路を有している。エンクロージャ10内において、スピンドル・モータ(SPM)14は所定の角速度で磁気ディスク11を回転する。磁気ディスク11は、データを記憶するディスクである。HDC/MPU23からの制御データに従って、モータ・ドライバ・ユニット22がSPM14を駆動する。
各ヘッド・スライダ12は、磁気ディスク上を浮上するスライダと、スライダに固定され磁気信号と電気信号との間の変換(データの読み書き)を行うヘッド素子部とを備えている。各ヘッド・スライダ12はアクチュエータ16の先端部に固定されている。アクチュエータ16はボイス・コイル・モータ(VCM)15に連結され、回動軸を中心に回動することによって、ヘッド・スライダ12を回転する磁気ディスク11上においてその半径方向に移動する。モータ・ドライバ・ユニット22は、HDC/MPU23からの制御データに従ってVCM15を駆動する。アーム電子回路(AE:Arm Electronics)13は、HDC/MPU23からの制御データに従って複数のヘッド素子部12の中から磁気ディスク11にアクセス(リードもしくはライト)するヘッド・スライダ12を選択し、リード/ライト信号の増幅を行う。
RWチャネル21は、リード処理において、AE13から取得したリード信号からサーボ・データ及びユーザ・データを抽出し、デコード処理を行う。デコード処理されたデータは、HDC/MPU23に供給される。また、RWチャネル21は、ライト処理において、HDC/MPU23から供給されたライト・データをコード変調し、さらに、コード変調されたデータをライト信号に変換してAE13に供給する。HDC/MPU23において、HDCはロジック回路であり、MPUはRAM24にロードされたファームウェアに従って動作する。HDD1の起動に伴い、RAM24には、制御及びデータ処理に必要とされるデータが磁気ディスク11あるいはROM(不図示)からロードされる。HDC/MPU23はコントローラの一例であり、ヘッド・ポジショニング制御、インターフェース制御、ディフェクト管理などのデータ処理に関する必要な処理の他、HDD1の全体制御を実行する。
HDC/MPU23は、RWチャネル21から取得した磁気ディスク11からのリード・データを、ホスト51に転送する。磁気ディスク11からのリード・データは、RAM24内のリード・バッファに一時的に格納された後、HDC/MPU23を介してホスト51に転送される。本形態のHDC/MPU23は、特に、磁気ディスク11からの複数データ・セクタの再生処理において、データ・セクタのECC(Error Correcting Code)エラーが発生しても、磁気ディスク11からのデータの読み出しを中断することなく、その後のデータ・セクタを読み出す。なお、以下において、再生は、磁気ディスク11からの読み出しと、そのデータのエラー訂正処理とを含む処理である。
例えば、図2に示すように、HDC/MPU23が、データ・セクタ1からデータ・セクタ10を再生するにおいて、データ・セクタ6においてECCエラーが発生する。従来のHDC/MPU23は、データ・セクタ6がエラーを起こした時点で残りのデータ・セクタ7〜10の読み出しを中断し、データ・セクタ6の再生のエラー回復処理を開始する。エラー回復処理は、予め設定された手順において、読み出しの条件を維持して、あるいは変更して読み出しをリトライする。本形態のHDC/MPU23は、データ・セクタ6のエラーにかかわらず、その後のデータ・セクタ7〜10の再生を実行する。その後、HDC/MPU23は、データ・セクタ6の読み出し及び必要なエラー訂正処理を再実行する。
HDC/MPU23のデータ再生処理の詳細について、図3のブロック図を参照して説明する。HDC/MPU23は、ハードウェア回路(論理回路)で構成されたHDC232と、ファームウェアに従って動作するプロセッサであるMPU231とを有している。HDC232は、ホスト・インターフェース・コントローラ(HIC)321、メモリ・マネージャ322、ドライブ・マネージャ323、エラー訂正処理部であるECC訂正処理回路324、SRAM325及びレジスタに格納されたビット・マップ326を有する。ビット・マップ326は、目的とするデータ・セクタのそれぞれが、正確に再生されているか否かを示す。
図3を参照して、データ記録処理及び再生処理における転送データの流れについて説明する。図3において、実線の矢印はホスト51から転送されて磁気ディスク11に記録されるデータの流れを示している。また、点線の矢印は磁気ディスク11から読みだされてホスト51に転送されるデータの流れを示している。なお、再生及び記録の各処理において、データはデータ・セクタ単位で転送及び処理される。ここで、データ・セクタは、磁気ディスク11におけるユーザ・データの記録単位である。
記録処理におけるデータの流れから説明する。HIC321は、ホスト51とHDD1とのインターフェース回路である。記録処理において、HIC321は、ホスト51から転送されたユーザ・データを、メモリ・マネージャ322にデータ・バスを介して送る。メモリ・マネージャ322は、受け取ったユーザ・データをDRAM24内のバッファ241に一旦格納する。その後、ドライブ・マネージャ323から要求があったときに、そのデータをバッファ241から読み出して転送する。
ドライブ・マネージャ323は、受け取ったデータをECC訂正処理回路324に送る。ECC訂正処理回路324は、ドライブ・マネージャ323から受け取ったデータからECCを生成する。ECCは、磁気ディスク11へのデータ記録におけるエラーを訂正するためのコードである。ECCとしてECC及びCRC(Cyclic Redundancy Check)コードが付加されているものとして説明するが、ECCのみを使用してもよい。ECC及びCRCコードとしては、例えば、リードソロモン符号を利用することができる。
ドライブ・マネージャ323は、ECC訂正処理回路324からECCを取得し、ECC付きユーザ・データを生成する。こうしてドライブ・マネージャ323は、ECCが付加されたユーザ・データを、データ・バスを介してNRZ(Non-Return to Zero)データとしてRWチャネル21へ供給する。
続いて、再生処理におけるデータ転送の流れについて、図3を参照して説明する。ホスト51からのリード・コマンドに対してキャッシュ・ヒットしない場合、磁気ディスク11から該当データが読み出される。磁気ディスク11からデータを読み出すリード動作においては、RWチャネル21から、ECCが付加されたデータ・セクタをドライブ・マネージャ323が順次受け取り、これをECC訂正処理回路324へ供給する。
ECC訂正処理回路324は、ドライブ・マネージャ323から受け取ったデータ・セクタをSRAM325に格納し、必要なエラー訂正処理を実行する。ECC訂正処理回路324は、データ・セクタ毎にエラー訂正処理を実行する。エラー訂正処理は、オンザフライで実行され、データ転送を中断することなく行うことができる。ここで、オンザフライ処理は、データの転送を中断することなく処理を行うことをいう。必要なエラー訂正を行ったデータ・セクタは、メモリ・マネージャ322に転送される。メモリ・マネージャ322は受け取ったデータを一旦バッファ241に格納した後、MPU231からの指示に応じて、そのデータをバッファ241から読み出してHIC321に転送する。HIC321は、そのデータをホスト51に転送する。
本形態のECC訂正処理回路324は、取得した各データ・セクタをECCによりエラー訂正することができない場合も、そのデータ・セクタをメモリ・マネージャ322に転送する。従って、本形態において、目的の各データ・セクタのバッファ241への転送が、ECCエラーにより中断することはない。ECC訂正処理回路324は、ビット・マップ326に各データ・セクタに対応したビットを設定する。各ビットは、各データ・セクタが正確に再生されているか否かを示す。例えば、「0」は正確に再生されたデータ・セクタを示し、「1」は正確に再生されなかったデータ・セクタを示す。
目的とする全てのデータ・セクタのデータ(正確に再生されなかったデータを含む)がバッファ241に格納されると、MPU231は、正確に再生されなかったデータ・セクタについて、再生のリトライを実行する。具体的には、MPU231はビット・マップ326を参照し、各データ・セクタのエラーの有無を確認する。一つでもエラー・セクタが存在する場合、HDC232にリトライを指示する。ドライブ・マネージャ323は、MPU231からの指示に応答して、ビット・マップ326を参照して、磁気ディスク11からのエラー・セクタの読み出しを実行する。その後の処理は、上述と同様である。このように、エラーを起こしたデータ・セクタの再生(磁気ディスク11からバッファ241までの転送)を、MPU231によらず、ハードウェア構成のHDC232が実行することで、MPU231に大きな処理能力を要求することなく、処理を実行することができる。
なお、エラー・セクタの選択は、上述のようにドライブ・マネージャ323が行う構成と異なり、メモリ・マネージャ322がビット・マップ326を参照して行うようにしてもよい。この場合、メモリ・マネージャ322は、ECC訂正処理回路324から順次転送されるデータ・セクタの中から、ビット・マップ326を参照してエラー・セクタを選択し、そのデータ・セクタをバッファ241に格納する。HDD1は、データをホスト51に転送する際に、対応するビット・マップ326も併せて転送する。ホスト51は、これを使用して必要なデータ回復を行う。
次に、ユーザ・データの再生処理について、図4のフローチャートを参照して説明する。MPU231が、目的とする複数データ・セクタの読み出しを開始する(S11)。つまり、HDC232に対して、目的のデータ・セクタのアドレスを指定し、再生を指示する。磁気ディスク11からユーザ・データを読み出すに際し、サーボ・エラーが発生した場合(S12におけるY)、HDC232は磁気ディスク11からの読み出しを中断して、MPU231にそれを通知する。これにより、再生処理は一旦終了する(S18)。
磁気ディスク11から読み出したデータ・セクタにおいてECCエラーが発生した場合(S13におけるY)、図3を参照して説明したように、HDC232は磁気ディスク11からのデータ読み出しとエラー訂正などの処理を続行する(S14)。必要な処理を行われたデータ・セクタは、バッファ241に格納される(S15)。また、ECC訂正処理回路324が、ビット・マップ326にビットを設定する。
サーボ・エラーが発生することなく全てのデータ・セクタがバッファ241に格納されると、MPU231がビット・マップ326を参照し、全てのデータ・セクタが正確に再生されたかを判定する(S16)。いずれかのデータ・セクタが正確に再生されていない場合(S16におけるN)、HDC/MPU23はリトライを実行する。リトライ回数は、典型的には上限が存在する。具体的には、再生に許される時間が制限されることにより上限が決定される、あるいは、リトライの回数として上限が設定されている場合などがある。図4の例において、MPU231は、リトライを開始するまえに、その回数が上限数に達しているかを判定する(S17)。典型的には、対応するコマンドに対するリトライ数に上限が存在する。リトライ回数が上限に達してない場合、MPU231はエラー・セクタの再読み出の開始を指示する(S19)。以下、同様の処理を繰り返す。
図4の例において、HDC/MPU23は、サーボ・エラーの発生に応答して再生処理を中断する。しかし、図5に示すように、サーボ・エラーが発生してデータ・セクタを磁気ディスク11から読み出せない場合であっても、HDC/MPU23は、再生処理を中断することなく続行してもよい。HDC/MPU23は、最後のデータ・セクタまで再生を試み、その後、磁気ディスク11から読み出すことができなかったデータ・セクタを含め、正確に再生されなかった全てのデータ・セクタの再生をリトライする。
以下において、磁気ディスク11からのデータ再生処理の具体例を説明する。図6のモデルにおいて、HDD1は、ホスト51からのAVモードのリード・コマンドに応答して、データ・セクタ0〜15の再生を行う。×は、ECCエラーを起こしたデータ・セクタを示す。また、図6における上方向の×の順序が、リトライの順序と一致する。つまり、最初の読み出しにおいて、データ・セクタ0〜2、6〜10はECCエラーを起こす。例えば、データ・セクタ0〜2は、ヘッド・スライダ12が不安定であるため、再生の読み出しで正確に再生されない可能性がより高い。他のデータ・セクタは、最初の読み出しよって正確に再生される。
次の読み出し(1回目のリトライ)において、データ・セクタ4、8、12、13がECCエラーを起こす。図6はモデル図であるので、ECC処理を行った場合の結果を示し、実際に行うか否かを示すものではない。3、4回目の読み出し(2、3回目のリトライ)において、データ・セクタ7、8、12がECCエラーを起こす。データ・セクタ8は、何度読み直してもエラーを起こす。他のデータ・セクタは、最終的には正確に再生することができる。
図7を参照して、従来の再生処理の例を説明する。AVコマンドにおいて、読み出し回数は4回に制限されているとする。最初の読み出しにおいて、データ・セクタ0がエラーを起こす。HDDは読み出しを中止して、データ・セクタ0エラー回復処理(リトライ)を実行する。1回目のリトライにおいて、データ・セクタ0〜3を正確に再生することができるが、データ・セクタ4がエラーを起こす。HDDは読み出しを中断して、データ・セクタ4のエラー回復処理を開始する。このとき、バッファにはデータ・セクタ0〜3が存在する。
2回目のリトライにおいて、データ・セクタ4〜6が正確に再生されるが、データ・セクタ7がエラーを起こす。3回目のリトライである最後の読み出しにおいて、HDDは、ECCエラーの有無に係らず、各データ・セクタをバッファに格納する。その結果、データ・セクタ7、8、12がエラー・セクタとなる。HDDはビット・マップを生成し、再生したデータと共にホストに転送する。ホストは、ECCあるいはRAIDパリティを使用してエラーの回復を行う。
続いて、本発明に従う処理の例を、図8を参照して説明する。HDC/MPU23は、最初の再生処理において、データ・セクタ3〜5、11〜15を正確に再生する。最初のリトライにおいて、データ・セクタ0〜3、6〜10の再生を試みる。その最初のリトライにおいて、データ・セクタ8以外の全てのデータ・セクタが正確に再生される。その後、HDC/MPU23は、2回目及び3回目のリトライを実行する。データ・セクタ8は最後まで正確に再生されず、ビット・マップ326は、データ・セクタ8のみがエラー・セクタであることを示す。HDC/MPU23は、データ・セクタ0〜15とビット・マップ326とをホスト51に転送する。このように、従来の方法においては、データ・セクタ7、8及び12がエラー・セクタとなるが、本発明の方法においては、データ・セクタ8のみがエラー・セクタとなる。
次に、他の例のモデルについて説明する。図9の記載方法は、図8と同様である。エラー回復処理におけるリトライ回数の上限数は3回である。図10を参照して、従来の再生処理の例を説明する。最初の読み出しにおいて、データ・セクタ0がエラーを起こす。HDDは読み出しを中止して、データ・セクタ0エラー回復処理(リトライ)を実行する。1回目のリトライにおいて、データ・セクタ0〜3を正確に再生することができるが、データ・セクタ4がエラーを起こす。HDDは読み出しを中断して、データ・セクタ4のエラー回復処理を開始する。
2回目のリトライにおいて、データ・セクタ4〜6が正確に再生されるが、データ・セクタ7がエラーを起こす。3回目のリトライである最後の読み出しにおいて、HDDは、ECCエラーの有無に係らず、各データ・セクタをバッファに格納する。その結果、データ・セクタ7、8、12がエラー・セクタとなる。HDDはビット・マップを生成し、再生したデータと共にホストに転送する。ホストは、ECCあるいはRAIDパリティを使用してエラーの回復を行う。
続いて、本発明に従う処理の例を、図11を参照して説明する。HDC/MPU23は、最初の再生処理において、データ・セクタ3〜5、11〜15を正確に再生する。最初のリトライにおいて、データ・セクタ0〜3、6〜10の再生を試みる。その最初のリトライにおいて、残りの全てのデータ・セクタが正確に再生される。ビット・マップ326は、全てのデータ・セクタが正確なデータ・セクタであることを示す。
HDC/MPU23は、データ・セクタ0〜15とビット・マップ326とをホスト51に転送する。このように、従来の方法においては、データ・セクタ7、8及び12がエラー・セクタとなるが、本発明の方法においては、エラー・セクタが存在しない。以上の説明から理解されるように、本発明の手法は、データ・セクタにおいて常にエラーが発生するのではなく、データ・セクタがエラーを起こしたり起こさなかったりする場合に特に有効である。
次に、本形態の再生処理におけるHDC/MPU23内の動作タイミングを説明する。図12は、データ・セクタS〜S+7の全セクタを正確に再生することができた場合のタイミング・チャートを示している。S〜S+7は、それぞれデータ・セクタのアドレスを示している。セクタ・アドレスSCTAdrは、磁気ディスク11の各セクタの位置で読み出されるデータである。SCTtoRead信号がアサートのとき、磁気ディスク11から読み出されたデータ・セクタが、HDC232内に取り込まれる。SCTtoRead信号は、ビット・マップの各ビットが1を示すときアサートである。磁気ディスク11からのデータ読み出しを制御するReadGate信号は、SCTtoRead信号がアサートであるとき、各データ・セクタに対してアサートである。
最初の読み出し処理において、全データ・セクタが読み出される。ビット・マップBitMap(1)の全てのビットは1であり、SCTtoRead信号とReadGate信号とは、全データ・セクタにおいてアサートである。その後、各データ・セクタは、バッファ241内のキャッシュ・アドレスCacheAdrが示すアドレスに格納される。本例は、全てのデータ・セクタを正確に再生するので、バッファ格納後のビット・マップBitMap(2)の全ビットは0である。
続いて、図13を参照して、データ・セクタS+2、S+4、S+6がECCエラーを起こす例を説明する。磁気ディスク11からの最初の読み出しは、全データ・セクタS〜S+7を読み出す。読み出したデータ・セクタの内、データ・セクタS+2、S+4、S+6がECCにより訂正することができず、フェイルとなっている。このため、バッファ格納後のビット・マップBitMap(2)において、3番目、5番目そして7番目のビットが1である。
図14は、図13の読み出しの後の最初のリトライのタイミング・チャートである。読み出しにおけるビット・マップBitMap(1)は、図13のビット・マップBitMap(2)のコピーであり、3番目、5番目そして7番目のビットが1である。SCTtoRead信号とReadGate信号とは、このビット・マップBitMap(1)に従って変化し、データ・セクタS+2、S+4、S+6のそれぞれにおいてアサートであり、他のデータ・セクタにおいてディサートである。磁気ディスク11から読み出されたデータ・セクタS+2、S+4、S+6の内、データ・セクタS+4が、再びエラーを示す。このため、バッファ格納後のビット・マップBitMap(2)において、5番目のビットが1にセットされる。
図15は、二回目のリトライのタイミング・チャートである。読み出しにおけるビット・マップBitMap(1)は、図14のビット・マップBitMap(2)のコピーであり、5番目のビットが1である。SCTtoRead信号とReadGate信号とは、このビット・マップBitMap(1)に従って変化し、データ・セクタS+4においてアサートであり、他のデータ・セクタにおいてディサートである。このリトライは、データ・セクタS+4を正確に再生し、バッファ格納後のビット・マップBitMap(2)において、5番目のビットが0に設定される。
HDD1は、ホスト51からのリード・コマンドに従ってデータを再生する。再生の目的とするデータ・セクタは、リード・コマンドが指定するデータ・セクタに加えて、そのアドレスよりも前のデータ・セクタ、あるいは後のデータ・セクタを含むことができる。典型的なHDDは、コマンド指定アドレスの後に続きデータ・セクタも、磁気ディスク11から読み出して、バッファに予め格納しておく。これによって、その後のコマンドのキャッシュ・ヒット率を高めることができる。このような処理を先読み処理と呼ぶが、これはAVコマンドのように長い連続データ・セクタを再生することを指示するコマンドに対して特に有用である。
先読みデータ・セクタのように、コマンド指定されたデータ・セクタと異なるデータ・セクタの再生におけるリトライ方法は、コマンド指定されたデータ・セクタと同様とすることができる。しかし、コマンド指定の全データ・セクタが正確に再生されているにも係らず、それと異なるデータ・セクタの再生のためにリトライを繰り返すことは、パフォーマンスの低下を招く。従って、コマンド指定データ・セクタが正確に再生された場合、他のデータ・セクタのためのリトライを行なわず、再生処理を終了することが好ましい。あるいは、コマンド指定されていないデータ・セクタのリトライ回数の上限数は、コマンド指定されているデータ・セクタの上限数以下であることが好ましい。
コマンド指定されていないデータ・セクタの一部が、制限されたリトライ回数内に正確に再生されないことがある。図16(a)は、先読みデータ・セクタの一部が、ECCエラーを起こした例を示している。コマンド指定データ・セクタは、データ・セクタ1〜4であり、先読みデータ・セクタは、データ・セクタ5〜10である。図16(b)は、HDD1がホスト51にコマンド指定データ・セクタを転送したときに、データ・セクタ7、8はエラー・セクタであることを示している。
先読みデータ・セクタは、将来のコマンドに備えてバッファ241内に保持しておく必要がある。一方、エラー・セクタをバッファ241内に保存しておく場合、いずれのデータ・セクタがエラー・セクタであるかを示すビット・マップ326メモリ内に保存しておく必要がある。半導体のメモリ領域に余裕が存在する場合は、エラー・セクタ7、8をバッファ241内に保存しておき、HDC/MPU23は、ホスト51からのコマンドに対応した処理から解放されており、アイドル状態にあるときにエラー・セクタ7、8のエラー回復処理を行うことが好ましい。エラー回復された場合には、エラーを示していたビット・マップは不要となり、メモリから消去することができる。
コマンド指定されたデータ・セクタと異なるデータ・セクタの保存数あるいはビット・マップの数は、予め設定した上限数以下とすることが好ましい。ビット・マップ数が制限されていることは、データ・セクタ数の保存数も制限されていることになる。これによって、不要なデータ・セクタやビット・マップなどによって、徒にメモリ領域が消費されることを避けることができる。
あるいは、図16(c)に示すように、先読みデータ・セクタの内、正確に再生されたデータ・セクタ5、6、9、10をバッファ241内に保存しておくことができる。つまり、データ・セクタ7、8の領域は、他のデータによって上書きされうる。正確なデータ・セクタのみをバッファ内に保存することで、エラー・セクタを示すビット・マップをメモリに保存しておく必要がなく、メモリ領域を確保することができる。
あるいは、先読みデータ・セクタにおいて、正確に再生された最初の連続データ・データのみをバッファ241内に保存しておくことができる。図16(d)の例においては、バッファ241はデータ・セクタ5、6を保存し、エラー・セクタ7、8及び正確なデータ・セクタ9、10を保存しない。このようにすることで、複雑な制御処理を要することなくキャッシュ・ヒット率を向上することができる。
以上、本発明について好ましい態様を使用して説明したが、本発明は上述した実施の形態のみに限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。例えば、上述の実施の形態においては、HDDを例にとって説明したが、光ディスクや光磁気ディスクなど他のディスクを使用するディスク・ドライブ装置、あるいはそのディスクを着脱可能なディスク・ドライブ装置に適用してもよい。MPU231は、ホスト51からのコマンドのモードに応じて、リトライ方法を変化させるようにしてもよい。具体的には、HDD1は、AVコマンドの場合に本発明のリトライを実行し、他のコマンドの場合には、従来のようにデータ・セクタ毎のリトライを実行するようにしてもよい。
1 ハードディスク・ドライブ、10 筺体、11 磁気ディスク
12 ヘッド・スライダ、13 アーム・エレクトロニクス、14 スピンドル・モータ
15 ボイス・コイル・モータ、16 アクチュエータ、20 回路基板
21 RWチャネル、22 モータ・ドライバ・ユニット
23 ハードディスク・コントローラ/MPU、24 DRAM
311 ホスト・インターフェース・コントローラ
231 MPU、232 ハードディスク・コントローラ
241 バッファ、321 ホスト・インターフェース・コントローラ
322 メモリ・マネージャ、323 ドライブ・マネージャ
324 ECC訂正処理回路、325 SRAM、326 ビット・マップ
12 ヘッド・スライダ、13 アーム・エレクトロニクス、14 スピンドル・モータ
15 ボイス・コイル・モータ、16 アクチュエータ、20 回路基板
21 RWチャネル、22 モータ・ドライバ・ユニット
23 ハードディスク・コントローラ/MPU、24 DRAM
311 ホスト・インターフェース・コントローラ
231 MPU、232 ハードディスク・コントローラ
241 バッファ、321 ホスト・インターフェース・コントローラ
322 メモリ・マネージャ、323 ドライブ・マネージャ
324 ECC訂正処理回路、325 SRAM、326 ビット・マップ
Claims (19)
- ディスクからデータを読み出すディスク・ドライブ装置であって、
前記磁気ディスクからデータを読み出すヘッドと、
前記ディスクから読み出したデータ・セクタを格納するバッファと、
前記ヘッドを使用して目的とする複数データ・セクタの読み出しを順次試み、前記ディスクから順次読み出したデータ・セクタをバッファに格納し、読み出しを順次試みた複数データ・セクタの内前記ディスクから正確に再生することができなかったデータ・セクタの読み出しのみを再度試みるコントローラと、
を有するディスク・ドライブ装置。 - 前記コントローラはファームウェアに従って動作するプロセッサと、そのプロセッサからの指示に応じて動作するロジック回路と、を有し、
前記ロジック回路は、前記正確に再生することができなかったデータ・セクタを特定するマップを生成し、そのマップにより前記正確に再生することができなかったデータ・セクタの読み出しを再度試みる、
請求項1に記載のディスク・ドライブ装置。 - 前記目的とする複数データ・セクタは、コマンド指定されたデータ・セクタとそれと異なるデータ・セクタとを含む、
請求項1に記載のディスク・ドライブ装置。 - 前記異なるデータ・セクタの読み出しを再度試みる回数は、コマンド指定されたデータ・セクタの読み出しを再度試みる回数以下である、
請求項3に記載のディスク・ドライブ装置。 - 前記コントローラは、前記異なるデータ・セクタの内の正確に再生されずバッファ内に格納されているデータ・セクタを特定するマップを保存し、前記コマンド指定されたデータ・セクタをホストに転送した後、前記マップにより特定される前記異なるデータ・セクタの内の正確に再生することができなかったデータ・セクタの再読み出しを、コマンドに対応した処理から解放されている時間内に行う、
請求項3に記載のディスク・ドライブ装置。 - 前記バッファは前記異なるデータ・セクタの内の正確に再生されたデータ・セクタのみを保存しておく、
請求項3に記載のディスク・ドライブ装置。 - 前記バッファは、前記異なるデータ・セクタの内正確に再生された最初の連続データ・セクタのみを保存しておく、
請求項3に記載のディスク・ドライブ装置。 - ディスクからデータを読み出すディスク・ドライブ装置であって、
前記磁気ディスクからデータを読み出すヘッドと、
前記ディスクから読み出したデータ・セクタを格納するバッファと、
前記ヘッドにより順次読み出されたデータ・セクタが正確に再生できたか否かに関わらず前記順次読み出されたデータ・セクタを前記バッファに格納し、正確に再生することができなかったデータ・セクタを特定するマップを生成し、前記マップにより特定されるデータ・セクタの読み出しを再度試みるコントローラと、
を有するディスク・ドライブ装置。 - 前記順次読み出されたデータ・セクタは、コマンド指定されたデータ・セクタとそれと異なるデータ・セクタとを含む、
請求項8に記載のディスク・ドライブ装置。 - 前記異なるデータ・セクタの読み出しを再度試みる回数は、コマンド指定されたデータ・セクタの読み出しを再度試みる回数以下である、
請求項9に記載のディスク・ドライブ装置。 - 前記コントローラは、前記マップにより特定される前記異なるデータ・セクタの内の正確に再生することができなかったデータ・セクタの再読み出しを、コマンドに対応した処理から解放されている時間内に行う、
請求項9に記載のディスク・ドライブ装置。 - 前記バッファは、前記異なるデータ・セクタの内の正確に再生されたデータ・セクタのみを保存しておく、
請求項9に記載のディスク・ドライブ装置。 - 前記マップは、コマンド指定されたデータ・セクタの内の正確に再生できなかったデータ・セクタを特定する情報を有し、
前記バッファは、前記異なるデータ・セクタの内正確に再生された最初の連続データ・セクタのみを保存する、
請求項9に記載のディスク・ドライブ装置。 - ディスク・ドライブ装置においてディスクからデータを再生する方法であって、
目的とする複数データ・セクタの前記磁気ディスクからの読み出しを順次試み、
前記ディスクから順次読み出したデータ・セクタをバッファに格納し、
前記読み出しを順次試みた複数データ・セクタの内、正確に再生することができなかったデータ・セクタのみ読み出しを再度試みる、
方法。 - 前記目的とする複数データ・セクタは、コマンド指定されたデータ・セクタとそれと異なるデータ・セクタとを含む、
請求項14に記載の方法。 - 前記異なるデータ・セクタの読み出しを再度試みる回数は、コマンド指定されたデータ・セクタの読み出しを再度試みる回数以下である、
請求項15に記載の方法。 - 前記異なるデータ・セクタの内の正確に再生されずバッファ内に格納されているデータ・セクタを特定するマップを保存し、
前記マップにより特定される前記異なるデータ・セクタの内の正確に再生することができなかったデータ・セクタの再読み出しを、コマンドに対応した処理から解放されている時間内に行う、
請求項15に記載の方法。 - 前記異なるデータ・セクタの内、所定の再読み出し回数内に正確に再生されたデータ・セクタのみをバッファ内に保存する、
請求項15に記載の方法。 - 前記異なるデータ・セクタの内正確に再生された最初の連続データ・セクタのみをバッファ内に保存しておく、
請求項15に記載の方法
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007146333A JP2008299978A (ja) | 2007-05-31 | 2007-05-31 | ディスク・ドライブ装置及びディスクからのデータ再生方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007146333A JP2008299978A (ja) | 2007-05-31 | 2007-05-31 | ディスク・ドライブ装置及びディスクからのデータ再生方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008299978A true JP2008299978A (ja) | 2008-12-11 |
Family
ID=40173344
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007146333A Pending JP2008299978A (ja) | 2007-05-31 | 2007-05-31 | ディスク・ドライブ装置及びディスクからのデータ再生方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2008299978A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010244644A (ja) * | 2009-04-08 | 2010-10-28 | Sharp Corp | データ読取り装置、データ読取り装置の制御方法、および記録データ再生システム |
JP2014182852A (ja) * | 2013-03-19 | 2014-09-29 | Mitsubishi Electric Corp | 再生装置 |
-
2007
- 2007-05-31 JP JP2007146333A patent/JP2008299978A/ja active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010244644A (ja) * | 2009-04-08 | 2010-10-28 | Sharp Corp | データ読取り装置、データ読取り装置の制御方法、および記録データ再生システム |
JP2014182852A (ja) * | 2013-03-19 | 2014-09-29 | Mitsubishi Electric Corp | 再生装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4886877B2 (ja) | 記録媒体制御装置、及びその方法 | |
JP3998307B2 (ja) | 磁気ディスク装置及び磁気ディスク装置のエラー訂正方法 | |
JP4679943B2 (ja) | データ記憶装置及びその不揮発性メモリ内データ書き換え処理方法 | |
JP2009266333A (ja) | データ記憶装置及び隣接トラック書き直し処理方法。 | |
JP4660612B2 (ja) | 情報再生装置及び情報再生方法 | |
US7171607B2 (en) | Apparatus and method for verifying erasure correction function | |
JP2004103127A (ja) | 情報記録媒体のセクタの再配置方法および情報記憶装置 | |
US8117491B2 (en) | Disk-drive device and method for error recovery thereof | |
US7941729B2 (en) | Data storage device and error processing method in its read processing | |
JP2007287208A (ja) | データ記憶装置及びそのエラー訂正方法 | |
US7607039B2 (en) | Data storage device with re-allocation processing which determines an order in which re-allocation processing is executed for defective sectors | |
CN108735235B (zh) | 盘装置、控制器电路以及盘装置的控制方法 | |
US20170090768A1 (en) | Storage device that performs error-rate-based data backup | |
US7898757B2 (en) | Hard disk drive with divided data sectors and hard disk drive controller for controlling the same | |
JP2006127635A (ja) | 情報記憶装置 | |
US20080091971A1 (en) | Stored data processing apparatus, storage apparatus, and stored data processing program | |
JP2009176410A (ja) | データ処理方法およびデータ保存装置 | |
JP2018156716A (ja) | 磁気ディスク装置、コントローラ及び方法 | |
JP2006079810A (ja) | 読取られたデータ内のエラーを補正するための方法及び装置 | |
JP2008299978A (ja) | ディスク・ドライブ装置及びディスクからのデータ再生方法 | |
JP2005276026A (ja) | データ記憶装置におけるエラー回復処理方法、データ記憶装置及び磁気ディスク記憶装置 | |
JP2008276818A (ja) | ディスク・ドライブ装置及びそのディスクへのアクセス方法 | |
US7389378B2 (en) | Write processing method for stream type commands and medium storage apparatus | |
JP2007317263A (ja) | シリアル・データ転送方法、そのシステム及びデータ記憶装置 | |
JP2011181169A (ja) | デコーダと該デコーダを含む装置 |