【事件の表示】
　特願２０１５−　４１６１９「プロアクティブ分岐ターゲットアドレスキャッシュ管理のための方法及び装置」拒絶査定不服審判事件〔平成２７年　８月　６日出願公開、特開２０１５−１４４００１〕について、次のとおり審決する。
【結　論】
　本件審判の請求は、成り立たない。
【理　由】
１．手続の経緯
　本願は，２００７年６月２８日（パリ条約による優先権主張外国庁受理２００６年６月２９日（以下，「優先日」という。），米国）を国際出願日とする特願２００９−５１８５５３号の一部を平成２５年６月５日に新たな特許出願とした特願２０１３−１１９０１８号の一部を平成２７年３月３日に新たな特許出願としたものであって，平成２７年３月２４日付けで翻訳文，上申書，及び審査請求書が提出されると共に手続補正がなされ，平成２７年１２月２４日付けの拒絶理由通知に対して平成２８年４月１１日付けで意見書が提出されると共に手続補正がなされたが，平成２８年９月１３日付けで拒絶査定がなされ，これに対して平成２９年１月１９日に拒絶査定不服審判の請求がなされたものである。
２．本願発明
　本願の請求項１に係る発明（以下，「本願発明」という。）は，平成２８年４月１１日付けの手続補正により補正された特許請求の範囲の請求項１に記載された事項により特定される次のとおりのものである。
　
「　【請求項１】
　マルチプルステージ分岐予測システムであって，
　分岐命令に関連付けられた分岐ターゲットアドレスキャッシュ（ＢＴＡＣ）エントリを格納するように構成されたＢＴＡＣと，
　分岐予測子回路とを備え，前記分岐予測子回路は，
　　予測方向カウンタと，ここで，前記予測方向カウンタは，前記分岐命令に関連付けられる，
　　履歴レジスタ回路と，ここで，前記履歴レジスタ回路は，前記分岐命令の分岐方向履歴を格納する，
　　　前記ＢＴＡＣエントリに基づいて前記分岐命令の第１の方向を予測し，ここで，前記第１の方向は，後の命令を命令プリフェッチユニットに推測的にプリフェッチするために用いられ，
　　　前記予測方向カウンタに基づいて前記分岐命令の第２の方向を予測し，ここで，前記第１の方向と矛盾する前記第２の方向に応答して，前記後の命令は，前記命令プリフェッチユニットからフラッシュされ，
　　　前記予測方向カウンタの値を修正し，ここで，前記予測方向カウンタの前記修正された値は，前記分岐命令の実際の結果に基づいており，前記履歴レジスタ回路に格納されている情報に基づいていない，
　　　前記予測方向カウンタの前記修正された値に基づいて，前記ＢＴＡＣエントリを管理するために管理信号を生成する
　　ように構成された論理回路と
　を備えるシステム。」
　
３．引用例
（１）引用例１
　原査定の拒絶理由で引用された，本願の優先日前に頒布された刊行物である，特開平７−２６２００６号公報（１９９５年１０月１３日出願公開。以下，「引用例１」という。）には，図面とともに，以下の事項が記載されている。（下線は当審において付したものである。）
Ａ　「【０００１】
【産業上の利用分野】
本発明は一般的にはデジタル計算システムに関し，かつより特定的には分岐予測（ｂｒａｎｃｈ  ｐｒｅｄｉｃｔｉｏｎ）能力を備えたデータプロセッサに関する。
Ｂ　「【０００４】
分岐ターゲットアドレスキャッシュ（Ｂｒａｎｃｈ  ｔａｒｇｅｔ  ａｄｄｒｅｓｓ  ｃａｃｈｅ：ＢＴＡＣ）は分岐予測を行なうために使用される装置である。ＢＴＡＣはデータプロセッサが最近分岐したアドレスを含む。これらの「分岐ターゲット（ｂｒａｎｃｈ  ｔａｒｇｅｔｓ）」はそれらを発生した分岐命令のアドレスによって指示される（ｉｎｄｅｘｅｄ）。データプロセッサはいったんそれが次に実行すべきいずれかの命令のアドレスを決定するとＢＴＡＣをサーチする。もし該アドレスがＢＴＡＣ内の有効なエントリに対応すれば，データプロセッサはそれが再び分岐を行なうことを推測しかつ自動的にその対応するキャッシュ記憶された（ｃａｃｈｅｄ）ターゲットアドレスへと分岐する。
【０００５】
【発明が解決しようとする課題】
ＢＴＡＣを導入したデータプロセッサはそのＢＴＡＣを該データプロセッサが各々の分岐命令を実行した後に更新しかつターゲットアドレスを決定する。知られたデータプロセッサは次に該分岐命令のアドレスおよびそのターゲットアドレスをＢＴＡＣに記憶する。
Ｃ　「【００１０】
【実施例】図１は，本発明にしたがって構築されたデータプロセッサ１０のブロック図を示す。データプロセッサ１０は各々の分岐命令が分岐が行なわれるかあるいは行なわれないかを予測することによってその性能を改善するデータプロセッサである。データプロセッサ１０は次に命令を予測されたフェッチアドレスでフェッチし，かつこれらの命令の実行を開始する。後に，データプロセッサ１０は前記分岐が行なわれるべきであったかあるいは行なわれるべきでなかったかを解明し（ｒｅｓｏｌｖｅｓ）かつもしそれが前の時間に誤って予測した場合には訂正処置を行なう。
データプロセッサ１０は複数組のフェッチアドレス−ターゲットアドレス対（ｆｅｔｃｈ  ａｄｄｒｅｓｓ−ｔａｒｇｅｔ  ａｄｄｒｅｓｓ  ｐａｉｒｓ）を記憶するために分岐ターゲットアドレスキャッシュ（“ＢＴＡＣ”）を導入する。データプロセッサ１０はそれが新しいフェッチアドレスを発生するたびごとにＢＴＡＣをサーチする。もしフェッチアドレスがＢＴＡＣに存在すれば，データプロセッサは直ちに記憶されたフェッチアドレスに関連するターゲットアドレスにおける命令のフェッチを開始することになる。
【００１１】
（途中省略）
【００１２】開示された分岐予測方法を除くデータプロセッサ１０の動作は技術的に知られている。一般に，分岐ユニット２０はあるデータレジスタの内容および命令自体が与えらればプログラムされた命令のどのシーケンスが適切であるかを判定する。分岐ユニット２０が分岐命令を予測するために使用する２つのそのようなレジスタはカウンタレジスタ３７および条件レジスタ３９である。分岐ユニット２０は図４および図５に関して後に説明する。
命令キャッシュ１４はプログラムされた命令のこのシーケンスをシーケンサ１８に提供する。
Ｄ　「【００１９】
フェッチ段階では，命令キャッシュ１４は前のクロックサイクルにおいて分岐ユニット２０またはシーケンサユニット１８によって識別されたメモリアドレスで始まる１つまたはそれ以上の命令を読み出す。このメモリアドレスはフェッチアドレスと称される。シーケンサユニット１８はフェッチパイプライン段階で第１の分岐予測を行なう。シーケンサユニット１８はＢＴＡＣを使用して数多くの最近の分岐命令に対するフェッチアドレスおよびそれらの対応するターゲットアドレスの多数の対を記憶する。シーケンサユニット１８はもしその入力フェッチアドレスが特定のターゲットアドレスのフェッチアドレスに対応すればＢＴＡＣに格納された特定のターゲットアドレスにおける命令をフェッチする。
【００２０】デコード段階においては，命令はシーケンサユニット１８によって引き続く段階で使用するために数多くの制御信号にデコードされる。
シーケンサユニット１８はデコードパイプラインステージにおいて第２の分岐予測を行なう。シーケンサユニット１８は１つまたはそれ以上の単純な分岐命令のためのフェッチアドレスを発生することができる。シーケンサユニット１８は分岐ヒストリテーブル（“ＢＨＴ”）に各々の最近遭遇した分岐命令に対する履歴状態（ｈｉｓｔｏｒｙｓｔａｔｅ）を維持する。各々の分岐命令の状態はシーケンサユニット１８が分岐を行なうと予測するかあるいは行なわないと予測するかを決定する。
Ｅ　「【００３１】
ＢＨＴ５０は，５１２の最近遭遇した分岐命令に対する２ビットの分岐履歴状態を維持するダイレクトマップ・ランダムアクセスメモリ（ｄｉｒｅｃｔ  ｍａｐｐｅｄ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ：ＲＡＭ）アレイである。各々のエントリは４つの可能な状態をエンコードするために２ビットを含む。
分岐ユニット２０は後に説明されるように実行段階においてＢＨＴ５０の各々のエントリを更新する。
【００３２】データプロセッサ１０は条件レジスタ３９における１つまたはそれ以上のビットの値に基づく分岐命令を予測するためのダイナミック分岐予測方法を使用する。パワーＰＣアーキテクチャにおいては，他の命令は条件レジスタ３９のビットを分岐命令を実行するための前置き（ｐｒｅｌｕｄｅ）として修正することができる。ダイナミック分岐予測方法によれば，分岐命令は同じ分岐命令の前に生じたものが分岐が行なわれた場合または行なわれなかった場合に，それぞれ，分岐が行なわれあるいは行なわれない可能性が高くなる。したがって，各々の分岐命令の履歴を維持することにより分岐命令が分岐が行なわれるかあるいは行なわれないかを予測することが可能になる。特定の分岐命令の状態は該特定の分岐命令のデコード段階の間に分岐が行なわれるものと予測されるかあるいは行なわれないものと予測されるかを決定する。
示された実施例に対する分岐状態モデルは４状態モデル（ｆｏｕｒ−ｓｔａｔｅ  ｍｏｄｅｌ）であり，すなわち強い分岐なし（ＳＴＲＯＮＧ−ＮＯＴ−ＴＡＫＥＮ），弱い分岐なし（ＷＥＡＫ−ＮＯＴ−ＴＡＫＥＮ），弱い分岐あり（ＷＥＡＫ−ＴＡＫＥＮ）および強い分岐あり（ＳＴＲＯＮＧ−ＴＡＫＥＮ）である。
分岐ユニット２０はＢＨＴ５０における各々のエントリの状態を更新する。分岐ユニット２０はＢＨＴエントリの現在の状態および実行している分岐の方向に関する情報を使用して該実行している分岐命令に対応するＢＨＴエントリの次の状態を計算する。もしシーケンサ１８が分岐命令を誤って予測すれば，分岐ユニット２０はＢＨＴ５０の対応するエントリを１つの強い状態から同じ弱い状態へあるいは１つの弱い状態から反対の弱い状態へと更新する。逆に，シーケンサユニット１８が分岐命令を正しく予測すれば，分岐ユニット２０はＢＨＴ５０における対応するエントリを１つの弱い状態から同じ強い状態へとまたは１つの強い状態から同じ強い状態へと更新することになる。
Ｆ　「【００３９】アドレスセレクタ４２はそれがマルチプレクサ４０に対し６個までのアドレスの内のどれをＩＦＡＲ４４に出力させるべきかを決定する。マルチプレクサ４０はＢＴＡＣ４８から制御信号ＨＩＴ／＊ＭＩＳＳを，デコード予測ユニット５４から制御信号デコード訂正（ＤＥＣＯＤＥ  ＣＯＲＲＥＣＴＩＯＮ）を，ディスパッチユニット６０から制御信号ディスパッチ訂正（ＤＩＳＰＡＴＣＨ  ＣＯＲＲＥＣＴＩＯＮ）を，分岐ユニット２０から制御信号実行訂正（ＥＸＥＣＵＴＩＯＮ  ＣＯＲＲＥＣＴＩＯＮ）を，そして完了ユニット６２から制御信号割込み（ＩＮＴＥＲＲＵＰＴ）を受信する。
各々の制御信号の発生源（ｓｏｕｒｃｅ）はその制御信号をもし該発生源が前のパイプラインステージの間に発生されたフェッチアドレスと異なるフェッチアドレス，すなわち訂正されたフェッチアドレス，を発生すればその制御信号を肯定する。一般に，パイプラインの各ステージは分岐を解明するかあるいは前の段階（単数または複数）よりも統計的により正確な分岐方向の予測を行なう。したがって，パイプラインのより後の段階は訂正についてより前の段階よりも優先度を有する。
各々の引き続くフェッチアドレス訂正はパイプラインにおける対応する分岐命令に続く全ての命令を無効にする。
Ｇ　「【００４６】
分岐ユニット２０は次にそれが実行している分岐命令が条件分岐命令であるかを判定する，ステップ７８。
分岐ユニット２０が実行している分岐命令が条件分岐命令であれば，分岐ユニット２０はＢＨＴ５０のための新しい分岐状態を計算する，ステップ８０。分岐ユニット２０はまたステップ８０においてこの新しい分岐状態をＢＨＴ５０に書き込む。分岐ユニット２０は前記新しい分岐状態が強い分岐（ｓｔｒｏｎｇ−ｔａｋｅｎ）または弱い分岐（ｗｅａｋ−ｔａｋｅｎ）であるかを判定する，ステップ８２。条件分岐命令はこれら両方の場合において次にデータプロセッサ１０が条件分岐命令を実行する時に分岐を行なうものと予測されることになる。したがって，分岐ユニット２０は該分岐命令のフェッチアドレスおよびそれがステップ６８において計算したターゲットアドレスをＢＴＡＣ４８に加える。強い分岐なし（ｓｔｒｏｎｇ−ｎｏｔ−ｔａｋｅｎ）または弱い分岐なし（ｗｅａｋ−ｎｏｔ−ｔａｋｅｎ）に対応する分岐状態を有する条件分岐命令はデータプロセッサ１０が次に該条件分岐命令を実行する時に分岐を行なわないものと予測されることになる。したがって，分岐ユニット２０は該分岐命令のフェッチアドレスおよびそれがステップ６８において計算したターゲットアドレスをＢＴＡＣ４８から削除する。
Ｈ　「【図１】
」
Ｉ　「【図３】
」
　ここで，上記引用例１に記載されている事項について検討する。
ア　上記Ａの「本発明は一般的にはデジタル計算システムに関し，かつより特定的には分岐予測（ｂｒａｎｃｈ  ｐｒｅｄｉｃｔｉｏｎ）能力を備えたデータプロセッサに関する。」との記載から，
　引用例１には，“分岐予測能力を備えたデータプロセッサ”が記載されていると認められる。
イ　上記Ｂの段落【０００４】の「分岐ターゲットアドレスキャッシュ（Ｂｒａｎｃｈ  ｔａｒｇｅｔ  ａｄｄｒｅｓｓ  ｃａｃｈｅ：ＢＴＡＣ）は分岐予測を行なうために使用される装置である。ＢＴＡＣはデータプロセッサが最近分岐したアドレスを含む。これらの「分岐ターゲット（ｂｒａｎｃｈ  ｔａｒｇｅｔｓ）」はそれらを発生した分岐命令のアドレスによって指示される（ｉｎｄｅｘｅｄ）。データプロセッサはいったんそれが次に実行すべきいずれかの命令のアドレスを決定するとＢＴＡＣをサーチする。もし該アドレスがＢＴＡＣ内の有効なエントリに対応すれば，データプロセッサはそれが再び分岐を行なうことを推測しかつ自動的にその対応するキャッシュ記憶された（ｃａｃｈｅｄ）ターゲットアドレスへと分岐する。」との記載，同じく上記Ｂの段落【０００５】の「ＢＴＡＣを導入したデータプロセッサはそのＢＴＡＣを該データプロセッサが各々の分岐命令を実行した後に更新しかつターゲットアドレスを決定する。知られたデータプロセッサは次に該分岐命令のアドレスおよびそのターゲットアドレスをＢＴＡＣに記憶する。」との記載，及び上記Ｃの「データプロセッサ１０は複数組のフェッチアドレス−ターゲットアドレス対（ｆｅｔｃｈ  ａｄｄｒｅｓｓ−ｔａｒｇｅｔ  ａｄｄｒｅｓｓ  ｐａｉｒｓ）を記憶するために分岐ターゲットアドレスキャッシュ（“ＢＴＡＣ”）を導入する。」との記載から，
　データプロセッサが，分岐ターゲットアドレスキャッシュ（ＢＴＡＣ）を備えていることが読み取れ，また，当該ＢＴＡＣは，エントリとして，分岐命令のアドレスとターゲットアドレスの対を記憶していることが読み取れるから，
　引用例１には，“データプロセッサは，エントリとして分岐命令のアドレスとターゲットアドレスの対を記憶した分岐ターゲットアドレスキャッシュ（ＢＴＡＣ）を備え”ていることが記載されていると認められる。
ウ　上記Ｈで引用した図１の記載から，データプロセッサ１０は，シーケンサユニット１８を備えていることが読み取れ，
　上記Ｄの段落【００２０】の「シーケンサユニット１８は分岐ヒストリテーブル（“ＢＨＴ”）に各々の最近遭遇した分岐命令に対する履歴状態（ｈｉｓｔｏｒｙｓｔａｔｅ）を維持する。」との記載から，
　シーケンサユニットは，最近遭遇した分岐命令に対する履歴状態を維持する分岐ヒストリテーブル（“ＢＨＴ”）を備えることが読み取れるから，
　引用例１には，“データプロセッサは，最近遭遇した分岐命令に対する履歴状態を維持する分岐ヒストリテーブル（“ＢＨＴ”）を備えたシーケンサユニットを備え”ることが記載されていると認められる。
　また，上記Ｅの段落【００３１】の「ＢＨＴ５０は，５１２の最近遭遇した分岐命令に対する２ビットの分岐履歴状態を維持するダイレクトマップ・ランダムアクセスメモリ（ｄｉｒｅｃｔ  ｍａｐｐｅｄ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ：ＲＡＭ）アレイである。各々のエントリは４つの可能な状態をエンコードするために２ビットを含む。」との記載，及び同じく上記Ｅの段落【００３２】の「示された実施例に対する分岐状態モデルは４状態モデル（ｆｏｕｒ−ｓｔａｔｅ  ｍｏｄｅｌ）であり，すなわち強い分岐なし（ＳＴＲＯＮＧ−ＮＯＴ−ＴＡＫＥＮ），弱い分岐なし（ＷＥＡＫ−ＮＯＴ−ＴＡＫＥＮ），弱い分岐あり（ＷＥＡＫ−ＴＡＫＥＮ）および強い分岐あり（ＳＴＲＯＮＧ−ＴＡＫＥＮ）である。」との記載から，ＢＨＴは，最近遭遇した分岐命令に対する２ビットの分岐履歴状態，すなわち，強い分岐なし，弱い分岐なし，弱い分岐ありおよび強い分岐ありの４状態を維持することが読み取れるから，
　引用例１には，“データプロセッサは，最近遭遇した分岐命令に対する２ビットの分岐履歴状態，すなわち，強い分岐なし，弱い分岐なし，弱い分岐ありおよび強い分岐ありの４状態を維持する分岐ヒストリテーブル（“ＢＨＴ”）を備えたシーケンサユニットを備え”ることが記載されていると認められる。
エ　上記Ｃの段落【００１０】の「データプロセッサ１０はそれが新しいフェッチアドレスを発生するたびごとにＢＴＡＣをサーチする。もしフェッチアドレスがＢＴＡＣに存在すれば，データプロセッサは直ちに記憶されたフェッチアドレスに関連するターゲットアドレスにおける命令のフェッチを開始することになる。」との記載，及び上記Ｄの段落【００１９】の「シーケンサユニット１８はフェッチパイプライン段階で第１の分岐予測を行なう。シーケンサユニット１８はＢＴＡＣを使用して数多くの最近の分岐命令に対するフェッチアドレスおよびそれらの対応するターゲットアドレスの多数の対を記憶する。シーケンサユニット１８はもしその入力フェッチアドレスが特定のターゲットアドレスのフェッチアドレスに対応すればＢＴＡＣに格納された特定のターゲットアドレスにおける命令をフェッチする。」との記載から，
　シーケンサユニットは，フェッチパイプライン段階で第１の分岐予測を行なうこと，また，当該分岐予測においては，新しいフェッチアドレスを発生するたびごとにＢＴＡＣをサーチし，もしフェッチアドレスがＢＴＡＣに存在すれば，当該フェッチアドレスに関連するターゲットアドレスにおける命令をフェッチすることが読み取れる。
　また，上記Ｃの段落【００１２】の「命令キャッシュ１４はプログラムされた命令のこのシーケンスをシーケンサ１８に提供する。」との記載，上記Ｈで引用した図１の「シーケンサユニット１８　ＦＩＧ．３」との記載，及び上記Ｉで引用した図３の「命令キャッシュ１４からの命令」との記載から，図３で示されるシーケンサユニット１８のデコードバッファ５２には，「命令キャッシュ１４からの命令」が入力されていることが読み取れ，上記Ｄの段落【００１９】の「フェッチ段階では，命令キャッシュ１４は前のクロックサイクルにおいて分岐ユニット２０またはシーケンサユニット１８によって識別されたメモリアドレスで始まる１つまたはそれ以上の命令を読み出す。このメモリアドレスはフェッチアドレスと称される。」との記載も併せると，フェッチ段階では，命令キャッシュ１４から命令がフェッチされることが読み取れる。
　してみれば，引用例１には，“シーケンサユニットは，フェッチパイプライン段階で，新しいフェッチアドレスを発生するたびごとにＢＴＡＣをサーチして第１の分岐予測を行い，もしフェッチアドレスがＢＴＡＣに存在すれば，当該フェッチアドレスに関連するターゲットアドレスにおける命令を命令キャッシュからフェッチ”することが記載されていると認められる。
オ　上記Ｄの段落【００２０】の「シーケンサユニット１８はデコードパイプラインステージにおいて第２の分岐予測を行なう。シーケンサユニット１８は１つまたはそれ以上の単純な分岐命令のためのフェッチアドレスを発生することができる。シーケンサユニット１８は分岐ヒストリテーブル（“ＢＨＴ”）に各々の最近遭遇した分岐命令に対する履歴状態（ｈｉｓｔｏｒｙｓｔａｔｅ）を維持する。各々の分岐命令の状態はシーケンサユニット１８が分岐を行なうと予測するかあるいは行なわないと予測するかを決定する。」との記載から，
　シーケンサユニットはデコードパイプラインステージにおいて第２の分岐予測を行なうこと，また，当該分岐予測において，シーケンサユニットは，分岐ヒストリテーブル（“ＢＨＴ”）に維持された分岐命令に対する履歴状態に基づいて，分岐を行なうと予測するかあるいは分岐を行なわないと予測するかを決定することが読み取れるから，
　引用例１には，“シーケンサユニットは，デコードパイプラインステージにおいて，分岐ヒストリテーブル（“ＢＨＴ”）に維持された分岐命令に対する履歴状態に基づいて第２の分岐予測を行い，分岐を行うと予測するかあるいは分岐を行わないと予測するかを決定”することが記載されていると認められる。
　
カ　上記Ｆの「各々の制御信号の発生源（ｓｏｕｒｃｅ）はその制御信号をもし該発生源が前のパイプラインステージの間に発生されたフェッチアドレスと異なるフェッチアドレス，すなわち訂正されたフェッチアドレス，を発生すればその制御信号を肯定する。一般に，パイプラインの各ステージは分岐を解明するかあるいは前の段階（単数または複数）よりも統計的により正確な分岐方向の予測を行なう。したがって，パイプラインのより後の段階は訂正についてより前の段階よりも優先度を有する。・・・各々の引き続くフェッチアドレス訂正はパイプラインにおける対応する分岐命令に続く全ての命令を無効にする。」との記載から，
　パイプラインの各ステージにおける分岐予測は，前の段階より後の段階の方がより正確であるため，パイプラインのより後の段階におけるフェッチアドレスの訂正は，パイプラインにおける対応する分岐命令に続く全ての命令を無効にすることが読み取れるから，
　引用例１には，“パイプラインのより後の段階におけるフェッチアドレスの訂正により，パイプラインにおける対応する分岐命令に続く全ての命令が無効にされ”ることが記載されていると認められる。
キ　上記Ｈで引用した図１の記載から，データプロセッサ１０は，分岐ユニット２０を備えていることが読み取れる。
　また，上記Ｅの段落【００３１】の「分岐ユニット２０は後に説明されるように実行段階においてＢＨＴ５０の各々のエントリを更新する。」との記載，同じく上記Ｅの段落【００３２】の「分岐ユニット２０はＢＨＴ５０における各々のエントリの状態を更新する。分岐ユニット２０はＢＨＴエントリの現在の状態および実行している分岐の方向に関する情報を使用して該実行している分岐命令に対応するＢＨＴエントリの次の状態を計算する。もしシーケンサ１８が分岐命令を誤って予測すれば，分岐ユニット２０はＢＨＴ５０の対応するエントリを１つの強い状態から同じ弱い状態へあるいは１つの弱い状態から反対の弱い状態へと更新する。逆に，シーケンサユニット１８が分岐命令を正しく予測すれば，分岐ユニット２０はＢＨＴ５０における対応するエントリを１つの弱い状態から同じ強い状態へとまたは１つの強い状態から同じ強い状態へと更新することになる。」との記載，及び上記Ｇの「分岐ユニット２０は次にそれが実行している分岐命令が条件分岐命令であるかを判定する，ステップ７８。・・・分岐ユニット２０が実行している分岐命令が条件分岐命令であれば，分岐ユニット２０はＢＨＴ５０のための新しい分岐状態を計算する，ステップ８０。分岐ユニット２０はまたステップ８０においてこの新しい分岐状態をＢＨＴ５０に書き込む。」との記載から，
　分岐ユニットは，実行段階においてＢＨＴの各々のエントリを更新すること，また，分岐ユニットは，ＢＨＴにおける各々のエントリの状態を，ＢＨＴエントリの現在の状態および実行している分岐の方向に関する情報を使用して更新すること，更には，もしシーケンサ１８が分岐命令を誤って予測すれば，分岐ユニット２０はＢＨＴ５０の対応するエントリを１つの強い状態から同じ弱い状態へあるいは１つの弱い状態から反対の弱い状態へと更新し，逆に，シーケンサユニット１８が分岐命令を正しく予測すれば，分岐ユニット２０はＢＨＴ５０における対応するエントリを１つの弱い状態から同じ強い状態へとまたは１つの強い状態から同じ強い状態へと更新することが読み取れるから，
　引用例１には，“データプロセッサは，実行段階において，ＢＨＴにおける各々のエントリの状態を，ＢＨＴエントリの現在の状態および実行している分岐の方向に関する情報を使用して，もしシーケンサが分岐命令を誤って予測すれば，ＢＨＴの対応するエントリを１つの強い状態から同じ弱い状態へあるいは１つの弱い状態から反対の弱い状態へと更新し，逆に，シーケンサユニットが分岐命令を正しく予測すれば，ＢＨＴにおける対応するエントリを１つの弱い状態から同じ強い状態へとまたは１つの強い状態から同じ強い状態へと更新する分岐ユニットを備え”ることが記載されていると認められる。
ク　上記Ｇの「分岐ユニット２０は次にそれが実行している分岐命令が条件分岐命令であるかを判定する，ステップ７８。・・・分岐ユニット２０が実行している分岐命令が条件分岐命令であれば，分岐ユニット２０はＢＨＴ５０のための新しい分岐状態を計算する，ステップ８０。分岐ユニット２０はまたステップ８０においてこの新しい分岐状態をＢＨＴ５０に書き込む。分岐ユニット２０は前記新しい分岐状態が強い分岐（ｓｔｒｏｎｇ−ｔａｋｅｎ）または弱い分岐（ｗｅａｋ−ｔａｋｅｎ）であるかを判定する，ステップ８２。条件分岐命令はこれら両方の場合において次にデータプロセッサ１０が条件分岐命令を実行する時に分岐を行なうものと予測されることになる。したがって，分岐ユニット２０は該分岐命令のフェッチアドレスおよびそれがステップ６８において計算したターゲットアドレスをＢＴＡＣ４８に加える。強い分岐なし（ｓｔｒｏｎｇ−ｎｏｔ−ｔａｋｅｎ）または弱い分岐なし（ｗｅａｋ−ｎｏｔ−ｔａｋｅｎ）に対応する分岐状態を有する条件分岐命令はデータプロセッサ１０が次に該条件分岐命令を実行する時に分岐を行なわないものと予測されることになる。したがって，分岐ユニット２０は該分岐命令のフェッチアドレスおよびそれがステップ６８において計算したターゲットアドレスをＢＴＡＣ４８から削除する。」との記載から，
　分岐ユニットは，ＢＨＴに書き込まれた新しい分岐状態が，強い分岐または弱い分岐である場合には，次にデータプロセッサが当該分岐命令を実行する時に分岐を行なうものと予測して，当該分岐命令のフェッチアドレスおよびターゲットアドレスをＢＴＡＣに加える一方，強い分岐なしまたは弱い分岐なしである場合には，データプロセッサが次に当該条件分岐命令を実行する時に分岐を行なわないものと予測して，当該分岐命令のフェッチアドレスおよびターゲットアドレスをＢＴＡＣから削除することが読み取れるから，
　上記ウでの検討も踏まえると，
　引用例１には，“分岐ユニットは，ＢＨＴに書き込まれた新しい分岐状態が，強い分岐ありまたは弱い分岐ありである場合には，次にデータプロセッサが当該分岐命令を実行する時に分岐を行うものと予測して，当該分岐命令のフェッチアドレスおよびターゲットアドレスをＢＴＡＣに加える一方，強い分岐なしまたは弱い分岐なしである場合には，データプロセッサが次に当該条件分岐命令を実行する時に分岐を行わないものと予測して，当該分岐命令のフェッチアドレスおよびターゲットアドレスをＢＴＡＣから削除する”ことが記載されているものと認められる。
　
　上記ア〜クの検討から，引用例１には，次のとおりの発明（以下，「引用発明」という。）が記載されていると認められる。
　
「分岐予測能力を備えたデータプロセッサであって，
　前記データプロセッサは，エントリとして分岐命令のアドレスとターゲットアドレスの対を記憶した分岐ターゲットアドレスキャッシュ（ＢＴＡＣ）を備え，
　前記データプロセッサは，最近遭遇した分岐命令に対する２ビットの分岐履歴状態，すなわち，強い分岐なし，弱い分岐なし，弱い分岐ありおよび強い分岐ありの４状態を維持する分岐ヒストリテーブル（“ＢＨＴ”）を備えたシーケンサユニットを備え，
　前記シーケンサユニットは，フェッチパイプライン段階で，新しいフェッチアドレスを発生するたびごとにＢＴＡＣをサーチして第１の分岐予測を行い，もしフェッチアドレスがＢＴＡＣに存在すれば，当該フェッチアドレスに関連するターゲットアドレスにおける命令を命令キャッシュからフェッチし，
　また，前記シーケンサユニットは，デコードパイプラインステージにおいて，分岐ヒストリテーブル（“ＢＨＴ”）に維持された分岐命令に対する履歴状態に基づいて第２の分岐予測を行い，分岐を行うと予測するかあるいは分岐を行わないと予測するかを決定し，
　ここで，パイプラインのより後の段階におけるフェッチアドレスの訂正により，パイプラインにおける対応する分岐命令に続く全ての命令が無効にされ，
　前記データプロセッサは，実行段階において，ＢＨＴにおける各々のエントリの状態を，ＢＨＴエントリの現在の状態および実行している分岐の方向に関する情報を使用して，もしシーケンサが分岐命令を誤って予測すれば，ＢＨＴの対応するエントリを１つの強い状態から同じ弱い状態へあるいは１つの弱い状態から反対の弱い状態へと更新し，逆に，シーケンサユニットが分岐命令を正しく予測すれば，ＢＨＴにおける対応するエントリを１つの弱い状態から同じ強い状態へとまたは１つの強い状態から同じ強い状態へと更新する分岐ユニットを備え，
　前記分岐ユニットは，ＢＨＴに書き込まれた新しい分岐状態が，強い分岐ありまたは弱い分岐ありである場合には，次にデータプロセッサが当該分岐命令を実行する時に分岐を行うものと予測して，当該分岐命令のフェッチアドレスおよびターゲットアドレスをＢＴＡＣに加える一方，強い分岐なしまたは弱い分岐なしである場合には，データプロセッサが次に当該条件分岐命令を実行する時に分岐を行わないものと予測して，当該分岐命令のフェッチアドレスおよびターゲットアドレスをＢＴＡＣから削除する，
　データプロセッサ。」
（２）引用例２
　原査定の拒絶理由で引用された，本願の優先日前に頒布された刊行物である，国際公開第２００５／１０３８８６号（２００５年１１月３日公開。以下，「引用例２」という。）には，図面とともに，以下の事項が記載されている。（下線は当審において付したものである。）
Ｊ　「技術分野
[0001]　
本発明は，最近の分岐命令の分岐結果を複数，格納する分岐ヒストリレジスタ，及びインデックス毎に分岐命令が分岐すると予測する確度を示す予測情報を格納した分岐ヒストリテーブルを用いて分岐予測を行う技術に関する。
背景技術 
[0002]　パイプライン機能を有するプロセサでは，性能を最大限に発揮させるために，分岐命令が分岐する力否かを分岐予測装置により予測して先に処理を進めるようになっている。その予測がはずれた場合，後戻りさせなくてはならない。これは，先に進めた分の処理は無駄になり，後戻りさせるための処理を別に行わなければならないことを意味する。そのようなペナルティが発生することから，予測精度はプロセサの性能に大きく影響する。このため，分岐予測装置では，より高い精度で予測を行えるようにすることが強く望まれている。
[0003]　従来の分岐予測装置としては，例えば特許文献1に記載された2レベル型分岐予測装置がある。その型の分岐予測装置は，比較的に高い予測精度が得られると注目されている。
　図1Aは，2レベル型の従来の分岐予測装置で行われる分岐予測を説明する図である。
[0004]　
分岐ヒストリレジスタ702は，最近の分岐命令における分岐結果を複数，履歴として格納するレジスタである。1分岐命令の分岐結果は1ビットの値で表現される。例えば分岐不成立は「0」，分岐成立は「1」で表現される。その分岐結果は，1ビットずつシフトしながらレジスタ702に格納する。それにより，レジスタ702には，最近のそのビット数分の分岐結果が格納されるようになっている。例えばビット数が4ビットであり，現在の内容が「1001」である状態で分岐成立の分岐命令を実行した場合には，その内容は「0011」に更新される。
[0005]　排他的論理和（XOR)演算回路703は，分岐ヒストリテーブル704に格納された内容と分岐命令アドレス値701との排他的論理和を算出する。その排他的論理和は，分岐ヒストリテーブル704のインデックスとして使われる。
[0006]　
分岐ヒストリテーブル704には，インデックス毎に，分岐命令による分岐が成立する確度を示す予測情報である状態が格納されている。その状態 (予測情報）は2ビットで表現され，その2ビットで表現される値は大きくなるほど，分岐が成立する確度が高いことを示している。それにより，その値が「11」或いは「10」のときは分岐命令による分岐が成立すると予測し，その値が「01」或いは「00」のときは分岐が成立しないと予測する。
[0007]
図1Bは，分岐ヒストリテーブル704に格納した状態の更新方法を説明する図である。
　その状態としての値は，実際の分岐結果に応じて更新するようになっている。その更新は，図1Bに示すように，分岐が成立した場合には「11」を上限に値をインクリメントし，分岐が成立しなかった場合には「00」を下限に値をデクリメントすることで行っている。そのような更新を行うことにより，実行するプログラムに応じて分岐ヒストリテーブル704を最適化し，予測精度を常に高く維持させるようにしている。
Ｋ　「［図１Ａ］
」
Ｌ　「［図１Ｂ］
」
（３）参考文献１
　本願の優先日前に頒布された刊行物である，特表２００５−５３８４３９号公報（２００５年１２月１５日公表。以下，「参考文献１」という。）には，図面とともに，以下の事項が記載されている。（下線は当審において付したものである。）
Ｍ　「【００５０】
　（好ましい実施例の説明）
　図１は，本発明の好ましい実施例の同期技法が使用されるデータ処理システムを示す。図１に示されるように，プロセッサーコア４０は，プロセッサーコア４０によって要求されるインストラクションのアクセスされるインストラクションキャッシュまたは他のメモリー装置１０に結合されている。
プロセッサーコア４０内には，プリフェッチ（先取り）ユニット２０が提供されていて，パイプライン化プロセッサー３０によって要求されると，プリフェッチユニットの判断するインストラクションの要求が経路５０を通って発行される。そして，インストラクションが検索されるインストラクションメモリー１０が，インストラクションを出力して，経路６０を通してプリフェッチユニット２０に戻し，そしてそこから，それらは経路７０を通してパイプライン化プロセッサー３０へと送られる。
Ｎ　「【図１】
」
（４）参考文献２
　本願の優先日前に頒布された刊行物である，特開平１１−２８８３７２号公報（１９９９年１０月１９日出願公開。以下，「参考文献２」という。）には，図面とともに，以下の事項が記載されている。（下線は当審において付したものである。）
Ｏ　「【００２９】
命令キャッシュ１５は命令プリフェッチバッファ１９へ接続しており，それは，命令フェッチ／デコードユニット１８によってフェッチされる前にマイクロプロセサ命令を格納するために設けられている。命令は，命令ストリームから「プリフェッチ」されることによって該バッファ内にロードされる。命令がユニット１８によってフェッチされると，新たな命令が該バッファ内にロードされる。このことは，実行ユニットが，常に，命令を連続して供給し且つパイプライン内において「バブル」が発生することを防止することを確保している。
Ｐ　「【図１】
」
４．対比
　本願発明と，引用発明とを比較する。
　
ア　引用発明の「分岐ターゲットアドレスキャッシュ（ＢＴＡＣ）」が本願発明の「分岐ターゲットアドレスキャッシュ（ＢＴＡＣ）」に相当し，引用発明のＢＴＡＣは，「エントリ」として「分岐命令のアドレスとターゲットアドレスの対を記憶」していることから，当該「エントリ」は，“分岐命令に関連付けられた”ものであるといえる。また，引用発明の「エントリ」が，ＢＴＡＣに“格納するように構成された”ものであることは明らかである。
　してみれば，引用発明の「エントリとして分岐命令のアドレスとターゲットアドレスの対を記憶した分岐ターゲットアドレスキャッシュ（ＢＴＡＣ）」は，本願発明の「分岐命令に関連付けられた分岐ターゲットアドレスキャッシュ（ＢＴＡＣ）エントリを格納するように構成されたＢＴＡＣ」に相当する。
イ　引用発明の「分岐ヒストリテーブル（“ＢＨＴ”）」（前者）は，「最近遭遇した分岐命令に対する２ビットの分岐履歴状態，すなわち，強い分岐なし，弱い分岐なし，弱い分岐ありおよび強い分岐ありの４状態を維持する」ものである一方，本願発明の「予測方向カウンタ」（後者）も，本願明細書の段落【０００７】の記載によれば，“１１−選択されると強く予測された”，“１０−選択されると弱く予測された”，“０１−選択されないと弱く予測された”，“００−選択されないと強く予測された”という４つの状態のうちのいずれか１つの状態を保持しているものであるから，前者と後者とは，２ビットで表現される４状態を保持する点で一致する。
　また，引用発明の「分岐ヒストリテーブル（“ＢＨＴ”）」は，「もしシーケンサが分岐命令を誤って予測すれば，ＢＨＴの対応するエントリを１つの強い状態から同じ弱い状態へあるいは１つの弱い状態から反対の弱い状態へと更新し，逆に，シーケンサユニットが分岐命令を正しく予測すれば，ＢＨＴにおける対応するエントリを１つの弱い状態から同じ強い状態へとまたは１つの強い状態から同じ強い状態へと更新する」ように動作するものであるから，いわゆる“飽和カウンタ”として動作するものである。
　してみれば，引用発明の「分岐ヒストリテーブル（“ＢＨＴ”）」が本願発明の「予測方向カウンタ」に相当する。
　そして，引用発明の「分岐ヒストリテーブル（“ＢＨＴ”）」は，最近遭遇した“分岐命令”に対する２ビットの分岐履歴状態を維持するものであるから，“分岐命令”に“関連付けられる”ものである。
　よって，引用発明と本願発明とは，「予測方向カウンタ，ここで，前記予測方向カウンタは，分岐命令に関連付けられる」を備える点で一致する。
ウ　本願明細書の段落【００３７】の「ブロック６１０で，条件付分岐命令の第１の方向が暗黙に予測される。例えば，もしＢＴＡＣ内での条件付分岐命令へのヒットがあれば，ＢＴＡＣ内の対応する分岐ターゲットアドレスがプリフェッチされる。従って，分岐方向は暗黙に「選択される」と予測される。」との記載からすると，本願の“第１の方向”を予測することは，ＢＴＡＣ内に条件分岐命令へのヒットがあるか否かを判断することであると認められるところ，引用発明も，「ＢＴＡＣをサーチして第１の分岐予測を行い」，「フェッチアドレスがＢＴＡＣに存在す」るか否かを判断することによって，分岐するか否か“予測”しているものであるから，引用発明の第１の分岐予測において予測される“方向”が本願発明の「分岐命令の第１の方向」に相当する。
　そうすると，引用発明の，「新しいフェッチアドレスを発生するたびごとにＢＴＡＣをサーチして第１の分岐予測を行」うことが，本願発明の「ＢＴＡＣエントリに基づいて分岐命令の第１の方向を予測」することに相当する。
　また，引用発明では，「もしフェッチアドレスがＢＴＡＣに存在すれば」，すなわち，“分岐する方向であると予測されれば”，その予測結果を用いて「当該フェッチアドレスに関連するターゲットアドレスにおける命令を命令キャッシュからフェッチし」ているから，“分岐する方向（分岐命令の第１の方向）”を“用い”て，分岐命令に後続する“後の命令”を“フェッチ”しているということができる。
　また，引用発明の「フェッチ」は，分岐予測の結果を用いていることから，“推測的にフェッチ”しているものである。
　してみれば，引用発明と本願発明とは，後記する点で相違するものの，「ＢＴＡＣエントリに基づいて分岐命令の第１の方向を予測し，ここで，前記第１の方向は，後の命令を推測的にフェッチするために用いられ」る点で共通する。
エ　上記イで検討したように，引用発明の「分岐ヒストリテーブル（“ＢＨＴ”）」が本願発明の「予測方向カウンタ」に相当し，引用発明において，「シーケンサユニット」は，「デコードパイプラインステージにおいて，分岐ヒストリテーブル（“ＢＨＴ”）に維持された分岐命令に対する履歴状態に基づいて第２の分岐予測を行い，分岐を行うと予測するかあるいは分岐を行わないと予測するかを決定し」ているところ，ここで予測される「分岐を行う」あるいは「分岐を行わない」という“方向”は，上記ウで検討した「第１の方向」に対する「第２の方向」といえるから，
　引用発明と本願発明とは，「予測方向カウンタに基づいて分岐命令の第２の方向を予測」する点で一致する。
　ここで，仮に，引用発明のフェッチパイプライン段階における「第１の分岐予測」で，「フェッチアドレスがＢＴＡＣに存在」し，“分岐する”という「第１の方向」が予測された後で，デコードパイプラインステージにおける「第２の分岐予測」で，“分岐を行わない”という「第２の方向」が予測されたとすると，「第１の方向と矛盾する第２の方向」が予測されたことになり，これは，フェッチパイプライン段階より後のデコードパイプラインステージにおいて“フェッチアドレスの訂正”を行うものといえるところ，この場合，引用発明では，「パイプラインのより後の段階におけるフェッチアドレスの訂正により」，「パイプラインにおける対応する分岐命令に続く全ての命令が無効にされ」るものである。
　そして，引用発明の「分岐命令に続く全ての命令」は，誤った予測によってフェッチされ，その後無効にされる命令である点で，本願発明の「後の命令」に相当し，また，引用発明の「無効にされ」ることが本願発明の「フラッシュされ」ることに相当するから，引用発明と本願発明とは，「第１の方向と矛盾する第２の方向に応答して，後の命令は，フラッシュされ」る点で共通する。
　してみれば，引用発明と本願発明とは，後記する点で相違するものの，「予測方向カウンタに基づいて分岐命令の第２の方向を予測し，ここで，第１の方向と矛盾する前記第２の方向に応答して，後の命令は，フラッシュされ」る点で共通する。
オ　引用発明の「データプロセッサ」は，「実行段階において，ＢＨＴにおける各々のエントリの状態を，ＢＨＴエントリの現在の状態および実行している分岐の方向に関する情報を使用して」「更新する」「分岐ユニットを備え」るところ，上記イで検討したとおり，引用発明の「分岐ヒストリテーブル（“ＢＨＴ”）」が本願発明の「予測方向カウンタ」に相当するから，引用発明の「ＢＨＴにおける各々のエントリの状態」が本願発明の「予測方向カウンタの値」に相当し，引用発明における，「ＢＨＴにおける各々のエントリの状態」を「更新」することが，本願発明における「予測方向カウンタの値」を「修正」することに相当し，更に，引用発明の“更新された”「ＢＨＴにおける各々のエントリの状態」が本願発明の「予測方向カウンタの修正された値」に相当する。
　また，引用発明の「実行している分岐の方向に関する情報」は，「実行段階」において決定された実際の分岐方向の情報であり，本願発明の「分岐命令の実際の結果」に相当するものであるから，引用発明の「実行している分岐の方向に関する情報を使用して」「更新する」ことが，本願発明の「分岐命令の実際の結果に基づいて」「修正」することに相当する。
　してみれば，引用発明と本願発明とは，「予測方向カウンタの値を修正し，ここで，前記予測方向カウンタの前記修正された値は，分岐命令の実際の結果に基づいて」いる点で一致する。
カ　上記オで検討したように，引用発明の“更新された”「ＢＨＴにおける各々のエントリの状態」が本願発明の「予測方向カウンタの修正された値」に相当するから，当該更新の結果である引用発明の「ＢＨＴに書き込まれた新しい分岐状態」が本願発明の「予測方向カウンタの修正された値」に相当する。
　そして，引用発明の「分岐ユニット」は，「ＢＨＴに書き込まれた新しい分岐状態」が，「強い分岐ありまたは弱い分岐ありである場合には，次にデータプロセッサが当該分岐命令を実行する時に分岐を行うものと予測して，当該分岐命令のフェッチアドレスおよびターゲットアドレスをＢＴＡＣに加え」，また，「ＢＨＴに書き込まれた新しい分岐状態」が，「強い分岐なしまたは弱い分岐なしである場合には，データプロセッサが次に当該条件分岐命令を実行する時に分岐を行わないものと予測して，当該分岐命令のフェッチアドレスおよびターゲットアドレスをＢＴＡＣから削除」しているところ，引用発明の「分岐命令のフェッチアドレスおよびターゲットアドレスをＢＴＡＣに加える」ことや，「分岐命令のフェッチアドレスおよびターゲットアドレスをＢＴＡＣから削除する」ことは，「ＢＴＡＣ」の「エントリ」を「管理する」ことに他ならず，また，この“管理”の内容は，「ＢＨＴに書き込まれた新しい分岐状態」に応じて変更されていることから，「ＢＨＴに書き込まれた新しい分岐状態」に“基づいて”実行されているといえる。
　また，引用発明において，分岐ユニットが，上記“管理”を行うために，何らかの「管理信号」を「生成」していることは自明のことである。
　してみれば，引用発明と本願発明とは，「予測方向カウンタの修正された値に基づいて，ＢＴＡＣエントリを管理するために管理信号を生成する」点で一致する。
キ　引用発明において，“第１の分岐予測を実行する処理”及び“第２の分岐予測を実行する処理”の主体は，「シーケンサユニット」であり，また，“ＢＨＴにおける各々のエントリの状態を更新する処理”，及び，“分岐命令のフェッチアドレスおよびターゲットアドレスを，ＢＴＡＣに加え，又はＢＴＡＣから削除する処理”の主体は，「分岐ユニット」である。
　そして，引用発明の“第１の分岐予測を実行する処理”，“第２の分岐予測を実行する処理”，“ＢＨＴにおける各々のエントリの状態を更新する処理”，及び，“分岐命令のフェッチアドレスおよびターゲットアドレスを，ＢＴＡＣに加え，又はＢＴＡＣから削除する処理”（以下，「引用発明の各処理」という。）は，上記ウ〜カで検討したとおり，それぞれ，本願発明の“前記ＢＴＡＣエントリに基づいて前記分岐命令の第１の方向を予測する処理”，“前記予測方向カウンタに基づいて前記分岐命令の第２の方向を予測する処理”，“前記予測方向カウンタの値を修正する処理”，及び，“前記ＢＴＡＣエントリを管理するために管理信号を生成する処理”（以下，「本願発明の各処理」という。）に相当乃至対応しているから，引用発明の各処理の主体である「シーケンサユニット及び分岐ユニット」が本願発明の各処理の主体である「論理回路」に対応する。
　よって，上記ウ〜カでの検討も踏まえると，引用発明と本願発明とは，
「前記ＢＴＡＣエントリに基づいて前記分岐命令の第１の方向を予測し，ここで，前記第１の方向は，後の命令を推測的にフェッチするために用いられ，
　前記予測方向カウンタに基づいて前記分岐命令の第２の方向を予測し，ここで，前記第１の方向と矛盾する前記第２の方向に応答して，前記後の命令は，フラッシュされ，
　前記予測方向カウンタの値を修正し，ここで，前記予測方向カウンタの前記修正された値は，前記分岐命令の実際の結果に基づいており，
　前記予測方向カウンタの前記修正された値に基づいて，前記ＢＴＡＣエントリを管理するために管理信号を生成する
　ように構成された論理回路」
を備える点で共通する。
ク　引用発明の「データプロセッサ」は，「分岐ターゲットアドレスキャッシュ（ＢＴＡＣ）」，「分岐ヒストリテーブル（“ＢＨＴ”）を備えたシーケンサユニット」，及び「分岐ユニット」からなる“システム”を備えており，これらの“システム”によって，フェッチパイプライン段階でＢＴＡＣを用いた第１の分岐予測を行い，続くデコードパイプラインステージで分岐ヒストリテーブル（“ＢＨＴ”）を用いた第２の分岐予測を行っていることから，“２段階の分岐予測”，すなわち，“マルチプルステージ分岐予測”を実行しているということができる。
　してみれば，引用発明の「データプロセッサ」が本願発明の「マルチプルステージ分岐予測システム」に対応する。
　以上の検討から，本願発明と引用発明とは，
　
「マルチプルステージ分岐予測システムであって，
　分岐命令に関連付けられた分岐ターゲットアドレスキャッシュ（ＢＴＡＣ）エントリを格納するように構成されたＢＴＡＣと，
　　予測方向カウンタと，ここで，前記予測方向カウンタは，前記分岐命令に関連付けられる，
　　　前記ＢＴＡＣエントリに基づいて前記分岐命令の第１の方向を予測し，ここで，前記第１の方向は，後の命令を推測的にフェッチするために用いられ，
　　　前記予測方向カウンタに基づいて前記分岐命令の第２の方向を予測し，ここで，前記第１の方向と矛盾する前記第２の方向に応答して，前記後の命令は，フラッシュされ，
　　　前記予測方向カウンタの値を修正し，ここで，前記予測方向カウンタの前記修正された値は，前記分岐命令の実際の結果に基づいており，
　　　前記予測方向カウンタの前記修正された値に基づいて，前記ＢＴＡＣエントリを管理するために管理信号を生成する
　　ように構成された論理回路と　
　を備えるシステム。」
　
の点で一致し，以下の点で相違する。  
　
［相違点１］
　本願発明では，システムが，「分岐予測子回路」を備え，前記「分岐予測子回路」が，予測方向カウンタ，履歴レジスタ回路，及び論理回路を備える構成となっているのに対して，引用発明は，予測方向カウンタ及び論理回路を備えるものの，これらを併せて備えた「分岐予測子回路」という構成を有するものではない点。
［相違点２］
　本願発明のシステムでは，分岐予測子回路が「履歴レジスタ回路」を備え，前記「履歴レジスタ回路」は，「分岐命令の分岐方向履歴を格納する」のに対して，引用発明のデータプロセッサは，「履歴レジスタ回路」を備えていない点。
［相違点３］
　本願発明では，後の命令を「命令プリフェッチユニットに」「プリフェッチ」し，また，後の命令を，「前記命令プリフェッチユニットから」フラッシュするのに対して，引用発明では，命令プリフェッチユニットにプリフェッチする構成を備えていない点。
［相違点４］
　本願発明では，予測方向カウンタの修正された値は，「履歴レジスタ回路に格納されている情報に基づいていない」と特定されているのに対して，引用発明は，そのような特定がなされていない点。
５．判断  
　上記各相違点について，検討する。
 　 
［相違点１］及び［相違点２］について
　分岐予測を行うプロセッサにおいて，「分岐命令の分岐方向履歴を格納する」分岐ヒストリレジスタ（本願発明における「履歴レジスタ回路」に相当）を分岐ヒストリテーブル（本願発明における「予測方向カウンタ」に相当）と組み合わせて用いることは，例えば上記「３．引用例」の「（２）」で引用した引用例２のＪ及びＫに記載されているように本願の優先日前に当該技術分野における周知技術であったものと認められる。
　ここで，本願発明は，分岐予測子回路が履歴レジスタ回路を備えることを特定しているものの，当該履歴レジスタ回路がシステムにおいてどのように作用するのかについては何ら特定していないことから，本願発明は，システムが単に履歴レジスタ回路を備えることを特定するに留まるものである。
　また，システムを構成する際，当該システムが備える種々の回路をどのようなユニット（まとまり）とするかは，回路相互の関連性等を考慮して当業者が適宜決定すべき設計的事項である。
　してみれば，分岐ヒストリテーブル（予測方向カウンタ）を用いて分岐予測を行う引用発明のシステムに上記周知技術を適用して，分岐ヒストリレジスタ（履歴レジスタ回路）を組み合わせて用いるように構成し，その際，適宜，分岐予測子回路というユニットを設けて，当該分岐予測子回路が，予測方向カウンタ，履歴レジスタ回路，及び論理回路を備えるように構成すること，すなわち，上記相違点１及び相違点２に係る構成とすることは，当業者が容易に想到し得たことである。
［相違点３］について
　引用発明では，「シーケンサユニットが，フェッチパイプライン段階で，・・・命令を命令キャッシュからフェッチし」ているところ，
　パイプライン処理を行うプロセッサにおいて，命令を命令キャッシュからフェッチする際に，命令を，まず，プリフェッチユニット，あるいはプリフェッチバッファにプリフェッチするように構成することは，例えば上記「３．引用例」の「（３）」で引用した参考文献１のＭ，Ｎ，同じく上記「３．引用例」の「（４）」で引用した参考文献２のＯ及びＰに記載されているように本願の優先日前に当該技術分野における周知技術であったものと認められる。
　また，引用発明は，「パイプラインのより後の段階におけるフェッチアドレスの訂正により，パイプラインにおける対応する分岐命令に続く全ての命令が無効にされ」るものであるところ，上記周知技術の命令をプリフェッチユニットプリフェッチする構成を適用した場合に，命令をプリフェッチユニットにプリフェッチした後で，フェッチアドレスが訂正されれば，プリフェッチユニットにプリフェッチした命令が無効なものとなることは明らかである。
　してみれば，命令を命令キャッシュからフェッチするように構成された引用発明において，上記周知技術を採用して，命令を，まず，命令プリフェッチユニットにプリフェッチするように構成するとともに，命令を命令プリフェッチユニットにプリフェッチした後で，フェッチアドレスが訂正された場合に，プリフェッチした命令を，前記命令プリフェッチユニットからフラッシュするように構成すること，すなわち，上記相違点３に係る構成とすることは，当業者が容易に想到し得たことである。
［相違点４］について
　引用発明は，「ＢＨＴにおける各々のエントリの状態を，ＢＨＴエントリの現在の状態および実行している分岐の方向に関する情報を使用して」「更新する」ものであって，ここでのＢＨＴ（予測方向カウンタ）の更新された値は，履歴レジスタ回路に格納されている情報に基づかないものである。
　また，上記「３．引用例」の「（２）」で引用した引用例２のＪ及びＬの記載によれば，分岐ヒストリテーブル（予測方向カウンタ）と分岐ヒストリレジスタ（履歴レジスタ回路）を組み合わせて用いる装置においても，分岐ヒストリテーブル（予測方向カウンタ）は，実際の分岐結果に応じて更新されており，この更新は，分岐ヒストリレジスタ（履歴レジスタ回路）に格納されている情報には基づいていない。
　してみれば，ＢＨＴ（予測方向カウンタ）を用いて分岐予測を行う引用発明のシステムにおいて，履歴レジスタ回路を組み合わせて用いる際に，実際の分岐結果に応じてＢＨＴ（予測方向カウンタ）を更新するようにし，ＢＨＴ（予測方向カウンタ）の修正された値が，履歴レジスタ回路に格納されている情報に基づかないものとすること，すなわち，上記相違点４に係る構成とすることは，当業者が容易に想到し得たことである。
　そして，本願発明の作用効果も，引用発明及び周知技術から当業者が予測できる範囲のものである。
　
　したがって，本願発明は，引用発明及び周知技術に基づいて，当業者が容易に発明をすることができたものである。
　
６．むすび  
　以上のとおり，本願発明は，引用発明及び周知技術に基づいて，当業者が容易に発明をすることができたものであるから，特許法第２９条第２項の規定により特許を受けることができない。
　したがって，本願は他の請求項について検討するまでもなく拒絶されるべきものである。
　よって，結論のとおり審決する。