【手続補正書】
【提出日】平成22年10月21日(2010.10.21)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
物理ＣＰＵと、前記物理ＣＰＵを論理的に分割して複数の仮想計算機とする仮想計算機制御部と、前記仮想計算機を前記制御部が制御するためのデータを格納する仮想計算機制御メモリとを備える、仮想計算機システムにおいて、
前記仮想計算機制御メモリは、第１の仮想計算機用の第１のデータと、第２の仮想計算機用の第２のデータとを有し、
前記制御部は、前記第１の仮想計算機が動作するときに、前記第１のデータを、前記物理ＣＰＵ内の内部メモリに格納し、
（ａ）前記第１の仮想計算機が動作を終了するときに、前記第１のデータを前記内部メモリに保持し、
（ｂ）次に実行させる第２の仮想計算機が、前記仮想計算機制御メモリに格納されているデータを用いるか否かを判定し、
（ｃ）判定にしたがって前記内部メモリ内のデータを、前記内部メモリと前記仮想計算機制御メモリとの間で移動することを特徴とした仮想計算機システム。
【請求項２】
前記判定の際、
（ｄ）前記第２の仮想計算機が、前記仮想計算機制御メモリから前記内部メモリに、新たなデータを用いるならば、前記第１のデータを前記仮想計算機制御メモリに移動（退避）し、前記第２の仮想計算機が用いるデータを、前記仮想計算機制御メモリから前記物理ＣＰＵ内の前記内部メモリへ移動（回復）させ、
（ｅ）前記第２の仮想計算機が、新たなデータを用いないならば、前記仮想計算機制御メモリと前記内部メモリとの間の前記移動（退避と回復）を省略することを特徴とした請求項１記載の仮想計算機システム。
【請求項３】
前記第２の仮想計算機が、前記仮想計算機制御メモリから前記内部メモリに、新たなデータを用いるのは、前記第２の仮想計算機が前記第１の仮想計算機とは別の仮想計算機であることを特徴とする請求項２記載の仮想計算機システム。
【請求項４】
前記第２の仮想計算機が、前記仮想計算機制御メモリから前記内部メモリへ、新たなデータを用いないのは、前記第２の仮想計算機が、前記第１の仮想計算機を制御する制御用仮想計算機であり、かつ、前記制御用仮想計算機が前記仮想計算機制御メモリから前記内部メモリへ、新たなデータを用いない場合であることを特徴とする請求項２記載の仮想計算機システム。
【請求項５】
前記仮想計算機は、前記複数の仮想計算機が前記物理ＣＰＵを共有するＣＰＵ共有モードと、前記複数の仮想計算機のうちの特定の仮想計算機が前記物理ＣＰＵを占有するＣＰＵ占有モードとを有し、
前記制御部は、前記占有モードの場合に前記（ａ）〜（ｃ）の動作を実行することを特徴とする請求項１に記載の仮想計算機システム。
【請求項６】
前記仮想計算機は、前記複数の仮想計算機が前記物理ＣＰＵを共有するＣＰＵ共有モードと、前記複数の仮想計算機のうちの特定の仮想計算機が前記物理ＣＰＵを占有するＣＰＵ占有モードとを有し、
前記制御部は、前記ＣＰＵ占有モードの場合に前記（ａ）〜（ｅ）の動作を実行することを特徴とする請求項２から５の何れかに記載の仮想計算機システム。
【請求項７】
物理ＣＰＵと、前記物理ＣＰＵを論理的に分割して複数の仮想計算機とするハイパバイザと、前記仮想計算機を前記制御部が制御するためのデータを格納する仮想計算機制御メモリとを備える、仮想計算機システムにおけるハイパバイザにおいて、
前記仮想計算機のスケジュールの切り替えを行う処理部を有し、
（ａ）前記処理部は、前記仮想計算機のプロセスが終了したときに、該プロセスのデータを前記物理ＣＰＵ内の内部メモリに保持するよう指示し、
（ｂ）次に実行させる仮想計算機が、前記仮想計算機制御メモリに格納されているデータを用いるか否かを判定し、
（ｃ）判定にしたがって前記内部メモリ内のデータを、前記内部メモリと前記仮想計算機制御メモリとの間で移動することを特徴としたハイパバイザ。
【請求項８】
前記判定の際、
（ｄ）前記次に実行させる仮想計算機が、前記仮想計算機制御メモリから前記内部メモリに、新たなデータを用いるならば、前記プロセスのデータを前記仮想計算機制御メモリに移動（退避）し、前記次に実行させる仮想計算機が用いるデータを、前記仮想計算機制御メモリから前記内部メモリへ移動（回復）させ、
（ｅ）前記次に実行させる仮想計算機が、新たなデータを用いないならば、前記仮想計算機制御メモリと前記内部メモリとの間の前記移動（退避と回復）を省略することを特徴とした請求項７記載のハイパバイザ。
【請求項９】
前記次に実行させる仮想計算機が、前記仮想計算機制御メモリから前記内部メモリに新たなデータを用いるのは、前記次に実行させる仮想計算機が前記仮想計算機とは別の仮想計算機であることを特徴とする請求項８記載のハイパバイザ。
【請求項１０】
前記次に実行させる仮想計算機が、前記仮想計算機制御メモリから前記内部メモリへ新たなデータを用いないのは、前記次に実行させる仮想計算機が、前記仮想計算機を制御する制御用仮想計算機であり、かつ、前記制御用仮想計算機が前記仮想計算機制御メモリから前記内部メモリへ新たなデータを用いない場合であることを特徴とする請求項８記載のハイパバイザ。
【請求項１１】
前記仮想計算機は、前記複数の仮想計算機が前記物理ＣＰＵを共有するＣＰＵ共有モードと、前記複数の仮想計算機のうちの特定の仮想計算機が前記物理ＣＰＵを占有するＣＰＵ占有モードとを有し、
前記制御部は、前記ＣＰＵ占有モードの場合に前記（ａ）〜（ｃ）の動作を実行することを特徴とする請求項７に記載のハイパバイザ。
【請求項１２】
前記仮想計算機は、前記複数の仮想計算機が前記物理ＣＰＵを共有するＣＰＵ共有モードと、前記複数の仮想計算機のうちの特定の仮想計算機が前記物理ＣＰＵを占有するＣＰＵ占有モードとを有し、
前記制御部は、前記ＣＰＵ占有モードの場合に前記（ａ）〜（ｅ）の動作を実行することを特徴とする請求項８から１０の何れかに記載のハイパバイザ。
【請求項１３】
物理ＣＰＵと、前記物理ＣＰＵを論理的に分割して複数の仮想計算機とするハイパバイザと、前記仮想計算機を前記制御部が制御するためのデータを格納する仮想計算機制御メモリとを備える、仮想計算機システムにおけるスケジューリング方法において、
（ａ）前記仮想計算機のプロセスが終了したときに、該プロセスのデータを前記物理ＣＰＵ内の内部メモリに保持するよう指示するステップと、
（ｂ）次に実行させる仮想計算機が、前記仮想計算機制御メモリに格納されているデータを用いるか否かを判定するステップと、
（ｃ）判定にしたがって前記内部メモリ内のデータを、前記内部メモリと前記仮想計算機制御メモリとの間で移動させるステップを有することを特徴としたスケジューリング方法。
【請求項１４】
前記判定ステップの際に、
（ｄ）前記次に実行させる仮想計算機が、前記仮想計算機制御メモリから前記内部メモリに、新たなデータを用いるならば、前記プロセスのデータを前記仮想計算機制御メモリに移動（退避）し、前記次に実行させる仮想計算機が用いるデータを、前記仮想計算機制御メモリから前記内部メモリへ移動（回復）させるステップと、
（ｅ）前記次に実行させる仮想計算機が、新たなデータを用いないならば、前記仮想計算機制御メモリと前記内部メモリとの間の前記移動（退避と回復）を省略するステップを有することを特徴とした請求項１３記載のスケジューリング方法。
【請求項１５】
前記次に実行させる仮想計算機が、前記仮想計算機制御メモリから前記内部メモリに新たなデータを用いるのは、前記次に実行させる仮想計算機が前記仮想計算機とは別の仮想計算機であることを特徴とする請求項１４記載のスケジューリング方法。
【請求項１６】
前記次に実行させる仮想計算機が、前記仮想計算機制御メモリから前記内部メモリへ新たなデータを用いないのは、前記次に実行させる仮想計算機が、前記仮想計算機を制御する制御用仮想計算機であり、かつ、前記制御用仮想計算機が前記仮想計算機制御メモリから前記内部メモリへ新たなデータを用いない場合であることを特徴とする請求項１４記載のスケジューリング方法。
【請求項１７】
前記仮想計算機は、前記複数の仮想計算機が前記物理ＣＰＵを共有するＣＰＵ共有モードと、前記複数の仮想計算機のうちの特定の仮想計算機が前記物理ＣＰＵを占有するＣＰＵ占有モードとを有し、
前記制御部は、前記ＣＰＵ占有モードの場合に前記（ａ）〜（ｃ）の動作を実行することを特徴とする請求項１３に記載のスケジューリング方法。
【請求項１８】
前記仮想計算機は、前記複数の仮想計算機が前記物理ＣＰＵを共有するＣＰＵ共有モードと、前記複数の仮想計算機のうちの特定の仮想計算機が前記物理ＣＰＵを占有するＣＰＵ占有モードとを有し、
前記制御部は、前記ＣＰＵ占有モードの場合に前記（ａ）〜（ｅ）の動作を実行することを特徴とする請求項１３から１６の何れかに記載のスケジューリング方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１８
【補正方法】変更
【補正の内容】
【００１８】
前記判定の際、（ｄ）前記次に実行させる仮想計算機が、前記仮想計算機制御メモリから前記内部メモリに、新たなデータを用いるならば、前記プロセスのデータを前記仮想計算機制御メモリに移動（退避）し、前記次に実行させる仮想計算機が用いるデータを、前記仮想計算機制御メモリから前記内部メモリへ移動（回復）させ、（ｅ）前記次に実行させる仮想計算機が、新たなデータを用いないならば、前記仮想計算機制御メモリと前記内部メモリとの間の前記移動（退避と回復）を省略することを特徴とする。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００２０
【補正方法】変更
【補正の内容】
【００２０】
前記判定ステップの際に、（ｄ）前記次に実行させる仮想計算機が、前記仮想計算機制御メモリから前記内部メモリに、新たなデータを用いるならば、前記プロセスのデータを前記仮想計算機制御メモリに移動（退避）し、前記次に実行させる仮想計算機が用いるデータを、前記仮想計算機制御メモリから前記内部メモリへ移動（回復）させるステップと、（ｅ）前記次に実行させる仮想計算機が、新たなデータを用いないならば、前記仮想計算機制御メモリと前記内部メモリとの間の前記移動（退避と回復）を省略するステップを有することを特徴とする。以上のように、物理ＣＰＵの論理分割方式の特徴を利用することで、ＯＳ動作時に必要なコンテキストの退避／回復を完全にスキップできるスケジューリングの方法を考案した。これにより、ＯＳの改変などを伴うことなく、コンテキスト切り替えに起因するオーバーヘッドの削減を実現する。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００２６
【補正方法】変更
【補正の内容】
【００２６】
物理ＣＰＵの論理的な分割とは、具体的には、一つもしくは複数の物理ＣＰＵを、複数の論理ＣＰＵ、（ここでは１２０，１２１，２２０，２２１，３２０，３２１）で共有し、その共有した論理ＣＰＵが物理ＣＰＵへ一定の時間間隔でスケジュールされることである。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００３３
【補正方法】変更
【補正の内容】
【００３３】
この論理ＣＰＵコンテキスト領域は、物理ＣＰＵのコンテキスト６１０，６１１，６１２，６１３と対応付けられる。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００５６
【補正方法】変更
【補正の内容】
【００５６】
（１）最初にＶＭＭのプロセススケジューリング処理５３０は、切り替え元プロセス（現在走行中のプロセス）のコンテキスト退避の要否判定を行う。（図１２）
スケジューリング制御テーブルから切り替え元のプロセス情報８００−１を取得し、切り替え元プロセスのプロセスの識別情報７１０−１から、論理ＣＰＵプロセスかどうかを判定する。具体的には、プロセス識別情報７１０−１はそのプロセスの種類を一意に特定できるためのＩＤを含んでおり、これが論理ＣＰＵを示しているかどうか確認する。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００６３
【補正方法】変更
【補正の内容】
【００６３】
切り替え先プロセスが論理ＣＰＵプロセスである場合は、スケジューリング制御テーブルから前回論理ＣＰＵプロセス情報８００−２を取得し、切り替え先プロセスが前回論理ＣＰＵプロセス（当該物理ＣＰＵで最後に走行した論理ＣＰＵプロセス）と等しいかどうかの判定を行う。条件が成立しない場合とする場合の処理について、それぞれ（２．１）、（２．２）に記す。