• ポートフォリオ機能


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

  • この表をプリントする
PDF PDFをダウンロード
審決分類 審判 査定不服 2項進歩性 取り消して特許、登録 G06F
審判 査定不服 4号2号請求項の限定的減縮 取り消して特許、登録 G06F
審判 査定不服 特17条の2、3項新規事項追加の補正 取り消して特許、登録 G06F
管理番号 1336587
審判番号 不服2015-96  
総通号数 219 
発行国 日本国特許庁(JP) 
公報種別 特許審決公報 
発行日 2018-03-30 
種別 拒絶査定不服の審決 
審判請求日 2015-01-05 
確定日 2018-02-13 
事件の表示 特願2012-530310「命令スレッドを組み合わせた実行の管理システムおよび管理方法」拒絶査定不服審判事件〔平成23年 3月31日国際公開、WO2011/036377、平成25年 2月21日国内公表、特表2013-506179、請求項の数(10)〕について、知的財産高等裁判所において、審決取消の判決(平成28年(行ケ)第10078号、平成29年11月30日言渡)があったので、更に審理の上、次のとおり審決する。 
結論 原査定を取り消す。 本願の発明は、特許すべきものとする。 
理由 第1 手続の経緯

本願は,2010年9月15日(パリ条約による優先権主張外国庁受理2009年9月25日(以下,「優先日」という) フランス共和国)を国際出願日とする出願であって,
平成24年4月17日付けで特許法第184条の4第1項の規定による明細書,請求の範囲,及び,図面(図面の中の説明に限る)の日本語による翻訳文が提出され,平成24年6月5日付けで審査請求がなされ,平成25年10月29日付けで審査官により拒絶理由が通知され,これに対して平成26年3月31日付けで意見書が提出されると共に手続補正がなされたが,平成26年8月26日付けで審査官により拒絶査定がなされ,これに対して平成27年1月5日付けで審判請求がなされると共に手続補正がなされ,平成27年4月2日付けで審査官により特許法第164条第3項の規定に基づく報告がなされ,平成27年11月17日付けで「本件審判の請求は成り立たない。」との審決(一次審決)がなされたが,知的財産高等裁判所において,審決取消の判決(平成28年(行ケ)第10078号,平成29年11月30日言渡)がされ,確定した。


第2 判決の判示事項

判決では,概ね以下のとおり判示された。

1.「2.取消事由(補正の適法性についての判断の誤り)について」「(1)新規事項追加禁止要件違反について」

『・・・
(イ)以上によると,当初明細書等においては,「S」及び「C」は,仮想プロセッサのタイプとして記載されていること,命令スレッドのタイプとしては,「計算タイプ」及び「サービスタイプ」という文言が用いられていることが認められる。
しかし,前記(ア)のとおり,仮想プロセッサのタイプは,パラメータC及びパラメータSによって識別され,パラメータCは計算タイプに,パラメータSはサービスタイプに関連付けられ,仮想プロセッサの24C及び26Cは「計算タイプ」,同24S及び26Sは「サービスタイプ」とされている。また,命令スレッドのタイプがアプリケーションプログラミングインターフェースの関数でタイプを識別するパラメータ(計算タイプ:HTCALCUL,サービスタイプ:HT_SERVICE)や,プログラムの実行コマンドでタイプを識別するパラメータ(CALCUL,SERVICE)に基づく場合があることが記載されているところ,Cが計算(caluculation),Sがサービス(service)の頭文字に由来することも明らかである。
エ そうすると,当初明細書等の記載を考慮して,特許請求の範囲に記載された用語の意義を解釈すると,本件補正後の請求項6?8で命令スレッドのタイプとされている記載「タイプ(S,C)」は,「サービスタイプ」,「計算タイプ」の意味であると解することができる。
オ 以上によると,本件補正は,本件補正前の請求項6において,命令スレッドの「タイプ」は,どのような種類のタイプが存在するかについて,記載がなかったのを,「タイプ(S,C)」とし,当初明細書等に記載されていた「タイプ(サービスタイプ,計算タイプ)」としたものであり,当初明細書等に記載された事項の範囲内を超えるものではない。
したがって,本件補正は,新規事項を追加するものではなく,原告の主張する取消事由1のうち,新規事項追加禁止違反についての判断の誤りを主張する点については理由がある。・・・』

2.「2.取消事由(補正の適法性についての判断の誤り)について」「(2)目的要件違反について」

『ア 前記(1)のとおり,本件補正により,請求項6の「タイプ」の後に付加される「(S,C)」は,「(サービスタイプ,計算タイプ)」を意味するものと解される。
イ したがって,本件補正前は限定のなかった請求項6の「タイプ」に本件補正によって「(S,C)」を付加することにより,サービスタイプと計算タイプが含まれることを明らかにした上,それぞれの命令スレッドがそれぞれのタイプに応じて仮想プロセッサに方向付けられるものであることを特定したものであって,請求項6に,「サービスタイプと計算タイプそれぞれのタイプに応じて仮想プロセッサに方向付けられる」という本件補正前にはない限定を加えたものであるから,「特許請求の範囲の減縮」に当たるということができる。・・・』


第3 審判請求時の補正について

審判請求時の補正(平成27年1月5日付けの手続補正。以下,「本件補正」という。)は,特許請求の範囲の請求項6を,

「コンピュータシステム(18)の少なくとも1つの中央処理装置(24,26)に属する複数の仮想プロセッサ(24C,24S,26C,26S)上で複数の命令スレッドを組み合わせて実行するのを管理する方法であって,前記仮想プロセッサに前記命令スレッドの実行を分散するステップ(104)を含む方法において,複数の所定のタイプ(S,C)に応じて実行する前記命令スレッドを分類する予備ステップ(100)を含み,前記命令スレッドの実行を分散するステップ(104)で,実行する命令スレッドそれぞれをタイプ(S,C)に応じて仮想プロセッサに方向付ける,方法であって,
前記各中央処理装置の仮想プロセッサ(24C,24S,26C,26S)は,
前記中央処理装置に属する内部資源を共有することにより同時マルチスレッディングを実施する機能を有する複数の論理区画に相当する,ことを特徴とする方法。」
(当審注:下線は,請求人が付与。)

とする補正(以下,「補正事項1」という。)を含んでいる。

上記第2の1.及び2.を踏まえると,本件補正の補正事項1は,新規事項を追加するものではなく,また,「特許請求の範囲の減縮」に当たるということができ,さらに,特許法第17条の2第4項に違反するところはない。

そして,「第4 本願発明」から「第6 対比・判断」までに示すように,補正後の請求項1-10に係る発明は,独立特許要件を満たすものである。


第4 本願発明

本願請求項1-10に係る発明(以下,それぞれ「本願発明1」-「本願発明10」という。)は,平成27年1月5日付けの手続補正で補正された特許請求の範囲の請求項1-10に記載された事項により特定される発明であり,以下のとおりの発明である。

「 【請求項1】
命令スレッドの実行を管理するコンピュータシステム(18)であって,
各中央処理装置が,前記各中央処理装置に属する複数の仮想プロセッサ(24C,24S,26C,26S)上で,複数の命令スレッドを組み合わせて実行するように構成される,少なくとも1つの中央処理装置(24,26)と,
前記仮想プロセッサに命令スレッドの実行を分散するように構成されるマネージャ(38)と,を有するコンピュータシステム(18)において,
前記命令スレッドには,少なくとも2つの異なる所定のタイプ(C,S)が存在し,
-「計算」と呼ぶ命令スレッドの前記第1のタイプ(C)は,結果を供給するように前記コンピュータシステムが実行するようになっているプログラムに対して,該プログラムの実行に参加して結果を直接生成する命令スレッドに関係し,
-「サービス」と呼ぶプロセスの前記第2のタイプ(S)は,該プログラムの実行に参加して前記「計算」と呼ぶタイプ(C)の前記命令スレッドに付属サービス(前記結果の保存など)を供給する命令スレッドに関係し,
前記コンピュータシステム(18)は,実行する前記命令スレッドを前記所定のタイプ(C,S)に応じて分類する分類手段(36)を有し,
前記命令スレッドの実行を分散するように構成される前記マネージャ(38)は,前記命令スレッドが分類された前記所定のタイプ(C,S)に基づき,実行する前記命令スレッドを前記仮想プロセッサ(24C,24S,26C,26S)に方向付けるように設計され,
前記各中央処理装置の仮想プロセッサ(24C,24S,26C,26S)は,前記中央処理装置に属する内部資源を共有することにより,同時マルチスレッディングを実施する複数の論理区画に相当する,ことを特徴とするコンピュータシステム。
【請求項2】
前記中央処理装置(24,26)の各仮想プロセッサ(24C,24S,26C,26S)を前記所定のタイプ(C,S)の1つに関連付ける手段を備える,請求項1に記載のコンピュータシステムにおいて,前記命令スレッドの実行を分散するように構成される前記マネージャ(38)を,実行する前記命令スレッドをそれぞれ該スレッドと同じタイプの仮想プロセッサ(24C,24S,26C,26S)に方向付けるように設計するコンピュータシステムであって,
前記各中央処理装置の仮想プロセッサ(24C,24S,26C,26S)は,前記中央処理装置に属する内部資源を共有することにより同時マルチスレッディングを実施する機能を有する複数の論理区画に相当する,ことを特徴とするコンピュータシステム。
【請求項3】
前記中央処理装置(24,26)は2つの仮想プロセッサ(24C,24S,26C,26S)を有し,1つは命令スレッドの第1のタイプ(C)に関連付け,もう1つは命令スレッドの第2のタイプ(S)に関連付け,実行するコンピュータプロセスはそれぞれ前記第1のタイプ(C)か前記第2のタイプ(S)である,請求項1または2に記載のコンピュータシステム。
【請求項4】
-「計算」と呼ぶ命令スレッドの前記第1のタイプ(C)は,結果を供給するように前記コンピュータシステムが実行するようになっているプログラムに対して,該プログラムの実行に参加して結果を直接生成する命令スレッドに関係し,
-「サービス」と呼ぶプロセスの前記第2のタイプ(S)は,該プログラムの実行に参加して「計算」と呼ぶタイプ(C)の前記命令スレッドに付属サービス(前記結果の保存など)を供給する命令スレッドに関係する,請求項3に記載のコンピュータシステム。
【請求項5】
少なくとも2つの中央処理装置(24,26)を有し,それぞれが複数の仮想プロセッサ(24C,24S,26C,26S)を備え,仮想プロセッサ上で複数の命令スレッドを組み合わせて実行する,請求項1から4のいずれか一項に記載のコンピュータシステムにおいて,前記命令スレッドの実行を分散するように構成される前記マネージャ(38)を,中央処理装置にある仮想プロセッサとは独立して,実行する命令スレッドそれぞれに対して中央処理装置を選択するように設計するコンピュータシステムであって,
前記各中央処理装置の仮想プロセッサ(24C,24S,26C,26S)は,前記中央処理装置に属する内部資源を共有することにより同時マルチスレッディングを実施する機能を有する複数の論理区画に相当する,ことを特徴とするコンピュータシステム。
【請求項6】
コンピュータシステム(18)の少なくとも1つの中央処理装置(24,26)に属する複数の仮想プロセッサ(24C,24S,26C,26S)上で複数の命令スレッドを組み合わせて実行するのを管理する方法であって,前記仮想プロセッサに前記命令スレッドの実行を分散するステップ(104)を含む方法において,複数の所定のタイプ(S,C)に応じて実行する前記命令スレッドを分類する予備ステップ(100)を含み,前記命令スレッドの実行を分散するステップ(104)で,実行する命令スレッドそれぞれをタイプ(S,C)に応じて仮想プロセッサに方向付ける,方法であって,
前記各中央処理装置の仮想プロセッサ(24C,24S,26C,26S)は,
前記中央処理装置に属する内部資源を共有することにより同時マルチスレッディングを実施する機能を有する複数の論理区画に相当する,ことを特徴とする方法。
【請求項7】
前記分類ステップ(100)で,命令スレッドを管理するアプリケーションプログラミングインターフェースの関数でタイプ(S,C)を識別するパラメータに基づいて,前記命令スレッドをそれぞれタイプ(S,C)で分類する,請求項6に記載の方法。
【請求項8】
前記分類ステップ(100)で,命令スレッドの実行を含むプログラムの実行コマンドでタイプ(S,C)を識別するパラメータに基づいて,前記命令スレッドをそれぞれこのタイプ(S,C)で分類する,請求項6に記載の方法。
【請求項9】
スーパーコンピュータタイプのサーバクラスタ(10)の複数の処理ノード上で複数の命令スレッドを実行することの管理に対する請求項6から8のいずれか一項に記載の方法の適用であって,各処理ノード(18)が,少なくとも1つの中央処理装置に属する複数の仮想プロセッサ(24C,24S,26C,26S)上で複数の命令スレッドを組み合わせて実行する前記少なくとも1つの中央処理装置(24,26)を有する適用であって,
前記各中央処理装置の仮想プロセッサ(24C,24S,26C,26S)は,前記中央処理装置に属する内部資源を共有することにより同時マルチスレッディングを実施する機能を有する複数の論理区画に相当する,ことを特徴とする適用。
【請求項10】
通信ネットワークからダウンロード可能なコンピュータプログラムおよび/またはコンピュータで再生可能な媒体に記録したコンピュータプログラムおよび/またはプロセッサのなかでもとりわけコンピュータのオペレーティングシステム(34)で実行可能なコンピュータプログラムであって,前記プログラムをコンピュータ上で実行した場合に,請求項6から8のいずれか一項に記載の複数の命令スレッドを組み合わせた実行の管理方法のステップを実行するプログラムコードの命令を含むコンピュータプログラムであって,
各中央処理装置の仮想プロセッサ(24C,24S,26C,26S)は,前記中央処理装置に属する内部資源を共有することにより同時マルチスレッディングを実施する機能を有する複数の論理区画に相当する,ことを特徴とするコンピュータシステム。」


第5 引用文献,引用発明等
1.原査定の拒絶の理由に引用された引用文献1(特開2004-220608号公報)には,図面とともに次の事項が記載されている(当審注:下線は当審により付与。)。

A.「【請求項1】

複数の個別の物理サブシステムを含むマルチスレッド・コンピュータにおいてコンピュータ・リソースを動的に割り付ける方法であって,

(a)複数のスレッド型のうちの各スレッド型に関して,そのスレッド型と,前記マルチスレッド・コンピュータ内の共通の物理サブシステム内に物理的に配置されたコンピュータ・リソースのセットを関連付けすること,および,

(b)スレッドをアクティブ化する要求に応答して,前記スレッドを,該スレッドの前記スレッド型に関連付けされているコンピュータ・リソースのセットに割り当てること,

を含む方法。」

B.「【0028】

コンピュータ10は,概して,システム・バスもしくはそのほかの通信インターフェースを介して互いに接続される複数の物理サブシステム12を備えている。それに加えてコンピュータ10は,通常,包括的に16に示されている各種I/Oリソースを備え,それには,ストレージ・デバイス,ワークステーション,端末,ネットワーク,イメージング・デバイスといった各種タイプのリソースが含まれる。
【0029】

各物理サブシステム12は,コンピュータ・リソースのセット,たとえば共有メモリ18,1以上のマイクロプロセッサ20,共有キャッシュ22および1以上のローカル・キャッシュ24などの1以上のレベルのキャッシュ・メモリを含んでいる。各物理サブシステム12内のリソース18?24は,別の物理サブシステム12内のリソースとインタラクションもしくは通信を行うときに比べて,より効率的に互いにインタラクションもしくは通信を行うことができるという特徴を有する。たとえば,各物理サブシステム12内のリソースは,同一のマルチ‐チップ・モジュール(MCM)または回路カード上に配置されており,その結果,その種のリソースの間の相互接続が,システム・バス14に結合される相互接続に比べて,1桁もしくはそれ以上に高速になる。
【0030】

このほかの,コンピュータ・リソースの物理的分割を,本発明の別の実施態様において使用してもよい。さらに,このほかのコンピュータ・ハードウエア・アーキテクチャに,ここで論じている動的リソース割り付けテクニックを使用することもできる。このように本発明が,図1に示されている特定のハードウエア実装に限定されることはない。
【0031】

次に,図1のコンピュータ10において使用され得る一例のソフトウエア・アーキテクチャ30を図2に示す。これに示されているように,アーキテクチャ30は,複数のジョブまたはアプリケーションが実行されるオペレーティング・システム32に依存できる。いくつかの実施態様においては,1以上のアプリケーションを,共通の論理サブシステム36内において互いに関連付けし,そのほかのアプリケーションは,特定の論理サブシステムと関連付けしないといったことが許される。
【0032】

図2に示されているように,マルチスレッド・コンピュータとするコンピュータ10は,複数のスレッド38の実行もしくは処理を行って,要求されたタスクをユーザに代わって実行することができる。スレッド38は,オペレーティング・システム32内,特定のアプリケーション34内,特定の論理サブシステム36内,および/またはアーキテクチャ30内のいずれかの場所を含む多数のコンテキスト内において使用されることがある。いくつかのアーキテクチャにおいては,複数の論理パーティションをさらに定義することができ,その結果,独立にオペレーティング・システムを実行するパーティションを含む複数の論理パーティションが所定のアーキテクチャの中に見られることもある。したがってスレッド38は,所定のコンピュータ・アーキテクチャ内の事実上随所に論理的に常駐することができる。」

C.「【0037】

次に,本発明の特定の実施態様を考察するが,図3を参照すると,スレッドのアクティブ化,たとえば作成または再アクティブ化の要求に応答して図2のスレッド・ディスパッチャ40によって実行され得る一例のスレッド・アクティブ化ルーチン50が示されている。ルーチン50は,ブロック52において開始し,そのスレッドに関連付けされているスレッド型を決定する。前述したように,スレッドの任意数の特性または属性を使用し,スレッドを型によって区別することができる。たとえば,以下において論じている例は,親のアプリケーションまたは論理サブシステムによって定義されるスレッド型に注目しており,その結果,特定のアプリケーションまたは論理サブシステムに代わって開始したすべてのスレッドは,同一の型を共有することになる。概して,そのタイプのスレッドに,リソースの異なるセットではなく,リソースの共通セットが割り付けられるならば,比較的良好なパフォーマンスをもたらすであろうスレッドの任意の特性または属性は,本発明と矛盾のないスレッドの分類を行うために使用できる。
【0038】

スレッド型が決定されると,次にブロック54が,決定されたスレッド型にリソースのセットがすでに割り付けられている否かを決定する。最初は,決定されたスレッド型にリソースが割り付けられていないものと仮定するが,その場合はブロック54がコントロールをブロック56に渡し,物理サブシステム上のリソースのセットを決定されたスレッド型に,たとえば単一もしくは既知の物理サブシステムのセットに局所化されているもっとも可用性の高いリソースのセットに対する対称割り当てによって割り当てる。たとえば,異なるリソースのセットごとに異なる物理サブシステムに関連付けする場合であれば,ブロック56は,もっとも可用性の高い物理サブシステムに関するリソースを,決定されたスレッド型に割り当てることができる。また,単一物理サブシステム上のリソースを割り付けることが可能でないか,実際的でない場合には,スレッド型を複数の部分型にトランスペアレントに分割し,複数の物理サブシステム上のリソースの個別のセットに1つの型を関連付けすることができる。」

D.「【0040】

ブロック54に戻るが,決定されたスレッド型にすでにリソースが割り付けられている場合には,ブロック56をバイパスしてコントロールを直接ブロック58に渡し,新しいスレッドを,そのスレッド型にすでに割り付け済みのリソースに割り当てることができる。この変形においては,図3に示されているように,ブロック54がコントロールをブロック60に渡して,そのスレッド型に追加のリソースが必要であるか否かを動的に決定することができる。たとえば,特定のスレッド型に関連付けされたリソースが完全に使われてしまっている場合には,コントロールをブロック56に渡して,そのスレッド型に追加のリソースを割り付けると望ましいことがある(通常,可能であれば同一物理サブシステム内に配置されたリソースを使用して行う)。それに該当しなければ,コントロールをブロック60からブロック58に渡せばよい。しかしながら,別の実施態様においては,追加のリソースの動的割り付けがサポートされないこともある。」

2.引用文献1に記載された発明

上記1.によれば,引用文献1には,次の発明(以下,「引用発明」という。)が示されている。

複数の個別の物理サブシステムを含むマルチスレッド・コンピュータにおいてコンピュータ・リソースを動的に割り付ける方法であって,
(a)複数のスレッド型のうちの各スレッド型に関して,そのスレッド型と,前記マルチスレッド・コンピュータ内の共通の物理サブシステム内に物理的に配置されたコンピュータ・リソースのセットを関連付けすること,および,
(b)スレッドをアクティブ化する要求に応答して,前記スレッドを,該スレッドの前記スレッド型に関連付けされているコンピュータ・リソースのセットに割り当てること,
を含む方法であり,
各物理サブシステムは,コンピュータ・リソースのセット,たとえば共有メモリ,1以上のマイクロプロセッサ,共有キャッシュおよび1以上のローカル・キャッシュなどの1以上のレベルのキャッシュ・メモリを含んでおり,
スレッド・アクティブ化ルーチンとして,
スレッドに関連付けされているスレッド型を決定し,
決定されたスレッド型にリソースのセットがすでに割り付けられている否かを決定し,
最初に,決定されたスレッド型にリソースが割り付けられていない場合は,物理サブシステム上のリソースのセットを決定されたスレッド型に,たとえば単一もしくは既知の物理サブシステムのセットに局所化されているもっとも可用性の高いリソースのセットに対する対称割り当てによって割り当て,たとえば,異なるリソースのセットごとに異なる物理サブシステムに関連付けする場合であれば,もっとも可用性の高い物理サブシステムに関するリソースを,決定されたスレッド型に割り当てることができ,また,単一物理サブシステム上のリソースを割り付けることが可能でないか,実際的でない場合には,スレッド型を複数の部分型にトランスペアレントに分割し,複数の物理サブシステム上のリソースの個別のセットに1つの型を関連付けすることができ,
決定されたスレッド型にすでにリソースが割り付けられている場合には,新しいスレッドを,そのスレッド型にすでに割り付け済みのリソースに割り当てる,
ことを行う,方法。

3.原査定の拒絶の理由に引用された引用文献2(特開2004-348462号公報)には,図面とともに次の事項が記載されている。

E.「【0033】
次に,模擬分担決定部10は,模擬処理を分担する前に,模擬空間定義3に基づいて模擬空間を複数の領域に分割する。このあと,模擬分担決定部10は,入力した模擬イベント交換頻度,模擬データ転送量,論理プロセッサ5-1?5-nの負荷情報,ネットワーク4を介した通信状況に関する情報及び模擬空間定義3を用いて,以下のルールに従って模擬対象を総合的に判断し,模擬環境を含む模擬対象同士の模擬イベント交換頻度や模擬データ転送量が高くなると予想される模擬対象の組み合わせを決定する。
【0034】
1.ある模擬対象A,Bについて,これらの間での模擬イベント交換頻度が,模擬分担決定部10に予め設定しておいた交換頻度に関する閾値よりも高い場合,模擬対象A,Bについての模擬処理を同一の論理プロセッサに割り当てる。
2.ある模擬対象A,Bについて,これらが属する模擬空間内の領域が,例えば同一の模擬環境にて規定されているなど,同種のものであり,模擬空間内の位置も近接している場合,模擬対象A,Bについての模擬処理を同一の論理プロセッサに割り当てる。
3.ある模擬対象A,Bについて,これらの間での模擬データ転送量が,模擬分担決定部10に予め設定しておいたデータ転送量に関する閾値よりも高い場合,模擬対象A,Bについての模擬処理を同一の論理プロセッサに割り当てる。
4.論理プロセッサの負荷状況が,模擬分担決定部10に予め設定しておいた負荷状況に関する閾値よりも高い場合,当該論理プロセッサに対して新規の模擬処理を割り当てない。
5.ネットワークを介した通信状況情報が,模擬分担決定部10に予め設定しておいた通信状況に関する閾値を超える場合,4.のルールの優先度を下げて論理プロセッサに対して新規の模擬処理を割り当てる。ここで,ネットワークを介した通信状況情報としては,通信帯域幅やノード間の通信遅延がある。この場合,ネットワーク状況モニタ部9から入力した通信帯域幅が,模擬分担決定部10に予め設定しておいた閾値よりも帯域幅が狭く,あるいは,ネットワーク状況モニタ部9から入力したノード間の通信遅延が,予め設定しておいた閾値よりも通信遅延が増大している場合,論理プロセッサに対して新規の模擬処理が割り当てられる。
【0035】
続いて,模擬分担決定部10は,上述のようにして決定した模擬対象の組み合わせを模擬空間の各領域ごとに関連付けて,論理プロセッサ5-1?5-nに分担させるべき模擬処理を決定する。論理プロセッサ5-1?5-nは,模擬分担決定部10によって模擬処理が分担されると,自己に割り当てられた模擬処理の実行を開始する。」

F.「【0037】
以上のように,この実施の形態1によれば,任意の模擬環境を扱うシミュレーションにおいて,模擬空間を複数の領域に分割し,模擬環境の模擬処理や模擬環境の挙動を参照する任意の模擬物体の模擬処理を関連する領域ごとに論理プロセッサ5-1?5-nに分担し実行させるので,模擬環境や模擬物体などの模擬対象について模擬イベント交換頻度と模擬データ転送量が高くなると予想される組み合わせが同一の論理プロセッサに割り当てられる。このため,論理プロセッサ間における模擬イベント交換頻度と模擬データ転送量を削減することができ,高速で効率的な処理を実現することができる。」

4.原査定の備考において周知の技術事項を示す例として引用した周知文献1(特表2007-522561号公報)には,関連する図面と共に,次の事項が記載されている。

G.「【0016】
ハイパースレッディング技術は,Intel(登録商標)Corporation(Santa Clara, California)からの技術であり,1つの物理プロセッサを用いて複数のスレッドを並列に実行することを可能にする。ハイパースレッディング技術は,1つの物理プロセッサ上で複数のソフトウェアアプリケーションの複数のスレッドが同時に実行される同時マルチスレッディング技術(SMT)の形式である。これは,アーキテクチャステートを二重にし,それぞれのアーキテクチャステートが,複数のプロセッサ実行リソースの一式を共有することにより遂行される。
【0017】
図1Bは,ハイパースレッディング技術をサポートしている1つのプロセッサを伴うシステムの一例を説明するブロック図である。システム101は,物理プロセッサ150が2つの論理プロセッサ155,160として認識されるために,2つのアーキテクチャステート185,190を有する物理プロセッサ150を備える。2つの論理プロセッサ155,160は,同じ複数の実行リソース165,複数のキャッシュ170,システムバス175およびメインメモリ180を共有する。物理プロセッサ150は,複数の論理プロセッサ155,160のどちらが利用可能かに依存してインターリーブ方式で複数のスレッドをスケジュールする。ハイパースレッディング技術は,複数のプロセッサ実行リソース165および全体のスループットの増加した活用をもたらす。」

H.「【0039】
図4Aは,2つの例のスレッド401および402を説明する。それぞれのスレッドは,繰り返し,異なる時刻にディスパッチされる。この例において,スレッドがディスパッチされるたびにそれは,アクティビティと称される。例えば,複数のアクティビティ405および410は,異なる時刻にディスパッチされた同じスレッド401に関連する。同様に,複数のアクティビティ415および420は,同じスレッド402に関連する。この例において,第二のスレッド402は,第一のスレッド401に依存しており,第一のスレッド401の完了の直後にのみディスパッチされる。例えば,アクティビティ415は,アクティビティ405の完了の後にディスパッチされる。同様に,アクティビティ420は,アクティビティ410の完了の後にディスパッチされる。リアルタイムビデオアプリケーションにおいて,ビデオを取り込む1つのスレッド,ビットストリームを符号化する1つのスレッド,およびビットストリームを送り出す他のスレッドが存在する。これら複数のスレッドは,本来,ビデオフレームバッファ(例えば,バッファ315)およびビットストリームバッファ(例えば,バッファ305)により同期された。通常,データが準備できた場合,次のスレッドは,即座に,データに取りかかる。
【0040】
スレッドがディスパッチされる時刻(1つのアクティビティとして)と,同じスレッドがディスパッチされる次の時刻(他のアクティビティとして)との間の期間は,サイクル期間と称される。ソフトウェアアプリケーションに依存して,サイクル期間は,小さいまたは大きい。サイクル期間が小さい場合,他のアクティビティとの幾つかの実行オーバーラップが存在する。図4Aを参照して,2つのアクティビティ405および410は,同じスレッド401からである。この例において,アクティビティ405とアクティビティ410との間のサイクル期間400は,アクティビティ405およびアクティビティ415の結合された実行時間と比較して小さい。そのようなものとして,アクティビティ410とアクティビティ415との間に実行オーバーラップが存在する。アクティビティ415は,それがディスパッチされる準備ができる前に,アクティビティ405の完了を待つ必要がある。これは,アクティビティ415の実行は,アクティビティ405の完了および出力に依存するからである。アクティビティ410は,しかしながら,アクティビティ415の完了に依存せず,それ故に,アクティビティ415の完了の前にディスパッチされる。これは,オーバーラップ期間490で示されるように,アクティビティ410とアクティビティ415との間の実行オーバーラップをもたらすことを留意すべきである。
【0041】
アクティビティ415は,アクティビティ410がディスパッチされる時刻まで実行している唯一のアクティビティである。これは,システム200が複数の論理プロセッサをサポートする場合,唯一の論理プロセッサは,アクティビティ415を実行することで忙しいが,他の論理プロセッサは,アクティビティ410がディスパッチされるまで,アイドルまたは停止となる。アクティビティ410がディスパッチされた後,2つの論理プロセッサは,期間490の間,2つのアクティビティ410および415を同時に実行することに忙しくなる。アクティビティ415が実行している唯一のアクティビティである期間は,ソフトウェアアプリケーションのシングルアクティビティ部分と称され,アクティビティ415がアクティビティ410と同時に実行している期間は,ソフトウェアアプリケーションのマルチスレッディング部分と称される。実行オーバーラップが存在するので,ソフトウェアアプリケーションは,ソフトウェアアプリケーションが一度に1つのスレッド実行する通常のプロセッサを伴い実行している場合は,より早く完了される。」

5.原査定の備考において周知の技術事項を示す例として引用した周知文献2(特表2008-527501号公報)には,関連する図面と共に,次の事項が記載されている。

J.「【0006】
ますます,マルチスレディングはハードウェアでサポートされている。例えば,1つのアプローチでは,チップマルチプロセッサ(「CMP」)システム(単数チップパッケージ上のマルチプロセッサ)および対称型マルチプロセッサ(「SMP」)システム(複数チップ上のマルチプロセッサ)のようなマルチプロセッサシステムのプロセッサは,各々が複数のソフトウェアスレッドの1つで同時に動作する。マルチスレッド同時処理(「SMT」)と称される別のアプローチでは,単数の物理プロセッサコアが,オペレーティングシステムおよびユーザプログラムにとっては複数の論理プロセッサとして見える。SMTに対しては,複数のソフトウェアスレッドがアクティブになることができ,単数のプロセッサコア上で同時に実行される。すなわち,各論理プロセッサは完全なセットのアーキテクチャ状態を維持するが,キャッシュ,実行ユニット,分岐予測器,制御論理およびバスのような,物理プロセッサの他の多くのリソースは共有される。したがって,SMTに対しては,複数のソフトウェアスレッドからの命令は各論理プロセッサ上で同時に実行される。」

6.原査定の備考において周知の技術事項を示す例として引用した周知文献3(特開2007-328782号公報)には,関連する図面と共に,次の事項が記載されている。

K.「【0003】
本明細書では,マルチスレッディングの2つのモード,即ち,同時マルチスレッディング(SMT)および単一スレッド(ST)・マルチスレッディングを考察する。STマルチスレッディングは,時間多重化マルチスレッディング,即ち,タイム・スライスの使用によるマルチスレッディングである。STモードでは,個々のスレッドおよび仮想プロセッサの両方が,時間のセグメントとして配分されたプロセッサのコンピューティング・キャパシティの一部に割り当てられる。時間のセグメントの各々は「タイム・スライス」と呼ばれる。
【0004】
或る種のプロセッサは,複数のスレッドからのコンピュータ命令を同時に受け付ける「同時マルチスレッディング」または「SMT」と呼ばれる特徴を有する。SMTの基になる考えは,1つのチップ上のプロセッサ・ハードウェアを,マルチスレッド・ワークロードにおける複数のスレッド間で共用することである。SMTは,単一の物理プロセッサに対する命令を,複数の独立したスレッドに単一の処理サイクルで発生させるという技術である。従来のプロセッサ・アーキテクチャでは,一時に,1つのスレッドだけが1つのプロセッサに命令を発生する。本明細書で開示されるSMTを実装するプロセッサの例は,IBM社のPower5プロセッサである。
【0005】
SMTは,各々が複数の実行のスレッドからの命令を同時に受け付けることができる,物理プロセッサに実装される。更に,SMTモードでは,仮想プロセッサおよび仮想プロセッサ上で実行されるスレッドの両方とも,タイム・スライスを通して割り当てることができる。SMTモードで仮想プロセッサにおいて実行されるスレッドは,論理プロセッサにおいて実行されると見なすこともできる。従って,SMTモードで物理プロセッサにおいて実行される仮想プロセッサは,複数の論理プロセッサを支援するものと見なすこともできる。スレッドがSTモードまたはSMTモードのいずれで実行されても,論理プロセッサにおいて実行されるスレッドは,そのプロセッサの論理的性質または仮想的性質を知らないし,それを従来のプロセッサと見なす。
【0006】
多重処理は,STモードまたはSMTモードで複数の論理パーティションをパーティションごとに支援するコンピュータに実装される。各パーティションは,個別のカーネルを含む個別のオペレーティング・システム全体を実装する。カーネルは,カーネル・サービスを提供することによって,論理パーティションにおいて実行されるアプリケーションを支援する。カーネルによって提供されるサービスのタイプは一般には同じであるが,種々のカーネルが種々の方法でサービスを実施することも可能である。このため,カーネルによっては,カーネル・サービスの提供において他のカーネルよりも優れているものがある。しかし,従来技術では,優れたサービスを行うカーネルは,そのようなサービスを他のカーネルと共用することができず,同じタイプの他のカーネルとさえ共用し得ない。例えば,優れたディスクI/Oドライバを有するUNIX(登録商標)(登録商標)カーネルの場合,それは,たとえ他のUNIX(登録商標)(登録商標)カーネルがまったく同じタイプおよびバージョンのものであったとしても,そのような他のUNIX(登録商標)(登録商標)カーネルに抗して作動する実行スレッドにとってそのディスクI/Oドライバを使用可能にすることはできないであろう。」


第6 対比・判断

1.本願発明6について
事案に鑑みて,本願発明6について対比・判断する。

(1)対比
本願発明6と引用発明とを対比する。

ア.引用発明は,「複数のスレッド型のうちの各スレッド型に関して,そのスレッド型と,前記マルチスレッド・コンピュータ内の共通の物理サブシステム内に物理的に配置されたコンピュータ・リソースのセットを関連付け」て,「スレッドをアクティブ化する要求に応答して,前記スレッドを,該スレッドの前記スレッド型に関連付けされているコンピュータ・リソースのセットに割り当てる」ものであり,また,当該「複数のスレッド型」については,「スレッド・アクティブ化ルーチン」において,「決定されたスレッド型にリソースのセットがすでに割り付けられている否かを決定」するものであり,その上で,「リソースのセットがすでに割り付けられている」スレッド型とそうでないスレッド型とで区別されるものであることから,「スレッド型」が複数種類存在することは明らかであり,よって,引用発明は,種類の異なる複数のスレッドの実行を管理する方法であるといえる。
そして,引用発明における,「1つ以上のマイクロプロセッサ」,「複数のスレッド」が,本願発明6における「少なくとも1つの中央処理装置」,「複数の命令スレッド」に相当するので,
後記する点で相違するものの,本願発明6である,「コンピュータシステム(18)の少なくとも1つの中央処理装置(24,26)に属する複数の仮想プロセッサ(24C,24S,26C,26S)上で複数の命令スレッドを組み合わせて実行するのを管理する方法」と,
引用発明である,「複数の個別の物理サブシステムを含むマルチスレッド・コンピュータにおいてコンピュータ・リソースを動的に割り付ける方法」であり,「(a)複数のスレッド型のうちの各スレッド型に関して,そのスレッド型と,前記マルチスレッド・コンピュータ内の共通の物理サブシステム内に物理的に配置されたコンピュータ・リソースのセットを関連付けすること,および,(b)スレッドをアクティブ化する要求に応答して,前記スレッドを,該スレッドの前記スレッド型に関連付けされているコンピュータ・リソースのセットに割り当てること,を含む方法」であって,「各物理サブシステムは,コンピュータ・リソースのセット,たとえば共有メモリ,1以上のマイクロプロセッサ,共有キャッシュおよび1以上のローカル・キャッシュなどの1以上のレベルのキャッシュ・メモリを含んで」いるものとは,
“コンピュータシステムの少なくとも1つの中央処理装置上で複数の命令スレッドを組み合わせて実行するのを管理する方法”である点で共通する。

イ.引用発明における「コンピュータ・リソースのセット」は,「スレッド」を割り当てる対象であるところ,「マルチスレッド・コンピュータ内の共通の物理サブシステム内に物理的に配置された」ものであるから,本願発明6において「スレッド」を実行させるところの「仮想プロセッサ」と,“資源”という点で共通するといえる。また,上記第2の1.を踏まえると,引用発明における「スレッド型」は,本願発明6における「所定のタイプ」に相当するといえる。
また,引用発明における,「(a)複数のスレッド型のうちの各スレッド型に関して,そのスレッド型と,前記マルチスレッド・コンピュータ内の共通の物理サブシステム内に物理的に配置されたコンピュータ・リソースのセットを関連付けする」ことは,「スレッドを,該スレッドの前記スレッド型に関連付けされているコンピュータ・リソースのセットに割り当てる」ために行うものであり,本願発明6における「複数の所定のタイプ(S,C)に応じて実行する前記命令スレッドを分類する予備ステップ(100)」に対応するものであるから,引用発明の上記「(a)複数のスレッド型のうちの各スレッド型に関して,そのスレッド型と,前記マルチスレッド・コンピュータ内の共通の物理サブシステム内に物理的に配置されたコンピュータ・リソースのセットを関連付けする」ことは,本願発明6における上記「予備ステップ(100)」を含むところの,「前記仮想プロセッサに前記命令スレッドの実行を分散するステップ(104)」に相当するといえる。
そうすると,後記する点で相違するものの,本願発明6である,「前記仮想プロセッサに前記命令スレッドの実行を分散するステップ(104)を含む方法において,複数の所定のタイプ(S,C)に応じて実行する前記命令スレッドを分類する予備ステップ(100)を含み,前記命令スレッドの実行を分散するステップ(104)で,実行する命令スレッドそれぞれをタイプ(S,C)に応じて仮想プロセッサに方向付ける,方法」と,
引用発明である,「(a)複数のスレッド型のうちの各スレッド型に関して,そのスレッド型と,前記マルチスレッド・コンピュータ内の共通の物理サブシステム内に物理的に配置されたコンピュータ・リソースのセットを関連付けすること,および,(b)スレッドをアクティブ化する要求に応答して,前記スレッドを,該スレッドの前記スレッド型に関連付けされているコンピュータ・リソースのセットに割り当てること,を含む方法」とは,
“資源に前記命令スレッドの実行を分散するステップを含む方法において,複数の所定のタイプに応じて実行する前記命令スレッドを分類する予備ステップを含む,方法”である点で共通する。

ウ.以上,ア.?イ.において検討した事項から,本願発明6と,引用発明との一致点,及び,相違点は,次のとおりである。

[一致点]
コンピュータシステムの少なくとも1つの中央処理装置上で複数の命令スレッドを組み合わせて実行するのを管理する方法であって,
資源に前記命令スレッドの実行を分散するステップを含む方法において,複数の所定のタイプに応じて実行する前記命令スレッドを分類する予備ステップを含む,方法。

[相違点1]
“中央処理装置上で複数の命令スレッドを組み合わせて実行する”点に関して,
本願発明6は,「中央処理装置(24,26)に属する複数の仮想プロセッサ(24C,24S,26C,26S)上で複数の命令スレッドを組み合わせて実行する」ものであるのに対し,
引用発明は,「仮想プロセッサ上で複数の命令を実行する」点については言及されていない点。

[相違点2]
命令スレッドの実行を分散する“資源”に関して,
本願発明6においては,“資源”が,「仮想プロセッサ」であるのに対し,
引用発明における“資源”である「リソース」に,「仮想プロセッサ」が含まれることが明言されていない点。

[相違点3]
命令スレッドの実行を分散するステップに関して,
本願発明6においては,「実行する命令スレッドそれぞれをタイプ(S,C)に応じて仮想プロセッサに方向付ける」ものであるのに対し,
引用発明においては,そのような特定はなされていない点。

[相違点4]
本願発明6は,「各中央処理装置の仮想プロセッサ(24C,24S,26C,26S)は,前記中央処理装置に属する内部資源を共有することにより同時マルチスレッディングを実施する機能を有する複数の論理区画に相当する」ものであるのに対して,
引用発明は,「仮想プロセッサ」についてそのような特定はなされていない点。

(2)相違点についての判断
事案に鑑みて,上記相違点3について先に検討する。

上記第2の1.を踏まえると,相違点3に係る本願発明6において命令スレッドのタイプとされている記載「タイプ(S,C)」は,「サービスタイプ」,「計算タイプ」の意味であると解することができる。
それに対し,引用発明は,「スレッド型」についてそのような特定はなく,また,「スレッド型」によって割り付けられる「リソースのセット」についても,「最初に,決定されたスレッド型にリソースが割り付けられていない場合は,物理サブシステム上のリソースのセットを決定されたスレッド型に,たとえば単一もしくは既知の物理サブシステムのセットに局所化されているもっとも可用性の高いリソースのセットに対する対称割り当てによって割り当て,たとえば,異なるリソースのセットごとに異なる物理サブシステムに関連付けする場合であれば,もっとも可用性の高い物理サブシステムに関するリソースを,決定されたスレッド型に割り当てることができ,また,単一物理サブシステム上のリソースを割り付けることが可能でないか,実際的でない場合には,スレッド型を複数の部分型にトランスペアレントに分割し,複数の物理サブシステム上のリソースの個別のセットに1つの型を関連付けすることができ,決定されたスレッド型にすでにリソースが割り付けられている場合には,新しいスレッドを,そのスレッド型にすでに割り付け済みのリソースに割り当てる」ものであって,「タイプ(S,C)に応じて」「方向付け」られるものとはいえない。
そして,相違点3に係る本願発明6の構成は,上記引用文献2,及び,周知文献1ないし3にも記載されておらず,また,本願優先日前において周知技術であるともいえない。
そうすると,引用発明に基づいて,相違点3に係る構成とすることは,当業者が容易になし得ることであるとはいえない。

したがって,本願発明6は,相違点1,2,ないし,4を検討するまでもなく,当業者であっても引用発明,引用文献2に記載された技術的事項,及び,周知文献1ないし3に記載された周知技術に基づいて容易に発明できたものであるとはいえない。

2.本願発明1-5,7-10について
本願発明1は,本願発明6を別のカテゴリーで表現するとともに,上記相違点3に係る本願発明6の上記構成と実質的に同じ構成である,「前記命令スレッドの実行を分散するように構成される前記マネージャ(38)は,前記命令スレッドが分類された前記所定のタイプ(C,S)に基づき,実行する前記命令スレッドを前記仮想プロセッサ(24C,24S,26C,26S)に方向付けるように設計され」るとの点を備えるものであるから,本願発明6と同じ理由により,当業者であっても引用発明,引用文献2に記載された技術的事項,及び,周知文献1ないし3に記載された周知技術に基づいて容易に発明できたものであるとはいえない。
また,本願発明2-5,7-10は,本願発明1,または,6を更に限定したものであるので,同様に,当業者であっても引用発明,引用文献2に記載された技術的事項,及び,周知文献1ないし3に記載された周知技術に基づいて容易に発明できたものであるとはいえない。


第7 原査定について

1.原査定の概要

原査定(平成26年8月26日付け拒絶査定)の概要は次のとおりである。

「請求項1-10について
出願人は,補正書により補正を行うとともに,意見書で引用文献1,2記載された発明は「1つの中央処理装置(単一物理資源)内に構成された複数の仮想プロセッサにより複数のスレッドを分散して実行する同時マルチスレッディング(SMT)を実施していません」と主張している。
上記出願人の主張について検討する。
1つの中央処理装置(単一物理資源)内に構成された複数の仮想プロセッサにより複数のスレッドを分散して実行する同時マルチスレッディング(SMT)は周知(例えば,特表2007-522561号公報の段落【0005】,特表2008-527501号公報の段落【0006】,特開2007-328782号公報の段落【0003】-【0006】等参照)であって,引用文献1に記載された発明において,SMTにより仮想プロセッサを生成することに格別の困難性は認められない。
したがって,出願人の主張は採用しない。」

2.原査定の理由(特許法第29条第2項)について

審判請求時の補正により,本願発明1-10は,上記第4における,平成27年1月5日付けの手続補正で補正された特許請求の範囲の請求項1-10に記載された事項を有するものとなっており,そして,当業者であっても,拒絶査定において引用された引用文献1ないし2,及び,周知文献1ないし3に記載された周知技術に基づいて,容易に発明できたものとはいえない。
したがって,上記1.における,原査定の理由を維持することはできない。


第8 むすび

以上のとおり,原査定の理由によっては,本願を拒絶することはできない。
また,他に本願を拒絶すべき理由を発見しない。
よって,結論のとおり審決する。
 
審決日 2018-01-29 
出願番号 特願2012-530310(P2012-530310)
審決分類 P 1 8・ 121- WY (G06F)
P 1 8・ 561- WY (G06F)
P 1 8・ 572- WY (G06F)
最終処分 成立  
前審関与審査官 漆原 孝治  
特許庁審判長 辻本 泰隆
特許庁審判官 須田 勝巳
仲間 晃
発明の名称 命令スレッドを組み合わせた実行の管理システムおよび管理方法  
代理人 尾畑 雄一  
代理人 村越 智史  
代理人 ▲吉▼川 俊雄  

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