(57)【特許請求の範囲】
【請求項１】
ホストプロセスを実行して複数の仮想マシンを動作させるベアメタルモードと対応付けされた仮想マシン識別子、または仮想マシン上でユーザーのオペレーティングシステムまたはプログラムが実行される、前記仮想マシンに対応する仮想マシンモードと対応付けされた仮想マシン識別子のいずれかを格納する仮想マシン識別子レジスタと、
それぞれの仮想マシン識別子と対応付けされたベアメタルモード性能レジスタ及び複数の仮想マシンモード性能レジスタと、
性能調整レジスタと、
前記仮想マシン識別子レジスタに前記仮想マシン識別子が設定されると、前記設定された仮想マシン識別子に対応するベアメタルモード性能レジスタ又は仮想マシンモード性能レジスタに予め格納された性能値を前記性能調整レジスタに設定する性能値設定部と、
前記性能調整レジスタに設定された性能値に基づいて中央処理装置の動作性能を調整する性能調整部と、
を備えることを特徴とする中央処理装置。
【請求項２】
前記性能調整部が、定期的に前記中央処理装置の処理を停止することを特徴とする請求項１に記載の中央処理装置。
【請求項３】
前記性能調整部が、定期的にファームウェアを起動してループ処理を実行することを特徴とする請求項１に記載の中央処理装置。
【請求項４】
前記ベアメタルモード性能レジスタ及び前記複数の仮想マシンモード性能レジスタに予め格納された性能値が、前記中央処理装置を初期化するときに設定されることを特徴とする請求項１から３のいずれか一項に記載の中央処理装置。
【請求項５】
ホストプロセスを実行して複数の仮想マシンを動作させるベアメタルモードと対応付けされた仮想マシン識別子、または仮想マシン上でユーザーのオペレーティングシステムまたはプログラムが実行される、前記仮想マシンに対応する仮想マシンモードと対応付けされた仮想マシン識別子のいずれかが仮想マシン識別子レジスタに設定されると、中央処理装置が、前記設定された仮想マシン識別子に対応するベアメタルモード性能レジスタ又は仮想マシンモード性能レジスタに予め格納された性能値を性能調整レジスタに設定するステップと、
前記中央処理装置が、前記性能調整レジスタに設定された性能値に基づいて前記中央処理装置の動作性能を調整するステップと、
を有することを特徴とする処理方法。
【請求項６】
ホストプロセスを実行して複数の仮想マシンを動作させるベアメタルモードと対応付けされた仮想マシン識別子、または仮想マシン上でユーザーのオペレーティングシステムまたはプログラムが実行される、前記仮想マシンに対応する仮想マシンモードと対応付けされた仮想マシン識別子のいずれかを格納する仮想マシン識別子レジスタと、
前記仮想マシン識別子レジスタに前記仮想マシン識別子が設定されると、前記設定された仮想マシン識別子に対応する、主記憶に記憶されたベアメタルモード性能値又は仮想マシンモード性能値が設定される性能調整レジスタと、
前記性能調整レジスタに設定された性能値に基づいて中央処理装置の動作性能を調整する性能調整部と、
を備えることを特徴とする中央処理装置。
【請求項７】
ホストプロセスを実行して複数の仮想マシンを動作させるベアメタルモードと対応付けされた仮想マシン識別子、または仮想マシン上でユーザーのオペレーティングシステムまたはプログラムが実行される、前記仮想マシンに対応する仮想マシンモードと対応付けされた仮想マシン識別子のいずれかが仮想マシン識別子レジスタに設定されると、中央処理装置が、前記設定された仮想マシン識別子に対応する、主記憶に記憶されたベアメタルモード性能値又は仮想マシンモード性能値を性能調整レジスタに設定するステップと、
前記中央処理装置が、前記性能調整レジスタに設定された性能値に基づいて前記中央処理装置の動作性能を調整するステップと、
を有することを特徴とする処理方法。
【請求項８】
ホストプロセスを実行して複数の仮想マシンを動作させるベアメタルモードから、仮想マシン上でユーザーのオペレーティングシステムまたはプログラムが実行される、前記仮想マシンに対応する仮想マシンモードに切り替わるとき、又は前記仮想マシンモードから前記ベアメタルモードに切り替わるときに、切り替え後のモードに対応する仮想マシン識別子を中央処理装置の仮想マシン識別子レジスタに設定し、前記設定された仮想マシン識別子に対応するベアメタルモード性能値又は仮想マシンモード性能値を主記憶から読み出して前記中央処理装置の性能調整レジスタに設定し、前記性能調整レジスタに設定された性能値に基づいて前記中央処理装置の動作性能を調整する手順を前記中央処理装置に実行させることを特徴とするプログラム。
【請求項９】
前記中央処理装置を初期化するときに、前記主記憶に前記ベアメタルモード性能値及び複数の前記仮想マシンモード性能値を格納する手順を前記中央処理装置にさらに実行させることを特徴とする請求項８に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、中央処理装置、処理方法及びプログラムに関する。
【背景技術】
【０００２】
１台のサーバー上で複数の仮想マシン（ＶＭ）を稼働させることができる。オンサイト（ユーザーのサイト）でサーバーを運用しているユーザーのシステム更改において、データセンターのホストサーバー上にＶＭを搭載し、１台のホストサーバー上で複数のエンドユーザーのシステムをＶＭで運用するケースが今後増えていくと見込まれる。サーバーを更改する際、エンドユーザーは、現在オンサイトで運用しているサーバーを基準にした相対性能で、更改後のサーバーの目標性能を決定する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第５７６７４８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、ＶＭはホストサーバーの性能に依存しているため、単純にＶＭに移行した場合は、エンドユーザーが希望する相対性能にならず、乖離してしまうケースがある。例えば、メインフレームなどのスケーラビリティが高いホストサーバーにおいては、性能が低いモデルと高性能なモデルの性能比は５００倍以上の開きがある。データセンターに設置するホストサーバーは複数のＶＭを同時に稼働させるため高性能モデル（例えば、１ＣＰＵ（中央処理装置）あたりの性能値が２００のＣＰＵを６４個搭載してトータル性能値１２８００）で運用している。このため、性能が低いモデル（例えば性能値が４０のＣＰＵを１個搭載）を利用していたエンドユーザーが上記と同じ性能のＶＭに更改すると、ＶＭの性能値は最低でも１ＣＰＵあたりの性能値は２００となり、目標性能４０まで性能を落とせず、目標性能と乖離してしまう。なお、コンピュータの処理性能を表現する数値には様々なものが存在するため、本明細書に記載する性能値は具体的な単位を示さずに、相対的な大小関係が分かる程度に例示する。
【０００５】
この乖離を解決するために、ホストコンピュータに搭載されているワークロードマネージャ機能により、ＶＭをＣＰＵ上で実行する時間を制限（例えば４０／２００＝２０％）することでＶＭ性能を調整することができる。しかし、ホスト性能とＣＰＵ時間の２つの指標で目標性能を算出するため、性能設定が複雑になってしまっていた。また、ホストサーバーのＣＰＵ性能はエンドユーザーの目標性能とは異なるため、ＶＭのＣＰＵ使用率やＣＰＵを消費した時間などの値が更改前のサーバーの相対性能に準じた値にならなかった。このように、ホストサーバーの性能に依存せずにＶＭごとに設定した目標性能で複数のＶＭを１台のホストサーバー上で動作させることができなかった。
【０００６】
そこでこの発明は、上述の課題を解決する中央処理装置、処理方法及びプログラムを提供することを目的としている。
【課題を解決するための手段】
【０００７】
本発明の第１の態様は、中央処理装置が、仮想マシン識別子を格納する仮想マシン識別子レジスタと、前記仮想マシン識別子と対応付けされたベアメタルモード性能レジスタ及び複数の仮想マシンモード性能レジスタと、性能調整レジスタと、前記仮想マシン識別子レジスタに前記仮想マシン識別子が設定されると、前記仮想マシン識別子に対応するベアメタルモード性能レジスタ又は仮想マシンモード性能レジスタに予め格納された性能値を前記性能調整レジスタに設定する性能値設定部と、前記性能調整レジスタに設定された性能値に基づいて処理の性能を調整する性能調整部と、を備えることを特徴とする。
【０００８】
本発明の第２の態様は、処理方法が、仮想マシン識別子レジスタに仮想マシン識別子が設定されると、前記仮想マシン識別子に対応するベアメタルモード性能レジスタ又は仮想マシンモード性能レジスタに予め格納された性能値を性能調整レジスタに設定するステップと、前記性能調整レジスタに設定された性能値に基づいて処理の性能を調整するステップと、を有することを特徴とする。
【０００９】
本発明の第３の態様は、中央処理装置が、仮想マシン識別子を格納する仮想マシン識別子レジスタと、前記仮想マシン識別子レジスタに前記仮想マシン識別子が設定されると、前記仮想マシン識別子に対応する、主記憶に記憶されたベアメタルモード性能値又は仮想マシンモード性能値が設定される性能調整レジスタと、前記性能調整レジスタに設定された性能値に基づいて処理の性能を調整する性能調整部と、を備えることを特徴とする。
【００１０】
本発明の第４の態様は、処理方法が、仮想マシン識別子レジスタに仮想マシン識別子が設定されると、前記仮想マシン識別子に対応する、主記憶に記憶されたベアメタルモード性能値又は仮想マシンモード性能値を性能調整レジスタに設定するステップと、前記性能調整レジスタに設定された性能値に基づいて処理の性能を調整するステップと、を有することを特徴とする。
【００１１】
本発明の第５の態様は、プログラムが、ホストプロセス処理から仮想マシンプロセス処理に移行するとき、又は仮想マシンプロセス処理からホストプロセス処理に移行するときに、移行するプロセスに対応する仮想マシン識別子を中央処理装置の仮想マシン識別子レジスタに設定し、前記仮想マシン識別子に対応するベアメタルモード性能値又は仮想マシンモード性能値を主記憶から読み出して前記中央処理装置の性能調整レジスタに設定する手順を前記中央処理装置に実行させることを特徴とする。
【発明の効果】
【００１２】
本発明によれば、ホストサーバーの性能に依存せずにＶＭごとに設定した目標性能で複数のＶＭを１台のホストサーバー上で動作させることができるという効果が得られる。
【図面の簡単な説明】
【００１３】
【図１】本発明の一実施形態による、ホストサーバーのハードウェア及びソフトウェアのレイヤー構成を示す図である。
【図２】本発明の一実施形態による、ホストサーバーのハードウェア構成を示す図である。
【図３】本発明の一実施形態による、ＣＰＵ内のレジスタ構成を示す図である。
【図４】本発明の一実施形態による、ＣＰＵの構成図である。
【図５】本発明の一実施形態による、ＣＰＵの動作フローを示す図である。
【図６】本発明の一実施形態による、システム立ち上げ時のフローを示す図である。
【図７】本発明の一実施形態による、ＣＰＵ１個のモード切り替えの例を示すタイムチャートである。
【図８】本発明のもう１つの実施形態による、ＶＭＩＤレジスタ、ＢＭモード性能値、ＶＭモード性能値、性能調整レジスタの配置を表す図である。
【発明を実施するための形態】
【実施例１】
【００１４】
図１は、本発明の一実施形態による、ホストサーバーのハードウェア及びソフトウェアのレイヤー構成を示す図である。図１の最も下のレイヤーはホストサーバーのハードウェアを示し、ホストサーバーは複数の実ＣＰＵを備える。ホストサーバー上にホストオペレーティングシステム（ホストＯＳ）を搭載し、ホストＯＳ上に仮想マシン（ＶＭ）全体を制御するＶＭ制御プログラムを搭載する。図１の例では、ホストサーバー１台の上でＶＭが３台稼働している（ユーザー１のＶＭ１、ユーザー２のＶＭ２、ユーザー３のＶＭ３）。ＶＭは各エンドユーザーのシステムに相当し、図１では、例えば、ＶＰプロセス１−１、ゲストＯＳ（ＶＭ１）、ユーザプログラムＶＭ１＿Ａ、ユーザプログラムＶＭ１＿Ｂがユーザー１のシステムに相当する。仮想プロセッサ（ＶＰ）は前記システム上で動作するＣＰＵに相当する。
【００１５】
ＶＭ制御プログラムは各ＶＭのＶＰに相当するＶＰプロセスを生成し、実行する。すなわち、ＶＭはＶＰを定義することが可能であり、図１では、ＶＭ１とＶＭ２はそれぞれ１個のＶＰ、ＶＭ３は２個のＶＰを定義している。ここで仮想プロセッサはホストサーバー上のプロセスである。ＶＭ１、ＶＭ２のＶＰは、それぞれＶＰプロセス１−１、ＶＰプロセス２−１によって実現され、ＶＭ３の２個のＶＰは、それぞれＶＰプロセス３−１、ＶＰプロセス３−２によって実現される。
【００１６】
ＶＰプロセス（仮想プロセッサに相当するプロセス）はＶＭプロセス（仮想マシンで実行可能状態のプロセス）を検索してゲストＯＳ又はユーザプログラムのＶＭプロセスが存在した場合、当該ＶＭプロセスを実行する。このとき、ＣＰＵはベアメタル（ＢＭ（Bare Metal））モードから仮想マシン（ＶＭ（Virtual Machine））モードに移行する。ＢＭ／ＶＭモードはＣＰＵ毎の状態である。ＢＭモードはホストプロセスを実行するためのモードであり、ＶＭモードはＶＭプロセスを実行するためのモードである。
【００１７】
一般に、ＣＰＵは、複数の動作モード、すなわち、カーネルモード、スーパーバイザーモード、特権モード等と呼ばれるような無制限のＣＰＵ動作が許されるモードと、ユーザーモード、スレーブモード等と呼ばれるようなＣＰＵ動作が制限されるモードを持つものがある。ＢＭ／ＶＭモードはそのようなモード区分と合致するものであってもよく、必ずしも合致しなくてもよい。
【００１８】
ゲストＯＳやユーザプログラムはＶＭプロセスであるため、ＶＭモードに切り替わり、ＶＭモードで動作する。ＶＭプロセスの実行が継続できない状態になった時、ＢＭモードに移行し、ＶＭに切り替わる直前に動作していたＶＰプロセスの実行に戻る。詳細は、図７を参照して後述する。
【００１９】
図２は、本発明の一実施形態による、ホストサーバーのハードウェア構成を示す図である。ホストサーバー１は、複数のＣＰＵ４、複数の入出力インターフェース（ＩＯ  Ｉ／Ｆ）５、主記憶３を備え、ＩＯ  Ｉ／Ｆ５には、例えば、モニター、キーボード、ディスク（ＤＩＳＫ）などの周辺機器が接続される。これらの構成要素は一般的である。このホストサーバー１には電源の制御やシステム起動・停止・診断を行うサービスプロッサ（ＳＶＰ（Service Processor）／ＤＧＰ（Diagnostic Processor））２が接続されており、サービスプロセッサ２内のＤＩＳＫにはホストサーバー１のファームウェア（ＦＷ）及びホストサーバー性能値（ＢＭモード性能値）、ＶＭ毎の性能値（ＶＭモード性能値）が格納されている。ＦＷは、ハードウェアの基本的な制御を行うプログラムである。図１には示していないが、例えば、ホストサーバーとホストＯＳの中間に位置付けられる。この実施形態では、ホストサーバー１の起動時にＦＷが主記憶３に転送され、次いでＦＷによってホストサーバー性能値、ＶＭ毎の性能値がＣＰＵ４のレジスタに設定される。もう１つの実施形態では、ホストサーバー１の起動時にＦＷ、ホストサーバー性能値、ＶＭ毎の性能値が主記憶３に転送される。
【００２０】
ＣＰＵ４は、ＢＭモード性能レジスタ、最大ＶＭ数に対応する個数のＶＭモード性能レジスタ、仮想マシン識別子（ＶＭＩＤ）レジスタ、を備える。ＢＭモード性能レジスタには、ホストプロセッサ２のＤＩＳＫに格納されたホストサーバー性能値がＢＭモード性能値として格納さる。ＶＭ毎の目標性能を実現するために、ＶＭモード性能レジスタには、ホストプロセッサ２のＤＩＳＫに格納されたＶＭ毎の性能値がＶＭモード性能値として格納される。ＶＭＩＤレジスタは、ＣＰＵ４が使用すべき性能値を指定する。
【００２１】
ホストサーバー１に接続されたＤＩＳＫには、ホストＯＳ、ＶＭ制御プログラム、ＶＰプロセス（図１では、ＶＰプロセス１−１、ＶＰプロセス２−１、ＶＰプロセス３−１、ＶＰプロセス３−２）、ゲストＯＳ（図１では、ゲストＯＳ（ＶＭ１）、ゲストＯＳ（ＶＭ２）、ゲストＯＳ（ＶＭ３））、ユーザプログラム群（図１では、ユーザプログラムＶＭ１＿Ａ、ユーザプログラムＶＭ１＿Ｂ、ユーザプログラムＶＭ２＿Ｃ、ユーザプログラムＶＭ２＿Ｄ、ユーザプログラムＶＭ３＿Ｅ、ユーザプログラムＶＭ３＿Ｆ）が格納されている。
【００２２】
以下、ＣＰＵ４の構成及び動作を詳細に説明する。図３は、本発明の実施形態によるＣＰＵ内のレジスタ構成を示す図である。図３に示すように、ＣＰＵ４は、ＶＭＩＤレジスタ４０１、ＢＭモード性能レジスタ４０２、ＶＭモード性能レジスタ４０３、性能調整レジスタ４０４を備える。
【００２３】
ＶＭＩＤレジスタ４０１には、ＶＭＩＤが設定される。ＶＭＩＤは、０以上の整数であり、ＢＭモード性能レジスタ４０２は、ＶＭＩＤ＝０と対応付けされ、ＶＭモード性能レジスタ４０３は、１以上の値のＶＭＩＤと対応付けされる。ＢＭモード性能レジスタ４０２、ＶＭモード性能レジスタ４０３のうちの１つを特定できれば、他の値で対応付けされてもよい。ＢＭモードとＶＭモードの間の切り替えを行うときに、ファームウェアが（ＣＰＵ４に処理を実行させることによって）ＶＭＩＤレジスタにＶＭＩＤを設定する。ＢＭモード移行時は０、ＶＭモード移行時はＶＭ番号（１以上の整数）が設定される。
【００２４】
ＣＰＵ４は、ＶＭＩＤレジスタ４０１に設定されたＶＭＩＤに対応するＢＭモード性能レジスタ４０２又はＶＭモード性能レジスタ４０３に予め格納された性能値を性能調整レジスタ４０４に設定する。そして、ＣＰＵ４は、性能調整レジスタ４０４に設定された性能値で動作する。従って、ＣＰＵ４は、ＢＭモード時にはＢＭモード性能レジスタに格納された性能値で動作し、ＶＭモード時にはＶＭＩＤレジスタに設定されたＶＭ番号に対応するＶＭモード性能レジスタに格納された性能値で動作する。なお、性能調整レジスタ４０４を設けずに、ＣＰＵ４は、使用する性能値をＶＭＩＤレジスタに設定されたＶＭＩＤに従ってＢＭモード性能レジスタ４０２又はＶＭモード性能レジスタ４０３から直接に取得してもよい。
【００２５】
図４は、本発明の実施形態によるＣＰＵの構成図であり、ＣＰＵの一般的な機能に加えて新たに設けられる構成要素を表す。一般にＣＰＵの実際の内部構造は様々であるが、ＣＰＵ４は、レジスタとして新たにＶＭＩＤレジスタ４０１、ＢＭモード性能レジスタ４０２、ＶＭモード性能レジスタ４０３、性能調整レジスタ４０４を備え、ＣＰＵのハードウェアの一部に、性能値設定部４１、性能調整部４２として機能する部分を備える。性能値設定部４１は、ＶＭＩＤレジスタ４０１にＶＭＩＤが設定されると、ＶＭＩＤに対応するＢＭモード性能レジスタ４０２又はＶＭモード性能レジスタ４０３に予め格納された性能値を性能調整レジスタ４０４に設定する。性能調整部４２は、性能調整レジスタ４０４に設定された性能値に基づいて処理の性能を調整する。
【００２６】
図４に示すＣＰＵ４の動作フローを図５に示す。Ｓ１１にて、ＣＰＵ４の性能値設定部４１は、ＶＭＩＤレジスタ４０１にＶＭＩＤが設定されると、ＶＭＩＤに対応するＢＭモード性能レジスタ４０２又はＶＭモード性能レジスタ４０３に予め格納された性能値を性能調整レジスタ４０４に設定する。例えば、ＶＭＩＤレジスタの値が０に設定されると、ＢＭモード性能レジスタ４０２の値を性能調整レジスタ４０４に格納する。ＶＭレジスタの値が０以外の場合はＶＭモード性能レジスタ４０３のうちＶＭＩＤに対応したレジスタの値を性能調整レジスタ４０４に設定する。Ｓ１２にて、ＣＰＵ４の性能調整部４２は、性能調整レジスタ４０４に設定された性能値に基づいて処理の性能を調整する。
【００２７】
以下、ＣＰＵ４にＢＭモード性能値及びＶＭモード性能値が設定されるシステムの立ち上げ時のフロー、及びホストサーバー１のＢＭ／ＶＭモード遷移の動作を図６、図７を参照して順に説明する。
【００２８】
図６は、本発明の一実施形態による、システム立ち上げ時のフローを示す図である。システムの起動は、サービスプロセッサ２から指示を行う。立ち上げシーケンスは、最初にＳ１０１にてホストサーバー１の電源を投入する。次にＳ１０２にて主記憶３を初期化する。次にＳ１０３にてサービスプロセッサ２のＤＩＳＫに格納されているファームウェア（ＦＷ）を主記憶３に転送する。次にＳ１０４にてＣＰＵの初期化を行う。ＣＰＵの初期化はハードウェア（ＨＷ）シーケンスで行われた後、ＦＷが起動し（ＦＷがＣＰＵ４に処理を実行させることによって）初期化を行う。
【００２９】
このとき、ＦＷはサービスプロセッサ２のＤＩＳＫからホストサーバー性能値とＶＭ毎の性能値を取得し、ＢＭモード性能レジスタ４０２にホストサーバー性能値を設定し、複数のＶＭモード性能レジスタ４０３にＶＭ毎の性能値を設定する。表１は性能値の設定例である。表１のＢＭの欄は、ＢＭモード性能レジスタ４０２に設定されるホストサーバー性能値であり、ＢＭモード時の性能は２００に設定されている。表１のＶＭ１、ＶＭ２、ＶＭ３の欄は、それぞれ、ＶＭモード性能レジスタ４０３に設定されるＶＭ１、ＶＭ２、ＶＭ３の性能値であり、ＶＭ１の性能は５０、ＶＭ２の性能は４０、ＶＭ３の性能は１００に設定されている。例えば、エンドユーザーがサーバー更改時に前機種からの相対性能を元に決定した目標性能値が設定される。
【表１】
0006958945.tif 000002
【００３０】
ＨＷ初期化が完了した後のソフトウェアの実行開始時は、ホストプロセスであるホストＯＳがＢＭモードで実行されるので、ＦＷはＶＭＩＤレジスタ４０１にＶＭＩＤ＝０を設定し、ＣＰＵ４がこれに対応するＢＭモード性能レジスタ４０２に格納された性能値を性能調整レジスタ４０４に設定する。
【００３１】
次にＳ１０５にてＩＯ  Ｉ／Ｆ５及びＩＯ  Ｉ／Ｆ５に接続されている周辺機器の初期化を行い、ＨＷ初期化は完了する（図６の「ＨＷ初期化完了」）。
【００３２】
次に、ソフトウェアの実行を開始する（図６の「ソフトウェア実行開始」）。これ以降は、ＣＰＵ４は性能調整レジスタ４０４に設定された性能値で動作する。まず、Ｓ１０６にてホストＯＳを起動する。次にＳ１０７にてＶＭ制御プログラムを起動する。次にＳ１０８にてＶＭ制御プログラムはシステムに定義された全てのＶＰプロセスを生成し、起動する。次にＳ１０９にてＶＰプロセスがＶＭモードに遷移しゲストＯＳを起動する。このとき、ＦＷが（ＣＰＵ４に処理を実行させることによって）ＶＭＩＤレジスタ４０１にＶＭ番号（１以上の整数）を設定し、ＣＰＵ４がこれに対応するＶＭモード性能レジスタ４０３に格納された性能値を性能調整レジスタ４０４に設定する。全てのゲストＯＳが立ち上がると、システム立ち上げ完了である（図６の「システム立ち上げ  終了」）。
【００３３】
以下、ホストサーバー１のＢＭ／ＶＭモード遷移の動作を詳細に説明する。図７は、本発明の一実施形態による、ＣＰＵ１個のモード切り替えの例を示すタイムチャートである。横方向に、左から右へ時間の経過を表し、縦方向に、ＢＭモード／ＶＭモードの遷移を表す。
【００３４】
図７では、ホストプロセスだけに着目すると、(1)ＶＭ制御プログラム、(2)ＶＰプロセス（ＶＭ１）、(3)ＶＰプロセス（ＶＭ２）、(4)ＶＰプロセス（ＶＭ３）、(1)ＶＰ制御プログラム、(4)ＶＰプロセス（ＶＭ３）の順で実行され、各ＶＰプロセスからＶＭプロセスに切り替わり同じＶＰプロセスに戻っている。すなわち、(2)ＶＰプロセス（ＶＭ１）から(5)ＶＭプロセス（ＯＳ，ＪＯＢ）（ＶＭ１）に切り替わり(2)ＶＰプロセス（ＶＭ１）に戻り、(3)ＶＰプロセス（ＶＭ２）から(6)ＶＭプロセス（ＯＳ，ＪＯＢ）（ＶＭ２）に切り替わり(3)ＶＰプロセス（ＶＭ２）に戻り、(4)ＶＰプロセス（ＶＭ３）から(7)ＶＭプロセス（ＯＳ，ＪＯＢ）（ＶＭ３）に切り替わり(4)ＶＰプロセス（ＶＭ３）に戻り、(4)ＶＰプロセス（ＶＭ３）から(7)ＶＭプロセス（ＯＳ，ＪＯＢ）（ＶＭ３）に切り替わるまでが表されている。
【００３５】
図７の(2)ＶＰプロセス（ＶＭ１）は図１のＶＰプロセス１−１に対応し、(3)ＶＰプロセス（ＶＭ２）は図１のＶＰプロセス２−１に対応し、(4)ＶＰプロセス（ＶＭ３）は図１のＶＰプロセス３−１又はＶＰプロセス３−２に対応する。
【００３６】
図７の(5)ＶＭプロセス（ＯＳ，ＪＯＢ）（ＶＭ１）は、図１ではゲストＯＳ（ＶＭ１）又はユーザプログラムＶＭ１＿Ａ又はユーザプログラムＶＭ１＿Ｂに対応する。図７の(5)の期間は、ゲストＯＳ（ＶＭ１）、ユーザプログラムＶＭ１＿Ａ、ユーザプログラムＶＭ１＿Ｂのうちの１つ又は複数に割り当てられてよく、これらの複数に割り当てられてられる場合の割り当て回数はそれぞれ１回でも複数回でもよい。
【００３７】
図７の(6)ＶＭプロセス（ＯＳ，ＪＯＢ）（ＶＭ２）は、図１ではゲストＯＳ（ＶＭ２）又はユーザプログラムＶＭ２＿Ｃ又はユーザプログラムＶＭ２＿Ｄに対応する。図７の(6)の期間は、ゲストＯＳ（ＶＭ２）、ユーザプログラムＶＭ２＿Ｃ、ユーザプログラムＶＭ２＿Ｄのうちの１つ又は複数に割り当てられてよく、これらの複数に割り当てられてられる場合の割り当て回数はそれぞれ１回でも複数回でもよい。
【００３８】
図７の(7)ＶＭプロセス（ＯＳ，ＪＯＢ）（ＶＭ３）は、図１ではゲストＯＳ（ＶＭ３）又はユーザプログラムＶＭ３＿Ｅ又はユーザプログラムＶＭ３＿Ｆに対応する。図７の(7)の２つの期間は、ゲストＯＳ（ＶＭ３）、ユーザプログラムＶＭ３＿Ｅ、ユーザプログラムＶＭ３＿Ｆのうちの１つ又は複数に割り当てられてよく、これらの複数に割り当てられてられる場合の割り当て回数はそれぞれ１回でも複数回でもよい。
【００３９】
図７におけるＶＭＩＤの変更などのＶＭモードとＢＭモードの状態遷移は、ＦＷが起動して行っている。例えば、図７で(2)から(5)へ切り替わるとき、(2)ＶＰプロセス（ＶＭ１）は、ＶＭＩＤを指定してＦＷを起動し、ＦＷは指定されたＶＭＩＤをＣＰＵ４のＶＭＩＤレジスタ４０１に設定する。ＣＰＵ４は、ＶＭＩＤレジスタ４０１に設定された値に対応するＶＭモード性能レジスタ４０３に格納された性能値を性能調整レジスタ４０４に設定する。ＣＰＵ４の性能調整部４２は、ＶＭＩＤレジスタ４０１が変更されるまで、性能調整レジスタ４０４に設定された性能値に基づいて処理の性能を調整する。図７の(5)ＶＭプロセス（ＯＳ，ＪＯＢ）（ＶＭ１）として、図１のゲストＯＳ（ＶＭ１）、ユーザプログラムＶＭ１＿Ａ、ユーザプログラムＶＭ１＿Ｂのいずれを動作させるかは、(2)ＶＰプロセス（ＶＭ１）が決定する。(5)ＶＭプロセス（ＯＳ，ＪＯＢ）（ＶＭ１）から(2)ＶＰプロセス（ＶＭ１）に戻るとき、ＦＷが起動され、ＦＷは０をＣＰＵ４のＶＭＩＤレジスタ４０１に設定する。ＣＰＵ４は、ＶＭＩＤレジスタ４０１に設定された０に対応するＢＭモード性能レジスタ４０２に格納された性能値を性能調整レジスタ４０４に設定する。ＣＰＵ４の性能調整部４２は、ＶＭＩＤレジスタ４０１が変更されるまで、性能調整レジスタ４０４に設定された性能値に基づいて処理の性能を調整する。
【００４０】
図７で左から順に見ると、(1)(2)の期間は、ＢＭモードでＶＭ制御プログラムとＶＭ１用のＶＰプロセスが動作する。このときのＶＭＩＤは０に設定されている。次にＶＭＩＤ＝１に設定されてＶＭモードに切り替わり、(5)のＶＭ１用のＶＭプロセスが動作する。ＶＭプロセスの実行が終了又は中断した場合、ＶＭＩＤ＝０に設定されてＢＭモードに切り替わり、(2)のＶＭ１用のＶＰプロセスが動作する。その後、この例では(3)のＶＭ２用のＶＰプロセスが動作し、次にＶＭＩＤ＝２に設定されてＶＭモードに切り替わり、(6)のＶＭ２用のＶＭプロセスが動作する。ＶＭプロセスの実行が終了又は中断した場合、ＶＭＩＤ＝０に設定されてＢＭモードに切り替わり、(3)のＶＭ２用のＶＰプロセスが動作する。それ以降も同様である。
【００４１】
このように、ＣＰＵ４は、ＢＭモードとＶＭモードを切り替えながら動作する。その際、ＶＭＩＤの値が変わるタイミングでＣＰＵの処理性能も変わり、ＶＭ毎に事前にＶＭモード性能レジスタに設定された性能値でＣＰＵが動作する。(1)(2)(3)(4)を実行する時はＢＭモード性能レジスタ４０２に設定された性能値（表１の性能値２００）でＣＰＵ４が動作し、(5)を実行する時はＶＭＩＤ＝１に対応したＶＭモード性能レジスタ４０３に設定された性能値（表１の性能値５０）でＣＰＵ４が動作し、(6)を実行するときはＶＭＩＤ＝２に対応したＶＭモード性能レジスタ４０３に設定された性能値（表１の性能値４０）でＣＰＵ４が動作し、(7)を実行するときはＶＭＩＤ＝３に対応したＶＭモード性能レジスタ４０４に設定された性能値（表１の性能値１００）でＣＰＵ４が動作する。すなわち、各ＶＭは個別に設定した性能値で動作しホストサーバー１のＣＰＵ４の性能値には依存しない。
【００４２】
ＣＰＵ４の性能の調整方法は、ＨＷレベルの性能調整方法としては、ＣＰＵのパイプラインを定期的に規定のサイクルだけストールさせる方法があり、ＦＷレベルの性能調整方法としては、定期的にＦＷが起動して規定回数ループ処理を実行する方法がある。どちらにおいても、ＣＰＵ実行時間を性能調整レジスタで指定した分だけ性能を低下させる。性能調整レジスタ４０４の実際の値は、性能調整方法に依存するため、ここでは規定しない。表１、図７の性能値は設定値の一例である。
【実施例２】
【００４３】
図８は、本発明のもう１つの実施形態による、ＶＭＩＤレジスタ、ＢＭモード性能値、ＶＭモード性能値、性能調整レジスタの配置を表す図である。図３に示すＣＰＵ４に存在したＢＭモード性能レジスタ４０２とＶＭモード性能レジスタ４０３を取り除き、その代わりにＢＭモード性能値３０２とＶＭモード性能値３０３を主記憶３に記憶する。ＢＭモード性能値３０２、ＶＭモード性能値３０３はシステム立ち上げのＳ１０４にて、サービスプロセッサ２のＤＩＳＫのホストサーバー性能値及びＶＭ毎の性能値を主記憶３に転送し、ＢＭモード性能値３０２、ＶＭモード性能値３０３として格納しておく。ＶＭＩＤ更新時に、ＦＷが新しいＶＭＩＤ値に対応した主記憶３のＢＭモード性能値３０２、ＶＭモード性能値３０３をロードし、性能調整レジスタ４０４に格納する。図３に示すＣＰＵ４と図８に示すＣＰＵ４の動作上の相違点は、図３に示すＣＰＵ４がＨＷ内で性能値を変更するのに対して、図８ではＦＷが性能値を変更することである。
【００４４】
ＶＭ性能をベストエフォート型ではなく、性能保証型にするためには、ＶＭ個別性能設定とワークロードマネージャを組み合わせることで実現が可能である。各ＶＭの目標性能を決定後、目標性能のｍ倍をＶＭの性能として、設定する。ワークロードマネージャでは、当該ＶＭに対してＣＰＵリソースを１／ｍだけ割り当てる。これにより、トータルではＶＭの目標性能となる。
ＣＰＵ数≧ＶＭの仮想プロセッサ数の合計  のときは、ｍ＝１
ＣＰＵ数＜ＶＭの仮想プロセッサ数の合計  のときは、ｍを２以上にする。
ただし、ＣＰＵ単体性能≧ＶＭ単体性能×ｍであること。
ホスト性能≧ＶＭトータル性能×ｍのようにホスト性能を超えないように設定することで、ＶＭ性能を保証できる。
【００４５】
上述した構成によれば、例えば、エンドユーザーがサーバー更改時に前機種からの相対性能を元に決定した目標性能値をシステム管理者がサービスプロセッサ２のＤＩＳＫに設定しておく。この情報は、例えば、ホストサーバー性能値とＶＭ毎の性能値のデータテーブルとして定義される。このデータテーブルの情報は、ホストサーバー１の立ち上げ時に、一実施形態においてＣＰＵ４のＢＭモード性能レジスタ４０１及びＶＭモード性能レジスタ４０２に設定され、もう１つの実施形態において主記憶３にＢＭモード性能値３０１及びＶＭモード性能値３０２として格納される。ホストサーバー１の運用中にＶＭを新規追加する際には、前記データテーブルに新規追加するＶＭの性能値を追加し、それに合わせてＣＰＵ４のＶＭモード性能レジスタ４０２又は主記憶３のＶＭモード性能値３０２を更新する。
【００４６】
ホストサーバー１のＣＰＵ４は、ホストプロセス処理（ＢＭモード）からＶＭプロセス処理（ＶＭモード）に移行する際、ＶＭＩＤレジスタ４０１に設定されたＶＭ番号でＶＭモード性能レジスタ４０２又は主記憶３のＶＭモード性能値３０２を索引して性能値を取得し、性能調整レジスタ４０４に設定し、この性能値になるようにＣＰＵ４の性能を調整する。また、ＶＭプロセス処理（ＶＭモード）からホストプロセス処理（ＢＭモード）に移行する際、ＢＭモード性能レジスタ４０１又は主記憶３のＢＭモード性能値３０１からホストサーバー性能値を取得し、この性能値になるようにＣＰＵ４の性能を調整する。このようにＢＭモードとＶＭモードの間を移行するたびに性能値を再設定することで、ホストプロセス処理中は本来のホストサーバー１の性能値で動作し、ＶＭプロセス処理中はエンドユーザー毎に設定した性能値に動的に切り替えて動作する。
【００４７】
このようにして、実行するＶＭ毎にＣＰＵ性能を動的に変更する機能を設けることで、ホストサーバー１の性能に依存せずにエンドユーザーの設定した目標性能で複数のＶＭが１台のホストサーバー１上で動作する。例えば、更改前のオンサイト運用のシステムで行っている性能と、ＶＭに更改した後のＶＭ性能を同等にすれば、目標性能に対する乖離を無くすことができるので、エンドユーザーがＶＭに更改してもオンサイト運用のサーバーと変わらずにエンドユーザーが希望する相対性能のサーバーとして運用でき、ユーザーニーズに適合する。
【００４８】
上述のファームウェアは、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって処理が行われる。ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしても良い。
【００４９】
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバーやクライアントとなるコンピュータシステム内部の揮発性メモリ（ＲＡＭ）のように、一定時間プログラムを保持しているものも含むものとする。
【００５０】
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク（通信網）や電話回線等の通信回線（通信線）のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であっても良い。
【産業上の利用可能性】
【００５１】
本発明によれば、ＶＭを様々なシステム規模のエンドユーザーが使用するクラウドサーバーにて利用が考えられる。特にメインフレームのような、スケーラビリティが大きいサーバーにおいて、小規模ユーザーはそのままの性能でＶＭに移行する希望があるため、クラウドサーバー内に、様々な性能のＶＭを搭載する必要があるようなケースに有効である。
【符号の説明】
【００５２】
１・・・ホストサーバー
２・・・サービスプロセッサ
３・・・主記憶
３０２・・・ＢＭモード性能値
３０３・・・ＶＭモード性能値
４・・・ＣＰＵ
４１・・・性能値設定部
４２・・・性能調整部
４０１・・・ＶＭＩＤレジスタ
４０２・・・ＢＭモード性能レジスタ
４０３・・・ＶＭモード性能レジスタ
４０４・・・性能調整レジスタ
５・・・入出力インターフェース
【図１】
0006958945.tif 000003
【図２】
0006958945.tif 000004
【図３】
0006958945.tif 000005
【図４】
0006958945.tif 000006
【図５】
0006958945.tif 000007
【図６】
0006958945.tif 000008
【図７】
0006958945.tif 000009
【図８】
0006958945.tif 000010