ポートフォリオを新規に作成して保存 |
|
|
既存のポートフォリオに追加保存 |
|
PDFをダウンロード |
審決分類 |
審判 査定不服 5項独立特許用件 特許、登録しない。 G06F 審判 査定不服 2項進歩性 特許、登録しない。 G06F |
---|---|
管理番号 | 1347028 |
審判番号 | 不服2017-14463 |
総通号数 | 230 |
発行国 | 日本国特許庁(JP) |
公報種別 | 特許審決公報 |
発行日 | 2019-02-22 |
種別 | 拒絶査定不服の審決 |
審判請求日 | 2017-09-29 |
確定日 | 2018-12-05 |
事件の表示 | 特願2015- 202「方法および装置」拒絶査定不服審判事件〔平成27年 4月30日出願公開,特開2015- 84250〕について,次のとおり審決する。 |
結論 | 本件審判の請求は,成り立たない。 |
理由 |
第1.手続の経緯 本願は,2010年11月29日(パリ条約による優先権主張外国庁受理2009年12月22日 アメリカ合衆国)を国際出願日とする特願2012-516395号の一部を,特許法第44条第1項の規定により,平成27年1月5日に新たな特許出願としたものであって, 平成27年1月28日付けで審査請求がなされると共に手続補正がなされ,平成28年1月29日付けで審査官により拒絶理由が通知され,これに対して平成28年8月3日付けで意見書が提出され,平成28年9月13日付けで審査官により拒絶理由が通知され,これに対して平成29年3月21日付けで意見書が提出されると共に手続補正がなされたが,平成29年5月19日付けで審査官により拒絶査定がなされ(謄本送達;平成29年5月30日),これに対して平成29年9月29日付けで審判請求がなされると共に手続補正がなされ,平成29年10月30日付けで審査官により特許法第164条第3項の規定に基づく報告がなされたものである。 第2.平成29年9月29日付けの手続補正の却下の決定 [補正却下の決定の結論] 平成29年9月29日付け手続補正を却下する。 [理由] 1.補正の内容 平成29年9月29日付けの手続補正(以下,「本件手続補正」という)により,平成29年3月21日付けの手続補正により補正された特許請求の範囲, 「 【請求項1】 プロセッサの複数のキャッシュラインをフラッシュする方法であって, フラッシュされる前記複数のキャッシュラインの先頭アドレスの少なくとも一部分を第1のレジスタにロードする段階と, フラッシュされるキャッシュラインの数を表すカウンタ値を第2のレジスタにロードする段階と, 前記プロセッサの前記複数のキャッシュラインがフラッシュされる旨を示す第1のフィールドを含み,前記フラッシュされる前記複数のキャッシュラインの前記先頭アドレスを非明示的に提供する単一の命令を受信する段階と, 前記単一の命令に応じて,前記プロセッサの前記複数のキャッシュラインをフラッシュする段階と を備え, 前記フラッシュする段階は, 前記フラッシュされる前記複数のキャッシュラインの前記先頭アドレスに対応付けられている第1のキャッシュラインをフラッシュする段階と, 前記第2のレジスタに格納されている前記カウンタ値をデクリメントする段階と, フラッシュされるべき第2のキャッシュラインの第2のアドレスのうち少なくとも一部分を含むように前記第1のレジスタを更新する段階と, 前記第2のキャッシュラインをフラッシュする段階と を有し, 前記単一の命令は,即値である前記カウンタ値を含む 方法。 【請求項2】 前記フラッシュされる第2のキャッシュラインの第2のアドレスのうち少なくとも一部分を含むように前記第1のレジスタを更新する段階は, 前記先頭アドレスに所与の数を加算する段階 を有する請求項1に記載の方法。 【請求項3】 前記フラッシュされる第2のキャッシュラインの第2のアドレスのうち少なくとも一部分を含むように前記第1のレジスタを更新する段階は, 前記先頭アドレスから所与の数を減算する段階 を有する請求項1または2に記載の方法。 【請求項4】 オペレーティングシステム(OS)は,前記単一の命令の実行を要求する請求項1から3のいずれか1項に記載の方法。 【請求項5】 複数のトランスレーション・ルックアサイド・バッファ(TLB)エントリを無効化する方法であって, 無効化される前記複数のTLBエントリの先頭アドレスのうち少なくとも一部分を第1のレジスタにロードする段階と, 無効化されるTLBエントリの数を表すカウンタ値を第2のレジスタにロードする段階と, 前記複数のTLBエントリが無効化される旨を示す第1のフィールドを含み,無効化される第1のTLBエントリの先頭アドレスを非明示的に提供する単一の命令を受信する段階と, 前記単一の命令に応じて,前記複数のTLBエントリを無効化する段階と を備え, 前記無効化する段階は, 前記無効化される複数のTLBエントリの前記先頭アドレスに対応付けられている第1のTLBエントリを無効化する段階と, 前記第2のレジスタに格納されている前記カウンタ値をデクリメントする段階と, 無効化される第2のTLBエントリの第2のアドレスのうち少なくとも一部分を含むように前記第1のレジスタを更新する段階と, 前記第2のTLBエントリを無効化する段階と を有し, 前記単一の命令は,即値である前記カウンタ値を含む 方法。 【請求項6】 前記無効化される第2のTLBエントリの第2のアドレスのうち少なくとも一部分を含むように前記第1のレジスタを更新する段階は, 前記先頭アドレスに所与の数を加算する段階 を有する請求項5に記載の方法。 【請求項7】 前記無効化される第2のTLBエントリの第2のアドレスのうち少なくとも一部分を含むように前記第1のレジスタを更新する段階は, 前記先頭アドレスから所与の数を減算する段階 を有する請求項5または6に記載の方法。 【請求項8】 オペレーティングシステム(OS)は,前記単一の命令の実行を要求する請求項5から7のいずれか1項に記載の方法。 【請求項9】 キャッシュラインとしてデータを格納するキャッシュと, 第1の命令の実行に応じてフラッシュされるキャッシュラインの数を表すカウンタ値を格納する第1のレジスタと, 前記第1の命令の実行に応じてフラッシュされる前記キャッシュラインのアドレスのうち少なくとも一部分を格納する第2のレジスタと, 前記キャッシュの複数のキャッシュラインがフラッシュされる旨を示す第1のフィールを含み,フラッシュされる前記複数のキャッシュラインの先頭アドレスを非明示的に提供する前記第1の命令をデコードするデコード回路と, 前記第1のレジスタに格納されたフラッシュされるキャッシュラインの数を表す前記カウンタ値をデクリメントすることによって,デコードされた前記第1の命令が示す前記複数のキャッシュラインをフラッシュする実行回路と を備え, 前記実行回路は,フラッシュされる前記複数のキャッシュラインの前記先頭アドレスに対応付けられている第1のキャッシュラインをフラッシュし,フラッシュされるべき第2のキャッシュラインのアドレスのうち少なくとも一部分を含むように前記第2のレジスタのフラッシュされるべきアドレスの少なくとも一部を更新して,前記第2のキャッシュラインをフラッシュし, 前記第1の命令は,即値である前記カウンタ値を含む 装置。 【請求項10】 ページ・テーブル・エントリを格納するトランスレーション・ルックアサイド・バッファ(TLB)を をさらに備え, 前記デコード回路は,複数のTLBページ・テーブル・エントリが無効化される旨を示す第1のフィールドを含む第2の命令をデコードする請求項9に記載の装置。 【請求項11】 前記第2の命令が示す前記複数のTLBページ・テーブル・エントリを無効化する,前記TLBに設けられている実行回路をさらに備える請求項10に記載の装置。 【請求項12】 前記実行回路は, デコードされた第1の命令が示す前記複数のキャッシュラインをフラッシュする方法を表すステートマシンであって,キャッシュロジックに格納されているステートマシン を有する請求項9から11のいずれか1項に記載の装置。 【請求項13】 前記第1の命令を,前記実行回路が実行する複数のマイクロ演算に変換するマイクロコードをさらに備える請求項9から12のいずれか1項に記載の装置。」(以下,上記引用の請求項各項を,「補正前の請求項」という)は, 「 【請求項1】 プロセッサの複数のキャッシュラインをフラッシュする方法であって, フラッシュされる前記複数のキャッシュラインの先頭アドレスの少なくとも一部分を第1のレジスタにロードする段階と, フラッシュされるキャッシュラインの数を表すカウンタ値を第2のレジスタにロードする段階と, 前記プロセッサの前記複数のキャッシュラインがフラッシュされる旨を示す第1のフィールドを含み,前記フラッシュされる前記複数のキャッシュラインの前記先頭アドレスを非明示的に提供する単一の命令を受信する段階と, 前記単一の命令に応じて,前記プロセッサの前記複数のキャッシュラインをフラッシュする段階と を備え, 前記フラッシュする段階は, 前記フラッシュされる前記複数のキャッシュラインの前記先頭アドレスに対応付けられている第1のキャッシュラインをフラッシュする段階と, 前記第2のレジスタに格納されている前記カウンタ値をデクリメントする段階と, フラッシュされるべき第2のキャッシュラインの第2のアドレスのうち少なくとも一部分を含むように前記第1のレジスタを更新する段階と, 前記第2のキャッシュラインをフラッシュする段階と を有し, 前記単一の命令は,即値である前記カウンタ値を含む特権命令である 方法。 【請求項2】 前記フラッシュされる第2のキャッシュラインの第2のアドレスのうち少なくとも一部分を含むように前記第1のレジスタを更新する段階は, 前記先頭アドレスに所与の数を加算する段階 を有する請求項1に記載の方法。 【請求項3】 前記フラッシュされる第2のキャッシュラインの第2のアドレスのうち少なくとも一部分を含むように前記第1のレジスタを更新する段階は, 前記先頭アドレスから所与の数を減算する段階 を有する請求項1または2に記載の方法。 【請求項4】 オペレーティングシステム(OS)は,前記単一の命令の実行を要求する請求項1から3のいずれか1項に記載の方法。 【請求項5】 複数のトランスレーション・ルックアサイド・バッファ(TLB)エントリを無効化する方法であって, 無効化される前記複数のTLBエントリの先頭アドレスのうち少なくとも一部分を第1のレジスタにロードする段階と, 無効化されるTLBエントリの数を表すカウンタ値を第2のレジスタにロードする段階と, 前記複数のTLBエントリが無効化される旨を示す第1のフィールドを含み,無効化される第1のTLBエントリの先頭アドレスを非明示的に提供する単一の命令を受信する段階と, 前記単一の命令に応じて,前記複数のTLBエントリを無効化する段階と を備え, 前記無効化する段階は, 前記無効化される複数のTLBエントリの前記先頭アドレスに対応付けられている第1のTLBエントリを無効化する段階と, 前記第2のレジスタに格納されている前記カウンタ値をデクリメントする段階と, 無効化される第2のTLBエントリの第2のアドレスのうち少なくとも一部分を含むように前記第1のレジスタを更新する段階と, 前記第2のTLBエントリを無効化する段階と を有し, 前記単一の命令は,即値である前記カウンタ値を含む特権命令である 方法。 【請求項6】 前記無効化される第2のTLBエントリの第2のアドレスのうち少なくとも一部分を含むように前記第1のレジスタを更新する段階は, 前記先頭アドレスに所与の数を加算する段階 を有する請求項5に記載の方法。 【請求項7】 前記無効化される第2のTLBエントリの第2のアドレスのうち少なくとも一部分を含むように前記第1のレジスタを更新する段階は, 前記先頭アドレスから所与の数を減算する段階 を有する請求項5または6に記載の方法。 【請求項8】 オペレーティングシステム(OS)は,前記単一の命令の実行を要求する請求項5から7のいずれか1項に記載の方法。 【請求項9】 キャッシュラインとしてデータを格納するキャッシュと, 第1の命令の実行に応じてフラッシュされるキャッシュラインの数を表すカウンタ値を格納する第1のレジスタと, 前記第1の命令の実行に応じてフラッシュされる前記キャッシュラインのアドレスのうち少なくとも一部分を格納する第2のレジスタと, 前記キャッシュの複数のキャッシュラインがフラッシュされる旨を示す第1のフィールドを含み,フラッシュされる前記複数のキャッシュラインの先頭アドレスを非明示的に提供する前記第1の命令をデコードするデコード回路と, 前記第1のレジスタに格納されたフラッシュされるキャッシュラインの数を表す前記カウンタ値をデクリメントすることによって,デコードされた前記第1の命令が示す前記複数のキャッシュラインをフラッシュする実行回路と を備え, 前記実行回路は,フラッシュされる前記複数のキャッシュラインの前記先頭アドレスに対応付けられている第1のキャッシュラインをフラッシュし,フラッシュされるべき第2のキャッシュラインのアドレスのうち少なくとも一部分を含むように前記第2のレジスタのフラッシュされるべきアドレスの少なくとも一部を更新して,前記第2のキャッシュラインをフラッシュし, 前記第1の命令は,即値である前記カウンタ値を含む特権命令である 装置。 【請求項10】 ページ・テーブル・エントリを格納するトランスレーション・ルックアサイド・バッファ(TLB)を をさらに備え, 前記デコード回路は,複数のTLBページ・テーブル・エントリが無効化される旨を示す第1のフィールドを含む第2の命令をデコードする請求項9に記載の装置。 【請求項11】 前記第2の命令が示す前記複数のTLBページ・テーブル・エントリを無効化する,前記TLBに設けられている実行回路をさらに備える請求項10に記載の装置。 【請求項12】 前記実行回路は, デコードされた第1の命令が示す前記複数のキャッシュラインをフラッシュする方法を表すステートマシンであって,キャッシュロジックに格納されているステートマシン を有する請求項9から11のいずれか1項に記載の装置。 【請求項13】 前記第1の命令を,前記実行回路が実行する複数のマイクロ演算に変換するマイクロコードをさらに備える請求項9から12のいずれか1項に記載の装置。」(以下,上記引用の請求項各項を,「補正後の請求項」という)に補正された。 2.補正の適否 (1)本件手続補正は,補正前の請求項1,及び,補正前の請求項5の, 「単一の命令は,即値である前記カウンタ値を含む」, を, 「単一の命令は,即値である前記カウンタ値を含む特権命令である」, と,補正前の請求項9の, 「第1の命令は,即値である前記カウンタ値を含む」, を, 「第1の命令は,即値である前記カウンタ値を含む特権命令である」, と補正するものであって,これらの補正事項は,本願明細書の段落【0015】の, 「CLFLUSH命令は、全ての特権レベルで用いられるとしてよく」, という記載,及び,本願明細書の段落【0043】の, 「一部の実施形態によると、REP INVLPG命令は特権命令である」, という記載に基づくものであるから,本件手続補正は,願書に最初に添付された明細書,特許請求の範囲,及び,図面に記載した事項の範囲内でなされたものである。 そして,これら補正事項は,「単一の命令」,及び,「第1の命令」に対して,「特権命令」であるという限定事項を付加するものであることは明らかである。 よって,本件手続補正は,特許法第17条の2第3項の規定,及び,特許法第17条の2第5項の規定を満たすものである。 そこで,本件手続補正が,特許法第17条の2第6項において準用する同法第126条第7項の規定を満たすものであるか否か,即ち,補正後の請求項に記載されている事項により特定される発明が特許出願の際独立して特許を受けることができるものであるか否か,以下に検討する。 (2)補正後の請求項1に係る発明 補正後の請求項1に係る発明(以下,これを「本件補正発明」という)は,上記「1.補正の内容」において,補正後の請求項1として引用した,次のとおりのものである。 「プロセッサの複数のキャッシュラインをフラッシュする方法であって, フラッシュされる前記複数のキャッシュラインの先頭アドレスの少なくとも一部分を第1のレジスタにロードする段階と, フラッシュされるキャッシュラインの数を表すカウンタ値を第2のレジスタにロードする段階と, 前記プロセッサの前記複数のキャッシュラインがフラッシュされる旨を示す第1のフィールドを含み,前記フラッシュされる前記複数のキャッシュラインの前記先頭アドレスを非明示的に提供する単一の命令を受信する段階と, 前記単一の命令に応じて,前記プロセッサの前記複数のキャッシュラインをフラッシュする段階と を備え, 前記フラッシュする段階は, 前記フラッシュされる前記複数のキャッシュラインの前記先頭アドレスに対応付けられている第1のキャッシュラインをフラッシュする段階と, 前記第2のレジスタに格納されている前記カウンタ値をデクリメントする段階と, フラッシュされるべき第2のキャッシュラインの第2のアドレスのうち少なくとも一部分を含むように前記第1のレジスタを更新する段階と, 前記第2のキャッシュラインをフラッシュする段階と を有し, 前記単一の命令は,即値である前記カウンタ値を含む特権命令である 方法。」 (3)引用文献に記載の事項 ア.原審における平成28年9月13日付けの拒絶理由(以下,これを「原審拒絶理由」という)おいて引用された,本願の原出願の第1国出願前に既に公知である,特開2001-134490号公報(2001年5月18日公開,以下,これを「引用文献1」という)には,関連する図面と共に,次の事項が記載されている。 A.「【請求項6】 キャッシュブロックから構成されるキャッシュメモリを含む計算機であって, 指定されたアドレス領域に含まれるアドレスを持つデータを記憶している前記キャッシュブロックを,供給される命令に応じて一律に無効化する制御部を備えたことを特徴とする計算機。」 B.「【0034】そして,上記単一レジスタストア命令の命令形式は,図7に示される。すなわち図7に示されるように,単一レジスタストア命令の命令形式は,一つのレジスタからのストアが規定される命令コードOP-CODE と,アドレスを指定するアドレス指定フィールドADと,書き込むデータが格納されているレジスタを指定するレジスタ指定フィールドREG とを含む。 【0035】一方,複数レジスタストア命令の命令形式は,図4に示されるロック/アンロック命令の命令形式と同様である。すなわち複数レジスタストア命令は,複数のレジスタからのストア命令が規定される命令コードOP-CODE と,アドレスを指定するアドレス指定フィールドADと,アドレス領域のサイズを指定する領域サイズ指定フィールドSIZEとを含む。 (プリロード命令について)プリロード命令が実行部13で実行された場合には,キャッシュ制御部30に含まれるプリロード制御部33へプリロードの対象とする先頭アドレスと,プリロードの対象とするアドレス領域のサイズが供給される。そして,この先頭アドレスはアドレスレジスタ45を介して比較器12に供給されるが,先頭アドレスは加算部43においてキャッシュブロックサイズ規定部41が規定する1キャッシュブロックのアドレスへ順次加算される。従って,比較器12は,ロード対象とするアドレスを1キャッシュブロック毎にスキャンし,順次タグTAGに格納されたアドレスと比較する。」 C.「【0043】以上のような命令によれば,メインメモリ7へのデータのポストストアと該キャッシュブロックのアンロックとが一命令の実行により実現されるため,動作の効率を高めることができる。ここでさらに上記命令においては,アンロック指定が可能なものとすることもできる。すなわち,命令形式の面においては図5に示された命令形式と同様に,アンロックを行うか否かを指定するアンロック指定フィールドを設ける。そして,ポストストアの対象とするデータがキャッシュメモリ10内のいずれかのキャッシュブロックに格納されている場合には,アンロック指定があるときに該データをメインメモリ7に書き戻して有効フラグVを0にすると共に,ロックフラグLを0にする(アンロックする)。また,このときアンロック指定がない場合には該データをメインメモリ7に書き戻し,有効フラグVを0にする。一方,ポストストアの対象とするデータがキャッシュメモリ10内に格納されていない場合には,対応する動作は何もしない。 (フラッシュ命令について)フラッシュ命令が実行部13で実行された場合には,キャッシュ制御部30に含まれるフラッシュ制御部35へフラッシュの対象とする先頭アドレスと,フラッシュの対象とするアドレス領域のサイズが供給される。そして,この先頭アドレスはアドレスレジスタ45を介して比較器12に供給されるが,先頭アドレスは加算部43においてキャッシュブロックサイズ規定部41が規定する1キャッシュブロック分のアドレスへ順次加算される。従って比較器12は,フラッシュの対象とするアドレスを1キャッシュブロック毎にスキャンし,順次タグTAGに格納されたアドレスと比較する。 【0044】一方,フラッシュの対象とするアドレス領域のサイズは,サイズレジスタ47及び比較器42を介してフラッシュ制御部35へ供給され,所定のアドレス領域をスキャンするときにおいてのみ,フラッシュ制御部35が活性化される。なお,サイズレジスタ47から出力されたアドレス領域のサイズは,上記1キャッシュブロックのスキャン毎に,1キャッシュブロック分のサイズに応じて順次減算部44で減算される。 【0045】そして,フラッシュするアドレス領域がまだ残っていると比較器42で判断される場合に,フラッシュ制御部35が活性化される。なお,フラッシュするアドレス領域の上記スキャンが全て終了したと比較器42で判断された場合には,比較器42は完了信号を実行部13に供給する。上記における比較器12での比較の結果,フラッシュ対象とするアドレスとタグTAGに格納されたアドレスとが一致(キャッシュヒット)した場合には,キャッシュヒットしたことを通知する信号がフラッシュ制御部35へ供給される。これによりフラッシュ制御部35は,キャッシュヒットしたキャッシュブロックのロックフラグLの値が0でかつ変更フラグMの値が1であるときにだけ,該キャッシュブロックのキャッシュブロックデータDATAをメインメモリ7に書き戻し,有効フラグVは1にしたままにする。なお,いずれのキャッシュブロックB1?B8からもキャッシュミスを通知する信号が供給された場合には,フラッシュ制御部35は対応する動作を行わない。 【0046】従って,このようなフラッシュ命令を実行することにより,指定したアドレス領域に含まれるアドレスに対応したキャッシュブロックデータDATAをメインメモリ7へ一括して書き戻すことができるため,実行すべき命令の数を減少させ動作の効率を高めることができる。なお,上記フラッシュ命令は,上記アンロック命令の動作を伴ってもよい。そしてこのとき,フラッシュの対象とするデータがキャッシュメモリ10内のいずれかのキャッシュブロックに格納されている場合には,該データをメインメモリ7に書き戻した上で,該有効フラグVを1にしたままロックフラグLを0に(アンロック)する。一方,ポストストアの対象とするデータがキャッシュメモリ10内に格納されていない場合には,対応する動作は何も行わない。」 イ.原審拒絶理由に引用された,本願の原出願の第1国出願前に既に公知である,「うさぴょん,デバッガによるx86プログラム解析入門,2007年 7月15日,第1版,pp.40-41」(以下,これを「引用文献2」という)には,関連する図面と共に,次の事項が記載されている。 D.「>>LEA命令 「Load Effective Address」の略です。ソースオペランドの内容を演算した上で,その結果をディスティネーションオペランドに転送します。実際にはこの命令で処理できるのは有効なアドレスに限定されておらず,演算処理に使用されることもあります。 >LEA命令の使用例(アスタリスクは乗算を意味する) LEA EAX,[EBX+ECX*4] >>ストリング操作命令とリピートプリフィックス ストリング操作命令とはデータブロックを扱うための命令で,リピートプリフィックスは繰り返し処理を行うための命令です。基本的に両者はセットで使用され,使用時にはESIレジスタに処理を行う元データのアドレス,EDIレジスタには処理を行う先データのアドレス,ECXレジスタには繰り返し処理の回数を格納して指定します。 >主なストリング操作命令 名前 機能 MOVSB/MOVSW/MOVSD Byte/Word/DWord単位でのデータブロックの転送 CMPSB/CMPSW/CMPSD Byte/Word/DWord単位でのデータブロックの比較 >主なストリング操作命令とリピートプリフィックスの組み合わせ 名前 機能 REP MOVSD命令などのストリング操作命令を1回実行するたびに ECXレジスタをデクリメント(-1)し,ECXレジスタが ゼロになるまで処理を繰り返す REPE CMPSB/CMPSW/CMPSD命令を1回実行するたびにECXレジスタ をデクリメント-1)し,ECXレジスタが ゼロかゼロフラグが0になるまで処理を繰り返す (不一致検出) REPNE CMPSB/CMPSW/CMPSD命令を1回実行するたびに ECXレジスタをデクリメント(-1)し,ECXレジスタが ゼロかゼロフラグが1になるまで処理を繰り返す (一致検出) >ストリング操作命令の使用例 MOV ESI, 402150 MOV EDI, 405000 MOV ECX, 20 CLD REP MOVSD |REP MOVSD|で行われている処理の内容 アドレス402150からアドレス405000へ4バイト転送,ECXをOxlFに アドレス402154からアドレス405004へ4バイト転送,ECXをOxlEに アドレス402158からアドレス405008へ4バイト転送,ECXをOxlDに アドレス40215Cからアドレス40500Cへ4バイト転送,ECXをOxlCに アドレス402150からアドレス405000へDWord(4バイト)単位で0X20回データを転送する。1回データが転送されるたびに,ESIレジスタとEDIレジスタの格納値はそれぞれDWord分(4バイト)で4回インクリメント(+1)され,ECXレジスタは1回デクリメント(-1)される。CLD命令は繰り返し処理に伴いESIレジスタとEDIレジスタをインクリメントするかデクリメントするか決定するための,EFLAGSレジスタ内にあるディレクションフラグを設定する命令で,このフラグをCLD命令で0にすればインクリメントで,STD命令で1にすればデクリメントとなる。」(40頁7行?41頁末行) ウ.原審拒絶理由に引用された,本願の原出願の第1国出願前に既に公知である,特開平08-166880号公報(1996年6月25日公開,以下,これを「引用文献3」という)には,関連する図面と共に,次の事項が記載されている。 E.「【0124】<<第2の実施例>> <原理>従来のコンピュータは図16のようにしてfor 文のような繰り返し処理を実行している。図16で示す命令4のaddiのような加算命令や命令5のbne のような比較命令は非常に時間を必要とする処理であり,1個の命令で加算してその後比較するような処理をコンピュータが同時にまとめて実行することはなかった。 【0125】ところが,このような加算してその後比較するような処理をまとめて実行できる新しい回路をもつコンピュータについて“Evaluation of A+B=K Conditions Without Carry Propagation,”JCS,Vol.41,No.11,pp1484に記述されている。この論文の方法を利用すれば,加算して比較する処理を併せて高速に(通常の比較回路と同等の速度で)実行することができるようになる。したがって,この2つの命令を1つの命令として実行することができる。すなわち命令実行数が減少するので,高性能なコンピュータを得ることができる。 【0126】しかし,ここで問題が発生する。たとえば,上記のような組み合わせた命令をaddibne 命令として,R3000の方式にしたがってマシン語を作成してみると図4のようになる。図4で命令4がaddibne 命令である。最初の6ビットがaddibne 命令を表わす命令コードで,次の5ビットが加算されて書き込まれるレジスタ$28を表わし,次の5ビットが加算されるために読み出されるレジスタ$28を表わし,次の5ビットが比較されるデータを保持しているレジスタ$30を表わし,次の16ビットが加算される数である“1”を表わし,最後の16ビットが分岐先のアドレスである“-1”を表わしている。 【0127】このとき図4から明らかなようにこの新規の命令のマシン語が53ビットとなり,他の32ビットのこれまでの命令のビット数と異なってしまう。このように他の命令とビット数が異なる新規の命令を追加することは,極めて非実用的である。 【0128】無理に使用しようとすれば,加算される数の大きさをもともとは16ビットであったものを小さく制限したり,分岐先を求めるために加算される数をもともとは16ビットであったものを小さく制限したりする必要が出てくる。そうするともともとのコンピュータで処理できていた命令が処理できなくなる場合が発生する。加算される数の大きさは後で述べるように小さな値でもかまわないが,たとえ1ビットに加算される数にビット数を制限しても,addibine命令の総ビット数は32ビットを越えてしまう。 【0129】これを解決するために,命令内で指定する要素を減らすことを考える。このaddibine命令で利用するレジスタを暗黙的に決めておくことで,addibine命令内で指定しなければいけない要素を減らすことができ,命令を32ビット以内のビット数に制限し,上記問題を解決することができる。 【0130】このaddibne 命令では,連続的に一定の値を加算される加算用レジスタと加算された後のレジスタの値を比較する参照データを保持する参照用レジスタが必要であるが,このレジスタを暗黙的にその番号を決めておく。これは,スタックポインタレジスタが$29であったり,リンクレジスタが$31と決められているのと同じ要領である。たとえば,回数をカウントしている値を保持している加算用レジスタは$28,比較される参照データを保持している参照用レジスタは$30というように決めることである。 【0131】しかし,このレジスタの固定はaddibne 命令に限ってだけであり,この$28と$30のレジスタはほかの命令では通常レジスタと同じように使用できる。 【0132】このようにaddibne 命令が暗黙的にレジスタ番号を指定できるようにしておくと,この新規な命令を使用したfor 文の命令列は図5のようになる。図5で命令4がaddibne 命令を示しているが,最初の6ビットがaddibne 命令を表わし,次の5ビットとその次の5ビットとが加算用レジスタ$28に加算される値1を表わし,最後の16ビットが分岐先のアドレスである値-1を表わしている。 【0133】従来の命令列では,加算される値が16ビットの数まで指定可能であったが,本発明では加算する値は10ビットまでと小さくなっている。したがって,従来の命令列を本発明の命令列に変換できない場合が存在する。しかし,この加算する値は通常では回数をカウントするために加算していくので,その多くは“1”と“-1”と考えられる。プログラム上で奇数をカウントしたり,偶数をカウントしたりする場合に,加算する値が“2”と“-2”である場合なども考えられるがそんなに大きな値がよく使用されるとは常識的に考えられない。したがって人間が作るプログラムから考えて10ビットで指定できる大きさで実用上十分である。 【0134】また,どうしても新しいaddibne 命令の使用で問題が発生する命令列の場合では,第1の実施例同様,変換できない命令列は従来の命令列で実行することが可能(本発明で従来のコンピュータの機能には何ら変更がなされていない)であるのでこのビット数が小さくなることは問題とはならない。プログラムの性質上,多く利用されるfor 文では十分なビット数である。 【0135】<構成>図5のような命令を処理するこの発明の第2の実施例であるコンピュータのハードウェア構成を図6に示す。図6において,1はレジスタファイル,2はALU,3はアドレス加算器,4はプログラムカウンタ,5は制御回路(命令デコーダを含む)である。ここでシフト回路や乗算回路のような演算に関係するものはすべてALU2に含まれているとする。また,6a,6bはレジスタファイル30より読み出したレジスタ(の格納)データ,7a,7bは制御回路から出力される制御データ,8はALUの演算結果,9はプログラムカウンタ4から出力されるプログラムカウント値,すなわち命令メモリのアドレス値,CMDは命令メモリの出力信号すなわちこのコンピュータを動作させる命令,11はアドレス加算器の演算結果すなわちデータメモリのアドレス値である。18は命令語の中に記述されている書き込むレジスタの番号を示す書き込みレジスタアドレス信号,16a,16bは命令語の中に記述されている読み出すレジスタの番号を示す読み出しレジスタアドレス信号である。103はaddibne命令を意味する特殊命令信号であり,命令CMDがaddibne命令でを指示する場合に“H”となる信号である。」 エ.原審拒絶理由に引用された,本願の原出願の第1国出願前に既に公知である,特開2008-283672号公報(2008年11月20日公開,以下,これを「引用文献4」という)には,関連する図面と共に,次の事項が記載されている。 F.「【0033】 図4は,ECBモードでAESENCRYPT310を使うための例示的なコード(たとえば,プロセッサ190によって実行されたときに方法をなすもの)410を示している。まず,暗号鍵が暗黙的レジスタXMM0の一つにロードされる(MOV命令または同様の命令を介して)。次いで値(たとえば16)が別のレジスタECXにロードされうる(MOV命令または同様の命令を介して)。これはAES暗号化すべき平文の128ビット・ブロックの数をセットするためである。この値に128ビットを乗算したものがコード410によって暗号化されるべき平文の全長さを指定しうる。そのような初期化後,AESENCRYPT310を含むループがECX回実行されうる。」 オ.本願の原出願の第1国出願前に既に公知である,特開2004-038798号公報(2004年2月5日公開,以下,これを「周知文献1」という)には,関連する図面と共に,次の事項が記載されている。 G.「【請求項2】 前記掃き出し命令生成部は,前記キャッシュフラッシュモードでのキャッシュ掃き出しのためのフェッチリクエストの発行回数をカウントするリクエストカウンタを備えており,キャッシュのすべてのデータのフラッシュが完了する回数に達した時点で,掃き出し完了を前記命令制御部及び前記キャッシュに報告することを特徴とする,請求項1記載の縮退制御装置。 【請求項3】 前記掃き出しアドレス生成部は,作業用アドレスレジスタと有効アドレス演算器とを備えており,キャッシュフラッシュモード開始の信号により,キャッシュサイズを越えるメモリアクセス禁止領域のアドレスを,掃き出しアドレスの初期ベースアドレスとして前記作業用アドレスレジスタに格納することを特徴とする,請求項1記載の縮退制御装置。 【請求項4】 前記掃き出し命令生成部において,キャッシュブロックサイズ値を即値データに用い,作業用レジスタと前記即値データとを加算して得られたアドレスに対するフェッチリクエストを生成することを特徴とする,請求項1,4記載の縮退制御装置。」 H.「【0049】 キャッシュサイズをすべて網羅するメモリアドレスは,まずCPUコア43内の命令制御部51が要求を受けたときに,作業用アドレスレジスタ(WAR)55にメモリアクセス禁止領域のアドレスを初期ベースアドレスとして用意し,即値データにはブロックサイズ(図7の例では64バイト)を指定して,作業用アドレスレジスタ(WAR)55の内容と即値データとの和を有効アドレス演算器(EAG)56で生成する。発行するフェッチ要求アドレスは次のベースアドレスとして有効アドレス演算器(EAG)56にセットし直し,ウェイのブロックサイズを示す即値データに加算して次のアドレスを生成する。この動作を(キャッシュの容量÷キャッシュのウェイのブロックサイズ)回だけ繰り返す。」 カ.本願の原出願の第1国出願前に既に公知である,特開2004-326758号公報(2004年11月18日公開,以下,これを「周知文献2」という)には,関連する図面と共に,次の事項が記載されている。 I.「【0023】 本発明は,従来型のキャッシュ管理方法および命令に関連する問題に対処する選択的ローカル・キャッシュ管理技術を提供する。図4を参照すると,本発明の一実施形態によるLCBF命令を実行する概念的方法130を説明する流れ図が示されている。図示した実施形態では,LCBF命令はアドレスを決定する(ブロック131)。一実施形態では,プロセッサは命令実行中に有効アドレスを使用し,次いでキャッシュ・メモリにアクセスする際には有効アドレスを実際のアドレスへ翻訳またはマップする。図2および図3の説明に合わせて,有効アドレスはキャッシュ・アクセス機構の一部として実際のアドレスにマップすることができるという理解の下に,図4の流れ図を有効アドレスについて説明することにする。 【0024】 特定のLCBF命令の実施態様が2つの汎用レジスタ・オペランドを含む場合,EAはその2つのオペランドの和となる場合がある。他の実施態様では,他の周知のアドレッシング方法を組み込むために,EAが命令で明示的に示されるLCBF即値,命令によって参照される指定されたメモリ位置にアドレスのあるメモリ位置の内容によってEAが決定される間接LCBF(LCBF indirect)などのようなLCBFの置換がある場合がある。」 キ.本願の原出願の第1国出願前に既に公知である,特開2005-346457号公報(2005年12月15日公開,以下,これを「周知文献3」という)には,関連する図面と共に,次の事項が記載されている。 J.「【0009】 第3は「キャッシュ操作問題」というものである。これは,メモリ領域の書き込みの速度を速めるためにキャッシュを無効にする命令が,ユーザプロセスから直接に使用できない特権命令であることによるものである。例えば,プリンタの描画処理等で大きなメモリ領域のコピーやクリア等を行う場合,書き込み先のキャッシュの内容をcache命令を使ってinvalidにしておくことによって速度が上げられるのだが,cache命令は特権命令なのでユーザプロセスで実行することができず,通常のキャッシュが効いている場合に行われるwrite allocate処理(メモリの内容をキャッシュライン単位でキャッシュに読み出す処理)が行われてしまい,新たなデータのコピーもしくはデータのクリアによって無駄となるデータの読み出しが行われることで,速度が落ちてしまうものである。」 ク.本願の原出願の第1国出願前に既に公知である,特開2002-007212号公報(2002年1月11日公開,以下,これを「周知文献4」という)には,関連する図面と共に,次の事項が記載されている。 K.「【0023】この手法は,素朴な実現では,キャッシュをフラッシュする命令を使って,命令キャッシュ及びデータ・キャッシュをともにフラッシュすることで,正しい内容をメイン・メモリから読み出すようにプロセッサを強制させるようにすればよい。 【0024】また,米国特許第5,909,698号明細書(cache block store instruction operations where cache coherency is achieved without writing all theway back to main memory)には,その改良方法として,キャッシュ・フラッシュ用命令の動作を修正して,マルチプロセッサなどで必要な場合以外は,メイン・メモリには書き戻さず,番地の一致する命令キャッシュを更新するだけにすることが挙げられている。 【0025】上述した各従来技術によれば,確かにキャッシュ-メイン・メモリ間のデータの整合性に関する問題を解決することができる。しかしながら,米国特許第5,909,698号明細書に開示された方法を除いては,時間的なコストを相当程度要してしまう。 【0026】また,米国特許第5,909,698号明細書に係る方法に関しては,キャッシュ・メモリを制御する命令がほとんどのプロセッサにおいて特権命令(オペレーティング・システムだけが使用できる命令)であるという問題がある。すなわち,ユーザ・プログラムからその機能を使用する場合には,オペレーティング・システムのサポートを必要とし,これがさらなる時間的コストを消費することになる。」 ケ.本願の原出願の第1国出願前に既に公知である,特開2009-245216号公報(2009年10月22日公開,以下,これを「周知文献5」という)には,関連する図面と共に,次の事項が記載されている。 L.「【0062】 invlpg命令(特権命令)を実行すると,一般保護例外が発生し,仮想マシンモニタへ制御が渡り,out of sync list の内容をSPTに反映し,ゲストOSのPTEにマップされる仮想マシンモニタXenのSPTEを再び無効にする。」 (4)引用文献に記載の発明 ア.上記Aの「指定されたアドレス領域に含まれるアドレスを持つデータを記憶している前記キャッシュブロックを,供給される命令に応じて一律に無効化する」という記載と,上記Cの「(フラッシュ命令について)フラッシュ命令が実行部13で実行された場合には」という記載から,引用文献1は, “指定されたアドレス領域に含まれるアドレスを持つデータを記憶しているキャッシュブロックを,供給される命令に応じて一律にフラッシュする方法” について言及されていることが読み取れる。 イ.上記Bの「複数のレジスタからのストア命令が規定される命令コードOP-CODE と,アドレスを指定するアドレス指定フィールドADと,アドレス領域のサイズを指定する領域サイズ指定フィールドSIZEとを含む」という記載,上記ア.において引用した上記Cの記載内容,同じく,上記Cの「キャッシュ制御部30に含まれるフラッシュ制御部35へフラッシュの対象とする先頭アドレスと,フラッシュの対象とするアドレス領域のサイズが供給される。そして,この先頭アドレスはアドレスレジスタ45を介して比較器12に供給される」という記載,及び,同じく,上記Cの「フラッシュの対象とするアドレス領域のサイズは,サイズレジスタ47及び比較器42を介してフラッシュ制御部35へ供給され」という記載から,引用文献1においては, “キャッシュブロックを一律にフラッシュするフラッシュ命令が規定される命令コードOP-CODEと,フラッシュ対象とする先頭アドレスを指定するアドレス指定フィールドADと,フラッシュ対象とするアドレス領域のサイズを指定する領域指定フィールドSIZEとを含むフラッシュ命令が実行された場合は,前記フラッシュの対象とする先頭アドレスが,アドレスレジスタに供給され,前記フラッシュの対象とするアドレス領域のサイズが,サイズレジスタに供給される” ものであることが読み取れる。 ウ.上記Cの「先頭アドレスは加算部43においてキャッシュブロックサイズ規定部41が規定する1キャッシュブロック分のアドレスへ順次加算される。従って比較器12は,フラッシュの対象とするアドレスを1キャッシュブロック毎にスキャンし」という記載,同じく,上記Cの「サイズレジスタ47から出力されたアドレス領域のサイズは,上記1キャッシュブロックのスキャン毎に,1キャッシュブロック分のサイズに応じて順次減算部44で減算される」という記載,及び,同じく,上記Cの「フラッシュするアドレス領域がまだ残っていると比較器42で判断される場合に,フラッシュ制御部35が活性化される」という記載と,上記ア.,イ.において検討した事項から,引用文献1においては, “先頭アドレスから1キャッシュブロック分のキャッシュブロックをフラッシュし,アドレス領域のサイズを1キャッシュブロック分減算し,先頭アドレスに1キャッシュブロック分のアドレスを加算し,得られたアドレスから,1キャッシュブロック分のキャッシュをフラッシュブロックし,フラッシュするアドレス領域がなくなるまで,前記処理を繰り返す”ものであることが読み取れる。 エ.以上,上記ア.?ウ.において検討した事項から,引用文献1には,次の発明(以下,これを「引用発明」という)が記載されているものと認める。 「指定されたアドレス領域に含まれるアドレスを持つデータを記憶しているキャッシュブロックを,供給される命令に応じて一律にフラッシュする方法であって, 前記キャッシュブロックを一律にフラッシュするフラッシュ命令が規定される命令コードOP-CODEと,フラッシュ対象とする先頭アドレスを指定するアドレス指定フィールドADと,フラッシュ対象とするアドレス領域のサイズを指定する領域指定フィールドSIZEとを含むフラッシュ命令が実行された場合に, 前記フラッシュの対象とする先頭アドレスが,アドレスレジスタに供給され, 前記フラッシュの対象とするアドレス領域のサイズが,サイズレジスタに供給され, 前記先頭アドレスから1キャッシュブロック分のキャッシュブロックをフラッシュし, 前記アドレス領域のサイズを1キャッシュブロック分減算し, 前記先頭アドレスに1キャッシュブロック分のアドレスを加算し, 得られたアドレスから,1キャッシュブロック分のキャッシュブロックをフラッシュし, フラッシュするアドレス領域がなくなるまで,前記処理を繰り返す,方法。」 (5)本件補正発明と引用発明との対比 ア.引用発明における「キャッシュブロック」,「供給される命令」が, 本件補正発明における「複数のキャッシュライン」,「単一の命令」に相当するので, 引用発明における「指定されたアドレス領域に含まれるアドレスを持つデータを記憶しているキャッシュブロックを,供給される命令に応じて一律にフラッシュする方法」が, 本件補正発明における「プロセッサの複数のキャッシュラインをフラッシュする方法」に相当する。 イ.引用発明における「アドレスレジスタ」,「サイズレジスタ」が,それぞれ, 本件補正発明における「第1のレジスタ」,「第2のレジスタ」に相当し, 引用発明における「フラッシュの対象とするアドレス領域のサイズ」と, 本件補正発明における「カウンタ値」とは, “フラッシュ領域を示す値”である点で共通するので, 引用発明における「フラッシュの対象とする先頭アドレスが,アドレスレジスタに供給され」が, 本件補正発明における「フラッシュされる前記複数のキャッシュラインの先頭アドレスの少なくとも一部分を第1のレジスタにロードする段階」に相当し, 引用発明における「フラッシュの対象とするアドレス領域のサイズが,サイズレジスタに供給され」と, 本件補正発明における「フラッシュされるキャッシュラインの数を表すカウンタ値を第2のレジスタにロードする段階」とは, “フラッシュ領域を示す値を第2のレジスタにロードする段階”である点で共通する。 ウ.引用発明における「キャッシュブロックを一律にフラッシュするフラッシュ命令が規定される命令コードOP-CODE」が, 本件補正発明における「プロセッサの前記複数のキャッシュラインがフラッシュされる旨を示す第1のフィールド」に相当し, 引用発明において,「フラッシュ対象とする先頭アドレスを指定するアドレス指定フィールドAD」とは,明示的に「先頭アドレスを指定する」ことを意味するものであるから, 引用発明における「フラッシュ対象とする先頭アドレスを指定するアドレス指定フィールドAD」と, 本件補正発明における「フラッシュされる前記複数のキャッシュラインの前記先頭アドレスを非明示的に提供する」こととは, “フラッシュされる複数のキャッシュラインの先頭アドレスを提供する”点で共通し, 引用発明も,「供給される命令に応じて一律にフラッシュする方法」であるから,「供給される命令」を受信していることが明らかであるので, 引用発明における「キャッシュブロックを一律にフラッシュするフラッシュ命令が規定される命令コードOP-CODEと,フラッシュ対象とする先頭アドレスを指定するアドレス指定フィールドADと,フラッシュ対象とするアドレス領域のサイズを指定する領域指定フィールドSIZEとを含むフラッシュ命令が実行され」と, 本件補正発明における「プロセッサの前記複数のキャッシュラインがフラッシュされる旨を示す第1のフィールドを含み,前記フラッシュされる前記複数のキャッシュラインの前記先頭アドレスを非明示的に提供する単一の命令を受信する段階」とは, “プロセッサの複数のキャッシュラインがフラッシュされる旨を示す第1のフィールドを含み,前記フラッシュされる前記複数のキャッシュラインの先頭アドレスを提供する単一の命令を受信する段階”である点で共通する。 エ.引用発明も,「指定されたアドレス領域に含まれるアドレスを持つデータを記憶しているキャッシュブロックを,供給される命令に応じて一律にフラッシュする」ものであるから,上記ウ.において検討した事項を踏まえれば, 引用発明においても, 本件補正発明における“単一の命令に応じて,プロセッサの複数のキャッシュラインをフラッシュする段階”が存在していることは明らかである。 オ.引用発明における「先頭アドレスから1キャッシュブロック分のキャッシュブロック」が, 本件補正発明における「先頭アドレスに対応付けられている第1のキャッシュライン」に相当するので, 引用発明における「先頭アドレスから1キャッシュブロック分のキャッシュブロックをフラッシュし」が, 本件補正発明における「フラッシュされる前記複数のキャッシュラインの前記先頭アドレスに対応付けられている第1のキャッシュラインをフラッシュする段階」に相当する。 カ.引用発明における「アドレス領域のサイズを1キャッシュブロック分減算」することと, 本件補正発明における「第2のレジスタに格納されている前記カウンタ値をデクリメントする段階」とは, “第2のレジスタに格納されているフラッシュ領域を示す値をデクリメントする段階”である点で共通する。 キ.引用発明において,「先頭アドレスに1キャッシュブロック分のアドレスを加算」することは,「アドレスレジスタ」の値を,次のキャッシュブロックの先頭のアドレスとすることに他ならないので, 引用発明における「先頭アドレスに1キャッシュブロック分のアドレスを加算し」が, 本件補正発明における「フラッシュされるべき第2のキャッシュラインの第2のアドレスのうち少なくとも一部分を含むように前記第1のレジスタを更新する段階」に相当する。 ク.引用発明における「得られたアドレスから,1キャッシュブロック分のキャッシュブロックをフラッシュし」が, 本件補正発明における「第2のキャッシュラインをフラッシュする段階」に相当する。 ケ.以上,上記ア.?ク.において検討した事項から,本件補正発明と,引用発明との一致点,及び,相違点は,次のとおりである。 [一致点] プロセッサの複数のキャッシュラインをフラッシュする方法であって, フラッシュされる前記複数のキャッシュラインの先頭アドレスの少なくとも一部分を第1のレジスタにロードする段階と, フラッシュ領域を示す値を第2のレジスタにロードする段階と, プロセッサの複数のキャッシュラインがフラッシュされる旨を示す第1のフィールドを含み,前記フラッシュされる前記複数のキャッシュラインの先頭アドレスを提供する単一の命令を受信する段階と, 前記単一の命令に応じて,前記プロセッサの複数のキャッシュラインをフラッシュする段階と を備え, 前記フラッシュする段階は, 前記フラッシュされる前記複数のキャッシュラインの前記先頭アドレスに対応付けられている第1のキャッシュラインをフラッシュする段階と, 第2のレジスタに格納されているフラッシュ領域を示す値をデクリメントする段階と, フラッシュされるべき第2のキャッシュラインの第2のアドレスのうち少なくとも一部分を含むように前記第1のレジスタを更新する段階と, 第2のキャッシュラインをフラッシュする段階を有する,方法。 [相違点1] “フラッシュ領域を示す値”に関して, 本件補正発明においては,「フラッシュされるキャッシュラインの数を表すカウンタ値」であるのに対して, 引用発明においては,「フラッシュ対象とするアドレス領域のサイズ」である点。 [相違点2] “先頭アドレスを提供する”点に関して 本件補正発明においては,「先頭アドレスを非明示的に提供する」のに対して, 引用発明においては,「フラッシュ命令」中に,「フラッシュ対象とする先頭アドレスを指定するアドレス指定フィールドAD」とあるように,明示的に提供している点。 [相違点3] “フラッシュ領域を示す値をデクリメントする”点に関して, 本件補正発明においては,「カウンタ値をデクリメントする」ものであるに対して, 引用発明においては,「アドレス領域のサイズを1キャッシュブロック分減算」するものである点。 [相違点4] 本件補正発明においては,「単一の命令は,即値である前記カウンタ値を含む特権命令である」のに対して, 引用発明においては,そのような言及がない点。 (6)相違点についての当審の判断 ア.[相違点1],及び,[相違点3]について 命令が処理する領域等を与える場合に,アドレス領域に替えて,処理が終了するまで回数(本件補正発明における「カウンタ値」に相当)とすることは,本願の原出願の第1国出願前に,当業者にとっては周知の技術事項である。 カウンタ値を採用すれば,命令が終了するまで,当該カウンタ値から,処理回数を減算することも,当業者には,周知の技術事項である(必要であれば,上記Gに引用した,周知文献1の【請求項2】を参照されたい)。 したがって,引用発明においても,「フラッシュの対象とするアドレス領域のサイズ」に替えて,「フラッシュされるキャッシュラインの数を表すカウンタ値」を採用し(相違点1),当該「カウンタ値」を「フラッシュ」を行う度に減算する(相違点3)よう構成することは,当業者が適宜なし得る事項である。 よって,[相違点1],及び,[相違点3]は,格別のものではない。 イ.[相違点2]について 命令が実行に用いる値を,非明示的に提供することは,上記Dに引用した引用文献2,上記Eに引用した引用文献3,及び,上記Fに引用した引用文献4の記載内容にもあるとおり,本願の原出願の第1国出願前に,当業者には周知の技術事項である。 したがって,引用発明において,「先頭アドレス」を非明示的に提供するよう構成することは,当業者が適宜なし得る事項である。 よって,[相違点2]は,格別のものではない。 ウ.[相違点4]について 命令にデータを「即値」として与えることは,本願の原出願の第1国出願前に,当業者には周知の技術事項である(必要であれば,上記G,及び,上記Hに引用した,周知文献1の【請求項4】,段落【0049】の記載,上記Iに引用した,周知文献2の段落【0024】の記載等を参照されたい)。 したがって,引用発明においても,上記ア.において検討した事項を踏まえて,「アドレス領域のサイズ」を,「カウンタ値」とし,当該「カウンタ値」を「即値」とすることは,当業者が適宜なし得る事項である。 また,キャッシュをフラッシュする命令を特権命令とすることも,本願の原出願の第1国出願前,当業者には周知の技術事項である(必要であれば,上記Jに引用した周知文献3の段落【0009】の記載,上記Kに引用した周知文献4の,特に,段落【0026】の記載,上記Lに引用した周知文献5の段落【0062】の記載等を参照されたい)。 よって,[相違点4]は,格別のものではない。 エ.以上,上記ア.?ウ.において検討したとおり,[相違点1]?[相違点4]は格別のものではなく,そして,本件補正発明の構成によってもたらされる効果も,当業者であれば当然に予測可能なものに過ぎず格別なものとは認められない。 よって,本件補正発明は,引用発明と,引用文献2?引用文献4,及び,周知文献1?周知文献5に記載の周知技術に基づいて当業者が容易に発明をすることができたものであるので,特許法第29条第2項の規定により特許出願の際,独立して特許を受けることができない。 3.補正却下むすび したがって,本件手続補正は,特許法第17条の2第6項において準用する同法第126条第7項の規定に違反するので,同法第159条第1項の規定において読み替えて準用する同法第53条第1項の規定により却下すべきものである。 よって,補正却下の決定の結論のとおり決定する。 第3.本願発明について 平成29年9月29日付けの手続補正は,上記のとおり却下されたので,本願の請求項1に係る発明(以下,これを「本願発明」という)は,平成29年3月21日付けの手続補正により補正された特許請求の範囲の請求項1に記載された,上記「第2.平成29年9月29日付けの手続補正の却下の決定」の「1.補正の内容」において,補正前の請求項1として引用した,次のとおりのものである。 「プロセッサの複数のキャッシュラインをフラッシュする方法であって, フラッシュされる前記複数のキャッシュラインの先頭アドレスの少なくとも一部分を第1のレジスタにロードする段階と, フラッシュされるキャッシュラインの数を表すカウンタ値を第2のレジスタにロードする段階と, 前記プロセッサの前記複数のキャッシュラインがフラッシュされる旨を示す第1のフィールドを含み,前記フラッシュされる前記複数のキャッシュラインの前記先頭アドレスを非明示的に提供する単一の命令を受信する段階と, 前記単一の命令に応じて,前記プロセッサの前記複数のキャッシュラインをフラッシュする段階と を備え, 前記フラッシュする段階は, 前記フラッシュされる前記複数のキャッシュラインの前記先頭アドレスに対応付けられている第1のキャッシュラインをフラッシュする段階と, 前記第2のレジスタに格納されている前記カウンタ値をデクリメントする段階と, フラッシュされるべき第2のキャッシュラインの第2のアドレスのうち少なくとも一部分を含むように前記第1のレジスタを更新する段階と, 前記第2のキャッシュラインをフラッシュする段階と を有し, 前記単一の命令は,即値である前記カウンタ値を含む 方法。」 第4.引用刊行物に記載の発明 原審拒絶理由に引用され,上記「第2.平成29年9月29日付けの手続補正の却下の決定」の「2.補正の適否」における「(3)引用文献に記載の事項」において,引用文献1として引用された,特開2001-134490号公報(2001年5月18日公開)には,「2.補正の適否」における「(4)引用文献に記載の発明」において認定した次のとおりの引用発明が記載されている。 「指定されたアドレス領域に含まれるアドレスを持つデータを記憶しているキャッシュブロックを,供給される命令に応じて一律にフラッシュする方法であって, 前記キャッシュブロックを一律にフラッシュするフラッシュ命令が規定される命令コードOP-CODEと,フラッシュ対象とする先頭アドレスを指定するアドレス指定フィールドADと,フラッシュ対象とするアドレス領域のサイズを指定する領域指定フィールドSIZEとを含むフラッシュ命令が実行された場合に, 前記フラッシュの対象とする先頭アドレスが,アドレスレジスタに供給され, 前記フラッシュの対象とするアドレス領域のサイズが,サイズレジスタに供給され, 前記先頭アドレスから1キャッシュブロック分のキャッシュブロックをフラッシュし, 前記アドレス領域のサイズを1キャッシュブロック分減算し, 前記先頭アドレスに1キャッシュブロック分のアドレスを加算し, 得られたアドレスから,1キャッシュブロック分のキャッシュブロックをフラッシュし, フラッシュするアドレス領域がなくなるまで,前記処理を繰り返す,方法。」 第5.本願発明と引用発明との対比 本願発明は,本件補正発明から,“単一の命令は,特権命令である”という限定事項を取り除いたものであるから,本願発明と,引用発明との,一致点,及び,相違点は,次のとおりである。 [一致点] プロセッサの複数のキャッシュラインをフラッシュする方法であって, フラッシュされる前記複数のキャッシュラインの先頭アドレスの少なくとも一部分を第1のレジスタにロードする段階と, フラッシュ領域を示す値を第2のレジスタにロードする段階と, プロセッサの複数のキャッシュラインがフラッシュされる旨を示す第1のフィールドを含み,前記フラッシュされる前記複数のキャッシュラインの先頭アドレスを提供する単一の命令を受信する段階と, 前記単一の命令に応じて,前記プロセッサの複数のキャッシュラインをフラッシュする段階と を備え, 前記フラッシュする段階は, 前記フラッシュされる前記複数のキャッシュラインの前記先頭アドレスに対応付けられている第1のキャッシュラインをフラッシュする段階と, 第2のレジスタに格納されているフラッシュ領域を示す値をデクリメントする段階と, フラッシュされるべき第2のキャッシュラインの第2のアドレスのうち少なくとも一部分を含むように前記第1のレジスタを更新する段階と, 第2のキャッシュラインをフラッシュする段階を有する,方法。 [相違点a] “フラッシュ領域を示す値”に関して, 本願発明においては,「フラッシュされるキャッシュラインの数を表すカウンタ値」であるのに対して, 引用発明においては,「フラッシュ対象とするアドレス領域のサイズ」である点。 [相違点b] “先頭アドレスを提供する”点に関して 本願発明においては,「先頭アドレスを非明示的に提供する」のに対して, 引用発明においては,「フラッシュ命令」中に,「フラッシュ対象とする先頭アドレスを指定するアドレス指定フィールドAD」とあるように,明示的に提供している点。 [相違点c] “フラッシュ領域を示す値をデクリメントする”点に関して, 本願発明においては,「カウンタ値をデクリメントする」ものであるに対して, 引用発明においては,「アドレス領域のサイズを1キャッシュブロック分減算」するものである点。 [相違点d] 本願発明においては,「単一の命令は,即値である前記カウンタ値を含む」のに対して, 引用発明においては,そのような言及がない点。 第6.相違点についての当審の判断 本願発明と,引用発明との[相違点a]?[相違点c]は,本件補正発明と,引用発明との[相違点1]?[相違点3]と同じものであり, 本願発明と,引用発明との[相違点d]は,本件補正発明と,引用発明との[相違点4]と,「特権命令」である点を除いて同じものであるから, 上記「第2.平成29年9月29日付けの手続補正の却下の決定」の「2.補正の適否」における「(6)相違点についての当審の判断」において検討したとおり,[相違点a]?[相違点d]は格別のものではない。 そして,本願発明の構成によってもたらされる効果も,当業者であれば容易に予測できる程度のものであって,格別なものとは認められない。 第7.むすび したがって,本願発明は,本願の特許出願前に日本国内又は外国において頒布された刊行物に記載された発明又は電気通信回線を通じて公衆に利用可能となった発明に基づいて当業者が容易に発明をすることができたものであるので,特許法第29条第2項の規定により特許を受けることができない。 よって,結論のとおり審決する。 |
別掲 |
|
審理終結日 | 2018-06-26 |
結審通知日 | 2018-07-03 |
審決日 | 2018-07-26 |
出願番号 | 特願2015-202(P2015-202) |
審決分類 |
P
1
8・
575-
Z
(G06F)
P 1 8・ 121- Z (G06F) |
最終処分 | 不成立 |
前審関与審査官 | 塚田 肇 |
特許庁審判長 |
仲間 晃 |
特許庁審判官 |
須田 勝巳 石井 茂和 |
発明の名称 | 方法および装置 |
代理人 | 龍華国際特許業務法人 |