説明

情報記憶装置およびサーボ制御用フィルタ学習プログラム

【課題】ホスト側への応答が遅くならないように性能に対する影響を考慮しつつ、ヘッドの位置決め制御性能に対する振動の影響を抑制するために最適なサーボ制御用フィルタへの切替を実現することを課題とする。
【解決手段】ハードディスク装置は、記録再生エラー発生時に、位置誤差信号を各サーボ制御用フィルタを通して得た制御電流を用いて位置決め制御を行ったときの記録再生ヘッドの現在位置から振動量を算出する学習を、所定時間、複数のサーボ制御用フィルタのそれぞれに対して順番に行い、測定した振動量が最小のサーボ制御用フィルタに位置誤差信号を通して得た制御電流を用いて、記録再生ヘッドの位置決め制御を行う。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、情報記憶装置およびサーボ制御用フィルタ学習プログラムに関する。
【背景技術】
【0002】
従来、ハードディスク装置などの情報記憶装置に加えられる振動の影響から、ヘッドの位置決め制御性能が低下するのを防止するために、ヘッドから得られるサーボ情報から位置誤差信号を入力としてサーボ制御用フィルタにより位置決め制御を行う技術が存在する。
【0003】
例えば、特許文献1では、ディスク装置において振動が検出されると、帯域が異なる周波数信号を除去するために予め用意された複数のフィルタの中から、1または2以上のフィルタを選択して、補正信号を生成する技術が開示されている。
【0004】
【特許文献1】特開2007−95119号公報
【発明の開示】
【発明が解決しようとする課題】
【0005】
しかしながら、上記した特許文献1に開示の技術は、ディスク装置において検出された振動の帯域に応じて、予め用意された複数のフィルタの中から選択したフィルタを用いて補正信号を生成する。したがって、ディスク装置において検出されたさまざまな振動に対して最適なフィルタを選択するまでに長い時間かかり、ホスト側への応答が遅くなることにより性能面で悪い影響を及ぼすことが考えられる。
【0006】
そこで、この発明は、上述した従来技術の課題を解決するためになされたものであり、ホスト側への応答が遅くならないように性能に対する影響を考慮しつつ、ヘッドの位置決め制御性能に対するさまざまな振動の影響を抑制するために最適なサーボ制御用フィルタへの切替を実現することが可能な情報記憶装置およびサーボ制御用フィルタ学習プログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
上述した課題を解決し、目的を達成するため、開示の装置は、記録媒体上のデータを記録又は再生する記録再生ヘッドと、前記記録再生ヘッドの位置決めを行う位置決め制御部と、前記記録媒体上のサーボ信号に基づき前記記録再生ヘッドの現在位置を検出する位置検出部と、複数のサーボ制御フィルタが保存された記憶領域部と、位置誤差信号を前記サーボ制御フィルタに通して得た制御電流を用いて、前記位置決め制御部により前記記録再生ヘッドの位置決め制御を行ったとき、前記位置検出部で検出される記録再生ヘッドの現在位置と、目標位置とから新たな位置誤差信号を生成する位置誤差検出部とを有し、記録再生エラー発生時に、位置誤差信号を各サーボ制御フィルタを通して得た制御電流を用いて、前記位置決め制御部により前記記録再生ヘッドの位置決め制御を行ったとき、前記位置検出部で検出される前記記録再生ヘッドの現在位置から振動量を算出する学習を、所定時間、前記複数のサーボ制御フィルタのそれぞれに対して順番に行い、測定した振動量が最小のサーボ制御フィルタに位置誤差信号を通して得た制御電流を用いて、前記記録再生ヘッドの位置決め制御を行う。
【発明の効果】
【0008】
開示の装置によれば、ホスト側への応答が遅くならないように性能に対する影響を考慮しつつ、ヘッドの位置決め制御性能に対する振動の影響を抑制するために最適なサーボ制御用フィルタへの切替を実現できる。
【発明を実施するための最良の形態】
【0009】
以下に、情報記憶装置およびサーボ制御用フィルタ学習プログラムの一実施形態を詳細に説明する。なお、情報記憶装置の一実施形態を説明するために、情報記憶装置の一例としてハードディスク装置を取り上げる。
【実施例1】
【0010】
実施例1に係るハードディスク装置は、装置の振動が位置誤差信号に及ぼす影響(ノイズ)を除去するためのサーボ制御用フィルタを用いて、ヘッドの位置決め制御(位置誤差信号の生成)を実行する。そして、実施例1に係るハードディスク装置は、記録再生エラー発生時に、位置誤差信号を各サーボ制御用フィルタを通して得た制御電流を用いて位置決め制御を行ったときの記録再生ヘッドの現在位置から振動量を算出する学習を、所定時間、複数のサーボ制御用フィルタのそれぞれに対して順番に行い、測定した振動量が最小のサーボ制御用フィルタに位置誤差信号を通して得た制御電流を用いて、記録再生ヘッドの位置決め制御を行う。
【0011】
図1は、実施例1に係るハードディスク装置を説明するための図である。同図に示すように、実施例1に係るハードディスク装置は、ヘッドの位置決め制御に用いる複数のサーボ制御用フィルタ(候補1〜7)を予め有する。そして、実施例1に係るハードディスク装置は、ホストからの要求に応じて実行するライトもしくはリード処理にエラーが発生すると、現状の振動量を保存するとともに、サーボ制御用フィルタごとに前回測定された振動量が小さいものから順にサーボ制御用フィルタ(候補1〜7)を並べ替える。
【0012】
サーボ制御用フィルタの並べ替え後、実施例1に係るハードディスク装置は、前回測定時の振動量が最小であったサーボ制御用フィルタから順に切り替えて、予め設定される制限時間の間、サーボ制御用フィルタごとに振動量を取得する学習を実行する。例えば、図1に示すように、候補1〜4のサーボ制御用フィルタを切り替えた時の振動量25、15、30および35がそれぞれ順に取得され、サーボ制御用フィルタごとに保存される。
【0013】
実施例1に係るハードディスク装置は、振動量の取得が終了するごとに制限時間に到達したか否かの判定を行う。そして、候補4の振動量を取得が終了した時点で制限時間に到達した場合には、実施例1に係るハードディスク装置は、制限時間内に測定されたサーボ制御用フィルタごとの振動量の中で、最小の振動量に対応するサーボ制御用フィルタを選択して、選択されたサーボ制御用フィルタへの切り替えを行う。例えば、図1に示すように、制限時間内に測定されたサーボ制御用フィルタごとの振動量の中で、最小の振動量15に対応する候補2のサーボ制御用フィルタを選択して切り替える。
【0014】
そして、実施例1に係るハードディスク装置は、切り替えられたサーボ制御用フィルタに位置誤差信号を通して得た制御電流を用いて、記録再生ヘッドの位置決め制御を行い、ホストからの要求に応じたライトもしくはリード処理に戻る。
【0015】
このようなことから、実施例1に係るハードディスク装置は、ヘッドの位置決め制御に関する性能に対する影響を考慮した制限時間内で、ヘッドの位置決め制御性能に対する振動の影響を抑制するために最適なサーボ制御用フィルタへの切替を実現できる。
【0016】
[ハードディスク装置の構成(実施例1)]
図2は、実施例1に係るハードディスク装置の構成を示す図である。同図に示すように、実施例1に係るハードディスク装置100は、記録媒体110と、RDC120と、MCU130と、SVC140と、VCM150とを有する。
【0017】
記録媒体110は、所定のユーザデータやシステムデータなどを記録している。
【0018】
RDC(リードチャネルコントローラ)120は、データリードの場合に、ヘッド(ヘッドIC)から入力するアナログ信号を復調してデコードし、デコードされたデジタルデータをパラレル信号に変換してMCU130に送出する。また、データライトの場合に、ホスト(図示せず)から入力するライトデータをエンコードして変調し、変調されたアナログ信号をヘッド(ヘッドIC)に送出する。
【0019】
SVC(サーボコントローラ)140は、MCU130からの制御電流送出指示を入力して、指示に応じた制御電流をVCM150に送出することで、VCM150のヘッド位置調整動作を制御する。VCM(ヴォイスコイルモータ)150は、SVC140から入力する制御電流に応じてヘッドの位置を調整する。
【0020】
MCU(マイクロコントロールユニット)130は、ハードディスク装置100の動作制御を主導して実行する。MCU130は、ホスト(図示せず)からライトもしくはリード要求を受け付けると、適宜フィルタを切り替えて、ターゲット位置にヘッドを移動させるシーク制御(導入処理)を実行する。
【0021】
例えば、MCU130は、ヘッドがターゲット位置から遠い時点では周波数帯域の低いシーク用フィルタに切り替えて、ターゲット位置付近へのヘッドの接近を待機する。ヘッドがターゲット位置付近に接近すると、シーク用フィルタをセトリング用フィルタに切り替えてセトリングを開始し、セトリングの完了を待機する。セトリングが完了すると、ヘッドの位置決め制御のサーボ制御用フィルタに切り替えてサーボ制御を実行する。
【0022】
位置決め制御の流れについて簡単に説明すると、MCU130は、図2に示すように、RDC120から受けた復調結果を用いてヘッドの現在位置を算出した後、ヘッドの現在位置と目標位置との差分に基づいて、位置誤差信号を算出する。そして、MCU130は、位置誤差信号をサーボ制御用フィルタに通して制御電流を取得し、取得した制御電流の送出指示をSVC140に送出する。通常時は、以上の位置決め制御を繰り返し実行する。
【0023】
図3は、実施例1に係るMCUの構成を示す図である。同図に示すように、MCU130は、位置計算処理部131と、サーボ制御フィルタ計算部132と、振動量計算部133と、振動量監視部134と、リトライ回数監視部135と、フィルタ学習部136と、サーボ制御用フィルタテーブル137とを有する。
【0024】
位置計算処理部131は、RDC120からの復調結果に基づいて、ヘッドの現在位置を算出した後、ヘッドの現在位置と目標位置との差分に基づいて、位置誤差信号を算出する。そして、位置計算処理部131は、算出した位置誤差信号を振動量計算部133およびサーボ制御フィルタ計算部132に送出する。
【0025】
サーボ制御フィルタ計算部132は、サーボ制御フィルタを用いて、位置計算処理部131からの位置誤差信号から制御電流を算出し、SVC140に制御電流の送出指示を送出する。
【0026】
振動量計算部133は、位置計算処理部131からの位置誤差信号から振動量を計算し、計算した振動量を振動量監視部134に送出する。例えば、ショックセンサなどの特別な装置を用いずに振動量を算出する方法としては、位置誤差信号の絶対値をローパスフィルタなどのフィルタにかけてノイズを取ったものを用いる技術などがある(例えば、特開2007−87558号公報等参照)。
【0027】
振動量監視部134は、振動量計算部133からの振動量をモニタし、後述するリトライ回数監視部135から振動量の判定指示を受けると、モニタしている振動量が、予め設定された閾値をオーバーしているか否かを判定する。判定の結果、振動量が予め設定された閾値をオーバーしている場合には、学習トリガーを検出したものとして、サーボ制御用フィルタの学習指示をフィルタ学習部136に送出する。一方、判定の結果、モニタしている振動量が、予め設定された閾値をオーバーしていない場合には、後述するリトライ回数監視部135に、振動量がオーバーしていない旨の判定結果を送出する。
【0028】
リトライ回数監視部135は、ホスト(図示せず)からの要求に応じて実行するライトもしくはリード処理が正常に完了しなかった場合に、リトライ処理の回数を監視し、リトライオーバーであるか否かを判定する。判定の結果、リトライオーバーである場合には、ライトもしくはリード処理の要求元であるホストにエラー報告を出力する。一方、判定の結果、リトライオーバーでない場合には、振動量監視部134に振動量の判定指示を送出する。
【0029】
また、振動量の判定指示を送出後、リトライ回数監視部135は、振動量監視部134から振動量がオーバーしていない旨の判定結果を受けると、リトライレートが予め設定された閾値(例えば、所定時間内のリトライ発生回数)をオーバーしているか否かを判定する。判定の結果、リトライの発生レートが予め設定された閾値をオーバーしている場合には、サーボ制御用フィルタの学習指示をフィルタ学習部136に送出する。一方、リトライ回数監視部135による判定の結果、リトライレートが予め設定された閾値をオーバーしていない場合には、MCU130は、ライトもしくはリード処理のリトライを実行する。
【0030】
サーボ制御用フィルタテーブル137は、後述するフィルタ学習部136による学習内容を記憶する。例えば、図4に示すように、装置の振動が位置誤差信号に及ぼす影響(ノイズ)を除去するための複数のサーボ制御用フィルタの採用候補(候補1〜7の乗数の異なる関数)と、サーボ制御用フィルタごとに測定された振動量の情報とを対応付けた学習内容を記憶している。なお、図4は、実施例1に係るサーボ制御用フィルタテーブルの構成例を示す図である。
【0031】
フィルタ学習部136は、振動量監視部134またはリトライ回数監視部135から、サーボ制御用フィルタの学習指示を受けると、サーボ制御用フィルタの学習を開始する。具体的には、フィルタ学習部136は、サーボ制御用フィルタの学習指示を受けると、学習時間を計測するためのタイマーをスタートさせて、現状(現時点のサーボ制御用フィルタ)の振動量を保存する。
【0032】
次に、フィルタ学習部136は、サーボ制御用フィルタテーブル137内に記憶されている前回測定時の振動量が小さいものから順にサーボ制御用フィルタの採用候補を並べ替えて、振動量が最小のサーボ制御用フィルタに切り替える。そして、切り替えられたサーボ制御用フィルタが安定化するのを待って振動量を取得し、取得した振動量をサーボ制御用フィルタに対応付けてサーボ制御用フィルタテーブル137に保存する。
【0033】
例えば、図4に示すように、フィルタ学習部136は、前回測定時の振動量が小さいものから順にサーボ制御用フィルタの採用候補を並べ替えると、候補1〜7の順にサーボ制御用フィルタが並べ替えられる。そして、フィルタ学習部136は、振動量が最小である候補1のサーボ制御用フィルタに切り替え、候補1のサーボ制御用フィルタが安定化するのを待って振動量25を取得し、取得した振動量を候補1に対応付けてサーボ制御用フィルタテーブル137に保存する。
【0034】
そして、フィルタ学習部136は、振動量の取得が終了するごとに制限時間に到達したか否かの判定を行う。例えば、フィルタ学習部136は、候補1のサーボ制御用フィルタに切り替えたときの振動量を取得して、サーボ制御用フィルタテーブル137に保存した後、タイマーが制限時間に到達している否か(タイムオーバーか否か)を判定する。判定の結果、タイマーが制限時間に到達していない場合には、フィルタ学習部136は、振動量が候補1の次に小さい候補2のサーボ制御用フィルタに切り替える。そして、候補1の場合と同様に、候補2のサーボ制御用フィルタが安定化するのを待って振動量を取得し、取得した振動量を候補1に対応付けてサーボ制御用フィルタテーブル137に保存する。フィルタ学習部136は、タイマーが制限時間に到達するまで、前回測定時の振動量が小さいものから順にサーボ制御用フィルタを切り替え、振動量の振動量の取得および保存を繰り返し実行する。
【0035】
タイマーが制限時間に到達している場合には、フィルタ学習部136は、制限時間内に測定されたサーボ制御用フィルタごとの振動量の中で、最小の振動量に対応するサーボ制御用フィルタを選択して、選択されたサーボ制御用フィルタへの切り替えを行う。例えば、図4に示すように、制限時間内に測定された振動量25、15、30および35の中で、最小の振動量15に対応する候補2のサーボ制御用フィルタを選択して切り替える。そして、フィルタ学習部136は、サーボ制御用フィルタの学習を終了する。フィルタ学習部136による学習が終了すると、MUC130は、ライトもしくはリード処理に戻る。
【0036】
なお、フィルタ学習部136は、学習トリガーを検出するための閾値として、新たに切り替えられたサーボ制御用フィルタに対応する振動量を設定する。
【0037】
また、フィルタ学習部136は、サーボ制御用フィルタの学習に伴って、所定の条件を満足する場合に、サーボ制御用フィルタテーブル137に保存された学習内容をリセットする。具体的には、フィルタ学習部136は、サーボ制御用フィルタの学習指示を受け付けると、学習時間を計測するためのタイマーをスタートさせて、現状(現時点のサーボ制御用フィルタ)の振動量を保存する。
【0038】
次に、フィルタ学習部136は、現状の振動量(現在使用中のサーボ制御用フィルタの振動量)から、前回の振動量(前回取得された同一のサーボ制御用フィルタの振動量)を減算した値を計算する。そして、フィルタ学習部136は、算出された振動量の差が予め設定されたリセット閾値を超えているか否かを判定する。すなわち、振動の性質が大幅に変わったことを検出する趣旨である。
【0039】
判定の結果、算出された振動量の差が予め設定されたリセット閾値を超えている場合には、フィルタ学習部136は、サーボ制御用フィルタテーブル137に保存された学習内容を、使用中以外のサーボ制御用フィルタについてリセットする。具体的には、サーボ制御用フィルタテーブル137に保存されている振動量の情報を削除して、サーボ制御用フィルタの採用候補をデフォルトの状態に並び替える。
【0040】
サーボ制御用フィルタテーブル137のリセット後、フィルタ学習部136は、上述した通常の学習と同様に動作する。すなわち、フィルタ学習部136は、タイマーが制限時間に到達するまで、サーボ制御用フィルタテーブル137に並べられた採用候補の上から順にサーボ制御用フィルタを切り替えて、切り替えたサーボ制御用フィルタの振動量の取得および保存を繰り返し実行する。
【0041】
ここで、図5を用いて、サーボ制御用フィルタテーブル137の学習内容の遷移を説明する。図5は、実施例1に係るサーボ制御用フィルタテーブルの遷移を説明するための図である。フィルタ学習部136による学習1回目により、サーボ制御用フィルタテーブル137内に記憶されている学習内容が更新される。
【0042】
すなわち、同図に示すように、学習1回目の開始時では、サーボ制御用フィルタテーブル137に記憶されているサーボ制御用フィルタの採用候補が、候補1→2→3→4→5→6→7のデフォルトの状態に並んでおり、前回測定時の振動量の情報も保存されていない。そして、学習1回目の終了時点では、候補1〜候補4のサーボ制御用フィルタにそれぞれ対応付けて、35、20、25および50の振動量の情報が保存される。なお、学習1回目の終了時点で、学習1回目の開始前に使用されていたサーボ制御用フィルタから、振動量が最小であった候補2のサーボ制御用フィルタに切り替えられる。
【0043】
また、図5に示すように、フィルタ学習部136による学習2回目により、サーボ制御用フィルタテーブル137内に記憶されている学習内容が更新される。サーボ制御用フィルタテーブル137内に記憶されている前回測定時の振動量が小さいものから順に、サーボ制御用フィルタの採用候補が候補2→5→6→7→3→1→4の順に並べ替えられる。そして、学習2回目の終了時点で、候補2、5、6、7のサーボ制御用フィルタにそれぞれ対応付けて、25、15、30および35の振動量の情報が上書き、または保存される。なお、学習2回目の終了時点で、学習2回目の開始時に使用されていた候補2のサーボ制御用フィルタから、振動量が最小であった候補5のサーボ制御用フィルタに切り替えられる。
【0044】
また、図5に示すように、フィルタ学習部136による学習3回目により、サーボ制御用フィルタテーブル137内に記憶されている学習内容が更新される。サーボ制御用フィルタテーブル137内に記憶されている前回測定時の振動量が小さいものから順に、サーボ制御用フィルタの採用候補が候補5→2→3→6→1→7→4の順に並べ替えられる。そして、学習3回目の終了時点で、候補5、2、3、6のサーボ制御用フィルタにそれぞれ対応付けて、15、30、25および40の振動量の情報が上書き保存される。なお、学習3回目の終了時点で、学習2回目の開始時に使用されていた候補5のサーボ制御用フィルタが、学習3回目でも振動量が最小であるため、そのまま使用される。
【0045】
また、図5に示すように、フィルタ学習部136による学習4回目により、サーボ制御用フィルタテーブル137に保存された学習内容がリセットされる。具体的には、現状の候補5のサーボ制御用フィルタの振動量50から、前回の候補5の振動量15を減算した値35がリセット閾値(例えば、30)を超えている場合には、フィルタ学習部136により候補5以外のサーボ制御用フィルタについてリセットされる。
【0046】
すなわち、同図に示すように、候補5についてのレコードはそのままで、候補1〜4、6、7について保存されている振動量の情報が削除され、候補1→2→3→4→6→7のデフォルトの状態に並び替える。そして、学習4回目の終了時点で、候補5、1、2、3のサーボ制御用フィルタにそれぞれ対応付けて、50、20、40および15の振動量の情報が新たに保存される。なお、学習4回目の終了時点で、学習4回目の開始時に使用されていた候補5のサーボ制御用フィルタから、振動量が最小であった候補3のサーボ制御用フィルタに切り替えられる。
【0047】
ここで、ハードディスク装置100の外乱圧縮特性および趣旨について説明する。ハードディスク装置100は、例えば、RDC120と、位置計算処理部131と、SVC140、VCM150との間で位置決め制御を実行中である場合に、図6に示すような外乱圧縮特性を有する。そして、サーボ制御フィルタ計算部132およびメカ(例えば、VCM150)の特性をそれぞれ「特性C(サーボ制御フィルタ特性)」および「特性P(メカ特性)」とすると、外乱圧縮特性は、1/(1+CP)で表される(なお、簡単のため、エレキ特性については除外して考える)。
【0048】
上述してきたように、ハードディスク装置100は、あらかじめ複数の切替候補が用意されるサーボ制御用フィルタの中から、振動量が最小となるサーボ制御用フィルタを選択して、選択されたサーボ制御用フィルタに切り替える。すなわち、「特性P(メカ特性)」については変更不可能であるので、特性を変更可能なサーボ制御用フィルタの切り替えを実行することで、外乱圧縮特性が最適となるように調整する趣旨である。例えば、図7の(1)〜(6)に示すように、様々な要因による外乱に応じて、ハードディスク装置100の外乱圧縮特性を調整することができる。
【0049】
また、上記フィルタ学習部136による学習処理は、以下に説明する二つのタイミングで実行可能である。例えば、通常の制御ループ(RDC120と、位置計算処理部131と、SVC140、VCM150との間で繰り返し行われる位置決め制御のループ、図3の点線参照)定期的に行う割り込み処理(図8参照)内、あるいは割り込み処理外のところで実行する。なお、図6は、外乱圧縮特性の一例を示す図である。図7は、サーボ制御用フィルタごとの外乱圧縮特性を示す図である。図8は、割り込み処理の概略を示す図である。
【0050】
なお、図3に示すヘッドは、特許請求の範囲に記載の「記録再生ヘッド」に対応する。また、上記のサーボ制御フィルタ計算部132およびSVC140は、特許請求の範囲に記載の「位置決め制御部」に対応する。また、上記の位置計算処理部131およびRDC120は、特許請求の範囲に記載の「位置検出部」に対応する。また、上記のサーボ制御用フィルタテーブル137は、特許請求の範囲に記載の「記憶領域部」に対応する。また、上記の位置計算処理部131は、特許請求の範囲に記載の「位置誤差検出部」に対応する。
【0051】
[ハードディスク装置による処理(実施例1)]
図9は、実施例1に係る導入処理の流れを示す図である。MCU130は、ホストからライトもしくはリード要求を受け付けると、適宜フィルタを切り替えて、ターゲット位置にヘッドを移動させるシーク制御(導入処理)を実行する。
【0052】
具体的には、図9に示すように、MCU130は、位置計算処理部131により算出されたヘッドの現在位置を用いて、ヘッドがターゲット位置から遠い時点では周波数帯域の低いシーク用フィルタに切り替える(ステップS1)。そして、MCU130は、ターゲット位置付近へのヘッドの接近を待機する(ステップS2)。
【0053】
ヘッドがターゲット位置付近に接近すると(ステップS2肯定)、MCU130は、シーク用フィルタをセトリング用フィルタに切り替えて(ステップS3)、セトリングを開始して完了を待機する(ステップS4)。セトリングが完了すると(ステップ4肯定)、ヘッドの位置決め制御のサーボ制御用フィルタに切り替えて(ステップS5)、サーボ制御を実行する。
【0054】
[学習トリガーの検出]
図10は、実施例1に係る学習トリガー検出の流れを示す図である。MCU130は、シーク制御完了後、ホストからの要求に応じて実行するライトもしくはリード処理が正常に完了したかどうかを監視し、監視結果に応じて、後述するフィルタ学習部136の学習トリガーの検出を実行する。
【0055】
具体的には、図10に示すように、MCU130は、ホストからの要求に応じてライトもしくはリード処理を実行し(ステップS1)、ライトもしくはリード処理が成功したかどうかを監視する(ステップS2)。監視の結果、ライトもしくはリード処理が成功した場合には(ステップS2肯定)、そのまま処理を終了する。一方、ライトもしくはリード処理が成功しなかった場合には(ステップS2否定)、MCU130のリトライ回数監視部135は、ライトもしくはリード処理のリトライが可能であるかどうか(リトライオーバーかどうか)を判定する(ステップS3)。
【0056】
判定の結果、リトライオーバーである場合には(ステップS3肯定)、リトライ回数監視部135は、ライトもしくはリード処理の要求元であるホストにエラー報告を出力する。これとは反対に、判定の結果、リトライオーバーではない場合には(ステップS3否定)、振動量監視部134に振動量の判定指示を送出する。
【0057】
振動量監視部134は、振動量計算部133からの振動量をモニタし、リトライ回数監視部135から振動量の判定指示を受けると、モニタしている振動量が、予め設定された閾値(スライス1)をオーバーしているか否かを判定する(ステップS4)。判定の結果、振動量が予め設定された閾値をオーバーしている場合には(ステップS4肯定)、学習トリガーを検出したものとして、サーボ制御用フィルタの学習指示をフィルタ学習部136に送出する。フィルタ学習部136は、サーボ制御用フィルタの学習を開始する(ステップS5)。
【0058】
一方、判定の結果、モニタしている振動量が、予め設定された閾値(スライス1)をオーバーしていない場合には(ステップS4否定)、振動量監視部134は、リトライ回数監視部135に、振動量がオーバーしていない旨の判定結果を送出する。
【0059】
リトライ回数監視部135は、振動量監視部134から振動量がオーバーしていない旨の判定結果を受けると、リトライレートが予め設定された閾値(スライス2)をオーバーしているか否かを判定する(ステップS6)。判定の結果、リトライレートが予め設定された閾値(スライス2)をオーバーしている場合には(ステップS6肯定)、サーボ制御用フィルタの学習指示をフィルタ学習部136に送出する。フィルタ学習部136は、サーボ制御用フィルタの学習を開始する(ステップS5)。
【0060】
一方、リトライ回数監視部135による判定の結果、リトライレートが予め設定された閾値をオーバーしていない場合には(ステップS6否定)、MCU130は、ライトもしくはリード処理のリトライを実行する。
【0061】
[フィルタ学習]
図11は、実施例1に係るサーボ制御用フィルタの学習処理の流れを示す図である。フィルタ学習部136は、振動量監視部134またはリトライ回数監視部135から、サーボ制御用フィルタの学習指示を受けると、サーボ制御用フィルタの学習を実行する。
【0062】
具体的には、図11に示すように、フィルタ学習部136は、サーボ制御用フィルタの学習指示を受け付けると、フィルタ学習開始からの経過時間を計測するためのタイマーをスタートさせる(ステップS1)。そして、フィルタ学習部136は、現状(現時点のサーボ制御用フィルタ)の振動量を保存する(ステップS2)。
【0063】
次に、フィルタ学習部136は、サーボ制御用フィルタテーブル137内に記憶されている前回測定時の振動量が小さいものから順にサーボ制御用フィルタの採用候補を並べ替える(ステップS3)。続いて、フィルタ学習部136は、サーボ制御用フィルタの切り替え時に更新する変数Xを0に設定した後(ステップS4)、サーボ制御用フィルタテーブル137内から振動量が最小のサーボ制御用フィルタを選択して切り替える(ステップS5)。そして、フィルタ学習部136は、切り替えられたサーボ制御用フィルタが安定化するのを待って(ステップS6)、振動量を取得し(ステップS7)、取得した振動量をサーボ制御用フィルタに対応付けてサーボ制御用フィルタテーブル137に保存する。
【0064】
振動量の取得後、フィルタ学習部136は、フィルタ学習開始からの経過時間がフィルタ学習処理を終了すべき制限時間に到達したか否かの判定を行う(ステップS8)。すなわち、サーボ制御用フィルタ切替後の振動量を取得して、サーボ制御用フィルタテーブル137に保存した後、学習開始時にスタートしたタイマーが制限時間に到達しているか否か(タイムオーバーか否か)を判定する。
【0065】
判定の結果、フィルタ学習開始からの経過時間がフィルタ学習処理を終了すべき制限時間に到達していない場合(タイムオーバーではない場合)には(ステップS8否定)、フィルタ学習部136は、変数Xを1インクリメントした後(ステップS9)、上述したステップS5〜ステップS7と同様の処理を実行する。すなわち、フィルタ学習部136は、タイマーが制限時間に到達するまで、前回測定時の振動量が小さいものから順にサーボ制御用フィルタを切り替え、振動量の取得および保存を繰り返し実行する。
【0066】
そして、フィルタ学習部136は、フィルタ学習開始からの経過時間がフィルタ学習処理を終了すべき制限時間に到達した場合(タイムオーバーである場合)には(ステップS8肯定)、制限時間内に測定されたサーボ制御用フィルタごとの振動量の中で、最小の振動量に対応するサーボ制御用フィルタを選択する(ステップS10)。そして、フィルタ学習部136は、選択されたサーボ制御用フィルタへの切り替えを行う。例えば、図4に示すように、制限時間内に測定された振動量25、15、30および35の中で、最小の振動量15に対応する候補2のサーボ制御用フィルタを選択して切り替える。そして、フィルタ学習部136による学習が終了すると、MUC130は、ライトもしくはリード処理に戻る。
【0067】
[学習内容リセット]
図12は、実施例1に係る学習内容のリセットを含む学習処理の流れを示す図である。フィルタ学習部136は、サーボ制御用フィルタの学習に伴って、所定の条件を満足する場合に、サーボ制御用フィルタテーブル137に保存された学習内容をリセットする。なお、図12に示す処理の流れは、図11に示す処理の流れと基本的には同様であるが、図11に示すステップS3およびステップS4が異なる。
【0068】
すなわち、図12に示すように、フィルタ学習部136は、サーボ制御用フィルタの学習指示を受け付けると、図11に示すステップS1およびS2と同様にして、学習時間を計測するためのタイマーをスタートさせて(ステップS1)、現状(現時点のサーボ制御用フィルタ)の振動量を保存する(ステップS2)。
【0069】
そして、フィルタ学習部136は、現状の振動量(現在使用中のサーボ制御用フィルタの振動量)から、前回の振動量(前回取得された同一のサーボ制御用フィルタの振動量)を減算した値を計算し、算出された振動量の差が予め設定されたリセット閾値を超えているか否かを判定する(ステップS3)。
【0070】
判定の結果、算出された振動量の差が予め設定されたリセット閾値を超えている場合には(ステップS3肯定)、フィルタ学習部136は、サーボ制御用フィルタテーブル137に保存された学習内容を、使用中以外のサーボ制御用フィルタについてリセットする(ステップS4)。具体的には、サーボ制御用フィルタテーブル137に保存されている振動量の情報を削除して、サーボ制御用フィルタの採用候補をデフォルトの状態に並び替える。
【0071】
サーボ制御用フィルタテーブル137に保存された学習内容をリセットした後、フィルタ学習部136は、図11に示すステップS3以降の処理と同様の処理を実行する。一方、判定の結果、算出された振動量の差が予め設定されたリセット閾値を超えていない場合には(ステップS3否定)、そのまま、図11に示すステップS3以降の処理と同様の処理を実行する。すなわち、フィルタ学習部136は、タイマーが制限時間に到達するまで(フィルタ学習開始からの経過時間がフィルタ学習処理を終了すべき制限時間に到達するまで)、サーボ制御用フィルタテーブル137に並べられた採用候補の上から順に選択する。そして、フィルタ学習部136は、切り替えたサーボ制御用フィルタの振動量の取得および保存を繰り返し実行する。
【0072】
[実施例1による効果]
上述してきたように、実施例1によれば、記録再生エラー発生時に、位置誤差信号を各サーボ制御用フィルタを通して得た制御電流を用いて位置決め制御を行ったときの記録再生ヘッドの現在位置から振動量を算出する学習を行う。そして、所定時間、複数のサーボ制御用フィルタのそれぞれに対して順番に学習を行い、測定した振動量が最小のサーボ制御用フィルタに位置誤差信号を通して得た制御電流を用いて、記録再生ヘッドの位置決め制御を行う。このようなことから、ホスト側への応答が遅くならないように性能に対する影響を考慮した制限時間内で、ヘッドの位置決め制御性能に対する振動の影響を抑制するために最適なサーボ制御用フィルタへの切替を実現できる(すなわち、様々な外乱に応じたがイラン圧縮特性となるようなサーボ制御用フィルタへの切替を実現できる)。
【0073】
また、実施例1によれば、所定の条件を満足する学習トリガーが発生した場合に、サーボ制御用フィルタの学習を実行するので、ヘッドの位置決め制御が完了するまでに時間を要することにより、ヘッドの位置決め制御に関する性能に対する悪影響を最小限にできる。
【0074】
また、実施例1によれば、振動量が小さいサーボ制御用フィルタから順に選択して学習を実行するので、ヘッドの位置決め制御性能に対する振動の影響を抑制するために最適なサーボ制御用フィルタへの切替を効率的に実現できる。
【0075】
また、実施例1によれば、現状の振動量と前回の振動量との差分が閾値を超えている場合には、学習内容をリセットするので、振動の性質の変化を考慮しつつ、最適なサーボ制御用フィルタへの切替を実現できる。
【実施例2】
【0076】
ハードディスク装置100の他の実施形態を説明する。
【0077】
(1)装置構成等
図3に示したハードディスク装置100が有するMCU130の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、MCU130の分散・統合の具体的形態は図示のものに限られず、例えば、振動量監視部134と、リトライ回数監視部135と、フィルタ学習部136とを統合するようにしてもよい。このように、MCU130の各構成要素の全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。さらに、ハードディスク装置100(特に、MCU130)にて行なわれる各処理機能(図9〜図12等参照)は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【0078】
(2)サーボ制御用フィルタ学習プログラム
また、上記の実施例1で説明したハードディスク装置100の各種の処理(例えば、図8〜図11等参照)は、あらかじめ用意されたプログラムをMCUやMPUなどのマイクロプロセッサで実行することによって実現することができる。そこで、以下では、図13を用いて、上記の実施例1と同様の機能を有するサーボ制御用フィルタ学習プログラムを実行するコンピュータの一例を説明する。図13は、サーボ制御用フィルタ学習プログラムを実行するコンピュータを示す図である。
【0079】
同図に示すように、例えば、MCUとしてコンピュータ200は、入力部210、出力部220、記憶用メモリ230、ワーク用メモリ240および制御部250をバス300で接続して構成される。
【0080】
ここで、入力部210は、ユーザから各種データの入力を受け付ける。出力部220は、各種情報を表示する。記憶用メモリ230は、制御部250による各種処理の実行に必要な情報を記憶する。ワーク用メモリ240は、各種情報を一時的に記憶する。制御部250は、各種演算処理を実行する。
【0081】
そして、記憶用メモリ230には、図13に示すように、上記の実施例1に示したハードディスク装置100が有するMCU130の各処理部と同様の機能を発揮するサーボ制御用フィルタ学習プログラム231と、サーボ制御用フィルタ学習用データ232とがあらかじめ記憶されている。なお、このサーボ制御用フィルタ学習プログラム231を適宜分散させて、ネットワークを介して通信可能に接続された他のコンピュータの記憶部に記憶させておくこともできる。
【0082】
そして、制御部250が、このサーボ制御用フィルタ学習プログラム231を記憶用メモリ230から読み出してワーク用メモリ240に展開することにより、図13に示すように、サーボ制御用フィルタ学習プログラム231はサーボ制御用フィルタ学習プロセス241として機能するようになる。すなわち、サーボ制御用フィルタ学習プロセス241は、サーボ制御用フィルタ学習用データ232等を記憶用メモリ230から読み出して、ワーク用メモリ240において自身に割り当てられた領域に展開し、この展開したデータ等に基づいて各種処理を実行する。
【0083】
なお、サーボ制御用フィルタ学習プロセス241は、図3に示したMCU130の各処理機能部の中で、特に、位置計算処理部131と、サーボ制御フィルタ計算部132と、振動量計算部133と、振動量監視部134と、リトライ回数監視部135と、フィルタ学習部136と、サーボ制御用フィルタテーブル137とにおいて実行される処理にそれぞれ対応する。
【0084】
なお、上記したサーボ制御用フィルタ学習プログラム231については、必ずしも最初から記憶用メモリ230に記憶させておく必要はなく、例えば、コンピュータ200に挿入されるフレキシブルディスク(FD)、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」、さらには、公衆回線、インターネット、LAN、WANなどを介してコンピュータ200に接続される「他のコンピュータ(またはサーバ)」などに各プログラムを記憶させておき、コンピュータ200がこれらから各プログラムを読み出して実行するようにしてもよい。
【図面の簡単な説明】
【0085】
【図1】実施例1に係るハードディスク装置を説明するための図である。
【図2】実施例1に係るハードディスク装置の構成を示す図である。
【図3】実施例1に係るMCUの構成を示す図である。
【図4】実施例1に係るサーボ制御用フィルタテーブルの構成例を示す図である。
【図5】実施例1に係るサーボ制御用フィルタテーブルの遷移を説明するための図である。
【図6】外乱圧縮特性の一例を示す図である。
【図7】サーボ制御用フィルタごとの外乱圧縮特性を示す図である。
【図8】割り込み処理の概略を示す図である。
【図9】実施例1に係る導入処理の流れを示す図である。
【図10】実施例1に係る学習トリガー検出の流れを示す図である。
【図11】実施例1に係るサーボ制御用フィルタの学習処理の流れを示す図である。
【図12】実施例1に係る学習内容のリセットを含む学習処理の流れを示す図である。
【図13】サーボ制御用フィルタ学習プログラムを実行するコンピュータを示す図である。
【符号の説明】
【0086】
100 ハードディスク装置
110 記録媒体
120 RDC
130 MCU
131 位置計算処理部
132 サーボ制御フィルタ計算部
133 振動量計算部
134 振動量監視部
135 リトライ回数監視部
136 フィルタ学習部
137 サーボ制御用フィルタテーブル
140 SVC
150 VCM
200 コンピュータ
210 入力部
220 出力部
230 記憶用メモリ
231 サーボ制御用フィルタ学習プログラム
232 サーボ制御用フィルタ学習用データ
240 ワーク用メモリ
241 サーボ制御用フィルタ学習プロセス
250 制御部
300 バス

【特許請求の範囲】
【請求項1】
記録媒体上にデータを記録し、記録媒体上からデータを再生する記録再生ヘッドと、
前記記録再生ヘッドの位置決めを行う位置決め制御部と、
前記記録媒体上のサーボ信号に基づき前記記録再生ヘッドの現在位置を検出する位置検出部と、
複数のサーボ制御フィルタが保存された記憶領域部と、
位置誤差信号を前記サーボ制御フィルタに通して得た制御電流を用いて、前記位置決め制御部により前記記録再生ヘッドの位置決め制御を行ったとき、前記位置検出部で検出される記録再生ヘッドの現在位置と、目標位置とから新たな位置誤差信号を生成する位置誤差検出部とを有し、
記録再生エラー発生時に、位置誤差信号を各サーボ制御フィルタを通して得た制御電流を用いて、前記位置決め制御部により前記記録再生ヘッドの位置決め制御を行ったとき、前記位置検出部で検出される前記記録再生ヘッドの現在位置から振動量を算出する学習を、所定時間、前記複数のサーボ制御フィルタのそれぞれに対して順番に行い、測定した振動量が最小のサーボ制御フィルタに位置誤差信号を通して得た制御電流を用いて、前記記録再生ヘッドの位置決め制御を行う情報記憶装置。
【請求項2】
前記複数のサーボ制御フィルタのそれぞれに対して算出した振動量は、各サーボ制御フィルタに対応して前記記憶領域部に保存され、
記録再生エラー発生時に、前記複数のサーボ制御フィルタのうち、各サーボ制御フィルタに対応して保存された振動量が少ないサーボ制御フィルタから順番に用いて振動量を算出する請求項1に記載の情報記憶装置。
【請求項3】
サーボ制御フィルタに対応して前記記憶領域部に保存された振動量と、記録再生エラー発生時に算出された振動量の差が所定値以上の場合に、前記記憶領域部に保存された各サーボ制御ファイルに対応する振動量を初期化する請求項2に記載の情報記憶装置。
【請求項4】
記録再生エラーの発生に伴って実行されるリトライ中に、サーボ制御フィルタに対して算出した振動量が所定値を超えた場合に、前記学習を行う請求項1から請求項3のいずれか一つに記載の情報記憶装置。
【請求項5】
リトライレートが所定値を超えた場合に、前記学習を行う請求項1から請求項3のいずれか一つに記載の情報記憶装置。
【請求項6】
記録再生エラー発生時に、記憶領域部から複数のサーボ制御フィルタを読込み、位置誤差信号を各サーボ制御フィルタを通して得た制御電流を用いて、前記位置決め制御部により前記記録再生ヘッドの位置決め制御を行ったときの前記記録再生ヘッドの現在位置から振動量を算出する学習を、所定時間、複数のサーボ制御フィルタのそれぞれに対して順番に行う学習実行手順と、
前記学習実行手順により測定された振動量が最小のサーボ制御フィルタに位置誤差信号を通して得た制御電流を用いて、前記位置決め制御部により前記記録再生ヘッドの位置決め制御を行ったときの前記記録再生ヘッドの現在位置と、目標位置とから新たな位置誤差信号を生成する位置誤差検出手順と、
をコンピュータに実行させるサーボ制御用フィルタ学習プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate


【公開番号】特開2010−123227(P2010−123227A)
【公開日】平成22年6月3日(2010.6.3)
【国際特許分類】
【出願番号】特願2008−298588(P2008−298588)
【出願日】平成20年11月21日(2008.11.21)
【出願人】(309033264)東芝ストレージデバイス株式会社 (255)
【Fターム(参考)】