(57)【要約】【課題】  正確にデータの書き込み／読み出しを行うことができるデータ記憶装置及びその制御方法を提供すること。【解決手段】  本発明の一形態であるデータ記憶装置は、サーボデータに基づいて、ヘッドの位置を制御するサーボ制御データを生成するサーボ制御部４６と、振動を検出するセンサ３１と、振動によって生じるヘッドの位置ずれを補正する補正データを生成する補正データ生成部４４と、サーボ制御データに基づいてヘッドを移動させる駆動信号を生成する駆動信号生成部４５と、センサで検出された振動の大きさを示すセンサ出力値を複数使用して振動のレベルを評価する評価値を算出する演算処理部４２と、評価値に応じて補正データによる補正を行う否かを判定する判定処理部４３と、補正データによりサーボ制御データを補正して駆動信号を生成する駆動信号生成部４５と備えるものである。【選択図】  図３
2006221733.tif 000002
【特許請求の範囲】
【請求項１】
記憶媒体と、前記記憶媒体に対してのデータ書き込み及び／又は前記記憶媒体からのデータ読み出しを行うヘッドとを備えたデータ記憶装置であって、
前記記憶媒体に記憶されたサーボデータに基づいて、前記ヘッドの位置を制御するサーボ制御データを生成するサーボ制御部と、
前記サーボ制御データに基づいて前記ヘッドを移動させるための駆動信号を生成する駆動信号生成部と、
振動を検出するセンサと、
前記センサからの出力に基づいて、振動によって生じる前記ヘッドの位置ずれを補正する補正データを生成する前記補正データ生成部と、
前記センサで検出された振動の大きさを示すセンサ出力値を複数使用して前記データ記憶装置が受ける振動のレベルを評価する評価値を算出する演算処理部と、
前記算出された評価値に応じて補正を行うか否かを判定する判定処理部と、
前記判定処理部により前記補正を行うと判定された場合に、前記補正データにより前記サーボ制御データを補正して前記駆動信号を生成する駆動信号生成部とを備えたデータ記憶装置。
【請求項２】
前記データ記憶装置の電源が投入されたタイミングで前記評価値を算出し、かつ前記算出された評価値に応じて補正を行うか否かの判定を行なう請求項１に記載のデータ記憶装置。
【請求項３】
前記評価値の履歴を記録する履歴記録部をさらに備え、
前記電源を投入するタイミングにおいて、前記評価値の履歴に記録された前記評価値に基づいて、評価値を算出する請求項２に記載のデータ記録装置。
【請求項４】
前記データ記憶装置の電源を投入したタイミングから、前記データの書き込み／読み出しが可能になるタイミングまでに前記補正を行うか否かを判定する請求項２に記載のデータ記憶装置。
【請求項５】
前記ヘッドが駆動可能な動作モードにおいて、前記演算処理部が現在の評価値と前記センサ出力値とに基づいて前記評価値を更新し、
前記評価値の算出に用いられる前記センサ出力値の数が、前記評価値の更新に用いられるセンサ出力値の数よりも多い請求項２に記載のデータ記憶装置。
【請求項６】
前記データ記憶装置の動作モードが前記ヘッドが停止しているモードから、前記ヘッドが駆動可能なモードへ遷移するタイミングで、前記センサ出力値に基づいて前記評価値を算出する請求項１に記載のデータ記憶装置。
【請求項７】
前記データの書き込み及び／又は読み出しを行わない省電力モードから前記ヘッドが駆動可能なモードへ遷移するタイミング、前記記憶媒体が停止している状態から前記記憶媒体が回転するタイミング、前記ヘッドがランプへ退避させている状態から復帰するタイミング及び前記ヘッドが前記記憶媒体上にパーキングしている状態から復帰するタイミングの少なくともいずれか一つのタイミングで前記センサ出力値に基づいて前記評価値を算出する請求項６に記載のデータ記憶装置。
【請求項８】
前記評価値が前記センサ出力値の積分に基づいた値である請求項１に記載のデータ記憶装置。
【請求項９】
記憶媒体と、前記記憶媒体に対してのデータ書き込み及び／又は前記記憶媒体からのデータ読み出しを行うヘッドとを備えたデータ記憶装置であって、
前記記憶媒体に記憶されたサーボデータに基づいて、前記ヘッドの位置を制御するサーボ制御データを生成するサーボ制御部と、
前記サーボ制御データに基づいて前記ヘッドを移動させるための駆動信号を生成する駆動信号生成部と、
振動を検出するセンサと、
前記センサからの出力に基づいて、振動によって生じる前記ヘッドの位置ずれを補正する補正データを生成する前記補正データ生成部と、
前記データ記憶装置が受ける振動のレベルを評価する評価値の履歴を記録する履歴記録部と、
前記データ記憶装置の電源が投入されたタイミングで、前記センサで検出された振動の大きさを示すセンサ出力値と前記データ記憶装置の電源が投入される前に前記履歴記録部に記録された履歴とに基づいて前記データ記憶装置が受ける振動のレベルを評価する評価値を算出する演算処理部と、
前記算出された評価値に応じて補正を行うか否かを判定する判定処理部と、
前記判定処理部により前記補正を行うと判定された場合に、前記補正データにより前記サーボ制御データを補正して前記駆動信号を生成する駆動信号生成部とを備えたデータ記録装置。
【請求項１０】
前記履歴記録部に記録された履歴に基づいて、前記演算処理部で算出された評価値が適当な値か否かを判定し、前記適当な値でないと判定した場合に、デフォルト値を評価値として設定する請求項９に記載のデータ記憶装置。
【請求項１１】
サーボデータが記憶された記憶媒体と、前記記憶媒体に対してのデータ書き込み及び／又は前記記憶媒体からのデータ読み出しを行うヘッドとを備え、前記サーボデータに基づいて前記ヘッドの位置を制御するサーボ制御データによりを生成し、前記サーボ制御データに基づいて生成される駆動信号により前記ヘッドが移動するデータ記憶装置の制御方法であって、
センサにより前記データ記憶装置の振動を検出し、
前記センサの出力に基づいて前記振動による前記ヘッドの位置ずれを補正する補正データを生成し、
前記センサで検出された振動の大きさを示すセンサ出力値を複数使用して前記データ記憶装置の振動のレベルを評価する評価値を算出し、
前記評価値に応じて、前記補正データにより前記サーボ制御データを補正するか否かを判定し、
前記補正を行うと判定された場合に、前記補正データにより前記サーボ制御データを補正して前記駆動信号を生成する制御方法。
【請求項１２】
前記データ記憶装置の電源が投入されたタイミングで、前記評価値を算出し、前記算出された評価値に基づいて前記補正を行うか否かが判定される請求項１１に記載の制御方法。
【請求項１３】
前記データ記録装置に電源を投入するタイミングにおいて、前記電源を投入する前の前記評価値の履歴に基づいて、評価値を算出する請求項１２に記載の制御方法。
【請求項１４】
前記データ記憶装置の電源を投入したタイミングから、前記データの書き込み／読み出しが可能になるタイミングまでに前記補正を行うか否かを判定する請求項１２に記載の制御方法。
【請求項１５】
前記ヘッドが駆動可能な動作モードにおいて、現在の評価値と前記センサ出力値に基づいて前記評価値を更新し、
前記評価値の算出に用いられる前記センサ出力値の数が、前記評価値の更新に用いられるセンサ出力値の数よりも多い請求項１２に記載の制御方法。
【請求項１６】
前記データ記憶装置の動作モードが前記ヘッドが停止している動作モードから、前記ヘッドが駆動可能な動作モードへ遷移するタイミングで、前記センサ出力値に基づいて前記評価値を算出する請求項１１に記載の制御方法。
【請求項１７】
前記データの書き込み及び／又は読み出しを行わない省電力モードから前記ヘッドが駆動可能なモードへ遷移するタイミング、前記記憶媒体が停止している状態から前記記憶媒体が回転するタイミング、前記ヘッドがランプへ退避させている状態から復帰するタイミング及び前記ヘッドが前記記憶媒体上にパーキングしている状態から復帰するタイミングの少なくともいずれか一つのタイミングで前記センサ出力値に基づいて前記評価値を算出する請求項１６に記載の制御方法。
【請求項１８】
前記評価値が前記センサ出力値の積分に基づいた値である請求項１１に記載の制御方法。
【請求項１９】
サーボデータが記憶された記憶媒体と、前記記憶媒体に対してのデータ書き込み及び／又は前記記憶媒体からのデータ読み出しを行うヘッドとを備え、前記サーボデータに基づいて前記ヘッドの位置を制御するサーボ制御データによりを生成し、前記サーボ制御データに基づいて生成される駆動信号により前記ヘッドが移動するデータ記憶装置の制御方法であって、
電源が投入されたタイミングで、
センサにより前記データ記憶装置の振動を検出し、
前記センサの出力に基づいて前記振動による前記ヘッドの位置ずれを補正する補正データを生成し、
前記電源が投入される前に記録された前記データ記録装置の振動のレベルを評価する評価値の履歴と、前記センサで検出された振動の大きさを示すセンサ出力値とに基づいて、前記電源が投入された後の前記評価値を算出し、
前記評価値に応じて、前記補正データにより前記サーボ制御データを補正するか否かを判定し、
前記補正を行うと判定された場合に、前記補正データにより前記サーボ制御データを補正して前記駆動信号を生成する制御方法。
【請求項２０】
前記評価値の履歴に基づいて、前記演算処理部で算出された評価値が適当な値か否かを判定し、前記適当な値でないと判定した場合に、デフォルト値を評価値として設定する請求項１９に記載の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ記憶装置及びその制御方法に関し、特に詳しくはセンサにより検出された振動を補正してヘッドを移動させるデータ記憶装置及びその制御方法に関する。
【背景技術】
【０００２】
情報記憶再生装置として、光ディスクや磁気テープなどの様々な態様のメディアを使用する装置が知られている。その中で、ハード・ディスク・ドライブは、コンピュータの記憶装置として広く普及し、現在のコンピュータ・システムにおいて欠かすことができない記憶装置の一つとなっている。さらに、コンピュータにとどまらず、動画像記録再生装置、カーナビゲーション・システム、あるいはデジタル・カメラなどで使用されるリムーバブルメモリなど、ハード・ディスク・ドライブの用途は、その優れた特性により益々拡大している。
【０００３】
ハード・ディスク・ドライブ（ＨＤＤ）で使用される磁気ディスクは、同心円状に形成された複数のトラックを有しており、各トラックは複数のセクタに区分されている。各セクタにはサーボ・データとユーザ・データとが記憶される。サーボ・データには各セクタのアドレス情報やバースト信号が含まれる。ヘッド素子部がセクタのアドレス情報に従って所望のセクタにアクセスすることによって、セクタへのデータ書き込みあるいはセクタからのデータ読み出しを行うことができる。すなわち、ＨＤＤでは、ボイスコイルモータ（ＶＣＭ）に供給する電流を制御することによって、ヘッド素子部を磁気ディスクの所望のトラックへ移動することができる。さらにヘッド素子部はバースト信号にしたがってトラック中心に追従しながら、データの読み出し又は書き込みを行う。
【０００４】
ＨＤＤでは、外部から振動を受けたときに、ヘッド素子部がトラック中心からずれてしまうというオフトラックの問題を解決するための様々な方法が開発されている。例えば、オフトラックが生じると書き込み時において、異なるトラック以外のトラックのデータを書き換えてしまうことがある。この問題を解決するために、振動や衝撃を検出する加速度センサをＨＤＤに設ける方法がある。この方法では加速度センサが振動や衝撃を検出したときに書き込みを中断している。しかしながら、この方法では、ＨＤＤのパフォーマンスが低下してしまう。
【０００５】
また、サーボループに加速度センサからの補正情報を加えるデータ記憶装置及びオフトラック制御方法が開示されている（例えば、特許文献１）。この方法では、ヘッド位置の誤差を示す信号を入力し、この信号によってヘッド位置を適宜修正するように、ＶＣＭに供給する電流を制御している。さらに、この方法では、所定のタイミングで、サーボループへの補正信号の注入を停止している。
【特許文献１】特開２００３−３４６４３９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、この方法では、誤った位置にヘッド位置が移動してしまう場合があった。例えば、振動が発生していないときでも、センサからの出力信号にノイズが載ってしまうと、そのノイズが載った信号に基づいて補正を行ってしまう。したがって、誤った位置にヘッド位置が移動してしまう場合があった。この場合、正確にデータの書き込み／読み出しを行うことができず、ＨＤＤのパフォーマンスが低下してしまう。このように、振動を検出するためのセンサを設けた従来のＨＤＤでは、正確にデータの書き込み／読み出しを行うことができない場合があるといった問題点があった。
【０００７】
本発明は上記のような事情を背景としてなされたものであって、本発明の目的は、正確にデータの書き込み／読み出しを行うことができるデータ記憶装置及びその制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の第１の態様にかかるデータ記憶装置は、記憶媒体と、前記記憶媒体に対してのデータ書き込み及び／又は前記記憶媒体からのデータ読み出しを行うヘッドとを備えたデータ記憶装置であって、前記記憶媒体に記憶されたサーボデータに基づいて、前記ヘッドの位置を制御するサーボ制御データを生成するサーボ制御部と、前記サーボ制御データに基づいて前記ヘッドを移動させるための駆動信号を生成する駆動信号生成部と、振動を検出するセンサと、前記センサからの出力に基づいて、振動によって生じる前記ヘッドの位置ずれを補正する補正データを生成する前記補正データ生成部と、前記センサで検出された振動の大きさを示すセンサ出力値を複数使用して前記データ記憶装置が受ける振動のレベルを評価する評価値を算出する演算処理部と、前記算出された評価値に応じて補正を行うか否かを判定する判定処理部と、前記判定処理部により前記補正を行うと判定された場合に、前記補正データにより前記サーボ制御データを補正して前記駆動信号を生成する駆動信号生成部とを備えたものである。これにより、位置ずれ補正処理を行なうか否かが急激に切り替わるのを防ぐことができ、正確にデータの書き込み／読み出しを行うことができる。
【０００９】
本発明の第２の態様にかかるデータ記憶装置は、上述のデータ記憶装置において、前記データ記憶装置の電源が投入されたタイミングで前記評価値を算出し、かつ前記算出された評価値に応じて補正を行うか否かの判定を行なうものである。これにより、データ記憶装置の起動をスムーズに行なうことができる。
【００１０】
本発明の第３の態様にかかるデータ記憶装置は、上述のデータ記憶装置において、前記評価値の履歴を記録する履歴記録部をさらに備え、前記電源を投入するタイミングにおいて、前記評価値の履歴に記録された前記評価値に基づいて、評価値を算出するものである。これにより、評価値を速く収束させることが可能になるため、データ記憶装置の起動をスムーズに行なうことができる。
【００１１】
本発明の第４の態様にかかるデータ記憶装置は、上述のデータ記憶装置において、前記データ記憶装置の電源を投入したタイミングから、前記データの書き込み／読み出しが可能になるタイミングまでに前記補正を行うか否かを判定するものである。これにより、データ記憶装置の起動をよりスムーズに行なうことができる。
【００１２】
本発明の第５の態様にかかるデータ記憶装置は、上述のデータ記憶装置において、前記ヘッドが駆動可能な動作モードにおいて、前記演算処理部が現在の評価値と前記センサ出力値に基づいて前記評価値を更新し、前記評価値の算出に用いられる前記センサ出力値の数が、前記評価値の更新に用いられるセンサ出力値の数よりも多いものである。これにより、データ記憶装置の起動時において、評価値を速く収束させることができる。よって、データ記憶装置の起動をスムーズに行なうことができる。
【００１３】
本発明の第６の態様にかかるデータ記憶装置は、上述のデータ記憶装置において、前記データ記憶装置の動作モードが前記ヘッドが停止しているモードから、前記ヘッドが駆動可能なモードへ遷移するタイミングで、前記センサ出力値に基づいて前記評価値を算出するものである。これにより、ヘッドが駆動可能なモードとなるまでの間に長時間経過していた場合であって、振動のレベルを正確に評価することができる。よって、正確にデータの書き込み／読み出しを行うことができる。
【００１４】
本発明の第７の態様にかかるデータ記憶装置は、上述のデータ記憶装置において、前記データの書き込み及び／又は読み出しを行わない省電力モードから前記ヘッドが駆動可能なモードへ遷移するタイミング、前記記憶媒体が停止している状態から前記記憶媒体が回転するタイミング、前記ヘッドがランプへ退避させている状態から復帰するタイミング及び前記ヘッドが前記記憶媒体上にパーキングしている状態から復帰するタイミングの少なくともいずれか一つのタイミングで前記センサ出力値に基づいて前記評価値を算出するものである。これにより、モード遷移をスムーズに行なうことができる。また、省電力モードからの復帰時において、正確にデータの書き込み／読み出しを行うことができる。あるいは、評価値に対する記憶媒体の回転動作の影響を低減することができるため、正確に振動レベルを評価することができる。さらに、長時間、記憶媒体が停止していた場合であっても、記憶媒体の回転が開始するタイミングで評価値を算出しているため、より正確に振動レベルの変化を評価することができる。あるいは、ヘッドの復帰時において、正確にデータの書き込み／読み出しを行うことができる。さらに、ヘッドが停止しているときのセンサ出力値に基づいて評価値を算出しているため、評価値に対するヘッドの移動による影響を低減することができる。
【００１５】
本発明の第８の態様にかかるデータ記憶装置は、上述のデータ記憶装置において、前記評価値が前記センサ出力値の積分に基づいた値であるものである。これにより、より正確に振動レベルを評価することができる。
【００１６】
本発明の第９の態様にかかるデータ記憶装置は、記憶媒体と、前記記憶媒体に対してのデータ書き込み及び／又は前記記憶媒体からのデータ読み出しを行うヘッドとを備えたデータ記憶装置であって、前記記憶媒体に記憶されたサーボデータに基づいて、前記ヘッドの位置を制御するサーボ制御データを生成するサーボ制御部と、前記サーボ制御データに基づいて前記ヘッドが移動するための駆動信号を生成する駆動信号生成部と、振動を検出するセンサと、前記センサからの出力に基づいて、振動によって生じる前記ヘッドの位置ずれを補正する補正データを生成する前記補正データ生成部と、前記データ記憶装置が受ける振動のレベルを評価する評価値の履歴を記録する履歴記録部と、前記データ記憶装置の電源が投入されたタイミングで、前記センサで検出された振動の大きさを示すセンサ出力値と前記データ記憶装置の電源が投入される前に前記履歴記録部に記録された履歴とに基づいて前記データ記憶装置が受ける振動のレベルを評価する評価値を算出する演算処理部と、前記算出された評価値に応じて補正を行うか否かを判定する判定処理部と、前記判定処理部により前記補正を行うと判定された場合に、前記補正データにより前記サーボ制御データを補正して前記駆動信号を生成する駆動信号生成部とを備えたものである。これにより、評価値を速く収束させることが可能になるため、正確にデータの書き込み／読み出しを行うことができる。
【００１７】
本発明の第１０の態様にかかるデータ記憶装置は、上述のデータ記憶装置において前記履歴記録部に記録された履歴に基づいて、前記演算処理部で算出された評価値が適当な値か否かを判定し、前記適当な値でないと判定した場合に、デフォルト値を評価値として設定するものである。これにより、評価値を速く収束させることが可能になるため、正確にデータの書き込み／読み出しを行うことができる。
【００１８】
本発明の第１１の態様にかかるデータ記憶装置の制御方法は、サーボデータが記憶された記憶媒体と、前記記憶媒体に対してのデータ書き込み及び／又は前記記憶媒体からのデータ読み出しを行うヘッドとを備え、前記サーボデータに基づいて前記ヘッドの位置を制御するサーボ制御データによりを生成し、前記サーボ制御データに基づいて生成される駆動信号により前記ヘッドが移動するデータ記憶装置の制御方法であって、センサにより前記データ記憶装置の振動を検出し、前記センサの出力に基づいて前記振動による前記ヘッドの位置ずれを補正する補正データを生成し、前記センサで検出された振動の大きさを示すセンサ出力値を複数使用して前記データ記憶装置の振動のレベルを評価する評価値を算出し、前記評価値に応じて、前記補正データにより前記サーボ制御データを補正するか否かを判定し、前記補正を行うと判定された場合に、前記補正データにより前記サーボ制御データを補正して前記駆動信号を生成するものである。これにより、位置ずれ補正処理を行なうか否かが急激に切り替わるのを防ぐことができ、正確にデータの書き込み／読み出しを行うことができる。
【００１９】
本発明の第１２の態様にかかる制御方法は、上述の制御方法において、前記データ記憶装置の電源が投入されたタイミングで、前記評価値を算出し、前記算出された評価値に基づいて前記補正を行うか否かが判定されるものである。これにより、データ記憶装置の起動をスムーズに行なうことができる。
【００２０】
本発明の第１３の態様にかかる制御方法は、上述の制御方法において、前記データ記録装置に電源を投入するタイミングにおいて、前記電源を投入する前の前記評価値の履歴に基づいて、評価値を算出するものである。これにより、評価値を速く収束させることが可能になるため、データ記憶装置の起動をスムーズに行なうことができる。
【００２１】
本発明の第１４の態様にかかる制御方法は、上述の制御方法において、前記データ記憶装置の電源を投入したタイミングから、前記データの記憶／読み出しが可能になるタイミングまでに前記補正を行うか否かを判定するものである。これにより、データ記憶装置の起動をスムーズに行なうことができる。
【００２２】
本発明の第１５の態様にかかる制御方法は、上述の制御方法において、前記ヘッドが駆動可能な動作モードにおいて、現在の評価値と前記センサ出力値に基づいて前記評価値を更新し、前記評価値の算出に用いられる前記センサ出力値の数が、前記評価値の更新に用いられるセンサ出力値の数よりも多いものである。これにより、データ記憶装置の起動時において、評価値を速く収束させることができ、データ記憶装置の起動をスムーズに行なうことができる。
【００２３】
本発明の第１６の態様にかかる制御方法は、上述の制御方法において、前記データ記憶装置の動作モードが前記ヘッドが停止している動作モードから、前記ヘッドが駆動可能な動作モードへ遷移するタイミングで、前記センサ出力値に基づいて前記評価値を算出するものである。これにより、ヘッドが駆動可能なモードとなるまでの間に長時間経過していた場合であって、振動のレベルの変化を正確に評価することができる。よって、正確にデータの書き込み／読み出しを行うことができる。
【００２４】
本発明の第１７の態様にかかる制御方法は、上述の制御方法において、前記データの書き込み及び／又は読み出しを行わない省電力モードから前記ヘッドが駆動可能なモードへ遷移するタイミング、前記記憶媒体が停止している状態から前記記憶媒体が回転するタイミング、前記ヘッドがランプへ退避させている状態から復帰するタイミング及び前記ヘッドが前記記憶媒体上にパーキングしている状態から復帰するタイミングの少なくともいずれか一つのタイミングで前記センサ出力値に基づいて前記評価値を算出するものである。これにより、モード遷移をスムーズに行なうことができる。また、省電力モードからの復帰時において、正確にデータの書き込み／読み出しを行うことができる。あるいは、評価値に対する記憶媒体の回転動作の影響を低減することができるため、正確に振動レベルを評価することができる。さらに、長時間、記憶媒体が停止していた場合であっても、記憶媒体の回転が開始するタイミングで評価値を算出しているため、より正確に振動レベルの変化を評価することができる。あるいは、ヘッドの復帰時において、正確にデータの書き込み／読み出しを行うことができる。さらに、ヘッドが停止しているときのセンサ出力値に基づいて評価値を算出しているため、評価値に対するヘッドの移動による影響を低減することができる。
【００２５】
本発明の第１８の態様にかかる制御方法は、上述の制御方法において、前記評価値が前記センサ出力値の積分に基づいた値であるするものである。これにより、より正確に振動レベルを評価することができる。
【００２６】
本発明の第１９の態様にかかる制御方法は、上述の制御方法において、サーボデータが記憶された記憶媒体と、前記記憶媒体に対してのデータ書き込み及び／又は前記記憶媒体からのデータ読み出しを行うヘッドとを備え、前記サーボデータに基づいて前記ヘッドの位置を制御するサーボ制御データによりを生成し、前記サーボ制御データに基づいて生成される駆動信号により前記ヘッドが移動するデータ記憶装置の制御方法であって、電源が投入されたタイミングで、センサにより前記データ記憶装置の振動を検出し、前記センサの出力に基づいて前記振動による前記ヘッドの位置ずれを補正する補正データを生成し、前記電源が投入される前に記録された前記データ記録装置の振動のレベルを評価する評価値の履歴と、前記センサで検出された振動の大きさを示すセンサ出力値とに基づいて、前記電源が投入された後の前記評価値を算出し、前記評価値に応じて、前記補正データにより前記サーボ制御データを補正するか否かを判定し、前記補正を行うと判定された場合に、前記補正データにより前記サーボ制御データを補正して前記駆動信号を生成するものである。これにより、評価値を速く収束させることが可能になるため、正確にデータの書き込み／読み出しを行うことができる。
【００２７】
本発明の第２０の態様にかかる制御方法は、上述の制御方法において、前記評価値の履歴に基づいて、前記演算処理部で算出された評価値が適当な値か否かを判定し、前記適当な値でないと判定した場合に、デフォルト値を評価値として設定するものである。これにより、評価値を速く収束させることが可能になるため、正確にデータの書き込み／読み出しを行うことができる。
【発明の効果】
【００２８】
本発明によれば正確にデータの書き込み／読み出しを行うことができるデータ記憶装置及びその制御方法を提供することができる。
【発明を実施するための最良の形態】
【００２９】
以下に、本発明を適用可能な実施の形態が説明される。説明の明確化のため、以下の記載及び図面は、適宜、省略及び簡略化がなされている。又、当業者であれば、以下の実施形態の各要素を、本発明の範囲において容易に変更、追加、変換することが可能である。尚、各図面において、同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略されている。
発明の実施の形態１．
【００３０】
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。本発明の理解の容易のため、最初に、記憶メディア・ドライブの一例であるハード・ディスク・ドライブ（ＨＤＤ）の全体構成の概略を説明する。図１は、本実施の形態にかかるＨＤＤ１の概略構成を示すブロック図である。図１に示すように、ＨＤＤ１は、密閉されたエンクロージャ１０内に、記憶メディアの一例である磁気ディスク１１、ヘッドの一例であるヘッド素子部１２、アーム電子回路（アームエレクトロニクス：ＡＥ）１３、スピンドル・モータ（ＳＰＭ）１４、ボイス・コイル・モータ（ＶＣＭ）１５を備えている。
【００３１】
又、ＨＤＤ１は、エンクロージャ１０の外側に固定された回路基板２０を備えている。回路基板２０上には、リード・ライト・チャネル（Ｒ／Ｗチャネル）２１、モータ・ドライバ・ユニット２２、ハードディスク・コントローラ（ＨＤＣ）／ＭＰＵ集積回路（以下ＨＤＣ／ＭＰＵ）２３、及びメモリの一例としてのＲＡＭ２４などの各ＩＣを備えている。さらに、回路基板２０には振動を検出するセンサ３１とセンサ３１からの出力をＡ／Ｄ変換するＡＤＣ３２が設けられている。尚、各回路構成は一つのＩＣに集積すること、あるいは、複数のＩＣに分けて実装することができる。
【００３２】
外部ホスト５１からの書き込みデータは、ＨＤＣ／ＭＰＵ２３によって受信され、Ｒ／Ｗチャネル２１、ＡＥ１３を介して、ヘッド素子部１２によって磁気ディスク１１に書き込まれる。また、磁気ディスク１１に記憶されているデータは、ヘッド素子部１２によって読み出され、読み出しデータは、ＡＥ１３、Ｒ／Ｗチャネル２１を介して、ＨＤＣ／ＭＰＵ２３から外部ホスト５１に出力される。
【００３３】
次に、ＨＤＤ１の各構成要素について説明する。まず、図２を参照して、磁気ディスク１１及びヘッド素子部１２の駆動機構の概略を説明する。磁気ディスク１１は、ＳＰＭ１４のハブに固定されている。ＳＰＭ１４は所定の速度で磁気ディスク１１を回転する。ＨＤＣ／ＭＰＵ２３からの駆動信号に従って、モータ・ドライバ・ユニット２２がＳＰＭ１４を駆動する。本例の磁気ディスク１１は、データを記録する記録面を両面に備え、各記録面に対応するヘッド素子部１２（図２において不図示）が設けられている。
【００３４】
各ヘッド素子部１２はスライダ１６に固定されている。また、スライダ１６は、キャリッジ１７に固定されている。キャリッジ１７はＶＣＭ１１５に固定され、ＶＣＭ１１５が揺動することによって、スライダ１６及びヘッド素子部１２を移動する。モータ・ドライバ・ユニット２２は、ＨＤＣ／ＭＰＵ２３からの駆動信号に従って、ＶＣＭ１５を駆動する。この駆動信号によってＶＣＭ１５を含むアクチュエータが駆動して、ヘッド素子部１２の位置が変化する。
【００３５】
磁気ディスク１１からのデータの読み取り／書き込みのため、キャリッジ１７は回転している磁気ディスク１１表面のデータ領域上にスライダ１６及ヘッド素子部１２を移動する。キャリッジ１７が揺動することによって、スライダ１６及ヘッド素子部１２が磁気ディスク１１の表面の半径方向に沿って移動する。これによって、ヘッド素子部１２が所望の領域にアクセスすることができる。
【００３６】
磁気ディスク１１に対向するスライダ１６のＡＢＳ（Air Bearing Surface）面と回転している磁気ディスク１１との間の空気の粘性による圧力が、キャリッジ１７によって磁気ディスク１１方向に加えられる力とバランスすることによって、スライダ１６及びそれに固定されたヘッド素子部１２は、磁気ディスク１１上を一定のギャップを置いて浮上する。ヘッド素子部１２には、典型的には、磁気ディスク１１への記憶データに応じて電気信号を磁界に変換する記録ヘッド、及び磁気ディスク１１からの磁界を電気信号に変換する再生ヘッドが一体的に形成されている。なお、磁気ディスク１１は、１枚以上あればよく、記録面は、磁気ディスク１１の片面あるいは両面に形成することができる。
【００３７】
続いて、図１に戻って、各回路部の説明を行う。ＡＥ１３は、複数のヘッド素子部１２の中からデータ・アクセスが行われる１つのヘッド素子部１２を選択し、選択されたヘッド素子部１２により再生される再生信号を一定のゲインで増幅（プリアンプ）し、Ｒ／Ｗチャネル２１に送る。また、Ｒ／Ｗチャネル２１からの記録信号を選択されたヘッド素子部１２に送る。
【００３８】
Ｒ／Ｗチャネル２１は、ホスト５１から転送されたデータについて、ライト処理を実行する。ライト処理において、Ｒ／Ｗチャネル２１はＨＤＣ／ＭＰＵ２３から供給されたライト・データをコード変調し、更にコード変調されたライト・データをライト信号（電流）に変換してＡＥ１３に供給する。また、ホスト５１にデータを供給する際にはリード処理を行う。リード処理において、Ｒ／Ｗチャネル２１はＡＥ１３から供給されたリード信号を一定の振幅となるように増幅し、取得したリード信号からデータを抽出し、デコード処理を行う。読み出されるデータは、ユーザ・データとサーボ・データを含む。デコード処理されたリード・データは、ＨＤＣ／ＭＰＵ２３に供給される。
【００３９】
ＨＤＣ／ＭＰＵ２３は、ＭＰＵとＨＤＣが一つのチップに集積された回路である。ＭＰＵは、ＲＡＭ２４にロードされたマイクロ・コードに従って動作する。ＨＤＤ１の起動に伴い、ＲＡＭ２４には、ＭＰＵ上で動作するマイクロ・コードの他、制御及びデータ処理に必要とされるデータが磁気ディスク１１あるいはＲＯＭ（不図示）からロードされる。ＨＤＣ／ＭＰＵ２３は、ヘッド素子部１２のポジショニング制御、インターフェース制御、ディフェクト管理などのデータ処理に関する必要な処理の他、ＨＤＤ１の全体制御を実行する。
【００４０】
ＨＤＣ／ＭＰＵ２３は、ホスト５１との間のインターフェース機能を備えており。ホスト５１から伝送されたユーザ・データ及びリード・コマンドやライト・コマンドといったコマンドなどを受信する。受信したユーザ・データは、Ｒ／Ｗチャネル２１に転送される。また、Ｒ／Ｗチャネル２１から取得した磁気ディスクからの読み出しデータを、ホスト５１に伝送する。更に、ＨＤＣ／ＭＰＵ１２３は、ホスト５１から取得した、あるいは、磁気ディスク１１から読み出したユーザ・データについて、誤り訂正（ＥＣＣ）のための処理を実行する。本形態のＨＤＤ１は、ホスト５１との間において、シリアル又はパラレル通信によってデータ（コマンド、ユーザ・データ及び制御データを含む）の送受信を行う。
【００４１】
Ｒ／Ｗチャネル２１によって読み出されるデータは、ユーザ・データの他に、サーボ・データを含んでいる。サーボ・データには各セクタのアドレスを示すアドレス情報とバースト信号が含まれる。ＨＤＣ／ＭＰＵ２３は、サーボ・データを使用したヘッド素子部１２の位置決め制御を行う。すなわち、ＨＤＣ／ＭＰＵ２３は、リード又はライトのコマンドが外部ホスト５１からあったとき、サーボ・データのアドレス情報に基づいてヘッド素子部１２を所望のトラック上に移動させる。そして、サーボ・データに含まれるバースト信号に基づいて、ヘッド素子部１２がトラック中心に追従する。ＨＤＣ／ＭＰＵ２３はサーボ・データに基づいてモータ・ドライバ・ユニット２２を駆動するための駆動信号を生成する。ＨＤＣ／ＭＰＵ２３からの駆動信号はモータ・ドライバ・ユニット２２に出力される。モータ・ドライバ・ユニット２２は駆動信号に応じた駆動電流をＶＣＭ１５に供給する。また、ＨＤＣ／ＭＰＵ２３は、サーボ・データを使用して、データのリード／ライト処理の制御を行う。
【００４２】
さらに、回路基板２０にはセンサ３１が取り付けられている。センサ３１は例えば、加速度センサなどであり、ＨＤＤ１に加わった振動を検出する。具体的には、センサ３１がＨＤＤ１の回路基板２０に生じた加速度を検知して、振動を検出する。ＨＤＤ１に加わる振動としては、例えば、内蔵するＳＰＭが回転することによって発生よるもの、アクチュエータのシーク動作によって発生するもの、ディスクアレイシステムのような複数のＨＤＤが隣接して配置されるシステムにおいて隣接するＨＤＤから発生するもの、ＨＤＤ１が設置されている環境に起因して発生するものなど様々なものがある。
【００４３】
本実施の形態では、回転方向の振動を検出する例について説明する。回路基板２０には回転方向の振動を検出するため、２つの直線加速度センサ３１が設けられている。例えば、２つのセンサ３１を回路基板２０の両端に配置する。ＨＤＤ１が直線的な方向に振動すると、２つのセンサは同じ方向の加速度を検知する。一方、ＨＤＤ１が回転方向に振動すると、２つのセンサで検知される加速度に差分が生じる。そのため、ＨＤＤ１に回転方向の振動が与えられたことが検出される。例えば、２つのセンサ３１の差分と２つのセンサ間の距離に基づいて回転振動の角速度を算出することができる。もちろん、回転方向の振動を検出する回転加速度センサを用いてもよい。回転方向の振動を検出することによって、効果的にヘッド素子部の位置ずれを検出することができる。
【００４４】
Ａ／Ｄ変換器（ＡＤＣ）３２には２つのセンサ３１の出力の差分信号が入力される。この差分信号は２つのセンサで検出された加速度の差を示している。すなわち、差分信号は回転振動の大きさとその方向を示している。ＡＤＣ３２はアナログ信号である差分信号をＡ／Ｄ変換する。ＡＤＣ３２からのデジタル信号はＨＤＣ／ＭＰＵ２３に入力される。このデジタル信号が示す値はＨＤＤ１が受けた回転振動の大きさや方向によって変化する。なお、ＡＤＣ３２とセンサ３１との間にノイズ除去のためのフィルタや、アナログ信号を増幅するためのアンプが設けられている。また、センサ３１がフィルタやアンプを内蔵していてもよい。
【００４５】
ＨＤＣ／ＭＰＵ２３はＡＤＣ３２からのデジタル信号に基づいて、補正データを生成する。具体的には、ＨＤＣ／ＭＰＵ２３はセンサで検出された振動を打ち消すようにヘッド素子部１２を移動させるための補正データを生成する。さらに、ＨＤＤ１が定常的に受ける振動のレベルが高いとき、ＨＤＣ／ＭＰＵ２３は補正データと前述のサーボ・データに基づいて駆動信号を生成し、モータ・ドライバ・ユニット２２に出力する。モータ・ドライバ・ユニット２２は駆動信号に基づく駆動電流をＶＣＭ１５に供給する。この駆動電流によりＶＣＭ１５が駆動され、ヘッド素子部１２が所望の位置に戻る。よって、振動が発生した場合でも、データの読み出し及び書き込みを正確に行うことができる。一方、ＨＤＣ／ＭＰＵ２３はＨＤＤ１が受ける振動のレベルが低いとき、補正データに基づいて駆動信号を生成しない。すなわち、サーボ・データのみに基づいて駆動信号が生成される。
【００４６】
このように本発明では、センサ３１からの出力によってヘッド素子部１２の位置ずれを補正する位置ずれ補正処理が実行される。さらに位置ずれ補正処理はＨＤＤ１が定常的に受ける振動のレベルによって、実行されるか否かが判断される。すなわち、位置ずれ補正処理は、定常的に受ける振動のレベルが高いときに、実行されるが、振動レベルが低いときには、実行されない。定常的に受ける振動のレベルが低いときに、位置ずれ補正処理の実行を停止することにより、ノイズ等による影響を防いでいる。定常的に受ける振動のレベルが低いときにノイズが発生しても、補正データに基づいてヘッド素子部の位置が移動しない。振動レベルが低いときには、振動によってオフトラックすることがまれであるため、実用上の影響は小さい。すなわち、ノイズが発生する頻度よりも、振動によってオフトラックが発生する頻度のほうが低いため、より正確にデータの書き込み／読み出しを行うことができる。このように振動のレベルに応じて、位置ずれ補正処理機能をＯＮ／ＯＦＦしているので、効果的に位置ずれ補正を行うことができる。すなわち、振動レベルが低い環境では、位置ずれ補正を行わないので、ノイズの影響によりヘッド素子部１２が誤った位置に移動するのを防ぐことができる。よって、ＨＤＤ１のパフォーマンスを向上することができる。
【００４７】
次に、上記の位置ずれ補正処理を行うか否かを判断するための構成について図３を用いて説明する。図３は回路基板２０の構成を示すブロック図である。ＨＤＣ／ＭＰＵ２３はレジスタ４１、演算処理部４２、判定処理部４３、補正データ生成部４４、駆動信号生成部４５及びサーボ制御部４６を備えている。
【００４８】
ＡＤＣ３２からのデジタル信号がレジスタ４１に格納される。演算処理部４２はレジスタ４１に格納された値に基づいて、振動の大きさを算出する。この振動の大きさを示す値をセンサ出力値とする。センサ３１で検知された回転振動が大きいほどセンサ出力値は大きくなり、回転振動が小さいほどセンサ出力値は小さくなる。演算処理部４２はセンサ出力値に基づいて、ＨＤＤ１が定常的に受ける振動レベルを評価する評価値を更新する。この評価値はその値が大きいほど、定常的な振動のレベルが大きいことを示し、その値が小さいほど定常的な振動のレベルが小さいことを示す変数である。評価値は、所定のタイミングで更新されていく。具体的には演算処理部４２は現在の評価値と更新タイミングでのセンサ出力値に基づいて評価値の更新を行うための演算を実行する。この評価値を更新するタイミング及びその算出方法については後述する。
【００４９】
判定処理部４３は評価値としきい値を比較して、上述の位置ずれ補正処理を行うか否かを判定する。すなわち、判定処理部４３は評価値がしきい値以上のとき、ＨＤＤ１が受ける定常的な振動のレベルが高いので、上述の位置ずれ補正処理を行うと判定する。一方、評価値がしきい値よりも小さいとき、ＨＤＤ１が受ける定常的な振動のレベルが低いので、位置ずれ補正処理を実行しないと判定する。これにより、例えば、評価値がしきい値以下となっている状態から評価値を更新して、その更新した評価値がしきい値を超えると位置ずれ補正処理を実行していない状態から位置ずれ補正処理を実行する状態へと切り替わる。あるいは、評価値がしきい値を超えている状態から評価値を更新して、その更新した評価値がしきい値以下になると位置ずれ補正処理を実行している状態から位置ずれ補正処理を実行していない状態へと切り替わる。このように位置ずれ補正処理機能はＯＮ／ＯＦＦが制御される。
【００５０】
補正データ生成部４４はセンサ３１からの出力に基づいて補正データを生成する。補正データはセンサ３１で検出した振動の大きさや方向に基づいた値となる。すなわち、補正データは、振動に起因してヘッド素子部１２に生じた位置ずれを打ち消すようにヘッド素子部１２を移動させるためのデータとなる。具体的にはＡＤＣ３２からのデジタル信号をデジタルフィルタによって処理したものが補正データとなる。この場合、デジタルフィルタは所定の伝達関数を持つフィルタとなる。補正データは駆動信号生成部４５に出力される。この補正データは一定のサンプリングレートで生成される。そして、補正データがサーボループに注入され、以下に説明するサーボ制御データが補正される。
【００５１】
また、Ｒ／Ｗチャネル２１からのサーボ・データはサーボ制御部４６に入力される。サーボ制御部４６はサーボ・データに基づいてサーボ制御データを生成する。サーボ制御データは現在のヘッド素子部１２の位置と目標トラックまでの距離に基づくデータである。サーボ制御データは駆動信号生成部４５に出力される。
【００５２】
駆動信号生成部４５は入力されたデータに基づいてモータ・ドライバ・ユニット２２に出力するための駆動信号を生成する。駆動信号生成部４５はサーボ制御データに基づいて駆動信号を生成する。さらに、判定処理部４３により、位置ずれ補正処理を行うと判定された場合、駆動信号生成部４５は補正データ及びサーボ制御データに基づいて駆動信号を生成する。例えば、補正データをサーボ制御データから減算することによって駆動信号が生成される。駆動信号はモータ・ドライバ・ユニット２２に出力される。モータ・ドライバ・ユニット２２は駆動信号生成部４５からの駆動信号に基づいてＶＣＭ１５を駆動するための駆動電流を供給する。これにより、駆動信号に基づいてＶＣＭ１５を含むアクチュエータが動作し、磁気ディスク上のヘッド素子部１２の位置が移動する。
【００５３】
判定処理部４３により位置ずれ補正処理を実行すると判定されたとき、補正データがサーボループに注入される。判定処理部４３により位置ずれ補正処理を実行しないと判定されたとき、補正データは生成されないか、あるいはサーボループに注入されない。例えば、補正データ生成部と駆動信号生成部との間にスイッチを設け、このスイッチを判定処理部４３からの信号により制御する。これにより、補正データがサーボループに注入するか否かを制御することができる。
【００５４】
つぎに、評価値を更新するため、上記の演算処理部４２で実行される演算処理について説明する。本実施の形態では、所定のタイミングで評価値を更新しているが、このタイミングについては後述する。まず、評価値を更新するために実行される１つ目の演算処理について説明する。１つ目の演算処理では、現在の評価値とセンサ出力値とを比較し、評価値がセンサ出力値よりも大きければ、評価値に定数を加え、評価値がセンサ出力値よりも小さければ定数を引いている。この処理について以下に詳細に説明する。なお、以下の説明においてセンサ出力値をｒｖａｄｃ、評価値をｉｎｔｅｇ＿ｒｖａｄｃ、定数をｃｏｎｖとする。
【００５５】
まず、現在の評価値ｉｎｔｅｇ＿ｒｖａｄｃをセンサ出力値ｒｖａｄｃとを比較する。そして、現在の評価値ｉｎｔｅｇ＿ｒｖａｄｃがセンサ出力値ｒｖａｄｃより小さければ、現在の評価値ｉｎｔｅｇ＿ｒｖａｄｃに定数ｃｏｎｖを加算する。すなわち、更新された評価値ｉｎｔｅｇ＿ｒｖａｄｃは現在の評価値ｉｎｔｅｇ＿ｒｖａｄｃと定数ｃｏｎｖとの和になる。ここで、ｉｎｔｅｇ＿ｒｖａｄｃｎ＋１を更新された評価値、ｉｎｔｅｇ＿ｒｖａｄｃｎを現在の評価値とすると、上記の演算処理を表すと以下のようになる。
ｉｎｔｅｇ＿ｒｖａｄｃｎ＜ｒｖａｄｃのとき、
ｉｎｔｅｇ＿ｒｖａｄｃｎ＋１＝ｉｎｔｅｇ＿ｒｖａｄｃｎ＋ｃｏｎｖ
【００５６】
一方、現在の評価値ｉｎｔｅｇ＿ｒｖａｄｃがセンサ出力値ｒｖａｄｃよりも大きければ、現在の評価値ｉｎｔｅｇ＿ｒｖａｄｃから定数ｃｏｎｖを減算する。すなわち、更新された評価値ｉｎｔｅｇ＿ｒｖａｄｃは現在の評価値ｉｎｔｅｇ＿ｒｖａｄｃと定数ｃｏｎｖとの差になる。この演算処理を表すと以下のようになる。
ｉｎｔｅｇ＿ｒｖａｄｃｎ＋１＞ｒｖａｄｃのとき、
ｉｎｔｅｇ＿ｒｖａｄｃｎ＋１＝ｉｎｔｅｇ＿ｒｖａｄｃｎ−ｃｏｎｖ
【００５７】
また、現在の評価値ｉｎｔｅｇ＿ｒｖａｄｃがセンサ出力値ｒｖａｄｃと同じ値ならば、現在の評価値ｉｎｔｅｇ＿ｒｖａｄｃに変化はない。すなわち、更新された評価値は現在の評価値と等しくなる。この演算処理を表すと以下のようになる。
ｉｎｔｅｇ＿ｒｖａｄｃｎ＋１＝ｒｖａｄｃのとき
ｉｎｔｅｇ＿ｒｖａｄｃｎ＋１＝ｉｎｔｅｇ＿ｒｖａｄｃｎ
【００５８】
そして、上記の判定処理部４３はこのようにして更新された評価値に基づいて位置ずれ補正処理を実行するか否かを判定する。このように現在の評価値に定数を加減算して評価値を更新することにより、一時的な振動やノイズによって位置ずれ補正機能が急激に切り替わることを防ぐことができる。よって、安定して、位置ずれ補正処理を実行することができる。
【００５９】
１つ目の演算処理では、現在の評価値とセンサ出力値とを比較し、その比較結果に応じて定数を加算又は減算している。これにより、評価値がセンサ出力値に近づく。このような更新を繰り返し実行すると、評価値はある時定数を持ってある値に収束する。換言すれば、更新を繰り返し実行することによって、評価値を積分することになる。このとき、積分時間はＡＤＣ３２のサンプリングレートとサンプル数に基づくものとなる。収束した評価値はＨＤＤ１が定常的に受ける振動のレベルに基づくものとなる。すなわち、定常的に受けている振動のレベルが高いＨＤＤ１では、センサ出力値が大きくなる可能性が高いため、評価値が大きい値に収束する。一方、定常的に受けている振動のレベルが低いＨＤＤ１では、センサ出力値が大きくなる可能性が低いため、評価値が小さい値に収束する。したがって、受けている振動のレベルが高いＨＤＤ１では位置ずれ補正処理が実行される。一方、受けている振動のレベルが低いＨＤＤ１では位置ずれ補正処理が実行されない。したがって、振動レベルの小さいＨＤＤ１において、位置ずれ補正処理用のセンサ３１やＡＤＣ３２からのノイズ等の影響によりヘッド素子部１２が誤った位置に移動することを防ぐことができる。よって、ＨＤＤ１のパフォーマンスを向上することができる。このように、現在の評価値とセンサ出力値に基づいて評価値を更新することによって、位置ずれ補正処理の実行を行うか否かの判定に好適な評価値が算出される。
【００６０】
通常、ＨＤＤ１が受ける振動は時間とともに変動している。このように定常的に受ける振動のレベルに基づいて、位置ずれ補正処理を行なうか否かを判断することにより、位置ずれ補正処理を実行するか否かを適切に判断することができる。すなわち、評価値は時間ともにある値に収束していくため、ＨＤＤ１が設置されている環境に起因する振動のレベルを適切に評価することができる。よって、位置ずれ補正処理を実行するか否かを適切に判断することができる。
【００６１】
なお、上記の定数ｃｏｎｖは正の定数である。ｃｏｎｖの値を可変とすることも可能である。例えば、評価値を早く収束させたい場合はｃｏｎｖの値を大きくする。そして、一定時間経過後、評価値が収束したらｃｏｎｖの値を小さくする。収束させる速さに応じて定数ｃｏｎｖを設定することができる。これにより、より正確に判定を行うことができる。さらには、現在の評価値に係数を付し、現在の評価値と更新された評価値との間で重み付けを行ってもよい。
【００６２】
次に２つ目の演算処理について説明する。２つ目の演算処理は、一定期間において複数のセンサ出力値の和を取り、その和に基づいて評価値を更新するものである。すなわち、一定期間、センサの出力を積分した値に基づいて、評価値が決定される。具体的には、所定のタイミングになった場合に、現在の評価関数と一定の数（サンプル数）のセンサ出力値との総和を取る。そして、この総和をセンサ出力値のサンプル数で除した値が、更新された評価値となる。サンプル数をｓａｍｐｌｅ＿ｃｎｔとすると、この演算処理を表すと以下のようになる。
【００６３】
ＷＨＩＬＥ（ｓａｍｐｌｅ＿ｃｎｔ）
ｉｎｔｅｇ＿ｒｖａｄｃ＝ｉｎｔｅｇ＿ｒｖａｄｃ＋ｒｖａｄｃ
Ｅｎｄ
ｉｎｔｅｇ＿ｒｖａｄｃ＝ｉｎｔｅｇ＿ｒｖａｄｃ／ｓａｍｐｌｅ＿ｃｎｔ
【００６４】
そして、上記の判定処理部４３はこのようにして更新された評価値に基づいて位置ずれ補正処理を実行するか否かを判定する。
【００６５】
このように、現在の評価値と更新するタイミングにおけるセンサ出力値とに基づいて評価値を更新している。このようにして、サンプルカウントのセンサ出力値を現在の評価値に加えた総和をサンプル数で割った値が評価値となる。このような更新を実行すると、評価値はある値に収束する。この収束した評価値はＨＤＤ１が定常的に受ける振動のレベルに基づくものとなる。したがって、１つめの処理方法と同様に正確に位置ずれ補正を行うことができる。さらに、１つ目の処理方法に比べて、早く評価値が収束するため、迅速かつ正確に判定を行うことができる。
【００６６】
上記のように更新された評価値に対してヒストリー（履歴）を記録するようにしてもよい。更新された評価値をヒストリーとして記録し、電源投入のタイミングでヒストリーを読み込む。これにより、電源投入時における振動レベルの評価を正確に行なうことができる。例えば、最新の評価値をヒストリーとして記録する。もちろん、最新から複数の評価値をヒストリーとして記録してもよい。このように過去又は現在の評価値をヒストリーとして記録する。そして、次に電源を投入した場合に、ヒストリーとして記録した評価値を初期設定値として評価値の更新を開始するようにしてもよい。ヒストリーはＲＡＭ２４に記録してもよいし、磁気ディスク１１に記録するようにしてもよい。さらには回路基板２０に設けられたＥＥＰＲＯＭ（図示せず）に書き込んでもよい。すなわち、ＲＡＭ２４や磁気ディス気１１やＥＥＰＲＯＭが履歴を記録する履歴記録部となる。また、ヒストリーには評価値の現在までの最大値や最小値を記録するようにしてもよい。ヒストリーに基づいた初期設定値を使用して評価値の更新を開始することにより、ＨＤＤ１の起動時における評価値の収束時間を短縮することができる。
【００６７】
次に、上記の演算処理を行って評価値を更新するタイミングについて説明する。本発明では、以下の４つのタイミングで演算処理部４２での演算処理を実行し、評価値を算出している。
（１）ホストからのリード／ライトコマンドが転送され、そのコマンドに基づいてヘッド素子部１２が移動するタイミング、すなわちシークを開始するタイミング
（２）エラーリカバリーが実行されるタイミング
（３）電源を投入するタイミング
（４）動作モードが遷移するタイミング
【００６８】
（１）のタイミングにおける処理について説明する。ホストからリードコマンド又はライトコマンド（以下、Ｒ／Ｗコマンド）がＨＤＤ１に送信される。このＲ／Ｗコマンドに基づいて、アクチュエータをシークするとき、評価値を更新する。そして、更新された評価値に基づいて位置ずれ補正処理を行うか否かを判定する。さらに、その後、ＨＤＤ１のＭＰＵ／ＨＤＣ２３は次に書き込み又は読み出しの処理を実行するセクタのアドレスと、現在、ヘッド素子部１２が読み出しているサーボ・データとに基づいて、移動距離を算出する。ここで、位置ずれ補正処理を行っている場合、この移動距離はセンサで検知された振動による位置ずれを考慮したものとなる。ＭＰＵ／ＨＤＣ２３はこの移動距離に基づいて駆動信号を生成する。この駆動信号がモータ・ドライバ・ユニット２２に出力される。モータ・ドライバ・ユニット２２はＶＣＭ１５を駆動して、ヘッド素子部１２を移動させる
【００６９】
通常、シークが開始するタイミングでは、ヘッド素子部１２はトラック上にステイしてるため、移動してない。すなわち、トラック上にとどまっている状態からシークが開始される。（１）のタイミングでは、ヘッド素子部１２が移動していない状態でのセンサ出力値に基づいて、評価値が更新される。したがって、評価値に対するアクチュエータの動作の影響を低減することができる。すなわち、評価値の更新においてアクチュエータが駆動することによって発生する振動の影響を排除することができる。換言すると、ＨＤＤ１が周辺環境から受ける振動のみに基づいて評価値を更新することができる。ＨＤＤ１が設置されている環境で定常的に生じる振動のレベルを正確に評価することができる。よって、より正確に位置ずれ補正を行うか否かの判定をすることができる。（１）のタイミングでは例えば、上記の１つ目の演算処理により評価値が更新される。
【００７０】
このように本実施の形態ではＲ／Ｗコマンドに基づいて評価値を更新している。Ｒ／Ｗ処理を行っている状態では、通常、シークが連続的に実施される。よって、このタイミングで評価値を更新することにより、適切なタイミングで評価値が更新される。してがって、定常的な振動のレベルを正確に評価することができる。さらに、評価値を更新するためのタイミング回路やタイマーを追加する必要がない。したがって、簡易な構成とすることができる。とくに、サーボループに基づくタイミングの周波数が高すぎて、評価値の更新に適していない場合、Ｒ／Ｗコマンドに基づいて評価値を更新することが好ましい。すなわち、上記の第１の演算処理を行う時間よりもサーボループの周期が短くて、上記の第1の演算処理を行うことができない場合がある。この場合、Ｒ／Ｗコマンドに基づいて評価値を更新することにより、新たにタイマー等を追加する必要がない。このため簡易な構成で、評価値の更新及びその更新された評価値に基づく位置ずれ補正機能のＯＮ／ＯＦＦを判定することができる。
【００７１】
（２）のタイミングについて説明する。（２）ではエラーリカバリーステップにおいて評価値の更新を行う。エラーリカバリーステップでは、振動やその他の影響によってあるアドレスにおいてエラーが生じ、データの書き込みや読み込みを実行することができない場合に、再度、同じアドレスに対してデータの書き込みや読み出しを行う。（２）のタイミングでは、エラーが１回あるいは連続して２回以上発生し、エラーリカバリーを開始するタイミングで、評価値を更新する。エラーリカバリーを開始するタイミングでは、ヘッド素子部が移動していないため、（１）のタイミングと同様に、正確に位置ずれ補正を行うか否かを判定することができる。
【００７２】
さらに、瞬間的に大きな振動が加わったときに、書き込みや読み出しのエラーが発生する可能性が高い。よって（２）のタイミングで、評価値を更新することによって、位置ずれ補正機能を効果的にＯＮすることができる。すなわち、位置ずれ補正機能がＯＦＦとなっている状態で、大きな振動が発生した場合、エラーが生じる可能性が高い。エラーリカバリーのタイミングで評価値を更新することで、即座に位置ずれ補正機能をＯＮすることが可能となる。よって、効果的なタイミングで位置ずれ補正機能をＯＮすることができる。これにより、エラーの発生が連続的に発生することを防ぐことができる。（２）のタイミングでは例えば、上記の１つ目の演算処理により評価値が更新される。
【００７３】
（３）のタイミングにおける処理について説明する。電源投入（Ｐｏｗｅｒ  Ｏｎ  Ｒｅｓｅｔ、ＰＯＲ）のタイミングでは、電源投入からＲ／Ｗ可能なＲｅａｄｙまでの間に上記の２つ目の演算処理により評価値の更新を行う。そして、更新された評価値に基づいて位置ずれ補正を実行するか否かを判断する。具体的には、まずＰＯＲのタイミングで、ヒストリーに記録されている値をチェックする。この値を初期設定値として、上記の２つ目の演算処理を行う。
【００７４】
電源がＯＦＦされる前と電源がＯＮされた後では、定常的な振動のレベルが変化していることがある。すなわち、一度電源をＯＦＦして、長期間経過した後、電源を投入すると、周辺環境が変化して、定常的な振動レベルが変化していることがある。このような場合でも、電源投入からＲ／Ｗが可能になるＲｅａｄｙまでの間に評価値の更新を行うことにより、定常的な振動レベルを正確に評価することができる。これにより、電源ＯＦＦ前と比べ振動レベルが変化した場合でも、ＨＤＤ１の起動をスムーズに行うことができるようになる。
【００７５】
次にＰＯＲ時における処理について詳細に説明する。電源投入を行なうと、ＨＤＣ／ＭＰＵ２３が記録されているヒストリーをチェックする。そして、ヒストリーに記録されている値を初期設定値として上記の２つ目の演算処理を実行する。すなわち、所定のサンプル数だけセンサ出力値を積分し、初期設定値から評価値を更新する。このように、ＰＯＲ時にセンサ出力値を積分して評価値を更新することにより、定常的な振動レベルを迅速かつ正確に評価することができる。なお、ヒストリーとして評価値の履歴を記録していない場合でも、センサ出力値を積分して評価値を算出することにより、ＨＤＤ１の起動をスムーズに行なうことができる。すなわち、センサ出力値を積分した値を評価値として設定し、この評価値から更新を開始する。
【００７６】
この後、算出された評価値が適切な値か否かを判定する。例えば、ヒストリーとして今までの評価値の最大値と最小値を記録させておく。そして、この最大値と最小値との間に更新された評価値がないとき適切な評価値でないと判断する。この場合、更新された評価値はＰＯＲ後の振動レベルを適切に評価していないと判断され、所定のデフォルト値を評価値とする。このようにＰＯＲ時に評価値を更新することによって、ＨＤＤ１の起動をスムーズに行うことができるようになる。
【００７７】
（３）のタイミングでは、上記の２つ目の演算処理を行うようにする。２つ目の処理では（１）及び（２）のタイミングに比して、速く評価値を収束させることができる。すなわち、２つ目の演算処理では、所定のサンプル数のセンサ出力値を積分している。換言すると２つ目の演算処理では、センサ出力値を複数使用して評価値が更新される。一方、１つ目の演算処理では、１つのセンサ出力値に基づいて評価値が更新される。したがって、２つ目の演算処理では１つ目の演算処理に比して、数多くのセンサ出力値に基づいて評価値が更新される。２つ目の演算処理では１つ目の演算処理と比べて、センサ出力値が反映されやすく、速く評価値を収束させることができ、定常的な振動レベルの変化を迅速かつ正確に評価することができる。
【００７８】
このように、電源投入時に２つ目の演算処理を行うことにより、電源投入直後に評価値を収束させることができる。通常のＲ／Ｗ処理では、評価値が収束した状態から評価値が更新されていく。すなわち、電源投入直後にいったん収束した評価値が。通常のＲ／Ｗ処理時において更新されていくことになる。これにより、振動のレベルを正確に評価することができる。
【００７９】
（４）のタイミングについて説明する。（４）では動作モードが遷移するタイミングで評価値の更新を行う。この場合でも、（３）のタイミングと同様に、振動レベルが変化することがある。よって、このタイミングで評価値を更新することにより、動作モード遷移時における、振動レベルの変化を正確に変化することができる。このタイミングでも、上記の２つ目の演算処理により、評価値が更新される。
【００８０】
ＨＤＤ１では、通常、消費電力の低減を目的とし、省電力のための動作を行わないアクティブ（Ａｃｔｉｖｅ）・モードのほかに、トラックフォローのみで読み書きを行わないアイドル（Ｉｄｌｅ）・モードや、さらに消費電力を低減させるためディスクを回転させるスピンドル・モータを止めるスリープ（ｓｌｅｅｐ）・モード等の複数のパワー・セーブ（省電力）・モードが用意されている。さらに、通常のＲ／Ｗやシークを実行するパフォーマンス・モードがある。これらの動作モードが他の動作モードに遷移するときに評価値を更新し、位置ずれ補正を行うか否かの判定を行なう。長期間同じ動作モードとなっていて、評価値が更新されていない場合でも、動作モードが遷移するタイミングで評価値を更新することにより、定常的な振動レベルを迅速かつ正確に評価することができる。よって、（３）と同様に定常的な振動レベルの変化を正確に評価することができる。
【００８１】
具体的には、アクティブ・モードから遷移するタイミング、アイドル・モードから遷移するタイミング、スリープ・モードから遷移するタイミングで評価値の更新が行なわれる。さらには、ランプ・ロード方式では、ランプからの復帰時に評価値を更新してよい。また、ＣＳＳ（Ｃｏｎｔａｃｔ  Ｓｔａｒｔ  Ｓｔｏｐ）方式ではパーク位置からの復帰時に評価値を更新してもよい。これらのタイミングでは、ヘッド素子部１２が静止しているため、（１）のタイミングと同様に、正確に環境に起因する定常的な振動レベルを評価することができる。さらに、これらのタイミングで評価値を更新することによって、R／Wを行なうパフォーマンス・モードへ復帰した時に正確に振動レベルを評価することができる。よって、位置ずれ補正機能のＯＮ／ＯＦＦを効果的に切り換えることができる。
【００８２】
さらにアクティブ・モード、アイドル・モード、スリープ・モードの状態で評価値の更新を行ってもよい。また、ＣＳＳ（Ｃｏｎｔａｃｔ  Ｓｔａｒｔ  Ｓｔｏｐ）方式でパーキング位置にある状態、あるいはランプロード方式でランプへ退避している状態で評価値の更新を行ってもよい。これらのタイミングでも、ヘッド素子部１２が静止しているため、環境に起因する定常的な振動レベルを正確に評価することができる。さらに、スリープ・モードではＳＰＭ１４の動作が停止しているため、評価値に対するＳＰＭ１４の動作の影響を排除することができる。よって、より正確に環境に起因する定常的な振動レベルを評価することができる。このようなヘッドが停止している状態の時に評価値を算出することにより、ヘッドが移動可能な状態になったときに、正確に振動レベルを評価することができる。
【００８３】
なお、（３）及び（４）のタイミングにおける判定処理はヘッドが駆動可能になるまでに終了することが好ましい。これにより、適切に補正するか否かが判定された後、実際のＲ／Ｗ処理が行なわれる。よって、正確にデータの書き込み／読み出しを行うことができる。したがって、ヘッドが駆動可能になるまでに判定処理が終了するようにサンプル数を設定するようにする。さらに、ヘッドが駆動可能になるまでに判定処理を終了することにより、評価値に対するアクチュエータによる影響を低減することができる。
【００８４】
本発明では、上記の（１）〜（４）のタイミングで評価値を更新している。したがって、新たにタイミング回路やタイマー等を設ける必要がないため、簡易な構成で制御を行うことができる。なお、上記の演算処理は、ソフトウェア上で実行してもよい、ハードウェア構成を用いて実行してもよい。
【００８５】
もちろん、評価値を更新するタイミングは上記のタイミングに限られるものではない。例えば、一定の周期で評価値を更新してもよい。この場合、例えば、ＨＤＣ／ＭＰＵ２３にタイミング回路やタイマー等を設ける。さらには、評価値を更新するタイミングの周期をユーザが設定できるようにしてもよい。あるいはホストからのコマンドにより、この周期を設定、変更してもよい。このように予め設定された設定タイミングで評価値を更新することも可能である。
【００８６】
次に、上記の評価値を更新して、位置ずれ補正を行うか否かを判定するための処理について図４を用いて説明する。図４は上記の処理を示すフローチャートである。
【００８７】
まず、ＨＤＤ１のパワーをオンする（ステップＳ１０１）。すると、記録されている評価値のヒストリーがチェックされる（ステップＳ１０２）。このヒストリーとして記録されている値を評価値の初期設定値として更新を行なう。次に、ドライブコンディションのチェックが行われる。ドライブコンディションのチェックが完了すると、Ｒｅａｄｙ状態となりＲ／Ｗ処理が可能となる。ここで、ドライブコンディションのチェック中に、ヒストリーとして記録されている評価値の初期設定値から評価値を算出する。ステップＳ１０２では、２つ目の演算処理が実行される。
【００８８】
そして、この演算処理によって算出された評価値が適切な値か否かが判断される（ステップＳ１０３）。更新された評価値が適切であるか否かは、評価値のヒストリーに基づいて判断される。例えば、ヒストリーとして現在までの評価値の最大値と最小値とを記録しておく。そして、２つ目の演算処理で更新された評価値が最大値と最小値の間にある場合は、適切な評価値であると判断し、最大値と最小値の間に無い場合は、適切でない評価値と判断する。更新された評価値が適切な値である場合は、ステップＳ１０９に移る。評価値が適切な値でない場合、デフォルトの評価値が使用される（ステップＳ１０４）。このデフォルトの評価値は予め記憶しておいてもよく、あるいはヒストリーとして記憶された値に基づいた値としてもよい。そして、このデフォルトの評価値が次に続くステップで更新されていく。
【００８９】
まず、評価値を更新するタイミングであるか否かを判定するため、（４）の動作モードが遷移するタイミングか否かが判定される（ステップＳ１０５）。動作モードが遷移している場合、ステップＳ１０８に移り、評価値の更新が行われる。一方、動作モードが遷移していない場合、設定タイミングか否か判定される（ステップＳ１０６）。この設定タイミングはユーザやホストから設定されたタイミングであり、例えば、一定周期のタイミングである。設定タイミングである場合、ステップＳ１０８に移り、評価値の更新が行われる。一方。設定タイミングでない場合、ステップＳ１０７に移る。ステップＳ１０７では、Ｒ／Ｗシークか否か、及びエラーリカバリステップか否かが判断される。すなわち、（１）のシークを開始するタイミング又は（２）のエラーリカバリを行うタイミングである場合、ステップＳ１０８に移り、評価値Ｘの更新が行われる。Ｒ／Ｗシーク及びエラーリカバリステップでない場合、評価値が行われず、ステップＳ１１２に移る。
【００９０】
ステップＳ１０５、ステップＳ１０６及びステップＳ１０７で更新するタイミングであると判断された場合、上述のように、評価値Ｘが更新される。そして、ステップＳ１０３又はステップＳ１０８で更新された評価値Ｘがしきい値以上か否かが判定される（ステップＳ１０９）。評価値Ｘがしきい値以下の場合、位置ずれ補正機能をＯＦＦする（ステップＳ１２０）。一方、評価値Ｘがしきい値より大きいの場合、位置ずれ補正機能をＯＮする（ステップＳ１１０）。そして、評価値のヒストリーを作成するか否かを判定し（ステップＳ１１１）、作成する場合は評価値を記録する（ステップＳ１１２）。例えば、更新された評価値が今まで評価値の最大値と最小値の間にない場合や、電源ＯＦＦの直前に記録する。もちろん、ヒストリーは適切なタイミングで記録してもよい。
【００９１】
このようにして評価値を適切なタイミングで更新していく。ここまでの処理が終了したら、電源がＯＦＦとなるまでステップＳ１０５からの処理を繰り返し実行する。これにより、評価値を適切なタイミングで更新することができ、位置ずれ補正を行うか否かを適切に判断することができる。
【００９２】
以上、実施形態を例として本発明を説明したが、本発明が上記の実施形態に限定されるものではない。例えば、上述の実施の形態ではＨＤＤを例として説明したが、本発明は、ヘッドを移動させ、記憶媒体にデータの書き込み／読み出しを行うデータ記憶装置であれば適用可能である。さらに、評価値を算出するための演算処理は上記の演算処理に限られるものではなく、他の演算を用いてもよい。
【図面の簡単な説明】
【００９３】
【図１】本実施の形態に係るＨＤＤの概略構成を示すブロック図である。
【図２】本実施の形態に係るＨＤＤの概略構成を示すブロック図である。
【図３】本実施の形態に係るＨＤＤの回路基板及び回路基板に設けられたＨＤＣ／ＭＰＵの概略構成を示すブロック図である。
【図４】本実施の形態に係るＨＤＤの制御方法を示すフローチャートである。
【符号の説明】
【００９４】
１  ＨＤＤ、１０  エンクロージャ、１１  磁気ディスク、１２  ヘッド素子部、
１６  スライダ、１７  キャリッジ、２０  回路基板、２１  Ｒ／Ｗチャネル、
２２  モータ・ドライバ・ユニット、３１  センサ、３２  ＡＤＣ、
４１  レジスタ、４２  演算処理部、４３  判定処理部、４４  補正データ生成部、
４５  駆動信号生成部、４６  サーボ制御部、５１  ホスト、
【図１】
2006221733.tif 000003
【図２】
2006221733.tif 000004
【図３】
2006221733.tif 000005
【図４】
2006221733.tif 000006