【事件の表示】
　特願２００６−５２６４３６「バーチャルマシーンの動作の復帰に対する割込又は実行のベクトル処理」拒絶査定不服審判事件〔平成１７年　３月３１日国際公開、ＷＯ２００５／０２９３２７、平成１９年　３月１５日国内公表、特表２００７−５０６１６２〕について、次のとおり審決する。
【結　論】
　本件審判の請求は、成り立たない。
【理　由】
第１．手続の経緯
　本願は、
　２００４年９月１５日（パリ条約による優先権主張外国庁受理２００３年９月１５日、アメリカ合衆国）を国際出願日とする出願であって、
　平成１８年３月１４日付けで特許法第１８４条の５第１項に規定される書面が提出されるとともに、国際出願日における明細書、請求の範囲、図面（図面の中の説明に限る。）及び要約の翻訳文が提出され、
　平成２１年１月２３日付けで最初の拒絶理由通知（同年同月２７日発送）がなされ、
　同年４月２７日付けで意見書が提出されるとともに、手続補正がなされ、
　同年７月２７日付けで拒絶査定（同年８月４日発送）がなされ、
　同年１２月４日付けで審判請求がなされるとともに、手続補正がなされ、
　平成２２年２月２３日付けで審査官より同法第１６４条第３項で規定する報告（前置報告）がなされ、
　平成２３年１月１８日付けで当審より審尋（同年同月２５日発送）がなされ、
　同年４月２２日付けで回答書が提出され、
　同年９月１４日付けで当審より最初の拒絶理由通知（同年同月２０日発送）がなされ、
　同年１２月２０日付けで意見書が提出されるとともに、手続補正がなされたものである。
　
第２．本願発明の認定
　本願の請求項１に係る発明（以下、「本願発明」という。）は、平成２３年１２月２０日付けの手続補正により補正された、本願の特許請求の範囲の請求項１に記載された次のものと認められる。
　
「バーチャルマシーンモニタ（ＶＭＭ）からバーチャルマシーン（ＶＭ）に制御を移行する要求を受け付けるステップと、
　前記ＶＭＭが前記ＶＭへの第１フォルトの送信を要求したか判断するステップと、
　前記ＶＭＭが前記ＶＭへの前記第１フォルトの送信を要求していた場合、前記ＶＭへの制御の移行の際に前記ＶＭに前記第１フォルトを送信するステップと、
　前記ＶＭＭが前記ＶＭへの前記第１フォルトの送信を要求していなかった場合、前記ＶＭに前記第１フォルトを送信することなく前記ＶＭに制御を移行するステップと、
　前記ＶＭへの第１フォルトの送信がさらなるフォルトを生じさせる場合、前記第１フォルトの送信失敗から生じた前記さらなるフォルトが前記ＶＭに送信されるべきか判断するステップと、
から構成されることを特徴とする方法。」
　
第３．先行技術文献に記載されている技術的事項と先行技術文献に記載されている発明の認定
　
１．引用例１に記載されている技術的事項
　当審が平成２３年９月１４日付け拒絶理由通知において引用した特開昭６１−１８４６４３号公報（昭和６１年８月１８日出願公開。以下、「引用例１」という。）には、図面とともに以下の技術的事項が記載されている。
　
（１の１）
「本実施例は、ハードウェア上において、ＶＭに起動をかける理由がＶＭへの割込みであるか否かの情報によりそれぞれに対して適切な処理を実行するというものである。
　まず、前述の仮想計算機システムの処理実行の高速化の必要性に答えるためには、（ｉ）ＶＭへ起動をかける理由が割込みであるか否かを識別すること、（ｉｉ）割込みであった場合、スタックにＶＭ情報を退避し、対象ＶＭの割込みハンドラーへ制御を移すこと、などをハードウェア上で行う必要がある。
　上記（ｉ）を具体化するためにハードレジスタを用意する。このハードレジスタの例を第２図に示す。…（中略）…このハードレジスタ２０上に、ＶＭへ起動をかける理由が割込みであるか否かを示すフラグ（割込み識別子）２１を設定する（任意の１ビットを使用する）。　このフラグ２１の値は、ＶＭを起動する前にＶＭＣＰ１−１がセットする。…（中略）…
　上記（ｉｉ）を具体化した場合のＶＭ起動処理（割込み識別フラグ判定、制御移動処理等）についての計算機ハードウェアの動作フローチャートを第３図に示す。
　以下、第３図の処理フローチャートを説明する。
　ＶＭＣＰ１−１での処理終了後、該当ＶＭ起動に当って、まず割込み識別フラグ２１に識別子のセットを行う。そして、ＶＭ起動をハードウェアに掲示する（ＶＭ起動命令を実行する）。
　ＶＭ起動命令では、まずハードレジスタ２０上の割込み識別フラグ２１を参照し（ステップ１００）、“０”がセットされているならば、ＶＭ起動の理由は割込み以外であるから、現在スタックにつまれているＰＣ（プログラムカウンタ）、ＳＲ（ステータスレジスタ）を回復する（ステップ１０１）。これによってＶＭ上の次の命令へ制御が移る。一方、識別フラグ２１が“１”である場合は、ＶＭ起動の理由は割込みであるから、ＶＭ上の割込みハンドラーへ制御が移るように退避してあるスタック内容を回復し（ステップ１０２）、再度ＶＭ上のＰＣ，ＳＲを割込みベクタ番号と共にスタックへ退避する（ステップ１０３）。このＰＣ，ＳＲは、割込みハンドラー実行後に制御が移るＶＭ上の次の命令アドレス等の情報である。そして、対象ＶＭの割込みハンドラーへ制御を移すためのＳＲの値を作成し、ロードベクタテーブルよりＰＣをロードする（ステップ１０４）。これに従って制御は割込ハンドラーへ移る。」
（第３頁左下欄第１３行目〜第４頁右上欄第３行目）　
　
（１の２）
「第１図は、本発明の一実施例を示す仮想計算機システムの処理概要図である。
　第１図において、１−１は仮想計算機制御プログラム（ＶＭＣＰ）、２−１〜２−ｎは仮想計算機（ＶＭ）、５はＶＭサポート機能（ハードウェア）、５−１は本発明の主要部をなすＶＭの起動制御機能（ハードウェア）、６はＳＲやＰＣの値を退避するスタックである。ＶＭＣＰ１−１にはシミュレーションプログラム１−１−２，ＶＭ起動命令１−１−４が入っている。ここで、斜線をひいた部分（ＶＭの起動制御機能５−１）が上記で述べた（第２図、第３図参照）本発明の部分である。また、ここにはスタックの退避／回復についても記入してある。以下でこれについて簡単に説明する。
　ＶＭ（２−１〜２−ｎ）から何らかの要求が発生したときには、ハードウェア上で実現されているＶＭサポート機能５を経由してＶＭＣＰ１−１へ制御が移る。そして、このＶＭＣＰ１−１での処理が終了した時、又は割込みを受けた時に、ＶＭＣＰ１−１は割込みか否かの識別をハードレジスタ２０にセットすると共に、ＶＭサポート機能５内に設けたＶＭの起動制御機能５−１により起動制御を行い、割込みならば割込みハンドラーへ、それ以外ならばＶＭの次の命令へと制御を移す。」
（第４頁右上欄第４行目〜同頁左下欄第７行目）
　
（１の３）
「また、本実施例では、割込みか否かを識別するフラグをハードレジスタ２０を用いて設定しているが、これはソフトウェアで行うこともできる。ソフトウェアで行う例として、例えば各ＶＭＣＢ（Ｖｉｒｔｕａｌ　Ｍａｃｈｉｎｅ　Ｃｏｎｔｒｏｌ　Ｂｌｏｃｋ）の中に設定してもよい。」
（第４頁左下欄第１０行目〜同頁同欄第１５行目）
　
２．引用発明の認定
　上記（１の２）に「第１図は、本発明の一実施例を示す仮想計算機システムの処理概要図である。…（中略）…５はＶＭサポート機能（ハードウェア）、５−１は本発明の主要部をなすＶＭの起動制御機能（ハードウェア）…（中略）…である。」と記載されていることから明らかなように、引用例１における「ＶＭサポート機能５」及び「ＶＭの起動制御機能５−１」はハードウェアである。
　
　上記（１の１）に「ＶＭ起動処理（割込み識別フラグ判定、制御移動処理等）についての計算機ハードウェアの動作フローチャートを第３図に示す。…（中略）…ＶＭＣＰ１−１での処理終了後、該当ＶＭ起動に当って…（中略）…ＶＭ起動をハードウェアに掲示する（ＶＭ起動命令を実行する）。」と記載され、上記（１の２）に「第１図は、本発明の一実施例を示す仮想計算機システムの処理概要図である。…（中略）…１−１は仮想計算機制御プログラム（ＶＭＣＰ）、２−１〜２−ｎは仮想計算機（ＶＭ）、５はＶＭサポート機能（ハードウェア）、５−１は本発明の主要部をなすＶＭの起動制御機能（ハードウェア）…（中略）…である。ＶＭＣＰ１−１には…（中略）…ＶＭ起動命令１−１−４が入っている。…（中略）…このＶＭＣＰ１−１での処理が終了した時、又は割込みを受けた時に、…（中略）…ＶＭＣＰ１−１は…（中略）…ＶＭサポート機能５内に設けたＶＭの起動制御機能５−１により起動制御を行い、割込みならば割込みハンドラーへ、それ以外ならばＶＭの次の命令へと制御を移す。」と記載されていることから明らかなように、引用例１においては、仮想計算機制御プログラムＶＭＣＰから仮想計算機ＶＭに制御を移行する要求であるＶＭ起動命令を、ハードウェアであるＶＭの起動制御機能５−１が受け付けるステップがある。
　
　上記（１の１）に「ＶＭ起動処理（割込み識別フラグ判定、制御移動処理等）についての計算機ハードウェアの動作フローチャートを第３図に示す。…（中略）…ＶＭＣＰ１−１での処理終了後、該当ＶＭ起動に当って、まず割込み識別フラグ２１に識別子のセットを行う。そして、ＶＭ起動をハードウェアに掲示する（ＶＭ起動命令を実行する）。…（改行）…ＶＭ起動命令では、まずハードレジスタ２０上の割込み識別フラグ２１を参照し（ステップ１００）、“０”がセットされているならば、ＶＭ起動の理由は割込み以外であるから、…（中略）…一方、識別フラグ２１が“１”である場合は、ＶＭ起動の理由は割込みであるから…（後略）…」と記載され、上記（１の２）に「第１図は、本発明の一実施例を示す仮想計算機システムの処理概要図である。…（中略）…１−１は仮想計算機制御プログラム（ＶＭＣＰ）、２−１〜２−ｎは仮想計算機（ＶＭ）、５はＶＭサポート機能（ハードウェア）、５−１は本発明の主要部をなすＶＭの起動制御機能（ハードウェア）…（中略）…である。ＶＭＣＰ１−１には…（中略）…ＶＭ起動命令１−１−４が入っている。ここで、斜線をひいた部分（ＶＭの起動制御機能５−１）が上記で述べた（第２図、第３図参照）本発明の部分である。…（中略）…このＶＭＣＰ１−１での処理が終了した時、又は割込みを受けた時に、ＶＭＣＰ１−１は割込みか否かの識別をハードレジスタ２０にセットすると共に、ＶＭサポート機能５内に設けたＶＭの起動制御機能５−１により起動制御を行い、割込みならば割込みハンドラーへ、それ以外ならばＶＭの次の命令へと制御を移す。」と記載されていることから、引用例１においては、仮想計算機制御プログラムＶＭＣＰが設定したフラグに基づいて、仮想計算機制御プログラムＶＭＣＰが仮想計算機ＶＭを起動する理由が割込であるかを、ハードウェアであるＶＭの起動制御機能５−１が判断するものである。
　また、上記（１の３）に「本実施例では、割込みか否かを識別するフラグをハードレジスタ２０を用いて設定しているが、これはソフトウェアで行うこともできる。ソフトウェアで行う例として、例えば各ＶＭＣＢ（Ｖｉｒｔｕａｌ　Ｍａｃｈｉｎｅ　Ｃｏｎｔｒｏｌ　Ｂｌｏｃｋ）の中に設定してもよい。」と記載されていることから、引用例１には、仮想計算機制御プログラムＶＭＣＰが設定するフラグをＶｉｒｔｕａｌ　Ｍａｃｈｉｎｅ　Ｃｏｎｔｒｏｌ　Ｂｌｏｃｋ（ＶＭＣＢ）内のものとすることが示されている。
　よって、引用例１においては、仮想計算機制御プログラムＶＭＣＰがＶｉｒｔｕａｌ　Ｍａｃｈｉｎｅ　Ｃｏｎｔｒｏｌ　Ｂｌｏｃｋ（ＶＭＣＢ）内に設定したフラグに基づいて、仮想計算機制御プログラムＶＭＣＰが仮想計算機ＶＭを起動する理由が割込であるかを、ハードウェアであるＶＭの起動制御機能５−１が判断するステップがある。
　
　上記（１の１）に「ＶＭ起動処理（割込み識別フラグ判定、制御移動処理等）についての計算機ハードウェアの動作フローチャートを第３図に示す。…（中略）…ＶＭＣＰ１−１での処理終了後、該当ＶＭ起動に当って、まず割込み識別フラグ２１に識別子のセットを行う。そして、ＶＭ起動をハードウェアに掲示する（ＶＭ起動命令を実行する）。…（改行）…ＶＭ起動命令では、まずハードレジスタ２０上の割込み識別フラグ２１を参照し（ステップ１００）、…（中略）…識別フラグ２１が“１”である場合は、ＶＭ起動の理由は割込みであるから、ＶＭ上の割込みハンドラーへ制御が移るように…（中略）…これに従って制御は割込ハンドラーへ移る。」と記載され、上記（１の２）に「第１図は、本発明の一実施例を示す仮想計算機システムの処理概要図である。…（中略）…１−１は仮想計算機制御プログラム（ＶＭＣＰ）、２−１〜２−ｎは仮想計算機（ＶＭ）、５はＶＭサポート機能（ハードウェア）、５−１は本発明の主要部をなすＶＭの起動制御機能（ハードウェア）…（中略）…である。ＶＭＣＰ１−１には…（中略）…ＶＭ起動命令１−１−４が入っている。ここで、斜線をひいた部分（ＶＭの起動制御機能５−１）が上記で述べた（第２図、第３図参照）本発明の部分である。…（中略）…このＶＭＣＰ１−１での処理が終了した時、又は割込みを受けた時に、ＶＭＣＰ１−１は割込みか否かの識別をハードレジスタ２０にセットすると共に、ＶＭサポート機能５内に設けたＶＭの起動制御機能５−１により起動制御を行い、割込みならば割込みハンドラーへ…（中略）…と制御を移す。」と記載されていることから明らかなように、引用例１においては、仮想計算機制御プログラムＶＭＣＰが仮想計算機ＶＭを起動する理由が割込である場合、仮想計算機ＶＭへの制御の移行の際にＶＭの割込ハンドラーに制御を移すことを、ハードウェアであるＶＭの起動制御機能５−１が行うステップがある。
　
　上記（１の１）に「ＶＭ起動処理（割込み識別フラグ判定、制御移動処理等）についての計算機ハードウェアの動作フローチャートを第３図に示す。…（中略）…ＶＭＣＰ１−１での処理終了後、該当ＶＭ起動に当って、まず割込み識別フラグ２１に識別子のセットを行う。そして、ＶＭ起動をハードウェアに掲示する（ＶＭ起動命令を実行する）。…（改行）…ＶＭ起動命令では、まずハードレジスタ２０上の割込み識別フラグ２１を参照し（ステップ１００）、“０”がセットされているならば、ＶＭ起動の理由は割込み以外であるから、…（中略）…これによってＶＭ上の次の命令へ制御が移る。」と記載され、上記（１の２）に「第１図は、本発明の一実施例を示す仮想計算機システムの処理概要図である。…（中略）…１−１は仮想計算機制御プログラム（ＶＭＣＰ）、２−１〜２−ｎは仮想計算機（ＶＭ）、５はＶＭサポート機能（ハードウェア）、５−１は本発明の主要部をなすＶＭの起動制御機能（ハードウェア）…（中略）…である。ＶＭＣＰ１−１には…（中略）…ＶＭ起動命令１−１−４が入っている。ここで、斜線をひいた部分（ＶＭの起動制御機能５−１）が上記で述べた（第２図、第３図参照）本発明の部分である。…（中略）…このＶＭＣＰ１−１での処理が終了した時、又は割込みを受けた時に、ＶＭＣＰ１−１は割込みか否かの識別をハードレジスタ２０にセットすると共に、ＶＭサポート機能５内に設けたＶＭの起動制御機能５−１により起動制御を行い、割込みならば…（中略）…それ以外ならばＶＭの次の命令へと制御を移す。」と記載されていることから明らかなように、引用例１においては、仮想計算機制御プログラムＶＭＣＰが仮想計算機ＶＭを起動する理由が割込でない場合、仮想計算機ＶＭへの制御の移行の際にＶＭ上の次の命令に制御を移すことを、ハードウェアであるＶＭの起動制御機能５−１が行うステップがある。
　
　上記引用例１の記載事項及び図面を総合勘案すると、引用例１には、次の発明（以下、「引用発明」という。）が記載されていると認められる。
　
「ハードウェアであるＶＭサポート機能及びＶＭの起動制御機能により実行される方法であって、
　仮想計算機制御プログラムＶＭＣＰから仮想計算機ＶＭに制御を移行する要求であるＶＭ起動命令を受け付けるステップと、
　仮想計算機制御プログラムＶＭＣＰがＶｉｒｔｕａｌ　Ｍａｃｈｉｎｅ　Ｃｏｎｔｒｏｌ　Ｂｌｏｃｋ（ＶＭＣＢ）内に設定したフラグに基づいて、仮想計算機制御プログラムＶＭＣＰが仮想計算機ＶＭを起動する理由が割込であるか判断するステップと、
　仮想計算機制御プログラムＶＭＣＰが仮想計算機ＶＭを起動する理由が割込である場合、仮想計算機ＶＭへの制御の移行の際にＶＭの割込ハンドラーに制御を移すステップと、
　仮想計算機制御プログラムＶＭＣＰが仮想計算機ＶＭを起動する理由が割込でない場合、仮想計算機ＶＭへの制御の移行の際にＶＭ上の次の命令に制御を移すステップと
から構成されることを特徴とする方法。」
　
３．引用例２に記載されている技術的事項
　当審が平成２３年９月１４日付け拒絶理由通知において引用した国際公開第０２／０５２４０４号（２００２年７月４日国際公開。以下、「引用例２」という。）には、図面とともに以下の技術的事項が記載されている。仮訳は当審が訳出したものである。
　
（２の１）
「A conventional virtual-machine monitor (VMM) typically runs on a computer and presents to other software the abstraction of one or more virtual machines. Each virtual machine may function as a self-contained platform, running its own guest operating system (i.e., an operating system hosted by the VMM). The guest operating system expects to operate as if it were running on a dedicated computer rather than a virtual machine. That is, the guest operating system expects to control various computer operations and have access to hardware resources during these operations. The hardware resources may include processor-resident resources (e.g., control registers) and resources that reside in memory (e.g., descriptor tables). 」
（明細書第１頁第１０行目〜同頁第１９行目。
　仮訳：従来の仮想計算機モニタ（ＶＭＭ）は典型的には一つのコンピュータ上で動作し、ＶＭＭは他のソフトウェアに１つまたは複数の仮想計算機のアブストラクションを提供する。それぞれの仮想計算機は、自前のプラットホームであるかのように動作し、それ自身の”ゲストオペレーティングシステム”を動作させる。（つまりは、このゲートオペレーティングシステムは、ＶＭＭにホストされたオペレーティングシステムである。）ゲストオペレーティングシステムは、仮想計算機上というよりも専用に割り当てられた計算機上で動作しているかのように、動作することを期待する。つまり、様々なコンピュータオペレーションを制御し、これらのオペレーションを通じてハードウェア資源へアクセスすることを、ゲストオペレーティングシステムは期待する。ここでのハードウェア資源には、プロセッサに存在する資源（例えば、コントロールレジスタ）やメモリ内に存在する資源（例えば、ディスクリプタテーブル）が含まれうる。）
　　
（２の２）
「The method and apparatus of the present invention provide processor support for a virtual-machine monitor (VMM). FIG. 1 illustrates one embodiment of a virtual-machine environment 100, in which the present invention may operate. In this embodiment, bare platform hardware 116 comprises a computing platform, which may be capable, for example, of executing a standard operating system (OS) or a virtual-machine monitor (VMM), such as a VMM 112. A VMM, though typically implemented in software, may export a bare machine interface, such as an emulation, to higher level software. Such higher level software may comprise a standard or real-time OS, although the invention is not limited in scope in this respect and, alternatively, for example, a VMM may be run within, or on top of, another VMM. VMMs and their typical features and functionality are well-known by those skilled in the art and may be implemented, for example, in software, firmware or by a combination of various techniques. 
 As described above, a VMM presents to other software (i.e., guest software) the abstraction of one or more virtual machines (VMs). FIG. 1 shows two VMs, 102 and 114. The guest software of each VM includes a guest OS such as a guest OS 104 or 106 and various guest software applications 108-110. Each of the guest OSs 104 and 106 expects to control access to physical resources (e.g., processor registers, memory and memory-mapped I/O devices) within the hardware platform on which the guest OS 104 or 106 is running and to perform other functions. 」
（明細書第６頁第２０行目〜第７頁第１８行目。
　仮訳：本発明の方法及び装置は、仮想計算機モニタ（ＶＭＭ）のためのプロセッササポートを提供する。図１は、仮想計算機環境１００の一具体例を示したものである。この具体例では、ベアプラットホームハードウェア１１６はコンピューティングプラットホームを含む。このコンピューティングプラットホームは、例えば、標準的なオペレーティングスシステム（ＯＳ）か、ＶＭＭ１１２のような仮想計算機モニタ（ＶＭＭ）を実行しうる。ＶＭＭは典型的にはソフトウェアにより実装されているものの、ＶＭＭはベアマシンインターフェースを、より高レベルのソフトウェアにエミュレーションの如くエクスポートする。ここでの、より高レベルのソフトウェアには、標準ＯＳやリアルタイムＯＳが含まれうるが、本発明はそのようなものに限定されるものではない。加えて、例えば、あるＶＭＭが別のＶＭＭの中または上で動作しうる。ＶＭＭやＶＭＭの典型的な特徴やＶＭＭの機能は当業者にはよく知られており、ソフトウェア、ファームウェアに実装されるか、様々な技術の結合により実装されうる。
　既に述べたように、ＶＭＭは他のソフトウェア（例えば、”ゲスト”ソフトウェア）に１つまたは複数の仮想計算機（ＶＭ）のアブストラクションを提供する。図１は、２つのＶＭ１０２と１１４を示す。それぞれのＶＭのゲストソフトウェアには、ゲストＯＳ１０４または１０６のようなゲストＯＳと、様々なゲストソフトウェアアプリケーション１０８−１１０が含まれる。ゲストＯＳ１０４、１０６が動作しているハードウェアプラットホーム内の物理的資源（例えば、プロセッサレジスタ、メモリ、メモリマップドＩ／Ｏデバイス）へのアクセスを制御することやその他のファンクションを行うことを、それぞれのゲストＯＳ１０４、１０６は期待する。）
　
（２の３）
「Referring to FIG. 3, all guest software runs at a processor mode referred to herein as a virtual 32-bit mode (V32 mode).」
（明細書第１０頁第１７行目〜同頁第１８行目。
　仮訳：図３を参照すると、全てのゲストソフトウェアは、ここではバーチャル３２ビットモード（Ｖ３２モード）と呼ばれるプロセッサモードにおいて動作する。）
　
（２の４）
「The VMM 320 runs outside V32 mode. When a transition out of V32 mode occurs, the VMM 320 receives control over the operation initiated by the guest OS 308 or guest application 306.」
（明細書第１１頁第３行目〜同頁第５行目。
　仮訳：ＶＭＭ３２０はＶ３２モードの外で動作する。Ｖ３２モードの外へ出る遷移が発生する時、ゲストＯＳ３０８かゲストアプリケーション３０６が生じさせたオペレーションに対する制御権を、ＶＭＭ３２０は受け取る。）
　
（２の５）
「In one embodiment, certain exceptions and interrupts cause a transition out of V32 mode. These exceptions and interrupts include virtualization traps.」
（明細書第１１頁第１９行目〜同頁第２０行目。
　仮訳：一具体例では、ある例外やインタラプトは、Ｖ３２モードの外に出る遷移を引き起こす。これらの例外やインタラプトは”バーチャリゼーショントラップ”を含む。） 
　
（２の６）
「In one embodiment, when guest software runs in V32 mode, software interrupts (e.g., interrupts caused by execution of BOUND, INT or INTO instructions) are handled by the guest OS 308 using the guest IDT (i.e., the IDT residing in the guest address space 304). All other interrupts and exceptions including virtualization traps cause a transition out of V32 mode which results in a change of the guest address space 304 to the VMM address space 302. The IDT 316 is then used to point to code that handles a corresponding exception or interrupt. 」
（明細書第１２頁第９行目〜同頁第１６行目。
　仮訳：一具体例において、ゲストソフトウェアがＶ３２モードにおいて動作している時、ソフトウェアインタラプト（例えば、ＢＯＵＮＤ、ＩＮＴ、ＩＮＴＯ命令の実行により引き起こされたインタラプト）は、ゲストＯＳ３０８により取り扱われる。ゲストＯＳ３０８は、ゲストＩＤＴ（例えば、ゲストアドレス空間３０４に存在するＩＤＴ）を使う。バーチャリゼーショントラップを含む、その他の全てのインタラプトと例外は、Ｖ３２モードの外に出る遷移を引き起こす。Ｖ３２モードの外に出る遷移の結果として、ゲストアドレス空間３０４からＶＭＭアドレス空間３０２への変化が起こる。そして、対応する例外やインタラプトを取り扱うコードを指し示すために、ＩＤＴ３１６は用いられる。）
　
（２の７）
「At processing block 406, an attempt of the guest software to perform an operation restricted by V32 mode is identified. In response to this attempt, V32 mode is exited to transfer control over the operation initiated by the guest software to the VMM which runs outside V32 mode (processor block 408). In one embodiment, the VMM configures what operations should cause a transition out of V32 mode as will be described in greater detail below in conjunction with FIG. 7. In one embodiment, such operations generate virtualization traps that cause a transition out of V32 mode. 」
（明細書第１４頁第２０行目〜第１５頁第４行目。
　仮訳：プロセッシングブロック４０６では、ゲストソフトウェアがＶ３２モードにおいて制限されるオペレーションを行おうとする試みが特定される。この試みに応じて、Ｖ３２モードはイグジットされて、ゲストソフトウェアが発したオペレーションに対する制御はＶＭＭに移る（プロセッシングブロック４０８）。このＶＭＭはＶ３２モードの外部にて動作するものである。一具体例では、ＶＭＭはどのオペレーションがＶ３２モードの外に出る遷移を引き起こすべきであるかを設定する。その設定については、後で図７に関連付けてもっと詳細を述べるとおりである。一具体例では、そのようなオペレーションはバーチャリゼーショントラップを生成し、バーチャリゼーショントラップはＶ３２モードの外に出る遷移を引き起こす。）
　
（２の８）
「In addition, virtualization traps may be caused by attempts to execute CPUID instructions to allow the VMM to present the abstraction of processor features chosen by the VMM,…（以下略）…」
（明細書第１７頁第１２行目〜同頁第１４行目。
　仮訳：加えて、バーチャリゼーショントラップはＣＰＵＩＤ命令の実行を試みることによって引き起こされうる。それにより、ＶＭＭが選んだプロセッサの特性のアブストラクションを、ＶＭＭが提示することを可能にする。）
　
（２の９）
「FIG. 7 is a flow diagram of a method 700 for maintaining a redirection map, according to one embodiment of the present invention. According to this embodiment, the VMM maintains a redirection map to configure which interrupts and exceptions should result in a virtualization trap (processing block 704). At processing block 706, an occurrence of an interrupt or exception is identified. The redirection map is then consulted to find a bit associated with this interrupt or exception in the redirection bitmap (processing block 708). 
 At decision box 710, a determination is made as to whether this interrupt is allowed to be handled by the guest OS. If the determination is positive, the interrupt or exception is delivered to V32 mode and is handled by the guest OS (processing block 714). Alternatively, a virtualization trap is generated, causing a transition out of V32 mode (processing block 712). 」
（明細書第１７頁第１８行目〜第１８頁第７行目。
　仮訳：図７は本発明の一具体例に基づくリダイレクションマップを維持するための方法７００の流れ図である。この具体例によれば、ＶＭＭはリダイレクションマップを維持する（プロセッシングブロック７０４）。リダイレクションマップはどのインタラプトや例外がバーチャリゼーショントラップという結果になるべきかを設定するためのものである。プロセッシングブロック７０６において、一つのインタラプトまたは例外が発生したことが特定される。そして、リダイレクションマップが調べられる（プロセッシングブロック７０８）。この調査は、リダイレクションマップのなかの、このインタラプトまたは例外に対応するビットを探すためのものである。
　決定ボックス７１０において、このインタラプトがゲストＯＳによって取り扱われてもよいかについて決定がなされる。その決定が肯定的であるならば、インタラプトまたは例外はＶ３２モードに向けて送信され、インタラプトまたは例外はゲストＯＳにより取り扱われる（プロセッシングボックス７１４）。そうでなければ、バーチャリゼーショントラップが生成され、Ｖ３２モードの外に出る遷移が引き起こされる（プロセッシングブロック７１２）。）
　
４．引用例２に記載されている発明の認定
　上記（２の２）に「本発明の方法及び装置は、仮想計算機モニタ（ＶＭＭ）のためのプロセッササポートを提供する。」と記載されていることから明らかなように、引用例２は、仮想計算機モニタＶＭＭのためのプロセッササポートを提供する方法に関するものである。
　
　上記（２の９）に「プロセッシングブロック７０６において、一つのインタラプトまたは例外が発生したことが特定される。」と記載されていることから、引用例２においては、インタラプトまたは例外を受け付けるステップが存在する。
　そして当該記載の後に、上記（２の９）には「そして、リダイレクションマップが調べられる（プロセッシングブロック７０８）。この調査は、リダイレクションマップのなかの、このインタラプトまたは例外に対応するビットを探すためのものである。…（改行）…決定ボックス７１０において、このインタラプトがゲストＯＳによって取り扱われてもよいかについて決定がなされる。その決定が肯定的であるならば、…（中略）…そうでなければ、バーチャリゼーショントラップが生成され、Ｖ３２モードの外に出る遷移が引き起こされる（プロセッシングブロック７１２）。」と記載されていることから、上記したインタラプトまたは例外を受け付けるステップは、Ｖ３２モードにおいて発生するものである。
　このＶ３２モードについて、上記（２の３）に「全てのゲストソフトウェアは、ここではバーチャル３２ビットモード（Ｖ３２モード）と呼ばれるプロセッサモードにおいて動作する。」と記載され、上記（２の４）に「ＶＭＭ３２０はＶ３２モードの外で動作する。」と記載されている。また、ゲストソフトウェアについて、上記（２の２）に「ＶＭＭは他のソフトウェア（例えば、”ゲスト”ソフトウェア）に１つまたは複数の仮想計算機（ＶＭ）のアブストラクションを提供する。…（中略）…それぞれのＶＭのゲストソフトウェアには、ゲストＯＳ１０４または１０６のようなゲストＯＳと、様々なゲストソフトウェアアプリケーション１０８−１１０が含まれる。」と記載されている。これらの記載から、Ｖ３２モードとは、（仮想計算機モニタＶＭＭとは異なる）ゲストＯＳが仮想計算機ＶＭ上で実行されていることを意味するものであることは明らかである。
　つまり、引用例２においては、ゲストＯＳが仮想計算機ＶＭ上で実行されている間に、インタラプトまたは例外を受け付けるステップが存在する。
　
　上記（２の９）において「プロセッシングブロック７０６において、一つのインタラプトまたは例外が発生したことが特定される。」という記載の後に、「そして、リダイレクションマップが調べられる（プロセッシングブロック７０８）。この調査は、リダイレクションマップのなかの、このインタラプトまたは例外に対応するビットを探すためのものである。…（改行）…決定ボックス７１０において、このインタラプトがゲストＯＳによって取り扱われてもよいかについて決定がなされる。その決定が肯定的であるならば、インタラプトまたは例外はＶ３２モードに向けて送信され、インタラプトまたは例外はゲストＯＳにより取り扱われる（プロセッシングボックス７１４）。そうでなければ、バーチャリゼーショントラップが生成され、Ｖ３２モードの外に出る遷移が引き起こされる（プロセッシングブロック７１２）。」と記載されている。また、リダイレクションマップについて、上記（２の９）に「リダイレクションマップはどのインタラプトや例外がバーチャリゼーショントラップという結果になるべきかを設定するためのものである。」と記載され、上記（２の７）に「ＶＭＭはどのオペレーションがＶ３２モードの外に出る遷移を引き起こすべきであるかを設定する。」と記載されている。これらの記載から明らかなように、引用例２には、リダイレクションマップにおける、受け付けたインタラプトまたは例外に対応するビットの値に基づき、インタラプトまたは例外をゲストＯＳが動作しているＶ３２モードに送信するべきか、それとも、Ｖ３２モードの外に出る遷移をするべきかを判断するステップが存在する。
　そして、既に示したとおり、Ｖ３２モードとは、（仮想計算機モニタＶＭＭとは異なる）ゲストＯＳが仮想計算機ＶＭ上で実行されていることを意味するものであることは明らかである。
　また、上記（２の４）に「ＶＭＭ３２０はＶ３２モードの外で動作する。Ｖ３２モードの外へ出る遷移が発生する時、ゲストＯＳ３０８…（中略）…が生じさせたオペレーションに対する制御権を、ＶＭＭ３２０は受け取る。」と記載されていることから明らかなように、Ｖ３２モードの外に出る遷移をすることは、ゲストＯＳから仮想計算機モニタＶＭＭに制御を移行することを意味するものである。
　つまり、引用例２においては、リダイレクションマップにおける、受け付けたインタラプトまたは例外に対応するビットの値に基づき、インタラプトまたは例外を仮想計算機ＶＭに送信するべきか、それとも、ゲストＯＳから仮想計算機モニタＶＭＭに制御を移行すべきかを判断するステップが存在する。
　
　上記引用例２の記載事項及び図面を総合勘案すると、引用例２には、次の発明（以下、「引用例２に記載された発明」という。）が記載されていると認められる。
　
「仮想計算機モニタＶＭＭのためのプロセッササポートを提供する方法であって、
　ゲストＯＳが仮想計算機ＶＭ上で実行されている間に、インタラプトまたは例外を受け付けるステップと、
　リダイレクションマップにおける、受け付けたインタラプトまたは例外に対応するビットの値に基づき、インタラプトまたは例外を仮想計算機ＶＭに送信するべきか、それとも、ゲストＯＳから仮想計算機モニタＶＭＭに制御を移行すべきかを判断するステップと、
から構成されることを特徴とする方法。」
　
第４．対比
　本願発明と引用発明とを比較する。
　
　引用発明における「仮想計算機制御プログラムＶＭＣＰ」は本願発明における「バーチャルマシーンモニタ（ＶＭＭ）」に相当する。
　引用発明における「仮想計算機ＶＭ」は本願発明における「バーチャルマシーン（ＶＭ）」に相当する。
　引用発明における「割込」は、フォルトの一種であるので、本願発明における「第１フォルト」に相当する。
　
　引用発明における「仮想計算機制御プログラムＶＭＣＰから仮想計算機ＶＭに制御を移行する要求であるＶＭ起動命令を受け付けるステップ」は、本願発明における「バーチャルマシーンモニタ（ＶＭＭ）からバーチャルマシーン（ＶＭ）に制御を移行する要求を受け付けるステップ」に相当する。
　
　引用発明における「仮想計算機制御プログラムＶＭＣＰが仮想計算機ＶＭを起動する理由が割込であるか判断する」ことは、仮想計算機ＶＭが起動するときに割込ハンドラーを実行するか否かを判断することを意味するものであり、結局は仮想計算機ＶＭに対して割込を送信するか否かを判断することであるから、本願発明における「前記ＶＭＭが前記ＶＭへの第１フォルトの送信を要求したか判断する」ことに相当する。よって、引用発明における「仮想計算機制御プログラムＶＭＣＰが仮想計算機ＶＭを起動する理由が割込であるか判断するステップ」は、本願発明における「前記ＶＭＭが前記ＶＭへの第１フォルトの送信を要求したか判断するステップ」に相当する。
　同様の理由で、引用発明における「仮想計算機制御プログラムＶＭＣＰが仮想計算機ＶＭを起動する理由が割込である場合」は、本願発明における「前記ＶＭＭが前記ＶＭへの第１フォルトの送信を要求していた場合」に相当する。同様の理由で、引用発明における「仮想計算機ＶＭへの制御の移行の際にＶＭの割込ハンドラーに制御を移す」ことは、本願発明における「前記ＶＭへの制御の移行の際に前記ＶＭに前記第１フォルトを送信する」ことに相当する。よって、引用発明における「仮想計算機制御プログラムＶＭＣＰが仮想計算機ＶＭを起動する理由が割込である場合、仮想計算機ＶＭへの制御の移行の際にＶＭの割込ハンドラーに制御を移すステップ」は、本願発明における「前記ＶＭＭが前記ＶＭへの前記第１フォルトの送信を要求していた場合、前記ＶＭへの制御の移行の際に前記ＶＭに前記第１フォルトを送信するステップ」に相当する。
　同様の理由で、引用発明における「仮想計算機制御プログラムＶＭＣＰが仮想計算機ＶＭを起動する理由が割込でない場合」は、本願発明における「前記ＶＭＭが前記ＶＭへの前記第１フォルトの送信を要求していなかった場合」に相当する。同様の理由で、引用発明における「仮想計算機ＶＭへの制御の移行の際にＶＭ上の次の命令に制御を移す」ことは、本願発明における「前記ＶＭに前記第１フォルトを送信することなく前記ＶＭに制御を移行する」ことに相当する。よって、引用発明における「仮想計算機制御プログラムＶＭＣＰが仮想計算機ＶＭを起動する理由が割込でない場合、仮想計算機ＶＭへの制御の移行の際にＶＭ上の次の命令に制御を移すステップ」は、本願発明における「前記ＶＭＭが前記ＶＭへの前記第１フォルトの送信を要求していなかった場合、前記ＶＭに前記第１フォルトを送信することなく前記ＶＭに制御を移行するステップ」に相当する。
　
　すると、本願発明と引用発明は、次の点で一致する。
　
＜一致点＞
　バーチャルマシーンモニタ（ＶＭＭ）からバーチャルマシーン（ＶＭ）に制御を移行する要求を受け付けるステップと、
　前記ＶＭＭが前記ＶＭへの第１フォルトの送信を要求したか判断するステップと、
　前記ＶＭＭが前記ＶＭへの前記第１フォルトの送信を要求していた場合、前記ＶＭへの制御の移行の際に前記ＶＭに前記第１フォルトを送信するステップと、
　前記ＶＭＭが前記ＶＭへの前記第１フォルトの送信を要求していなかった場合、前記ＶＭに前記第１フォルトを送信することなく前記ＶＭに制御を移行するステップと
から構成されることを特徴とする方法。
　
　一方で、両者は、次の点で相違する。
　
＜相違点＞
　本願発明においては「前記ＶＭへの第１フォルトの送信がさらなるフォルトを生じさせる場合、前記第１フォルトの送信失敗から生じた前記さらなるフォルトが前記ＶＭに送信されるべきか判断するステップ」があるのに対して、引用発明にはそのようなステップはない点。
　
第５．判断
　上記した相違点について検討する。
　
　既に示したように引用例２に記載された発明は以下のとおりのものである。
　
「仮想計算機モニタＶＭＭのためのプロセッササポートを提供する方法であって、
　ゲストＯＳが仮想計算機ＶＭ上で実行されている間に、インタラプトまたは例外を受け付けるステップと、
　リダイレクションマップにおける、受け付けたインタラプトまたは例外に対応するビットの値に基づき、インタラプトまたは例外を仮想計算機ＶＭに送信するべきか、それとも、ゲストＯＳから仮想計算機モニタＶＭＭに制御を移行すべきかを判断するステップと、
から構成されることを特徴とする方法。」
　
　引用発明と引用例２に記載された発明はともに、仮想計算機環境においてフォルト（割込（インタラプト）や例外等）を取り扱うことに関するものである。また、仮想計算機ＶＭ上で各種プログラムが実行される際に、各種フォルトが発生する可能性があることは当業者であれば充分認識していることである。
　そのため、引用発明における、仮想計算機ＶＭ上の割込ハンドラーを実行する際に発生するさらなる各種フォルトの取り扱いについて、引用例２に記載された発明を適用して、引用発明においても、仮想計算機ＶＭへの割込の送信がさらなるフォルトを生じさせる場合、前記割込の送信失敗から生じた前記さらなるフォルトが仮想計算機ＶＭに送信されるべきか判断するステップを備えるようにすることに、特段の困難性はない。
　よって、上記相違点は格別のものではない。　
　
　また、本願の請求項１に係る発明が有する作用効果は、引用発明及び引用例２に記載されている発明から当業者が予測できた範囲内のものである。
　
　よって、本願の請求項１に係る発明は、引用発明及び引用例２に記載されている発明に基いて、当業者が容易に発明をすることができたものである。
　
第６．むすび
　したがって、本願の請求項１に係る発明は、その優先日前に日本国内又は外国において頒布された刊行物に記載された発明に基いて、当業者が容易に発明をすることができたものであるから、他の請求項について検討をするまでもなく、本願は特許法第２９条第２項の規定により特許を受けることができない。
　
　よって、結論のとおり審決する。