(57)【要約】【課題】分岐予測メカニズムの精度および効果を高めることを可能にする技術を提供する【解決手段】プロセッサ２は予測されるタイプの分岐命令の分岐結果を予測するために動作する分岐予測メカニズム１４，１８，２０を具備する。また、プロセッサは、分岐予測メカニズム１４，１８，２０によって無視されるとともに予測の対象とならない、予測されないタイプの分岐命令をサポートする。予測メカニズム１４，１８，２０の予測誤りの総合的な性能の劣化の影響は、それらの分岐処理が、予測誤りを起こしそうであると分かっている時、分岐処理の表示／制御のために、予測されないタイプの分岐プログラム命令を使用することによって、減少する。【選択図】図３
2006338656.tif 000002
【特許請求の範囲】
【請求項１】
プログラム命令のシーケンスの制御の下にデータを処理するための装置であって、
複数の異なってエンコードされたタイプの分岐プログラム命令をデコードすることができる命令デコーダと、
前記プログラム命令のシーケンス内の分岐命令を検出し、且つ、分岐処理が、検出された分岐命令から生じるかどうかを予測することができる分岐予測部と、
を具備し、
前記複数の異なってエンコードされたタイプの分岐プログラム命令は、前記分岐予測部が予測する少なくとも１つの予測されるタイプの分岐命令と、前記分岐予測部による予測の対象とならないこと以外は、前記予測されるタイプの分岐命令の１つと同じ機能を提供する少なくとも１つの予測されないタイプの分岐命令とを有することを特徴とする装置。
【請求項２】
前記分岐予測部は、以前に遭遇した所定の分岐命令が、分岐処理を生じる時か生じない時かの、予測されるタイプの前記所定の分岐命令を示す分岐履歴データを格納することができる分岐履歴バッファを具備し、
前記分岐履歴予測部は、予測されないタイプの分岐命令のための分岐履歴データを格納しないことを特徴とする請求項１に記載の装置。
【請求項３】
前記分岐予測部は、予測されるタイプの分岐命令のうち以前に遭遇した分岐命令の分岐ターゲットアドレスを格納することができる分岐ターゲットバッファメモリを具備し、前記分岐ターゲットバッファメモリは、予測されないタイプの分岐命令のうち以前に遭遇した分岐命令の分岐ターゲットアドレスを格納しないことを特徴とする請求項１に記載の装置。
【請求項４】
前記装置は、１処理サイクルにおいて、前記分岐ターゲットバッファメモリが、分岐ターゲットアドレスにアクセスされるポートを有するよりも多くのプログラム命令をフェッチすることができることを特徴とする請求項３に記載の装置。
【請求項５】
前記少なくとも１つの予測されないタイプの分岐命令は、分岐処理に加えて、実行される命令セットの変更を示すタイプの分岐命令を含むことを特徴とする請求項１に記載の装置。
【請求項６】
前記少なくとも１つの予測されないタイプの分岐命令は、前記分岐ターゲットアドレスをレジスタに格納するために間接参照を使用する分岐ターゲットアドレスを指定するタイプの分岐命令を含むことを特徴とする請求項１に記載の装置。
【請求項７】
プログラム命令のシーケンスの制御の下にデータを処理するための装置であって、
複数の異なってエンコードされたタイプの分岐プログラム命令をデコードすることができる命令デコーダ手段と、
前記プログラム命令のシーケンス内の分岐命令を検出し、且つ、分岐処理が、検出された分岐命令から生じるかどうかを予測することができる分岐予測手段と、
を具備し、
前記複数の異なってエンコードされたタイプの分岐プログラム命令は、前記分岐予測手段が予測する少なくとも１つの予測されるタイプの分岐命令と、前記分岐予測手段による予測の対象とならないこと以外は、前記予測されるタイプの分岐命令の１つと同じ機能を提供する少なくとも１つの予測されないタイプの分岐命令とを有することを特徴とする装置。
【請求項８】
プログラム命令のシーケンスの制御の下にデータを処理するための方法であって、
複数の異なってエンコードされたタイプの分岐プログラム命令をデコードするステップと、
分岐予測部を用いて前記プログラム命令のシーケンス内の分岐命令を検出し、且つ、分岐処理が、検出された分岐命令から生じるかどうかを予測するステップと、
を具備し、
前記複数の異なってエンコードされたタイプの分岐プログラム命令は、前記分岐予測手段が予測する少なくとも１つの予測されるタイプの分岐命令と、前記分岐予測手段による予測の対象とならないこと以外は、前記予測されるタイプの分岐命令の１つと同じ機能を提供する少なくとも１つの予測されないタイプの分岐命令とを有することを特徴とする方法。
【請求項９】
プログラム命令のシーケンスの制御の下にデータを処理するためのデータ処理装置を制御することができるコンピュータプログラムを実行するコンピュータプログラムキャリアであって、
前記データ処理装置は、前記プログラム命令のシーケンス内の分岐命令を検出するとともに、分岐処理が、検出された分岐命令に起因するかどうかを予測することができる分岐予測部を具備し、
前記コンピュータプログラムは、
複数の異なってエンコードされたタイプの分岐プログラム命令と、
前記分岐予測部が予測する少なくとも１つの予測されるタイプの分岐命令と、
前記分岐予測手段による予測の対象とならないこと以外は、前記予測されるタイプの分岐命令の１つと同じ機能を提供する少なくとも１つの予測されないタイプの分岐命令とを含むことを特徴とするコンピュータプログラムキャリア。
【請求項１０】
複数の異なってエンコードされたタイプの分岐プログラム命令を有するプログラム命令のシーケンスの制御の下にデータを処理するためのデータ処理装置を制御するコンピュータプログラムをコンパイルするためのコンパイラであって、
前記データ処理装置は、前記プログラム命令のシーケンス内の分岐命令を検出するとともに、分岐処理が、検出された分岐命令に起因するかどうかを予測することができる分岐予測部を具備し、
前記分岐予測部が予測をする少なくとも１つの予測されるタイプの分岐命令と、
前記分岐予測手段による予測の対象とならないこと以外は、前記予測されるタイプの分岐命令の１つと同じ機能を提供する少なくとも１つの予測されないタイプの分岐命令と、
を生成することができることを特徴とするコンパイラ。
【請求項１１】
前記コンパイラは、分岐処理が前記分岐予測部によって正しく予測されないことの指示に応答することにより、前記分岐予測部が予測をしない、前記予測されないタイプの分岐命令で前記分岐処理をコンパイルすることを特徴とする請求項１０に記載のコンパイラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理システムの分野に関する。特に、本発明は、分岐予測メカニズムおよびその分岐予測メカニズムの制御を具備するデータ処理システムに関する。
【背景技術】
【０００２】
プログラム命令のシーケンス内の分岐命令が、結果として分岐処理（プログラムフローにおけるジャンプ）を生じるか否か、それとも、分岐処理を生じるかどうかに関する予測をするために様々な方法で動作する分岐予測メカニズムを具備するプロセッサを提供することが知られている。分岐命令が分岐処理を生じるかどうかを正確に予測することは、その分岐が実際に分岐処理を生じるかどうか、例えば、分岐がその条件コードを通過するかどうか、または、以前の間接的な分岐またはこれと同様の場合に同じ位置に分岐する結果となるかどうかが分かる前に、予測される分岐結果に従って、記憶領域からフェッチするプログラム命令が開始される可能性がある。そのような分岐予測メカニズムに関連する回路および複雑さのオーバーヘッドは、それらが著しい性能増加をもたらすことにより容認される。特に、正確に分岐結果を予測することは、要求された命令を正しいシーケンスでパイプラインフラッシュおよび再フェッチした結果、分岐命令を実行する前に推測的にフェッチされる妥当でないプログラム命令の可能性を減少させる。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
分岐予測メカニズムの精度および効果を高めることが可能な技術は、プロセッサ性能の向上において非常に有利である。
【課題を解決するための手段】
【０００４】
一態様から見ると、本発明は、プログラム命令のシーケンスの制御の下にデータを処理するための装置であって、
複数の異なってエンコードされたタイプの分岐プログラム命令をデコードすることができる命令デコーダと、
前記プログラム命令のシーケンス内の分岐命令を検出し、且つ、分岐処理が、検出された分岐命令から生じるかどうかを予測することができる分岐予測部と、
を具備し、
前記複数の異なってエンコードされたタイプの分岐プログラム命令は、前記分岐予測部が予測する少なくとも１つの予測されるタイプの分岐命令と、前記分岐予測部による予測の対象とならないこと以外は、前記予測されるタイプの分岐命令の１つと同じ機能を提供する少なくとも１つの予測されないタイプの分岐命令とを有することを特徴とする装置を提供する。
【０００５】
前述した本技術は、いくつかの環境においては、不正確な予測に関する性能の不利益は、所定の分岐プログラム命令の予測を行わないことに関する性能の不利益より望ましくないと認識されている。また、現在の技術は、そのような状況は、プログラムがコード化されるとともに、分岐予測メカニズムによって予測されないタイプの分岐プログラム命令を提供する時より前に、しばしば予め認識される可能性があることを認めている。従って、システムは、分岐予測メカニズムによって検出されるとともに予測されるいくつかの分岐プログラム命令エンコーディングと、分岐予測メカニズムによって予測されないその他の分岐プログラム命令エンコーディングとを提供する。従って、プログラマまたはコンパイラは、どんな予測も、予測をしないよりも悪い不利益の結果となる予測誤りとなりそうな状況においては、予測されないタイプの分岐プログラム命令の使用を選択して良い。特定の分岐処理は、分岐予測メカニズムの仮定に反するランダムなふるまい、または系統的なふるまいのせいで、予測が困難な可能性がある。そのような状況における分岐予測をしないことの利点は様々であり、且つ、他の場合に有効に使用できる分岐予測メカニズム資源を単純に消費しないということを含む。他の例として、予測に不適当であることが分かっている分岐処理の予測を試みる分岐予測メカニズムの結果として、他の分岐処理に適用される予測は不正確であるということが挙げられる。
【０００６】
いくつかの好ましい実施形態では、分岐予測部は、過去のふるまいが格納された履歴に基づいて、所定の分岐が行われるかどうかを示す分岐履歴データを格納することができる分岐履歴バッファを具備する。そのようなメカニズムは、不規則であると分かっている分岐処理の予測および追跡を試みることによる有効性が無く（例えば、分岐結果のパターンを正確に特定することができない）、従って、本技術は、分岐履歴バッファが、予測されないタイプの分岐処理に関連するデータを格納しないように、動作しても良い。
【０００７】
他の好ましい実施形態は、以前に遭遇した分岐処理の分岐ターゲットアドレスを格納するための分岐ターゲットバッファメモリを用いる。そのような分岐ターゲットバッファメモリの容量は有限であり、不正確に予測されることが分かっているタイプの分岐処理にこの容量を消費することは、正確に予測される他の分岐処理のためにそのような容量を使用することを不可能にする。従って、分岐ターゲットバッファメモリは、予測されない分岐処理に関連するデータを格納しないように配置される。
【０００８】
分岐ターゲットバッファメモリの持つアクセスポートは典型的に有限数であるということ、および、予測されない方が良いタイプの分岐の関連データへのアクセスを試みるこれらのアクセスポートの１つを消費することは、その時フェッチされる可能性があり且つ有効にそのような予測の対象となる可能性がある他の分岐命令が、このアクセスポートを使用することを不可能にするという、分岐ターゲットバッファメモリの更なる制約となる。
【０００９】
予測されるタイプおよび予測されないタイプへ落とし込まれた異なるタイプの分岐命令は、様々な異なる形式である可能性があるということが理解される。しかしながら、予測されない分岐命令の形式は、命令セットにおける変化を補足的に示すものであることが好ましい。変更が示されている補足的な命令セットが存在しない時、この分岐命令の区別された特徴は、それ以外の点では冗長であるとともに、分岐予測メカニズムがそのようなタイプの分岐命令に使用されるべきでないと伝えるために効果的に再利用されうるので、そのような分岐命令における非予測特性が、このタイプの命令に載ることによって利益をもたらす。
【００１０】
好ましい実施形態では、予測されないタイプの分岐命令は、そのターゲットアドレスを格納するレジスタへの間接参照を使用して、そのターゲットアドレスを指定するタイプの分岐命令を含む。分岐ターゲットへの間接参照を使用することは、ターゲットアドレスへの直接表現を利用する命令と比較して、正確に予測する確率が低くなる傾向を示す。分岐ターゲットが変化しそうであり、それゆえ、これが、まさに正確な予測がされそうにない状況のタイプである時には、典型的に間接参照が使われる。
【００１１】
他の態様から見ると、本発明は、プログラム命令のシーケンスの制御の下にデータを処理するための装置であって、
複数の異なってエンコードされたタイプの分岐プログラム命令をデコードすることができる命令デコーダ手段と、
前記プログラム命令のシーケンス内の分岐命令を検出し、且つ、分岐処理が、検出された分岐命令から生じるかどうかを予測することができる分岐予測手段と、
を具備し、
前記複数の異なってエンコードされたタイプの分岐プログラム命令は、前記分岐予測手段が予測する少なくとも１つの予測されるタイプの分岐命令と、前記分岐予測手段による予測の対象とならないこと以外は、前記予測されるタイプの分岐命令の１つと同じ機能を提供する少なくとも１つの予測されないタイプの分岐命令とを有することを特徴とする装置を提供する。
【００１２】
更なる態様から見ると、本発明は、プログラム命令のシーケンスで制御されるデータ処理のための方法であって、
複数の異なるタイプのエンコードされた分岐プログラム命令をデコードするステップと、
分岐予測部を用いて前記プログラム命令のシーケンス内の分岐命令を検出し、且つ、分岐処理が、検出された分岐命令から生じるかどうかを予測するステップと、
を具備し、
前記複数の異なるタイプのエンコードされた分岐プログラム命令は、前記分岐予測部が予測する少なくとも１つの予測されるタイプの分岐命令と、前記分岐予測部による予測の対象とならないこと以外は、前記予測されるタイプの分岐命令の１つと同じ機能を提供する少なくとも１つの予測されないタイプの分岐命令とを有することを特徴とする方法を提供する。
【００１３】
更なる態様から見ると、本発明は、プログラム命令のシーケンスの制御の下にデータを処理するためのデータ処理装置を制御することができるコンピュータプログラムを運搬するコンピュータプログラムキャリアであって、前記データ処理装置は、前記プログラム命令のシーケンス内の分岐命令を検出するとともに、分岐処理が、検出された分岐命令に起因するかどうかを予測することができる分岐予測部を具備し、
前記コンピュータプログラムは、
複数の異なってエンコードされたタイプの分岐プログラム命令と、
前記分岐予測部が予測する少なくとも１つの予測されるタイプの分岐命令と、
前記分岐予測手段による予測の対象とならないこと以外は、前記予測されるタイプの分岐命令の１つと同じ機能を提供する少なくとも１つの予測されないタイプの分岐命令とを含むことを特徴とするコンピュータプログラムキャリアを提供する。
【００１４】
補足的な態様から見ると、本発明は、複数の異なってエンコードされたタイプの分岐プログラム命令を有するプログラム命令のシーケンスの制御の下にデータを処理するためのデータ処理装置を制御するコンピュータプログラムをコンパイルするためのコンパイラであって、前記データ処理装置は、前記プログラム命令のシーケンス内の分岐命令を検出するとともに、分岐処理が、検出された分岐命令に起因するかどうかを予測することができる分岐予測部を具備し、
前記分岐予測部が予測をする少なくとも１つの予測されるタイプの分岐命令と、
前記分岐予測手段による予測の対象とならないこと以外は、前記予測されるタイプの分岐命令の１つと同じ機能を提供する少なくとも１つの予測されないタイプの分岐命令と、
を生成することができることを特徴とするコンパイラを提供する。
【００１５】
コンピュータプログラムをコンパイルするためのコンパイラは、自身で、プログラマによって提供された情報を、識別するまたは使用することによって、本技術を有益に利用しても良いことが理解される。ここで、それらの分岐処理は、それらの正確な予測を生じない傾向があり、それゆえ、それらが生成するコード内にそれらの分岐処理を表す、予測されるタイプの分岐命令よりむしろ予測されないタイプの分岐命令が使用される。
【００１６】
本発明の上述およびその他の目的、特徴、および利点は、添付図面と関連して読まれる例示的な実施形態である以下の詳細な説明から明らかになる。
【発明を実施するための最良の形態】
【００１７】
図１は、分岐予測メカニズムを組み込んだプロセッサの概要図である。
【００１８】
図２は予測される分岐命令タイプと予測されない分岐命令タイプとを有し、異なってエンコードされた多くの分岐命令の概要図である。
【００１９】
図３は、予測データでの分岐予測メカニズムのポピュレーションを図式的に説明するフローチャートである。
【００２０】
図１は、所望のデータ処理動作を行うためにデコーダ１２によって生じる制御信号の制御下で動作するレジスタファイル４と乗算器６とシフタ８と加算器１０とのような標準的なデータ処理要素を具備するプロセッサ２を示す。命令フェッチユニット１４によってメモリ（図示せず）からフェッチされた命令は、命令パイプライン１６に供給され、それに沿って進行することにより、標準パイプライン処理原理に従って、デコードされるとともに実行される。
【００２１】
前記プロセッサ２は、分岐予測メカニズムを具備し、例示的な本実施形態において、以前遭遇した予測されるタイプの分岐命令の結果となるパターンと、ならないパターンとを格納するための分岐履歴バッファ１８を具備する。また、前記分岐予測メカニズムは、処理されたことがある、以前に遭遇した予測されるタイプの分岐命令に関連する分岐ターゲットアドレスを格納するための分岐ターゲットバッファ２０を具備する。前記命令フェッチユニット１４は、命令を受信する時に、以前に遭遇したことのある分岐ターゲットアドレスが格納された配列にインデックスを付けるために用いられる分岐ターゲットバッファ２０へ、命令アドレスを送信する。コンテントアドレサブルメモリは、以前に遭遇した分岐命令のアドレスを格納するのに用いられ、現在フェッチされた命令からのアドレスが適用される時に、もし、現在フェッチされた命令のアドレスが、分岐命令が以前見つかった格納されたアドレスに対応するならば、１ヒットが生成される。そのようなヒットが発生すると、分岐ターゲットバッファは、前記フェッチユニット１４へ、その分岐命令の分岐ターゲットアドレスを返す。また、この時、分岐履歴バッファ１８は、以前に処理された分岐または処理されなかった分岐の検出されたパターンに従い、以前に見られたふるまいに従って、たった今認識された分岐命令は、これまで検出されてきた結果、処理されるかどうかを決定するためにアクセスされる。もし、分岐履歴バッファが、遭遇している分岐命令が処理されるという予測を示す場合、その後、分岐ターゲットバッファ２０によって返された分岐ターゲットアドレスは、分岐ターゲットバッファ２０によって示されたアドレスからの分岐予測に従うフェッチング命令を開始するために、命令フェッチユニット１４によって使用されても良い。
【００２２】
これらの分岐予測メカニズムそれ自身は既知であり、且つ、本技術に従う異なったタイプの分岐予測メカニズムが使われても良いことは、十分に理解される。
【００２３】
分岐命令が、命令パイプラインの末端に達するとともに、そこから廃棄されるべきである時に、分岐予測アップデート回路２２は、今、適切に実行されている分岐命令の実際の結果に従って、分岐予測メカニズム１４，１８，２０をアップデートするように動作する。命令デコーダ１２は、複数の異なるエンコードされたタイプの分岐プログラム命令に応答する。これらのタイプの分岐プログラム命令の中には、分岐予測メカニズム１４，１８，２０による予測の対象となる予測される命令も存在する。加えて、実行される分岐処理が、分岐予測メカニズム１４，１８，２０による予測の対象とならない時、且つ、分岐結果情報で分岐履歴バッファ１８または分岐ターゲットバッファ２０のどちらのアップデート動作も行わない時に動作する間の分岐命令のエンコーディングもまた存在する。命令ストリーム内で出現し、且つ、予測の対象とならない時、そのような予測されない分岐命令は、分岐予測メカニズム１４，１８，２０によって格納された予測データをアップデートしないので、分岐予測メカニズムに検出されることがない。予測を誤る可能性があると分かっている分岐命令の予測を試みない方が良い理由の一例は、分岐ターゲットバッファ２０には単一のアクセスポートしかなく、それゆえ、もし、このアクセスポートが、予測を誤りそうな分岐の関連情報へアクセスを試みて不必要に占有されているならば、このことは首尾よく正確に予測できる分岐命令のための別のアクセスの妨害となる可能性がある、ということにおいて説明される。さらに、それらが、首尾よく予測されそうにない分岐命令の関連情報を格納するために使用されるのであれば、分岐予測メカニズムの有限な格納資源の浪費である。その誤った予測は、前述の履歴データを混乱させるとともに、全体的な予測の精度を下げる可能性があるという更なる要因となるので、データから除去される、例えば、分岐履歴バッファ１８の、処理された／処理されなかった分岐履歴データから除去される方が良い。
【００２４】
図２は、ＡＲＭ Ｌｉｍｉｔｅｄ  Ｃａｍｂｒｉｄｇｅ  Ｅｎｇｌａｎｄによって設計されたＡＲＭプロセッサのＡＲＭ命令セット構造に従う、５つの異なるエンコーディングタイプの分岐命令を説明している。これらの異なってエンコードされたタイプの分岐命令のうち最初の４つが、分岐予測対象となる予測される分岐命令である。最後のタイプは、予測されない分岐命令タイプであるとともに、予測を誤りそうな状況において、（明らかにプログラマの制御下であるか、または、コンパイラによって自動生成されるかどちらかの）プログラム内で使用できる。この予測されない分岐命令タイプは、予測の対象とならず、それゆえ、不必要に分岐予測メカニズムの性能を落とすことがない。予測されない分岐命令タイプは、レジスタＲｍを介して分岐ターゲットへの間接参照を使用している本実施形態におけるものであることが理解される。分岐ターゲットへのそのような間接参照は、高いレベルの予測誤りが発生する状況において、適当に使用される傾向がある。この例における予測されない分岐命令ＢＸＪは、予測されないヒント情報と異なり、予測されるＢＸ命令と同じ機能を提供する。図２において説明される特定の命令は、本技術の対象となる分岐命令の一例にすぎず、異なる命令が、異なるプロセッサ構造においてまたはＡＲＭプロセッサ構造内において使用される可能性があることが理解される。
【００２５】
図３は、格納された予測データのアップデートを図式的に示すフローチャートである。ステップ２２において、命令はパイプラインから廃棄される。そして、ステップ２４において、回収された分岐命令が予測されるタイプであるかどうかを決定する。もし、分岐命令が予測されるタイプでないならば処理を終了する。もし、分岐命令が予測されるタイプであるならば、ステップ２６において、分岐履歴バッファをアップデートするとともに、ステップ２８において、分岐ターゲットバッファをアップデートする。予測されないタイプの分岐命令は、分岐予測メカニズム１４，１８，２０にどんなアップデートも生じさせないので、それらは、遭遇した時に、これらのメカニズムによって無視されるとともに、分岐予測メカニズムによる分岐予測の対象とならない。これらの難しい分岐のふるまいを予測するのに有効な能力を持ち、それゆえ前述の有用な両立経路を提供する分岐予測メカニズムを伴ったプロセッサによって、将来、予測されないヒント情報を無視することができる。
【００２６】
前述のように、予測されないタイプの分岐命令は、特定の分岐処理が予測誤りを発生する傾向があることを知っているプログラマによって、手動でプログラムコード内に挿入されても良い。あるいは、これらの予測されないタイプの分岐命令は、本技術に従うコンパイラによっては自動的または半自動的に展開されても良い。プログラマは、情報が、特定の分岐処理が予測を誤る傾向があることを示す情報で高レベルコードに注釈を付けるとともに、コンパイラが、このヒント情報に応答することにより、その分岐処理のために予測されないタイプの分岐命令を使用しても良い。代替手段として、または加えて、コンパイラが、分岐予測誤りがしばしば発生することを示す傾向がある特性を提示する高レベルプログラム命令コードのシーケンスを自動的に検出しても良い。そのような特性の例は、入れ子になったＤＬＬか、オブジェクト指向言語内の未解決の手続き的コールかで発生する可能性があるような、多くの間接的な分岐参照である。コンパイラが、そのような特性を検出すると、分岐予測メカニズム１４，１８，２０によって無視される、予測されないタイプの分岐命令を使用しても良い。コンパイラ内で使用することができる更なる技術は、それが生成するコンパイルされたコードをエミュレート実行し、そのコードのふるまいの分析表をまとめることにより、ある分岐が比較的多くの予測誤りを生じているかどうかを特定することでも良い。もし、そのような予測を誤る分岐が発生しているならば、それらの分岐を表現するプログラム命令を、予測されないタイプのプログラム命令に置き換えても良い。
【００２７】
本発明を例示する実施形態は、添付図面を参照してここに詳細に説明されているが、本発明は、添付の特許請求の範囲によって定義されるように、それらの厳密な実施形態に限定されず、且つ、当業者によって本発明の範囲と趣旨から逸脱することのない様々な変化および変更がもたらされることが可能であることが理解されるものでなければならない。
【図面の簡単な説明】
【００２８】
【図１】分岐予測メカニズムを組み込んだプロセッサの概要図である。
【図２】予測される分岐命令タイプと予測されない分岐命令タイプとを有し、異なってエンコードされた多くの分岐命令の概要図である。
【図３】予測データでの分岐予測メカニズムのポピュレーションを図式的に説明するフローチャートである。
【符号の説明】
【００２９】
２  プロセッサ
４  レジスタファイル
６  乗算器
８  シフタ
１０  加算器
１２  デコーダ
１４  命令フェッチユニット（分岐予測メカニズム）
１６  命令パイプライン
１８  分岐履歴バッファ（分岐予測メカニズム）
２０  分岐ターゲットバッファ（分岐予測メカニズム）
２２  分岐予測アップデート回路
【図１】
2006338656.tif 000003
【図２】
2006338656.tif 000004
【図３】
2006338656.tif 000005
【手続補正書】
【提出日】平成18年6月30日(2006.6.30)
【手続補正１】
【補正対象書類名】図面
【補正対象項目名】図１
【補正方法】変更
【補正の内容】
【図１】
2006338656.tif 000006
【手続補正２】
【補正対象書類名】図面
【補正対象項目名】図２
【補正方法】変更
【補正の内容】
【図２】
2006338656.tif 000007
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】図３
【補正方法】変更
【補正の内容】
【図３】
2006338656.tif 000008
【外国語明細書】
2006338656.tif 000009
2006338656.tif 000010
2006338656.tif 000011
2006338656.tif 000012
2006338656.tif 000013
2006338656.tif 000014
2006338656.tif 000015
2006338656.tif 000016
2006338656.tif 000017
2006338656.tif 000018
2006338656.tif 000019
2006338656.tif 000020
2006338656.tif 000021
2006338656.tif 000022
2006338656.tif 000023
2006338656.tif 000024
2006338656.tif 000025