(57)【特許請求の範囲】
【請求項１】
記憶媒体のトラックからヘッドがオフトラックした時に、前記ヘッドをオントラック状態に復旧するためのサーボリカバリー処理を実行し、前記ヘッドをオントラック状態に復旧する記憶装置のサーボリカバリー処理方法において、
前記オフトラックの検出に応じて、リトライ回数がリセットされているかを判定するステップと、
前記リトライ回数がリセットされている時に、前記サーボリカバリー処理の呼び出し頻度が、所定値より高いか低いかを検出するステップと、
前記呼び出し頻度が高いことを検出しない時に、前記サーボリカバリー処理のリトライ回数に応じて、復旧処理レベルが異なる複数のサーボリカバリー処理の一つを選択するステップと、
前記呼び出し頻度が高いことを検出した時は、前記複数のサーボリカバリー処理の内、比較的複雑な復旧処理レベルのサーボリカバリー処理を選択するステップと、
前記選択されたサーボリカバリー処理を実行するステップと、
前記サーボリカバリー処理による前記復旧の不成功時に、前記リトライ回数を更新し、且つ前記リトライ回数に応じて選択された前記サーボリカバリー処理をリトライするステップと、
前記サーボリカバリー処理による前記復旧の成功時に、前記リトライ回数をリセットするステップとを有し、
前記リトライ回数に応じて、復旧処理レベルが異なる複数のサーボリカバリー処理の一つを選択するステップは、
前記リトライ回数が、第１の所定値より小さい時は、前記ヘッドを位置決めするためのサーボループをオンする簡単な復旧レベルのサーボリカバリー処理を選択し、前記リトライ回数が、第１の所定値より大きく、且つ第２の所定値より小さい時は、前記ヘッドを所定位置に位置付けした後、前記サーボループをオンする中度の復旧レベルのサーボリカバリー処理を選択し、前記リトライ回数が、前記第２の所定値より大きい時は、前記サーボループのキャリブレーションを実行する複雑な復旧レベルのサーボリカバリー処理を選択するステップからなることを
特徴とする記憶装置のサーボリカバリー方法。
【請求項２】
請求項１の記憶装置のサーボリカバリー方法において、
前記検出するステップは、所定期間内に、呼ばれた前記サーボリカバリー処理の呼び出し頻度が、規定回数以上か否かを検出するステップからなることを
特徴とする記憶装置のサーボリカバリー方法。
【請求項３】
請求項１の記憶装置のサーボリカバリー方法において、
前記検出するステップは、
前記サーボリカバリー処理の呼び出し回数を計数するステップと、
前記呼び出し回数が、前記規定回数に到る頻度時間を測定するステップと、
前記頻度時間が、規定時間以上か否かを検出するステップからなることを
特徴とする記憶装置のサーボリカバリー方法
【請求項４】
記憶媒体のトラックからデータを読み出すためのヘッドと、
前記ヘッドを前記トラックに位置決めするアクチュエータと、
前記アクチュエータを制御し、前記ヘッドからの信号により前記ヘッドがオフトラックしたことを検出した時に、前記ヘッドをオントラック状態に復旧するためのサーボリカバリー処理を実行し、前記ヘッドをオントラック状態に復旧する制御回路とを有し、
前記制御回路は、
前記オフトラックの検出に応じて、リトライ回数がリセットされているかを判定し、
前記リトライ回数がリセットされている時に、前記サーボリカバリー処理の呼び出し頻度が、所定値より高いか低いかを検出し、
前記呼び出し頻度が高いことを検出しない時に、前記サーボリカバリー処理のリトライ回数に応じて、復旧処理レベルが異なる複数のサーボリカバリー処理の一つを選択し、
前記呼び出し頻度が高いことを検出した時は、前記複数のサーボリカバリー処理の内、比較的複雑な復旧処理レベルのサーボリカバリー処理を選択し、
前記選択されたサーボリカバリー処理を実行し、
前記サーボリカバリー処理による前記復旧の不成功時に、前記リトライ回数を更新し、且つ前記リトライ回数に応じて選択された前記サーボリカバリー処理をリトライし、
前記サーボリカバリー処理による前記復旧の成功時に、前記リトライ回数をリセットし、
前記制御回路は、前記復旧処理レベルが異なる複数のサーボリカバリー処理の一つを選択するため、
前記リトライ回数が、第１の所定値より小さい時は、前記ヘッドを位置決めするためのサーボループをオンする簡単な復旧レベルのサーボリカバリー処理を選択し、前記リトライ回数が、第１の所定値より大きく、且つ第２の所定値より小さい時は、前記ヘッドを所定位置に位置付けした後、前記サーボループをオンする中度の復旧レベルのサーボリカバリー処理を選択し、前記リトライ回数が、前記第２の所定値より大きい時は、前記サーボループのキャリブレーションを実行する複雑な復旧レベルのサーボリカバリー処理を選択することを
特徴とする記憶装置。
【請求項５】
請求項４の記憶装置において、
前記制御回路は、所定期間内に、呼ばれた前記サーボリカバリー処理の呼び出し頻度が、規定回数以上か否かを検出することを
特徴とする記憶装置。
【請求項６】
請求項４の記憶装置において、
前記制御回路は、
前記サーボリカバリー処理の呼び出し回数を計数し、前記呼び出し回数が、前記規定回数に到る頻度時間を測定し、前記頻度時間が、規定時間以上か否かを検出することを
特徴とする記憶装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、記憶媒体のトラックのデータを、ヘッドが読み取る記憶装置及びそのサーボリカバリー方法に関し、特に、ヘッドがトラックから外れたことを検出して、ヘッドをトラックに復旧するための記憶装置及びそのサーボリカバリー方法に関する。
【０００２】
データ記憶装置として、記憶媒体とヘッドを利用した記憶装置が広く利用されている。磁気記憶装置は、記憶媒体に磁気記録媒体を使用する。光学記憶装置は、記憶媒体に光学記憶媒体を使用する。このようなデータ記憶装置では、ヘッドが記憶媒体のトラックに位置決めされた後に、トラックのデータを読み出し、書き込む。この書き込み／読み出しを行うためには、ヘッドがトラックを追従するすることが必要である。
【０００３】
【従来の技術】
ヘッドをトラックに追従するため、サーボ制御部が設けられている。このサーボ制御部は、ヘッドから読み取った信号により、ヘッドの位置を検出して、トラックに追従させる制御を行う。このトラック追従制御を、コンピュータの外部記憶装置として利用されている光磁気記録装置を例に説明する。
【０００４】
光磁気記録装置では、データ蓄積部として、光磁気媒体を使用する。この媒体は、基板と、基板上に形成された磁性体からなる記録層を有している。この媒体は、光による加熱と磁界の変化を利用して、情報を記録する。この媒体には、データを記録再生するためのデータトラックが設けられている。一般に、媒体の基板上には、グルーブ（トラッキング案内溝）がスパイラル状に設けられている。このグルーブとグルーブに挟まれたランドに、データの記録再生トラックが設けられている。
【０００５】
このトラックに、光学ヘッドの光ビームをトラッキングする。そして、記録時には、光による加熱と磁界の変化を利用して、情報を記録する。又、情報を再生する時は、磁気光学効果を利用して、光ビームの反射光から情報を再生する。記録再生を行うためには、レーザーダイオードのレーザー光を、光学ヘッドの対物レンズを通して、媒体面（記録面）に集光する。この集光状態を保持し、且つ常にジャストフォーカス（合焦点）状態に保つ必要がある。このための制御は、フォーカスサーボと呼ばれている。
【０００６】
又、上記したデータトラックにデータを記録／再生するには、上記ジャストフォーカス状態のレーザービームを、データトラックに追従させる必要がある。この追従制御は、トラックサーボと呼ばれている。光学ヘッドは、反射光からトラック位置ずれ量を示すトラックエラー信号（ＴＥＳ）を発生する。トラックサーボ制御は、このトラックエラー信号から、トラック位置ずれ量がなくなるようなトラック駆動信号を生成する。このトラック駆動信号により、光学ヘッドの対物レンズを移動するトラックアクチュエータを駆動して、光ビームをトラックに追従させる。
【０００７】
このような光ビームの追従制御により、通常、光ビームが正確にトラックに追従するが、検出されたトラックエラー信号には、各種誤差要因を含む場合がある。この誤差要因としては、外乱（振動）、媒体の欠陥、サーボ回路のパラメータの変動等が上げられる。このため、光ビームがトラックから外れるオフトラック状態を生じることがある。
【０００８】
この光ビームがトラックから外れたオフトラック状態になった時は、記録／再生が困難となる。このため、オフトラックが検出された場合には、光ビームをトラックに復旧させるためのサーボリカバリー処理を早急に行う必要がある。通常、トラック位置ずれ量は、トラックエラー信号の振幅に現れるから、トラックエラー信号がオフトラックスライスレベルを越えたことを検出して、サーボエラー（オフトラック）を検出する。サーボエラーが検出された（オフトラックが検出された）場合には、トラックサーボループを開放して、暴走を防止し、且つサーボリカバリー処理を起動する。
【０００９】
このサーボリカバリー処理として、複数のリカバリー処理が用意されている。例えば、簡単な復旧処理で、オントラックの状態へ最短時間で復旧するための第１のリカバリー処理と、キャリブレーション等の複雑な復旧処理を行い、オントラックの状態へ復旧する第２のリカバリー処理を用意する。
【００１０】
そして、リカバリー処理の選択方法として、リカバリー処理の試行されたリトライ回数による選択が行われている。即ち、最初に第１のリカバリー処理を実行する。この第１のリカバリー処理により復旧できない時は、第２のリカバリー処理を実行する。この方法は、軽度な誤差要因（例えば、振動、媒体欠陥）によるオフトラックである時には、第１のリカバリー処理により最短時間で復旧できる。一方、重度な誤差要因（例えば、回路オフセットの変動等）によるオフトラックの場合には、第２のリカバリー処理により復旧できる。
【００１１】
即ち、オフトラックの誤差要因が判らないので、初めは、簡単な第１のリカバリー処理を行い、復旧が成功しない場合に、複雑な第２のリカバリー処理をリトライするという方法である。
【００１２】
【発明が解決しようとする課題】
しかしながら、従来技術では、次の問題があった。
【００１３】
どのような状態であれ、正常状態（オントラック状態）でエラーが発生し、サーボリカバリー処理が呼ばれた場合には、リカバリー回数により、常に、簡単な第１のリカバリー処理が行われる。そして、第１のリカバリー処理により復旧が成功すると、リカバリー回数（リカバリーカウンタ）は、クリア（「０」）される。従って、第１のリカバリー処理で復旧が失敗しない限り、第２のリカバリー処理は実行されないことになる。
【００１４】
このため、エラー発生して、第１のリカバリー処理によりリカバリー成功した後、再びエラー発生、第１のリカバリー処理によりリカバリー成功というプロセスを延々と繰り返す事態が生じる可能性がある。
【００１５】
この原因として、キャリブレーションパラメータがずれている可能性がある。通常、キャリブレーションパラメータは、媒体のロード時に、又は温度変化発生時等にキャリブレーション処理が行われ、適正な値に調整される。キャリブレーション処理した後、次のキャリブレーションの前の時期に、この現象が生じやすい。
【００１６】
例えば、図１７に示すように、本来トラックＴＲＫの中央をビームＢ１が追従するように制御するが、トラックエラー信号（ＴＥＳ）のオフセットがずれている場合には、トラックＴＲＫの端をビームＢ２が追従するように制御される。このような場合には、不安定な追従状態となり、少しの外乱でオフトラックが発生しやすい。
【００１７】
そして、第１のリカバリー処理により復旧が成功すると、不安定な状態でのオントラック状態を繰り返すことになる。このため、外乱、偏心、面触れ等に追従できなくなり、オフトラックを繰り返し、第１のリカバリー処理を何度も繰り返すという前述したプロセスが生じてしまう場合がある。このような場合には、第２のリカバリー処理を実行すべきであるが、この第２のリカバリー処理が有効に使用されないという問題があった。
【００１８】
従って、本発明の目的は、同一のリカバリー処理によるリトライの繰り返しを防止するための記憶装置のサーボリカバリー方法及び記憶装置を提供することにある。
【００１９】
本発明の他の目的は、サーボ系の不安定な状態を検出することにより、適正なリカバリー処理を実行するための記憶装置のサーボリカバリー方法及び記憶装置を提供することにある。
【００２０】
本発明の更に他の目的は、サーボ系の状態に応じて、適正なリカバリー処理を実行するための記憶装置のサーボリカバリー方法及び記憶装置を提供することにある。
【００２１】
本発明の更に他の目的は、発生したエラーの状態に応じて、適正なリカバリー処理を実行するための記憶装置のサーボリカバリー方法及び記憶装置を提供することにある。
【００２２】
【課題を解決するための手段】
本発明は、記憶媒体と、ヘッドと、アクチュエータと、ヘッドが記憶媒体のトラックからオフトラックした時に、ヘッドをオントラック状態に復旧するためのサーボリカバリー処理を実行する制御回路を有する。
【００２３】
そして、そのサーボリカバリー方法は、前記オフトラックの検出に応じて、リトライ回数がリセットされているかを判定するステップと、前記リトライ回数がリセットされている時に、前記サーボリカバリー処理の呼び出し頻度が、所定値より高いか低いかを検出するステップと、前記呼び出し頻度が高いことを検出しない時に、前記サーボリカバリー処理のリトライ回数に応じて、復旧処理レベルが異なる複数のサーボリカバリー処理の一つを選択するステップと、前記呼び出し頻度が高いことを検出した時は、前記複数のサーボリカバリー処理の内、比較的複雑な復旧処理レベルのサーボリカバリー処理を選択するステップと、前記選択されたサーボリカバリー処理を実行するステップと、前記サーボリカバリー処理による前記復旧の不成功時に、前記リトライ回数を更新し、且つ前記リトライ回数に応じて選択された前記サーボリカバリー処理をリトライするステップと、前記サーボリカバリー処理による前記復旧の成功時に、前記リトライ回数をリセットするステップとを有する。
【００２４】
本発明は、サーボリカバリー処理しても、オフトラックが頻繁に発生する状態は、サーボリカバリー処理の呼び出し頻度により検出することができる。そこで、サーボリカバリー処理の呼び出し頻度を検出し、頻度に応じたリカバリー処理を実行することにより、同一のリカバリー処理が短期間に繰り返し行われることを防止できる。
【００２６】
この他の形態では、サーボリカバリー処理の呼び出し頻度が低い時は、リトライ回数に応じて、リカバリー処理を選択するので、リトライによる最適なリカバリー処理を選択できる。
【００２７】
本発明の他の形態は、前記検出するステップは、所定期間内に、呼ばれた前記サーボリカバリー処理の呼び出し回数が、規定回数以上か否かを検出するステップからなる。
【００２８】
この形態では、頻度を検出するのに、所定期間内の呼び出し回数を用いるため、容易に頻度を検出できる。
【００２９】
本発明の他の形態では、前記検出するステップは、前記サーボリカバリー処理の呼び出し回数を計数するステップと、前記呼び出し回数が前記規定回数に到る頻度時間を測定するステップと、前記頻度時間が、規定時間以上か否かを検出するステップからなる。
【００３０】
この形態では、呼び出し回数が規定回数に到る頻度時間を測定しているので、容易に頻度を検出できる。
【００３１】
又、前記頻度回数が前記規定回数に到った時に、前記サーボリカバリー処理の呼び出し回数を計数する頻度カウンタを、クリアするステップを更に有することもできる。
【００３２】
この形態では、頻度カウンタをクリアするので、連続して頻度検出を行うことができる。
【００３３】
更に、前記頻度時間を測定するステップは、前記頻度カウンタがゼロの時に、前記サーボリカバリー処理が呼ばれた第１の時刻を格納するステップと、前記頻度カウンタの値が、前記規定回数に到った時に、前記サーボリカバリー処理が呼ばれた第２の時刻を格納するステップと、前記第１の時刻と、前記第２の時刻から前記頻度時間を測定するステップとを有することもできる。
【００３４】
この形態では、簡易な処理により頻度時間を測定することができる。
【００３５】
更に、前記リトライ回数に応じて、前記リカバリー処理の一つを選択するステップは、前記リトライ回数が小さい時は、比較的簡単な復旧処理レベルのリカバリー処理を選択するステップと、前記リトライ回数が大きい時は、比較的複雑な復旧処理レベルのリカバリー処理を選択するステップとを有することもできる。
【００３６】
この形態では、リトライ回数に応じて、復旧処理レベルが次第に複雑になっていくため、リトライ回数に応じた最適なリカバリー処理を選択できる。
【００３７】
本発明の他の形態では、前記呼び出し頻度を検出するステップは、前記サーボリカバリー処理の第１の頻度を検出するステップと、前記サーボリカバリー処理の第２の頻度を検出するステップとを有し、前記実行するステップは、前記第１の頻度と前記第２の頻度に応じて、前記複数のリカバリー処理の一つを選択するステップを有する。
【００３８】
この形態では、呼び出し頻度を複数の検出モードで検出するため、多様な呼び出し頻度に応じて、最適なリカバリー処理を選択できる。
【００３９】
本発明の他の形態では、前記呼び出すステップは、前記ヘッドを位置決めするためのサーボループをオンする簡単な復旧レベルのリカバリー処理と、前記サーボループのキャリブレーションを実行する複雑な復旧レベルのリカバリー処理とを有するサーボリカバリー処理を呼び出すステップからなる。
【００４０】
この形態では、サーボループのリカバリー処理を複数設けたので、サーボループの制御により、最適なリカバリー処理により、オントラック状態に復旧できる。
【００４１】
この形態では、前記呼び出すステップは、前記ヘッドを位置決めするためのサーボループをオンする簡単な復旧レベルのリカバリー処理と、前記ヘッドを所定の位置に位置付けした後、前記サーボループをオンする中度の復旧レベルのリカバリー処理と、前記サーボループのキャリブレーションを実行する複雑な復旧レベルのリカバリー処理とを有するサーボリカバリー処理を呼び出すステップとすることができる。
【００４２】
この形態では、簡単、中度、複雑のリカバリー処理を設けたため、エラー状況に応じて、最適なリカバリー処理が可能となる。
【００４３】
更に、前記呼び出すステップは、光学ヘッドの光ビームが、光記憶媒体のトラックから外れたことを検出して、前記サーボリカバリー処理を呼び出すステップであり、前記サーボリカバリー処理は、前記光学ヘッドをトラック位置決めするためのトラックサーボループをオンする簡単な復旧レベルのリカバリー処理と、前記サーボループのキャリブレーションを実行する複雑な復旧レベルのリカバリー処理とを有することもできる。
【００４４】
この実施の形態では、光学記憶装置に適用したため、光ビームをトラックに復旧できる。
【００４５】
更に、前記比較的複雑な復旧レベルのリカバリー処理が実行された後、所定時間、前記複雑な復旧レベルのリカバリー処理の選択を禁止するステップを更に有することもできる。
【００４６】
この形態では、複雑な復旧レベルのリカバリー処理が頻繁に行われることを防止できる。
【００４７】
【発明の実施の形態】
図１は、本発明の一実施の形態の光磁気ディスク装置のブロック図、図２は図１の光ディスクドライブの構成図である。
【００４８】
図１に示すように、光磁気ディスク装置は、コントロールユニット１０とディスクドライブ１１とを備える。ＭＰＵ（マイクロプロセッサ）１２は、光磁気ディスク装置の全体的制御を行う。インターフェース１７は、ホスト装置（図示せず）との間でコマンド及びデータのやり取りを行う。光ディスクコントローラ（ＯＤＣ）１４は、光磁気ディスク（ＭＯ）のリード／ライトに必要な処理を行う。ＤＳＰ（デジタルシグナルプロセッサ）１６は、ＭＰＵ１２の指示に基づいて、後述する各機構部を制御する。バッファメモリ１８は、ＭＰＵ１２、ＯＤＣ１４、インターフェース１７で共用され、ライトデータの格納、リードデータの格納を行う。
【００４９】
ＯＤＣ１４には、フォーマッタ１４ー１と誤り訂正符号（ＥＣＣ）処理部１４ー２が設けられている。フォーマッタ１４ー１は、ライトアクセス時には、ＮＲＺライトデータを、光ディスクのセクタ単位に分割し、記録フォーマットを生成する。ＥＣＣ処理部１４ー２は、セクターデータ単位に、ＥＣＣを生成し、セクターデータに付加する。又、ＥＣＣ処理部１４ー２は、必要に応じて、巡回冗長検査（ＣＲＣ）符号を生成して、付加する。更に、ＥＣＣ処理部１４ー２は、ＥＣＣの付加されたセクターデータを、１ー７ランレングスリミテッド符号（ＲＬＬ）に変換する。
【００５０】
リードアクセス時には、ＥＣＣ処理部１４ー２は、リードされたセクターデータを１ー７ＲＬＬ逆変換した後、ＣＲＣ検査を行う。そして、ＥＣＣ処理部１４ー２は、ＥＣＣによる誤り検出及び誤り訂正を行う。更に、フォーマッタ１４ー１は、セクタ単位のＮＲＺデータを連結して、ＮＲＺリードデータのストリームを作成する。このデータストリームは、バッファメモリ１８を経由して、インターフェース１７からホスト装置に転送される。
【００５１】
ライトＬＳＩ回路２０は、ライト変調部２１とレーザーダイオード制御回路２２とを有する。ライト変調部２１は、光磁気ディスクの種類に応じて、ライトデータを、ピットポジションモジュレーション（ＰＰＭ）記録（マーク記録ともいう）又はパルスウィドスモジュレーション（ＰＷＭ）記録（エッジ記録ともいう）のデータ形式のデータに変調する。レーザーダイオード制御回路２２は、この変調されたデータにより、ドライブ１１の光学ユニットのレーザーダイオードユニット３０を制御する。このレーザーダイオードユニット３０は、光磁気ディスクにレーザー光を照射するレーザーダイオード３０ー１と、モニタ用ディテクタ３０ー２とを有する。
【００５２】
リードＬＳＩ回路２４は、ＡＧＣ（自動ゲイン制御）回路、フィルタ、セクターマーク検出回路を備えるリード復調部２５、周波数シンセサイザ２６を備える。リード復調部２５は、入力されたＩＤ信号又はＭＯ信号からリードクロック及びリードデータを生成した後、ＰＰＭデータ又はＰＷＭデータを元のＮＲＺデータに復調する。ドライブ１１の光学ヘッドのＩＤ／ＭＯ用ディテクタ３２は、光磁気ディスクの戻り光を検出し、ＩＤ信号／ＭＯ信号が、ヘッドアンプ３４を介してリードＬＳＩ回路２４に入力される。周波数シンセサイザ２６は、光磁気ディスクのゾーンに対応した周波数のクロックを、リードクロックとして発生する。
【００５３】
ドライブ１１に設けられた温度センサ３６は、ドライブの温度を検出する。検出された温度は、ＤＳＰ１６を介してＭＰＵ１２に与えられ、ＭＰＵ１２は、検出温度に基づき、レーザーダイオード制御回路２２のリード、ライト及びイレーズの各発光パワーを最適値に制御する。
【００５４】
スピンドルモータ４０は、光磁気ディスクを回転する。ＤＳＰ１６は、ＭＰＵ１２の指示に応じて、スピンドルモータ４０を、ドライバ３８を介して制御する。電磁石４４は、記録時及び消去時に、ロードされた光磁気ディスクに外部磁界を供給する。ＤＳＰ１６は、ＭＰＵ１２の指示に応じて、電磁石４４を、ドライバ４２を介して制御する。４分割ディテクタ４５は、光磁気ディスクから戻り光を検出する。ＦＥＳ検出回路４６は、４分割ディテクタ４５の出力からフォーカスエラー信号（ＦＥＳ）を生成して、ＤＳＰ１６に入力する。ＤＳＰ１６は、フォーカスサーボループを用いて、フォーカス駆動信号を生成し、ドライバ５８を介してフォーカスアクチュエータ６０を制御する。フォーカスアクチュエータ６０は、光学ヘッドの対物レンズをフォーカス方向に駆動する。これにより、フォーカスオン制御が行われる。
【００５５】
ＴＥＳ検出回路４８は、４分割ディテクタ４５の出力からトラックエラー信号（ＴＥＳ）を生成して、ＤＳＰ１６に入力する。ＴＥＳは、トラックゼロクロス（ＴＺＣ）検出回路５０にも入力される。ＴＺＣ検出回路５０は、ＴＺＣパルスを生成し、ＤＳＰ１６に入力する。
【００５６】
ＤＳＰ１６は、このＴＥＳを基に、トラックサーボループを用いて、トラック駆動信号を生成し、ドライバ６２を介してトラック（レンズ）アクチュエータ６４を制御する。トラックアクチュエータ６４は、光学ヘッドの対物レンズをトラック方向に駆動する。これにより、トラックオン制御が行われる。
【００５７】
又、ＤＳＰ１６は、ＴＺＣを基に、シーク制御を行い、ドライバ６６を介してボイスコイルモータ（ＶＣＭ）６８を制御する。ＶＣＭ６８は、光学ヘッドを移動する。
【００５８】
図２は、図１の光磁気ディスクドライブ１１の構成図である。図２に示すように、ハウジング６７内に、前述したスピンドルモータ４０が設けられている。光磁気ディスクカートリッジ７０は、インレット６９から挿入される。カートリッジ７０内の光磁気ディスク７２は、スピンドルモータ４０により回転される。
【００５９】
光学ヘッドは、キャリッジ７６と固定光学系７８で構成される。キャリッジ７６は、レール８４に沿って、ＶＣＭ６８（図１参照）により、光磁気ディスク７２のトラック横断方向に移動する。キャリッジ７６は、対物レンズ８０、方向変換プリズム８２、フォーカスアクチュエータ６０、トラックアクチュエータ６４等を備える。固定光学系７８は、前述したレーザーダイオードユニット３０、ＩＤ／ＭＯ用ディテクタ３２、４分割ディテクタ４５（図１参照）を備える。
【００６０】
図３は、図１のＴＥＳ検出回路４８、ＴＺＣ検出回路５０及びＤＳＰ１６のブロック図である。
【００６１】
図３において、ＴＥＳ検出回路４８は、４分割ディテクタ４５の出力からトラックエラー信号ＴＥＳｉを作成する。このトラックエラー信号ＴＥＳｉは、後述する図１０、図１１に示される。ＡＧＣ（自動ゲイン制御回路）４８１は、このトラックエラー信号ＴＥＳｉのゲインを調整する。ノード４８２は、ＡＧＣ出力とＴＥＳオフセット補正信号Ｓ２とを加算する。ＴＥＳオフセット補正信号Ｓ２は、トラックエラー信号ＴＥＳのオフセットを調整するものであり、後述するＭＰＵ１２のＯＤＤ（Optical Disk driver)の振幅／オフセット計算部１３０から与えられる。
【００６２】
ゲイン調整回路４８３は、トラックエラー信号の信号感度を調整する。ゲイン調整回路４８３は、並列に配置された４つの増幅回路ＡＭＰと、それぞれを導通するためのスイッチＳＷとを備える。そして、後述するように、ＤＳＰ１６に入力されるトラックエラー信号ＴＥＳの振幅が、ＤＳＰ１６のＡＤコンバータ（ＡＤＣ）のレンジを越えないように、４つの増幅回路の１つが選択される。前記した振幅／オフセット計算部１３０は、ゲイン調整回路４８３のスイッチＳＷを制御するためのゲイン選択信号Ｓ１を出力する。
【００６３】
ゲイン調整回路４８３から出力されたトラックエラー信号ＴＥＳｉは、ノッチ回路４８４及び低域フィルタ（ＬＰＦ）４８５を通過し、ノイズ除去及び波形整形されたトラックエラー信号ＴＥＳが出力される。更に、ゲイン調整回路４８３の出力は、ＴＺＣ検出回路５０に入力される。ＴＺＣ検出回路５０では、コンパレータ５０２が、低域フィルタ（ＬＰＦ）５０１を通過したトラックエラー信号ＴＥＳｉと、所定のスライスレベルとを比較して、トラックゼロクロス（ＴＺＣ）パルスを出力する。
【００６４】
ＤＳＰ１６に設けられたアナログ／デジタルコンバータ（ＡＤＣ）１６０は、前述のＴＥＳ検出回路４８のＴＥＳをデジタル値に変換する。ＡＤＣ１６０の出力は、サンプリング周波数毎に、ＤＳＰ１６に読み込まれる。ＤＳＰ１６のトラックサーボループでは、ノード１６３は、リードされたＴＥＳに、ＴＥＳ入力段オフセットＳ３を加算する。利得制御部１６４は、ノード１６３からのＴＥＳに利得Ｇ１を乗算して、入力感度（回路定数、信号感度等）のバラツキを吸収する。
【００６５】
利得制御部１６４の出力は、オフトラック判定部１７２に入力される。オフトラック判定部１７２は、入力されたＴＥＳの絶対値と、オフトラックスライスレベルＳＬとを比較して、オフトラックの判定を行う。例えば、ＴＥＳの絶対値が、スライスレベルより大きい時には、オフトラックと判定される。オフトラックと判定されると、オフトラックフラグがセットされる。このオフトラックスライスレベルは、リード処理時とライト／イレーズ処理時とで切り替えられる。通常、ライト／イレーズ処理時のオフトラックスライスレベルは、リード処理時のそれよりも小さいレベルに設定される。
【００６６】
このオフトラックフラグがセットされていると、ＤＳＰ１６の主制御部１７３は、後述するスイッチ１６７をオフにして、トラックサーボをオフする。又、ＭＰＵ１２にサーボエラー割り込みが、通知される。
【００６７】
利得制御部１６４の出力は、ＰＩＤ演算部１６５に入力される。ＰＩＤ演算部１６５は、周知の位相補償処理を行う。スイッチ１６７がオンである時には、ＰＩＤ演算部１６５の出力は、利得制御部１６９に入力される。利得制御部１６９は、その出力に利得Ｇ２を乗算し、出力感度（ドライバの駆動感度、アクチュエータの加速度等）のバラツキを吸収する。ノード１７０は、利得調整部１６９の出力に、出力段オフセットＳ４を加算する。このノード１７０の出力は、リミッタ１７１を介して、デジタル／アナログコンバータ（ＤＡＣ）１６８に与えられる。ＤＡＣ１６８は、リミッタ１７１のデジタル値をアナログトラック電流に変換して、ドライバ６２に入力し、トラックアクチュエータ６４を駆動する。
【００６８】
ＤＳＰ１６の速度制御部１６２は、シーク処理時に、目標位置と現在位置との差がセットされ、この差に応じた速度信号をＶＣＭ６８のドライバ６６に出力する。速度制御部１６２には、ＴＺＣが入力され、前述の差を更新する。
【００６９】
ＤＳＰ１６の振幅測定部１６１は、ＡＤＣ１６０のＴＥＳの振幅値を測定する。ＭＰＵ１２に設けられたＯＤＤ（ファームウェア）の振幅／オフセット計算部１３０は、ＴＥＳの振幅からＴＥＳのゲイン及びオフセットを計算する。この計算されたゲインＳ１、オフセットＳ２、Ｓ３は、ＭＰＵ１２のメモリに格納される。
【００７０】
図４は、ＭＰＵ１２のファーム構成図である。図５にて後述するサーボリカバリー処理１は、前述のオフトラックの検出によるエラー割り込みに応じて、ＭＰＵ１２のＯＤＤ（Optical Disk Driver) が呼び出す。サーボリカバリー処理１には、リトライ回数を計数するためのリカバリカウンタＮ１と、サーボリカバリー処理が呼ばれた回数を計数するための頻度カウンタＮ２と、サーボリカバリ処理が呼ばれた時間を格納するカウンタＴ１とを有する。
【００７１】
このサーボリカバリー処理１は、３種類のリカバリー処理を有する。即ち、軽度のリカバリー処理（Go Home level 0)２と、中度のリカバリー処理（Go Home level 1)３と、重度のリカバリー処理（Go Home level 2)４とである。軽度のリカバリー処理２は、図６にて後述するように、オントラック状態に最短時間で復旧するための簡単な復旧処理である。中度のリカバリー処理３は、図７にて後述するように、中程度の復旧処理である。重度のリカバリー処理４は、図８にて後述するように、キャリブレーションを含む複雑な復旧処理である。サーボリカバリー処理１は、図５にて後述するように、いずれか一つのリカバリー処理を選択する。
【００７２】
次に、図６により、軽度リカバリー処理（Go Home level 0)を説明する。
【００７３】
（Ｓ２０）ＭＰＵ１２は、オントラック状態かを調べる。前述のように、ＤＳＰ１６は、オフトラックを検出すると、直ちに、エラー割り込みをＭＰＵ１２に通知する。この時、ＤＳＰ１６は、オフトラック発生時に、直ちにトラックサーボループをオフ（スイッチ１６７をオフ）する訳ではない。ＤＳＰ１６は、所定回数オフトラックが連続して発生した時に、トラックサーボループをオフする。軽度な原因で一時的にオフトラックが発生する場合には、１回オフトラックが発生しても、トラックサーボループをオンにしておくことにより、オントラック状態に復旧する場合がある。このため、ＭＰＵ１２は、ＤＳＰ１６にオントラック状態を問い合わせる。オントラック状態であれば、リカバリー処理は必要ないため、正常終了する。
【００７４】
（Ｓ２１）一方、オントラック状態でないと、ＭＰＵ１２は、ＴＥＳ信号の振幅がでているかを判定する。これは、ＤＳＰ１６の振幅測定部１６１の出力を読み取ることにより、判定できる。ＴＥＳ信号の振幅が出ていない場合には、光ビームが光ディスクの鏡面位置に外れた可能性があり、この処理では復旧できないため、エラー終了する。
【００７５】
（Ｓ２２）ＴＥＳ信号の振幅が出ている場合には、ＭＰＵ１２は、ＤＳＰ１６に対し、トラックサーボオンコマンドを発行する。これにより、ＤＳＰ１６は、トラックサーボループのスイッチ１６７をオンする。振動や媒体欠陥等の軽度の原因でオフトラックした場合には、このトラックサーボオンによるトラックサーボループにより、オントラック状態に復旧できることがある。
【００７６】
（Ｓ２３）ＭＰＵ１２は、ＤＳＰ１６にオントラックしたかを問い合わせる。ＤＳＰ１６は、トラックサーボオン後に、ＴＥＳの振幅が収束したことを検出して、オントラック状態を検出する。オントラックしていない時は、エラー終了とする。一方、オントラックしたら、正常終了する。
【００７７】
このように、軽度のリカバリー処理は、最短時間でオントラック状態に復帰するための、トラックサーボオンコマンドを発行する。
【００７８】
次に、図７により、中度リカバリー処理（Go Home level 1)を説明する。
【００７９】
（Ｓ３０）ＭＰＵ１２は、ＤＳＰ１６に、フォーカスサーボオフコマンドを発行する。これにより、ＤＳＰ１６は、フォーカスサーボループ（図示せず）をオフする。この処理では、後述するように、キャリッジを、トラックのない最インナー側に押しつけるため、フォーカスサーボが外れるおそれがある。このため、処理に先立ち、フォーカスサーボをオフする。フォーカスサーボオフが正常終了しない時は、エラー終了する。
【００８０】
（Ｓ３１）フォーカスサーボオフが正常終了すると、ＭＰＵ１２は、ＰｕｓｈＩｎ処理を行う。即ち、サーボ状態にかかわらず、キャリッジ７６を、ホームセンサ（図示せず）がオンする位置に位置付ける。このホームポジションセンサは、磁気センサ又は光センサで構成され、光磁気ディスクの最インナー側に設けられている。このため、ＭＰＵ１２は、ＤＳＰ１６を介してＶＣＭ６８に電流を流す。又、ホームポジションセンサを設けていないドライブでは、徐々にＶＣＭの押しつけ電流を増やして、キャリッジ７６をインナー側に押しつける。このプッシュイン処理が正常終了しない時は、エラー終了する。
【００８１】
（Ｓ３２）プッシュイン処理が正常終了した時は、ＭＰＵ１２は、ステップアウト処理を行う。即ち、プッシュイン状態の解除を行い、キャリッジ７６をグルーブのある位置に位置付ける。このため、ＭＰＵ１２は、ＤＳＰ１６を介してＶＣＭ６８に電流を流し、キャリッジ７６を、ホームポジションセンサがオフとなる位置まで移動する。又、ホームポジションセンサを設けていないドライブでは、ＤＳＰ１６が、ＴＺＣを計数するトラックカウンタを位置センサとして用いて、目標位置に移動することもできる。このステップアウト処理が正常終了しない時は、エラー終了する。
【００８２】
（Ｓ３３）ステップアウト処理が正常終了した時は、ＭＰＵ１２は、ＤＳＰ１６に、フォーカスサーボオンコマンドを発行する。これにより、ＤＳＰ１６は、フォーカスサーボループ（図示せず）をオンする。これにより、ジャストフォーカス状態に復帰する。フォーカスサーボオンが正常終了しない時は、エラー終了する。
【００８３】
（Ｓ３４）フォーカスサーボオンが正常終了した場合には、ＭＰＵ１２は、ＤＳＰ１６に対し、トラックサーボオンコマンドを発行する。これにより、ＤＳＰ１６は、トラックサーボループのスイッチ１６７をオンする。ＭＰＵ１２は、ＤＳＰ１６にオントラックしたかを問い合わせる。オントラックしていない時は、エラー終了とする。一方、オントラックしたら、正常終了する。
【００８４】
このように、中度のリカバリー処理は、オントラックできない位置（例えば、鏡面部等）に、光ビームが外れた場合を想定して、インナー側の基準位置に位置付けした後、トラックのある位置に位置付けを行う。これにより、オントラックできない位置に、光ビームが外れた場合でも、トラックのある位置に位置出しするので、サーボオンコマンドによりオントラック状態に復旧できる。
【００８５】
この中度のリカバリー処理において、ＶＣＭの調整処理を行うこともできる。即ち、レンズアクチュエータとＶＣＭの両方を制御するダブルサーボ方式では、１回転のダブルサーボ時のＶＣＭ電流の平均値から、ＶＣＭドライブのオフセット調整を行う。又、レンズアクチュエータを設けず、ＶＣＭのみによって移動する装置では、オントラック時のトラックドライブのオフセット調整を行う。
【００８６】
次に、図８により、重度リカバリー処理（Go Home level 2)を説明する。
【００８７】
（Ｓ４０）ＭＰＵ１２は、ＤＳＰ１６に、フォーカスサーボオフコマンドを発行する。これにより、ＤＳＰ１６は、フォーカスサーボループ（図示せず）をオフする。この処理でも、後述するように、キャリッジを、トラックのない最インナー側に押しつけるため、フォーカスサーボが外れるおそれがある。このため、処理に先立ち、フォーカスサーボをオフする。フォーカスサーボオフが正常終了しない時は、エラー終了する。
【００８８】
（Ｓ４１）フォーカスサーボオフが正常終了すると、ＭＰＵ１２は、ＰｕｓｈＩｎ処理を行う。即ち、サーボ状態にかかわらず、キャリッジ７６を、ホームセンサ（図示せず）がオンする位置に位置付ける。このホームポジションセンサは、光磁気ディスクの最インナー側に設けられている。このため、ＭＰＵ１２は、ＤＳＰ１６を介してＶＣＭ６８に電流を流す。又、ホームポジションセンサを設けていないドライブでは、徐々にＶＣＭの押しつけ電流を増やして、キャリッジ７６をインナー側に押しつける。このプッシュイン処理が正常終了しない時は、エラー終了する。
【００８９】
（Ｓ４２）プッシュイン処理が正常終了した時は、ＭＰＵ１２は、ステップアウト処理を行う。即ち、プッシュイン状態の解除を行い、キャリッジ７６をグルーブのある位置に位置付ける。このため、ＭＰＵ１２は、ＤＳＰ１６を介してＶＣＭ６８に電流を流し、キャリッジ７６を、ホームポジションセンサがオフとなる位置まで移動する。又、ホームポジションセンサを設けていないドライブでは、ＤＳＰ１６が、ＴＺＣを計数するトラックカウンタを位置センサとして用いて、目標位置に移動することもできる。このステップアウト処理が正常終了しない時は、エラー終了する。
【００９０】
（Ｓ４３）ステップアウト処理が正常終了した時は、ＭＰＵ１２は、ＤＳＰ１６に、フォーカスサーボオンコマンドを発行する。これにより、ＤＳＰ１６は、フォーカスサーボループ（図示せず）をオンする。これにより、ジャストフォーカス状態に復帰する。フォーカスサーボオンが正常終了しない時は、エラー終了する。
【００９１】
（Ｓ４４）フォーカスサーボオンが正常終了した場合には、ＭＰＵ１２は、ＴＥＳキャリブレーション処理を行う。図９、図１０、図１１にて、後述するように、ＭＰＵ１２の振幅／オフセット計算部１３０により、ＴＥＳの振幅及びオフセットの調整を行う。このキャリブレーション処理が正常終了しない時は、エラー終了する。
【００９２】
（Ｓ４５）このキャリブレーション処理が正常終了した時は、ＭＰＵ１２は、ＤＳＰ１６に対し、トラックサーボオンコマンドを発行する。これにより、ＤＳＰ１６は、トラックサーボループのスイッチ１６７をオンする。ＭＰＵ１２は、ＤＳＰ１６にオントラックしたかを問い合わせる。オントラックしていない時は、エラー終了とする。一方、オントラックしたら、正常終了する。
【００９３】
このように、重度のリカバリー処理は、図１７に示したように、光ビームがトラックの端部に追従し、不安定な状態にある場合を想定して、ＴＥＳのオフセット及びゲインを調整して、光ビームをトラックの中央に追従させるものである。又、中度のリカバリー処理と同様に、インナー側の基準位置に位置付けした後、トラックのある位置に位置付けを行う。これにより、オントラックできない位置に、光ビームが外れた場合でも、トラックのある位置に位置出しするので、サーボオンコマンドによりオントラック状態に復旧できる。
【００９４】
この重度リカバリー処理において、レンズポジションセンサを設けた装置では、レンズポジション調整処理を行うことができる。即ち、レンズポジション信号ＬＰＯＳが「０」となるように、トラックドライブのオフセット調整を行い、ＬＰＯＳの中点を決定する。
【００９５】
図９により、ＴＥＳキャリブレーション処理を、説明する。
【００９６】
（Ｓ５０）ＭＰＵ１２は、ＤＳＰ１６に対し、フォーカスオンコマンドを発行する。これにより、前述したフォーカスサーボをオンする。
【００９７】
（Ｓ５１）ＭＰＵ１２は、ＤＳＰ１６に、ＴＥＳ測定コマンドを発行する。これにより、ＤＳＰ１６の振幅測定部１６１（図３参照）は、ＴＥＳを一定間隔でサンプリングする。そして、１回転の間、サンプリング割り込み毎に、ＴＥＳの振幅値を前のサンプル値と比較して、ＴＥＳの上下のピーク値（Ａ値、Ｂ値という）を求める（図１０、図１１参照）。
【００９８】
（Ｓ５２）ＭＰＵ１２の振幅／オフセット計算部１３０（図３参照）は、Ａ値、Ｂ値を読み取り、ＴＥＳの振幅Ｗ、ＴＥＳのオフセットＳ、ＴＥＳゲインＧを下記式により、計算する。
【００９９】
Ｗ＝絶対値（ＡーＢ）
Ｓ＝（Ａ＋Ｂ）／２
Ｇ＝（ＴＴ／（ＡーＢ））×Ｇ０
尚、ＴＴは、ＴＥＳ振幅目標値、Ｇ０は、初期ＴＥＳゲインである。
【０１００】
（Ｓ５３）図１０に示すように、ＭＰＵ１２の振幅／オフセット計算部１３０（図３参照）は、この算出したゲインＧを基に、ＴＥＳ振幅がＤＳＰ１６のＡＤＣ１６０のレンジに入るように、回路ゲインＳ１（図３参照）を設定する。又、ＤＳＰ１６の内部のＴＥＳ振幅が一定となるように、ゲインＧ２を設定する。同様に、図１１に示すように、ＭＰＵ１２の計算部１３０は、計算したオフセットＳを基に、ＴＥＳオフセットＳ２を設定する。更に、回路で取りきれない残留オフセットを、オフセットＳ３（図３参照）として、設定する。
【０１０１】
（Ｓ５４）ＭＰＵ１２の計算部１３０は、ＴＥＳ振幅が、ＡＤＣ１６０のレンジに入ったかを判定する。入っていない場合には、ステップＳ５２に戻り、ＴＥＳ振幅／オフセット測定を繰り返す。一方、ＴＥＳ振幅が、ＡＤＣレンジに入ったと判定すると、調整を終了する。これにより、これらのパラメータは、メモリに格納される。
【０１０２】
次に、図５のサーボリカバリー処理を、説明する。
【０１０３】
（Ｓ１０）ＭＰＵ１２は、リトライカウンタＮ１が「０」かを判定する。リトライカウンタＮ１が「０」でないと、リトライ中のため、ステップＳ１７に進む。
【０１０４】
（Ｓ１１）リトライカウンタＮ１が「０」であると、サーボリカバリー処理が呼ばれたと判定して、頻度カウンタＮ２を調べる。頻度カウンタＮ２は、サーボリカバリー処理の頻度を数えるためのカウンタである。頻度カウンタＮ２が「０」であれば、初めてサーボリカバリー処理が呼ばれたと判断して、開始時刻Ｔ１に、現在時刻Ｔｎを格納する。そして、ステップＳ１２に進む。又、頻度カウンタＮ２が「０」でないと、過去にサーボリカバリー処理が呼ばれたと判断して、ステップＳ１２に進む。
【０１０５】
（Ｓ１２）サーボリカバリー処理の頻度を確認する制限回数として「Ｉ２」を使用する。頻度カウンタＮ２と制限値Ｉ２（例えば、２０回）との比較を行う。Ｎ２≧Ｉ２なら、サーボリカバリー処理の呼び出し回数Ｎ２が、制限値Ｉ２に到ったと判断する。このため、現時点でサーボリカバリー処理が呼ばれた時刻Ｔ２とＴ１との差ｔを計算する。
【０１０６】
（Ｓ１３）頻度数を確認するための制限周期を（ＴＯ）とする。時間ｔと周期Ｔ０とを比較する。
【０１０７】
（Ｓ１４）時間ｔが、周期Ｔ０より小さい場合には、図１３（Ｂ）に示すように、制限周期内で、サーボリカバリー処理の呼び出し回数が多い。即ち呼び出し頻度は高いと判定する。このように連続的なサーボリカバリー処理が生じている場合には、頻度リカバリー処理にて指定されている重度のリカバリー処理を実行する。即ち、呼び出し回数Ｎ２を「０」にクリアした後、ステップＳ１７の重度のリカバリー処理（Go Home Level 2)に進む。
【０１０８】
（Ｓ１５）時間ｔが、周期Ｔ０より大きい場合には、図１３（Ｂ）に示すように、制限周期内で、サーボリカバリー処理の呼び出し回数が少ない。即ち、サーボリカバリー処理の呼び出し頻度は低いと判定する。呼び出し回数Ｎ２を「０」にクリアした後、ステップＳ１７に進む。
【０１０９】
（Ｓ１６）ステップＳ１２で、Ｎ２≧Ｉ２でないなら、サーボリカバリー処理の呼び出し回数Ｎ２が、制限値Ｉ２に到らないと判断する。従って、呼び出し回数Ｎ２を「１」インクリメントして、ステップＳ１７に進む。
【０１１０】
（Ｓ１７）リトライカウンタＮ１の値を調べる。リトライカウンタＮ１の値が軽度リカバリー処理に割りつけられている時は、この軽度リカバリー処理（Go Home Level 0)を実行する。又、リトライカウンタＮ１の値が、中度リカバリー処理に割りつけられている時は、この中度リカバリー処理（Go Home Level 1)を実行する。又、リトライカウンタＮ１の値が、重度リカバリー処理に割りつけられている時は、この重度リカバリー処理（Go Home Level 2)を実行する。
【０１１１】
例えば、リトライ（リカバリー）カウンタＮ１とリカバリーレベル（軽度／中度／重度）の対応関係は、図１２に示すように割りつけてある。この例では、Ｎ１が「０」〜「２」、「４」〜「６」、「８」〜「Ａ」、「Ｃ」〜「Ｅ」の時は、軽度リカバリー処理（レベル０）が選択される。同様に、Ｎ１が「３」、「Ｂ」の時は、中度リカバリー処理（レベル１）が選択される。同様に、Ｎ１が「７」、「Ｆ」の時は、重度リカバリー処理（レベル２）が選択される。
【０１１２】
更に、リトライカウンタＮ１の値が、重度リカバリー処理にも割りつけられていない時は、リトライの制限回数Ｉ１を越えたと判定して、エラー終了する。
【０１１３】
（Ｓ１８）リカバリー処理が正常終了したかを判定する。リカバリー処理が正常終了した時は、リトライカウンタＮ１を「０」にクリアして、終了する。逆に、リカバリー処理が正常終了しない時は、リトライが必要である。このため、リトライカウンタＮ１を「１」インクリメントして、ステップＳ１７に戻る。
【０１１４】
このように、サーボリカバリー処理の呼び出し頻度により、リカバリー処理を選択するため、サーボエラーと軽度のリカバリー処理が繰り返して行われる事態を検出して、強制的にレベルの高いリカバリー処理を実行できる。このため、サーボエラーと軽度のリカバリー処理が繰り返して行われる事態を防止できる。
【０１１５】
この例では、結局、軽度リカバリー処理の頻度回数に応じて、重度リカバリー処理を実行する例で説明したが、中度リカバリー処理を実行するようにしても良い。要するに、あるリカバリー処理の頻度回数により、それよりレベルの重いリカバリー処理を実行すれば良い。
【０１１６】
又、頻度を測定するためのタイマとカウンタを、プログラム上追加することにより簡単に実現可能である。
【０１１７】
図１４は、本発明の他の実施の態様のサーボリカバリー処理フロー図である。
【０１１８】
この実施の態様では、頻度処理に移行するまでの頻度タイマと頻度カウンタの制限値又は頻度カウンタを複数設けることにより、それぞれの頻度状況にあったリカバリー処理を行うものである。
【０１１９】
即ち、頻度処理１を確認するカウンタをＮ２、頻度処理２を確認するためのカウンタをＮ３とする。頻度処理１の回数制限値をＩ２、頻度処理２の回数制限値をＩ３とする。更に、リトライカウンタＮ１、リトライ制限値Ｉ１を使用する。頻度処理１の制限周期をＴ０１、頻度処理２の制限周期をＴ０２とし、頻度処理１の基準時間（開始時間）をＴ２、頻度処理２の基準時間（開始時間）をＴ３とする。
【０１２０】
（Ｓ６０）頻度処理１を確認するカウンタをＮ２が、頻度処理１の回数制限値をＩ２に到った時に、現在時刻Ｔｎと基準時刻Ｔ２との差ｔ２を計算する。そして、差ｔ２が、頻度処理１の制限周期をＴ０１より小さい場合には、カウンタＮ２を「０」クリアして、頻度リカバリー処理１（例えば、レベル２の重度リカバリー処理）を実行する。
【０１２１】
（Ｓ６１）頻度処理２を確認するカウンタをＮ３が、頻度処理２の回数制限値をＩ３に到った時に、現在時刻Ｔｎと基準時刻Ｔ３との差ｔ３を計算する。そして、差ｔ３が、頻度処理２の制限周期をＴ０２より小さい場合には、カウンタＮ３を「０」クリアして、頻度リカバリー処理２（例えば、レベル２の重度リカバリー処理）を実行する。
【０１２２】
（Ｓ６２）前述と同様にして、頻度タイマ及び頻度カウンタを初期化するかを調べる。初期化する場合には、その頻度タイマ及び頻度カウンタを初期化する。
【０１２３】
（Ｓ６３）頻度カウンタＮ２、Ｎ３を「１」インクリメントする。
【０１２４】
（Ｓ６４）リトライカウンタＮ１が、リトライ制限値Ｉ１を越えているかを判定する。リトライカウンタＮ１が、リトライ制限値Ｉ１を越えている時は、リカバリー不可のためエラー終了する。
【０１２５】
（Ｓ６５）リトライカウンタＮ１が、リトライ制限値Ｉ１を越えていない時は、前述したステップＳ１７と同様に、リトライカウンタＮ１の値に応じて、リカバリー処理を選択して、実行する。リカバリー処理が正常終了した時は、終了する。一方、リカバリー処理が正常終了しない時は、ステップＳ６７に進む。
【０１２６】
（Ｓ６６）前述の頻度リカバリー処理が正常終了したかを判定する。頻度リカバリー処理が正常終了した時は、終了する。
【０１２７】
（Ｓ６７）頻度リカバリー処理が正常終了しない時は、リトライカウンタＮ１を「１」インクリメントして、ステップＳ６４に戻る。
【０１２８】
このように、頻度処理に移行するまでの頻度タイマと頻度カウンタの制限値又は頻度カウンタを複数設けることにより、それぞれの頻度状況にあったリカバリー処理を行うことができる。
【０１２９】
図１５は、本発明の別の実施の態様のサーボリカバリー処理フロー図である。
【０１３０】
この実施の態様は、媒体の傷、埃等により、オフトラックが頻発し、頻度リカバリー処理（重度リカバリー処理）が多発することを防止する。図１６に示すように、このため、頻度リカバリー処理（重度リカバリー処理）が実行された後は、一定時間Ｔｓだけ頻度検出を行うことを禁止する。これにより、頻度リカバリー処理（重度リカバリー処理）が多発することを防止するものである。
【０１３１】
図１５において、ステップＳ１０〜Ｓ１８は、図５の実施の態様とほぼ同一であり、図５の実施の態様にステップＳ１９が加えられたものである。ここで、重度リカバリー処理（Go Home Level 2)が実行された時間をＴｐとし、重度エカバリー処理（Go Home Level 2)の実行制限時間Ｔｓとする。
【０１３２】
（Ｓ１９）ステップＳ１０において、リトライカウンタＮ１が「０」である時は、サーボリカバリー処理が呼ばれたと判定して、時間Ｔｐが「０」かを判定する。時間Ｔｐが「０」であれば、未だ、重度リカバリー処理（Go Home Level 2)が実行されていないため、ステップＳ１１の頻度検出に進む。一方、時間Ｔｐが「０」でなければ、過去に、重度リカバリー処理（Go Home Level 2)が実行されたことになる。このため、このサーボリカバリー処理が呼ばれた時刻Ｔ２と時刻Ｔｐとの差が、実行制限時間Ｔｓを越えたかを判定する。越えていれば、重度リカバリー処理（Go Home Level 2)が実行されてから、制限時間Ｔｓを経過してしまったため、ステップＳ１１の頻度検出に進む。一方、越えていない場合には、重度リカバリー処理（Go Home Level 2)が実行されてから、制限時間Ｔｓを経過していないため、頻度検出処理をスキップし、ステップＳ１７に進む。
【０１３３】
尚、ステップＳ１７において、重度リカバリー処理（Go Home Level 2)を実行した時は、前述の時刻Ｔｐに、現在時刻をセットする。
【０１３４】
このようにして、頻度リカバリー処理（重度リカバリー処理）が実行された後は、一定時間頻度検出を行うことを禁止する。媒体の傷、埃等により、オフトラックが頻発しても、頻度リカバリー処理（重度リカバリー処理）が多発することを防止できる。
【０１３５】
上述の実施の態様の他に、本発明は、次のような変形が可能である。
【０１３６】
(1) 前述の実施の態様では、記憶装置として、光磁気ディスク装置を例に説明したが、磁気ディスク装置、光ディスク装置、磁気カード装置、光カード装置等の他の記憶装置に適用できる。
【０１３７】
(2) リカバリー処理として、３種類のリカバリー処理で説明したが、２種類以上であれば、良い。
【０１３８】
(3) 頻度リカバリー処理を、重度リカバリー処理で説明したが、中度リカバリー処理であっても良い。
【０１３９】
以上、本発明を実施の形態により説明したが、本発明の主旨の範囲内で種々の変形が可能であり、これらを本発明の範囲から排除するものではない。
【０１４０】
【発明の効果】
以上説明したように、本発明によれば、次の効果を奏する。
【０１４１】
(1) サーボリカバリー処理しても、オフトラックが頻繁に発生する状態を、サーボリカバリー処理の呼び出し頻度により検出して、頻度に応じたリカバリー処理を実行することにより、同一のリカバリー処理が短期間に繰り返し行われることを防止できる。
【０１４２】
(2) 頻度の検出もプログラム上で簡単に実現できる。
【０１４３】
(3) オフトラックの発生頻度が少なくなるため、記憶装置のリード／ライト性能が向上する。
【図面の簡単な説明】
【図１】本発明の一実施の態様の光磁気ディスク装置のブロック構成図である。
【図２】図１の光ディスクドライブの構成図である。
【図３】図１の要部のブロック図である。
【図４】本発明の一実施の態様のファーム構成図である。
【図５】本発明の一実施の態様のサーボリカバリー処理フロー図である。
【図６】図５のGo Home Level 0 （軽度リカバリー処理）のフロー図である。
【図７】図５のGo Home Level 1 （中度リカバリー処理）のフロー図である。
【図８】図５のGo Home Level 2 （重度リカバリー処理）のフロー図である。
【図９】図８のＴＥＳ調整処理フロー図である。
【図１０】図９の振幅調整の説明図である。
【図１１】図９のオフセット調整の説明図である。
【図１２】図５のリカバリレベルの説明図である。
【図１３】図５の頻度リカバリの説明図である。
【図１４】本発明の他のサーボリカバリー処理フロー図である。
【図１５】本発明の別のサーボリカバリー処理フロー図である。
【図１６】図１５の頻度リカバリー制限の説明図である。
【図１７】従来技術の説明図である。
【符号の説明】
１  サーボリカバリー処理
２  Go Home Level 0 （軽度リカバリー処理）
３  Go Home Level 1 （中度リカバリー処理）
４  Go Home Level 2 （重度リカバリー処理）
１２  ＭＰＵ
１６  ＤＳＰ
４５  ４分割ディテクタ
４６  ＴＥＳ検出回路
６４  トラックアクチュエータ
７２  光磁気ディスク
７６  光学ヘッド
【図１】
0003833016.tif 000002
【図２】
0003833016.tif 000003
【図３】
0003833016.tif 000004
【図４】
0003833016.tif 000005
【図５】
0003833016.tif 000006
【図６】
0003833016.tif 000007
【図７】
0003833016.tif 000008
【図８】
0003833016.tif 000009
【図９】
0003833016.tif 000010
【図１０】
0003833016.tif 000011
【図１１】
0003833016.tif 000012
【図１２】
0003833016.tif 000013
【図１３】
0003833016.tif 000014
【図１４】
0003833016.tif 000015
【図１５】
0003833016.tif 000016
【図１６】
0003833016.tif 000017
【図１７】
0003833016.tif 000018