(57)【要約】【課題】複数の仮想計算機環境を切り替えて動作する計算機システムにおいて、簡易かつ高精度に計算機の性能を評価する。【解決手段】計算機システムは、現在動作している仮想計算機の種類を識別し、現在機能している仮想計算機の種類に対応して決定される計数器ごとに計数動作の可否を切り替える。これにより、本計算機システムは、計数動作が許可された計数器によって前記性能指標を計数するとともに、計数動作が許可されていない計数器については、前記計数動作中に計数された計数結果を保持することを特徴とする。【選択図】図１
2008129931.tif 000002
【特許請求の範囲】
【請求項１】
仮想計算機をその上で実行中の計算機システムにおいて、
前記計算機システムの性能指標を計数する複数の計数器と、
現在動作している仮想計算機を識別する手段と、
現在動作している仮想計算機に対応して決定される計数器ごとに計数動作の可否を切り替える切替手段と、を備え、
前記切替手段によって、計数動作が許可された計数器は前記性能指標を計数するとともに、計数動作が許可されていない計数器は前記計数動作中に計数された計数結果を保持することを特徴とする計算機システム。
【請求項２】
前記切替手段の切替動作の有効・無効の指示の設定を受け付ける手段と、
前記切替動作の有効・無効を制御する手段と、をさらに備え、
前記切替動作が無効の場合に、前記計算機の種類によらず継続して単一の計数器を動作させることを特徴とする請求項１に記載の計算機システム。
【請求項３】
仮想計算機をその上で実行中の計算機システムにおいて、
前記計算機システムの性能指標を計数する計数器と、
前記計数器の計数結果を保存する保存手段と、
その計算機システム上で動作する仮想計算機の切替を検知する手段と、
前記切替検知をトリガとして、現在動作している仮想計算機に対する計数結果を前記保存手段に保存する保存制御手段と、
前記切替後に動作する仮想計算機に対する前記切替前に計数済みの計数結果を前記保存手段から前記計数器に復元する復元手段と、を備えることを特徴とする計算機システム。
【請求項４】
仮想計算機をその上で実行中の計算機システムにおいて、
計算機システムの性能を評価するための性能指標を計数する複数の計数器と、
前記計数器の計数結果を保存する保存手段と、
その計算機システム上で現在動作している仮想計算機を識別する手段と、
現在動作している仮想計算機に対応して決定される計数器ごとに計数動作の可否を切り替える切替手段と、を備え
前記切替手段によって計数動作が許可された計数器は前記性能指標を計数するとともに、計数動作が許可されていない計数器は前記動作中に計数された計数結果を保持し、
前記計算機の種類に対応して決定される計数器の数が不足した場合に前記切替手段による切替動作を無効に設定する手段と、
その計算機システム上で動作する仮想計算機の切替を検知する手段と、
前記切替動作が無効に設定されているときに、仮想計算機の切替検知をトリガとして、現在動作している仮想計算機に対するすでに計数済みの計数結果を前記保存手段に保存する保存制御手段と、
前記切替によって機能する計算機に対するすでに計数済みの計数結果を前記保存手段から前記計数器に復元する復元制御手段と、をさらに備えることを特徴とする計算機システム。
【請求項５】
計算機システムの性能指標を計数する複数の計数器を備え、１個以上の仮想計算機がその上で切り替え動作している計算機システムが、
現在動作している仮想計算機を識別するステップと、
現在動作している仮想計算機に対応して決定される計数器ごとに計数動作の可否を切り替える切替ステップとを実行し、
前記切替ステップにおいて計数動作が許可された計数器によって前記性能指標を計数するとともに、計数動作が許可されていない計数器については、前記計数動作中に計数され
た計数結果を保持することを特徴とする計算機システムの性能モニタ方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、異なる種類の計算機として機能する計算機システムにおける性能モニタ技術に関する。
【背景技術】
【０００２】
従来から計算機システムの性能測定を行う手段として、被測定システムへの影響が少ないハードウェアモニタがよく利用されてきた。特に、現在のプロセッサはパフォーマンスモニタを内蔵しているものがほとんどであり、それを利用する性能評価ツールも少なくない。
【０００３】
例えば、Ｉｎｔｅｌ  ＶＴｕｎｅやＯｐｒｏｆｉｌｅなどのツールでは、プロセッサのパフォーマンスモニタリング機能を使うことにより、実行命令数やキャッシュミス数などのイベントをサンプリングし、計算機システムの性能解析を行っている。
【０００４】
しかし、いわゆる仮想計算機と呼ばれるシステムでは、単一の計算機システム（実計算機ともいう）を複数の異なる仮想計算機として利用できる。このため、それぞれの仮想計算機単位での性能測定や解析を行うことが困難であった。ここで、仮想計算機とは、例えば、複数のＯＳを切り替えて実行することで、そのＯＳに対応する機能を提供する計算機をいう。
【０００５】
また、従来、このような仮想計算機は、比較的規模の大きいホスト計算機において構成されることがほとんどであった。しかし、最近では、マイクロプロセッサのメーカが、身近なパーソナルコンピュータ用のプロセッサにおいても、ハードウェアにより複数種類の計算機として機能させる仮想化技術を実現している。そうなると、企業向けの大規模システムから個人レベルのパーソナルコンピュータまで、今後ますます多数の仮想計算機上で、性能評価が必要となる。
【０００６】
そのような仮想計算機を実現する計算機システムの性能評価手段としては、ソフトウェアモニタと、ハードウェアモニタを考えることができる。
【０００７】
まず、ソフトウェアモニタとしては、ＯＳや仮想計算機モニタ（ＶＭＭ）の一部として、パフォーマンスモニタのエミュレーションプログラムが性能データを収集していた。
【０００８】
この方式の場合は、プログラム変更による機能変更などの柔軟性はあるが、そもそもソフトウェアモニタ自身は被測定システムにとっては余分なプログラムで「オーバーヘッド」要因となる。
【０００９】
一方、ハードウェアモニタによる従来方式の例として、例えば、特開昭６３−３０１３３４のような方式がある。この技術では、測定プログラムが仮想計算機の実行状態に応じてハードウェアモニタを制御する必要があった。これは、プログラマが仮想計算機の実行状態、仮想計算機の切替タイミング等を理解した上で性能評価用のプログラムを記述する必要があることを意味する。そうしないと、ハードウェアモニタの測定結果が複数の仮想計算機間で衝突してしまう可能性があるからである。
【特許文献１】特開昭６３−３０１３３４号公報
【特許文献２】特開平２−２１１５４８号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
上述したソフトウェアモニタによる場合には、オーバーヘッドが問題となる。一方、ハードウェアモニタでは、複数種類の計算機を切り替えて機能を提供する仮想計算機システムにおいて、仮想計算機ごとの性能評価が困難であった。
【００１１】
本発明の目的は、複数種類の計算機を切り替えて機能を提供する仮想計算機システムにおいて、簡易かつ高精度に計算機の性能を評価できる技術を提供することである。
【課題を解決するための手段】
【００１２】
本発明は前記課題を解決するために、以下の手段を採用した。すなわち、本発明は、計算機システムの性能指標を計数する複数の計数器を備える計算機システムの性能モニタ技術に関するものである。本計算機システムは、現在動作している仮想計算機を識別し、現在動作している仮想計算機に対応して決定される計数器ごとに計数動作の可否を切り替える。これにより、本計算機システムは、計数動作が許可された計数器によって前記性能指標を計数するとともに、計数動作が許可されていない計数器については、前記計数動作中に計数された計数結果を保持することを特徴とする。
【００１３】
本計算機システムは、現在動作している仮想計算機に対応して決定される計数器ごとに計数動作の可否を切り替える機能を有するので、計算機システムで実行されるプログラムが、動作している仮想計算機を意識することなく、個々の仮想計算機について、性能モニタを実行できる。
【００１４】
本計算機システムは、上記切替動作の有効・無効の指示の設定を受け付け、切替動作の有効・無効を制御する。これにより、本計算機システムは、切替動作が無効の場合に、計算機の種類によらず継続して単一の計数器を動作させることを特徴とする。この場合には、異なる種類の計算機を組み合わせた計算機システム全体の性能モニタが実現される。
【００１５】
また、本発明は、計算機の性能を評価するための性能指標を計数する計数器と前記計数器の計数結果を保存する保存手段とを備えるものでもよい。すなわち、本計算機システムは、現在動作している仮想計算機の切替を検知し、その切替検知をトリガとして、現在動作している仮想計算機に対する計数結果を前記保存手段に保存し、さらに、切替後に動作する仮想計算機に対する前記切替前に計数済みの計数結果を保存手段から前記計数器に復元する復元することを特徴とする。このような構成により、計数器と保存手段の組み合わせによって、複数の仮想計算機に対する性能モニタを実現できる。
【００１６】
また、本発明は、以上のような機能を組み合わせた計算機システムでもよい。すなわち、計算機システムが、現在動作している仮想計算機を識別し、現在動作している仮想計算機に対応して決定される計数器ごとに計数動作の可否を切り替える。これにより、計数動作が許可された計数器によって性能指標を計数するとともに、計数動作が許可されていない計数器については、動作中に計数された計数結果を保持するとともに、さらに、以下の機能を実現する。すなわち、仮想計算機に対応して決定される計数器の数が不足した場合に切替動作を無効に設定し、現在動作している仮想計算機の切替を検知する。
【００１７】
そして、切替動作が無効に設定されているときに、切替検知をトリガとして、現在動作している仮想計算機に対するすでに計数済みの計数結果を保存手段に保存し、切替後に動作する仮想計算機に対する切替前に計数済みの計数結果を保存手段から計数器に復元する復元する。
【００１８】
このような構成により、計算機システムで動作する仮想計算機に応じて柔軟に、計数器の実効的な数を拡張できる。そして、計算機システムで実現される仮想計算機の数に変動
があった場合でも、計算機システムに本来設けられた構成要素を用いて、簡易にそれぞれの仮想計算機に対する性能モニタを実現できる。
【発明の効果】
【００１９】
本発明によれば、複数の仮想計算機を切り替えて動作する仮想計算機システムにおいて、簡易かつ高精度に計算機の性能を評価できる。
【発明を実施するための最良の形態】
【００２０】
以下、図面を参照して本発明を実施するための最良の形態（以下、実施形態という）に係る計算機システムについて説明する。以下の実施形態の構成は例示であり、本発明は実施形態の構成には限定されない。
【００２１】
以下の実施形態はすべて、１つのプロセッサコア（または１台の計算機）上で複数の仮想計算機が動作していることを前提とする。その場合、各仮想計算機は、プロセッサコア（または１台の計算機）上で１つずつ切り替わりながら動作することになる。なお、本実施形態において、仮想計算機とは、同一の計算機上で複数のＯＳを実行することにより、仮想的に異なる複数の計算機環境が提供される場合のそれぞれの仮想計算機環境をいうものとする。例えば、１つの計算機上に、パーソナルコンピュータ専用ベンダから提供される第１ＯＳと、フリーソフトウェアである第２ＯＳとがインストールされている場合が相当する。この場合、第１ＯＳが実行されているとき、計算機は、第１の仮想計算機として機能し、第２ＯＳが実行されているとき、同一の計算機が第２の仮想計算機として機能する。
【００２２】
また、本計算機システムは、プロセッサコア上で仮想計算機モニタを実行する。仮想計算機モニタは、本計算機システムで複数のＯＳの下層で機能し、複数のＯＳを切り替えて実行する。本計算機システムは、仮想計算機モニタが実行するそれぞれのＯＳによって、それぞれの異なる仮想計算機として機能する。
【００２３】
＜第１実施形態＞
ここでは、図１および図２を使用して本発明の第１実施形態を説明する。本計算機システムは、一般的なコンピュータの構成、例えば、プロセッサコア（例えば、ＣＰＵ）、メモリ、外部記憶装置（例えば、ハードディスク、取り外し可能な可搬記録媒体の駆動装置等）、外部記憶装置とのインターフェース、通信インターフェース、入出力装置（例えば、キーボード、マウス等のポインティングデバイス等）を有する。
【００２４】
本計算機システムのプロセッサコア１は、一般的なＣＰＵの機能に加えて、パフォーマンスモニタリングユニット（以下、ＰＭＵという）およびＰＭＵへのアクセスを制御する有効ユニット切替器２を有している。
【００２５】
図１は、本実施形態に係る計算機システムのプロセッサコア１の機能を示している。図１に示すように、本計算機システムのプロセッサコア１は、複数のバンク６（バンクを個々に呼ぶ場合には、バンク６−１、６−２、６−Ｎのように呼ぶ）を含むＰＭＵ５と、ＰＭＵ５のバンク６のうち使用すべきバンク６を切り替える有効ユニット切替器２（本発明の切替手段に相当）と、有効ユニット切替器２が現在動作している仮想計算機を識別するために使用する情報となる仮想計算機ＩＤレジスタ３とプログラムカウンタ４（これらが本発明の仮想計算機を識別する手段に相当）とを有している。
【００２６】
実行仮想計算機ＩＤレジスタ３には、実行中の仮想計算機を識別するＩＤが、仮想計算機モニタによって設定される。
【００２７】
ここで、ＰＭＵ５は、ＣＰＵの性能指標となる情報をバンク６に蓄積する。ここで、性能指標となる情報とは、例えば、実行命令数である。バンク６は、例えば、プロセッサコア１内のレジスタセットによって構成される。ＰＭＵ５は、複数のバンク６を有するので、ＰＭＵセットとも呼ばれる。
【００２８】
図２に、ＰＭＵ５の１つのバンク６の構成例を示す。１つのバンク６は、図２に示す通り一般的に、性能イベントのカウンタレジスタ（カウントレジスタを個々に呼ぶ場合には、カウントレジスタ８−１、８−２、８−Ｎのように呼ぶ）８と設定レジスタ（設定レジスタを個々に呼ぶ場合には、設定レジスタ７−１、７−２、７−Ｎのように呼ぶ）７との１個以上の対で構成されている。設定レジスタ７とカウンタレジスタ８の対が本発明の計数器に相当にする。
【００２９】
ここで、設定レジスタ７には、収集すべき情報の種類（実行命令数等）を指定する。カウントレジスタ８には、設定レジスタ７で指定された情報が積算される。例えば、設定レジスタ７−１の設定値に応じて、プログラムカウンタ４への更新信号を抽出し、その更新信号トリガとして、カウンタレジスタ８−１をインクリメントする論理回路を構成すればよい。
【００３０】
本計算機システムの特徴は、このＰＭＵ５を複数バンク設けて、実行中の仮想計算機に応じて有効ユニット切替器２により、使用するＰＭＵ５のバンク６を選択動作させるところにある。
【００３１】
次に、図１の構成による動作例を説明する。以下は一連の流れであるが、便宜上４つの部分に区切って説明する。
【００３２】
［処理例１−１］
まず、図１に示すプロセッサコア１上でＮ個の仮想計算機が動作しているとする。今、各仮想計算機には識別ＩＤとして＃１〜＃Ｎが割り振られているとする。そのうち、現在動作中の仮想計算機を＃２とすると、仮想計算機ＩＤレジスタ３には「２」という値が保持されていることになる。
【００３３】
仮想計算機ＩＤレジスタ３への値設定（書込み）は、例えば、仮想計算機が切り替わるときに、仮想計算機モニタが行う。ただし、個々のＯＳが切り替え時に仮想計算機ＩＤレジスタ３への値を設定するようにしてもよい。
【００３４】
今、仮想計算機ＩＤレジスタ３の保持値が「２」なので、有効ユニット切替器２は有効なＰＭＵセットをＢＡＮＫ＃２に切替える。
【００３５】
［処理例１−２］
次に、この状態で仮想計算機＃２からパフォーマンスモニタを使った性能測定を行うとする。例えば、実行命令数を測定しようとする。そこで、仮想計算機＃２の上で実行される性能測定プログラムがＰＭＵ５の設定レジスタ７−１に実行命令数イベントの設定を行い、カウントを開始させるとする。例えば、設定レジスタ７−１の値に応じて、所定のスイッチがオンとなるように構成し、プログラムカウンタ４に入力される更新信号を抽出すればよい。この更新信号から１パルスを発生させ、カウンタレジスタ８−１をインクリメントするようにすればよい。
【００３６】
この場合、測定プログラムは仮想計算機であることは全く意識しない。したがって、プログラマは、従来通りのＰＭＵプログラミングを行うだけである。しかし、ハードウェア上ではＰＭＵ５のバンク６−２の設定レジスタ７−１とカウンタレジスタ８−１が使用さ
れることになる。すなわち、仮想計算機＃２が動作している限りＰＭＵ５のバンク６−２のカウンタレジスタ８−１で仮想計算機＃２の実行命令数が計測され続けることになる。
【００３７】
［処理例１−３］
ここで、一旦仮想計算機が＃３に切り替わったとすると、先の［処理例１−１］の動作例にしたがって、有効ユニット切替器２により動作可能なＰＭＵ５がバンク６−２からバンク６−３に切り替わる。
【００３８】
そうすると、ＰＭＵ５のバンク６−２によるイベント計測は一旦停止状態となる。このようにして、ＩＤが＃２以外の仮想計算機が動作している間は、設定レジスタ７の値やカウンタレジスタ８の値は保持しつつも、ＰＭＵ５のバンク６−２による実行命令数の計測は一時停止状態となる。
【００３９】
［処理例１−４］
そして再び仮想計算機＃２の実行が再開されると、ＰＭＵ５は再びバンク６−２に切り替わり、バンク６−２の設定レジスタ７−１のイベント設定に基づき、バンク６−２のカウンタレジスタ８−１による実行命令数の計測が再開される。ここでは、設定レジスタ７−１への設定とカウンタレジスタ８−１での計測とによって実行命令数を計測する例を示すが、他の設定レジスタ７−２、７−３等と、他のカウンタレジスタ８−２、８−３等との組み合わせを用いて、他の性能指標を並行して計測することもできる。
【００４０】
最後に、仮想計算機＃２の測定プログラムが測定を停止することにより、ＰＭＵ５のバンク６−２のカウンタレジスタ８−１の計測が停止する。このとき、仮想計算機のＩＤに対応するバンク６−２のカウンタレジスタ８−１に計測されているカウント値は仮想計算機＃２の実行時のみの実行命令数となる。また、以上より測定プログラムからは、全く仮想計算機環境を意識する必要がないことも分かる。
【００４１】
以上述べたように、本実施形態の計算機システムは、プロセッサコア１上で、複数のＯＳを切り替えて起動することによって、そのＯＳに対応する複数の仮想計算機として機能する。
【００４２】
そして、現在機能中の仮想計算機ＩＤが仮想計算機ＩＤレジスタ３に保持され、かつ、仮想計算機ＩＤレジスタ３が有効ユニット切替器２を制御し、現在動作している仮想計算機における実行命令数がＰＭＵ５の中の仮想計算機ＩＤで識別されるバンク６にて計測される。
【００４３】
したがって、本計算機システムが、次々に仮想計算機を切り替えても、オーバーヘッドを増加させることなく、それぞれの仮想計算機の実行命令数が計測されることになる。
【００４４】
＜第２実施形態＞
さらに図３を使用して、本発明の第２実施形態を示す。本実施形態では、図３に示すように、第１実施形態の構成に加えて、有効ユニット切替器２の動作自体の有効・無効を制御する切替有効・無効制御部９（本発明の有効・無効を制御する手段に相当）が設けられている。切替有効・無効制御部９への設定と、切替有効・無効制御部９による有効ユニット切替器２の制御もまたハードウェア（論理回路）で構成できる。例えば、有効・無効を保持するフリップフロップと、ＡＮＤゲートとによって構成できる。ＡＮＤゲートによって、仮想計算機ＩＤレジスタ３から有効ユニット切替器２への接続をオンまたはオフにすればよい。また、複数のＡＮＤゲートを含む選択回路によって、有効ユニット切替器２の出力を１つのバンクに固定してもよい。
【００４５】
上記［処理例１−２］において、測定プログラムが設定レジスタ７に対するイベント設定と同時に、有効ユニット切替器２を「Ｄｉｓａｂｌｅ」（切替無効）に設定したとする（なお、Ｅｎａｂｌｅの場合は上記の［処理例１−１」から［処理例１−３］までの動作と同様となる）。このようなこのような有効ユニット切替器２の有効・無効の値の設定部（例えば、フリップフロップの入力端子）が本発明の有効・無効の設定を受け付ける手段に相当する。
【００４６】
この場合には、［処理例１−３］のように仮想計算機ＩＤが＃３に切り替わっても、有効なＰＭＵ５のバンク６は切り替わらない。すなわち、実行中の仮想計算機の種類に関わらず、引き続きＰＭＵ５のバンク６−２が動作可能のままとなり、仮想計算機＃３の実行命令数もそのままＰＭＵ５のバンク６−２のカウンタレジスタ８−１に追加して計数されることとなる。
【００４７】
このように、このカウンタレジスタ８−１では、動作する仮想計算機の種類に関わりなく該当イベントをカウントし続けることとなり、その結果、計算機システム全体としての実行命令数（これを実計算機の実行命令数という）が仮想計算機上からも計測可能となる。カウンタレジスタ８−２以下による計測も同様である。
【００４８】
以上説明したような切替有効・無効制御部９に対する設定は、設定プログラムがユーザ操作を受け付けて実行してもよい。例えば、設定プログラムのユーザインターフェースが、ユーザ操作を受け付けて、切替有効・無効制御部９を有効または無効に設定すればよい。また、例えば、計算機システムのシステムパラメータの設定にしたがって、仮想計算機モニタが切替有効・無効制御部９を有効または無効に設定してもよい。システムパラメータの設定は、一般的には、計算機システムに用意されている。このようなユーザインターフェース、または、システムパラメータの設定手段を本発明の有効・無効の設定を受け付ける手段とすることもできる。
【００４９】
＜第３実施形態＞
ここでは図４を使用して第３実施形態を示す。本実施形態では、仮想計算機の切り替え時に、その時点のＰＭＵ５の内容（コンテキストと呼ぶ）を自動退避・復元する計算機システムを説明する。
【００５０】
図４に示すように、本計算機システムでは、第１実施形態の場合と異なり、ＰＭＵ５は１セットのバンクからなっている。一方、本計算機システムは、第１実施形態（図１）の構成に加えて、プロセッサコア１内にＰＭＵ自動待避・復元装置１０と、ＰＭＵ自動待避・復元装置１０（本発明の保存制御手段および復元制御手段に相当）に仮想計算機の切替タイミングを通知する仮想計算機の切替トリガ通知手段１２を有している。また、本計算機システムは、プロセッサコア１の外部の記憶装置１１（本発明の保存手段に相当）に、「ＰＭＵコンテキスト保存エリア」が設けられている。本実施形態の他の構成および作用は、第１実施形態、第２実施形態の場合と同様である。そこで、必要に応じて、図１から図３の図面を参照する。
【００５１】
本計算機システムの特徴は、複数のＰＭＵコンテキストを保存するＰＭＵコンテキスト保存エリアを記憶装置１１上に設けて、仮想計算機の切替信号をトリガとして、ＰＭＵコンテキストの退避・復元を行うことにある。
【００５２】
ここで、記憶装置１１は、例えば、コンピュータの主記憶装置である。また、ＰＭＵコンテキスト保存エリアは、それぞれ、図２に示した設定レジスタ７とカウンタレジスタ８の値を格納するメモリ領域に相当する。
【００５３】
次に図４による動作例を説明する。
【００５４】
［処理例３−１］
まず、図４に示すプロセッサコア１上でＮ個の仮想計算機が動作しているとする。このとき、各仮想計算機には識別ＩＤとして＃１〜＃Ｎが割り振られているとする。
【００５５】
この状態で仮想計算機＃２からパフォーマンスモニタ機能を使った性能測定を行うとする。例えば、実行命令数を測定しようとする。そこで、仮想計算機＃２上で性能測定プログラムがＰＭＵ５の設定レジスタ７−１に実行命令数イベントの設定を行い、カウントレジスタ８−１を用いてカウントを開始させるとする。
【００５６】
この場合、測定プログラムは仮想計算機であることは全く意識しない。したがって、プログラマは、従来通りのＰＭＵプログラミングを行うだけである。そしてハードウェア上でも従来通りに１セットのみ存在するＰＭＵ５の設定レジスタ７−１とカウンタレジスタ８−１が使用されることになる（図２参照）。
【００５７】
［処理例３−２］
ここで、一旦仮想計算機が＃３に切り替わるとすると、切替トリガ通知手段１２（本発明の仮想計算機の切替を検知する手段に相当）から、切替信号がトリガとしてＰＭＵ自動退避・復元装置１０に通知される。ＰＭＵ自動退避・復元装置１０がその切替通知をトリガとして受け取り、まず現在のＰＭＵコンテキストを記憶装置１１内のＰＭＵコンテキストの保存エリアの１つであるＶＭ＃２用エリアに保存する。
【００５８】
なお、仮想計算機の切替通知の例としては、図１で示した様な仮想計算機ＩＤレジスタ３が書き換えられたとき、プログラムカウンタ４の値が異なる仮想計算機の実行アドレス範囲に移ったとき、または、ページテーブルが異なる仮想計算機のものに変わったときなどが挙げられる。これらの状態の変化は、仮想計算機モニタが検知してもよい。その場合には、仮想計算機モニタが切替トリガ通知手段１２として機能し、ＰＭＵ自動待避・復元装置１０にトリガを通知すればよい。
【００５９】
また、プロセッサコア１内に、これらの状態を検知する専用のハードウェア（論理回路）を設けてもよい。例えば、仮想計算機ＩＤレジスタ３の値の変化、または、ページテーブルを識別するレジスタの値の変化を検知する比較器を設ければよい。また、プログラムカウンタ４の値と、特定のアドレス値（仮想計算機に対応する実行アドレスの境界値）とを比較する比較器を設ければよい。そして、いずれかの比較器から出力があった場合に、切替トリガ通知手段１２からトリガを通知するようにすればよい。
【００６０】
次に、ＰＭＵ自動退避・復元装置１０は、記憶装置１１内のＶＭ＃３用エリアからＰＭＵコンテキストを抽出し、ＰＭＵ５にコピーする。この処理により、ＰＭＵ５の設定が仮想計算機＃３に対応するものに復元される。そして、仮想計算機＃２で測定していた実行命令数イベントの計測は一旦停止状態となる。
【００６１】
このようにして、＃２以外の仮想計算機が動作している間は、設定レジスタ７の値やカウンタレジスタ８の値は記憶装置上に保存されたまま、仮想計算機＃２による実行命令数の計測は一時停止状態となる。
【００６２】
［処理例３−３］
そして再び仮想計算機＃２に切り替わるとき、今度は、ＶＭ＃２用エリアからＰＭＵコンテキストが復元され、設定レジスタ７−１のイベント設定に基づき、カウンタレジスタ８−１による実行命令数の計測も再開される。
【００６３】
最後に、仮想計算機＃２の測定プログラムが測定を停止することにより（例えば、所定のゲートを遮断する）、バンク６−２のカウンタレジスタ８−１の計測が停止する。そして、カウントレジスタ８−１に計測されているカウント値は仮想計算機＃２の実行時のみの実行命令数となる。
【００６４】
また、以上より測定プログラムからは全く仮想計算機環境を意識する必要がないことも分かる。
【００６５】
＜第４実施形態＞
さらに図５を使用して、本発明の第４実施形態を示す。本実施形態では、ＰＭＵ自動退避・復元装置１０の動作の有効・無効の制御が可能な計算機システムを示す。図５に示すように、本実施形態では、ＰＭＵ自動退避・復元装置１０の有効・無効を制御する切替有効・無効制御部９Ａ（本発明の保存制御手段と復元手段とにおける動作の有効・無効を制御する手段に相当）が設けられている。
【００６６】
この場合も、切替有効・無効制御部９Ａへの設定と、切替有効・無効制御部９ＡによるＰＭＵ自動退避・復元装置１０の動作の有効・無効の制御もまたハードウェア（論理回路）で構成できる。例えば、有効・無効を保持するフリップフロップと、ＡＮＤゲートとによって構成できる。ＡＮＤゲートによって、切替トリガ通知手段１２からＰＭＵ自動退避・復元装置１０への通知をオンまたはオフにすればよい。
【００６７】
ここでは、上記［処理例３−１］において、測定プログラムがイベント設定と同時に、ＰＭＵ自動退避・復元装置を「Ｄｉｓａｂｌｅ」（切替無効）に設定したとする（なお、切替有効の場合は上記の第３実施形態の動作と同様である）。
【００６８】
この場合、仮想計算機が＃３に切り替わっても、ＰＭＵコンテキストの退避・復元は行われず、引き続き、仮想計算機＃３の実行命令数もそのままＰＭＵ５のカウンタレジスタ８−１に追加して計数されることとなる。
【００６９】
このように同カウンタレジスタ８−１では仮想計算機に関係なく該当イベントをカウントし続けることとなり、その結果、計算機システム全体としての実行命令数（すなわち、実計算機の実行命令数）が仮想計算機上からも計測可能となる。
【００７０】
＜第５実施形態＞
ここでは図６を使用して本発明の第５実施形態を示す。図６は、図３のユニット切替方式と図５のＰＭＵ退避復元方式の混合方式を表している。
【００７１】
本実施形態で、第１実施形態から第４実施形態の場合と異なる構成要素について簡単に説明する。
【００７２】
まず、有効ユニット切替器２からＰＭＵ自動退避・復元装置１０に送信されている切替有効・無効の信号線１３が、ＰＭＵ５の枯渇時に有効ユニット切替器２からＰＭＵ自動退避復元装置１０に動作依頼を通知する信号となる。ここで、ＰＭＵ５の枯渇とは、ＰＭＵ５のすべてのバンク６が異なる仮想計算機のパフォーマンスモニタ機能に使用されている状態をいう。上記切替有効・無効の信号線１３がＥｎａｂｌｅ（切替有効）の場合のみ、すなわち動作依頼が出ている間のみ、ＰＭＵ自動退避・復元装置１０は作動する。
【００７３】
以下、本実施形態では、ＰＭＵ５の複数のバンク６について、有効ユニット切替器２用のＰＭＵ５の複数のバンク６（例えば、バンク６−１、６−２）とＰＭＵ自動退避・復元
装置１０が使用するＰＭＵ５のバンク６−Ｘを完全に分けて使用する例を説明する。具体的には、仮想計算機＃１と＃２はそれぞれ専用のＰＭＵ５のバンク６−１、６−２を持ち、ユニット切替方式で切り替えて測定が実行される。
【００７４】
一方、仮想計算機が＃３以上構成された場合、ＩＤが＃３以上の仮想計算機に対しては、ＰＭＵ５のバンク６−Ｘを使って、ＰＭＵコンテキスト退避・復元方式で測定が行われることとなる。図６では、本実施形態でのＰＭＵコンテキスト保存エリアは仮想計算機＃３以上のみ対応として図示してある。ただし、３以上のバンクをユニット切替方式で切り替えてもよい。次に図６による動作例を説明する。
【００７５】
［処理例５−１］
まず、図６に示すプロセッサコア１上でＮ個の仮想計算機が動作しているとする。そのうち、現在動作中の仮想計算機を＃２とすると、［処理例１−１］の動作例にしたがって、有効ユニット切替器２は有効なＰＭＵ５をバンク６−２に切り替えている状態となる。
【００７６】
［処理例５−２］
次に、この状態で仮想計算機＃２からパフォーマンスモニタ機能を使った性能測定を行うとする。例えば、実行命令数の測定を開始したとする。すると、［処理例１−２］で述べた様に、ＰＭＵ５のバンク６−２の設定レジスタ７−１とカウンタレジスタ８−１が使用されることになる。
【００７７】
［例５−３］
ここで、一旦仮想計算機が＃３に切り替わるとする（仮想計算機ＩＤレジスタ３の設定値が例えば仮想計算機モニタによって変更される）。ところが本実施例では仮想計算機＃３用のＰＭＵ５のバンク６は用意されていない。
【００７８】
そこで、ユニット切替器２は、ＰＭＵ５のバンク６−１、６−２の切替を停止する（仮想計算機ＩＤレジスタ３、および有効ユニット切替器２が本発明の無効に設定する手段に相当する。また、仮想計算機ＩＤレジスタ３が本発明の仮想計算機の切替を検知する手段に相当する）。そして、ユニット切替器２は、ＰＭＵ自動退避・復元装置１０への動作依頼信号をＥｎａｂｌｅ（切替有効）にし、ＰＭＵ５をバンク６−Ｘに切り替える。これにより、動作依頼を受信し、動作が可能となったＰＭＵ退避・復元装置１０は、ＶＭ＃３用エリアからＰＭＵコンテキストをＢＡＮＫ＃Ｘに復元コピーする。
【００７９】
さらに今度は、仮想計算機＃４に切り替わるとすると、仮想計算機＃４用のＰＭＵ５のバンクも用意されていないので、ユニット切替器２はＰＭＵ自動退避・復元装置へ引き続き動作依頼信号をＥｎａｂｌｅとしたままで、有効なＰＭＵ５もバンク６−Ｘのままとする。
【００８０】
ＰＭＵ自動退避・復元装置１０は仮想計算機ＩＤレジスタ３からの切替トリガを受け、まず現在のＰＭＵコンテキストを図３のＶＭ＃３用エリアに保存する。そしてＶＭ＃４用エリアからＰＭＵコンテキストをバンク６−Ｘに復元コピーする。
【００８１】
その後、また仮想計算機＃２に切り替わるとすると、やはりまずＰＭＵ自動退避・復元装置１０は切替トリガを受け、まず現在のＰＭＵコンテキストをＶＭ＃４用エリアに保存する。
【００８２】
ところが今度は＃２専用のＰＭＵ  ＢＡＮＫがあるので、ユニット切替器２はＰＭＵ自動退避・復元装置１０への動作依頼信号をＤｉｓａｂｌｅ（切替不能）に変更し、ＰＭＵ５をバンク６−２に切り替える。
【００８３】
Ｄｉｓａｂｌｅを受信したＰＭＵ自動退避・復元装置１０はＰＭＵコンテキストの退避だけ完了して、復元動作は行わず（行えない）動作を停止する。
【００８４】
以上より、本実施形態でも、第１実施形態から第４実施形態と同様、測定プログラムからは全く仮想計算機環境を意識する必要なく、仮想計算機単位の性能測定が可能となることが分かる。
【００８５】
また、本実施例でも、図６に示した動作有効・無効制御部９Ｂに対する設定によってユニット切替器２とＰＭＵ自動退避・復元装置１０を「Ｄｉｓａｂｌｅ」に設定することにより、実計算機システム全体の性能測定も仮想計算機上から可能となる。以上のようなユニット切替器２、あるいは、ＰＭＵ自動退避・復元装置１０は、ハードウェア（論理回路）で実現することができる。また、動作有効・無効制御部９Ｂの構成・および作用は、図５で説明した切替有効・無効制御部９Ａの構成と同様である。ただし、図６に示しように、動作有効・無効制御部９Ｂは、ユニット切替器２、および、ＰＭＵ自動退避・復元装置１０の双方について、それらの動作の有効・無効を制御する。
【００８６】
＜実施形態の効果＞
本計算機システムにより、カウンタ単位ではなくＰＭＵ単位での、ハードウェアによるパフォーマンスモニタの仮想化が可能となる。
【００８７】
これによりまず、使用するパフォーマンスモニタを、実行仮想計算機に対応したものにハードウェアが自動的に切り替えてくれるので、「仮想計算機単位の性能測定」が可能となると同時に、測定結果が「より高精度」になる効果が期待される。
【００８８】
また、切替がＰＭＵ単位であることから、性能測定プログラムなどソフトウェア側からは「仮想計算機を意識する必要がない」という効果も得られ、さらにその結果、「従来通りの測定方法や既存の性能ツールをそのまま流用」しても、対象となる仮想計算機だけの性能測定や評価が可能となる。
【００８９】
本計算機システムにより、仮想計算機単位の測定をソフトウェアから無効にすることもできる。それにより、測定プログラムから測定対象を、仮想計算機単位か計算機システム全体とするか、実計算機単位とするかが選択可能となる。すなわち、「実計算機システムの性能監視」も仮想計算機上から可能となる。
【００９０】
また、第５実施形態の本計算機システムにより、記憶装置１１のＰＭＵコンテキスト保存エリアの使用エリア数を増減することで、仮想化対応可能なＰＭＵ５の個数を動的に変動させることができる。よって、仮想計算機の生成消滅による増減にもより柔軟に対応可能となる。その結果、性能測定可能な仮想計算機の「個数制限をなくす」効果が得られる。
【００９１】
＜その他＞
本実施形態は、以下の態様（付記という）を含む。なお、以下の付記を組み合わせて実施形態の態様としてもよい。
（付記１）
計算機システムの性能指標を計数する複数の計数器を備え、１個以上の仮想計算機がその上で切り替え動作している計算機システムが、
現在動作している仮想計算機を識別するステップと、
現在動作している仮想計算機に対応して決定される計数器ごとに計数動作の可否を切り替える切替ステップとを実行し、
前記切替ステップにおいて計数動作が許可された計数器によって前記性能指標を計数するとともに、計数動作が許可されていない計数器については、前記計数動作中に計数された計数結果を保持することを特徴とする計算機システムの性能モニタ方法。（５、図１、図２）
（付記２）
前記計算機システムが、前記切替ステップでの切替動作の有効・無効の指示の設定を受け付けるステップと、
前記切替動作の有効・無効を制御するステップと、を実行し、
前記切替動作が無効の場合に、前記計算機の種類によらず継続して単一の計数器を動作させることを特徴とする付記１に記載の計算機システムの性能モニタ方法。（図３）
（付記３）
計算機システムの性能指標を計数する計数器と前記計数器の計数結果を保存する保存手段とを備える計算機システムが、
その計算機システム上で動作する仮想計算機の切替を検知するステップと、
前記切替検知をトリガとして、現在動作している仮想計算機に対する計数結果を前記保存手段に保存する保存ステップと、
前記切替後に動作する仮想計算機に対する前記切替前に計数済みの計数結果を前記保存手段から前記計数器に復元する復元ステップと、を実行することを特徴とする計算機システムの性能モニタ方法。（図４）
（付記４）
前記保存ステップと復元ステップとにおける動作の有効・無効を設定するステップをさらに実行し、
前記動作が無効の場合には、計算機の種類によらず継続して計数器を動作させることを特徴とする付記３に記載の計算機システムの性能モニタ方法。（図５）
（付記５）
計算機システムの性能指標を計数する複数の計数器と前記計数器の計数結果を保存する保存手段とを備える計算機システムが、
その計算機システム上で現在動作している仮想計算機を識別するステップと、
現在動作している仮想計算機に対応して決定される計数器ごとに計数動作の可否を切り替える切替ステップとを実行し、
前記切替ステップにおいて計数動作が許可された計数器によって前記性能指標を計数するとともに、計数動作が許可されていない計数器については、前記動作中に計数された計数結果を保持するとともに、
前記計算機の種類に対応して決定される計数器の数が不足した場合に前記切替手段による切替動作を無効に設定するステップと、
動作している仮想計算機の切替を検知するステップと、
前記切替動作が無効に設定されているときに、前記切替検知をトリガとして、現在動作している仮想計算機に対するすでに計数済みの計数結果を前記保存手段に保存する保存ステップと、
前記切替後に動作する仮想計算機に対する前記切替前に計数済みの計数結果を前記保存手段から前記計数器に復元する復元ステップと、を実行することを特徴とする計算機システムの性能モニタ方法。（図６）
（付記６）
仮想計算機をその上で実行中の計算機システムにおいて、
前記計算機システムの性能指標を計数する複数の計数器と、
現在動作している仮想計算機を識別する手段と、
現在動作している仮想計算機に対応して決定される計数器ごとに計数動作の可否を切り替える切替手段と、を備え、
前記切替手段によって、計数動作が許可された計数器は前記性能指標を計数するとともに、計数動作が許可されていない計数器は前記計数動作中に計数された計数結果を保持す
ることを特徴とする計算機システム。（１、図１、図２）
（付記７）
前記切替手段の切替動作の有効・無効の指示の設定を受け付ける手段と、
前記切替動作の有効・無効を制御する手段と、をさらに備え、
前記切替動作が無効の場合に、前記計算機の種類によらず継続して単一の計数器を動作させることを特徴とする付記６に記載の計算機システム。（２、図３）
（付記８）
仮想計算機をその上で実行中の計算機システムにおいて、
前記計算機システムの性能指標を計数する計数器と、
前記計数器の計数結果を保存する保存手段と、
その計算機システム上で動作する仮想計算機の切替を検知する手段と、
前記切替検知をトリガとして、現在動作している仮想計算機に対する計数結果を前記保存手段に保存する保存制御手段と、
前記切替後に動作する仮想計算機に対する前記切替前に計数済みの計数結果を前記保存手段から前記計数器に復元する復元手段と、を備えることを特徴とする計算機システム。（３、図４）
（付記９）
前記保存制御手段と復元手段とにおける動作の有効・無効を設定する手段をさらに備え、
前記動作が無効の場合には、計算機の種類によらず継続して計数器を動作させることを特徴とする付記８に記載の計算機システム。（図５）
（付記１０）
仮想計算機をその上で実行中の計算機システムにおいて、
計算機システムの性能指標を計数する複数の計数器と、
前記計数器の計数結果を保存する保存手段と、
その計算機システム上で現在動作している仮想計算機を識別する手段と、
現在動作している仮想計算機に対応して決定される計数器ごとに計数動作の可否を切り替える切替手段と、を備え
前記切替手段によって計数動作が許可された計数器は前記性能指標を計数するとともに、計数動作が許可されていない計数器は前記動作中に計数された計数結果を保持し、
前記計算機の種類に対応して決定される計数器の数が不足した場合に前記切替手段による切替動作を無効に設定する手段と、
その計算機システム上で動作する仮想計算機の切替を検知する手段と、
前記切替動作が無効に設定されているときに、仮想計算機の切替検知をトリガとして、現在動作している仮想計算機に対するすでに計数済みの計数結果を前記保存手段に保存する保存制御手段と、
前記切替によって動作する仮想計算機に対するすでに計数済みの計数結果を前記保存手段から前記計数器に復元する復元制御手段と、をさらに備えることを特徴とする計算機システム。（４、図６）
【図面の簡単な説明】
【００９２】
【図１】第１実施形態に係る計算機システムのプロセッサコアの機能を示す図である。
【図２】バンクの構成例を示す図である。
【図３】第２実施形態に係る計算機システムのプロセッサコアの機能を示す図である。
【図４】第３実施形態に係る計算機システムのプロセッサコアの機能を示す図である。
【図５】第４実施形態に係る計算機システムのプロセッサコアの機能を示す図である。
【図６】第５実施形態に係る計算機システムのプロセッサコアの機能を示す図である。
【符号の説明】
【００９３】
１  プロセッサコア
２  有効ユニット切替器
３  仮想計算機ＩＤレジスタ
４  プログラムカウンタ
５  ＰＭＵ
６  バンク
７  設定レジスタ
８  カウンタレジスタ
９、９Ａ  切替有効・無効制御部
１２  切替トリガ通知手段
１３  切替有効・無効の信号線
【図１】
2008129931.tif 000003
【図２】
2008129931.tif 000004
【図３】
2008129931.tif 000005
【図４】
2008129931.tif 000006
【図５】
2008129931.tif 000007
【図６】
2008129931.tif 000008