【事件の表示】
　特願２０１３−　３４５６１「ロックインジケータを有するマルチスレッドプロセッサ」拒絶査定不服審判事件〔平成２５年　７月２５日出願公開、特開２０１３−１４５５６８〕について、次のとおり審決する。
【結　論】
　本件審判の請求は、成り立たない。
【理　由】
第１．手続の経緯
　
　特願２０１０−５３７０３１号が，２００８年１２月３日（パリ条約による優先権主張外国庁受理，２００７年１２月３日（以下，「優先日」という。），アメリカ合衆国）に国際出願され，該出願を原出願とする特許法第４４条第１号の規定による新たな特許出願として，本件審判に係る出願（以下，「本願」という。）が，平成２５年２月２５日に出願され，平成２５年３月１９日付けで特許法第１８４条の４第１項の規定による翻訳文が提出されると共に，同日付けで審査請求と手続補正がなされた。
　そして，平成２５年９月４日付けで拒絶理由通知（平成２５年９月１０日発送）がなされ，これに対して平成２６年１月１０日付けで意見書が提出されるとともに同日付けで手続補正がなされたが，平成２６年１月３０日付けで拒絶査定（平成２６年２月４日謄本送達）がなされた。
　これに対して，「原査定を取り消す。本願は特許をすべきものである，との審決を求める。」ことを請求の趣旨として，平成２６年６月４日付けで審判請求がなされた。
　
　
第２．本願発明
　
　本願の請求項１に係る発明（以下，「本願発明」という。）は，平成２６年１月１０日付け手続補正により補正された特許請求の範囲の請求項１に記載された事項により特定される，以下のとおりのものである。
　
「　変換索引バッファ（ＴＬＢ）と制御論理回路とＴＬＢロックインジケータとを備えたマルチスレッドプロセッサが実行する方法であって，
　前記マルチスレッドプロセッサの第１のスレッドに関連付けられたＴＬＢミス事象を受信することと；
　前記ＴＬＢロックインジケータをチェックすることと，なお，前記ＴＬＢロックインジケータはグローバル状態レジスタの１以上のビットを備える；
　前記ＴＬＢロックインジケータがアンロック状態を指示していることに応答して，前記第１のスレッドによる前記ＴＬＢに関連付けられた例外ハンドラへのアクセスを許可することと；
　前記ＴＬＢロックインジケータがロック状態を指示していることに応答して，
　　前記第１のスレッドをスリープ状態にすることと，なお，前記第１のスレッドをスリープ状態にすることは前記制御論理回路からのスリープ命令の受信に応答して実行される；
　　前記第１のスレッドをスリープ状態にした後，前記ＴＬＢロックインジケータを，前記ロック状態を指示することからアンロック状態を指示することに移行することと；
　　前記ＴＬＢロックインジケータが前記ロック状態から前記アンロック状態に移行することに応答して，前記ＴＬＢミス事象を引き起こしたパケットの実行を再現することと，
なお，前記パケットは複数の命令を備える；
　を備える方法。」 
　
　
第３．先行技術文献記載事項
　
１．引用文献１
　本願の優先日前に頒布又は電気通信回線を通じて公衆に利用可能となった文献であって，原審の平成２５年９月４日付けの拒絶理由通知において引用された，米国特許出願公開第２００７／００５０５９５号明細書（２００７年３月１日公開。以下，「引用文献１」という。）には，図面とともに，次の記載がある。
（当審注：下線は，参考のために当審で付与したものである。以下，同じ。）
Ａ．「1 . 
A method for synchronizing access to a translation lookaside buffer in a multithread processor, wherein the method comprises
　
finding a first translation lookaside buffer exception with a first thread processor
　
indicating that the first translation lookaside buffer exception is being processed
　
finding a second translation lookaside buffer exception with a second thread processor; and
　
handling the second translation lookaside buffer exception after the first translation lookaside buffer exception has been processed
2 . The method of  claim 1 , wherein the first thread processor and the second thread processor search the translation lookaside buffer at the same time.
3 . 
The method of  claim 1 , wherein a serialization bit is set to indicate that the first translation lookaside buffer exception is being processed
4 . 
The method of  claim 3 , wherein the serialization bit is reset to indicate that the first translation lookaside buffer exception has been processed
　
（当審仮訳：
１．
マルチスレッドプロセッサ内の変換索引バッファへのアクセスを同期するための方法であって
　
第１のスレッドプロセッサの第１の変換索引バッファ例外を発見することと
　
第１の変換索引バッファ例外が処理中であることを示すことと
　
第２のスレッドプロセッサの第２の変換索引バッファ例外を発見することと
　
第１の変換索引バッファ例外が処理された後に第２の変換索引バッファ例外の処理を行うこと
を含む方法
２．第１のスレッドプロセッサと第２のスレッドプロセッサが同時に変換索引バッファを検索することを特徴とする請求項１に記載の方法。
３．
第１の変換索引バッファ例外が処理中であることを示すために，シリアライゼーション・ビットがセットされることを特徴とする請求項１に記載の方法
４．
第１の変換索引バッファ例外の処理が終了したことを示すために，シリアライゼーション・ビットがリセットされることを特徴とする請求項３に記載の方法
　
Ｂ．「[0013] The CMT processor  101  contains a set of execution elements, called the thread processors (TP)  103 ,  105 , and  107 . Each TP  103 ,  105 , and  107  can execute a program independently and receive external interrupts. TPs  103 ,  105 , and  107  can share system resources such as a system interface  109 , a translation lookaside buffer (TLB)  111 , an instruction cache  113 , and a data cache  115 .
・・・（中略）・・・
[0015] The TLB  111  can be shared by multiple TPs in a CMT processor  101 . When one TLB exception is handled, the resource requirements may preclude another TLB exception from being handled. Therefore, 
the CMT processor allows one TLB exception at a time
　
（当審仮訳：
［００１３］　ＣＭＴプロセッサ１０１は，スレッドプロセッサ（ＴＰ）１０３，１０５，及び１０７と呼ばれる実行要素の組を含んでいる。各ＴＰ１０３，１０５，及び１０７は，プログラムを独立に実行し，外部割り込みを受け取ることができる。ＴＰ１０３，１０５，及び１０７は，システムインターフェース１０９，変換索引バッファ（ＴＬＢ）１１１，命令キャッシュ１１３，及びデータキャッシュ１１５のようなシステムリソースを共有することができる。
・・・（中略）・・・
［００１５］　ＴＬＢ１１１は，ＣＭＴプロセッサ１０１内の複数のＴＰで共有することができる。１つのＴＬＢ例外が処理される際，他のＴＬＢ例外の処理は排除され得る。したがって，
ＣＭＴプロセッサは，一度に１つのＴＬＢ例外を許可する
　
Ｃ．「[0017] Each entry in the table  201  may contain a virtual page ID, a physical page ID, and a page size. A memory access can manage a search of the TLB  111 . For example, the mth TP  107  may read  117  from the TLB  111  and perform a normal memory access when a virtual page match is found. 
When a TLB search cannot match a virtual page in the TLB  111 , a TLB miss exception is generated and the exception handler  207  can use control registers  205  and instructions  203  to refill  119  a missing page translation in the table  201  of the TLB  111
　
（当審仮訳：
［００１７］　テーブル２０１の各エントリは，仮想ページＩＤ，物理ページＩＤ，及びページサイズを含み得る。メモリアクセスは，ＴＬＢ１１１の検索を管理することができる。例えば，ｍ番目のＴＰ１０７は，ＴＬＢ１１１から１１７を読み取り，仮想ページの一致が検出された際に，通常のメモリアクセスを実行することができる。
ＴＬＢ１１１内で仮想ページの一致が検出できない際には，ＴＬＢミス例外が生成され，ＴＬＢ１１１のテーブル２０１内に不足しているページ変換をリフィル１１９するために，例外ハンドラ２０７は，コントロールレジスタ２０５と命令２０３を使用できる
　
Ｄ．「[0020]　FIG. 3  is a flowchart  300  illustrating an exemplary method for synchronizing Translation Lookaside Buffer (TLB) access in a concurrent multithread processor in accordance with a representative embodiment of the present invention.
[0021]　A first thread processor searches a translation look-aside buffer at  301 . The first thread processor finds a first TLB exception at  303 . 
The exception can be caused by having a particular page missing from the plurality of virtual pages in the TLB
[0022]When a serialization bit is set, the TLB can be continuously searched by the second TP or searching can be stopped until the first TLB exception has been completed. A second thread processor searches the TLB at  305 . If searching continues, the second thread processor may find a second TLB exception at  309 . At  311 , 
a handling of the second TLB exception is delayed until after the first TLB exception has been processed
[0023]　An exception handler can replace the missing page in the first TLB exception by using the instructions and control registers in the TLB. The serialization bit can be reset to 'zero' to indicate 
when the first TLB exception has been completed
Upon completion, the exception handler can execute
to return the first thread processor to the program that searched the TLB
　
（当審仮訳：
［００２０］　図３は，本発明の代表的な実施形態による，マルチスレッドプロセッサ内の変換索引バッファ（ＴＬＢ）へのアクセスを同期するための例示的な方法を示すフローチャート３００である。
［００２１］　第１のスレッドプロセッサは３０１で変換索引バッファを検索する。第１のスレッドプロセッサは，３０３で第１のＴＬＢ例外を検出する。
第１のＴＬＢ例外は，ＴＬＢにおいて，所定の仮想ページに所望のページが含まれていないことによって引き起こされ得る
［００２２］　シリアライゼーション・ビットがセットされると，ＴＬＢは，第２のスレッドプロセッサによって，連続的に検索され得るか，第１のＴＬＢ例外が完了するまで，検索を停止させられ得る。第２のスレッドプロセッサは３０５で，ＴＬＢを検索する。検索が続けば，第２のスレッドプロセッサは，３０９で第２のＴＬＢ例外を検出し得る。３１１において，
第２のＴＬＢ例外の処理は，第１のＴＬＢ例外の処理が終わるまで遅延される
［００２３］　例外ハンドラは，ＴＬＢ内の命令レジスタや制御レジスタを用いて，第１のＴＬＢ例外で含まれていないページを置き換えることができる。
第１のＴＬＢ例外が完了したことを示すために
完了すると，例外ハンドラは，第１のスレッドプロセッサをＴＬＢを検索したプログラムに戻すために，特別な命令である“return from exception”を実行する
　
Ｅ．「[0025]　Accordingly, 
the present invention may be realized in hardware, software, or a combination of hardware and software
　
（当審仮訳：
［００２５］　したがって，
本発明は，ハードウェア，ソフトウェア，又はハードウェアとソフトウェアの組合せで実現されてもよい
　
Ｆ．　図３
　
２．参考文献１
　本願の優先日前に頒布又は電気通信回線を通じて公衆に利用可能となった文献である，特開２００２−３４２１６３号公報（平成１４年１１月２９日公開。以下，「参考文献１」という。）には，次の記載がある。
　
Ｇ．「【００２１】図２に示すように，
マルチスレッドプロセッサ１００は
キャッシュ１１０と，占有フラグ１１１と
を備える
・・・（中略）・・・
【００２３】記憶制御部１０７は，メモリとキャッシュ１１０間のデータ転送を制御する部分であり，特に，
キャッシュ１１０の一部分に対し，複数のスレッドで共有するか，特定のスレッドで占有して用いるかの割り当てをウェイ単位に制御する機能を持つ
【００２４】
占有フラグ１１１は，該当ウェイごとにスレッド共有／スレッド占有を示すフラグである
　
３．参考文献２
　本願の優先日前に頒布又は電気通信回線を通じて公衆に利用可能となった文献である，特表２００６−５０３３８５号公報（平成１８年１月２６日公表。以下，「参考文献２」という。）には，次の記載がある。
　
Ｈ．「【００４６】
　図３および図４はそれぞれ，
本発明による割込みコントローラ１０５に付随する例示的な
フラグ・レジスタを示す
これらのレジスタはマルチスレッド・プロセッサ１０２と一体化される
これらの割込みコントローラ・レジスタは，割込みコントローラ１０５の内部，またはマルチスレッド・プロセッサ内の他の場所に組み込まれた，いわゆる「特殊用途」のレジスタであってもよい
　
４．参考文献３
　本願の優先日前に頒布又は電気通信回線を通じて公衆に利用可能となった文献である，特開２００４−０２１９８５号公報（平成１６年１月２２日公開。以下，「参考文献３」という。）には，次の記載がある。
　
Ｉ．「【０００２】
【従来の技術】
マルチスレッドプログラムでは
ロック機構を用いる一手法では，
スレッドは，保護部分にアクセスする際にロックを取得するため，そのスレッドがロックを保持している間，他のスレッドは同じ部分にアクセスすることができない
スレッドがロックを解除すると，別のスレッドがロックを取得して保護部分にアクセスし，他のスレッドが同じ部分にアクセスできないようにする。
【０００３】
ロックを待っているスレッドは，スリープ待ち行列に入り
　
５．参考文献４
　本願の優先日前に頒布又は電気通信回線を通じて公衆に利用可能となった文献である，特表２００７−５２０７６９号公報（平成１９年７月２６日公表。以下，「参考文献４」という。）には，関連する図とともに，次の記載がある。
　
Ｊ．「【０００３】
  ロックがプロセッサに利用可能になるなど，モニタイベントが発生するまで他のプロセッサと競合するロックを取得するため，プロセッサをスリープ状態にするシステム，装置及び方法が提供される。すなわち，
プロセッサはロックが利用可能となるのを待機しているが，キューへの待機中にはスリープ状態となるようにしてもよい
ロックを求めるプロセッサは，ハイパースレッドプロセッサの論理プロセッサであってもよい
　
　
第４．引用発明の認定
　
１．引用文献１に記載されている事項について検討する。
（１）　上記Ａ．には，請求項１として，「A method for synchronizing access to a translation lookaside buffer in a multithread processor, wherein the method comprises:　finding a first translation lookaside buffer exception with a first thread processor;　indicating that the first translation lookaside buffer exception is being processed;　finding a second translation lookaside buffer exception with a second thread processor; and　handling the second translation lookaside buffer exception after the first translation lookaside buffer exception has been processed. （マルチスレッドプロセッサ内の変換索引バッファへのアクセスを同期するための方法であって，第１のスレッドプロセッサの第１の変換索引バッファ例外を発見することと，第１の変換索引バッファ例外が処理中であることを示すことと，第２のスレッドプロセッサの第２の変換索引バッファ例外を発見することと，第１の変換索引バッファ例外が処理された後に第２の変換索引バッファ例外の処理を行うこと，を含む方法）」が記載され，請求項３として，「The method of  claim 1 , wherein a serialization bit is set to indicate that the first translation lookaside buffer exception is being processed.（第１の変換索引バッファ例外が処理中であることを示すために，シリアライゼーション・ビットがセットされることを特徴とする請求項１に記載の方法）」が記載され，請求項４として「The method of  claim 3 , wherein the serialization bit is reset to indicate that the first translation lookaside buffer exception has been processed.（第１の変換索引バッファ例外の処理が終了したことを示すために，シリアライゼーション・ビットがリセットされることを特徴とする請求項３に記載の方法）」が記載されている。
　そして，上記「第１のスレッドプロセッサの第１の変換索引バッファ例外」及び上記「第２のスレッドプロセッサの第２の変換索引バッファ例外」が，それぞれ「第１のスレッドに関する第１の変換索引バッファ例外」及び「第２のスレッドに関する第２の変換索引バッファ例外」といえることは，当業者にとって自明であるから，上記Ａ．には，「マルチスレッドプロセッサ内の変換索引バッファへのアクセスを同期するための方法であって，第１のスレッドに関する第１の変換索引バッファ例外を発見することと，第１の変換索引バッファ例外が処理中であることを示すことと，第２のスレッドに関する第２の変換索引バッファ例外を発見することと，第１の変換索引バッファ例外が処理された後に第２の変換索引バッファ例外の処理を行うこと，第１の変換索引バッファ例外が処理中であることを示すために，シリアライゼーション・ビットをセットすることと，第１の変換索引バッファ例外の処理が終了したことを示すために，シリアライゼーション・ビットをリセットすること，を含む方法」が記載されているといえる。
　
（２）　上記Ｄ．には，段落［００２２］に「a handling of the second TLB exception is delayed until after the first TLB exception has been processed.（第２のＴＬＢ例外の処理は，第１のＴＬＢ例外の処理が終わるまで遅延される）」ことが記載され，「ＴＬＢ」が「変換索引バッファ」であることは，上記Ｄ．の段落［００２０］に示されるとおりであるから，上記Ａ．に記載された「第１の変換索引バッファ例外が処理された後に第２の変換索引バッファ例外の処理を行うこと」の具体的態様として，「第２の変換索引バッファ例外の処理を，第１の変換索引バッファ例外の処理が終わるまで遅延する」ことが記載されているといえる。
　
（３）　上記Ｃ．には，「When a TLB search cannot match a virtual page in the TLB  111 , a TLB miss exception is generated and the exception handler  207  can use control registers  205  and instructions  203  to refill  119  a missing page translation in the table  201  of the TLB  111 .（ＴＬＢ１１１内で仮想ページの一致が検出できない際には，ＴＬＢミス例外が生成され，ＴＬＢ１１１のテーブル２０１内に不足しているページ変換をリフィル１１９するために，例外ハンドラ２０７は，コントロールレジスタ２０５と命令２０３を使用できる）」ことが記載され，「ＴＬＢ１１１内で仮想ページの一致が検出できない際には，ＴＬＢミス例外が生成」されるとは「ＴＬＢ例外」が発見されることであることは，当業者にとって自明であるから，上記Ｃ．には，変換索引バッファ例外が発見されると，例外ハンドラが実行されることが記載されているといえる。
　そして，上記Ｄ．の段落［００２３］の「when the first TLB exception has been completed. Upon completion, the exception handler can execute ・・・（中略）・・・ to return the first thread processor to the program that searched the TLB.（第１のＴＬＢ例外が完了したことを示すために，・・・（中略）・・・完了すると，例外ハンドラは，第１のスレッドプロセッサをＴＬＢを検索したプログラムに戻す）」との記載からは，「ＴＬＢを検索したプログラム」に戻される「第１のスレッドプロセッサ」で「例外ハンドラ」が実行されていたことが読み取れるから，「ＴＬＢを検索したプログラム」が実行されるスレッド，すなわちＴＬＢ例外を発見したスレッドと，「例外ハンドラ」が実行されるスレッドは，共に「第１のスレッド」ということができる旨が，上記Ｄ．から読み取れる。
　してみれば，上記Ｃ．及びＤ．からは，第１のスレッドに関する変換索引バッファ例外が発見されると，「第１のスレッドで例外ハンドラを実行する」ことが読み取れる。
　
（４）　上記Ｄ．の，段落［００２３］の「when the first TLB exception has been completed. Upon completion, the exception handler can execute a special 'return from exception' instruction to return the first thread processor to the program that searched the TLB. （第１のＴＬＢ例外が完了したことを示すために，・・・（中略）・・・完了すると，例外ハンドラは，第１のスレッドプロセッサをＴＬＢを検索したプログラムに戻すために，特別な命令である“return from exception”を実行する）」との記載から，上記Ｄ．には，「第１の変換索引バッファ例外の処理が完了すると，例外ハンドラは，第１のスレッドプロセッサを変換索引バッファを検索したプログラムに戻す命令を実行する」ことが記載されているといえる。
　
２．上記１．の（１）ないし（４）に示したことから，引用文献１には，次の発明（以下，「引用発明」という。）が記載されていると認められる。
　
「マルチスレッドプロセッサ内の変換索引バッファへのアクセスを同期するための方法であって，
　第１のスレッドに関する第１の変換索引バッファ例外を発見することと，
　第１のスレッドで例外ハンドラを実行することと，
　第１の変換索引バッファ例外が処理中であることを示すことと，
　第２のスレッドに関する第２の変換索引バッファ例外を発見することと，
　第１の変換索引バッファ例外が処理された後に第２の変換索引バッファ例外の処理を行うこと，を含み，
　第１の変換索引バッファ例外が処理中であることを示すために，シリアライゼーション・ビットをセットすることと，
　第１の変換索引バッファ例外の処理が終了したことを示すために，シリアライゼーション・ビットをリセットすることと，
　第２の変換索引バッファ例外の処理を，第１の変換索引バッファ例外の処理が終わるまで遅延することと，
　第１の変換索引バッファ例外の処理が完了すると，例外ハンドラは，第１のスレッドプロセッサを変換索引バッファを検索したプログラムに戻す命令を実行すること，
を含む方法。」
　
　
第５．対比
　
１．引用発明と本願発明を対比する。
（１）　引用発明における，「マルチスレッドプロセッサ内の変換索引バッファへのアクセスを同期するための方法」は，上記Ｂ．の「ＣＭＴプロセッサは，一度に１つのＴＬＢ例外を許可する」旨の記載を参酌すれば，「ＣＭＴプロセッサ」，すなわち「マルチスレッドプロセッサ」が実行する方法であることは明らかである。また，引用発明は，「マルチスレッドプロセッサ内の変換索引バッファ」へのアクセスを同期するための方法であるから，引用発明における「マルチスレッドプロセッサ」が「変換索引バッファ」を備えるものであることは明らかである。
　してみれば，引用発明と本願発明は，「変換索引バッファ（ＴＬＢ）を備えたマルチスレッドプロセッサが実行する方法」である点で共通する。
　
（２）　上記Ｄ．の段落［００２１］には，「The exception can be caused by having a particular page missing from the plurality of virtual pages in the TLB. （第１のＴＬＢ例外は，ＴＬＢにおいて，所定の仮想ページに所望のページが含まれていないことによって引き起こされ得る）」ことが記載されているから，引用発明の「変換索引バッファ例外」は，変換索引バッファにおいて，所定の仮想ページに所望のページが含まれていないことによって引き起こされるものであるといえる。一方，本願明細書の段落【００１４】には，「ＴＬＢ １０８は，要求された仮想アドレスがＴＬＢ １０８で見つからなかった時に，制御論理回路１０６にＴＬＢミス事象を信号で送るように構成される」と記載されているから，本願発明の「ＴＬＢミス事象」は，要求された仮想アドレスが変換索引バッファで見つからない際に起きるものであるといえる。
　そして，変換索引バッファにおいて所定の仮想ページに所望のページが含まれていないことと，要求された仮想アドレスが変換索引バッファで見つからないことが，同義であることは，コンピュータアーキテクチャの技術分野における当業者にとっては自明であるから，引用発明の「変換索引バッファ例外」と，本願発明の「ＴＬＢミス事象」は同じ事象によって引き起こされるもの，すなわち，相当するものであるといえる。
　よって，引用発明の「第１のスレッドプロセッサの第１の変換索引バッファ例外を発見すること」は本願発明の「前記マルチスレッドプロセッサの第１のスレッドに関連付けられたＴＬＢミス事象を受信すること」に相当する。
　
（３）　
ア．引用発明における「シリアライゼーション・ビット」とは，変換索引バッファ例外が処理中であることを示すためにセットされ，変換索引バッファ例外の処理が終了するとリセットされるものであることは，上記Ａ．の請求項３及び４，並びに上記Ｄ．の段落［００２１］及び［００２３］の記載から明らかである。
　一方，本願発明における「ＴＬＢロックインジケータ」とは，一般的な技術用語とはいえないから，その意味を解釈するために，本願明細書及び図面を参酌すると，段落【００２２】に「ＴＬＢミス事象によりＴＬＢ １０８がロックされる時，制御論理回路１０６は，
ＴＬＢミス事象に応答する例外ハンドラ
例外ハンドラへのスレッドによるアクセスが
許可され
ＴＬＢロックインジケータは，アクセスが許可された時
ロックされる
ＴＬＢロックインジケータは，例外ハンドラから戻り次第，自動的にアンロックされる
　してみると，引用発明の「シリアライゼーション・ビット」は，本願発明の「ＴＬＢロックインジケータ」に相当するといえる。
　
イ．上記Ｄ．において「The first thread processor finds a first TLB exception at  303 .（第１のスレッドプロセッサは，３０３で第１のＴＬＢ例外を検出する）」ことと，「the second thread processor may find a second TLB exception at  309 .（第２のスレッドプロセッサは，３０９で第２のＴＬＢ例外を検出し得る）」ことが記載されると共に，上記Ｆ．において，「３０３」の処理が，「３０９」の処理より先に行われることが記載されているから，引用発明において，「第１のスレッドプロセッサの第１の変換索引バッファ例外を発見する」との処理が，「第２のスレッドプロセッサの第２の変換索引バッファ例外を発見する」との処理より前に行われることは明らかである。
　そして，第１の変換索引バッファ例外を発見すると，第１の変換索引バッファ例外が処理中であることを示すために，シリアライゼーション・ビットがセットされるのであるから，第２の変換索引バッファ例外を発見するとの処理が行われる際には，シリアライゼーション・ビットは既にセットされているといえる。
　また，ビットがセットされるとの処理は，リセット状態にあるビットをセットすることを意味することは，当業者にとって自明であるし，「第１のスレッドプロセッサの第１の変換索引バッファ例外を発見する」処理より前に変換索引バッファ例外が起きていること，又はシリアライゼーション・ビットがセットされていることが，引用文献１のいずれの箇所にも記載も示唆もされていないことなどから見て，引用発明において，シリアライゼーション・ビットがセットされる前には，シリアライゼーション・ビットはリセット状態にあるといえる。
　
ウ．「ハンドラ」とは，コンピュータアーキテクチャの技術分野においては，何らかの処理要求が発生したときに起動されるプログラムなどであって，通常のプログラムの流れには組み込まれず，普段は待機しているが，対応すべき処理要求が発生すると通常のプログラムの流れを中断して呼び出され，要求された処理を実行するものを指す技術用語であると解するのが通常である。また，「ハンドラ」には，対応すべき処理要求の種類に応じて，「イベントハンドラ」や「割り込みハンドラ」などがあることも，当業者に広く知られたことである。
　そして，本願明細書の段落【００１８】の「一般的に，第１のスレッド１１２の例外ハンドラ１２２は，スレッド１１２と１１４によって共有されたリソースに関連する例外を処理するため，および，例外が処理された後に，リソースのためにハードウェアロックをアンロックするために，命令を取り込み，実行する。」との記載を参酌すると，本願発明における「例外ハンドラ」とは，スレッドによって共有されたリソースに関する例外を処理するためのものであるといえる。してみると，本願発明において，「前記第１のスレッドによる前記ＴＬＢに関連付けられた例外ハンドラへのアクセスを許可する」とは，「前記第１のスレッド」から変換索引バッファに関連する例外処理を行うハンドラへのアクセスを許可すること，すなわち，「前記第１のスレッド」から変換索引バッファに関連する例外処理の要求を許可することであると解される。
　一方，上記Ｃ．の記載によると，引用発明の「例外ハンドラ」は「ＴＬＢ１１１内で仮想ページの一致が検出できない際には，ＴＬＢミス例外が生成され，ＴＬＢ１１１のテーブル２０１内に不足しているページ変換をリフィル１１９するため」のものといえるから，引用発明の「例外ハンドラ」は，変換索引バッファに関連する例外処理を行うハンドラであるといえる。そして，スレッドで例外ハンドラを実行する際に，スレッドから例外処理の要求を行うことは，当業者にとって自明であり，例外処理の要求を行う際には，例外処理の要求を行うことが少なくとも許可されることも，当業者にとって自明である。よって，引用発明において「第１のスレッドで例外ハンドラを実行する」際には，少なくとも，「第１スレッド」から変換索引バッファに関連する例外処理の要求を行うことを可能にしているといえる。
　してみれば，引用発明の「第１スレッドで例外ハンドラを実行する」ことは，本願発明の「前記第１のスレッドによる前記ＴＬＢに関連付けられた例外ハンドラへのアクセスを許可する」ことに相当する。
　
エ．よって，引用発明において「第１のスレッドプロセッサの第１の変換索引バッファ例外を発見する」処理に続いて，「第１のスレッドで例外ハンドラを実行する」処理と，「第１の変換索引バッファ例外が処理中であることを示す」処理，すなわち，「第１の変換索引バッファ例外が処理中であることを示すために，シリアライゼーション・ビットをセットする」との処理を行うことは，本願発明の「前記ＴＬＢロックインジケータがアンロック状態を指示していることに応答して，前記第１のスレッドによる前記ＴＬＢに関連付けられた例外ハンドラへのアクセスを許可すること」に相当する。
　また，引用発明において，「第２のスレッドプロセッサの第２の変換索引バッファ例外を発見する」との処理に続いて，「第１の変換索引バッファ例外が処理された後に第２の変換索引バッファ例外の処理を行うこと」，すなわち，「第２の変換索引バッファ例外の処理を，第１の変換索引バッファ例外の処理が終わるまで遅延する」との処理を行うことと，本願発明の「前記ＴＬＢロックインジケータがロック状態を指示していることに応答して，前記第１のスレッドをスリープ状態にすること」は，「前記ＴＬＢロックインジケータがロック状態を指示していることに応答して，前記第１のスレッドの処理を遅延させること」である点で共通する。
　
（４）　引用発明において，「第１の変換索引バッファ例外の処理が終了したことを示すために，シリアライゼーション・ビットをリセットする」ことは，「第１の変換索引バッファ例外の処理」の後に行われることが自明である。さらに，「第１の変換索引バッファ例外の処理」を実行する間は，「第２の変換索引バッファの例外処理」が遅延されているのであるから，引用発明において，「第１の変換索引バッファ例外の処理が終了したことを示すために，シリアライゼーション・ビットをリセットする」ことは，「第２の変換索引バッファの例外処理」を遅延した後に行われるといえる。
　一方，本願発明においては，「前記ＴＬＢロックインジケータを，前記ロック状態を指示することからアンロック状態を指示することに移行すること」は，「前記第１のスレッドをスリープ状態にした後」に行われる。
　さらに，上記（３）で検討したことから，引用発明の「第１の変換索引バッファ例外の処理が終了したことを示すために，シリアライゼーション・ビットをリセットすること」は，本願発明の「前記ＴＬＢロックインジケータを，前記ロック状態を指示することからアンロック状態を指示することに移行すること」に相当するといえるし，引用発明において「第２の変換索引バッファの例外処理」を遅延することと，本願発明において「前記第１のスレッドをスリープ状態」にすることは，「前記第１のスレッドの処理を遅延させる」ことである点で共通するといえる。
　してみると，引用発明と本願発明は，「前記第１のスレッドの処理を遅延させた後，前記ＴＬＢロックインジケータを，前記ロック状態を指示することからアンロック状態を指示することに移行する」点で共通する。
　
（５）　引用発明は，「第１の変換索引バッファ例外の処理が終了したことを示すために，シリアライゼーション・ビットをリセットする」のであるから，「第１の変換索引バッファ例外の処理が完了する」と，「第１の変換索引バッファ例外の処理が終了したことを示すために，シリアライゼーション・ビットをリセットする」といえる。さらに，引用発明は「第１の変換索引バッファ例外の処理が完了すると，例外ハンドラは，第１のスレッドプロセッサを変換索引バッファを検索したプログラムに戻す命令を実行する」との処理を行うのであるから，引用発明は，「第１の変換索引バッファ例外の処理が終了したことを示すために，シリアライゼーション・ビットをリセットする」ことに応答して，「例外ハンドラは，第１のスレッドプロセッサを変換索引バッファを検索したプログラムに戻す命令を実行する」といえる。
　また，本願明細書の段落【００４７】には「制御ユニットは，スレッド１がウェーク動作を行い，命令パケット動作の実行を再現すること（４３４）に応答して，スレッド１を覚醒するために信号４３３を送る。」と記載され，段落【００４８】には「パケット動作のウェークや再現４３４の実行は，スレッド１がスリープ状態４２０に置かれる前に保存されたスレッド１の前回の状態を再ロードし，ＴＬＢミス事象４１４を生成するパケットの実行を再現する。」と記載されていることから，本願発明において，「前記ＴＬＢミス事象を引き起こしたパケットの実行を再現すること」は，スレッドを覚醒するために行うことは明らかである。
　してみれば，引用発明の「第１の変換索引バッファ例外の処理が完了すると，例外ハンドラは，第１のスレッドプロセッサを変換索引バッファを検索したプログラムに戻す命令を実行すること」と，本願発明の「前記ＴＬＢロックインジケータが前記ロック状態から前記アンロック状態に移行することに応答して，前記ＴＬＢミス事象を引き起こしたパケットの実行を再現することと」は，「前記ＴＬＢロックインジケータが前記ロック状態から前記アンロック状態に移行することに応答して，前記ＴＬＢミス事象を引き起こしたプログラムに戻すこと」である点で共通する。
　
２．上記１．において示したことから，本願発明と引用発明の一致点及び相違点は，次のとおりである。
　
［一致点］
　変換索引バッファ（ＴＬＢ）を備えたマルチスレッドプロセッサが実行する方法であって，
　前記マルチスレッドプロセッサの第１のスレッドに関連付けられたＴＬＢミス事象を受信することと；
　前記ＴＬＢロックインジケータがアンロック状態を指示していることに応答して，前記第１のスレッドによる前記ＴＬＢに関連付けられた例外ハンドラへのアクセスを許可することと；
　前記ＴＬＢロックインジケータがロック状態を指示していることに応答して，
　　前記第１のスレッドの処理を遅延させることと；
　　前記第１のスレッドの処理を遅延させた後，前記ＴＬＢロックインジケータを，前記ロック状態を指示することからアンロック状態を指示することに移行することと；
　　前記ＴＬＢロックインジケータが前記ロック状態から前記アンロック状態に移行することに応答して，前記ＴＬＢミス事象を引き起こしたプログラムに戻すことと，
　を備える方法。
　
［相違点１］
　本願発明においては，マルチスレッドプロセッサが「変換索引バッファ（ＴＬＢ）」に加えて「制御論理回路とＴＬＢロックインジケータとを備えた」ものであるのに対して，引用発明では，マルチスレッドプロセッサが「制御論理回路とＴＬＢロックインジケータとを備えた」ものであるとの限定がなされていない点。
　
［相違点２］
　本願発明においては，「前記ＴＬＢロックインジケータはグローバル状態レジスタの１以上のビットを備える」ものであるのに対して，引用発明では，そのような限定がなされていない点。
　
［相違点３］
　本願発明は，「前記ＴＬＢロックインジケータをチェックする」構成を備えているのに対して，引用発明では「チェックする」構成に言及されていない点。
　
［相違点４］
　本願発明は，「前記第１のスレッドをスリープ状態にする」，「なお，前記第１のスレッドをスリープ状態にすることは前記制御論理回路からのスリープ命令の受信に応答して実行される」構成を備えているのに対して，引用発明は「スリープ状態にする」構成に言及されていない点。
　
［相違点５］
　本願発明は，「前記ＴＬＢロックインジケータが前記ロック状態から前記アンロック状態に移行することに応答して，前記ＴＬＢミス事象を引き起こしたパケットの実行を再現する」ことと，「前記パケットは複数の命令を備える」構成を備えているのに対して，引用発明は「パケットの実行を再現する」構成及び「前記パケットは複数の命令を備える」構成に言及されていない点。
　
　
第６．判断
　
１．相違点１及び相違点２について
（１）　引用発明においては，「第１の変換索引バッファ例外が処理中であることを示すために，シリアライゼーション・ビットをセットする」，「第１の変換索引バッファ例外の処理が終了したことを示すために，シリアライゼーション・ビットをリセットする」，及び「第２の変換索引バッファ例外の処理を，第１の変換索引バッファ例外の処理が終わるまで遅延する」との処理が行われるのであるから，引用発明の「マルチスレッドプロセッサ」が，当該処理を制御する機構を備えていることは，当業者にとって自明である。
　さらに，上記Ｅ．には，「the present invention may be realized in hardware, software, or a combination of hardware and software.（本発明は，ハードウェア，ソフトウェア，又はハードウェアとソフトウェアの組合せで実現されてもよい）」ことが記載されているし，所望の処理を制御する機構を「ハードウェア」で形成する際に，「制御論理回路」からなる「ハードウェア」を用いることは，当業者が通常選択する常とう手段であるといえる。してみれば，引用発明において，上記した処理を制御する機構を「マルチスレッドプロセッサ」が備える「制御論理回路」で実現することは，当業者が当然に想到し得ることである。
　
（２）　「グローバル」との用語は，本願特許請求の範囲又は明細書において，その意味が定義されるものではなく，マルチスレッドの技術分野においては，複数のスレッドによって共用されるとの意味で用いられることが当業者における技術常識であるから，本願発明の「グローバル状態レジスタ」をその字句のとおりに解釈すれば，複数のスレッドから共用されるレジスタであって，何らかの「状態」を示す情報を格納するレジスタの意味であると解される。
　そして，引用発明における「シリアライゼーション・ビット」は，少なくとも第１及び第２のスレッドから参照され得る情報であって，変換索引バッファ例外が処理中であることを示す情報であるから，「グローバル」な性質を有し，何らかの「状態」を示す情報であるといえる。さらに，ビットで表現される情報をレジスタに格納することは，コンピュータアーキテクチャの技術分野において当業者が通常選択する慣用技術にすぎないし，参考文献１（上記Ｇ．）及び参考文献２（上記Ｈ．）にみられるように，マルチスレッドプロセッサ内にフラグビットを格納するレジスタを備えることは，当該技術分野における周知技術であるから，引用発明における「シリアライゼーション・ビット」を，マルチスレッドプロセッサ内に備えるレジスタに格納することは，当業者が通常選択することにすぎない。
　してみれば，引用発明において，「シリアライゼーション・ビット」が，複数のスレッドから共用されるレジスタであって，何らかの「状態」を示す情報を格納するレジスタ，すなわち「グローバル状態レジスタ」の１以上のビットを備え，当該「グローバル状態レジスタ」がマルチプロセッサ内に備えられることは，当業者が当然に想到し得ることである。
　
（３）　上記（１）及び（２）に示したことから，引用発明を，マルチスレッドプロセッサが「変換索引バッファ（ＴＬＢ）」に加えて「制御論理回路とＴＬＢロックインジケータとを備えた」ものとして，「前記ＴＬＢロックインジケータはグローバル状態レジスタの１以上のビットを備える」ものとすること，すなわち，相違点１及び２に係る構成とすることは，当業者が容易に想到し得ることである。
　
２．相違点３について
　引用発明において，「第２の変換索引バッファ例外の処理は，第１の変換索引バッファ例外の処理が終わるまで遅延する」との処理を行うためには，第１の変換索引バッファ例外が処理中であることを示すための「シリアライゼーション・ビット」がセットされているか否かをチェックする必要があることは，当業者にとって自明である。
　してみれば，引用発明において，「シリアライゼーション・ビット」がセットされているか否かをチェックする構成とすることは，当業者が必然的に想到し得ることである。
　
３．相違点４について
　参考文献３（上記Ｉ．）に「マルチスレッドプログラムでは，・・・（中略）・・・スレッドは，保護部分にアクセスする際にロックを取得するため，そのスレッドがロックを保持している間，他のスレッドは同じ部分にアクセスすることができない。・・・（中略）・・・ロックを待っているスレッドは，スリープ待ち行列に入り」と記載され，参考文献４（上記Ｊ．）に「プロセッサはロックが利用可能となるのを待機しているが，キューへの待機中にはスリープ状態となるようにしてもよい。・・・（中略）・・・ロックを求めるプロセッサは，ハイパースレッドプロセッサの論理プロセッサであってもよい。」と記載されているように，マルチスレッドの技術分野において，他のスレッドによってロックされている部分が利用可能となるのを待機する間，当該待機するスレッドをスリープ状態にすることは，当業者が通常なし得る周知技術である。
　そして，引用発明と上記周知技術は，マルチスレッドの技術分野において，他のスレッドによってロックされている部分が利用可能となるのを待機する点で共通である。
　さらに，上記１．（１）に示したように，引用発明において，各処理を制御する機構を「マルチスレッドプロセッサ」が備える「制御論理回路」で実現することは，当業者が当然に想到し得ることであるから，引用発明における各処理を，「制御論理回路」からの命令の受信に応答して行う構成とすることは，当業者が当然に想到し得ることである。
　してみれば，引用発明において「第２の変換索引バッファ例外の処理を，第１の変換索引バッファ例外の処理が終わるまで遅延する」際に，「第２の変換索引バッファ例外の処理」を行うスレッドをスリープ状態にすることは，他のスレッドによってロックされている部分が利用可能となるのを待機する際の構成を具現化するために，引用発明と共通するマルチスレッドの技術分野における周知技術を適用することにすぎないのであるから，当業者が適宜選択し得る設計事項といえるし，「制御論理回路」からの命令の受信に応答してスレッドをスリープ状態にすることは，当業者が当然に想到し得ることであるといえる。
　
４．相違点５について
　本願発明においては，「パケットの実行を再現する」旨の言及がなされているが，「パケット」との用語は，データ通信ネットワークを流れるデータの単位の意味で用いられることが一般的であるから，「パケット」との用語を一般的な意味で解した場合には，「パケット」は，必ずしも「実行」され得るものではないといえる。そこで，本願明細書の記載を参酌して，「パケットの実行を再現する」との構成を解する。
　本願明細書の段落【００２４】には，「制御論理回路１０６はＴＬＢロックインジケータ１１０をアンロックし，・・・（中略）・・・１つ以上のスリープ状態のスレッド，・・・（中略）・・・を覚醒（awaken）する。」と記載され，段落【００２５】には，「第２のスレッド１１４は覚醒される，そして，・・・（中略）・・・ＴＬＢミス事象を起こす命令パケットを再現する。再現された命令パケットは，ＴＬＢ １０８で仮想アドレスの変換のために要求を繰り返す。」と記載されている。当該記載を参酌すれば，本願発明の「前記ＴＬＢミス事象を引き起こしたパケットの実行を再現する」構成は，仮想アドレスの変換のための要求を行い，その結果として変換索引バッファミス事象を起こした「命令パケット」の実行を再現する態様といえる。
　そして，プログラムを実行する際に，当該プログラムを各「命令パケット」に分割してプロセッサに実行させること，及び１つの「命令パケット」が複数の命令を備えることは，いずれも，コンピュータアーキテクチャの技術分野における技術常識であるから，引用発明において，所望の「プログラムに戻す命令を実行する」ことを，複数の命令を備える所望の「命令パケット」の実行を再現することとすることは，当業者が当然になし得ることといえる。
　してみれば，引用発明において，「例外ハンドラは，第１のスレッドプロセッサを変換索引バッファを検索したプログラムに戻す命令を実行する」構成を，「前記ＴＬＢミス事象を引き起こしたパケットの実行を再現すること」において「なお，前記パケットは複数の命令を備える」構成とすることは，当業者が当然に想到し得ることである。
　
５．小括
　上記で検討したごとく，各相違点はいずれも格別なものではなく，また，各相違点を総合的に勘案しても，本願発明の奏する作用効果は，上記引用発明，並びに参考文献１ないし４にみられる周知技術の奏する作用効果から予測される範囲内のものにすぎず，格別顕著なものということはできない。
　したがって，本願発明は，上記引用発明，並びに参考文献１ないし４にみられる周知技術に基づいて，当業者が容易に発明をすることができたものである。
　
　
第７．むすび
　以上のとおり，本願発明は，特許法第２９条第２項の規定により特許を受けることができないから，他の請求項に係る発明について検討するまでもなく，本願は拒絶されるべきものである。
　よって，結論のとおり審決する。