【手続補正書】
【提出日】平成25年2月21日(2013.2.21)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
仮想化技術を実現するプラットホームアーキテクチャを有する計算プラットホームシステムであって：
複数のレジスタセットを有するプロセッサ；
前記プロセッサ上で動作する複数の仮想機械（ＶＭ）であり、各ＶＭがゲストオペレーティングシステムにて動作し、各ＶＭに少なくとも１つの仮想機械制御構造（ＶＭＣＳ）が付随し、該ＶＭＣＳが、選択されたレジスタセットにアクセスするプロセッサ命令に関するトラップ事象を指し示す複数のフィールドを有する、複数の仮想機械；
動作中のＶＭから該ＶＭにおける所定のトラップ事象の発生に応答してイグジットするための各ＶＭのトラップ機構であり、該ＶＭにおいて該所定のトラップ事象が発生したことを指し示すように該ＶＭのＶＭＣＳ内の第１のフィールドを設定するトラップ機構；及び
前記複数の仮想機械間でコンテキスト切替をスケジューリングし且つ前記複数の仮想機械間でコンテキストを切替える仮想機械モニタ（ＶＭＭ）であり：
当該ＶＭＭは、前記複数のレジスタセットのうちの何れが前記複数のＶＭのうちの少なくとも１つ及び前記プロセッサ上で実行されている処理によって使用されるかを認識し；且つ
コンテキスト切替において、当該ＶＭＭは、前記複数のＶＭのうちの少なくとも１つによってアクセスされるレジスタセットのコンテキストを保存するが、前記複数のＶＭのうちの何れの１つによっても使用されないレジスタセットのコンテキストを保存しない；
ＶＭＭ；
を有するシステム。
【請求項２】
前記トラップ機構は、トラップを生じさせる複数の事象を特定するためのＶＭＣＳデータ構造を有する、請求項１に記載のシステム。
【請求項３】
前記第１のフィールドは、ＶＭＣＳデータ構造内の１ビットを有し、前記複数の仮想機械の各々は少なくとも１つの対応するＶＭＣＳを有する、請求項１に記載のシステム。
【請求項４】
前記ＶＭＣＳ内の前記第１のフィールドは、所定の事象に応答してリセットされる、請求項１に記載のシステム。
【請求項５】
選択されたレジスタセットにアクセスするプロセッサ命令に関する前記所定のトラップ事象の前記トラップは、選択された事象が以前に仮想機械内で発生したことに応答して、該選択された事象に対して該仮想機械内で無効にされる、請求項１に記載のシステム。
【請求項６】
無効にされた事象トラップは該仮想機械が再開されるときに該仮想機械に対して再び有効にされる、請求項５に記載のシステム。
【請求項７】
コンテキスト切替において、前記ＶＭＭは、前記複数のＶＭのうちの２つ以上によってアクセスされるレジスタセットのコンテキストを保存し、前記複数のＶＭのうちの１つ以下によって使用されるレジスタセットのコンテキストを保存しない、請求項１に記載のシステム。
【請求項８】
前記複数の仮想機械の１つにて起動されているオペレーティングシステム（ＯＳ）は、選択されたレジスタセットが該ＯＳの下で起動されている処理によってもはやアクセスされていないとき、そのことを前記ＶＭＭに通知する、請求項１に記載のシステム。
【請求項９】
コンピュータによって実行される方法であって：
仮想化技術を実現する計算プラットホーム内の第１の仮想機械が該プラットホーム上のプロセッサ内の複数のレジスタセットのうちの選択されたレジスタセットを使用するとき、そのことを前記プロセッサによって特定する特定段階であり、該選択されたレジスタセットの使用を指し示す該第１の仮想機械における事象をトラップする段階と、該選択されたレジスタセットが該第１の仮想機械によって使用されることを指し示すようにビットフィールドを設定する段階とを有する特定段階；
前記プロセッサ上で動作する仮想機械モニタ（ＶＭＭ）によって、対応する選択されたレジスタセットに対して前記ビットフィールドが設定されているかを決定する決定段階；
前記選択されたレジスタセットが前記第１の仮想機械によって使用されていると特定されたとき、前記第１の仮想機械から第２の仮想機械にプロセッサコンテキストを切り替えることに先立って、前記仮想機械モニタ（ＶＭＭ）を用いて、前記第１の仮想機械に対して前記選択されたレジスタセットのコンテキストのみを保存する保存段階；
を有する方法。
【請求項１０】
前記選択されたレジスタセットが前記第１の仮想機械によって使用されていると特定されたとき、前記第２の仮想機械から前記第１の仮想機械にプロセッサコンテキストを切り替えることに先立って、前記仮想機械モニタ（ＶＭＭ）を用いて、前記第１の仮想機械に対して前記選択されたレジスタセットのコンテキストを復元する段階；
を更に有する請求項９に記載の方法。
【請求項１１】
前記特定段階は更に：
所定の命令の実行に応答して、該所定の命令が仮想機械制御構造（ＶＭＣＳ）内で前記選択されたレジスタセットに対応するものとして規定されているかを決定する段階；
を有する、請求項９に記載の方法。
【請求項１２】
前記事象をトラップする段階は更に：
前記第１の仮想機械における前記事象がトラップされるべきかを、前記事象に対応する仮想機械制御構造（ＶＭＣＳ）内のビットデータに基づいて特定する段階；及び
前記事象がトラップされるべきであることを前記ＶＭＣＳが指し示すとき、前記第１の仮想機械における前記事象をトラップし、前記事象がトラップされるべきでないことを前記ＶＭＣＳが指し示すとき、前記事象をトラップしない段階；
を有する、請求項９に記載の方法。
【請求項１３】
前記選択されたレジスタセットが、前記第１の仮想機械によって使用されているとして以前に特定されているとき、前記事象をトラップしない段階；
を更に有する請求項９に記載の方法。
【請求項１４】
前記第１の仮想機械以外の仮想機械が前記選択されたレジスタセットを使用するかを決定する段階；及び
前記選択されたレジスタセットが前記第１の仮想機械以外の仮想機械によって使用されない場合、前記選択されたレジスタセットのコンテキストを保存しない段階；
を更に有する請求項９に記載の方法。
【請求項１５】
前記第１の仮想機械が前記選択されたレジスタセットをもはや使用しないことを前記ＶＭＭに通知する段階；
を更に有する請求項９に記載の方法。
【請求項１６】
実行される時に機械に：
仮想化技術を実現する計算プラットホーム内の第１の仮想機械が該プラットホーム上のプロセッサ内の複数のレジスタセットのうちの選択されたレジスタセットを使用するとき、そのことを特定する特定段階であり、該選択されたレジスタセットの使用を指し示す該第１の仮想機械における事象をトラップする段階と、該選択されたレジスタセットが該第１の仮想機械によって使用されることを指し示すようにビットフィールドを設定する段階とを有する特定段階；
前記プロセッサ上で動作する仮想機械モニタ（ＶＭＭ）によって、対応する選択されたレジスタセットに対して前記ビットフィールドが設定されているかを決定する決定段階；
前記選択されたレジスタセットが前記第１の仮想機械によって使用されていると特定されたとき、前記第１の仮想機械から第２の仮想機械にプロセッサコンテキストを切り替えることに先立って、前記仮想機械モニタ（ＶＭＭ）を用いて、前記第１の仮想機械に対して前記選択されたレジスタセットのコンテキストを保存する保存段階；及び
複数の仮想機械（ＶＭ）のうちの少なくとも１つ及び前記プロセッサ上で実行されている処理の何れにも使用されないレジスタセットのコンテキストを保存しない段階；
を行わせる命令を有する機械読み取り可能な記録媒体。
【請求項１７】
前記機械に：
前記選択されたレジスタセットが前記第１の仮想機械によって使用されていると特定されたとき、前記第２の仮想機械から前記第１の仮想機械にプロセッサコンテキストを切り替えることに先立って、前記仮想機械モニタ（ＶＭＭ）によって前記第１の仮想機械に対して前記選択されたレジスタセットのコンテキストを復元する段階；
を実行させる命令を更に有する請求項１６に記載の記録媒体。
【請求項１８】
前記特定段階は更に：
所定の命令の実行に応答して、該所定の命令が仮想機械制御構造（ＶＭＣＳ）内で前記選択されたレジスタセットに対応するものとして規定されているかを決定する段階；
を有する、請求項１６に記載の記録媒体。
【請求項１９】
前記事象をトラップする段階は更に：
前記第１の仮想機械における前記事象がトラップされるべきかを、前記事象に対応する仮想機械制御構造（ＶＭＣＳ）内のビットデータに基づいて特定する段階；及び
前記事象がトラップされるべきであることを前記ＶＭＣＳが指し示すとき、前記第１の仮想機械における前記事象をトラップし、前記事象がトラップされるべきでないことを前記ＶＭＣＳが指し示すとき、前記事象をトラップしない段階；
を有する、前記請求項１７に記載の記録媒体。
【請求項２０】
前記選択されたレジスタセットが、前記第１の仮想機械によって使用されているとして以前に特定されているとき、前記事象をトラップしない段階；
を行わせる命令を更に有する請求項１７に記載の記録媒体。
【請求項２１】
前記第１の仮想機械以外の仮想機械が前記選択されたレジスタセットを使用するかを決定する段階；及び
前記選択されたレジスタセットが前記第１の仮想機械以外の仮想機械によって使用されない場合、前記選択されたレジスタセットのコンテキストを保存しない段階；
を行わせる命令を更に有する請求項１６に記載の記録媒体。
【請求項２２】
前記第１の仮想機械が前記選択されたレジスタセットをもはや使用しないことを前記ＶＭＭに通知する段階；
を行わせる命令を更に有する請求項１６に記載の記録媒体。
【請求項２３】
コンピュータによって実行される方法であって：
プロセッサ上で動作する仮想機械での、選択されたレジスタセットに対応する命令の実行に応答して、実行中の仮想機械から仮想機械モニタへのトラップを生じさせる段階；
前記選択されたレジスタセットに対応する第１のフィールドを設定する段階であり、該第１のフィールドは、前記仮想機械が前記選択されたレジスタセットを使用することを指し示す、設定する段階；
前記第１のフィールドを設定する段階後、前記選択されたレジスタセットに対する第１の仮想機械のトラップを無効にする段階であり、前記第１のフィールドは、前記第１の仮想機械に対応する制御構造内の少なくとも１つのビットを有し、前記制御構造は、各々が複数のレジスタセットのうちの１つに対応する複数のフィールドを有する、無効にする段階；及び
前記第１の仮想機械と第２の仮想機械との間でのプロセッサコンテキスト切替の要求に応答して、前記第１の仮想機械によってアクセスされるレジスタセットのコンテキストのみを保存する段階；
を有する方法。
【請求項２４】
前記フィールドは、前記仮想機械及びプロセッサに対応する仮想機械制御構造（ＶＭＣＳ）内の少なくとも１つのビットを有する、請求項２３に記載の方法。
【請求項２５】
仮想機械間でのプロセッサコンテキスト切替要求に応答して、前記対応する第１のフィールドが設定されているとき、前記選択されたレジスタセットのコンテキストを保存する段階；
を更に有する請求項２４に記載の方法。
【請求項２６】
コンピュータによって実行される方法であって：
仮想化技術を実現する計算プラットホーム内で動作する第１の仮想機械が該プラットホーム上のプロセッサ内の複数のレジスタセットのうちの選択された１つを使用するとき、そのことを特定する段階であり、
当該特定する段階は更に、所定の命令の実行に応答して、該所定の命令が制御構造内で該選択されたレジスタセットに対応するものとして規定されているかを決定する段階と、該選択されたレジスタセットの使用を指し示す該第１の仮想機械における事象をトラップする段階と、該選択されたレジスタセットが該第１の仮想機械によって使用されることを指し示すようにフィールドを設定する段階とを有し、該トラップする段階は更に、前記第１の仮想機械における該事象がトラップされるべきかを、該事象に対応する前記制御構造内のビットに基づいて特定することを有する、特定する段階；
前記事象がトラップされるべきであることを前記制御構造が指し示すとき、前記第１の仮想機械における前記事象をトラップし、前記事象がトラップされるべきでないことを前記制御構造が指し示すとき、前記事象をトラップしない段階；及び
前記選択されたレジスタセットが前記第１の仮想機械によって使用されていると特定されたとき、前記第１の仮想機械から第２の仮想機械にプロセッサコンテキストを切り替えることに先立って、仮想機械モニタ（ＶＭＭ）を用いて、前記第１の仮想機械に対して前記選択されたレジスタセットのコンテキストのみを保存する段階；
を有する方法。
【請求項２７】
第１の仮想機械が選択されたレジスタセットを使用するかを決定する段階；
前記第２の仮想機械が前記選択されたレジスタセットを使用するかを決定する段階；及び
前記選択されたレジスタセットが前記第２の仮想機械によって使用されないとき、前記第１の仮想機械に対して前記選択されたレジスタセットのコンテキストを保存しない段階；
を更に有する請求項２６に記載の方法。
【請求項２８】
前記第１の仮想機械が前記選択されたレジスタセットをもはや使用しないことを前記ＶＭＭに通知する段階；
を更に有する請求項２６に記載の方法。
【請求項２９】
前記制御構造は仮想機械制御構造（ＶＭＣＳ）を有する、請求項２６に記載の方法。