(57)【要約】【課題】周辺トラックの影響に対する対策処理の実行を抑制し、リードライト性能の向上を図ることができるディスク記憶装置を提供することにある。【解決手段】本実施形態によれば、ディスク記憶装置は、第１の記憶手段と、第２の記憶手段と、コントローラとを備えた構成である。前記第１の記憶手段は、ディスク上の書き込み対象トラックを基準として周辺トラックに対する書き込みの影響度を判定するための情報を記憶する。前記第２の記憶手段は、データを一時的に格納する不揮発性キャッシュ領域を有する。前記コントローラは、前記ディスク上の指定された書き込み対象トラックにデータを書き込む際に、前記情報に基づいて前記影響度が基準値を超える場合に、当該データを前記不揮発性キャッシュ領域に格納するキャッシュ処理を実行する。【選択図】図１
2014022021.tif 000002
【特許請求の範囲】
【請求項１】
ディスク上の書き込み対象トラックを基準として周辺トラックに対する書き込みの影響度を判定するための情報を記憶する第１の記憶手段と、
データを一時的に格納する不揮発性キャッシュ領域を有する第２の記憶手段と、
前記ディスク上の指定された書き込み対象トラックにデータを書き込む際に、前記情報に基づいて前記影響度が基準値を超える場合に、当該データを前記不揮発性キャッシュ領域に格納するキャッシュ処理を実行するコントローラと
を具備するディスク記憶装置。
【請求項２】
前記不揮発性キャッシュ領域は前記ディスク上に確保されたキャッシュ領域であり、
前記コントローラは、
前記書き込み対象トラックに書き込むデータを前記ディスク上に確保されたキャッシュ領域に記憶させるキャッシュ処理を実行する請求項１に記載のディスク記憶装置。
【請求項３】
前記コントローラは、
前記影響度が基準値を超えていない場合には設定されたキャッシュ処理を実行する請求項１又は請求項２のいずれか１項に記載のディスク記憶装置。
【請求項４】
前記コントローラは、
前記影響度が基準値を超えていない場合に、前記キャッシュ処理を実行せずに、前記ディスク上の書き込み対象トラックにデータを書き込む請求項１から請求項３のいずれか１項に記載のディスク記憶装置。
【請求項５】
前記書き込み対象トラックを基準として当該書き込み対象トラックからの距離に基づいて前記周辺トラックに及ぼす書き込み回数による影響度を示す重み値をトラック毎に記憶する第３の記憶手段を有し、
前記コントローラは、
前記重み値を使用して、前記周辺トラックの各重み値の積分値を前記書き込み対象トラックに対応する前記情報として算出して前記第１の記憶手段に格納する請求項１から請求項４のいずれか１項に記載のディスク記憶装置。
【請求項６】
前記コントローラは、
前記書き込み対象トラックの記録データをリフレッシュするリフレッシュ処理を実行する手段を含み、
前記情報に基づいて前記影響度が基準値を超えると判定した場合には、前記リフレッシュ処理を実行せずに前記キャッシュ処理を実行する請求項１から請求項５のいずれか１項に記載のディスク記憶装置。
【請求項７】
ディスク記憶装置に適用する書き込み制御方法であって、
ディスク上の書き込み対象トラックに書き込みする際に、当該書き込み対象トラックを基準として周辺トラックに対する書き込みの影響度を判定するための情報を記憶し、
前記情報に基づいて前記影響度が基準値を超える場合に、データを不揮発性キャッシュ領域に格納するキャッシュ処理を実行する書き込み制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、キャッシュ機能を有するディスク記憶装置及び書き込み制御方法に関する。
【背景技術】
【０００２】
近年、ハードディスクドライブ（以下、ＨＤＤと表記する場合がある）を代表とするディスク記憶装置の分野では、記録容量の向上を図るためにディスク上の高トラック密度化が推進されている。高トラック密度のディスクでは、同一トラックに対するデータの書き込み回数が多くなると、書き込み動作での記録磁界の影響により、周辺トラックの磁気記録が劣化してリードエラーの要因になるなどの悪影響が生じる。
【０００３】
このような周辺トラック影響（ＡＴＩ：Adjacent Track Interferenceとも呼ばれることもある）に対する対策（ＡＴＩ対策）として、ディスク上の全トラックに対する書き込み回数を記録し、この書き込み回数に基づいてリフレッシュするトラック・リフレッシュ処理を行なう方法が提案されている。
【０００４】
トラック・リフレッシュ処理は、いずれかのトラックで書き込み回数記録値が基準値（閾値）を超えた場合に、当該トラックの記録データを更新する処理である。具体的には、当該トラックの記録データを読み出して、再度書き直す（同一のデータで書き換えるリフレッシュ）処理を実行する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１１−１２９２１３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
トラック・リフレッシュ処理は、通常のリードライト動作に対する負荷を軽減するため、ＨＤＤのアイドル中に実行される。しかしながら、ＨＤＤが稼働している最中でもディスク上のトラックに対する磁気記録の悪影響が深刻となった場合には、通常のリードライト動作を中断してトラック・リフレッシュ処理を優先的に行なう必要が発生することもある。
【０００７】
そこで、本発明の目的は、周辺トラックの影響に対する対策処理の実行を抑制し、リードライト性能の向上を図ることができるディスク記憶装置を提供することにある。
【課題を解決するための手段】
【０００８】
本実施形態によれば、ディスク記憶装置は、第１の記憶手段と、第２の記憶手段と、コントローラとを備えた構成である。前記第１の記憶手段は、ディスク上の書き込み対象トラックを基準として周辺トラックに対する書き込みの影響度を判定するための情報を記憶する。前記第２の記憶手段は、データを一時的に格納する不揮発性キャッシュ領域を有する。前記コントローラは、前記ディスク上の指定された書き込み対象トラックにデータを書き込む際に、前記情報に基づいて前記影響度が基準値を超える場合に、当該データを前記不揮発性キャッシュ領域に格納するキャッシュ処理を実行する。
【図面の簡単な説明】
【０００９】
【図１】実施形態に関するディスクドライブの構成を説明するためのブロック図。
【図２】実施形態に関するＲＡＭに格納されているプログラム及び情報を説明するための図。
【図３】実施形態に関するライトカウント重みテーブルを説明するための図。
【図４】実施形態に関する書き込み回数記録テーブルを説明するための図。
【図５】実施形態に関する周辺影響度記録テーブルを説明するための図。
【図６】実施形態に関する書き込み時のライトカウント重みテーブル及び書き込み回数記録テーブルの一例を説明するための図。
【図７】実施形態に関する書き込み時の周辺影響度記録テーブルの一例を説明するための図。
【図８】実施形態に関する書き込み時のライトカウント重みテーブル及び書き込み回数記録テーブルの一例を説明するための図。
【図９】実施形態に関する書き込み時の周辺影響度記録テーブルの一例を説明するための図。
【図１０】実施形態に関する書き込み時のライトカウント重みテーブル及び書き込み回数記録テーブルの一例を説明するための図。
【図１１】実施形態に関する書き込み時の周辺影響度記録テーブルの一例を説明するための図。
【図１２】実施形態に関する書き込み時のライトカウント重みテーブル及び書き込み回数記録テーブルの一例を説明するための図。
【図１３】実施形態に関する書き込み時の周辺影響度記録テーブルの一例を説明するための図。
【図１４】実施形態に関する書き込み制御処理を説明するためのフローチャート。
【発明を実施するための形態】
【００１０】
以下図面を参照して、実施形態を説明する。
【００１１】
［ディスク記憶装置の構成］
図１は、本実施形態に関するディスク記憶装置（以下、ディスクドライブと表記する場合がある）の要部を示すブロック図である。
【００１２】
図１に示すように、本実施形態のディスクドライブ１はＨＤＤであり、ハードディスクコントローラ（ＨＤＣ）１０と、ヘッド・ディスクアセンブリ（head-disk assembly：ＨＤＡ）１６と、ディスク１７と、バッファメモリ（ＤＲＡＭ:dynamic random access memory）１８と、マイクロプロセッサ（ＭＰＵ）１９と、書き換え可能なメモリ（ＲＡＭ:random access memory）２０と、読み出し専用メモリ（ＲＯＭ:read only memory）２１とを有する。なお、ディスクドライブ１は、不揮発性メモリであるフラッシュメモリ２２を含む構成でもよい。
【００１３】
ＨＤＡ１６は、磁気記録媒体であるディスク１７に対してデータを書き込み又は読み出すための機構である。具体的には、ＨＤＡ１６は、スピンドルモータ、ヘッド、アクチュエータ及びヘッドアンプＩＣなどを含む。スピンドルモータはディスク１７を回転させるモータである。ヘッドはディスク１７に対して磁気記録再生を行なう。アクチュエータはヘッドを搭載し、ディスク１７上に位置決めするためのシーク動作を行なう。ヘッドアンプＩＣはヘッドとの間でリードライト信号を伝送する。
【００１４】
ＭＰＵ１９はディスクドライブ１のメインコントローラであり、後述するように、本実施形態の書き込み制御、キャッシュ処理制御、及びトラック・リフレッシュ処理の制御を実行する。ＲＡＭ２０は、後述するように、本実施形態に関する制御プログラム及び制御情報を格納するメモリである。ＲＯＭ２１はＭＰＵ１９の動作プログラムなどを格納している。
【００１５】
ＨＤＣ１０は、ＭＰＵ１９の制御に基づいて、ホスト２から受信されるライトデータをディスク１７に書き込む書き込み処理や、ディスク１７からデータを読み出してホスト２に転送する読み出し処理などを実行する。ＨＤＣ１０は、ホストインターフェースコントローラ１１と、コマンドコントローラ１２と、トラック・リフレッシュコントローラ１３と、バッファコントローラ１４と、データコントローラ１５とを有する。
【００１６】
ホストインターフェースコントローラ１１は、ディスクドライブ１とホスト２との間でデータやコマンドの転送を制御する。ホスト２は、例えばパーソナルコンピュータやサーバに含まれるＳＡＴＡ（Serial ATA）規格やＳＡＳ（Serial attached SCSI）規格などのインターフェースコントローラである。コマンドコントローラ１２はＭＰＵ１９の制御に基づいて、ホスト２から受信されるコマンド（ライトコマンドやリードコマンドなど）を解読し、ＭＰＵ１９に伝送するなどの制御を実行する。
【００１７】
トラック・リフレッシュコントローラ１３はＭＰＵ１９の制御に基づいて、トラック・リフレッシュ処理を制御する。バッファコントローラ１４はＭＰＵ１９の制御に基づいて、ホスト２から受信したデータ（ライトデータ）や、ディスク１７から読み出されたデータ（リードデータ）をバッファメモリ１８に書き込む制御を実行する。また、バッファコントローラ１４は、バッファメモリ１８からデータを読み出すための制御を実行する。バッファメモリ１８は、データ転送制御のためにライトデータやリードデータを一時的に保持する。
【００１８】
データコントローラ１５は、ＨＤＡ１６に含まれるヘッドに対してリードライト信号の入出力を実行するリードライトチャネルなどを有する。即ち、データコントローラ１５はＭＰＵ１９の制御に基づいて、ライトデータをディスク１７に書き込み、ディスク１７からリードデータを読み出すためのリードライト制御を実行する。
【００１９】
図２に示すように、ＲＡＭ２０は、制御プログラム群２００及び制御情報群３００を格納している。制御プログラム群２００は、コマンド処理制御プログラム２０１、データ処理制御プログラム２０２、バッファ処理制御プログラム２０３、インターフェース（Ｉ／Ｆ）処理制御プログラム２０４及びトラック・リフレッシュ処理プログラム２０５を含む。
【００２０】
コマンド処理制御プログラム２０１は、コマンドコントローラ１２及びＭＰＵ１９が実行するコマンド処理制御を実現するプログラムである。データ処理制御プログラム２０２は、データコントローラ１５及びＭＰＵ１９が実行するリードライト制御を実現するプログラムである。バッファ処理制御プログラム２０３は、バッファコントローラ１４及びＭＰＵ１９が実行するバッファメモリ１８の制御を実現するプログラムである。インターフェース処理制御プログラム２０４は、ホストインターフェースコントローラ１１及びＭＰＵ１９が実行するデータ転送制御を実現するプログラムである。トラック・リフレッシュ処理プログラム２０５は、トラック・リフレッシュコントローラ１３及びＭＰＵ１９が実行するトラック・リフレッシュ処理制御を実現するプログラムである。
【００２１】
次に、制御情報群３００は、トラック・リフレッシュ処理制御情報３０１として、書き込み回数記録テーブル３０２、ライトカウント重みテーブル３０３及び周辺影響度記録テーブル３０４を有する。書き込み回数記録テーブル３０２は、ディスク１７上の全トラックについて書き込み回数記録値を保持するテーブルである。ライトカウント重みテーブル３０３は、書き込みを行うトラックを基準として、書き込みが周囲に及ぼす悪影響の大きさと当該トラックからの距離関係を示すテーブルである。周辺影響度記録テーブル３０４は、書き込み回数記録テーブル３０２及びライトカウント重みテーブル３０３に基づいて算出され、書き込みを行うトラックを基準とする周辺トラックに対する影響度を示すテーブルである。
【００２２】
［書き込み制御］
以下、図３から図１３、及び図１４のフローチャートを参照して、本実施形態の書き込み制御を説明する。
【００２３】
ＨＤＣ１０のトラック・リフレッシュコントローラ１３は、トラック・リフレッシュ処理制御情報３０１を使用してトラック・リフレッシュ処理の実行を制御する。トラック・リフレッシュ処理とは、トラックの磁気記録強度の低下を回避するために、当該トラックの記録データを更新する処理である。具体的には、当該トラックの記録データを読み出して、再度書き直す（同一のデータで書き換えるリフレッシュ）処理を実行する。
【００２４】
図３に示すように、トラック・リフレッシュ処理制御情報３０１には、ライトカウント重みテーブル３０３が含まれている。ライトカウント重みテーブル３０３は、トラック毎の値であり、ライトしたトラック（書き込み対象トラック）を基準として、書き込みが周辺トラックに及ぼす悪影響の大きさ（程度を示す値）と、当該書き込み対象トラックからの距離との関係をテーブル形式で持つものである。
【００２５】
図３に示すように、例えば書き込み対象トラックと隣接する各トラックは、距離が１又は−１であり、その場合の悪影響の程度が相対的に大きい値の１０となる。当然ながら、距離が大きい程（例えば６又は−６）、悪影響の程度は小さい値の１となる。
【００２６】
また、図４に示すように、トラック・リフレッシュ処理制御情報３０１には、書き込み回数記録テーブル３０２が含まれている。書き込み回数記録テーブル３０２は、ディスク１７上の全トラック（例えばトラック番号０〜９２）について、書き込み処理が実行される毎にライトカウント重みテーブル３０３の値を加算した値からなる。なお、図４は、書き込み回数記録テーブル３０２の初期状態であり、全トラックの書き込み回数記録値が０である。
【００２７】
さらに本実施形態では、図５に示すように、トラック・リフレッシュ処理制御情報３０１には、周辺影響度記録テーブル３０４が含まれる。周辺影響度記録テーブル３０４は、全トラックに対する周辺影響度記録値を設定したものである。具体的には、書き込み対象トラックにライトが実行された場合に、周辺トラックに加算されるライトカウント重みテーブル３０３の値の積分値が、書き込み対象トラックの周辺影響度記録値として記録されたテーブルである。なお、図５は、周辺影響度記録テーブル３０４の初期状態を示す。
【００２８】
以下、図６から図１３を参照して、ディスク１７に対する書き込み処理が実行される場合に、書き込み回数記録テーブル３０２、ライトカウント重みテーブル３０３及び周辺影響度記録テーブル３０４の状態を具体例で説明する。なお、各テーブル３０２〜３０４の更新処理はＭＰＵ１９により実行される。
【００２９】
図６は、トラック番号８６が書き込み対象トラックである場合の書き込み回数記録テーブル３０２及びライトカウント重みテーブル３０３の状態を示す。即ち、ライトカウント重みテーブル３０３には、書き込み対象トラック（番号８６）を基準として、周辺トラック毎に当該書き込み対象トラックからの距離に応じた悪影響の程度を示す値が記録される。さらに、書き込み回数記録テーブル３０２には、書き込み対象トラック（番号８６）を０とし、周辺トラックに対してはライトカウント重みテーブル３０３の値が加算される。ここで、書き込み対象トラック（番号８６）については、書き込みによりデータが更新（リフレッシュ）された状態になるため、書き込み回数記録値がゼロとなる。
【００３０】
図７は、トラック番号８６が書き込み対象トラックである場合、周辺影響度記録テーブル３０４の状態を示す。即ち、書き込み対象トラック（番号８６）については、周辺トラックのライトカウント重みテーブル３０３の積分値（1+2+3+4+7+10+10+7+4+3+2+1=54）が周辺影響度記録値として設定される。ここで、書き込み対象トラック（番号８６）はリフレッシュされて、当該書き込み対象トラックに対する周辺トラックからの影響はキャンセルされたと想定できる。
【００３１】
具体的には、周辺トラックに対する周辺影響度記録値は、周辺トラックが書き込み対象トラック（番号８６）にかける影響分Ｄを周辺影響度記録値から減算した値となる。影響分Ｄは下記の式（１）より算出される。
【００３２】
Ｄ＝（Ｃ／Ｂ）×Ａ…（１）
ここで、Ａはライトされたトラックの周辺影響度記録値である。Ｂは、ライトカウント重みテーブルの積分値である。Ｃは書き込み対象トラックからの距離に応じたライトカウント重みテーブルの値である。
【００３３】
図６及び図７に示す具体例では、トラック番号８０、９２の影響分Ｄは「５４×（１／５４）」、トラック番号８１、９１の影響分Ｄは「５４×（２／５４）」、トラック番号８２、９０の影響分Ｄは「５４×（３／５４）」、トラック番号８３、８９の影響分Ｄは「５４×（４／５４）」、トラック番号８４、８８の影響分Ｄは「５４×（７／５４）」、トラック番号８５、８７の影響分Ｄは「５４×（１０／５４）」となる。周辺トラックに対する周辺影響度記録値はゼロであるため、各影響分Ｄ（１，２，３，４，７，１０）を減算するとマイナスになる。従って、周辺トラックに対する周辺影響度記録値は０となる。
【００３４】
次に、図８は、トラック番号８３が書き込み対象トラックである場合の書き込み回数記録テーブル３０２及びライトカウント重みテーブル３０３の状態を示す。また、図９は、トラック番号８３が書き込み対象トラックである場合の周辺影響度記録テーブル３０４の状態を示す。
【００３５】
図８に示すように、書き込み回数記録テーブル３０２では、書き込み対象トラック（番号８３）については、書き込みによりリフレッシュされるため、書き込み回数記録値がゼロとなる。また、周辺トラックについてはライトカウント重みテーブル３０３の値が加算される。ここで、前述したトラック（番号８６）については、書き込み対象トラック（番号８３）を基準とする距離に応じたライトカウント重みテーブル３０３の値として４が記録される。
【００３６】
さらに、図９に示すように、周辺影響度記録テーブル３０４では、書き込み対象トラック（番号８３）については、周辺トラック（番号７７〜８２、８４〜８９）のライトカウント重みテーブル３０３の積分値（1+2+3+4+7+10+10+7+4+3+2+1=54）が周辺影響度記録値として設定される。また、周辺トラックに対する周辺影響度記録値は、周辺トラックが書き込み対象トラック（番号８３）にかける影響分Ｄをそれぞれの周辺影響度記録値から減算した値となる。ここで、周辺トラック（番号８６）の影響分Ｄは「５４×（４／５４）」となる。従って、周辺トラック（番号８６）に対する周辺影響度記録値は、現在の周辺影響度記録値５４から影響分Ｄ（＝４）を減算して５０となる。
【００３７】
同様に、図１０は、トラック番号８４が書き込み対象トラックである場合の書き込み回数記録テーブル３０２及びライトカウント重みテーブル３０３の状態を示す。また、図１１は、トラック番号８４が書き込み対象トラックである場合の周辺影響度記録テーブル３０４の状態を示す。
【００３８】
図１０に示すように、書き込み回数記録テーブル３０２では、書き込み対象トラック（番号８４）については、書き込みによりリフレッシュされるため、書き込み回数記録値がゼロとなる。また、周辺トラックについてはライトカウント重みテーブル３０３の値が加算される。ここで、前述したトラック（番号８３）については、書き込み対象トラック（番号８４）を基準とする距離に応じたライトカウント重みテーブル３０３の値として１０が記録される。また、前述したトラック（番号８６）については、書き込み対象トラック（番号８４）を基準とする距離に応じたライトカウント重みテーブル３０３の値として７が記録される。
【００３９】
さらに、図１１に示すように、周辺影響度記録テーブル３０４では、書き込み対象トラック（番号８４）については、周辺トラック（番号７８〜８３、８５〜９０）のライトカウント重みテーブル３０３の積分値（1+2+3+4+7+10+10+7+4+3+2+1=54）が周辺影響度記録値として設定される。また、周辺トラックに対する周辺影響度記録値は、周辺トラックが書き込み対象トラック（番号８４）にかける影響分Ｄをそれぞれの周辺影響度記録値から減算した値となる。
【００４０】
ここで、周辺トラック（番号８３）の影響分Ｄは「５４×（１０／５４）」となる。従って、周辺トラック（番号８３）に対する周辺影響度記録値は、現在の周辺影響度記録値５４から影響分Ｄ（＝１０）を減算して４４となる。また、周辺トラック（番号８６）の影響分Ｄは「５０×（７／５４）」となる。従って、周辺トラック（番号８６）に対する周辺影響度記録値は、現在の周辺影響度記録値５０から影響分Ｄ（約６）を減算して４４となる。
【００４１】
次に、図１２は、トラック番号８６が書き込み対象トラックである場合の書き込み回数記録テーブル３０２及びライトカウント重みテーブル３０３の状態を示す。また、図１３は、トラック番号８６が書き込み対象トラックである場合の周辺影響度記録テーブル３０４の状態を示す。
【００４２】
図１２に示すように、書き込み回数記録テーブル３０２では、書き込み対象トラック（番号８６）については、書き込みによりリフレッシュされるため、書き込み回数記録値がゼロとなる。また、周辺トラックについてはライトカウント重みテーブル３０３の値が加算される。ここで、前述したトラック（番号８３）については、書き込み対象トラック（番号８６）を基準とする距離に応じたライトカウント重みテーブル３０３の値として４が記録される。また、前述したトラック（番号８４）については、書き込み対象トラック（番号８６）を基準とする距離に応じたライトカウント重みテーブル３０３の値として７が記録される。
【００４３】
さらに、図１３に示すように、周辺影響度記録テーブル３０４では、書き込み対象トラック（番号８６）については、周辺トラック（番号８０〜８５、８７〜９２）のライトカウント重みテーブル３０３の積分値（1+2+3+4+7+10+10+7+4+3+2+1=54）が周辺影響度記録値４４に加算されて、周辺影響度記録値９８が設定される。また、周辺トラックに対する周辺影響度記録値は、周辺トラックが書き込み対象トラック（番号８６）にかける影響分Ｄをそれぞれの周辺影響度記録値から減算した値となる。
【００４４】
ここで、周辺トラック（番号８３）の影響分Ｄは「４４×（４／５４）」となる。従って、周辺トラック（番号８３）に対する周辺影響度記録値は、現在の周辺影響度記録値４４から影響分Ｄ（約３）を減算して４１となる。また、周辺トラック（番号８４）の影響分Ｄは「５４×（７／５４）」となる。従って、周辺トラック（番号８４）に対する周辺影響度記録値は、現在の周辺影響度記録値５４から影響分Ｄ（＝７）を減算して４７となる。
【００４５】
以上のように、本実施形態では、トラック・リフレッシュ処理制御情報３０１として、書き込み回数記録テーブル３０２及びライトカウント重みテーブル３０３以外に、周辺影響度記録テーブル３０４が含まれる。周辺影響度記録テーブル３０４は、書き込み対象トラックを基準とする周辺トラックへの影響度（書き込み回数の重み）の積分値である。このため、ＭＰＵ１９は、周辺影響度記録テーブル３０４を参照することにより、書き込み対象トラックに対する書き込みの頻度が、周辺トラックに対して影響が大きいか否かを判定できる。
【００４６】
以下、図１４のフローチャートを参照して、ＭＰＵ１９による書き込み制御を説明する。
【００４７】
ＨＤＣ１０はホスト２からライトコマンドを受信すると、当該コマンドをＭＰＵ１９に通知し、ライトデータの書き込み処理を開始する。ＨＤＣ１０は、ホスト２からライトコマンドと共に受信したライトデータをバッファメモリ１８に格納する。
【００４８】
本実施形態では、ＭＰＵ１９は、書き込み処理を開始すると、ＲＡＭ２０に格納されている周辺影響度記録テーブル３０４を参照し、ライトコマンドで指定された書き込み対象トラック（例えばトラック番号８６とする）の周辺影響度記録値を求める（ブロック１００）。
【００４９】
ＭＰＵ１９は、書き込み対象トラック（トラック番号８６）の周辺影響度記録値（ここでは９８）と予め設定された閾値（基準値）とを比較し、閾値を超えているか否かを判定する（ブロック１０１）。閾値（基準値）は、書き込み対象トラックに対する書き込みの頻度が周辺トラックに対して影響が大きいため、ライトキャッシュ処理を優先的に実行することを決定する限度値である。この閾値は、予め実施される実験やシミュレーションにより設定される。ここで、周辺トラックに対する影響とは、トラックに対する書き込みによる磁気記録強度の低下である。
【００５０】
ＭＰＵ１９は、当該周辺影響度記録値が閾値を超えている場合（ブロック１０１のＹＥＳ）には、メディアキャッシュ処理を実行する（ブロック１０２）。即ち、ＭＰＵ１９は、バッファメモリ１８に格納されたライトデータを、予め設定されたディスク１７上のメディアキャッシュ領域（一時的な記憶領域）に書き込むように制御する。
【００５１】
一方、ＭＰＵ１９は、当該周辺影響度記録値が閾値を超えていない場合（ブロック１０１のＮＯ）には、書き込み回数記録テーブル３０２を参照する（ブロック１０３）。ＭＰＵ１９は、書き込み回数記録値と予め設定された閾値（規定値）とを比較し、閾値を超えているか否かを判定する（ブロック１０４）。ＭＰＵ１９は、当該書き込み回数記録値が閾値を超えていない場合（ブロック１０４のＮＯ）には、キャッシュ処理を実行する設定がなされている否かを判定する（ブロック１０５）。
【００５２】
ＭＰＵ１９は、メディアキャッシュ処理の実行が設定されている場合（ブロック１０５のＹＥＳ）には、バッファメモリ１８に格納されたライトデータをディスク１７上のメディアキャッシュ領域に書き込むように制御する（ブロック１０２）。一方、ＭＰＵ１９は、ブロック１０５の判定がＮＯの場合で、かつ通常キャッシュ処理の実行が設定されている場合（ブロック１０６のＹＥＳ）には、通常キャッシュ処理を実行する（ブロック１０７）。通常キャッシュ処理では、図１に示すように、ＭＰＵ１９は、フラッシュメモリ２２をキャッシュ領域として使用し、バッファメモリ１８に格納されたライトデータをフラッシュメモリ２２に書き込むように制御する。
【００５３】
ここで、本実施形態では、ＭＰＵ１９は、当該書き込み回数記録値が閾値を超えている場合（ブロック１０４のＹＥＳ）に、キャッシュ処理を実行せずに、ライトコマンドで指定されたディスク１７上の書き込み対象トラックにデータを書き込むように制御する（ブロック１０８）。ＭＰＵ１９は、ディスク１７に対する書き込み処理後に、書き込み回数記録テーブル３０２、ライトカウント重みテーブル３０３及び周辺影響度記録テーブル３０４を更新する（ブロック１０９）。
【００５４】
以上のように本実施形態によれば、書き込み処理を実行する場合で、書き込み対象トラックの周辺影響度記録値が閾値を超えている場合には、メディアキャッシュ処理を実行する。従って、ディスク上の書き込み対象トラックに対する書き込みを減少させて、周辺トラックに対する影響を抑制することができる。これにより、周辺トラックの影響に対する対策処理であるトラック・リフレッシュ処理を優先的に行なう頻度を抑制できる。従って、通常のリードライト性能を向上させることができる。また、メディアキャッシュ処理により、ディスク１７上の相対的に大容量のキャッシュ領域を使用できるため、有効な書き込み制御を実現できる。
【００５５】
また、書き込み対象トラックの書き込み回数記録値が閾値を超えている場合に、キャッシュ処理を実行せずに、当該書き込み対象トラックにデータを優先的に書き込むことにより、リフレッシュさせて書き込み回数記録値をリセットすることができる。この場合でも、周辺トラックの影響に対する対策処理であるトラック・リフレッシュ処理を優先的に行なう頻度を抑制できる。
【００５６】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００５７】
１…ディスクドライブ（ＨＤＤ）、２…ホスト、
１０…ハードディスクコントローラ（ＨＤＣ）、
１１…ホストインターフェースコントローラ、１２…コマンドコントローラ、
１３…トラック・リフレッシュコントローラ、１４…バッファコントローラ、
１５…データコントローラ、１６…ＨＤＡ、１７…ディスク、１８…バッファメモリ、
１９…マイクロプロセッサ（ＭＰＵ）、２０…ＲＡＭ、２１…ＲＯＭ、
２２…フラッシュメモリ。
【図１】
2014022021.tif 000003
【図２】
2014022021.tif 000004
【図３】
2014022021.tif 000005
【図４】
2014022021.tif 000006
【図５】
2014022021.tif 000007
【図６】
2014022021.tif 000008
【図７】
2014022021.tif 000009
【図８】
2014022021.tif 000010
【図９】
2014022021.tif 000011
【図１０】
2014022021.tif 000012
【図１１】
2014022021.tif 000013
【図１２】
2014022021.tif 000014
【図１３】
2014022021.tif 000015
【図１４】
2014022021.tif 000016