(57)【要約】      （修正有）【課題】周辺装置の制御におけるハイパーバイザのオーバヘッドの低減を図る。【解決手段】情報処理装置１００においては、デバイスドライバが専有周辺装置１０７，１１０の処理を起動するための制御レジスタへのアクセスは、ハイパーバイザ１０５の処理が介在することなくそのまま実施される。また、専有周辺装置１０７，１１０から割込みが発生されると、ハイパーバイザ１０５の処理が介在することなく、当該周辺装置１０７，１１０に対応するオペレーティングシステム１０１，１０３のデバイスドライバ１０２，１０４の処理が直接開始される。このような制御がプロセッサにおいて行われることにより、ハイパーバイザ１０５による処理が介在することなく当該周辺装置１０７，１１０の制御が実施可能となる。これによりハイパーバイザ１０５のオーバヘッドが軽減される。【選択図】図１
2011118578.tif 000002
【特許請求の範囲】
【請求項１】
周辺装置の接続を可能にするインタフェースを備えたプロセッサを含み、
上記プロセッサ上でバーチャルマシーンを実現するためのハイパーバイザと、それによって管理される複数のオペレーティングシステムとが搭載された情報処理装置であって、
上記周辺装置を、一つのオペレーティングシステムとその制御下で実行されるアプリケーションプログラムが独占的に使用可能な専有周辺装置と、複数のオペレーティングシステムとそれぞれの制御下で実行されるアプリケーションプリグラムが使用可能な共有周辺装置とに分類し、上記共有周辺装置についての制御は、上記ハイパーバイザの処理を介して当該制御処理に関与するアプリケーションプログラムの実行を制御するオペレーティングシステムに実施させ、上記専有周辺装置についての制御は、上記ハイパーバイザの処理を介することなく、当該制御処理に関与するアプリケーションプログラムの実行を制御するオペレーティングシステムに実施させるための情報を設定可能なレジスタ群を含むことを特徴とする情報処理装置。
【請求項２】
上記プロセッサは、上記周辺装置が専有周辺装置の場合には、上記オペレーティングシステムによる当該周辺装置の制御レジスタのアクセスにより例外を発生させず、上記周辺装置が専有周辺装置の場合には、上記オペレーティングシステムによる当該周辺装置の制御レジスタのアクセスにより例外を発生させ、上記ハイパーバイザの当該共有周辺装置に対する制御プログラムを起動する請求項１記載の情報処理装置。
【請求項３】
上記周辺装置が専有周辺装置の場合には、上記プロセッサでのプログラム実行が、当該周辺装置を制御下に置くオペレーティングシステムによる当該周辺装置に関する制御プログラムの実行に移行され、上記周辺装置が共有周辺装置の場合には、上記プロセッサでのプログラム実行が、上記ハイパーバイザの当該周辺装置に関する制御プログラムの実行に移行される請求項２記載の情報処理装置。
【請求項４】
オペレーティングシステムの制御下にある周辺装置に対する制御は特権命令により実施され、
上記周辺装置が専有周辺装置の場合は、オペレーティングシステムによる当該周辺装置の制御レジスタのアクセスにより例外を発生させず、上記周辺装置が共有周辺装置ある場合は、オペレーティングシステムによる当該周辺装置の制御レジスタのアクセスにより例外を発生させ、上記ハイパーバイザの当該共有周辺装置に対する制御プログラムを起動する請求項１記載の情報処理装置。
【請求項５】
上記制御レジスタは、物理アドレス空間上の連続した領域に割り付けられ、
上記レジスタ群は、個々の周辺装置に対応する領域に対するアクセスにより例外が発生するか否かを指定する遷移制御アドレス区画設定レジスタを含む請求項２記載の情報処理装置。
【請求項６】
上記制御レジスタは、サイズを２のべき乗、開始アドレスをサイズの倍数とした物理アドレス空間上の領域に割り付けられた請求項５記載の情報処理装置。
【請求項７】
上記レジスタ群は、周辺装置の制御レジスタを含むシステムレジスタが設置されたアドレス領域内のあらかじめ指定された各アドレス区画へのアクセスに対し、フック対象領域アクセスかフック対象外領域アクセスかを指定可能な区画設定レジスタを含む請求項２記載の情報処理装置。
【請求項８】
上記プロセッサは、上記オペレーティングシステムの制御下にある周辺装置に対する制御を実施する制御プログラムの起動は、当該周辺装置が生成する割込み信号によって行われ、上記周辺装置が専有周辺装置ある場合は、オペレーティングシステムによる当該周辺装置の制御を実施する制御プログラムが起動され、当該周辺装置が共有周辺装置ある場合は、ハイパーバイザによる当該周辺装置の制御を実施する制御プログラムが起動されるように指定可能な割込み制御ユニットを含む請求項１記載の情報処理装置。
【請求項９】
上記割込み制御ユニットは、個々の周辺装置に対して、当該周辺処理が生成した割込み信号により起動する制御プログラムを、オペレーティングシステムによる制御プログラムとするか、ハイパーバイザによる制御プログラムとするかを指定可能なトランジションXVSレジスタを含む請求項８記載の情報処理装置。
【請求項１０】
上記プロセッサは、中央処理装置を含み、
上記中央処理装置は、割込みレベルによってプロセッサの実行を割込み処理へ遷移するか否かを制御するビット、及び割込みによってプロセッサの実行を割込み処理へ遷移するか否かを制御するビットを有する第１ステータスレジスタと、
割込みレベルによってプロセッサの実行を割込み処理へ遷移するか否かを制御するビット、及び割込みによってプロセッサの実行を割込み処理へ遷移するか否かを制御するビットを有する第２ステータスレジスタと、を含む請求項９記載の情報処理装置。
【請求項１１】
上記割込み制御ユニットは、割込み発生時にプロセッサの実行を遷移するか否かの制御を、上記第１ステータスレジスタによる指定に従うか、上記第２ステータスレジスタによる指定に従うかを指定するインセンシティブレジスタを含む請求項８記載の情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、さらにはそれに含まれるハイパーバイザのオーバヘッドを軽減するための技術に関する。
【背景技術】
【０００２】
情報処理装置の一例としてマイクロプロセッサを挙げることができる。今日のマイクロプロセッサや、それを含むシステムにおいては、ＬＳＩ(Large Scale Integration)の微細化に伴い、そのシステムで動作するアプリケーションに要求される機能がより高機能化、複雑化している。高機能なアプリケーションを開発するに当たっては、既存のアプリケーションを活用し、それらを組み合わせて、より高機能なアプリケーションを開発することが、開発効率の観点から一般的である。このとき、既存のアプリケーションは、従来のマイクロプロセッサで構成される従来システムで動作するものであり、その従来システムの構成と不可分のものである。システムの構成を変更することは、既存アプリケーションを再度開発するほどではないにせよ、多大な開発工数が必要となるものである。したがって、既存アプリケーションのプログラムは、ほとんどの場合、従来システムで動作させなければならず、既存アプリケーションを組み合わせて動作させるためには、従来システム自体も組み合わせて動作させる必要がある。
【０００３】
ここで、「従来システム」とは、単一の中央処理装置と単一のオペレーティングシステム(OS)で構成されるシステムを指し、「従来システムを組み合わせて動作させる」とは、特に多種多数のオペレーティングシステムを組み合わせて、同時に動作させることを意味する。
【０００４】
特許文献１には、各々の従来システムの信頼性やセキュリティを保ちつつ、それらのオペレーティングシステムを複数組み合わせて動作させる技術が記載されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−０９７１７３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
携帯電話のような組み込みシステムの中にも仮想機械（バーチャルマシン）を適用することができる。ハイパーバイザ(hypervisor)は、コンピュータの仮想化技術のひとつであるバーチャルマシンを実現するための制御プログラムとされる。このハイパーバイザはハードウェア上で直接動作し、全てのオペレーティングシステムはそのハイパーバイザ上で動作される。ハードウェア資源の使用効率を上げるためには、複数のオペレーティングシステムが全てのハードウェア資源を共有し、それぞれのオペレーティングシステムから全てのハードウェア資源へのアクセスを可能にし、ハードウェア資源とオペレーティングシステムとの間に位置するハイパーバイザがオペレーティングシステム間のハードウェア資源に関する調停を実施することが考えられる。これについて本願発明者が検討したところ、以下のように、ハイパーバイザのオーバヘッドを生ずることが見いだされた。
【０００７】
例えばオペレーティングシステムが周辺装置の制御を実施するデバイスドライバが当該周辺装置の処理を起動するために、制御レジスタのアクセス、もしくは特権命令を実施すると、プロセッサは当該アクセスに対する処理、もしくは特権命令の処理を開始する前に例外を発生し、ハイパーバイザの当該周辺装置へのアクセスの調停を実現する処理プログラムへ処理の制御を遷移する。そしてハイパーバイザのアクセスの調停に関する処理が終了後、プロセッサは、オペレーティングシステム内の当該周辺装置の制御を実施するデバイスドライバの処理で先ほど例外を発生させた制御レジスタへのアクセス、もしくは特権命令の処理から再開する。一方、当該周辺装置に対して起動した処理が完了すると当該周辺装置は割込みを発生させ、プロセッサの処理の実行制御をハイパーバイザの処理の実行に遷移させ、オペレーティングシステム間の調停を実施したのち、当該周辺装置に当該処理の起動をかけたオペレーティングシステムのデバイスドライバの処理を開始する。このようにオペレーティングシステムの周辺装置に対する制御においては、ハードウェア資源とオペレーティングシステムとの間にハイパーバイザが介在する分、余分な処理時間が必要となり、このことが、ハイパーバイザのオーバヘッドを顕在化させる主たる要因とされる。
【０００８】
本発明の目的は、ハイパーバイザのオーバヘッドの低減を図るための技術を提供することある。
【０００９】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１０】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１１】
すなわち、本発明の代表的な実施の形態に係る情報処理装置は、周辺装置の接続を可能にするインタフェースを備えたプロセッサと、上記プロセッサ上でバーチャルマシーンを実現するためのハイパーバイザと、それによって管理される複数のオペレーティングシステムとを含む。上記周辺装置は、一つのオペレーティングシステムとその制御下で実行されるアプリケーションプログラムが独占的に使用可能な専有周辺装置と、複数のオペレーティングシステムとそれぞれの制御下で実行されるアプリケーションプリグラムが使用可能な共有周辺装置とに分類される。そして、上記共有周辺装置についての制御は、上記ハイパーバイザの処理を介して当該制御処理に関与するアプリケーションプログラムの実行を制御するオペレーティングシステムに実施させ、上記専有周辺装置についての制御は、上記ハイパーバイザの処理を介することなく、当該制御処理に関与するアプリケーションプログラムの実行を制御するオペレーティングシステムに実施させるための情報を設定可能なレジスタ群が設けられる。上記専有周辺装置についての制御は、上記ハイパーバイザの処理を介することなく、当該制御処理に関与するアプリケーションプログラムの実行を制御するオペレーティングシステムに実施させることができ、そのような制御が行われることにより、ハイパーバイザによる処理が介在することなく当該周辺装置の制御が実施可能となる。このことが、ハイパーバイザのオーバーヘッの軽減を達成する。
【発明の効果】
【００１２】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
【００１３】
すなわち、ハイパーバイザのオーバヘッドを低減することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明にかかる情報処理装置の構成例ブロック図である。
【図２】上記情報処理装置においてプロセッサがプログラムを実行する際の動作モードに関する説明図である。
【図３】中央処理装置の動作モードの遷移を引き起こす各事象（イベント）に対して遷移先の動作モードを指定するレジスタ群及び周辺装置の制御レジスタの説明図である。
【図４】上記プロセッサに含まれるXVS遷移命令設定レジスタの説明図である。
【図５】上記プロセッサに含まれるXVS遷移例外設定レジスタ及びXVS遷移拡張資源設定レジスタの具体例の説明図である。
【図６】XVS遷移制御レジスタ区画設定レジスタ、XVS遷移制御疎粒度アドレス区画設定レジスタ、XVS遷移制御細粒度アドレス区画設定レジスタの説明図である。
【図７】上記プロセッサに含まれる割込みコントローラの構成例ブロック図である。
【図８】上記中央処理装置内のレジスタ、及び割込みコントローラ内のレジスタについての説明である。
【図９】上記割込みコントローラに含まれるトランジションXVSレジスタの具体例の説明図である。
【図１０】各割込み要因の処理に対しSRXレジスタの使用を指定するレジスタの説明図である。
【発明を実施するための形態】
【００１５】
１．実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【００１６】
〔１〕本発明の代表的な実施の形態に係る情報処理装置（１００）は、周辺装置（１０７，１０８，１１０）の接続を可能にするインタフェース（１２，１３，１６）を備えたプロセッサ（１０６）と、上記プロセッサ上でバーチャルマシーンを実現するためのハイパーバイザ（１０５）と、それによって管理される複数のオペレーティングシステム（１０１，１０３）とを含む。
【００１７】
上記周辺装置は、一つのオペレーティングシステムとその制御下で実行されるアプリケーションプログラムが独占的に使用可能な専有周辺装置（７１６）と、複数のオペレーティングシステムとそれぞれの制御下で実行されるアプリケーションプリグラムが使用可能な共有周辺装置（７１５）とに分類される。そして、上記共有周辺装置についての制御は、上記ハイパーバイザの処理を介して当該制御処理に関与するアプリケーションプログラムの実行を制御するオペレーティングシステムに実施させ、上記専有周辺装置についての制御は、上記ハイパーバイザの処理を介することなく、当該制御処理に関与するアプリケーションプログラムの実行を制御するオペレーティングシステムに実施させる。そのような情報を設定可能なレジスタ群（１７）が設けられる。
【００１８】
情報処理装置においては、デバイスドライバが専有周辺装置の処理を起動するための制御レジスタ１８へのアクセスは、ハイパーバイザの処理が介在することなくそのまま実施される。また、専有周辺装置から割込みが発生されると、ハイパーバイザの処理が介在することなく、当該周辺装置に対応するオペレーティングシステムのデバイスドライバの処理が直接開始される。このような制御がプロセッサにおいて行われることにより、専有周辺装置が大部分を占める組込みシステムにおいては、ハイパーバイザによる処理が介在することなく当該周辺装置の制御が実施可能となる。これによりハイパーバイザのオーバヘッドが軽減される。
【００１９】
また、上記のようにハイパーバイザによる処理が介在されない分、プロセッサでの処理時間が短縮されるので、情報処理装置の性能の最適化が実現可能となる。
【００２０】
〔２〕上記〔１〕において、上記プロセッサは、上記周辺装置が専有周辺装置の場合には、上記オペレーティングシステムによる当該周辺装置の制御レジスタ（１８）のアクセスにより例外を発生させない。上記プロセッサは、上記周辺装置が共有周辺装置の場合には、上記オペレーティングシステムによる当該周辺装置の制御レジスタ（１８）のアクセスにより例外を発生させ、上記ハイパーバイザの当該共有周辺装置に対する制御プログラムを起動する。このように構成することで、ハイパーバイザのオーバヘッド軽減効果が顕著になる。
【００２１】
〔３〕上記〔２〕において、上記周辺装置が専有周辺装置の場合には、上記プロセッサでのプログラム実行が、当該周辺装置を制御下に置くオペレーティングシステムによる当該周辺装置に関する制御プログラムの実行に移行され、上記周辺装置が共有周辺装置の場合には、上記プロセッサでのプログラム実行が、上記ハイパーバイザの当該周辺装置に関する制御プログラムの実行に移行されるように設定することができる。
【００２２】
〔４〕上記〔１〕において、オペレーティングシステムの制御下にある周辺装置に対する制御において特権命令が用いられる場合、上記周辺装置が専有周辺装置の場合は、オペレーティングシステムによる当該周辺装置の特権命令の実行により例外を発生させない。そして上記周辺装置が共有周辺装置ある場合は、オペレーティングシステムによる当該周辺装置の特権命令の実行により例外を発生させ、上記ハイパーバイザの当該共有周辺装置に対する制御プログラムを起動するように設定することができる。
【００２３】
〔５〕上記〔２〕において、上記制御レジスタ（１８）は、物理アドレス空間上の連続した領域に割り付けられ、
上記レジスタ群には、個々の周辺装置に対応する領域に対するアクセスにより例外が発生するか否かを指定する遷移制御アドレス区画設定レジスタ(XVSTRSCAB,XVSTRSFAB)を含めることができる。
【００２４】
〔６〕上記〔５〕において、上記制御レジスタ（１８）の割付けを的確に行うには、上記制御レジスタ（１８）は、サイズを２のべき乗、開始アドレスをサイズの倍数とした物理アドレス空間上の領域に割り付けるとよい。
【００２５】
〔７〕上記〔２〕において、上記レジスタ群には、周辺装置の制御レジスタ（１８）を含むシステムレジスタが設置されたアドレス領域内のあらかじめ指定された各アドレス区画へのアクセスに対し、フック対象領域アクセスかフック対象外領域アクセスかを指定可能な区画設定レジスタを含めることができる。上記区画設定レジスタには、遷移制御疎粒度アドレス区画設定レジスタ(XVSTRSCAB)、遷移制御レジスタ区画設定レジスタ(XVSTRSCRB)、遷移制御細粒度アドレス区画設定レジスタ(XVSTRSFAB)を含めることができる。
【００２６】
〔８〕上記〔１〕において、上記オペレーティングシステムの制御下にある周辺装置に対する制御を実施する制御プログラムの起動は、当該周辺装置が生成する割込み信号によって行われる。上記周辺装置が専有周辺装置ある場合は、オペレーティングシステムによる当該周辺装置の制御を実施する制御プログラムが起動される。当該周辺装置が共有周辺装置ある場合は、ハイパーバイザによる当該周辺装置の制御を実施する制御プログラムが起動される。このような指定を可能とする割込み制御ユニット（１１）を上記プロセッサ内に設けることができる。
【００２７】
〔９〕上記〔８〕において、上記機能を有する割込み制御ユニットを容易に構成するには、個々の周辺装置に対して、当該周辺処理が生成した割込み信号により起動する制御プログラムを、オペレーティングシステムによる制御プログラムとするか、ハイパーバイザによる制御プログラムとするかを指定可能なトランジションXVSレジスタ(CnXVS2TRX,CnXVS2TRX)を設けると良い。
【００２８】
〔１０〕上記９において、上記プロセッサには中央処理装置を含めることができる。この場合において、上記中央処理装置には、割込みレベルによってプロセッサの実行を割込み処理へ遷移するか否かを制御するビット、及び割込みによってプロセッサの実行を割込み処理へ遷移するか否かを制御するビットを有する第１ステータスレジスタ(SR)を含めることができる。さらに上記中央処理装置には、割込みレベルによってプロセッサの実行を割込み処理へ遷移するか否かを制御するビット、及び割込みによってプロセッサの実行を割込み処理へ遷移するか否かを制御するビットを有する第２ステータスレジスタ(SRX)とを含めることができる。
【００２９】
〔１１〕上記〔８〕において、上記機能を有する割込み制御ユニットを容易に構成するには、割込み発生時にプロセッサの実行を遷移するか否かの制御を、上記第１ステータスレジスタによる指定に従うか、上記第２ステータスレジスタによる指定に従うかを指定するインセンシティブレジスタ(CnXVSSRI,CnXVS2SRI)を含めるとよい。
【００３０】
２．実施の形態の詳細
実施の形態について更に詳述する。
【００３１】
＜実施の形態１＞
図１には、本発明にかかる情報処理装置の構成例が示される。
【００３２】
図１に示される情報処理装置１００は、マルチコアSoC(System-on-a-Chip)プロセッサ（以下単に「プロセッサ」という）１０６を含む。上記プロセッサ１０６は、複数の中央処理装置（CPU #0,CPU #1,…,CPU #n）１０−０，１０−１，…，１０−ｎを含む。さらに上記プロセッサ１０６は、割込み制御ユニット(INTC)１１、PCI(Peripheral Component Interconnect)ユニット(PCI)１２、ディスプレイ制御ユニット(DU)１３、外部メモリ制御ユニット(RAM Con)１４、DMAC（Direct Memory Access Controller）１５、汎用I/O制御ユニット(GPIO)１６を含む。そしてそのようなプロセッサ１０６は、公知の半導体集積回路製造技術により、単結晶シリコン基板などの一つの半導体基板に形成される。上記中央処理装置１０−０，１０−１，…，１０−ｎ、割込み制御ユニット１１、PCIユニット１２、ディスプレイ制御ユニット１３、外部メモリ制御ユニット１４、ダイレクトメモリアクセスコントローラ(DMAC)１５及び汎用I/O制御ユニット１６は、内部バスＢＵＳを介して互いに信号のやり取りが可能に結合されている。上記中央処理装置１０−０，１０−１，…，１０−ｎは、予め設定されたプログラムに従って所定の演算処理を実行する。割込み制御ユニット１１は、周辺装置や内部モジュールから上記中央処理装置１０−０，１０−１，…，１０−ｎへの割込みを制御する。DMAC１５は、データ転送を中央処理装置１０−０，１０−１，…，１０−ｎに代わって高速に行う。また、上記プロセッサ１０６には、複数の周辺装置が接続される。上記周辺装置には、特に制限されないが、汎用I/O制御ユニット１６に接続された外部デバイス(Dev)１１０、外部メモリ制御ユニット(RAM Con)１４に接続された外部メモリ(RAM)１０９、ディスプレイ制御ユニット１３に接続されたディスプレイ装置(Disp)１０８、PCIユニット１２に接続されたネットワーク制御デバイス(Net)１０７等が含まれる。さらに上記情報処理装置１００では、仮想化技術が適用され、情報処理装置１００のハードウェア上に、ハイパーバイザ(XVS)１０５を介して、制御系オペレーティングシステム(GPOS)１０１と、情報系オペレーティングシステム(RTOS)１０３とが搭載される。上記ハイパーバイザ１０５は、ハードウェア（プロセッサ）上で仮想マシン（バーチャルマシン）を実現するための制御プログラムである。上記制御系オペレーティングシステム１０１と情報系オペレーティングシステム１０３は、上記ハイパーバイザ１０５の制御下にある。上記制御系オペレーティングシステム１０１は、デバイスドライバ(DRV)１０２を含み、情報系オペレーティングシステム１０３は、デバイスドライバ(DRV)１０４を含む。上記デバイスドライバ１０２，１０４は、ある特定の入出力デバイスを制御し、アプリケーションソフトウェアに対して抽象化したインターフェースを提供するためのソフトウェアとされる。
【００３３】
尚、上記プロセッサ１０６内には、図３に示されるように、上記中央処理装置１０−０，１０−１，…，１０−ｎの動作モードの遷移を引き起こす各事象（イベント）に対して遷移先の動作モードを指定するためのレジスタ群１７や、周辺装置の制御レジスタ１８が配置されている。これについては後に詳述する。
【００３４】
ここで、ハードウェア資源とオペレーティングシステムの間に位置するハイパーバイザがオペレーティングシステム間のハードウェア資源に関する調停を実施する場合を検討する。オペレーティングシステムが周辺装置の制御を実施するデバイスドライバが当該周辺装置の処理を起動するために、制御レジスタ１８のアクセス、もしくは特権命令を実施すると、プロセッサは当該アクセスに対する処理、もしくは特権命令の処理を開始する前に例外を発生し、ハイパーバイザの当該周辺装置へのアクセスの調停を実現する処理プログラムへ処理の制御を遷移する。そしてハイパーバイザのアクセスの調停に関する処理が終了後、プロセッサは、オペレーティングシステム内の当該周辺装置の制御を実施するデバイスドライバの処理で先ほど例外を発生させた制御レジスタ１８へのアクセス、もしくは特権命令の処理から再開する。一方、当該周辺装置に対して起動した処理が完了すると当該周辺装置は割込みを発生させ、プロセッサの処理の実行制御をハイパーバイザの処理の実行に遷移させ、オペレーティングシステム間の調停を実施したのち、当該周辺装置に当該処理の起動をかけたオペレーティングシステムのデバイスドライバの処理を開始する。従って、オペレーティングシステムの周辺装置に対する制御においては、ハードウェア資源とオペレーティングシステムとの間にハイパーバイザが介在する分、余分な処理時間が必要となる。
【００３５】
そこで図１に示される情報処理装置１００においては、組込みシステムでは大部分の周辺装置は特定のオペレーティングシステムのみが使用するという特徴に注目し、周辺装置を複数のオペレーティングシステムから共有される共有周辺装置と、特定のオペレーティングシステムに専有される専有周辺装置とに分類し、それぞれ適切な処理を行うようにしている。例えば、外部デバイス１１０は、制御系オペレーティングシステム１０１に専有される専有周辺装置とされ、ネットワーク制御デバイス１０７は、情報系オペレーティングシステム１０３に専有される専有周辺装置とされる。ディスプレイ制御ユニット１０８は、制御系オペレーティングシステム１０１と情報系オペレーティングシステム１０３とに共有される共有周辺装置とされる。共有周辺装置（１０８）に関しては仮想化技術を活用し、共有周辺装置（１０８）とオペレーティングシステム１０１，１０３との間に介在されるハイパーバイザ１０５が複数のオペレーティングシステム１０１，１０３からのアクセスに関する調停作業を実施する。一方、専有周辺装置（１０７，１１０）は、特定のオペレーティングシステムのみが制御を実施するため、オペレーティングシステム１０１，１０３間でのアクセス調停処理を必要としない。
【００３６】
従って、図１に示される情報処理装置１００においては、デバイスドライバが専有周辺装置（１０７，１１０）の処理を起動するための制御レジスタ１８へのアクセスは、ハイパーバイザ１０５の処理が介在することなくそのまま実施される。また、専有周辺装置（１０７，１１０）から割込みが発生されると、ハイパーバイザ１０５の処理が介在することなく、当該周辺装置に対応するオペレーティングシステムのデバイスドライバの処理が直接開始される。このような制御がプロセッサ１０６において行われることにより、専有周辺装置が大部分をしめる組込みシステムにおいて、周辺装置の制御が、ハイパーバイザ１０５による処理が介在することなく実施可能となり、ハイパーバイザ１０５のオーバヘッドが軽減される。また、それによって処理時間の短縮による性能の最適化が実現可能となる。
【００３７】
図２には、図１に示される情報処理装置１００において、プロセッサ１０６がプログラムを実行する際の動作モードが示される。
【００３８】
プロセッサ１０６は、ハイパーバイザモード(XVSモード)、特権モード、ユーザモードの三つの動作モードを持つ。ユーザモードは、中央処理装置１０−０，１０−１，…，１０−ｎがアプリケーションプログラムを実装する命令を実行する動作モードであり、特権モードは、中央処理装置(CPU)がオペレーティングシステムを実装する命令を実行するモードであり、ハイパーバイザモード(XVSモード)は、ハイパーバイザ１０５を実装する命令を実行するモードである。
【００３９】
ハイパーバイザモードでは、中央処理装置１０−０，１０−１，…，１０−ｎはプロセッサの全ハードウェア資源のアクセスと全ての命令の実行が可能である。特権モードでは、中央処理装置１０−０，１０−１，…，１０−ｎがアクセスできるハードウェア資源と実行できる命令に制約が加わる。ユーザモードでは、特権モードよりさらにその制約が強くなる。
【００４０】
中央処理装置１０−０，１０−１，…，１０−ｎが、ユーザモードでプログラムの命令を実行中に、OS宛割り込み（オペレーティングシステムに対する割込み）、またはフック対象外例外、もしくはフック対象外特権命令、またはフック対処外領域アクセスを実行すると、動作モードは特権モードへ遷移して、オペレーティングシステムを実装するプログラムの実行を開始する。中央処理装置１０−０，１０−１，…，１０−ｎが、ユーザモードでプログラムの命令を実行中に、XVS宛て割込み（ハイパーバイザに対する割込み）、またはフック対象例外の発生、もしくはフック対象特権命令、またはフック対処領域アクセスを実行すると、動作モードはハイパーバイザモード(XVSモード)へ遷移し、ハイパーバイザ１０５を実装するプログラムの実行を開始する。
【００４１】
中央処理装置１０−０，１０−１，…，１０−ｎが、特権モードでプログラムの命令を実行中に、OS宛て割込み、またはフック対象外例外の発生、もしくはフック対象外特権命令、またはフック対処外領域アクセスを実行すると、動作モードは特権モードへ遷移し、オペレーティングシステムを実装するプログラムの命令の実行を開始する。
【００４２】
中央処理装置１０−０，１０−１，…，１０−ｎが、特権モードでプログラムの命令を実行中に、XVS宛て割込み、またはフック対象例外の発生、もしくはフック対象特権命令、またはフック対処領域アクセスを実行すると、動作モードはハイパーバイザモード(XVSモード)へ遷移し、ハイパーバイザ１０５を実装するプログラムの実行を開始する。
【００４３】
中央処理装置１０−０，１０−１，…，１０−ｎが、特権モードでオペレーティングシステムを実装するプログラムの処理を終了すると、復帰命令（RTE命令）を実行し、動作モードをユーザモードに遷移し、割込み、例外、の発生、もしくは、特権命令、フック対象外領域アクセス、フック対象領域アクセスの実行により中断していたアプリケーションプログラムの実行を再開する。
【００４４】
中央処理装置１０−０，１０−１，…，１０−ｎが、ハイパーバイザモード(XVSモード)でハイパーバイザ１０５を実装するプログラムの処理を終了すると、RTE命令を実行し、動作モードがハイパーバイザモード(XVSモード)に遷移してハイパーバイザ１０５を実装するプログラムの処理を開始する直前に実行していて中断された処理が再開される。この処理には、動作モードがユーザモードで実行していたアプリケーションを実装するプログラムの処理、もしくは動作モードがユーザモードで実行していたアプリケーションを実装するプログラムの処理が含まれる。
【００４５】
図３には、上記プロセッサ１０６内に配置されたレジスタ群１７及び制御レジスタ１８が示される。レジスタ群１７は、中央処理装置１０−０，１０−１，…，１０−ｎの動作モードの遷移を引き起こす各事象（イベント）に対して遷移先の動作モードを指定する機能を有する。そしてこのレジスタ群１７には、XVS遷移命令設定レジスタXVSTRSINS、XVS遷移例外設定レジスタXVSTRSEXP、XVS遷移拡張資源設定レジスタXVSTRSEXT、XVS遷移制御レジスタ区画設定レジスタXVSTRSCRB、XVS遷移制御疎粒度アドレス区画設定レジスタXVSTRSCAB、XVS遷移制御細粒度アドレス区画設定レジスタXVSTRSFABが含まれる。
【００４６】
XVS遷移命令設定レジスタXVSTRSINSは、各特権命令に対してフック対象特権命令かフック対象外特権命令かを指定する。フック対象特権命令の場合はその命令を実行した中央処理装置１０−０，１０−１，…，１０−ｎは、動作モードをハイパーバイザモード(XVSモード)に遷移させ、フック対象外特権命令の場合はその命令を実行した中央処理装置１０−０，１０−１，…，１０−ｎは、動作モードを特権モードに遷移させる。
【００４７】
XVS遷移例外設定レジスタXVSTRSEXPは、各例外事象に対してフック対象例外フック対象外例外かを指定し、フック対象例外の場合はその例外事象を発生させた中央処理装置１０−０，１０−１，…，１０−ｎは、動作モードをハイパーバイザモード(XVSモード)に遷移させ、フック対象外例外の場合はその例外事象を発生させた中央処理装置１０−０，１０−１，…，１０−ｎは、動作モードを特権モードに遷移させる。
【００４８】
XVS遷移拡張資源設定レジスタXVSTRSEXTは、従来のシングルコアのプロセッサからマルチコアSoCプロセッサ向けに拡張機能として付加されたシステムレジスタや領域等の資源へのアクセスに関して、当該資源へのアクセスをフック対象例外かフック対象外例外かを指定する。フック対象例外の場合はそのアクセスを実施した中央処理装置（１０−０，１０−１，…，１０−ｎ）は、動作モードをハイパーバイザモード(XVSモード)に遷移させ、フック対象外例外の場合はそのアクセスを実施した中央処理装置（１０−０，１０−１，…，１０−ｎ）は、動作モードを特権モードに遷移させる。
【００４９】
XVS遷移制御レジスタ区画設定レジスタXVSTRSCRB、XVS遷移制御疎粒度アドレス区画設定レジスタXVSTRSCAB、XVS遷移制御細粒度アドレス区画設定レジスタXVSTRSFABは、周辺装置の制御レジスタ１８をはじめとするシステムレジスタが設置されたアドレス領域内のあらかじめ指定された各アドレス区画へのアクセスに対し、フック対象領域アクセスかフック対象外領域アクセスかを指定する。フック対象例外の場合はそのアクセスを実施した中央処理装置（１０−０，１０−１，…，１０−ｎ）は、動作モードをハイパーバイザモード(XVSモード)に遷移させ、フック対象外例外の場合はそのアクセスを実施した中央処理装置（１０−０，１０−１，…，１０−ｎ）は、動作モードを特権モードに遷移させる。ここで、指定するアドレス区画のサイズ、アドレス区画のアドレス領域に応じて、XVS遷移制御レジスタ区画設定レジスタXVSTRSCRB、XVS遷移制御疎粒度アドレス区画設定レジスタXVSTRSCAB、XVS遷移制御細粒度アドレス区画設定レジスタXVSTRSFABが用意されている。
【００５０】
上記制御レジスタ１８は、図３に示されるように、汎用I/O制御ユニット１６に対応するGPIO制御レジスタGPIO-CONT-REG、ディスプレイ制御ユニット１３に対応するDU制御レジスタDU-CONTREG、及びPCIユニット１２に対応するPCI制御レジスタPCI-CONTREGを含む。
【００５１】
図４には、XVS遷移命令設定レジスタXVSTRSINSの具体例が示される。
【００５２】
XVS遷移命令レジスタ(XVSTRSINS)には、特権命令が実行された際、それがフック対象特権命令かフック対象外特権命令かを指定し、フック対象特権命令の場合、対応する中央処理装置１０−０，１０−１，…，１０−ｎはハイパーバイザモード(XVSモード)へ遷移し、フック対象外特権命令の場合、対応する中央処理装置１０−０，１０−１，…，１０−ｎは特権モードへ遷移する。
【００５３】
XVS遷移命令設定レジスタXVSTRSINSにおける各ビットは以下の機能を有する。
【００５４】
SLビットは、SLEEP命令の実行された際それがフック対象特権命令であるか否かを指定する。LDビットは、LDTLB命令の実行された際それがフック対象特権命令であるか否かを指定する。SYビットは、SYNCO命令の実行された際それがフック対象特権命令であるか否かを指定する。SRビットは、LDC命令、STC命令、LDC.L命令、STC.L命令の実行により、SRレジスタがロードもしくはストアされた際それがフック対象特権命令の実行であるか否かを指定する。RTEビットは、RTE命令の実行された際それがフック対象特権命令であるか否かを指定する。ICビットは、ICBI命令の実行された際それがフック対象特権命令であるか否かを指定する。
BLビットは、SETBL命令、CLRBL命令の実行により、SR.BLビットが変更された際それがフック対象特権命令の実行であるか否かを指定する。
【００５５】
図５には、上記XVS遷移例外設定レジスタXVSTRSEXP、及び上記XVS遷移拡張資源設定レジスタXVSTRSEXTの具体例が示される。XVS遷移例外設定レジスタXVSTRSEXPは、XVSTRSEXP0とXVSTRSEXP1を含む。
【００５６】
XVS遷移例外設定レジスタXVSTRSEXP0における各ビットは以下の機能を有する。
【００５７】
DT0ビットはDTLBPRPであって、特権モード中データTLB(Translation Look-aside Buffer)保護違反(読み出し)例外に対し、フック対象例外であるか否かを指定する。DT1ビットはDTLBPRUであって、ユーザモード中データTLB保護違反(読み出し)例外に対し、フック対象例外であるか否かを指定する。DT2ビットはDTLBMWPであって、特権モード中データTLBミス(書き込み)例外に対し、フック対象例外であるか否かを指定する。DT3ビットはDTLBMWUであって、ユーザモード中データTLBミス(書き込み)例外に対し、フック対象例外であるか否かを指定する。DT4ビットはDTLBMRPであって、特権モード中データTLBミス(読み出し)例外に対し、フック対象例外であるか否かを指定する。DT5ビットはDTLBMRUであって、ユーザモード中データTLBミス(読み出し)例外に対し、フック対象例外であるか否かを指定する。DA0ビットはDAERRWPであって、特権モード中データアドレスエラー(書き込み)例外に対し、フック対象例外であるか否かを指定する。DA1ビットはDAERRWUであって、ユーザモード中データアドレスエラー(書き込み)例外に対し、フック対象例外であるか否かを指定する。DA2ビットはDAERRRPであって、特権モード中データアドレスエラー(読み出し)例外に対し、フック対象例外であるか否かを指定する。DA3ビットはDAERRRUであって、ユーザモード中データアドレスエラー(読み出し)例外に対し、フック対象例外であるか否かを指定する。FP0ビットはFPMSLTPであって、特権モード中スロットFPU抑止例外に対しフック対象に対しフック対象例外であるか否かを指定する。FP1ビットはFPMSLTUであって、ユーザモード中スロットFPU抑止例外に対しフック対象に対しフック対象例外であるか否かを指定する。FP2ビットはFPUMSKPであって、特権モード中FPU抑止例外に対しフック対象例外であるか否かを指定する。FP3ビットはFPUMSKUであって、ユーザモード中FPU抑止例外に対しフック対象例外であるか否かを指定する。SL0ビットはINVSLTPであって、特権モード中スロット不当例外に対し、フック対象例外であるか否かを指定する。SL1ビットはINVSLTUであって、ユーザモード中スロット不当例外に対し、フック対象例外であるか否かを指定する。IV0ビットはINVINSPであって、特権モード中一般不当命令例外に対しフック対象例外であるか否かを指定する。IV1ビットはINVINSUであって、ユーザモード中一般不当命令例外に対しフック対象例外であるか否かを指定する。IT0ビットはITLBPRPであって、特権モード中命令TLB保護例外に対しフック対象例外であるか否かを指定する。IT1ビットはITLBPRUであって、ユーザモード中命令TLB保護例外に対しフック対象例外であるか否かを指定する。IT2ビットはITLBMSPであって、特権モード中命令TLBミス例外に対しフック対象例外であるか否かを指定する。IT3ビットはITLBMSUであって、ユーザモード中命令ミス例外に対しフック対象例外であるか否かを指定する。IA0ビットはIAERRPであって、特権モード中命令アドレスエラー例外に対しフック対象例外であるか否かを指定する。IA1ビットはIAERRUであって、ユーザモード中命令アドレスエラー例外に対しフック対象例外であるか否かを指定する。UB0ビットはUBRKPであって、特権モード中ユーザブレーク例外に対しフック対象例外であるか否かを指定する。UB1ビットはUBRKUであって、ユーザモード中ユーザブレーク例外に対しフック対象例外であるか否���を指定する。DT0ビットはDTLBMHPであって、特権モード中データTLB多重ヒット例外に対しフック対象例外であるか否かを指定する。DT1ビットはDTLBMHUであって、ユーザモード中データTLB多重ヒット例外に対しフック対象例外であるか否かを指定する。IT0ビットはDTLBMHPであって、特権モード中命令TLB多重ヒット例外に対しフック対象例外であるか否かを指定する。IT1ビットはDTLBMHUであって、ユーザモード中命令TLB多重ヒット例外に対しフック対象例外であるか否かを指定する。
【００５８】
XVS遷移例外設定レジスタXVSTRSEXP1における各ビットは以下の機能を有する。
【００５９】
NMビットはNMIHであって、ノンマスカブル割込みに対しフック対象例外か否かを指定する。INビットはINTHであって、一般割込みに対しフック対象例外か否かを指定する。DO0ビットはDIVOFPであって、特権モード中整数除算(オーバーフロー)例外に対しフック対象例外か否かを指定する。DO1ビットはDIVOFUであって、ユーザモード中整数除算(オーバーフロー)例外に対しフック対象例外か否かを指定する。DZ0ビットはDIVZRPであって、特権モード中整数除算(0除算)例外に対しフック対象例外か否かを指定する。DZ1ビットはDIVZRUであって、ユーザモード中整数除算(0除算)例外に対しフック対象例外か否かを指定する。TP0ビットはTRAPAPであって、特権モード中無条件トラップ例外に対しフック対象例外か否かを指定する。TP1ビットはTRAPAUであって、ユーザモード中無条件トラップ例外に対しフック対象例外か否かを指定する。PW0ビットはDINIPWPであって、特権モード中初期ページ書込み例外に対しフック対象例外か否かを指定する。PW1ビットはDINIPWUであって、ユーザモード中初期ページ書込み例外に対しフック対象例外か否かを指定する。FP0ビットはFPUEXPPであって、特権モード中FPU例外に対しフック対象例外か否かを指定する。FP1ビットはFPUEXPUであって、ユーザモード中FPU例外に対しフック対象例外か否かを指定する。DT2ビットはDTLBPWPであって、特権モード中データTLB保護違反(書き込み)に対しフック対象例外か否かを指定する。DT3ビットはDTLBPWPであって、ユーザモード中データTLB保護違反(書き込み)に対しフック対象例外か否かを指定する。
【００６０】
XVS遷移拡張資源設定レジスタXVSTRSEXTにおける各ビットは、以下の機能を有する。
【００６１】
LK0ビットはLCK7であって、224〜255番のロック同期レジスタへのアクセスに対しフック対象領域アクセスか否かを指定する。LK1ビットはLCK6であって、192〜223番のロック同期レジスタへのアクセスに対しフック対象領域アクセスか否かを指定する。LK2ビットはLCK5であって、160〜191番のロック同期レジスタへのアクセスに対しフック対象領域アクセスか否かを指定する。LK3ビットはLCK4であって、128〜159番のロック同期レジスタへのアクセスに対しフック対象領域アクセスか否かを指定する。LK4ビットはLCK3であって、96〜127番のロック同期レジスタへのアクセスに対しフック対象領域アクセスか否かを指定する。LK5ビットはLCK2であって、64〜95番のロック同期レジスタへのアクセスに対しフック対象領域アクセスか否かを指定する。LK6ビットはLCK1であって、32〜63番のロック同期レジスタへのアクセスに対しフック対象領域アクセスか否かを指定する。LK7ビットはLCK0であって、0〜31番のロック同期レジスタへのアクセスに対しフック対象領域アクセスか否かを指定する。B2ビットはBAR2であって、バリア同期レジスタ(BARR2、BARW2)へのアクセスに対しフック対象領域アクセスか否かを指定する。B1ビットはBAR1であって、バリア同期レジスタ(BARR1、BARW1)へのアクセスに対しフック対象領域アクセスか否かを指定する。B0ビットはBAR0であって、バリア同期レジスタ(BARR0、BARW0)へのアクセスに対しフック対象領域アクセスか否かを指定する。LRビットはLRAMであって、LRAMへのアクセスに対しフック対象アクセスか否かを指定する。SQビットはSQであって、ストアキュー(SQ)へのアクセスに対しフック対象アクセスか否かを指定する。L2SMビット、共有メモリ用L2キャッシュへのアクセスに対しフック対象アクセスか否かを指定する。L2CRビット、L2キャッシュ制御レジスタへのアクセスに対しフック対象アクセスか否かを指定する。XRビットはXVSRAM、XVS専用メモリへのアクセスに対しフック対象アクセスか否かを指定する。PMビットはPMBであって、PMBアレイへのアクセスに対しフック対象アクセスか否かを指定する。TLビットはTLBであって、ITLB/UTLBアレイへのアクセスに対しフック対象アクセスか否かを指定する。
【００６２】
図６には、XVS遷移制御レジスタ区画設定レジスタXVSTRSCRB、XVS遷移制御疎粒度アドレス区画設定レジスタXVSTRSCAB、XVS遷移制御細粒度アドレス区画設定レジスタXVSTRSFABの具体例が示される。
【００６３】
上記XVS遷移制御レジスタ区画設定レジスタXVSTRSCRBは、XVSTRSCRB0とXVSTRSCRB1を含む。
【００６４】
XVS遷移制御レジスタ区画設定レジスタXVSTRSCRB0は、個々の周辺装置の制御レジスタを物理アドレス空間上に割り付けるにあたり、H'10までサイズの領域に収まるものをH'FF00_0000からH'FF00_007Fまでの領域に割付け、H'10毎に領域のアクセスに対しフック対象領域アクセスとするかフック対象外領域アクセスとするかを指定する。すなわち、XVS遷移制御レジスタ区画設定レジスタXVSTRSCRB0において、CR7ビットは、物理アドレスH'FF00_0070〜H'FF00_007Fの領域へのアクセスをフック対象領域アクセスとするかフック対象外領域アクセスとするかを指定する。CR6ビットは、物理アドレスH'FF00_0060〜H'FF00_006Fの領域へのアクセスをフック対象領域アクセスとするかフック対象外領域アクセスとするかを指定する。以下同様に、CR5ビットからCR1まで、それぞれH'10毎のアドレス領域へのアクセスをフック対象領域アクセスとするかフック対象外領域アクセスとするかを指定し、CR0ビットは、物理アドレスH'FF00_0000〜H'FF00_000Fの領域へのアクセスをフック対象領域アクセスとするかフック対象外領域アクセスとするかを指定する。
【００６５】
XVS遷移制御レジスタ区画設定レジスタXVSTRSCRB1は、個々の周辺装置の制御レジスタ１８を物理アドレス空間上に割り付けるにあたり、H'100までサイズの領域に収まるものをH'FF00_0100からH'FF00_0FFFまでの領域に割付け、H'100毎に領域のアクセスに対しフック対象領域アクセスとするかフック対象外領域アクセスとするかを指定する。すなわち、XVS遷移制御レジスタ区画設定レジスタXVSTRSCRB1において、CR15ビットは、物理アドレスH'FF00_0F00〜H'FF00_0FFFの領域へのアクセスをフック対象領域アクセスとするかフック対象外領域アクセスとするかを指定する。CR14ビットは、物理アドレスH'FF00_0E00〜H'FF00_0EFFの領域へのアクセスをフック対象領域アクセスとするかフック対象外領域アクセスとするかを指定する。以下同様に、CR13ビットからCR2まで、それぞれH'100毎のアドレス領域へのアクセスをフック対象領域アクセスとするかフック対象外領域アクセスとするかを指定し、CR1ビットは、物理アドレスH'FF00_0100〜H'FF00_01FFの領域へのアクセスをフック対象領域アクセスとするかフック対象外領域アクセスとするかを指定する。このようにして、個々の周辺装置の制御レジスタ１８は、２のべき乗とした物理アドレス空間上領域に割り付けられる。
【００６６】
XVS遷移制御疎粒度アドレス区画設定レジスタXVSTRSCABは、個々の周辺装置の制御レジスタ１８を物理アドレス空間上に割り付けるにあたり、H'20_0000までサイズの領域に収まるものをH'FC00_0000からH'FEFF_FFFFまでの領域に割付け、H'20_0000毎に領域のアクセスに対しフック対象領域アクセスとするかフック対象外領域アクセスとするかを指定する。つまり、XVS遷移制御疎粒度アドレス区画設定レジスタXVSTRSCABにおいて、CA23ビットは、物理アドレスH'FEE0_0000〜H'FEFF_FFFFの領域へのアクセスをフック対象領域アクセスとするかフック対象外領域アクセスとするかを指定する。CA22ビットは、物理アドレスH'FEC0_0000〜H'FEDF_FFFFの領域へのアクセスをフック対象領域アクセスとするかフック対象外領域アクセスとするかを指定する。以下同様に、CA21ビットからCA1まで、それぞれH'20_0000毎のアドレス領域へのアクセスをフック対象領域アクセスとするかフック対象外領域アクセスとするかを指定し、CA0ビットは、物理アドレスH'FC00_0000〜H'FC1F_FFFFの領域へのアクセスをフック対象領域アクセスとするかフック対象外領域アクセスとするかを指定する。
【００６７】
XVS遷移制御細粒度アドレス区画設定レジスタXVSTRSFABは、XVSTRSFAB0、XVSTRSFAB1、XVSTRSFAB2、XVSTRSFAB3を含む。XVS遷移制御細粒度アドレス区画設定レジスタXVSTRSFAB0、XVSTRSFAB1、XVSTRSFAB2、XVSTRSFAB3は、個々の周辺装置の制御レジスタ１８を物理アドレス空間上に割り付けるにあたり、H'2000までサイズの領域に収まるものをH'FF00_0000からH'FFFF_FFFFまでの領域に割付ける。そして、H'2000毎に領域のアクセスに対しフック対象領域アクセスとするかフック対象外領域アクセスとするかを指定する。つまり、XVS遷移制御細粒度アドレス区画設定レジスタ0(XVSTRSFAB0)は、H'FF00_0000からH'FF3F_FFFFまでの領域に対し、H'2000毎の領域に対するアクセスに対しフック対象領域アクセスとするかフック対象外領域アクセスとするかを指定する。FA31はH'FF3E_0000からH'FF3F_FFFFまでの領域に対して指定する。以下順次、FA0が指定するH'FF00_0000からH'FF01_FFFFまでの領域まで続く。同様にXVS遷移制御細粒度アドレス区画設定レジスタXVSTRSFAB1は、H'FF40_0000からH'FF7F_FFFFまでの領域に対し、H'2000毎の領域に対するアクセスに対しフック対象領域アクセスとするかフック対象外領域アクセスとするかを指定する。FA63はH'FF7E_0000からH'FF7F_FFFFまでの領域に対して指定する。以下順次、FA32が指定するH'FF40_0000からH'FF41_FFFFまでの領域まで続く。同様にXVS遷移制御細粒度アドレス区画設定レジスタXVSTRSFAB2は、H'FF80_0000からH'FFBF_FFFFまでの領域に対し、H'2000毎の領域に対するアクセスに対しフック対象領域アクセスとするかフック対象外領域アクセスとするかを指定する。FA95はH'FFBE_0000からH'FFBF_FFFFまでの領域に対して指定する。以下順次、FA64が指定するH'FF80_0000からH'FF81_FFFFまでの領域まで続く。同様にXVS遷移制御細粒度アドレス区画設定レジスタXVSTRSFAB3は、H'FFC0_0000からH'FFFF_FFFFまでの領域に対し、H'2000毎の領域に対するアクセスに対しフック対象領域アクセスとするかフック対象外領域アクセスとするかを指定する。FA127はH'FFFE_0000からH'FFFF_FFFFまでの領域に対して指定する。以下順次、FA96が指定するH'FFC0_0000からH'FFC1_FFFFまでの領域まで続く。
【００６８】
図７には、上記割込み制御ユニット１１の構成例が示される。
【００６９】
割込み要因には、NMI(ノンマスカブル割込み)、外部端子(IRQ/IRL)割込み、内蔵周辺装置割込み、および中央処理装置間割込みがある。割込み制御ユニット１１には、上記割込み要因に対応して、NMIコントローラ(NMI-CNT)７１１、外部端子割込みコントローラ(EXT-INT-CNT)７１２、内蔵周辺装置割込みコントローラ(PER-INT-CNT)７１３、そしてCPU間割込みコントローラ(CPU-INT-CNT)７０３−０，７０３−１，…，７０３−ｎが設けられる。また、中央処理装置１０−０，１０−１，…，１０−ｎに対応して、優先順位判定回路(PRI-DEC)７０１−０，７０３−１，…，７０１−ｎ、割込みマスク回路(INT-MSK)７０２−０，７０２−１，…，７０２−ｎが配置される。さらに割込み分配コントローラ(INT-DIS-CNT)７１０が設けられる。優先順位判定回路７０１−０，７０３−１，…，７０１−ｎは、割込み要求の優先順位を判定する。割込みマスク回路７０２−０，７０２−１，…，７０２−ｎは、対応する中央処理装置１０−０，１０−１，…，１０−ｎが割り込み処理中の場合に新たな割込み要求をマスクする。割込み要因は、割込み分配コントローラ７１０によって、優先順位判定回路７０１−０，７０３−１，…，７０１−ｎと、割込みマスク回路７０２−０，７０２−１，…，７０２−ｎとに分配される。
【００７０】
中央処理装置毎にレジスタで設定された割込み要因の優先順位と割込み要因マスクに従い割込み要求が処理され、その結果に応じて、対応する中央処理装置１０−０，１０−１，…，１０−ｎに対する割込み要求信号(req)がアサートされる。中央処理装置１０−０，１０−１，…，１０−ｎの何れかで割込みが受理されると、当該中央処理装置によって割込み制御ユニット１１に対する受理信号(ack)がアサートされる。
また、このプロセッサ１０６においては、割込みがXVSモードへの遷移を要求しているか否かを示す信号(TRX、SRI)が各中央処理装置１０−０，１０−１，…，１０−ｎに伝達される。
【００７１】
XVSモードへの遷移を要求しているか否かを示す信号TRXは、中央処理装置１０−０，１０−１，…，１０−ｎが割込みを受理した後の動作モードを指定する。例えば中央処理装置１０−０，１０−１，…，１０−ｎは、TRX==1（TRXが論理値“１”であることを意味する）場合の割込み要求を受理すると、ハイパーバイザ１０５を実装するプログラムの処理を起動するためにハイパーバイザモード(XVSモード)に遷移する。一方、中央処理装置１０−０，１０−１，…，１０−ｎは、TRX==0（TRXが論理値“０”であることを意味する）の場合の割込み要求を受理すると、オペレーティングシステム１０１，１０３で直接処理させるために特権モードに遷移する。
【００７２】
中央処理装置１０−０，１０−１，…，１０−ｎは、図８に示されるように、ステータスレジスタSR,SRXを含む。ステータスレジスタSRは、BLビットとIMASKビットを有する。ステータスレジスタSRXは、BLXビットとIMASKXビットを有する。XVSモードへの遷移を要求しているか否かを示す信号SRIは、割込み受理の可否を判断するために用いるレジスタ(SR, SRX)を決定する。つまり、中央処理装置１０−０，１０−１，…，１０−ｎは、SRI==0（SRIが論理値“０”であることを意味する）の割り込みに対して、中央処理装置内のステータスレジスタSRのBL,IMASKに従って受理判断を行う。一方、SRI==1（SRIが論理値“１”であることを意味する）の割り込みに関しては、中央処理装置内のステータスレジスタSRXのBL,IMASKに従って受理判断を行う。
【００７３】
TRXは、さらに割込禁止フラグの更新にも影響を及ぼす。TRX==0の割り込みが受け付けられたとき、SR.BLが論理値“１”になる。一方、TRX==1の割込みが受け付けられたとき、SRX.BLXが論理値“１”になる。
【００７４】
SRIは、割込みマスクレベルの更新にも影響を及ぼす。SRI==0の割り込みが受け付けられたとき、SR.IMASKが受付割込みレベルに更新される。一方、SRI==1の割り込みが受け付けられたとき、SRX.IMASKXが受付割込みレベルに更新される。
【００７５】
ここで、ハイパーバイザ１０５が制御に介在する共有周辺装置群７１５の割込みに対してはTRX==1、SRI==0と設定し、ハイパーバイザ１０５が制御に介在しない専有周辺装置群７１６の割込みに対してはTRX==0、SRI==0に設定する。このような設定により、ハイパーバイザ１０５は、共有周辺装置群７５については割込みの制御に関与するが、専有周辺装置７１６については割込みの制御に関与しない。また、SRI==1の設定は、システムの異常などが発生して各コアで動作するハイパーバイザ間で通知する際に用いられ、この場合はTRXも論理値“１”に設定される。上記共有周辺装置群７１５には、図１におけるディスプレイ装置１０８が含まれ、上記専有周辺装置群７１６には、図１における外部デバイス１１０やネットワーク制御デバイス１０７が含まれる。上記のような設定には、割込み制御ユニット１１内に設けられた各種レジスタが用いられる。
【００７６】
図８には、割込み制御ユニット１１内の各種レジスタが示される。
【００７７】
割込みコントローラ(INTC)１１には、割込み優先順位レジスタCnINTRPI、周辺割込み優先順位レジスタCnINT2RPI、割込みマスクレジスタCnINTMSK、周辺割込みマスクレジスタCnINT2MSKが設けられる。更に割込みコントローラ(INTC)１１には、トランジション(Transition)XVSレジスタCnXVSTRX、周辺トランジションXVSレジスタCnXVS2TRX、SRインセンシティブ(Insensitive)レジスタCnXVSSRI、周辺SR=InsensitiveレジスタCnXVS2SRIが設けられる。これら各レジスタは、割込み要因に対し各中央処理装置１０−０，１０−１，…，１０−ｎの動作制御を指定するレジスタとされる。
【００７８】
割込み優先順位レジスタCnINTPRIは、中央処理装置１０−０，１０−１，…，１０−ｎ毎に設けられ、割込み要因IRQ0からIRQ15に関して各中央処理装置１０−０，１０−１，…，１０−ｎに対する０から１５までの優先順位を４ビットで設定する。
【００７９】
周辺割込み優先順位レジスタCnINT2PRIは、中央処理装置１０−０，１０−１，…，１０−ｎ毎に設けられ、内蔵周辺装置があげる割込み要因に関して各中央処理装置１０−０，１０−１，…，１０−ｎに対する０から１５までの優先順位を４ビットで設定する。
【００８０】
割込みマスクレジスタCnINTMSKは、中央処理装置１０−０，１０−１，…，１０−ｎ毎に設けられ、各中央処理装置１０−０，１０−１，…，１０−ｎが、IRQ0からIRQ15までの各割込み要因に対してマスクするか否かを１ビットで設定する。
【００８１】
周辺割込みマスクレジスタCnINT2MSKは、中央処理装置１０−０，１０−１，…，１０−ｎ毎に設けられ、各中央処理装置１０−０，１０−１，…，１０−ｎが、内蔵周辺装置があげる各割込み要因に対してマスクするか否かを１ビットで設定する。
【００８２】
トランジションXVSレジスタCnXVSTRXは、中央処理装置１０−０，１０−１，…，１０−ｎ毎に設けられ、IRQ0からIRQ15までの各割込み要因に対して、各中央処理装置１０−０，１０−１，…，１０−ｎが割込みを受理した際に遷移する動作モードをハイパーバイザモード(XVSモード)か特権モードかを１ビットで指定する。
【００８３】
SRインセンシティブレジスタCnXVSSRIは、中央処理装置１０−０，１０−１，…，１０−ｎ毎に設けられ、IRQ0からIRQ15までの各割込み要因に対して、各中央処理装置(CPU)が割込みを受理して処理を進める際、更なる割込み要求の受理等の制御をステータスレジスタ(SR)で行うか、XVSステータスレジスタ(SRX)で行うかを１ビットで指定する。
【００８４】
周辺トランジションXVSレジスタCnXVSTRXは、中央処理装置１０−０，１０−１，…，１０−ｎ毎に設けられ、内蔵周辺装置があげる割込み要因に対して、各中央処理装置１０−０，１０−１，…，１０−ｎが割込みを受理した際に遷移する動作モードをハイパーバイザモード(XVSモード)か特権モードかを１ビットで指定する。
【００８５】
周辺SRインセンシティブレジスタCnXVSSRIは、中央処理装置１０−０，１０−１，…，１０−ｎ毎に設けられ、内蔵周辺装置があげる割込み要因に対して、各中央処理装置１０−０，１０−１，…，１０−ｎが割込みを受理して処理を進める際、更なる割込み要求の受理等の制御をステータスレジスタ(SR)で行うか、XVSステータスレジスタ(SRX)で行うかを１ビットで指定する。
【００８６】
各中央処理装置１０−０，１０−１，…，１０−ｎ内のステータスレジスタSR、XVSステータスレジスタSRXは、割込みの受理の制御指定を行うデータを保持する。ステータスレジスタSR中、BLビットは割込み要求をマスクする１ビットのレジスタ、IMASKビットはIMASK以下のレベルの割込みをマスクする４ビットのレジスタである。XVSステータスレジスタSRX中、BLXビットは割込み要求をマスクする１ビットのレジスタ、IMASKXビットはIMASKX以下のレベルの割込みをマスクする４ビットのレジスタである。各中央処理装置１０−０，１０−１，…，１０−ｎは、ステータスレジスタSRとXVSステータスレジスタSRXのいずれにより割込みの受理制御を行うかは、中央処理装置１０−０，１０−１，…，１０−ｎが動作モードを遷移させた割込み受理時のSRI信号により決定される。
【００８７】
図９には、割込み要因に対して各中央処理装置がXVSへ遷移するか否かを指定するトランジションXVSレジスタの具体例が示される。
【００８８】
トランジションXVSレジスタCnXVSTRXにおける各ビットは以下の機能を有する。
【００８９】
TX31はIRL割込みをXVS宛て割込みとするか否かを指定する。TX7はIRQ7割込みをXVS宛て割込みとするか否かを指定する。TX6はIRQ7割込みをXVS宛て割込みとするか否かを指定する。TX5はIRQ7割込みをXVS宛て割込みとするか否かを指定する。TX4はIRQ7割込みをXVS宛て割込みとするか否かを指定する。TX3はIRQ7割込みをXVS宛て割込みとするか否かを指定する。TX2はIRQ7割込みをXVS宛て割込みとするか否かを指定する。TX1はIRQ7割込みをXVS宛て割込みとするか否かを指定する。TX0はIRQ7割込みをXVS宛て割込みとするか否かを指定する。周辺トランジションXVSレジスタCnXVS2TRXは、CnXVS2TRX0,CnXVS2TRX1,CnXVS2TRX2,CnXVS2TRX3,CnXVS2TRX4を含む。
【００９０】
CnXVS2TRX0における各ビットは以下の機能を有する。
【００９１】
TX24は、シリアルバスの一例とされるIIC(Inter-Integrated Circuit)からの割込みをXVS宛て割込みとするか否かを指定する。TX23は、LCDC1からの割込みをXVS宛て割込みとするか否かを指定する。TX21は汎用I/O制御ユニット１６におけるGPIO2からの割込みをXVS宛て割込みとするか否かを指定する。TX20は汎用I/O制御ユニット１６におけるGPIO1からの割込みをXVS宛て割込みとするか否かを指定する。TX19は図示されないタイマユニット（TMU）におけるTMU11からの割込みをXVS宛て割込みとするか否かを指定する。TX18はTMU10からの割込みをXVS宛て割込みとするか否かを指定する。TX17はTMU9からの割込みをXVS宛て割込みとするか否かを指定する。TX16はTMU8からの割込みをXVS宛て割込みとするか否かを指定する。TX15はTMU7からの割込みをXVS宛て割込みとするか否かを指定する。TX14はTMU6からの割込みをXVS宛て割込みとするか否かを指定する。TX13はTMU5からの割込みをXVS宛て割込みとするか否かを指定する。TX12はTMU4からの割込みをXVS宛て割込みとするか否かを指定する。TX11はTMU3からの割込みをXVS宛て割込みとするか否かを指定する。TX10はTMU2からの割込みをXVS宛て割込みとするか否かを指定する。TX9はTMU1からの割込みをXVS宛て割込みとするか否かを指定する。TX8はTMU0からの割込みをXVS宛て割込みとするか否かを指定する。TX7は、デバッグ用インタフェースとされるH-UDI3からの割込みをXVS宛て割込みとするか否かを指定する。TX6はH-UDI2からの割込みをXVS宛て割込みとするか否かを指定する。TX5はH-UDI1からの割込みをXVS宛て割込みとするか否かを指定する。TX4はH-UDI0からの割込みをXVS宛て割込みとするか否かを指定する。TX3はH-UDI3からの割込みをXVS宛て割込みとするか否かを指定する。TX2はH-UDI2からの割込みをXVS宛て割込みとするか否かを指定する。TX1はH-UDI1からの割込みをXVS宛て割込みとするか否かを指定する。TX0はH-UDI0からの割込みをXVS宛て割込みとするか否かを指定する。
【００９２】
CnXVS2TRX1における各ビットは以下の機能を有する。
【００９３】
TX13はDMAC１５におけるDMAC channel 6-11のアドレスエラーの割込みをXVS宛て割込みとするか否かを指定する。TX12はDMAC channel 11からの割込みをXVS宛て割込みとするか否かを指定する。TX11はDMAC channel 10からの割込みをXVS宛て割込みとするか否かを指定する。TX10はDMAC channel 9からの割込みをXVS宛て割込みとするか否かを指定する。TX9はDMAC channel 8からの割込みをXVS宛て割込みとするか否かを指定する。TX8はDMAC channel 7からの割込みをXVS宛て割込みとするか否かを指定する。TX7はDMAC channel 6からの割込みをXVS宛て割込みとするか否かを指定する。TX6はDMAC channel 0-のアドレスエラーの割込みをXVS宛て割込みとするか否かを指定する。TX5はDMAC channel 5からの割込みをXVS宛て割込みとするか否かを指定する。TX4はDMAC channel 4からの割込みをXVS宛て割込みとするか否かを指定する。TX3はDMAC channel 3からの割込みをXVS宛て割込みとするか否かを指定する。TX2はDMAC channel 2からの割込みをXVS宛て割込みとするか否かを指定する。TX1はDMAC channel 1からの割込みをXVS宛て割込みとするか否かを指定する。TX0はDMAC channel 1からの割込みをXVS宛て割込みとするか否かを指定する。
【００９４】
CnXVS2TRX2における各ビットは以下の機能を有する。
【００９５】
TX29は、IDE(ATA)規格の拡張仕様のインタフェースであるSATAI13からの割込みをXVS宛て割込みとするか否かを指定する。TX28はSATAI12からの割込みをXVS宛て割込みとするか否かを指定する。TX27はSATAI11からの割込みをXVS宛て割込みとするか否かを指定する。TX26はSATAI10からの割込みをXVS宛て割込みとするか否かを指定する。TX25はSATAI9からの割込みをXVS宛て割込みとするか否かを指定する。TX24はSATAI8からの割込みをXVS宛て割込みとするか否かを指定する。TX23はSATAI7からの割込みをXVS宛て割込みとするか否かを指定する。TX22はSATAI6からの割込みをXVS宛て割込みとするか否かを指定する。TX21はSATAI5からの割込みをXVS宛て割込みとするか否かを指定する。TX20はSATAI4からの割込みをXVS宛て割込みとするか否かを指定する。TX19はSATAI3からの割込みをXVS宛て割込みとするか否かを指定する。TX18はSATAI2からの割込みをXVS宛て割込みとするか否かを指定する。TX17はSATAI1からの割込みをXVS宛て割込みとするか否かを指定する。TX16はSATAI0からの割込みをXVS宛て割込みとするか否かを指定する。TX15は、FIFO(First-In First-Out)付きシリアルコミュニケーションインタフェースとされるSCIF3 TXIからの割込みをXVS宛て割込みとするか否かを指定する。TX14はSCIF3 BRIからの割込みをXVS宛て割込みとするか否かを指定する。TX13はSCIF3 RXIからの割込みをXVS宛て割込みとするか否かを指定する。TX12はSCIF3 ERIからの割込みをXVS宛て割込みとするか否かを指定する。TX11はSCIF2 TXIからの割込みをXVS宛て割込みとするか否かを指定する。TX10はSCIF2 BRIからの割込みをXVS宛て割込みとするか否かを指定する。TX9はSCIF2 RXIからの割込みをXVS宛て割込みとするか否かを指定する。TX8はSCIF2 ERIからの割込みをXVS宛て割込みとするか否かを指定する。TX7はSCIF1 TXIからの割込みをXVS宛て割込みとするか否かを指定する。TX6はSCIF1 BRIからの割込みをXVS宛て割込みとするか否かを指定する。TX5はSCIF1 RXIからの割込みをXVS宛て割込みとするか否かを指定する。TX4はSCIF1 ERIからの割込みをXVS宛て割込みとするか否かを指定する。TX3はSCIF0 TXIからの割込みをXVS宛て割込みとするか否かを指定する。TX2はSCIF0 BRIからの割込みをXVS宛て割込みとするか否かを指定する。TX1はSCIF0 RXIからの割込みをXVS宛て割込みとするか否かを指定する。TX0はSCIF0 ERIからの割込みをXVS宛て割込みとするか否かを指定する。
【００９６】
CnXVS2TRX3における各ビットは以下の機能を有する。
【００９７】
TX22は、シリアルインターフェースであるPCI-EXP_0 PCI0(22)からの割込みをXVS宛て割込みとするか否かを指定する。TX21はPCI-EXP_0 PCI0(21)からの割込みをXVS宛て割込みとするか否かを指定する。TX20はPCI-EXP_0 PCI0(22)からの割込みをXVS宛て割込みとするか否かを指定する。TX19はPCI-EXP_0 PCI0(19)からの割込みをXVS宛て割込みとするか否かを指定する。TX18はPCI-EXP_0 PCI0(18)からの割込みをXVS宛て割込みとするか否かを指定する。TX17はPCI-EXP_0 PCI0(17)からの割込みをXVS宛て割込みとするか否かを指定する。TX16はPCI-EXP_0 PCI0(16)からの割込みをXVS宛て割込みとするか否かを指定する。TX15はPCI-EXP_0 PCI0(15)からの割込みをXVS宛て割込みとするか否かを指定する。TX14はPCI-EXP_0 PCI0(14)からの割込みをXVS宛て割込みとするか否かを指定する。TX13はPCI-EXP_0 PCI0(13)からの割込みをXVS宛て割込みとするか否かを指定する。TX12はPCI-EXP_0 PCI0(12)からの割込みをXVS宛て割込みとするか否かを指定する。TX11はPCI-EXP_0 PCI0(11)からの割込みをXVS宛て割込みとするか否かを指定する。TX10はPCI-EXP_0 PCI0(10)からの割込みをXVS宛て割込みとするか否かを指定する。TX9はPCI-EXP_0 PCI0(9)からの割込みをXVS宛て割込みとするか否かを指定する。TX8はPCI-EXP_0 PCI0(8)からの割込みをXVS宛て割込みとするか否かを指定する。TX7はPCI-EXP_0 PCI0(7)からの割込みをXVS宛て割込みとするか否かを指定する。TX6はPCI-EXP_0 PCI0(6)からの割込みをXVS宛て割込みとするか否かを指定する。TX5はPCI-EXP_0 PCI0(5)からの割込みをXVS宛て割込みとするか否かを指定する。TX4はPCI-EXP_0 PCI0(4)からの割込みをXVS宛て割込みとするか否かを指定する。TX3はPCI-EXP_0 PCI0(3)からの割込みをXVS宛て割込みとするか否かを指定する。TX2はPCI-EXP_0 PCI0(2)からの割込みをXVS宛て割込みとするか否かを指定する。TX1はPCI-EXP_0 PCI0(1)からの割込みをXVS宛て割込みとするか否かを指定する。TX0はPCI-EXP_0 PCI0(0)からの割込みをXVS宛て割込みとするか否かを指定する。
【００９８】
CnXVS2TRX4における各ビットは以下の機能を有する。
【００９９】
TX22はPCI-EXP_1 PCI1(22)からの割込みをXVS宛て割込みとするか否かを指定する。TX21はPCI-EXP_1 PCI1(21)からの割込みをXVS宛て割込みとするか否かを指定する。TX20はPCI-EXP_1 PCI1(22)からの割込みをXVS宛て割込みとするか否かを指定する。TX19はPCI-EXP_1 PCI1(19)からの割込みをXVS宛て割込みとするか否かを指定する。TX18はPCI-EXP_1 PCI1(18)からの割込みをXVS宛て割込みとするか否かを指定する。TX17はPCI-EXP_1 PCI1(17)からの割込みをXVS宛て割込みとするか否かを指定する。TX16はPCI-EXP_1 PCI1(16)からの割込みをXVS宛て割込みとするか否かを指定する。TX15はPCI-EXP_1 PCI1(15)からの割込みをXVS宛て割込みとするか否かを指定する。TX14はPCI-EXP_1 PCI1(14)からの割込みをXVS宛て割込みとするか否かを指定する。TX13はPCI-EXP_1 PCI1(13)からの割込みをXVS宛て割込みとするか否かを指定する。TX12はPCI-EXP_1 PCI1(12)からの割込みをXVS宛て割込みとするか否かを指定する。TX11はPCI-EXP_1 PCI1(11)からの割込みをXVS宛て割込みとするか否かを指定する。TX10はPCI-EXP_1 PCI1(10)からの割込みをXVS宛て割込みとするか否かを指定する。TX9はPCI-EXP_1 PCI1(9)からの割込みをXVS宛て割込みとするか否かを指定する。TX8はPCI-EXP_1 PCI1(8)からの割込みをXVS宛て割込みとするか否かを指定する。TX7はPCI-EXP_1 PCI1(7)からの割込みをXVS宛て割込みとするか否かを指定する。TX6はPCI-EXP_1 PCI1(6)からの割込みをXVS宛て割込みとするか否かを指定する。TX5はPCI-EXP_1 PCI1(5)からの割込みをXVS宛て割込みとするか否かを指定する。TX4はPCI-EXP_1 PCI1(4)からの割込みをXVS宛て割込みとするか否かを指定する。TX3はPCI-EXP_1 PCI1(3)からの割込みをXVS宛て割込みとするか否かを指定する。TX2はPCI-EXP_1 PCI1(2)からの割込みをXVS宛て割込みとするか否かを指定する。TX1はPCI-EXP_1 PCI1(1)からの割込みをXVS宛て割込みとするか否かを指定する。TX0はPCI-EXP_1 PCI1(0)からの割込みをXVS宛て割込みとするか否かを指定する。
【０１００】
図１０には、割込み要因に対して各中央処理装置１０−０，１０−１，…，１０−ｎが割込みを受理した際、SRX（ステータスレジスタ）を使うか否かを指定するSRインセンシティブレジスタCnXVSSRIの具体例が示される。
【０１０１】
CnXVSSRIにおける各ビットは以下の機能を有する。
【０１０２】
TX31はIRL割込みを受理した際にSRXを使うか否かを指定する。TX7はIRQ7割込みを受理した際にSRXを使うか否かを指定する。TX6はIRQ7割込みを受理した際にSRXを使うか否かを指定する。TX5はIRQ7割込みを受理した際にSRXを使うか否かを指定する。TX4はIRQ7割込みを受理した際にSRXを使うか否かを指定する。TX3はIRQ7割込みを受理した際にSRXを使うか否かを指定する。TX2はIRQ7割込みを受理した際にSRXを使うか否かを指定する。TX1はIRQ7割込みを受理した際にSRXを使うか否かを指定する。TX0はIRQ7割込みを受理した際にSRXを使うか否かを指定する。CnXVS2TRX0における各ビットは以下の機能を有する。TX24はIICからの割込みを受理した際にSRXを使うか否かを指定する。TX23はLCDC1からの割込みを受理した際にSRXを使うか否かを指定する。TX21はGPIO2からの割込みを受理した際にSRXを使うか否かを指定する。TX20はGPIO1からの割込みを受理した際にSRXを使うか否かを指定する。TX19はTMU11からの割込みを受理した際にSRXを使うか否かを指定する。TX18はTMU10からの割込みを受理した際にSRXを使うか否かを指定する。TX17はTMU9からの割込みを受理した際にSRXを使うか否かを指定する。TX16はTMU8からの割込みを受理した際にSRXを使うか否かを指定する。TX15はTMU7からの割込みを受理した際にSRXを使うか否かを指定する。TX14はTMU6からの割込みを受理した際にSRXを使うか否かを指定する。TX13はTMU5からの割込みを受理した際にSRXを使うか否かを指定する。TX12はTMU4からの割込みを受理した際にSRXを使うか否かを指定する。TX11はTMU3からの割込みを受理した際にSRXを使うか否かを指定する。TX10はTMU2からの割込みを受理した際にSRXを使うか否かを指定する。TX9はTMU1からの割込みを受理した際にSRXを使うか否かを指定する。TX8はTMU0からの割込みを受理した際にSRXを使うか否かを指定する。TX7はH-UDI3からの割込みを受理した際にSRXを使うか否かを指定する。TX6はH-UDI2からの割込みを受理した際にSRXを使うか否かを指定する。TX5はH-UDI1からの割込みを受理した際にSRXを使うか否かを指定する。TX4はH-UDI0からの割込みを受理した際にSRXを使うか否かを指定する。TX3はH-UDI3からの割込みを受理した際にSRXを使うか否かを指定する。TX2はH-UDI2からの割込みを受理した際にSRXを使うか否かを指定する。TX1はH-UDI1からの割込みを受理した際にSRXを使うか否かを指定する。TX0はH-UDI0からの割込みを受理した際にSRXを使うか否かを指定する。
【０１０３】
CnXVS2TRX1における各ビットは以下の機能を有する。
TX13はDMAC channel 6-11のアドレスエラーの割込みを受理した際にSRXを使うか否かを指定する。TX12はDMAC channel 11からの割込みを受理した際にSRXを使うか否かを指定する。TX11はDMAC channel 10からの割込みを受理した際にSRXを使うか否かを指定する。TX10はDMAC channel 9からの割込みを受理した際にSRXを使うか否かを指定する。TX9はDMAC channel 8からの割込みを受理した際にSRXを使うか否かを指定する。TX8はDMAC channel 7からの割込みを受理した際にSRXを使うか否かを指定する。TX7はDMAC channel 6からの割込みを受理した際にSRXを使うか否かを指定する。TX6はDMAC channel 0-のアドレスエラーの割込みを受理した際にSRXを使うか否かを指定する。TX5はDMAC channel 5からの割込みを受理した際にSRXを使うか否かを指定する。TX4はDMAC channel 4からの割込みを受理した際にSRXを使うか否かを指定する。TX3はDMAC channel 3からの割込みを受理した際にSRXを使うか否かを指定する。TX2はDMAC channel 2からの割込みを受理した際にSRXを使うか否かを指定する。TX1はDMAC channel 1からの割込みを受理した際にSRXを使うか否かを指定する。TX0はDMAC channel 1からの割込みを受理した際にSRXを使うか否かを指定する。
【０１０４】
CnXVS2TRX2における各ビットは以下の機能を有する。
【０１０５】
TX29はSATAI13からの割込みを受理した際にSRXを使うか否かを指定する。TX28はSATAI12からの割込みを受理した際にSRXを使うか否かを指定する。TX27はSATAI11からの割込みを受理した際にSRXを使うか否かを指定する。TX26はSATAI10からの割込みを受理した際にSRXを使うか否かを指定する。TX25はSATAI9からの割込みを受理した際にSRXを使うか否かを指定する。TX24はSATAI8からの割込みを受理した際にSRXを使うか否かを指定する。TX23はSATAI7からの割込みを受理した際にSRXを使うか否かを指定する。TX22はSATAI6からの割込みを受理した際にSRXを使うか否かを指定する。TX21はSATAI5からの割込みを受理した際にSRXを使うか否かを指定する。TX20はSATAI4からの割込みを受理した際にSRXを使うか否かを指定する。TX19はSATAI3からの割込みを受理した際にSRXを使うか否かを指定する。TX18はSATAI2からの割込みを受理した際にSRXを使うか否かを指定する。TX17はSATAI1からの割込みを受理した際にSRXを使うか否かを指定する。TX16はSATAI0からの割込みを受理した際にSRXを使うか否かを指定する。TX15はSCIF3 TXIからの割込みを受理した際にSRXを使うか否かを指定する。TX14はSCIF3 BRIからの割込みを受理した際にSRXを使うか否かを指定する。TX13はSCIF3 RXIからの割込みを受理した際にSRXを使うか否かを指定する。TX12はSCIF3 ERIからの割込みを受理した際にSRXを使うか否かを指定する。TX11はSCIF2 TXIからの割込みを受理した際にSRXを使うか否かを指定する。TX10はSCIF2 BRIからの割込みを受理した際にSRXを使うか否かを指定する。TX9はSCIF2 RXIからの割込みを受理した際にSRXを使うか否かを指定する。TX8はSCIF2 ERIからの割込みを受理した際にSRXを使うか否かを指定する。TX7はSCIF1 TXIからの割込みを受理した際にSRXを使うか否かを指定する。TX6はSCIF1 BRIからの割込みを受理した際にSRXを使うか否かを指定する。TX5はSCIF1 RXIからの割込みを受理した際にSRXを使うか否かを指定する。TX4はSCIF1 ERIからの割込みを受理した際にSRXを使うか否かを指定する。TX3はSCIF0 TXIからの割込みを受理した際にSRXを使うか否かを指定する。TX2はSCIF0 BRIからの割込みを受理した際にSRXを使うか否かを指定する。TX1はSCIF0 RXIからの割込みを受理した際にSRXを使うか否かを指定する。TX0はSCIF0 ERIからの割込みを受理した際にSRXを使うか否かを指定する。CnXVS2TRX3における各ビットは以下の機能を有する。TX22はPCI-EXP_0 PCI0(22)からの割込みを受理した際にSRXを使うか否かを指定する。TX21はPCI-EXP_0 PCI0(21)からの割込みを受理した際にSRXを使うか否かを指定する。TX20はPCI-EXP_0 PCI0(22)からの割込みを受理した際にSRXを使うか否かを指定する。TX19はPCI-EXP_0 PCI0(19)からの割込みを受理した際にSRXを使うか否かを指定する。TX18はPCI-EXP_0 PCI0(18)からの割込みを受理した際にSRXを使うか否かを指定する。TX17はPCI-EXP_0 PCI0(17)からの割込みを受理した際にSRXを使うか否かを指定する。TX16はPCI-EXP_0 PCI0(16)からの割込みを受理した際にSRXを使うか否かを指定する。TX15はPCI-EXP_0 PCI0(15)からの割込みを受理した際にSRXを使うか否かを指定する。TX14はPCI-EXP_0 PCI0(14)からの割込みを受理した際にSRXを使うか否かを指定する。TX13はPCI-EXP_0 PCI0(13)からの割込みを受理した際にSRXを使うか否かを指定する。TX12はPCI-EXP_0 PCI0(12)からの割込みを受理した際にSRXを使うか否かを指定する。TX11はPCI-EXP_0 PCI0(11)からの割込みを受理した際にSRXを使うか否かを指定する。TX10はPCI-EXP_0 PCI0(10)からの割込みを受理した際にSRXを使うか否かを指定する。TX9はPCI-EXP_0 PCI0(9)からの割込みを受理した際にSRXを使うか否かを指定する。TX8はPCI-EXP_0 PCI0(8)からの割込みを受理した際にSRXを使うか否かを指定する。TX7はPCI-EXP_0 PCI0(7)からの割込みを受理した際にSRXを使うか否かを指定する。TX6はPCI-EXP_0 PCI0(6)からの割込みを受理した際にSRXを使うか否かを指定する。TX5はPCI-EXP_0 PCI0(5)からの割込みを受理した際にSRXを使うか否かを指定する。TX4はPCI-EXP_0 PCI0(4)からの割込みを受理した際にSRXを使うか否かを指定する。TX3はPCI-EXP_0 PCI0(3)からの割込みを受理した際にSRXを使うか否かを指定する。TX2はPCI-EXP_0 PCI0(2)からの割込みを受理した際にSRXを使うか否かを指定する。TX1はPCI-EXP_0 PCI0(1)からの割込みを受理した際にSRXを使うか否かを指定する。TX0はPCI-EXP_0 PCI0(0)からの割込みを受理した際にSRXを使うか否かを指定する。
【０１０６】
CnXVS2TRX4における各ビットは以下の機能を有する。
【０１０７】
TX22はPCI-EXP_1 PCI1(22)からの割込みを受理した際にSRXを使うか否かを指定する。TX21はPCI-EXP_1 PCI1(21)からの割込みを受理した際にSRXを使うか否かを指定する。TX20はPCI-EXP_1 PCI1(22)からの割込みを受理した際にSRXを使うか否かを指定する。TX19はPCI-EXP_1 PCI1(19)からの割込みを受理した際にSRXを使うか否かを指定する。TX18はPCI-EXP_1 PCI1(18)からの割込みを受理した際にSRXを使うか否かを指定する。TX17はPCI-EXP_1 PCI1(17)からの割込みを受理した際にSRXを使うか否かを指定する。TX16はPCI-EXP_1 PCI1(16)からの割込みを受理した際にSRXを使うか否かを指定する。TX15はPCI-EXP_1 PCI1(15)からの割込みを受理した際にSRXを使うか否かを指定する。TX14はPCI-EXP_1 PCI1(14)からの割込みを受理した際にSRXを使うか否かを指定する。TX13はPCI-EXP_1 PCI1(13)からの割込みを受理した際にSRXを使うか否かを指定する。TX12はPCI-EXP_1 PCI1(12)からの割込みを受理した際にSRXを使うか否かを指定する。TX11はPCI-EXP_1 PCI1(11)からの割込みを受理した際にSRXを使うか否かを指定する。TX10はPCI-EXP_1 PCI1(10)からの割込みを受理した際にSRXを使うか否かを指定する。TX9はPCI-EXP_1 PCI1(9)からの割込みを受理した際にSRXを使うか否かを指定する。TX8はPCI-EXP_1 PCI1(8)からの割込みを受理した際にSRXを使うか否かを指定する。TX7はPCI-EXP_1 PCI1(7)からの割込みを受理した際にSRXを使うか否かを指定する。TX6はPCI-EXP_1 PCI1(6)からの割込みを受理した際にSRXを使うか否かを指定する。TX5はPCI-EXP_1 PCI1(5)からの割込みを受理した際にSRXを使うか否かを指定する。TX4はPCI-EXP_1 PCI1(4)からの割込みを受理した際にSRXを使うか否かを指定する。TX3はPCI-EXP_1 PCI1(3)からの割込みを受理した際にSRXを使うか否かを指定する。TX2はPCI-EXP_1 PCI1(2)からの割込みを受理した際にSRXを使うか否かを指定する。TX1はPCI-EXP_1 PCI1(1)からの割込みを受理した際にSRXを使うか否かを指定する。TX0はPCI-EXP_1 PCI1(0)からの割込みを受理した際にSRXを使うか否かを指定する。
【０１０８】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【符号の説明】
【０１０９】
１０−０，１０−１，…，１０−ｎ  中央処理装置
１１  割込み制御ユニット
１２  PCIユニット
１３  ディスプレイ制御ユニット
１４  外部メモリ制御ユニット
１５  ダイレクトメモリアクセスコントローラ
１６  汎用I/O制御ユニット
１７  レジスタ群
１８  制御レジスタ
１００  情報処理装置
１０１  制御系オペレーティングシステム
１０３  情報系オペレーティングシステム
１０２，１０４  デバイスドライバ
１０５  ハイパーバイザ
１０６  プロセッサ
１０７  ネットワーク制御デバイス
１０８  ディスプレイ制御ユニット
１０９  外部メモリ
１１０  外部デバイス
【図１】
2011118578.tif 000003
【図２】
2011118578.tif 000004
【図３】
2011118578.tif 000005
【図４】
2011118578.tif 000006
【図５】
2011118578.tif 000007
【図６】
2011118578.tif 000008
【図７】
2011118578.tif 000009
【図８】
2011118578.tif 000010
【図９】
2011118578.tif 000011
【図１０】
2011118578.tif 000012