JP3905944B2 - CONTROL CIRCUIT ELEMENT FOR MAGNETIC DISK DEVICE AND MAGNETIC DISK DEVICE HAVING THE CONTROL CIRCUIT ELEMENT - Google Patents

CONTROL CIRCUIT ELEMENT FOR MAGNETIC DISK DEVICE AND MAGNETIC DISK DEVICE HAVING THE CONTROL CIRCUIT ELEMENT Download PDF

Info

Publication number
JP3905944B2
JP3905944B2 JP04681197A JP4681197A JP3905944B2 JP 3905944 B2 JP3905944 B2 JP 3905944B2 JP 04681197 A JP04681197 A JP 04681197A JP 4681197 A JP4681197 A JP 4681197A JP 3905944 B2 JP3905944 B2 JP 3905944B2
Authority
JP
Japan
Prior art keywords
sector
data
servo
servo sector
magnetic disk
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP04681197A
Other languages
Japanese (ja)
Other versions
JPH10241263A (en
Inventor
正勝 服部
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP04681197A priority Critical patent/JP3905944B2/en
Publication of JPH10241263A publication Critical patent/JPH10241263A/en
Application granted granted Critical
Publication of JP3905944B2 publication Critical patent/JP3905944B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Moving Of The Head To Find And Align With The Track (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、磁気ディスク媒体に記録されたサーボデータに基づいてヘッドを当該ディスク媒体の目標位置にシーク・位置決めする磁気ディスク装置に係り、特にサーボブロック、コントローラブロック及びメモリブロックが同一チップ上に集積化された磁気ディスク装置用制御回路素子及同制御回路素子を備えた磁気ディスク装置に関する。
【0002】
【従来の技術】
従来、磁気ディスク装置(ハードディスク装置)は図9に示すように構成されているのが一般的であった。図9の構成において、ホスト装置(例えばパーソナルコンピュータ本体)と磁気ディスク媒体210との間のデータの流れは、ホスト装置からのデータを書き込む場合を例にとると次のようになる。
【0003】
まずホスト装置からインタフェース信号線220を通して送られたデータ(ライトデータ)は、ハードディスクコントローラ(HDC)230内のホストインタフェース231で受信された後、バッファ制御回路(バッファマネージャ回路)232の制御により、例えばRAMにより構成された外部のバッファメモリ240にメモリバス241を介して一旦蓄えられる。
【0004】
この状態で磁気ディスク媒体210への書き込みの準備が整うと、バッファメモリ240に蓄えられているデータがバッファ制御回路232の制御のもとでディスク制御回路233に送られ、同期用のデータ(PLO領域)、シンクバイト領域(SYNC領域)のデータ、及びエラー検出訂正用のデータが付加された後、リードライト回路(リードライトIC)250に送られる。
【0005】
リードライト回路250では、まずHDC230(内のディスク制御回路233)から送られたデータに対して、所定の生成多項式により演算が加えられる。次に、このデータはエンコード回路で変調され、(一般にヘッドICと呼ばれる)プリアンプ回路260に送られる。プリアンプ回路260では、このデータを書き込み電流に変換してヘッド270に流し、磁気ディスク媒体210への書き込みを行う。このヘッド270を目標位置にシーク・位置決めする処理については後述する。
【0006】
次に、図9の磁気ディスク装置において、磁気ディスク媒体210からデータを読み出してホスト装置に転送する信号再生時のデータの流れは次のようになる。
【0007】
まず、磁気ディスク媒体210の目標シリンダ上にシーク・位置決めされたヘッド270により当該媒体210から読み取られた信号(リードデータ)は、プリアンプ回路260で増幅されてリードライト回路250に送られる。この増幅された信号はリードライト回路250内でAGC(自動利得制御)アンプでー定の電圧に増幅される。AGCアンプで増幅された信号は、リードライト回路250内でイコライザによりチャネルの特性に合わせた形で等価され、A/D(アナログ/ディジタル)変換された後、ビタビ復号される。この復号された信号は例えば8/9コードの逆変換が施され、NRZデータとなる。
【0008】
リードライト回路250は、このNRZデータ(リードデータ)をHDC230内のディスク制御回路233に送る。ディスク制御回路233では、リードライト回路250からのデータのエラーの有無がECC(エラー検出訂正)回路にてチェックされ、バッファ制御回路232の制御のもとでバッファメモリ240に蓄えられる。このバッファメモリ240内のリードデータは、ホスト装置への転送の準備ができると、メモリバス241、バッファ制御回路232及びホストインタフェース231を介してホスト装置に転送される。
【0009】
図10に磁気ディスク媒体210のディスクフォーマットの一例を示す。この図10の例は、いわゆるセクタサーボ方式(埋め込みサーボ方式)とCDR(Constant Density Recording)方式を適用した場合であり、磁気ディスク媒体210の記録面上には、その中心から各トラックを渡って放射状に、複数のサーボ領域211が一定間隔で配置されている(サーボセクタ方式のフォーマット)。このサーボ領域211には、ヘッドの位置決め等に用いられるサーボデータが記録されている(埋め込まれている)。
【0010】
サーボ領域211間は、少なくとも1つ(一般には複数)のデータセクタ(物理セクタ、実セクタ)が配置されるユーザ領域(データ領域)212となっている。サーボ領域211と当該サーボ領域211に隣接するユーザ領域212とからなる領域は、サーボセクタ213と呼ばれる。図では、作図の都合上、サーボセクタ213の数(即ちサーボ領域211の数)が8となっているが、実際にはもっと多いのが一般的である(例えば50)。
【0011】
また、図10の磁気ディスク媒体210では、トラック(シリンダ)の物理的な周の長さが長くなる媒体210上の外周側の領域を有効に使用してディスクのフォーマット効率を上げるために、当該媒体210の記録面を半径方向に複数のゾーン“0”(Z0)〜“m”(Zm)に分割し、各ゾーン毎に、シリンダ(トラック)当たりのデータセクタ数が異なる(外周側のゾーンほど多くなる)構成、即ちデータ転送速度(転送レート)が異なる(外周側のゾーンのシリンダほど速くなる)構成をとっている(CDR方式)。ここで、1つのゾーン内の各シリンダのデータ転送速度は等しい。
【0012】
サーボ領域211は、図11(a)に示すように、信号の振幅を安定化するために一定の周波数のデータが記録されたAGC安定化領域(振幅AGC領域)211a、イレーズとサーボ領域識別用のサーボ検出パターン(サーボマークMK)と当該サーボ領域211(を持つサーボセクタ213)に固有のセクタ番号(サーボセクタ番号)を示すセクタデータとが記録されたセクタデータ領域211b、シリンダ番号を示すシリンダデータ(シリンダコード)が記録されたシリンダデータ領域211c、及び当該シリンダデータの示すシリンダ内でのヘッド位置を検出するためのバーストデータが記録されたバースト領域211dを有する。バースト領域211dに記録されるバーストデータは、例えば4つのバースト信号A,B,C,Dから構成されており、バースト信号AとBの組み合わせと、バースト信号CとDの組み合わせの一方を選択的に使用して図9中のヘッド270の位置決め制御が行われる。
【0013】
ユーザ領域212に配置されるデータセクタは、図11(b)に示すように、回転変動、回路の遅延等を吸収するための領域(GAP領域)212a、周波数の引き込み領域(PLO領域)212b、データ領域の始まりを示す領域(SYNC領域)212c、データ(例えば512バイトのデータ)が記録される領域(DATA領域)212d、及びDATA領域212dのデータに一定の生成多項式の演算を行うことで得られるエラー検出訂正用の情報(ECC情報)が記録される領域(ECC領域)212eからなる。
【0014】
図10の例のような、セクタサーボ方式+CDR方式のフォーマットの磁気ディスク媒体210においては、データセクタはトラック上に設定されたサーボ領域211とは無関係に配置されていくため、データセクタによってはサーボ領域211によって分割される状態が発生する。この状態はデータ(データセクタ)がスプリットした状態(データスプリット状態)と呼ばれ、セクタサーボ方式+CDR方式に特有な現象である。
【0015】
ここで、図9の磁気ディスク装置におけるサーボデータに基づくシーク・位置決め制御について述べる。
【0016】
まず、ヘッド270でサーボ領域211のデータ(サーボデータ)が読み取られたものとする。ヘッド270で読み取られたサーボデータ(リードデータ)はプリアンプ回路260で増幅され、更にリードライト回路250でAGCアンプによりー定の電圧に増幅された後、パルス化回路251でパルス化される。
【0017】
サーボ制御回路280内のサーボマーク検出回路281は、リードライト回路250内のパルス化回路251の出力(パルス化リードデータ)から、サーボ領域211中に記録されているサーボマークMKを検出し、サーボマーク検出信号SVGTDを出力する。
【0018】
サーボ制御回路280内のサーボデコーダ282は、上記サーボマーク検出信号SVGTDを基準に、サーボマークMKに続くセクタデータ(サーボセクタデータ)及びシリンダデータを取り込むためのタイミング信号であるサンプルウィンドウを生成し、上記パルス化リードデータの中から、このサンプルウィンドウ内のデータをシフトレジスタ(図示せず)に取り込む。このシフトレジスタに取り込まれたサーボセクタデータはそのままサーボセクタデータレジスタにセットされ、シリンダデータはグレイコードに変換されてシリンダデータレジスタ(いずれも図示せず)にセットされる。このサーボ制御回路280内の両レジスタの内容は、(ROM292に格納されている制御プログラムに従って、スピンドルモータの起動制御、サーボのシーク制御、位置決め制御、及びデータのフロー制御等を司る)CPU290によりCPUバス291を介して読み込まれる。
【0019】
一方、サーボ制御回路280内のサーボカウンタ(メインカウンタ)283は、上記サーボマーク検出信号SVGTDによりクリアされ、基準クロック(サーボクロック)でカウントを行う。バーストデコーダ284は、サーボカウンタ283のカウント値をデコードすることで、サーボ領域211内のバースト領域211dに記録されている各バースト信号A〜Dのピークホールドのタイミング信号(バーストタイミング信号)を生成し、リードライト回路250に出力する。
【0020】
リードライト回路250は、ー定の電圧に増幅されたリードデータに含まれているバースト信号A〜Dの振幅を、バーストデコーダ284からのバーストタイミング信号でピークホールドすることで、当該バースト信号A〜Dを抽出する。このバースト信号A〜DはCPU290のA/Dコンバータによりディジタル量に変換され、バーストデータBSTA〜BSTDとして当該CPU290に取り込まれる。
【0021】
CPU290は、サーボ制御回路280内のシリンダデータレジスタから読み込んだシリンダデータの示すシリンダ位置(現在のヘッド位置)と目標シリンダとの距離をもとに、(ヘッド270を磁気ディスク媒体210の半径方向に目標シリンダまで移動するのに必要な駆動力を与える)ボイスコイルモータ(VCM)に流す電流(VCM電流)を決める。そしてCPU290は、そのVCM電流に比例した電圧をボイスコイルモータ駆動用のドライバ(VCMドライバ)に与える。この制御を繰り返して、CPU290はヘッド270を目標シリンダに位置決めする。
【0022】
以上の動作(シーク動作)が完了すると、CPU290は位置決め動作に入る。即ちCPU290は、バーストデータBSTΑ〜BSTDを取り込んで、バーストデータBSTΑ,BSTΒの組、またはバーストデータBSTC,BSTDの組をもとに、ヘッド270の目標シリンダ(トラック)の中心からの位置誤差を計算し、その位置誤差がゼロになるようにボイスコイルモータを駆動制御するフィードバック制御を実行する。
【0023】
このようにして、ヘッド270が目標シリンダにシーク・位置決めされると、HDC230によるリードまたはライト動作、即ち目標シリンダ上のリードまたはライトの開始対象となるデータセクタ(開始データセクタ)から始まる、指定数のデータセクタを対象とするリードまたはライト動作が可能となる。
【0024】
ここで、開始データセクタの検出動作を、ライト時を例に述べる。
【0025】
今、開始データセクタのセクタ番号がLであるものとする。この場合、HDC230内のディスク制御回路233には、データセクタ番号がLの開始データセクタ(データセクタ“L”)が、どのサーボセクタ213(これを目標サーボセクタと呼ぶ)の何番目のデータセクタであるかの情報(開始データセクタ位置)がセットされている。この情報は、CPU290の計算により求められるもので、当該CPU290によりCPUバス291を介してセットされる。ここで、目標サーボセクタのセクタ番号がNであるものとする。
【0026】
ディスク制御回路263は、開始データセクタ“L”が存在するサーボセクタ213(サーボセクタ“N”)を探す。この処理は、サーボ制御回路280内のサーボデコーダ282で検出されてサーボセクタデータレジスタにセットされたセクタデータ、即ちサーボセクタ番号を、CPUインタフェース234を介してCPU290から受け取って、先にセットされている目標サーボセクタ“N”のサーボセクタ番号Nと比較回路にて比較することで行われる。
【0027】
例えば、開始データセクタ“L”が、サーボセクタ“N”内の2番目のデータセクタであるものとすると、ディスク制御回路233はまず、サーボセクタ“N”を探し、しかる後にデータセクタパルス生成回路(DSP生成回路)235によりデータセクタの始端のタイミングで出力されるデータセクタパルス(DSP)の数のカウントを開始し、2つ目のDSPをカウントした時点で、ライトゲート(リードの場合であればリードゲート)を開く。この状態でディスク制御回路233は、バッファ制御回路232を介してバッファメモリ240からデータを読み出し、ECC回路によりエラー検出訂正コードを付加してリードライト回路250に転送する。
【0028】
ここで、目標サーボセクタ及び開始データセクタの決定について図12を参照して説明する。
【0029】
まず、磁気ディスク媒体210の各トラック(シリンダ)上の各データセクタの番号は、管理の容易さのために、サーボセクタ番号が0のサーボセクタ213(サーボセクタ“0”)内の1番目のデータセクタから順番に,1,2,3…のように割り当てられるのが一般的である。この場合、シーケンシャルアクセスで、あるシリンダ“M”の最終データセクタをアクセスした後、次のシリンダ“M+1”の番号1のデータセクタをアクセスしようとすると、もしその1シリンダ分のシーク動作に最大pデータセクタ分の時間を要するならば、シーク完了時には、ヘッド270はシリンダ“M+1”の当該番号1のデータセクタから最大pデータセクタ分ずれた位置に移動するため、回転待ちが発生する。このpの値は、ゾーン毎に異なる。
【0030】
そこで従来は、この回転待ちを減らすために、シリンダ“M”の隣接シリンダ、例えばシリンダ“M+1”では、シリンダ“M”の例えば最終データセクタからpデータセクタ分ずらした直後にあるシリンダ“M+1”のデータセクタを番号1のデータセクタ、即ちシリンダ“M+1”の開始データセクタとして扱うようにしていた。このずれをスキュー(シリンダスキュー)と呼ぶ。図12は、開始データセクタの位置を4データセクタ分(p=4の場合)ずらした場合(実際には、もっと大きな値となる)、即ち1トラックスキュー分ずらした場合のシリンダスキューの例を示している。
【0031】
図12の例では、スキューなしの目標サーボセクタがサーボセクタ“N”、開始データセクタが当該サーボセクタ“N”の1番目データセクタであるものとすると、スキューを考慮した実際の目標サーボセクタは、4データセクタ分のスキューによりサーボセクタ“N+1”となり、開始データセクタは、当該サーボセクタ“N+1”の1番目のデータセクタとなる。
【0032】
このスキューを考慮した目標サーボセクタ及び開始データセクタの変換処理(即ちスキュー処理)と、その変換(スキュー処理)後の目標サーボセクタ及び開始データセクタ(目標サーボセクタ内の何番目のデータセクタであるかにより示される)の設定はCPU290により行われる。しかも、1サーボセクタ内のデータセクタ数は、同一ゾーンであってもデータスプリットの影響でサーボセクタによって異なり、スキュー処理が複雑となることから、スキュー処理に伴うCPU290の負荷が大きい。
【0033】
次に、上記DSP生成回路235へのCPU290からの情報設定動作と、当該DSP生成回路235によるDSP生成動作(セクタリング処理)について、図13を参照して説明する。
【0034】
まずCPU290は、サーボ制御回路280(内のサーボデコーダ282)により検出されてサーボセクタデータレジスタにセットされたサーボセクタ番号をCPUバス291を介して読み込む。
【0035】
次にCPU290は、読み込んだサーボセクタ番号により(図9中の)ROM292内の所定テーブル(DSP生成情報テーブル)を参照して、次のサーボセクタ番号のサーボセクタにおける最初のデータセクタの(当該サーボセクタ内のサーボマーク位置を基準とする)位置に対応したDSP位置(1st DSP位置)、データセクタの間隔に対応するDSP間隔、及び当該サーボセクタ内のデータセクタ数に対応したDSP数からなるDSP生成情報を読み込む。
【0036】
次にCPU290は、読み込んだDSP生成情報をDSP生成回路235内にセットする。
【0037】
DSP生成回路235はまず、サーボ制御回路280内のサーボマーク検出回路281からのサーボマーク検出信号SVGTDのタイミングで基準クロック(サーボクロック)によりカウント動作を開始し、CPU290により当該DSP生成回路235内に設定されたDSP生成情報中の1st DSP位置(最初のデータセクタ位置)に対応する数をカウントすると、最初のDSPを出力する。
【0038】
DSP生成回路235はDSPを出力する毎に、再度基準クロックによるカウント動作を開始し、上記設定されたDSP生成情報中のDSP間隔に対応する数をカウントすると、次のDSPを出力する動作を繰り返す。
【0039】
DSP生成回路235は、上記設定されたDSP生成情報中のDSP数に一致するDSP出力を行うと、一連のDSP出力動作を停止する。
【0040】
CPU290は、上記の(1st DSP位置、DSP間隔、DSP数からなる)DSP生成情報の読み込みとDSP生成回路235への設定動作を、サーボ制御回路280内のサーボデコーダ282でサーボセクタが検出される毎に、即ちサーボセクタ単位で行う。
【0041】
【発明が解決しようとする課題】
上記したように従来の磁気ディスク装置では、サーボ制御回路(以下、サーボブロックと呼ぶ)と、HDC(以下、コントローラブロックと呼ぶ)と、バッファメモリ(以下、メモリブロックと呼ぶ)とが、独立した集積回路素子から構成されており、その間は、バス、その他の入出力信号線で接続されていた。また、サーボブロックとコントローラブロックは、CPUのバス(CPUバス)を介して接続されており、CPUは、両ブロック間のデータ授受等をCPUバスを介して制御していた。
【0042】
このため、従来の磁気ディスク装置では、以下に列挙する問題があった。
【0043】
(1)サーボブロックとコントローラブロックのデータの授受にCPUが介在しておりパフォーマンスの低下の原因になっていた。特にスキュー処理では、CPUは、サーボブロックで検出されたサーボセクタ番号をサーボセクタデータレジスタから読み込み、それにスキュー分のデータセクタ数を加えたサーボセクタ内のデータセクタの位置がリードまたはライト動作の開始位置となるように、スキューを考慮した目標サーボセクタと当該サーボセクタ内の開始データセクタ位置とを算出してコントローラブロックに設定しなければならず、それに要する処理時間がパフォーマンス低下の原因の1つとなっていた。
【0044】
(2)データセクタパルス(DSP)の生成を、サーボセクタ毎にCPUが制御し、サーボブロックで検出されたサーボセクタ番号(サーボセクタデータ)をサーボセクタデータレジスタから読み込んで、当該サーボセクタ番号からデータパルスの生成に必要な情報(DSP生成情報)を生成してコントローラブロック内のデータセクタパルス生成回路に設定していたため、シーケンシャルアクセスのようにシーク時間が短い場合には、CPUの処理が間に合わなくなる恐れがあった。
【0045】
(3)バッファメモリとHDCとが互いに独立のチップ上に形成され、両者間は外部のメモリバスで接続されているため、バッフアメモリのバンド幅(アクセス速度)が制限されていた。
【0046】
(4)接続する信号線が多く、素子の数も多いため、実装効率が悪かった。
【0047】
本発明は上記事情を考慮してなされたものでその目的は、サーボブロック、コントローラブロック及びメモリブロックが同一チップ上に形成され、特にサーボブロック内で抽出されたサーボセクタのセクタ番号がコントローラブロックから直接参照可能な構成とすることで、処理の高速化とパフォーマンスの向上が図れる磁気ディスク装置用制御回路素子及び同制御回路素子を備えた磁気ディスク装置を提供することにある。
【0048】
本発明の他の目的は、サーボセクタ内に配置されている各データセクタ位置のタイミングを表すデータセクタパルスをデータセクタパルス生成回路にて生成するのに必要な情報が、CPUを介在することなく簡単に設定できる磁気ディスク装置用制御回路素子及び同制御回路素子を備えた磁気ディスク装置を提供することにある。
【0049】
本発明の更に他の目的は、シーケンシャルアクセスにおけるシリンダ間のスキュー処理が、CPUでの特別の計算を必要とすることなく簡単に且つ高速に行える磁気ディスク装置用制御回路素子及び同制御回路素子を備えた磁気ディスク装置を提供することにある。
【0050】
【課題を解決するための手段】
本発明の第1の観点に係る磁気ディスク装置用制御回路素子は、サーボブロック、メモリブロック、及びコントローラブロックを同一チップ上に集積化して構成され、上記サーボブロックには、ヘッドにより磁気ディスク媒体から読み取られたサーボデータのパルス化データからサーボセクタ番号及びシリンダ番号を抽出するサーボデコーダを持たせ、上記メモリブロックには、上記磁気ディスク媒体とホスト装置との間で転送されるデータを一時格納するためのデータ領域と、各サーボセクタに配置される各データセクタの位置に対応したタイミングのデータセクタパルス(DSP)を生成するのに必要なデータセクタパルス生成情報(DSP生成情報)を格納するためのデータセクタパルス生成情報領域(DSP生成情報領域)とが設定されたバッファメモリを持たせ、そして上記コントローラブロックには、上記サーボデコーダにより抽出されたサーボセクタ番号の示すサーボセクタ内に配置される各データセクタ位置のタイミングを示すDSPを、そのサーボセクタに対応したDSP生成情報をもとに出力するDSP生成回路(データセクタパルス生成回路)と、上記サーボデコーダにより抽出されたサーボセクタ番号を上記サーボブロックから入力して目標サーボセクタのセクタ番号と比較し、上記ヘッドが磁気ディスク媒体の目標シリンダ位置にシーク・位置決めされている状態で一致を検出した場合に、上記DSP生成回路から出力されるDSPの数をカウントして目標サーボセクタにおけるリードまたはライトの開始データセクタ位置を検出することで、ディスクリード動作またはディスクライト動作の開始タイミングを制御するディスク制御回路と、上記バッファメモリをアクセス制御するバッファ制御回路であって、上記サーボデコーダにより抽出されたサーボセクタ番号を上記サーボブロックから入力し、当該サーボセクタ番号の示すサーボセクタの次のサーボセクタに対応したDSP生成情報を上記バッファメモリのDSP生成情報領域から読み込んで上記DSP生成回路に設定するDSP生成情報ローダ(データセクタパルス生成情報ローダ)を内蔵するバッファ制御回路とを持たせたことを特徴とする。
【0051】
ここで、磁気ディスク媒体のディスクフォーマットに、セクタサーボ方式(埋め込みサーボ方式)のみを適用し、CDR方式は適用していない場合には、DSP生成情報は、対象となるサーボセクタのセクタ番号のみによって決まる。この場合、各サーボセクタ番号に対応したバッファメモリのDSP生成情報領域内のアドレスに、該当するサーボセクタ用のDSP生成情報を格納するならば、DSP生成情報ローダは、サーボブロック内のサーボデコーダによって抽出されたサーボセクタ番号から、当該セクタ番号の示すサーボセクタ用のDSP生成情報の格納先アドレスを生成するアドレス変換を行うことで、そのDSP生成情報を読み込むことができる。また、セクタサーボ方式とCDR方式とを併用している場合には、DSP生成情報は、対象となるサーボセクタのセクタ番号と当該サーボセクタが属するゾーンのゾーン番号との組み合わせによって決まることから、そのセクタ番号(サーボセクタ番号)とゾーン番号との組み合わせに対応したバッファメモリのDSP生成情報領域内のアドレスに、該当するサーボセクタ用のDSP生成情報を格納するならば、DSP生成情報ローダは、サーボブロック内のサーボデコーダによって抽出されたサーボセクタ番号とゾーン番号との組み合わせから、該当するサーボセクタ用のDSP生成情報の格納先アドレスを生成するアドレス変換を行うことで、そのDSP生成情報を読み込むことができる。
【0052】
このような構成の磁気ディスク装置用制御回路素子では、サーボブロック内のサーボデコーダにより抽出されたサーボセクタ番号を、コントローラブロック(具体的には、コントローラブロック内のディスク制御回路、バッファ制御回路に内蔵のDSP生成情報ローダ)が、磁気ディスク装置における(モータ起動制御、サーボのシーク・位置決め制御、データのフロー制御等を司る)CPUの介在なしに当該サーボブロックから直接入力することが可能となるため、処理の高速化を図ると共にCPUの負荷を減らすことが可能となる。
【0053】
また、DSP生成回路に対するサーボセクタ単位のDSP情報の設定が、DSP生成情報ローダによりCPUの介在なしで行えるため、この点からも処理の高速化を図ると共にCPUの負荷を減らすことが可能となる。
【0054】
また、メモリブロック内のバッファメモリと当該バッファメモリをアクセス制御するコントローラブロック内のバッファ制御回路とが同一チップ上に設けられており、従来のような外部のメモリバスを介してのアクセス制御とはならないことから、バッファメモリのアクセスが高速に行える。
【0055】
また、上記磁気ディスク装置用制御回路素子を使用した場合、磁気ディスク装置におけるプリント基板上での接続信号線数も少なくて済み、実装する素子も削減される。
【0056】
本発明の第2の観点に係る磁気ディスク装置用制御回路素子は、シリンダ間のスキューを、従来のディスクセクタ単位ではなくてシリンダ単位で設定する構成を適用し、上記第1の観点に係る磁気ディスク装置用制御回路素子におけるディスク制御回路に、シリンダスキュー操作前の目標サーボセクタのセクタ番号(スキューなし目標サーボセクタ番号)とサーボセクタ単位で設定されるシリンダスキュー値とを加算してシリンダスキューを考慮した目標サーボセクタのセクタ番号を生成するスキュー処理回路を設けたことを特徴とする。
【0057】
このような構成では、シーケンシャルアクセスの場合には、(1)スキューなし目標サーボセクタ番号は、隣接シリンダへのシーク直前のサーボセクタの次のサーボセクタのセクタ番号であり、(2)加算するスキュー値は1シリンダシークのずれ量であって固定値であり、(3)(キューを考慮した)目標サーボセクタ内の開始データセクタ位置は、そのサーボセクタ内の最初のデータセクタ位置となって固定であることから、これらの情報を設定するのにCPUは計算処理は何も必要なく、またスキューの加算処理もCPUは行う必要がないため、この点でも、処理の高速化が可能となる。
【0058】
【発明の実施の形態】
以下、本発明の実施の形態につき図面を参照して説明する。
【0059】
図1は本発明の一実施形態に係る磁気ディスク装置の全体構成を示すブロック図であり、図9と同一部分には同一符号を付してある。
【0060】
図1の磁気ディスク装置の特徴は、図9中のサーボ制御回路280(サーボブロック)、バッファメモリ240(メモリブロック)、及びHDC230(コントローラブロック)代えて、サーボブロック、メモリブロック、及びコントローラブロックの機能が1チップに集積化された制御回路(磁気ディスク装置用制御回路素子)10を備えていることである。
【0061】
なお、本実施形態では、図9の磁気ディスク装置と同一CPUが用いられているが、当該CPUの処理が軽減されていることから、図9とは異なる符号(30)を付してある。このCPUの処理の違いは、制御プログラムの違いによるものであるが、当該制御プログラムを格納したROMには、説明の都合上、図9と同一符号(292)を付してある。
【0062】
制御回路10は、サーボブロック11、メモリブロック12、及びコントローラブロック13の3ブロックに大別される。
【0063】
サーボブロック11は、図2に示すように、サーボマーク検出回路111、サーボデコーダ112、サーボカウンタ113、バーストデコーダ114、サーボセクタデータレジスタ115、シリンダデータレジスタ116、及びフォルト検出回路117を含む。
【0064】
サーボマーク検出回路111は、図1中のリードライト回路250内のパルス化回路251の出力、即ちヘッド270により磁気ディスク媒体210から読み取られてプリアンプ回路260で増幅され、更にリードライト回路250でー定の電圧に増幅された後にパルス化されたデータ(パルス化リードデータ)から、図11に示したサーボ領域211(内のセクタデータ領域211b)中のサーボマークMKを検出して、サーボマーク検出信号SVGTDを出力するデコーダである。
【0065】
磁気ディスク媒体210のディスクフォーマットは、法が異なる点を除けば、図9中の磁気ディスク媒体210と同様であり、必要があれば図10及び図11を参照されたい。即ち磁気ディスク媒体210はセクタサーボ方式とCDR方式を適用しており、その記録面上には、図10に示したように、その中心から各トラックを渡って放射状に、複数のサーボ領域211が一定間隔で配置されている。サーボ領域211間は、少なくとも1つのデータセクタ(ここでは複数のデータセクタ)が配置されるユーザ領域212となっている。磁気ディスク媒体210の記録面は半径方向に複数のゾーン“0”(Z0)〜“m”(Zm)に分割され、各ゾーン毎に、シリンダ(トラック)当たりのデータセクタ数が異なる構成となっている。
【0066】
サーボデコーダ112は、サーボマーク検出回路111からのサーボマーク検出信号SVGTDを基準に、サーボ領域211内のセクタデータ領域211b中のサーボマークMKに続くセクタデータ(サーボセクタデータ)及び、次のシリンダデータ領域中のシリンダデータを取り込むためのタイミング信号であるサンプルウィンドウを生成する。サーボデコーダ112はまた、リードライト回路250内のパルス化回路251から出力されるパルス化リードデータの中から、このサンプルウィンドウ内のデータを切り出して、サーボセクタデータ(サーボセクタ番号)及びシリンダデータ(シリンダ番号)を抽出する。サーボデコーダ112はシフトレジスタ(図示せず)を内蔵しており、抽出したサーボセクタデータ及びシリンダデータは当該シフトレジスタに順にシリアル入力される。シフトレジスタに入力されたサーボセクタデータはそのままサーボセクタデータレジスタ115にセットされ、シリンダデータはグレイコードに変換されてシリンダデータレジスタ116にセットされる。
【0067】
サーボカウンタ113は、サーボ制御のタイミングを決定するための基本的なカウンタ(メインカウンタ)であり、上記サーボマーク検出信号SVGTDによりクリアされ、サーボPLL回路138からの基準クロック(サーボクロック)SVCLKでカウントを行う。
【0068】
バーストデコーダ114は、サーボカウンタ113のカウント値をデコードすることで、サーボ領域211内のバースト領域211dに記録されている各バースト信号A〜Dのピークホールドのタイミング信号(バーストタイミング信号)を生成し、リードライト回路250に出力する。
【0069】
フォルト検出回路117は、予め定められた各種のフォルト信号を入力し、そのうちのいずれか1つが真になると、リードライト回路250のライトチャネルの動作を停止させて、異常状態で磁気ディスク媒体210へのライト動作が行われて既存のデータが破壊されるのを防止すると共に、後述するディスク制御回路133にフォルトを通知してライトゲートを閉じさせる。ここで適用されるフォルト信号には、磁気ディスク装置に所定値異常の衝撃が加わったことが検出された場合に出力される衝撃検出信号、電源電圧異常が検出された場合に出力される電源電圧異常検出信号、ヘッド270の異常が検出された場合に出力されるヘッドアンセーフ信号等がある。
【0070】
次にメモリブロック12は、例えばDRAMにより構成されたバッファメモリ120を有している。このバッファメモリ120は、コントローラブロック13内のホストインタフェース131と磁気ディスク媒体210(を対象とするリード/ライトをプリアンプ回路260、ヘッド270を介して行うリードライト回路250)との間で転送されるデータ(リードデータまたはライトデータ)を一時格納するためのバッファメモリ部をなすデータ領域121と、ディフェクト情報領域122と、DSP(データセクタパルス)生成情報領域123とに分割して管理される。
【0071】
ディフェクト情報領域122は、磁気ディスク媒体210の各シリンダについて、リードまたはライト時にスキップすべき欠陥(ディフェクト)データセクタ位置を各サーボセクタ毎に示すディフェクト情報を格納するのに用いられる。このディフェクト情報は、例えば磁気ディスク媒体210の特定領域に保存されていて、立ち上げ時にCPU30のメモリ(RAM)に読み込まれるものであるが、本実施形態ではこの際に、バッファメモリ120のディフェクト情報領域122にも格納するようにしている。このようにディフェクト情報領域122にディフェクト情報を格納しておくことで、目標シリンダにシーク・位置決めしてリードまたはライトを行う場合に、対応するディフェクト情報をディフェクト情報領域122からディスク制御回路133内に読み込んで、リードまたはライトの対象範囲にディフェクトデータセクタがあるか否かをチェックし、ディフェクトデータセクタがある場合には、その位置をスキップ対象として設定する動作を、CPU30の介在なくして行うことができる。このスキップ位置設定と、そのスキップ位置設定に基づくスキップ動作の詳細は本発明に関係しないため説明を省略する。
【0072】
DSP生成情報領域123は、磁気ディスク媒体210上の各サーボセクタ213単位で設定される、DSP(データセクタパルス)生成のタイミングに関する情報(DSP生成情報)を、各サーボセクタ毎で且つ各ゾーン別に格納しておくのに用いられる。ここで、1つのDSP生成情報は、該当するゾーンの該当するサーボセクタ213内に配置されている最初のデータセクタ位置に対応したDSPの出力位置(1st DSP位置)をサーボクロックSVCLK数で示す1バイト情報と、データセクタの間隔に対応したDSPの間隔をサーボクロックSVCLK数で示す1.5バイト(12ビット)情報と、当該サーボセクタ213内のデータセクタ数に対応したDSPの数を示す4ビット(0.5バイト)情報から構成される3バイト情報である。
【0073】
このため、DSP生成情報領域123は、3番地分の領域を単位に分割して管理され、各ゾーンと各サーボセクタの組み合わせで特定される各3番地分の領域(3バイト領域)毎に、それぞれ対応するDSP生成情報が格納される。このDSP生成情報領域123には、例えば50サーボセクタ、10ゾーンの装置では、50×10×3=1500バイトが必要となる。但し実際には、DSP生成情報は1つのゾーン内で循環することが多いため、半分以下の容量で済む可能性が高い。
【0074】
図3に、各ゾーンと各サーボセクタの組み合わせに対するDSP生成情報領域123内の各3バイト領域(の先頭位置を示すバッファメモリ120のアドレス)の割り当て例を示す。図中のアドレスの末尾の“H”は16進表現であることを示す。
【0075】
ここでは、各3バイト領域の第1バイトには、3バイトのDSP生成情報中の1st DSP位置(を示す1バイト情報)が、第2バイトには、DSP間隔(を示す1.5バイト情報中)の下位1バイトが、第3バイトには、DSP数(を示す4ビット情報)及びDSP間隔(を示す1.5バイト情報中)の上位4ビットからなる1バイトが、それぞれ格納される。
【0076】
通常、上記のDSP生成情報は、CPUバス291に接続されたROM292内に、DSP生成情報テーブル293として予め格納されている(図1参照)。本実施形態では、このDSP生成情報テーブル293の内容(DSP生成情報)を立ち上げ時に上記のアドレス割り当て形態でバッファメモリ120のDSP生成情報領域123にロードするようにしている。
【0077】
コントローラブロック13は、ホストインタフェース131、バッファ制御回路132、ディスク制御回路133、CPUインタフェース134、DSP生成回路(データセクタパルス生成回路)135、ディスクFIFO136、ECC回路137、及びクロック生成回路138を含む。
【0078】
ホストインタフェース131は、所定のインタフェースで規定されたタイミング及びプロトコルに従い、ホスト装置との間のデータ及びコマンドの授受を行う。このホストインタフェース131は、バッファメモリ120とホスト装置との間のデータ転送における転送速度の違いを吸収するための図示せぬFIFO(ホストFIFO)を有している。またホストインタフェース131は、コマンドの解読を行うコマンドデコーダ、インタフェースタイミングの生成回路(いずれも図示せず)も有している。
【0079】
バッファ制御回路132は、メモリバス14によりメモリブロック12内のバッファメモリ120と接続されており、当該メモリバス14を介してバッファクロックBFCLKに従うバッファメモリ120のアクセスを制御する。このバッファ制御回路132の制御により処理されるデータの移動は、実際には、ディスクFIFO136とバッファメモリ120との間、及びホストインタフェース131内のホストFIFOとバッファメモリ120との間で行われる。
【0080】
バッファ制御回路132には、サーボブロック11内のサーボセクタデータレジスタ115と接続されるDSP生成情報ローダ132aが設けられている。DSP生成情報ローダ132aは、CPU30から与えられるヘッド270が位置するゾーン(の情報)と、サーボセクタデータレジスタ115に保持されたサーボセクタデータ、即ちヘッド270が位置する当該ゾーン内のサーボセクタを示すサーボセクタ番号(の情報)とから、次のサーボセクタに対応するDSP生成情報が格納されているバッファメモリ120のDSP生成情報領域123内の3バイト領域のアドレス(開始アドレス)を生成して当該メモリブロック12をリードアクセスし、対応するDSP生成情報を読み込んでコントローラブロック13内のDSP生成回路135にロードする。
【0081】
ディスク制御回路133は、リードライト回路250、プリアンプ回路260を介して行われる磁気ディスク媒体210を対象とするリードまたはライトのタイミングを制御する。
【0082】
ディスク制御回路133は、サーボブロック11内のサーボセクタデータレジスタ115と接続されて、当該レジスタ115の内容を直接参照できるようになっている。ディスク制御回路133は、CPU30の制御によるシーク・位置決めが完了してリードまたはライトが可能となると(具体的には、リード実行フラグまたはライト実行フラグがセットされると)、目標サーボセクタをサーチする動作を行う。これは、サーボセクタデータレジスタ115を監視して、当該レジスタ115に目標サーボセクタのセクタ番号に一致するサーボセクタ番号が保持されるのを待つという動作となる。
【0083】
ディスク制御回路133は、コントローラブロック13は、サーボセクタデータレジスタ115に目標サーボセクタのセクタ番号に一致するサーボセクタ番号が保持されたことを検出すると、DSP生成回路135から出力されるDSPの数をカウントし、開始データセクタ位置に対応するDSPの数をカウントすると、リードゲートまたはライトゲートを開く。リードの場合は、リードライト回路250内のリードチャネルがデータを再生する。
【0084】
CPUインタフェース134は、CPU30とコントローラブロック13との間のデータ授受等を行う。
【0085】
DSP生成回路135は、サーボブロック11内のサーボデコーダ112によりサーボセクタが検出される毎に、バッファ制御回路132内のDSP生成情報ローダ132aによりバッファメモリ120内のDSP生成情報領域123から読み込まれてロードされる、次のサーボセクタに対応するDSP生成情報をもとに、当該次のサーボセクタ内に配置される各データセクタの位置に対応したDSPを生成出力する。
【0086】
ECC回路(エラー検出訂正回路)137は、ライト時には、バッファ制御回路132によりバッファメモリ120内のデータ領域121から読み出されたライトデータが、ディスクFIFO136を介してディスク制御回路133内のシフトレジスタ(図示せず)に入力されてリードライト回路250に出力されるまでの間に、ECCコード(エラー検出訂正コード)を生成して、当該コードを1データセクタ分のライトデータ(通常512バイト)の後ろに付加する。また、このライトデータの前には、同期用のデータ(PLO領域)、シンクバイト領域(SYNC領域)のデータ等がディスク制御回路133により付加され、連続してリードライト回路250に送られる。
【0087】
これに対してリード時には、ECC回路137は、磁気ディスク媒体210から読み出されてリードライト回路250により復号されたリードデータがディスク制御回路133内のシフトレジスタにシフト入力されてから、バッファ制御回路132の制御のもとで、ディスクFIFO136を介してバッファメモリ120内のデータ領域121に転送し終えるまでのデータ移動の間に、ECCチェックを行う。ECC回路137は、エラーを検出した場合には訂正可否を判断し、可能であれば、バッファメモリ120内のデータ領域121のデータを対象とする訂正処理を行う。ECC回路137は、この訂正処理を、次のデータセクタのデータがバッファメモリ120に書き込まれる前に完了させる。
【0088】
クロック生成回路138は、CPU30から与えられる基準のクロックCLKをもとにサーボクロックSVCLKを生成出力するサーボPLL回路138aと、同じく基準クロックCLKをもとにバッファクロックBFCLKを生成出力するバッファPLL回路138bとの2つの位相ロックループ回路(シンセサイザ)からなる。
【0089】
以上の構成において、制御回路10のコントローラブロック13内のディスク制御回路133によるリードまたはライト時の基本的な処理の手順は次の通りである。この処理は、シーケンサ512(図5参照)によってファームウェア(FW)に従って行われる。
【0090】
まずディスク制御回路133(内のシーケンサ512)は、立ち上げ時には、動作モード、データセクタ内のデータフィールドの開始バイト数、シンクバイトの定義など、データフォーマットに関する初期設定を予め行う。また、ホスト装置からのコマンドの実行開始時には、エラー訂正を適用するか否か、エラーストップモードなどを表すデータ転送の属性、データ転送を開始するバッファメモリ120(内のデータ領域121)のアドレス位置、転送長の制御レジスタ(図示せず)への初期設定を行う。
【0091】
このコマンド実行開始時の初期設定の後、ホスト装置の要求したディスクアクセスの論理アドレス(要求アドレス)からCPU30により求められた目標シリンダ(の番号)が目標シリンダレジスタ(図示せず)にセットされ、目標シリンダにシークするためのシーク制御が(サーボブロック11を利用して)CPU30により行われる。
【0092】
次にディスク制御回路133はディスクFIFO136を初期化し、バッファ制御回路132によるディスクFIFO136とバッファメモリ120との間のデータ転送を起動する。ここでディスク制御回路133は、ライトの場合であれば、ディスクFIFO136に予めデータ(ライトデータ)を準備しておく。バッファ制御回路132は、転送できるデータがバッファメモリ120内(のデータ領域121)にあれば、当該バッファメモリ120からディスクFIFO136へのデータ転送を開始し、データがなければ、ホスト装置からのデータを待つ。またバッファ制御回路132は、ディスクFIFO136が満杯(FULL)になれば、当該ディスクFIFO136からデータが送出されるのを待つ。
【0093】
次にディスク制御回路133では、目標シリンダ内でのリードまたはライトの開始対象となる目標サーボセクタのセクタ番号と、当該目標サーボセクタ内でのリードまたはライトの開始対象となる開始データセクタの位置(目標サーボセクタ内の何番目のデータセクタかを示す情報)と、目標シリンダ内でのリードまたはライトの対象データセクタ数が設定される。
【0094】
ここで、ディスク制御回路133における目標サーボセクタのセクタ番号及び開始データセクタ位置の設定について述べる。
【0095】
通常、CPU30は、ホスト装置の要求アドレス(論理アドレス)を物理アドレスに変換して、ヘッド、シリンダ、データセクタの各アドレスを求める。次に、CPU30は、リードまたはライトを開始すべきデータセクタ(開始データセクタ)が、どのサーボセクタに属するかを計算により求め、更に、そのサーボセクタ内の何番目のデータセクタとなるか(開始データセクタ位置)を計算により求めている。したがって、開始データセクタ位置の設定には時間を要する。従来、この計算は、シーケンシャルアクセス(シーケンシャルシーク)でも、ランダムアクセス(ランダムシーク)でも同じように行われており、ほぼ同じ計算時間を要していた。特に従来は、データセクタ単位でスキューを設定していたために[従来の技術]の欄で述べたようにスキュー処理が複雑となり、1シリンダ分のシークが行われるシーケンシャルアクセス、即ちシーク時間が短いシーケンシャルシークでは、CPU30の計算処理が間に合わなくなる恐れがあった。
【0096】
そこで本実施形態では、従来のデータセクタ単位のスキュー値設定(図12参照)とは異なって、図4に示すように、サーボセクタ単位のスキュー値設定を行うようにしている。このスキュー値設定は、隣接するシリンダにシークしてリードまたはライトする場合に、そのリードまたはライトの開始データセクタ位置は、対象となるサーボセクタ内の最初のデータセクタ位置となることを示す。つまり、次のシリンダのサーボセクタの位置を求めれば、開始対象となるデータセクタは、そのサーボセクタ内の最初のデータセクタであるため、計算する必要がないということである。隣接シリンダ間のスキュー値は、各ゾーンに無関係に一定である。図4の例では、シリンダ間のスキュー値は作図の都合で1サーボセクタ分としているが、実際にはそれより多く、例えば5サーボセクタ分である。
【0097】
シーケンシャルアクセスは、ホスト装置から要求されたリードまたはライトの対象データセクタ数が多く、複数シリンダ(トラック)にまたがるリードまたはライトとなる場合に発生する。この場合、ホスト装置からのディスクアクセス要求は、CPU30により各シリンダ単位の要求に分割され、各シリンダ毎に、そのシリンダが目標シリンダとして設定されて、そのシリンダへのシーク動作が行われる。
【0098】
最初の目標シリンダへのシーク(ランダムシーク)に際しては、当該目標シリンダ、当該目標シリンダにおける(スキューを考慮しない)目標サーボセクタ並びに当該目標サーボセクタ内の開始データセクタ位置、及びスキュー値が、ホスト装置からの要求アドレスをもとにCPU30にて計算される。
【0099】
これに対し、後続の目標シリンダへのシーク(1シリンダシーク、即ちシーケンシャルシーク)に際しては、当該目標シリンダは現在ヘッド270が位置しているシリンダの次のシリンダであり、当該目標シリンダにおける(スキューを考慮しない)目標サーボセクタは、現在ヘッド270が位置しているサーボセクタ(1シリンダシーク開始前にヘッド270が位置しているサーボセクタ)の次のサーボセクタであり、開始データセクタ位置はサーボセクタ内の最初のデータセクタの位置であり、サーボセクタ単位のスキュー値は固定値(図4の例では1)であることから、CPU30での計算は不要である。
【0100】
さて、サーボ単位のスキュー値設定を適用すると、スキューを考慮した目標サーボセクタを求める操作が、単にスキューを考慮しない目標サーボセクタ番号(スキューなし目標サーボセクタ番号)にスキュー値を加算するだけで済むため、簡単にハードウェア化可能となる。本実施形態では、このハードウェア回路であるスキュー処理回路133aをディスク制御回路133に設けている。なお、スキュー値は、シーケンシャルアクセスにおけるシーク動作(シーケンシャルシーク)の場合には、1シリンダ分のずれ量となるため固定であるが、ランダムアクセスにおけるシーク動作(ランダムシーク)の場合には、そのシークシリンダ数分だけスキュー量が加えられていくために計算が必要となる。しかし、ランダムシークではシーク時間も長いため、計算が間に合わなくなる恐れはない。
【0101】
図5は、ディスク制御回路133内の主要部の構成を、当該ディスク制御回路133内のスキュー処理回路133aの内部構成と共に示す。
【0102】
スキュー処理回路133aは、レジスタ501,502及び加算器503から構成される。
【0103】
レジスタ(第1の目標サーボセクタ番号レジスタ)501には、ホスト装置の要求アドレスからCPU30により求められた、目標シリンダにおけるスキューなし目標サーボセクタのセクタ番号(第1の目標サーボセクタ番号)が当該CPU30によってセットされる。なお、シーケンシャルシーク(隣接シリンダへのシーク)が行われる場合には、シーク直前のサーボセクタの次のサーボセクタがスキューなし目標サーボセクタ番号となり、CPU30での計算は行われない。
【0104】
レジスタ(スキュー値レジスタ)502には、スキュー値がCPU30によってセットされる。このスキュー値は、シーケンシャルアクセスの場合には、一定値(図4の例では1サーボセクタ分、即ち1)である。このとき、スキューを考慮した目標サーボセクタにおいて最初にリードまたはライトすべきデータセクタ(開始データセクタ)の位置(目標サーボセクタ内の何番目のデータセクタかを示す情報)がCPU30によってレジスタ(開始データセレクタ位置レジスタ)509にセットされる。このレジスタ509にセットされる値は、シーケンシャルアクセスの場合には、目標サーボセクタ内の最初のデータセクタを示す1(固定値)であり、CPU30での計算は不要である。
【0105】
以上のレジスタ501,502,509へのセット動作は、CPU30により例えば目標シリンダ位置へのシーク開始時に行われる。
【0106】
加算器503はレジスタ501,502の設定値を加算する。この加算器503の加算結果は、スキューを考慮した、実際のアクセス対象サーボセクタ(目標サーボセクタ)のセクタ番号として、レジスタ(第2の目標サーボセクタ番号レジスタ)504にセットされる。したがって、図3において、セクタ番号がNのサーボセクタ(サーボセクタ“N”)がスキューなしの目標サーボセクタであった場合には、レジスタ504にはサーボセクタ“N+1”を示すセクタ番号N+1がセットされることになる。
【0107】
レジスタ504の出力は、比較器505の一方の入力に接続されている。この比較器505の他方の入力には、図1中のサーボブロック11内に設けられているサーボセクタデータレジスタ115の出力が接続されている。比較器505は、CPU30の制御によるシーク・位置決めが完了してリードまたはライトが可能となると(具体的には、リード実行フラグまたはライト実行フラグがセットされると)比較可能状態となり、レジスタ504の値、即ち(スキューを考慮した)目標サーボセクタのセクタ番号と、シーク動作に応じて変化するレジスタ115の値、即ちサーボデコーダ112によって検出された、現在ヘッド270が位置しているサーボセクタ213のセクタ番号とを比較する。そして比較器505は、レジスタ115の値がレジスタ504の値に一致するようになると、サーボセクタ一致検出信号506を出力する。
【0108】
比較器505からサーボセクタ一致検出信号506が出力されるとフリップフロップ(F/F)507がセットされ、目標サーボセクタが検出されたことが示される。
【0109】
すると、DSPカウンタ508が起動され、DSP生成回路135から出力されるDSPの数のカウントを開始する。このDSP生成回路135は、ヘッド270が位置しているサーボセクタ213におけるサーボマークMKの位置(サーボマーク検出信号SVGTDのタイミング)を基準に、当該サーボセクタ213内に配置されている各データセクタの位置に対応したタイミングでDSP(データセクタパルス)を出力するものであり、その構成並びに動作の詳細については後述する。
【0110】
比較器510は、レジスタ509の設定値(開始データセクタが目標サーボセクタ内の何番目のデータセクタであるかを示す値)とDSPカウンタ508のカウント値とを比較しており、DSPカウンタ508がレジスタ509の設定値に一致する数のDSPをカウントすると、開始データセクタが検出されたことを示すデータセクタ一致検出信号511をシーケンサ512に出力する。するとシーケンサ512は、リードの場合であればリードゲート(RG)を、ライトの場合であればライトゲート(WG)を開く。これによりディスクリードまたはディスクライト動作が開始される。
【0111】
このとき、DSP生成回路135からのDSPの数をカウントする動作がDSPカウンタ508と同様のカウンタ(図示せず)で開始される。そして、CPU30により指定されたリードまたはライトの対象データセクタ数分のDSPがカウントされると、即ちリードまたはライトの対象データセクタ数分のリードまたはライト動作が行われると、シーケンサ512によりリードゲート(RG)またはライトゲート(WG)が閉じられ、リードまたはライト動作が停止する。
【0112】
ここで、ディスクデータのリードまたはライトにおけるデータ転送は、シーケンサ512の制御のもとでバッファ制御回路132と協同して行われる。その際の具体的動作は、本発明に直接関係しないため説明を省略する。
【0113】
図6に、DSP生成回路135とその周辺の回路とのDSP生成に関する接続関係を示す。この図6では、CPU30が目標シリンダ位置にシーク・位置決めを行った後に、制御回路10(内のコントローラブロック13)に対してセクタリング開始をゾーン番号と共に指定するだけで、制御回路10内で自動的にDSPが生成される様子が示されている。
【0114】
CPU30は目標シリンダ位置にシーク・位置決めを行うと、制御回路10内のコントローラブロック13にセクタリング開始をゾーン番号と共に指定する。するとバッファ制御回路132内のDSP生成情報ローダ132aが起動される。
【0115】
DSP生成情報ローダ132aは、サーボブロック11内のサーボデコーダ112によりヘッド270が位置するサーボセクタが検出されて、そのセクタ番号がサーボセクタデータレジスタ115に保持される毎に、当該レジスタ115に保持されたセクタ番号(サーボセクタ番号)とCPU30から指定されたゾーン番号で決まるバッファメモリ120のDSP生成情報領域123内の3バイト領域から、次のサーボセクタに対応したDSP生成情報を読み込んでDSP生成回路135にロードする。
【0116】
するとDSP生成回路135は、DSP生成情報ローダ132aによりロードされたDSP生成情報の示すタイミングで、サーボセクタデータレジスタ115に保持されたセクタ番号の示すサーボセクタの次のサーボセクタ内に配置される各データセクタの位置に対応したDSPを生成出力する。
【0117】
この制御回路10におけるDSP生成に関する各部の構成の詳細を図7に示す。
【0118】
図7において、(リードライト回路250からの)パルス化されたリードデータからサーボデコーダ112によりサーボマーク検出信号SVGTDに応じてサーボセクタ番号(サーボセクタデータ)が検出される毎に、そのサーボセクタ番号はサーボセクタデータレジスタ115にセットされる。サーボセクタデータレジスタ115にセットされたサーボセクタ番号は、CPU30により指定されたゾーン番号と共にバッファ制御回路132内のDSP生成情報ローダ132aに導かれる。
【0119】
DSP生成情報ローダ132aは、アドレス変換回路132b及びロード回路132cから構成される。
【0120】
アドレス変換回路132bは、ゾーン番号とサーボセクタデータレジスタ115にセットされているサーボセクタ番号から、次のサーボセクタに対応したDSP生成情報が格納されているバッファメモリ120内のDSP生成情報領域123における3バイト領域のアドレスを生成する。
【0121】
DSP生成情報ローダ132aは、このアドレスによりバッファメモリ120をリードアクセスして、そのアドレスから始まる3番地分の領域(3バイト領域)のデータ(DSP情報)を順次読み込む。ここで、3番地分の領域の第1バイトには1st DSP位置を示す1バイト情報が、第2バイトにはDSP間隔を示す1.5バイト(12ビット)情報の下位1バイト(8ビット)が、そして第3バイトにはDSP数を示す4ビット情報及びDSP間隔を示す1.5バイト情報の上位4ビット(0.5バイト)からなる1バイト情報が格納されている。
【0122】
ロード回路132cは、上記3番地分の領域から最初に読み込まれた1バイト情報(1st DSP位置を示す1バイト情報)をDSP生成回路135内のレジスタ(1st DSP位置レジスタ)701に、次に読み込まれた1バイト情報(1st DSP位置を示す1.5バイト情報の下位1バイト)及び最後に読み込まれた1バイト情報中の下位4ビット(DSP間隔を示す1.5バイト情報の上位4ビット)からなる1.5バイトをレジスタ(DSP間隔レジスタ)702に、そして最後に読み込まれた1バイト情報中の上位4ビット(DSP数を示す4ビット情報)をレジスタ(DSP数レジスタ)703に、順次ロードする。
【0123】
まず、DSP生成回路135に設けられているDSP生成用のカウンタ705及び生成DSP数計数用のカウンタ706は、サーボブロック11内のサーボマーク検出回路281からのサーボマーク検出信号SVGTDのタイミングでクリアされる。このとき、DSP生成回路135内のロード回路704は、上記サーボマーク検出信号SVGTDのタイミングで、レジスタ701の内容(1st DSP位置)をカウンタ705に、レジスタ703の内容(DSP数)をカウンタ706に、それぞれロード(プリセット)する。このサーボマーク検出信号SVGTDのタイミングは、現在サーボセクタデータレジスタ115にセットされているサーボセクタ番号の示すサーボセクタの次のサーボセクタ(内のサーボ領域211のセクタデータ領域211bに記録されているサーボマークMK)の位置に対応する。
【0124】
カウンタ705は、(クロック生成回路138内のサーボPLL回路138aからの)サーボクロックSVCLKに応じてカウント動作(ここではダウンカウント動作)を行い、レジスタ701の示す値(1st DSP位置)をカウントするとボロー信号を出力する。このボロー信号はDSPとして用いられる。この場合のDSPの出力タイミングは、現在サーボセクタデータレジスタ115にセットされているサーボセクタ番号の示すサーボセクタの次のサーボセクタ内の最初のデータセクタの位置に一致する。このカウンタ705からのDSP(ボロー信号)は、カウンタ706のクロック及びロード回路704に対するDSP間隔ロード要求信号として用いられる。
【0125】
そこでロード回路704は、カウンタ705からDSPが出力される毎に、レジスタ702の内容(DSP間隔)を当該カウンタ705にロードする。これによりカウンタ705はダウンカウント動作を再開し、今度はレジスタ702の示す値(DSP間隔)をカウントするとDSPを出力する。
【0126】
このようにしてカウンタ705では、サーボマーク検出信号SVGTDに応じてクリアされてから最初のDSPが出力された後は、DSP間隔をカウントする毎にDSPを出力する動作が繰り返される。このDSPが繰り返し出力されるタイミングは、現在サーボセクタデータレジスタ115にセットされているサーボセクタ番号の示すサーボセクタの次のサーボセクタ内の2番目以降の各データセクタの位置に一致する。
【0127】
一方、カウンタ706はカウンタ705から出力されるDSPの数をカウントする。そしてカウンタ706は、レジスタ703の示す値(DSP数)をカウントするとボロー信号を出力する。カウンタ705はこの信号によりクリアされ、これによりDSP生成回路135でのDSP生成動作は停止する。このDSP生成動作が再開されるのは、次のサーボセクタ(のサーボ領域211)からサーボマーク検出回路112によりサーボマークMKが検出された際である。
【0128】
このように本実施形態においては、サーボブロック11内のサーボマーク検出回路111からサーボマーク検出信号SVGTDが出力される毎に、即ちサーボセクタが検出される毎に、そのサーボセクタ内に配置される各データセクタの位置に対応したタイミングでDSPがDSP生成回路135から出力される動作が、CPU30によるサーボセクタ単位のDSP生成情報読み込みと、そのDSP生成情報の設定動作を必要とすることなく、自動的に行われる。
【0129】
以上に述べた図1の構成の磁気ディスク装置における全体の動作を説明する。
【0130】
まず、ヘッド270で磁気ディスク媒体210上のサーボ領域211のデータ(サーボデータ)が読み取られたものとする。ヘッド270で読み取られたサーボデータ(リードデータ)はプリアンプ回路260で増幅され、更にリードライト回路250でAGCアンプによりー定の電圧に増幅された後、パルス化回路251でパルス化されて、制御回路10内のサーボブロック11に送られる。
【0131】
サーボブロック11内のサーボマーク検出回路111は、リードライト回路250内のパルス化回路251の出力(パルス化リードデータ)から、サーボ領域211内のセクタデータ領域211b中に記録されているサーボマークMKを検出し、対応する検出信号(サーボマーク検出信号)SVGTDを出力する。
【0132】
サーボブロック11内のサーボデコーダ112は、サーボマーク検出回路111からのサーボマーク検出信号SVGTDを基準に、サーボマークMKに続くセクタデータ(サーボセクタデータ)及びシリンダデータを取り込むためのタイミング信号であるサンプルウィンドウを生成し、上記パルス化リードデータの中から、このサンプルウィンドウ内のデータをを切り出して、サーボセクタデータ(サーボセクタ番号)及びシリンダデータ(シリンダ番号)を抽出する。ここで抽出されたサーボセクタデータはそのままサーボセクタデータレジスタ115にセットされ、シリンダデータはグレイコードに変換されてシリンダデータレジスタ116にセットされる。このサーボブロック11内の両レジスタ115,116の内容(サーボセクタデータ及びシリンダデータ)はCPU30によりCPUバス291を介して読み込まれる。
【0133】
一方、サーボブロック11内のサーボカウンタ113は、上記サーボマーク検出信号SVGTDによりクリアされ、サーボPLL回路138aからの基準クロック(サーボクロック)SVCLKでカウントを行う。バーストデコーダ114は、サーボカウンタ113のカウント値をデコードすることで、サーボ領域211内のバースト領域211dに記録されている各バースト信号A〜Dのピークホールドのタイミング信号(バーストタイミング信号)を生成し、リードライト回路250に出力する。
【0134】
リード/ライト回路250は、リードライト回路250でAGCアンプによりー定の電圧に増幅されたリードデータに含まれているバースト信号A〜Dの振幅を、バーストデコーダ114からのバーストタイミング信号でピークホールドすることで、当該バースト信号A,B,C,Dを抽出する。このバースト信号A,B,C,Dは例えばCPU30のA/Dコンバータ31(CPU30から独立に設けられていても構わない)によりディジタル量に変換され、バーストデータBSTA,BSTB,BSTC,BSTDとして当該CPU30に取り込まれる。
【0135】
CPU30は、サーボブロック11内のシリンダデータレジスタ116から読み込んだシリンダデータの示すシリンダ、即ち現在ヘッド270が位置しているシリンダから目標シリンダまでの移動距離を計算すると共に、ヘッド270の移動速度を計算し、当該移動速度と上記移動距離から求められる目標速度との差分をもとに、(ヘッド270を磁気ディスク媒体210の半径方向に目標シリンダまで移動するのに必要な駆動力を与える)ボイスコイルモータ(VCM)に流す電流(VCM電流)を決める。そしてCPU30は、そのVCM電流に比例した電圧をシリアルポートを介して(ボイスコイルモータを駆動する)VCMドライバ(図示せず)に与える。
【0136】
このようにCPU30は、目標速度と移動速度との差がゼロになるように、ボイスコイルモータを駆動制御するフィードバック制御を実行することで、ヘッド270を目標シリンダに位置決めする。
【0137】
以上の動作(シーク動作)が完了すると、CPU30は位置決め動作に入る。即ちCPU30は、バーストデータBSTΑ,BSTΒ,BSTC,BSTDを取り込んで、そのバーストデータBSTΑ,BSTΒの組、またはバーストデータBSTC,BSTDの組をもとに、ヘッド270の目標シリンダ(トラック)の中心からの位置誤差(ヘッド270が独立のリード専用ヘッドとライト専用ヘッドからなる複合型ヘッドの場合で、且つライトのための位置決め動作の場合には、リード専用ヘッドとライト専用ヘッドとの間隔を考慮した位置誤差となる)を計算し、その位置誤差がゼロになるようにボイスコイルモータを駆動制御するフィードバック制御を実行する。
【0138】
このようにして、ヘッド270が目標シリンダにシーク・位置決めされると、サーボブロック11内のコントローラブロック13によるリードまたはライト動作、即ち目標シリンダ上のリードまたはライト対象となる先頭のデータセクタ(開始データセクタ)から始まる、指定数のデータセクタを対象とするリードまたはライト動作が可能となる。ここで、開始データセクタ位置の検出動作の具体例を、ライトの場合のランダムアクセスを例に、図8のタイミングチャートを参照して説明する。
【0139】
今、ディスク制御回路133内のレジスタ(目標サーボセクタレジスタ)504には、(サーボセクタ“N”を示す)サーボセクタ番号Nがセットされ、レジスタ(開始データセクタ位置レジスタ)509には、開始データセクタ位置として、目標サーボセクタ内の2番目のデータセクタであることを示す2がセットされているものとする。ここで、目標サーボセクタは、サーボセクタ“N”であることから、そのサーボセクタ“N”内の2番目のデータセクタ、即ち開始データセクタは、図8から明らかなようにデータセクタ“L”である。ここで、レジスタ509の値(開始データセクタ位置)2は、CPU30の計算により求められてセットされたものであり、レジスタ504の値Lは、スキュー処理回路133aのスキュー処理によりセットされたものである。前記したように、シーケンシャルアクセスの場合には、レジスタ509の設定値は1(固定値)となり、レジスタ504の示す目標サーボセクタ内の最初のデータセクタ位置が示される。
【0140】
ディスク制御回路133内の比較器505は、サーボデコーダ112によりサーボセクタ(内のサーボ領域)単位でサーボマーク検出信号SVGTDのタイミングで更新されるサーボセクタデータレジスタ115の値(サーボデコーダ112により検出されたサーボセクタ213のセクタ番号)、即ち現在ヘッド270が位置しているサーボセクタ213のサーボセクタ番号を、レジスタ504にセットされている目標サーボセクタのサーボセクタ番号Nと比較する。
【0141】
比較器505は、サーボデコーダ112によりサーボセクタ“N”が検出され、その結果サーボセクタデータレジスタ115にサーボセクタ番号Nがセットされると、サーボセクタ一致検出信号506を出力する。この信号506は、開始データセクタ“L”が存在する目標サーボセクタ“N”にヘッド270が位置していることを示す。
【0142】
比較器505からサーボセクタ一致検出信号506が出力されると、フリップフロップ507がセットして、DSPカウンタ508がカウント可能状態となる。これによりDSPカウンタ508は、DSP生成回路135から各サーボセクタ213毎に、そのサーボセクタ213内の各データセクタ位置のタイミングで出力されるDSPの数をカウントする動作を開始する。
【0143】
比較器510は、このDSPカウンタ508のカウント値を、レジスタ509の値(開始データセクタ位置)2と比較する。そして比較器510は、目標サーボセクタ“N”内の2番目のデータセクタ位置(=開始データセクタ位置)に対応したDSPがDSP生成回路135から出力され、その結果DSPカウンタ508のカウント値が2となると、データセクタ一致検出信号511を出力する。
【0144】
するとシーケンサ512は、ライトゲートWG(リードの場合であればリードゲートRG)を開く。この状態でシーケンサ512は、バッファ制御回路132を介してバッファメモリ120内のデータ領域121からデータを読み出し、ECC回路137にて生成されるエラー検出訂正コードを付加してリードライト回路250に転送する。
【0145】
【発明の効果】
以上詳述したように本発明によれば、サーボブロック、コントローラブロック及びメモリブロックを同一チップ上に集積化すると共に、サーボブロック内で抽出されたサーボセクタのセクタ番号がコントローラブロックから直接参照可能な構成としたことにより、処理の高速化とパフォーマンスの向上を図ることができる。
【0146】
また、本発明によれば、メモリブロック内のバッファメモリに確保した特定領域(DSP生成情報領域)から、サーボブロック内で抽出されたサーボセクタ番号の示すサーボセクタに対応するDSP生成情報をCPUの介在なしに読み込んでDSP生成回路に自動設定できる。
【0147】
また、本発明によれば、サーボセクタ単位のスキュー値設定を行うことでスキュー処理のハードウェア化が図れ、シーケンシャルアクセスにおけるシリンダ間のスキュー処理がCPUでの特別の計算を必要とすることなく簡単に且つ高速に行える。
【図面の簡単な説明】
【図1】本発明の一実施形態に係る磁気ディスク装置の全体構成を示すブロック図。
【図2】図1中の制御回路10の構成を示すブロック図。
【図3】図1中のバッファメモリ120のDSP生成情報領域123における各ゾーンと各サーボセクタの組み合わせ毎のDSP生成情報格納先アドレスの割り当て例を示す図。
【図4】同実施形態におけるサーボセクタ単位のスキュー値設定を説明するための図。
【図5】図2中のディスク制御回路133内の主要部の構成を、当該ディスク制御回路133内のスキュー処理回路133aの内部構成と共に示す図。
【図6】図2中のDSP生成回路135とその周辺の回路とのDSP生成に関する接続関係を示す図。
【図7】DSP生成に関する各部の詳細構成を示す図。
【図8】同実施形態における開始データセクタ位置の検出動作の具体例を説明するためのタイミングチャート。
【図9】従来の磁気ディスク装置の構成を示すブロック図。
【図10】磁気ディスク媒体の代表的なフォーマットの概念図。
【図11】サーボ領域及びデータセクタの代表的なフォーマットの概念図。
【図12】従来のトラック内データセクタ配置においてスキューを考慮した目標サーボセクタ及び開始データセクタの決定方式を説明するための図。
【図13】従来の磁気ディスク装置におけるDSP生成回路へのCPUからの情報設定動作と、当該DSP生成回路によるDSP生成動作を説明するための図。
【符号の説明】
10…制御回路(磁気ディスク装置用制御回路素子)
11…サーボブロック
12…メモリブロック
13…コントローラブロック
14…メモリバス
30…CPU
111…サーボマーク検出回路
112…サーボデコーダ
115…サーボセクタデータレジスタ
120…バッファメモリ
121…データ領域
122…ディフェクト情報領域
123…DSP生成情報領域
132…バッファ制御回路
132a…DSP生成情報ローダ
132b…アドレス変換回路
132c…ロード回路
133…ディスク制御回路
133a…スキュー処理回路
135…DSP(データセクタパルス)生成回路
210…磁気ディスク媒体
501…第1の目標サーボセクタ番号レジスタ
502…スキュー値レジスタ
503…加算器
504…第2の目標サーボセクタ番号レジスタ
505,510…比較器
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a magnetic disk apparatus that seeks and positions a head at a target position of a disk medium based on servo data recorded on the magnetic disk medium, and in particular, a servo block, a controller block, and a memory block are integrated on the same chip. The present invention relates to a magnetic disk device control circuit element and a magnetic disk device including the control circuit element.
[0002]
[Prior art]
Conventionally, a magnetic disk device (hard disk device) is generally configured as shown in FIG. In the configuration of FIG. 9, the flow of data between the host device (for example, the personal computer main body) and the magnetic disk medium 210 is as follows when data from the host device is written as an example.
[0003]
First, data (write data) sent from the host device through the interface signal line 220 is received by the host interface 231 in the hard disk controller (HDC) 230 and then controlled by the buffer control circuit (buffer manager circuit) 232, for example. The data is temporarily stored in an external buffer memory 240 constituted by a RAM via a memory bus 241.
[0004]
In this state, when preparation for writing to the magnetic disk medium 210 is completed, the data stored in the buffer memory 240 is sent to the disk control circuit 233 under the control of the buffer control circuit 232, and data for synchronization (PLO) Area), sync byte area (SYNC area) data, and error detection / correction data are added to the read / write circuit (read / write IC) 250.
[0005]
In the read / write circuit 250, first, an operation is added to the data sent from the HDC 230 (internal disk control circuit 233) by a predetermined generator polynomial. Next, this data is modulated by an encoding circuit and sent to a preamplifier circuit 260 (generally called a head IC). The preamplifier circuit 260 converts this data into a write current and sends it to the head 270 to write to the magnetic disk medium 210. Processing for seeking and positioning the head 270 at the target position will be described later.
[0006]
Next, in the magnetic disk device of FIG. 9, the data flow during signal reproduction for reading data from the magnetic disk medium 210 and transferring it to the host device is as follows.
[0007]
First, a signal (read data) read from the medium 210 by the head 270 that has been sought and positioned on the target cylinder of the magnetic disk medium 210 is amplified by the preamplifier circuit 260 and sent to the read / write circuit 250. This amplified signal is amplified to a constant voltage in the read / write circuit 250 by an AGC (automatic gain control) amplifier. The signal amplified by the AGC amplifier is equalized in the read / write circuit 250 by an equalizer in accordance with the channel characteristics, A / D (analog / digital) converted, and then Viterbi decoded. This decoded signal is subjected to, for example, inverse conversion of 8/9 code and becomes NRZ data.
[0008]
The read / write circuit 250 sends this NRZ data (read data) to the disk control circuit 233 in the HDC 230. In the disk control circuit 233, the ECC (error detection and correction) circuit checks whether or not there is an error in the data from the read / write circuit 250 and stores it in the buffer memory 240 under the control of the buffer control circuit 232. When the read data in the buffer memory 240 is ready for transfer to the host device, the read data is transferred to the host device via the memory bus 241, the buffer control circuit 232, and the host interface 231.
[0009]
FIG. 10 shows an example of the disk format of the magnetic disk medium 210. The example of FIG. 10 is a case where a so-called sector servo system (embedded servo system) and CDR (Constant Density Recording) system are applied. On the recording surface of the magnetic disk medium 210, a radial pattern extends from the center to each track. In addition, a plurality of servo areas 211 are arranged at regular intervals (a servo sector format). Servo data used for head positioning and the like is recorded (embedded) in the servo area 211.
[0010]
Between the servo areas 211 is a user area (data area) 212 in which at least one (generally plural) data sector (physical sector, real sector) is arranged. An area composed of the servo area 211 and the user area 212 adjacent to the servo area 211 is called a servo sector 213. In the figure, for the sake of drawing, the number of servo sectors 213 (that is, the number of servo areas 211) is 8, but in practice, it is generally more (for example, 50).
[0011]
Further, in the magnetic disk medium 210 of FIG. 10, in order to increase the disk format efficiency by effectively using the outer peripheral area on the medium 210 in which the physical circumference of the track (cylinder) becomes longer, The recording surface of the medium 210 is divided into a plurality of zones “0” (Z0) to “m” (Zm) in the radial direction, and the number of data sectors per cylinder (track) is different for each zone (the outer zone). The configuration is such that the data transfer speed (transfer rate) is different (the cylinder in the outer peripheral zone is faster) (CDR method). Here, the data transfer rate of each cylinder in one zone is equal.
[0012]
As shown in FIG. 11A, the servo area 211 includes an AGC stabilization area (amplitude AGC area) 211a in which data having a constant frequency is recorded in order to stabilize the amplitude of the signal. Sector data area 211b in which the servo detection pattern (servo mark MK) and sector data indicating the sector number (servo sector number) unique to the servo area 211 (servo sector 213) are recorded, and cylinder data ( Cylinder data area 211c in which the cylinder code) is recorded, and a burst area 211d in which burst data for detecting the head position in the cylinder indicated by the cylinder data is recorded. The burst data recorded in the burst area 211d is composed of, for example, four burst signals A, B, C, and D. One of the combination of burst signals A and B and the combination of burst signals C and D is selectively selected. 9 is used for positioning control of the head 270 in FIG.
[0013]
As shown in FIG. 11B, the data sector arranged in the user area 212 includes an area (GAP area) 212a for absorbing rotational fluctuation, circuit delay, etc., a frequency pull-in area (PLO area) 212b, It is obtained by performing a constant generator polynomial operation on the data in the area (SYNC area) 212c indicating the start of the data area, the data (DATA area) 212d in which data (for example, 512-byte data) is recorded, and the DATA area 212d. Error detection and correction information (ECC information) is recorded (ECC area) 212e.
[0014]
In the magnetic disk medium 210 of the sector servo system + CDR system format as in the example of FIG. 10, the data sector is arranged regardless of the servo area 211 set on the track. The state divided by 211 occurs. This state is called a state in which data (data sector) is split (data split state), and is a phenomenon peculiar to the sector servo system + CDR system.
[0015]
Here, seek / positioning control based on servo data in the magnetic disk apparatus of FIG. 9 will be described.
[0016]
First, it is assumed that data (servo data) in the servo area 211 is read by the head 270. Servo data (read data) read by the head 270 is amplified by the preamplifier circuit 260, further amplified to a constant voltage by the AGC amplifier by the read / write circuit 250, and then pulsed by the pulse circuit 251.
[0017]
The servo mark detection circuit 281 in the servo control circuit 280 detects the servo mark MK recorded in the servo area 211 from the output (pulsed read data) of the pulse circuit 251 in the read / write circuit 250, and servo A mark detection signal SVGTD is output.
[0018]
The servo decoder 282 in the servo control circuit 280 generates a sample window which is a timing signal for taking in sector data (servo sector data) and cylinder data following the servo mark MK with reference to the servo mark detection signal SVGTD, Of the pulsed read data, the data in this sample window is taken into a shift register (not shown). The servo sector data fetched into the shift register is set in the servo sector data register as it is, and the cylinder data is converted into a Gray code and set in a cylinder data register (none of which is shown). The contents of both registers in the servo control circuit 280 are stored in the CPU 290 by the CPU 290 (in charge of the spindle motor start control, servo seek control, positioning control, data flow control, etc., according to the control program stored in the ROM 292). It is read via the bus 291.
[0019]
On the other hand, the servo counter (main counter) 283 in the servo control circuit 280 is cleared by the servo mark detection signal SVGTD and counts with the reference clock (servo clock). The burst decoder 284 generates a peak hold timing signal (burst timing signal) of each burst signal A to D recorded in the burst area 211d in the servo area 211 by decoding the count value of the servo counter 283. To the read / write circuit 250.
[0020]
The read / write circuit 250 holds the amplitude of the burst signals A to D included in the read data amplified to a constant voltage with the burst timing signal from the burst decoder 284, so that the burst signals A to D are read. D is extracted. The burst signals A to D are converted into digital quantities by the A / D converter of the CPU 290 and taken into the CPU 290 as burst data BSTA to BSTD.
[0021]
Based on the distance between the cylinder position (current head position) indicated by the cylinder data read from the cylinder data register in the servo control circuit 280 and the target cylinder, the CPU 290 moves the head 270 in the radial direction of the magnetic disk medium 210. The current (VCM current) that flows through the voice coil motor (VCM) that gives the driving force necessary to move to the target cylinder is determined. Then, the CPU 290 gives a voltage proportional to the VCM current to a driver for driving the voice coil motor (VCM driver). By repeating this control, the CPU 290 positions the head 270 on the target cylinder.
[0022]
When the above operation (seek operation) is completed, the CPU 290 enters a positioning operation. That is, the CPU 290 takes in the burst data BSTΑ to BSTD, and calculates a position error from the center of the target cylinder (track) of the head 270 based on the set of burst data BSTΑ and BST ま た は or the set of burst data BSTC and BSTD. Then, feedback control is performed to drive and control the voice coil motor so that the position error becomes zero.
[0023]
In this way, when the head 270 is sought and positioned in the target cylinder, the designated number starts from the data sector (start data sector) that is the start target of the read or write operation by the HDC 230, that is, the read or write on the target cylinder. It is possible to perform a read or write operation on the data sector.
[0024]
Here, the detection operation of the start data sector will be described by taking writing as an example.
[0025]
Assume that the sector number of the start data sector is L. In this case, in the disk control circuit 233 in the HDC 230, the start data sector (data sector “L”) whose data sector number is L is the number of which data sector of which servo sector 213 (this is called the target servo sector). Information (start data sector position) is set. This information is obtained by calculation by the CPU 290 and is set by the CPU 290 via the CPU bus 291. Here, it is assumed that the sector number of the target servo sector is N.
[0026]
The disk control circuit 263 searches for the servo sector 213 (servo sector “N”) where the start data sector “L” exists. In this process, the sector data detected by the servo decoder 282 in the servo control circuit 280 and set in the servo sector data register, that is, the servo sector number, is received from the CPU 290 via the CPU interface 234 and set first. This is done by comparing the servo sector number N of the target servo sector “N” with a comparison circuit.
[0027]
For example, if the start data sector “L” is the second data sector in the servo sector “N”, the disk control circuit 233 first searches for the servo sector “N” and then the data sector pulse generation circuit (DSP). Generation circuit) 235 starts counting the number of data sector pulses (DSP) output at the start timing of the data sector, and when the second DSP is counted, the write gate (read in the case of reading) Open the gate. In this state, the disk control circuit 233 reads data from the buffer memory 240 via the buffer control circuit 232, adds an error detection correction code by the ECC circuit, and transfers it to the read / write circuit 250.
[0028]
Here, determination of the target servo sector and the start data sector will be described with reference to FIG.
[0029]
First, the number of each data sector on each track (cylinder) of the magnetic disk medium 210 is determined from the first data sector in the servo sector 213 (servo sector “0”) whose servo sector number is 0 for ease of management. In general, they are assigned as 1, 2, 3,. In this case, after accessing the last data sector of a certain cylinder “M” by sequential access and then attempting to access the data sector of number 1 of the next cylinder “M + 1”, if the seek operation for that one cylinder is maximum p If a time corresponding to the data sector is required, when the seek is completed, the head 270 moves to a position shifted by the maximum p data sectors from the number 1 data sector of the cylinder “M + 1”, so that a rotation wait occurs. The value of p varies from zone to zone.
[0030]
Therefore, conventionally, in order to reduce this waiting time for rotation, in the cylinder adjacent to the cylinder “M”, for example, the cylinder “M + 1”, for example, the cylinder “M + 1” immediately after shifting from the last data sector of the cylinder “M” by p data sectors. The data sector No. 1 is handled as the data sector of number 1, that is, the start data sector of the cylinder “M + 1”. This deviation is called skew (cylinder skew). FIG. 12 shows an example of cylinder skew when the position of the start data sector is shifted by 4 data sectors (when p = 4) (actually a larger value), that is, when the position of the start data sector is shifted by 1 track skew. Show.
[0031]
In the example of FIG. 12, if the target servo sector without skew is the servo sector “N” and the start data sector is the first data sector of the servo sector “N”, the actual target servo sector considering the skew is 4 data sectors. The servo sector “N + 1” is caused by the skew of the minute, and the start data sector becomes the first data sector of the servo sector “N + 1”.
[0032]
The target servo sector and start data sector conversion processing (that is, skew processing) in consideration of the skew, and the target servo sector and start data sector (the number of data sectors in the target servo sector) after the conversion (skew processing) are indicated. Is set by the CPU 290. In addition, the number of data sectors in one servo sector differs depending on the servo sector due to the effect of data split even in the same zone, and the skew processing becomes complicated. Therefore, the load on the CPU 290 accompanying the skew processing is large.
[0033]
Next, an information setting operation from the CPU 290 to the DSP generation circuit 235 and a DSP generation operation (sectoring process) by the DSP generation circuit 235 will be described with reference to FIG.
[0034]
First, the CPU 290 reads the servo sector number detected by the servo control circuit 280 (internal servo decoder 282) and set in the servo sector data register via the CPU bus 291.
[0035]
Next, the CPU 290 refers to a predetermined table (DSP generation information table) in the ROM 292 (in FIG. 9) based on the read servo sector number, and reads the servo data of the first data sector (servo in the servo sector) of the servo sector of the next servo sector number. The DSP generation information including the DSP position (1st DSP position) corresponding to the position (based on the mark position), the DSP interval corresponding to the data sector interval, and the DSP number corresponding to the number of data sectors in the servo sector is read.
[0036]
Next, the CPU 290 sets the read DSP generation information in the DSP generation circuit 235.
[0037]
First, the DSP generation circuit 235 starts a count operation with a reference clock (servo clock) at the timing of the servo mark detection signal SVGTD from the servo mark detection circuit 281 in the servo control circuit 280, and the CPU 290 enters the DSP generation circuit 235 into the DSP generation circuit 235. When the number corresponding to the 1st DSP position (first data sector position) in the set DSP generation information is counted, the first DSP is output.
[0038]
Each time the DSP generation circuit 235 outputs a DSP, it again starts a count operation using the reference clock. When the number corresponding to the DSP interval in the set DSP generation information is counted, the operation of outputting the next DSP is repeated. .
[0039]
When the DSP generation circuit 235 performs a DSP output that matches the number of DSPs in the set DSP generation information, the DSP generation circuit 235 stops a series of DSP output operations.
[0040]
The CPU 290 reads the DSP generation information (consisting of the 1st DSP position, the DSP interval, and the number of DSPs) and the setting operation to the DSP generation circuit 235 every time a servo sector is detected by the servo decoder 282 in the servo control circuit 280. That is, it is performed in units of servo sectors.
[0041]
[Problems to be solved by the invention]
As described above, in a conventional magnetic disk device, a servo control circuit (hereinafter referred to as a servo block), an HDC (hereinafter referred to as a controller block), and a buffer memory (hereinafter referred to as a memory block) are independent. It is composed of integrated circuit elements, and is connected by a bus and other input / output signal lines. The servo block and the controller block are connected via a CPU bus (CPU bus), and the CPU controls data exchange and the like between both blocks via the CPU bus.
[0042]
For this reason, the conventional magnetic disk device has the following problems.
[0043]
(1) The CPU intervenes in the exchange of data between the servo block and the controller block, which causes a decrease in performance. In particular, in skew processing, the CPU reads the servo sector number detected in the servo block from the servo sector data register, and adds the number of data sectors corresponding to the skew to the position of the data sector in the servo sector as the start position of the read or write operation. Thus, the target servo sector in consideration of the skew and the start data sector position in the servo sector must be calculated and set in the controller block, and the processing time required for this has been one of the causes of performance degradation.
[0044]
(2) The data sector pulse (DSP) generation is controlled by the CPU for each servo sector, the servo sector number (servo sector data) detected in the servo block is read from the servo sector data register, and the data pulse is calculated from the servo sector number. Since information necessary for generation (DSP generation information) is generated and set in the data sector pulse generation circuit in the controller block, if the seek time is short as in sequential access, the CPU processing may not be in time. there were.
[0045]
(3) Since the buffer memory and the HDC are formed on independent chips and are connected by an external memory bus, the bandwidth (access speed) of the buffer memory is limited.
[0046]
(4) Since many signal lines are connected and the number of elements is large, the mounting efficiency is poor.
[0047]
The present invention has been made in consideration of the above circumstances, and its purpose is that the servo block, the controller block, and the memory block are formed on the same chip, and in particular, the sector number of the servo sector extracted in the servo block is directly from the controller block. It is an object of the present invention to provide a control circuit element for a magnetic disk device and a magnetic disk device including the control circuit element, which can increase the processing speed and improve the performance by adopting a referable configuration.
[0048]
Another object of the present invention is that information necessary for generating a data sector pulse representing the timing of each data sector position arranged in a servo sector by a data sector pulse generation circuit can be simplified without intervention of a CPU. It is an object of the present invention to provide a magnetic disk device control circuit element that can be set to 1 and a magnetic disk device including the control circuit element.
[0049]
Still another object of the present invention is to provide a control circuit element for a magnetic disk device and a control circuit element for the same that can perform skew processing between cylinders in sequential access easily and at high speed without requiring a special calculation in the CPU. An object of the present invention is to provide a magnetic disk device provided.
[0050]
[Means for Solving the Problems]
A control circuit element for a magnetic disk device according to a first aspect of the present invention is configured by integrating a servo block, a memory block, and a controller block on the same chip. The servo block is separated from a magnetic disk medium by a head. A servo decoder for extracting a servo sector number and a cylinder number from pulsed data of the read servo data is provided, and the memory block temporarily stores data transferred between the magnetic disk medium and the host device. For storing data sector pulse generation information (DSP generation information) necessary to generate a data sector pulse (DSP) at a timing corresponding to the position of each data sector arranged in each servo sector Sector pulse generation information area (DSP generation information area) is set The controller block has a DSP indicating the timing of each data sector arranged in the servo sector indicated by the servo sector number extracted by the servo decoder, and a DSP corresponding to the servo sector is generated. A DSP generation circuit (data sector pulse generation circuit) that outputs based on the information, and the servo sector number extracted by the servo decoder is input from the servo block and compared with the sector number of the target servo sector. When coincidence is detected in a state where seek is performed and positioned at the target cylinder position of the medium, the number of DSPs output from the DSP generation circuit is counted to detect the start data sector position of read or write in the target servo sector. By the disk A disk control circuit for controlling the start timing of a read operation or a disk write operation, and a buffer control circuit for controlling access to the buffer memory, wherein the servo sector number extracted by the servo decoder is input from the servo block, A buffer containing a DSP generation information loader (data sector pulse generation information loader) that reads DSP generation information corresponding to the servo sector next to the servo sector indicated by the servo sector number from the DSP generation information area of the buffer memory and sets it in the DSP generation circuit It is characterized by having a control circuit.
[0051]
Here, when only the sector servo system (embedded servo system) is applied to the disk format of the magnetic disk medium, and the CDR system is not applied, the DSP generation information is determined only by the sector number of the target servo sector. In this case, if the DSP generation information for the corresponding servo sector is stored at the address in the DSP generation information area of the buffer memory corresponding to each servo sector number, the DSP generation information loader is extracted by the servo decoder in the servo block. The DSP generation information can be read by performing address conversion for generating the storage destination address of the DSP generation information for the servo sector indicated by the sector number from the servo sector number. Further, when the sector servo system and the CDR system are used together, the DSP generation information is determined by the combination of the sector number of the target servo sector and the zone number of the zone to which the servo sector belongs. If the DSP generation information for the corresponding servo sector is stored at the address in the DSP generation information area of the buffer memory corresponding to the combination of the servo sector number) and the zone number, the DSP generation information loader is used as the servo decoder in the servo block. The DSP generation information can be read by performing address conversion for generating the storage destination address of the DSP generation information for the corresponding servo sector from the combination of the servo sector number and the zone number extracted by.
[0052]
In the control circuit element for the magnetic disk device having such a configuration, the servo sector number extracted by the servo decoder in the servo block is stored in the controller block (specifically, the disk control circuit and the buffer control circuit in the controller block). Since the DSP generation information loader can directly input from the servo block without the intervention of the CPU (which controls motor start control, servo seek / positioning control, data flow control, etc.) in the magnetic disk device, It is possible to increase the processing speed and reduce the load on the CPU.
[0053]
In addition, since setting of DSP information for each servo sector in the DSP generation circuit can be performed without the intervention of the CPU by the DSP generation information loader, the processing speed can be increased and the load on the CPU can be reduced.
[0054]
In addition, the buffer memory in the memory block and the buffer control circuit in the controller block for controlling access to the buffer memory are provided on the same chip. What is access control via an external memory bus as in the prior art? Therefore, the buffer memory can be accessed at high speed.
[0055]
When the control circuit element for the magnetic disk device is used, the number of connection signal lines on the printed circuit board in the magnetic disk device can be reduced, and the number of elements to be mounted can be reduced.
[0056]
A control circuit element for a magnetic disk device according to a second aspect of the present invention applies a configuration in which the skew between cylinders is set in units of cylinders instead of in conventional disk sectors, and the magnetic according to the first aspect. Target that considers cylinder skew by adding the sector number of the target servo sector before cylinder skew operation (target servo sector number without skew) and the cylinder skew value set for each servo sector to the disk control circuit in the disk device control circuit element A skew processing circuit for generating a sector number of the servo sector is provided.
[0057]
In such a configuration, in the case of sequential access, (1) the target servo sector number without skew is the sector number of the servo sector next to the servo sector immediately before seeking to the adjacent cylinder, and (2) the skew value to be added is 1. This is the cylinder seek displacement amount and is a fixed value. (3) Since the start data sector position in the target servo sector (considering the queue) is fixed as the first data sector position in the servo sector, The CPU does not need any calculation processing to set these pieces of information, and the CPU does not need to perform the skew addition processing, so the processing can be speeded up in this respect as well.
[0058]
DETAILED DESCRIPTION OF THE INVENTION
Embodiments of the present invention will be described below with reference to the drawings.
[0059]
FIG. 1 is a block diagram showing the overall configuration of a magnetic disk apparatus according to an embodiment of the present invention. The same parts as those in FIG.
[0060]
The magnetic disk device of FIG. 1 is characterized in that the servo control circuit 280 (servo block), buffer memory 240 (memory block), and HDC 230 (controller block) in FIG. 9 are replaced with a servo block, a memory block, and a controller block. The function is provided with a control circuit (control circuit element for magnetic disk device) 10 integrated in one chip.
[0061]
In this embodiment, the same CPU as that of the magnetic disk device of FIG. 9 is used, but since the processing of the CPU is reduced, the reference numeral (30) different from FIG. 9 is attached. The difference in the processing of the CPU is due to the difference in the control program, but the ROM storing the control program is given the same reference numeral (292) as FIG. 9 for convenience of explanation.
[0062]
The control circuit 10 is roughly divided into three blocks: a servo block 11, a memory block 12, and a controller block 13.
[0063]
As shown in FIG. 2, the servo block 11 includes a servo mark detection circuit 111, a servo decoder 112, a servo counter 113, a burst decoder 114, a servo sector data register 115, a cylinder data register 116, and a fault detection circuit 117.
[0064]
The servo mark detection circuit 111 is read from the magnetic disk medium 210 by the output of the pulse circuit 251 in the read / write circuit 250 in FIG. Servo mark detection is performed by detecting the servo mark MK in the servo area 211 (internal sector data area 211b) shown in FIG. 11 from the data pulsed after being amplified to a constant voltage (pulsed read data). It is a decoder that outputs a signal SVGTD.
[0065]
The disk format of the magnetic disk medium 210 is the same as that of the magnetic disk medium 210 in FIG. 9 except that the method is different. Refer to FIGS. 10 and 11 if necessary. That is, the magnetic disk medium 210 employs a sector servo system and a CDR system, and a plurality of servo areas 211 are constant on the recording surface, as shown in FIG. Arranged at intervals. Between the servo areas 211 is a user area 212 in which at least one data sector (here, a plurality of data sectors) is arranged. The recording surface of the magnetic disk medium 210 is divided into a plurality of zones “0” (Z0) to “m” (Zm) in the radial direction, and the number of data sectors per cylinder (track) is different for each zone. ing.
[0066]
The servo decoder 112 uses the servo mark detection signal SVGTD from the servo mark detection circuit 111 as a reference, sector data (servo sector data) following the servo mark MK in the sector data area 211b in the servo area 211, and the next cylinder data. A sample window that is a timing signal for capturing cylinder data in the region is generated. The servo decoder 112 also cuts out data in this sample window from the pulsed read data output from the pulsed circuit 251 in the read / write circuit 250, and generates servo sector data (servo sector number) and cylinder data (cylinder data). Number). The servo decoder 112 includes a shift register (not shown), and the extracted servo sector data and cylinder data are serially input to the shift register in order. The servo sector data input to the shift register is set in the servo sector data register 115 as it is, and the cylinder data is converted into a gray code and set in the cylinder data register 116.
[0067]
The servo counter 113 is a basic counter (main counter) for determining the timing of servo control, is cleared by the servo mark detection signal SVGTD, and is counted by the reference clock (servo clock) SVCLK from the servo PLL circuit 138. I do.
[0068]
The burst decoder 114 decodes the count value of the servo counter 113 to generate a peak hold timing signal (burst timing signal) of each burst signal A to D recorded in the burst area 211d in the servo area 211. To the read / write circuit 250.
[0069]
The fault detection circuit 117 inputs various predetermined fault signals, and when any one of them becomes true, the operation of the write channel of the read / write circuit 250 is stopped, and the magnetic disk medium 210 is abnormally operated. The write operation is performed to prevent the existing data from being destroyed, and a fault is notified to the disk control circuit 133 described later to close the write gate. The fault signal applied here includes an impact detection signal that is output when an abnormal impact is detected on the magnetic disk device, and a power supply voltage that is output when an abnormal power supply voltage is detected. There are an abnormality detection signal, a head unsafe signal output when an abnormality of the head 270 is detected, and the like.
[0070]
Next, the memory block 12 has a buffer memory 120 constituted by, for example, a DRAM. The buffer memory 120 is transferred between the host interface 131 in the controller block 13 and the magnetic disk medium 210 (read / write circuit 250 that performs read / write for the target via the preamplifier circuit 260 and the head 270). The data area 121 that constitutes a buffer memory unit for temporarily storing data (read data or write data), a defect information area 122, and a DSP (data sector pulse) generation information area 123 are divided and managed.
[0071]
The defect information area 122 is used to store defect information indicating the position of a defect data sector to be skipped at the time of reading or writing for each cylinder of the magnetic disk medium 210 for each servo sector. This defect information is stored, for example, in a specific area of the magnetic disk medium 210 and is read into the memory (RAM) of the CPU 30 at the time of start-up. In this embodiment, at this time, the defect information in the buffer memory 120 is read. The area 122 is also stored. By storing the defect information in the defect information area 122 in this way, the corresponding defect information is read from the defect information area 122 into the disk control circuit 133 when seeking or positioning to the target cylinder for reading or writing. Reading and checking whether or not there is a defect data sector in the read or write target range. If there is a defect data sector, the operation of setting the position as a skip target can be performed without intervention of the CPU 30. it can. The details of the skip position setting and the skip operation based on the skip position setting are not related to the present invention, and thus the description thereof is omitted.
[0072]
The DSP generation information area 123 stores information (DSP generation information) related to DSP (data sector pulse) generation timing set for each servo sector 213 on the magnetic disk medium 210 for each servo sector and for each zone. Used to keep. Here, one DSP generation information is one byte indicating the output position (1st DSP position) of the DSP corresponding to the first data sector position arranged in the corresponding servo sector 213 in the corresponding zone by the number of servo clocks SVCLK. Information, 1.5 bytes (12 bits) indicating the DSP interval corresponding to the data sector interval in terms of the number of servo clocks SVCLK, and 4 bits indicating the number of DSPs corresponding to the number of data sectors in the servo sector 213 ( 0.5 byte) information is 3 byte information.
[0073]
For this reason, the DSP generation information area 123 is managed by dividing the area for three addresses into units, and for each area for three addresses (3-byte area) specified by the combination of each zone and each servo sector, respectively. Corresponding DSP generation information is stored. In this DSP generation information area 123, for example, 50 × 10 × 3 = 1500 bytes are required in an apparatus with 50 servo sectors and 10 zones. However, in reality, the DSP generation information often circulates within one zone, so it is highly possible that the capacity is less than half.
[0074]
FIG. 3 shows an example of assignment of each 3-byte area (address of the buffer memory 120 indicating the head position) in the DSP generation information area 123 to the combination of each zone and each servo sector. “H” at the end of the address in the figure indicates hexadecimal representation.
[0075]
Here, the 1st DSP position (indicating 1 byte information indicating) in the 3 byte DSP generation information is indicated in the first byte of each 3 byte area, and the DSP interval (indicating 1.5 byte information indicating the DSP interval). 1 byte consisting of the upper 4 bits of the number of DSPs (indicating 4-bit information) and the DSP interval (inside 1.5-byte information indicating) are stored in the third byte. .
[0076]
Normally, the above DSP generation information is stored in advance as a DSP generation information table 293 in a ROM 292 connected to the CPU bus 291 (see FIG. 1). In the present embodiment, the contents (DSP generation information) of the DSP generation information table 293 are loaded into the DSP generation information area 123 of the buffer memory 120 in the above-described address assignment mode at the time of startup.
[0077]
The controller block 13 includes a host interface 131, a buffer control circuit 132, a disk control circuit 133, a CPU interface 134, a DSP generation circuit (data sector pulse generation circuit) 135, a disk FIFO 136, an ECC circuit 137, and a clock generation circuit 138.
[0078]
The host interface 131 exchanges data and commands with the host device in accordance with the timing and protocol defined by a predetermined interface. The host interface 131 has a FIFO (host FIFO) (not shown) for absorbing a transfer rate difference in data transfer between the buffer memory 120 and the host device. The host interface 131 also includes a command decoder for decoding commands and an interface timing generation circuit (none of which are shown).
[0079]
The buffer control circuit 132 is connected to the buffer memory 120 in the memory block 12 by the memory bus 14 and controls access of the buffer memory 120 according to the buffer clock BFCLK via the memory bus 14. The movement of data processed under the control of the buffer control circuit 132 is actually performed between the disk FIFO 136 and the buffer memory 120 and between the host FIFO and the buffer memory 120 in the host interface 131.
[0080]
The buffer control circuit 132 is provided with a DSP generation information loader 132 a connected to the servo sector data register 115 in the servo block 11. The DSP generation information loader 132a includes a zone (information) provided by the CPU 30 where the head 270 is located and servo sector data held in the servo sector data register 115, that is, a servo sector indicating a servo sector in the zone where the head 270 is located. The address (start address) of the 3-byte area in the DSP generation information area 123 of the buffer memory 120 in which the DSP generation information corresponding to the next servo sector is stored is generated from the number (information) and the memory block 12 Is read, and the corresponding DSP generation information is read and loaded into the DSP generation circuit 135 in the controller block 13.
[0081]
The disk control circuit 133 controls the timing of reading or writing for the magnetic disk medium 210 performed via the read / write circuit 250 and the preamplifier circuit 260.
[0082]
The disk control circuit 133 is connected to the servo sector data register 115 in the servo block 11 so that the contents of the register 115 can be directly referred to. The disk control circuit 133 searches the target servo sector when the seek / positioning under the control of the CPU 30 is completed and reading or writing becomes possible (specifically, when the read execution flag or the write execution flag is set). I do. This is an operation of monitoring the servo sector data register 115 and waiting for the register 115 to hold a servo sector number matching the sector number of the target servo sector.
[0083]
When the controller block 13 detects that the servo sector data register 115 holds a servo sector number that matches the sector number of the target servo sector, the disk control circuit 133 counts the number of DSPs output from the DSP generation circuit 135. When the number of DSPs corresponding to the start data sector position is counted, the read gate or the write gate is opened. In the case of reading, the read channel in the read / write circuit 250 reproduces data.
[0084]
The CPU interface 134 performs data exchange between the CPU 30 and the controller block 13.
[0085]
The DSP generation circuit 135 is read and loaded from the DSP generation information area 123 in the buffer memory 120 by the DSP generation information loader 132 a in the buffer control circuit 132 every time a servo sector is detected by the servo decoder 112 in the servo block 11. Based on the DSP generation information corresponding to the next servo sector, a DSP corresponding to the position of each data sector arranged in the next servo sector is generated and output.
[0086]
At the time of writing, the ECC circuit (error detection / correction circuit) 137 writes write data read from the data area 121 in the buffer memory 120 by the buffer control circuit 132 via the disk FIFO 136 into the shift register ( ECC code (error detection / correction code) is generated before being input to the read / write circuit 250, and the code is stored in one data sector of write data (usually 512 bytes). Append to the back. Further, before this write data, data for synchronization (PLO area), data in the sync byte area (SYNC area), etc. are added by the disk control circuit 133 and sent to the read / write circuit 250 continuously.
[0087]
On the other hand, at the time of reading, the ECC circuit 137 shifts the read data read from the magnetic disk medium 210 and decoded by the read / write circuit 250 to the shift register in the disk control circuit 133 before the buffer control circuit. Under the control of 132, an ECC check is performed during data movement until transfer to the data area 121 in the buffer memory 120 is completed via the disk FIFO 136. The ECC circuit 137 determines whether correction is possible when an error is detected, and performs correction processing on the data in the data area 121 in the buffer memory 120 if possible. The ECC circuit 137 completes this correction process before the data of the next data sector is written into the buffer memory 120.
[0088]
The clock generation circuit 138 generates and outputs a servo clock SVCLK based on a reference clock CLK supplied from the CPU 30, and a buffer PLL circuit 138b generates and outputs a buffer clock BFCLK based on the reference clock CLK. And two phase-locked loop circuits (synthesizers).
[0089]
In the above configuration, the basic processing procedure at the time of reading or writing by the disk control circuit 133 in the controller block 13 of the control circuit 10 is as follows. This process is performed according to the firmware (FW) by the sequencer 512 (see FIG. 5).
[0090]
First, the disk control circuit 133 (the sequencer 512 therein) performs initial settings regarding the data format in advance, such as the operation mode, the number of start bytes of the data field in the data sector, and the definition of the sync byte. Also, at the start of execution of a command from the host device, whether to apply error correction, an attribute of data transfer indicating an error stop mode, etc., an address position of the buffer memory 120 (in the data area 121) for starting data transfer Then, the transfer length control register (not shown) is initialized.
[0091]
After the initial setting at the start of command execution, the target cylinder (number) obtained by the CPU 30 from the logical address (request address) of the disk access requested by the host device is set in the target cylinder register (not shown), Seek control for seeking to the target cylinder is performed by the CPU 30 (using the servo block 11).
[0092]
Next, the disk control circuit 133 initializes the disk FIFO 136 and starts data transfer between the disk FIFO 136 and the buffer memory 120 by the buffer control circuit 132. Here, in the case of writing, the disk control circuit 133 prepares data (write data) in the disk FIFO 136 in advance. The buffer control circuit 132 starts data transfer from the buffer memory 120 to the disk FIFO 136 if there is data that can be transferred (in the data area 121). If there is no data, the buffer control circuit 132 receives data from the host device. wait. Further, when the disk FIFO 136 becomes full (FULL), the buffer control circuit 132 waits for data to be transmitted from the disk FIFO 136.
[0093]
Next, in the disk control circuit 133, the sector number of the target servo sector to be read or written in the target cylinder and the position of the start data sector to be read or written in the target servo sector (target servo sector) And the number of data sectors to be read or written in the target cylinder.
[0094]
Here, the setting of the sector number of the target servo sector and the start data sector position in the disk control circuit 133 will be described.
[0095]
Normally, the CPU 30 converts the request address (logical address) of the host device into a physical address, and obtains the head, cylinder, and data sector addresses. Next, the CPU 30 obtains by calculation which servo sector the data sector (start data sector) to start reading or writing belongs to, and further determines which data sector in the servo sector (start data sector) Position) by calculation. Therefore, it takes time to set the start data sector position. Conventionally, this calculation is performed in the same way for both sequential access (sequential seek) and random access (random seek), and approximately the same calculation time is required. In particular, since skew has been set for each data sector in the past, the skew processing becomes complicated as described in the column of [Prior Art], and sequential access in which seek for one cylinder is performed, that is, sequential time is short. In seeking, there is a possibility that the calculation processing of the CPU 30 may not be in time.
[0096]
Therefore, in this embodiment, unlike the conventional skew value setting for each data sector (see FIG. 12), the skew value setting for each servo sector is performed as shown in FIG. This skew value setting indicates that when reading or writing is performed by seeking to an adjacent cylinder, the start data sector position of the read or write is the first data sector position in the target servo sector. That is, if the position of the servo sector of the next cylinder is obtained, the data sector to be started is the first data sector in the servo sector, and thus it is not necessary to calculate. The skew value between adjacent cylinders is constant regardless of each zone. In the example of FIG. 4, the skew value between cylinders is set to one servo sector for the convenience of drawing, but is actually more than that, for example, five servo sectors.
[0097]
Sequential access occurs when the number of data sectors to be read or written requested by the host device is large and the read or write is performed over a plurality of cylinders (tracks). In this case, the disk access request from the host device is divided into requests for each cylinder by the CPU 30, and for each cylinder, that cylinder is set as a target cylinder, and a seek operation is performed on that cylinder.
[0098]
When seeking to the first target cylinder (random seek), the target cylinder, the target servo sector (not considering skew) in the target cylinder, the start data sector position in the target servo sector, and the skew value are obtained from the host device. Calculated by the CPU 30 based on the request address.
[0099]
On the other hand, in the subsequent seek to the target cylinder (one cylinder seek, that is, sequential seek), the target cylinder is the cylinder next to the cylinder where the head 270 is currently located, (Not considered) The target servo sector is the servo sector next to the servo sector where the head 270 is currently located (the servo sector where the head 270 is located before the start of one cylinder seek), and the start data sector position is the first data in the servo sector. Since it is the position of the sector and the skew value for each servo sector is a fixed value (1 in the example of FIG. 4), calculation by the CPU 30 is unnecessary.
[0100]
Now, applying the skew value setting for each servo unit makes it easy to find the target servo sector that takes into account the skew by simply adding the skew value to the target servo sector number that does not take into account the skew (the target servo sector number without skew). It becomes possible to make it hardware. In this embodiment, the disk control circuit 133 is provided with a skew processing circuit 133a which is this hardware circuit. The skew value is fixed because it is a shift amount for one cylinder in the case of a seek operation in sequential access (sequential seek), but in the case of a seek operation in random access (random seek), the skew value is fixed. Since the skew amount is added by the number of cylinders, calculation is required. However, since the seek time is long in random seek, there is no fear that the calculation will not be in time.
[0101]
FIG. 5 shows the configuration of the main part in the disk control circuit 133 together with the internal configuration of the skew processing circuit 133 a in the disk control circuit 133.
[0102]
The skew processing circuit 133a includes registers 501 and 502 and an adder 503.
[0103]
In the register (first target servo sector number register) 501, the sector number (first target servo sector number) of the target servo sector without skew in the target cylinder obtained by the CPU 30 from the request address of the host device is set by the CPU 30. The When a sequential seek (seek to an adjacent cylinder) is performed, the servo sector next to the servo sector immediately before the seek becomes the target servo sector number without skew, and the calculation by the CPU 30 is not performed.
[0104]
A skew value is set in the register (skew value register) 502 by the CPU 30. In the case of sequential access, this skew value is a constant value (one servo sector, ie, 1 in the example of FIG. 4). At this time, the position of the data sector (start data sector) to be read or written first in the target servo sector in consideration of the skew (information indicating the number of the data sector in the target servo sector) is registered by the CPU 30 (start data selector position). Register) 509. In the case of sequential access, the value set in this register 509 is 1 (fixed value) indicating the first data sector in the target servo sector, and calculation by the CPU 30 is unnecessary.
[0105]
The above setting operation to the registers 501, 502, and 509 is performed by the CPU 30 at the start of seeking to the target cylinder position, for example.
[0106]
An adder 503 adds the set values of the registers 501 and 502. The addition result of the adder 503 is set in the register (second target servo sector number register) 504 as the sector number of the actual servo sector (target servo sector) to be accessed in consideration of the skew. Therefore, in FIG. 3, when the servo sector with the sector number N (servo sector “N”) is the target servo sector without skew, the sector number N + 1 indicating the servo sector “N + 1” is set in the register 504. Become.
[0107]
The output of the register 504 is connected to one input of the comparator 505. The other input of the comparator 505 is connected to the output of the servo sector data register 115 provided in the servo block 11 in FIG. The comparator 505 is in a comparable state when the seek / positioning under the control of the CPU 30 is completed and reading or writing is possible (specifically, when the read execution flag or write execution flag is set), the comparator 505 Value, that is, the sector number of the target servo sector (considering the skew) and the value of the register 115 that changes according to the seek operation, that is, the sector number of the servo sector 213 where the head 270 is located, detected by the servo decoder 112 And compare. The comparator 505 outputs a servo sector coincidence detection signal 506 when the value of the register 115 coincides with the value of the register 504.
[0108]
When the servo sector coincidence detection signal 506 is output from the comparator 505, the flip-flop (F / F) 507 is set to indicate that the target servo sector has been detected.
[0109]
Then, the DSP counter 508 is activated and starts counting the number of DSPs output from the DSP generation circuit 135. The DSP generation circuit 135 uses the position of the servo mark MK in the servo sector 213 where the head 270 is located (the timing of the servo mark detection signal SVGTD) as a reference to the position of each data sector arranged in the servo sector 213. A DSP (data sector pulse) is output at a corresponding timing, and the details of the configuration and operation will be described later.
[0110]
The comparator 510 compares the set value of the register 509 (a value indicating what number data sector in the target servo sector is the start data sector) with the count value of the DSP counter 508, and the DSP counter 508 When the number of DSPs matching the set value 509 is counted, a data sector coincidence detection signal 511 indicating that the start data sector has been detected is output to the sequencer 512. Then, the sequencer 512 opens the read gate (RG) in the case of reading, and opens the write gate (WG) in the case of writing. As a result, the disk read or disk write operation is started.
[0111]
At this time, the operation of counting the number of DSPs from the DSP generation circuit 135 is started by a counter (not shown) similar to the DSP counter 508. When the DSPs for the number of target data sectors to be read or written specified by the CPU 30 are counted, that is, when the read or write operation for the number of target data sectors for read or write is performed, the sequencer 512 reads the read gate ( RG) or write gate (WG) is closed, and the read or write operation is stopped.
[0112]
Here, data transfer in reading or writing of disk data is performed in cooperation with the buffer control circuit 132 under the control of the sequencer 512. Since the specific operation at that time is not directly related to the present invention, the description thereof is omitted.
[0113]
FIG. 6 shows a connection relationship relating to DSP generation between the DSP generation circuit 135 and its peripheral circuits. In FIG. 6, after the CPU 30 seeks / positions to the target cylinder position, the control circuit 10 (inside the controller block 13) simply designates the start of sectoring together with the zone number, and the control circuit 10 automatically The manner in which a DSP is generated is shown.
[0114]
When the CPU 30 seeks / positions to the target cylinder position, it designates the start of sectoring to the controller block 13 in the control circuit 10 together with the zone number. Then, the DSP generation information loader 132a in the buffer control circuit 132 is activated.
[0115]
The DSP generation information loader 132a is stored in the register 115 each time the servo decoder 112 in the servo block 11 detects the servo sector where the head 270 is located and the sector number is stored in the servo sector data register 115. The DSP generation information corresponding to the next servo sector is read from the 3-byte area in the DSP generation information area 123 of the buffer memory 120 determined by the sector number (servo sector number) and the zone number specified by the CPU 30 and loaded into the DSP generation circuit 135. To do.
[0116]
Then, the DSP generation circuit 135 has the data sectors arranged in the servo sector next to the servo sector indicated by the sector number held in the servo sector data register 115 at the timing indicated by the DSP generation information loaded by the DSP generation information loader 132a. A DSP corresponding to the position of is generated and output.
[0117]
Details of the configuration of each part relating to DSP generation in the control circuit 10 are shown in FIG.
[0118]
In FIG. 7, each time a servo sector number (servo sector data) is detected from the pulsed read data (from the read / write circuit 250) by the servo decoder 112 in accordance with the servo mark detection signal SVGTD, the servo sector number is Set in the sector data register 115. The servo sector number set in the servo sector data register 115 is guided to the DSP generation information loader 132a in the buffer control circuit 132 together with the zone number designated by the CPU 30.
[0119]
The DSP generation information loader 132a includes an address conversion circuit 132b and a load circuit 132c.
[0120]
The address conversion circuit 132b calculates 3 bytes in the DSP generation information area 123 in the buffer memory 120 in which the DSP generation information corresponding to the next servo sector is stored from the zone number and the servo sector number set in the servo sector data register 115. Generate the address of the region.
[0121]
The DSP generation information loader 132a performs read access to the buffer memory 120 using this address, and sequentially reads data (DSP information) in an area (3-byte area) for three addresses starting from the address. Here, 1 byte information indicating the 1st DSP position is stored in the first byte of the area corresponding to the 3rd address, and the lower 1 byte (8 bits) of 1.5 bytes (12 bits) indicating the DSP interval is stored in the second byte. In the third byte, 4-byte information indicating the number of DSPs and 1-byte information including upper 4 bits (0.5 bytes) of 1.5-byte information indicating the DSP interval are stored.
[0122]
The load circuit 132c first reads 1-byte information (1-byte information indicating the 1st DSP position) read from the area for the above-mentioned three addresses into the register (1st DSP position register) 701 in the DSP generation circuit 135. 1 byte information (the lower 1 byte of 1.5 byte information indicating the 1st DSP position) and the lower 4 bits in the last read 1 byte information (the upper 4 bits of 1.5 byte information indicating the DSP interval) Are sequentially transferred to the register (DSP interval register) 702, and the upper 4 bits (4 bit information indicating the DSP number) in the last read 1 byte information to the register (DSP number register) 703. Load it.
[0123]
First, the DSP generation counter 705 and the generation DSP count counter 706 provided in the DSP generation circuit 135 are cleared at the timing of the servo mark detection signal SVGTD from the servo mark detection circuit 281 in the servo block 11. The At this time, the load circuit 704 in the DSP generation circuit 135 sets the contents of the register 701 (1st DSP position) to the counter 705 and the contents of the register 703 (the number of DSPs) to the counter 706 at the timing of the servo mark detection signal SVGTD. , Load (preset) each. The timing of this servo mark detection signal SVGTD is the servo sector next to the servo sector indicated by the servo sector number currently set in the servo sector data register 115 (the servo mark MK recorded in the sector data area 211b of the servo area 211). Corresponds to the position of.
[0124]
The counter 705 performs a count operation (here, a down count operation) in accordance with the servo clock SVCLK (from the servo PLL circuit 138a in the clock generation circuit 138), and borrows when the value (1st DSP position) indicated by the register 701 is counted. Output a signal. This borrow signal is used as a DSP. In this case, the output timing of the DSP coincides with the position of the first data sector in the servo sector next to the servo sector indicated by the servo sector number currently set in the servo sector data register 115. The DSP (borrow signal) from the counter 705 is used as a clock for the counter 706 and a DSP interval load request signal for the load circuit 704.
[0125]
Therefore, each time the DSP is output from the counter 705, the load circuit 704 loads the contents of the register 702 (DSP interval) into the counter 705. As a result, the counter 705 resumes the down-count operation, and this time, when the value (DSP interval) indicated by the register 702 is counted, the DSP is output.
[0126]
In this way, the counter 705 repeats the operation of outputting the DSP every time the DSP interval is counted after the first DSP is output after being cleared according to the servo mark detection signal SVGTD. The timing at which this DSP is repeatedly output coincides with the positions of the second and subsequent data sectors in the servo sector next to the servo sector indicated by the servo sector number currently set in the servo sector data register 115.
[0127]
On the other hand, the counter 706 counts the number of DSPs output from the counter 705. The counter 706 outputs a borrow signal when the value (the number of DSPs) indicated by the register 703 is counted. The counter 705 is cleared by this signal, whereby the DSP generation operation in the DSP generation circuit 135 is stopped. The DSP generation operation is resumed when the servo mark MK is detected by the servo mark detection circuit 112 from the next servo sector (servo area 211 thereof).
[0128]
As described above, in the present embodiment, each time the servo mark detection signal SVGTD is output from the servo mark detection circuit 111 in the servo block 11, that is, every time a servo sector is detected, each data arranged in the servo sector. The operation in which the DSP is output from the DSP generation circuit 135 at the timing corresponding to the position of the sector is automatically performed without requiring the CPU 30 to read the DSP generation information for each servo sector and set the DSP generation information. Is called.
[0129]
The overall operation of the magnetic disk apparatus having the configuration shown in FIG. 1 described above will be described.
[0130]
First, it is assumed that data (servo data) in the servo area 211 on the magnetic disk medium 210 is read by the head 270. Servo data (read data) read by the head 270 is amplified by the preamplifier circuit 260, further amplified to a constant voltage by the AGC amplifier by the read / write circuit 250, and then pulsed by the pulse circuit 251. It is sent to the servo block 11 in the control circuit 10.
[0131]
The servo mark detection circuit 111 in the servo block 11 receives the servo mark MK recorded in the sector data area 211b in the servo area 211 from the output (pulsed read data) of the pulse circuit 251 in the read / write circuit 250. And a corresponding detection signal (servo mark detection signal) SVGTD is output.
[0132]
The servo decoder 112 in the servo block 11 is a sample which is a timing signal for capturing sector data (servo sector data) and cylinder data following the servo mark MK with reference to the servo mark detection signal SVGTD from the servo mark detection circuit 111. A window is generated, and data in this sample window is cut out from the pulsed read data, and servo sector data (servo sector number) and cylinder data (cylinder number) are extracted. The servo sector data extracted here is set in the servo sector data register 115 as it is, and the cylinder data is converted into a Gray code and set in the cylinder data register 116. The contents (servo sector data and cylinder data) of both registers 115 and 116 in the servo block 11 are read by the CPU 30 via the CPU bus 291.
[0133]
On the other hand, the servo counter 113 in the servo block 11 is cleared by the servo mark detection signal SVGTD and counts with the reference clock (servo clock) SVCLK from the servo PLL circuit 138a. The burst decoder 114 decodes the count value of the servo counter 113 to generate a peak hold timing signal (burst timing signal) of each burst signal A to D recorded in the burst area 211d in the servo area 211. To the read / write circuit 250.
[0134]
The read / write circuit 250 peaks the amplitude of the burst signals A to D contained in the read data amplified to a constant voltage by the AGC amplifier in the read / write circuit 250 with the burst timing signal from the burst decoder 114. By holding, the burst signals A, B, C, and D are extracted. The burst signals A, B, C, and D are converted into digital quantities by, for example, an A / D converter 31 of the CPU 30 (which may be provided independently from the CPU 30), and the burst signals BSTA, BSTB, BSTC, BSTD It is captured by the CPU 30.
[0135]
The CPU 30 calculates the moving distance from the cylinder indicated by the cylinder data read from the cylinder data register 116 in the servo block 11, that is, the cylinder where the head 270 is currently located to the target cylinder, and the moving speed of the head 270. Based on the difference between the moving speed and the target speed obtained from the moving distance, the voice coil (provides the driving force necessary to move the head 270 to the target cylinder in the radial direction of the magnetic disk medium 210). The current (VCM current) that flows to the motor (VCM) is determined. Then, the CPU 30 supplies a voltage proportional to the VCM current to a VCM driver (not shown) via the serial port (driving the voice coil motor).
[0136]
In this way, the CPU 30 positions the head 270 on the target cylinder by executing feedback control for driving and controlling the voice coil motor so that the difference between the target speed and the moving speed becomes zero.
[0137]
When the above operation (seek operation) is completed, the CPU 30 enters a positioning operation. That is, the CPU 30 takes in the burst data BSTΑ, BSTΒ, BSTC, BSTD, and from the center of the target cylinder (track) of the head 270 based on the set of burst data BSTΑ, BSTΒ, or the set of burst data BSTC, BSTD. Position error (when the head 270 is a composite head composed of independent read-only heads and write-only heads, and in the positioning operation for writing, the distance between the read-only head and the write-only head is considered. (Which becomes a position error) is calculated, and feedback control is performed to drive and control the voice coil motor so that the position error becomes zero.
[0138]
When the head 270 is seeked and positioned in the target cylinder in this way, the read or write operation by the controller block 13 in the servo block 11, that is, the head data sector (start data) to be read or written on the target cylinder. A read or write operation for a specified number of data sectors starting from (sector) can be performed. Here, a specific example of the operation of detecting the start data sector position will be described with reference to the timing chart of FIG. 8 taking the random access in the case of writing as an example.
[0139]
Now, the servo sector number N (indicating the servo sector “N”) is set in the register (target servo sector register) 504 in the disk control circuit 133, and the start data sector position is stored in the register (start data sector position register) 509. Assume that 2 is set to indicate the second data sector in the target servo sector. Here, since the target servo sector is the servo sector “N”, the second data sector in the servo sector “N”, that is, the start data sector is the data sector “L” as apparent from FIG. Here, the value (start data sector position) 2 of the register 509 is obtained and set by calculation of the CPU 30, and the value L of the register 504 is set by skew processing of the skew processing circuit 133a. is there. As described above, in the case of sequential access, the set value of the register 509 is 1 (fixed value), and the first data sector position in the target servo sector indicated by the register 504 is indicated.
[0140]
The comparator 505 in the disk control circuit 133 is the value of the servo sector data register 115 (detected by the servo decoder 112) updated by the servo decoder 112 at the timing of the servo mark detection signal SVGTD in servo sector (internal servo area) units. The servo sector number of the servo sector 213), that is, the servo sector number of the servo sector 213 where the head 270 is currently located is compared with the servo sector number N of the target servo sector set in the register 504.
[0141]
When the servo sector “N” is detected by the servo decoder 112 and the servo sector number N is set in the servo sector data register 115 as a result, the comparator 505 outputs a servo sector coincidence detection signal 506. This signal 506 indicates that the head 270 is located in the target servo sector “N” where the start data sector “L” exists.
[0142]
When the servo sector coincidence detection signal 506 is output from the comparator 505, the flip-flop 507 is set and the DSP counter 508 becomes countable. As a result, the DSP counter 508 starts an operation of counting the number of DSPs output from the DSP generation circuit 135 for each servo sector 213 at the timing of each data sector position in the servo sector 213.
[0143]
The comparator 510 compares the count value of the DSP counter 508 with the value (start data sector position) 2 of the register 509. The comparator 510 outputs a DSP corresponding to the second data sector position (= start data sector position) in the target servo sector “N” from the DSP generation circuit 135, and as a result, the count value of the DSP counter 508 is 2. Then, the data sector coincidence detection signal 511 is output.
[0144]
Then, the sequencer 512 opens the write gate WG (read gate RG in the case of reading). In this state, the sequencer 512 reads data from the data area 121 in the buffer memory 120 via the buffer control circuit 132, adds an error detection correction code generated by the ECC circuit 137, and transfers it to the read / write circuit 250. .
[0145]
【The invention's effect】
As described above in detail, according to the present invention, the servo block, the controller block, and the memory block are integrated on the same chip, and the sector number of the servo sector extracted in the servo block can be directly referred to from the controller block. As a result, the processing speed can be increased and the performance can be improved.
[0146]
According to the present invention, the DSP generation information corresponding to the servo sector indicated by the servo sector number extracted in the servo block from the specific area (DSP generation information area) secured in the buffer memory in the memory block is not involved in the CPU. Can be automatically set in the DSP generation circuit.
[0147]
In addition, according to the present invention, the skew value can be set in hardware by setting the skew value in units of servo sectors, and the skew processing between cylinders in sequential access can be easily performed without requiring any special calculation in the CPU. And it can be done at high speed.
[Brief description of the drawings]
FIG. 1 is a block diagram showing the overall configuration of a magnetic disk device according to an embodiment of the present invention.
FIG. 2 is a block diagram showing a configuration of a control circuit 10 in FIG.
FIG. 3 is a diagram showing an example of assignment of DSP generation information storage destination addresses for each combination of zones and servo sectors in the DSP generation information area 123 of the buffer memory 120 in FIG. 1;
FIG. 4 is a view for explaining skew value setting for each servo sector in the embodiment;
5 is a diagram showing a configuration of a main part in the disk control circuit 133 in FIG. 2 together with an internal configuration of a skew processing circuit 133a in the disk control circuit 133. FIG.
6 is a diagram showing a connection relationship regarding DSP generation between the DSP generation circuit 135 and its peripheral circuits in FIG. 2; FIG.
FIG. 7 is a diagram showing a detailed configuration of each unit related to DSP generation.
FIG. 8 is a timing chart for explaining a specific example of a start data sector position detection operation in the embodiment;
FIG. 9 is a block diagram showing a configuration of a conventional magnetic disk device.
FIG. 10 is a conceptual diagram of a typical format of a magnetic disk medium.
FIG. 11 is a conceptual diagram of a representative format of a servo area and a data sector.
FIG. 12 is a diagram for explaining a method for determining a target servo sector and a start data sector in consideration of skew in a conventional data sector arrangement in a track.
FIG. 13 is a diagram for explaining an information setting operation from a CPU to a DSP generation circuit and a DSP generation operation by the DSP generation circuit in a conventional magnetic disk device.
[Explanation of symbols]
10. Control circuit (control circuit element for magnetic disk device)
11. Servo block
12 ... Memory block
13 ... Controller block
14 ... Memory bus
30 ... CPU
111 ... Servo mark detection circuit
112 ... Servo decoder
115: Servo sector data register
120: Buffer memory
121 ... Data area
122 ... Defect information area
123 ... DSP generation information area
132: Buffer control circuit
132a ... DSP generation information loader
132b ... Address conversion circuit
132c ... Load circuit
133: Disk control circuit
133a ... Skew processing circuit
135... DSP (data sector pulse) generation circuit
210: Magnetic disk medium
501: First target servo sector number register
502 ... Skew value register
503 ... Adder
504 ... Second target servo sector number register
505, 510 ... Comparator

Claims (5)

磁気ディスク装置に適用される1チップの磁気ディスク装置用制御回路素子であって、前記磁気ディスク装置は、記録面上に、その中心から各トラックを渡って放射状に、サーボセクタ識別用のサーボセクタ番号、シリンダ識別用のシリンダ番号及び当該シリンダ内でのヘッド位置検出用のバーストデータを含むサーボデータが記録された複数のサーボ領域が一定間隔で配置されている磁気ディスク媒体と、ヘッドにより前記磁気ディスク媒体から読み取られた前記サーボデータ中のシリンダ番号及びバーストデータをもとに当該ヘッドを前記磁気ディスク媒体の目標シリンダ位置にシーク・位置決めするための制御を行うCPUとを備えており、
前記磁気ディスク装置用制御回路素子は、前記シーク・位置決めの後、目標サーボセクタ内の開始データセクタ位置を検出してリードまたはライト動作を開始するように構成されており、
前記磁気ディスク装置用制御回路素子が、
前記ヘッドにより読み取られた前記サーボデータのパルス化データから前記サーボセクタ番号及び前記シリンダ番号を抽出するサーボデコーダと、当該サーボデコーダによって抽出されたサーボセクタ番号を保持するサーボセクタデータレジスタとを含むサーボブロックと、
前記磁気ディスク媒体とホスト装置との間で転送されるデータを一時格納するためのデータ領域と、前記各サーボセクタに配置される各データセクタの位置に対応したタイミングのデータセクタパルスを生成するのに必要なデータセクタパルス生成情報を格納するためのデータセクタパルス生成情報領域とが少なくとも設定されたバッファメモリを含むメモリブロックと、
前記サーボブロック内の前記サーボセクタデータレジスタに保持されている前記サーボセクタ番号の示すサーボセクタ内に配置される各データセクタ位置のタイミングを示すデータセクタパルスを、そのサーボセクタに対応したデータセクタパルス生成情報をもとに出力するデータセクタパルス生成回路と、前記サーボセクタデータレジスタの出力と接続され、当該レジスタに保持されている前記サーボセクタ番号を当該レジスタから入力して目標サーボセクタのセクタ番号と比較し、前記ヘッドが前記磁気ディスク媒体の目標シリンダ位置にシーク・位置決めされている状態で一致を検出した場合に、前記データセクタパルス生成回路から出力される前記データセクタパルスの数をカウントして前記目標サーボセクタにおけるリードまたはライトの開始データセクタ位置を検出することで、ディスクリード動作またはディスクライト動作の開始タイミングを制御するディスク制御回路と、前記サーボセクタデータレジスタの出力と接続され、当該レジスタに保持されている前記サーボセクタ番号を当該レジスタから入力して、当該サーボセクタ番号の示すサーボセクタの次のサーボセクタに対応した前記データセクタパルス生成情報を前記バッファメモリの前記データセクタパルス生成情報領域から読み込んで前記データセクタパルス生成回路に設定するデータセクタパルス生成情報ローダを内蔵し、前記バッファメモリをアクセス制御するバッファ制御回路と、前記CPUとの間のインタフェースをなすCPUインタフェースとを含むコントローラブロックとを具備することを特徴とする磁気ディスク装置用制御回路素子。
A one-chip control circuit element for a magnetic disk device applied to a magnetic disk device, wherein the magnetic disk device has a servo sector number for identifying a servo sector, on a recording surface, radially across each track from the center. A magnetic disk medium in which a plurality of servo areas in which servo data including a cylinder number for cylinder identification and burst data for head position detection in the cylinder are recorded are arranged at regular intervals, and the magnetic disk medium by a head A CPU for performing control for seeking and positioning the head at a target cylinder position of the magnetic disk medium based on the cylinder number and burst data in the servo data read from
The control circuit element for the magnetic disk device is configured to start a read or write operation by detecting a start data sector position in a target servo sector after the seek / positioning .
The control circuit element for the magnetic disk device comprises:
A servo block including a servo decoder that extracts the servo sector number and the cylinder number from the pulsed data of the servo data read by the head, and a servo sector data register that holds the servo sector number extracted by the servo decoder; ,
To generate a data area for temporarily storing data transferred between the magnetic disk medium and the host device, and a data sector pulse having a timing corresponding to the position of each data sector arranged in each servo sector. A memory block including a buffer memory in which at least a data sector pulse generation information area for storing necessary data sector pulse generation information is set;
A data sector pulse generation information corresponding to the servo sector is displayed as a data sector pulse indicating the timing of each data sector position arranged in the servo sector indicated by the servo sector number held in the servo sector data register in the servo block. The data sector pulse generation circuit to be originally output is connected to the output of the servo sector data register, and the servo sector number held in the register is input from the register and compared with the sector number of the target servo sector, When a match is detected while the head is seeking and positioned at the target cylinder position of the magnetic disk medium, the number of the data sector pulses output from the data sector pulse generation circuit is counted to Lead or Is connected to the disk control circuit for controlling the start timing of the disk read operation or the disk write operation and the output of the servo sector data register, and the servo sector held in the register is detected. The data sector pulse generation information corresponding to the servo sector next to the servo sector indicated by the servo sector number is read from the data sector pulse generation information area of the buffer memory and input to the data sector pulse generation circuit. A controller block including a data sector pulse generation information loader to be set and including a buffer control circuit for controlling access to the buffer memory and a CPU interface serving as an interface with the CPU; Magnetic disk device control circuit element according to symptoms.
前記ディスク制御回路は、前記サーボセクタデータレジスタの出力と接続され、当該レジスタに保持されている前記サーボセクタ番号を目標サーボセクタのセクタ番号と比較する第1の比較回路と、前記ヘッドが前記磁気ディスク媒体の目標シリンダ位置にシーク・位置決めされている状態で前記第1の比較回路で一致が検出された場合には、前記データセクタパルス生成回路から出力される前記データセクタパルスの数をカウントするデータセクタパルスカウンタと、前記データセレクタパルスカウンタのカウント値と、前記目標サーボセクタにおけるリードまたはライトの開始データセクタ位置に対応するタイミング値とを比較する第2の比較回路と、前記第2の比較回路での一致検出に応じてディスクリード動作またはディスクライト動作の開始タイミングを制御するシーケンサとを含むことを特徴とする請求項1記載の磁気ディスク装置用制御回路素子。 The disk control circuit is connected to the output of the servo sector data register and compares the servo sector number held in the register with the sector number of the target servo sector; and the head is the magnetic disk medium. A data sector that counts the number of data sector pulses output from the data sector pulse generation circuit when a match is detected by the first comparison circuit while seeking and positioning at the target cylinder position A second counter circuit that compares a pulse counter, a count value of the data selector pulse counter, and a timing value corresponding to a read or write start data sector position in the target servo sector; Disk read operation or disk write depending on match detection Magnetic disk device control circuit device according to claim 1, wherein a sequencer for controlling the start timing of work characterized by containing Mukoto. 前記ディスク制御回路は、シリンダスキュー操作前の目標サーボセクタのセクタ番号にサーボセクタ単位で設定されるシリンダスキュー値を加算して、前記目標サーボセクタのセクタ番号である、シリンダスキューを考慮した目標サーボセクタのセクタ番号を生成するスキュー処理回路を内蔵し、前記サーボセクタデータレジスタから入力した前記サーボセクタ番号を前記スキュー処理回路により生成された前記目標サーボセクタのセクタ番号と比較することを特徴とする請求項1記載の磁気ディスク装置用制御回路素子。 The disk control circuit adds a cylinder skew value set for each servo sector to a sector number of the target servo sector before the cylinder skew operation , and is a sector number of the target servo sector, which is the sector number of the target servo sector. 2. The magnetic circuit according to claim 1 , wherein a skew processing circuit for generating a servo is built in, and the servo sector number input from the servo sector data register is compared with a sector number of the target servo sector generated by the skew processing circuit. Control circuit element for disk device. 前記ディスク制御回路は、前記スキュー処理回路により生成された前記目標サーボセクタのセクタ番号を保持する目標サーボセクタ番号レジスタと、前記サーボセクタデータレジスタ及び目標サーボセクタ番号レジスタの各出力と接続され、前記サーボセクタデータレジスタに保持されている前記サーボセクタ番号を前記目標サーボセクタ番号レジスタに保持されている前記目標サーボセクタのセクタ番号と比較する第1の比較回路と、前記ヘッドが前記磁気ディスク媒体の目標シリンダ位置にシーク・位置決めされている状態で前記第1の比較回路で一致が検出された場合には、前記データセクタパルス生成回路から出力される前記データセクタパルスの数をカウントするデータセクタパルスカウンタと、前記データセレクタパルスカウンタのカウント値と、前記目標サーボセクタにおけるリードまたはライトの開始データセクタ位置に対応するタイミング値とを比較する第2の比較回路と、前記第2の比較回路での一致検出に応じてディスクリード動作またはディスクライト動作の開始タイミングを制御するシーケンサとを含むことを特徴とする請求項3記載の磁気ディスク装置用制御回路素子。 The disk control circuit is connected to a target servo sector number register that holds a sector number of the target servo sector generated by the skew processing circuit, and each output of the servo sector data register and the target servo sector number register, and the servo sector data A first comparison circuit that compares the servo sector number held in the register with the sector number of the target servo sector held in the target servo sector number register; and the head seeks to a target cylinder position of the magnetic disk medium. A data sector pulse counter that counts the number of data sector pulses output from the data sector pulse generation circuit when the first comparison circuit detects a match in the positioned state; and the data selector Pulse count And a second comparison circuit that compares a count value of the target servo sector with a timing value corresponding to a read or write start data sector position, and a disk read operation or magnetic disk device control circuit device according to claim 3, wherein a sequencer for controlling the start timing of the disk write operation, characterized in containing Mukoto. 記録面上に、その中心から各トラックを渡って放射状に、サーボセクタ識別用のサーボセクタ番号、シリンダ識別用のシリンダ番号及び当該シリンダ内でのヘッド位置検出用のバーストデータを含むサーボデータが記録された複数のサーボ領域が一定間隔で配置されている磁気ディスク媒体と、
ヘッドにより前記磁気ディスク媒体から読み取られた前記サーボデータ中のシリンダ番号及びバーストデータをもとに当該ヘッドを前記磁気ディスク媒体の目標シリンダ位置にシーク・位置決めするための制御を行うCPUと、
前記CPUと前記CPUインタフェースを介して接続される請求項1乃至請求項4のいずれかに記載の前記磁気ディスク装置用制御回路素子とを具備することを特徴とする磁気ディスク装置。
Servo data including a servo sector number for servo sector identification, a cylinder number for cylinder identification, and burst data for head position detection in the cylinder is recorded on the recording surface in a radial pattern across each track. A magnetic disk medium in which a plurality of servo areas are arranged at regular intervals;
A CPU that performs control for seeking and positioning the head at a target cylinder position of the magnetic disk medium based on a cylinder number and burst data in the servo data read from the magnetic disk medium by the head;
Magnetic disk apparatus characterized by comprising said magnetic disk device control circuit device according to any one of claims 1 to 4 are connected via the CPU interface and the CPU.
JP04681197A 1997-02-28 1997-02-28 CONTROL CIRCUIT ELEMENT FOR MAGNETIC DISK DEVICE AND MAGNETIC DISK DEVICE HAVING THE CONTROL CIRCUIT ELEMENT Expired - Fee Related JP3905944B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP04681197A JP3905944B2 (en) 1997-02-28 1997-02-28 CONTROL CIRCUIT ELEMENT FOR MAGNETIC DISK DEVICE AND MAGNETIC DISK DEVICE HAVING THE CONTROL CIRCUIT ELEMENT

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP04681197A JP3905944B2 (en) 1997-02-28 1997-02-28 CONTROL CIRCUIT ELEMENT FOR MAGNETIC DISK DEVICE AND MAGNETIC DISK DEVICE HAVING THE CONTROL CIRCUIT ELEMENT

Publications (2)

Publication Number Publication Date
JPH10241263A JPH10241263A (en) 1998-09-11
JP3905944B2 true JP3905944B2 (en) 2007-04-18

Family

ID=12757724

Family Applications (1)

Application Number Title Priority Date Filing Date
JP04681197A Expired - Fee Related JP3905944B2 (en) 1997-02-28 1997-02-28 CONTROL CIRCUIT ELEMENT FOR MAGNETIC DISK DEVICE AND MAGNETIC DISK DEVICE HAVING THE CONTROL CIRCUIT ELEMENT

Country Status (1)

Country Link
JP (1) JP3905944B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140068277A1 (en) * 2012-09-04 2014-03-06 Markus T. Metzger Secure Deletion of Data Stored in a Memory
JP6759166B2 (en) * 2017-08-28 2020-09-23 株式会社東芝 Magnetic disk device and read method

Also Published As

Publication number Publication date
JPH10241263A (en) 1998-09-11

Similar Documents

Publication Publication Date Title
US5818654A (en) Apparatus and process for managing defective headerless sectors
US5592348A (en) Method and structure for locating and skipping over servo bursts on a magnetic disk
KR100278534B1 (en) Table driven automatic split field calculation method
JP3480962B2 (en) Disk drive system
US5603002A (en) Hard disk drive having buffer memory employing directory based cache controller with data replacement scheme
JPH07169186A (en) Method and apparatus for positioning of beginning of specific data block at inside of user data block segment in disk drive as well as disk drive architecture
JPH0713702A (en) System and method for reading out and processing of plurality of data blocks stored in storage medium
JP2759920B2 (en) Method and apparatus for operating a DASD peripheral data storage subsystem
US20030193728A1 (en) Method and apparatus for forming data sector suitable for high density hard disk drive
US5650882A (en) Disk unit performing control using sector pulses
JP2007184046A (en) Rotary disk type storage device and recording method
JP3905944B2 (en) CONTROL CIRCUIT ELEMENT FOR MAGNETIC DISK DEVICE AND MAGNETIC DISK DEVICE HAVING THE CONTROL CIRCUIT ELEMENT
US5267097A (en) Information transfer control system having rotary storage unit which uses a pseudo address mark
US6745300B1 (en) Magnetic disk device and disk access method therefor
US6154331A (en) Disk formatter write gate look-ahead device
US5943682A (en) Programmable control sequencer of disk controller and method for map allocation therefor
JPH01171044A (en) Method for positioning block of memory
JP2003036145A (en) Data transfer controller for fifo memory
JPH07147059A (en) Magnetic disk device
JP2748056B2 (en) Disk controller
JP3603474B2 (en) Disk unit
KR100189927B1 (en) Hard disk drive control device and method
JPH07287968A (en) Disk device
GB2308915A (en) Programmable control sequencer for disk drive
JPH10269729A (en) Disk apparatus

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040223

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060606

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060807

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060829

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061012

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061107

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061207

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20070109

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070115

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110119

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120119

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130119

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130119

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140119

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees