JP6753777B2 - 割り込み処理の方法及び装置 - Google Patents

割り込み処理の方法及び装置 Download PDF

Info

Publication number
JP6753777B2
JP6753777B2 JP2016514473A JP2016514473A JP6753777B2 JP 6753777 B2 JP6753777 B2 JP 6753777B2 JP 2016514473 A JP2016514473 A JP 2016514473A JP 2016514473 A JP2016514473 A JP 2016514473A JP 6753777 B2 JP6753777 B2 JP 6753777B2
Authority
JP
Japan
Prior art keywords
interrupt
incoming
execution
execution level
interrupt processing
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.)
Active
Application number
JP2016514473A
Other languages
English (en)
Other versions
JP2016518672A (ja
Inventor
ジェブソン、アンソニー
ロイ グリセンスウェイト、リチャード
ロイ グリセンスウェイト、リチャード
ケネディ、マイケル、アレクサンダー
コールフィールド、イアン、マイケル
Original Assignee
エイアールエム リミテッド
エイアールエム リミテッド
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 エイアールエム リミテッド, エイアールエム リミテッド filed Critical エイアールエム リミテッド
Publication of JP2016518672A publication Critical patent/JP2016518672A/ja
Application granted granted Critical
Publication of JP6753777B2 publication Critical patent/JP6753777B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • G06F9/4818Priority circuits therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microcomputers (AREA)
  • Bus Control (AREA)
  • Debugging And Monitoring (AREA)
  • Storage Device Security (AREA)

Description

本発明は、データ処理システムにおける割り込み処理の分野に関する。
ハイパーバイザ・システムは、様々な異なる実行レベルで動作することが知られている。実行レベルは、階層化されており、高位の実行レベルには、下位の実行レベルよりも多くのデータ処理システムへの特権が与えられる。一般的に、特定の実行レベルは、より下位の実行レベルが可能な任意の動作を実行し、任意のデータにアクセスすることができる。
仮想化システムは、4つの実行レベルを使用して動作することができる。ユーザ・ソフトウェアは、最も低く、最も特権のない特権レベル、EL0で実行され得る。このソフトウェアには、日々の仕事でユーザにより実行されるアプリケーションや、正しく実行するために何らの特別な特権も必要としないソフトウェアが含まれ得る。
オペレーティング・システムは、次に高いレベル、EL1で実行され得る。一般に、オペレーティング・システムは、その下のEL0で動作する複数のユーザ・アプリケーションを管理し、ユーザ・アプリケーションがハードウェア資源へアクセスすることを可能とする。したがって、EL1内で実行するオペレーティング・システムは、EL0下で動作するユーザ・アプリケーションの挙動にアクセスし、制御することが可能であるように、EL0に対して高い特権レベルを有している。
ハイパーバイザは、EL2で動作し得る。ハイパーバイザは、通常、EL1下で実行する複数のオペレーティング・システムの数、行動、及び資源管理を制御する。複数のオペレーティング・システムがハードウェア資源へのアクセスのために競合し得ることから、ハイパーバイザは、このようなアクセス要求を認める、又は拒否することができなければならない。したがって、ハイパーバイザは、EL1で動作するオペレーティング・システムと比べて、より高い特権レベルEL2で動作する。
また、データ処理システムが、セキュア及び非セキュア状態などの、様々な実行モードで動作することも知られている。セキュア及び非セキュア状態の両者で動作することができるデータ処理装置を提供することにより、セキュア動作の実行を非セキュア動作のそれから分離することが可能である。さらに、セキュアであるべきと考えられているデータは、セキュアではないデータから分離しておくことができる。したがって、セキュア・データ及びセキュア動作は、セキュアではないとみなされ得る他のデータ及び動作から分離することができる。したがって、システムのセキュリティが保たれる。また、ハイパーバイザ・システムは、セキュア及び非セキュア・モードで動作することもできる。これらの例では、各実行レベルは、セキュア及び非セキュア・モードの一方又はいずれでも動作することができる。
セキュア及び非セキュア・モード間の切り替えは、非セキュアな動作モードで実行されるソフトウェアがセキュアな動作モードに属するデータにアクセスできないこと、及び場合によってはその逆を保証するために、最もセキュアで且つ特権のある実行レベルで処理されなければならない。したがって、この切り替えを制御するセキュア・モニタが動作するEL3レベルが提供され得る。このEL3レベルは、最高の特権レベルであり、その責任は、モードの変更が要求されるときを決定し、この要求された実行モードの変更を有効にすることである。
複数の異なる実行レベルで動作するシステム内で割り込みを処理する場合、割り込みの処理中に使用される特定のデータ記憶要素を分離する必要がある。例えば、システム・レジスタのサブセットは、実行レベルEL1又はそれ以上で動作するソフトウェアのみがレジスタの第1のサブセットにアクセスでき、実行レベルEL2又はそれ以上で動作するソフトウェアのみがレジスタの第2のサブセットにアクセスでき、実行レベルEL3で実行するソフトウェアのみが、サブセットのレジスタの第3のセットにアクセスできるというように、分割され得る。この分割は、必要に応じて、セキュア及び非セキュアな動作モードの両者に対して行われ得る。このような分離は、低位の実行レベルで動作するソフトウェアが、上位の実行レベルで動作するソフトウェアの実行に干渉したり、又は影響を及ぼしたりすることができないことを保証する。
本発明の第1の態様によれば、着信割り込みの処理を制御するための割り込み処理レジスタのセットを含む複数のシステム・レジスタと、複数の実行レベルでソフトウェアを実行するように構成された処理回路と、前記着信割り込みを、前記複数の実行レベルの1つで動作するように構成された割り込み処理ソフトウェアにルーティングするように構成された割り込みコントローラ回路と、前記実行レベルで動作するように構成された割り込み処理ソフトウェアが、前記着信割り込みを処理するため前記割り込み処理レジスタの少なくともいくつかへのアクセスを有するように、且つ、前記実行レベルで動作するように構成された前記割り込み処理ソフトウェアが、より特権のある実行レベルで動作する割り込み処理ソフトウェアにルーティングされる第2の着信割り込みを処理するための割り込み処理レジスタへのアクセスを有しないように、前記着信割り込みがルーティングされる、前記複数の実行レベルの内の前記1つに応じて前記割り込み処理レジスタの前記少なくともいくつかへのアクセスを動的に制御するように構成されたレジスタ・アクセス制御回路と、を備えたデータ処理装置が提供される。
上記によれば、一組の割り込み処理レジスタへのアクセスは、着信割り込みがルーティングされる特定の実行レベルに応じて動的に制御される。このことは、特定の実行レベルで動作する割り込み処理ソフトウェアが、特定の静的に定義されたレジスタのサブセット及び任意の低位でより特権のない実行レベルによる使用のために定義されたこれらのレジスタにのみアクセスが可能である公知のシステムと対照的である。このアクセス上の制限は、低位のレベルの特権で動作するソフトウェアが高位のレベルの特権で動作するソフトウェアに干渉することを防ぐために提供された。この結果、高い実行レベルを意図した割り込みが、低い実行レベルで動作する割り込み処理ソフトウェアにルーティングされた場合、割り込みは、普通は、処理され得ないこととなる。本発明の実施例は、割り込みの宛先の実行レベルに応じて割り込み処理レジスタのセットへのアクセスを動的に制御することを可能とすることにより、このことに対処している。
上記のシステムにおいて、特定の実行レベルで動作する割り込み処理ソフトウェアは、特定の着信割り込みを処理できるように動的に変更される割り込み処理レジスタ内のレジスタのセットへのアクセスを有することができる。その結果、着信割り込みが、任意の実行レベルで動作する割り込み処理ソフトウェアによって処理され得ることから、柔軟性が高まる。さらに、各実行レベルで動作する割り込み処理ソフトウェアは、着信割り込みに関係するシステム・レジスタへのアクセスのみを有することから、システムのセキュリティが維持される。このシステムの別の利点は、特定の割り込みを処理するのに、ある特定の実行レベルで動作する割り込み処理ソフトウェアを必要としないことから、ソフトウェアが、より移植可能にできることである。その代わりに、いかなる割り込みも、異なる実行レベルで動作する割り込み処理ソフトウェアにルーティングすることができ、そこでもこの割り込みを処理することができる。上記のさらに別の利点は、非セキュアなソフトウェア、セキュアなオペレーティング・システム、又はセキュア・モニタの所望のいずれにも、明示的に割り込みをルーティングすることが可能であることである。それによって、所与の割り込みを処理するために利用できる選択肢の数を増やすことにより、このようなシステムの柔軟性が改善される。
いくつかの実施例では、複数の実行レベルは、EL0、EL1、EL2及びEL3からなる。EL0は、ユーザがソフトウェアを実行する実行レベルである。EL1は、ゲスト・オペレーティング・システムが実行される、より高い特権のある実行レベルである。EL2は、ハイパーバイザが実行され、EL2より多くの特権がある実行レベルである。EL3は、セキュア・モニタが実行される最も特権のある実行レベルである。ゲスト・オペレーティング・システム、ハイパーバイザ・ソフトウェア、及びセキュア・モニタのそれぞれが、割り込み処理ソフトウェアを含み得ることに留意されたい。
いくつかの実施例では、割り込み処理レジスタに与えられるアクセス権は、着信割り込みがルーティングされる実行レベルだけに依存し得る。
いくつかの実施例では、データ処理回路は、処理回路の現在の実行モードを検出するためのプロセッサ・モード検出回路、意図された実行モードで、及び意図された実行レベルで動作する特定の割り込みハンドラーのために意図された着信割り込みを受信する入力回路、及び、特定の実行レベルで動作するように構成されている割り込み処理ソフトウェアに着信割り込みをルーティングするためのルーティング回路をさらに含むことができる。
ルーティング回路が、処理回路の現在の実行モードに対応する意図された実行モードを有する着信割り込みを受信すると、着信割り込みは、意図された実行レベルで動作する割り込み処理ソフトウェアにルーティングされる。或いは、ルーティング回路が、処理回路の現在の実行モードに対応していない意図された実行モードを有する着信割り込みを受信すると、ルーティング回路は、意図された実行レベルより特権のある実行レベルで動作するように構成されて、もしかしたら最も特権がある実行レベルであり得る割り込み処理ソフトウェアに着信割り込みをルーティングする。いくつかの実施例では、着信割り込みは、セキュア・モニタが動作するのと同一の実行レベルで動作する割り込み処理ソフトウェアにルーティングすることができる。
現在の及び意図された実行モードはそれぞれ、セキュア・モード又は非セキュア・モードいずれであっても良い。セキュア・モードで動作する場合には、処理回路は、前記非セキュア・モードで動作する前記処理回路にアクセス可能ではない、セキュアなデータへのアクセスを有する。さらに、いくつかの実施例では、処理回路が非セキュア・モードで動作する場合、それは、セキュア・モードで動作する前記処理回路にアクセス可能ではない非セキュアなデータにアクセスする。
いくつかの実施例では、割り込み処理レジスタは、確認応答レジスタを備える。確認応答レジスタは、割り込みが保留されていることを示す。確認応答レジスタはまた、受信した着信割り込みが、現在の実行モードに対応しない意図された実行モードを有していることを示すための予め定義された値を返す。したがって、確認応答レジスタに対する予め定義された値は、着信割り込みが、着信割り込みに対して当初意図された実行レベルと異なる実行レベルで動作する割り込み処理ソフトウェアにルーティングされなければならないことを示すために使用され得る。いくつかの実施例では、確認応答レジスタが予め定義された値を返すとき、既定の、より特権のある実行レベルで動作する割り込み処理ソフトウェアが、処理回路の実行モードを変更し、その後、ルーティング回路をして、意図された実行レベルで動作する割り込み処理ソフトウェアに着信割り込みをルーティングさせ、そこで、この割り込みが再度取り出され、今度は完全に処理され、完了するように構成される。
他の実施例では、予め定義された値を返す確認応答レジスタに応答して、既定の実行レベルで動作する割り込み処理ソフトウェアは、着信割り込みを直接それ自身で処理し得る。このことは、例えば、意図された割り込み処理ソフトウェアが着信割り込みを処理できるようにプロセッサの動作モードを切り替えるよりも、実行レベルEL3で動作する割り込み処理ソフトウェアが着信割り込みを処理したほうが、より効率的である場合に、生起し得る。
着信割り込みをルーティングするプロセスは、割り込み例外を発生させる場合があり、これは、その後、割り込み処理ソフトウェアに転送される。これらの割り込み例外は、システムにとって内部的なものであり、プロセッサに対して所与のクラスの割り込みの発生を示すために割り込みコントローラにより生成される。割り込み例外の実例としては、FIQ及びIRQが含まれる。
いくつかの実施例では、データ処理装置は、仮想割り込みを発生させる。割り込みコントローラ回路は、第1の設定と第2の設定との間で切り替え可能であり得る。第1の設定では、着信割り込みは、意図された実行レベルよりも特権のある実行レベルで動作する割り込み処理ソフトウェアにルーティングされる。そして、仮想割り込みが、より特権のある実行レベルで動作する割り込み処理ソフトウェアにより生成され、意図された(より低い)レベルで動作する割り込み処理ソフトウェアへ転送される。第2の設定では、割り込みコントローラは、意図された(より低い)実行レベルで動作する割り込み処理ソフトウェアに着信割り込みをルーティングする。両方の設定において、低位の割り込み処理ソフトウェアは、着信割り込みを処理することができる。しかしながら、第2の設定では、着信割り込みは、より特権のある割り込み処理ソフトウェアが仮想割り込みを生成する必要なしに、意図された割り込み処理ソフトウェアに直接送信される。したがって、より高位の(より特権のある)割り込み処理ソフトウェアの処理負荷が、軽減される。これらの実施例のいくつかでは、より特権のあるレベルは、ハイパーバイザが動作するEL2であろう。これらの実施態様のいくつかでは、より特権のあるレベルで動作する割り込み処理ソフトウェアも、より特権のないレベルで動作する割り込み処理ソフトウェアも、両者ともに、先に定義したように、非セキュアな動作モードで実行するように構成され得る。
本発明の第2の態様によれば、複数の実行レベルの中から宛先の実行レベルで動作する割り込み処理ソフトウェアにルーティングされる着信割り込みを処理するための割り込み処理レジスタのセットの少なくともいくつかへのアクセスを動的に制御する方法であって、前記着信割り込みがルーティングされる宛先実行レベルを決定するステップと、前記実行レベルで動作する割り込み処理ソフトウェアが、前記着信割り込みを処理するため前記割り込み処理レジスタの前記少なくともいくつかへのアクセスを有するように、且つ、前記実行レベルで動作する前記割り込み処理ソフトウェアが、より特権のある実行レベルで動作する割り込み処理ソフトウェアにルーティングされる第2の着信割り込みを処理するための割り込み処理レジスタへのアクセスを有しないように、前記宛先実行レベルで動作する前記割り込み処理ソフトウェアへのアクセスを許可するステップとを含む、方法が提供される。
第3の態様によれば、
着信割り込みの処理を制御するための割り込み処理レジスタのセットを備える、複数のシステム・レジスタと、
複数の実行レベルでソフトウェアを実行するための処理手段と、
前記複数の実行レベルの内の1つで動作するように構成された割り込み処理ソフトウェアに前記着信割り込みをルーティングするための割り込みコントローラ手段と、
前記実行レベルで動作するように構成された割り込み処理ソフトウェアが、前記着信割り込みを処理するため前記割り込み処理レジスタの前記少なくともいくつかへのアクセスを有するように、且つ、前記実行レベルで動作するように構成された前記割り込み処理ソフトウェアが、より特権のある実行レベルで動作する割り込み処理ソフトウェアにルーティングされる第2の着信割り込みを処理するための割り込み処理レジスタへのアクセスを有しないように、前記着信割り込みがルーティングされる、前記複数の実行レベルの内の前記1つに応じて、前記割り込み処理レジスタの前記少なくともいくつかへのアクセスを動的に制御するためのレジスタ・アクセス制御手段と
を備える、データ処理装置が提供される。
本発明の第4の態様によれば、複数の実行レベルでソフトウェアを実行するように構成された処理回路に着信割り込みをルーティングするための装置であって、プロセッサの現在の実行モードを検出するように構成されたプロセッサ・モード検出回路と、意図された実行モードで、及び意図された実行レベルで動作する割り込みハンドラーのために意図された前記着信割り込みを受信するように構成された入力回路と、目標の実行レベルで動作する割り込み処理ソフトウェアに前記着信割り込みをルーティングするように構成されたルーティング回路であって、前記意図された実行レベルで動作する割り込み処理ソフトウェアに前記着信割り込みをルーティングするために、前記処理回路の前記現在の実行モードに対応する意図された実行モードを有する受信された前記着信割り込みに応答し、且つ前記意図された実行レベルより特権のある既定の実行レベルで動作する割り込み処理ソフトウェアに前記着信割り込みをルーティングするために、前記処理回路の前記現在の実行モードに対応しない意図された実行モードを有する受信された前記着信割り込みに応答する、ように構成されるルーティング回路と、を備える装置が提供される。
この態様によれば、着信割り込みが、処理回路が現在動作に入っていない動作モードで実行されることが意図されるとき、着信割り込みが昇格される。割り込みの昇格により、割り込みが通常処理されることになるよりも、より高い実行レベルで動作する割り込み処理ソフトウェアにより処理される。このことは、処理回路が実行モードを着信割り込みにより要求されたモードに切り替えるようにさせ、それによって、当初意図されたように着信割り込みが処理されることを可能とし得る。或いは、割り込み処理ソフトウェアは、処理回路の実行モードに関わらず、且つ処理回路のモードを切り替えることなく、着信割り込みをそれ自身直接処理することができる。
本発明の第5の態様によれば、複数の実行レベルでソフトウェアを実行するように構成された処理回路に着信割り込みをルーティングするための方法であって、前記プロセッサの現在の実行モードを検出するステップと、意図された実行モードで、及び意図された実行レベルで動作する割り込みハンドラーのために意図された前記着信割り込みを受信するステップと、目標の実行レベルで動作する割り込み処理ソフトウェアに前記着信割り込みをルーティングするステップであって、前記意図された実行レベルで動作する割り込み処理ソフトウェアに前記着信割り込みをルーティングするために、前記処理回路の前記現在の実行モードに対応する意図された実行モードを有する受信された前記着信割り込みに応答することと、前記意図された実行レベルより特権のある既定の実行レベルで動作する割り込み処理ソフトウェアに前記着信割り込みをルーティングするために、前記処理回路の前記現在の実行モードに対応しない意図された実行モードを有する受信された前記着信割り込みに応答することによって、ルーティングするステップと、を含む方法が提供される。
別の態様によれば、本発明の第2又は第4の態様の前述の方法の1つを実行するように処理装置を制御するためのコンピュータ・プログラムもまた提供され得る。
ある実施例に従ったデータ処理装置を概略的に示すブロック図である。 ある実施例に従ったデータ処理装置内の割り込みコントローラの動作を概略的に示す図である。 ある実施例に従った2つの動作モード間を切り替える、データ処理装置内の割り込みコントローラの動作を概略的に示す図である。 ある実施例に従った2つの動作モード間を切り替える、データ処理装置内の割り込みコントローラの動作を概略的に示す図である。 ある実施例に従ったデータ処理装置の動作を示す流れ図である。 ある実施例に従って着信割り込みを「昇格させる」データ処理装置の動作を示す流れ図である。 ある実施例に従って着信割り込みに応答して仮想割り込みを生成する、又は生成しない2つの動作モード間を切り替えるデータ処理装置の動作を示す流れ図である。 ある実施例に従って動作するシステムを概略的に示す図である。
本明細書に記載の実施例は、プロセッサを様々な実行レベル(EL0〜EL3)で実行させることができるシステムを考慮している。EL0は最も特権がない実行レベルであり、EL3は最も特権がある実行レベルである。高位の実行レベルで動作するソフトウェアは、一般に、低位の実行レベルで使用されるデータにアクセスすることができる。しかしながら、高位の実行レベルで使用されるデータは、一般に、低位の実行レベルで実行されるソフトウェアではアクセスすることができない。
ユーザ・ソフトウェアは実行レベルEL0で実行し、ゲスト・オペレーティング・システムはEL1で実行し、ハイパーバイザ・ソフトウェアは実行レベルEL2で動作し、セキュア・モニタは実行レベルEL3で動作する。
セキュア・モニタは、プロセッサ30がセキュア・モードで実行するか、非セキュア・モードで実行するかを制御することができる。プロセッサが非セキュア・モードにある間は、セキュア・データにアクセスすることができない。また、この実施例では、実行レベルEL2に対するセキュアな動作モードはなく、且つ実行レベルEL3に対する非セキュアな動作モードがないことに留意すべきである。
実行レベルEL3は、セキュア及び非セキュアの両者のデータにアクセスすることができ、2つの状態間の切り替えを制御する。
着信割り込みは、それらの性質及び目的に応じて、複数のクラスに分類することができる。本明細書に記載の実施例では、3つの異なる分類が考慮される。
G0又はグループ0割り込みは、EL3で動作するセキュア・モニタ用である。
G1ns又はグループ1非セキュア割り込みは、非セキュア・モードでEL2において動作するハイパーバイザ用、又は非セキュア・モードでEL1において動作するオペレーティング・システム用である。
G1s又はグループ1セキュア割り込みは、EL1において動作するセキュア・オペレーティング・システム用である。
着信割り込みは、2つの割り込み例外FIQ及びIRQの内の1つを発行することによって、割り込みコントローラによりプロセッサに伝達される。
図1は、データ処理装置の実施例を示すブロック図である。着信割り込み10が割り込みコントローラ20により受信される。本実施例では、着信割り込み10は、分類G0のものであり、プロセッサ30上で実行レベルEL3で動作するセキュア・モニタ用である。しかしながら、本実施例では、制御レジスタ40内に格納された値の結果として、着信割り込み10は、代わりに、プロセッサ30上で実行レベルEL1で動作する割り込み処理ソフトウェアにルーティングされる。
通常の成り行きでは、プロセッサ30上で実行レベルEL1で動作する割り込み処理ソフトウェアは、システム・レジスタ50のセットの内のレジスタの特定のサブセット60にアクセスできることになる。着信割り込み10が処理されるためには、異なる、システム・レジスタの第2のセット70にアクセスすることが必要である。このレジスタの第2のセットは、例えば、確認応答レジスタなどの、特定の例外が保留されている又は完了していることを伝達するために使用されるレジスタを含み得る。したがって、通常は、プロセッサ30上で実行レベルEL1で動作する割り込み処理ソフトウェアは、着信割り込み10を処理するために必要であるシステム・レジスタの第2のセット70にはアクセスできないことになろう。
しかしながら、この実施例では、着信割り込み10が割り込み処理ソフトウェアにルーティングされる方法は、制御レジスタ40の構成及びプロセッサ30の現在の実行モード(セキュア又は非セキュア)の一方又は両方に依存する。
特に、第1のセキュア制御レジスタSCRは、各割り込み例外FIQ及びIRQに対して、当該割り込み例外がEL3で動作する割り込み処理ソフトウェアにルーティングされるか否かを示す。
割り込み例外がEL3で動作する割り込み処理ソフトウェアにルーティングされず、且つ、プロセッサがセキュア・モードで動作している場合、割り込み例外は、EL2がセキュア・モードを有していないことから、EL1でセキュア・モードで動作する割り込み処理ソフトウェアに送られる。
割り込み例外がEL3で動作する割り込み処理ソフトウェアにルーティングされず、且つ、プロセッサが非セキュア・モードで動作している場合、割り込み例外は、第2のハイパーバイザ制御レジスタHCRにより示される値に応じて、EL1又はEL2で非セキュア・モードで動作する割り込み処理ソフトウェアにルーティングされる。レジスタSCRの場合と同じく、各割り込み例外に対して異なる値を設定することができる。
制御レジスタ40の構成は、プロセッサ30上で実行されるソフトウェアにより制御され得る。例えば、SCRに対して設定される値は、EL3で動作するセキュア・モニタにより設定することができ、したがって、セキュア・モニタが、特定の割り込み例外の処理を低位の実行レベルで動作する割り込み処理ソフトウェアに委ねることが可能となる。同様に、特定の割り込み例外が、EL2で動作するハイパーバイザ又はEL1で動作するゲスト・オペレーティング・システムのどちらによって処理されるかは、ハイパーバイザにより指定され得る。したがって、制御レジスタ内の特定の値を設定することで、様々な異なる実行レベルのソフトウェアが着信割り込みを処理することを可能とすることにより、このようなシステムの柔軟性は向上する。
この実例では、レジスタ・アクセス制御80は、実行レベルEL1でセキュア動作モードで動作する割り込み処理ソフトウェアがシステム・レジスタ50のセットの内のシステム・レジスタの第2の(付加的)セット70にアクセスすることを許可する。こうして、実行レベルEL1でセキュア動作モードで動作する割り込み処理ソフトウェアは、着信割り込み10を処理することができる。
結果として、プロセッサ30上で実行レベルEL1でセキュア・モードで動作する割り込み処理ソフトウェアに許可されたアクセスは、割り込みコントローラ20により行われるルーティングに依存し、ルーティングは、制御レジスタ40の値に依存し得ることが分かる。システム・レジスタ50へのアクセスの変更が、プロセッサ30内で実行レベルEL1でセキュア・モードで動作する割り込み処理ソフトウェアが、着信割り込み10を処理することができるという結果をもたらす。したがって、プロセッサ30の各実行レベルで動作する割り込み処理ソフトウェアに与えられるアクセス権は動的に決定され、それによって、着信割り込みを複数の異なる実行レベルで処理することが可能となる。言葉を換えれば、特定の実行レベルで動作する割り込み処理ソフトウェアは、システム・レジスタ50の固定されたセットにアクセスできるだけではない。それどころか、システム・レジスタ50に対する割り込み処理ソフトウェアのアクセス権は、着信割り込みの異なる実行レベルへのルーティングに応じて変更される。
さらに、プロセッサ30上で実行レベルEL1でセキュア・モードで動作する割り込み処理ソフトウェアに許可されるアクセス権は調整されるが、任意の他の実行モード又は実行レベルにおける任意の他の割り込み処理ソフトウェアに対するアクセス権が調整される必要はない。具体的には、実行レベルEL2でセキュア・モードで動作する割り込み処理ソフトウェアは、実行レベルEL1で動作する割り込み処理ソフトウェアよりも高い実行レベルで動作するが、実行レベルEL2における割り込みソフトウェアのアクセス権を調整する必要はない。
図2は、データ処理装置が、着信割り込み10を昇格させる割り込みコントローラ20を含む実施例を示す。着信割り込み10は、割り込みコントローラ20内の入力回路100により受信され、分類G1Sのものであって、これは、割り込みがセキュアなEL1で動作するセキュア・オペレーティング・システムにより処理されることを意図していることを示す。システム・レジスタ50のセット内の確認応答レジスタ90は、着信割り込み10が保留されていること、また(本実施例では)プロセッサ30の現在の実行モードが、着信割り込み10により要求されたモードに合致しないことを示す。この実例では、着信割り込み10は、非セキュアな動作モードにあるプロセッサ30とは相容れない、セキュアな動作モードを要求している。着信割り込み10が正しい動作モードにないという事実が、割り込みコントローラ20に利用可能となる。
確認応答レジスタが割り込み処理ソフトウェアから読み込まれ、返される値は、現在の状況に対して有効な割り込みIDであるか、又はセキュア状態のための保留中の割り込みがある、非セキュア状態のための保留中の割り込みがある、若しくは何らの保留中の割り込みもない、のいずれかを示す値の1つである特別な識別子である。もはや保留中の割り込みがないという応答は、プロセッサが、保留中の割り込みを取得する若しくは実際に見るために十分に高いレベルで実行されていない場合、又は、保留中の割り込みが取得されてしまって何らかの理由でもはや保留中ではない場合に発生する可能性がある。
通常、割り込みコントローラ20への着信割り込み10の到着は、実行レベルEL1でセキュアな動作モードで動作する割り込み処理ソフトウェアへ送られることになる割り込み例外IRQを発生させる。しかしながら、この実例では、プロセッサ30が、現在、セキュアな動作モードで動作していないことから、この割り込み例外は、この時点で処理されることはできない。したがって、割り込みコントローラ20内のルーティング回路110は割り込み例外FIQを発生させることにより着信割り込み10を「昇格」させ、プロセッサ30上で実行レベルEL3でセキュアな動作モードで動作する割り込み処理ソフトウェアにルーティングされる。
本実施例では、実行レベルEL3でセキュア・モードで動作する割り込み処理ソフトウェアは、常に、内部FIQ割り込みに即応することが可能である。したがって、着信割り込み10が意図したものよりも特権のある実行レベルにおける割り込み処理ソフトウェアは、プロセッサの現在の動作モードと相容れない着信割り込み10を受信した割り込みコントローラ20に対して反応することができる。
いくつかの実施例では、実行レベルEL3で動作する割り込み処理ソフトウェアは、セキュア動作モードで実行している任意のソフトウェアの状態を保存し、あるキャッシュ又は中間記憶媒体をフラッシュし、プロセッサのモードを切り替えることで、プロセッサ30のモードを変更することにより反応することになる。このプロセスは、単純な割り込みを処理する場合、時間がかかり得る。したがって、状況によっては、実行レベルEL3で動作する割り込み処理ソフトウェアは、その代わりに、着信割り込みをそれ自身で処理する可能性がある。このような状況では、割り込み処理ソフトウェアは、セキュア・モードと非セキュア・モードとの間でプロセッサ30のモードを変更する必要がない。
当業者は、実行レベルEL3で動作する割り込み処理ソフトウェアが、プロセッサ30のモードをセキュア及び非セキュア・モードの間で変更させるか否か、又は、実行レベルEL3で動作する割り込み処理ソフトウェアが割り込みをそれ自身で処理するか否か、を指示することになる複数の異なる条件があることを認識するであろう。例えば、着信割り込みの重要性、プロセッサ上で現在動作中の実行レベル、又は、着信割り込みの複雑さに基づいて、このような決定が行われ得る。特に、プロセッサがこれまで低い実行レベルで動作していた場合、着信割り込みがとりわけ複雑であり、且つ決定的に重要というわけではない場合、プロセッサ30は、セキュア及び非セキュア・モードの間でモードを変更する可能性がある。
図3A及び図3Bは、図3Aに示される第1の設定と図3Bに示される第2の設定との間で割り込みコントローラのモードを切り替えるプロセスを示す。
図3Aにおいて、着信割り込み10は、割り込みコントローラ20により受信され、割り込み例外IRQとしてプロセッサ30上で実行レベルEL1で非セキュア・モードで動作する割り込み処理ソフトウェアに転送される。
図3Bにおいて、着信割り込み10は、割り込みコントローラ20により受信され、この場合も割り込み例外IRQとして転送される。しかしながら、この実施例では、割り込み例外IRQは、実行レベルEL2で非セキュア・モードで動作する割り込み処理ソフトウェアにより受信される。そこで、仮想割り込みが、実行レベルEL2で非セキュア・モードで動作する割り込み処理ソフトウェアにより生成され、実行レベルEL1で非セキュア・モードで動作する割り込み処理ソフトウェアに転送される。この実施例では、生成される仮想割り込みは、この実施例にはセキュアなEL2がないため、当然のこととして、ハイパーバイザ又はゲストOSのいずれかに行くグループ1非セキュア割り込みでなければならない。
2つの設定により、実行レベルEL1で非セキュア・モードで動作する割り込み処理ソフトウェアが、着信割り込み10に物理的にアクセスするか、又は、より特権がある実行レベルEL2で非セキュア・モードで動作する割り込み処理ソフトウェアが着信割り込み10に物理的にアクセスし、実行レベルEL1で非セキュア・モードで動作する割り込み処理ソフトウェアは着信割り込み10に仮想的にのみアクセスするか、とすることが可能となる。
例えば、あるハードウェアにより生成される着信割り込み10は、実行レベルEL1で動作するゲスト・オペレーティング・システムにより直接処理され得て、この場合、ゲスト・オペレーティング・システムは、中間的なステップを要求せずに、着信割り込み10に物理的にアクセスする。
或いは、このような割り込みは、実行レベルEL2で動作するハイパーバイザ・ソフトウェアに向かわせて、仮想割り込みが、ハイパーバイザ・ソフトウェアにより生成され、実行レベルEL1で動作するゲスト・オペレーティング・システムにルーティングされることになる。この場合、ゲスト・オペレーティング・システムは、着信割り込み10へ仮想的にのみアクセスでき、この割り込みへのアクセスは、最終的には、実行レベルEL2で動作するハイパーバイザ・ソフトウェアにより制御される。このプロセスは、異なる個々のソフトウェアが、ハードウェアにアクセスしようと競い合う、又は、ハードウェアに直接アクセスさせるほど信頼されていない場合に必要となり得る。しかしながら、仮想割り込みを発生させるプロセスは、ゲスト・オペレーティング・システムが着信割り込み10に物理的にアクセスするシナリオに比べて、追加の処理リソースを消費する可能性がある。
割り込みコントローラ20は、制御レジスタ40のセット内のレジスタにより返される値に従って、これらの2つの設定間で切り替えられ得る。これまでに論じたように、プロセッサ30が、非セキュアな動作モードで動作しており、且つ、割り込み例外が、EL3へルーティングされない場合、レジスタHCRの値は、割り込み例外がEL1又はEL2のいずれにルーティングされるべきであるか示すために使用され得る。さらに、このレジスタは、割り込み例外を受信する割り込み処理ソフトウェアが、仮想割り込みを生成し、その仮想割り込みを実行レベルEL1で非セキュアなモードで動作する割り込み処理ソフトウェアに転送すべきか否かを示す。より特権の少ない実行レベルで動作するソフトウェアにより処理するために仮想割り込みを発生させることは、プロセッサへの負荷が大きいであろう。より低位のレベルで動作する割り込み処理ソフトウェアによって最終的に処理される割り込みは、より特権のある割り込み処理ソフトウェアによって仮想割り込みの形で再現されなければならない。しかしながら、仮想割り込みを生成することにより、より特権のない割り込みハンドラーが、より特権のない実行レベルで動作するソフトウェアの特権を拡大することなく割り込みを処理することが可能となる。したがって、ハイパーバイザは、EL1レベルで実行されている特定のソフトウェアとともに変化するセキュリティ対性能の要件に合わせて、制御レジスタ40に値を設定する。
以下の表は、割り込み例外IRQについて、異なるレジスタ値及びプロセッサ・モードの、着信割り込みのルーティングへの効果を示す。
セキュア制御レジスタSCR及びハイパーバイザ制御レジスタHCRの両者が、IRQのルーティングを制御する上記に示したビットとFIQのルーティングを制御する(この表には示されない)別のビットとを含むことに留意すべきである。FIQ割り込みであるSCR.FIQ又はHCR.FIQのための制御ビットはグループ0の割り込みのためのルーティングを制御し、IRQ割り込みであるSCR.IRQ又はHCR.IRQのためのそれは、グループ1のセキュア及び非セキュアの両方の割り込みをどのようにルーティングするかを定義する。このセグメント化は、IRQが、要求された場合、FIQに昇格することができるので可能である。既に述べたように、これらの設定は、IRQ及びFIQの両方の割り込み例外に対して独立に設定することができる。
したがって、2つのモード間を動的に切り替えることが可能であり、それによって、着信割り込み10が中間の当事者により処理されるか、又は正しい実行レベルで動作する適切なソフトウェアに直接ルーティングされるかに動的に影響を与えることが可能である。
図4は、ある実施例に従ったデータ処理装置の動作を示す流れ図である。
ステップS10において、(図1又は図2に示されるように)着信割り込み10がどの実行レベルにルーティングされるべきかが決定される。このような決定は、制御レジスタ40のセット内のレジスタによって返される値と着信割り込み10の種類との組み合わせにより行うことができる。
ステップS20において、割り込み処理ソフトウェアが着信割り込み10を処理できるように、着信割り込み10がルーティングされるべき実行レベルで動作する割り込み処理ソフトウェアに対してアクセスが動的に認められる。
上記に従って、割り込み処理ソフトウェアに認められるアクセス権は、静的に決定されるのではない。すなわち、各実行レベルで動作する割り込み処理ソフトウェアは、システム・レジスタ50のセット中の、レジスタの、固定された、すなわち静的なセットへのアクセスを有するものではない。その代わりに、割り込み処理ソフトウェアがアクセスを有する、システム・レジスタ50内のレジスタのセットは、着信割り込みのルーティングに基づいて決定される。
図5は、ある実施例に従って(図1に示されるように)着信割り込み10を昇格させるデータ処理装置の動作を示す流れ図である。
ステップS30において、着信割り込み10が、割り込みコントローラ20により受信される。
ステップS40において、プロセッサ30に対する現在の実行モードが判定される。
ステップS50において、プロセッサ30の現在の実行モードが、着信割り込み10の意図された実行モードと同じであるかが判定される。この判定は、例えば、システム・レジスタ50内の確認応答レジスタ90の読み込みの結果としてなされ得る。
現在の実行モードと意図された実行モードとが同じである場合、動作は、着信割り込み10が意図された割り込みハンドラーに転送される、ステップS60に進む。
或いは、意図された実行モードと現在の実行モードとが異なる場合、着信割り込み10は、実行レベルEL3で動作する割り込み処理ソフトウェアにルーティングされる。
実行レベルEL3で動作する割り込み処理ソフトウェアは、例えば、セキュア・モニタであり得る。この実施例では、実行レベルEL3で動作するセキュア・モニタは、割り込みをそれ自身で直接、処理する。しかしながら、他の実施例では、セキュア・モニタは、プロセッサ30に対する現在の実行モードを切り替えさせる可能性がある。例えば、プロセッサ30の実行モードが着信割り込み10の意図された実行モードに合致するように、プロセッサ30の実行モードがセキュア・モードから非セキュア・モードへ、又はその逆に、切り替えられ得る。
したがって、プロセッサ30が現在提供している実行モードを要求する着信割り込み10は、適切な割り込み処理ソフトウェアに直ちに転送され得る。しかしながら、プロセッサ30が適切な実行モードで動作していない場合、着信割り込みを最も特権のある実行レベルにルーティングさせる、「昇格」が発生する。ここで、着信割り込み10は、直ちに処理されるか、又は、着信割り込み10が当初意図された割り込み処理ソフトウェアに転送され得るようにプロセッサのモードを切り替えることができる。
図6は、ある実施例に従って仮想割り込みを発生させるデータ処理装置の動作を示す流れ図である。
ステップS80において、割り込みコントローラ20が動作の転送モードにあるか否かを判定する。動作の転送モードにおいて、割り込みコントローラ20は、(図1及び図2に示すように)着信割り込み10を適切な実行レベルに直接、転送し、それによって、適切な実行レベルの割り込み処理ソフトウェアに着信割り込み10への物理的なアクセスを許可するように構成される。動作のモードは、例えば、制御レジスタ40のセット内の確認応答レジスタ90により返却される値の結果によって、決定され得る。
割り込みコントローラ20が動作の転送モードにある場合、ステップS90において、着信割り込み10は、実行レベルEL1で非セキュアな動作モードで動作する処理ソフトウェアに直接ルーティングされる。
或いは、割り込みコントローラ20が動作の転送モードにない場合、ステップS100において、着信割り込みは、実行レベルEL2で非セキュアな動作モードで動作する割り込み処理ソフトウェアに向けてルーティングされる。その後、ステップS110において、仮想割り込みが、非セキュアの実行レベルEL2で動作するソフトウェアにより生成され、非セキュアの実行レベルEL1で動作する割り込み処理ソフトウェアに転送される。
上記によれば、着信割り込み10が特定の実行レベルで動作する割り込み処理ソフトウェアに向けて直接転送される第1の設定と、着信割り込み10がより特権のある実行レベルに転送され、仮想割り込みが当該のより特権のある実行レベルの割り込み処理ソフトウェアにより生成されて、より特権のないレベルで動作する割り込み処理ソフトウェアに送信される第2の設定との間で、割り込みコントローラ20の動作のモードを切り替えることができる。このようにして、割り込み処理ソフトウェアが、着信割り込み10への物理的なアクセスを有することも、その着信割り込みへの仮想的なアクセスを有することも可能である。
図7は、着信割り込みが生成され、ルーティング回路110に送信される例示的実施例を概略的に示す。そこでは、着信割り込みが、割り込み例外FIQ/IRQを必要に応じて生成するのに使用される。これらの割り込み例外は、プロセッサ30に送信される。特に、割り込み例外は、割り込み例外の性質に応じて、実行モード(セキュア又は非セキュア)の1つで実行レベルの1つにおいて動作する割り込み処理ソフトウェアに送信される。
図7は、IRQ及びFIQ割り込み例外に対するレジスタSCRにより示される値に応じて、且つ、SCR_NSが1である場合は非セキュア・モードにあり、SCR_NSが0である場合はセキュア・モードにあると表現される、プロセッサ30の現在の動作状態に応じて、異なる分類の割り込みが、異なる例外レベルで動作する異なる割り込み処理ソフトウェアに送信されることを示す。この点に関し、セキュア制御レジスタSCRは、FIQ割り込みを制御するためのビットSCR.FIQ、IRQ割り込みを制御するためのビットSCR.IRQ、及び、セキュア又は非セキュアのモードであるプロセッサの現在のモードを示すビットSCR.NSを格納する。
特に、この実例では、SCR.FIQがFIQ割り込み例外に対して1に設定されることから、FIQ割り込み例外を生成するG0割り込みはEL3にルーティングされる。
さらに、SCR.IRQはIRQに対して0であり、且つ、プロセッサが現在、非セキュア動作モード(SCR.NS=1)にあることから、G1s割り込みは、「昇格」されて、FIQ割り込みを発生させて、EL3へ送信させる。逆に、G1ns割り込みは、プロセッサが要求されたモード(すなわち、非セキュア)で動作していることから、実行レベルEL2で動作する割り込み処理ソフトウェアにIRQ割り込みを送信させる。
本発明の例示的実施例を添付の図面を参照して本明細書で詳細に説明してきたが、本発明が、これらの正確な実施例に限定されるものではなく、様々な変更及び修正が、添付の特許請求の範囲により規定される本発明の範囲及び趣旨を逸脱することなく当業者により達成され得ることを理解されたい。

Claims (16)

  1. 着信割り込みの処理を制御するための割り込み処理レジスタのセットを含む、複数のシステム・レジスタと、
    複数の実行レベルでソフトウェアを実行するように構成された処理回路と、
    前記着信割り込みを、前記複数の実行レベルの内の1つで動作するように構成された割り込み処理ソフトウェアにルーティングするように構成された割り込みコントローラ回路と、
    ルーティングされた着信割り込みを処理するための割り込み処理ソフトウェアにより、割り込み処理レジスタのセットに含まれる割り込み処理レジスタのうちのいずれにアクセスしうるものとするのかを、動的に制御するように構成されたレジスタ・アクセス制御回路であって、着信割り込みにおいて意図された実行レベルで動作するように構成された割り込み処理ソフトウェアによりアクセスしうる割り込み処理レジスタを、ある特定の場合に、ある特定の割り込み処理ソフトウェアを実行することによっても、アクセスしうるように制御するように構成されており、前記ある特定の場合は、前記着信割り込みにおいて意図された実行レベルよりも、より特権のない実行レベルで動作するように構成された割り込み処理ソフトウェアに、前記着信割り込みがルーティングされた場合であり、前記ある特定の割り込み処理ソフトウェアは、前記より特権のない実行レベルで動作するように構成されルーティング先となった割り込み処理ソフトウェアである、前記レジスタ・アクセス制御回路と
    を備える、データ処理装置。
  2. 前記複数の実行レベルが、EL0と、EL1と、EL2と、EL3とからなり、
    EL0は、ユーザ・ソフトウェアが動作する実行レベルであり、且つEL1より特権がなく、
    EL1は、ゲスト・オペレーティング・システムが動作する実行レベルであり、且つ、EL2より特権がなく、
    EL2は、ハイパーバイザが動作する実行レベルであり、且つ、EL3より特権がなく、
    EL3は、セキュア・モニタが動作する実行レベルである、
    請求項1に記載のデータ処理装置。
  3. 前記レジスタ・アクセス制御回路が、着信割り込みにおいて意図された実行レベルに基づいて、着信割り込みがルーティングされた割り込み処理ソフトウェアによりアクセスしうる割り込み処理レジスタがいずれとなるのかを動的に制御するように構成されているものである、請求項1又は2のいずれかに記載のデータ処理装置。
  4. 前記割り込みコントローラ回路が、
    前記処理回路の現在の実行モードを検出するように構成されたプロセッサ・モード検出回路と、
    意図された実行モードで、及び意図された実行レベルで動作するように構成された割り込み処理ソフトウェアのために意図された前記着信割り込みを受信するように構成された入力回路と、
    目標の実行レベルで動作するように構成された割り込み処理ソフトウェアに前記着信割り込みをルーティングするように構成されたルーティング回路であって、
    前記意図された実行レベルで動作するように構成された割り込み処理ソフトウェアに前記着信割り込みをルーティングするために、前記処理回路の前記現在の実行モードに対応する意図された実行モードを有する受信された前記着信割り込みに応答し、
    前記意図された実行レベルより特権のある既定の実行レベルで動作するように構成された割り込み処理ソフトウェアに前記着信割り込みをルーティングするために、前記処理回路の前記現在の実行モードに対応しない意図された実行モードを有する受信された前記着信割り込みに応答する、
    ように構成されたルーティング回路と
    を備える、請求項1から3までのいずれか一項に記載のデータ処理装置。
  5. 前記現在の実行モードと前記意図された実行モードとが、セキュア・モード又は非セキュア・モードのいずれかであり、前記セキュア・モードで動作する前記処理回路が、前記非セキュア・モードで動作する前記処理回路にアクセス可能ではないセキュア・データへのアクセスを有する、請求項4に記載のデータ処理装置。
  6. 前記意図された実行レベルより特権のある前記既定の実行レベルが、最も特権のある実行レベルである、請求項4又は5のいずれかに記載のデータ処理装置。
  7. 前記意図された実行レベルより特権のある前記既定の実行レベルが、EL3であり、且つ、セキュア・モニタが動作する実行レベルである、請求項4から6までのいずれか一項に記載のデータ処理装置。
  8. 前記プロセッサ・モード検出回路が、前記割り込み処理レジスタ内の確認応答レジスタを備え、
    前記確認応答レジスタから、予め定義された値が返されるときには、当該予め定義された値は、受信された着信割り込みが保留されていることを示し、且つ、前記受信した着信割り込みが、前記現在の実行モードに対応しない意図された実行モードを有していることを示すものである、
    請求項4から7までのいずれか一項に記載のデータ処理装置。
  9. 前記データ処理装置が、前記意図された実行レベルより特権のある既定の実行レベルで動作するように構成された前記割り込み処理ソフトウェアに基づいて、前記処理回路の前記実行モードを変更することによって前記予め定義された値を格納する前記確認応答レジスタに対して応答し、その後、前記ルーティング回路に、前記着信割り込みを、前記意図された実行レベルで動作するように構成された割り込み処理ソフトウェアにルーティングさせるように構成される、請求項8に記載のデータ処理装置。
  10. 前記データ処理装置が、前記意図された実行レベルより特権のある既定の実行レベルで動作するように構成された前記割り込み処理ソフトウェアに基づいて、前記着信割り込みを処理することによって前記予め定義された値を格納する前記確認応答レジスタに対して応答するように構成される、請求項8に記載のデータ処理装置。
  11. 前記ルーティング回路は、割り込み処理ソフトウェアに前記着信割り込みをルーティングするのに、割り込み例外を生成し、前記割り込み例外を割り込み処理ソフトウェアに転送することによって行うように構成され、前記割り込み処理ソフトウェアは、前記意図された実行レベル、あるいは、前記意図された実行レベルより特権のある既定の実行レベルのいずれかで、動作するよう構成される、請求項4から10までのいずれか一項に記載のデータ処理装置。
  12. 前記割り込みコントローラ回路が、
    第1の設定であって、前記割り込みコントローラが、既定の実行レベルで動作するように構成された割り込み処理ソフトウェアに着信割り込みをルーティングする、第1の設定と、
    第2の設定であって、
    前記割り込みコントローラが、前記既定の実行レベルで動作するように構成された前記割り込み処理ソフトウェアに着信割り込みをルーティングせず、
    前記少なくとも1つの着信割り込みが、前記既定の実行レベルより特権のある実行レベルで動作するように構成された割り込み処理ソフトウェアにルーティングされ、
    少なくとも1つの仮想割り込みが、前記既定の実行レベルより特権のある前記実行レベルで動作するように構成された割り込み処理ソフトウェアにより生成され、
    前記少なくとも1つの仮想割り込みが、前記既定の実行レベルで動作するように構成された前記割り込み処理ソフトウェアにルーティングされる、
    第2の設定と
    の間で切り替え可能である、請求項1から11までのいずれか一項に記載のデータ処理装置。
  13. 前記既定の実行レベルより特権のある前記実行レベルが、ハイパーバイザが動作するレベルであるEL2である、請求項12に記載のデータ処理装置。
  14. 着信割り込みの処理を制御するための割り込み処理レジスタのセットを備える、複数のシステム・レジスタと、
    複数の実行レベルでソフトウェアを実行するための処理手段と、
    前記複数の実行レベルの内の1つで動作するように構成された割り込み処理ソフトウェアに前記着信割り込みをルーティングするための割り込みコントローラ手段と、
    ルーティングされた着信割り込みを処理するための割り込み処理ソフトウェアにより、割り込み処理レジスタのセットに含まれる割り込み処理レジスタのうちのいずれにアクセスしうるものとするのかを、動的に制御するように構成されたレジスタ・アクセス制御手段であって、着信割り込みにおいて意図された実行レベルで動作するように構成された割り込み処理ソフトウェアによりアクセスしうる割り込み処理レジスタを、ある特定の場合に、ある特定の割り込み処理ソフトウェアを実行することによっても、アクセスしうるように制御するように構成されており、前記ある特定の場合は、前記着信割り込みにおいて意図された実行レベルよりも、より特権のない実行レベルで動作するように構成された割り込み処理ソフトウェアに、前記着信割り込みがルーティングされた場合であり、前記ある特定の割り込み処理ソフトウェアは、前記より特権のない実行レベルで動作するように構成されルーティング先となった割り込み処理ソフトウェアである、前記レジスタ・アクセス制御手段と
    を備える、データ処理装置。
  15. 複数の実行レベルの中から宛先実行レベルで動作するように構成された割り込み処理ソフトウェアにルーティングされる着信割り込みを処理するための割り込み処理レジスタのセットの少なくともいくつかへのアクセスを動的に制御する方法であって、
    前記着信割り込みがルーティングされる宛先実行レベルを決定するステップと、
    ルーティングされた着信割り込みを処理するための割り込み処理ソフトウェアにより、割り込み処理レジスタのセットに含まれる割り込み処理レジスタのうちのいずれにアクセスしうるものとするのかを、動的に制御するステップであって、着信割り込みにおいて意図された実行レベルで動作するように構成された割り込み処理ソフトウェアによりアクセスしうる割り込み処理レジスタを、ある特定の場合に、ある特定の割り込み処理ソフトウェアを実行することによっても、アクセスしうるように制御するように構成されており、前記ある特定の場合は、前記着信割り込みにおいて意図された実行レベルよりも、より特権のない実行レベルで動作するように構成された割り込み処理ソフトウェアに、前記着信割り込みがルーティングされた場合であり、前記ある特定の割り込み処理ソフトウェアは、前記より特権のない実行レベルで動作するように構成されルーティング先となった割り込み処理ソフトウェアである、前記動的に制御するステップと
    を含む、方法。
  16. 請求項15に記載の方法を実行するように処理装置を制御するためのコンピュータ・プログラム。
JP2016514473A 2013-05-23 2014-05-12 割り込み処理の方法及び装置 Active JP6753777B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/900,777 US9330035B2 (en) 2013-05-23 2013-05-23 Method and apparatus for interrupt handling
US13/900,777 2013-05-23
PCT/GB2014/051449 WO2014188160A1 (en) 2013-05-23 2014-05-12 A method and apparatus for interrupt handling

Publications (2)

Publication Number Publication Date
JP2016518672A JP2016518672A (ja) 2016-06-23
JP6753777B2 true JP6753777B2 (ja) 2020-09-09

Family

ID=50733098

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016514473A Active JP6753777B2 (ja) 2013-05-23 2014-05-12 割り込み処理の方法及び装置

Country Status (9)

Country Link
US (1) US9330035B2 (ja)
EP (1) EP3000036B1 (ja)
JP (1) JP6753777B2 (ja)
KR (1) KR102204501B1 (ja)
CN (1) CN105247485B (ja)
GB (1) GB2526731B (ja)
IL (1) IL242155B (ja)
RU (1) RU2666625C2 (ja)
WO (1) WO2014188160A1 (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9330035B2 (en) 2013-05-23 2016-05-03 Arm Limited Method and apparatus for interrupt handling
US9355050B2 (en) * 2013-11-05 2016-05-31 Qualcomm Incorporated Secure, fast and normal virtual interrupt direct assignment in a virtualized interrupt controller in a mobile system-on-chip
US9542254B2 (en) * 2014-07-30 2017-01-10 International Business Machines Corporation Application-level signal handling and application-level memory protection
US9411979B2 (en) 2014-08-07 2016-08-09 Vmware, Inc. Embedding secret data in code
US9398019B2 (en) 2014-08-07 2016-07-19 Vmware, Inc. Verifying caller authorization using secret data embedded in code
US10922402B2 (en) * 2014-09-29 2021-02-16 Vmware, Inc. Securing secret data embedded in code against compromised interrupt and exception handlers
US9465617B1 (en) * 2015-06-29 2016-10-11 Vmware, Inc. Implementing upcall from secure to non-secure mode by injecting exception into non-secure mode
EP3118740B1 (en) * 2015-07-15 2021-09-08 Huawei Technologies Co., Ltd. Device and method for hardware virtualization support
US10197614B2 (en) * 2016-05-02 2019-02-05 Schweitzer Engineering Laboratories, Inc. Fault location during pole-open condition
US11416421B2 (en) * 2016-07-19 2022-08-16 Cypress Semiconductor Corporation Context-based protection system
KR101770926B1 (ko) 2016-12-30 2017-08-23 엘에스산전 주식회사 직류 성분에 의한 전기적 외란 검출 방법
US10346345B2 (en) * 2017-05-26 2019-07-09 Microsoft Technology Licensing, Llc Core mapping
US10587575B2 (en) 2017-05-26 2020-03-10 Microsoft Technology Licensing, Llc Subsystem firewalls
CN107608331A (zh) * 2017-08-24 2018-01-19 北京龙鼎源科技股份有限公司 非随机中断的诊断方法和装置
FR3105855B1 (fr) * 2019-12-31 2022-01-07 Kalray Processeur à distribution configurable des ressources privilégiées et exceptions aux anneaux de protection
US11714676B2 (en) * 2020-01-03 2023-08-01 International Business Machines Corporation Software-directed value profiling with hardware-based guarded storage facility
US11735908B2 (en) 2021-02-15 2023-08-22 Schweitzer Engineering Laboratories, Inc. Dependable open-phase detection in electric power delivery systems with inverter-based resources
US11650241B1 (en) 2022-06-28 2023-05-16 Schweitzer Engineering Laboratories, Inc. Incremental quantities-based fault locating technique and system
CN117272412B (zh) * 2023-11-21 2024-03-15 芯来智融半导体科技(上海)有限公司 中断控制寄存器保护方法、装置、计算机设备及存储介质

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5530730A (en) * 1978-08-22 1980-03-04 Nec Corp Data processor
JP3003968B2 (ja) 1991-05-01 2000-01-31 インターナショナル・ビジネス・マシーンズ・コーポレイション 割込み処理プログラム選択装置及び処理方法
JPH07105031A (ja) 1993-09-20 1995-04-21 Internatl Business Mach Corp <Ibm> 多重プロセッサ・コンピュータ・システム内で割込み情報を伝えるための方法および装置
US6665761B1 (en) 1999-07-28 2003-12-16 Unisys Corporation Method and apparatus for routing interrupts in a clustered multiprocessor system
EP1331539B1 (en) 2002-01-16 2016-09-28 Texas Instruments France Secure mode for processors supporting MMU and interrupts
US7130951B1 (en) * 2002-04-18 2006-10-31 Advanced Micro Devices, Inc. Method for selectively disabling interrupts on a secure execution mode-capable processor
US20030229794A1 (en) * 2002-06-07 2003-12-11 Sutton James A. System and method for protection against untrusted system management code by redirecting a system management interrupt and creating a virtual machine container
US7539853B2 (en) * 2002-11-18 2009-05-26 Arm Limited Handling interrupts in data processing of data in which only a portion of a function has been processed
GB2396451B (en) * 2002-11-18 2005-12-07 Advanced Risc Mach Ltd Delivering data processing requests to a suspended operating system
KR100941104B1 (ko) * 2002-11-18 2010-02-10 에이알엠 리미티드 데이터 처리 장치, 데이터 처리 방법 및 컴퓨터 프로그램을 기억한 컴퓨터 판독가능한 기억매체
GB0226905D0 (en) * 2002-11-18 2002-12-24 Advanced Risc Mach Ltd Exception tyres within a secure processing system
US7383426B2 (en) 2003-06-11 2008-06-03 University Of Washington Processor employing loadable configuration parameters to reduce or eliminate setup and pipeline delays in a pipeline system
US7623518B2 (en) 2004-04-08 2009-11-24 Hewlett-Packard Development Company, L.P. Dynamic access control lists
US7802250B2 (en) * 2004-06-28 2010-09-21 Intel Corporation Support for transitioning to a virtual machine monitor based upon the privilege level of guest software
US20060064528A1 (en) 2004-09-17 2006-03-23 Hewlett-Packard Development Company, L.P. Privileged resource access
US20070168574A1 (en) 2005-09-28 2007-07-19 Dell Products L.P. System and method for securing access to general purpose input/output ports in a computer system
GB2433794B (en) * 2005-12-21 2010-08-18 Advanced Risc Mach Ltd Interrupt controller utiilising programmable priority values
US20090177826A1 (en) * 2008-01-09 2009-07-09 Texas Instruments Incorporated System and method for preemptive masking and unmasking of non-secure processor interrupts
EP2075696A3 (en) 2007-05-10 2010-01-27 Texas Instruments Incorporated Interrupt- related circuits, systems and processes
US8453143B2 (en) 2007-09-19 2013-05-28 Vmware, Inc. Reducing the latency of virtual interrupt delivery in virtual machines
US7730248B2 (en) 2007-12-13 2010-06-01 Texas Instruments Incorporated Interrupt morphing and configuration, circuits, systems and processes
JP2009251802A (ja) 2008-04-03 2009-10-29 Panasonic Corp マルチプロセッサシステムおよびマルチプロセッサシステムの割込み制御方法
US20090292931A1 (en) * 2008-05-24 2009-11-26 Via Technology, Inc Apparatus and method for isolating a secure execution mode in a microprocessor
GB2462258B (en) * 2008-07-28 2012-02-08 Advanced Risc Mach Ltd Interrupt control for virtual processing apparatus
CN101354664B (zh) 2008-08-19 2011-12-28 中兴通讯股份有限公司 多核处理器中断负载均衡方法和装置
ATE542177T1 (de) 2008-08-19 2012-02-15 St Microelectronics Rousset Weiterleitungsverfahren eines unterbrechungssignals direkt an eine virtuelle bearbeitungseinheit in einem system mit einer oder mehreren physischen bearbeitungseinheiten
US7953916B2 (en) 2009-04-08 2011-05-31 Intel Corporation Dynamic, local retriggered interrupt routing discovery method
JP5737050B2 (ja) * 2011-08-15 2015-06-17 富士通株式会社 情報処理装置、割込み制御方法および割込み制御プログラム
US9043522B2 (en) * 2012-10-17 2015-05-26 Arm Limited Handling interrupts in a multi-processor system
US9330035B2 (en) 2013-05-23 2016-05-03 Arm Limited Method and apparatus for interrupt handling

Also Published As

Publication number Publication date
KR102204501B1 (ko) 2021-01-19
GB2526731B (en) 2016-03-09
EP3000036A1 (en) 2016-03-30
EP3000036B1 (en) 2023-09-27
CN105247485B (zh) 2019-11-08
CN105247485A (zh) 2016-01-13
RU2015154967A3 (ja) 2018-03-30
IL242155B (en) 2018-10-31
GB201516137D0 (en) 2015-10-28
RU2666625C2 (ru) 2018-09-11
RU2015154967A (ru) 2017-06-27
WO2014188160A1 (en) 2014-11-27
KR20160014647A (ko) 2016-02-11
US20140351472A1 (en) 2014-11-27
US9330035B2 (en) 2016-05-03
GB2526731A (en) 2015-12-02
JP2016518672A (ja) 2016-06-23

Similar Documents

Publication Publication Date Title
JP6753777B2 (ja) 割り込み処理の方法及び装置
US9898601B2 (en) Allocation of shared system resources
JP3989911B2 (ja) グローバル割込み待ち行列の仮想化
US10146940B2 (en) Multiple hardware-separated computer operating systems within a single processor computer system to prevent cross-contamination between systems
US9355050B2 (en) Secure, fast and normal virtual interrupt direct assignment in a virtualized interrupt controller in a mobile system-on-chip
US9122506B2 (en) Virtualization apparatus and method for controlling access to hardware device by I/O request
US20160085568A1 (en) Hybrid virtualization method for interrupt controller in nested virtualization environment
US8893306B2 (en) Resource management and security system
US10474494B2 (en) Information processing apparatus, information processing method, and computer program product
US20180089044A1 (en) Technologies for providing network interface support for remote memory and storage failover protection
JP2012104151A (ja) マルチプロセッサシステム、マルチプロセッサシステムにおけるシステム構成方法及びそのプログラム
JP2007220086A (ja) 入出力制御装置、入出力制御システム及び入出力制御方法
US20150370582A1 (en) At least one user space resident interface between at least one user space resident virtual appliance and at least one virtual data plane
US20110219373A1 (en) Virtual machine management apparatus and virtualization method for virtualization-supporting terminal platform
KR20220035242A (ko) 호스트 컴퓨팅 디바이스와 네트워크 인터페이스 디바이스를 포함하는 프로그래머블 네트워크 인터페이스 디바이스
CN113391881A (zh) 中断的管理方法、装置、电子设备及计算机存储介质
JP2019164661A (ja) 情報処理装置、情報処理方法及びプログラム
US20190370054A1 (en) Information Protection Method and Apparatus
US20190042797A1 (en) Security Hardware Access Management
JP2012003302A (ja) ゲストos制御システム
US20150150001A1 (en) Host reservation system
EP3255544B1 (en) Interrupt controller
JP2012099154A (ja) 情報処理装置及びそのアクセス制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170502

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180522

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180612

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180912

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20190219

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190618

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20190627

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20190823

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200608

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200820

R150 Certificate of patent or registration of utility model

Ref document number: 6753777

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250