(57)【要約】      （修正有）【課題】複数の仮想マシン間の共通のメモリを介したデータの受け渡しを速やかに行うのに適したメモリ保護回路及びメモリ保護方法を提供する。【解決手段】メモリ保護回路１は、ハイパーバイザＨＶ１によって管理される複数の仮想マシンＶＭ１〜ＶＭｎのうち何れかの仮想マシンのＩＤが格納された第１ＩＤ格納レジスタ１１２と、複数の仮想マシンＶＭ１〜ＶＭｎのうち、第１ＩＤ格納レジスタ１１２に格納されたＩＤの仮想マシンに対して、メモリＭ１へのアクセスを許可するアクセス判定回路１２と、仮想マシンＶＭ１〜ＶＭｎのうち何れかの仮想マシンのＩＤが格納された第２ＩＤ格納レジスタ１１３と、仮想マシンＶＭ１〜ＶＭｎのうち、第２ＩＤ格納レジスタ１１３に格納されたＩＤの仮想マシンに対して、第１ＩＤ格納レジスタ１１２に格納されたＩＤの書き換えを許可するＩＤ更新制御回路１５と、を備える。【選択図】図１
2019204382.tif 000002
【特許請求の範囲】
【請求項１】
ハイパーバイザによって管理される複数の仮想マシンのうち何れかの仮想マシンのＩＤ（Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ）が格納された第１ＩＤ格納レジスタと、
前記複数の仮想マシンのうち、前記第１ＩＤ格納レジスタに格納されたＩＤの仮想マシンに対して、メモリへのアクセスを許可するアクセス判定回路と、
前記複数の仮想マシンのうち何れかの仮想マシンのＩＤが格納された第２ＩＤ格納レジスタと、
前記複数の仮想マシンのうち、前記第２ＩＤ格納レジスタに格納されたＩＤの仮想マシンに対して、前記第１ＩＤ格納レジスタに格納されたＩＤの書き換えを許可するＩＤ更新制御回路と、
を備えた、メモリ保護回路。
【請求項２】
前記第２ＩＤ格納レジスタには、前記複数の仮想マシンのうち２つの仮想マシンである第１及び第２仮想マシンのそれぞれのＩＤが格納され、
前記ＩＤ更新制御回路は、前記第１及び前記第２仮想マシンの何れかから前記第１ＩＤ格納レジスタに格納されたＩＤの書き換え要求があった場合、前記第１ＩＤ格納レジスタに格納されたＩＤを前記第１及び前記第２仮想マシンの一方のＩＤから他方のＩＤに書き換えるように構成されている、
請求項１に記載のメモリ保護回路。
【請求項３】
前記第２ＩＤ格納レジスタには、前記複数の仮想マシンのうち３つ以上の仮想マシンのそれぞれのＩＤが格納され、
前記ＩＤ更新制御回路は、前記３つ以上の仮想マシンの何れかの仮想マシンから前記第１ＩＤ格納レジスタに格納されたＩＤの書き換え要求があった場合、前記第１ＩＤ格納レジスタに格納されたＩＤを前記３つ以上の仮想マシンの何れかの仮想マシンのＩＤに書き換えるように構成されている、
請求項１に記載のメモリ保護回路。
【請求項４】
前記第１ＩＤ格納レジスタに格納されたＩＤの前記仮想マシンからアクセスがあった場合に、ロック信号をアクティブにするＩＤロックレジスタをさらに備え、
前記ＩＤ更新制御回路は、前記ロック信号がアクティブの場合には、前記第２ＩＤ格納レジスタに格納されたＩＤの前記仮想マシンから前記第１ＩＤ格納レジスタに格納されたＩＤの書き換え要求があった場合でも、前記第１ＩＤ格納レジスタに格納されたＩＤの書き換えを行わないように構成されている、
請求項１に記載のメモリ保護回路。
【請求項５】
前記ＩＤロックレジスタは、前記ロック信号がアクティブの期間中において、前記第１ＩＤ格納レジスタに格納されたＩＤの前記仮想マシンから前記第１ＩＤ格納レジスタに格納されたＩＤの書き換え要求があった場合、前記ロック信号をインアクティブにするように構成されている、
請求項４に記載のメモリ保護回路。
【請求項６】
前記ロック信号がアクティブになったことに同期してカウントアップ動作を開始するカウンタと、
前記カウンタによるカウント値と、所定閾値と、を比較する比較回路と、をさらに備え、
前記比較回路から前記カウント値が前記所定閾値に達したことを示す比較結果が出力された場合、前記ＩＤロックレジスタは、前記ロック信号を強制的にアクティブからインアクティブに切り替えるように構成されている、
請求項４に記載のメモリ保護回路。
【請求項７】
前記第１ＩＤ格納レジスタに格納されたＩＤは、前記第２ＩＤ格納レジスタに格納されたＩＤの前記仮想マシンからの要求に関わらず、ハイパーバイザからの要求に応じて書き換えられる、
請求項１に記載のメモリ保護回路。
【請求項８】
前記ハイパーバイザ及び前記複数の仮想マシンの処理を実現する演算処理回路と、
請求項１に記載のメモリ保護回路と、
前記メモリと、
を備えた、メモリ保護システム。
【請求項９】
ハイパーバイザによって管理される複数の仮想マシンのうち何れかの仮想マシンのＩＤ（Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ）を第１ＩＤ格納レジスタに格納し、
前記複数の仮想マシンのうち何れかの仮想マシンのＩＤを第２ＩＤ格納レジスタに格納し、
前記複数の仮想マシンのうち、前記第２ＩＤ格納レジスタに格納されたＩＤの仮想マシンに対して、前記第１ＩＤ格納レジスタに格納されたＩＤの書き換えを許可し、
前記複数の仮想マシンのうち、前記第１ＩＤ格納レジスタに格納されたＩＤの仮想マシンに対して、メモリへのアクセスを許可する、
メモリ保護方法。
【請求項１０】
前記第２ＩＤ格納レジスタには、前記複数の仮想マシンのうち２つの仮想マシンである第１及び第２仮想マシンのそれぞれのＩＤが格納され、
前記第１及び前記第２仮想マシンの何れかから前記第１ＩＤ格納レジスタに格納されたＩＤの書き換え要求があった場合、前記第１ＩＤ格納レジスタに格納されたＩＤを前記第１及び前記第２仮想マシンの一方のＩＤから他方のＩＤに書き換える、
請求項９に記載のメモリ保護方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はメモリ保護回路及びメモリ保護方法に関し、例えば複数の仮想マシン間の共通のメモリを介したデータの受け渡しを速やかに行うのに適したメモリ保護回路及びメモリ保護方法に関する。
【背景技術】
【０００２】
ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）等の演算処理回路と、メモリと、の間には、ＣＰＵからメモリへの不正なアクセスを防ぐため、ＣＰＵからメモリへのアクセスを制御するメモリ保護回路が設けられている。
【０００３】
ところで、単一の物理リソースを複数のリソースに見せかける仮想化技術を用いることで、１つのＣＰＵ上において、ハイパーバイザによる管理のもと、複数の仮想マシンを動作させることができる。ただし、複数の仮想マシンが単一のメモリを共有するためには、複数の仮想マシンからのメモリへのアクセスを制御する機構が必要である。
【０００４】
関連する技術が特許文献１に開示されている。特許文献１に開示されたメモリ保護回路は、信頼度の高いハイパーバイザにのみ、メモリへのアクセス権限を有する仮想マシンの情報が格納されたレジスタへのアクセス権限を与え、信頼度の低い仮想マシンには、当該レジスタへのアクセス権限を与えない。それにより、特許文献１に開示されたメモリ保護回路は、複数の仮想マシンによる共通のメモリへのアクセスを制御している。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１３−２３２１５１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に開示されたメモリ保護回路では、複数の仮想マシン間で共通のメモリを介してデータの受け渡しを行う場合、何れかの仮想マシンによるメモリへのアクセスが完了するたびに、当該仮想マシンからハイパーバイザに処理を移行させたうえで、ハイパーバイザからの要求によってメモリへのアクセス権限を次の仮想マシンに切り替える必要がある。
【０００７】
例えば、２つの仮想マシン間で共通のメモリを介してデータの受け渡しを行う場合、まず、ハイパーバイザによって一方の仮想マシンにメモリへのアクセス権限が付与される。その後、一方の仮想マシンによるメモリへのアクセスが完了すると、当該一方の仮想マシンからハイパーバイザに対してアクセスの完了が通知される。それにより、一方の仮想マシンからハイパーバイザに処理が移行する。その後、ハイパーバイザによって一方の仮想マシンから他方の仮想マシンにメモリへのアクセス権限が切り替えられた後、他方の仮想マシンによるメモリへのアクセスが行われる。
【０００８】
そのため、特許文献１に開示されたメモリ保護回路では、複数の仮想マシン間の共通のメモリを介したデータの受け渡しを速やかに行うことができないという問題があった。その他の課題と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【０００９】
一実施の形態によれば、メモリ保護回路は、ハイパーバイザによって管理される複数の仮想マシンのうち何れかの仮想マシンのＩＤ（Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ）が格納された第１ＩＤ格納レジスタと、前記複数の仮想マシンのうち、前記第１ＩＤ格納レジスタに格納されたＩＤの仮想マシンに対して、メモリへのアクセスを許可するアクセス判定回路と、前記複数の仮想マシンのうち何れかの仮想マシンのＩＤが格納された第２ＩＤ格納レジスタと、前記複数の仮想マシンのうち、前記第２ＩＤ格納レジスタに格納されたＩＤの仮想マシンに対して、前記第１ＩＤ格納レジスタに格納されたＩＤの書き換えを許可するＩＤ更新制御回路と、を備える。
【００１０】
他の実施の形態によれば、メモリ保護方法は、ハイパーバイザによって管理される複数の仮想マシンのうち何れかの仮想マシンのＩＤ（Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ）を第１ＩＤ格納レジスタに格納し、前記複数の仮想マシンのうち何れかの仮想マシンのＩＤを第２ＩＤ格納レジスタに格納し、前記複数の仮想マシンのうち、前記第２ＩＤ格納レジスタに格納されたＩＤの仮想マシンに対して、前記第１ＩＤ格納レジスタに格納されたＩＤの書き換えを許可し、前記複数の仮想マシンのうち、前記第１ＩＤ格納レジスタに格納されたＩＤの仮想マシンに対して、メモリへのアクセスを許可する。
【発明の効果】
【００１１】
前記一実施の形態によれば、例えば複数の仮想マシン間の共通のメモリを介したデータの受け渡しを速やかに行うことが可能なメモリ保護回路及びメモリ保護方法を提供することができる。
【図面の簡単な説明】
【００１２】
【図１】実施の形態１に係るメモリ保護システムの構成例を示すブロック図である。
【図２】第１ＩＤ格納レジスタに格納されたＩＤがロックされていない場合における、ＩＤ書き換え要求を行った仮想マシンのＩＤと、第１ＩＤ格納レジスタに格納されたＩＤと、の関係を示す図である。
【図３】第１ＩＤ格納レジスタに格納されたＩＤがロックされている場合における、ＩＤ書き換え要求を行った仮想マシンのＩＤと、第１ＩＤ格納レジスタに格納されたＩＤと、の関係を示す図である。
【図４】図１に示すメモリ保護システムの変形例の動作を説明するための図である。
【図５】実施の形態２に係るメモリ保護システムの構成例を示すブロック図である。
【図６】図５に示すメモリ保護システムに設けられたメモリ保護回路の動作を示すフローチャートである。
【図７】実施の形態１に至る前の構想に係るメモリ保護システムの構成例を示すブロック図である。
【発明を実施するための形態】
【００１３】
説明の明確化のため、以下の記載及び図面は、適宜、省略、及び簡略化がなされている。また、様々な処理を行う機能ブロックとして図面に記載される各要素は、ハードウェア的には、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、メモリ、その他の回路で構成することができ、ソフトウェア的には、メモリにロードされたプログラムなどによって実現される。したがって、これらの機能ブロックがハードウェアのみ、ソフトウェアのみ、またはそれらの組合せによっていろいろな形で実現できることは当業者には理解されるところであり、いずれかに限定されるものではない。なお、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
【００１４】
また、上述したプログラムは、様々なタイプの非一時的なコンピュータ可読媒体を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Ｐｒｏｇｒａｍｍａｂｌｅ  ＲＯＭ）、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  ＰＲＯＭ）、フラッシュＲＯＭ、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ））を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【００１５】
＜発明者による事前検討＞
実施の形態１にかかるメモリ保護システムの説明をする前に、発明者らが事前検討した内容について説明する。
【００１６】
図７は、実施の形態１に至る前の構想にかかるメモリ保護システムＳＹＳ５０の構成例を示すブロック図である。
【００１７】
図７に示すように、メモリ保護システムＳＹＳ５０は、例えばＣＰＵ等の演算処理回路によって実現されるｎ（ｎは２以上の整数）個の仮想マシンＶＭ１〜ＶＭｎ及びハイパーバイザＨＶ１と、メモリ保護回路５０と、メモリＭ１と、を備える。以下、仮想マシンＶＭ１〜ＶＭｎのうちの任意の仮想マシンを、仮想マシンＶＭと称する場合がある。
【００１８】
ハイパーバイザＨＶ１は、仮想マシンＶＭ１〜ＶＭｎよりも信頼性が高く、これら仮想マシンＶＭ１〜ＶＭｎを管理する。また、ハイパーバイザＨＶ１は、メモリ保護回路５０に設けられた各レジスタにアクセスする権限を有する。仮想マシンＶＭ１〜ＶＭｎは、それぞれ並行して演算処理を行うことが可能であるが、メモリ保護回路５０に設けられた各レジスタにアクセスする権限を有しない。
【００１９】
メモリ保護回路５０は、複数の仮想マシンＶＭ１〜ＶＭｎによるメモリＭ１へのアクセスを制御する回路である。具体的には、メモリ保護回路５０は、レジスタ群５１と、アクセス判定回路５２と、を備える。
【００２０】
レジスタ群５１は、保護領域設定レジスタ５１１と、ＩＤ格納レジスタ５１２と、を有する。保護領域設定レジスタ５１１には、メモリＭ１の記憶領域のうち仮想マシンＶＭ１〜ＶＭｎによるアクセスからの保護対象となっている記憶領域が設定されている。ＩＤ格納レジスタ５１２には、仮想マシンＶＭ１〜ＶＭｎのうち、メモリＭ１へのアクセス権限が与えられた仮想マシンＶＭのＩＤ（Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ）、が格納されている。
【００２１】
アクセス判定回路５２は、仮想マシンＶＭ１〜ＶＭｎの何れかの仮想マシンＶＭからメモリＭ１へのアクセス要求があった場合に、アクセス要求を行った仮想マシンＶＭに対してメモリＭ１へのアクセスを許可するか否かを判定する。
【００２２】
具体的には、アクセス判定回路５２は、アドレス比較回路５２１と、ＩＤ比較回路５２２と、を有する。アドレス比較回路５２１は、アクセス要求を行った仮想マシンＶＭによって指定されたメモリＭ１のアドレスと、保護領域設定レジスタ５１１に設定された記憶領域のアドレスと、を比較する。ＩＤ比較回路５２２は、アクセス要求を行った仮想マシンＶＭのＩＤと、ＩＤ格納レジスタ５１２に格納されたＩＤと、を比較する。アクセス判定回路５２は、アドレス比較回路５２１による比較結果が一致を示し、かつ、ＩＤ比較回路５２２による比較結果が一致を示す場合に、アクセス要求を行った仮想マシンＶＭに対してメモリＭ１へのアクセスを許可する。
【００２３】
ここで、メモリ保護回路５０では、例えば２つの仮想マシンＶＭ１，ＶＭ２間で共通のメモリＭ１を介してデータの受け渡しを行う場合、まず、ハイパーバイザＨＶ１によって仮想マシンＶＭ１にメモリＭ１へのアクセス権限が付与される。具体的には、ハイパーバイザＨＶ１によってＩＤ格納レジスタ５１２に仮想マシンＶＭ１のＩＤが格納される。それにより、例えば、仮想マシンＶＭ１によって、メモリＭ１にデータが書き込まれる。
【００２４】
その後、仮想マシンＶＭ１によるメモリＭ１へのアクセスが完了すると、仮想マシンＶＭ１からハイパーバイザＨＶ１に対してアクセスの完了が通知される。それにより、仮想マシンＶＭ１からハイパーバイザＨＶ１に処理が移行する。その後、ハイパーバイザＨＶ１によって仮想マシンＶＭ１から仮想マシンＶＭ２にメモリＭ１へのアクセス権限が切り替えられる。具体的には、ハイパーバイザＨＶ１によって、ＩＤ格納レジスタ５１２に格納されたＩＤが、仮想マシンＶＭ１のＩＤから仮想マシンＶＭ２のＩＤに書き換えられる。それにより、例えば、仮想マシンＶＭ２によって、メモリＭ１に書き込まれたデータが読み出される。
【００２５】
このように、メモリ保護回路５０では、例えば２つの仮想マシンＶＭ１，ＶＭ２間で共通のメモリＭ１を介してデータの受け渡しを行う場合、何れかの仮想マシンによるメモリＭ１へのアクセスが完了するたびに、その仮想マシンからハイパーバイザに処理を移行させたうえで、ハイパーバイザからの要求によってメモリＭ１へのアクセス権限を次の仮想マシンに切り替える必要がある。そのため、メモリ保護回路５０では、複数の仮想マシン間の共通のメモリを介したデータの受け渡しを速やかに行うことができない、という問題があった。
【００２６】
また、この一連の処理を行うためのハイパーバイザ向けソフトウェアの開発が必要となる。さらに、仮想マシンからハイパーバイザへの遷移、及び、ハイパーバイザから仮想マシンへの遷移の際に、コンテキストスイッチによるメモリアクセス処理が発生するため、ＣＰＵ等の演算処理回路による処理サイクルが長くなり、その結果、一方の仮想マシンによるデータ通信処理が完了してから、次の仮想マシンによってデータ通信処理が行われるまでの時間が長くなってしまう。
【００２７】
そこで、発明者は、複数のマシン間の共通のメモリを介したデータの受け渡しを速やかに行うことが可能な、実施の形態１にかかるメモリ保護回路を見いだした。
【００２８】
＜実施の形態１＞
図１は、実施の形態１に係るメモリ保護回路が設けられたメモリ保護システムＳＹＳ１の構成例を示すブロック図である。
【００２９】
図１に示すように、メモリ保護システムＳＹＳ１は、例えばＣＰＵ等の演算処理回路によって実現されるｎ（ｎは２以上の整数）個の仮想マシンＶＭ１〜ＶＭｎ及びハイパーバイザＨＶ１と、メモリ保護回路１と、メモリＭ１と、を備える。以下、仮想マシンＶＭ１〜ＶＭｎのうちの任意の仮想マシンを、仮想マシンＶＭと称する場合がある。
【００３０】
ハイパーバイザＨＶ１は、仮想マシンＶＭ１〜ＶＭｎよりも信頼性が高く、これら仮想マシンＶＭ１〜ＶＭｎを管理する。また、ハイパーバイザＨＶ１は、メモリ保護回路１に設けられた各レジスタ（保護領域設定レジスタ１１１、第１ＩＤ格納レジスタ１１２、第２ＩＤ格納レジスタ１１３、及び、モード設定レジスタ１１６）にアクセスする権限を有する。仮想マシンＶＨ１〜ＶＭｎは、それぞれ並行して演算処理を行うことが可能であるが、メモリ保護回路１にアクセスする権限は限定されている。
【００３１】
メモリ保護回路１は、複数の仮想マシンＶＭ１〜ＶＭｎによるメモリＭ１へのアクセスを制御する回路である。具体的には、メモリ保護回路１は、レジスタ群１１と、アクセス判定回路１２と、アクセス判定回路１４と、ＩＤ更新制御回路１５と、を備える。
【００３２】
レジスタ群１１は、保護領域設定レジスタ１１１と、第１ＩＤ格納レジスタ１１２と、第２ＩＤ格納レジスタ１１３と、トリガ発生レジスタ１１４と、ＩＤロックレジスタ１１５と、モード設定レジスタ１１６と、を有する。
【００３３】
保護領域設定レジスタ１１１には、メモリＭ１の記憶領域のうち仮想マシンＶＭ１〜ＶＭｎによるアクセスからの保護対象となっている記憶領域が設定されている。第１ＩＤ格納レジスタ１１２には、仮想マシンＶＭ１〜ＶＭｎのうち、メモリＭ１へのアクセス権限が与えられた仮想マシンＶＭのＩＤ（Ｉｄｅｎｔｉｆｉｃａｔｉｏｎ）、が格納されている。なお、第２ＩＤ格納レジスタ１１３、トリガ発生レジスタ１１４、ＩＤロックレジスタ１１５、及び、モード設定レジスタ１１６については後述する。
【００３４】
アクセス判定回路１２は、仮想マシンＶＭ１〜ＶＭｎの何れかの仮想マシンＶＭからメモリＭ１に対してアクセス要求があった場合に、アクセス要求を行った仮想マシンＶＭに対してメモリＭ１へのアクセスを許可するか否かを判定する。
【００３５】
具体的には、アクセス判定回路１２は、アドレス比較回路１２１と、ＩＤ比較回路１２２と、を有する。アドレス比較回路１２１は、アクセス要求を行った仮想マシンＶＭによって指定されたメモリＭ１のアドレスと、保護領域設定レジスタ１１１に設定された記憶領域のアドレスと、を比較する。ＩＤ比較回路１２２は、アクセス要求を行った仮想マシンＶＭのＩＤと、ＩＤ格納レジスタ１１２に格納されたＩＤと、を比較する。アクセス判定回路１２は、アドレス比較回路１２１による比較結果が一致を示し、かつ、ＩＤ比較回路１２２による比較結果が一致を示す場合に、アクセス要求を行った仮想マシンＶＭに対してメモリＭ１へのアクセスを許可する。
【００３６】
レジスタ群１１において、第２ＩＤ格納レジスタ１１３には、第１ＩＤ格納レジスタ１１２へのアクセス権限が与えられた２つの仮想マシンＶＭのＩＤ、が格納されている。換言すると、第２ＩＤ格納レジスタ１１３には、第１ＩＤ格納レジスタ１１２に格納されたＩＤの書き換え権限が与えられた２つの仮想マシンＶＭのＩＤ、が格納されている。
【００３７】
アクセス判定回路１４は、仮想マシンＶＭ１〜ＶＭｎのうち何れかの仮想マシンＶＭからメモリ保護回路１に対して、第１ＩＤ格納レジスタ１１２に格納されたＩＤの書き換え要求があった場合（換言すると、メモリＭ１へのアクセス権限を有する仮想マシンＶＭの変更要求があった場合）、ＩＤ書き換え要求を行った仮想マシンＶＭに対して、第１ＩＤ格納レジスタ１１２に格納されたＩＤの書き換えを許可するか否かを判定する。
【００３８】
例えば、アクセス判定回路１４は、ＩＤ書き換え要求を行った仮想マシンＶＭのＩＤと、第２ＩＤ格納レジスタ１１３に格納された２つのＩＤの何れかと、が一致した場合に、ＩＤ書き換え要求を行った仮想マシンＶＭに対して、第１ＩＤ格納レジスタ１１２に格納されたＩＤの書き換えを許可する。このとき、トリガ発生レジスタ１１４は、パルス形状のトリガ信号ＴＲＧを出力する。トリガ信号ＴＲＧが出力されると、ＩＤ更新制御回路１５は、第１ＩＤ格納レジスタ１１２に格納されたＩＤを、第２ＩＤ格納レジスタ１１３に格納された２つのＩＤのうちの一方から他方に書き換える。
【００３９】
例えば、第１ＩＤ格納レジスタ１１２には、３２個の仮想マシンＶＭ１〜ＶＭ３２に対応する３２ビット幅のＩＤ格納領域が設けられている。なお、３２ビット幅のＩＤ格納領域のうち、例えば、下位から第１ビット目の値（即ち、最下位ビットの値）が仮想マシンＶＭ１によるメモリＭ１へのアクセス権限の有無を表し、下位から第３２ビット目の値（即ち、最上位ビットの値）が仮想マシンＶＭ３２によるメモリＭ１へのアクセス権限の有無を表している。
【００４０】
同様に、第２ＩＤ格納レジスタ１１３には、３２個の仮想マシンＶＭ１〜ＶＭ３２に対応する３２ビット幅のＩＤ格納領域が設けられている。なお、３２ビット幅のＩＤ格納領域のうち、例えば、下位から第１ビット目の値（即ち、最下位ビットの値）が仮想マシンＶＭ１によるＩＤ書き換え権限の有無を表し、下位から第３２ビット目の値（即ち、最上位ビットの値）が仮想マシンＶＭ３２によるＩＤ書き換え権限の有無を表している。
【００４１】
例えば、仮想マシンＶＭ１に対してメモリＭ１へのアクセス権限が与えられ、かつ、仮想マシンＶＭ１，ＶＭ２に対して第１ＩＤ格納レジスタ１１２に格納されたＩＤの書き換え権限が与えられている場合、第１ＩＤ格納レジスタ１１２の下位４ビットの値は“０００１”を示し、かつ、第２ＩＤ格納レジスタ１１３の下位４ビットの値は“００１１”を示す。以下、本例では、上位２８ビットの値は何れも０であるため、省略する。
【００４２】
ここで、ＩＤ書き換え要求に応じてトリガ信号ＴＲＧが出力された場合、ＩＤ更新制御回路１５は、第１ＩＤ格納レジスタ１１２に格納された３２ビット幅の値の各ビットと、第２ＩＤ格納レジスタ１１３に格納された３２ビット幅の値の各ビットと、の排他的論理和を算出して、第１ＩＤ格納レジスタ１１２に上書きする。具体的には、ＩＤ更新制御回路１５は、第１ＩＤ格納レジスタ１１２の下位４ビットの値“０００１”の各ビットと、第２ＩＤ格納レジスタ１１３の下位４ビットの値“００１１”の各ビットと、の排他的論理和である値“００１０”を第１ＩＤ格納レジスタ１１２に上書きする。それにより、メモリＭ１へのアクセス権限を有する仮想マシンが仮想マシンＶＭ１から仮想マシンＶＭ２に移行する。
【００４３】
さらに、アクセス判定回路１４は、仮想マシンＶＭ１〜ＶＭｎのうち何れかの仮想マシンＶＭからメモリ保護回路１に対して、第１ＩＤ格納レジスタ１１２に格納されたＩＤのロックの要求があった場合、ＩＤのロックの要求を行った仮想マシンＶＭに対して、第１格納レジスタ１１２に格納されたＩＤのロックを許可するか否かを判定する。
【００４４】
例えば、アクセス判定回路１４は、ＩＤのロックの要求を行った仮想マシンＶＭのＩＤと、第１ＩＤ格納レジスタ１１２に格納されたＩＤと、が一致した場合に、ＩＤのロックの要求を行った仮想マシンＶＭに対して、第１ＩＤ格納レジスタ１１２に格納されたＩＤのロックを許可する。このとき、ＩＤロックレジスタ１１５は、ロック信号ＬＫをアクティブにする。ロック信号ＬＫがアクティブになると、ＩＤ更新制御回路１５は、第１ＩＤ格納レジスタ１１２に格納されたＩＤをロックする。それにより、第１ＩＤ格納レジスタ１１２に格納されたＩＤは、ロックが解除されるまで、書き換えられなくなる。
【００４５】
また、ロックされたＩＤの仮想マシンＶＭから、第１ＩＤ格納レジスタ１１２に格納されたＩＤの書き換え要求があった場合には、当該要求は受け付けられる。このとき、ＩＤロックレジスタ１１５は、ロック信号ＬＫをアクティブからインアクティブに切り替える。それにより、ロックは解除される。同時に、ＩＤ更新制御回路１５は、第１ＩＤ格納レジスタ１１２に格納されたＩＤを、第２ＩＤ格納レジスタ１１３に格納された２つのＩＤのうちの一方から他方に書き換える。
【００４６】
それにより、例えば、メモリＭ１へのアクセス権限を有する仮想マシンＶＭ１によるメモリＭ１へのデータの書き込み後、メモリＭ１へのアクセス権限が仮想マシンＶＭ１から仮想マシンＶＭ２に移行し、その後、仮想マシンＶＭ２によるメモリＭ１からのデータの読み出しが完了する前に、メモリＭ１へのアクセス権限が仮想マシンＶＭ２から仮想マシンＶＭ１に移行してしまうのを防ぐことができる。
【００４７】
図２は、第１ＩＤ格納レジスタ１１２に格納されたＩＤがロックされていない場合における、ＩＤ書き換え要求を行った仮想マシンＶＭのＩＤと、第１ＩＤ格納レジスタ１１２に格納されたＩＤと、の関係を示す図である。なお、図２の例では、仮想マシンＶＭ１，ＶＭ２に、第１ＩＤ格納レジスタ１１２に格納されたＩＤの書き換え権限が与えられているものとする。
【００４８】
図２を参照すると、第１ＩＤ格納レジスタ１１２に格納されたＩＤがロックされていない場合、仮想マシンＶＭ１，ＶＭ２の何れかからＩＤ書き換え要求があれば、第１ＩＤ格納レジスタ１１２に格納されたＩＤは、仮想マシンＶＭ１，ＶＭ２の一方のＩＤから他方のＩＤに書き換えられている。
【００４９】
図３は、第１ＩＤ格納レジスタ１１２に格納されたＩＤがロックされている場合における、ＩＤ書き換え要求を行った仮想マシンＶＭのＩＤと、第１ＩＤ格納レジスタ１１２に格納されたＩＤと、の関係を示す図である。なお、図３の例では、仮想マシンＶＭ１，ＶＭ２に、第１ＩＤ格納レジスタ１１２に格納されたＩＤの書き換え権限が与えられているものとする。
【００５０】
図３を参照すると、第１ＩＤ格納レジスタ１１２に格納されたＩＤがロックされている場合、第１ＩＤ格納レジスタ１１２に格納されたＩＤの仮想マシンＶＭからＩＤ書き換え要求がある場合にのみ、第１ＩＤ格納レジスタ１１２に格納された仮想マシンＶＭ１，ＶＭ２の一方のＩＤから他方のＩＤに書き換えられている。また、ＩＤが書き換えられた場合には、ＩＤの書き換えとともにロックが解除されている。
【００５１】
モード設定レジスタ１１６には、第２ＩＤ格納レジスタ１１３に格納されたＩＤの仮想マシンＶＭからの書き換え要求によって第１ＩＤ格納レジスタに格納されたＩＤの書き換えが行われる動作モード（以下、動作モードＭＤと称す）、を有効にするか否かが設定される。本実施の形態では、動作モードＭＤが有効となるように設定されている。なお、動作モードＭＤが無効となるように設定された場合、メモリ保護回路１は、例えば、メモリ保護回路５０と同様の動作を行う。
【００５２】
（メモリ保護回路１の動作）
続いて、メモリ保護回路１の動作について説明する。本例では、仮想マシンＶＭ１，ＶＭ２との間で共通のメモリＭ１を介してデータの受け渡しが行われる場合について説明する。
【００５３】
まず、ハイパーバイザＨＶ１によってメモリ保護回路１の各レジスタへの初期設定が行われる。例えば、第１ＩＤ格納レジスタ１１２には、仮想マシンＶＭ１のＩＤが格納される。それにより、仮想マシンＶＭ１には、メモリＭ１へのアクセス権限が付与される。また、第２ＩＤ格納レジスタ１１３には、仮想マシンＶＭ１，ＶＭ２の２つのＩＤが格納される。それにより、仮想マシンＶＭ１，ＶＭ２には、第１格納レジスタ１１２に格納されたＩＤの書き換え権限が付与される。また、保護領域設定レジスタ１１１には、仮想マシンＶＭ１，ＶＭ２によってアクセスされるメモリＭ１の記憶領域が設定される。さらに、モード設定レジスタ１１６には動作モードＭＤが有効となるように設定される。
【００５４】
ハイパーバイザＨＶ１は、メモリ保護回路１の各レジスタへの初期設定後、メモリＭ１へのアクセス権限を有する仮想マシンＶＭ１を起動させる。
【００５５】
メモリＭ１へのアクセス権限を有する仮想マシンＶＭ１は、例えば、メモリＭ１へのデータの書き込みを行う。このとき、仮想マシンＶＭ１は、メモリ保護回路１に対して、第１ＩＤ格納レジスタ１１２に格納されたＩＤのロックを要求してもよい。ＩＤがロックされることにより、仮想マシンＶＭ１によるメモリＭ１へのデータの書き込みが完了する前に、メモリＭ１へのアクセス権限が仮想マシンＶＭ１から仮想マシンＶＭ２に移行してしまうのを防ぐことができる。
【００５６】
仮想マシンＶＭ１は、メモリＭ１へのデータの書き込みが完了すると、メモリ保護回路１に対して、第１ＩＤ格納レジスタ１１２に格納されたＩＤの書き換えを要求する。ＩＤ書き換え要求に応じてトリガ発生レジスタ１１４からトリガ信号ＴＲＧが出力されると、ＩＤ更新制御回路１５は、第１ＩＤ格納レジスタ１１２に格納されたＩＤを、仮想マシンＶＭ１のＩＤから仮想マシンＶＭ２のＩＤに書き換える。それにより、メモリＭ１へのアクセス権限は、仮想マシンＶＭ１から仮想マシンＶＭ２に移行する。なお、このとき、ＩＤロックレジスタ１１５から出力されるロック信号ＬＫはインアクティブになる。それにより、第１ＩＤ格納レジスタ１１２に格納されたＩＤのロックは解除される。
【００５７】
その後、仮想マシンＶＭ１は、仮想マシンＶＭ２に対して割り込み通知を行うことにより、仮想マシンＶＭ２を起動させる。
【００５８】
メモリＭ１へのアクセス権限を有する仮想マシンＶＭ２は、例えば、メモリＭ１に書き込まれたデータの読み出しを行う。このとき、仮想マシンＶＭ２は、メモリ保護回路１に対して、第１ＩＤ格納レジスタ１１２に格納されたＩＤのロックを要求してもよい。ＩＤがロックされることにより、仮想マシンＶＭ２によるメモリＭ１からのデータの読み出しが完了する前に、メモリＭ１へのアクセス権限が仮想マシンＶＭ２から仮想マシンＶＭ１に移行してしまうのを防ぐことができる。
【００５９】
仮想マシンＶＭ２は、メモリＭ１からのデータの読み出しが完了すると、第１ＩＤ格納レジスタ１１２に格納されたＩＤの書き換えを要求する。ＩＤ書き換え要求に応じてトリガ発生レジスタ１１４からトリガ信号ＴＲＧが出力されると、ＩＤ更新制御回路１５は、第１ＩＤ格納レジスタ１１２に格納されたＩＤを、仮想マシンＶＭ２のＩＤから仮想マシンＶＭ１のＩＤに書き換える。それにより、メモリＭ１へのアクセス権限は、仮想マシンＶＭ２から仮想マシンＶＭ１に移行する。なお、このとき、ＩＤロックレジスタ１１５から出力されるロック信号ＬＫはインアクティブになる。それにより、第１ＩＤ格納レジスタ１１２に格納されたＩＤのロックは解除される。
【００６０】
その後、仮想マシンＶＭ２は、仮想マシンＶＭ１に対して割り込み通知を行うことにより、仮想マシンＶＭ１を起動させる。このような動作が繰り返される。
【００６１】
このように、メモリ保護回路１では、２つの仮想マシン間で共通のメモリを介してデータの受け渡しを行う場合、一方の仮想マシンによるメモリＭ１へのアクセスが完了しても、当該一方の仮想マシンからハイパーバイザに処理を移行させることなく、一方の仮想マシンから他方の仮想マシンに直接的に処理を移行させることができる。つまり、メモリ保護回路１は、２つの仮想マシン間の共通のメモリＭ１を介したデータの受け渡しを、ハイパーバイザＨＶ１を介することなく、速やかに行うことができる。
【００６２】
また、メモリ保護回路１では、メモリ保護回路５０の場合と異なり、ハイパーバイザＨＶ１からの要求によって第１ＩＤ格納レジスタ１１２に格納されたＩＤを書き換えるためのソフトウェアの開発が不要となる。そのため、開発工数を削減することができる。
【００６３】
さらに、２つの仮想マシン間のデータ通信を行うにあたり、メモリＭ１へのアクセス権限は、２つの仮想マシンＶＭの何れか一つにのみ与えられる。また、メモリＭ１へのアクセス権限を有する仮想マシンＶＭの移行は、２つの仮想マシンＶＭからの要求によってのみ許可される。つまり、保護対象であるメモリＭ１の記憶領域へのアクセスは、２つの仮想マシンのみによって行われるため、他のリソースからもデータを保護することができる。
【００６４】
（メモリ保護回路１の変形例）
本実施の形態では、メモリ保護回路１が、２つの仮想マシンＶＭ１，ＶＭ２間で共通のメモリＭ１を介してデータの受け渡しが行われる場合を例に説明したが、これに限られない。メモリ保護回路１は、３つ以上の仮想マシン間で共通のメモリＭ１を介してデータの受け渡しが行われてもよい。以下、メモリ保護回路１の変形例をメモリ保護回路１ａとして簡単に説明する。
【００６５】
図４は、メモリ保護回路１ａの動作の一例を説明するための図である。図４の例では、３個の仮想マシンＶＭ１〜ＶＭ３間で共通のメモリＭ１を介してデータの受け渡しが行われている。
【００６６】
なお、第２ＩＤ格納レジスタ１１３には、仮想マシンＶＭ１〜ＶＭ３のそれぞれのＩＤが格納されている。つまり、本例では、仮想マシンＶＭ１〜ＶＭ３からのＩＤ書き換え要求によって、第１ＩＤ格納レジスタ１１２に格納されたＩＤの書き換えが可能となっている。
【００６７】
図４の例では、まず、仮想マシンＶＭ１にメモリＭ１へのアクセス権限が与えられている。ここで、仮想マシンＶＭ１からメモリ保護回路１ａに対して、第１ＩＤ格納レジスタ１１２に格納されたＩＤを仮想マシンＶＭ１のＩＤから仮想マシンＶＭ２のＩＤに書き換えるように要求があった場合、第１ＩＤ格納レジスタ１１２に格納されたＩＤは、仮想マシンＶＭ１のＩＤから仮想マシンＶＭ２のＩＤに書き換えられる。それにより、メモリＭ１へのアクセス権限は、仮想マシンＶＭ１から仮想マシンＶＭ２に移行する。
【００６８】
次に、仮想マシンＶＭ２からメモリ保護回路１ａに対して、第１ＩＤ格納レジスタ１１２に格納されたＩＤを仮想マシンＶＭ２のＩＤから仮想マシンＶＭ３のＩＤに書き換えるように要求があった場合、第１ＩＤ格納レジスタ１１２に格納されたＩＤは、仮想マシンＶＭ２のＩＤから仮想マシンＶＭ３のＩＤに書き換えられる。それにより、メモリＭ１へのアクセス権限は、仮想マシンＶＭ２から仮想マシンＶＭ３に移行する。
【００６９】
次に、仮想マシンＶＭ３からメモリ保護回路１ａに対して、第１ＩＤ格納レジスタ１１２に格納されたＩＤを仮想マシンＶＭ３のＩＤから仮想マシンＶＭ１のＩＤに書き換えるように要求があった場合、第１ＩＤ格納レジスタ１１２に格納されたＩＤは、仮想マシンＶＭ３のＩＤから仮想マシンＶＭ０のＩＤに書き換えられる。それにより、メモリＭ１へのアクセス権限は、仮想マシンＶＭ３から仮想マシンＶＭ１に移行する。
【００７０】
次に、メモリＭ１へのアクセス権限を持たない仮想マシンＶＭ３からメモリ保護回路１ａに対して、第１ＩＤ格納レジスタ１１２に格納されたＩＤを仮想マシンＶＭ１のＩＤから仮想マシンＶＭ２のＩＤに書き換えるように要求があった場合、第１ＩＤ格納レジスタ１１２に格納されたＩＤは、仮想マシンＶＭ１のＩＤから仮想マシンＶＭ２のＩＤに書き換えられない。この場合、第１ＩＤ格納レジスタ１１２に格納されたＩＤは、例えば、アクセスのあった仮想マシンＶＭ３のＩＤに書き換えられる。それにより、メモリＭ１へのアクセス権限は、仮想マシンＶＭ１から仮想マシンＶＭ３に移行する。
【００７１】
次に、メモリＭ１へのアクセス権限を有する仮想マシンＶＭ３からメモリ保護回路１ａに対して、第１ＩＤ格納レジスタ１１２に格納されているＩＤ（即ち、仮想マシンＶＭ３のＩＤ）のロックを要求する旨のアクセスがあった場合、第１ＩＤ格納レジスタ１１２に格納されたＩＤはロックされる。
【００７２】
このとき、メモリＭ１へのアクセス権限を持たない仮想マシンＶＭ２からメモリ保護回路１ａに対して、第１ＩＤ格納レジスタ１１２に格納されたＩＤを仮想マシンＶＭ３のＩＤから仮想マシンＶＭ１のＩＤに書き換えるように要求があった場合でも、第１ＩＤ格納レジスタ１１２に格納されたＩＤは、ロックされているため、仮想マシンＶＭ３のＩＤから仮想マシンＶＭ１のＩＤに書き換えられない。つまり、第１ＩＤ格納レジスタ１１２に格納されたＩＤは、仮想マシンＶＭ３のＩＤに維持される。それにより、メモリＭ１へのアクセス権限は、仮想マシンＶＭ３に維持される。
【００７３】
それに対し、メモリＭ１へのアクセス権限を有する仮想マシンＶＭ３からメモリ保護回路１ａに対して、第１ＩＤ格納レジスタ１１２に格納されたＩＤを仮想マシンＶＭ３のＩＤから仮想マシンＶＭ１のＩＤに書き換えるように要求があった場合、第１ＩＤ格納レジスタ１１２に格納されたＩＤは、ロック解除されるため、仮想マシンＶＭ３のＩＤから仮想マシンＶＭ１のＩＤに書き換えられる。それにより、メモリＭ１へのアクセス権限は、仮想マシンＶＭ３から仮想マシンＶＭ１に移行する。
【００７４】
なお、メモリＭ１へのアクセス権限は、メモリＭ１へのアクセス権限を有する仮想マシンによって、第２ＩＤ格納レジスタ１１３に格納された３つのＩＤのそれぞれの仮想マシンＶＭ１〜ＶＭ３の何れかに移行するように指定される。メモリＭ１へのアクセス権限の移行先として指定された仮想マシンＶＭのＩＤは、例えばトリガ発生レジスタ１１４に格納される。そして、トリガ発生レジスタ１１４に格納されたＩＤと、第２ＩＤ格納レジスタ１１３に格納された３つのＩＤの何れかと、が一致した場合に、第１ＩＤ格納レジスタ１１２に格納されたＩＤは、トリガ発生レジスタ１１４に格納されたＩＤに書き換えられる。ただし、既に説明したように、メモリＭ１へのアクセス権限を持たない仮想マシンによってアクセス権限の移行先が指定された場合には、第１ＩＤ格納レジスタ１１２に格納されたＩＤは、トリガ発生レジスタ１１４に格納されたＩＤに書き換えられる代わりに、例えばアクセス権限の移行を要求した仮想マシンのＩＤに書き換えられる。
【００７５】
このように、メモリ保護回路１ａは、３つ以上の仮想マシン間の共通のメモリＭ１を介したデータの受け渡しを、ハイパーバイザを介することなく、速やかに行うことができる。
【００７６】
＜実施の形態２＞
図５は、実施の形態２にかかるメモリ保護システムＳＹＳ２の構成例を示すブロック図である。メモリ保護システムＳＹＳ２は、メモリ保護システムＳＹＳ１と比較して、メモリ保護回路１の代わりにメモリ保護回路２を備える。メモリ保護回路２は、メモリ保護回路１と比較して、カウンタ２１と、比較回路２２と、閾値格納レジスタ１１７と、をさらに有する。
【００７７】
閾値格納レジスタ１１７には、ハイパーバイザＨＶ１によって指定された所定の閾値が格納されている。カウンタ２１は、ＩＤロックレジスタ１１５から出力されるロック信号ＬＫがアクティブ（例えばＨレベル）になったことに同期して（即ち、第１ＩＤ格納レジスタ１１２に格納されたＩＤがロックされたタイミングで）、初期値０を示すカウント値ＣＮのカウントアップ動作を開始する。
【００７８】
比較回路２２は、カウンタ２１のカウント値ＣＮと、閾値格納レジスタ１１７に格納された閾値Ｎ１と、を比較する。比較回路２２は、カウント値ＣＮが、カウンタ２１によるカウントアップ開始後、所定期間経過後に、閾値Ｎ１に達すると、比較結果をインアクティブからアクティブ（例えばＬレベルからＨレベル）に切り替える。それにより、ＩＤロックレジスタ１１５から出力されるロック信号ＬＫが強制的にアクティブからインアクティブに切り替わるため、第１ＩＤ格納レジスタ１１２に格納されているＩＤのロックは解除される。つまり、第１ＩＤ格納レジスタ１１２に格納されたＩＤがシステム異常等によって意図せずロックされ続けた場合でも、ロック開始から所定期間経過後には、強制的に当該ＩＤのロックは解除される。また、比較結果をインアクティブからアクティブに切り替えることによって、ロックの解除と同時に、第１ＩＤ格納レジスタ１１２に格納されたＩＤの書き換えを行うことができる。
【００７９】
メモリ保護回路２のその他の構成については、メモリ保護回路１の場合と同様であるため、その説明を省略する。
【００８０】
（メモリ保護回路２の動作）
続いて、図６を用いて、メモリ保護回路２の動作について説明する。
図６は、メモリ保護回路２の動作を示すフローチャートである。
【００８１】
図６に示すように、まず、第１ＩＤ格納レジスタ１１２に格納されたＩＤの仮想マシンＶＭ（即ち、メモリＭ１へのアクセス権限が与えられている仮想マシンＶＭ）から、メモリ保護回路２に対して、第１ＩＤ格納レジスタ１１２に格納されているＩＤのロックを要求する旨のアクセスがあった場合、ＩＤロックレジスタ１１５は、ロック信号ＬＫをインアクティブからアクティブ（例えばＬレベルからＨレベル）に切り替える。それにより、第１ＩＤ格納レジスタ１１２に格納されたＩＤはロックされる（ステップＳ１０１）。
【００８２】
カウンタ２１は、第１ＩＤ格納レジスタ１１２に格納されたＩＤがロックされたタイミングで、初期値０を示すカウント値ＣＮのカウントアップ動作を開始する（ステップＳ１０２）。
【００８３】
例えば、カウント値ＣＮが閾値Ｎ１に達する前に（ステップＳ１０３のＮＯ）、第１ＩＤ格納レジスタ１１２に格納されたＩＤの仮想マシンＶＭからのＩＤ書き換え要求によって当該ＩＤのロックが解除された場合（ステップＳ１０４のＹＥＳ）には、ロックの解除と同時に、第１ＩＤ格納レジスタ１１２に格納されたＩＤの書き換えが行われる（ステップＳ１０６）。なお、このとき、カウンタ２１によるカウントアップ動作は停止し、カウント値ＣＮはゼロに初期化される。
【００８４】
それに対し、カウント値ＣＮが閾値Ｎ１に達する前に（ステップＳ１０３のＮＯ）、第１ＩＤ格納レジスタ１１２に格納されたＩＤのロックが解除されなければ（ステップＳ１０４のＮＯ）、カウンタ２１によるカウント値ＣＮのカウントアップ動作は継続される。
【００８５】
そして、カウント値ＣＮが閾値Ｎ１に達すると（ステップＳ１０３のＹＥＳ）、第１ＩＤ格納レジスタ１１２に格納されたＩＤの仮想マシンＶＭからのＩＤ書き換え要求が無くても、ＩＤロックレジスタ１１５から出力されるロック信号ＬＫは強制的にアクティブからインアクティブに切り替わる。それにより、第１ＩＤ格納レジスタ１１２に格納されているＩＤのロックは解除される（ステップＳ１０５）。つまり、第１ＩＤ格納レジスタ１１２に格納されたＩＤがシステム異常等によって意図せずロックされ続けた場合でも、ロック開始から所定期間経過後には、強制的に当該ＩＤのロックは解除される。
【００８６】
このとき、必要に応じて、第１ＩＤ格納レジスタ１１２に格納されるＩＤの仮想マシンからの要求によって当該ＩＤの書き換えが行われる（ステップＳ１０６）。
【００８７】
このように、本実施の形態にかかるメモリ保護回路２は、メモリ保護回路１と同等程度の効果を奏することができる。また、本実施の形態にかかるメモリ保護回路２は、第１ＩＤ格納レジスタ１１２に格納されたＩＤがロックされてから所定期間経過後には、第１ＩＤ格納レジスタ１１２に格納されたＩＤの仮想マシンＶＭからの要求が無くても、第１ＩＤ格納レジスタ１１２に格納されているＩＤのロックを解除する。それにより、本実施の形態にかかるメモリ保護回路２は、第１ＩＤ格納レジスタ１１２に格納されたＩＤがシステム異常等によって意図せずロックされ続けた場合でも、ロック開始から所定期間経過後に強制的に当該ＩＤのロックを解除することにより、メモリ保護回路２の設定を正常な状態に復帰させることができる。
【００８８】
また、本実施の形態にかかるメモリ保護回路２は、ハイパーバイザＨＶ１による処理を介することなく、比較回路２２による比較結果に基づいて、強制的にＩＤのロックを解除している。それにより、ハイパーバイザＨＶ１を起動するためのコンテキストの退避、及び、ハイパーバイザＨＶ１による復帰動作が不要になるため、メモリ保護システムＳＹＳ２の性能低下が抑制される。
【００８９】
以上のように、上記実施の形態１，２にかかるメモリ保護回路１，２は、複数の仮想マシン間で共通のメモリを介してデータの受け渡しを行う場合、何れかの仮想マシンによるメモリＭ１へのアクセスが完了しても、その仮想マシンからハイパーバイザに処理を移行させることなく、その仮想マシンから次の仮想マシンに処理を移行させることができる。つまり、メモリ保護回路１は、複数の仮想マシン間の共通のメモリＭ１を介したデータの受け渡しを、ハイパーバイザＨＶ１を介することなく、速やかに行うことができる。
【００９０】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は既に述べた実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々の変更が可能であることはいうまでもない。
【符号の説明】
【００９１】
ＳＹＳ１  メモリ保護システム
１  メモリ保護回路
１ａ  メモリ保護回路
２  メモリ保護回路
１１  レジスタ群
１２  アクセス判定回路
１４  アクセス判定回路
１５  ＩＤ更新制御回路
２１  カウンタ
２２  比較回路
１１１  保護領域設定レジスタ
１１２  第１ＩＤ格納レジスタ
１１３  第２ＩＤ格納レジスタ
１１４  トリガ発生レジスタ
１１５  ＩＤロックレジスタ
１１６  モード設定レジスタ
１１７  閾値格納レジスタ
１２１  アドレス比較回路
１２２  ＩＤ比較回路
Ｍ１  メモリ
ＶＭ１〜ＶＭｎ  仮想マシン
ＨＶ１  ハイパーバイザ
【図１】
2019204382.tif 000003
【図２】
2019204382.tif 000004
【図３】
2019204382.tif 000005
【図４】
2019204382.tif 000006
【図５】
2019204382.tif 000007
【図６】
2019204382.tif 000008
【図７】
2019204382.tif 000009