(57)【要約】【課題】本発明の実施形態は、磁気ディスク装置の信頼性を向上させる。【解決手段】実施形態の磁気ディスク装置は、第１のトラックと、前記第１のトラックと隣接した第２のトラック及び第３のトラックと、を有した、回転可能な磁気ディスクと、前記第１のトラックへのライト処理が実行された際に、オフトラックが生じたか否かを検出可能なコントローラと、前記第１乃至第３のトラックの其々のライト回数を示した第１乃至第３カウント値と、前記第１乃至第３のトラックの其々のオフセット量を示した第１乃至第３オフセット量と、を記憶可能な記憶部と、を備え、前記コントローラは、前記第１のトラックに前記第１オフセット量のオフトラックが生じた場合、前記第２のトラックの前記第２オフセット量及び前記第３のトラックの前記第３オフセット量に応じて、前記第２のトラックの前記第２カウント値及び前記第３のトラックの前記第３カウント値を更新する。【選択図】図５
2018055735.tif 000002
【特許請求の範囲】
【請求項１】
第１のトラックと、前記第１のトラックと隣接するとともに当該第１のトラックよりも外側に位置した第２のトラックと、前記第１のトラックと隣接するとともに当該第１のトラックよりも内側に位置した第３のトラックと、を有した、回転可能な磁気ディスクと、
前記磁気ディスクに対してデータを処理する磁気ヘッドと、
前記第１のトラックへのライト処理が実行された際に、オフトラックが生じたか否かを検出可能なコントローラと、
前記第１乃至第３のトラックの其々のライト回数を示した第１乃至第３カウント値と、前記第１乃至第３のトラックの其々のオフセット量を示した第１乃至第３オフセット量と、を記憶可能な記憶部と、
を備え、
前記コントローラは、前記第１のトラックに前記第１オフセット量のオフトラックが生じた場合、前記第２のトラックの前記第２オフセット量及び前記第３のトラックの前記第３オフセット量に応じて、前記第２のトラックの前記第２カウント値及び前記第３のトラックの前記第３カウント値を更新する磁気ディスク装置。
【請求項２】
前記コントローラは、
前記第１オフセット量が、前記ライト処理が実行される前に前記第１のトラックのオフセット量として前記記憶部に記憶された第４オフセット量よりも大きい場合、前記第１のトラックのオフセット量を、前記第４オフセット量から前記第１オフセット量に更新する請求項１に記載の磁気ディスク装置。
【請求項３】
前記コントローラは、
前記第１乃至第３カウント値の内いずれかが、所定の閾値よりも大きい場合、当該所定の閾値よりも大きいカウント値が記憶されたトラックに対して、データをリードした後リライトするリフレッシュ動作を実行する請求項１に記載の磁気ディスク装置。
【請求項４】
前記コントローラは、
所定の重み付け係数と、前記第２オフセット量及び前記第３オフセット量と、に基づいて前記第２カウント値及び前記第３カウント値を計算し、前記第２カウント値及び前記第３カウント値を更新する請求項１に記載の磁気ディスク装置。
【請求項５】
前記重み付け係数は、所定のオフセット量における、ライト品質情報とライト回数との関係式に基づき、前記ライト品質情報が所定の値となるライト回数も用いて計算される請求項４に記載の磁気ディスク装置。
【請求項６】
前記ライト品質情報は、ビタビ・メトリック・マージンである請求項５に記載の磁気ディスク装置。
【請求項７】
前記ライト品質情報は、エラーレートである請求項５に記載の磁気ディスク装置。
【請求項８】
磁気ディスク装置の制御方法であって、
磁気ディスクの第１のトラックに第１オフセット量のオフトラックが生じた場合、前記第１のトラックと隣接した第２のトラックの第２オフセット量と、前記第１のトラックと隣接し、前記第２のトラックとは反対側に位置した第３のトラックの第３オフセット量と、に応じて、前記第２のトラック及び前記第３のトラックのライト回数を更新し、
前記ライト回数が、所定の閾値を上回った場合、当該閾値を前記ライト回数が上回ったトラックに対して、データをリードした後リライトするリフレッシュ動作を実行する、
ことを含む磁気ディスク装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、磁気ディスク装置および磁気ディスク装置の制御方法に関する。
【背景技術】
【０００２】
リフレッシュ機能を備えた磁気ディスク装置が提供されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】米国特許第８９８８７９９号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明の実施形態は、磁気ディスク装置の信頼性を向上させる。
【課題を解決するための手段】
【０００５】
実施形態の磁気ディスク装置は、第１のトラックと、前記第１のトラックと隣接した第２のトラック及び第３のトラックと、を有した、回転可能な磁気ディスクと、前記第１のトラックへのライト処理が実行された際に、オフトラックが生じたか否かを検出可能なコントローラと、前記第１乃至第３のトラックの其々のライト回数を示した第１乃至第３カウント値と、前記第１乃至第３のトラックの其々のオフセット量を示した第１乃至第３オフセット量と、を記憶可能な記憶部と、を備え、前記コントローラは、前記第１のトラックに前記第１オフセット量のオフトラックが生じた場合、前記第２のトラックの前記第２オフセット量及び前記第３のトラックの前記第３オフセット量に応じて、前記第２のトラックの前記第２カウント値及び前記第３のトラックの前記第３カウント値を更新する。
【図面の簡単な説明】
【０００６】
【図１】実施形態に係る磁気ディスク装置１００の構成例を示した図。
【図２】実施形態に係るＲＡＭにロードされるファームウェアの機能構成例を示したブロック図。
【図３】ＡＴＩ管理テーブルの一例を示した図。
【図４】トラックに対する書き込みの際にオフトラックが発生した状態を示した図。
【図５】実施形態に係るオフトラック発生時におけるＡＴＩ処理部の動作の一例を示したフローチャート図。
【図６】実施形態に係るＡＴＩ処理部のリフレッシュ動作の一例を示したフローチャート図。
【図７】重み付け係数αを求めるための手順の一例を示したフローチャート図。
【図８】隣接トラックのビタビマージンとライト回数との関係式ｆａ並びにｆｂを示した図。
【発明を実施するための形態】
【０００７】
以下、実施の形態について、図面を参照して説明する。
【０００８】
本明細書では、いくつかの要素に複数の表現の例を付している。なおこれら表現の例はあくまで例示であり、上記要素が他の表現で表現されることを否定するものではない。また、複数の表現が付されていない要素についても、別の表現で表現されてもよい。
【０００９】
また、図面は模式的なものであり、厚みと平面寸法との関係や各層の厚みの比率などは現実のものと異なることがある。また、図面相互間において互いの寸法の関係や比率が異なる部分が含まれることもある。
【００１０】
（第１実施形態）
【００１１】
図１に、本実施形態にかかる磁気ディスク装置１００の構成例を示す。ハードディスクドライブ（ＨＤＤ）として知られる磁気ディスク装置１００は、ホスト装置（以下、ホストと略す）１と接続され、例えばホスト１の外部記憶装置として機能する。
【００１２】
磁気ディスク装置１００は、スピンドルモータ２により回転される記録媒体である磁気ディスク３を有する。磁気ディスク装置１００は、ヘッド駆動部６により駆動されるヘッドアクチュエータ５を有する。ヘッドアクチュエータ５の先端にはライトおよびリードを行うための磁気ヘッド４が装着されている。
【００１３】
磁気ディスク装置１００は、制御系として、ホストインタフェースコントローラ（ホストＩ／Ｆコントローラ）１０、ＲＡＭ２０、プロセッサ３０、デバイスインタフェースコントローラ（デバイスＩ／Ｆコントローラ）４０、不揮発メモリ５０を有する。
【００１４】
ホストＩ／Ｆコントローラ１０は、ホスト１との間で、コマンド、データ、ステータス報告などの通信を実行する。ホストＩ／Ｆコントローラ１０は、ホスト１からコマンドを受信すると、コマンドをプロセッサ３０に通知する。ホストＩ／Ｆコントローラ１０は、プロセッサ３０の制御に従って、ホスト１から受信したデータをバッファメモリ２５にバッファリングしたり、バッファメモリ２５にバッファリングされたデータをホスト１に送信したりする。
【００１５】
ＲＡＭ（Random Access Memory）２０は、ホスト１からのライトデータを磁気ディスク３にライトする際に一時的にデータを保存するためのバッファメモリ２５としての記憶領域を有する。また、バッファメモリ２５は、磁気ディスク３からリードされたデータをホスト１に転送する際に、一時的にデータを保存する。ＲＡＭ２０は、データを管理する管理情報を記憶するための記憶領域をさらに有する。また、ＲＡＭ２０には、不揮発メモリ５０にストアされているファームウェアがロードされる。ＲＡＭ２０で管理される管理情報は、不揮発メモリ５０または磁気ディスク３でバックアップされている。ＲＡＭ２０としては、例えば、ＳＲＡＭ（Static Random Access Memory）やＤＲＡＭ（Dynamic Random Access Memory）が用いられ得る。
【００１６】
不揮発メモリ５０は、フラッシュメモリやＥＥＰＲＯＭ（Electrically Erasable Programmable Read Only Memory）などによって構成され、プロセッサ３０が実行するファームウェアが記憶されている。ファームウェアを、磁気ディスク３にストアしてもよい。
【００１７】
デバイスＩ／Ｆコントローラ４０は、スピンドルモータ２、磁気ヘッド４、ヘッド駆動部６を駆動制御することで、磁気ディスク３にデータをライトし、磁気ディスク３からデータをリードする。
【００１８】
デバイスＩ／Ｆコントローラ４０は、オフトラック検出部４１を有する。オフトラック検出部４１は、磁気ディスク３に対するライト処理の際、磁気ヘッド４が目標位置からトラック幅方向にずれるオフトラックを検出する。オフトラック検出部４１は、検出したライトオフセット量をＡＴＩ処理部３４（図２を参照）に通知する。また、デバイスＩ／Ｆコントローラ４０は、カウンタ４２を有する。カウンタ４２の機能については後述する。
【００１９】
プロセッサ３０は、不揮発メモリ５０に記憶されたファームウェアによって各種の機能を実現する。磁気ディスク装置１００の起動時、不揮発メモリ５０に記憶されたファームウェアはＲＡＭ２０にロードされる。プロセッサ３０は、ＲＡＭ２０上にロードされたファームウェアを実行する。プロセッサ３０によって行われる機能は後述する。
【００２０】
ホスト１からのライトコマンドとライトデータをホストＩ／Ｆコントローラ１０で受信すると、プロセッサ３０は、ライトコマンドの内容を解析し、ライトデータをバッファメモリ２５に格納する。その後、ライトデータはバッファメモリ２５から読み出されてデバイスＩ／Ｆコントローラ４０に入力される。デバイスＩ／Ｆコントローラ４０は、入力されたライトデータを符号化し、磁気ヘッド４の書込素子を駆動することで、符号化されたライトデータを磁気ディスク３にライトする。このライトの際に、デバイスＩ／Ｆコントローラ４０は、ヘッド駆動部６およびスピンドルモータ２を駆動制御し、コマンドで指示された目標トラックに対して書き込みを行う。
【００２１】
一方、ホスト１からリードコマンドをホストＩ／Ｆコントローラ１０で受信すると、プロセッサ３０は、リードコマンドを解析する。その後、プロセッサ３０は、解析結果に基づいて、デバイスＩ／Ｆコントローラ４０に指令を与える。この結果、デバイスＩ／Ｆコントローラ４０によって、磁気ヘッド４が駆動され、磁気ヘッド４の読出素子により信号が読み出される。読み出された信号は、デバイスＩ／Ｆコントローラ４０によってリードデータとして復調される。さらに、リードデータは、復号された後、バッファメモリ２５にバッファリングされる。その後リードデータは、ホストＩ／Ｆコントローラ１０によってホスト１に転送される。
【００２２】
図２は、ＲＡＭ２０にロードされるファームウェア（制御プログラム）の機能構成例を示すブロック図である。制御プログラムは、コマンド処理部３１、ディスクアクセス部３２、データ送受信部３３、およびＡＴＩ処理部３４を有し、磁気ディスク装置１００のコントローラとして機能する。コマンド処理部３１は、ホスト１から受信したコマンドを解析し、解析結果をディスクアクセス部３２およびデータ送受信部３３に通知する。ディスクアクセス部３２は、コマンドの解析結果に基づいてデバイスＩ／Ｆコントローラ４０を制御することで、スピンドルモータ２、磁気ヘッド４およびヘッド駆動部６を駆動し、磁気ディスク３に対してリード、ライト動作を行う。ディスクアクセス部３２は、磁気ディスク３へのライト動作に伴い、管理情報の更新処理を実行する。データ送受信部３３は、ホストＩ／Ｆコントローラ１０およびデバイスＩ／Ｆコントローラ４０を制御し、バッファメモリ２５を介した磁気ディスク３とホスト１との間のデータ転送を制御する。
【００２３】
図２において、ＡＴＩ処理部３４は、ＡＴＩ処理情報３６を用いてＡＴＩ対策処理を実行する。ＡＴＩ処理情報３６は、ＡＴＩ管理テーブル３６ａおよび重み付け係数α（固定値）を含む。
【００２４】
図３に、ＡＴＩ管理テーブル３６ａの一例を示す。尚、図３の（ａ）は、あるトラック（Ｎ）にライト処理をする前の一例、図３の（ｂ）は、あるトラック（Ｎ）へのライト処理が完了した後の一例を、其々示す。図３に示したカウント値とは、各トラックの書き込み回数を示すが、本実施形態のＡＴＩ管理テーブル３６ａでは、重み付け係数αで重み付けされた書き込み回数、及びライトオフセット量がトラック毎に管理されている。尚、カウント値は、磁気ディスク装置１００に備えられたカウンタ４２によってカウントされる。カウンタ４２は、例えばデバイスＩ／Ｆコントローラ４０に備えられが、これに限られない。
【００２５】
また、図４は、トラックに対する書き込みの際にオフトラックが発生した状態を示した図である。図５は、本実施形態に係るオフトラック発生時におけるＡＴＩ処理部３４の動作の一例を示したフローチャート図である。以下、図３乃至図５を参照して、ＡＴＩ処理部３４の動作を説明する。尚、ＡＴＩ処理部３４は、オフトラック検出部４１の出力に基づき、トラック（Ｎ）（第１のトラック、ライト対象トラック）にオフトラックが発生したか否かを判定する。
【００２６】
ここでは、図３（ａ）に示すように、トラック（Ｎ）への書き込み前のトラック（Ｎ−１、Ｎ、Ｎ＋１）のカウント値は其々Ｃ２、Ｃ１、Ｃ３であり、各トラックのオフセット量は、其々ｗ３（＝０）、ｗ５、ｗ４であるとする。
【００２７】
尚、トラック（Ｎ）と隣接したトラックの内、アウター側の隣接トラック（Ｎ−１）（第２のトラック、アウタートラック）のライトオフセット量をｗ３、インナー側の隣接トラック（Ｎ＋１）（第３のトラック、インナートラック）のライトオフセット量をｗ４として説明する。また、以降の説明において、図３及び図４の通り、アウター側の隣接トラック（Ｎ−１）のライトオフセット量ｗ３＝０として説明する。
【００２８】
ＡＴＩ処理部３４は、トラック（Ｎ）にデータをライトする（Ｓ１００）。Ｓ１００におけるライト処理が完了すると、ＡＴＩ処理部３４は、当該ライト処理時に発生したライトオフセット量を取得する（Ｓ１１０）。本説明においては、図４に示すように、Ｓ１００の処理でトラック（Ｎ）にデータがライトされたとき、アウター方向にｗ１のオフトラック（ライトオフセット）、インナー方向にｗ２のオフトラック（ライトオフセット）が、其々発生したとする。尚、このとき、ｗ１＞ｗ２であったとする。
【００２９】
次に、ＡＴＩ処理部３４は、ＡＴＩ管理テーブル３６ａに記憶されたライトオフセット量ｗ５を取得し（Ｓ１２０）、ｗ１及びｗ５の大小関係を比較する。換言すれば、ＡＴＩ処理部３４は、例えばｗ１＞ｗ５であるか否かを確認する（Ｓ１３０）。
【００３０】
Ｓ１３０において、ｗ１＞ｗ５の場合（Ｓ１３０：Ｙｅｓ）、ＡＴＩ処理部３４は、ＡＴＩ管理テーブル３６ａを更新する（Ｓ１４０）。より具体的には、ＡＴＩ処理部３４は、ＡＴＩ管理テーブル３６ａに記憶されていたライトオフセット量ｗ５を、Ｓ１１０で取得された新たなライトオフセット量ｗ１に変更（上書き）する。
【００３１】
一方で、Ｓ１３０において、ｗ１≦ｗ５の場合（Ｓ１３０：Ｎｏ）、ＡＴＩ処理部３４は、Ｓ１５０の処理に進む。すなわち、ｗ１≦ｗ５の場合は、ＡＴＩ管理テーブル３６ａに記憶されていたライトオフセット量ｗ５は変更されない。
【００３２】
次に、ＡＴＩ処理部３４は、ライトされたトラック（Ｎ）と隣接したトラック（Ｎ−１、Ｎ＋１）のライトオフセット量ｗ３、ｗ４を取得する（Ｓ１５０）。
【００３３】
さらに、ＡＴＩ処理部３４は、隣接トラック（Ｎ−１、Ｎ＋１）のカウンタ４２を更新する（Ｓ１６０）。本実施形態の一例では、図３及び図４の通り、アウター側の隣接トラック（Ｎ−１）はライトオフセット量０でライトされ、インナー側の隣接トラック（Ｎ＋１）はライトオフセット量ｗ４でライトされている。トラックＮが、アウター側にオフセット量ｗ１、インナー側にオフセット量ｗ２でライトされた場合、アウター側のカウント値はＣ２＋α＾（ｗ１）、インナー側のカウント値はＣ３＋α＾（ｗ２＋ｗ４）、となる。
【００３４】
すなわち、本実施形態においては前述のように、トラック（Ｎ）の書き込み時にオフセットが発生した場合、ＡＴＩ管理テーブル３６ａは、トラック（Ｎ）のオフセット量が最大になるように更新される。また、ＡＴＩ管理テーブル３６ａは、隣接トラック（Ｎ−１、Ｎ＋１）のカウント値に、重み付け係数αで重み付けされた書き込み回数が加算され、更新される。
【００３５】
以上、本実施形態において磁気ディスク装置１００は、ＡＴＩ管理テーブル３６ａによって各トラックのカウント値、ならびにオフセット量を記憶する構成である。このため、隣接トラックのライトオフセット量に応じて重み付けされたライト回数をカウント値として記憶することが可能である。
【００３６】
図６は、本実施形態に係るＡＴＩ処理部３４のリフレッシュ動作の一例を示したフローチャート図である。以下、図６を参照して、ＡＴＩ処理部３４の動作を説明する。
【００３７】
ＡＴＩ処理部３４は、ＡＴＩ管理テーブル３６ａに登録された各トラックのＡＴＩカウント値を、所定の閾値Ｔｈと比較する（Ｓ２００）。換言すれば、ＡＴＩ処理部３４は、例えばＡＴＩカウント値が所定の閾値Ｔｈよりも大きいか否かを確認する。
【００３８】
Ｓ２００において、カウント値＞Ｔｈの場合（Ｓ２００：Ｙｅｓ）、ＡＴＩ処理部３４は、リフレッシュ動作を実行する（Ｓ２１０）。すなわち、各トラックの内、カウント値＞Ｔｈを満たすトラックに対してのみ、リフレッシュ動作が実行される。リフレッシュ動作では、リフレッシュ対象のトラックからデータをリードし、リードしたデータを同じトラックに再書き込みする。
【００３９】
図７は、重み付け係数αを求めるための手順の一例を示すフローチャート図である。まず、トラック（Ｎ）のライトオフセット量が或る値ｗａであるときの、隣接トラックであるトラック（Ｎ＋１）またはトラック（Ｎ−１）のライト品質情報とライト回数との関係式ｆａが求められる（Ｓ３００）。ライト品質情報としては、例えば、ビタビ・メトリック・マージン（Viterbi Metric Margin）、あるいはエラーレートなどを採用する。尚、以降の説明ではビタビ・メトリック・マージンを、単にビタビマージンと呼ぶ。
【００４０】
ビタビマージンは、ビタビ検出法によって最適と選択される値に対して、それ以外の値を選択してしまう割合を数値化したものであり、エラーレートに直結する値である。同様に、ライトオフセット量が或る値ｗｂ（ｗｂ＞ｗａ）であるときの、隣接トラックのライト品質情報とライト回数との関係式ｆｂが求められる（Ｓ３１０）。
【００４１】
図８は、ライトオフセット量がｗａであるときの、隣接トラックのビタビマージンとライト回数との関係式ｆａと、ライトオフセット量がｗｂであるときの、隣接トラックのビタビマージンとライト回数の関係式ｆｂとを示している。横軸のライト回数は、対数軸としている。例えば、実験によって、ライトオフセット量がｗａであるとき、ライト回数を複数の異なる値に変化させながら、各ライト回数値に対応するビタビマージンが測定される。このようにして、得られた複数の測定値ｆａ１、ｆａ２、ｆａ３、ｆａ４の近似式を求めることで、関係式ｆａが取得される。同様に、複数の測定値ｆｂ１、ｆｂ２、ｆｂ３、ｆｂ４の近似式を求めることで、関係式ｆｂが取得される。
【００４２】
図７に戻り、つぎに、関係式ｆａ，ｆｂに基づいて、所定のビタビマージン値Ｍとなるライト回数ｎ１，ｎ２が取得される（Ｓ３２０）。所定のビタビマージン値Ｍは、図８に示すように、関係式ｆａおよびｆｂの双方に交差可能な値であれば、任意の値としてよい。つぎに、ｎ１とｎ２との比ｔ（＝ｎ１／ｎ２）が求められる。また、ライトオフセット量ｗａとライトオフセット量ｗｂとの差ｄ（＝ｗｂ−ｗａ）が求められる（Ｓ３３０）。そして、ｔのｄ乗根が計算されて、重み付け係数αが求められる（Ｓ３４０）。
【００４３】
このように本実施形態では、トラック毎のＡＴＩカウント値、並びにライトオフセット量を管理し、ライトオフセット量に応じて指数関数的に増大する重み付け値を計算し、この重み付け値を隣接するトラックの重み付け値に加算することとした。このため、ＡＴＩカウント値に基づくリフレッシュ処理が適切なタイミングで実行されることになり、ライトオフセットによるリードエラーを防ぐことが可能となる。
【００４４】
なお、実施形態では、ライトオフセット量の最大値に基づき重み付けのためのライトカウント値を計算することとしたが、トラック（Ｎ）のライトオフセット量の平均値を用いてライトカウント値を計算してもよい。
【００４５】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００４６】
１：ホスト、２：スピンドルモータ、３：磁気ディスク、４：磁気ヘッド、５：ヘッドアクチュエータ、６：ヘッド駆動部、１０：ホストインタフェースコントローラ（ホストＩ／Ｆコントローラ）、２０：ＲＡＭ、２５：バッファメモリ、３０：プロセッサ、３１：コマンド処理部、３２：ディスクアクセス部、３３：データ送受信部、３４：ＡＴＩ処理部、３６：ＡＴＩ処理情報、４０：デバイスインタフェースコントローラ（デバイスＩ／Ｆコントローラ）、４１：オフトラック検出部、４２：カウンタ、５０：不揮発メモリ、１００：磁気ディスク装置。
【図１】
2018055735.tif 000003
【図２】
2018055735.tif 000004
【図３】
2018055735.tif 000005
【図４】
2018055735.tif 000006
【図５】
2018055735.tif 000007
【図６】
2018055735.tif 000008
【図７】
2018055735.tif 000009
【図８】
2018055735.tif 000010