(57)【特許請求の範囲】
【請求項１】
パイプライン化された複数の機能装置（３２−４６）と、少なくとも１つの命令バッファ（２６）と、命令ディスパッチ装置（２８）とを有するマイクロプロセッサであって、前記パイプライン化された複数の機能装置（３２−４６）中の各命令ごとの追跡データを格納する未処理命令ＦＩＦＯ（６６）を備え、その追跡データが有効ビットを含み、前記命令ディスパッチ装置が前記命令バッファと前記パイプライン化された複数の機能装置との間に結合され、前記少なくとも１つの命令バッファが分岐命令と予想ターゲット命令を含む複数の命令を備え、かつ前記命令ディスパッチ装置が分岐命令と予想ターゲット命令の両方を単一のサイクル中に前記機構装置にディスパッチするように構成されたことを特徴とするマイクロプロセッサ。
【請求項２】
さらに、予想された分岐方向と実際の分岐方向を比較するように構成され、分岐方向が合致し、前記分岐が選択されたときに、予想されたターゲット・アドレスと実際のターゲット・アドレスを比較する分岐予想論理機構（１８）と、
前記予想された分岐方向またはターゲット・アドレスが誤って予想されたものである場合に、前記未処理命令ＦＩＦＯ中の前記ターゲット命令およびその後に続く命令に対応する前記追跡データに関する前記有効ビットを無効状態にセットするように構成されたＦＩＦＯ制御論理機構（７１）とを備えることを特徴とする請求項１に記載のマイクロプロセッサ。
【請求項３】
さらに、前記パイプライン式機能装置の終わりに各命令ごとに前記有効ビットを検査し、無効と判定された命令に関する演算の結果を記憶するのを妨げるように構成されたパイプラインの終わり有効論理機構（３２）を備えることを特徴とする請求項２に記載のマイクロプロセッサ。
【請求項４】
さらに、前記機能装置によって待ち時間の長い演算が行われる前に前記パイプライン式装置の中間段で各命令ごとに前記有効ビットを検査し、無効と判定された命令に関する待ち時間の長い演算を妨げるように構成された中間有効論理機構（７０）を備えることを特徴とする請求項２に記載のマイクロプロセッサ。
【請求項５】
前記待ち時間の長い演算がオフチップ・メモリ・アクセスであることを特徴とする請求項４に記載のマイクロプロセッサ。
【請求項６】
前記命令ディスパッチ装置がさらに、所与のサイクル中に前記機能装置に単一の分岐命令しかディスパッチできないように構成されることを特徴とする請求項１に記載のマイクロプロセッサ。
【請求項７】
前記命令ディスパッチ装置がさらに、所与のサイクル中に前記機能装置に所定数の分岐命令しかディスパッチできないように構成されることを特徴とする請求項１に記載のマイクロプロセッサ。
【請求項８】
前記所定の数が１であることを特徴とする請求項７に記載のマイクロプロセッサ。
【請求項９】
パイプライン化された複数の機能装置（３２−４６）と、少なくとも１つの命令バッファ（２６）と、命令ディスパッチ装置（２８）とを有するマイクロプロセッサを動作させる方法であって、分岐命令および予想ターゲット命令を含む複数の命令を前記命令バッファに与える要素を提供するステップと、前記ディスパッチ装置を用いて分岐命令と予想ターゲット命令の両方を単一のサイクル中に前記機能装置にディスパッチする要素を前記命令バッファから供給するステップと、前記パイプライン化された複数の機能装置中の各命令ごとに、有効ビットを含む追跡データを未処理命令ＦＩＦＯ中に記憶させる要素を提供するステップとを含むことを特徴とする方法。
【請求項１０】
前記予想された分岐方向が正しく予想されているかどうかを判定する要素を提供するステップと、前記予想されたターゲット命令が誤って予想されたものである場合に、前記未処理命令ＦＩＦＯ中の前記ターゲット命令およびその後に続く命令に対応する前記追跡データに関する前記有効ビットを無効状態にセットする要素を提供するステップとを含むことを特徴とする請求項９に記載の方法。
【請求項１１】
さらに、パイプラインの終わり有効論理機構において、前記パイプライン式機能装置の終わりに各命令ごとに前記有効ビットを検査する要素を提供するステップと、無効と判定された命令に関する演算の結果を記憶するのを妨げる要素を提供するステップとを含むことを特徴とする請求項１０に記載の方法。
【請求項１２】
さらに、中間有効論理機構において、前記機能装置によって待ち時間の長い演算が行われる前に前記パイプライン式装置の中間段で各命令ごとに前記有効ビットを検査する要素を提供するステップと、無効と判定された命令に関する待ち時間の長い演算を妨げるステップとを含むことを特徴とする請求項１０に記載の方法。
【請求項１３】
所与のサイクル中に前記命令ディスパッチ装置が前記機能装置に所定数の分岐命令しかディスパッチできないようにするステップを含むことを特徴とする請求項９に記載の方法。
【請求項１４】
前記所定の数が１であることを特徴とする請求項１３に記載の方法。
【請求項１５】
メモリと、前記メモリに結合されたマイクロプロセッサとを備え、前記マイクロプロセッサが前記請求項１ないし８に記載のいずれかの１つであることを特徴とするコンピュータ・システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、複数のパイプライン化された機能装置を使用するＲＩＳＣマイクロプロセッサに関し、詳細には、分岐命令を処理するディスパッチ装置で使用される機構に関する。
【０００２】
【従来の技術】
縮小命令セット・コンピュータ（ＲＩＳＣ）マイクロプロセッサの主要な利点の１つは、命令を非常に早い速度で処理できることである。これは１つには、クロック速度のためであり、１つには、複数の機能装置が同時に使用され、そのため、１サイクル中に、複数の機能がそれぞれの異なる命令に対して実行されるからである。また、パイプラインが使用され、そのため、各機能装置は、各サイクルごとに、パイプラインを通じて命令を移動する。例えば、一度に４つの機能装置が使用され９段パイプラインを有するシステムは、一度に９×４＝３６個の命令を処理することができる。同じサイクル中に発行される命令を命令群と呼ぶ。
【０００３】
そのような複数機能装置パイプライン式アーキテクチャで発生する主要な問題の１つは、分岐命令またはジャンプ命令の処理である。通常、分岐のターゲット・アドレスを算出しターゲット命令を取り出すにはいくつかのパイプライン・サイクルが必要なので、この問題のために、パイプラインの遅延および減速が生じることがある。１つの手法は、単に、ターゲット・アドレスが正しく算出され、あるいは分岐が条件付きである場合は、その条件も判定されるまで、追加命令を発行しないことである。その場合、パイプラインは、これが処理されている間、数サイクルにわたって空になり、パイプラインの性能上の利点が失われる。
【０００４】
分岐命令を処理する通常の方法は、分岐方向を予想する１つまたは複数のビットを記憶することである。したがって、次の命令はこの予想に基づいて取り出され、パイプラインはフルスピードで継続し、予想された命令とその後に続く命令が処理される。予想が正しい場合、パイプラインは減速せず、最大の性能を発揮する。しかし、予想が正しくない場合、誤って予想された命令のパイプラインをフラッシュする機構を使用しなければならない。通常、予想速度は、予想のまれな誤りの発生時にパイプラインをフラッシュする時間上の欠点が、予想が正しいときにパイプラインを最大限に活用することによって補われるほど高い。
【０００５】
誤って予想された命令のパイプラインをフラッシュすることは複雑なタスクである。ある手法では、各命令は、それが分岐に従うものであることを示すようにタグ付けできる。その場合、その後でこのタグを調べることができる。残念なことに、この手法では、各パイプラインの各段での各機能装置中のタグを調べるために多量の余分なハードウェアが必要である。命令がパイプラインから出るのを待つことは十分ではない。なぜなら、この場合、フラッシングを開始する前にパイプラインを空にしておくために必要なすべてのサイクルが必要であり、したがって追加時間が費やされるからである。
【０００６】
サンマイクロシステムズ社（Ｓｕｎ  Ｍｉｃｒｏｓｙｓｔｅｍｓ  Ｉｎｃ．）のＳｐａｒｃシステムで使用される代替方法では、分岐命令がパイプライン内を伝搬する際にパイプラインのどの段が分岐命令を有するかを追跡する論理機構が使用される。この手法の１つの問題は、分岐がパイプライン中の命令群中の複数の命令の中央で発生する恐れがあることである。これは、分岐後の追加命令の発行を次のサイクルまで遅延させることによって対処される。したがって、各サイクルごとに４つの機能装置に４つの命令が発行され、命令２が分岐である場合、２つの命令しか発行されず、分岐の後に続く２つの命令は後続のサイクルまで待機する。この手法は、誤って予想された分岐命令がどこにあるかを追跡するために必要な論理機構が簡略化される利点を有するが、分岐の予想されたターゲット・アドレスが正しいときには、パイプラインの容量の一部が使用されない。
【０００７】
【発明が解決しようとする課題】
したがって、最小限の論理機構しか必要とせず、正しく予想された分岐ターゲット命令に関するスループットを最大にするように、複数機能装置、複数段パイプライン・マイクロプロセッサで誤って予想された分岐を処理する改良された機構を有することが望ましい。
【０００８】
【課題を解決するための手段】
本発明は、各サイクルごとに、最大数の命令を、分岐命令の後に別々のブロックとして分割せずにディスパッチするディスパッチ装置を含むマイクロプロセッサを提供する。誤って予想された分岐は、未処理命令ＦＩＦＯ中の分岐命令の後に続く命令に関する有効ビットを無効にセットすることによって処理される。
【０００９】
好ましい実施態様では、外部メモリ・アクセス段の前に未処理命令ＦＩＦＯが調べられ、無効な命令のための不要なメモリ・アクセス・サイクルが回避される。パイプラインの出力時に有効ビットも調べられる。機能装置中の命令と未処理命令ＦＩＦＯ中の命令との突き合わせは、ＯＰコードを調べ、特定のサイクルまたは段に関してどの機能装置がＦＩＦＯ中のどの位置に対応するかを判定することによって行われる。
【００１０】
本発明の性質および利点をさらに理解するために、下記の説明を添付の図面と共に参照されたい。
【００１１】
【発明の実施の形態】
図１は、本発明を組み込んだＵｌｔｒａＳｐａｒｃTMマイクロプロセッサ１０のブロック図である。命令キャッシュ１２は、復号装置１４に命令を与える。命令キャッシュは、プリフェッチ装置１６から命令を受け取ることができ、プリフェッチ装置１６は、分岐装置１８から命令を受け取り、あるいは命令ＴＬＢ（変換索引バッファ）２０に仮想アドレスを与える。ＴＬＢ２０は次いで、キャッシュ制御／システム・インタフェース２２を通じてオフチップ・キャッシュから命令を取り出させる。オフチップ・キャッシュからの命令は、事前復号装置２４に与えられ、分岐命令であるかどうかなど、ある種の情報が命令キャッシュ１２に与えられる。
【００１２】
復号装置１４からの命令は命令バッファ２６に与えられ、そこでディスパッチ装置２８からアクセスされる。ディスパッチ装置２８は、バス３０に沿って一度に４つの復号命令を与え、各命令は８つの機能装置３２ないし４６のうちの１つに与えられる。ディスパッチ装置は、そのような４つの命令を各サイクルごとにディスパッチし、これらの命令は、データ依存性および適当な機能装置の使用可能性に関して検査を受ける。
【００１３】
最初の３つの機能装置、すなわちロード／ストア装置３２と２つの整数ＡＬＵ装置３４および３６は、１組の整数レジスタ４８を共用する。浮動小数点レジスタ５０は、浮動小数点装置３８、４０、４２とグラフィカル装置４４および４６によって共用される。整数機能装置群および浮動小数点機能装置群はそれぞれ、対応する完了装置５２および５４を有する。マイクロプロセッサは、オンチップ・データ・キャッシュ５６とデータＴＬＢ５８も含む。
【００１４】
未処理ＦＩＦＯ６６は機能装置パイプライン中の各命令に関する情報を含む。この未処理命令ＦＩＦＯ６６は、命令ＦＩＦＯ制御論理機構７１によって制御される。
【００１５】
図２は、従来技術と比べた本発明による命令のディスパッチの例を示す。命令バッファ２６は、命令６および１１に２つの分岐命令を含む１２個の命令と共に示されている。ディスパッチ装置２８は、複数の機能装置に接続されたバス３０にこれらの命令を与える。図２の左側に、従来技術のシーケンス６０においてディスパッチャ５９によって５つのサイクルのそれぞれでディスパッチされる命令が示されている。図２の右側には、図のように、同じ命令を３つのサイクルでディスパッチすることができる本発明によるシーケンス６２のディスパッチャ２８によるディスパッチが示されている。
【００１６】
従来技術のディスパッチ装置５９は、第１のサイクルで命令１ないし４を与える。これを基本ブロックと呼ぶ。第２のサイクルでは、命令６が分岐命令なので、サイクル２中には命令５および６しかディスパッチされず、したがって、短い基本ブロックが与えられる。命令７はサイクル３までディスパッチされない。サイクル３では、命令７ないし１０がディスパッチされる。サイクル４では、命令１１が分岐なので、命令１１しかディスパッチされない。ディスパッチは、サイクル５で命令１２から再開される。
【００１７】
このように、論理機構は、パイプライン内で、分岐の後に続く命令がどこに現れるかを追跡することができる。たとえば、サイクル２に分岐があったことに着目することによって、その後に続くあらゆる段、この例ではサイクル３ないし５は、命令６に対する予想される分岐に従った命令を有することが分かる。分岐予想論理機構は、分岐方向（分岐が選択されるかどうか）を予想し、それが選択されると予想された場合に分岐のターゲット・アドレスを求める。この分岐の方向またはターゲット・アドレスが誤って予想された場合、論理機構は、サイクル３、４、５、すなわち命令自体が適当な時間に存在する段中のすべての命令をフラッシュする必要があることを知る。これはたとえば、未処理命令ＦＩＦＯ中のこれらの命令に対応するすべての有効ビットを無効状態にセットすることによって行うことができる。この種のシステムの欠点は、分岐方向およびターゲット・アドレスが正しく予想されたときにパイプライン中の各サイクル中の可能な命令スロットが無駄になることである。また、将来、プロセッサのスカラリティが増大する（各サイクルごとにより多くの命令が発行される）につれて、この種のシステムの下で無駄になるスロットの数も増加する。現在、使用できる分岐予想技法はますます高度なものになっているので、分岐ターゲットが正しく予想される確率が高い。
【００１８】
本発明のディスパッチ装置２８は、図２に示したように、サイクル１で命令１ないし４を与え、サイクル２で命令５ないし８を与え、サイクル３で命令９ないし１２を与える。図の例では、１２個の命令が３サイクルでディスパッチされ、これに対して、シーケンス６０の例では、同じ命令が５サイクルでディスパッチされる。従来技術の５つの基本ブロックは３つのスーパーブロックとして組み合わされる。当然のことながら、いくつかの分岐がある場合、これによってスループットが著しく向上する。
【００１９】
図３は、図１のいくつかのパイプラインの段を詳しく示すものである。具体的には、１番下に浮動小数点レジスタ５０が示されており、５つの浮動小数点機能装置およびグラフィカル機能装置が示されている。パイプラインのそれぞれの異なる段は、図の中央部の行６４の文字で示されている。図３の１番上には、未処理命令ＦＩＦＯ６６が示されている。図のように、ＦＩＦＯは、パイプラインの７つの段またはサイクルに対応する７つの行を有し、対応する命令は、図のように１から２８まで続く各行中の４つの位置に記憶される。したがって、各行は命令群を記憶する。ＦＩＦＯ中の位置に対応する命令は、パイプライン中の同じサイクルの機能装置内にある。命令ＦＩＦＯ制御論理機構７１は、未処理命令ＦＩＦＯ６６の動作を制御する。
【００２０】
図のそれぞれの異なる段について下記で説明する。Ｆ／Ｄ段は、キャッシュから命令が取り出される段である。この段のＤ部分では、命令が復号され命令バッファ２６内に置かれる。段Ｇでは、データ依存性および機能装置要件に応じて最大４つの命令がディスパッチされ、レジスタ・ファイルがアクセスされる。命令が必要とするデータがまだ得られない場合、データ依存性に応じて４つよりも少ない命令を送ることができることに留意されたい。あるいは、複数の命令が同じ機能単位を必要としている場合、等価機能装置が使用できない場合には４つよりも少ない命令をディスパッチすることができる。
【００２１】
段Ｅでは、ＡＬＵが動作を実行し、メモリ・アドレスが算出される。段Ｃでは、ＦＰＵ計算が開始され、オンチップ・データ・キャッシュおよびＴＬＢが検査される。段Ｎ１は、浮動小数点計算の第２段であり、段Ｎ２は、浮動小数点完了段である。段Ｎ３によってトラップまたはエラーを処理することができ、段Ｗは、結果をレジスタ・ファイルに書き直すためのものである。
【００２２】
２組の有効検査論理機構、すなわち有効検査論理機構７０および有効検査論理機構７２が設けられる。有効検査論理機構７０は、未処理命令ＦＩＦＯ６６では７４として示されているパイプラインの第４段中の命令が有効であるかどうかを判定する。この点で、命令が無効である場合、オフチップ・メモリのアクセスおよびそれに関連する多数のサイクルの必要が回避される。
【００２３】
有効検査論理機構７２は、パイプラインの出力で、命令が有効であるかどうかを判定し、無効な結果がレジスタ・ファイルに書き込まれるのを防止する。有効検査論理機構７０および７２はすでに、他の目的に使用されており、それを本発明で使用するに過ぎない。本発明によれば、この点で妥当性検査を行うことによって、ディスパッチ装置が、誤って予想された分岐をブロックとして分割せず、予想が誤っていると判定されたときに未処理命令ＦＩＦＯ６６中の適当なビットを無効化するように修正された場合に、このような分岐を「フラッシュする」ことができる。既存のディスパッチ装置をこのような機能を実行するように修正することは簡単である。
【００２４】
分岐が正しく予想されたかどうかは、分岐処理論理機構によって判定され、分岐処理論理機構は一般に、分岐装置で実施される。この論理機構は、実際の入力信号を与えて未処理命令ＦＩＦＯ６６中の有効ビットを変更する。このタイプの論理機構は、従来、分岐を有する命令群の後に続く命令群を無効にするために使用されてきた。
【００２５】
図４は、本発明によるディスパッチ装置によって実行されるステップを示すフローチャートである。ステップＡで、命令バッファ２６の次の４つの命令が調べられる。次いで、ストラクチュラル・ハザードに関する検査が行われる（ステップＢ）。これには、正しいタイプの機能装置およびメモリ・ポートまたは命令が必要とする他の資源が使用できるかどうかなどが含まれる。ストラクチュラル・ハザードがある場合、命令は保持される（ステップＣ）。データおよび制御の依存性が検査され（ステップＤ）、処理されていない依存性がある場合、その命令は次のサイクルまで保持される（ステップＣ）。あるオプションでは、命令が、４つの命令からなる同じブロック中の第２の分岐であるかどうかを調べる検査が行われる（ステップＥ）。そうである場合、その命令は次のサイクルまで保持される。これによって、分岐判定論理機構を複製して同じサイクル（あるいは、将来のより高速なサイクルのマシンでは同じ数サイクル）中の２つの別々の分岐を判定することが不要になる。重複論理機構が設けられている場合、ステップＥはなくなる。最後に、命令が機能装置にディスパッチされる（ステップＦ）。
【００２６】
上記で指摘したように、１つのオプションは、発行される命令群当たりに１つの分岐命令しか許可しないことである。発行される命令群中の分岐の数は、命令スカラリティに応じて変更することができる。たとえば、４スカラ・マシンが使用されており、サポートされているアプリケーションでは、５命令おきよりも頻繁に分岐を有することが統計上まれであると仮定する。この場合、４命令当たりに２つの分岐があることはまれなので、各命令群を１つの分岐に制限した場合に多数の未使用スロットが生じることはまれである。一方、将来のマシンが１０スカラであり、一度に１０個の命令が発行される場合、一般に、命令群当たりに２つの分岐があり、命令群当たりに１つの分岐しか許可しない場合には多数の未使用スロットが生じる。したがって、そのような例では、命令群当たりに２つ（しかし、おそらく３つではない）の分岐を許可することが望ましい。
【００２７】
図５は、本発明による分岐装置によって実行されるステップのフローチャートである。分岐命令の場合、正しい分岐方向が算出される（ステップＧ）。算出された分岐方向は次いで、予想された分岐方向と比較され、ターゲット・アドレスが求められる（ステップＨ）。分岐方向が一致した場合（ステップＩ）、分岐が条件付きであるかどうかが判定される（ステップＪ）。分岐が条件付きである場合、その条件に関する試験が行われる（ステップＫ）。条件が満たされた場合（ステップＬ）、プロセスは完了する。分岐が正しく予想され（方向とターゲット・アドレスの両方）、条件が満たされている場合、ディスパッチされる命令を修正する必要はない。分岐が誤って予想され、あるいは条件付き分岐のいずれかの条件が満たされていない場合、分岐命令は命令ＦＩＦＯ内に配置される（ステップＭ）。次いで、分岐命令の後に続くすべての命令に関する有効ビットが無効状態にセットされる（ステップＮ）。これは、図１の分岐装置１８が、分岐が誤って予想されたこととを示し、かつ分岐命令を識別する制御信号を命令ＦＩＦＯ制御論理機構７１へ送ることによって行うことができる。制御論理機構７１は次いで、命令情報を未処理命令ＦＩＦＯ６６内に配置し、適当な有効ビットを無効状態にセットする。
【００２８】
一実施形態では、有効検査論理機構７０または７２は、適当な機能装置中の命令を未処理命令ＦＩＦＯ６６中の適当な命令データと突き合わせることができる。未処理命令ＦＩＦＯ６６は、図３中の番号で示したように、命令を常にプログラム順に並べる。しかし、この順序は、命令のタイプに応じて異なるので機能装置内では異なるものでよい。有効検査論理機構は、ＯＰコード（または符号化ＯＰコード）を調べ、それがどの機能装置に対応するかを知ることによって、未処理命令ＦＩＦＯ６６中のデータを機能装置に合致させることができる。同じタイプのＯＰコードを実行できる複数の機能装置が活動状態である場合、有効検査論理機構は、ディスパッチ装置と同じ優先順位割り当て論理を有する。たとえば、第１の加算命令は常に、整数加算のために第１の整数ＡＬＵへ送ることができる。代替実施形態では、命令が発行されたときに命令ＦＩＦＯ内に機能装置ＩＤが置かれる。
【００２９】
一実施形態では、ディスパッチ装置は、各サイクルごとに単一の分岐命令しか許可しない。したがって、特定のサイクル中の命令２および３に分岐がある場合、命令４は次のサイクルまで待機し、第１のサイクルでは３つの命令しか送られない。この制限を使用して、１組の処理ハードウェア論理機構しか使用せずに適当な分岐命令を判定することができる。単一サイクル内に複数の分岐がある可能性がある場合、単一サイクルまたはその他の短い期間中に複数の分岐命令を正しく予想できるように、この論理機構を複製する必要があり、したがってマイクロプロセッサ上のより多くの面積が必要になる（非常に短いサイクルのマシンでは複数のサイクルが必要になる可能性がある）。
【００３０】
代替実施形態では、分岐処理ハードウェアを複製してサイクル当たりに複数の分岐を許可し、それによって各サイクルごとに複数の分岐をディスパッチすることができる。他の実施形態は、様々な数の機能装置を有することも、あるいは様々な数のパイプライン段を有することも、あるいは様々なサイクル当たり許可分岐数を有することもできる。
【００３１】
他の代替実施形態では、未処理命令ＦＩＦＯレジスタ６６内で各段またはサイクルごとに単一の有効ビットを使用することができる。誤って予想された分岐ターゲットに関しては、その段またはサイクルに対応する未処理命令ＦＩＦＯのライン全体を無効化することができる。次いで、ターゲット命令だけでなく、分岐命令自体、およびその段またはサイクルに対応する同じライン中の最初の命令もフラッシュすることができる。次いで、分岐命令および同じライン中の最初の命令を再びディスパッチする必要がある。この場合も、ハードウェアおよび論理機構の複雑さとスループットが兼ね合わされる。
【００３２】
本発明の利点は、分岐に関する検査を行う必要なしにディスパッチ装置を簡略化することができ、スループットを向上させることができることである。ディスパッチ装置は、サイクル当たりに複数の分岐が許可されている場合、分岐を機能装置にディスパッチする際に分岐を探す必要も、あるいは識別する必要もない。単一の分岐しか許可されていない場合、ディスパッチ装置は、少なくとも第１の分岐に関する検査を行う必要がある。
【００３３】
当業者には理解されるように、本発明は、その趣旨または基本的特性から逸脱せずに他の特定の態様で具体化することができる。たとえば、機能装置命令と未処理命令ＦＩＦＯ中の命令データとの間の合致を判定する有効論理装置の代わりに、未処理命令ＦＩＦＯ中の対応する特定の位置を識別するタグを機能装置命令に与えることができる。別法として、ＦＩＦＯではなく他のデータ記憶構造を使用して命令妥当性データを記憶することができる。パイプラインのそれぞれの異なる領域に、妥当性ビットを検査する追加論理機構を追加することができる。たとえば、待ち時間の長い演算が開始される（すなわち、浮動小数点除算）ときに、妥当性ビットを検査し、命令が無効である場合は演算を中止することができる。したがって、前述の説明は好ましい実施形態を例示するものであり、本発明の範囲について述べた添付の特許請求の範囲を参照されたい。
【図面の簡単な説明】
【図１】  本発明を組み込んだマイクロプロセッサの実施形態のブロック図である。
【図２】  従来技術および本発明による、機能装置への命令の割り当てを示す図である。
【図３】  本発明の一実施形態によるパイプライン段および未処理命令ＦＩＦＯの図である。
【図４】  本発明の一実施形態によるディスパッチ装置の動作のフローチャートである。
【図５】  本発明の一実施形態における分岐装置および未処理命令ＦＩＦＯ制御論理機構の動作のフローチャートである。
【符号の説明】
１０  マイクロプロセッサ
１２  命令キャッシュ
１４  復号装置
１６  プリフェッチ装置
１８  分岐装置
２０  変換索引バッファ
２２  キャッシュ制御／システム・インタフェース
２４  事前復号装置
２６  命令バッファ
２８  ディスパッチ装置
【図１】
0003779012.tif 000002
【図２】
0003779012.tif 000003
【図３】
0003779012.tif 000004
【図４】
0003779012.tif 000005
【図５】
0003779012.tif 000006