(57)【要約】【課題】電源遮断に対処しつつデータリフレッシュ動作の効率低下を防止する。【解決手段】ＣＰＵ１１５は、Ｌを自然数とすると、ディスク１０１上のリフレッシュされるべきトラックからブロック数がＬのデータをヘッド１０２により読み出すためのリフレッシュデータリード動作と、前記読み出されたデータをディスク１０１上のバックアップトラックにヘッド１０２により書き込むためのバックアップライト動作と、前記読み出されたデータを前記リフレッシュされるべきトラックの元の記憶領域に書き込むためのリフレッシュライト動作とを制御する。ＣＰＵ１１５は、Ｎを自然数とすると、前記ブロック数Ｌを、ディスク１０１のＮ回転に対応する時間で前記バックアップ動作及び前記リフレッシュライト動作が完了するための条件を満たす値に設定する。【選択図】      図１
2010157287.tif 000002
【特許請求の範囲】
【請求項１】
磁気ディスク装置において、
複数のトラックの少なくとも１つが、リフレッシュされるべきトラックのデータを一時退避するためのバックアップトラックとして割り当てられるディスクと、
Ｌを自然数とすると、前記ディスク上のリフレッシュされるべきトラックからブロック数がＬのデータをヘッドにより読み出すためのリフレッシュデータリード動作と、前記読み出されたデータを前記バックアップトラックに前記ヘッドにより書き込むためのバックアップライト動作と、前記読み出されたデータを、前記バックアップライト動作の後に前記リフレッシュされるべきトラックの元の記憶領域に前記ヘッドにより書き込むためのリフレッシュライト動作とを含むデータリフレッシュ動作を制御するコントローラであって、Ｎを自然数とすると、前記リフレッシュされるべきデータのブロック数Ｌを、前記リフレッシュデータリード動作が完了してから前記ディスクのＮ回転に対応する時間で前記バックアップ動作及び前記リフレッシュライト動作が完了するための条件を満たす値に設定するコントローラと
を具備することを特徴とする磁気ディスク装置。
【請求項２】
前記データリフレッシュ動作は、前記リフレッシュデータリード動作の後に前記ヘッドを前記バックアップトラックに移動させるための第１のシーク動作及び前記バックアップライト動作の後に前記ヘッドを前記リフレッシュされるべきトラックに移動させるための第２のシーク動作を含み、
前記コントローラは、前記第１のシーク動作によって前記ヘッドが前記バックアップトラックに到達した時点から前記バックアップライト動作を開始させる
ことを特徴とする請求項１記載の磁気ディスク装置。
【請求項３】
前記コントローラは、前記第１のシーク動作によって前記ヘッドが到達した前記バックアップトラック上の位置から始まる記憶領域に、前記読み出されたデータが前記ヘッドによって書き込まれるように、前記バックアップライト動作を制御することを特徴とする請求項２記載の磁気ディスク装置。
【請求項４】
前記ディスクはＣＤＲフォーマットを適用し、
前記ブロック数Ｌを設定するのに用いられる前記条件は、前記バックアップライト動作及び前記リフレッシュライト動作にそれぞれ必要な時間Ｔｂ及びＴｒを含み、
前記コントローラは、前記時間Ｔｂ及びＴｒを、それぞれ前記バックアップトラック及び前記リフレッシュトされるべきトラックが属するＣＤＲゾーンのトラック当たりのブロック数と、前記ブロック数Ｌと、前記ディスクの１回転に要する時間とに基づき算出する
ことを特徴とする請求項３記載の磁気ディスク装置。
【請求項５】
前記ディスク上で前記バックアップトラックに隣接するトラックがリフレッシュ管理トラックとして割り当てられており、
前記データリフレッシュ動作は、前記バックアップライト動作の後で且つ前記第２のシーク動作の前に、前記読み出されたデータが書き込まれている前記リフレッシュされるべきトラック上の位置を示すアドレス、前記読み出されたデータが前記バックアップライト動作で書き込まれた前記バックアップトラック上の位置を示すアドレス、及び前記ブロック数Ｌを含むリフレッシュ管理情報を前記リフレッシュ管理トラックに書き込むためのリフレッシュ管理情報ライト動作を含み、
前記コントローラは、前記リフレッシュライト動作の最中に前記磁気ディスク装置の電源が遮断した場合には、次に当該電源が投入された際に、前記リフレッシュ管理トラックに書き込まれている最新のリフレッシュ管理情報に基づいて、前記バックアップトラックに書き込まれている前記読み出されたデータを前記元の記憶領域に書き込むための再リフレッシュライト動作を制御する
ことを特徴とする請求項２乃至４のいずれかに記載の磁気ディスク装置。
【請求項６】
前記データリフレッシュ動作は、前記バックアップライト動作の後で且つ前記リフレッシュ管理情報ライト動作の前に、前記ヘッドを前記リフレッシュ管理トラックに移動させるための第３のシーク動作を含み、
前記コントローラは、前記第３のシーク動作によって前記ヘッドが前記リフレッシュ管理トラックに到達した時点から前記リフレッシュ管理情報ライト動作を開始させる
ことを特徴とする請求項５記載の磁気ディスク装置。
【請求項７】
前記リフレッシュ管理情報はカウント値を含み、当該カウント値には前記リフレッシュ管理情報ライト動作の都度インクリメントされる値が用いられる、
前記コントローラは、前記リフレッシュ管理トラックに複数のリフレッシュ管理情報が書き込まれている場合、最も値が大きいカウント値を含むリフレッシュ管理情報を、前記最新のリフレッシュ管理情報として用いる
ことを特徴とする請求項６記載の磁気ディスク装置。
【請求項８】
前記リフレッシュ管理情報は前記リフレッシュライト動作が完了したかを示す完了フラグを含み、
前記コントローラは、前記リフレッシュライト動作の後に前記ヘッドを前記リフレッシュ管理トラックに移動させるための第４のシーク動作と、前記第４のシーク動作によって前記ヘッドが前記リフレッシュ管理トラックに到達した時点から、前記リフレッシュライト動作が完了したことを示す完了フラグを含む前記リフレッシュ管理情報を前記リフレッシュ管理トラックに書き込むためのリフレッシュ管理情報ライト動作とを制御し、前記電源が投入された際に、前記最新のリフレッシュ管理情報に前記リフレッシュライト動作が完了したことを示す完了フラグが含まれているかを判定することにより、前記リフレッシュライト動作が完了したか、或いは前記リフレッシュライト動作の最中に前記電源が遮断したかを判定する
ことを特徴とする請求項７記載の磁気ディスク装置。
【請求項９】
磁気ディスク装置においてディスクに書き込まれているデータをリフレッシュするためのデータリフレッシュ方法であって、
Ｌを自然数とすると、前記ディスク上のリフレッシュされるべきトラックからブロック数がＬのデータをヘッドにより読み出すためのリフレッシュデータリード動作を実行するステップと、
前記読み出されたデータを前記ディスク上に確保されているバックアップトラックに前記ヘッドにより書き込むためのバックアップライト動作を実行するステップと、
前記読み出されたデータを、前記バックアップライト動作の後に、前記リフレッシュされるべきトラックの元の記憶領域に前記ヘッドにより書き込むためのリフレッシュライト動作を実行するステップと、
前記リフレッシュデータリード動作を実行するステップに先行して、前記リフレッシュされるべきデータのブロック数Ｌを設定するステップであって、Ｎを自然数とすると、前記ブロック数Ｌを、前記リフレッシュデータリード動作が完了してから前記ディスクのＮ回転に対応する時間で前記バックアップ動作及び前記リフレッシュライト動作が完了するための条件を満たす値に設定するステップと
を具備することを特徴とするデータリフレッシュ方法。
【請求項１０】
前記リフレッシュデータリード動作の後に前記ヘッドを前記ディスク上に確保されたバックアップトラックに移動させるための第１のシーク動作を実行するステップと、
前記バックアップライト動作の後に前記ヘッドを前記リフレッシュされるべきトラックに移動させるための第２のシーク動作を実行するステップとを更に具備し、
前記バックアップライト動作が、前記第１のシーク動作によって前記ヘッドが前記バックアップトラックに到達した時点から開始される
ことを特徴とする請求項９記載のデータリフレッシュ方法。
【請求項１１】
前記ディスクはＣＤＲフォーマットを適用し、
前記ブロック数Ｌを設定するのに用いられる前記条件は、前記バックアップライト動作及び前記リフレッシュライト動作にそれぞれ必要な時間Ｔｂ及びＴｒを含み、
前記設定するステップは、前記時間Ｔｂ及びＴｒを、それぞれ前記バックアップトラック及び前記リフレッシュトされるべきトラックが属するＣＤＲゾーンのトラック当たりのブロック数と、前記ブロック数Ｌと、前記ディスクの１回転に要する時間とに基づき算出するステップを含む
ことを特徴とする請求項１０記載のデータリフレッシュ方法。
【請求項１２】
前記バックアップライト動作の後で且つ前記第２のシーク動作の前に、前記読み出されたデータが書き込まれている前記リフレッシュされるべきトラック上の位置を示すアドレス、前記読み出されたデータが前記バックアップライト動作で書き込まれた前記バックアップトラック上の位置を示すアドレス、及び前記ブロック数Ｌを含むリフレッシュ管理情報を、前記ディスク上に確保されている、前記バックアップトラックに隣接するリフレッシュ管理トラックに書き込むためのリフレッシュ管理情報ライト動作を実行するステップと、
前記リフレッシュライト動作の最中に前記磁気ディスク装置の電源が遮断した場合には、次に当該電源が投入された際に、前記リフレッシュ管理トラックに書き込まれている最新のリフレッシュ管理情報に基づいて、前記バックアップトラックに書き込まれている前記読み出されたデータを前記元の記憶領域に書き込むための再リフレッシュライト動作を実行するステップと
を更に具備することを特徴とする請求項１１記載のデータリフレッシュ方法。
【請求項１３】
前記バックアップライト動作の後で且つ前記リフレッシュ管理情報ライト動作の前に、前記ヘッドを前記リフレッシュ管理トラックに移動させるための第３のシーク動作を実行するステップを更に具備し、
前記リフレッシュ管理情報ライト動作が、前記第３のシーク動作によって前記ヘッドが前記リフレッシュ管理トラックに到達した時点から開始される
ことを特徴とする請求項１２記載のデータリフレッシュ方法。
【請求項１４】
前記リフレッシュ管理情報はカウント値を含み、当該カウント値には前記リフレッシュ管理情報ライト動作の都度インクリメントされる値が用いられる、
前記データリフレッシュ方法は、前記リフレッシュ管理トラックから最も値が大きいカウント値を含むリフレッシュ管理情報を、前記最新のリフレッシュ管理情報としてサーチするステップを更に具備する
ことを特徴とする請求項１３記載のデータリフレッシュ方法。
【請求項１５】
前記リフレッシュ管理情報は前記リフレッシュライト動作が完了したかを示す完了フラグを含み、
前記データリフレッシュ方法は、
前記リフレッシュライト動作の後に前記ヘッドを前記リフレッシュ管理トラックに移動させるための第４のシーク動作を実行するステップと、
前記第４のシーク動作によって前記ヘッドが前記リフレッシュ管理トラックに到達した時点から、前記リフレッシュライト動作が完了したことを示す完了フラグを含む前記リフレッシュ管理情報を前記リフレッシュ管理トラックに書き込むためのリフレッシュ管理情報ライト動作とを実行するステップと、
前記サーチされた最新のリフレッシュ管理情報に前記リフレッシュライト動作が完了したことを示す完了フラグが含まれているかを判定することにより、前記リフレッシュライト動作が完了したか、或いは前記リフレッシュライト動作の最中に前記電源が遮断したかを判定するステップと
を更に具備することを特徴とする請求項１４記載のデータリフレッシュ方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディスクに書き込まれているデータをリフレッシュするのに好適な磁気ディスク装置及び同装置におけるデータリフレッシュ方法に関する。
【背景技術】
【０００２】
近年、磁気ディスク装置の高容量化に伴い、高記録密度化、高トラック密度化が進んでいる。高トラック密度化により、ディスク上で隣接するトラック（記録トラック）間の間隔（つまりトラックピッチ）が狭小化されている。各トラックはヘッド（ヘッドに含まれる書き込み素子）の幅と同じ幅を持つ。しかし、データ書き込み時にヘッドによって生成される磁界（記録磁界）の分布の幅は必ずしも当該ヘッドの幅に一致せず、その周辺にも磁界が加わる（漏れる）状態となる。この状態は、ライトフリンジングと呼ばれる。
【０００３】
このため、トラックピッチが狭小化されると、データが書き込まれるべきトラックにヘッドを位置付けてデータを書き込む際に、当該トラックに対するヘッドの位置決め誤差及びライトフリンジングの影響により、隣接するトラックに書き込まれているデータ（記録データ）の劣化が発生する可能性がある。記録データ（記録信号）の劣化が繰り返し発生すると、その記録データの読み出しが非常に困難になる。つまり、誤り訂正符号（ＥＣＣ）を最大限に用いて記録データの修復を試みても、当該記録データを修復することが困難となる。
【０００４】
そこで近年の磁気ディスク装置では、記録データの劣化により当該記録データの読み出しが不能になる前に、当該記録データの劣化を回復するためのデータリフレッシュ（書き直し）が必須になりつつある。データリフレッシュは、劣化した記録データをトラックから読み出し、当該読み出されたデータを当該トラックの元の記憶領域に書き戻すことで、当該記録データを正常な状態に戻す動作として知られている。
【０００５】
例えば、特許文献１には、データライト回数が規定回数に達したトラックに隣接するトラックに書き込まれているデータをリフレッシュする技術（先行技術）について記載されている。この先行技術によれば、まず、データライト回数が規定回数に達したトラックに隣接するトラックのデータは劣化していると判定される。次に、このような隣接トラックのデータがリフレッシュされるべきデータとして読み出されてＲＡＭに一時記憶される。そして、このＲＡＭに一時記憶された隣接トラックのデータが当該隣接トラックの元の記憶領域に再度書き込まれる。つまり、リフレッシュされるべきトラックのデータが、当該トラックから読み出されたデータで書き直される。このようなデータ書き直し動作、つまりデータリフレッシュ動作により、データの劣化が回復される。
【特許文献１】特開２００４−２７３０６０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記先行技術では、データリフレッシュ動作の最中に磁気ディスク装置の電源が遮断すると、リフレッシュされるべきデータが失われる可能性がある。更に具体的に述べるならば、データリフレッシュの対象となるトラック（以下、リフレッシュトラックと称する）から読み出されたデータを当該トラックの元の記憶領域に再度書き込むための動作（リフレッシュライト動作）の最中に磁気ディスク装置の電源が遮断すると、当該データが失われる可能性がある。この理由について説明する。
【０００７】
まず、リフレッシュライト動作の最中に電源が遮断したものとする。この場合、リフレッシュトラックへのデータライト動作が未完了となることから、当該トラックのデータが破壊される。このとき、ＲＡＭに一時記憶されているリフレッシュトラックのデータは消失する。このため、電源が復帰しても、未完了となったデータライト動作を再度行うことができず、リフレッシュトラックのデータは失われる。
【０００８】
このような不具合を防止するために、上記ＲＡＭに代えて、ディスク上の特定のトラックを用いることが考えられる。つまり、ディスク上の特定のトラックを、リフレッシュトラックのデータを一時退避（つまりバックアップ）するためのバックアップトラックとして用いることが考えられる。
【０００９】
ＲＡＭに代えてディスク上の特定のトラック（バックアップトラック）を用いる場合、一般的には、次のようなデータリフレッシュ動作が想定される。まず、リフレッシュトラックから読み出されたデータ（元データ）を、ディスク上のバックアップトラックに書き込む動作（バックアップライト動作）が行われる。このバックアップライト動作では、データリフレッシュ動作の状態を示すリフレッシュ管理情報もリフレッシュトラックに書き込まれる。
【００１０】
バックアップライト動作が完了すると、バックアップトラックに書き込まれた（つまり退避された）データを読み出して、リフレッシュトラックの元の記憶領域に書き戻す動作（リフレッシュライト動作）が行われる。このリフレッシュライト動作が完了すると、バックアップトラックに書き込まれているリフレッシュ管理情報が、データリフレッシュの完了を示す完了フラグを含むリフレッシュ管理情報に書き換えられる。つまり、バックアップトラックにデータリフレッシュの完了を示す完了フラグが書き込まれる。このため、リフレッシュライト動作中に電源が遮断してリフレッシュライト動作が完了しなかった場合、バックアップトラックには完了フラグは書き込まれないことになる。
【００１１】
このように、ＲＡＭに代えてディスク上の特定トラック（バックアップトラック）を使用すると、リフレッシュライト動作中に電源が遮断しても、元データはバックアップトラックに退避されているため、当該元データは失われない。このため、バックアップトラックに退避されている元データを用いることにより、未完了となったリフレッシュライト動作を再度行うことができる。リフレッシュライト動作が完了したか否かは、当該バックアップトラックに完了フラグが書き込まれているか否かによって判定することができる。
【００１２】
しかし、ＲＡＭに代えてディスク上の特定トラック（バックアップトラック）を用いると、詳細を後述するように、例えばバックアップライト動作を開始する前と、リフレッシュライト動作を開始する前とに、それぞれ、ヘッドの位置が該当するトラックの書き込み開始位置に一致するまで、ディスクが回転するのを待つ回転待ちが必要となる。このためデータリフレッシュ動作の効率が低下する。
【００１３】
本発明は上記事情を考慮してなされたものでその目的は、電源遮断に対処しつつ、データリフレッシュ動作の効率が低下するのを防止できる磁気ディスク装置及び同装置におけるデータリフレッシュ方法を提供することにある。
【課題を解決するための手段】
【００１４】
本発明の１つの観点によれば、磁気ディスク装置が提供される。この磁気ディスク装置は、複数のトラックの少なくとも１つが、リフレッシュされるべきトラックのデータを一時退避するためのバックアップトラックとして割り当てられるディスクと、Ｌを自然数とすると、前記ディスク上のリフレッシュされるべきトラックからブロック数がＬのデータをヘッドにより読み出すためのリフレッシュデータリード動作と、前記読み出されたデータを前記バックアップトラックに前記ヘッドにより書き込むためのバックアップライト動作と、前記読み出されたデータを、前記バックアップライト動作の後に前記リフレッシュされるべきトラックの元の記憶領域に前記ヘッドにより書き込むためのリフレッシュライト動作とを含むデータリフレッシュ動作を制御するコントローラであって、Ｎを自然数とすると、前記リフレッシュされるべきデータのブロック数Ｌを、前記リフレッシュデータリード動作が完了してから前記ディスクのＮ回転に対応する時間で前記バックアップ動作及び前記リフレッシュライト動作が完了するための条件を満たす値に設定するコントローラとを具備する。
【発明の効果】
【００１５】
本発明によれば、リフレッシュされるべきデータのブロック数Ｌの設定により、リフレッシュデータリード動作が完了してからディスクのＮ回転に対応する時間でリフレッシュライト動作が完了する構成とすることにより、電源遮断に対処するために、リフレッシュデータリード動作で読み出されたデータがディスク上に確保されたバックアップトラックに退避される構成を適用しながら、バックアップライト動作及びリフレッシュライト動作を含むデータリフレッシュ動作におけるディスクの回転待ちを削減して、当該データリフレッシュ動作を効率的に行うことができる。
【発明を実施するための最良の形態】
【００１６】
図１は本発明の一実施形態に係る磁気ディスク装置（ＨＤＤ）の構成を示すブロック図である。図１に示されるＨＤＤ１００は、ホストシステム２００からの要求に応じてディスク（磁気ディスク）１０１の記録面上にデータを書き込み、或いは当該記録面からデータを読み出すための記憶装置である。ホストシステム２００は、ＨＤＤ１００を記憶装置として利用するパーソナルコンピュータのような電子機器である。
【００１７】
ディスク１０１はスピンドルモータ（ＳＰＭ）１０３に固定されており、ＳＰＭ１０３が駆動されることにより一定の速度で回転する。ディスク１０１の例えば一方のディスク面は、データが磁気記録される記録面をなしている。ヘッド（磁気ヘッド）１０２はディスク１０１の記録面に対応して配置される。ヘッド１０２はアクチュエータ１０５の一端に固定されている。アクチュエータ１０５の他端はボイスコイルモータ（ＶＣＭ）１０４に固定されている。ヘッド１０２は、ＶＣＭ１０４が駆動されることにより、ＶＣＭ１０４の軸を中心とした円弧軌道のうちディスク１０１の面に重なる範囲を移動する。
【００１８】
図１の構成では、単一枚のディスク１０１を備えたＨＤＤ１００を想定している。しかし、複数のディスク１０１がある間隙をもった状態でＳＰＭ１０３に固定された構成であっても構わない。この場合、複数のアクチュエータ１０５が、複数のディスク１０１の間隙に適合するように重なった状態でＶＣＭ１０４に固定される。複数のアクチュエータ１０５の一端にはそれぞれヘッド１０２が固定されている。したがってＳＰＭ１０３が駆動されると、全てのディスク１０１は同時に回転し、ＶＣＭ１０４が駆動されると、全てのヘッド１０２は同時に移動する。また、図１の構成では、ディスク１０１の一方の面が記録面をなしている。しかし、ディスク１０１の両面がいずれも記録面をなし、両記録面にそれぞれ対応してヘッド１０２が配置されても構わない。
【００１９】
図２はディスク１０１のトラック配置を含むフォーマットを示す概念図である。  
図２において、ディスク１０１の記録面には、複数のトラック２０１が同心円状に配置されている。ホストシステム２００からＨＤＤ１００が受け取ったデータは、当該ホストシステム２００によって指定されたアドレスに応じ、複数のトラック２０１の少なくとも１つに記録される。
【００２０】
また、ディスク１０１の複数のトラック２０１上にはサーボ領域２０２及びデータ領域２０３が交互に且つ等間隔に配置されている。サーボ領域２０２には、ヘッド１０２の位置決めに用いられるサーボ信号が記録されている。データ領域２０３は、ホストシステム２００から転送されるデータを記録するのに用いられる。
【００２１】
ディスク１０１には、ＣＤＲ（constant density recording）と呼ばれる記録フォーマットが適用されている。このＣＤＲフォーマットを適用するディスク１０１の記録面は、当該ディスク１０１の半径方向に複数のゾーン（ＣＤＲゾーン）に分割して管理される。各ゾーンのトラック（シリンダ）当たりのデータセクタ（以下、単にセクタと称する）の数は、ディスク１０１の外周側のゾーンほど多く設定されている。
【００２２】
再び図１を参照すると、ＣＰＵ１１５はＨＤＤ１００の主コントローラとして機能する。ＣＰＵ１１５はモータドライバ１０６を介してＳＰＭ１０３の起動・停止及び回転速度維持のための制御を行う。ＣＰＵ１１５はまたモータドライバ１０６を介してＶＣＭ１０４を駆動制御することで、ヘッド１０２を目標とするトラックに移動させて、当該トラックの目標とする範囲内に整定するための制御を行う。ヘッド１０２を目標とするトラックに移動させる制御はシーク制御と呼ばれ、ヘッド１０２を目標とするトラックの目標とする範囲内に整定する制御はヘッド位置決め制御と呼ばれる。ＣＰＵ１１５は更に、ディスク１０１のトラック２０１に書き込まれているデータをリフレッシュするための制御（データリフレッシュ処理）を行う。
【００２３】
ヘッド１０２の位置決めはＳＰＭ１０３の起動後の定常回転状態で行われる。上述のように、サーボ領域２０２はディスク１０１の円周方向に等間隔に配置されている。このため、ヘッド１０２によってディスク１０１から読み出され、ヘッドＩＣ１０７で増幅されたアナログ信号中には、サーボ領域２０２に記録されているサーボ信号が時間的に等間隔に現れることになる。リード・ライトＩＣ１０８（リード・ライトＩＣ１０８に含まれているサーボブロック１２１）とゲートアレイ１０９とは、この状態を利用して上記アナログ信号を処理することにより、ヘッド１０２の位置決めのための信号を生成する。ＣＰＵ１１５はこの信号をもとにモータドライバ１０６を制御することにより、当該モータドライバ１０６からＶＣＭ１０４に、ヘッド１０２の位置決めのための電流（ＶＣＭ電流）をリアルタイムで供給させる。
【００２４】
ＣＰＵ１１５は、上述のようにモータドライバ１０６を介してＳＰＭ１０３及びＶＣＭ１０４を制御する一方で、ＨＤＤ１００内の他の要素の制御及びコマンド処理などを行う。ＣＰＵ１１５はＣＰＵバス１１２に接続されている。
【００２５】
ＣＰＵバス１１２には、リード・ライトＩＣ１０８、ゲートアレイ１０９、ディスクコントローラ（ＨＤＣ）１１０、ＲＡＭ１１３及びフラッシュＲＯＭ１１４が接続されている。フラッシュＲＯＭ１１４は、書き換え可能な不揮発性メモリである。ここでは、フラッシュＲＯＭ１１４の書き換えは、ＣＰＵ１１５からの制御により行われる。
【００２６】
フラッシュＲＯＭ１１４には、ＣＰＵ１１５が実行すべきプログラムが予め格納されている。ＣＰＵ１１５による上述の制御は、当該ＣＰＵ１１５が上記プログラムを実行することにより実現される。フラッシュＲＯＭ１１４には更に後述するブロック数テーブル６００（図６参照）が予め格納されている。
【００２７】
ＲＡＭ１１３は、例えばＣＰＵ１１５が使用する種々の変数を格納するのに用いられる。ＲＡＭ１１３の記憶領域の一部は、ＣＰＵ１１５のワーク領域として用いられる。ＲＡＭ１１３の記憶領域の他の一部は、トラックグループ毎のライト回数（データライト回数、ライト実行回数）を保持するライトカウントテーブル５００（図５参照）を格納するのに用いられる。
【００２８】
リード・ライトＩＣ１０８は、サーボブロック１２１とリード・ライトブロック１２２とを有する。サーボブロック１２１は、サーボ信号の抽出を含む、ヘッド１０２の位置決めに必要な信号処理を行う。リード・ライトブロック１２２は、データの読み出し・書き込みのための信号処理を行う。ゲートアレイ１０９は、サーボブロック１２１によるサーボ信号の抽出のための信号を含む、制御用の諸信号を生成する。
【００２９】
ＨＤＣ１１０は、ＣＰＵバス１１２以外に、リード・ライトＩＣ１０８、ゲートアレイ１０９及びバッファＲＡＭ１１１に接続されている。ＨＤＣ１１０は、ホストブロック１２３、リード・ライトブロック１２４及びバッファブロック１２５を有する。ホストブロック１２３は、ホストシステム２００から転送されるコマンド（ライトコマンド、リードコマンド等）を受信し、且つホストとＨＤＣ１１０との間のデータ転送を制御する、ホストインタフェース制御機能を有する。リード・ライトブロック１２４は、リード・ライトＩＣ１０８及びゲートアレイ１０９と接続され、リード・ライトＩＣ１０８を介して行われるデータの読み出し・書き込み処理を行う。バッファブロック１２５は、バッファＲＡＭ１１１を制御する。バッファＲＡＭ１１１の記憶領域の一部は、ＨＤＣ１１０（ＨＤＣ１１０内のリード・ライトブロック１２４）を介してディスク１０１に書き込まれるべきデータ（ライトデータ）を一時格納するためのライトバッファとして用いられる。バッファＲＡＭ１１１の記憶領域の別の一部は、ＨＤＣ１１０を介してディスク１０１から読み出されたデータ（リードデータ）を一時格納するためのリードバッファとして用いられる。
【００３０】
リード・ライトＩＣ１０８、ゲートアレイ１０９、及びＨＤＣ１１０は、それぞれ制御用レジスタを有する。これらの制御用レジスタは、それぞれＣＰＵ１１５のメモリ空間の一部に割り当てられており、ＣＰＵ１１５はこの一部の領域に対してアクセスすることで、制御用レジスタを介してリード・ライトＩＣ１０８、ゲートアレイ１０９、またはＨＤＣ１１０を制御する。
【００３１】
図１のＨＤＤ１００において、データの読み出しは次のように行われる。まずヘッド１０２によってディスク１０１から読み出された信号（アナログ信号）は、ヘッドＩＣ１０７によって増幅される。増幅されたアナログ信号はリード・ライトＩＣ１０８によってサーボ信号とデータ信号とに分離される。データ信号はリード・ライトＩＣ１０８内のリード・ライトブロック１２２で復号化された後ＨＤＣ１１０に送られる。ＨＤＣ１１０内のリード・ライトブロック１２４は、復号化されたデータ信号をゲートアレイ１０９からの制御用の信号に従って処理することにより、ホストシステム２００に転送すべきデータを生成する。ここでの処理は、後述するＥＣＣデータに基づくデータの誤りの検出と誤りの訂正とを含む。生成されたデータは、ＨＤＣ１１０内のバッファブロック１２５によって一旦バッファＲＡＭ１１１に格納されてから、当該ＨＤＣ１１０内のホストブロック１２３によってホストシステム２００に転送される。
【００３２】
図１のＨＤＤ１００において、データの書き込みは次のように行われる。ホストシステム２００からＨＤＣ１１０に転送されたデータは、当該ＨＤＣ１１０内のホストブロック１２３で受信された後、当該ＨＤＣ１１０内のバッファブロック１２５によって一旦バッファＲＡＭ１１１に格納される。バッファＲＡＭ１１１に格納されたデータは、バッファブロック１２５によって取り出された後、ゲートアレイ１０９からの制御用の信号に従ってＨＤＣ１１０内のリード・ライトブロック１２４によってリード・ライトＩＣ１０８へ送られる。リード・ライトＩＣ１０８に送られたデータは、当該リード・ライトＩＣ１０８内のリード・ライトブロック１２２によって符号化される。符号化されたデータはヘッドＩＣ１０７を介してヘッド１０２に送られて、当該ヘッド１０２によってディスク１０１に書き込まれる。上述のデータの読み出し／書き込みは、ＣＰＵ１１５の制御の下で行われる。
【００３３】
次に、図１のＨＤＤ１００で実行されるデータリフレッシュ動作の概要について、図３及び図４を参照して説明する。図３において、同図（ａ）及び（ｂ）は、本実施形態で適用されるデータリフレッシュ動作（以下、第１のデータリフレッシュ動作と称する）の概要を、ヘッド１０２がディスク１０１上に描く軌跡を用いて説明するための概念図であり、同図（ｃ）及び（ｄ）は、ＲＡＭに代えてディスク１０１上の特定トラックをバックアップトラックとして用いる場合に一般に適用されると想定されるデータリフレッシュ動作（以下、第２のデータリフレッシュ動作と称する）の概要を、ヘッド１０２がディスク１０１上に描く軌跡を用いて説明するための概念図である。図４は、第１のデータリフレッシュ動作を、ディスク１０１上のトラックを対象とするデータの読み出し／書き込みを中心に説明するための概念図である。
【００３４】
まず、第２のデータリフレッシュ動作について、図３（ｃ）及び（ｄ）を参照して説明する。図３（ｃ）及び（ｄ）の例では、ディスク１０１上の例えば外周側のトラック２０１がバックアップトラック２０１ｂとして割り当てられている。また、図３（ｃ）及び（ｄ）の例では、データリフレッシュの対象となるトラック２０１、つまりリフレッシュトラック２０１が、リフレッシュトラック２０１ｒと表現されている。
【００３５】
図３（ｃ）及び（ｄ）には、第２のデータリフレッシュ動作の手順Ｂ１乃至Ｂ１２に対応付けて、当該第２のデータリフレッシュ動作が開始されてから完了するまでにヘッド１０２がディスク１０１上に描く軌跡Ｂ１乃至Ｂ１２が示されている。つまり、図３（ｃ）及び（ｄ）において、参照符号Ｂ１乃至Ｂ１２は、第２のデータリフレッシュ動作の手順とヘッド１０２が描く軌跡とを示す。
【００３６】
第２のデータリフレッシュ動作では、まず、ヘッド１０２を現在の位置Ｐｃからリフレッシュトラック２０１ｒに移動させるためのシーク動作Ｂ１が行われる。このシーク動作Ｂ１により、軌跡Ｂ１が描かれる。
【００３７】
次に、リフレッシュトラック２０１ｒまで移動されたヘッド１０２に、当該トラック２０１ｒ上のリフレッシュライト開始位置Ｐｓがディスク１０１の回転に伴って到達するのを待つ、いわゆる回転待ちＢ２が発生する。この回転待ちＢ２により、軌跡Ｂ２が描かれる。
【００３８】
次に、リフレッシュトラック２０１ｒ上のリフレッシュライト開始位置Ｐｓから始まる記憶領域から、リフレッシュされるべき元データを読み出すためのリフレッシュデータリード動作Ｂ３が行われる。このリフレッシュデータリード動作Ｂ３により、軌跡Ｂ３が描かれる。
【００３９】
次に、ヘッド１０２を、リフレッシュデータリード動作Ｂ３が完了した位置からバックアップトラック２０１ｂに移動させるためのシーク動作Ｂ４が行われる。このシーク動作Ｂ４により、軌跡Ｂ４が描かれる。
【００４０】
次に、バックアップトラック２０１ｂまで移動されたヘッド１０２に、当該トラック２０１ｂ上の所定のバックアップライト開始位置（例えば当該トラック２０１ｂ上の先頭セクタ）が到達するのを待つ回転待ちＢ５が発生する。この回転待ちＢ５により、軌跡Ｂ５が描かれる。
【００４１】
次に、バックアップトラック２０１ｂ上のバックアップライト開始位置（つまりバックアップライト開始セクタ）から始まる記憶領域に、先のリフレッシュデータリード動作Ｂ３で読み出された元データを書き込む（退避する）ためのバックアップライト動作Ｂ６が行われる。このバックアップライト動作Ｂ６により、軌跡Ｂ６が描かれる。バックアップライト動作Ｂ６では、元データだけでなくリフレッシュ管理情報もバックアップトラック２０１ｂに書き込まれる。このリフレッシュ管理情報は、リフレッシュデータリード動作Ｂ３の実行アドレス（開始アドレス）及びブロック数を含む。この実行アドレスは、リフレッシュライト開始位置Ｐｓを示す。
【００４２】
次に、ヘッド１０２を、バックアップライト動作Ｂ６が完了した位置からリフレッシュトラック２０１ｒに移動させるためのシーク動作Ｂ７が行われる。このシーク動作Ｂ７により、軌跡Ｂ７が描かれる。
【００４３】
次に、リフレッシュトラック２０１ｒまで移動されたヘッド１０２に、当該トラック２０１ｒ上のリフレッシュライト開始位置Ｐｓが到達するのを待つ回転待ちＢ８が発生する。この回転待ちＢ８により、軌跡Ｂ８が描かれる。
【００４４】
次に、リフレッシュトラック２０１ｒ上のリフレッシュライト開始位置Ｐｓから始まる記憶領域に、先のリフレッシュデータリード動作Ｂ３で読み出された元データを書き込む（書き戻す）ためのリフレッシュライト動作Ｂ９が行われる。このリフレッシュライト動作Ｂ９により、軌跡Ｂ９が描かれる。
【００４５】
次に、ヘッド１０２を、リフレッシュライト動作Ｂ９が完了した位置からバックアップトラック２０１ｂに移動させるためのシーク動作Ｂ１０が行われる。このシーク動作Ｂ１０により、軌跡Ｂ１０が描かれる。
【００４６】
次に、バックアップトラック２０１ｂまで移動されたヘッド１０２に、当該トラック２０１ｂ上のバックアップライト開始位置が到達するのを待つ回転待ちＢ１１が発生する。この回転待ちＢ１１により、軌跡Ｂ１１が描かれる。
【００４７】
次に、バックアップトラック２０１ｂ上のバックアップライト開始位置から始まる記憶領域に書き込まれているリフレッシュ管理情報を、リフレッシュライト動作の完了を示す完了フラグを含むリフレッシュ管理情報に書き換える動作Ｂ１２が行われる。この動作Ｂ１２により、軌跡Ｂ１２が描かれる。動作Ｂ１２が完了すると、第２のデータリフレッシュ動作は終了する。
【００４８】
図３（ｃ）及び（ｄ）に示す第２のデータリフレッシュ動作では、ディスク１０１のほぼ３回転に要する時間、回転待ちが発生する。
【００４９】
次に、本実施形態で適用される第１のデータリフレッシュ動作について、図３（ａ）及び（ｂ）並びに図４を参照して説明する。図３（ａ）及び（ｂ）の例においても、図３（ｃ）及び（ｄ）の例と同様に、ディスク１０１上の外周側のトラック２０１がバックアップトラック２０１ｂとして割り当てられているものとする。また図３（ａ）及び（ｂ）の例においても、データリフレッシュの対象となるトラック２０１、つまりリフレッシュトラック２０１が、リフレッシュトラック２０１ｒと表現されている。なお、図３（ａ）及び（ｂ）の例では、単一のバックアップトラック２０１ｂ及びリフレッシュトラック２０１ｒが示されているが、シリンダ番号が連続する複数のバックアップトラック２０１ｂ及びリフレッシュトラック２０１ｒが用いられても構わない。
【００５０】
図３（ａ）及び（ｂ）には、第１のデータリフレッシュ動作の手順Ａ１乃至Ａ１１に対応付けて、当該第１のデータリフレッシュ動作が開始されてから完了するまでにヘッド１０２がディスク１０１上に描く軌跡Ａ１乃至Ａ１１が示されている。つまり、図３（ａ）及び（ｂ）において、参照符号Ａ１乃至Ａ１１は、第２のデータリフレッシュ動作の手順とヘッド１０２が描く軌跡とを示す。
【００５１】
第１のデータリフレッシュ動作では、まず第２のデータリフレッシュ動作と同様に、ヘッド１０２を現在の位置Ｐｃからリフレッシュトラック２０１ｒに移動させるためのシーク動作Ａ１が行われる。このシーク動作Ａ１により、軌跡Ａ１が描かれる。
【００５２】
次に、リフレッシュトラック２０１ｒまで移動されたヘッド１０２に、当該トラック２０１ｒ上のリフレッシュライト開始位置Ｐｓが到達するのを待つ回転待ちＡ２が発生する。この回転待ちＡ２により、軌跡Ａ２が描かれる。
【００５３】
次に、リフレッシュトラック２０１ｒ上のリフレッシュライト開始位置Ｐｓから始まる記憶領域４０１（図４参照）から、リフレッシュされるべき元データ（リフレッシュデータ）を読み出すためのリフレッシュデータリード動作Ａ３が行われる。このリフレッシュデータリード動作Ａ３により、軌跡Ａ３が描かれる。
【００５４】
次に、ヘッド１０２を、リフレッシュデータリード動作Ａ３が完了した位置からバックアップトラック２０１ｂに移動させるためのシーク動作（第１のシーク動作）Ａ４が行われる。このシーク動作Ａ４により、軌跡Ａ４が描かれる。ここまでの動作は、第２のデータリフレッシュ動作と同様である。
【００５５】
シーク動作Ａ４が完了すると、ヘッド１０２が到達したバックアップトラック２０１ｂの位置に対応するセクタをバックアップライト開始セクタとして、当該開始セクタから始まる記憶領域４０２（図４参照）に、先のリフレッシュデータリード動作Ａ３で読み出された元データ（リフレッシュデータ）を書き込むためのバックアップライト動作Ａ５が行われる。ヘッド１０２が到達したバックアップトラック２０１ｂの位置に対応するセクタとは、シーク動作Ａ４が完了した後に、バックアップトラック２０１ｂのセクタのうち、最初にヘッド１０２に到達するセクタを指す。
【００５６】
バックアップライト動作Ａ５では、元データ（リフレッシュデータ）の前後に、ヘッダ及びフッタが付される。ヘッダ及びフッタは、それぞれリフレッシュ管理情報を含む。このリフレッシュ管理情報については後述する。
【００５７】
上述のバックアップライト動作Ａ５から明らかなように、第１のデータリフレッシュ動作では、シーク動作Ａ４が完了してからバックアップライト動作Ａ５が開始されるまでの待ち時間（回転待ちの時間）はほぼ０となる。第１のデータリフレッシュ動作では、第２のデータリフレッシュ動作と異なり、バックアップライト開始セクタが予め定められていない点に注意されるべきである。バックアップライト動作Ａ５により、軌跡Ａ５が描かれる。
【００５８】
次に、ヘッド１０２を、バックアップライト動作Ａ５が完了したバックアップトラック２０１ｂ上の位置から、リフレッシュ管理情報が書き込まれるべきトラック２０１、つまりリフレッシュ管理トラック２０１に移動させるためのシーク動作（第３のシーク動作）Ａ６が行われる。図３（ａ）及び（ｂ）の例では、このリフレッシュ管理トラック２０１が、リフレッシュ管理トラック２０１ｒｍと表現されている。ここでは、バックアップトラック２０１ｂにディスク１０１の内周側で隣接するトラック２０１が、リフレッシュ管理トラック２０１ｒｍとして割り当てられている。図３（ａ）及び（ｂ）の例では、シーク動作Ａ６により、軌跡Ａ６が描かれる。
【００５９】
シーク動作Ａ６が完了すると、ヘッド１０２が到達したリフレッシュ管理トラック２０１ｒｍの位置に対応するセクタ（記憶領域）４０３（図４参照）にリフレッシュ管理情報を書き込むためのリフレッシュ管理情報ライト動作Ａ７が行われる。このため、シーク動作Ａ６が完了してからリフレッシュ管理情報ライト動作Ａ７が開始されるまでの回転待ちの時間はほぼ０となる。このリフレッシュ管理情報ライト動作Ａ７により、軌跡Ａ７が描かれる。
【００６０】
リフレッシュ管理情報ライト動作Ａ７でリフレッシュ管理トラック２０１ｒｍ上のセクタ４０３に書き込まれるリフレッシュ管理情報は、リフレッシュデータリード動作Ａ３及びバックアップライト動作Ａ５の実行アドレス（開始アドレス）及びブロック数、完了フラグ並びにカウンタ値を含む。リフレッシュデータリード動作Ａ３の実行アドレスは、シリンダアドレス、ヘッドアドレス及びセクタアドレスから構成され、当該リード動作Ａ３で読み出されたデータ（元データ）が書き込まれている、リフレッシュトラック２０１ｒの記憶領域の開始位置、つまりリフレッシュライト開始位置Ｐｓを示す。バックアップライト動作Ａ５の実行アドレスも、シリンダアドレス、ヘッドアドレス及びセクタアドレスから構成され、当該ライト動作Ａ５でデータ（元データ）が書き込まれた、バックアップトラック２０１ｂの記憶領域の開始位置、つまりバックアップライト開始位置を示す。
【００６１】
リフレッシュ管理情報ライト動作Ａ７でリフレッシュ管理トラック２０１ｒｍのセクタ４０３（図４参照）に書き込まれるリフレッシュ管理情報に含まれている完了フラグはリセット（ＯＦＦ）状態にあり、リフレッシュライト動作が未完了であることを示す。またリフレッシュ管理情報中のカウント値には、リフレッシュ管理トラック２０１ｒｍへの書き込みが実行される都度インクリメントされる値が用いられる。なお、バックアップトラック２０１ｂに書き込まれるリフレッシュデータ（元データ）の前後に付されるヘッダ及びフッタに含まれるリフレッシュ管理情報は、リフレッシュ管理情報ライト動作Ａ７でリフレッシュ管理トラック２０１ｒｍに書き込まれるリフレッシュ管理情報と同一であるものとする。
【００６２】
次に、ヘッド１０２を、リフレッシュ管理情報ライト動作Ａ７が完了したリフレッシュ管理トラック２０１ｒｍ上の位置からリフレッシュトラック２０１ｒに移動させるためのシーク動作Ａ８が行われる。このシーク動作Ａ８により、軌跡Ａ８が描かれる。
【００６３】
本実施形態では、シーク動作Ａ８が完了した際にヘッド１０２が到達するバックアップトラック２０１ｂの位置が、リフレッシュライト開始位置Ｐｓのセクタに対応するように、バックアップライト及びリフレッシュライトされるブロック（セクタ）数が設定される。ここで、バックアップトラック２０１ｂ及びリフレッシュトラック２０１ｒのそれぞれトラック当たりのブロック数は、ディスク１０１の記録フォーマットにＣＤＲを適用する本実施形態では必ずしも等しくはない。
【００６４】
そこで本実施形態では、Ｎ及びＬを自然数とすると、リフレッシュデータリード動作Ａ３が完了した後、ディスク１０１のＮ回転に対応する時間で、バックアップライト動作Ａ５及び後述するリフレッシュライト動作Ａ９が完了するように、リフレッシュされるべきブロック（セクタ）数Ｌ、つまりバックアップライト及びリフレッシュライトされるブロック（セクタ）数Ｌが設定される。このブロック（リフレッシュブロック）数Ｌの設定では、トラック当たりのブロック数がＣＤＲゾーンによって異なる点と、シーク動作（第１のシーク動作）Ａ４及びシーク動作（第２のシーク動作）Ａ８に要する時間とが考慮される。このブロック数Ｌの設定については後述する。
【００６５】
シーク動作Ａ８が完了した際のヘッド１０２の位置は、上記設定により、リフレッシュトラック２０１ｒ上のリフレッシュライト開始位置Ｐｓに対応する。そこでシーク動作Ａ８が完了すると、リフレッシュトラック２０１ｒ上のリフレッシュライト開始位置Ｐｓから始まる記憶領域４０１（図４参照）に、先のリフレッシュデータリード動作Ａ３で読み出された元データを書き戻すためのリフレッシュライト動作Ａ９が直ちに行われる。シーク動作Ａ８が完了してからリフレッシュライト動作Ａ９が開始されるまでの待ち時間（回転待ちの時間）はほぼ０である。図３（ａ）及び（ｂ）の例では、リフレッシュライト動作Ａ９により、軌跡Ａ９が描かれる。
【００６６】
次に、ヘッド１０２を、リフレッシュライト動作Ａ９が完了したリフレッシュトラック２０１ｒ上の位置からリフレッシュ管理トラック２０１ｒｍに移動させるためのシーク動作Ａ１０が行われる。このシーク動作Ａ１０により、軌跡Ａ１０が描かれる。
【００６７】
シーク動作Ａ１０が完了すると、その際にヘッド１０２が到達したリフレッシュ管理トラック２０１ｒｍの位置に対応するセクタ４０４（図４参照）にリフレッシュ管理情報を書き込むためのリフレッシュ管理情報ライト動作Ａ１１が行われる。このリフレッシュ管理情報ライト動作Ａ１１により、軌跡Ａ１１が描かれる。リフレッシュ管理情報ライト動作Ａ１１が完了すると、第１のデータリフレッシュ動作は終了する。
【００６８】
上述したように、図３（ａ）及び（ｂ）に示す第１のデータリフレッシュ動作では、ディスク１０１のＮ回転に対応する時間で、バックアップライト動作Ａ５及びリフレッシュライト動作Ａ９が完了するように、リフレッシュされるべきブロック数が設定される。このため、図３（ａ）及び（ｂ）に示す第１のデータリフレッシュ動作では、回転待ちを、ディスク１０１のほぼ１．５回転に要する時間に低減することができる。
【００６９】
さて、リフレッシュ管理情報ライト動作Ａ１１でリフレッシュ管理トラック２０１ｒｍ上のセクタ４０４に書き込まれるリフレッシュ管理情報（以下、第１のリフレッシュ管理情報と称する）は、リフレッシュ管理情報ライト動作Ａ７でリフレッシュ管理トラック２０１ｒｍ上のセクタ４０３に書き込まれるリフレッシュ管理情報（以下、第２のリフレッシュ管理情報と称する）と同様に、完了フラグ及びカウント値を含む。但し、第１のリフレッシュ管理情報に含まれている完了フラグは、第２のリフレッシュ管理情報と異なってセット（ＯＮ）状態にあり、リフレッシュライト動作が完了していること（リフレッシュライト済み）を示す。
【００７０】
このため、リフレッシュライト動作中にＨＤＤ１００の電源が遮断してリフレッシュライト動作が完了しなかった場合、リフレッシュ管理トラック２０１ｒｍには、今回行われたリフレッシュライト動作の完了を示す完了フラグを含む第１のリフレッシュ管理情報は書き込まれないことになる。このため、リフレッシュライト動作が完了したか否かは、最新の第１のリフレッシュ管理情報がリフレッシュ管理トラック２０１ｒｍに書き込まれているか否か、つまりリフレッシュライト動作の完了を示す完了フラグを含む最新のリフレッシュ管理情報（第１のリフレッシュ管理情報）がリフレッシュ管理トラック２０１ｒｍに書き込まれているか否かによって判定することができる。
【００７１】
第１のリフレッシュ管理情報に含まれているカウント値は、最も最近のリフレッシュ管理情報ライト動作Ａ７でリフレッシュ管理トラック２０１ｒｍに書き込まれた第２のリフレッシュ管理情報中のカウント値よりも１だけ大きい。
【００７２】
本実施形態では、リフレッシュ管理情報ライト動作Ａ７及びＡ１１のそれぞれでリフレッシュ管理情報が書き込まれるセクタ（つまりリフレッシュ管理トラック２０１ｒｍ上のセクタ）は、常に同一であるとは限らない。しかし、リフレッシュ管理情報中のカウント値には、リフレッシュ管理トラック２０１ｒｍへの書き込みが実行される都度インクリメントされる値が用いられる。このため、リフレッシュ管理トラック２０１ｒｍ内の複数のセクタにリフレッシュ管理情報が書き込まれている場合、リフレッシュ管理情報中のカウント値を比較して、最も値が大きいカウント値を含むリフレッシュ管理情報を、最新のリフレッシュ管理情報と特定することができる。そして、この最新のリフレッシュ管理情報中の完了フラグの状態に基づき、当該リフレッシュ管理情報中の実行アドレス及びブロック数で示されるディスク１０１上の記憶領域のデータのリフレッシュライト動作が完了しているかを判定することができる。
【００７３】
次に、ディスク１０１のＮ回転に対応する時間、例えばディスク１０１がちょうどＮ回転するのに要する時間で、バックアップライト動作Ａ５及びリフレッシュライト動作Ａ９が完了するようにブロック（リフレッシュブロック）数Ｌを設定するための計算式について説明する。リフレッシュブロック数Ｌは、１回のバックアップライト動作Ａ５及びリフレッシュライト動作Ａ９での書き込みに用いられるブロック数を示す。
【００７４】
本実施形態において、リフレッシュ管理情報の書き込みに必要なブロック数は１ブロックであり、リフレッシュブロック数Ｌに比べて十分少ない。このため本実施形態では、リフレッシュ管理情報を書き込むのに必要な時間については、説明の簡略化のため考慮されていない。また、この時間を考慮しなくても、リフレッシュブロック数Ｌの算出に大きな影響はない。勿論、この時間を考慮して、リフレッシュブロック数Ｌを算出することも可能である。
【００７５】
また、リフレッシュトラック２０１ｒからバックアップトラック２０１ｂに、またはその逆の方向に、ヘッド１０２を移動するためのシーク動作に必要な時間が２０ｍｓであるものとする。
【００７６】
次に、リフレッシュトラック２０１ｒが属するＣＤＲゾーンのトラック当たりのブロック数が１０００であり、バックアップトラック２０１ｂが属するＣＤＲゾーンのトラック当たりのブロック数が２０００であるものとする。
【００７７】
また、ディスク１０１の１分（つまり６０秒）当たりの回転数が５４００であり、したがってディスク１０１の１回転に要する時間が１１ｍｓであるものとする。
【００７８】
この場合、バックアップトラック２０１ｂにＬブロックのデータをライトするためのバックアップライト動作に必要な時間（バックアップライト時間）Ｔｂは、次式
Ｔｂ[ms]＝１１×(Ｌ／２０００)                          （１）
で表される。
【００７９】
同様に、リフレッシュトラック２０１ｒにＬブロックのデータをライトするためのリフレッシュライト動作に必要な時間（リフレッシュライト時間）Ｔｒは、次式
Ｔｒ[ms]＝１１×(Ｌ／１０００)                          （２）
で表される。
【００８０】
よって、次の条件式
Ｔｂ＋Ｔｒ＋２×２０（往復のシーク時間）
＝１１×(Ｌ／２０００)＋１１×(Ｌ／１０００)＋２×２０
＝１１（１回転に要する時間）×Ｎ                      （３）
が成立する。
【００８１】
上記条件式（３）を変形すると、次の条件式
３３Ｌ＝２２０００×Ｎ−８００００                      （４）
のように表される。
【００８２】
条件式（４）を満たす、自然数Ｎ及びＬは、
Ｎ＝４、且つＬ＝２４２
Ｎ＝５、且つＬ＝９０９
Ｎ＝６、且つＬ＝１５７６
……
のようになる。
【００８３】
そこで、これらのＬのうち、バッファＲＡＭ１１１内のライトバッファの容量以下で、且つ最大のＬを、リフレッシュブロック数とするならば、回転待ちを低減して効率よくデータリフレッシュを実行することができる。
【００８４】
ここで、バックアップトラック２０１ｂが属するＣＤＲゾーンのトラック当たりのブロック数をＢｂ、リフレッシュトラック２０１ｒが属するＣＤＲゾーンのトラック当たりのブロック数をＢｒ、そしてディスク１０１の１回転に要する時間をＴｄ[ms]とする。この場合、バックアップライト時間Ｔｂ及びＴｒは、それぞれ次式
Ｔｂ[ms]＝Ｔｄ×(Ｌ／Ｂｂ)                              （５）
Ｔｒ[ms]＝Ｔｄ×(Ｌ／Ｂｒ)                              （６）
で表される。
【００８５】
よって、リフレッシュトラック２０１ｒからバックアップトラック２０１ｂに、またはその逆の方向に、ヘッド１０２を移動するためのシーク動作に必要な時間をＴｓとするならば、次の条件式
Ｔｂ＋Ｔｒ＋２×Ｔｓ（往復のシーク時間）
＝Ｔｄ×(Ｌ／Ｂｂ)＋Ｔｄ×(Ｌ／Ｂｒ)＋２×Ｔｓ
＝Ｔｄ（１回転に要する時間）×Ｎ                      （７）
が成立する。
【００８６】
上記条件式（７）を変形すると、次の条件式
（Ｂｂ＋Ｂｒ）×Ｔｄ×Ｌ
＝Ｂｂ×Ｂｒ×｛（Ｔｄ×Ｎ）−２×Ｔｓ｝              （８）
のように表される。この条件式（８）から、ブロック数Ｂｂ及びＢｒと、ディスク１０１の１回転に要する時間Ｔｄと、シーク時間Ｔｓとに基づいて、ＮとＬとの関係を取得することができることは明らかである。前述の条件式（４）は、Ｂｂ、Ｂｒ、Ｔｄ、Ｔｓが、それぞれ２０００、１０００、１１[ms]、２０［ms］である場合のＮとＬとの関係を示したものである。
【００８７】
本実施形態では、ディスク１０１の記録面に配置されたトラック２０１の集合は予め定められた一定数のトラックを単位にグループ化されて、グループ単位でデータリフレッシュ動作が行われる。このグループを、トラックグループと称する。ここでは、トラックグループ毎に、そのトラックグループ全体へのデータライト動作の総数（ライト回数）がカウントされる。このカウント値が予め定められた一定値に達したならば、該当するトラックグループを対象とするデータフリフレッシュ処理が、上記ブロック数Ｌを単位に行われる。
【００８８】
図５はトラックグループ毎のライト回数（データライト回数、ライト実行回数）を保持するライトカウントテーブル５００のデータ構造例を示す。ライトカウントテーブル５００は、例えば図１におけるＲＡＭ１１３の所定の領域に格納される。
【００８９】
図５のライトカウントテーブル５００の例では、説明の一般化のために、ＨＤＤ１００がｍ本のヘッド１０２を有すると共に、当該ＨＤＤ１００がｐ個のシリンダグループから構成される場合を想定している。この場合、ライトカウントテーブル５００は、ヘッド（ヘッド番号）ｈ、シリンダグループ（シリンダグループ番号）ｃを用いて表される全てのトラックグループの各々について、そのトラックグループへのデータライト動作の回数（ライト回数）Ｗ（ｈ，ｃ）（０≦ｈ≦ｍ−１，０≦ｃ≦ｐ−１）を保持している。Ｗ（ｈ，ｃ）はヘッド番号ｈ及びシリンダグループ番号ｃで特定されるトラックグループへのライト回数をカウントするライトカウンタとして用いられる。なお、図１のＨＤＤ１００の構成の場合、ｍは１である。
【００９０】
シリンダグループとは、予め定められた一定数のシリンダの集合であり、１シリンダグループ当たりのシリンダ数は、トラックグループ当たりのトラック数と同じである。したがって、同一のシリンダグループ番号を持つトラックグループは、ＨＤＤ１００内に、ヘッド１０２の数ｍに一致する数だけ存在する。トラックグループは、シリンダグループ番号ｃとヘッド番号ｈとにより特定される。シリンダグループ番号ｃとヘッド番号ｈとで特定されるトラックグループ内のトラックへのデータの書き込み（ライトアクセス）が行われると、カウントテーブル５００に保持されているライト回数（ライトカウンタ）Ｗ（ｈ，ｃ）が、書き込みが行われた回数だけインクリメントされる。
【００９１】
本実施形態では、ライトカウントテーブル５００は、前述のようにＲＡＭ１１３に格納される。ＲＡＭ１１３の内容はＨＤＤ１００の電源の遮断により失われる。したがって、ライトカウントテーブル５００の内容も電源遮断と共に失われる。このため本実施形態では、ライトカウントテーブル５００を含む、ＲＡＭ１１３内の予め定められた領域の内容は、必要に応じて（例えばＨＤＤ１００の省電力状態への移行時に）、ディスク１０１の所定領域に保存（退避）される。このディスク１０１の所定領域に保存されたカウントテーブル５００を含む内容は、ＨＤＤ１００の起動時（電源投入時）に読み出されて、ＲＡＭ１１３内に復元される。
【００９２】
図６はＣＤＲゾーン毎のトラック当たりのブロック数をヘッド（ヘッド番号）別に保持するブロック数テーブル６００のデータ構造例を示す。ブロック数テーブル６００は、図１におけるフラッシュＲＯＭ１１４の記憶領域の一部に予め格納されてる。
【００９３】
図６のブロック数テーブル６００の例では、説明の一般化のために、ＨＤＤ１００がｍ本のヘッド１０２を有すると共に、ディスク１０１の記録面当たりのＣＤＲゾーン数がｐである場合を想定している。この場合、ブロック数テーブル６００は、ＣＤＲゾーン（ゾーン番号）ｚ及びヘッド（ヘッド番号）ｈを用いて表される、ＣＤＲゾーンの各々について、そのゾーンのトラック当たりのブロック数Ｂ（ｈ，ｚ）（０≦ｈ≦ｍ−１，０≦ｚ≦ｐ−１）を保持している。
【００９４】
ブロック数テーブル６００は、ＨＤＤ１００の電源投入時に、フラッシュＲＯＭ１１４から読み出されてＲＡＭ１１３の所定領域に格納される。前述のリフレッシュブロック数Ｌの計算には、このＲＡＭ１１３に格納されたブロック数テーブル６００が用いられる。
【００９５】
次に、図１のＨＤＤ１００における全体的な動作について、図７のフローチャートを参照して説明する。  
まず、ＨＤＤ１００の電源が投入され、ＣＰＵ１１５の動作が開始されたものとする（ステップ７０１）、するとＣＰＵ１１５は、ＨＤＤ１００全体を対象とする初期化処理及び起動処理を行う（ステップ７０２）。起動処理が終わるとＣＰＵ１１５は、ＨＤＣ１１０を介してホストシステム２００からコマンドを受信できる状態になり、コマンド待ちループ（ステップ７０３乃至７０７）に入る。
【００９６】
ステップ７０３においてホストシステム２００からのコマンドの受信を確認すると、ＣＰＵ１１５は、ステップ７１２に分岐することでコマンド待ちループを抜け、ホストシステム２００からのコマンドに応じた処理を実行する。ステップ７１２においてＣＰＵ１１５は、ホストシステム２００からのコマンドがライトコマンドであるかを判定する。もし、そうであれば（ステップ７１２がＹＥＳ）、ＣＰＵ１１５は、ライトコマンドで指定されたライト処理を行う（ステップ７１３）。
【００９７】
ライト処理（ステップ７１３）が完了したなら、ＣＰＵ１１５は、そのライト処理がライトカウントテーブル５００に反映されるように、当該テーブル５００を更新する（ステップ７１４）。つまりＣＰＵ１１５は、ライト処理がヘッドｈ、シリンダグループｃで特定されるトラックグループに対して行われた場合、ライトカウントテーブル５００内のライト回数Ｗ（ｈ，ｃ）をライト処理が反映されるように更新する。更に詳細に述べるならば、ＣＰＵ１１５は、ライトカウントテーブル５００内のライト回数Ｗ（ｈ，ｃ）に対してライトが行われた回数を加算する。ここでは通常は、１が加算される。但し、ライト処理でリトライが行われた場合には、当該リトライも通常のライト動作と同様に隣接トラックに影響するので、当該リトライの回数も併せて加算される。
【００９８】
ステップ７１４が実行されると、ライトコマンドの処理は完了する。そこでＣＰＵ１１５は、レジスタ類の更新、及びビジー状態の解除など、コマンドの終了処理を行い（ステップ７１５）、コマンド待ちループに戻る。
【００９９】
一方、受信したコマンドがライトコマンド以外であった場合（ステップ７１２がＮＯ）、ＣＰＵ１１５は、当該受信したコマンドに応じた処理（ステップ７２０）及びコマンドの終了処理（ステップ７１５）を行い、コマンド待ちループに戻る。
【０１００】
次に、コマンド待ちループにおけるステップ７０３で、コマンドを受信していないと判定されたものとする。この場合、アイドル時処理が行われる。また、ステップ７１５でコマンドの終了処理が行われた後も、アイドル時処理が行われる。アイドル時処理は、データリフレッシュ処理を含む。本実施形態においてＣＰＵ１１５は、データリフレッシュ処理の前に、当該データリフレッシュ処理を行うかを次のように判定する（ステップ７０４，７０５）。
【０１０１】
まずステップ７０４においてＣＰＵ１１５は、データリフレッシュ処理を行わずにホストシステム２００からのコマンドを即座に実行する必要があるか、或いはリフレッシュ処理を回避すべき状況にあるかなどを総合的に判断する。コマンドを即座に実行する必要があるのは、例えば、ステップ７１５の直後にホストシステム２００からコマンドを受信した場合である。リフレッシュ処理を回避すべき状況は、例えば、外部からＨＤＤ１００に一定レベルを超える振動が加わった場合、ＨＤＤ１００の環境温度が、当該ＨＤＤ１００の動作が保証される温度範囲から外れた場合等、ＨＤＤ１００が悪条件下で用いられる場合である。
【０１０２】
次にステップ７０５においてＣＰＵ１１５は、ステップ７０４での総合的な判断結果から、データリフレッシュ処理が実行可能かを判定する。データリフレッシュ処理を行うと判定された場合のみ、ＣＰＵ１１５はデータリフレッシュ処理を行う（ステップ７０６）。このステップ７０６の詳細については後述する。
【０１０３】
ステップ７０６でのデータリフレッシュ処理が終了するか、ステップ７０５でデータリフレッシュ処理を行うべきでないと判定された場合には、ＣＰＵ１１５はステップ７０７を実行する。このステップ７０７においてＣＰＵ１１５は、省電力状態に遷移するための省電力処理を実行するかを判定し、実行する必要があるならば当該処理を実行する。省電力処理は、ヘッド１０２をディスク１０１上からアンロードさせるためのアンロード処理、及びまたは、ＳＰＭ１０３の回転を停止させるＳＰＭ停止処理のような処理を含む。
【０１０４】
ステップ７０７で省電力処理が実行されると、ＣＰＵ１１５はステップ７０３に戻る。これに対し、ホストシステム２００からのコマンドを即座に実行する必要がある場合には、ステップ７０７で省電力処理を実行すべきでないと判定される。この場合、ＣＰＵ１１５は省電力処理を実行せずにステップ７０３に戻る。以後ＣＰＵ１１５は、ステップ７０３を含む上述の処理を繰り返す。
【０１０５】
次に、上記ステップ７０６のデータリフレッシュ処理の詳細な手順について、図８のフローチャートを参照して説明する。
【０１０６】
ＣＰＵ１１５は、図８のフローチャートで示されるデータリフレッシュ処理８０１において、リフレッシュ処理が中断されているトラックグループが存在するかを判定する（ステップ８０２）。このステップ８０２は、トラックグループ内の所定のブロック数のブロック毎にリフレッシュ処理を中断できるようにしていることに関連する。
【０１０７】
所定のブロック数のブロック毎にリフレッシュ処理を中断可能とする理由は、トラックグループ内の全てのトラックのデータをリフレッシュするには時間がかかるので、リフレッシュ処理の間に受信されたホストシステム２００からのコマンドへの応答性を低下させないためである。つまり本実施形態では、リフレッシュ処理の実行中にホストシステム２００からのコマンドが受信された場合、当該コマンドの実行を優先させるために、当該リフレッシュ処理が中断される。
【０１０８】
リフレッシュ処理が中断されているトラックグループが存在するならば（ステップ８０２がＹＥＳ）、そのことはリフレッシュの対象となるトラックグループ（以下、リフレッシュトラックグループと称する）が決まっていることを意味する。この場合、ＣＰＵ１１５は、図３（ａ）及び（ｂ）を参照して説明したような、データリフレッシュ動作（ステップ８０６）を制御する。
【０１０９】
一方、リフレッシュ処理が中断されているリフレッシュトラックグループが存在しないならば（ステップ８０２がＮＯ）、ＣＰＵ１１５は新たなリフレッシュトラックグループをライトカウントテーブル５００に基づいて探す（ステップ８０３）。ここではＣＰＵ１１５は、ライトカウントテーブル５００内で値の最も大きいライト回数Ｗ（ｈ，ｃ）を検索する。そしてＣＰＵ１１５は、検索されたライト回数Ｗ（ｈ，ｃ）が予め定められた一定値を超えているかによって、リフレッシュ処理が必要なトラックグループが存在するかを判定する（ステップ８０４）。
【０１１０】
検索されたライト回数Ｗ（ｈ，ｃ）が一定値を超えている場合、ＣＰＵ１１５は、リフレッシュ処理が必要なトラックグループが存在し、そのトラックグループが当該ライト回数Ｗ（ｈ，ｃ）と対応付けられているトラックグループ（ヘッド番号ｈ、シリンダグループ番号ｃで表されるトラックグループ）であると判定する（ステップ８０４がＹＥＳ）。このように、リフレッシュ処理が必要なトラックグループ（つまりリフレッシュ処理が行われるべきリフレッシュトラックグループ）が存在すると判定される場合、そのトラックグループ（つまり値の最も大きいライト回数Ｗ（ｈ，ｃ）と対応付けられているトラックグループ）も特定される。この場合、ＣＰＵ１１５はデータリフレッシュ動作（ステップ８０６）の前処理であるリフレッシュブロック数算出処理を行う（ステップ８０５）。
【０１１１】
これに対し、検索されたライト回数Ｗ（ｈ，ｃ）が一定値以下の場合、ＣＰＵ１１５は、リフレッシュ処理が必要なトラックグループは存在しないと判断する（ステップ８０４がＮＯ）。この場合、データリフレッシュ動作を制御する必要はないので、ＣＰＵ１１５はデータリフレッシュ処理８０１から元の処理にリターンする（ステップ８１４）。これにより図７のフローチャートにおけるステップ７０７が実行される。
【０１１２】
ステップ８０５においてＣＰＵ１１５は、１回のデータリフレッシュ動作（リフレッシュライト動作）で処理されるべきブロック数（つまりリフレッシュブロック数）Ｌを算出するためのリフレッシュブロック数算出処理を実行する。データリフレッシュ動作は、バックアップライト動作（Ａ５）及びリフレッシュライト動作（Ａ９）を含む。リフレッシュブロック数Ｌは、前述の式（８）及びブロック数テーブル６００に基づいて算出される。リフレッシュブロック数算出処理（ステップ８０５）の詳細については後述する。
【０１１３】
ＣＰＵ１１５は、算出されたリフレッシュブロック数Ｌのブロックを対象に、バックアップライト動作及びリフレッシュライト動作を含むデータリフレッシュ動作（ステップ８０６）を制御する。
【０１１４】
次にＣＰＵ１１５は、データリフレッシュ動作（ステップ８０６）が完了すると、つまりリフレッシュブロック数Ｌのブロックのリフレッシュが完了すると、データリフレッシュ処理の中断要求があるかを判定する（ステップ８１０）。ホストシステム２００からのコマンドの受信は、データリフレッシュ処理の中断要求を判定する条件の１つである。ＨＤＣ１１０内のホストブロック１２３がホストシステム２００からコマンドを受信すると、当該ホストブロック１２３のハードウェアの機能によりＨＤＤ１００は即座にビジー状態に遷移する。同時に、このビジー状態を表すフラグ（ビジーフラグ）がセットされる。そこでＣＰＵ１１５は、ステップ８１０でビジーフラグの状態をチェックする。
【０１１５】
なお、ビジーフラグのセットはデータリフレッシュ動作が実行中であるかに関係なく行われる。したがって、ホストシステム２００から認識されるコマンドの応答時間は、当該コマンドを発行してからその際に実行中のデータリフレッシュ動作が完了するまでの時間と本来のコマンド実行時間との合計となる。このことから、ホストシステム２００からのコマンドが受信された場合に、リフレッシュトラックグループを対象とする全てのリフレッシュが終わるまで待つと、当該コマンドへの応答性を低下させてしまう。
【０１１６】
そこで本実施形態では、コマンドへの応答性の低下を回避するために、リフレッシュブロック数Ｌのブロックのリフレッシュが完了する毎に、上述のようにデータリフレッシュ処理の中断要求があるかが判定される（ステップ８１０）。そして、データリフレッシュ動作の実行中にホストシステム２００からのコマンドが受信された場合のように、データリフレッシュ処理の中断要求があるならば（ステップ８１０がＹＥＳ）、ＣＰＵ１１５は元の処理にリターンする（ステップ８１４）。つまりＣＰＵ１１５は、ホストシステム２００からのコマンドのための処理を開始させるため、速やかにデータリフレッシュ処理を中断させてステップ７０６（図７参照）を終了させる。
【０１１７】
ＣＰＵ１１５はステップ７０６を終了させるとステップ７０７を実行する。このステップ７０７においても、ＣＰＵ１１５は、速やかにステップ７０３に分岐させてホストシステム２００からのコマンドのための処理を開始させるため、ステップ８１０と同様な処理を行う。
【０１１８】
一方、データリフレッシュ処理の中断要求がない場合（ステップ８１０がＮＯ）、ＣＰＵ１１５は、リフレッシュトラックグループを対象とするリフレッシュを全て完了したかを判定する（ステップ８１１）。リフレッシュトラックグループを対象とするリフレッシュが完了していなければ（ステップ８１１がＮＯ）、ＣＰＵ１１５はステップ８０６に戻って、データリフレッシュ動作の制御を継続して行う。これに対し、リフレッシュトラックグループを対象とするリフレッシュを全て完了しているならば（ステップ８１１がＹＥＳ）、ＣＰＵ１１５はステップ８１２に分岐することでステップ８０６，８１０及び８１１の処理ループ（トラックグループ処理ループ）を抜ける。
【０１１９】
ステップ８１２においてＣＰＵ１１５は、リフレッシュトラックグループを対象とするリフレッシュ処理が全て完了し、処理中のトラックグループが存在しないことを表すため、リフレッシュ管理情報をクリアする。リフレッシュ管理情報をクリアすることにより、後述するステップ８１３からステップ８０２に戻った際に、当該ステップ８０２での判定を正しく行うことが可能となる。
【０１２０】
ＣＰＵ１１５はステップ８１２を実行すると、リフレッシュ処理が完了したリフレッシュトラックグループに対応付けてライトカウントテーブル５００に保持されているライト回数Ｗ（ｈ，ｃ）を、０に初期化（つまりクリア）する（ステップ８１３）。
【０１２１】
ライトカウントテーブル５００に保持されているトラックグループ毎のライト回数Ｗ（ｈ，ｃ）は、そのトラックグループへのライト動作の実行回数を示す。ライト回数Ｗ（ｈ，ｃ）は、当該ライト回数Ｗ（ｈ，ｃ）と対応付けられているトラックグループにおけるデータの劣化の程度と相関がある。そのため本実施形態では、ライト回数Ｗ（ｈ，ｃ）は便宜的にデータ劣化の程度として扱われる。
【０１２２】
リフレッシュトラックグループを対象とするリフレッシュ処理が完了した直後は、当該グループにおけるデータの劣化はない。このことを、リフレッシュ処理が完了したリフレッシュトラックグループに対応付けられたライト回数Ｗ（ｈ，ｃ）に反映させるために、上述のように当該ライト回数Ｗ（ｈ，ｃ）が０に初期化される（ステップ８１３）。
【０１２３】
ＣＰＵ１１５は、ステップ８１３を実行すると、再びステップ８０２に分岐して次のトラックグループに対する処理を開始する。この場合、ステップ８０２からの分岐先は常にステップ８０３になり、リフレッシュを必要とするトラックグループを検索するための動作を含む処理が上述の場合と同様に行われる。リフレッシュ処理の中断要求がなければ、リフレッシュトラックグループを対象とするリフレッシュ処理が終了するのは、それを必要とするトラックグループがなくなった場合のみである（ステップ８０４がＮＯ）。
【０１２４】
次に、上記ステップ８０５のリフレッシュブロック数算出処理の詳細な手順について、図９のフローチャートを参照して説明する。  
まずＣＰＵ１１５は、ブロック数テーブル６００を参照することにより、リフレッシュトラック２０１ｒ及びバックアップトラック２０１ｂが属するＣＤＲゾーンにおけるトラック当たりのブロック数Ｂｒ及びＢｂをそれぞれ取得する（ステップ９０２及び９０３）。更に詳細に述べるならば、リフレッシュトラック２０１ｒが属するＣＤＲゾーン及びヘッドのそれぞれゾーン番号及びヘッド番号をｚｒ及びｈｒとすると、ＣＰＵ１１５は、ゾーン番号ｚｒ及びヘッド番号ｈｒに対応付けてブロック数テーブル６００に保持されているブロック数Ｂ（ｈｒ，ｚｒ）をブロック数Ｂｒとして取得する。同様に、バックアップトラック２０１ｂが属するＣＤＲゾーン及びヘッドのそれぞれゾーン番号及びヘッド番号をｚｂ及びｈｂとすると、ＣＰＵ１１５は、ゾーン番号ｚｂ及びヘッド番号ｈｂに対応付けてブロック数テーブル６００に保持されているブロック数Ｂ（ｈｂ，ｚｂ）をブロック数Ｂｂとして取得する。
【０１２５】
次にＣＰＵ１１５は、リフレッシュトラック２０１ｒとバックアップトラック２０１ｂとの間でヘッド１０２を往復させるのに必要なシーク時間（往復のシーク時間）２×Ｔｓを算出する（ステップ９０４）。
【０１２６】
次にＣＰＵ１１５は、取得されたブロック数Ｂｒ及びＢｂ並びに往復のシーク時間２×Ｔｓと、ディスク１０１の１回転に要する時間Ｔｄとに基づいて、上述の式（８）から、データリフレッシュ動作での回転待ち時間が最小となるようなリフレッシュブロック数Ｌを算出する（ステップ９０５）。ここで時間Ｔｄは、ディスク１０１の回転速度に基づき予め算出可能である。
【０１２７】
ＣＰＵ１１５は、ステップ９０５を実行すると、リフレッシュブロック数算出処理９０１から元の処理にリターンする（ステップ９０６）。これにより図８のフローチャートにおけるステップ８０６が実行される。
【０１２８】
次に、上記ステップ７０２の初期化処理の中で実行されるデータ修復処理の手順について、図１０のフローチャートを参照して説明する。  
まずＣＰＵ１１５は、ディスク１０１のリフレッシュ管理トラック２０１ｒｍからカウント値が最大のリフレッシュ管理情報をサーチする（ステップ１００１）。本実施形態では、リフレッシュ管理情報ライト動作Ａ７及びＡ１１で、リフレッシュ管理トラック２０１ｒｍにリフレッシュ管理情報が書き込まれる。このリフレッシュ管理情報ライト動作Ａ７及びＡ１１の特徴から、リフレッシュ管理情報が書き込まれるリフレッシュ管理トラック２０１ｒｍ上のセクタは、常に同一であるとは限らない。しかし、リフレッシュ管理情報中のカウント値には、リフレッシュ管理トラック２０１ｒｍへの書き込みが実行される都度インクリメントされる値が用いられる。このため、リフレッシュ管理トラック２０１ｒｍ内の複数のセクタにそれぞれリフレッシュ管理情報が書き込まれている場合、最も値が大きいカウント値を含むリフレッシュ管理情報を、最新のリフレッシュ管理情報と特定することができる。つまりステップ１００１でサーチされたリフレッシュ管理情報は、最新のリフレッシュ管理情報である。
【０１２９】
ＣＰＵ１１５は、サーチされたリフレッシュ管理情報中の完了フラグを参照する（ステップ１００２）。そしてＣＰＵ１１５は、参照された完了フラグがＯＦＦ状態にあるかを判定する（ステップ１００３）。完了フラグがＯＦＦ状態にあることは、最も最近に実行されたデータリフレッシュ動作中のリフレッシュライト動作が未完了であることを示す。つまりＣＰＵ１１５は、参照された完了フラグがＯＦＦ状態にあるかを判定することにより、リフレッシュライト動作中にＨＤＤ１００の電源が遮断されたかを判定する。もし、リフレッシュライト動作中にＨＤＤ１００の電源が遮断された場合、リフレッシュライトの対象となっていたトラック（リフレッシュトラック２０１ｒ）に書き込まれていた元データは破壊されている可能性がある。
【０１３０】
そこでＣＰＵ１１５は、完了フラグがＯＦＦ状態にあるためにリフレッシュライト動作（Ａ９）中にＨＤＤ１００の電源が遮断されたと判定した場合（ステップ１００３がＹＥＳ）、リフレッシュライト動作の再実行を制御する（ステップ１００４）。但し、リフレッシュトラック２０１ｒに再度書き込まれるデータには、バックアップトラック２０１ｂに書き込まれている（退避されている）データ（元データ）が用いられる。ここで、この元データが書き込まれているバックアップトラック２０１ｂ上の記憶領域の開始アドレス及びサイズ（ブロック数）と、元データが再度書き込まれるリフレッシュトラック２０１ｒ上の記憶領域の開始アドレス及びサイズ（ブロック数）とは、上記サーチされたリフレッシュ管理情報に含まれている。
【０１３１】
ステップ１００４では、リフレッシュライト動作が完了すると、通常のデータリフレッシュ処理におけるリフレッシュライト動作Ａ９の場合と同様に、シーク動作Ａ１０及びリフレッシュ管理情報ライト動作Ａ１１も行われる。
【０１３２】
［変形例］
次に上記実施形態の変形例について説明する。  
図１１は、上記実施形態の変形例で適用される、ディスク１０１上のバックアップトラック２０１ｂ及びリフレッシュ管理トラック２０１ｒｍの位置を示す。
【０１３３】
上記実施形態では、ディスク１０１の外周側にバックアップトラック２０１ｂ及びリフレッシュ管理トラック２０１ｒｍが確保されている。しかし、バックアップトラック２０１ｂ及びリフレッシュ管理トラック２０１ｒｍが、例えば図１１（ａ）に示されるように、ディスク１０１の内周側に確保されても構わない。また、バックアップトラック２０１ｂ及びリフレッシュ管理トラック２０１ｒｍが、例えば図１１（ｂ）に示されるように、ディスク１０１の中周に確保されても構わない。また、バックアップトラック２０１ｂ及びリフレッシュ管理トラック２０１ｒｍのディスク１０１上での相互の位置関係が上記実施形態の逆であっても構わない。つまり、リフレッシュ管理トラック２０１ｒｍがバックアップトラック２０１ｂにディスク１０１の外周側で隣接しても構わない。
【０１３４】
更に、バックアップトラック２０１ｂ及びリフレッシュ管理トラック２０１ｒｍがディスク１０１上のＣＤＲゾーン毎に確保されても構わない。
【０１３５】
なお、本発明は、上記実施形態またはその変形例そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。例えば、ディスク１０１が必ずしもＣＤＲフォーマットを適用する必要はない。この場合、バックアップライト時間Ｔｂ及びリフレッシュライト時間Ｔｒは等しくなる。
【０１３６】
また、上記実施形態またはその変形例に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、実施形態またはその変形例に示される全構成要素から幾つかの構成要素を削除してもよい。
【図面の簡単な説明】
【０１３７】
【図１】本発明の一実施形態に係る磁気ディスク装置（ＨＤＤ）の構成を示すブロック図。
【図２】図１に示されるディスクのトラック配置を含むフォーマットを示す概念図。
【図３】同実施形態で適用されるデータリフレッシュ動作の概要を、ディスク上の特定トラックをバックアップトラックとして用いる場合に一般に適用されると想定されるデータリフレッシュ動作の概要と対比して示す概念図。
【図４】同実施形態で適用されるデータリフレッシュ動作を、ディスク上のトラックを対象とするデータの読み出し／書き込みを中心に説明するための概念図。
【図５】同実施形態で適用されるライトカウントテーブルのデータ構造例を示す図。
【図６】同実施形態で適用されるブロック数テーブルのデータ構造例を示す図。
【図７】図１のＨＤＤにおける全体的な動作を説明するためのフローチャート。
【図８】図７のフローチャートに含まれるデータリフレッシュ処理の詳細な手順を示すフローチャート。
【図９】図８のフローチャートに含まれるリフレッシュブロック数算出処理の詳細な手順を示すフローチャート。
【図１０】図７のフローチャートに含まれる初期化処理の中で実行されるデータ修復処理の手順を示すフローチャート。
【図１１】上記実施形態の変形例で適用される、ディスク上のバックアップトラック及びリフレッシュ管理トラックの位置を示す図。
【符号の説明】
【０１３８】
１００…磁気ディスク装置（ＨＤＤ）、１０１…ディスク、１０２…ヘッド、１１３…ＲＡＭ、１１４…フラッシュＲＯＭ、１１５…ＣＰＵ（コントローラ）、２００…ホストシステム、２０１…トラック、２０１ｒ…リフレッシュトラック、２０１ｂ…バックアップトラック、２０１ｒｍ…リフレッシュ管理トラック、５００…ライトカウントテーブル、６００…ブロック数テーブル
【図１】
2010157287.tif 000003
【図２】
2010157287.tif 000004
【図３】
2010157287.tif 000005
【図４】
2010157287.tif 000006
【図５】
2010157287.tif 000007
【図６】
2010157287.tif 000008
【図７】
2010157287.tif 000009
【図８】
2010157287.tif 000010
【図９】
2010157287.tif 000011
【図１０】
2010157287.tif 000012
【図１１】
2010157287.tif 000013
【手続補正書】
【提出日】平成22年3月8日(2010.3.8)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
データリフレッシュを行う磁気ディスク装置において、
データリフレッシュのバックアップに用いられるバックアップトラックとデータがリフレッシュされるリフレッシュトラックを備える磁気ディスクと、
前記リフレッシュトラックに記録されたブロック数Ｌのデータを読み出し、この読み出されたデータを前記バックアップトラックに記録し、続いて前記データ読み出しが行われたリフレッシュトラックに記録し直す動作を、前記磁気ディスクのＮ回転に対応するように、次式
（Ｂｂ＋Ｂｒ）×Ｔｄ×Ｌ＝Ｂｂ×Ｂｒ×｛（Ｔｄ×Ｎ）−２×Ｔｓ｝
但し、Ｂｂはバックアップトラックのブロック数
Ｂｒはデータリフレッシュ対象トラックのブロック数
Ｔｄは磁気ディスクが１回転する時間
Ｌはデータリフレッシュ対象トラックに記録されたデータのブロック数
Ｎはデータリフレッシュに対応する磁気ディスクの回転数
２×Ｔｓはデータリフレッシュ対象トラックとバックアップトラック間の往復のシーク時間
の関係が満たされるように制御するコントローラを備えることを特徴とする磁気ディスク装置。
【請求項２】
データリフレッシュに係る前記磁気ディスクの回転待ち時間を低減することを特徴とする請求項１に記載の磁気ディスク装置。
【請求項３】
データリフレッシュを行う磁気ディスク装置を制御するコントローラにおいて、
データリフレッシュのバックアップに用いられるバックアップトラックとデータがリフレッシュされるリフレッシュトラックを備える磁気ディスクの、前記リフレッシュトラックに記録されたブロック数Ｌのデータを読み出し、この読み出されたデータを前記バックアップトラックに記録し、続いて前記データ読み出しが行われたリフレッシュトラックに記録し直す動作を、前記磁気ディスクのＮ回転に対応するように、次式
（Ｂｂ＋Ｂｒ）×Ｔｄ×Ｌ＝Ｂｂ×Ｂｒ×｛（Ｔｄ×Ｎ）−２×Ｔｓ｝
但し、Ｂｂはバックアップトラックのブロック数
Ｂｒはデータリフレッシュ対象トラックのブロック数
Ｔｄは磁気ディスクが１回転する時間
Ｌはデータリフレッシュ対象トラックに記録されたデータのブロック数
Ｎはデータリフレッシュに対応する磁気ディスクの回転数
２×Ｔｓはデータリフレッシュ対象トラックとバックアップトラック間の往復のシーク時間
の関係が満たされるように制御することを特徴とするコントローラ。
【請求項４】
データリフレッシュに係る前記磁気ディスクの回転待ち時間を低減することを特徴とする請求項３に記載のコントローラ。
【請求項５】
磁気ディスク装置のデータリフレッシュ方法において、
データリフレッシュのバックアップに用いられるバックアップトラックとデータがリフレッシュされるリフレッシュトラックを備える磁気ディスクの、前記リフレッシュトラックに記録されたブロック数Ｌのデータを読み出し、この読み出されたデータを前記バックアップトラックに記録し、続いて前記データ読み出しが行われたリフレッシュトラックに記録し直す動作を、前記磁気ディスクのＮ回転に対応するように、次式
（Ｂｂ＋Ｂｒ）×Ｔｄ×Ｌ＝Ｂｂ×Ｂｒ×｛（Ｔｄ×Ｎ）−２×Ｔｓ｝
但し、Ｂｂはバックアップトラックのブロック数
Ｂｒはデータリフレッシュ対象トラックのブロック数
Ｔｄは磁気ディスクが１回転する時間
Ｌはデータリフレッシュ対象トラックに記録されたデータのブロック数
Ｎはデータリフレッシュに対応する磁気ディスクの回転数
２×Ｔｓはデータリフレッシュ対象トラックとバックアップトラック間の往復のシーク時間
の関係が満たされるように制御することを特徴とするデータリフレッシュ方法。
【請求項６】
データリフレッシュに係る前記磁気ディスクの回転待ち時間を低減することを特徴とする請求項５に記載のデータリフレッシュ方法。