• ポートフォリオ機能


ポートフォリオを新規に作成して保存
既存のポートフォリオに追加保存

  • この表をプリントする
PDF PDFをダウンロード
審決分類 審判 査定不服 2項進歩性 特許、登録しない。 G06F
審判 査定不服 1項3号刊行物記載 特許、登録しない。 G06F
管理番号 1259391
審判番号 不服2011-3257  
総通号数 152 
発行国 日本国特許庁(JP) 
公報種別 特許審決公報 
発行日 2012-08-31 
種別 拒絶査定不服の審決 
審判請求日 2011-02-14 
確定日 2012-07-05 
事件の表示 特願2006-507365「分岐ターゲットに基づいて分岐予測をするための方法および装置」拒絶査定不服審判事件〔平成16年10月 7日国際公開、WO2004/086219、平成18年 9月14日国内公表、特表2006-520964〕について、次のとおり審決する。 
結論 本件審判の請求は、成り立たない。 
理由 第1.手続の経緯
本願は、
2004年3月19日(パリ条約による優先権主張外国庁受理2003年3月21日、アメリカ合衆国)を国際出願日とする出願であって、
平成17年9月21日付けで国際出願日における明細書、請求の範囲、図面(図面の中の説明に限る。)及び要約の翻訳文が提出され、
平成19年3月16日付けで手続補正がなされ、
平成21年6月29日付けで最初の拒絶理由通知(同年7月7日発送)がなされ、
平成22年1月7日付けで意見書が提出されるとともに、手続補正がなされ、
同年9月30日付けで拒絶査定(同年10月12日発送)がなされ、
平成23年2月14日付けで審判請求がなされ、
同年4月7日付けで審判請求書における請求の理由を補充をする手続補正書が提出されたものである。
なお、平成24年1月18日付けで上申書が提出されている。

第2.本願発明の認定
本願の請求項1に係る発明(以下、「本願発明」という。)は、平成22年1月7日付けの手続補正により補正された、本願の特許請求の範囲の請求項1に記載された次のものと認められる。

「デジタルプロセッサにおける分岐予測のための方法であって:
タグアレイとデータアレイとを有し、タグアレイにおける各エントリー(entry)はデータアレイにおける対応するエントリーを印付け(index)するものである、分岐ターゲットバッファ(BTB:Branch Target Buffer)を用意し;
タグアレイにおける一つの選択したエントリーには現在の分岐命令の分岐タ-ゲットを表す情報を格納し;
データアレイにおける対応するエントリーには次の分岐命令の分岐ターゲットを表す情報を格納し;
入力命令アドレスが、タグアレイにおけるエントリーと一致したことに応答して次の分岐命令の分岐ターゲットを表す情報を提供することを含む分岐予測のための方法。」

第3.先行技術文献に記載されている技術的事項と先行技術文献に記載されている発明の認定

1.引用例1に記載されている技術的事項
原審が拒絶理由通知において引用したTse-Yu Yeh, Yale N. Patt, "A Comprehensive Instruction Fetch Mechanism for a Processor Supporting Speculative Execution", Proceedings of the 25th Annual International Symposium on Microarchitecture (MICRO 25), U.S.A., IEEE, 4 December 1992, Pages:129-139(以下、「引用例1」という。)には、図面とともに以下の技術的事項が記載されている。なお、仮訳は当審が訳出したものである。

(1の1)
「The importance of instruction fetch becomes vital as deeply-pipelined superscalar machines become prevalent due to the correspondingly larger loss of work caused by both branch mispredictions and the inordinate latency to fetch a new instruction stream. Higher prediction accuracy means less speculative work needs to be thrown away, resulting in increased machine performance. Decreased latency means the newly directed instruction stream can begin execution faster.
In this paper we propose a comprehensive instruction fetch mechanism for a superscalar processor supporting speculative execution.」
(第129頁左欄下から18行目?同頁同欄下から7行目。
仮訳:分岐の誤った予測及び新しい命令ストリームのフェッチに伴う過度のレイテンシの両方により生じる、仕事の相当大きな損失のため、深くパイプライン化されたスーパスケーラマシンが一般的に用いられるようになるにつれ、命令フェッチの重要性は極めて重大なものとなっている。予測の正確性が高いことは、投機的な仕事を破棄することが少なくなることを意味し、マシンのパフォーマンスが増す結果となる。レイテンシが減ることは、新たに指示された命令ストリームの実行が早くなることを意味する。
この論文で我々は、投機実行をサポートするスーパスケーラプロセッサのための包括的な命令フェッチメカニズムを提案する。)

(1の2)
「Thus, an effective comprehensive instruction fetch mechanism must deal with rapid prediction of branch target addresses.」
(第130頁左欄第3行目?同頁同欄第5行目。
仮訳:それゆえ、効果的である包括的な命令フェッチメカニズムは分岐ターゲットアドレスの迅速な予測を取り扱うべきである。)

(1の3)
「The branch target buffer reduces the delay in providing instruction fetch addresses. Each branch target buffer entry stores both the branch target address and the starting address of the fall-through basic block. A basic block is a sequence of consecutive instructions having exactly one entry point and exactly one exit point.」
(第130頁左欄第21行目?同頁同欄第27行目。
仮訳:分岐ターゲットバッファは、命令フェッチアドレスを提供する際の遅れを削減する。分岐ターゲットバッファのエントリのそれぞれは、分岐ターゲットアドレスと直下の基本ブロックの先頭アドレスの両方を保持する。基本ブロックは、連続する命令のシーケンスであり、入り口となるポイントを正確に1つ持ち、出口となるポイントを正確に1つ持つ。)

(1の4)
「Figure 1 shows the comprehensive design of the instruction fetch mechanism. The branch history table(BHT) used in the Two-Level Adaptive branch predictor is merged with the branch target buffer(BTB). Conditional branches, unconditional branches, and return instructions all access the branch target buffer by using the starting addresses of the basic blocks in which they occur. Each entry of the merged branch target buffer (shown in Figure 1) contains a valid bit, address tag, target address, fall-through basic block address, branch path prediction bit, branch history bits, and branch-type bits.
The address used to access the I-cache is also used to access the merged branch target buffer. These accesses are done at the same time, allowing the instruction fetch mechanism to fetch (up to) one basic block each cycle. Since there is at most one branch instruction in each basic block, the accessing address is used to index into the branch target buffer.
When an accessing address hits in the branch target buffer, the information stored in the entry is known right after the access. The branch-type bits can be used to choose the prediction source before the branch is decoded. If the branch is conditional, the next instruction fetch address is either the fall-through address or the target address depending on the branch path prediction bit. If the branch is a return instruction, the next address is obtained from the top of the return address stack. If the branch is unconditional, the next address is the target address.
When an accessing address misses in the branch target buffer, we continue fetching instructions sequentially. If a branch instruction is discovered after being decoded an entry in the branch target buffer is allocated for that branch, indexed by the accessing address. If the branch is conditional, a default static branch predictor is used to predict the branch path by using static information.」
(第130頁右欄第33行目?第131頁左欄下から11行目。
仮訳:図1は、命令フェッチメカニズムの包括的デザインを示す。2レベルアダプティブ分岐予測機構に用いられる分岐履歴テーブル(BHT)は、分岐ターゲットバッファ(BTB)に統合される。条件分岐命令、無条件分岐命令、リターン命令はすべて、分岐ターゲットバッファにアクセスする際に、それらが生じる基本ブロックの先頭アドレスを用いる。(図1に示された)統合された分岐ターゲットバッファのエントリのそれぞれは、有効ビット、アドレスタグ、ターゲットアドレス、直下基本ブロックアドレス、分岐パス予測ビット、分岐履歴ビット、分岐タイプビットを有する。
命令キャッシュをアクセスするために用いられるアドレスは統合された分岐ターゲットバッファをアクセスするためにも用いられる。これらのアクセスは同時に行われ、このことにより、命令フェッチメカニズムは各サイクル毎に一つの基本ブロック分(に至るまで)フェッチすることができるようになる。それぞれの基本ブロックには高々1つの分岐命令があるだけであるため、そのアクセスアドレスを分岐ターゲットバッファへの索引付けに用いる。
アクセスアドレスが分岐ターゲットバッファでヒットする場合は、そのエントリに格納されている情報は、アクセスの後に正当であると判明することになる。分岐命令がデコードされる前に予測するためのソースを選択するために、分岐タイプビットは用いられる。分岐命令が条件分岐命令である場合、次の命令フェッチアドレスは、直下のアドレスか、ターゲットアドレスのいずれかであり、そのいずれであるかは、分岐パス予測ビットに基づく。分岐命令がリターン命令である場合、次のアドレスは、リターンアドレススタックのトップから得られる。分岐命令が無条件分岐命令である場合、次のアドレスはターゲットアドレスである。
アクセスアドレスが分岐ターゲットバッファでミスする場合は、我々は、命令フェッチをシーケンシャルに続ける。デコード後に分岐命令が発見された場合、その分岐命令のために、分岐ターゲットバッファのひとつのエントリが割り当てられる。そのエントリは、そのアクセスアドレスで索引付けされる。分岐命令が条件分岐命令である場合、静的情報を用いることにより、デフォルトの静的分岐予測機構により、分岐パスを予測する。)

(1の5)
引用例1の第131頁の左欄の上部にFigure1(図1)が示されている。このFigure1(図1)には、Instruction Fetch Address(命令フェッチアドレス)でIndex(索引付け)されるMerged Branch Target Buffer and Branch History Table(分岐ターゲットバッファと分岐履歴テーブルの統合)の一つのエントリに、Valid Bit(有効ビット)、Address Tag(アドレスタグ)、Target Address(ターゲットアドレス)、Fall-through BB Starting Address(直下基本ブロック先頭アドレス)、Prediction Bit(予測ビット)、Branch Type(分岐タイプ)を格納するフィールドがあることが示されている。また、このFigure1(図1)には、一つのエントリから出力されたTarget Address(ターゲットアドレス)とFall-through BB Starting Address(直下基本ブロック先頭アドレス)のうちの一方を、同じく一つのエントリから出力されたPrediction Bit(予測ビット)に基づいて選択して出力するMUX(マルチプレクサ)が示されている。さらに、このFigure1(図1)には、当該MUX(マルチプレクサ)の出力が、一つのエントリから出力されたBranch Type(分岐タイプ)により制御される別のMUX(マルチプレクサ)とBTB Hit(分岐ターゲットバッファがヒットしたか否かを示す信号)により制御されるさらなる別のMUX(マルチプレクサ)を介して、Next Instruction Fetch Address(次の命令フェッチアドレス)として出力されることが示されている。

上記(1の4)において、「条件分岐命令、無条件分岐命令、リターン命令はすべて、分岐ターゲットバッファにアクセスする際に、それらが生じる基本ブロックの先頭アドレスを用いる。」と記載されているが、ここでいう「それら」が「条件分岐命令、無条件分岐命令、リターン命令」を指し示すことは明らかである。

上記(1の4)において、「命令キャッシュをアクセスするために用いられるアドレスは統合された分岐ターゲットバッファをアクセスするためにも用いられる。これらのアクセスは同時に行われ、このことにより、命令フェッチメカニズムは各サイクル毎に一つの基本ブロック分(に至るまで)フェッチすることができるようになる。」と記載されているが、ここでいう「これらのアクセス」が「命令キャッシュ」へのアクセスと「統合された分岐ターゲットバッファ」へのアクセスであることは明らかである。

上記(1の4)において、「それぞれの基本ブロックには高々1つの分岐命令があるだけであるため、そのアクセスアドレスを分岐ターゲットバッファへの索引付けに用いる。」と記載されている。この記載における「そのアクセスアドレス」という語は、同じく(1の4)における「条件分岐命令、無条件分岐命令、リターン命令はすべて、分岐ターゲットバッファにアクセスする際に、それら(条件分岐命令、無条件分岐命令、リターン命令)が生じる基本ブロックの先頭アドレスを用いる。」、「これらのアクセス(命令キャッシュへのアクセスと統合された分岐ターゲットバッファへのアクセス)は同時に行われ、このことにより、命令フェッチメカニズムは各サイクル毎に一つの基本ブロック分(に至るまで)フェッチすることができるようになる。」という記載を受けてのものなので、「そのアクセスアドレス」が「それら(条件分岐命令、無条件分岐命令、リターン命令)が生じる基本ブロックの先頭アドレス」であることは明らかである。
同様にして、上記(1の4)における「デコード後に分岐命令が発見された場合、その分岐命令のために、分岐ターゲットバッファのひとつのエントリが割り当てられる。そのエントリは、そのアクセスアドレスで索引付けされる。」という記載における「そのアクセスアドレス」も「それら(条件分岐命令、無条件分岐命令、リターン命令)が生じる基本ブロックの先頭アドレス」であることは明らかである。

上記(1の4)において、「アクセスアドレスが分岐ターゲットバッファでヒットする場合は、そのエントリに格納されている情報は、アクセスの後に正当であると判明することになる。」と記載されているが、ここでいう「そのエントリ」とは「ヒット」した「エントリ」を指し示すことは明らかである。

上記(1の3)に「分岐ターゲットバッファのエントリのそれぞれは、分岐ターゲットアドレスと直下の基本ブロックの先頭アドレスの両方を保持する。」と記載されていることを考慮すれば、上記(1の4)における「分岐命令が条件分岐命令である場合、次の命令フェッチアドレスは、直下のアドレスか、ターゲットアドレスのいずれかであり、そのいずれであるかは、分岐パス予測ビットに基づく。」という記載でいう「直下のアドレス」とは「直下の基本ブロックの先頭アドレス」であることは明らかである。

上記(1の4)に「分岐命令がリターン命令である場合、次のアドレスは、リターンアドレススタックのトップから得られる。分岐命令が無条件分岐命令である場合、次のアドレスはターゲットアドレスである。」と記載されているが、ここでいう「次のアドレス」が次の命令フェッチアドレスであることは明らかである。

以上で検討したことを考慮して、引用例1の上記(1の4)の記載に、必要に応じて語句の解釈を追記すれば下記のとおりとなる。

(1の4)’
「図1は、命令フェッチメカニズムの包括的デザインを示す。2レベルアダプティブ分岐予測機構に用いられる分岐履歴テーブル(BHT)は、分岐ターゲットバッファ(BTB)に統合される。条件分岐命令、無条件分岐命令、リターン命令はすべて、分岐ターゲットバッファにアクセスする際に、それら(条件分岐命令、無条件分岐命令、リターン命令)が生じる基本ブロックの先頭アドレスを用いる。(図1に示された)統合された分岐ターゲットバッファのエントリのそれぞれは、有効ビット、アドレスタグ、ターゲットアドレス、直下基本ブロックアドレス、分岐パス予測ビット、分岐履歴ビット、分岐タイプビットを有する。
命令キャッシュをアクセスするために用いられるアドレスは統合された分岐ターゲットバッファをアクセスするためにも用いられる。これらのアクセス(命令キャッシュへのアクセスと統合された分岐ターゲットバッファへのアクセス)は同時に行われ、このことにより、命令フェッチメカニズムは各サイクル毎に一つの基本ブロック分(に至るまで)フェッチすることができるようになる。それぞれの基本ブロックには高々1つの分岐命令があるだけであるため、そのアクセスアドレス(それら(条件分岐命令、無条件分岐命令、リターン命令)が生じる基本ブロックの先頭アドレス)を分岐ターゲットバッファへの索引付けに用いる。
アクセスアドレスが分岐ターゲットバッファでヒットする場合は、そのエントリ(ヒットしたエントリ)に格納されている情報は、アクセスの後に正当であると判明することになる。分岐命令がデコードされる前に予測するためのソースを選択するために、分岐タイプビットは用いられる。分岐命令が条件分岐命令である場合、次の命令フェッチアドレスは、直下の(基本ブロックの先頭)アドレスか、ターゲットアドレスのいずれかであり、そのいずれであるかは、分岐パス予測ビットに基づく。分岐命令がリターン命令である場合、次の(命令フェッチ)アドレスは、リターンアドレススタックのトップから得られる。分岐命令が無条件分岐命令である場合、次の(命令フェッチ)アドレスはターゲットアドレスである。
アクセスアドレスが分岐ターゲットバッファでミスする場合は、我々は、命令フェッチをシーケンシャルに続ける。デコード後に分岐命令が発見された場合、その分岐命令のために、分岐ターゲットバッファのひとつのエントリが割り当てられる。そのエントリは、そのアクセスアドレス(それら(条件分岐命令、無条件分岐命令、リターン命令)が生じる基本ブロックの先頭アドレス)で索引付けされる。分岐命令が条件分岐命令である場合、静的情報を用いることにより、デフォルトの静的分岐予測機構により、分岐パスを予測する。」

2.引用発明の認定
上記(1の1)に「分岐の誤った予測…(中略)…により生じる、仕事の相当大きな損失のため、深くパイプライン化されたスーパスケーラマシンが一般的に用いられるようになるにつれ、命令フェッチの重要性は極めて重大なものとなっている。予測の正確性が高いことは、投機的な仕事を破棄することが少なくなることを意味し、マシンのパフォーマンスが増す結果となる。…(中略)…この論文で我々は、投機実行をサポートするスーパスケーラプロセッサのための包括的な命令フェッチメカニズムを提案する。」と記載され、上記(1の2)に「命令フェッチメカニズムは分岐ターゲットアドレスの迅速な予測を取り扱う」と記載されていることから明らかなように、引用例1は、スーパスケーラプロセッサにおける分岐予測のための方法に関するものである。

上記(1の4)’に「分岐履歴テーブル(BHT)は、分岐ターゲットバッファ(BTB)に統合される。」と記載されていることから明らかなように、引用例1では、分岐履歴テーブルに統合された分岐ターゲットバッファが用意されている。
上記(1の4)’に「統合された分岐ターゲットバッファのエントリのそれぞれは、有効ビット、アドレスタグ、ターゲットアドレス、直下基本ブロックアドレス、分岐パス予測ビット、…(中略)…分岐タイプビットを有する。」と記載され、上記(1の5)に示したように、引用例1のFigure1(図1)には、Merged Branch Target Buffer and Branch History Table(分岐ターゲットバッファと分岐履歴テーブルの統合)の一つのエントリに、Valid Bit(有効ビット)、Address Tag(アドレスタグ)、Target Address(ターゲットアドレス)、Fall-through BB Starting Address(直下基本ブロック先頭アドレス)、Prediction Bit(予測ビット)、Branch Type(分岐タイプ)を格納するフィールドがあることが記載されていることから明らかなように、分岐履歴テーブルに統合された分岐ターゲットバッファは複数のエントリを備えるものであり、各エントリは、アドレスタグを格納するフィールドと、ターゲットアドレス、直下基本ブロック先頭アドレス、及び、分岐パス予測ビットを格納するフィールドとからなるものである。
また、アドレスタグが、対応するエントリの各情報を索引付けするためのものであることは自明のことであるから、引用例1における、アドレスタグを格納するフィールドは、ターゲットアドレス、直下基本ブロック先頭アドレス、及び、分岐パス予測ビットを格納するフィールドを索引付けするためのものであることは自明である。
以上のことから、引用例1においては、アドレスタグを格納するフィールドと、ターゲットアドレス、直下基本ブロック先頭アドレス、及び、分岐パス予測ビットを格納するフィールドとからなるエントリを複数備え、アドレスタグを格納するフィールドは、ターゲットアドレス、直下基本ブロック先頭アドレス、及び、分岐パス予測ビットを格納するフィールドを索引付けするためのものである、分岐履歴テーブルに統合された分岐ターゲットバッファを用意しているものと認められる。

上記(1の4)’に、「条件分岐命令、無条件分岐命令、リターン命令はすべて、分岐ターゲットバッファにアクセスする際に、それら(条件分岐命令、無条件分岐命令、リターン命令)が生じる基本ブロックの先頭アドレスを用いる。」、「命令フェッチメカニズムは各サイクル毎に一つの基本ブロック分(に至るまで)フェッチすることができるようになる。それぞれの基本ブロックには高々1つの分岐命令があるだけであるため、そのアクセスアドレス(それら(条件分岐命令、無条件分岐命令、リターン命令)が生じる基本ブロックの先頭アドレス)を分岐ターゲットバッファへの索引付けに用いる。」、「分岐命令が発見された場合、その分岐命令のために、分岐ターゲットバッファのひとつのエントリが割り当てられる。そのエントリは、そのアクセスアドレス(それら(条件分岐命令、無条件分岐命令、リターン命令)が生じる基本ブロックの先頭アドレス)で索引付けされる。」と記載されていることから、引用例1では、基本ブロックの先頭アドレスを用いて分岐ターゲットバッファへのアクセスを行うものである。そして、上記(1の4)’に「アクセスアドレスが分岐ターゲットバッファでヒットする場合」及び「アクセスアドレスが分岐ターゲットバッファでミスする場合」が示されていることから明らかなように、分岐ターゲットバッファにアクセスする際に用いている基本ブロックの先頭アドレスと、分岐ターゲットバッファのエントリに格納されているアドレスタグとを比較してヒットかミスかを判定している。そのため、引用例1では、分岐ターゲットバッファのエントリ内のアドレスタグを格納するフィールドには基本ブロックの先頭アドレスを格納するものである。
さらに、上記(1の4)’に「分岐命令が発見された場合、その分岐命令のために、分岐ターゲットバッファのひとつのエントリが割り当てられる。そのエントリは、そのアクセスアドレス(それら(条件分岐命令、無条件分岐命令、リターン命令)が生じる基本ブロックの先頭アドレス)で索引付けされる。」と記載されていることから明らかなように、引用例1では、分岐ターゲットバッファのエントリのうち選択したものが、基本ブロックの先頭アドレスに索引付けされる。
以上のことから、引用例1においては、アドレスタグを格納するフィールドのうち選択したものには、基本ブロックの先頭アドレスを格納するものである。

上記(1の4)’に「(図1に示された)統合された分岐ターゲットバッファのエントリのそれぞれは、有効ビット、アドレスタグ、ターゲットアドレス、直下基本ブロックアドレス、分岐パス予測ビット、…(中略)…分岐タイプビットを有する。」と記載され、既に示したように、アドレスタグを格納するフィールドには、基本ブロックの先頭アドレスを格納するものであり、上記(1の4)’に「それぞれの基本ブロックには高々1つの分岐命令があるだけであるため、そのアクセスアドレス(それら(条件分岐命令、無条件分岐命令、リターン命令)が生じる基本ブロックの先頭アドレス)を分岐ターゲットバッファへの索引付けに用いる。」と記載されているから、ターゲットアドレス、直下基本ブロック先頭アドレス、及び、分岐パス予測ビットを格納するフィールドには、アドレスタグに格納された先頭アドレスに係る基本ブロック内の分岐命令のターゲットアドレスと、当該基本ブロックの直下の基本ブロックのアドレスと、当該分岐命令の分岐パス予測ビットを格納することは明らかである。

上記(1の4)’に「アクセスアドレスが分岐ターゲットバッファでヒットする場合は、そのエントリ(ヒットしたエントリ)に格納されている情報は、アクセスの後に正当であると判明することになる。分岐命令がデコードされる前に予測するためのソースを選択するために、分岐タイプビットは用いられる。分岐命令が条件分岐命令である場合、次の命令フェッチアドレスは、直下の(基本ブロックの先頭)アドレスか、ターゲットアドレスのいずれかであり、そのいずれであるかは、分岐パス予測ビットに基づく。」と記載され、上記(1の5)に示したように、引用例1のFigure1(図1)には、Merged Branch Target Buffer and Branch History Table(分岐ターゲットバッファと分岐履歴テーブルの統合)の一つのエントリから出力されたTarget Address(ターゲットアドレス)とFall-through BB Starting Address(直下基本ブロック先頭アドレス)のうちの一方を、同じく一つのエントリから出力されたPrediction Bit(予測ビット)に基づいて選択して出力するMUX(マルチプレクサ)が示され、さらに、このFigure1(図1)には、当該MUX(マルチプレクサ)の出力が、一つのエントリから出力されたBranch Type(分岐タイプ)により制御される別のMUX(マルチプレクサ)とBTB Hit(分岐ターゲットバッファがヒットしたか否かを示す信号)により制御されるさらなる別のMUX(マルチプレクサ)を介して、Next Instruction Fetch Address(次の命令フェッチアドレス)として出力されることが示されていることから明らかなように、引用例1においては、命令フェッチアドレスが、アドレスタグを格納するフィールドに格納された基本ブロックの先頭アドレスと一致したことに応答して、分岐パス予測ビットの値に応じて、当該基本ブロック内の分岐命令のターゲットアドレスと、当該基本ブロックの直下の基本ブロックの先頭アドレスのいずれかを提供するものである。

上記引用例1の記載事項及び図面を総合勘案すると、引用例1には、次の発明(以下、「引用発明」という。)が記載されていると認められる。

スーパスケーラプロセッサにおける分岐予測のための方法であって:
アドレスタグを格納するフィールドと、ターゲットアドレス、直下基本ブロック先頭アドレス、及び、分岐パス予測ビットを格納するフィールドとからなるエントリを複数備え、アドレスタグを格納するフィールドは、ターゲットアドレス、直下基本ブロック先頭アドレス、及び、分岐パス予測ビットを格納するフィールドを索引付けするためのものである、分岐履歴テーブルに統合された分岐ターゲットバッファを用意し;
アドレスタグを格納するフィールドのうち選択したものには、基本ブロックの先頭アドレスを格納し;
ターゲットアドレス、直下基本ブロック先頭アドレス、及び、分岐パス予測ビットを格納するフィールドには、当該基本ブロック内の分岐命令のターゲットアドレスと、当該基本ブロックの直下の基本ブロックの先頭アドレスと、当該分岐命令の分岐パス予測ビットを格納し;
命令フェッチアドレスが、アドレスタグを格納するフィールドに格納された基本ブロックの先頭アドレスと一致したことに応答して、分岐パス予測ビットの値に応じて、当該基本ブロック内の分岐命令のターゲットアドレスと、当該基本ブロックの直下の基本ブロックの先頭アドレスのいずれかを提供することを含む、分岐予測のための方法。

3.周知例1に記載されている技術的事項
本願の優先日前に頒布された刊行物である米国特許第6185675号明細書(2001年2月6日公開。以下、「周知例1」という。)には、以下の技術事項が記載されている。なお、仮訳は当審が訳出したものである。

「Basic blocks are natural divisions in instruction streams resulting from branch instructions. The start of a basic block is a target of a branch, and the end is another branch instruction.」
(公報第1頁のABSTRACT(要約)における第2行目?第5行目。
仮訳:基本ブロックは分岐命令により生じる命令ストリームの自然な分割物である。基本ブロックの先頭は分岐のターゲットであり、末尾は別の分岐命令である。)

4.基本ブロックと分岐命令の関係に関する技術常識の認定
上記周知例1に「基本ブロックは分岐命令により生じる命令ストリームの自然な分割物である。基本ブロックの先頭は分岐のターゲットであり、末尾は別の分岐命令である。」と記載されているような、通常の態様の基本ブロックにおいては、基本ブロックの先頭アドレスは分岐命令のターゲットアドレスとなることは、当業者にとっての技術常識である(以下、この技術常識を「技術常識1」という。)。

第4.対比
本願発明と引用発明とを比較する。

引用発明における「スーパスケーラプロセッサ」は本願発明における「デジタルプロセッサ」に相当する。
引用発明における「アドレスタグを格納するフィールド」に格納される「基本ブロックの先頭アドレス」と、本願発明における「タグアレイにおける各エントリー(entry)」または「タグアレイにおける一つの選択したエントリー」に格納される「現在の分岐命令の分岐タ-ゲットを表す情報」は、アドレスタグである点で一致する。
引用発明における「ターゲットアドレス、直下基本ブロック先頭アドレス、及び、分岐パス予測ビットを格納するフィールド」に格納される「当該基本ブロック内の分岐命令のターゲットアドレス」及び「当該基本ブロックの直下の基本ブロックの先頭アドレス」はいずれも、本願発明における「データアレイにおける対応するエントリー」に格納される「次の分岐命令の分岐ターゲットを表す情報」に相当する。
引用発明における「アドレスタグを格納するフィールド」と本願発明における「タグアレイにおける各エントリー(entry)」は、アドレスタグを格納するエントリーである点で一致する。
引用発明における「ターゲットアドレス、直下基本ブロック先頭アドレス、及び、分岐パス予測ビットを格納するフィールド」と本願発明における「データアレイにおける対応するエントリー」は、次の分岐命令の分岐ターゲットを表す情報を格納する対応するエントリーである点で一致する。
引用発明における「索引付けする」ことは本願発明における「印付け(index)する」ことに相当する。
引用発明における「分岐履歴テーブルに統合された分岐ターゲットバッファ」と本願発明における「分岐ターゲットバッファ(BTB:Branch Target Buffer)」は、分岐ターゲットバッファ(BTB:Branch Target Buffer)である点で一致する。
引用発明における「命令フェッチアドレス」は本願発明における「入力命令アドレス」に相当する。

すると、本願発明と引用発明とは、少なくとも次の点で一致する。

<一致点>
デジタルプロセッサにおける分岐予測のための方法であって:
アドレスタグを格納する各エントリー(entry)は次の分岐命令の分岐ターゲットを表す情報を格納する対応するエントリーを印付け(index)するものである、分岐ターゲットバッファ(BTB:Branch Target Buffer)を用意し;
アドレスタグを格納する一つの選択したエントリーにはアドレスタグを格納し;
次の分岐命令の分岐ターゲットを表す情報を格納する対応するエントリーには次の分岐命令の分岐ターゲットを表す情報を格納し;
入力命令アドレスが、アドレスタグを格納するエントリーと一致したことに応答して次の分岐命令の分岐ターゲットを表す情報を提供することを含む分岐予測のための方法。

一方で、両者は、一見して次の点で一応相違する。

<相違点1>
アドレスタグを格納するエントリーと次の分岐命令の分岐ターゲットを表す情報を格納する対応するエントリーに関して、本願発明では「タグアレイとデータアレイとを有」するものであり、「タグアレイ」における各エントリー(entry)がアドレスタグを格納するエントリーであり、「データアレイ」における対応するエントリーが次の分岐命令の分岐ターゲットを表す情報を格納する対応するエントリーであるのに対し、引用発明では「アドレスタグを格納するフィールド」がアドレスタグを格納するエントリーであり、「ターゲットアドレス、直下基本ブロック先頭アドレス、及び、分岐パス予測ビットを格納するフィールド」が次の分岐命令の分岐ターゲットを表す情報を格納する対応するエントリーであるものの、引用発明に対応する引用例1には、「アドレスタグを格納するフィールド」の集合がタグアレイを構成し、「ターゲットアドレス、直下基本ブロック先頭アドレス、及び、分岐パス予測ビットを格納するフィールド」の集合がデータアレイを構成することにより、タグアレイとデータアレイを有するとは明記されていない点。

<相違点2>
アドレスタグに関して、本願発明では「現在の分岐命令の分岐タ-ゲットを表す情報」であるのに対し、引用発明では「基本ブロックの先頭アドレス」である点。

第5.新規性の判断
上記した一応の相違点1及び2について検討する。

1.相違点1について
引用発明における「アドレスタグを格納するフィールド」と「ターゲットアドレス、直下基本ブロック先頭アドレス、及び、分岐パス予測ビットを格納するフィールド」はともに複数存在し、「アドレスタグを格納するフィールド」の個数と「ターゲットアドレス、直下基本ブロック先頭アドレス、及び、分岐パス予測ビットを格納するフィールド」の個数は同数である。いわば、複数個存在する「アドレスタグを格納するフィールド」はアドレスタグを格納するエントリーが配列(アレイ)をなしているものであり、複数個存在する「ターゲットアドレス、直下基本ブロック先頭アドレス、及び、分岐パス予測ビットを格納するフィールド」はデータを格納するエントリーが配列(アレイ)をなしているものであるのだから、引用発明に対応する引用例1に「タグアレイ」及び「データアレイ」という用語は用いられていないものの、引用発明においても、「タグアレイ」及び「データアレイ」が構成されており、「タグアレイ」と「データアレイ」を有しているといえる。つまり、引用発明はタグアレイとデータアレイを有するものであり、タグアレイにおけるエントリーが、アドレスタグを格納するエントリーである「アドレスタグを格納するフィールド」であり、データアレイにおけるエントリーが、次の分岐命令の分岐ターゲットを表す情報を格納する対応するエントリーである「ターゲットアドレス、直下基本ブロック先頭アドレス、及び、分岐パス予測ビットを格納するフィールド」である。
よって、上記した相違点1は、実質的には本願発明と引用発明の相違点ではない。

2.相違点2について
上記(1の3)に「基本ブロックは、連続する命令のシーケンスであり、入り口となるポイントを正確に1つ持ち、出口となるポイントを正確に1つ持つ。」と記載されているように、基本ブロックは、入り口となるポイントはただひとつ持つものであることは技術常識である。そして、特殊な性格付けをされた基本ブロックでない限り、通常の基本ブロックの入り口となるポイントは基本ブロックの先頭アドレスである。そして、命令のシーケンスの先頭の基本ブロックである等の特殊な性格付けをされた基本ブロックでない限り、命令のシーケンス上、一つの基本ブロックに入る契機となるものは、当該一つの基本ブロック以外の他の基本ブロック内にある何らかの種類の分岐命令において分岐が成立して(または無条件に分岐が成立して)命令フェッチアドレスが当該分岐命令の分岐成立時のターゲットアドレスとなる場合か、当該分岐命令において分岐が成立せずに命令フェッチアドレスが当該分岐命令の分岐不成立時のターゲットアドレス(当該一つの基本ブロックの直下の基本ブロックの先頭アドレス)となる場合である。つまりは、特殊な事情がない限り、基本ブロックの先頭アドレスは、分岐命令の(分岐成立時または分岐不成立時の)ターゲットアドレスである。
既に示したように、周知例1にも技術常識1として、通常の態様の基本ブロックにおいては、基本ブロックの先頭アドレスは分岐命令のターゲットアドレスとなるという技術常識が例示されている。
(念のため、基本ブロックがループになっているケースについて言及すると、ループ制御による後方分岐については、当該基本ブロックの末尾の分岐命令のターゲットアドレスが当該基本ブロックの先頭アドレスとなる。このケースについて、ループ制御により基本ブロックの先頭アドレスに命令フェッチアドレスが戻ることについても、仮に”基本ブロックに入る”と表現するとしても、やはり、基本ブロックの先頭アドレスは、分岐命令のターゲットアドレスである。)
このことは、引用例1においても同様である。具体的には、上記(1の5)に示したように、引用例1のFigure1(図1)には、Merged Branch Target Buffer and Branch History Table(分岐ターゲットバッファと分岐履歴テーブルの統合)の一つのエントリから出力されたTarget Address(ターゲットアドレス)とFall-through BB Starting Address(直下基本ブロック先頭アドレス)のうちの一方が、Next Instruction Fetch Address(次の命令フェッチアドレス)として出力されることが示されるとともに、Target Buffer and Branch History Table(分岐ターゲットバッファと分岐履歴テーブルの統合)はInstruction Fetch Address(命令フェッチアドレス)でIndex(索引付け)されることが示されている。つまりは、分岐命令の(分岐成立時または分岐不成立時の)ターゲットアドレスであるTarget Address(ターゲットアドレス)とFall-through BB Starting Address(直下基本ブロック先頭アドレス)が、Merged Branch Target Buffer and Branch History Table(分岐ターゲットバッファと分岐履歴テーブルの統合)を次にアクセスする際においては、Merged Branch Target Buffer and Branch History Table(分岐ターゲットバッファと分岐履歴テーブルの統合)をIndex(索引付け)するInstruction Fetch Address(命令フェッチアドレス)となる。既に引用発明の認定において示したように、Merged Branch Target Buffer and Branch History Table(分岐ターゲットバッファと分岐履歴テーブルの統合。引用発明における「分岐履歴テーブルに統合された分岐ターゲットバッファ」。)の各エントリのAddress Tag(アドレスタグ)には基本ブロックの先頭アドレスが格納されるものであるのだから、結局のところ、引用発明においても、基本ブロックの先頭アドレスは、分岐命令の(分岐成立時または分岐不成立時の)ターゲットアドレス、すなわち、「分岐命令の分岐タ-ゲットを表す情報」である。

そして、引用発明における「アドレスタグを格納するフィールド」に格納される「基本ブロックの先頭アドレス」を(分岐成立時または分岐不成立時に)ターゲットとする分岐命令のほうが、引用発明における「ターゲットアドレス、直下基本ブロック先頭アドレス、及び、分岐パス予測ビットを格納するフィールド」に格納される「当該基本ブロック内の分岐命令のターゲットアドレス」や「当該基本ブロックの直下の基本ブロックの先頭アドレス」をターゲットとする分岐命令よりも、時系列的には前の時間にアクセスされるものであることは自明である。言い換えれば、引用発明における「ターゲットアドレス、直下基本ブロック先頭アドレス、及び、分岐パス予測ビットを格納するフィールド」に格納される「当該基本ブロック内の分岐命令のターゲットアドレス」や「当該基本ブロックの直下の基本ブロックの先頭アドレス」をターゲットとする分岐命令を「次の分岐命令」と呼ぶならば、引用発明における「アドレスタグを格納するフィールド」に格納される「基本ブロックの先頭アドレス」を(分岐成立時または分岐不成立時に)ターゲットとする分岐命令は「現在の分岐命令」と呼ぶべきものである。
そのため、引用発明における「アドレスタグを格納するフィールド」に格納される「基本ブロックの先頭アドレス」は本願発明における「現在の分岐命令の分岐タ-ゲットを表す情報」に相当する。
よって、上記した相違点2は、実質的には本願発明と引用発明の相違点ではない。

3.新規性の判断の小括
上記1.及び2.にて示したように、上記した相違点1及び2は、実質的には本願発明と引用発明の相違点ではなく、本願発明は引用例1に記載された発明である。

第6.進歩性の判断に関する予備的検討

1.相違点1について
仮に、「第4.対比」で示した相違点1が本願発明と引用発明の実質的な相違点であるとしても、アドレスタグを格納するエントリとデータを格納するエントリの対が複数存在する場合に、アドレスタグを格納するエントリの集合によりタグアレイを構成し、データを格納するエントリの集合によりデータアレイを構成すること自体は、キャッシュメモリやキャッシュメモリと同様の構造を用いる各種のバッファ(その一種として、分岐ターゲットバッファも含まれる。)の技術分野では周知である。そのため、引用発明において、「アドレスタグを格納するフィールド」の集合によりタグアレイを構成し、「ターゲットアドレス、直下基本ブロック先頭アドレス、及び、分岐パス予測ビットを格納するフィールド」の集合によりデータアレイを構成することにより、タグアレイとデータアレイを有するようにすることに何ら困難性はない。よって、この相違点1は格別のものではない。

2.相違点2について
仮に、「第4.対比」で示した相違点2が本願発明と引用発明の実質的な相違点であるとしても(例えば、引用発明における基本ブロックに関して、分岐命令により区切られる、入り口となるポイントと出口となるポイントを一つずつ有する通常の態様の基本ブロック(つまりは、周知例1で指摘されているような基本ブロック)を、さらに人為的に分断することを敢えて想定することや、特殊な性格付けをされた基本ブロックを想定することなどにより、いわば人為的な相違点を想定するとしても)、少なくとも、通常の態様の基本ブロックの先頭アドレスが分岐命令の(分岐成立時または分岐不成立時の)ターゲットアドレスとなりうることは疑いのないところであるから、引用発明におけるアドレスタグである「基本ブロックの先頭アドレス」を、当該基本ブロック内の分岐命令よりも時系列的に前にアクセスされる分岐命令の(分岐成立時または分岐不成立時の)ターゲットアドレス、すなわち、「現在の分岐命令の分岐タ-ゲットを表す情報」とすることに何ら困難性はない。よって、この相違点2は格別のものではない。

3.進歩性の判断に関する予備的検討の小括
上記1.及び2.にて示したように、仮に、「第4.対比」で示した相違点1または2が本願発明と引用発明の実質的な相違点であるとしても、これらの相違点1または2は格別のものではない。
また、本願発明が有する作用効果は、(引用例1に記載された)引用発明から当業者が予測できた範囲内のものである。
よって、仮に、「第4.対比」で示した相違点1または2が本願発明と引用発明の実質的な相違点であるとしても、本願発明は、(引用例1に記載された)引用発明に基いて、当業者が容易に発明をすることができたものである。

第7.上申書について
請求人は平成24年1月18日付けで上申書を提出しているので、上申書における請求人の主張について言及する。

1.分岐ターゲットバッファに格納されるタグについて
請求人は上申書において、分岐ターゲットバッファに格納されるタグに関して、下記のような主張をしている。

「本願発明の、BTBのタグアレイは「現在の分岐命令の分岐ターゲットを表わす情報」であって、「次の分岐命令のベーシックブロックの先頭アドレスを表わす情報」ではありません。」

「段落番号0006:「タグアレイの入力に対する適合に応答して」:
「タグアレイの入力」は、本願発明においては「現在の分岐命令の分岐ターゲットを表わす情報」(0006)でありまして、現在の分岐命令に由来して定まる、ターゲットであります。次の分岐命令に由来して定まるものではありません。
引例1でいえば、分岐命令が含まれるベーシックブロックの先頭アドレスは、その分岐命令に由来して定まる事項であり、引例1のBTBのタグアレイとデータアレイは、該先頭アドレスと、その分岐のターゲットアドレスが記憶されているにすぎませんから、あくまでもひとつの分岐命令に由来する事項であります。」

「段落番号0020:「タグ入力は、後述(「口述」は誤記であります)する予測情報に基づいて、現在の分岐命令のターゲット命令のアドレスを含むタグアドレスフィールドを含んでいてもよい。」:
ここにおいても、「現在の分岐命令のターゲット命令」という限定をおこなっており、現在の分岐命令の次の分岐命令の属するベーシックブロックの先頭アドレス、という意味はもたせようとしていないのであります。すなわち、「現在の分岐命令のターゲット」として得られるアドレスなのであります。」

上記で指摘した箇所は、分岐ターゲットバッファに格納されるタグが、本願発明では「現在の分岐命令の分岐タ-ゲットを表す情報」であるのに対し、引用発明における「基本ブロックの先頭アドレス」である点で相違すると主張しているものである。

しかしながら、既に「第5.新規性の判断」の「2.相違点2について」で示したように、請求人が上申書で主張する上記した点は本願発明と引用発明の実質的な相違点ではない。また、仮に、その点が本願発明と引用発明の実質的な相違点であるとしても、既に「第6.進歩性の判断に関する予備的検討」で示したように、その相違点は格別のものではない。
よって、分岐ターゲットバッファに格納されるタグに関して本願発明の新規性及び進歩性を肯定する請求人の上申書での上記した主張は採用することができない。

2.分岐ターゲットバッファへのアクセスアドレス及びアクセスタイミングについて
請求人は上申書において、分岐ターゲットバッファへのアクセスアドレス及びアクセスタイミングに関して、下記のような主張をしている。

「本願発明の…(中略)…BTBをlook upする際にタグアレイと比較するアドレスは、分岐命令について予測された分岐ターゲットのアドレスであります。」

「引例1のBTBと本願発明のBTBとは、BTBがヒットするかどうかlook upする動作が、いつ行われるかに違いがあり、」

「引例1のBTBは、すべてのフェッチアドレスをBTBのタグアレイと比較するlook up動作を行います。」

「これに対して、本願発明のBTBは、すべてのフェッチアドレスについてはBTBのタグアレイのlook upを行いません。分岐命令Aがフェッチされデコードされて分岐命令と判明し分岐予測機能によって分岐先アドレスが決められたら、その決められた分岐先アドレスについて、BTBのlook upを行うのであります。」

「引例1のものは、…(中略)…命令フェッチがベーシックブロックの命令をフェッチすると常にBTBのヒットがおきるかどうかを調べます。」

「これに対して、本願発明のBTBは、…(中略)…ある分岐命令の分岐先が予測されたときに、BTBのヒットの有無をlook upするのであります。」

「段落番号0030:…(中略)…このことも、現在の分岐命令のターゲットアドレスでBTBをlook upすることを示しております。」

「図5:
図のステージ2において「BTBからの予測されたフェッチアドレス」がBTBに供給されます。これは、予測された分岐ターゲットのアドレスがBTBにおいてlook upされることに対応しております。すなわち、予測されたターゲットのアドレスであって、フェッチされたアドレスではありません。」

上記で指摘した箇所は、分岐ターゲットバッファへのアクセスアドレスやアクセスタイミングに関して、本願発明では、分岐命令のターゲットアドレスが判明したときに限られ、当該ターゲットアドレスでのみ分岐ターゲットバッファにアクセスするのに対し、引用発明では分岐ターゲットバッファへのアクセスアドレスやアクセスタイミングの制限はない点で相違すると主張しているものである。

しかしながら、この主張は本願発明に対応する本願の請求項1の記載に根拠のあるものではない。本願の請求項1における「タグアレイにおける一つの選択したエントリーには現在の分岐命令の分岐タ-ゲットを表す情報を格納し」と「データアレイにおける対応するエントリーには次の分岐命令の分岐ターゲットを表す情報を格納し」の部分は、分岐ターゲットバッファのエントリーに格納される情報の性質を示すものであり、分岐ターゲットバッファへのアクセスアドレスやアクセスタイミングを請求人の主張のように限定するものではない。同じく本願の請求項1における「入力命令アドレスが、タグアレイにおけるエントリーと一致したことに応答して次の分岐命令の分岐ターゲットを表す情報を提供する」の部分、特に「入力命令アドレス」の部分は、分岐ターゲットバッファへのアクセスアドレスやアクセスタイミングについて請求人の主張のような限定はしていないものである。

また、本願の請求項1における「入力命令アドレスが、タグアレイにおけるエントリーと一致したことに応答して」という記載自体は明確であり、かつ、この「入力命令アドレスが、タグアレイにおけるエントリーと一致したことに応答して」の部分を、本願明細書等に開示された実施例における、分岐ターゲットバッファへのアクセスアドレスやアクセスタイミングを限定する態様に限定して解釈すべき事情もない。
より詳細に言及すれば、分岐ターゲットバッファへのアクセスアドレスやアクセスタイミングが限定されない独立請求項(例えば、出願当初における請求項1と平成22年1月7日付け手続補正後の請求項1)と、分岐ターゲットバッファへのアクセスアドレスやアクセスタイミングが限定されることを示すか示唆している従属請求項(例えば、出願当初における請求項6と平成22年1月7日付け手続補正後の請求項4)が、出願当初から請求項の記載として併存しており、しかも、分岐ターゲットバッファへのアクセスアドレスやアクセスタイミングが限定されなくても、依然として、本願明細書等に開示された実施例における分岐ターゲットバッファは一応動作するものであることは自明であるから、本願においては出願当初から、分岐ターゲットバッファへのアクセスアドレスやアクセスタイミングが限定されるもののみならず、分岐ターゲットバッファへのアクセスアドレスやアクセスタイミングが限定されないものも、本願明細書等において開示し、かつ、特許請求しようとしていたと解するのが自然である。よって、本願の請求項1の「入力命令アドレスが、タグアレイにおけるエントリーと一致したことに応答して」という記載が、本願明細書等の他の記載と対応しないということはできず、本願の請求項1における「入力命令アドレスが、タグアレイにおけるエントリーと一致したことに応答して」の部分を、本願明細書等に開示された実施例における、分岐ターゲットバッファへのアクセスアドレスやアクセスタイミングを限定する態様に限定して解釈すべき事情はない。

よって、分岐ターゲットバッファへのアクセスアドレスやアクセスタイミングについて、本願発明では、分岐命令のターゲットアドレスが判明したときに限られ、当該ターゲットアドレスでのみ分岐ターゲットバッファにアクセスするのに対し、引用発明では分岐ターゲットバッファへのアクセスアドレスやアクセスタイミングの制限はない点で相違する旨の請求人の上申書の上記した主張には、本願発明に対応する本願の請求項1の記載上の根拠がなく、当該主張を採用することができない。

3.分岐ターゲットバッファへのアクセスアドレスとしての、分岐命令のターゲットアドレスと基本ブロックの先頭アドレスの関係について
請求人は上申書において、分岐ターゲットバッファへのアクセスアドレスとしての、分岐命令のターゲットアドレスと基本ブロックの先頭アドレスの関係について、下記のような主張をしている。

「分岐命令の属するベーシックブロックの先頭アドレスの命令をフェッチした時ではなく、分岐命令のターゲットを予測してアドレスが判明した時点で次の分岐命令のターゲットをフェッチすることが可能となる点で、引例1の動作とは動作が異なります。」

「引例1のBTBは、…(中略)…分岐命令Aが所属しているベーシックブロックの先頭アドレスがフェッチされたときには、ヒットが発生するので、BTBのデータアレイにあるその分岐命令Aのターゲットアドレスを、分岐命令Aの次のフェッチアドレスとして提供しますが、その分岐命令Aのそのまた次の分岐命令Bのターゲットアドレスは提供しません。」

「本願発明のBTBは、…(中略)…分岐先アドレスについて、BTBのlook upを行うのであります。そして、ヒットするとBTBが与えるフェッチアドレスは、次の分岐命令Bの分岐先アドレスですから、本願発明は、分岐命令Aの分岐先が判明した段階であって、次の分岐命令Bのベーシックブロックの先頭アドレスをフェッチする前であっても、BTBのlook upを行い次の分岐命令Bのターゲットを提供してしまいます。
したがって、分岐命令Bのターゲットと、それに続くアドレスの命令のフェッチが先読みできるのであります。」

「引例1の場合、次の分岐命令Bのベーシックブロックの先頭アドレスのフェッチを行わない限り分岐命令Bのターゲットアドレスの提供はなされません。」

「タグアレイがlook upされるアドレスは、現在の分岐命令の分岐ターゲットのアドレスであって、そのアドレスは現在の分岐命令のデコードの結果分岐命令であることの判明およびその分岐命令についておこなわれる分岐先予測…(中略)…の結果に基づいて定まるのであって、次の命令のBTB先頭アドレスがフェッチされたかどうかとは関係が無いのであります。」

「引例1は分岐命令を含むベーシックブロックの先頭アドレスの命令のフェッチ時点でBTBをlook upしてデータアレイのアドレスを得ますが、本願発明は命令フェッチ時点ではなく、分岐命令ターゲット予測時点でBTBをlook upします。そしてBTBが返してくるアドレスは、引例1の場合フェッチしたアドレスが含まれるベーシックブロックの分岐命令のターゲットであるのに対し、本願発明では、ターゲットを予測した分岐命令の、その次の分岐命令のターゲットであります。」

上記で指摘した箇所は、分岐ターゲットバッファへのアクセスアドレスが、本願発明では分岐命令のターゲットアドレスであるのに対し、引用発明では基本ブロックの先頭アドレスであり、ここでいう、分岐命令のターゲットアドレスと基本ブロックの先頭アドレスは異なるものであると主張しているものである。

しかしながら、上記「2.分岐ターゲットバッファへのアクセスアドレス及びアクセスタイミングについて」で示したことと同様に、請求人の上記した主張は本願発明に対応する本願の請求項1の記載に根拠のあるものではない。

また、分岐ターゲットバッファのタグに関するものであるものの、本願発明の「現在の分岐命令の分岐ターゲットを示す情報」と引用発明の「基本ブロックの先頭アドレス」に関しては、本願発明と引用発明の実質的な相違点にはならないことは、既に「第5.新規性の判断」の「2.相違点2について」で示したとおりであり、仮に、その点が本願発明と引用発明の実質的な相違点であるとしても、その相違点は格別のものではないことも、既に「第6.進歩性の判断に関する予備的検討」で示したとおりである。このことは、分岐ターゲットバッファへのアクセスアドレスに関しても同様である。

よって、分岐ターゲットバッファへのアクセスアドレスが、本願発明では分岐命令のターゲットアドレスであるのに対し、引用発明では基本ブロックの先頭アドレスであり、ここでいう、分岐命令のターゲットアドレスと基本ブロックの先頭アドレスは異なるものである旨の請求人の上申書での上記した主張は、採用することができない。

4.その他の主張
請求人は上申書にて、上記1.乃至3.で既に指摘した点以外には、下記のような主張をしている。

「本願明細書において、一貫して「現在の分岐命令」の分岐ターゲットアドレスである、と表現している「現在の」の意味は、データアレイにそのターゲットアドレスが格納されている「次の分岐命令」を未だフェッチしていない時点である、現在の時点において、フェッチしてデコードして、分岐予測した命令である「現在の」分岐命令である、ということであります。」

「そして、本願発明は、通常のBTB/分岐先予測機能の使用を除外するものではありません。本願発明のBTBは、あくまでも、ある分岐命令の分岐先予測の結果に基づいて、次の分岐命令の分岐先を提供するBTBであることが特徴であります。従って、本願発明のBTBは、現在の分岐命令の分岐先を提供するものではありません。
本願発明は、従来のBTBのような、現在の分岐命令に関して、分岐先情報を提供することに関しては、サイレントであります。あくまでも、現在の分岐命令の分岐先を与える機能ではなく、BTBを構築したときに得られた次の分岐命令とその分岐先の情報を、その直前の分岐命令の分岐先アドレスであるタグと関連づけて記憶してあるものであって、現在の分岐命令の分岐先予測の結果に基づいて、次の分岐命令の分岐先情報を提供するという点に特徴があるのであります。」

「このように、本願発明と引例1とでは、ヒットそのものの意味が引例1とは異なりますから、本願発明のBTBが返してくるアドレスは、次の分岐命令をフェッチするよりも前に得られる、予測を行った分岐命令の次の分岐命令としてBTB構築時に設定された次の分岐命令、(この分岐命令は、まだフェッチもされていないものであります)のターゲットであります。
従いまして、BTBが返してくる次の分岐命令のターゲットアドレスは、更に先の命令の先読みを許容しますから、分岐予測が正しい状況が続くかぎり、次の分岐命令に続く命令をいち早く先読みすることができます。」

しかしながら、既に「第3.先行技術文献に記載されている技術的事項と先行技術文献に記載されている発明の認定」、「第4.対比」、「第5.新規性の判断」及び「第6.進歩性の判断に関する予備的検討」で示したように、分岐命令のアドレスをタグとし、当該分岐命令のターゲットアドレスをデータとする、当業者には周知な分岐ターゲットバッファではなくて、ある分岐命令のターゲットアドレスに相当するアドレスをタグとし、当該ある分岐命令よりは後にある別の分岐命令のターゲットアドレスをデータとする分岐ターゲットバッファに関するものである点で、本願発明と引用発明は同様のものであるから、請求人の上申書での上記した主張は採用することはできない。

5.付言
請求人は上申書の末尾にて「出願当初の明細書および図面の意図する本願発明は、上記のものでありますので、現請求項の記載との整合性を含め、ご検討の程をお願いします。」と述べている。

しかしながら、既に「第5.新規性の判断」及び「第6.進歩性の判断に関する予備的検討」にて示したように、特許法第29条第1項第3項の規定と同法同条第2項の規定に依拠する原審の拒絶査定の理由は維持されるものであるから、本願明細書等の記載と本願の請求項1の記載との整合性に関する拒絶理由通知を、改めて当審がなす特許法上の根拠はない。
また、上記「2.分岐ターゲットバッファへのアクセスアドレス及びアクセスタイミングについて」で示したように、本願発明に対応する本願の請求項1の「入力命令アドレスが、タグアレイにおけるエントリーと一致したことに応答して」という記載が、本願明細書等の他の箇所の記載と対応していないとまではいえないので、本願明細書等の記載と本願発明に対応する本願の請求項1の記載との間に整合性に関して疑義があるとまではいえない。その意味でも、本願明細書等の記載と本願の請求項1の記載との整合性に関する拒絶理由通知を当審がなす事情はない。

第8.むすび
したがって、本願の請求項1に係る発明は、その優先日前に日本国内又は外国において頒布された刊行物に記載された発明であるから、特許法第29条第1項第3号に該当し、他の請求項について検討をするまでもなく、本願は特許を受けることができない。
また、仮に本願の請求項1に係る発明と前記刊行物に記載された発明に実質的な相違点が存在するとしても、本願の請求項1に係る発明は、その優先日前に日本国内又は外国において頒布された刊行物に記載された発明に基いて、当業者が容易に発明をすることができたものであるから、他の請求項について検討をするまでもなく、本願は特許法第29条第2項の規定により特許を受けることができない。

よって、結論のとおり審決する。
 
審理終結日 2012-01-24 
結審通知日 2012-01-31 
審決日 2012-02-14 
出願番号 特願2006-507365(P2006-507365)
審決分類 P 1 8・ 121- Z (G06F)
P 1 8・ 113- Z (G06F)
最終処分 不成立  
前審関与審査官 三坂 敏夫  
特許庁審判長 山崎 達也
特許庁審判官 石井 茂和
清木 泰
発明の名称 分岐ターゲットに基づいて分岐予測をするための方法および装置  
代理人 塩崎 進  
代理人 葛和 清司  

プライバシーポリシー   セキュリティーポリシー   運営会社概要   サービスに関しての問い合わせ