(57)【特許請求の範囲】
【請求項１】
磁気ディスク装置に適用される１チップの磁気ディスク装置用制御回路素子であって、前記磁気ディスク装置は、記録面上に、その中心から各トラックを渡って放射状に、サーボセクタ識別用のサーボセクタ番号、シリンダ識別用のシリンダ番号及び当該シリンダ内でのヘッド位置検出用のバーストデータを含むサーボデータが記録された複数のサーボ領域が一定間隔で配置されている磁気ディスク媒体と、ヘッドにより前記磁気ディスク媒体から読み取られた前記サーボデータ中のシリンダ番号及びバーストデータをもとに当該ヘッドを前記磁気ディスク媒体の目標シリンダ位置にシーク・位置決めするための制御を行うＣＰＵとを備えており、
前記磁気ディスク装置用制御回路素子は、前記シーク・位置決めの後、目標サーボセクタ内の開始データセクタ位置を検出してリードまたはライト動作を開始するように構成されており、
前記磁気ディスク装置用制御回路素子が、
前記ヘッドにより読み取られた前記サーボデータのパルス化データから前記サーボセクタ番号及び前記シリンダ番号を抽出するサーボデコーダと、当該サーボデコーダによって抽出されたサーボセクタ番号を保持するサーボセクタデータレジスタとを含むサーボブロックと、
前記磁気ディスク媒体とホスト装置との間で転送されるデータを一時格納するためのデータ領域と、前記各サーボセクタに配置される各データセクタの位置に対応したタイミングのデータセクタパルスを生成するのに必要なデータセクタパルス生成情報を格納するためのデータセクタパルス生成情報領域とが少なくとも設定されたバッファメモリを含むメモリブロックと、
前記サーボブロック内の前記サーボセクタデータレジスタに保持されている前記サーボセクタ番号の示すサーボセクタ内に配置される各データセクタ位置のタイミングを示すデータセクタパルスを、そのサーボセクタに対応したデータセクタパルス生成情報をもとに出力するデータセクタパルス生成回路と、前記サーボセクタデータレジスタの出力と接続され、当該レジスタに保持されている前記サーボセクタ番号を当該レジスタから入力して目標サーボセクタのセクタ番号と比較し、前記ヘッドが前記磁気ディスク媒体の目標シリンダ位置にシーク・位置決めされている状態で一致を検出した場合に、前記データセクタパルス生成回路から出力される前記データセクタパルスの数をカウントして前記目標サーボセクタにおけるリードまたはライトの開始データセクタ位置を検出することで、ディスクリード動作またはディスクライト動作の開始タイミングを制御するディスク制御回路と、前記サーボセクタデータレジスタの出力と接続され、当該レジスタに保持されている前記サーボセクタ番号を当該レジスタから入力して、当該サーボセクタ番号の示すサーボセクタの次のサーボセクタに対応した前記データセクタパルス生成情報を前記バッファメモリの前記データセクタパルス生成情報領域から読み込んで前記データセクタパルス生成回路に設定するデータセクタパルス生成情報ローダを内蔵し、前記バッファメモリをアクセス制御するバッファ制御回路と、前記ＣＰＵとの間のインタフェースをなすＣＰＵインタフェースとを含むコントローラブロックとを具備することを特徴とする磁気ディスク装置用制御回路素子。
【請求項２】
前記ディスク制御回路は、前記サーボセクタデータレジスタの出力と接続され、当該レジスタに保持されている前記サーボセクタ番号を目標サーボセクタのセクタ番号と比較する第１の比較回路と、前記ヘッドが前記磁気ディスク媒体の目標シリンダ位置にシーク・位置決めされている状態で前記第１の比較回路で一致が検出された場合には、前記データセクタパルス生成回路から出力される前記データセクタパルスの数をカウントするデータセクタパルスカウンタと、前記データセレクタパルスカウンタのカウント値と、前記目標サーボセクタにおけるリードまたはライトの開始データセクタ位置に対応するタイミング値とを比較する第２の比較回路と、前記第２の比較回路での一致検出に応じてディスクリード動作またはディスクライト動作の開始タイミングを制御するシーケンサとを含むことを特徴とする請求項１記載の磁気ディスク装置用制御回路素子。
【請求項３】
前記ディスク制御回路は、シリンダスキュー操作前の目標サーボセクタのセクタ番号にサーボセクタ単位で設定されるシリンダスキュー値を加算して、前記目標サーボセクタのセクタ番号である、シリンダスキューを考慮した目標サーボセクタのセクタ番号を生成するスキュー処理回路を内蔵し、前記サーボセクタデータレジスタから入力した前記サーボセクタ番号を前記スキュー処理回路により生成された前記目標サーボセクタのセクタ番号と比較することを特徴とする請求項１記載の磁気ディスク装置用制御回路素子。
【請求項４】
前記ディスク制御回路は、前記スキュー処理回路により生成された前記目標サーボセクタのセクタ番号を保持する目標サーボセクタ番号レジスタと、前記サーボセクタデータレジスタ及び目標サーボセクタ番号レジスタの各出力と接続され、前記サーボセクタデータレジスタに保持されている前記サーボセクタ番号を前記目標サーボセクタ番号レジスタに保持されている前記目標サーボセクタのセクタ番号と比較する第１の比較回路と、前記ヘッドが前記磁気ディスク媒体の目標シリンダ位置にシーク・位置決めされている状態で前記第１の比較回路で一致が検出された場合には、前記データセクタパルス生成回路から出力される前記データセクタパルスの数をカウントするデータセクタパルスカウンタと、前記データセレクタパルスカウンタのカウント値と、前記目標サーボセクタにおけるリードまたはライトの開始データセクタ位置に対応するタイミング値とを比較する第２の比較回路と、前記第２の比較回路での一致検出に応じてディスクリード動作またはディスクライト動作の開始タイミングを制御するシーケンサとを含むことを特徴とする請求項３記載の磁気ディスク装置用制御回路素子。
【請求項５】
記録面上に、その中心から各トラックを渡って放射状に、サーボセクタ識別用のサーボセクタ番号、シリンダ識別用のシリンダ番号及び当該シリンダ内でのヘッド位置検出用のバーストデータを含むサーボデータが記録された複数のサーボ領域が一定間隔で配置されている磁気ディスク媒体と、
ヘッドにより前記磁気ディスク媒体から読み取られた前記サーボデータ中のシリンダ番号及びバーストデータをもとに当該ヘッドを前記磁気ディスク媒体の目標シリンダ位置にシーク・位置決めするための制御を行うＣＰＵと、
前記ＣＰＵと前記ＣＰＵインタフェースを介して接続される請求項１乃至請求項４のいずれかに記載の前記磁気ディスク装置用制御回路素子とを具備することを特徴とする磁気ディスク装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、磁気ディスク媒体に記録されたサーボデータに基づいてヘッドを当該ディスク媒体の目標位置にシーク・位置決めする磁気ディスク装置に係り、特にサーボブロック、コントローラブロック及びメモリブロックが同一チップ上に集積化された磁気ディスク装置用制御回路素子及同制御回路素子を備えた磁気ディスク装置に関する。
【０００２】
【従来の技術】
従来、磁気ディスク装置（ハードディスク装置）は図９に示すように構成されているのが一般的であった。図９の構成において、ホスト装置（例えばパーソナルコンピュータ本体）と磁気ディスク媒体２１０との間のデータの流れは、ホスト装置からのデータを書き込む場合を例にとると次のようになる。
【０００３】
まずホスト装置からインタフェース信号線２２０を通して送られたデータ（ライトデータ）は、ハードディスクコントローラ（ＨＤＣ）２３０内のホストインタフェース２３１で受信された後、バッファ制御回路（バッファマネージャ回路）２３２の制御により、例えばＲＡＭにより構成された外部のバッファメモリ２４０にメモリバス２４１を介して一旦蓄えられる。
【０００４】
この状態で磁気ディスク媒体２１０への書き込みの準備が整うと、バッファメモリ２４０に蓄えられているデータがバッファ制御回路２３２の制御のもとでディスク制御回路２３３に送られ、同期用のデータ（ＰＬＯ領域）、シンクバイト領域（ＳＹＮＣ領域）のデータ、及びエラー検出訂正用のデータが付加された後、リードライト回路（リードライトＩＣ）２５０に送られる。
【０００５】
リードライト回路２５０では、まずＨＤＣ２３０（内のディスク制御回路２３３）から送られたデータに対して、所定の生成多項式により演算が加えられる。次に、このデータはエンコード回路で変調され、（一般にヘッドＩＣと呼ばれる）プリアンプ回路２６０に送られる。プリアンプ回路２６０では、このデータを書き込み電流に変換してヘッド２７０に流し、磁気ディスク媒体２１０への書き込みを行う。このヘッド２７０を目標位置にシーク・位置決めする処理については後述する。
【０００６】
次に、図９の磁気ディスク装置において、磁気ディスク媒体２１０からデータを読み出してホスト装置に転送する信号再生時のデータの流れは次のようになる。
【０００７】
まず、磁気ディスク媒体２１０の目標シリンダ上にシーク・位置決めされたヘッド２７０により当該媒体２１０から読み取られた信号（リードデータ）は、プリアンプ回路２６０で増幅されてリードライト回路２５０に送られる。この増幅された信号はリードライト回路２５０内でＡＧＣ（自動利得制御）アンプでー定の電圧に増幅される。ＡＧＣアンプで増幅された信号は、リードライト回路２５０内でイコライザによりチャネルの特性に合わせた形で等価され、Ａ／Ｄ（アナログ／ディジタル）変換された後、ビタビ復号される。この復号された信号は例えば８／９コードの逆変換が施され、ＮＲＺデータとなる。
【０００８】
リードライト回路２５０は、このＮＲＺデータ（リードデータ）をＨＤＣ２３０内のディスク制御回路２３３に送る。ディスク制御回路２３３では、リードライト回路２５０からのデータのエラーの有無がＥＣＣ（エラー検出訂正）回路にてチェックされ、バッファ制御回路２３２の制御のもとでバッファメモリ２４０に蓄えられる。このバッファメモリ２４０内のリードデータは、ホスト装置への転送の準備ができると、メモリバス２４１、バッファ制御回路２３２及びホストインタフェース２３１を介してホスト装置に転送される。
【０００９】
図１０に磁気ディスク媒体２１０のディスクフォーマットの一例を示す。この図１０の例は、いわゆるセクタサーボ方式（埋め込みサーボ方式）とＣＤＲ（Constant Density Recording）方式を適用した場合であり、磁気ディスク媒体２１０の記録面上には、その中心から各トラックを渡って放射状に、複数のサーボ領域２１１が一定間隔で配置されている（サーボセクタ方式のフォーマット）。このサーボ領域２１１には、ヘッドの位置決め等に用いられるサーボデータが記録されている（埋め込まれている）。
【００１０】
サーボ領域２１１間は、少なくとも１つ（一般には複数）のデータセクタ（物理セクタ、実セクタ）が配置されるユーザ領域（データ領域）２１２となっている。サーボ領域２１１と当該サーボ領域２１１に隣接するユーザ領域２１２とからなる領域は、サーボセクタ２１３と呼ばれる。図では、作図の都合上、サーボセクタ２１３の数（即ちサーボ領域２１１の数）が８となっているが、実際にはもっと多いのが一般的である（例えば５０）。
【００１１】
また、図１０の磁気ディスク媒体２１０では、トラック（シリンダ）の物理的な周の長さが長くなる媒体２１０上の外周側の領域を有効に使用してディスクのフォーマット効率を上げるために、当該媒体２１０の記録面を半径方向に複数のゾーン“０”（Ｚ０）〜“ｍ”（Ｚｍ）に分割し、各ゾーン毎に、シリンダ（トラック）当たりのデータセクタ数が異なる（外周側のゾーンほど多くなる）構成、即ちデータ転送速度（転送レート）が異なる（外周側のゾーンのシリンダほど速くなる）構成をとっている（ＣＤＲ方式）。ここで、１つのゾーン内の各シリンダのデータ転送速度は等しい。
【００１２】
サーボ領域２１１は、図１１（ａ）に示すように、信号の振幅を安定化するために一定の周波数のデータが記録されたＡＧＣ安定化領域（振幅ＡＧＣ領域）２１１ａ、イレーズとサーボ領域識別用のサーボ検出パターン（サーボマークＭＫ）と当該サーボ領域２１１（を持つサーボセクタ２１３）に固有のセクタ番号（サーボセクタ番号）を示すセクタデータとが記録されたセクタデータ領域２１１ｂ、シリンダ番号を示すシリンダデータ（シリンダコード）が記録されたシリンダデータ領域２１１ｃ、及び当該シリンダデータの示すシリンダ内でのヘッド位置を検出するためのバーストデータが記録されたバースト領域２１１ｄを有する。バースト領域２１１ｄに記録されるバーストデータは、例えば４つのバースト信号Ａ，Ｂ，Ｃ，Ｄから構成されており、バースト信号ＡとＢの組み合わせと、バースト信号ＣとＤの組み合わせの一方を選択的に使用して図９中のヘッド２７０の位置決め制御が行われる。
【００１３】
ユーザ領域２１２に配置されるデータセクタは、図１１（ｂ）に示すように、回転変動、回路の遅延等を吸収するための領域（ＧＡＰ領域）２１２ａ、周波数の引き込み領域（ＰＬＯ領域）２１２ｂ、データ領域の始まりを示す領域（ＳＹＮＣ領域）２１２ｃ、データ（例えば５１２バイトのデータ）が記録される領域（ＤＡＴＡ領域）２１２ｄ、及びＤＡＴＡ領域２１２ｄのデータに一定の生成多項式の演算を行うことで得られるエラー検出訂正用の情報（ＥＣＣ情報）が記録される領域（ＥＣＣ領域）２１２ｅからなる。
【００１４】
図１０の例のような、セクタサーボ方式＋ＣＤＲ方式のフォーマットの磁気ディスク媒体２１０においては、データセクタはトラック上に設定されたサーボ領域２１１とは無関係に配置されていくため、データセクタによってはサーボ領域２１１によって分割される状態が発生する。この状態はデータ（データセクタ）がスプリットした状態（データスプリット状態）と呼ばれ、セクタサーボ方式＋ＣＤＲ方式に特有な現象である。
【００１５】
ここで、図９の磁気ディスク装置におけるサーボデータに基づくシーク・位置決め制御について述べる。
【００１６】
まず、ヘッド２７０でサーボ領域２１１のデータ（サーボデータ）が読み取られたものとする。ヘッド２７０で読み取られたサーボデータ（リードデータ）はプリアンプ回路２６０で増幅され、更にリードライト回路２５０でＡＧＣアンプによりー定の電圧に増幅された後、パルス化回路２５１でパルス化される。
【００１７】
サーボ制御回路２８０内のサーボマーク検出回路２８１は、リードライト回路２５０内のパルス化回路２５１の出力（パルス化リードデータ）から、サーボ領域２１１中に記録されているサーボマークＭＫを検出し、サーボマーク検出信号ＳＶＧＴＤを出力する。
【００１８】
サーボ制御回路２８０内のサーボデコーダ２８２は、上記サーボマーク検出信号ＳＶＧＴＤを基準に、サーボマークＭＫに続くセクタデータ（サーボセクタデータ）及びシリンダデータを取り込むためのタイミング信号であるサンプルウィンドウを生成し、上記パルス化リードデータの中から、このサンプルウィンドウ内のデータをシフトレジスタ（図示せず）に取り込む。このシフトレジスタに取り込まれたサーボセクタデータはそのままサーボセクタデータレジスタにセットされ、シリンダデータはグレイコードに変換されてシリンダデータレジスタ（いずれも図示せず）にセットされる。このサーボ制御回路２８０内の両レジスタの内容は、（ＲＯＭ２９２に格納されている制御プログラムに従って、スピンドルモータの起動制御、サーボのシーク制御、位置決め制御、及びデータのフロー制御等を司る）ＣＰＵ２９０によりＣＰＵバス２９１を介して読み込まれる。
【００１９】
一方、サーボ制御回路２８０内のサーボカウンタ（メインカウンタ）２８３は、上記サーボマーク検出信号ＳＶＧＴＤによりクリアされ、基準クロック（サーボクロック）でカウントを行う。バーストデコーダ２８４は、サーボカウンタ２８３のカウント値をデコードすることで、サーボ領域２１１内のバースト領域２１１ｄに記録されている各バースト信号Ａ〜Ｄのピークホールドのタイミング信号（バーストタイミング信号）を生成し、リードライト回路２５０に出力する。
【００２０】
リードライト回路２５０は、ー定の電圧に増幅されたリードデータに含まれているバースト信号Ａ〜Ｄの振幅を、バーストデコーダ２８４からのバーストタイミング信号でピークホールドすることで、当該バースト信号Ａ〜Ｄを抽出する。このバースト信号Ａ〜ＤはＣＰＵ２９０のＡ／Ｄコンバータによりディジタル量に変換され、バーストデータＢＳＴＡ〜ＢＳＴＤとして当該ＣＰＵ２９０に取り込まれる。
【００２１】
ＣＰＵ２９０は、サーボ制御回路２８０内のシリンダデータレジスタから読み込んだシリンダデータの示すシリンダ位置（現在のヘッド位置）と目標シリンダとの距離をもとに、（ヘッド２７０を磁気ディスク媒体２１０の半径方向に目標シリンダまで移動するのに必要な駆動力を与える）ボイスコイルモータ（ＶＣＭ）に流す電流（ＶＣＭ電流）を決める。そしてＣＰＵ２９０は、そのＶＣＭ電流に比例した電圧をボイスコイルモータ駆動用のドライバ（ＶＣＭドライバ）に与える。この制御を繰り返して、ＣＰＵ２９０はヘッド２７０を目標シリンダに位置決めする。
【００２２】
以上の動作（シーク動作）が完了すると、ＣＰＵ２９０は位置決め動作に入る。即ちＣＰＵ２９０は、バーストデータＢＳＴΑ〜ＢＳＴＤを取り込んで、バーストデータＢＳＴΑ，ＢＳＴΒの組、またはバーストデータＢＳＴＣ，ＢＳＴＤの組をもとに、ヘッド２７０の目標シリンダ（トラック）の中心からの位置誤差を計算し、その位置誤差がゼロになるようにボイスコイルモータを駆動制御するフィードバック制御を実行する。
【００２３】
このようにして、ヘッド２７０が目標シリンダにシーク・位置決めされると、ＨＤＣ２３０によるリードまたはライト動作、即ち目標シリンダ上のリードまたはライトの開始対象となるデータセクタ（開始データセクタ）から始まる、指定数のデータセクタを対象とするリードまたはライト動作が可能となる。
【００２４】
ここで、開始データセクタの検出動作を、ライト時を例に述べる。
【００２５】
今、開始データセクタのセクタ番号がＬであるものとする。この場合、ＨＤＣ２３０内のディスク制御回路２３３には、データセクタ番号がＬの開始データセクタ（データセクタ“Ｌ”）が、どのサーボセクタ２１３（これを目標サーボセクタと呼ぶ）の何番目のデータセクタであるかの情報（開始データセクタ位置）がセットされている。この情報は、ＣＰＵ２９０の計算により求められるもので、当該ＣＰＵ２９０によりＣＰＵバス２９１を介してセットされる。ここで、目標サーボセクタのセクタ番号がＮであるものとする。
【００２６】
ディスク制御回路２６３は、開始データセクタ“Ｌ”が存在するサーボセクタ２１３（サーボセクタ“Ｎ”）を探す。この処理は、サーボ制御回路２８０内のサーボデコーダ２８２で検出されてサーボセクタデータレジスタにセットされたセクタデータ、即ちサーボセクタ番号を、ＣＰＵインタフェース２３４を介してＣＰＵ２９０から受け取って、先にセットされている目標サーボセクタ“Ｎ”のサーボセクタ番号Ｎと比較回路にて比較することで行われる。
【００２７】
例えば、開始データセクタ“Ｌ”が、サーボセクタ“Ｎ”内の２番目のデータセクタであるものとすると、ディスク制御回路２３３はまず、サーボセクタ“Ｎ”を探し、しかる後にデータセクタパルス生成回路（ＤＳＰ生成回路）２３５によりデータセクタの始端のタイミングで出力されるデータセクタパルス（ＤＳＰ）の数のカウントを開始し、２つ目のＤＳＰをカウントした時点で、ライトゲート（リードの場合であればリードゲート）を開く。この状態でディスク制御回路２３３は、バッファ制御回路２３２を介してバッファメモリ２４０からデータを読み出し、ＥＣＣ回路によりエラー検出訂正コードを付加してリードライト回路２５０に転送する。
【００２８】
ここで、目標サーボセクタ及び開始データセクタの決定について図１２を参照して説明する。
【００２９】
まず、磁気ディスク媒体２１０の各トラック（シリンダ）上の各データセクタの番号は、管理の容易さのために、サーボセクタ番号が０のサーボセクタ２１３（サーボセクタ“０”）内の１番目のデータセクタから順番に，１，２，３…のように割り当てられるのが一般的である。この場合、シーケンシャルアクセスで、あるシリンダ“Ｍ”の最終データセクタをアクセスした後、次のシリンダ“Ｍ＋１”の番号１のデータセクタをアクセスしようとすると、もしその１シリンダ分のシーク動作に最大ｐデータセクタ分の時間を要するならば、シーク完了時には、ヘッド２７０はシリンダ“Ｍ＋１”の当該番号１のデータセクタから最大ｐデータセクタ分ずれた位置に移動するため、回転待ちが発生する。このｐの値は、ゾーン毎に異なる。
【００３０】
そこで従来は、この回転待ちを減らすために、シリンダ“Ｍ”の隣接シリンダ、例えばシリンダ“Ｍ＋１”では、シリンダ“Ｍ”の例えば最終データセクタからｐデータセクタ分ずらした直後にあるシリンダ“Ｍ＋１”のデータセクタを番号１のデータセクタ、即ちシリンダ“Ｍ＋１”の開始データセクタとして扱うようにしていた。このずれをスキュー（シリンダスキュー）と呼ぶ。図１２は、開始データセクタの位置を４データセクタ分（ｐ＝４の場合）ずらした場合（実際には、もっと大きな値となる）、即ち１トラックスキュー分ずらした場合のシリンダスキューの例を示している。
【００３１】
図１２の例では、スキューなしの目標サーボセクタがサーボセクタ“Ｎ”、開始データセクタが当該サーボセクタ“Ｎ”の１番目データセクタであるものとすると、スキューを考慮した実際の目標サーボセクタは、４データセクタ分のスキューによりサーボセクタ“Ｎ＋１”となり、開始データセクタは、当該サーボセクタ“Ｎ＋１”の１番目のデータセクタとなる。
【００３２】
このスキューを考慮した目標サーボセクタ及び開始データセクタの変換処理（即ちスキュー処理）と、その変換（スキュー処理）後の目標サーボセクタ及び開始データセクタ（目標サーボセクタ内の何番目のデータセクタであるかにより示される）の設定はＣＰＵ２９０により行われる。しかも、１サーボセクタ内のデータセクタ数は、同一ゾーンであってもデータスプリットの影響でサーボセクタによって異なり、スキュー処理が複雑となることから、スキュー処理に伴うＣＰＵ２９０の負荷が大きい。
【００３３】
次に、上記ＤＳＰ生成回路２３５へのＣＰＵ２９０からの情報設定動作と、当該ＤＳＰ生成回路２３５によるＤＳＰ生成動作（セクタリング処理）について、図１３を参照して説明する。
【００３４】
まずＣＰＵ２９０は、サーボ制御回路２８０（内のサーボデコーダ２８２）により検出されてサーボセクタデータレジスタにセットされたサーボセクタ番号をＣＰＵバス２９１を介して読み込む。
【００３５】
次にＣＰＵ２９０は、読み込んだサーボセクタ番号により（図９中の）ＲＯＭ２９２内の所定テーブル（ＤＳＰ生成情報テーブル）を参照して、次のサーボセクタ番号のサーボセクタにおける最初のデータセクタの（当該サーボセクタ内のサーボマーク位置を基準とする）位置に対応したＤＳＰ位置（１st  ＤＳＰ位置）、データセクタの間隔に対応するＤＳＰ間隔、及び当該サーボセクタ内のデータセクタ数に対応したＤＳＰ数からなるＤＳＰ生成情報を読み込む。
【００３６】
次にＣＰＵ２９０は、読み込んだＤＳＰ生成情報をＤＳＰ生成回路２３５内にセットする。
【００３７】
ＤＳＰ生成回路２３５はまず、サーボ制御回路２８０内のサーボマーク検出回路２８１からのサーボマーク検出信号ＳＶＧＴＤのタイミングで基準クロック（サーボクロック）によりカウント動作を開始し、ＣＰＵ２９０により当該ＤＳＰ生成回路２３５内に設定されたＤＳＰ生成情報中の１st  ＤＳＰ位置（最初のデータセクタ位置）に対応する数をカウントすると、最初のＤＳＰを出力する。
【００３８】
ＤＳＰ生成回路２３５はＤＳＰを出力する毎に、再度基準クロックによるカウント動作を開始し、上記設定されたＤＳＰ生成情報中のＤＳＰ間隔に対応する数をカウントすると、次のＤＳＰを出力する動作を繰り返す。
【００３９】
ＤＳＰ生成回路２３５は、上記設定されたＤＳＰ生成情報中のＤＳＰ数に一致するＤＳＰ出力を行うと、一連のＤＳＰ出力動作を停止する。
【００４０】
ＣＰＵ２９０は、上記の（１st  ＤＳＰ位置、ＤＳＰ間隔、ＤＳＰ数からなる）ＤＳＰ生成情報の読み込みとＤＳＰ生成回路２３５への設定動作を、サーボ制御回路２８０内のサーボデコーダ２８２でサーボセクタが検出される毎に、即ちサーボセクタ単位で行う。
【００４１】
【発明が解決しようとする課題】
上記したように従来の磁気ディスク装置では、サーボ制御回路（以下、サーボブロックと呼ぶ）と、ＨＤＣ（以下、コントローラブロックと呼ぶ）と、バッファメモリ（以下、メモリブロックと呼ぶ）とが、独立した集積回路素子から構成されており、その間は、バス、その他の入出力信号線で接続されていた。また、サーボブロックとコントローラブロックは、ＣＰＵのバス（ＣＰＵバス）を介して接続されており、ＣＰＵは、両ブロック間のデータ授受等をＣＰＵバスを介して制御していた。
【００４２】
このため、従来の磁気ディスク装置では、以下に列挙する問題があった。
【００４３】
（１）サーボブロックとコントローラブロックのデータの授受にＣＰＵが介在しておりパフォーマンスの低下の原因になっていた。特にスキュー処理では、ＣＰＵは、サーボブロックで検出されたサーボセクタ番号をサーボセクタデータレジスタから読み込み、それにスキュー分のデータセクタ数を加えたサーボセクタ内のデータセクタの位置がリードまたはライト動作の開始位置となるように、スキューを考慮した目標サーボセクタと当該サーボセクタ内の開始データセクタ位置とを算出してコントローラブロックに設定しなければならず、それに要する処理時間がパフォーマンス低下の原因の１つとなっていた。
【００４４】
（２）データセクタパルス（ＤＳＰ）の生成を、サーボセクタ毎にＣＰＵが制御し、サーボブロックで検出されたサーボセクタ番号（サーボセクタデータ）をサーボセクタデータレジスタから読み込んで、当該サーボセクタ番号からデータパルスの生成に必要な情報（ＤＳＰ生成情報）を生成してコントローラブロック内のデータセクタパルス生成回路に設定していたため、シーケンシャルアクセスのようにシーク時間が短い場合には、ＣＰＵの処理が間に合わなくなる恐れがあった。
【００４５】
（３）バッファメモリとＨＤＣとが互いに独立のチップ上に形成され、両者間は外部のメモリバスで接続されているため、バッフアメモリのバンド幅（アクセス速度）が制限されていた。
【００４６】
（４）接続する信号線が多く、素子の数も多いため、実装効率が悪かった。
【００４７】
本発明は上記事情を考慮してなされたものでその目的は、サーボブロック、コントローラブロック及びメモリブロックが同一チップ上に形成され、特にサーボブロック内で抽出されたサーボセクタのセクタ番号がコントローラブロックから直接参照可能な構成とすることで、処理の高速化とパフォーマンスの向上が図れる磁気ディスク装置用制御回路素子及び同制御回路素子を備えた磁気ディスク装置を提供することにある。
【００４８】
本発明の他の目的は、サーボセクタ内に配置されている各データセクタ位置のタイミングを表すデータセクタパルスをデータセクタパルス生成回路にて生成するのに必要な情報が、ＣＰＵを介在することなく簡単に設定できる磁気ディスク装置用制御回路素子及び同制御回路素子を備えた磁気ディスク装置を提供することにある。
【００４９】
本発明の更に他の目的は、シーケンシャルアクセスにおけるシリンダ間のスキュー処理が、ＣＰＵでの特別の計算を必要とすることなく簡単に且つ高速に行える磁気ディスク装置用制御回路素子及び同制御回路素子を備えた磁気ディスク装置を提供することにある。
【００５０】
【課題を解決するための手段】
本発明の第１の観点に係る磁気ディスク装置用制御回路素子は、サーボブロック、メモリブロック、及びコントローラブロックを同一チップ上に集積化して構成され、上記サーボブロックには、ヘッドにより磁気ディスク媒体から読み取られたサーボデータのパルス化データからサーボセクタ番号及びシリンダ番号を抽出するサーボデコーダを持たせ、上記メモリブロックには、上記磁気ディスク媒体とホスト装置との間で転送されるデータを一時格納するためのデータ領域と、各サーボセクタに配置される各データセクタの位置に対応したタイミングのデータセクタパルス（ＤＳＰ）を生成するのに必要なデータセクタパルス生成情報（ＤＳＰ生成情報）を格納するためのデータセクタパルス生成情報領域（ＤＳＰ生成情報領域）とが設定されたバッファメモリを持たせ、そして上記コントローラブロックには、上記サーボデコーダにより抽出されたサーボセクタ番号の示すサーボセクタ内に配置される各データセクタ位置のタイミングを示すＤＳＰを、そのサーボセクタに対応したＤＳＰ生成情報をもとに出力するＤＳＰ生成回路（データセクタパルス生成回路）と、上記サーボデコーダにより抽出されたサーボセクタ番号を上記サーボブロックから入力して目標サーボセクタのセクタ番号と比較し、上記ヘッドが磁気ディスク媒体の目標シリンダ位置にシーク・位置決めされている状態で一致を検出した場合に、上記ＤＳＰ生成回路から出力されるＤＳＰの数をカウントして目標サーボセクタにおけるリードまたはライトの開始データセクタ位置を検出することで、ディスクリード動作またはディスクライト動作の開始タイミングを制御するディスク制御回路と、上記バッファメモリをアクセス制御するバッファ制御回路であって、上記サーボデコーダにより抽出されたサーボセクタ番号を上記サーボブロックから入力し、当該サーボセクタ番号の示すサーボセクタの次のサーボセクタに対応したＤＳＰ生成情報を上記バッファメモリのＤＳＰ生成情報領域から読み込んで上記ＤＳＰ生成回路に設定するＤＳＰ生成情報ローダ（データセクタパルス生成情報ローダ）を内蔵するバッファ制御回路とを持たせたことを特徴とする。
【００５１】
ここで、磁気ディスク媒体のディスクフォーマットに、セクタサーボ方式（埋め込みサーボ方式）のみを適用し、ＣＤＲ方式は適用していない場合には、ＤＳＰ生成情報は、対象となるサーボセクタのセクタ番号のみによって決まる。この場合、各サーボセクタ番号に対応したバッファメモリのＤＳＰ生成情報領域内のアドレスに、該当するサーボセクタ用のＤＳＰ生成情報を格納するならば、ＤＳＰ生成情報ローダは、サーボブロック内のサーボデコーダによって抽出されたサーボセクタ番号から、当該セクタ番号の示すサーボセクタ用のＤＳＰ生成情報の格納先アドレスを生成するアドレス変換を行うことで、そのＤＳＰ生成情報を読み込むことができる。また、セクタサーボ方式とＣＤＲ方式とを併用している場合には、ＤＳＰ生成情報は、対象となるサーボセクタのセクタ番号と当該サーボセクタが属するゾーンのゾーン番号との組み合わせによって決まることから、そのセクタ番号（サーボセクタ番号）とゾーン番号との組み合わせに対応したバッファメモリのＤＳＰ生成情報領域内のアドレスに、該当するサーボセクタ用のＤＳＰ生成情報を格納するならば、ＤＳＰ生成情報ローダは、サーボブロック内のサーボデコーダによって抽出されたサーボセクタ番号とゾーン番号との組み合わせから、該当するサーボセクタ用のＤＳＰ生成情報の格納先アドレスを生成するアドレス変換を行うことで、そのＤＳＰ生成情報を読み込むことができる。
【００５２】
このような構成の磁気ディスク装置用制御回路素子では、サーボブロック内のサーボデコーダにより抽出されたサーボセクタ番号を、コントローラブロック（具体的には、コントローラブロック内のディスク制御回路、バッファ制御回路に内蔵のＤＳＰ生成情報ローダ）が、磁気ディスク装置における（モータ起動制御、サーボのシーク・位置決め制御、データのフロー制御等を司る）ＣＰＵの介在なしに当該サーボブロックから直接入力することが可能となるため、処理の高速化を図ると共にＣＰＵの負荷を減らすことが可能となる。
【００５３】
また、ＤＳＰ生成回路に対するサーボセクタ単位のＤＳＰ情報の設定が、ＤＳＰ生成情報ローダによりＣＰＵの介在なしで行えるため、この点からも処理の高速化を図ると共にＣＰＵの負荷を減らすことが可能となる。
【００５４】
また、メモリブロック内のバッファメモリと当該バッファメモリをアクセス制御するコントローラブロック内のバッファ制御回路とが同一チップ上に設けられており、従来のような外部のメモリバスを介してのアクセス制御とはならないことから、バッファメモリのアクセスが高速に行える。
【００５５】
また、上記磁気ディスク装置用制御回路素子を使用した場合、磁気ディスク装置におけるプリント基板上での接続信号線数も少なくて済み、実装する素子も削減される。
【００５６】
本発明の第２の観点に係る磁気ディスク装置用制御回路素子は、シリンダ間のスキューを、従来のディスクセクタ単位ではなくてシリンダ単位で設定する構成を適用し、上記第１の観点に係る磁気ディスク装置用制御回路素子におけるディスク制御回路に、シリンダスキュー操作前の目標サーボセクタのセクタ番号（スキューなし目標サーボセクタ番号）とサーボセクタ単位で設定されるシリンダスキュー値とを加算してシリンダスキューを考慮した目標サーボセクタのセクタ番号を生成するスキュー処理回路を設けたことを特徴とする。
【００５７】
このような構成では、シーケンシャルアクセスの場合には、（１）スキューなし目標サーボセクタ番号は、隣接シリンダへのシーク直前のサーボセクタの次のサーボセクタのセクタ番号であり、（２）加算するスキュー値は１シリンダシークのずれ量であって固定値であり、（３）（キューを考慮した）目標サーボセクタ内の開始データセクタ位置は、そのサーボセクタ内の最初のデータセクタ位置となって固定であることから、これらの情報を設定するのにＣＰＵは計算処理は何も必要なく、またスキューの加算処理もＣＰＵは行う必要がないため、この点でも、処理の高速化が可能となる。
【００５８】
【発明の実施の形態】
以下、本発明の実施の形態につき図面を参照して説明する。
【００５９】
図１は本発明の一実施形態に係る磁気ディスク装置の全体構成を示すブロック図であり、図９と同一部分には同一符号を付してある。
【００６０】
図１の磁気ディスク装置の特徴は、図９中のサーボ制御回路２８０（サーボブロック）、バッファメモリ２４０（メモリブロック）、及びＨＤＣ２３０（コントローラブロック）代えて、サーボブロック、メモリブロック、及びコントローラブロックの機能が１チップに集積化された制御回路（磁気ディスク装置用制御回路素子）１０を備えていることである。
【００６１】
なお、本実施形態では、図９の磁気ディスク装置と同一ＣＰＵが用いられているが、当該ＣＰＵの処理が軽減されていることから、図９とは異なる符号（３０）を付してある。このＣＰＵの処理の違いは、制御プログラムの違いによるものであるが、当該制御プログラムを格納したＲＯＭには、説明の都合上、図９と同一符号（２９２）を付してある。
【００６２】
制御回路１０は、サーボブロック１１、メモリブロック１２、及びコントローラブロック１３の３ブロックに大別される。
【００６３】
サーボブロック１１は、図２に示すように、サーボマーク検出回路１１１、サーボデコーダ１１２、サーボカウンタ１１３、バーストデコーダ１１４、サーボセクタデータレジスタ１１５、シリンダデータレジスタ１１６、及びフォルト検出回路１１７を含む。
【００６４】
サーボマーク検出回路１１１は、図１中のリードライト回路２５０内のパルス化回路２５１の出力、即ちヘッド２７０により磁気ディスク媒体２１０から読み取られてプリアンプ回路２６０で増幅され、更にリードライト回路２５０でー定の電圧に増幅された後にパルス化されたデータ（パルス化リードデータ）から、図１１に示したサーボ領域２１１（内のセクタデータ領域２１１ｂ）中のサーボマークＭＫを検出して、サーボマーク検出信号ＳＶＧＴＤを出力するデコーダである。
【００６５】
磁気ディスク媒体２１０のディスクフォーマットは、法が異なる点を除けば、図９中の磁気ディスク媒体２１０と同様であり、必要があれば図１０及び図１１を参照されたい。即ち磁気ディスク媒体２１０はセクタサーボ方式とＣＤＲ方式を適用しており、その記録面上には、図１０に示したように、その中心から各トラックを渡って放射状に、複数のサーボ領域２１１が一定間隔で配置されている。サーボ領域２１１間は、少なくとも１つのデータセクタ（ここでは複数のデータセクタ）が配置されるユーザ領域２１２となっている。磁気ディスク媒体２１０の記録面は半径方向に複数のゾーン“０”（Ｚ０）〜“ｍ”（Ｚｍ）に分割され、各ゾーン毎に、シリンダ（トラック）当たりのデータセクタ数が異なる構成となっている。
【００６６】
サーボデコーダ１１２は、サーボマーク検出回路１１１からのサーボマーク検出信号ＳＶＧＴＤを基準に、サーボ領域２１１内のセクタデータ領域２１１ｂ中のサーボマークＭＫに続くセクタデータ（サーボセクタデータ）及び、次のシリンダデータ領域中のシリンダデータを取り込むためのタイミング信号であるサンプルウィンドウを生成する。サーボデコーダ１１２はまた、リードライト回路２５０内のパルス化回路２５１から出力されるパルス化リードデータの中から、このサンプルウィンドウ内のデータを切り出して、サーボセクタデータ（サーボセクタ番号）及びシリンダデータ（シリンダ番号）を抽出する。サーボデコーダ１１２はシフトレジスタ（図示せず）を内蔵しており、抽出したサーボセクタデータ及びシリンダデータは当該シフトレジスタに順にシリアル入力される。シフトレジスタに入力されたサーボセクタデータはそのままサーボセクタデータレジスタ１１５にセットされ、シリンダデータはグレイコードに変換されてシリンダデータレジスタ１１６にセットされる。
【００６７】
サーボカウンタ１１３は、サーボ制御のタイミングを決定するための基本的なカウンタ（メインカウンタ）であり、上記サーボマーク検出信号ＳＶＧＴＤによりクリアされ、サーボＰＬＬ回路１３８からの基準クロック（サーボクロック）ＳＶＣＬＫでカウントを行う。
【００６８】
バーストデコーダ１１４は、サーボカウンタ１１３のカウント値をデコードすることで、サーボ領域２１１内のバースト領域２１１ｄに記録されている各バースト信号Ａ〜Ｄのピークホールドのタイミング信号（バーストタイミング信号）を生成し、リードライト回路２５０に出力する。
【００６９】
フォルト検出回路１１７は、予め定められた各種のフォルト信号を入力し、そのうちのいずれか１つが真になると、リードライト回路２５０のライトチャネルの動作を停止させて、異常状態で磁気ディスク媒体２１０へのライト動作が行われて既存のデータが破壊されるのを防止すると共に、後述するディスク制御回路１３３にフォルトを通知してライトゲートを閉じさせる。ここで適用されるフォルト信号には、磁気ディスク装置に所定値異常の衝撃が加わったことが検出された場合に出力される衝撃検出信号、電源電圧異常が検出された場合に出力される電源電圧異常検出信号、ヘッド２７０の異常が検出された場合に出力されるヘッドアンセーフ信号等がある。
【００７０】
次にメモリブロック１２は、例えばＤＲＡＭにより構成されたバッファメモリ１２０を有している。このバッファメモリ１２０は、コントローラブロック１３内のホストインタフェース１３１と磁気ディスク媒体２１０（を対象とするリード／ライトをプリアンプ回路２６０、ヘッド２７０を介して行うリードライト回路２５０）との間で転送されるデータ（リードデータまたはライトデータ）を一時格納するためのバッファメモリ部をなすデータ領域１２１と、ディフェクト情報領域１２２と、ＤＳＰ（データセクタパルス）生成情報領域１２３とに分割して管理される。
【００７１】
ディフェクト情報領域１２２は、磁気ディスク媒体２１０の各シリンダについて、リードまたはライト時にスキップすべき欠陥（ディフェクト）データセクタ位置を各サーボセクタ毎に示すディフェクト情報を格納するのに用いられる。このディフェクト情報は、例えば磁気ディスク媒体２１０の特定領域に保存されていて、立ち上げ時にＣＰＵ３０のメモリ（ＲＡＭ）に読み込まれるものであるが、本実施形態ではこの際に、バッファメモリ１２０のディフェクト情報領域１２２にも格納するようにしている。このようにディフェクト情報領域１２２にディフェクト情報を格納しておくことで、目標シリンダにシーク・位置決めしてリードまたはライトを行う場合に、対応するディフェクト情報をディフェクト情報領域１２２からディスク制御回路１３３内に読み込んで、リードまたはライトの対象範囲にディフェクトデータセクタがあるか否かをチェックし、ディフェクトデータセクタがある場合には、その位置をスキップ対象として設定する動作を、ＣＰＵ３０の介在なくして行うことができる。このスキップ位置設定と、そのスキップ位置設定に基づくスキップ動作の詳細は本発明に関係しないため説明を省略する。
【００７２】
ＤＳＰ生成情報領域１２３は、磁気ディスク媒体２１０上の各サーボセクタ２１３単位で設定される、ＤＳＰ（データセクタパルス）生成のタイミングに関する情報（ＤＳＰ生成情報）を、各サーボセクタ毎で且つ各ゾーン別に格納しておくのに用いられる。ここで、１つのＤＳＰ生成情報は、該当するゾーンの該当するサーボセクタ２１３内に配置されている最初のデータセクタ位置に対応したＤＳＰの出力位置（１st  ＤＳＰ位置）をサーボクロックＳＶＣＬＫ数で示す１バイト情報と、データセクタの間隔に対応したＤＳＰの間隔をサーボクロックＳＶＣＬＫ数で示す１．５バイト（１２ビット）情報と、当該サーボセクタ２１３内のデータセクタ数に対応したＤＳＰの数を示す４ビット（０．５バイト）情報から構成される３バイト情報である。
【００７３】
このため、ＤＳＰ生成情報領域１２３は、３番地分の領域を単位に分割して管理され、各ゾーンと各サーボセクタの組み合わせで特定される各３番地分の領域（３バイト領域）毎に、それぞれ対応するＤＳＰ生成情報が格納される。このＤＳＰ生成情報領域１２３には、例えば５０サーボセクタ、１０ゾーンの装置では、５０×１０×３＝１５００バイトが必要となる。但し実際には、ＤＳＰ生成情報は１つのゾーン内で循環することが多いため、半分以下の容量で済む可能性が高い。
【００７４】
図３に、各ゾーンと各サーボセクタの組み合わせに対するＤＳＰ生成情報領域１２３内の各３バイト領域（の先頭位置を示すバッファメモリ１２０のアドレス）の割り当て例を示す。図中のアドレスの末尾の“Ｈ”は１６進表現であることを示す。
【００７５】
ここでは、各３バイト領域の第１バイトには、３バイトのＤＳＰ生成情報中の１st  ＤＳＰ位置（を示す１バイト情報）が、第２バイトには、ＤＳＰ間隔（を示す１．５バイト情報中）の下位１バイトが、第３バイトには、ＤＳＰ数（を示す４ビット情報）及びＤＳＰ間隔（を示す１．５バイト情報中）の上位４ビットからなる１バイトが、それぞれ格納される。
【００７６】
通常、上記のＤＳＰ生成情報は、ＣＰＵバス２９１に接続されたＲＯＭ２９２内に、ＤＳＰ生成情報テーブル２９３として予め格納されている（図１参照）。本実施形態では、このＤＳＰ生成情報テーブル２９３の内容（ＤＳＰ生成情報）を立ち上げ時に上記のアドレス割り当て形態でバッファメモリ１２０のＤＳＰ生成情報領域１２３にロードするようにしている。
【００７７】
コントローラブロック１３は、ホストインタフェース１３１、バッファ制御回路１３２、ディスク制御回路１３３、ＣＰＵインタフェース１３４、ＤＳＰ生成回路（データセクタパルス生成回路）１３５、ディスクＦＩＦＯ１３６、ＥＣＣ回路１３７、及びクロック生成回路１３８を含む。
【００７８】
ホストインタフェース１３１は、所定のインタフェースで規定されたタイミング及びプロトコルに従い、ホスト装置との間のデータ及びコマンドの授受を行う。このホストインタフェース１３１は、バッファメモリ１２０とホスト装置との間のデータ転送における転送速度の違いを吸収するための図示せぬＦＩＦＯ（ホストＦＩＦＯ）を有している。またホストインタフェース１３１は、コマンドの解読を行うコマンドデコーダ、インタフェースタイミングの生成回路（いずれも図示せず）も有している。
【００７９】
バッファ制御回路１３２は、メモリバス１４によりメモリブロック１２内のバッファメモリ１２０と接続されており、当該メモリバス１４を介してバッファクロックＢＦＣＬＫに従うバッファメモリ１２０のアクセスを制御する。このバッファ制御回路１３２の制御により処理されるデータの移動は、実際には、ディスクＦＩＦＯ１３６とバッファメモリ１２０との間、及びホストインタフェース１３１内のホストＦＩＦＯとバッファメモリ１２０との間で行われる。
【００８０】
バッファ制御回路１３２には、サーボブロック１１内のサーボセクタデータレジスタ１１５と接続されるＤＳＰ生成情報ローダ１３２ａが設けられている。ＤＳＰ生成情報ローダ１３２ａは、ＣＰＵ３０から与えられるヘッド２７０が位置するゾーン（の情報）と、サーボセクタデータレジスタ１１５に保持されたサーボセクタデータ、即ちヘッド２７０が位置する当該ゾーン内のサーボセクタを示すサーボセクタ番号（の情報）とから、次のサーボセクタに対応するＤＳＰ生成情報が格納されているバッファメモリ１２０のＤＳＰ生成情報領域１２３内の３バイト領域のアドレス（開始アドレス）を生成して当該メモリブロック１２をリードアクセスし、対応するＤＳＰ生成情報を読み込んでコントローラブロック１３内のＤＳＰ生成回路１３５にロードする。
【００８１】
ディスク制御回路１３３は、リードライト回路２５０、プリアンプ回路２６０を介して行われる磁気ディスク媒体２１０を対象とするリードまたはライトのタイミングを制御する。
【００８２】
ディスク制御回路１３３は、サーボブロック１１内のサーボセクタデータレジスタ１１５と接続されて、当該レジスタ１１５の内容を直接参照できるようになっている。ディスク制御回路１３３は、ＣＰＵ３０の制御によるシーク・位置決めが完了してリードまたはライトが可能となると（具体的には、リード実行フラグまたはライト実行フラグがセットされると）、目標サーボセクタをサーチする動作を行う。これは、サーボセクタデータレジスタ１１５を監視して、当該レジスタ１１５に目標サーボセクタのセクタ番号に一致するサーボセクタ番号が保持されるのを待つという動作となる。
【００８３】
ディスク制御回路１３３は、コントローラブロック１３は、サーボセクタデータレジスタ１１５に目標サーボセクタのセクタ番号に一致するサーボセクタ番号が保持されたことを検出すると、ＤＳＰ生成回路１３５から出力されるＤＳＰの数をカウントし、開始データセクタ位置に対応するＤＳＰの数をカウントすると、リードゲートまたはライトゲートを開く。リードの場合は、リードライト回路２５０内のリードチャネルがデータを再生する。
【００８４】
ＣＰＵインタフェース１３４は、ＣＰＵ３０とコントローラブロック１３との間のデータ授受等を行う。
【００８５】
ＤＳＰ生成回路１３５は、サーボブロック１１内のサーボデコーダ１１２によりサーボセクタが検出される毎に、バッファ制御回路１３２内のＤＳＰ生成情報ローダ１３２ａによりバッファメモリ１２０内のＤＳＰ生成情報領域１２３から読み込まれてロードされる、次のサーボセクタに対応するＤＳＰ生成情報をもとに、当該次のサーボセクタ内に配置される各データセクタの位置に対応したＤＳＰを生成出力する。
【００８６】
ＥＣＣ回路（エラー検出訂正回路）１３７は、ライト時には、バッファ制御回路１３２によりバッファメモリ１２０内のデータ領域１２１から読み出されたライトデータが、ディスクＦＩＦＯ１３６を介してディスク制御回路１３３内のシフトレジスタ（図示せず）に入力されてリードライト回路２５０に出力されるまでの間に、ＥＣＣコード（エラー検出訂正コード）を生成して、当該コードを１データセクタ分のライトデータ（通常５１２バイト）の後ろに付加する。また、このライトデータの前には、同期用のデータ（ＰＬＯ領域）、シンクバイト領域（ＳＹＮＣ領域）のデータ等がディスク制御回路１３３により付加され、連続してリードライト回路２５０に送られる。
【００８７】
これに対してリード時には、ＥＣＣ回路１３７は、磁気ディスク媒体２１０から読み出されてリードライト回路２５０により復号されたリードデータがディスク制御回路１３３内のシフトレジスタにシフト入力されてから、バッファ制御回路１３２の制御のもとで、ディスクＦＩＦＯ１３６を介してバッファメモリ１２０内のデータ領域１２１に転送し終えるまでのデータ移動の間に、ＥＣＣチェックを行う。ＥＣＣ回路１３７は、エラーを検出した場合には訂正可否を判断し、可能であれば、バッファメモリ１２０内のデータ領域１２１のデータを対象とする訂正処理を行う。ＥＣＣ回路１３７は、この訂正処理を、次のデータセクタのデータがバッファメモリ１２０に書き込まれる前に完了させる。
【００８８】
クロック生成回路１３８は、ＣＰＵ３０から与えられる基準のクロックＣＬＫをもとにサーボクロックＳＶＣＬＫを生成出力するサーボＰＬＬ回路１３８ａと、同じく基準クロックＣＬＫをもとにバッファクロックＢＦＣＬＫを生成出力するバッファＰＬＬ回路１３８ｂとの２つの位相ロックループ回路（シンセサイザ）からなる。
【００８９】
以上の構成において、制御回路１０のコントローラブロック１３内のディスク制御回路１３３によるリードまたはライト時の基本的な処理の手順は次の通りである。この処理は、シーケンサ５１２（図５参照）によってファームウェア（ＦＷ）に従って行われる。
【００９０】
まずディスク制御回路１３３（内のシーケンサ５１２）は、立ち上げ時には、動作モード、データセクタ内のデータフィールドの開始バイト数、シンクバイトの定義など、データフォーマットに関する初期設定を予め行う。また、ホスト装置からのコマンドの実行開始時には、エラー訂正を適用するか否か、エラーストップモードなどを表すデータ転送の属性、データ転送を開始するバッファメモリ１２０（内のデータ領域１２１）のアドレス位置、転送長の制御レジスタ（図示せず）への初期設定を行う。
【００９１】
このコマンド実行開始時の初期設定の後、ホスト装置の要求したディスクアクセスの論理アドレス（要求アドレス）からＣＰＵ３０により求められた目標シリンダ（の番号）が目標シリンダレジスタ（図示せず）にセットされ、目標シリンダにシークするためのシーク制御が（サーボブロック１１を利用して）ＣＰＵ３０により行われる。
【００９２】
次にディスク制御回路１３３はディスクＦＩＦＯ１３６を初期化し、バッファ制御回路１３２によるディスクＦＩＦＯ１３６とバッファメモリ１２０との間のデータ転送を起動する。ここでディスク制御回路１３３は、ライトの場合であれば、ディスクＦＩＦＯ１３６に予めデータ（ライトデータ）を準備しておく。バッファ制御回路１３２は、転送できるデータがバッファメモリ１２０内（のデータ領域１２１）にあれば、当該バッファメモリ１２０からディスクＦＩＦＯ１３６へのデータ転送を開始し、データがなければ、ホスト装置からのデータを待つ。またバッファ制御回路１３２は、ディスクＦＩＦＯ１３６が満杯（ＦＵＬＬ）になれば、当該ディスクＦＩＦＯ１３６からデータが送出されるのを待つ。
【００９３】
次にディスク制御回路１３３では、目標シリンダ内でのリードまたはライトの開始対象となる目標サーボセクタのセクタ番号と、当該目標サーボセクタ内でのリードまたはライトの開始対象となる開始データセクタの位置（目標サーボセクタ内の何番目のデータセクタかを示す情報）と、目標シリンダ内でのリードまたはライトの対象データセクタ数が設定される。
【００９４】
ここで、ディスク制御回路１３３における目標サーボセクタのセクタ番号及び開始データセクタ位置の設定について述べる。
【００９５】
通常、ＣＰＵ３０は、ホスト装置の要求アドレス（論理アドレス）を物理アドレスに変換して、ヘッド、シリンダ、データセクタの各アドレスを求める。次に、ＣＰＵ３０は、リードまたはライトを開始すべきデータセクタ（開始データセクタ）が、どのサーボセクタに属するかを計算により求め、更に、そのサーボセクタ内の何番目のデータセクタとなるか（開始データセクタ位置）を計算により求めている。したがって、開始データセクタ位置の設定には時間を要する。従来、この計算は、シーケンシャルアクセス（シーケンシャルシーク）でも、ランダムアクセス（ランダムシーク）でも同じように行われており、ほぼ同じ計算時間を要していた。特に従来は、データセクタ単位でスキューを設定していたために［従来の技術］の欄で述べたようにスキュー処理が複雑となり、１シリンダ分のシークが行われるシーケンシャルアクセス、即ちシーク時間が短いシーケンシャルシークでは、ＣＰＵ３０の計算処理が間に合わなくなる恐れがあった。
【００９６】
そこで本実施形態では、従来のデータセクタ単位のスキュー値設定（図１２参照）とは異なって、図４に示すように、サーボセクタ単位のスキュー値設定を行うようにしている。このスキュー値設定は、隣接するシリンダにシークしてリードまたはライトする場合に、そのリードまたはライトの開始データセクタ位置は、対象となるサーボセクタ内の最初のデータセクタ位置となることを示す。つまり、次のシリンダのサーボセクタの位置を求めれば、開始対象となるデータセクタは、そのサーボセクタ内の最初のデータセクタであるため、計算する必要がないということである。隣接シリンダ間のスキュー値は、各ゾーンに無関係に一定である。図４の例では、シリンダ間のスキュー値は作図の都合で１サーボセクタ分としているが、実際にはそれより多く、例えば５サーボセクタ分である。
【００９７】
シーケンシャルアクセスは、ホスト装置から要求されたリードまたはライトの対象データセクタ数が多く、複数シリンダ（トラック）にまたがるリードまたはライトとなる場合に発生する。この場合、ホスト装置からのディスクアクセス要求は、ＣＰＵ３０により各シリンダ単位の要求に分割され、各シリンダ毎に、そのシリンダが目標シリンダとして設定されて、そのシリンダへのシーク動作が行われる。
【００９８】
最初の目標シリンダへのシーク（ランダムシーク）に際しては、当該目標シリンダ、当該目標シリンダにおける（スキューを考慮しない）目標サーボセクタ並びに当該目標サーボセクタ内の開始データセクタ位置、及びスキュー値が、ホスト装置からの要求アドレスをもとにＣＰＵ３０にて計算される。
【００９９】
これに対し、後続の目標シリンダへのシーク（１シリンダシーク、即ちシーケンシャルシーク）に際しては、当該目標シリンダは現在ヘッド２７０が位置しているシリンダの次のシリンダであり、当該目標シリンダにおける（スキューを考慮しない）目標サーボセクタは、現在ヘッド２７０が位置しているサーボセクタ（１シリンダシーク開始前にヘッド２７０が位置しているサーボセクタ）の次のサーボセクタであり、開始データセクタ位置はサーボセクタ内の最初のデータセクタの位置であり、サーボセクタ単位のスキュー値は固定値（図４の例では１）であることから、ＣＰＵ３０での計算は不要である。
【０１００】
さて、サーボ単位のスキュー値設定を適用すると、スキューを考慮した目標サーボセクタを求める操作が、単にスキューを考慮しない目標サーボセクタ番号（スキューなし目標サーボセクタ番号）にスキュー値を加算するだけで済むため、簡単にハードウェア化可能となる。本実施形態では、このハードウェア回路であるスキュー処理回路１３３ａをディスク制御回路１３３に設けている。なお、スキュー値は、シーケンシャルアクセスにおけるシーク動作（シーケンシャルシーク）の場合には、１シリンダ分のずれ量となるため固定であるが、ランダムアクセスにおけるシーク動作（ランダムシーク）の場合には、そのシークシリンダ数分だけスキュー量が加えられていくために計算が必要となる。しかし、ランダムシークではシーク時間も長いため、計算が間に合わなくなる恐れはない。
【０１０１】
図５は、ディスク制御回路１３３内の主要部の構成を、当該ディスク制御回路１３３内のスキュー処理回路１３３ａの内部構成と共に示す。
【０１０２】
スキュー処理回路１３３ａは、レジスタ５０１，５０２及び加算器５０３から構成される。
【０１０３】
レジスタ（第１の目標サーボセクタ番号レジスタ）５０１には、ホスト装置の要求アドレスからＣＰＵ３０により求められた、目標シリンダにおけるスキューなし目標サーボセクタのセクタ番号（第１の目標サーボセクタ番号）が当該ＣＰＵ３０によってセットされる。なお、シーケンシャルシーク（隣接シリンダへのシーク）が行われる場合には、シーク直前のサーボセクタの次のサーボセクタがスキューなし目標サーボセクタ番号となり、ＣＰＵ３０での計算は行われない。
【０１０４】
レジスタ（スキュー値レジスタ）５０２には、スキュー値がＣＰＵ３０によってセットされる。このスキュー値は、シーケンシャルアクセスの場合には、一定値（図４の例では１サーボセクタ分、即ち１）である。このとき、スキューを考慮した目標サーボセクタにおいて最初にリードまたはライトすべきデータセクタ（開始データセクタ）の位置（目標サーボセクタ内の何番目のデータセクタかを示す情報）がＣＰＵ３０によってレジスタ（開始データセレクタ位置レジスタ）５０９にセットされる。このレジスタ５０９にセットされる値は、シーケンシャルアクセスの場合には、目標サーボセクタ内の最初のデータセクタを示す１（固定値）であり、ＣＰＵ３０での計算は不要である。
【０１０５】
以上のレジスタ５０１，５０２，５０９へのセット動作は、ＣＰＵ３０により例えば目標シリンダ位置へのシーク開始時に行われる。
【０１０６】
加算器５０３はレジスタ５０１，５０２の設定値を加算する。この加算器５０３の加算結果は、スキューを考慮した、実際のアクセス対象サーボセクタ（目標サーボセクタ）のセクタ番号として、レジスタ（第２の目標サーボセクタ番号レジスタ）５０４にセットされる。したがって、図３において、セクタ番号がＮのサーボセクタ（サーボセクタ“Ｎ”）がスキューなしの目標サーボセクタであった場合には、レジスタ５０４にはサーボセクタ“Ｎ＋１”を示すセクタ番号Ｎ＋１がセットされることになる。
【０１０７】
レジスタ５０４の出力は、比較器５０５の一方の入力に接続されている。この比較器５０５の他方の入力には、図１中のサーボブロック１１内に設けられているサーボセクタデータレジスタ１１５の出力が接続されている。比較器５０５は、ＣＰＵ３０の制御によるシーク・位置決めが完了してリードまたはライトが可能となると（具体的には、リード実行フラグまたはライト実行フラグがセットされると）比較可能状態となり、レジスタ５０４の値、即ち（スキューを考慮した）目標サーボセクタのセクタ番号と、シーク動作に応じて変化するレジスタ１１５の値、即ちサーボデコーダ１１２によって検出された、現在ヘッド２７０が位置しているサーボセクタ２１３のセクタ番号とを比較する。そして比較器５０５は、レジスタ１１５の値がレジスタ５０４の値に一致するようになると、サーボセクタ一致検出信号５０６を出力する。
【０１０８】
比較器５０５からサーボセクタ一致検出信号５０６が出力されるとフリップフロップ（Ｆ／Ｆ）５０７がセットされ、目標サーボセクタが検出されたことが示される。
【０１０９】
すると、ＤＳＰカウンタ５０８が起動され、ＤＳＰ生成回路１３５から出力されるＤＳＰの数のカウントを開始する。このＤＳＰ生成回路１３５は、ヘッド２７０が位置しているサーボセクタ２１３におけるサーボマークＭＫの位置（サーボマーク検出信号ＳＶＧＴＤのタイミング）を基準に、当該サーボセクタ２１３内に配置されている各データセクタの位置に対応したタイミングでＤＳＰ（データセクタパルス）を出力するものであり、その構成並びに動作の詳細については後述する。
【０１１０】
比較器５１０は、レジスタ５０９の設定値（開始データセクタが目標サーボセクタ内の何番目のデータセクタであるかを示す値）とＤＳＰカウンタ５０８のカウント値とを比較しており、ＤＳＰカウンタ５０８がレジスタ５０９の設定値に一致する数のＤＳＰをカウントすると、開始データセクタが検出されたことを示すデータセクタ一致検出信号５１１をシーケンサ５１２に出力する。するとシーケンサ５１２は、リードの場合であればリードゲート（ＲＧ）を、ライトの場合であればライトゲート（ＷＧ）を開く。これによりディスクリードまたはディスクライト動作が開始される。
【０１１１】
このとき、ＤＳＰ生成回路１３５からのＤＳＰの数をカウントする動作がＤＳＰカウンタ５０８と同様のカウンタ（図示せず）で開始される。そして、ＣＰＵ３０により指定されたリードまたはライトの対象データセクタ数分のＤＳＰがカウントされると、即ちリードまたはライトの対象データセクタ数分のリードまたはライト動作が行われると、シーケンサ５１２によりリードゲート（ＲＧ）またはライトゲート（ＷＧ）が閉じられ、リードまたはライト動作が停止する。
【０１１２】
ここで、ディスクデータのリードまたはライトにおけるデータ転送は、シーケンサ５１２の制御のもとでバッファ制御回路１３２と協同して行われる。その際の具体的動作は、本発明に直接関係しないため説明を省略する。
【０１１３】
図６に、ＤＳＰ生成回路１３５とその周辺の回路とのＤＳＰ生成に関する接続関係を示す。この図６では、ＣＰＵ３０が目標シリンダ位置にシーク・位置決めを行った後に、制御回路１０（内のコントローラブロック１３）に対してセクタリング開始をゾーン番号と共に指定するだけで、制御回路１０内で自動的にＤＳＰが生成される様子が示されている。
【０１１４】
ＣＰＵ３０は目標シリンダ位置にシーク・位置決めを行うと、制御回路１０内のコントローラブロック１３にセクタリング開始をゾーン番号と共に指定する。するとバッファ制御回路１３２内のＤＳＰ生成情報ローダ１３２ａが起動される。
【０１１５】
ＤＳＰ生成情報ローダ１３２ａは、サーボブロック１１内のサーボデコーダ１１２によりヘッド２７０が位置するサーボセクタが検出されて、そのセクタ番号がサーボセクタデータレジスタ１１５に保持される毎に、当該レジスタ１１５に保持されたセクタ番号（サーボセクタ番号）とＣＰＵ３０から指定されたゾーン番号で決まるバッファメモリ１２０のＤＳＰ生成情報領域１２３内の３バイト領域から、次のサーボセクタに対応したＤＳＰ生成情報を読み込んでＤＳＰ生成回路１３５にロードする。
【０１１６】
するとＤＳＰ生成回路１３５は、ＤＳＰ生成情報ローダ１３２ａによりロードされたＤＳＰ生成情報の示すタイミングで、サーボセクタデータレジスタ１１５に保持されたセクタ番号の示すサーボセクタの次のサーボセクタ内に配置される各データセクタの位置に対応したＤＳＰを生成出力する。
【０１１７】
この制御回路１０におけるＤＳＰ生成に関する各部の構成の詳細を図７に示す。
【０１１８】
図７において、（リードライト回路２５０からの）パルス化されたリードデータからサーボデコーダ１１２によりサーボマーク検出信号ＳＶＧＴＤに応じてサーボセクタ番号（サーボセクタデータ）が検出される毎に、そのサーボセクタ番号はサーボセクタデータレジスタ１１５にセットされる。サーボセクタデータレジスタ１１５にセットされたサーボセクタ番号は、ＣＰＵ３０により指定されたゾーン番号と共にバッファ制御回路１３２内のＤＳＰ生成情報ローダ１３２ａに導かれる。
【０１１９】
ＤＳＰ生成情報ローダ１３２ａは、アドレス変換回路１３２ｂ及びロード回路１３２ｃから構成される。
【０１２０】
アドレス変換回路１３２ｂは、ゾーン番号とサーボセクタデータレジスタ１１５にセットされているサーボセクタ番号から、次のサーボセクタに対応したＤＳＰ生成情報が格納されているバッファメモリ１２０内のＤＳＰ生成情報領域１２３における３バイト領域のアドレスを生成する。
【０１２１】
ＤＳＰ生成情報ローダ１３２ａは、このアドレスによりバッファメモリ１２０をリードアクセスして、そのアドレスから始まる３番地分の領域（３バイト領域）のデータ（ＤＳＰ情報）を順次読み込む。ここで、３番地分の領域の第１バイトには１st  ＤＳＰ位置を示す１バイト情報が、第２バイトにはＤＳＰ間隔を示す１．５バイト（１２ビット）情報の下位１バイト（８ビット）が、そして第３バイトにはＤＳＰ数を示す４ビット情報及びＤＳＰ間隔を示す１．５バイト情報の上位４ビット（０．５バイト）からなる１バイト情報が格納されている。
【０１２２】
ロード回路１３２ｃは、上記３番地分の領域から最初に読み込まれた１バイト情報（１st  ＤＳＰ位置を示す１バイト情報）をＤＳＰ生成回路１３５内のレジスタ（１st  ＤＳＰ位置レジスタ）７０１に、次に読み込まれた１バイト情報（１st  ＤＳＰ位置を示す１．５バイト情報の下位１バイト）及び最後に読み込まれた１バイト情報中の下位４ビット（ＤＳＰ間隔を示す１．５バイト情報の上位４ビット）からなる１．５バイトをレジスタ（ＤＳＰ間隔レジスタ）７０２に、そして最後に読み込まれた１バイト情報中の上位４ビット（ＤＳＰ数を示す４ビット情報）をレジスタ（ＤＳＰ数レジスタ）７０３に、順次ロードする。
【０１２３】
まず、ＤＳＰ生成回路１３５に設けられているＤＳＰ生成用のカウンタ７０５及び生成ＤＳＰ数計数用のカウンタ７０６は、サーボブロック１１内のサーボマーク検出回路２８１からのサーボマーク検出信号ＳＶＧＴＤのタイミングでクリアされる。このとき、ＤＳＰ生成回路１３５内のロード回路７０４は、上記サーボマーク検出信号ＳＶＧＴＤのタイミングで、レジスタ７０１の内容（１st  ＤＳＰ位置）をカウンタ７０５に、レジスタ７０３の内容（ＤＳＰ数）をカウンタ７０６に、それぞれロード（プリセット）する。このサーボマーク検出信号ＳＶＧＴＤのタイミングは、現在サーボセクタデータレジスタ１１５にセットされているサーボセクタ番号の示すサーボセクタの次のサーボセクタ（内のサーボ領域２１１のセクタデータ領域２１１ｂに記録されているサーボマークＭＫ）の位置に対応する。
【０１２４】
カウンタ７０５は、（クロック生成回路１３８内のサーボＰＬＬ回路１３８ａからの）サーボクロックＳＶＣＬＫに応じてカウント動作（ここではダウンカウント動作）を行い、レジスタ７０１の示す値（１st  ＤＳＰ位置）をカウントするとボロー信号を出力する。このボロー信号はＤＳＰとして用いられる。この場合のＤＳＰの出力タイミングは、現在サーボセクタデータレジスタ１１５にセットされているサーボセクタ番号の示すサーボセクタの次のサーボセクタ内の最初のデータセクタの位置に一致する。このカウンタ７０５からのＤＳＰ（ボロー信号）は、カウンタ７０６のクロック及びロード回路７０４に対するＤＳＰ間隔ロード要求信号として用いられる。
【０１２５】
そこでロード回路７０４は、カウンタ７０５からＤＳＰが出力される毎に、レジスタ７０２の内容（ＤＳＰ間隔）を当該カウンタ７０５にロードする。これによりカウンタ７０５はダウンカウント動作を再開し、今度はレジスタ７０２の示す値（ＤＳＰ間隔）をカウントするとＤＳＰを出力する。
【０１２６】
このようにしてカウンタ７０５では、サーボマーク検出信号ＳＶＧＴＤに応じてクリアされてから最初のＤＳＰが出力された後は、ＤＳＰ間隔をカウントする毎にＤＳＰを出力する動作が繰り返される。このＤＳＰが繰り返し出力されるタイミングは、現在サーボセクタデータレジスタ１１５にセットされているサーボセクタ番号の示すサーボセクタの次のサーボセクタ内の２番目以降の各データセクタの位置に一致する。
【０１２７】
一方、カウンタ７０６はカウンタ７０５から出力されるＤＳＰの数をカウントする。そしてカウンタ７０６は、レジスタ７０３の示す値（ＤＳＰ数）をカウントするとボロー信号を出力する。カウンタ７０５はこの信号によりクリアされ、これによりＤＳＰ生成回路１３５でのＤＳＰ生成動作は停止する。このＤＳＰ生成動作が再開されるのは、次のサーボセクタ（のサーボ領域２１１）からサーボマーク検出回路１１２によりサーボマークＭＫが検出された際である。
【０１２８】
このように本実施形態においては、サーボブロック１１内のサーボマーク検出回路１１１からサーボマーク検出信号ＳＶＧＴＤが出力される毎に、即ちサーボセクタが検出される毎に、そのサーボセクタ内に配置される各データセクタの位置に対応したタイミングでＤＳＰがＤＳＰ生成回路１３５から出力される動作が、ＣＰＵ３０によるサーボセクタ単位のＤＳＰ生成情報読み込みと、そのＤＳＰ生成情報の設定動作を必要とすることなく、自動的に行われる。
【０１２９】
以上に述べた図１の構成の磁気ディスク装置における全体の動作を説明する。
【０１３０】
まず、ヘッド２７０で磁気ディスク媒体２１０上のサーボ領域２１１のデータ（サーボデータ）が読み取られたものとする。ヘッド２７０で読み取られたサーボデータ（リードデータ）はプリアンプ回路２６０で増幅され、更にリードライト回路２５０でＡＧＣアンプによりー定の電圧に増幅された後、パルス化回路２５１でパルス化されて、制御回路１０内のサーボブロック１１に送られる。
【０１３１】
サーボブロック１１内のサーボマーク検出回路１１１は、リードライト回路２５０内のパルス化回路２５１の出力（パルス化リードデータ）から、サーボ領域２１１内のセクタデータ領域２１１ｂ中に記録されているサーボマークＭＫを検出し、対応する検出信号（サーボマーク検出信号）ＳＶＧＴＤを出力する。
【０１３２】
サーボブロック１１内のサーボデコーダ１１２は、サーボマーク検出回路１１１からのサーボマーク検出信号ＳＶＧＴＤを基準に、サーボマークＭＫに続くセクタデータ（サーボセクタデータ）及びシリンダデータを取り込むためのタイミング信号であるサンプルウィンドウを生成し、上記パルス化リードデータの中から、このサンプルウィンドウ内のデータをを切り出して、サーボセクタデータ（サーボセクタ番号）及びシリンダデータ（シリンダ番号）を抽出する。ここで抽出されたサーボセクタデータはそのままサーボセクタデータレジスタ１１５にセットされ、シリンダデータはグレイコードに変換されてシリンダデータレジスタ１１６にセットされる。このサーボブロック１１内の両レジスタ１１５，１１６の内容（サーボセクタデータ及びシリンダデータ）はＣＰＵ３０によりＣＰＵバス２９１を介して読み込まれる。
【０１３３】
一方、サーボブロック１１内のサーボカウンタ１１３は、上記サーボマーク検出信号ＳＶＧＴＤによりクリアされ、サーボＰＬＬ回路１３８ａからの基準クロック（サーボクロック）ＳＶＣＬＫでカウントを行う。バーストデコーダ１１４は、サーボカウンタ１１３のカウント値をデコードすることで、サーボ領域２１１内のバースト領域２１１ｄに記録されている各バースト信号Ａ〜Ｄのピークホールドのタイミング信号（バーストタイミング信号）を生成し、リードライト回路２５０に出力する。
【０１３４】
リード／ライト回路２５０は、リードライト回路２５０でＡＧＣアンプによりー定の電圧に増幅されたリードデータに含まれているバースト信号Ａ〜Ｄの振幅を、バーストデコーダ１１４からのバーストタイミング信号でピークホールドすることで、当該バースト信号Ａ，Ｂ，Ｃ，Ｄを抽出する。このバースト信号Ａ，Ｂ，Ｃ，Ｄは例えばＣＰＵ３０のＡ／Ｄコンバータ３１（ＣＰＵ３０から独立に設けられていても構わない）によりディジタル量に変換され、バーストデータＢＳＴＡ，ＢＳＴＢ，ＢＳＴＣ，ＢＳＴＤとして当該ＣＰＵ３０に取り込まれる。
【０１３５】
ＣＰＵ３０は、サーボブロック１１内のシリンダデータレジスタ１１６から読み込んだシリンダデータの示すシリンダ、即ち現在ヘッド２７０が位置しているシリンダから目標シリンダまでの移動距離を計算すると共に、ヘッド２７０の移動速度を計算し、当該移動速度と上記移動距離から求められる目標速度との差分をもとに、（ヘッド２７０を磁気ディスク媒体２１０の半径方向に目標シリンダまで移動するのに必要な駆動力を与える）ボイスコイルモータ（ＶＣＭ）に流す電流（ＶＣＭ電流）を決める。そしてＣＰＵ３０は、そのＶＣＭ電流に比例した電圧をシリアルポートを介して（ボイスコイルモータを駆動する）ＶＣＭドライバ（図示せず）に与える。
【０１３６】
このようにＣＰＵ３０は、目標速度と移動速度との差がゼロになるように、ボイスコイルモータを駆動制御するフィードバック制御を実行することで、ヘッド２７０を目標シリンダに位置決めする。
【０１３７】
以上の動作（シーク動作）が完了すると、ＣＰＵ３０は位置決め動作に入る。即ちＣＰＵ３０は、バーストデータＢＳＴΑ，ＢＳＴΒ，ＢＳＴＣ，ＢＳＴＤを取り込んで、そのバーストデータＢＳＴΑ，ＢＳＴΒの組、またはバーストデータＢＳＴＣ，ＢＳＴＤの組をもとに、ヘッド２７０の目標シリンダ（トラック）の中心からの位置誤差（ヘッド２７０が独立のリード専用ヘッドとライト専用ヘッドからなる複合型ヘッドの場合で、且つライトのための位置決め動作の場合には、リード専用ヘッドとライト専用ヘッドとの間隔を考慮した位置誤差となる）を計算し、その位置誤差がゼロになるようにボイスコイルモータを駆動制御するフィードバック制御を実行する。
【０１３８】
このようにして、ヘッド２７０が目標シリンダにシーク・位置決めされると、サーボブロック１１内のコントローラブロック１３によるリードまたはライト動作、即ち目標シリンダ上のリードまたはライト対象となる先頭のデータセクタ（開始データセクタ）から始まる、指定数のデータセクタを対象とするリードまたはライト動作が可能となる。ここで、開始データセクタ位置の検出動作の具体例を、ライトの場合のランダムアクセスを例に、図８のタイミングチャートを参照して説明する。
【０１３９】
今、ディスク制御回路１３３内のレジスタ（目標サーボセクタレジスタ）５０４には、（サーボセクタ“Ｎ”を示す）サーボセクタ番号Ｎがセットされ、レジスタ（開始データセクタ位置レジスタ）５０９には、開始データセクタ位置として、目標サーボセクタ内の２番目のデータセクタであることを示す２がセットされているものとする。ここで、目標サーボセクタは、サーボセクタ“Ｎ”であることから、そのサーボセクタ“Ｎ”内の２番目のデータセクタ、即ち開始データセクタは、図８から明らかなようにデータセクタ“Ｌ”である。ここで、レジスタ５０９の値（開始データセクタ位置）２は、ＣＰＵ３０の計算により求められてセットされたものであり、レジスタ５０４の値Ｌは、スキュー処理回路１３３ａのスキュー処理によりセットされたものである。前記したように、シーケンシャルアクセスの場合には、レジスタ５０９の設定値は１（固定値）となり、レジスタ５０４の示す目標サーボセクタ内の最初のデータセクタ位置が示される。
【０１４０】
ディスク制御回路１３３内の比較器５０５は、サーボデコーダ１１２によりサーボセクタ（内のサーボ領域）単位でサーボマーク検出信号ＳＶＧＴＤのタイミングで更新されるサーボセクタデータレジスタ１１５の値（サーボデコーダ１１２により検出されたサーボセクタ２１３のセクタ番号）、即ち現在ヘッド２７０が位置しているサーボセクタ２１３のサーボセクタ番号を、レジスタ５０４にセットされている目標サーボセクタのサーボセクタ番号Ｎと比較する。
【０１４１】
比較器５０５は、サーボデコーダ１１２によりサーボセクタ“Ｎ”が検出され、その結果サーボセクタデータレジスタ１１５にサーボセクタ番号Ｎがセットされると、サーボセクタ一致検出信号５０６を出力する。この信号５０６は、開始データセクタ“Ｌ”が存在する目標サーボセクタ“Ｎ”にヘッド２７０が位置していることを示す。
【０１４２】
比較器５０５からサーボセクタ一致検出信号５０６が出力されると、フリップフロップ５０７がセットして、ＤＳＰカウンタ５０８がカウント可能状態となる。これによりＤＳＰカウンタ５０８は、ＤＳＰ生成回路１３５から各サーボセクタ２１３毎に、そのサーボセクタ２１３内の各データセクタ位置のタイミングで出力されるＤＳＰの数をカウントする動作を開始する。
【０１４３】
比較器５１０は、このＤＳＰカウンタ５０８のカウント値を、レジスタ５０９の値（開始データセクタ位置）２と比較する。そして比較器５１０は、目標サーボセクタ“Ｎ”内の２番目のデータセクタ位置（＝開始データセクタ位置）に対応したＤＳＰがＤＳＰ生成回路１３５から出力され、その結果ＤＳＰカウンタ５０８のカウント値が２となると、データセクタ一致検出信号５１１を出力する。
【０１４４】
するとシーケンサ５１２は、ライトゲートＷＧ（リードの場合であればリードゲートＲＧ）を開く。この状態でシーケンサ５１２は、バッファ制御回路１３２を介してバッファメモリ１２０内のデータ領域１２１からデータを読み出し、ＥＣＣ回路１３７にて生成されるエラー検出訂正コードを付加してリードライト回路２５０に転送する。
【０１４５】
【発明の効果】
以上詳述したように本発明によれば、サーボブロック、コントローラブロック及びメモリブロックを同一チップ上に集積化すると共に、サーボブロック内で抽出されたサーボセクタのセクタ番号がコントローラブロックから直接参照可能な構成としたことにより、処理の高速化とパフォーマンスの向上を図ることができる。
【０１４６】
また、本発明によれば、メモリブロック内のバッファメモリに確保した特定領域（ＤＳＰ生成情報領域）から、サーボブロック内で抽出されたサーボセクタ番号の示すサーボセクタに対応するＤＳＰ生成情報をＣＰＵの介在なしに読み込んでＤＳＰ生成回路に自動設定できる。
【０１４７】
また、本発明によれば、サーボセクタ単位のスキュー値設定を行うことでスキュー処理のハードウェア化が図れ、シーケンシャルアクセスにおけるシリンダ間のスキュー処理がＣＰＵでの特別の計算を必要とすることなく簡単に且つ高速に行える。
【図面の簡単な説明】
【図１】本発明の一実施形態に係る磁気ディスク装置の全体構成を示すブロック図。
【図２】図１中の制御回路１０の構成を示すブロック図。
【図３】図１中のバッファメモリ１２０のＤＳＰ生成情報領域１２３における各ゾーンと各サーボセクタの組み合わせ毎のＤＳＰ生成情報格納先アドレスの割り当て例を示す図。
【図４】同実施形態におけるサーボセクタ単位のスキュー値設定を説明するための図。
【図５】図２中のディスク制御回路１３３内の主要部の構成を、当該ディスク制御回路１３３内のスキュー処理回路１３３ａの内部構成と共に示す図。
【図６】図２中のＤＳＰ生成回路１３５とその周辺の回路とのＤＳＰ生成に関する接続関係を示す図。
【図７】ＤＳＰ生成に関する各部の詳細構成を示す図。
【図８】同実施形態における開始データセクタ位置の検出動作の具体例を説明するためのタイミングチャート。
【図９】従来の磁気ディスク装置の構成を示すブロック図。
【図１０】磁気ディスク媒体の代表的なフォーマットの概念図。
【図１１】サーボ領域及びデータセクタの代表的なフォーマットの概念図。
【図１２】従来のトラック内データセクタ配置においてスキューを考慮した目標サーボセクタ及び開始データセクタの決定方式を説明するための図。
【図１３】従来の磁気ディスク装置におけるＤＳＰ生成回路へのＣＰＵからの情報設定動作と、当該ＤＳＰ生成回路によるＤＳＰ生成動作を説明するための図。
【符号の説明】
１０…制御回路（磁気ディスク装置用制御回路素子）
１１…サーボブロック
１２…メモリブロック
１３…コントローラブロック
１４…メモリバス
３０…ＣＰＵ
１１１…サーボマーク検出回路
１１２…サーボデコーダ
１１５…サーボセクタデータレジスタ
１２０…バッファメモリ
１２１…データ領域
１２２…ディフェクト情報領域
１２３…ＤＳＰ生成情報領域
１３２…バッファ制御回路
１３２ａ…ＤＳＰ生成情報ローダ
１３２ｂ…アドレス変換回路
１３２ｃ…ロード回路
１３３…ディスク制御回路
１３３ａ…スキュー処理回路
１３５…ＤＳＰ（データセクタパルス）生成回路
２１０…磁気ディスク媒体
５０１…第１の目標サーボセクタ番号レジスタ
５０２…スキュー値レジスタ
５０３…加算器
５０４…第２の目標サーボセクタ番号レジスタ
５０５，５１０…比較器
【図１】
0003905944.tif 000002
【図２】
0003905944.tif 000003
【図３】
0003905944.tif 000004
【図４】
0003905944.tif 000005
【図５】
0003905944.tif 000006
【図６】
0003905944.tif 000007
【図７】
0003905944.tif 000008
【図８】
0003905944.tif 000009
【図９】
0003905944.tif 000010
【図１０】
0003905944.tif 000011
【図１１】
0003905944.tif 000012
【図１２】
0003905944.tif 000013
【図１３】
0003905944.tif 000014