(57)【要約】ダミーレイヤ生成終了部１３０１は、セキュア仮想計算機１０１の画面レイヤが発生した場合、ダミーレイヤを生成する。表示ドライバ切り替え部１３２２は、ダミーレイヤが少なくとも１つ生成された場合、セキュア仮想計算機１０１に表示制御を切り替え、画面データ合成部１３３１に画面レイヤを合成させる。一方、表示ドライバ切り替え部１３２２は、ダミーレイヤが生成されていない場合、非セキュア仮想計算機１０２に表示制御を切り替え、画面データ合成部１３２１に画面レイヤを合成させる。
2012107975.tif 000002
【特許請求の範囲】
【請求項１】
第１の仮想計算機と、第２の仮想計算機と、前記第１、第２の仮想計算機を制御する仮想計算機制御部と、前記第１の仮想計算機の画面レイヤの画面データを保持する第１メモリと、前記第２仮想計算機の画面レイヤの画面データを保持する第２メモリとを備え、前記第１、第２の仮想計算機の画面レイヤを合成し、表示デバイスに表示する仮想計算機表示装置であって、
前記第１の仮想計算機は、
前記第２の仮想計算機の画面レイヤが発生した場合、発生した画面レイヤを前記第１の仮想計算機で管理するためのダミーレイヤを生成するダミーレイヤ生成部と、
前記第１の仮想計算機の画面レイヤと前記ダミーレイヤとの少なくとも表示順序を含む画面レイヤ管理情報を管理する表示レイヤ管理部と、
前記ダミーレイヤが生成されていない場合、前記第１の仮想計算機に表示制御を切り替え、前記ダミーレイヤが少なくとも１つ生成された場合、前記第２の仮想計算機に表示制御を切り替える表示ドライバ切り替え部と、
前記表示ドライバ切り替え部により前記第１の仮想計算機に表示制御が切り替えられた場合、前記画面レイヤ管理情報に基づき、前記第１メモリに保持された画面データを用いて、第１の仮想計算機の画面レイヤを合成する第１の画面データ合成部とを備え、
前記仮想計算機制御部は、
前記表示ドライバ切り替え部により前記第２の仮想計算機に表示制御が切り替えられた場合、前記第２の仮想計算機に画面レイヤを合成するように指示するドライバ切り替え通知部を備え、
前記第２の仮想計算機は、
前記ドライバ切り替え通知部により前記第２の仮想計算機に画面レイヤを合成するように指示された場合、前記画面レイヤ管理情報に基づき、前記第１、第２メモリに保持された画面データを用いて、第１、第２の仮想計算機の画面レイヤを合成する第２の画面データ合成部とを備える仮想計算機表示装置。
【請求項２】
前記ダミーレイヤ生成部は、前記第２の仮想計算機の画面レイヤが消失した場合、消失した画面レイヤに対応するダミーレイヤが削除されるように、前記表示レイヤ管理部に前記画面レイヤ管理情報を更新させる請求項１記載の仮想計算機表示装置。
【請求項３】
前記表示デバイスは、描画割り込みを発生し、
前記表示ドライバ切り替え部により前記第２の仮想計算機に表示制御が切り替えられた場合、前記描画割り込みを前記第２の仮想計算機に配送して前記第２の画面データ合成部に画面レイヤを合成させ、前記表示ドライバ切り替え部により前記第１の仮想計算機に表示制御が切り替えられた場合、前記描画割り込みを前記第１の仮想計算機に配送し、前記第１の画面データ合成部に画面レイヤを合成させる割り込み配送制御部を更に備える請求項１又は２記載の仮想計算機表示装置。
【請求項４】
前記ダミーレイヤ生成部は、前記ダミーレイヤの生成及び削除を前記表示ドライバ切り替え部に通知し、
前記表示ドライバ切り替え部は、前記ダミーレイヤ生成部によりダミーレイヤの生成が通知された場合、前記ダミーレイヤの発生数を１増加させ、前記ダミーレイヤ生成部によりダミーレイヤの削除が通知された場合、前記ダミーレイヤの発生数を１減少させることでダミーレイヤの発生数を管理する請求項１〜３のいずれかに記載の仮想計算機表示装置。
【請求項５】
前記画面レイヤ管理情報は、各画面レイヤが前記ダミーレイヤであるか否かを示すダミーレイヤ情報を含む請求項１〜４のいずれかに記載の仮想計算機表示装置。
【請求項６】
前記第２の画面データ合成部は、前記画面レイヤ管理情報から前記ダミーレイヤを特定し、特定したダミーレイヤを対応する画面レイヤの画面データで置き替えることで画面レイヤを合成する請求項１〜５のいずれかに記載の仮想計算機表示装置。
【請求項７】
前記画面レイヤ管理情報は、各画面レイヤのサイズ及び各画面レイヤの画面データの格納アドレスを含む請求項１〜６のいずれかに記載の仮想計算機表示装置。
【請求項８】
前記第１の画面データ合成部は、前記表示ドライバ切り替え部により前記第２の仮想計算機に表示制御が切り替えられた場合、前記画面レイヤ管理情報に基づき、表示順序が前記ダミーレイヤより下層の前記第１の仮想計算機の画面レイヤを予め合成可能な画面レイヤとして特定し、特定した画面レイヤを合成し、
前記第２の画面データ合成部は、前記第１の画面データ合成部により予め合成された画面レイヤと残りの画面レイヤとを、前記画面レイヤ管理情報に基づいて合成する請求項１〜７のいずれかに記載の仮想計算機表示装置。
【請求項９】
前記第１の画面データ生成部は、前記ダミーレイヤと前記ダミーレイヤに重なる前記第１の仮想計算機の画面レイヤとの和集合領域を求め、前記表示順序が前記ダミーレイヤの上層の前記第１の仮想計算機の画面レイヤであっても、前記和集合領域に重ならない画面レイヤを予め合成可能な画面レイヤとして更に特定し、特定した画面レイヤを合成する請求項８記載の仮想計算機表示装置。
【請求項１０】
前記第１メモリは、前記第１、第２の仮想計算機がアクセス可能な共有メモリであり、
前記第２メモリは、前記第２の仮想計算機のみがアクセス可能な非共有メモリである請求項１〜９のいずれかに記載の仮想計算機表示装置。
【請求項１１】
第１の仮想計算機と、第２の仮想計算機と、前記第１、第２の仮想計算機を制御する仮想計算機制御部と、前記第１の仮想計算機の画面レイヤの画面データを保持する第１メモリと、前記第２仮想計算機の画面レイヤの画面データを保持する第２メモリとを備える仮想計算機表示装置が、前記第１、第２の仮想計算機の画面レイヤを合成し、表示デバイスに表示する仮想計算機表示方法であって、
前記第１の仮想計算機が、
前記第２の仮想計算機の画面レイヤが発生した場合、発生した画面レイヤを前記第１の仮想計算機で管理するためのダミーレイヤを生成するダミーレイヤ生成ステップと、
前記第１の仮想計算機の画面レイヤと前記ダミーレイヤとの少なくとも表示順序を含む画面レイヤ管理情報を管理する表示レイヤ管理ステップと、
前記ダミーレイヤが生成されていない場合、前記第１の仮想計算機に表示制御を切り替え、前記ダミーレイヤが少なくとも１つ生成された場合、前記第２の仮想計算機に表示制御を切り替える表示ドライバ切り替えステップと、
前記表示ドライバ切り替えステップにより前記第１の仮想計算機に表示制御が切り替えられた場合、前記画面レイヤ管理情報に基づき、前記第１メモリに保持された画面データを用いて、第１の仮想計算機の画面レイヤを合成する第１の画面データ合成ステップとを備え、
前記仮想計算機制御部が、
前記表示ドライバ切り替えステップにより前記第２の仮想計算機に表示制御が切り替えられた場合、前記第２の仮想計算機に画面レイヤを合成するように指示するドライバ切り替え通知ステップを備え、
前記第２の仮想計算機が、
前記ドライバ切り替え通知ステップにより前記第２の仮想計算機に画面レイヤを合成するように指示された場合、前記画面レイヤ管理情報に基づき、前記第１、第２メモリに保持された画面データを用いて、第１、第２の仮想計算機の画面レイヤを合成する第２の画面データ合成ステップを備える仮想計算機表示方法。
【請求項１２】
第１の仮想計算機と、第２の仮想計算機と、前記第１、第２の仮想計算機を制御する仮想計算機制御部と、前記第１の仮想計算機の画面レイヤの画面データを保持する第１メモリと、前記第２仮想計算機の画面レイヤの画面データを保持する第２メモリとを備え、前記第１、第２の仮想計算機の画面レイヤを合成し、表示デバイスに表示する仮想計算機表示装置としてコンピュータを機能させる仮想計算機表示プログラムであって、
前記第１の仮想計算機を、
前記第２の仮想計算機の画面レイヤが発生した場合、発生した画面レイヤを前記第１の仮想計算機で管理するためのダミーレイヤを生成するダミーレイヤ生成部と、
前記第１の仮想計算機の画面レイヤと前記ダミーレイヤとの少なくとも表示順序を含む画面レイヤ管理情報を管理する表示レイヤ管理部と、
前記ダミーレイヤが生成されていない場合、前記第１の仮想計算機に表示制御を切り替え、前記ダミーレイヤが少なくとも１つ生成された場合、前記第２の仮想計算機に表示制御を切り替える表示ドライバ切り替え部と、
前記表示ドライバ切り替え部により前記第１の仮想計算機に表示制御が切り替えられた場合、前記画面レイヤ管理情報に基づき、前記第１メモリに保持された画面データを用いて、第１の仮想計算機の画面レイヤを合成する第１の画面データ合成部として機能させ、
前記仮想計算機制御部を、
前記表示ドライバ切り替え部により前記第２の仮想計算機に表示制御が切り替えられた場合、前記第２の仮想計算機に画面レイヤを合成するように指示するドライバ切り替え通知部として機能させ、
前記第２の仮想計算機を、
前記ドライバ切り替え通知部により前記第２の仮想計算機に画面レイヤを合成するように指示された場合、前記画面レイヤ管理情報に基づき、前記第１、第２メモリに保持された画面データを用いて、第１、第２の仮想計算機の画面レイヤを合成する第２の画面データ合成部として機能させる仮想計算機表示プログラム。
【請求項１３】
第１の仮想計算機と、第２の仮想計算機と、前記第１、第２の仮想計算機を制御する仮想計算機制御部と、前記第１の仮想計算機の画面レイヤの画面データを保持する第１メモリと、前記第２仮想計算機の画面レイヤの画面データを保持する第２メモリとを備え、前記第１、第２の仮想計算機の画面レイヤを合成し、表示デバイスに表示する仮想計算機表示装置としてコンピュータを機能させる仮想計算機表示プログラムを記録するコンピュータ読み取り可能な記録媒体であって、
前記第１の仮想計算機を、
前記第２の仮想計算機の画面レイヤが発生した場合、発生した画面レイヤを前記第１の仮想計算機で管理するためのダミーレイヤを生成するダミーレイヤ生成部と、
前記第１の仮想計算機の画面レイヤと前記ダミーレイヤとの少なくとも表示順序を含む画面レイヤ管理情報を管理する表示レイヤ管理部と、
前記ダミーレイヤが生成されていない場合、前記第１の仮想計算機に表示制御を切り替え、前記ダミーレイヤが少なくとも１つ生成された場合、前記第２の仮想計算機に表示制御を切り替える表示ドライバ切り替え部と、
前記表示ドライバ切り替え部により前記第１の仮想計算機に表示制御が切り替えられた場合、前記画面レイヤ管理情報に基づき、前記第１メモリに保持された画面データを用いて、第１の仮想計算機の画面レイヤを合成する第１の画面データ合成部として機能させ、
前記仮想計算機制御部を、
前記表示ドライバ切り替え部により前記第２の仮想計算機に表示制御が切り替えられた場合、前記第２の仮想計算機に画面レイヤを合成するように指示するドライバ切り替え通知部として機能させ、
前記第２の仮想計算機を、
前記ドライバ切り替え通知部により前記第２の仮想計算機に画面レイヤを合成するように指示された場合、前記画面レイヤ管理情報に基づき、前記第１、第２メモリに保持された画面データを用いて、第１、第２の仮想計算機の画面レイヤを合成する第２の画面データ合成部として機能させる仮想計算機表示プログラムを記録する記録媒体。
【請求項１４】
第１の仮想計算機と、第２の仮想計算機と、前記第１、第２の仮想計算機を制御する仮想計算機制御部と、前記第１の仮想計算機の画面レイヤの画面データを保持する第１メモリと、前記第２仮想計算機の画面レイヤの画面データを保持する第２メモリとを備え、前記第１、第２の仮想計算機の画面レイヤを合成し、表示デバイスに表示する仮想計算機表示装置の集積回路であって、
前記第１の仮想計算機は、
前記第２の仮想計算機の画面レイヤが発生した場合、発生した画面レイヤを前記第１の仮想計算機で管理するためのダミーレイヤを生成するダミーレイヤ生成部と、
前記第１の仮想計算機の画面レイヤと前記ダミーレイヤとの少なくとも表示順序を含む画面レイヤ管理情報を管理する表示レイヤ管理部と、
前記ダミーレイヤが生成されていない場合、前記第１の仮想計算機に表示制御を切り替え、前記ダミーレイヤが少なくとも１つ生成された場合、前記第２の仮想計算機に表示制御を切り替える表示ドライバ切り替え部と、
前記表示ドライバ切り替え部により前記第１の仮想計算機に表示制御が切り替えられた場合、前記画面レイヤ管理情報に基づき、前記第１メモリに保持された画面データを用いて、第１の仮想計算機の画面レイヤを合成する第１の画面データ合成部とを備え、
前記仮想計算機制御部は、
前記表示ドライバ切り替え部により前記第２の仮想計算機に表示制御が切り替えられた場合、前記第２の仮想計算機に画面レイヤを合成するように指示するドライバ切り替え通知部を備え、
前記第２の仮想計算機は、
前記ドライバ切り替え通知部により前記第２の仮想計算機に画面レイヤを合成するように指示された場合、前記画面レイヤ管理情報に基づき、前記第１、第２メモリに保持された画面データを用いて、第１、第２の仮想計算機の画面レイヤを合成する第２の画面データ合成部とを備える集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の仮想計算機を動作させる技術に関するものであり、特に複数の仮想計算機が出力する画像を合成する技術に関するものである。
【背景技術】
【０００２】
従来、仮想計算機の表示処理に関する技術としては、仮想計算機制御プログラムが入力装置からの画面切り替えを認識し、指示内容に応じて、各仮想計算機に対応する画面スクリーンを同一の表示装置上に排他的に表示する技術が知られている（例えば、特許文献１）。【０００３】
詳細には、ハイパバイザと呼ばれる仮想計算機制御プログラムが各仮想計算機の出力する画面スクリーンの画面データを画面バッファに保持する。そして、仮想計算機制御プログラムが、入力装置からある仮想計算機の画面スクリーンから別の仮想計算機の画面スクリーンに切り替えるための要求を受けると、現在表示されているある仮想計算機の画面スクリーンを、指定された別の仮想計算機の画面スクリーンに排他的に切り替える。【０００４】
しかしながら、特許文献１の技術では、仮想計算機制御プログラムが、各仮想計算機の画面スクリーンを排他的に切り替えるため、各仮想計算機の画面スクリーンを合成することができないという問題がある。【０００５】
また、その他の仮想計算機の表示処理に関する技術として、ＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ；液晶表示器）等のディスプレイに対し、異なる描画システム間においてウィンドウ単位での重ね合わせを動的に制御する技術が開示されている（例えば、特許文献２）。【０００６】
具体的には、特許文献２の技術は、それぞれ異なるＯＳがインストールされた処理部（１）及び処理部（２）を備え、処理部（１）に用意されたＶＲＡＭであるハードウェアレイヤ（ＨＷレイヤ）（７１）にウィンドウ（７１１）を描画すると共に、処理部（２）に用意されたＶＲＡＭであるＨＷレイヤにウィンドウ（７１２）を描画する。そして、ＨＷレイヤ（７１）の優先順位がＨＷレイヤ（７２）の優先順位よりも低い場合、ＨＷレイヤ（７１）に描画されたウィンドウ（７１１）を特定ウィンドウとして検出し、この特定ウィンドウと同一位置及び同一サイズの透過ウィンドウ（７２５）をＨＷレイヤ（７２）に描画する。そして、ＨＷレイヤ（７１）とＨＷレイヤ（７２）とがＬＣＤコントローラにより合成され、ウィンドウ（７１１）とウィンドウ（７１２）とが重畳された合成画像が表示画面（４１）に表示される。これにより、ＨＷレイヤ（７１）に描画されたウィンドウ（７１）が、ＨＷレイヤ（７２）に描画された透過ウィンドウ（７２５）を介して、ＨＷレイヤ（７２）に描画されたウィンドウ（７１２）の手前に表示される。【０００７】
特許文献２の技術では、ＬＣＤコントローラにより、ウィンドウ（７１１）が描画されたＨＷレイヤ（７１）と、透過ウィンドウ（７１２）及びウィンドウ（７１２）が描画されたＨＷレイヤ（７２）とが合成されているが、ＬＣＤコントローラがどのようにして合成するかについての具体的な記載がないため、実現性が不明である。【０００８】
また、特許文献２の技術では、ＨＷレイヤ（７２）の優先順位がＨＷレイヤ（７１）の優先順位より高いにも関わらず、ＨＷレイヤ（７１）に描画されたウィンドウ（７１１）がＨＷレイヤ（７２）に描画されたウィンドウ（７１２）よりも手前に表示されるという問題がある。【０００９】
ここで、特許文献２において、透過ウィンドウ（７２５）を特定のキーカラー（例えば黒）を持つウィンドウであると仮定し、ＬＣＤコントローラが、ＨＷレイヤ（７２）においてキーカラーが描画された領域に、ＨＷレイヤ（７１）に描画されたウィンドウ（７１１）を描画してＨＷレイヤ（７１）とＨＷレイヤ（７２２）とを合成させる場合を考える。この場合、ＨＷレイヤ（７２）の上層に半透過の他のウィンドウが重畳されると、透過ウィンドウ（７２５）の色がキーカラーから別の色に変更されるため、透過ウィンドウ（７２５）にＨＷレイヤ（７１）のウィンドウ（７１１）を描画することができなくなるという問題が発生する。【００１０】
ところで、複数の仮想計算機から構成される仮想計算機システムにおいては、セキュア仮想計算機と非セキュア仮想計算機とが存在することがある。この場合、セキュア仮想計算機が描画する画面データに非セキュア仮想計算機がアクセスできないようにする必要がある。【００１１】
しかしながら、特許文献１、２では、非セキュア仮想計算機とセキュア仮想計算機とを考慮した記載が全く行われていないため、セキュア仮想計算機が描画する画面レイヤの画面データが非セキュア仮想計算機によってアクセスされるという問題が発生する。【００１２】
また、セキュア仮想計算機と非セキュア仮想計算機とを備える仮想計算機システムにおいては、セキュア仮想計算機が両仮想計算機で発生した画面レイヤを合成する構成を採用すると、セキュア仮想計算機で発生する画面レイヤを非セキュア仮想計算機から保護することができる。【００１３】
また、非セキュア仮想計算機で画面レイヤの生成や消失が頻発すると、セキュア仮想計算機と非セキュア仮想計算機との間でデータの送受が頻発し、システム全体の性能が劣化するという問題がある。
【先行技術文献】
【特許文献】
【００１４】
【特許文献１】特開２００２−３１８６９９号公報
【特許文献２】特開２００９−１５７６３５号公報
【発明の概要】
【００１５】
本発明の目的は、一方の仮想計算機が他方の仮想計算機の画面レイヤにアクセスすることを防止し、異なる仮想計算機間での切り替え処理を軽減しながら、異なる仮想計算機で発生した画面レイヤを表示順序にしたがって合成する技術を提供することである。
【００１６】
本発明の一局面による仮想計算機表示装置は、第１の仮想計算機と、第２の仮想計算機と、前記第１、第２の仮想計算機を制御する仮想計算機制御部と、前記第１の仮想計算機の画面レイヤの画面データを保持する第１メモリと、前記第２仮想計算機の画面レイヤの画面データを保持する第２メモリとを備え、前記第１、第２の仮想計算機の画面レイヤを合成し、表示デバイスに表示する仮想計算機表示装置であって、前記第１の仮想計算機は、前記第２の仮想計算機の画面レイヤが発生した場合、発生した画面レイヤを前記第１の仮想計算機で管理するためのダミーレイヤを生成するダミーレイヤ生成部と、前記第１の仮想計算機の画面レイヤと前記ダミーレイヤとの少なくとも表示順序を含む画面レイヤ管理情報を管理する表示レイヤ管理部と、前記ダミーレイヤが生成されていない場合、前記第１の仮想計算機に表示制御を切り替え、前記ダミーレイヤが少なくとも１つ生成された場合、前記第２の仮想計算機に表示制御を切り替える表示ドライバ切り替え部と、前記表示ドライバ切り替え部により前記第１の仮想計算機に表示制御が切り替えられた場合、前記画面レイヤ管理情報に基づき、前記第１メモリに保持された画面データを用いて、第１の仮想計算機の画面レイヤを合成する第１の画面データ合成部とを備え、前記仮想計算機制御部は、前記表示ドライバ切り替え部により前記第２の仮想計算機に表示制御が切り替えられた場合、前記第２の仮想計算機に画面レイヤを合成するように指示するドライバ切り替え通知部を備え、前記第２の仮想計算機は、前記ドライバ切り替え通知部により前記第２の仮想計算機に画面レイヤを合成するように指示された場合、前記画面レイヤ管理情報に基づき、前記第１、第２メモリに保持された画面データを用いて、第１、第２の仮想計算機の画面レイヤを合成する第２の画面データ合成部とを備える。
【００１７】
また、本発明の別の一局面による仮想計算機表示方法、仮想計算機表示プログラム、記録媒体、及び集積回路は上記の仮想計算機表示装置の特徴を備えている。
【図面の簡単な説明】
【００１８】
【図１】本発明の実施の形態における仮想計算機表示装置を備えた情報処理装置のブロック図である。
【図２】本発明の実施の形態１における仮想計算機表示装置の構成の一例を示す概略図である。
【図３】セキュア仮想計算機の画面データと非セキュア仮想計算機の画面データとが合成される処理を示す模式図である。
【図４】本発明の実施の形態１における仮想計算機表示装置の詳細な構成を示すブロック図である。
【図５】（Ａ）は（Ｂ）に示す画面レイヤ管理情報において、ダミーレイヤと非セキュア側の画面レイヤとの関係を示した図である。（Ｂ）は表示レイヤ管理部が管理する画面レイヤ管理情報の一例を示した図である。
【図６】ダミーレイヤを画面レイヤ管理情報に登録する際の処理を示すフローチャートである。
【図７】登録済みのダミーレイヤを画面レイヤ管理情報から削除する際の処理を示すフローチャートである。
【図８】表示ドライバ切り替え部が、ダミーレイヤ登録通知部からダミーレイヤの生成通知を受け付けた際の処理を示すフローチャートである。
【図９】表示ドライバ切り替え部が、ダミーレイヤ削除通知部からダミーレイヤの削除通知を受け付けた際の処理を示すフローチャートである。
【図１０】ドライバ切り替え通知部が、表示ドライバ切り替え部から表示制御の切り替え依頼を受け付け付けて、表示制御をセキュア仮想計算機に切り替える際の処理を示すフローチャートである。
【図１１】割り込み配送制御部が描画割り込みを受け付けて、各仮想計算機に描画割り込みを配送する際の処理を示すフローチャートである。
【図１２】画面データ合成部が、表示ドライバ切り替え部から表示制御の切り替え依頼を受け付けた際の処理を示すフローチャートである。
【図１３】画面データ合成部が、割り込み配送制御部から描画割り込みを受け付けて画面レイヤを合成する際の処理を示すフローチャートである。
【図１４】セキュア仮想計算機の画面データ合成部が、ドライバ切り替え通知部から表示制御の切り替え依頼を受け付けた際の処理を示すフローチャートである。
【図１５】画面データ合成部が、割り込み配送制御部から描画割り込みを受け付けた際の処理を示すフローチャートである。
【図１６】本発明の実施の形態２による仮想計算機表示装置の詳細な構成を示すブロック図である。
【図１７】画面データ合成部が表示ドライバ切り替え部から表示ドライバの切り替え依頼を受け付けた際の処理を示すフローチャートである。
【図１８】上層下層判定部が、画面データ合成部から画面レイヤ管理情報を取得し、予め合成可能な画面レイヤを特定する際の処理を示すフローチャートである。
【図１９】下層画面合成部が、非セキュア仮想計算機で合成可能な画面を予め合成する処理を示すフローチャートである。
【図２０】和集合領域の説明図であり、（Ａ）は鳥瞰図であり、（Ｂ）は上面視からの図である。
【図２１】下層画面合成部が予め合成する画面レイヤを示した図である。
【発明を実施するための形態】
【００１９】
以下、本発明の実施の形態について、図面を参照しながら説明する。
【００２０】
（実施の形態１）
図１は、本発明の実施の形態における仮想計算機表示装置を備えた情報処理装置のブロック図である。この情報処理装置１０００は、それ自体としてユーザの使用に供することもできるが、様々な機器に組み込まれてもよい。情報処理装置１０００は、代表的にはＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ；パーソナルコンピュータ又はパソコン）等の汎用のコンピュータであるが、ＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｃｅ）又は携帯電話機等の携帯通信端末でもよい。その他、情報処理装置１０００としては、テレビ、ハーディスクレコーダー、ＤＶＤやブルーレイなどの各種ディスクレコーダーや各種ディスクプレイヤー、カーナビゲーションシステム等を採用してもよい。
【００２１】
情報処理装置１０００は、プロセッサ１、メモリ装置２、通信装置３４、入力装置４０、表示装置４５、タイマ回路５１、及び割り込みコントローラ５５を備えている。プロセッサ１は、代表的には、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ；中央演算処理装置）や、メディア処理用やグラフィック処理用のプロセッサ、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）等の演算処理装置である。図１に示す各ブロックは、バスライン５０を通じて互いに接続されている。また、必要に応じて、バスライン５０には、ハードディスク装置２５及び読取装置３２を接続することが可能である。ハードディスク装置２５、読取装置３２、入力装置４０、及び表示装置４５は、それぞれ、インタフェース２６，３５，４１，４６を通じてバスライン５０に接続される。
【００２２】
プロセッサ１は、単一のプロセッサで構成されても良く、複数のプロセッで構成されてもよい。一例として、情報処理装置１０００は、複数のプロセッサ１１、１２、１３、・・・を有するものとする。メモリ装置２は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２１及びＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２２を備えている。
【００２３】
ＲＯＭ２１は、プロセッサ１の動作を規定するコンピュータプログラム及びデータを記憶している。コンピュータプログラム及びデータは、ハードディスク装置２５に記憶させることもできる。プロセッサ１は、ＲＯＭ２１又はハードディスク装置２５が格納するコンピュータプログラム及びデータを、必要に応じてＲＡＭ２２に書き込みつつ、コンピュータプログラムが規定する処理を実行する。ＲＡＭ２２は、プロセッサ１が処理を実行するのに伴って発生するデータを一時的に記憶する媒体としても機能する。ＲＯＭ２１としては、フラッシュＲＯＭのように書き込みが可能で、電源を切っても記憶内容を保持できる不揮発性のメモリや記憶媒体が含まれる。ＲＡＭ２２としては、電源を切ると記憶内容が保持されない揮発性のメモリや記憶媒体が含まれる。
【００２４】
ハードディスク装置２５は、内蔵する不図示のハードディスクへ、コンピュータプログラム、又はデータを書き込み及び読み出す装置である。読取装置３２は、記録媒体３１（例えばＣＤ、ＤＶＤ、メモリカードなど）に記録されたコンピュータプログラム、又はデータを読み取る装置である。通信装置３４は、電話回線、ネットワーク線、無線、赤外線通信等の通信回線３３を通じて、外部と自身との間で、コンピュータプログラム、又はデータを交換する装置である。入力装置４０は、ユーザの操作によりデータ等を入力する装置であり、例えば、ＰＤＡに配列されたキーボード、携帯電話機に配列された入力ボタン、又は着脱自在のマウス、キーボードである。表示装置４５は、データ、画像等を画面に表示したり、データ等を音声で出力したりする装置であり、例えばＬＣＤ（Ｌｉｑｕｉｄ  Ｃｒｙｓｔａｌ  Ｄｉｓｐｌａｙ；液晶表示器）、ブラウン管、スピーカである。
【００２５】
タイマ回路５１は、一定の周期でタイマ割り込み信号を出力する装置である。割り込みコントローラ５５は、タイマ回路５１、入力装置４０、プロセッサ１、ネットワークデバイスとしての通信装置３４、ハードディスク装置２５、読取装置３２等から送られる割り込み要求信号を、プロセッサ１へ中継する装置である。各装置からの割り込み要求には優先度が付けられている。割り込みコントローラ５５は、同時に複数の装置から割り込みが発生した場合には、それらの要求を優先度に応じて調停する機能を有している。
【００２６】
以上のように、情報処理装置１０００は、コンピュータとして構成されている。上記コンピュータプログラムは、ＲＯＭ２１、ハードディスク装置２５、不図示のフレキシブルディスク、ＣＤ−ＲＯＭ等の記録媒体３１を通じて供給することも、通信回線３３等の伝送媒体を通じて供給することも可能である。例えば、記録媒体３１（ＣＤ−ＲＯＭ）に記録されたコンピュータプログラムは、読取装置３２を情報処理装置１０００へ接続することで、読み出すことができる。また、情報処理装置１０００は、読み出したコンピュータプログラムを、ＲＡＭ２２又はハードディスク装置２５に格納することができる。
【００２７】
プログラム記録媒体としてのＲＯＭ２１からコンピュータプログラムが供給される場合には、当該ＲＯＭ２１を情報処理装置１０００に搭載することにより、プロセッサ１は上記コンピュータプログラムに従った処理を実行可能することができる。通信回線３３等の伝送媒体を通じて供給されるコンピュータプログラムは、通信装置３４を通じて受信され、例えば、ＲＡＭ２２又はハードディスク装置２５に格納される。伝送媒体は、有線の伝送媒体に限られず、無線の伝送媒体であってもよい。また、伝送媒体は通信線路のみでなく、通信線路を中継する中継装置、例えばルータも含む。
【００２８】
仮想計算機表示装置１０は、メモリ装置２又はハードディスク装置２５に格納され仮想計算機表示プログラムを、メモリ装置２又はハードディスク装置２５と、プロセッサ１とが協働して実行することにより実現される。
【００２９】
図２は、本発明の実施の形態１における仮想計算機表示装置１０の構成の一例を示す概略図である。本実施の形態では、仮想計算機制御部１００１が制御する仮想計算機として、セキュア仮想計算機１０１（第２の仮想計算機の一例）と非セキュア仮想計算機１０２（第１の仮想計算機の一例）とが存在することを想定する。
【００３０】
セキュア仮想計算機１０１は、何らかのユーザプログラムであり、画面に何らかの画像を描画しようとする一つ又は複数のアプリケーション１０１０を備える。メモリ装置２は、セキュア仮想計算機１０１及び非セキュア仮想計算機１０２が共有して使用できる共有メモリ１０３１と、セキュア仮想計算機１０１のみが使用できる非共有メモリ１０３０とを備えている。共有メモリ１０３１と非共有メモリ１０３０とは、必ずしもメモリチップ或いはメモリデバイスとして物理的に分離させる必要はない。仮想計算機制御部１００１が単一メモリデバイスの特定のメモリ領域に対して、いずれの仮想計算機にアクセス権を付与するか管理することにより、共有メモリ１０３１と非共有メモリ１０３０とを区別すればよい。
【００３１】
アプリケーション１０１０は、画面に描画する画面レイヤのデータを作成するために、表示管理ミドルウェア１０１１を通じて画面レイヤ用の画面バッファを獲得する。そして、アプリケーション１０１０は、描画したい画面データを計算し、獲得した画面バッファに描画する。
【００３２】
表示管理ミドルウェア１０１１は、アプリケーション１０１０から画面バッファの獲得要求を受け付けると、メモリ装置２の非共有メモリ１０３０から画面バッファを獲得し、画面バッファのアドレスをアプリケーション１０１０に渡す。すなわち、表示管理ミドルウェア１０１１は、セキュア仮想計算機１０１の画面レイヤ用に、非セキュア仮想計算機１０２にとってアクセス不可のメモリ領域から画面バッファを獲得する。
【００３３】
また、表示管理ミドルウェア１０１１は、１つ又は複数のアプリケーション１０１０の画面レイヤのサイズに関する情報、画面上の配置に関する情報、各画面レイヤの表示順序に関する情報を管理する。そして、表示管理ミドルウェア１０１１は、管理する画面レイヤの情報を、オペレーティングシステムであるＯＳ１０１２を通じて表示制御ドライバ１０１３に通知する。
【００３４】
非セキュア仮想計算機１０２でもセキュア仮想計算機１０１と同様に、表示管理ミドルウェア１０２１が個々のアプリケーション１０２０が描画する画面レイヤの情報を管理し、表示制御ドライバ１０２３に通知する。ただし、表示管理ミドルウェア１０２１が獲得する画面レイヤ用の画面バッファは、メモリ装置２の共有メモリ１０３１から獲得される。すなわち、非セキュア仮想計算機１０２の画面レイヤ用の画面バッファは、セキュア仮想計算機１０１がアクセス可能なメモリ領域から獲得される。
【００３５】
表示制御ドライバ１０１３及び表示制御ドライバ１０２３は、仮想計算機制御部１００１を通じて連携し、表示合成エンジン１００２を使用し、又はソフトウェア内の処理により、セキュア仮想計算機１０１の画面レイヤと非セキュア仮想計算機１０２の画面レイヤとを合成する。そして、表示制御ドライバ１０１３及び表示制御ドライバ１０２３は、最終的に出力する画面データを表示装置４５に表示できるように制御する。
【００３６】
仮想計算機制御部１００１は、セキュア仮想計算機１０１及び非セキュア仮想計算機１０２を制御するものであり、プロセッサ１の実行権をどの仮想計算機に渡して実行させるかスケジューリングする。また、実デバイスからの割り込み要求を受けて、その割り込みの要因を解析し、どの仮想計算機にその割り込みを配送するか決定する。
【００３７】
仮想計算機制御部１００１は、一般にはバーチャルマシンモニタ（ＶＭＭ）、又はハイパバイザ（Ｈｙｐｅｒ  ｖｉｓｏｒ）と呼ばれるものである。
【００３８】
次に、図３を参照し、セキュア仮想計算機１０１の画面レイヤと非セキュア仮想計算機１０２の画面レイヤとが合成される処理について説明する。図３は、セキュア仮想計算機１０１の画面レイヤと非セキュア仮想計算機１０２の画面レイヤとが合成される処理を示す模式図である。
【００３９】
セキュア仮想計算機１０１は、表示管理ミドルウェア１０１１を通じて非共有メモリ１０３０に画面バッファ１２０１を確保する。そして、セキュア仮想計算機１０１は、確保した画面バッファ１２０１に、アプリケーション１０１０が表示を要求する画面レイヤ１２１１を描画する。
【００４０】
一方、非セキュア仮想計算機１０２は、表示管理ミドルウェア１０２１を通じて共有メモリ１０３１に画面バッファ１２０２を確保する。そして、非セキュア仮想計算機１０２は、確保した画面バッファ１２０２に、アプリケーション１０２０が表示を要求する画面レイヤ１２１２と画面レイヤ１２１３とを描画する。
【００４１】
セキュア仮想計算機１０１の画面レイヤ１２１１と、非セキュア仮想計算機１０２の画面レイヤ１２１２，１２１３とは、１つの表示装置４５に表示するために最終的に画面バッファ１２０３で合成されて表示される。この場合、セキュア仮想計算機１０１の画面レイヤ１２１１と、非セキュア仮想計算機１０２の画面レイヤ１２１２，１２１３とは、それぞれ前面（上層）又は背面（下層）であるかを決める表示順序が設定されている。
【００４２】
例えば、図３では、非セキュア仮想計算機１０２において、画面レイヤ１２１３が最下層であり、画面レイヤ１２１２が最上層である。また、セキュア仮想計算機１０１の画面レイヤ１２１１は、画面レイヤ１２１２と画面レイヤ１２１３との間に入る。そのため、画面バッファ１２０３において、最終的には下から順番に画面レイヤ１２１３、１２１１、１２１２が重ね合わされる。
【００４３】
ここで、セキュア仮想計算機１０１及び非セキュア仮想計算機１０２が、それぞれ管理する画面レイヤを個別に合成する場合を説明する。この場合、セキュア仮想計算機１０１は、表示管理ミドルウェア１０１１が管理する画面レイヤ１２１１を、画面バッファ１２０１に描画する。
【００４４】
また、非セキュア仮想計算機１０２は、表示管理ミドルウェア１０２１が管理する画面レイヤ１２１２，１２１３を、画面バッファ１２０２に描画する。このように、従来では、各仮想計算機の画面レイヤの描画は、各表示制御ドライバにより個別に実施されている。
【００４５】
そして、表示合成エンジン１００２は、合成用の画面バッファ１２０３を確保し、確保した画面バッファ１２０３に、画面バッファ１２０１に描画された画面レイヤ１２１１と、画面バッファ１２０２に描画された画面レイヤ１２１２，１２１３とを描画し、画面レイヤ１２１１〜１２１３を合成する。
【００４６】
このように、従来の構成では、セキュア仮想計算機１０１及び非セキュア仮想計算機１０２は、表示順序の情報を共有せず、個別に画面レイヤを描画していた。そのため、セキュア仮想計算機１０１は、画面レイヤ１２１１の上に非セキュア仮想計算機１０２の画面レイヤ１２１２が存在し、画面レイヤ１２１１の下に非セキュア仮想計算機１０２の画面レイヤ１２１３が存在することを知ることができなかった。また、非セキュア仮想計算機１０２は、画面レイヤ１２１２と画面レイヤ１２１３との間に、セキュア仮想計算機１０１の画面レイヤ１２１１が存在することを知ることができなかった。
【００４７】
また、表示合成エンジン１００２も、最終的に合成すべき画面レイヤの表示順序を知らない。そのため、表示合成エンジン１００２は、画面レイヤ１２１１〜１２１３を正しく合成することができなかった。したがって、従来の構成では、例えば仮想計算機毎に表示順序を設定し、その表示順序にしたがって画面レイヤが合成されていた。例えば、セキュア仮想計算機１０１の表示順序が非セキュア仮想計算機１０２の表示順序よりも上に設定されていたとすると、画面レイヤ１２１２，１２１３の上に画面レイヤ１２１１が描画されるというように、画面レイヤ１２１１を画面レイヤ１２１２と画面レイヤ１２１３との間に描画することができなかった。
【００４８】
そこで、本実施の形態では、非セキュア仮想計算機１０２は、セキュア仮想計算機１０１で画面レイヤ１２１１の発生を検出すると、画面レイヤ１２１１を非セキュア仮想計算機１０２側で管理するためのダミーレイヤ１２１４を生成し、かつ、ダミーレイヤ１２１４の表示順序、表示位置、及び表示サイズ等を管理する画面レイヤ管理情報にダミーレイヤ１２１４を登録する。
【００４９】
そして、セキュア仮想計算機１０１は、ダミーレイヤ１２１４を画面レイヤ１２１１で置き替えて、画面レイヤ管理情報に示される表示順序にしたがって、画面レイヤ１２１１〜１２１３を合成する。これにより、画面レイヤ１２１２と画面レイヤ１２１３との間に画面レイヤ１２１１を位置させることができる。
【００５０】
また、本実施の形態では、非セキュア仮想計算機１０２において画面レイヤの生成及び消失が頻発することを想定している。すなわち、セキュア仮想計算機１０１のアプリケーション１０１０が起動せず、非セキュア仮想計算機１０２のアプリケーション１０２０による画面レイヤの発生が頻発するような状況を想定している。
【００５１】
この場合、セキュア仮想計算機１０１のみで全ての画面レイヤを合成する構成を採用すると、非セキュア仮想計算機１０２で画面レイヤを発生及び消失する都度、非セキュア仮想計算機１０２は、仮想計算機制御部１００１を通じてセキュア仮想計算機１０１に画面レイヤの発生及び消失を通知する必要がある。
【００５２】
つまり、セキュア仮想計算機１０１のみで全ての画面レイヤを合成する構成を採用すると、動作しているのは非セキュア仮想計算機１０２のアプリケーション１０２０だけであるにも関わらず、仮想計算機間で情報の送受が発生し、描画性能が劣化してしまう。
【００５３】
そこで、本実施の形態では、セキュア仮想計算機１０１の画面レイヤが０個の場合、非セキュア仮想計算機１０２側で表示制御を行い、画面レイヤを合成する。一方、セキュア仮想計算機１０１の画面レイヤが少なくとも１つ発生すると表示制御をセキュア仮想計算機１０１に切り替える。
【００５４】
こうすることで、非セキュア仮想計算機１０２のアプリケーション１０２０のみが動作して非セキュア仮想計算機１０２の画面レイヤの発生及び消失が頻発しても、画面レイヤの合成が非セキュア仮想計算機１０２のみで行われるため、非セキュア仮想計算機１０２からセキュア仮想計算機１０１に仮想計算機制御部１００１を通じて画面レイヤの発生及び消失を通知する必要がなくなり、描画性能の劣化を防止することができる。
【００５５】
また、本実施の形態では、非セキュア仮想計算機１０２は、ダミーレイヤが生成されていないときのみ表示制御を行い、ダミーレイヤが１個でも生成すると、表示制御をセキュア仮想計算機１０１に切り替える。
【００５６】
そのため、非セキュア仮想計算機１０２は、共有メモリ１０３１のみにアクセスして画面レイヤの画面データを読み出して画面合成を行うことが可能となり、非セキュア仮想計算機１０２が非共有メモリ１０３０にアクセスすることを防止することができる。
【００５７】
なお、非セキュア仮想計算機１０２において画面レイヤの生成及び消失が頻発する場合として、例えば、スマートフォン等の携帯端末において、非セキュア仮想計算機１０２がアンドロイド（登録商標）等のオープンプラットフォームのＯＳやミドルウェアで構成され、セキュア仮想計算機が非オープンプラットフォームのＯＳやミドルウェアで構成されるような場合が想定される。
【００５８】
図４は、本発明の実施の形態１における仮想計算機表示装置１０の詳細な構成を示すブロック図である。なお、図４において、ダミーレイヤ生成終了部１３０１、ダミーレイヤ登録通知部１３１２、表示レイヤ管理部１３１１、ダミーレイヤ削除通知部１３１３は例えば表示管理ミドルウェア１０２１及びＯＳ１０２２により構成される。また、表示レイヤ管理部１３３２は、例えば、表示管理ミドルウェア１０１１及びＯＳ１０１２により構成される。
【００５９】
ダミーレイヤ生成終了部１３０１（ダミーレイヤ生成部の一例）は、セキュア仮想計算機１０１の画面レイヤが発生した場合、発生した画面レイヤを非セキュア仮想計算機１０２で管理するためのダミーレイヤを生成する。
【００６０】
ここで、ダミーレイヤ生成終了部１３０１は、セキュア仮想計算機１０１及び非セキュア仮想計算機１０２において画面レイヤの発生及び終了の有無を監視している。具体的には、ダミーレイヤ生成終了部１３０１は、アプリケーション１０１０から画面レイヤの発生通知を受け付けた場合、セキュア仮想計算機１０１の画面レイヤが発生したと判断し、発生した画面レイヤを描画するために必要となる画面情報を含むデータをダミーレイヤとして生成し、ダミーレイヤの生成通知をダミーレイヤ登録通知部１３１２に出力する。
【００６１】
また、ダミーレイヤ生成終了部１３０１は、アプリケーション１０２０から画面レイヤの発生通知を受け付けると、非セキュア仮想計算機１０２の画面レイヤが発生したと判断し、画面レイヤの発生通知をダミーレイヤ登録通知部１３１２に出力する。
【００６２】
また、ダミーレイヤ生成終了部１３０１は、アプリケーション１０１０からある画面レイヤの終了通知を受け付けた場合、セキュア仮想計算機１０１の該当する画面レイヤが終了したと判断し、該当する画面レイヤに対応するダミーレイヤの削除依頼をダミーレイヤ削除通知部１３１３に出力する。
【００６３】
また、ダミーレイヤ生成終了部１３０１は、アプリケーション１０２０からある画面レイヤの終了通知を受け付けた場合、非セキュア仮想計算機１０２の該当する画面レイヤが終了したと判断し、該当する画面レイヤの削除依頼を、ダミーレイヤ削除通知部１３１３出力する。
【００６４】
ダミーレイヤ登録通知部１３１２は、ダミーレイヤ生成終了部１３０１からダミーレイヤの生成通知を受け付けると、ダミーレイヤを画面レイヤ管理情報１４４１（図５参照）に登録するように表示レイヤ管理部１３１１に依頼し、ダミーレイヤを画面レイヤ管理情報１４４１に登録させる。また、ダミーレイヤ登録通知部１３１２は、表示メモリ獲得解放部１３２３にダミーレイヤに対応する画面レイヤの画面データを描画するための画面バッファの獲得要求を出力する。
【００６５】
そして、ダミーレイヤ登録通知部１３１２は、表示メモリ獲得解放部１３２３から獲得された画面バッファのアドレスが通知されると、そのアドレスを画面レイヤ管理情報１４４１に登録するように表示レイヤ管理部１３１１に依頼する。この場合、画面バッファは非共有メモリ１０３０に確保される。
【００６６】
なお、表示メモリ獲得解放部１３２３により獲得された画面バッファのアドレスはメモリ管理部１３４３によってセキュア仮想計算機１０１の表示レイヤ管理部１３３２にも通知される。これにより、セキュア仮想計算機１０１はダミーレイヤに対応する画面レイヤを描画する画面バッファを認識し、その画面バッファにダミーレイヤに対応する画面レイヤの画面データを描画する。これにより、セキュア側で画面レイヤが発生する都度、発生した画面レイヤがセキュア仮想計算機１０１により非共有メモリ１０３０に描画される。
【００６７】
また、ダミーレイヤ登録通知部１３１２は、画面レイヤ管理情報１４４１にダミーレイヤが登録されると、表示ドライバ切り替え部１３２２にダミーレイヤの生成通知を出力する。
【００６８】
また、ダミーレイヤ登録通知部１３１２は、ダミーレイヤ生成終了部１３０１から出力された画面レイヤの発生通知を受け付けると、発生した画面レイヤを画面レイヤ管理情報１４４１に登録するように表示レイヤ管理部１３１１に依頼し、発生した画面レイヤを画面レイヤ管理情報１４４１に登録させる。また、ダミーレイヤ登録通知部１３１２は、発生した画面レイヤの画面データを描画するための画面バッファを表示メモリ獲得解放部１３２３に獲得させる。
【００６９】
そして、ダミーレイヤ登録通知部１３１２は、表示メモリ獲得解放部１３２３から獲得された画面バッファのアドレスが通知されると、そのアドレスを画面レイヤ管理情報１４４１に登録するように表示レイヤ管理部１３１１に依頼する。この場合、画面バッファは共有メモリ１０３１に確保される。
【００７０】
そして、非セキュア仮想計算機１０２は、獲得された画面バッファに画面レイヤの画面データを描画する。これにより、非セキュア側で画面レイヤが発生する都度、発生した画面レイヤが、非セキュア仮想計算機１０２により共有メモリ１０３１に描画される。そして、ダミーレイヤ登録通知部１３１２は、表示レイヤ管理部１３１１に画面レイヤが登録されると、表示ドライバ切り替え部１３２２に非セキュア仮想計算機１０２で画面レイヤが発生したことを通知する。
【００７１】
ダミーレイヤ削除通知部１３１３は、ダミーレイヤ生成終了部１３０１から出力されたダミーレイヤの削除依頼を受け付けると、該当するダミーレイヤを画面レイヤ管理情報１４４１から削除するように表示レイヤ管理部１３１１に依頼し、該当するダミーレイヤを画面レイヤ管理情報１４４１から削除させる。そして、ダミーレイヤ削除通知部１３１３は、ダミーレイヤに対応する画面レイヤの画面データを描画するために確保された画面バッファを解放するための解放要求を表示メモリ獲得解放部１３２３に出力する。そして、ダミーレイヤ削除通知部１３１３は、画面レイヤ管理情報１４４１からダミーレイヤが削除されると、ダミーレイヤの削除通知を表示ドライバ切り替え部１３２２に出力する。
【００７２】
また、ダミーレイヤ削除通知部１３１３は、ダミーレイヤ生成終了部１３０１から出力されたある画面レイヤの削除依頼を受け付けると、該当する画面レイヤを画面レイヤ管理情報１４４１から削除するように表示レイヤ管理部１３１１に依頼し、該当する画面レイヤを画面レイヤ管理情報１４４１から削除させる。そして、ダミーレイヤ削除通知部１３１３は、該当する画面レイヤの画面データを描画するために確保された画面バッファを解放するための解放要求を表示メモリ獲得解放部１３２３に出力する。そして、ダミーレイヤ削除通知部１３１３は、画面レイヤ管理情報１４４１から画面レイヤが削除されると、非セキュア仮想計算機１０２の画面レイヤが削除されたことを表示ドライバ切り替え部１３２２に通知する。
【００７３】
表示メモリ獲得解放部１３２３は、ダミーレイヤ登録通知部１３１２から画面バッファの獲得要求を受けると、メモリ管理部１３４３から画面バッファを獲得し、獲得した画面バッファのアドレスをダミーレイヤ登録通知部１３１２に渡す。
【００７４】
ここで、表示メモリ獲得解放部１３２３は、ダミーレイヤ登録通知部１３１２からダミーレイヤに対応する画面レイヤを描画するための画面バッファの獲得要求が出力されると、非共有メモリ１０３０から画面バッファを獲得するようにメモリ管理部１３４３に依頼する。
【００７５】
一方、表示メモリ獲得解放部１３２３は、ダミーレイヤ登録通知部１３１２から非セキュア仮想計算機１０２の画面レイヤを描画するための画面バッファの獲得要求が出力されると、非共有メモリ１０３０から画面バッファを獲得するようにメモリ管理部１３４３に依頼する。
【００７６】
また、表示メモリ獲得解放部１３２３は、ダミーレイヤ削除通知部１３１３から画面バッファの解放要求を受けると、獲得していた画面バッファを解放するようにメモリ管理部１３４３に依頼する。
【００７７】
メモリ管理部１３４３は、表示メモリ獲得解放部１３２３からの画面バッファの獲得が依頼されると、メモリ装置２から画面バッファを獲得し、獲得した画面バッファのアドレスを表示メモリ獲得解放部１３２３に渡す。また、メモリ管理部１３４３は、表示メモリ獲得解放部１３２３から画面バッファの解放が依頼されると、獲得した画面バッファをメモリ装置２に返却する。なお、メモリ管理部１３４３は、非共有メモリ１０３０及び共有メモリ１０３１の両方から画面バッファの獲得及び解放を行うことができる。
【００７８】
表示レイヤ管理部１３１１は、図５に示す画面レイヤ管理情報１４４１を管理する。つまり、表示レイヤ管理部１３１１は、非セキュア仮想計算機１０２で発生する全ての画面レイヤを管理し、かつ、セキュア仮想計算機１０１で発生する画面レイヤはダミーレイヤとして管理する。また、表示レイヤ管理部１３１１は、管理する画面レイヤ及びダミーレイヤの表示位置が変化したり、サイズが拡大又は縮小したりして、画面レイヤ及びダミーレイヤの表示態様が変更されると、その変更が反映されるように画面レイヤ管理情報１４４１を更新する。
【００７９】
なお、非セキュア仮想計算機１０２の画面レイヤの表示態様の変更は、アプリケーション１０２０から通知され、表示レイヤ管理部１３１１は、その通知をダミーレイヤ生成終了部１３０１及びダミーレイヤ登録通知部１３１２を介して取得する。また、ダミーレイヤの表示態様の変更は、アプリケーション１０１０から通知され、表示レイヤ管理部１３１１は、その通知をダミーレイヤ生成終了部１３０１及びダミーレイヤ登録通知部１３１２を介して取得する。
【００８０】
表示ドライバ切り替え部１３２２は、ダミーレイヤが生成されていない場合、セキュア仮想計算機１０１に表示制御を切り替え、ダミーレイヤが少なくとも１つ生成された場合、セキュア仮想計算機１０１に表示制御を切り替える。
【００８１】
具体的には、表示ドライバ切り替え部１３２２は、ダミーレイヤ登録通知部１３１２からダミーレイヤの発生通知を受け付けると、ダミーレイヤの発生数を１カウントアップさせ、ダミーレイヤ登録通知部１３１２からダミーレイヤの削除通知を受け付けるとダミーレイヤの発生数を１カウントダウンする。
【００８２】
そして、表示ドライバ切り替え部１３２２は、ダミーレイヤの発生数が０個から１個に増えると、表示制御をセキュア仮想計算機１０１の表示制御ドライバ１０１３に切り替える切り替え依頼をドライバ切り替え通知部１３４１及び画面データ合成部１３２１に出力し、画面データ合成部１３２１に表示制御を停止させる。これにより、表示制御が非セキュア仮想計算機１０２からセキュア仮想計算機１０１に切り替えられる。そして、表示ドライバ切り替え部１３２２は、表示装置４５等から発生される描画割り込みの配送先を、非セキュア仮想計算機１０２からセキュア仮想計算機１０１に切り替える切り替え依頼を割り込み配送制御部１３４２に出力する。
【００８３】
一方、表示ドライバ切り替え部１３２２は、ダミーレイヤの発生数が０個になると、表示制御を非セキュア仮想計算機１０２に切り替える切り替え依頼を画面データ合成部１３２１及びドライバ切り替え通知部１３４１に出力し、セキュア仮想計算機１０１の表示制御を停止させる。これにより、表示制御がセキュア仮想計算機１０１の表示制御ドライバ１０１３から非セキュア仮想計算機１０２の表示制御ドライバ１０２３に切り替えられる。また、表示ドライバ切り替え部１３２２は、描画割り込みの配送先を、セキュア仮想計算機１０１から非セキュア仮想計算機１０２に切り替える切り替え依頼を割り込み配送制御部１３４２に出力する。
【００８４】
画面データ合成部１３２１（第１の画面データ合成部の一例）は、表示ドライバ切り替え部１３２２から表示制御を非セキュア仮想計算機に切り替える切り替え依頼を受け付けた場合、画面レイヤ管理情報１４４１に基づき、共有メモリ１０３１に保持された各画面レイヤの画面データを用いて、非セキュア仮想計算機１０２の画面レイヤを合成し、合成結果を表示装置４５に表示させる。
【００８５】
ここで、表示合成エンジン１００２が画面レイヤ管理情報１４４１に示された画面レイヤの表示順序や各画面レイヤの表示位置及びサイズを用いた処理が可能であれば、画面データ合成部１３２１は、これらの情報を表示合成エンジン１００２に通知して、表示合成エンジン１００２に画面レイヤを合成させてもよい。この場合、表示合成エンジン１００２は、画面データ合成部１３２１から通知された情報にしたがって、共有メモリ１０３１から各画面レイヤの画面データを読み出し、画面レイヤを合成し、合成結果を表示装置４５に表示させればよい。
【００８６】
また、画面データ合成部１３２１は、表示ドライバ切り替え部１３２２から表示制御を非セキュア仮想計算機１０２に切り替える切り替え依頼を受け付けると、動作モードを合成開始モードに設定する。一方、画面データ合成部１３２１は、表示ドライバ切り替え部１３２２から、表示制御をセキュア仮想計算機１０１に切り替える切り替え依頼を受け付けると動作モードを合成停止モードに設定する。
【００８７】
つまり、画面データ合成部１３２１は、ダミーレイヤの発生数が０個の場合、動作モードを合成開始モードに設定し、ダミーレイヤの発生数が１個以上の場合、動作モードを合成停止モードに設定する。合成開始モードでは、画面データ合成部１３２１は、表示装置４５から描画割り込みが発生する都度、画面レイヤの合成処理を行う。一方、合成停止モードでは、画面データ合成部１３２１は、表示装置４５から描画割り込みが発生しても、画面レイヤの合成処理を行わない。
【００８８】
割り込み配送制御部１３４２は、表示ドライバ切り替え部１３２２によりセキュア仮想計算機１０１に表示制御が切り替えられた場合、描画割り込みが発生すると、その描画割り込みをセキュア仮想計算機１０１に配送して画面データ合成部１３３１に画面レイヤを合成させる。
【００８９】
一方、割り込み配送制御部１３４２は、表示ドライバ切り替え部１３２２により非セキュア仮想計算機１０２に表示制御が切り替えられた場合、描画割り込みが発生するとその描画割り込みを非セキュア仮想計算機１０２に配送し、画面データ合成部１３２１に画面レイヤを合成させる。
【００９０】
具体的には、割り込み配送制御部１３４２は、表示ドライバ切り替え部１３２２から表示制御を非セキュア仮想計算機１０２からセキュア仮想計算機１０１に切り替える切りか依頼を受け付けると、描画割り込みの配送先をセキュア仮想計算機１０１に設定する。この場合、描画割り込みは、画面データ合成部１３３１に配送される。
【００９１】
一方、割り込み配送制御部１３４２は、表示ドライバ切り替え部１３２２から表示制御をセキュア仮想計算機１０１から非セキュア仮想計算機１０２に切り替える切り替え依頼を受け付けると、描画割り込みの配送先を非セキュア仮想計算機１０２に設定する。この場合、描画割り込みは、画面データ合成部１３２１に配送される。
【００９２】
ここで、描画割り込みとしては、例えば、表示装置４５の垂直同期信号（ＶＳＹＮＣ）に基づく割り込みや表示合成エンジン１００２用の画面バッファへの転送完了割り込みなどが挙げられる。なお、垂直同期信号は、表示装置４５のフレーム周期にしたがって発生し、例えば、１／６０ｓ毎に発生する。そのため、描画割り込みは例えば１／６０ｓ毎に発生する。
【００９３】
ドライバ切り替え通知部１３４１は、表示ドライバ切り替え部１３２２により表示制御を非セキュア仮想計算機１０２からセキュア仮想計算機１０１に切り替える切り替え依頼を受け付けた場合、セキュア仮想計算機１０１の画面データ合成部１３３１に画面レイヤを合成するように指示する。
【００９４】
一方、ドライバ切り替え通知部１３４１は、表示ドライバ切り替え部１３２２により表示制御をセキュア仮想計算機１０１から非セキュア仮想計算機１０２に切り替える切り替え依頼を受け付けた場合、画面データ合成部１３３１に画面レイヤの合成を停止するように指示する。
【００９５】
画面データ合成部１３３１は、ドライバ切り替え通知部１３４１によりセキュア仮想計算機１０１で画面レイヤを合成するように指示された場合、画面レイヤ管理情報１４４１を参照し、非共有メモリ１０３０及び共有メモリ１０３１に保持された画面データを読み出し、セキュア仮想計算機１０１及び非セキュア仮想計算機１０２の画面レイヤを合成し、合成結果を表示装置４５に表示させる。
【００９６】
なお、セキュア仮想計算機１０１は、セキュア仮想計算機１０１で発生した画面レイヤのみを管理する画面レイヤ管理情報を保持している。したがって、画面データ合成部１３３１は、セキュア側の画面レイヤ管理情報と画面レイヤ管理情報１４４１とを用いて画面レイヤを合成してもよい。
【００９７】
例えば、画面レイヤ管理情報１４４１において、ダミーレイヤについては、表示順序のみの情報が記述されているような場合を想定する。この場合、ダミーレイヤの表示位置やサイズ等が分からないため、画面データ合成部１３３１は、画面レイヤ管理情報１４４１のみでは画面レイヤを合成することができない。このような場合、画面データ合成部１３３１は、画面レイヤ管理情報１４４１と、セキュア側の画面レイヤ管理情報とを用いて画面レイヤを合成すればよいのである。
【００９８】
ここで、セキュア側の画面レイヤ管理情報としては、例えば、図５に示す画面レイヤ管理情報においてダミーレイヤのレコードのみを抜き出したデータ構造を持っている。つまり、セキュア側の画面レイヤ管理情報は、セキュア側で発生した各画面レイヤの表示順序、表示位置、サイズ、及び画面バッファポインタ等が含まれている。
【００９９】
したがって、画面データ合成部１３３１は、まず、画面レイヤ管理情報１４４１を参照し、ダミーレイヤについては、セキュア側の画面レイヤ管理情報に記載された画面レイヤの情報を参照して画面レイヤを描画すればよい。
【０１００】
例えば、画面レイヤ管理情報１４４１において、２つの非セキュア側の画面レイヤと２つのダミーレイヤとが管理され、セキュア側の画面レイヤ管理情報において、２つのセキュア側の画面レイヤが管理されていたとする。そして、画面レイヤ管理情報１４４１において、非セキュア側の画面レイヤは表示順序が第１層及び第３層であり、ダミーレイヤは表示順序が第２層及び第４層であったとする。
【０１０１】
この場合、画面データ合成部１３３１は、画面レイヤ管理情報１４４１の第２層のダミーレイヤをセキュア側の画面レイヤ管理情報の第１層の画面レイヤで置き替え、画面レイヤ管理情報１４４１の第４層のダミーレイヤをセキュア側の画面レイヤ管理情報の第２層の画面レイヤで置き替えて、画面レイヤを合成すればよい。
【０１０２】
なお、画面データ合成部１３３１は、画面データ合成部１３２１と同様、表示合成エンジン１００２に画面レイヤを合成させても良い。
【０１０３】
表示レイヤ管理部１３３２は、アプリケーション１０１０から画面レイヤの発生通知を受け付けるとセキュア側で画面レイヤが発生したとして、その画面レイヤをセキュア側の画面レイヤ管理情報に登録する。一方、表示レイヤ管理部１３３２は、アプリケーション１０１０からある画面レイヤの終了通知を受け付けると該当する画面レイヤをセキュア側の画面レイヤ管理情報から削除する。
【０１０４】
ここで、セキュア側の画面レイヤ管理情報は、例えば図５に示す画面レイヤ管理情報１４４１からダミーレイヤ情報を取り除いたデータ構造を持っている。なお、セキュア側の画面レイヤ管理情報においてメモリバッファポインタは、ダミーレイヤの生成時にダミーレイヤ登録通知部１３１２により確保された画面バッファのアドレスが採用されている。
【０１０５】
図５（Ｂ）は、表示レイヤ管理部１３１１が管理する画面レイヤ管理情報１４４１の一例を示した図である。図５（Ａ）は図５（Ｂ）に示す画面レイヤ管理情報１４４１において、ダミーレイヤと非セキュア側の画面レイヤとの関係を示した図である。
【０１０６】
図５（Ｂ）に示すように画面レイヤ管理情報１４４１は、１つの画面レイヤに対して１つのレコードが割り当てられた２次元のテーブル形式のデータ構造を持っている。そして、画面レイヤ管理情報１４４１は、表示順序フィールド１４５１、座標フィールド１４５２、サイズフィールド１４５３、メモリバッファポインタフィールド１４５４、及びダミーレイヤ情報フィールド１４５５を備えている。
【０１０７】
表示順序フィールド１４５１は、画面レイヤの表示順序を格納する。座標フィールド１４５２は、画面レイヤを表示画面に配置する際の座標（ｘ，ｙ）を格納する。なお、座標は、画面レイヤの例えば左上の頂点の座標が採用される。
【０１０８】
サイズフィールド１４５３は、画面レイヤのサイズを格納する。本実施の形態では画面レイヤは四角形の形状を持つため、サイズは画面レイヤの横幅を示すｗｉｄｔｈと、高さを示すｈｅｉｈｇｔとによって規定される。
【０１０９】
メモリバッファポインタフィールド１４５４は、画面レイヤの画面データが格納先を示す画面バッファのアドレスを格納する。ダミーレイヤ情報フィールド１４５５は、画面レイヤがダミーレイヤであるかどうかを示すダミーレイヤ情報を格納する。図５（Ｂ）の例では、ダミーレイヤはダミーレイヤ情報として“○”の記号が付され、それ以外の画面レイヤ、つまり、非セキュア側の画面レイヤはダミーレイヤ情報として“×”の記号が付されている。
【０１１０】
図５（Ａ）に示す枠１４３１内の図は、表示装置４５の表示画面１４０１に３つの画面レイヤを合成する処理を示している。図５（Ａ）の例では、表示画面１４０１に３つの画面レイヤ１４１１、１４１２、１４２１が合成されている。この例では、画面レイヤは上から１４１１、１４２１、１４１２の順序で重ね合わされる。したがって、画面レイヤ管理情報１４４１の表示順序１、２、３のレコードには、画面レイヤ１４１１、１４２１、１４１２が登録されている。もちろん、表示順序の番号で管理するのではなく、ポインタのリストによる管理を行っても良い。
【０１１１】
図５（Ｂ）の例で、表示順序が１番目の画面レイヤは、画面ウィンドウ上の座標（１０，１００）の位置にあり、高さ１２０×幅１３０のサイズを持ち、画面データを格納するメモリバッファは０ｘ４１００００００番地に存在し、ダミーレイヤではないことが示されている。
【０１１２】
また、表示順序が２番目の画面レイヤは、ダミーレイヤ情報フィールド１４５５に“○”が格納されており、ダミーレイヤである。この場合、ダミーレイヤに対する座標、サイズ、及びメモリバッファポインタは必須の内容ではない。つまり、画面データ合成部１３３１が画面レイヤ管理情報１４４１のみならず、セキュア側の画面レイヤ管理情報を用いて画面レイヤを合成する形態を採用する場合、画面レイヤ管理情報１４４１においてダミーレイヤのレコードにおいて、座標、サイズ、及びメモリバッファを省略してもよい。
【０１１３】
なお、図５（Ｂ）の例では、ダミーレイヤ情報として、“○”、“×”の記号でダミーレイヤを識別したが、ダミーレイヤの有無を識別できるものであれば、どのような情報を用いても良い。そして、図５（Ｂ）の例では、ダミーレイヤが存在するため、非セキュア仮想計算機１０２の画面データ合成部１３２１ではなく、セキュア仮想計算機１０１の画面データ合成部１３３１が画面レイヤ管理情報１４４１に基づき、画面データ合成部１３３１が画面レイヤを合成する。
【０１１４】
図６は、ダミーレイヤを画面レイヤ管理情報１４４１に登録する際の処理を示すフローチャートである。まず、ダミーレイヤ生成終了部１３０１は、アプリケーション１０１０から画面レイヤの発生通知を受け付けると、セキュア側の画面レイヤが発生したと判断してダミーレイヤを生成し、ダミーレイヤの生成通知をダミーレイヤ登録通知部１３１２に出力する（Ｓ１５０１）。
【０１１５】
次に、ダミーレイヤ登録通知部１３１２は、表示ドライバ切り替え部１３２２にダミーレイヤの生成通知を出力する（Ｓ１５０２）。次に、ダミーレイヤ登録通知部１３１２は、表示レイヤ管理部１３１１にダミーレイヤの生成通知を出力する（Ｓ１５０３）。次に、表示レイヤ管理部１３１１は、ダミーレイヤの表示順序を決定し、ダミーレイヤを画面レイヤ管理情報１４４１に登録する（Ｓ１５０４）。
【０１１６】
本実施の形態では、画面レイヤの表示順序は例えば、最新の画面レイヤが最上層に位置するように設定されるものとする。したがって、表示レイヤ管理部１３１１は、生成されたダミーレイヤの表示順序を１番目に設定する。この場合、表示レイヤ管理部１３１１は、登録済みの他の画面レイヤについては表示順序を各々１つ下層に下げ２番目移行に設定する。つまり、本実施の形態では、画面レイヤの表示順序は生成順に設定されるものとする。
【０１１７】
なお、表示レイヤ管理部１３１１は、非セキュア側の画面レイヤも管理しているため、非セキュア側の画面レイヤが発生すれば、その画面レイヤの表示順序が最上層になる。
【０１１８】
図７は、登録済みのダミーレイヤを画面レイヤ管理情報１４４１から削除する際の処理を示すフローチャートである。
【０１１９】
まず、ダミーレイヤ生成終了部１３０１は、アプリケーション１０１０から、ある画面レイヤの終了通知を受け付けると、当該画面レイヤに対応するダミーレイヤの削除依頼をダミーレイヤ削除通知部１３１３に出力する（Ｓ１６０１）。次に、ダミーレイヤ削除通知部１３１３は、ダミーレイヤの削除通知を表示ドライバ切り替え部１３２２に出力する（Ｓ１６０２）。
【０１２０】
次に、ダミーレイヤ削除通知部１３１３は、表示レイヤ管理部１３１１に該当するダミーレイヤを画面レイヤ管理情報１４４１から削除するように依頼する（Ｓ１６０３）。次に、表示レイヤ管理部１３１１は、該当するダミーレイヤを画面レイヤ管理情報１４４１から削除する（Ｓ１６０４）。
【０１２１】
例えば、ダミーレイヤ生成終了部１３０１は、ダミーレイヤ削除通知部１３１３に削除依頼を出力する際、この削除依頼に削除対象となるダミーレイヤの識別情報を含ませる。そして、その識別情報をダミーレイヤ削除通知部１３１３が表示レイヤ管理部１３１１に通知し、表示レイヤ管理部１３１１がその識別情報により指定されたダミーレイヤを画面レイヤ管理情報１４４１から削除すればよい。
【０１２２】
図８は、表示ドライバ切り替え部１３２２が、ダミーレイヤ登録通知部１３１２からダミーレイヤの生成通知を受け付けた際の処理を示すフローチャートである。表示ドライバ切り替え部１３２２は、ダミーレイヤ登録通知部１３１２からダミーレイヤ生成通知を受け付ける（Ｓ１７０１）。
【０１２３】
次に、表示ドライバ切り替え部１３２２は、内部で管理しているダミーレイヤの発生数が０であるか否かを確認する（Ｓ１７０２）。そして、表示ドライバ切り替え部１３２２は、ダミーレイヤの発生数が０でない場合（Ｓ１７０２でＮｏ）、ダミーレイヤの発生数を１増加させ（Ｓ１７０６）、処理を終了する。一方、表示ドライバ切り替え部１３２２は、ダミーレイヤの発生数が０の場合（Ｓ１７０２でＹｅｓ）、画面データ合成部１３２１に、セキュア仮想計算機１０１に表示制御を切り替える切り替え依頼を出力する（Ｓ１７０３）。
【０１２４】
次に、表示ドライバ切り替え部１３２２は、ドライバ切り替え通知部１３４１に、セキュア仮想計算機１０１に表示制御を切り替える切り替え依頼を出力する（Ｓ１７０４）。次に、表示ドライバ切り替え部１３２２は、描画割り込みの配送先を、セキュア仮想計算機１０１に切り替える切り替え依頼を割り込み配送制御部１３４２に出力する（Ｓ１７０５）。次に、表示ドライバ切り替え部１３２２は、ダミーレイヤの発生数を１増加させ（Ｓ１７０６）、処理を終了する。
【０１２５】
このように、表示ドライバ切り替え部１３２２によってダミーレイヤの発生数が管理され、少なくとも１個のダミーレイヤが発生すると、表示ドライバ切り替え部１３２２によって表示制御が非セキュア仮想計算機１０２からセキュア仮想計算機１０１に切り替えられる。
【０１２６】
図９は、表示ドライバ切り替え部１３２２が、ダミーレイヤ削除通知部１３１３からダミーレイヤの削除通知を受け付けた際の処理を示すフローチャートである。まず、表示ドライバ切り替え部１３２２は、ダミーレイヤ削除通知部１３１３からダミーレイヤ削除通知を受け付ける（Ｓ１８０１）。次に、表示ドライバ切り替え部１３２２は、管理しているダミーレイヤの発生数が、１であるか否かを確認する（Ｓ１８０２）。そして、表示ドライバ切り替え部１３２２は、ダミーレイヤの発生数が１でない場合（Ｓ１８０２でＮｏ）、ダミーレイヤの発生数を１減少させ（Ｓ１８０６）、処理を終了する。一方、表示ドライバ切り替え部１３２２は、ダミーレイヤの発生数が１の場合（Ｓ１８０２でＹｅｓ）、表示制御を非セキュア仮想計算機１０２に切り替える切り替え依頼をドライバ切り替え通知部１３４１に出力する（Ｓ１８０３）。次に、表示ドライバ切り替え部１３２２は、画面データ合成部１３２１に、表示制御を非セキュア仮想計算機１０２に切り替える切り替え依頼を出力する（Ｓ１８０４）。次に、表示ドライバ切り替え部１３２２は、描画割り込みの配送先を、非セキュア仮想計算機１０２に切り替える切り替え依頼を割り込み配送制御部１３４２に出力する（Ｓ１８０５）。次に、表示ドライバ切り替え部１３２２は、ダミーレイヤの発生数を１減少させ（Ｓ１８０６）、処理を終了する。
【０１２７】
これにより、ダミーレイヤの発生数が１個以上であれば、表示制御がセキュア仮想計算機１０１側で行われ、ダミーレイヤの発生数が１個から０個になれば、表示制御がセキュア仮想計算機１０１から非セキュア仮想計算機１０２に切り替えられる。
【０１２８】
図１０は、ドライバ切り替え通知部１３４１が、表示ドライバ切り替え部１３２２から表示制御の切り替え依頼を受け付け付けて、表示制御をセキュア仮想計算機１０１に切り替える際の処理を示すフローチャートである。まず、ドライバ切り替え通知部１３４１は、表示ドライバ切り替え部１３２２から表示制御の切り替え依頼を受け付ける（Ｓ１９０１）。次に、ドライバ切り替え通知部１３４１は、受け付けた切り替え依頼が、表示制御をセキュア仮想計算機１０１に切り替える切り替え依頼であるか否を判定する（Ｓ１９０２）。ここで、切り替え依頼は、表示制御を非セキュア仮想計算機１０２からセキュア仮想計算機１０１に切り替える場合の符号列と、表示制御をセキュア仮想計算機１０１から非セキュア仮想計算機１０２に切り替える場合の符号列とが予め定義されている。したがって、ドライバ切り替え通知部１３４１は、切り替え依頼の符号列が両符号列のうちどちらの符号列に該当するか否かに従って、Ｓ１９０２の判定を行えばよい。
【０１２９】
次に、ドライバ切り替え通知部１３４１は、切り替え依頼が、表示制御をセキュア仮想計算機１０１に切り替える切り替え依頼である場合（Ｓ１９０２でＹｅｓ）、表示レイヤ管理部１３１１から画面データ合成部１３２１を介して画面レイヤ管理情報１４４１を取得し、画面データ合成部１３３１に出力する（Ｓ１９０３）。
【０１３０】
次に、ドライバ切り替え通知部１３４１は、表示制御をセキュア仮想計算機１０１に切り替える切り替え依頼をセキュア仮想計算機１０１の画面データ合成部１３３１に出力する（Ｓ１９０４）。
【０１３１】
次に、ドライバ切り替え通知部１３４１は、セキュア仮想計算機１０１の画面データ合成部１３３１に画面レイヤの合成処理を開始するように指示する（Ｓ１９０５）。
【０１３２】
一方、ドライバ切り替え通知部１３４１は、切り替え依頼が表示制御を非セキュア仮想計算機１０２に切り替える切り替え依頼である場合（Ｓ１９０２でＮｏ）、表示制御を非セキュア仮想計算機１０２に切り替える切り替え依頼をセキュア仮想計算機１０１の画面データ合成部１３３１に出力する（Ｓ１９０６）。
【０１３３】
次に、ドライバ切り替え通知部１３４１は、セキュア仮想計算機１０１の画面データ合成部１３３１に画面レイヤの合成を停止するように指示し（Ｓ１９０７）、処理を終了する。
【０１３４】
図１１は、割り込み配送制御部１３４２が描画割り込みを受け付けて、各仮想計算機に描画割り込みを配送する際の処理を示すフローチャートである。まず、割り込み配送制御部１３４２は、表示装置４５から描画割り込みを受け付ける（Ｓ２００１）。次に、割り込み配送制御部１３４２は、現在の割り込みの配送先がセキュア仮想計算機１０１に設定されているか否かを判定する（Ｓ２００２）。この場合、割り込み配送制御部１３４２は、図９のＳ１８０５の処理により表示ドライバ切り替え部１３２２から割り込みの配送先を非セキュア仮想計算機１０２に切り替える切り替え依頼を受け付けた場合は、割り込みの配送先が非セキュア仮想計算機１０２に設定されていると判定する。一方、割り込み配送制御部１３４２は、図８のＳ１７０５の処理により表示ドライバ切り替え部１３２２から割り込みの配送先をセキュア仮想計算機１０１に切り替える切り替え依頼を受け付けた場合は、割り込みの配送先がセキュア仮想計算機１０１に設定されていると判定すればよい。
【０１３５】
そして、割り込み配送制御部１３４２は、割り込みの配送先がセキュア仮想計算機１０１に設定されている場合（Ｓ２００２でＹｅｓ）、Ｓ２００１で受け付けた描画割り込みのセキュア仮想計算機１０１における割り込み番号を求める（Ｓ２００３）。
【０１３６】
ここで、割り込み配送制御部１３４２は、割り込みの種類毎に、非セキュア仮想計算機１０２で管理する割り込み番号とセキュア仮想計算機１０１で管理する割り込み番号とが対応付けられた割り込みベクタテーブルを予め保持している。したがって、割り込み配送制御部１３４２は、この割り込みベクタテーブルを参照して、セキュア仮想計算機１０１の描画割り込みの割り込み番号を求めればよい。
【０１３７】
次に、割り込み配送制御部１３４２は、求めた割り込み番号を、セキュア仮想計算機１０１の画面データ合成部１３３１に通知する（Ｓ２００４）。次に、画面データ合成部１３３１は、通知された割り込み番号に従って描画割り込み用の処理プログラムを読み出して描画割り込みの処理を行う（Ｓ２００５）。この描画割り込みの処理により、画面データ合成部１３３１は、非セキュア側の画面レイヤとセキュア側の画面レイヤとを合成する。
【０１３８】
一方、割り込みの配送先がセキュア仮想計算機１０１ではなく非セキュア仮想計算機１０２であった場合（Ｓ２００２でＮｏ）、割り込み配送制御部１３４２は、Ｓ２００２で受け付けた描画割り込みの非セキュア仮想計算機１０２における割り込み番号を求める（Ｓ２００６）。次に、割り込み配送制御部１３４２は、求めた割り込み番号を非セキュア仮想計算機１０２の画面データ合成部１３２１に通知する（Ｓ２００７）。
【０１３９】
次に、非セキュア仮想計算機１０２の画面データ合成部１３２１は、通知された割り込み番号にしたがって描画割り込み用の処理プログラムを読み出して描画割り込みの処理を行う（Ｓ２００８）。この場合、画面データ合成部１３２１は、非セキュア側の画面レイヤを合成する処理を行う。
【０１４０】
本フローチャートでは、描画割り込みとしては、１フレーム周期が経過する毎に表示装置４５によって発生される垂直同期信号に基づく割り込み（ＶＳＹＮＣ割り込み）を想定している。したがって、図１１に示すフローチャートは、フレーム周期が経過する毎に実行される。つまり、割り込み配送制御部１３４２は、ＶＳＹＮＣ割り込みが発生する都度、現在の描画割り込みの配送先がセキュア側であるか非セキュア側であるかを判定し、セキュア側であれば画面データ合成部１３３１に描画割り込みを配送し、非セキュア側であれば画面データ合成部１３２１に描画割り込みを配送する。これにより、フレーム周期が経過する毎に表示装置４５に表示される画面が更新される。
【０１４１】
図１２は、画面データ合成部１３２１が、表示ドライバ切り替え部１３２２から表示制御の切り替え依頼を受け付けた際の処理を示すフローチャートである。まず、画面データ合成部１３２１は、表示ドライバ切り替え部１３２２から表示制御の切り替え依頼を受け付ける（Ｓ２１０１）。次に、画面データ合成部１３２１は、受け付けた切り替え依頼が、表示制御を非セキュア仮想計算機１０２からセキュア仮想計算機１０１に切り替える切り替え依頼であるか否かを判定する（Ｓ２１０２）。ここで、切り替え依頼は、表示制御を非セキュア仮想計算機１０２からセキュア仮想計算機１０１に切り替える場合の符号列と、表示制御をセキュア仮想計算機１０１から非セキュア仮想計算機１０２に切り替える場合の符号列とが予め定義されている。したがって、画面データ合成部１３２１は、切り替え依頼の符号列が両符号列のうちどちらの符号列に該当するか否かに従って、Ｓ２１０２の判定を行えばよい。
【０１４２】
そして、画面データ合成部１３２１は、セキュア仮想計算機１０１への切り替え依頼であると判定した場合（Ｓ２１０２でＹｅｓ）、画面合成を停止し、合成停止モードに設定する（Ｓ２１０３）。次に、画面データ合成部１３２１は、表示レイヤ管理部１３１１から画面レイヤ管理情報１４４１を取得し、ドライバ切り替え通知部１３４１に出力する（Ｓ２１０４）。
【０１４３】
一方、画面データ合成部１３２１は、切り替え依頼が、セキュア仮想計算機１０１への切り替え依頼でないと判定した場合（Ｓ２１０２でＮｏ）、画面合成を再開し、合成開始モードに設定する（Ｓ２１０５）。
【０１４４】
このように、画面データ合成部１３２１は、セキュア仮想計算機１０１に表示制御を切り替える切り替え依頼を受け付けると、合成停止モードに設定して画面レイヤ管理情報１４４１をドライバ切り替え通知部１３４１を介して画面データ合成部１３３１に出力し、画面データ合成部１３３１に画面合成を行わせる。一方、画面データ合成部１３２１は、非セキュア仮想計算機１０２に表示制御を切り替える切り替え依頼を受け付けた場合、合成開始モードに設定し、画面合成を行う。
【０１４５】
図１３は、画面データ合成部１３２１が、割り込み配送制御部１３４２から描画割り込みを受け付けて画面レイヤを合成する際の処理を示すフローチャートである。まず、画面データ合成部１３２１は、割り込み配送制御部１３４２から描画割り込みを受ける（Ｓ２２０１）。
【０１４６】
次に、画面データ合成部１３２１は、自己の状態が合成開始モードであるか否かを判定する（Ｓ２２０２）。ここで、画面データ合成部１３２１は、自己の状態が合成開始モードであるか否かを示すフラグを管理し、そのフラグに基づいて判定すればよい。例えば、フラグに１が設定され、フラグが立っている場合、画面データ合成部１３２１は合成開始モードであると判定し、フラグに０が設定され、フラグが倒れている場合、画面データ合成部１３２１は、合成停止モードであると判定すればよい。
【０１４７】
そして、画面データ合成部１３２１は、自己の状態が合成開始モードである場合（Ｓ２２０２でＹｅｓ）、表示レイヤ管理部１３１１から画面レイヤ管理情報１４４１を取得し、画面レイヤを合成する（Ｓ２２０３）。この場合、画面データ合成部１３２１は、共有メモリ１０３１に保持された非セキュア仮想計算機１０２の画面レイヤの画面データを読み出し、画面レイヤ管理情報１４４１に規定された表示順序にしたがって画面レイヤを合成すればよい。
【０１４８】
一方、画面データ合成部１３２１は、自己の状態が合成停止モードである場合（Ｓ２２０２でＮｏ）、何もせず終了する。
【０１４９】
このように、画面データ合成部１３２１は、描画割り込みを受け付けた際、自己の状態が合成開始モードであれば画面レイヤを合成し、自己の状態が合成停止モードであれば、画面レイヤを合成しない。
【０１５０】
なお、図１３では、画面データ合成部１３２１は、描画割り込みをトリガーとして動作する例を示したが、描画割り込みとは非同期で動作してもよい。具体的には、描画割り込みの発生を待たずに、描画要求が発生した時点に画面合成を行ってもよい。描画要求が発生する時点としては、例えば、非セキュア仮想計算機１０２において新たな画面レイヤが発生した場合、既にある画面レイヤの表示位置が変更された場合、既にある画面レイヤのサイズが変更された場合等が該当する。また、画面データ合成部１３２１は、描画割り込みが発生した時点に加えて描画要求が発生した時点において画面レイヤを合成してもよい。
【０１５１】
図１４は、セキュア仮想計算機１０１の画面データ合成部１３３１が、ドライバ切り替え通知部１３４１から表示制御の切り替え依頼を受け付けた際の処理を示すフローチャートである。まず、画面データ合成部１３３１は、ドライバ切り替え通知部１３４１から表示制御の切り替え依頼を受け付ける（Ｓ２３０１）。次に、画面データ合成部１３３１は、受け付けた切り替え依頼が非セキュア仮想計算機１０２に表示制御を切り替える切り替え依頼であるか否かを判定する（Ｓ２３０２）。ここで、切り替え依頼は、表示制御を非セキュア仮想計算機１０２からセキュア仮想計算機１０１に切り替える場合の符号列と、表示制御をセキュア仮想計算機１０１から非セキュア仮想計算機１０２に切り替える場合の符号列とが予め定義されている。したがって、画面データ合成部１３３１は、切り替え依頼の符号列が両符号列のうちどちらの符号列に該当するか否かに従って、Ｓ２３０２の判定を行えばよい。
【０１５２】
そして、画面データ合成部１３３１は、切り替え依頼が表示制御を非セキュア仮想計算機１０２に切り替える切り替え依頼である場合（Ｓ２３０２でＹｅｓ）、画面合成を停止し、自己の状態を合成停止モードに設定する（Ｓ２３０３）。
【０１５３】
一方、画面データ合成部１３３１は、切り替え依頼が表示制御をセキュア仮想計算機１０１に切り替える切り替え依頼である場合（Ｓ２３０２でＮｏ）、画面合成を停止し、合成停止モードに設定する（Ｓ２３０４）。
【０１５４】
図１５は、画面データ合成部１３３１が、割り込み配送制御部１３４２から描画割り込みを受け付けた際の処理を示すフローチャートである。まず、画面データ合成部１３３１は、割り込み配送制御部１３４２から表示装置４５からの描画割り込みを受け付ける（Ｓ２４０１）。
【０１５５】
次に、画面データ合成部１３３１は、自己の状態が合成開始モードであるか否かを判定する（Ｓ２４０２）。この場合、画面データ合成部１３３１は、自己の状態が合成開始モードであるか否かを示す情報をフラグとして管理し、そのフラグに基づいて自己の状態が合成開始モードであるか否かを判定すればよい。
【０１５６】
そして、画面データ合成部１３３１は、合成開始モードである場合（Ｓ２４０２でＹｅｓ）、ドライバ切り替え通知部１３４１から画面レイヤ管理情報１４４１を取得する（Ｓ２４０３）。
【０１５７】
次に、画面データ合成部１３３１は、取得した画面レイヤ管理情報１４４１により管理されている各ダミーレイヤをセキュア仮想計算機１０１の画面レイヤで対応付ける（Ｓ２４０４）。この場合、画面データ合成部１３３１は、表示レイヤ管理部１３３２からセキュア仮想計算機１０１の画面レイヤ管理情報を取得し、取得した画面レイヤ管理情報に規定される各画面レイヤの表示順序と、画面レイヤ管理情報１４４１に規定された各ダミーレイヤの表示順序とを照らし合わせ、各ダミーレイヤに対応するセキュア仮想計算機１０１の画面レイヤを特定すればよい。
【０１５８】
次に、画面データ合成部１３３１は、非セキュア仮想計算機１０２の画面レイヤとセキュア仮想計算機１０１の画面レイヤとを合成する（Ｓ２４０５）。
【０１５９】
この場合、画面データ合成部１３３１は、Ｓ２４０４でダミーレイヤに対応づけたセキュア仮想計算機１０１の画面レイヤの画面データを非共有メモリ１０３０から読み出し、かつ、非セキュア仮想計算機１０２の画面レイヤの画面データを共有メモリ１０３１から読み出し、読み出した画面データを画面レイヤ管理情報１４４１に規定された表示順序にしたがって合成する（Ｓ２４０５）。
【０１６０】
なお、図１５では、画面データ合成部１３３１は、表示装置４５からの描画割り込みをトリガーとして画面レイヤを合成する例を示したが、描画割り込みとは非同期的に動作してもよい。具体的には、描画割り込みを待たずに、描画要求が発生する時点に、画面データを合成するようにしてもよい。描画要求が発生する時点としては、セキュア仮想計算機１０１及び非セキュア仮想計算機１０２において新たな画面レイヤが発生した場合、既にある画面レイヤの表示位置が変更された場合、既にある画面レイヤのサイズが変更された場合等が該当する。また、画面データ合成部１３３１は、描画割り込みが発生した時点に加えて描画要求が発生した時点において画面レイヤを合成してもよい。
【０１６１】
以上の動作により、仮想計算機表示装置１０は、セキュア仮想計算機１０１の画面レイヤに非セキュア仮想計算機１０２がアクセスすることを防止し、かつ、セキュア仮想計算機１０１と非セキュア仮想計算機１０２との切り替え処理を軽減しながら、セキュア仮想計算機１０１及び非セキュア仮想計算機１０２が出力する異なる画面レイヤを表示順序に従って合成することが可能になる。
【０１６２】
（実施の形態２）
実施の形態１の仮想計算機表示装置１０において、セキュア仮想計算機１０１の画面が表示装置４５に表示されている状態で、セキュア仮想計算機１０１の画面に何らかの変更が加えられた場合、セキュア仮想計算機１０１の画面データ合成部１３３１は、再度画面レイヤを合成し、画面を作成しなければならない。画面に対する何らかの変更とは、典型的には、ウィンドウサイズを拡大及び縮小させたり、表示している画面を更新したり、画面レイヤにぼかしや暗くする効果を付けたり、画面レイヤを回転させたりすることが考えられる。
【０１６３】
このような場合、画面データ合成部１３３１は、セキュア仮想計算機１０１の画面更新が発生する度に、非セキュア仮想計算機１０２の画面レイヤを含め、毎回全ての画面レイヤを合成することになる。
【０１６４】
これでは、画面データ合成部１３３１の処理負担及び処理時間が大きくなってしまう。そこで、画面データ合成部１３２１で非セキュア仮想計算機１０２の画面レイヤを予め合成させておき、その合成結果を利用して画面データ合成部１３３１にセキュア仮想計算機１０１の残りの画面レイヤを合成させることが好ましい。
【０１６５】
しかしながら、画面データが透過度（α値）の情報を持っており、半透過の画面を描画する場合、非セキュア仮想計算機１０２は共有メモリ１０３１へのアクセスが禁止されているため、セキュア仮想計算機１０１の画面レイヤのα値を知ることができない。
【０１６６】
そのため、例えば非セキュア側の画面レイヤとセキュア側の画面レイヤとが交互積層されるような場合、画面データ合成部１３２１側で非セキュア側の全ての画面レイヤを予め合成させてしまうと、画面データ合成部１３３１は、各画面レイヤが持つα値に従って半透過の画面を再現することができなくなってしまう。
【０１６７】
そこで、実施の形態２では、画面データ合成部１３３１が各画面レイヤの持つα値に従って半透過の画像を再現することができるように画面データ合成部１３２１側で予め合成できる画面レイヤを特定し、特定した画面レイヤを画面データ合成部１３２１側で予め合成させ、その合成結果を利用して画面データ合成部１３３１に残りの画面レイヤを合成させる。
【０１６８】
これにより、セキュア仮想計算機１０１の画面レイヤが更新された場合の画面データ合成部１３３１の処理負担を軽減することができる。
【０１６９】
図１６は、本発明の実施の形態２による仮想計算機表示装置１０の詳細な構成を示すブロック図である。図１６において、図４と同じ構成要素については同じ符号を用い、説明を省略する。
【０１７０】
実施の形態２の仮想計算機表示装置１０では、実施の形態１に対して上層下層判定部２５５１及び下層画面合成部２５５２を更に備えている。
【０１７１】
図１７は、画面データ合成部２５２１が表示ドライバ切り替え部１３２２から表示ドライバの切り替え依頼を受け付けた際の処理を示すフローチャートである。まず、画面データ合成部２５２１は、表示ドライバ切り替え部１３２２から表示制御の切り替え依頼を受け付ける（Ｓ２６０１）。次に、画面データ合成部２５２１は、この切り替え依頼が表示制御をセキュア仮想計算機１０１に切り替える切り替え依頼であるか否かを判定する（Ｓ２６０２）。この判定処理は実施の形態１と同様である。
【０１７２】
そして、画面データ合成部１３２１は、表示制御をセキュア仮想計算機１０１に切り替える切り替え依頼である場合（Ｓ２６０２でＹｅｓ）、画面合成を停止し、自己の状態を合成停止モードに設定する（Ｓ２６０３）。次に、画面データ合成部２５２１は、表示レイヤ管理部１３１１から画面レイヤ管理情報１４４１を取得し、上層下層判定部２５５１に出力する（Ｓ２６０４）。
【０１７３】
一方、画面データ合成部２５２１は、表示制御をセキュア仮想計算機１０１に切り替える切り替え依頼でない場合（Ｓ２６０２でＮｏ）、画面合成を再開し、自己の状態を合成開始モードに設定する（Ｓ２６０５）。
【０１７４】
図１８は、上層下層判定部２５５１が、画面データ合成部２５２１から画面レイヤ管理情報を取得し、予め合成可能な画面レイヤを特定する際の処理を示すフローチャートである。
【０１７５】
まず、上層下層判定部２５５１は、取得した画面レイヤ管理情報のうち、最下層の画面レイヤから順番に注目画面レイヤを特定する（Ｓ２７０１）。次に、上層下層判定部２５５１は、注目画面レイヤがダミーレイヤであるか否かを判定する（Ｓ２７０２）。そして、上層下層判定部２５５１は、注目画面レイヤがダミーレイヤではない場合（Ｓ２７０２でＮｏ）、注目画面レイヤを予め合成可能な画面レイヤとし、注目画面レイヤの情報を下層画面合成部２５５２に通知し（Ｓ２７０３）、Ｓ２７０１に戻る。以上の処理により、ダミーレイヤの下層に配置された画面レイヤが予め合成可能な画面レイヤとして特定される。
【０１７６】
ここで、画面レイヤの情報としては、例えば図５に示す表示順序、座標、及びサイズメモリバッファポインタが含まれる。
【０１７７】
一方、上層下層判定部２５５１は、注目画面レイヤがダミーレイヤである場合（Ｓ２７０２でＹｅｓ）、画面レイヤ管理情報１４４１を参照し、次の画面レイヤを注目画面レイヤとして特定する（Ｓ２７０４）。ここで、次の画面レイヤとは、注目画面レイヤよりも表示順序が１つ上の層の画面レイヤを指す。
【０１７８】
次に、上層下層判定部２５５１は、次の画面レイヤが取得できたか、すなわち、未特定の画面レイヤが残っているか否かを確認する（Ｓ２７０５）。
【０１７９】
そして、上層下層判定部２５５１は、次の画面レイヤが特定できなかった場合（Ｓ２７０５でＮｏ）、つまり、画面レイヤ管理情報１４４１により管理されている画面レイヤのうち最上層の画面レイヤが注目画面レイヤとして特定済みである場合、画面レイヤ管理情報１４４１を下層画面合成部２５５２に通知し（Ｓ２７０９）、処理を終了する。
【０１８０】
一方、上層下層判定部２５５１は、次の画面レイヤを特定できた場合（Ｓ２７０５でＹｅｓ）、注目画面レイヤが、ダミーレイヤとダミーレイヤに重なる非セキュア仮想計算機１０２の他の画面レイヤとの和集合領域と重なるか否かを判定する（Ｓ２７０６）。
【０１８１】
図２０は、和集合領域の説明図であり、（Ａ）は鳥瞰図であり、（Ｂ）は上面視からの図である。図２０（Ａ）の例では、最下層に非セキュア側の画面レイヤ２０１１が配置され、その上にダミーレイヤ２００１が配置され、その上に注目画面レイヤ２０１２が配置されている。
【０１８２】
この場合、和集合領域２０００は、図２０（Ｂ）に示すように画面レイヤ２０１１とダミーレイヤ２００１との和からなる領域となる。したがって、注目画面レイヤ２０１２の４つの頂点Ｐ１〜Ｐ４のうち少なくとも１つが和集合領域２０００に包含される場合、注目画面レイヤ２０１２は和集合領域２０００に重なると判定される。一方、注目画面レイヤ２０１２の全ての頂点Ｐ１〜Ｐ４が和集合領域２０００に包含されない場合、注目画面レイヤ２０１２は和集合領域２０００に重ならないと判定される。
【０１８３】
図１８に戻り、上層下層判定部２５５１は、注目画面レイヤが和集合領域と重ならない場合（Ｓ２７０６でＮｏ）、注目画面レイヤを合成可能な画面レイヤとし、注目画面レイヤの情報を下層画面合成部２５５２に通知し（Ｓ２７０７）、Ｓ２７０４に戻る。
【０１８４】
一方、上層下層判定部２５５１は、注目画面レイヤが、和集合領域と重なる場合（Ｓ２７０６でＹｅｓ）、注目画面レイヤと和集合領域との和を新たな和集合領域とし、和集合領域を更新し（Ｓ２７０８）、Ｓ２７０４に戻る。更新後の和集合領域がＳ２７０６の次の判定に用いられる。
【０１８５】
図１９は、下層画面合成部２５５２が、非セキュア仮想計算機１０２で合成可能な画面を予め合成する処理を示すフローチャートである。下層画面合成部２５５２は、上層下層判定部２５５１により予め合成可能と判定された画面レイヤの情報を取得する（Ｓ２８０１）。
【０１８６】
下層画面合成部２５５２は、取得した画面レイヤの情報に従って予め合成可能な画面レイヤを合成する（Ｓ２８０２）。この場合、下層画面合成部２５５２は、表示合成エンジン１００２に画面レイヤを合成させてもよい。
【０１８７】
次に、下層画面合成部２５５２は、合成した後の画面レイヤを一つの画面レイヤとし、この一つの画面レイヤに対する情報を生成する（Ｓ２８０３）。この場合、画面レイヤの情報としては、例えば図５に示すような座標、サイズ、及びメモリバッファポインタが含まれる。
【０１８８】
次に、下層画面合成部２５５２は、Ｓ２８０３で生成した画面レイヤの情報と、画面レイヤ管理情報１４４１に規定された画面レイヤのうち画面合成が未完了の画面レイヤの情報とを、ドライバ切り替え通知部１３４１に出力する（Ｓ２８０４）。
【０１８９】
なお、図１７、図１８及び図１９のフローチャートにおいて、画面レイヤ管理情報１４４１を画面データ合成部２５２１、上層下層判定部２５５１及び下層画面合成部２５５２間で受け渡す構成を採用したが、何らかの仕組みで共有させるようにしてもよい。例えば、共有メモリ１０３１に上層下層判定部２５５１及び下層画面合成部２５５２がアクセス可能な領域を設定し、その領域に画面レイヤ管理情報１４４１を格納し、上層下層判定部２５５１及び下層画面合成部２５５２が画面レイヤ管理情報１４４１にアクセスするようにしてもよい。
【０１９０】
図２１は、下層画面合成部２５５２が予め合成する画面レイヤを示した図である。図２１の例では、最下層から順番に非セキュア側の画面レイヤ２１１１，２１１２が積層され、その上にダミーレイヤ２１０１が積層され、その上に非セキュア側の画面レイヤ２１１３，２１１４が積層されている。
【０１９１】
ここで、画面レイヤ２１１１，２１１２はダミーレイヤ２１０１と重なっているが、ダミーレイヤ２１０１の下層に位置しているため、予め合成可能な画面レイヤとして特定される。
【０１９２】
また、画面レイヤ２１１３，２１１４はダミーレイヤ２１０１よりも上層に位置しているが、ダミーレイヤ２１０１及びダミーレイヤ２１０１に重なる画面レイヤ２１１１，２１１２と重なっていないため、予め合成可能な画面レイヤとして特定される。
【０１９３】
そして、下層画面合成部２５５２は、画面レイヤ２１１１，２１１２，２１１３，２１１４を一つの画面レイヤとして予め合成し、合成後の画面レイヤの画面データを共有メモリ１０３１に書き込む。そして、下層画面合成部２５５２は、予め合成した画面レイヤの情報をドライバ切り替え通知部１３４１に通知する。
【０１９４】
一方、画面データ合成部１３３１は、ドライバ切り替え通知部１３４１から予め合成された画面レイヤの情報を取得し、取得した画面レイヤの情報から予め合成された画面レイヤの画面データを共有メモリ１０３１から読み出す。そして、画面データ合成部１３３１は、予め合成された画面レイヤを最下層とし、セキュア仮想計算機１０１の画面レイヤ管理情報を用いて、予め合成された画面レイヤにセキュア側の画面レイヤを合成する。
【０１９５】
したがって、各画面レイヤが透過度を持つ場合であっても、画面データ合成部１３３１は、各画面レイヤの透過度に従った半透過の画面を再現することができる。
【０１９６】
このように、実施の形態２では、画面データ合成部１３３１が画面の合成を開始する前に、セキュア仮想計算機１０１の画面レイヤの更新に依存しない画面レイヤの合成を予め完了させることができる。そのため、実施の形態１の効果が得られることに加え、セキュア仮想計算機１０１の画面データ合成部１３３１の処理負荷及び処理時間を最小限にすることができる。
【０１９７】
なお、本発明の実施の形態１を示す図４の各機能ブロック及び本発明の実施の形態２を示す図１６の各機能ブロックは、典型的にはプロセッサと外部メモリとの協同で処理されるプログラムとして実現される。しかしながら、これらの機能ブロックは、集積回路であるＬＳＩで構成してもよい。また、これらの機能ブロックは個別に１チップ化されても良いし、一部又は全てを含むように１チップ化されても良い。ここでは、ＬＳＩとしたが、集積度の違いにより、ＩＣ、システムＬＳＩ、スーパーＬＳＩ、ウルトラＬＳＩと呼称されることもある。
【０１９８】
また、集積回路化の手法はＬＳＩに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）や、ＬＳＩ内部の回路セルの接続や設定を再構成可能なリコンフィギュラブル・プロセッサを利用しても良い。
【０１９９】
さらには、半導体技術の進歩又は派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。
【０２００】
本発明はプロセッサとメモリ装置を備えた情報処理システムであれば、あらゆる電子機器、情報機器、ＡＶ機器、通信機器、及び家電機器にも適用可能であり、例えば、ＰＣ（パーソナルコンピュータ）、携帯電話、スマートフォンやＰＤＡ等の携帯情報端末、テレビ、ハーディスクレコーダー、ＤＶＤやブルーレイ等の各種ディスクレコーダーや各種ディスクプレイヤー、及びカーナビゲーションシステム等にも応用できることは、容易に想像できる。
【０２０１】
なお、前述の説明はあらゆる点において本発明の例示に過ぎず、その範囲を限定しようとするものではない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。
【０２０２】
上述の仮想計算機表示装置の技術的特徴は下記のようにまとめることができる。
【０２０３】
（１）上述の仮想計算機表示装置は、第１の仮想計算機と、第２の仮想計算機と、前記第１、第２の仮想計算機を制御する仮想計算機制御部と、前記第１の仮想計算機の画面レイヤの画面データを保持する第１メモリと、前記第２仮想計算機の画面レイヤの画面データを保持する第２メモリとを備え、前記第１、第２の仮想計算機の画面レイヤを合成し、表示デバイスに表示する仮想計算機表示装置であって、前記第１の仮想計算機は、前記第２の仮想計算機の画面レイヤが発生した場合、発生した画面レイヤを前記第１の仮想計算機で管理するためのダミーレイヤを生成するダミーレイヤ生成部と、前記第１の仮想計算機の画面レイヤと前記ダミーレイヤとの少なくとも表示順序を含む画面レイヤ管理情報を管理する表示レイヤ管理部と、前記ダミーレイヤが生成されていない場合、前記第１の仮想計算機に表示制御を切り替え、前記ダミーレイヤが少なくとも１つ生成された場合、前記第２の仮想計算機に表示制御を切り替える表示ドライバ切り替え部と、前記表示ドライバ切り替え部により前記第１の仮想計算機に表示制御が切り替えられた場合、前記画面レイヤ管理情報に基づき、前記第１メモリに保持された画面データを用いて、第１の仮想計算機の画面レイヤを合成する第１の画面データ合成部とを備え、前記仮想計算機制御部は、前記表示ドライバ切り替え部により前記第２の仮想計算機に表示制御が切り替えられた場合、前記第２の仮想計算機に画面レイヤを合成するように指示するドライバ切り替え通知部を備え、前記第２の仮想計算機は、前記ドライバ切り替え通知部により前記第２の仮想計算機に画面レイヤを合成するように指示された場合、前記画面レイヤ管理情報に基づき、前記第１、第２メモリに保持された画面データを用いて、第１、第２の仮想計算機の画面レイヤを合成する第２の画面データ合成部とを備える。
【０２０４】
この構成によれば、ダミーレイヤが０個、つまり、第２の仮想計算機の画面レイヤが発生していない場合、第１の仮想計算機により表示制御が行われ、全ての画面レイヤが第１の仮想計算機によって合成される。
【０２０５】
そのため、第１の仮想計算機の画面レイヤの発生及び消失が頻発しても、第２の仮想計算機の画面レイヤが発生していなければ、画面レイヤの合成が第１の仮想計算機のみで行われるため、第１の仮想計算機から第２の仮想計算機に仮想計算機制御部を通じて画面レイヤの発生及び消失を通知する必要がなくなり、描画性能の劣化を防止することができる。
【０２０６】
また、第１の仮想計算機は、ダミーレイヤが生成されていないときのみ表示制御を行い、ダミーレイヤが１個でも生成されると、表示制御を第２の仮想計算機に切り替える。
【０２０７】
そのため、第１のセキュア仮想計算機は、第１メモリのみにアクセスして画面レイヤの画面データを読み出して画面合成を行うことが可能となる。その結果、第１の仮想計算機が第２メモリにアクセスすることを防止することができる。
【０２０８】
一方、ダミーレイヤが１個でも生成されると、表示制御が第１の仮想計算機から第２の仮想計算機に切り替えられる。そして、第２の仮想計算機は、画面レイヤ管理情報を参照し、ダミーレイヤを第２の仮想計算機の画面レイヤで置き替えて、画面レイヤ管理情報に示される表示順序にしたがって、画面レイヤを合成する。これにより、第１、第２の画面レイヤを正しい表示順序で積層させることができる。
【０２０９】
（２）前記ダミーレイヤ生成部は、前記第２の仮想計算機の画面レイヤが消失した場合、消失した画面レイヤに対応するダミーレイヤが削除されるように、前記表示レイヤ管理部に前記画面レイヤ管理情報を更新させることが好ましい。
【０２１０】
この構成によれば、第２の仮想計算機の画面レイヤが消失した場合、その消失に連動させて消失した画面レイヤに対応するダミーレイヤを画面レイヤ管理情報から削除することができる。これにより、表示レイヤ管理部は、ダミーレイヤの消失を正確に管理することができる。
【０２１１】
（３）前記表示デバイスは、描画割り込みを発生し、前記表示ドライバ切り替え部により前記第２の仮想計算機に表示制御が切り替えられた場合、前記描画割り込みを前記第２の仮想計算機に配送して前記第２の画面データ合成部に画面レイヤを合成させ、前記表示ドライバ切り替え部により前記第１の仮想計算機に表示制御が切り替えられた場合、前記描画割り込みを前記第１の仮想計算機に配送し、前記第１の画面データ合成部に画面レイヤを合成させる割り込み配送制御部を更に備えることが好ましい。
【０２１２】
この構成によれば、第２の仮想計算機に表示制御が切り替えられた場合、描画割り込みが第２の仮想計算機に配送され、第１の仮想計算機に表示制御が切り替えられた場合、描画割り込みが第１の仮想計算機に配送される。そのため、描画割り込みをトリガーとして、画面合成を行わせる構成において、ダミーレイヤが１個でもあれば第２の仮想計算機に画面レイヤの合成を行わせ、ダミーレイヤが０個であれば第１の仮想計算機に画面レイヤの合成を行わせることができる。
【０２１３】
（４）前記ダミーレイヤ生成部は、前記ダミーレイヤの生成及び削除を前記表示ドライバ切り替え部に通知し、前記表示ドライバ切り替え部は、前記ダミーレイヤ生成部によりダミーレイヤの生成が通知された場合、前記ダミーレイヤの発生数を１増加させ、前記ダミーレイヤ生成部によりダミーレイヤの削除が通知された場合、前記ダミーレイヤの発生数を１減少させることでダミーレイヤの発生数を管理することが好ましい。
【０２１４】
この構成によれば、表示ドライバ切り替え部は、ダミーレイヤの生成及び削除に連動してダミーレイヤの発生数を管理することができる。そのため、表示ドライバ切り替え部は表示制御の切り替えを確実に行うことができる。
【０２１５】
（５）前記画面レイヤ管理情報は、各画面レイヤが前記ダミーレイヤであるか否かを示すダミーレイヤ情報を含むことが好ましい。
【０２１６】
この構成によれば、画面レイヤ管理情報においてどの画面レイヤがダミーレイヤであるかを正確に管理することができる。
【０２１７】
（６）前記第２の画面データ合成部は、前記画面レイヤ管理情報から前記ダミーレイヤを特定し、特定したダミーレイヤを対応する画面レイヤの画面データで置き替えることで画面レイヤを合成することが好ましい。
【０２１８】
この構成によれば、第１の仮想計算機は、第２の仮想計算機の画面レイヤをダミーレイヤとして管理するだけで、第２の画面データ合成部に画面レイヤを合成させることができる。そのため、第１の仮想計算機が第２メモリにアクセスする必要を無くすことができる。
【０２１９】
（７）前記画面レイヤ管理情報は、各画面レイヤのサイズ及び各画面レイヤの画面データの格納アドレスを含むことが好ましい。
【０２２０】
この構成によれば、第１、第２の画面データ合成部は、画面レイヤ管理情報から各画面レイヤのサイズ及び各画面レイヤの画面データの格納アドレスを認識することができる。
【０２２１】
（８）前記第１の画面データ合成部は、前記表示ドライバ切り替え部により前記第２の仮想計算機に表示制御が切り替えられた場合、前記画面レイヤ管理情報に基づき、表示順序が前記ダミーレイヤより下層の前記第１の仮想計算機の画面レイヤを予め合成可能な画面レイヤとして特定し、特定した画面レイヤを合成し、前記第２の画面データ合成部は、前記第１の画面データ合成部により予め合成された画面レイヤと残りの画面レイヤとを、前記画面レイヤ管理情報に基づいて合成することが好ましい。
【０２２２】
この構成によれば、ダミーレイヤより下層に位置する非セキュア仮想計算機の画面レイヤが予め第１の画面データ合成部により合成され、残りの画面レイヤが第２の画面データ合成部により合成される。これにより、画面データが透過度の情報を持っている場合であっても、第２の画面データ生成部は、透過度に従った半透明の画面を描画することができ、かつ、第２の画面データ生成部の処理負担及び処理時間を軽減させることができる。
【０２２３】
（９）前記第１の画面データ生成部は、前記ダミーレイヤと前記ダミーレイヤに重なる前記第１の仮想計算機の画面レイヤとの和集合領域を求め、前記表示順序が前記ダミーレイヤの上層の前記第１の仮想計算機の画面レイヤであっても、前記和集合領域に重ならない画面レイヤを予め合成可能な画面レイヤとして更に特定し、特定した画面レイヤを合成することが好ましい。
【０２２４】
この構成によれば、第１の仮想計算機の画面レイヤがダミーレイヤの上層に位置する場合であっても、和集合領域に重ならなければ予め合成可能な画面レイヤとして特定され、第１の画面データ合成部により予め合成される。そのため、予め合成可能な画面レイヤが増大し、第２の画面データ合成部の処理時間及び処理負荷をより軽減することができる。
【０２２５】
（１０）前記第１メモリは、前記第１、第２の仮想計算機がアクセス可能な共有メモリであり、前記第２メモリは、前記第２の仮想計算機のみがアクセス可能な非共有メモリであることが好ましい。
【０２２６】
この構成によれば、第１メモリを第１、第２の仮想計算機がアクセス可能な共有メモリとし、第２メモリを第２の仮想計算機のみがアクセス可能な非共有メモリとした場合であっても、（１）で示す効果を得ることができる。
【産業上の利用可能性】
【０２２７】
本発明にかかる仮想計算機表示装置は、異なる仮想計算機が出力する各画面を合成する場合において、合成処理にかかる時間を最小限にしつつ、セキュア仮想計算機の画面を非セキュア仮想計算機からアクセスできないことを実現できる。したがって、本発明は、情報機器やＡＶ機器や通信機器、家電機器などのコンピュータを搭載する機器において有用である。
【図１】
2012107975.tif 000003
【図２】
2012107975.tif 000004
【図３】
2012107975.tif 000005
【図４】
2012107975.tif 000006
【図５】
2012107975.tif 000007
【図６】
2012107975.tif 000008
【図７】
2012107975.tif 000009
【図８】
2012107975.tif 000010
【図９】
2012107975.tif 000011
【図１０】
2012107975.tif 000012
【図１１】
2012107975.tif 000013
【図１２】
2012107975.tif 000014
【図１３】
2012107975.tif 000015
【図１４】
2012107975.tif 000016
【図１５】
2012107975.tif 000017
【図１６】
2012107975.tif 000018
【図１７】
2012107975.tif 000019
【図１８】
2012107975.tif 000020
【図１９】
2012107975.tif 000021
【図２０】
2012107975.tif 000022
【図２１】
2012107975.tif 000023
【国際調査報告】
2012107975.tif 000024
2012107975.tif 000025