以下、本発明の実施の形態を説明する。
本実施の形態における制御回路及びこれを用いた光ディスク装置1は、メインプロセッサ2とサブプロセッサの互いに独立して並列処理を行う2つの種類のプロセッサを備えている。
メインプロセッサ2は記録媒体の回転制御や周辺機器の制御を行う。サブプロセッサは、記録媒体上の情報が記録された案内溝に光ピックアップ10から照射する光スポットが所定範囲内に入るように、フォーカス制御又はトラッキング制御を行う専用のプロセッサである。
そして、メインプロセッサ2に対するデータ転送はメインプロセッサ2がバスマスタとなるデータバス6を介して行う。
一方、サブプロセッサに対するデータ転送は上記データバス6とは独立にサブプロセッサがバスマスタとなる専用データバス8を介して行う。
サブプロセッサは、光ピックアップ10で検出されたエラー信号のうちフォーカスエラー信号又はトラッキングエラー信号を、タイマー16から所定周期を有するサンプリング周期の各周期において生成される割り込み信号をトリガーとして、例えばエラー信号取り込み回路13から専用データバス8を介して取り込む。
サブプロセッサは、フィルター係数を用いたフィルター演算処理を行ってフォーカス信号又はトラッキング信号を生成する。生成されたフォーカス信号又はトラッキング信号は専用データバス8を介してドライブ信号生成回路14へ出力される。
なお、サブプロセッサはフォーカス制御かトラッキング制御のいずれかの演算処理を行うものであっても、また、その両方を行うものであってもよい。
ドライブ信号生成回路14は、光ピックアップ10の駆動回路である2軸ドライバ15を駆動するためのフォーカスドライブ信号及びトラッキングドライブ信号を出力する。
光ピックアップ10は2軸ドライバ15によって移動し、記録媒体である光ディスク9の半径方向と板面方向の移動が制御される。即ち、最も高速動作が要求されるフォーカス制御又はトラッキング制御を専用のサブプロセッサにより演算を行い、専用データバス8を介してデータ転送を行うものである。
また、サブプロセッサは第1記憶手段と第2記憶手段と演算手段を備えている。タイマー16においてサンプリング周期毎に生成される割り込み信号をサブプロセッサが入力すると、これをトリガーとして、エラー信号のうちフォーカスエラー信号又はトラッキングエラー信号を取り込む。
そして、演算処理手段はフォーカスエラー信号又はトラッキングエラー信号と第2記憶手段に記憶されたフィルター係数を参照してフィルター演算処理を行い、光ピックアップ10の位置を制御するためのフォーカス信号又はトラッキング信号を生成する。
一方メインプロセッサ2は、タイマー16によって生成された割り込み信号をトリガーとして、サブプロセッサの第1記憶手段にアクセスし、次に参照されるべきフィルター係数を上記サブプロセッサの演算処理と並列してデータバスを介して第1記憶手段へ書き込み処理を実行する。サブプロセッサの演算処理の終了後に、メインプロセッサ2の切替え要求に応じて、演算処理手段が参照するフィルター係数を第2記憶手段から第1記憶手段へ切替える。
その結果、次のサンプリング周期に生成される割り込み信号を入力したサブプロセッサは、第1記憶手段に書き込まれたフィルター係数を参照してフィルター演算処理を実行し、同時にメインプロセッサ2からは第2記憶手段に次に参照されるフィルター係数が書き込まれる。以降、これを繰り返す。
その結果、フィルター係数のデータ転送とフィルター演算処理を並列に実行するため、データ転送のための時間を短縮することできる。
また、サブプロセッサは第1サブプロセッサ3と第2サブプロセッサ4とから構成されており、第1サブプロセッサ3はフォーカス信号の演算処理を実行し、これと並列に第2サブプロセッサ4はトラッキング信号の演算処理を実行する。
このため、高速演算処理が要求される2つの演算処理を並列して実行することになるので、サンプリング周期をさらに高くすることができ、高倍速書き込み読み出し動作を行うことができる。
また、例えば光ディスクの回転方式がZCLV(Zoned Constant Linear Velocity)方式等においては、ゾーン内の光ディスクの回転数は一定となる。
そのために、フォーカス制御又はトラッキング制御のためのフィルター演算処理を行うに当たり、ゾーン内におけるフィルター係数の書き換え頻度を低下させることができる。
そこで、サンプリング周期のn周期(nは2以上の整数)に1回の割合でメインプロセッサ2が割り込み信号を入力する。例えば2サンプリング周期乃至は4サンプリング周期に1回の割り込み信号を入力し、サブプロセッサの第1または第2記憶手段に対して2サンプリング周期乃至は4サンプリング周期に1回の割合でフィルター係数を書き込む書き込み動作を行うことができる。
その結果、メインプロセッサ2のシステムクロックを低減させることができ、消費電流を低減することができる。
以下、本発明の第1実施形態について、図面を参照して具体的に説明する。
(第1実施形態)
図1は、第1実施形態に係る光ディスク装置1の回路構成を示すブロック図であり、図2は、図1の機能ブロック図である。共通する構成要素は符号を共通としている。
光ディスク装置1は、メインプロセッサ2と第1サブプロセッサ3及び第2サブプロセッサ4を備えている。
メインプロセッサ2はアドレスデコーダであるデータバスデコーダ5を介してメインプロセッサ2がバスマスタとなるデータバス6と接続し、データ転送を行って光ディスク装置1の光ディスクのスピンドルモータ(図示しない)の回転制御やその他のシステム制御を行う。
一方、第1サブプロセッサ3及び第2サブプロセッサ4は、専用バスデコーダ7を介して光ピックアップ10のフォーカス制御及びトラッキング制御を行う。
フォーカス制御及びトラッキング制御のためのデータ転送は、第1サブプロセッサ3及び第2サブプロセッサ4がバスマスタとなる専用データバス8により行う。
メインプロセッサ2がバスマスタとなるデータバス6は、エラー信号取り込み回路13、タイマー16、第1サブプロセッサ3、第2サブプロセッサ4、ドライブ信号生成回路14、及び、図示しないスピンドルサーボ、光ディスクのハードブロック、汎用I/Oブロックなどの周辺回路17に接続している。
第1サブプロセッサ3及び第2サブプロセッサ4がバスマスタとなる専用データバス8は、エラー信号取り込み回路13、ドライブ信号生成回路14に接続し、フォーカス制御及びトラッキング制御のためのデータ転送を行う。以下、光ディスク装置1の動作について図1及び図2を参照して詳細に説明する。
図1及び図2に示すように、記録媒体である光ディスク9には情報が記録された、又は、情報を記録すべき案内溝が形成されている。この光ディスク9は図示しないスピンドルモータによって高速回転する。
光ピックアップ10は光ディスク9にレーザー光からなる光スポットを照射してその反射光を検出し、案内溝に記録された記録情報を読み出し、あるいは情報を記録すると同時に、その反射光から上記案内溝に対する光スポットのずれ量を表すエラー信号を検出する。
エラー信号には、ディスク面上の焦点ずれを現すフォーカスエラー、案内溝のトラック方向に対するずれ量を現すトラッキングエラー、光ピックアップ10から照射される光スポットの光ディスク9面に対する傾きのずれ量をあらわすチルトエラーなどが含まれる。
そして、光ピックアップ10から検出されたエラー信号はRFアンプ11で増幅され、A/D変換回路12でデジタル信号に変換されてバッファであるエラー信号取り込み回路13に一旦記憶される。
第1サブプロセッサ3は、第1記憶手段であるDataRAM18、第2記憶手段であるDataRAM19及び演算手段であるInstRAM20を備えている。
同様に、第2サブプロセッサ4は、第1記憶手段であるDataRAM21、第2記憶手段であるDataRAM22及び演算手段であるInstRAM23を備えている。
第1サブプロセッサ3及び第2サブプロセッサ4が、所定周期を有するサンプリング周期の各周期にタイマー16から出力される割り込み信号をそれぞれ入力されると、この割り込み信号に応じて第1サブプロセッサ3は専用バスデコーダ7のアドレスを指定し、エラー信号取り込み回路13からフォーカスエラー信号を取り込む。
同様に、第2サブプロセッサ4は、専用バスデコーダ7のアドレスを指定し、エラー信号取り込み回路13からトラッキングエラー信号を取り込む。
第1サブプロセッサ3の演算手段であるInstRAM20は、フォーカスエラー信号とDataRAM19に記憶されたフィルター係数を参照して積和演算処理を実行してフォーカス信号を生成し、専用データバス8を介してドライブ信号生成回路14に出力する。
同様に、第2サブプロセッサ4の演算手段であるInstRAM23は、トラッキングエラー信号とDataRAM22に記憶されたフィルター係数を参照して、上記第1サブプロセッサ3の演算処理と並列して積和演算処理を実行してトラッキング信号を生成し、専用データバス8を介してドライブ信号生成回路14に出力する。
メインプロセッサ2はデータを記憶するDataRAM24や演算処理を行うInstRAM25を備えている。
このメインプロセッサ2は、タイマー16から割り込み信号を入力し、データバスデコーダ5のアドレスを指定し、データバス6を介して第1サブプロセッサ3のDataRAM18及び第2サブプロセッサ4のDataRAM21にアクセスし、上記第1サブプロセッサ3及び第2サブプロセッサ4それぞれが積和演算処理を実行している間に並列して、次のサンプリング周期に参照されるフォーカス演算用のフィルター係数をDataRAM18に、トラッキング演算用のフィルター係数をDataRAM21に書き込む書き込み処理を実行する。
そして、メインプロセッサ2からのバッファ切替え要求に応じて、第1サブプロセッサ3が参照するフィルター係数をDataRAM19からDataRAM18へ切替える。
同様に、メインプロセッサ2からのバッファ切替え要求に応じて、第2サブプロセッサ4が参照するフィルター係数をDataRAM22からDataRAM21へ切替える。
第1及び第2サブプロセッサ3,4で算出されたフォーカス信号及びトラッキング信号は、専用データバス8を介してドライブ信号生成回路14へ出力される。
ドライブ信号生成回路14は、データバス6を介してメインプロセッサ2から出力された制御信号により駆動回路である2軸ドライバ15へパルス信号からなるフォーカスドライブ信号及びトラッキングドライブ信号を出力して光ピックアップ10を駆動する。
これを、サンプリング周期ごとに繰り返して、フォーカス誤差及びトラッキング誤差を所定範囲内に制御する。なお、ドライブ信号生成回路14は、メインプロセッサ2からデータバス6を介して他の制御であるフォーカスサーチ/ジャンプ信号等を受けて、光ピックアップ10の動作制御を行うためのドライブ信号をも生成する。
図3は、第1サブプロセッサ3及び第2サブプロセッサ4の動作を説明するためのタイミングチャート図である。
第1サブプロセッサ3及び第2サブプロセッサ4は、サンプリング周期毎にタイマー16からそれぞれ割り込み信号を受けて、エラー信号取り込み回路13から専用データバス8を介してフォーカスエラー信号とトラッキングエラー信号をそれぞれ受け取り、DataRAM19及びDataRAM22に記憶されたフィルター係数を参照して、演算手段であるInstRAM20及びInstRAM23において積和演算を互いに並列して実行する。
メインプロセッサ2は、第1サブプロセッサ3及び第2サブプロセッサ4が積和演算を実行している間に、フィルター係数の書き換え要求30をデータバス6を介して第1サブプロセッサ3の第1記憶手段であるDataRAM18及び第2サブプロセッサ4の第1記憶手段であるDataRAM21へ出力して、DataRAM18及びDataRAM21にフォーカス制御用のフィルター係数及びトラッキング制御用のフィルター係数を書き込む書き換え処理を実行する。
そして、第1サブプロセッサ3のフォーカスフィルター演算処理及びDataRAM18の書き換え処理の終了後に、第1サブプロセッサ3はメインプロセッサ2から記憶手段切替え要求31を受け取り、InstRAM20が参照するフィルター係数をDataRAM18のフィルター係数を参照するように切替える。同時に、メインプロセッサ2が次に書き込むべき記憶手段をDataRAM19にセットする。
第2サブプロセッサ4においても同様に、第2サブプロセッサ4のトラッキングフィルター演算処理及びDataRAM21の書き換え処理の終了後に、第2サブプロセッサ4はメインプロセッサ2から記憶手段切替え要求31を受け取り、InstRAM23が参照するフィルター係数を書き換えられたDataRAM21に記憶されたフィルター係数を参照するように切替える。同時に、メインプロセッサ2が次に書き込むべき記憶手段をDataRAM22にセットする。
なお、第2サブプロセッサ4の演算処理は第1サブプロセッサ3の演算処理よりも若干の時間的遅れが生じている。これは、エラー信号取り込み回路13から専用データバス8を介してフォーカスエラー信号及びトラッキングエラー信号をシリアルデータとして取り込むためである。
また、図3においては、サンプリング周期ごとにメインプロセッサ2がフィルター係数書き換え要求30を出力して書き換え処理を実行している例を示しているが、後述するように、これを2サンプル周期ごと、あるいは数サンプル周期ごとにメインプロセッサ2がフィルター係数書き換え要求30を出力して、書き換え処理を実行するようにしてもよい。
このようにして、フォーカスフィルターの演算処理とトラッキングフィルターの演算処理とを並列して実行し、かつ、次に参照されるべきフィルター係数を事前に書き換える書き込み処理も並列して実行している。
また、フォーカスエラー信号やトラッキングエラー信号の取り込みや、積和演算の結果であるフォーカス信号やトラッキング信号を専用データバス8を介して転送する。
そのために、メインプロセッサ2の他の演算処理を行う時間的余裕を確保することができ、サンプリング周期を短くすることが可能となる。
図4は、第1サブプロセッサ3又は第2サブプロセッサ4の動作を説明するためのフローチャート図である。
以下第1サブプロセッサ3と第2サブプロセッサ4とは基本的に同じ動作を行うので区別しないで説明する。
図4に示すように、サブプロセッサは起動後にタイマー16からのサンプリング割り込み信号の待ち状態を維持する(S1)。サンプリング割り込み信号をサブプロセッサが入力すると、処理中であることを知らせるアクティブフラグをオンし(S2)、第2記憶手段であるDataRAM19又はDataRAM22に記憶されているフィルター係数を参照してフィルター演算処理を実行する(S3)。
その後、フィルター演算処理を終了した後にアクティブフラグをオフし(S4)、メインプロセッサ2からの記憶手段切替え要求の待ち状態を維持する(S5)。記憶手段切替え要求を受けたサブプロセッサは、記憶手段の切替えを実行し(S6)、次の演算処理で参照する記憶手段を、DataRAM19又は22からDataRAM18又は21へ切替える。同時に、DataRAM19又は22は、メインプロセッサ2からのアクセスを可能とし、メインプロセッサ2の指令により次のフィルター係数を書き換え可能とする。
図5及び図6は、タイマー16がサンプリング周期ごとに生成する割り込み信号を概念的に表すタイミングチャート図である。図5がメインプロセッサ2へ出力されるタイミング信号に間引きのない場合を、図6が2サンプリング周期に1回の間引きがある場合をそれぞれ示している。縦軸は、タイマー16が備えているカウンタ値を現している。
図5において、タイマカウンター値がゼロからスタートしてメインスレッショルド値に達するまでの期間がサンプリング周期である。
タイマー16は、タイマカウンター値がゼロのときに割り込み信号40を発生してメインプロセッサ2へ出力し、タイマカウンター値がスレッショルドBに達したときに、フォーカス信号演算用の割り込み信号41を生成して第1サブプロセッサ3へ出力し、タイマカウンター値がスレッショルドAに達したときに、トラッキング信号演算用の割り込み信号42を生成して第2サブプロセッサ4へ出力する。
メインプロセッサ2は、割り込み信号を入力後に、スピンドルの回転数や光ピックアップ10が位置するゾーン等を参照してフォーカスフィルター及びトラッキングフィルター演算処理用のフィルター係数の準備処理を実行する。
第1サブプロセッサ3は、割り込み信号41を入力すると、これをトリガーとしてエラー信号取り込み回路13からフォーカスエラー信号を専用データバス8を介して取り込み、第2記憶手段であるDataRAM19に記憶されたフィルター係数を参照しながらInstRAM20においてフィルター演算処理を実行してフォーカス信号を生成し、専用データバス8を介してドライブ信号生成回路14へ転送する。
第2サブプロセッサ4は、割り込み信号42を入力してこれをトリガーとしてエラー信号取り込み回路13からトラッキングエラー信号を専用データバス8を介して取り込み、第2記憶手段であるDataRAM22に記憶されたフィルター係数を参照しながらInstRAM23においてフィルター演算処理を実行してトラッキング信号を生成し、専用データバス8を介してドライブ信号生成回路14へ転送する。
メインプロセッサ2は、第1サブプロセッサ3がフィルター演算処理を実行中に、第1サブプロセッサ3の第1記憶手段であるDataRAM18にフィルタ書き換え要求を出してフォーカス信号算出用のフィルター係数を出力して書き換えを実行する。
この書き換え終了後であってフィルター演算処理が終了後に、記憶手段切替え要求を行って、第1サブプロセッサ3の演算手段であるInstRAM20が参照する記憶手段をDataRAM19からDataRAM18へ切替える。
メインプロセッサ2は、第2サブプロセッサ4がフィルター演算処理を実行中に、第1サブプロセッサ3の第1記憶手段であるDataRAM21にフィルタ書き換え要求を出力し、トラッキング信号算出用のフィルター係数を出力して書き換えを実行する。
この書き換え終了後であってフィルター演算処理が終了後に、記憶手段切替え要求を出して第2サブプロセッサ4の演算処理手段であるInstRAM23が参照する記憶手段をDataRAM22からDataRAM21へ切替える。
そして、次のサンプリング周期の時には、第1サブプロセッサ3の記憶手段であるDataRAM19にメインプロセッサ2からフィルター係数を書き込む書き換え処理が実行され、第2サブプロセッサ4の記憶手段であるDataRAM22にメインプロセッサ2からフィルター係数を書き込む書き換え処理が実行される。以降、これを繰り返す。
図6は、メインプロセッサ2によるフィルター係数の書き換え処理の実行のための割り込み信号40を、2回のサンプリング周期に1回の割合で発生させている状態を示している。フォーカス信号やトラッキング信号を生成するための積和演算は高速処理が要求される。
本実施の形態においては、第1サブプロセッサ3及び第2サブプロセッサ4によりメインプロセッサ2と分離独立してこれらの演算処理を実行し、データの転送も専用データバス8を介して行われる。
そのために、メインプロセッサ2の演算負荷は大幅に緩和される。特に光ディスクの回転方式がZCLV方式の場合は、光ピックアップ10がゾーン間を跨って移動するような場合以外の通常動作のときはフィルター係数の書き換え頻度は少なくてよい。
図6においては2サンプリング周期に1回間引いた例であるが、これを、3サンプリング周期、あるいは4サンプリング周期に1回の割合で割り込み信号40を生成してメインプロセッサ2へ出力するようにしてもよい。
(第2実施形態)
次に、本発明の第2実施形態について、図7〜図10を参照して説明する。なお、図7〜図10において、図1に示す第1実施形態の光ディスク装置1の構成要件と同様の構成要件については、同一の名称及び同一の符号を付して説明する。
図7は、第2実施形態に係る光ディスク装置を示す機能ブロック図であり、図8は、サブプロセッサ起動回路を示す機能ブロック図であり、図9は、第2実施形態に係るドライブ信号生成回路を示す機能ブロック図であり、図10は、サブプロセッサが行うフィルター演算処理を概念的に示す説明図である。
図7に示すように、第2実施形態の光ディスク装置1Aは、1つのメインプロセッサ2と、一つ以上(ここでは2つ)のサブプロセッサ(第1サブプロセッサ3、第2サブプロセッサ4)を備えており、その基本的構成に関しては、図1に示す第1実施形態の光ディスク装置1と同様であるが、第1サブプロセッサ3に第1サブプロセッサ起動回路3Aが接続され、第2サブプロセッサ4に第2サブプロセッサ起動回路4Aが接続されている点が異なる。
この光ディスク装置1Aにおいて、メインプロセッサは、光ディスク9へのデータの書き込みや、データの読出しを行う際、光ピックアップ10のサーボ制御処理中に条件判断を伴う処理や、予め決まった複数の処理を順番に行うシーケンス処理を行う。
また、第1サブプロセッサ3及び第2サブプロセッサ4は、主に、エラー信号取込み回路13により取込まれたフォーカスエラー信号やトラッキングエラー信号等のエラー信号に対してフィルター演算処理を行う。
そして、メインプロセッサ2は、比較的低い周波数の動作クロックにより動作させ、第1サブプロセッサ3及び第2サブプロセッサ4は、メインプロセッサ2よりも高い周波数の動作クロックにより動作させるように構成しており、これにより、第1サブプロセッサ3及び第2サブプロセッサ4をメインプロセッサ2よりも高速で動作させるようにしている。
このように、比較的処理量の多いメインプロセッサ2を比較的低速で動作させることにより、メインプロセッサ2の消費電力を低減させ、もともと比較的低消費電力で動作する第1サブプロセッサ3及び第2サブプロセッサ4を高速で動作させるようにしているため、この光ディスク装置1Aでは、1つのDSPでサーボ制御全体の処理を行わせる他の光ディスク装置と比べて低消費電力でありながら、同等か、若しくは、それ以上の処理性能を実現することができる。
また、上記したように、メインプロセッサ2に条件判断を伴う処理を行わせるようにしたため、第1サブプロセッサ3及び第2サブプロセッサ4に条件分岐命令処理を行わせることなく、フィルター演算処理だけを行わせればよくなるので、第1サブプロセッサ3及び第2サブプロセッサ4の回路規模を縮小することができる。
さらに、第1サブプロセッサ3及び第2サブプロセッサ4は、それぞれ自身の動作を停止させる動作停止命令を備えている。
このように、第1サブプロセッサ3及び第2サブプロセッサ4に動作停止命令を持たせたことにより、第1サブプロセッサ3及び第2サブプロセッサ4は、所定の処理が終了した後、動作停止命令を実行してスリープモードになる。これにより、第1サブプロセッサ3及び第2サブプロセッサ4が消費する電力量を可及的に低減することができる。
また、第1サブプロセッサ3及び第2サブプロセッサ4は、所定の処理が終了した後に、他の周辺回路や外部機器等に対し、割り込み信号として、自身の処理が終了したことを示す信号を出力するようにしている。
これにより、第1サブプロセッサ3及び第2サブプロセッサ4は、例えば、メインプロセッサ2と、他のサブプロセッサとから同時にアクセスされることにより、自身のメモリ内においてデータが破壊されることを防止することができる。
また、上記したように、これら第1サブプロセッサ3及び第2サブプロセッサ4は、命令数が少ない(ここでは、8bitである)ため、命令メモリの容量が比較的少なくてよく、比較的安価なメモリを用いて構成することができる。
次に、サブプロセッサ起動回路について図7及び図8を参照して説明する。
図7に示すように、第1サブプロセッサ起動回路3Aは、第1サブプロセッサ3と、タイマー16と、データバス6とに接続されており、データバス6を介してメインプロセッサ2から入力される選択信号に基づいて、後述する起動要因出力回路54(図8参照)を切替えることにより、第1サブプロセッサ3に実行させるフィルター演算処理の種類を選択させて、第1サブプロセッサ3を起動させる回路である。なお、ここでは図示していないが、この第1サブプロセッサ起動回路3Aは、光ディスク9を回転させるモータのロータリーエンコーダ(FG)信号も入力される。
また、第2サブプロセッサ起動回路4Aは、第2サブプロセッサ4と、タイマー16と、データバス6とに接続されており、データバス6を介してメインプロセッサ2から入力される選択信号に基づいて、後述する起動要因出力回路54(図8参照)を切替えることにより、第2サブプロセッサ4に実行させるフィルター演算処理の種類を選択させて、第2サブプロセッサ4を起動させる回路である。なお、ここでは図示していないが、この第2サブプロセッサ起動回路4Aは、光ディスク9を回転させるモータのロータリーエンコーダ(FG)信号も入力される。
これら、第1サブプロセッサ起動回路3Aと第2サブプロセッサ起動回路4Aとは、同様の構成をしているため、ここでは、図8を参照して第1サブプロセッサ起動回路3Aに関してのみ説明することとする。
図8に示すように、第1サブプロセッサ起動回路3Aは、起動要因出力回路54と、第1レジスタ50と、第2レジスタ51と、第3レジスタ52と、逓倍・分周回路53とを備えている。
起動要因出力回路54は、その入力側にタイマー16等の周辺回路が接続されており、これらの周辺回路から入力される複数種類のタイミング信号のうち、いずれか1つのタイミング信号を第1レジスタ50、第2レジスタ51、第3レジスタ52のうちのいずれか1つのレジスタに選択的に入力させるためのセレクタ回路である。
具体的には、この起動要因出力回路54は、その入力側にデータバス6、タイマー16等の所定の周辺回路が接続されており、その出力側に第1レジスタ50、第2レジスタ51、第3レジスタ52がそれぞれ接続されている。
そして、この起動要因出力回路54には、タイマカウンター値がスレッショルドA、B、C等に達したときにタイマー16が出力する割り込み信号や、光ディスク9を回転させるモータのロータリーエンコーダ(FG)信号等といった複数種類のタイミング信号が入力される。
起動要因出力回路54は、データバス6を介してメインプロセッサ2から入力される選択信号に基づいて、所定の周辺回路から入力される複数種類のタイミング信号の中から1つのタイミング信号を選択すると共に、その選択したタイミング信号を出力するレジスタ(第1レジスタ50、第2レジスタ51、第3レジスタ52のうちの1つ)を選択し、選択したレジスタへ選択したタイミング信号を出力する。
ここでは、第1レジスタ50が選択されたときに、第1のタイミング信号50cを第1レジスタ50へ出力するようにしており、第2レジスタ51が選択されたときに、第2のタイミング信号51cを第2レジスタ51に出力するようにしており、第3レジスタ52が選択されたときに、第3のタイミング信号52cを第3レジスタ52へ出力するようにしている。
第1レジスタ50は、第1開始アドレス格納レジスタ50aと、第1動作クロック設定レジスタ50bとを備え、その入力側に起動要因出力回路54とデータバス6とが接続されており、その出力側に第1サブプロセッサ3が備えるプログラムカウンタ55と、逓倍・分周回路53とが接続されている。
そして、この第1レジスタ50では、メインプロセッサ2からデータバス6を介して入力される、第1レジスタ50を作動させるための開始アドレス値が第1開始アドレス格納レジスタ50aに格納されると共に、第1レジスタ50を作動させるための動作クロックの設定値が第1動作クロック設定レジスタ50bに格納される。
その後、この第1レジスタ50に起動要因出力回路54から第1のタイミング信号50cが入力されると、第1レジスタ50は、第1サブプロセッサ3が備えるプログラムカウンタ55に、第1開始アドレス格納レジスタ50aに格納している開始アドレス値を上書きする。
このとき同時に、第1レジスタ50は、第1動作クロック設定レジスタ50bに格納している動作クロックの設定値を逓倍・分周回路53へ出力する。
そして、第1サブプロセッサ3は、プログラムカウンタ55の開始アドレス値が上書きされたことを契機として起動して、分周回路53から入力される動作クロックに同期して所定のフィルター演算処理を実行する。
また、第2レジスタ51は、第2開始アドレス格納レジスタ51aと、第2動作クロック設定レジスタ51bとを備えており、第3レジスタ52は、第3開始アドレス格納レジスタ52aと、第3動作クロック設定レジスタ52bとを備えている。
これら第2レジスタ51及び第3レジスタ52は、第1レジスタ50と同様に、その入力側に起動要因出力回路54とデータバス6とが接続されており、その出力側に第1サブプロセッサ3が備えるプログラムカウンタ55と、逓倍・分周回路53とが接続されている。
そして、第2レジスタ51及び第3レジスタ52では、第1レジスタ50と同様に、第2開始アドレス格納レジスタ51a及び第3開始アドレス格納レジスタ52aにそれぞれ所定の開始アドレス値が格納され、第2動作クロック設定レジスタ51b及び第3動作クロック設定レジスタ52bにそれぞれ所定の動作クロックの設定値が格納される。
その後、第2レジスタ51又は第3レジスタ52に、それぞれ対応した第2のタイミング信号51c、第3のタイミング信号52cが入力されると、第2レジスタ51と第3レジスタ52とは、それぞれが格納している所定の開始アドレス値を第1サブプロセッサ3が備えるプログラムカウンタ55に上書きする。
このとき同時に、第2レジスタ51及び第3レジスタ52は、それぞれが格納している所定の動作クロックの設定値を逓倍・分周回路53へ出力する。
そして、第1サブプロセッサ3は、プログラムカウンタ55の開始アドレス値が上書きされたことを契機として起動して、分周回路53から入力される動作クロックに同期して所定のフィルター演算処理を実行する。
このように、第1サブプロセッサ起動回路3Aでは、起動要因出力回路54が出力する第1〜第3のタイミング信号50c、51c、52cが、第1サブプロセッサ3を起動する契機となる起動信号として機能しており、この起動信号は、図2に示したタイマー16と、第1サブプロセッサ3とを接続している点線を介して送信される割り込み信号と同じ位置付けである。
また、第1〜第3レジスタ50、51、52は、上記したように、その構成に関しては全て同様であるが、各レジスタに格納している各開始アドレス値と、各動作クロックの設定値の内容が異なる。
すなわち、第1開始アドレス格納レジスタ50aには、図2に示す第1サブプロセッサ3のInstRAM20における光ピックアップ10のフォーカス制御用プログラムの開始アドレス値を格納しており、第1動作クロック設定レジスタ50bには、第1サブプロセッサ3がフォーカス制御用プログラムを実行する際の動作クロックを設定するための設定値を格納している。
また、第2開始アドレス格納レジスタ51aには、第1サブプロセッサ3のInstRAM20における光ピックアップ10のチルト制御用プログラムの開始アドレス値を格納しており、第2動作クロック設定レジスタ51bには、第1サブプロセッサ3がチルト制御用プログラムを実行する際の動作クロックを設定するための設定値を格納している。
また、第3開始アドレス格納レジスタ52aには、第1サブプロセッサ3のInstRAM20におけるスピンドルモータ回転制御用プログラムの開始アドレス値を格納しており、第3動作クロック設定レジスタ52bには、第1サブプロセッサ3がスピンドルモータ回転制御用プログラムを実行する際の動作クロックを設定するための設定値を格納している。
逓倍・分周回路53は、その入力側に、光ディスク装置1A全体の動作の基準となるシステムクロックが接続されており、その出力側に第1サブプロセッサ3が接続されている。
さらに、この逓倍・分周回路53は、上記のように、第1〜第3レジスタ50、51、52とも接続されており、これら第1〜第3レジスタ50、51、52からそれぞれ所定のタイミングで第1サブプロセッサ3の動作クロックを設定するための設定値が入力される。
ここで、第1〜第3レジスタ50、51、52は、起動要因出力回路54から第1〜第3のタイミング信号50c、51c、52cが入力されたことを契機として、それぞれ所定の動作クロックの設定値を逓倍・分周回路53へ入力するように構成している。
そして、この逓倍・分周回路53は、第1〜第3レジスタ50、51、52から入力される動作クロックの設定値に基づいて、システムクロックから入力される基準クロックの周波数を逓倍、若しくは、分周することにより、第1サブプロセッサ3を動作させるための動作クロックを、実行するフィルター演算処理の種類に応じて生成する。
このとき、逓倍・分周回路53が出力する動作クロックは、メインプロセッサ2の動作クロックよりも周波数の高く、且つ、第1サブプロセッサ3がフィルター演算処理を実行する際に、次のフィルター演算処理の実行が開始されるまでに、前回のフィルター演算処理が完了するような動作クロックである。
このように、第1サブプロセッサ起動回路3Aが、第1サブプロセッサ3で実行されるプログラムの開始アドレス値、及び、動作クロックの設定値を設定するので、第1サブプロセッサ3側では、条件判断処理やそれに伴う分岐処理命令を実行する必要がなく、これにより、第1サブプロセッサ3の回路規模を縮小することができる。
しかも、第1サブプロセッサ起動回路3A内に、起動要因出力回路54と、第1〜第3レジスタ50、51、52という複数のレジスタとを備え、これら第1〜第3レジスタ50、51、52が、起動要因出力回路54から入力される第1〜第3のタイミング信号50c、51c、52cによって作動するように構成しているので、1つのサブプロセッサにより、複数種類のフィルター演算処理を実行させることができる。
したがって、この光ディスク装置1Aでは、フォーカス制御、トラッキング制御、チルト制御、スピンドルモータの回転制御等といった複数種類の制御毎に、それぞれ1つずつサブプロセッサを設ける必要がなく、1つのサブプロセッサに複数の制御を実行させることができる。
その結果、光ディスク装置1Aに設けるサブプロセッサの個数を減少させることができるようになり、光ディスク装置1Aの小型化及び低コスト化を図ることができる。
次に、光ディスク装置1Aが備えるドライブ信号生成回路14について説明する。このドライブ信号生成回路14は、図9に示すように、第1出力レジスタ60と、第2出力レジスタ61と、第3出力レジスタ62と、条件選択回路63と、出力切替レジスタ64と、第1切替回路65と、第2切替回路66と、リミッタ回路67とDAコンバータ68とを備えている。
そして、このドライブ信号生成回路14は、エラー信号取込み回路13により取込んだエラー信号に基づいて光ピックアップ10のサーボ制御を行うために、2軸ドライバ15へ出力するトラッキングドライブ信号やフォーカスドライブ信号等の制御信号を生成する回路である。
第1出力レジスタ60は、入力側がデータバス6に接続され、出力側が第2切替回路66に接続されている。そして、この第1出力レジスタ60には、データバス6を介してメインプロセッサ2から入力される固定値が設定される。
ここで、第1出力レジスタ60に設定される固定値は、エラー信号取込み回路13によりエラー信号が検出される直前まで第1サブプロセッサ3又は第2サブプロセッサ4が出力していた通常制御時のフィルター演算処理の結果を、メインプロセッサ2がソフトウェア処理により設定するものである。
第2出力レジスタ61は、入力側が専用データバス8に接続され、出力側が第1切替回路65に接続されている。そして、この第2出力レジスタ61には、専用データバス8を介して、第1サブプロセッサ3又は第2サブプロセッサ4から入力される通常制御時のフィルター演算処理結果の値が設定される。
第3出力レジスタ62は、入力側が専用データバス8に接続され、出力側が第1切替回路65に接続されている。そして、この第3出力レジスタ62には、専用データバス8を介して、第1サブプロセッサ3又は第2サブプロセッサ4から入力される異常発生時のフィルター演算処理結果の値が設定される。
ここで、第1サブプロセッサ3又は第2サブプロセッサ4が行うフィルター演算処理の一例について説明する。なお、ここでは、第1サブプロセッサ3がフォーカス制御を行う際のフィルター演算処理について説明する。
第1サブプロセッサ3は、専用バスデコーダ7のアドレスを指定してエラー信号取込み回路13からフォーカスエラー信号を取込むと、演算手段であるInstRAM20がフォーカスエラー信号と、DataRAM19に記憶されたフィルター係数を参照して積和演算処理を実行し、フォーカス信号を生成して、専用データバス8を介して、ドライブ信号生成回路14へ出力する。
このとき、第1サブプロセッサ3は、図10に示すように、第1のフィルター係数を用いて第1のローパスフィルター演算処理を実行する。
次に、第1サブプロセッサ3は、第1のローパスフィルター演算処理の結果に対して、第2のフィルター係数を用いて第2のローパスフィルター演算処理を実行した後に、第1のローパスフィルター演算処理の演算結果に対して、ハイパスフィルター演算処理を実行する。
そして、この第2のローパスフィルター演算処理の演算結果と、ハイパスフィルター演算処理の演算結果とを加算し、通常制御時のフィルター演算処理結果として第2出力レジスタ61へ出力する。
そして、第1サブプロセッサ3は、続けて第2出力レジスタ61へ出力する通常制御時のフィルター演算処理結果に対して、第3のフィルター係数を用いて第3のローパスフィルター演算処理を実行し、この第3のローパスフィルター演算処理結果を異常発生時のフィルター演算処理結果として第3出力レジスタ62へ出力する。
そして、第1サブプロセッサ3は、フォーカス制御に関するフィルター演算処理を実行している間、常時、通常制御時のフィルター演算処理と、異常発生時のフィルター演算処理とを並行して行い、その各演算処理結果を第2出力レジスタ61と、第3出力レジスタ62とにそれぞれ出力して設定するようにしている。
条件選択回路63は、メインプロセッサ2からデータバス6を介して入力される選択信号に基づいて、ここでは図示していない信号処理回路から出力される複数種類のエラー信号のいずれか1つが選択され、選択されたエラー信号が検出されるまでの間、第1切替回路65へ第2出力レジスタ61を選択させるための選択信号を出力し、エラー信号が検出されたことを示す信号が入力されると、それをトリガーとして第1切替回路65へ第3出力レジスタ62を選択させるための選択信号出力する回路である。
出力切替レジスタ64は、データバス6を介してメインプロセッサ2から入力される条件判断信号に基づいて所定の値を格納するレジスタであり、このレジスタ内に格納した値に応じて、第2切替回路66へ切替信号を出力するものである。
そして、メインプロセッサ2は、エラー信号に基づいて、エラーの程度が所定範囲を超えていると判断した場合に、第2切替回路66へ、その旨を示す条件判断信号を出力することにより、出力切替レジスタ64に第1出力レジスタ60を選択させるための値を設定する。
一方、メインプロセッサ2は、エラー信号に基づいて、エラーの程度が所定範囲内であると判断した場合に、第2切替回路66へ、その旨を示す条件判断信号を出力することによって、出力切替レジスタ64に第1切替回路65を選択させるための値を設定する。
第1切替回路65は、条件選択回路63から入力される選択信号に基づいて、第2出力レジスタ61と第3出力レジスタ62とのうちの何れか一方を選択して第2切替回路66に接続するスイッチ回路である。
第2切替回路66は、出力切替レジスタ64から入力される切替信号に基づいて第1出力レジスタ60と第1切替回路65とのうちの何れか一方を選択してリミッタ回路67に接続するスイッチ回路である。
リミッタ回路67は、ドライブ信号生成回路14の出力範囲を制限するものであり、第2切替回路66から入力される0〜256までのデジタル値のうち、出力するデジタル値の上限と下限とを予め設定しておく。
そして、このリミッタ回路67は、第2切替回路66から予め設定した上限を超えたデジタル値が入力されている間リミッタ機能を作動させて、設定されている上限値を継続してDAコンバータ68へ出力し、下限値を下回るデジタル値が入力されている間リミッタ機能を作動させて、設定されている下限値を継続してDAコンバータ68へ出力するようにしている。
また、このリミッタ回路67は、リミッタ機能を作動させた際に、リミッタ機能を作動させたことを示すリミッタ作動信号をメインプロセッサ2へ出力するようにしている。
そして、メインプロセッサ2は、このリミッタ作動信号を割り込み処理として受信すると、異常が発生したものと判断して、リミッタ回路67の出力信号と、第2出力レジスタ61の出力信号とを監視する後述の出力信号監視処理を開始する。
DAコンバータ68は、リミッタ回路67から入力されるデジタル値からなる信号をアナログ信号に変換して、2軸ドライバ15へトラッキングドライブ信号やフォーカスドライブ信号等として出力する。
ここで、メインプロセッサ2が実行する出力信号監視処理について説明する。メインプロセッサ2は、リミッタ回路67からリミッタ作動信号を受信すると、一定期間リミッタ回路67の出力信号と、第2出力レジスタ61の出力信号とを監視する処理を開始する。
このとき、メインプロセッサ2は、リミッタ回路67から所定時間以上継続してリミッタ作動信号を受信した(リミッタ回路67が作動し続けている)と判断すると、異常状態が発生していると判断する。
また、メインプロセッサ2は、リミッタ作動信号を受信してから、所定時間以上経過しても、第2出力レジスタ61の出力信号がリミッタ回路67に設定した上限と下限との間の値まで復帰しないと判断した場合にも、異常状態が発生していると判断する。
そして、メインプロセッサ2は、異常状態が発生していると判断すると、サーボ制御を停止させる処理を行う。
ここで、メインプロセッサ2は、出力切替レジスタ64へ、条件判断信号を出力することにより、出力切替レジスタ64へ第1出力レジスタ60を選択させるための値を設定する。
この設定により出力切替レジスタ64は、第2切替回路66へ切替信号を出力して第1出力レジスタ60とリミッタ回路67とが接続させ、メインプロセッサ2から入力される固定値をリミッタ回路67から出力させて、サーボ制御を停止させる。
このようにメインプロセッサ2は、リミッタ回路67がリミッタ機能を作動させると即座にサーボ制御を停止させるのではなく、所定時間待っても異常状態から復帰できないときに、固定値の制御信号を2軸ドライバ15へ出力することによって、サーボ制御を停止させる制御を行うので、サーボ制御が発振した場合のみサーボ制御を停止させることができ、外乱に対する特性を損なうことなく制御対象が破損することを防止することができる。
このように、第2実施形態の光ディスク装置1Aでは、第1サブプロセッサ3を起動させる第1サブプロセッサ起動回路3Aを設けると共に、第2サブプロセッサ4を起動させる第2サブプロセッサ起動回路4Aを設け、各サブプロセッサ起動回路3A、4Aに複数の開始アドレスレジスタ50a、51a、52aと、複数の動作クロック設定レジスタ50b、51b、52bとを設けたことにより、第1サブプロセッサ3及び第2サブプロセッサ4が備えるメモリ内のフィルター演算処理プログラムを変更、若しくは、追加し、開始アドレスレジスタ50a、51a、52aと動作クロック設定レジスタ50b、51b、52bとに、それぞれ、そのプログラムに応じた開始アドレス値と動作クロックの設定値を格納させるだけで、制御対象に応じた自由なフィルター構成や新たな制御理論の組み込みを容易に行うことができる。
以上説明してきた実施形態は、本発明の一実施形態を示したに過ぎず、本発明は、本発明の技術思想を逸脱しない範囲において、適宜変更することがき、例えば、本実施形態に記載したサブプロセッサに代えて、本実施形態のサブプロセッサと同等の機能を有するハードウェアによるフィルター演算専用の演算器を用いても良く、その場合には、回路規模を小さくしたり、消費電力をさらに低減することができる。