(57)【要約】【課題】クロック周波数及びゲート規模の増大を抑える記憶装置、制御装置を提供する。【解決手段】ＤＳＰ２１と、ＤＳＰ２２と、記憶媒体に対するヘッドの位置の制御を行うＳｅｒｖｏ  ＭＰＵ１２とを備え、Ｓｅｒｖｏ  ＭＰＵ１２は、ＤＳＰ２１及びＤＳＰ２２への指示を行い、ＤＳＰ２１は、Ｓｅｒｖｏ  ＭＰＵ１２からの指示に基づいて、サーボ情報の復調に関する演算である復調演算とデジタルフィルタ演算との少なくともいずれかの演算を行い、ＤＳＰ２２は、Ｓｅｒｖｏ  ＭＰＵからの指示に基づいて、位置の補正に関する演算である補正演算を行い、Ｓｅｒｖｏ  ＭＰＵ１２は、ＤＳＰ２１及びＤＳＰ２２による演算結果に基づいて、位置の制御を行うことを特徴とする。【選択図】図１
2008176865.tif 000002
【特許請求の範囲】
【請求項１】
第１デジタルシグナルプロセッサと、
第２デジタルシグナルプロセッサと、
記憶媒体に対するヘッドの位置の制御を行う第１制御部とを備え、
前記第１制御部は、前記第１デジタルシグナルプロセッサ及び前記第２デジタルシグナルプロセッサへの指示を行い、
前記第１デジタルシグナルプロセッサは、前記第１制御部からの指示に基づいて、サーボ情報の復調に関する演算である復調演算とデジタルフィルタ演算との少なくともいずれかの演算を行い、
前記第２デジタルシグナルプロセッサは、前記第１制御部からの指示に基づいて、前記位置の補正に関する演算である補正演算を行い、
前記第１制御部は、前記第１デジタルシグナルプロセッサ及び前記第２デジタルシグナルプロセッサによる演算結果に基づいて、前記位置の制御を行うことを特徴とする記憶装置。
【請求項２】
請求項１に記載の記憶装置において、
前記復調演算は、前記ヘッドにより前記記憶媒体から読み取られた前記サーボ情報を復調することにより、前記ヘッドの位置情報を算出することを特徴とする記憶装置。
【請求項３】
請求項１または請求項２に記載の記憶装置において、
前記補正演算は、前記記憶媒体におけるトラックが前記記憶媒体の回転中心を中心とする円になるように前記ヘッドの位置を補正するための仮想円補正係数を算出する仮想円補正係数演算を含むことを特徴とする記憶装置。
【請求項４】
請求項３に記載の記憶装置において、
前記補正演算は、前記仮想円補正係数に基づいて前記位置情報を補正する仮想円補正演算を含むことを特徴とする記憶装置。
【請求項５】
請求項１乃至請求項４のいずれかに記載の記憶装置において、
前記補正演算は、前記ヘッドの位置が前記記憶媒体におけるトラック上になるように、前記ヘッドの位置を補正するための偏心補正値を算出する偏心補正演算を含むことを特徴とする記憶装置。
【請求項６】
第１デジタルシグナルプロセッサと、
第２デジタルシグナルプロセッサと、
記憶媒体に対するヘッドの位置の制御を行う第１制御部とを備え、
前記第１制御部は、前記第１デジタルシグナルプロセッサ及び前記第２デジタルシグナルプロセッサへの指示を行い、
前記第１デジタルシグナルプロセッサは、前記第１制御部からの指示に基づいて、サーボ情報の復調に関する演算である復調演算とデジタルフィルタ演算との少なくともいずれかの演算を行い、
前記第２デジタルシグナルプロセッサは、前記第１制御部からの指示に基づいて、前記位置の補正に関する演算である補正演算を行い、
前記第１制御部は、前記第１デジタルシグナルプロセッサ及び前記第２デジタルシグナルプロセッサによる演算結果に基づいて、前記位置の制御を行うことを特徴とする制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のプロセッサにより制御を行う記憶装置、制御装置に関するものである。
【背景技術】
【０００２】
ハードディスク装置を制御するＩＣ（Integrated Circuit：集積回路）は、年々機能が向上している。一方でコストは従来と同じ程度にする必要があり、必然的にＩＣの集積化への要求が高まっている。
【０００３】
ＩＣの集積化と機能向上を実現しようとすると、消費電力の増加が著しくなり、発熱が大きくなってしまう。しかし、ハードディスク用の集積回路は放熱対策が困難であるため、発熱量を抑える必要がある。機能向上の要求を実現する方法の一つに、プロセッサのクロック周波数の向上がある。ただしクロック向上は消費電力も増大させることになる。複数のプロセッサをより少ない数のＩＣで実現する上で、消費電力を抑えることは重要な要素となる。
【０００４】
なお、本発明の関連ある従来技術として、制御回路をワンチップ上に形成した光ディスク装置がある（例えば、特許文献１参照）。
【特許文献１】特開２００４−５９１４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
ディスク制御用の集積回路は、集積化を進める事により年々ＩＣ数が減少している。しかしながら、装置に要求される性能は年々高度化している。また、集積回路の集積度は、発熱あるいは消費電力という観点から制約を受けつつある。また、ゲートサイズはそのままコストに影響するため、ゲート規模を少なく抑える事も必要とされている。
【０００６】
ハードディスク装置の制御部分をシングルプロセッサで構成する場合、一つの主プロセッサで、ＨＤＣ（Hard Disk Controller）の制御（ホストとのインターフェースの制御）と、ＲＤＣ（Read Channel）の制御（リードライト時のパラメータ転送）とＳＶＣ（Servo combo driver）の制御（ＶＣＭ（Voice Coil Motor）の駆動電流値及びＳＰＭ（Spindle Motor）の駆動電流値の指示）を行う必要がある。
【０００７】
最近のハードディスク装置において、サーボサンプル周波数は５０ｋＨｚ程度まで高くなってきており、サーボサンプル時間は２０μｓｅｃ程度まで小さくなってきている。このサーボサンプル時間内で上記の制御や演算を行うためには、主プロセッサには、クロック周波数５００ＭＨｚあるいはそれ以上の性能が求められる。これは９０ｎｍプロセス世代では実現不可能な速度では無いが、パイプライン可などの技術が必要となるだけでなく、チップコア面積の増大や、クロック上昇に伴う発熱の増大が発生し、現実的にチップを作ることは困難となってくる。
【０００８】
本発明は上述した問題点を解決するためになされたものであり、クロック周波数及びゲート規模の増大を抑える記憶装置、制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決するため、本発明は、第１デジタルシグナルプロセッサと、第２デジタルシグナルプロセッサと、記憶媒体に対するヘッドの位置の制御を行う第１制御部とを備え、前記第１制御部は、前記第１デジタルシグナルプロセッサ及び前記第２デジタルシグナルプロセッサへの指示を行い、前記第１デジタルシグナルプロセッサは、前記第１制御部からの指示に基づいて、サーボ情報の復調に関する演算である復調演算とデジタルフィルタ演算との少なくともいずれかの演算を行い、前記第２デジタルシグナルプロセッサは、前記第１制御部からの指示に基づいて、前記位置の補正に関する演算である補正演算を行い、前記第１制御部は、前記第１デジタルシグナルプロセッサ及び前記第２デジタルシグナルプロセッサによる演算結果に基づいて、前記位置の制御を行うことを特徴とする。
【発明の効果】
【００１０】
本発明によれば、記憶装置におけるクロック周波数及びゲート規模の増大を抑えることができる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明の実施の形態について図面を参照しつつ説明する。
【００１２】
本実施の形態においては、本発明の記憶装置をハードディスク装置に適用した例について説明する。
【００１３】
まず、本実施の形態に係るハードディスク装置の構成について説明する。
【００１４】
図１は、本実施の形態に係るハードディスク装置の構成の一例を示すブロック図である。このハードディスク装置は、ＨＤＣ１、ＲＤＣ２、Ｓｅｒｖｏ  ｌｏｇｉｃ３、Ｈｅａｄ  ＩＣ４、ＳＶＣ５、ＶＣＭ６、ＳＰＭ７、Ｈｏｓｔ  ＭＰＵ（Micro Processing Unit）１１、Ｓｅｒｖｏ  ＭＰＵ１２、ＤＳＰ（Digital Signal Processor）２１，２２を備える。
【００１５】
ＨＤＣ１は、主にインターフェース・プロトコル制御、データバッファ制御、ディスク・フォーマット制御を行う。ＲＤＣ２は、データの変復調を行う。Ｓｅｒｖｏ  ｌｏｇｉｃ３は、Ｈｏｓｔ  ＭＰＵ１１及びＳｅｒｖｏ  ＭＰＵ１２からＨｅａｄ  ＩＣ４及びＳＶＣ５への制御信号の仲介を行う。Ｈｅａｄ  ＩＣ４は、Ｓｅｒｖｏ  ＭＰＵ１２からの制御信号に基づいて書き込み及び読み込みにおける増幅の設定等を行う。ＳＶＣ５は、Ｓｅｒｖｏ  ＭＰＵ１２からの制御信号に基づいてＶＣＭ６及びＳＰＭ７の駆動電流を供給する。ＶＣＭ６は、ヘッドを移動させるモータである。ＳＰＭ７は、ディスク媒体を回転させるモータである。Ｈｏｓｔ  ＭＰＵ１１は、ＨＤＣ１のホストインターフェース制御を行う。Ｓｅｒｖｏ  ＭＰＵ１２は、Ｓｅｒｖｏ  ｌｏｇｉｃ３を介してサーボ制御を行う。ＤＳＰ２１，２２は、一般的なＤＳＰから割り込み処理等の機能を省き、規模を小さくしたものである。
【００１６】
次に、本実施の形態に係るハードディスク装置の動作について説明する。
【００１７】
まず、ＨＤＣ１は、ホスト（上位装置）に接続され、ホストからの命令を受け取り、その命令をＨｏｓｔ  ＭＰＵ１１へ送る（Ｓ１）。命令を受け取ったＨｏｓｔ  ＭＰＵ１１は、シーク命令であれば、Ｓｅｒｖｏ  ＭＰＵ１２にシークを実行させ（Ｓ２）、Ｒ（Read）／Ｗ（Write）命令であれば、ＨＤＣ１とＲＤＣ２の間でリードライトを実行させる（Ｓ５）。
【００１８】
シーク時、Ｓｅｒｖｏ  ＭＰＵ１２は、シーク時にヘッドチェンジが必要であれば、Ｓｅｒｖｏ  ｌｏｇｉｃ３を介してＨｅａｄ  ＩＣ４にヘッド切り替えを実行させる（Ｓ３）。
【００１９】
Ｒ／Ｗ時、Ｓｅｒｖｏ  ＭＰＵ１２は、ＤＳＰ２１へ復調演算やデジタルフィルタ演算等の演算の指示を行い、演算結果を取得する（Ｓ６）。また、Ｓｅｒｖｏ  ＭＰＵ１２は、復調演算結果に基づいてＤＳＰ２２へ仮想円補正係数演算、仮想円補正演算、偏心補正演算等の演算の指示を行い、演算結果を取得する（Ｓ７）。次に、Ｓｅｒｖｏ  ＭＰＵ１２は、復調演算結果及び偏心補正演算結果を用いてＶＣＭ６の駆動電流値を算出し、駆動電流値をＳｅｒｖｏ  ｌｏｇｉｃ３を介してＳＶＣ５へ送る。
【００２０】
次に、Ｓｅｒｖｏ  ＭＰＵ１２、ＤＳＰ２１，２２による工場出荷後のＲ／Ｗ時の並列処理について説明する。
【００２１】
図２は、本実施の形態に係るＲ／Ｗ時の並列処理の一例を示すタイムチャートである。この図において、横軸は時間を示す。最上段はサーボゲートのタイミングを示し、その下の段はＳｅｒｖｏ  ＭＰＵ１２による処理を示し、その下の段はＤＳＰ２１による処理を示し、最下段はＤＳＰ２２による処理を示す。
【００２２】
サーボゲートの直後、Ｓｅｒｖｏ  ＭＰＵ１２は、ＤＳＰ２１に対してサーボ情報の復調演算の指示（Ｐｏｓｉｔｉｏｎ  ｄｅｍｏｄｕｌａｔｉｏｎ）（Ｓ１１）、ＳＰＭ７の制御（Ｓｐｉｎｄｌｅ  Ｔａｓｋ）（Ｓ１２）を行う。次に、Ｓｅｒｖｏ  ＭＰＵ１２は、ＤＳＰ２２に対して、位置情報を用いた仮想円補正演算及び偏心補正演算の指示（ＲＲＯ／Ｖｉｒｔｕａｌ  ｃｉｒｃｌｅ  Ｃｏｍｐｅｎｓａｔｉｏｎ）（Ｓ２１）、ＤＳＰ２１に対して、位置情報にノッチフィルタを掛けるノッチフィルタ演算の指示（ｎｏｔｃｈ  Ｃａｌｃｕｌａｔｉｏｎ）（Ｓ２２）、位置情報を用いたオントラック判定（Ｓ２３）を行う。以後、処理Ｓ１１〜Ｓ２３が、繰り返される。
【００２３】
この並列処理によれば、Ｓｅｒｖｏ  ＭＰＵ１２、ＤＳＰ２１，２２に対して処理を分散させることができ、更に全ての処理がサーボサンプル時間内に終了しなくても良いため、従来のシングルプロセッサと比較して各プロセッサの性能を大幅に低くすることができる。
【００２４】
次に、ＤＳＰ２１について説明する。
【００２５】
Ｓｅｒｖｏ  ＭＰＵ１２からの復調演算の指示に従って、ＤＳＰ２１は、ヘッドにより読み出されたサーボフレームの情報であるサーボ情報を取得する。サーボ情報は、位置を示す情報が位相変調された波形である。ＤＳＰ２１は、復調演算として、サーボ情報の復調を行い、復調結果を位置の情報を位置情報として出力する。Ｓｅｒｖｏ  ＭＰＵ１２は、復調結果を用いて、上述した処理Ｓ２１，Ｓ２２，Ｓ２３を行う。
【００２６】
ＤＳＰ２１は、復調演算のためにｓｉｎ／ｃｏｓテーブルＡを有する。一般的に、ｓｉｎ／ｃｏｓテーブルＡは、検索を容易にするために０から３６０度までの角度を２５６段階に分割し、それぞれの角度におけるｓｉｎ及びｃｏｓの値を１ワードとして割り当てた２５６ワード／３６０ｄｅｇのテーブルである。
【００２７】
また、Ｓｅｒｖｏ  ＭＰＵ１２からのデジタルフィルタ演算の指示に従って、ＤＳＰ２１は、位置情報のフィルタリングを行うデジタルフィルタ演算を行う。ここで、デジタルフィルタは、ローパスフィルタや、共振周波数を除去するノッチフィルタである。ＤＳＰ２１は、フィルタリングされた位置情報を出力する。
【００２８】
次に、ＤＳＰ２２について説明する。
【００２９】
ＤＳＰ２２は、Ｓｅｒｖｏ  ＭＰＵ１２からの指示に従って仮想円補正係数演算、仮想円補正演算、偏心補正演算等の演算を行い、演算結果を出力する。
【００３０】
ＤＳＰ２２は、仮想円補正係数演算、仮想円補正演算、偏心補正演算のために、ディスク媒体上のサーボフレーム数に応じたｓｉｎ／ｃｏｓテーブルＢを有する。例えば、ディスク媒体が一周に３００サーボフレームを有する場合、ｓｉｎ／ｃｏｓテーブルＢは、０から３６０度までの角度を３００段階に分割し、それぞれの角度におけるｓｉｎ及びｃｏｓの値を１ワードとして割り当てた３００ワード／３６０ｄｅｇのテーブルである。ＤＳＰ２２において、ｓｉｎ／ｃｏｓテーブルＡのようなサーボフレーム数と関係の無い通常のテーブルを用いると直線補完して値を算出する処理が必要となるが、サーボフレームに対応したｓｉｎ／ｃｏｓテーブルＢを用いることにより、この処理を省くことができる。
【００３１】
次に、仮想円補正について説明する。
【００３２】
まず、仮想円補正の準備である仮想円補正係数の算出は、工場出荷前に行われる。ＳＴＷ（Servo Track Writer）等により予めサーボフレームが書き込まれたディスク媒体が、ハードディスク装置に取り付けられる場合、サーボフレーム中心とディスク媒体の回転中心とがずれる場合がある。ここで、ヘッドをサーボフレームに追従させようとすると、トラック方向のずれを補正するために常にヘッドを駆動しなければならなくなる。仮想円補正係数は、できるだけＶＣＭ６へ駆動電流を流さない（ヘッド位置を動かさない）ように、サーボフレームから得られる値を補正するための係数である。つまり、ヘッドの軌跡がディスク媒体の回転中心を中心とする円（仮想円）になるようにする。仮想円補正係数は、工場内で算出され、システム領域に記録される。
【００３３】
また、仮想円補正は、仮想円補正係数とポストコードと組み合わせて使う事が一般的である。ポストコードは、サーボフレーム毎に記録されており、多くのビット数を記録するとサーボフレーム長が長くなってしまうため、ポストコードは４から６ビット程度の長さである。この場合の補正範囲は、±０．２から±０．５トラック程度である。工場出荷後のユーザ使用時において、システム領域の仮想円補正係数とサーボフレームのポストコードとを用いて、サーボフレームから得られる値を常に補正することが必要であり、シングルプロセッサでは高い性能が要求される。
【００３４】
また、仮想円補正係数の算出では、ヘッドの過去の位置情報（ＰＥＳ：Position Error Signal）の周波数分析を行う。ここで、位置情報は、サーボフレームの円に対するヘッドの位置ずれを示す。ＳＰＭ７の回転数である１次（基本周波数）成分の周期は非常に長く、ポストコードはこのような長い周期をカバーすることができない。このような理由により、近年では１次成分から３次成分程度までの低次成分に対して仮想円補正が行われ、それ以上の高次成分に対してポストコード補正が行われている。
【００３５】
本実施の形態において、工場出荷前に、Ｓｅｒｖｏ  ＭＰＵ１２から仮想円補正係数演算の指示を受けたＤＳＰ２２は、ｓｉｎ／ｃｏｓテーブルＢを用いて、復調演算により得られた位置情報の周波数分析を行い、位置情報の周波数領域の所定の低次成分の係数を仮想円補正係数として出力する。Ｓｅｒｖｏ  ＭＰＵ１２は、仮想円補正係数をシステム領域に記録する。
【００３６】
また、工場出荷後に、Ｓｅｒｖｏ  ＭＰＵ１２から仮想円補正演算の指示を受けたＤＳＰ２２は、システム領域に記録された仮想円補正係数を取得し、仮想円補正値とｓｉｎ／ｃｏｓテーブルＢに基づいて位置情報の時間領域の補正値である仮想円補正値を算出し、復調演算により得られた位置情報を仮想円補正値により補正する。
【００３７】
次に、偏心補正について説明する。
【００３８】
偏心補正は、工場出荷後に行われる。工場出荷前に設定された同心円状のトラックに対して、工場出荷後の外乱や経年変化により偏心が起こる場合がある。偏心補正は、この偏心によるヘッド位置のトラックからのずれを補正し、ヘッド位置をトラック上に保つものである。従って、ユーザ使用時は常に偏心補正の計算が行われる。
【００３９】
偏心補正は、過去の位置情報の時間変化に対して周波数分析を行う。ここで、位置情報は、トラックの円に対するヘッド位置のずれを示す。周波数分析には、ＤＦＴ（Discrete Fourier Transform：離散フーリエ変換）が用いられる。通常、ＶＣＭ６の駆動電流値は、位置情報に基づいてフィードバック制御を行うことにより算出される。この駆動電流値に、周波数分析により求めた偏心補正値を足すことにより、偏心によるヘッド位置のずれをキャンセルし、常にヘッド位置をトラック上に保つことができる。
【００４０】
図３は、偏心補正における周波数分析結果の一例を示すグラフである。この図は、周波数分析の結果を示し、横軸は周波数を示し、縦軸はＲＲＯ（Repeatable Run Out）スペクトラム［ｄＢ］を示す。位置情報には、ＳＰＭ７の回転数である１次（基本周波数）成分の他に、２次、３次、…の高調波成分が現れる。基本的には、最も大きい１次成分を除去するだけでも効果があるが、実際には高次の成分もあるため、近年では２０次成分程度までを除去する偏心補正が行われている。しかし、１次成分から２０次成分までの偏心補正を行う事はプロセッサ負荷が大きく、シングルプロセッサでは高い性能が要求される。
【００４１】
本実施の形態において、Ｓｅｒｖｏ  ＭＰＵ１２から偏心補正演算の指示を受けたＤＳＰ２２は、ｓｉｎ／ｃｏｓテーブルＢを用いて、仮想円補正演算により補正された位置情報の周波数分析を行うことにより偏心補正値を算出する。次に、Ｓｅｒｖｏ  ＭＰＵ１２は、位置情報と偏心補正値を用いて、ＶＣＭ６の駆動電流値を算出する。
【００４２】
次に、ＤＳＰ２１，２２の詳細について説明する。
【００４３】
図４は、本実施の形態に係るＤＳＰ２１，２２の構成の一例を示すブロック図である。ＤＳＰ２１，２２は、同じコアを用いており、Ｉｎｓｔｒｕｃｔｉｏｎ  ＲＡＭ３１、Ｉｎｓｔｒｕｃｔｉｏｎ３２、ＰＣ（Program Counter）３３、Ｘ−ＲＡＭ３４、Ｙ−ＲＡＭ３５、Ｓｉｎ／Ｃｏｓ  ＲＯＭ３６、Ｍｕｌｔｉｐｌｉｅｒ４１、Ａｄｄｅｒ４２、Ａｃｃ（Accumulator）４３、ＳＥＬＱ（Selector Q）４４、ＳＬＹ（Selector Y）４５を備える。
【００４４】
Ｉｎｓｔｒｕｃｔｉｏｎ  ＲＡＭ３１は、２４ｂｉｔを１Ｗとする４ｋＷのＲＡＭである。Ｘ−ＲＡＭ３４，Ｙ−ＲＡＭ３５は、それぞれ１６ｂｉｔを１Ｗとする１ｋＷのＲＡＭである。Ｓｉｎ／Ｃｏｓ  ＲＯＭ３６は、１６ｂｉｔを１Ｗとする２５６ＷのＲＯＭである。ＰＣ３３のビット幅は、１２ｂｉｔである。Ａｄｄｅｒ４５、Ａｃｃ４６のビット幅は、それぞれ３６ｂｉｔである。ＳＥＬＱ４４は、指示に従ってＲｏｕｎｄ（Ｒｎｄ）処理またはＣｌｉｐ処理を行う。ＳＬＹ４５は、指示に従ってＸ−ＲＡＭ３４，Ｙ−ＲＡＭ３５のいずれかを選択してデータを格納する。
【００４５】
ＤＳＰ２１において、上述したｓｉｎ／ｃｏｓテーブルＡは、Ｓｉｎ／Ｃｏｓ  ＲＯＭ３６に対応する。ＤＳＰ２２において、上述したｓｉｎ／ｃｏｓテーブルＢは、Ｘ−ＲＡＭ３４，Ｙ−ＲＡＭ３５に格納される。なお、ＤＳＰ２１におけるｓｉｎ／ｃｏｓテーブルＡは、ＲＡＭに格納されても良いし、ＤＳＰ２２におけるｓｉｎ／ｃｏｓテーブルＢは、ＲＯＭに格納されても良い。
【００４６】
次に、ＤＳＰ２１によるデジタルフィルタ演算の実装例について説明する。
【００４７】
図５は、本実施の形態に係るデジタルフィルタ演算の実装の一例を示すソースコードである。まず、処理Ｓ３１１は、Ｘ−ＲＡＭ３４のＣｏｅｆｆＸ０とＹ−ＲＡＭ３５のＤａｔａＸ０とをＭｕｌｔｉｐｌｉｅｒ４１で乗算し、Ａｃｃ４６に格納し、ＤａｔａＸ０をＬＹに格納する。次に、処理Ｓ３１２は、Ｘ−ＲＡＭ３４のＣｏｅｆｆＸ１とＹ−ＲＡＭ３５のＤａｔａＸ１とをＭｕｌｔｉｐｌｉｅｒ４１で乗算し、Ａｃｃ４６に格納し、ＤａｔａＸ１をＬＹに格納しつつ、ＬＹをＤａｔａＸ１に格納する。次に、処理Ｓ３１３は、Ｘ−ＲＡＭ３４のＣｏｅｆｆＸ２とＹ−ＲＡＭ３５のＤａｔａＸ２とをＭｕｌｔｉｐｌｉｅｒ４１で乗算し、Ａｃｃ４６に格納し、ＬＹをＤａｔａＸ２に格納する。次に、処理Ｓ３１４は、Ｘ−ＲＡＭ３４のＣｏｅｆｆＹ１とＹ−ＲＡＭ３５のＤａｔａＹ１とをＭｕｌｔｉｐｌｉｅｒ４１で乗算し、Ａｃｃ４６に格納し、ＤａｔａＹ１をＬＹに格納する。次に、処理Ｓ３１５は、Ｘ−ＲＡＭ３４のＣｏｅｆｆＹ２とＹ−ＲＡＭ３５のＤａｔａＹ２とをＭｕｌｔｉｐｌｉｅｒ４１で乗算し、Ａｃｃ４６に格納し、ＬＹをＤａｔａＹ２に格納する。次に、処理Ｓ３１６は、Ａｃｃ４６の内容をＳＥＬＱ４４でＱ１４フォーマットに変換してＣｌｉｐを行い、ＳＬＹ４５からＹ−ＲＡＭ３５のＤａｔａＹ１に格納する。
【００４８】
次に、ＤＳＰ２２による偏心補正演算の実装例について説明する。
【００４９】
偏心補正演算において、ＤＳＰ２２は、位置情報の周波数分析を行うＤＦＴ演算とその結果に基づいて偏心補正値を求める補正値演算とを行う。位置情報をＰＥＳとすると、ＤＦＴ演算は、次の式で表される。
【００５０】
Ｘｎ＝ＰＥＳ×ｃｏｓ（ｎω）
Ｙｎ＝ＰＥＳ×ｓｉｎ（ｎω）
Ｗｈｅｒｅ  ｎ＝１，２，３，…８
【００５１】
図６は、本実施の形態に係るＤＦＴ演算の実装の一例を示すソースコードである。まず、処理Ｓ１１１は、Ｘ−ＲＡＭ３４のＣＯＮＳＴ１とＹ−ＲＡＭ３５のＳｕｍＸｎとをＭｕｌｔｉｐｌｉｅｒ４１で乗算し、Ａｃｃ４６に格納する。次に、処理Ｓ１１２は、Ｙ−ＲＡＭ３５のＰＥＳとＸ−ＲＡＭ３４のＳＩＮ＿ＮＷとをＭｕｌｔｉｐｌｉｅｒ４１で乗算し、Ａｃｃ４６の内容に加算し、Ａｃｃ４６に格納する。処理Ｓ１１３は、Ａｃｃ４６の内容をＳＬＹ４５からＹ−ＲＡＭ３５のＳｕｍＸｎに格納する。
【００５２】
同様に、処理Ｓ１２１は、Ｘ−ＲＡＭ３４のＣＯＮＳＴ１とＹ−ＲＡＭ３５のＳｕｍＹｎとをＭｕｌｔｉｐｌｉｅｒ４１で乗算し、Ａｃｃ４６に格納する。次に、処理Ｓ１２２は、Ｙ−ＲＡＭ３５のＰＥＳとＸ−ＲＡＭ３４のＣＯＳ＿ＮＷとをＭｕｌｔｉｐｌｉｅｒ４１で乗算し、Ａｃｃ４６の内容に加算し、Ａｃｃ４６に格納する。処理Ｓ１２３は、Ａｃｃ４６の内容をＳＬＹ４５からＹ−ＲＡＭ３５のＳｕｍＹｎに格納する。
【００５３】
また、補正値演算は、次の式で表される。
【００５４】
Σ（Ｘｎ×ｃｏｓ（ｎω）＋Ｙｎ×ｓｉｎ（ｎω））
【００５５】
図７は、本実施の形態に係る補正値演算の実装の一例を示すソースコードである。まず、処理Ｓ２１１は、Ｘ−ＲＡＭ３４のＣＯＳ＿ＮＷとＹ−ＲＡＭ３５のＳｕｍＸｎとをＭｕｌｔｉｐｌｉｅｒ４１で乗算し、Ａｃｃ４６に格納する。次に、処理Ｓ２１２は、Ｘ−ＲＡＭ３４のＳＩＮ＿ＮＷとＹ−ＲＡＭ３５のＳｕｍＹｎとをＭｕｌｔｉｐｌｉｅｒ４１で乗算し、Ａｃｃ４６の内容に加算し、Ａｃｃ４６に格納する。
【００５６】
本実施の形態によれば、複数のプロセッサ（Ｈｏｓｔ  ＭＰＵ１１、Ｓｅｒｖｏ  ＭＰＵ１２、ＤＳＰ２１，２２）を有し、プロセッサ毎に機能を分散することにより、個々のプロセッサの性能を抑えることが可能となる。個々のプロセッサは、それぞれ必要な大きさのメモリを持てば良い。また、個々のプロセッサは、９０ｎｍプロセス世代で動作速度を２００ＭＨｚから３００ＭＨｚ程度で良い。従って、個々のプロセッサの消費電力、ダイサイズ、コストを抑えることができ、ハードディスク装置全体としてのコストを抑えることができる。
【００５７】
なお、第１制御部は、実施の形態におけるＳｅｒｖｏ  ＭＰＵ１２に対応する。また、第１デジタルシグナルプロセッサは、実施の形態におけるＤＳＰ２１に対応する。また、第２デジタルシグナルプロセッサは、実施の形態におけるＤＳＰ２２に対応する。また、第２制御部は、実施の形態におけるＨｏｓｔ  ＭＰＵ１１に対応する。
【００５８】
ここで、記憶装置には、例えば、磁気ディスク装置、光ディスク装置、光磁気ディスク装置等が含まれ得る。
【００５９】
（付記１）  第１デジタルシグナルプロセッサと、
第２デジタルシグナルプロセッサと、
記憶媒体に対するヘッドの位置の制御を行う第１制御部とを備え、
前記第１制御部は、前記第１デジタルシグナルプロセッサ及び前記第２デジタルシグナルプロセッサへの指示を行い、
前記第１デジタルシグナルプロセッサは、前記第１制御部からの指示に基づいて、サーボ情報の復調に関する演算である復調演算とデジタルフィルタ演算との少なくともいずれかの演算を行い、
前記第２デジタルシグナルプロセッサは、前記第１制御部からの指示に基づいて、前記位置の補正に関する演算である補正演算を行い、
前記第１制御部は、前記第１デジタルシグナルプロセッサ及び前記第２デジタルシグナルプロセッサによる演算結果に基づいて、前記位置の制御を行うことを特徴とする記憶装置。
（付記２）  付記１に記載の記憶装置において、
前記復調演算は、前記ヘッドにより前記記憶媒体から読み取られた前記サーボ情報を復調することにより、前記ヘッドの位置情報を算出することを特徴とする記憶装置。
（付記３）  付記１または付記２に記載の記憶装置において、
前記第２デジタルシグナルプロセッサは、前記第１デジタルシグナルプロセッサにより算出された位置情報に基づいて前記補正演算を行うことを特徴とする記憶装置。
（付記４）  付記１乃至付記３のいずれかに記載の記憶装置において、
前記補正演算は、前記記憶媒体におけるトラックが前記記憶媒体の回転中心を中心とする円になるように前記ヘッドの位置を補正するための仮想円補正係数を算出する仮想円補正係数演算を含むことを特徴とする記憶装置。
（付記５）  付記４に記載の記憶装置において、
前記補正演算は、前記仮想円補正係数に基づいて前記位置情報を補正する仮想円補正演算を含むことを特徴とする記憶装置。
（付記６）  付記１乃至付記５のいずれかに記載の記憶装置において、
前記補正演算は、前記ヘッドの位置が前記記憶媒体におけるトラック上になるように、前記ヘッドの位置を補正するための偏心補正値を算出する偏心補正演算を含むことを特徴とする記憶装置。
（付記７）  付記６に記載の記憶装置において、
前記第１制御部は、前記位置情報と前記偏心補正値に基づいて、ヘッド位置の制御を行うことを特徴とする記憶装置。
（付記８）  付記１乃至付記７のいずれかに記載の記憶装置において、
前記第２デジタルシグナルプロセッサは、サーボフレーム数個の角度に対するｓｉｎ関数及びｃｏｓ関数の値を格納したテーブルを有し、該テーブルを用いたフーリエ変換により前記補正演算を行うことを特徴とする記憶装置。
（付記９）  付記１乃至付記８のいずれかに記載の記憶装置において、
前記第１デジタルシグナルプロセッサは、２のｎ乗（ｎは整数）個の角度に対するｓｉｎ関数及びｃｏｓ関数の値を格納したテーブルを有し、該テーブルに基づいて前記復調演算を行うことを特徴とする記憶装置。
（付記１０）  付記１乃至付記９のいずれかに記載の記憶装置において、
前記サーボ情報は、前記位相変調されていることを特徴とする記憶装置。
（付記１１）  付記１乃至付記１０のいずれかに記載の記憶装置において、
第１制御部は、ＭＰＵであることを特徴とする記憶装置。
（付記１２）  付記１乃至付記１１のいずれかに記載の記憶装置において、
第１制御部は、デジタルシグナルプロセッサであることを特徴とする記憶装置。
（付記１３）  付記１乃至付記１２のいずれかに記載の記憶装置において、
更に、ホストインターフェースの制御を行い、ホストインターフェースが受け取ったホストからの命令に基づいて、前記第１制御部への指示を行う第２制御部を備えることを特徴とする記憶装置。
（付記１４）  付記１３に記載の記憶装置において、
第２制御部は、ＭＰＵであることを特徴とする記憶装置。
（付記１５）  第１デジタルシグナルプロセッサと、
第２デジタルシグナルプロセッサと、
記憶媒体に対するヘッドの位置の制御を行う第１制御部とを備え、
前記第１制御部は、前記第１デジタルシグナルプロセッサ及び前記第２デジタルシグナルプロセッサへの指示を行い、
前記第１デジタルシグナルプロセッサは、前記第１制御部からの指示に基づいて、サーボ情報の復調に関する演算である復調演算とデジタルフィルタ演算との少なくともいずれかの演算を行い、
前記第２デジタルシグナルプロセッサは、前記第１制御部からの指示に基づいて、前記位置の補正に関する演算である補正演算を行い、
前記第１制御部は、前記第１デジタルシグナルプロセッサ及び前記第２デジタルシグナルプロセッサによる演算結果に基づいて、前記位置の制御を行うことを特徴とする制御装置。
（付記１６）  付記１５に記載の制御装置において、
前記復調演算は、前記ヘッドにより前記記憶媒体から読み取られた前記サーボ情報を復調することにより、前記ヘッドの位置情報を算出することを特徴とする制御装置。
（付記１７）  付記１または付記１６に記載の制御装置において、
前記第２デジタルシグナルプロセッサは、前記第１デジタルシグナルプロセッサにより算出された位置情報に基づいて前記補正演算を行うことを特徴とする制御装置。
（付記１８）  付記１５乃至付記１７のいずれかに記載の制御装置において、
前記補正演算は、前記記憶媒体におけるトラックが前記記憶媒体の回転中心を中心とする円になるように前記ヘッドの位置を補正するための仮想円補正係数を算出する仮想円補正係数演算を含むことを特徴とする制御装置。
（付記１９）  付記１８に記載の制御装置において、
前記補正演算は、前記仮想円補正係数に基づいて前記位置情報を補正する仮想円補正演算を含むことを特徴とする制御装置。
（付記２０）  付記１５乃至付記１９のいずれかに記載の制御装置において、
前記補正演算は、前記ヘッドの位置が前記記憶媒体におけるトラック上になるように、前記ヘッドの位置を補正するための偏心補正値を算出する偏心補正演算を含むことを特徴とする制御装置。
【図面の簡単な説明】
【００６０】
【図１】本実施の形態に係るハードディスク装置の構成の一例を示すブロック図である。
【図２】本実施の形態に係るＲ／Ｗ時の並列処理の一例を示すタイムチャートである。
【図３】偏心補正における周波数分析結果の一例を示すグラフである。
【図４】本実施の形態に係るＤＳＰ２１，２２の構成の一例を示すブロック図である。
【図５】本実施の形態に係るデジタルフィルタ演算の実装の一例を示すソースコードである。
【図６】本実施の形態に係るＤＦＴ演算の実装の一例を示すソースコードである。
【図７】本実施の形態に係る補正値演算の実装の一例を示すソースコードである。
【符号の説明】
【００６１】
１  ＨＤＣ、２  ＲＤＣ、３  Ｓｅｒｖｏ  ｌｏｇｉｃ、４  Ｈｅａｄ  ＩＣ、５  ＳＶＣ、６  ＶＣＭ、７  ＳＰＭ、１１  Ｈｏｓｔ  ＭＰＵ、１２  Ｓｅｒｖｏ  ＭＰＵ、２１，２２  ＤＳＰ、３１  Ｉｎｓｔｒｕｃｔｉｏｎ  ＲＡＭ、３２  Ｉｎｓｔｒｕｃｔｉｏｎ、３３  ＰＣ、３４  Ｘ−ＲＡＭ、３５  Ｙ−ＲＡＭ、３６  Ｓｉｎ／Ｃｏｓ  ＲＯＭ、４１  Ｍｕｌｔｉｐｌｉｅｒ、４２  Ａｄｄｅｒ、４３  Ａｃｃ、４４  ＳＥＬＱ、４５  ＳＬＹ。
【図１】
2008176865.tif 000003
【図２】
2008176865.tif 000004
【図３】
2008176865.tif 000005
【図４】
2008176865.tif 000006
【図５】
2008176865.tif 000007
【図６】
2008176865.tif 000008
【図７】
2008176865.tif 000009