(57)【要約】      （修正有）【課題】シリンダ情報が複数サーボフレームに分割されている場合でも、高精度のシーク制御を実現する。【解決手段】ディスク１は、径方向の位置を検出するためのサーボ情報が複数のサーボ領域に分割されて記録されている。リードコントローラはヘッド１０を使用して前記複数のサーボ領域から前記サーボ情報を読み出す。サーボコントローラは、状態オブザーバと合成位置計算手段からなる合成位置生成手段を含み、前記リードコントローラにより前記複数のサーボ領域から読み出された前記サーボ情報及び前記状態オブザーバにより算出される予測位置に基づいて合成位置を算出し、当該合成位置に基づいて前記ヘッド１０のシーク動作を制御する。【選択図】図１
2014211928.tif 000002
【特許請求の範囲】
【請求項１】
径方向の位置を検出するためのサーボ情報が複数のサーボ領域に分割されて記録されているディスクと、
ヘッドを使用して前記各サーボ領域から前記サーボ情報を読み出すリード手段と、
状態オブザーバと合成位置計算手段からなる合成位置生成手段を含み、前記リード手段により前記各サーボ領域から読み出された前記サーボ情報及び前記状態オブザーバにより算出される予測位置に基づいて合成位置を算出し、当該合成位置に基づいて前記ヘッドのシーク動作を制御するサーボ制御手段とを具備し、
前記サーボ制御手段は、
前記シーク動作中に読み出された前記サーボ情報をメモリに記憶し、
前記ヘッドの実位置と前記合成位置との誤差である状態オフセットの発生を判定し、
前記状態オフセットの発生が検出された場合に、前記メモリに記憶した前記サーボ情報及び前記合成位置に基づいて前記状態オブザーバによる予測位置を補正するディスク記憶装置。
【請求項２】
前記サーボ制御手段は前記状態オフセットの発生が検出された場合に、
前記合成位置、前記分割された各サーボ情報から得られる前記ヘッドの実位置情報に基づいて、前記状態オフセットの推定値を算出する算出手段を含む請求項１に記載のディスク記憶装置。
【請求項３】
前記サーボ制御手段は前記状態オフセットの発生が検出された場合に、
前記状態オブザーバの予測変化量、前記分割された各サーボ情報から得られる前記ヘッドの実位置情報に基づいて、前記状態オフセットに含まれる速度オフセットの推定値を算出し、
前記速度オフセットの推定値を算出後に、前記速度オフセットの推定値と前記合成位置の変化量から算出される前記合成位置の修正変化量及び前記分割された各サーボ情報から得られる前記ヘッドの実位置情報に基づいて、前記状態オフセットに含まれる位置オフセットの推定値を算出する請求項１または請求項２に記載のディスク記憶装置。
【請求項４】
前記サーボ情報に含まれるシリンダ情報が前記各サーボ領域のそれぞれに分割して記録されている場合において、
前記サーボ制御手段は前記状態オフセットの発生が検出された場合に、
前記各サーボ領域の第１のサーボ領域までに得られる分割されたシリンダ情報と、前記合成位置と合成位置変化量を前記メモリに記憶し、
前記第１のサーボ領域のシリンダ情報より上位のシリンダ情報が記録された第２のサーボ領域での位置を、前記シリンダ情報、前記第２のサーボ領域までの前記合成位置変化量及び発生した可能性のある前記速度オフセットの推定値に基づいて推定し、
前記推定した第２のサーボ領域での位置、第２のサーボ領域で得られたシリンダ情報、前記第２のサーボ領域から第３のサーボ領域までの前記合成位置変化量及び発生した可能性のある前記速度オフセットの推定値に基づいて前記第３のサーボ領域の位置を推定し、
前記第３のサーボ領域から得られたシリンダ情報及び前記推定した第３のサーボ領域の位置に基づいて前記速度オフセットの推定値を算出する請求項３に記載のディスク記憶装置。
【請求項５】
前記サーボ制御手段は、
前記第１のサーボ領域での位置を前記シリンダ情報の下位情報から順に、前記各サーボ領域から得られた上位シリンダ情報と、前記第１のサーボ領域までの前記合成位置変化量から前記速度オフセットの推定値に基づいて算出される合成位置の修正変化量を算出し、
前記合成位置の修正変化量に基づいて算出される前記ヘッドの現在位置の推定値及び前記第１のサーボ領域までの前記合成位置に基づいて前記位置オフセットの推定値を算出する請求項４に記載のディスク記憶装置。
【請求項６】
前記サーボ制御手段は、
前記各サーボ領域から得られる前記分割されたシリンダ情報と前記合成位置に対応するシリンダ情報とを比較し、当該比較結果が不一致の場合に前記状態オフセットの発生を検出する請求項４または請求項５に記載のディスク記憶装置。
【請求項７】
前記サーボ制御手段は、
前記第１のサーボ領域として前記状態オフセットの推定値を算出するために必要なサンプル数分のシリンダ情報を読み出す場合の、位置オフセットと速度オフセットの区別がつけられる最初のサーボ領域として設定する請求項４から請求項６のいずれか１項に記載のディスク記憶装置。
【請求項８】
前記サーボ制御手段は、
前記第２のサーボ領域を、前記速度オフセットの推定値を算出するための基準となるサーボ領域として設定し、
前記第３のサーボ領域を、前記速度オフセットの推定値を算出する際の比較対象となるサーボ領域として設定し、前記第２のサーボ領域の上位シリンダ情報を得るためのサンプル前にシリンダ情報を得るためのサーボ領域とする請求項４から請求項７のいずれか１項に記載のディスク記憶装置。
【請求項９】
径方向の位置を検出するためのサーボ情報が複数のサーボ領域に分割されて記録されているディスクと、ヘッドを使用して前記各サーボ領域から前記サーボ情報を読み出すリード手段と、状態オブザーバと合成位置計算手段からなる合成位置生成手段を含み、前記リード手段により前記各サーボ領域から読み出された前記サーボ情報及び前記状態オブザーバにより算出される予測位置に基づいて合成位置を算出し、当該合成位置に基づいて前記ヘッドのシーク動作を制御するサーボコントローラとを具備するディスク記憶装置に適用するサーボ制御方法であって、
前記シーク動作中に読み出された前記サーボ情報をメモリに記憶し、
前記サーボ情報に基づいて算出する前記ヘッドの実位置と前記状態オブザーバによる予測位置との誤差である状態オフセットの発生を判定し、
前記状態オフセットの発生が検出された場合に、前記メモリに記憶した前記サーボ情報及び前記状態オフセットの推定値に基づいて前記状態オブザーバによる予測位置を補正するサーボ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、ディスク記憶装置及びサーボ制御方法に関する。
【背景技術】
【０００２】
近年、ハードディスクドライブ（以下、単にディスクドライブと表記する）等のディスク記憶装置の分野では、記憶媒体であるディスクの高記録密度化が推進されている。ディスクドライブでは、サーボ情報の記録領域であるサーボ領域（サーボフレームとも呼ばれる）がディスク上の周方向に一定の間隔で配置される。サーボ情報は、ディスク上のヘッドの位置を検出するための位置情報である。サーボ情報は、シリンダ（トラック）の位置を識別するシリンダ番号（トラック番号）や、シリンダ内のセクタを識別するセクタ番号を含む。
【０００３】
ところで、ディスクの高記録密度化のために、１つのシリンダを識別するシリンダ番号を構成するシリンダ情報を、シリンダ内の複数のサーボ領域に分割して記録するサーボ情報分割方法が提案されている。セクタ番号についても、同様に複数のサーボ領域に分割して記録する方法が提案されている。これらの方法により、各サーボ領域のサイズを削減できるため、結果としてシリンダ毎のユーザデータを記録するデータ領域を増大できる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国特許第ＲＥ３９８３１号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００５】
サーボ情報分割方法では、シリンダ情報が複数サーボフレームに分割されているため、ヘッドを現在位置から目標位置までシークする場合に、シーク中の現在位置や現在速度を正しく得ることができない。そこで、当該現在位置として状態オブザーバによる予測位置と得られたシリンダ情報とから合成した合成位置を用いたシーク制御が実行される。この場合、外乱等の要因により、合成位置、状態オブザーバの予測速度とヘッドの実位置、実速度との誤差である状態オフセットが発生する可能性がある。位置を用いてシーク制御が実行される。この場合、外乱等の要因により、状態オブザーバの推定位置とサーボ情報に基づいたヘッドの実位置との誤差である状態オフセットが発生する可能性がある。このような状態オフセットが発生している状態では、シーク制御の精度が低下し、ヘッドが目標位置まで到達できない状態となる。
【０００６】
そこで、本発明の目的は、シリンダ情報が複数サーボフレームに分割されている場合でも、ヘッドを目標位置まで確実に到達させる高精度のシーク制御を実現できるディスク記憶装置及びサーボ制御方法を提供することにある。
【課題を解決するための手段】
【０００７】
本実施形態のディスク記憶装置は、ディスクと、リード手段と、サーボ制御手段とを備えた構成である。前記ディスクは、径方向の位置を検出するためのサーボ情報が複数のサーボ領域に分割されて記録されている。前記リード手段はヘッドを使用して前記各サーボ領域から前記サーボ情報を読み出す。前記サーボ制御手段は、状態オブザーバと合成位置計算手段からなる合成位置生成手段を含み、前記リード手段により前記各サーボ領域から読み出された前記サーボ情報及び前記状態オブザーバにより算出される予測位置に基づいて合成位置を算出し、当該合成位置に基づいて前記ヘッドのシーク動作を制御する。さらにサーボ制御手段は、前記シーク動作中に読み出された前記サーボ情報をメモリに記憶し、前記ヘッドの実位置と前記合成位置との誤差である状態オフセットの発生を判定し、前記状態オフセットの発生が検出された場合に、前記メモリに記憶した前記サーボ情報及び前記合成位置に基づいて前記状態オブザーバによる予測位置を補正する。
【図面の簡単な説明】
【０００８】
【図１】実施形態に関するディスクドライブの構成を説明するためのブロック図。
【図２】実施形態に関するサーボシステムの概念を説明するためのブロック図。
【図３】実施形態に関するサーボ領域の構成を説明するための図。
【図４】実施形態に関する分割されたサーボ情報の一例を説明するための図。
【図５】実施形態に関する状態オフセットの発生を説明するためのフローチャート。
【図６】実施形態に関する状態オブザーバの予測位置を補正する処理を説明するためのフローチャート。
【図７】実施形態に関する状態オフセット量の推定処理を説明するための図。
【図８】実施形態に関する速度オフセットの決定処理を説明するための図。
【図９】実施形態に関する位置オフセットの決定処理を説明するための図。
【発明を実施するための形態】
【０００９】
以下図面を参照して、実施形態を説明する。
【００１０】
［ディスクドライブの構成］
図１は、本実施形態のディスクドライブの要部を示すブロック図である。
【００１１】
図１に示すように、ディスクドライブは大別して、ヘッド・ディスクアセンブリ（head-disk assembly：ＨＤＡ）、ヘッドアンプ集積回路（以下、ヘッドアンプＩＣ）１１と、メインコントローラ１５と、ドライバＩＣ１８とから構成されている。
【００１２】
ＨＤＡは、記憶媒体であるディスク１と、スピンドルモータ（ＳＰＭ）２と、ヘッド１０を搭載しているアーム３と、ボイスコイルモータ（ＶＣＭ）４とを有する。ディスク１は、スピンドルモータ２により回転する。アーム３とＶＣＭ４はアクチュエータを構成し、ヘッド１０をディスク１上の目標位置まで移動（シーク）させる。即ち、アクチュエータは、ＶＣＭ４の駆動により、アーム３に搭載されているヘッド１０をディスク１上の径方向に移動させる。ＶＣＭ４は、ドライバＩＣ１８からの駆動電流により駆動制御される。
【００１３】
ディスク１には、データが記録される多数のシリンダ（トラック）１００が構成される。ヘッド１０はスライダを本体として、当該スライダに実装されているライトヘッド１０Ｗ及びリードヘッド１０Ｒを有する。リードヘッド１０Ｒは、ディスク１上のシリンダ１００に記録されているデータを読み出す。ライトヘッド１０Ｗは、ディスク１上にデータを書き込む。データは、後述するサーボ情報やユーザデータである。なお、ヘッド１０は少なくとも２個であり、１枚のディスク１の両面に対してデータを書き込み又は読み出す。
【００１４】
ヘッドアンプＩＣ１１は、リードアンプ及びライトドライバを有する。リードアンプは、リードヘッド１０Ｒにより読み出されたリード信号を増幅して、リード／ライト（Ｒ／Ｗ）チャネル１２に伝送する。一方、ライトドライバは、Ｒ／Ｗチャネル１２から出力されるライトデータに応じたライト電流をライトヘッド１０Ｗに伝送する。
【００１５】
メインコントローラ１５は、Ｒ／Ｗチャネル１２と、ハードディスクコントローラ（ＨＤＣ）１３と、マイクロプロセッサ（ＭＰＵ）１４とを含む１チップの集積回路から構成されている。Ｒ／Ｗチャネル１２は、リードチャネル１２Ｒとライトチャネル１２Ｗとを含む。リードチャネル１２Ｒは、後述するように、リードヘッド１０Ｒにより読み出されたリード信号を処理してデータ（サーボ情報を含む）を復号する。ライトチャネル１２Ｗは、ＨＤＣ１３からのライトデータの信号処理を実行する。
【００１６】
ＨＤＣ１３は、ホスト１９とＲ／Ｗチャネル１２との間のデータ転送を制御する。ＨＤＣ１３はバッファメモリ（ＤＲＡＭ）１６を制御して、リードデータ及びライトデータをバッファメモリ１６に一時的に格納することでデータ転送制御を実行する。また、ＨＤＣ１３はフラッシュメモリ（flash memory）１７を制御し、例えばデータを一時的に格納するキャッシュ領域として使用する。
【００１７】
ＭＰＵ１４はマイクロコントローラと呼ばれることがあり、ドライバＩＣ１８を介してＶＣＭ４を制御してヘッド１０の位置決め制御（サーボ制御）を実行する。さらに、ＭＰＵ１４は、Ｒ／Ｗチャネル１２を介してデータの記録再生を制御する。
【００１８】
［サーボシステムの構成］
図２に示すように、本実施形態のディスクドライブには、ヘッド１０をディスク１上の目標位置に位置決めするサーボ制御を実行するサーボシステム２０が組み込まれている。サーボシステム２０は、ソフトウェアを含むＭＰＵ１４の機能だけでなく、Ｒ／Ｗチャネル１２のサーボ情報の復調機能及びドライバＩＣ１８によるＶＣＭ４の駆動制御機能により実現されている。
【００１９】
図２に示すように、サーボシステム２０は、位置誤差演算器２１、フィードバックコントローラ（伝達関数Ｇ）２２及び合成位置生成部２５を含む。合成位置生成部２５は、状態オブザーバ（state observer）２４及び合成位置計算部２６を含む。位置誤差演算器２１は、ヘッド１０の目標位置（ｄ）２００と、合成位置生成部２５により算出される合成位置２０４との位置誤差（ｅ）２０１を算出する。
【００２０】
フィードバックコントローラ２２はＭＰＵ１４により実現される機能であり、制御値（ｕ）２０２を出力して位置決め誤差（ｅ）２０１を解消するようにプラント（伝達関数Ｐ）２３を制御する。プラント２３はＶＣＭ４を含むアクチュエータであり、ヘッド１０を目標位置（ｄ）２００まで移動制御する。状態オブザーバ２４は、ＭＰＵ１４の演算により実現される内部モデルを有する。状態オブザーバ２４は、フィードバックコントローラ２２からの制御値（ｕ）２０２と、位置決め誤差（ｅ）２０１を入力して、ヘッド１０の現在位置（予測位置）２０５を算出する。合成位置計算部２６は、プラント２３からの出力（ｙ）２０３が位置情報分割部２７により分割された値と状態オブザーバ２４の予測位置２０５に基づいて、合成位置２０４を算出する。
【００２１】
［サーボ制御］
以下、図３から図９を参照して、本実施形態のサーボ制御を説明する。
【００２２】
図３に示すように、本実施形態のディスク１上の各シリンダ１００には、複数のサーボ領域（サーボフレーム）１１０が一定の間隔で配置されている。サーボ領域１１０間は、ユーザデータを記録するデータ領域１２０である。本実施形態では、サーボ情報は４つのサーボ領域１１０に分割されて記録されており、分割された４つのサーボ領域を便宜的に４種類のサーボフレームＳＶＦ１〜ＳＶＦ４として取り扱う。なお、サーボ情報は、例えば８つのサーボ領域に分割されて記録されている場合でもよい。
【００２３】
サーボ情報には、ヘッド１０の現在位置であるシリンダ位置を検出するためのシリンダ情報が含まれている。シリンダ情報はシリンダ１００を識別するシリンダ番号からなる。シリンダ番号は例えば２１ビットのコードからなる。本実施形態では、図４に示すように、シリンダ番号の上位シリンダ番号は、４個のサーボフレームＳＶＦ１〜ＳＶＦ４のそれぞれに分割されて記憶される。上位シリンダ番号は、４ビット毎のシリンダ値ＢＬ１〜ＢＬ４とする。上位シリンダ番号の４ビット毎のまとまりを、便宜的にブロックと表記する。下位シリンダ番号は、４個のサーボフレームＳＶＦ１〜ＳＶＦ４のそれぞれに共通に記憶される。下位シリンダ番号は５ビットからなるシリンダ値ＢＬ０とする。
【００２４】
ディスクドライブでは、ＭＰＵ１４は、ヘッド１０をシークさせて、ディスク１上の目標シリンダに位置決めするサーボ制御を実行して、目標シリンダに対してユーザデータのリードまたはライトを実行する。このサーボ制御を実行する場合に、ＭＰＵ１４は、ヘッド１０の現在位置（現在シリンダ番号）を確定するには、４個のサーボフレームＳＶＦ１〜ＳＶＦ４から分割された上位シリンダ番号を読み出す必要がある。即ち、ＭＰＵ１４は、４サンプルで読み込んだ各シリンダ値ＢＬ１〜ＢＬ４を合成することで、現在位置の上位シリンダを確定できる。
【００２５】
また、ＭＰＵ１４は、サーボ情報をサンプリングして読み出す際に、下位シリンダ番号（シリンダ値ＢＬ０）については各サンプルでサーボフレームＳＶＦ１〜ＳＶＦ４のいずれからも読み出すことができる。最終的に、ＭＰＵ１４は、合成した上位シリンダ番号と下位シリンダ番号とから、ヘッド１０の現在位置（現在シリンダ番号）を確定する。
【００２６】
ここで、特にヘッド１０がシーク動作中にある速度で移動している場合、サンプル毎にシリンダが変わることで、過去のサンプルで読み込んだ上位シリンダ番号は、読み込んだ時点から変化していることがある。このため、ＭＰＵ１４は、ヘッド１０の現在位置を誤って確定する可能性がある。状態オブザーバ２４を使うことにより、位置、速度等を予測することができる。しかし、この予測した状態は誤差を含むため、ヘッドの正確な現在位置を求めることができない。
【００２７】
そこで、本実施形態のサーボシステム２０は、状態オブザーバ２４により算出されるヘッド１０の現在位置の予測位置の上位シリンダ情報と読み込んだ下位シリンダ情報を合成する。さらに、サーボシステム２０は、状態オブザーバ２４の予測誤差によって生じる実位置の下位情報の誤差の影響を、上位シリンダに反映させた合成位置を計算することにより、ヘッド１０の現在位置を誤って確定するような事態を回避できる。以下、合成位置の計算方法を詳細に説明する。
【００２８】
状態オブザーバ２４は数シリンダ分の予測誤差を持つが、下位シリンダ情報はサンプル毎に得られる。従って、状態オブザーバ２４の予測位置の上位シリンダ情報と読んできた下位のシリンダ情報とを合成することで、状態オブザーバ２４の予測誤差の影響を無くすことができる。しかし、単純に状態オブザーバ２４の上位シリンダ情報と読んできた下位シリンダ情報とを単純に合成すると、状態オブザーバ２４の予測誤差により状態オブザーバ２４の上位シリンダ情報と実位置の上位シリンダ情報が異なる場合に、この単純合成位置は実位置と一致しなくなる。そこで、状態オブザーバ２４の下位シリンダ情報と読んできた下位シリンダ情報とを比較して、状態オブザーバ２４の上位シリンダ情報に±１の修正を加えたものと読んできた下位シリンダ情報とを合成したものを合成位置として算出する。
【００２９】
例えば、状態オブザーバ２４の予測位置が３１シリンダ（上位シリンダ情報が０、下位シリンダ情報が３１）で、実位置が３５シリンダ（上位シリンダ情報が１、下位シリンダ情報が３）の場合を想定する。この場合、単純に状態オブザーバ２４の上位シリンダ情報と読んできた下位シリンダ情報とを合成すると、３シリンダ（上位シリンダ情報が０、下位シリンダ情報が３）となり実位置と一致しない。この例では、それぞれの下位シリンダ情報の差２８が設計上の予測誤差より十分大きいので、予測誤差により状態オブザーバ２４の上位シリンダ情報が１小さくなっていると推定される。そこで、状態オブザーバ２４の予測位置の上位シリンダ情報から１を足したものと読んだ下位シリンダ情報とを合成したものを合成位置とする。この例では、状態オブザーバ２４の予測位置の上位シリンダ情報から１を足した値は１なので、合成位置は３５シリンダとなり実位置と一致することになる。
【００３０】
しかし、前述したように、上位シリンダ番号が複数のサーボフレームＳＶＦ１〜ＳＶＦ４に分割されている場合、状態オブザーバ２４の予測結果の修正に使う予測誤差は、得られた上位のシリンダ値と下位のシリンダ値に限定される。ヘッド１０の合成位置と実位置とが大きくずれたときのシークの安定性等を考慮すると、得られた上位のシリンダ値を使用しない方がよい場合がある。例えば、上位のシリンダ値の一部しか得られず、得られたシリンダ値の上位の値や下位の値が不明な場合、状態オブザーバ２４による予測値の修正が不正確になる。このため、状態オブザーバ２４の状態が大きく変化し、サーボシステム２０の動作が不安定となる事態を招くことがある。
【００３１】
また、サーボシステム２０は、下位の値だけで状態オブザーバ２４の予測値を修正しても、上位分の予測誤差は修正できない。すると、外乱等によりヘッド１０の実位置、実速度に対する状態オブザーバ２４による予測位置、予測速度の上位に誤差が発生する。この上位誤差を含む予測位置、予測速度を使って合成位置生成部２５で合成位置を計算することで、前記上位誤差が状態オフセットとして残る。状態オフセットとは、前記合成位置とヘッドの実位置との誤差である。この結果、サーボシステム２０は、状態オフセットを修正できないままヘッド１０のシーク動作を続行することになり、ヘッド１０が目標位置（目標シリンダ）に到達できない事態となる。
【００３２】
そこで、本実施形態では、ＭＰＵ１４は、サーボシステム２０によりサーボ制御（シーク動作）を実行する場合に、ヘッド１０の実位置に対する、合成位置生成部２５による合成位置の誤差である状態オフセットを補正する。以下、図５、６のフローチャート、及び図７から９を参照してその補正方法を具体的に説明する。
【００３３】
先ず、図５のフローチャートに示すように、ＭＰＵ１４は、ディスク１上のある位置から目標位置（目標シリンダ番号）までヘッド１０を移動させるシーク動作を開始する（ブロック５０）。ＭＰＵ１４は、シーク動作中に、サーボフレームＳＶＦ１〜ＳＶＦ４からサーボ情報を読み出す（ブロック５１）。この時、各サーボフレームＳＶＦ１〜ＳＶＦ４は同一シリンダから読み出されず、異なるシリンダから読み出されることがある。実際には、サーボ情報は、サーボフレームＳＶＦ１〜ＳＶＦ４からリードヘッド１０Ｒにより読み出されて、リードチャネル１２Ｒにより復調される。ＭＰＵ１４は、サーボフレームＳＶＦ１〜ＳＶＦ４から読み出したサーボ情報をメモリに記憶する。
【００３４】
ＭＰＵ１４は、読み出したサーボ情報の上位シリンダ値と、この上位シリンダ値と対応した合成位置の上位値とを比較する（ブロック５２）即ち、ＭＰＵ１４は、読み出されたヘッド１０の実位置である実上位値ＢＬｘ（Ｒ−ＢＬｘ）（ｘ＝１〜４）と、合成位置上位値ＢＬｘ（Ｅ−ＢＬｘ）とを比較する。
【００３５】
ＭＰＵ１４は、両者間で誤差が無ければ状態オフセットが発生していないと判定して、次のシリンダからのサーボ情報の読み出しを続ける（ブロック５３のＹＥＳ）。一方、ＭＰＵ１４は、誤差があれば状態オフセットが発生していることを検出する（ブロック５３のＮＯ，５４）。
【００３６】
図４に示すように、ＭＰＵ１４は、サーボフレームＳＶＦ１〜ＳＶＦ４を読み出す毎に５ビットの下位シリンダ値を毎回取得できる。この分割方法では、状態オフセットとして、３２ｎシリンダの位置オフセットと、３２ｍシリンダ／サンプルの速度オフセットが発生する。ここでｎ、ｍは０以外の整数である。状態オフセットが発生すると、サーボフレームを読んで得た実上位値ＢＬｘ（ｘ＝１〜４）と、合成位置生成部２５の合成位置の対応する上位値ＢＬｘ（ｘ＝１〜４）とに差が生じる。
【００３７】
そこで、ＭＰＵ１４は、状態オフセットを検出するため、シーク動作中は読み出したサーボフレームから得た上位値ＢＬｘと、合成位置での対応する上位値ＢＬｘとをサンプル毎に比較する。サーボフレームＳＶＦ１ならば、ＢＬ４の値(bit17〜20)がディスク１から得られる。ＭＰＵ１４は、得られたＢＬ４の値と合成位置の対応するＢＬ４の値とを比較し、０でない場合は状態オフセットが生じていると判断する。
【００３８】
次に、図６のフローチャートに示すように、ＭＰＵ１４は状態オフセット検出後に、状態オフセットの補正処理を実行する。
【００３９】
先ず、ＭＰＵ１４は、状態オフセット（後述する位置オフセットと速度オフセット）の発生後に、位置・速度オフセットを判別するための判別サーボフレームから少なくとも２回分を読み出すまで待つ。この間、ＭＰＵ１４は、特定サーボフレームから得られた上位シリンダ値、合成位置及び合成位置変化量をメモリに記憶する（ブロック６０）。
【００４０】
ここで、判別サーボフレームとは、合成位置の上位値ＢＬｘとサーボフレームから読み出した実位置の上位値ＢＬｘとの誤差に基づいて、位置オフセットと速度オフセットを区別できるサーボフレームである。具体的には、図４に示すように、例えば上位値ＢＬ１を読み出すことができるサーボフレームＳＶＦ４である。ここで、ある時点での合成位置ＢＬｘとサーボフレームから読み出した実上位値ＢＬｘとの誤差をdiff0とし、その４サンプル前の誤差をdiff4と表記する。即ち、ＭＰＵ１４は、判別サーボフレームＳＶＦ４での合成位置ＢＬ１と実上位値ＢＬ１との現在の誤差（diff0）及びその４サンプル前の誤差（diff4）に基づいて、diff0とdiff4の差が0ならば位置オフセット発生を、0でなければ速度オフセットの発生を判定する（ブロック６１）。
【００４１】
次に、速度オフセットが発生している場合に、速度オフセットの発生後に、特定サーボフレームを２回読むまで待つ。ここで、前記判別サーボフレームが２回読まれた時点で特定サーボフレームが既に２回読まれている場合は、前記判別サーボフレームで以下の処理を行う。この処理を行うサーボフレームを処理サーボフレームとする。
【００４２】
ここで、特定サーボフレームとは、発生した可能性のある速度オフセットに基づいて当該速度オフセットを確定するのに評価する必要がある上位ブロック値を読むサーボフレームである。具体的には、図４に示すように、特定サーボフレームは、例えば上位値ＢＬ２を読み出すことができるサーボフレームＳＶＦ３である。例えば、３２シリンダ／サンプルの速度オフセットが発生している場合、ＢＬ１の値は４サンプルで４増加するが、これは−１２減少と区別ができない。つまり、ＢＬ１のみの比較では３２シリンダ／サンプルの速度オフセットと−９６シリンダ／サンプルの速度オフセットの区別がつかない。区別をつけるには、ＢＬ２を評価する必要があるところから、特定サーボフレームとしてサーボフレームＳＶＦ３が決まる。
【００４３】
ＭＰＵ１４は、合成位置の変化量を速度オフセット量による変化分で修正した合成位置の修正変化量を、可能性のある全ての速度オフセットについて計算する。ＭＰＵ１４は、上位シリンダの下位ブロックから順に処理サーボフレームで得られるブロックまで、各ブロックの読み出したサーボ情報のシリンダ値と前記合成位置の修正変化量とから現在の上位ブロック値を推定する。さらに、ＭＰＵ１４は、この推定現在位置と前記合成位置の修正変化量から１サンプル前の位置を推定する（ブロック６２）。即ち、ＭＰＵ１４は、２回目に特定サーボフレームＳＶＦ３から上位値ＢＬ２を読み出した際の位置を推定する。
【００４４】
次に、ＭＰＵ１４は、前記２回目に特定サーボフレームを読み出した際の推定位置及び推定位置の修正変化量に基づいて、１回目に特定サーボフレームＳＶＦ３から読み出した際の位置を推定し、前記推定位置と対応する実位置とを比較し、この比較結果が等しくなった速度オフセット量を真の速度オフセット推定値として決定する（ブロック６３）。
【００４５】
位置オフセット量は、前記真の速度オフセット推定値を使用して推定した現在位置と合成位置生成部２５の合成位置に基づいて算出される。ＭＰＵ１４は、特定サーボフレームで得られるブロックから最上位値ブロックまで順に各ブロックのサーボフレームから読み出された値と、それより下位の推定したシリンダ値と、各ブロックのサーボフレームが読み出されたときから現在までの合成位置の修正変化量とに基づいて、現在位置を推定する（ブロック６４）。ＭＰＵ１４は、推定した現在位置と合成位置生成部２５の合成位置とに基づいて位置オフセット値を決定する（ブロック６５）。そして、ＭＰＵ１４は、状態オブザーバ２４の状態（予測位置）に対して、決定した位置オフセット値と速度オフセット推定値とを反映（加算）することにより、合成位置生成部２５による合成位置の誤差である状態オフセットを補正する（ブロック６６）。
【００４６】
但し、位置オフセットの補正については、シークの途中にヘッド１０の位置が大幅に変更すると、状態オブザーバ２４の状態やＶＣＭ４の電流が振動的になりシーク音が大きくなるなどの問題が生じる可能性がある。このため、まずは速度オフセットのみを補正して状態オブザーバ２４の予測位置を目標値まで変化させて、そこから再度目標値までシークを開始させる方法もある。このように、位置オフセットを補正しない場合でも、状態オブザーバ２４による将来状態の予測には位置オフセットの推定値を考慮する必要がある。
【００４７】
また、ディスク１上のゾーンに応じてサーボ情報の記録周波数を変化させるディスクドライブでは、記録周波数の切替えに応じて状態オブザーバ２４による状態に基づいて早めにＲ／Ｗチャネル１２での切替えを行なう必要がある。なお、以上の処理を特定サーボフレームで考えられる全ての速度オフセットについ行うこともできる。
【００４８】
以上の処理の具体例を、図７から図９を参照して説明する。
【００４９】
図７は状態オフセット量の推定処理を説明するための図である。図８は速度オフセットの決定処理を説明するための図である。また、図９は位置オフセットの決定処理を説明するための図である。
【００５０】
前述の図５のフローチャートに示す処理により、ＭＰＵ１４は、状態オフセットの発生を検出する。この状態オフセット検出後に、前述の図６のフローチャートに示す処理により、ＭＰＵ１４は、判別サーボフレームが２回読まれるまで待ち、その間の合成位置生成部２５の合成位置、合成位置変化量、及びサーボフレームから得られた上位シリンダ値ブロックをメモリに記憶する。即ち、ＭＰＵ１４は、４サンプルで各サーボフレームから下位を含む上位シリンダ値ブロックを読み出してメモリに記憶する。
【００５１】
ＭＰＵ１４は、２回目の判別サーボフレームＳＶＦ４での合成位置生成部２５の合成位置ＢＬ１と実上位値ＢＬ１との誤差（diff0）を算出する。同様に、ＭＰＵ１４は、前述したように４サンプル前の誤差（diff4）を算出する。ここで、３２シリンダ／サンプルの速度オフセットを想定すると、これらの差（diff0−diff4）は４になる。この時点で、±６４シリンダ／サンプルの速度オフセット（diff0−diff4＝8）、−３２シリンダ／サンプルと＋９６シリンダ／サンプルの速度オフセット（diff0−diff4＝12）の可能性はなくなる。
【００５２】
即ち、ＭＰＵ１４は、状態オフセット検出後の特定サーボフレームＳＶＦ３からＢＬ２を２回読み出し、かつ判別サーボフレームを２回読み出した際に、それぞれの２回目を読み出した時間を比較して遅い方のサーボフレームを読み出したときに状態オフセット量の推定処理を開始する。ここで、図７から図９において、gBx[t]は時刻k-tでのディスク１上から読み出された実位置であるＢＬx（xは１〜４）を示す。cBx[t]は時刻k-tでの合成位置生成部２５の合成位置の値ＢＬxを示す。eBx[t]は時刻k-tでの計算により推定される推定値ＢＬxを示す。
【００５３】
まず、図７（Ａ）に示すように、現在（時刻t=0）の判別サーボフレームＳＶＦ４で得られたＢＬ１の値（gB1[0]）と、１サンプル前から現在までの合成位置生成部２５の合成位置変化量の下位「（cB1[0]×2^5 + gB0[0]）−(cB1[1]×2^5 + gB0[1]）」から可能性のある速度オフセットを引いた１サンプル前の実位置を計算により推定する。なお、ここで、“^n“はn乗を示す。即ち、図７（Ｂ）に示すように、１サンプル前（k-1）の実位置のＢＬ１の推定値（eB1[1]）を算出する。なお、それぞれの速度オフセットを仮定したときの実位置の推定変化量は、「(cB1[0]×2^5 + gB1[0]）−(cB1[1]×2^5 + gB1[1]）−３２、(cB1[0]×2^5 + gB1[0]）−(cB1[1]×2^5 + gB1[1]）＋９６、・・・」である。従って、実位置のＢＬ１の推定値（eB1[1]）をそれぞれの速度オフセットについて求める。同様にして、図７（Ｃ）、（Ｄ）に示すように、実位置のＢＬ１の推定値（eB1[2]）及び推定値（eB1[3]）を算出する。
【００５４】
次に、図８（Ａ）から（Ｆ）に示すように、ｔサンプル前の実位置のＢＬ１の推定値（eB1[t]）を算出した後に、１サンプル前の実位置の下位と、５サンプル前から１サンプル前の合成位置変化量の下位から可能性のある速度オフセットを引いた５サンプル前のＢＬ２の推定値（eB2[5]）を計算する。ここで、図８（Ａ）に示すように、１サンプル前の実位置の下位は「（gB2[1]×2^9＋gB1[1]×2^5 + gB0[1]）」である。
【００５５】
また、図８（Ａ）から（Ｅ）に示すように、５サンプル前から１サンプル前の合成位置変化量の下位は、「(cB2[1]×2^9＋cB1[1]×2^5 + gB0[2]）−(cB2[5]×2^9＋ cB1[5]×2^5 + gB0[5]）」である。なお、それぞれの速度オフセットを仮定したときの実位置の推定変化量は、「(cB2[1]×2^9＋cB1[1]×2^5 + gB0[1]）−(cB2[5]×2^9＋ cB1[5]×2^5 + gB0[5] ）−３２×４、( cB2[1]×2^13＋cB1[1]×2^5 + gB0[1]）−(cB2[5]×2^13＋ cB1[5]×2^5 + gB0[5] ）＋９６×４、・・・)」である。
【００５６】
図８（Ｅ）、（Ｆ）に示すように、ＭＰＵ１４は、可能性のある速度オフセットそれぞれについて、５サンプル前のＢＬ２推定値（eB2[5]）と５サンプル前のサーボフレームＳＶＦ３から得られたＢＬ２（gB2[5]）とを比較し、比較結果が一致したものを速度オフセット推定値として決定する。
【００５７】
次に、ＭＰＵ１４は、速度オフセット推定値を決定した後に、位置オフセットを推定する。即ち、図９（Ａ）から（Ｄ）に示すように、ＭＰＵ１４は、ＢＬ２，ＢＬ３，ＢＬ４について、下位から順に各サーボフレームＳＶＦ３、ＳＶＦ２，ＳＶＦ１から実位置の値（gB2[1]、gB3[2]、gB4[3]）を読み出す。ＭＰＵ１４は、当該実位置の値と、それより下位の推定値（eB1[1]、eB1[2]、gB1[3]など）を含むシリンダ値と、各ブロックのサーボフレームを読み出してから現在までの実位置の推定変化量から現在の位置を推定する。
【００５８】
即ち、図９（Ａ）に示すように、現在（時刻t=0）の位置（eB4[3]、eB3[2]、eB2[0]）を推定する。位置オフセット推定値は、現在の合成位置生成部２５の合成位置から前記現在の推定位置を引いて算出される。
【００５９】
さらに、ＭＰＵ１４は、状態オフセットの推定値を算出すると、その推定値に基づいて状態オフセットの補正処理を実行する。具体的には、補正処理は、状態オブザーバ２４の位置、速度からそれぞれ位置オフセット推定値及び速度オフセット推定値を引く処理である。但し、前述したように、位置オフセットの補正は実行しない場合もある。
【００６０】
以上のように本実施形態によれば、上位シリンダ値が複数サーボフレームに分割されて記録されており、かつ合成位置生成部２５を用いてシーク動作を実行するディスクドライブに於いて、位置や速度の状態オフセットが発生した場合でも、現在位置を短時間で正確に推定することができる。即ち、外乱等による状態オフセットの検出後に、速度オフセットの発生を判定して、速度オフセット推定値を決定した後に位置オフセット推定値を決定する。この速度オフセット推定値と位置オフセット推定値を状態オブザーバの状態に反映させることにより、状態オフセットを補正することができる。従って、効率的に状態オブザーバの予測状態の誤差を修正できるため、シーク動作を確実に実行することができる。
【００６１】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００６２】
１…ディスク、２…スピンドルモータ（ＳＰＭ）、３…アーム、
４…ボイスコイルモータ（ＶＣＭ）、１０…ヘッド、１１…ヘッドアンプＩＣ、
１２…リード／ライト（Ｒ／Ｗ）チャネル、
１３…ハードディスクコントローラ（ＨＤＣ）、１４…マイクロプロセッサ（ＭＰＵ）、
１６…バッファメモリ（ＤＲＡＭ）、１７…フラッシュメモリ、１８…ドライバＩＣ、
１９…ホスト、１００…シリンダ（トラック）。
【図１】
2014211928.tif 000003
【図２】
2014211928.tif 000004
【図３】
2014211928.tif 000005
【図４】
2014211928.tif 000006
【図５】
2014211928.tif 000007
【図６】
2014211928.tif 000008
【図７】
2014211928.tif 000009
【図８】
2014211928.tif 000010
【図９】
2014211928.tif 000011