• ポートフォリオ機能


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

  • この表をプリントする
PDF PDFをダウンロード
審決分類 審判 査定不服 5項独立特許用件 特許、登録しない。 G06F
審判 査定不服 2項進歩性 特許、登録しない。 G06F
管理番号 1304844
審判番号 不服2013-3549  
総通号数 190 
発行国 日本国特許庁(JP) 
公報種別 特許審決公報 
発行日 2015-10-30 
種別 拒絶査定不服の審決 
審判請求日 2013-02-25 
確定日 2015-07-24 
事件の表示 特願2010-537031「ロックインジケータを有するマルチスレッドプロセッサ」拒絶査定不服審判事件〔平成21年 6月11日国際公開、WO2009/073722、平成23年 2月24日国内公表、特表2011-505647〕について、次のとおり審決する。 
結論 本件審判の請求は、成り立たない。 
理由 第1.手続の経緯
本件審判請求に係る出願(以下,「本願」という。)は,2008年12月3日(パリ条約による優先権主張外国庁受理,2007年12月3日(以下,「優先日」という。),アメリカ合衆国)を国際出願日とする出願であって,平成22年6月3日付けで特許法第184条の5第1項の規定による書面が提出され,平成22年7月5日付けで特許法第184条の4第1項の規定による翻訳文が提出されると共に,同日付けで審査請求がなされ,平成24年3月13日付けで拒絶理由通知(平成24年3月21日発送)がなされ,これに対して,平成24年8月21日付け意見書が提出されると共に,同日付けで手続補正及び誤訳訂正がなされ,平成24年10月19日付けで拒絶査定(平成24年10月23日謄本送達)がなされた。
これに対して,「原査定を取り消す。本願は特許をすべきものである,との審決を求める。」ことを請求の趣旨として,平成25年2月25日付けで審判請求がなされると共に,同日付けで手続補正がなされ,平成25年4月10日付けで審査官により特許法第164条第3項に定める報告がなされ,平成25年6月12日付けで当審により特許法第134条第4項の規定に基づく審尋(平成25年6月18日発送)がなされ,平成25年9月18日付けで回答書の提出があったものである。


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

[補正却下の決定の結論]

平成25年2月25日付けの手続補正を却下する。

[理由]

1.本件補正の内容

平成25年2月25日付け手続補正(以下,「本件補正」という。)の内容は,平成24年8月21日付け手続補正により補正された特許請求の範囲の請求項1?23の記載
「 【請求項1】
マルチスレッドプロセッサによって実行される方法であって,
前記マルチスレッドプロセッサのスレッドに関連する変換索引バッファ(TLB)ミス事象を受信することと;
TLBロックインジケータをチェックすることと;
前記TLBロックインジケータがアンロック状態を指示するとき,前記スレッドによるTLBに関連する例外ハンドラへのアクセスを許可し,前記TLBロックインジケータをロック状態に設定することと;
前記TLBロックインジケータがロック状態を指示するとき,前記スレッドをスリープ状態にすることと;
を備える方法。
【請求項2】
前記TLBロックインジケータを,ロック状態を指示することからアンロック状態を指示することに移行することをさらに備える,請求項1の方法。
【請求項3】
前記TLBロックインジケータが前記ロック状態から前記アンロック状態に移行した後に,前記TLBミス事象を引き起こすパケットの実行を再現することをさらに備える,請求項2の方法。
【請求項4】
前記TLBがソフトウェア管理TLBを備える,請求項1の方法。
【請求項5】
前記TLBミス事象に関する結果を計算することと;
前記結果を前記TLBにプログラムすることと;
前記TLBロックインジケータを,アンロック状態を指示するように設定することと;
前記例外ハンドラから戻ることと;
をさらに備える,請求項1の方法。
【請求項6】
前記TLBロックインジケータをアンロック状態を指示するように設定することは,前記例外ハンドラから戻り次第,前記TLBロックインジケータを自動的にアンロックすることを備える,請求項5の方法。
【請求項7】
前記例外ハンドラは,前記TLBロックインジケータを前記ロック状態を指示するように設定する,請求項1の方法。
【請求項8】
マルチスレッドプロセッサのスレッドに関連する変換索引バッファ(TLB)ミス事象を受信することと,なお,前記スレッドは,TLBロックインジケータがアンロック状態を指示するとき,共有変換索引バッファ(TLB)へのアクセスを有する;
前記TLBロックインジケータを読み取ること,および前記TLBロックインジケータがロック状態を指示する時,前記スレッドをスリープ状態にすることと;
命令を受け取り次第,前記スレッドを起こすことと;
を備える方法。
【請求項9】
前記TLBは,第1の時間の間,第1のスレッドのために確保され,前記TLBは,第2の時間の間,第2のスレッドのために確保され,第3のスレッドは,前記第1の時間帯と前記第2の時間の間スリープ状態にされる,請求項8の方法。
【請求項10】
前記第3のスレッドは,第3の時間の間,覚醒される,請求項9の方法。
【請求項11】
前記第3のスレッドを覚醒した後,前記第3のスレッドがスリープ状態にされる前に,前記第3のスレッドによって実行される命令パケットの実行を再現することをさらに備える,請求項10の方法。
【請求項12】
マルチスレッドプロセッサの複数の処理スレッドによって共有された変換索引バッファ(TLB)と;
前記マルチスレッドプロセッサのレジスタ内のTLBロックビットと,なお,前記TLBロックビットはロック構成又はアンロック構成のいずれかを指示する;
特定のスレッドに関連するTLBミス事象が検出されたときに,前記ロック構成を有する前記TLBロックビットに応答して,前記複数の処理スレッドの前記特定のスレッドをスリープ状態にするように構成された制御論理回路と;
を備えるシステム。
【請求項13】
前記TLBミス事象は前記特定のスレッドの実行パケットに関連し,前記制御論理回路は,前記実行パケットを記憶するように,および,前記特定のスレッドがスリープ状態におかれる時に前記特定のスレッドに関連したプログラムカウンタを増やさないように,さらに構成される,請求項12のシステム。
【請求項14】
前記特定のスレッドは,前記TLBミス事象に応答して,例外ハンドラを起動することなく,スリープ状態にされる,請求項12のシステム。
【請求項15】
前記制御論理回路は,前記TLBロックビットを前記ロック構成に設定し,かつ,前記アンロック構成を有する前記TLBロックビットに応答して前記TLBミス事象に関連する例外ハンドラを同時に開始するようにさらに構成される,請求項12のシステム。
【請求項16】
前記TLBロックビットは,前記制御論理回路によってロックされ,前記例外ハンドラの命令によってアンロックされるように構成される,請求項15のシステム。
【請求項17】
前記制御論理回路は,別のTLBミス事象に応答して,前記複数の処理スレッドの別のスレッドもスリープ状態におかれるときに,前記特定のスレッドを覚醒するための順序を示すデータを記憶するように構成される,請求項12のシステム。
【請求項18】
前記特定のスレッドを覚醒するために,前記順序を示す前記データは,先入れ先出し(FIFO)バッファに記憶される,請求項17のシステム。
【請求項19】
プロセッサ実行命令を有するコンピュータ読み取り可能媒体であって,プロセッサ実行命令はプロセッサに:
ハードウェアロックがロック状態を指示する間,マルチスレッドプロセッサの複数のスレッドによって共有されたリソースに関連する例外を処理させ;
前記例外が処理された後に,前記リソースに関連するハードウェアロックをアンロック状態に設定させ;
前記ハードウェアロックが前記ロック状態を指示したことに応じて,前記複数のスレッドのうちの特定のスレッドに起因する前記リソースに関連する例外事象が検出されると,前記特定のスレッドスリープ状態にさせる;
コンピュータ読み取り可能媒体。
【請求項20】
前記共有リソースは,前記マルチスレッドプロセッサのコアメモリリソースである,請求項19のコンピュータ読み取り可能媒体。
【請求項21】
前記コアメモリリソースは変換索引バッファ(TLB)であり,前記例外はTLBミスによって引き起こされる,請求項20のコンピュータ読み取り可能媒体。
【請求項22】
前記ハードウェアロックは,グローバルレジスタの少なくとも1つのビットを含み,前記ハードウェアロックは,前記例外が処理される前に,前記プロセッサの制御論理回路によってロックされるように構成される,請求項19のコンピュータ読み取り可能媒体。
【請求項23】
マルチスレッドプロセッサの共有リソースのロック状態を指示する手段と;
前記ロック状態を指示する手段が前記共有リソースへのアクセスを許可するとき,前記共有リソースに関連する例外処理命令を処理する前に,前記共有リソースを自動的にロックする手段と;
前記共有リソースがロックされている間に起こる例外事象に応答して,スレッドの状態を保存する手段と;
前記状態が保存された後に,前記スレッドをスリープ状態にする手段と;
前記共有リソースをアンロックする手段と;
を備えるシステム。」
(以下,この特許請求の範囲に記載された請求項を「補正前の請求項」という。)
を,

「 【請求項1】
変換索引バッファ(TLB)とTLBロックインジケータとに結合された制御論理回路を備えるマルチスレッドプロセッサが実行する方法であって,
前記マルチスレッドプロセッサの特定のスレッドに関連する変換索引バッファ(TLB)ミス事象を受信することと;
前記TLBロックインジケータをチェックすることと,なお,前記TLBロックインジケータはグローバル状態レジスタの1以上のビットを備えており,前記TLBロックインジケータは前記制御論理回路によって設定される;
前記TLBロックインジケータがアンロック状態を指示するとき,前記特定のスレッドによる前記TLBに関連する例外ハンドラへのアクセスを可能にし,前記TLBロックインジケータをロック状態に設定することと;
前記TLBロックインジケータがロック状態を指示するとき,前記制御論理回路からのスリープ命令の受信に応答して前記特定のスレッドをスリープ状態にすることと;
前記TLBロックインジケータを,ロック状態を指示することからアンロック状態を指示することに移行することと;
前記TLBロックインジケータが前記ロック状態から前記アンロック状態に移行した後に,前記TLBミス事象を引き起こしたパケットの実行を再現することと;
を備える方法。
【請求項2】
前記TLBがソフトウェア管理TLBを備える,請求項1の方法。
【請求項3】
前記TLBミス事象に関する結果を計算することと;
前記結果を前記TLBにプログラムすることと;
前記TLBロックインジケータを,アンロック状態を指示するように設定することと;
前記例外ハンドラから戻ることと;
をさらに備える,請求項1の方法。
【請求項4】
前記TLBロックインジケータをアンロック状態を指示するように設定することは,前記例外ハンドラから戻り次第,前記TLBロックインジケータを自動的にアンロックすることを備える,請求項3の方法。
【請求項5】
前記例外ハンドラは,前記TLBロックインジケータを前記ロック状態を指示するように設定する,請求項1の方法。
【請求項6】
変換索引バッファ(TLB)とTLBロックインジケータとに結合された制御論理回路を備えるマルチスレッドプロセッサが実行する方法であって,
前記マルチスレッドプロセッサの特定のスレッドに関連する変換索引バッファ(TLB)ミス事象を受信することと,なお,前記特定のスレッドは,前記TLBロックインジケータがアンロック状態を指示するとき前記TLBに関連する例外ハンドラにアクセスし,前記TLBロックインジケータはグローバル状態レジスタの1以上のビットを備え,また,前記TLBロックインジケータは前記制御論理回路によって設定される;
前記TLBロックインジケータを読み取り,前記TLBロックインジケータがロック状態を指示するとき,前記制御論理回路からのスリープ命令の受信に応答して前記特定のスレッドをスリープ状態にすることと;
前記TLBロックインジケータを,ロック状態を指示することからアンロック状態を指示することに移行することと;
前記TLBロックインジケータが前記ロック状態から前記アンロック状態に移行した後に命令を受け取って前記スレッドを覚醒し,前記TLBミス事象を引き起こしたパケットの実行を再現することと;
を備える方法。
【請求項7】
前記TLBは,第1の時間の間,第1のスレッドのために確保され,前記TLBは,第2の時間の間,第2のスレッドのために確保され,第3のスレッドは,前記第1の時間帯と前記第2の時間の間スリープ状態にされる,請求項6の方法。
【請求項8】
前記第3のスレッドは,第3の時間の間,覚醒される,請求項7の方法。
【請求項9】
前記第3のスレッドを覚醒した後,前記第3のスレッドがスリープ状態にされる前に,前記第3のスレッドによって実行される命令パケットの実行を再現することをさらに備える,請求項8の方法。
【請求項10】
マルチスレッドプロセッサの複数の処理スレッドによって共有された変換索引バッファ(TLB)と;
グローバル状態レジスタ内にTLBロックビットを備えるTLBロックインジケータと,なお,前記TLBロックビットはロック構成又はアンロック構成のいずれかを指示する;
前記変換索引バッファ(TLB)及び前記TLBロックインジケータに結合された制御論理回路と;
を備え,
前記制御論理回路は,
前記TLBロックビットを設定し;
前記特定のスレッドに関連するTLBミス事象が検出されたときに,
前記アンロック構成を指示する前記TLBロックビットに応答して,前記複数の処理スレッドのうちの前記特定のスレッドによる前記TLBに関連する例外ハンドラへのアクセスを可能にし;
前記ロック構成を指示する前記TLBロックビットに応答して,前記複数の処理スレッドのうちの前記特定のスレッドをスリープ状態にするように構成されたスリープ命令を発し;
前記TLBロックインジケータを,ロック状態を指示することからアンロック状態を指示することに移行し;
前記TLBロックインジケータが前記ロック状態から前記アンロック状態に移行した後に,前記スレッドを覚醒して前記TLBミス事象を引き起こしたパケットの実行を再現する;
ように構成された,
システム。
【請求項11】
前記TLBミス事象は前記特定のスレッドの実行パケットに関連し,前記制御論理回路は,前記実行パケットを記憶するように,および,前記特定のスレッドがスリープ状態におかれる時に前記特定のスレッドに関連したプログラムカウンタを増やさないように,さらに構成される,請求項10のシステム。
【請求項12】
前記特定のスレッドは,前記TLBミス事象に応答して,例外ハンドラを起動することなく,スリープ状態にされる,請求項10のシステム。
【請求項13】
前記制御論理回路は,前記TLBロックビットを前記ロック構成を指示するように設定し,かつ,前記アンロック構成を指示する前記TLBロックビットに応答して前記TLBミス事象に関連する例外ハンドラを同時に開始するようにさらに構成される,請求項10のシステム。
【請求項14】
前記TLBロックビットは,前記制御論理回路によってロックされ,前記例外ハンドラの命令によってアンロックされるように構成される,請求項13のシステム。
【請求項15】
前記制御論理回路は,別のTLBミス事象に応答して,前記複数の処理スレッドの別のスレッドもスリープ状態におかれるときに,前記特定のスレッドを覚醒するための順序を示すデータを記憶するように構成される,請求項10のシステム。
【請求項16】
前記特定のスレッドを覚醒するために,前記順序を示す前記データは,先入れ先出し(FIFO)バッファに記憶される,請求項15のシステム。
【請求項17】
プロセッサ実行命令を有するコンピュータ可読記憶媒体であって,プロセッサ実行命令はプロセッサに:
マルチスレッドプロセッサの特定のスレッドに関連する変換索引バッファ(TLB)ミス事象を受信させ,
TLBロックインジケータをチェックさせ,なお,前記TLBロックインジケータはグローバル状態レジスタの1以上のビットを備えており,前記TLBロックインジケータは制御論理回路によって設定される;
前記TLBロックインジケータがアンロック状態を指示するとき,前記特定のスレッドによる前記TLBに関連する例外ハンドラへのアクセスを可能にさせ,かつ,前記TLBロックインジケータをロック状態に設定させ;
前記TLBロックインジケータがロック状態を指示するとき,前記制御論理回路からのスリープ命令の受信に応答して前記特定のスレッドをスリープ状態にさせ;
前記TLBロックインジケータを,ロック状態を指示することからアンロック状態を指示することに移行させ;
前記TLBロックインジケータが前記ロック状態から前記アンロック状態に移行した後に,前記TLBミス事象を引き起こしたパケットの実行を再現させる;
コンピュータ可読記憶媒体。
【請求項18】
マルチスレッドプロセッサの特定のスレッドに関連する変換索引バッファ(TLB)ミス事象を受信するために手段と;
TLBロックインジケータをチェックするための手段と,なお,前記TLBロックインジケータはグローバル状態レジスタの1以上のビットを備えており,前記TLBロックインジケータは前記マルチスレッドプロセッサの制御論理回路によって設定され,前記制御論理回路は,
前記TLBロックインジケータがアンロック状態を指示するとき,前記特定のスレッドによる前記TLBに関連する例外ハンドラへのアクセスを可能にし,かつ,前記TLBロックインジケータをロック状態に設定し;
前記TLBロックインジケータがロック状態を指示するとき,前記特定のスレッドをスリープ状態にするためのスリープ命令を発し;
前記TLBロックインジケータを,ロック状態を指示することからアンロック状態を指示することに移行し;
前記TLBロックインジケータが前記ロック状態から前記アンロック状態に移行した後に,前記TLBミス事象を引き起こしたパケットの実行を再現する;
ように構成された,
システム。」
(以下,この特許請求の範囲に記載された請求項を「補正後の請求項」という。)
に補正するものである。


2.目的要件
(1) 本件補正は,平成22年7月5日付け翻訳文における明細書の段落【0015】,【0016】,及び【0021】,並びに特許請求の範囲の請求項3及び4の記載に基づくものといえるから,特許法第17条の2第3項の規定に適合しているといえる。
そして,本件補正は,本件審判の請求と同時にする補正であり,上記「1.本件補正の内容」のとおり,特許請求の範囲についてする補正であるので,本件補正の目的を検討する。

(2) 補正前の請求項1における「マルチスレッドプロセッサ」との記載を,「変換索引バッファ(TLB)とTLBロックインジケータとに結合された制御論理回路を備えるマルチスレッドプロセッサ」と補正することは,補正前の「マルチスレッドプロセッサ」を,「変換索引バッファ(TLB)とTLBロックインジケータとに結合された制御論理回路を備える」ものに限定するものであって,産業上の利用分野及び解決しようとする課題を変更するものではない。
さらに,補正前の請求項1に記載された「TLBロックインジケータ」に関して,補正後の請求項1において,「なお,前記TLBロックインジケータはグローバル状態レジスタの1以上のビットを備えており,前記TLBロックインジケータは前記制御論理回路によって設定される」との記載を追加することは,補正前の「TLBロックインジケータ」を,「グローバル状態レジスタの1以上のビットを備え」たものであって,「前記制御論理回路によって設定される」ものにするものであって,産業上の利用分野及び解決しようとする課題を変更するものではない。
してみると,本件補正は,特許請求の範囲の減縮(特許法第36条第5項の規定により請求項に記載した発明を特定するために必要な事項を限定するものであって,その補正前の当該請求項に記載された発明とその補正後の当該請求項に記載される発明の産業上の利用分野及び解決しようとする課題が同一であるものに限る。)に該当する。


3.独立特許要件
本件補正は,上記「2.目的要件」において示したように特許請求の範囲の減縮に該当するから,本件補正後の各請求項に係る発明が特許出願の際独立して特許を受けることができるものであるか否かについて検討する。

(1) 本件補正発明
本願の請求項1に係る発明(以下,「本件補正発明」という。)は,補正後の請求項1に記載された事項により特定される,以下のとおりのものである。(再掲する。)

「変換索引バッファ(TLB)とTLBロックインジケータとに結合された制御論理回路を備えるマルチスレッドプロセッサが実行する方法であって,
前記マルチスレッドプロセッサの特定のスレッドに関連する変換索引バッファ(TLB)ミス事象を受信することと;
前記TLBロックインジケータをチェックすることと,なお,前記TLBロックインジケータはグローバル状態レジスタの1以上のビットを備えており,前記TLBロックインジケータは前記制御論理回路によって設定される;
前記TLBロックインジケータがアンロック状態を指示するとき,前記特定のスレッドによる前記TLBに関連する例外ハンドラへのアクセスを可能にし,前記TLBロックインジケータをロック状態に設定することと;
前記TLBロックインジケータがロック状態を指示するとき,前記制御論理回路からのスリープ命令の受信に応答して前記特定のスレッドをスリープ状態にすることと;
前記TLBロックインジケータを,ロック状態を指示することからアンロック状態を指示することに移行することと;
前記TLBロックインジケータが前記ロック状態から前記アンロック状態に移行した後に,前記TLBミス事象を引き起こしたパケットの実行を再現することと;
を備える方法。」

(2) 先行技術文献
ア.引用文献1
本願の優先日前に頒布又は電気通信回線を通じて公衆に利用可能となり,原査定の拒絶の理由で引用された文献である,米国特許出願公開第2007/0050595号明細書(平成19年3月1日公開。以下,「引用文献1」という。)には,関連する図とともに,次の記載がある。(当審注:下線は,参考のために当審で付与したものである。以下,同じ。)

A.「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. 」

(当審仮訳:
1.マルチスレッドプロセッサ内の変換索引バッファへのアクセスを同期するための方法であって, 第1のスレッドプロセッサの第1の変換索引バッファ例外を発見することと, 第1の変換索引バッファ例外が処理中であることを示すことと, 第2のスレッドプロセッサの第2の変換索引バッファ例外を発見することと, 第1の変換索引バッファ例外が処理された後に第2の変換索引バッファ例外の処理を行うこと,を含む方法。
2.第1のスレッドプロセッサと第2のスレッドプロセッサが同時に変換索引バッファを検索することを特徴とする請求項1に記載の方法。
3.第1の変換索引バッファ例外が処理中であることを示すために,シリアライゼーション・ビットがセットされることを特徴とする請求項1に記載の方法。
4.第1の変換索引バッファ例外の処理が終了したことを示すために,シリアライゼーション・ビットがリセットされることを特徴とする請求項3に記載の方法。)

B.「[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.」

(当審仮訳:
[0013] CMTプロセッサ101は,スレッドプロセッサ(TP)103,105,及び107と呼ばれる実行要素の組を含んでいる。各TP103,105,及び107は,プログラムを独立に実行し,外部割り込みを受け取ることができる。TP103,105,及び107は,システムインターフェース109,変換索引バッファ(TLB)111,命令キャッシュ113,及びデータキャッシュ115のようなシステムリソースを共有することができる。
・・・(中略)・・・
[0015] TLB111は,CMTプロセッサ101内の複数のTPで共有することができる。1つのTLB例外が処理される際,他のTLB例外の処理は排除され得る。したがって,CMTプロセッサは,一度に1つのTLB例外を許可する。)

C.「[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 . The refill 119 will write the correct page translation into the memory of the TLB 111 .」

(当審仮訳:
[0017] テーブル201の各エントリは,仮想ページID,物理ページID,及びページサイズを含み得る。メモリアクセスは,TLB111の検索を管理することができる。例えば,m番目のTP107は,TLB111から117を読み取り,仮想ページの一致が検出された際に,通常のメモリアクセスを実行することができる。TLB111内で仮想ページの一致が検出できない際には,TLBミス例外が生成され,TLB111のテーブル201内に不足しているページ変換をリフィル119するために,例外ハンドラ207は,コントロールレジスタ205と命令203を使用できる。リフィル119は,TLB111のメモリに適切なページ変換を書き込む。)

D.「[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. The processing of the first TLB exception may be indicated by setting a serialization bit to 'one'.
[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 a special 'return from exception' instruction to return the first thread processor to the program that searched the TLB. Handling of the second TLB exceptions can then be performed. 」

(当審仮訳:
[0020] 図3は,本発明の代表的な実施形態による,マルチスレッドプロセッサ内の変換索引バッファ(TLB)へのアクセスを同期するための例示的な方法を示すフローチャート300である。
[0021] 第1のスレッドプロセッサは301で変換索引バッファを検索する。第1のスレッドプロセッサは,303で第1のTLB例外を検出する。第1のTLB例外は,TLBにおいて,所定の仮想ページに所望のページが含まれていないことによって引き起こされ得る。第1のTLB例外が処理中であることは,シリアライゼーション・ビットを「1」にセットすることで示してもよい。
[0022] シリアライゼーション・ビットがセットされると,TLBは,第2のスレッドプロセッサによって,連続的に検索され得るか,第1のTLB例外が完了するまで,検索を停止させられ得る。第2のスレッドプロセッサは305で,TLBを検索する。検索が続けば,第2のスレッドプロセッサは,309で第2のTLB例外を検出し得る。311において,第2のTLB例外の処理は,第1のTLB例外の処理が終わるまで遅延される。
[0023] 例外ハンドラは,TLB内の命令レジスタや制御レジスタを用いて,第1のTLB例外で含まれていないページを置き換えることができる。第1のTLB例外が完了したことを示すために,シリアライゼーション・ビットを「0」にリセットすることができる。完了すると,例外ハンドラは,第1のスレッドプロセッサをTLBを検索したプログラムに戻すために,特別な命令である“return from exception”を実行することができる。第2のTLB例外の処理はその後に行うことができる。)

E.「[0025] Accordingly, the present invention may be realized in hardware, software, or a combination of hardware and software. The present invention may be realized in a centralized fashion in an integrated circuit or in a distributed fashion where different elements are spread across several circuits. ・・・(後略)・・・」

(当審仮訳:
[0025] したがって,本発明は,ハードウェア,ソフトウェア,又はハードウェアとソフトウェアの組合せで実現されてもよい。本発明は,集積回路内に形成される集中方式,又は異なる要素がいくつかの回路に分散している分散方式で実現されてもよい。・・・(後略)・・・)

F.


イ.参考文献1
本願の優先日前に頒布又は電気通信回線を通じて公衆に利用可能となった文献である,特開2004-021985号公報(平成16年1月22日公開。以下,「参考文献1」という。)には,次の記載がある。

G.「【0002】
【従来の技術】
マルチスレッドプログラムでは,プログラムのいくつかの部分および/または変数を複数のスレッドによるアクセスから保護することが望ましい。
ロック機構を用いる一手法では,スレッドは,保護部分にアクセスする際にロックを取得するため,そのスレッドがロックを保持している間,他のスレッドは同じ部分にアクセスすることができない。
スレッドがロックを解除すると,別のスレッドがロックを取得して保護部分にアクセスし,他のスレッドが同じ部分にアクセスできないようにする。
【0003】
ロックを待っているスレッドは,スリープ待ち行列に入り,この待機中のスレッドが実行可能になったときに実行待ち行列に移される。」

ウ.参考文献2
本願の優先日前に頒布又は電気通信回線を通じて公衆に利用可能となった文献である,特表2007-520769号公報(平成19年7月26日公表。以下,「参考文献2」という。)には,関連する図とともに,次の記載がある。

H.「【0003】
ロックがプロセッサに利用可能になるなど,モニタイベントが発生するまで他のプロセッサと競合するロックを取得するため,プロセッサをスリープ状態にするシステム,装置及び方法が提供される。すなわち,プロセッサはロックが利用可能となるのを待機しているが,キューへの待機中にはスリープ状態となるようにしてもよい。一実施例によると,プロセッサをスリープ状態にする選択肢は,プロセッサがそれのリソースを解放し,他のプロセッサによる使用のため解放されたリソースを提供することを含む。一実施例によると,ロックを求めるプロセッサは,ハイパースレッドプロセッサの論理プロセッサであってもよい。典型的なハイパースレッドプロセッサは,同一のリソースを共有する論理プロセッサまたは複数のスレッドを含むものであってもよい。」

(3) 引用発明の認定
ア.引用文献1には,次の技術的事項が記載されている。
(ア) 上記A.には,請求項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. (マルチスレッドプロセッサ内の変換索引バッファへのアクセスを同期するための方法であって,第1のスレッドプロセッサの第1の変換索引バッファ例外を発見することと,第1の変換索引バッファ例外が処理中であることを示すことと,第2のスレッドプロセッサの第2の変換索引バッファ例外を発見することと,第1の変換索引バッファ例外が処理された後に第2の変換索引バッファ例外の処理を行うこと,を含む方法)」が記載され,請求項3として,「The method of claim 1 , wherein a serialization bit is set to indicate that the first translation lookaside buffer exception is being processed.(第1の変換索引バッファ例外が処理中であることを示すために,シリアライゼーション・ビットがセットされることを特徴とする請求項1に記載の方法)」が記載され,請求項4として「The method of claim 3 , wherein the serialization bit is reset to indicate that the first translation lookaside buffer exception has been processed.(第1の変換索引バッファ例外の処理が終了したことを示すために,シリアライゼーション・ビットがリセットされることを特徴とする請求項3に記載の方法)」が記載されている。
そして,上記「第1のスレッドプロセッサの第1の変換索引バッファ例外」及び上記「第2のスレッドプロセッサの第2の変換索引バッファ例外」が,それぞれ「第1のスレッドに関する第1の変換索引バッファ例外」及び「第2のスレッドに関する第2の変換索引バッファ例外」といえることは,当業者にとって自明であるから,上記A.には,「マルチスレッドプロセッサ内の変換索引バッファへのアクセスを同期するための方法であって,第1のスレッドに関する第1の変換索引バッファ例外を発見することと,第1の変換索引バッファ例外が処理中であることを示すことと,第2のスレッドに関する第2の変換索引バッファ例外を発見することと,第1の変換索引バッファ例外が処理された後に第2の変換索引バッファ例外の処理を行うこと,第1の変換索引バッファ例外が処理中であることを示すために,シリアライゼーション・ビットがセットされることと,第1の変換索引バッファ例外の処理が終了したことを示すために,シリアライゼーション・ビットがリセットされること,を含む方法」が記載されているといえる。

(イ) 上記D.には,段落[0022]に「a handling of the second TLB exception is delayed until after the first TLB exception has been processed.(第2のTLB例外の処理は,第1のTLB例外の処理が終わるまで遅延される)」ことが記載され,「TLB」が「変換索引バッファ」であることは,上記D.の段落[0020]に示されるとおりであるから,上記A.に記載された「第1の変換索引バッファ例外が処理された後に第2の変換索引バッファ例外の処理を行うこと」の具体的態様として,「第2の変換索引バッファ例外の処理は,第1の変換索引バッファ例外の処理が終わるまで遅延される」ことが記載されているといえる。

(ウ) 上記C.には,「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 .(TLB111内で仮想ページの一致が検出できない際には,TLBミス例外が生成され,TLB111のテーブル201内に不足しているページ変換をリフィル119するために,例外ハンドラ207は,コントロールレジスタ205と命令203を使用できる)」ことが記載され,「TLB111内で仮想ページの一致が検出できない際には,TLBミス例外が生成」されるとは「TLB例外」が発見されることであることは,当業者にとって自明であるから,上記C.には,変換索引バッファ例外が発見されると,例外ハンドラが実行されることが記載されているといえる。
そして,上記D.の段落[0023]の「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.(第1のTLB例外が完了したことを示すために,・・・(中略)・・・完了すると,例外ハンドラは,第1のスレッドプロセッサをTLBを検索したプログラムに戻す)」との記載からは,「TLBを検索したプログラム」に戻される「第1のスレッドプロセッサ」で「例外ハンドラ」が実行されていたことが読み取れるから,「TLBを検索したプログラム」が実行されるスレッド,すなわちTLB例外を発見したスレッドと,「例外ハンドラ」が実行されるスレッドは,共に「第1のスレッド」ということができる旨が,上記D.から読み取れる。
してみれば,上記C.及びD.からは,第1のスレッドに関する変換索引バッファ例外が発見されると,「第1のスレッドで例外ハンドラを実行する」ことが読み取れる。

(エ) 上記D.には,段落[0023]に「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. (第1のTLB例外が完了したことを示すために,・・・(中略)・・・完了すると,例外ハンドラは,第1のスレッドプロセッサをTLBを検索したプログラムに戻すために,特別な命令である“return from exception”を実行する)」ことが記載されているから,上記D.には,「第1の変換索引バッファ例外の処理が完了すると,例外ハンドラは,第1のスレッドプロセッサを変換索引バッファを検索したプログラムに戻す命令を実行する」ことが記載されているといえる。

イ.これらのことから,引用文献1には,次の発明(以下,「引用発明」という。)が記載されていると認められる。

「マルチスレッドプロセッサ内の変換索引バッファへのアクセスを同期するための方法であって,
第1のスレッドに関する第1の変換索引バッファ例外を発見することと,
第1のスレッドで例外ハンドラを実行することと,
第1の変換索引バッファ例外が処理中であることを示すことと,
第2のスレッドに関する第2の変換索引バッファ例外を発見することと,
第1の変換索引バッファ例外が処理された後に第2の変換索引バッファ例外の処理を行うこと,を含み,
第1の変換索引バッファ例外が処理中であることを示すために,シリアライゼーション・ビットをセットすることと,
第1の変換索引バッファ例外の処理が終了したことを示すために,シリアライゼーション・ビットをリセットすることと,
第2の変換索引バッファ例外の処理を,第1の変換索引バッファ例外の処理が終わるまで遅延することと,
第1の変換索引バッファ例外の処理が完了すると,例外ハンドラは,第1のスレッドプロセッサを変換索引バッファを検索したプログラムに戻す命令を実行すること,
を含む方法。」


(4) 対比
ア.引用発明における,「マルチスレッドプロセッサ内の変換索引バッファへのアクセスを同期するための方法」は,上記B.の「CMTプロセッサは,一度に1つのTLB例外を許可する」旨の記載を参酌すれば,「CMTプロセッサ」,すなわち「マルチスレッドプロセッサ」が実行する方法であることは明らかであるから,引用発明と本件補正発明は,「マルチスレッドプロセッサが実行する方法」である点で共通する。

イ.上記D.の段落[0021]には,「The exception can be caused by having a particular page missing from the plurality of virtual pages in the TLB. (第1のTLB例外は,TLBにおいて,所定の仮想ページに所望のページが含まれていないことによって引き起こされ得る)」ことが記載されているから,引用発明の「変換索引バッファ例外」は,変換索引バッファにおいて,所定の仮想ページに所望のページが含まれていないことによって引き起こされるものであるといえる。一方,本願明細書の段落【0014】には,「TLB 108は,要求された仮想アドレスがTLB 108で見つからなかった時に,制御論理回路106にTLBミス事象を信号で送るように構成される」と記載されているから,本件補正発明の「変換索引バッファ(TLB)ミス事象」は,要求された仮想アドレスが変換索引バッファで見つからない際に起きるものであるといえる。
そして,変換索引バッファにおいて所定の仮想ページに所望のページが含まれていないことと,要求された仮想アドレスが変換索引バッファで見つからないことが,同義であることは,コンピュータアーキテクチャの技術分野における当業者にとっては自明であるから,引用発明の「変換索引バッファ例外」と,本件補正発明の「変換索引バッファ(TLB)ミス事象」は同じ事象によって引き起こされるもの,すなわち,相当するものであるといえる。
よって,引用発明の「第1のスレッドプロセッサの第1の変換索引バッファ例外を発見すること」は本件補正発明の「前記マルチスレッドプロセッサの特定のスレッドに関連する変換索引バッファ(TLB)ミス事象を受信すること」に相当する。

ウ.
(ア) 引用発明における「シリアライゼーション・ビット」とは,変換索引バッファ例外が処理中であることを示すためにセットされ,変換索引バッファ例外の処理が終了するとリセットされるものであることは,上記A.の請求項3及び4,並びに上記D.の段落[0021]及び[0023]の記載から明らかである。
一方,本件補正発明における「TLBロックインジケータ」とは,一般的な技術用語とはいえないから,その意味を解釈するために,本願明細書及び図面を参酌すると,段落【0022】に「TLBミス事象によりTLB 108がロックされる時,制御論理回路106は,TLBミス事象に応答する例外ハンドラ112や132を起動するために,TLBミス事象を生成するスレッド112または114に命令する。制御論理回路106が,TLBミス事象が処理されたことを示す戻り命令や他の信号を例外ハンドラ122や132から受信すると,制御論理回路106はTLBロックインジケータ110をアンロックする。」と記載され,段落【0037】に「処理は,TLBに関連する例外ハンドラへのスレッドによるアクセスが制御論理回路を使用して許可され,・・・(中略)・・・TLBロックインジケータは,アクセスが許可された時,制御論理回路を使用してロックされる。」と記載され,段落【0039】に「TLBロックインジケータは,例外ハンドラから戻り次第,自動的にアンロックされる。」と記載されている。してみると,「TLBロックインジケータ」とは,TLBミスを解消するための例外ハンドラの処理が実行中であるか否かを示すために,例外ハンドラの処理の実行中にロックされ,当該処理が終了するとアンロックされる,インジケータであると解することができる。
してみると,引用発明の「シリアライゼーション・ビット」は,本件補正発明の「TLBロックインジケータ」に相当するといえる。

(イ) 上記D.において「The first thread processor finds a first TLB exception at 303 .(第1のスレッドプロセッサは,303で第1のTLB例外を検出する)」ことと,「the second thread processor may find a second TLB exception at 309 .(第2のスレッドプロセッサは,309で第2のTLB例外を検出し得る)」ことが記載されると共に,上記F.において,「303」の処理が,「309」の処理より先に行われることが記載されているから,引用発明において,「第1のスレッドプロセッサの第1の変換索引バッファ例外を発見する」との処理が,「第2のスレッドプロセッサの第2の変換索引バッファ例外を発見する」との処理より前に行われることは明らかである。
そして,第1の変換索引バッファ例外を発見すると,第1の変換索引バッファ例外が処理中であることを示すために,シリアライゼーション・ビットがセットされるのであるから,第2の変換索引バッファ例外を発見するとの処理が行われる際には,シリアライゼーション・ビットは既にセットされているといえる。
また,ビットがセットされるとの処理は,リセット状態にあるビットをセットすることを意味することは,当業者にとって自明であるし,「第1のスレッドプロセッサの第1の変換索引バッファ例外を発見する」処理より前に変換索引バッファ例外が起きていること,又はシリアライゼーション・ビットがセットされていることが,引用文献1のいずれの箇所にも記載も示唆もされていないことなどから見て,引用発明において,シリアライゼーション・ビットがセットされる前には,シリアライゼーション・ビットはリセット状態にあるといえる。

(ウ) 「ハンドラ」とは,コンピュータアーキテクチャの技術分野においては,何らかの処理要求が発生したときに起動されるプログラムなどであって,通常のプログラムの流れには組み込まれず,普段は待機しているが,対応すべき処理要求が発生すると通常のプログラムの流れを中断して呼び出され,要求された処理を実行するものを指す技術用語であると解するのが通常である。また,「ハンドラ」には,対応すべき処理要求の種類に応じて,「イベントハンドラ」や「割り込みハンドラ」などがあることも,当業者に広く知られたことである。
そして,本願明細書の段落【0018】の「一般的に,第1のスレッド112の例外ハンドラ122は,スレッド112と114によって共有されたリソースに関連する例外を処理するため,および,例外が処理された後に,リソースのためにハードウェアロックをアンロックするために,命令を取り込み,実行する。」との記載を参酌すると,本件補正発明における「例外ハンドラ」とは,スレッドによって共有されたリソースに関する例外を処理するためのものであるといえる。してみると,本件補正発明において,「前記特定のスレッドによる前記TLBに関連する例外ハンドラへのアクセスを可能に」するとは,「前記特定のスレッド」から変換索引バッファに関連する例外処理を行うハンドラへのアクセスを可能にすること,すなわち,「前記特定のスレッド」から変換索引バッファに関連する例外処理の要求を可能にすることであると解される。
一方,上記C.の記載によると,引用発明の「例外ハンドラ」は「TLB111内で仮想ページの一致が検出できない際には,TLBミス例外が生成され,TLB111のテーブル201内に不足しているページ変換をリフィル119するため」のものといえるから,引用発明の「例外ハンドラ」は,変換索引バッファに関連する例外処理を行うハンドラであるといえる。そして,スレッドで例外ハンドラを実行する際に,スレッドから例外処理の要求を行うことは,当業者にとって自明であり,例外処理の要求を行う際には,例外処理の要求を行うことが少なくとも可能とされることも,当業者にとって自明である。よって,引用発明において「第1のスレッドで例外ハンドラを実行する」際には,少なくとも,「第1スレッド」から変換索引バッファに関連する例外処理の要求を行うことを可能にしているといえる。
してみれば,引用発明の「第1スレッドで例外ハンドラを実行する」ことは,本件補正発明の「前記特定のスレッドによる前記TLBに関連する例外ハンドラへのアクセスを可能に」することに相当する。

(エ) よって,引用発明において「第1のスレッドプロセッサの第1の変換索引バッファ例外を発見する」処理に続いて,「第1のスレッドで例外ハンドラを実行する」処理と,「第1の変換索引バッファ例外が処理中であることを示す」処理,すなわち,「第1の変換索引バッファ例外が処理中であることを示すために,シリアライゼーション・ビットがセットされる」との処理を行うことは,本件補正発明の「前記TLBロックインジケータがアンロック状態を指示するとき,前記特定のスレッドによる前記TLBに関連する例外ハンドラへのアクセスを可能にし,前記TLBロックインジケータをロック状態に設定すること」に相当する。
また,引用発明において,「第2のスレッドプロセッサの第2の変換索引バッファ例外を発見する」との処理に続いて,「第1の変換索引バッファ例外が処理された後に第2の変換索引バッファ例外の処理を行うこと」,すなわち,「第2の変換索引バッファ例外の処理は,第1の変換索引バッファ例外の処理が終わるまで遅延する」との処理を行うことと,本件補正発明の「前記TLBロックインジケータがロック状態を指示するとき,前記制御論理回路からのスリープ命令の受信に応答して前記特定のスレッドをスリープ状態にすること」は,「前記TLBロックインジケータがロック状態を指示するとき,特定のスレッドプロセッサの処理を遅延させること」である点で共通する。

(オ) なお,請求人は,平成25年9月18日付け回答書にて,「本願請求項1の「前記TLBロックインジケータがロック状態を維持するとき,前記制御論理回路からのスリープ命令の受信に応答して前記特定のスレッドをスリープ状態にすること」における「前記特定のスレッド」はTLBミス事象を起こしたスレッドであり,本願請求項1は,このTLBミス事象を起こした特定のスレッドを,当該特定のスレッドにおけるTLBミス事象の処理が終了するまでスリープ状態にすることを要件とする」と主張すると共に,「すなわち,本願発明は,TLBロックインジケータがアンロック構成のとき,TLBミス事象が発生した第1のスレッド1(本願請求項における「特定のスレッド」)がTLBミス事象を処理するために例外ハンドラを起動し,かつ,TLBロックインジケータをロック構成にして他のスレッドがTLBを変更することを阻止するためにTLBへのアクセスを制限し,TLBロックインジケータがロック構成になると,TLBミス事象が発生した前記第1のスレッドをスリープ状態にして例外ハンドラによる例外処理を実行し,例外処理が終了したらTLBロックインジケータをアンロック構成に戻すようにしたものであり,このことは本願明細書の段落[0010],[0015]-[0018],[0031]-[0033],[0039]などに記載されており,段落[0016]には,上述したように,TLBロックインジケータのロック構成は,ミス事象が発生したスレッドがTLBに書き込み動作を行う一方で他のスレッドによるTLBへのアクセスを制限することを示すことが記載されている。」と主張している。
しかしながら,本願の図3においては,「制御論理回路を使用してTLBをロック」する302以降であって,「TLBロックインジケータをアンロック状態に設定」する326又は「例外ハンドラから戻る」328より前にスレッドをスリープ状態にすることは記載されておらず,本願の図4においては,「スレッド0」のTLBミス事象402に応答して「TLBロックインジケータ」をロック状態410とした以降に「スレッド0」をスリープ状態とすることは記載されていない。また,本願明細書及び図面の全体を参酌しても,「TLBミス事象を起こした特定のスレッドを,当該特定のスレッドにおけるTLBミス事象の処理が終了するまでスリープ状態にする」ことについては記載されていない。
一方,本願明細書の段落【0033】に「制御論理回路270は,TLBロック292がロック状態の間,例えばTLB 272で少なくとも1つの項目を変更することを含む別のスレッドによる例外処理の間など,に起きるTLBミス事象に応答するように構成される。制御論理回路270は,最近のTLBミス事象に関連するスレッドに,最近のTLBミス事象と関連のある例外ハンドラを開始することなく,最近の命令パケットや実行パケットのアドレスを再開アドレスフィールド284に記憶させ,スリープ状態にするために,スレッド固有監視制御レジスタ232に書き込むように構成される。」と記載されるように,別のスレッドによる例外処理の間に,最近のTLBミス事象に関連するスレッドをスリープ状態にすることは,本願明細書に記載されている。
してみれば,本願の明細書及び図面を参酌すれば,本件補正発明の「前記TLBロックインジケータがロック状態を指示するとき,前記制御論理回路からのスリープ命令の受信に応答して前記特定のスレッドをスリープ状態にすること」は,「例外ハンドラへのアクセスを可能」とされたスレッドをスリープ状態にすることではなく,「例外ハンドラへのアクセスを可能」とされたスレッドとは異なるスレッドをスリープ状態にすることを意味していると解するのが妥当である。

エ. 上記ウ.で検討したことから,引用発明の「第1の変換索引バッファ例外の処理が終了したことを示すために,シリアライゼーション・ビットがリセットされること」は,本件補正発明の「前記TLBロックインジケータを,ロック状態を指示することからアンロック状態を指示することに移行すること」に相当する。

オ. 引用発明は,「第1の変換索引バッファ例外の処理が終了したことを示すために,シリアライゼーション・ビットがリセットされる」のであるから,「第1の変換索引バッファ例外の処理が完了する」と,「第1の変換索引バッファ例外の処理が終了したことを示すために,シリアライゼーション・ビットがリセットされる」といえる。さらに,引用発明は「第1の変換索引バッファ例外の処理が完了すると,例外ハンドラは,第1のスレッドプロセッサを変換索引バッファを検索したプログラムに戻す命令を実行する」との処理を行うのであるから,引用発明は,「第1の変換索引バッファ例外の処理が終了したことを示すために,シリアライゼーション・ビットがリセット」された後に,「例外ハンドラは,第1のスレッドプロセッサを変換索引バッファを検索したプログラムに戻す命令を実行する」といえる。
また,本願明細書の段落【0047】には「制御ユニットは,スレッド1がウェーク動作を行い,命令パケット動作の実行を再現すること(434)に応答して,スレッド1を覚醒するために信号433を送る。」と記載され,段落【0048】には「パケット動作のウェークや再現434の実行は,スレッド1がスリープ状態420に置かれる前に保存されたスレッド1の前回の状態を再ロードし,TLBミス事象414を生成するパケットの実行を再現する。」と記載されていることから,本件補正発明において,「前記TLBミス事象を引き起こしたパケットの実行を再現すること」は,スレッドを覚醒するために行うことは明らかである。
してみれば,引用発明の「第1の変換索引バッファ例外の処理が完了すると,例外ハンドラは,第1のスレッドプロセッサを変換索引バッファを検索したプログラムに戻す命令を実行すること」と,本件補正発明「前記TLBロックインジケータが前記ロック状態から前記アンロック状態に移行した後に,前記TLBミス事象を引き起こしたパケットの実行を再現すること」は,「前記TLBロックインジケータが前記ロック状態から前記アンロック状態に移行した後に,前記TLBミス事象を引き起こしたプログラムに戻すこと」である点で共通する。

カ.上記ア.ないしオ.に示したことから,本件補正発明と引用発明の一致点及び相違点は,以下のとおりである。

[一致点]
マルチスレッドプロセッサが実行する方法であって,
前記マルチスレッドプロセッサの特定のスレッドに関連する変換索引バッファ(TLB)ミス事象を受信することと,
前記TLBロックインジケータがアンロック状態を指示するとき,前記特定のスレッドによる前記TLBに関連する例外ハンドラへのアクセスを可能にし,前記TLBロックインジケータをロック状態に設定することと,
前記TLBロックインジケータがロック状態を指示するとき,特定のスレッドプロセッサの処理を遅延させることと,
前記TLBロックインジケータを,ロック状態を指示することからアンロック状態を指示することに移行することと,
前記TLBロックインジケータが前記ロック状態から前記アンロック状態に移行した後に,前記TLBミス事象を引き起こしたプログラムに戻すこと,
を備える方法。

[相違点1]
本件補正発明においては,マルチスレッドプロセッサが「変換索引バッファ(TLB)とTLBロックインジケータとに結合された制御論理回路を備える」ものであるのに対して,引用発明では,そのような限定がなされていない点。

[相違点2]
本件補正発明においては,「前記TLBロックインジケータはグローバル状態レジスタの1以上のビットを備えており,前記TLBロックインジケータは前記制御論理回路によって設定される」ものであるのに対して,引用発明では,そのような限定がなされていない点。

[相違点3]
本件補正発明は,「前記TLBロックインジケータをチェックする」構成を備えているのに対して,引用発明では「チェックする」構成に言及されていない点。

[相違点4]
本件補正発明は,「前記TLBロックインジケータがロック状態を指示するとき,前記制御論理回路からのスリープ命令の受信に応答して前記特定のスレッドをスリープ状態にする」構成を備えているのに対して,引用発明は「スリープ状態にする」構成に言及されていない点。

[相違点5]
本件補正発明は,「前記TLBロックインジケータが前記ロック状態から前記アンロック状態に移行した後に,前記TLBミス事象を引き起こしたパケットの実行を再現する」構成を備えているのに対して,引用発明は「パケットの実行を再現する」構成に言及されていない点。

(5) 判断
上記相違点1ないし相違点5についての判断を示す。

ア.相違点1及び相違点2について
(ア) 引用発明においては,「第1の変換索引バッファ例外が処理中であることを示すために,シリアライゼーション・ビットをセットする」,「第1の変換索引バッファ例外の処理が終了したことを示すために,シリアライゼーション・ビットをリセットする」,及び「第2の変換索引バッファ例外の処理を,第1の変換索引バッファ例外の処理が終わるまで遅延する」との処理が行われるのであるから,引用発明が,当該処理を行う機構を備えていることは,当業者にとって自明である。
さらに,上記E.には,「the present invention may be realized in hardware, software, or a combination of hardware and software.(本発明は,ハードウェア,ソフトウェア,又はハードウェアとソフトウェアの組合せで実現されてもよい)」ことが記載されているし,所望の処理を行う機構を「ハードウェア」で形成する際に,「制御論理回路」からなる「ハードウェア」を用いることは,当業者が通常選択する常とう手段であるといえる。してみれば,引用発明において,上記した処理を行う機構を「制御論理回路」で実現することは,当業者が当然に想到し得ることである。また,引用発明において,「変換索引バッファ例外が処理中であることを示すために,シリアライゼーション・ビットをセットする」との処理を行う機構である「制御論理回路」が,変換索引バッファとシリアライゼーション・ビットに結合されることは,当業者にとって自明である。

(イ) 「グローバル」との用語は,本願特許請求の範囲又は明細書において,その意味が定義されるものではなく,マルチスレッドの技術分野においては,複数のスレッドによって共用されるとの意味で用いられることが当業者における技術常識であるから,本件補正発明の「グローバル状態レジスタ」をその字句のとおりに解釈すれば,複数のスレッドから共用されるレジスタであって,何らかの「状態」を示す情報を格納するレジスタの意味であると解される。
そして,引用発明における「シリアライゼーション・ビット」は,少なくとも第1及び第2のスレッドから参照され得る情報であって,変換索引バッファ例外が処理中であることを示す情報であるから,「グローバル」な性質を有し,何らかの「状態」を示す情報であるといえる。また,ビットで表現される情報をレジスタに格納することは,コンピュータアーキテクチャの技術分野において当業者が通常選択する慣用技術にすぎないから,引用発明における「シリアライゼーション・ビット」をレジスタに格納することは,当業者が通常選択することにすぎない。
してみれば,引用発明において,「シリアライゼーション・ビット」が,複数のスレッドから共用されるレジスタであって,何らかの「状態」を示す情報を格納するレジスタ,すなわち「グローバル状態レジスタ」の1以上のビットを備えることは,当業者が当然に想到し得ることである。

(ウ) 上記(ア)及び(イ)に示したことから,引用発明を,マルチスレッドプロセッサが「変換索引バッファ(TLB)とTLBロックインジケータとに結合された制御論理回路を備える」ものとして,「前記TLBロックインジケータはグローバル状態レジスタの1以上のビットを備えており,前記TLBロックインジケータは前記制御論理回路によって設定される」ものとすること,すなわち,相違点1及び2に係る構成とすることは,当業者が容易に想到し得ることである。

イ.相違点3について
引用発明において,「第2の変換索引バッファ例外の処理は,第1の変換索引バッファ例外の処理が終わるまで遅延する」との処理を行うためには,第1の変換索引バッファ例外が処理中であることを示すための「シリアライゼーション・ビット」がセットされているか否かをチェックする必要があることは,当業者にとって自明である。
してみれば,引用発明において,「シリアライゼーション・ビット」がセットされているか否かをチェックすることは,当業者が必然的に想到し得ることである。

ウ.相違点4について
参考文献1(上記G.)に「マルチスレッドプログラムでは,・・・(中略)・・・スレッドは,保護部分にアクセスする際にロックを取得するため,そのスレッドがロックを保持している間,他のスレッドは同じ部分にアクセスすることができない。・・・(中略)・・・ロックを待っているスレッドは,スリープ待ち行列に入り」と記載され,参考文献2(上記H.)に「プロセッサはロックが利用可能となるのを待機しているが,キューへの待機中にはスリープ状態となるようにしてもよい。・・・(中略)・・・ロックを求めるプロセッサは,ハイパースレッドプロセッサの論理プロセッサであってもよい。」と記載されているように,マルチスレッドの技術分野において,他のスレッドによってロックされている部分が利用可能となるのを待機する間,当該待機するスレッドをスリープ状態にすることは,当業者が通常なし得る周知技術である。
そして,引用発明と上記周知技術は,マルチスレッドの技術分野において,他のスレッドによってロックされている部分が利用可能となるのを待機する点で共通である。
してみれば,引用発明において「第2の変換索引バッファ例外の処理を,第1の変換索引バッファ例外の処理が終わるまで遅延する」際に,「第2の変換索引バッファ例外の処理」を行うスレッドをスリープ状態にすることは,他のスレッドによってロックされている部分が利用可能となるのを待機する際の構成を具現化するために,引用発明と共通するマルチスレッドの技術分野における周知技術を適用することにすぎないのであるから,当業者が適宜選択し得る設計事項といえる。

エ.相違点5について
本件補正発明においては,「パケットの実行を再現する」旨の言及がなされているが,「パケット」との用語は,データ通信ネットワークを流れるデータの単位の意味で用いられることが一般的であるから,「パケット」との用語を一般的な意味で解した場合には,「パケット」は,必ずしも「実行」され得るものではないといえる。そこで,本願明細書の記載を参酌して,「パケットの実行を再現する」との構成を解する。
本願明細書の段落【0024】には,「制御論理回路106はTLBロックインジケータ110をアンロックし,・・・(中略)・・・1つ以上のスリープ状態のスレッド,・・・(中略)・・・を覚醒(awaken)する。」と記載され,段落【0025】には,「第2のスレッド114は覚醒される,そして,・・・(中略)・・・TLBミス事象を起こす命令パケットを再現する。再現された命令パケットは,TLB 108で仮想アドレスの変換のために要求を繰り返す。」と記載されている。当該記載を参酌すれば,本件補正発明の「前記TLBミス事象を引き起こしたパケットの実行を再現する」構成は,仮想アドレスの変換のための要求を行い,その結果として変換索引バッファミス事象を起こした「命令パケット」の実行を再現する態様といえる。
そして,プログラムを実行する際に,当該プログラムを各「命令パケット」に分割してプロセッサに実行させることは,コンピュータアーキテクチャの技術分野における技術常識であるから,引用発明において,所望の「プログラムに戻す命令を実行する」ことを,所望の「命令パケット」の実行を再現することとすることは,当業者が当然になし得ることといえる。
してみれば,引用発明において,「例外ハンドラは,第1のスレッドプロセッサを変換索引バッファを検索したプログラムに戻す命令を実行する」ことを,「前記TLBミス事象を引き起こしたパケットの実行を再現する」こととすることは,当業者が当然に想到し得ることである。

オ.上記で検討したごとく,各相違点はいずれも格別なものではなく,また,各相違点を総合的に勘案しても,本件補正発明の奏する作用効果は,上記引用発明,並びに参考文献1及び2にみられる周知技術の奏する作用効果から予測される範囲内のものにすぎず,格別顕著なものということはできない。
したがって,本件補正発明は,上記引用発明,並びに参考文献1及び2にみられる周知技術に基づいて,当業者が容易に発明をすることができたものである。

(6) 小括
以上のとおり,補正後の請求項1に係る発明は,その出願前に日本国内において頒布された刊行物に記載された発明又は電気通信回線を通じて公衆に利用可能となった発明に基づいて,当業者が容易に発明することができたものである。


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


第3.本願発明について
1.本願発明
平成25年2月25日付けの手続補正は,上記のとおり却下されたので,本願の請求項に係る発明は,平成24年8月21日付け手続補正書の請求の範囲の請求項1?請求項23に記載された事項により特定されるものである。そして,その請求項1に係る発明(以下,「本願発明」という。)は,明細書及び図面の記載からみて,その請求項1に記載された事項により特定される,上記「第2.平成25年2月25日付けの手続補正についての補正却下の決定」の[理由]「1.本件補正の内容」に記載のとおりのものである。再掲すれば次のとおりである。

「マルチスレッドプロセッサによって実行される方法であって,
前記マルチスレッドプロセッサのスレッドに関連する変換索引バッファ(TLB)ミス事象を受信することと;
TLBロックインジケータをチェックすることと;
前記TLBロックインジケータがアンロック状態を指示するとき,前記スレッドによるTLBに関連する例外ハンドラへのアクセスを許可し,前記TLBロックインジケータをロック状態に設定することと;
前記TLBロックインジケータがロック状態を指示するとき,前記スレッドをスリープ状態にすることと;
を備える方法。」

2.先行技術文献
原査定の拒絶の理由で引用された引用文献1,並びに参考文献1及び参考文献2の記載事項は,
上記「第2.平成25年2月25日付けの手続補正についての補正却下の決定」の[理由]「3.独立特許要件」「(2) 先行技術文献」に記載したとおりである。

3.対比・判断
(1) 本願発明は,上記「第2.平成25年2月25日付けの手続補正についての補正却下の決定」の[理由]「3.独立特許要件」「(1) 本件補正発明」に記載した本件補正発明から,「マルチスレッドプロセッサ」に関する「変換索引バッファ(TLB)とTLBロックインジケータとに結合された制御論理回路を備える」との限定事項と,「スレッド」に関する「特定の」との限定事項と,「TLBロックインジケータ」に関する「なお,前記TLBロックインジケータはグローバル状態レジスタの1以上のビットを備えており,前記TLBロックインジケータは前記制御論理回路によって設定される」との限定事項と,「前記特定のスレッドをスリープ状態にすること」に関する「前記制御論理回路からのスリープ命令の受信に応答して」との特定事項と,「前記TLBロックインジケータを,ロック状態を指示することからアンロック状態を指示することに移行すること」及び「前記TLBロックインジケータが前記ロック状態から前記アンロック状態に移行した後に,前記TLBミス事象を引き起こしたパケットの実行を再現すること」との限定事項を削除し,さらに,「マルチスレッドプロセッサが実行する方法」を「マルチスレッドプロセッサによって実行される方法」とし,「例外ハンドラへのアクセスを可能にし」を「例外ハンドラへのアクセスを許可し」としたものである。

(2) 上記(1)に示した各限定事項を,本件補正発明から削除することで,上記「第2.平成25年2月25日付けの手続補正についての補正却下の決定」の[理由]「3.独立特許要件」「(4) 対比」「カ.」に記載した相違点1ないし5以外の相違点が生じるものではない。

(3) 上記「第2.平成25年2月25日付けの手続補正についての補正却下の決定」の[理由]「3.独立特許要件」「(3) 引用発明の認定」「イ.」に記載した引用発明における,「マルチスレッドプロセッサ内の変換索引バッファへのアクセスを同期するための方法」は,上記B.の「CMTプロセッサは,一度に1つのTLB例外を許可する」旨の記載を参酌すれば,「CMTプロセッサ」,すなわち「マルチスレッドプロセッサ」によって実行される方法であることは明らかである。してみれば,本件補正発明における「マルチスレッドプロセッサが実行する方法」を「マルチスレッドプロセッサによって実行される方法」とすることで,上記「第2.平成25年2月25日付けの手続補正についての補正却下の決定」の[理由]「3.独立特許要件」「(4) 対比」「カ.」に記載した相違点1ないし5以外の相違点が生じるものではない。

(4) 上記「第2.平成25年2月25日付けの手続補正についての補正却下の決定」の[理由]「3.独立特許要件」「(4) 対比」「ウ.」「(ウ)」で示したように,引用発明の「例外ハンドラ」は,変換索引バッファに関連する例外処理を行うハンドラであるといえ,スレッドで例外ハンドラを実行する際に,スレッドから例外処理の要求を行うことは,当業者にとって自明である。そして,例外処理の要求を行う際には,例外処理の要求を行うことが少なくとも許可されることも,当業者にとって自明である。よって,引用発明において「第1のスレッドで例外ハンドラを実行する」際には,少なくとも,「第1スレッド」から変換索引バッファに関連する例外処理の要求を行うことを許可しているといえる。してみると,本件補正発明における「例外ハンドラへのアクセスを可能にし」を「例外ハンドラへのアクセスを許可し」とすることで,上記「第2.平成25年2月25日付けの手続補正についての補正却下の決定」の[理由]「3.独立特許要件」「(4) 対比」「カ.」に記載した相違点1ないし5以外の相違点が生じるものではない。

(5) 上記(2)ないし(4)に示したことから,本件補正発明を本願発明とすることで,引用発明との間に新たな相違点が生じるとはいえないから,本願発明は,上記「第2.平成25年2月25日付けの手続補正についての補正却下の決定」の[理由]「3.独立特許要件」「(5) 判断」に示したのと同様の理由により,引用発明,並びに参考文献1及び参考文献2にみられる周知技術に基づいて当業者が容易に発明することができたものである。


4.むすび
以上のとおり,本願発明は,特許法第29条第2項の規定により特許を受けることができないから,他の請求項に係る発明について検討するまでもなく,本願は拒絶されるべきものである。
よって,結論のとおり審決する。
 
審理終結日 2014-12-02 
結審通知日 2014-12-09 
審決日 2014-12-24 
出願番号 特願2010-537031(P2010-537031)
審決分類 P 1 8・ 575- Z (G06F)
P 1 8・ 121- Z (G06F)
最終処分 不成立  
前審関与審査官 久保 光宏  
特許庁審判長 山崎 達也
特許庁審判官 田中 秀人
小林 大介
発明の名称 ロックインジケータを有するマルチスレッドプロセッサ  
代理人 福原 淑弘  
代理人 河野 直樹  
代理人 中村 誠  
代理人 野河 信久  
代理人 岡田 貴志  
代理人 赤穂 隆雄  
代理人 蔵田 昌俊  
代理人 白根 俊郎  
代理人 竹内 将訓  
代理人 井上 正  
代理人 井関 守三  
代理人 峰 隆司  
代理人 幸長 保次郎  
代理人 佐藤 立志  
代理人 砂川 克  
代理人 堀内 美保子  

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