JP2011118578A - 情報処理装置 - Google Patents

情報処理装置 Download PDF

Info

Publication number
JP2011118578A
JP2011118578A JP2009274361A JP2009274361A JP2011118578A JP 2011118578 A JP2011118578 A JP 2011118578A JP 2009274361 A JP2009274361 A JP 2009274361A JP 2009274361 A JP2009274361 A JP 2009274361A JP 2011118578 A JP2011118578 A JP 2011118578A
Authority
JP
Japan
Prior art keywords
interrupt
peripheral device
control
specifies whether
xvs
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2009274361A
Other languages
English (en)
Inventor
Toru Nojiri
徹 野尻
Takeki Kondo
雄樹 近藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2009274361A priority Critical patent/JP2011118578A/ja
Priority to US12/958,687 priority patent/US8813070B2/en
Publication of JP2011118578A publication Critical patent/JP2011118578A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/105Program control for peripheral devices where the programme performs an input/output emulation function
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45541Bare-metal, i.e. hypervisor runs directly on hardware

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

【課題】周辺装置の制御におけるハイパーバイザのオーバヘッドの低減を図る。
【解決手段】情報処理装置100においては、デバイスドライバが専有周辺装置107,110の処理を起動するための制御レジスタへのアクセスは、ハイパーバイザ105の処理が介在することなくそのまま実施される。また、専有周辺装置107,110から割込みが発生されると、ハイパーバイザ105の処理が介在することなく、当該周辺装置107,110に対応するオペレーティングシステム101,103のデバイスドライバ102,104の処理が直接開始される。このような制御がプロセッサにおいて行われることにより、ハイパーバイザ105による処理が介在することなく当該周辺装置107,110の制御が実施可能となる。これによりハイパーバイザ105のオーバヘッドが軽減される。
【選択図】図1

Description

本発明は、情報処理装置、さらにはそれに含まれるハイパーバイザのオーバヘッドを軽減するための技術に関する。
情報処理装置の一例としてマイクロプロセッサを挙げることができる。今日のマイクロプロセッサや、それを含むシステムにおいては、LSI(Large Scale Integration)の微細化に伴い、そのシステムで動作するアプリケーションに要求される機能がより高機能化、複雑化している。高機能なアプリケーションを開発するに当たっては、既存のアプリケーションを活用し、それらを組み合わせて、より高機能なアプリケーションを開発することが、開発効率の観点から一般的である。このとき、既存のアプリケーションは、従来のマイクロプロセッサで構成される従来システムで動作するものであり、その従来システムの構成と不可分のものである。システムの構成を変更することは、既存アプリケーションを再度開発するほどではないにせよ、多大な開発工数が必要となるものである。したがって、既存アプリケーションのプログラムは、ほとんどの場合、従来システムで動作させなければならず、既存アプリケーションを組み合わせて動作させるためには、従来システム自体も組み合わせて動作させる必要がある。
ここで、「従来システム」とは、単一の中央処理装置と単一のオペレーティングシステム(OS)で構成されるシステムを指し、「従来システムを組み合わせて動作させる」とは、特に多種多数のオペレーティングシステムを組み合わせて、同時に動作させることを意味する。
特許文献1には、各々の従来システムの信頼性やセキュリティを保ちつつ、それらのオペレーティングシステムを複数組み合わせて動作させる技術が記載されている。
特開2008−097173号公報
携帯電話のような組み込みシステムの中にも仮想機械(バーチャルマシン)を適用することができる。ハイパーバイザ(hypervisor)は、コンピュータの仮想化技術のひとつであるバーチャルマシンを実現するための制御プログラムとされる。このハイパーバイザはハードウェア上で直接動作し、全てのオペレーティングシステムはそのハイパーバイザ上で動作される。ハードウェア資源の使用効率を上げるためには、複数のオペレーティングシステムが全てのハードウェア資源を共有し、それぞれのオペレーティングシステムから全てのハードウェア資源へのアクセスを可能にし、ハードウェア資源とオペレーティングシステムとの間に位置するハイパーバイザがオペレーティングシステム間のハードウェア資源に関する調停を実施することが考えられる。これについて本願発明者が検討したところ、以下のように、ハイパーバイザのオーバヘッドを生ずることが見いだされた。
例えばオペレーティングシステムが周辺装置の制御を実施するデバイスドライバが当該周辺装置の処理を起動するために、制御レジスタのアクセス、もしくは特権命令を実施すると、プロセッサは当該アクセスに対する処理、もしくは特権命令の処理を開始する前に例外を発生し、ハイパーバイザの当該周辺装置へのアクセスの調停を実現する処理プログラムへ処理の制御を遷移する。そしてハイパーバイザのアクセスの調停に関する処理が終了後、プロセッサは、オペレーティングシステム内の当該周辺装置の制御を実施するデバイスドライバの処理で先ほど例外を発生させた制御レジスタへのアクセス、もしくは特権命令の処理から再開する。一方、当該周辺装置に対して起動した処理が完了すると当該周辺装置は割込みを発生させ、プロセッサの処理の実行制御をハイパーバイザの処理の実行に遷移させ、オペレーティングシステム間の調停を実施したのち、当該周辺装置に当該処理の起動をかけたオペレーティングシステムのデバイスドライバの処理を開始する。このようにオペレーティングシステムの周辺装置に対する制御においては、ハードウェア資源とオペレーティングシステムとの間にハイパーバイザが介在する分、余分な処理時間が必要となり、このことが、ハイパーバイザのオーバヘッドを顕在化させる主たる要因とされる。
本発明の目的は、ハイパーバイザのオーバヘッドの低減を図るための技術を提供することある。
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
すなわち、本発明の代表的な実施の形態に係る情報処理装置は、周辺装置の接続を可能にするインタフェースを備えたプロセッサと、上記プロセッサ上でバーチャルマシーンを実現するためのハイパーバイザと、それによって管理される複数のオペレーティングシステムとを含む。上記周辺装置は、一つのオペレーティングシステムとその制御下で実行されるアプリケーションプログラムが独占的に使用可能な専有周辺装置と、複数のオペレーティングシステムとそれぞれの制御下で実行されるアプリケーションプリグラムが使用可能な共有周辺装置とに分類される。そして、上記共有周辺装置についての制御は、上記ハイパーバイザの処理を介して当該制御処理に関与するアプリケーションプログラムの実行を制御するオペレーティングシステムに実施させ、上記専有周辺装置についての制御は、上記ハイパーバイザの処理を介することなく、当該制御処理に関与するアプリケーションプログラムの実行を制御するオペレーティングシステムに実施させるための情報を設定可能なレジスタ群が設けられる。上記専有周辺装置についての制御は、上記ハイパーバイザの処理を介することなく、当該制御処理に関与するアプリケーションプログラムの実行を制御するオペレーティングシステムに実施させることができ、そのような制御が行われることにより、ハイパーバイザによる処理が介在することなく当該周辺装置の制御が実施可能となる。このことが、ハイパーバイザのオーバーヘッの軽減を達成する。
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
すなわち、ハイパーバイザのオーバヘッドを低減することができる。
本発明にかかる情報処理装置の構成例ブロック図である。 上記情報処理装置においてプロセッサがプログラムを実行する際の動作モードに関する説明図である。 中央処理装置の動作モードの遷移を引き起こす各事象(イベント)に対して遷移先の動作モードを指定するレジスタ群及び周辺装置の制御レジスタの説明図である。 上記プロセッサに含まれるXVS遷移命令設定レジスタの説明図である。 上記プロセッサに含まれるXVS遷移例外設定レジスタ及びXVS遷移拡張資源設定レジスタの具体例の説明図である。 XVS遷移制御レジスタ区画設定レジスタ、XVS遷移制御疎粒度アドレス区画設定レジスタ、XVS遷移制御細粒度アドレス区画設定レジスタの説明図である。 上記プロセッサに含まれる割込みコントローラの構成例ブロック図である。 上記中央処理装置内のレジスタ、及び割込みコントローラ内のレジスタについての説明である。 上記割込みコントローラに含まれるトランジションXVSレジスタの具体例の説明図である。 各割込み要因の処理に対しSRXレジスタの使用を指定するレジスタの説明図である。
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を使うか否かを指定する。
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
10−0,10−1,…,10−n 中央処理装置
11 割込み制御ユニット
12 PCIユニット
13 ディスプレイ制御ユニット
14 外部メモリ制御ユニット
15 ダイレクトメモリアクセスコントローラ
16 汎用I/O制御ユニット
17 レジスタ群
18 制御レジスタ
100 情報処理装置
101 制御系オペレーティングシステム
103 情報系オペレーティングシステム
102,104 デバイスドライバ
105 ハイパーバイザ
106 プロセッサ
107 ネットワーク制御デバイス
108 ディスプレイ制御ユニット
109 外部メモリ
110 外部デバイス

Claims (11)

  1. 周辺装置の接続を可能にするインタフェースを備えたプロセッサを含み、
    上記プロセッサ上でバーチャルマシーンを実現するためのハイパーバイザと、それによって管理される複数のオペレーティングシステムとが搭載された情報処理装置であって、
    上記周辺装置を、一つのオペレーティングシステムとその制御下で実行されるアプリケーションプログラムが独占的に使用可能な専有周辺装置と、複数のオペレーティングシステムとそれぞれの制御下で実行されるアプリケーションプリグラムが使用可能な共有周辺装置とに分類し、上記共有周辺装置についての制御は、上記ハイパーバイザの処理を介して当該制御処理に関与するアプリケーションプログラムの実行を制御するオペレーティングシステムに実施させ、上記専有周辺装置についての制御は、上記ハイパーバイザの処理を介することなく、当該制御処理に関与するアプリケーションプログラムの実行を制御するオペレーティングシステムに実施させるための情報を設定可能なレジスタ群を含むことを特徴とする情報処理装置。
  2. 上記プロセッサは、上記周辺装置が専有周辺装置の場合には、上記オペレーティングシステムによる当該周辺装置の制御レジスタのアクセスにより例外を発生させず、上記周辺装置が専有周辺装置の場合には、上記オペレーティングシステムによる当該周辺装置の制御レジスタのアクセスにより例外を発生させ、上記ハイパーバイザの当該共有周辺装置に対する制御プログラムを起動する請求項1記載の情報処理装置。
  3. 上記周辺装置が専有周辺装置の場合には、上記プロセッサでのプログラム実行が、当該周辺装置を制御下に置くオペレーティングシステムによる当該周辺装置に関する制御プログラムの実行に移行され、上記周辺装置が共有周辺装置の場合には、上記プロセッサでのプログラム実行が、上記ハイパーバイザの当該周辺装置に関する制御プログラムの実行に移行される請求項2記載の情報処理装置。
  4. オペレーティングシステムの制御下にある周辺装置に対する制御は特権命令により実施され、
    上記周辺装置が専有周辺装置の場合は、オペレーティングシステムによる当該周辺装置の制御レジスタのアクセスにより例外を発生させず、上記周辺装置が共有周辺装置ある場合は、オペレーティングシステムによる当該周辺装置の制御レジスタのアクセスにより例外を発生させ、上記ハイパーバイザの当該共有周辺装置に対する制御プログラムを起動する請求項1記載の情報処理装置。
  5. 上記制御レジスタは、物理アドレス空間上の連続した領域に割り付けられ、
    上記レジスタ群は、個々の周辺装置に対応する領域に対するアクセスにより例外が発生するか否かを指定する遷移制御アドレス区画設定レジスタを含む請求項2記載の情報処理装置。
  6. 上記制御レジスタは、サイズを2のべき乗、開始アドレスをサイズの倍数とした物理アドレス空間上の領域に割り付けられた請求項5記載の情報処理装置。
  7. 上記レジスタ群は、周辺装置の制御レジスタを含むシステムレジスタが設置されたアドレス領域内のあらかじめ指定された各アドレス区画へのアクセスに対し、フック対象領域アクセスかフック対象外領域アクセスかを指定可能な区画設定レジスタを含む請求項2記載の情報処理装置。
  8. 上記プロセッサは、上記オペレーティングシステムの制御下にある周辺装置に対する制御を実施する制御プログラムの起動は、当該周辺装置が生成する割込み信号によって行われ、上記周辺装置が専有周辺装置ある場合は、オペレーティングシステムによる当該周辺装置の制御を実施する制御プログラムが起動され、当該周辺装置が共有周辺装置ある場合は、ハイパーバイザによる当該周辺装置の制御を実施する制御プログラムが起動されるように指定可能な割込み制御ユニットを含む請求項1記載の情報処理装置。
  9. 上記割込み制御ユニットは、個々の周辺装置に対して、当該周辺処理が生成した割込み信号により起動する制御プログラムを、オペレーティングシステムによる制御プログラムとするか、ハイパーバイザによる制御プログラムとするかを指定可能なトランジションXVSレジスタを含む請求項8記載の情報処理装置。
  10. 上記プロセッサは、中央処理装置を含み、
    上記中央処理装置は、割込みレベルによってプロセッサの実行を割込み処理へ遷移するか否かを制御するビット、及び割込みによってプロセッサの実行を割込み処理へ遷移するか否かを制御するビットを有する第1ステータスレジスタと、
    割込みレベルによってプロセッサの実行を割込み処理へ遷移するか否かを制御するビット、及び割込みによってプロセッサの実行を割込み処理へ遷移するか否かを制御するビットを有する第2ステータスレジスタと、を含む請求項9記載の情報処理装置。
  11. 上記割込み制御ユニットは、割込み発生時にプロセッサの実行を遷移するか否かの制御を、上記第1ステータスレジスタによる指定に従うか、上記第2ステータスレジスタによる指定に従うかを指定するインセンシティブレジスタを含む請求項8記載の情報処理装置。
JP2009274361A 2009-12-02 2009-12-02 情報処理装置 Pending JP2011118578A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009274361A JP2011118578A (ja) 2009-12-02 2009-12-02 情報処理装置
US12/958,687 US8813070B2 (en) 2009-12-02 2010-12-02 Data processor with interfaces for peripheral devices

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009274361A JP2011118578A (ja) 2009-12-02 2009-12-02 情報処理装置

Publications (1)

Publication Number Publication Date
JP2011118578A true JP2011118578A (ja) 2011-06-16

Family

ID=44069834

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009274361A Pending JP2011118578A (ja) 2009-12-02 2009-12-02 情報処理装置

Country Status (2)

Country Link
US (1) US8813070B2 (ja)
JP (1) JP2011118578A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016092667A1 (ja) * 2014-12-11 2016-06-16 株式会社日立製作所 計算機及び割込み制御方法
JP2017507401A (ja) * 2014-01-06 2017-03-16 ジョンソン コントロールズ テクノロジー カンパニーJohnson Controls Technology Company 複数のユーザインターフェース動作ドメインを有する車両

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9104459B2 (en) * 2011-01-07 2015-08-11 Red Hat Israel, Ltd. Memory change tracking during migration of virtual machine (VM) with VM-controlled assigned peripherals
US9092272B2 (en) * 2011-12-08 2015-07-28 International Business Machines Corporation Preparing parallel tasks to use a synchronization register
US20170206091A1 (en) * 2016-01-20 2017-07-20 International Business Machines Corporation Sharing ownership of an input/output device with an existing partition

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008146566A (ja) * 2006-12-13 2008-06-26 Hitachi Ltd 計算機、仮想デバイスの制御方法およびそのプログラム
JP2008305034A (ja) * 2007-06-06 2008-12-18 Hitachi Ltd デバイス割り当て変更方法
JP2008305106A (ja) * 2007-06-06 2008-12-18 Hitachi Ltd 仮想計算機の制御プログラムおよび仮想計算機システム
JP2009223793A (ja) * 2008-03-18 2009-10-01 Fujitsu Ltd 情報処理装置、情報処理装置の制御方法及びコンピュータプログラム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0619747B2 (ja) * 1984-01-18 1994-03-16 株式会社日立製作所 I/o命令実行方法、i/o割込処理方法およびそれらを用いた計算機システム
JPH0792761B2 (ja) * 1985-07-31 1995-10-09 株式会社日立製作所 仮想計算機システムの入出力制御方法
US7130949B2 (en) * 2003-05-12 2006-10-31 International Business Machines Corporation Managing input/output interruptions in non-dedicated interruption hardware environments
JP4756603B2 (ja) 2006-10-10 2011-08-24 ルネサスエレクトロニクス株式会社 データプロセッサ
US20100083247A1 (en) * 2008-09-26 2010-04-01 Netapp, Inc. System And Method Of Providing Multiple Virtual Machines With Shared Access To Non-Volatile Solid-State Memory Using RDMA
US8635619B2 (en) * 2009-11-30 2014-01-21 International Business Machines Corporation Schedule virtual interface allowing resynchronization requests for lock tokens before attachment of a scheduling element triggered by an unlock request

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008146566A (ja) * 2006-12-13 2008-06-26 Hitachi Ltd 計算機、仮想デバイスの制御方法およびそのプログラム
JP2008305034A (ja) * 2007-06-06 2008-12-18 Hitachi Ltd デバイス割り当て変更方法
JP2008305106A (ja) * 2007-06-06 2008-12-18 Hitachi Ltd 仮想計算機の制御プログラムおよび仮想計算機システム
JP2009223793A (ja) * 2008-03-18 2009-10-01 Fujitsu Ltd 情報処理装置、情報処理装置の制御方法及びコンピュータプログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017507401A (ja) * 2014-01-06 2017-03-16 ジョンソン コントロールズ テクノロジー カンパニーJohnson Controls Technology Company 複数のユーザインターフェース動作ドメインを有する車両
WO2016092667A1 (ja) * 2014-12-11 2016-06-16 株式会社日立製作所 計算機及び割込み制御方法

Also Published As

Publication number Publication date
US20110131577A1 (en) 2011-06-02
US8813070B2 (en) 2014-08-19

Similar Documents

Publication Publication Date Title
US7934036B2 (en) Interrupt-related circuits, systems, and processes
US7730248B2 (en) Interrupt morphing and configuration, circuits, systems and processes
US9262353B2 (en) Interrupt distribution scheme
KR101455009B1 (ko) 이질적 리소스와의 명령어 세트 아키텍처-기반 시퀀서간 통신
EP1182551B1 (en) Address space priority arbitration
TWI516958B (zh) 用於處理器加速器介面的虛擬化的處理器、系統及方法
US5706514A (en) Distributed execution of mode mismatched commands in multiprocessor computer systems
US8533735B2 (en) System for execution context isolation in response to invoking a BIOS kernel function during a driver execution environment (DXE) phase of boot-up of a computer
US8458386B2 (en) Atomic interrupt masking in an interrupt controller to prevent delivery of same interrupt vector for consecutive interrupt acknowledgements
WO2012016439A1 (zh) 业务管理方法和装置、以及设备
US7856635B2 (en) Dynamic address windowing on a PCI bus
US20180095792A1 (en) Multi-core system including heterogeneous processor cores with different instruction set architectures
KR20120098838A (ko) 가상화 환경에서 i/o 동작을 처리하는 방법 및 장치
JP2022526765A (ja) プロセッサのパワーライセンス制御のためのシステム、装置、および方法
JP2009140489A (ja) Vmmシステムにおけるユーザosがサービスosによって使用されている装置の電源を切らないようにするためのシステム及び方法
JP2011118578A (ja) 情報処理装置
EP4336359A1 (en) Method for processing page faults and corresponding apparatus
US20070283138A1 (en) Method and apparatus for EFI BIOS time-slicing at OS runtime
US7516311B2 (en) Deterministic microcontroller context arrangement
US7562207B2 (en) Deterministic microcontroller with context manager
TW202008159A (zh) 處理中斷優先級的電路系統
WO2006081094A2 (en) Deterministic microcontroller
EP3255544B1 (en) Interrupt controller
US20060168420A1 (en) Microcontroller cache memory
US20060168421A1 (en) Method of providing microcontroller cache memory

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120807

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130904

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130912

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131111

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20131205