(57)【要約】  割り込みレベル保存部（１６）は、発生した割り込みの優先度を示す割り込みレベルを１つ以上保存し、保存している割り込みレベルの内の最も優先度の高い割り込みレベルを第２の割り込みマスクレベルとして保存し、第２の割り込み種別判定部（１３）は、新規に発生した割り込みの割り込み種別に対応する割り込みレベルを設定し、優先度判定部（１４）は、新規に発生した割り込みの割り込みレベルが、保存されている第２の割り込みマスクレベルより高い場合、仮想計算機制御部（２０）へ割り込みを通知する。これにより、タスクの優先度を通知することができない仮想計算機であっても、タスクの優先度に応じて仮想計算機の優先度を決定し、仮想計算機の切り替えを適切に制御することができる。
2009157178.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵ上で動作する複数の仮想計算機の切り替えを制御する仮想計算機制御部と、
発生した割り込みの優先度を示す割り込みレベルに基づいて、前記仮想計算機制御部への割り込みの通知を制御する割り込み制御部とを備え、
前記仮想計算機制御部は、
前記割り込み制御部から通知された割り込みの種別を判定する第１の割り込み種別判定部と、
前記第１の割り込み種別判定部によって割り込みの種別を判定した結果、発生した割り込みが現在実行中の仮想計算機に対する割り込みであると判定された場合、割り込み発生直前のプログラムカウンタ値を保存する割り込み復帰先保存部と、
各仮想計算機において実行される割り込み処理の優先度及び各仮想計算機において実行されるタスク処理の優先度を第１の割り込みマスクレベルとして予め記憶する割り込みマスクレベル設定テーブルと、
仮想計算機による割り込み処理が終了した場合、前記割り込みマスクレベル設定テーブルの中から、仮想計算機が次に実行する処理に対応する第１の割り込みマスクレベルを前記割り込み制御部に通知する第１の割り込みマスクレベル設定部と、
前記割り込み制御部における割り込みレベルを最新の状態に更新するよう前記割り込み制御部に要求する更新部とを含み、
前記割り込み制御部は、
発生した割り込みの優先度を示す割り込みレベルを１つ以上保存し、保存している前記割り込みレベルの内の最も優先度の高い割り込みレベルを第２の割り込みマスクレベルとして保存する割り込みレベル保存部と、
前記第１の割り込みマスクレベル設定部によって通知された前記第１の割り込みマスクレベルを割り込みレベルとして前記割り込みレベル保存部に設定する第２の割り込みマスクレベル設定部と、
新規に発生した割り込みを受け取り、前記新規に発生した割り込みの種別を判定し、判定した割り込み種別に対応する割り込みレベルを前記割り込みレベル保存部に設定する第２の割り込み種別判定部と、
前記割り込みレベル保存部に保存されている前記第２の割り込みマスクレベルと、前記第２の割り込み種別判定部から通知される新規に発生した割り込みの割り込みレベルとを比較し、新規に発生した割り込みの割り込みレベルが前記割り込みレベル保存部に保存されている前記第２の割り込みマスクレベルより高い場合、前記仮想計算機制御部へ割り込みを通知する優先度判定部とを含むことを特徴とする仮想計算機制御装置。
【請求項２】
前記割り込み制御部は、割り込みの種別に対応する割り込みレベルを保持する割り込みレベル設定部をさらに含み、
前記割り込みレベル保存部は、前記第２の割り込み種別判定部が受け取った割り込みの割り込みレベルを、前記割り込みレベル設定部にあらかじめ保持されている当該割り込みの種別に対応する割り込みレベルとして保存し、さらに前記第１の割り込みマスクレベル設定部から前記第２の割り込みマスクレベル設定部に対して通知された第１の割り込みマスクレベルを割り込みレベルとして保存し、
前記優先度判定部は、前記割り込みレベル保存部に保存されている割り込みレベルの中で最も優先度の高い割り込みレベル以下の割り込みを前記仮想計算機制御部へ通知しないことを特徴とする請求項１記載の仮想計算機制御装置。
【請求項３】
前記ＣＰＵがアイドル状態に遷移する命令を実行したことを検知し、前記第２の割り込み種別判定部へ割り込み要求を出力するアイドル検知部をさらに備えることを特徴とする請求項１又は２記載の仮想計算機制御装置。
【請求項４】
前記仮想計算機制御部は、前記複数の仮想計算機の動作状態を保存する仮想計算機状態保存部をさらに含み、
前記割り込み制御部は、前記仮想計算機制御部へ割り込み要求を通知しないために、発生した割り込み要求をマスクするように前記優先度判定部を設定する割り込みマスク設定部をさらに含み、
前記第２の割り込み種別判定部は、発生した割り込みが前記アイドル検知部からの割り込み要求であると判定した場合、前記仮想計算機状態保存部に保存されている直前に実行中だった仮想計算機の動作状態をアイドル状態に更新し、
前記割り込みマスク設定部は、全ての仮想計算機の動作状態がアイドル状態である場合に、前記アイドル検知部からの割り込み要求をマスクするように前記優先度判定部を設定し、前記仮想計算機制御装置をアイドル状態に遷移させることを特徴とする請求項３記載の仮想計算機制御装置。
【請求項５】
割り込みの種類に応じて異なる複数の割り込みレベルを前記割り込み制御部に通知する割り込みレベル通知部をさらに備え、
前記割り込み制御部は、前記割り込みレベル通知部によって通知される前記複数の割り込みレベルを受信し、受信した前記複数の割り込みレベルをそれぞれ第１の割り込みマスクレベルとして前記割り込みマスクレベル設定テーブルに記憶する通知レベル受信部をさらに含むことを特徴とする請求項１〜４のいずれかに記載の仮想計算機制御装置。
【請求項６】
前記仮想計算機制御部は、
仮想計算機による割り込み処理が終了したことを検出する割り込み終了検出部と、
前記通知された割り込みで指定された割り込み復帰先アドレスを前記割り込み復帰先保存部に退避し、前記割り込み復帰先アドレスを前記割り込み終了検出部のアドレスに書き換える割り込み復帰先書き換え部とを含むことを特徴とする請求項１〜５のいずれかに記載の仮想計算機制御装置。
【請求項７】
周辺装置から出力される割り込み要求が解除されたことを検知し、前記割り込み制御部へ割り込みを発生させる割り込みネゲート検知部をさらに備えることを特徴とする請求項１〜５のいずれかに記載の仮想計算機制御装置。
【請求項８】
ＣＰＵ上で動作する複数の仮想計算機の切り替えを制御する仮想計算機制御部と、
発生した割り込みの優先度を示す割り込みレベルに基づいて、前記仮想計算機制御部への割り込みの通知を制御する割り込み制御部としてコンピュータを機能させ、
前記仮想計算機制御部は、
前記割り込み制御部から通知された割り込みの種別を判定する第１の割り込み種別判定部と、
前記第１の割り込み種別判定部によって割り込みの種別を判定した結果、発生した割り込みが現在実行中の仮想計算機に対する割り込みであると判定された場合、割り込み発生直前のプログラムカウンタ値を保存する割り込み復帰先保存部と、
各仮想計算機において実行される割り込み処理の優先度及び各仮想計算機において実行されるタスク処理の優先度を第１の割り込みマスクレベルとして予め記憶する割り込みマスクレベル設定テーブルと、
仮想計算機による割り込み処理が終了した場合、前記割り込みマスクレベル設定テーブルの中から、仮想計算機が次に実行する処理に対応する第１の割り込みマスクレベルを前記割り込み制御部に通知する第１の割り込みマスクレベル設定部と、
前記割り込み制御部における割り込みレベルを最新の状態に更新するよう前記割り込み制御部に要求する更新部とを含み、
前記割り込み制御部は、
発生した割り込みの優先度を示す割り込みレベルを１つ以上保存し、保存している前記割り込みレベルの内の最も優先度の高い割り込みレベルを第２の割り込みマスクレベルとして保存する割り込みレベル保存部と、
前記第１の割り込みマスクレベル設定部によって通知された前記第１の割り込みマスクレベルを割り込みレベルとして前記割り込みレベル保存部に設定する第２の割り込みマスクレベル設定部と、
新規に発生した割り込みを受け取り、前記新規に発生した割り込みの種別を判定し、判定した割り込み種別に対応する割り込みレベルを前記割り込みレベル保存部に設定する第２の割り込み種別判定部と、
前記割り込みレベル保存部に保存されている前記第２の割り込みマスクレベルと、前記第２の割り込み種別判定部から通知される新規に発生した割り込みの割り込みレベルとを比較し、新規に発生した割り込みの割り込みレベルが前記割り込みレベル保存部に保存されている前記第２の割り込みマスクレベルより高い場合、前記仮想計算機制御部へ割り込みを通知する優先度判定部とを含むことを特徴とする仮想計算機制御プログラム。
【請求項９】
ＣＰＵ上で動作する複数の仮想計算機の切り替えを制御する仮想計算機制御回路と、
発生した割り込みの優先度を示す割り込みレベルに基づいて、前記仮想計算機制御回路への割り込みの通知を制御する割り込み制御回路とを備え、
前記仮想計算機制御回路は、
前記割り込み制御部から通知された割り込みの種別を判定する第１の割り込み種別判定回路と、
前記第１の割り込み種別判定回路によって割り込みの種別を判定した結果、発生した割り込みが現在実行中の仮想計算機に対する割り込みであると判定された場合、割り込み発生直前のプログラムカウンタ値を保存する割り込み復帰先保存回路と、
各仮想計算機において実行される割り込み処理の優先度及び各仮想計算機において実行されるタスク処理の優先度を第１の割り込みマスクレベルとして予め記憶する割り込みマスクレベル設定テーブルと、
仮想計算機による割り込み処理が終了した場合、前記割り込みマスクレベル設定テーブルの中から、仮想計算機が次に実行する処理に対応する第１の割り込みマスクレベルを前記割り込み制御回路に通知する第１の割り込みマスクレベル設定回路と、
前記割り込み制御部における割り込みレベルを最新の状態に更新するよう前記割り込み制御回路に要求する更新回路とを含み、
前記割り込み制御回路は、
発生した割り込みの優先度を示す割り込みレベルを１つ以上保存し、保存している前記割り込みレベルの内の最も優先度の高い割り込みレベルを第２の割り込みマスクレベルとして保存する割り込みレベル保存回路と、
前記第１の割り込みマスクレベル設定回路によって通知された前記第１の割り込みマスクレベルを割り込みレベルとして前記割り込みレベル保存回路に設定する第２の割り込みマスクレベル設定回路と、
新規に発生した割り込みを受け取り、前記新規に発生した割り込みの種別を判定し、判定した割り込み種別に対応する割り込みレベルを前記割り込みレベル保存回路に設定する第２の割り込み種別判定回路と、
前記割り込みレベル保存回路に保存されている前記第２の割り込みマスクレベルと、前記第２の割り込み種別判定回路から通知される新規に発生した割り込みの割り込みレベルとを比較し、新規に発生した割り込みの割り込みレベルが前記割り込みレベル保存回路に保存されている前記第２の割り込みマスクレベルより高い場合、前記仮想計算機制御回路へ割り込みを通知する優先度判定回路とを含むことを特徴とする仮想計算機制御回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のオペレーティングシステム（以下ＯＳと略す）とＯＳのアプリケーションとを、１つのＣＰＵ上で動作させる仮想計算機技術に関し、特に、複数の仮想計算機の切り替えを制御する仮想計算機制御装置に関するものである。
【背景技術】
【０００２】
情報処理装置で行う処理の性質は様々である。例えば、リアルタイム性能を要する処理はリアルタイムＯＳ（以下ＲＴＯＳと略す）を用いるのが適切である。一方、グラフィック機能の豊富なＯＳを用いれば、グラフィック機能をいかした優れたユーザインターフェイスなどを提供することができる。仮想計算機技術が用いられることにより、一つの機器で性質が異なる処理を同時に行うことが可能となる。【０００３】
仮想計算機技術は、一つの物理的な計算機で複数のＯＳを同時に用いる技術であり、例えばサーバーなどで用いられている。それぞれのＯＳとＯＳのアプリケーションとが仮想的な計算機となり、一つの物理計算機上で複数の仮想計算機が時分割で実行される。【０００４】
従来の仮想計算機の切り替えを制御する技術（仮想計算機スケジュール）としては、仮想計算機の優先度を、実行する処理に基づいて変化させるものがあった（例えば、特許文献１参照）。従来技術では、実行するタスクの優先度、すなわちＯＳがタスク管理で用いるタスクの優先度を用いて、タスクを実行する仮想計算機の優先度を設定している。優先度の高いタスクを実行する場合は、仮想計算機の優先度も高くなる。そのため、優先度の高い仮想計算機の方へ切り替えることで、タスクが属する仮想計算機にかかわらず優先度の高いタスクから実行することができる。【０００５】
しかしながら、従来の構成では、実行するタスクの優先度を仮想計算機から通知する必要があり、タスクの優先度を通知することができない仮想計算機の場合、仮想計算機の切り替え制御ができないという課題を有していた。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０００−２４２５１２号公報
【発明の概要】
【０００７】
本発明は、上記の問題を解決するためになされたもので、タスクの優先度を通知することができない仮想計算機であっても、タスクの優先度に応じて仮想計算機の優先度を決定し、仮想計算機の切り替えを適切に制御することができる仮想計算機制御装置、仮想計算機制御プログラム及び仮想計算機制御回路を提供することを目的とするものである。
【０００８】
本発明の一局面に係る仮想計算機制御装置は、ＣＰＵ上で動作する複数の仮想計算機の切り替えを制御する仮想計算機制御部と、発生した割り込みの優先度を示す割り込みレベルに基づいて、前記仮想計算機制御部への割り込みの通知を制御する割り込み制御部とを備え、前記仮想計算機制御部は、前記割り込み制御部から通知された割り込みの種別を判定する第１の割り込み種別判定部と、前記第１の割り込み種別判定部によって割り込みの種別を判定した結果、発生した割り込みが現在実行中の仮想計算機に対する割り込みであると判定された場合、割り込み発生直前のプログラムカウンタ値を保存する割り込み復帰先保存部と、各仮想計算機において実行される割り込み処理の優先度及び各仮想計算機において実行されるタスク処理の優先度を第１の割り込みマスクレベルとして予め記憶する割り込みマスクレベル設定テーブルと、仮想計算機による割り込み処理が終了した場合、前記割り込みマスクレベル設定テーブルの中から、仮想計算機が次に実行する処理に対応する第１の割り込みマスクレベルを前記割り込み制御部に通知する第１の割り込みマスクレベル設定部と、前記割り込み制御部における割り込みレベルを最新の状態に更新するよう前記割り込み制御部に要求する更新部とを含み、前記割り込み制御部は、発生した割り込みの優先度を示す割り込みレベルを１つ以上保存し、保存している前記割り込みレベルの内の最も優先度の高い割り込みレベルを第２の割り込みマスクレベルとして保存する割り込みレベル保存部と、前記第１の割り込みマスクレベル設定部によって通知された前記第１の割り込みマスクレベルを割り込みレベルとして前記割り込みレベル保存部に設定する第２の割り込みマスクレベル設定部と、新規に発生した割り込みを受け取り、前記新規に発生した割り込みの種別を判定し、判定した割り込み種別に対応する割り込みレベルを前記割り込みレベル保存部に設定する第２の割り込み種別判定部と、前記割り込みレベル保存部に保存されている前記第２の割り込みマスクレベルと、前記第２の割り込み種別判定部から通知される新規に発生した割り込みの割り込みレベルとを比較し、新規に発生した割り込みの割り込みレベルが前記割り込みレベル保存部に保存されている前記第２の割り込みマスクレベルより高い場合、前記仮想計算機制御部へ割り込みを通知する優先度判定部とを含む。
【０００９】
この構成によれば、仮想計算機制御部は、ＣＰＵ上で動作する複数の仮想計算機の切り替えを制御し、割り込み制御部は、発生した割り込みの優先度を示す割り込みレベルに基づいて、仮想計算機制御部への割り込みの通知を制御する。割り込み制御部から通知された割り込みの種別が判定され、現在実行中の仮想計算機に対する割り込みであると判定された場合、割り込み発生直前のプログラムカウンタ値が保存される。割り込みマスクレベル設定テーブルは、各仮想計算機において実行される割り込み処理の優先度及び各仮想計算機において実行されるタスク処理の優先度を第１の割り込みマスクレベルとして予め記憶している。仮想計算機による割り込み処理が終了した場合、割り込みマスクレベル設定テーブルの中から、仮想計算機が次に実行する処理に対応する第１の割り込みマスクレベルが割り込み制御部に通知される。また、割り込み制御部における割り込みレベルを最新の状態に更新するよう割り込み制御部に要求される。割り込みレベル保存部は、発生した割り込みの優先度を示す割り込みレベルを１つ以上保存し、保存している割り込みレベルの内の最も優先度の高い割り込みレベルを第２の割り込みマスクレベルとして保存する。通知された第１の割り込みマスクレベルが割り込みレベルとして割り込みレベル保存部に設定される。新規に発生した割り込みが受け取られ、新規に発生した割り込みの種別が判定され、判定された割り込み種別に対応する割り込みレベルが割り込みレベル保存部に設定される。割り込みレベル保存部に保存されている第２の割り込みマスクレベルと、第２の割り込み種別判定部から通知される新規に発生した割り込みの割り込みレベルとが比較され、新規に発生した割り込みの割り込みレベルが割り込みレベル保存部に保存されている第２の割り込みマスクレベルより高い場合、仮想計算機制御部へ割り込みが通知される。
【００１０】
本発明によれば、仮想計算機の割り込み処理が終了したタイミングで、割り込み制御部において割り込みをマスクするための優先度を更新することにより、タスクの優先度を通知することができない仮想計算機であっても、タスクの優先度に応じて仮想計算機の優先度を決定し、仮想計算機の切り替えを適切に制御することができる。
【００１１】
本発明の目的、特徴及び利点は、以下の詳細な説明と添付図面とによって、より明白となる。
【図面の簡単な説明】
【００１２】
【図１】本発明の実施の形態１における仮想計算機制御装置を備えた情報処理装置のハードウェア構成を示すブロック図である。
【図２】本発明の実施の形態１における情報処理装置のメモリの詳細な構成を示すブロック図である。
【図３】本発明の実施の形態１における情報処理装置の統合割り込みコントローラの詳細な構成を示すブロック図である。
【図４】本発明の実施の形態１における統合割り込みコントローラの第２の割り込みレベル設定部の設定内容の一例を示す図である。
【図５】本発明の実施の形態１における統合割り込みコントローラの割り込みレベル保存部の保存内容の一例を示す図である。
【図６】本発明の実施の形態１における仮想計算機制御部の割り込みマスクレベル設定テーブルの設定内容の一例を示す図である。
【図７】本発明の実施の形態１において、第１の割り込みコントローラにおける割り込み発生から、割り込み処理部による割り込みハンドラ処理の終了までの動作の一例を示すフローチャートである。
【図８】図７のステップＳ８の処理に続いて、割り込みハンドラによる処理が終了した後の動作の一例を示すフローチャートである。
【図９】図７のステップＳ２において、アイドル検知部からの割り込みであると判定された後の動作の一例を示すフローチャートである。
【図１０】図７のステップＳ２において、第２の割り込みコントローラからの割り込みであると判定された後の動作の一例を示すフローチャートである。
【図１１】本発明の実施の形態２における仮想計算機制御装置を備えた情報処理装置の構成を示すブロック図である。
【図１２】本発明の実施の形態２において、統合割り込みコントローラの第２の割り込みレベル設定部の設定内容の一例を示す図である。
【図１３】本発明の実施の形態２において、仮想計算機制御部の割り込みマスクレベル設定テーブルの設定内容の一例を示す図である。
【図１４】本発明の実施の形態３における仮想計算機制御装置を備えた情報処理装置のハードウェア構成を示すブロック図である。
【図１５】本発明の実施の形態３における情報処理装置のメモリの詳細な構成を示すブロック図である。
【図１６】本発明の実施の形態３における仮想計算機制御装置を備えた情報処理装置の統合割り込みコントローラの詳細な構成を示すブロック図である。
【図１７】本発明の実施の形態３において、統合割り込みコントローラの第２の割り込みレベル設定部の設定内容の一例を示す図である。
【図１８】本発明の実施の形態３において、第１の割り込みコントローラからの割り込みが発生した場合の情報処理装置の動作の一例を示すフローチャートである。
【図１９】本発明の実施の形態４における仮想計算機制御装置を備えた情報処理装置の構成を示すブロック図である。
【発明を実施するための形態】
【００１３】
以下本発明の実施の形態について、図面を参照しながら説明する。尚、以下の実施の形態は、本発明を具体化した一例であって、本発明の技術的範囲を限定する性格のものではない。
【００１４】
（実施の形態１）
図１は、本発明の実施の形態１における仮想計算機制御装置を備えた情報処理装置のハードウェア構成を示すブロック図である。
【００１５】
情報処理装置は、中央演算装置（ＣＰＵ）１、統合割り込みコントローラ２、第１の割り込みコントローラ３、第２の割り込みコントローラ４、周辺デバイス５、周辺デバイス６、アイドル検知部７及びメモリ８を備えている。
【００１６】
ＣＰＵ１は、処理能力が十分であれば任意のものが利用可能である。統合割り込みコントローラ２は、第１の割り込みコントローラ３、第２の割り込みコントローラ４及びアイドル検知部７から通知される割り込み要求のうち、最も優先度の高い割り込み要求を判断し、最も優先度の高い割り込みをＣＰＵ１へ通知する。
【００１７】
第１の割り込みコントローラ３は、周辺デバイス５から発生する割り込み要求を統合割り込みコントローラ２へ通知する。第２の割り込みコントローラ４は、第１の割り込みコントローラ３と同様に、周辺デバイス６から発生する割り込み要求を統合割り込みコントローラ２へ通知する。
【００１８】
周辺デバイス５，６は、各種の入出力装置であり、情報処理装置の使用目的に応じた入出力装置が利用される。例えば、周辺デバイス５，６は、キーデバイス、通信デバイス、表示デバイス、デコーダ、エンコーダ、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）及びＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）コントローラなどを含む。
【００１９】
なお、周辺デバイス５は、第１の仮想計算機３０において処理される割り込みを発生させ、周辺デバイス６は、第２の仮想計算機４０において処理される割り込みを発生させる。第１の割り込みコントローラ３は、第１の仮想計算機３０への割り込み要求を出力し、第２の割り込みコントローラ４は、第２の仮想計算機４０への割り込み要求を出力する。
【００２０】
アイドル検知部７は、ＣＰＵ１がアイドル状態（省電力モード）に遷移する命令を実行したことを検知し、第２の割り込み種別判定部１３へ割り込み要求を出力する。すなわち、アイドル検知部７は、ＣＰＵ１が省電力モードに遷移する命令を発行する時にＣＰＵ１から出力される信号を検知し、統合割り込みコントローラ２に割り込み要求を通知する。
【００２１】
メモリ８には、仮想計算機制御部２０と、第１の仮想計算機３０と、第２の仮想計算機４０としてＣＰＵ１を機能させるプログラムが格納されている。メモリ８は、単一のメモリ装置で構成されている必要はなく、同種の複数のメモリ又はリードオンリーメモリ（ＲＯＭ）を含む異種のメモリの組み合わせであってもよい。さらに、メモリ８以外に、例えばハードディスクドライブのような外部記憶装置を設け、情報処理装置の動作に問題のない範囲で外部記憶装置にメモリ８の内容を移動させてもよい。
【００２２】
図２は、本発明の実施の形態１における情報処理装置のメモリ８の詳細な構成を示すブロック図である。メモリ８は、第１の仮想計算機３０と、第２の仮想計算機４０と、仮想計算機制御部２０としてＣＰＵ１を機能させるプログラムを記憶する。
【００２３】
第１の仮想計算機３０は、複数のタスク３００と、第１のＯＳ３１０とを備えている。また、第１のＯＳ３１０は、タスクスケジューラ３１１と、割り込み処理部３１２とを含んでいる。
【００２４】
タスクスケジューラ３１１は、次に実行すべきタスクを決定し、決定したタスクを実行する。割り込み処理部３１２は、複数の割り込みハンドラ３２０を含み、割り込み発生を受け取ると、割り込みの要因に応じた割り込みハンドラ３２０を実行する。以下、第１の仮想計算機３０は、ソフトウェアの改変が不可能な仮想計算機として説明する。
【００２５】
第２の仮想計算機４０は、第１の仮想計算機３０と同様に、複数のタスク４００と、第２のＯＳ４１０とを備えている。また、第２のＯＳ４１０は、タスクスケジューラ４１１と、割り込み処理部４１２とを含んでいる。
【００２６】
タスクスケジューラ４１１は、次に実行すべきタスクを決定し、決定したタスクを実行する。割り込み処理部４１２は、複数の割り込みハンドラ４２０を含み、割り込み発生を受け取ると、割り込みの要因に応じた割り込みハンドラ４２０を実行する。
【００２７】
タスクスケジューラ４１１及び割り込み処理部４１２の動作は、第１の仮想計算機３０に含まれるタスクスケジューラ３１１及び割り込み処理部３１２と同様である。
【００２８】
なお、各タスク３００，４００または割り込みハンドラ３２０，４２０ごとに、優先度が設定されている。
【００２９】
本発明の実施の形態１における情報処理装置は、複数の仮想計算機（第１の仮想計算機３０及び第２の仮想計算機４０）を備え、各仮想計算機（第１の仮想計算機３０及び第２の仮想計算機４０）は、互いに異なるＯＳ（第１のＯＳ３１０及び第２のＯＳ４１０）と、タスク３００，４００と、割り込みハンドラ３２０，４２０とを備えている。
【００３０】
第１の仮想計算機３０と第２の仮想計算機４０とは、後述する仮想計算機制御部２０により切り替えられる。複数の仮想計算機（第１の仮想計算機３０及び第２の仮想計算機４０）は、同時に動作することはなく、時分割で実行される。これにより、一つの物理的な計算機上において複数の計算機の働きをさせることができる。例えば、リアルタイム性能を要求される処理は、第１の仮想計算機３０のタスク３００または割り込みハンドラ３２０として実装し、第１のＯＳ３１０にリアルタイム性能に優れたＲＴＯＳを用いる。また、ユーザインターフェイスに関する処理は、第２の仮想計算機４０のタスク４００または割り込みハンドラ４２０として実装し、第２のＯＳ４１０にグラフィック機能の豊富なＯＳを用いる。
【００３１】
このような構成により、本実施の形態１の情報処理装置は、リアルタイム性能を必要とする伝送系の制御と、豊富なグラフィック機能を用いた優れたユーザインターフェイス制御とを同時に実現できる。
【００３２】
なお、第１のＯＳ３１０と第２のＯＳ４１０とを互いに異なるＯＳにする必要は必ずしもなく、第１のＯＳ３１０と第２のＯＳ４１０とを同じＯＳにしてもよい。
【００３３】
仮想計算機制御部２０は、ＣＰＵ１上で動作する複数の仮想計算機の切り替えを制御する。仮想計算機制御部２０は、割り込み復帰先保存部２００、仮想計算機状態保存部２０１、仮想計算機スケジュール部２０２、割り込み復帰先書換部２０３、第１の割り込み種別判定部２０４、割り込み通知受取部２０５、割り込みマスクレベル更新部２０６、割り込みマスクレベル設定テーブル２０７、第１の割り込みマスクレベル設定部２０８、割り込みハンドラ終了検出部２０９、切替通知受取部２１０、第１の割り込みマスク設定部２１１及び第１の割り込みレベル設定部２１２を備える。
【００３４】
割り込み通知受取部２０５は、割り込みが発生した際に、統合割り込みコントローラ２からの割り込み発生通知を、ＣＰＵ１を介して受け取る。そして、割り込み通知受取部２０５は、割り込みが発生したことを表す割り込み情報を第１の割り込み種別判定部２０４に通知する。
【００３５】
第１の割り込み種別判定部２０４は、統合割り込みコントローラ２から通知された割り込みの種別を判定する。第１の割り込み種別判定部２０４は、割り込み通知受取部２０５から通知された割り込みに対応する割り込み種別を、後述する統合割り込みコントローラ２内の第２の割り込み種別判定部１３に要求し、第２の割り込み種別判定部１３から割り込み種別を取得する。
【００３６】
次に、第１の割り込み種別判定部２０４は、第２の割り込み種別判定部１３から取得した割り込み種別に応じて、仮想計算機（第１の仮想計算機３０及び第２の仮想計算機４０）の動作状態を仮想計算機状態保存部２０１に設定する。仮想計算機の動作状態には、仮想計算機が処理を実行していることを表す実行状態と、仮想計算機が省電力モードに遷移していることを表すアイドル状態と、仮想計算機が一時的に動作を停止していることを表すサスペンド状態とが含まれる。
【００３７】
第１の割り込み種別判定部２０４は、第１の割り込みコントローラ３又は第２の割り込みコントローラ４から送信された割り込みであれば、当該割り込みを実行する仮想計算機の動作状態を実行状態に設定し、実行状態にあった仮想計算機をサスペンド状態に設定する。また、第１の割り込み種別判定部２０４は、アイドル検知部７から送信された割り込み通知であれば、該当する仮想計算機の動作状態をアイドル状態に設定する。更に、第１の割り込み種別判定部２０４は、第１の割り込みコントローラ３又は第２の割り込みコントローラ４から送信された割り込みであれば、割り込みが発生したことを表す割り込み情報を割り込み復帰先書換部２０３に通知し、アイドル検知部７から送信された割り込みであれば、割り込みが発生したことを表す割り込み情報を割り込みマスクレベル更新部２０６へ通知する。
【００３８】
なお、割り込み通知には、リセット要求を求める割り込み通知がある。ウォッチドッグタイマは、仮想計算機がフリーズ状態になった際に、リセット要求を求める割り込み通知を発行する。ＣＰＵ１は、ウォッチドッグタイマから割り込み通知を受けた際、割り込みハンドラ処理の最後に割り込みを禁止した状態で無限ループを実行し、ハードウェア的な再起動を待つ。上記のようなリセット処理が実行される場合、割り込みが禁止された状態で無限ループに陥る。そのため、他の仮想計算機への割り込み処理が実行できなくなり、システムが動作できなくなるという課題がある。
【００３９】
そこで、例えば、発生した割り込みが、第１の仮想計算機３０に対するウォッチドッグタイマによる割り込みである場合、第１の割り込み種別判定部２０４は、第１の仮想計算機３０に設定されている特権モードを解除してもよい。第１の仮想計算機３０の特権モードが解除されることで、第１の仮想計算機３０によるＣＰＵ割り込みを禁止する操作が防止され、上記課題を解決することができる。
【００４０】
仮想計算機状態保存部２０１は、前述した第１の割り込み種別判定部２０４によって設定される仮想計算機（第１の仮想計算機３０及び第２の仮想計算機４０）の動作状態を保存する。
【００４１】
割り込み復帰先書換部２０３は、通知された割り込みで指定された割り込み復帰先アドレスを割り込み復帰先保存部２００に退避し、割り込み復帰先アドレスを割り込みハンドラ終了検出部２０９のアドレスに書き換える。
【００４２】
割り込み復帰先書換部２０３は、第１の割り込み種別判定部２０４から割り込み情報が通知されると、通知された割り込みによって指定される割り込み復帰先アドレスを、割り込み復帰先保存部２００に退避する。割り込み復帰先書換部２０３は、割り込み処理が終了した際に復帰する処理を表す割り込み復帰先アドレスを、割り込み復帰先保存部２００に退避する。
【００４３】
次に、割り込み復帰先書換部２０３は、通知された割り込み情報に含まれる割り込み復帰先アドレスを、仮想計算機制御部２０内の割り込みハンドラ終了検出部２０９のアドレスに書換え、仮想計算機スケジュール部２０２に割り込み情報を通知する。これにより、仮想計算機（第１の仮想計算機３０又は第２の仮想計算機４０）の割り込みハンドラ処理の終了を仮想計算機制御部２０内で検出することが可能となる。
【００４４】
割り込み復帰先保存部２００は、割り込み復帰先書換部２０３によって退避された割り込み復帰先アドレスを保存する。割り込み復帰先保存部２００が保存する割り込み復帰先アドレスは、割り込み発生時に実行中であった仮想計算機（第１の仮想計算機３０又は第２の仮想計算機４０）のプログラムカウンタの値となる。割り込み復帰先保存部２００は、第１の割り込み種別判定部２０４によって割り込みの種別を判定した結果、発生した割り込みが現在実行中の仮想計算機に対する割り込みであると判定された場合、割り込み発生直前のプログラムカウンタ値を保存する。
【００４５】
割り込みマスクレベル更新部２０６は、統合割り込みコントローラ２における割り込みレベルを最新の状態に更新するよう統合割り込みコントローラ２に要求する。なお、本実施の形態において、割り込みマスクレベル更新部２０６が更新部の一例に相当する。
【００４６】
割り込みマスクレベル更新部２０６は、後述する統合割り込みコントローラ２内の割り込みレベル保存部１６に割り込みマスクレベルの更新を要求して、割り込みレベル保存部１６に保存されている割り込みマスクレベルを最新の状態へ更新し、割り込みマスクレベルを更新したことを仮想計算機スケジュール部２０２に通知する。第１の割り込みコントローラ３及び第２の割り込みコントローラ４に対する割り込み要因がクリアされていれば、この時点で、割り込みレベル保存部１６に保存されていた該当割り込みレベルがクリアされる。
【００４７】
割り込みハンドラ終了検出部２０９は、実行されることで割り込みハンドラによる割り込み処理が終了したことを検出し、割り込みハンドラによる処理が終了したことを第１の割り込みマスクレベル設定部２０８へ通知する。つまり、割り込み復帰先書換部２０３が、割り込み復帰先アドレスを、割り込みハンドラ終了検出部２０９のアドレスに書き換えることで、割り込みハンドラによる処理が終了すると、割り込みハンドラ終了検出部２０９に処理が戻ることになる。なお、本実施の形態において、割り込みハンドラ終了検出部２０９が割り込み終了検出部の一例に相当する。
【００４８】
割り込みマスクレベル設定テーブル２０７は、仮想計算機（第１の仮想計算機３０及び第２の仮想計算機４０）によるタスク（タスク３００及びタスク４００）実行時の割り込みマスクレベルの設定値が保存されたテーブルである。割り込みマスクレベル設定テーブル２０７は、各仮想計算機において実行される割り込み処理の優先度及び各仮想計算機において実行されるタスク処理の優先度を割り込みマスクレベル（第１の割り込みマスクレベル）として予め記憶する。なお、割り込みマスクレベルよりも高い優先度を有する割り込みは実行され、割り込みマスクレベルよりも低い優先度を有する割り込みは実行されない。割り込みマスクレベルは、システム起動時に仮想計算機制御部２０により設定される値であり、システム稼働中に変更されない固定値とする。
【００４９】
第１の割り込みマスクレベル設定部２０８は、割り込みハンドラ終了検出部２０９からの割り込みハンドラ終了通知を受け取り、処理を行う。第１の割り込みマスクレベル設定部２０８は、割り込みマスクレベル設定テーブル２０７に設定されている割り込みマスクレベルを、統合割り込みコントローラ２内の第２の割り込みマスクレベル設定部１５に設定する。第１の割り込みマスクレベル設定部２０８は、割り込みマスクレベルを設定したことを割り込みマスクレベル更新部２０６に通知する。
【００５０】
なお、第１の割り込みマスクレベル設定部２０８は、次に処理を実行する仮想計算機のタスク処理の割り込みマスクレベルを、割り込みマスクレベル設定テーブル２０７から取得する。例えば、第１の仮想計算機３０向けの割り込みハンドラ処理が終了した場合、第１の仮想計算機３０のタスクの割り込みマスクレベルが設定されることになる。
【００５１】
すなわち、第１の割り込みマスクレベル設定部２０８は、割り込みハンドラによる割り込み処理が終了した場合、割り込みマスクレベル設定テーブル２０７の中から、仮想計算機が次に実行する処理に対応する割り込みマスクレベルを統合割り込みコントローラ２に通知する。
【００５２】
切替通知受取部２１０は、実行中の処理を切り替える切り替え通知を第２の仮想計算機４０から受け取り、割り込みハンドラによる処理の終了を仮想計算機スケジュール部２０２に通知する。
【００５３】
仮想計算機スケジュール部２０２は、呼び出し元と、割り込み種別と、仮想計算機の動作状態とに基づいて、仮想計算機の切り替え制御を行う。具体的には、仮想計算機スケジュール部２０２は、割り込み復帰先書換部２０３から呼び出された場合、第１の仮想計算機３０への割り込み要求と判断し、割り込み処理部３１２を呼び出す。
【００５４】
また、仮想計算機スケジュール部２０２は、割り込みマスクレベル更新部２０６から呼び出された場合、割り込み種別がアイドル検知部７からの割り込み通知以外であれば、割り込み復帰先保存部２００に保存されている割り込み復帰先アドレスへ遷移させる。仮想計算機スケジュール部２０２は、アイドル検知部７からの割り込み通知であれば、仮想計算機状態保存部２０１に保存された仮想計算機の動作状態を確認する。仮想計算機スケジュール部２０２は、第１の仮想計算機３０と第２の仮想計算機４０とが共にアイドル状態であれば、システム全体を省電力モードへ遷移させる。一方、仮想計算機スケジュール部２０２は、第１の仮想計算機３０と第２の仮想計算機４０とのうち、サスペンド状態の仮想計算機があれば、サスペンド状態の仮想計算機のタスクスケジューラ４１１を呼び出す。
【００５５】
また、仮想計算機スケジュール部２０２は、切替通知受取部２１０から呼び出された場合、第２の仮想計算機４０の割り込み処理終了と判断し、割り込みマスクレベル設定テーブル２０７の優先度に基づき、第２の仮想計算機４０のタスクスケジューラ４１１に処理を遷移させる。
【００５６】
第１の割り込みマスク設定部２１１は、統合割り込みコントローラ２で用いる割り込みマスクを設定するための割り込みマスク設定要求を、後述する統合割り込みコントローラ２内の第２の割り込みマスク設定部１１に送信し、統合割り込みコントローラ２で用いる割り込みマスクを設定する。これにより、統合割り込みコントローラ２は、不要な割り込みをマスクすることが可能となる。
【００５７】
第１の割り込みレベル設定部２１２は、各割り込み種別に対応する割り込みレベルを設定するための割り込みレベル設定要求を、後述する統合割り込みコントローラ２内の第２の割り込みレベル設定部１２に送信し、各割り込み種別に対応する割り込みレベルを設定する。なお、第１の割り込みレベル設定部２１２は、システム起動時に処理を行う。これにより、割り込みが発生した際に、割り込み種別の割り込みレベルに応じた処理を行うことが可能となる。
【００５８】
図３は、本発明の実施の形態１における情報処理装置の統合割り込みコントローラ２の詳細な構成を示すブロック図である。図３を用いて、統合割り込みコントローラ２の詳細な構成について説明する。
【００５９】
統合割り込みコントローラ２は、発生した割り込みの優先度を示す割り込みレベルに基づいて、仮想計算機制御部２０への割り込みの通知を制御する。統合割り込みコントローラ２は、第２の割り込みマスク設定部１１、第２の割り込みレベル設定部１２、第２の割り込み種別判定部１３、優先度判定部１４、第２の割り込みマスクレベル設定部１５及び割り込みレベル保存部１６を備えている。なお、本実施の形態において、統合割り込みコントローラ２が割り込み制御部の一例に相当する。
【００６０】
第２の割り込みマスク設定部１１は、第１の割り込みコントローラ３、第２の割り込みコントローラ４及びアイドル検知部７からの割り込み要求を、ＣＰＵ１へ通知するか否かを設定するためのレジスタである。第２の割り込みマスク設定部１１は、仮想計算機制御部２０の第１の割り込みマスク設定部２１１からの割り込みマスク設定要求を受け、割り込みマスク設定要求に基づいた割り込みマスクの設定を保持する。
【００６１】
また、第２の割り込みマスク設定部１１は、仮想計算機制御部２０の仮想計算機スケジュール部２０２からの要求を受け、要求に基づいて割り込みをマスクするように優先度判定部１４を設定する。第２の割り込みマスク設定部１１は、仮想計算機制御部２０へ割り込み要求を通知しないために、発生した割り込み要求をマスクするように優先度判定部１４を設定する。
【００６２】
第２の割り込みマスク設定部１１は、全ての仮想計算機の動作状態がアイドル状態である場合に、アイドル検知部７からの割り込み要求をマスクするように優先度判定部１４を設定し、システム全体を省電力モードに遷移させる。
【００６３】
第２の割り込みレベル設定部１２は、第１の割り込みコントローラ３、第２の割り込みコントローラ４及びアイドル検知部７からの割り込み要求に優劣をつけるため、それぞれの割り込み要求にレベル（優先度）を設定するレジスタである。第２の割り込みレベル設定部１２は、仮想計算機制御部２０の第１の割り込みレベル設定部２１２からの割り込みレベル設定要求を受け、割り込みレベル設定要求に基づいた割り込みレベルの設定を保持する。第２の割り込みレベル設定部１２は、割り込みの種別に対応する割り込みレベルを保持する。
【００６４】
第２の割り込み種別判定部１３は、新規に発生した割り込みを受け取り、新規に発生した割り込みの種別を判定し、判定した割り込み種別に対応する割り込みレベルを割り込みレベル保存部１６に設定する。
【００６５】
第２の割り込み種別判定部１３は、通知された割り込み要求を割り込み要求情報として保持し、どこから通知された割り込み要求かを判定し、第２の割り込みレベル設定部１２に設定されており、かつ割り込み要求に対応する割り込みレベルを割り込みレベル保存部１６に通知する。更に、第２の割り込み種別判定部１３は、割り込み要求を受け付けたことを優先度判定部１４に通知する。このとき、第２の割り込み種別判定部１３は、割り込み要求に対応する割り込みレベルを優先度判定部１４に通知する。さらに、第２の割り込み種別判定部１３は、仮想計算機制御部２０の第１の割り込み種別判定部２０４からの割り込み種別の要求を受け、割り込み種別を含む最新の割り込み要求情報を第１の割り込み種別判定部２０４へ返す。
【００６６】
優先度判定部１４は、割り込みレベル保存部１６に保存されている割り込みマスクレベル（第２の割り込みマスクレベル）と、第２の割り込み種別判定部１３から通知される新規に発生した割り込みの割り込みレベルとを比較し、新規に発生した割り込みの割り込みレベルが割り込みレベル保存部１６に保存されている割り込みマスクレベルより高い場合、仮想計算機制御部２０へ割り込みを通知する。
【００６７】
優先度判定部１４は、現在の割り込みマスクレベルを割り込みレベル保存部１６から取得し、取得した割り込みマスクレベルと、第２の割り込み種別判定部１３から通知された割り込みレベルとを比較する。割り込みレベルが割り込みマスクレベルよりも高い優先度を有する場合、優先度判定部１４は、割り込み要求をＣＰＵ１へ通知する。ただし、第２の割り込みマスク設定部１１において割り込み通知が無効に設定されている場合は、優先度判定部１４は、割り込み要求をＣＰＵ１へ通知しない。ＣＰＵ１は、優先度判定部１４から割り込み要求が入力されると、割り込み発生通知を仮想計算機制御部２０の割り込み通知受取部２０５へ送信する。
【００６８】
第２の割り込みマスクレベル設定部１５は、仮想計算機制御部２０の割り込みマスクレベル更新部２０６から、ソフトウェア制御にて設定された割り込みマスクレベルを、割り込みレベル保存部１６に通知する。第２の割り込みマスクレベル設定部１５は、第１の割り込みマスクレベル設定部２０８によって通知された割り込みマスクレベルを割り込みレベルとして割り込みレベル保存部１６に設定する。
【００６９】
割り込みレベル保存部１６は、第２の割り込み種別判定部１３から通知された割り込みレベルと、第２の割り込みマスクレベル設定部１５から通知された割り込みマスクレベルとを保存する。また、割り込みレベル保存部１６は、保存されている割り込みレベルの内の最高優先度の割り込みレベルを現在の割り込みマスクレベルとして保存するレジスタである。保存された割り込みレベルは、仮想計算機制御部２０にてクリアされるまで保持される。割り込みレベル保存部１６に設定されている割り込みマスクレベルは、仮想計算機制御部２０の第１の割り込みマスクレベル設定部２０８からの要求を受け、最新の状態に更新される。
【００７０】
このように、割り込みレベル保存部１６は、発生した割り込みの優先度を示す割り込みレベルを１つ以上保存し、保存している割り込みレベルの内の最も優先度の高い割り込みレベルを割り込みマスクレベル（第２の割り込みマスクレベル）として保存する。
【００７１】
また、割り込みレベル保存部１６は、第２の割り込み種別判定部１３が受け取った割り込みの割り込みレベルを、割り込みレベル設定部１２にあらかじめ保持されている当該割り込みの種別に対応する割り込みレベルとして保存し、さらに第１の割り込みマスクレベル設定部２０８から第２の割り込みマスクレベル設定部１５に対して通知された割り込みマスクレベルを割り込みレベルとして保存する。
【００７２】
また、優先度判定部１４は、割り込みレベル保存部１６に保存されている割り込みレベルの中で最も優先度の高い割り込みレベル以下の割り込みを仮想計算機制御部２０へ通知しない。
【００７３】
以上の構成により、仮想計算機の割り込みハンドラ処理とタスク処理との終了を仮想計算機制御部２０で検出し、割り込みハンドラ処理とタスク処理とが終了したタイミングで統合割り込みコントローラ２の割り込みマスクレベルを制御することができる。これにより、タスクの優先度を通知することができない仮想計算機であっても、タスクの優先度に応じて仮想計算機の優先度を決定し、適切な仮想計算機のスケジュールを制御することが可能となる。
【００７４】
図４は、本発明の実施の形態１における統合割り込みコントローラ２の第２の割り込みレベル設定部１２の設定内容の一例を示す図である。第２の割り込みレベル設定部１２は、割り込みを通知してくるハードウェア（割り込み種別）ごとに割り込みレベルを設定する。割り込みレベルは、優先度を表している。図４では、割り込み種別は、第１の割り込みコントローラ３からの割り込み通知と、第２の割り込みコントローラ４からの割り込み通知と、アイドル検知部７からの割り込み通知との３つを含み、それぞれ“２”、“５”及び“３”の割り込みレベルが設定されている。なお、以下の説明においては、割り込みレベルは、“０”〜“７”の８段階に分け、数字が小さいほど、優先度が高いものとしている。以上の構成により、本発明の実施の形態１における統合割り込みコントローラ２は、各割り込みの優先順位を判断可能としている。
【００７５】
図５は、本発明の実施の形態１における統合割り込みコントローラ２の割り込みレベル保存部１６の保存内容の一例を示す図である。ここでは、割り込みレベルは、“０”〜“７”の８段階に分けている。割り込みレベル保存部１６は、統合割り込みコントローラ２において受け付けているハードウェア割り込みによる割り込みレベルと、仮想計算機制御部２０からソフトウェア制御により設定された割り込みレベルとを保存する。割り込みレベル保存部１６では、受け付けた割り込みレベルに対応するビットが１に設定される。また、受け付けた割り込みレベルのうち、最も数字が小さい割り込みレベルが、統合割り込みコントローラ２の割り込みマスクレベルとして設定される。統合割り込みコントローラ２は、割り込みレベル保存部１６が保持している情報を用いて、割り込み処理と仮想計算機のタスク処理との優先順位をハードウェア的に判断可能とする。
【００７６】
図６は、本発明の実施の形態１における仮想計算機制御部２０の割り込みマスクレベル設定テーブル２０７の設定内容の一例を示す図である。割り込みマスクレベル設定テーブル２０７には、割り込みマスクレベルを設定する対象となる種別と、種別ごとに設定される割り込みマスクレベルとが保存されている。割り込みハンドラ終了時に、第１の割り込みマスクレベル設定部２０８は、割り込みマスクレベル設定テーブル２０７に設定されている割り込みマスクレベルを、第２の割り込みマスクレベル設定部１５に設定する。
【００７７】
次に、第１の仮想計算機３０のタスク処理実行中に第１の割り込みコントローラ３からの割り込みが発生した場合の情報処理装置の動作について説明する。図７、図８、図９及び図１０は、第１の仮想計算機３０のタスク処理実行中に第１の割り込みコントローラ３からの割り込みが発生した場合の情報処理装置の動作の一例を示すフローチャートである。
【００７８】
まず、第１の割り込みコントローラ３における割り込み発生から、割り込み処理部３１２による割り込みハンドラ処理の終了までの動作について説明する。図７は、本発明の実施の形態１において、第１の割り込みコントローラ３における割り込み発生から、割り込み処理部３１２による割り込みハンドラ処理の終了までの動作を示すフローチャートである。
【００７９】
まず、第１の仮想計算機３０のタスク処理実行中に、第１の割り込みコントローラ３からの割り込みが発生した場合、仮想計算機制御部２０は、処理を開始する。割り込みが発生すると、割り込み通知受取部２０５は、ＣＰＵ１から出力された割り込み発生通知を受け取る（ステップＳ１）。例えば、ＣＰＵ１が、統合割り込みコントローラ２から出力される割り込み要求を受けて割り込みを検知した時に、処理がジャンプする先である割り込みベクターを、仮想計算機制御部２０に設ける。これにより、割り込み発生時に、割り込み通知受取部２０５を動作させることが可能である。
【００８０】
割り込み通知受取部２０５は、割り込みが発生したことを表す割り込み情報を第１の割り込み種別判定部２０４に通知する。次に、第１の割り込み種別判定部２０４は、発生した割り込みの割り込み種別を判定する（ステップＳ２）。なお、第１の割り込み種別判定部２０４は、判定対象の割り込み種別を、統合割り込みコントローラ２の第２の割り込み種別判定部１３から取得する。
【００８１】
割り込み種別を判定した結果、第１の割り込みコントローラ３からの割り込みであると判定された場合（ステップＳ２で“第１の割り込みコントローラ”）、第１の割り込み種別判定部２０４は、割り込みが発生したことを表す割り込み情報を割り込み復帰先書換部２０３に通知する（ステップＳ３）。
【００８２】
次に、割り込み復帰先書換部２０３は、通知された割り込み情報で指定される割り込み復帰先アドレスを、割り込み復帰先保存部２００へ保存する（ステップＳ４）。次に、割り込み復帰先書換部２０３は、通知された割り込み情報に含まれる割り込み復帰先アドレスを、仮想計算機制御部２０の内部のアドレスに書き換える（ステップＳ５）。割り込み復帰先書換部２０３は、仮想計算機スケジュール部２０２を呼び出す。なお、書き換える仮想計算機制御部２０の内部のアドレスとは、割り込みハンドラ終了検出部２０９のアドレスである。また、割り込み種別を判定した結果、アイドル検知部７からの割り込みであると判定された場合については図９、第１の割り込みコントローラ３からの割り込みであると判定された場合については図１０を用いて後で説明する。
【００８３】
次に、仮想計算機スケジュール部２０２は、割り込み復帰先書換部２０３から呼び出されたことから、第１の仮想計算機３０への割り込み要求と判断し、第１の仮想計算機３０の割り込み処理部３１２を呼び出す（ステップＳ６）。
【００８４】
次に、割り込み処理部３１２は、発生した割り込みに対応する割り込みハンドラ３２０による処理を実行する（ステップＳ７）。
【００８５】
割り込みハンドラによる処理が終了した後、割り込みハンドラ終了検出部２０９は、割り込みハンドラによる処理の終了を検出する（ステップＳ８）。また、割り込みハンドラ終了検出部２０９は、割り込みハンドラによる処理が終了したことを第１の割り込みマスクレベル設定部２０８に通知する。
【００８６】
図８は、図７のステップＳ８の処理に続いて、割り込みハンドラによる処理が終了した後の動作の一例を示すフローチャートである。
【００８７】
第１の割り込みマスクレベル設定部２０８は、図６に示す割り込みマスクレベル設定テーブル２０７から、設定されている割り込みマスクレベルを取得し、取得した割り込みマスクレベルを第２の割り込みマスクレベル設定部１５に設定する（ステップＳ９）。第１の割り込みマスクレベル設定部２０８は、割り込みマスクレベルを設定したことを割り込みマスクレベル更新部２０６に通知する。なお、第１の割り込みマスクレベル設定部２０８は、次に処理を実行する仮想計算機のタスク処理の割り込みマスクレベルを取得する。ここでは、第１の仮想計算機３０の割り込みハンドラ３２０による処理が終了しているので、第１の仮想計算機３０のタスク３００の割り込みマスクレベル（例えば、“４”）が設定される。
【００８８】
次に、割り込みマスクレベル更新部２０６は、図５に示す割り込みレベル保存部１６にアクセスし、割り込みマスクレベルを最新の割り込み状況に更新するよう要求し、割り込みマスクレベルを更新したことを仮想計算機スケジュール部２０２に通知する（ステップＳ１０）。つまり、割り込みレベル保存部１６において、割り込み要因がクリアされている割り込みレベルに関しては、ビットが０に更新される。
【００８９】
次に、仮想計算機スケジュール部２０２は、割り込み復帰先保存部２００から割り込み復帰先アドレスを取得し、仮想計算機を割り込み発生前の状態へ遷移させる（ステップＳ１１）。ここでは、第１の仮想計算機３０のタスク処理実行中に割り込み要求が発生したことから、第１の仮想計算機３０のタスク処理に戻ることになる。
【００９０】
次に、第１の仮想計算機３０は、タスク３００の処理を実行する（ステップＳ１２）。なお、ここでは、ステップＳ９において割り込みマスクレベルが“４”に設定されている。そのため、第１の仮想計算機３０のタスク処理実行中は、割り込みレベルが“５”である第２の割り込みコントローラ４からの割り込みはマスクされ、図６に示す優先度に従い、仮想計算機をスケジュールすることが可能である。
【００９１】
第１の仮想計算機３０によるタスク処理が終了すると、ＣＰＵ１は、第１の仮想計算機３０を省電力モード（アイドル状態）へ遷移する命令を発行する（ステップＳ１３）。
【００９２】
アイドル検知部７は、ステップＳ１３で発行された命令を検出し、統合割り込みコントローラ２へ割り込み要求を送信する（ステップＳ１４）。これにより、仮想計算機制御部２０は、第１の仮想計算機３０におけるタスク処理の終了を検出可能としている。
【００９３】
そして、統合割り込みコントローラ２は、アイドル検知部７からの割り込み要求を受信すると、割り込み要求をＣＰＵ１へ出力する。ＣＰＵ１は、割り込み発生通知を仮想計算機制御部２０へ出力する。その後、図７のステップＳ１の処理に戻り、割り込み通知受取部２０５は、ＣＰＵ１から出力された割り込み発生通知を受け取る。
【００９４】
図９は、図７のステップＳ２において、アイドル検知部７からの割り込みであると判定された後の動作の一例を示すフローチャートである。
【００９５】
割り込み種別を判定した結果、アイドル検知部７からの割り込みであると判定された場合（ステップＳ２で“アイドル検知部”）、第１の割り込み種別判定部２０４は、仮想計算機状態保存部２０１の保存内容に基づいて、直前に実行中だった仮想計算機を判別する（ステップＳ１５）。
【００９６】
第１の仮想計算機３０が直前に実行中だったと判別された場合（ステップＳ１５で“第１の仮想計算機”）、第１の割り込み種別判定部２０４は、仮想計算機状態保存部２０１に記憶されている第１の仮想計算機の動作状態をアイドル状態に更新する（ステップＳ１６）。一方、第２の仮想計算機４０が直前に実行中だったと判別された場合（ステップＳ１５で“第２の仮想計算機”）、第１の割り込み種別判定部２０４は、仮想計算機状態保存部２０１に記憶されている第２の仮想計算機の動作状態をアイドル状態に更新する（ステップＳ１７）。
【００９７】
仮想計算機状態保存部２０１における仮想計算機の動作状態を更新した後、割り込みマスクレベル更新部２０６は、割り込み要因をクリアする（ステップＳ１８）。次に、割り込みマスクレベル更新部２０６は、割り込みレベル保存部１６にアクセスし、割り込みマスクレベルを最新の割り込み状況に更新するよう要求し、割り込みマスクレベルを更新したことを仮想計算機スケジュール部２０２に通知する（ステップＳ１９）。
【００９８】
次に、仮想計算機スケジュール部２０２は、仮想計算機状態保存部２０１に記憶されている仮想計算機の動作状態を確認し、第１の仮想計算機３０と第２の仮想計算機４０とが共にアイドル状態であるか否かを判断する（ステップＳ２０）。
【００９９】
ここで、第１の仮想計算機３０と第２の仮想計算機４０とが共にアイドル状態であると判断された場合（ステップＳ２０でＹＥＳ）、仮想計算機スケジュール部２０２は、第２の割り込みマスク設定部１１に対して、アイドル検知部７からの割り込みをマスクするよう要求する。第２の割り込みマスク設定部１１は、アイドル検知部７からの割り込みをマスクするように優先度判定部１４を設定する（ステップＳ２１）。これは、実際にシステム全体を省電力モードへ遷移させるため、省電力モードへの命令実行時に発生する割り込み通知をマスクするために実施する。その後、ＣＰＵ１は、システム全体を省電力モードへ遷移させる（ステップＳ２２）。続いて、図７のステップＳ１の処理に戻り、割り込みが発生した場合に、割り込み通知受取部２０５は、ＣＰＵ１から出力された割り込み発生通知を受け取る。
【０１００】
一方、第１の仮想計算機３０と第２の仮想計算機４０とが共にアイドル状態でない、すなわち、アイドル状態でない仮想計算機があると判断された場合（ステップＳ２０でＮＯ）、仮想計算機スケジュール部２０２は、アイドル状態でない仮想計算機のタスク処理へ遷移させる（ステップＳ２３）。
【０１０１】
次に、第１の仮想計算機３０がアイドル状態でない場合、第２の仮想計算機４０は、タスク４００の処理を実行し、第２の仮想計算機４０がアイドル状態でない場合、第１の仮想計算機３０は、タスク３００の処理を実行する（ステップＳ２４）。その後、図７のステップＳ１の処理に戻り、割り込みが発生した場合に、割り込み通知受取部２０５は、ＣＰＵ１から出力された割り込み発生通知を受け取る。
【０１０２】
図１０は、図７のステップＳ２において、第２の割り込みコントローラ４からの割り込みであると判定された後の動作の一例を示すフローチャートである。
【０１０３】
割り込み種別を判定した結果、第２の割り込みコントローラ４からの割り込みであると判定された場合（ステップＳ２で“第２の割り込みコントローラ”）、第１の割り込み種別判定部２０４は、仮想計算機スケジュール部２０２を呼び出す。仮想計算機スケジュール部２０２は、第１の割り込み種別判定部２０４から呼び出されたことから、第２の仮想計算機４０への割り込み要求と判断し、第２の仮想計算機４０の割り込み処理部４１２を呼び出す（ステップＳ２５）。
【０１０４】
次に、割り込み処理部４１２は、発生した割り込みに対応する割り込みハンドラ４２０による処理を実行する（ステップＳ２６）。
【０１０５】
割り込みハンドラによる処理が終了した後、割り込み処理部４１２は、実行中の処理を切り替える切り替え通知を仮想計算機制御部２０の切替通知受取部２１０へ送る（ステップＳ２７）。
【０１０６】
切替通知受取部２１０は、切り替え通知を受け取り、仮想計算機スケジュール部２０２に、第２の仮想計算機４０の割り込みハンドラによる処理の終了を通知する。仮想計算機スケジュール部２０２は、第２の仮想計算機４０のタスク処理へ遷移させる（ステップＳ２８）。次に、第２の仮想計算機４０は、タスク４００の処理を実行する（ステップＳ２９）。その後、図７のステップＳ１の処理に戻り、割り込みが発生した場合に、割り込み通知受取部２０５は、ＣＰＵ１から出力された割り込み発生通知を受け取る。
【０１０７】
以上の構成により、仮想計算機の割り込みハンドラ処理とタスク処理との終了を仮想計算機制御部２０で検出し、検出したタイミングで統合割り込みコントローラ２の割り込みマスクレベルを制御することができる。これにより、タスクの優先度を通知することができない仮想計算機であっても、タスクの優先度に応じて仮想計算機の優先度を決定し、適切な仮想計算機のスケジュール制御を行うことが可能となる。
【０１０８】
特に、買い入れたバイナリプログラムなど、改変が不可能なソフトウェアの場合、タスクの優先度を通知することができないバイナリプログラムを組み込んだソフトウェアでも、適切な仮想計算機のスケジュール制御を行うことができる。
【０１０９】
（実施の形態２）
図１１は、本発明の実施の形態２における仮想計算機制御装置を備えた情報処理装置の構成を示すブロック図である。特に、図１１では、統合割り込みコントローラ２の詳細について示している。
【０１１０】
図１１では、図３で示した統合割り込みコントローラ２に通知レベル受信部１７を追加し、第２の割り込みコントローラ４に割り込みレベル通知部１８を追加している。また、図１１において、図３と同じ構成要素については同じ符号を用いている。以下、新規に追加した構成要素について説明し、同じ構成要素についての説明を省略する。
【０１１１】
割り込みレベル通知部１８は、割り込みの種類に応じて異なる複数の割り込みレベルを統合割り込みコントローラ２に通知する。すなわち、割り込みレベル通知部１８は、第２の割り込みコントローラ４内部で設定されている各割り込みのレベル（優先度）を通知レベルとして、統合割り込みコントローラ２内の通知レベル受信部１７に通知する。
【０１１２】
通知レベル受信部１７は、割り込みレベル通知部１８によって通知される複数の割り込みレベルを受信し、受信した複数の割り込みレベルをそれぞれ割り込みマスクレベルとして割り込みマスクレベル設定テーブル２０７に記憶する。
【０１１３】
通知レベル受信部１７は、割り込みレベル通知部１８から通知レベルを受け取り、受け取った通知レベルを第２の割り込み種別判定部１３に通知する。これで、統合割り込みコントローラ２内で、第２の割り込みコントローラ４からの割り込みに優先度を設けることができ、優先度に基づいて仮想計算機を制御することが可能となる。つまり、第２の割り込み種別判定部１３は、通知された通知レベルを第２の割り込みレベル設定部１２へ出力し、第２の割り込みレベル設定部１２は、通知レベルに応じた割り込みレベルを割り込み種別に対応付けて設定する。
【０１１４】
以上の構成により、第２の割り込み種別判定部１３は、受け付けた割り込み種別と、通知レベル受信部１７から通知された通知レベルに対応する割り込みレベルとを第２の割り込みレベル設定部１２から取得し、取得した割り込みレベルを割り込みレベル保存部１６に通知することができる。つまり、仮想計算機制御部２０内の割り込みマスクレベル設定テーブル２０７の設定により、第２の仮想計算機４０の一部またはすべての割り込み処理を、第１の仮想計算機３０のタスク処理よりも優先させて動作させることが可能となる。
【０１１５】
図１２は、実施の形態２において、統合割り込みコントローラ２の第２の割り込みレベル設定部１２の設定内容の一例を示す図である。なお、以下の説明においては、第２の割り込みコントローラ４からの通知レベルが“０”〜“７”の８段階で構成されている例について説明する。
【０１１６】
図１２では、通知レベルが“４”〜“０”の第２の割り込みコントローラ４からの割り込み通知の割り込みレベルは“４”に設定され、通知レベルが“７”〜“５”の第２の割り込みコントローラ４からの割り込み通知の割り込みレベルは“６”に設定されている。なお、割り込みレベルは数字が小さいほど、優先度が高いものとしている。以上の構成により、仮想計算機制御部２０内の割り込みマスクレベル設定テーブル２０７の設定を用いて、統合割り込みコントローラ２は、第２の仮想計算機４０の一部の割り込み処理を、第１の仮想計算機３０のタスク処理より優先させて動作させることができる。
【０１１７】
図１３は、本発明の実施の形態２において、仮想計算機制御部２０の割り込みマスクレベル設定テーブル２０７の設定内容の一例を示す図である。マスクレベル設定テーブル２０７には、割り込みマスクレベルを設定する対象となる種別と、種別ごとに設定される割り込みマスクレベルとが保存されている。図１３では、通知レベルが“４”〜“０”である第２の割り込みコントローラ４からの割り込み通知の割り込みマスクレベルは“４”に設定され、第１の仮想計算機３０のタスク処理の割り込みマスクレベルは“５”に設定されている。また、通知レベルが“７”〜“５”である第２の割り込みコントローラ４からの割り込み通知の割り込みマスクレベルは“６”に設定されている。これにより、第１の仮想計算機３０のタスク３００の実行中であっても、通知レベルが“４”〜“０”である第２の割り込みコントローラ４からの割り込みであれば、優先的に動作することになる。
【０１１８】
以上の構成により、仮想計算機の割り込みハンドラ処理とタスク処理との終了を仮想計算機制御部２０で検出し、検出したタイミングで統合割り込みコントローラ２の割り込みマスクレベルを制御することができる。これにより、タスクの優先度を通知することができない仮想計算機であっても、タスクの優先度に応じて仮想計算機の優先度を決定し、適切な仮想計算機のスケジュール制御を行うことが可能となる。特に、仮想計算機制御部２０内の割り込みマスクレベル設定テーブル２０７の設定で、第２の仮想計算機４０の一部またはすべての割り込み処理を、第１の仮想計算機３０のタスク処理より優先させて動作させることが可能となる。
【０１１９】
（実施の形態３）
図１４は、本発明の実施の形態３における仮想計算機制御装置を備えた情報処理装置のハードウェア構成を示すブロック図である。
【０１２０】
図１４では、図１で示した情報処理装置に、割り込みネゲート検知部９を追加している。なお、図１４において、図１と同じ構成要素については同じ符号を用いている。以下、新規に追加した構成要素について説明し、同じ構成要素についての説明を省略する。
【０１２１】
割り込みネゲート検知部９は、周辺デバイス５から出力される割り込み要求が解除されたことを検知し、統合割り込みコントローラ２へ割り込みを発生させる。すなわち、割り込みネゲート検知部９は、第１の割り込みコントローラ３から統合割り込みコントローラ２への割り込み要求が解除されたことを検知し、割り込み要求が解除されたことを統合割り込みコントローラ２へ割り込みで通知する。割り込み要求の解除は、第１の割り込みコントローラ３への割り込みを発生させている割り込み要因をクリアすることで行われる。割り込み要因がクリアされた時、統合割り込みコントローラ２への割り込み信号がネゲートされる。割り込みネゲート検知部９は、第１の割り込みコントローラ３から統合割り込みコントローラ２へ出力される割り込み信号がネゲートされたことを検知する。
【０１２２】
これにより、仮想計算機制御部２０で、第１の割り込みコントローラ３から発生した、第１の仮想計算機３０への割り込みハンドラ処理の終了を検出することが可能となる。
【０１２３】
図１５は、本発明の実施の形態３における情報処理装置のメモリ８の詳細な構成を示すブロック図である。図１５は、図２で示した仮想計算機制御部２０から割り込み復帰先書換部２０３と割り込みハンドラ終了検出部２０９とを削除した構成である。本実施の形態３において、割り込み復帰先書換部２０３と割り込みハンドラ終了検出部２０９とを削除しているのは、前述した割り込みネゲート検知部９を設けたことで、割り込み要求の解除の検知が可能となったためである。
【０１２４】
図１６は、本発明の実施の形態３における情報処理装置の統合割り込みコントローラ２の詳細な構成を示すブロック図である。図１６では、統合割り込みコントローラ２の第２の割り込み種別判定部１９が、割り込みネゲート検知部９からの割り込みを受け付ける点が、図３と異なっている。
【０１２５】
図１７は、本発明の実施の形態３において、統合割り込みコントローラ２の第２の割り込みレベル設定部１２の設定内容の一例を示す図である。割り込み種別は、割り込みネゲート検知部９からの割り込み通知、第１の割り込みコントローラ３からの割り込み通知、アイドル検知部からの割り込み通知及び第２の割り込みコントローラ４からの割り込み通知を含む。割り込みネゲート検知部９からの割り込み通知には、割り込みレベル“１”が設定されている。つまり、割り込みネゲート検知部９からの割り込み発生時は、割り込みレベル保存部１６の割り込みマスクレベルは“２”に設定されている状態なので、割り込みレベルが“１”である割り込みネゲート検知部９からの割り込み通知は受け付けられる。
【０１２６】
図１８は、本発明の実施の形態３において、第１の割り込みコントローラ３からの割り込みが発生した場合の情報処理装置の動作の一例を示すフローチャートである。
【０１２７】
まず、第１の仮想計算機３０のタスク処理実行中に、第１の割り込みコントローラ３からの割り込みが発生した場合、仮想計算機制御部２０は、処理を開始する。割り込みが発生すると、割り込み通知受取部２０５は、ＣＰＵ１から出力された割り込み発生通知を受け取る（ステップＳ４１）。
【０１２８】
割り込み通知受取部２０５は、割り込みが発生したことを表す割り込み情報を第１の割り込み種別判定部２０４に通知する。次に、第１の割り込み種別判定部２０４は、発生した割り込みの割り込み種別を判定する（ステップＳ４２）。なお、第１の割り込み種別判定部２０４は、判定対象の割り込み種別を、統合割り込みコントローラ２の第２の割り込み種別判定部１９から取得する。
【０１２９】
割り込み種別を判定した結果、第１の割り込みコントローラ３からの割り込みであると判定された場合（ステップＳ４２で“第１の割り込みコントローラ”）、第１の割り込み種別判定部２０４は、第１の仮想計算機３０の割り込み処理部３１２を呼び出す（ステップＳ４３）。
【０１３０】
なお、割り込み種別を判定した結果、アイドル検知部７からの割り込みであると判定された場合（ステップＳ４２で“アイドル検知部”）、前述した図９のステップＳ１５の処理へ移行し、第２の割り込みコントローラ４からの割り込みであると判定された場合（ステップＳ４２で“第２の割り込みコントローラ”）、前述した図１０のステップＳ２５の処理へ移行する。
【０１３１】
次に、割り込み処理部３１２は、発生した割り込みに対応する割り込みハンドラ３２０を呼び出し、当該割り込みハンドラ３２０による処理を実行する（ステップＳ４４）。次に、割り込みハンドラ３２０による処理中に、第１の割り込みコントローラ３による割り込み要因がクリアされると、割り込みネゲート検知部９は、割り込み要因のクリアを検知する（ステップＳ４５）。
【０１３２】
次に、割り込みネゲート検知部９は、統合割り込みコントローラ２へ割り込み要求を送信する（ステップＳ４６）。これにより、統合割り込みコントローラ２は、割り込みを発生させる。すなわち、統合割り込みコントローラ２は、割り込みネゲート検知部９からの割り込み要求を受信すると、割り込み要求をＣＰＵ１へ出力する。ＣＰＵ１は、割り込み発生通知を仮想計算機制御部２０へ出力する。その後、ステップＳ４１の処理へ戻り、割り込み通知受取部２０５は、ＣＰＵ１から出力された割り込み発生通知を受け取る。
【０１３３】
割り込み通知受取部２０５は、割り込みが発生したことを表す割り込み情報を第１の割り込み種別判定部２０４に通知する。次に、第１の割り込み種別判定部２０４は、発生した割り込みの割り込み種別を判定する（ステップＳ４２）。第１の割り込み種別判定部２０４は、判定対象の割り込み種別を、統合割り込みコントローラ２の第２の割り込み種別判定部１９から取得する。
【０１３４】
割り込み種別を判定した結果、割り込みネゲート検知部９からの割り込みであると判定された場合（ステップＳ４２で“割り込みネゲート検知部”）、第１の割り込み種別判定部２０４は、通知された割り込み情報で指定される割り込み復帰先アドレスを割り込み復帰先保存部２００に保存する（ステップＳ４７）。その後、前述の図８のステップＳ９の処理へ移行する。
【０１３５】
以上の構成により、割り込みネゲート検知部９及び第１の割り込み種別判定部２０４を用いて、第１の仮想計算機３０の割り込みハンドラ３２０による処理の終了を検出することができる。これにより、タスクの優先度を通知することができない仮想計算機であっても、タスクの優先度に応じて仮想計算機の優先度を決定し、適切な仮想計算機のスケジュール制御を行うことが可能となる。
【０１３６】
（実施の形態４）
図１９は、本発明の実施の形態４における仮想計算機制御装置を備えた情報処理装置の構成を示すブロック図である。図１９では、特に、統合割り込みコントローラ２の詳細な構成について示している。
【０１３７】
図１９に示す情報処理装置は、図１１に示す情報処理装置の構成に、割り込みネゲート検知部９を追加している。また、図１６との違いは、統合割り込みコントローラ２に図１１に示す通知レベル受信部１７を備え、第２の割り込みコントローラ４に図１１に示す割り込みレベル通知部１８を備えている点である。
【０１３８】
割り込みレベル通知部１８は、第２の割り込みコントローラ４内部で設定されている各割り込みのレベル（優先度）を通知レベルとして、統合割り込みコントローラ２内の通知レベル受信部１７に通知する。
【０１３９】
通知レベル受信部１７は、割り込みレベル通知部１８から通知レベルを受け取り、受け取った通知レベルを第２の割り込み種別判定部１９に通知する。これにより、統合割り込みコントローラ２内で、第２の割り込みコントローラ４からの割り込みに優先度を設けることができ、優先度に基づいて仮想計算機を制御することが可能となる。つまり、第２の割り込み種別判定部１９は、通知された通知レベルを第２の割り込みレベル設定部１２へ出力し、第２の割り込みレベル設定部１２は、通知レベルに応じた割り込みレベルを割り込み種別に対応付けて設定する。
【０１４０】
また、割り込みネゲート検知部９は、第１の割り込みコントローラ３から統合割り込みコントローラ２への割り込み要求が解除されたことを検知し、割り込み要求が解除されたことを統合割り込みコントローラ２へ割り込みで通知する。割り込み要求の解除は、第１の割り込みコントローラ３への割り込みを発生させている割り込み要因をクリアすることで行われる。割り込み要因がクリアされた時、統合割り込みコントローラ２への割り込み信号がネゲートされる。割り込みネゲート検知部９は、第１の割り込みコントローラ３から統合割り込みコントローラ２へ出力される割り込み信号がネゲートされたことを検知する。
【０１４１】
これにより、仮想計算機制御部２０で、第１の割り込みコントローラ３から発生した、第１の仮想計算機３０への割り込みハンドラ処理の終了を検出することが可能となる。
【０１４２】
以上の構成により、第２の割り込み種別判定部１９は、受け付けた割り込み種別と、通知レベル受信部１７から通知された通知レベルに対応する割り込みレベルとを第２の割り込みレベル設定部１２から取得し、取得した割り込みレベルを割り込みレベル保存部１６に通知することができる。つまり、仮想計算機制御部２０内の割り込みマスクレベル設定テーブル２０７の設定により、第２の仮想計算機４０の一部またはすべての割り込み処理を、第１の仮想計算機３０のタスク処理よりも優先させて動作させることが可能となる。
【０１４３】
更に、割り込みネゲート検知部９及び第１の割り込み種別判定部２０４を用いて、第１の仮想計算機３０の割り込みハンドラ３２０による処理の終了を検出することができる。これにより、タスクの優先度を通知することができない仮想計算機であっても、タスクの優先度に応じて仮想計算機の優先度を決定し、適切な仮想計算機のスケジュール制御を行うことが可能となる。
【０１４４】
以上、本実施の形態１〜４によれば、ソフトウェアの改変が不可能な仮想計算機に関し、設計された優先度に従って、タスク処理及び割り込み処理の実行が可能である。
【０１４５】
なお、本明細書では仮想計算機が２つの場合を実施の形態として示しているが、本発明はこれに限定されない。情報処理装置が３つ以上の仮想計算機を有する場合でも、同様に本発明を用いることができる。
【０１４６】
また、本実施の形態１〜４において、統合割り込みコントローラ２、仮想計算機制御部２０及びアイドル検知部７は、それぞれ個別のハードウェアにより構成しているが、本発明は特にこれに限定されず、統合割り込みコントローラ２、仮想計算機制御部２０及びアイドル検知部７は、プログラムにより構成してもよい。この場合、統合割り込みコントローラ２、仮想計算機制御部２０及びアイドル検知部７としてＣＰＵ１を機能させる仮想計算機制御プログラムは、メモリ８内に格納される。さらに、仮想計算機制御プログラムは、コンピュータ読み取り可能な記録媒体に記録されてもよい。
【０１４７】
また、本発明の各機能ブロックは典型的にはソフトウェアとして実現されるが、集積回路であるＬＳＩとして実現しても良い。各機能ブロックは個別に１チップ化されても良いし、一部又はすべてを含むように１チップ化されてもよい。ここでは、ＬＳＩとしたが、集積度の違いにより、ＩＣ、システムＬＳＩ、スーパーＬＳＩ又はウルトラＬＳＩと呼称されることもある。また、集積回路化の手法はＬＳＩに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）、ＬＳＩ内部の回路セルの接続または設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。さらには、半導体技術の進歩又は派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。ＬＳＩに置き換わる集積回路化の技術としては、例えばバイオ技術の適応等が可能性としてありえる。
【０１４８】
なお、上述した具体的実施形態には以下の構成を有する発明が主に含まれている。
【０１４９】
本発明の一局面に係る仮想計算機制御装置は、ＣＰＵ上で動作する複数の仮想計算機の切り替えを制御する仮想計算機制御部と、発生した割り込みの優先度を示す割り込みレベルに基づいて、前記仮想計算機制御部への割り込みの通知を制御する割り込み制御部とを備え、前記仮想計算機制御部は、前記割り込み制御部から通知された割り込みの種別を判定する第１の割り込み種別判定部と、前記第１の割り込み種別判定部によって割り込みの種別を判定した結果、発生した割り込みが現在実行中の仮想計算機に対する割り込みであると判定された場合、割り込み発生直前のプログラムカウンタ値を保存する割り込み復帰先保存部と、各仮想計算機において実行される割り込み処理の優先度及び各仮想計算機において実行されるタスク処理の優先度を第１の割り込みマスクレベルとして予め記憶する割り込みマスクレベル設定テーブルと、仮想計算機による割り込み処理が終了した場合、前記割り込みマスクレベル設定テーブルの中から、仮想計算機が次に実行する処理に対応する第１の割り込みマスクレベルを前記割り込み制御部に通知する第１の割り込みマスクレベル設定部と、前記割り込み制御部における割り込みレベルを最新の状態に更新するよう前記割り込み制御部に要求する更新部とを含み、前記割り込み制御部は、発生した割り込みの優先度を示す割り込みレベルを１つ以上保存し、保存している前記割り込みレベルの内の最も優先度の高い割り込みレベルを第２の割り込みマスクレベルとして保存する割り込みレベル保存部と、前記第１の割り込みマスクレベル設定部によって通知された前記第１の割り込みマスクレベルを割り込みレベルとして前記割り込みレベル保存部に設定する第２の割り込みマスクレベル設定部と、新規に発生した割り込みを受け取り、前記新規に発生した割り込みの種別を判定し、判定した割り込み種別に対応する割り込みレベルを前記割り込みレベル保存部に設定する第２の割り込み種別判定部と、前記割り込みレベル保存部に保存されている前記第２の割り込みマスクレベルと、前記第２の割り込み種別判定部から通知される新規に発生した割り込みの割り込みレベルとを比較し、新規に発生した割り込みの割り込みレベルが前記割り込みレベル保存部に保存されている前記第２の割り込みマスクレベルより高い場合、前記仮想計算機制御部へ割り込みを通知する優先度判定部とを含む。
【０１５０】
この構成によれば、仮想計算機制御部は、ＣＰＵ上で動作する複数の仮想計算機の切り替えを制御し、割り込み制御部は、発生した割り込みの優先度を示す割り込みレベルに基づいて、仮想計算機制御部への割り込みの通知を制御する。割り込み制御部から通知された割り込みの種別が判定され、割り込みの種別を判定した結果、発生した割り込みが現在実行中の仮想計算機に対する割り込みであると判定された場合、割り込み発生直前のプログラムカウンタ値が保存される。割り込みマスクレベル設定テーブルは、各仮想計算機において実行される割り込み処理の優先度及び各仮想計算機において実行されるタスク処理の優先度を第１の割り込みマスクレベルとして予め記憶している。仮想計算機による割り込み処理が終了した場合、割り込みマスクレベル設定テーブルの中から、仮想計算機が次に実行する処理に対応する第１の割り込みマスクレベルが割り込み制御部に通知される。また、割り込み制御部における割り込みレベルを最新の状態に更新するよう割り込み制御部に要求される。割り込みレベル保存部は、発生した割り込みの優先度を示す割り込みレベルを１つ以上保存し、保存している割り込みレベルの内の最も優先度の高い割り込みレベルを第２の割り込みマスクレベルとして保存する。通知された第１の割り込みマスクレベルが割り込みレベルとして割り込みレベル保存部に設定される。新規に発生した割り込みが受け取られ、新規に発生した割り込みの種別が判定され、判定された割り込み種別に対応する割り込みレベルが割り込みレベル保存部に設定される。割り込みレベル保存部に保存されている第２の割り込みマスクレベルと、第２の割り込み種別判定部から通知される新規に発生した割り込みの割り込みレベルとが比較され、新規に発生した割り込みの割り込みレベルが割り込みレベル保存部に保存されている第２の割り込みマスクレベルより高い場合、仮想計算機制御部へ割り込みが通知される。
【０１５１】
したがって、仮想計算機の割り込み処理が終了したタイミングで、割り込み制御部において割り込みをマスクするための優先度を更新することにより、タスクの優先度を通知することができない仮想計算機であっても、タスクの優先度に応じて仮想計算機の優先度を決定し、仮想計算機の切り替えを適切に制御することができる。
【０１５２】
また、上記の仮想計算機制御装置において、前記割り込み制御部は、割り込みの種別に対応する割り込みレベルを保持する割り込みレベル設定部をさらに含み、前記割り込みレベル保存部は、前記第２の割り込み種別判定部が受け取った割り込みの割り込みレベルを、前記割り込みレベル設定部にあらかじめ保持されている当該割り込みの種別に対応する割り込みレベルとして保存し、さらに前記第１の割り込みマスクレベル設定部から前記第２の割り込みマスクレベル設定部に対して通知された第１の割り込みマスクレベルを割り込みレベルとして保存し、前記優先度判定部は、前記割り込みレベル保存部に保存されている割り込みレベルの中で最も優先度の高い割り込みレベル以下の割り込みを前記仮想計算機制御部へ通知しないことが好ましい。
【０１５３】
この構成によれば、割り込みレベル設定部には、割り込みの種別に対応する割り込みレベルが保持される。割り込みレベル保存部は、第２の割り込み種別判定部が受け取った割り込みの割り込みレベルが、割り込みレベル設定部にあらかじめ保持されている当該割り込みの種別に対応する割り込みレベルとして保存され、かつ第１の割り込みマスクレベル設定部から前記第２の割り込みマスクレベル設定部に対して通知された第１の割り込みマスクレベルが割り込みレベルとして保存される。そして、割り込みレベル保存部に保存されている割り込みレベルの中で最も優先度の高い割り込みレベル以下の割り込みが仮想計算機制御部へ通知されない。
【０１５４】
したがって、割り込み制御部に通知された割り込みに対応する割り込みレベルを割り込みレベル保存部に適切に保存することができる。
【０１５５】
また、上記の仮想計算機制御装置において、前記ＣＰＵがアイドル状態に遷移する命令を実行したことを検知し、前記第２の割り込み種別判定部へ割り込み要求を出力するアイドル検知部をさらに備えることが好ましい。
【０１５６】
この構成によれば、ＣＰＵがアイドル状態に遷移する命令を実行したことが検知され、第２の割り込み種別判定部へ割り込み要求が出力されるので、ＣＰＵがアイドル状態、すなわち仮想計算機の動作状態がアイドル状態に遷移したことを検知することができ、当該検知結果に応じて割り込み制御部を制御することができる。
【０１５７】
また、上記の仮想計算機制御装置において、前記仮想計算機制御部は、前記複数の仮想計算機の動作状態を保存する仮想計算機状態保存部をさらに含み、前記割り込み制御部は、前記仮想計算機制御部へ割り込み要求を通知しないために、発生した割り込み要求をマスクするように前記優先度判定部を設定する割り込みマスク設定部をさらに含み、前記第２の割り込み種別判定部は、発生した割り込みが前記アイドル検知部からの割り込み要求であると判定した場合、前記仮想計算機状態保存部に保存されている直前に実行中だった仮想計算機の動作状態をアイドル状態に更新し、前記割り込みマスク設定部は、全ての仮想計算機の動作状態がアイドル状態である場合に、前記アイドル検知部からの割り込み要求をマスクするように前記優先度判定部を設定し、全ての仮想計算機をアイドル状態に遷移させることが好ましい。
【０１５８】
この構成によれば、仮想計算機状態保存部は、複数の仮想計算機の動作状態を保存する。また、発生した割り込みがアイドル検知部からの割り込み要求であると判定された場合、仮想計算機状態保存部に保存されている直前に実行中だった仮想計算機の動作状態がアイドル状態に更新される。そして、全ての仮想計算機の動作状態がアイドル状態である場合に、アイドル検知部からの割り込み要求をマスクするよう設定され、仮想計算機制御装置がアイドル状態に遷移される。
【０１５９】
したがって、全ての仮想計算機がアイドル状態になった場合に、仮想計算機制御装置がアイドル状態に遷移されるので、複数の仮想計算機のうち、一の仮想計算機がアイドル状態になり、他の仮想計算機がアイドル状態でない場合に、仮想計算機制御装置がアイドル状態に遷移することなく、確実に仮想計算機制御装置をアイドル状態に遷移させることができる。
【０１６０】
また、上記の仮想計算機制御装置において、割り込みの種類に応じて異なる複数の割り込みレベルを前記割り込み制御部に通知する割り込みレベル通知部をさらに備え、前記割り込み制御部は、前記割り込みレベル通知部によって通知される前記複数の割り込みレベルを受信し、受信した前記複数の割り込みレベルをそれぞれ第１の割り込みマスクレベルとして前記割り込みマスクレベル設定テーブルに記憶する通知レベル受信部をさらに含むことが好ましい。
【０１６１】
この構成によれば、割り込みの種類に応じて異なる複数の割り込みレベルが割り込み制御部に通知される。そして、割り込み制御部において、通知される複数の割り込みレベルが受信され、受信された複数の割り込みレベルがそれぞれ第１の割り込みマスクレベルとして割り込みマスクレベル設定テーブルに記憶される。
【０１６２】
したがって、複数の仮想計算機のうちの一の仮想計算機において、割り込みの種類に応じて異なる優先度を割り込みマスクレベル設定テーブルに設定することができ、一の仮想計算機の一部又は全ての割り込み処理を、他の仮想計算機のタスク処理より優先させて動作させることができる。
【０１６３】
また、上記の仮想計算機制御装置において、前記仮想計算機制御部は、仮想計算機による割り込み処理が終了したことを検出する割り込み終了検出部と、前記通知された割り込みで指定された割り込み復帰先アドレスを前記割り込み復帰先保存部に退避し、前記割り込み復帰先アドレスを前記割り込み終了検出部のアドレスに書き換える割り込み復帰先書き換え部とを含むことが好ましい。
【０１６４】
この構成によれば、割り込み終了検出部は、仮想計算機による割り込み処理が終了したことを検出し、割り込み復帰先書き換え部は、通知された割り込みで指定された割り込み復帰先アドレスを割り込み復帰先保存部に退避し、割り込み復帰先アドレスを割り込み終了検出部のアドレスに書き換える。
【０１６５】
したがって、仮想計算機による割り込み処理が終了すると、割り込み終了検出部により割り込み処理が終了したことが検出されるので、割り込み処理が終了したことを確実に検知することができる。
【０１６６】
また、上記の仮想計算機制御装置において、周辺装置から出力される割り込み要求が解除されたことを検知し、前記割り込み制御部へ割り込みを発生させる割り込みネゲート検知部をさらに備えることが好ましい。
【０１６７】
この構成によれば、割り込みネゲート検知部は、周辺装置から出力される割り込み要求が解除されたことを検知し、割り込み制御部へ割り込みを発生させるので、割り込み処理が終了したことをハードウェア的に検知することができ、割り込み処理が終了したことを確実に検知することができる。
【０１６８】
本発明の他の局面に係る仮想計算機制御プログラムは、ＣＰＵ上で動作する複数の仮想計算機の切り替えを制御する仮想計算機制御部と、発生した割り込みの優先度を示す割り込みレベルに基づいて、前記仮想計算機制御部への割り込みの通知を制御する割り込み制御部としてコンピュータを機能させ、前記仮想計算機制御部は、前記割り込み制御部から通知された割り込みの種別を判定する第１の割り込み種別判定部と、前記第１の割り込み種別判定部によって割り込みの種別を判定した結果、発生した割り込みが現在実行中の仮想計算機に対する割り込みであると判定された場合、割り込み発生直前のプログラムカウンタ値を保存する割り込み復帰先保存部と、各仮想計算機において実行される割り込み処理の優先度及び各仮想計算機において実行されるタスク処理の優先度を第１の割り込みマスクレベルとして予め記憶する割り込みマスクレベル設定テーブルと、仮想計算機による割り込み処理が終了した場合、前記割り込みマスクレベル設定テーブルの中から、仮想計算機が次に実行する処理に対応する第１の割り込みマスクレベルを前記割り込み制御部に通知する第１の割り込みマスクレベル設定部と、前記割り込み制御部における割り込みレベルを最新の状態に更新するよう前記割り込み制御部に要求する更新部とを含み、前記割り込み制御部は、発生した割り込みの優先度を示す割り込みレベルを１つ以上保存し、保存している前記割り込みレベルの内の最も優先度の高い割り込みレベルを第２の割り込みマスクレベルとして保存する割り込みレベル保存部と、前記第１の割り込みマスクレベル設定部によって通知された前記第１の割り込みマスクレベルを割り込みレベルとして前記割り込みレベル保存部に設定する第２の割り込みマスクレベル設定部と、新規に発生した割り込みを受け取り、前記新規に発生した割り込みの種別を判定し、判定した割り込み種別に対応する割り込みレベルを前記割り込みレベル保存部に設定する第２の割り込み種別判定部と、前記割り込みレベル保存部に保存されている前記第２の割り込みマスクレベルと、前記第２の割り込み種別判定部から通知される新規に発生した割り込みの割り込みレベルとを比較し、新規に発生した割り込みの割り込みレベルが前記割り込みレベル保存部に保存されている前記第２の割り込みマスクレベルより高い場合、前記仮想計算機制御部へ割り込みを通知する優先度判定部とを含む。
【０１６９】
この構成によれば、仮想計算機制御部は、ＣＰＵ上で動作する複数の仮想計算機の切り替えを制御し、割り込み制御部は、発生した割り込みの優先度を示す割り込みレベルに基づいて、仮想計算機制御部への割り込みの通知を制御する。割り込み制御部から通知された割り込みの種別が判定され、割り込みの種別を判定した結果、発生した割り込みが現在実行中の仮想計算機に対する割り込みであると判定された場合、割り込み発生直前のプログラムカウンタ値が保存される。割り込みマスクレベル設定テーブルは、各仮想計算機において実行される割り込み処理の優先度及び各仮想計算機において実行されるタスク処理の優先度を第１の割り込みマスクレベルとして予め記憶している。仮想計算機による割り込み処理が終了した場合、割り込みマスクレベル設定テーブルの中から、仮想計算機が次に実行する処理に対応する第１の割り込みマスクレベルが割り込み制御部に通知される。また、割り込み制御部における割り込みレベルを最新の状態に更新するよう割り込み制御部に要求される。割り込みレベル保存部は、発生した割り込みの優先度を示す割り込みレベルを１つ以上保存し、保存している割り込みレベルの内の最も優先度の高い割り込みレベルを第２の割り込みマスクレベルとして保存する。通知された第１の割り込みマスクレベルが割り込みレベルとして割り込みレベル保存部に設定される。新規に発生した割り込みが受け取られ、新規に発生した割り込みの種別が判定され、判定された割り込み種別に対応する割り込みレベルが割り込みレベル保存部に設定される。割り込みレベル保存部に保存されている第２の割り込みマスクレベルと、第２の割り込み種別判定部から通知される新規に発生した割り込みの割り込みレベルとが比較され、新規に発生した割り込みの割り込みレベルが割り込みレベル保存部に保存されている第２の割り込みマスクレベルより高い場合、仮想計算機制御部へ割り込みが通知される。
【０１７０】
したがって、仮想計算機の割り込み処理が終了したタイミングで、割り込み制御部において割り込みをマスクするための優先度を更新することにより、タスクの優先度を通知することができない仮想計算機であっても、タスクの優先度に応じて仮想計算機の優先度を決定し、仮想計算機の切り替えを適切に制御することができる。
【０１７１】
本発明の他の局面に係る仮想計算機制御回路は、ＣＰＵ上で動作する複数の仮想計算機の切り替えを制御する仮想計算機制御回路と、発生した割り込みの優先度を示す割り込みレベルに基づいて、前記仮想計算機制御回路への割り込みの通知を制御する割り込み制御回路とを備え、前記仮想計算機制御回路は、前記割り込み制御部から通知された割り込みの種別を判定する第１の割り込み種別判定回路と、前記第１の割り込み種別判定回路によって割り込みの種別を判定した結果、発生した割り込みが現在実行中の仮想計算機に対する割り込みであると判定された場合、割り込み発生直前のプログラムカウンタ値を保存する割り込み復帰先保存回路と、各仮想計算機において実行される割り込み処理の優先度及び各仮想計算機において実行されるタスク処理の優先度を第１の割り込みマスクレベルとして予め記憶する割り込みマスクレベル設定テーブルと、仮想計算機による割り込み処理が終了した場合、前記割り込みマスクレベル設定テーブルの中から、仮想計算機が次に実行する処理に対応する第１の割り込みマスクレベルを前記割り込み制御回路に通知する第１の割り込みマスクレベル設定回路と、前記割り込み制御回路における割り込みレベルを最新の状態に更新するよう前記割り込み制御回路に要求する更新回路とを含み、前記割り込み制御回路は、発生した割り込みの優先度を示す割り込みレベルを１つ以上保存し、保存している前記割り込みレベルの内の最も優先度の高い割り込みレベルを第２の割り込みマスクレベルとして保存する割り込みレベル保存回路と、前記第１の割り込みマスクレベル設定回路によって通知された前記第１の割り込みマスクレベルを割り込みレベルとして前記割り込みレベル保存回路に設定する第２の割り込みマスクレベル設定回路と、新規に発生した割り込みを受け取り、前記新規に発生した割り込みの種別を判定し、判定した割り込み種別に対応する割り込みレベルを前記割り込みレベル保存回路に設定する第２の割り込み種別判定回路と、前記割り込みレベル保存回路に保存されている前記第２の割り込みマスクレベルと、前記第２の割り込み種別判定回路から通知される新規に発生した割り込みの割り込みレベルとを比較し、新規に発生した割り込みの割り込みレベルが前記割り込みレベル保存回路に保存されている前記第２の割り込みマスクレベルより高い場合、前記仮想計算機制御回路へ割り込みを通知する優先度判定回路とを含む。
【０１７２】
この構成によれば、仮想計算機制御回路は、ＣＰＵ上で動作する複数の仮想計算機の切り替えを制御し、割り込み制御回路は、発生した割り込みの優先度を示す割り込みレベルに基づいて、仮想計算機制御回路への割り込みの通知を制御する。割り込み制御回路から通知された割り込みの種別が判定され、割り込みの種別を判定した結果、発生した割り込みが現在実行中の仮想計算機に対する割り込みであると判定された場合、割り込み発生直前のプログラムカウンタ値が保存される。割り込みマスクレベル設定テーブルは、各仮想計算機において実行される割り込み処理の優先度及び各仮想計算機において実行されるタスク処理の優先度を第１の割り込みマスクレベルとして予め記憶している。仮想計算機による割り込み処理が終了した場合、割り込みマスクレベル設定テーブルの中から、仮想計算機が次に実行する処理に対応する第１の割り込みマスクレベルが割り込み制御回路に通知される。また、割り込み制御回路における割り込みレベルを最新の状態に更新するよう割り込み制御回路に要求される。割り込みレベル保存回路は、発生した割り込みの優先度を示す割り込みレベルを１つ以上保存し、保存している割り込みレベルの内の最も優先度の高い割り込みレベルを第２の割り込みマスクレベルとして保存する。通知された第１の割り込みマスクレベルが割り込みレベルとして割り込みレベル保存回路に設定される。新規に発生した割り込みが受け取られ、新規に発生した割り込みの種別が判定され、判定された割り込み種別に対応する割り込みレベルが割り込みレベル保存回路に設定される。割り込みレベル保存回路に保存されている第２の割り込みマスクレベルと、第２の割り込み種別判定回路から通知される新規に発生した割り込みの割り込みレベルとが比較され、新規に発生した割り込みの割り込みレベルが割り込みレベル保存回路に保存されている第２の割り込みマスクレベルより高い場合、仮想計算機制御回路へ割り込みが通知される。
【０１７３】
したがって、仮想計算機の割り込み処理が終了したタイミングで、割り込み制御回路において割り込みをマスクするための優先度を更新することにより、タスクの優先度を通知することができない仮想計算機であっても、タスクの優先度に応じて仮想計算機の優先度を決定し、仮想計算機の切り替えを適切に制御することができる。
【０１７４】
本発明の他の局面に係る仮想計算機制御方法は、発生した割り込みの優先度を示す割り込みレベルに基づいて、割り込みの通知を制御する割り込み制御部から通知された割り込みの種別を判定する第１の割り込み種別判定ステップと、前記第１の割り込み種別判定ステップにおいて割り込みの種別を判定した結果、発生した割り込みが現在実行中の仮想計算機に対する割り込みであると判定された場合、割り込み発生直前のプログラムカウンタ値を保存する割り込み復帰先保存ステップと、仮想計算機による割り込み処理が終了した場合、各仮想計算機において実行される割り込み処理の優先度及び各仮想計算機において実行されるタスク処理の優先度を第１の割り込みマスクレベルとして予め記憶する割り込みマスクレベル設定テーブルの中から、仮想計算機が次に実行する処理に対応する第１の割り込みマスクレベルを前記割り込み制御部に通知する第１の割り込みマスクレベル設定ステップと、前記割り込み制御部における割り込みレベルを最新の状態に更新するよう前記割り込み制御部に要求する更新ステップと、発生した割り込みの優先度を示す割り込みレベルを１つ以上保存し、保存している前記割り込みレベルの内の最も優先度の高い割り込みレベルを第２の割り込みマスクレベルとして割り込みレベル保存部に保存する割り込みレベル保存ステップと、前記第１の割り込みマスクレベル設定ステップにおいて通知された前記第１の割り込みマスクレベルを割り込みレベルとして前記割り込みレベル保存部に設定する第２の割り込みマスクレベル設定ステップと、新規に発生した割り込みを受け取り、前記新規に発生した割り込みの種別を判定し、判定した割り込み種別に対応する割り込みレベルを前記割り込みレベル保存部に設定する第２の割り込み種別判定ステップと、前記割り込みレベル保存部に保存されている前記第２の割り込みマスクレベルと、前記第２の割り込み種別判定部から通知される新規に発生した割り込みの割り込みレベルとを比較し、新規に発生した割り込みの割り込みレベルが前記割り込みレベル保存部に保存されている前記第２の割り込みマスクレベルより高い場合、ＣＰＵ上で動作する複数の仮想計算機の切り替えを制御する仮想計算機制御部へ割り込みを通知する優先度判定ステップとを含む。
【０１７５】
この構成によれば、仮想計算機制御部は、ＣＰＵ上で動作する複数の仮想計算機の切り替えを制御し、割り込み制御部は、発生した割り込みの優先度を示す割り込みレベルに基づいて、仮想計算機制御部への割り込みの通知を制御する。割り込み制御部から通知された割り込みの種別が判定され、割り込みの種別を判定した結果、発生した割り込みが現在実行中の仮想計算機に対する割り込みであると判定された場合、割り込み発生直前のプログラムカウンタ値が保存される。割り込みマスクレベル設定テーブルは、各仮想計算機において実行される割り込み処理の優先度及び各仮想計算機において実行されるタスク処理の優先度を第１の割り込みマスクレベルとして予め記憶している。仮想計算機による割り込み処理が終了した場合、割り込みマスクレベル設定テーブルの中から、仮想計算機が次に実行する処理に対応する第１の割り込みマスクレベルが割り込み制御部に通知される。また、割り込み制御部における割り込みレベルを最新の状態に更新するよう割り込み制御部に要求される。割り込みレベル保存部は、発生した割り込みの優先度を示す割り込みレベルを１つ以上保存し、保存している割り込みレベルの内の最も優先度の高い割り込みレベルを第２の割り込みマスクレベルとして保存する。通知された第１の割り込みマスクレベルが割り込みレベルとして割り込みレベル保存部に設定される。新規に発生した割り込みが受け取られ、新規に発生した割り込みの種別が判定され、判定された割り込み種別に対応する割り込みレベルが割り込みレベル保存部に設定される。割り込みレベル保存部に保存されている第２の割り込みマスクレベルと、第２の割り込み種別判定部から通知される新規に発生した割り込みの割り込みレベルとが比較され、新規に発生した割り込みの割り込みレベルが割り込みレベル保存部に保存されている第２の割り込みマスクレベルより高い場合、仮想計算機制御部へ割り込みが通知される。
【０１７６】
したがって、仮想計算機の割り込み処理が終了したタイミングで、割り込み制御部において割り込みをマスクするための優先度を更新することにより、タスクの優先度を通知することができない仮想計算機であっても、タスクの優先度に応じて仮想計算機の優先度を決定し、仮想計算機の切り替えを適切に制御することができる。
【０１７７】
なお、発明を実施するための形態の項においてなされた具体的な実施態様または実施例は、あくまでも、本発明の技術内容を明らかにするものであって、そのような具体例にのみ限定して狭義に解釈されるべきものではなく、本発明の精神と特許請求事項との範囲内で、種々変更して実施することができるものである。
【産業上の利用可能性】
【０１７８】
本発明にかかる仮想計算機制御装置、仮想計算機制御プログラム及び仮想計算機制御回路は、仮想計算機を用いた情報処理装置などで有効である。また、本発明にかかる仮想計算機制御装置、仮想計算機制御プログラム及び仮想計算機制御回路は、大型計算機またはパーソナルコンピュータのような形態のみならず、各種の家電機器、携帯電話を含む通信機器、産業機器及び乗用機器などの組み込み機器でも利用可能である。
【図１】
2009157178.tif 000003
【図２】
2009157178.tif 000004
【図３】
2009157178.tif 000005
【図４】
2009157178.tif 000006
【図５】
2009157178.tif 000007
【図６】
2009157178.tif 000008
【図７】
2009157178.tif 000009
【図８】
2009157178.tif 000010
【図９】
2009157178.tif 000011
【図１０】
2009157178.tif 000012
【図１１】
2009157178.tif 000013
【図１２】
2009157178.tif 000014
【図１３】
2009157178.tif 000015
【図１４】
2009157178.tif 000016
【図１５】
2009157178.tif 000017
【図１６】
2009157178.tif 000018
【図１７】
2009157178.tif 000019
【図１８】
2009157178.tif 000020
【図１９】
2009157178.tif 000021
【手続補正書】
【提出日】平成22年3月4日(2010.3.4)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ＣＰＵ上で動作する複数の仮想計算機の切り替えを制御する仮想計算機制御部と、
前記複数の仮想計算機のうちの１つの仮想計算機が処理するとともに、割り込みの発生を通知する割り込み要求を出力する複数の割り込みコントローラと、
前記複数の割り込みコントローラから前記割り込み要求を受け取り、発生した割り込みの優先度を示す割り込みレベルに基づいて、前記仮想計算機制御部への割り込みの通知を制御する割り込み制御部と、
前記ＣＰＵがアイドル状態に遷移する命令を実行したことを検知し、前記割り込み制御部へ割り込み要求を出力するアイドル検知部とを備え、
前記仮想計算機制御部は、
前記割り込み制御部から通知された割り込みの種別を判定する第１の割り込み種別判定部と、
前記第１の割り込み種別判定部によって割り込みの種別を判定した結果、発生した割り込みが現在実行中の仮想計算機に対する割り込みであると判定された場合、割り込み発生直前のプログラムカウンタ値を保存する割り込み復帰先保存部と、
各仮想計算機において実行される割り込み処理の優先度及び各仮想計算機において実行されるタスク処理の優先度を第１の割り込みマスクレベルとして予め記憶する割り込みマスクレベル設定テーブルと、
仮想計算機による割り込み処理が終了した場合、前記割り込みマスクレベル設定テーブルの中から、仮想計算機が次に実行する処理に対応する第１の割り込みマスクレベルを前記割り込み制御部に通知する第１の割り込みマスクレベル設定部と、
前記割り込み制御部における割り込みレベルを最新の状態に更新するよう前記割り込み制御部に要求する更新部とを含み、
前記割り込み制御部は、
発生した割り込みの優先度を示す割り込みレベルを１つ以上保存し、保存している前記割り込みレベルの内の最も優先度の高い割り込みレベルを第２の割り込みマスクレベルとして保存する割り込みレベル保存部と、
前記第１の割り込みマスクレベル設定部によって通知された前記第１の割り込みマスクレベルを割り込みレベルとして前記割り込みレベル保存部に設定する第２の割り込みマスクレベル設定部と、
前記割り込み要求がどこから通知されたかを示す情報を割り込み種別とし、当該割り込み種別毎に対応する割り込みレベルを保持する割り込みレベル設定部と、
新規に発生した割り込み要求を受け取り、前記新規に発生した割り込み要求が前記複数の割り込みコントローラと前記アイドル検知部とのうちのどこから通知されたかを判定して割り込み種別を決定し、決定された割り込み種別に対応する前記割り込みレベル設定部に保持されている割り込みレベルを前記割り込みレベル保存部に設定する第２の割り込み種別判定部と、
前記割り込みレベル保存部に保存されている前記第２の割り込みマスクレベルと、前記第２の割り込み種別判定部から通知される新規に発生した割り込みの割り込みレベルとを比較し、新規に発生した割り込みの割り込みレベルが前記割り込みレベル保存部に保存されている前記第２の割り込みマスクレベルより高い場合、前記仮想計算機制御部へ割り込みを通知する優先度判定部とを含み、
前記仮想計算機は、第１の仮想計算機と第２の仮想計算機とを含み、
前記複数の割り込みコントローラは、前記第１の仮想計算機に対応する第１の割り込みコントローラと、前記第２の仮想計算機に対応する第２の割り込みコントローラとを含み、
前記第２の割り込みコントローラは、割り込みの発生時に、前記第２の仮想計算機が処理する割り込みのそれぞれに対して設定された割り込みレベルを通知する割り込みレベル通知部を含み、
前記割り込み制御部は、前記割り込みレベル通知部から前記割込みレベルを受信し、受信した前記割り込みレベルを前記第２の割り込み種別判定部に通知する通知レベル受信部をさらに含み、
前記第２の割り込み種別判定部は、前記通知レベル受信部によって通知された前記割り込みレベルを前記割り込みレベル設定部に出力し、
前記割り込みレベル設定部は、前記第２の割り込み種別判定部によって出力された前記割り込みレベルを前記第２の割り込みコントローラからの通知に対する割り込みレベルとすることを特徴とする仮想計算機制御装置。
【請求項２】
前記割り込みレベル保存部は、前記第２の割り込み種別判定部が受け取った割り込みの割り込みレベルを、前記割り込みレベル設定部にあらかじめ保持されている当該割り込みの種別に対応する割り込みレベルとして保存し、さらに前記第１の割り込みマスクレベル設定部から前記第２の割り込みマスクレベル設定部に対して通知された第１の割り込みマスクレベルを割り込みレベルとして保存し、
前記優先度判定部は、前記割り込みレベル保存部に保存されている割り込みレベルの中で最も優先度の高い割り込みレベル以下の割り込みを前記仮想計算機制御部へ通知しないことを特徴とする請求項１記載の仮想計算機制御装置。
【請求項３】
（削除）
【請求項４】
前記仮想計算機制御部は、前記複数の仮想計算機の動作状態を保存する仮想計算機状態保存部をさらに含み、
前記割り込み制御部は、前記仮想計算機制御部へ割り込み要求を通知しないために、発生した割り込み要求をマスクするように前記優先度判定部を設定する割り込みマスク設定部をさらに含み、
前記第２の割り込み種別判定部は、発生した割り込みが前記アイドル検知部からの割り込み要求であると判定した場合、前記仮想計算機状態保存部に保存されている直前に実行中だった仮想計算機の動作状態をアイドル状態に更新し、
前記割り込みマスク設定部は、全ての仮想計算機の動作状態がアイドル状態である場合に、前記アイドル検知部からの割り込み要求をマスクするように前記優先度判定部を設定し、前記仮想計算機制御装置をアイドル状態に遷移させることを特徴とする請求項１記載の仮想計算機制御装置。
【請求項５】
割り込みの種類に応じて異なる複数の割り込みレベルを前記割り込み制御部に通知する割り込みレベル通知部をさらに備え、
前記割り込み制御部は、前記割り込みレベル通知部によって通知される前記複数の割り込みレベルを受信し、受信した前記複数の割り込みレベルをそれぞれ第１の割り込みマスクレベルとして前記割り込みマスクレベル設定テーブルに記憶する通知レベル受信部をさらに含むことを特徴とする請求項１，２，４のいずれかに記載の仮想計算機制御装置。
【請求項６】
前記仮想計算機制御部は、
仮想計算機による割り込み処理が終了したことを検出する割り込み終了検出部と、
前記通知された割り込みで指定された割り込み復帰先アドレスを前記割り込み復帰先保存部に退避し、前記割り込み復帰先アドレスを前記割り込み終了検出部のアドレスに書き換える割り込み復帰先書き換え部とを含むことを特徴とする請求項１，２，４，５のいずれかに記載の仮想計算機制御装置。
【請求項７】
周辺装置から出力される割り込み要求が解除されたことを検知し、前記割り込み制御部へ割り込みを発生させる割り込みネゲート検知部をさらに備えることを特徴とする請求項１，２，４，５のいずれかに記載の仮想計算機制御装置。
【請求項８】
ＣＰＵ上で動作する複数の仮想計算機の切り替えを制御する仮想計算機制御部と、
前記複数の仮想計算機のうちの１つの仮想計算機が処理するとともに、割り込みの発生を通知する割り込み要求を出力する複数の割り込みコントローラと、
前記複数の割り込みコントローラから前記割り込み要求を受け取り、発生した割り込みの優先度を示す割り込みレベルに基づいて、前記仮想計算機制御部への割り込みの通知を制御する割り込み制御部と、
前記ＣＰＵがアイドル状態に遷移する命令を実行したことを検知し、前記割り込み制御部へ割り込み要求を出力するアイドル検知部としてコンピュータを機能させ、
前記仮想計算機制御部は、
前記割り込み制御部から通知された割り込みの種別を判定する第１の割り込み種別判定部と、
前記第１の割り込み種別判定部によって割り込みの種別を判定した結果、発生した割り込みが現在実行中の仮想計算機に対する割り込みであると判定された場合、割り込み発生直前のプログラムカウンタ値を保存する割り込み復帰先保存部と、
各仮想計算機において実行される割り込み処理の優先度及び各仮想計算機において実行されるタスク処理の優先度を第１の割り込みマスクレベルとして予め記憶する割り込みマスクレベル設定テーブルと、
仮想計算機による割り込み処理が終了した場合、前記割り込みマスクレベル設定テーブルの中から、仮想計算機が次に実行する処理に対応する第１の割り込みマスクレベルを前記割り込み制御部に通知する第１の割り込みマスクレベル設定部と、
前記割り込み制御部における割り込みレベルを最新の状態に更新するよう前記割り込み制御部に要求する更新部とを含み、
前記割り込み制御部は、
発生した割り込みの優先度を示す割り込みレベルを１つ以上保存し、保存している前記割り込みレベルの内の最も優先度の高い割り込みレベルを第２の割り込みマスクレベルとして保存する割り込みレベル保存部と、
前記第１の割り込みマスクレベル設定部によって通知された前記第１の割り込みマスクレベルを割り込みレベルとして前記割り込みレベル保存部に設定する第２の割り込みマスクレベル設定部と、
前記割り込み要求がどこから通知されたかを示す情報を割り込み種別とし、当該割り込み種別毎に対応する割り込みレベルを保持する割り込みレベル設定部と、
新規に発生した割り込み要求を受け取り、前記新規に発生した割り込み要求が前記複数の割り込みコントローラと前記アイドル検知部とのうちのどこから通知されたかを判定して割り込み種別を決定し、決定された割り込み種別に対応する前記割り込みレベル設定部に保持されている割り込みレベルを前記割り込みレベル保存部に設定する第２の割り込み種別判定部と、
前記割り込みレベル保存部に保存されている前記第２の割り込みマスクレベルと、前記第２の割り込み種別判定部から通知される新規に発生した割り込みの割り込みレベルとを比較し、新規に発生した割り込みの割り込みレベルが前記割り込みレベル保存部に保存されている前記第２の割り込みマスクレベルより高い場合、前記仮想計算機制御部へ割り込みを通知する優先度判定部とを含み、
前記仮想計算機は、第１の仮想計算機と第２の仮想計算機とを含み、
前記複数の割り込みコントローラは、前記第１の仮想計算機に対応する第１の割り込みコントローラと、前記第２の仮想計算機に対応する第２の割り込みコントローラとを含み、
前記第２の割り込みコントローラは、割り込みの発生時に、前記第２の仮想計算機が処理する割り込みのそれぞれに対して設定された割り込みレベルを通知する割り込みレベル通知部を含み、
前記割り込み制御部は、前記割り込みレベル通知部から前記割込みレベルを受信し、受信した前記割り込みレベルを前記第２の割り込み種別判定部に通知する通知レベル受信部をさらに含み、
前記第２の割り込み種別判定部は、前記通知レベル受信部によって通知された前記割り込みレベルを前記割り込みレベル設定部に出力し、
前記割り込みレベル設定部は、前記第２の割り込み種別判定部によって出力された前記割り込みレベルを前記第２の割り込みコントローラからの通知に対する割り込みレベルとすることを特徴とする仮想計算機制御プログラム。
【請求項９】
ＣＰＵ上で動作する複数の仮想計算機の切り替えを制御する仮想計算機制御回路と、
前記複数の仮想計算機のうちの１つの仮想計算機が処理するとともに、割り込みの発生を通知する割り込み要求を出力する複数の割り込みコントロール回路と、
前記複数の割り込みコントロール回路から前記割り込み要求を受け取り、発生した割り込みの優先度を示す割り込みレベルに基づいて、前記仮想計算機制御回路への割り込みの通知を制御する割り込み制御回路と、
前記ＣＰＵがアイドル状態に遷移する命令を実行したことを検知し、前記割り込み制御部へ割り込み要求を出力するアイドル検知回路とを備え、
前記仮想計算機制御回路は、
前記割り込み制御部から通知された割り込みの種別を判定する第１の割り込み種別判定回路と、
前記第１の割り込み種別判定回路によって割り込みの種別を判定した結果、発生した割り込みが現在実行中の仮想計算機に対する割り込みであると判定された場合、割り込み発生直前のプログラムカウンタ値を保存する割り込み復帰先保存回路と、
各仮想計算機において実行される割り込み処理の優先度及び各仮想計算機において実行されるタスク処理の優先度を第１の割り込みマスクレベルとして予め記憶する割り込みマスクレベル設定テーブルと、
仮想計算機による割り込み処理が終了した場合、前記割り込みマスクレベル設定テーブルの中から、仮想計算機が次に実行する処理に対応する第１の割り込みマスクレベルを前記割り込み制御回路に通知する第１の割り込みマスクレベル設定回路と、
前記割り込み制御部における割り込みレベルを最新の状態に更新するよう前記割り込み制御回路に要求する更新回路とを含み、
前記割り込み制御回路は、
発生した割り込みの優先度を示す割り込みレベルを１つ以上保存し、保存している前記割り込みレベルの内の最も優先度の高い割り込みレベルを第２の割り込みマスクレベルとして保存する割り込みレベル保存回路と、
前記第１の割り込みマスクレベル設定回路によって通知された前記第１の割り込みマスクレベルを割り込みレベルとして前記割り込みレベル保存回路に設定する第２の割り込みマスクレベル設定回路と、
前記割り込み要求がどこから通知されたかを示す情報を割り込み種別とし、当該割り込み種別毎に対応する割り込みレベルを保持する割り込みレベル設定回路と、
新規に発生した割り込み要求を受け取り、前記新規に発生した割り込み要求が前記複数の割り込みコントロール回路と前記アイドル検知回路とのうちのどこから通知されたかを判定して割り込み種別を決定し、決定された割り込み種別に対応する前記割り込みレベル設定部に保持されている割り込みレベルを前記割り込みレベル保存部に設定する第２の割り込み種別判定回路と、
前記割り込みレベル保存回路に保存されている前記第２の割り込みマスクレベルと、前記第２の割り込み種別判定回路から通知される新規に発生した割り込みの割り込みレベルとを比較し、新規に発生した割り込みの割り込みレベルが前記割り込みレベル保存回路に保存されている前記第２の割り込みマスクレベルより高い場合、前記仮想計算機制御回路へ割り込みを通知する優先度判定回路とを含み、
前記仮想計算機は、第１の仮想計算機と第２の仮想計算機とを含み、
前記複数の割り込みコントロール回路は、前記第１の仮想計算機に対応する第１の割り込みコントロール回路と、前記第２の仮想計算機に対応する第２の割り込みコントロール回路とを含み、
前記第２の割り込みコントロール回路は、割り込みの発生時に、前記第２の仮想計算機が処理する割り込みのそれぞれに対して設定された割り込みレベルを通知する割り込みレベル通知回路を含み、
前記割り込み制御回路は、前記割り込みレベル通知回路から前記割込みレベルを受信し、受信した前記割り込みレベルを前記第２の割り込み種別判定回路に通知する通知レベル受信回路をさらに含み、
前記第２の割り込み種別判定回路は、前記通知レベル受信回路によって通知された前記割り込みレベルを前記割り込みレベル設定回路に出力し、
前記割り込みレベル設定回路は、前記第２の割り込み種別判定回路によって出力された前記割り込みレベルを前記第２の割り込みコントロール回路からの通知に対する割り込みレベルとすることを特徴とする仮想計算機制御回路。
【請求項１０】
前記割り込みレベル通知部が通知する割り込みレベルは、第１の割り込みレベルと、前記第１の割り込みレベルよりも優先度が低い第２の割り込みレベルとを含み、
前記第１の割り込みレベル及び前記第２の割り込みレベルは、前記第１の割り込みコントローラからの割り込み要求の通知時に設定される割り込みレベルよりも低く、
前記割り込みマスクレベル設定テーブルに記憶される前記第１の割り込みレベルに対応する第１の割り込みマスクレベルは、前記第１の仮想計算機のタスク処理の優先度である第１の割り込みマスクレベルより高く、
前記割り込みマスクレベル設定テーブルに記憶される前記第２の割り込みレベルに対応する第１の割り込みマスクレベルは、前記第１の仮想計算機のタスク処理の優先度である第１の割り込みマスクレベルより低いことを特徴とする請求項１記載の仮想計算機制御装置。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１７
【補正方法】変更
【補正の内容】
【００１７】
込みマスクレベル更新部２０６から、ソフトウェア制御にて設定された割り込みマスクレベルを、割り込みレベル保存部１６に通知する。第２の割り込みマスクレベル設定部１５は、第１の割り込みマスクレベル設定部２０８によって通知された割り込みマスクレベルを割り込みレベルとして割り込みレベル保存部１６に設定する。
［００６９］
割り込みレベル保存部１６は、第２の割り込み種別判定部１３から通知された割り込みレベルと、第２の割り込みマスクレベル設定部１５から通知された割り込みマスクレベルとを保存する。また、割り込みレベル保存部１６は、保存されている割り込みレベルの内の最高優先度の割り込みレベルを現在の割り込みマスクレベルとして保存するレジスタである。保存された割り込みレベルは、仮想計算機制御部２０にてクリアされるまで保持される。割り込みレベル保存部１６に設定されている割り込みマスクレベルは、仮想計算機制御部２０の第１の割り込みマスクレベル設定部２０８からの要求を受け、最新の状態に更新される。
［００７０］
このように、割り込みレベル保存部１６は、発生した割り込みの優先度を示す割り込みレベルを１つ以上保存し、保存している割り込みレベルの内の最も優先度の高い割り込みレベルを割り込みマスクレベル（第２の割り込みマスクレベル）として保存する。
［００７１］
また、割り込みレベル保存部１６は、第２の割り込み種別判定部１３が受け取った割り込みの割り込みレベルを、第２の割り込みレベル設定部１２にあらかじめ保持されている当該割り込みの種別に対応する割り込みレベルとして保存し、さらに第１の割り込みマスクレベル設定部２０８から第２の割り込みマスクレベル設定部１５に対して通知された割り込みマスクレベルを割り込みレベルとして保存する。
［００７２］
また、優先度判定部１４は、割り込みレベル保存部１６に保存されている割り込みレベルの中で最も優先度の高い割り込みレベル以下の割り込みを仮想計算機制御部２０へ通知しない。
［００７３］
以上の構成により、仮想計算機の割り込みハンドラ処理とタスク処理との
【手続補正書】
【提出日】平成22年11月10日(2010.11.10)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ＣＰＵ上で動作する複数の仮想計算機の切り替えを制御する仮想計算機制御部と、
前記複数の仮想計算機のうちの１つの仮想計算機が処理するとともに、割り込みの発生を通知する割り込み要求を出力する複数の割り込みコントローラと、
前記複数の割り込みコントローラから前記割り込み要求を受け取り、発生した割り込みの優先度を示す割り込みレベルに基づいて、前記仮想計算機制御部への割り込みの通知を制御する割り込み制御部と、
前記ＣＰＵがアイドル状態に遷移する命令を実行したことを検知し、前記割り込み制御部へ割り込み要求を出力するアイドル検知部とを備え、
前記仮想計算機制御部は、
前記割り込み制御部から通知された割り込みの種別を判定する第１の割り込み種別判定部と、
前記第１の割り込み種別判定部によって割り込みの種別を判定した結果、発生した割り込みが現在実行中の仮想計算機に対する割り込みであると判定された場合、割り込み発生直前のプログラムカウンタ値を保存する割り込み復帰先保存部と、
各仮想計算機において実行される割り込み処理の優先度及び各仮想計算機において実行されるタスク処理の優先度を第１の割り込みマスクレベルとして予め記憶する割り込みマスクレベル設定テーブルと、
仮想計算機による割り込み処理が終了した場合、前記割り込みマスクレベル設定テーブルの中から、仮想計算機が次に実行する処理に対応する第１の割り込みマスクレベルを前記割り込み制御部に通知する第１の割り込みマスクレベル設定部と、
前記割り込み制御部における割り込みレベルを最新の状態に更新するよう前記割り込み制御部に要求する更新部とを含み、
前記割り込み制御部は、
発生した割り込みの優先度を示す割り込みレベルを１つ以上保存し、保存している前記割り込みレベルの内の最も優先度の高い割り込みレベルを第２の割り込みマスクレベルとして保存する割り込みレベル保存部と、
前記第１の割り込みマスクレベル設定部によって通知された前記第１の割り込みマスクレベルを割り込みレベルとして前記割り込みレベル保存部に設定する第２の割り込みマスクレベル設定部と、
前記割り込み要求がどこから通知されたかを示す情報を割り込み種別とし、当該割り込み種別毎に対応する割り込みレベルを保持する割り込みレベル設定部と、
新規に発生した割り込み要求を受け取り、前記新規に発生した割り込み要求が前記複数の割り込みコントローラと前記アイドル検知部とのうちのどこから通知されたかを判定して割り込み種別を決定し、決定された割り込み種別に対応する前記割り込みレベル設定部に保持されている割り込みレベルを前記割り込みレベル保存部に設定する第２の割り込み種別判定部と、
前記割り込みレベル保存部に保存されている前記第２の割り込みマスクレベルと、前記第２の割り込み種別判定部から通知される新規に発生した割り込みの割り込みレベルとを比較し、新規に発生した割り込みの割り込みレベルが前記割り込みレベル保存部に保存されている前記第２の割り込みマスクレベルより高い場合、前記仮想計算機制御部へ割り込みを通知する優先度判定部とを含み、
前記仮想計算機は、第１の仮想計算機と第２の仮想計算機とを含み、
前記複数の割り込みコントローラは、前記第１の仮想計算機に対応する第１の割り込みコントローラと、前記第２の仮想計算機に対応する第２の割り込みコントローラとを含み、
前記第２の割り込みコントローラは、割り込みの発生時に、前記第２の仮想計算機が処理する割り込みのそれぞれに対して設定された割り込みレベルを通知する割り込みレベル通知部を含み、
前記割り込み制御部は、前記割り込みレベル通知部から前記割込みレベルを受信し、受信した前記割り込みレベルを前記第２の割り込み種別判定部に通知する通知レベル受信部をさらに含み、
前記第２の割り込み種別判定部は、前記通知レベル受信部によって通知された前記割り込みレベルを前記割り込みレベル設定部に出力し、
前記割り込みレベル設定部は、前記第２の割り込み種別判定部によって出力された前記割り込みレベルを前記第２の割り込みコントローラからの通知に対する割り込みレベルとすることを特徴とする仮想計算機制御装置。
【請求項２】
前記割り込みレベル保存部は、前記第２の割り込み種別判定部が受け取った割り込みの割り込みレベルを、前記割り込みレベル設定部にあらかじめ保持されている当該割り込みの種別に対応する割り込みレベルとして保存し、さらに前記第１の割り込みマスクレベル設定部から前記第２の割り込みマスクレベル設定部に対して通知された第１の割り込みマスクレベルを割り込みレベルとして保存し、
前記優先度判定部は、前記割り込みレベル保存部に保存されている割り込みレベルの中で最も優先度の高い割り込みレベル以下の割り込みを前記仮想計算機制御部へ通知しないことを特徴とする請求項１記載の仮想計算機制御装置。
【請求項３】
前記仮想計算機制御部は、前記複数の仮想計算機の動作状態を保存する仮想計算機状態保存部をさらに含み、
前記割り込み制御部は、前記仮想計算機制御部へ割り込み要求を通知しないために、発生した割り込み要求をマスクするように前記優先度判定部を設定する割り込みマスク設定部をさらに含み、
前記第２の割り込み種別判定部は、発生した割り込みが前記アイドル検知部からの割り込み要求であると判定した場合、前記仮想計算機状態保存部に保存されている直前に実行中だった仮想計算機の動作状態をアイドル状態に更新し、
前記割り込みマスク設定部は、全ての仮想計算機の動作状態がアイドル状態である場合に、前記アイドル検知部からの割り込み要求をマスクするように前記優先度判定部を設定し、前記仮想計算機制御装置をアイドル状態に遷移させることを特徴とする請求項１記載の仮想計算機制御装置。
【請求項４】
割り込みの種類に応じて異なる複数の割り込みレベルを前記割り込み制御部に通知する割り込みレベル通知部をさらに備え、
前記割り込み制御部は、前記割り込みレベル通知部によって通知される前記複数の割り込みレベルを受信し、受信した前記複数の割り込みレベルをそれぞれ第１の割り込みマスクレベルとして前記割り込みマスクレベル設定テーブルに記憶する通知レベル受信部をさらに含むことを特徴とする請求項１〜３のいずれかに記載の仮想計算機制御装置。
【請求項５】
前記仮想計算機制御部は、
仮想計算機による割り込み処理が終了したことを検出する割り込み終了検出部と、
前記通知された割り込みで指定された割り込み復帰先アドレスを前記割り込み復帰先保存部に退避し、前記割り込み復帰先アドレスを前記割り込み終了検出部のアドレスに書き換える割り込み復帰先書き換え部とを含むことを特徴とする請求項１〜４のいずれかに記載の仮想計算機制御装置。
【請求項６】
周辺装置から出力される割り込み要求が解除されたことを検知し、前記割り込み制御部へ割り込みを発生させる割り込みネゲート検知部をさらに備えることを特徴とする請求項１〜４のいずれかに記載の仮想計算機制御装置。
【請求項７】
前記割り込みレベル通知部が通知する割り込みレベルは、第１の割り込みレベルと、前記第１の割り込みレベルよりも優先度が低い第２の割り込みレベルとを含み、
前記第１の割り込みレベル及び前記第２の割り込みレベルは、前記第１の割り込みコントローラからの割り込み要求の通知時に設定される割り込みレベルよりも低く、
前記割り込みマスクレベル設定テーブルに記憶される前記第１の割り込みレベルに対応する第１の割り込みマスクレベルは、前記第１の仮想計算機のタスク処理の優先度である第１の割り込みマスクレベルより高く、
前記割り込みマスクレベル設定テーブルに記憶される前記第２の割り込みレベルに対応する第１の割り込みマスクレベルは、前記第１の仮想計算機のタスク処理の優先度である第１の割り込みマスクレベルより低いことを特徴とする請求項１記載の仮想計算機制御装置。
【請求項８】
ＣＰＵ上で動作する複数の仮想計算機の切り替えを制御する仮想計算機制御部と、
前記複数の仮想計算機のうちの１つの仮想計算機が処理するとともに、割り込みの発生を通知する割り込み要求を出力する複数の割り込みコントローラと、
前記複数の割り込みコントローラから前記割り込み要求を受け取り、発生した割り込みの優先度を示す割り込みレベルに基づいて、前記仮想計算機制御部への割り込みの通知を制御する割り込み制御部と、
前記ＣＰＵがアイドル状態に遷移する命令を実行したことを検知し、前記割り込み制御部へ割り込み要求を出力するアイドル検知部としてコンピュータを機能させ、
前記仮想計算機制御部は、
前記割り込み制御部から通知された割り込みの種別を判定する第１の割り込み種別判定部と、
前記第１の割り込み種別判定部によって割り込みの種別を判定した結果、発生した割り込みが現在実行中の仮想計算機に対する割り込みであると判定された場合、割り込み発生直前のプログラムカウンタ値を保存する割り込み復帰先保存部と、
各仮想計算機において実行される割り込み処理の優先度及び各仮想計算機において実行されるタスク処理の優先度を第１の割り込みマスクレベルとして予め記憶する割り込みマスクレベル設定テーブルと、
仮想計算機による割り込み処理が終了した場合、前記割り込みマスクレベル設定テーブルの中から、仮想計算機が次に実行する処理に対応する第１の割り込みマスクレベルを前記割り込み制御部に通知する第１の割り込みマスクレベル設定部と、
前記割り込み制御部における割り込みレベルを最新の状態に更新するよう前記割り込み制御部に要求する更新部とを含み、
前記割り込み制御部は、
発生した割り込みの優先度を示す割り込みレベルを１つ以上保存し、保存している前記割り込みレベルの内の最も優先度の高い割り込みレベルを第２の割り込みマスクレベルとして保存する割り込みレベル保存部と、
前記第１の割り込みマスクレベル設定部によって通知された前記第１の割り込みマスクレベルを割り込みレベルとして前記割り込みレベル保存部に設定する第２の割り込みマスクレベル設定部と、
前記割り込み要求がどこから通知されたかを示す情報を割り込み種別とし、当該割り込み種別毎に対応する割り込みレベルを保持する割り込みレベル設定部と、
新規に発生した割り込み要求を受け取り、前記新規に発生した割り込み要求が前記複数の割り込みコントローラと前記アイドル検知部とのうちのどこから通知されたかを判定して割り込み種別を決定し、決定された割り込み種別に対応する前記割り込みレベル設定部に保持されている割り込みレベルを前記割り込みレベル保存部に設定する第２の割り込み種別判定部と、
前記割り込みレベル保存部に保存されている前記第２の割り込みマスクレベルと、前記第２の割り込み種別判定部から通知される新規に発生した割り込みの割り込みレベルとを比較し、新規に発生した割り込みの割り込みレベルが前記割り込みレベル保存部に保存されている前記第２の割り込みマスクレベルより高い場合、前記仮想計算機制御部へ割り込みを通知する優先度判定部とを含み、
前記仮想計算機は、第１の仮想計算機と第２の仮想計算機とを含み、
前記複数の割り込みコントローラは、前記第１の仮想計算機に対応する第１の割り込みコントローラと、前記第２の仮想計算機に対応する第２の割り込みコントローラとを含み、
前記第２の割り込みコントローラは、割り込みの発生時に、前記第２の仮想計算機が処理する割り込みのそれぞれに対して設定された割り込みレベルを通知する割り込みレベル通知部を含み、
前記割り込み制御部は、前記割り込みレベル通知部から前記割込みレベルを受信し、受信した前記割り込みレベルを前記第２の割り込み種別判定部に通知する通知レベル受信部をさらに含み、
前記第２の割り込み種別判定部は、前記通知レベル受信部によって通知された前記割り込みレベルを前記割り込みレベル設定部に出力し、
前記割り込みレベル設定部は、前記第２の割り込み種別判定部によって出力された前記割り込みレベルを前記第２の割り込みコントローラからの通知に対する割り込みレベルとすることを特徴とする仮想計算機制御プログラム。
【請求項９】
ＣＰＵ上で動作する複数の仮想計算機の切り替えを制御する仮想計算機制御回路と、
前記複数の仮想計算機のうちの１つの仮想計算機が処理するとともに、割り込みの発生を通知する割り込み要求を出力する複数の割り込みコントロール回路と、
前記複数の割り込みコントロール回路から前記割り込み要求を受け取り、発生した割り込みの優先度を示す割り込みレベルに基づいて、前記仮想計算機制御回路への割り込みの通知を制御する割り込み制御回路と、
前記ＣＰＵがアイドル状態に遷移する命令を実行したことを検知し、前記割り込み制御回路へ割り込み要求を出力するアイドル検知回路とを備え、
前記仮想計算機制御回路は、
前記割り込み制御回路から通知された割り込みの種別を判定する第１の割り込み種別判定回路と、
前記第１の割り込み種別判定回路によって割り込みの種別を判定した結果、発生した割り込みが現在実行中の仮想計算機に対する割り込みであると判定された場合、割り込み発生直前のプログラムカウンタ値を保存する割り込み復帰先保存回路と、
各仮想計算機において実行される割り込み処理の優先度及び各仮想計算機において実行されるタスク処理の優先度を第１の割り込みマスクレベルとして予め記憶する割り込みマスクレベル設定テーブルと、
仮想計算機による割り込み処理が終了した場合、前記割り込みマスクレベル設定テーブルの中から、仮想計算機が次に実行する処理に対応する第１の割り込みマスクレベルを前記割り込み制御回路に通知する第１の割り込みマスクレベル設定回路と、
前記割り込み制御回路における割り込みレベルを最新の状態に更新するよう前記割り込み制御回路に要求する更新回路とを含み、
前記割り込み制御回路は、
発生した割り込みの優先度を示す割り込みレベルを１つ以上保存し、保存している前記割り込みレベルの内の最も優先度の高い割り込みレベルを第２の割り込みマスクレベルとして保存する割り込みレベル保存回路と、
前記第１の割り込みマスクレベル設定回路によって通知された前記第１の割り込みマスクレベルを割り込みレベルとして前記割り込みレベル保存回路に設定する第２の割り込みマスクレベル設定回路と、
前記割り込み要求がどこから通知されたかを示す情報を割り込み種別とし、当該割り込み種別毎に対応する割り込みレベルを保持する割り込みレベル設定回路と、
新規に発生した割り込み要求を受け取り、前記新規に発生した割り込み要求が前記複数の割り込みコントロール回路と前記アイドル検知回路とのうちのどこから通知されたかを判定して割り込み種別を決定し、決定された割り込み種別に対応する前記割り込みレベル設定回路に保持されている割り込みレベルを前記割り込みレベル保存回路に設定する第２の割り込み種別判定回路と、
前記割り込みレベル保存回路に保存されている前記第２の割り込みマスクレベルと、前記第２の割り込み種別判定回路から通知される新規に発生した割り込みの割り込みレベルとを比較し、新規に発生した割り込みの割り込みレベルが前記割り込みレベル保存回路に保存されている前記第２の割り込みマスクレベルより高い場合、前記仮想計算機制御回路へ割り込みを通知する優先度判定回路とを含み、
前記仮想計算機は、第１の仮想計算機と第２の仮想計算機とを含み、
前記複数の割り込みコントロール回路は、前記第１の仮想計算機に対応する第１の割り込みコントロール回路と、前記第２の仮想計算機に対応する第２の割り込みコントロール回路とを含み、
前記第２の割り込みコントロール回路は、割り込みの発生時に、前記第２の仮想計算機が処理する割り込みのそれぞれに対して設定された割り込みレベルを通知する割り込みレベル通知回路を含み、
前記割り込み制御回路は、前記割り込みレベル通知回路から前記割込みレベルを受信し、受信した前記割り込みレベルを前記第２の割り込み種別判定回路に通知する通知レベル受信回路をさらに含み、
前記第２の割り込み種別判定回路は、前記通知レベル受信回路によって通知された前記割り込みレベルを前記割り込みレベル設定回路に出力し、
前記割り込みレベル設定回路は、前記第２の割り込み種別判定回路によって出力された前記割り込みレベルを前記第２の割り込みコントロール回路からの通知に対する割り込みレベルとすることを特徴とする仮想計算機制御回路。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のオペレーティングシステム（以下ＯＳと略す）とＯＳのアプリケーションとを、１つのＣＰＵ上で動作させる仮想計算機技術に関し、特に、複数の仮想計算機の切り替えを制御する仮想計算機制御装置に関するものである。
【背景技術】
【０００２】
情報処理装置で行う処理の性質は様々である。例えば、リアルタイム性能を要する処理はリアルタイムＯＳ（以下ＲＴＯＳと略す）を用いるのが適切である。一方、グラフィック機能の豊富なＯＳを用いれば、グラフィック機能をいかした優れたユーザインターフェイスなどを提供することができる。仮想計算機技術が用いられることにより、一つの機器で性質が異なる処理を同時に行うことが可能となる。
【０００３】
仮想計算機技術は、一つの物理的な計算機で複数のＯＳを同時に用いる技術であり、例えばサーバーなどで用いられている。それぞれのＯＳとＯＳのアプリケーションとが仮想的な計算機となり、一つの物理計算機上で複数の仮想計算機が時分割で実行される。
【０００４】
従来の仮想計算機の切り替えを制御する技術（仮想計算機スケジュール）としては、仮想計算機の優先度を、実行する処理に基づいて変化させるものがあった（例えば、特許文献１参照）。従来技術では、実行するタスクの優先度、すなわちＯＳがタスク管理で用いるタスクの優先度を用いて、タスクを実行する仮想計算機の優先度を設定している。優先度の高いタスクを実行する場合は、仮想計算機の優先度も高くなる。そのため、優先度の高い仮想計算機の方へ切り替えることで、タスクが属する仮想計算機にかかわらず優先度の高いタスクから実行することができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０００−２４２５１２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来の構成では、実行するタスクの優先度を仮想計算機から通知する必要があり、タスクの優先度を通知することができない仮想計算機の場合、仮想計算機の切り替え制御ができないという課題を有していた。
【０００７】
本発明は、上記の問題を解決するためになされたもので、タスクの優先度を通知することができない仮想計算機であっても、タスクの優先度に応じて仮想計算機の優先度を決定し、仮想計算機の切り替えを適切に制御することができる仮想計算機制御装置、仮想計算機制御プログラム及び仮想計算機制御回路を提供することを目的とするものである。
【課題を解決するための手段】
【０００８】
本発明の一局面に係る仮想計算機制御装置は、ＣＰＵ上で動作する複数の仮想計算機の切り替えを制御する仮想計算機制御部と、発生した割り込みの優先度を示す割り込みレベルに基づいて、前記仮想計算機制御部への割り込みの通知を制御する割り込み制御部とを備え、前記仮想計算機制御部は、前記割り込み制御部から通知された割り込みの種別を判定する第１の割り込み種別判定部と、前記第１の割り込み種別判定部によって割り込みの種別を判定した結果、発生した割り込みが現在実行中の仮想計算機に対する割り込みであると判定された場合、割り込み発生直前のプログラムカウンタ値を保存する割り込み復帰先保存部と、各仮想計算機において実行される割り込み処理の優先度及び各仮想計算機において実行されるタスク処理の優先度を第１の割り込みマスクレベルとして予め記憶する割り込みマスクレベル設定テーブルと、仮想計算機による割り込み処理が終了した場合、前記割り込みマスクレベル設定テーブルの中から、仮想計算機が次に実行する処理に対応する第１の割り込みマスクレベルを前記割り込み制御部に通知する第１の割り込みマスクレベル設定部と、前記割り込み制御部における割り込みレベルを最新の状態に更新するよう前記割り込み制御部に要求する更新部とを含み、前記割り込み制御部は、発生した割り込みの優先度を示す割り込みレベルを１つ以上保存し、保存している前記割り込みレベルの内の最も優先度の高い割り込みレベルを第２の割り込みマスクレベルとして保存する割り込みレベル保存部と、前記第１の割り込みマスクレベル設定部によって通知された前記第１の割り込みマスクレベルを割り込みレベルとして前記割り込みレベル保存部に設定する第２の割り込みマスクレベル設定部と、新規に発生した割り込みを受け取り、前記新規に発生した割り込みの種別を判定し、判定した割り込み種別に対応する割り込みレベルを前記割り込みレベル保存部に設定する第２の割り込み種別判定部と、前記割り込みレベル保存部に保存されている前記第２の割り込みマスクレベルと、前記第２の割り込み種別判定部から通知される新規に発生した割り込みの割り込みレベルとを比較し、新規に発生した割り込みの割り込みレベルが前記割り込みレベル保存部に保存されている前記第２の割り込みマスクレベルより高い場合、前記仮想計算機制御部へ割り込みを通知する優先度判定部とを含む。
【０００９】
この構成によれば、仮想計算機制御部は、ＣＰＵ上で動作する複数の仮想計算機の切り替えを制御し、割り込み制御部は、発生した割り込みの優先度を示す割り込みレベルに基づいて、仮想計算機制御部への割り込みの通知を制御する。割り込み制御部から通知された割り込みの種別が判定され、現在実行中の仮想計算機に対する割り込みであると判定された場合、割り込み発生直前のプログラムカウンタ値が保存される。割り込みマスクレベル設定テーブルは、各仮想計算機において実行される割り込み処理の優先度及び各仮想計算機において実行されるタスク処理の優先度を第１の割り込みマスクレベルとして予め記憶している。仮想計算機による割り込み処理が終了した場合、割り込みマスクレベル設定テーブルの中から、仮想計算機が次に実行する処理に対応する第１の割り込みマスクレベルが割り込み制御部に通知される。また、割り込み制御部における割り込みレベルを最新の状態に更新するよう割り込み制御部に要求される。割り込みレベル保存部は、発生した割り込みの優先度を示す割り込みレベルを１つ以上保存し、保存している割り込みレベルの内の最も優先度の高い割り込みレベルを第２の割り込みマスクレベルとして保存する。通知された第１の割り込みマスクレベルが割り込みレベルとして割り込みレベル保存部に設定される。新規に発生した割り込みが受け取られ、新規に発生した割り込みの種別が判定され、判定された割り込み種別に対応する割り込みレベルが割り込みレベル保存部に設定される。割り込みレベル保存部に保存されている第２の割り込みマスクレベルと、第２の割り込み種別判定部から通知される新規に発生した割り込みの割り込みレベルとが比較され、新規に発生した割り込みの割り込みレベルが割り込みレベル保存部に保存されている第２の割り込みマスクレベルより高い場合、仮想計算機制御部へ割り込みが通知される。
【発明の効果】
【００１０】
本発明によれば、仮想計算機の割り込み処理が終了したタイミングで、割り込み制御部において割り込みをマスクするための優先度を更新することにより、タスクの優先度を通知することができない仮想計算機であっても、タスクの優先度に応じて仮想計算機の優先度を決定し、仮想計算機の切り替えを適切に制御することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施の形態１における仮想計算機制御装置を備えた情報処理装置のハードウェア構成を示すブロック図である。
【図２】本発明の実施の形態１における情報処理装置のメモリの詳細な構成を示すブロック図である。
【図３】本発明の実施の形態１における情報処理装置の統合割り込みコントローラの詳細な構成を示すブロック図である。
【図４】本発明の実施の形態１における統合割り込みコントローラの第２の割り込みレベル設定部の設定内容の一例を示す図である。
【図５】本発明の実施の形態１における統合割り込みコントローラの割り込みレベル保存部の保存内容の一例を示す図である。
【図６】本発明の実施の形態１における仮想計算機制御部の割り込みマスクレベル設定テーブルの設定内容の一例を示す図である。
【図７】本発明の実施の形態１において、第１の割り込みコントローラにおける割り込み発生から、割り込み処理部による割り込みハンドラ処理の終了までの動作の一例を示すフローチャートである。
【図８】図７のステップＳ８の処理に続いて、割り込みハンドラによる処理が終了した後の動作の一例を示すフローチャートである。
【図９】図７のステップＳ２において、アイドル検知部からの割り込みであると判定された後の動作の一例を示すフローチャートである。
【図１０】図７のステップＳ２において、第２の割り込みコントローラからの割り込みであると判定された後の動作の一例を示すフローチャートである。
【図１１】本発明の実施の形態２における仮想計算機制御装置を備えた情報処理装置の構成を示すブロック図である。
【図１２】本発明の実施の形態２において、統合割り込みコントローラの第２の割り込みレベル設定部の設定内容の一例を示す図である。
【図１３】本発明の実施の形態２において、仮想計算機制御部の割り込みマスクレベル設定テーブルの設定内容の一例を示す図である。
【図１４】本発明の実施の形態３における仮想計算機制御装置を備えた情報処理装置のハードウェア構成を示すブロック図である。
【図１５】本発明の実施の形態３における情報処理装置のメモリの詳細な構成を示すブロック図である。
【図１６】本発明の実施の形態３における仮想計算機制御装置を備えた情報処理装置の統合割り込みコントローラの詳細な構成を示すブロック図である。
【図１７】本発明の実施の形態３において、統合割り込みコントローラの第２の割り込みレベル設定部の設定内容の一例を示す図である。
【図１８】本発明の実施の形態３において、第１の割り込みコントローラからの割り込みが発生した場合の情報処理装置の動作の一例を示すフローチャートである。
【図１９】本発明の実施の形態４における仮想計算機制御装置を備えた情報処理装置の構成を示すブロック図である。
【発明を実施するための形態】
【００１２】
以下本発明の実施の形態について、図面を参照しながら説明する。尚、以下の実施の形態は、本発明を具体化した一例であって、本発明の技術的範囲を限定する性格のものではない。
【００１３】
（実施の形態１）
図１は、本発明の実施の形態１における仮想計算機制御装置を備えた情報処理装置のハードウェア構成を示すブロック図である。
【００１４】
情報処理装置は、中央演算装置（ＣＰＵ）１、統合割り込みコントローラ２、第１の割り込みコントローラ３、第２の割り込みコントローラ４、周辺デバイス５、周辺デバイス６、アイドル検知部７及びメモリ８を備えている。
【００１５】
ＣＰＵ１は、処理能力が十分であれば任意のものが利用可能である。統合割り込みコントローラ２は、第１の割り込みコントローラ３、第２の割り込みコントローラ４及びアイドル検知部７から通知される割り込み要求のうち、最も優先度の高い割り込み要求を判断し、最も優先度の高い割り込みをＣＰＵ１へ通知する。
【００１６】
第１の割り込みコントローラ３は、周辺デバイス５から発生する割り込み要求を統合割り込みコントローラ２へ通知する。第２の割り込みコントローラ４は、第１の割り込みコントローラ３と同様に、周辺デバイス６から発生する割り込み要求を統合割り込みコントローラ２へ通知する。
【００１７】
周辺デバイス５，６は、各種の入出力装置であり、情報処理装置の使用目的に応じた入出力装置が利用される。例えば、周辺デバイス５，６は、キーデバイス、通信デバイス、表示デバイス、デコーダ、エンコーダ、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）及びＤＭＡ（Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）コントローラなどを含む。
【００１８】
なお、周辺デバイス５は、第１の仮想計算機３０において処理される割り込みを発生させ、周辺デバイス６は、第２の仮想計算機４０において処理される割り込みを発生させる。第１の割り込みコントローラ３は、第１の仮想計算機３０への割り込み要求を出力し、第２の割り込みコントローラ４は、第２の仮想計算機４０への割り込み要求を出力する。
【００１９】
アイドル検知部７は、ＣＰＵ１がアイドル状態（省電力モード）に遷移する命令を実行したことを検知し、第２の割り込み種別判定部１３へ割り込み要求を出力する。すなわち、アイドル検知部７は、ＣＰＵ１が省電力モードに遷移する命令を発行する時にＣＰＵ１から出力される信号を検知し、統合割り込みコントローラ２に割り込み要求を通知する。
【００２０】
メモリ８には、仮想計算機制御部２０と、第１の仮想計算機３０と、第２の仮想計算機４０としてＣＰＵ１を機能させるプログラムが格納されている。メモリ８は、単一のメモリ装置で構成されている必要はなく、同種の複数のメモリ又はリードオンリーメモリ（ＲＯＭ）を含む異種のメモリの組み合わせであってもよい。さらに、メモリ８以外に、例えばハードディスクドライブのような外部記憶装置を設け、情報処理装置の動作に問題のない範囲で外部記憶装置にメモリ８の内容を移動させてもよい。
【００２１】
図２は、本発明の実施の形態１における情報処理装置のメモリ８の詳細な構成を示すブロック図である。メモリ８は、第１の仮想計算機３０と、第２の仮想計算機４０と、仮想計算機制御部２０としてＣＰＵ１を機能させるプログラムを記憶する。
【００２２】
第１の仮想計算機３０は、複数のタスク３００と、第１のＯＳ３１０とを備えている。また、第１のＯＳ３１０は、タスクスケジューラ３１１と、割り込み処理部３１２とを含んでいる。
【００２３】
タスクスケジューラ３１１は、次に実行すべきタスクを決定し、決定したタスクを実行する。割り込み処理部３１２は、複数の割り込みハンドラ３２０を含み、割り込み発生を受け取ると、割り込みの要因に応じた割り込みハンドラ３２０を実行する。以下、第１の仮想計算機３０は、ソフトウェアの改変が不可能な仮想計算機として説明する。
【００２４】
第２の仮想計算機４０は、第１の仮想計算機３０と同様に、複数のタスク４００と、第２のＯＳ４１０とを備えている。また、第２のＯＳ４１０は、タスクスケジューラ４１１と、割り込み処理部４１２とを含んでいる。
【００２５】
タスクスケジューラ４１１は、次に実行すべきタスクを決定し、決定したタスクを実行する。割り込み処理部４１２は、複数の割り込みハンドラ４２０を含み、割り込み発生を受け取ると、割り込みの要因に応じた割り込みハンドラ４２０を実行する。
【００２６】
タスクスケジューラ４１１及び割り込み処理部４１２の動作は、第１の仮想計算機３０に含まれるタスクスケジューラ３１１及び割り込み処理部３１２と同様である。
【００２７】
なお、各タスク３００，４００または割り込みハンドラ３２０，４２０ごとに、優先度が設定されている。
【００２８】
本発明の実施の形態１における情報処理装置は、複数の仮想計算機（第１の仮想計算機３０及び第２の仮想計算機４０）を備え、各仮想計算機（第１の仮想計算機３０及び第２の仮想計算機４０）は、互いに異なるＯＳ（第１のＯＳ３１０及び第２のＯＳ４１０）と、タスク３００，４００と、割り込みハンドラ３２０，４２０とを備えている。
【００２９】
第１の仮想計算機３０と第２の仮想計算機４０とは、後述する仮想計算機制御部２０により切り替えられる。複数の仮想計算機（第１の仮想計算機３０及び第２の仮想計算機４０）は、同時に動作することはなく、時分割で実行される。これにより、一つの物理的な計算機上において複数の計算機の働きをさせることができる。例えば、リアルタイム性能を要求される処理は、第１の仮想計算機３０のタスク３００または割り込みハンドラ３２０として実装し、第１のＯＳ３１０にリアルタイム性能に優れたＲＴＯＳを用いる。また、ユーザインターフェイスに関する処理は、第２の仮想計算機４０のタスク４００または割り込みハンドラ４２０として実装し、第２のＯＳ４１０にグラフィック機能の豊富なＯＳを用いる。
【００３０】
このような構成により、本実施の形態１の情報処理装置は、リアルタイム性能を必要とする伝送系の制御と、豊富なグラフィック機能を用いた優れたユーザインターフェイス制御とを同時に実現できる。
【００３１】
なお、第１のＯＳ３１０と第２のＯＳ４１０とを互いに異なるＯＳにする必要は必ずしもなく、第１のＯＳ３１０と第２のＯＳ４１０とを同じＯＳにしてもよい。
【００３２】
仮想計算機制御部２０は、ＣＰＵ１上で動作する複数の仮想計算機の切り替えを制御する。仮想計算機制御部２０は、割り込み復帰先保存部２００、仮想計算機状態保存部２０１、仮想計算機スケジュール部２０２、割り込み復帰先書換部２０３、第１の割り込み種別判定部２０４、割り込み通知受取部２０５、割り込みマスクレベル更新部２０６、割り込みマスクレベル設定テーブル２０７、第１の割り込みマスクレベル設定部２０８、割り込みハンドラ終了検出部２０９、切替通知受取部２１０、第１の割り込みマスク設定部２１１及び第１の割り込みレベル設定部２１２を備える。
【００３３】
割り込み通知受取部２０５は、割り込みが発生した際に、統合割り込みコントローラ２からの割り込み発生通知を、ＣＰＵ１を介して受け取る。そして、割り込み通知受取部２０５は、割り込みが発生したことを表す割り込み情報を第１の割り込み種別判定部２０４に通知する。
【００３４】
第１の割り込み種別判定部２０４は、統合割り込みコントローラ２から通知された割り込みの種別を判定する。第１の割り込み種別判定部２０４は、割り込み通知受取部２０５から通知された割り込みに対応する割り込み種別を、後述する統合割り込みコントローラ２内の第２の割り込み種別判定部１３に要求し、第２の割り込み種別判定部１３から割り込み種別を取得する。
【００３５】
次に、第１の割り込み種別判定部２０４は、第２の割り込み種別判定部１３から取得した割り込み種別に応じて、仮想計算機（第１の仮想計算機３０及び第２の仮想計算機４０）の動作状態を仮想計算機状態保存部２０１に設定する。仮想計算機の動作状態には、仮想計算機が処理を実行していることを表す実行状態と、仮想計算機が省電力モードに遷移していることを表すアイドル状態と、仮想計算機が一時的に動作を停止していることを表すサスペンド状態とが含まれる。
【００３６】
第１の割り込み種別判定部２０４は、第１の割り込みコントローラ３又は第２の割り込みコントローラ４から送信された割り込みであれば、当該割り込みを実行する仮想計算機の動作状態を実行状態に設定し、実行状態にあった仮想計算機をサスペンド状態に設定する。また、第１の割り込み種別判定部２０４は、アイドル検知部７から送信された割り込み通知であれば、該当する仮想計算機の動作状態をアイドル状態に設定する。更に、第１の割り込み種別判定部２０４は、第１の割り込みコントローラ３又は第２の割り込みコントローラ４から送信された割り込みであれば、割り込みが発生したことを表す割り込み情報を割り込み復帰先書換部２０３に通知し、アイドル検知部７から送信された割り込みであれば、割り込みが発生したことを表す割り込み情報を割り込みマスクレベル更新部２０６へ通知する。
【００３７】
なお、割り込み通知には、リセット要求を求める割り込み通知がある。ウォッチドッグタイマは、仮想計算機がフリーズ状態になった際に、リセット要求を求める割り込み通知を発行する。ＣＰＵ１は、ウォッチドッグタイマから割り込み通知を受けた際、割り込みハンドラ処理の最後に割り込みを禁止した状態で無限ループを実行し、ハードウェア的な再起動を待つ。上記のようなリセット処理が実行される場合、割り込みが禁止された状態で無限ループに陥る。そのため、他の仮想計算機への割り込み処理が実行できなくなり、システムが動作できなくなるという課題がある。
【００３８】
そこで、例えば、発生した割り込みが、第１の仮想計算機３０に対するウォッチドッグタイマによる割り込みである場合、第１の割り込み種別判定部２０４は、第１の仮想計算機３０に設定されている特権モードを解除してもよい。第１の仮想計算機３０の特権モードが解除されることで、第１の仮想計算機３０によるＣＰＵ割り込みを禁止する操作が防止され、上記課題を解決することができる。
【００３９】
仮想計算機状態保存部２０１は、前述した第１の割り込み種別判定部２０４によって設定される仮想計算機（第１の仮想計算機３０及び第２の仮想計算機４０）の動作状態を保存する。
【００４０】
割り込み復帰先書換部２０３は、通知された割り込みで指定された割り込み復帰先アドレスを割り込み復帰先保存部２００に退避し、割り込み復帰先アドレスを割り込みハンドラ終了検出部２０９のアドレスに書き換える。
【００４１】
割り込み復帰先書換部２０３は、第１の割り込み種別判定部２０４から割り込み情報が通知されると、通知された割り込みによって指定される割り込み復帰先アドレスを、割り込み復帰先保存部２００に退避する。割り込み復帰先書換部２０３は、割り込み処理が終了した際に復帰する処理を表す割り込み復帰先アドレスを、割り込み復帰先保存部２００に退避する。
【００４２】
次に、割り込み復帰先書換部２０３は、通知された割り込み情報に含まれる割り込み復帰先アドレスを、仮想計算機制御部２０内の割り込みハンドラ終了検出部２０９のアドレスに書換え、仮想計算機スケジュール部２０２に割り込み情報を通知する。これにより、仮想計算機（第１の仮想計算機３０又は第２の仮想計算機４０）の割り込みハンドラ処理の終了を仮想計算機制御部２０内で検出することが可能となる。
【００４３】
割り込み復帰先保存部２００は、割り込み復帰先書換部２０３によって退避された割り込み復帰先アドレスを保存する。割り込み復帰先保存部２００が保存する割り込み復帰先アドレスは、割り込み発生時に実行中であった仮想計算機（第１の仮想計算機３０又は第２の仮想計算機４０）のプログラムカウンタの値となる。割り込み復帰先保存部２００は、第１の割り込み種別判定部２０４によって割り込みの種別を判定した結果、発生した割り込みが現在実行中の仮想計算機に対する割り込みであると判定された場合、割り込み発生直前のプログラムカウンタ値を保存する。
【００４４】
割り込みマスクレベル更新部２０６は、統合割り込みコントローラ２における割り込みレベルを最新の状態に更新するよう統合割り込みコントローラ２に要求する。なお、本実施の形態において、割り込みマスクレベル更新部２０６が更新部の一例に相当する。
【００４５】
割り込みマスクレベル更新部２０６は、後述する統合割り込みコントローラ２内の割り込みレベル保存部１６に割り込みマスクレベルの更新を要求して、割り込みレベル保存部１６に保存されている割り込みマスクレベルを最新の状態へ更新し、割り込みマスクレベルを更新したことを仮想計算機スケジュール部２０２に通知する。第１の割り込みコントローラ３及び第２の割り込みコントローラ４に対する割り込み要因がクリアされていれば、この時点で、割り込みレベル保存部１６に保存されていた該当割り込みレベルがクリアされる。
【００４６】
割り込みハンドラ終了検出部２０９は、実行されることで割り込みハンドラによる割り込み処理が終了したことを検出し、割り込みハンドラによる処理が終了したことを第１の割り込みマスクレベル設定部２０８へ通知する。つまり、割り込み復帰先書換部２０３が、割り込み復帰先アドレスを、割り込みハンドラ終了検出部２０９のアドレスに書き換えることで、割り込みハンドラによる処理が終了すると、割り込みハンドラ終了検出部２０９に処理が戻ることになる。なお、本実施の形態において、割り込みハンドラ終了検出部２０９が割り込み終了検出部の一例に相当する。
【００４７】
割り込みマスクレベル設定テーブル２０７は、仮想計算機（第１の仮想計算機３０及び第２の仮想計算機４０）によるタスク（タスク３００及びタスク４００）実行時の割り込みマスクレベルの設定値が保存されたテーブルである。割り込みマスクレベル設定テーブル２０７は、各仮想計算機において実行される割り込み処理の優先度及び各仮想計算機において実行されるタスク処理の優先度を割り込みマスクレベル（第１の割り込みマスクレベル）として予め記憶する。なお、割り込みマスクレベルよりも高い優先度を有する割り込みは実行され、割り込みマスクレベルよりも低い優先度を有する割り込みは実行されない。割り込みマスクレベルは、システム起動時に仮想計算機制御部２０により設定される値であり、システム稼働中に変更されない固定値とする。
【００４８】
第１の割り込みマスクレベル設定部２０８は、割り込みハンドラ終了検出部２０９からの割り込みハンドラ終了通知を受け取り、処理を行う。第１の割り込みマスクレベル設定部２０８は、割り込みマスクレベル設定テーブル２０７に設定されている割り込みマスクレベルを、統合割り込みコントローラ２内の第２の割り込みマスクレベル設定部１５に設定する。第１の割り込みマスクレベル設定部２０８は、割り込みマスクレベルを設定したことを割り込みマスクレベル更新部２０６に通知する。
【００４９】
なお、第１の割り込みマスクレベル設定部２０８は、次に処理を実行する仮想計算機のタスク処理の割り込みマスクレベルを、割り込みマスクレベル設定テーブル２０７から取得する。例えば、第１の仮想計算機３０向けの割り込みハンドラ処理が終了した場合、第１の仮想計算機３０のタスクの割り込みマスクレベルが設定されることになる。
【００５０】
すなわち、第１の割り込みマスクレベル設定部２０８は、割り込みハンドラによる割り込み処理が終了した場合、割り込みマスクレベル設定テーブル２０７の中から、仮想計算機が次に実行する処理に対応する割り込みマスクレベルを統合割り込みコントローラ２に通知する。
【００５１】
切替通知受取部２１０は、実行中の処理を切り替える切り替え通知を第２の仮想計算機４０から受け取り、割り込みハンドラによる処理の終了を仮想計算機スケジュール部２０２に通知する。
【００５２】
仮想計算機スケジュール部２０２は、呼び出し元と、割り込み種別と、仮想計算機の動作状態とに基づいて、仮想計算機の切り替え制御を行う。具体的には、仮想計算機スケジュール部２０２は、割り込み復帰先書換部２０３から呼び出された場合、第１の仮想計算機３０への割り込み要求と判断し、割り込み処理部３１２を呼び出す。
【００５３】
また、仮想計算機スケジュール部２０２は、割り込みマスクレベル更新部２０６から呼び出された場合、割り込み種別がアイドル検知部７からの割り込み通知以外であれば、割り込み復帰先保存部２００に保存されている割り込み復帰先アドレスへ遷移させる。仮想計算機スケジュール部２０２は、アイドル検知部７からの割り込み通知であれば、仮想計算機状態保存部２０１に保存された仮想計算機の動作状態を確認する。仮想計算機スケジュール部２０２は、第１の仮想計算機３０と第２の仮想計算機４０とが共にアイドル状態であれば、システム全体を省電力モードへ遷移させる。一方、仮想計算機スケジュール部２０２は、第１の仮想計算機３０と第２の仮想計算機４０とのうち、サスペンド状態の仮想計算機があれば、サスペンド状態の仮想計算機のタスクスケジューラ４１１を呼び出す。
【００５４】
また、仮想計算機スケジュール部２０２は、切替通知受取部２１０から呼び出された場合、第２の仮想計算機４０の割り込み処理終了と判断し、割り込みマスクレベル設定テーブル２０７の優先度に基づき、第２の仮想計算機４０のタスクスケジューラ４１１に処理を遷移させる。
【００５５】
第１の割り込みマスク設定部２１１は、統合割り込みコントローラ２で用いる割り込みマスクを設定するための割り込みマスク設定要求を、後述する統合割り込みコントローラ２内の第２の割り込みマスク設定部１１に送信し、統合割り込みコントローラ２で用いる割り込みマスクを設定する。これにより、統合割り込みコントローラ２は、不要な割り込みをマスクすることが可能となる。
【００５６】
第１の割り込みレベル設定部２１２は、各割り込み種別に対応する割り込みレベルを設定するための割り込みレベル設定要求を、後述する統合割り込みコントローラ２内の第２の割り込みレベル設定部１２に送信し、各割り込み種別に対応する割り込みレベルを設定する。なお、第１の割り込みレベル設定部２１２は、システム起動時に処理を行う。これにより、割り込みが発生した際に、割り込み種別の割り込みレベルに応じた処理を行うことが可能となる。
【００５７】
図３は、本発明の実施の形態１における情報処理装置の統合割り込みコントローラ２の詳細な構成を示すブロック図である。図３を用いて、統合割り込みコントローラ２の詳細な構成について説明する。
【００５８】
統合割り込みコントローラ２は、発生した割り込みの優先度を示す割り込みレベルに基づいて、仮想計算機制御部２０への割り込みの通知を制御する。統合割り込みコントローラ２は、第２の割り込みマスク設定部１１、第２の割り込みレベル設定部１２、第２の割り込み種別判定部１３、優先度判定部１４、第２の割り込みマスクレベル設定部１５及び割り込みレベル保存部１６を備えている。なお、本実施の形態において、統合割り込みコントローラ２が割り込み制御部の一例に相当する。
【００５９】
第２の割り込みマスク設定部１１は、第１の割り込みコントローラ３、第２の割り込みコントローラ４及びアイドル検知部７からの割り込み要求を、ＣＰＵ１へ通知するか否かを設定するためのレジスタである。第２の割り込みマスク設定部１１は、仮想計算機制御部２０の第１の割り込みマスク設定部２１１からの割り込みマスク設定要求を受け、割り込みマスク設定要求に基づいた割り込みマスクの設定を保持する。
【００６０】
また、第２の割り込みマスク設定部１１は、仮想計算機制御部２０の仮想計算機スケジュール部２０２からの要求を受け、要求に基づいて割り込みをマスクするように優先度判定部１４を設定する。第２の割り込みマスク設定部１１は、仮想計算機制御部２０へ割り込み要求を通知しないために、発生した割り込み要求をマスクするように優先度判定部１４を設定する。
【００６１】
第２の割り込みマスク設定部１１は、全ての仮想計算機の動作状態がアイドル状態である場合に、アイドル検知部７からの割り込み要求をマスクするように優先度判定部１４を設定し、システム全体を省電力モードに遷移させる。
【００６２】
第２の割り込みレベル設定部１２は、第１の割り込みコントローラ３、第２の割り込みコントローラ４及びアイドル検知部７からの割り込み要求に優劣をつけるため、それぞれの割り込み要求にレベル（優先度）を設定するレジスタである。第２の割り込みレベル設定部１２は、仮想計算機制御部２０の第１の割り込みレベル設定部２１２からの割り込みレベル設定要求を受け、割り込みレベル設定要求に基づいた割り込みレベルの設定を保持する。第２の割り込みレベル設定部１２は、割り込みの種別に対応する割り込みレベルを保持する。
【００６３】
第２の割り込み種別判定部１３は、新規に発生した割り込みを受け取り、新規に発生した割り込みの種別を判定し、判定した割り込み種別に対応する割り込みレベルを割り込みレベル保存部１６に設定する。
【００６４】
第２の割り込み種別判定部１３は、通知された割り込み要求を割り込み要求情報として保持し、どこから通知された割り込み要求かを判定し、第２の割り込みレベル設定部１２に設定されており、かつ割り込み要求に対応する割り込みレベルを割り込みレベル保存部１６に通知する。更に、第２の割り込み種別判定部１３は、割り込み要求を受け付けたことを優先度判定部１４に通知する。このとき、第２の割り込み種別判定部１３は、割り込み要求に対応する割り込みレベルを優先度判定部１４に通知する。さらに、第２の割り込み種別判定部１３は、仮想計算機制御部２０の第１の割り込み種別判定部２０４からの割り込み種別の要求を受け、割り込み種別を含む最新の割り込み要求情報を第１の割り込み種別判定部２０４へ返す。
【００６５】
優先度判定部１４は、割り込みレベル保存部１６に保存されている割り込みマスクレベル（第２の割り込みマスクレベル）と、第２の割り込み種別判定部１３から通知される新規に発生した割り込みの割り込みレベルとを比較し、新規に発生した割り込みの割り込みレベルが割り込みレベル保存部１６に保存されている割り込みマスクレベルより高い場合、仮想計算機制御部２０へ割り込みを通知する。
【００６６】
優先度判定部１４は、現在の割り込みマスクレベルを割り込みレベル保存部１６から取得し、取得した割り込みマスクレベルと、第２の割り込み種別判定部１３から通知された割り込みレベルとを比較する。割り込みレベルが割り込みマスクレベルよりも高い優先度を有する場合、優先度判定部１４は、割り込み要求をＣＰＵ１へ通知する。ただし、第２の割り込みマスク設定部１１において割り込み通知が無効に設定されている場合は、優先度判定部１４は、割り込み要求をＣＰＵ１へ通知しない。ＣＰＵ１は、優先度判定部１４から割り込み要求が入力されると、割り込み発生通知を仮想計算機制御部２０の割り込み通知受取部２０５へ送信する。
【００６７】
第２の割り込みマスクレベル設定部１５は、仮想計算機制御部２０の割り込みマスクレベル更新部２０６から、ソフトウェア制御にて設定された割り込みマスクレベルを、割り込みレベル保存部１６に通知する。第２の割り込みマスクレベル設定部１５は、第１の割り込みマスクレベル設定部２０８によって通知された割り込みマスクレベルを割り込みレベルとして割り込みレベル保存部１６に設定する。
【００６８】
割り込みレベル保存部１６は、第２の割り込み種別判定部１３から通知された割り込みレベルと、第２の割り込みマスクレベル設定部１５から通知された割り込みマスクレベルとを保存する。また、割り込みレベル保存部１６は、保存されている割り込みレベルの内の最高優先度の割り込みレベルを現在の割り込みマスクレベルとして保存するレジスタである。保存された割り込みレベルは、仮想計算機制御部２０にてクリアされるまで保持される。割り込みレベル保存部１６に設定されている割り込みマスクレベルは、仮想計算機制御部２０の第１の割り込みマスクレベル設定部２０８からの要求を受け、最新の状態に更新される。
【００６９】
このように、割り込みレベル保存部１６は、発生した割り込みの優先度を示す割り込みレベルを１つ以上保存し、保存している割り込みレベルの内の最も優先度の高い割り込みレベルを割り込みマスクレベル（第２の割り込みマスクレベル）として保存する。
【００７０】
また、割り込みレベル保存部１６は、第２の割り込み種別判定部１３が受け取った割り込みの割り込みレベルを、第２の割り込みレベル設定部１２にあらかじめ保持されている当該割り込みの種別に対応する割り込みレベルとして保存し、さらに第１の割り込みマスクレベル設定部２０８から第２の割り込みマスクレベル設定部１５に対して通知された割り込みマスクレベルを割り込みレベルとして保存する。
【００７１】
また、優先度判定部１４は、割り込みレベル保存部１６に保存されている割り込みレベルの中で最も優先度の高い割り込みレベル以下の割り込みを仮想計算機制御部２０へ通知しない。
【００７２】
以上の構成により、仮想計算機の割り込みハンドラ処理とタスク処理との終了を仮想計算機制御部２０で検出し、割り込みハンドラ処理とタスク処理とが終了したタイミングで統合割り込みコントローラ２の割り込みマスクレベルを制御することができる。これにより、タスクの優先度を通知することができない仮想計算機であっても、タスクの優先度に応じて仮想計算機の優先度を決定し、適切な仮想計算機のスケジュールを制御することが可能となる。
【００７３】
図４は、本発明の実施の形態１における統合割り込みコントローラ２の第２の割り込みレベル設定部１２の設定内容の一例を示す図である。第２の割り込みレベル設定部１２は、割り込みを通知してくるハードウェア（割り込み種別）ごとに割り込みレベルを設定する。割り込みレベルは、優先度を表している。図４では、割り込み種別は、第１の割り込みコントローラ３からの割り込み通知と、第２の割り込みコントローラ４からの割り込み通知と、アイドル検知部７からの割り込み通知との３つを含み、それぞれ“２”、“５”及び“３”の割り込みレベルが設定されている。なお、以下の説明においては、割り込みレベルは、“０”〜“７”の８段階に分け、数字が小さいほど、優先度が高いものとしている。以上の構成により、本発明の実施の形態１における統合割り込みコントローラ２は、各割り込みの優先順位を判断可能としている。
【００７４】
図５は、本発明の実施の形態１における統合割り込みコントローラ２の割り込みレベル保存部１６の保存内容の一例を示す図である。ここでは、割り込みレベルは、“０”〜“７”の８段階に分けている。割り込みレベル保存部１６は、統合割り込みコントローラ２において受け付けているハードウェア割り込みによる割り込みレベルと、仮想計算機制御部２０からソフトウェア制御により設定された割り込みレベルとを保存する。割り込みレベル保存部１６では、受け付けた割り込みレベルに対応するビットが１に設定される。また、受け付けた割り込みレベルのうち、最も数字が小さい割り込みレベルが、統合割り込みコントローラ２の割り込みマスクレベルとして設定される。統合割り込みコントローラ２は、割り込みレベル保存部１６が保持している情報を用いて、割り込み処理と仮想計算機のタスク処理との優先順位をハードウェア的に判断可能とする。
【００７５】
図６は、本発明の実施の形態１における仮想計算機制御部２０の割り込みマスクレベル設定テーブル２０７の設定内容の一例を示す図である。割り込みマスクレベル設定テーブル２０７には、割り込みマスクレベルを設定する対象となる種別と、種別ごとに設定される割り込みマスクレベルとが保存されている。割り込みハンドラ終了時に、第１の割り込みマスクレベル設定部２０８は、割り込みマスクレベル設定テーブル２０７に設定されている割り込みマスクレベルを、第２の割り込みマスクレベル設定部１５に設定する。
【００７６】
次に、第１の仮想計算機３０のタスク処理実行中に第１の割り込みコントローラ３からの割り込みが発生した場合の情報処理装置の動作について説明する。図７、図８、図９及び図１０は、第１の仮想計算機３０のタスク処理実行中に第１の割り込みコントローラ３からの割り込みが発生した場合の情報処理装置の動作の一例を示すフローチャートである。
【００７７】
まず、第１の割り込みコントローラ３における割り込み発生から、割り込み処理部３１２による割り込みハンドラ処理の終了までの動作について説明する。図７は、本発明の実施の形態１において、第１の割り込みコントローラ３における割り込み発生から、割り込み処理部３１２による割り込みハンドラ処理の終了までの動作を示すフローチャートである。
【００７８】
まず、第１の仮想計算機３０のタスク処理実行中に、第１の割り込みコントローラ３からの割り込みが発生した場合、仮想計算機制御部２０は、処理を開始する。割り込みが発生すると、割り込み通知受取部２０５は、ＣＰＵ１から出力された割り込み発生通知を受け取る（ステップＳ１）。例えば、ＣＰＵ１が、統合割り込みコントローラ２から出力される割り込み要求を受けて割り込みを検知した時に、処理がジャンプする先である割り込みベクターを、仮想計算機制御部２０に設ける。これにより、割り込み発生時に、割り込み通知受取部２０５を動作させることが可能である。
【００７９】
割り込み通知受取部２０５は、割り込みが発生したことを表す割り込み情報を第１の割り込み種別判定部２０４に通知する。次に、第１の割り込み種別判定部２０４は、発生した割り込みの割り込み種別を判定する（ステップＳ２）。なお、第１の割り込み種別判定部２０４は、判定対象の割り込み種別を、統合割り込みコントローラ２の第２の割り込み種別判定部１３から取得する。
【００８０】
割り込み種別を判定した結果、第１の割り込みコントローラ３からの割り込みであると判定された場合（ステップＳ２で“第１の割り込みコントローラ”）、第１の割り込み種別判定部２０４は、割り込みが発生したことを表す割り込み情報を割り込み復帰先書換部２０３に通知する（ステップＳ３）。
【００８１】
次に、割り込み復帰先書換部２０３は、通知された割り込み情報で指定される割り込み復帰先アドレスを、割り込み復帰先保存部２００へ保存する（ステップＳ４）。次に、割り込み復帰先書換部２０３は、通知された割り込み情報に含まれる割り込み復帰先アドレスを、仮想計算機制御部２０の内部のアドレスに書き換える（ステップＳ５）。割り込み復帰先書換部２０３は、仮想計算機スケジュール部２０２を呼び出す。なお、書き換える仮想計算機制御部２０の内部のアドレスとは、割り込みハンドラ終了検出部２０９のアドレスである。また、割り込み種別を判定した結果、アイドル検知部７からの割り込みであると判定された場合については図９、第１の割り込みコントローラ３からの割り込みであると判定された場合については図１０を用いて後で説明する。
【００８２】
次に、仮想計算機スケジュール部２０２は、割り込み復帰先書換部２０３から呼び出されたことから、第１の仮想計算機３０への割り込み要求と判断し、第１の仮想計算機３０の割り込み処理部３１２を呼び出す（ステップＳ６）。
【００８３】
次に、割り込み処理部３１２は、発生した割り込みに対応する割り込みハンドラ３２０による処理を実行する（ステップＳ７）。
【００８４】
割り込みハンドラによる処理が終了した後、割り込みハンドラ終了検出部２０９は、割り込みハンドラによる処理の終了を検出する（ステップＳ８）。また、割り込みハンドラ終了検出部２０９は、割り込みハンドラによる処理が終了したことを第１の割り込みマスクレベル設定部２０８に通知する。
【００８５】
図８は、図７のステップＳ８の処理に続いて、割り込みハンドラによる処理が終了した後の動作の一例を示すフローチャートである。
【００８６】
第１の割り込みマスクレベル設定部２０８は、図６に示す割り込みマスクレベル設定テーブル２０７から、設定されている割り込みマスクレベルを取得し、取得した割り込みマスクレベルを第２の割り込みマスクレベル設定部１５に設定する（ステップＳ９）。第１の割り込みマスクレベル設定部２０８は、割り込みマスクレベルを設定したことを割り込みマスクレベル更新部２０６に通知する。なお、第１の割り込みマスクレベル設定部２０８は、次に処理を実行する仮想計算機のタスク処理の割り込みマスクレベルを取得する。ここでは、第１の仮想計算機３０の割り込みハンドラ３２０による処理が終了しているので、第１の仮想計算機３０のタスク３００の割り込みマスクレベル（例えば、“４”）が設定される。
【００８７】
次に、割り込みマスクレベル更新部２０６は、図５に示す割り込みレベル保存部１６にアクセスし、割り込みマスクレベルを最新の割り込み状況に更新するよう要求し、割り込みマスクレベルを更新したことを仮想計算機スケジュール部２０２に通知する（ステップＳ１０）。つまり、割り込みレベル保存部１６において、割り込み要因がクリアされている割り込みレベルに関しては、ビットが０に更新される。
【００８８】
次に、仮想計算機スケジュール部２０２は、割り込み復帰先保存部２００から割り込み復帰先アドレスを取得し、仮想計算機を割り込み発生前の状態へ遷移させる（ステップＳ１１）。ここでは、第１の仮想計算機３０のタスク処理実行中に割り込み要求が発生したことから、第１の仮想計算機３０のタスク処理に戻ることになる。
【００８９】
次に、第１の仮想計算機３０は、タスク３００の処理を実行する（ステップＳ１２）。なお、ここでは、ステップＳ９において割り込みマスクレベルが“４”に設定されている。そのため、第１の仮想計算機３０のタスク処理実行中は、割り込みレベルが“５”である第２の割り込みコントローラ４からの割り込みはマスクされ、図６に示す優先度に従い、仮想計算機をスケジュールすることが可能である。
【００９０】
第１の仮想計算機３０によるタスク処理が終了すると、ＣＰＵ１は、第１の仮想計算機３０を省電力モード（アイドル状態）へ遷移する命令を発行する（ステップＳ１３）。
【００９１】
アイドル検知部７は、ステップＳ１３で発行された命令を検出し、統合割り込みコントローラ２へ割り込み要求を送信する（ステップＳ１４）。これにより、仮想計算機制御部２０は、第１の仮想計算機３０におけるタスク処理の終了を検出可能としている。
【００９２】
そして、統合割り込みコントローラ２は、アイドル検知部７からの割り込み要求を受信すると、割り込み要求をＣＰＵ１へ出力する。ＣＰＵ１は、割り込み発生通知を仮想計算機制御部２０へ出力する。その後、図７のステップＳ１の処理に戻り、割り込み通知受取部２０５は、ＣＰＵ１から出力された割り込み発生通知を受け取る。
【００９３】
図９は、図７のステップＳ２において、アイドル検知部７からの割り込みであると判定された後の動作の一例を示すフローチャートである。
【００９４】
割り込み種別を判定した結果、アイドル検知部７からの割り込みであると判定された場合（ステップＳ２で“アイドル検知部”）、第１の割り込み種別判定部２０４は、仮想計算機状態保存部２０１の保存内容に基づいて、直前に実行中だった仮想計算機を判別する（ステップＳ１５）。
【００９５】
第１の仮想計算機３０が直前に実行中だったと判別された場合（ステップＳ１５で“第１の仮想計算機”）、第１の割り込み種別判定部２０４は、仮想計算機状態保存部２０１に記憶されている第１の仮想計算機の動作状態をアイドル状態に更新する（ステップＳ１６）。一方、第２の仮想計算機４０が直前に実行中だったと判別された場合（ステップＳ１５で“第２の仮想計算機”）、第１の割り込み種別判定部２０４は、仮想計算機状態保存部２０１に記憶されている第２の仮想計算機の動作状態をアイドル状態に更新する（ステップＳ１７）。
【００９６】
仮想計算機状態保存部２０１における仮想計算機の動作状態を更新した後、割り込みマスクレベル更新部２０６は、割り込み要因をクリアする（ステップＳ１８）。次に、割り込みマスクレベル更新部２０６は、割り込みレベル保存部１６にアクセスし、割り込みマスクレベルを最新の割り込み状況に更新するよう要求し、割り込みマスクレベルを更新したことを仮想計算機スケジュール部２０２に通知する（ステップＳ１９）。
【００９７】
次に、仮想計算機スケジュール部２０２は、仮想計算機状態保存部２０１に記憶されている仮想計算機の動作状態を確認し、第１の仮想計算機３０と第２の仮想計算機４０とが共にアイドル状態であるか否かを判断する（ステップＳ２０）。
【００９８】
ここで、第１の仮想計算機３０と第２の仮想計算機４０とが共にアイドル状態であると判断された場合（ステップＳ２０でＹＥＳ）、仮想計算機スケジュール部２０２は、第２の割り込みマスク設定部１１に対して、アイドル検知部７からの割り込みをマスクするよう要求する。第２の割り込みマスク設定部１１は、アイドル検知部７からの割り込みをマスクするように優先度判定部１４を設定する（ステップＳ２１）。これは、実際にシステム全体を省電力モードへ遷移させるため、省電力モードへの命令実行時に発生する割り込み通知をマスクするために実施する。その後、ＣＰＵ１は、システム全体を省電力モードへ遷移させる（ステップＳ２２）。続いて、図７のステップＳ１の処理に戻り、割り込みが発生した場合に、割り込み通知受取部２０５は、ＣＰＵ１から出力された割り込み発生通知を受け取る。
【００９９】
一方、第１の仮想計算機３０と第２の仮想計算機４０とが共にアイドル状態でない、すなわち、アイドル状態でない仮想計算機があると判断された場合（ステップＳ２０でＮＯ）、仮想計算機スケジュール部２０２は、アイドル状態でない仮想計算機のタスク処理へ遷移させる（ステップＳ２３）。
【０１００】
次に、第１の仮想計算機３０がアイドル状態でない場合、第２の仮想計算機４０は、タスク４００の処理を実行し、第２の仮想計算機４０がアイドル状態でない場合、第１の仮想計算機３０は、タスク３００の処理を実行する（ステップＳ２４）。その後、図７のステップＳ１の処理に戻り、割り込みが発生した場合に、割り込み通知受取部２０５は、ＣＰＵ１から出力された割り込み発生通知を受け取る。
【０１０１】
図１０は、図７のステップＳ２において、第２の割り込みコントローラ４からの割り込みであると判定された後の動作の一例を示すフローチャートである。
【０１０２】
割り込み種別を判定した結果、第２の割り込みコントローラ４からの割り込みであると判定された場合（ステップＳ２で“第２の割り込みコントローラ”）、第１の割り込み種別判定部２０４は、仮想計算機スケジュール部２０２を呼び出す。仮想計算機スケジュール部２０２は、第１の割り込み種別判定部２０４から呼び出されたことから、第２の仮想計算機４０への割り込み要求と判断し、第２の仮想計算機４０の割り込み処理部４１２を呼び出す（ステップＳ２５）。
【０１０３】
次に、割り込み処理部４１２は、発生した割り込みに対応する割り込みハンドラ４２０による処理を実行する（ステップＳ２６）。
【０１０４】
割り込みハンドラによる処理が終了した後、割り込み処理部４１２は、実行中の処理を切り替える切り替え通知を仮想計算機制御部２０の切替通知受取部２１０へ送る（ステップＳ２７）。
【０１０５】
切替通知受取部２１０は、切り替え通知を受け取り、仮想計算機スケジュール部２０２に、第２の仮想計算機４０の割り込みハンドラによる処理の終了を通知する。仮想計算機スケジュール部２０２は、第２の仮想計算機４０のタスク処理へ遷移させる（ステップＳ２８）。次に、第２の仮想計算機４０は、タスク４００の処理を実行する（ステップＳ２９）。その後、図７のステップＳ１の処理に戻り、割り込みが発生した場合に、割り込み通知受取部２０５は、ＣＰＵ１から出力された割り込み発生通知を受け取る。
【０１０６】
以上の構成により、仮想計算機の割り込みハンドラ処理とタスク処理との終了を仮想計算機制御部２０で検出し、検出したタイミングで統合割り込みコントローラ２の割り込みマスクレベルを制御することができる。これにより、タスクの優先度を通知することができない仮想計算機であっても、タスクの優先度に応じて仮想計算機の優先度を決定し、適切な仮想計算機のスケジュール制御を行うことが可能となる。
【０１０７】
特に、買い入れたバイナリプログラムなど、改変が不可能なソフトウェアの場合、タスクの優先度を通知することができないバイナリプログラムを組み込んだソフトウェアでも、適切な仮想計算機のスケジュール制御を行うことができる。
【０１０８】
（実施の形態２）
図１１は、本発明の実施の形態２における仮想計算機制御装置を備えた情報処理装置の構成を示すブロック図である。特に、図１１では、統合割り込みコントローラ２の詳細について示している。
【０１０９】
図１１では、図３で示した統合割り込みコントローラ２に通知レベル受信部１７を追加し、第２の割り込みコントローラ４に割り込みレベル通知部１８を追加している。また、図１１において、図３と同じ構成要素については同じ符号を用いている。以下、新規に追加した構成要素について説明し、同じ構成要素についての説明を省略する。
【０１１０】
割り込みレベル通知部１８は、割り込みの種類に応じて異なる複数の割り込みレベルを統合割り込みコントローラ２に通知する。すなわち、割り込みレベル通知部１８は、第２の割り込みコントローラ４内部で設定されている各割り込みのレベル（優先度）を通知レベルとして、統合割り込みコントローラ２内の通知レベル受信部１７に通知する。
【０１１１】
通知レベル受信部１７は、割り込みレベル通知部１８によって通知される複数の割り込みレベルを受信し、受信した複数の割り込みレベルをそれぞれ割り込みマスクレベルとして割り込みマスクレベル設定テーブル２０７に記憶する。
【０１１２】
通知レベル受信部１７は、割り込みレベル通知部１８から通知レベルを受け取り、受け取った通知レベルを第２の割り込み種別判定部１３に通知する。これで、統合割り込みコントローラ２内で、第２の割り込みコントローラ４からの割り込みに優先度を設けることができ、優先度に基づいて仮想計算機を制御することが可能となる。つまり、第２の割り込み種別判定部１３は、通知された通知レベルを第２の割り込みレベル設定部１２へ出力し、第２の割り込みレベル設定部１２は、通知レベルに応じた割り込みレベルを割り込み種別に対応付けて設定する。
【０１１３】
以上の構成により、第２の割り込み種別判定部１３は、受け付けた割り込み種別と、通知レベル受信部１７から通知された通知レベルに対応する割り込みレベルとを第２の割り込みレベル設定部１２から取得し、取得した割り込みレベルを割り込みレベル保存部１６に通知することができる。つまり、仮想計算機制御部２０内の割り込みマスクレベル設定テーブル２０７の設定により、第２の仮想計算機４０の一部またはすべての割り込み処理を、第１の仮想計算機３０のタスク処理よりも優先させて動作させることが可能となる。
【０１１４】
図１２は、実施の形態２において、統合割り込みコントローラ２の第２の割り込みレベル設定部１２の設定内容の一例を示す図である。なお、以下の説明においては、第２の割り込みコントローラ４からの通知レベルが“０”〜“７”の８段階で構成されている例について説明する。
【０１１５】
図１２では、通知レベルが“４”〜“０”の第２の割り込みコントローラ４からの割り込み通知の割り込みレベルは“４”に設定され、通知レベルが“７”〜“５”の第２の割り込みコントローラ４からの割り込み通知の割り込みレベルは“６”に設定されている。なお、割り込みレベルは数字が小さいほど、優先度が高いものとしている。以上の構成により、仮想計算機制御部２０内の割り込みマスクレベル設定テーブル２０７の設定を用いて、統合割り込みコントローラ２は、第２の仮想計算機４０の一部の割り込み処理を、第１の仮想計算機３０のタスク処理より優先させて動作させることができる。
【０１１６】
図１３は、本発明の実施の形態２において、仮想計算機制御部２０の割り込みマスクレベル設定テーブル２０７の設定内容の一例を示す図である。マスクレベル設定テーブル２０７には、割り込みマスクレベルを設定する対象となる種別と、種別ごとに設定される割り込みマスクレベルとが保存されている。図１３では、通知レベルが“４”〜“０”である第２の割り込みコントローラ４からの割り込み通知の割り込みマスクレベルは“４”に設定され、第１の仮想計算機３０のタスク処理の割り込みマスクレベルは“５”に設定されている。また、通知レベルが“７”〜“５”である第２の割り込みコントローラ４からの割り込み通知の割り込みマスクレベルは“６”に設定されている。これにより、第１の仮想計算機３０のタスク３００の実行中であっても、通知レベルが“４”〜“０”である第２の割り込みコントローラ４からの割り込みであれば、優先的に動作することになる。
【０１１７】
以上の構成により、仮想計算機の割り込みハンドラ処理とタスク処理との終了を仮想計算機制御部２０で検出し、検出したタイミングで統合割り込みコントローラ２の割り込みマスクレベルを制御することができる。これにより、タスクの優先度を通知することができない仮想計算機であっても、タスクの優先度に応じて仮想計算機の優先度を決定し、適切な仮想計算機のスケジュール制御を行うことが可能となる。特に、仮想計算機制御部２０内の割り込みマスクレベル設定テーブル２０７の設定で、第２の仮想計算機４０の一部またはすべての割り込み処理を、第１の仮想計算機３０のタスク処理より優先させて動作させることが可能となる。
【０１１８】
（実施の形態３）
図１４は、本発明の実施の形態３における仮想計算機制御装置を備えた情報処理装置のハードウェア構成を示すブロック図である。
【０１１９】
図１４では、図１で示した情報処理装置に、割り込みネゲート検知部９を追加している。なお、図１４において、図１と同じ構成要素については同じ符号を用いている。以下、新規に追加した構成要素について説明し、同じ構成要素についての説明を省略する。
【０１２０】
割り込みネゲート検知部９は、周辺デバイス５から出力される割り込み要求が解除されたことを検知し、統合割り込みコントローラ２へ割り込みを発生させる。すなわち、割り込みネゲート検知部９は、第１の割り込みコントローラ３から統合割り込みコントローラ２への割り込み要求が解除されたことを検知し、割り込み要求が解除されたことを統合割り込みコントローラ２へ割り込みで通知する。割り込み要求の解除は、第１の割り込みコントローラ３への割り込みを発生させている割り込み要因をクリアすることで行われる。割り込み要因がクリアされた時、統合割り込みコントローラ２への割り込み信号がネゲートされる。割り込みネゲート検知部９は、第１の割り込みコントローラ３から統合割り込みコントローラ２へ出力される割り込み信号がネゲートされたことを検知する。
【０１２１】
これにより、仮想計算機制御部２０で、第１の割り込みコントローラ３から発生した、第１の仮想計算機３０への割り込みハンドラ処理の終了を検出することが可能となる。
【０１２２】
図１５は、本発明の実施の形態３における情報処理装置のメモリ８の詳細な構成を示すブロック図である。図１５は、図２で示した仮想計算機制御部２０から割り込み復帰先書換部２０３と割り込みハンドラ終了検出部２０９とを削除した構成である。本実施の形態３において、割り込み復帰先書換部２０３と割り込みハンドラ終了検出部２０９とを削除しているのは、前述した割り込みネゲート検知部９を設けたことで、割り込み要求の解除の検知が可能となったためである。
【０１２３】
図１６は、本発明の実施の形態３における情報処理装置の統合割り込みコントローラ２の詳細な構成を示すブロック図である。図１６では、統合割り込みコントローラ２の第２の割り込み種別判定部１９が、割り込みネゲート検知部９からの割り込みを受け付ける点が、図３と異なっている。
【０１２４】
図１７は、本発明の実施の形態３において、統合割り込みコントローラ２の第２の割り込みレベル設定部１２の設定内容の一例を示す図である。割り込み種別は、割り込みネゲート検知部９からの割り込み通知、第１の割り込みコントローラ３からの割り込み通知、アイドル検知部からの割り込み通知及び第２の割り込みコントローラ４からの割り込み通知を含む。割り込みネゲート検知部９からの割り込み通知には、割り込みレベル“１”が設定されている。つまり、割り込みネゲート検知部９からの割り込み発生時は、割り込みレベル保存部１６の割り込みマスクレベルは“２”に設定されている状態なので、割り込みレベルが“１”である割り込みネゲート検知部９からの割り込み通知は受け付けられる。
【０１２５】
図１８は、本発明の実施の形態３において、第１の割り込みコントローラ３からの割り込みが発生した場合の情報処理装置の動作の一例を示すフローチャートである。
【０１２６】
まず、第１の仮想計算機３０のタスク処理実行中に、第１の割り込みコントローラ３からの割り込みが発生した場合、仮想計算機制御部２０は、処理を開始する。割り込みが発生すると、割り込み通知受取部２０５は、ＣＰＵ１から出力された割り込み発生通知を受け取る（ステップＳ４１）。
【０１２７】
割り込み通知受取部２０５は、割り込みが発生したことを表す割り込み情報を第１の割り込み種別判定部２０４に通知する。次に、第１の割り込み種別判定部２０４は、発生した割り込みの割り込み種別を判定する（ステップＳ４２）。なお、第１の割り込み種別判定部２０４は、判定対象の割り込み種別を、統合割り込みコントローラ２の第２の割り込み種別判定部１９から取得する。
【０１２８】
割り込み種別を判定した結果、第１の割り込みコントローラ３からの割り込みであると判定された場合（ステップＳ４２で“第１の割り込みコントローラ”）、第１の割り込み種別判定部２０４は、第１の仮想計算機３０の割り込み処理部３１２を呼び出す（ステップＳ４３）。
【０１２９】
なお、割り込み種別を判定した結果、アイドル検知部７からの割り込みであると判定された場合（ステップＳ４２で“アイドル検知部”）、前述した図９のステップＳ１５の処理へ移行し、第２の割り込みコントローラ４からの割り込みであると判定された場合（ステップＳ４２で“第２の割り込みコントローラ”）、前述した図１０のステップＳ２５の処理へ移行する。
【０１３０】
次に、割り込み処理部３１２は、発生した割り込みに対応する割り込みハンドラ３２０を呼び出し、当該割り込みハンドラ３２０による処理を実行する（ステップＳ４４）。次に、割り込みハンドラ３２０による処理中に、第１の割り込みコントローラ３による割り込み要因がクリアされると、割り込みネゲート検知部９は、割り込み要因のクリアを検知する（ステップＳ４５）。
【０１３１】
次に、割り込みネゲート検知部９は、統合割り込みコントローラ２へ割り込み要求を送信する（ステップＳ４６）。これにより、統合割り込みコントローラ２は、割り込みを発生させる。すなわち、統合割り込みコントローラ２は、割り込みネゲート検知部９からの割り込み要求を受信すると、割り込み要求をＣＰＵ１へ出力する。ＣＰＵ１は、割り込み発生通知を仮想計算機制御部２０へ出力する。その後、ステップＳ４１の処理へ戻り、割り込み通知受取部２０５は、ＣＰＵ１から出力された割り込み発生通知を受け取る。
【０１３２】
割り込み通知受取部２０５は、割り込みが発生したことを表す割り込み情報を第１の割り込み種別判定部２０４に通知する。次に、第１の割り込み種別判定部２０４は、発生した割り込みの割り込み種別を判定する（ステップＳ４２）。第１の割り込み種別判定部２０４は、判定対象の割り込み種別を、統合割り込みコントローラ２の第２の割り込み種別判定部１９から取得する。
【０１３３】
割り込み種別を判定した結果、割り込みネゲート検知部９からの割り込みであると判定された場合（ステップＳ４２で“割り込みネゲート検知部”）、第１の割り込み種別判定部２０４は、通知された割り込み情報で指定される割り込み復帰先アドレスを割り込み復帰先保存部２００に保存する（ステップＳ４７）。その後、前述の図８のステップＳ９の処理へ移行する。
【０１３４】
以上の構成により、割り込みネゲート検知部９及び第１の割り込み種別判定部２０４を用いて、第１の仮想計算機３０の割り込みハンドラ３２０による処理の終了を検出することができる。これにより、タスクの優先度を通知することができない仮想計算機であっても、タスクの優先度に応じて仮想計算機の優先度を決定し、適切な仮想計算機のスケジュール制御を行うことが可能となる。
【０１３５】
（実施の形態４）
図１９は、本発明の実施の形態４における仮想計算機制御装置を備えた情報処理装置の構成を示すブロック図である。図１９では、特に、統合割り込みコントローラ２の詳細な構成について示している。
【０１３６】
図１９に示す情報処理装置は、図１１に示す情報処理装置の構成に、割り込みネゲート検知部９を追加している。また、図１６との違いは、統合割り込みコントローラ２に図１１に示す通知レベル受信部１７を備え、第２の割り込みコントローラ４に図１１に示す割り込みレベル通知部１８を備えている点である。
【０１３７】
割り込みレベル通知部１８は、第２の割り込みコントローラ４内部で設定されている各割り込みのレベル（優先度）を通知レベルとして、統合割り込みコントローラ２内の通知レベル受信部１７に通知する。
【０１３８】
通知レベル受信部１７は、割り込みレベル通知部１８から通知レベルを受け取り、受け取った通知レベルを第２の割り込み種別判定部１９に通知する。これにより、統合割り込みコントローラ２内で、第２の割り込みコントローラ４からの割り込みに優先度を設けることができ、優先度に基づいて仮想計算機を制御することが可能となる。つまり、第２の割り込み種別判定部１９は、通知された通知レベルを第２の割り込みレベル設定部１２へ出力し、第２の割り込みレベル設定部１２は、通知レベルに応じた割り込みレベルを割り込み種別に対応付けて設定する。
【０１３９】
また、割り込みネゲート検知部９は、第１の割り込みコントローラ３から統合割り込みコントローラ２への割り込み要求が解除されたことを検知し、割り込み要求が解除されたことを統合割り込みコントローラ２へ割り込みで通知する。割り込み要求の解除は、第１の割り込みコントローラ３への割り込みを発生させている割り込み要因をクリアすることで行われる。割り込み要因がクリアされた時、統合割り込みコントローラ２への割り込み信号がネゲートされる。割り込みネゲート検知部９は、第１の割り込みコントローラ３から統合割り込みコントローラ２へ出力される割り込み信号がネゲートされたことを検知する。
【０１４０】
これにより、仮想計算機制御部２０で、第１の割り込みコントローラ３から発生した、第１の仮想計算機３０への割り込みハンドラ処理の終了を検出することが可能となる。
【０１４１】
以上の構成により、第２の割り込み種別判定部１９は、受け付けた割り込み種別と、通知レベル受信部１７から通知された通知レベルに対応する割り込みレベルとを第２の割り込みレベル設定部１２から取得し、取得した割り込みレベルを割り込みレベル保存部１６に通知することができる。つまり、仮想計算機制御部２０内の割り込みマスクレベル設定テーブル２０７の設定により、第２の仮想計算機４０の一部またはすべての割り込み処理を、第１の仮想計算機３０のタスク処理よりも優先させて動作させることが可能となる。
【０１４２】
更に、割り込みネゲート検知部９及び第１の割り込み種別判定部２０４を用いて、第１の仮想計算機３０の割り込みハンドラ３２０による処理の終了を検出することができる。これにより、タスクの優先度を通知することができない仮想計算機であっても、タスクの優先度に応じて仮想計算機の優先度を決定し、適切な仮想計算機のスケジュール制御を行うことが可能となる。
【０１４３】
以上、本実施の形態１〜４によれば、ソフトウェアの改変が不可能な仮想計算機に関し、設計された優先度に従って、タスク処理及び割り込み処理の実行が可能である。
【０１４４】
なお、本明細書では仮想計算機が２つの場合を実施の形態として示しているが、本発明はこれに限定されない。情報処理装置が３つ以上の仮想計算機を有する場合でも、同様に本発明を用いることができる。
【０１４５】
また、本実施の形態１〜４において、統合割り込みコントローラ２、仮想計算機制御部２０及びアイドル検知部７は、それぞれ個別のハードウェアにより構成しているが、本発明は特にこれに限定されず、統合割り込みコントローラ２、仮想計算機制御部２０及びアイドル検知部７は、プログラムにより構成してもよい。この場合、統合割り込みコントローラ２、仮想計算機制御部２０及びアイドル検知部７としてＣＰＵ１を機能させる仮想計算機制御プログラムは、メモリ８内に格納される。さらに、仮想計算機制御プログラムは、コンピュータ読み取り可能な記録媒体に記録されてもよい。
【０１４６】
また、本発明の各機能ブロックは典型的にはソフトウェアとして実現されるが、集積回路であるＬＳＩとして実現しても良い。各機能ブロックは個別に１チップ化されても良いし、一部又はすべてを含むように１チップ化されてもよい。ここでは、ＬＳＩとしたが、集積度の違いにより、ＩＣ、システムＬＳＩ、スーパーＬＳＩ又はウルトラＬＳＩと呼称されることもある。また、集積回路化の手法はＬＳＩに限るものではなく、専用回路又は汎用プロセッサで実現してもよい。ＬＳＩ製造後に、プログラムすることが可能なＦＰＧＡ（Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）、ＬＳＩ内部の回路セルの接続または設定を再構成可能なリコンフィギュラブル・プロセッサを利用してもよい。さらには、半導体技術の進歩又は派生する別技術によりＬＳＩに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて機能ブロックの集積化を行ってもよい。ＬＳＩに置き換わる集積回路化の技術としては、例えばバイオ技術の適応等が可能性としてありえる。
【０１４７】
なお、上述した具体的実施形態には以下の構成を有する発明が主に含まれている。
【０１４８】
本発明の一局面に係る仮想計算機制御装置は、ＣＰＵ上で動作する複数の仮想計算機の切り替えを制御する仮想計算機制御部と、発生した割り込みの優先度を示す割り込みレベルに基づいて、前記仮想計算機制御部への割り込みの通知を制御する割り込み制御部とを備え、前記仮想計算機制御部は、前記割り込み制御部から通知された割り込みの種別を判定する第１の割り込み種別判定部と、前記第１の割り込み種別判定部によって割り込みの種別を判定した結果、発生した割り込みが現在実行中の仮想計算機に対する割り込みであると判定された場合、割り込み発生直前のプログラムカウンタ値を保存する割り込み復帰先保存部と、各仮想計算機において実行される割り込み処理の優先度及び各仮想計算機において実行されるタスク処理の優先度を第１の割り込みマスクレベルとして予め記憶する割り込みマスクレベル設定テーブルと、仮想計算機による割り込み処理が終了した場合、前記割り込みマスクレベル設定テーブルの中から、仮想計算機が次に実行する処理に対応する第１の割り込みマスクレベルを前記割り込み制御部に通知する第１の割り込みマスクレベル設定部と、前記割り込み制御部における割り込みレベルを最新の状態に更新するよう前記割り込み制御部に要求する更新部とを含み、前記割り込み制御部は、発生した割り込みの優先度を示す割り込みレベルを１つ以上保存し、保存している前記割り込みレベルの内の最も優先度の高い割り込みレベルを第２の割り込みマスクレベルとして保存する割り込みレベル保存部と、前記第１の割り込みマスクレベル設定部によって通知された前記第１の割り込みマスクレベルを割り込みレベルとして前記割り込みレベル保存部に設定する第２の割り込みマスクレベル設定部と、新規に発生した割り込みを受け取り、前記新規に発生した割り込みの種別を判定し、判定した割り込み種別に対応する割り込みレベルを前記割り込みレベル保存部に設定する第２の割り込み種別判定部と、前記割り込みレベル保存部に保存されている前記第２の割り込みマスクレベルと、前記第２の割り込み種別判定部から通知される新規に発生した割り込みの割り込みレベルとを比較し、新規に発生した割り込みの割り込みレベルが前記割り込みレベル保存部に保存されている前記第２の割り込みマスクレベルより高い場合、前記仮想計算機制御部へ割り込みを通知する優先度判定部とを含む。
【０１４９】
この構成によれば、仮想計算機制御部は、ＣＰＵ上で動作する複数の仮想計算機の切り替えを制御し、割り込み制御部は、発生した割り込みの優先度を示す割り込みレベルに基づいて、仮想計算機制御部への割り込みの通知を制御する。割り込み制御部から通知された割り込みの種別が判定され、割り込みの種別を判定した結果、発生した割り込みが現在実行中の仮想計算機に対する割り込みであると判定された場合、割り込み発生直前のプログラムカウンタ値が保存される。割り込みマスクレベル設定テーブルは、各仮想計算機において実行される割り込み処理の優先度及び各仮想計算機において実行されるタスク処理の優先度を第１の割り込みマスクレベルとして予め記憶している。仮想計算機による割り込み処理が終了した場合、割り込みマスクレベル設定テーブルの中から、仮想計算機が次に実行する処理に対応する第１の割り込みマスクレベルが割り込み制御部に通知される。また、割り込み制御部における割り込みレベルを最新の状態に更新するよう割り込み制御部に要求される。割り込みレベル保存部は、発生した割り込みの優先度を示す割り込みレベルを１つ以上保存し、保存している割り込みレベルの内の最も優先度の高い割り込みレベルを第２の割り込みマスクレベルとして保存する。通知された第１の割り込みマスクレベルが割り込みレベルとして割り込みレベル保存部に設定される。新規に発生した割り込みが受け取られ、新規に発生した割り込みの種別が判定され、判定された割り込み種別に対応する割り込みレベルが割り込みレベル保存部に設定される。割り込みレベル保存部に保存されている第２の割り込みマスクレベルと、第２の割り込み種別判定部から通知される新規に発生した割り込みの割り込みレベルとが比較され、新規に発生した割り込みの割り込みレベルが割り込みレベル保存部に保存されている第２の割り込みマスクレベルより高い場合、仮想計算機制御部へ割り込みが通知される。
【０１５０】
したがって、仮想計算機の割り込み処理が終了したタイミングで、割り込み制御部において割り込みをマスクするための優先度を更新することにより、タスクの優先度を通知することができない仮想計算機であっても、タスクの優先度に応じて仮想計算機の優先度を決定し、仮想計算機の切り替えを適切に制御することができる。
【０１５１】
また、上記の仮想計算機制御装置において、前記割り込み制御部は、割り込みの種別に対応する割り込みレベルを保持する割り込みレベル設定部をさらに含み、前記割り込みレベル保存部は、前記第２の割り込み種別判定部が受け取った割り込みの割り込みレベルを、前記割り込みレベル設定部にあらかじめ保持されている当該割り込みの種別に対応する割り込みレベルとして保存し、さらに前記第１の割り込みマスクレベル設定部から前記第２の割り込みマスクレベル設定部に対して通知された第１の割り込みマスクレベルを割り込みレベルとして保存し、前記優先度判定部は、前記割り込みレベル保存部に保存されている割り込みレベルの中で最も優先度の高い割り込みレベル以下の割り込みを前記仮想計算機制御部へ通知しないことが好ましい。
【０１５２】
この構成によれば、割り込みレベル設定部には、割り込みの種別に対応する割り込みレベルが保持される。割り込みレベル保存部は、第２の割り込み種別判定部が受け取った割り込みの割り込みレベルが、割り込みレベル設定部にあらかじめ保持されている当該割り込みの種別に対応する割り込みレベルとして保存され、かつ第１の割り込みマスクレベル設定部から前記第２の割り込みマスクレベル設定部に対して通知された第１の割り込みマスクレベルが割り込みレベルとして保存される。そして、割り込みレベル保存部に保存されている割り込みレベルの中で最も優先度の高い割り込みレベル以下の割り込みが仮想計算機制御部へ通知されない。
【０１５３】
したがって、割り込み制御部に通知された割り込みに対応する割り込みレベルを割り込みレベル保存部に適切に保存することができる。
【０１５４】
また、上記の仮想計算機制御装置において、前記ＣＰＵがアイドル状態に遷移する命令を実行したことを検知し、前記第２の割り込み種別判定部へ割り込み要求を出力するアイドル検知部をさらに備えることが好ましい。
【０１５５】
この構成によれば、ＣＰＵがアイドル状態に遷移する命令を実行したことが検知され、第２の割り込み種別判定部へ割り込み要求が出力されるので、ＣＰＵがアイドル状態、すなわち仮想計算機の動作状態がアイドル状態に遷移したことを検知することができ、当該検知結果に応じて割り込み制御部を制御することができる。
【０１５６】
また、上記の仮想計算機制御装置において、前記仮想計算機制御部は、前記複数の仮想計算機の動作状態を保存する仮想計算機状態保存部をさらに含み、前記割り込み制御部は、前記仮想計算機制御部へ割り込み要求を通知しないために、発生した割り込み要求をマスクするように前記優先度判定部を設定する割り込みマスク設定部をさらに含み、前記第２の割り込み種別判定部は、発生した割り込みが前記アイドル検知部からの割り込み要求であると判定した場合、前記仮想計算機状態保存部に保存されている直前に実行中だった仮想計算機の動作状態をアイドル状態に更新し、前記割り込みマスク設定部は、全ての仮想計算機の動作状態がアイドル状態である場合に、前記アイドル検知部からの割り込み要求をマスクするように前記優先度判定部を設定し、全ての仮想計算機をアイドル状態に遷移させることが好ましい。
【０１５７】
この構成によれば、仮想計算機状態保存部は、複数の仮想計算機の動作状態を保存する。また、発生した割り込みがアイドル検知部からの割り込み要求であると判定された場合、仮想計算機状態保存部に保存されている直前に実行中だった仮想計算機の動作状態がアイドル状態に更新される。そして、全ての仮想計算機の動作状態がアイドル状態である場合に、アイドル検知部からの割り込み要求をマスクするよう設定され、仮想計算機制御装置がアイドル状態に遷移される。
【０１５８】
したがって、全ての仮想計算機がアイドル状態になった場合に、仮想計算機制御装置がアイドル状態に遷移されるので、複数の仮想計算機のうち、一の仮想計算機がアイドル状態になり、他の仮想計算機がアイドル状態でない場合に、仮想計算機制御装置がアイドル状態に遷移することなく、確実に仮想計算機制御装置をアイドル状態に遷移させることができる。
【０１５９】
また、上記の仮想計算機制御装置において、割り込みの種類に応じて異なる複数の割り込みレベルを前記割り込み制御部に通知する割り込みレベル通知部をさらに備え、前記割り込み制御部は、前記割り込みレベル通知部によって通知される前記複数の割り込みレベルを受信し、受信した前記複数の割り込みレベルをそれぞれ第１の割り込みマスクレベルとして前記割り込みマスクレベル設定テーブルに記憶する通知レベル受信部をさらに含むことが好ましい。
【０１６０】
この構成によれば、割り込みの種類に応じて異なる複数の割り込みレベルが割り込み制御部に通知される。そして、割り込み制御部において、通知される複数の割り込みレベルが受信され、受信された複数の割り込みレベルがそれぞれ第１の割り込みマスクレベルとして割り込みマスクレベル設定テーブルに記憶される。
【０１６１】
したがって、複数の仮想計算機のうちの一の仮想計算機において、割り込みの種類に応じて異なる優先度を割り込みマスクレベル設定テーブルに設定することができ、一の仮想計算機の一部又は全ての割り込み処理を、他の仮想計算機のタスク処理より優先させて動作させることができる。
【０１６２】
また、上記の仮想計算機制御装置において、前記仮想計算機制御部は、仮想計算機による割り込み処理が終了したことを検出する割り込み終了検出部と、前記通知された割り込みで指定された割り込み復帰先アドレスを前記割り込み復帰先保存部に退避し、前記割り込み復帰先アドレスを前記割り込み終了検出部のアドレスに書き換える割り込み復帰先書き換え部とを含むことが好ましい。
【０１６３】
この構成によれば、割り込み終了検出部は、仮想計算機による割り込み処理が終了したことを検出し、割り込み復帰先書き換え部は、通知された割り込みで指定された割り込み復帰先アドレスを割り込み復帰先保存部に退避し、割り込み復帰先アドレスを割り込み終了検出部のアドレスに書き換える。
【０１６４】
したがって、仮想計算機による割り込み処理が終了すると、割り込み終了検出部により割り込み処理が終了したことが検出されるので、割り込み処理が終了したことを確実に検知することができる。
【０１６５】
また、上記の仮想計算機制御装置において、周辺装置から出力される割り込み要求が解除されたことを検知し、前記割り込み制御部へ割り込みを発生させる割り込みネゲート検知部をさらに備えることが好ましい。
【０１６６】
この構成によれば、割り込みネゲート検知部は、周辺装置から出力される割り込み要求が解除されたことを検知し、割り込み制御部へ割り込みを発生させるので、割り込み処理が終了したことをハードウェア的に検知することができ、割り込み処理が終了したことを確実に検知することができる。
【０１６７】
本発明の他の局面に係る仮想計算機制御プログラムは、ＣＰＵ上で動作する複数の仮想計算機の切り替えを制御する仮想計算機制御部と、発生した割り込みの優先度を示す割り込みレベルに基づいて、前記仮想計算機制御部への割り込みの通知を制御する割り込み制御部としてコンピュータを機能させ、前記仮想計算機制御部は、前記割り込み制御部から通知された割り込みの種別を判定する第１の割り込み種別判定部と、前記第１の割り込み種別判定部によって割り込みの種別を判定した結果、発生した割り込みが現在実行中の仮想計算機に対する割り込みであると判定された場合、割り込み発生直前のプログラムカウンタ値を保存する割り込み復帰先保存部と、各仮想計算機において実行される割り込み処理の優先度及び各仮想計算機において実行されるタスク処理の優先度を第１の割り込みマスクレベルとして予め記憶する割り込みマスクレベル設定テーブルと、仮想計算機による割り込み処理が終了した場合、前記割り込みマスクレベル設定テーブルの中から、仮想計算機が次に実行する処理に対応する第１の割り込みマスクレベルを前記割り込み制御部に通知する第１の割り込みマスクレベル設定部と、前記割り込み制御部における割り込みレベルを最新の状態に更新するよう前記割り込み制御部に要求する更新部とを含み、前記割り込み制御部は、発生した割り込みの優先度を示す割り込みレベルを１つ以上保存し、保存している前記割り込みレベルの内の最も優先度の高い割り込みレベルを第２の割り込みマスクレベルとして保存する割り込みレベル保存部と、前記第１の割り込みマスクレベル設定部によって通知された前記第１の割り込みマスクレベルを割り込みレベルとして前記割り込みレベル保存部に設定する第２の割り込みマスクレベル設定部と、新規に発生した割り込みを受け取り、前記新規に発生した割り込みの種別を判定し、判定した割り込み種別に対応する割り込みレベルを前記割り込みレベル保存部に設定する第２の割り込み種別判定部と、前記割り込みレベル保存部に保存されている前記第２の割り込みマスクレベルと、前記第２の割り込み種別判定部から通知される新規に発生した割り込みの割り込みレベルとを比較し、新規に発生した割り込みの割り込みレベルが前記割り込みレベル保存部に保存されている前記第２の割り込みマスクレベルより高い場合、前記仮想計算機制御部へ割り込みを通知する優先度判定部とを含む。
【０１６８】
この構成によれば、仮想計算機制御部は、ＣＰＵ上で動作する複数の仮想計算機の切り替えを制御し、割り込み制御部は、発生した割り込みの優先度を示す割り込みレベルに基づいて、仮想計算機制御部への割り込みの通知を制御する。割り込み制御部から通知された割り込みの種別が判定され、割り込みの種別を判定した結果、発生した割り込みが現在実行中の仮想計算機に対する割り込みであると判定された場合、割り込み発生直前のプログラムカウンタ値が保存される。割り込みマスクレベル設定テーブルは、各仮想計算機において実行される割り込み処理の優先度及び各仮想計算機において実行されるタスク処理の優先度を第１の割り込みマスクレベルとして予め記憶している。仮想計算機による割り込み処理が終了した場合、割り込みマスクレベル設定テーブルの中から、仮想計算機が次に実行する処理に対応する第１の割り込みマスクレベルが割り込み制御部に通知される。また、割り込み制御部における割り込みレベルを最新の状態に更新するよう割り込み制御部に要求される。割り込みレベル保存部は、発生した割り込みの優先度を示す割り込みレベルを１つ以上保存し、保存している割り込みレベルの内の最も優先度の高い割り込みレベルを第２の割り込みマスクレベルとして保存する。通知された第１の割り込みマスクレベルが割り込みレベルとして割り込みレベル保存部に設定される。新規に発生した割り込みが受け取られ、新規に発生した割り込みの種別が判定され、判定された割り込み種別に対応する割り込みレベルが割り込みレベル保存部に設定される。割り込みレベル保存部に保存されている第２の割り込みマスクレベルと、第２の割り込み種別判定部から通知される新規に発生した割り込みの割り込みレベルとが比較され、新規に発生した割り込みの割り込みレベルが割り込みレベル保存部に保存されている第２の割り込みマスクレベルより高い場合、仮想計算機制御部へ割り込みが通知される。
【０１６９】
したがって、仮想計算機の割り込み処理が終了したタイミングで、割り込み制御部において割り込みをマスクするための優先度を更新することにより、タスクの優先度を通知することができない仮想計算機であっても、タスクの優先度に応じて仮想計算機の優先度を決定し、仮想計算機の切り替えを適切に制御することができる。
【０１７０】
本発明の他の局面に係る仮想計算機制御回路は、ＣＰＵ上で動作する複数の仮想計算機の切り替えを制御する仮想計算機制御回路と、発生した割り込みの優先度を示す割り込みレベルに基づいて、前記仮想計算機制御回路への割り込みの通知を制御する割り込み制御回路とを備え、前記仮想計算機制御回路は、前記割り込み制御回路から通知された割り込みの種別を判定する第１の割り込み種別判定回路と、前記第１の割り込み種別判定回路によって割り込みの種別を判定した結果、発生した割り込みが現在実行中の仮想計算機に対する割り込みであると判定された場合、割り込み発生直前のプログラムカウンタ値を保存する割り込み復帰先保存回路と、各仮想計算機において実行される割り込み処理の優先度及び各仮想計算機において実行されるタスク処理の優先度を第１の割り込みマスクレベルとして予め記憶する割り込みマスクレベル設定テーブルと、仮想計算機による割り込み処理が終了した場合、前記割り込みマスクレベル設定テーブルの中から、仮想計算機が次に実行する処理に対応する第１の割り込みマスクレベルを前記割り込み制御回路に通知する第１の割り込みマスクレベル設定回路と、前記割り込み制御回路における割り込みレベルを最新の状態に更新するよう前記割り込み制御回路に要求する更新回路とを含み、前記割り込み制御回路は、発生した割り込みの優先度を示す割り込みレベルを１つ以上保存し、保存している前記割り込みレベルの内の最も優先度の高い割り込みレベルを第２の割り込みマスクレベルとして保存する割り込みレベル保存回路と、前記第１の割り込みマスクレベル設定回路によって通知された前記第１の割り込みマスクレベルを割り込みレベルとして前記割り込みレベル保存回路に設定する第２の割り込みマスクレベル設定回路と、新規に発生した割り込みを受け取り、前記新規に発生した割り込みの種別を判定し、判定した割り込み種別に対応する割り込みレベルを前記割り込みレベル保存回路に設定する第２の割り込み種別判定回路と、前記割り込みレベル保存回路に保存されている前記第２の割り込みマスクレベルと、前記第２の割り込み種別判定回路から通知される新規に発生した割り込みの割り込みレベルとを比較し、新規に発生した割り込みの割り込みレベルが前記割り込みレベル保存回路に保存されている前記第２の割り込みマスクレベルより高い場合、前記仮想計算機制御回路へ割り込みを通知する優先度判定回路とを含む。
【０１７１】
この構成によれば、仮想計算機制御回路は、ＣＰＵ上で動作する複数の仮想計算機の切り替えを制御し、割り込み制御回路は、発生した割り込みの優先度を示す割り込みレベルに基づいて、仮想計算機制御回路への割り込みの通知を制御する。割り込み制御回路から通知された割り込みの種別が判定され、割り込みの種別を判定した結果、発生した割り込みが現在実行中の仮想計算機に対する割り込みであると判定された場合、割り込み発生直前のプログラムカウンタ値が保存される。割り込みマスクレベル設定テーブルは、各仮想計算機において実行される割り込み処理の優先度及び各仮想計算機において実行されるタスク処理の優先度を第１の割り込みマスクレベルとして予め記憶している。仮想計算機による割り込み処理が終了した場合、割り込みマスクレベル設定テーブルの中から、仮想計算機が次に実行する処理に対応する第１の割り込みマスクレベルが割り込み制御回路に通知される。また、割り込み制御回路における割り込みレベルを最新の状態に更新するよう割り込み制御回路に要求される。割り込みレベル保存回路は、発生した割り込みの優先度を示す割り込みレベルを１つ以上保存し、保存している割り込みレベルの内の最も優先度の高い割り込みレベルを第２の割り込みマスクレベルとして保存する。通知された第１の割り込みマスクレベルが割り込みレベルとして割り込みレベル保存回路に設定される。新規に発生した割り込みが受け取られ、新規に発生した割り込みの種別が判定され、判定された割り込み種別に対応する割り込みレベルが割り込みレベル保存回路に設定される。割り込みレベル保存回路に保存されている第２の割り込みマスクレベルと、第２の割り込み種別判定回路から通知される新規に発生した割り込みの割り込みレベルとが比較され、新規に発生した割り込みの割り込みレベルが割り込みレベル保存回路に保存されている第２の割り込みマスクレベルより高い場合、仮想計算機制御回路へ割り込みが通知される。
【０１７２】
したがって、仮想計算機の割り込み処理が終了したタイミングで、割り込み制御回路において割り込みをマスクするための優先度を更新することにより、タスクの優先度を通知することができない仮想計算機であっても、タスクの優先度に応じて仮想計算機の優先度を決定し、仮想計算機の切り替えを適切に制御することができる。
【０１７３】
本発明の他の局面に係る仮想計算機制御方法は、発生した割り込みの優先度を示す割り込みレベルに基づいて、割り込みの通知を制御する割り込み制御部から通知された割り込みの種別を判定する第１の割り込み種別判定ステップと、前記第１の割り込み種別判定ステップにおいて割り込みの種別を判定した結果、発生した割り込みが現在実行中の仮想計算機に対する割り込みであると判定された場合、割り込み発生直前のプログラムカウンタ値を保存する割り込み復帰先保存ステップと、仮想計算機による割り込み処理が終了した場合、各仮想計算機において実行される割り込み処理の優先度及び各仮想計算機において実行されるタスク処理の優先度を第１の割り込みマスクレベルとして予め記憶する割り込みマスクレベル設定テーブルの中から、仮想計算機が次に実行する処理に対応する第１の割り込みマスクレベルを前記割り込み制御部に通知する第１の割り込みマスクレベル設定ステップと、前記割り込み制御部における割り込みレベルを最新の状態に更新するよう前記割り込み制御部に要求する更新ステップと、発生した割り込みの優先度を示す割り込みレベルを１つ以上保存し、保存している前記割り込みレベルの内の最も優先度の高い割り込みレベルを第２の割り込みマスクレベルとして割り込みレベル保存部に保存する割り込みレベル保存ステップと、前記第１の割り込みマスクレベル設定ステップにおいて通知された前記第１の割り込みマスクレベルを割り込みレベルとして前記割り込みレベル保存部に設定する第２の割り込みマスクレベル設定ステップと、新規に発生した割り込みを受け取り、前記新規に発生した割り込みの種別を判定し、判定した割り込み種別に対応する割り込みレベルを前記割り込みレベル保存部に設定する第２の割り込み種別判定ステップと、前記割り込みレベル保存部に保存されている前記第２の割り込みマスクレベルと、前記第２の割り込み種別判定部から通知される新規に発生した割り込みの割り込みレベルとを比較し、新規に発生した割り込みの割り込みレベルが前記割り込みレベル保存部に保存されている前記第２の割り込みマスクレベルより高い場合、ＣＰＵ上で動作する複数の仮想計算機の切り替えを制御する仮想計算機制御部へ割り込みを通知する優先度判定ステップとを含む。
【０１７４】
この構成によれば、仮想計算機制御部は、ＣＰＵ上で動作する複数の仮想計算機の切り替えを制御し、割り込み制御部は、発生した割り込みの優先度を示す割り込みレベルに基づいて、仮想計算機制御部への割り込みの通知を制御する。割り込み制御部から通知された割り込みの種別が判定され、割り込みの種別を判定した結果、発生した割り込みが現在実行中の仮想計算機に対する割り込みであると判定された場合、割り込み発生直前のプログラムカウンタ値が保存される。割り込みマスクレベル設定テーブルは、各仮想計算機において実行される割り込み処理の優先度及び各仮想計算機において実行されるタスク処理の優先度を第１の割り込みマスクレベルとして予め記憶している。仮想計算機による割り込み処理が終了した場合、割り込みマスクレベル設定テーブルの中から、仮想計算機が次に実行する処理に対応する第１の割り込みマスクレベルが割り込み制御部に通知される。また、割り込み制御部における割り込みレベルを最新の状態に更新するよう割り込み制御部に要求される。割り込みレベル保存部は、発生した割り込みの優先度を示す割り込みレベルを１つ以上保存し、保存している割り込みレベルの内の最も優先度の高い割り込みレベルを第２の割り込みマスクレベルとして保存する。通知された第１の割り込みマスクレベルが割り込みレベルとして割り込みレベル保存部に設定される。新規に発生した割り込みが受け取られ、新規に発生した割り込みの種別が判定され、判定された割り込み種別に対応する割り込みレベルが割り込みレベル保存部に設定される。割り込みレベル保存部に保存されている第２の割り込みマスクレベルと、第２の割り込み種別判定部から通知される新規に発生した割り込みの割り込みレベルとが比較され、新規に発生した割り込みの割り込みレベルが割り込みレベル保存部に保存されている第２の割り込みマスクレベルより高い場合、仮想計算機制御部へ割り込みが通知される。
【０１７５】
したがって、仮想計算機の割り込み処理が終了したタイミングで、割り込み制御部において割り込みをマスクするための優先度を更新することにより、タスクの優先度を通知することができない仮想計算機であっても、タスクの優先度に応じて仮想計算機の優先度を決定し、仮想計算機の切り替えを適切に制御することができる。
【０１７６】
なお、発明を実施するための形態の項においてなされた具体的な実施態様または実施例は、あくまでも、本発明の技術内容を明らかにするものであって、そのような具体例にのみ限定して狭義に解釈されるべきものではなく、本発明の精神と特許請求事項との範囲内で、種々変更して実施することができるものである。
【産業上の利用可能性】
【０１７７】
本発明にかかる仮想計算機制御装置、仮想計算機制御プログラム及び仮想計算機制御回路は、仮想計算機を用いた情報処理装置などで有効である。また、本発明にかかる仮想計算機制御装置、仮想計算機制御プログラム及び仮想計算機制御回路は、大型計算機またはパーソナルコンピュータのような形態のみならず、各種の家電機器、携帯電話を含む通信機器、産業機器及び乗用機器などの組み込み機器でも利用可能である。
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】全図
【補正方法】変更
【補正の内容】
【図１】
2009157178.tif 000022
【図２】
2009157178.tif 000023
【図３】
2009157178.tif 000024
【図４】
2009157178.tif 000025
【図５】
2009157178.tif 000026
【図６】
2009157178.tif 000027
【図７】
2009157178.tif 000028
【図８】
2009157178.tif 000029
【図９】
2009157178.tif 000030
【図１０】
2009157178.tif 000031
【図１１】
2009157178.tif 000032
【図１２】
2009157178.tif 000033
【図１３】
2009157178.tif 000034
【図１４】
2009157178.tif 000035
【図１５】
2009157178.tif 000036
【図１６】
2009157178.tif 000037
【図１７】
2009157178.tif 000038
【図１８】
2009157178.tif 000039
【図１９】
2009157178.tif 000040
【国際調査報告】
2009157178.tif 000041
2009157178.tif 000042
2009157178.tif 000043
2009157178.tif 000044