運営:アスタミューゼ株式会社
  • ポートフォリオ機能


追加

関連審決 不服2014-8269
元本PDF 裁判所収録の全文PDFを見る pdf
事件 平成 27年 (行ケ) 10148号 審決取消請求事件

原告 ボードオブ リージエンツ, ユニバーシテイ オブ テキ サス システム
同訴訟代理人弁護士 森ア博之
同 弁理士 稲葉良幸 土屋徹雄 大石幸雄
被告特許庁長官
同 指定代理人石井茂和 高木進 相崎裕恒 冨澤武志
裁判所 知的財産高等裁判所
判決言渡日 2016/08/03
権利種別 特許権
訴訟類型 行政訴訟
主文 1 原告の請求を棄却する。
2 訴訟費用は原告の負担とする。
3 この判決に対する上告及び上告受理申立てのための付加期間を30日と定める。
事実及び理由
請求
特許庁が不服2014-8269号事件について平成27年3月24日にした審決を取り消す。
事案の概要
1 特許庁における手続の経緯等 (1) 原告は,平成22年6月11日,発明の名称を「分散型プレディケート予測を実現するための方法,システム,およびコンピュータによってアクセス可能な媒体」とする特許出願をしたが(特願2012-522834号。優先日:平成21年9月9日,優先権主張国:米国。請求項数20。以下「本願」という。甲1),平成25年12月27日付けで拒絶査定を受けた(甲7)。
(2) 原告は,平成26年5月7日,これに対する不服の審判を請求するとともに,特許請求の範囲を補正した(以下「本件補正」という。請求項数15。甲2)。
(3) 特許庁は,これを不服2014-8269号事件として審理し,平成27年3月24日,「本件審判の請求は,成り立たない。」との別紙審決書(写し)記載の審決(以下「本件審決」という。)をし,その謄本は,同年4月3日,原告に送達された。
(4) 原告は,平成27年7月30日,本件審決の取消しを求めて本件訴訟を提起した。
2 特許請求の範囲の記載 本件補正後の特許請求の範囲の請求項1ないし15の記載は,次のとおりである(甲2)。以下,本件補正後の請求項1ないし15に記載された発明を,請求項の番号に従って「本願発明1」などといい,本願発明1ないし15を併せて,「本願発明」という。また,その明細書(甲1)を,図面を含めて「本願明細書」という。
なお,「/」は,原文の改行部分を示す(以下同じ。)。
【請求項1】複数のプロセッサコアを含むマルチコアプロセッサを備えるコンピューティングシステムであって,前記複数のプロセッサコアの各々がプレディケー ト予測器を備え,少なくとも1つのプレディケート予測器が,前記複数のプロセッサコアのうちの対応するプロセッサコアにマッピングされたプレディケート命令の出力を予測するように構成され,前記プレディケート命令は,命令ブロックに含まれる分岐命令から生成され,前記命令ブロックは,前記複数のプロセッサコアのうちのどのプロセッサコアが前記分岐命令を実行するのに割り当てられるかを決定するブロックアドレスを含み,前記予測は,前記分岐命令内に符号化された情報に基づき,前記分岐命令内に符号化された前記情報は,概略プレディケート経路を表す,コンピューティングシステム。
【請求項2】前記複数のプロセッサコアの少なくとも1つのプロセッサコアが,前記分岐命令を備えるアプリケーションプログラムを実行するように構成される,請求項1に記載のコンピューティングシステム。
【請求項3】コンパイラの実行により,前記分岐命令に前記情報が符号化される,請求項1に記載のコンピューティングシステム。
【請求項4】前記マルチコアプロセッサが,エクスプリジット・データ・グラフ・エグゼキューション(explicit data graph execution)マイクロアーキテクチャを備える,請求項1に記載のコンピューティングシステム。
【請求項5】前記少なくとも1つのプレディケート予測器が,基本予測器およびグローバル履歴レジスタを備え,前記予測は,前記基本予測器および前記グローバル履歴レジスタにさらに基づく,請求項1に記載のコンピューティングシステム。
【請求項6】前記グローバル履歴レジスタが,コアローカルプレディケート履歴レジスタを備え,前記コアローカルプレディケート履歴レジスタは,前記対応するプロセッサコアの前記プレディケート予測器に関するデータを記憶するように構成される,請求項5に記載のコンピューティングシステム。
【請求項7】前記グローバル履歴レジスタが,グローバルブロック履歴レジスタを備え,前記グローバルブロック履歴レジスタは,複数の命令ブロックに関する複 数のエントリを記憶するように構成され,前記複数のエントリの各々は,関連する分岐命令に対応する予測された終了コードを含む,請求項5に記載のコンピューティングシステム。
【請求項8】前記グローバル履歴レジスタが,/前記対応するプロセッサコアの前記プレディケート予測器に関するデータを記憶するように構成されるコアローカルプレディケート履歴レジスタと,/複数の命令ブロックに関する複数のエントリを記憶するように構成されるグローバルブロック履歴レジスタとを備え,/前記複数のエントリの各々は,関連する分岐命令に対応する予測された終了コードを含む,請求項5に記載のコンピューティングシステム。
【請求項9】マルチコアプロセッサ内の複数のプロセッサコアの各々に対してプレディケート予測器を使用することと,/前記複数のプロセッサコアのうちの対応するプロセッサコアにマッピングされたプレディケート命令の出力を予測することと,/を含み,/少なくとも1つのプレディケート予測器が,基本予測器およびグローバル履歴レジスタを含み,前記グローバル履歴レジスタが,複数の命令ブロックに関する複数のエントリを記憶するように構成されるグローバルブロック履歴レジスタを含み,前記複数のエントリの各々は,関連する分岐命令に対応する予測された終了コードを含み,/前記プレディケート命令は,分岐命令から生成され,前記プレディケート命令の前記出力を予測することは,前記分岐命令内に符号化された情報に基づき,前記プレディケート命令の前記出力を予測することは,前記基本予測器および前記グローバル履歴レジスタにさらに基づき,前記分岐命令内に符号化された前記情報は,概略プレディケート経路を表す,/マルチコアプロセッサ内でプレディケート予測を提供する方法。
【請求項10】前記複数のプロセッサコアの少なくとも1つのプロセッサコアによってアプリケーションプログラムを実行することをさらに含み,前記アプリケーションプログラムが,前記分岐命令を含む,請求項9に記載の方法。
【請求項11】コンパイラを用いて,前記分岐命令に前記情報を符号化すること をさらに含む,請求項9に記載の方法。
【請求項12】前記分岐命令は,命令ブロックに含まれ,前記命令ブロックは,ブロックアドレスを含み,前記ブロックアドレスを用いて,どのプロセッサコアが前記分岐命令を実行するかを決定することをさらに含む,請求項10に記載の方法。
【請求項13】マルチコアプロセッサコンピューティングシステム内でプレディケート予測を提供するためのコンピュータ実行可能命令が記憶された,コンピュータによってアクセス可能な媒体であって,処理構成が前記コンピュータ実行可能命令を実行するときに処理手順を実行するように構成され,前記処理手順が,/マルチコアプロセッサの複数のプロセッサコアの各々に対してプレディケート予測器を使用することであって,前記プロセッサコアの各々が少なくとも1つのプレディケート予測器を備える,使用することと,/前記複数のプロセッサコアのうちの対応するプロセッサコアにマッピングされたプレディケート命令の出力を予測することと,/を含み,前記プレディケート命令は,命令ブロックに含まれる分岐命令から生成され,前記プレディケート命令の前記出力を予測することは,前記分岐命令内に符号化された情報に基づき,前記命令ブロックは,前記複数のプロセッサコアのうちのどのプロセッサコアが前記分岐命令を実行するのに割り当てられるかを決定するブロックアドレスを含み,前記分岐命令内に符号化された前記情報は,概略プレディケート経路を表す,/コンピュータによってアクセス可能な媒体。
【請求項14】複数のプロセッサコアを含むマルチコアプロセッサを備えるコンピューティングシステムであって,前記複数のプロセッサコアの各々がプレディケート予測器を備え,少なくとも1つのプレディケート予測器が,前記複数のプロセッサコアのうちの対応するプロセッサコアにマッピングされたプレディケート命令の出力を予測するように構成され,前記少なくとも1つのプレディケート予測器が,基本予測器およびグローバル履歴レジスタを備え,前記グローバル履歴レジスタが,前記対応するプロセッサコアの前記プレディケート予測器に関するデータを記憶するように構成されるコアローカルプレディケート履歴レジスタと,複数の命令ブロ ックに関する複数のエントリを記憶するように構成されるグローバルブロック履歴レジスタとを備え,前記複数のエントリの各々は,関連する分岐命令に対応する予測された終了コードを含み,前記プレディケート命令は,分岐命令から生成され,前記予測は,前記分岐命令内に符号化された情報に基づき,前記予測は,前記基本予測器および前記グローバル履歴レジスタにさらに基づき,前記情報は,概略プレディケート経路を表す,/コンピューティングシステム。
【請求項15】マルチコアプロセッサ内の複数のプロセッサコアの各々に対してプレディケート予測器を使用することと,/前記複数のプロセッサコアのうちの対応するプロセッサコアにマッピングされたプレディケート命令の出力を予測することと,/を含み,/前記プレディケート命令は,命令ブロックに含まれる分岐命令から生成され,前記命令ブロックは,前記複数のプロセッサコアのうちのどのプロセッサコアが前記分岐命令を実行するのに割り当てられるかを決定するブロックアドレスを含み,前記プレディケート命令の前記出力を予測することは,前記分岐命令内に符号化された情報に基づき,前記分岐命令内に符号化された前記情報は,概略プレディケート経路を表す,/マルチコアプロセッサ内でプレディケート予測を提供する方法。
3 本件審決の理由の要旨 (1) 本件審決の理由は,別紙審決書(写し)記載のとおりである。要するに,以下のとおり,本願発明は,@その明細書の発明の詳細な説明の記載が,当業者がその実施をすることができる程度に明確かつ十分に記載したものであるとはいえず,特許法36条4項1号に規定する要件(以下「実施可能要件」ということがある。)を満たしておらず,A発明の詳細な説明に記載したものであるとはいえず,その特許請求の範囲の記載が,同条6項1号に規定する要件(以下「サポート要件」ということがある。)を満たしておらず,B明確であるとはいえず,その特許請求の範囲の記載が,同項2号に規定する要件(以下「明確性要件」ということがある。)を満たしていないから,特許を受けることができないものであって,本願 は拒絶すべきものである,というものである。
(2) 実施可能要件について 本願明細書には,「概略プレディケート経路情報」は,どのタイミングで何によって作成されたものであり,どのような形で存在する情報とされ,システム内でどのように利用されるのかについての説明がなく,その結果,本願発明は,当該「概略プレディケート経路情報」を含む分岐命令から生成されるプレディケート命令の出力予測がどのようになされるのかを,その出発時点から不知とされることとなり,当業者による発明の実施が困難である。
なお,本件審決書には,「本願の全ての請求項(請求項1乃至20)に係る発明に関して,特許法第36条第4項第1号でいう実施可能要件を満たしているとはいえず…」(本件審決書13頁)と記載されており,本件補正前の特許請求の範囲請求項1ないし20に係る発明を対象として,実施可能要件を満たすものであるか否かを判断したかのような記載となっているが,本件審決の全体の記載から,本件補正後の特許請求の範囲請求項1ないし15に係る発明について,実施可能要件を満たしていない旨を判断したものと理解することが可能であるから,上記「請求項1乃至20」は「請求項1乃至15」の誤記と認める(原告もこれを認めた。)。
(3) サポート要件について 本願明細書において,唯一,処理の具体的情報を示している箇所は,図4で図示したコアローカル履歴レジスタと予測テーブルとが連結された組合せ(【0028】,図6A)や,グローバル分岐履歴レジスタと予測テーブルとが連結された組合せ(【0029】,図6B)であるが,これらの記載のみならず,図2のうち,203及び207の2箇所でどのような処理が講じられているのかについての情報を示すことが必要である。
しかし,本願明細書には,特許請求の範囲請求項1に記載された「プレディケート予測器」に求められる予測器自体の構成及び当該予測器に与えられる情報や出力情報を特定できる記載はなく,どの請求項についても,本願発明の課題を解決でき る水準に達した記載はない。
したがって,本願発明に係る特許請求の範囲の記載は,課題を解決するための一貫した手段が適切に反映されているとはいえず,サポート要件を満たしているとはいえない。
(4) 明確性要件についてア 本件補正前の請求項2,3及び13には「プレディケート経路情報」という用語が用いられているが,このような用語を用いるだけでは「プレディケート経路情報」なるものが技術的にいかなるものであるのかが不明である(なお,本件審決では,上記用語が本件補正後のどの請求項で用いられているものか言及はないが,本件補正後の請求項1,9及び13ないし15における「情報は,概略プレディケート経路を表す,」との記載に対応するものと善解される。)。
イ 本件補正前の請求項6,8ないし10,16,18及び19には「グローバル履歴レジスタ」という用語が用いられているが,このような用語を用いるだけでは「グローバル履歴レジスタ」なるものが技術的にいかなるものであるのかが不明である。特に,どのような意味で「グローバル」であり,何の「履歴」に関するものであるのかが不明である(なお,本件審決では,上記用語が本件補正後のどの請求項で用いられているものか個別的な言及はないが,本件補正後の請求項5ないし9及び14において,「グローバル履歴レジスタ」との用語が用いられている。)。
ウ 本件補正前の請求項8,10及び18には「コアローカルプレディケート履歴レジスタ」という用語が用いられているが,このような語を用いるだけでは「コアローカルプレディケート履歴レジスタ」なるものが技術的にいかなるものであるのかが不明である。特に,どのような意味で「コアローカル」であるのかが不明である(なお,本件審決では,上記用語が本件補正後のどの請求項で用いられているものか個別的な言及はないが,本件補正後の請求項6,8及び14において,「コアローカルプレディケート履歴レジスタ」との用語が用いられている。)。
エ 本件補正前の請求項9,11及び19には「グローバルブロック履歴レジス タ」という語が用いられているが,このような語を用いるだけでは「グローバルブロック履歴レジスタ」なるものが技術的にいかなるものであるのかが不明である。
特に,どのような意味で「グローバル」であるのかが不明であり,「ブロック履歴」とは何を意味するのかが不明である(なお,本件審決では,上記用語が本件補正後のどの請求項で用いられているものか個別的な言及はないが,本件補正後の請求項7ないし9及び14において,「グローバルブロック履歴レジスタ」との用語が用いられている。)。
4 取消事由(1) 実施可能要件に係る判断の誤り(取消事由1)(2) サポート要件に係る判断の誤り(取消事由2)(3) 明確性要件に係る判断の誤り(取消事由3)
当事者の主張
1 取消事由1(実施可能要件に係る判断の誤り)について〔原告の主張〕(1) 本願明細書の記載 本願明細書には,@対象のアーキテクチャは,EDGEアーキテクチャのようなハイブリッドなデータフローのアーキテクチャであること(【0004】),Aコンパイラが,各ブロックの分岐命令に,プログラム内での分岐命令の順序にしたがって,3ビットの「終了コード」(「出口コード」ともいう。甲3「exit code」)を割り当てること(【0029】),B「概略プレディケート経路情報」は,コンパイラによって,分岐命令に符号化され,特定のブロックの具体的な分岐を識別可能であること(【0022】,【0026】),C予測器が,分岐命令に符号化された「概略プレディケート経路情報」を用いてプレディケート予測を行うこと(【0022】)が記載されている。
(2) 本願の出願時における技術常識 ア 甲9の1には,EDGEアーキテクチャにおいて,出口分岐(exit b ranch)ごとに,分岐命令に格納される3ビットの識別子が与えられることが記載されている。
イ 甲10の1には,EDGEアーキテクチャにおいて,分岐命令内に3ビットの出口番号(exit number)が符号化されることが記載されている。
ウ 甲9の1及び甲10の1の上記各記載に基づけば,「EDGEアーキテクチャにおいて,分岐命令に出口を識別する識別子を割り当て,それを分岐命令に符号化すること」は,本願の優先日前に技術常識であったということができる。
(3) 本願明細書には前記(1)の記載があり,EDGEアーキテクチャにおいて,分岐命令に出口を識別する例えば3ビットの識別子を割り当て,それを分岐命令に符号化することは,前記(2)のとおり,本願の優先日前に技術常識であったから,当業者であれば,本願の「概略プレディケート経路情報」は,出口を識別する例えば3ビットの「終了コード」(出口コード)として分岐命令に符号化された情報であると理解する。
また,本願明細書には,予測器が,分岐命令に符号化された「概略プレディケート経路情報」を用いてプレディケート予測を行うことが記載されているから(前記(1)C),当業者であれば,本願の「概略プレディケート経路情報」は,コンパイルのタイミングでコンパイラによって(【0022】),分岐命令の分岐先を,例えば3ビットの終了コード(出口コード)で表した形式で,分岐命令に符号化された情報であり(【0022】,【0026】,【0029】及び技術常識),予測器によってプレディケート予測に用いられる情報である(【0022】)と理解する。
(4) 以上によれば,本件審決における実施可能要件に係る判断は,誤りである。
〔被告の主張〕 (1) 本願発明の課題 本願明細書の記載(【0002】〜【0005】)によれば,本願発明の課題は,「(大規模な)分散型プロセッサ」で実行される「プログラムの制御フロー」において「if変換」により「分岐命令」から生成された「プレディケート命令」によ る「プレディケーション」を用いた場合に「全体に命令を分散させ」ることが可能となるように行うに当たって,「プレディケート予測を単一のユニットに集中させる」ことなく「(より正確な)プレディケート予測」を行うこと,とされている。
(2) 本願発明に係る特許請求の範囲の記載 特許請求の範囲請求項1の記載によれば,本願発明1の発明の発明特定事項は,@「マルチコアプロセッサ」に含まれた「プロセッサコア」の各々が「プレディケート予測器」を備えること,Aこの「プレディケート予測器」のうちの「少なくとも1つ」が「対応するプロセッサコアにマッピングされたプレディケート命令の出力を予測」するように構成されたものであること,B「プレディケート命令」が「分岐命令」から「生成され」ること,C「分岐命令」が「複数のプロセッサコアのうちのどのプロセッサコアが前記分岐命令を実行するのに割り当てられるかを決定するブロックアドレス」を含む「命令ブロック」に含まれること,D「前記予測(「プレディケート命令の出力」の「予測」)」が「分岐命令内に符号化された」「概略プレディケート経路を表す」「情報」に基づきなされること,等である。
上記@ないしBは,前記(1)の本願発明の課題のうち,分散型のアーキテクチャにおける「分岐命令」から生成された「プレディケート命令」による「プレディケーション」及び「プレディケート予測」に関するものであり,かつ「プレディケート予測」を「分散的に行わせる」という課題又は前提を示しているものと理解できる。
他方で,上記@ないしDにおいて,「命令ブロック」,「ブロックアドレス」及び「概略プレディケート経路」等の意義を明らかにする記載はない。また,上記A,C及びDについて,本願発明の課題に対応する課題解決手段として,これらが相互にどのような役割を果たすのかを理解できる程度に一貫した記載となっておらず,「プレディケート命令の出力」,「命令ブロック」,「ブロックアドレス」,「概略プレディケート経路」及び「(概略プレディケート経路を表す)情報」の相互の関係が明らかとなるように記載されていない。とりわけ,「概略プレディケート経路を表す」「情報」の意義と,これを用いた処理の内容が明らかでなく,上記@の 「プレディケート予測器」の機能や上記Aの「プレディケート命令の出力」の「予測」の処理内容を当業者が把握することができるように記載されたものとなっていない。
(3) 本願明細書の発明の詳細な説明の記載 ア 「概略プレディケート経路」及び「概略プレディケート経路を表す」「情報」の意義に関する記載 本願明細書の発明の詳細な説明は,「分岐命令」に「符号化」された「概略プレディケート経路情報」が,具体的にどのような情報であるのか,本願発明の課題である「正確なプレディケート予測」において,どのような機能を担うのか,が特定されるように記載されておらず,「概略プレディケーション経路情報206」と本願発明の課題の前提となる「プレディケート命令」や「プレディケーション」との関係が特定されるようにすら記載されていない。
イ 「概略プレディケート経路を表す」「情報」を用いた処理の内容に関する記載 本願明細書の発明の詳細な説明は,「概略プレディケーション経路情報206」と,本願発明の課題の前提となる「プレディケート命令」や「プレディケーション」との関係が特定されるように記載されていない。
【0026】ないし【0035】に履歴を用いた何らかの処理が記載されているとしても,「概略プレディケート経路情報」と本願発明の課題の前提となる「プレディケート命令」や「プレディケーション」との関係は依然として特定されていないから,「プレディケート命令」や「プレディケーション」との関係すら特定されない「概略プレディケート経路情報」を用いた履歴による「プレディケート予測」によって,本願発明の課題を解決することはできない。
また,本願明細書の発明の詳細な説明では,@「ローカル終了履歴」や「グローバル終了履歴」との用語は,一般的な技術用語ではないにもかかわらず,これらの技術用語の意味が特定されるように記載されていない,A「コアローカル履歴レジ スタ」と「ローカル終了履歴」とが,同じ図番401で示されており,これらが,異なるものを指すのか,一般的な理解とは異なり同じものを指すのか,が明らかでない,B「予測テーブル406〜409」はインデックスを与えられるとあるが,具体的にどのようなテーブルでどのような値を保持するのか記載されていない,C「コアローカル予測テーブル412」がいかなるテーブルで,どのような値を保持するものであるのか,理解できるように記載されていない,D「予測テーブル406〜409」から取り出された値,「コアローカル予測テーブル412」からの値にわたる加算404の符号405に基づいた「予測」とは,いかなるものであるのか,当業者が理解することができるように記載されていない。
(4) 原告の主張について ア 原告は,本願明細書の【0029】に「 出口コード」が記載されている(「終了コード」が「出口コード」と同義である)旨主張する。
しかし,日本語の「終了」と「出口」とは,必ずしも同じ意味の用語ではなく,技術的な文脈では異なる用語として用いられる場合もある。しかも,【0029】では,分岐命令に割り当てられた「終了コード」が予測の対象とされているが,「終了コード」と「プレディケート予測」との関係が不明であり,予測の対象が「プレディケート命令の出力(ないし,プレディケートの値)」である旨をいう特許請求の範囲の記載やこれが「ブロックアドレス」である旨を示す【0026】の記載とも整合しておらず,【0029】の記載が意味するところも明らかでない。
したがって,【0029】に記載された「終了コード」が「出口コード」であるとする原告の上記主張は,本願明細書の記載内容に基づかないものであって,失当である。
また,本願明細書の【0022】の記載は,抽象的な内容を示すにとどまり,この記載を根拠として,本願発明の課題を解決するための手段について実施可能な程度に具体的な記載があるということはできない。
イ 原告が技術常識を示すものとして挙げる甲9の1及び甲10の1は,いずれ も,いわゆる学術論文であって,ここで記載された内容を,発明の詳細な説明への記載を省略できるような技術常識であると,当然に取り扱うことができるようなものではない。上記各文献を参照することで,仮に原告が主張するような本願明細書の理解に達することができるとしても,これらの学術文献を参照しなければ記載の意味を特定できない本願明細書が実施可能要件を満たしたものであるとはいえない。
また,この点を措いても,上記各文献において,「分岐命令に出口を識別する例えば3ビットの識別子を割り当て,それを分岐命令に符号化する」点は,広く商用化されたプロセッサにおいて採用されたアーキテクチャとはいえないTRIPSアーキテクチャの一部として記載されているにすぎないから,上記の点が,本願明細書の発明の詳細な説明において記載を省略することが許される程度の技術常識であるということはできない。
さらに,原告は,本願明細書の【0004】及び【0021】において例示されたEDGEアーキテクチャが,上記各文献に記載されたTRIPSアーキテクチャであるかのように主張している。しかし,上記各文献においては,両者は明確に区別されているところ,「分岐命令に出口を識別する例えば3ビットの識別子を割り当て,それを分岐命令に符号化する」点は,「EDGEアーキテクチャ」を定義する特徴ではなく,そのバリエーションの一つである「TRIPSアーキテクチャ」の,「EDGEアーキテクチャ」を定義する特徴とは異なる特徴として,記載されている。
(5) 以上のとおり,本願明細書の発明の詳細な説明は,課題を解決するための手段について,当業者が実施できる程度に明確かつ十分に記載されているとはいえず,実施可能要件を満たしていない。
2 取消事由2(サポート要件に係る判断の誤り)について〔原告の主張〕 (1) 本件審決における判断は,本願明細書で実施形態として示された,「コアローカル履歴レジスタと予測テーブルとが連結された組合せ」又は「グローバル分岐 履歴レジスタと予測テーブルとが連結された組合せ」が,本願発明の課題を解決するためには必須の手段であることを前提に,本願発明に係る特許請求の範囲の記載は,これらの全ての手段を備えるものではないから,サポート要件を満たさないとするものである。
しかし,本願明細書の【0013】に記載されているように,本願明細書に記載された実施形態は,本願発明の例示的な構成にすぎず,本願発明の課題を解決するために,実施形態に示された手段の全てが必須というわけではない。
したがって,本件審決におけるサポート要件に係る判断は,誤りである。
(2) 被告の主張について 被告は,本願発明1に係る特許請求の範囲請求項1の記載が,単一のプレディケート予測器によってプレディケート予測を行う態様を包含するものであることを前提に,当該態様では,プレディケート予測を単一のユニットに集中させることなくプレディケート予測を行うという本願発明の課題を解決できない旨主張する。
しかし,請求項1には「前記複数のプロセッサコアの各々がプレディケート予測器を備え」と記載されており,複数のプロセッサコアの各々がプレディケート予測器を備えることが明確に記載されている。そして,請求項1における「少なくとも1つのプレディケート予測器が…プレディケート命令の出力を予測するように構成され」との記載は,複数のプロセッサコアの各々がプレディケート予測器を備えることを前提としたものであり,複数のプレディケート予測器の全てが予測を行わない態様を除外した記載にすぎない。
ここで,仮に常に単一のプレディケート予測器によってプレディケート予測が行われるとすれば,複数のプロセッサコアの各々にプレディケート予測器を備えた技術的意義がないこととなるのは明らかであるから,当業者であれば,請求項1は,常に単一のプレディケート予測器によってプレディケート予測が行われる態様を含むものではないと理解する。
すなわち,本願発明1は,複数のプロセッサコアの各々にプレディケート予測器 を備えたことにより,プレディケート予測を単一のユニットに集中させることなくプレディケート予測を行うことが可能な構成としたものであって,プレディケート予測を単一のユニットに集中させることなくプレディケート予測を行うという課題を解決できない態様を包含するものではない。
〔被告の主張〕 (1) 本願発明1の発明特定事項は,前記1〔被告の主張〕(2)のとおりである。
@及びAにおいて,「プロセッサコア」の各々が「プレディケート予測器」を備える一方で,プレディケート命令の出力を予測するのは,そのうちの少なくとも1つとされており,「プレディケート予測」を行う「プレディケート予測器」は,単独であっても構わない記載となっているところ,「プレディケート予測」自体は,複数のプロセッサであることを前提としたものではない(乙2,乙3の1)。
したがって,本願発明1に係る特許請求の範囲の記載は,それ自体は複数のプロセッサを前提としていない「プレディケート予測」を行う「プレディケート予測器」を複数のプロセッサに備えつつ単一の「プレディケート予測器」によって「プレディケート予測」を行う態様を包含した記載となっている。
(2) これに対し,本願明細書の発明の詳細な説明には,本願発明が,「プレディケート予測を単一のユニットに集中させる」ことなく「プレディケート予測」を行うことを課題とするものであることが記載されている。
(3) 前記(1)と(2)の記載を対比すると,特許請求の範囲に包含される,単一の「プレディケート予測器」によって「プレディケート予測」を行う態様によって,発明の詳細な説明に記載された,「プレディケート予測を単一のユニットに集中させる」ことなく「プレディケート予測」を行うという課題を解決できないことは,明らかである。
したがって,特許請求の範囲請求項1の記載は,当業者が発明の詳細な説明に記載された課題を解決できると認識できる範囲を超えて,この課題と無関係の態様をも含み得るように一般化されたものを記載したものであるから,サポート要件に違 反する。
3 取消事由3(明確性要件に係る判断の誤り)について〔原告の主張〕(1) 「プレディケート経路情報」について 前記1〔原告の主張〕のとおり,当業者であれば,本願明細書の記載及び本願の優先日前における技術常識に基づいて,本願発明における「概略プレディケート経路情報」を理解することができる。
したがって,「プレディケート経路情報」という用語についても,その技術的意味は明確である。
(2) 「グローバル履歴レジスタ」,「コアローカルプレディケート履歴レジスタ」及び「グローバルブロック履歴レジスタ」について 「グローバル履歴レジスタ」は,「コア211〜213の各々の中で更新されるグローバル履歴情報を維持」するものである(【0027】)。
そして,本願明細書において,【0028】及び図6Aには,グローバル履歴レジスタの実施例として,コア211〜213の各々に設けられたコアローカル履歴レジスタ600(グローバル履歴レジスタ601〜603)が開示されているところ,この実施例は,【0033】の「いくつかの実施例では,グローバル履歴レジスタは,コアローカルプレディケート履歴レジスタである。」との記載に対応する。
また,【0029】及び図6Bには,グローバル履歴レジスタの実施例として,コア211〜213に対して1つのグローバルブロック履歴レジスタ605が設けられた構成が開示されているところ,この実施例は,【0033】の「他の実施例では,グローバル履歴レジスタは,グローバルブロック履歴レジスタである。」との記載に対応する。
すなわち,図6Aに示すように,グローバル履歴レジスタを複数のコアのそれぞれに設けたものがコアローカル履歴レジスタであり,グローバル履歴レジスタを複数のコアで共有したものがグローバルブロック履歴レジスタである。
以上のとおり,本願明細書には,グローバル履歴レジスタ,コアローカルプレディケート履歴レジスタ及びグローバルブロック履歴レジスタの構成例が明確に記載されている。
したがって,当業者にとって,特許請求の範囲に記載された「グローバル履歴レジスタ」,「コアローカルプレディケート履歴レジスタ」及び「グローバルブロック履歴レジスタ」という用語の技術的意味は明確である。
(3) 以上によれば,本件審決における明確性要件に係る判断は,誤りである。
〔被告の主張〕(1) 「プレディケート経路情報」について 本願明細書には,「概略プレディケート経路情報」(「概略プレディケートを表す」「情報」)が具体的にどのような情報であるのか,及びこれを用いた処理の内容について,明確に記載されていない。
したがって,「プレディケート経路情報」は,本願明細書の記載を参酌しても,その技術的な意味,内容が明確であるということはできない。
(2) 「グローバル履歴レジスタ」,「コアローカルプレディケート履歴レジスタ」及び「グローバルブロック履歴レジスタ」についてア グローバル履歴レジスタ 特許請求の範囲に記載された「グローバル履歴レジスタ」とは,どのような意味で「グローバル」であり,何の「履歴」に関するものか不明であるところ,本願明細書の記載を参酌しても,どのような意味で「グローバル」であり,何の「履歴」に関するものかは記載されていない。
したがって,「グローバル履歴レジスタ」は,その技術的意味が明確であるということはできない。
イ コアローカルプレディケート履歴レジスタ 特許請求の範囲に記載された「コアローカルプレディケート履歴レジスタ」とは,どのような意味で「コアローカル」であり,何の「履歴」に関するものか不明であ るところ,本願明細書の記載を参酌しても,どのような意味で「コアローカル」であり,何の「履歴」に関するものかは記載されていない。
したがって,「コアローカルプレディケート履歴レジスタ」は,その技術的意味が明確であるということはできない。
また,特許請求の範囲請求項6には「グローバル履歴レジスタがコアローカルプレディケート履歴レジスタを備え」との記載があるが,「グローバル」と「ローカル」とは相反する語であることからも,「コアローカル」の意味するところが不明確となっている。
ウ グローバルブロック履歴レジスタ 特許請求の範囲に記載された「グローバルブロック履歴レジスタ」とは,どのような意味で「グローバル」であり,何の「履歴」に関するものか不明であるところ,本願明細書の記載を参酌しても,どのような意味で「グローバル」であり,何の「履歴」に関するものかは記載されていない。
したがって,「グローバルブロック履歴レジスタ」は,その技術的意味が明確であるということはできない。
当裁判所の判断
1 本願発明について(1) 本願発明に係る特許請求の範囲は,前記第2の2記載のとおりであるところ,本願明細書(甲1)の発明の詳細な説明には,おおむね,次の記載がある(図2,4,6A及び6Bについては,別紙本願明細書図面目録を参照。)。
ア 背景技術【0002】分散型の,ウィンドウの大きなプロセッサでは,プレディケーションは,プログラムの制御フローにおいて頻繁に変化を生じさせる分岐を,命令を保護することができるデータ値に変換するために使用される技術であり,このデータ値により,どの命令を実行しどの命令を実行しないかを決定することができる。プレディケーションによって制御フローを直線化することができ,分岐がとり得る可 能な両経路に提供される命令が折り畳まれる(to be collapsed)のを容易にし,全ての命令をフェッチし,プレディケートに応じて命令の一部のみを実行する。このモデルは,大きなコードブロックを生成して多くの実行ユニット全体に広めるには効果的であり得るが,プレディケートを用いないアーキテクチャでは分岐であったはずのプレディケートが,実行時に評価され得るという問題が生じ得る(フェッチされてからすぐに予測される分岐とは異なる)。プレディケートの評価のこの遅延により,性能が大幅に低下し得る。
【0003】現在の技術では,2つの,おそらくは望ましくない選択肢のうちの1つを採用する。1つ目のそのような技術は,プレディケーションを回避することを選び,これは,あらゆる制御判断を分岐として残し得るとともに,大規模な分散型プロセッサ全体に命令を分散させることを不可能にし得る。2つ目の選択肢は,命令をプレディケートする一方,フェッチおよびプレディケート予測を単一のユニットに集中させることであり得るが,フェッチの帯域幅が狭くなり,大規模な分散型マルチコアプロセッサ全体に命令を分散させることはやはり不可能になる。
【0004】EDGE(エクスプリジット・データ・グラフ・エグゼキューション:Explicit Data Graph Execution)アーキテクチャのようなハイブリッドなデータフローのアーキテクチャでは,制御フローには分岐とプレディケートとが混在していることがある。どの分岐がプレディケートにif変換(if-convert)され得るかを決定することは,複雑な問題になり得る。予測の難しい分岐がプレディケートされるのを好ましいものとすることができ,制御フローを十分に直線化するのに役立つ分岐がプリディケートされる。残りの制御ポイントは,分岐として残され得る。そのような区分によって,予測スキームは全ての分岐と最も予測可能なプレディケートを予測することができ,予測の難しいプレディケートの評価は遅らせて実行時に選択する。
イ 発明が解決しようとする課題 【0005】しかし,分散型のデータフローのマシンでは,完全に制御の履歴を 管理して正確なプレディケート予測を容易にすることは難しいことがある。この分野における従来の試みでは,通常,予測の難しい分岐に“if変換”を適用するコンパイラ,および,ランタイム情報の不足によりコンパイラが誤りを犯した場合の,回復するための特定のマイクロアーキテクチャ機構に依存してきた。その結果,現在知られているほとんどのデータフローマシンは,商業用途で効果的であり得る方式では,プレディケート予測を利用していない。
ウ 課題を解決するための手段 【0006】システム,方法,およびコンピュータによってアクセス可能な媒体の例が,分散型マルチコアアーキテクチャにおいてプレディケート予測を生成するために提供される。そのようなシステム,方法,およびコンピュータによってアクセス可能な媒体を用いることで,分岐命令についての概略プレディケート経路情報(approximate predicate path information)をインテリジェントに符号化することができる。この静的に生成された情報を用いることで,分散型プレディケート予測器は,信頼性の高いプレディケートの正確な予測に役立ち得る,動的なプレディケート履歴を生成することができ,同時にコア間の通信を最小にする。
エ 発明を実施するための形態 【0021】本明細書で説明されるのは,分散型マルチコアマイクロアーキテクチャのためのプレディケート予測スキームの例であり,これはプロセッサ101上で実装することができ,例えば,EDGE(explicit data graph execution)マイクロアーキテクチャとともに使用されるようになされ得る。分散型スキームの例は,分岐命令において概略プレディケート経路情報をインテリジェントに符号化するコンパイラに依存し得る。この静的に生成された情報を用いて,分散型プレディケート予測器は,信頼性の高いプレディケートの正確な予測を容易にしつつコア間の通信を低減する,動的なプレディケート履歴を生成することができる。正確かつ効率的な分散型プレディケート予測スキームの例に より,コンパイラが,例えばオーバーヘッド計算を軽減するプレディケート予測器によって,コードを積極的にプレディケートすることが容易になる。
【0022】したがって,図2に示されるように,コンピューティング環境201がコンピュータシステム100に設けられてよく,ソフトウェアアプリケーションプログラム202およびコンパイラ204を含んでもよい。アプリケーションプログラム202は命令データフロー203を生成することができ,命令データフロー203の一部または多くは,分岐命令であってよい。コンパイラ204は,概略プレディケート経路情報206によって,分岐命令205を符号化することができる。結果として得られる命令データ207は,実行のためにプロセッサ101,210に流れ得る。プロセッサ210は複数のプロセッサコア(簡単にするために,例えば3つのプロセッサコアがコア211〜213として図示される)を含んでもよく,複数のプロセッサコアの各々はプレディケート予測器214〜216の1つをそれぞれ含んでもよい。そして,これらの予測器214〜216は,コンパイラで符号化されたプレディケート経路情報206を用いて,信頼性の高いプレディケートの正確な予測を容易にする(ブロック220)。
【0026】さらに,それぞれの所有者コア211〜213のうちの1つまたは複数は,次のブロックアドレスを予測しやすくすることができる。コア211〜213のそれぞれは,完全な機能ブロック予測器214〜216の1つをそれぞれ含んでもよく,予測器は複数のコアについて同一であっても,互いに異なっていてもよい。ブロック予測器214〜216の次の1つは,どの分岐がブロックから取り出されるかを予測できる終了予測器と,予測される終了目標に基づいてブロック214〜216の次の1つのアドレスを予測できる,予測器214〜216のうち,関連する目標となる予測器とを含んでもよい。図4を参照すると,予測器214〜216の終了予測器は,2レベルのローカル予測器,グローバル予測器,および/または選択予測器を含んでもよく,これらは,ローカル終了履歴401およびグローバル終了履歴402を使用できる。終了履歴401,402は,それぞれのブロ ックの各分岐命令に対して静的に割り当てられた,概略プレディケート経路情報206を用いて,コア211〜213から生成され得る。概略プレディケート経路情報206は,分岐命令に符号化されることが可能であり,特定のブロックの具体的な分岐を識別することができる。コンパイラ204は,最初は,それぞれのブロックの分岐命令の順序に基づいて,概略プレディケーション経路情報206を割り当ててもよい。コア211〜213は,終了を用いて,(従来のアーキテクチャで使用され得るような)取得された/取得されていない情報の代わりに,関連する予測器の中でローカル履歴およびグローバル履歴を生成することができる。
【0027】コア211〜213の各々は,コアにマッピングされたプレディケート命令の出力を予測することができるプレディケート予測構成によって増強され得る。基本予測器とグローバル履歴レジスタとを含み得る,グローバル履歴に基づく予測器が,各コアで使用され得る。そのようなグローバル履歴予測器は,コア211〜213の各々の中で更新されるグローバル履歴情報を維持し,同時にコア211〜213の間での通信を減らそうとしてもよい。まず図4を参照すると,一実施例では,幾何履歴長(GEHL:geometric history length)予測器400は,分散型プレディケート予測を実行するための基本予測器として使用され得る。GEHL予測器400は,グローバル分岐履歴レジスタ402および分岐アドレス(例えばコアローカル履歴レジスタ401)の独立の機能によってインデックスを与えられる,いくつかの予測テーブル406〜409を含んでもよい。予測は,テーブル406〜409から取り出された値,ならびにコアローカル履歴レジスタ401に関連するコアローカル予測テーブル412からの値にわたる加算404の符号405に基づいてよい。本実施例では,記憶の大部分が,最近の分岐履歴の相互関係を得るために使用され得るが,依然として,一定の古い分岐との相互関係を得ることも容易にする。
【0028】ここでグローバルプレディケート履歴情報を見ると,いくつかの適切な実施例が与えられ得る。ある実施例は高い正確性を実現することができ,同時 にコア211〜213の間の通信を低減する。図6aを参照すると,そのような実施例の1つでは,コアローカルプレディケート履歴レジスタ(CLPHR)600が使用され得る。したがって,例えば,予測器は,別のコアと何ら情報を通信することなく,コア内のみで使用可能な情報を用いるだけで,提供され得る。本実施例では,コア211〜213の各々は,そのようなコアにマッピングされるプレディケート命令を追跡できる,自身に固有の唯一のグローバル履歴レジスタ601〜603を有してよい。そして,コンパイラ204は,従属命令をそのコアにマッピングしようとしてもよい。その結果,従属プレディケート命令は同一のコアにマッピングされることが可能であり,これにより,CLPHR600がそれらの命令の間の相互関係を利用しやすくなり得る。
【0029】図6bを参照すると,別の実施例では,グローバルブロック履歴レジスタ(GBHR)605が提供され得る。分散型の終了予測器がブロックの終了コードを予測すると,そのような終了予測器は,終了予測番号またはコードを連結させることもでき,したがってGBHR605を生成する。本実施例では,コンパイラ204は,各ブロック内の分岐命令に,プログラム内での分岐命令の順序にしたがって,3ビットの終了コードを割り当てることができる。したがって,GBHR605は,グローバル履歴情報として使用され得る。ブロック内のプレディケートからの情報を何ら使用することなく,終了予測器とプレディケート予測器の両方が同一の履歴情報を共有することができ,これにより,追加の通信機構の必要性を減らす,またはなくすことができる。
【0031】図4を再び参照すると,いくつかの実施例では,プレディケート予測の正確性を推定するように構成され得る,信頼性予測テーブル410が提供され得る。したがって,信頼性推定テーブル410は,予測器が,予測の難しいプレディケート(例えば信頼性の低いプレディケート)を「除去する」ことを容易にし得る。信頼性予測テーブル410のエントリはカウンタ,例えばカウンタ411をリセットしていてもよく,カウンタは,分岐における正しい連続的な予測の数を計数 することができる。例えば,誤った予測が発生すると,カウンタ411は0にリセットされ得る。プレディケートは,対応するカウンタの値がある閾値よりも高い場合,予測されるように選択され得る。いくつかの実施例では,信頼性テーブルのエントリ(例えばカウンタ411)は,より少数のコアで構成するために信頼性の高い閾値をサポートすることができる,3ビットのリセットカウンタであってよい。
【0032】本発明の方法の実施例が図5として示されている。コンピュータシステム100はプロセッサ101を含んでもよく,プロセッサ101は実行されると,以下の手順を実行するように構成され得る。具体的には,プロセッサ101は,コンパイラ204に,概略プレディケート経路情報を用いて分岐命令を符号化させることができる(手順501)。次に,結果として得られる命令データが,実行のためにプロセッサ101に提供され得る(手順502)。次いで,各プロセッサコアと関連するこれらの予測器は,コンパイラで符号化された経路情報を使用して,信頼性の高いプレディケートの正確な予測を容易にすることができる(手順503)。
【0033】いくつかの実施例に開示されているのは,複数のプロセッサコアを含むマルチコアプロセッサを含むコンピューティングシステムであり,コアの各々は少なくとも1つのプレディケート予測器を含み,プレディケート予測器はプレディケート予測を生成する。いくつかの実施例では,コンピューティングシステムは,符号化されたプレディケート経路情報を有する1つまたは複数の分岐命令を含む,アプリケーションプログラムをさらに含んでもよい。別の実施例では,プレディケート経路情報を符号化することは,コンパイラによって実現される。別の様々な実施例においては,1つまたは複数の分岐命令の各々のブロックアドレスによって,マルチコアプロセッサのどのプロセッサコアがそれぞれの分岐命令を実行するのかが決定される。他の実施例では,マルチコアプロセッサは,エクスプリジット・データ・グラフ・エグゼキューション・マイクロアーキテクチャを含む。さらに他の実施例では,1つまたは複数のプレディケート予測器は,基本予測器およびグロー バル履歴レジスタを含む。別の実施例では,基本予測器は,幾何履歴長予測器である。一方いくつかの実施例では,グローバル履歴レジスタは,コアローカルプレディケート履歴レジスタである。他の実施例では,グローバル履歴レジスタは,グローバルブロック履歴レジスタである。さらに他の実施例では,グローバル履歴レジスタは,コアローカルプレディケート履歴レジスタおよびグローバルブロック履歴レジスタを含む。さらに別の実施例では,コンピューティングシステムは,信頼性予測テーブルをさらに含む。
【0034】他の実施例で開示されているのは,マルチコアプロセッサの複数のプロセッサコアを介して1つまたは複数の分岐命令を提供することを含む,マルチコアプロセッサ内でプレディケート予測を提供し,プレディケート予測器を用いてプレディケート予測を生成するための方法であって,プロセッサコアの各々は少なくとも1つのプレディケート予測器を含む。いくつかの実施例では,方法は,1つまたは複数の分岐命令内の概略プレディケート経路情報を符号化することを,さらに含んでもよい。別の例では,プレディケート経路情報の符号化は,コンパイラによって実行される。さらなる実施例では,方法は,どのプロセッサコアが1つまたは複数の分岐命令の各々のブロックアドレスを用いて分岐命令を実行するかを決定することを,さらに含む。一方別の実施例では,1つまたは複数のプレディケート予測器は,基本予測器およびグローバル履歴レジスタを含む。さらに別の実施例では,基本予測器は,幾何履歴長予測器である。さらに別の実施例では,グローバル履歴レジスタは,コアローカルプレディケート履歴レジスタである。様々な別の実施例では,グローバル履歴レジスタは,グローバルブロック履歴レジスタである。
【0035】さらに別の実施例で開示されているのは,マルチコアプロセッサコンピューティングシステム内でプレディケート予測を提供するためのコンピュータ実行可能命令が記憶されている,コンピュータによってアクセス可能な媒体であって,処理構成が,命令を実行するときに,1つまたは複数の分岐命令内の概略プレディケート経路情報を符号化することを含む手順を実行するように構成され,マル チコアプロセッサの1つまたは複数のプロセッサコア上の1つまたは複数の分岐命令を実行し,1つまたは複数のプロセッサコアの各々は,1つまたは複数のプレディケート予測器を含み,処理構成はさらに,1つまたは複数のプレディケート予測器を用いてプレディケート予測を生成する。
(2) 前記(1)の記載によれば,本願明細書には,本願発明に関し,以下の点が開示されているものと認められる。
ア 本願発明は,分散型マルチコアアーキテクチャにおいてプレディケート予測を生成するためのシステム,方法及びコンピュータによってアクセス可能な媒体に関する(【0006】,【0021】)。
プレディケーションは,プロセッサが実行するプログラムの制御フローにおいて頻繁に変化を生じさせる分岐を,命令のためのデータ値(プレディケート)に変換するために使用される技術であり,全ての命令をフェッチ(読み込み)して,そのうちの一部の命令のみを,上記データ値(プレディケート)に応じて,実行するように決定することで,プログラムの制御フローを直線化することができる。分散型のマルチコアプロセッサにおいてプレディケーションを使用するモデルは,大きなコードブロックを生成して,多くの実行ユニット全体に広めるには効果的であるが,フェッチされてからすぐに予測される分岐とは異なり,プレディケートが命令の実行時に評価されるため,この評価の遅延により,性能が大幅に低下するという問題がある(【0002】)。上記性能の低下に対処する方法として,@プレディケーションを回避することが考えられるが,この方法では,あらゆる制御判断を分岐として残すことになるため,大規模な分散型のマルチコアプロセッサ全体に命令を分散させることができない。他の方法として,Aプレディケーションを行うに当たり,フェッチ及びプレディケート予測を単一のユニットに集中させることが考えられるが,この方法では,フェッチの帯域幅が狭くなるため,大規模な分散型のマルチコアプロセッサ全体に命令を分散させることができない(【0003】)。他方,EDGEアーキテクチャのようなハイブリッドなデータフローのアーキテクチャでは, 分岐とプレディケートとが混在していることがあるが,この場合,どの分岐をプレディケートにif変換するか決定するのが複雑となり(【0004】),また,完全に制御の履歴を管理して正確なプレディケート予測を 行うことは困難である(【0005】)。そのため,現在知られているほとんどの分散型のデータフローマシンでは,プレディケート予測が利用されていないという問題があった(【0005】)。
イ 本願発明は,前記アの問題を課題とし,かかる課題を解決するため,分散型マルチコアアーキテクチャにおいてプレディケート予測を生成するためのシステム,方法及びコンピュータによってアクセス可能な媒体を提供する(【0006】)。
ウ 本願発明のシステム,方法及びコンピュータによってアクセス可能な媒体を用いることにより,分岐命令についての概略プレディケート経路情報をインテリジェントに符号化することができ,この静的に生成された概略プレディケート経路情報を用いることで,分散型プレディケート予測器は,信頼性の高いプレディケートの正確な予測に役立ち得る,動的なプレディケート履歴を生成することができ,同時にコア間の通信を最小にするという作用効果を奏する(【0006】)。
2 取消事由1(実施可能要件に係る判断の誤り)について(1) 特許法36条4項1号実施可能要件を定める趣旨は,明細書の発明の詳細な説明に,当業者がその実施をすることができる程度に発明の構成等が記載されていない場合には,発明が公開されていないことに帰し,発明者に対して特許法の規定する独占的権利を付与する前提を欠くことになるからであると解される。
そして,物の発明における発明の実施とは,その物の生産,使用等をする行為をいうから(同法2条3項1号),物の発明について上記の実施可能要件を充足するためには,当業者が,明細書の発明の詳細な説明の記載及び出願当時の技術常識とに基づいて,過度の試行錯誤を要することなく,その物を製造し,使用することができる程度の記載があることを要する。
(2) 本願発明1について ア 前記1(2)によれば,本願発明1は,EDGEアーキテクチャのようなハイブリッドなデータフローのアーキテクチャでは,分岐とプレディケートとが混在していることがあるが,この場合,どの分岐をプレディケートにif変換するか決定するのが複雑となり,また,完全に制御の履歴を管理して正確なプレディケート予測を行うことは困難であるため,現在知られているほとんどの分散型のデータフローマシンでは,プレディケート予測が利用されていないという問題を課題とし,かかる課題を解決するため,分散型マルチコアアーキテクチャにおいてプレディケート予測を生成するためのシステムを提供するものであり,本願発明1のシステムを用いることにより,分岐命令についての概略プレディケート経路情報をインテリジェントに符号化することができ,この静的に生成された概略プレディケート経路情報を用いることで,分散型プレディケート予測器は,信頼性の高いプレディケートの正確な予測に役立ち得る,動的なプレディケート履歴を生成することができ,同時にコア間の通信を最小にするという作用効果を奏するというものである。
そして,本願発明1に係る特許請求の範囲(請求項1)の記載によれば,本願発明1は,複数のプロセッサコアを含むマルチコアプロセッサを備えるコンピューティングシステムであって,@複数のプロセッサコアの各々がプレディケート予測器を備え,A少なくとも1つのプレディケート予測器が,複数のプロセッサコアのうちの対応するプロセッサコアにマッピングされたプレディケート命令の出力を予測するように構成され,Bプレディケート命令は,命令ブロックに含まれる分岐命令から生成され,C命令ブロックは,複数のプロセッサコアのうちのどのプロセッサコアが分岐命令を実行するのに割り当てられるかを決定するブロックアドレスを含み,D予測は,分岐命令内に符号化された情報に基づき,分岐命令内に符号化された情報は,概略プレディケート経路を表す,という構成を有する。すなわち,本願発明1は,「複数のプロセッサコア」の各々が備える「プレディケート予測器」のうち,少なくとも1つの「プレディケート予測器」が,分岐命令内に符号化された「概略プレディケート経路を表す」「情報」に基づき,対応するプロセッサコアに マッピングされた「プレディケート命令の出力を予測する」というものである。
そうすると,本願発明1が実施可能要件を満たすというためには,本願明細書の発明の詳細な説明に,少なくとも,「複数のプロセッサコア」という分散された環境において,「プレディケート予測器」が「概略プレディケート経路を表す情報」に基づいて「プレディケート命令の出力を予測する」という処理を行うことにより,信頼性の高いプレディケートの正確な予測に役立ち得るプレディケート履歴を生成することができ,同時にコア間の通信を最小にするという作用効果を奏するコンピューティングシステムを製造し,使用することができる程度,すなわち,「概略プレディケート経路を表す情報」の意義,及び,「複数のプロセッサコア」という分散された環境に備えられた「プレディケート予測器」において,信頼性の高いプレディケートの正確な予測に役立ち得るプレディケート履歴を生成し,コア間の通信を最小にするために,「概略プレディケート経路を表す情報」に基づいて行われる「予測」の処理内容を当業者が理解することができる程度の記載があることを要するというべきである。
イ 「概略プレディケート経路を表す情報」についての記載 本願明細書には,「概略プレディケート経路を表す情報」に関し,【0021】,【0022】,【0026】,【0032】,【0034】及び【0035】の記載があるが,これらの記載は,いずれも,コンパイラによって,「概略プレディケート経路を表す情報」に相当する「概略プレディケート経路情報」が分岐命令に符号化されることを示しているにすぎず,「予測」に用いられる「概略プレディケート経路を表す情報」が,具体的にどのような内容のものであるのか特定されるように記載されていない。
そして,当業者にとって,本願の優先日当時の技術常識に基づき,「概略プレディケート経路を表す情報」が具体的にどのような内容のものであるのかが自明であることを認めるに足りる証拠はない。
したがって,本願明細書の発明の詳細な説明は,当業者が「概略プレディケート 経路を表す情報」の意義を理解することができるように記載されているということはできない。
ウ 「概略プレディケート経路を表す情報」に基づいて行われる「予測」の処理内容についての記載 本願明細書には,「複数のプロセッサコア」という分散された環境に備えられた「プレディケート予測器」において行われる「プレディケート命令の出力」の「予測」処理の内容に関し,【0026】ないし【0029】の記載があり,ここには,「概略プレディケート経路情報」を用いて,2つの履歴レジスタ,すなわち,コアローカル履歴レジスタとグローバル分岐履歴レジスタを生成し,それを用いて「プレディケート命令の出力」の予測を行うこと(【0026】,【0027】),並びに,上記グローバル分岐履歴レジスタに対応するグローバル履歴レジスタとして,「コアローカルプレディケート履歴レジスタ」を用いる実施例(【0028】,図6A)及び「グローバルブロック履歴レジスタ」を用いる実施例(【0029】,図6B)が記載されている。
しかし,上記記載からは,「概略プレディケート経路情報」からコアローカル履歴レジスタとグローバル分岐履歴レジスタという二つの履歴レジスタをどのような処理により分けて生成するのか,また,当該二つの履歴レジスタをどのような処理により「プレディケート命令の出力」の「予測」において使い分けるのか,さらに,上記二つの履歴レジスタを用いた「プレディケート命令の出力」の「予測」を信頼性の高く正確なものとするために「概略プレディケート経路情報」として具体的にどのような内容が必要とされるのか,把握することはできない。
したがって,本願明細書の上記記載から,「複数のプロセッサコア」という分散された環境に備えられた「プレディケート予測器」において,信頼性の高いプレディケートの正確な予測に役立ち得るプレディケート履歴を生成し,コア間の通信を最小にするために,「概略プレディケート経路を表す情報」に基づく「予測」の処理が具体的にどのように行われているのか明らかであるということはできない。
そして,当業者にとって,本願の優先日当時の技術常識に基づき,「複数のプロセッサコア」という分散された環境に備えられた「プレディケート予測器」において,信頼性の高いプレディケートの正確な予測に役立ち得るプレディケート履歴を生成し,コア間の通信を最小にするために,「概略プレディケート経路を表す情報」に基づいて行われる「予測」の処理内容が自明であることを認めるに足りる証拠はない。
そうすると,本願明細書の発明の詳細な説明は,当業者が,「複数のプロセッサコア」という分散された環境に備えられた「プレディケート予測器」において,信頼性の高いプレディケートの正確な予測に役立ち得るプレディケート履歴を生成し,コア間の通信を最小にするために,「概略プレディケート経路を表す情報」に基づいて行われる「予測」の処理内容を理解することができるように記載されているということはできない。
エ 以上によれば,本願明細書の発明の詳細な説明は,「複数のプロセッサコア」という分散された環境において,「プレディケート予測器」が「概略プレディケート経路を表す情報」に基づいて「プレディケート命令の出力を予測する」という処理を行うことにより,信頼性の高いプレディケートの正確な予測に役立ち得るプレディケート履歴を生成することができ,同時にコア間の通信を最小にするという作用効果を奏するコンピューティングシステムを製造し,使用することができる程度に記載されていない。
したがって,本願明細書の発明の詳細な説明は,当業者が本願発明1の実施をすることができる程度に明確かつ十分に記載したものということはできない。
(3) 原告の主張について ア 原告は,本願明細書には,@対象のアーキテクチャは,EDGEアーキテクチャのようなハイブリッドなデータフローのアーキテクチャであること,Aコンパイラが,各ブロックの分岐命令に,プログラム内での分岐命令の順序にしたがって,3ビットの「終了コード」(「出口コード」ともいう。)を割り当てること,B 「概略プレディケート経路情報」は,コンパイラによって,分岐命令に符号化され,特定のブロックの具体的な分岐を識別可能であること,C予測器が,分岐命令に符号化された「概略プレディケート経路情報」を用いてプレディケート予測を行うことが記載されているところ,EDGEアーキテクチャにおいて,分岐命令に出口を識別する例えば3ビットの識別子を割り当て,それを分岐命令に符号化することは,本願の優先日前に技術常識であったから,当業者であれば,本願の「概略プレディケート経路情報」は,出口を識別する例えば3ビットの「終了コード」として分岐命令に符号化された情報であると理解し,コンパイルのタイミングでコンパイラによって,分岐命令の分岐先を,例えば3ビットの終了コードで表した形式で,分岐命令に符号化された情報であり,予測器によってプレディケート予測に用いられる情報であると理解する旨主張する。
イ しかし,原告が挙げる甲9(「Analysis of the TRIPS Prototype Block Predictor」平成21年4月)及び甲10(「Distributed MicroarchitecturalProtocols in the TRIPS Prototype Processor」平成18年12月)は,EDGEアーキテクチャの一例である「TRIPS」という特定のアーキテクチャについて,「分岐命令に出口を識別する例えば3ビットの識別子を割り当て,それを分岐命令に符号化すること」を記載したものにすぎず,EDGEアーキテクチャ一般について記載したものではない。したがって,上記証拠(甲9,10)から,本願の優先日前に「EDGEアーキテクチャにおいて,分岐命令に出口を識別する例えば3ビットの識別子を割り当て,それを分岐命令に符号化すること」が技術常識であったと認めるに足りず,他にこれを認めるに足りる証拠はない。
ウ また,前記イの点を措き,仮に当業者において,本願明細書の「概略プレディケート経路情報」は,出口を識別する例えば3ビットの「終了コード」として分岐命令に符号化された情報であると理解し,コンパイルのタイミングでコンパイラ によって,分岐命令の分岐先を,例えば3ビットの終了コードで表した形式で,分岐命令に符号化された情報であり,予測器によってプレディケート予測に用いられる情報であると理解したとしても,本願発明1の「概略プレディケート経路を表す情報」に相当する「概略プレディケート経路情報」について,@そのデータ形式,Aその形式に「終了コード(出口コード)」という,本願明細書全体の記載から見ても内容が不明なコードが関連していること,B分岐命令への符号化という処理がコンパイラによってされること,C予測器によるプレディケート予測に用いられることが把握できるにすぎず,「出口を識別する例えば3ビットの「終了コード」として分岐命令に符号化された情報」が,「プレディケート命令の出力」の「予測」を信頼性が高く,正確なものとする上で,具体的にどのような内容のものであるのかを把握することはできない。
したがって,「複数のプロセッサコア」という分散された環境に備えられた「プレディケート予測器」において,信頼性の高いプレディケートの正確な予測に役立ち得るプレディケート履歴を生成し,コア間の通信を最小にするために,「概略プレディケート経路を表す情報」に基づく「予測」の処理が具体的にどのように行われているのかが,明らかであるということはできない。
(4) 小括 以上によれば,本願明細書の発明の詳細な説明は,当業者が本願発明1の実施をすることができる程度に明確かつ十分に記載したものということはできないから,本願発明1を特許請求の範囲に含む本願は,拒絶すべきものである。
そうすると,本件審決における実施可能要件に係る判断は,結論において,誤りはない。よって,取消事由1は,理由がない。
3 結論 以上によれば,原告の本訴請求は,その余の点について判断するまでもなく,理由がないから,これを棄却することとして,主文のとおり判決する。
本件審決は,最終的な結論において誤りはなかったことから,取り消すべきもの とはされなかったが,以下の問題があるから,事案に鑑み,本件審決書について付言する。まず,本件審決は,その判断において,平成25年9月6日付けで通知した拒絶理由及び同年12月27日付けでした拒絶査定の内容を引用した上で,本願発明が,拒絶査定で示された理由を解消しているか否かを判断するという体裁で,しかも,前記第2の3のとおり,本件補正前の請求項と本件補正後の請求項が混在したまま,審決の理由を示している。しかし,本件審決における判断対象は,本件補正後の請求項であり,本件補正後の本願発明に拒絶理由が存在するか否かを判断すべきである。また,本件審決におけるサポート要件に係る判断は,その結論部分において,本件補正後の請求項の全てについてサポート要件を満たさない旨判断していながら,本件補正後の請求項1についてしかその具体的理由が言及されておらず,実施態様の異なる他の請求項についても,サポート要件を満たさないことになる理由は,何ら具体的に述べられていない。以上のとおり,本件審決書は,適切とはいい難いものであって,判断対象を明確にして,結論を導くに足りる理由を示すことが望まれる。
裁判長裁判官 部眞規子
裁判官 柵木澄子
裁判官 片瀬亮