1.実施の形態の概要
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
〔1〕本発明の代表的な実施の形態に係る情報処理装置(100)は、周辺装置(107,108,110)の接続を可能にするインタフェース(12,13,16)を備えたプロセッサ(106)と、上記プロセッサ上でバーチャルマシーンを実現するためのハイパーバイザ(105)と、それによって管理される複数のオペレーティングシステム(101,103)とを含む。
上記周辺装置は、一つのオペレーティングシステムとその制御下で実行されるアプリケーションプログラムが独占的に使用可能な専有周辺装置(716)と、複数のオペレーティングシステムとそれぞれの制御下で実行されるアプリケーションプリグラムが使用可能な共有周辺装置(715)とに分類される。そして、上記共有周辺装置についての制御は、上記ハイパーバイザの処理を介して当該制御処理に関与するアプリケーションプログラムの実行を制御するオペレーティングシステムに実施させ、上記専有周辺装置についての制御は、上記ハイパーバイザの処理を介することなく、当該制御処理に関与するアプリケーションプログラムの実行を制御するオペレーティングシステムに実施させる。そのような情報を設定可能なレジスタ群(17)が設けられる。
情報処理装置においては、デバイスドライバが専有周辺装置の処理を起動するための制御レジスタ18へのアクセスは、ハイパーバイザの処理が介在することなくそのまま実施される。また、専有周辺装置から割込みが発生されると、ハイパーバイザの処理が介在することなく、当該周辺装置に対応するオペレーティングシステムのデバイスドライバの処理が直接開始される。このような制御がプロセッサにおいて行われることにより、専有周辺装置が大部分を占める組込みシステムにおいては、ハイパーバイザによる処理が介在することなく当該周辺装置の制御が実施可能となる。これによりハイパーバイザのオーバヘッドが軽減される。
また、上記のようにハイパーバイザによる処理が介在されない分、プロセッサでの処理時間が短縮されるので、情報処理装置の性能の最適化が実現可能となる。
〔2〕上記〔1〕において、上記プロセッサは、上記周辺装置が専有周辺装置の場合には、上記オペレーティングシステムによる当該周辺装置の制御レジスタ(18)のアクセスにより例外を発生させない。上記プロセッサは、上記周辺装置が共有周辺装置の場合には、上記オペレーティングシステムによる当該周辺装置の制御レジスタ(18)のアクセスにより例外を発生させ、上記ハイパーバイザの当該共有周辺装置に対する制御プログラムを起動する。このように構成することで、ハイパーバイザのオーバヘッド軽減効果が顕著になる。
〔3〕上記〔2〕において、上記周辺装置が専有周辺装置の場合には、上記プロセッサでのプログラム実行が、当該周辺装置を制御下に置くオペレーティングシステムによる当該周辺装置に関する制御プログラムの実行に移行され、上記周辺装置が共有周辺装置の場合には、上記プロセッサでのプログラム実行が、上記ハイパーバイザの当該周辺装置に関する制御プログラムの実行に移行されるように設定することができる。
〔4〕上記〔1〕において、オペレーティングシステムの制御下にある周辺装置に対する制御において特権命令が用いられる場合、上記周辺装置が専有周辺装置の場合は、オペレーティングシステムによる当該周辺装置の特権命令の実行により例外を発生させない。そして上記周辺装置が共有周辺装置ある場合は、オペレーティングシステムによる当該周辺装置の特権命令の実行により例外を発生させ、上記ハイパーバイザの当該共有周辺装置に対する制御プログラムを起動するように設定することができる。
〔5〕上記〔2〕において、上記制御レジスタ(18)は、物理アドレス空間上の連続した領域に割り付けられ、
上記レジスタ群には、個々の周辺装置に対応する領域に対するアクセスにより例外が発生するか否かを指定する遷移制御アドレス区画設定レジスタ(XVSTRSCAB,XVSTRSFAB)を含めることができる。
〔6〕上記〔5〕において、上記制御レジスタ(18)の割付けを的確に行うには、上記制御レジスタ(18)は、サイズを2のべき乗、開始アドレスをサイズの倍数とした物理アドレス空間上の領域に割り付けるとよい。
〔7〕上記〔2〕において、上記レジスタ群には、周辺装置の制御レジスタ(18)を含むシステムレジスタが設置されたアドレス領域内のあらかじめ指定された各アドレス区画へのアクセスに対し、フック対象領域アクセスかフック対象外領域アクセスかを指定可能な区画設定レジスタを含めることができる。上記区画設定レジスタには、遷移制御疎粒度アドレス区画設定レジスタ(XVSTRSCAB)、遷移制御レジスタ区画設定レジスタ(XVSTRSCRB)、遷移制御細粒度アドレス区画設定レジスタ(XVSTRSFAB)を含めることができる。
〔8〕上記〔1〕において、上記オペレーティングシステムの制御下にある周辺装置に対する制御を実施する制御プログラムの起動は、当該周辺装置が生成する割込み信号によって行われる。上記周辺装置が専有周辺装置ある場合は、オペレーティングシステムによる当該周辺装置の制御を実施する制御プログラムが起動される。当該周辺装置が共有周辺装置ある場合は、ハイパーバイザによる当該周辺装置の制御を実施する制御プログラムが起動される。このような指定を可能とする割込み制御ユニット(11)を上記プロセッサ内に設けることができる。
〔9〕上記〔8〕において、上記機能を有する割込み制御ユニットを容易に構成するには、個々の周辺装置に対して、当該周辺処理が生成した割込み信号により起動する制御プログラムを、オペレーティングシステムによる制御プログラムとするか、ハイパーバイザによる制御プログラムとするかを指定可能なトランジションXVSレジスタ(CnXVS2TRX,CnXVS2TRX)を設けると良い。
〔10〕上記9において、上記プロセッサには中央処理装置を含めることができる。この場合において、上記中央処理装置には、割込みレベルによってプロセッサの実行を割込み処理へ遷移するか否かを制御するビット、及び割込みによってプロセッサの実行を割込み処理へ遷移するか否かを制御するビットを有する第1ステータスレジスタ(SR)を含めることができる。さらに上記中央処理装置には、割込みレベルによってプロセッサの実行を割込み処理へ遷移するか否かを制御するビット、及び割込みによってプロセッサの実行を割込み処理へ遷移するか否かを制御するビットを有する第2ステータスレジスタ(SRX)とを含めることができる。
〔11〕上記〔8〕において、上記機能を有する割込み制御ユニットを容易に構成するには、割込み発生時にプロセッサの実行を遷移するか否かの制御を、上記第1ステータスレジスタによる指定に従うか、上記第2ステータスレジスタによる指定に従うかを指定するインセンシティブレジスタ(CnXVSSRI,CnXVS2SRI)を含めるとよい。
2.実施の形態の詳細
実施の形態について更に詳述する。
<実施の形態1>
図1には、本発明にかかる情報処理装置の構成例が示される。
図1に示される情報処理装置100は、マルチコアSoC(System-on-a-Chip)プロセッサ(以下単に「プロセッサ」という)106を含む。上記プロセッサ106は、複数の中央処理装置(CPU #0,CPU #1,…,CPU #n)10−0,10−1,…,10−nを含む。さらに上記プロセッサ106は、割込み制御ユニット(INTC)11、PCI(Peripheral Component Interconnect)ユニット(PCI)12、ディスプレイ制御ユニット(DU)13、外部メモリ制御ユニット(RAM Con)14、DMAC(Direct Memory Access Controller)15、汎用I/O制御ユニット(GPIO)16を含む。そしてそのようなプロセッサ106は、公知の半導体集積回路製造技術により、単結晶シリコン基板などの一つの半導体基板に形成される。上記中央処理装置10−0,10−1,…,10−n、割込み制御ユニット11、PCIユニット12、ディスプレイ制御ユニット13、外部メモリ制御ユニット14、ダイレクトメモリアクセスコントローラ(DMAC)15及び汎用I/O制御ユニット16は、内部バスBUSを介して互いに信号のやり取りが可能に結合されている。上記中央処理装置10−0,10−1,…,10−nは、予め設定されたプログラムに従って所定の演算処理を実行する。割込み制御ユニット11は、周辺装置や内部モジュールから上記中央処理装置10−0,10−1,…,10−nへの割込みを制御する。DMAC15は、データ転送を中央処理装置10−0,10−1,…,10−nに代わって高速に行う。また、上記プロセッサ106には、複数の周辺装置が接続される。上記周辺装置には、特に制限されないが、汎用I/O制御ユニット16に接続された外部デバイス(Dev)110、外部メモリ制御ユニット(RAM Con)14に接続された外部メモリ(RAM)109、ディスプレイ制御ユニット13に接続されたディスプレイ装置(Disp)108、PCIユニット12に接続されたネットワーク制御デバイス(Net)107等が含まれる。さらに上記情報処理装置100では、仮想化技術が適用され、情報処理装置100のハードウェア上に、ハイパーバイザ(XVS)105を介して、制御系オペレーティングシステム(GPOS)101と、情報系オペレーティングシステム(RTOS)103とが搭載される。上記ハイパーバイザ105は、ハードウェア(プロセッサ)上で仮想マシン(バーチャルマシン)を実現するための制御プログラムである。上記制御系オペレーティングシステム101と情報系オペレーティングシステム103は、上記ハイパーバイザ105の制御下にある。上記制御系オペレーティングシステム101は、デバイスドライバ(DRV)102を含み、情報系オペレーティングシステム103は、デバイスドライバ(DRV)104を含む。上記デバイスドライバ102,104は、ある特定の入出力デバイスを制御し、アプリケーションソフトウェアに対して抽象化したインターフェースを提供するためのソフトウェアとされる。
尚、上記プロセッサ106内には、図3に示されるように、上記中央処理装置10−0,10−1,…,10−nの動作モードの遷移を引き起こす各事象(イベント)に対して遷移先の動作モードを指定するためのレジスタ群17や、周辺装置の制御レジスタ18が配置されている。これについては後に詳述する。
ここで、ハードウェア資源とオペレーティングシステムの間に位置するハイパーバイザがオペレーティングシステム間のハードウェア資源に関する調停を実施する場合を検討する。オペレーティングシステムが周辺装置の制御を実施するデバイスドライバが当該周辺装置の処理を起動するために、制御レジスタ18のアクセス、もしくは特権命令を実施すると、プロセッサは当該アクセスに対する処理、もしくは特権命令の処理を開始する前に例外を発生し、ハイパーバイザの当該周辺装置へのアクセスの調停を実現する処理プログラムへ処理の制御を遷移する。そしてハイパーバイザのアクセスの調停に関する処理が終了後、プロセッサは、オペレーティングシステム内の当該周辺装置の制御を実施するデバイスドライバの処理で先ほど例外を発生させた制御レジスタ18へのアクセス、もしくは特権命令の処理から再開する。一方、当該周辺装置に対して起動した処理が完了すると当該周辺装置は割込みを発生させ、プロセッサの処理の実行制御をハイパーバイザの処理の実行に遷移させ、オペレーティングシステム間の調停を実施したのち、当該周辺装置に当該処理の起動をかけたオペレーティングシステムのデバイスドライバの処理を開始する。従って、オペレーティングシステムの周辺装置に対する制御においては、ハードウェア資源とオペレーティングシステムとの間にハイパーバイザが介在する分、余分な処理時間が必要となる。
そこで図1に示される情報処理装置100においては、組込みシステムでは大部分の周辺装置は特定のオペレーティングシステムのみが使用するという特徴に注目し、周辺装置を複数のオペレーティングシステムから共有される共有周辺装置と、特定のオペレーティングシステムに専有される専有周辺装置とに分類し、それぞれ適切な処理を行うようにしている。例えば、外部デバイス110は、制御系オペレーティングシステム101に専有される専有周辺装置とされ、ネットワーク制御デバイス107は、情報系オペレーティングシステム103に専有される専有周辺装置とされる。ディスプレイ制御ユニット108は、制御系オペレーティングシステム101と情報系オペレーティングシステム103とに共有される共有周辺装置とされる。共有周辺装置(108)に関しては仮想化技術を活用し、共有周辺装置(108)とオペレーティングシステム101,103との間に介在されるハイパーバイザ105が複数のオペレーティングシステム101,103からのアクセスに関する調停作業を実施する。一方、専有周辺装置(107,110)は、特定のオペレーティングシステムのみが制御を実施するため、オペレーティングシステム101,103間でのアクセス調停処理を必要としない。
従って、図1に示される情報処理装置100においては、デバイスドライバが専有周辺装置(107,110)の処理を起動するための制御レジスタ18へのアクセスは、ハイパーバイザ105の処理が介在することなくそのまま実施される。また、専有周辺装置(107,110)から割込みが発生されると、ハイパーバイザ105の処理が介在することなく、当該周辺装置に対応するオペレーティングシステムのデバイスドライバの処理が直接開始される。このような制御がプロセッサ106において行われることにより、専有周辺装置が大部分をしめる組込みシステムにおいて、周辺装置の制御が、ハイパーバイザ105による処理が介在することなく実施可能となり、ハイパーバイザ105のオーバヘッドが軽減される。また、それによって処理時間の短縮による性能の最適化が実現可能となる。
図2には、図1に示される情報処理装置100において、プロセッサ106がプログラムを実行する際の動作モードが示される。
プロセッサ106は、ハイパーバイザモード(XVSモード)、特権モード、ユーザモードの三つの動作モードを持つ。ユーザモードは、中央処理装置10−0,10−1,…,10−nがアプリケーションプログラムを実装する命令を実行する動作モードであり、特権モードは、中央処理装置(CPU)がオペレーティングシステムを実装する命令を実行するモードであり、ハイパーバイザモード(XVSモード)は、ハイパーバイザ105を実装する命令を実行するモードである。
ハイパーバイザモードでは、中央処理装置10−0,10−1,…,10−nはプロセッサの全ハードウェア資源のアクセスと全ての命令の実行が可能である。特権モードでは、中央処理装置10−0,10−1,…,10−nがアクセスできるハードウェア資源と実行できる命令に制約が加わる。ユーザモードでは、特権モードよりさらにその制約が強くなる。
中央処理装置10−0,10−1,…,10−nが、ユーザモードでプログラムの命令を実行中に、OS宛割り込み(オペレーティングシステムに対する割込み)、またはフック対象外例外、もしくはフック対象外特権命令、またはフック対処外領域アクセスを実行すると、動作モードは特権モードへ遷移して、オペレーティングシステムを実装するプログラムの実行を開始する。中央処理装置10−0,10−1,…,10−nが、ユーザモードでプログラムの命令を実行中に、XVS宛て割込み(ハイパーバイザに対する割込み)、またはフック対象例外の発生、もしくはフック対象特権命令、またはフック対処領域アクセスを実行すると、動作モードはハイパーバイザモード(XVSモード)へ遷移し、ハイパーバイザ105を実装するプログラムの実行を開始する。
中央処理装置10−0,10−1,…,10−nが、特権モードでプログラムの命令を実行中に、OS宛て割込み、またはフック対象外例外の発生、もしくはフック対象外特権命令、またはフック対処外領域アクセスを実行すると、動作モードは特権モードへ遷移し、オペレーティングシステムを実装するプログラムの命令の実行を開始する。
中央処理装置10−0,10−1,…,10−nが、特権モードでプログラムの命令を実行中に、XVS宛て割込み、またはフック対象例外の発生、もしくはフック対象特権命令、またはフック対処領域アクセスを実行すると、動作モードはハイパーバイザモード(XVSモード)へ遷移し、ハイパーバイザ105を実装するプログラムの実行を開始する。
中央処理装置10−0,10−1,…,10−nが、特権モードでオペレーティングシステムを実装するプログラムの処理を終了すると、復帰命令(RTE命令)を実行し、動作モードをユーザモードに遷移し、割込み、例外、の発生、もしくは、特権命令、フック対象外領域アクセス、フック対象領域アクセスの実行により中断していたアプリケーションプログラムの実行を再開する。
中央処理装置10−0,10−1,…,10−nが、ハイパーバイザモード(XVSモード)でハイパーバイザ105を実装するプログラムの処理を終了すると、RTE命令を実行し、動作モードがハイパーバイザモード(XVSモード)に遷移してハイパーバイザ105を実装するプログラムの処理を開始する直前に実行していて中断された処理が再開される。この処理には、動作モードがユーザモードで実行していたアプリケーションを実装するプログラムの処理、もしくは動作モードがユーザモードで実行していたアプリケーションを実装するプログラムの処理が含まれる。
図3には、上記プロセッサ106内に配置されたレジスタ群17及び制御レジスタ18が示される。レジスタ群17は、中央処理装置10−0,10−1,…,10−nの動作モードの遷移を引き起こす各事象(イベント)に対して遷移先の動作モードを指定する機能を有する。そしてこのレジスタ群17には、XVS遷移命令設定レジスタXVSTRSINS、XVS遷移例外設定レジスタXVSTRSEXP、XVS遷移拡張資源設定レジスタXVSTRSEXT、XVS遷移制御レジスタ区画設定レジスタXVSTRSCRB、XVS遷移制御疎粒度アドレス区画設定レジスタXVSTRSCAB、XVS遷移制御細粒度アドレス区画設定レジスタXVSTRSFABが含まれる。
XVS遷移命令設定レジスタXVSTRSINSは、各特権命令に対してフック対象特権命令かフック対象外特権命令かを指定する。フック対象特権命令の場合はその命令を実行した中央処理装置10−0,10−1,…,10−nは、動作モードをハイパーバイザモード(XVSモード)に遷移させ、フック対象外特権命令の場合はその命令を実行した中央処理装置10−0,10−1,…,10−nは、動作モードを特権モードに遷移させる。
XVS遷移例外設定レジスタXVSTRSEXPは、各例外事象に対してフック対象例外フック対象外例外かを指定し、フック対象例外の場合はその例外事象を発生させた中央処理装置10−0,10−1,…,10−nは、動作モードをハイパーバイザモード(XVSモード)に遷移させ、フック対象外例外の場合はその例外事象を発生させた中央処理装置10−0,10−1,…,10−nは、動作モードを特権モードに遷移させる。
XVS遷移拡張資源設定レジスタXVSTRSEXTは、従来のシングルコアのプロセッサからマルチコアSoCプロセッサ向けに拡張機能として付加されたシステムレジスタや領域等の資源へのアクセスに関して、当該資源へのアクセスをフック対象例外かフック対象外例外かを指定する。フック対象例外の場合はそのアクセスを実施した中央処理装置(10−0,10−1,…,10−n)は、動作モードをハイパーバイザモード(XVSモード)に遷移させ、フック対象外例外の場合はそのアクセスを実施した中央処理装置(10−0,10−1,…,10−n)は、動作モードを特権モードに遷移させる。
XVS遷移制御レジスタ区画設定レジスタXVSTRSCRB、XVS遷移制御疎粒度アドレス区画設定レジスタXVSTRSCAB、XVS遷移制御細粒度アドレス区画設定レジスタXVSTRSFABは、周辺装置の制御レジスタ18をはじめとするシステムレジスタが設置されたアドレス領域内のあらかじめ指定された各アドレス区画へのアクセスに対し、フック対象領域アクセスかフック対象外領域アクセスかを指定する。フック対象例外の場合はそのアクセスを実施した中央処理装置(10−0,10−1,…,10−n)は、動作モードをハイパーバイザモード(XVSモード)に遷移させ、フック対象外例外の場合はそのアクセスを実施した中央処理装置(10−0,10−1,…,10−n)は、動作モードを特権モードに遷移させる。ここで、指定するアドレス区画のサイズ、アドレス区画のアドレス領域に応じて、XVS遷移制御レジスタ区画設定レジスタXVSTRSCRB、XVS遷移制御疎粒度アドレス区画設定レジスタXVSTRSCAB、XVS遷移制御細粒度アドレス区画設定レジスタXVSTRSFABが用意されている。
上記制御レジスタ18は、図3に示されるように、汎用I/O制御ユニット16に対応するGPIO制御レジスタGPIO-CONT-REG、ディスプレイ制御ユニット13に対応するDU制御レジスタDU-CONTREG、及びPCIユニット12に対応するPCI制御レジスタPCI-CONTREGを含む。
図4には、XVS遷移命令設定レジスタXVSTRSINSの具体例が示される。
XVS遷移命令レジスタ(XVSTRSINS)には、特権命令が実行された際、それがフック対象特権命令かフック対象外特権命令かを指定し、フック対象特権命令の場合、対応する中央処理装置10−0,10−1,…,10−nはハイパーバイザモード(XVSモード)へ遷移し、フック対象外特権命令の場合、対応する中央処理装置10−0,10−1,…,10−nは特権モードへ遷移する。
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ビットが変更された際それがフック対象特権命令の実行であるか否かを指定する。
図5には、上記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アレイへのアクセスに対しフック対象アクセスか否かを指定する。
図6には、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は、個々の周辺装置の制御レジスタ18を物理アドレス空間上に割り付けるにあたり、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の領域へのアクセスをフック対象領域アクセスとするかフック対象外領域アクセスとするかを指定する。このようにして、個々の周辺装置の制御レジスタ18は、2のべき乗とした物理アドレス空間上領域に割り付けられる。
XVS遷移制御疎粒度アドレス区画設定レジスタXVSTRSCABは、個々の周辺装置の制御レジスタ18を物理アドレス空間上に割り付けるにあたり、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は、個々の周辺装置の制御レジスタ18を物理アドレス空間上に割り付けるにあたり、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までの領域まで続く。
図7には、上記割込み制御ユニット11の構成例が示される。
割込み要因には、NMI(ノンマスカブル割込み)、外部端子(IRQ/IRL)割込み、内蔵周辺装置割込み、および中央処理装置間割込みがある。割込み制御ユニット11には、上記割込み要因に対応して、NMIコントローラ(NMI-CNT)711、外部端子割込みコントローラ(EXT-INT-CNT)712、内蔵周辺装置割込みコントローラ(PER-INT-CNT)713、そしてCPU間割込みコントローラ(CPU-INT-CNT)703−0,703−1,…,703−nが設けられる。また、中央処理装置10−0,10−1,…,10−nに対応して、優先順位判定回路(PRI-DEC)701−0,703−1,…,701−n、割込みマスク回路(INT-MSK)702−0,702−1,…,702−nが配置される。さらに割込み分配コントローラ(INT-DIS-CNT)710が設けられる。優先順位判定回路701−0,703−1,…,701−nは、割込み要求の優先順位を判定する。割込みマスク回路702−0,702−1,…,702−nは、対応する中央処理装置10−0,10−1,…,10−nが割り込み処理中の場合に新たな割込み要求をマスクする。割込み要因は、割込み分配コントローラ710によって、優先順位判定回路701−0,703−1,…,701−nと、割込みマスク回路702−0,702−1,…,702−nとに分配される。
中央処理装置毎にレジスタで設定された割込み要因の優先順位と割込み要因マスクに従い割込み要求が処理され、その結果に応じて、対応する中央処理装置10−0,10−1,…,10−nに対する割込み要求信号(req)がアサートされる。中央処理装置10−0,10−1,…,10−nの何れかで割込みが受理されると、当該中央処理装置によって割込み制御ユニット11に対する受理信号(ack)がアサートされる。
また、このプロセッサ106においては、割込みがXVSモードへの遷移を要求しているか否かを示す信号(TRX、SRI)が各中央処理装置10−0,10−1,…,10−nに伝達される。
XVSモードへの遷移を要求しているか否かを示す信号TRXは、中央処理装置10−0,10−1,…,10−nが割込みを受理した後の動作モードを指定する。例えば中央処理装置10−0,10−1,…,10−nは、TRX==1(TRXが論理値“1”であることを意味する)場合の割込み要求を受理すると、ハイパーバイザ105を実装するプログラムの処理を起動するためにハイパーバイザモード(XVSモード)に遷移する。一方、中央処理装置10−0,10−1,…,10−nは、TRX==0(TRXが論理値“0”であることを意味する)の場合の割込み要求を受理すると、オペレーティングシステム101,103で直接処理させるために特権モードに遷移する。
中央処理装置10−0,10−1,…,10−nは、図8に示されるように、ステータスレジスタSR,SRXを含む。ステータスレジスタSRは、BLビットとIMASKビットを有する。ステータスレジスタSRXは、BLXビットとIMASKXビットを有する。XVSモードへの遷移を要求しているか否かを示す信号SRIは、割込み受理の可否を判断するために用いるレジスタ(SR, SRX)を決定する。つまり、中央処理装置10−0,10−1,…,10−nは、SRI==0(SRIが論理値“0”であることを意味する)の割り込みに対して、中央処理装置内のステータスレジスタSRのBL,IMASKに従って受理判断を行う。一方、SRI==1(SRIが論理値“1”であることを意味する)の割り込みに関しては、中央処理装置内のステータスレジスタSRXのBL,IMASKに従って受理判断を行う。
TRXは、さらに割込禁止フラグの更新にも影響を及ぼす。TRX==0の割り込みが受け付けられたとき、SR.BLが論理値“1”になる。一方、TRX==1の割込みが受け付けられたとき、SRX.BLXが論理値“1”になる。
SRIは、割込みマスクレベルの更新にも影響を及ぼす。SRI==0の割り込みが受け付けられたとき、SR.IMASKが受付割込みレベルに更新される。一方、SRI==1の割り込みが受け付けられたとき、SRX.IMASKXが受付割込みレベルに更新される。
ここで、ハイパーバイザ105が制御に介在する共有周辺装置群715の割込みに対してはTRX==1、SRI==0と設定し、ハイパーバイザ105が制御に介在しない専有周辺装置群716の割込みに対してはTRX==0、SRI==0に設定する。このような設定により、ハイパーバイザ105は、共有周辺装置群75については割込みの制御に関与するが、専有周辺装置716については割込みの制御に関与しない。また、SRI==1の設定は、システムの異常などが発生して各コアで動作するハイパーバイザ間で通知する際に用いられ、この場合はTRXも論理値“1”に設定される。上記共有周辺装置群715には、図1におけるディスプレイ装置108が含まれ、上記専有周辺装置群716には、図1における外部デバイス110やネットワーク制御デバイス107が含まれる。上記のような設定には、割込み制御ユニット11内に設けられた各種レジスタが用いられる。
図8には、割込み制御ユニット11内の各種レジスタが示される。
割込みコントローラ(INTC)11には、割込み優先順位レジスタCnINTRPI、周辺割込み優先順位レジスタCnINT2RPI、割込みマスクレジスタCnINTMSK、周辺割込みマスクレジスタCnINT2MSKが設けられる。更に割込みコントローラ(INTC)11には、トランジション(Transition)XVSレジスタCnXVSTRX、周辺トランジションXVSレジスタCnXVS2TRX、SRインセンシティブ(Insensitive)レジスタCnXVSSRI、周辺SR=InsensitiveレジスタCnXVS2SRIが設けられる。これら各レジスタは、割込み要因に対し各中央処理装置10−0,10−1,…,10−nの動作制御を指定するレジスタとされる。
割込み優先順位レジスタCnINTPRIは、中央処理装置10−0,10−1,…,10−n毎に設けられ、割込み要因IRQ0からIRQ15に関して各中央処理装置10−0,10−1,…,10−nに対する0から15までの優先順位を4ビットで設定する。
周辺割込み優先順位レジスタCnINT2PRIは、中央処理装置10−0,10−1,…,10−n毎に設けられ、内蔵周辺装置があげる割込み要因に関して各中央処理装置10−0,10−1,…,10−nに対する0から15までの優先順位を4ビットで設定する。
割込みマスクレジスタCnINTMSKは、中央処理装置10−0,10−1,…,10−n毎に設けられ、各中央処理装置10−0,10−1,…,10−nが、IRQ0からIRQ15までの各割込み要因に対してマスクするか否かを1ビットで設定する。
周辺割込みマスクレジスタCnINT2MSKは、中央処理装置10−0,10−1,…,10−n毎に設けられ、各中央処理装置10−0,10−1,…,10−nが、内蔵周辺装置があげる各割込み要因に対してマスクするか否かを1ビットで設定する。
トランジションXVSレジスタCnXVSTRXは、中央処理装置10−0,10−1,…,10−n毎に設けられ、IRQ0からIRQ15までの各割込み要因に対して、各中央処理装置10−0,10−1,…,10−nが割込みを受理した際に遷移する動作モードをハイパーバイザモード(XVSモード)か特権モードかを1ビットで指定する。
SRインセンシティブレジスタCnXVSSRIは、中央処理装置10−0,10−1,…,10−n毎に設けられ、IRQ0からIRQ15までの各割込み要因に対して、各中央処理装置(CPU)が割込みを受理して処理を進める際、更なる割込み要求の受理等の制御をステータスレジスタ(SR)で行うか、XVSステータスレジスタ(SRX)で行うかを1ビットで指定する。
周辺トランジションXVSレジスタCnXVSTRXは、中央処理装置10−0,10−1,…,10−n毎に設けられ、内蔵周辺装置があげる割込み要因に対して、各中央処理装置10−0,10−1,…,10−nが割込みを受理した際に遷移する動作モードをハイパーバイザモード(XVSモード)か特権モードかを1ビットで指定する。
周辺SRインセンシティブレジスタCnXVSSRIは、中央処理装置10−0,10−1,…,10−n毎に設けられ、内蔵周辺装置があげる割込み要因に対して、各中央処理装置10−0,10−1,…,10−nが割込みを受理して処理を進める際、更なる割込み要求の受理等の制御をステータスレジスタ(SR)で行うか、XVSステータスレジスタ(SRX)で行うかを1ビットで指定する。
各中央処理装置10−0,10−1,…,10−n内のステータスレジスタSR、XVSステータスレジスタSRXは、割込みの受理の制御指定を行うデータを保持する。ステータスレジスタSR中、BLビットは割込み要求をマスクする1ビットのレジスタ、IMASKビットはIMASK以下のレベルの割込みをマスクする4ビットのレジスタである。XVSステータスレジスタSRX中、BLXビットは割込み要求をマスクする1ビットのレジスタ、IMASKXビットはIMASKX以下のレベルの割込みをマスクする4ビットのレジスタである。各中央処理装置10−0,10−1,…,10−nは、ステータスレジスタSRとXVSステータスレジスタSRXのいずれにより割込みの受理制御を行うかは、中央処理装置10−0,10−1,…,10−nが動作モードを遷移させた割込み受理時のSRI信号により決定される。
図9には、割込み要因に対して各中央処理装置が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制御ユニット16におけるGPIO2からの割込みをXVS宛て割込みとするか否かを指定する。TX20は汎用I/O制御ユニット16における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はDMAC15における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宛て割込みとするか否かを指定する。
図10には、割込み要因に対して各中央処理装置10−0,10−1,…,10−nが割込みを受理した際、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を使うか否かを指定する。
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。