(57)【要約】【課題】  【解決手段】サーボパターンをディスクに書き込む方法において、サーボパターンはプロセッサで生成される。生成されたサーボパターンは、その後、ディスクに対して書き込まれる。サーボセクタのためのサーボパターンは単一のルーチンで生成されることが好ましい。【選択図】図１
2009509281.tif 000002
【特許請求の範囲】
【請求項１】
サーボパターンをディスクに対して書き込む方法であって、
少なくとも１つのプロセッサでサーボパターンを生成するステップと、
生成された前記サーボパターンをディスクに対して書き込むステップと、
を含む方法。
【請求項２】
サーボセクタのための前記サーボパターンが単一のルーチンで生成される、請求項１に記載の方法。
【請求項３】
前記サーボパターンが複数のフィールドに分けられ、パターンの異なるフィールドに関して異なるルーチンを使用することにより、前記サーボパターンを生成するステップを含む、請求項１に記載の方法。
【請求項４】
生成された前記サーボパターンは、ＡＧＣフィールド、アドレスマーク、グレイコードデータ、位置エラー信号データのうちの１つ以上を含む少なくとも１つのフィールドを有している、請求項１から請求項３のいずれか１項に記載の方法。
【請求項５】
前記サーボパターンが単一のプロセッサで生成される、請求項１から請求項４のいずれか１項に記載の方法。
【請求項６】
前記サーボパターンが複数のプロセッサで生成される、請求項１から請求項４のいずれか１項に記載の方法。
【請求項７】
各プロセッサが同一のパターン生成コードを使用する、請求項６に記載の方法。
【請求項８】
各プロセッサが１つの対応するセクタのためのパターンを一度に生成する、請求項６または請求項７に記載の方法。
【請求項９】
第１のプロセッサが第１のパターンを生成し、第２のプロセッサが第２のパターンを生成し、第１および第２のパターンをインタリーブして前記サーボパターンを形成する、請求項６から請求項８のいずれか１項に記載の方法。
【請求項１０】
ディスク用のサーボパターンを生成するための装置であって、
サーボパターンを生成するためのコードを有する少なくとも１つのプロセッサと、
生成された前記サーボパターンを、前記サーボパターンをディスクに対して書き込むためのヘッドへと送るための出力手段と、
を備える装置。
【請求項１１】
前記プロセッサは、サーボセクタのための前記サーボパターンを単一のルーチンで生成するように構成されている、請求項１０に記載の装置。
【請求項１２】
前記サーボパターンが複数のフィールドに分けられ、１または複数の前記プロセッサは、パターンの異なるフィールドに関して異なるルーチンを使用することによりサーボパターンを生成するように構成されている、請求項１０に記載の装置。
【請求項１３】
前記プロセッサは、ＡＧＣフィールド、アドレスマーク、グレイコードデータ、位置エラー信号データのうちの１つ以上を含む少なくとも１つのフィールドを有するサーボパターンを生成するように構成されている、請求項１０から請求項１２のいずれか１項に記載の装置。
【請求項１４】
前記サーボパターンを生成するためのコードを有する単一の前記プロセッサを有している、請求項１０から請求項１３のいずれか１項に記載の装置。
【請求項１５】
前記サーボパターンを生成するためのコードを有する複数のプロセッサを備えている、請求項１０から請求項１４のいずれか１項に記載の装置。
【請求項１６】
各プロセッサが同一のパターン生成コードを使用する、請求項１５に記載の装置。
【請求項１７】
各プロセッサが１つの対応するセクタのための前記パターンを一度に生成するように構成されている、請求項１５または請求項１６に記載の装置。
【請求項１８】
第１のプロセッサが第１のパターンを生成するように構成されており、第２のプロセッサが第２のパターンを生成するように構成されており、第１および第２のパターンをインタリーブしてサーボパターンを形成するように構成されたコントローラを備えている、請求項１５から請求項１７のいずれか１項に記載の装置。
【請求項１９】
前記サーボパターンが正しい順序で出力されるように、前記プロセッサの出力を制御するためのシーケンサを備えている、請求項１５から請求項１８のいずれか１項に記載の装置。
【請求項２０】
生成されるべきサーボパターンのためのトラック番号およびセクタ番号に関連するデータを受けて記憶するように構成され、そして、前記データを前記プロセッサへ送るように構成されたメモリを備えている、請求項１０から請求項１９のいずれか１項に記載の装置。
【請求項２１】
生成された前記サーボパターンをプロセッサから受けるように構成された出力バッファメモリを備えている、請求項１０から請求項２０のいずれか１項に記載の装置。
【請求項２２】
前記出力バッファメモリがＬＩＦＯ（後入れ先出し）とＦＩＦＯ（先入れ先出し）との間で動的に構造化可能であり、それにより、生成されたサーボパターンを、それが出力メモリバッファによって出力されるときに、反転させることができる、請求項２１に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この出願は、参照することによってその内容が本願に組み入れられる２００５年９月２１日に出願された米国出願第６０／７１８７２９号の優先権の利益を主張する。
【０００２】
本発明は、サーボパターンを生成して当該サーボパターンをディスクに対して書き込むための方法および装置に関する。
【背景技術】
【０００３】
ハードディスクが製造される際には、いわゆるサーボトラックまたはパターンがディスクに対して永久的に書き込まれる。これらのサーボトラックは、ディスクのデータ領域の全体にわたって周方向および径方向に間隔を置いて書き込まれるデータのバーストの形態を成している。サーボトラックは、ディスクの通常の使用中にハードディスクの読み取り／書き込みヘッド（プロダクトヘッドとして知られる）によって使用され、それにより、ヘッドはディスク上におけるその位置を知ることができる。動作時、ハードディスクは、ヘッドをディスク上に位置決めすることができるとともに、ディスク自体から読み取られる位置情報およびタイミング情報を使用してクローズドループでデータを読み戻すことができる。サーボパターンは、一般に、数百回転を伴って等間隔の周方向位置で書き込まれる。重要なことには、これらのパターンは、互いに位相コヒーレントに書き込まれなければならない。この要件は、難しく、後述するように磁気クロックトラックまたは外部エンコーディング装置からのフィードバックを必要とする。
【０００４】
特に、従来、サーボトラックは、製造中に以下の方法で書き込まれていた。ハードディスク、プロダクト読み取り／書き込みヘッド、モータ等を備えるヘッドディスクアセンブリは、サーボトラックライタ内に挿入される。サーボトラックライタは、いわゆるクロックトラックを書き込むためにヘッドディスクアセンブリ内に挿入されるそれ自体のいわゆるクロックヘッドを有している。このクロックトラックは、その後、クロックヘッドによって読み戻され、それにより、サーボトラックライタに対するディスクの角度位置を常に正確に知ることができ、その結果、プロダクトヘッドは所望の場所にサーボデータを書き込むことができる。
【０００５】
いわゆるメディアライタは、ディスクがヘッドディスクアセンブリ内に組み込まれる前にサーボトラックを複数のディスクに対して同時に書き込むことにより同様に動作する。
【０００６】
別の手段として、いわゆるセルフサーボ書き込みシステムが現在開発されている。これらのシステムは、別個のクロックヘッドの必要性を回避し、その代わり、プロダクトヘッドを使用して、サーボデータとインタリーブされるそれ自体のクロックデータを書き込むとともに、それがサーボトラックをディスクにわたって書き込む際にそれ自体の基準点を形成する。他の代わりの構成では、光学エンコーダシステムなどの外部エンコーダがクロックトラックの代わりに使用されても良く、この場合も先と同様、別個のクロックヘッドの必要性が回避される。
【０００７】
ハードドライブ自体のエレクトロニクスは、従来、サーボパターンを生成することができず、また、ディスクがドライブの外側で書き込まれるメディアライタの場合には、いずれにしても、ハードドライブ自体のエレクトロニクスをタスクのために利用できない。したがって、サーボパターンを生成するタスクのために特定のエレクトロニクスが必要とされる。
【０００８】
従来、サーボパターンは以下の３つのフィールドタイプから構成されている。
（ｉ）固定周波数。これは、チャンネルＡＧＣ（自動利得制御）およびＰＬＬ（フェーズロックドループ）をロックするために使用される。非固定周波数ブロックが同期化マークとして使用されても良い。これらのフィールドは、殆どのトラック上の殆どのサーボフレームに共通している。
（ｉｉ）グレイコード。これらは、グレイコードを用いてエンコードされたトラック番号及びおそらくセクタ番号を含んでいる。これらは、一般に、ある部分がトラック間ベースで更新し且つある部分がトラック間ベースで固定されるがセクタ間ベースで変化するような形態でレイアウトされる。
（ｉｉｉ）ＰＥＳ（位置エラー信号）。これらは、トラック間ベースで変化される固定周波数パターンのブロックであり、一般に８サーボトラック毎にパターンを周期的に繰り返す。
【０００９】
従来のＳＴＷ方式は、ＲＡＭベースのアーキテクチャまたはカスタムハードウェア（再構成可能論理に基づいていても良い）に依存する。
【００１０】
ＲＡＭベースのアーキテクチャにおいては、パターン全体をそのパターンのサイズに起因してエレクトロニクスのＲＡＭ内に記憶することは現実的ではない。しかしながら、従来のサーボパターンはトラック間の差が最小である。トラック境界での更新は、タイミングページにおいて数ビットをグレイコード内で変えることから成り、タイミングページは次のＰＥＳパターンへ変えられる。従来の同心書き込み操作では、書き込まれるべきパターンが所定の時間に更新され、その最中にヘッドポジショナがヘッドを次のトラックへ移動させる。これは一般的には３μｓ未満である。これは、従来は、僅かなトラック間変化において適していた。ごく最近の開発では、パターンがスパイラルとして書き込まれ、したがって、セクタ間のギャップでパターンが更新されなければならない。これは一般的には１０μｓ未満である。これについては例えばＵＳ−Ｂ−６５０７４５０を参照されたい。
【００１１】
このＲＡＭベースのアーキテクチャは、サーボパターンが開発されて更に洗練されるようになってくるにつれて益々問題となってきた。特に、グレイコードが益々複雑になってきており、それらのコーディング方式により、全てのトラック上の全てのセクタを個別に計算しなければならない。これは、カスタムＡＬＵ（数値演算ユニット）命令を伴うソフトコアプロセッサを使用してプロセスを加速することによって１つの周知のサーボパターン発生器で達成される。この場合、制御バッファは、異なるタイミングページを異なるセクタで使用できるようにする情報を保持しなければならない。また、この場合には、特定のトラックのサーボセクタの代わりにシリアルナンバー情報をエンコードするための要件が存在し、これにより、問題が更に複雑になる。これについては例えばＵＳ−Ｂ−６３６６４１９を参照されたい。
【００１２】
近年、マルチディスクライタ、すなわち、いわゆるメディアライタの使用が増えることにより、多数の書き込み操作がインタリーブされることから、システムに対して更なる要求が課され、それにより、パターン密度および複雑度が高まる一方、更新を適用できるセクタ間ギャップが減少する。
【００１３】
パターンの複雑度の増大に対応するため、ＲＡＭベースのアーキテクチャに関連するソフトウェアも複雑になっている。ハードディスクドライブ製造メーカは、一般に、簡単ではなく且つサーボトラックライタまたはメディアライタのサプライヤからのサポートを要する独自の記述言語でパターンを記述している。この場合、この言語を解釈してＲＡＭにダウンロードされるＲＡＭ画像を構築し且つ最新情報を計算してそれらの最新情報を適切なポイントで適用するためにソフトウェア層が必要とされる。また、パターン記述の書き込みを支援する視覚化ソフトウェアツールなどのパターン開発ツールが顧客によって期待されている。
【００１４】
他のカスタムハードウェアアーキテクチャは、パターン毎にカスタムハードウェア（再構成可能ハードウェアの場合にはカスタムＦＰＧＡロードであっても良い）を用いてパターンを生成できる。ハードウェアが再構成可能でない場合には、これにより、ハードディスクを製造するために必要とされる資本設備の自由度がかなり制限される。再構成可能論理に基づく解決策は十分な性能を与えるが、これらのアーキテクチャに基づいて新たなパターンを維持して開発するために必要なリソース要求および高いスキルレベルにより、サーボトラックライタの寿命において当該解決策が高価となる。
【００１５】
したがって、簡単なパターン記述言語および所定のハードウェアを使用して制御でき且つ現代のサーボパターンの性能要求を満たすことができるダイナミックパターン生成エンジンの要求が存在する。
【発明の開示】
【課題を解決するための手段】
【００１６】
本発明の第１の態様によれば、サーボパターンをディスクに対して書き込む方法であって、少なくとも１つのプロセッサでサーボパターンを生成するステップと、生成されたサーボパターンをディスクに対して書き込むステップとを含む方法が提供される。
【００１７】
したがって、本発明は、前述した周知のＲＡＭベースのパターン発生器を、パターンを生成する１つ以上のプロセッサと置き換える。プロセッサまたは各プロセッサは標準的な
「既製の」プロセッサであっても良い。パターンは、業界基準言語、例えばＣ（必要に応じてコンパイルされる）などのソフトウェアを使用して容易に生成することができる。業界基準言語などのソフトウェアのこの使用により、ディスクドライブ製造メーカがそれら自身の特定の要件にしたがってサーボパターンを容易に変えることができる。他の利点は、コストを低く抑える任意の外部ＲＡＭ（しかし、これは、幾つかの目的のために設けられても良い）を設ける必要がないという点である。好ましいアーキテクチャはホストレベルソフトウェアから多くのタスクを取り除くため、当該アーキテクチャは、特にシーケンサが位置決めシステムを直接に制御できるようにする機構が設けられる場合には、螺旋状の他の複雑なパターン書き込みのための極めて優れたアーキテクチャをもたらし、したがって、全てのタイムクリティカルな操作からホストプロセッサを解放する。また、このアーキテクチャはハードウェアアーキテクチャを完全にフレキシブルにし、そのため、ハードウェアがパターン形成についてあれこれ推測することなく、新たな機能に容易に対応することができる。このことは、一般に、新たなパターン要件が生じる際にハードウェアを変更させる必要がないことを意味している。また、好ましいアーキテクチャは、フルレートでストリームを形成するのではなく、スキームの最後のポイントにおいてフルレートストリームで操作するだけであるため、旧来のアーキテクチャの困難の多くを克服する。
【００１８】
後述する好ましい実施形態は、特に、ハードディスクの製造中にサーボパターンを生成してハードディスクに対して書き込むことに関するものであるが、この技術は、例えばヘッド・ディスク検査で使用されるような他のディスクドライブパターン書き込みシナリオにも適用できる。
【００１９】
実際には、好ましい実施形態では、サーボパターンは、関連するセクタのセクタ番号およびトラック番号に基づいてセクタ毎に生成される。
【００２０】
サーボセクタのためのサーボパターンは単一のルーチンで生成されることが好ましい。
【００２１】
一実施形態では、サーボパターンが複数のフィールドに分けられ、１または複数のプロセッサは、パターンの異なるフィールドに関して異なるルーチンを使用することによりサーボパターンを生成するようになっている。
【００２２】
一実施形態において、プロセッサは、ＡＧＣフィールド、アドレスマーク、グレイコードデータ、位置エラー信号データのうちの１つ以上を含む少なくとも１つのフィールドを有するサーボパターンを生成するようになっている。
【００２３】
１つの実施形態では、サーボパターンが単一のプロセッサで生成される。明らかに、これは、十分に高速なプロセッサを必要とするが、おそらく、実際に実施するための最も簡単な実施形態である。
【００２４】
しかしながら、現在好ましい実施形態において、サーボパターンは複数のプロセッサで生成される。この実施形態は、サーボパターンを生成するために、速度が遅いプロセッサ、したがって安価で容易に利用できるプロセッサを用いることができる。各プロセッサは同一のパターン生成コードを使用しても良い。サーボパターンが複数のフィールドに分けられ且つプロセッサがパターンの異なるフィールドに関して異なるルーチンを使用することによりサーボパターンを生成するようになっている実施形態では、異なるルーチンが異なるプロセッサ間で分配されても良い。例えば、第１のプロセッサが第１のフィールドを生成し、第２のプロセッサが第２のフィールドを生成するなどしても良い。一実施形態では、各プロセッサが１つの対応するセクタのためのパターンを一度に生成する。一実施形態では、第１のプロセッサが第１のパターンを生成し、第２のプロセッサが第２のパターンを生成し、また、方法は、第１および第２のパターンをインタリーブしてサーボパターンを形成することを含む。プロセッサは、異なるパターンタイプを同時に或いは素早く連続して書き込むことができるように分割されても良い。
【００２５】
本発明の第２の態様によれば、ディスク用のサーボパターンを生成するための装置であって、サーボパターンを生成するためのコードを有する少なくとも１つのプロセッサと、生成されたサーボパターンを、サーボパターンをディスクに対して書き込むためのヘッドへと送るための出力と、を備える装置が提供される。
【００２６】
プロセッサは、サーボセクタのためのサーボパターンを単一のルーチンで生成するようになっていることが好ましい。
【００２７】
サーボパターンが複数のフィールドに分けられ、１または複数のプロセッサが、パターンの異なるフィールドに関して異なるルーチンを使用することによりサーボパターンを生成するようになっていても良い。
【００２８】
プロセッサは、ＡＧＣフィールド、アドレスマーク、グレイコードデータ、位置エラー信号データのうちの１つ以上を含む少なくとも１つのフィールドを有するサーボパターンを生成するようになっていても良い。
【００２９】
１つの実施形態において、装置は、サーボパターンを生成するためのコードを有する単一の前記プロセッサを有している。
【００３０】
しかしながら、現在好ましい実施形態において、装置は、サーボパターンを生成するためのコードを有する複数のプロセッサを備えている。各プロセッサは同一のパターン生成コードを使用することが好ましい。一実施形態において、各プロセッサは、１つの対応するセクタのためのパターンを一度に生成するようになっている。一実施形態では、第１のプロセッサが第１のパターンを生成するようになっており、第２のプロセッサが第２のパターンを生成するようになっており、また、装置は、第１および第２のパターンをインタリーブしてサーボパターンを形成するようになっているコントローラを備えている。装置は、サーボパターンが正しい順序で出力されるようにプロセッサの出力を制御するためのシーケンサを備えていることが好ましい。
【００３１】
一実施形態において、装置は、生成されるべきサーボパターンのためのトラック番号およびセクタ番号に関連するデータを受けて記憶するようになっており且つ前記データをプロセッサへ送るようになっているメモリを備えている。
【００３２】
一実施形態では、代わりの「分断攻略」方法論が使用される。この実施形態では、サーボパターンが複数のフィールドに分けられ、異なるルーチンがパターンの異なるフィールドを担う。これらのルーチンは、単一のプロセッサで実行することができ、あるいは、複数のプロセッサ間で分配することができる。
【００３３】
一実施形態において、装置は、生成されたサーボパターンをプロセッサから受けるようになっている出力バッファメモリを備えている。出力バッファメモリがＬＩＦＯ（後入れ先出し）とＦＩＦＯ（先入れ先出し）との間で動的に構造化可能であっても良く、それにより、生成されたサーボパターンをそれが出力メモリバッファによって出力されるように反転させることができるようになっていても良い。
【００３４】
ここで、添付図面を参照して、本発明の実施形態を一例として説明する。
【発明を実施するための最良の形態】
【００３５】
図１を参照すると、サーボパターン発生器１は、処理要素２のファームを有している。この実施例において、全ての処理要素２は、サーボセクタを生成してそれらを出力ＦＩＦＯ（先入れ先出し）３，３’（図２参照、以下で更に説明する）に入れるために同一のコードまたはルーチンを実行する。ＤＭＡ（ダイレクトメモリアクセス）コントローラ４は、ＦＩＦＯ３，３’からデータを転送するために使用される。処理要素２は、処理要素２のファームを順序付けてこれらの処理要素に対して正しいセクタ・トラック番号を与える役目を果たすシーケンサ６に対して割込みライン５を介して接続されている。各処理要素２は、それがサーボパターンセクタの生成を完了してその結果をＦＩＦＯ３（図２）に記憶した時期を割込み５を介してシーケンサ６に通知する。また、各処理要素は、そのセクタの長さもシーケンサ６に知らせる。シーケンサ６は、その後、処理要素２に対して更新されたトラック・セクタ番号を与えるとともに、それを再起動してその結果を代わりのＦＩＦＯ３’（図２）に記憶する。正しいポイントで、シーケンサ６により、ＤＭＡコントローラ４は、ＤＭＡ転送をセットアップして、処理要素２のＦＩＦＯ３，３’からの出力データをアライナ１３へ移動させる。その後、アライナ１３は、データをそれぞれのシリアライゼーションＦＩＦＯ７，７’へ転送してデータ幅を補償する。
【００３６】
安定したデジタル論理システムの設計を簡略化する固定クロックから可能な限り多くのシステムを実行することが望ましい。最後のシリアライザ１０，１１，１２は、カスタマ要件と書き込まれるディスクの回転速度とによって決定されるＴｓクロック８から実行しなければならない。また、Ｔｓクロック８は、モータ速度変化を含む機械的現象を補償するために、書き込まれるディスクにフェーズロックされる。正しい速度でデータがシリアライザ１０，１１，１２へロードされるように、シリアライゼーションＦＩＦＯ７，７’においては、それぞれの最後のシリアライザ１０，１１，１２へのデータワード転送を管理して一定のシリアライゼーションストリームを維持する分周器９が使用される。
【００３７】
周知のパターン発生器によって現在生成される多くの信号のうち、厳密に言えば実際に必要とされる唯一の２つは、ヘッド書き込みを制御するプリアンプへ直接に送られるＷｒｉｔｅ  ＧａｔｅおよびＷｒｉｔｅ  Ｄａｔａである。Ｗｒｉｔｅ  Ｇａｔｅは、プリアンプを書き込みモードで作動させ、また、Ｗｒｉｔｅ  Ｄａｔａは、書き込まれるべきビットの極性を規定する。パターンが径方向に重なり合って書き込まれるため、両方の信号を使用してサーボパターンを形成することが重要である。各処理要素２は、この実施形態では、必要に応じてＷｒｉｔｅ  Ｇａｔｅ（ＷＧ）シリアライザ１１およびＷｒｉｔｅ  Ｄａｔａ（ＷＤ）シリアライザ１２に対して送られるＷｒｉｔｅ  Ｇａｔｅ信号およびＷｒｉｔｅ  Ｄａｔａ信号の両方を生成するために使用される。
【００３８】
１つの好ましい実施形態において、データは、３２ビットワードとして送り回される。この場合、１６ビットはＷｒｉｔｅ  Ｄａｔａを表わしており、１６ビットはＷｒｉｔｅ  Ｇａｔｅを表わしている。サーボセクタの長さが１６の倍数でない場合もあるため、アライナ１３は、処理要素２から来るデータを再配置して１つのセクタから次のセクタへの移行時にデータのアライメントに対処するために使用される。
【００３９】
プリアンプにおいては、パターンを書き込むために２つの信号だけが必要とされるが、デバッグおよびシリアルストリームの生成などの他の操作（しかしながら、このタスクは理想的にはシーケンサ６によって行なわれる）においては更なる信号Ｓｅｃｔｏｒ  ＷｉｎｄｏｗまたはＳｅｃｔｏｒ  Ｍａｒｋが必要とされる。しかしながら、Ｓｅｃｔｏｒ  ＷｉｎｄｏｗまたはＳｅｃｔｏｒ  Ｍａｒｋは、ストリームをマージするプロセスでアライナ１３によって形成することができ、また、内在するパターンコードは、その形成を認識している必要はない。いずれにしても、Ｓｅｃｔｏｒ  Ｗｉｎｄｏｗ信号またはＳｅｃｔｏｒ  Ｍａｒｋ信号は、必要に応じてセクタウインドウ／セクタマーク（ＳＷ）シリアライザ１０へ送られる。
【００４０】
データが１６ビットワードで送り回されている場合、システム全体は、理論上、Ｔｓクロック速度の１６分の１よりも速く作動する必要はない。しかしながら、実際には、オーバヘッドにおいては僅かな余裕も必要とされる。現在の新しい一群の高性能ＦＰＧＡの多くは、各出力ピンに関連するシリアライザを有しており、これらのシリアライザは、前述した方法で機能するようになっており、したがって、処理要素２としての使用に適している。しかしながら、シリアライザを有するこれらの高性能ＦＰＧＡは、ＦＰＧＡ構造がＴｓクロック速度でシリアライザをサポートできる限り或いは外部シリアライザへのインタフェースをサポートできる限り、好ましい実施形態の必要条件ではない。実際には、必要とされる処理要素の数を最小限に抑えるために、システムは可能な限り高速でクロックされなければならない。例えば、Ａｌｔｅｒａが提供しているＮＩＯＳＩＩソフト−コアプロセッサは、最大１００ＭＨｚで動作できるとともに、５０％のオーバヘッドを仮定すると８００ＭＨｚのＴｓクロック速度をサポートすることができる（ソフト−コアプロセッサは、特に、必要とされる特定のタスクにしたがって命令をロードできるプロセッサである）。ＮＩＯＳＩＩプロセッサは一般に約２０００個のＦＰＧＡマクロ電池を占めている。現世代のＦＰＧＡ技術は１８００００個を越えるマクロ電池を有するデバイスを提供し、そのため、前述した処理要素２のファームが完全に可能である。
【００４１】
処理要素２のために例えばＡＳＩＣ（特定用途向け集積回路）を含むＦＰＧＡ以外のプロセッサが使用されても良いことは言うまでもない。
【００４２】
簡単にするため、シーケンサ６は、他のソフトコアプロセッサとして実施されても良い。しかしながら、そのプログラムコードは固定されたままにすることができる。また、異なるサーボパターンをインタリーブして単一のパターンを形成することを伴うものなど、更に複雑なパターンは、カスタムシーケンサ６によって管理することができる。この場合、処理要素２の１つのグループが１つのパターンのためのコードを実行し、他のグループが他のパターンのためのコードを実行する。シーケンサ６は、パターンのいずれの部分も他の部分の知識を要することなく、パターンの一部を正しいシーケンスに入れる操作を管理する。
【００４３】
図２を参照すると、好ましい処理要素２はソフトコアプロセッサ２０を有しており、ソフトコアプロセッサ２０はそれら自体のデータメモリ２１とプログラムメモリ２２とを有している。各処理要素２は、同一のカスタムＡＬＵ命令を有する命令ハードウェア２２を有しており、この命令ハードウェア２２は、任意の他の適した操作を用いてパターン、例えばグレイコードの構成をハードウェア加速するために使用される。トラック番号レジスタ２４およびセクタ番号レジスタ２５は、コントローラ４からトラック番号データおよびセクタ番号データをそれぞれ受け、これらのデータは、正しいサーボパターンを生成できるようにプロセッサ２０に対して供給される。各処理要素２は２つの出力ＦＩＦＯ３，３’を有している。任意の特定の時間において、一方のＦＩＦＯ３，３’は、形成下でサーボセクタを記憶するために使用され、また、他方のＦＩＦＯ３，３’は、転送されるのを待っているサーボセクタのために使用される。アーキテクチャを加速するために、一般に、セクタ間には書き込みゲートがＯＦＦされて書き込みデータが無い長いギャップが存在するため、コントローラ４は、処理要素２によって生成され且つビットカウントレジスタ２６内に記録されるビットカウントが切れる前に出力ＦＩＦＯ３，３’が空になる場合、このギャップ状態をとる。
【００４４】
処理要素２は、図３に示されるような更に大きな自由度が得られるように、３つの方法で機能強化することができる。
【００４５】
第１に、処理要素バス３１に対するＤＭＡコントローラ３０により、ベースセクタを最初に計算してローカルデータメモリ２１に記憶することができる。この場合、パターン生成コードだけが更新を行ない、サーボパターンの残りはデータメモリ２１から出力ＦＩＦＯ３，３’へと流される。
【００４６】
第２に、トラック番号レジスタおよびセクタ番号レジスタ２４，２５をＦＩＦＯ３２と置き換えることができる。最大で入力パラメータＦＩＦＯ３２の長さまでの任意の数のパラメータをシーケンサ６から処理要素２へと送ることができる。これらのパラメータは、それらの意味に関して成されるハードウェア仮定を伴わないソフトウェアに基づいて解釈される。同様の原理は、データを処理要素２から対応する出力パラメータＦＩＦＯ３３を介してシーケンサ６へ送るために適用される。
【００４７】
第３に、出力ＦＩＦＯ３，３’は、決して同時に読み取られて書き込まれないため、ＬＩＦＯ（後入れ先出し）またはＦＩＦＯ３４，３４’として動的に構成されるように設計できる。ＬＩＦＯモードのときには、幾つかの状況で役立つ或いは望ましいセクタが反転される。前述した従来技術でセクタを反転させるためには、現在、異なるパターンコードが必要である。この実施形態では、パターンコードを変える必要がなく、シーケンサ６だけが変化を知っていれば済む。
【００４８】
カスタム命令ハードウェア２３は、全処理時間の限られた区間にわたってのみ使用されるため、必要に応じてこれを時分割多重化して実施リソースを節約することができる。
【００４９】
サーボセクタデータを生成するための、あるＣコードの一例を以下に記す。
【００５０】
typedef unsigned long ULONG;
typedef unsigned int USHORT;
typedef unsigned char UCHAR;
#define SECTORSIZE 64
USHORT usSector [SECTORSIZE];
ULONG UlOffset;
void Sector(int iTrack, int iSector);
void AppendBits (USHORT usWord, ULONG ulOffset);
void NiosGray(int iTrack, int iSector);
USHORT usMask[16] = { 0x0000, 0x8000, OxCOOO, OxEOOO,
OxFOOO, 0xF800, OxFCOO, OxFEOO,
OxFFOO, 0xFF80, OxFFCO, OxFFEO,
OxFFFO, 0xFFF8, OxFFFC, OxFFFE };
void Sector (int iTrack, int iSector)
// This function would be called by main to build data
// for the required sector
{
int i;
USHORT usPreamble ( OxAAAA);
USHORT usPreambleLength(6);
// clear sector data storage area
ulOffset=0;
for (int i=0; i<SECTORSIZE; i++)
usSector [i] =0x0000;
//Add preamble in 16 bit words....
for(i = 0; i< usPreambleLength; i++)
AppendBits (usPreamble, 16);
AppendBits (0x002A, 6);
// Now index bits
if (iSector==0)
AppendBits (0x00B3 , 8);
else
AppendBits (0x00B4, 8);
//Gray code
NiosGray (iTrack, iSector);
//Burst data
switch (iTrack%4)
{
case 0:   AppendBits (OxAAAA,16);
AppendBits (OxOOOA, 4);
AppendBits (OxAAAA, 16);
AppendBits (OxOOOA, 4);
break;
case 1:   AppendBits (0x5555,16);
AppendBits (0x0005,4);
AppendBits (OxAAAA, 16);
AppendBits (OxOOOA, 4);
break;
case 2:   AppendBits (OxAAAA, 16);
AppendBits (OxOOOA, 4);
AppendBits (0x5555,16);
AppendBits (0x0005,4);
break;
case 3:   AppendBits (0x5555,16);
AppendBits (0x0005,4);
AppendBits (0x5555,16);
AppendBits (0x0005,4);
break;
void AppendBits (USHORT usWord, ULONG ulSize)
// This function puts the data bits into the sector data
// storage area
{
USHORT usWordAdr = ulOffset/16;
UCHAR ucBit = (ulOffset) %16;
USHORT usInsertWord =
(usSector [usWordAdr] &usMask[ucBit] ) (usWord"ucBit) S-OxFFFF;
usSector [usWordAdr] = usInsertWord;
if (ucBit+ulSize>16 )
{
USHORT usInsertWord2 = (usWord"(16-
UCBit) )&OxFFFF;
usSector [usWordAddress+1] = uslnsertword2;
}
ulOffset+=ulSize;
}
void NiosGray(int iTrack, int iSector)
// This function would normally invoke the hardware Gray
// code generator.
// A simple software equivalent is shown here:
{
USHORT usTrackBits(lO);
USHORT usSectorBits (6);
AppendBits (iTrack<A> (i[tau]rack"l) , usTrackBits);
AppendBits (iSector<A> (iSector"l) , usSectorBits);
}
【００５１】
特に図示の実施例に関して本発明の実施形態を説明してきた。しかしながら、言うまでもなく、説明した実施例に対しては、本発明の範囲内で変形および改良が成されても良い。
【図面の簡単な説明】
【００５２】
【図１】処理要素のファームが使用される本発明の一実施形態に係るサーボパターン発生器の一例のアーキテクチャを概略的に示している。
【図２】図１の処理要素のうちの１つの更に詳細な図を概略的に示している。
【図３】本発明の一実施形態に係るサーボパターン発生器の第２の例のアーキテクチャを概略的に示している。
【図１】
2009509281.tif 000003
【図２】
2009509281.tif 000004
【図３】
2009509281.tif 000005
【国際調査報告】
2009509281.tif 000006
2009509281.tif 000007