(57)【要約】      （修正有）【課題】シーケンス制御を有する改良した超長命令語プロセッサの提供。【解決手段】各サイクル期間中に、本プロセッサは命令のフィールド内の値に基づいて機能ユニットに対し制御信号を発生する。各命令はその制御信号がその命令に基づいて発生されるべきサイクル数を特定する繰り返しカウントを包含している。命令セットは、単一命令の繰り返し実行、複数の命令からなるブロックの繰り返し実行、又はプログラム内の分岐を可能とする流れ制御命令を包含している。プロセッサはコンピュータのハードドライブ用のディスク制御器に関連して使用することが可能である。柔軟性のあるシーケンス動作は、ハードドライブ制御器を異なるタイプの媒体に関連して使用すべく容易に再プログラムすることを可能とし、又はディスク制御器がディスクからのデータを回復する能力を増加させるためにディスク読取エラーが検知される場合に動的に再プログラムすることを可能とする。【選択図】      図２
2006221624.tif 000002
【特許請求の範囲】
【請求項１】
複数個の機能ユニットを具備するタイプのプロセッサを動作させる方法において、
（ａ）複数個のフィールドを具備する命令を与え、
（ｂ）前記命令の多数の繰り返しを実行し、各繰り返しは前記複数個のフィールドのうちの第一部分から派生した制御信号を前記複数個の機能ユニットへ適用することを包含しており、
（ｃ）前記複数個のフィールドのうちの第二部分から派生したデータに基づいて実行される前記命令の繰り返しの数を制御する、
ことを特徴とする方法。
【請求項２】
請求項１において、複数個の命令をメモリ内に格納し、前記メモリ内に格納される命令が前記命令を包含する複数個の命令からなる少なくとも１個のブロックを包含しており、前記命令の繰り返しの数を制御する場合に、複数個の命令からなるブロックの繰り返しの数を制御することを特徴とする方法。
【請求項３】
請求項１において、前記プロセッサがシーケンサを有しており、且つ前記命令の繰り返しの数を制御する場合に、前記複数個のフィールドのうちの前記第二部分を前記シーケンサへ適用することを包含している方法。
【請求項４】
請求項３において、前記命令の繰り返しの数を制御する場合に、前記シーケンサを制御して前記複数個のフィールドのうちの前記第一部分から派生した制御信号を相次ぐ時間間隔の数において前記複数個の機能ユニットへ適用することを特徴とする方法。
【請求項５】
請求項１において、前記プロセッサが超長命令語プロセッサであることを特徴とする方法。
【請求項６】
プロセッサにおいて、
（ａ）各々が制御入力を持っている複数個の機能ユニット、
（ｂ）各フィールドが１個の値を持つことが可能な複数個のフィールドを具備している命令入力及び各制御出力が機能ユニットの制御入力へ結合されている複数個の制御出力を有しているシーケンサであって、
（ｉ）複数個のサイクルを定義する出力を有しているタイミング回路、
（ｉｉ）前記命令入力の前記複数個のフィールドのうちの第一部分の値に応答して、１つのサイクル期間中に、前記制御出力の値を発生させる論理、
（ｉｉｉ）１つの値を有することが可能な繰り返しカウンタを有するフロー制御論理であって、前記繰り返しカウンタが前記命令入力の前記複数個のフィールドのうちの第二部分における１つの値に基づいて１つの値を受取るべく結合されており、前記フロー制御論理が前記命令入力の前記複数個のフィールドのうちの前記第二部分から受取った前記値によって決定されるサイクル数期間中に前記発生される値を繰り返すための値を発生するために前記論理を制御するための値を発生させるために前記論理に結合されているフロー制御論理、
を有しているシーケンサ、
を有していることを特徴とするプロセッサ。
【請求項７】
請求項６において、前記シーケンサがパイプライン型であり、且つ前記命令入力の前記複数個のフィールドの第一部分の値に応答して前記制御出力に関する値を、１つのサイクル期間中に、発生させるための前記論理が、１つ前のサイクル期間中に前記命令入力の前記複数個のフィールドのうちの第一部分の値に応答して前記制御出力の値を発生させることを特徴とするプロセッサ。
【請求項８】
請求項６において、前記プロセッサが超長命令語プロセッサであることを特徴とするプロセッサ。
【請求項９】
請求項６において、
（ａ）前記プロセッサが、更に、
（ｉ）アドレス入力を有しているメモリ、
（ｉｉ）アドレス入力及び前記メモリの前記アドレス入力へ結合しているアドレス出力を有しているアドレスレジスタ、
を有しており、且つ
（ｂ）前記シーケンサが、更に、
（ｉ）１つの値を有することが可能なブロック繰り返しカウンタを有している第二フロー制御論理、
（ｉｉ）アドレス出力を有している分岐制御回路、
（ｉｉｉ）前記分岐制御回路と、前記ブロック繰り返しカウンタと、前記アドレスレジスタとに結合されているスイッチング回路であって、前記繰り返しカウンタが所定の範囲内の値を有することに応答して前記分岐制御回路の前記アドレス出力を前記アドレスレジスタの前記アドレス入力へ選択的に結合されるべく適合されているスイッチング回路、
を有している、
ことを特徴とするプロセッサ。
【請求項１０】
請求項９において、更に、制御入力を有しているローディング回路を有しており、前記ローディング回路は前記命令入力及び前記ブロック繰り返しカウンタの第一フィールドへ結合しており、前記ローディング回路は前記ローディング回路の前記制御入力における値に応答して前記第一フィールドの値を前記ブロック繰り返しカウンタへ選択的に結合させるべく適合されていることを特徴とするプロセッサ。
【請求項１１】
請求項１０において、更に、前記命令入力の第二フィールドへ結合しているオペレーションコード入力を有しているデコーダーを有しており、前記デコーダーは前記ローディングユニットの制御入力へ結合している制御出力を有しており、前記デコーダーは前記オペレーションコード入力における値に応答して前記制御出力における値をセットすることを特徴とするプロセッサ。
【請求項１２】
請求項６のプロセッサを使用するディスクから読取った情報を表わす信号を処理すべく適合されているディスク制御器において、前記複数個の機能ユニットが相互接続されており、且つ前記信号が前記機能ユニットのうちの少なくとも１つへ結合されることを特徴とするディスク制御器。
【請求項１３】
請求項１２において、更に、信号プロセッサを有していることを特徴とするディスク制御器。
【請求項１４】
請求項１３において、更に、各々が１つの命令を格納する複数個の位置を有しているメモリ、及び前記信号プロセッサと前記メモリとを相互接続するバスを有していることを特徴とするディスク制御器。
【請求項１５】
請求項１３において、前記プロセッサ及び複数個の相互接続された機能ユニットが超長命令語プロセッサを形成していることを特徴とするディスク制御器。
【請求項１６】
ディスク制御器を動作させる方法において、
（ａ）信号を発生するために記録媒体を検知し、
（ｂ）各々が制御入力を有している複数個の機能ユニットへ前記信号を供給し、前記複数個の機能ユニットは出力を有しており、
（ｃ）メモリから命令を読取り、
（ｄ）メモリから読取った前記命令に基づいて前記ディスク制御器の動作の少なくとも１つのサイクル期間中に前記複数個の機能ユニットへの制御入力を発生する、
ことを特徴とする方法。
【請求項１７】
請求項１６において、動作の少なくとも１つのサイクル期間中に前記複数個の機能ユニットに対して制御入力を発生する場合に、前記ディスク制御器の動作の多数の相次ぐサイクル期間中に前記複数個の機能ユニットに対して複数個の制御入力を発生し、前記サイクルの数がメモリから読取った命令の１つのフィールドの値に基づいて決定されることを特徴とする方法。
【請求項１８】
請求項１６において、更に、
（ａ）前記メモリ内に格納されている複数個の付加的な命令を実行し、前記付加的な命令は前記命令を包含する複数の命令からなるブロックを形成しており、
（ｂ）前記複数個の命令からなるブロック内の命令を多数回実行し、前記複数個の命令からなるブロック内における１個の命令はブロック繰り返しカウントを格納するフィールドを有しており、且つ前記ブロック内の命令を実行する数が前記繰り返しカウントに基づいている、
ことを特徴とする方法。
【請求項１９】
請求項１６のディスク制御器を動作させる方法において、更に、前記メモリ内に格納されている命令を変化させることを包含していることを特徴とする方法。
【請求項２０】
請求項１６のディスク制御器を動作させる方法において、更に、読取るべきデータが格納されている記録媒体の１つの領域を検知することから発生される信号に対して相関されている制御信号をアサートさせることを包含しており、且つ制御信号を発生する動作が、前記制御信号がアサートされるまで遅延されることを特徴とする方法。
【請求項２１】
請求項１６のディスク制御器を動作させる方法において、信号を発生するために記録媒体を検知する場合に、前記ディスクの１つの領域内に格納されているデータを表わす信号を発生するために前記記録媒体の１つの領域を検知し、更に、
（ａ）前記メモリから付加的な命令を読取り、前記命令及び前記付加的な命令が第一プログラムを表しており、
（ｂ）前記複数個の相互接続されている機能ユニットの出力が前記ディスクの領域内に格納されているデータを適切に表現するものでないことを判別し、
（ｃ）第二プログラムを実行している間に、複数個の相互接続されている機能ユニットにおいて前記ディスクの前記領域内に格納されているデータを表わす信号を処理する、
ことを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、大略、超長命令語プロセッサに関するものであって、更に詳細には、超長命令語プロセッサにおいて実行される命令の流れ制御に関するものである。
【背景技術】
【０００２】
プロセッサは良く知られており且つ多くの適用例において広く使用されている。スカーラーアーキテクチャを有するプロセッサは命令が実行される度に命令及びその命令に対するデータをフェッチする。命令が複数回実行されることを必要とするループを実行する場合に、スカーラーアーキテクチャを有するプロセッサはその命令を複数回をフェッチする。
【０００３】
幾つかのプロセッサはベクトルアーキテクチャを使用する。ベクトルアーキテクチャは、プロセッサが、１つの命令を一度フェッチし、次いで、異なるデータでそれを複数回実行することを可能とさせる。比較的大きなループを有する適用例においては、プログラムを実行するのに必要な全体的な時間は、各命令がループあたり一度フェッチされることが必要であるに過ぎないので、減少させることが可能である。ベクトルアーキテクチャは、プロセッサを実現することが可能な半導体ダイ上において著しい空間を必要とするので、スーパーコンピュータ及びその他の計算集約的適用例において使用されるハイエンドプロセッサに通常制限されている。
【０００４】
幾つかのスカーラープロセッサは、１個の命令の１つのフェッチに対して複数個のオペレーション即ち操作を実行すべく適合されている。然しながら、これらのプロセッサは、複数個のオペレーションを特定する命令が１つの命令ワード内においてエンコードされていることを必要としていた。このようなアーキテクチャは実際的に使用するためには困難であることが判明した。そのプロセッサに対する命令セットは、複数のオペレーションをエンコードする多くの新たな命令を収容すべく拡張されることが必要であった。更に、複数のオペレーションをエンコードする１つの命令に対してマップさせることが可能なプログラム内の命令のパターンを識別することが可能なコンパイラーを作成することは困難であることが判明した。
【０００５】
超長命令語（ＶＬＩＷ）プロセッサも既知である。ＶＬＩＷプロセッサにおいては、各命令は複数のフィールドを包含している。各フィールドは、プロセッサ内の機能ユニットに対して適用されるべき制御信号を特定する値を包含している。
【０００６】
ディスクドライブは、以前においては、プロセッサを包含するものではなかった。ディスクドライブは、大量の情報を格納するために多くのコンピュータシステムにおいて使用されている。図１は従来のデスクトップコンピュータにおいて使用することが可能であるようなディスクドライブ１００を示している。ディスクドライブ１００はディスクプラッター１１０を包含している。ディスクプラッター１１０はディスクドライブ１００用の物理的格納媒体である。
【０００７】
ディスク制御器１０５はディスクプラッター１１０上においての情報の読取及び書込を制御する。ディスク制御器１０５は、又、ディスクドライブ１００がインストールされるコンピュータ又はその他のシステムに対するインターフェースを提供する。この場合には、ディスクから情報を読取るディスクドライブ１００の部分が示されている。ディスク上に情報を書込むために同様の部分を使用することが可能であるが、説明の便宜上図示していない。
【０００８】
情報はディスクプラッター１１０の物理的特性を変更させることによりディスク上に格納される。例えば、ディスクプラッター１１０は磁界を発生すべく変更させることが可能なコーティングを包含することが可能である。１ビットの情報が、磁界を発生させるためにコーティングの非常に小さな区域を変更させることにより格納される。その区域に隣接して検知される磁界は、その区域内に論理１が格納されたことを表わすことが可能である。一方、その区域に隣接して磁界が存在しないことは、論理０が格納されていることを表わすことが可能である。
【０００９】
ヘッド１１２がディスクプラッター１１０の表面近くに位置されている。それは、ディスクプラッター１１０の小さな区域に隣接する磁界を検知するセンサーを包含している。ヘッド１１２の出力は、ディスク上の特定の区域内にどの情報が格納されているかを表わす。動作において、ディスクプラッター１１０が回転し、従ってヘッド１１２は複数の区域を通過し且つディスクプラッター１１０上の一連の区域にわたって検知した磁界を表わす信号を出力する。ヘッド１１２は、ディスクの表面にわたって行ったり来たり移動すべく制御される。このように、ディスクプラッター１１０の任意の区域をヘッド１１２の下側に持ってくることが可能である。ディスクプラッター１１０及びヘッド１１２の運動は同期されており、従ってヘッド１１２の出力は、既知の時間において、ディスクプラッター１１０の１つの領域に格納されている値を表わす。しばしば、ディスクドライブは、一度に複数個の値を読取るべく制御される。一度に読取られるこれらの値は、時々、「セクター」と呼ばれる。
【００１０】
ディスクドライブ１００内に格納されている情報は、通常、デジタル形態で格納されているが、ヘッド１１２はアナログ信号を出力する。ディスク制御器１０５はヘッド１１２からの出力を受取り且つアナログ信号を処理してディスクドライブ１００から読取った情報の特定のビットを表示する。
【００１１】
ディスク制御器１０５は、ここにおいては、ヘッド１１２の出力を処理するための一連の処理ブロック１１４1，１１４2，．．．，１１４Nを包含する処理回路１１４を包含すべく示されている。処理ブロックの各々は、ヘッド１１２により検知されたアナログ信号のディスクから読取った情報を表わすデジタルビットのストリームへの変換においての１つのステップである１つの機能を実施する。例えば、処理ブロック１１４1，１１４2，．．．，１１４Nのうちの１つは、タイミング回復機能を実施することが可能である。その他は、ディスクプラッター１１０から信頼性を持って情報を読み取るために利得又はオフセットを付加するか又はその他のオペレーションを実施することが可能である。
【００１２】
従来のディスク制御器においては、処理ブロックの各々は、ステートマシンにより制御される。この場合に、各処理ブロック１１４1，．．．，１１４Nは対応するステートマシン１２４1，１２４2，．．．，１２４Nを包含している。該ステートマシンの各々は１つのステート即ち状態を識別する値を格納するカウンタ又はレジスタを包含している。各ステートマシン１２４1，１２４2，．．．，１２４Nは、入力又はその他のファクタに基づいてステートマシンの現在の状態を変化させる論理回路を包含している。該論理回路は、又、各ステート即ち状態におけるステートマシンにより発生される出力を定義する。各ステートマシンの出力は、処理ブロック又は別のステートマシンを制御することが可能である。ステートマシンは、処理ブロック１１４1，１１４2，．．．，１１４Nの各々についての制御の所望のレベルを与えるべく構成することが可能である。
【００１３】
通常の動作において、処理ブロック１１４Nの出力はスイッチング回路１３０を通過し且つデジタル信号処理コア（ＤＳＰ）１２０へ接続される。処理ブロック１１４1，１１４2，．．．，１１４Nのチェーンがヘッド１１２からのアナログ信号をデジタル値のストリームへ変換するために充分な処理を与える場合には、ＤＳＰ１２０は、単に、ディスクドライブ１００がインストールされているコンピュータシステムに対してのインターフェースとして機能する。
【００１４】
処理ブロック１１４1，１１４2，．．．，１１４Nのチェーンがヘッド１１２により読取られたアナログ信号をデジタル値のストリームへ信頼性を持って変換することが不可能である場合には、ＤＳＰ１２０はオフライン処理を制御することが可能である。ＤＳＰ１２０は、処理ブロック１１４1，１１４2，．．．，１１４Nの各々からの値を受取るべく構成されている。ＤＳＰ１２０は、処理ブロックの各々の出力に基づいてデジタル値のストリームを回復することを試みるべくプログラムすることが可能である。一方、ＤＳＰ１２０は、例えば処理ブロック１１６等の更なる処理ブロックを処理回路１１４内の処理ブロックからなるチェーンへ接続させるべくスイッチ１３０を制御することが可能である。
【００１５】
処理ブロック１１６は、処理ブロック１１４1，１１４2，．．．，１１４Nが対応するステートマシン１２４1，１２４2，．．．，１２４Nにより制御されるのと同一の態様でステートマシン１２６により制御される。処理ブロック１１６がスイッチ１３０を介して処理回路１１４へ接続されているので、ディスクプラッター１１０から読取られた信号はデジタル値のセコンドパス（ｓｅｃｏｎｄ  ｐａｓｓ）計算のために処理回路１１４に対して再度適用することが可能である。処理ブロック１１６は、該信号について実施される処理を増強させ、従って、ディスクドライブ１００から信頼性を持って情報を読取ることが可能なチャンスを増加させるべく構成されている回路を包含している。
【発明の開示】
【発明が解決しようとする課題】
【００１６】
本発明は、以上の点に鑑みなされたものであって、上述した如き従来技術の欠点を解消し、改良したプロセッサ及びその動作方法を提供することを目的とする。本発明の別の目的とするところは、改良したディスクドライブ制御器を提供することである。
【課題を解決するための手段】
【００１７】
本発明の１つの側面によれば、複数個の機能ユニットを具備するタイプのプロセッサを動作させる方法において、
（ａ）複数個のフィールドを具備する命令を与え、
（ｂ）前記命令の多数の繰り返しを実行し、各繰り返しは前記複数個のフィールドのうちの第一部分から派生した制御信号を前記複数個の機能ユニットへ適用することを包含しており、
（ｃ）前記複数個のフィールドのうちの第二部分から派生したデータに基づいて実行される前記命令の繰り返しの数を制御する、
ことを特徴とする方法が提供される。
【００１８】
本発明の別の側面によれば、プロセッサにおいて、
（ａ）各々が制御入力を持っている複数個の機能ユニット、
（ｂ）各フィールドが１個の値を持つことが可能な複数個のフィールドを具備している命令入力及び各制御出力が機能ユニットの制御入力へ結合されている複数個の制御出力を有しているシーケンサであって、
（ｉ）複数個のサイクルを定義する出力を有しているタイミング回路、
（ｉｉ）前記命令入力の前記複数個のフィールドのうちの第一部分の値に応答して、１つのサイクル期間中に、前記制御出力の値を発生させる論理、
（ｉｉｉ）１つの値を有することが可能な繰り返しカウンタを有するフロー制御論理であって、前記繰り返しカウンタが前記命令入力の前記複数個のフィールドのうちの第二部分における１つの値に基づいて１つの値を受取るべく結合されており、前記フロー制御論理が前記命令入力の前記複数個のフィールドのうちの前記第二部分から受取った前記値によって決定されるサイクル数期間中に前記発生される値を繰り返すための値を発生するために前記論理を制御するための値を発生させるために前記論理に結合されているフロー制御論理、
を有しているシーケンサ、
を有していることを特徴とするプロセッサが提供される。
【００１９】
本発明の更に別の側面によれば、上記別の側面におけるプロセッサを使用するディスクから読取った情報を表わす信号を処理すべく適合されているディスク制御器において、前記複数個の機能ユニットが相互接続されており、且つ前記信号が前記機能ユニットのうちの少なくとも１つへ結合されることを特徴とするディスク制御器が提供される。
【００２０】
本発明の更に別の側面によれば、ディスク制御器を動作させる方法において、
（ａ）信号を発生するために記録媒体を検知し、
（ｂ）各々が制御入力を有している複数個の機能ユニットへ前記信号を供給し、前記複数個の機能ユニットは出力を有しており、
（ｃ）メモリから命令を読取り、
（ｄ）メモリから読取った前記命令に基づいて前記ディスク制御器の動作の少なくとも１つのサイクル期間中に前記複数個の機能ユニットへの制御入力を発生する、
ことを特徴とする方法が提供される。
【発明を実施するための最良の形態】
【００２１】
本発明は、以下の記載又は図面に例示した部品の配列及び構成の詳細に対する適用に制限されるものではない。本発明は、その他の実施例とすることが可能であり且つ種々の態様で実施することが可能なものである。又本明細書において使用する用語は説明のためのものであって制限するものとしてみなされるべきものではない。
【００２２】
図２は改良した制御アーキテクチャを有するディスクドライブ２００を示している。ディスクドライブ２００は、従来技術におけるディスク制御器１０５と類似したディスク制御器２０５を有することが可能である。それは、同一の信号処理回路を包含することが可能である。図２の例においては、従来技術におけるように、処理回路１１４、スイッチ１３０、処理ブロック１１６、ＤＳＰ１２０を包含している。然しながら、ここでは、ＤＳＰ１２０はシーケンサ２４０を制御すべくプログラムされるか又はその他の態様の構成とされている。
【００２３】
ディスク制御器２０５は、特別目的プロセッサと考えることが可能である。それは、プログラムを形成する一連の命令を実行することにより処理ブロック１１４1，１１４2，．．．，１１４N及び処理ブロック１１６の各々に対する制御信号を発生するシーケンサ２４０を包含している。ディスク制御器２０５はプログラムを格納するためのプログラムメモリ２５０を包含している。プログラムメモリ２５０は、好適には、比較的高速のメモリである。例えば、それはＳＲＡＭとすることが可能であるが、任意の適宜の揮発性又は非揮発性の格納装置を使用することが可能である。メモリ２５０の寸法は、本発明に関しての制限であることは必要ではない。然しながら、記載する実施例の１つの利点は、メモリ２５０が比較的小型のものとすることが可能であるということである。メモリ２５０は８Ｋバイト以下とすることが可能であり且つ約１Ｋバイトとすることが可能である。このようなメモリは例えば３２ビットワードに編成することが可能である。
【００２４】
プログラムメモリ２５０は、シーケンサ２４０によりフェッチされ次いで実行される命令を格納する。各命令は、処理回路１１４内の処理ブロック及び処理ブロック１１６の各々に対して制御信号を発行すること等のシーケンサ２４０により実施すべき機能を特定することが可能である。プログラムメモリ２５０内の命令は、又、メモリ２５０内に格納されているプログラムの実行の流れを特定することが可能である。
【００２５】
メモリ２５０は、任意の適宜の態様でシーケンサ２４０に対するプログラムでロードされる。図２において、ＤＳＰ１２０はバス２５２を介してメモリ２５０へ接続されていることが示されている。ＤＳＰ１２０は、例えば、ディスクドライブ２００のパワーアップ時にメモリ２５０内にプログラムをロードすることが可能である。一方、ＤＳＰ１２０は、プラッター１１０から読取ったセクターに関するセコンドパス処理を実施するためにディスク制御器２０５の動作期間中にメモリ２５０内のプログラムを変化させることが可能である。このような態様でシーケンサ２４０に対するプログラムを変化させることの能力は、信頼性を持って読取ることが不可能なセクターのオフライン処理を特定する上でディスクドライブ製造業者に対して著しい柔軟性を与える。
【００２６】
ＤＳＰ１２０は、ディスクドライブ２００の製造期間中にプログラムされる非揮発性格納装置又はフラッシュメモリからプログラムでメモリ２５０をロードすることが可能である。このように、ディスクドライブを製造する上で著しい柔軟性が提供される。
【００２７】
図３Ａ及び３Ｂはシーケンサ２４０を制御するためにメモリ２５０内に格納することが可能な命令の形態を例示している。この例においては、各命令はメモリ２５０の１つのワード（語）内に格納される。図３Ａは処理回路１１４内の処理ブロック及び処理ブロック１１６等の機能ユニットの動作を制御する命令３１０の１つの例を与えている。この例においては、命令３１０は各々が１つの処理ブロックに対応している複数の制御フィールドを包含している超長命令語（ＶＬＩＷ）の形態にある。図３Ａに示した形態の機能制御命令は、又、それからプログラムを読取るメモリ２５０内のブロックを特定すること等のプロセッサ動作のその他の側面を制御することも可能である。
【００２８】
命令３１０はオペレーションコード（ｏｐ  ｃｏｄｅ）フィールド３１２を包含している。オペレーションコードフィールド３１２は、命令３１０が実行される場合にディスク制御器２５０により実施すべきオペレーションを表わす値を包含している。シーケンサ２４０により実施されるべき各機能に対して異なるオペレーションコードが割当てられている。
【００２９】
命令３１０は複数の制御フィールド３１４1，３１４2，．．．，３１４Nを包含している。ディスク制御器２０５内の各処理ブロックは、それと関連している制御フィールドのうちの１つを有することが可能である。命令３１０が実行されると、シーケンサ２４０は対応する制御フィールド３１４1，３１４2，．．．，３１４Nにおける値に従って処理ブロックの各々に対して制御信号を発生することが可能である。
【００３０】
命令３１０は繰り返しカウントフィールド３１６を包含している。繰り返しカウントフィールド３１６は、その命令が繰り返される回数を表わす値を包含している。このフィールドは、複数の相次ぐ命令サイクルに対して制御フィールド３１４1，３１４2，．．．，３１４における値により特定される制御信号をシーケンサ２４０をしてアサートさせるために使用することが可能である。
【００３１】
命令３１０は、その命令が実行されるタイミングを制御するためのフィールドを包含することが可能である。この目的のために、命令３１０はデータ有効フィールド３１８を包含することが可能である。データ有効フィールド３１８は命令３１０内の単一の制御ビットとすることが可能である。データ有効フィールド３１８が論理高にセットされると、シーケンサ２４０は、有効データが使用可能となるまで命令３１０を実行することはない。ステータスライン２５４は、ＤＳＰ１２０がシーケンサ２４０に対してステータス情報を通信することを可能とさせる。例えば、ＤＳＰ１２０は、ヘッド１１２が読取られるべきデータが格納されているディスクプラッター１１０の区域上方を通過する場合にステータスライン２５４をアサートすることが可能である。このように、ステータス信号ライン２５４上のステータス信号は、有効なデータが処理回路１１４へ供給されることを表わすことが可能である。
【００３２】
図３Ｂは、流れ制御のために使用することが可能であるような命令３５０を例示している。命令３１０の形態における機能ユニット制御命令及び命令３５０の形態における流れ制御命令は同数のビットを有することが可能である。異なるタイプの命令は、その命令の機能に基づいてシーケンサ２４０が異なるグループのビットを異なるフィールドとして解釈することが可能であることを表わす。意図した実施例においては、各タイプの命令がその命令に対するオペレーションコードを定義するために同じグループのビットを使用する。そのオペレーションコードは、その命令における残りのビットがどのようにしてシーケンサ２４０により使用されるかを制御する。
【００３３】
命令３５０はオペレーションコード（ｏｐ  ｃｏｄｅ）フィールド３５２を包含している。オペレーションコードフィールド３５２は、命令３５０が実行される場合にディスク制御器２５０により実施されるべき機能を表わすコードを格納している。オペレーションコードフィールド３５２は、通常、オペレーションコード３１２と同一の形態とすることが可能である。然しながら、流れ制御命令の場合には、オペレーションコードフィールド３５２における値は流れ制御オペレーションを表わす。分岐オペレーションは、ここにおいては、流れ制御オペレーションの１つの例として使用される。プロセッサは付加的な流れ制御オペレーションを特定するその他のオペレーションコードを処理するべく構成することが可能である。
【００３４】
命令３５０は通知ＩＤフィールド３５４を包含している。通知ＩＤフィールド３５４内の値が非ゼロである場合には、命令３５０が実行されると、通知ＩＤフィールド３５４内の値は例えばステータス信号ライン２５４を介してＤＳＰ１２０へ通信される。
【００３５】
命令３５０はターゲットアドレスフィールド３５６を包含している。ターゲットアドレスフィールド３５６はターゲットアドレスを表わす値を保持している。命令３５０が実行され且つ流れ制御が変更されるべきであることが判別される場合には、ターゲットアドレスフィールド３５６内の値を使用してプログラムの流れが逸らされるべき命令のアドレスを決定する。流れ制御命令は、プログラムの流れにおいて条件付き又は無条件の分岐を発生することが可能である。該命令におけるその他のフィールドは、その分岐が取られるべき条件を表わす。
【００３６】
ターゲットアドレスフィールド３５６内のアドレスは任意の適宜の態様で特定することが可能である。そのアドレスは、メモリ２５０内の特定のアドレスを表わす絶対アドレスとすることが可能である。一方、ターゲットアドレスはメモリ２５０内の特定のブロックのスタートに関してのオフセットとして特定することが可能である。更なる変形例として、ターゲットアドレス３５６は、命令３５０を格納するメモリ位置に対して前又は後のアドレス位置の数を特定する相対アドレスとすることが可能である。
【００３７】
命令３５０は繰り返しカウントフィールド３５８を包含することが可能である。繰り返しカウントフィールド３５８内の値は、命令３５０が完全に実行されたものとされる前に、ターゲットアドレスが取られるべき分岐の回数を特定する。このように、命令３５０は複数回繰り返されるコードのブロックを特定することが可能である。通知ＩＤフィールド３５４は非ゼロの値を包含する場合には、その値は繰り返しカウントフィールド３５８により特定された繰り返し数が完了した場合にＤＳＰ１２０へ通知される。ある値は任意の適宜の態様でＤＳＰ１２０へ「通知」することが可能である。例えば、ＤＳＰ１２０により読取られた制御又はステータスレジスタにおける値をセットすることが可能である。別の例として、ＤＳＰ１２０へ接続されている制御又はステータスラインをアサートすることが可能である。
【００３８】
命令３５０は、又、データ有効フィールド３６０を包含している。命令３１０の場合におけるように、データ有効フィールド３６０は、有効なデータが処理回路１１４へ供給されるまでシーケンサ２４０が命令３５０を実行することを待機すべきであるか否かを表わす。データ有効フィールド３６０がセットされ且つ有効なデータ供給されない場合には、有効なデータが供給されるまでシーケンサ２４０は動作を実施することはない。有効なデータを待機している間に、シーケンサ２４０は全てのシーケンサ出力をディスエーブル即ち動作不能状態とさせるか、又は、そうでなければ、それらを中間状態とさせることが可能である。
【００３９】
図４はシーケンサ２４０をより詳細に示している。シーケンサ２４０は、現在既知であるか又は今後開発されるかに拘わらず、マイクロコントローラを構築するために使用されるものと同様の技術及び回路で実現することが可能である。
【００４０】
シーケンサ２４０はクロック回路４１０を包含している。クロック回路はタイミング信号を発生する。シーケンサ２４０のその他のコンポーネントはこれらのタイミング信号に対してそれらの動作を同期させる。この例示的実施例においては、シーケンサ２４０は比較的高速のシーケンサであり、少なくとも８００ＭＨｚのレートで命令を実行する。クロック回路４１０はこのレートで命令を実行するのに充分なタイミングでクロック信号を発生する。１つの命令を実行するために１つの命令サイクル内において複数のステップを実施せねばならない場合には、クロック回路４１０は位相が異なる複数のクロック信号を発生することが可能である。特定のクロック信号が明示的に示されているものでないが、マイクロコントローラの設計において使用される形態のものとすることが可能である。
【００４１】
シーケンサ２４０はアドレスレジスタ４２０を包含している。アドレスレジスタ４２０における値は、メモリ２５０へ適用されてそれから命令を読取るべきメモリ内のアドレスを選択する。
【００４２】
図４の例において、シーケンサ２４０は２段アドレスパイプラインを包含している。メモリ２５０からフェッチされたアドレスは交互にパイプラインレジスタ４１２Ａ又は４１２Ｂ内に格納される。パイプラインレジスタ４１２Ａ又は４１２Ｂのうちの１つにおける命令がシーケンサ２４０により実行されている間に、メモリ２５０から読取られた値を他方のレジスタへロードすることが可能である。
【００４３】
パイプラインレジスタ４１２Ａ及び４１２Ｂはマルチプレクサ４１４へ接続されている。マルチプレクサ４１４はパイプラインレジスタ４１２Ａ又は４１２Ｂのうちの１つにおける値をそれを介してその出力へ通過させる。マルチプレクサ４１４は所望の順番でメモリ２５０からフェッチされた命令を供給するために制御される。
【００４４】
マルチプレクサ４１４により選択された命令は現在命令論理４１６へ供給される。現在命令論理４１６はシーケンサ２４０により実行される命令を保持する。現在命令論理４１６は各命令のフィールドに対応する出力ラインを有している。例えば、処理ブロック１１４1，．．．，１１４Nへ走行するラインは、フィールド３１４1，．．，３１４Nにおける値を対応する処理ブロックへ結合させることが可能である。通知ＩＤフィールド３５４における値はＤＳＰ１２０へ結合させることが可能である。
【００４５】
更に、命令のその他のフィールドにおける値はシーケンサ２４０内のその他のコンポーネントへ結合させることが可能である。例えば、オペレーションコードフィールド３１２における値はデコード論理４１８へ結合させることが可能である。繰り返しカウントフィールド３１６内の値は命令繰り返し制御回路４２６へ結合させることが可能である。繰り返しカウントフィールド３５８内の値はブロック繰り返し制御回路４３０へ結合させることが可能である。ターゲットアドレスフィールド３５６内の値は分岐制御回路４２８へ結合させることが可能である。
【００４６】
現在命令論理４１６はデスティネーション回路へ値を供給するタイミングを制御するか又は供給された値を変更するための処理回路を包含することが可能である。例えば、シーケンサ２４０は、シーケンサ２４０が処理ブロックのうちのいずれに対しても制御信号を発生するものでない期間中に命令を実行すべく構成することが可能である。このような機能を収容するために、処理ブロック１１４1，．．．，１１４N及び１１６へ結合されているライン上の値を、処理ブロック１１４1，．．．，１１４N及び１１６の動作を変更することのない値へ選択的にセットするための回路を包含させることが可能である。一方、特定の命令が処理ブロック１１４1，．．．，１１４N及び１１６のリセットを発生させることが可能である。リセット命令を実行するために、処理ブロックの各々をリセットさせる処理ブロック１１４1，．．．，１１４N及び１１６に対する制御値を現在命令論理４１６をして発生させることが望ましい場合がある。
【００４７】
現在命令論理４１６によって実施することが可能な処理の更なる例として、ここに記載した実施例は非エンコード型ＶＬＩＷフォーマットに対応している。命令ワード内のフィールドにおけるビットは、プロセッサにより制御される処理ブロックに対して発生される制御信号に直接的に対応している。フィールドはエンコードすることが可能であり、そのことは、１つ又はそれ以上のフィールドにおけるビットの各パターンが発生されることを必要とする制御値の特定のパターンに対応していることを意味している。フィールド内に存在するビットよりもより多くの制御値が発生される。処理ブロック又はシーケンサ２４０により制御されるシステムのその他のコンポーネントに対して適用されるべき各制御値に対して１つのビットを形成するために命令の任意のエンコードした部分をデコードすることが可能な回路を包含することが望ましい場合がある。
【００４８】
現在命令論理４１６における命令のオペレーションコードはデコード論理４１８へ適用される。該オペレーションコードの値はシーケンサ２４０が実施すべきオペレーションを意味している。その命令が実行されると、デコード論理４１８はシーケンサ２４０のコンポーネントへ接続されている制御ライン上に値を発生し、それは該コンポーネントをして所望のオペレーションを実施させる。例えば、そのオペレーションコードが、その命令が命令３１０の形態における機能制御命令であることを表わす場合には、デコード論理４１８からの制御信号が命令繰り返し制御回路４２６をして繰り返しカウントをロードさせることが可能である。対照的に、そのオペレーションコードが、命令３５０の形態における流れ制御命令である場合には、デコード論理４１８はブロック繰り返し制御回路４３０をして繰り返しカウントをロードさせることが可能である。デコード論理はルックアップテーブルとして又は任意の適宜のその他の適宜の態様で実現することが可能である。
【００４９】
デコード論理４１８は、又、現在命令論理４１６から３１８及び３６０等のデータ有効フィールドを受取る。更に、デコード論理４１８は入力としてＤＳＰ１２０からステータス信号を受取る。そのステータス信号は、例えば、ディスク制御器２０５が読取ヘッド１１２から有効データを受取るか否かを表わすことが可能である。デコード論理４１８はこれらの入力に応答して適宜の制御信号を発生することが可能である。該入力が、現在の命令が有効なデータが供給される場合にのみ実行されるべきであることを表わすが有効なデータが供給されていない場合には、デコード論理４１８は全ての制御ライン上に値を発生してシーケンサ２４０の動作をストールさせることが可能である。その他の場合においては、該命令のデータ有効フィールドが、有効データがディスクから読取られるか否かに拘わらずに実行されるべきであることを表わす場合か、又は有効データが供給される場合のいずれかにおいて、デコード論理４１８は所望のオペレーションを実施するためにシーケンサ２４０のコンポーネントを制御するのに必要な制御信号を発行することが可能である。デコード論理４１８は制御ラインによってシーケンサ２４０のその他のコンポーネントへ接続されている。
【００５０】
例えば、制御ラインはその命令におけるあるビットが制御フィールド３１４1，．．．，３１４Nとして取扱われ且つ処理ブロックを制御するために印加されることを示すために現在命令論理４１６へ接続させることが可能である。制御ラインは、又、繰り返しカウントフィールド３２６又は３５８内の値を夫々格納することを示すために命令繰り返し制御回路４２６又はブロック繰り返し制御回路４２８へ接続することが可能である。該制御ラインは図４において明示的に示していないが任意の適宜の態様で実現することが可能である。
【００５１】
シーケンサ２４０は、又、アドレス発生回路を包含している。動作において、命令がメモリ２５０からフェッチされ且つ実行される。アドレスレジスタ４２０はメモリから読取られるべき命令のアドレスを格納する。アドレスレジスタ４２０内に格納されているアドレスはマルチプレクサ４２４を介して供給される新たな値によってサイクル毎に置換させることが可能である。
【００５２】
図４の実施例においては、シーケンサ２４０は、３つの方法のうちの１つにおいて次のアドレスを選択すべく構成されている。いずれかのサイクルにおいて使用される特定の方法はシーケンサ２４０のプログラミングに基づいている。シーケンシャル動作モードにおいては、命令は、それらがメモリ内に格納されている順番でフェッチされる。このモードにおいては、マルチプレクサ４２４は次アドレス回路４２２からの値を現在命令レジスタ４１６内に結合させる。次アドレス回路４２２は現在命令レジスタ４２０からの入力を受取り且つそれに対して所定の量を付け加える。シーケンシャル実行モードにおいては、付加された量はメモリ２５０内の相次ぐ命令を格納するアドレス間の差を表わしている。
【００５３】
シーケンサ２４０は、又、命令繰り返しモードで動作すべくプログラムすることが可能であり、その場合には、個々の命令の複数回の繰り返しが実施される。命令繰り返しモードは、命令３１０の形態における命令が処理する場合に使用される。繰り返しカウントフィールド３１６内の値が命令繰り返し制御回路４２６内にロードされる。命令繰り返し制御回路４２６は次アドレス回路４２２へ制御信号を供給する。この制御信号がアサートされると、次アドレス回路４２２は現在命令レジスタ４１６内の値に対してゼロを付け加える。従って、フェッチされるべき次の命令に対するアドレスは現在命令と同じであり且つ同一の命令が繰り返される。命令繰り返し制御回路４２６は、アドレスが同じである繰り返しの数を追跡する。同一の命令のフェッチ数が繰り返しカウントフィールド３１６内の値と等しい場合には、次アドレス回路４２２への制御信号が脱アサートされ且つ逐次的な命令の実行に対するフェッチを継続して行うことが可能である。
【００５４】
シーケンサ２４０は、又、ブロック繰り返しモードで動作することが可能であり、その場合には複数の命令からなる１つのブロックの複数の繰り返しが実施される。ブロック繰り返しモードは繰り返しカウントフィールド３５８において１より大きな値を有する命令３５０の形態で流れ制御命令を使用してプログラムされる。このような命令の最初の繰り返し期間中に、繰り返しカウントフィールド３５８内の値がブロック繰り返し制御回路４３０内へロードされる。ターゲットアドレスも分岐制御回路４２８内へロードされる。ターゲットアドレスが絶対アドレス以外のものである場合には、分岐制御回路４２８が所要の絶対アドレスを計算し且つそれをマルチプレクサ４２４を介してアドレスレジスタ４２０へ供給する。
【００５５】
流れ制御命令が実行される場合には、デコード論理４１８がマルチプレクサ４２４を制御して分岐制御回路４２８からその入力を選択する。流れ制御オペレーションが実行される場合には、シーケンサ２４０をしてパイプラインレジスタ４１２Ａ又は４１２Ｂ内に格納されているプリフェッチした命令を無視させるために制御信号を発生させることも可能である。
【００５６】
ブロック繰り返し制御回路４３０は、ブロック繰り返しモードにある間に流れ転送命令が実行された回数を追跡する。その命令の繰り返しカウントフィールド３５８内において特定されている繰り返し数が実施されると、ブロック繰り返し制御回路４３０は、マルチプレクサ４２４をして再度分岐を実行する代わりに次アドレス回路４２２からの次のアドレスを選択させる制御信号を発生することが可能である。
【００５７】
流れ制御命令が通知ＩＤにおいて非ゼロ値を包含している場合には、この値も該命令の最後の繰り返しにおいてＤＳＰ１２０へ送給することが可能である。図４に示したように、ＤＳＰ１２０へのステータス信号が現在命令論理４１６により発行される。然しながら、種々のハードウエア形態がこの特徴を実現することが可能である。例えば、ブロック繰り返し制御回路４３０は、該ループの最終繰り返しの実行後に、現在命令論理４１６へステータス信号を送ることが可能であり、それによりＤＳＰ１２０に対する通知をトリガさせる。１つの可能な別の構成として、通知ＩＤ値は現在命令論理４１６からブロック繰り返し制御回路４３０へ送信することが可能であり、そこでループの最後の繰り返しが完了した後に送信することが可能である。
【００５８】
図５Ａは、図４に示したように、シーケンサ２４０で実施することが可能な命令３１０（図３Ａ）の形態における機能制御命令を実行するプロセスを示している。ブロック５１０において、１つの命令がフェッチされる。フェッチされた命令に基づいて、制御信号がステップ５１２において発生される。該制御信号は、該命令の制御フィールド３１４1，３１４2，．．．，３１４Nにおいて特定されるように、ディスクドライブ制御器２０５内の処理ブロック又はその他の回路を制御することが可能である。
【００５９】
決定ブロック５１４において、該命令が所要の回数実行されたか否かの判定が行われる。その命令が繰り返しカウントフィールド３１６により特定されている回数実行された場合には、その命令の実行は終了する。一方、決定ブロック５１４において、その命令が所要の回数実行されていないことが判別される場合には、処理はブロック５１６へ進行する。
【００６０】
ブロック５１６において、その命令のフィールド３１４1，３１４2，．．．，３１４Nにおいて特定されるような制御信号が再度発生される。
【００６１】
ブロック５１８において、繰り返しカウントがデクリメントされる。決定ブロック５１４において、この繰り返しカウントは、その命令が所要の回数実行されたか否かを判別するために使用される。その命令が所要の回数実行されている場合には、その命令の実行が終了する。その命令が所要の回数実行されていない場合には、本プロセスは、その命令が所要の回数実行されるまで、ブロック５１６及び５１８におけるプロセスを繰り返すことにより継続される。
【００６２】
図５Ｂは命令３１０の形態における機能制御命令（図３Ａ）及び命令３５０の形態における流れ制御命令（図３Ｂ）を使用するプログラムをシーケンサ２４０へ供給することにより実施することが可能なより複雑なプロセスを示している。図５Ｂにおけるプロセスはブロック５００Ａにおいて開始する。ブロック５００Ａにおいて、命令３１０の形態における命令がフェッチされ且つ図５Ａにおいて説明した如くに実行される。複数個のこのような命令をフェッチし且つ実行することが可能である。図５Ｂの例においては、複数個のこのような命令の実行はブロック５００Ａ，５００Ｂ，．．．，５００Ｎにおいて例示してある。
【００６３】
ループにおいて実行すべきコードのブロックの終りは分岐命令により表わされる。ブロック５５０は、その分岐命令が実行されることを表わす。決定ブロック５５２において、本プロセスは分岐命令の１つ又は１つを超える繰り返しが実行されたか否かに基づいて分岐する。最初の繰り返しにおいて、処理はブロック５５４へ進行する。ブロック５５４において、ブロック繰り返しを制御するシーケンサ２４０内の回路が初期化される。初期化は、分岐命令内の繰り返しカウントフィールド３５８からの値をブロック繰り返し制御回路４３０内へロードし且つターゲットアドレスを分岐制御回路４２８内にロードすることの形態を取ることが可能である。シーケンサ２４０がループにおけるコードのブロックを実行するために初期化されると、ターゲットアドレスにより特定される如くループのトップにおいて実行が再開する。
【００６４】
ループを介してのその後の繰り返しにおいては、処理は決定ブロック５５２においてブロック５５６を処理すべく逸らされる。処理ブロック５５６において、繰り返しカウントがデクリメントされる。決定ブロック５５８において決定されるように、繰り返しカウントがゼロへデクリメントされていない場合には、コードのブロックが再度処理ブロック５００Ａへループバックすることにより実行される。一方、繰り返しカウントがゼロへデクリメントされている場合には、そのコードのブロックが所要回数実行されていることを表わし、そのループの実行が終了する。
【００６５】
図５Ａ及び５Ｂは本発明に基づくシーケンサ２４０でもって得ることが可能な顕著な柔軟性を例示している。個々の命令又は複数の命令からなるグループを複数回実行することが可能である。各命令又は各コードのブロックが実行される回数は、メモリ２５０内に格納されている命令のうちの１つにおいてプログラムされている値を変化させることによって変化させることが可能である。このような柔軟性は、例えば、シーケンサ２４０が図２に示したようなディスクドライブを制御する場合に重要な場合がある。
【００６６】
このような柔軟性は、物理的媒体が情報を受付ける場合には、ディスクプラッター１１０上により多くの情報をディスクドライブが格納することを可能とするために使用することが可能である。例えば、従来のディスクドライブはセクター内に情報を格納する。各セクターは多数のプリアンブルビットとそれに続く同期マーク、次いでそのセクターに対するデータを包含している。プリアンブルビットの数は、ディスクドライブ制御器がディスクから読取った情報からクロック信号を回復することを可能とするのに充分なものでなければならない。ディスクプラッターの品質が低下するに従い、ディスクプラッターから読取った信号の信号対雑音比も同様に減少する。補償するために、データクロックを信頼性を持って回復するために付加的なプリアンブルビットが必要とされる。シーケンサ２４０をプログラムすることが可能であることは、比較的高い信号対雑音比で信号を発生することが可能なディスクプラッターを有するディスクドライブに対してはプリアンブルビットの数を減少させることを可能とする。このような変更は、例えば、製造の変更がより高い品質のディスクプラッターを生じることとなる場合には全体的な生産ラインに対して行うことが可能である。一方、ディスクプラッターの品質テストに基づいて個々のディスクドライブをプログラムすることが可能である。より高い信号対雑音比を有するものの場合には、より少ない数のプリアンブルビットを使用し従ってより多くのデータを格納するためにプログラムすることが可能である。このようにして製造されるディスクドライブは、格納することが可能な全体的な情報量に基づいて分類することが可能である。
【００６７】
一方、読取ヘッド１１２により読取った信号からデジタルデータを抽出するためのより良いアルゴリズムが開発される場合には、これらの新たなアルゴリズムを利用するディスクドライブを、シーケンサ２４０により実行されるプログラムを単に変更することによりディスク制御器２０５内のいずれのハードウエアも修正することなしに構成することが可能である。
【００６８】
シーケンサ２４０は、ディスク制御器２０５を動作させるのに適した命令セットで構成することが可能である。例えば、オペレーションコードはアイドル（ＩＤＬＥ）命令に対して割当てることが可能である。ＩＤＬＥ命令が実行されると、シーケンサ２４０は、プログラムの実行を完了したことをＤＳＰ１２０に対して知らせるステータスラインをアサートすることが可能である。ＩＤＬＥ命令は、シーケンサ２４０に対して書かれた各プログラムの終りに包含させることが可能である。
【００６９】
その他のステータス命令も命令セット内に包含させることが可能である。シーケンサ２４０は、これらの命令の各々に対して所望のオペレーションを提供するために構成することが可能である。例えば、その命令が実行された場合にＤＳＰ１２０に対してステータス信号が送られるべきであることを表わすオペレーションコードを有しており且つ繰り返しカウントフィールドがその命令が複数回実行されるべきであることを表わすべくセットされている命令に対して意図されているオペレーションに基づいてシーケンサ２４０を構成することが望ましい場合がある。このような命令を実行することは、例えば、その命令が実行される度にステータス信号がアサートされることとなる場合がある。一方、ステータス信号はその命令の最初の繰り返しに対してのみ又はその命令の最後の繰り返しに対してのみアサートされる場合がある。１つの意図した実施例においては、ステータス信号は最後の繰り返しの後にアサートされる。
【００７０】
更に、条件付き命令を提供することが可能である。条件付き命令が実行されると、実施される機能はディスク制御器２０５内の回路の状態か又はディスク制御器２０５へ入力として供給されたステータス信号の状態のいずれかに依存する場合がある。このような命令の１つの例はシーケンス・ディテクト・タイムアウト（ＳＤＴＯ）である。このような命令は制御フィールド３１４1，．．．，３１４Nにおけるビットを包含することが可能であり、それはデータのセクターのスタートを識別するために使用される同期マーク（又はその他のシーケンス）を表わすビットパターンを識別するために処理される値のストリームをモニタするために処理ブロックを構成する。
【００７１】
このような命令に対する繰り返し制御フィールドは、その命令が複数回実行されるようにセットすることが可能である。このような命令は、従って、所望のシーケンスが処理ブロックにより検知されるまでシーケンサ２４０をして待機させる。処理ブロックからのステータスラインはそのシーケンスが検知されたことをシーケンサ２４０に対して知らせることが可能である。このようなステータスラインは、例えば、命令繰り返し制御回路４２６へ供給することが可能であり、それをして次アドレス回路４２２に対する制御信号を発行させ、それはメモリ内の次の命令へ実行を移動させる。
【００７２】
１つの実施例においては、ＳＤＴＯ命令が繰り返しカウントにおいて特定されている回数実行されると、異常動作条件が表わされる。従って、このような命令に対する所要回数の繰り返しが完了すると、該シーケンサは、同期信号が検知されなかったことを表わすステータス信号を発生することが可能である。この場合には、シーケンサ２４０は、ＩＤＬＥ命令が実行された場合に発生するものと同様の状態に入ることが可能である。
【００７３】
このような命令はシーケンサ２４０に対するプログラムを形成するために結合させることが可能である。例えば、該プログラムは処理ブロックをリセットする命令でスタートすることが可能である。次の命令は、そのデータ有効フィールド３１８をセットさせることが可能である。このような命令は、シーケンサ２４０をして、データが使用可能となるまで待機させる。次いで、該プログラムは処理ブロックがヘッド１１２からの信号をデジタルデータのセクターへ変換させるようにディスク制御器２０５をして処理ブロックに対する制御信号を発行させる命令を包含することが可能である。該プログラムは、所望により、読取られるべき後のセクターに対し該プロセスを繰り返させる命令を包含する該プログラムにおける命令又は複数の命令からなるブロックの複数の繰り返しを特定することが可能である。
【００７４】
ＤＳＰ１２０が有効なデータを受取らない場合には、それはメモリ２５０内のプログラムを変更させることが可能であり、シーケンサ２４０をして異なるプログラムを実行させる。ＤＳＰ１２０は該プログラムを低い信号対雑音比で信号からデータを回復するのにより適したものへ変更させることが可能である。例えば、このようなプログラムは処理ブロック１１６をデータ処理において使用させる構成とする命令を包含することが可能である。このようなプログラムはマイクロコントローラに対してプログラムが開発されるのとほぼ同じ態様で、開発し且つディスク制御器２０５内にロードさせることが可能である。アッセンブラー及びその他の開発ツールを使用することが可能である。その開発ツールはデバッガーを包含することが可能である。
【００７５】
シーケンサ２４０はシーケンサ２４０を稼動するために開発されたプログラムのデバッギングをサポートする特徴で構成することが可能である。単純な形態のデバッギングは、メモリ２５０内に短いプログラムをロードし且つその結果を観察することにより明示的なハードウエアデバッグサポート無しで達成することが可能である。より大きなデバッギング能力の場合には、シーケンサ２４０はデバッグモードで構成することが可能である。デバッグモードにおいては、シーケンサ２４０は、一度に１つづつ命令が実行されるようにクロック動作することが可能であり、各実行は何等かの外部装置からのコマンドにより開始され、その外部装置はＤＳＰ１２０又は何等かの外部のデバッギング制御器とすることが可能である。
【００７６】
命令の繰り返し及びブロックの繰り返しが可能であるので、複数の挙動が可能である。シーケンサ２４０は、デバッグモードにある間に命令の各繰り返しを１つのステップとして取扱うように構成することが可能である。一方、デバッグモードにおける１つのステップは１つの命令又は複数個の命令からなる１つのブロックの全ての繰り返しの完全なる実行とすることが可能である。一方、該プロセッサはそれに複数のデバッグモードを与えることにより上の挙動のうちのいずれかをサポートするように構成することが可能である。
【００７７】
シーケンサ２４０におけるレジスタをＤＳＰ１２０又はその他のデバッギング制御器に対してアクセス可能なものとすることにより更なるデバッグ特徴を与えることが可能であり、従ってそれらに対して値を読取るか又は書込むことが可能である。ＤＳＰ１２０がデバッグサポートを包含している場合には、シーケンサ２４０におけるレジスタは、ＤＳＰ１２０におけるレジスタがデバッグのために使用可能であるのと同一の態様でアクセス可能であることが望ましい。
【００７８】
以上、本発明の少なくとも１つの実施例の幾つかの側面について説明したが、当業者にとって種々の変更、修正、改良が自明なものであることを理解すべきである。
【００７９】
例えば、改良した構成を有するプロセッサをディスクドライブ制御器において使用するものとして例示した。本発明に基づくプロセッサはその他の適用例において使用することも可能である。複数の機能ユニットから構成したその他の電子装置を説明したシーケンサにより制御することが可能である。
【００８０】
本発明は１つのプロセスにおいて別個のオペレーションを実施する機能ユニットに関連して使用するものに制限されるものではない。機能ユニットは、制御が所望される任意のハードウエア構成とすることが可能である。又、機能ユニットが命令３１０の形態における命令により制御され且つプログラムの流れが命令３５０の形態における命令により制御されることについて説明した。流れ制御及び機能ユニット制御フィールドは同一の命令内に設けることが可能である。
【００８１】
更なる例として、シーケンサ２４０は２個のパイプライン段を包含することについて示した。パイプライン段の数は本発明にとって臨界的なものではない。シーケンサ２４０がパイプライン型のプロセッサであることは必要なものではない。一方、シーケンサ２４０は２個を超えるパイプライン段を包含することも可能である。
【００８２】
又、シーケンサは１個のブロック繰り返し制御回路を具備するものとして例示した。このマイクロアーキテクチャはネスト型ループをサポートするために修正することが可能である。
【００８３】
更に、本発明を磁気記録媒体を包含するディスクに関連して説明した。上述したディスク制御器は光学的又はその他の記録媒体を使用するディスクと共に使用することが可能である。
【００８４】
以上、本発明の具体的実施の態様について詳細に説明したが、本発明は、これら具体例にのみ制限されるべきものではなく、本発明の技術的範囲を逸脱することなしに種々の変形が可能であることは勿論である。
【図面の簡単な説明】
【００８５】
【図１】従来のディスク制御器を示した概略ブロック図。
【図２】本発明に基づくディスク制御器を示した概略ブロック図。
【図３Ａ】ディスク制御器内の機能ユニットのオペレーションを制御する命令のフォーマットを例示した概略図。
【図３Ｂ】流れ制御命令のフォーマットを例示した概略図。
【図４】図２のシーケンサを示した概略ブロック図。
【図５Ａ】繰り返し命令を実行する場合の図２のシーケンサのオペレーションを理解する上で有用なフローチャート。
【図５Ｂ】複数の命令からなるブロックを繰り返し実行する場合の図２のシーケンサのオペレーションを理解する上で有用なフローチャート。
【符号の説明】
【００８６】
２００  ディスクドライブ
２０５  ディスク制御器
２４０  シーケンサ
２５０  プログラムメモリ
２５２  バス
【図１】
2006221624.tif 000003
【図２】
2006221624.tif 000004
【図３Ａ】
2006221624.tif 000005
【図３Ｂ】
2006221624.tif 000006
【図４】
2006221624.tif 000007
【図５Ａ】
2006221624.tif 000008
【図５Ｂ】
2006221624.tif 000009