• ポートフォリオ機能


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

  • この表をプリントする
PDF PDFをダウンロード
審決分類 審判 査定不服 2項進歩性 特許、登録しない。 G06F
管理番号 1295355
審判番号 不服2014-2590  
総通号数 182 
発行国 日本国特許庁(JP) 
公報種別 特許審決公報 
発行日 2015-02-27 
種別 拒絶査定不服の審決 
審判請求日 2014-02-10 
確定日 2014-12-11 
事件の表示 特願2009-154374「プライオリティ回路、演算処理装置及び演算処理方法」拒絶査定不服審判事件〔平成23年 1月13日出願公開、特開2011- 8732〕について、次のとおり審決する。 
結論 本件審判の請求は、成り立たない。 
理由 第1.手続の経緯
本願は、平成21年6月29日を出願日とする出願であって、その後の手続の経緯の概略は次のとおりである。

出願審査請求(提出日) 平成24年3月9日
拒絶理由通知(起案日) 平成25年8月20日
意見、手続補正(提出日) 平成25年10月25日
拒絶査定(起案日) 平成25年11月5日
拒絶査定謄本送達 平成25年11月12日
審判請求(提出日) 平成26年2月10日
手続補正(提出日) 平成26年2月10日
前置報告(作成日) 平成26年3月7日

第2.平成26年2月10日付の手続補正についての補正却下の決定

[補正却下の決定の結論]
平成26年2月10日付の手続補正を却下する。

[理由]
1. 補正の内容
平成26年2月10日付の手続補正(以下、「本件補正」という。)により、特許請求の範囲は次のとおり補正された。

[本件補正前]
「【請求項1】
命令デコーダより特定の演算器でのみ実行可能な命令であることを示す実行可能フラグを入力されるリザベーションステーションと、処理可能な演算が異なる複数の演算器とに接続されたプライオリティ回路であって、
前記実行可能フラグに基づいて、当該特定の演算器とは異なる演算器であって、キューに空きが存在する演算器に命令をディスパッチするディスパッチ手段を有し、
前記リザベーションステーションが前記命令デコーダから入力されたエントリとしての命令およびその前記実行可能フラグを前記リザベーションステーションから入力することを特徴とするプライオリティ回路。
【請求項2】
前記ディスパッチ手段は、さらに、特定の演算器へのディスパッチが不可であることを示すディスパッチ抑止フラグに基づいて、当該特定の演算器とは異なる演算器であって、キューに空きが存在する演算器に命令をディスパッチすることを特徴とする請求項1に記載のプライオリティ回路。
【請求項3】
リザベーションステーションと、
処理可能な演算が異なる複数の演算器と、
特定の演算器でのみ実行可能な命令であることを示す実行可能フラグを前記リザベーションステーションに入力する命令デコーダと、
前記リザベーションステーションによる前記実行可能フラグの入力に基づいて、前記特定の演算器とは異なる演算器であって、キューに空きが存在する演算器に命令をディスパッチするプライオリティ回路を有し、
前記リザベーションステーションは、前記命令デコーダからエントリとして入力された命令およびその前記実行可能フラグを、前記プライオリティ回路に出力することを特徴とする演算処理装置。
【請求項4】
前記プライオリティ回路は、さらに、特定の演算器へのディスパッチが不可であることを示すディスパッチ抑止フラグに基づいて、当該特定の演算器とは異なる演算器であって、キューに空きがある演算器にディスパッチすることを特徴とする請求項3に記載の演算処理装置。
【請求項5】
リザベーションステーションと、処理可能な演算が異なる複数の演算器とを有する演算処理装置の演算処理方法であって、
前記演算処理装置が有する命令デコーダが、特定の演算器でのみ実行可能な命令であることを示す実行可能フラグを前記リザベーションステーションに入力するステップと、
前記リザベーションステーションが、前記命令デコーダからエントリとして入力された命令およびその前記実行可能フラグを、前記演算処理装置が有するプライオリティ回路に出力するステップと、
前記プライオリティ回路が、前記リザベーションステーションによる前記実行可能フラグの入力に基づいて、前記特定の演算器とは異なる演算器であって、キューに空きが存在する演算器に命令をディスパッチするステップと、
を含んだことを特徴とする演算処理方法。
【請求項6】
前記プライオリティ回路は、さらに、特定の演算器へのディスパッチが不可であることを示すディスパッチ抑止フラグに基づいて、当該特定の演算器とは異なる演算器であって、キューに空きがある演算器にディスパッチすることを特徴とする請求項5に記載の演算処理方法。」
(以下、この特許請求の範囲に記載された請求項を「補正前請求項」という。)

[本件補正後]
「【請求項1】
処理可能な演算がそれぞれ異なる第1の演算器と第2の演算器と、命令デコーダから、デコード済みの命令と前記デコード済みの命令が前記第1の演算器と前記第2の演算器のうち特定の演算器でのみ実行可能な命令であるか否かを示す実行可能フラグとが入力されるリザベーションステーションとに接続されたプライオリティ回路であって、
前記実行可能フラグに基づいて、当該特定の演算器とは異なる演算器であって、キューに空きが存在する演算器に前記デコード済みの命令をディスパッチするディスパッチ手段を有し、
前記リザベーションステーションが前記命令デコーダからエントリとして、第1の命令と前記第1の命令に対応する第1の実行可能フラグ、前記第1の命令の演算結果に依存関係がある第2の命令と前記第2の命令に対応する第2の実行可能フラグ、前記第1の命令の演算結果に依存関係がある第3の命令と前記第3の命令に対応する第3の実行可能フラグのぞれぞれが入力された場合、前記第2の実行可能フラグと前記第3の実行可能フラグとが前記特定の演算器でのみ実行可能な命令であることを示さないとき、前記ディスパッチ手段が、前記第1の命令を前記第1の演算器にディスパッチ後、前記第2の命令の前記第1の演算器へのディスパッチと前記第3の命令の前記第2の演算器へのディスパッチとを同時に行うことを特徴とするプライオリティ回路。
【請求項2】
前記ディスパッチ手段は、さらに、特定の演算器へのディスパッチが不可であることを示すディスパッチ抑止フラグに基づいて、当該特定の演算器とは異なる演算器であって、
キューに空きが存在する演算器に命令をディスパッチすることを特徴とする請求項1に記載のプライオリティ回路。
【請求項3】
処理可能な演算がそれぞれ異なる複数の演算器と、
前記複数の演算器のうち特定の演算器でのみ実行可能な命令であることを示す実行可能フラグを出力する命令デコーダと、
前記命令デコーダから、デコード済みの命令と前記デコード済みの命令が前記複数の演算器のうち特定の演算器でのみ実行可能な命令であるか否かを示す実行可能フラグとが入力されるリザベーションステーションと、
前記リザベーションステーションからの実行可能フラグの入力に基づいて、前記複数の演算器のうち前記特定の演算器とは異なる演算器であって、キューに空きが存在する演算器に命令をディスパッチするプライオリティ回路を有し、
前記リザベーションステーションが前記命令デコーダからエントリとして第1の命令と前記第1の命令に対応する第1の実行可能フラグ、前記第1の命令の演算結果に依存関係がある第2の命令と前記第2の命令に対応する第2の実行可能フラグ、前記第1の命令の演算結果に依存関係がある第3の命令と前記第3の命令に対応する第3の実行可能フラグのぞれぞれが入力された場合、前記第2の実行可能フラグと前記第3の実行可能フラグとが前記特定の演算器でのみ実行可能な命令であることを示さないとき、前記プライオリティ回路が、前記第1の命令を第1の演算器にディスパッチ後、前記第2の命令の第1の演算器へのディスパッチと前記第3の命令の第2の演算器へのディスパッチとを同時に行うことを特徴とする演算処理装置。
【請求項4】
前記プライオリティ回路は、さらに、特定の演算器へのディスパッチが不可であることを示すディスパッチ抑止フラグに基づいて、当該特定の演算器とは異なる演算器であって、キューに空きがある演算器にディスパッチすることを特徴とする請求項3に記載の演算処理装置。
【請求項5】
リザベーションステーションと、処理可能な演算がそれぞれ異なる第1の演算器と第2の演算器とを有する演算処理装置の演算処理方法であって、
前記演算処理装置が有する命令デコーダが、デコード済みの命令が特定の演算器でのみ実行可能な命令であるか否かを示す実行可能フラグを前記リザベーションステーションに入力するステップと、
前記リザベーションステーションが、前記命令デコーダからエントリとしてデコード済みの命令と前記デコード済みの命令に対応する実行可能フラグとを、前記演算処理装置が有するプライオリティ回路に出力するステップと、
前記プライオリティ回路が、前記リザベーションステーションが前記命令デコーダからエントリとして、第1の命令と前記第1の命令に対応する第1の実行可能フラグ、前記第1の命令の演算結果に依存関係がある第2の命令と前記第2の命令に対応する第2の実行可能フラグ、前記第1の命令の演算結果に依存関係がある第3の命令と前記第3の命令に対応する第3の実行可能フラグのぞれぞれが入力された場合、前記第2の実行可能フラグと前記第3の実行可能フラグとが前記特定の演算器でのみ実行可能な命令であることを示さないとき、前記第1の命令を前記第1の演算器にディスパッチ後、前記第2の命令の前記第1の演算器へのディスパッチと前記第3の命令の前記第2の演算器へのディスパッチとを同時に行うステップと、
を含んだことを特徴とする演算処理方法。
【請求項6】
前記プライオリティ回路は、さらに、特定の演算器へのディスパッチが不可であることを示すディスパッチ抑止フラグに基づいて、当該特定の演算器とは異なる演算器であって、キューに空きがある演算器にディスパッチすることを特徴とする請求項5に記載の演算処理方法。」
(以下、この特許請求の範囲に記載された請求項を「補正後請求項」という。下線部は補正部分を表している。)

2. 本件補正における補正の目的について
補正前請求項1の、「命令デコーダより特定の演算器でのみ実行可能な命令であることを示す実行可能フラグを入力されるリザベーションステーションと、処理可能な演算が異なる複数の演算器とに接続されたプライオリティ回路」を、補正後請求項1の「処理可能な演算がそれぞれ異なる第1の演算器と第2の演算器と、命令デコーダから、デコード済みの命令と前記デコード済みの命令が前記第1の演算器と前記第2の演算器のうち特定の演算器でのみ実行可能な命令であるか否かを示す実行可能フラグとが入力されるリザベーションステーションとに接続されたプライオリティ回路」とする補正は、補正前請求項1の「プライオリティ回路」に接続された「演算器」について限定を加えるとともに「実行可能フラグ」について限定を加えるものであり、また、補正前請求項1の、ディスパッチ手段に係る「命令」を補正後請求項1の「前記デコード済みの命令」とする補正は、前記「命令」に限定を加えるものであり、また、補正前請求項1の、「前記リザベーションステーションが前記命令デコーダから入力されたエントリとしての命令およびその前記実行可能フラグを前記リザベーションステーションから入力することを特徴とするプライオリティ回路」を補正後請求項1の「前記リザベーションステーションが前記命令デコーダからエントリとして、第1の命令と前記第1の命令に対応する第1の実行可能フラグ、前記第1の命令の演算結果に依存関係がある第2の命令と前記第2の命令に対応する第2の実行可能フラグ、前記第1の命令の演算結果に依存関係がある第3の命令と前記第3の命令に対応する第3の実行可能フラグのぞれぞれが入力された場合、前記第2の実行可能フラグと前記第3の実行可能フラグとが前記特定の演算器でのみ実行可能な命令であることを示さないとき、前記ディスパッチ手段が、前記第1の命令を前記第1の演算器にディスパッチ後、前記第2の命令の前記第1の演算器へのディスパッチと前記第3の命令の前記第2の演算器へのディスパッチとを同時に行うことを特徴とするプライオリティ回路」とする補正は、補正前の「リザベーションステーション」および「プライオリティ回路」に限定を加えるものであるから、これらの補正は、特許請求の範囲の減縮(第36条第5項の規定により請求項に記載した発明を特定するために必要な事項を限定するものであって、その補正前の当該請求項に記載される発明の産業上の利用分野及び解決しようとする課題が同一であるものに限る。)(以下「限定的減縮」と記す。)を目的としたものと認められる。
また、補正前請求項3、5を、それぞれ、補正後請求項3、5とする補正は、カテゴリが「演算処理装置」、「演算処理方法」の発明に係るものの、前記補正後請求項1に係る補正と実質的に同じ補正がなされているので、これらの補正も限定的減縮を目的としたものと認められる。

したがって、本件補正は、特許法第17条の2第5項第2号の規定に適合する。

3. 独立特許要件についての判断
本件補正は限定的減縮を目的としたものであるところ、本件補正後の特許請求範囲に記載されている事項により特定される発明は、特許出願の際独立して特許を受けることができるものでなければならない(特許法第17条の2第6項で準用する第126条第7項)ので、この規定に適合するか否かを以下に検討する。

3.1 本件補正発明
本件補正後の請求項1に記載された発明(以下「本件補正発明」という。)は、前記平成26年2月10日付の手続補正(本件補正)により補正された特許請求の範囲の請求項1に記載されたとおりの次のものである。(再掲する。)

「処理可能な演算がそれぞれ異なる第1の演算器と第2の演算器と、命令デコーダから、デコード済みの命令と前記デコード済みの命令が前記第1の演算器と前記第2の演算器のうち特定の演算器でのみ実行可能な命令であるか否かを示す実行可能フラグとが入力されるリザベーションステーションとに接続されたプライオリティ回路であって、
前記実行可能フラグに基づいて、当該特定の演算器とは異なる演算器であって、キューに空きが存在する演算器に前記デコード済みの命令をディスパッチするディスパッチ手段を有し、
前記リザベーションステーションが前記命令デコーダからエントリとして、第1の命令と前記第1の命令に対応する第1の実行可能フラグ、前記第1の命令の演算結果に依存関係がある第2の命令と前記第2の命令に対応する第2の実行可能フラグ、前記第1の命令の演算結果に依存関係がある第3の命令と前記第3の命令に対応する第3の実行可能フラグのぞれぞれが入力された場合、前記第2の実行可能フラグと前記第3の実行可能フラグとが前記特定の演算器でのみ実行可能な命令であることを示さないとき、前記ディスパッチ手段が、前記第1の命令を前記第1の演算器にディスパッチ後、前記第2の命令の前記第1の演算器へのディスパッチと前記第3の命令の前記第2の演算器へのディスパッチとを同時に行うことを特徴とするプライオリティ回路。」

3.2 引用文献
(1) 引用文献1
本願出願前に頒布され、原審で引用された刊行物である、中森章著,”コンピュータアーキテクチャ(その直感的アプローチ4)並列処理の基本,スーパースカラ”,Oh!X 2001春号,ソフトバンクパブリッシング株式会社,2001年3月1日,頁256?275(以下、「引用文献1」という。)には、図面とともに次の事項が記載されている。(下線は当審付与。)
ア.「[4]R10000のパイプライン

…(中略)…R10000は,演算器として2個の整数ALU,アドレス計算(ロード/ストア)ユニット,浮動小数点加算器,浮動小数点乗算器,浮動小数点除算器(平方根器を兼ねる)を持つ。各演算器には,それぞれ16エントリからなる整数キュー,アドレスキュー,浮動小数点キューが接続されている。命令は各キューから対応する演算器に対してアウトオブオーダーに発行される。R10000は1サイクルで,4命令を命令キャッシュからリードし,最大4命令をデコード/レジスタリネーム可能である。デコードされた命令は32エントリのアクティブリストと呼ばれるリオーダーバッファに格納され,インオーダーリタイア(R10000ではグラジュエート=卒業と呼ぶ)を管理する。
…(中略)…
図15にR10000のパイプラインを示す。一応,7ステージパイプラインの体裁をとっているが,命令のデコード/レジスタリネーム/キューへの格納(ステージ1,ステージ2)までと,発行/実行/結果の格納(ステージ3?ステージ7)までのステージは独立に動作する分離(decoupled)方式である。アウトオブオーダー方式のスーパスカラとしては珍しくない。
…(中略)…
なお,整数キューとアドレスキューは,基本的には,整数レジスタが対象なので,2種類もつ必然性は少ない。…(中略)…

1)命令フェッチ

各サイクルごとに,R10000は32Kバイトの2ウェイセットアソシアティブ構成の命令キャッシュから4命令をフェッチできる。命令キャッシュに格納されている命令は37ビット長で…(中略)…この余分な5ビットによって各命令を分類し,その命令が実行されるユニット情報を付加することで命令デコードを効率的に行える。
…(中略)…

2)命令デコード

命令キャッシュからフェッチされた命令は,レイテンシーが2ステージの命令デコーダに渡される。実際のデコードは最初のステージで行われ,2番目のステージではレジスタリネームが行われる。
…(中略)…

3)命令実行

R10000は各サイクルごとに,最大4命令をフェッチし,最大4命令をグラジュエートするが,その中間には5つの実行ユニットがある。このため,可能性としては,各サイクルごとに5命令を同時発行,実行,コンプリートできる。
…(中略)…
機能ユニットは2つの64ビット整数演算ALU,ひとつのロード/ストアユニット,2つのFPUからなる。FPUのうち,ひとつは加減算用,残りは乗除算/平方根用である。
…(中略)…
2つの64ビットALUはほとんど同一である。ただし,乗除算は一方のALUでしか処理できない。他方のユニットには分岐予測の結果を確かめる論理がある。シフトも一方のユニットでしか実行できない。ロード/ストアユニットはすべてのアドレス計算,アドレス変換を処理する。
…(中略)…
ある条件下では,R10000は1サイクルで最大5命令をキューからアウトオブオーダーに発行できる。しかし,多くの場合は,命令の依存性に応じて1?4命令を発行する。」(266頁右欄下から6行?268頁右欄22行)

イ.「●スーパスカラの動作例(R10000の場合)

ここでは,単純なプログラムを用いて,R10000のスーパスカラパイプラインがどのように動作するかを示す。簡略化のため,整数命令のみを対象とし,…(中略)…なお,ここでは整数キューとアドレスキューも共通の命令キューとして考えている。
図16-1にサンプルプログラムと,そのプログラムが実行される場合のパイプラインのタイミングを示す。
…(中略)…
「dec」は各命令に対するデコードサイクルを意味する。各サイクルで最大4命令がデコード可能である。命令デコードはプログラムの順序(インオーダー)でデコードされる。図示されてはいないが,これらの命令はひとつ前のサイクルで命令キャッシュからフェッチされていることが前提である。また,このサイクルで論理レジスタを物理レジスタに割り付ける作業(レジスタリネーム)が行われる。
…(中略)…
「wait」は命令が実行待ちキューの中で待っていることを示す。具体的には直前の命令のオペランドが使用可能になるのを待っている。
「issue」は命令のすべてのオペランドが使用可能になり,命令が実行ユニットに発行されることを示す。つまり、オペランドが使用可能になった命令からアウトオブオーダーに発行される。
…(中略)…
「ready」はすべてのオペランドが使用可能になっているが,その命令を実行する演算器が使用中のため,実行開始が待たされていることを示す。…(中略)…図16-1では物理レジスタはp0からp8がすでに割り当てられた状態(適当にかき混ぜられている)にあり,フリーリストにはp9からp15が残っている。
…(中略)…
1)サイクル1(1A,1B,1C,1D)

R10000では通常では1サイクルで最大4命令がデコード/レジスタリネームされる。ここでは,命令1,命令2,命令3,命令4が同時にデコードされ命令キューに格納される。この様子を図16-2に示す。

命令1(DSLL)…(中略)…なお,この命令(シフト命令)はALU1のみで実行可能である。

命令2(LW)…(中略)…依存性を持っている。このためp9は命令キューの中ではビジー(bsy)とマークされる。…(中略)…この命令(ロード命令)はロード/ストアユニットのみで実行可能である。

命令3(ADDI)…(中略)…このレジスタは先行する命令と依存性がなく,命令キューの中ではレディ(rdy)とマークされる。…(中略)…この命令(加算)はALU1またはALU2で実行可能である。

命令4(SUB)…(中略)…片方のr1はp1に割り当てられており,依存性はない(rdy)。もう片方のr5はp11に割り当てられており,これは先行する命令に依存する(bsy)。…(中略)…この命令(減算)はALU1またはALU2で実行可能である。

2)サイクル2(2A,2B,2C)

…(中略)…図16-3に示すように,すべてのソースオペランド(Operand-AとOperand-B)が両方レディになっている,Tag(命令に付けられている番号)が0と2の命令は発行可能である。Tag0はALU1に発行される。Tag2はALU1とALU2の両方に発行可能であるが,いまは(空いている)ALU2に発行される。これらの命令に対するレジスタオペランドはサイクル2の後半でレジスタファイルからリードされる。そして,これらの命令はサイクル2の終わりに命令キューから削除される。他の2命令はソースオペランドが有効(レディ)になるまで待っている。
同時に,サイクル2では新たに3命令がデコード/レジスタリネームされる。…(中略)…

命令5(XORI)…(中略)…ソースオペランドであるr1はp1に割り当てられている。このレジスタに依存性はない。論理デスティネーションレジスタであるr2はフリーリストから物理レジスタp13に割り当てられる。そして,古い割り当てであるp2はアクティブリストに書き込まれる。この命令(排他的論理和)はALU1とALU2の両方で実行可能である。

命令6(BEQ)…(中略)…この命令(条件分岐)はALU1のみで実行可能である。

命令7(NOP=SLL)…(中略)…NOPはALU1とALU2の両方で実行可能になっている。…(中略)…

3)サイクル3(3A,3B)

図16-4に示すように,命令キューはサイクル3の開始時点で5命令を含んでいる。…(中略)…サイクル2の間に発行された2命令(Tag0とTag2)はどちらも1サイクルのレイテンシなので,その物理デスティネーションレジスタであるp9とp11はもはやビジーではない。値をほかのレジスタにフォワーディングできるためである。このため,これまでビジーだったレジスタがレディとなり,Tagが1,3,4,6の4命令が発行可能になる。Tag1はアドレス計算ユニットに発行される。Tag3はALU1に発行される。Tag4はALU2に発行される。Tag6もレディであるが,このサイクルでは発行できない。なぜなら,他の命令がすでに両方のALUに発行されているためである。…(中略)…

命令10(AND)…(中略)…この命令(AND)はALU1とALU2で実行可能である。…(中略)…

4)サイクル4(4G)

図16-5に示されるように,サイクルの最初では命令キューは4命令を含んでいる。…(中略)…サイクル3の間に発行された2つのALU命令(Tag3とTag4)はそれぞれ1サイクルのレイテンシもっている。このため,その物理デスティネーションレジスタであるp12とp13はもはやビジーでない。しかし,ロード命令(Tag1)は2サイクルのレイテンシである(AddressステージとDCacheステージ)。そのためp10はビジーのままである。Tag6,Tag7はサイクル4で発行する準備ができた。Tag6はALU1に,Tag7はALU2に発行される。」(269頁右欄28行?273頁右欄2行)

ウ.「●おわりに

スーパースカラの概要について…(中略)…MPUの複数の命令の(特にアウトオブオーダーな)同時実行の方式をR10000をモデルに」(275頁左欄下から11行?6行)

【R10000とは別の事例】
エ.「[3]P6(PentiumII)のパイプライン
…(中略)…アウトオブオーダーなスーパースカラ構造を採っている。
…(中略)…
リザベーションステーションは,ソースオペランドが使用可能になったか,実行ユニットが空いたか,依存性が解消されたかを調べて,用意ができたマイクロOPをアウトオブオーダーに発行する。」(264頁中欄下から9行?265頁中欄18行)

オ.「



カ.「



キ.「



ク.「



引用文献1に記載された事項を検討する。

(ア)ア.の「R10000は,演算器として2個の整数ALU,アドレス計算(ロード/ストア)ユニット,浮動小数点加算器,浮動小数点乗算器,浮動小数点除算器(平方根器を兼ねる)を持つ」との記載、「ALUはほとんど同一である。ただし,乗除算は一方のALUでしか処理できない。他方のユニットには分岐予測の結果を確かめる論理がある。シフトも一方のユニットでしか実行できない」との記載から、「処理可能な演算がそれぞれ異なる第1の整数演算器(ALU)と第2の整数演算器(ALU)と、ロード/ストアユニットと、2つのFPUを持」つ「R10000プロセッサ」をよみとることができる。
また、R10000は、ア.の「命令のデコード/レジスタリネーム/キューへの格納(ステージ1,ステージ2)」との記載、イ.の「ここでは整数キューとアドレスキューも共通の命令キューとして考えている」、「最大4命令がデコード可能」との記載、ア.の「命令は各キューから対応する演算器に対してアウトオブオーダーに発行」するとの記載から、R10000は、「命令をデコード/レジスタリネームし命令キューへデコード/レジスタリネームされた命令を格納し、命令キューから対応する演算器に対して命令をアウトオブオーダーに発行する手段」を有することをよみとることができる。
また、R10000は、ア.の「命令キャッシュに格納されている命令」の「余分な5ビットによって各命令を分類し,その命令が実行されるユニット情報を付加することで命令デコードを効率的に行える」との記載、及び、キ.?ケ.の図16-3?図16-5を参照すると、命令キューには「Unit(ユニット)」の情報、例えば「ALU」が付加されていることから、命令には、「命令デコードにより(デコードされた命令には)デコードされた命令が実行されるユニット情報が付加される」ことをよみとることができる。
これらを併せると、「処理可能な演算がそれぞれ異なる第1の整数演算器(ALU)と第2の整数演算器(ALU)と、ロード/ストアユニットと、2つのFPUを持ち、命令をデコード/レジスタリネームし、デコードされた命令が実行されるユニット情報が付加された命令を命令キューへ格納し、命令キューから対応する演算器に対して命令をアウトオブオーダーに発行する手段を含むR10000」をよみとることができる。

(イ)イ.の「命令3(ADDI)」、「この命令(加算)はALU1またはALU2で実行可能」であるとの記載、キ.の図16-3に示されるように(ADDI命令はTag2の番号の命令である。)、「Tag2はALU1とALU2の両方に発行可能であるが,いまは(空いている)ALU2に発行」(ALU1は空いていない。)されるとの記載から、「該手段は、前記実行されるユニット情報(ALU1ユニット)に基づいて、当該特定の演算器(ALU1)とは異なる演算器であって、命令キューに空きが存在する演算器(ALU2;ALU#2)に前記デコードされた命令を発行するもの」であることをよみとることができる。

(ウ)ア.の「各演算器には,それぞれ16エントリからなる整数キュー,アドレスキュー,浮動小数点キューが接続されている」、「命令のデコード/レジスタリネーム/キューへの格納」との記載、イ.の「なお,ここでは整数キューとアドレスキューも共通の命令キューとして考えている」との記載に関し、前記「エントリ」とは、命令キューの各行のデータ(例えば、キ.の図16-3のTag2の命令{Unit;ALU,Function;ADDI,Operand-A;rdy p2,Operand-B;rdy -p2,…(中略)…,Destination;p11})を指すことは技術的常識であり、前記各行の情報はエントリである点をふまえると、命令のデコード/レジスタリネームを行う「命令デコードからエントリとして」共通の命令キューに格納されることをよみとることができる。
各エントリは、前記(イ)で言及したユニット情報(Unit;ALU等)やrdy情報やbsy情報を持つことはキ.の図16-3などの記載から明らかである。
また、サンプルプログラム(オ.の図16-1,特にADDI,SUB,XORI)において、特に、Tag2?4が付された命令(命令3(ADDI)と命令4(SUB)と命令5(XORI))について、イ.の「命令3(ADDI)」、「このレジスタは先行する命令と依存性がなく,命令キューの中ではレディ(rdy)とマークされる」、ユニット情報がALUであるから「この命令(加算)はALU1またはALU2で実行可能」であるとの記載、「命令4(SUB)」はそのエントリに関し「片方のr5はp11に割り当てられており,これは先行する命令に依存する(bsy)」との記載、「命令5(XORI)」は、そのエントリにおけるユニット情報がALUであるから「この命令(排他的論理和)はALU1とALU2の両方で実行可能である」との記載、特にカ.の図16-3における命令キューのTag2とTag3のエントリとキ.の図16-4における命令キューのTag3とTag4とTag5のエントリを参照すれば、「Tag2の命令(ADDI)と前記Tag2の命令(ADDI)に対応するユニット情報(ALU)、前記Tag2の命令(ADDI)の演算結果(p11)に依存するp11(bsy)が割り当てられたTag3の命令(SUB)と前記Tag3の命令(SUB)に対応するユニット情報(ALU)、前記Tag2の命令(ADDI)の演算結果(p11)に依存関係がないTag4の命令(XORI)と前記Tag4の命令(XORI)に対応するユニット情報(ALU)のぞれぞれが(サイクル2からサイクル3において)入力された場合、前記Tag3の命令(SUB)に対応するユニット情報(ALU)と前記Tag4の命令(XORI)に対応するユニット情報(ALU)とが前記特定の演算器(ALU1)でのみ実行可能な命令であることを示さないとき、」をよみとることができる。
また、発行に関し、イ.の「サイクル2」において「Tag2はALU1とALU2の両方に発行可能であるが,いまは(空いている)ALU2に発行」するとの記載、「サイクル3」において「サイクル2の間に発行された2命令(Tag0とTag2)は」「その物理デスティネーションレジスタであるp9とp11はもはやビジーではない」ので「Tagが1,3,4,6の4命令が発行可能」になり「Tag3はALU1に発行」され「Tag4はALU2に発行」されるとの記載、当該Tag3はALU1にTag4はALU2に発行することに関し、Tag3,4のいずれもユニット情報がALUであるからいずれもALU1またはALU2で実行可能であり、キ.の図16-4にTag3はALU#2(ALU2)に発行される様子が図示されている如く、Tag3はALU2に発行しTag4はALU1に発行可能であると解され、ア.のR10000は「各サイクルごとに(最大)5命令を同時発行」できる旨の記載とから、「前記発行手段が、サイクル2で前記Tag2の命令(ADDI)を前記ALU1とALU2の両方に発行可能であるが,いまは(空いている)ALU2に発行後、サイクル3で前記Tag3の命令(SUB)の前記第1の整数演算器(ALU)への発行と前記Tag4の命令(XORI)の前記第2の整数演算器(ALU)への発行とを同時に行うこと」をよみとることができる。これらを併せると「命令デコードからエントリ」として、「Tag2の命令(ADDI)と前記Tag2の命令(ADDI)に対応するユニット情報(ALU)、前記Tag2の命令(ADDI)の演算結果(p11)に依存するp11(bsy)が割り当てられたTag3の命令(SUB)と前記Tag3の命令(SUB)に対応するユニット情報(ALU)、前記Tag2の命令(ADDI)の演算結果(p11)に依存関係がないTag4の命令(XORI)と前記Tag4の命令(XORI)に対応するユニット情報(ALU)のぞれぞれが(サイクル2からサイクル3において)入力された場合、前記Tag3の命令(SUB)に対応するユニット情報(ALU)と前記Tag4の命令(XORI)に対応するユニット情報(ALU)とが前記特定の演算器(ALU1)でのみ実行可能な命令であることを示さないとき、前記発行手段が、サイクル2で前記Tag2の命令(ADDI)を前記ALU1とALU2の両方に発行可能であるが,いまは(空いている)ALU2に発行後、サイクル3で前記Tag3の命令(SUB)の前記第1の整数演算器(ALU)への発行と前記Tag4の命令(XORI)の前記第2の整数演算器(ALU)への発行とを同時に行うこと」をよみとることができる。

(ア)?(ウ)によれば、引用文献1には、整数キューとアドレスキューも共通の命令キューとしMPUの複数の命令の(特にアウトオブオーダーな)同時実行の方式を提供すること(イ.ウ.参照)を目的とした次の発明(以下、「引用文献1発明」と呼ぶ。)が示されている。

「処理理可能な演算がそれぞれ異なる第1の整数演算器(ALU)と第2の整数演算器(ALU)と、ロード/ストアユニットと、2つのFPUを持ち、命令をデコード/レジスタリネームし、デコードされた命令が実行されるユニット情報が付加された命令を命令キューへ格納し、命令キューから対応する演算器に対して命令をアウトオブオーダーに発行する手段を含むR10000プロセッサであって、
該手段は前記実行されるユニット情報(ユニットALU1)に基づいて、当該特定の演算器(ALU1)とは異なる演算器であって、命令キューに空きが存在する演算器(ALU2;ALU#2)に前記デコードされた命令を発行するものであって、
命令デコードからエントリとして、Tag2の命令(ADDI)と前記Tag2の命令(ADDI)に対応するユニット情報(ALU)、前記Tag2の命令(ADDI)の演算結果(p11)に依存するp11(bsy)が割り当てられたTag3の命令(SUB)と前記Tag3の命令(SUB)に対応するユニット情報(ALU)、前記Tag2の命令(ADDI)の演算結果(p11)に依存関係がないTag4の命令(XORI)と前記Tag4の命令(XORI)に対応するユニット情報(ALU)のぞれぞれが(サイクル2からサイクル3において)入力された場合、前記Tag3の命令(SUB)に対応するユニット情報(ALU)と前記Tag4の命令(XORI)に対応するユニット情報(ALU)とが前記特定の演算器(ALU1)でのみ実行可能な命令であることを示さないとき、前記発行手段が、サイクル2で前記Tag2の命令(ADDI)を前記ALU1とALU2の両方に発行可能であるが,いまは(空いている)ALU2に発行後、サイクル3で前記Tag3の命令(SUB)の前記第1の整数演算器(ALU)への発行と前記Tag4の命令(XORI)の前記第2の整数演算器(ALU)への発行とを同時に行うことを特徴とする各キューから対応する演算器に対して命令をアウトオブオーダーに発行するものであるR10000プロセッサ。」

(2) 引用文献2
本願出願前に頒布され原審で引用された刊行物である特開2002-55814号公報(以下、「引用文献2」という。)には、図面とともに次の事項が記載されている。

「【0036】発行部29は、互いに並列に動作する複数の発行制御回路と、それらの発行制御回路の出力を切り替える選択回路を備える。各発行制御回路は、実行可能な演算の種類が異なる複数の演算装置のそれぞれに対して、命令を優先的に発行する制御を行う。また、選択回路は、各演算装置用の命令スロットの空き量や過去に発行された命令数の学習結果に応じて、複数の発行制御回路のうちの最適なものを選択し、その発行制御回路の出力に基づいて発行先を決定する。
…(中略)…
【0052】これらのライトポートは、リザベーションステーション57、58の入力側に設けられ、発行制御回路52の出力信号は、各演算装置の各ライトポートに割り当てられる命令を選択するために用いられる。…(中略)…図5は、図3の発行制御回路53の具体例を示している。発行制御回路53は、A優先の発行制御回路52の入出力信号を図5に示すように入れ替えることで、実現される。」

3.3 対比
本件補正発明と引用文献1発明とを対比する。
(1)引用文献1発明の「命令キュー」は、引用文献2や、ウ.の「リザベーションステーション」なる用語の説明を参酌するまでもなく「リザベーションステーション」と呼べるものである。また、引用文献1発明の「デコードされた命令が実行されるユニット情報」は、個別の演算器、個別でない演算器(例えばALUはALU1又はALU2)を示すことのいずれも含み、本件補正発明の「第1の演算器と第2の演算器のうち特定の演算器でのみ実行可能な命令であるか否かを示す実行可能フラグ」と技術的な差異はない。これらをふまえると,引用文献1発明の「処理可能な演算がそれぞれ異なる第1の整数演算器(ALU)と第2の整数演算器(ALU)と、ロード/ストアユニットと、2つのFPUを持ち、命令をデコード/レジスタリネームし、デコードされた命令が実行されるユニット情報が付加された命令を命令キューへ格納し、命令キューから対応する演算器に対して命令をアウトオブオーダーに発行する手段」と本件補正発明の「処理可能な演算がそれぞれ異なる第1の演算器と第2の演算器と、命令デコーダから、デコード済みの命令と前記デコード済みの命令が前記第1の演算器と前記第2の演算器のうち特定の演算器でのみ実行可能な命令であるか否かを示す実行可能フラグとが入力されるリザベーションステーションとに接続されたプライオリティ回路」とは、上位概念において「処理可能な演算がそれぞれ異なる第1の演算器と第2の演算器と、命令デコーダから、デコード済みの命令と前記デコード済みの命令が前記第1の演算器と前記第2の演算器のうち特定の演算器でのみ実行可能な命令であるか否かを示す実行可能フラグとが入力されるリザベーションステーションとに接続された手段」である点で共通する。

(2)引用文献1発明は「前記実行されるユニット情報に基づいて、当該特定の演算器(ALU1)とは異なる演算器であって、命令キューに空きが存在する演算器(ALU2;ALU#2)に前記デコードされた命令を発行する」のであるから本件補正発明の「前記実行可能フラグに基づいて、当該特定の演算器とは異なる演算器であって、キューに空きが存在する演算器に前記デコード済みの命令をディスパッチするディスパッチ手段」に相当するものを有していることは明らかである。

(3)引用文献1発明の「Tag2の命令(ADDI)」、「Tag3の命令(SUB)」、「Tag4の命令(XORI)」は、それぞれ本件補正発明の「第1の命令」「第2の命令」「第3の命令」に相当する。この点をふまえると、引用文献1発明の「命令キュー」に基づき「命令をアウトオブオーダーに発行する手段」が、「命令デコードからエントリとして、Tag2の命令(ADDI)と前記Tag2の命令(ADDI)に対応するユニット情報(ALU)、前記Tag2の命令(ADDI)の演算結果(p11)に依存するp11(bsy)が割り当てられたTag3の命令(SUB)と前記Tag3の命令(SUB)に対応するユニット情報(ALU)、前記Tag2の命令(ADDI)の演算結果(p11)に依存関係がないTag4の命令(XORI)と前記Tag4の命令(XORI)に対応するユニット情報(ALU)のぞれぞれが(サイクル2からサイクル3において)入力された場合、前記Tag3の命令(SUB)に対応するユニット情報(ALU)と前記Tag4の命令(XORI)に対応するユニット情報(ALU)とが前記特定の演算器(ALU1)でのみ実行可能な命令であることを示さないとき、前記発行手段が、サイクル2で前記Tag2の命令(ADDI)を前記ALU1とALU2の両方に発行可能であるが,いまは(空いている)ALU2に発行後、サイクル3で前記Tag3の命令(SUB)の前記第1の整数演算器(ALU)への発行と前記Tag4の命令(XORI)の前記第2の整数演算器(ALU)への発行とを同時に行うこと」と本件補正発明の「前記リザベーションステーションが前記命令デコーダからエントリとして、第1の命令と前記第1の命令に対応する第1の実行可能フラグ、前記第1の命令の演算結果に依存関係がある第2の命令と前記第2の命令に対応する第2の実行可能フラグ、前記第1の命令の演算結果に依存関係がある第3の命令と前記第3の命令に対応する第3の実行可能フラグのぞれぞれが入力された場合、前記第2の実行可能フラグと前記第3の実行可能フラグとが前記特定の演算器でのみ実行可能な命令であることを示さないとき、前記ディスパッチ手段が、前記第1の命令を前記第1の演算器にディスパッチ後、前記第2の命令の前記第1の演算器へのディスパッチと前記第3の命令の前記第2の演算器へのディスパッチとを同時に行うこと」とは「前記リザベーションステーションが前記命令デコーダからエントリとして、第1の命令と前記第1の命令に対応する第1の実行可能フラグ、前記第1の命令の演算結果に依存関係がある第2の命令と前記第2の命令に対応する第2の実行可能フラグ、第3の命令と前記第3の命令に対応する第3の実行可能フラグのぞれぞれが入力された場合、前記第2の実行可能フラグと前記第3の実行可能フラグとが前記特定の演算器でのみ実行可能な命令であることを示さないとき、前記ディスパッチ手段が、前記第1の命令を前記第1の演算器にディスパッチ後、前記第2の命令の前記第1の演算器へのディスパッチと前記第3の命令の前記第2の演算器へのディスパッチとを同時に行うこと」で共通する。

(4)引用文献1発明の「命令キューから対応する演算器に対して命令をアウトオブオーダーに発行する手段」と本件補正発明の「プライオリティ回路」とは、いずれも順序(オーダー)を決めることに関わるものであり、両者は上位概念において「順序決定手段」である点で共通する。

(1)?(4)の対比によれば、引用文献1発明における発行手段と本件補正発明とは次の点で一致する。

〈一致点〉
「処理可能な演算がそれぞれ異なる第1の演算器と第2の演算器と、命令デコーダから、デコード済みの命令と前記デコード済みの命令が前記第1の演算器と前記第2の演算器のうち特定の演算器でのみ実行可能な命令であるか否かを示す実行可能フラグとが入力されるリザベーションステーションとに接続された手段であって、
前記実行可能フラグに基づいて、当該特定の演算器とは異なる演算器であって、キューに空きが存在する演算器に前記デコード済みの命令をディスパッチするディスパッチ手段を有し、
前記リザベーションステーションが前記命令デコーダからエントリとして、第1の命令と前記第1の命令に対応する第1の実行可能フラグ、前記第1の命令の演算結果に依存関係がある第2の命令と前記第2の命令に対応する第2の実行可能フラグ、第3の命令と前記第3の命令に対応する第3の実行可能フラグのぞれぞれが入力された場合、前記第2の実行可能フラグと前記第3の実行可能フラグとが前記特定の演算器でのみ実行可能な命令であることを示さないとき、前記ディスパッチ手段が、前記第1の命令を前記第1の演算器にディスパッチ後、前記第2の命令の前記第1の演算器へのディスパッチと前記第3の命令の前記第2の演算器へのディスパッチとを同時に行うことを特徴とする順序決定手段。

しかして、引用文献1発明と本件補正発明とは次の点で相違する。
〈相違点1〉
「順序決定手段」が、本件補正発明は「プライオリティ回路」であるのに対し、引用文献1発明は、「命令キューから対応する演算器に対して命令をアウトオブオーダーに発行する手段を含むR10000プロセッサ」である点。
〈相違点2〉
第3の命令に関し、本件補正発明が「前記第1の命令の演算結果に依存関係がある」第3の命令であるのに対し、引用文献1発明は、前記Tag2の命令(ADDI)の演算結果(p11)に依存関係が「ない」Tag4の命令(XORI)である点。

3.4 相違点についての当審判断
〈相違点1〉について
引用文献1発明における、命令キューの中から「アウトオブオーダーに発行する」こと自体、発行される命令が優先的に発行される意味合いをもち、しかも、命令の発行に「回路」を用いる技術は、引用文献2の「A優先の発行制御回路」に示されているように技術的常識のものである。
してみれば、引用文献1発明における「アウトオブオーダーに発行する手段」を、「プライオリティ回路」とすることは、前記引用文献2の技術を参酌するまでもなく当業者が容易になし得ることである。
そして、発明を「プロセッサ」として表現することと「回路」として表現することは単なる表現の相違にすぎない。

〈相違点2〉について
引用文献1のサンプルプログラムに係るク.の図16-5におけるTagが5である命令とTagが7である命令が共に同じソースオペランド(物理レジスタp13)を有し、そのソースオペランドがキ.の図16-4におけるTagが4である命令のデスティネーションオペランド(物理レジスタp13)であることのように、1つの先行する命令の演算結果に依存関係がある後続の命令が複数存在することは、当然に想定されることであり、引用文献1発明が実行するプログラムをこのようなプログラムとすることが阻害される合理的な理由もなく、このようなプログラムに限定することで何ら新たな作用効果が生じるものでもない。
してみれば、第3の命令に関し、「前記第1の命令の演算結果に依存関係がある」第3の命令であると成すことは、単にプログラムを特定するものにすぎず当業者が適宜になし得ることである。

そして、本件補正発明の構成により奏する効果も引用文献1発明および引用文献2に示される技術常識から当然予測される範囲内のもので格別顕著なものとは認められない。
したがって、本件補正発明は当業者が引用文献1発明および引用文献2に示される技術常識に基いて容易に発明をすることができたものである。

3.5 小括
以上のとおり、本件補正発明は、特許出願前に日本国内又は外国において、頒布された刊行物に記載された発明又は電気通信回線を通じて公衆に利用可能となった発明に基いて当業者が容易に発明をすることができたものであるから、特許法第29条第2項の規定により、独立して特許を受けることができないものである。

4. むすび
したがって、本件補正は、特許法第17条の2第6項で準用する同法第126条第7項の規定に違反するので、同法第159条第1項において読み替えて準用する同法第53条第1項の規定により却下すべきものである。

よって、上記補正却下の決定の結論のとおり決定する。

第3 本願発明について
(1)本願発明
平成26年2月10日付の手続補正は前記のとおり却下されたので、本願の請求項1に係る発明は、平成25年10月25日付の手続補正書により補正された特許請求の範囲の請求項1に記載されたとおりの次の事項により特定されるものである。(再掲する。以下「本願発明」という。)

「命令デコーダより特定の演算器でのみ実行可能な命令であることを示す実行可能フラグを入力されるリザベーションステーションと、処理可能な演算が異なる複数の演算器とに接続されたプライオリティ回路であって、
前記実行可能フラグに基づいて、当該特定の演算器とは異なる演算器であって、キューに空きが存在する演算器に命令をディスパッチするディスパッチ手段を有し、
前記リザベーションステーションが前記命令デコーダから入力されたエントリとしての命令およびその前記実行可能フラグを前記リザベーションステーションから入力することを特徴とするプライオリティ回路。」

(2)引用文献
原審の拒絶の理由に引用された、本願出願前に頒布された刊行物である前記引用文献1、2には、前記第2の3.2(1)及び(2)で摘記した事項が記載されている。

(3)対比・判断
本願発明は、前記第2の「2. 本件補正における補正の目的について」の判断で検討した本件補正発明における発明特定事項である、「処理可能な演算がそれぞれ異なる第1の演算器と第2の演算器と、命令デコーダから、デコード済みの命令と前記デコード済みの命令が前記第1の演算器と前記第2の演算器のうち特定の演算器でのみ実行可能な命令であるか否かを示す実行可能フラグとが入力されるリザベーションステーションとに接続されたプライオリティ回路」、「前記デコード済みの命令」、「前記リザベーションステーションが前記命令デコーダからエントリとして、第1の命令と前記第1の命令に対応する第1の実行可能フラグ、前記第1の命令の演算結果に依存関係がある第2の命令と前記第2の命令に対応する第2の実行可能フラグ、前記第1の命令の演算結果に依存関係がある第3の命令と前記第3の命令に対応する第3の実行可能フラグのぞれぞれが入力された場合、前記第2の実行可能フラグと前記第3の実行可能フラグとが前記特定の演算器でのみ実行可能な命令であることを示さないとき、前記ディスパッチ手段が、前記第1の命令を前記第1の演算器にディスパッチ後、前記第2の命令の前記第1の演算器へのディスパッチと前記第3の命令の前記第2の演算器へのディスパッチとを同時に行うことを特徴とするプライオリティ回路」なる限定(下線部)を省いたものである。
そうすると、本願発明の構成要件をすべて含み、さらに他の構成要件を付加したものに相当する本件補正発明が、前記第2の3.に記載したとおり、引用文献1発明および引用文献2の技術に基いて、当業者が容易に発明をすることができたものであるから、本願発明も、同様の理由により、引用文献1発明および引用文献2の技術に基いて当業者が容易に発明をすることができたものである。

(4)むすび
以上のとおり、本願発明は、特許出願前に日本国内又は外国において、頒布された刊行物に記載された発明又は電気通信回線を通じて公衆に利用可能となった発明に基いて当業者が容易に発明をすることができたものであるから、特許法第29条第2項の規定により特許を受けることができないものであり、他の請求項について検討するまでもなく、本願は、拒絶すべきものである。

よって、結論のとおり審決する。
 
審理終結日 2014-10-07 
結審通知日 2014-10-14 
審決日 2014-10-27 
出願番号 特願2009-154374(P2009-154374)
審決分類 P 1 8・ 121- Z (G06F)
最終処分 不成立  
前審関与審査官 清木 泰  
特許庁審判長 辻本 泰隆
特許庁審判官 山崎 達也
小林 大介
発明の名称 プライオリティ回路、演算処理装置及び演算処理方法  
代理人 酒井 宏明  

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