(57)【要約】【課題】ホスト側への応答が遅くならないように性能に対する影響を考慮しつつ、ヘッドの位置決め制御性能に対する振動の影響を抑制するために最適なサーボ制御用フィルタへの切替を実現することを課題とする。【解決手段】ハードディスク装置は、記録再生エラー発生時に、位置誤差信号を各サーボ制御用フィルタを通して得た制御電流を用いて位置決め制御を行ったときの記録再生ヘッドの現在位置から振動量を算出する学習を、所定時間、複数のサーボ制御用フィルタのそれぞれに対して順番に行い、測定した振動量が最小のサーボ制御用フィルタに位置誤差信号を通して得た制御電流を用いて、記録再生ヘッドの位置決め制御を行う。【選択図】        図１
2010123227.tif 000002
【特許請求の範囲】
【請求項１】
記録媒体上にデータを記録し、記録媒体上からデータを再生する記録再生ヘッドと、
前記記録再生ヘッドの位置決めを行う位置決め制御部と、
前記記録媒体上のサーボ信号に基づき前記記録再生ヘッドの現在位置を検出する位置検出部と、
複数のサーボ制御フィルタが保存された記憶領域部と、
位置誤差信号を前記サーボ制御フィルタに通して得た制御電流を用いて、前記位置決め制御部により前記記録再生ヘッドの位置決め制御を行ったとき、前記位置検出部で検出される記録再生ヘッドの現在位置と、目標位置とから新たな位置誤差信号を生成する位置誤差検出部とを有し、
記録再生エラー発生時に、位置誤差信号を各サーボ制御フィルタを通して得た制御電流を用いて、前記位置決め制御部により前記記録再生ヘッドの位置決め制御を行ったとき、前記位置検出部で検出される前記記録再生ヘッドの現在位置から振動量を算出する学習を、所定時間、前記複数のサーボ制御フィルタのそれぞれに対して順番に行い、測定した振動量が最小のサーボ制御フィルタに位置誤差信号を通して得た制御電流を用いて、前記記録再生ヘッドの位置決め制御を行う情報記憶装置。
【請求項２】
前記複数のサーボ制御フィルタのそれぞれに対して算出した振動量は、各サーボ制御フィルタに対応して前記記憶領域部に保存され、
記録再生エラー発生時に、前記複数のサーボ制御フィルタのうち、各サーボ制御フィルタに対応して保存された振動量が少ないサーボ制御フィルタから順番に用いて振動量を算出する請求項１に記載の情報記憶装置。
【請求項３】
サーボ制御フィルタに対応して前記記憶領域部に保存された振動量と、記録再生エラー発生時に算出された振動量の差が所定値以上の場合に、前記記憶領域部に保存された各サーボ制御ファイルに対応する振動量を初期化する請求項２に記載の情報記憶装置。
【請求項４】
記録再生エラーの発生に伴って実行されるリトライ中に、サーボ制御フィルタに対して算出した振動量が所定値を超えた場合に、前記学習を行う請求項１から請求項３のいずれか一つに記載の情報記憶装置。
【請求項５】
リトライレートが所定値を超えた場合に、前記学習を行う請求項１から請求項３のいずれか一つに記載の情報記憶装置。
【請求項６】
記録再生エラー発生時に、記憶領域部から複数のサーボ制御フィルタを読込み、位置誤差信号を各サーボ制御フィルタを通して得た制御電流を用いて、前記位置決め制御部により前記記録再生ヘッドの位置決め制御を行ったときの前記記録再生ヘッドの現在位置から振動量を算出する学習を、所定時間、複数のサーボ制御フィルタのそれぞれに対して順番に行う学習実行手順と、
前記学習実行手順により測定された振動量が最小のサーボ制御フィルタに位置誤差信号を通して得た制御電流を用いて、前記位置決め制御部により前記記録再生ヘッドの位置決め制御を行ったときの前記記録再生ヘッドの現在位置と、目標位置とから新たな位置誤差信号を生成する位置誤差検出手順と、
をコンピュータに実行させるサーボ制御用フィルタ学習プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、情報記憶装置およびサーボ制御用フィルタ学習プログラムに関する。
【背景技術】
【０００２】
従来、ハードディスク装置などの情報記憶装置に加えられる振動の影響から、ヘッドの位置決め制御性能が低下するのを防止するために、ヘッドから得られるサーボ情報から位置誤差信号を入力としてサーボ制御用フィルタにより位置決め制御を行う技術が存在する。
【０００３】
例えば、特許文献１では、ディスク装置において振動が検出されると、帯域が異なる周波数信号を除去するために予め用意された複数のフィルタの中から、１または２以上のフィルタを選択して、補正信号を生成する技術が開示されている。
【０００４】
【特許文献１】特開２００７−９５１１９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記した特許文献１に開示の技術は、ディスク装置において検出された振動の帯域に応じて、予め用意された複数のフィルタの中から選択したフィルタを用いて補正信号を生成する。したがって、ディスク装置において検出されたさまざまな振動に対して最適なフィルタを選択するまでに長い時間かかり、ホスト側への応答が遅くなることにより性能面で悪い影響を及ぼすことが考えられる。
【０００６】
そこで、この発明は、上述した従来技術の課題を解決するためになされたものであり、ホスト側への応答が遅くならないように性能に対する影響を考慮しつつ、ヘッドの位置決め制御性能に対するさまざまな振動の影響を抑制するために最適なサーボ制御用フィルタへの切替を実現することが可能な情報記憶装置およびサーボ制御用フィルタ学習プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するため、開示の装置は、記録媒体上のデータを記録又は再生する記録再生ヘッドと、前記記録再生ヘッドの位置決めを行う位置決め制御部と、前記記録媒体上のサーボ信号に基づき前記記録再生ヘッドの現在位置を検出する位置検出部と、複数のサーボ制御フィルタが保存された記憶領域部と、位置誤差信号を前記サーボ制御フィルタに通して得た制御電流を用いて、前記位置決め制御部により前記記録再生ヘッドの位置決め制御を行ったとき、前記位置検出部で検出される記録再生ヘッドの現在位置と、目標位置とから新たな位置誤差信号を生成する位置誤差検出部とを有し、記録再生エラー発生時に、位置誤差信号を各サーボ制御フィルタを通して得た制御電流を用いて、前記位置決め制御部により前記記録再生ヘッドの位置決め制御を行ったとき、前記位置検出部で検出される前記記録再生ヘッドの現在位置から振動量を算出する学習を、所定時間、前記複数のサーボ制御フィルタのそれぞれに対して順番に行い、測定した振動量が最小のサーボ制御フィルタに位置誤差信号を通して得た制御電流を用いて、前記記録再生ヘッドの位置決め制御を行う。
【発明の効果】
【０００８】
開示の装置によれば、ホスト側への応答が遅くならないように性能に対する影響を考慮しつつ、ヘッドの位置決め制御性能に対する振動の影響を抑制するために最適なサーボ制御用フィルタへの切替を実現できる。
【発明を実施するための最良の形態】
【０００９】
以下に、情報記憶装置およびサーボ制御用フィルタ学習プログラムの一実施形態を詳細に説明する。なお、情報記憶装置の一実施形態を説明するために、情報記憶装置の一例としてハードディスク装置を取り上げる。
【実施例１】
【００１０】
実施例１に係るハードディスク装置は、装置の振動が位置誤差信号に及ぼす影響（ノイズ）を除去するためのサーボ制御用フィルタを用いて、ヘッドの位置決め制御（位置誤差信号の生成）を実行する。そして、実施例１に係るハードディスク装置は、記録再生エラー発生時に、位置誤差信号を各サーボ制御用フィルタを通して得た制御電流を用いて位置決め制御を行ったときの記録再生ヘッドの現在位置から振動量を算出する学習を、所定時間、複数のサーボ制御用フィルタのそれぞれに対して順番に行い、測定した振動量が最小のサーボ制御用フィルタに位置誤差信号を通して得た制御電流を用いて、記録再生ヘッドの位置決め制御を行う。
【００１１】
図１は、実施例１に係るハードディスク装置を説明するための図である。同図に示すように、実施例１に係るハードディスク装置は、ヘッドの位置決め制御に用いる複数のサーボ制御用フィルタ（候補１〜７）を予め有する。そして、実施例１に係るハードディスク装置は、ホストからの要求に応じて実行するライトもしくはリード処理にエラーが発生すると、現状の振動量を保存するとともに、サーボ制御用フィルタごとに前回測定された振動量が小さいものから順にサーボ制御用フィルタ（候補１〜７）を並べ替える。
【００１２】
サーボ制御用フィルタの並べ替え後、実施例１に係るハードディスク装置は、前回測定時の振動量が最小であったサーボ制御用フィルタから順に切り替えて、予め設定される制限時間の間、サーボ制御用フィルタごとに振動量を取得する学習を実行する。例えば、図１に示すように、候補１〜４のサーボ制御用フィルタを切り替えた時の振動量２５、１５、３０および３５がそれぞれ順に取得され、サーボ制御用フィルタごとに保存される。
【００１３】
実施例１に係るハードディスク装置は、振動量の取得が終了するごとに制限時間に到達したか否かの判定を行う。そして、候補４の振動量を取得が終了した時点で制限時間に到達した場合には、実施例１に係るハードディスク装置は、制限時間内に測定されたサーボ制御用フィルタごとの振動量の中で、最小の振動量に対応するサーボ制御用フィルタを選択して、選択されたサーボ制御用フィルタへの切り替えを行う。例えば、図１に示すように、制限時間内に測定されたサーボ制御用フィルタごとの振動量の中で、最小の振動量１５に対応する候補２のサーボ制御用フィルタを選択して切り替える。
【００１４】
そして、実施例１に係るハードディスク装置は、切り替えられたサーボ制御用フィルタに位置誤差信号を通して得た制御電流を用いて、記録再生ヘッドの位置決め制御を行い、ホストからの要求に応じたライトもしくはリード処理に戻る。
【００１５】
このようなことから、実施例１に係るハードディスク装置は、ヘッドの位置決め制御に関する性能に対する影響を考慮した制限時間内で、ヘッドの位置決め制御性能に対する振動の影響を抑制するために最適なサーボ制御用フィルタへの切替を実現できる。
【００１６】
［ハードディスク装置の構成（実施例１）］
図２は、実施例１に係るハードディスク装置の構成を示す図である。同図に示すように、実施例１に係るハードディスク装置１００は、記録媒体１１０と、ＲＤＣ１２０と、ＭＣＵ１３０と、ＳＶＣ１４０と、ＶＣＭ１５０とを有する。
【００１７】
記録媒体１１０は、所定のユーザデータやシステムデータなどを記録している。
【００１８】
ＲＤＣ（リードチャネルコントローラ）１２０は、データリードの場合に、ヘッド（ヘッドＩＣ）から入力するアナログ信号を復調してデコードし、デコードされたデジタルデータをパラレル信号に変換してＭＣＵ１３０に送出する。また、データライトの場合に、ホスト（図示せず）から入力するライトデータをエンコードして変調し、変調されたアナログ信号をヘッド（ヘッドＩＣ）に送出する。
【００１９】
ＳＶＣ（サーボコントローラ）１４０は、ＭＣＵ１３０からの制御電流送出指示を入力して、指示に応じた制御電流をＶＣＭ１５０に送出することで、ＶＣＭ１５０のヘッド位置調整動作を制御する。ＶＣＭ（ヴォイスコイルモータ）１５０は、ＳＶＣ１４０から入力する制御電流に応じてヘッドの位置を調整する。
【００２０】
ＭＣＵ（マイクロコントロールユニット）１３０は、ハードディスク装置１００の動作制御を主導して実行する。ＭＣＵ１３０は、ホスト（図示せず）からライトもしくはリード要求を受け付けると、適宜フィルタを切り替えて、ターゲット位置にヘッドを移動させるシーク制御（導入処理）を実行する。
【００２１】
例えば、ＭＣＵ１３０は、ヘッドがターゲット位置から遠い時点では周波数帯域の低いシーク用フィルタに切り替えて、ターゲット位置付近へのヘッドの接近を待機する。ヘッドがターゲット位置付近に接近すると、シーク用フィルタをセトリング用フィルタに切り替えてセトリングを開始し、セトリングの完了を待機する。セトリングが完了すると、ヘッドの位置決め制御のサーボ制御用フィルタに切り替えてサーボ制御を実行する。
【００２２】
位置決め制御の流れについて簡単に説明すると、ＭＣＵ１３０は、図２に示すように、ＲＤＣ１２０から受けた復調結果を用いてヘッドの現在位置を算出した後、ヘッドの現在位置と目標位置との差分に基づいて、位置誤差信号を算出する。そして、ＭＣＵ１３０は、位置誤差信号をサーボ制御用フィルタに通して制御電流を取得し、取得した制御電流の送出指示をＳＶＣ１４０に送出する。通常時は、以上の位置決め制御を繰り返し実行する。
【００２３】
図３は、実施例１に係るＭＣＵの構成を示す図である。同図に示すように、ＭＣＵ１３０は、位置計算処理部１３１と、サーボ制御フィルタ計算部１３２と、振動量計算部１３３と、振動量監視部１３４と、リトライ回数監視部１３５と、フィルタ学習部１３６と、サーボ制御用フィルタテーブル１３７とを有する。
【００２４】
位置計算処理部１３１は、ＲＤＣ１２０からの復調結果に基づいて、ヘッドの現在位置を算出した後、ヘッドの現在位置と目標位置との差分に基づいて、位置誤差信号を算出する。そして、位置計算処理部１３１は、算出した位置誤差信号を振動量計算部１３３およびサーボ制御フィルタ計算部１３２に送出する。
【００２５】
サーボ制御フィルタ計算部１３２は、サーボ制御フィルタを用いて、位置計算処理部１３１からの位置誤差信号から制御電流を算出し、ＳＶＣ１４０に制御電流の送出指示を送出する。
【００２６】
振動量計算部１３３は、位置計算処理部１３１からの位置誤差信号から振動量を計算し、計算した振動量を振動量監視部１３４に送出する。例えば、ショックセンサなどの特別な装置を用いずに振動量を算出する方法としては、位置誤差信号の絶対値をローパスフィルタなどのフィルタにかけてノイズを取ったものを用いる技術などがある（例えば、特開２００７−８７５５８号公報等参照）。
【００２７】
振動量監視部１３４は、振動量計算部１３３からの振動量をモニタし、後述するリトライ回数監視部１３５から振動量の判定指示を受けると、モニタしている振動量が、予め設定された閾値をオーバーしているか否かを判定する。判定の結果、振動量が予め設定された閾値をオーバーしている場合には、学習トリガーを検出したものとして、サーボ制御用フィルタの学習指示をフィルタ学習部１３６に送出する。一方、判定の結果、モニタしている振動量が、予め設定された閾値をオーバーしていない場合には、後述するリトライ回数監視部１３５に、振動量がオーバーしていない旨の判定結果を送出する。
【００２８】
リトライ回数監視部１３５は、ホスト（図示せず）からの要求に応じて実行するライトもしくはリード処理が正常に完了しなかった場合に、リトライ処理の回数を監視し、リトライオーバーであるか否かを判定する。判定の結果、リトライオーバーである場合には、ライトもしくはリード処理の要求元であるホストにエラー報告を出力する。一方、判定の結果、リトライオーバーでない場合には、振動量監視部１３４に振動量の判定指示を送出する。
【００２９】
また、振動量の判定指示を送出後、リトライ回数監視部１３５は、振動量監視部１３４から振動量がオーバーしていない旨の判定結果を受けると、リトライレートが予め設定された閾値（例えば、所定時間内のリトライ発生回数）をオーバーしているか否かを判定する。判定の結果、リトライの発生レートが予め設定された閾値をオーバーしている場合には、サーボ制御用フィルタの学習指示をフィルタ学習部１３６に送出する。一方、リトライ回数監視部１３５による判定の結果、リトライレートが予め設定された閾値をオーバーしていない場合には、ＭＣＵ１３０は、ライトもしくはリード処理のリトライを実行する。
【００３０】
サーボ制御用フィルタテーブル１３７は、後述するフィルタ学習部１３６による学習内容を記憶する。例えば、図４に示すように、装置の振動が位置誤差信号に及ぼす影響（ノイズ）を除去するための複数のサーボ制御用フィルタの採用候補（候補１〜７の乗数の異なる関数）と、サーボ制御用フィルタごとに測定された振動量の情報とを対応付けた学習内容を記憶している。なお、図４は、実施例１に係るサーボ制御用フィルタテーブルの構成例を示す図である。
【００３１】
フィルタ学習部１３６は、振動量監視部１３４またはリトライ回数監視部１３５から、サーボ制御用フィルタの学習指示を受けると、サーボ制御用フィルタの学習を開始する。具体的には、フィルタ学習部１３６は、サーボ制御用フィルタの学習指示を受けると、学習時間を計測するためのタイマーをスタートさせて、現状（現時点のサーボ制御用フィルタ）の振動量を保存する。
【００３２】
次に、フィルタ学習部１３６は、サーボ制御用フィルタテーブル１３７内に記憶されている前回測定時の振動量が小さいものから順にサーボ制御用フィルタの採用候補を並べ替えて、振動量が最小のサーボ制御用フィルタに切り替える。そして、切り替えられたサーボ制御用フィルタが安定化するのを待って振動量を取得し、取得した振動量をサーボ制御用フィルタに対応付けてサーボ制御用フィルタテーブル１３７に保存する。
【００３３】
例えば、図４に示すように、フィルタ学習部１３６は、前回測定時の振動量が小さいものから順にサーボ制御用フィルタの採用候補を並べ替えると、候補１〜７の順にサーボ制御用フィルタが並べ替えられる。そして、フィルタ学習部１３６は、振動量が最小である候補１のサーボ制御用フィルタに切り替え、候補１のサーボ制御用フィルタが安定化するのを待って振動量２５を取得し、取得した振動量を候補１に対応付けてサーボ制御用フィルタテーブル１３７に保存する。
【００３４】
そして、フィルタ学習部１３６は、振動量の取得が終了するごとに制限時間に到達したか否かの判定を行う。例えば、フィルタ学習部１３６は、候補１のサーボ制御用フィルタに切り替えたときの振動量を取得して、サーボ制御用フィルタテーブル１３７に保存した後、タイマーが制限時間に到達している否か（タイムオーバーか否か）を判定する。判定の結果、タイマーが制限時間に到達していない場合には、フィルタ学習部１３６は、振動量が候補１の次に小さい候補２のサーボ制御用フィルタに切り替える。そして、候補１の場合と同様に、候補２のサーボ制御用フィルタが安定化するのを待って振動量を取得し、取得した振動量を候補１に対応付けてサーボ制御用フィルタテーブル１３７に保存する。フィルタ学習部１３６は、タイマーが制限時間に到達するまで、前回測定時の振動量が小さいものから順にサーボ制御用フィルタを切り替え、振動量の振動量の取得および保存を繰り返し実行する。
【００３５】
タイマーが制限時間に到達している場合には、フィルタ学習部１３６は、制限時間内に測定されたサーボ制御用フィルタごとの振動量の中で、最小の振動量に対応するサーボ制御用フィルタを選択して、選択されたサーボ制御用フィルタへの切り替えを行う。例えば、図４に示すように、制限時間内に測定された振動量２５、１５、３０および３５の中で、最小の振動量１５に対応する候補２のサーボ制御用フィルタを選択して切り替える。そして、フィルタ学習部１３６は、サーボ制御用フィルタの学習を終了する。フィルタ学習部１３６による学習が終了すると、ＭＵＣ１３０は、ライトもしくはリード処理に戻る。
【００３６】
なお、フィルタ学習部１３６は、学習トリガーを検出するための閾値として、新たに切り替えられたサーボ制御用フィルタに対応する振動量を設定する。
【００３７】
また、フィルタ学習部１３６は、サーボ制御用フィルタの学習に伴って、所定の条件を満足する場合に、サーボ制御用フィルタテーブル１３７に保存された学習内容をリセットする。具体的には、フィルタ学習部１３６は、サーボ制御用フィルタの学習指示を受け付けると、学習時間を計測するためのタイマーをスタートさせて、現状（現時点のサーボ制御用フィルタ）の振動量を保存する。
【００３８】
次に、フィルタ学習部１３６は、現状の振動量（現在使用中のサーボ制御用フィルタの振動量）から、前回の振動量（前回取得された同一のサーボ制御用フィルタの振動量）を減算した値を計算する。そして、フィルタ学習部１３６は、算出された振動量の差が予め設定されたリセット閾値を超えているか否かを判定する。すなわち、振動の性質が大幅に変わったことを検出する趣旨である。
【００３９】
判定の結果、算出された振動量の差が予め設定されたリセット閾値を超えている場合には、フィルタ学習部１３６は、サーボ制御用フィルタテーブル１３７に保存された学習内容を、使用中以外のサーボ制御用フィルタについてリセットする。具体的には、サーボ制御用フィルタテーブル１３７に保存されている振動量の情報を削除して、サーボ制御用フィルタの採用候補をデフォルトの状態に並び替える。
【００４０】
サーボ制御用フィルタテーブル１３７のリセット後、フィルタ学習部１３６は、上述した通常の学習と同様に動作する。すなわち、フィルタ学習部１３６は、タイマーが制限時間に到達するまで、サーボ制御用フィルタテーブル１３７に並べられた採用候補の上から順にサーボ制御用フィルタを切り替えて、切り替えたサーボ制御用フィルタの振動量の取得および保存を繰り返し実行する。
【００４１】
ここで、図５を用いて、サーボ制御用フィルタテーブル１３７の学習内容の遷移を説明する。図５は、実施例１に係るサーボ制御用フィルタテーブルの遷移を説明するための図である。フィルタ学習部１３６による学習１回目により、サーボ制御用フィルタテーブル１３７内に記憶されている学習内容が更新される。
【００４２】
すなわち、同図に示すように、学習１回目の開始時では、サーボ制御用フィルタテーブル１３７に記憶されているサーボ制御用フィルタの採用候補が、候補１→２→３→４→５→６→７のデフォルトの状態に並んでおり、前回測定時の振動量の情報も保存されていない。そして、学習１回目の終了時点では、候補１〜候補４のサーボ制御用フィルタにそれぞれ対応付けて、３５、２０、２５および５０の振動量の情報が保存される。なお、学習１回目の終了時点で、学習１回目の開始前に使用されていたサーボ制御用フィルタから、振動量が最小であった候補２のサーボ制御用フィルタに切り替えられる。
【００４３】
また、図５に示すように、フィルタ学習部１３６による学習２回目により、サーボ制御用フィルタテーブル１３７内に記憶されている学習内容が更新される。サーボ制御用フィルタテーブル１３７内に記憶されている前回測定時の振動量が小さいものから順に、サーボ制御用フィルタの採用候補が候補２→５→６→７→３→１→４の順に並べ替えられる。そして、学習２回目の終了時点で、候補２、５、６、７のサーボ制御用フィルタにそれぞれ対応付けて、２５、１５、３０および３５の振動量の情報が上書き、または保存される。なお、学習２回目の終了時点で、学習２回目の開始時に使用されていた候補２のサーボ制御用フィルタから、振動量が最小であった候補５のサーボ制御用フィルタに切り替えられる。
【００４４】
また、図５に示すように、フィルタ学習部１３６による学習３回目により、サーボ制御用フィルタテーブル１３７内に記憶されている学習内容が更新される。サーボ制御用フィルタテーブル１３７内に記憶されている前回測定時の振動量が小さいものから順に、サーボ制御用フィルタの採用候補が候補５→２→３→６→１→７→４の順に並べ替えられる。そして、学習３回目の終了時点で、候補５、２、３、６のサーボ制御用フィルタにそれぞれ対応付けて、１５、３０、２５および４０の振動量の情報が上書き保存される。なお、学習３回目の終了時点で、学習２回目の開始時に使用されていた候補５のサーボ制御用フィルタが、学習３回目でも振動量が最小であるため、そのまま使用される。
【００４５】
また、図５に示すように、フィルタ学習部１３６による学習４回目により、サーボ制御用フィルタテーブル１３７に保存された学習内容がリセットされる。具体的には、現状の候補５のサーボ制御用フィルタの振動量５０から、前回の候補５の振動量１５を減算した値３５がリセット閾値（例えば、３０）を超えている場合には、フィルタ学習部１３６により候補５以外のサーボ制御用フィルタについてリセットされる。
【００４６】
すなわち、同図に示すように、候補５についてのレコードはそのままで、候補１〜４、６、７について保存されている振動量の情報が削除され、候補１→２→３→４→６→７のデフォルトの状態に並び替える。そして、学習４回目の終了時点で、候補５、１、２、３のサーボ制御用フィルタにそれぞれ対応付けて、５０、２０、４０および１５の振動量の情報が新たに保存される。なお、学習４回目の終了時点で、学習４回目の開始時に使用されていた候補５のサーボ制御用フィルタから、振動量が最小であった候補３のサーボ制御用フィルタに切り替えられる。
【００４７】
ここで、ハードディスク装置１００の外乱圧縮特性および趣旨について説明する。ハードディスク装置１００は、例えば、ＲＤＣ１２０と、位置計算処理部１３１と、ＳＶＣ１４０、ＶＣＭ１５０との間で位置決め制御を実行中である場合に、図６に示すような外乱圧縮特性を有する。そして、サーボ制御フィルタ計算部１３２およびメカ（例えば、ＶＣＭ１５０）の特性をそれぞれ「特性Ｃ（サーボ制御フィルタ特性）」および「特性Ｐ（メカ特性）」とすると、外乱圧縮特性は、１／（１＋ＣＰ）で表される（なお、簡単のため、エレキ特性については除外して考える）。
【００４８】
上述してきたように、ハードディスク装置１００は、あらかじめ複数の切替候補が用意されるサーボ制御用フィルタの中から、振動量が最小となるサーボ制御用フィルタを選択して、選択されたサーボ制御用フィルタに切り替える。すなわち、「特性Ｐ（メカ特性）」については変更不可能であるので、特性を変更可能なサーボ制御用フィルタの切り替えを実行することで、外乱圧縮特性が最適となるように調整する趣旨である。例えば、図７の（１）〜（６）に示すように、様々な要因による外乱に応じて、ハードディスク装置１００の外乱圧縮特性を調整することができる。
【００４９】
また、上記フィルタ学習部１３６による学習処理は、以下に説明する二つのタイミングで実行可能である。例えば、通常の制御ループ（ＲＤＣ１２０と、位置計算処理部１３１と、ＳＶＣ１４０、ＶＣＭ１５０との間で繰り返し行われる位置決め制御のループ、図３の点線参照）定期的に行う割り込み処理（図８参照）内、あるいは割り込み処理外のところで実行する。なお、図６は、外乱圧縮特性の一例を示す図である。図７は、サーボ制御用フィルタごとの外乱圧縮特性を示す図である。図８は、割り込み処理の概略を示す図である。
【００５０】
なお、図３に示すヘッドは、特許請求の範囲に記載の「記録再生ヘッド」に対応する。また、上記のサーボ制御フィルタ計算部１３２およびＳＶＣ１４０は、特許請求の範囲に記載の「位置決め制御部」に対応する。また、上記の位置計算処理部１３１およびＲＤＣ１２０は、特許請求の範囲に記載の「位置検出部」に対応する。また、上記のサーボ制御用フィルタテーブル１３７は、特許請求の範囲に記載の「記憶領域部」に対応する。また、上記の位置計算処理部１３１は、特許請求の範囲に記載の「位置誤差検出部」に対応する。
【００５１】
［ハードディスク装置による処理（実施例１）］
図９は、実施例１に係る導入処理の流れを示す図である。ＭＣＵ１３０は、ホストからライトもしくはリード要求を受け付けると、適宜フィルタを切り替えて、ターゲット位置にヘッドを移動させるシーク制御（導入処理）を実行する。
【００５２】
具体的には、図９に示すように、ＭＣＵ１３０は、位置計算処理部１３１により算出されたヘッドの現在位置を用いて、ヘッドがターゲット位置から遠い時点では周波数帯域の低いシーク用フィルタに切り替える（ステップＳ１）。そして、ＭＣＵ１３０は、ターゲット位置付近へのヘッドの接近を待機する（ステップＳ２）。
【００５３】
ヘッドがターゲット位置付近に接近すると（ステップＳ２肯定）、ＭＣＵ１３０は、シーク用フィルタをセトリング用フィルタに切り替えて（ステップＳ３）、セトリングを開始して完了を待機する（ステップＳ４）。セトリングが完了すると（ステップ４肯定）、ヘッドの位置決め制御のサーボ制御用フィルタに切り替えて（ステップＳ５）、サーボ制御を実行する。
【００５４】
［学習トリガーの検出］
図１０は、実施例１に係る学習トリガー検出の流れを示す図である。ＭＣＵ１３０は、シーク制御完了後、ホストからの要求に応じて実行するライトもしくはリード処理が正常に完了したかどうかを監視し、監視結果に応じて、後述するフィルタ学習部１３６の学習トリガーの検出を実行する。
【００５５】
具体的には、図１０に示すように、ＭＣＵ１３０は、ホストからの要求に応じてライトもしくはリード処理を実行し（ステップＳ１）、ライトもしくはリード処理が成功したかどうかを監視する（ステップＳ２）。監視の結果、ライトもしくはリード処理が成功した場合には（ステップＳ２肯定）、そのまま処理を終了する。一方、ライトもしくはリード処理が成功しなかった場合には（ステップＳ２否定）、ＭＣＵ１３０のリトライ回数監視部１３５は、ライトもしくはリード処理のリトライが可能であるかどうか（リトライオーバーかどうか）を判定する（ステップＳ３）。
【００５６】
判定の結果、リトライオーバーである場合には（ステップＳ３肯定）、リトライ回数監視部１３５は、ライトもしくはリード処理の要求元であるホストにエラー報告を出力する。これとは反対に、判定の結果、リトライオーバーではない場合には（ステップＳ３否定）、振動量監視部１３４に振動量の判定指示を送出する。
【００５７】
振動量監視部１３４は、振動量計算部１３３からの振動量をモニタし、リトライ回数監視部１３５から振動量の判定指示を受けると、モニタしている振動量が、予め設定された閾値（スライス１）をオーバーしているか否かを判定する（ステップＳ４）。判定の結果、振動量が予め設定された閾値をオーバーしている場合には（ステップＳ４肯定）、学習トリガーを検出したものとして、サーボ制御用フィルタの学習指示をフィルタ学習部１３６に送出する。フィルタ学習部１３６は、サーボ制御用フィルタの学習を開始する（ステップＳ５）。
【００５８】
一方、判定の結果、モニタしている振動量が、予め設定された閾値（スライス１）をオーバーしていない場合には（ステップＳ４否定）、振動量監視部１３４は、リトライ回数監視部１３５に、振動量がオーバーしていない旨の判定結果を送出する。
【００５９】
リトライ回数監視部１３５は、振動量監視部１３４から振動量がオーバーしていない旨の判定結果を受けると、リトライレートが予め設定された閾値（スライス２）をオーバーしているか否かを判定する（ステップＳ６）。判定の結果、リトライレートが予め設定された閾値（スライス２）をオーバーしている場合には（ステップＳ６肯定）、サーボ制御用フィルタの学習指示をフィルタ学習部１３６に送出する。フィルタ学習部１３６は、サーボ制御用フィルタの学習を開始する（ステップＳ５）。
【００６０】
一方、リトライ回数監視部１３５による判定の結果、リトライレートが予め設定された閾値をオーバーしていない場合には（ステップＳ６否定）、ＭＣＵ１３０は、ライトもしくはリード処理のリトライを実行する。
【００６１】
［フィルタ学習］
図１１は、実施例１に係るサーボ制御用フィルタの学習処理の流れを示す図である。フィルタ学習部１３６は、振動量監視部１３４またはリトライ回数監視部１３５から、サーボ制御用フィルタの学習指示を受けると、サーボ制御用フィルタの学習を実行する。
【００６２】
具体的には、図１１に示すように、フィルタ学習部１３６は、サーボ制御用フィルタの学習指示を受け付けると、フィルタ学習開始からの経過時間を計測するためのタイマーをスタートさせる（ステップＳ１）。そして、フィルタ学習部１３６は、現状（現時点のサーボ制御用フィルタ）の振動量を保存する（ステップＳ２）。
【００６３】
次に、フィルタ学習部１３６は、サーボ制御用フィルタテーブル１３７内に記憶されている前回測定時の振動量が小さいものから順にサーボ制御用フィルタの採用候補を並べ替える（ステップＳ３）。続いて、フィルタ学習部１３６は、サーボ制御用フィルタの切り替え時に更新する変数Ｘを０に設定した後（ステップＳ４）、サーボ制御用フィルタテーブル１３７内から振動量が最小のサーボ制御用フィルタを選択して切り替える（ステップＳ５）。そして、フィルタ学習部１３６は、切り替えられたサーボ制御用フィルタが安定化するのを待って（ステップＳ６）、振動量を取得し（ステップＳ７）、取得した振動量をサーボ制御用フィルタに対応付けてサーボ制御用フィルタテーブル１３７に保存する。
【００６４】
振動量の取得後、フィルタ学習部１３６は、フィルタ学習開始からの経過時間がフィルタ学習処理を終了すべき制限時間に到達したか否かの判定を行う（ステップＳ８）。すなわち、サーボ制御用フィルタ切替後の振動量を取得して、サーボ制御用フィルタテーブル１３７に保存した後、学習開始時にスタートしたタイマーが制限時間に到達しているか否か（タイムオーバーか否か）を判定する。
【００６５】
判定の結果、フィルタ学習開始からの経過時間がフィルタ学習処理を終了すべき制限時間に到達していない場合（タイムオーバーではない場合）には（ステップＳ８否定）、フィルタ学習部１３６は、変数Ｘを１インクリメントした後（ステップＳ９）、上述したステップＳ５〜ステップＳ７と同様の処理を実行する。すなわち、フィルタ学習部１３６は、タイマーが制限時間に到達するまで、前回測定時の振動量が小さいものから順にサーボ制御用フィルタを切り替え、振動量の取得および保存を繰り返し実行する。
【００６６】
そして、フィルタ学習部１３６は、フィルタ学習開始からの経過時間がフィルタ学習処理を終了すべき制限時間に到達した場合（タイムオーバーである場合）には（ステップＳ８肯定）、制限時間内に測定されたサーボ制御用フィルタごとの振動量の中で、最小の振動量に対応するサーボ制御用フィルタを選択する（ステップＳ１０）。そして、フィルタ学習部１３６は、選択されたサーボ制御用フィルタへの切り替えを行う。例えば、図４に示すように、制限時間内に測定された振動量２５、１５、３０および３５の中で、最小の振動量１５に対応する候補２のサーボ制御用フィルタを選択して切り替える。そして、フィルタ学習部１３６による学習が終了すると、ＭＵＣ１３０は、ライトもしくはリード処理に戻る。
【００６７】
［学習内容リセット］
図１２は、実施例１に係る学習内容のリセットを含む学習処理の流れを示す図である。フィルタ学習部１３６は、サーボ制御用フィルタの学習に伴って、所定の条件を満足する場合に、サーボ制御用フィルタテーブル１３７に保存された学習内容をリセットする。なお、図１２に示す処理の流れは、図１１に示す処理の流れと基本的には同様であるが、図１１に示すステップＳ３およびステップＳ４が異なる。
【００６８】
すなわち、図１２に示すように、フィルタ学習部１３６は、サーボ制御用フィルタの学習指示を受け付けると、図１１に示すステップＳ１およびＳ２と同様にして、学習時間を計測するためのタイマーをスタートさせて（ステップＳ１）、現状（現時点のサーボ制御用フィルタ）の振動量を保存する（ステップＳ２）。
【００６９】
そして、フィルタ学習部１３６は、現状の振動量（現在使用中のサーボ制御用フィルタの振動量）から、前回の振動量（前回取得された同一のサーボ制御用フィルタの振動量）を減算した値を計算し、算出された振動量の差が予め設定されたリセット閾値を超えているか否かを判定する（ステップＳ３）。
【００７０】
判定の結果、算出された振動量の差が予め設定されたリセット閾値を超えている場合には（ステップＳ３肯定）、フィルタ学習部１３６は、サーボ制御用フィルタテーブル１３７に保存された学習内容を、使用中以外のサーボ制御用フィルタについてリセットする（ステップＳ４）。具体的には、サーボ制御用フィルタテーブル１３７に保存されている振動量の情報を削除して、サーボ制御用フィルタの採用候補をデフォルトの状態に並び替える。
【００７１】
サーボ制御用フィルタテーブル１３７に保存された学習内容をリセットした後、フィルタ学習部１３６は、図１１に示すステップＳ３以降の処理と同様の処理を実行する。一方、判定の結果、算出された振動量の差が予め設定されたリセット閾値を超えていない場合には（ステップＳ３否定）、そのまま、図１１に示すステップＳ３以降の処理と同様の処理を実行する。すなわち、フィルタ学習部１３６は、タイマーが制限時間に到達するまで（フィルタ学習開始からの経過時間がフィルタ学習処理を終了すべき制限時間に到達するまで）、サーボ制御用フィルタテーブル１３７に並べられた採用候補の上から順に選択する。そして、フィルタ学習部１３６は、切り替えたサーボ制御用フィルタの振動量の取得および保存を繰り返し実行する。
【００７２】
［実施例１による効果］
上述してきたように、実施例１によれば、記録再生エラー発生時に、位置誤差信号を各サーボ制御用フィルタを通して得た制御電流を用いて位置決め制御を行ったときの記録再生ヘッドの現在位置から振動量を算出する学習を行う。そして、所定時間、複数のサーボ制御用フィルタのそれぞれに対して順番に学習を行い、測定した振動量が最小のサーボ制御用フィルタに位置誤差信号を通して得た制御電流を用いて、記録再生ヘッドの位置決め制御を行う。このようなことから、ホスト側への応答が遅くならないように性能に対する影響を考慮した制限時間内で、ヘッドの位置決め制御性能に対する振動の影響を抑制するために最適なサーボ制御用フィルタへの切替を実現できる（すなわち、様々な外乱に応じたがイラン圧縮特性となるようなサーボ制御用フィルタへの切替を実現できる）。
【００７３】
また、実施例１によれば、所定の条件を満足する学習トリガーが発生した場合に、サーボ制御用フィルタの学習を実行するので、ヘッドの位置決め制御が完了するまでに時間を要することにより、ヘッドの位置決め制御に関する性能に対する悪影響を最小限にできる。
【００７４】
また、実施例１によれば、振動量が小さいサーボ制御用フィルタから順に選択して学習を実行するので、ヘッドの位置決め制御性能に対する振動の影響を抑制するために最適なサーボ制御用フィルタへの切替を効率的に実現できる。
【００７５】
また、実施例１によれば、現状の振動量と前回の振動量との差分が閾値を超えている場合には、学習内容をリセットするので、振動の性質の変化を考慮しつつ、最適なサーボ制御用フィルタへの切替を実現できる。
【実施例２】
【００７６】
ハードディスク装置１００の他の実施形態を説明する。
【００７７】
（１）装置構成等
図３に示したハードディスク装置１００が有するＭＣＵ１３０の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、ＭＣＵ１３０の分散・統合の具体的形態は図示のものに限られず、例えば、振動量監視部１３４と、リトライ回数監視部１３５と、フィルタ学習部１３６とを統合するようにしてもよい。このように、ＭＣＵ１３０の各構成要素の全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、ハードディスク装置１００（特に、ＭＣＵ１３０）にて行なわれる各処理機能（図９〜図１２等参照）は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００７８】
（２）サーボ制御用フィルタ学習プログラム
また、上記の実施例１で説明したハードディスク装置１００の各種の処理（例えば、図８〜図１１等参照）は、あらかじめ用意されたプログラムをＭＣＵやＭＰＵなどのマイクロプロセッサで実行することによって実現することができる。そこで、以下では、図１３を用いて、上記の実施例１と同様の機能を有するサーボ制御用フィルタ学習プログラムを実行するコンピュータの一例を説明する。図１３は、サーボ制御用フィルタ学習プログラムを実行するコンピュータを示す図である。
【００７９】
同図に示すように、例えば、ＭＣＵとしてコンピュータ２００は、入力部２１０、出力部２２０、記憶用メモリ２３０、ワーク用メモリ２４０および制御部２５０をバス３００で接続して構成される。
【００８０】
ここで、入力部２１０は、ユーザから各種データの入力を受け付ける。出力部２２０は、各種情報を表示する。記憶用メモリ２３０は、制御部２５０による各種処理の実行に必要な情報を記憶する。ワーク用メモリ２４０は、各種情報を一時的に記憶する。制御部２５０は、各種演算処理を実行する。
【００８１】
そして、記憶用メモリ２３０には、図１３に示すように、上記の実施例１に示したハードディスク装置１００が有するＭＣＵ１３０の各処理部と同様の機能を発揮するサーボ制御用フィルタ学習プログラム２３１と、サーボ制御用フィルタ学習用データ２３２とがあらかじめ記憶されている。なお、このサーボ制御用フィルタ学習プログラム２３１を適宜分散させて、ネットワークを介して通信可能に接続された他のコンピュータの記憶部に記憶させておくこともできる。
【００８２】
そして、制御部２５０が、このサーボ制御用フィルタ学習プログラム２３１を記憶用メモリ２３０から読み出してワーク用メモリ２４０に展開することにより、図１３に示すように、サーボ制御用フィルタ学習プログラム２３１はサーボ制御用フィルタ学習プロセス２４１として機能するようになる。すなわち、サーボ制御用フィルタ学習プロセス２４１は、サーボ制御用フィルタ学習用データ２３２等を記憶用メモリ２３０から読み出して、ワーク用メモリ２４０において自身に割り当てられた領域に展開し、この展開したデータ等に基づいて各種処理を実行する。
【００８３】
なお、サーボ制御用フィルタ学習プロセス２４１は、図３に示したＭＣＵ１３０の各処理機能部の中で、特に、位置計算処理部１３１と、サーボ制御フィルタ計算部１３２と、振動量計算部１３３と、振動量監視部１３４と、リトライ回数監視部１３５と、フィルタ学習部１３６と、サーボ制御用フィルタテーブル１３７とにおいて実行される処理にそれぞれ対応する。
【００８４】
なお、上記したサーボ制御用フィルタ学習プログラム２３１については、必ずしも最初から記憶用メモリ２３０に記憶させておく必要はなく、例えば、コンピュータ２００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」、さらには、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータ２００に接続される「他のコンピュータ（またはサーバ）」などに各プログラムを記憶させておき、コンピュータ２００がこれらから各プログラムを読み出して実行するようにしてもよい。
【図面の簡単な説明】
【００８５】
【図１】実施例１に係るハードディスク装置を説明するための図である。
【図２】実施例１に係るハードディスク装置の構成を示す図である。
【図３】実施例１に係るＭＣＵの構成を示す図である。
【図４】実施例１に係るサーボ制御用フィルタテーブルの構成例を示す図である。
【図５】実施例１に係るサーボ制御用フィルタテーブルの遷移を説明するための図である。
【図６】外乱圧縮特性の一例を示す図である。
【図７】サーボ制御用フィルタごとの外乱圧縮特性を示す図である。
【図８】割り込み処理の概略を示す図である。
【図９】実施例１に係る導入処理の流れを示す図である。
【図１０】実施例１に係る学習トリガー検出の流れを示す図である。
【図１１】実施例１に係るサーボ制御用フィルタの学習処理の流れを示す図である。
【図１２】実施例１に係る学習内容のリセットを含む学習処理の流れを示す図である。
【図１３】サーボ制御用フィルタ学習プログラムを実行するコンピュータを示す図である。
【符号の説明】
【００８６】
１００  ハードディスク装置
１１０  記録媒体
１２０  ＲＤＣ
１３０  ＭＣＵ
１３１  位置計算処理部
１３２  サーボ制御フィルタ計算部
１３３  振動量計算部
１３４  振動量監視部
１３５  リトライ回数監視部
１３６  フィルタ学習部
１３７  サーボ制御用フィルタテーブル
１４０  ＳＶＣ
１５０  ＶＣＭ
２００  コンピュータ
２１０  入力部
２２０  出力部
２３０  記憶用メモリ
２３１  サーボ制御用フィルタ学習プログラム
２３２  サーボ制御用フィルタ学習用データ
２４０  ワーク用メモリ
２４１  サーボ制御用フィルタ学習プロセス
２５０  制御部
３００  バス
【図１】
2010123227.tif 000003
【図２】
2010123227.tif 000004
【図３】
2010123227.tif 000005
【図４】
2010123227.tif 000006
【図５】
2010123227.tif 000007
【図６】
2010123227.tif 000008
【図７】
2010123227.tif 000009
【図８】
2010123227.tif 000010
【図９】
2010123227.tif 000011
【図１０】
2010123227.tif 000012
【図１１】
2010123227.tif 000013
【図１２】
2010123227.tif 000014
【図１３】
2010123227.tif 000015