(57)【要約】【課題】サーボ割り込み処理の実行のスキップが発生した場合でも、装置の性能劣化やサーボ制御処理が不安定になる事態を回避することにある。【解決手段】本実施形態によれば、ディスク記憶装置は、割り込み処理モジュールと、サーボ制御モジュールとを具備する。前記割り込み処理モジュールは、サーボ割り込み処理の実行の可否を判定し、前記判定結果の否決の回数を保持する。前記サーボ制御モジュールは、ヘッドの検出位置に追従して前記ヘッドの目標位置との位置誤差である推定現在位置を算出するための内部モデルを含み、前記割り込み処理手段による前記判定結果が可決の場合に前記内部モデルの状態を前記否決の回数に基づいて補正し、前記内部モデルの演算結果に基づいてヘッド位置決め制御を実行する。【選択図】図１
2014110063.tif 000002
【特許請求の範囲】
【請求項１】
サーボ割り込み処理の実行の可否を判定し、前記判定結果の否決の回数を保持する割り込み処理手段と、
ヘッドの検出位置に追従して前記ヘッドの目標位置との位置誤差である推定現在位置を算出するための内部モデルを含み、前記割り込み処理手段による前記判定結果が可決の場合に前記内部モデルの状態を前記否決の回数に基づいて補正し、前記内部モデルの演算結果に基づいてヘッド位置決め制御を実行するサーボ制御手段と
を具備するディスク記憶装置。
【請求項２】
前記サーボ割り込み処理を禁止して優先的にコマンド処理を実行するコマンド処理手段を有し、
前記割り込み処理手段は、
サンプリング時点毎のサーボ割り込み要求に対して、前記コマンド処理の実行状態に基づいて前記サーボ割り込み処理の可否を判定し、
前記判定結果の否決に応じて、前記コマンド処理の実行経過時間に対応する前記否決の回数をカウントして保持する請求項１に記載のディスク記憶装置。
【請求項３】
前記サーボ制御手段は、
前記コマンド処理の実行終了後に前記サーボ割り込み処理が復帰した際に、前記否決の回数に対応する時間に基づいて前記内部モデル演算の状態変数を補正する請求項２に記載のディスク記憶装置。
【請求項４】
前記コマンド処理手段は、
前記コマンド処理の実行中に発生する前記サーボ割り込み処理を禁止し、
前記前記コマンド処理の実行終了後に前記サーボ割り込み処理を許可する請求項２または請求項３のいずれか１項に記載のディスク記憶装置。
【請求項５】
コマンド処理を実行するコマンド処理手段を有し、
前記コマンド処理手段は、
前記コマンド処理を実行時のサーボ割り込み要求の否決に応じて、前記サーボ割り込み処理を禁止する請求項１に記載のディスク記憶装置。
【請求項６】
前記割り込み処理手段は、
前記否決の回数を、前記サーボ割り込み処理の実行経過時間を計測するタイマ値に基づいてカウントして保持する請求項１から請求項５のいずれか１項に記載のディスク記憶装置。
【請求項７】
前記サーボ制御手段は、
前記推定現在位置に基づいて前記ヘッドの位置を変化させるための制御入力値を算出するフィードバック制御演算及びサンプリング時点での次回の内部モデルの状態予測値を算出する状態予測演算を実行し、
前記サーボ割り込み処理の開始時に前記否決の回数に基づいて前記状態予測演算の時間変数により前記状態予測値を補正する請求項１から請求項６のいずれか１項に記載のディスク記憶装置。
【請求項８】
ヘッドの検出位置に追従して前記ヘッドの目標位置との位置誤差である推定現在位置を算出するための内部モデルを含み、ヘッド位置決め制御を実行するディスク記憶装置に適用するサーボ制御方法であって、
サーボ割り込み処理の実行の可否を判定し、
前記判定結果の否決の回数を保持し、
前記判定結果が可決の場合に前記内部モデルの状態を前記否決の回数に基づいて補正するサーボ制御方法。
【請求項９】
サンプリング時点毎に制御系の割り込み処理の実行の可否を判定し、前記判定結果の否決の回数を保持する割り込み処理手段と、
制御対象の出力値に追従して目標値との誤差である推定入力値を算出するための内部モデルを含み、前記割り込み処理手段による前記判定結果が可決の場合に前記内部モデルの状態を前記否決の回数に基づいて補正し、前記内部モデルの演算結果に基づいて前記制御系の演算を実行する演算手段と
を具備する情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、ディスク記憶装置、制御方法及び情報処理装置に関する。
【背景技術】
【０００２】
従来、例えばハードディスクドライブ（ＨＤＤ）などのディスク記憶装置では、ホストからのリードライト動作のコマンド処理以外に、ヘッドをディスク上の目標位置に位置決めするための位置決め制御を行なうサーボ処理が実行される。
【０００３】
ＨＤＤのコントローラは、ディスク上のサーボ情報を読み出すサンプリング時点でサーボ割り込み要求を生成し、サーボ割り込み処理の実行に応じてサーボ処理に移行する。この場合、コントローラは、コマンド処理を優先的に実行するため、コマンド処理の実行中であればサーボ割り込み処理の実行を否決してスキップする。従って、コマンド処理の実行中はサーボ割り込み抜けが発生する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−２１７９１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ＨＤＤは、状態オブザーバを含むフィードバック制御システムの方法によりサーボ処理を実行する。この場合、状態オブザーバは、制御対象に相当する内部モデルの演算処理を実行して、実際にはヘッドの現在位置を推定する。状態オブザーバは、サーボ情報を使用して算出される実際のヘッド位置に内部モデル状態が追従するようにモデル演算処理を実行する。
【０００６】
ここで、コマンド処理の実行中にサーボ割り込み処理の実行がスキップされると、その期間のサーボ情報が得られず、実際のヘッド位置を検出できない状態となる。従って、コマンド処理の終了直後にサーボ処理を開始する際に、状態オブザーバは実際のヘッドの位置から乖離した推定位置に基づいてモデル演算処理を実行することになる。これにより、特にサーボ割り込み処理の実行のスキップ回数が多くなると、フィードバック制御システムに不要な応答を引き起こし、装置の性能劣化さらにはサーボ制御処理が不安定になる危険性がある。
【０００７】
そこで、本発明の目的は、サーボ割り込み処理の実行のスキップが発生した場合でも、装置の性能劣化やサーボ制御処理が不安定になる事態を回避することにある。
【課題を解決するための手段】
【０００８】
本実施形態のディスク記憶装置は、割り込み処理手段と、サーボ制御手段とを具備する。前記割り込み処理手段は、サーボ割り込み処理の実行の可否を判定し、前記判定結果の否決の回数を保持する。前記サーボ制御手段は、ヘッドの検出位置に追従して前記ヘッドの目標位置との位置誤差である推定現在位置を算出するための内部モデルを含み、前記割り込み処理手段による前記判定結果が可決の場合に前記内部モデルの状態を前記否決の回数に基づいて補正し、前記内部モデルの演算結果に基づいてヘッド位置決め制御を実行する。
【図面の簡単な説明】
【０００９】
【図１】実施形態に関するマイクロプロセッサの要部を説明するためのブロック図。
【図２】実施形態に関するディスクドライブの構成を説明するためのブロック図。
【図３】実施形態に関するサーボ制御システムの構成を説明するためのブロック図。
【図４】実施形態に関するサーボ割り込み処理を説明するためのタイミングチャート。
【図５】実施形態に関するサーボ割り込み処理とサーボ制御処理を説明するためのフローチャート。
【図６】実施形態の変形例に関するサーボ割り込み処理とサーボ制御処理を説明するためのフローチャート。
【図７】他の実施形態に関するマイクロプロセッサの構成を説明するためのブロック図。
【発明を実施するための形態】
【００１０】
以下図面を参照して、実施形態を説明する。
【００１１】
[ディスクドライブの構成]
図１及び図２は本実施形態に関するマイクロプロセッサおよびディスクドライブの要部を説明するためのブロック図である。
【００１２】
図２に示すように、ディスクドライブは大別して、ヘッド・ディスクアセンブリ（head-disk assembly：ＨＤＡ）、ヘッドアンプ集積回路（以下、ヘッドアンプＩＣ）１１と、システムオンチップ（ＳｏＣ：system on a chip）１５とから構成されている。ＨＤＡは、記憶媒体であるディスク１と、スピンドルモータ（ＳＰＭ）２と、ヘッド１０とを有する。ディスク１は、スピンドルモータ２により回転する。
【００１３】
ヘッド１０は、ボイスコイルモータ（ＶＣＭ）を含むアクチュエータの駆動により、ディスク１上の目標位置まで移動制御される。ヘッド１０はスライダを本体として、当該スライダに実装されているライトヘッド１０Ｗ及びリードヘッド１０Ｒを有する。リードヘッド１０Ｒは、ディスク１上のサーボ領域からサーボ情報を読み出し、またデータ領域からユーザデータを読み出す。サーボ情報はサーボウェッジ（servo wedge：ＳＶＷ）とも呼ばれる。ライトヘッド１０Ｗは、ディスク１上のデータ領域にユーザデータを書き込む。
【００１４】
ヘッドアンプＩＣ（ＨＩＣ）１１は、リードアンプ及びライトドライバを有する。リードアンプは、リードヘッド１０Ｒにより読み出されたリード信号を増幅して、リード／ライト（Ｒ／Ｗ）チャネル１２に伝送する。一方、ライトドライバは、Ｒ／Ｗチャネル１２から出力されるライトデータに応じたライト電流をライトヘッド１０Ｗに伝送する。
【００１５】
ＳｏＣ１５は、Ｒ／Ｗチャネル１２と、ハードディスクコントローラ（ＨＤＣ）１３と、マイクロプロセッサ（ＭＰＵ）１４とを含む１チップの集積回路から構成されている。Ｒ／Ｗチャネル１２は、リードチャネル（ＲＩＣ）１２Ｒとライトチャネル１２Ｗとを含む。リードチャネル（ＲＩＣ）１２Ｒは、後述するように、リード信号を処理してサーボ情報やユーザデータを復号する。ライトチャネル１２Ｗはライトデータの信号処理を実行する。
【００１６】
ハードディスクコントローラ（ＨＤＣ）１３は、ホスト１７とＲ／Ｗチャネル１２との間のデータ転送を制御するインターフェースコントローラとユーザーロジック回路を含む。インターフェースコントローラはバッファメモリ（ＤＲＡＭ）１６を制御して、リードデータ及びライトデータをバッファメモリ１６に一時的に格納することでデータ転送制御を実行する。ユーザーロジック回路は、ハードウェアによる各種演算回路であり、ＭＰＵ１４よりも低レベルの処理を高速に演算する。
【００１７】
ＭＰＵ１４はディスクドライブのメインコントローラであり、後述するように、サーボ制御処理を実行するサーボ制御システムを有する。サーボ制御システムは、ヘッド１０を目標位置に位置決めするヘッド位置決め機構をサンプリング処理で制御する。ヘッド位置決め機構は、ヘッド１０を駆動するためのアクチュエータ（ＶＣＭを含む）及びＶＣＭドライバである。
【００１８】
図１は便宜的に、ＭＰＵ１４の構成をハードウェア及びファームウェア（ソフトウェア）により表している。図１に示すように、ＭＰＵ１４は、レジスタ２０、オアゲート２１、プログラムカウンタ（ＰＣ）２２、及びスキップカウンタ２５を有する。さらに、ＭＰＵ１４は、ファームウェアとしてメイン処理ルーチン２３、サーボ割り込み処理ルーチン２４、及びコマンド処理ルーチン２６を実行する。
【００１９】
[実施形態の動作]
以下、図３から図５を参照して、本実施形態のサーボ割り込み処理及びサーボ制御処理を説明する。
【００２０】
先ず、図４のタイミングチャートを参照して、本実施形態のサーボ割り込み処理を説明する。
【００２１】
ディスクドライブでは、ヘッド１０をディスク１上の目標位置に位置決めするサーボ制御処理を実行する場合に、ヘッド１０によりサーボ情報（ＳＶＷ）が読み出される。サーボ情報（ＳＶＷ）は、ディスク１上の周方向に且つ周期的に記録されている。ヘッドアンプＩＣ（ＨＩＣ）１１は、読み出されたリード信号（サーボ情報の再生信号を含む）１００Ｒを増幅して、リード／ライト（Ｒ／Ｗ）チャネル１２に伝送する。リードチャネル（ＲＩＣ）１２Ｒは、ＨＩＣ１１の出力に含まれるサーボ情報の再生信号１１０Ｓを処理してサーボ情報を復号する。
【００２２】
リードチャネル（ＲＩＣ）１２Ｒは、サーボ情報に含まれるサーボアドレスマークの先頭を示す所定のパターンを検出すると、サーボアドレスマーク検出信号１２０ＳＭを出力する。ハードディスクコントローラ（ＨＤＣ）１３は、サーボアドレスマーク検出信号１２０ＳＭを受信すると、サーボ割り込み要求信号１３０ＩＱを生成してＭＰＵ１４に出力する。
【００２３】
ＭＰＵ１４では、サーボ割り込み要求信号１３０ＩＱがレジスタ２０にセットされると、割り込み禁止信号Ｉｎｈがネゲート（negate、無効）であれば、オアゲート２１によりアサート（assert、有効）される。即ち、オアゲート２１はサーボ割り込信号ＳＶＩをプログラムカウンタ（ＰＣ）２２に出力する。ここで、割り込み禁止信号Ｉｎｈは、コマンド処理ルーチン２６に含まれる割り込みマスク処理２７によりアサートされる。
【００２４】
プログラムカウンタ（ＰＣ）２２は、サーボ割り込信号ＳＶＩに応じて、サーボ割り込み処理ルーチン２４の先頭アドレスに書き換えられる。同時に、オアゲート２１からのサーボ割り込信号ＳＶＩにより、レジスタ２０の出力であるサーボ割り込み制御信号１３１ＩＣはリセットされる。
【００２５】
図４（Ａ）〜（Ｇ）は、以上の処理のタイミングを示すタイミングチャートである。即ち、図４（Ａ），（Ｂ）に示すように、ディスク１上のサーボ領域（n-1セクタ）から読み出されたサーボ情報ＳＶＷであるＷ［n-1]が検出されると、リードチャネル（ＲＩＣ）１２Ｒはサーボアドレスマーク検出信号１２０ＳＭを出力する。さらに、ハードディスクコントローラ（ＨＤＣ）１３はサーボ割り込み要求信号１３０ＩＱを生成してＭＰＵ１４に出力する。図４（Ｃ）に示すように、ＭＰＵ１４では、レジスタ２０からサーボ割り込み制御信号１３１ＩＣが出力される。
【００２６】
図４（Ｅ）に示すように、ＭＰＵ１４は、有効なサーボ割り込み制御信号１３１ＩＣに応じてオアゲート２１からサーボ割り込信号ＳＶＩが出力されると、サーボ割り込み処理ルーチン２４を実行する。ＭＰＵ１４は、後述するように、サーボ割り込み処理ルーチン２４においてサーボ制御システムの内部モデルの演算処理を実行する。図４（Ｇ）に示すように、内部モデルの演算処理の結果に応じて、次のセクタであるnセクタ目の内部モデル状態が確定する。サーボ領域（nセクタ）から読み出されたサーボ情報ＳＶＷであるＷ［n]が検出された際においても同様の処理となる。
【００２７】
図４（Ｄ）に示すように、ＭＰＵ１４では、メイン処理ルーチン２３においてコマンド待機状態であれば、コマンド処理の実行は停止している。ここで、ホスト１７からコマンド処理要求が発生すると、ＭＰＵ１４は、コマンド処理ルーチン２６を呼び出してコマンド処理を実行する。
【００２８】
一方、ＭＰＵ１４は、メイン処理ルーチン２３においてサーボ割り込み要求が発生すると、ＰＣ２２がサーボ割り込み処理ルーチン２４の先頭アドレスに書き換えられるため、サーボ割り込み処理ルーチン２４を実行する。これを実行した後に、ＭＰＵ１４は、メイン処理ルーチン２３に復帰する。
【００２９】
ここで、図４（Ｄ），（Ｅ）に示すように、コマンド処理ルーチン２６の実行中には、サーボ割り込み処理ルーチン２４の実行は禁止される。即ち、ＭＰＵ１４は、サーボ割り込み処理に対してコマンド処理を優先的に実行する。具体的には、コマンド処理ルーチン２６を実行する場合には、サーボ割り込み処理との不整合を防止するため、その開始時において割り込みマスク処理２７が実行される。これにより、割り込み禁止信号Ｉｎｈがアサートされて、オアゲート２１からサーボ割り込信号ＳＶＩは出力されない。コマンド処理が終了した時点で、割り込みマスク解除処理２９が実行されて、割り込み禁止信号Ｉｎｈがネゲートされる。これにより、図４（Ｃ）〜（Ｅ）に示すように、サーボ割り込み要求が発生すると、再びサーボ割り込み処理ルーチン２４が実行される。
【００３０】
ところで、図３に示すように、ディスクドライブには、ヘッド位置決め制御系として、状態オブザーバ３２を含むサーボ制御システムが組み込まれている。サーボ制御システムは大別して、制御対象（プラントＰ）であるヘッド位置決め機構３１及びＭＰＵ１４により構成されている。ヘッド位置決め機構３１は、ヘッド１０を駆動するためのアクチュエータ（ＶＣＭを含む）及びＶＣＭドライバである。ＭＰＵ１４は、サーボ割り込み処理ルーチン２４を実行することにより、フィードバック制御機能（フィードバックフィルタＧ）３０及び状態オブザーバ３２の各演算処理（サーボ制御処理）を実行する。
【００３１】
状態オブザーバ３２は、フィードバック制御演算（フィードバック制御機能３０）と並行して、ヘッド１０の位置及び移動速度を推定するためのモデル演算を行なうダイナミクスモデル（内部モデル）を有する。図３に示すように、ヘッド位置決め機構３１（プラントＰ）は、離散的な制御入力u[k]に対して検出位置ydetを出力する。ここで、ｋはサンプリング周期で規格化した時刻を表している。
【００３２】
状態オブザーバ３２の内部モデルは、プラントＰと等価なダイナミクスモデルであり、状態方程式「X[k+1] = AX[k] + Bu[k]」および出力方程式「y[k] = CX[k]」に相当する演算処理である。X[k]はサンプリング時点における内部モデルの状態変数ベクトルを意味する。ｕ[k]は、フィードバック制御演算（３０）により算出される内部モデルに対する制御入力である。y[k]は、内部モデルの出力（ここではヘッド１０の推定位置）である。なお、Ａ、Ｂ，Ｃはそれぞれ内部モデルのダイナミクスを表す係数行列である。
【００３３】
サーボ制御システムは、前回のサンプル時に演算された１サンプル後の状態変数（即ち、現サンプルの状態変数予測値）から現サンプルの位置出力y[k]を入力し、これを検出位置ydetに相当する現在位置として使用する。サーボ制御システムは、目標位置ｄ[k]と現在位置y[k]との差分を位置誤差e[k]として算出する。フィードバック制御演算（３０）は、位置誤差e[k]を安定的にゼロとするように設計されたフィードバックフィルタＧを使用して、プラントＰ（３１）に対する制御入力u[k]を算出する。ここで、状態オブザーバ３２は、ダイナミクスモデルである内部モデルの挙動を、実機構３１であるプラントＰの挙動に追従させる。具体的には、検出位置ydetと推定位置y[k]との差分（推定誤差）をゲインＬによってフィードバックする。
【００３４】
このようなサーボ制御システムにおいて、ＭＰＵ１４は、サーボ割り込み処理ルーチン２４を実行することにより、ヘッド１０をディスク１上の目標位置ｄ[k]に位置決めするサーボ制御処理(ヘッド位置決め制御)を実行する。ここで、前述したように、ＭＰＵ１４は、コマンド処理を優先して実行するため、コマンド処理ルーチン２６の実行時間が長時間になる場合、その時間分だけサーボ割り込み処理ルーチン２４が停止となる。このため、本来は所定のサンプリングで実行される内部モデルの演算処理が正確に行なわれなくなる。
【００３５】
このような事態について、図４（Ａ）〜（Ｇ）を参照して具体的に説明する。
【００３６】
図４（Ａ），（Ｄ）に示すように、ヘッド１０がサーボ情報ＳＶＷであるＷ［n]とＷ[n+1]との間を走査している際にコマンド処理要求が発生すると、ＭＰＵ１４はコマンド処理ルーチン２６を呼び出してコマンド処理を実行する。ヘッド１０によりＷ[n+1]が検出されるため、図４（Ｃ）に示すように、サーボ割り込み制御信号１３１ＩＣはアサートされる（有効となる）。一方、コマンド処理ルーチン２６が実行中であるため、サーボ割り込み禁止状態であり、図４（Ｅ）に示すように、サーボ割り込み処理ルーチン２４は実行されない。従って、サーボ割り込み処理ルーチン２４が実行されない期間は、図４（Ｇ）に示すように、状態オブザーバ３２の内部モデル状態（推定位置y[k]）が次セクタであるn+1セクタのままで維持されている。即ち、nセクタにはＷ［n]が記録されているため、内部モデルは、Ｗ［n]から検出される検出位置ydetに応じた推定位置y[k]を維持している状態である。
【００３７】
図４（Ａ），（Ｄ），（Ｅ）に示すように、Ｗ[n+2]が検出された後にコマンド処理ルーチン２６の実行が終了すると、サーボ割り込み要求が許可状態となる。ここで、内部モデルの状態は１サンプル後の推定値が保存されているので、n+3セクタ目のＷ[n+3]検出時であるにも関わらず、n+2セクタ目の時間経過モデルに相当する状態である。即ち、ここで確定するのは、これまで確定していたn+1セクタ目のモデルから１サンプル進んだn+2セクタ目の時間経過モデルに相当する状態である。
【００３８】
本来は、図４（Ｇ）に示すように、内部モデル状態は、n+4セクタ目のモデル状態であるべきにも関わらず、２セクタ分過去の時間であるn+2セクタ目のモデル状態で確定される。
【００３９】
状態オブザーバ３２では、内部モデルが検出位置ydetに追従するように推定位置y[k]を修正する。しかし、コマンド処理ルーチン２６の終了直後においては、フィードバック制御演算（３０）は、実際の位置ydetから乖離した推定位置により制御演算を実行する。この乖離は、図３のオブザーバフィードバックゲインＬで徐々に収束していくものの、その間の過渡応答は発生してしまう。
【００４０】
そこで、本実施形態のＭＰＵ１４は、コマンド処理ルーチン２６の実行中に、サーボ割り込み制御信号１３１ＩＣの発生を監視してアサート状態にあれば、割り込みリセット処理２８を実行してサーボ割り込制御信号１３１ＩＣをネゲートさせる。このとき、当該サーボ情報（例えばＷ[n+1]）におけるサーボ割り込み処理は実行されなくなる。ＭＰＵ１４は、サーボ割り込み処理がスキップされたとして、スキップカウンタ２５のカウント値Skipをインクリメントしてサーボ割り込み処理のスキップ回数を保持する。
【００４１】
スキップカウンタ２５は、コマンド処理ルーチン２６の実行時間が複数のサーボ情報の通過時間にまたがる場合でも、所定のタイミングでリセット処理２８に応じてスキップ回数をインクリメントする。ＭＰＵ１４は、コマンド処理ルーチン２６の実行が終了して、サーボ割り込み処理の禁止が解除されて、サーボ割り込み制御信号１３１ＩＣが発生すると、サーボ割り込み処理ルーチン２４を実行する。
【００４２】
ここで、サーボ割り込み処理ルーチン２４では、前回のサーボ割り込み処理が実行された際に演算された内部モデルの状態変数の１サンプル後の推定値が保持されている。サーボ割り込み処理ルーチン２４では、スキップカウンタ２５に保持されているカウント値Skipが１以上の場合には、保持されている状態変数がその回数Skipのサンプル分だけ過去の値に相当する。このため、サーボ割り込み処理ルーチン２４では、カウント値Skipのサンプル分だけモデル演算を時間的に進行させる処理が実行される。
【００４３】
以下、図５のフローチャートを参照して、ＭＰＵ１４が実行するサーボ割り込み処理ルーチン２４の手順を説明する。
【００４４】
ここで、スキップカウンタ２５に保持されているカウント値Skipをスキップ回数ＮＳＣとする。ＭＰＵ１４は、スキップ回数が１以上であるか否かを判定する(ブロック５００)。スキップ回数が０の場合には、ＭＰＵ１４は、サーボ割り込み処理がスキップされていないため、図３に示すように、内部モデルの出力演算「y[k] = CX[k]」を実行する(ブロック５００のＮＯ，５０３)。さらに、ＭＰＵ１４は、フィードバック制御演算３０である演算「ｕ[k]=G(d[k]-y[k])」を実行する(ブロック５０４)。この後、ＭＰＵ１４は、次回の状態予測演算「X[k+1]=AX[k]+Bｕ[k]+L(y[k]- ydet)」を実行する(ブロック５０５)。
【００４５】
一方、スキップ回数が１以上の場合には、ＭＰＵ１４は、今回の予測状態を補正するための補正演算「X[k]ｎｅｗ=A[ＮＳＣ]*X[k]ｏｌｄ+B[ＮＳＣ]*ｕ[k]ｏｌｄ」を実行する(ブロック５００のＹＥＳ，５０１)。ここで、X[k]ｏｌｄは前回のサーボ割り込み処理において保持されていた予測状態である。また、ｕ[k]ｏｌｄは前回のサーボ割り込み処理での制御入力値である。X[k]ｎｅｗは、ＮＳＣサンプル分の時間進み演算（A[Nsc]，B[Nsc]）により更新（補正）された予測状態である（図３を参照）。ＭＰＵ１４は、スキップカウンタ２５をリセットする(ブロック５０２)。この後は、スキップ回数が０の場合と同様に、ＭＰＵ１４は、内部モデルの出力演算、フィードバック制御演算、及び次回の状態予測演算を実行する(ブロック５０３〜５０５)。
【００４６】
以上のように本実施形態によれば、優先的に実行するコマンド処理の実行中にサーボ割り込み処理がスキップされた場合に、当該コマンド処理の実行の時間経過に相当する内部モデルの状態（サンプリング時点における内部モデルの状態変数X[k]）を補正する。換言すれば、そのスキップ回数を計数・保持することにより、サンプリング毎のサーボ割り込み処理が復帰した際に、スキップ回数に相当した時間だけ内部モデル演算を時間的に進ませる。
【００４７】
従って、ＭＰＵ１４は、コマンド処理ルーチン２６の実行終了後に、サーボ割り込み要求に応じてサーボ割り込み処理ルーチン２４を実行する場合に、正確な内部モデルの演算を実現することができる。従って、コマンド処理終了の直後に、推定位置と実位置との乖離に起因する、サーボ制御システムに不要な応答を引き起こすことを抑制し、安定したヘッド位置決め制御（サーボ制御）を実現できる。
【００４８】
[変形例]
図６は、本実施形態の変形例に関するサーボ割り込み処理ルーチン２４の手順を説明するためのフローチャートである。
【００４９】
本実施形態は、スキップカウンタ２５を使用してサーボ割り込み処理がスキップ回数を算出する方法を採用している。本変形例は、前回のサーボ割り込みルーチンが実行された際のタイムスタンプの差分から、サーボ割り込み処理がスキップ回数を推定する方法である。
【００５０】
ＭＰＵ１４は、前回のサーボ割り込み処理ルーチン実行時に保存されたタイマ値を、内部メモリ(図示せず)に保持する。このタイマ値をToldとする。ＭＰＵ１４は、タイマ値Toldと今回のタイマ値Tnewの差分をサンプリング時間Tsで除算して整数値に丸めて（round）、１を減算した値Mscをサーボ割り込み処理のスキップカウント値Skipとしてセットする(ブロック６００)。この場合、コマンド処理ルーチン２６の実行において、スキップ回数値Mscをインクリメントする処理は必ずしも必要ない。
【００５１】
ＭＰＵ１４は、スキップ回数値Mscが０の場合には(ブロック６０１のＮＯ)、サーボ割り込み処理がスキップされていないため、前述した図５の処理(ブロック５０３〜５０５)と同様に内部モデルの出力演算、フィードバック制御演算、及び次回の状態予測演算を実行する(ブロック６０４〜６０６)。
【００５２】
一方、スキップ回数Mscが１以上の場合には、ＭＰＵ１４は、今回の予測状態を補正するための補正演算「X[k]ｎｅｗ=A[ＭＳＣ]*X[k]ｏｌｄ+B[ＭＳＣ]*ｕ[k]ｏｌｄ」を実行する(ブロック６０１のＹＥＳ，６０２)。この後に、ＭＰＵ１４は内部メモリのタイマ値Mscをリセットする(ブロック６０３)。
【００５３】
以上のように本変形例の場合でも、スキップ回数Mscを計数・保持することにより、サンプリング毎のサーボ割り込み処理が復帰した際に、スキップ回数に相当した時間だけ内部モデル演算を時間的に進ませる。従って、コマンド処理終了の直後に、推定位置と実位置との乖離に起因する、サーボ制御システムに不要な応答を引き起こすことを抑制し、安定したヘッド位置決め制御（サーボ制御）を実現できる。なお、本変形例の場合には、連続する２回のサンプリングでのサーボ割り込み処理の実行値のタイムスタンプ差分からスキップ回数を同定することにより、サーボマーク検出ミスによるサンプリング割り込み要求未発生時にも対応することができる。
【００５４】
なお、本実施形態及び変形例によれば、セクタ番号のカウントをファームウェアで実現する構成を採っている場合に、サーボ割り込みルーチンがスキップされてセクタカウンタのインクリメント処理が実行されないような場合でも、サーボ割り込み処理の復帰時にスキップされたサーボ割り込み数を用いてセクタ番号を補正することができる。また、コマンド処理が長時間を要する場合に、サーボ割り込み処理のスキップ対策に限らず、信号品質の起因などによるサーボアドレスマーク検出が行なわれなかった場合にも対応することができる。
【００５５】
[他の実施形態]
図７は、他の実施形態に関するＭＰＵ７０の構成を説明するためのブロック図である。
【００５６】
図７に示すＭＰＵ７０は、ＨＤＤのサーボ制御以外に、例えば、光ディスク記憶装置のサーボ制御や各種の制御系に適用する場合である。基本的機能及び動作は、図１に示すＭＰＵ１４と同様である。即ち、ＭＰＵ７０は、レジスタ７１、オアゲート７２、プログラムカウンタ（ＰＣ）７３、及びスキップカウンタ７６を有する。さらに、ＭＰＵ１４は、ファームウェアとしてメイン処理ルーチン７４、割り込み処理ルーチン７５、及びコマンド処理ルーチン７７を実行する。コマンド処理ルーチン７７は、割り込みマスク処理７８、割り込みリセット処理７９及び割り込みマスク解除処理８０を含む。
【００５７】
ＭＰＵ７０には、所定のサンプリングで継続的に実行する制御の割り込み信号７００ＩＱが入力される。また、ＭＰＵ７０は、割り込み処理ルーチン７５により制御系を実行する。制御系は、状態オブザーバによりサンプリング時に内部モデルの状態を更新するモデル演算及びフィードバック制御演算を実行する。ＭＰＵ７０は、割り込み中断回数（スキップ回数）をスキップカウンタ７６により計数・保持し、割り込み中断に伴う内部モデルの状態を補正する。
【００５８】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００５９】
１…ディスク、２…スピンドルモータ（ＳＰＭ）、１０…ヘッド、
１１…ヘッドアンプＩＣ（ＨＩＣ）、１２…リード／ライト（Ｒ／Ｗ）チャネル、
１２Ｒ…リードチャネル（ＲＩＣ）、１３…ハードディスクコントローラ（ＨＤＣ）、
１４…マイクロプロセッサ（ＭＰＵ）、１５…ＳｏＣ、
１６…バッファメモリ（ＤＲＡＭ）。
【図１】
2014110063.tif 000003
【図２】
2014110063.tif 000004
【図３】
2014110063.tif 000005
【図４】
2014110063.tif 000006
【図５】
2014110063.tif 000007
【図６】
2014110063.tif 000008
【図７】
2014110063.tif 000009