(57)【要約】      （修正有）【課題】サーボ情報分割方法を採用した場合でも、シーク動作中にヘッドの現在位置を正確に検出する。【解決手段】ディスク記憶装置は、ディスクと、リードモジュールと、サーボ制御手段とを備える。ディスクは、径方向の位置を検出するためのサーボ情報が複数のサーボ領域に分割されて記録されている。リードモジュールは、ヘッドを使用して複数のサーボ領域からサーボ情報を読み出す。サーボ制御手段は、状態オブザーバを含み、ヘッドの現在位置が不確定の状態で目標位置までのシーク動作を実行する場合に、現在位置を確定するまでの間は仮の位置を含む初期値に基づいてシーク動作を実行しながら初期値に基づいて状態オブザーバを動作させて、リード手段により複数のサーボ領域から読み出されたサーボ情報と状態オブザーバの推定結果に基づいて現在位置を確定し、当該確定された現在位置に基づいて目標位置までのシーク動作を制御する。【選択図】図１
2014110062.tif 000002
【特許請求の範囲】
【請求項１】
径方向の位置を検出するためのサーボ情報が複数のサーボ領域に分割されて記録されているディスクと、
ヘッドを使用して前記複数のサーボ領域から前記サーボ情報を読み出すリード手段と、
状態オブザーバを含み、前記ヘッドの現在位置が不確定の状態で目標位置までのシーク動作を実行する場合に、現在位置を確定するまでの間は仮の位置を含む初期値に基づいてシーク動作を実行しながら前記初期値に基づいて前記状態オブザーバを動作させて、前記リード手段により前記複数のサーボ領域から読み出されたサーボ情報と前記状態オブザーバの推定結果に基づいて前記現在位置を確定し、当該確定された前記現在位置に基づいて前記目標位置までの前記シーク動作を制御するサーボ制御手段と
を具備するディスク記憶装置。
【請求項２】
前記サーボ情報は上位の位置情報と下位の位置情報とに分割され、
前記下位の位置情報は前記複数のサーボ領域の全てに記録されており、
前記上位の位置情報は前記複数のサーボ領域に分割されて記録されている請求項１に記載のディスク記憶装置。
【請求項３】
前記サーボ制御手段は、
前記現在位置を確定するまでの前記仮の位置として、前記目標位置を識別するための前記上位の位置情報及び現時点の位置で取得できる前記下位の位置情報を使用して設定し、
前記設定した仮の位置及び前記ヘッドを移動させる際の初期設定の推定速度を前記初期値としてシーク動作を実行させる請求項２に記載のディスク記憶装置。
【請求項４】
前記サーボ制御手段は、
現在位置を確定するまでの間の前記仮の位置を含む初期値に基づいたシーク動作の実行中に、前記複数のサーボ領域から前記現在位置を算出するための必要なサーボ情報を読み込み、
前記サーボ情報及び前記状態オブザーバの推定速度に基づいて前記現在位置を確定する請求項１に記載のディスク記憶装置。
【請求項５】
前記サーボ制御手段は、
現在位置を確定するまでの間の前記仮の位置を含む初期値に基づいたシーク動作の実行中に、前記複数のサーボ領域から前記現在位置を算出するための必要な前記上位の位置情報と前記下位の位置情報を読み込み、
前記上位の位置情報と前記下位の位置情報を合成したサーボ情報及び前記状態オブザーバの推定速度に基づいて前記現在位置を確定する請求項２又は請求項３のいずれか１項に記載のディスク記憶装置。
【請求項６】
前記ディスクに対してデータの書き込み、読み出しを行なう複数のヘッドを有し、
前記サーボ制御手段は、
前記ヘッドの現在位置が不確定の状態で実行する前記目標位置までのシーク動作として、
ヘッドの切替えに伴うシーク動作を実行する場合に、現在位置を確定するまでの間は仮の位置を含む初期値に基づいてシーク動作を実行しながら前記初期値に基づいて前記状態オブザーバを動作させる請求項１から請求項５のいずれか１項に記載のディスク記憶装置。
【請求項７】
前記サーボ制御手段は、
前記ヘッドの現在位置が不確定の状態で実行する前記目標位置までのシーク動作として、
退避位置から前記ヘッドを前記ディスク上の目標位置まで移動させるロード動作を実行する場合に、現在位置を確定するまでの間は仮の位置を含む初期値に基づいてシーク動作を実行しながら前記初期値に基づいて前記状態オブザーバを動作させる請求項１から請求項５のいずれか１項に記載のディスク記憶装置。
【請求項８】
前記サーボ情報は、前記ディスク上の径方向の位置であるシリンダを検出するシリンダ情報を含み、
前記シリンダ情報は上位シリンダ値と下位シリンダ値とに分割され、
前記下位シリンダ値は前記複数のサーボ領域の全てに記録されており、
前記上位シリンダ値は前記複数のサーボ領域に分割されて記録されている請求項１に記載のディスク記憶装置。
【請求項９】
径方向の位置を検出するためのサーボ情報が複数のサーボ領域に分割されて記録されているディスクを有するディスク記憶装置に適用するサーボ制御方法であって、
ヘッドを使用して前記複数のサーボ領域から前記サーボ情報を読み出し、
前記ヘッドの現在位置が不確定の状態で目標位置までのシーク動作を実行する場合に、現在位置を確定するまでの間は仮の位置を含む初期値に基づいてシーク動作を実行しながら前記初期値に基づいて状態オブザーバを動作させ、
前記複数のサーボ領域から読み出されたサーボ情報と前記状態オブザーバの推定結果に基づいて前記現在位置を確定し、
前記確定された前記現在位置に基づいて前記目標位置までのシーク動作を制御するサーボ制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、ディスク記憶装置及びサーボ制御方法に関する。
【背景技術】
【０００２】
近年、ハードディスクドライブ（以下、単にディスクドライブと表記する）等のディスク記憶装置の分野では、記憶媒体であるディスクの高記録密度化が推進されている。ディスクドライブでは、サーボ情報の記録領域であるサーボ領域（サーボフレームとも呼ばれる）がディスク上の周方向に一定の間隔で配置される。サーボ情報は、ディスク上のヘッドの位置を検出するための位置情報である。サーボ情報は、シリンダ（トラック）の位置を識別するシリンダ番号（トラック番号）や、シリンダ内のセクタを識別するセクタ番号を含む。
【０００３】
ところで、ディスクの高記録密度化のために、１つのシリンダを識別するシリンダ番号を構成するシリンダコードを、シリンダ内の複数のサーボ領域に分割して記録するサーボ情報分割方法が提案されている。セクタ番号についても、同様に複数のサーボ領域に分割して記録する方法が提案されている。これにより、各サーボ領域のサイズを削減できるため、結果としてシリンダ毎のユーザデータを記録するデータ領域を増大できる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国再発行特許発明第３９８３１号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００５】
サーボ情報分割方法では、ディスクドライブは、例えば、ヘッド切替えを伴わないシーク動作や通常の再生動作時には、同一シリンダ内の複数のサーボ領域からシリンダ番号の各部分を読み出して再構成することにより、ヘッドの現在位置を検出できる。しかし、例えば、ヘッド切替えを伴うシーク動作や、ヘッドを退避位置からディスク上にロードするためのロード動作時には、最初の位置が分からず、状態オブザーバの推定位置も信用できないため、シーク中にヘッドの現在位置を正確に検出できない状況が発生する。
【０００６】
そこで、本発明の目的は、サーボ情報分割方法を採用した場合でも、ヘッド切替えを伴うシーク動作、及びロード動作中にヘッドの現在位置を正確に検出できることを実現することにある。
【課題を解決するための手段】
【０００７】
本実施形態のディスク記憶装置は、ディスクと、リード手段と、サーボ制御手段とを備えた構成である。前記ディスクは、径方向の位置を検出するためのサーボ情報が複数のサーボ領域に分割されて記録されている。前記リード手段は、ヘッドを使用して前記複数のサーボ領域から前記サーボ情報を読み出す。前記サーボ制御手段は、状態オブザーバを含み、前記ヘッドの現在位置が不確定の状態で目標位置までのシーク動作を実行する場合に、現在位置を確定するまでの間は仮の位置を含む初期値に基づいてシーク動作を実行しながら前記初期値に基づいて前記状態オブザーバを動作させて、前記リード手段により前記複数のサーボ領域から読み出されたサーボ情報と前記状態オブザーバの推定結果に基づいて前記現在位置を確定し、当該確定された前記現在位置に基づいて前記目標位置までの前記シーク動作を制御する。
【図面の簡単な説明】
【０００８】
【図１】実施形態に関するディスクドライブの構成を説明するためのブロック図。
【図２】実施形態に関するサーボシステムの概念を説明するためのブロック図。
【図３】実施形態に関するサーボ領域の構成を説明するための図。
【図４】実施形態に関する分割されたサーボ情報の一例を説明するための図。
【図５】実施形態に関するシーク動作時の現在位置の算出方法を説明するための図。
【図６】実施形態に関するシーク動作時の現在位置の換算方法を説明するための図。
【図７】実施形態に関するシーク動作時の現在位置の換算方法を説明するための図。
【図８】実施形態に関するヘッド切替えに伴うシーク動作を説明するための図。
【図９】実施形態に関するシーク動作時の現在位置の算出手順を説明するためのフローチャート。
【発明を実施するための形態】
【０００９】
以下図面を参照して、実施形態を説明する。
【００１０】
［ディスクドライブの構成］
図１は、本実施形態のディスクドライブの要部を示すブロック図である。
【００１１】
図１に示すように、ディスクドライブは大別して、ヘッド・ディスクアセンブリ（head-disk assembly：ＨＤＡ）、ヘッドアンプ集積回路（以下、ヘッドアンプＩＣ）１１と、ハードディスクコントローラ（ＨＤＣ）１５と、ドライバＩＣ１８とから構成されている。
【００１２】
ＨＤＡは、記憶媒体であるディスク１と、スピンドルモータ（ＳＰＭ）２と、ヘッド１０を搭載しているアーム３と、ボイスコイルモータ（ＶＣＭ）４とを有する。ディスク１は、スピンドルモータ２により回転する。アーム３とＶＣＭ４は、アクチュエータを構成している。アクチュエータはＶＣＭ４の駆動により、アーム３に搭載されているヘッド１０をディスク１上の指定の位置まで移動制御する。ＶＣＭ４は、ドライバＩＣ１８からの駆動電流により駆動制御される。
【００１３】
ディスク１には、データが記録される多数のシリンダ（トラック）１００が構成される。ヘッド１０はスライダを本体として、当該スライダに実装されているライトヘッド１０Ｗ及びリードヘッド１０Ｒを有する。リードヘッド１０Ｒは、ディスク１上のシリンダ１００に記録されているデータを読み出す。ライトヘッド１０Ｗは、ディスク１上にデータを書き込む。データは、後述するサーボ情報やユーザデータである。なお、ヘッド１０は少なくとも２個であり、１枚のディスク１の両面に対してデータを書き込み、読み出す。
【００１４】
ヘッドアンプＩＣ１１は、リードアンプ及びライトドライバを有する。リードアンプは、リードヘッド１０Ｒにより読み出されたリード信号を増幅して、リード／ライト（Ｒ／Ｗ）チャネル１２に伝送する。一方、ライトドライバは、Ｒ／Ｗチャネル１２から出力されるライトデータに応じたライト電流をライトヘッド１０Ｗに伝送する。
【００１５】
ＨＤＣ１５は、Ｒ／Ｗチャネル１２と、インターフェースコントローラ１３と、マイクロプロセッサ（ＭＰＵ）１４とを含む１チップの集積回路から構成されている。Ｒ／Ｗチャネル１２は、リードチャネル１２Ｒとライトチャネル１２Ｗとを含む。リードチャネル１２Ｒは、後述するように、リード信号を処理してデータ（サーボ情報を含む）を復号するリードモジュールである。ライトチャネル１２Ｗはライトデータの信号処理を実行するライトモジュールである。
【００１６】
インターフェースコントローラ１３は、ホスト１９とＲ／Ｗチャネル１２との間のデータ転送を制御する。インターフェースコントローラ１３はバッファメモリ（ＤＲＡＭ）１６を制御して、リードデータ及びライトデータをバッファメモリ１６に一時的に格納することでデータ転送制御を実行する。また、インターフェースコントローラ１３はフラッシュメモリ（flash memory）１７を制御し、例えばデータを一時的に格納するキャッシュ領域として使用する。
【００１７】
ＭＰＵ１４はディスクドライブのメインコントローラであり、ドライバＩＣ１８を介してＶＣＭ４を制御してヘッド１０の位置決め制御（サーボ制御）を実行する。さらに、ＭＰＵ１４は、Ｒ／Ｗチャネル１２を介してデータの記録再生を制御する。
【００１８】
［サーボシステムの構成］
図２に示すように、本実施形態のディスクドライブには、ヘッド１０をディスク１上の目標位置に位置決めするサーボ制御を実行するサーボシステム２０が組み込まれている。サーボシステム２０は、ソフトウェアを含むＭＰＵ１４の機能だけでなく、Ｒ／Ｗチャネル１２のサーボ情報の再生機能及びドライバＩＣ１８によるＶＣＭ４の駆動制御機能により実現されている。
【００１９】
図２に示すように、サーボシステム２０は、位置誤差演算器２１、サーボコントローラ（伝達関数Ｇ）２２を含むフィードバック制御系、状態オブザーバ（state observer）２４、及び現在位置計算部２５を含む。位置誤差演算器２１は、ヘッド１０の目標位置（ｄ）２００と、状態オブザーバ２４により観測される現在位置２０４との位置誤差（ｅ）２０１を算出する。
【００２０】
サーボコントローラ２２は、ＭＰＵ１４により実現される機能であり、制御値（ｕ）２０２を出力して位置決め誤差（ｅ）２０１を解消するようにプラント（伝達関数Ｐ）２３を制御する。プラント２３はＶＣＭ４を含むアクチュエータであり、ヘッド１０を目標位置（ｄ）２００まで移動制御する。状態オブザーバ２４は、ＭＰＵ１４の演算により実現される内部モデルを有する。状態オブザーバ２４は、サーボコントローラ２２からの制御値（ｕ）２０２と、現在位置計算部２５により算出される現在位置情報を入力して、ヘッド１０の現在位置２０４を算出（推定）する。現在位置計算部２５は、プラント２３からの出力（ｙ）２０３に基づいて、後述するように、分割して記録されているサーボ情報から計算した現在位置又は仮の現在位置を示す情報を算出する。
【００２１】
［サーボ制御］
以下、図３から図９を参照して、本実施形態のサーボ制御を説明する。
【００２２】
図３に示すように、本実施形態のディスク１上の各シリンダ１００には、複数のサーボ領域（サーボフレーム）１１０が一定の間隔で配置されている。サーボ領域１１０間は、ユーザデータを記録するデータ領域１２０である。本実施形態では、サーボ情報は４つのサーボ領域に分割されて記録されており、分割された４つのサーボ領域を便宜的に４種類のサーボフレームＳＶＦ１〜ＳＶＦ４として取り扱う。
【００２３】
本実施形態では、サーボ情報は複数のサーボ領域１１０に分割して記録されている。具体的には、図４に示すように、シリンダ１００を識別するシリンダ番号の上位シリンダ番号は、４個のサーボフレームＳＶＦ１〜ＳＶＦ４のそれぞれに分割されて記憶される。当該シリンダ番号の下位シリンダ番号は、４個のサーボフレームＳＶＦ１〜ＳＶＦ４のそれぞれに共通に記憶される。
【００２４】
ここで、シリンダ番号は、例えば１２ビットのシリンダコードからなり、下位シリンダ番号が４ビットからなる。また、上位シリンダ番号は、２ビットのシリンダ値ＢＬ１〜ＢＬ４に分割される。なお、下位シリンダ番号は、４ビットからなるシリンダ値ＢＬ０とする。
【００２５】
ディスクドライブでは、ＭＰＵ１４は、ヘッド１０をシークさせて、ディスク１上の目標シリンダに位置決めするサーボ制御を実行して、目標シリンダに対してユーザデータのリードまたはライトを実行する。このサーボ制御を実行する場合に、ＭＰＵ１４は、ヘッド１０の現在位置（現在シリンダ）を確定するには、４個のサーボフレームＳＶＦ１〜ＳＶＦ４から分割された上位シリンダ番号を読み出す必要がある。即ち、ＭＰＵ１４は、４サンプリング分で読み込んだ各シリンダ値ＢＬ１〜ＢＬ４を合成することで、現在位置の上位シリンダが確定する。
【００２６】
また、ＭＰＵ１４は、サーボ情報をサンプリングして読み出す際に、下位シリンダ番号（シリンダ値ＢＬ０）については各サンプリング時にサーボフレームＳＶＦ１〜ＳＶＦ４のいずれからも読み出すことができる。最終的に、ＭＰＵ１４は、合成した上位シリンダ番号と下位シリンダ番号とから、ヘッド１０の現在位置（現在シリンダ）を確定する。
【００２７】
図５（Ａ）、（Ｂ）は、シーク動作時にヘッド１０の現在位置を算出する方法を説明するための図である。図５（Ａ）は、シリンダ番号（ＣＬ番号）に対応するサーボフレームＳＶＦ１〜ＳＶＦ４に記録されているシリンダ値ＢＬ０〜ＢＬ４の具体例を示す図である。図５（Ｂ）は、シーク動作時に、サーボフレームＳＶＦ１〜ＳＶＦ４からヘッド１０により読み出されるシリンダ番号（ＣＬ番号）を説明するための図である。
【００２８】
図５（Ｂ）に示すように、ヘッド１０がディスク１上の位置５００で維持されている場合には、ＭＰＵ１４は、サーボフレームＳＶＦ４の時点で、分割された上位シリンダ番号の各シリンダ値ＢＬ１〜ＢＬ４（１，２，３，３）及び下位シリンダ番号のシリンダ値ＢＬ０（１４）を取得する。ＭＰＵ１４は、取得した各シリンダ値ＢＬ０〜ＢＬ４を合成してＣＬ番号１７９０をヘッド１０の正しい現在位置（現在シリンダ）として確定できる。
【００２９】
ここで、図５（Ｂ）に示すように、ヘッド１０がディスク１上のＣＬ番号１７９０のシリンダから他のシリンダの位置５１０まで移動した場合、ＭＰＵ１４は、正しいＣＬ番号１７９３ではなく、間違ったＣＬ番号１５３７をヘッド１０の現在位置として算出する。即ち、ＭＰＵ１４は、各サンプリング時に、ＣＬ番号１７９０〜１７９３の各シリンダ値ＢＬ４〜ＢＬ１から上位シリンダ番号（１，２，０，０）及びＣＬ番号１７９３のシリンダ値ＢＬ０から下位シリンダ番号（１）を取得する。従って、ＭＰＵ１４は、正しいＣＬ番号１７９３から２５６シリンダ分だけずれた誤ったＣＬ番号１５３７を取得することになる。
【００３０】
そこで、本実施形態では、ＭＰＵ１４は、例えばヘッド切替えを伴うシーク動作が発生した場合、ヘッド１０の現在位置として正しいＣＬ番号を算出する処理を実行する。
【００３１】
図８に示すように、あるＣＬ番号の位置でヘッド切替えの発生時点８００でシーク動作（８１０）を開始する場合、ＭＰＵ１４は、上位シリンダ番号の全てのコードを取得できないため、切り替え後のヘッド１０の現在位置を確定できない。但し、ＭＰＵ１４は、各サンプリング時に下位シリンダ番号については毎回取得できる。
【００３２】
そこで、図７（Ａ）に示すように、ＭＰＵ１４は、現在位置が確定するまで、シーク動作での目標位置（目標ＣＬ番号）の上位シリンダ番号の各シリンダ値（Ｔ４〜Ｔ１）と、現在位置の下位シリンダ番号（Ｘ０）とを合成したシリンダ番号（現在ＣＬ-1）を現在位置として読み替える（仮定する）。
【００３３】
なお、図６（Ａ）は目標位置のシリンダ番号（目標ＣＬ番号）である。また、図６（Ｂ）は、切り替え後のヘッド１０の本来の現在位置のシリンダ番号（現在ＣＬ番号Ｘ４〜Ｘ０）である。ここで、ヘッド切り替え直後で、いずれのサーボフレームＳＶＦ１〜ＳＶＦ４からもサーボ情報が読み出されていない場合、シリンダ番号の各シリンダ値（Ｘ４〜Ｘ０）は未確定である。
【００３４】
ここで、図７（Ｂ）に示すように、現在位置の下位シリンダ番号の全てのコードを使用せずに、現在位置の下位シリンダ番号の一部（例えば上位ビット）を含むシリンダ番号（現在ＣＬ-2）でもよい。また、下位シリンダ番号は予め決めておいた値に置き換えたシリンダ番号でもよい。
【００３５】
ＭＰＵ１４は、読み替えた現在位置（現在ＣＬ-1）に基づいて、図２に示すようなフィードバック制御を実行してヘッド１０を目標位置（目標ＣＬ番号）に位置決めするサーボ制御を実行する。この場合、状態オブザーバ２４は、仮の初期値として読み替えた現在位置（現在ＣＬ-1）が設定されて、シーク動作に応じた変化位置と速度を推定する。なお、状態オブザーバ２４は、仮の初期値の速度値として、サーボ情報を読み込んで得られた位置を算出する際の偏心量から計算した偏心速度を用いる。また、ヘッド１０の現在位置は読み替えで目標位置の近傍であると認識されるため、ＶＣＭ４に大電流が流れることや、目標位置に対してヘッド１０が遠ざかる方向に大きく動くような事態は生じない。
【００３６】
ここで、図８に示すように、ＭＰＵ１４（状態オブザーバ２４）が推定している位置８１０と、ヘッド１０の実際の現在位置８２０とが数シリンダ分だけずれている状態であると想定する。ＭＰＵ１４は、現在位置を確定するのに十分なサーボ情報を読み込んで現在位置を確定できる段階で、現在位置８３０を計算する。即ち、ＭＰＵ１４は、シーク動作中にサーボ情報を読み込んだ際に間引かれた位置情報（シリンダ番号）と推定速度とに基づいて現在位置８３０を算出する。
【００３７】
次に、図８に示すように、ＭＰＵ１４は、算出した現在位置８３０と状態オブザーバ２４で推定した速度情報を状態オブザーバ２４の初期値とするフィードバック制御により、目標位置（目標ＣＬ番号）までのシーク動作８４０を開始する。
【００３８】
以下、図９のフローチャートを参照して、ＭＰＵ１４が現在位置８３０を算出する手順を説明する。
【００３９】
ここで、図５（Ｂ）に示す例では、ＭＰＵ１４は、サーボフレームＳＶＦ４の時点で、各シリンダ値ＢＬ１〜ＢＬ４に分割された上位シリンダ番号及びシリンダ値ＢＬ０の下位シリンダ番号を取得する。ＭＰＵ１４は、取得した各シリンダ値ＢＬ０〜ＢＬ４を合成したシリンダ番号（ここではＣＬ番号１７９３）をヘッド１０の正しい現在位置８３０として確定する(図８を参照)。以下、具体的に説明する。
【００４０】
まず、ＭＰＵ１４は、サーボフレームＳＶＦｎ（ｎ＝４）からサーボ情報を読み込む(ブロック９００)。ここで、現在時刻をｋとし、サーボ情報の読み込み位置を設定するための設定値ｉの初期設定（ｉ＝１）を行なう(ブロック９０１)。
【００４１】
ここで、図５（Ａ）に示すように、現在時刻ｋにおいてサーボフレームＳＶＦ４で得られた下位シリンダ番号のシリンダ値をＢＬ０[k]および上位シリンダ番号のシリンダ値をＢＬ１[k]とし、さらに状態オブザーバ２４の推定速度をv[k][シリンダ数／サンプル]とする。速度v[k]は、図５（Ｂ）に示す例では、１サンプルで１シリンダである。ＭＰＵ１４は、現在のサンプルでサーボフレームＳＶＦｎからサーボ情報を読み込む。以下、シリンダ値を省略してＢＬ０〜ＢＬ４で表記する。
【００４２】
さらに、１サンプル前のサーボフレームＳＶＦ３で得られた下位シリンダ番号をＢＬ０[k-1]及び上位シリンダ番号をＢＬ２[k-1]とする。２サンプル前のサーボフレームＳＶＦ２で得られた下位シリンダ番号をＢＬ０[k-2]及び上位シリンダ番号をＢＬ３[k-2]とする。また、３サンプル前のサーボフレームＳＶＦ１で得られた下位シリンダ番号をＢＬ０[k-3]及び上位シリンダ番号をＢＬ４[k-3]とする。
【００４３】
ＭＰＵ１４は、サーボフレームＳＶＦ４で得られたＢＬ０[k]、ＢＬ１[k]、及び速度v[k]を使用して１サンプル前のＢＬ１[k-1]を推定し、サーボフレームＳＶＦ３で得られるＢＬ２[k]への繰り上がり又は繰り下がりをチェックする(ブロック９０２のＮＯ，９０３)。
【００４４】
ここで、繰り上がり又は繰り下がりのチェックは、時刻ｋ-1からｋの間にＢＬ１の上限値または下限値を跨ぐか否かで判断する。この場合、図５（Ａ）に示すように、ＢＬ１の上限値は３であり、下限値が０である。具体的には、ＭＰＵ１４は、例えばＢＬ１[k-1]が３であり、ＢＬ１[k]が０の場合には、ＢＬ２[k]への繰り上がりが発生したと判定する。また、ＭＰＵ１４は、例えばＢＬ１[k-1]が０であり、ＢＬ１[k]が３の場合には、ＢＬ２[k]に繰り下がりが発生したと判定する。即ち、ＭＰＵ１４は、１サンプル前のＢＬ２[k-1]と、ＢＬ２[k]への繰り上がり又は繰り下がりの結果に基づいて、現時点のＢＬ２[k]のシリンダ値を決定する(ブロック９０４)。
【００４５】
以下同様にして、ＭＰＵ１４は、設定値ｉをインクリメントして、ブロック９０２から９０４までの処理を繰り返す(ブロック９０５)。即ち、ＭＰＵ１４は、決定したＢＬ２[k]、ＢＬ１[k]、ＢＬ０[k]、v[k]、及びv[k-1]を使用して、サーボフレームＳＶＦ２で得られるＢＬ３[k]への繰り上がり又は繰り下がりをチェックする(ブロック９０３)。ＭＰＵ１４は、２サンプル前のＢＬ３[k-2]と、ＢＬ３[k]への繰り上がり又は繰り下がりの結果に基づいて、現時点のＢＬ３[k]のシリンダ値を決定する(ブロック９０４)。
【００４６】
さらに、ＭＰＵ１４は、決定したＢＬ３[k]、ＢＬ２[k]、ＢＬ１[k]、ＢＬ０[k]、v[k]、v[k-1]及びv[k-2]を使用して、サーボフレームＳＶＦ１で得られるＢＬ４[k]への繰り上がり又は繰り下がりをチェックする(ブロック９０３)。ＭＰＵ１４は、３サンプル前のＢＬ４[k-3]と、ＢＬ４[k]への繰り上がり又は繰り下がりの結果に基づいて、現時点のＢＬ４[k]のシリンダ値を決定する(ブロック９０４)。
【００４７】
以上の計算手順の具体例を、図５（Ａ），（Ｂ）を参照して説明する。
【００４８】
ここで、図５（Ｂ）に示すように、ヘッド１０は１サンプルで１シリンダの速度で移動する（位置５１０まで）。図５（Ａ）に示すように、ＭＰＵ１４は、サーボフレームＳＶＦ１から上位シリンダ番号のＢＬ４（＝１）の読み込みを開始して、サーボフレームＳＶＦ４から読み込む時点でヘッド１０の現在位置（ここではＣＬ番号１７９３）を算出する。
【００４９】
ここで前述したように、図５（Ｂ）に示すような位置５１０までのシークでは、ＭＰＵ１４は、サーボフレームＳＶＦ４の時点で、ＢＬ４（＝１）、ＢＬ３（＝２）、ＢＬ２（＝０）、ＢＬ１（＝０）、ＢＬ０（＝１）を合成した誤ったＣＬ番号１５３７を算出する。
【００５０】
そこで、図９を参照した計算手順により、ＭＰＵ１４は、サーボフレームＳＶＦ４の時点でＢＬ４（＝１）、ＢＬ３（＝３）、ＢＬ２（＝０）、ＢＬ１（＝０）、ＢＬ０（＝１）を合成した正しいＣＬ番号１７９３を算出する。
【００５１】
即ち、ヘッド１０の移動速度が１サンプルで１シリンダであることを既知として、ＭＰＵ１４は、サーボフレームＳＶＦ４から上位ＣＬ番号のＢＬ１（＝０）及び下位ＣＬ番号のＢＬ０（＝１）を取得する。これらのシリンダ値（ＢＬ１、ＢＬ０）に基づいて、ＭＰＵ１４は、現在位置でのＢＬ２[k]が１サンプル前のサーボフレームＳＶＦ３で得られたＢＬ２[k-1]から変化していないと判定する。
【００５２】
また、ＭＰＵ１４は、サーボフレームＳＶＦ３で得られたＢＬ２（＝０）から、現在位置でのＢＬ３[k]が２サンプル前のＢＬ３[k-2]の値（２）から１だけ増加して値３になっていることを算出する。これらの算出結果から、ＭＰＵ１４は、現在位置でのＢＬ４が２サンプル前のサーボフレームＳＶＦ１で得られたＢＬ４[k-2]の値（１）から変化していないと判定する。これにより、ＭＰＵ１４は、位置５１０でＢＬ４（＝１）、ＢＬ３（＝３）、ＢＬ２（＝０）、ＢＬ１（＝０）、ＢＬ０（＝１）を合成した正しいＣＬ番号１７９３を算出する。
【００５３】
以上のようにして、ヘッド切替えを伴うシーク動作を開始する場合に、直前のヘッド１０の現在位置（現在シリンダ番号）が未確定であっても、正しい現在位置を確定できる。即ち、仮の現在位置からのシーク動作により得られる下位シリンダ番号、上位シリンダ番号の一部、及び推定速度を使用して、ヘッド１０の現在位置である正しいシリンダ番号を算出できる。この場合、現在位置が確定するまでの間、仮の初期値を用いて状態オブザーバにより位置と速度を推定する。現在位置が確定した後に、現在位置の位置情報と推定速度情報を状態オブザーバの初期値に設定することにより、目標位置までのシーク動作を実行する。
【００５４】
従って、上位シリンダ番号を複数のシリンダ値に分割して記録するサーボ情報分割方法の場合でも、大幅なシーク時間を要し、あるいはシーク動作に失敗するような事態を回避して確実なシーク動作を実現できる。これにより、本実施形態を適用することにより、高記録密度化と共に確実なシーク動作を可能とするディスクドライブを提供できる。
【００５５】
なお、本実施形態では、ヘッド切替えを伴うシーク動作の場合について説明したが、これに限ることなく、ロード動作の場合についても適用できる。ロード動作とは、ヘッド１０を退避位置からディスク上の目標位置まで移動させるシーク動作である。ロード動作では、ＭＰＵ１４は、サーボ情報が見つかるまでＶＣＭ４がある一定速度となるように速度制御を実行する。従って、ＭＰＵ１４は、サーボ情報が見つかった後、ヘッド１０の現在位置が確定するまで十分な時間だけ速度制御を継続する。
【００５６】
ＭＰＵ１４は、この速度制御の期間にサーボ情報を読み込んで得られたシリンダ値と速度制御の速度仕様を仮の初期値として設定することで、状態オブザーバ２４により位置と速度を推定する処理を行なう。その後、ＭＰＵ１４は、状態オブザーバ２４から得られた推定位置と推定速度とに基づいて現在位置を算出する。ＭＰＵ１４は、算出した現在位置と状態オブザーバ２４で推定した推定速度情報を初期値としてシーク動作を実行する。
【００５７】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００５８】
１…ディスク、２…スピンドルモータ（ＳＰＭ）、３…アーム、
４…ボイスコイルモータ（ＶＣＭ）、１０…ヘッド、１１…ヘッドアンプＩＣ、
１２…リード／ライト（Ｒ／Ｗ）チャネル、１３…インターフェースコントローラ、
１４…マイクロプロセッサ（ＭＰＵ）、１５…ハードディスクコントローラ（ＨＤＣ）、
１６…バッファメモリ（ＤＲＡＭ）、１７…フラッシュメモリ、１８…ドライバＩＣ、
１９…ホスト、１００…シリンダ（トラック）。
【図１】
2014110062.tif 000003
【図２】
2014110062.tif 000004
【図３】
2014110062.tif 000005
【図４】
2014110062.tif 000006
【図５】
2014110062.tif 000007
【図６】
2014110062.tif 000008
【図７】
2014110062.tif 000009
【図８】
2014110062.tif 000010
【図９】
2014110062.tif 000011