(57)【要約】【課題】  リード性能の低下を防止可能な磁気ディスク装置及びリード処理方法を提供することである。【解決手段】  本実施形態に係る磁気ディスク装置は、事前に検出されたリードできない先発不良セクタが登録された第１リストと、後発不良セクタが登録される第２リストとを有するディスクと、前記ディスクに対してデータをライトし、前記ディスクからデータをリードするヘッドと、前記第１リストに登録された第１不良セクタから前記ディスクでリードできない第２不良セクタに向かう第１方向に位置する第１セクタを前記第２リストに登録し、前記第２リストに登録した前記第１セクタに対応する第１アドレスを第１代替セクタに割り当て直す、コントローラと、を備える。【選択図】図１
2019164869.tif 000002
【特許請求の範囲】
【請求項１】
事前に検出されたリードできない先発不良セクタが登録された第１リストと、後発不良セクタが登録される第２リストとを有するディスクと、
前記ディスクに対してデータをライトし、前記ディスクからデータをリードするヘッドと、
前記第１リストに登録された第１不良セクタから前記ディスクでリードできない第２不良セクタに向かう第１方向に位置する第１セクタを前記第２リストに登録し、前記第２リストに登録した前記第１セクタに対応する第１アドレスを第１代替セクタに割り当て直す、コントローラと、を備える磁気ディスク装置。
【請求項２】
前記第１セクタは、前記第１不良セクタと前記第２不良セクタとの間に位置する、請求項１に記載の磁気ディスク装置。
【請求項３】
前記コントローラは、前記第１不良セクタと前記第２不良セクタとの間に位置するセクタの数が閾値以下の場合に前記第１セクタを前記第２リストに登録する、請求項２に記載の磁気ディスク装置。
【請求項４】
前記コントローラは、前記第２不良セクタを前記第１リスト及び前記第２リストに登録する、請求項１乃至３のいずれか１項に記載の磁気ディスク装置。
【請求項５】
前記コントローラは、前記第２リストに登録した前記第２不良セクタに対応する第２アドレスを第２代替セクタに割り当て直す、請求項４に記載の磁気ディスク装置。
【請求項６】
前記コントローラは、前記第１リストに登録した前記第２不良セクタに対応する前記第２アドレスを第３代替セクタに割り当て直す、請求項５に記載の磁気ディスク装置。
【請求項７】
前記コントローラは、前記第１セクタを前記第１リストに登録する、請求項１乃至６のいずれか１項に記載の磁気ディスク装置。
【請求項８】
前記コントローラは、前記第１リストに登録した前記第１セクタに対応する前記第１アドレスを第４代替セクタに割り当て直す、請求項７に記載の磁気ディスク装置。
【請求項９】
前記ディスクは、事前に検出されたリードできない不良トラックが登録された第３リストをさらに備え、
前記コントローラは、前記第３リストに登録された第１不良トラックから前記ディスクでリードできない第３不良セクタに向かう第２方向に位置する第２セクタを前記第２リストに登録し、前記第２リストに登録した前記第２セクタに対応する第２アドレスを第２代替セクタに割り当て直す、請求項１に記載の磁気ディスク装置。
【請求項１０】
前記第２不良セクタは、前記第１不良セクタの前記第１方向に隣接し、
前記第１セクタは、前記第２不良セクタの前記第１方向に隣接している、請求項１に記載の磁気ディスク装置。
【請求項１１】
事前に検出されたリードできない不良セクタが登録された第１リストと、前記不良セクタが登録される第２リストとを有するディスクと、
前記ディスクに対してデータをライトし、前記ディスクからデータをリードするヘッドと、
前記第１リストに登録された第１不良セクタから前記ディスクでリードできない第２不良セクタに向かう第１方向に位置する第１セクタを前記第２リストに登録し、前記第２リストに登録した前記第１セクタを第１代替セクタに交代する、コントローラと、を備える磁気ディスク装置。
【請求項１２】
事前に検出されたリードできない不良セクタが登録された第１リストと、前記不良セクタが登録される第２リストとを有するディスクと、前記ディスクに対してデータをライトし、前記ディスクからデータをリードするヘッドとを備える磁気ディスク装置に適用されるリード処理方法であって、
前記第１リストに登録された第１不良セクタから前記ディスクでリードできない第２不良セクタに向かう第１方向に位置する第１セクタを前記第２リストに登録し、
前記第２リストに登録した前記第１セクタに対応する第１アドレスを第１代替セクタに割り当て直す、リード処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、磁気ディスク装置及びリード処理方法に関する。
【背景技術】
【０００２】
磁気ディスク装置は、出荷前の検査で検出された傷等の欠陥を含むセクタ（以下、不良セクタと称する）を登録したＰリスト（プライマリリスト）と、出荷後に検出された不良セクタを登録されるＧリスト（グロウンリスト）と、を有している。通常、出荷前には問題なくライト及びリードできた薄い傷等の軽度の欠陥を含むセクタはＰリストに登録されない可能性がある。このような軽度の欠陥を含むセクタは、Ｐリストに登録された不良セクタ等の近傍に位置している可能性がある。そのため、Ｐリストに登録された不良セクタの近傍に出荷後に不良セクタが検出された場合、Ｐリストに登録された不良セクタと出荷後に検出された不良セクタとの近傍に位置するセクタは、経年劣化や周辺のＰリストやＧリストに登録された不良セクタの傷の成長等により不良セクタになる可能性がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−０３０８５２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明の実施形態が解決しようとする課題は、リード性能の低下を防止可能な磁気ディスク装置及びリード処理方法を提供することである。
【課題を解決するための手段】
【０００５】
本実施形態に係る磁気ディスク装置は、事前に検出されたリードできない先発不良セクタが登録された第１リストと、後発不良セクタが登録される第２リストとを有するディスクと、前記ディスクに対してデータをライトし、前記ディスクからデータをリードするヘッドと、前記第１リストに登録された第１不良セクタから前記ディスクでリードできない第２不良セクタに向かう第１方向に位置する第１セクタを前記第２リストに登録し、前記第２リストに登録した前記第１セクタに対応する第１アドレスを第１代替セクタに割り当て直す、コントローラと、を備える。
【図面の簡単な説明】
【０００６】
【図１】図１は、実施形態に係る磁気ディスク装置の構成を示すブロック図である。
【図２】図２は、実施形態に係る拡張不良セクタの検出方法の一例を示す図である。
【図３】図３は、実施形態に係る拡張不良セクタの検出方法の一例を示す図である。
【図４】図４は、実施形態に係る拡張不良セクタの検出方法の一例を示す図である。
【図５】図５は、実施形態に係る拡張不良セクタの検出方法の一例を示す図である。
【図６】図６は、実施形態に係るリード処理方法の一例を示すフローチャートである。
【図７】図７は、変形例に係るリード処理方法の一例を示すフローチャートである。
【発明を実施するための形態】
【０００７】
以下、実施の形態について図面を参照して説明する。なお、図面は、一例であって、発明の範囲を限定するものではない。  
（実施形態）  
図１は、実施形態に係る磁気ディスク装置１の構成を示すブロック図である。  
磁気ディスク装置１は、後述するヘッドディスクアセンブリ（ＨＤＡ）と、ドライバＩＣ２０と、ヘッドアンプ集積回路（以下、ヘッドアンプＩＣ、又はプリアンプ）３０と、揮発性メモリ７０と、バッファメモリ（バッファ）８０と、不揮発性メモリ９０と、１チップの集積回路であるシステムコントローラ１３０とを備える。また、磁気ディスク装置１は、ホストシステム（以下、単に、ホストと称する）１００と接続される。
【０００８】
ＨＤＡは、磁気ディスク（以下、ディスクと称する）１０と、スピンドルモータ（以下、ＳＰＭと称する）１２と、ヘッド１５を搭載しているアーム１３と、ボイスコイルモータ（以下、ＶＣＭと称する）１４とを有する。ディスク１０は、スピンドルモータ１２に取り付けられ、スピンドルモータ１２の駆動により回転する。アーム１３及びＶＣＭ１４は、アクチュエータを構成している。アクチュエータは、ＶＣＭ１４の駆動により、アーム１３に搭載されているヘッド１５をディスク１０上の目標位置まで移動制御する。ディスク１０およびヘッド１５は、２つ以上の数が設けられてもよい。  
ディスク１０は、そのデータをライト可能な領域に、ユーザから利用可能なユーザデータ領域１０ａと、システム管理に必要な情報をライトするシステムエリア１０ｂとが割り当てられている。以下、ディスク１０の半径方向に直交する方向を円周方向と称する。また、「アクセス」とは「ディスク１０にデータをライトする」ことと「ディスク１０からデータをリードする」こととの両方の意味を含むものとして使用する。ユーザデータ領域１０ａは、代替領域ＣＡを含む。なお、代替領域ＣＡは、システムエリア１０ｂに設けられていてもよい。システムエリア１０ｂは、Ｐリスト（プライマリリスト）ＰＬとＧリスト（グロウン(Grown)リスト）ＧＬとトラックスリップ（Track Slip）情報ＴＳＩとを含む。ＰリストＰＬとＧリストＧＬとトラックスリップ情報ＴＳＩとは、後述する揮発性メモリ７０や不揮発性メモリ９０等に格納されてもよい。なお、一例では、システムエリア１０ｂにおいて、ＰリストＰＬを格納する記録領域の容量は、ＧリストＧＬを格納する記録領域の容量よりも大きい。
【０００９】
ＰリストＰＬは、磁気ディスク装置１の出荷前のディスク１０の傷等の欠陥（又は、ディフェクト）の検査で事前に検出された欠陥のあるセクタ（以下、不良セクタ又は先発不良セクタと称する）を管理する情報を含む。ＰリストＰＬは、例えば、ディスク１０のデータ構造のアドレスマップをもとに生成される。セクタは、例えば、ディスク１０にデータをライトする際の最小単位の記録領域である。一例では、１セクタは、５１２ｂｙｔｅ、又は４Ｋｂｙｔｅ分のディスク１０の記録領域である。以下、「セクタにライトされたデータをリードする」ことを単に「セクタをリードする」と表現する場合もある。  
ＧリストＧＬは、磁気ディスク装置１の出荷後のセクタアクセスで検出された不良セクタ（以下、後発不良セクタと称する場合もある）を管理するための情報を含む。ＧリストＧＬは、出荷後のセクタアクセスで検出された全ての不良セクタについて、これら不良セクタのＬＢＡ（Logical Block Address）又は物理アドレス等のアドレスと、これら不良セクタに変えて用いられる代替セクタとの対応を示す。代替セクタは、代替領域ＣＡに設けられている。以下、説明の便宜上、「セクタのアドレス（ＬＢＡや物理アドレス等）」を単に「セクタ」と称する場合もある。ＧリストＧＬは、出荷前には後発不良セクタに関する情報（後発不良セクタのアドレス等）が全く登録されておらず、出荷後に後発不良セクタが検出される度に後発不良セクタに関する情報が登録される。  
トラックスリップ（Track Slip）情報ＴＳＩは、磁気ディスク装置１の出荷前のディスク１０の欠陥の検査で検出された全体的に揺れている等の欠陥を有するトラック（以下、不良トラックと称する）を管理する情報を含む。
【００１０】
ヘッド１５は、スライダを本体として、当該スライダに実装されているライトヘッド１５Ｗとリードヘッド１５Ｒとを備える。ライトヘッド１５Ｗは、ディスク１０上にデータをライトする。リードヘッド１５Ｒは、ディスク１０上のデータトラックに記録されているデータをリードする。
【００１１】
ドライバＩＣ２０は、システムコントローラ１３０（詳細には、後述するＭＰＵ６０）の制御に従って、ＳＰＭ１２およびＶＣＭ１４の駆動を制御する。  
ヘッドアンプＩＣ（プリアンプ）３０は、リードアンプ及びライトドライバを備えている。リードアンプは、ディスク１０からリードされたリード信号を増幅して、システムコントローラ１３０（詳細には、後述するリード／ライト（Ｒ／Ｗ）チャネル４０）に出力する。ライトドライバは、Ｒ／Ｗチャネル４０から出力される信号に応じたライト電流をヘッド１５に出力する。
【００１２】
揮発性メモリ７０は、電力供給が断たれると保存しているデータが失われる半導体メモリである。揮発性メモリ７０は、磁気ディスク装置１の各部での処理に必要なデータ等を格納する。揮発性メモリ７０は、例えば、ＳＲＡＭ（Static Random Access Memory）、ＤＲＡＭ（Dynamic Random Access Memory）、又はＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）である。  
バッファメモリ８０は、磁気ディスク装置１とホスト１００との間で送受信されるデータ等を一時的に記録する半導体メモリである。なお、バッファメモリ８０は、揮発性メモリ７０と一体に構成されていてもよい。バッファメモリ８０は、例えば、ＤＲＡＭ、ＳＲＡＭ、ＳＤＲＡＭ、ＦｅＲＡＭ（Ferroelectric Random Access memory）、又はＭＲＡＭ（Magnetoresistive Random Access Memory）等である。  
不揮発性メモリ９０は、電力供給が断たれても保存しているデータを記録する半導体メモリである。不揮発性メモリ９０は、例えば、ＮＯＲ型またはＮＡＮＤ型のフラッシュＲＯＭ（Flash Read Only Memory :ＦＲＯＭ）である。
【００１３】
システムコントローラ（コントローラ）１３０は、例えば、複数の素子が単一チップに集積されたSystem-on-a-Chip(ＳｏＣ)と称される大規模集積回路（ＬＳＩ）を用いて実現される。システムコントローラ１３０は、リード／ライト（Ｒ／Ｗ）チャネル４０と、ハードディスクコントローラ（ＨＤＣ）５０と、マイクロプロセッサ（ＭＰＵ）６０とを含む。システムコントローラ１３０は、例えば、ドライバＩＣ２０、ヘッドアンプＩＣ３０、揮発性メモリ７０、バッファメモリ８０、不揮発性メモリ９０、及びホストシステム１００等に電気的に接続されている。  
Ｒ／Ｗチャネル４０は、後述するＭＰＵ６０からの指示に応じて、ディスク１０からホスト１００に転送されるリードデータ及びホスト１００から転送されるライトデータの信号処理を実行する。Ｒ／Ｗチャネル４０は、リードデータの信号品質を測定する回路、又は機能を有している。Ｒ／Ｗチャネル４０は、例えば、ヘッドアンプＩＣ３０、ＨＤＣ５０、及びＭＰＵ６０等に電気的に接続されている。  
ＨＤＣ５０は、後述するＭＰＵ６０からの指示に応じて、ホスト１００とＲ／Ｗチャネル４０との間のデータ転送を制御する。ＨＤＣ５０は、例えば、Ｒ／Ｗチャネル４０、ＭＰＵ６０、揮発性メモリ７０、バッファメモリ８０、及び不揮発性メモリ９０等に電気的に接続されている。
【００１４】
ＭＰＵ６０は、磁気ディスク装置１の各部を制御するメインコントローラである。ＭＰＵ６０は、ドライバＩＣ２０を介してＶＣＭ１４を制御し、ヘッド１５の位置決めを行なうサーボ制御を実行する。ＭＰＵ６０は、ディスク１０へのデータのライト動作を制御すると共に、ライトデータの保存先を選択する。また、ＭＰＵ６０は、ディスク１０からのデータのリード動作を制御すると共に、リードデータの処理を制御する。ＭＰＵ６０は、磁気ディスク装置１の各部に接続されている。ＭＰＵ６０は、例えば、ドライバＩＣ２０、Ｒ／Ｗチャネル４０、及びＨＤＣ５０等に電気的に接続されている。  
ＭＰＵ６０は、リード／ライト制御部６１と、ベリファイ処理部６２と、データ復旧部６３と、検出部６４とを備えている。ＭＰＵ６０は、これら各部、例えば、リード／ライト制御部６１、ベリファイ処理部６２、データ復旧部６３、及び検出部６４等の処理をファームウェア上で実行する。なお、ＭＰＵ６０は、これら各部を回路として備えていてもよい。
【００１５】
リード／ライト制御部６１は、ホスト１００からのコマンドに従って、データのリード処理及びライト処理を制御する。リード／ライト制御部６１は、ドライバＩＣ２０を介してＶＣＭ１４を制御し、ヘッド１５をディスク１０上の目標位置に位置決めし、データをリード又はライトする。例えば、ホスト１００からのコマンドでＧリストＧＬに登録された不良セクタ（以下、Ｇセクタと称する場合もある）をリードする指示、又はこのＧセクタにライトする指示を受けた場合、リード／ライト制御部６１は、ＧリストＧＬに基づいて、指示されたＧセクタに対応する代替セクタをリードする、又はこの代替セクタにライトする。所定のセクタでリードエラーが生じた場合、リード／ライト制御部６１は、リードエラーが生じたセクタを再度リードする処理（以下、リトライ処理と称する）を実行する。所定の回数（以下、リトライ閾値と称する）、例えば、数回〜数百回以上の回数のリトライ処理を実行しても所定のセクタでリードエラーが生じた場合、リード／ライト制御部６１は、このセクタがリトライ閾値以上の回数のリトライ処理でもリードエラーとなることを示す信号、例えば、アンリカバードエラーであることを示す信号をホスト１００に出力する。
【００１６】
ベリファイ処理部６２は、ディスク１０の所定のセクタにライトしたデータをリードし、このセクタにライトしたデータを正常にリードできているかリードできてないかを照合（又は、検証）する処理（以下、ベリファイ処理と称する）を実行する。例えば、リードエラーが生じたがリトライ閾値より小さい回数で所定のセクタをリードできた場合、ベリファイ処理６２は、この所定のセクタにベリファイ処理を実行する。所定のセクタのデータを正常にリードできていない場合、ベリファイ処理部６２は、このセクタのデータを復旧して、このセクタを含むトラックを書き直す処理（以下、リライト処理と称する）を実行することを指示する信号を、例えば、後述するデータ復旧部６３に出力する。  
データ復旧部６３は、データを正常にリードできない所定のセクタを復旧し、このセクタを含むトラックにリライト処理を実行する。
【００１７】
検出部６４は、不良セクタとこの不良セクタが拡張し得る方向（以下、拡張方向と称する場合もある）に位置する不良セクタとなる可能性のあるセクタ（以下、拡張不良セクタと称する）とを検出する。例えば、検出部６４は、リトライ閾値以上の回数のリトライ処理でもリードできない、且つリライト処理を実行してもリードできないセクタを不良セクタ（以下、対象不良セクタと称する）として検出する。なお、検出部６４は、リトライ閾値以上の回数のリトライ処理でもリードできないセクタ、又はリトライ処理を実行してもリードできないセクタを対象不良セクタとして検出してもよい。対象不良セクタを検出した場合、検出部６４は、ＰリストＰＬ及びトラックスリップ情報ＴＳＩ等をリードし、ＰリストＰＬ、トラックスリップ情報、及び対象不良セクタ等に基づいて、不良セクタとなる可能性のあるセクタ（以下、拡張不良セクタと称する）を検出する。例えば、検出部６４は、ＰリストＰＬ、トラックスリップ情報ＴＳＩ、及び対象不良セクタに基づいて、ＰリストＰＬに登録された不良セクタ（以下、Ｐセクタと称する）又はトラックスリップ情報に登録された不良トラック（以下、スリップトラックと称する）と対象不良セクタとの間に位置している拡張不良セクタを検出する。また、対象不良セクタがＰセクタ又はスリップトラックに連続して並んでいる場合、検出部６４は、ＰリストＰＬ、トラックスリップ情報ＴＳＩ、及び対象不良セクタに基づいて、Ｐセクタから対象不良セクタに向かう拡張方向で対象不良セクタに連続して並んでいる拡張不良セクタを検出する。以下、「連続して並んでいること」や「直接セクタに接して位置していること」等を含めて「隣接している」と表現する場合もある。
【００１８】
検出部６４は、不良セクタ及び拡張不良セクタをＧリストＧＬ及びＰリストＰＬにそれぞれ登録する。なお、検出した不良セクタをＧリストＧＬ及びＰリストＰＬにそれぞれ登録する場合、検出部６４は、ＧリストＧＬ及びＰリストＰＬで同じ形式になるように不良セクタを登録してもよい。例えば、拡張不良セクタがＰセクタと対象不良セクタとの間に位置している場合、検出部６４は、検出した拡張不良セクタの数が閾値（以下、登録閾値と称する）以下であるか登録閾値よりも大きいか判定する。ここで、登録閾値は、例えば、１〜２である。なお、登録閾値は、例えば、２よりも大きい数であってもよい。拡張不良セクタの数が登録閾値以下であると判定した場合、検出部６４は、対象不良セクタと拡張不良セクタとをＰリストＰＬ及びＧリストＧＬにそれぞれ登録する。このように、検出部６４は、拡張不良セクタ及び対象不良セクタをＰリストＰＬ及びＧリストＧＬにそれぞれ登録することで、対象不良セクタ（以下、現在の対象不良セクタと称する）の近傍に次の対象不良セクタを検出した場合に、次の対象不良セクタと現在の対象不良セクタ（Ｐセクタ）との近傍に位置する拡張不良セクタをＰリスト及びＧリストに登録するか登録しないかをさらに判定できる。拡張不良セクタの数が登録閾値よりも大きいと判定した場合、検出部６４は、拡張不良セクタをＰリストＰＬ及びＧリストＧＬに登録せず、対象不良セクタをＰリストＰＬ及びＧリストにそれぞれ登録する。また、対象不良セクタがＰセクタに隣接している場合、検出部６４は、対象不良セクタとこの対象不良セクタの拡張方向に隣接する登録閾値以下の数の拡張不良セクタとをＰリストＰＬ及びＧリストＧＬにそれぞれ登録する。
【００１９】
検出部６４は、Ｇセクタ（に対応するアドレス）やＰセクタ（に対応するアドレス）を代替セクタに対応させる処理（以下、交代処理と称する場合もある）を実行する。以下、「所定のセクタ（に対応するアドレス）を所定の代替セクタに対応させる（又は割り当て直す）こと」を「交代」と称する。例えば、対象不良セクタ及び拡張不良セクタをＰリストＰＬ及びＧリストＧＬにそれぞれ登録した場合、検出部６４は、ＰリストＰＬ及びＧリストＧＬにそれぞれ登録した対象不良セクタ及び拡張不良セクタを代替セクタにそれぞれ交代する。また、対象不良セクタをＰリストＰＬ及びＧリストＧＬにそれぞれ登録した場合、検出部６４は、ＰリストＰＬ及びＧリストＧＬにそれぞれ登録した対象不良セクタを代替セクタにそれぞれ交代する。
【００２０】
図２は、本実施形態に係る拡張不良セクタの検出方法の一例を示す図である。図２には、ユーザデータ領域１０ａのTrack n-3、Track n-2、Track n-1、Track n、Track n+1、Track n+2、及びTrack n+3を示している。図２において、円周方向に並んでいる各セクタには、セクタ番号k-5、k-4、k-3、k-2、k-1、k、k+1、k+2、k+3、k+4、及びk+5を付している。セクタ番号k-5乃至k+5のセクタは、このセクタ番号の順番で円周方向に連続して並んでいる。同じセクタ番号のセクタは、半径方向に連続して並んでいる。図２に示した例では、Track n-3は、セクタＳ１ｋ−４及び１ｋを含み、Track n-2は、セクタＳ２ｋ−４及びセクタ２ｋを含み、Track n-3は、セクタＳ３ｋ−４及びセクタ３ｋを含む。また、Track nは、セクタＳ４ｋ−４及びセクタ４ｋを含み、Track n+1は、セクタＳ５ｋ−４及びセクタ５ｋを含み、Track n+2は、セクタＳ６ｋ−４及びセクタ６ｋを含み、Track n+3は、セクタＳ７ｋ−４及びセクタ７ｋを含む。セクタＳ１ｋ、Ｓ２ｋ、Ｓ３ｋ、Ｓ４ｋ、Ｓ５ｋ、Ｓ６ｋ、及びＳ７ｋは、この順番で半径方向に連続して並んでいる。また、セクタＳ１ｋ−４、Ｓ２ｋ−４、Ｓ３ｋ―４、Ｓ４ｋ−４、Ｓ５ｋ−４、Ｓ６ｋ−４、及びＳ７ｋ−４は、この順番で半径方向に連続して並んでいる。なお、図２において、図示の便宜上、各トラックが直線上に延出しているように記載しているが、実際には図１に示したディスク１０の形状に沿って曲がっている。図２に示す例では、ＰセクタＰＳは、セクタＳ４ｋ乃至Ｓ７ｋと、セクタＳ４ｋ−４乃至Ｓ７ｋ−４とを含む。図２において、登録閾値は１である。
【００２１】
対象不良セクタＳ２ｋを検出した場合、検出部６４は、ＰリストＰＬ及び対象不良セクタＳ２ｋに基づいて、ＰセクタＰＳであるセクタＳ４ｋ乃至Ｓ７ｋと対象不良セクタＳ２ｋとの間に位置する拡張不良セクタＳ３ｋを検出する。検出部６４は、検出した拡張不良セクタの数（１）が登録閾値（１）以下であるか登録閾値（１）よりも大きい数であるかを判定する。検出部６４は、拡張不良セクタの数（１）が登録閾値（１）以下であると判定し、対象不良セクタＳ２ｋ及び拡張不良セクタＳ３ｋをＰリストＰＬ及びＧリストＧＬにそれぞれ登録し、ＰリストＰＬ及びＧリストＧＬにそれぞれ登録した不良セクタＳ２ｋ及び拡張不良セクタＳ３ｋを代替セクタにそれぞれ交代する。  
また、ＰセクタＰＳであるセクタＳ４ｋ−４乃至Ｓ７ｋ−４に隣接する対象不良セクタＳ３ｋ−４を検出した場合、検出部６４は、ＰリストＰＬ及び対象不良セクタＳ３ｋ−４に基づいて、対象不良セクタＳ３ｋ−４と対象不良セクタＳ３ｋ−４の拡張方向に隣接する拡張不良セクタＳ３ｋ−４とをＰリストＰＬ及びＧリストＧＬにそれぞれ登録し、ＰリストＰＬ及びＧリストＧＬにそれぞれ登録した対象不良セクタＳ３ｋ−４と拡張不良セクタＳ２ｋ−４とを代替セクタにそれぞれ交代する。
【００２２】
図３は、本実施形態に係る拡張不良セクタの検出方法の一例を示す図である。図３に示した例では、Track nは、セクタＳ４ｋ−５、セクタＳ４ｋ−４、セクタＳ４ｋ−３、セクタＳ４ｋ−２、セクタＳ４ｋ−１、セクタＳ４ｋ、セクタＳ４ｋ＋１、セクタＳ４ｋ＋２、セクタＳ４ｋ＋３、セクタＳ４ｋ＋４、及びＳ４ｋ＋５を含む。セクタＳ４ｋ−５乃至Ｓ４ｋ＋５は、円周方向に連続して並んでいる。図３に示す例では、ＰセクタＰＳは、セクタＳ５ｋ乃至Ｓ７ｋを含む。スリップトラックＳＴは、Track nを含む。図３において、登録閾値は１である。
【００２３】
対象不良セクタＳ２ｋを検出した場合、検出部６４は、トラックスリップ情報ＴＳＩ及び対象不良セクタＳ２ｋに基づいて、スリップトラックＳＴであるTrack nと対象不良セクタＳ２ｋとの間に位置する拡張不良セクタＳ３ｋを検出する。検出部６４は、検出した拡張不良セクタの数（１）が登録閾値（１）以下であるか登録閾値（１）よりも大きい数であるかを判定する。検出部６４は、拡張不良セクタの数（１）が登録閾値（１）以下であると判定し、対象不良セクタＳ２ｋ及び拡張不良セクタＳ３ｋをＰリストＰＬ及びＧリストＧＬにそれぞれ登録し、ＰリストＰＬ及びＧリストＧＬにそれぞれ登録した不良セクタＳ２ｋ及び拡張不良セクタＳ３ｋを代替セクタにそれぞれ交代する。
【００２４】
図４は、本実施形態に係る拡張不良セクタの検出方法の一例を示す図である。図３に示す例では、ＰセクタＰＳは、セクタＳ４ｋ−４乃至Ｓ４ｋ＋１を含む。図３において、登録閾値は１である。  
対象不良セクタＳ４ｋ＋３を検出した場合、検出部６４は、ＰリストＰＬ及び対象不良セクタＳ４ｋ＋３に基づいて、ＰセクタＰＳであるセクタＳ４ｋ−４乃至Ｓ４ｋ＋１と対象不良セクタＳ４ｋ＋３との間に位置する拡張不良セクタＳ４ｋ＋２を検出する。検出部６４は、検出した拡張不良セクタの数（１）が登録閾値（１）以下であるか登録閾値（１）よりも大きい数であるかを判定する。検出部６４は、拡張不良セクタの数（１）が登録閾値（１）以下であると判定し、対象不良セクタＳ４ｋ＋３及び拡張不良セクタＳ４ｋ＋２をＰリストＰＬ及びＧリストＧＬにそれぞれ登録し、ＰリストＰＬ及びＧリストＧＬにそれぞれ登録した対象不良セクタＳ４ｋ＋３及び拡張不良セクタＳ４ｋ＋２を代替セクタにそれぞれ交代する。また、ＰセクタＰＳであるセクタＳ４ｋ−４乃至Ｓ４ｋ＋１に半径方向で隣接する対象不良セクタを検出した場合、検出部６４は、ＰリストＰＬ及び対象不良セクタに基づいて、対象不良セクタとこの対象不良セクタの拡張方向に隣接する登録閾値（１）以下の数の拡張不良セクタとをＰリストＰＬ及びＧリストＧＬにそれぞれ登録し、ＰリストＰＬ及びＧリストにそれぞれ登録した対象不良セクタと登録閾値（１）以下の数の拡張不良セクタとを代替セクタにそれぞれ交代する。
【００２５】
図５は、本実施形態に係る拡張不良セクタの検出方法の一例を示す図である。図４に示した例では、Track n-3は、セクタＳ１ｋ＋３を含み、Track n-2は、セクタＳ２ｋ＋２を含み、Track n-1は、セクタＳ３ｋ＋１を含む。また、Track nは、セクタＳ４ｋを含み、Track n+1は、セクタＳ５ｋ−１を含み、Track n+2は、セクタＳ６ｋ−２を含み、Track n+3は、セクタＳ７ｋ−３を含む。セクタＳ１ｋ＋３、セクタＳ２ｋ＋２、セクタＳ３ｋ＋１、セクタＳ４ｋ、セクタＳ５ｋ−１、セクタＳ６ｋ−２、及びセクタＳ７ｋ−３は、この順番で半径方向及び円周方向に交差する方向（以下、斜め方向と称する）に連続して並んでいる。図５に示す例では、ＰセクタＰＳは、セクタＳ４ｋ、セクタＳ５ｋ−１、セクタＳ６ｋ−２、及びセクタＳ７ｋ−３を含む。図４において、登録閾値は１である。
【００２６】
対象不良セクタＳ２ｋ＋２を検出した場合、検出部６４は、ＰリストＰＬ及び対象不良セクタＳ２ｋ＋２に基づいて、ＰセクタＰＳであるセクタＳ４ｋ、セクタＳ５ｋ−１、セクタＳ６ｋ−２、及びセクタＳ７ｋ−３と対象不良セクタＳ２ｋ＋２との間に位置する拡張不良セクタＳ３ｋ＋１を検出する。検出部６４は、検出した拡張不良セクタの数（１）が登録閾値（１）以下であるか登録閾値（１）よりも大きい数であるかを判定する。検出部６４は、拡張不良セクタの数（１）が登録閾値（１）以下であると判定し、対象不良セクタＳ２ｋ＋２及び拡張不良セクタＳ３ｋ＋１をＰリストＰＬ及びＧリストＧＬにそれぞれ登録し、ＰリストＰＬ及びＧリストＧＬにそれぞれ登録した対象不良セクタＳ２ｋ＋２及び拡張不良セクタＳ３ｋ＋１を代替セクタにそれぞれ交代する。なお、Track nがスリップトラックＳＴである場合に対象不良セクタＳ２ｋ＋２を検出した際に、検出部６４は、トラックスリップ情報ＴＳＩ、及び対象不良セクタＳ２ｋに基づいて、Track nと対象不良セクタＳ２ｋ＋２との間に位置する拡張不良セクタＳ３ｋ＋１を検出する。また、ＰセクタＰＳであるセクタＳ４ｋ、セクタＳ５ｋ−１、セクタＳ６ｋ−２、及びセクタＳ７ｋ−３に斜め方向で隣接する対象不良セクタを検出した場合、検出部６４は、ＰリストＰＬ及び対象不良セクタに基づいて、対象不良セクタとこの対象不良セクタの拡張方向、例えば、斜め方向に隣接する登録閾値（１）以下の数の拡張不良セクタとをＰリストＰＬ及びＧリストＧＬにそれぞれ登録し、ＰリストＰＬ及びＧリストＧＬにそれぞれ登録した対象不良セクタと登録閾値（１）以下の数の拡張不良セクタを代替セクタにそれぞれ交代する。
【００２７】
図６は、本実施形態に係るリード処理方法の一例を示すフローチャートである。  
ＭＰＵ６０は、ＧリストＧＬに基づいて、所定のセクタをリードし（Ｂ６０１）、所定のセクタでリードエラーが生じているかリードエラーが生じていないかを判定する（Ｂ６０２）。リードエラーが生じていないと判定した場合（Ｂ６０２のＮＯ）、ＭＰＵ６０は、処理を終了する。リードエラーが生じていると判定した場合（Ｂ６０２のＹＥＳ）、ＭＰＵ６０は、所定のセクタをリトライ閾値よりも小さい回数のリトライ処理でリードできるかリトライ閾値以上の回数のリトライ処理でもリードできないかを判定する（Ｂ６０３）。リトライ閾値以上の回数のリトライ処理でもリードできないと判定した場合（Ｂ６０３のＮＯ）、ＭＰＵ６０は、リトライ閾値以上の回数のリトライ処理でもリードエラーとなることを示す信号をホスト１００に出力し（Ｂ６０４）、処理を終了する。リトライ閾値よりも小さい回数のリトライ処理でリードできると判定した場合、ＭＰＵ６０は、所定のセクタにリライト処理を実行するか実行しないかを判定する（Ｂ６０５）。例えば、リトライ閾値よりも小さい回数のリトライ処理でリードできると判定した場合、ＭＰＵ６０は、所定のセクタにベリファイ処理を実行し、所定のセクタにライトしたデータを正常にリードできているかリードできていないかを判定する。リライト処理を実行しないと判定した場合（Ｂ６０５のＮＯ）、ＭＰＵ６０は、処理を終了する。例えば、ベリファイ処理により所定のセクタのデータを正常にリードできていると判定した場合、ＭＰＵ６０は、処理を終了する。リライト処理を実行すると判定した場合（Ｂ６０５のＹＥＳ）、ＭＰＵ６０は、リライト処理を実行した所定のセクタでリードエラーが生じているかリードエラーが生じていないかを再度判定する（Ｂ６０６）。例えば、所定のセクタのデータを正常にリードできていないと判定した場合、ＭＰＵ６０は、このセクタのデータを復旧し、データを復旧したセクタを含むトラックにリライト処理を実行し、リライト処理を実行した後でこのセクタでリードエラーが生じているか生じていないかを再度判定する。
【００２８】
リードエラーが生じていないと判定した場合（Ｂ６０６のＮＯ）、ＭＰＵ６０は、処理を終了する。リードエラーが生じていると判定した場合（Ｂ６０６のＹＥＳ）、ＭＰＵ６０は、ＰリストＰＬ及びトラックスリップ情報ＴＳＩ等をリードし（Ｂ６０７）、拡張不良セクタの数が登録閾値よりも大きいか登録閾値以下であるかを判定する（Ｂ６０８）。例えば、ＭＰＵ６０は、リードエラーが生じているセクタ（対象不良セクタ）とＰセクタ又はスリップトラックとの間に位置する拡張不良セクタを検出し、検出した拡張不良セクタの数が登録閾値以下であるか登録閾値より大きいかを判定する。また、ＭＰＵ６０は、対象不良セクタの拡張方向に隣接する対象不良セクタを検出した場合、対象不良セクタの拡張方向に隣接する閾値以下の数の拡張不良セクタを登録し、Ｂ６１１の処理へ進む。拡張不良セクタの数が登録閾値より大きいと判定した場合（Ｂ６０８のＮＯ）、ＭＰＵ６０は、対象不良セクタをＰリストＰＬ及びＧリストＧＬにそれぞれ登録し（Ｂ６０９）、ＰリストＰＬ及びＧリストＧＬにそれぞれ登録した対象不良セクタを代替セクタにそれぞれ交代し（Ｂ６１０）、処理を終了する。拡張不良セクタの数が登録閾値以下であると判定した場合（Ｂ６０８のＹＥＳ）、ＭＰＵ６０は、対象不良セクタ及び拡張不良セクタをＰリストＰＬ及びＧリストＧＬにそれぞれ登録し（Ｂ６１１）、ＰリストＰＬ及びＧリストＧＬにそれぞれ登録した対象不良セクタ及び拡張不良セクタを代替セクタにそれぞれ交代し（Ｂ６１２）、処理を終了する。
【００２９】
本実施形態によれば、磁気ディスク装置１は、対象不良セクタと対象不良セクタの拡張方向に位置する拡張不良セクタとを検出し、対象不良セクタと拡張不良セクタとをＧリストＧＬ及びＰリストＰＬにそれぞれ登録し、ＧリストＧＬ及びＰリストＰＬに登録した対象不良セクタ及び拡張不良セクタを代替セクタにそれぞれ交代する。例えば、拡張不良セクタがＰセクタと対象不良セクタとの間に位置している場合、磁気ディスク装置１は、検出した拡張不良セクタの数が登録閾値以下であるか登録閾値よりも大きいかを判定する。拡張不良セクタの数が登録閾値以下であると判定した場合、検出部６４は、対象不良セクタと拡張不良セクタとをＰリストＰＬ及びＧリストＧＬにそれぞれ登録し、ＰリストＰＬ及びＧリストＧＬに登録した対象不良セクタと拡張不良セクタとをそれぞれ代替セクタに交代する。また、対象不良セクタがＰセクタに隣接している場合、検出部６４は、対象不良セクタとこの対象不良セクタの拡張方向に隣接する登録閾値以下の数の拡張不良セクタとをＰリストＰＬ及びＧリストＧＬにそれぞれ登録し、ＰリストＰＬ及びＧリストＧＬに登録した対象不良セクタと拡張不良セクタとをそれぞれ代替セクタに交代する。前述したように、磁気ディスク装置は、後発不良セクタとなる可能性のあるセクタを事前に検出し、検出したセクタをＧリストＧＬ及びＰリストＰＬにそれぞれ登録し、ＧリストＧＬ及びＰリストＰＬにそれぞれ登録したセクタを代替セクタにそれぞれ交代する。そのため、磁気ディスク装置１は、不良セクタになり得るセクタを予めＰリストＰＬ及びＧリストに登録することで、リトライ処理が頻発することを防止することができる。つまり、磁気ディスク装置１は、リード性能の低下を防止することができる。
【００３０】
次に、変形例に係る磁気ディスク装置について説明する。変形例において、前述の実施形態と同一の部分には同一の参照符号を付してその詳細な説明を省略する。  
（変形例）  
変形例の磁気ディスク装置１は、不良セクタをＧリストに登録する処理が前述の実施形態と異なる。  
対象不良セクタを検出した場合、検出部６４は、対象不良セクタをＧリストに登録し、Ｇリストに登録した対象不良セクタ（以下、対象Ｇセクタと称する）を代替セクタに交代する。検出部６４は、ＰリストＰＬ、トラックスリップ情報ＴＳＩ、及びＧリストＧＬ等をリードし、ＰリストＰＬ、トラックスリップ情報ＴＳＩ、及び対象Ｇセクタに基づいて、拡張不良セクタを検出する。例えば、検出部６４は、ＰリストＰＬ、トラックスリップ情報ＴＳＩ、及びＧリストＧＬに基づいて、Ｐセクタ又はスリップトラックと対象Ｇセクタとの間に位置している拡張不良セクタを検出する。また、対象ＧセクタがＰセクタ又はスリップトラックに隣接している場合、検出部６４は、ＰリストＰＬ、トラックスリップ情報ＴＳＩ、及び対象Ｇセクタに基づいて、対象Ｇセクタの拡張方向に隣接している拡張不良セクタを検出する。
【００３１】
例えば、拡張不良セクタがＰセクタと対象Ｇセクタとの間に位置している場合、検出部６４は、検出した拡張不良セクタの数が登録閾値以下であるか登録閾値よりも大きいか判定する。拡張不良セクタの数が登録閾値以下であると判定した場合、検出部６４は、拡張不良セクタをＰリストＰＬ及びＧリストＧＬにそれぞれ登録し、対象ＧセクタをＰリストＰＬに登録する。この場合、検出部６４は、ＰリストＰＬに登録した拡張不良セクタ及び対象Ｇセクタを代替セクタにそれぞれ交代し、ＧリストＧＬに登録した拡張不良セクタを代替セクタに交代する。拡張不良セクタの数が登録閾値よりも大きいと判定した場合、検出部６４は、拡張不良セクタをＰリストＰＬ及びＧリストＧＬに登録せず、対象ＧセクタをＰリストＰＬに登録する。この場合、検出部６４は、ＰリストＰＬに登録した対象Ｇセクタを代替セクタに交代する。また、対象ＧセクタがＰセクタに隣接している場合、検出部６４は、対象ＧセクタをＰリストＰＬに登録し、この対象Ｇセクタの拡張方向に隣接する登録閾値以下の数の拡張不良セクタをＰリストＰＬ及びＧリストＧＬにそれぞれ登録する。この場合、検出部６４は、ＰリストＰＬに登録した対象Ｇセクタと登録閾値以下の拡張不良セクタとを代替セクタにそれぞれ交代し、ＧリストＧＬに登録した登録閾値以下の拡張不良セクタを所定の代替セクタに交代する。
【００３２】
図７は、変形例に係るリード処理方法の一例を示すフローチャートである。  
ＭＰＵ６０は、Ｂ６０１乃至Ｂ６０６までの処理を実行し、リライト処理後にリードエラーが生じているセクタ（対象不良セクタ）をＧリストＧＬに登録し（Ｂ７０１）、ＧリストＧＬに登録した対象不良セクタ（対象Ｇセクタ）を代替セクタに交代する（Ｂ７０２）。ＭＰＵ６０は、ＰリストＰＬ、ＧリストＧＬ、及びトラックスリップ情報ＴＳＩ等をリードし（Ｂ７０３）、拡張不良セクタの数が登録閾値よりも大きいか登録閾値以下であるかを判定する（Ｂ６０８）。拡張不良セクタの数が登録閾値より大きいと判定した場合（Ｂ６０８のＮＯ）、ＭＰＵ６０は、対象ＧセクタをＰリストＰＬに登録し（Ｂ７０５）、ＰリストＰＬに登録した対象Ｇセクタを代替セクタと交代し（Ｂ７０６）、処理を終了する。
【００３３】
変形例によれば、磁気ディスク装置１は、対象Ｇセクタと対象Ｇセクタの拡張方向に位置する拡張不良セクタとを検出し、対象Ｇセクタと拡張不良セクタとをＧリストＧＬ及びＰリストＰＬにそれぞれ登録し、ＧリストＧＬ及びＰリストＰＬに登録した対象Ｇセクタ及び拡張不良セクタを代替セクタにそれぞれ交代する。そのため、磁気ディスク装置１は、リード性能の低下を防止することができる。  
前述した実施形態及び変形例の構成は、通常の記録配置方法の磁気ディスク装置１だけでなく、１つ前にライトした隣接するトラックに現在のトラックの一部を重ねてライトする瓦記録（Shingled write Magnetic Recording：ＳＭＲ）配置方法にも適用することができる。
【００３４】
いくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００３５】
１…磁気ディスク装置、１０…磁気ディスク、１０ａ…ユーザデータ領域、１０ｂ…システムエリア、１２…スピンドルモータ（ＳＰＭ）、１３…アーム、１４…ボイスコイルモータ（ＶＣＭ）、１５…ヘッド、１５Ｗ…ライトヘッド、１５Ｒ…リードヘッド、２０…ドライバＩＣ、３０…ヘッドアンプＩＣ、４０…リード／ライト（Ｒ／Ｗ）チャネル、５０…ハードディスクコントローラ（ＨＤＣ）、６０…マイクロプロセッサ（ＭＰＵ）、７０…揮発性メモリ、８０…バッファメモリ、９０…不揮発性メモリ、１００…ホストシステム（ホスト）、１３０…システムコントローラ。
【図１】
2019164869.tif 000003
【図２】
2019164869.tif 000004
【図３】
2019164869.tif 000005
【図４】
2019164869.tif 000006
【図５】
2019164869.tif 000007
【図６】
2019164869.tif 000008
【図７】
2019164869.tif 000009