(57)【要約】【課題】不要なリフレッシュが発生するのを効果的に防止する。【解決手段】実施形態によれば、磁気ディスク装置は、グループ化手段とリフレッシュ制御手段とを含む。グループ化手段は、ディスク上のトラックの集合を、物理位置が非連続の２以上のトラックを含む複数のトラックを備えた複数のグループにグループ化する。リフレッシュ制御手段と前記複数のグループを対象にグループ単位にリフレッシュ処理を制御する。【選択図】      図１
2012014790.tif 000002
【特許請求の範囲】
【請求項１】
ディスク上のトラックの集合を、物理位置が非連続の２以上のトラックを含む複数のトラックを備えた複数のグループにグループ化するグループ化手段と、
前記複数のグループを対象にグループ単位にリフレッシュ処理を制御するリフレッシュ制御手段と
を具備する磁気ディスク装置。
【請求項２】
前記複数のグループそれぞれの書き込み回数をカウントする書き込み管理手段を更に具備し、
前記リフレッシュ制御手段は、前記複数のグループのうち、前記書き込み回数が閾値を超えたグループを対象にリフレッシュ処理を制御する請求項１記載の磁気ディスク装置。
【請求項３】
前記グループ化手段は、前記複数のグループの各々を、１つ以上のトラックを備えた複数のサブグループに区分し、
前記書き込み管理手段は、前記複数のサブグループを対象にサブグループ単位に書き込みの有無を管理し、
前記リフレッシュ制御手段は、前記リフレッシュ処理の対象となるグループ内の、書き込みのないサブグループをリフレッシュ対象外とする
請求項２記載の磁気ディスク装置。
【請求項４】
前記複数のグループ毎に、前記複数のサブグループそれぞれの書き込みの有無を示すビットの集合を備えたビットマップを更に具備し、
前記リフレッシュ制御手段は、前記リフレッシュ処理の対象となるグループに対応する前記ビットマップに基づいて、書き込みのないサブグループを検出する
請求項３記載の磁気ディスク装置。
【請求項５】
前記書き込み管理手段は、ホストから要求された目的のトラックへの書き込みに応じて、当該目的トラックが属するグループに対応する前記ビットマップ内の、当該目的トラックが属するサブグループに対応するビットを書き込み有りを示す状態に設定する請求項４記載の磁気ディスク装置。
【請求項６】
前記グループ化手段は、前記トラックの集合に含まれている各トラックと、当該トラックが属するグループ及び当該トラックが属するサブグループに対応するビットマップ内のビットの位置とを、当該トラックのトラック番号に基づいて関連付ける請求項５記載の磁気ディスク装置。
【請求項７】
前記グループ化手段は、前記トラック番号を表すバイナリデータの下位フィールドにより、前記トラック番号のトラックが属するグループのグループ番号を定義し、前記バイナリデータの上位フィールドにより、前記ビットの位置を示す位置情報を定義する請求項６記載の磁気ディスク装置。
【請求項８】
前記関連付けのための変換テーブルを更に具備する請求項６記載の磁気ディスク装置。
【請求項９】
前記リフレッシュ制御手段は、前記リフレッシュ処理の対象となるグループ内の、書き込みのあるサブグループをリフレッシュ対象として、当該書き込みのあるサブグループに属する１つ以上のトラックの隣接トラックのリフレッシュ処理を制御する請求項３記載の磁気ディスク装置。
【請求項１０】
前記複数のグループの各々の前記複数のサブグループは、それぞれ前記ディスク上の予め定められたトラック領域に対応付けられており、
前記グループ化手段は、前記複数のサブグループのそれぞれが備える１つ以上のトラックの数を、対応するトラック領域に応じて設定する
請求項３記載の磁気ディスク装置。
【請求項１１】
前記グループ化手段は、前記対応するトラック領域の使用頻度が高いほど、前記１つ以上のトラックの数を少なく設定する請求項１０記載の磁気ディスク装置。
【請求項１２】
ディスク上のトラックの集合を、物理位置が非連続の２以上のトラックを含む複数のトラックを備えた複数のグループにグループ化し、
前記複数のグループを対象にグループ単位にリフレッシュ処理を行う
磁気ディスク装置におけるリフレッシュ方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、磁気ディスク装置及び同装置におけるリフレッシュ方法に関する。
【背景技術】
【０００２】
近年、磁気ディスク装置の高容量化に伴い、高記録密度化、高トラック密度化が進んでいる。高トラック密度化により、ディスク上で隣接するトラック間の間隔（つまりトラックピッチ）が狭小化されている。
【０００３】
トラックピッチが狭小化されると、トラックにデータを磁気的に書き込む際に、隣接するトラックに既に磁気的に書き込まれているデータ（磁気データ）の磁気的劣化が発生する可能性がある。つまり、隣接するトラックの磁気データ（より詳細には、磁気データの磁界の強さ）が弱められる可能性がある。このような現象は、サイドイレーズ現象と呼ばれる。サイドイレーズ現象の要因は、トラックにヘッドを位置付ける際の誤差及び当該ヘッドから漏洩する磁界にある。
【０００４】
サイドイレーズ現象によって、対応するトラックの磁気データが弱められても、直ちに読み出しエラーが発生するわけではない。サイドイレーズ現象が繰り返し発生すると、対応するトラックの磁気データが徐々に弱まる。サイドイレーズ現象の発生回数が、ある閾値を超えると、誤り訂正符号（ＥＣＣ）を最大限に用いて磁気データの修復を試みても、当該磁気データを修復することが困難となり、読み出しエラーとなる。これにより、結果として磁気データが消失する。
【０００５】
そこで近年の磁気ディスク装置では、サイドイレーズ現象の繰り返しによりトラックからの磁気データの読み出しが不能になる前に、当該磁気データの磁気的な劣化を回復するためのデータリフレッシュ（書き直し）が必須になりつつある。データリフレッシュは、磁気的に劣化した磁気データを、対応するトラックから読み出し、当該読み出された磁気データを当該トラックに再度書き込む動作として知られている。この磁気データの書き直し（つまりデータリフレッシュ）により、当該磁気データの磁界は強くなり、安定する。
【０００６】
しかし、ディスク上の各トラックをあまり頻繁にリフレッシュすると、磁気ディスク装置全体のパフォーマンスを低下させることになり好ましくない。一方、サイドイレーズ現象が繰り返し発生するトラックと、当該トラックに隣接するトラックへのデータ書き込みの回数との間には相関がある。
【０００７】
そこで従来の磁気ディスク装置では、上述の相関を利用するために、ディスク上のトラック毎に書き込み回数をカウントする技術が適用される。この技術によれば、書き込み回数が閾値を超えたトラックに隣接するトラックが、サイドイレーズ現象の繰り返しに起因して磁気データが弱められたトラック（つまりリフレッシュされるべきトラック）として検出される。
【０００８】
しかし、ディスク上のトラック毎に書き込み回数をカウントする技術では、当該トラック毎に書き込み回数を保持するために、膨大な容量の作業メモリ領域を必要とする。  
そこで最近は、ディスク上のトラックの集合を当該ディスクの半径方向に複数のグループに分けて、グループ単位に書き込み回数（総書き込み回数）をカウントする技術（以下、先行技術と称する）が提案されている。各グループに属するトラック群は、ディスクの半径方向に連続する。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００９−２４５５７７号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
上述した先行技術では、グループ単位に書き込み回数（総書き込み回数）がカウントされ、書き込み回数が閾値を超えたグループに属する全トラックのデータがリフレッシュされる。
【００１１】
ところが、ホストからの磁気ディスク装置に対するアクセス（例えば書き込み）には、局所性がある。つまり、ホストからのアクセスが、グループ内の全トラックのうち、ディスクの半径方向に連続する数トラックに集中する可能性が高い。このことは、逆に、書き込み回数が閾値を超えたグループに属するトラックの中に、データの書き込みの回数が少ないトラックに隣接するトラックが含まれている可能性があることを示す。このような隣接トラックに書き込まれているデータは、磁気的に劣化していない可能性が高い。しかし。先行技術では、このようなトラックのデータもリフレッシュされる。つまり不要なリフレッシュが発生する。
【００１２】
そこで本発明が解決しようとする課題は、不要なリフレッシュが発生するのを効果的に防止できる磁気ディスク装置及び同装置におけるリフレッシュ方法を提供することにある。
【課題を解決するための手段】
【００１３】
実施形態によれば、磁気ディスク装置は、グループ化手段とリフレッシュ制御手段とを具備する。グループ化手段は、ディスク上のトラックの集合を、物理位置が非連続の２以上のトラックを含む複数のトラックを備えた複数のグループにグループ化する。リフレッシュ制御手段は、前記複数のグループを対象にグループ単位にリフレッシュ処理を制御する。
【図面の簡単な説明】
【００１４】
【図１】第１の実施形態に係る磁気ディスク装置を備えた電子機器の典型的な構成を示すブロック図。
【図２】第１の実施形態におけるディスクの記録面のフォーマットの一例を示す概念図。
【図３】第１の実施形態で適用される、トラック番号とヘッド番号及びシリンダ番号との関係の一例を示す図。
【図４】第１の実施形態で適用される、トラックの集合のグループ化の概念を示す図。
【図５】第１の実施形態で適用されるリフレッシュ管理テーブルの一例を示す図。
【図６】第１の実施形態におけるデータ書き込み時の動作を説明するためのフローチャート。
【図７】第１の実施形態で適用される、トラック番号に基づいて、グループ番号及びビットマップ内のビットのビット番号を取得する仕組みを説明するための図。
【図８】第１の実施形態で適用される、グループを対象とするリフレッシュ処理の手順を示すフローチャート。
【図９】第２の実施形態で適用される変換テーブルの一例を示す図。
【図１０】第３の実施形態で適用される変換テーブルの一例を示す図。
【図１１】第４の実施形態で適用されるサブグループ化係数テーブルの一例を示す図。
【発明を実施するための形態】
【００１５】
以下、実施の形態につき図面を参照して説明する。  
［第１の実施形態］
図１は第１の実施形態に係る磁気ディスク装置を備えた電子機器の典型的な構成を示すブロック図である。図１において、電子機器は、磁気ディスク装置（ＨＤＤ）１０及びホスト（ホストシステム）２０を備えている。電子機器は、例えば、パーソナルコンピュータ、ビデオカメラ、音楽プレーヤー、携帯端末、或いは携帯電話機である。ホスト２０はＨＤＤ１０を当該ホスト２０の記憶装置として利用する。
【００１６】
ＨＤＤ１０は、ヘッドディスクアセンブリ部（ＨＤＡ部）１００と、印刷回路基板部（ＰＣＢ部）２００とを備えている。  
ＨＤＡ部１００は、ディスク（磁気ディスク）１１０と、スピンドルモータ（ＳＰＭ）１３０と、アクチュエータ１４０と、ヘッドＩＣ１５０とを備えている。
【００１７】
ディスク１１０は上側と下側の２つのディスク面を有している。ディスク１１０の２つのディスク面の少なくとも一方のディスク面（例えば上側のディスク面）は、データが磁気記録される記録面をなしている。ディスク１１０はＳＰＭ１３０により高速に回転させられる。
【００１８】
アクチュエータ１４０はディスク１１０の記録面に対応して配置されるヘッド・アームの先端にヘッド（磁気ヘッド）１２０を備えている。ヘッド１２０は、ディスク１１０へ／からのデータの書き込み／読み出しに用いられる。ヘッド１２０にはヘッド番号Ｈが割り当てられている。第１の実施形態において、ヘッド１２０のヘッド番号Ｈは０であるものとする。
【００１９】
図１では、作図の都合上、ディスク１１０の一方のディスク面に対応してヘッド１２０が配置されたＨＤＤ１０の例が示されている。しかし、一般には、ディスク１１０の２つのディスク面が共に記録面をなしており、各々のディスク面に対応してヘッドが配置される。ディスク１１０の下側のディスク面（記録面）に対応してヘッドが配置される場合、当該ヘッドにはヘッド番号Ｈとして例えば１が割り当てられる。また図１の構成では、単一枚のディスク１１０を備えたＨＤＤ１０を想定している。しかし、ディスク１１０が複数枚積層配置されたＨＤＤであっても構わない。
【００２０】
図２は、ディスク１１０の記録面のフォーマットの一例を示す概念図である。ディスク１１０の記録面は、図２に示すように。トラック０、トラック１及びトラック２を含む複数のトラック（データトラック）を備えている。本実施形態において、複数のトラックの形状は、同心円状であるものとする。トラック０、トラック１及びトラック２は、ディスク１１０の半径方向に連続して配置されている。つまりトラック０、トラック１及びトラック２の物理位置は連続している。トラック０、トラック１及びトラック２が連続しているとは、トラック０とトラック１との間、及びトラック１とトラック２との間に、他の１つ以上のトラックが存在しないことをいう。もし、トラック０とトラック１との間に他の１つ以上のトラックが存在するならば、トラック０とトラック１との物理位置は非連続である。
【００２１】
図２に示されるトラックＴ（Ｔ＝０，１，２，…）における「Ｔ」は、当該トラックＴのトラック番号を示す。トラック番号Ｔは、ＨＤＤ１０内で一意に識別されるデータトラックを示す番号であり、一般にヘッド番号Ｈとシリンダ番号Ｓの組によって表される。シリンダ番号Ｓは、ディスク１１０の記録面上の複数のトラックに対し、当該ディスク１１０の外周から順に、０，１，２，…と連続して割り当てられる番号であり、ヘッド番号Ｈに依存しない。
【００２２】
第１の実施形態では、ヘッド番号Ｈが３ビットで表され、シリンダ番号Ｓが２０ビットで表される場合を想定している。この場合、ディスク上のトラックＴを一意に識別するために、当該トラックＴに対応するトラック番号Ｔが次のように定義される。
【００２３】
第１の実施形態において、トラックＴのトラック番号Ｔは２３ビットで表される整数である。トラックＴのトラック番号Ｔの上位３ビットには、当該トラックＴに対応するヘッドのヘッド番号Ｈが用いられ、下位２０ビットには、当該トラックＴのシリンダ番号Ｓが用いられる。
【００２４】
図３は、トラック番号Ｔとヘッド番号Ｈ及びシリンダ番号Ｓとの関係の一例を示す。  
なお、トラック番号は重複していなければ任意に割り当てることが可能である。このため、上述のトラック番号の割り当ては一例である
再び図１を参照すると、アクチュエータ１４０はボイスコイルモータ（ＶＣＭ）１４１を備えている。アクチュエータ１４０はＶＣＭ１４１によって駆動され、ヘッド１２０をディスク１１０の半径方向に移動させる。  
ＳＰＭ１３０及びＶＣＭ１４１は、後述するモータドライバＩＣ２１０からそれぞれ供給される駆動電流（ＳＰＭ電流及びＶＣＭ電流）により駆動される。
【００２５】
ヘッドＩＣ１５０は、ヘッド１２０により読み出された信号（リード信号）を増幅する。ヘッドＩＣ１５０はまた、後述するリード／ライトチャネル２３０から転送されるライトデータをライト電流に変換してヘッド１２０に出力する。
【００２６】
ＰＣＢ部２００は、モータドライバＩＣ２１０及びシステムＬＳＩ２２０の２つのＬＳＩを備えている。  
モータドライバＩＣ２１０は、ＳＰＭドライバ２１１及びＶＣＭドライバ２１２を備えている。ＳＰＭドライバ２１１は、ＣＰＵ２８０から指定されたＳＰＭ操作量に相当する値の駆動電流（ＳＰＭ電流）をＳＰＭ１３０に供給することで、当該ＳＰＭ１３０を一定の回転速度で駆動する。ＶＣＭドライバ２１２は、ＣＰＵ２８０から指定されたＶＣＭ操作量に相当する値の駆動電流（ＶＣＭ電流）をＶＣＭ１４１に供給することで、アクチュエータ１４０を駆動する。
【００２７】
システムＬＳＩ２２０は、リード／ライトチャネル（Ｒ／Ｗチャネル）２３０、ディスクコントローラ（ＨＤＣ）２４０、バッファＲＡＭ２５０、フラッシュメモリ２６０、プログラムＲＯＭ２７０、ＣＰＵ２８０及びＲＡＭ２９０が単一チップに集積されたＳＯＣ（System on Chip）と呼ばれるＬＳＩである。
【００２８】
Ｒ／Ｗチャネル２３０は、リード／ライトに関連する信号処理を行う周知の信号処理デバイスである。Ｒ／Ｗチャネル２３０は、リード信号をデジタルデータに変換し、このデジタルデータからリードデータを復号する。Ｒ／Ｗチャネル２３０はまた、上記デジタルデータからヘッド１２０の位置決めに必要なサーボデータを抽出する。Ｒ／Ｗチャネル２３０はまた、ライトデータを符号化する。
【００２９】
ＨＤＣ２４０は、ホスト２０とホストインタフェース２１を介して接続されている。ＨＤＣ２４０は、ホスト２０から転送されるコマンド（ライトコマンド、リードコマンド等）を受信する。ＨＤＣ２４０は、ホスト２０と当該ＨＤＣ２４０との間のデータ転送を制御する。ＨＤＣ２４０は、Ｒ／Ｗチャネル２３０を介して行われるディスク１１０と当該ＨＤＣ２４０との間のデータ転送を制御する。
【００３０】
バッファＲＡＭ２５０は、ディスク１１０に書き込まれるべきデータ及びディスク１１０からヘッドＩＣ１５０及びＲ／Ｗチャネル２３０を介して読み出されたデータを一時格納するバッファ領域を備えている。またバッファＲＡＭ２５０は、ＨＤＤ１０のパワーオン時に、後述するリフレッシュ管理テーブル２６１がフラッシュメモリ２６０からロードされるテーブル領域も備えている。
【００３１】
フラッシュメモリ２６０は、書き換え可能な不揮発性メモリである。フラッシュメモリ２６０は、グループ単位のリフレッシュを管理するためのリフレッシュ管理テーブル２６１を格納するのに用いられる。なお、リフレッシュ管理テーブル２６１が、フラッシュメモリ２６０に代えて、ディスク１１０上の特定の記憶領域に格納される構成であっても構わない。リフレッシュ管理テーブル２６１については後述する。
【００３２】
プログラムＲＯＭ２７０は、制御プログラム（ファームウェアプログラム）を予め格納する。なお、制御プログラムがフラッシュメモリ２６０の一部の領域に格納されていても構わない。
【００３３】
ＣＰＵ２８０は、ＨＤＤ１０の主コントローラとして機能する。ＣＰＵ２８０はプログラムＲＯＭ２７０に格納されている制御プログラムに従ってＨＤＤ１０内の他の少なくとも一部の要素を制御する。ＲＡＭ２９０の一部の領域は、ＣＰＵ２８０の作業領域として用いられる。
【００３４】
図４は、第１の実施形態で適用される、トラック（データトラック）の集合のグループ化の概念を示す。  
第１の実施形態では、前述したように、単一枚のディスク１１０を備え、当該ディスク１１０の一方のディスク面に対応してヘッド１２０が配置されたＨＤＤ１０を想定している。そこで以下の説明では、ディスク１１０の一方のディスク面に備えられたトラックの集合がグループ化されるものとする。もし、単一枚のディスク１１０の両ディスク面にトラックの集合が備えられているならば、その両ディスク面に備えられたトラックの集合がグループ化される。また、ＨＤＤ１０が複数のディスク１１０を備えているならば、当該複数のディスク１１０の各々の両ディスクに備えられたトラックの集合がグループ化される。
【００３５】
図４に示す例では、ディスク１１０は、当該ディスク１１０の半径方向に連続するトラック０，１，…，Ｎ−１，Ｎ，Ｎ＋１，…２Ｎ−１，２Ｎ，２Ｎ＋１，２Ｎ＋２を含むトラックの集合を備えている。
【００３６】
第１の実施形態においてＣＰＵ２８０はグループ化手段として機能して、上記トラックの集合を、トラック番号（トラック位置）が所定数（所定トラック数）Ｎずつ離れた１６トラック毎にグループ化する。上記所定数Ｎは例えば２19である。この場合、例えばグループ０は、物理位置が非連続のトラック０，Ｎ及び２Ｎを含む１６トラックから構成される。グループ１は、物理位置が非連続のトラック１，Ｎ＋１及び２Ｎ＋１を含む１６トラックから構成される。同様に、グループ２は、物理位置が非連続のトラック２，Ｎ＋２及び２Ｎ＋２を含む１６トラックから構成される。
【００３７】
さて、ホスト２０からのＨＤＤ１０へのアクセスには、一般に局所性がある。このため、ホスト２０からのアクセスは、隣接する数トラック（つまり物理位置が連続する数トラック）にアクセスが集中する可能性が高い。ここで、ホスト２０からのアクセスの局所性により、例えば隣接するトラック１及び２にアクセスが集中し、当該トラック１及び２の書き込みの回数が、それぞれ５００となったものとする。ここでトラック１及び２は、それぞれ異なるグループ０及び１に属している点に注意されたい。
【００３８】
これに対して先行技術では、例えばディスク１１０上のトラック０，１，…，１５，１６，１７，…，３１を含む複数のトラックの集合が、当該ディスク１１０上の半径方向に連続する一定数のトラックを単位にグループ化される。もし、ディスク１１０上のトラックの集合が、１６トラックを単位にグループ化されるならば、トラック１及び２は、第１の実施形態と異なり、同一グループに属する。
【００３９】
ここで、グループ当たりの書き込み回数（以下、ライトカウントと称する）が閾値Ｒｔｈを超えた場合に、対応するグループを対象とするリフレッシュ処理が実行されるものとする。この閾値Ｒｔｈは、グループ内の１トラックにデータの書き込みが集中しても、その書き込みの回数が当該閾値Ｒｔｈを超えなければ、隣接するトラックの磁気データの劣化がリフレッシュにより十分回復可能な程度に収まる回数に予め設定されている。
【００４０】
ここで、閾値Ｒｔｈが９９９であるものとする。この場合、先行技術では、トラック１及び２の書き込みの回数が、それぞれ上述のように５００であったとしても、トラック１及び２が属するグループのライトカウントは閾値Ｒｔｈを超える。このため、先行技術では、トラック１及び２が属するグループ内の全てのトラックがリフレッシュされる。つまり、トラック１及び２が属するグループ内の例えば書き込みが発生していないトラックに隣接するトラックもリフレッシュされる。また、トラック１及び２の書き込み回数（５００）はそれぞれ閾値Ｒｔｈ（９９９）よりも十分に少なく、したがってトラック１及び２に隣接するトラックの磁気データはリフレッシュを必要とするほどには劣化していないにも拘わらずに、当該隣接するトラックもリフレッシュされる。
【００４１】
これに対して第１の実施形態では、トラック１及び２は、それぞれ異なるグループ０及び１に属する。このため、トラック１及び２への局所アクセスが繰り返し発生しても、それぞれ異なるグループ０及び１のライトカウントとしてカウントされる。
【００４２】
よって、グループ０及び１内の他のトラックの書き込み回数が０であるとするならば、当該グループ０及び１のライトカウントは、いずれも５００となり、閾値Ｒｔｈを超えない。したがって、グループ０及び１内の全トラックは、まだリフレッシュされない。当然、トラック１及び２にそれぞれ隣接するトラックもリフレッシュされない。つまり、第１の実施形態によれば、リフレッシュを必要とするほどには磁気データが劣化していないトラックが不要にリフレッシュされるのを防止できる。
【００４３】
しかも第１の実施形態では、ＣＰＵ２８０がグループ化手段として機能することにより、詳細を後述するように、グループｘ（ｘ＝０，１，…）毎に、そのグループｘに属する１６のトラックへの書き込みの有無を示す１６ビットのビットマップＢＭｘが対応付けられる。ビットマップＢＭｘの各ビットｂｊ（ｊ＝０，１，…１５）は、当該ビットｂｊが割り当てられるグループ内のトラックへの書き込みの有無を示す書き込み有無ビットして用いられる。ここでは、ビットｂｊは、“１”で対応するトラックへの書き込みが少なくとも１回あったことを示し、“０”で対応するトラックへの書き込みが一度もなかったことを示す。ビットｂｊの初期値は“０”である。
【００４４】
第１の実施形態では、グループｘのライトカウントＷＣｘが閾値Ｒｔｈを超えた場合、当該グループｘを対象とするリフレッシュ処理が行われる。但し、先行技術と異なり、グループｘ内の全トラックがリフレッシュされるとは限らない。つまり第１の実施形態で適用されるリフレッシュ処理では、ＣＰＵ２８０がリフレッシュ制御手段として機能して、グループｘに対応するビットマップＢＭｘを参照する。そしてＣＰＵ２８０は、書き込み有りを示すビットｂｊ（＝１）に対応するトラックのみ隣接トラックをリフレッシュする。つまりＣＰＵ２８０は、書き込み無しを示すビットｂｊ（＝０）に対応するトラックの隣接トラックをリフレッシュ対象外とする。
【００４５】
書き込み無しを示すビットｂｊに対応するトラックは、書き込みが一度もなかったトラックであり、したがって隣接トラックはリフレッシュされる必要がないことに注意すべきである。第１の実施形態によれば、ビットマップＢＭｘに基づくリフレッシュ処理により、上述のようなリフレッシュを必要としないトラックが不要にリフレッシュされるのを防止できる。
【００４６】
図５は、第１の実施形態で適用されるリフレッシュ管理テーブル２６１の一例を示す。リフレッシュ管理テーブル２６１は、グループ数に一致する数のエントリを備えている。リフレッシュ管理テーブル２６１の各エントリは、グループ番号フィールド２６２、ライトカウントフィールド２６３及びビットマップフィールド２６４を備えている。
【００４７】
グループ番号フィールド２６２は、当該フィールド２６２を含むエントリと対応付けられているグループｘのグループ番号ｘを登録するのに用いられる。第１の実施形態において、グループ番号ｘは２バイトで表現される。
【００４８】
ライトカウントフィールド２６３は、当該フィールド２６３を含むエントリと対応付けられているグループｘへのデータ書き込みが行われた回数ＷＣｘ、つまりライトカウントＷＣｘを登録するのに用いられる。第１の実施形態において、ライトカウントＷＣｘは２バイトで表現される。ライトカウントＷＣｘが閾値Ｒｔｈを超えた場合、グループｘを対象とするリフレッシュ処理が実行される
ビットマップフィールド２６４は、当該フィールド２６４を含むエントリと対応付けられているグループｘに属する１６のトラックへの書き込みの有無をトラック毎に示すビットマップＢＭｘを登録するのに用いられる。１グループが１６のトラックから構成される第１の実施形態では、ビットマップＢＭｘは１６ビットから構成されるバイナリデータとして管理される。つまり、ビットマップＢＭｘを構成する１６ビットには、それぞれビット番号（ビット位置番号）０乃至１５が割り当てられる。ビットマップＢＭｘのビット番号がｊ（ｊ＝０，１，…１５）のビットｂｊ、つまりｊ番目のビットｂｊは、グループｘ内の当該ビットｂｊが割り当てられるトラックのデータ書き込みの有無を示す。ビットｂｊと当該ビットｂｊが割り当てられるトラックとの関係については後述する。
【００４９】
次に、第１の実施形態におけるデータ書き込み時の動作について、図６のフローチャートを参照して説明する。  
まず、ホスト２０からＨＤＤ１０に対して、トラック番号がＴのトラックＴへのデータの書き込みが要求されたものとする。するとＣＰＵ２８０は書き込み制御手段として機能して、ディスク１１０上の目的のトラックＴにデータを書き込むための書き込み処理を実行する（ステップ６０１）。
【００５０】
次にＣＰＵ２８０は、トラック番号Ｔに基づいて、トラックＴが属するグループｘのグループ番号ｘを取得する（ステップ６０２）。またＣＰＵ２８０は、トラック番号Ｔに基づいて、グループｘに対応するビットマップＢＭｘ内の、トラックＴに割り当てられるビットｂｊのビット番号（位置）ｊを取得（特定）する（ステップ６０３）。ここでは、トラック番号Ｔに基づいて後述する位置データＰが取得され、当該位置データＰの示すビットｂｊのビット番号ｊが取得される。以下の説明では、煩雑さを避けるために、「グループｘに対応するビットマップＢＭｘ」を、単に「ビットマップＢＭｘ」と表現する。なお、トラック番号Ｔに基づいて、グループ番号ｘ及び、ビットマップＢＭｘ内のビットｂｊのビット番号ｊを取得する仕組みについては、後述する、
次にＣＰＵ２８０は書き込み管理手段として機能して、グループ番号がｘのグループｘに対応付けられているリフレッシュ管理テーブル２６１内のエントリを参照する（ステップ６０４）。そしてＣＰＵ２８０は、参照エントリのライトカウントフィールド２６３の値、即ちライトカウントＷＣｘを、インクリメントする（ステップ６０５）。またＣＰＵ２８０は、参照エントリのビットマップフィールド２６４に登録されているビットマップＢＭｘ中のビットｂｊを“１”に設定する（ステップ６０６）。
【００５１】
ここでリフレッシュ管理テーブル２６１は、当該リフレッシュ管理テーブル２６１へのアクセスの高速化のために、ＨＤＤ１０のパワーオン時にフラッシュメモリ２６０からバッファＲＡＭ２５０にロードされる。このバッファＲＡＭ２５０にロードされたリフレッシュ管理テーブル２６１が、上記ステップ６０４乃至６０６で用いられる。なお、リフレッシュ管理テーブル２６１がＲＡＭ２９０にロードされてもよい。
【００５２】
次にＣＰＵ２８０はリフレッシュ制御手段として機能して、インクリメント後のライトカウントＷＣｘが閾値Ｒｔｈを超えたかを判定する（ステップ６０７）。もし、ライトカウントＷＣｘが閾値Ｒｔｈを超えたならば（ステップ６０７のＹｅｓ）、ＣＰＵ２８０はグループｘを対象とするリフレッシュ処理（ステップ６０８）に進む。このリフレッシュ処理の手順については後述する。これに対し、ライトカウントＷＣｘが閾値Ｒｔｈを超えていないならば（ステップ６０７のＮｏ）、ＣＰＵ２８０はリフレッシュ処理（ステップ６０８）をスキップする。
【００５３】
次に、トラック番号Ｔに基づいて、グループ番号ｘ及び、ビットマップＢＭｘ内のビットｂｊのビット番号ｊを取得する仕組みについて、図７を参照して説明する。  
図７に示すように、トラック番号Ｔは２３ビットで表される。この２３ビットのトラック番号Ｔの下位１９ビットは、前述のグループ化により、当該トラック番号がＴのトラックＴが属するグループｘのグループ番号ｘを表す。トラック番号Ｔの上位４ビットの整数値ｊは、トラックＴに割り当てられる、ビットマップＢＭｘにおけるビットｂｊのビット番号を示す。このように、トラック番号Ｔの上位４ビットは、トラックＴに割り当てられるビットマップＢＭｘにおけるビットｂｊのビット番号を示す位置データＰとして用いられる。明らかなように、グループｘは、トラック番号が２19（Ｎ＝２19）ずつ離れた１６（２4）のトラックの集合である。つまりグループｘは、物理位置が非連続の１６のトラックの集合である。これに対して、先行技術で適用されるグループは、物理位置が連続したトラックの集合である。
【００５４】
したがって、トラック番号Ｔの下位１９ビットを抽出することにより、トラック番号がＴのトラックＴが属するグループｘのグループ番号ｘを取得できる。また、トラック番号Ｔの上位４ビットを、トラックＴの位置データＰとして抽出することにより、当該トラックＴに割り当てられるビットマップＢＭｘ内のビットｂｊのビット番号ｊを取得できる。また、図７からも明らかなように、トラック番号が近接するトラック群は、それぞれ異なるグループに属する。
【００５５】
次に、グループ番号がｘのグループｘを対象とするリフレッシュ処理（ステップ６０８）の手順について、図８のフローチャートを参照して説明する。  
まず、ＣＰＵ２８０は、ビットマップＢＭｘのビットｂｊのビット番号を指定する変数ｊを、初期値０に設定する（ステップ８０１）。このビットマップＢＭｘは、グループｘに対応付けられているリフレッシュ管理テーブル２６１のエントリのビットマップフィールド２６４に登録されている。
【００５６】
次にＣＰＵ２８０は、ビットマップＢＭｘのｊ番目のビットｂｊを参照し（ステップ８０２）、当該ビットｂｊが“１”であるかを判定する（ステップ８０３）。  
もし、ビットマップＢＭｘのビットｂｊが“１”であるならば（ステップ８０３のＹｅｓ）、ＣＰＵ２８０は、当該ビットｂｊが割り当てられているトラックＴｊ（つまりビットｂｊに対応するトラックＴｊ）は、データの書き込みが実施されており、したがってトラックＴｊの隣接トラックはリフレッシュされるべきであると判断する。この場合、ＣＰＵ２８０は、ビットｂｊに対応するトラックＴｊの隣接トラックをリフレッシュするために、ステップ８０４に進む。
【００５７】
ステップ８０４においてＣＰＵ２８０は、グループ番号ｘと変数（ビット番号）ｊとに基づいて、ビットマップＢＭｘのビット番号がｊのビットｂｊに対応するトラックＴｊのトラック番号Ｔｊを取得する。ここでは、トラックＴｊのトラック番号Ｔｊは、図７からも明らかなように、グループ番号ｘ（１９ビット）の上位に、ビット番号ｊ（つまり変数の示すビットｂｊのビット番号ｊ）を示す４ビットのバイナリデータを連結することにより取得される。
【００５８】
次にＣＰＵ２８０は、取得されたトラック番号Ｔｊで特定されるトラックＴｊの隣接トラックをリフレッシュする（ステップ８０５）。ＣＰＵ２８０はステップ８０５を実行すると、ステップ８０６に進む。
【００５９】
一方、ビットマップＢＭｘのビットｂｊが“１”でないならば（ステップ８０３のＮｏ）、ＣＰＵ２８０は、当該ビットｂｊに対応するトラックＴｊは、データの書き込みが実施されておらず、したがってリフレッシュされる必要がないと判定する。この場合、ＣＰＵ２８０はステップ８０４及び８０５をスキップして、ステップ８０６に進む。
【００６０】
ステップ８０６においてＣＰＵ２８０は、ビット番号ｊを１だけインクリメントする。そしてＣＰＵ２８０は、インクリメント後のビット番号ｊが１６未満であるかを判定する（ステップ８０７）。  
もし、インクリメント後のビット番号ｊが１６未満であるならば（ステップ８０７のＹｅｓ）、ＣＰＵ２８０はステップ８０２に戻り、インクリメント後のビット番号ｊによって示される、ビットマップＢＭｘのｊ番目のビットｂｊを参照する。
【００６１】
これに対して、インクリメント後のビット番号ｊが１６未満でないならば（ステップ８０７のＮｏ）、ＣＰＵ２８０は、ビットマップＢＭｘにおける最終ビット（１５番目のビット）ｂ１５まで処理したものと判断する。この場合、ＣＰＵ２８０は、グループ番号がｘのグループｘに対応付けられているリフレッシュ管理テーブル２６１内のエントリのライトカウントフィールド２６３に設定されているライトカウントＷＣｘを０にクリアする（ステップ８０８）。そしてＣＰＵ２８０は、グループｘを対象とするリフレッシュ処理を終了する。
【００６２】
第１の実施形態では、前述のグループ化により、２３ビットのトラック番号Ｔの下位１９ビットが、トラック番号がＴのトラックＴが属するグループｘのグループ番号ｘとして定義される。また、トラック番号Ｔの上位４ビットが、ビットマップＢＭｘにおけるビット位置ｂｊとを示す位置データＰとして定義される。このため、第１の実施形態では、トラック番号Ｔからグループ番号ｘ及び位置データＰを簡単に取得できる。
【００６３】
前述したように、リフレッシュ管理テーブル２６１はバッファＲＡＭ２５０にロードして用いられる。そのためＣＰＵ２８０は、バッファＲＡＭ２５０に格納されているリフレッシュ管理テーブル２６１を、少なくともＨＤＤ１０のパワーオフに際して、フラッシュメモリ２６０に保存する。勿論、リフレッシュ管理テーブル２６１が更新される都度、当該リフレッシュ管理テーブル２６１ががフラッシュメモリ２６０に保存されても構わない。また、リフレッシュ管理テーブル２６１がディスク１１０上の特定の記憶領域に保存されても構わない。
【００６４】
第１の実施形態では、グループｘに属する１６のトラックの全ての物理位置が非連続である。しかし、１６のトラックのうちの一部の２以上のトラックの物理位置が非連続であっても構わない。また、第１の実施形態では、ビットマップＢＭｘのビットｂｊが“１”である場合、当該ビットｂｊが割り当てられているトラックＴｊの隣接トラックがリフレッシュされる。しかし、この隣接トラックへの書き込みが一度もない場合、この隣接トラックをリフレッシュ対象外としても構わない。隣接トラックへの書き込みが一度もないかは、当該隣接トラックが属するグループに対応するビットマップＢＭｘ内の当該隣接トラックに対応するビットｂｊが“０”であるかによって判定可能である。また、トラックＴｊもリフレッシュされても構わない。
【００６５】
［第２の実施形態］
次に第２の実施形態について説明する。この第２の実施形態に係るＨＤＤを備えた電子機器の基本構成は、第１の実施形態と同様であるため、以下の説明では図１を援用する。  
第２の実施形態の特徴は、ＣＰＵ２８０が、トラック番号Ｔからグループ番号ｘ及び位置データＰを取得するのに、変換テーブルを用いることにある。
【００６６】
図９は、第２の実施形態で適用される変換テーブル９００の一例を示す。変換テーブル９００は、リフレッシュ管理テーブル２６１と同様に、フラッシュメモリ２６０に格納されているものとする。この変換テーブル９００は、リフレッシュ管理テーブル２６１と同様に、ＨＤＤ１０のパワーオン時にバッファＲＡＭ２５０にロードされる。
【００６７】
変換テーブル９００は、２３ビットのトラック番号Ｔを、１９ビットのグループ番号ｘ及び４ビットの位置データＰにＣＰＵ２８０が変換するのに用いられる。ここでは、トラック番号Ｔのビット１を含む４ビットが位置データＰに変換される。トラック番号Ｔの残りの１９ビット、つまりビット０，２，２０，２１及び２２を含む１９ビットはグループ番号ｘに変換される。
【００６８】
図９に示す変換テーブル９００は、２３ビットのトラック番号Ｔのビット位置を入れ替えることにより、当該トラック番号Ｔを別の２３ビットのトラック番号Ｔ’に変換するビット位置を入れ替え手段とみなすことができる。図９の例では、トラック番号Ｔ’の上位４ビットが位置データＰを表し、トラック番号Ｔ’の下位１９ビットがグループ番号ｘを表す。
【００６９】
また、前記ステップ８０４に変換テーブル９００を用いた逆変換を適用することにより、位置データＰとグループ番号ｘとから、トラック番号Ｔｊを取得することも可能である。位置データＰは、ビットｂｊのビット番号ｊ（変数ｊ）を４ビットのバイナリデータに変換することで取得できる。
【００７０】
第２の実施形態によれば、変換テーブル９００を適用することにより、トラック番号とグループ番号とを自由に対応付けることができる。なお、変換テーブル９００を、ヘッド毎に用意してもよく、ディスク１１０の半径方向に区分される複数の領域（例えば内周側領域及び外周側領域）毎に用意してもよい。
【００７１】
［第３の実施形態］
次に第３の実施形態について説明する。この第３の実施形態に係るＨＤＤを備えた電子機器の基本構成は、第１の実施形態と同様であるため、以下の説明では図１を援用する。
【００７２】
第３の実施形態の第１の特徴は、ＣＰＵ２８０が、トラック番号Ｔからグループ番号ｘ及び位置データＰを取得するのに、第２の実施形態と同様に変換テーブルを用いることにある。
【００７３】
第３の実施形態の第２の特徴は、ＣＰＵ２８０がグループ化手段として機能することにより、同一グループｘ内の２つ以上のトラックに、ビットマップＢＭｘのビットｂｊを割り当てる（対応付ける）ことにある。これにより、リフレッシュ管理テーブル２６１を格納するのに用いられる、フラッシュメモリ２６０及びバッファＲＡＭ２５０の記憶領域を低減できる。なお、第３の実施形態では、ビットｂｊに割り当てられる２つ以上のトラックの集合をサブグループと呼ぶ。つまり、グループｘは、複数のサブグループに区分（サブグループ化）される。
【００７４】
図１０は、第３の実施形態で適用される変換テーブル１０００の一例を示す。変換テーブル１０００は、リフレッシュ管理テーブル２６１と同様に、フラッシュメモリ２６０に格納されており、ＨＤＤ１０のパワーオン時にバッファＲＡＭ２５０にロードされる。
【００７５】
変換テーブル１０００は、２３ビットのトラック番号Ｔを１５ビットのグループ番号ｘ及び４ビットの位置データＰに、ＣＰＵ２８０が変換するのに用いられる。このように第３の実施形態では、グループ番号ｘのビット数が、第１及び第２の実施形態と比較して４ビット少ない。つまり、第３の実施形態では、グループ数は、第１及び第２の実施形態のそれの１／２4（＝１／１６）である。一方、各グループｘに属するトラックＴの数は第１及び第２の実施形態のそれの２4（＝１６）倍の２５６である。
【００７６】
この場合、２５６のトラックＴにビットマップＢＭｘの各ビットｂｊを１対１で割り当てるためには、ビットマップＢＭｘのビット数を１６ビットから２５６ビットに増やさなければならない。そこで、第３の実施形態では、ビットマップＢＭｘのビット数を第１及び第２の実施形態と同様に１６ビットとする代わりに、各ビットｂｊが２つ以上のトラックＴ（例えば１６トラック）を備えたサブグループに割り当てられる構成を適用している。
【００７７】
ＣＰＵ２８０は、図１０に示す変換テーブル１０００に従い、トラック番号Ｔのビット１，２０，２１及び２０を含む８ビットを４ビットの位置データＰに変換する。これにより、例えばトラック番号Ｔのビット１及び２０は、位置データＰの最下位ビット（後述するトラック番号Ｔ’のビット１５）に変換される。この場合、トラック番号Ｔのビット１及び２０の組み合わせで決まる“０”または“１”が、上記ビット１５に設定される。更に詳細に述べるならば、ビット１及び２０の組み合わせは、“００”，“０１”，“１０”，“１１”の４通りであることから、この４通りの組み合わせのうちの第１の組み合わせが、上記ビット１５の“０”に変換され、残りの第２の組み合わせが上記ビット１５の“１”に変換される。位置データＰの残りの３ビット（ビット１６乃至１８）についても同様である。このような変換により、ビットマップＢＭｘの各ビットｂｊを２つ以上のトラック、例えば１６のトラック（より詳細には、１６のトラックを備えたサブグループ）に割り当てることができる。
【００７８】
トラック番号Ｔの残りの１５ビット、つまりビット０及び２を含む１５ビットは、１５ビットのグループ番号ｘに変換される。位置データＰ及びグループ番号ｘは、２３ビットのトラック番号Ｔが変換テーブル１０００によって変換された後の１９ビットのトラック番号Ｔ’の、それぞれ上位４ビット及び下位１５ビットであると見なすことができる。
【００７９】
第３の実施形態においてＣＰＵ２８０は、トラックＴへの書き込みが行われた場合、当該トラックＴのトラック番号Ｔを、変換テーブル１０００に従って、位置データＰ及びグループ番号ｘに変換する（図６のステップ６０２，６０３に相当）。位置データＰの整数値ｊは、トラックＴが属するグループｘ内のサブグループに割り当てられた、ビットマップＢＭｘのビットｂｊのビット番号を示す。そこでＣＰＵ２８０は、第１の実施形態と同様に、このビットｂｊに“１”を設定する。
【００８０】
ＣＰＵ２８０が、上述した変換テーブル１０００に基づいてトラック番号Ｔを位置データＰ及びグループ番号ｘに変換する動作は、グループｘ（より詳細にはグループｘに属する全トラック）を、２つ以上のトラックをそれぞれ備えた１６のサブグループに区分し、１６のサブグループにビットマップＢＭｘのそれぞれのビットｂｊを割り当てることと等価である。なお、第３の実施形態では、各サブグループが２つ以上のトラックを備えていることを前提としている。しかし、各サブグループが１つ以上のトラックを備えていてもよい。明らかなように、第１及び第２の実施形態は、１６のサブグループがそれぞれ１つのトラックを備えている場合に相当する。
【００８１】
第３の実施形態によれば、リフレッシュ管理テーブル２６１のエントリ数を、第１及び第２の実施形態の１／２５６に減らすことができる。これにより、リフレッシュ管理テーブル２６１を格納するのに必要な記憶領域を低減できる。但し、第３の実施形態では、１６ビットのビットマップＢＭｘのビットｂｊが複数のトラックに割り当てられた場合、当該複数のトラックの中に書き込みが行われていないトラックが含まれていても、当該書き込みが行われていないトラックもリフレッシュの対象となる。
【００８２】
［第４の実施形態］
次に第４の実施形態について説明する。この第４の実施形態に係るＨＤＤを備えた電子機器の基本構成は、第１の実施形態と同様であるため、以下の説明では図１を援用する。
【００８３】
第４の実施形態の特徴は、ビットマップＢＭｘの各ビットｂｊに割り当てられるサブグループ内のトラックの数（つまりサブグループ化密度）を、当該サブグループと対応付けられるトラック領域に応じて設定する点にある。
【００８４】
一般に、ディスク１１０上の記録面を同心円状に複数の領域（以下、トラック領域と称する）に区分した場合、外周側のトラック領域ほど使用頻度が高く、内周側のトラック領域ほど使用頻度が低いことが知られている。そこで、第４の実施形態では、グループｘを複数のサブグループに区分する際のサブグループ化密度が、外周側のトラック領域に対応するサブグループでは低く、内周側のトラック領域に対応するサブグループでは高く設定される。このため、トラック領域も、外周側のトラック領域ほどトラック数が少なく、内周側のトラック領域ほどトラック数が多くなるように設定される。以下、サブグループ化密度をサブグループ化係数Ｊと呼ぶ。サブグループ化係数Ｊは、対応するサブグループに属するトラックの数、つまりビットマップＢＭｘのビットｂｊが割り当てられるトラックの数を示す。
【００８５】
図１１は、第４の実施形態において、ＣＰＵ２８０がグループ化手段として機能することによってグループｘをサブグループ化する際に適用されるサブグループ化係数テーブル１１００の一例を示す。サブグループ化係数テーブル１１００は、リフレッシュ管理テーブル２６１と同様に、フラッシュメモリ２６０に格納されているものとする。このサブグループ化係数テーブル１１００は、リフレッシュ管理テーブル２６１と同様に、ＨＤＤ１０のパワーオン時にバッファＲＡＭ２５０にロードされる。
【００８６】
サブグループ化係数テーブル１１００は、トラック領域の数に一致するエントリを有する。サブグループ化係数テーブル１１００の各エントリは、トラック領域開始番号フィールド１１０１、トラック領域終了番号フィールド１１０２、サブグループ化係数フィールド１１０３及びビット番号フィールド１１０４を備えている。
【００８７】
トラック領域開始番号フィールド１１０１は、対応するトラック領域の開始トラック番号（トラック領域開始番号）Ｔｓを予め登録し、トラック領域終了番号フィールド１１０２は、対応するトラック領域の終了トラック番号（トラック領域終了番号）Ｔｅを予め登録する。
【００８８】
サブグループ化係数フィールド１１０３は、グループｘをサブグループ化する際の、対応するトラック領域に対応付けられたサブグループに属するトラックの数Ｊを、サブグループ化係数Ｊとして予め登録する。  
ビット番号フィールド１１０４は、ビットマップＢＭｘのうちの対応するサブグループに割り当てられるビットｂｊのビット番号ｊを示す。
【００８９】
図１１に示すサブグループ化係数テーブル１１００の例では、グループ番号ｘの範囲が００００ｈ乃至ＦＦＦＦｈである場合を想定している。この場合、ＣＰＵ２８０は、グループ番号ｘを、グループ化係数Ｊとトラック番号Ｔから次式
グループ番号ｘ＝（Ｔ／Ｊ）ｍｏｄ １００００ｈ（ｍｏｄは整数除算の余り）
に従って算出することができる。
【００９０】
例えば、トラック番号Ｔが７５８Ｅ３ｈの場合、ＣＰＵ２８０は、サブグループ化係数テーブル１１００の５番目のエントリから、トラック番号Ｔがトラック開始番号７００００ｈ及びトラック終了番号８ＦＦＦＦｈで示されるトラック領域に入っており、このトラック領域に対応するグループ化係数Ｊが２であることを認識する。この場合、ＣＰＵ２８０は、グループ番号ｘとして、
グループ番号ｘ＝（７５８Ｅ３ｈ／２）ｍｏｄ １００００＝ＡＣ７１ｈ
を取得する。
【００９１】
また、ＣＰＵ２８０は、サブグループ化係数テーブル１１００の５番目のエントリから、トラック番号Ｔが７５８Ｅ３ｈのトラックＴを含むサブグループに割り当てられる、ビットマップＢＭｘのビットｂｊのビット番号ｊとして４を取得する。
【００９２】
次に、第４の実施形態において、ＣＰＵ２８０が、グループ番号がｘのグループｘを対象とするリフレッシュ処理を行うものとする。この場合、ＣＰＵ２８０は、グループ番号ｘと、ビットマップＢＭｘのビットｂｊ（＝１）のビット番号ｊ（つまり、第１の実施形態における変数ｊ）とに基づき、１つ以上のリフレッシュ対象トラックのトラック番号を次のように算出する。リフレッシュ対象トラックは、グループ番号がｘのグループｘに属するトラックのうち、ビット番号ｊが割り当てられているサブグループに属する全てのトラックの隣接トラックである。
【００９３】
まずＣＰＵ２８０は、サブグループ化係数テーブル１１００を参照することにより、ビット番号ｊに対応するトラック領域開始番号Ｔｓ及びサブグループ化係数Ｊを取得する。  
次にＣＰＵ２８０は、１つ以上のリフレッシュ対象トラックの開始トラック（リフレッシュ開始トラック）のトラック番号（リフレッシュ開始トラック番号）及び終了トラック（リフレッシュ終了トラック）のトラック番号（リフレッシュ終了トラック番号）を次式
リフレッシュ開始トラック番号
＝Ｔｓ＋ｘ×Ｊ
リフレッシュ終了トラック番号
＝Ｔｓ＋ｘ×Ｊ＋Ｊ−１
＝リフレッシュ開始トラック番号＋Ｊ−１
に従って算出する。
【００９４】
なお、グループ化係数Ｊが１の場合、リフレッシュ開始トラック番号はリフレッシュ終了トラック番号に一致する。この場合、“Ｔｓ（トラック領域開始番号）＋ｘ（グループ番号）”で表される１トラックのみが、リフレッシュ対象トラックとなる。
【００９５】
例えばグループ番号ｘがＡＣ７１ｈで、ビット番号ｊが４の場合、ＣＰＵ２８０は、サブグループ化係数テーブル１１００から、トラック領域開始番号Ｔｓとして７００００ｈを、サブグループ化係数Ｊとして２を、それぞれ取得する。この場合、リフレッシュ開始トラック番号及びリフレッシュ終了トラック番号は、
リフレッシュ開始トラック番号
＝７００００ｈ＋ＡＣ７１ｈ×２
＝８５８Ｅ２ｈ
リフレッシュ終了トラック番号
＝７００００ｈ＋ＡＣ７１ｈ×２＋２−１
＝８５８Ｅ３ｈ
となる。
【００９６】
第４の実施形態によれば、グループｘを複数のサブグループに区分する際のサブグループ化密度が、外周側のトラック領域に対応するサブグループでは低く、内周側のトラック領域に対応するサブグループでは高く設定される。これにより、サブグループ化密度が高いサブグループに属する比較的多くのトラックが、ビットマップＢＭｘのビットｂｊに割り当てられても、このようなサブグループを含むグループを対象とするリフレッシュ処理のパフォーマンスに悪影響を及ぼすのを防止できる。しかも、リフレッシュ管理テーブル２６１を格納するのに必要な記憶領域を低減できる。
【００９７】
第３及び第４の実施形態では、ビットマップＢＭｘのビットｂｊが“１”である場合、当該ビットｂｊが割り当てられているサブグループに属する１つ以上のトラックの隣接トラックがリフレッシュされる。しかし、このような１つ以上のトラックの隣接トラックのうち、書き込みが一度もないサブグループに属する隣接トラックをリフレッシュ対象外としても構わない。書き込みが一度もないサブグループであるかは、当該サブグループが属するグループに対応するビットマップＢＭｘ内の当該サブグループに対応するビットｂｊが“０”であるかによって判定可能である。また、ビットマップＢＭｘのビットｂｊが“１”である場合、当該ビットｂｊが割り当てられているサブグループに属する１つ以上のトラックもリフレッシュされても構わない。
【００９８】
以上説明した少なくとも１つの実施形態によれば、不要なリフレッシュが発生するのを効果的に防止できる磁気ディスク装置及び同装置におけるリフレッシュ方法を提供することができる。
【００９９】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１００】
１０…ＨＤＤ（磁気ディスク装置）、２０…ホスト、１１０…ディスク、１２０…ヘッド、２５０…バッファＲＡＭ、２６０…フラッシュメモリ、２６１…リフレッシュ管理テーブル、２７０…プログラム、２８０…ＣＰＵ（グループ化手段、リフレッシュ制御手段、書き込み管理手段）、２９０…ＲＡＭ、９００，１０００…変換テーブル、１１００…サブグループ化係数テーブル、ＢＭｘ…ビットマップ。
【図１】
2012014790.tif 000003
【図２】
2012014790.tif 000004
【図３】
2012014790.tif 000005
【図４】
2012014790.tif 000006
【図５】
2012014790.tif 000007
【図６】
2012014790.tif 000008
【図７】
2012014790.tif 000009
【図８】
2012014790.tif 000010
【図９】
2012014790.tif 000011
【図１０】
2012014790.tif 000012
【図１１】
2012014790.tif 000013
【手続補正書】
【提出日】平成23年9月21日(2011.9.21)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ディスク上のトラックの集合を、物理位置が非連続の２以上のトラックを含む複数のトラックを備えた複数のグループにグループ化し、且つ前記複数のグループの各々を、１つ以上のトラックを備えた複数のサブグループに区分するグループ化手段と、
前記複数のグループ毎に、前記複数のサブグループそれぞれの書き込みの有無を示すビットの集合を備えたビットマップと、
前記複数のグループそれぞれの書き込み回数をカウントし、前記複数のグループ毎の前記ビットマップを用いて、前記グループ内の前記複数のサブグループを対象にサブグループ単位に書き込みの有無を管理する書き込み管理手段と、
前記複数のグループのうち、前記書き込み回数が閾値を超えたグループを対象にリフレッシュ処理を実行する際に、前記リフレッシュ処理の対象となるグループに対応する前記ビットマップに基づいて、書き込みのないサブグループを前記リフレッシュ処理におけるリフレッシュ対象外とするリフレッシュ制御手段と
を具備する磁気ディスク装置。
【請求項２】
前記書き込み管理手段は、ホストから要求された目的のトラックへの書き込みに応じて、当該目的トラックが属するグループに対応する前記ビットマップ内の、当該目的トラックが属するサブグループに対応するビットを書き込み有りを示す状態に設定する請求項１記載の磁気ディスク装置。
【請求項３】
前記グループ化手段は、前記トラックの集合に含まれている各トラックと、当該トラックが属するグループ及び当該トラックが属するサブグループに対応するビットマップ内のビットの位置とを、当該トラックのトラック番号に基づいて関連付ける請求項２記載の磁気ディスク装置。
【請求項４】
前記グループ化手段は、前記トラック番号を表すバイナリデータの下位フィールドにより、前記トラック番号のトラックが属するグループのグループ番号を定義し、前記バイナリデータの上位フィールドにより、前記ビットの位置を示す位置情報を定義する請求項３記載の磁気ディスク装置。
【請求項５】
前記関連付けのための変換テーブルを更に具備する請求項３記載の磁気ディスク装置。
【請求項６】
前記リフレッシュ制御手段は、前記リフレッシュ処理の対象となるグループ内の、書き込みのあるサブグループをリフレッシュ対象として、当該書き込みのあるサブグループに属する１つ以上のトラックの隣接トラックのリフレッシュ処理を実行する請求項１記載の磁気ディスク装置。
【請求項７】
前記複数のグループの各々の前記複数のサブグループは、それぞれ前記ディスク上の予め定められたトラック領域に対応付けられており、
前記グループ化手段は、前記複数のサブグループのそれぞれが備える１つ以上のトラックの数を、対応するトラック領域に応じて設定する
請求項１記載の磁気ディスク装置。
【請求項８】
前記グループ化手段は、前記対応するトラック領域の使用頻度が高いほど、前記１つ以上のトラックの数を少なく設定する請求項７記載の磁気ディスク装置。
【請求項９】
ディスク上のトラックの集合を、物理位置が非連続の２以上のトラックを含む複数のトラックを備えた複数のグループにグループ化し、
前記複数のグループの各々を、１つ以上のトラックを備えた複数のサブグループに区分し、
前記複数のグループそれぞれの書き込み回数をカウントし、
前記複数のグループ毎に設けられた、前記複数のサブグループそれぞれの書き込みの有無を示すビットの集合を備えたビットマップを用いて、前記グループ内の前記複数のサブグループを対象にサブグループ単位に書き込みの有無を管理し、
前記複数のグループのうち、前記書き込み回数が閾値を超えたグループを対象にリフレッシュ処理を実行する際に、前記リフレッシュ処理の対象となるグループに対応する前記ビットマップに基づいて、書き込みのないサブグループを前記リフレッシュ処理におけるリフレッシュ対象外とする
磁気ディスク装置におけるリフレッシュ方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１３
【補正方法】変更
【補正の内容】
【００１３】
実施形態によれば、磁気ディスク装置は、グループ化手段とビットマップと書き込み管理手段とリフレッシュ制御手段とを具備する。前記グループ化手段は、ディスク上のトラックの集合を、物理位置が非連続の２以上のトラックを含む複数のトラックを備えた複数のグループにグループ化し、且つ前記複数のグループの各々を、１つ以上のトラックを備えた複数のサブグループに区分する。前記ビットマップは、前記複数のグループ毎に、複数のサブグループそれぞれの書き込みの有無を示すビットの集合を備える。前記書き込み管理手段は、前記複数のグループそれぞれの書き込み回数をカウントし、前記複数のグループ毎の前記ビットマップを用いて、前記グループ内の前記複数のサブグループを対象にサブグループ単位に書き込みの有無を管理する。前記リフレッシュ制御手段は、前記複数のグループのうち、前記書き込み回数が閾値を超えたグループを対象にリフレッシュ処理を実行する際に、前記リフレッシュ処理の対象となるグループに対応する前記ビットマップに基づいて、書き込みのないサブグループを前記リフレッシュ処理におけるリフレッシュ対象外とする。