(57)【要約】命令実行装置及び方法が、例外ルーチンを有するプロセッサ内におけるレジスタの書込トラフィックを減じるために開示されている。命令実行装置は、命令に対する結果を生成するために命令パイプラインを含み、そこにおいては例外ルーチンがランダムな間隔で命令パイプラインに割り込み、上記命令実行装置はさらに、上記結果をストアするための書き込みポートを少なくとも１つ有するレジスタファイル及び上記結果にアクセスするためのバイパス回路、上記結果が他の１つの命令だけによって用いられるかどうかを示す手段、上記結果が上記バイパス回路を介してアクセスされ他の１つの命令だけによって用いられる場合に上記結果が前記書き込みポートにストアされるのを防ぐレジスタファイルコントロール、上記結果を蓄えるＦＩＦＯバッファ、例外が発生したときに上記ＦＩＦＯバッファの内容を上記レジスタファイルへ書き込むためのＦＩＦＯコントロールをさらに含む。
2004508607.tif 000002
【特許請求の範囲】
【請求項１】
例外ルーチンを有するプロセッサにおいて用いられる命令実行装置であって、
第１の命令に対して第１の結果値を生成する命令パイプライン（１２）であって、前記例外ルーチンが前記命令パイプラインにランダムな間隔で割り込むように構成された命令パイプラインと、
前記命令パイプライン（１２）に接続されたレジスタファイル（１６）であって、前記レジスタファイルは少なくとも前記第１の結果値をストアする第１の書込ポート（２０）を有するレジスタファイルと、
前記命令パイプライン（１２）に接続されたバイパス回路（１４）であって、前記第１の結果値にアクセスするように構成された前記パイパス回路（１４）と、
第１の結果値が第２の命令だけによって用いられるかどうかを示す手段と、
前記命令パイプライン（１２）と前記レジスタファイル（１６）とに接続されたレジスタファイルコントロール（１８）であって、前記第１の結果値が前記パイパス回路（１４）を介してアクセスされ且つ前記第２の命令のみによって用いられる場合に、前記第１の結果値が前記書込ポートにストアされないようにするための、レジスタファイルコントロールと、
前記第１の結果値をストアするためのバッファ（２４）と、
例外が発生したときに、前記第１の結果値を前記バッファから前記レジスタファイルに書き込むためのバッファコントロール（２６）と、
を有する命令実行装置。
【請求項２】
前記プロセッサはＭＩＰＳである請求項１に記載の命令実行装置。
【請求項３】
前記バッファは先入れ先出しバッファである請求項１に記載の命令実行装置。
【請求項４】
前記命令パイプライン（１２）は複数のステージを有する、請求項１に記載の命令実行装置。
【請求項５】
前記命令パイプライン（１２）は前記複数のステージで複数の命令を処理する、請求項４に記載の命令実行装置。
【請求項６】
前記第１の結果値が前記第２の命令のみによって用いられるかどうかを示す前記手段は、前記第１の結果値が前記第２の命令のみによって用いられるかどうかを示すために前記第１の命令を符号化する手段を有する、請求項１に記載の命令実行装置。
【請求項７】
前記第１の命令を符号化する手段は、前記第１の結果値が前記第２の命令のみによって用いられるかどうかを示すために、前記第１の命令のオペコードにおけっるフィールドを指定する手段を有する、請求項６に記載の命令実行装置。
【請求項８】
それぞれの命令が、そのそれぞれの結果値が１つの他の命令のみによって用いられるかどうかを示すために符号化される、請求項７に記載の命令実行装置。
【請求項９】
前記第１の結果値が前記第１の命令のみによって用いられるかどうかを示す前記手段は、前記命令パイプライン（１２）における前記第１の命令の前記第１の結果値と前記命令パイプラインにおける前記第２命令の第２の結果値が、前記レジスタファイル（１６）の前記第１の書込ポート（２０）に記憶のためにあてられるかどうかを判断するための前記命令パイプライン（１２）を有する、請求項５に記載の命令実行装置。
【請求項１０】
前記第１の結果値が前記第２の命令のみによって用いられるかどうかを示す前記手段は、さらにゲート及びロジック回路（２２）を有する、請求項９に記載の命令実行装置。
【請求項１１】
例外ルーチンを有するプロセッサにおいて命令を実行する方法であって、
命令パイプライン（１２）を用いて第１の命令から第１の結果値を生成し、前記例外ルーチンはランダムな間隔で前記命令パイプラインに割り込む工程と、
バイパス回路（１４）を用いて前記第１の結果値にアクセスする工程と、
前記第１の結果値が前記命令パイプライン（１２）における第２の命令のみによって用いられるかどうかを判断する工程と、
前記第１の結果値がアクセスされ前記第２の命令のみによって用いられる場合に、前記第１の結果値がレジスタファイル（１６）にストアされないようにし且つ前記第１の結果値をバッファ（２４）にストアする工程と、
例外が発生したときに、前記バッファ（２４）からの前記第１の結果値を前記レジスタファイル（１６）に書き込む工程と、
を有する、命令を実行する方法。
【請求項１２】
前記判断する工程は、前記第１の結果値が前記第２の命令のみによって用いられるかどうかを示すために前記第１の命令を符号化する工程を有する、請求項１１に記載の命令を実行する方法。
【請求項１３】
前記判断する工程は、前記命令パイプライン（１２）における前記第１の命令の前記第１の結果値と前記命令パイプライン（１２）における前記第２の命令の第２の結果値が、前記レジスタファイル（１６）において同じストアアドレスを有するかどうかを判断するための前記命令パイプライン（１２）を有する、請求項１１に記載の命令を実行する方法。
【請求項１４】
例外ルーチンを有する装置において命令を処理するためのコードを有するコンピュータ読込可能メモリメディアであって、
前記コードは、
第１の命令から第１の結果値を生成する命令パイプラインコードと、
前記第１の結果値へのアクセスを許可するアクセス許可コードと、
前記第１の結果値が前記命令パイプラインにおいて第２の命令によって用いられるかどうかを識別する指示コードと、
前記第１の結果値がアクセスされ前記第２の命令のみによって用いられる場合に、前記第１の結果値がレジスタファイルにストアされないようにし且つ前記第１の結果値をバッファにストアする回避コードと、
前記例外ルーチンが発生した場合に、前記第１の結果値を前記バッファから前記レジスタファイルに書き込む転送コードと、
を有する、コンピュータ読込可能メモリメディア
【請求項１５】
前記指示コードは、前記第１の結果値が前記第２の命令のみによって用いられるかどうかを示すために前記第１の命令を符号化する手段を有する、請求項１４に記載のメモリメディア。
【請求項１６】
前記指示コードは、前記命令パイプライン（１２）における前記第１の命令の前記第１の結果値と前記命令パイプライン（１２）における前記第２の命令の第２の結果値が、前記レジスタファイル（１６）において同じストアアドレスを有するかどうかを判断するための前記命令パイプライン（１２）を有する、請求項１４に記載のメモリメディア。
【発明の詳細な説明】
【０００１】
本発明の技術分野
本発明は、デジタル計算回路の分野に関し、特に、例外ルーチンを有するプロセッサに用いられる命令実行装置についてのシステム及び方法に関する。
【０００２】
本発明の背景
一般的なモチベーション基準は、電力の消費や装置のサイズ低減させ、さらに全体のコストを低減させるマイクロプロセッサのデザインにある。特にこの点における技術の発展は、多くの同時並行命令を実行する命令実行アーキテクチャの発展であった。
【０００３】
上述したタイプの命令実行アーキテクチャを与えるシステム及び方法として、例えばマイクロプロセッサ命令セットアーキテクチャ（ＩＳＡｓ）が知られている。一般的にそのようなＩＳＡｓの実行においてはいわゆる“パイプライン”手段を用いる。パイプラインは、後続命令の異なる実行ステージを並行処理する。
【０００４】
従来の４つのステージのパイプラインは（１）フェッチ（２）デコード（３）実行（４）ライトバックを用いる。ロード命令のようなデータ転送型命令に対しては１つの余分な命令パイプラインステージが通常必要である。
【０００５】
そのサイクルの第１のステージにおいてプロセッサはメモリから命令をフェッチする。フェッチするための命令のアドレスは、プログラムカウンタすなわちＰＣといわれる内部レジスタにストアされている。プロセッサは命令に応答するためにメモリを待っているとき、ＰＣを増加させる。これは、次のサイクルにおけるフェッチフェーズが、メモリにおける次の場所の命令をフェッチすることを意味する（もしＰＣがそのサイクルの後のフェーズによって変更されなければ）。
【０００６】
デーコードフェーズにおいてプロセッサはメモリによって返される情報を別の内部レジスタにおいてストアする。それは命令レジスタすなわちＩＲとして知られている。ＩＲはバイナリ数として符号化された１つの機械語命令を保持する。プロセッサは、次のステージにおいてどんな動作を実行すべきかを決定するためにＩＲにおける値をデコードする。
【０００７】
実行ステージにおいてプロセッサは実際に命令を実行する。このステップはしばしばさらなるメモリの動作を必要とする。例えば、命令は、プロセッサにメモリから２つのオペランドをフェッチさせ（例えばそれらをオペランドレジスタにストアする）、それらを加算し、その結果値を第３の場所にストアする（そのオペランドと結果値の宛先アドレスはさらに命令の一部として符号化される）。
【０００８】
パイプラインのライトバックステージにおいては、パイプラインにおいて上流へ（ｕｐｓｔｒｅａｍ）計算された結果値はレジスタファイルにおける宛先レジスタに書き込まれる（リタイアされる）。
【０００９】
別の従来技術におけるパイプラン手段では、オペランドあるいは結果値をレジスタファイルへバイパスする回路が備えられている。これらのバイパス回路を用いるとオペランド生成命令（ｏｐｅｒａｎｄ−ｐｒｏｄｕｃｉｎｇ　ｉｎｓｔｒｕｃｔｉｏｎｓ）がリタイアされる（例えばレジスタファイルへの書き戻し）前に、オペランドあるいは結果値を後続命令に対して容易にすぐに利用できる。
【００１０】
最後に、一般的なプロセッサにおいて通常のパイプラインフローに割り込みがシステマティカリーに生じるのには多くの原因がある。これらの割り込みに対する不利益は、失われたあるいは失速したパイプラインサイクルという形であらわれる。特に、例外ルーチンや割り込みは以下のような手段でパイプラインにおける命令フローをしばしば遮る。以下のような手段とは、例外が完了した後に第１の命令がすぐに再び入らないが、第１の命令に続いてパイプラインに入った第２の命令はすぐに再び入るというような手段である。したがって、パイプラインにおける命令のオーダー変化をアカウントするのに複雑さがパイプラインに加えられ、故に命令オペランド及び結果値は適当にオペレートされる。
【００１１】
これらのタイプの従来のパイプラインには多くの欠点がある。例えば、従来のパイプライン手段は、十分に多くの同時並行命令を実行するために且つ割り込みの間データをストアするためにしばしば非常に多くのセパレートレジスタをレジスタファイルにおいて必要とする。大きなレジスタファイルは一般的に全電力消費やプロセッササイズに非常に寄与する。
【００１２】
したがって、従来技術においては、プロセッサ内における従来のレジスタに対する書込トラフィックを減じさせるために、改善されたシステム及び方法、技術が必要である。それによって全体の消費電力を減じさせ、パイプラインアーキテクチャにおける割り込みの影響を補う。
【００１３】
本発明の簡単な要約
本発明の目的は、上述したようなプロセッサ内における従来の命令実行装置におけるいくつかの限界を解決することにある。
【００１４】
さらに本発明の目的は、プロセッサ命令セットアーキテクチャを提供することにある。これは、パイプライン手段におけるレジスタファイルの書込動作数を減じさせ、パイプラインアーキテクチャにおける割り込みの影響をアカウントし、有利には、、プロセッサの全体の消費電力を減じる可能性もある。
【００１５】
プロセッサにおけるレジスタの書込トラフィックに関連する欠点は減じさせられあるいは打開される。それは、命令実行装置が設けられる本発明の原理に応じた装置によってなされる。命令実行装置は命令に対する結果値を生成するのに命令パイプラインを有し、例外ルーチンがランダムな間隔で命令パイプラインに割り込む。命令実行装置は、結果値をストアするのに少なくとも１つの書込ポートを有するレジスタファイル及び結果値へアクセスするためのバイパス回路、そこにおいては、結果値が１つの他の命令のみによって用いられるかどうかに関してレジスタファイルコントロールに指示が与えられ、上記実行命令装置は、さらに、結果値がパイパス回路を介してアクセスされ且つ１つの他の命令のみによって用いられる場合に結果値が書込ポートにストアされないようにするためのレジスタファイルコントロール、結果値をストアするための先入れ先出し（ＦＩＦＯ）バッファ、例外が発生したときにレジスタファイルにＦＩＦＯバッファの内容を書き込むためのＦＩＦＯコントロールを有する。
【００１６】
本発明のある実施例においては、結果値が１つの他の命令のみによってもちいられるかどうかの指示はそれぞれの命令を符号化する工程を有する。例えば、いわゆる“デッド値”フィールドが、結果値が１つの他の命令のみによって用いられるかどうかを示すために、それぞれの命令の“オペコード（ｏｐｃｏｄｅ）”に示される。
【００１７】
本発明の別の実施例においては、第１の結果値が第２の命令のみによって用いられるかどうかを示すための手段として、命令パイプラインにおける命令の結果値及び命令パイプラインにおける別の命令の別の結果値が、レジスタファイルの同じ書込ポートにおいてストアのために指定されるかどうかを判断する命令パイプラインを有する。レジスタファイルにおける書込ポートが命令パイプラインにおいてすぐに後続命令によって“再利用”されるのだから、これは、第１の結果値が１つの他の命令のみによって用いられるということを示すのに用いられる。
【００１８】
本発明のこれらの及びその他の、実施例及び特徴は以下の詳細な開示において実証される。
【００１９】
好ましい実施例の詳細な説明
以下の詳細な説明のいくつかの部分はプログラムすなわちアルゴリズムの観点から、そしてコンピュータメモリ内のデータビットとしての演算記号表現の観点から述べられている。これらのアルゴリズム的な記述や表現は、データ処理技術における当業者によって用いられる手段であり、最も効果的に研究の本質を他の当業者に伝達できる。アルゴリズムはここでは一般的に所望の結果へのステップを有するつじつまの合うシーケンスである。これらのステップは物理量の物理操作を要求する。通常これらの量は、必ずしもそうではないが、蓄積あるいは転送、接続、比較等の処理をすることができる電気的あるいは磁気的、光学的信号の形をとる。
【００２０】
図１は、本発明が適用される命令実行装置の実施例を示すブロック図である。図１は説明のために簡略化されており、本発明を用いるのに適当な全プロセッサ環境としては例えば、キャッシュメモリ、ＲＡＭ及びＲＯＭ、コンパイラあるいはアセンブラ、入出力装置等が設けられているが、いずれも図示されていない。一般的に命令実行装置は、１２１〜１２ｎまでのＮ段パイプライン命令セットレジスタアーキテクチャ（ＩＳＡ）（以下パイプライン１２）、通常のバイパス回路１４、レジスタファイル１６、レジスタファイルコントロール１８、ＦＩＦＯバッファ２４、ＦＩＦＯバッファコントロール２６を有している。
【００２１】
パイプライン１２は多くのパイプラインステージ（例えばフェッチ、デコード、実行、ライトバック）を有しており、レジスタ１２１〜１２ｎにストアされる。通常のパイプラインとは異なりパイプライン１２はさらに“コンシューマ（ｃｏｎｓｕｍｅｒ）ｉｄ”をパイプラインステージレジスタに含み、その用途については以下に詳しく説明される。しかしながら本発明は特定のパイプラインアーキテクチャに制限されない。例えば、パイプラインにおけるステージは、命令フェッチ、デコード、オペランドフェッチ、ＡＬＵ実行、メモリアクセス、演算結果のライトバックを含む。さらに、パイプラインにおけるステージのチェーンはさらに細かく分けられあるいは接続される。パイプラインのステージの数は、命令レベルの並行処理の利用の仕方によって変わるアーキテクチャーである。
【００２２】
レジスタファイル１６はデータをストアするために少なくとも一つのアドレス可能な宛先書込ポート２０を有する。当業者ならば分かるように、レジスタファイルは、レコード／データを蓄えこれらにアクセスできる従来のデータベース／インデキシングストレージ手段でよい。
【００２３】
レジストファイルコントロール１８は、ロジック機能及びコントロール機能、監視機能、変換機能を多く有しており、これらの機能によりレジスタファイル１６に対して書込データを書き戻すのを制御する。レジスタファイルコントロール１８にはさらに、図３に示される機能的動作をするプログラムが備えられており、以下に述べるように、これらのプログラムにより必要な機能が実行され、パイプラインにおけるレジスタファイルへの書込数が減少させられる。
【００２４】
命令は、３つの主要なタイプ、即ち、算術論理及びデータ転送、制御のうちの一つとして区別される。算術論理命令は１つあるいは２つの引数の原始関数であり、例えば足し算あるいは掛け算、論理積である。
【００２５】
それぞれのステージのタイミングはプロセッサの内部構造や実行命令の複雑さにより決まる。演算のための最小時間単位はクロックサイクルとして知られている。プロセッサ内での演算は外部クロックによって制御される。外部クロックは例えば一定期間で方形波を生成する回路である。演算を実行するのに必要なクロックサイクル数でかかる時間が決まる。
【００２６】
本発明は以下のことに注意を払った。多くの命令により演算結果値が生成されるが、この結果値は、この後のアルゴリズムにおける１つの命令、例えば連続してパイプラインに入る１つの他の命令、によって用いられるだけである（前者の命令を“プロデューサ”、後者の命令を“コンシューマ”と呼ぶ。）。さらにＳＰＥＣベンチマークにおけるレジスタデータフローの解析により、全ての整数演算結果の７０％及び全ての浮動小数点演算結果の８０〜９９％が一度使われるだけであるということが明らかになった。フランクリンなどによって書かれた論文、１９９２年１２月にマイクロアーキテクチャーに関する国際シンポジウム第２５回（ＭＩＣＲＯ−２５）において発表された“微細パラレルプロセッサにおける動作をストリーミングするためのレジスタトラフィック解析（Ｒｅｇｉｓｔｅｒ　Ｔｒａｆｆｉｃ　Ａｎａｌｙｓｉｓ　ｆｏｒ　Ｓｔｒｅａｍｌｉｎｉｎｇ　Ｉｎｔｅｒ−Ｏｐｅｒａｔｉｏｎ　Ｃｏｍｍｕｎｉｃａｔｉｏｎ　ｉｎ　Ｆｉｎｅ　Ｇｒａｉｎ　Ｐａｒａｌｌｅｌ　Ｐｒｏｃｅｓｓｏｒｓ）”と題する論文の２３６〜２４５頁を読んでみよ。さらに非常に多くの場合において、上記プロデューサがリタイヤする前に、上記コンシューマはパイプラインアーキテクチャに入力される。これは、スーパースケーラプロセッサやＶＬＩＷプロセッサのような特定のタイプのプロセッサに対していっそう強く保持される。したがって、上記コンシューマは、レジスタファイル以外の手段例えばバイパス回路を通じて結果値を得る。しかしながらそれでも結果値はレジスタファイルに書き戻されない。
【００２７】
さらに重要なことに本発明者は以下のことを理解した。そのような場合におけるプロデューサの結果値はレジスタファイルにリタイヤされる必要はない。なぜならばそれは他のどんなコンシューマによっても用いられないからである。プロデューサの結果値は事実上コンシューマに対してバイパスされるやいなや“デッド値（ｄｅａｄ　ｖａｌｕｅ）”になる。それゆえ本発明の特徴の一つによればレジスタファイルコントロール１８は、ある命令結果値が１つのコンシューマだけによって（あるいはパイプラインにおける他のコンシューマによって）用いられるかどうかを判断し、もしそうであれば、その結果値は、ステージｎ例えばライトバックステージにおいてレジスタファイル１６に書き戻される。いずれにしても結果値（書込データ及び宛先アドレス、コンシューマｉｄを含む）は一時的にＦＩＦＯバッファ２４にストアされる。
【００２８】
図１の実施例において、各命令における明示符号化は、ある特定の命令における結果値が１つのコンシューマだけによって用いられるかどうかを判断するのに用いられる。好ましくは、上記命令における符号化においては、専用“デッド値”ビット（いわゆる命令のオペコード（ｏｐｃｏｄｅ））が用いられる。それは、コンパイラーあるいはアセンブラ（図示せず）によってセットあるいはクリアされ、消費度（ｄｅｇｒｅｅ　ｏｆ　ｃｏｎｓｕｍｐｔｉｏｎ）によって決まる。もしデッド値ビットがセットされれば、結果値は、パイプライン１２のステージｎにおいてレジスタファイル１６に書き戻されない（例えば書込可能信号を介して）が、ＦＩＦＯバッファ２４においてストアされる。特にデッド値は、関連命令の命令ｉｄと同様にレジスタファイルコントロール１８に対して供給され、結果値をライトバックしあるいはしないためにレジスタファイル１６を書込可能信号を介して制御する。代替手段として、もし専用ビットが利用できなければ、少数の一般に用いられる命令が選択され（例えばＡＤＤ及びＬＯＡＤ）、代わりのオペコードが消費度を示すために割り当てられる。
【００２９】
本発明によれば、ＦＩＦＯバッファ２４に結果値を蓄えることによってパイプラインを通じて命令フローに割り込む例外の作用が説明される。例外は命令フローを次のようにして中断させる。即ち、例外がハンドル（ｈａｎｄｌｅ）された後、プロデューサはパイプラインに再び入らないが一方コンシューマは再び入るように中断させる。例外ルーチンが終了した後、コンシューマがパイプラインに再び入ったら、それはレジスタファイル１６からそのオペランドを読み込む。なぜなら、今、プロデューサはもはやパイプラインにおいてコンシューマのダウンストリーム（ｄｏｗｎｓｔｒｅａｍ）ではない。しかし例外が発生する前にプロデューサはレジスタファイル１６をアップデートしていなかったので、コンシューマはレジスタファイル１６から前の（ｓｔａｌｅ）データを読み込み、結果としてプログラムは不正確に作動する。
【００３０】
トリメディア（ｔｒｉｍｅｄｉａ）ＩＳＡのようなあるパイプラインアーキテクチャは命令フローにおいて割り込みをランダムに生じさせない。その代わりにＩＳＡは、ＣＰＵが保留されている例外に同期する特別の命令を供給する。プロデューサとコンシューマがそのような命令によって離されない限り、害は無く、デッド値を除去して問題ない。
【００３１】
しかしながら、ＭＩＰＳ（Ｍｉｃｒｏｐｒｏｃｅｓｓｏｒ　ｗｉｔｈｏｕｔ　Ｉｎｔｅｒｌｏｃｋｉｎｇ　Ｐｉｐｅｌｉｎｅ　Ｓｔａｇｅｓ）ＩＳＡ及びほとんどの他の従来におけるＩＳＡは、保留されている例外にプロセッサがいつ同期すべきかどうかをアプリケーションプログラムに判断させない。結果として、次のようにして例外は命令フローを中断させることができる。即ち、例外が処理された後、プロデューサがパイプラインに再び入らないように一方コンシューマは再び入るようにして中断させることができる。
【００３２】
作動中、ＦＩＦＯバッファ２４は各々の命令の結果をＦＩＦＯバッファ２４のテール（ｔａｉｌ）でストアする。再度、結果値は、書込データ及びレジスタファイル１６の宛先アドレス、パイプラインステージレジスタからコンシューマをユニークに識別するコンシューマｉｄを含む。
【００３３】
ＦＩＦＯコントロール２６はリタイアした命令のフローを連続的にモニタリングし、ＦＩＦＯ２４のヘッドにおける“コンシューマｉｄ”によりそれらのアイデンティティを比較する。マッチイングを見つけると、ＦＩＦＯバッファ２４からヘッドをいわゆる“ポップ（ｐｏｐｓ）”し、その値を除去する。
【００３４】
しかしながら、例外の間、ＦＩＦＯコントロール２６はＦＩＦＯバッファ２４の内容をレジスタファイル１６に書き込む。ヘッドからテールまでＦＩＦＯが空になるまで書き込む。当業者ならば分かるように、ＦＩＦＯバッファ書込動作は種々の手段で実行される。例えばレジスタファイルコントロールやレジスタファイルへの直接接続部を介して実行される。例外ルーチンが終了した後、コンシューマは正確なデータをレジスタファイル１６から読み込む。
【００３５】
図２において他の実施例が示されており、それぞの命令における暗黙の符号化が、ある特定の命令の結果値が１つのコンシューマだけ（あるいはそのパイプラインにおける他の複数のコンシューマ）によって用いられるかどうかを示すのに用いられる。特に、パイプライン１２は、パイプランにおける後続命令としての別の命令が、レジスタファイル１６における同じ宛先アドレス（例えば書込ポート）を用いるかどうかを判断する。これは多くの手段で判断される。例えば、もしステージ−３ １２３における命令の結果値がレジスタファイル１６における書込ポート２０の宛先アドレスに当てられ、そしてステージ−１ １２１における命令の結果値がさらにレジスタファイル１６の同じ宛先アドレスに当てられるのならば、ステージ−３における命令の結果値は“デッド”である。なぜならばその宛先アドレスはパイプラインにおける別の命令によって再び用いられるからである。言い換えれば、１つのコンシューマだけが結果値を用いる。代わりに、この手段はさらに（パイプラインにおける）２以上のコンシューマが結果値を用いるときにも用いられる。例えば、もしステージ−ｎ １２ｎにおける命令の結果値がレジスタファイル１６の書込ポート２０の宛先アドレスに当てられ、ステージ−
１ １２１における（上流への（ｕｐｓｔｒｅａｍ））命令の結果値がさらにレジスタファイル１６のおける同じ宛先アドレスに当てられれば、ステージｎにおける命令の結果値はステージ−２からステージ ｎ−１において“アライブ”である。しかしながらステージ−１においては“デッド”である。このように、結果値は“アライブ”の間は多数のコンシューマによって用いられる。それ故に一旦結果値が“デッド”になると、それはレジスタファイル１６には書き戻されない。
【００３６】
図２の実施例において、従来のゲート及びロジック回路２２、例えばＯＲゲートが、レジスタファイルコントロール１８に対してデッド値ビットを供給するのに用いられる。関連する命令の命令ｉｄがさらにレジスタファイルコントロール１８に供給される。しかしながら、周知であるように、レジスタリネイミング（ｒｅｇｉｓｔｅｒ　ｒｅｎａｍｉｎｇ）をサポートするマイクロアーキテクチャにおいてはゲート及びロジック回路は必要とされない。なぜならばそのようなプロセッサはすでにレジスタの再使用を検出するためのメカニズムを備えているからである。
【００３７】
電力消費の減少は実際の装置の特性による。例えば、ＦＩＦＯバッファにおけるデータはそれが除去される前に少しのクロックサイクルの間そこにストアされるだけである。リフレッシュファシリティなしでダイナミックチャージとしてＦＩＦＯバッファにデータをストアすることが可能である。これはＦＩＦＯバッファのエリアの複雑さを非常に低減させる。とくに、命令レベル平行の高い程度をを利用し、それ故に１クロックサイクルにつき多くの命令をリタイアしなければならないプロセッサにとって好ましい。
【００３８】
下記は単に本発明の原理を示すものにすぎない。したがって、ここでは明確に述べられていないけれども、当業者であれば、本発明の原理を具体化し本発明の範囲に含まれる種々の装置を考え出すことができることが理解されよう。さらに、本発明の原理及び特徴、具体化についてのすべての見解は、それらの特定の実施例と同様に、それらの構造的及び機能的等価物をも含むことが意図されている。さらに、そのような等価物は、広く知られた等価物や、将来において発展させられた等価物すなわち構造に関わらず同じ機能を実現する発展した任意の要素をも含むことが意図されている。
【００３９】
クレームにおいて、特定の機能を実行する手段としてのいずれの要素も、例えばａ）その特定の機能を実行する回路要素の接続、あるいはｂ）ファームウェア及びマイクロコード等を含む任意の形態におけるソフトウェアでその機能を実行するために適当な回路に接続されたもの、を含むことが意図されている。そのようなクレームにおいて定められた本発明は、上記に述べられた種々の手段によって与えられる機能性がクレームが求める態様で接続されている。このように出願人は、ここに示されたものと同等の機能性を与える任意の手段をも考慮している。
【図面の簡単な説明】
【図１】
本発明が適用される命令実行装置における１実施例のブロックダイアグラムである。
【図２】
本発明が適用される命令実行装置における別の実施例のブロックダイアグラムである。
【図１】
2004508607.tif 000003
【図２】
2004508607.tif 000004
【国際公開パンフレット】
2004508607.tif 000005
2004508607.tif 000006
2004508607.tif 000007
2004508607.tif 000008
2004508607.tif 000009
2004508607.tif 000010
2004508607.tif 000011
2004508607.tif 000012
2004508607.tif 000013
2004508607.tif 000014
2004508607.tif 000015
2004508607.tif 000016
2004508607.tif 000017
2004508607.tif 000018
【国際公開パンフレット（コレクトバージョン）】
2004508607.tif 000019
【国際調査報告】
2004508607.tif 000020
2004508607.tif 000021
2004508607.tif 000022