(57)【特許請求の範囲】
【請求項１】
ファームウェアと該ファームウェア管理の構成情報を具備する仮想計算機における構成情報アクセス制御方法であって、
仮想計算機のファームウェアの構成情報へのアクセスは該仮想計算機の主記憶に対するアクセスとし、
仮想計算機のファームウェアによる該仮想計算機の主記憶に割り当てられた構成情報の格納領域への書き込みに対して、仮想計算機の主記憶を物理計算機の主記憶に置換するアドレス変換機構にて割り込みを発生し、割り込みパラメータを物理計算機上で動作する仮想計算機制御プログラムに渡して制御移行を行い、
仮想計算機制御プログラムにて、渡された割り込みパラメータをもとに構成情報の書き込みを行うことを特徴とする仮想計算機の構成情報アクセス制御方法。
【請求項２】
請求項１記載の仮想計算機の構成情報アクセス制御方法において、
主記憶の特定領域に対してプロセッサの特権レベルに応じたアクセス属性を設定したテーブル（以下、アクセス属性設定テーブル）を具備し、
アドレス変換機構では、該アクセス属性設定テーブルを参照して、仮想計算機のファームウェアによる構成情報の格納領域への書き込みに対し、書き込みの許可されるプロセッサの特権レベルで動作する仮想計算機制御プログラムへの制御移行を伴う割り込みを発生することを特徴とする仮想計算機の構成情報アクセス制御方法。
【請求項３】
請求項１もしくは２記載の仮想計算機の構成情報アクセス制御方法において、
構成情報格納領域の属性情報を格納するテーブル（以下、構成情報領域管理テーブル）を具備し、
仮想計算機制御プログラムでは、割り込みパラメータから書き込みアドレスおよびデータ長、データバイトを取得し、前記構成情報領域管理テーブルを参照して、該取得した書き込みアドレスおよびデータ長が適切であれば、当該アドレスに対して当該データバイトの書き込みを行うことを特徴とする仮想計算機の構成情報アクセス制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ファームウェアコンポーネントを実装する仮想計算機システムに関し、特に仮想計算機専用のファームウェアコンポーネントにて管理される構成情報のアクセス制御方法に関する。ここで、ファームウェアコンポーネント（以下、単にファームウェアと称す）とは計算機プラットフォームの差異を抽象化し、ＯＳなどの他プログラムから規定どおりのインタフェースで計算機プラットフォーム資源へアクセスすることを支援するプログラムコンポーネントの事を指す。従ってファームウェアの構造は計算機プラットフォーム毎に異なる場合があり、本発明ではそのような場合を想定している。
【０００２】
【従来の技術】
仮想計算機システムの構成情報には時間的変化のない静的情報、すなわち読み取り属性の情報と、時間的変化のある動的情報、すなわち読み書き属性の情報がある。特に動的情報は仮想計算機の動作に影響することがあるため、ファームウェアと仮想計算機プラットフォーム制御部間で情報の一致性を保証する必要がある。
【０００３】
従来、仮想計算機制御部管理の構成情報を更新する場合、サービスコールというシステム情報を取得したり構成情報を変更する命令（サービスコール命令）をハードウェアアシストによりインターセプトし、仮想計算機プラットホーム制御部に割り込ませることで実現していた。しかしながら、ファームウェアを実装する仮想計算機では、上記サービスコール命令相当の処理はファームウェアへの関数コールになっており、これによって割り込みを起こすことは不可能である。
【０００４】
そのため、構成情報の静的情報へのアクセスでは単に主記憶の読み取りを行い、動的情報のアクセスでは変更したい情報を入力引数として、物理計算機で実行される仮想計算機プラットフォーム制御部に制御を移すための特別な命令を実行するなどの異なるインタフェースを持つことが考えられている。
【０００５】
【発明が解決しようとする課題】
上記方法では、例えば従来は静的であったプロセッサ数を動的に変化させる機能をオペレーティングシステムがサポートした場合、当該情報のインタフェース移行のためにそれ相当の時間をかける必要がある。
【０００６】
本発明の目的は、上記のような問題を軽減するためになされたもので、仮想計算機のファームウェアと仮想計算機プラットフォーム制御部との間の静的および動的な構成情報アクセスの簡易なインタフェースを提供することにある。
【０００７】
【課題を解決するための手段】
本発明では、静的情報および動的情報アクセスのインタフェースを主記憶に対するアクセスに統一する。
仮想計算機の主記憶と物理算機の主記憶との置換を行うために物理計算機はアドレス変換機構を備えており、該アドレス変換機構は指定領域にアクセス属性と特権レベルの設定が出来る。
仮想計算機上で動作するファームウェアは物理計算機から見ると最も低い特権レベルで動作しており、アドレス変換機構では、ファームウェアが読み取り属性を設定した構成情報格領域へ書き込みを行った場合、割り込みを発生し、物理計算機で実行される仮想計算機プラットフォーム制御部に制御を移行せしめる。割り込みパラメータとしては、書き込みを行おうとしたアドレスおよびそのデータ長、データバイトが設定する。
仮想計算機プラットフォーム制御部は最も高い特権レベルで動作しており、割り込みパラメータで得られたアドレスに対し、割り込みを生じることなく割り込みパラメータから得られたデータの書き込みを行う。
【０００８】
【発明の実施の形態】
以下、本発明の一実施の形態について図面を用いて詳しく説明する。なお、以下の実施例では仮想計算機を二つとするが、勿論、本発明はこれに限定されるものではなく、仮想計算機が一つあるいは三つ以上でも同様に適用できるものである。
【０００９】
図１は本発明を適用した仮想計算機システムの一実施例を示す構成図である。図１において、１０及び２０は仮想計算機、３０は実主記憶装置（物理計算機の主記憶）、４０は中央処理装置（物理計算機）、５０はコンソール装置である。
【００１０】
仮想計算機１０は該仮想計算機１０の主記憶１１を具備し、仮想計算機２０は該仮想計算機２０の主記憶２１を具備する。そして、仮想計算機１０の主記憶１１は、該仮想計算機１０のファームウェア１１１及び該ファームウェア１１１が管理する該仮想計算機１０の構成情報１１２を格納している。同様に、仮想計算機２０の主記憶２１は、該仮想計算機２０のファームウェア２１１及び該ファームウェア２１１が管理する該仮想計算機２０の構成情報２１２を格納している。
【００１１】
実主記憶装置３０は、後述の割り込みパラメータを格納する割り込みパラメータ領域３１、同じく後述の構成情報格納領域の属性情報（アクセス属性、データ長等）を格納する構成情報領域管理テーブル３２、仮想計算機１０、２０の動作を制御する仮想計算機制御プログラム（仮想計算機プラットフォーム制御部）３３、仮想計算機１０、２０の主記憶１１、２１上の構成情報１１２、２１２とマッピングされている構成情報（実構成情報）３４、３５などを具備する。
【００１２】
実際には、仮想計算機１０、２０は実主記憶装置３０、中央処理装置４０等の実計算機資源を使用して構成され、各主記憶１１、２１は実主憶装置３０上に構築されるが、図１では分かりやすいように実主記憶装置３０から独立して示したものである。ここで、仮想計算機１０、２０で使用する実計算機資源の詳細構成を記述したのが構成情報１１２（３４）、２１２（３５）である。
【００１３】
中央処理装置４０は、仮想計算機１０、２０の主記憶１１、２１を実主記憶装置（物理計算機の主記憶）３０に置換するアドレス変換機構４２を具備している。後述するように、アドレス変換機構４２は、主記憶の特定領域に対してプロセッサの特権レベルに応じたアクセス属性を設定するテーブル（アクセス属性設定テーブル）を用いて、仮想計算機１０、２０のファームウェア１１１、２１１から構成情報１１２、２１２の格納領域への書き込みに対しては割り込みを発生し、仮想計算機制御プログラム３３に制御が移行するようにする。
【００１４】
図２は仮想計算機１０、２０から見た主記憶１１、２１と物理計算機から見た主記憶３０の置換のイメージを示したものである。仮想計算機１０、２０の主記憶１１および主記憶１１１に、それぞれの仮想計算機のファームウェア１１１および２１１、これらファームウェア１１１、２１１が管理する構成情報１１２および２１２を格納する領域が割り当てられている。これらの構成情報１１１、１１２はアドレス変換機構４２によって物理計算機の主記憶３０に割り当てられた構成情報３４および構成情報３５を格納する領域に置換される。これにより、仮想計算機１０、２０のファームウェア１１１、２１１が構成情報１１２、２１２をアクセスすると、構成情報３４、３５がアクセスされる。なお、それぞれの仮想計算機１０、２０の主記憶１１、２１上のファームウェア１１１、２１１も物理計算機の主記憶３０上に置換されるが、図２では省略している。
【００１５】
図３は、仮想計算機１０、２０の主記憶１１、２１に割り当てられた構成情報１１２、２１２の格納領域を物理計算機の主記憶３０に割り当てられた構成情報３４、３５の格納領域に置換する際に、アドレス変換機構４２で用いられるアクセス属性設定テーブルの一例を示したものである。図１では省略したが、このアクセス属性設定テーブルは、実記憶装置（物理計算機の主記憶）３０に用意される。アドレス変換機構４２２では、仮想計算機１０、２０の主記憶１１、２１に割り当てられた構成情報１１２、２１２の格納領域を物理計算機の主記憶３０に割り当てられた構成情報３４、３５の格納領域に置換する場合、このアクセス属性設定テーブルを参照する。仮想計算機１０、２０のファームウェア１１１、２１１はプロセッサの特権レベル２で動作しており、図３より構成情報の読み出しが可能となっている。従って、仮想計算機１０、２０のファームウェア１１１、２１１が、当該仮想計算機１０、２０の主記憶１１、２１の構成情報１１２、２１２に読み出しを行うと、アドレス変換機構４２によって構成情報１１２、２１２の領域が物理計算機の主記憶３０に割り当てられた構成情報３４、３５の領域に置換され、構成情報３４、３５がアクセスされる。これに対し、仮想計算機１０、２０のファームウェア１１１、２１１が、当該仮想計算機１０、２０の主記憶１１、２１の構成情報１１２、２１２に書き込みを行なおうとすると、アドレス変換機構４２によってアクセス例外の割り込みが発生し、仮想計算機制御プログラム３３に制御が移行する。この割り込みが発生した時、物理計算機の主記憶３０上の割り込みパラメータ領域３１に割り込みパラメータが設定されて仮想計算機制御プログラム３３に渡される。
【００１６】
図４は、上記割り込みの発生で仮想計算機制御プログラム３３に渡される割り込みパラメータの一例である。図４において、当該割り込みパラメータは、書き込みを行おうとしたアドレス３１１および書き込みデータ長３１２、可変長データバイト（書き込みデータ）３１３で構成されている。アドレスおよびデータ長のバイト数はアーキテクチャによって変わるため、ここでは特に規定していない。仮想計算機制御プログラム３３は最も高い特権レベル（レベル０）で動作しており、構成情報格納領域の属性情報を格納する構成情報領域管理テーブル３２を参照し、割り込みパラメータ領域３１に設定された割り込みパラメータをもとに構成情報３４、３５に対して書き込みを行う。
【００１７】
図５は、構成情報格納領域の属性情報を格納するテーブル構造の一例を示す。図５の例では、構成情報格納領域のアドレスａ，ｂ，ｃに対して、それぞれのアクセス属性を読み取り、読み書き、読み取りに、データ長を１バイト、２バイト、４バイトに設定している。アクセス属性が読み取りのデータにはデータ長は不要であるが、将来アクセス属性が読み書きに変更される可能性があるため、あらかじめデータ長を格納している。
【００１８】
次に、仮想計算機１０、２０のファームウェア１１１、２１１が管理する構成情報１１２、２１２の更新動作を詳述する。なお、以下では、仮想計算機１０のファームウェア１１１が構成情報１１２を更新するものとする。
【００１９】
仮想計算機１０のファームウェア１１１は、管理下の構成情報１１２を更新する場合、書き込み命令を使って該仮想計算機１０の主記憶１１に割り当てられた構成情報１１２の格納領域をアクセスする。これを受けて、中央処理装置４０のアドレス変換機構４２では、該仮想計算機１０の主記憶１１に割り当てられた構成領域１１２の格納領域を物理計算機の主記憶３０に割り当てられた構成情報３４の格納領域に置換する（図２）。同時に、アドレス変換機構４２では、特定領域（ここでは構成情報格納領域）に対してプロセッサの特権レベルに応じてアクセス属性を設定しているアクセス属性設定テーブル（図３）を参照する。仮想計算機のファームウェアはプロセッサの特権レベル２で動作しており、構成情報の読み取りのみが可能である。そのため、アドレス変換機構４２は、仮想計算機１０のファームウェア１１１による構成情報格納領域への書き込みに対しては割り込みを発生し（アクセス例外）、割り込みパラメータ（図４）を主記憶３０の割り込みパラメータ領域３１に設定して仮想計算機制御プログラム３３に制御を渡す。仮想計算機制御プログラム（仮想計算機プラットフォーム制御部）３３は最も高い特権レベル（レベル０）で動作している。
【００２０】
図６は、上記割り込みにより制御が移行された仮想計算機制御プログラム３３における割り込み処理フローの一例である。仮想計算機制御プログラム３３では、まず、割り込みパラメータ（図４）から構成情報の書き込みアドレスを取得する（ステップ６０１）。次に、構成情報格納領域の属性情報を格納する構成情報領域管理テーブル（図５）を用いて、当該アドレスが読み書き属性のアドレスであるかを判断する（ステップ６０２）。該当しない場合、当該処理は割り込みを起こした処理に制御を戻す。当該アドレスが読み書き属性のアドレスである場合は割り込みパラメータから構成情報のデータ長を取得する（ステップ６０３）。次に、構成情報領域管理テーブルを用いて、構成情報のデータ長と一致するかを判断する（ステップ６０４）。一致しない場合、当該処理は割り込みを起こした処理に制御を戻す。一致する場合は、割り込みパラメータのデータバイト（更新情報）を当該アドレスにデータ長だけコピーする（ステップ６０５）。仮想計算機制御プログラム３３はプロセッサの特権レベル０で動作しており、ステップ６０５のコピー（書き込み）で割り込みが発生することはない。次に、構成情報の変更を契機とした処理を行う（ステップ６０６）。当該情報に即効性がない場合は、ステップ６０６の処理は省略可能である。その後、割り込みを起こした処理に制御を戻す。割り込まれた処理に戻るためにプロセッサの資源を物理計算機の主記憶に退避および回復するなどの処理が必要となる場合があるが、本発明には直接関係しないので省略する。
【００２１】
本実施例によって、仮想計算機１０、２０のファームウェア１１１および２１１は、仮想計算機の主記憶１１、２１上の構成情報１１２、２１２の格納領域に対するアクセスだけで仮想計算機の構成情報を読み書きすることができる。また、図５で示したような構成情報格納領域の属性情報を格納するテーブル内のアクセス属性データを書き換えることで、読み取り属性の構成情報を読み書き属性の構成情報に変更することが可能となる。
【００２２】
【発明の効果】
本発明による構成情報アクセス方法を用いれば、仮想計算機のファームウェアは主記憶に対するアクセスだけで仮想計算機の構成情報にアクセスすることが出来る。また、必要に応じて仮想計算機プラットフォーム制御部（仮想計算機制御プログラム）が管理するテーブル内の属性データを書き換えることで、読み取り属性の構成情報、すなわち静的情報を読み書き属性の構成情報、すなわち動的情報に変更することが可能となる。
【図面の簡単な説明】
【図１】本発明が適用される仮想計算機システムの一実施例を示す構成図である。
【図２】仮想計算機から見た主記憶の構成情報と物理計算機から見た主記憶の構成情報置換のイメージを示す図である。
【図３】アドレス変換機構に用いられるアクセス属性設定テーブルの一例を示す図である。
【図４】割り込みパラメータの一例を示す図である。
【図５】構成情報格納領域の属性情報を格納するテーブル構造の一例を示す図である。
【図６】仮想計算機の主記憶上の構成情報格納領域への書き込みに起因する仮想計算機制御プログラムの割り込み処理のフロー図である。
【符号の説明】
１０，２０      仮想計算機
１１，２１      仮想計算機の主記憶
１１１，２１１  仮想計算機のファームウェア
１１２，２１２  仮想計算機の構成情報
３０            物理計算機の主記憶
３１            割り込みパラメータ領域
３２            構成情報領域管理テーブル
３３            仮想計算機制御プログラム
３４，３５      物理計算機の主記憶に置換された仮想計算機の構成情報
４０            中央処理装置
４２            アドレス変換機構
５０            コンソール装置
【図１】
0003859063.tif 000002
【図２】
0003859063.tif 000003
【図３】
0003859063.tif 000004
【図４】
0003859063.tif 000005
【図５】
0003859063.tif 000006
【図６】
0003859063.tif 000007