ポートフォリオを新規に作成して保存 |
|
|
既存のポートフォリオに追加保存 |
|
PDFをダウンロード |
審決分類 |
審判 査定不服 2項進歩性 特許、登録しない(前置又は当審拒絶理由) G06F |
---|---|
管理番号 | 1316563 |
審判番号 | 不服2014-5652 |
総通号数 | 200 |
発行国 | 日本国特許庁(JP) |
公報種別 | 特許審決公報 |
発行日 | 2016-08-26 |
種別 | 拒絶査定不服の審決 |
審判請求日 | 2014-03-26 |
確定日 | 2016-06-29 |
事件の表示 | 特願2011-227849「セマフォ予約をクリアする方法および装置」拒絶査定不服審判事件〔平成24年 4月 5日出願公開、特開2012- 69128〕について、次のとおり審決する。 |
結論 | 本件審判の請求は、成り立たない。 |
理由 |
第1 手続の経緯 本件審判請求に係る出願は、2006年10月20日を国際出願日とする特願2008-536652の一部を2011年10月17日に新たな特許出願(パリ条約による優先権主張外国庁受理2005年10月20日(以下、「優先日」という。)、米国)としたものであって、その後の手続の経緯の概略は次のとおりである。 出願審査請求(受付日) 平成23年11月16日 翻訳文提出(受付日) 平成23年11月16日 拒絶理由通知(起案日) 平成25年6月28日(同年7月2日発送) 意見、手続補正(受付日) 平成25年11月5日 拒絶査定(起案日) 平成25年11月21日 (同年11月26日謄本発送) 審判請求(受付日) 平成26年3月26日 手続補正(受付日) 平成26年3月26日 前置報告(作成日) 平成26年6月19日 補正の却下の決定 平成27年4月15日(同年4月28日発送) 拒絶理由通知(起案日) 平成27年4月15日(同年4月21日発送) 意見、手続補正(受付日) 平成27年8月21日 第2 本願発明 本願の請求項1ないし13に係る発明は、平成27年8月21日付け手続補正により補正された特許請求の範囲の請求項1ないし13に記載された事項により特定されると認められるところ、本願の請求項1に係る発明(以下、「本願発明」という。)は以下のとおりのものと認められる。 「共有メモリへの排他的アクセスのためにセマフォ予約をクリアする方法であって、 複数の処理構成要素によって共有されることができる共有メモリ領域および前記共有メモリ領域の排他的書き込みアクセスの使用可能性を示すセマフォメモリ領域を含むメモリを準備することと、 メモリ制御装置が第1の処理構成要素が前記メモリにおける前記セマフォメモリ領域を読み出すことに応答して、前記共有メモリ領域への排他的アクセスを管理するためのセマフォ予約を設定することと、 第2の処理構成要素が前記共有メモリ領域に関連付けられた前記セマフォメモリ領域へ書き込み要求を送信することと、 前記メモリ制御装置が前記書き込み要求に応答して、前記セマフォ予約をクリアし、前記第1の処理構成要素による前記セマフォメモリ領域の内容の更新を妨げることと、 前記メモリ制御装置が前記書き込み要求に応答して、前記メモリ制御装置内の予約状態を予約状態から非予約状態に変更することと、を含む方法。」 第3 引用文献 1.引用文献1 (1)本願の優先日前に既に頒布又は電気通信回線を通じて公衆に利用可能となり、当審の拒絶理由通知において引用された文献である、特開2002-278947号公報(以下、「引用文献1」という。)には、関連する図面とともに、次の事項が記載されている。 (当審注:下線は、参考のために当審で付与した。) A.「【0012】本発明の他の目的は、複数のプロセッサにて主記憶を共有するマルチプロセッサシステムにおいて、回路や論理物量等の増大や主記憶に対するアクセス速度の低下を生じることなく、個々のプロセッサにて並行動作する複数のプロセス間での同期、排他、通信制御のための多数のロック/アンロック要求の処理を的確に実現することが可能な技術を提供することにある。 【0013】本発明の他の目的は、複数のプロセッサにて主記憶を共有するマルチプロセッサシステムにおいて、プロセッサアーキテクチャ等に変更を加えることなく、プロセッサ間あるいはプロセス間の同期、排他、通信制御のための多数のロック/アンロック要求の処理を的確に実現することが可能な技術を提供することにある。」 B.「【0017】本実施の形態のマルチプロセッサシステムは、複数のプロセッサ10(#1?#NのN個)が、通信レジスタ40および相互結合網20を介して主記憶30を共有する構成となっている。通信レジスタ40は複数の通信レジスタモジュール400(#1?#NのN個)を含んでいる。 …(中略)… 【0019】図2に例示されるように、個々の通信レジスタモジュール400は複数のレジスタから構成される通信レジスタ群500(#1?#N)を有し、通信レジスタモジュール400の間は通信モジュール間バス700で結合される。信号線L80上のロードストア要求は、通信レジスタモジュール400内のデコーダ430でデコードされ、要求が主記憶30へのアクセス要求である場合は、信号線L80および相互結合網20を介して主記憶30をアクセスするよう制御され、要求が通信レジスタ40へのアクセス要求である場合は、通信モジュール間バス700を介して通信レジスタ群500をアクセスするよう制御される。」 …(中略)… 【0021】図3に、本実施の形態における通信レジスタ群500の構成の一例を示す。本実施の形態の場合、通信レジスタ群500には、ロック情報レジスタ510とロック状態レジスタ520の2種類の通信レジスタが存在する。」 C.「【0027】ロック情報レジスタ510とロック状態レジスタ520へアクセスして、実際にロック/アンロック処理を行うには、従来アーキテクチャでロックフラグが主記憶30上にある場合のロック/アンロック処理時に使用する命令を使用する。本実施例では、一例として、PowerPCアーキテクチャにおけるロックフラグ操作用命令を用いる。 …(中略)… 【0029】PowerPCアーキテクチャにおいて、主記憶上にロックフラグが存在する場合のロック/アンロック処理は図5に示す命令列によって実現する。 【0030】図5の各命令の意味を以下に示す。尚、r3はロックフラグの存在する主記憶上のアドレスが入っているレジスタ、r5は読み出したロックフラグ値を格納するレジスタ、r4は新たに設定するロック値が入っているレジスタである。 【0031】lwarx r5,0,r3:ロックフラグの値を読み出し、レジスタr5に格納する。同時にリザベーション(後述)を確立する。 【0032】cmp r5,0:r5の値をゼロと比較する。 【0033】bc loop:r5の値がゼロでないならば、loopへ戻る。 【0034】stwcx.r4,0,r3:リザベーションが残っていたらロックフラグにr4の値を書き込みに成功する。リザベーションが破棄されていたら、ロックフラグ書き込みに失敗する。 【0035】bc loop:ロックフラグ書き込みが失敗していたらloopへ戻る。成功していたら、次行以降のクリティカル・リージョン内の命令列を実行する。 【0036】sync:クリティカル・リージョン内の命令実行がすべて完了したことを保証する。 【0037】stw 0,0(r3):ロックフラグにゼロを書き込む。 【0038】前半5行に渡る命令列がロック処理、最後の1行がアンロック処理、それ以外はクリティカル・リージョンを示す。 【0039】lwarx命令、stwcx.命令はそれぞれロード・アンド・リザーブ命令、ストア・コンディショナル命令と呼ばれ、PowerPCアーキテクチャにおけるアトミックな処理を実現する際に、常に対となって使用される命令である。 【0040】ロード・アンド・リザーブ命令は、指定アドレスに対して、内容をリードする動作を行うとともに、リザベーションと呼ばれる保護領域を確立する。ストア・コンディショナル命令は、先行するロード・アンド・リザーブ命令によって確立されたリザベーションが破棄されていなかったら、指定アドレスへのライト動作を実行し、プロセッサにストア動作の「成功」を報告する。もし、リザベーションが存在する時に、他のプロセッサがストア命令を発行して、該アドレスの内容を更新すると、リザベーションは破棄される。この状態で、最初にロード・アンド・リザーブ命令を発行したプロセッサが、ストア・コンディショナル命令を発行すると、ストア動作は行われず、「失敗」したことを示すリプライをプロセッサに報告する。 【0041】ロック処理を実現する場合、プロセッサはまず主記憶上のロックフラグに対してロード・アンド・リザーブ命令を発行する。読み出されたフラグ値がゼロでない場合は、他のプロセッサがロック中なので、自プロセッサはloopに戻り、フラグ値がゼロになるまで、ロード・アンド・リザーブ命令を繰り返す。フラグ値がゼロになったら、ストア・コンディショナル命令によって、ロックフラグを設定する。このとき、自プロセッサよりも他のプロセッサのロックフラグ設定が早いと、リザベーションが破棄されるので、フラグ値設定に失敗し、再びloopに戻ってロック値がゼロになるのを待つ。フラグ値設定に成功した場合、クリティカル・リージョンを実行する。クリティカル・リージョン実行後は、ロックフラグにゼロをストアしてアンロック処理を行う。 …(中略)… 【0051】このように、本実施の形態では、主記憶30をアクセスする場合と通信レジスタ40をアクセスする場合とで、既存のロックフラグを操作する命令の動作を切り替えている。切り替え制御を通信レジスタモジュール400内で行えば、従来のプロセッサアーキテクチャを変更することなく、通信レジスタ40を用いた高速ロック処理を実現することができる。また、その高速性は、図5と図6との命令列数の差に示されるように、ロック処理に要する命令数を削減して実行時間を短縮できることからも明白である。」 (2)引用文献1に記載された事項について検討する。 (A)前記B.の「本実施の形態のマルチプロセッサシステムは、複数のプロセッサ10(#1?#NのN個)が、通信レジスタ40および相互結合網20を介して主記憶30を共有する構成となっている…(中略)…信号線L80上のロードストア要求は、通信レジスタモジュール400内のデコーダ430でデコードされ、要求が主記憶30へのアクセス要求である場合は、信号線L80および相互結合網20を介して主記憶30をアクセスするよう制御され、要求が通信レジスタ40へのアクセス要求である場合は、通信モジュール間バス700を介して通信レジスタ群500をアクセスするよう制御される」との記載、前記C.の「本実施の形態では、主記憶30をアクセスする場合と通信レジスタ40をアクセスする場合とで、既存のロックフラグを操作する命令の動作を切り替えている。切り替え制御を通信レジスタモジュール400内で行えば、従来のプロセッサアーキテクチャを変更することなく、通信レジスタ40を用いた高速ロック処理を実現することができる」との記載から、「複数のプロセッサにて通信レジスタおよび相互接続網を介して主記憶を共有するマルチプロセッサシステムにおいて、ロードストア要求は、デコーダでデコードされ、要求が主記憶へのアクセス要求である場合は、主記憶をアクセスするよう制御され、要求が通信レジスタへのアクセス要求である場合は、通信レジスタ群をアクセスするよう制御され、プロセッサアーキテクチャ等に変更を加えることなく、プロセッサ間あるいはプロセス間の同期、排他、通信制御のための多数のロック/アンロック要求の処理を実現する方法」をよみとることができる。 (B)前記A.の「複数のプロセッサにて主記憶を共有する」との記載から「主記憶に共有領域」があることは明らかであり、前記C.の「PowerPCアーキテクチャにおいて、主記憶上にロックフラグが存在する場合のロック/アンロック処理は図5に示す命令列によって実現する…(中略)…ロック処理を実現する場合、プロセッサはまず主記憶上のロックフラグに対してロード・アンド・リザーブ命令を発行する。読み出されたフラグ値がゼロでない場合は、他のプロセッサがロック中なので、自プロセッサはloopに戻り、フラグ値がゼロになるまで、ロード・アンド・リザーブ命令を繰り返す」と記載されていることから、ロックフラグは、自プロセッサと他のプロセッサとが共有することができる共有領域に存在することをよみとることができる。よって「PowerPCアーキテクチャにおける複数のプロセッサによって共有されることができる共有メモリ領域および前記共有メモリ領域のロックフラグが存在することができるロックフラグ領域を含む主記憶を備える」ことをよみとることができる。 (C)前記(B)で言及した「複数のプロセッサ」としてPowerPCアーキテクチャにおける自プロセッサと他のプロセッサが前記A.の「マルチプロセッサシステム」の構成として含むことができることは明らかであり、前記B.の「信号線L80上のロードストア要求は、通信レジスタモジュール400内のデコーダ430でデコードされ、要求が主記憶30へのアクセス要求である場合は、信号線L80および相互結合網20を介して主記憶30をアクセスするよう制御され、要求が通信レジスタ40へのアクセス要求である場合は、通信モジュール間バス700を介して通信レジスタ群500をアクセスするよう制御される」との記載から「ロードストア要求がデコーダでデコードされ主記憶へのアクセス要求である場合は、相互結合網を介して主記憶をアクセスするよう制御され」ることをよみとることができ、前記C.の「PowerPCアーキテクチャにおいて、主記憶上にロックフラグが存在する場合のロック/アンロック処理は図5に示す命令列によって実現する…(中略)…lwarx r5,0,r3:ロックフラグの値を読み出し、レジスタr5に格納する。同時にリザベーション(後述)を確立する…(中略)…ロード・アンド・リザーブ命令は、指定アドレスに対して内容をリードする動作を行うとともに、リザベーションと呼ばれる保護領域を確立する…(中略)…ロック処理を実現する場合、プロセッサはまず主記憶上のロックフラグに対してロード・アンド・リザーブ命令を発行する。読み出されたフラグ値がゼロでない場合は、他のプロセッサがロック中なので、自プロセッサはloopに戻り、フラグ値がゼロになるまで、ロード・アンド・リザーブ命令を繰り返す」との記載から、「自プロセッサが主記憶上のロックフラグに対してロード・アンド・リザーブ命令を発行し、ロード・アンド・リザーブ命令により、指定アドレスに対して内容をリードする動作を行うとともに、リザベーションと呼ばれる保護領域を確立する」ことをよみとることができる。これらを合わせると「ロードストア要求がデコーダでデコードされ主記憶へのアクセス要求である場合は、相互結合網を介して主記憶をアクセスするよう制御され、自プロセッサが主記憶上のロックフラグに対してロード・アンド・リザーブ命令を発行し、ロード・アンド・リザーブ命令により指定アドレスに対して内容をリードする動作を行うとともに、リザベーションと呼ばれる保護領域を確立」することをよみとることができる。 (D)前記(C)で言及したPowerPCアーキテクチャにおける自プロセッサと同様にPowerPCアーキテクチャにおける他のプロセッサもまた、ロード・アンド・リザーブ命令、ストア・コンディショナル命令を発行して主記憶の共有ロックフラグのロード・アンド・リザーブおよびストア・コンディショナルを試みることができることは自明である。そして、ストア・コンディショナル命令の発行に関して、前記C.の「ストア・コンディショナル命令は、先行するロード・アンド・リザーブ命令によって確立されたリザベーションが破棄されていなかったら、指定アドレスへのライト動作を実行し、プロセッサにストア動作の「成功」を報告する。もし、リザベーションが存在する時に、他のプロセッサがストア命令を発行して、該アドレスの内容を更新すると、リザベーションは破棄される。この状態で、最初にロード・アンド・リザーブ命令を発行したプロセッサが、ストア・コンディショナル命令を発行すると、ストア動作は行われず、「失敗」したことを示すリプライをプロセッサに報告する…(中略)…自プロセッサよりも他のプロセッサのロックフラグ設定が早いと、リザベーションが破棄されるので、フラグ値設定に失敗し、再びloopに戻ってロック値がゼロになるのを待つ」との記載から「他のプロセッサが当該アドレスの内容を更新するストア命令を発行」すること、および、「自プロセッサのリザベーションが存在する時に、他のプロセッサがストア命令を発行して、該アドレスの内容を更新すると、リザベーションは破棄され、この破棄された状態で、最初にロード・アンド・リザーブ命令を発行した自プロセッサが、ストア・コンディショナル命令を発行すると、ストア動作は行われず、「失敗」したことを示すリプライが自プロセッサに報告され、再びloopに戻ってロック値がゼロになるのを待」つことをよみとることができる。 (E)前記(D)で言及した「もし、リザベーションが存在する時に、他のプロセッサがストア命令を発行して、該アドレスの内容を更新すると、リザベーションは破棄される。この状態で、最初にロード・アンド・リザーブ命令を発行したプロセッサが、ストア・コンディショナル命令を発行すると、ストア動作は行われず、「失敗」したことを示すリプライをプロセッサに報告する」との記載において、前記「リザベーションが存在する(時の)状態」と「リザベーションが破棄された(時の)状態」をよみとることができるとともに、前記「リザベーションが存在する状態」に関連し、前記C.の「ロード・アンド・リザーブ命令は、指定アドレスに対して内容をリードする動作を行うとともに、リザベーションと呼ばれる保護領域を確立する…(中略)…先行するロード・アンド・リザーブ命令によって確立されたリザベーションが破棄」される旨の記載から、前記「リザベーションが存在する状態」として「先行するロード・アンド・リザーブ命令によって確立されたリザベーションと呼ばれる保護領域を確立した状態」のものが含まれると解され、前記「もし、リザベーションが存在する時に、…(中略)…リザベーションは破棄される。この状態で、最初にロード・アンド・リザーブ命令を発行」することとを合わせると、「リザベーションが存在する時に、他のプロセッサがストア命令を発行して、該アドレスの内容を更新すると、リザベーションは破棄され、先行するロード・アンド・リザーブ命令によって確立されたリザベーションと呼ばれる保護領域を確立した状態はリザベーションが破棄された状態とされる」ことをよみとることができる。 前記(A)?(E)をふまえると、引用文献1には、前記A.に記載された「複数のプロセッサにて主記憶を共有するマルチプロセッサシステムにおいて、…(中略)…プロセッサアーキテクチャ等に変更を加えることなく、プロセッサ間あるいはプロセス間の同期、排他、通信制御のための多数のロック/アンロック要求の処理を的確に実現する」こと等を目的とした次の発明(以下、「引用発明」という。)が記載されていると認められる。 「複数のプロセッサにて通信レジスタおよび相互接続網を介して主記憶を共有するマルチプロセッサシステムにおいて、ロードストア要求は、デコーダでデコードされ、要求が主記憶へのアクセス要求である場合は、主記憶をアクセスするよう制御され、要求が通信レジスタへのアクセス要求である場合は、通信レジスタ群をアクセスするよう制御され、プロセッサアーキテクチャ等に変更を加えることなく、プロセッサ間あるいはプロセス間の同期、排他、通信制御のための多数のロック/アンロック要求の処理を実現する方法であって、 PowerPCアーキテクチャにおける複数のプロセッサによって共有されることができる共有メモリ領域および前記共有メモリ領域のロックフラグが存在することができるロックフラグ領域を含む主記憶を備え、 前記ロードストア要求がデコーダでデコードされ主記憶へのアクセス要求である場合は、相互結合網を介して主記憶をアクセスするよう制御され、自プロセッサが主記憶上のロックフラグに対してロード・アンド・リザーブ命令を発行し、前記ロード・アンド・リザーブ命令により、指定アドレスに対して内容をリードする動作を行うとともに、リザベーションと呼ばれる保護領域を確立し、 他のプロセッサが当該アドレスの内容を更新するストア命令を発行し、 自プロセッサのリザベーションが存在する時に、他のプロセッサがストア命令を発行して、該アドレスの内容を更新すると、前記リザベーションは破棄され、この破棄された状態で、最初にロード・アンド・リザーブ命令を発行した自プロセッサが、ストア・コンディショナル命令を発行すると、ストア動作は行われず、「失敗」したことを示すリプライが自プロセッサに報告され、再びloopに戻ってロック値がゼロになるのを待ち、 前記リザベーションが存在する時に、他のプロセッサがストア命令を発行して、該アドレスの内容を更新すると、リザベーションは破棄され、先行するロード・アンド・リザーブ命令によって確立されたリザベーションと呼ばれる保護領域を確立した状態はリザベーションが破棄された状態とされること、を含む方法。」 2.参考文献1 (1)本願の優先日前に既に頒布又は電気通信回線を通じて公衆に利用可能となった文献である、特開平2-288939号公報(以下、「参考文献1」という。)には、関連する図面とともに、次の事項が記載されている。 D.[課題を解決するための手段] この発明に係るメモリ制御装置は、CPUとメモリ素子との間に、CPUからのメモリ使用要求及びセマフォ識別信号に基づいてメモリ素子に対するアクセス信号を出力するメモリアクセス制御部と、メモリ使用要求がセマフォに係る場合であってメモリ素子からの読出情報がセマフォを張れると判定された場合に、メモリアクセス制御部に対してセマフォ書込信号を出力するセマフォ判定部と、メモリ素子及びセマフォ判定部とCPUとの間でデータの入出力を行なうデータ入出力部と、からなるメモリ制御部を設けたものである。 [作用] この発明においては、CPUからのメモリ読出要求がセマフォに係る場合に、メモリ素子からの読出情報か或る特定の内容例えば“00”ならば、別の或る内容例えば“FF”をメモリ素子に書込んだ後、最初の内容“00”を要求元のCPUに返送し、1回のメモリ続出要求のみでセマフォ制御を行なうと共に、メモリ素子内の共通領域を任意に分割してセマフォを張る。」(2頁左下欄14行?右下欄14行) (2)参考文献1に記載された事項について検討する。 前記D.には、セマフォに係り、メモリ制御装置がメモリ使用要求に応じて、前記メモリ制御装置内の予約状態(例えば00)を別の予約状態(例えばFF)に変更することに相当する技術が示されている。 3.参考文献2 (1)本願の優先日前に既に頒布又は電気通信回線を通じて公衆に利用可能となった文献である、特開2002-202960号公報(以下、「参考文献2」という。)には、関連する図面とともに、次の事項が記載されている。 E.「【0015】 【発明の実施の形態】図1は第1のプロセッサ4と第2のプロセッサ6とを含むデータ処理システム2の概略図を示す。第1のキャッシュメモリ8に第1のプロセッサ4が関係しており、第2のキャッシュメモリ10に第2のプロセッサ6が関係している。共有されているアドレス・データバス12が第1のプロセッサ4と第2のプロセッサ6とをほかのシステム要素と接続している。ほかのシステム要素にはUART回路14,DMA回路16および共有されている主メモリ18とが含まれる。バスアービタ20は1個のバスマスターだけが任意の所定の時間に共有バス12の制御権を有することを保証する働きをする。 【0016】主メモリ18はたとえばデータベース・レコードのようなデータ要素を記憶する。このデータ要素には、第1のプロセッサ4と第2のプロセッサ6のうち一方による排他的アクセスを許可することが要求される。セマフォ値は主メモリ18内に記憶され、個々のデータレコードまたはメモリエリアのようなデータ要素へのアクセスを制御する。このデータ要素に排他的アクセスの要求がなされる。モニタ回路22が主メモリ18にローカルに付随していて、どのセマフォ値がプロセッサ4または6により検索されたかを識別するデータを記憶する。セマフォ識別データは、バスアービタ20により割り当てられるプロセッサ番号のようなプロセッサ識別データと共に、主メモリ内でセマフォの物理的アドレスの形式を取る。セマフォ識別データ記憶装置24がキャッシュメモリ8に付随していて、別のセマフォ識別データ記憶装置26がキャッシュメモリ10に付随している。これらのセマフォ識別データ記憶装置24,26はそれぞれプロセッサ4,6にローカルに供給されている。主メモリ18内のセマフォ値に対して検索操作が行われると、そのセマフォ値の物理的アドレスがそれぞれのローカルセマフォ識別データ記憶装置24,26の中に記憶される。1個の未決の排他的アクセス確立操作だけが任意の所定の時間に各プロセッサ4,6に対して存在することを許される。2個のプロセッサ4,6は各々自分自身の未決の排他的アクセス確立要求を有することができるが、データ処理システム2のソフトウェア・プログラマは所定のプロセッサ4,6内に1個より多い未決の排他的アクセス要求操作に頼らないように制限されている。 …(中略)… 【0018】図2は図1に示したシステムの動作の概要を示す流れ図である。ステップ26で、プロセッサ4,6のうちの一方がLDREX命令を実行して、主メモリ18内のメモリ位置(レジスタRmの中で指定される)からセマフォ値をロードする。LDREX命令はメモリ値をロードするのに使われる標準的なARM LDRと異なる。LDREX命令は排他的アクセスの関係を確立ための機構を利用するが、標準的なLDRはそうしない。 …(中略)… 【0020】ステップ30で、Rmレジスタ値により指定されたアドレスに対応するセマフォ値が、LDREX命令の中に明記されたレジスタRdに記憶される。更に、セマフォ値の物理的アドレスがLDREX命令を実行するプロセッサのプロセッサ識別番号と共に主メモリのモニタ回路22に記憶される。バスアービタ20は、プロセッサ4,6のうちの一方によるLDREX命令の解読により、このプロセッサ識別番号を主メモリのモニタ回路22に送るようにトリガされる。ステップ30で、セモファデータの物理的アドレスもまたLDREX命令を実行するプロセッサのローカルセマフォ識別データ記憶装置24,26内に記憶される。 …(中略)… 【0022】ステップ34で、主メモリ18からプロセッサ4,6のうちの一方に返されたセマフォ値が検査されて、検索されたセマフォ値が関連するデータ要素への排他的アクセスが許可されていることを示すか否かを判断する。もしも排他的アクセスが許可されていなければ、処理は終わる。排他的アクセス要求を後刻、できれば直後にコードのタイトなループ部分を使って再試行するのが効果的である。 【0023】もしもステップ36で排他的アクセスが可能であることを返されたセマフォ値が示したならば、処理はステップ38に進み、ここでSTREX命令が実行される。STREX命令は排他的アクセスが許可されているということを示す新しいセマフォ値を主メモリ18に記憶しようとする。STREX命令は未決のセマフォ識別データを更に調べて、書き込みが完了したか否かを示す結果値を返すという点で、標準的なARM STRとは異なる。 【0024】もしも書き込みが完了してなかったならば、ステップ26におけるセマフォ値の読みとりとステップ38における対応するSTREX命令の実行の試行との間の調整時間に、別のプロセッサまたはプロセスが同じデータ要素に対して排他的アクセスの許可を確立したことを意味する。 …(中略)… 【0026】ステップ42はローカルセマフォ識別データ記憶装置24,26と主メモリモニタ回路22の中で、書き込み中のセマフォ値の物理的アドレスがまだ記憶されている(すなわちクリアされてないかまたは重ね書きされていない)ことを調べる。また、主メモリモニタ回路22の場合、整合するプロセッサ番号が物理的メモリアドレスと関連していることを調べる。最初にローカル記憶装置24,26について調べる。もしもこれがクリアされていれば、失敗の結果が返される。そうでなければ、主メモリモニタ回路22が調べられて、そこから結果が返される。もしもこれらの条件が双方とも満たされなければ、処理はステップ44に進み、ここで失敗の結果値がSTREX命令から返され、書き込みは行われなかったとして、処理は終わる。実際には排他的アクセスを再試行することができる。 【0027】もしもステップ42の検査により、プロセッサ4,6と主メモリモニタ回路22の両方にローカルに記憶されているセマフォ識別データがまだ整合している(すなわち、別のプロセスに与えられた介在する排他的アクセス許可、介在するクリア命令、または正常な排他的アクセス許可プロセスとの何らかの他の干渉が全くなかった)ことが示されていれば、処理はステップ46に進む。ステップ46で、主メモリ内のセマフォ値が更新され、STREX命令の発信者に排他的アクセスの許可が与えられて許可の結果値が返されたことを示す。」 (2)参考文献2に記載された事項について検討する。 a.前記E.の「データ処理システム…(中略)…共有されている主メモリ18…(中略)…バスアービタ…(中略)…データ要素には、第1のプロセッサ4と第2のプロセッサ6のうち一方による排他的アクセスを許可することが要求される。セマフォ値は主メモリ18内に記憶され…(中略)…メモリエリアのようなデータ要素へのアクセスを制御する」との記載から「セマフォ値は主メモリ内に記憶されており、共有されている主メモリのデータ要素は、第1のプロセッサと第2のプロセッサのうち一方による排他的アクセスを許可することが要求されるデータ処理システム」をよみとることができる。 b.前記E.の「メモリエリアのようなデータ要素へのアクセスを制御する…(中略)…モニタ回路22が主メモリ18にローカルに付随していて、どのセマフォ値がプロセッサ4または6により検索されたかを識別するデータを記憶する。セマフォ識別データは、…(中略)…プロセッサ番号のようなプロセッサ識別データと共に、主メモリ内でセマフォの物理的アドレスの形式を取る…(中略)…主メモリ18内のセマフォ値に対して検索操作が行われると、そのセマフォ値の物理的アドレスがそれぞれのローカルセマフォ識別データ記憶装置24,26の中に記憶される…(中略)…プロセッサ4,6のうちの一方がLDREX命令を実行して、主メモリ18内のメモリ位置(レジスタRmの中で指定される)からセマフォ値をロードする…(中略)…Rmレジスタ値により指定されたアドレスに対応するセマフォ値が、LDREX命令の中に明記されたレジスタRdに記憶される。更に、セマフォ値の物理的アドレスがLDREX命令を実行するプロセッサのプロセッサ識別番号と共に主メモリのモニタ回路22に記憶される…(中略)…主メモリ18からプロセッサ4,6のうちの一方に返されたセマフォ値が検査されて、検索されたセマフォ値が関連するデータ要素への排他的アクセスが許可されていることを示すか否かを判断する…(中略)…排他的アクセスが可能であることを返されたセマフォ値が示したならば…(中略)…STREX命令が実行され…(中略)…排他的アクセスが許可されているということを示す新しいセマフォ値を主メモリ18に記憶しようとする…(中略)…もしも書き込みが完了してなかったならば、ステップ26におけるセマフォ値の読みとりとステップ38における対応するSTREX命令の実行の試行との間の調整時間に、別のプロセッサまたはプロセスが同じデータ要素に対して排他的アクセスの許可を確立したことを意味する…(中略)…ローカルセマフォ識別データ記憶装置24,26と主メモリモニタ回路22の中で、書き込み中のセマフォ値の物理的アドレスがまだ記憶されている(すなわちクリアされてないかまたは重ね書きされていない)ことを調べる。また、主メモリモニタ回路22の場合、整合するプロセッサ番号が物理的メモリアドレスと関連していることを調べる。最初にローカル記憶装置24,26について調べる。もしもこれがクリアされていれば、失敗の結果が返される。そうでなければ、主メモリモニタ回路22が調べられて、そこから結果が返される。もしもこれらの条件が双方とも満たされなければ、処理はステップ44に進み、ここで失敗の結果値がSTREX命令から返され、書き込みは行われなかったとして、処理は終わる…(中略)…プロセッサ4,6と主メモリモニタ回路22の両方にローカルに記憶されているセマフォ識別データがまだ整合している(すなわち、別のプロセスに与えられた介在する排他的アクセス許可、介在するクリア命令、または正常な排他的アクセス許可プロセスとの何らかの他の干渉が全くなかった)ことが示されていれば、…(中略)…主メモリ内のセマフォ値が更新され、STREX命令の発信者に排他的アクセスの許可が与えられて許可の結果値が返されたことを示す」との記載において、前記「モニタ回路」は、文字通りモニタする回路と解され、前記「プロセッサ識別データと共に、主メモリ内でセマフォの物理的アドレス」からなる「セマフォ識別データ」を記憶する「モニタ回路」であって、前記「メモリエリアのようなデータ要素へのアクセスを制御する」ことに関わる「モニタ回路」であるから、メモリ制御に関連する装置とみることができる。 c.前記a.とb.をふまえると、参考文献2には「セマフォ値は主メモリ内に記憶されており、共有されている主メモリのデータ要素は、第1のプロセッサと第2のプロセッサのうち一方による排他的アクセスを許可することが要求されるデータ処理システムにおいて、メモリエリアのようなデータ要素へのアクセスを制御するモニタ回路を含むメモリ制御に関連する装置を用いる技術が示されている。 第4 対比 引用発明と本願発明とを対比する。 1.引用発明の「共有メモリ領域のロックフラグ」、「リザベーション」は、本願発明の「セマフォ」、「予約」に相当する。また、引用発明の「リザベーションが破棄され」る点に関し、前記C.に「再びloopに戻る」旨記載されていることから、前記「リザベーション」を「破棄」することと本願発明の「リザベーション」を「クリア」することと実質的な差異はない。 してみれば、引用発明の「リザベーションが破棄され」ることを含む「複数のプロセッサにて主記憶を共有するマルチプロセッサシステムにおいて、ロードストア要求は、デコーダでデコードされ、要求が主記憶へのアクセス要求である場合は、主記憶をアクセスするよう制御され、要求が通信レジスタへのアクセス要求である場合は、通信レジスタ群をアクセスするよう制御され、プロセッサアーキテクチャ等に変更を加えることなく、プロセッサ間あるいはプロセス間の同期、排他、通信制御のための多数のロック/アンロック要求の処理を実現する方法」と本願発明の「共有メモリへの排他的アクセスのためにセマフォ予約をクリアする方法」とに実質的な差異はない。 2.引用発明の「PowerPCアーキテクチャにおける複数のプロセッサ」は前記C.に記載のようにPowerPCアーキテクチャにおいて、図5に示す命令列による動作を実現するものであり、本願発明の「複数の処理構成要素」に相当する。 してみれば、引用発明の「PowerPCアーキテクチャにおける複数のプロセッサによって共有されることができる共有メモリ領域および前記共有メモリ領域のロックフラグが存在することができるロックフラグ領域を含む主記憶を備え」ることと、本願発明の「複数の処理構成要素によって共有されることができる共有メモリ領域および前記共有メモリ領域の排他的書き込みアクセスの使用可能性を示すセマフォメモリ領域を含むメモリを準備すること」とに実質的な差異はない。 3.引用発明の前記マルチプロセッサシステムを構成することができるPowerPCアーキテクチャにおける「自プロセッサ」は本願発明の「第1の処理構成要素」に相当する。また、引用発明の「ロード・アンド・リザーブ命令は、指定アドレスに対して内容をリードする動作を行うとともに、リザベーションと呼ばれる保護領域を確立」することに関し、前記「プロセッサ」、前記B.の「信号線L80上のロードストア要求は、通信レジスタモジュール400内のデコーダ430でデコードされ」るとの記載、前記C.の「主記憶30をアクセスする場合と通信レジスタ40をアクセスする場合とで、既存のロックフラグを操作する命令の動作を切り替え…(中略)…切り替え制御を通信レジスタモジュール400内で行」うとの記載から、デコーダを含み、切り替え制御を行う通信レジスタが「相互結合網」を介して用いられることは明らかであり、これら「プロセッサ」、「通信レジスタ」及び「相互結合網」と本願発明の「メモリ制御装置」とは「装置」という上位概念で一致している。 してみれば、引用発明の「前記ロードストア要求がデコーダでデコードされ主記憶へのアクセス要求である場合は、相互結合網を介して主記憶をアクセスするよう制御され、自プロセッサが主記憶上のロックフラグに対してロード・アンド・リザーブ命令を発行し、前記ロード・アンド・リザーブ命令は、指定アドレスに対して内容をリードする動作を行うとともに、リザベーションと呼ばれる保護領域を確立」することと、本願発明の「メモリ制御装置が第1の処理構成要素が前記メモリにおける前記セマフォメモリ領域を読み出すことに応答して、前記共有メモリ領域への排他的アクセスを管理するためのセマフォ予約を設定すること」とは、後記〈相違点1〉の点で相違するものの、「装置が第1の処理構成要素が前記メモリにおける前記セマフォメモリ領域を読み出すことに応答して、前記共有メモリ領域への排他的アクセスを管理するためのセマフォ予約を設定すること」において共通する。 4.引用発明のPowerPCアーキテクチャにおける「他のプロセッサ」は、本願発明の「第2の処理構成要素」に相当し、引用発明の「ロードストア要求がデコーダでデコードされ主記憶へのアクセス要求である場合は、相互結合網を介して主記憶をアクセスするよう制御され」る点を加味すれば、引用発明の「他のプロセッサが前記アドレスの内容を更新するストア命令を発行」することと、本願発明の「第2の処理構成要素が前記共有メモリ領域に関連付けられた前記セマフォメモリ領域へ書き込み要求を送信すること」とに実質的な差異はない。 5.引用発明の「リザベーションは破棄」されることは本願発明の「セマフォ予約をクリア」することに相当し、引用発明の「破棄された状態で、最初にロード・アンド・リザーブ命令を発行した前記自プロセッサが、ストア・コンディショナル命令を発行すると、ストア動作は行われず、「失敗」する」ことは、換言すれば、自プロセッサのストア動作が「妨げ」られているといえる。装置を用いる点については、前記3.で言及したことと同様のことが言える。 してみれば、引用例発明の「前記自プロセッサのリザベーションが存在する時に、前記他のプロセッサがストア命令を発行して、当該アドレスの内容を更新すると、リザベーションは破棄され、この破棄された状態で、最初にロード・アンド・リザーブ命令を発行した前記自プロセッサが、ストア・コンディショナル命令を発行すると、ストア動作は行われず、「失敗」したことを示すリプライが自プロセッサに報告され、再びloopに戻ってロック値がゼロになるのを待つ」ことと本願発明の「前記メモリ制御装置が前記書き込み要求に応答して、前記セマフォ予約をクリアし、前記第1の処理構成要素による前記セマフォメモリ領域の内容の更新を妨げること」とは、後記〈相違点2〉の点で相違するものの、「装置が前記書き込み要求に応答して、前記セマフォ予約をクリアし、前記第1の処理構成要素による前記セマフォメモリ領域の内容の更新を妨げること」において共通する。 6.引用発明の「リザベーションと呼ばれる保護領域を確立した状態」、「リザベーションが破棄された状態」は、それぞれ、本願発明の「予約状態」、「非予約状態」に相当する。装置を用いる点については、前記3.で言及したことと同様のことが言える。 してみれば、引用発明の「前記リザベーションが存在する時に、他のプロセッサがストア命令を発行して、該アドレスの内容を更新すると、リザベーションは破棄され、先行するロード・アンド・リザーブ命令によって確立されたリザベーションと呼ばれる保護領域を確立した状態はリザベーションが破棄された状態とされる」ことと本願発明の「前記メモリ制御装置が前記書き込み要求に応答して、前記メモリ制御装置内の予約状態を予約状態から非予約状態に変更すること」とは、後記〈相違点3〉の点で相違するものの、「装置が前記書き込み要求に応答して、前記装置内の予約状態を予約状態から非予約状態に変更すること」において共通する。 前記1.?6.の対比・検討によれば、本願発明と引用発明とは次の点で一致し、そして、次の点で相違する。 [一致点] 「共有メモリへの排他的アクセスのためにセマフォ予約をクリアする方法であって、 複数の処理構成要素によって共有されることができる共有メモリ領域および前記共有メモリ領域の排他的書き込みアクセスの使用可能性を示すセマフォメモリ領域を含むメモリを準備することと、 装置が第1の処理構成要素が前記メモリにおける前記セマフォメモリ領域を読み出すことに応答して、前記共有メモリ領域への排他的アクセスを管理するためのセマフォ予約を設定することと、 第2の処理構成要素が前記共有メモリ領域に関連付けられた前記セマフォメモリ領域へ書き込み要求を送信することと、 前記装置が前記書き込み要求に応答して、前記セマフォ予約をクリアし、前記第1の処理構成要素による前記セマフォメモリ領域の内容の更新を妨げることと、 前記装置が前記書き込み要求に応答して、前記装置内の予約状態を予約状態から非予約状態に変更することと、を含む方法。」 〈相違点1〉 装置が第1の処理構成要素がメモリにおけるセマフォメモリ領域を読み出すことに応答して、共有メモリ領域への排他的アクセスを管理するためのセマフォ予約を設定することに関し、本願発明は「メモリ制御装置」を用いるのに対し、引用発明は、そのようであるのか特定されていない点。 〈相違点2〉 装置が書き込み要求に応答して、セマフォ予約をクリアし、第1の処理構成要素によるセマフォメモリ領域の内容の更新を妨げることに関し、本願発明は「メモリ制御装置」を用いるのに対し、引用発明は、そのようであるのか特定されていない点。 〈相違点3〉 装置が書き込み要求に応答して、装置内の予約状態を予約状態から非予約状態に変更することに関し、本願発明は「メモリ制御装置内」の予約状態を予約状態から非予約状態に変更しているのに対し、引用発明は、そのようであるのか特定されていない点。 第5 当審判断 〈相違点1〉について メモリにおけるセマフォメモリ領域を読み出すことに応答して、共有メモリ領域への排他的アクセスを管理するためのセマフォを設定する際に、「メモリ制御装置」を用いることは周知技術にすぎない。例えば、参考文献1には「セマフォに係り、メモリ制御装置がメモリ使用要求に応じて、前記メモリ制御装置内の予約状態(例えば00)を別の予約状態(例えばFF)に変更する」ことに相当する技術が示され、参考文献2には「セマフォ値は主メモリ内に記憶されており、共有されている主メモリのデータ要素は、第1のプロセッサと第2のプロセッサのうち一方による排他的アクセスを許可することが要求されるデータ処理システムにおいて、メモリエリアのようなデータ要素へのアクセスを制御するモニタ回路を含むメモリ制御に関連する装置を用いる技術が示されており、「メモリ制御装置」を用いる技術は当該技術分野における周知技術といえるものである。 してみれば、引用発明において、装置が第1の処理構成要素がメモリにおけるセマフォメモリ領域を読み出すことに応答して、共有メモリ領域への排他的アクセスを管理するためのセマフォ予約を設定することに関し、「メモリ制御装置」を用いることは当業者が容易になし得ることである。 〈相違点2〉について 前記「〈相違点1〉について」、において言及した様に、メモリの制御に専用の「メモリ制御装置」を用いることは周知技術といえるものであるから、引用発明において、書き込み要求に応答して、セマフォ予約をクリアし、第1の処理構成要素によるセマフォメモリ領域の内容の更新を妨げることに関し、「メモリ制御装置」を用いることは当業者が容易になし得ることである。 〈相違点3〉について 前記「〈相違点1〉について」、において言及したように、「メモリ制御装置」を用いることは周知技術といえるものであり、参考文献1には「セマフォに係り、メモリ制御装置がメモリ使用要求に応じて、前記メモリ制御装置内の予約状態(例えば00)を別の予約状態(例えばFF)に変更する」ことに相当する技術が示されている。 してみれば、引用発明において、装置が書き込み要求に応答して、装置内の予約状態を予約状態から非予約状態に変更することに関し、「メモリ制御装置内」の予約状態を予約状態から非予約状態に変更することは当業者が容易になし得ることである。 そして、本願発明の奏する作用効果は、前記引用発明、参考文献1、2に記載された技術の奏する作用効果から当然予測される範囲内のものにすぎず、格別顕著なものということはできない。 第6 むすび 以上のとおり、本願発明は、特許法第29条第2項の規定により特許を受けることができないから、他の請求項に係る発明について検討するまでもなく、本願は拒絶されるべきものである。 よって、前記結論のとおり審決する。 |
審理終結日 | 2016-01-29 |
結審通知日 | 2016-02-02 |
審決日 | 2016-02-15 |
出願番号 | 特願2011-227849(P2011-227849) |
審決分類 |
P
1
8・
121-
WZ
(G06F)
|
最終処分 | 不成立 |
前審関与審査官 | 漆原 孝治 |
特許庁審判長 |
辻本 泰隆 |
特許庁審判官 |
高木 進 戸島 弘詩 |
発明の名称 | セマフォ予約をクリアする方法および装置 |
代理人 | 野河 信久 |
代理人 | 峰 隆司 |
代理人 | 井上 正 |
代理人 | 堀内 美保子 |
代理人 | 井関 守三 |
代理人 | 蔵田 昌俊 |
代理人 | 河野 直樹 |
代理人 | 岡田 貴志 |
代理人 | 福原 淑弘 |
代理人 | 砂川 克 |
代理人 | 佐藤 立志 |