(57)【要約】【課題】  データの信頼性を向上する磁気ディスク装置及びリフレッシュ処理方法を提供することである。【解決手段】  本実施形態に係る磁気ディスク装置は、ディスクと、前記ディスクに対してデータをライトし、前記ディスクからデータをリードするヘッドと、前記ディスクを円周方向に複数の区分領域に区分し、前記ディスクの第１トラックの前記複数の区分領域の半径方向にそれぞれ隣接する前記複数の区分領域の内の１つの前記区分領域にデータをライトする度に第１値が加算される第１カウント回数を前記第１トラックの前記区分領域毎に保持し、前記第１トラックの前記複数の区分領域にそれぞれ対応する前記複数の第１カウント回数の内の最も大きい第１最大値に基づいて前記第１トラックにライトされたデータを書き直すコントローラと、を備える。【選択図】図１
2019160376.tif 000002
【特許請求の範囲】
【請求項１】
ディスクと、
前記ディスクに対してデータをライトし、前記ディスクからデータをリードするヘッドと、
前記ディスクを円周方向に複数の区分領域に区分し、前記ディスクの第１トラックの前記複数の区分領域の半径方向にそれぞれ隣接する前記複数の区分領域の内の１つの前記区分領域にデータをライトする度に第１値が加算される第１カウント回数を前記第１トラックの前記区分領域毎に保持し、前記第１トラックの前記複数の区分領域にそれぞれ対応する前記複数の第１カウント回数の内の最も大きい第１最大値に基づいて前記第１トラックにライトされたデータを書き直すコントローラと、を備える磁気ディスク装置。
【請求項２】
前記コントローラは、前記第１最大値が第１閾値よりも大きい場合に前記第１トラックにライトされたデータを書き直す、請求項１に記載の磁気ディスク装置。
【請求項３】
前記コントローラは、前記第１最大値が前記第１閾値以下である場合に前記第１最大値と前記複数の第１カウント回数の内の最も小さい第１最小値との第１差分値が第２閾値よりも大きい場合に前記第１トラックにライトされたデータを書き直す、請求項２に記載の磁気ディスク装置。
【請求項４】
前記コントローラは、前記第１トラックの前記半径方向に隣接する第２トラックの前記複数の区分領域の前記半径方向にそれぞれ隣接する前記複数の区分領域の内の１つの前記区分領域にデータをライトする度に前記第１値が加算される第２カウント回数を前記第２トラックの前記区分領域毎に保持し、前記第１差分値が前記第２閾値以下であり、前記第２トラックの前記複数の区分領域にそれぞれ対応する前記複数の第２カウント回数の内の最も大きい第２最大値と前記第１最大値との第２差分値が第３閾値よりも大きい場合に、前記第１トラックにライトされたデータを書き直す、請求項３に記載の磁気ディスク装置。
【請求項５】
前記コントローラは、前記第１トラックに前記第２トラックと反対方向に隣接する第３トラックの前記複数の区分領域の前記半径方向にそれぞれ隣接する前記複数の区分領域の内の前記区分領域にデータをライトする毎に前記第１値が加算される第３カウント回数を前記第３トラックの前記複数の区分領域毎に保持し、前記第３トラックの前記複数の区分領域にそれぞれ対応する前記複数の第３カウント回数の内の最も大きい第３最大値と前記第１最大値との第３差分値が前記第３閾値よりも大きい場合に前記第１トラックにライトされたデータを書き直す、請求項４に記載の磁気ディスク装置。
【請求項６】
前記コントローラは、前記複数の第１カウント回数の内の最も小さい第１最小値と前記第１最大値との第１差分値が第１閾値よりも大きい場合に前記第１トラックにライトされたデータを書き直す、請求項１に記載の磁気ディスク装置。
【請求項７】
前記コントローラは、前記第１トラックの前記半径方向に隣接する第２トラックの前記複数の区分領域の前記半径方向にそれぞれ隣接する前記複数の区分領域の内の１つの前記区分領域にデータをライトする度に前記第１値が加算される第２カウント回数を前記第２トラックの前記区分領域毎に保持し、前記第２トラックの前記複数の区分領域にそれぞれ対応する前記複数の第２カウント回数の内の最も大きい第２最大値と前記第１最大値との第１差分値が第１閾値よりも大きい場合に前記第１トラックにライトされたデータを書き直す、請求項１に記載の磁気ディスク装置。
【請求項８】
前記コントローラは、前記第１トラックに前記第２トラックと反対方向に隣接する第３トラックの前記複数の区分領域の前記半径方向にそれぞれ隣接する前記複数の区分領域の内の前記区分領域にデータをライトする毎に前記第１値が加算される第３カウント回数を前記第３トラックの前記複数の区分領域毎に保持し、前記第１差分値が前記第１閾値以下であり、前記第３トラックの前記複数の区分領域にそれぞれ対応する前記複数の第３カウント回数の内の最も大きい第３最大値と前記第１最大値との第２差分値が前記第１閾値よりも大きい場合に、前記第１トラックにライトされたデータを書き直す、請求項７に記載の磁気ディスク装置。
【請求項９】
ディスクと、
前記ディスクに対してデータをライトし、前記ディスクからデータをリードするヘッドと、
前記ディスクの半径方向に区分した複数の記録領域を前記ディスクの円周方向に複数の区分領域にそれぞれ区分し、前記半径方向に隣接する区分領域にデータをライトする度に第１値を加算するカウント回数を前記区分領域毎に保持し、前記複数の区分領域にそれぞれ対応する前記複数のカウント回数でそれぞれ最も大きい複数の最大値に基づいて前記複数の記録領域にライトされたデータを書き直すコントローラと、を備える磁気ディスク装置。
【請求項１０】
ディスクと、前記ディスクに対してデータをライトし、前記ディスクからデータをリードするヘッドとを備える磁気ディスク装置に適用されるリフレッシュ方法であって、
前記ディスクを円周方向に複数の区分領域に区分し、
前記ディスクの第１トラックの前記複数の区分領域の半径方向にそれぞれ隣接する前記複数の区分領域の内の１つの前記区分領域にデータをライトする度に第１値が加算される第１カウント回数を前記第１トラックの前記区分領域毎に保持し、
前記第１トラックの前記複数の区分領域にそれぞれ対応する前記複数の第１カウント回数の内の最も大きい第１最大値に基づいて前記第１トラックにライトされたデータを書き直すリフレッシュ処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、磁気ディスク装置及びリフレッシュ処理方法に関する。
【背景技術】
【０００２】
磁気ディスク装置では、データをライトした場合にヘッドからの漏れ磁束等の影響（Adjacent Track Interference : ATI）により、データが消去されるサイドイレーズが発生し得る。ＡＴＩは、例えば、ヘッドの特性、Track per Inch(TPI)設定値、及びライト電流設定値などによって異なる。サイドイレーズを防止するために、磁気ディスク装置は、所定のトラックの周辺トラックにデータをライトした回数が規定回数に達した場合に、所定のトラックのデータを書き直す機能（リフレッシュ機能）を有している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−１４６７５３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明の実施形態が解決しようとする課題は、データの信頼性を向上する磁気ディスク装置及びリフレッシュ処理方法を提供することである。
【課題を解決するための手段】
【０００５】
本実施形態に係る磁気ディスク装置は、ディスクと、前記ディスクに対してデータをライトし、前記ディスクからデータをリードするヘッドと、前記ディスクを円周方向に複数の区分領域に区分し、前記ディスクの第１トラックの前記複数の区分領域の半径方向にそれぞれ隣接する前記複数の区分領域の内の１つの前記区分領域にデータをライトする度に第１値が加算される第１カウント回数を前記第１トラックの前記区分領域毎に保持し、前記第１トラックの前記複数の区分領域にそれぞれ対応する前記複数の第１カウント回数の内の最も大きい第１最大値に基づいて前記第１トラックにライトされたデータを書き直すコントローラと、を備える。
【図面の簡単な説明】
【０００６】
【図１】図１は、実施形態に係る磁気ディスク装置の構成を示すブロック図である。
【図２】図２は、カウント領域の一例を示す模式図である。
【図３】図３は、管理テーブルの一例を示す模式図である。
【図４】図４は、管理テーブルの一例を示す模式図である。
【図５】図５は、管理テーブルの一例を示す模式図である。
【図６】図６は、実施形態に係るリフレッシュ処理方法の一例を示すフローチャートである。
【図７】図７は、変形例１に係る管理テーブルの一例を示す模式図である。
【図８】図８は、変形例２に係るリフレッシュ処理方法の一例を示すフローチャートである。
【図９】図９は、変形例３に係るリフレッシュ処理方法の一例を示すフローチャートである。
【図１０】図１０は、変形例４に係るリフレッシュ処理方法の一例を示すフローチャートである。
【発明を実施するための形態】
【０００７】
以下、実施の形態について図面を参照して説明する。なお、図面は、一例であって、発明の範囲を限定するものではない。  
（実施形態）  
図１は、実施形態に係る磁気ディスク装置１の構成を示すブロック図である。  
磁気ディスク装置１は、後述するヘッドディスクアセンブリ（ＨＤＡ）と、ドライバＩＣ２０と、ヘッドアンプ集積回路（以下、ヘッドアンプＩＣ、又はプリアンプ）３０と、揮発性メモリ７０と、バッファメモリ（バッファ）８０と、不揮発性メモリ９０と、１チップの集積回路であるシステムコントローラ１３０とを備える。また、磁気ディスク装置１は、ホストシステム（以下、単に、ホストと称する）１００と接続される。
【０００８】
ＨＤＡは、磁気ディスク（以下、ディスクと称する）１０と、スピンドルモータ（以下、ＳＰＭと称する）１２と、ヘッド１５を搭載しているアーム１３と、ボイスコイルモータ（以下、ＶＣＭと称する）１４とを有する。ディスク１０は、スピンドルモータ１２に取り付けられ、スピンドルモータ１２の駆動により回転する。アーム１３及びＶＣＭ１４は、アクチュエータを構成している。アクチュエータは、ＶＣＭ１４の駆動により、アーム１３に搭載されているヘッド１５をディスク１０上の目標位置まで移動制御する。ディスク１０およびヘッド１５は、２つ以上の数が設けられてもよい。  
ディスク１０は、そのデータをライト可能な領域に、ユーザから利用可能なユーザデータ領域１０ａと、システム管理に必要な情報をライトするシステムエリア１０ｂとが割り当てられている。以下、ディスク１０の半径方向に直交する方向を円周方向と称する。  
ヘッド１５は、スライダを本体として、当該スライダに実装されているライトヘッド１５Ｗとリードヘッド１５Ｒとを備える。ライトヘッド１５Ｗは、ディスク１０上にデータをライトする。リードヘッド１５Ｒは、ディスク１０上のデータトラックに記録されているデータをリードする。
【０００９】
ドライバＩＣ２０は、システムコントローラ１３０（詳細には、後述するＭＰＵ６０）の制御に従って、ＳＰＭ１２およびＶＣＭ１４の駆動を制御する。  
ヘッドアンプＩＣ（プリアンプ）３０は、リードアンプ及びライトドライバを備えている。リードアンプは、ディスク１０からリードされたリード信号を増幅して、システムコントローラ１３０（詳細には、後述するリード／ライト（Ｒ／Ｗ）チャネル４０）に出力する。ライトドライバは、Ｒ／Ｗチャネル４０から出力される信号に応じたライト電流をヘッド１５に出力する。
【００１０】
揮発性メモリ７０は、電力供給が断たれると保存しているデータが失われる半導体メモリである。揮発性メモリ７０は、磁気ディスク装置１の各部での処理に必要なデータ等を格納する。揮発性メモリ７０は、例えば、ＤＲＡＭ（Dynamic Random Access Memory）、又はＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）である。  
バッファメモリ８０は、磁気ディスク装置１とホスト１００との間で送受信されるデータ等を一時的に記録する半導体メモリである。なお、バッファメモリ８０は、揮発性メモリ７０と一体に構成されていてもよい。バッファメモリ８０は、例えば、ＤＲＡＭ、ＳＲＡＭ（Static Random Access Memory）、ＳＤＲＡＭ、ＦｅＲＡＭ（Ferroelectric Random Access memory）、又はＭＲＡＭ（Magnetoresistive Random Access Memory）等である。  
不揮発性メモリ９０は、電力供給が断たれても保存しているデータを記録する半導体メモリである。不揮発性メモリ９０は、例えば、ＮＯＲ型またはＮＡＮＤ型のフラッシュＲＯＭ（Flash Read Only Memory :ＦＲＯＭ）である。
【００１１】
システムコントローラ（コントローラ）１３０は、例えば、複数の素子が単一チップに集積されたSystem-on-a-Chip(ＳｏＣ)と称される大規模集積回路（ＬＳＩ）を用いて実現される。システムコントローラ１３０は、リード／ライト（Ｒ／Ｗ）チャネル４０と、ハードディスクコントローラ（ＨＤＣ）５０と、マイクロプロセッサ（ＭＰＵ）６０とを含む。システムコントローラ１３０は、ドライバＩＣ２０、ヘッドアンプＩＣ３０、揮発性メモリ７０、バッファメモリ８０、不揮発性メモリ９０、及びホストシステム１００に電気的に接続されている。  
Ｒ／Ｗチャネル４０は、後述するＭＰＵ６０からの指示に応じて、ディスク１０からホスト１００に転送されるリードデータ及びホスト１００から転送されるライトデータの信号処理を実行する。Ｒ／Ｗチャネル４０は、リードデータの信号品質を測定する回路、又は機能を有している。Ｒ／Ｗチャネル４０は、例えば、ヘッドアンプＩＣ３０、ＨＤＣ５０、及びＭＰＵ６０等に電気的に接続されている。  
ＨＤＣ５０は、後述するＭＰＵ６０からの指示に応じて、ホスト１００とＲ／Ｗチャネル４０との間のデータ転送を制御する。ＨＤＣ５０は、例えば、Ｒ／Ｗチャネル４０、ＭＰＵ６０、揮発性メモリ７０、バッファメモリ８０、及び不揮発性メモリ９０等に電気的に接続されている。
【００１２】
ＭＰＵ６０は、磁気ディスク装置１の各部を制御するメインコントローラである。ＭＰＵ６０は、ドライバＩＣ２０を介してＶＣＭ１４を制御し、ヘッド１５の位置決めを行なうサーボ制御を実行する。ＭＰＵ６０は、ディスク１０へのデータのライト動作を制御すると共に、ライトデータの保存先を選択する。また、ＭＰＵ６０は、ディスク１０からのデータのリード動作を制御すると共に、リードデータの処理を制御する。ＭＰＵ６０は、磁気ディスク装置１の各部に接続されている。ＭＰＵ６０は、例えば、ドライバＩＣ２０、Ｒ／Ｗチャネル４０、及びＨＤＣ５０等に電気的に接続されている。  
ＭＰＵ６０は、リード／ライト制御部６１と、カウンタ６２と、リフレッシュ処理部６３とを備えている。ＭＰＵ６０は、これら各部、例えば、リード／ライト制御部６１、カウンタ６２、及びリフレッシュ処理部６３等の処理をファームウェア上で実行する。なお、ＭＰＵ６０は、これら各部を回路として備えていてもよい。  
リード／ライト制御部６１は、ホスト１００からのコマンドに従って、データのリード処理及びライト処理を制御する。リード／ライト制御部６１は、ドライバＩＣ２０を介してＶＣＭ１４を制御し、ヘッド１５をディスク１０上の目標位置に位置決めし、データをリード又はライトする。
【００１３】
カウンタ６２は、半径方向に隣接する領域（以下、隣接領域と称する）にデータをライトされた回数（以下、カウント回数又はライト回数と称する）をカウントする。カウンタ６２は、ディスク１０を半径方向に配置された複数の記録領域、例えば、複数のトラックを円周方向に複数の領域（以下、カウント領域又は区分領域と称する）ＣＲに区分する。１つのカウント領域ＣＲは、例えば、ディスク１０の少なくとも１つのセクタを含む。一例では、１つのカウント領域ＣＲは、セクタよりも大きい領域である。カウンタ６２は、例えば、各トラックにおいてカウント領域毎にカウント回数をカウントする。なお、カウンタ６２は、隣接領域にデータをライトされた場合にカウント回数をカウントするとしたが、隣接領域よりも半径方向に離れた領域にデータがライトされた場合にもカウント回数をカウントしてもよい。
【００１４】
図２は、カウント領域ＣＲの一例を示す模式図である。以下、半径方向において、ディスク１０の中心からディスク１０の外周に向かう方向（図２の半径方向の矢印の先端が向かう方向）を外側と称し、外側の反対方向を内側と称する。また、ディスク１０において、外側に位置する領域を外周領域ＯＲと称し、内側に位置する領域を内周領域ＩＲと称し、外周領域ＯＲと内周領域ＩＲとの間に位置する領域を中周領域ＭＲと称する。図２には、内側から外側に連続して並んでいるＴｒａｃｋ  Ｎ−２、Ｔｒａｃｋ  Ｎ−１、Ｔｒａｃｋ  Ｎ、Ｔｒａｃｋ  Ｎ＋１、Ｔｒａｃｋ  Ｎ＋２を示している。  
図２に示す例では、カウンタ６２は、ディスク１０、例えば、ユーザデータ領域１０ａを円周方向にカウント領域ＣＲ１、ＣＲ２、及びＣＲ３に区分している。つまり、カウンタ６２は、Ｔｒａｃｋ  Ｎ−２乃至Ｔｒａｃｋ  Ｎ＋２をカウント領域ＣＲ１乃至ＣＲ３にそれぞれ区分している。Ｔｒａｃｋ  Ｎのカウント領域ＣＲ１にデータがライトされた場合、カウンタ６２は、Ｔｒａｃｋ  Ｎ＋１及びＴｒａｃｋ  Ｎ−１のカウント領域ＣＲ１のカウント回数をカウントする。なお、カウンタ６２は、メモリ、例えば、不揮発性メモリ９０の容量に応じて、ディスク１０を円周方向に３以外の数、例えば、２つのカウント領域ＣＲに区分してもよいし、４つのカウント領域ＣＲに区分してもよい。
【００１５】
カウンタ６２は、各トラックのカウント領域ＣＲ毎にカウント回数を保持している。カウンタ６２は、所定のトラックのカウント領域ＣＲの隣接領域にデータをライトされる毎に、このカウント領域ＣＲに対応するカウント回数に所定の値（以下、加算値と称する）、例えば、１を加算する。また、カウンタ６２は、所定の記録領域にライトされたデータを一旦リードして、リードしたデータを所定の記録領域に書き直す処理（以下、リフレッシュ処理と称する）を実行するための少なくとも１つの閾値（以下、リフレッシュ閾値と称する）を保持している。例えば、カウンタ６２は、トラック毎にリフレッシュ閾値を保持している。なお、カウンタ６２は、各トラックのカウント領域毎にリフレッシュ閾値を保持していてもよい。一例では、内周領域ＩＲに位置するトラック及び外周領域ＯＲに位置するトラックのリフレッシュ閾値は、中周領域ＭＲに位置するトラックのリフレッシュ閾値よりも小さい。リフレッシュ閾値は、例えば、所定のトラックの複数のカウント領域ＣＲにそれぞれ対応する複数のカウント回数の内の最も大きい値（以下、単に、最大値と称する）に対する閾値と、最大値とこれら複数のカウント回数の内の最も小さい値（以下、単に、最小値と称する）との差分値に対する閾値と、所定のトラックの最大値とこの所定のトラックの半径方向に隣接するトラック（以下、単に、隣接トラックと称する）の最大値との差分値に対する閾値とを含む。以下、「最大値とこれら複数のカウント回数で最も小さい最小値（以下、単に、最小値と称する）との差分値」を「トラック内差分値」と称し、「所定のトラックの最大値とこの所定のトラックの隣接トラックの最大値との差分値」と「トラック間差分値」と称する。また、「最大値に対する閾値」を「カウント閾値」と称し、「トラック内差分値に対する閾値」を「トラック内閾値」と称し、「トラック間差分値に対する閾値」を「トラック間閾値」と称する。カウンタ６２は、所定のタイミング、例えば、アイドル時やカウント回数に加算値を加算した後に、各トラックの最大値や最小値を検出する。カウンタ６２は、最大値、トラック内差分値、及びトラック間差分値がリフレッシュ閾値よりも大きいかリフレッシュ閾値以下であるかをそれぞれ判定する。なお、カウンタ６２は、各トラックの最大値や最小値を保持してもよいし、各トラックの最大値や最小値をテーブルとしてメモリ、例えば、不揮発性メモリ９０に記録してもよい。最大値、トラック内差分値、又はトラック間差分値がリフレッシュ閾値よりも大きいと判定した場合、カウンタ６２は、リフレッシュ処理を実行するための信号（以下、リフレッシュ信号と称する）を後述するリフレッシュ処理部６３に出力する。リフレッシュ処理が完了した信号を受けた場合、カウンタ６２は、リフレッシュ処理が実行された所定のトラックの複数のカウント領域ＣＲにそれぞれ対応する複数のカウント回数を隣接領域にデータをライトされていない場合のカウント回数、例えば、０に変更してもよい。なお、カウンタ６２は、最大値、トラック内差分値、及びトラック間差分値がリフレッシュ閾値よりも大きいかリフレッシュ閾値以下であるかを任意の順番で判定してもよい。例えば、カウンタ６２は、最大値がカウント閾値より大きいかカウント閾値以下であるかを最初に判定してもよいし、トラック内差分値がトラック内差分閾値より大きいかトラック内差分閾値以下であるかを最初に判定してもよいし、トラック間差分値がトラック間差分閾値より大きいかトラック間差分閾値以下であるかを最初に判定してもよい。カウンタ６２は、最大値、トラック内差分値、及びトラック間差分値の内の１つのみについてリフレッシュ閾値よりも大きいかリフレッシュ閾値以下であるかを判定してもよい。また、最大値、トラック内差分値、及びトラック間差分値の全てがリフレッシュ閾値よりも大きいと判定した場合に、カウンタ６２は、リフレッシュ信号をリフレッシュ処理部６３に出力してもよい。
【００１６】
カウンタ６２は、例えば、各トラックのカウント領域ＣＲ毎のカウント回数やリフレッシュ閾値等をテーブル（以下、管理テーブルと称する）ＴＢ等で管理している。カウンタ６２は、管理テーブルＴＢをメモリ、例えば、不揮発性メモリ９０やシステムエリア１０ｂ等に記録している。なお、カウンタ６２は、各トラックのカウント領域ＣＲ毎のカウント回数及びリフレッシュ閾値等をそれぞれデータとして管理していてもよい。カウンタ６２は、各トラックのカウント領域ＣＲ毎のカウント回数及びリフレッシュ閾値等のデータをメモリ、例えば、不揮発性メモリ９０やシステムエリア１０ｂ等にそれぞれ記録していてもよい。
【００１７】
図３乃至図５は、管理テーブルＴＢの一例を示す模式図である。図３乃至図５において、管理テーブルＴＢは、各トラックにおけるカウント領域ＣＲ１、ＣＲ２、ＣＲ３のカウント回数と、各トラックのカウント閾値と、各トラックのトラック内閾値と、各トラックのトラック間閾値とを含んでいる。図３乃至図５において、トラック内閾値は、カウント閾値よりも小さい。トラック間閾値は、カウント閾値及びトラック内閾値よりも小さい。なお、図３乃至図５において、カウント閾値、トラック内閾値、及びトラック間閾値は、異なっているが、同じであってもよい。また、トラック内閾値は、カウント閾値よりも大きくてもよいし、トラック間閾値は、カウント閾値及びトラック内閾値よりも大きくてもよい。図３乃至図５において、Ｔｒａｃｋ  Ｎ−２乃至Ｔｒａｃｋ  Ｎ＋２のカウント閾値、トラック内閾値、及びトラック間閾値は、それぞれ、異なっていてもよいし、同じでもよい。  
図３に示す例では、Ｔｒａｃｋ  Ｎのカウント領域ＣＲ１にデータがライトされた場合、カウンタ６２は、管理テーブルＴＢにおいて、Ｔｒａｃｋ  Ｎ＋１のカウント領域ＣＲ１のカウント回数（１）に加算値として１を加算し、Ｔｒａｃｋ  Ｎ＋１のカウント領域ＣＲ１のカウント回数を２にする。カウンタ６２は、Ｔｒａｃｋ  Ｎ−１のカウント領域ＣＲ１のカウント回数（１）に加算値として１を加算し、Ｔｒａｃｋ  Ｎ−１のカウント領域ＣＲ１のカウント回数を２にする。
【００１８】
カウンタ６２は、Ｔｒａｃｋ  Ｎ＋１のカウント領域ＣＲ１のカウント回数とＴｒａｃｋ  Ｎ−１のカウント領域ＣＲ１のカウント回数とに加算値を加算した後に、Ｔｒａｃｋ  Ｎ−２乃至Ｎ＋２の最大値や最小値をそれぞれ検出する。カウンタ６２は、Ｔｒａｃｋ  Ｎ−２乃至Ｎ＋２の最大値がＴｒａｃｋ  Ｎ−２乃至Ｎ＋２のそれぞれに対応するカウント閾値よりも大きいかカウント閾値以下であるかをそれぞれ判定する。  
図３に示す例では、カウンタ６２は、管理テーブルＴＢからＴｒａｃｋ  Ｎ＋１の最大値（１３１）がカウント閾値（１３０）よりも大きいと判定し、Ｔｒａｃｋ  Ｎ＋１にリフレッシュ処理を実行するためのリフレッシュ信号をリフレッシュ処理部６３に出力する。  
図４に示す例では、カウンタ６２は、管理テーブルＴＢからＴｒａｃｋ  Ｎ＋１の最大値（１２５）がカウント閾値（１３０）以下であると判定し、Ｔｒａｃｋ  Ｎ＋１の最大値（１２５）と最小値（１）とを検出する。カウンタ６２は、管理テーブルＴＢにおいて、最大値（１２５）と最小値（１）とのトラック内差分値（１２４）を算出し、トラック内差分値（１２４）がトラック内閾値（１２０）よりも大きいかトラック内閾値（１２０）以下であるかを判定する。カウンタ６２は、トラック内差分値（１２４）がトラック内閾値（１２０）よりも大きいと判定し、Ｔｒａｃｋ  Ｎ＋１にリフレッシュ処理を実行するためのリフレッシュ信号をリフレッシュ処理部６３に出力する。
【００１９】
図５に示す例では、カウンタ６２は、管理テーブルＴＢからＴｒａｃｋ  Ｎ＋１の最大値（１２０）がカウント閾値（１３０）以下であると判定し、Ｔｒａｃｋ  Ｎ＋１の最大値（１２０）と最小値（１）とを検出する。カウンタ６２は、Ｔｒａｃｋ  Ｎ＋１の最大値（１２０）と最小値（１）とのトラック内差分値（１１９）を算出し、トラック内差分値（１１９）がトラック内閾値（１２０）よりも大きいかトラック内閾値（１２０）以下であるかを判定する。カウンタ６２は、トラック内差分値（１１９）がトラック内閾値（１２０）以下であると判定し、Ｔｒａｃｋ  Ｎ＋１に隣接するＴｒａｃｋ  Ｎ＋２の最大値（５０）とＴｒａｃｋ  Ｎの最大値（２０）とを検出する。カウンタ６２は、最大値（１２０）及び最大値（５０）のトラック間差分値（７０）と最大値（１２０）及び最大値（２０）のトラック間差分値（１００）とをそれぞれ算出する。カウンタ６２は、トラック間差分値（７０）がトラック間閾値（９０）よりも大きいかトラック間閾値（９０）以下であるかを判定する。カウンタ６２は、トラック間差分値（７０）がトラック間閾値（９０）以下であると判定し、トラック間差分値（１００）がトラック間閾値（９０）よりも大きいかトラック間閾値（９０）以下であるかを判定する。カウンタ６２は、トラック間差分値（１００）がトラック間閾値（９０）よりも大きいと判定し、Ｔｒａｃｋ  Ｎ＋１にリフレッシュ信号をリフレッシュ処理部６３に出力する。  
例えば、Ｔｒａｃｋ  Ｎ＋１にリフレッシュ処理が実行された場合、カウンタ６２は、Ｔｒａｃｋ  Ｎ＋１のカウント領域ＣＲ１、ＣＲ２、及びＣＲ３のカウント回数を０にする。
【００２０】
リフレッシュ処理部６３は、リフレッシュ処理を実行する。例えば、リフレッシュ処理部６３は、カウンタ６２からリフレッシュ信号を受けた場合にリフレッシュ処理を実行する。リフレッシュ処理を実行した場合、リフレッシュ処理部６３は、例えば、カウンタ６２にリフレッシュ処理が完了した信号を出力する。
【００２１】
図６は、本実施形態に係るリフレッシュ処理方法の一例を示すフローチャートである。  ＭＰＵ６０は、ディスク１０の対象とするトラック（以下、対象トラックと称する）の所定のカウント領域ＣＲにデータをライトする（Ｂ６０１）。ＭＰＵ６０は、対象トラックの両隣の隣接トラックの所定のカウント領域ＣＲのカウント回数に加算値をそれぞれ加算する（Ｂ６０２）。ＭＰＵ６０は、各トラックの最大値及び最小値を検出し（Ｂ６０３）、各トラックの最大値がカウント閾値よりも大きいかカウント閾値以下であるかをそれぞれ判定する（Ｂ６０４）。所定のトラックの最大値がカウント閾値よりも大きいと判定した場合（Ｂ６０４のＹＥＳ）、ＭＰＵ６０は、Ｂ６０９の処理へ進む。所定のトラックの最大値がカウント閾値以下であると判定した場合（Ｂ６０４のＮＯ）、ＭＰＵ６０は、所定のトラックに対応するトラック内差分値を算出する（Ｂ６０５）。
【００２２】
ＭＰＵ６０は、所定のトラックに対応するトラック内差分値がトラック内閾値よりも大きいかトラック内閾値以下であるかを判定する（Ｂ６０６）。所定のトラックに対応するトラック内差分値がトラック内閾値よりも大きいと判定した場合（Ｂ６０６のＹＥＳ）、ＭＰＵ６０は、Ｂ６０９の処理へ進む。所定のトラックに対応するトラック内差分値がトラック内閾値以下であると判定した場合（Ｂ６０６のＮＯ）、ＭＰＵ６０は、所定のトラックに対応するトラック間差分値を算出する（Ｂ６０７）。例えば、ＭＰＵ６０は、所定のトラックの最大値とこの所定のトラックの内側の隣接トラックの最大値とのトラック間差分値（以下、内側のトラック間差分値と称する）を算出し、所定のトラックの最大値と所定のトラックの外側の隣接トラックの最大値とのトラック間差分値（以下、外側のトラック間差分値と称する）を算出する。
【００２３】
ＭＰＵ６０は、所定のトラックに対応するトラック間差分値がトラック間閾値よりも大きいかトラック間閾値以下であるかを判定する（Ｂ６０８）。例えば、ＭＰＵ６０は、内側のトラック間差分値及び外側のトラック間差分値がトラック間閾値よりも大きいかトラック間閾値以下であるかをそれぞれ判定する。所定のトラックに対応するトラック間差分値がトラック間閾以下であると判定した場合（Ｂ６０８のＮＯ）、ＭＰＵ６０は、処理を終了する。所定のトラックに対応するトラック間差分値がトラック間閾値よりも大きいと判定した場合（Ｂ６０８のＹＥＳ）、ＭＰＵ６０は、所定のトラックにリフレッシュ処理を実行し（Ｂ６０９）、処理を終了する。例えば、所定のトラックに対応する内側のトラック間差分値及び外側のトラック間差分値がトラック間閾値以下であると判定した場合、ＭＰＵ６０は、処理を終了する。所定のトラックに対応する内側のトラック間差分値及び外側のトラック間差分値の少なくとも一方がトラック間閾値よりも大きいと判定した場合、ＭＰＵ６０は、所定のトラックにリフレッシュ処理を実行する。
【００２４】
本実施形態によれば、磁気ディスク装置１は、複数の記録領域を円周方向に複数のカウント領域ＣＲに区分する。磁気ディスク装置１は、各トラックのカウント領域ＣＲ毎にカウント回数を保持している。また、磁気ディスク装置１は、リフレッシュ閾値として、カウント閾値、トラック内閾値、及びトラック間閾値等を保持している。磁気ディスク装置１は、各トラックの最大値及び最小値を検出し、各トラックの最大値がカウント閾値よりも大きいかカウント閾値以下であるかをそれぞれ判定する。所定のトラックの最大値がカウント閾値よりも大きいと判定した場合、磁気ディスク装置１は、所定のトラックにリフレッシュ処理を実行する。所定トラックに対応するトラック内差分値がトラック内閾値よりも大きいと判定した場合、磁気ディスク装置１は、所定のトラックにリフレッシュ処理を実行する。また、所定のトラックに対応するトラック間差分値がトラック間閾値よりも大きいと判定した場合、磁気ディスク装置１は、所定のトラックにリフレッシュ処理を実行する。そのため、磁気ディスク装置１は、ディスク１０の半径方向の所定の記録領域の円周方向の特定の位置へのライト処理が集中していることを検出し、ライト処理が集中している特定の位置を含む記録領域にリフレッシュ処理を実行するができる。つまり、磁気ディスク装置１は、データをリードできなくなることを防止できる。したがって、磁気ディスク装置１は、データの信頼性を向上することができる。
【００２５】
次に、変形例に係る磁気ディスク装置について説明する。変形例において、前述の実施形態と同一の部分には同一の参照符号を付してその詳細な説明を省略する。  
（変形例１）  
変形例１の磁気ディスク装置１は、リフレッシュ閾値を複数のトラック毎に保持している点が前述の実施形態と異なる。  
例えば、カウンタ６２は、半径方向に区分した所定の範囲毎にリフレッシュ閾値を保持している。半径方向の所定の範囲は、複数のトラックを含んでいる。  
図７は、変形例１に係る管理テーブルＴＢの一例を示す模式図である。図７において、管理テーブルＴＢは、各トラックにおけるカウント領域ＣＲ１、ＣＲ２、及びＣＲ３のカウント回数と、半径方向の所定の範囲毎のカウント閾値と、半径方向の所定の範囲毎のトラック内閾値と、半径方向の所定の範囲毎のトラック間閾値とを含んでいる。  
カウンタ６２は、例えば、Ｔｒａｃｋ  Ｎ＋１のカウント領域ＣＲ１のカウント回数とＴｒａｃｋ  Ｎ−１のカウント領域ＣＲ１のカウント回数とに加算値を加算した後に、Ｔｒａｃｋ  Ｎ−２乃至Ｎ＋２の最大値や最小値をそれぞれ検出する。カウンタ６２は、Ｔｒａｃｋ  Ｎ−２乃至Ｎ＋２の最大値がＴｒａｃｋ  Ｎ−２乃至Ｎ＋２で共通のカウント閾値よりも大きいかカウント閾値以下であるかをそれぞれ判定する。
【００２６】
変形例１によれば、磁気ディスク装置１は、半径方向に区分した所定の範囲毎にリフレッシュ閾値を保持している。各トラックのリフレッシュ閾値を保持する必要がないため、磁気ディスク装置１は、メモリ、例えば、不揮発性メモリ９０等に記録する管理テーブルＴＢの容量を小さくすることができる。
【００２７】
（変形例２）  
変形例２の磁気ディスク装置１は、リフレッシュ処理が前述の実施形態及び変形例と異なる。  
図８は、変形例２に係るリフレッシュ処理方法の一例を示すフローチャートである。  
ＭＰＵ６０は、対象トラックの所定のカウント領域ＣＲにデータをライトし（Ｂ６０１）、対象トラックの両隣の隣接トラックの所定のカウント領域ＣＲのカウント回数に加算値をそれぞれ加算する（Ｂ６０２）。ＭＰＵ６０は、各トラックの最大値を検出し（Ｂ８０１）、各トラックの最大値がカウント閾値よりも大きいかカウント閾値以下であるかをそれぞれ判定する（Ｂ６０４）。所定のトラックの最大値がカウント閾値よりも大きいと判定した場合（Ｂ６０４のＹＥＳ）、ＭＰＵ６０は、所定のトラックにリフレッシュ処理を実行し（Ｂ６０９）、処理を終了する。所定のトラックの最大値がカウント閾値以下であると判定した場合（Ｂ６０４のＮＯ）、ＭＰＵ６０は、処理を終了する。  
変形例２によれば、磁気ディスク装置１は、各トラックの最大値のみを検出している。そのため、磁気ディスク装置１は、リフレッシュ処理を簡素化できる。
【００２８】
（変形例３）  
変形例３の磁気ディスク装置１は、リフレッシュ処理が前述の実施形態及び変形例と異なる。  
図９は、変形例３に係るリフレッシュ処理方法の一例を示すフローチャートである。  
ＭＰＵ６０は、対象トラックの所定のカウント領域ＣＲにデータをライトし（Ｂ６０１）、対象トラックの両隣の隣接トラックの所定のカウント領域ＣＲのカウント回数に加算値をそれぞれ加算する（Ｂ６０２）。ＭＰＵ６０は、各トラックの最大値及び最小値を検出し（Ｂ６０３）、各トラックに対応するトラック内差分値を算出する（Ｂ６０５）。ＭＰＵ６０は、各トラックに対応するトラック内差分値がトラック内閾値よりも大きいかトラック内閾値以下であるかをそれぞれ判定する（Ｂ６０６）。所定のトラックに対応するトラック内差分値がトラック内閾値よりも大きいと判定した場合（Ｂ６０６のＹＥＳ）、ＭＰＵ６０は、所定のトラックにリフレッシュ処理を実行し（Ｂ６０９）、処理を終了する。所定のトラックに対応するトラック内差分値がトラック内閾値以下であると判定した場合（Ｂ６０６のＮＯ）、ＭＰＵ６０は、処理を終了する。  
変形例３によれば、磁気ディスク装置１は、各トラックの最大値及び最小値を検出した後に、各トラックに対応するトラック内差分値を算出し、各トラックに対応するトラック内差分値がトラック内閾値よりも大きいかトラック内閾値以下であるかをそれぞれ判定している。そのため、磁気ディスク装置１は、リフレッシュ処理を簡素化できる。
【００２９】
（変形例４）  
変形例４の磁気ディスク装置１は、リフレッシュ処理が前述の実施形態及び変形例と異なる。  
図１０は、変形例４に係るリフレッシュ処理方法の一例を示すフローチャートである。
ＭＰＵ６０は、対象トラックの所定のカウント領域ＣＲにデータをライトし（Ｂ６０１）、対象トラックの両隣の隣接トラックの所定のカウント領域ＣＲのカウント回数に加算値をそれぞれ加算する（Ｂ６０２）。ＭＰＵ６０は、各トラックの最大値を検出し（Ｂ８０１）、各トラックに対応するトラック間差分値をそれぞれ算出する（Ｂ６０７）。ＭＰＵ６０は、各トラックに対応するトラック間差分値がトラック間閾値よりも大きいかトラック間閾値以下であるかをそれぞれ判定する（Ｂ６０８）。所定のトラックに対応するトラック間差分値がトラック間閾以下であると判定した場合（Ｂ６０８のＮＯ）、ＭＰＵ６０は、処理を終了する。所定のトラックに対応するトラック間差分値がトラック間閾値よりも大きいと判定した場合（Ｂ６０８のＹＥＳ）、ＭＰＵ６０は、所定のトラックにリフレッシュ処理を実行し（Ｂ６０９）、処理を終了する。  
変形例４によれば、磁気ディスク装置１は、各トラックの最大値を検出した後に、各トラックに対応するトラック間差分値をそれぞれ算出し、各トラックのトラック間差分値がトラック間閾値よりも大きいかトラック間閾値以下であるかをそれぞれ判定している。そのため、磁気ディスク装置１は、リフレッシュ処理を簡素化できる。
【００３０】
なお、前述した実施形態及び変形例では、磁気ディスク装置１は、各トラックのカウント領域ＣＲ毎にカウント回数を管理するとしたが、ディスク１０を半径方向に所定の範囲毎に区分したゾーン毎にカウント回数を管理してもよい。磁気ディスク装置１は、例えば、ゾーン毎にリフレッシュ閾値を保持している。磁気ディスク装置１は、所定のゾーンのカウント回数がリフレッシュ閾値よりも大きいと判定した場合、所定のゾーンにリフレッシュ処理を実行するように構成されていてもよい。
【００３１】
いくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００３２】
１…磁気ディスク装置、１０…磁気ディスク、１０ａ…ユーザデータ領域、１０ｂ…システムエリア、１２…スピンドルモータ（ＳＰＭ）、１３…アーム、１４…ボイスコイルモータ（ＶＣＭ）、１５…ヘッド、１５Ｗ…ライトヘッド、１５Ｒ…リードヘッド、２０…ドライバＩＣ、３０…ヘッドアンプＩＣ、４０…リード／ライト（Ｒ／Ｗ）チャネル、５０…ハードディスクコントローラ（ＨＤＣ）、６０…マイクロプロセッサ（ＭＰＵ）、７０…揮発性メモリ、８０…バッファメモリ、９０…不揮発性メモリ、１００…ホストシステム（ホスト）、１３０…システムコントローラ。
【図１】
2019160376.tif 000003
【図２】
2019160376.tif 000004
【図３】
2019160376.tif 000005
【図４】
2019160376.tif 000006
【図５】
2019160376.tif 000007
【図６】
2019160376.tif 000008
【図７】
2019160376.tif 000009
【図８】
2019160376.tif 000010
【図９】
2019160376.tif 000011
【図１０】
2019160376.tif 000012