【手続補正書】
【提出日】平成22年3月31日(2010.3.31)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プログラム命令のシーケンスの制御の下にデータを処理するための装置であって、
複数の異なってエンコードされたタイプの分岐プログラム命令をデコードすることができる命令デコーダと、
前記プログラム命令のシーケンス内の分岐命令を検出し、且つ、分岐処理が、検出された分岐命令から生じるかどうかを予測することができる分岐予測部と、
を具備し、
前記複数の異なってエンコードされたタイプの分岐プログラム命令は、前記分岐予測部が予測する少なくとも１つの予測されるタイプの分岐命令と、前記分岐予測部による予測の対象とならないこと以外は、前記予測されるタイプの分岐命令の１つと同じ機能を提供する少なくとも１つの予測されないタイプの分岐命令とを有し、
前記分岐予測部は、以前に遭遇した所定の分岐命令が、分岐処理を生じる時か生じない時かの、予測されるタイプの前記所定の分岐命令を示す分岐履歴データを格納することができる分岐履歴バッファを具備し、
前記分岐履歴予測部は、予測されないタイプの分岐命令のための分岐履歴データを格納せず、
前記少なくとも１つの予測されないタイプの分岐命令は、分岐処理に加えて、実行される命令セットから前記装置にサポートされない命令セットへの命令セットの変更を示すタイプの分岐命令を含み、前記命令セットの変更を示す分岐命令は、前記分岐予測部が前記タイプの分岐命令を使用するべきでないことを示すことに再利用されることを特徴とする装置。
【請求項２】
前記分岐予測部は、予測されるタイプの分岐命令のうち以前に遭遇した分岐命令の分岐ターゲットアドレスを格納することができる分岐ターゲットバッファメモリを具備し、
前記装置は、前記分岐ターゲットバッファメモリに、予測されないタイプの分岐命令のうち以前に遭遇した分岐命令の分岐ターゲットアドレスを格納しない、ように構成されていることを特徴とする請求項１に記載の装置。
【請求項３】
前記装置は、１処理サイクルにおいて、前記分岐ターゲットバッファメモリが有するポートであって分岐ターゲットアドレスによってアクセスされるポートよりも多くのプログラム命令をフェッチすることができることを特徴とする請求項２に記載の装置。
【請求項４】
前記少なくとも１つの予測されないタイプの分岐命令は、前記分岐ターゲットアドレスをレジスタに格納するために間接参照を使用して分岐ターゲットアドレスを指定するタイプの分岐命令を含むことを特徴とする請求項１に記載の装置。
【請求項５】
プログラム命令のシーケンスの制御の下にデータを処理するための装置であって、
複数の異なってエンコードされたタイプの分岐プログラム命令をデコードすることができる命令デコーダ手段と、
前記プログラム命令のシーケンス内の分岐命令を検出し、且つ、分岐処理が、検出された分岐命令から生じるかどうかを予測することができる分岐予測手段と、
を具備し、
前記複数の異なってエンコードされたタイプの分岐プログラム命令は、前記分岐予測手段が予測する少なくとも１つの予測されるタイプの分岐命令と、前記分岐予測手段による予測の対象とならないこと以外は、前記予測されるタイプの分岐命令の１つと同じ機能を提供する少なくとも１つの予測されないタイプの分岐命令とを有し、
前記分岐予測手段は、以前に遭遇した所定の分岐命令が、分岐処理を生じる時か生じない時かの、予測されるタイプの前記所定の分岐命令を示す分岐履歴データを格納することができる分岐履歴バッファ手段を具備し、
前記分岐履歴予測手段は、予測されないタイプの分岐命令のための分岐履歴データを格納せず、
前記少なくとも１つの予測されないタイプの分岐命令は、分岐処理に加えて、実行される命令セットから前記装置にサポートされない命令セットへの命令セットの変更を示すタイプの分岐命令を含み、前記命令セットの変更を示す分岐命令は、前記分岐予測手段が前記タイプの分岐命令を使用するべきでないことを示すことに再利用されることを特徴とする装置。
【請求項６】
プログラム命令のシーケンスの制御の下に装置内でデータを処理するための方法であって、
複数の異なってエンコードされたタイプの分岐プログラム命令をデコードするステップと、
分岐予測部を用いて前記プログラム命令のシーケンス内の分岐命令を検出し、且つ、分岐処理が、検出された分岐命令から生じるかどうかを予測するステップと、
を具備し、
前記複数の異なってエンコードされたタイプの分岐プログラム命令は、前記分岐予測部が予測する少なくとも１つの予測されるタイプの分岐命令と、前記分岐予測部による予測の対象とならないこと以外は、前記予測されるタイプの分岐命令の１つと同じ機能を提供する少なくとも１つの予測されないタイプの分岐命令とを有し、
前記分岐予測部は、以前に遭遇した所定の分岐命令が、分岐処理を生じる時か生じない時かの、予測されるタイプの前記所定の分岐命令を示す分岐履歴データを格納することができる分岐履歴バッファを具備し、
前記分岐履歴予測部は、予測されないタイプの分岐命令のための分岐履歴データを格納せず、
前記少なくとも１つの予測されないタイプの分岐命令は、分岐処理に加えて、実行される命令セットから前記装置にサポートされない命令セットへの命令セットの変更を示すタイプの分岐命令を含み、前記命令セットの変更を示す分岐命令は、前記分岐予測部が前記タイプの分岐命令を使用するべきでないことを示すことに再利用されることを特徴とする方法。
【請求項７】
プログラム命令のシーケンスの制御の下にデータを処理するためのデータ処理装置を制御するように構成された有形的表現媒体であるとともに、コンピュータが読み取り可能に記憶されたコンピュータプログラムを具備するコンピュータプログラムキャリアであって、
前記データ処理装置は、前記プログラム命令のシーケンス内の分岐命令を検出するとともに、分岐処理が、検出された分岐命令に起因するかどうかを予測することができる分岐予測部を具備し、
前記コンピュータプログラムは、
複数の異なってエンコードされたタイプの分岐プログラム命令と、
前記分岐予測部が予測する少なくとも１つの予測されるタイプの分岐命令と、
前記分岐予測手段による予測の対象とならないこと以外は、前記予測されるタイプの分岐命令の１つと同じ機能を提供する少なくとも１つの予測されないタイプの分岐命令と、
以前に遭遇した所定の分岐命令が、分岐処理を生じる時か生じない時かの、予測されるタイプの前記所定の分岐命令を示す分岐履歴データを分岐履歴バッファに格納するとともに、予測されないタイプの分岐命令のための分岐履歴データを分岐履歴バッファに格納しないようにするための１つ以上の命令と、
を含み、
前記少なくとも１つの予測されないタイプの分岐命令は、分岐処理に加えて、実行される命令セットから前記データ処理装置にサポートされない命令セットへの命令セットの変更を示すタイプの分岐命令を含み、前記命令セットの変更を示す分岐命令は、前記分岐予測部が前記タイプの分岐命令を使用するべきでないことを示すことに再利用されることを特徴とするコンピュータプログラムキャリア。
【請求項８】
複数の異なってエンコードされたタイプの分岐プログラム命令を有するプログラム命令のシーケンスの制御の下にデータを処理するためのデータ処理装置を制御するコンピュータプログラムをコンパイルするためのコンパイラであって、
前記データ処理装置は、前記プログラム命令のシーケンス内の分岐命令を検出するとともに、分岐処理が、検出された分岐命令に起因するかどうかを予測することができる分岐予測部を具備し、
前記分岐予測部が予測をする少なくとも１つの予測されるタイプの分岐命令と、
前記分岐予測部による予測の対象とならないこと以外は、前記予測されるタイプの分岐命令の１つと同じ機能を提供する少なくとも１つの予測されないタイプの分岐命令と、
を生成することができ、
前記分岐予測部は、以前に遭遇した所定の分岐命令が、分岐処理を生じる時か生じない時かの、予測されるタイプの前記所定の分岐命令を示す分岐履歴データを格納することができる分岐履歴バッファを具備し、
前記分岐履歴予測部は、予測されないタイプの分岐命令のための分岐履歴データを格納せず、
前記少なくとも１つの予測されないタイプの分岐命令は、分岐処理に加えて、実行される命令セットから前記データ処理装置にサポートされない命令セットへの命令セットの変更を示すタイプの分岐命令を含み、前記命令セットの変更を示す分岐命令は、前記分岐予測部が前記タイプの分岐命令を使用するべきでないことを示すことに再利用されることを特徴とするコンパイラ。
【請求項９】
前記コンパイラは、分岐処理が前記分岐予測部によって正しく予測されないことを示す指示に応答して、前記分岐予測部が予測をしない、前記予測されないタイプの分岐命令を使用して前記分岐処理をコンパイルすることを特徴とする請求項８に記載のコンパイラ。