弁護士法人ITJ法律事務所

裁判例


戻る

平成29年11月30日判決言渡
平成28年(行ケ)第10078号審決取消請求事件
口頭弁論終結日平成29年11月2日
判決
原告ブルエスアーエス
同訴訟代理人弁理士村越智史
今村光広
被告特許庁長官
同指定代理人石井茂和
高木進
野崎大進
板谷玲子
主文
1特許庁が不服2015-96号事件について平成27年11月17日
にした審決を取り消す。
2訴訟費用は被告の負担とする。
事実及び理由
第1請求
主文同旨
第2事案の概要
本件は,特許出願拒絶査定に対する不服審判請求を不成立とした審決の取消訴訟
である。争点は,補正要件違反(新規事項の追加,目的外補正,独立特許要件違反)
の有無,進歩性の有無(相違点の判断)である。
1特許庁における手続の経緯
原告は,名称を「命令スレッドを組み合わせた実行の管理システムおよび管理方
法」とする発明につき,平成22年(2010年)9月15日を国際出願日として
特許出願(請求項の数10)をし(パリ条約による優先権主張平成21年〔20
09年〕9月25日〔本願優先日〕・フランス,国際公開番号WO2011/036
377。甲6),平成26年3月31日,手続補正をした(請求項の数10。甲9)
が,平成26年8月26日付けで拒絶査定を受けたので,平成27年1月5日,拒
絶査定不服審判請求(不服2015-96号。甲11)及び手続補正をした(本件
補正,請求項の数10。甲12)。
特許庁は,平成27年11月17日,「本件審判の請求は,成り立たない。」との
審決をし,その謄本は,同年12月1日,原告に送達された。
2本件発明の要旨
(1)平成26年3月31日付けで補正された本願の特許請求の範囲の請求項
1~10に係る発明(以下,請求項の番号を用いて「本願発明1」~「本願発明1
0」といい,これらを総称して「本願発明」という。)は,以下のとおりのものであ
る(甲9)。
【請求項1】
命令スレッドの実行を管理するコンピュータシステム(18)であって,各中央
処理装置が,前記各中央処理装置に属する複数の仮想プロセッサ(24C,24S,
26C,26S)上で,複数の命令スレッドを組み合わせて実行するように構成さ
れる少なくとも1つの中央処理装置(24,26)と,
前記仮想プロセッサに命令スレッドの実行を分散するように構成されるマネージャ
(38)と,を有するコンピュータシステム(18)において,実行する前記命令
スレッドを複数の所定のタイプに応じて分類する分類手段(36)を有し,
前記命令スレッドの実行を分散するように構成される前記マネージャ(38)を,
前記命令スレッドが分類された前記複数の所定のタイプのうちの1つに基づき,実
行する前記命令スレッドを前記仮想プロセッサ(24C,24S,26C,26S)
に方向付けるように設計するコンピュータシステムであって,
前記各中央処理装置の仮想プロセッサ(24C,24S,26C,26S)は,前
記中央処理装置に属する内部資源を共有することにより同時マルチスレッディング
を実施する機能を有する複数の論理区画に相当する,ことを特徴とするコンピュー
タシステム。
【請求項2】
前記中央処理装置(24,26)の各仮想プロセッサ(24C,24S,26C,
26S)を前記所定のタイプの1つに関連付ける手段(C,S)を備える,請求項
1に記載のコンピュータシステムにおいて,前記命令スレッドの実行を分散するよ
うに構成される前記マネージャ(38)を,実行する前記命令スレッドをそれぞれ
該スレッドと同じタイプの仮想プロセッサ(24C,24S,26C,26S)に
方向付けるように設計するコンピュータシステムであって,
前記各中央処理装置の仮想プロセッサ(24C,24S,26C,26S)は,前
記中央処理装置に属する内部資源を共有することにより同時マルチスレッディング
を実施する機能を有する複数の論理区画に相当する,ことを特徴とするコンピュー
タシステム。
【請求項3】
前記中央処理装置(24,26)は2つの仮想プロセッサ(24C,24S,2
6C,26S)を有し,1つは命令スレッドの第1のタイプ(C)に関連付け,も
う1つは命令スレッドの第2のタイプ(S)に関連付け,実行するコンピュータプ
ロセスはそれぞれ前記第1のタイプか前記第2のタイプである,請求項1または2
に記載のコンピュータシステム。
【請求項4】
-「計算」と呼ぶ命令スレッドの前記第1のタイプ(C)は,結果を供給す
るように前記コンピュータシステムが実行するようになっているプログラムに対し
て,該プログラムの実行に参加して結果を直接生成する命令スレッドに関係し,
-「サービス」と呼ぶプロセスの前記第2のタイプ(S)は,該プログラム
の実行に参加して「計算」タイプの前記命令スレッドに付属サービスを供給する命
令スレッドに関係する,請求項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)を含む方法において,
複数の所定のタイプに応じて実行する前記命令スレッドを分類する予備ステップ
(100)を含み,前記命令スレッドの実行を分散するステップ(104)で,実
行する命令スレッドそれぞれをタイプに応じて仮想プロセッサに方向付ける,方法
であって,
前記各中央処理装置の仮想プロセッサ(24C,24S,26C,26S)は,前
記中央処理装置に属する内部資源を共有することにより同時マルチスレッディング
を実施する機能を有する複数の論理区画に相当する,ことを特徴とする方法。
【請求項7】
前記分類ステップ(100)で,命令スレッドを管理するアプリケーションプロ
グラミングインターフェースの関数でタイプを識別するパラメータに基づいて,前
記命令スレッドをそれぞれタイプで分類する,請求項6に記載の方法。
【請求項8】
前記分類ステップ(100)で,命令スレッドの実行を含むプログラムの実行コ
マンドでタイプを識別するパラメータに基づいて,前記命令スレッドをそれぞれこ
のタイプで分類する,請求項6に記載の方法。
【請求項9】
スーパーコンピュータタイプのサーバクラスタ(10)の複数の処理ノード上で
複数の命令スレッドを実行することの管理に対する請求項6から8のいずれか一項
に記載の方法の適用であって,各処理ノード(18)が,少なくとも1つの中央処
理装置に属する複数の仮想プロセッサ(24C,24S,26C,26S)上で複
数の命令スレッドを組み合わせて実行する前記少なくとも1つの中央処理装置(2
4,26)を有する適用であって,
前記各中央処理装置の仮想プロセッサ(24C,24S,26C,26S)は,前
記中央処理装置に属する内部資源を共有することにより同時マルチスレッディング
を実施する機能を有する複数の論理区画に相当する,ことを特徴とする適用。
【請求項10】
通信ネットワークからダウンロード可能なコンピュータプログラムおよび/また
はコンピュータで再生可能な媒体に記録したコンピュータプログラムおよび/また
はプロセッサのなかでもとりわけコンピュータのオペレーティングシステム(34)
で実行可能なコンピュータプログラムであって,前記プログラムをコンピュータ上
で実行した場合に,請求項6から8のいずれか一項に記載の複数の命令スレッドを
組み合わせた実行の管理方法のステップを実行するプログラムコードの命令を含む
コンピュータプログラムであって,
各中央処理装置の仮想プロセッサ(24C,24S,26C,26S)は,前記中
央処理装置に属する内部資源を共有することにより同時マルチスレッディングを実
施する機能を有する複数の論理区画に相当する,ことを特徴とするコンピュータシ
ステム。
(2)本件補正によって補正された後の本願の特許請求の範囲の請求項1~1
0に係る発明(以下,請求項の番号を用いて「本願補正発明1」~「本願補正発明
10」といい,これらを総称して「本願補正発明」という。)は,以下のとおりのも
のである(甲12。下線は,補正箇所を示す。)
【請求項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,2
6C,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つの中央処理装置(2
4,26)を有する適用であって,
前記各中央処理装置の仮想プロセッサ(24C,24S,26C,26S)は,前
記中央処理装置に属する内部資源を共有することにより同時マルチスレッディング
を実施する機能を有する複数の論理区画に相当する,ことを特徴とする適用。
【請求項10】
通信ネットワークからダウンロード可能なコンピュータプログラムおよび/また
はコンピュータで再生可能な媒体に記録したコンピュータプログラムおよび/また
はプロセッサのなかでもとりわけコンピュータのオペレーティングシステム(34)
で実行可能なコンピュータプログラムであって,前記プログラムをコンピュータ上
で実行した場合に,請求項6から8のいずれか一項に記載の複数の命令スレッドを
組み合わせた実行の管理方法のステップを実行するプログラムコードの命令を含む
コンピュータプログラムであって,
各中央処理装置の仮想プロセッサ(24C,24S,26C,26S)は,前記中
央処理装置に属する内部資源を共有することにより同時マルチスレッディングを実
施する機能を有する複数の論理区画に相当する,ことを特徴とするコンピュータシ
ステム。
3審決の理由の要点
(1)補正の適否
ア新規事項
独立請求項である本件補正後の請求項6と,それを引用する本件補正後の請求項
7及び8の「タイプ(S,C)」という記載は,平成24年4月17日付けで提出さ
れた明細書,請求の範囲の日本語による翻訳文及び国際出願の願書に添付された図
面(以下,これらを併せて「当初明細書等」という。甲6)に記載されたものでは
なく,本件補正は,当初明細書等の記載の範囲内でされたものではない。
イ目的要件
仮に,本件補正が,当初明細書等の記載の範囲内でされたものであるとしても,
本件補正前の請求項6~8に対する本件補正における補正事項は,特許請求の範囲
の限定的減縮,明瞭でない記載の釈明,誤記の訂正のいずれにも該当しない。
そして,本件補正において,請求項の削除は行われていない。
ウ独立特許要件
仮に,本件補正が,当初明細書等の記載の範囲内でされたものであって,目的要
件を満たすものであったとしても,本願補正発明6と甲1(特開2004-220
608号公報)に記載された発明(以下,「甲1発明」という。)との一致点及び相
違点は,以下のとおりであり,相違点1~4に係る事項は,甲2(特開2004-
348462号公報)に記載された発明及び当該技術分野における周知の技術事項
(甲3~5)に基づいて当業者が適宜なし得る事項であるから,本願補正発明6は,
これらの発明及び周知の技術事項に基づいて当業者が容易に発明することができた。
したがって,本願補正発明6は,特許出願の際独立して特許を受けることができ
ない。
【一致点】
コンピュータシステムの少なくとも1つの中央処理装置上で複数の命令スレッド
を組み合わせて実行するのを管理する方法であって,
資源に命令スレッドの実行を分散するステップを含む方法において,複数の所定
のタイプ(S,C)に応じて実行する前記命令スレッドを分類する予備ステップを
含み,前記命令スレッドの実行を分散するステップで,実行する命令スレッドそれ
ぞれをタイプ(S,C)に応じて資源に方向付ける,方法。
【相違点1】
“中央処理装置上で複数の命令スレッドを組み合わせて実行する”に関して,
本件補正発明6においては,“中央処理装置に属する複数の仮想プロセッサ上で
複数の命令スレッドを組み合わせて実行する”ものであるのに対して,
引用発明においては,「仮想プロセッサ上で複数の命令を実行する」点については,
特に言及されていない点。
【相違点2】
“資源”に関して,
本件補正発明6においては,“資源”が,「仮想プロセッサ」であるのに対して,
引用発明における“資源”である「リソース」に,「仮想プロセッサ」が含まれる
ことが明言されていない点。
【相違点3】
“実行する命令スレッドそれぞれをタイプ(S,C)に応じて資源に方向付ける”
ことに関して,
本件補正発明6においては「仮想プロセッサに方向付ける」ものであるのに対し
て,
引用発明においては,「リソースの共通セットに割り当てられる」ものである点。
【相違点4】
本件補正発明6においては,「各中央処理装置の仮想プロセッサ(24C,24S,
26C,26S)は,前記中央処理装置に属する内部資源を共有することにより同
時マルチスレッディングを実施する機能を有する複数の論理区画に相当する」もの
であるのに対して,
引用発明においては,「仮想プロセッサ」についての言及がない点。
(2)進歩性
本願発明6と甲1発明との一致点及び相違点は,以下のとおりであり,相違点a
~dに係る事項については,上記(1)の相違点1~4に係る事項において検討した
とおりであるから,本願発明6は,甲1発明,甲2に記載された発明及び当該技術
分野における周知の技術事項(甲3~5)に基づいて当業者が容易に発明をするこ
とができた。
【一致点】
コンピュータシステムの少なくとも1つの中央処理装置上で複数の命令スレッド
を組み合わせて実行するのを管理する方法であって,
資源に命令スレッドの実行を分散するステップを含む方法において,複数の所定
のタイプに応じて実行する前記命令スレッドを分類する予備ステップを含み,前記
命令スレッドの実行を分散するステップで,実行する命令スレッドそれぞれをタイ
プに応じて資源に方向付ける,方法。
【相違点a】
“中央処理装置上で複数の命令スレッドを組み合わせて実行する”に関して,
本願発明6においては,“中央処理装置に属する複数の仮想プロセッサ上で複数
の命令スレッドを組み合わせて実行する”ものであるのに対して,
引用発明においては,「仮想プロセッサ上で複数の命令を実行する」点については,
特に言及されていない点。
【相違点b】
“資源”に関して,
本願発明6においては,“資源”が,「仮想プロセッサ」であるのに対して,
引用発明における“資源”である「リソース」に,「仮想プロセッサ」が含まれる
ことが明言されていない点。
【相違点c】
“実行する命令スレッドそれぞれをタイプに応じて資源に方向付ける”ことに関
して,
本願発明6においては「仮想プロセッサに方向付ける」ものであるのに対して,
引用発明においては,「リソースの共通セットに割り当てられる」ものである点。
【相違点d】
本願発明6においては,「各中央処理装置の仮想プロセッサ(24C,24S,2
6C,26S)は,前記中央処理装置に属する内部資源を共有することにより同時
マルチスレッディングを実施する機能を有する複数の論理区画に相当する」もので
あるのに対して,
引用発明においては,「仮想プロセッサ」についての言及がない点。
第3原告主張の審決取消事由
1補正の適法性についての判断の誤り
(1)新規事項追加禁止要件違反についての判断の誤り
次のとおり,本件補正によってされた請求項6における「タイプ」を「タイプ(S,
C)」に変更する補正事項は,当初明細書等に明示的に記載されているか,少なくと
も当初明細書等の記載から自明なものであり,新規事項追加禁止要件を充たしてい
るから,請求項6を引用する請求項7及び8についても,上記要件を満たしている。
ア(ア)a請求項6において,「タイプ(S,C)」は,①「複数の所定のタイ
プ(S,C)に応じて実行する前記命令スレッドを分類する」及び②「実行する命
令スレッドそれぞれをタイプ(S,C)に応じて仮想プロセッサに方向付ける」と
いう発明特定事項において用いられている。
当初明細書等の【0039】の記載を考慮すると,①「複数の所定のタイプ(S,
C)に応じて実行する前記命令スレッドを分類する」という発明特定事項は,命令ス
レッドのタイプ(例えば「計算」と「サービス」と呼ばれる二つのタイプ)に応じて,
実行する命令スレッドを分類する,という意味であることが容易に理解できる。
当初明細書等の【0047】の記載を考慮すると,②「実行する命令スレッドそれ
ぞれをタイプ(S,C)に応じて仮想プロセッサに方向付ける」という発明特定事項
は,実行する命令スレッドを,当該命令スレッドのタイプ(例えば「計算」と「サー
ビス」と呼ばれる二つのタイプ)に応じて仮想プロセッサに方向付ける,という意味
であることが理解できる。
以上の理解に基づくと,これらの発明特定事項において用いられている「タイプ(S,
C)」は,「命令スレッドのタイプ(S,C)」を意味することも理解できる。
b当初明細書等において,「S」及び「C」が仮想プロセッサのタイプを
表すために用いられていることはあるにしても,命令スレッドの第1のタイプ(計算
タイプ)を表すために「C」,命令スレットの第2のタイプ(サービスタイプ)を表す
ために「S」が用いられている(甲6【請求項3】,【請求項4】,【図1】)。
【図1】
図1においては,仮想プロセッサ24C,24S,26C,26Sを表すブロッ
クの各々の右下隅に小さなブロックが描かれている。そして,仮想プロセッサ24
C及び仮想プロセッサ26Cの右下隅のブロックにはそれぞれ参照符号「C」が付
され,仮想プロセッサ24S及び仮想プロセッサ26Sの右下隅のブロックにはそ
れぞれ参照符号「S」が付されている。仮想プロセッサを示す符号としては,既に
24C,24S,26C,26Sが用いられているから,上記の小さい方のブロッ
クの各々に付されている参照符号は仮想プロセッサのタイプを示すものではない。
他方,請求項3には,「前記中央処理装置(24,26)は2つの仮想プロセッサ
(24C,24S,26C,26S)を有し,一つは命令スレッドの第1のタイプ
(C)に関連付け,もう一つは命令スレッドの第2のタイプ(S)に関連付け」と
記載されている。この請求項3の記載に沿って図1を理解すると,図1の仮想プロ
セッサ24C,26Cを表すブロックの各々の右下隅にあり「C」の符号が付され
ている小ブロックは,命令スレッドの第1のタイプ(C)を表していると容易に理
解することができる。符号「S」についても同様である。
(イ)括弧書きされている「(S,C)」は,請求項の「タイプ」という用語
と発明の詳細な説明や図面に記載された具体的な構成との対応関係を明確にするた
めに,「タイプ」の後の括弧内に発明の詳細な説明や図面で使用されている参照符号
「S」及び「C」を付加したものである。
当初明細書等の【0046】,【0047】及び【図1】において,計算タイプを
表す符号として「C」が,サービスタイプを表す符号として「S」が用いられてい
る。
したがって,「タイプ」に「(S,C)」を付加することにより,「タイプ(S,C)」
が発明の詳細な説明や図面におけるサービスタイプ及び計算タイプに対応することが
特定されている。
参照符号の付加により当初明細書等の記載から導き出すことができないような技術
事項が導入されることはない。
イ(ア)本件補正による①「複数の所定のタイプ(S,C)に応じて実行する前
記命令スレッドを分類する」という補正事項は,当初明細書等の記載から自明なもの
である。
当初明細書等の請求項4及び【0039】の記載に鑑みると,当業者は,当初明
細書等には,①「命令スレッドの第1のタイプ(C)及び命令スレッドの第2のタ
イプ(S)という二つの命令スレッドのタイプに応じて,実行する命令スレッドを
分類する」ことが記載されていることを理解することができる。
(イ)本件補正による②「実行する命令スレッドそれぞれをタイプ(S,C)
に応じて仮想プロセッサに方向付ける」という補正事項は,当初明細書等の記載か
ら自明なものである。
当業者は,発明の詳細な説明において命令スレッドのタイプについて「C」や「S」
の符号を付さずに説明がされていても,命令スレッドのタイプとしては第1のタイ
プ(C)及び第2のタイプ(S)があることを当然に理解できる。
そうすると,当業者は,当初明細書等の【0047】の記載から,当初明細書等
には,②「実行する命令スレッドをそれぞれタイプに応じて1つの仮想プロセッサ
に方向付けし,さらに正確にはタイプが同じ仮想プロセッサにも方向付けするよう
に設計する。」ことが記載されていると理解することができる。
ウ(ア)被告の主張によると,本件補正後の「タイプ(S,C)」という用語の
意義は,本件補正前の「タイプ」という用語の意義と全く同じということになる。
請求項には,「特許出願人が特許を受けようとする発明を特定するために必要と認め
る事項のすべて」(特許法36条5項)が記載されているのであるから,請求項に記載
された事項は全て発明を特定するために必要な事項であって,このような発明を特定
するための事項を無視して発明の要旨認定を行うことは許されない。
(イ)特許法施行規則様式29条の2の[備考]14のロは,発明の要旨認定
の準則とされる規定ではない。特許法36条5項によると,請求項に記載された符号
も当該請求項に係る発明を特定するために必要な事項であり,このような符号の記載
も考慮した上で発明の要旨を認定すべきである。
乙1は,請求項において図面に対応する符号が用いられたからといって,当該請求
項に係る発明を当該符号が用いられた図面に対応する実施例に限定して解釈されるこ
とはないということを説明しているにすぎず,当該符号を考慮せずに要旨認定を行う
ことを説明しているのではない。
(2)目的要件違反についての判断の誤り
次のとおり,本件補正における①「複数の所定のタイプに応じて実行する前記命令
スレッドを分類する」及び②「実行する命令スレッドそれぞれをタイプに応じて仮想
プロセッサに方向付ける」の「タイプ」を「タイプ(S,C)」と変更する補正は,特
許請求の範囲の限定的減縮に当たり,本願補正は,特許請求の範囲の限定的減縮を目
的としたものであるから,目的要件を満たしている。
ア「タイプ」を「タイプ(S,C)」と変更する本願補正は,元々記載されて
いた命令スレッドの「タイプ」に符号「(S,C)」を付加して,請求項の「タイプ」
という用語と発明の詳細な説明や図面に記載された具体的な構成との対応関係をより
明確にしたものである。
本願補正前の「タイプ」は,命令スレッドのタイプという意味を有していたが,
これを「タイプ(S,C)」と補正することにより,請求項6で用いられている「タ
イプ」が発明の詳細な説明や図面に記載された「サービスタイプ」や「計算タイプ」
と対応することがさらに特定された。
イ(ア)当初明細書等の【0039】には,命令スレッドの複数の所定のタイプ
として,第1のタイプ(第1のタイプ(C))及び第2のタイプ(第2のタイプ(S))
が挙げられているが,「複数の所定のタイプに応じて,また特に,」と記載されている
ことから,この第1のタイプ(C)及び第2のタイプ(S)は例示であることがわか
る。
したがって,命令スレッドの「複数の所定のタイプ」には,第1のタイプ(C)
及び第2のタイプ(S)以外のタイプも含まれることが想定されている。
(イ)本件補正前の①「複数の所定のタイプに応じて実行する前記命令ス
レッドを分類する」という発明特定事項は,
A1:第1のタイプ(C)や第2のタイプ(S)を含む複数の所定のタイプに応
じて実行する命令スレッドを分類するという態様,及び
A2:第1のタイプ(C)や第2のタイプ(S)を含まない複数の所定のタイプ
に応じて実行する命令スレッドを分類するという態様,
のいずれの態様も包含している。
本件補正後の請求項6においては,「複数の所定のタイプ」が当初明細書等の第1
のタイプ(C)及び第2のタイプ(S)に対応するものであることが特定された。
したがって,本件補正により,前記態様A2が特許請求の範囲から除外されたこ
とになる。
(ウ)本件補正前の②「実行する命令スレッドそれぞれをタイプに応じて
仮想プロセッサに方向付ける」という発明特定事項は,
B1:実行する命令スレッドを第1のタイプ(C)や第2のタイプ(S)を含む
タイプに応じて仮想プロセッサに方向付けるという態様,及び
B2:第1のタイプ(C)や第2のタイプ(S)を含まないタイプに応じて仮想
プロセッサに方向付けるという態様,
のいずれの態様も包含している。
本件補正後の請求項6においては,「タイプ(S,C)」が当初明細書等の第1の
タイプ(C)及び第2のタイプ(S)に対応する概念であることが特定された。
したがって,本件補正により,前記態様B2が特許請求の範囲から除外されたこ
とになる。
ウ本件補正の前後で,請求項6~8に係る発明の産業上の利用分野及び解
決課題がそれぞれ同一であることも明らかである。
エ仮に,前記内容の本件補正により,補正後の内容が補正前の内容から実質
的に変更されていないとしても,当該補正事項は,特許請求の範囲の限定的減縮に該
当する。
すなわち,一般に,審判請求時の補正において特許請求の範囲の限定的減縮を目的
とする補正が許容されているのは,このような補正は,審査・審理の対象を大幅に変
更するものではなく従前の審査結果を利用して効率的に審査・審理を行うことができ
るためである。
上記の補正事項に係る補正は,審査・審理の対象を大幅に変更するものではないか
ら,従前の審査結果を利用することが可能であり,特許法によって許容された補正と
いえる。
(3)独立特許要件違反についての判断の誤り
ア甲1発明において相違点3に係る発明特定事項を採用することは容易にな
し得たことではないこと
(ア)審決の甲2に記載された技術事項に関する認定は誤っていること
a甲2に記載されているのは,模擬対象の模擬処理を,模擬イベント
交換頻度及び模擬データ転送量に応じて,論理プロセッサに割り付ける分散シミュ
レーションシステムであり,甲2には,この技術について,次の点が開示されてい
る。
(a)甲2に記載された技術は,訓練用シミュレーション,計画・予測・
解析用シミュレーションなど,様々な用途のシミュレーションを実行する分散シミ
ュレーションシステムに関するものである。
(b)従来から,分散シミュレーションシステムを用いて,地面や路面
などの模擬空間における地形や地勢を模擬することが行われていた。
(c)地表面,車両,航空機などの模擬対象に応じてシミュレーション
プログラムを分割して複数の論理プロセッサで分散処理する場合に,分割されたプ
ログラムを実行する論理プロセッサ間で頻繁にデータをやり取りする必要があるた
め,論理プロセッサ間で大きなサイズのデータをやり取りする必要がある場合や,
データ交換頻度が非常に高い場合などでは,システム全体として当該シミュレーシ
ョンを高速に処理することが困難になる。
地表面のような模擬環境と車両や航空機などの移動する模擬物体とでは,互いに
関連しあうデータを常にやり取りする必要がある。このため,これらに対応するプ
ログラムを実行する論理プロセッサ間では,データ交換頻度が非常に高くなり,や
り取りすべきデータ量も膨大なものとなる。
模擬対象とされた地表面が非常に広範囲であったり,模擬対象とすべき車両や航
空機などの物体が非常に多数であると,これらに対応した特定のプログラムの負荷
が高くなってしまうため,システム全体として処理速度が落ちてしまう。
(d)甲2に記載された技術は,上記課題を解決するためのものである。
具体的には,甲2記載の分散シミュレーションシステムは,模擬対象定義から互い
に関連し合う挙動が模擬される模擬対象の組合せを求め,これらの組合せに関連す
る領域ごとにその模擬処理を論理プロセッサに分担する。模擬環境や模擬物体など
の模擬対象について模擬イベント交換頻度と模擬データ転送量が高くなると予想さ
れる組合せを同一の論理プロセッサに割り当てる。
(e)甲2に記載された技術は,論理プロセッサ間における模擬イベン
ト交換頻度と模擬データ転送量を削減することができ,高速で効率的な処理を実現
するという効果を奏するためのものである。
b甲2の【0033】~【0035】を考慮しても,甲2には,上記
(ア)の技術を一般化して,種類の異なる複数の処理を論理プロセッサに割り付ける
技術は,記載も示唆もされていない。
また,甲2には,模擬イベント交換頻度及び模擬データ転送量に応じた論理プロ
セッサへの割当ては記載されているが,これを一般化した,処理の種類に応じたプ
ロセッサへの割当てについては,記載も示唆もされていない。
(イ)甲2に記載された技術を甲1発明には容易に適用できないこと
a技術分野が異なること
(a)甲1発明は,マルチスレッド・コンピュータにおけるプログラム
の最小の実行単位であるスレッドのコンピュータリソースへの割当てに関する発明
であるのに対し,甲2に記載された技術は,訓練用シミュレーション等の各種シミ
ュレーションを実行する分散シミュレーションシステムにおける模擬処理の論理プ
ロセッサへの割当てに関するものであるから,甲1発明と甲2に記載された技術と
では技術分野が異なる。
したがって,甲1発明に対して,甲1発明とは異なる分散シミュレーションシス
テムでの模擬処理の分担に関する技術を適用する動機付けが存在せず,そのような
適用を行うことが容易であったとはいえない。
(b)確かに,甲1発明及び甲2に記載された技術は,いずれも,命令
を複数のスレッドに分割して実行するマルチスレッディングに関するものである点
では共通する。
しかし,マルチスレッディングには,(A)複数の物理プロセッサにスレッドを同
時に実行させるマルチプロセッサ技術と,(B)単一の物理プロセッサによって認識
される複数の仮想プロセッサにスレッドを同時に実行させるマルチスレッド同時処
理(SMT)技術があり(甲4【0004】),これらはマルチスレッディングにお
ける別種のアプローチである。この両技術は,その定義上,マルチプロセッサ技術
においてはスレッド処理の効率性が複数の物理プロセッサの物理的な関係に影響さ
れるのに対し,SMT技術ではそのようなことがない点で異なっており,それに伴
って対処すべき技術的課題も異なる。
甲1発明は,複数の物理プロセッサ間相互のデータ転送に起因する通信コストの
問題を解決するために,命令スレッドをリソースの共通セットに割り当てる,すな
わち,同一型の命令スレッドをコンピュータの同一物理サブシステムのリソースに
割り当てるという構成を採用し,複数の物理サブシステム間における交差トラフィ
ックを減少させており,前者のマルチプロセッサ技術に関するものであるのに対し,
甲2に記載された技術は,後者のマルチスレッド同時処理(SMT)技術に関する
ものである。
「同一タイプのスレッドが,リソースの共通セットに割り当てられる」という構
成は,複数の物理プロセッサ間相互のデータ転送に起因する通信コストの問題を解
消するというマルチプロセッサ技術に固有の技術課題を解決するために甲1発明に
おいて採用されたマルチプロセッサ技術と密接に関連する構成であるから,当業者
は,このような構成をSMT技術の構成で置き換えることには動機付けられない。
すなわち,SMT技術においては,複数の仮想プロセッサは単一の物理プロセッサ
により実現されることが前提であって,複数の物理プロセッサ間の通信コストが課
題とならないから,甲1発明において複数の物理プロセッサ間の通信コストに関す
る技術課題を解決する前に不可欠な構成を,SMT技術に関連する構成で置換する
ことに動機付けられるとは考えられない。
b解決すべき課題が異なること
(a)甲1発明の課題は,主に,処理対象のスレッドにプロセッサ等の
物理的リソースを効率的に割り当てて,複数のプロセッサ間におけるデータ転送に
関する通信コストを解決すること,及び,その際に著しいカスタム化を行わないよ
うにすること,という物理プロセッサ間で処理を分散して行うことを前提としたも
のであるのに対し,甲2に記載された技術に関する課題は,模擬対象に応じて分割
したシミュレーションプログラムを複数の論理プロセッサで分散処理するに当たり,
主に,論理プロセッサ間での模擬イベント交換頻度及び模擬データ転送量を削減し,
システム全体としての処理速度を高速に保ち,かつ効率的な模擬処理を実行するこ
とができる分散シミュレーションシステムを得ることであるから,物理プロセッサ
間での通信コストの問題とは無関係である。
したがって,甲1発明と甲2に記載された技術とは解決すべき課題が異なってお
り,甲2に記載された技術事項を甲1発明に適用する動機付けが存在しない。
(b)本件補正発明においては,仮想プロセッサへの命令スレッドの割
当てに関して,ロードバランシングアルゴリズムの実行のために仮想プロセッサの
特性を考慮する必要があるという課題(当初明細書等【0007】)や,プログラマ
がスレッドに対するスケジューラの挙動を明示する際に,コンピュータシステムの
トポロジーの知識が必要になり,また,ソフトウェア層との競合が生じるおそれの
ある配置作業を行わなければならないという課題(当初明細書等【0010】)に着
目し,その解決のために相違点3に係る構成,すなわち,「実行する命令スレッドそ
れぞれをタイプ(S,C)に応じて仮想プロセッサに方向付ける」という構成を採
用している。このような課題は,甲1~5のいずれにも記載されていない。
当業者は,このような仮想プロセッサへ命令スレッドを割り当てる際の課題につ
いての認識がなければ,甲1発明においてスレッドをそのタイプに応じて仮想プロ
セッサに割り当てるという構成を採用することには動機付けられない。
また,甲1発明において,実行する命令スレッドをタイプに応じた特定の物理サ
ブシステムに割り当てることは,通信コストの問題を解消するという甲1発明の技
術課題を解決するために必要不可欠な構成である。この構成に代えて,スレッドを
そのタイプに応じて仮想プロセッサに割り当てる構成を採用したのでは,甲1発明
の課題が解決できなくなるため,このような改変をすることはできない。
c甲2に記載された技術を甲1発明に適用することが可能であるとし
ても容易に想到し得ないこと
甲2に記載された技術事項は,模擬対象の模擬処理を,模擬イベント交換頻度及
び模擬データ転送量に応じて,論理プロセッサに割り付けることである。命令スレ
ッドを論理プロセッサに割り付けることは,甲2には記載されていない。
甲2の模擬処理がスレッド単位で実行されるとしても,甲2には,その模擬処理
を実行するスレッドを論理プロセッサに割り当てることは記載も示唆もされていな
い。むしろ,甲2の【0017】,【0033】,【0035】,【0037】,【003
9】,【0040】,及び【0050】には,模擬対象の組合せを同一の論理プロセッ
サに割り当てることが記載されているのであって,甲2に記載された技術では,論
理プロセッサへの割当ては,組み合わされた模擬対象の模擬処理を単位として行わ
れている。
そうすると,仮に甲2に記載された技術を甲1発明に適用することが可能である
としても,組み合わされた模擬対象の模擬処理を単位として論理プロセッサへの割
当てがなされるにすぎず,その模擬処理に含まれるスレッドをそのタイプに応じて
仮想プロセッサに割り付けることは想到し得ない。
また,甲2には,模擬イベント交換頻度及び模擬データ転送量に応じた論理プロ
セッサへの割当ては記載されているが,これを一般化した,処理の種類に応じたプ
ロセッサへの割当てについても記載も示唆もされていない。
d甲1発明においてSMT技術を採用することができないとしても相
違点3に係る構成をなるように変更する動機付けがないこと
甲1発明においてSMT技術を採用することができたとしても,甲1発明におけ
る「複数の物理サブシステム」に備えられた「マイクロプロセッサ」の各々におい
て複数のスレッドが並列に実行されるだけであり,甲1発明の「同一タイプのスレ
ッドが,リソースの共通セットに割り当てられる」という構成を相違点3に係る構
成となるように変更する動機付けは存在しない。
e甲3には相違点3に係る構成は開示されていないこと
甲3には,「リアルタイムビデオアプリケーションにおいて,ビデオを取り込む一
つのスレッド,ビットストリームを符号化する一つのスレッド,およびビットスト
リームを送り出す他のスレッドが存在する」ことは記載されているが,これらのス
レッドがどのように仮想プロセッサに割り当てられるかについては全く開示がない。
図4Aを参照すると,二つのスレッドが並列に処理されていることは理解できるが,
この二つのスレッドがどのようにして仮想プロセッサに割り当てられているかは不
明である。
甲3は,図6を参照しつつ【0054】~【0059】において,ビデオの復号
化プロセスを説明しているが,この説明においてもスレッドをどのように仮想プロ
セッサに割り当てるかは一切説明されていない。
したがって,甲3には,実行する命令スレッドをそのタイプに応じて仮想プロセ
ッサに方向付けるという相違点3に係る構成は開示されていない。
イ甲1発明に甲2に記載された技術を適用して相違点1に係る発明特定事項
を採用することは容易になし得たことではないこと
(ア)前記ア(ア)のとおり,甲2には,模擬イベント交換頻度及び模擬デー
タ転送量に応じた論理プロセッサへの割当ては記載されているが,これを一般化し
た,処理の種類に応じたプロセッサへの割当てについては,記載も示唆もされてい
ない。
(イ)甲1発明と甲2に記載された技術とでは,技術分野が大きく異なる。
甲1発明と甲2に記載された技術とでは,リソースへの割当てが行われる処理の
単位が異なるだけでなく,甲1発明においては物理的なリソースへの割当てがされ
るのに対して,甲2の技術では論理プロセッサという論理的なリソースへの割当て
がされる点も異なる。
(ウ)前記ア(イ)b(a)のとおり,甲1発明の課題と甲2に記載された技術
に関する課題とは異なる。
(エ)したがって,甲2に記載された技術事項を甲1発明に適用する動機
付けが存在しない。
2進歩性に関する判断の誤り
仮に本件補正が却下されたとしても,本件補正発明6と甲1発明の相違点cは,相
違点3と,相違点aは,相違点1と実質的に同じであるため,前記の相違点1及び3
に関する主張は,すべて相違点c及びaにも当てはまり,甲1発明において,相違点
a及びcに係る構成を採用することは当業者にとって容易ではなかった。
したがって,本願補正発明6は,進歩性を有する。
第4被告の主張
1取消事由1について
(1)新規事項追加禁止要件違反について
ア次のとおり,請求項6~8において,「タイプ(S,C)」は,スレッドの
タイプを識別する情報として用いられている一方,当初明細書等では,仮想プロセッ
サのタイプを識別する情報(パラメータC及びS)として用いられており,一致しな
いから,補正後の請求項6~8は,当初明細書等に記載されたものではない。
当初明細書等の【0046】の記載から,本願明細書の発明の詳細な説明におい
て,「C」及び「S」とは,仮想プロセッサのタイプを識別するためのパラメータ「C」
及び「S」であることが読み取れる。
当初明細書等の【0039】は,命令スレッドのタイプとして,「『計算』と呼ぶ
命令スレッドの第1のタイプ」および「『サービス』と呼ぶプロセスの第2のタイプ」
(ここで,「プロセス」は「命令スレッド」の誤記であると推察される。)を例示し
ており,「タイプ(S,C)」との表記を,命令スレッドのタイプとして用いていな
い。
当初明細書等の【0047】には,「仮想プロセッサ24C,24S,26Cおよ
び26S」という記載があり,ここでも,「C」又は「S」は,仮想プロセッサのタ
イプを示している。さらに,同段落の「仮想プロセッサ24Cまたは26Cには計
算タイプの命令スレッドしか方向付けできず,仮想プロセッサ24Sまたは26S
にはサービスタイプの命令スレッドしか方向付けできない。」という記載は,仮想プ
ロセッサのタイプとして「C」又は「S」を用いており,命令スレッドのタイプと
しては,「計算タイプ」又は「サービスタイプ」を用いており,両者は明確に使い分
けられている。
当初明細書等の【図1】の符号「C」及び「S」は,プロセッサを計算タイプ又
はサービスタイプに関連付けるためのパラメータC及びSであり,スレッドのタイ
プそのものを示す符号ではない。
イ一般に,参照符号は,明細書や図面等に開示された技術的構成との対応
関係を例示するものであり,請求項に記載された発明特定事項を技術的に限定する
ものではない。
特許法施行規則24条の4は「願書に添付すべき特許請求の範囲は,様式第二十
九の二により作成しなければならない。」と規定しており,特許法施行規則におい
て,様式第29の2(第24条の4関係)として,特許請求の範囲の様式が規定され
ている。特許法施行規則様式29の2の[備考]14のロに規定された「請求項の記
載の内容を理解するため必要があるときは,当該願書に添付した図面において使用
した符号を括弧をして用い」た符号が特許請求の範囲の記載に付加されることによ
って,請求項記載の発明が具体的構成に限定されるものではない(乙1)。
請求項6の「少なくとも1つの中央処理装置(24,26)」という記載は,発明
特定事項としては「少なくとも1つの中央処理装置」としつつも,「中央処理装置(2
4,26)」と複数の中央処理装置を例示しており,一般的な意味の参照符号である
といえる。そして,請求項6の「複数の仮想プロセッサ(24C,24S,26C,
26S)」という記載も,発明特定事項としては「複数の仮想プロセッサ」としつつ
も,「仮想プロセッサ(24C,24S,26C,26S)」と4つの仮想プロセッ
サを例示しており,一般的な意味の参照符号であるといえる。
括弧書きされている(S,C)も参照符号であるとすると,「タイプ(S,C)」
は,発明特定事項としては「タイプ」であって,「(S,C)」は単なる例示にすぎな
いものとなる。
(2)目的要件違反について
ア前記(1)のとおり,S又はCは,仮想プロセッサのタイプを表す情報であ
るから,「タイプ」を「タイプ(S,C)」と変更する補正は,本願の明細書等の誤
った解釈に基づいて誤記を導入するものであって,特許請求の範囲を減縮するもの
とはいえない。
命令スレッドのタイプを特定するのであれば,「タイプ(S,C)」ではなく,「タ
イプ(計算タイプ,サービスタイプ)」とすべきであった。
イ本件補正後の請求項6における「複数の所定のタイプ」という用語は,
「命令スレッド」の「タイプ」を意味するものとして明確であり,「複数の所定のタ
イプ」に付加された「(S,C)」も,本願の願書に添付した図面において使用した
符号を括弧をして用いたものとして解釈し得る。
「命令スレッド」の「タイプ」として,例えば,データの入出力等を行う「タイ
プ」の「命令スレッド」であるとか,浮動小数点演算を行う「タイプ」の「命令ス
レッド」であるとか,制御フローを担当する「タイプ」の「命令スレッド」などが
さまざまな「タイプ」の「命令スレッド」が含まれ得ることは,当事者にとって自
明である。
本願発明のマルチスレッディングコンピュータシステムの技術分野において,「命
令スレッド」の「タイプ」として,「S」及び「C」以外のタイプはおよそ用いられ
るものでないことが当業者の一般常識になっているなどの特段の事情があるとはい
えないから,明細書の発明の詳細な説明で技術的に裏付けられているのが「S」及
び「C」のタイプを使用するものだけであるとか,実施例が「S」及び「C」のタ
イプを使用するものだけであることのみから,特許請求の範囲に記載された「複数
の所定のタイプ」を「少なくとも『S』及び『C』のタイプを含むもの」と限定し
て解することはできないというべきである。
ウ仮に,「複数の所定のタイプ(S,C)」という表記において,「(S,C)」
が参照符号であり,命令スレッドのタイプ例示に過ぎず,命令スレッドのタイプを
技術的に限定するものでなければ,「(S,C)」という記載を除いて発明特定事項を
把握可能であり,特許請求の範囲の限定的減縮に該当する余地はあるといえる。
しかし,上記アのとおり,「タイプ」を「タイプ(S,C)」と変更する補正は,
本願明細書の誤った解釈に基づいて誤記を導入するものであるから,「(S,C)」は
命令スレッドのタイプの例示とはいえない。
(3)独立特許要件違反について
ア次のとおり,相違点3に係る構成は,甲1発明と甲2に記載された技術
又は甲3~5により認定可能な周知技術であるSMT技術を適用することにより当
業者が容易に想到し得たものである。
(ア)命令を複数のスレッドに分割して実行するマルチスレッディング(マ
ルチスレッド・コンピューティング)の技術分野において,仮想プロセッサ(論理
プロセッサ)は,各々アーキテクチャステート(アーキテクチャ状態)を備えるこ
とにより,一つの物理プロセッサに複数の仮想プロセッサ(論理プロセッサ)が認
識されており,キャッシュや実行ユニット,分岐予測器,制御論理等の物理プロセ
ッサが有するリソース群を共有しており,複数のスレッドが複数の仮想プロセッサ
に割り当てられて同時に実行されるSMT(同時マルチスレッディング,マルチス
レッド同時処理)技術は,本願優先日前に周知であったといえる(甲3~5)。
(イ)引用発明と上記周知技術(SMT技術)は,命令を複数のスレッドに
分割して実行するマルチスレッディング(マルチスレッド・コンピューティング)
の技術分野に属しており,当該技術分野では,スレッドを実行する主体として仮想
プロセッサに割り当てること,及び,各仮想プロセッサは,キャッシュや実行ユニ
ット,分岐予測器,制御論理等の物理プロセッサが有するリソース群を共有してい
ることは,本願優先日前に周知の技術であったといえる。
(ウ)上記周知技術(SMT技術)の「仮想プロセッサ」が共有する「物理
プロセッサが有するリソース群」は,引用発明の「リソースの共通セット」に対応
する。
(エ)したがって,引用発明において,実行する命令スレッドをタイプに応
じて割り当てる(方向付ける)際に,リソースの共通セットに割り当てる構成に代
えて,上記周知技術(SMT技術)を適用して,命令スレッドを物理プロセッサが
有するリソース群からなる仮想プロセッサに割り当てる(方向付ける)よう構成す
ることは,当業者が容易に想到し得たものである。
イ仮に,相違点3に係る「実行する命令スレッドそれぞれをタイプ(S,
C)に応じて資源に方向付ける」という構成を「実行する命令スレッドそれぞれを
(少なくとも計算タイプおよびサービスタイプなどの)タイプに応じて資源に方向
付ける」と限定するものと解釈した場合であっても,相違点3に係る構成は,甲1
発明と甲3に記載された技術事項から,当業者が容易に想到し得たものである。
(ア)甲3(【0039】~【0041】,【図4A】)には,「リアルタイムビ
デオアプリケーション」において,三つのスレッド(「ビデオを取り込む1つのスレ
ッド,ビットストリームを符号化する1つのスレッド,およびビットストリームを
送り出す他のスレッド」)が例示されており,同時マルチスレッディングの一例とさ
れている。そして,【図4A】のアクディビティ405,アクディビティ410など
を有するスレッド401は,「ビデオを取り込む1つのスレッド」であり,【図4A】
のアクディビティ415,アクディビティ420などを有するスレッド402は,
「ビットストリームを符号化する1つのスレッド」である。これらのスレッド40
1とスレッド402は,異なる2つの論理プロセッサに割り当てられて実行される
ことにより,オーバーラップ期間の間,同時に実行されている。
(イ)ここで,「ビットストリームを符号化する1つのスレッド」は,本願明
細書の「計算タイプの命令スレッド」に相当し,「ビデオを取り込む1つのスレッド」
は本願明細書の「サービスタイプの命令スレッド」に相当するといえる。
1つの物理プロセッサ内に認識される複数の仮想プロセッサは,バッファやキャ
ッシュ等のリソースを共有しており,「ビデオを取り込む1つのスレッド」を一つの
仮想プロセッサに割り当て,「ビデオを取り込む1つのスレッド」がバッファ等に取
り込んだビデオフレームデータを,「ビットストリームを符号化する1つのスレッ
ド」を別の仮想プロセッサに割り当て,当該別の仮想プロセッサでデコード処理を
実行するように構成することは,サービスタイプの命令スレッドと計算タイプの命
令スレッドを別々の仮想プロセッサに割り当て実行させていることにほかならない。
ウ甲4には,マルチスレッディングを実行するシステム構成として,(A)
複数の物理プロセッサにスレッドを同時に実行させるマルチプロセッサ技術(図1
Cの150)や,(B)単一の物理プロセッサによって認識される複数の仮想プロセ
ッサにスレッドを同時に実行させるマルチスレッド同時処理(SMT)技術(図1
Cの109)だけでなく,(C)複数の物理プロセッサ(コア)毎に複数の仮想プロ
セッサを備えたコンピュータシステムにスレッドを同時に実行させるマルチスレッ
ド同時処理(SMT)技術(SMTコアのマルチコア(図1Cの170))などが例
示されている(下図においてAS1およびASnが仮想プロセッサに,103が物理
プロセッサに対応)。
【図1C】
(B)単一の物理プロセ
ッサが複数の仮想プロセ
ッサを備えるシステム例
(A)複数の物理プロセ
ッサにスレッドを同時に
実行させるマルチプロセ
ッサシステム例
甲4には,マルチプロセッサ構成であって,かつ,SMT技術でもある(C)の
システム構成も開示されており,上記(C)のシステム構成も,マルチプロセッサ
構成である以上,スレッド処理の効率性が複数の物理プロセッサの物理的な関係に
影響されるといえる。
本願の明細書及び図面に記載された実施例においても,上記(C)のマルチプロ
セッサ構成であって,かつ,SMT技術でもあるシステム構成が実施例として記載
されており,本願の特許請求の範囲の請求項6においても,「コンピュータシステム
(18)の少なくとも1つの中央処理装置(24,26)に属する複数の仮想プロ
セッサ(24C,24S,26C,26S)上で複数の命令スレッドを組み合わせ
て実行するのを管理する方法であって」と記載されており,上記(B)及び(C)
のシステム構成を包含するものとなっている。
(C)複数の物理プロ
セッサ毎に複数の仮
想プロセッサを備え
たシステム例
原告の主張は,本願の特許請求の範囲の請求項6に包含され,本願の実施例でも
ある上記(C)のシステム構成を考慮したものとなっていない。
上記(A)のマルチプロセッサ構成システムを,上記(C)の複数の物理プロセ
ッサ(コア)毎に複数の仮想プロセッサを備えたSMTシステム構成にすることに
は,電力消費量増加につながるクロック数の上昇を抑えながら,並列実行可能なス
レッド数を増加させて,性能の向上を計るという動機付けが存在しているといえる。
エ乙2は,SMT技術の周知技術を示す甲3及び甲4の出願人でもある主
要なプロセッサ・メーカーであるインテル・コーポレーションに所属する著者が,
マルチスレッディング技術に対応したマルチコアCPU(プロセッサ)の技術開発
動向を記載したものであり,物理プロセッサ(コア)の数を(2から4に)増加さ
せることにより性能の向上を計ってきたデスクトップPC用CPU(Core2Duoか
らCore2Quad)が2008年11月発表のCorei7では,物理プロセッサ(コア)
の数は増加させず各物理プロセッサ(コア)に2つずつの論理ステートを備えるこ
とで2つずつの仮想プロセッサを設ける構成を採用したことが見て取れる。
本願の図2(一部抜粋)
複数の物理プロセッサ(24,26)がそ
れぞれ,複数の仮想プロセッサ(24C,
24S,26C,26S)を備えるシステ
ム構成(C)となっている。
上記インテルCPUの技術開発動向の経緯に照らしても,前記(イ)の(A)のマル
チプロセッサ構成システムに対応するCore2Quadプロセッサ(最大4スレッドを
同時実行可能)を,同(C)の複数の物理プロセッサ(コア)毎に複数の仮想プロ
セッサを備えたSMTシステム構成に対応し,より多くのスレッド(最大8スレッ
ドを同時実行可能)を並列実行可能な次世代プロセッサであるCorei7に置換する
ことには,同時実行可能スレッド数を増加させるという動機付けが存在していると
いえる。
オ甲1発明は,個別の物理サブシステム内においてスレッドが使用するリ
ソースの局所化を通じて,効率的なリソース割り付けが,よりトランスペアレント
な態様で実装され,著しいカスタム化を伴わないことを解決すべき課題としている。
甲1発明が課題を解決するための技術思想は,次のようなものである。
スレッドに関連付けされる特定の「型」を基礎として,それらのスレッドが動的
にコンピュータ・リソースに割り当てられるように,スレッド型に,コンピュータ
内の同一物理サブシステム内に常駐するリソースが割り付けられ,その結果,それ
らの特定スレッド型の,新しく作り出されたスレッド及び/又は再アクティブ化さ
れたスレッドが,それぞれのスレッド型に割り付けられたリソースに動的に割り当
てられる。
すなわち,甲1発明においては,スレッドに関連付けされる特定の「型」に着目
し,特定スレッド型には,同一のリソース(セット)を割り付けること(局所化)
により,キャッシュなどのリソースに格納されたデータを特定スレッド型が繰り返
し利用する際に,キャッシュに格納済みのデータを再利用可能として,他の物理サ
ブシステムのメモリ等からキャッシュ等へのデータ通信等のコストを削減している
といえる。
マルチスレッド処理においては,プロセッサ単位(物理プロセッサ又は仮想プロ
セッサ)で割付けが行われ,甲1発明において,物理サブシステム内のプロセッサ
が物理プロセッサのみから構成されるシステム構成(A)であろうと,仮想プロセ
ッサを含んだシステム構成(C)であろうと,スレッドに関連付けされる特定の「型」
に着目し,特定スレッド型には,同一のリソース(セット)を割り付けること(局
所化)により,キャッシュなどのリソースに格納されたデータを特定スレッド型が
繰り返し利用する際に,キャッシュに格納済みのデータを再利用可能として,他の
物理サブシステムのメモリ等からキャッシュ等へのデータ通信等のコストを削減す
ることが可能であるといえる。
2取消事由2について
相違点cは,相違点3と実質的に同じであるため,本願補正発明の相違点3の容
易想到性判断で述べた議論は,すべて相違点cにも当てはまる。
したがって,甲1発明に甲3~5に示された周知技術を適用することで,当業者
が本願発明を容易に想到し得たものである。
相違点aについての原告の主張は,争う。
第5当裁判所の判断
1本願発明及び本願補正発明について
(1)本願発明は,前記第2の2(1),本願補正発明は,同(2)のとおりであると
ころ,本願発明に係る特許出願の出願時の特許請求の範囲は,次のとおりである(甲
6)。
【請求項1】
命令スレッドの実行を管理するコンピュータシステム(18)であって,同じ中
央処理装置に属する複数の仮想プロセッサ(24C,24S,26C,26S)上
で複数の命令スレッドを組み合わせて実行する少なくとも1つの中央処理装置(2
4,26)と,前記仮想プロセッサに命令スレッドの実行を分散する少なくとも1
つのマネージャ(38)とを有するコンピュータシステムにおいて,実行する前記
命令スレッドを複数の所定のタイプに応じて分類する分類手段(36)を有するこ
とと,前記命令スレッドの実行を分散する前記マネージャ(38)を,実行する前
記命令スレッドをそれぞれタイプに応じて前記仮想プロセッサ(24C,24S,
26C,26S)に方向付けるように設計することを特徴とするコンピュータシス
テム。
【請求項2】
前記同じ中央処理装置(24,26)の各仮想プロセッサ(24C,24S,2
6C,26S)を前記所定のタイプの1つに関連付ける手段(C,S)を備える,
請求項1に記載のコンピュータシステムにおいて,前記命令スレッドの実行を分散
する前記マネージャ(38)を,実行する前記命令スレッドをそれぞれ該スレッド
と同じタイプの仮想プロセッサ(24C,24S,26C,26S)に方向付ける
ように設計するコンピュータシステム。
【請求項3】
前記中央処理装置(24,26)は2つの仮想プロセッサ(24C,24S,2
6C,26S)を有し,1つは命令スレッドの第1のタイプ(C)に関連付け,も
う1つは命令スレッドの第2のタイプ(S)に関連付け,実行するコンピュータプ
ロセスはそれぞれ前記第1のタイプか前記第2のタイプである,請求項1または2
に記載のコンピュータシステム。
【請求項4】
-「計算」と呼ぶ命令スレッドの前記第1のタイプ(C)は,結果を供給する
ように前記コンピュータシステムが実行するようになっているプログラムに対して,
該プログラムの実行に参加して結果を直接生成する命令スレッドに関係し,
-「サービス」と呼ぶプロセスの前記第2のタイプ(S)は,該プログラムの
実行に参加して「計算」タイプの前記命令スレッドに付属サービスを供給する命令
スレッドに関係する,
請求項3に記載のコンピュータシステム。
【請求項5】
少なくとも2つの中央処理装置(24,26)を有し,それぞれが複数の仮想プ
ロセッサ(24C,24S,26C,26S)を備え,仮想プロセッサ上で複数の
命令スレッドを組み合わせて実行する,請求項1から4のいずれか一項に記載のコ
ンピュータシステムにおいて,前記命令スレッドの実行を分散する前記マネージャ
(38)を,中央処理装置にある仮想プロセッサとは独立して,実行する命令スレ
ッドそれぞれに対して中央処理装置を選択するように設計するコンピュータシステ
ム。
【請求項6】
コンピュータシステム(18)の同じ中央処理装置(24,26)に属する複数
の仮想プロセッサ(24C,24S,26C,26S)上で複数の命令スレッドを
組み合わせて実行するのを管理する方法であって,前記仮想プロセッサに前記命令
スレッドの実行を分散するステップ(104)を含む方法において,複数の所定の
タイプに応じて実行する前記命令スレッドを分類する予備ステップ(100)を含
むことと,前記命令スレッドの実行を分散するステップ(104)で,実行する命
令スレッドそれぞれをタイプに応じて仮想プロセッサに方向付けることとを特徴と
する方法。
【請求項7】
前記分類ステップ(100)で,命令スレッドを管理するアプリケーションプロ
グラミングインターフェースの関数でタイプを識別するパラメータに基づいて,前
記命令スレッドをそれぞれタイプで分類する,請求項6に記載の方法。
【請求項8】
前記分類ステップ(100)で,命令スレッドの実行を含むプログラムの実行コ
マンドでタイプを識別するパラメータに基づいて,前記命令スレッドをそれぞれこ
のタイプで分類する,請求項6に記載の方法。
【請求項9】
スーパーコンピュータタイプのサーバクラスタ(10)の複数の処理ノード上で
複数の命令スレッドを実行することの管理に対する請求項6から8のいずれか一項
に記載の方法の適用であって,各処理ノード(18)が,同じ中央処理装置に属す
る複数の仮想プロセッサ(24C,24S,26C,26S)上で複数の命令スレ
ッドを組み合わせて実行する少なくとも1つの中央処理装置(24,26)を有す
る適用。
【請求項10】
通信ネットワークからダウンロード可能なコンピュータプログラムおよび/また
はコンピュータで再生可能な媒体に記録したコンピュータプログラムおよび/また
はプロセッサのなかでもとりわけコンピュータのオペレーティングシステム(34)
で実行可能なコンピュータプログラムであって,前記プログラムをコンピュータ上
で実行した場合に,請求項6から8のいずれか一項に記載の複数の命令スレッドを
組み合わせた実行の管理方法のステップを実行するプログラムコードの命令を含む
ことを特徴とするコンピュータプログラム。
(2)本願の出願当初の明細書及び図面は,平成26年3月31日の手続補正
及び本件補正によって,補正されていない(甲6,9,12)。
本願の出願当初の明細書及び図面(当初明細書等。甲6)には,次の記載がある。
「【技術分野】
【0001】
本発明は,命令スレッドの実行を管理するコンピュータシステムであって,同じ
中央処理装置に属する複数の仮想プロセッサ上で複数の命令スレッドを組み合わせ
て実行する少なくとも1つの中央処理装置と,命令スレッドの実行を仮想プロセッ
サに分散する少なくとも1つのマネージャとを有するコンピュータシステムに関す
る。本発明はまた,その方法,サーバクラスタへの本方法の適用,および本方法を
実行するための命令を含むコンピュータプログラムにも係る。
【背景技術】
【0002】
以下の説明文において,「コンピュータシステム」とは,コンピュータプログラム
の命令を実行することができ,そのために少なくとも1つの中央処理装置でプロセ
ッサの計算コアまたはCPU(英語の「CentralProcessingU
nit」)とも呼ばれるものを有する少なくとも1つのプロセッサを備えるあらゆ
るシステムを指す。プロセッサには,単一の計算コアのみ,または複数の計算コア
を備えることができることがわかるであろう。本発明によるコンピュータシステム
は,複雑性が増す順に,1つまたは複数の計算コアを有するマイクロプロセッサ,
1つまたは複数のマイクロプロセッサを有する単純なマイクロコンピュータ,また
は複数のマイクロコンピュータを,データ転送ネットワークを介して相互接続した
さらに複雑なシステムで構成することができる。本発明を実装することができるコ
ンピュータシステムの複雑性は,原則として目的とする適用例によって異なる。
【0003】
「コンピュータプロセス」とは,より一般には「プロセス」と呼ばれ,プロセッ
サの中央処理装置(すなわち計算コア)によって,場合よってはその他の資源を用
いて,特別に割り当てたメモリ空間で実行する命令の集合を指す。コンピュータプ
ログラム自体は命令を構造化した集合で構成されるため,コンピュータプロセスを
コンピュータプログラムまたはコンピュータプログラムの一部分を実行するインス
タンスと考えることができる。同じ1つのプログラムを(同じ1つのプロセッサま
たはさまざまなプロセッサ上で平行かつ連続的に)複数回実行することができるた
め,このプログラムは複数のコンピュータプロセスを生成することができる。
【0004】
コンピュータプロセスは,必ずしも単一の線形的な命令系列を備えている必要は
なく,非同期に複数の系列を要求することができる。そのため,より一般に「スレ
ッド」と呼ばれる「命令スレッド」とは,コンピュータプロセスの実行に参加する
このような線形的な命令系列を指す。その結果,命令実行の観点から,コンピュー
タプロセスとは常に命令スレッドまたは命令スレッドの集合であると考えてよい。
【0005】
「同じ中央処理装置に属する複数の仮想プロセッサ上で複数の命令スレッドを組
み合わせて実行する中央処理装置」とは,命令スレッド実行の並列処理を,中央処
理装置の内部資源(とりわけ実行の「パイプライン」,レジスタおよびキャッシュメ
モリ)のいくつかを共有することによって増進させるメカニズムを備える中央処理
装置のことである。このような中央処理装置には,資源を同時に共有することがで
きる命令スレッドと同じだけ仮想プロセッサがある。ユーザから見れば,単一の中
央処理装置ではなく,複数,さらに正確にはこの中央処理装置にある仮想プロセッ
サの数だけ中央処理装置があるかのように見える。
【0006】
このメカニズムは一般に,「ハイパースレッディング」または「同時マルチスレッ
ディング」と呼ばれる。このメカニズムを実装している中央処理装置の目的は,命
令スレッドの共有メモリ空間からくるデータを待つことで生じる非アクティブな時
間を活用することである。具体的には,命令スレッドがこのような待機状態にある
とき,この命令スレッドを実行する中央処理装置は自動的に別の命令スレッドの実
行に進むため,複数の異なる仮想プロセッサがあるかのような印象を与える。
【0007】
オペレーティングシステムLinux(登録商標)は,現在このようなメカニズ
ムをサポートしており,ハイパースレッディングメカニズムを搭載したマイクロプ
ロセッサ上でこのオペレーティングシステムを実行すると,このメカニズムがアク
ティブのときにはこのマイクロプロセッサに属するN個の仮想プロセッサがあるよ
うにユーザには見える。またこのオペレーティングシステムは,有利なように命令
スレッドを実行する際にロードバランシングアルゴリズムも実行するため,この命
令スレッドには仮想プロセッサの特性を考慮する必要がある。特に,このオペレー
ティングシステムは,同じ中央処理装置の別の仮想プロセッサに命令スレッドを切
り替えて仮想プロセッサをアンロードすることはない。この制約により,ロードバ
ランシングアルゴリズムが非常に重くなる。
【0008】
具体的には,この制約は,例えば携帯電話のアプリケーションに内蔵するマイク
ロプロセッサなどに用いるリアルタイム計算およびオンボード処理のアプリケーシ
ョンでとりわけ問題が起こる。
【0009】
具体的な第2の例によれば,サーバクラスタに組織した複数の処理ノードを有す
るHPC(英語の「HighPerformanceComputing」)タ
イプのスーパーコンピュータの環境では,ユーザは中央処理装置上でのアプリケー
ションの配置を細かくコントロールすることを望み,例えばそれぞれの通信メカニ
ズムに有利に働く共有キャッシュを利用することもある。
【0010】
これらの命令スレッドを管理するアプリケーションプログラミングインターフェ
ースのシステムを呼び出すことによって,命令スレッドを細かく配置できる可能性
があり,それによってユーザ(すなわちプログラマ)は,命令スレッドに対するオ
ペレーティングシステムタスクのスケジューラの挙動を明示することができるが,
これには関連するアプリケーションに対して,コンピュータシステムのトポロジー
の知識およびソフトウェア層との競合が生じるおそれのある配置作業が必要になる。
【0011】
仮想プロセッサの特性を考慮することは,実際には複雑である。それによって実
際に問題が起こり,HPCスーパーコンピュータのアプリケーションで自動的な管
理ができなくなることさえある。
【発明の概要】
【発明が解決しようとする課題】
【0012】
そのため,前述の問題および制約を少なくとも部分的に緩和することができる,
命令スレッドを組み合わせた実行の管理システムを備えることが望まれる。
【課題を解決するための手段】
【0013】
よって本発明は,命令スレッドの実行を管理するコンピュータシステムであって,
同じ中央処理装置に属する複数の仮想プロセッサ上で複数の命令スレッドを組み合
わせて実行する少なくとも1つの中央処理装置と,命令スレッドの実行を仮想プロ
セッサに分散する少なくとも1つのマネージャとを有するコンピュータシステムに
おいて,実行する命令スレッドを複数の所定のタイプに応じて分類する分類手段を
有することと,命令スレッドの実行を分散するマネージャを,実行する命令スレッ
ドをそれぞれタイプに応じて仮想プロセッサに方向付けるように設計することを特
徴とするコンピュータシステムを目的とする。
【0014】
したがって,命令スレッドをタイプごとに分類し,これをタイプに応じて命令ス
レッドの実行を分散するマネージャを用いて体系的にそれぞれの仮想プロセッサに
方向付けることによって,計算資源を保護する。その結果,中央処理装置を最適な
形で使用することになり,関連するアプリケーションの実行が加速する。さらに,
ハイパースレッディングメカニズムによりユーザ(プログラマ)が原因となること
もあるエラーのリスクが抑えられる。
【0015】
選択的に,本発明によるコンピュータシステムはさらに,この同じ中央処理装置
の各仮想プロセッサをこれらの所定のタイプの1つに関連付ける手段を備えること
ができ,命令スレッドの実行を分散するマネージャを,実行する命令スレッドをそ
れぞれこのスレッドと同じタイプの仮想プロセッサに方向付けるように設計するこ
とができる。
【0016】
したがって,命令スレッドを分散するマネージャは,場合によっては命令スレッ
ドに対して中央処理装置を選択するのに関わるだけでよく,仮想プロセッサの正確
な選択は命令スレッドのタイプによって自動的に決まる。その結果,ハイパースレ
ッディングメカニズムはユーザから隠すことができる。よって,ユーザがこのメカ
ニズムを理解していないためにエラーが生じるリスクは一切なくなる。さらに,命
令スレッドは自動的に正しい仮想プロセッサに方向付けられるため,パフォーマン
スは一層改善される。
【0017】
同じく選択的に,中央処理装置は2つの仮想プロセッサを有し,1つは命令スレ
ッドの第1のタイプに関連付け,もう1つは命令スレッドの第2のタイプに関連付
け,実行するコンピュータプロセスはそれぞれ第1のタイプか第2のタイプとする。
【0018】
同じく選択的に,
-「計算」と呼ぶ命令スレッドの第1のタイプは,結果を供給するようにコン
ピュータシステムが実行するようになっているプログラムに対して,このプログラ
ムの実行に参加して結果を直接生成する命令スレッドに関係し,
-「サービス」と呼ぶプロセスの第2のタイプは,このプログラムの実行に参
加して「計算」タイプの命令スレッドに付属サービスを供給する命令スレッドに関
係する。
【0019】
同じく選択的に,本発明によるコンピュータシステムは,少なくとも2つの中央
処理装置を備えることができ,それぞれがこの同じ中央処理装置に属する複数の仮
想プロセッサ上で複数の命令スレッドを組み合わせて実行し,命令スレッドの実行
を分散するマネージャを,中央処理装置が備える仮想プロセッサとは独立して,実
行する命令スレッドそれぞれに対して中央処理装置を選択するように設計すること
ができる。
【0020】
本発明はまた,コンピュータシステムの同じ中央処理装置に属する複数の仮想プ
ロセッサ上で複数の命令スレッドを組み合わせて実行するのを管理する方法であっ
て,仮想プロセッサに命令スレッドの実行を分散するステップを含む方法において,
複数の所定のタイプに応じて実行する命令スレッドを分類する予備ステップを含む
ことと,命令スレッドの実行を分散するステップで,実行する命令スレッドそれぞ
れをタイプに応じて仮想プロセッサに方向付けることとを特徴とする方法も目的と
する。
【0021】
選択的に,分類ステップで,命令スレッドを管理するアプリケーションプログラ
ミングインターフェースの関数でタイプを識別するパラメータに基づいて,命令ス
レッドをそれぞれタイプで分類する。
【0022】
同じく選択的に,分類ステップで,命令スレッドの実行を含むプログラムの実行
コマンドでタイプを識別するパラメータに基づいて,この命令スレッドをそれぞれ
このタイプで分類する。
【0023】
本発明はまた,スーパーコンピュータタイプのサーバクラスタの複数の処理ノー
ド上で複数の命令スレッドを実行することの管理に対する上記のように定義した方
法の適用であって,各処理ノードが,同じ中央処理装置に属する複数の仮想プロセ
ッサ上で複数の命令スレッドを組み合わせて実行する少なくとも1つの中央処理装
置を有する適用も目的とする。
【0024】
最後に,本発明はまた,通信ネットワークからダウンロード可能なコンピュータ
プログラムおよび/またはコンピュータで再生可能な媒体に記録したコンピュータ
プログラムおよび/またはプロセッサのなかでもとりわけコンピュータのオペレー
ティングシステムで実行可能なコンピュータプログラムであって,前記プログラム
をコンピュータ上で実行した場合に,上記のように定義した複数の命令スレッドを
組み合わせた実行の管理方法のステップを実行するプログラムコードの命令を含む
ことを特徴とするコンピュータプログラムも目的とする。
【0025】
本発明は,添付の図を参照しながら例のみを目的として挙げた以下の説明文を読
めばよりよく理解できるであろう。」
「【発明を実施するための形態】
【0027】
本発明はどのようなアプリケーションからも独立して,同じ中央処理装置に属す
る複数の仮想プロセッサ上で複数の命令スレッドを組み合わせて実行する少なくと
も1つの中央処理装置と,仮想プロセッサに命令スレッドの実行を分散する少なく
とも1つのマネージャとを備えるあらゆるコンピュータシステムに実装することが
でき,以下に一実施形態を詳細に説明する。
【0028】
最も単純な事例では,本発明は,ハイパースレッディングメカニズムを搭載した
マイクロプロセッサを備えれば実装することができる。リアルタイム計算および/
またはオンボードのアプリケーションが本発明から利益を引き出すことができる。
【0029】
ネットワーク接続したコンピューティングデバイスまたはHPCスーパーコンピ
ュータの最も複雑なアプリケーションでは,少なくとも1つのマイクロプロセッサ
を有する各装置が本発明を実装できることが有利である。
【0030】
図1に示す実施形態はHPCコンピュータの適用例であり,以下に本発明の一実
施形態を詳細に説明する。実際にこれは本発明の特に重要な産業上の適用例である。
ただし,前述したとおり,本発明はこのようなHPCコンピュータの設備に限定さ
れるものではないことは明らかである。
【0031】
図1に示すコンピューティングデバイス12,14,16,18の設備10は,
例えば帯域がきわめて広いデータ伝送ネットワーク20を少なくとも1つ介して相
互接続したサーバクラスタで組織したHPCコンピュータを非常に簡略化した不完
全な例である。この設備10は,例えばとりわけ計算ノードを形成する符号12,
14,16および18で示したコンピューティングデバイスと,サービスノード,
管理ノードまたは格納ノードを形成するコンピューティングデバイス(図示せず)
とを有する。計算ノード12,14,16および18の全体構造は同じであっても
よいが,コンピューティングデバイス18の構造のみを以下に詳述する。
【0032】
例えばマイクロコンピュータタイプの計算サーバであるコンピューティングデバ
イス18は,
-第1の中央処理装置24および第2の中央処理装置26が接続する通信バス
であって,コンピュータプログラム,さらに詳細には命令スレッドにより生じるコ
ンピュータプロセスを実行するための通信バス22と,
-ROM28(英語の「ReadOnlyMemory」)タイプの読み出
し専用メモリ,および処理データおよび/または起動プログラム(例えばBIOS
タイプのアプリケーション)を格納し,周辺機器を管理するためのRAM30(英
語の「RandomAccessMemory」)タイプの書き込み可能なメモ
リと,
-少なくとも1つのハードディスク32と
を有する。
【0033】
このコンピューティングデバイス18は,場合によってはさらに(この図には示
していないが)従来のように,以下の素子:スクリーン,キーボード,マウス,ネ
ットワーク20との通信インターフェース,およびCD-ROMまたはDVDのリ
ーダ/レコーダなどの交換可能な媒体へのデータのリーダ/レコーダを1つまたは
複数有する。
【0034】
ハードディスク32は,コンピューティングデバイス18の起動時にBIOSア
プリケーションをロードしたLinuxシステムなどのオペレーティングシステム
34をファイルの形態で格納する。同じ中央処理装置の複数の仮想プロセッサ上で
命令スレッドを組み合わせて実行するメカニズムが,このオペレーティングシステ
ムに対してアクティブになる。例えばこのメカニズムは,中央処理装置24および
26にそれぞれ2つの仮想プロセッサがあるようなものである。つまり,仮想プロ
セッサ24Cおよび24Sは第1の中央処理装置24に,仮想プロセッサ26Cお
よび26Sは第2の中央処理装置26に対するものである。」
「【0037】
より一般に,前述の構造は,コンピューティングデバイスのあらゆるタイプのネ
ットワークに適しているためHPCタイプである必要はなく,この構造では各コン
ピューティングデバイスのオペレーティングシステムは,仮想プロセッサ上で命令
スレッドを組み合わせて実行するメカニズムを利用する。
【0038】
つまり,先ほど構造的に説明したようなコンピューティングデバイス18は,本
発明を実装することができる装置の非限定的な一例にすぎないことがわかるであろ
う。コンピューティングデバイスの構想には多種多様なアーキテクチャがあり,同
じ中央処理装置に属する複数の仮想プロセッサ上で複数の命令スレッドを組み合わ
せて実行する中央処理装置を最低1つ備える装置はすべて適切である。
【0039】
本発明の一実施形態によれば,コンピューティングデバイス18は,複数の所定
のタイプに応じて,また特に,
-「計算」と呼ぶ命令スレッドの第1のタイプは,結果を供給するようにコン
ピューティングデバイス18が実行するようになっているプログラムに対して,こ
のプログラムの実行に参加して結果を直接生成する命令スレッドに関係し,
-「サービス」と呼ぶプロセスの第2のタイプは,このプログラムの実行に参
加して「計算」タイプの命令スレッドに付属サービスを供給する命令スレッドに関
係する
という2つのタイプの命令スレッドに応じて,実行する命令スレッドを分類する分
類手段36を有する。
【0040】
サービスの命令スレッドは,例えば結果の保存,メモリの管理,出入力の管理,
データの通信,モニタリング,ファイルへのアクセスなどに係る。
【0041】
アプリケーションに応じて,分類手段36はさまざまな形態を取ることができる。
【0042】
第1の適用例では,実行するプログラムが複数の命令スレッドの実行を要求し,
そのうちのいくつかの命令スレッドが計算に参加し,残りの命令スレッドが付属サ
ービスに参加する。この場合,このプログラムは,命令スレッドを管理するアプリ
ケーションプログラミングインターフェースの関数である,例えばアプリケーショ
ンプログラミングインターフェースPOSIXの関数sched_setsche
duler()を,計算タイプ(HTCALCUL)かサービスタイプ(HT_S
ERVICE)かを識別するパラメータに基づいて呼び出すように設計する。した
がって,オペレーティングシステム34によって実装する命令スレッドの分類手段
36は,このパラメータを自動的に認識して仮想プロセッサに方向付ける命令スレ
ッドのタイプを識別することからなる。
【0043】
第2の適用例では,複数のプログラムを実行する必要があり,そのうちのいくつ
かは計算プログラム,残りはサービスプログラムである。この場合,ユーザは,計
算かサービスかのタイプをパラメータで識別するコマンドを用いてプログラムの実
行を開始するようにする。例えばこれは,コマンドht_sched-[CALC
ULまたはSERVICE]<プログラム名>である。このようにオペレーティン
グシステム34で実装した命令スレッドの分類手段36は,このパラメータを自動
的に認識してプログラムが要求する命令スレッドのタイプを識別することからなる。
【0044】
第3の適用例では,並列計算プログラムに広く使用されるMPI(英語の「Me
ssagePassingInterface」)ライブラリが,計算モードで
開始される主要プログラムの枠組みでのサービスに向けた固有の命令スレッドを生
成する(第2の適用例を参照)。この場合,このライブラリは,サービスタイプ(H
T_SERVICE)を識別するパラメータに基づいて関数setschedul
er()を呼び出すことができる。したがって,オペレーティングシステム34に
よって実装する命令スレッドの分類手段36は,このパラメータを自動的に認識し
てこのMPIライブラリが生成する命令スレッドのタイプを識別することからなる。
【0045】
命令スレッドのタイプが前述したように先験的に明示されない第4の適用例では,
オペレーティングシステム34の分類手段36を,自動的に,その上簡潔に,とり
わけこれらの命令スレッドの起動元であるアプリケーションを自動的に認識するこ
とによってタイプを決定するように設計することができる。
【0046】
その上,コンピューティングデバイス18は,同じ中央処理装置の各仮想プロセ
ッサを前述した2つのタイプの一方に関連付ける手段を有する。図1に示すように,
この関連付け手段は,例えば計算タイプかサービスタイプかをそれぞれ識別するパ
ラメータCおよびSである。この関連付け手段は,例えば該当する中央処理装置2
4,26,または変形例ではオペレーティングシステム34によって明示的または
暗黙的に管理される。したがって,図1に概略的に示した例では,第1の中央処理
装置24の仮想プロセッサ24Cは計算タイプであり,第1の中央処理装置24の
仮想プロセッサ24Sはサービスタイプであり,第2の中央処理装置26の仮想プ
ロセッサ26Cは計算タイプであり,第2の中央処理装置26の仮想プロセッサ2
6Sはサービスタイプである。
【0047】
オペレーティングシステム34は,仮想プロセッサ24C,24S,26Cおよ
び26Sに命令スレッドの実行を分散するマネージャ38を有する。さらに正確に
は,この分散マネージャ38は,実行する命令スレッドをそれぞれタイプに応じて
1つの仮想プロセッサに方向付けし,さらに正確にはタイプが同じ仮想プロセッサ
にも方向付けするように設計する。したがって,仮想プロセッサ24Cまたは26
Cには計算タイプの命令スレッドしか方向付けできず,仮想プロセッサ24Sまた
は26Sにはサービスタイプの命令スレッドしか方向付けできない。
【0048】
具体的には,分散マネージャ38は,
-実行する命令スレッドそれぞれに対して,中央処理装置にある仮想プロセッ
サ24C,24Sまたは26C,26Sとは独立して中央処理装置24または26
を選択する第1のソフトウェア手段40と,
-選択した中央処理装置の仮想プロセッサのうち,実行する命令スレッドと同
じタイプのものを自動的に割り当てる第2のソフトウェア手段42と
を有する。
【0049】
次に,図1のコンピューティングデバイス18が実装する複数のコンピュータプ
ロセスを組み合わせた実行の管理方法を図2を参照して詳述する。
【0050】
第1の分類ステップ100では,実行待機状態にある命令スレッドT1,T2お
よびT3を計算タイプ(右斜線)かサービスタイプ(左斜線)であるかによって分
類する。このタイプは,コマンドのパラメータまたはアプリケーションプログラミ
ングインターフェースの関数のパラメータで先験的に定義し,前述したようにオペ
レーティングシステム34のソフトウェア手段36によって自動的に認識すること
ができる。このタイプは,オペレーティングシステム34のソフトウェア手段36
によって直接,自動的に定義することもできる。
【0051】
次のステップ102では,オペレーティングシステム34の分散マネージャ38
は,ソフトウェア手段40を用いて各命令スレッドに対して中央処理装置24また
は26を選択し,選択した中央処理装置の待ち行列にこの命令スレッドを配置する。
【0052】
その後,各命令スレッドをソフトウェア手段42が実行する仮想プロセッサに割
り当てるステップ104では,中央処理装置24または26の待ち行列に配置した
各命令スレッドが,実際にはこの命令スレッドと同じタイプのこの中央処理装置2
4または26の仮想プロセッサの待ち行列に自動的に配置される。
【0053】
最後に,実行ステップ106では,前のステップで割り当てられた仮想プロセッ
サによって各命令スレッドを実行する。
【0054】
前述したようなコンピューティングデバイス18によって,複数の仮想プロセッ
サ上での命令スレッドの実行管理が容易になることは明らかである。
【0055】
先行技術では,仮想プロセッサ上で命令スレッドを組み合わせて実行するメカニ
ズムを実装することができるコンピューティングデバイスにロードしたオペレーテ
ィングシステムは,一般の計算媒体と同じようにあらゆる仮想プロセッサを備えて
いるため,命令スレッドの分散が一層複雑になっている。
【0056】
本発明によれば,オペレーティングシステムによる命令スレッドの分散が簡略化
し,とりわけHPCスーパーコンピュータまたはリアルタイム計算のアプリケーシ
ョンを実装するプロセッサなど計算が強く求められる環境で,命令スレッドを組み
合わせて実行するメカニズムから多くの利益が引き出される。さらに正確には,前
述した実施形態では,同じ1つの中央処理装置にある2つの仮想プロセッサを,相
互に交換可能な2つの計算媒体ではなく,計算に対する1つの主要な実行媒体およ
び付属サービスに対する1つの二次的な実行媒体として示した。したがって,N個
の中央処理装置がある一般化したコンピューティングデバイス18では,命令スレ
ッドを組み合わせて実行するメカニズムを実装したとしても,実際にはユーザ(お
よびオペレーティングシステム)にはN個の中央処理装置しか見えず,このメカニ
ズムを実装していないかのように見える。その結果,命令スレッドの分散で起こる
管理上の制約を受けることなくこのメカニズムから利益が引き出される。
【0057】
選択した中央処理装置の仮想プロセッサに命令スレッドを自動的に割り当てるこ
とによって,命令スレッドはその役割および制約に応じて仮想プロセッサに分配さ
れ,ユーザまたはオペレーティングシステムがこの分配に介入することはない。
【0058】
命令スレッドが分配されると,同じ1つの中央処理装置にある2つの仮想プロセ
ッサ上で実行メカニズムを平行に実装することの利点が,以下の点にあることがわ
かる。
-中央処理装置は2つの異なる待ち行列を管理するため,1つの命令スレッド
から別の命令スレッドへの移行を管理する必要がなくなり,この同時の実行はハー
ドウェアが管理する。
-特に,仮想プロセッサが実行する命令スレッドが1つしか残っていないとき,
中央処理装置は仮想プロセッサに割り込むことなく仮想プロセッサにコードを実行
させることができる。
-1つのプログラムから別のプログラムへの移行は,命令ごとに行われる。
【0059】
この非常に細かい粒度は,とりわけ支障を来すおそれのあるデーモンの場合に明
確に有益になり得る。実際,同じ1つの中央処理装置にある計算の仮想プロセッサ
は減速するが,一定時間の間サービスの仮想プロセッサからブロックされることは
ない。支障(デーモンおよび割り込み)による影響は,計算の仮想プロセッサによ
って著しく減少する。
【0060】
HPC環境では,計算コードを計算の仮想プロセッサに配置し,付属サービスを
サービスの仮想プロセッサに配置することができ,これはバッチマネージャなどの
使用ツールに対して明白な方法で行う。リアルタイム環境では,これによって重要
な命令スレッドを他のすべてのサービス命令スレッドから自動的に隔離し,スケジ
ューリングのために起こる割り込みは一切なく,選択した中央処理装置で利用可能
な実行時間の最低50%をこの重要な命令スレッドのために確保することができる。
【0061】
最後に,コンピューティングデバイス18と,各命令スレッドに1つのタイプを
先験的に割り当てるこの機能性を考慮していないプログラムとの互換性に関しては,
デフォルトとして命令スレッドを1つのサービスの仮想プロセッサに方向付ける必
要があることは明らかである。実際,オペレーティングシステムが開始するデーモ
ンはすべて,計算に支障を来さないようにサービスの仮想プロセッサで実行する必
要がある。そのため,命令スレッドを計算の仮想プロセッサに方向付けるために計
算コードのみを特別に適合させる必要がある。この適合は,必ずしもプログラム自
体から行う必要はなく,例えば前述のMPIライブラリなど外部のツールで実行し
てもよい。
【0062】
さらに,本発明は前述した実施形態に限定されるものではないことがわかるであ
ろう。とりわけ,各中央処理装置が3つ以上の仮想プロセッサを備えられるメカニ
ズムを実装することができる場合,3つ以上のタイプの命令スレッドを定義するこ
とが有利になり得る。
【0063】
また,何度も前述して示唆したように,図1に示すHPCスーパーコンピュータ
の設備が本発明を実装できる唯一のものではない。例えばリアルタイム計算および
/またはオンボード処理などこれよりも遙かに簡易なコンフィギュレーションでは,
複数の仮想プロセッサ上で複数の命令スレッドを組み合わせて実行する少なくとも
1つの中央処理装置を有する単一のプロセッサ(またはこのようなプロセッサを備
えるコンピュータ)を備えていれば,本発明を実装することができる。
【0064】
さらに一般的には,ここに開示した教示に照らし合わせて,上に記載した実施形
態にさまざまな修正を加えてもよいことは当業者には明らかであろう。以下の特許
請求の範囲では,使用した用語が請求項を本明細書で明らかにした実施形態に限定
するものと解釈してはならず,本文の記載およびそこから予見される内容は,ここ
に開示した教示の実装に一般知識を応用することによって当業者が到達しうる範囲
内であることから,請求項が範囲に含めると想定するあらゆる同等のものも含まれ
ると解釈すべきである。
【図1】
【図2】

(3)前記第2の2の事実及び前記(1)及び(2)の事実によると,本願の出願当初の
発明(以下「当初発明」という。),本願発明及び本願補正発明(以下,併せて「本
発明」という。)について,次のとおり認められる。
ア技術分野
本発明は,命令スレッドの実行を管理するコンピュータシステムであって,同じ
中央処理装置に属する複数の仮想プロセッサ上で複数の命令スレッドを組み合わせ
て実行する少なくとも一つの中央処理装置と,命令スレッドの実行を仮想プロセッ
サに分散する少なくとも一つのマネージャとを有するコンピュータシステムに関す
る。本発明は,また,その方法,サーバクラスタへの本方法の適用及び本方法を実
行するための命令を含むコンピュータプログラムにも係る。(【0001】)
ここで,「同じ中央処理装置に属する複数の仮想プロセッサ上で複数の命令スレ
ッドを組み合わせて実行する中央処理装置」とは,命令スレッド実行の並列処理を,
中央処理装置の内部資源(とりわけ実行の「パイプライン」,レジスタ及びキャッシ
ュメモリ)のいくつかを共有することによって増進させるメカニズムを備える中央
処理装置のことである。(【0005】)
イ課題
ハイパースレッディングメカニズムを搭載したマイクロプロセッサ上で,従来の
オペレーティングシステム(Linux(登録商標))を実行すると,命令スレッド
を実行する際にロードバランシングアルゴリズムも実行するため,命令スレッドは
仮想プロセッサの特性を考慮する必要があった。特に,このオペレーティングシス
テムは,同じ中央処理装置の別の仮想プロセッサに命令スレッドを切り替えて仮想
プロセッサをアンロードすることはないという制約があるため,ロードバランシン
グアルゴリズムが非常に重くなっていた(【0007】)。この制約は,例えば携帯電
話のアプリケーションに内蔵するマイクロプロセッサなどに用いるリアルタイム計
算およびオンボード処理のアプリケーションでとりわけ問題が生じていた(【00
08】)。
別の例によると,HPC(HighPerformanceComputi
ng)タイプのスーパーコンピュータの環境では,ユーザが中央処理装置へのアプ
リケーションの配置を細かくコントロールすることを望む(【0009】)。ユーザ
(すなわちプログラマ)は,命令スレッドを管理するアプリケーションプログラミ
ングインターフェースのシステムを呼び出すことによって,命令スレッドを細かく
配置し,それによって,命令スレッドに対するスケジューラの挙動を明示すること
ができるが,このためには,コンピュータシステムのトポロジーの知識が必要であ
り,他のソフトウェア層と競合するおそれのある配置が不可避であった(【001
0】)。
仮想プロセッサの特性を考慮することは,複雑であり,HPCスーパーコンピュ
ータのアプリケーションにおいて自動的な管理ができなくなることさえあった。
(【0011】)
そのため,前述の問題および制約を少なくとも部分的に緩和することができる,
命令スレッドを組み合わせた実行の管理システムが望まれていた。(【0012】)
ウ課題解決手段
本発明は,前記技術分野において,実行する命令スレッドを複数の所定のタイプ
に応じて分類する分類手段又は分類ステップを有し,実行する命令スレッドをそれ
ぞれタイプに応じて仮想プロセッサに方向付けるように命令スレッドの実行を分散
するマネージャが設計されているものである。(【0013】,【0020】~【00
22】)
選択的に,本発明は,実行する命令スレッドを同じタイプの仮想プロセッサに方
向付けるようにすることができる。(【0015】)
選択的に,本発明は,同じ中央処理装置の各仮想プロセッサをこれらの所定のタ
イプの一つに関連付ける手段を備えることができ,中央処理装置は二つの仮想プロ
セッサを有し,実行するコンピュータプロセスは第1のタイプか第2のタイプとし,
仮想プロセッサの一つは命令スレッドの第1のタイプに関連付け,仮想プロセッサ
のもう一つは命令スレッドの第2のタイプに関連付けることができる。(【0017】)
選択的に,前記第1のタイプ及び第2のタイプは,それぞれ,「計算」と呼ばれる
タイプ及び「サービス」と呼ばれるタイプとすることができ,「計算」タイプの命令
スレッドは,実行結果を提供するプログラムの実行に参加して結果を直接生成する
命令スレッドに関係し,「サービス」タイプの命令スレッドは,このプログラムの実
行に参加して「計算」タイプの命令スレッドに付属サービスを提供する命令スレッ
ドに関係する。(【0018】)
選択的に,本発明によるコンピュータシステムは,少なくとも二つの中央処理装
置を備えることができ,マネージャを,中央処理装置が備える仮想プロセッサとは
独立して,実行する命令スレッドそれぞれに対して中央処理装置を選択するように
設計することができる。(【0019】)
選択的に,分類ステップでは,命令スレッドを管理するアプリケーションプログ
ラミングインターフェースの関数で用いられるタイプを識別するためのパラメータ
に基づいて,命令スレッドをそれぞれのタイプに分類してもよいし(【0021】,
【0042】),あるいは,プログラムの実行コマンドで用いられるタイプを識別す
るためのパラメータに基づいて,このプログラムによって実行される命令スレッド
をそれぞれのタイプで分類してもよい。(【0022】,【0043】)
エ効果
本発明は,命令スレッドをタイプごとに分類し,これをタイプに応じてそれぞれ
の仮想プロセッサに方向付けることによって,計算資源が保護できる。その結果,
中央処理装置を最適な形で使用することになり,関連するアプリケーションの実行
速度が加速する。さらに,ユーザ(プログラマ)がハイパースレッディングメカニ
ズムを理解していないことに起因するエラーのリスクが抑えられる。(【0014】,
【0016】)
本発明によると,一つの中央処理装置にある二つの仮想プロセッサ上で実行メカ
ニズムを平行に実装することにより,以下の利点が得られる。
①中央処理装置は二つの異なる待ち行列を管理するため,一つの命令スレッドか
ら別の命令スレッドへの移行を管理する必要がなくなる。
②特に,実行すべき命令スレッドが仮想プロセッサ毎に一つずつの場合には,割
り込みをせずに仮想プロセッサがコードを実行できる。
③一つのプログラムから別のプログラムへの移行は,命令ごとに行われる。
同じ一つの中央処理装置にある計算の仮想プロセッサは減速するが,一定時間の
間サービスの仮想プロセッサからブロックされることはない。支障(デーモン及び
割り込み)による影響は,計算の仮想プロセッサにとって著しく減少する。(【00
59】)
計算コードを計算の仮想プロセッサに配置し,付属サービスをサービスの仮想プ
ロセッサに配置するので,リアルタイム環境では,重要な命令スレッドを他のすべ
てのサービス命令スレッドから自動的に隔離し,スケジューリングのために起こる
割り込みは一切なく,選択した中央処理装置で利用可能な実行時間の最低50%を
この重要な命令スレッドのために確保することができる。(【0060】)
オ実施例等
本発明の実施形態は,同一の中央処理装置に属する複数の仮想プロセッサ上で複
数の命令スレッドを組み合わせて実行する中央処理装置を2個(第1の中央処理装
置24及び第2の中央処理装置26)と,仮想プロセッサに命令スレッドの実行を
分散するマネージャ38とを備えるコンピューティングデバイス18であって,第
1の中央処理装置24及び第2の中央処理装置26を接続する通信バスと,ROM
28と,RAM30と,ハードディスク32とを有する。(【0027】,【0032】,
【0047】)
本発明の実施形態には,「計算」タイプ及び「サービス」タイプの二つのプロセス
のタイプがあり,「計算」と呼ぶ命令スレッドの第1のタイプは,結果を供給するよ
うにコンピューティングデバイス18が実行するようになっているプログラムに対
して,このプログラムの実行に参加して結果を直接生成する命令スレッドに関係し,
「サービス」と呼ぶプロセスの第2のタイプは,このプログラムの実行に参加して
「計算」タイプの命令スレッドに付属サービスを供給する命令スレッドに関係する
ものであり,本発明の実施形態は,これら二つのタイプの命令スレッドに応じて,
実行する命令スレッドを分類する分類手段36を有する。(【0039】)
さらに,コンピューティングデバイス18は,同じ中央処理装置の各仮想プロセ
ッサを前述した二つのタイプの一方に関連付ける手段を有する。この関連付け手段
は,例えば計算タイプかサービスタイプかをそれぞれ識別するパラメータC及びS
である。一例では,第1の中央処理装置24の仮想プロセッサ24Cは計算タイプ
であり,第1の中央処理装置24の仮想プロセッサ24Sはサービスタイプであり,
第2の中央処理装置26の仮想プロセッサ26Cは計算タイプであり,第2の中央
処理装置26の仮想プロセッサ26Sはサービスタイプである。(【0046】)
分散マネージャ38は,実行する命令スレッドとタイプが同じ仮想プロセッサに
も方向付ける。したがって,仮想プロセッサ24C又は26Cには計算タイプの命
令スレッドしか方向付けされず,仮想プロセッサ24S又は26Sにはサービスタ
イプの命令スレッドしか方向付けされない。(【0047】)
アプリケーションに応じて,分類手段36はさまざまな形態を取ることができる。
(【0041】)
第1の適用例では,一つのプログラムのうちいくつかの命令スレッドが計算に参
加し,残りの命令スレッドが付属サービスに参加するものであり,このようなプロ
グラムは,アプリケーションプログラミングインターフェースの関数sched_
setscheduler()を,計算タイプ(HTCALCUL)かサービスタ
イプ(HT_SERVICE)かを識別するためのパラメータに基づいて呼び出す
ように作られる。分類手段36は,前記パラメータを自動的に認識して命令スレッ
ドのタイプを識別する。(【0042】)
第2の適用例では,複数のプログラムが実行され,そのうちのいくつかは計算プ
ログラムであり,残りはサービスプログラムである。この場合,プログラムの実行
を開始するには,ユーザは,計算かサービスかのタイプをパラメータで識別するコ
マンドを用いる。このコマンドは,例えば,コマンドht_sched-[CAL
CULまたはSERVICE]<プログラム名>である。分類手段36は,前記パ
ラメータを自動的に認識して命令スレッドのタイプを識別する。(【0043】)
第3の適用例では,MPI(MessagePassingInterfa
ce)ライブラリによって,計算タイプで実行された主プログラムから,サービス
タイプの命令スレッドが形成される。この場合,MPIライブラリは,サービスタ
イプ(HT_SERVICE)を識別するパラメータに基づいて関数setsch
eduler()を呼び出す。命令スレッドの分類手段36は,このパラメータを
自動的に認識して命令スレッドのタイプを識別する。(【0044】)
第4の適用例では,前述の適用例とは異なり,命令スレッドのタイプが事前には
明示されない。分類手段36は,命令スレッドの起動元であるアプリケーションを
自動的に認識することによってタイプを決定する。(【0045】)
2取消事由1(補正の適法性についての判断の誤り)について
(1)新規事項追加禁止要件違反について
ア前記1(1)のとおり,本件補正前の請求項6の命令スレッドのタイプは,
いずれも,単に「タイプ」と記載されており,「(S,C)」の記号を伴わないもので
あったところ,前記第2の1のとおり,原告は,平成26年8月26日付けで,甲
1発明等を引用例とする進歩性の欠如を理由とする拒絶査定を受けた(甲7,10)
後,本件補正をした。
イ本件補正後の請求項6の,「(S,C)」は,それ自体のみからその技術的
な意義を読み取れず,また,本件補正後の請求項6の記載中に,その技術的な意義
を明確にする定義等の記載は見当たらない。
本件補正後の請求項6の従属項である同請求項7~10にも,本件補正後の請求
項6の「(S,C)」の技術的な意義を明確にする記載はない。
ウ(ア)当初明細書等には,命令スレッドのタイプについては,二つ以上ある
こと(【0013】,【0014】,【0017】,【0020】),【0039】,【004
2】,【0046】),三つ以上ある場合もあること(【0062】)が記載されており,
命令スレッドのタイプが第1のタイプと第2のタイプである場合において,命令ス
レットの第1のタイプが計算タイプであり,第2のタイプがサービスタイプである
場合があることが記載されている(【0039】,【0042】,【0043】,【004
4】,【0046】,【0047】,【0050】)。
また,当初明細書等には,命令スレッドのタイプは,①アプリケーションプログ
ラミングインターフェースの関数でタイプを識別するパラメータ(計算タイプ:H
TCALCUL,サービスタイプ:HT_SERVICE)に基づく場合(【002
1】,【0042】,【0050】),②プログラムの実行コマンドでタイプを識別する
パラメータ(CALCUL,SERVICE)に基づく場合(【0022】,【004
3】,【0050】),③命令スレッドの起動元のアプリケーションを自動的に認識す
ることによって決定される場合(【0045】)があることが記載されている。
さらに,命令スレッドと仮想プロセッサの関係については,仮想プロセッサのタ
イプは,パラメータC及びパラメータSによって識別され,パラメータCは計算タ
イプに,パラメータSはサービスタイプに関連付けられ,仮想プロセッサ24C及
び26Cは計算タイプであり,仮想プロセッサ24S及び26Sはサービスタイプ
である場合(【0046】~【0048】)があることが記載されている。
(イ)以上によると,当初明細書等においては,「S」及び「C」は,仮想プ
ロセッサのタイプとして記載されていること,命令スレッドのタイプとしては,「計
算タイプ」及び「サービスタイプ」という文言が用いられていることが認められる。
しかし,前記(ア)のとおり,仮想プロセッサのタイプは,パラメータC及びパラメ
ータSによって識別され,パラメータCは計算タイプに,パラメータSはサービス
タイプに関連付けられ,仮想プロセッサの24C及び26Cは「計算タイプ」,同2
4S及び26Sは「サービスタイプ」とされている。また,命令スレッドのタイプ
がアプリケーションプログラミングインターフェースの関数でタイプを識別するパ
ラメータ(計算タイプ:HTCALCUL,サービスタイプ:HT_SERVIC
E)や,プログラムの実行コマンドでタイプを識別するパラメータ(CALCUL,
SERVICE)に基づく場合があることが記載されているところ,Cが計算(c
alculation),Sがサービス(service)の頭文字に由来すること
も明らかである。
エそうすると,当初明細書等の記載を考慮して,特許請求の範囲に記載さ
れた用語の意義を解釈すると,本件補正後の請求項6~8で命令スレッドのタイプ
とされている記載「タイプ(S,C)」は,「サービスタイプ」,「計算タイプ」の意
味であると解することができる。
オ以上によると,本件補正は,本件補正前の請求項6において,命令スレ
ッドの「タイプ」は,どのような種類のタイプが存在するのかについて,記載がな
かったのを,「タイプ(S,C)」とし,当初明細書等に記載されていた「タイプ(サ
ービスタイプ,計算タイプ)」としたものであり,当初明細書等に記載された事項の
範囲内を超えるものではない。
したがって,本件補正は,新規事項を追加するものではなく,原告の主張する取
消事由1のうち,新規事項追加禁止要件違反についての判断の誤りを主張する点に
ついては,理由がある。
カ(ア)被告は,当初明細書等においては,仮想プロセッサのタイプとして
「C」及び「S」が用いられているものの,命令スレッドのタイプとして「C」及
び「S」は用いられてはおらず,命令スレッドのタイプとしては,「計算タイプ」及
び「サービスタイプ」を用いているから,命令スレッドのタイプと仮想プロセッサ
のタイプは明確に使い分けられている旨主張する。
しかし,この主張を採用することができないことは,既に判示したとおりである。
(イ)また,被告は,「S」及び「C」は,参照符号であり,発明特定事項と
はならず,単なる例示にすぎない旨主張する。
しかし,本件補正後の請求項6の「タイプ(S,C)」は,既に判示したとおり,
「タイプ(サービスタイプ,計算タイプ)」の意味であるから,単に「請求項の記載
の内容を理解するために必要があるときは,当該願書に添付した図面において使用
した符号を括弧をして用いる」(特許法施行規則様式29の2[備考]14ロ)場合
とは異なっており,発明特定事項であるということができる。
したがって,被告の上記主張は,採用することができない。
(2)目的要件違反について
ア前記(1)のとおり,本件補正により,請求項6の「タイプ」の後に付加さ
れる「(S,C)」は,「(サービスタイプ,計算タイプ)」を意味するものと解される。
イしたがって,本件補正前は限定のなかった請求項6の「タイプ」に本件
補正によって「(S,C)」を付加することにより,サービスタイプと計算タイプが
含まれることを明らかにした上,それぞれの命令スレッドがそれぞれのタイプに応
じて仮想プロセッサに方向付けられるものであることを特定したものであって,請
求項6に,「サービスタイプと計算タイプがそれぞれのタイプに応じて仮想プロセ
ッサに方向付けられる」という本件補正前にはない限定を加えたものであるから,
「特許請求の範囲の減縮」に当たるということができる。
ウ被告は,本件補正後の請求項6における「複数の所定のタイプ」という
用語は,「命令スレッド」の「タイプ」を意味するものとして明確であり,「複数の
所定のタイプ」に付加された「(S,C)」も,本願の願書に添付した図面において
使用した符号を括弧をして用いたものとして解釈し得るところ,明細書の発明の詳
細な説明で技術的に裏付けられているのが「S」及び「C」のタイプを使用するも
のだけであるとか,実施例が「S」及び「C」のタイプを使用するものだけである
ことのみから,特許請求の範囲に記載された「複数の所定のタイプ」を「少なくと
も『S』及び『C』のタイプを含むもの」と限定して解することはできない旨主張
する。
しかし,本願発明において命令スレッドの「タイプ」として「計算タイプ」と「サ
ービスタイプ」以外のものがあるとしても,特許請求の範囲及び明細書の記載から,
既に判示したとおり解することができる。
したがって,被告の上記主張を採用することはできない。
エそうすると,本件補正は,特許請求の範囲の減縮を目的とするものに該
当する。
したがって,原告の取消事由1のうち,目的要件違反についての判断の誤りを主
張する点については,理由がある。
(3)小括
そうすると,本願補正発明6は,サービスタイプと計算タイプの各命令スレッド
が,それぞれのタイプに応じて仮想プロセッサに方向付けられるものであるところ,
独立特許要件違反についての審決の判断は,これを前提としていないから,前記の
目的要件違反についての判断の誤りは,独立特許要件違反の有無を判断するまでも
なく,審決の結論に影響を及ぼす。
そして,無効審判において,本願補正発明6につき上記のような解釈に基づく審
理・判断がされたとは認められないから,本件については,再度特許庁において上
記の解釈に基づく審理・判断を行う必要があるものと考えられる。
第6結論
以上の次第で,原告の主張する取消事由1には,理由があるから,その余の点を
判断するまでもなく,審決は,取消しを免れない。
よって,主文のとおり判決する。
知的財産高等裁判所第2部
裁判長裁判官
森義之
裁判官
永田早苗
裁判官
森岡礼子

戻る



採用情報


弁護士 求人 採用
弁護士募集(経験者 司法修習生)
激動の時代に
今後の弁護士業界はどうなっていくのでしょうか。 もはや、東京では弁護士が過剰であり、すでに仕事がない弁護士が多数います。
ベテランで優秀な弁護士も、営業が苦手な先生は食べていけない、そういう時代が既に到来しています。
「コツコツ真面目に仕事をすれば、お客が来る。」といった考え方は残念ながら通用しません。
仕事がない弁護士は無力です。
弁護士は仕事がなければ経験もできず、能力も発揮できないからです。
ではどうしたらよいのでしょうか。
答えは、弁護士業もサービス業であるという原点に立ち返ることです。
我々は、クライアントの信頼に応えることが最重要と考え、そのために努力していきたいと思います。 弁護士数の増加、市民のニーズの多様化に応えるべく、従来の法律事務所と違ったアプローチを模索しております。
今まで培ったノウハウを共有し、さらなる発展をともに目指したいと思います。
興味がおありの弁護士の方、司法修習生の方、お気軽にご連絡下さい。 事務所を見学頂き、ゆっくりお話ししましょう。

応募資格
司法修習生
すでに経験を有する弁護士
なお、地方での勤務を希望する先生も歓迎します。
また、勤務弁護士ではなく、経費共同も可能です。

学歴、年齢、性別、成績等で評価はしません。
従いまして、司法試験での成績、司法研修所での成績等の書類は不要です。

詳細は、面談の上、決定させてください。

独立支援
独立を考えている弁護士を支援します。
条件は以下のとおりです。
お気軽にお問い合わせ下さい。
◎1年目の経費無料(場所代、コピー代、ファックス代等)
◎秘書等の支援可能
◎事務所の名称は自由に選択可能
◎業務に関する質問等可能
◎事務所事件の共同受任可

応募方法
メールまたはお電話でご連絡ください。
残り応募人数(2019年5月1日現在)
採用は2名
独立支援は3名

連絡先
〒108-0023 東京都港区芝浦4-16-23アクアシティ芝浦9階
ITJ法律事務所 採用担当宛
email:[email protected]

71期修習生 72期修習生 求人
修習生の事務所訪問歓迎しております。

ITJではアルバイトを募集しております。
職種 事務職
時給 当社規定による
勤務地 〒108-0023 東京都港区芝浦4-16-23アクアシティ芝浦9階
その他 明るく楽しい職場です。
シフトは週40時間以上
ロースクール生歓迎
経験不問です。

応募方法
写真付きの履歴書を以下の住所までお送り下さい。
履歴書の返送はいたしませんのであしからずご了承下さい。
〒108-0023 東京都港区芝浦4-16-23アクアシティ芝浦9階
ITJ法律事務所
[email protected]
採用担当宛