【手続補正書】
【提出日】平成18年2月7日(2006.2.7)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
マイクロプロセッサであって、
命令バイトを受取り記憶するよう構成される命令キャッシュを含み、命令キャッシュは、フェッチアドレスを受取り、それに応答してフェッチアドレスに対応する命令バイトの１つ以上を出力するよう構成され、さらに、
複数個の選択子ビットを記憶するよう構成される分岐選択子アレイを含み、各選択子ビットは、命令キャッシュに記憶される特定の命令バイトに対応し、分岐選択子アレイは、フェッチアドレスを受取り、それに応答して予測される次のフェッチアドレスのためのソースを示す１つ以上の対応する選択子ビットを出力するよう構成され、さらに、
フェッチアドレスをフェッチブロックサイズと合計して次のシーケンシャルなアドレスを生成するよう構成されるシーケンシャルアドレス加算器と、
命令キャッシュに記憶される間接分岐命令のための予測される分岐ターゲットアドレスを記憶するよう構成される間接分岐ターゲットキャッシュとを含み、間接分岐ターゲットキャッシュは、フェッチアドレスを受取り、対応する間接分岐アドレスを出力するよう構成され、さらに、
フェッチアドレスを、命令キャッシュによって出力される命令バイトからのオフセットと合計して直接分岐アドレスを計算するよう構成される直接分岐加算器と、
分岐選択子アレイから１つ以上の対応する選択子ビットを受取るよう構成されるマルチプレクサとを含み、マルチプレクサは、選択子ビットに基づいて次のシーケンシャルなアドレス、直接分岐アドレス、または間接分岐アドレスのいずれかを選択するよう構成される、マイクロプロセッサ。
【請求項２】
シーケンシャルアドレス加算器、直接分岐加算器、および間接分岐ターゲットキャッシュは各々、次のシーケンシャルなアドレス、直接分岐アドレス、および間接分岐アドレスをそれぞれ並列に計算するよう構成される、請求項１に記載のマイクロプロセッサ。
【請求項３】
命令キャッシュによって出力される命令バイトからのオフセットを計算するよう構成されるオフセット計算論理ユニットをさらに含み、オフセット計算論理ユニットは、選択子ビットに基づいてオフセットを計算するよう構成される、請求項２に記載のマイクロプロセッサ。
【請求項４】
前記選択子ビットの２つが、前記命令キャッシュに記憶される各命令バイトに対応し、前記２バイトは、対応する命令が、（ｉ）分岐命令ノットテイクン、（ii）直接分岐命令テイクン、（iii）間接分岐アドレステイクン、または（iv）リターンアドレステイクンであるかを示す、請求項３に記載のマイクロプロセッサ。
【請求項５】
命令キャッシュは、命令バイトについてのプリデコード情報を記憶するよう構成され、プリデコード情報は、命令開始バイトを示すプリデコードビットを含む、請求項４に記載のマイクロプロセッサ。
【請求項６】
フェッチブロックサイズは定数である、請求項５に記載のマイクロプロセッサ。
【請求項７】
前記マルチプレクサに結合され、コール命令のすぐ後に続く命令に対する命令ポインタを記憶するよう構成されるリターンスタックをさらに含む、請求項６に記載のマイクロプロセッサ。
【請求項８】
前記分岐選択子アレイおよび前記間接分岐ターゲットキャッシュは各々、セットアソシアティブであり、もしあれば、どの記憶された選択子ビットおよび間接分岐ターゲットアドレスがフェッチアドレスに対応するかを決定するためにフェッチアドレスと比較されるタグを記憶するよう構成される、請求項２に記載のマイクロプロセッサ。
【請求項９】
マイクロプロセッサにおける予測される次のフェッチアドレスを生成するための方法であって、
現在のフェッチアドレスを受取るステップと、
命令キャッシュから現在のフェッチアドレスに対応するプリデコード情報および命令バイトを出力するステップと、
分岐選択子アレイから現在のフェッチアドレスに対応する選択子ビットを出力するステップと、
現在のフェッチアドレスをフェッチブロック定数に加算して次のシーケンシャルなアドレスを生成するステップと、
間接分岐ターゲットアドレスキャッシュから記憶された間接分岐アドレスを出力するステップと、
リターンスタックから記憶されたリターンアドレスを出力するステップと、
オフセットを計算するステップと、
現在のフェッチアドレスをオフセットに合計して次の直接分岐アドレスを生成するステップと、
予測される次のフェッチアドレスとして、（ｉ）次のシーケンシャルなアドレス、（ii）出力間接分岐アドレス、（iii）出力リターンアドレス、および（iv）次の直接分岐アドレスのいずれかを選択するステップとを含み、前記現在のフェッチアドレスを前記出力するステップと、前記記憶された間接分岐アドレスを前記出力するステップと、前記記憶されたリターンアドレスを前記出力するステップと、現在のフェッチアドレスをオフセットに加算して次の直接分岐アドレスを生成する前記ステップとは、すべて並列に行なわれる、方法。
【請求項１０】
命令キャッシュに記憶される命令バイトについての選択子ビットを生成し記憶するステップと、
選択子ビットに基づいて予測される次のフェッチアドレスを選択するステップとをさらに含む、請求項９に記載の方法。
【請求項１１】
命令キャッシュに記憶される分岐命令の結果に基づいて選択子ビットを更新するステッ
プをさらに含む、請求項１０に記載の方法。
【請求項１２】
前記計算するステップは、
現在のフェッチアドレスから、テイクンであると予測される命令キャッシュからの第１の直接分岐命令への第１の特定のオフセットを決定するステップと、
第１の直接分岐命令内に即値データとして記憶される第２の特定のオフセットを検出するステップとを含み、
前記合計するステップは、現在のフェッチアドレスと第１のオフセットと第２のオフセットとを合計するステップを含む、請求項１１に記載の方法。
【請求項１３】
タグを用いて選択子ビットにアクセスするステップをさらに含む、請求項１２に記載の方法。
【請求項１４】
タグを用いて間接分岐ターゲットキャッシュにアクセスするステップをさらに含む、請求項１３に記載の方法。
【請求項１５】
複数個のプリデコードビットを命令キャッシュに記憶するステップをさらに含み、プリデコードビットは、分岐命令の存在と、直接分岐命令に即値データとして記憶されるオフセットバイトの存在とを示す、請求項１４に記載の方法。
【請求項１６】
コンピュータシステムであって、
命令バイトを記憶するよう構成される命令キャッシュ手段を含み、命令キャッシュ手段は、フェッチアドレスを受取り、それに応答してフェッチアドレスに対応する命令バイトの１つ以上を出力するよう構成され、さらに、
複数個の選択子ビットを記憶するよう構成される分岐選択子アレイ手段を含み、各選択子ビットは、命令キャッシュ手段に記憶される特定の命令バイトに対応し、分岐選択子アレイ手段は、フェッチアドレスを受取り、それに応答して予測される次のフェッチアドレスのためのソースを示す１つ以上の対応する選択子ビットを出力するよう構成され、さらに、
フェッチアドレスをフェッチブロックサイズと合計して次のシーケンシャルなアドレスを生成するよう構成されるシーケンシャルアドレス加算器手段と、
命令キャッシュ手段に記憶される間接分岐命令のための予測される分岐ターゲットアドレスを記憶するよう構成される間接分岐ターゲットキャッシュ手段とを含み、間接分岐ターゲットキャッシュ手段は、フェッチアドレスを受取り、対応する間接分岐アドレスを出力するよう構成され、さらに、
フェッチアドレスを、命令キャッシュ手段によって出力される命令バイトからのオフセットと合計して直接分岐アドレスを計算するよう構成される直接分岐加算器手段と、
分岐選択子アレイ手段から１つ以上の対応する選択子ビットを受取るよう構成される選択子手段とを含み、選択子手段は、選択子ビットに基づいて次のシーケンシャルなアドレス、直接分岐アドレス、または間接分岐アドレスのいずれかを選択するよう構成される、コンピュータシステム。
【請求項１７】
シーケンシャルアドレス加算器手段、直接分岐加算器手段、および間接分岐ターゲットキャッシュ手段は各々、次のシーケンシャルなアドレス、直接分岐アドレス、および間接分岐アドレスをそれぞれ並列に計算するよう構成される、請求項１６に記載のコンピュータシステム。
【請求項１８】
命令キャッシュ手段によって出力される命令バイトからのオフセットを計算するよう構成されるオフセット計算論理ユニットをさらに含み、オフセット計算論理ユニットは、選択子ビットに基づいてオフセットを計算するよう構成される、請求項１７に記載のコンピ
ュータシステム。
【請求項１９】
前記選択子ビットの２つが、前記命令キャッシュ手段に記憶される各命令バイトに対応し、前記２バイトは、対応する命令が、（ｉ）分岐命令ノットテイクン、（ii）直接分岐命令テイクン、（iii）間接分岐アドレステイクン、または（iv）リターンアドレステイクンであるかを示す、請求項１８に記載のコンピュータシステム。
【請求項２０】
命令キャッシュ手段は、命令バイトについてのプリデコード情報を記憶するよう構成され、プリデコード情報は、命令開始バイトを示すプリデコードビットを含む、請求項１９に記載のコンピュータシステム。
【請求項２１】
フェッチブロックサイズは定数である、請求項２０に記載のコンピュータシステム。
【請求項２２】
前記選択子手段に結合され、コール命令のすぐ後に続く命令に対する命令ポインタを記憶するよう構成されるリターンスタックをさらに含む、請求項２１に記載のコンピュータシステム。
【請求項２３】
前記分岐選択子アレイ手段および前記間接分岐ターゲットキャッシュ手段は各々、セットアソシアティブであり、もしあれば、どの記憶された選択子ビットおよび間接分岐ターゲットアドレスがフェッチアドレスに対応するかを決定するためにフェッチアドレスと比較されるタグを記憶するよう構成される、請求項１７に記載のコンピュータシステム。