JP2018160302A - ストレージ装置及びコントローラ - Google Patents

ストレージ装置及びコントローラ Download PDF

Info

Publication number
JP2018160302A
JP2018160302A JP2017057951A JP2017057951A JP2018160302A JP 2018160302 A JP2018160302 A JP 2018160302A JP 2017057951 A JP2017057951 A JP 2017057951A JP 2017057951 A JP2017057951 A JP 2017057951A JP 2018160302 A JP2018160302 A JP 2018160302A
Authority
JP
Japan
Prior art keywords
data
memory
parity check
read
stored
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
Application number
JP2017057951A
Other languages
English (en)
Inventor
慶一 岸野
Keiichi Kishino
慶一 岸野
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Toshiba Electronic Devices and Storage Corp
Original Assignee
Toshiba Corp
Toshiba Electronic Devices and Storage Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Toshiba Corp, Toshiba Electronic Devices and Storage Corp filed Critical Toshiba Corp
Priority to JP2017057951A priority Critical patent/JP2018160302A/ja
Priority to US15/694,971 priority patent/US10614853B2/en
Priority to CN201810054375.4A priority patent/CN108630241B/zh
Publication of JP2018160302A publication Critical patent/JP2018160302A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/14Digital recording or reproducing using self-clocking codes
    • G11B20/1403Digital recording or reproducing using self-clocking codes characterised by the use of two levels
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1833Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/19Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier
    • G11B27/28Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording
    • G11B27/30Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording on the same track as the main recording
    • G11B27/3027Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information detectable on the record carrier by using information signals recorded by the same method as the main recording on the same track as the main recording used signal is digitally coded
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/33Synchronisation based on error coding or decoding
    • H03M13/333Synchronisation on a multi-bit block basis, e.g. frame synchronisation
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/12Formatting, e.g. arrangement of data block or words on the record carriers
    • G11B2020/1264Formatting, e.g. arrangement of data block or words on the record carriers wherein the formatting concerns a specific kind of data
    • G11B2020/1265Control data, system data or management information, i.e. data used to access or process user data
    • G11B2020/1287Synchronisation pattern, e.g. VCO fields
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1816Testing
    • G11B2020/183Testing wherein at least one additional attempt is made to read or write the data when a first attempt is unsuccessful
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1833Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information
    • G11B2020/185Error detection or correction; Testing, e.g. of drop-outs by adding special lists or symbols to the coded information using an low density parity check [LDPC] code

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing For Digital Recording And Reproducing (AREA)

Abstract

【課題】リードエラーのリカバリ時間を短縮する。
【解決手段】ストレージ装置は、記録媒体と第1のメモリとコントローラ回路とを含む。第1のメモリは、記録媒体から読み出された第1のデータの少なくとも一部を記憶する。コントローラ回路は、第1のデータからリード対象データが検出できなかった場合に、第1のメモリ内の第1のデータの少なくとも一部に含まれている第2のデータに対してパリティチェックを実行し、チェック結果が第1の条件を満たす場合に、第2のデータを第2のメモリに記憶し、条件を満たさない場合に、第2のデータからシフトした第3のデータに対してパリティチェックを実行する。第1のメモリ内の第1のデータからリード対象データが検出できなかった場合に繰り返される複数のパリティチェックのうち、実行条件を満たすパリティチェックを実行し、実行条件を満たさないパリティチェックを実行しない。
【選択図】図1

Description

本実施形態は、ストレージ装置及びコントローラに関する。
ストレージ装置の一例として、磁気ディスク装置(ハードディスクドライブ)がある。磁気ディスク装置において発生するエラーの一例として、シンクマーク(Sync-Mark)検出エラーに基づくリードエラーがある。
米国特許出願公開第2010/306617号明細書 米国特許第6557113号明細書 米国特許出願公開第2001/0010604号明細書
本実施形態は、リードエラーのリカバリ時間を短縮するストレージ装置及びコントローラを提供する。
本実施形態に係るストレージ装置は、記録媒体と第1のメモリとコントローラ回路とを含む。第1のメモリは、記録媒体から読み出された第1のデータの少なくとも一部を記憶する。コントローラ回路は、記録媒体から読み出された第1のデータからリード対象データが検出できなかった場合に、第1のメモリに記憶されている第1のデータの少なくとも一部に含まれている第2のデータに対してパリティチェックを実行し、パリティチェックの結果が第1の条件を満たす場合に、第2のデータを第2のメモリに記憶し、パリティチェックの結果が第1の条件を満たさない場合に、第1のメモリに記憶されている第1のデータの少なくとも一部に含まれており第2のデータからシフトした第3のデータに対してパリティチェックを実行する。コントローラ回路は、第1のメモリに記憶されている第1のデータからリード対象データが検出できなかった場合に繰り返される複数のパリティチェックのうち、実行条件を満たすパリティチェックを実行し、実行条件を満たさないパリティチェックを実行しない。
第1の実施形態に係るストレージ装置の一例を示すブロック図。 サーボ領域で分断されていないセクタの記録状態の一例を示す概念図。 サーボ領域で分断されているスプリットセクタの記録状態の一例を示す概念図。 強制サーチの一例を示す概念図。 リードチャネルによって強制サーチを実施するために記憶されるサンプル値の一例を示すタイミングチャート。 第1の実施形態に係るリードチャネルの復調部の構成の一例を示すブロック図。 第1の実施形態に係る復調部で実行される処理の一例を示すフローチャート。 ライトヘッドとリードヘッドとの間のディスクの円周方向の距離がYaw角に応じて変化する状態の一例を示す概念図。 第2の実施形態に係るリードチャネルの復調部の構成の一例を示すブロック図。 タイムスタンプメモリに記憶されるシンクマーク検出位置の第1乃至第3の例と開始オフセット値との関係の一例を示すタイミングチャート。 タイムスタンプメモリに記憶されているタイムスタンプに基づいて開始オフセット値を更新する処理の一例を示すフローチャート。 強制サーチの一例を示すフローチャート。 第3の実施形態に係るリードチャネルの復調部の構成の一例を示すブロック図。 プリアンブルののデータパターン内に含まれる周期パターンの1周期とデータの開始位置との関係の一例を示すタイミングチャート。
以下、図面を参照しながら各実施形態について説明する。以下の説明において、略又は実質的に同一の機能及び構成要素については、同一符号を付すとともに、その説明を簡略化又は省略し、必要に応じて説明を行う。
以下の各実施形態では、ストレージ装置の復調(デコード)技術について説明する。各実施形態においては、ストレージ装置の代表的な例として磁気ディスク装置について説明をする。しかしながら、各実施形態は、光ディスク装置、光磁気ディスク装置など他の種類のストレージ装置に対しても同様に適用可能である。
[第1の実施形態]
第1の実施形態においては、デコード対象データのデコード中のパリティ違反数の状況に基づいて繰り返しのデコード(反復式のデコード)の中断条件を満たすか否かを判断し、中断条件を満たす場合にデコードを中断する機能を持つストレージ装置について説明する。
第1の実施形態においては、データには、複数のパリティチェック可能なデータとそのパリティデータとが含まれているとする。デコード対象データに対してパリティチェックを実行し、パリティチェックの結果が誤りと判断されたbit数を、パリティ違反数と定義する。
第1の実施形態において、ストレージ装置は、例えば、デコード中のパリティ違反数がしきい値以上の場合に、デコードを中断してもよく、デコード中に算出された複数のパリティ違反数のパターンが特定のパターンの場合に、デコードを中断してもよい。
第1の実施形態においては、データ又はサンプル値の位置を、データ又はサンプル値を読み出した又は検出したタイミングで特定する場合を例として説明する。しかしながら、データ又はサンプル値の位置は、例えばメモリに記憶した場合の位置、又は、基準の位置からメモリに記憶した位置までの差(オフセット値)などで特定してもよい。
第1の実施形態においては、繰り返しデコードにおいて上記の中断条件を満たさないことを、デコードを実行するための実行条件とする。
図1は、第1の実施形態に係るストレージ装置1の一例を示すブロック図である。
ストレージ装置1は、位置情報を分割し、この分割された位置情報を複数のサーボ領域(サーボフレーム)15Sに記録する。
ストレージ装置1は、ヘッド・ディスクアセンブリ(Head-disk assembly:HDA)4、ヘッドアンプ集積回路(IC)5、メインコントローラ6、ドライバIC7、バッファメモリ19、不揮発性メモリ20を含む。
HDA4は、記録媒体であるディスク2と、スピンドルモータ(SPM)8と、ヘッド9を搭載するアーム10と、ボイスコイルモータ(VCM)11とを含む。ディスク2は、スピンドルモータ8により回転する。アーム10とVCM11とはアクチュエータ14を構成し、ヘッド9をディスク2上の目標位置まで移動(シーク)させる。すなわち、アクチュエータ14は、VCM11の駆動により、アーム10に搭載されているヘッド9をディスク2上の径方向に移動させる。VCM11は、ドライバIC7からの電流又は電圧により駆動制御される。
ディスク2は、データが記録される多数のシリンダ15を含むが、図1では多数のシリンダ15のうちの1つを示している。ディスク2のシリンダ15には、複数のサーボ領域15Sが配置される。第1の実施形態においては、サーボ領域から取得される情報を、サーボ情報という。換言すれば、サーボ情報とは、サーボ領域へ書き込まれたデータであり、サーボ領域から読み出し可能なデータである。
ヘッド9はリードヘッド9R及びライトヘッド9Wを備える。リードヘッド9Rは、ディスク2上のシリンダ15に記録されているデータを読み出す。読み出されるデータは、例えば、サーボ情報及びユーザデータである。ライトヘッド9Wは、ディスク2上にデータを書き込む。書き込まれるデータは、例えば、ユーザデータである。
ヘッドアンプIC5は、リードアンプ及びライトドライバを備える。リードアンプは、リードヘッド9Rにより読み出されたリード信号を増幅して、リード/ライト(R/W)チャネル16に伝搬する。ライトドライバは、R/Wチャネル16から出力されるライトデータに応じたライト電流をライトヘッド9Wに伝送する。
メインコントローラ6は、R/Wチャネル16と、ハードディスクコントローラ(HDC)17と、プロセッサ18とを含み、例えば集積回路である。メインコントローラ6は、1チップで構成されてもよい。
R/Wチャネル16は、リードチャネル16Rとライトチャネル16Wとを含む。リードチャネル16Rは、リードヘッド9Rにより読み出されたリード信号をヘッドアンプIC5で増幅し、当該増幅した信号を処理し、データ(サーボ情報を含む)を復号する。ライトチャネル16Wは、HDC17からのライトデータの信号処理を実行する。
リードチャネル16Rは、サンプルバッファメモリ161とリードバッファメモリ162を含むが、このサンプルバッファメモリ161とリードバッファメモリ162とのうちの一方又は双方はR/Wチャネル16の外に備えられていてもよい。
さらに、リードチャネル16Rは、エラー訂正部163、第1の判断部164、第2の判断部165、スケジューラ166を含む。このエラー訂正部163、第1の判断部164、第2の判断部165、スケジューラ166の詳細説明は後述するが、これらのうちの少なくとも1つは、R/Wチャネル16に含まれるのではなく、例えばHDC17又はプロセッサ18によって実現されてもよく、独立の構成要素として実現されてもよい。
HDC17は、ホストデバイス21とR/Wチャネル16との間のデータ転送を制御する。HDC17は、バッファメモリ19を制御し、リードデータ及びライトデータをバッファメモリ19に一時的に格納することでデータ転送制御を実行する。バッファメモリ19は、例えばDRAM(Dynamic Random Access Memory)でもよい。また、HDC17は、不揮発性メモリ20の一例としてのフラッシュメモリを制御し、例えばデータを一時的に格納するキャッシュ領域として不揮発性メモリ20を使用してもよい。
プロセッサ18は、例えば、CPU(Central Processing Unit)又はMPU(Micro Processing Unit)であり、ドライバIC7を介してVCM11を制御し、ヘッド9の位置決め制御(サーボ制御)を実行する。さらに、プロセッサ18は、R/Wチャネル16を介してデータの記録及び再生を制御する。プロセッサ18は、ファームウェアにしたがって、各種の機能を実現してもよい。
ディスク2に含まれている各シリンダ15には、q箇所(qは2以上の整数)のサーボ領域15Sが、周方向に、一定の間隔で、周期的に配置されている。サーボ領域15Sの円周方向の間には、ユーザデータを記録するデータ領域15Dが配置されている。サーボ情報は、q箇所のサーボ領域SVF1〜SVFqに記録される。サーボ情報は、位置情報が複数のブロック情報に分割されて、複数のブロックがサーボ領域SVF1〜SVFqに記録されている。サーボ情報は、位置情報が分割されずにサーボ領域SVF1〜SVFqに記録されてもよい。位置情報は、例えば、ヘッド9の現在位置としてシリンダ位置、トラック位置、セクタのうちの少なくとも1つを検出するための情報を含む。第1の実施形態において、セクタとは、ディスク2に対する最小の記録単位とする。シリンダ15内に複数のサーボ領域SVF1〜SVFqを分割して配置することにより、各サーボ領域SVF1〜SVFqのサイズを削減することができ、シリンダ15毎のユーザデータを記録するデータ領域15Dのサイズを増加することができ、ディスク2の高記録密度化が可能になる。
以下で、リードチャネル16Rによって実行される第1の実施形態のシンクマーク検出エラーのリカバリについて説明する。
図2は、サーボ領域15Sで分断されていないセクタ22の記録状態の一例を示す概念図である。この図2では、セクタ22に、セクタデータ22Dが記録される。セクタ22は、サーボ領域15Sで分断されていない。セクタ22に記録されるセクタデータ22は、プリアンブル23、シンクマーク24、データ25、ポストアンブル26を含む。さらに、データ25は、ユーザデータとエラー訂正符号とを含む。エラー訂正符号は、データ25の上位側又は下位側に配置されてもよく、データ25の複数の位置に分散した状態で配置されてもよい。
プリアンブル23は、リードされたデータの再生時に同期を確保するための信号である。
シンクマーク24は、再生時にデータ(リード対象データ)25の先頭を検出するためのコードである。
ポストアンブル26は、データ25の末尾を示す信号である。
リードチャネル16Rは、ディスク2から読み出された連続信号を離散化してサンプル値を生成(サンプリング)し、プリアンブル23を用いて同期を確保し、シンクマーク24を用いてデータ25の先頭を検出し、ポストアンブル26を用いてデータ25の末尾を検出する。これにより、リードチャネル16Rは、データ25を検出する。
図3は、サーボ領域15Sで分断されているスプリットセクタ27の記録状態の一例を示す概念図である。
スプリットセクタ27は、サーボ領域15Sで分割されている。スプリットセクタ27をサーボ領域15Sで分割されて得られるそれぞれ領域は、フラグメント27A,27Bとする。フラグメント27Aには、プリアンブル28A、シンクマーク29A、データ30A、ポストアンブル31Aが記録される。フラグメント27Bには、プリアンブル28B、シンクマーク29B、データ30B、ポストアンブル31Bが記録される。このように、スプリットセクタ27では、データがサーボ情報をまたぐようなパターンで配置される。
シンクマーク24,29A,29Bが検出されない場合のリカバリの手法としては、例えば、強制サーチと呼ばれる手法を利用することができる。
図4は、強制サーチの一例を示す概念図である。この図4では、図2に示したデータ25をデコードするための強制サーチを例として示すが、図3に示したデータ30A又はデータ30Bなど他のデータをデコードするための強制サーチも同様である。
この強制サーチにおいて、ストレージ装置1のリードチャネル16Rは、シンクマーク検出の有無に関係なく、リード対象セクタから取得されたサンプル値(サンプル系列)Dをサンプルバッファメモリ161に記憶する。サンプルバッファメモリ161内のサンプル値Dは、少なくともデータ25と、当該データ25ではないがデータ25の前及び後に存在するデータ25F,25Bとを含む。換言すれば、サンプル値Dは、データ25と、当該データ25から前後に拡張した余分な値とを含む。余分な値の例としては、例えばシンクマーク24の末尾部分、ポストプリアンブル26の先頭部分などである。
リードチャネル16Rは、サンプルバッファメモリ161から、サンプル値Dの中からデコード開始位置をシフトしながらデコード範囲E内でデコード対象データを選択し、選択したデコード対象データのデコードを試行する。ここで、デコード範囲Eは、リード対象データ25のデータ長と同等である。この図4では、5つのデコード開始位置P1〜P5を例示しており、各デコード開始位置P1〜P5に対応するデコード対象データD1〜D5を例示している。
そして、リードチャネル16Rは、選択したデコード対象データに対応する開始位置が、データ25の正しい開始位置と一致するまで、上記の処理を繰り返す。この図4では、デコード開始位置P3に対応するデコード対象データD3のデコードが試行されると、強制サーチは終了する。
例えば、サンプル値Dのうち、デコード開始位置P1,P2,P4,P5から開始しデータ25のデータ長と同じデータ長のデコード対象データをデコードした場合、パリティ違反数はしきい値以上となる。これに対して、サンプル値Dのうち、デコード開始位置P3から開始するデータ25のデータ長のデコード対象データをデコードした場合には、パリティ違反数はしきい値より小さくなる。このように、デコード対象データのデータ長よりも前後に拡張した余分な値を含むサンプル値Dを取得し、取得したサンプル値D中のデコード対象データのデコード開始位置をシフトしてデコードすることを繰り返すことにより、シンクマークのリードエラーが発生した場合にもデータ25を検出することができる。
さらに、シンクマークのリードエラーが発生した場合のリカバリ手法の一例として、データ25のデータ長のデータをサンプル値Dとしてサンプルバッファメモリ161に記憶した後、デコード開始位置をシフトする際に、消失フラグを用いる場合がある。具体的には、サンプルバッファメモリ161に記憶されたサンプル値D中のデコード対象データのデコード開始位置をシフトした場合に足りない部分(サンプルバッファメモリ161に記憶されていない部分)が発生し、この部分に消失フラグを割り当てたデコード対象データに対して、繰り返しデコードを実行する手法もある。
図5は、リードチャネル16Rによって強制サーチを実施するために記憶されるサンプル値Dの一例を示すタイミングチャートである。この図5では、アクティブな状態をHIGH、非アクティブな状態をLOWで示しているが、このアクティブ及び非アクティブとHIGH及びLOWとの関係は逆でもよい。以下においても同様とする。
リードチャネル16Rは、データ25がサンプルバッファメモリ161に確実に記憶されるように、データ25の長さよりも拡張したサンプル値Dをサンプルバッファメモリ161に記憶する。
リードチャネル16Rは、リードゲートRGが非アクティブからアクティブとなった場合、ディスク2に対するリードを開始する。
リードチャネル16Rは、プリアンブルに対応する位相合わせウィンドウがアクティブの間にプリアンブル23を検出し、PLL回路(同期位相回路)により検出したプリアンブル23から取得される信号と内部の基準クロックとの位相合わせを行い、位相及び周波数がずれている場合にさらに詳細に位相合わせを行う。この位相合わせについてより具体的に説明する。位相合わせは、基本的に第1の位相合わせウィンドウと第2の位相合わせウィンドウとがアクティブの期間に実行される。第1の位相合わせウィンドウがアクティブの場合、PLL回路は、数サンプルを使用して位相のずれを検出し、ずれを補正する。しかしながら、位相ずれを検出するサンプル数には限度があるため、補正残差が発生する。そこで、第2の位相合わせウィンドウがアクティブの場合には、PLL回路は、フィードバックループを用いて補正残差をさらに補正する。
リードチャネル16Rは、シンクマーク24に対応するシンクマークウィンドウがアクティブの間、シンクマークの検出を行う。
リードチャネル16Rは、シンクマークウィンドウがアクティブから非アクティブへ変化した時点で、シンクマークが検出されなかった場合にシンクマーク検出エラーが発生したことをを示す信号(図5の例ではSMNF信号と表記する)をアクティブとする。
リードチャネル16Rは、例えば、シンクマークウィンドウが非アクティブからアクティブとなってから所定の時間T1が経過した時点から、サンプル値Dをサンプルバッファメモリ151へ記憶することを開始し、シンクマークウィンドウがアクティブから非アクティブとなった時点(シンクマークのサーチタイムアウト)からデータ25のデータ長に相当する時間T3が経過するまで、サンプル値Dをサンプルバッファメモリ161へ記憶する。ここで、時間T1は、例えば、シンクマークのリード時間と同じ又はそれ以下の時間としてもよい。この場合、リードチャネル16Rは、例えば図5の時間T2及び時間T3においてサンプル値Dをサンプルバッファメモリ161へ記憶することになる。
なお、第1の実施形態において、サンプル値Dをサンプルバッファメモリ161に記憶する範囲は、データ25がサンプルバッファメモリ161に確実に記憶されれば、自由に変更可能である。
例えば、プリアンブルが検出された場合に、このプリアンブルの検出の直後からサンプル値Dを、サンプルバッファメモリ161へ記憶してもよい。
リードチャネル16Rは、例えば図5の時間T1〜T3においてサンプル値Dをサンプルバッファメモリ161へ記憶してもよい。
また、リードチャネル16Rは、例えば、シンクマークウィンドウがアクティブから非アクティブへ変化する時点からデータ25のデータ長分の値がサンプルバッファメモリ161へ記憶されるまでの時間T3において、サンプル値Dをサンプルバッファメモリ161に記憶し、必要に応じて消失フラグを割り当てながらデコードを実行してもよい。
リードチャネル16Rは、シンクマークが正しく検出された場合には、シンクマーク検出信号を非アクティブからアクティブに変化させる。
リードチャネル16Rは、シンクマーク検出信号が発生した場合に、シンクマーク24に続くデータ25をサンプルバッファメモリ161に記憶する。
上記の強制サーチでは、サンプルバッファメモリ161に記憶されているサンプル値Dの中からデコード開始位置をシフトさせながらデコードを繰り返す。したがって、デコードの試行回数分のデコード時間が必要となり、処理時間が長くなる場合がある。
特に、図3に示したスプリットセクタ27のように、サンプル値Dに複数のシンクマークが含まれる場合、全てのフラグメント27A,27Bに対して試行を実施する必要が生じるため、デコードの試行回数は1箇所の試行回数のフラグメント数倍となり、処理時間が増大する。
そこで、第1の実施形態においては、強制サーチにおける試行1回に必要な時間を短縮する。
図6は、第1の実施形態に係るリードチャネル16Rの復調部32の構成の一例を示すブロック図である。
復調部32は、上述のサンプルバッファメモリ161、リードバッファメモリ162、エラー訂正部163、第1の判断部164、第2の判断部165、スケジューラ166を含む。エラー訂正部163は、さらに、チャネル検出部163a、LDPC(Low-Density Parity Check)デコーダ163b、LLR(Log-Likelihood Ratio)バッファメモリ163cを含む。
スケジューラ166は、サンプルバッファメモリ161、チャネル検出部163a、LLRバッファメモリ163c、LDPCデコーダ163b、リードバッファメモリ162に対する制御を実行し、シンクマーク検出エラーのリカバリを制御する。
第1の実施形態において、スケジューラ166は、サンプルバッファメモリ161に記憶されているサンプル値Dのうち、デコード範囲E内でデコード対象データをチャネル検出部163aに通知する。
エラー訂正部163では、チャネル検出部163aとLDPCデコーダ163bとを用いて、例えばLDPC符号などを用いたエラー訂正が実行される。
第1の実施形態において、チャネル検出部163aは、デジタル信号としてスケジューラ166から指定されたデコード範囲Eのサンプル値をデコード対象データとしてサンプルバッファメモリ161から読み出す。
LDPCデコーダ163bは、ECC(Error Correcting Code)デコーダの一例である。LDPCデコーダ163bは、LDPC符号を用いたエラー訂正(LDPCデコード)を実行する。第1の実施形態において、LDPCデコーダ163bは、LDPCデコードにおけるデコード対象データのパリティ違反数を第2の判断部165に通知する。
LLRバッファメモリ163cは、チャネル検出部163aによって実行されたチャネル検出処理の結果得られたLLRデータを記憶する。LLRデータは、チャネル検出部163aとLDPCデコーダ163bとの間でやり取りされ、LDPCデコードに用いられる情報である。
第1の判断部164は、エラー訂正部163によってエラー訂正が終了した場合に、LLRバッファメモリ163cに記憶されているLLRデータを読み出す。第1の判断部164は、読み出したLLRデータに基づいて、「0」又は「1」から構成されるバイナリデータを検出し、検出されたバイナリデータをリードバッファメモリ162に記憶する。
第2の判断部165は、中断条件を受け付ける、中断条件は、強制サーチを中断し、他のリカバリを実行するために用いる情報であり、例えばプロセッサ18から提供される。第1の実施形態において、第2の判断部165は、LDPCデコーダ163bからパリティ違反数を受け付け、パリティ違反数が中断条件によって指定されているしきい値以上の場合に、デコードを中断することを示す情報(例えばフラグ)をスケジューラ166に通知する。
スケジューラ166は、強制サーチを中断するこを示す情報を第2の判断部165から受信した場合に、エラー訂正部163によって実行されるデコードを中止し、次のデコード対象データを決定し、次のデコード対象データをチャネル検出部163aに通知する。
サンプルバッファメモリ161に記憶されているサンプル値Dにおいてリード対象のデータ25の開始位置が、期待される本来の位置と異なる場合、パリティとデータ間の関連が崩れ、通常のECCエラー検出及び訂正時と比較して非常に大きなパリティ違反数となり、同じ状態のままデコードを進めてもパリティ違反数は減少しない。
このような特性を利用し、第1の実施形態において、第2の判断部165は、パリティ違反数が明らかに異常値であると判断される場合に、デコードを中断し、次のオフセット値にしたがってサンプルバッファメモリ161から新たなデコード対象データ(例えば図4のD1〜D5のいずれか)を読み出し、デコードを試行する。ここで、オフセット値とは、サンプルバッファメモリ161に記憶されているサンプル値Dのうち、デコードを試行するデコード対象データを特定する位置情報である。
また、第2の判断部165は、デコードが複数回繰り返されることによって算出される複数個のパリティ違反数が所定の条件(所定のパターン)を満たす場合に、デコードを中断すると判断し、デコードの中断をスケジューラ166に通知してもよい。
具体例としては、第2の判断部165は、連続して算出された複数のパリティ違反数が減少傾向を示すパターンを持つ場合にはデコードを繰り返すと判断し、連続して算出された複数のパリティ違反数が増加傾向を示すパターンを持つ場合はデコードを中止すると判断してもよい。
第2の判断部165は、連続して算出された所定の個数のパリティ違反数が所定のレベル以上で維持されている場合にデコードを中止すると判断してもよい。
第2の判断部165は、デコードが複数回繰り返されることによって算出された複数個のパリティ違反数を第1のグループとし、その後にデコードが少なくとも1回実行されることによって算出された少なくとも1個のパリティ違反数を第2のグループとし、第1のグループと第2のグループとを比較した結果に基づいてデコードを中断するか否か判断してもよい。この比較の具体例としては、第2の判断部165は、例えば、第1のグループの合計値又は平均値を第2のグループの合計値又は平均値で割った変化率を求め、当該変化率がしきい値より小さい場合にデコードを繰り返すと判断し、当該変化率がしきい値以上の場合にデコードを中断すると判断してもよい。また、より単純に、第2の判断部165は、例えば、第1のグループの合計値又は平均値から第2のグループの合計値又は平均値を引いた差を求め、当該差がしきい値以上の場合にデコードを繰り返すと判断し、当該差がしきい値より小さい場合にデコードを中断すると判断してもよい。
ここでは、第1のグループと第2のグループとの比較について説明しているが、第2の判断部165は3以上のグループの間の比較の結果に基づいてデコードを中止するか否かを判断してもよい。
このように、サンプル値Dに対する試行を中断する条件は、様々な条件を設定して利用することができる。
パリティ違反数がしきい値以上か否かに基づいてデコードを中断するか否か判断することと、複数のパリティ違反数のパターンに基づいてデコードを中断するか否か判断することとは、一方が用いられるとしてもよく、双方が用いられるとしてもよい。
ここで、LDPCデコーダ163bからチャネル検出部163aへ処理が戻ることをグローバルの繰り返しといい、LDPCデコーダ163b内で処理が繰り返されることをローカルの繰り返しというとする。
一般的に、試行1回の処理には、(LDPCデコーダ163bの処理時間×ローカルの繰り返し数+1セクタ時間)×グローバルの繰り返し数、で求まる時間を要する。第1の実施形態のようにローカルの繰り返しを中断することにより、最短の場合(LDPCデコーダ163bの処理時間×1+1セクタ時間)で求まる時間で、次の試行に移行できる。ここで、1セクタ時間は、1のトラック中の1のセクタが通過する時間であり、ディスク2の半径位置で異なる値となり得る。なお、上記の処理時間の比較例は一例であり、実際の処理時間は復調部32の回路構成などに依存する。
図7は、第1の実施形態に係る復調部32で実行される処理の一例を示すフローチャートである。
S701において、スケジューラ166は、オフセット値を決定し、デコードの実行をチャネル検出部163aに指示する。
S702において、チャネル検出部163aは、スケジューラ166から、オフセット値で指定された位置からデコード範囲E内のデコード対象データをサンプルバッファメモリ161から読み出し、チャネル検出処理を実行し、LLRバッファメモリ163cにLLRデータを記憶する。
S703において、LDPCデコーダ163bは、LLRバッファメモリ163cに記憶されているLLRデータに対してLDPCデコードを実行し、LLRバッファメモリ163cのLLRデータを更新する。
S704において、スケジューラ166は、デコード対象データに対するLDPCデコードが第1の数まで繰り返されたか否かを判断する。デコード対象データに対するLDPCデコードが第1の数まで繰り返されたと判断された場合(S704のYes)、処理はS706に進む。このデコード対象データに対するLDPCデコードが開始されてからLDPCデコードが第1の数まで繰り返されたと判断されるまでの処理を、第1の繰り返し処理という。この第1の繰り返し処理は、上記のローカルの繰り返しに相当する。
デコード対象データに対するLDPCデコードが第1の数まで繰り返されていないと判断された場合(S704のNo)、S705において、スケジューラ166は、上記S703におけるLDPCデコードの結果が中断条件を満たすか否か判断する。中断条件を満たす場合(S705のYes)には処理はS701に戻り、中断条件を満たさない場合(S705のNo)には処理はS703に戻る。
上記S704でLDPCデコードが第1の数まで繰り返されたと判断された場合(S704のYes)には、S706において、スケジューラ166は、上記S702においてチャネル検出処理が実行されてからS704においてLDPCデコードが第1の数まで繰り返されたと判断されるまでの処理が第2の数まで繰り返されたか否かを判断する。このチャネル検出処理が実行されてからLDPCデコードが第1の数まで繰り返されたと判断されるまでの処理を、第2の繰り返し処理という。この第2の繰り返し処理は、上記のグローバルの繰り返しに相当する。
第2の繰り返し処理が完了していない場合(S706のNo)には、処理はS702に戻る。第2の繰り返し処理が完了した場合(S706のYes)には、S707において、スケジューラ166は、デコードの結果が条件を満たすか(成功か)否か判断する。
デコードが条件を満たす場合(S707のYes)には、S708において、第1の判断部164は、LLRバッファメモリ163cのLLRデータをバイナリデータとするための判断を行い、この判断の結果得られたバイナリデータをリードバッファメモリ162に記憶する。
デコードに失敗した場合(S707のNo)、S709において、スケジューラ166は、強制サーチによるリカバリを継続するか否か判断する。リカバリを継続しない場合(S709のNo)には、処理は終了する。この図7の処理の終了後、強制サーチではない他のリカバリが実行されてもよい。強制サーチによるリカバリを継続する場合(S709のYes)には、処理はS701に戻る。その後、S701において、スケジューラ166が次のオフセット値を決定し、S702において、チャネル検出部163aが次のオフセット値に基づいてチャネル検出処理を実行し、第1の繰り返し処理によってLDPCデコーダ163bがLLRバッファメモリ163cのLLRデータを更新する。
上記のような図7の処理では、第2の繰り返し処理の中に、第1の繰り返し処理が含まれている。第1の実施形態において、例えばパリティ違反数がしきい値以上などのように中断条件が満たされたと判断された場合には、現在のデコード対象データに対するデコードは中断され、処理はS701に移動し、S701においてスケジューラ166は、オフセット値を変更する。これにより、新たなデコード対象データに対して再度S702以降の処理が実行される。
以上説明した第1の実施形態においては、強制サーチにおいて、例えば、パリティ違反数がしきい値以上の場合、又は、複数のパリティ違反数が減少傾向のパターンではない場合など、中断条件を満たす場合に、強制サーチが中断される。
このため、強制サーチの実行時間を、強制サーチの全試行に必要な時間より短縮することができ、ストレージ装置1のリカバリ時間を短縮することができる。
強制サーチにおいては、サンプルバッファメモリ161からのデコード対象データの読み出しが繰り返され、さらに、デコード対象データに対してデコード処理が繰り返される。しかしながら、第1の実施形態においては、デコード対象データに対して繰り返されるデコードを途中で中断することができるため、デコード処理の実行回数を減らすことができる。
[第2の実施形態]
第2の実施形態においては、リード参照(リファレンス)位置からシンクマーク検出位置までの時間などを示す値を記憶し、記憶した値に基づいてシンクマークの検出位置を学習し、学習の結果に基づいてオフセット値を決定し、決定されたオフセット値を強制サーチに用いる手法について説明する。ここで、リード参照位置とは、リード動作に関して基準となる位置を示す。
第2の実施形態においては、強制サーチにおいて、リカバリできる可能性の高いデコード対象データに対してリカバリを行うことで、ストレージ装置のリカバリ時間を短縮する。第2の実施形態は、上記第1の実施形態と組み合わせて適用可能である。
例えば、ディスク2の径方向の位置によりライト時のタイミングにばらつきが発生する場合、又は、外乱やジッタ成分によりリード時にリードヘッド9Rがデータを読み出すタイミングにばらつきが発生する場合がある。ストレージ装置は、このようなライトのタイミング及びリードのタイミングのばらつきの有無に関係なく、リードされたデータに対してリカバリ可能であることが求められる。
第2の実施形態においては、シンクマークを検出することができた過去のデータに基づいて決定されたオフセット値によって取得されるデコード対象データであることを、デコードを実行する条件とする。
図8は、ライトヘッド9Wとリードヘッド9Rとの間のディスク2の円周方向の距離がYaw角に応じて変化する状態の一例を示す概念図である。
Yaw角とは、ディスク2の円周方向に対するヘッド9の傾き角である。Yaw角によってライトヘッド9Wとリードヘッド9Rとの間のディスク2の円周方向の距離が変わる。具体的には、第1の位置では、ライトヘッド9Wとリードヘッド9Rとの間のディスク2の円周方向に対する距離はaとなる。第2の位置では、ライトヘッド9Wとリードヘッド9Rとの間のディスク2の円周方向に対する距離はbとなる。距離aと距離bとの間には、キャップΔGAPが発生する。この結果、ディスク2の半径方向の位置に応じてリード参照位置とシンクマークとの相対位置が異なる場合がある。
強制サーチの範囲を広くすることで、Yaw角によってデータの位置がずれた場合であっても、データ25の位置を検出する可能性は高くなる。しかしながら、強制サーチの範囲が広くなると、選択するデコード対象データの量が多くなり、処理時間が増大する。
そこで、第2の実施形態においては、Yaw角によってデータの位置がずれる場合であっても、強制サーチを行う位置の最適化を行う。第2の実施形態においては、データ25に近い位置から探索を行い、リカバリ成功時までに必要な処理時間を減らす。
図9は、第2の実施形態に係るリードチャネル16Rの復調部32aの構成の一例を示すブロック図である。
第2の実施形態においては、ディスク2における位置などの条件がリード先のセクタと近く、かつ、正常にシンクマークが検出されたセクタに関する過去データを用いて強制サーチの開始(初期)オフセット値(ポジション)を決定する。
復調部32aは、A/D変換部34、FIR(有限インパルス応答)フィルタ35、サンプルバッファメモリ161、シンクマーク検出部36、エラー訂正部(繰り返しデコーダ)163、タイムスタンプメモリ38、スケジューラ166を含む。
A/D変換部34は、ヘッドアンプIC5からアナログ信号を受信し、デジタル信号に変換し、FIRフィルタ35に送信する。
FIRフィルタ35は、A/D変換部34から受信したデジタル信号のフィルタリングを行い、フィルタリング後のデジタル信号をサンプル値としてサンプルバッファメモリ161に記憶する。
シンクマーク検出部36は、サンプルバッファメモリ161に記憶されているサンプル値を読み出し、リード参照位置(例えばリード参照タイミング)からのシンクマーク検出位置(例えばシンクマーク検出タイミング)を検出し、検出したシンクマーク検出位置をエラー訂正部163に送信する。さらに、シンクマーク検出部36は、ディスク2の位置情報(例えばセクタ位置)とシンクマーク検出位置の値(以下、タイムスタンプと称する)とを関連付けて、タイムスタンプメモリ38に記憶する。タイムスタンプは、サンプルバッファメモリ161に現在のサンプル値Dよりも前の時点で記憶されていた過去のサンプル値から過去のリード対象データが検出された場合に、この過去のリード対象データの位置を示す値である。シンクマーク検出部36は、タイムスタンプメモリ38に、同じディスク2の位置情報に対して1つだけタイムスタンプを記憶してもよく、複数のタイムスタンプを記憶してもよい。
エラー訂正部163は、サンプルバッファメモリ161からサンプル値Dを読み出し、シンクマーク検出部からシンクマーク検出位置を受信し、サンプル値D内に含まれているデータ25を取得する。そして、エラー訂正部163は、LDPCデコードなどによりデータ25のエラー訂正を行う。
スケジューラ166は、シンクマーク検出部36によってシンクマーク検出ができなかった場合に、タイムスタンプメモリ38に記憶されておりリード対象のディスク2の位置情報に関連付けられているタイムスタンプを用いて、強制サーチの開始オフセット値を決定し、開始オフセット値をエラー訂正部163に通知する。スケジューラ166は、例えば、タイムスタンプメモリ38において、リード対象のディスク2の位置情報に対して複数のタイムスタンプが関連付けられている場合には、リード対象のディスク2の位置情報に関連付けられている複数のタイムスタンプの平均値又は中央値を、開始オフセット値として決定してもよい。
タイムスタンプメモリ38は、上述のようにディスク2の位置情報とタイムスタンプとを関連付けて記憶している。スケジューラ166は、リード対象の位置(例えばセクタ位置)と最も近い位置情報に関連付けられている1以上のタイムスタンプに基づいて、リード対象の位置に対応する開始オフセット値を決定してもよい。
図10は、タイムスタンプメモリ38に記憶されるシンクマーク検出位置の第1乃至第3の例と開始オフセット値との関係の一例を示すタイミングチャートである。
この図10においては、リードゲートRGがアクティブの場合に、リードチャネル16Rが動作する。第1の位相合わせウィンドウ及び第2の位相合わせウィンドウは、上記図5の位相合わウィンドウに相当する。リードチャネル16Rは、第1の位相合わせウィンドウがアクティブの期間において信号の位相合わせを行い、第2の位相合わせウィンドウがアクティブの期間において信号の位相がずれている場合にさらに詳細に位相合わせを行う。リードチャネル16Rは、シンクマークウィンドウの開始時点からシンクマークウィンドウのタイムアウト時点までの期間においてシンクマークを検出し、シンクマークが検出されるとデータトラッキングを開始する。
開始オフセット値は、様々な種類のリード参照位置を用いて算出可能である。例えば、開始オフセット値は、リードゲートRGのアクティブ期間の開始時点からの時間T4としてもよく、PLL回路の第1の位相合わせウィンドウのアクティブ期間の完了時点からの時間T5としてもよく、PLL回路の第2の位相合わせウィンドウのアクティブ期間の完了時点からの時間T6などとしてもよい。これらの開始オフセット値の算出は、例であり、様々に変更可能である。
第2の実施形態において、リカバリ用のサンプルバッファメモリ161に記憶されるサンプル値Dの先頭位置は、例えば上記のような様々な種類のリード参照位置と対応付けてもよい。図10の例では、第2の位相合わせウィンドウのアクティブ期間の完了時点又はシンクマークウィンドウの開始時点から、サンプル値Dがサンプルバッファメモリ161に記憶されている場合を示している。しかしながら、サンプルバッファメモリ161へのサンプル値Dの記憶を開始するタイミングは、例えば、第1の位相合わせウィンドウのアクティブ期間の完了時点又は第2の位相合わせウィンドウのアクティブ期間の開始時点など、データ25が確実にサンプルバッファメモリ161に記憶されるタイミングであればよい。
図11は、タイムスタンプメモリ38に記憶されているタイムスタンプに基づいて開始オフセット値を更新する処理の一例を示すフローチャートである。
S1101において、リードチャネル16Wは、セクタからデータをリードする。
S1102において、シンクマーク検出部36は、S1101のリードにおいて正しく検出されたシンクマーク検出位置を示すタイムスタンプとディスク2の位置情報(セクタ位置)とを関連付けてタイムスタンプメモリ38に記憶する。
S1103において、スケジューラ166は、リードを継続するか否か判断する。リードを継続する場合(S1103のYes)には、処理はS1101へ戻る。リードを継続しない場合(S1103のNo)、処理はS1104へ進む。
上述のように、ライトのタイミング及びリードのタイミングにはばらつきが生じる。このため、シンクマーク検出位置は、例えば平均化などにより最適値を求めることが好ましい。なお、最適化を行う必要がない場合には、スケジューラ166は、タイムスタンプメモリ38に記憶された1つのタイムスタンプを読み出すのみでもよい。
S1104において、スケジューラ166は、タイムスタンプメモリ38において位置情報に関連付けられている1以上のタイムスタンプの平均値を算出し、最適化を行う。
S1105において、スケジューラ166は、算出した平均値により強制サーチにおいて用いられる開始オフセット値を更新(変更)する。
その後、処理は、強制サーチ(シンクマーク検出エラーのリカバリ)へ移行する。
図12は、強制サーチの処理の一例を示すフローチャートである。
S1201において、リードチャネル16Wは、セクタからデータをリードする。
S1202において、スケジューラ166は、サンプルバッファメモリ161からデコード対象データを読み出すために用いられるオフセット値に、上記図11のS1105によって更新された開始オフセット値を設定する。
S1203において、エラー訂正部163は、設定されているオフセット値にしたがって、サンプルバッファメモリ161からデコード対象データを読み出し、デコードを行う。
S1204において、スケジューラ166は、デコードが条件を満たすか(成功か)否かを判断する。
デコードが条件を満たす場合(S1204のYes)、処理は終了する。デコードが条件を満たさない(失敗)場合(S1204のNo)、S1205において、スケジューラ166は、強制サーチを継続するか否かを判断する。
強制サーチを継続しない(終了する)場合(S1205のNo)、処理は終了する。強制サーチを継続する場合(S1205のYes)、S1206において、スケジューラ166は、サンプルバッファメモリ161からデコード対象データを読み出すために用いられるオフセット値に、次のオフセット値を設定する。スケジューラ166は、例えば、未設定のオフセット値のうち現在のオフセット値から所定の値だけシフトした値を次のオフセット値として決定してもよい。また、スケジューラ166は、例えば、開始オフセット値と次のオフセット値との差が徐々に大きくなるように、次のオフセットを決定してもよい。
以上説明したように、第2の実施形態においては、正しく検出されたシンクマーク検出位置の値であるタイムスタンプから開始オフセット値が算出され、開始オフセット値とその付近(開始オフセット値からのシフト値が小さいオフセット値)を優先的に用いて強制サーチが実行される。
第2の実施形態においては、先に述べたYaw角によって受ける影響を抑制するためにはリカバリ対象と同じシリンダもしくは隣接のシリンダに対応するタイムスタンプに基づいて、開始オフセット値を算出することが好ましい。また、ライトのタイミングのばらつきとリードヘッド9Rがデータを読み出す際に発生するタイミングのばらつきとを抑制するために、第2の実施形態においては、タイムスタンプのサンプル数を増やし、開始オフセット値がばらつきの中央に近づくようにタイムスタンプの平均値が算出され、当該平均値が開始オフセット値として用いられる。このようにタイムスタンプの平均化を行うことにより、例えば、Yaw角が原因でデータの位置にずれが生じている場合であっても、強制サーチの最適な開始オフセット値を得ることができる。したがって、第2の実施形態においては、ばらつきを考慮して強制サーチを広範囲に試行する必要がなく、短時間にリード対象データ25の先頭位置を見つることができる。
上記のように、第2の実施形態では、例えば、リカバリ対象のセクタに隣接する1以上のセクタに関する学習結果(例えばタイムスタンプの収集と平均化)を用いてリカバリ対象のセクタの開始オフセット値が算出されてもよい。この場合、リカバリ対象のセクタに関するタイムスタンプのサンプル数が少ない場合であっても、リカバリ対象のセクタに隣接する1以上のセクタに関する学習結果を用いてリカバリ対象のセクタに関する適切な開始オフセット値を算出することができる。さらに、例えば、セクタごとに、強制サーチにおいてサンプルバッファメモリ161からデコード対象データを取り出す最適な回数(換言すれば、サンプルバッファメモリ161に記憶されているサンプル値Dに対して強制サーチを実行する範囲)が異なる場合であっても、リカバリ対象のセクタ又は例えば隣接しているなど条件が近いセクタのタイムスタンプを用いて、リカバリ対象のセクタに対するサンプルバッファメモリ161からデコード対象データを取り出す最適な回数を決定することができる。したがって、第2の実施形態では、リカバリ対象のセクタに関する適切な開始オフセット値とサンプルバッファメモリ161からデコード対象データを取り出す適切な回数とが得られるまでの時間(学習時間)を短縮することができる。
開始オフセット値の算出は、タイムスタンプメモリ38にタイムスタンプが記憶されるたびに実行されてもよく、タイムスタンプを逐次タイムスタンプメモリ38に記憶しておき、後からタイムスタンプの平均値を計算し、開始オフセット値を算出てもよい。
なお、第2の実施形態においては、シンクマーク検出位置に基づいて開始オフセット値を算出しているが、デコード対象データの正しい位置を特定可能な他の位置データに基づいて開始オフセット値を算出してもよい。
[第3の実施形態]
第3の実施形態においては、強制サーチでオフセット値をシフトする場合のシフト量(以下、ステップサイズという)をプリアンブル23のデータパターン内に含まれる周期パターンの1周期の自然数倍とすることで、強制サーチ時間を短くする手法について説明する。以下において、プリアンブル23のデータパターン内に含まれる周期パターンを、単に、プリアンブル23の周期パターンという。また、プリアンブル23の周期パターンのn周期(nは1以上の整数)を、nパターン周期という。第3の実施形態は、上記第1の実施形態と上記第2の実施形態との一方又は双方と組み合わせて適用することができる。
第3の実施形態においては、上記nパターンに対応するシフト量に応じて取得されたデコード対象データであることを、デコードを実行する条件とする。
図13は、第3の実施形態に係るリードチャネル16Rの復調部32bの構成の一例を示すブロック図である。
復調部40は、例えば、A/D変換部34、FIRフィルタ35、サンプルバッファメモリ161、エラー訂正部163、位相同期部41、スケジューラ166を含む。
A/D変換部34は、デジタル信号を、FIRフィルタ35と位相同期部41とに送信する。
位相同期部41は、A/D変換部34から送信されたデジタル信号に含まれるプリアンブル23と位相を同期させた制御信号をスケジューラ166に送信する。
第3の実施形態においては、例えば、記憶フォーマットとしてプリアンブル23の1パターン周期の倍数となるようにシンクマーク24の長さが定められている。これにより、データ25の先頭位置は、プリアンブル23が終了してからプリアンブル23の1パターン周期の倍数後に、現れる。
したがって、スケジューラ166は、強制サーチを、プリアンブル23の1パターン周期単位でシフトさせながら実行するよう制御する。
図14は、プリアンブル23のパターン周期とデータ25の開始位置との関係の一例を示すタイミングチャートである。この図14では、プリアンブル23が終了した後、プリアンブル23の5パターン周期後に、データ25の先頭が配置される場合、換言すれば、シンクマーク24がプリアンブル23の5パターン周期分の長さを持つ場合、を例として示している。
リードチャネル16Rは、リード開始時にPLL回路によりプリアンブル23のパターン周期にサンプリング位相をあわせ、プリアンブルの周期パターンとタイミングを合わせてリードを開始し、サンプル値Dをサンプルバッファメモリ161に記憶する。この場合、リード開始から第2の位相合わせウィンドウのアクティブ期間の完了時点までの間にプリアンブル23の周期パターンに対応するパターンがサンプルバッファメモリ161に記憶されていれば、プリアンブル23後の1パターン周期×n(nは1以上の整数)の位置にデータ25の先頭ビットが現れる。
以上説明した第3の実施形態においては、シンクマークのリカバリの試行範囲でリードのタイミングのばらつき、ライトのタイミングのばらつき、ゾーンの内と外との変化のすべてを考慮することなく、強制サーチのステップサイズをプリプリアンブル23のパターン周期単位に設定することができ、デコードの試行数を減少することができ、リカバリに必要な時間を短縮することができる。例えば1ビットずつオフセット値をシフトさせて試行する手法に対し、一般的に用いられている4T周期プリアンブル23(“0011”や”1100”の繰り返し)では1/4の時間で強制サーチによるデータ25の探索を行うことができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
1…ストレージ装置、2…ディスク、4…HDA、5…ヘッドアンプIC、6…メインコントローラ、7…ドライバIC、8…SPM、9…ヘッド、10…アーム、11…VCM、14…アクチュエータ、15…シリンダ、15S…サーボ領域、15D…データ領域、16…R/Wチャネル、16R…リードチャネル、161…サンプルバッファメモリ、162…リードバッファメモリ、163…エラー訂正部、164…第1の判断部、165…第2の判断部、166…スケジューラ、17…HDC、18…プロセッサ、22…セクタ、23,28A,28B…プリアンブル、24,29A,29B…シンクマーク、25,30A,30B…データ、26,31A,31B…ポストアンブル、27…スプリットセクタ、32,32a,32b…復調部、163a…チャネル検出部、163b…LDPCデコーダ、163c…LLRバッファメモリ、164…第1の判断部、165…第2の判断部、166…スケジューラ、38…タイムスタンプメモリ、41…位相同期部。

Claims (17)

  1. 記録媒体と、
    前記記録媒体から読み出された第1のデータの少なくとも一部を記憶する第1のメモリと、
    前記記録媒体から読み出された前記第1のデータからリード対象データが検出できなかった場合に、前記第1のメモリに記憶されている前記第1のデータの少なくとも一部に含まれている第2のデータに対してパリティチェックを実行し、前記パリティチェックの結果が第1の条件を満たす場合に、前記第2のデータを第2のメモリに記憶し、前記パリティチェックの結果が前記第1の条件を満たさない場合に、前記第1のメモリに記憶されている前記第1のデータの少なくとも一部に含まれており前記第2のデータからシフトした第3のデータに対して前記パリティチェックを実行する、コントローラ回路と、
    を具備し、
    前記コントローラ回路は、
    前記第1のメモリに記憶されている前記第1のデータから前記リード対象データが検出できなかった場合に繰り返される複数の前記パリティチェックのうち、実行条件を満たすパリティチェックを実行し、前記実行条件を満たさないパリティチェックを実行しない、
    ストレージ装置。
  2. 前記コントローラ回路は、前記パリティチェックの結果が第2の条件を満たすか判断し、前記パリティチェックの結果が前記第2の条件を満たす場合に、前記パリティチェックを中断する、請求項1に記載のストレージ装置。
  3. 前記コントローラ回路は、前記第1のメモリに前記第1のデータよりも前の時点で記憶されていた過去のデータから過去のリード対象データが検出された場合に、第3のメモリに記憶された、前記過去のリード対象データの位置を示す値に基づいて、前記第1のメモリに記憶されている前記第1のデータの少なくとも一部から取り出す前記第2のデータを決定する、
    請求項2に記載のストレージ装置。
  4. 前記記録媒体から読み出された前記第1のデータは、周期性を持つパターンを含むプリアンブルと、前記プリアンブルのパターンの1周期に対する自然数倍の長さを持つシンクマークとを含み、
    前記第3のデータは、前記第2のデータから前記プリアンブルのパターンの1周期分シフトした位置に基づいて決定される、
    請求項2に記載のストレージ装置。
  5. 前記第2の条件は、前記パリティチェックで得られるパリティ違反数がしきい値以上であること、と、複数のパリティ違反数が減少傾向を示すパターンではないこと、とのうちの少なくとも一方を含む、請求項2に記載のストレージ装置。
  6. 前記記録媒体から読み出された第1のデータは、前記リード対象データの前に配置され前記リード対象データの検出に用いられるシンクマークを含み、
    前記コントローラ回路は、前記シンクマークの検出にエラーが発生した場合に、前記第1のメモリに記憶されている前記第1のデータの少なくとも一部から取り出された前記第2のデータに対して前記パリティチェックを実行する、請求項2に記載のストレージ装置。
  7. 前記コントローラ回路は、LDPC(Low-Density Parity Check)デコードを実行し、
    前記パリティチェックの結果は、前記LDPCデコードにおいて算出され、
    前記コントローラ回路は、前記パリティチェックの結果が前記第2の条件を満たす場合に、前記LDPCデコードで繰り返し実行される処理を中断する、
    請求項2に記載のストレージ装置。
  8. 前記コントローラ回路は、前記第1のメモリに前記第1のデータよりも前の時点で記憶されていた過去のデータから過去のリード対象データが検出された場合に、第3のメモリに記憶された、前記過去のリード対象データの位置を示す値に基づいて、前記第1のメモリに記憶されている前記第1のデータの少なくとも一部から取り出す前記第2のデータを決定する、
    請求項1に記載のストレージ装置。
  9. 前記記録媒体から読み出された前記第1のデータは、周期性を持つパターンを含むプリアンブルと、前記プリアンブルのパターンの1周期に対する自然数倍の長さを持つシンクマークとを含み、
    前記第3のデータは、前記第2のデータから前記プリアンブルのパターンの1周期分シフトした位置に基づいて決定される、
    請求項8に記載のストレージ装置。
  10. 前記コントローラ回路は、複数の過去のリード対象データの位置を示す値を示す複数の値が前記第3のメモリに記憶されている場合に、前記複数の値の平均値に基づいて前記第1のデータの少なくとも一部から取り出す前記第2のデータを決定する、
    請求項8に記載のストレージ装置。
  11. 前記過去のデータは、前記過去のリード対象データの前の位置に配置され前記過去のリード対象データの検出に用いられるシンクマークを含み、
    前記コントローラ回路は、前記第1のメモリに記憶されていた前記過去のデータから前記シンクマークが検出された場合に、リード参照位置から前記シンクマークの検出位置までのオフセット値を検出し、前記第3のメモリに記憶し、
    前記第3のメモリに記憶されている前記オフセット値に基づいて前記第1のデータの少なくとも一部から取り出す前記第2のデータを決定する、
    請求項8に記載のストレージ装置。
  12. 前記コントローラ回路は、前記第2のデータの次に、前記第1のデータの少なくとも一部から未だ取り出されておらず前記第2のデータからシフトしている値が小さいデータを前記第3のデータとして決定する、請求項8に記載のストレージ装置。
  13. 前記記録媒体から読み出された前記第1のデータは、周期性を持つパターンを含むプリアンブルと、前記プリアンブルのパターンの1周期に対する自然数倍の長さを持つシンクマークとを含み、
    前記第3のデータは、前記第2のデータから前記プリアンブルのパターンの1周期分シフトした位置に基づいて決定される、
    請求項1に記載のストレージ装置。
  14. 入力された第1のデータの少なくとも一部を第1のメモリに記憶するインターフェース回路と、
    前記入力された前記第1のデータから対象データが検出できなかった場合に、前記第1のメモリに記憶した前記第1のデータの少なくとも一部に含まれている第2のデータに対してパリティチェックを実行し、前記パリティチェックの結果が第1の条件を満たす場合に、前記第2のデータを第2のメモリに記憶し、前記パリティチェックの結果が前記第1の条件を満たさない場合に、前記第1のメモリに記憶した前記第1のデータの少なくとも一部に含まれており前記第2のデータからシフトした第3のデータに対して前記パリティチェックを実行する復調回路と、
    を具備し、
    前記復調回路は、
    前記第1のメモリに記憶した前記第1のデータから前記対象データが検出できなかった場合に繰り返される複数の前記パリティチェックのうち、実行条件を満たすパリティチェックを実行し、前記実行条件を満たさないパリティチェックを実行しない、
    コントローラ。
  15. 前記復調回路は、前記パリティチェックの結果が第2の条件を満たすか判断し、前記パリティチェックの結果が前記第2の条件を満たす場合に、前記パリティチェックを中断する、請求項14に記載のコントローラ。
  16. 前記復調回路は、前記第1のメモリに前記第1のデータよりも前の時点で記憶した過去のデータから過去のリード対象データが検出された場合に、第3のメモリに記憶された、前記過去のリード対象データの位置を示す値に基づいて、前記第1のメモリに記憶した前記第1のデータの少なくとも一部から取り出す前記第2のデータを決定する、
    請求項14に記載のコントローラ。
  17. 前記入力された第1のデータは、周期性を持つパターンを含むプリアンブルと、前記プリアンブルのパターンの1周期に対する自然数倍の長さを持つシンクマークとを含み、
    前記第3のデータは、前記第2のデータから前記プリアンブルのパターンの1周期分シフトした位置に基づいて決定される、
    請求項14に記載のコントローラ。
JP2017057951A 2017-03-23 2017-03-23 ストレージ装置及びコントローラ Pending JP2018160302A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2017057951A JP2018160302A (ja) 2017-03-23 2017-03-23 ストレージ装置及びコントローラ
US15/694,971 US10614853B2 (en) 2017-03-23 2017-09-04 Storage device and controller
CN201810054375.4A CN108630241B (zh) 2017-03-23 2018-01-19 储存器装置及控制器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017057951A JP2018160302A (ja) 2017-03-23 2017-03-23 ストレージ装置及びコントローラ

Publications (1)

Publication Number Publication Date
JP2018160302A true JP2018160302A (ja) 2018-10-11

Family

ID=63583495

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017057951A Pending JP2018160302A (ja) 2017-03-23 2017-03-23 ストレージ装置及びコントローラ

Country Status (3)

Country Link
US (1) US10614853B2 (ja)
JP (1) JP2018160302A (ja)
CN (1) CN108630241B (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018160302A (ja) * 2017-03-23 2018-10-11 株式会社東芝 ストレージ装置及びコントローラ
US10014026B1 (en) 2017-06-20 2018-07-03 Seagate Technology Llc Head delay calibration and tracking in MSMR systems
US11018842B1 (en) 2018-07-31 2021-05-25 Seagate Technology Llc Dynamic timing recovery bandwidth modulation for phase offset mitigation
US11016681B1 (en) 2018-07-31 2021-05-25 Seagate Technology Llc Multi-threshold parameter adaptation
US10803902B1 (en) * 2018-08-19 2020-10-13 Seagate Technology Llc Hardware-based read sample averaging
US10468060B1 (en) 2018-09-27 2019-11-05 Seagate Technology Llc Cancelling adjacent track interference
US11735220B2 (en) 2021-12-27 2023-08-22 Seagate Technology Llc Phase locking multiple clocks of different frequencies
US11907205B1 (en) * 2023-01-23 2024-02-20 Intuit, Inc. Generic parity solution for highly dynamic sources

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6048090A (en) * 1997-04-23 2000-04-11 Cirrus Logic, Inc. Error correction and concurrent verification of a product code
JP3883092B2 (ja) * 1999-07-06 2007-02-21 富士通株式会社 記録媒体及び情報記憶装置
US6557113B1 (en) 1999-10-26 2003-04-29 Iomega Corporation Synchronization recovery technique for storage media
JP2001216743A (ja) 2000-01-31 2001-08-10 Toshiba Corp 同期信号検出装置、同検出装置を備えた情報記憶装置、及び同期信号検出方法
JP4652939B2 (ja) * 2005-09-22 2011-03-16 ローム株式会社 信号処理装置および記憶システム
US7733590B2 (en) * 2006-06-21 2010-06-08 Broadcom Corporation Optimal synchronization mark/address mark construction
US7697224B2 (en) * 2006-12-13 2010-04-13 Hitachi Global Storage Technologies Netherlands B.V. Storing AD sampled data of read/write channel into ECC SRAM
US7733591B2 (en) * 2006-12-18 2010-06-08 Hitachi Global Storage Technologies Netherlands B.V. Data storage device with data recovery process using fixed phase clocking for analog-to-digital conversion
US20090034109A1 (en) * 2007-07-30 2009-02-05 Kabushiki Kaisha Toshiba 1-1 Disk drive apparatus and media defect detection method
JP4946844B2 (ja) * 2007-12-13 2012-06-06 ソニー株式会社 記録再生装置および記録再生方法
US8413010B1 (en) * 2009-03-12 2013-04-02 Western Digital Technologies, Inc. Data storage device employing high quality metrics when decoding logical block address appended to a data sector
JP4660605B2 (ja) 2009-05-28 2011-03-30 株式会社東芝 復号装置、復号方法及び磁気ディスク装置
US20110205653A1 (en) 2010-02-24 2011-08-25 Lsi Corporation Systems and Methods for Data Recovery
US8345369B2 (en) * 2010-02-24 2013-01-01 Lsi Corporation Systems and methods for data recovery using enhanced sync mark location
JP2012160229A (ja) * 2011-01-31 2012-08-23 Toshiba Corp 情報再生装置及び情報再生方法
JP2013016219A (ja) * 2011-06-30 2013-01-24 Toshiba Corp チャネル回路及びシーク方法
US8788921B2 (en) * 2011-10-27 2014-07-22 Lsi Corporation Detector with soft pruning
US8731115B2 (en) * 2012-03-08 2014-05-20 Lsi Corporation Systems and methods for data processing including pre-equalizer noise suppression
US8730606B1 (en) * 2012-11-20 2014-05-20 Lsi Corporation Read channel error correction using multiple calibrators
US9244752B2 (en) * 2013-05-02 2016-01-26 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for detecting media flaws
US9153287B1 (en) * 2013-05-13 2015-10-06 Western Digital Technologies, Inc. Data access for shingled magnetic recording media
US9047882B2 (en) * 2013-08-30 2015-06-02 Lsi Corporation Systems and methods for multi-level encoding and decoding
CN106201333B (zh) * 2015-06-01 2019-04-12 株式会社东芝 存储装置、控制器以及数据再读出方法
JP2018160302A (ja) * 2017-03-23 2018-10-11 株式会社東芝 ストレージ装置及びコントローラ

Also Published As

Publication number Publication date
US10614853B2 (en) 2020-04-07
CN108630241B (zh) 2020-10-30
CN108630241A (zh) 2018-10-09
US20180277158A1 (en) 2018-09-27

Similar Documents

Publication Publication Date Title
JP2018160302A (ja) ストレージ装置及びコントローラ
US8693123B1 (en) Disk drive correcting high order gray code using track estimator and decoding low order track code separately
US7800853B1 (en) Correcting servo sectors in a disk drive
US7843660B1 (en) Disk drive adjusting erasure window based on a number of non-read data sectors during a retry operation
US8917469B1 (en) Disk drive correcting an error in a detected gray code
JP2009277298A (ja) ディジタル信号再生装置及び方法並びにディジタル信号記録装置及び方法
JP2010267346A (ja) ディスクコントローラ、ディスクドライブ装置、及びディスク制御方法
US7941729B2 (en) Data storage device and error processing method in its read processing
JP2010277645A (ja) 復号装置、復号方法及び磁気ディスク装置
JP4745172B2 (ja) 制御装置および記憶装置
JP2008077458A (ja) 記憶データ処理装置、記憶装置、記憶データ処理プログラム
CN108735235B (zh) 盘装置、控制器电路以及盘装置的控制方法
JP4589894B2 (ja) 磁気ディスク装置および磁気ディスク装置製造方法
JP2010092561A (ja) 記憶装置のデータリード方法及び記憶装置
JP2019164854A (ja) 磁気ディスク装置およびその記録方法
JP2006127635A (ja) 情報記憶装置
JP2018156716A (ja) 磁気ディスク装置、コントローラ及び方法
US9633691B2 (en) Storage controller, storage device, and method
JP4544412B2 (ja) データ保存システムにおけるリトライ改善方法,ディスクドライブ及びコンピュータ読み取り可能な記憶媒体
US10109314B1 (en) Storage device and control method
US10725854B2 (en) Disk device and data management method
US9881643B1 (en) Data storage device generating extended redundancy to compensate for track squeeze
JP2007317263A (ja) シリアル・データ転送方法、そのシステム及びデータ記憶装置
CN112447193B (zh) 磁盘装置及磁盘装置的读错误重试方法
JP2008299978A (ja) ディスク・ドライブ装置及びディスクからのデータ再生方法

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20171122

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20171122