(57)【要約】      （修正有）【課題】データトラックへの書き込みの適応カウントを使用して隣接トラックへの侵入の影響を最低限に抑えるディスクドライブを提供する。【解決手段】ハードディスクドライブ（ＨＤＤ）は、データトラックへの書き込みの適応カウントを使用して、隣接トラック侵入（ＡＴＥ）の影響を最低限に抑える。トラックはセグメントにグループ化され、カウンタが各セグメントに関連付けられるが、セグメント内のトラック数は、セグメントへの書き込み回数に応じて様々であり、またはセグメントへの書き込み回数に適応する。【選択図】図３
2011238340.tif 000002
【特許請求の範囲】
【請求項１】
ホストコンピュータからのユーザデータを記憶する、同心円状に配列する複数のデータトラックを有する磁気記録ディスクと、
前記データトラックにデータを書き込む書き込みヘッドと、
前記複数のデータトラックの中から、前記書き込みヘッドがデータを書き込むデータトラックを選択するコントローラと、
前記コントローラに結合されたメモリと、
を備え、
前記コントローラは、
（ａ）前記複数のデータトラックを、所定数のデータトラックをそれぞれ有する複数のセグメントにグループ化するステップと、
（ｂ）前記各々のセグメントへの書き込み回数をカウントするステップと、
（ｃ）前記複数のセグメントの何れかのカウントが閾値に達した場合、当該セグメント内の前記所定数のデータトラックを、それよりも少数のデータトラックをそれぞれ有する複数のセグメントにグループ化するステップと、
を実行する、
ディスクドライブ。
【請求項２】
前記コントローラは、
前記（ｂ）のステップ及び前記（ｃ）のステップを繰り返し、
前記セグメント内の前記データトラックの数が所定の最小数に達した場合、前記所定の最小数のデータトラックを有する前記セグメントについて前記（ｃ）のステップを終了する、
請求項１に記載のディスクドライブ。
【請求項３】
前記データトラックからデータを読み取る読み取りヘッドをさらに備え、
前記コントローラは、
前記所定の最小数のデータトラックを有する前記セグメントの前記カウントが閾値に達した場合、前記所定の最小数のデータトラックを有する前記セグメント内のすべてのデータトラックからデータを読み出し、
前記所定の最小数のデータトラックを有する前記セグメント内のすべてのデータトラックから読み出されたデータを再び書き込み、
前記所定の最小数のデータトラックを有する前記セグメントの前記カウントをゼロにリセットする、
請求項２に記載のディスクドライブ。
【請求項４】
前記データを読み出すことは、
前記所定の最小数のデータトラックを有する前記セグメントに半径方向に隣接する、半径方向内側の少なくとも１つのデータトラックと、
前記所定の最小数のデータトラックを有する前記セグメントに半径方向に隣接する、半径方向外側の少なくとも１つのデータトラックと、
からデータを読み出すことを含み、
前記データを再び書き込むことは、
前記所定の最小数のデータトラックを有する前記セグメントに半径方向に隣接する、半径方向内側の少なくとも１つのデータトラックと、
前記所定の最小数のデータトラックを有する前記セグメントに半径方向に隣接する、半径方向外側の少なくとも１つのデータトラックと、
からの前記データを再び書き込むことを含む、
請求項３に記載のディスクドライブ。
【請求項５】
前記所定の最小数は１である、
請求項２に記載のディスクドライブ。
【請求項６】
前記各々のデータトラックは複数のデータセクタを有し、
前記コントローラは、
前記（ｂ）のステップ及び前記（ｃ）のステップを繰り返し、
前記セグメント内の前記データトラックの数が１に達した場合、当該１のデータトラックへの書き込み回数をカウントし、
前記１のデータトラックのカウントが閾値に達した場合、前記１のデータトラックに含まれる前記複数のデータセクタを、所定数のデータセクタをそれぞれ有する複数のサブセグメントにグループ化し、
前記各々のサブセグメントへの書き込み回数をカウントする、
請求項１に記載のディスクドライブ。
【請求項７】
前記コントローラは、前記カウントをメモリに記憶する、
請求項１に記載のディスクドライブ。
【請求項８】
前記コントローラは、
前記カウントが閾値に達したセグメントよりも少数のデータトラックを有する前記複数のセグメントが、所定の時間中に書き込まれなかった場合、前記カウントが閾値に達したセグメントよりも少数のデータトラックを有する前記複数のセグメントを、単一のセグメントに再グループ化し、
前記カウントが閾値に達したセグメントよりも少数のデータトラックを有する前記複数のセグメントの前記カウントの記憶に使用された前記メモリを解放する、
請求項７に記載のディスクドライブ。
【請求項９】
前記メモリは不揮発性メモリである、
請求項７に記載のディスクドライブ。
【請求項１０】
データを記憶する、同心円状に配列する複数のデータトラックを有する磁気記録ディスクと、
前記データトラックにデータを書き込むための書き込み磁場を生成する書き込みヘッドと、
前記データトラックに書き込まれたデータを読み取る読み取りヘッドと、
前記書き込みヘッドによる前記データトラックへのデータの書き込みを制御するコントローラと、
前記コントローラに結合されるメモリと、
を備え、
前記コントローラは、
（ａ）前記複数のデータトラックを、同数のデータトラックをそれぞれ有する複数のセグメントにグループ化するステップと、
（ｂ）前記各々のセグメントに書き込まれた回数をカウントするステップと、
（ｃ）前記各々のセグメントのカウントをメモリに記憶するステップと、
（ｄ）前記複数のセグメントの何れかの前記カウントが閾値に達した場合、当該セグメント内の前記データトラックを、その半分の数のデータトラックをそれぞれ有する２つのセグメントに分割するステップと、
（ｅ）前記（ｂ）〜（ｄ）のステップを繰り返すステップと、
（ｆ）前記セグメントが所定の最小数のデータトラックを含み、前記所定の最小数を有する前記セグメントの前記カウントが閾値に達した場合、前記所定の最小数を有する前記セグメント内のすべてのデータトラックからデータを読み出し、前記所定の最小数を有する前記セグメント内のすべてのデータトラックからの前記データを再び書き込むステップと、
を実行する、
ディスクドライブ。
【請求項１１】
前記データを読み出すことは、
前記所定の最小数のデータトラックを有する前記セグメントに半径方向に隣接する、半径方向内側の少なくとも１つのデータトラックと、
前記所定の最小数のデータトラックを有する前記セグメントに半径方向に隣接する、半径方向外側の少なくとも１つのデータトラックと、
からデータを読み出すことを含み、
前記データを再び書き込むことは、
前記所定の最小数のデータトラックを有する前記セグメントに半径方向に隣接する、半径方向内側の少なくとも１つのデータトラックと、
前記所定の最小数のデータトラックを有する前記セグメントに半径方向に隣接する、半径方向外側の少なくとも１つのデータトラックと、
からの前記データを再び書き込むことを含む、
請求項１０に記載のディスクドライブ。
【請求項１２】
前記所定の最小数は１である、
請求項１０に記載のディスクドライブ。
【請求項１３】
前記コントローラは、
前記カウントが閾値に達したセグメント内の前記データトラックの半分の数のデータトラックをそれぞれ有する前記２つのセグメントが、所定の時間中に書き込まれなかった場合、前記カウントが閾値に達したセグメント内の前記データトラックの半分の数のデータトラックをそれぞれ有する前記２つのセグメントを単一のセグメントに再グループ化し、
前記カウントが閾値に達したセグメント内の前記データトラックの半分の数のデータトラックをそれぞれ有する前記２つのセグメントの前記カウントの記憶に使用された前記メモリを解放する、
請求項１０に記載のディスクドライブ。
【請求項１４】
データを記憶する、同心円状に配列する複数のデータトラックを有する磁気記録ディスクと、
前記データトラックにデータを書き込むための書き込み磁場を生成する書き込みヘッドと、
前記データトラックに書き込まれたデータを読み取る読み取りヘッドと、
前記書き込みヘッドによる前記データトラックへのデータの書き込みを制御するコントローラと、
前記コントローラに結合されるメモリと、
を備え、
前記コントローラは、
（ａ）前記複数のデータトラックを、同数のデータトラックをそれぞれ有する複数のセグメントにグループ化するステップと、
（ｂ）前記各々のセグメントに書き込まれた回数をカウントするステップと、
（ｃ）前記各々のセグメントのカウントをメモリに記憶するステップと、
（ｄ）前記複数のセグメントの何れかの前記カウントが閾値に達した場合、当該セグメント内の前記データトラックを、その半分の数のデータトラックをそれぞれ有する２つのセグメントに分割するステップと、
（ｅ）前記セグメント内の前記データトラックの数が１に達し、当該１のデータトラックのカウントが閾値に達した場合、前記１のデータトラックに含まれる複数のデータセクタを、所定数のデータセクタをそれぞれ有する複数のサブセグメントにグループ化するステップと、
（ｆ）前記各々のサブセグメントにデータが書き込まれた回数をカウントするステップと、
（ｇ）前記各々のサブセグメントのカウントをメモリに記憶するステップと、
（ｈ）前記複数のサブセグメントの何れかのカウントが閾値に達した場合、当該サブセグメント内の前記所定数のデータセクタを、その半分の数のデータセクタをそれぞれ有する２つのサブセグメントに分割するステップと、
（ｉ）前記サブセグメント内のデータセクタの数が所定の最小数に達し、前記所定の最小数のデータセクタを有する前記サブセグメントの前記カウントが閾値に達した場合、前記所定の最小数のデータセクタを有する前記サブセグメント内のすべてのデータセクタからデータを読み出し、前記所定の最小数のデータセクタを有する前記サブセグメント内のすべてのデータセクタから読み出された前記データを再び書き込むステップと、
（ｊ）前記所定の最小数のデータセクタを有する前記サブセグメントの前記カウントをゼロにリセットするステップと、
を実行する、
ディスクドライブ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般には磁気記録ハードディスクドライブ（ＨＤＤ）に関し、より詳細には、データトラックへの書き込み回数をカウントして、書き込み中の隣接トラック侵入（ＡＴＥ）の影響を最低限に抑える高密度データトラックを有するＨＤＤに関する。
【背景技術】
【０００２】
高密度データを有するＨＤＤは、高密度データトラックを有する必要があり、同心円データトラックが一緒に密に詰め込まれることを意味する。高密度トラックは、隣接トラック侵入（ＡＴＥ）の問題を悪化させる。ＡＴＥは、書き込み中のトラックに隣接するトラックに記憶されている古いデータが、その書き込み中のデータトラックへの多数回の書き込み後に劣化する場合に発生する。ＡＴＥは一般にビット誤り率（ＢＥＲ）の増大に繋がり、その結果、ＨＤＤの性能および信頼性が低下する。
【０００３】
ＡＴＥ問題に対処する一手法は、各トラックへの書き込み回数をカウントすることである。トラックに所定数の書き込みがなされた場合、そのトラックおよび両側の１つまたは複数の隣接トラックが読み取られ、次に再び書き込まれる。単一トラックへの相当回数の繰り返し書き込みが回避されるため、ＡＴＥの影響は蓄積されない。この手法は、本願と同じ譲受人に譲渡された（特許文献１）に記載されている。しかし、ＨＤＤは非常に多くの数のトラック、例えば、数１０万ものトラックを有し得るため、各トラックのカウントを記憶するために、かなりの量のメモリを割り振る必要があり得る。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国特許第７，５６７，４００  Ｂ２号明細書
【非特許文献】
【０００５】
【非特許文献１】Ｚｈｉｈａｏ  Ｌｉら、「Ａｄｊａｃｅｎｔ  Ｔｒａｃｋ  Ｅｒａｓｕｒｅ  Ａｎａｌｙｓｉｓ  ａｎｄ  Ｍｏｄｅｌｉｎｇ  ａｔ  Ｈｉｇｈ  Ｔｒａｃｋ  Ｄｅｎｓｉｔｙ」、ＩＥＥＥ  ＴＲＡＮＳＡＣＴＩＯＮＳ  ＯＮ  ＭＡＧＮＥＴＩＣＳ、ＶＯＬ．３９、ＮＯ．５、２００３年９月、２６２７〜２６２９頁
【発明の概要】
【発明が解決しようとする課題】
【０００６】
したがって、必要なのは、メモリを効率的に使用しながら、それでもなおＡＴＥの問題に効率的に対処するように、データトラックへの書き込みをカウントするＨＤＤである。
【課題を解決するための手段】
【０００７】
本発明は、データトラックへの書き込みの適応カウントを使用して、ＡＴＥの影響を最低限に抑えるＨＤＤに関する。トラックはセグメントにグループ化され、カウンタが各セグメントに関連付けられるが、セグメント内のトラック数は固定されず、セグメントへの書き込み回数に応じて様々であり、すなわち、セグメントへの書き込み回数に適応する。したがって、セグメントは、比較的多数のトラックを有することを意味する「粗い」粒度、または比較的少数のトラックを有することを意味する「細かい」粒度を有することができる。粗いセグメントへの書き込み回数のカウントが増大して、所定の閾値に達すると、セグメントは、より少数のトラックを有するいくつかのより細かいセグメントに分割される。元のセグメントはもはや存在せず、メモリは元のセグメントのカウントを記憶する必要はない。このプロセスは続けられ、セグメントは、所定の最小数トラック、例えば、１つのみのトラックに達するまで、より少数のトラックを有する粒度のより細かいセグメントに分割され続ける。最小数トラックを有するセグメントへの書き込み回数のカウントが所定の閾値に達した場合、そのセグメント内のすべてのトラックおよびそのセグメントの両側で半径方向に隣接するトラックが読み取られ、好ましくは同じトラックに再び書き込まれ、そのセグメントのカウンタはゼロにリセットされる。
【０００８】
適応カウントは、単一トラックを超えてトラック内の個々のデータセクタに拡張することもできる。１つのみのトラックを有するセグメントへの書き込み回数のカウントが所定の閾値に達した場合、その単一トラックを読み取って再び書き込むことに代えて、１トラックセグメントを、そのトラックの複数のデータセクタを含むサブセグメントに分割する動作を続けることができる。
【０００９】
本発明は、セグメントの再グループ化につながるメモリ内でのカウンタの「ガーベッジコレクション」（ＧＣ）プロセスも含む。ＧＣは、適応カウントが動作中であった所定時間の後、例えば、一定の時間後に、ＨＤＤスタートアップ時等の場合に定期的に、アイドル時間中に、または使用されるメモリが、適応カウントプロセスに割り振られたメモリに近づきつつある場合に実行することができる。ＧＣプロセス中、最後のＧＣ以来、書き込まれていないセグメントが識別され、これらセグメントはより粒度の粗いセグメントに再グループ化され、それらセグメントのカウンタは解放される。
【００１０】
本発明の性質および利点をより十分に理解するために、添付図と共に解釈される以下の詳細な説明を参照すべきである。
【図面の簡単な説明】
【００１１】
【図１】本発明による磁気記録ハードディスクドライブ（ＨＤＤ）のブロック図である。
【図２】書き込み中の隣接トラック侵入（ＡＴＥ）の問題を示すディスクおよび関連する読み／書きヘッドの断面図である。
【図３】ＨＤＤのすべてのデータトラックへの書き込み回数をカウントする本発明による適応カウント手法の一実施態様を示す決定木である。
【図４Ａ】本発明による適応カウント動作前のディスクの図である。
【図４Ｂ】本発明による適応カウント動作後のディスクの図である。
【発明を実施するための形態】
【００１２】
図１は、本発明による磁気記録ディスクドライブ（ＨＤＤ）１０のブロック図である。ＨＤＤ１０は、マイクロコントローラまたはマイクロプロセッサを含むことができ、かつ／またはそれ（ら）により実施することができるハードディスクコントローラ（ＨＤＣ）１２を含む。コントローラ１２は、メモリ１４に記憶されており、さらに後述する論理およびアルゴリズムを具現するコンピュータプログラムを実行する。メモリ１４は、コントローラ１２とは別個であってもよく、またはコントローラチップに埋め込まれたメモリであってもよい。コンピュータプログラムは、マイクロコードに実装してもよく、またはコントローラ１２がアクセス可能な他の種類のメモリに実装してもよい。
【００１３】
コントローラ１２は、ホストコンピュータ１８と通信するホストインタフェース１６に接続される。ホストコンピュータ１８は、電池電力で動作可能なポータブルコンピュータであり得る。ホストインタフェース１６は、シリアルＡＴＡ（高度技術アタッチメント）またはＳＣＳＩ（小型コンピュータシステムインタフェース）等の従来の任意のコンピュータＨＤＤインタフェースであり得る。
【００１４】
図１の上面図は単一ディスク２４および関連する読み／書きヘッド２２のみを示すが、ＨＤＤ１０は通常、スピンドル２３に取り付けられ、スピンドルモータ（図示せず）により回転するディスク２４のスタックを含み、各ディスク面には複数のヘッド２２のうちの１つが関連付けられる。読み／書きヘッド２２は通常、誘導性書き込みヘッドと磁気抵抗読み取りヘッドとの組み合わせであり、ヘッドキャリアまたはスライダ３０の後縁端部または端面に配置される。スライダ３０は、ディスク２４が矢印１３０の方向に回転する際、スライダがディスク２４により生成されるエアベアリング上で「ピッチ」または「ロール」できるようにするサスペンション３２によりアクチュエータアーム３１上に支持される。
【００１５】
ディスク２４は半径方向に離間された同心円データトラックを有し、データトラックのうちの１つを１０１として示す。各データトラックは、トラック開始を示す参照インデックス１２１を有する。データトラックは半径方向に、いくつかの環状データ帯またはゾーンにグループ化されるため、ＨＤＤ１０は、ゾーンビット記録（ＺＢＲ）ＨＤＤとして示され、環状データ帯またはゾーンのうちの３つをゾーン１５１、１５２、および１５３として示すが、本発明はＺＢＲを使用しないＨＤＤにも十分に適用可能であり、その場合、ＨＤＤは単一データゾーンのみを有する。各ゾーン内で、トラックは円周方向にも、半径方向において外側のデータゾーン内の典型的なデータセクタ１６４等のいくつかの連続した物理データセクタに分けられる。各データセクタ１６４には、典型的な同期フィールド１６３等の同期（ｓｙｎｃ）フィールドが前置される。同期フィールド１６３は、データセクタ１６４内にデータビットの読み取りおよび書き込みを行うために、読み取りヘッドにより検出可能である。同期フィールド１６３は、データが関連付けられたデータセクタ１６４に書き込まれる都度、磁化されるディスク上の非データ領域である。
【００１６】
各データトラックは、ヘッド２２を所望のデータトラックに移動させ、ヘッド２２をデータトラック上に維持するために、読み取りヘッドにより検出可能な位置決め情報を含む、複数の円周方向、すなわち角度的に離間されたサーボセクタ１２０も含む。各トラック内のサーボセクタは、半径方向に向けられたサーバセクタ１２０により表されるように、概して半径方向においてトラックを横切って延びるように、その他のトラック内のサーボセクタと円周方向において位置合わせされる。サーボセクタ１２０は、通常、ディスクの製造中またはフォーマット中に一度磁化されるディスク上の非データ領域であり、ＨＤＤの通常動作中での消去を意図されない。各トラック内で、各サーボセクタ１２０は、サーボセクタの開始を示すサーボタイミングマーク（ＳＴＭ）とも呼ばれるサーボ識別（ＳＩＤ）マークを有する。通常、サーボセクタ間には複数のデータセクタ１６４が配置される。
【００１７】
ＨＤＤ１０に関連付けられる電子回路は、サーボ電子回路４０も含む。ＨＤＤ１０の動作の際、読み／書きチャネル２０は信号をヘッド２２から受信し、サーボ情報をサーボセクタ１２０からサーボ電子回路４０に渡すと共に、データ信号をデータセクタ１６４からコントローラ１２に渡す。サーボ電子回路４０は通常、サーボセクタ１２０からのサーボ情報を使用して、制御信号を生成する制御アルゴリズムを実行するサーボ制御プロセッサを含む。制御信号は、アクチュエータ２８を駆動させてヘッド２２を位置決めする電流に変換される。ＨＤＤ１０の動作に際して、インタフェース１６は、データセクタ１６４の読み取りまたは書き込みを行う要求をホストコンピュータ１８から受信する。コントローラ１２は、要求されたデータセクタのリストをインタフェース１６から受信し、ディスク面、トラック、およびデータセクタを一意に識別する数セットに変換する。数はサーボ電子回路４０に渡され、ヘッド２２を適切なデータセクタ１６４に位置決めできるようにする。
【００１８】
コントローラ１２は、ヘッド２２がディスク２４に書き込むために、書き込みデータブロックをホストコンピュータ１８から読み／書きチャネル２０を通して転送すると共に、読み取りデータブロックをディスク２４から再びホストコンピュータ１８に転送するデータコントローラとして動作する。ＨＤＤは通常、回転するディスク記憶装置の他に、データがホストコンピュータとディスク記憶装置との間で転送される前に、データを一時的に保持する固体状態メモリ（「キャッシュ」と呼ばれる）も含む。従来のキャッシュは、かなりの回数の書き込み／消去サイクルを経ることができ、高いデータ転送速度を有する揮発性形態のメモリであるダイナミックランダムアクセスメモリ（ＤＲＡＭ）である。ＨＤＤは不揮発性メモリも含み得る。一種類の不揮発性メモリは「フラッシュ」メモリであり、フラッシュメモリは、ブロック単位で電気的に消去・プログラムが可能な「セル」と呼ばれる浮動ゲートトランジスタアレイに情報を記憶する。したがって、ＨＤＤ１０では、コントローラ１２は、データバス５４を介して揮発性メモリ５０（ＤＲＡＭとして示される）およびオプションとして不揮発性メモリ５２（フラッシュとして示される）とも通信する。
【００１９】
高密度データを有するＨＤＤの需要を満たすために、データトラック間隔、すなわち「ピッチ」は低減された。これは、同心円トラックが共により密に詰め込まれることを意味する。これは、書き込まれたトラックの誤り率を増大させるのみならず、隣接トラック侵入（ＡＴＥ）の問題も悪化させる。一般に、ＡＴＥは、書き込み中のトラックに隣接するトラックに記憶されている古いデータが、その書き込み中のデータトラックへの多数回の書き込み後に劣化する場合に発生する。ＡＴＥは一般に、ビット誤り率（ＢＥＲ）の増大に繋がり、結果として、ディスクドライブの性能が低下する。いくつかの深刻な場合では、不良ＢＥＲは復元不可能なデータ誤りエラーの大きな増大に繋がることになる。ＡＴＥは、（非特許文献１）に記載されている。
【００２０】
ＡＴＥの問題を、ディスク２４および関連付けられた読み／書きヘッド２２の断面図である図２に概略的に示す。ディスク２４は、書き込まれたデータトラックｎ−１〜ｎ＋１を有する記録層２４’と共に示される。読み／書きヘッド２２の書き込み極６０は、極６０と位置合わせされたトラックｎに向けられた書き込み磁場７０を生成する。しかし、書き込み場７０は一般にデータトラックよりも広いため、書き込み極６０がトラックｎに書き込んでいるとき、書き込み場７０の外側部分（フリンジ場と呼ばれる）は、少なくとも、書き込み中のトラックの各側の１つのトラック：トラックｎ＋１およびｎ−１に重なる。この重複は、トラックｎ＋１およびｎ−１上のデータのノイズの追加および劣化に繋がるＡＴＥである。ＡＴＥは、書き込み中のトラックから離れて２つ以上のトラック、例えば、２つのトラックで発生する場合もある。
【００２１】
ＡＴＥ問題に対処する一手法は、各トラックへの書き込み回数をカウントすることである。トラックに所定回数の書き込みがなされた場合、そのトラックおよびそのトラックの両側の１つまたは複数の隣接トラックが読み取られ、次に再び書き込まれる。単一トラックへの相当回数の繰り返し書き込みが回避されるため、ＡＴＥの影響は蓄積されない。ＡＴＥの影響が蓄積される前に、隣接トラックは再書き込みされるため、隣接トラック上のデータの信頼性が向上する。この手法は、本願と同じ譲受人に譲渡された（特許文献１）に記載されている。ＨＤＤは多数のトラック、例えば、数１０万ものトラックを有し得るため、各トラックのカウントを記憶するために、かなりの量のメモリが必要であり得る。したがって、トラックを、同じ一定数のトラック、例えば、４つのトラックをそれぞれ有するセグメントにグループ化し、各セグメントへの書き込み回数をカウントすることが提案されている。‘４００号特許の手法と同様に、セグメントに所定の回数の書き込みがなされた場合、そのセグメント内のすべてのトラックおよびそのセグメントの両側の１つまたは複数のトラックが読み出され、次に再び書き込まれる。
【００２２】
本発明では、データトラックへの書き込みの適応カウントを使用して、ＡＴＥの影響を最低限に抑える。いくつかのデータファイルは他のデータファイルよりも頻繁に再書き込みされるため、それらファイルはディスクの「ホットスポット」になる。すなわち、それらファイルに属するデータセクタは、他のデータセクタよりも頻繁に再書き込みされる。本発明では、トラックはセグメントにグループ化され、カウンタが各セグメントに関連付けられるが、セグメント内のトラック数は一定ではなく、セグメントへの書き込み回数に応じて様々であり、またはセグメントへの書き込み回数に適応する。したがって、セグメントは、比較的多数のトラックを有することを意味する「粗い」粒度または比較的少数のトラックを有することを意味する「細かい」粒度を有することができる。粗いセグメントへの書き込み回数が増大するにつれて、セグメントはより少数のトラックを有するより細かいセグメントに分割される。セグメントの適応粒度は、カウンタに必要なメモリ量と不必要な読み出しおよび再書き込み動作によるディスクドライブ性能オーバーヘッドとのトレードオフを最適化する。細かい粒度の場合、多数のカウンタがあるため、メモリ要件は大きくなるが、読み出して再書き込みする必要のあるトラックはより少数であるため、必要な読み出しおよび再書き込み動作によるディスクドライブ性能オーバーヘッドは小さくなる。粗い粒度の場合、カウンタがより少数であるため、メモリ要件は小さくなるが、読み出して再書き込みする必要のあるトラックが多数であるため、ディスクドライブ性能オーバーヘッドは大きくなる。
【００２３】
図３は、本発明の一実施態様を示す決定木である。すべてのデータトラックの書き込み回数をカウントする適応手法では、セグメント数は変化し、トラック／セグメントの数（Ｍ）は様々である。図３に示すように、最初、すべてのデータトラックはＮ個のセグメントにグループ化され、各セグメントはＭ＝Ｍ１個のトラックを有し、したがって、ＨＤＤ内には合計でＮ×Ｍ１個のトラックがある。ＮおよびＭ１の値は、特定のＨＤＤ、例えば、その意図される用途に基づいて選択し得る。理論上、Ｎは１であり得、Ｍ１はＨＤＤ内のデータトラック総数であり得る。図１の例では、本発明のこの実施態様の説明を簡易化するために、Ｍ１＝８である。動作中、コントローラ（図１のＨＤＣ１２）またはＨＤＤ内の別のコントローラもしくはマイクロプロセッサは、データブロックが書き込まれたセグメントを識別し、データブロックがＮ個の各セグメントに書き込まれた回数をカウントする。したがって、最初、Ｎ個のカウンタがあり、各カウンタは初期値、通常は０に設定される。カウント値は、コントローラ１２に関連付けられたメモリ、例えば、メモリ１４、揮発性メモリ５０、または不揮発性メモリ５２に記憶される。
【００２４】
任意のセグメントのカウント（Ｃ）が所定の閾値（Ｔ）に達した場合、そのセグメントは、元のＭ１個のトラックの半分をそれぞれ有する２つのセグメントに分割される。Ｔの値は、特定のＨＤＤ、例えば、ＨＤＤの既知のトラック密度および／またはＨＤＤの意図される目的、ならびに製造中に測定されたＨＤＤのＢＥＲに基づいて選択することができる。２テラバイト（ＴＢ）ＨＤＤの一例では、Ｔは２００万であり得る。決定ノード２０１において、セグメント１のカウントＣが値Ｔに達し、２つの新しいセグメントＮ＋１およびＮ＋２が、過度に書き込まれたセグメント１から形成される。各セグメントＮ＋１およびＮ＋２は、Ｍ＝Ｍ２＝Ｍ１／２＝４個のトラックを有する。セグメント１はもはや存在せず、メモリはセグメント１のカウントを記憶する必要はない。各セグメントＮ＋１およびＮ＋２のカウントＣは０に設定され、動作が続けられ、コントローラ１２は、すべてのセグメント、すなわち、セグメント２〜Ｎ＋２への書き込み回数を追跡し続ける。このプロセスは、決定木を進み続ける。決定ノード２０２において、セグメントＮ＋２のカウントＣが値Ｔに達し、２つの新しいセグメントＮ＋３およびＮ＋４が、過度に書き込まれたセグメントＮ＋２から形成される。各セグメントＮ＋３およびＮ＋４は、Ｍ＝Ｍ３＝Ｍ２／２＝２個のトラックを有する。したがって、粒度は、セグメント１での８トラック／セグメントからセグメントＮ＋３での２トラック／セグメントに低減した。セグメントＮ＋２はもはや存在せず、メモリはセグメントＮ＋２のカウントを記憶する必要はない。動作は続けられ、コントローラ１２は、すべてのセグメント、すなわち、セグメント２〜Ｎ＋１、Ｎ＋３、およびＮ＋４への書き込み回数を追跡し続ける。決定ノード２０３において、セグメントＮ＋４のカウントＣが値Ｔに達し、２つの新しいセグメントＮ＋５およびＮ＋６が、過度に書き込まれたセグメントＮ＋４から形成される。各セグメントＮ＋４およびＮ＋５はＭ＝Ｍ４＝Ｍ３／２＝１個のトラックを有する。
【００２５】
図３の例では、トラック／セグメントの数Ｍの最小値（ＭＩＮ）として１が選択された。しかし、１よりも大きなＭＩＮを選択してもよい。動作は続けられ、コントローラ１２は、セグメントＮ＋５およびＮ＋６を含め、残っているすべてのセグメントへの書き込み回数を追跡し続ける。しかし、それらセグメントのそれぞれはＭ＝Ｍ４＝１＝ＭＩＮを有するため、それらセグメントのさらなる分割は終了する。したがって、決定ノード２０４に示されるように、セグメントＮ＋５がＣ＝Ｔの場合、このセグメント内のすべてのトラックおよびセグメントＮ＋５内のトラックの両側で半径方向に隣接するトラックが読み出され、好ましくは同じトラックに再び書き込まれ、セグメントＮ＋５のカウンタＣは０に設定される。
【００２６】
粒度がトラック／セグメントに基づき、したがって、図３の例に示されるように、粒度が８トラック／セグメントから１トラック／セグメントに低減する本発明を説明した。しかし、本発明は、トラック内の個々のデータセクタに適用することも可能である。再び図１を参照すると、各データトラックは複数のデータセクタ１６４を有する。通常、データセクタは一定数のバイト、例えば、５１２または４０９６バイトを有する。円周方向に隣接するサーボセクタ１２０間には複数のデータセクタ１６４がある。再び図３を参照すると、ノード２０４において、セグメントＮ＋５の単一トラック（および半径方向に隣接するトラック）を読み出して再び書き込むことに代えて、動作はノード２０４に続くことができ、１トラックセグメントＮ＋５は、そのトラックの複数のデータセクタをそれぞれ含むサブセグメントに分割される。例えば、２００個のサーボセクタがある場合、セグメントＮ＋５を、一方がサーボセクタ１〜１００のすべてのデータセクタを含み、他方がサーボセクタ１０１〜２００のすべてのデータセクタを含む２つのサブセグメントに分割し得る。このプロセスは、判断Ｃ＝Ｔ？を使用して上述したように続けて、データセクタのサブセグメントを、より少数のデータセクタを有するサブセグメントにさらに細分し、それにより、さらに細かい粒度を提供することができる。本発明の上記説明では、Ｔは、各粒度レベルで同じ値を有するものとして選択された。しかし、Ｔは、セグメントが２つのより小さなセグメントに分割される都度、異なる値を有するように選択してもよい。例えば、Ｔは、セグメントを２つのより小さなセグメントに分割する都度、より小さくしてもよい。
【００２７】
本発明は、セグメントの再グループ化に繋がるメモリ内でのカウンタの「ガーベッジコレクション」（ＧＣ）プロセスも含む。ＧＣは、適応カウントが動作してから所定の時間後、例えば、一定の時間後、またはＨＤＤスタートアップ時等のように定期的に、アイドル時間中に、または使用されるメモリが、適応カウントプロセスに割り振られたメモリに近づきつつある場合に実行することができる。一手法では、１ビットマーカが各セグメントに割り当てられる。上述した適応カウントプロセス中、各セグメントマーカは、そのセグメントにデータが初めて書き込まれた場合、１に設定される。次に、ＧＣが実行され、すべてのセグメントはトラバースされ、マーカが０に設定されているセグメントが、最後のＧＣ以来、書き込まれていないものとして識別されるセグメントである。それらセグメントは、より粗い粒度のセグメントに再グループ化され、それらセグメントのカウンタは解放される。
【００２８】
図４Ａおよび図４Ｂは、上述した動作の前（図４Ａ）および後（図４Ｂ）の図である。図４Ａでは、それぞれ８トラック／セグメントを有する２つのセグメントＡおよびＢを有する１６個のトラックがある。図４Ｂでは、セグメントＡへの過度の書き込みにより、セグメントＡは、４トラック／セグメントをそれぞれ有するセグメントＡ１およびＡ２に分割された。セグメントＡ２への過度の書き込みにより、セグメントＡ２は、２トラック／セグメントをそれぞれ有するセグメントＡ２１およびＡ２２に分割された。セグメントＡ２１への過度の書き込みにより、セグメントＡ２１は、最小値である１トラック／セグメントをそれぞれ有するセグメントＡ２１１およびＡ２１２に分割された。セグメントＡ２１１（トラック５）のカウントは閾値Ｔに達したため、セグメント２１１およびセグメント２１１に隣接するトラックは、読み出して再書き込みすることが可能である。同様の状況がセグメントＢでも発生し、１トラック（トラック１４）を含むセグメントＢ２１２およびトラック１４に隣接するトラックは、読み出して再書き込みすることが可能である。したがって、トラック５および１４を「ホットスポット」とみなすことができる。
【００２９】
図４Ｂを参照すると、次にＧＣを実行して、セグメントのカウントの保持に使用されたメモリを解放することができる。前回のＧＣの完了後、すべてのマーカは０にリセットされた。セグメントへのいかなる書き込みによっても、セグメントマーカは１になる（すなわち、最近使用されたものとしてマークする）。ＧＣが開始されると、ＧＣはすべてのノードをトラバースし、マーカがまだ０に設定されているあらゆるセグメントを発見する。例えば、図４Ｂでは、前回のＧＣ後にセグメントＡ２１２およびＡ２１１に書き込まれなかった場合、それらのマーカは０に設定されている。その場合、ＧＣは、セグメントＡ２１１およびＡ２１２を単一のセグメントＡ２１に再グループ化し、メモリ内のそれらセグメントのカウンタを解放する。
【００３０】
上述したＨＤＤの動作は、メモリに記憶され、ＨＤＣまたはＨＤＤ内の別個のコントローラもしくはマイクロプロセッサ等のプロセッサにより実行可能なコンピュータプログラム命令セットとして実装し得る。コントローラは、メモリに記憶されるプログラム命令に基づいて論理演算および算術演算を実行し、したがって、上述され図示された機能を実行することが可能である。
【００３１】
本発明について好ましい実施形態を参照して特に示し説明したが、本発明の主旨および範囲から逸脱せずに、形態および詳細に様々な変更を行い得ることを当業者には理解されるであろう。したがって、開示される本発明は単なる例示としてみなされるべきであり、本発明の範囲は、添付の特許請求の範囲の規定によってのみ限定されるべきである。
【符号の説明】
【００３２】
１０  磁気記録ディスクドライブ
１２  ハードディスクコントローラ
１４  メモリ
１６  ホストインタフェース
１８  ホストコンピュータ
２０  読み／書きチャネル
２２  読み／書きヘッド
２４  ディスク
２４’  記録層
２８  アクチュエータ
３０  スライダ
３１  アクチュエータアーム
３２  サスペンション
４０  サーボ電子回路
５０  揮発性メモリ
５２  不揮発性メモリ
５４  データバス
６０  書き込み極
７０  書き込み磁場
１０１  トラック
１２０  サーボセクタ
１３０  矢印
１５１、１５２、１５３  ゾーン
１６３  同期フィールド
１６４  データセクタ
２０１〜２０４  決定ノード
【図１】
2011238340.tif 000003
【図２】
2011238340.tif 000004
【図３】
2011238340.tif 000005
【図４Ａ】
2011238340.tif 000006
【図４Ｂ】
2011238340.tif 000007