【手続補正書】
【提出日】平成17年6月7日(2005.6.7)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】特許請求の範囲
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】  分岐予測装置であって、
命令キャッシュからフェッチされる連続する命令バイトの群に対応するフェッチアドレスを受けるように結合された分岐予測記憶部を含み、前記分岐予測記憶部は、複数の分岐セレクタおよび第１の復帰セレクタを記憶するように構成され、前記複数の分岐セレクタのうちの第１の分岐セレクタは、前記連続する命令バイトの群内の第１の命令に対応し、前記第１の復帰セレクタは、前記複数の分岐セレクタのうちの前記第１の分岐セレクタに対応し、前記複数の分岐セレクタのうちの前記第１の分岐セレクタは、前記第１の復帰セレクタの第１の状態の検出に応答する第１のカテゴリの分岐予測に対応し、前記複数の分岐セレクタのうちの前記第１の分岐セレクタは、前記第１の復帰セレクタの第２の状態の検出に応答する第２のカテゴリの分岐予測に対応し、前記複数の分岐セレクタのうちの前記第１の分岐セレクタおよび前記第１の復帰セレクタは、フェッチされる前記第１の命令に応答して選択すべき第１の分岐予測を特定し、前記分岐予測装置はさらに、
前記分岐予測記憶部に結合された選択機構を含み、前記選択機構は、前記複数の分岐セレクタおよび前記第１の復帰セレクタを受けるように構成され、前記選択機構は、前記フェッチアドレスの複数の最下位ビットに応答して前記複数の分岐セレクタのうち前記第１の分岐セレクタを選択し、かつ、前記複数の分岐セレクタのうちの前記第１の分岐セレクタおよび前記第１の復帰セレクタに応答して前記第１の分岐予測を選択するように、構成される、分岐予測装置。
【請求項２】  前記連続する命令バイトの群は、前記命令キャッシュのキャッシュラインの一部を含む、請求項１に記載の分岐予測装置。
【請求項３】  前記キャッシュラインの前記一部は、前記キャッシュラインの２分の１を含む、請求項２に記載の分岐予測装置。
【請求項４】  前記第１の分岐予測は、前記分岐予測記憶部に記憶された複数の分岐予測のうち１つを含み、前記複数の分岐予測は、前記連続する命令バイトの群に対応する、請求項１に記載の分岐予測装置。
【請求項５】  前記複数の分岐セレクタのうちの前記第１の分岐セレクタは、シーケンシャルアドレスを前記第１の分岐予測として特定する、請求項４に記載の分岐予測装置。
【請求項６】  前記複数の分岐セレクタのうちの前記第１の分岐セレクタは、非シー
ケンシャルアドレスを前記第１の分岐予測として特定する、請求項４に記載の分岐予測装置。
【請求項７】  前記第１のカテゴリの分岐予測は、非復帰分岐命令のターゲットアドレスを含み、前記第２のカテゴリの分岐予測は、復帰スタックアドレスを含む、請求項１に記載の分岐予測装置。
【請求項８】  前記第１の復帰セレクタの前記第１の状態は、前記第１の復帰セレクタの第１の値に対応し、前記第１の復帰セレクタの前記第２の状態は、前記第１の復帰セレクタの第２の値に対応する、請求項７に記載の分岐予測装置。
【請求項９】  前記複数の分岐セレクタのうちの第２の分岐セレクタは、前記連続する命令バイトの群内の第２の命令に対応し、第２の復帰セレクタは、前記複数の分岐セレクタのうちの前記第２の分岐セレクタに対応し、前記複数の分岐セレクタのうちの前記第２の分岐セレクタは、前記第２の復帰セレクタの第１の状態の検出に応答する前記第１のカテゴリの分岐予測に対応し、前記複数の分岐セレクタのうちの前記第２の分岐セレクタは、前記第２の復帰セレクタの第２の状態の検出に応答する前記第２のカテゴリの分岐予測に対応し、前記複数の分岐セレクタのうちの前記第２の分岐セレクタおよび前記第２の復帰セレクタは、フェッチされる前記第２の命令に応答して選択すべき第２の分岐予測を特定する、請求項１に記載の分岐予測装置。
【請求項１０】  前記連続する命令バイトの群は、第１の複数の命令を含み、前記第１の複数の命令は、前記第１の命令および第１の分岐命令を含み、前記連続する命令バイトの群は、第２の複数の命令を含み、前記第２の複数の命令は、第２の分岐命令を含み、前記複数の分岐セレクタのうちの前記第１の分岐セレクタおよび前記第１の復帰セレクタは、前記第１の複数の命令に対応し、前記複数の分岐セレクタのうちの第２の分岐セレクタおよび第２の復帰セレクタは、前記第２の複数の命令に対応する、請求項１に記載の分岐予測装置。
【請求項１１】  前記連続する命令バイトの群は、第３の複数の命令を含み、前記複数の分岐セレクタのうちの第３の分岐セレクタは、前記第３の複数の命令に対応し、前記複数の分岐セレクタのうちの前記第３の分岐セレクタは、シーケンシャルアドレスを特定する、請求項１０に記載の分岐予測装置。
【請求項１２】  複数の命令を含む連続する命令バイトの群に対応する分岐予測を選択する方法であって、
複数の分岐セレクタを分岐予測記憶部に記憶するステップを含み、前記複数の分岐セレクタのうちの１つの分岐セレクタは、前記複数の命令のうちの第１の命令に対応し、前記方法はさらに、
復帰セレクタを前記分岐予測記憶部に記憶するステップを含み、前記復帰セレクタは、前記複数の分岐セレクタのうちの前記１つの分岐セレクタに対応し、前記複数の分岐セレクタのうちの前記１つの分岐セレクタは、前記復帰セレクタの第１の状態の検出に応答する第１のカテゴリの分岐予測に対応し、前記複数の分岐セレクタのうちの前記１つの分岐セレクタは、前記復帰セレクタの第２の状態の検出に応答する第２のカテゴリの分岐予測に対応し、前記複数の分岐セレクタのうちの前記１つの分岐セレクタおよび前記復帰セレクタは、フェッチされる前記複数の命令に応答して選択すべき前記分岐予測を特定し、前記方法はさらに、
前記連続する命令バイトの群を特定するフェッチアドレスを用いて前記連続する命令バイトの群をフェッチし前記複数の分岐セレクタおよび前記復帰セレクタをフェッチするステップと、
前記フェッチアドレスに応答して前記複数の分岐セレクタのうちの前記１つの分岐セレクタを選択するステップと、
前記複数の分岐セレクタのうちの前記１つの分岐セレクタおよび前記復帰セレクタに応答して前記分岐予測を選択するステップとを含む、分岐予測を選択する方法。
【請求項１３】  前記分岐予測は、前記分岐予測記憶部に記憶された複数の分岐予測のうち１つを含み、前記複数の分岐予測は、前記連続する命令バイトの群に対応する、請
求項１２に記載の方法。
【請求項１４】  分岐予測誤りに応答して前記複数の分岐予測を更新するステップをさらに含む、請求項１３に記載の方法。
【請求項１５】  前記更新するステップは、前記分岐予測記憶部に記憶された前記複数の分岐予測のうち１つを、前記連続する命令バイトの群内の、過去に検出されなかった分岐命令に割当てるステップを含む、請求項１４に記載の方法。
【請求項１６】  前記複数の分岐セレクタを更新して、前記過去に検出されなかった分岐命令を反映するステップをさらに含む、請求項１５に記載の方法。
【請求項１７】  前記第１のカテゴリの分岐予測は、非復帰分岐命令のターゲットアドレスを含み、前記第２のカテゴリの分岐予測は、復帰スタックアドレスを含む、請求項１２に記載の方法。
【請求項１８】  前記復帰セレクタの第１の状態は、前記復帰セレクタの第１の値に対応し、前記復帰セレクタの第２の状態は、前記復帰セレクタの第２の値に対応する、請求項１７に記載の方法。
【請求項１９】  前記複数の分岐セレクタのうちの前記１つの分岐セレクタを選択する前記ステップは、前記フェッチアドレスの複数の最下位ビットをデコードするステップを含む、請求項１２に記載の方法。
【請求項２０】  前記フェッチアドレスの前記複数の最下位ビットは、前記連続する命令バイトの群内のオフセットを含むので、前記連続する命令バイトの群の各々は、前記オフセットの異なる値を用いて特定可能である、請求項１９に記載の方法。
【請求項２１】  マイクロプロセッサであって、
命令処理パイプラインと、
複数の連続する命令バイトを記憶し、現在のフェッチアドレスを受けると前記複数の連続する命令バイトの群を前記命令処理パイプラインに与えるように構成された命令キャッシュと、
前記命令キャッシュに結合された分岐予測部とを含み、前記分岐予測部は、前記現在のフェッチアドレスを受けるように結合された分岐予測記憶部を含み、前記分岐予測記憶部は、複数の分岐セレクタおよび復帰セレクタを記憶するように構成され、前記複数の分岐セレクタのうちの１つの分岐セレクタは、前記複数の連続する命令バイト内の第１の命令に対応し、前記復帰セレクタは、前記複数の分岐セレクタのうちの前記１つの分岐セレクタに対応し、前記複数の分岐セレクタのうちの前記１つの分岐セレクタは、前記復帰セレクタの第１の状態の検出に応答する第１のカテゴリの分岐予測に対応し、前記複数の分岐セレクタのうちの前記１つの分岐セレクタは、前記復帰セレクタの第２の状態の検出に応答する第２のカテゴリの分岐予測に対応し、前記複数の分岐セレクタのうちの前記１つの分岐セレクタおよび前記復帰セレクタは、フェッチされる前記第１の命令に応答して選択すべき分岐予測を特定し、前記分岐予測は次に続くフェッチアドレスを特定する、マイクロプロセッサ。
【請求項２２】  前記複数の分岐セレクタのうちの前記１つの分岐セレクタは、前記現在のフェッチアドレスの複数の最下位ビットをデコードすることにより選択される、請求項２１に記載のマイクロプロセッサ。