• ポートフォリオ機能


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

  • この表をプリントする
PDF PDFをダウンロード
審決分類 審判 査定不服 2項進歩性 特許、登録しない。 G06F
管理番号 1207169
審判番号 不服2008-23446  
総通号数 121 
発行国 日本国特許庁(JP) 
公報種別 特許審決公報 
発行日 2010-01-29 
種別 拒絶査定不服の審決 
審判請求日 2008-09-11 
確定日 2009-11-12 
事件の表示 特願2007-180315「特殊機能を提供する高性能投機的実行プロセッサの構造及び方法」拒絶査定不服審判事件〔平成19年11月 1日出願公開、特開2007-287176〕について、次のとおり審決する。 
結論 本件審判の請求は、成り立たない。 
理由 第1.手続の経緯
本願は、パリ条約による10件の優先権主張(うち、最先のものは1995年2月14日(以下、「最先優先日」という。)、米国)を伴う、1996年2月13日(外国庁受理、米国)を国際出願日とする特願平8-525085号の一部を平成16年9月13日に新たな特許出願とした特願2004-265716号の一部を更に平成18年1月13日に新たな特許出願とした特願2006-6315号の一部を更に平成19年7月9日に新たな特許出願としたものであって、平成20年5月8日付けで拒絶理由通知がなされ、同年7月14日付けで手続補正がなされるとともに同日付けで意見書が提出されたが、平成20年8月6日付けで拒絶査定がなされ、これに対し同年9月11日付けで審判請求がなされるとともに同年10月14日付けで手続補正がなされ、同年10月31日付けで審査官から前置報告がなされ、平成21年1月19日付けで当審より審尋がなされ、平成21年3月23日付けで回答書が提出されたものである。

第2.平成20年10月14日付けの手続補正についての補正却下の決定
[補正却下の決定の結論]
平成20年10月14日付けの手続補正を却下する。

[補正却下の決定の理由]
1.補正の内容
平成20年10月14日付けの手続補正(以下「本件補正」という。)は、平成20年7月14日付けの手続補正により補正された特許請求の範囲(以下、「補正前の特許請求の範囲」という。)の記載

「【請求項1】
命令を格納する命令記憶手段と、
プログラムの順序に従って前記命令記憶手段に格納された命令を発行する命令発行手段と、
前記発行された命令の実行を行う命令実行手段と、
前記プログラム上で定義される論理レジスタと、
前記命令実行手段が前記発行された命令を実行する場合に使用する物理レジスタと、
前記論理レジスタを指定する論理レジスタ番号に対して前記物理レジスタを指定する物理レジスタ番号を対応付けることにより、前記論理レジスタと前記物理レジスタとの対応関係を表す情報を格納するリネームマップ記憶手段と、
前記論理レジスタと前記リネームマップ記憶手段の内容を記憶するチェックポイント実行が必要なチェックポイント命令と、中央処理ユニットの通常動作を停止させる例外処理を発生させる例外処理発生命令をデコードする命令デコード手段と、
前記命令発行手段が発行した命令が前記命令デコード手段により、チェックポイント命令であると識別された場合に、前記チェックポイント実行を行うチェックポイント実行手段と、
前記例外処理発生命令の実行により、前記例外処理が発生したことを検出する例外処理検出手段と、
前記チェックポイント命令の実行後に、前記命令デコード手段又は前記例外処理検出手段により例外処理が検出された場合に、前記リネームマップ記憶手段に格納された情報を用いて、前記通常動作の実行に必要な前記論理レジスタの内容を復元するバックアップ手段を有することを特徴とする中央処理ユニット。

【請求項2】
前記論理レジスタは、前記命令の実行対象が格納される論理ソースレジスタと前記命令の実行結果が格納される論理宛先レジスタを含むことを特徴とする請求項1記載の中央処理ユニット。

【請求項3】
前記論理レジスタは、前記論理レジスタを識別するための互いに固有の論理レジスタタグを有し、
前記物理レジスタは、前記物理レジスタを識別するための互いに固有の物理レジスタタグを有することを特徴とする請求項1又は2記載の中央処理ユニット。

【請求項4】
前記中央処理ユニットはさらに、
前記チェックポイント命令の実行後に、前記命令デコード手段又は前記例外処理検出手段により例外処理が検出された場合に、前記チェックポイント命令のアドレスと前記例外処理を発生させた命令の直前の命令のアドレスの差分であるバックステップ量をプログラムカウンタからデクリメントさせるバックステップ実行手段を有することを特徴とする請求項1?3のいずれか一項に記載の中央処理ユニット。

【請求項5】
前記例外処理発生命令は、自命令の次に実行する命令のアドレスが自命令のアドレスとは不連続である制御転送命令、条件付命令が実行に際して参照する制御レジスタの値を変更する制御レジスタ値変更命令、及び、トラップを発生させるトラップ命令のいずれかであることを特徴とする請求項1?4のいずれか一項に記載の中央処理ユニット。

【請求項6】
命令を格納する命令記憶手段と、
プログラムの順序に従って前記命令記憶手段に格納された命令を発行する命令発行手段と、
前記発行された命令の実行を行う命令実行手段と、
前記プログラム上で定義される論理レジスタと、
前記命令実行手段が前記発行された命令を実行する場合に使用する物理レジスタと、
前記論理レジスタを指定する論理レジスタ番号に対して前記物理レジスタを指定する物理レジスタ番号を対応付けることにより、前記論理レジスタと前記物理レジスタとの対応関係を表す情報を格納するリネームマップ記憶手段と、
前記論理レジスタと前記リネームマップ記憶手段の内容を記憶するチェックポイント実行が必要なチェックポイント命令をデコードする命令デコード手段と、
前記命令発行手段が発行した命令が前記命令デコード手段により、チェックポイント命令であると識別された場合に、前記チェックポイント実行の代わりに、中央処理ユニットの内部状態の同期を行う同期化実行手段と、
前記チェックポイント命令の実行後に、中央処理ユニットの通常動作を停止させる例外処理が発生した場合に、前記リネームマップ記憶手段に格納された情報を用いて、前記通常動作の実行に必要な前記論理レジスタの内容を復元するバックアップ手段を有することを特徴とする中央処理ユニット。

【請求項7】
命令を格納する命令記憶部と前記命令を発行する命令発行部と前記命令を実行する命令実行部とプログラム上で定義される論理レジスタに対応する物理レジスタとを有する中央処理ユニットの命令制御方法において、
前記命令記憶部が、命令を格納するステップと、
前記命令発行部が、プログラムの順序に従って前記命令記憶部に格納された命令を前記命令実行部に発行するステップと、
前記命令実行部が、前記発行された命令を実行するステップと、
前記論理レジスタを指定する論理レジスタ番号に対して前記物理レジスタを指定する物理レジスタ番号を対応付けることにより、前記論理レジスタと前記物理レジスタとの対応関係を表す情報をリネームマップ記憶部に格納するステップと、
前記論理レジスタと前記リネームマップ記憶部の内容を記憶するチェックポイント実行が必要なチェックポイント命令をデコードするステップと、
前記命令発行部が発行した命令が、前記デコードするステップにおいて、チェックポイント命令であると識別された場合に、前記チェックポイント実行を行うステップと、
中央処理ユニットの通常動作を停止させる例外処理を発生させる例外処理発生命令の実行により、前記例外処理が発生したことを検出するステップと、
前記チェックポイント命令の実行後に、例外処理が検出された場合に、前記リネームマップ記憶部に格納された情報を用いて、前記通常動作の実行に必要な前記論理レジスタの内容を復元するステップを有することを特徴とする命令制御方法。

【請求項8】
前記論理レジスタは、前記命令の実行対象が格納される論理ソースレジスタと前記命令の実行結果が格納される論理宛先レジスタを含むことを特徴とする請求項7記載の命令制御方法。

【請求項9】
前記論理レジスタは、前記論理レジスタを識別するための互いに固有の論理レジスタタグを有し、
前記物理レジスタは、前記物理レジスタを識別するための互いに固有の物理レジスタタグを有することを特徴とする請求項7又は8記載の命令制御方法。

【請求項10】
前記中央処理ユニットの命令制御方法はさらに、
前記チェックポイント命令の実行後に、例外処理が検出された場合に、前記チェックポイント命令のアドレスと前記例外処理を発生させた命令の直前の命令のアドレスの差分であるバックステップ量をプログラムカウンタからデクリメントさせるステップを有することを特徴とする請求項7?9のいずれか一項に記載の命令制御方法。

【請求項11】
前記例外処理発生命令は、自命令の次に実行する命令のアドレスが自命令のアドレスとは不連続である制御転送命令、条件付命令が実行に際して参照する制御レジスタの値を変更する制御レジスタ値変更命令、及び、トラップを発生させるトラップ命令のいずれかであることを特徴とする請求項7?10のいずれか一項に記載の命令制御方法。

【請求項12】
命令を格納する命令記憶部と前記命令を発行する命令発行部と前記命令を実行する命令実行部とプログラム上で定義される論理レジスタに対応する物理レジスタとを有する中央処理ユニットの命令制御方法において、
前記命令記憶部が、命令を格納するステップと、
前記命令発行部が、プログラムの順序に従って前記命令記憶部に格納された命令を前記命令実行部に発行するステップと、
前記命令実行部が、前記発行された命令を実行するステップと、
前記論理レジスタに対して前記物理レジスタを対応付けることにより、前記論理レジスタと前記物理レジスタとの対応関係を表す情報をリネームマップ記憶部に格納するステップと、
前記論理レジスタと前記リネームマップ記憶部の内容を記憶するチェックポイント実行が必要なチェックポイント命令をデコードするステップと、
前記命令発行部が発行した命令が、前記デコードするステップにおいて、チェックポイント命令であると識別された場合に、前記チェックポイント実行の代わりに、中央処理ユニットの内部状態の同期を行うステップと、
前記チェックポイント命令の実行後に、中央処理ユニットの通常動作を停止させる例外処理が発生した場合に、前記リネームマップ記憶部に格納された情報を用いて、前記通常動作の実行に必要な前記論理レジスタの内容を復元するステップを有することを特徴とする命令制御方法。」

を、

「【請求項1】
命令を格納する命令記憶手段と、
プログラムの順序に従って前記命令記憶手段に格納された命令を発行する命令発行手段と、
前記発行された命令の実行を行う命令実行手段と、
前記プログラム上で定義される論理レジスタと、
前記命令実行手段が前記発行された命令を実行する場合に使用する物理レジスタと、
前記論理レジスタを指定する論理レジスタ番号に対して前記物理レジスタを指定する物理レジスタ番号を対応付けることにより、前記論理レジスタと前記物理レジスタとの対応関係を表す情報を格納するリネームマップ記憶手段と、
チェックポイント命令をデコードする命令デコード手段と、
前記命令発行手段が発行した命令が前記命令デコード手段により、チェックポイント命令であると識別された場合に、前記チェックポイント実行を行うチェックポイント実行手段と、
中央処理ユニットの通常動作を停止させる例外処理を発生させる例外処理発生命令の実行により、前記例外処理が発生したことを検出する例外処理検出手段と、
前記例外処理検出手段により例外処理が検出された場合に、前記例外処理を発生させた命令より後続の前記チェックポイント命令の実行により前記リネームマップ記憶手段に格納された情報を用いて、前記チェックポイント命令を実行した状態に前記論理レジスタの内容を復元するバックアップ手段を有することを特徴とする中央処理ユニット。

【請求項2】
前記論理レジスタは、前記命令の実行対象が格納される論理ソースレジスタと前記命令の実行結果が格納される論理宛先レジスタを含むことを特徴とする請求項1記載の中央処理ユニット。

【請求項3】
前記論理レジスタは、前記論理レジスタを識別するための互いに固有の論理レジスタタグを有し、
前記物理レジスタは、前記物理レジスタを識別するための互いに固有の物理レジスタタグを有することを特徴とする請求項1又は2記載の中央処理ユニット。

【請求項4】
命令を格納する命令記憶部と前記命令を発行する命令発行部と前記命令を実行する命令実行部とプログラム上で定義される論理レジスタに対応する物理レジスタとを有する中央処理ユニットの命令制御方法において、
前記命令記憶部が、命令を格納するステップと、
前記命令発行部が、プログラムの順序に従って前記命令記憶部に格納された命令を前記命令実行部に発行するステップと、
前記命令実行部が、前記発行された命令を実行するステップと、
前記論理レジスタを指定する論理レジスタ番号に対して前記物理レジスタを指定する物理レジスタ番号を対応付けることにより、前記論理レジスタと前記物理レジスタとの対応関係を表す情報をリネームマップ記憶部に格納するステップと、
チェックポイント命令をデコードするステップと、
中央処理ユニットの通常動作を停止させる例外処理を発生させる例外処理発生命令の実行により、前記例外処理が発生したことを検出するステップと、
前記例外処理が検出された場合に、前記例外処理を発生させた命令より後続の前記チェックポイント命令の実行により前記リネームマップ記憶部に格納された情報を用いて、前記通常動作の実行に必要な前記論理レジスタの内容を復元するステップを有することを特徴とする命令制御方法。

【請求項5】
前記論理レジスタは、前記命令の実行対象が格納される論理ソースレジスタと前記命令の実行結果が格納される論理宛先レジスタを含むことを特徴とする請求項4記載の命令制御方法。

【請求項6】
前記論理レジスタは、前記論理レジスタを識別するための互いに固有の論理レジスタタグを有し、
前記物理レジスタは、前記物理レジスタを識別するための互いに固有の物理レジスタタグを有することを特徴とする請求項4又は5記載の命令制御方法。」(以下、「補正後の特許請求の範囲」という。)

に補正するものである(なお、以下では、補正前の特許請求の範囲に記載されている請求項を「補正前の請求項」といい、補正後の特許請求の範囲に記載されている請求項を「補正後の請求項」という。)。

2.補正の目的要件について
(2-1)着目する補正箇所
本件補正は、以下の(A)、(B)の補正を含む。

(A)補正前の請求項4?6、10?12を削除する補正。

(B)補正前の請求項7を補正後の請求項4へと請求項の番号を変更するとともに、補正前の請求項7の記載に対し更に以下の(B-1)?(B-3)の補正を行って、補正後の請求項4の記載とする補正。
(B-1)補正前の請求項7の「前記論理レジスタと前記リネームマップ記憶部の内容を記憶するチェックポイント実行が必要なチェックポイント命令をデコードするステップ」という記載に含まれていた「前記論理レジスタと前記リネームマップ記憶部の内容を記憶するチェックポイント実行が必要な」という発明特定事項を削除し、補正後の請求項4の「チェックポイント命令をデコードするステップ」という記載に変更する補正。
(B-2)補正前の請求項7に記載されていた「前記命令発行部が発行した命令が、前記デコードするステップにおいて、チェックポイント命令であると識別された場合に、前記チェックポイント実行を行うステップ」という発明特定事項を削除する補正。
(B-3)補正前の請求項7の「前記チェックポイント命令の実行後に、例外処理が検出された場合に、前記リネームマップ記憶部に格納された情報を用いて、前記通常動作の実行に必要な前記論理レジスタの内容を復元するステップ」という記載を、補正後の請求項4において「前記例外処理が検出された場合に、前記例外処理を発生させた命令より後続の前記チェックポイント命令の実行により前記リネームマップ記憶部に格納された情報を用いて、前記通常動作の実行に必要な前記論理レジスタの内容を復元するステップ」と書き換える補正(なお、下線部は便宜的に当審において付与したもの。以下同じ。)。

(2-2)上記(A)の補正についての判断
上記(A)の補正は、特許法第17条の2第4項第1号(請求項の削除)を目的とする補正である。

(2-3)上記(B-1)、(B-2)の補正についての判断
上記(B-1)、(B-2)の補正は、補正前の請求項に記載されていた発明特定事項を、対応する補正後の請求項において削除する補正であるから、特許法第17条の2第4項第1号乃至第4号のいずれを目的とする補正でもないことは明白である。

(2-4)上記(B-3)の補正についての判断
次に、上記(B-3)の補正は、以下に(2-4-1)?(2-4-3)として分けて検討するように、特許法第17条の2第4項第1号乃至第4号のいずれを目的とする補正でもない。

(2-4-1)まず、上記(B-3)の補正は、特許法第17条の2第4項第1号(請求項の削除)を目的とする補正ではない。
(2-4-2)また、上記(B-3)の補正は、以下の(イ)、(ロ)の点において、特許法第17条の2第4項第2号を目的とする補正であるとは認められない。
(イ)補正前の請求項7では、「前記チェックポイント命令の実行後に、例外処理が検出された場合」と記載されていた「場合」が、上記(B-3)の補正によって、補正後の請求項4では「前記例外処理が検出された場合」と書き換えられている。すなわち、補正後の請求項4の「前記例外処理が検出された場合」は、補正前の請求項7の「前記チェックポイント命令の実行後に、例外処理が検出された場合」という発明特定事項を限定せず、むしろ上位概念化して拡張しているから、上記(B-3)の補正は特許法第17条の2第4項第2号を目的とする補正であるとは認められない。
(ロ)上記(B-3)によって補正された補正後の請求項4は、「前記例外処理を発生させた命令より後続の前記チェックポイント命令」の実行により前記リネームマップ記憶部に格納された情報を用いて、前記通常動作の実行に必要な前記論理レジスタの内容を復元するものとなり、これにより、審判請求理由の中で請求人が

「前述のように、請求項1に係る発明では、例外処理が検出された場合に、例外処理を発生させた命令より後続のチェックポイント命令の実行によりリネームマップ記憶手段に格納された情報を用いて、チェックポイント命令を実行した状態に論理レジスタの内容を復元します。すなわち、例外処理発生命令より「新しい」最も近いチェックポイントへバックアップし、その後のバックステップによる状態復元を可能にしています。そのバックステップで例外処理命令に精確に状態が戻され、かつ、状態復元のために命令を再実行する必要が排除されることとなります。」

と主張するように、「バックステップによる状態復元を可能にする」という新たな課題を解決するものとなるが、そのような課題は、補正前の請求項7に記載されている構成では解決できていなかった(補正前の請求項7では、「チェックポイント命令の実行後に、例外処理が検出された場合に、前記リネームマップ記憶部に格納された情報を用いて、前記通常動作の実行に必要な前記論理レジスタの内容を復元する」と記載されており、例外処理が検出された後にチェックポイント命令が実行されることは記載されていないから、補正前の請求項7では、例外処理が検出される前に実行されたチェックポイント命令によって保存されていた例外発生前のリネームマップ記憶部の内容を用いた復元処理しかできず、例外発生前に保存されていたリネームマップ記憶部の内容を用いて復元を行うという課題しか解決できていなかった)。したがって、上記(B-3)の補正により、補正前後の請求項の課題が同一のものではなくなったから、上記(B-3)の補正は、特許法第17条の2第4項第2号を目的とする補正とは認められない。

(2-4-3)また、上記(B-3)の補正は、特許法第17条の2第4項第3号、第4号を目的とする補正でもない。

(2-5)補正の目的要件についてのまとめ
以上検討したように、上記(B)の補正に含まれる上記(B-1)?(B-3)の補正は、特許法第17条の2第4項第1号乃至第4号のいずれを目的とする補正でもないので、本件補正は特許法第17条の2第4項に規定されている要件を満たしていない。

3.独立特許要件について
上述の如く、本件補正は特許法第17条の2第4項に規定されている要件を満たしていないが、仮に、本件補正が特許法第17条の2第4項第2号の特許請求の範囲の減縮を目的とする補正であると仮定した場合に、補正後の特許請求の範囲に記載された発明が特許出願の際独立して特許を受けることができるものであるか(特許法第17条の2第5項において準用する同法第126条第5項の規定に適合するか)を、以下に検討する。

(3-1)特許法第36条第6項第2号の要件について
補正後の請求項4には「中央処理ユニットの通常動作を停止させる例外処理を発生させる例外処理発生命令の実行により、前記例外処理が発生したことを検出するステップ」という記載が存在し、この記載は、「例外処理」が発生すると、中央処理ユニットの「通常動作」は「停止」するという趣旨(以下、「趣旨A」という。)の記載である。
一方、補正後の請求項4に存在する「前記例外処理が検出された場合に、前記例外処理を発生させた命令より後続の前記チェックポイント命令の実行により前記リネームマップ記憶部に格納された情報を用いて、前記通常動作の実行に必要な前記論理レジスタの内容を復元する」という記載(以下、「記載B」という。)は、例外処理を発生させた命令の後に「後続の前記チェックポイント命令」が「実行」されるという趣旨の記載であるが、前記趣旨Aによれば、「例外処理」が発生すると、中央処理ユニットの「通常動作」は「停止」するから、前記記載Bの前記「後続の前記チェックポイント命令」は、例外処理の発生によって通常動作が停止した後にリネームマップ記憶部に格納された情報(この情報は、通常動作が停止した後の中央処理ユニットの通常でない状態を含む)を用いて「復元」の作業を行うことになり、そのような通常でない状態を含む情報を用いても正常な復元作業を行うことはできないから、補正後の請求項4の前記記載Bは技術的に矛盾している。したがって、補正後の請求項4の記載は明確ではなく、特許法第36条第6項第2号に規定されている要件を満たしていない。

(3-2)特許法第36条第4項の要件について
上記(3-1)で指摘したように、補正後の請求項4の記載は技術的に矛盾しており、そのような技術的に矛盾した事項の具体的な実現手法は、当業者が実施できる程度に明確かつ十分に発明の詳細な説明の記載において開示されていない。
また、補正後の請求項4の前記記載Bのように、「前記例外処理が検出された場合に、前記例外処理を発生させた命令より後続の前記チェックポイント命令の実行により前記リネームマップ記憶部に格納された情報を用いて、前記通常動作の実行に必要な前記論理レジスタの内容を復元する」という処理を実施するためには、請求人が審判請求理由において挙げている「バックステップ動作」を実行する必要があるが、この「バックステップ動作」の具体的な実現手法も、当業者が実施できる程度に明確かつ十分に発明の詳細な説明において開示されていない。
すなわち、明細書の段落【0342】、【0344】、【0349】には、

「【0342】
バックステップ中に於けるCPU51の状態回復には、マシンレジスタ資源を更新すること、及びプログラムカウンタをバックステップ量だけ減分することだけが含まれる。上記のように、構成上の制御レジスタを修正する命令は、マシンを同期するか、チェックポイントを実行するから、バックステップ中に構成制御レジスタの回復を必要としない。典型的なCPU51では、以下のマシン状態はバックステップ中に更新される。即ち、プログラムカウンタ(PC)、次のPC、RRFに記憶された情報、及びリネイムマップに記憶された情報が更新される。トラップPC、トラップRRF、及びBRB59の特権レジスタを含むその他の制御レジスタは、バックステップ動作によって修正も更新もされない。マシンの資源は、レジスタリクレームフォーマットファイル(RRF)302に記憶されたロジカル-ツウ-オールド-フィジカルマッピングに関連するレジスタファイルから回復される。バックステップ通知信号(DO BACKSTEP)がアサートされると、ICRU301、RRF302、及び他のCPU512は、バックステップモードが起動されていることが通知される。バックステップに於いて、各バックステップサイクル中に回復及び記憶されるRRF302アイテム数は、バックステップカウント信号によって示されるバックステップされる命令の数に等しい。」、

「【0344】
レジスタリクレームフォーマットユニット302は、バックステップをアサートした信号(DO BACKSTEP)に応答し、リクレームされて回復されるRRFアイテムの数は、DO BACKUP信号内のバックアップステップカウント数に等しい。RRFは、ロジカル-ツウ-オールド-フィジカルマップ、即ちソース又は行き先データ値を保持するロジカル-ツウ-オールド-フィジカルレジスタの割当を含んでいる。RRF302の命令に割り当てられたレジスタ資源、又はレジスタマップの何れもCSN又はRRPを進めることによってフリーリスト700へは自由に戻れないから、レジスタの実際のデータは妨害されない。RRFは、バックステップした命令をもと実行したきと同じ関係で、フィジカルレジスタ(オールドフィジカルレジスタ)をロジカルレジスタを再度組み合わせる。レジスタマッピングを一つずつ回復することによって、各命令のレジスタ状態が回復される。要するに、レジスタ資源から見れば、マシンはバックステップ動作中後退する。図18はRRFノブロック図である。図14は、ロジカル-フィジカルマッピングが、レジスタリネイムファイルFXFRN、CCFRN、FCCFRN及びFPFRNに回復される仕方を示す図である。」、

「【0349】
図43は2つのバックステップを伴うマシンバックアップの例を示す図である。バックステップは一度の幾つかの命令を、単一ステップ又は多重ステップとして実行できる。この例では、CPU51は命令障害が検出された時点で、ポインタISNに対応する命令を既に発している。マシンは障害命令の後の最も近いチェックポイントにマシンを戻すことによって応答する。このもっと近いチェックポイントとISNとの間の命令は強制終了させられる。4つの命令の量による第1のバックステップは、それらの命令を発している間、4つの命令(第1バックステップ参照)に関わる全ての資源を再生することによって、マシンを障害命令に更に近づける。次いで、3つの命令量による第2(及び最終)バックステップは、それら残りの命令(第2バックステップ領域参照)に関わる全ての資源を再生することによって、障害命令の直前にマシンを持ってくる。」

と記載されているが、これらの段落における「バックステップ中に於けるCPU51の状態回復には、マシンレジスタ資源を更新すること、及びプログラムカウンタをバックステップ量だけ減分することだけが含まれる」、「レジスタマッピングを一つずつ回復することによって、各命令のレジスタ状態が回復される。」、「バックステップは一度の幾つかの命令を、単一ステップ又は多重ステップとして実行できる」、「4つの命令の量による第1のバックステップは、それらの命令を発している間、4つの命令(第1バックステップ参照)に関わる全ての資源を再生することによって、マシンを障害命令に更に近づける」、「次いで、3つの命令量による第2(及び最終)バックステップは、それら残りの命令(第2バックステップ領域参照)に関わる全ての資源を再生することによって、障害命令の直前にマシンを持ってくる。」という記載は、単なる願望を抽象的に記載しているに過ぎず、具体的な実現手法は不明であり、実施できない。
したがって、発明の詳細な説明の記載は、補正後の請求項4に記載された発明を当業者が実施できる程度に明確かつ十分に記載されているものとはならなくなり、特許法第36条第4項に規定されている要件を満たさないこととなる。

上記(3-1)、(3-2)において検討したように、補正後の特許請求の範囲に請求項4として記載された発明は、特許出願の際独立して特許を受けることができるものではないので、本件補正は特許法第17条の2第5項において準用する同法第126条第5項の規定に適合しない。

4.本件補正についてのまとめ
上記「2.補正の目的要件について」で述べたように、本件補正は平成14年法律第24号改正附則第2条第1項によりなお従前の例によるとされる同法による改正前の特許法第17条の2第4項の規定に違反するので、同法第159条第1項において読み替えて準用する同法第53条第1項の規定により却下すべきものである。
また、仮に、本件補正が特許法第17条の2第4項の規定に適合するものと仮定しても、上記「3.独立特許要件について」で述べたように、本件補正は平成18年法律第55号改正附則第3条第1項によりなお従前の例によるとされる同法による改正前の特許法第17条の2第5項において準用する同法第126条第5項の規定に違反するので、同法第159条第1項において読み替えて準用する同法第53条第1項の規定により却下すべきものである。
したがって、上記[補正却下の決定の結論]のとおり決定する。

第3.本願発明について
1.本願発明
平成20年10月14日付けの手続補正は上記のとおり却下されたので、本願の請求項7に係る発明(以下、同項記載の発明を「本願発明」という。)は、平成20年7月14日付け手続補正書の特許請求の範囲の請求項7に記載された事項により特定される、以下のとおりのものである。

「命令を格納する命令記憶部と前記命令を発行する命令発行部と前記命令を実行する命令実行部とプログラム上で定義される論理レジスタに対応する物理レジスタとを有する中央処理ユニットの命令制御方法において、
前記命令記憶部が、命令を格納するステップと、
前記命令発行部が、プログラムの順序に従って前記命令記憶部に格納された命令を前記命令実行部に発行するステップと、
前記命令実行部が、前記発行された命令を実行するステップと、
前記論理レジスタを指定する論理レジスタ番号に対して前記物理レジスタを指定する物理レジスタ番号を対応付けることにより、前記論理レジスタと前記物理レジスタとの対応関係を表す情報をリネームマップ記憶部に格納するステップと、
前記論理レジスタと前記リネームマップ記憶部の内容を記憶するチェックポイント実行が必要なチェックポイント命令をデコードするステップと、
前記命令発行部が発行した命令が、前記デコードするステップにおいて、チェックポイント命令であると識別された場合に、前記チェックポイント実行を行うステップと、
中央処理ユニットの通常動作を停止させる例外処理を発生させる例外処理発生命令の実行により、前記例外処理が発生したことを検出するステップと、
前記チェックポイント命令の実行後に、例外処理が検出された場合に、前記リネームマップ記憶部に格納された情報を用いて、前記通常動作の実行に必要な前記論理レジスタの内容を復元するステップを有することを特徴とする命令制御方法。」

2.引用発明
原審の拒絶の理由において引用文献1として挙げられている特開平6-230961号公報(以下、「引用文献1」という。)は、本願の最先優先日よりも前に頒布された文献であるが、この引用文献1には、図面とともに以下の記載が存在している(なお、下線部は便宜的に当審において付与したもの。以下同じ。)。

「【0001】
【産業上の利用分野】本発明は一般にデータ・プロセッサに関し、より具体的にはレジスタ再命名を用いるデータ・プロセッサに関する。
【0002】
【従来の技術】推論的に命令(例:分岐)を実行するデータ・プロセッサは、誤った分岐予測の場合のように、「推論的」な命令をデータ・プロセッサが完全に実行できない場合に、データ・プロセッサの状態を復元する機構を備えなければならない。通常、これらのデータ・プロセッサは、アーキテクチャ上の実行の流れから見て厳正な意味の実行順序を緩和して、これにより、命令のダイナミックな再配列を可能にすることによって、データ・プロセッサ全体の性能を改善する。分岐予測の誤りまたは命令の例外から、データ・プロセッサが実行する命令実行順序が、アーキテクチャ上プロセッサ・モデルが要求する意味から逸脱する場合がある。そのような場合には、データ・プロセッサは、あたかも分岐の予測誤りの結果出された命令が発生しなかったかのように、当該分岐予測の誤りまたは例外状態が発生した時点または発生する前の発行ポイントへと、バックアップ動作を実行する必要がある。したがって、膨大な数の予測および/または例外が発生する可能性がある場合には、データ・プロセッサは、アーキテクチャ上の正しい順序を復元するために、迅速なバックアップ動作を実行する機構を必要とする。
【0003】既知の高性能データ・プロセッサは通常、物理レジスタの使用を介して、高速データ記憶を処理しており、この方法によってプログラムは、必要なデータ・オペランドが格納されている指定の物理レジスタを指定する。一般に、命令を符号化すると、プログラムが使用できる物理レジスタの数が制限される。たとえば、2個のソース・レジスタと1個の宛先物理レジスタを扱う32ビット符号化機能では、物理レジスタの最大数は32である(この場合、符号化された各フィールドは5ビットの命令符号化を用いる)。高度なパイプライン方式のコンピュータ・アーキテクチャでは、レジスタ内のデータ記憶期間が長くなっており、多くのプログラムがより多くの物理レジスタを利用できるというメリットを受けることができる。命令の符号化を確保しながら、より多くの物理(ハードウェア)レジスタを提供するために、データ処理システムが採用する1つの機構がレジスタ再命名である。この再命名機構は、命令の符号化フィールドにある元の論理(プログラム)レジスタ番号を、物理レジスタのプール内に割り当てることによって動作する。この論理レジスタは、命令の実行中にプログラムが操作するものである。物理レジスタのプールは一般に、構築された(architected )レジスタの数より大きい(すなわち数が多い)。システムがリセットされると、データ処理システムがエミュレートしている命令セット・アーキテクチャの各論理レジスタに、これを表す物理レジスタが割り当てられる。現在割り当てられていない物理レジスタはフリー・リスト内に保存される。
【0004】
【発明が解決しようとする課題】レジスタ割当は、プログラムによって決定される。最初、すべての論理レジスタは、再命名機構によって、一意の物理レジスタ番号に割当られる。プログラムが、プログラム(論理)レジスタ値の変更を指定するたびに、再命名機構は、使用可能な物理レジスタのプールから新しい物理レジスタ(「被再命名」レジスタ)を探して、当該プログラム・レジスタに割り当てる。この変更されたプログラム・レジスタに対して読み取りを行うたびに、この新しい再命名レジスタを使用する。このため個々の論理レジスタは、任意のときにおいて、1つまたは複数の再命名(物理)レジスタに再割当できる。しかしながら、任意の時において、当該論理レジスタの最新のマッピングになるのは、ただ1つの物理レジスタ・マッピングだけである。分岐を越えた高度な命令の推論的な実行を可能にするためには、データ処理システムを以前のマッピングにバックアップする機能が必要になる。したがって、データ処理システムのバックアップが必要になる場合は常に、古いレジスタ・マッピングを復元しなければならない。またクロック・サイクルごとに複数の命令を発行できる高性能データ処理システムでは、レジスタ再命名機構は複数命令発行ハードウェアをサポートしなければならない。実質的には、レジスタ再命名機構は、複数の命令をバックアップする機能と、複数の命令に対するレジスタ・マッピングの両方をサポートしなければならない。
【0005】
【課題を解決するための手段】データ処理システムにおいて、バックアップ機能を備えてレジスタ再命名を実行する方法が提供される。このデータ処理システムは、所定数の実行装置に対する命令パケットのデコードと発行を制御するために、命令順序付け・発行論理を備えている。レジスタ再命名機構は命令順序付け・発行論理および実行装置に結合されている。このレジスタ再命名機構は論理・物理(LP)レジスタ・マップおよびフリー・リストによって構成されており、これは命令順序付け手段が各命令パケットを発行すると直ちに、所定数の論理レジスタを、所定の物理レジスタ・セットに割り当てるためのものである。
(中略)
【0010】
【実施例】本発明は、多岐にわたるコンピュータ・システム環境で実現できる。したがって、図1のデータ処理システム10は、図示目的だけのものであって、本発明の範囲を限定することを意図するものではない。図1は、本発明の好適実施例に従ってレジスタ再命名を実行するデータ処理システム10を示したものである。演算中、シーケンサ・ウインドウ制御論理回路12が、実行対象の命令群(パケット)を選択し、この選択した命令の命令アドレスを命令キャッシュ14に提供する。命令キャッシュ14は要求された命令の位置を突きとめ、命令もしくは命令パケットを命令デコード/発行論理16に送る。レジスタ再命名ハードウェア18は、(実行すべき各命令について)入ってくる論理レジスタ名を、物理レジスタ名に割り当て、つぎの発行サイクルのための対応表の中に新しいエントリを作る。この物理レジスタ名は索引付けされて、物理レジスタ・ファイル20の中に入れられる。実行装置24による命令の実行が未了であると、パケットの各命令に対して割り当てられた物理レジスタの中に格納されているデータ値は、予約ステーション22に格納される。この予約ステーション22は、シーケンサ12から、発行ポイントおよび後退ポイントを指示する制御情報を受け取る。また予約ステーション22は、命令スロットおよびウィンドウ制御情報を保存する。
【0011】このマッピング・プロセスと同時に、命令デコード/発行論理16は、各命令を検査して、各命令が値を送出するか否かを判断する。命令が値を送出する場合には、再命名ハードウェア18内のレジスタ・マップは本発明に従って更新される。命令デコード/発行論理16が再命名ハードウェア18に送出した(書き込むための)論理レジスタ名は、特定の順序(スロット情報)を有しており、この情報によって、再命名ハードウェア18は当該命令に物理レジスタ名を割り当てることができる。物理レジスタ・ファイル20は、この物理レジスタ名またはこれに相当するなんらかの機能(例:「TAG」)を用いて、結果を書き込むべき正しい物理レジスタを、実行装置24に指示する。シーケンサ12は各命令群(「PACKET」)を追跡して、再命名ハードウェア18および予約ステーション22に、各命令パケットの識別子(「発行ポイント」)を送出する。またシーケンサ12は各命令パケットを追跡して、実行装置24の1つが命令の実行を完了したことによって、どのパケットもしくはパケット群を後退してもよいか(「後退チェックポイント」)、再命名ハードウェア18および予約ステーション22に指示する。
【0012】図2に示すように、レジスタ再命名ハードウェア18は、論理・物理(LP)マップ30,フリー・リスト32,ならびにLPマップ30とフリー・リスト32との間で物理レジスタ名を交換する手段となる物理レジスタ・スワップ・バス90によって構成される。図2に示す実施例では、LPマップ30は、M行およびX列を有するマップ・セル40?55のマトリックスによって構成され、ここでMはデータ処理システム10のアーキテクチャ・モデル内の論理レジスタの数に等しい整数であり、Xは発行ポイントの数に等しい整数である。フリー・リスト32は、N行のポインタ80?83およびX列を有するフリー・リスト・セル60?75のマトリックスによって構成され、ここでNは命令発行スロットの数、Xは発行ポイントの数にあたる。図2に示すLPマップ30およびフリー・リスト32は、4×4のマトリックス配列になっている。したがってLPマップ30は、4個の論理レジスタR0?R3をマッピング(割当)するための16個のマップ・セル40?55によって構成され、フリー・リスト32は、4個の命令スロットそれぞれのフリー物理レジスタを格納するために、16個のフリー・リスト・セル60?75によって構成されている。
【0013】命令(または命令群)が命令デコード/発行論理16によってデコードされるたびに、読み取り対象となる論理レジスタは、それらの値が見つかる物理レジスタ「名」を探すための索引を、再命名ハードウェア(18)内の論理・物理(LP)マップ30に付ける。この「名前」は予約ステーション22に送られる。本発明に基づき、書き込み対象となる論理レジスタは、フリー・リスト32から物理レジスタ名を取り出し、物理レジスタ・スワップ・バス90を介して、当該物理レジスタ名をLPマップ30内に入れる。この時点でLPマップ30は、LPマップ30内のマッピング配列の一部である1個のマップ・セル、たとえばマップ・セル40内に、新しいレジスタ・マッピングが格納されることになる。したがってLPマップ30は、命令デコード/発行論理16が命令もしくは命令群をデコードされるたびに発生する異なるレジスタ・マッピング(論理・物理間) を格納する。フリー・リスト32は、フリー・リスト・セル60?75のそれぞれの中に、データ処理システム10が再使用できる使用可能な(「使用されていない」)物理レジスタを格納する。使用されていないレジスタとは、LPマップ30内に有効なエントリがない物理レジスタであり、そのため割当(マッピング)用に選択できる。各発行ポイントについて、フリー・リスト32は、一緒にデコードされた命令群が書き込める現在のフリー物理レジスタ名をすべて格納する。このフリー・リスト32は、命令スロット(SLOT)情報によって索引が付けられており、この情報は、ある命令の相対的位置を、同時にデコードされた他の命令に示すものである。
【0014】図3?図9は、データ処理システム10が本発明に従って実行するレジスタ再命名動作を順追って示したものである。この一連の例では、データ処理システム10は4個の論理レジスタ(R0?R3)と4個の発行ポイントを有しており、そのため、発行幅(IW)は4である。本発明では、レジスタ再命名動作を実行するのに必要な物理レジスタ(P)の数を1ー1式で算出する。
【0015】
【数1ー1】 P=R*(IW+1)
このため、図3?図9に示す一連の例では、レジスタ再命名動作をサポートするのに必要な物理レジスタの数は20となる。
【0016】図3に、初期化(I0)の間に発生するレジスタ・マッピングを示す。初期化の間に、物理レジスタP0?P3がフリー・リスト32から取り出されて、物理レジスタ・スワップ・バス90を介して、LPマップ30に転送される。このため図に示すように、論理レジスタR0?R3はLPマップ30内の物理レジスタP0?P3にそれぞれ割り当てられる。黒く塗られた領域は、LPマップ30およびフリー・リスト・セル32内の割り当てられていないセルを示している。このため、初期化時に、論理レジスタR0?R3はそれぞれ物理レジスタPO?P3に割り当てられ、物理レジスタP4?P19はフリー・リスト32の中に格納される。この初期化の結果、物理レジスタP0?P3が「可視」になる。実質的には、可視の物理レジスタは、LPマップ30内の、これに対応する論理レジスタによる索引が付けられている位置に見つかる。
【0017】図4に、レジスタ再命名シーケンスにおける第1発行ポイント(I1)を示す。第1発行ポイントでは、命令デコード/発行論理16は、以下の表に示すような4つのADD命令によって構成される第1命令パケット(PACKET1)をデコードする。
【0018】
【表1】
SLOT0 ADD(R1+R2)-> R0
SLOT1 ADD(R1+R2)-> R1
SLOT2 ADD(R1+R2)-> R2
SLOT3 ADD(R1+R2)-> R3
前述のように、フリー・リスト32は命令スロット(SLOT0?3)によって索引が付けられており、そのため第1ADD命令はSLOT0に割り当てられ、最後のADD命令はSLOT3に割当られる。そのため、命令SLOT0内ではP4がフリー物理レジスタなので、宛先論理レジスタR0は物理レジスタP4に割り当てられる。同様に、命令SLOT1内ではP5がフリー物理レジスタなので、宛先論理レジスタR1は物理レジスタP5に割り当てられる(以下同様)。発行ポイントI1では、物理レジスタP4?P7がフリー・リスト32から取り出されて、LPマップ30のマップ・セル104?107内にそれぞれ入れられる。そのため第1発行ポイント(I1)におけるR0?R3のレジスタ・マッピングはそれぞれP4?P7となる。
【0019】図11に示すように、本発明に基づくフリー・リスト・セル60?79はそれぞれ、2つの物理レジスタ名(すなわちLASTとCURRENT)、およびどの物理レジスタ名がCURRENTであるかを指定する1個のポインタ80?83(図2)を含んでいる。データ処理システム10が書き込み動作を実行するたびに、CURRENT物理レジスタ名が、前記のようにLPマップ30に転送され、LPマップ30からの物理レジスタ名は、フリー・リスト32内の、LASTの位置に入れられる。ついでポインタ(例:ポインタ80)が切り替わって、LASTがCURRENTになる。これにより前記のように、物理レジスタP4がフリー・リスト32から取り出されて、スワップ・バス90を介してLPマップ30に転送される。その結果、P4が宛先論理レジスタR0に割当られ、可視となる。LPマップ30内でR0に以前割り当てられていた物理レジスタ名(P0)は、対応するフリー・リスト・セルのファースト(first) 名ラッチ116(図11)の中に格納され、これによって「不可視」となる。不可視レジスタとは、論理的な意味で上書きされたものであるが、分岐の予測誤りまたは例外によって、シーケンサ12が「バックアップ動作」を実行する必要があれば、可視にできるものをいう。ついでポインタ80(図2)が切り替わって、割り当てられたLAST(不可視)物理レジスタ(P0)を、フリー・リスト・セル60内のCURRENTフリー物理レジスタに指定する。したがって、物理レジスタP0?P3は以前の初期化の時にR0?R3に割り当てられていたので、P0?P3は、それぞれフリー・リスト・セル60?63のファースト名ラッチ116(図11)の中に格納され、ポインタ(80)は、P0?P3をCURRENTフリー物理レジスタとして示すように切り換えられる。同様に、PACKET1内の命令が発行された結果、物理レジスタP4?P7が論理レジスタR0?R3に現在割り当てられている(「可視」になっている)ので、P4?P7は、図4の黒く塗られた部分が示すように、それぞれフリー・リスト・セル60?63のLAST名ラッチ120(図11)の中に格納される。
【0020】図5に示す第2発行ポイント(I2)では、命令デコード/発行論理16は、表IIに示すように3つのADD命令を含んでいる命令PACKET2をデコードする。
【0021】
【表2】
SLOT0 ADD(R1+R2)-> R3
SLOT1 ADD(R3+R2)-> R1
SLOT2 NOP
SLOT3 ADD(R1+R2)-> R2
前述のように、フリー・リスト32は命令スロットによって索引付けされている。したがって、第1ADD命令はSLOT0に割り当てられる。そのため、フリー・リスト32の命令SLOT0内では、P8がフリー物理レジスタであるので、宛先論理レジスタR3は物理レジスタP8に割り当てられる。同様に、宛先論理レジスタR1は、フリー・リスト32の命令SLOT1内ではP9がフリー物理レジスタであるので、物理レジスタP9に割り当てられる。SLOT2内でデコードされるNOP命令はレジスタ・マッピングに影響を及ぼさない。そのためフリー物理レジスタP10は、図5の矢印が示すように、SLOT2のために、隣接するフリー・リスト・セルにコピーされる。同様に、PACKET2でデコードされる命令はいずれも、論理レジスタR0のマッピングに影響を及ぼさないので、再命名ハードウェア18は、図5に示すように、R0に対する以前のレジスタ・マッピング(P4)を、LPマップ30内で隣接するマップ・セルにコピーする。最後のADD命令は、宛先論理レジスタR2を、SLOT3内のフリー論理レジスタ(P11)で再命名する必要がある。このため第2発行ポイントにおけるR0?R3のレジスタ・マッピングは、図5に示すようにそれぞれP4,P9,P11,P8となる。LPマップ3内で以前割り当てられていた物理レジスタ名P5,P6,P7は、フリー・リスト・セル64?67(図2)内のLAST名の位置に入れられ、ラストがカレントになるように、ポインタ81が切り換えられる。
【0022】図6に示す第3発行ポイントでは、命令デコード/発行論理16は、以下の表IIIに示すように、2つのADD命令と2つのNOP命令によって構成される命令PACKET3をデコードする。
【0023】
【表3】
SLOT0 ADD(R1+R2)-> R0
SLOT1 NOP
SLOT2 ADD(R1+R2)-> R1
SLOT3 NOP
SLOT0でデコードされる第1のADD命令によって、論理宛先レジスタR0は、SLOT0内のフリー物理レジスタP12に再割当される。一方第2のADD命令によって、レジスタR1は、SLOT2内のフリー物理レジスタP14に再割当される。PACKET2でデコードされる命令は論理レジスタR2,R3のマッピングに影響を及ぼさないので、以前R2,R3にそれぞれ割り当てられていた物理レジスタP11,P18は、矢印が示すように、LPマップ30内の隣接するマップ・セル内にコピーされる。同様に、割り当てられなかったSLOT1およびSLOT3のフリー物理レジスタは、図7の矢印が示すように、フリー・リスト32内の隣接するフリー・リスト・セル内にコピーされる。このため第3命令発行ポイント(I3)におけるR0?R3のレジスタ・マッピングはそれぞれP12,P14,P11,P8となる。前述のように、以前割り当てられていた物理レジスタ(P4,P9)はラスト名ラッチ内に入れられ、ポインタはラスト名がカレント名になるように切り替わる。
【0024】図7に示すレジスタ再命名シーケンスの第4発行ポイント(I3)では、命令デコード/発行論理16は、以下の表IVに示すように3つのADD命令と1つのNOP命令によって構成される命令PACKET4をデコードする。
【0025】
【表4】
SLOT0 ADD(R1+R2)-> R0
SLOT1 ADD(R1+R2)-> R1
SLOT2 ADD(R1+R2)-> R1
SLOT3 NOP
SLOT0内でデコードされる第1ADD命令によって、レジスタR0は、フリー・リスト32のSLOT0内のフリー物理レジスタであるP16に再割当される。SLOT1内でデコードされる第2ADD命令によって、R1は、SLOT1内のフリー物理レジスタであるP17に再割当される。第3ADD命令によって、R1は、フリー・リスト32のSLOT2内のフリー物理レジスタであるP18に再割当される。前述のように、NOP命令は、LPマップ30内のレジスタ・マッピングには影響を及ぼさない。パケット3内でデコードされる命令は論理レジスタR2,R3のマッピングには影響を及ぼさないので、図7に示すように、命令発行ポイントI4では、それらの以前の物理レジスタ・マッピングP11,P8はそれぞれ、隣接するマップ・セル内にコピーされる。このため、第4命令発行ポイントにおけるR0?R4のレジスタ・マッピングはそれぞれP16,P18,P11,P8となる。以前割り当てられていた物理レジスタ(P12,P14)は、矢印が示すように、フリー・リスト32内の対応するフリー・リスト・セルのラスト名ラッチ内に入れられる。ポインタが切り替わり、ラスト名の物理レジスタが、カレント名の物理レジスタになる。
【0026】本発明に基づくレジスタ再命名シーケンス中、最終的には、LPマップ30およびフリー・リスト32は共にラップアラウンドして、古い物理レジスタ名の上に上書きされる。実行装置24が、「バックアップ」発生の機会がなく、上書きされた発行ポイント内のすべての命令の実行を完了する限り、これは問題を生じない。したがって図8に示す第5命令発行チェックポイント(I5)では、命令発行論理が、以下の表Vに示すような4つのADD命令によって構成される命令PACKET5をデコードする。
【0027】
【表5】
SLOT0 ADD(R1+R2)-> R3
SLOT1 ADD(R1+R2)-> R1
SLOT2 ADD(R1+R2)-> R0
SLOT3 ADD(R1+R2)-> R2
図8に示すように、フリー・リスト32はラップアラウンドしており、そのため、使用可能な第1のフリー物理レジスタはP0?P3となる。PACKET5が発行された結果発生するレジスタ・マッピング(論理・物理間)は、前述のようにLPマップ30の中に格納される。このため、第5命令発行ポインにおいて、論理レジスタR0?R3に対して発生するレジスタ・マッピングはそれぞれP2,P1,P3,P0となる。以前割り当てられていた物理レジスタ(P16,P18,P11,P8)は、矢印が示すように、フリー・リスト32内の対応するフリー・リスト・セルのラスト名ラッチの中に入れられる。ここでも、ポインタが切り替わり、ラスト名の物理レジスタ(P8,P18,P16,P11)が、カレント名の物理レジスタとなる。
【0028】例外(例:割り込み)発生の結果、または分岐予測の誤りが原因で、データ処理システム10が、シーケンサ12の状態を以前の発行ポイントに復元する必要がある場合には、「バックアップ」動作が実行される。図3?図8に示すように、データ処理システム10が実行するレジスタ再命名動作全体を通じて、後退チェックポイント(RETIRE POINT)はずっと同じ場所にあり、命令デコード/発行論理16が各命令パケットを発行すると直ちに、シーケンサ12は発行ポイントのみ(例:I1?I5)を進ませた。本発明では、例外状況または分岐予測誤りが発生すると、シーケンサ12は、レジスタ再命名ハードウェア18に、最新の良好な発行ポイント(たとえばチェックポイントI2)を提供し、再命名ハードウェア18は「バックアップ」を行い、これによって物理レジスタ・マッピングを発行ポイントI2に存在するレジスタ・マッピングに復元する。このためシーケンサ12の管理下において、レジスタ再命名ハードウェア18は発行ポイントをチェックポイントI2まで戻す。したがってLPマップ30およびフリー・リスト32は、それらの発行ポイントを発行ポイントI2に移動する。本発明では、フリー・リスト32も、試みた最新の発行ポイント(I6)と、最新の良好な発行ポイント(I2)との間にある「カレント」ポインタ80?83のすべてを切り換える。これを行っている間、フリー・リスト32は、発行ポイントI2においてフリーであった物理レジスタを、物理レジスタのフリー・プールに復元する。図6に戻ると、論理レジスタR0?R3に対するLPマップ30内の物理レジスタ・マッピングはそれぞれP4,P9,P11,P8であった。このため図10(図9?)に示すように、LPマップ30およびフリー・リスト32は、発行ポイントI2(図6)に対し示されているのと同一のレジスタ・マッピングおよびフリー物理レジスタを反映する。
【0029】図10はLPマップ30のマップ・セル40(図2)をブロック図に示したものである。好適実施例では、LPマップ30は所定のマップ・セル40?55によって構成されており、各マップ・セルは、マップ・セル40と同一の構造を有している。図11(図10?)に示すように、初期化されると直ちに、シーケンサ12が提供する第1制御信号(CONTROL1)に応答して、初期物理レジスタ名が、マルチプレクサ110を介してラッチ112の中に格納される。このため論理レジスタR0?R3は前述のように、最初は物理レジスタP0?P3に割り当てられる。命令デコード/発行論理16が、論理宛先レジスタに対するレジスタ割当を変更する命令もしくは命令群をデコードするたびに、物理レジスタ名(PR)がSLOT番号によってフリー・リスト32から検索されて、LPマップ30内のマップ・セルの中に格納される。パケット内(例:PACKET2)でデコードされる命令がいずれも、特定の論理レジスタ番号(例:R0)に対する物理レジスタ・マッピングを変更しない場合には、前記の特定の論理レジスタ番号に対して以前割り当てられていた物理レジスタ名(すなわちP4)が、当該命令パケットの発行ポイント(I2)に関連するマップ・セルの中に転送される。したがって、マルチプレクサ110は初期物理レジスタ名(すなわちフリー・リスト32から新しく割り当てられた物理レジスタ)、または以前のセルからの物理レジスタ名のいずれかを、ラッチ112の中に格納することができる。
(中略)
【0032】図12は、本発明に基づくバックアップ機能を備えたレジスタ再命名順序付けの流れ図200である。図12に示すように、ステップ202では、シーケンサ12によって、再命名ハードウェア18はLPマップ30を初期化し、これによって物理レジスタの第1セット(例:P0?P3)を、前述のように論理レジスタR0?R3に割り当てる。ステップ204では、シーケンサ12は再命名ハードウェア18に対して、命令デコード/発行論理16によってデコードされる各命令パケットの命令ポイント番号を提供する。
【0033】ステップ206の間に、再命名ハードウェア18は、パケット内の各命令が、LPマップ30に問い合わせて、ソース論理レジスタの物理レジスタ名の位置を突きとめられるようにし、新しい物理レジスタ名を宛先論理レジスタに割り当てられるようにする。したがって宛先論理レジスタに対する物理レジスタ名が取り入れられて、前記宛先論理レジスタに以前割り当てられていた物理レジスタは、(前述のように)LPマップ30から外されて、フリー・リスト32の中に入れられ、「不可視」となる。当該宛先論理レジスタに対応する論理レジスタに、命令が書き込みを行うと、可視の物理レジスタは不可視になる。そのため以前割り当てられていた可視の物理レジスタ(例:P0)が不可視となるのは、再命名ハードウェア18がP0を、新しく割り当てられたレジスタ(例:P4)が以前占めていたフリー・リスト32内の命令スロット(例:SLOT0)に入れる場合である。ついで、この新しく割り当てられたレジスタP4はLPマップ30内に入れられて可視となる。
【0034】ステップ208に示すように、例外状況または分岐予測誤りが発生する場合には、シーケンサ12は、レジスタ再命名ハードウェア18に対して、「バックアップ」動作が必要であることを知らせる。「バックアップ」を必要としない場合には、ステップ210で、実行装置24が、以前デコードされた命令の実行を完了したか否かをシーケンサが判断する。命令もしくは命令群が実行を完了している場合には、ステップ212で、シーケンサ12は、レジスタ再命名ハードウェア18に対して新しい後退ポイントを発行する。命令が完了していない場合には、命令デコード/発行論理16が新しい命令パケットをデコードし、シーケンサ12は、レジスタ再命名ハードウェア18に対して新しい発行ポイントを発行する。」

引用文献1の上記段落【0001】の「本発明は一般にデータ・プロセッサに関し、より具体的にはレジスタ再命名を用いるデータ・プロセッサに関する」という記載と、同段落【0010】の「本発明は、多岐にわたるコンピュータ・システム環境で実現できる。したがって、図1のデータ処理システム10は、図示目的だけのものであって、本発明の範囲を限定することを意図するものではない」という記載から、引用文献1の「データ処理システム10」は、「データ・プロセッサ」の一種であると解される。
引用文献1の上記段落【0010】の「命令キャッシュ14は要求された命令の位置を突きとめ、命令もしくは命令パケットを命令デコード/発行論理16に送る」という記載から、引用文献1においては、命令キャッシュに格納されている命令が読み出されて「命令デコード/発行論理16」に渡されるものと解される。なお、命令キャッシュから命令を読み出す際に、プログラムの順序に従って読み出されることは当然のことである。
引用文献1の上記段落【0013】の「命令(または命令群)が命令デコード/発行論理16によってデコードされるたびに」という記載から、引用文献1の「命令デコード/発行論理16」は、その内部に、命令をデコードする手段(以下、便宜的に「命令デコード手段」という。)を有しているものと解される。
引用文献1の上記段落【0017】の「図4に、レジスタ再命名シーケンスにおける第1発行ポイント(I1)を示す。第1発行ポイントでは、命令デコード/発行論理16は、以下の表に示すような4つのADD命令によって構成される第1命令パケット(PACKET1)をデコードする」という記載、同段落【0005】の「所定数の実行装置に対する命令パケットのデコードと発行を制御するために、命令順序付け・発行論理を備えている」という記載、同段落【0011】の「またシーケンサ12は各命令パケットを追跡して、実行装置24の1つが命令の実行を完了したことによって」という記載、同段落【0028】の「命令デコード/発行論理16が各命令パケットを発行すると」という記載、同段落【0034】の「実行装置24が、以前デコードされた命令の実行を完了したか否か」及び「命令デコード/発行論理16が新しい命令パケットをデコードし、シーケンサ12は、レジスタ再命名ハードウェア18に対して新しい発行ポイントを発行する」という記載から、引用文献1において、「命令デコード/発行論理16」は命令をデコードするとともに、デコードが行われた命令を発行し、発行された命令は実行装置24によって実行されるものと解される。
引用文献1の上記段落【0003】の「データ処理システムが採用する1つの機構がレジスタ再命名である。この再命名機構は、命令の符号化フィールドにある元の論理(プログラム)レジスタ番号を、物理レジスタのプール内に割り当てることによって動作する。この論理レジスタは、命令の実行中にプログラムが操作するものである」という記載、同段落【0013】の「命令(または命令群)が命令デコード/発行論理16によってデコードされるたびに、読み取り対象となる論理レジスタは、それらの値が見つかる物理レジスタ「名」を探すための索引を、再命名ハードウェア(18)内の論理・物理(LP)マップ30に付ける。この「名前」は予約ステーション22に送られる。本発明に基づき、書き込み対象となる論理レジスタは、フリー・リスト32から物理レジスタ名を取り出し、物理レジスタ・スワップ・バス90を介して、当該物理レジスタ名をLPマップ30内に入れる。この時点でLPマップ30は、LPマップ30内のマッピング配列の一部である1個のマップ・セル、たとえばマップ・セル40内に、新しいレジスタ・マッピングが格納されることになる。したがってLPマップ30は、命令デコード/発行論理16が命令もしくは命令群をデコードされるたびに発生する異なるレジスタ・マッピング(論理・物理間) を格納する」という記載から、引用文献1においては、プログラムが操作する論理レジスタに対応付けられる物理レジスタを有するものと解される。
引用文献1の上記段落【0012】の「図2に示すLPマップ30およびフリー・リスト32は、4×4のマトリックス配列になっている。したがってLPマップ30は、4個の論理レジスタR0?R3をマッピング(割当)するための16個のマップ・セル40?55によって構成され」という記載、同段落【0013】の「読み取り対象となる論理レジスタは、それらの値が見つかる物理レジスタ「名」を探すための索引を、再命名ハードウェア(18)内の論理・物理(LP)マップ30に付ける」、「書き込み対象となる論理レジスタは、フリー・リスト32から物理レジスタ名を取り出し、物理レジスタ・スワップ・バス90を介して、当該物理レジスタ名をLPマップ30内に入れる。この時点でLPマップ30は、LPマップ30内のマッピング配列の一部である1個のマップ・セル、たとえばマップ・セル40内に、新しいレジスタ・マッピングが格納されることになる。したがってLPマップ30は、命令デコード/発行論理16が命令もしくは命令群をデコードされるたびに発生する異なるレジスタ・マッピング(論理・物理間) を格納する」という記載、同段落【0004】の「最初、すべての論理レジスタは、再命名機構によって、一意の物理レジスタ番号に割当られる」という記載、同段落【0029】の「特定の論理レジスタ番号(例:R0)」という記載から、引用文献1では、前記論理レジスタを指定する論理レジスタ番号に対して前記物理レジスタを指定する物理レジスタ番号を対応付けることにより、前記論理レジスタと前記物理レジスタとの対応関係を表すレジスタ・マッピングをLPマップ30に格納するものと解される。
引用文献1の上記段落【0011】の「シーケンサ12は各命令群(「PACKET」)を追跡して、再命名ハードウェア18および予約ステーション22に、各命令パケットの識別子(「発行ポイント」)を送出する」という記載と、同段落【0017】の「4つのADD命令によって構成される第1命令パケット(PACKET1)」、同段落【0022】の「2つのADD命令と2つのNOP命令によって構成される命令PACKET3」という記載によれば、引用文献1では、4個の命令から成る1つのパケットが検出される毎に発行ポイントを送出するものと解される。
引用文献1の上記段落【0012】の「LPマップ30は、M行およびX列を有するマップ・セル40?55のマトリックスによって構成され、ここでMはデータ処理システム10のアーキテクチャ・モデル内の論理レジスタの数に等しい整数であり、Xは発行ポイントの数に等しい整数である」、「図2に示すLPマップ30およびフリー・リスト32は、4×4のマトリックス配列になっている。したがってLPマップ30は、4個の論理レジスタR0?R3をマッピング(割当)するための16個のマップ・セル40?55によって構成され」という記載、同段落【0014】の「図3?図9は、データ処理システム10が本発明に従って実行するレジスタ再命名動作を順追って示したものである。この一連の例では、データ処理システム10は4個の論理レジスタ(R0?R3)と4個の発行ポイントを有しており」という記載、同段落【0018】の「第1発行ポイント(I1)におけるR0?R3のレジスタ・マッピングはそれぞれP4?P7となる」という記載、同段落【0021】の「第2発行ポイントにおけるR0?R3のレジスタ・マッピングは、図5に示すようにそれぞれP4,P9,P11,P8となる」という記載と、図2?9の記載によれば、引用文献1では、LPマップ30を構成する4行4列に配置された合計16個のマップ・セル群の各行(4個のマップ・セル)が、それぞれの発行ポイントに対応するレジスタ・マッピングを格納するようになっており、発行ポイントが送出されると使用するマップ・セル群の行を切り替えることによって、当該切り替え前に使用されていた行に記憶されていた過去の発行ポイントにおけるレジスタ・マッピングが保存されるようになっているものと解される。
また、引用文献1において発行ポイントが送出されて、上述の如く使用するマップ・セル群の行が切り替えられる際には、上記段落【0019】に「LPマップ30内でR0に以前割り当てられていた物理レジスタ名(P0)は、対応するフリー・リスト・セルのファースト(first) 名ラッチ116(図11)の中に格納され、これによって「不可視」となる。不可視レジスタとは、論理的な意味で上書きされたものであるが、分岐の予測誤りまたは例外によって、シーケンサ12が「バックアップ動作」を実行する必要があれば、可視にできるものをいう」と記載されているように、前記切り替え前の過去のレジスタ・マッピングによって論理レジスタに割り当てられていた物理レジスタは「不可視」となるので、当該物理レジスタに格納されていた値は書き換えられずに保存されることになるものと解される(なお、図5では、論理レジスタR0に対応付けられている物理レジスタP4は、レジスタ・マッピングの前後で変化していないが、これは、上記段落【0021】に「PACKET2でデコードされる命令はいずれも、論理レジスタR0のマッピングに影響を及ぼさないので」と記載されているように、論理レジスタR0への書き込みが行われていないからであり、この場合、論理レジスタR0に対応付けられている物理レジスタP4に格納されている値は、書き換えられずに保存されていることになる。また、仮に論理レジスタR0に書き込みが行われる場合には、該論理レジスタR0に対応付けられていた物理レジスタP4は、段落【0019】の上述の処理と同様の処理が行われて「不可視」となり、該物理レジスタP4に格納されていた値が書き換えられないように保存されることになるのは、当然である)。
引用文献1の上記段落【0028】の「例外(例:割り込み)発生の結果、または分岐予測の誤りが原因で、データ処理システム10が、シーケンサ12の状態を以前の発行ポイントに復元する必要がある場合には、「バックアップ」動作が実行される。図3?図8に示すように、データ処理システム10が実行するレジスタ再命名動作全体を通じて、後退チェックポイント(RETIRE POINT)はずっと同じ場所にあり、命令デコード/発行論理16が各命令パケットを発行すると直ちに、シーケンサ12は発行ポイントのみ(例:I1?I5)を進ませた。本発明では、例外状況または分岐予測誤りが発生すると、シーケンサ12は、レジスタ再命名ハードウェア18に、最新の良好な発行ポイント(たとえばチェックポイントI2)を提供し、再命名ハードウェア18は「バックアップ」を行い、これによって物理レジスタ・マッピングを発行ポイントI2に存在するレジスタ・マッピングに復元する」という記載と、同段落【0019】の「不可視レジスタとは、論理的な意味で上書きされたものであるが、分岐の予測誤りまたは例外によって、シーケンサ12が「バックアップ動作」を実行する必要があれば、可視にできるものをいう」という記載から、引用文献1において、例外が発生したことが検出されると、過去の発行ポイントにおける過去のレジスタ・マッピングを復元するものと解される(なお、上述のように、LPマップ30には4行4列のマップ・セル群が存在し、各行の4個のマップ・セルが各々の発行ポイントにおけるレジスタ・マッピングを記憶し、発行ポイントが送出されると使用する行を切り替えて過去のレジスタ・マッピングが記憶されていた行の内容を保存するようになっているので、過去のレジスタ・マッピングを復元する際には、行を切り替えて、過去のレジスタ・マッピングが保存されている行に含まれる4個のマップ・セルを使用するようにするものと解される)。また、過去のレジスタ・マッピングが復元されれば、前記過去のレジスタ・マッピングにおいて論理レジスタに割り当てられていた物理レジスタ(なお、当該物理レジスタは、上述の如く、「不可視」にされていたため、当該物理レジスタの内容は書き換えられずに保存されている。)が再び同じ論理レジスタに割り当てられて可視になり、可視になった当該物理レジスタの内容が利用可能になるものと解される。また、前記過去の発行ポイントとは、例外が発生する前の発行ポイントであるから、当該発行ポイントにおいては通常処理が行われていたものと解される。そして、過去の発行ポイントにおける過去のレジスタ・マッピングが復元されると、その発行ポイントから通常処理が再実行されるものと解される。また、例外が発生すると通常処理が停止することは、当業者にとっての技術常識である。
引用文献1の上記段落【0028】の「例外(例:割り込み)発生の結果、または分岐予測の誤りが原因で、データ処理システム10が、シーケンサ12の状態を以前の発行ポイントに復元する必要がある場合(中略)物理レジスタ・マッピングを発行ポイントI2に存在するレジスタ・マッピングに復元する」という記載から、引用文献1において「レジスタ・マッピング」は、「データ・プロセッサ」の「状態」の一種であると解される。
また、引用文献1には、データ・プロセッサにおいて命令実行を制御する方法が記載されていると言える。

したがって、引用文献1には次の発明(以下、「引用発明」という。)が記載されている。

命令を格納する命令キャッシュと、前記命令を発行する命令デコード/発行論理16と、前記命令を実行する実行装置24と、プログラムが操作する論理レジスタに対応付けられる物理レジスタとを有するデータ・プロセッサの命令実行制御方法において、
前記命令キャッシュが、命令を格納するステップと、
前記命令デコード/発行論理16が、前記命令キャッシュに格納された命令をプログラムの順序に従って受け取って、該命令デコード/発行論理16の内部に存在する命令デコード手段がデコードした命令を前記実行装置24に発行するステップと、
前記実行装置24が、前記発行された命令を実行するステップと、
前記論理レジスタを指定する論理レジスタ番号に対して前記物理レジスタを指定する物理レジスタ番号を対応付けることにより、前記論理レジスタと前記物理レジスタとの対応関係を表すレジスタ・マッピングをLPマップ30に格納するステップと、
前記論理レジスタに過去の発行ポイントにおける過去のレジスタ・マッピングによって割り当てられていた物理レジスタの内容が書き換えられないように保存するとともに、前記LPマップ30に記憶されている前記過去の発行ポイントにおける前記過去のレジスタ・マッピングを保存するように保存動作を行うことが必要となる発行ポイントを送出するステップであって、前記発行ポイントは4個の命令から成る1つのパケットが検出される毎に送出されるものであり、かつ、前記レジスタ・マッピングは前記データ・プロセッサの状態の一種であるステップと、
前記発行ポイントが送出された場合に、前記保存動作を実行するステップと、
データ・プロセッサの通常動作を停止させる例外が発生したことを検出するステップと、
発行ポイントが送出されて前記保存動作が実行された後に、例外が検出された場合に、前記LPマップ30に保存されている前記過去の発行ポイントにおける前記過去のレジスタマッピングを使用し、前記通常動作の実行に必要な前記過去のレジスタ・マッピングにおいて前記論理レジスタに割り当てられていた物理レジスタが可視になり、当該物理レジスタに記憶されている内容を利用可能にするステップを有することを特徴とする命令実行制御方法。

3.対比
次に、引用発明と本願発明とを対比する。
引用発明の「命令を格納する命令キャッシュ」を上位概念化して把握すると、本願発明の「命令を格納する命令記憶部」に相当する。
引用発明の「前記命令を発行する命令デコード/発行論理16」は命令を発行する処理を行っているから、本願発明の「前記命令を発行する命令発行部」に相当する。
引用発明の「前記命令を実行する実行装置24」は、本願発明の「前記命令を実行する命令実行部」に相当する。
プログラムが或る論理レジスタを操作するようにされているということは、そのような操作を行うように論理レジスタがそのプログラム上で定義されていることに他ならないから、引用発明の「プログラムが操作する論理レジスタに対応付けられる物理レジスタ」は、本願発明の「プログラム上で定義される論理レジスタに対応する物理レジスタ」に相当する。
引用発明の「データ・プロセッサ」は、本願発明の「中央処理ユニット」に相当する。
引用発明の「命令実行制御方法」は、本願発明の「命令制御方法」に相当する。
引用発明の「前記命令キャッシュが、命令を格納するステップ」は、本願発明の「前記命令記憶部が、命令を格納するステップ」に相当する。
引用発明の「前記命令デコード/発行論理16が、前記命令キャッシュに格納された命令をプログラムの順序に従って受け取って、該命令デコード/発行論理16の内部に存在する命令デコード手段がデコードした命令を前記実行装置24に発行するステップ」を上位概念化して把握すると、本願発明の「前記命令発行部が、プログラムの順序に従って前記命令記憶部に格納された命令を前記命令実行部に発行するステップ」に相当する。
引用発明の「前記実行装置24が、前記発行された命令を実行するステップ」は、本願発明の「前記命令実行部が、前記発行された命令を実行するステップ」に相当する。
引用発明の「前記論理レジスタと前記物理レジスタとの対応関係を表すレジスタ・マッピング」及び「LPマップ30」は、それぞれ本願発明の「前記論理レジスタと前記物理レジスタとの対応関係を表す情報」及び「リネームマップ記憶部」に相当するから、引用発明の「前記論理レジスタを指定する論理レジスタ番号に対して前記物理レジスタを指定する物理レジスタ番号を対応付けることにより、前記論理レジスタと前記物理レジスタとの対応関係を表すレジスタ・マッピングをLPマップ30に格納するステップ」は、本願発明の「前記論理レジスタを指定する論理レジスタ番号に対して前記物理レジスタを指定する物理レジスタ番号を対応付けることにより、前記論理レジスタと前記物理レジスタとの対応関係を表す情報をリネームマップ記憶部に格納するステップ」に相当する。
引用発明の「前記論理レジスタに過去の発行ポイントにおける過去のレジスタ・マッピングによって割り当てられていた物理レジスタの内容が書き換えられないように保存するとともに、前記LPマップ30に記憶されている前記過去の発行ポイントにおける前記過去のレジスタ・マッピングを保存するように保存動作を行うことが必要」を上位概念化して把握すると、本願発明の「前記論理レジスタと前記リネームマップ記憶部の内容を記憶するチェックポイント実行が必要」に相当する。したがって、引用発明の「前記論理レジスタに過去の発行ポイントにおける過去のレジスタ・マッピングによって割り当てられていた物理レジスタの内容が書き換えられないように保存するとともに、前記LPマップ30に記憶されている前記過去の発行ポイントにおける前記過去のレジスタ・マッピングを保存するように保存動作を行うことが必要となる発行ポイントを送出するステップであって、前記発行ポイントは4個の命令から成る1つのパケットが検出される毎に送出されるものであり、かつ、前記レジスタ・マッピングは前記データ・プロセッサの状態の一種であるステップと、前記発行ポイントが送出された場合に、前記保存動作を実行するステップ」と、本願発明の「前記論理レジスタと前記リネームマップ記憶部の内容を記憶するチェックポイント実行が必要なチェックポイント命令をデコードするステップと、前記命令発行部が発行した命令が、前記デコードするステップにおいて、チェックポイント命令であると識別された場合に、前記チェックポイント実行を行うステップ」とは、ともに、「前記論理レジスタと前記リネームマップ記憶部の内容を記憶するチェックポイント実行が必要となる現象を発生させるステップと、前記現象を発生させるステップにおいてチェックポイント実行が必要となる現象が発生した場合に、前記チェックポイント実行を行うステップ」である点において共通する。
引用発明の「データ・プロセッサの通常動作を停止させる例外が発生したことを検出するステップ」と、本願発明の「中央処理ユニットの通常動作を停止させる例外処理を発生させる例外処理発生命令の実行により、前記例外処理が発生したことを検出するステップ」とは、ともに、「中央処理ユニットの通常動作を停止させる例外処理が発生したことを検出するステップ」である点において共通する。
引用発明の「発行ポイントが送出されて前記保存動作が実行された後」と、本願発明の「前記チェックポイント命令の実行後」とは、ともに、「前記チェックポイント実行後」である点において共通し、また、引用発明の「前記LPマップ30に保存されている前記過去の発行ポイントにおける前記過去のレジスタマッピングを使用し、前記通常動作の実行に必要な前記過去のレジスタ・マッピングにおいて前記論理レジスタに割り当てられていた物理レジスタが可視になり、当該物理レジスタに記憶されている内容を利用可能にする」を上位概念化して把握すると、本願発明の「前記リネームマップ記憶部に格納された情報を用いて、前記通常動作の実行に必要な前記論理レジスタの内容を復元する」に相当するから、引用発明の「発行ポイントが送出されて前記保存動作が実行された後に、例外が検出された場合に、前記LPマップ30に保存されている前記過去の発行ポイントにおける前記過去のレジスタマッピングを使用し、前記通常動作の実行に必要な前記過去のレジスタ・マッピングにおいて前記論理レジスタに割り当てられていた物理レジスタが可視になり、当該物理レジスタに記憶されている内容を利用可能にするステップ」と、本願発明の「前記チェックポイント命令の実行後に、例外処理が検出された場合に、前記リネームマップ記憶部に格納された情報を用いて、前記通常動作の実行に必要な前記論理レジスタの内容を復元するステップ」とは、ともに、「前記チェックポイント実行後に、例外処理が検出された場合に、前記リネームマップ記憶部に格納された情報を用いて、前記通常動作の実行に必要な前記論理レジスタの内容を復元するステップ」である点において共通する。

したがって、引用発明と本願発明とは、以下の点において一致し、また、相違する。

(一致点)
命令を格納する命令記憶部と前記命令を発行する命令発行部と前記命令を実行する命令実行部とプログラム上で定義される論理レジスタに対応する物理レジスタとを有する中央処理ユニットの命令制御方法において、
前記命令記憶部が、命令を格納するステップと、
前記命令発行部が、プログラムの順序に従って前記命令記憶部に格納された命令を前記命令実行部に発行するステップと、
前記命令実行部が、前記発行された命令を実行するステップと、
前記論理レジスタを指定する論理レジスタ番号に対して前記物理レジスタを指定する物理レジスタ番号を対応付けることにより、前記論理レジスタと前記物理レジスタとの対応関係を表す情報をリネームマップ記憶部に格納するステップと、
前記論理レジスタと前記リネームマップ記憶部の内容を記憶するチェックポイント実行が必要となる現象を発生させるステップと、
前記現象を発生させるステップにおいてチェックポイント実行が必要となる現象が発生した場合に、前記チェックポイント実行を行うステップと、
中央処理ユニットの通常動作を停止させる例外処理が発生したことを検出するステップと、
前記チェックポイント実行後に、例外処理が検出された場合に、前記リネームマップ記憶部に格納された情報を用いて、前記通常動作の実行に必要な前記論理レジスタの内容を復元するステップを有することを特徴とする命令制御方法。

(相違点1)
チェックポイント実行が必要となる現象が、本願発明では、命令発行部が発行した命令が、チェックポイント命令をデコードするステップにおいてチェックポイント命令であると識別されることによって発生するのに対し、引用発明では、4個の命令から成る1つのパケットが検出される毎に送出される発行ポイントの送出によって発生するものである点。

(相違点2)
例外処理の発生の検出が、本願発明では例外処理を発生させる例外処理発生命令の実行により検出されるのに対し、引用発明ではどのように検出するのか明記されていない点。

(相違点3)
例外処理が検出された場合に、前記リネームマップ記憶部に格納された情報を用いて、前記通常動作の実行に必要な前記論理レジスタの内容を復元するステップが、本願発明では前記チェックポイント命令の実行後に行われるのに対し、引用発明では、発行ポイントが送出されて前記保存動作が実行された後に行われるものである点。

4.判断
上記相違点の各々について検討する。
まず、上記相違点1及び3について検討する。
原審の拒絶理由において引用文献2として挙げられている国際公開第93/22722号(以下、「引用文献2」という。)は、本願の最先優先日よりも前に頒布された文献であって、「BACKGROUND OF THE INVENTION(発明の背景)」という表題を付けて従来技術の説明を行っている記載箇所において、以下の(2-1)、(2-2)の記載が存在している。

(2-1)「In a second scenario, out-of-order completion makes it difficult to deal with exceptions. Exceptions are created by instructions when the instruction cannot be properly executed by hardware alone. These exceptions are commonly handled by interrupts, permitting a software routine to correct the situation. Once the routine is completed, the execution of the interrupted program must be restarted so it can continue as before the exception.
Processors contains information that must be saved for a program to be suspended and then restored for execution to continue. This information is known as the 'state' of the processor. The state information typically includes a program counter(PC), an interrupt address register(IAR), and a program status register(PSR); the PSR contains status flags such as interrupt enable, condition codes, and so forth.(第2の状況では、順不同に完了することが、例外を取り扱うことを困難にする。例外は、命令をハードウェアのみで正しく実行できない場合に、その命令によって作られる。これらの例外は、一般的には割り込みによって処理され、ソフトウェアルーチンがその状況を訂正する。ひとたびそのルーチンが完了すれば、その例外が起きる以前のごとくプログラムの実行を続けるため、割り込まれたプログラムの実行はリスタートされなければならない。
プログラムを一時停止するために保存され、実行を継続するために復元されるべき情報を、プロセッサは持っている。この情報はプロセッサの「状態」として知られている。その状態情報は、典型的には、プログラムカウンタ(PC)、割り込みアドレスレジスタ(IAR)、及びプログラムステータスレジスタ(PSR)を含み、PSRは、割り込み許可、条件コードなどのステータス・フラッグを含んでいる。)(括弧書きは当審による翻訳文。以下、同じ。)」(明細書第2頁第31行?第3頁第3行)

(2-2)「One method used in conventional systems to recover from misdirected branches and exceptions is known as checkpoint repair. In checkpoint repair, the processor provides a set of logical spaces, only one of which is used for current execution. The other logical spaces contain backup copies of the in-order state, each corresponding to a previous point in execution. During execution, a checkpoint is made by copying the current architectural state to a backup space. At this time, the oldest backup state is discarded. The checkpoint is updated as instructions are executed until an in-order state is reached. If an exception occurs, all previous instructions are allowed to execute, thus bringing the checkpoint to the in-order state.
To minimize the amount of required overhead, checkpoints are not made at every instruction. When an exceptipn occurs, restarting is accomplished by loading the contents of the checkpointed state preceding the point of exception, and then executing the instructions in order up to the point of exception. For branch misprediction recovery, checkpoints are made at every branch and contain the precise state at which to restart execution immediately.(間違った分岐及び例外から回復するために従来のシステムで用いられているひとつの方法は、チェックポイント修復として知られでいる。チェックポイント修復では、プロセッサは、いくつかの論理空間を提供し、現行の実行には、それらの論理空間のうちの1つのみが使用される。その他の論理空間は、イン・オーダ状態のバックアップ・コピーを含んでおり、それぞれは、実行における以前の時点に対応している。実行中に、現在のアーキテクチャ状態をバックアップ空間にコピーすることによって、1つのチェックポイントが作成される。このとき、最も古いバックアップ状態は捨てられる。イン・オーダ状態に達するまで、命令が実行されるごとにチェックポイントは更新される。もしも例外が発生したら、以前のすべての命令が実行され、従ってチェックポイントをイン・オーダ状態へともたらす。
要求されるオーバヘッドの量を最小にするため、チェックポイントは個々の命令ごとには作成されない。例外が発生するときには、例外発生時点に先行するチェックポイントされた状態の内容をローディングしてから、例外発生時点まで順序とおり命令を実行することによって、リスタートは達成される。分岐予測外れに対する回復のため、各々の分岐に対してチェックポイントが作成され、それは実行を即座にリスタートするための正確な状態を含む。)」(明細書第3頁第32行?第4頁第7行)

引用文献2に上述の如く従来技術として記載されているように、プロセッサの「状態」をチェックポイントとして保存し、例外が発生すると前記保存されている状態を用いてリスタートを行うものにおいて、チェックポイントとして前記状態を保存する処理を個々の命令ごとには行わず、分岐が発生するたびにチェックポイントとしてリスタートのための前記状態を保存するようにすることは、周知技術である。
引用発明において保存されている「レジスタ・マッピング」は「状態」の一種であるから、引用発明において前記保存を行うタイミングとして、4個の命令から成る1つのパケットが検出される毎に送出される発行ポイントに代えて、前記周知技術を採用して、分岐が発生するごとに前記保存を行うようにすることは、当業者が容易に想到し得た事項に過ぎない。また、前記周知技術を採用するためには、分岐が発生したことを検出する必要があることは当然であるが、分岐の発生を検出するために分岐命令を命令デコーダで検出することは当該技術分野において慣用的に使用されている慣用技術に過ぎず、引用発明において命令を発行する命令デコード/発行論理16はその内部に命令デコード手段を有しているから、前記周知技術を採用する際に、引用発明の前記命令デコード手段を用いて分岐命令(本願発明の「チェックポイント命令」に相当)を検出するようにすることは、前記周知技術を採用することに合わせて当然行うべき設計変更に過ぎない。
このように、引用発明において前記周知技術を採用し、その際に上述の慣用技術を用いた設計変更を行うと、引用発明の「保存動作を行うことが必要となる発行ポイントを送出するステップであって、前記発行ポイントは4個の命令から成る1つのパケットが検出される毎に送出されるものであり、かつ、前記レジスタ・マッピングは前記データ・プロセッサの状態の一種であるステップと、前記発行ポイントが送出された場合に、前記保存動作を実行するステップ」は、「保存動作を行うことが必要となる分岐命令を前記命令デコード手段でデコードするステップであって、前記レジスタ・マッピングは前記データ・プロセッサの状態の一種であるステップと、前記命令デコード/発行論理16が発行した命令が、前記命令デコード手段でデコードするステップにおいて、分岐命令であると識別された場合に、前記保存動作を実行するステップ」となり、引用発明の「発行ポイントが送出されて前記保存動作が実行された後に」は、「前記分岐命令が識別され実行されて前記保存動作が実行された後に」となる(なお、命令デコード手段で識別された分岐命令が実行されるのは当然である。)から、したがって、上記相違点1及び3は、格別のものではない。

次に、上記相違点2について検討する。
例外処理を発生させる原因となる命令を実行することによって例外処理が発生すると、その例外処理が検出されることは、例えば上記引用文献2の上記(2-1)に記載されているように周知技術に過ぎず、この周知技術を用いて引用発明の「データ・プロセッサの通常動作を停止させる例外が発生したことを検出するステップ」において、例外処理を発生させる例外処理発生命令の実行により例外処理が発生したことを検出するようにすることは、当業者が容易に想到し得た事項に過ぎない。
したがって、上記相違点2は、格別のものではない。

以上のように、相違点1乃至3は、いずれも格別のものではなく、本願発明の構成は引用文献1記載の引用発明、引用文献2記載の周知技術、並びに上述の慣用技術に基づいて当業者が容易に想到し得たものである。
そして、当該構成の採用によって奏される作用効果も、当業者であれば当然に予測し得る程度のものであって、格別顕著なものではない。
よって、本願発明は、引用文献1記載の引用発明に基づいて当業者が容易に発明をすることができたものである。

5.結び
以上述べたように、本願発明は引用文献1記載の引用発明に基づいて当業者が容易に発明をすることができたものであるから、特許法第29条第2項の規定により特許を受けることができない。
したがって、結論のとおり審決する。
 
審理終結日 2009-09-09 
結審通知日 2009-09-15 
審決日 2009-09-29 
出願番号 特願2007-180315(P2007-180315)
審決分類 P 1 8・ 121- Z (G06F)
最終処分 不成立  
前審関与審査官 大塚 良平塚田 肇鳥居 稔  
特許庁審判長 吉岡 浩
特許庁審判官 久保 光宏
赤川 誠一
発明の名称 特殊機能を提供する高性能投機的実行プロセッサの構造及び方法  
代理人 倉地 保幸  
代理人 樋口 外治  
代理人 伊坪 公一  
代理人 青木 篤  
代理人 榎原 正巳  
代理人 小林 龍  

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